|
|
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 |
- <a href="https://www.mediafire.com/file/czicu7v2hdd904k/Library_2008_TnT_For_AutoCAD.zip/file">Library 2008 TnT For AutoCAD</a><a href="https://www.mediafire.com/file/czicu7v2hdd904k/Library_2008_TnT_For_AutoCAD.zip/file">! c) o# N" B4 u+ m4 ?& S
Sao chép mã ********************************************************************************
7 w# ~6 N, s0 m' E* ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *9 S; d* F2 L7 i6 P4 @
* Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
/ F! ? }$ ^! c4 q* Suu tam & Soan *
2 s7 \5 u& K2 d& l% V1 y- e********************************************************************************# A0 a3 _( J3 C6 Z
6 S5 p- \) `# ^' P4 @
; Next available MSG number is 1048 T. v3 D$ J- `: K2 ]! B5 K! E- a
; MODULE_ID ACAD2000doc_LSP_
: t6 z: Q$ `2 u! J;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
3 ]" H% P2 T6 f, H2 l9 O;;;
* n3 A7 W/ h' f& w7 S8 m- ]. u! m;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.( j' J3 |( S+ y3 E
;;;
! B1 ]& p( X/ F n+ O& A;;; Permission to use, copy, modify, and distribute this software
2 g$ n0 n5 s- D3 D, Y;;; for any purpose and without fee is hereby granted, provided
3 |7 u' M4 P$ l2 G& k* V6 W0 C j# i;;; that the above copyright notice appears in all copies and
0 y; l/ }) q3 E, p5 L5 ~8 j' r6 N, K;;; that both that copyright notice and the limited warranty and
* r4 T+ }* k1 l) \6 I;;; restricted rights notice below appear in all supporting
1 C- N0 X+ o% ^2 E;;; documentation.$ M1 O7 T- P2 k1 r0 F/ @) U- b
;;;
6 a6 y% b$ A" ~4 `;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.+ Q0 n/ a2 _' q% r
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF1 a" y! @$ _9 H& U- E. L0 e
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
0 C% P: d# S2 S2 A;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE6 a7 J$ W, }, w* w7 I8 d
;;; UNINTERRUPTED OR ERROR FREE.
. Y2 }' e, ]# T2 F, \0 J6 ~4 Z;;;1 R7 G1 R. @5 d9 L/ V
;;; Use, duplication, or disclosure by the U.S. Government is subject to1 ]* Y$ j; c# C
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer, p1 _( p4 j, |) h2 m& Q. S/ w
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
8 a% _2 r. I9 }: f;;; (Rights in Technical Data and Computer Software), as applicable.
3 n6 x) \: z, p- ^$ W" Q;;;6 }. {" T) }8 i
;;;.# S+ K3 Z' [) s% `0 [
;;;
8 ^/ R. N; l1 t+ N) z: T;;; Note:
8 r/ I- \$ i2 o% M;;; This file is loaded automatically by AutoCAD every time L \; w3 t; i, k1 a
;;; a drawing is opened. It establishes an autoloader and% q/ m& Y# }3 x* O) P9 h) _
;;; other utility functions." o. i# E9 v; F0 K% X% U7 L
;;;
+ u7 L- c3 e5 i+ Q0 Z( D;;; Globalization Note: . T9 S. [6 n2 n' L
;;; We do not support autoloading applications by the native
2 A: x* u/ K4 y. p8 L;;; language command call (e.g. with the leading underscore
3 F. Q" I# |7 S& m;;; mechanism.)
/ U+ u: { H' K* e2 o# F2 r
3 p. o. w4 b& \' a
( `- J& s' d- o( ^4 ^3 t4 a% A;;;===== Raster Image Support for Clipboard Paste Special =====. f2 z4 K6 T( |) A
;;0 l: D% G+ P. e" i1 h
;; IMAGEFILE/ v" }% K0 z% W& C5 ~. G/ _: j
;;
! ~+ c0 c, J& ]+ };; Allow the IMAGE command to accept an image file name without
3 ]- }' j, k7 [+ q6 e, x9 q3 J4 I;; presenting the file dialog, even if filedia is on.
3 x. _7 U; f6 M, L6 N" v/ ^: v;; Example: (imagefile "c:/images/house.bmp")
8 s" w3 _$ N8 J# g2 X;;
& F) s. p6 w/ _* e! f- ^' t(defun imagefile (filename / filedia-save cmdecho-save)
* p/ K" W3 R6 t* P1 v5 M' H/ G (setq filedia-save (getvar "FILEDIA"))8 U% v' e5 r& q P6 I s+ \
(setq cmdecho-save (getvar "CMDECHO"))
7 }/ s, e9 w3 t( g" y$ V (setvar "FILEDIA" 0)
5 E5 k1 h. c( V( g (setvar "CMDECHO" 0)
# b1 t: d" j) x: v& _ (command "_.-image" "_attach" filename)
+ p0 j. @. h- b0 c( I8 Q; m! _ (setvar "FILEDIA" filedia-save)) q! U6 q$ ^% B7 L1 n
(setvar "CMDECHO" cmdecho-save)
2 R7 X8 s% j. B9 P; }& t# v (princ)
U# J' o4 s p/ t/ J4 c( w$ ?)
; C( ^2 x$ y8 x' {2 J" H/ e6 j;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4 @: r' g5 g# S% N% n; Next available MSG number is 11
: W9 [# w' m1 k4 L s U; MODULE_ID DDVPOINT_LSP_
4 n1 |7 P! j+ i;;;
9 j W' Y0 j8 S3 n;;; ddvpoint.lsp
6 T' _6 d$ R ^; v: r;;;
8 j! H3 \9 _& J9 R# e, ~8 v;;; Copyright 1992,1994,1996-1998 by Autodesk, Inc.
: P5 g3 @9 w# ^ G. i;;;, N0 Q3 h5 B3 h) D; _
;;; Permission to use, copy, modify, and distribute this software, g7 ^, O9 B1 i, B. D
;;; for any purpose and without fee is hereby granted, provided# x( [2 l& f5 U
;;; that the above copyright notice appears in all copies and. `4 W. A" y. ?0 o( u0 t# c/ r
;;; that both that copyright notice and the limited warranty and, C% @" \5 {% Z
;;; restricted rights notice below appear in all supporting+ `8 a" Y! H5 @( F) b& `$ v' ~
;;; documentation.
3 O+ H; |. P5 n;;;$ u3 f' _$ W! k4 K, `" E. C0 f) f2 S2 n
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
$ Z9 b E) i! r/ [/ I3 V+ K;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF& _8 _4 ?* |* u8 t
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
& d$ M0 O) n% m4 L% F; q;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE% l* L4 [( _8 H, h: j a
;;; UNINTERRUPTED OR ERROR FREE.7 d5 v0 S4 q+ F+ \
;;;
- l+ C, G9 D( k" R. w$ m3 {8 t3 O;;; Use, duplication, or disclosure by the U.S. Government is subject to
9 u2 l1 Z. E4 J, o/ ?$ D;;; restrictions set forth in FAR 52.227-19 (Commercial Computer1 ~6 T* J/ z: g, O, }
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) , f8 X9 Z* b+ a, A" D/ k
;;; (Rights in Technical Data and Computer Software), as applicable.
; w* v K, i9 Y' Y( W! j7 z% M" _;;;6 b4 a, f& |, l' Y- E6 J0 m6 m
;;;.
/ A8 u8 Y5 Q5 L( O; U3 G; Z: w;;; C DVPOINT - 3D Viewpoint presets dialog.
1 _) b8 Q& N. }$ y/ i8 W+ r;;;$ J) a2 z. d0 L( n8 Y& l: Y7 k
;;; Uses DDVPOINT.DCL for the dialog definition.
5 q# F a2 u* z' e. _;;; The slide image is in ACAD.SLB.
) S- w& y, }6 |9 m" u8 h. h5 W;;;$ C& ~ I3 g2 D/ m) H4 m% i
;;; ===================== load-time error checking ============================
! ?8 Z* O5 ~) o3 D;;;
+ d: l; L* l& z' B9 S8 k& a6 i3 R5 U! Q% x" e& Q7 R
(defun ai_abort (app msg)- p1 |* S0 J( f x7 Z* k
(defun *error* (s)4 N: W+ `! u e. l. i+ W4 D
(if old_error (setq *error* old_error))
1 c8 [5 e% d" H- ?. O (princ)! r! I" z( \5 h" ]/ @- W7 X
)
" R# ]+ ~+ U5 R3 G' X; q/ e (if msg
2 e1 ]$ l; @) e9 _. @ (alert (strcat " Application error: "# d% l. r/ q& a) b' s, R
app
% M: q- c' A; |0 d. V4 ?; m " \n\n "
( N8 Q F; \" ^+ k$ K; G msg, B9 u/ J* p+ z& K( \' X) Y5 d8 @
" \n"
, J- b3 ^5 w/ w( _# r+ ~" H )3 [0 ]! r" J5 N! b& g+ I
)
4 Z1 }: T' h$ g4 f )
! _ S6 p0 K2 A8 z4 k' {# } (exit)2 ^ w6 v: W0 t/ j6 [- t9 q5 \4 _! z8 O
)% U L5 e; H) {2 O4 N
) W: \* {2 O, M4 z
;;; Check to see if AI_UTILS is loaded, If not, try to find it,
( _- b" Y% `( J' o' i! d;;; and then try to load it.
) D0 x: f7 }! [. e6 \1 D3 {, @- _;;;
( V8 D+ B4 f6 U3 b& p;;; If it can't be found or it can't be loaded, then abort the
2 \% v+ |# z: ]$ p;;; loading of this file immediately, preserving the (autoload)
. P2 o0 {4 M4 p9 o, s/ L! G;;; stub function.3 [3 k( @( @( K, \
9 m+ q. t2 d. {
(cond9 s( i. _* d' u" ], N
( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
: s! R4 P2 i& \$ ]8 A4 P- b# r% p, I3 S$ L7 ?, q
( (not (findfile "ai_utils.lsp")) ; find it
! G" o3 R+ |0 d& n+ S. k- K (ai_abort "DDVPOINT"
8 P. O% q8 F i F/ B4 ` (strcat "Can't locate file AI_UTILS.LSP."3 m- p/ M5 j! g0 R0 k: v
"\n Check support directory.")))- I8 ]% {1 t6 A2 U6 b! y- `
. @% D' n+ M h8 s& B ( (eq "failed" (load "ai_utils" "failed")) ; load it
) V8 R3 V9 D: ]6 B (ai_abort "DDVPOINT" "Can't load file AI_UTILS.LSP"))" |5 i5 k! e' n
)
0 g& p2 J, l) w4 ?% S+ `( _
. Y1 M. P0 R# _, n1 J% I (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
+ ?0 w# [3 d4 M* Z* k5 O( K- ` (ai_abort "DDVPOINT" nil) ; a Nil <msg> supresses# c: R, s: O$ ~' j& }) q* K1 w
) ; ai_abort's alert box dialog.
# D! s# i9 I O" V% ~0 d2 U6 |# w& t9 b! M
;;; ==================== end load-time operations ===========================
: x& U4 O7 l s$ _" m, Q2 `% Q) K
3 V0 g7 W2 x3 M' H$ u(defun ai_ddvp_start ( / image_x image_y image_h slide_x slide_y slide_h program)2 `$ ^3 \" k8 ?! ~
;; Get program name7 q! C2 B( ?1 j, M4 X! F
(if (not (setq program (getvar "program"))) @# Y3 S1 m6 X% j2 ]9 M0 Y' z
(setq program "acad")
* Z# U) P$ [% _, X4 e )
3 t9 {" y$ a0 A4 x9 g9 P7 e (start_image "ddvp_image")# t( R: d! o( r) h
(slide_image
# M0 n$ B2 E. A+ c0 p 0 0! @# P1 Y& U m9 A. z4 V0 s$ P, x
(- (setq image_x (dimx_tile "ddvp_image")) 1) % c+ k: D8 K# {& ?) \3 s
(- (setq image_y (dimy_tile "ddvp_image")) 1)8 o" a8 _3 q! a0 m+ I
(strcat program "(ddvp3d)")
' \ v' {7 J5 ?0 J# M0 ] )
5 D! U( \( Y( X! V- T- w (end_image); e* X8 @/ g5 O5 e4 i, O
(setq
0 I; F0 g5 \& j image_x (float image_x)2 B# w6 K; Q" s
image_y (float image_y)/ ?& n* S6 H+ l* J9 k! B
slide_x 12.4265
- U2 ]+ \. |1 z slide_y 9.0
# o4 X7 N' J1 M5 Z" q image_h (/ image_x image_y)
. e l; e2 v0 Q6 z% s( H/ x slide_h (/ slide_x slide_y)
) v3 }' N3 o$ w$ s+ l8 F )
7 q1 | I X4 F S' x4 v (if (< slide_h image_h)$ p Q6 @: ~9 P" ]3 n& n
(setq slide_y image_y6 b& `: S; d) [. ]2 t; i. |
slide_x (* slide_y slide_h)
8 u3 ~4 a# X6 c7 e( R )
$ H& v0 c; t5 v; @ (setq slide_x image_x
3 \! V. X# v1 k6 M" f slide_y2 (* slide_y (/ image_x 12.4625))
3 q5 H( j! `0 ~, A9 J- `5 b9 w; V image_y2 (/ image_y slide_y2), e" F. K0 ?7 p6 n+ x; B
slide_y (* slide_y2 image_y2)7 e. D5 \1 Y8 G% W* E# N6 f2 O
8 J: s+ q0 w# y1 Y& X% u. D )
$ \% w1 t. \; Z$ D; ]! {% c )
O+ y" o2 s5 |6 l (setq ai_ddvp_bx (fix (* 0.295 slide_x))
/ x2 F$ o" |) n) B1 ~ ai_ddvp_ax (fix (* 0.65 slide_x))
1 k; k% I8 ]; t$ q' U1 L ai_ddvp_by (fix (* 0.4875 slide_y))0 P$ C3 V; M* p: s+ P/ t9 R
)0 T3 W( v0 F0 F
)7 l1 W l; K4 f
7 h& \: h0 Q/ x(defun ai_rtd (arg), ?7 m. e0 \3 C* e& b
(/ (* arg 180.0) pi)
: B/ w0 b# f/ [8 O3 i- Q) \9 S)
' v( r6 S# r( K- H6 [ }+ N4 K
8 n8 P" M+ r3 d(defun ai_dtr (arg)0 A+ o" G7 q8 j; D! ~, M
(* pi (/ arg 180.0))$ w# C3 t0 Z; Z I! E
)/ K: b1 ~& D6 ~2 E q( j8 K& x- K
- a, |- P5 H% Y( H0 H- w0 `! u: X
(defun ai_ang3dv (v1 v2)
8 H$ o) k* k+ p4 _1 s$ K (if (not (equal v1 v2 1e-12))6 M8 A' z) p' S4 P$ _. Z
(ai_arccos
/ p* I {8 V o. a/ U! } (/ (ai_dotp v1 v2)
" s5 j' L7 d. s: }4 x5 U' { (* (sqrt (ai_dotp v1 v1))7 |: w) C4 [/ O }0 V: F+ K
(sqrt (ai_dotp v2 v2)) l" e4 ~# h3 g8 H
)
7 J& ]( |' P& d; D x, A ): h4 T4 S4 M) z1 l. t
)
; I) W: b, B5 Z# R* I (eval '0.0)
) L4 A% _2 d* Z+ [2 p )5 C* S/ W* I: `' P" B; C
)
7 ]5 K" s6 l1 F; R7 I2 f) @- j' H5 x' A
(defun ai_arccos (ang)8 o9 [( \4 z' ~* a' u6 W4 t' F% p
(if (not (equal ang 1.0 1e-06))5 i% U( }% ?* n9 ~3 Q1 y1 ~2 L( R
(if (not (equal ang -1.0 1e-06))
! r; P/ Y( C+ O (atan (sqrt (- 1.0 (expt ang 2.0))) ang)
( |/ L% p( K- \' p (eval pi)
" `0 N. ]( y! L: J9 U& Y) y" S/ b )
K) M- L! E& Z0 z( l (eval '0.0)9 U; E* S! U; P3 ]6 v6 O
)
' S7 r( G& c: m) C, k8 s7 Y)$ J5 l1 ^ `9 M( A1 M
# V$ S- s T" L: ^% I4 O
(defun ai_dotp (v1 v2)
3 z. L! R; }# p (+* M9 T K# e7 t# G5 O' K4 X0 {
(* (car v1) (car v2))) a! j+ D( m. K8 s9 n) i. n; p
(* (cadr v1) (cadr v2))
, p. g9 _+ Z6 R: W9 v3 `0 y/ c (* (caddr v1) (caddr v2))( V% i$ ?! V5 @" M
). ^4 l# c0 X; t1 f( e
); Z* |5 @7 ^. O" @/ Q: I5 g
9 L6 d. u( `/ p
(defun ai_ddvp_do ()2 U4 j3 N7 c& R. U R
(if (or (>= ai_ddvp_b_curr 360.0)
2 u( u; d' }3 F (< ai_ddvp_b_curr 0.0)/ N4 U! A' ^4 C: P" O, r
(null ai_ddvp_b_curr)( f( x* | E0 f
)
$ R( ]; {$ {3 `3 V$ [. h (progn
! ` S }1 p# L* x2 I/ G7 d" R1 n (ai_ddvp_drx ai_ddvp_b_last ai_ddvp_bx 0)8 z! b7 t1 k4 l. _" m" _
(ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 1)
# F1 x4 Z5 h* C0 @ (mode_tile "ddvp_val_x" 2)
1 E% a. V. J1 p (set_tile "error" "Invalid angle from X axis.")
/ k! ^6 T0 j4 a' d1 | )
6 ?# [$ n7 _6 g9 K' Z, n (if (or (> ai_ddvp_a_curr 90.0)
6 ]8 b6 L2 R/ X9 V* @ (< ai_ddvp_a_curr -90.0)
& G% X) P' d7 g0 h( g) f (null ai_ddvp_a_curr)
% n1 {4 S% {; A: a3 E8 T. a9 I# G )1 O7 v: N2 }# D, a. G
(progn: } C* ~2 v, [2 g- j
(ai_ddvp_drx ai_ddvp_a_last ai_ddvp_ax 0)
8 r6 P1 o+ ~5 ]6 N) g, ?4 \) \6 h (ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 1)* |& L; Y0 o3 ^" B' S- a
(mode_tile "ddvp_val_xyp" 2)9 D+ d4 ^. `! l( k# v
(set_tile "error" "Invalid angle from XY plane.")
6 D6 @* s: R; z: U2 l+ E! c) N3 H/ a )
( K3 V1 e6 N- m. } I4 s (done_dialog 1)
+ [6 w* r- L! E' U' Y3 E )
3 }7 M0 r) f- }- g )
* }% h, Y3 ~3 O$ G)
# C* M+ }8 d/ p; r- `
+ u R& [( f7 ~ a0 e( I) b' [& q(defun ai_ddvp_set_a (ang)+ X' T% V4 J( r
(setq ai_ddvp_a_curr ang)
- S; Y# a& E* D/ _* w( w (if (or (> ang 90.0)
+ J+ I7 b3 Q( K; c, |! Q6 Q! L* \ (< ang -90.0). D J/ x' O& B. h) M" k& q
(null ang) @- d! u3 I- X2 ^
)/ {' P4 n3 H- X" K; p5 @- r4 n2 I9 j3 T+ f, B
(progn
6 q3 ?5 v& {& f" K2 E (ai_ddvp_drx ai_ddvp_a_last ai_ddvp_ax 0)+ u9 ^6 R' w; q! D" L5 t7 h# K
(ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 1)
* x& H" O* e4 d, D# X+ T9 k8 m (set_tile "error" "Invalid angle from XY plane.")
3 O1 u( i. b* {+ E: v; } )
( l+ a1 L$ `' @2 z5 J0 O% { (progn
3 m& G3 T( q4 r2 u (set_tile "error" "")& p6 d$ v2 {2 y2 Q' N
(ai_ddvp_drx ai_ddvp_a_last ai_ddvp_ax 0)
) l4 \2 L. c' C2 ] (setq ai_ddvp_a_last ai_ddvp_a_curr ai_ddvp_t T)5 c6 N5 j" S& s# V: R
(set_tile "ddvp_val_xyp" (rtos ai_ddvp_a_curr 2 1))
" A# r/ i; ?9 u" G (ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 1)3 ^0 {# q. n7 |9 b1 _8 M- U
(ai_ddvp_drx ai_ddvp_a_curr ai_ddvp_ax 7)
5 ^* F4 I- q; y2 O- [ )) _' N" ~1 R9 R
)5 [, A6 l s! a* ?6 R
), j4 W0 W4 [/ R3 r) j
& m: q, k7 h0 B$ F6 o) {(defun ai_ddvp_set_b (ang)" n! F8 w6 K4 Z
(setq ai_ddvp_b_curr ang)$ B- G: P& Z K3 C
(if (or (>= ang 360.0)
- ~% \& @, c8 ^ (< ang 0.0)" A8 Y6 `: A/ F) c
(null ang)& z8 O' @* b+ M
)9 [/ \% f3 m6 S( h2 v. U
(progn
* O- D$ g- I8 O4 O (ai_ddvp_drx ai_ddvp_b_last ai_ddvp_bx 0)2 ^5 p5 b/ r. [* u
(ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 1)+ t7 h4 R8 o* k
(set_tile "error" "Invalid angle from X axis.")
! Q3 _8 r- \# Q; q% e, H8 Z )
$ W8 c o" M! F* h b9 w# T (progn
- d+ H9 J6 C+ ?6 C (set_tile "error" "")# s6 T& N! p1 H; k, K6 {! q
(ai_ddvp_drx ai_ddvp_b_last ai_ddvp_bx 0)
# j9 i" p0 k9 F: _' p0 {5 s+ |0 e* `3 P (if (= ang 360.0)
8 J3 Y- ?* r$ v4 ?. h (setq ai_ddvp_b_curr 0.0
; {: N" y, {' Q# K2 c8 v ai_ddvp_a_curr 90.0
/ u M2 K' f9 w, k1 O# O- {7 E ai_ddvp_p T
: a! @4 |, A) T, @) ?/ z0 ~ ai_ddvp_b_last ai_ddvp_b_curr
/ r! K, K4 f# K% }7 `; M4 f" u5 _- L )/ r: r) n* D9 {' ]9 m9 f1 u4 X J
(setq ai_ddvp_b_last ai_ddvp_b_curr ai_ddvp_t T)5 L. Y G- k% D! x8 v! i4 B
)( Z7 U* T. h7 a9 f
(set_tile "ddvp_val_x" (rtos ai_ddvp_b_curr 2 1))% ?$ v3 @2 Z {0 l* [) s' Q5 A
(ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 1)1 { P' t4 ~6 I3 m9 A. b
(ai_ddvp_drx ai_ddvp_b_curr ai_ddvp_bx 7)
2 D; ], k& o" n4 s )
3 I$ J1 s& k' s' B )* A$ x6 M! {8 X$ G; G3 k, y
)
: d+ U+ X/ O' \% P, L$ K7 B% _
(defun ai_ddvp_drx (ang x1 col / a x2 y2)
+ [9 d5 J! I5 V2 X: ? (setq a (polar (list 0.0 0.0)
; x2 K8 I% {+ y! S" j (- (* 2.0 pi) (ai_dtr ang))
$ w( ^- g" v7 ` 25.04 W" j9 Y- ^) G/ _
)
* _) T+ ]7 ?& R& c9 r x2 (+ x1 (fix (car a)))
' `* f* n7 y4 T& y y2 (+ ai_ddvp_by (fix (cadr a)))/ N9 a Z- V8 l0 ^
) g9 N& |, ]: d+ z
(start_image "ddvp_image")& Y6 Y' P' |7 n$ C! V; n
(vector_image x1 ai_ddvp_by x2 y2 col)9 w, k( f# o8 M. B# x
(end_image)
4 b! n) e3 _0 K' Q' ~5 A* h9 s( j( w/ \)- M1 U8 B Y4 c+ v3 W
) s9 i! I' A G(defun ai_ddvp_image (x y / ang1 ang2 list_xy list_axby list_bxby)
2 @% @" `, G+ M9 n1 w% C (setq list_xy (list x y)" H- C G" }( z& \$ y3 Z3 i
list_axby (list ai_ddvp_ax ai_ddvp_by)
4 T) m8 P# b5 \$ t [" e list_bxby (list ai_ddvp_bx ai_ddvp_by)
# d( P3 y3 E, E/ M )
" i/ h; R7 t& T, V2 H2 j" k (if (> x (- ai_ddvp_ax 1)), |0 m7 V0 D; C- \
(progn! O9 p* b F: l+ n/ w: s% w& e5 i) N
(setq ang1 (ai_rtd (- (* 2.0 pi) (angle list_xy list_axby))))* e( r6 j' A% l1 l' M
(if (< 90.0 ang1)
8 C( s& r6 c. C0 a+ ] (setq ang1 (- ang1 180.0))& F' t F; T" |4 x6 D; `! s
)
/ I# I) ~# F# L% B k* N( O (if (< (distance list_xy list_axby) 40)) F: i- `1 c( K0 V( a
(ai_ddvp_set_a ang1). \ ~; z$ R a$ S8 b" k' T
(if (< (distance list_xy list_axby) 84)% Q' j2 z6 S y. y9 a
(cond ((= ang1 0.0). ]: j. R5 U6 \$ t2 s
(ai_ddvp_set_a 0.0)
! O, a% t9 B, | )% j0 c2 R1 \7 z
((< ang1 -72.0)" j0 j0 M* p$ a+ \5 }
(ai_ddvp_set_a -90.0) N' I% B' @: i3 d0 F, e( L
): r' j9 S; g2 V; p6 ^
((< ang1 -53.0)4 Y/ |. d; M: @
(ai_ddvp_set_a -60.0) |* ~, s, I9 Y: @% d4 U1 v
)
2 M5 Y' g) i a. D% J. O) t0 { ((< ang1 -38.0)7 O* v" O. W( N) `# Z5 G* ?
(ai_ddvp_set_a -45.0)
4 b: r0 O* P' ~) H" } )
, p! J0 [0 V/ N$ i% u, [ ((< ang1 -20.0)
: P6 w% I2 C( [8 A (ai_ddvp_set_a -30.0)
) X) T9 R$ j- u3 g )
% m" P) }3 z! e0 V2 P! ?0 l! x ((< ang1 -6.0)
+ |5 Y9 f$ {! S% W- e (ai_ddvp_set_a -10.0)! T9 K2 \7 {! |; H. y
)
- N% q! ^5 w8 |. g2 U3 w ((< ang1 6.0)2 v& }& [+ [& [# s' |$ e
(ai_ddvp_set_a 0.0)" p' C1 ^' z1 ]: W) p3 Z
)
, V- v" X" g+ O& E+ i( g/ P& |+ t) w( S ((< ang1 20.0)( L* s$ t2 T: @8 C6 Q1 t5 f
(ai_ddvp_set_a 10.0)7 j7 f, f, h9 F9 C. J4 ?% f; n
)
, Y, }4 ~- E4 `; Q ((< ang1 38.0)
% q5 `! A8 i+ G$ v0 ]4 l (ai_ddvp_set_a 30.0)
& E* M" r5 @3 _9 }* U )
9 F9 J8 d# i0 v2 j, F/ ?7 D ((< ang1 53.0)
0 Z y; \7 w/ ~, ~: Q (ai_ddvp_set_a 45.0)
- Q O0 B5 ^% l3 U; O )
" U2 f5 L5 J) Q0 O2 C% r ((< ang1 72.0)1 ~5 ~( _. t1 n+ x% w
(ai_ddvp_set_a 60.0)
: O' |' K3 M8 Q2 P* X# p5 w )) v# T, k* @3 t+ Y# M
(T. o6 f* C9 c3 r/ O- \
(ai_ddvp_set_a 90.0)
/ \5 d O: V5 B% q' g# x9 b0 t. L )
/ Y% d. u5 x; Z) F2 D4 H ); ~6 Z% }. l8 I. [; u
)
5 P: t' s; q, `2 K )
2 x2 a7 c1 z4 h s$ ]5 U0 s )% e( D; i8 L, Z6 W- W
(progn
- ]) X' Y8 h( {) `$ B( ?8 J& w (setq ang2 (ai_rtd (+ pi (- (* 2.0 pi) (angle list_xy list_bxby)))))/ B2 y: q/ b/ m; X, l* e! Q
(if (< 360.0 ang2)7 O1 l3 J7 w1 m1 {$ l0 J* U, g1 b
(setq ang2 (- ang2 360.0))$ v- m5 f y" R' X
)
% Q8 w5 s4 |; Y (if (< (distance list_xy list_bxby) 40)
9 Q1 `% I) W0 ^ j$ |+ O (ai_ddvp_set_b ang2)
- k1 U3 w6 K3 S2 C$ _7 \ (cond ((= ang2 0.0)7 x& ^/ E- W% k7 g: D" X
(ai_ddvp_set_b 0.0)5 ~# G* }$ m) C' l4 g* _
)
) E" Q$ K8 B# q6 N) @" O! N- e! u ((< ang2 22.5)
0 A! y8 s) O; Y4 v" x (ai_ddvp_set_b 0.0)7 h. c% z' [ i' I! ?
): }7 \: Y; u3 t" G
((< ang2 67.5)
# Q8 L! }0 D7 P1 n; U( z# | (ai_ddvp_set_b 45.0)
6 i/ C! f1 h+ Z3 I9 U )
4 n: ?$ L2 f; E: B' Q ((< ang2 112.5)
[) H1 ?4 u, f* C! R; T (ai_ddvp_set_b 90.0); X. m! R$ {- x2 M' B
)7 C) s3 }8 G) D% a" ~9 g5 t) s
((< ang2 157.5)
$ m0 C4 e2 i- d" B) ~ (ai_ddvp_set_b 135.0). W7 W! I. K" s, l9 H5 ?$ O5 E: a
)
* L& q; ]) U3 l% _ ((< ang2 202.5)$ U$ {' m# \& D9 I5 s
(ai_ddvp_set_b 180.0)
0 I# k; G. G0 P, q ): J: Z' k" H1 n- r2 P. g1 ^
((< ang2 247.5)0 t2 _" Z1 R, Z9 L
(ai_ddvp_set_b 225.0)8 y5 I: [- o% u ^
) i1 Y) H5 n( g# B% U2 p% B
((< ang2 292.5)
: S2 ~& F; I/ s7 H W (ai_ddvp_set_b 270.0)5 C2 V/ R. j; s9 M0 T4 c
)
9 M: R5 g: z* \0 b- @* r' t9 X: m$ t ((< ang2 337.5)) x3 S0 Z7 n3 T
(ai_ddvp_set_b 315.0)6 b" S' w, s+ }) t
)3 ]; l9 o; @' c2 O6 Y2 e9 L
((< ang2 360.0)
7 Z5 p. @0 w$ w$ P% t( g* B) s (ai_ddvp_set_b 0.0)* i, p: m$ q' k4 f# {" n8 N- y
)
9 @* V" H: {5 t% K s: o: z; B% a2 a9 ] (T
7 r! J p& L7 C9 G; v. P (ai_ddvp_set_b 270.0)6 n2 V; m8 L* X9 E
)
, [+ X3 ?3 Z7 v" t8 I )
1 A$ h5 Q. F0 Y8 Q g: y5 u8 q )) n4 f, x/ F) g5 }, p
)
8 |5 J" y0 g( G. k/ ?5 S )
& b7 @3 v& C. n4 \+ [5 t)7 v S b$ S& j4 s! a J
: k4 ~( D; q: h% ?6 J6 X(defun ai_ddvp_plan ()
; C- A4 v" y* ^; W' ? (ai_ddvp_set_a 90.0)6 J' k8 w$ {8 G5 u5 w. u+ k1 V
(ai_ddvp_set_b 270.0)8 [1 C0 K9 C9 J g; ?
). j5 ~( x$ Q# l1 S+ n: c0 c7 Y$ `+ v
) t" M9 q0 R, a(defun ai_ddvp_setvdir (a b)
' E! u! Q. U1 v5 r (list (* (sin (ai_dtr (- 90.0 a))) (cos (ai_dtr b))) j0 U% \1 b% q- r" H
(* (sin (ai_dtr (- 90.0 a))) (sin (ai_dtr b)))
J K0 r! a Q* S% p (cos (ai_dtr (- 90.0 a)))8 U8 w* E9 T8 g8 y/ `
), }* m ]* O5 i/ q$ r; @& g6 h
)2 g& K8 v( e3 a+ |4 S: f! }2 l
' \1 u( f% H. M0 J(defun ai_ddvp_set_abs ()# b+ G2 u- Q( y% W7 R9 r
(setq ai_ddvp_wv 1)( b( t9 B/ E2 h9 L7 T8 u
(ai_ddvp_drx ai_ddvp_b_curr ai_ddvp_bx 0)& A+ E0 t5 |! T7 T5 a
(ai_ddvp_drx ai_ddvp_a_curr ai_ddvp_ax 0); D8 j G" X9 W, X! p! z5 z8 P
(ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 0)
6 A4 q: N3 ?! w- \9 g% h3 e; G (ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 0)
6 n# P) A% Y$ v" j4 ` (setq ai_ddvp_vdir_base (ai_ddvp_fixzero ai_ddvp_vdir_base)), C# _/ n$ j0 G3 N
(ai_ddvp_setang (trans ai_ddvp_vdir_base 1 0 T))
5 ~- V9 |/ a$ k; i (setq ai_ddvp_a_base ai_ddvp_a# A) j0 P1 q8 X: A/ K: m. H( K# N
ai_ddvp_b_base ai_ddvp_b
; z1 f4 Q$ m2 G )# R: V% w8 m' e$ t- a& D
% P/ i4 g4 ]: F" q- n* a( ^* E- { (setq ai_ddvp_vdir_curr
9 K; p# ^$ y) Z- p (ai_ddvp_fixzero : p) K y7 T: D, s# E1 b$ E5 ]
(trans (ai_ddvp_setvdir ai_ddvp_a_curr ai_ddvp_b_curr) 1 0 T)2 J3 j7 Q8 w# H
)
4 k2 V! o* w6 x6 |2 l )
/ [) M$ U' B5 ?8 z2 T (ai_ddvp_setang ai_ddvp_vdir_curr)
4 Y- T9 p* Z2 l8 ` (setq ai_ddvp_a_curr ai_ddvp_a( ~# E2 N$ |) E \- j$ Q" a
ai_ddvp_b_curr ai_ddvp_b
) h7 W5 H3 T% B$ B( ` ), G9 P" H0 U; X
" ^! ]* p% W& x9 M2 s (ai_ddvp_set_a ai_ddvp_a_curr)1 }$ M! k. h, a1 j$ b0 ~3 L
(ai_ddvp_set_b ai_ddvp_b_curr)
2 c/ _$ j; A/ M+ b1 g8 l9 X)+ f6 r' Q1 z4 [7 o0 H
+ N0 r4 s S( `# ]6 I. T) F
/ A. n2 E) R3 v/ r2 I2 R% Y(defun ai_ddvp_set_rel ()
' o# x& R( Y2 _- [* A7 P0 N3 i" q0 B% L (setq ai_ddvp_wv 0)
+ Q# W$ \. _1 l6 ~- x (ai_ddvp_drx ai_ddvp_b_curr ai_ddvp_bx 0)9 G. X9 r( \- J w' @
(ai_ddvp_drx ai_ddvp_a_curr ai_ddvp_ax 0)
$ l b3 \; ?" g' s, d) {) D (ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 0)
2 ^& H2 M5 p. Q1 l (ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 0)& _8 j1 n1 b! _" L7 U- d+ X) M+ P
(setq ai_ddvp_vdir_base (ai_ddvp_fixzero ai_ddvp_vdir_base))* r, m4 [! G8 P3 X
(ai_ddvp_setang ai_ddvp_vdir_base). v8 x. s( {; [8 z& s
(setq ai_ddvp_a_base ai_ddvp_a
- @1 J. F. f9 V4 [ ai_ddvp_b_base ai_ddvp_b
+ e( d4 K' U0 u5 A4 O, Q% C )+ \( d$ ^: ~; n7 Q/ Y. ~" u
(setq ai_ddvp_vdir_curr
- W5 U$ y; C" f0 u/ q/ t4 h (ai_ddvp_fixzero
, z% Y' {5 A/ Z# m8 L; |4 ^ (trans (ai_ddvp_setvdir ai_ddvp_a_curr ai_ddvp_b_curr) 0 1 T)
' t) R4 S2 f9 `: z' Z4 B ), p. |! k8 F9 P% n
)
7 j$ \! P6 s& Y/ _' H" t* [ (if ai_ddvp_init
9 v1 ?* Z- s- u% B) k; V+ P. [ (setq ai_ddvp_vdir_curr (ai_ddvp_fixzero (trans ai_ddvp_vdir_curr 1 0 T))
$ s3 D# L0 j9 G* Y! R$ E; f; M ai_ddvp_init nil( V9 `% h; n% ]1 p0 p/ ?
)
; E, L: w% o4 F7 a: h4 W' s )+ w0 G# C- i8 b8 w) t; X1 Q
(ai_ddvp_setang ai_ddvp_vdir_curr)
- \) L* G1 s7 ?5 S. \ (setq ai_ddvp_a_curr ai_ddvp_a# n8 Y. d( c" V$ e
ai_ddvp_b_curr ai_ddvp_b
6 j( ?' b& L: s1 u, E3 `4 t )
1 \/ U: ^/ A9 r& M p: \ (ai_ddvp_set_a ai_ddvp_a_curr)
, r( f' }0 E* R1 @! w* A. g (ai_ddvp_set_b ai_ddvp_b_curr)
' O& m0 w5 M/ [. ~)
( x( t2 s- ?7 V8 M; Z
, g7 X1 H% J* b) a9 F" n(defun ai_ddvp_fixzero (vector / vector_x vector_y vector_z)! u# X3 g5 E) S8 T
(setq vector_x (car vector). @* n9 o+ w6 e. i
vector_y (cadr vector)5 w, J9 `4 w6 x: r1 ^* W
vector_z (caddr vector)
X$ d+ c6 O; L# u )
! L5 |0 ^0 u4 B$ q: Z. r. i7 ~ (if (equal vector_x 0.0 1e-06)
! ~# F$ F0 s6 i: d$ y2 O1 | (setq vector_x 0.0)3 m& |3 z- P3 Y& j0 b
)8 t' L$ l/ m! [4 V2 ?
(if (equal vector_y 0.0 1e-06)' ]* y$ W# `5 N4 X& s* o& q- X" r
(setq vector_y 0.0)
4 Q- r2 |4 D( ~$ e )3 f, k6 d7 n& S# L* M
(if (equal vector_z 0.0 1e-06)- `8 O" c& T9 W/ U9 Z! b0 j
(setq vector_z 0.0), F1 }( P6 P6 u$ S
)4 f& ^! `7 A# r, ]
(list vector_x vector_y vector_z)) \8 z$ g* V+ ?) i
)7 y/ p( [- K- y9 x1 @- k' E: F+ @' Q/ Y
( a) t% T' }- {5 N6 e8 |(defun ai_ddvp_setang (viewdir / viewdir_x viewdir_y viewdir_z ai_viewdir)9 v* g" `5 j! b' B' U. C8 m7 Q
(setq ai_viewdir (ai_ddvp_fixzero viewdir)! I4 [* h3 _' X6 M. H* K8 ~
ai_ddvp_b (ai_rtd (angle ai_viewdir '(0.0 0.0)))3 a4 {* Y% g( F) e1 m
)
) Z$ D# j$ ~+ ~; [ (if (equal (list (car ai_viewdir) (cadr ai_viewdir)) '(0.0 0.0) 1e-06)
& q; n1 S( j/ y7 U0 | l5 X* M3 n0 ?$ F (setq ai_ddvp_a 90.0)
5 c) J- O Y+ Y+ z; d (setq ai_ddvp_a (ai_rtd (ai_ang3dv 2 s) J# ~1 J; d+ I8 \
ai_viewdir
1 J' \- J& z I2 x% ?% `8 u5 y) T (list (car ai_viewdir) (cadr ai_viewdir) 0.0)
/ R; L- |0 V* T3 C( j l$ e+ _ )+ s4 p. @1 N) O7 z
)
* W' K2 I% r3 c% \: f6 L )
% n3 u8 e8 Q" [1 A% L )4 s0 T) I, U$ Q4 f9 H
(if (< (caddr ai_viewdir) 0.0)
: u" w. \9 T. S! U (setq ai_ddvp_a (- 0.0 ai_ddvp_a))
4 x5 b" n- P2 d1 M, r" E# q# |& ^6 W4 D (setq ai_ddvp_a (abs ai_ddvp_a))3 H, y- I" K, v" F& ?; H* U0 ]
)2 ?: f, p5 q# I- U K# L$ |
(if (>= ai_ddvp_b 180.0)
* h1 B8 f7 ?; x/ L% X8 I [ (setq ai_ddvp_b (- ai_ddvp_b 180.0))
6 S5 q5 p2 _5 f/ I: A8 a6 p (setq ai_ddvp_b (+ ai_ddvp_b 180.0)); w! m: b$ o; _$ D
). e; [* t! z3 g1 ]
(if (or (= ai_ddvp_a 90.0) (= ai_ddvp_a -90.0)) N4 t7 \4 M: M
(setq ai_ddvp_b 270.0)
+ i' H! }% P6 v, }' A )7 D' } I& Q4 \. ]# D/ A6 C
), U H6 P) J7 C
7 C1 g, ]6 o" i- \/ O- A* i! v6 |(defun ai_ddvp_main ()
: o5 {5 ]4 u8 R6 g# @! `& e (ai_ddvp_start)
$ Z- ^. P) K7 n! H. l (ai_ddvp_setang ai_ddvp_vdir_base), {! b! I' M4 z% `; f8 [
(setq ai_ddvp_a_base ai_ddvp_a
( h- N8 H/ m- x: K; m ai_ddvp_b_base ai_ddvp_b
6 w7 s' c4 N% B C2 r: W2 N+ d- F' _ ai_ddvp_vdir_curr (ai_ddvp_fixzero & _$ y- k% H1 o* i, ?/ f
(ai_ddvp_setvdir ai_ddvp_a_base ai_ddvp_b_base)
* `, X4 S/ s; r4 q# H )* b; r0 K0 T8 g+ {; s& X/ p- I$ t) o
)1 E, p. Z4 k6 r8 n' [
(ai_ddvp_setang ai_ddvp_vdir_curr)0 ?- L' `0 F9 g/ H8 T1 U
(setq ai_ddvp_a_curr ai_ddvp_a* Z) S8 s5 |3 p" B& K
ai_ddvp_a_last ai_ddvp_a_curr, E$ b9 ?( J! x# O8 \
ai_ddvp_b_curr ai_ddvp_b& [3 l0 N8 X. W) |. P
ai_ddvp_b_last ai_ddvp_b_curr
3 Q$ i& u! c1 Z6 k )
. h' \7 E' g& S/ ` (if (= 0 ai_ddvp_wv)
; v( w6 G- g$ K7 } (progn
9 |9 E) U, @" N5 v$ W (ai_ddvp_set_rel)
+ j/ t4 Y; N" g& B (set_tile "ddvp_rel_ucs" "1")
; p) v* q; z* O7 i )/ j& D! H# M/ c4 z7 N4 P
(ai_ddvp_set_abs). L$ @* A5 J( b8 D' R% Q, `9 @4 \4 F
)
( p7 V! F/ y! }' U$ \" `) O (setq ai_ddvp_t nil)* |4 r- v" f1 {, U/ V4 P
(set_tile "ddvp_val_x" (rtos ai_ddvp_b_curr 2 1))
{; e! N0 Q# _8 J. m (set_tile "ddvp_val_xyp" (rtos ai_ddvp_a_curr 2 1))2 J) a. e2 S$ ^2 r. |# f/ g
(action_tile "ddvp_abs_wcs" "(ai_ddvp_set_abs)")
( R. d5 r6 Q2 i( |- G3 h% M8 _ (action_tile "ddvp_rel_ucs" "(ai_ddvp_set_rel)")
; t7 x- g: ]" v (action_tile "ddvp_image" "(ai_ddvp_image $x $y)")
$ Q! @! g1 `1 F0 \% \ h) L+ V (action_tile "ddvp_val_x" "(ai_ddvp_set_b (distof $value))")/ K6 X0 }# b9 ~9 B; W: ?
(action_tile "ddvp_val_xyp" "(ai_ddvp_set_a (distof $value))")7 Y5 Y |8 n# m# ]- Y9 f% E) v
(action_tile "ddvp_set_plan" "(ai_ddvp_plan)") K2 M4 Z* D2 S' D1 M) T q
(action_tile "accept" "(ai_ddvp_do)"): Q6 R( G! j8 ~7 D' y9 I* P
(action_tile "cancel" "(done_dialog 0)")0 B# Q! O) d7 Q
(action_tile "help" "(help \"\" \"viewpoint_presets_dialog\")")
) n7 T/ C" x4 N7 Y* S2 B+ K (if (= (start_dialog) 1)0 I$ a8 m O. x0 K9 o, G2 O
(if ai_ddvp_t
# B! B( m* k# e (progn
% k( U) p1 I9 o5 T) J (command "._WORLDVIEW" ai_ddvp_wv)
4 ], d( l) J! }9 e& q p7 Z (command "._VPOINT" "_R" " U. T3 N3 F* j7 x+ T9 E
(strcat "<<" (rtos ai_ddvp_b_curr 2))' D+ q/ w$ n& r" @1 ~: C, ~, v) S
(strcat "<<" (rtos ai_ddvp_a_curr 2))
~/ d) P7 c# T: m6 H+ R! [ )( [2 G5 Y4 R: n" \' k$ n9 I
)' J% j! E- S9 i/ Q; [. ^. A
)# U* Y3 I5 j P3 @
)/ [: F( G: F# c' L4 t& O
)" [( H9 ], M# Y) l" u, D- ^: J
& g8 ^2 @# n. b& {1 x
(defun c:VP ( / ai_ddvp_wv ai_ddvp_vdir_base ai_ddvp_vdir_curr4 |: b5 S% `# D
ai_ddvp_bx ai_ddvp_ax ai_ddvp_by ai_ddvp_a_curr
* V: [8 y* I9 Y) h7 F ai_ddvp_b_curr ai_ddvp_a_base ai_ddvp_b_base ai_ddvp_p& t8 {6 u0 o0 e: M) R4 @3 \, ^+ ^
ai_ddvp_t ai_ddvp_init ai_ddvp_a ai_ddvp_b
* F" v" e* _3 } f6 R* W/ Z4 I ai_ddvp_a_last ai_ddvp_b_last+ S6 X! b1 z8 ?! R( H3 w% j. \9 e
app dcl_id old_cmd undo_init
C/ y/ q, t4 L# l )
! w" I1 ~' \. ~% [. A$ |' @: w5 V$ V# W4 _) F0 n4 H' `) }
;; Set up error function.
9 d" z- o- O( J! R( ]4 P (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho ~" r% d* u9 V: r4 r* ]& `2 s
old_error *error* ; save current error function+ N; Y7 K# }! Y% x9 I6 c7 `
*error* ai_error ; new error function: J! z" F; t u; O% m$ \# b' N q
)
% y6 i6 m; M4 v* E3 `, Q- \0 p' P& }) y( h5 U: c# K) u
(setvar "cmdecho" 0): B5 i+ P9 J* T& G4 `' ^" x
& c7 ^& G; V: `
(cond/ k& F, x, N# Y; g! m+ a
( (not (ai_notrans))) ; transparent not OK) a; L; S' g( R& R0 ~4 S
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?2 r t6 {9 D. U4 u
( (not (setq dcl_id (ai_dcl "ddvpoint")))) ; is .DCL file loaded?+ |, |. f3 c- L
(T (ai_undo_push)) w# l' I1 I8 ?
(ddvpoint_main) ; proceed!
( ]; ?+ O! o% [5 {# E. q( | (ai_undo_pop)
% e2 Z. p5 ~5 r5 M9 | ) " x3 @3 h( M' R, g0 s$ b
)
5 J# g4 {8 T H+ I0 a6 G$ @
1 i i; o: ~- A5 q4 { (setq *error* old_error) & f* W6 c# l4 _
(setvar "cmdecho" old_cmd)
* }) O- |% B2 C4 d* C1 c. f' a0 S (princ)! e9 E( t- Z" Y4 x" f- I
)
* }3 ~' z* k: I- }
! g" k8 U5 B* d) g8 a; i(defun ddvpoint_main()
/ b4 h, A" R2 I" `) s7 j
, U# R$ c E1 [5 G/ O0 G6 U8 U% _ (if (and (= 0 (getvar "TILEMODE"))4 \' B& X1 T$ F9 Y
(= 1 (getvar "CVPORT"))
5 g8 b. V6 }8 K: i& ^ )
% B4 p. R/ u) A& w, R! [& d! X- F: H (princ "\n** Command not allowed in Paper space **")
/ C2 V) h0 h6 w) _+ b (progn5 h$ b/ Z; [+ W
(if (not (new_dialog "ddvpoint" dcl_id))
# {3 v) G. C$ u7 r% [$ [# Y (exit)
' M& t5 P( |6 x! ` )
3 |0 `: C+ w& Y (setq ai_ddvp_vdir_base (ai_ddvp_fixzero (getvar "VIEWDIR"))! _ m% J8 T8 ]" K- `1 z. T
ai_ddvp_wv (getvar "WORLDVIEW")
3 Z8 u& K: |2 [' ?$ v/ _ ai_ddvp_init T. @ r) ^3 k, c: j
)
; k7 K$ e4 ?' ?, V* [: ]5 o (ai_ddvp_main)
; p3 o; [3 C6 P( q0 R )
' C/ |+ C* n; `& ~ )7 A [1 D. E6 V" S
), ^* ^$ A9 x, M6 B/ y9 a
; ^5 c, @& x& r ]6 S9 O( |. V
(princ " DDVPOINT loaded. ")4 x! J9 J; H4 z; H6 ^
(princ)# O: G. f! ^5 B& f, C
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
. O. S$ F( q' X7 i) {;============================= Tran Ngoc Thang =================================2 A; k6 q( O( o
(defun c:zx () (command "zoom" ".5x"))
# H3 a `* X/ H3 s7 t(defun c:zz () (command "zoom" "p"))) l l" g' T' g7 u% _6 y& E) w! p
(defun c:za () (command "zoom" "a"))( W9 k* e) z# n' z; T8 v
(defun c:zd () (command "zoom" "d"))
1 ?5 p2 m& T( e! d( U$ ^(defun c:ze () (command "zoom" "e"))4 U- x/ ^1 i+ f6 \
(defun c:zr () (command "zoom" "" ""))0 D0 ^( T8 l6 A& g
(defun c:vv () (command "ucs" "v"))
s. @% ~2 j) j$ F% h+ Q(defun c:co () (ssget) (command "copy" "p" "" "m"))
2 n# N" l7 [3 P(defun c:c () (command "circle"))
6 S# X5 m, E" ?6 B: [(defun c:rt () (command "rotate"))
, j4 g' B. k* r, o, |. n(defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
2 u2 p1 p3 w- C# N1 w; d7 g(defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
) c+ A9 e; s$ w$ H' s$ B(defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))) Y' N0 @9 a& @ Y2 M
(defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
- j7 s; U7 c3 Q3 `(defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
/ m' z0 t4 U6 z4 C" p1 }) s0 w; ?(defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))% p1 D/ l; W$ v
(defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
7 z9 |) D* ?" Y' C(defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
: l) W- g* S( ?% a- T) y) B4 v; d(defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))9 A( @& q' L$ v! s4 p1 ^/ C
(defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45")); L( d/ L1 z; R: d! i( |+ O1 f8 [' X
(defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
7 O& r. g% Y# x* v/ G(defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
2 ]! {& e! d; q0 R/ v; e4 w# K' ]$ P(defun c:fd () (command "find" "p" "" )(princ))(princ)
" {0 f+ v* Z8 N& h5 K8 l) E
3 V! g6 o3 q- m7 j(defun c:VNI () (command "-style" "VNi-AUCHON" "VNI-vauchon" "225""1""0""n""n""n"))(princ): i4 e& Z4 g& L0 T* v7 [! n
f# x4 X+ E, Y3 }# f- X(defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
8 b. S* Y! {& {, | G(defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
$ h) d2 m, l% Z0 m6 O& o5 x/ D(defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
. \5 V( f& Q- ^3 _- A3 c, X% L(defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
3 v' \6 r! E" z8 `9 W3 h; w: _(defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
# P, [( m- L' g4 I$ r* {(defun c:chu () (command "-style" "CAMBRIA" "Cambria" "200""1""0""n""n"))1 k7 d3 E* N5 o( H) F
(defun c:cot () (command "-style" "COTES" "Romand" """1""0""n""n"))- N* Y; j2 K4 v1 g1 {% n5 [
' e4 s; g6 Z5 O2 q# I
(defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))- S# \ C$ t- s: R. Y, D
(defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
( x y7 p3 [. ~- s1 X9 \1 r(defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))
3 _! d; k5 r" y, a% [9 }6 x(defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n")) |, N9 w" m0 H/ }! o8 m1 J
(defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n")); C! Y# E; r5 v R, _- Z
(defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
. p9 Y! S o) Q: f3 P0 c9 Q0 K
(defun c:ps () (command " SOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file. Z) H6 M! t) p) W
& F* \, F7 p& Q: V9 {( T
;free lisp by cadviet,cd2k44
* a# J- |+ {+ g$ s) z3 y;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830+ e! G v0 f% {% \$ g9 w* y
(defun c:FTEXT (/ ent tstyle )# J" l& t& H1 r, z
(command "undo" "be")
, {+ N8 ]$ W5 Y3 I- E6 _- Y(setq ent (entsel "\n Pick text :"))
# ^5 S6 O: \' M8 s" ](setq TSTYLE (cdr (assoc 7 (entget (car ent))))), y6 C8 o3 k' o7 \! ~6 H) ]& x
(command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")' \- c$ e4 S$ f$ X5 h
(setvar "TEXTSTYLE" Tstyle)+ I0 \* T2 ?$ c& _
(command "undo" "end")
4 s" n* C" ~: _1 Q8 ])
) g' c5 z8 I" V/ M! @;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)& [& y; K1 C( S& D0 T
# a8 d2 x, R2 [2 {0 v
;free lisp by cadviet,cd2k44: Y) _) s$ x3 p' i6 n
;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
# z) y- {' W6 T(defun c:Fvnh (/ ent tstyle )' o9 ~: p$ j% `( D
(command "undo" "be")0 U' {2 \4 }) Q
(setq ent (entsel "\n Pick text :"))
1 z, |) y- `* P! O2 c; d9 W% G3 y/ e(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))5 }- g1 M: O9 }, b1 n9 j
(command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
( a/ R U+ ^ M, u* H(setvar "TEXTSTYLE" Tstyle)+ Q. j Q0 I6 a8 ^
(command "undo" "end")) C. G# O' e" S* J* {$ }! G
)2 ~( ]# v( E# L$ V8 [
" ^) O, V! k f/ g M7 [9 o. r
;free lisp by cadviet,cd2k44
: a' U4 \* {- I2 I7 g/ e( [$ [, m$ m( @;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830* n1 Q: a+ c+ P+ u* h' ?+ b' s
(defun c:Chbg (/ ent tstyle )# {2 V2 T. ]5 A$ V$ _4 k, t/ z
(command "undo" "be")0 s% X0 m& f8 L6 D$ O. C f8 p
(setq ent (entsel "\n Pick text :"))" v) a6 P2 q: U; ~ L" ?
(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
3 `5 Q$ l2 |* Z G. @+ \( w(command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")9 t W+ a: W4 U$ q
(setvar "TEXTSTYLE" Tstyle)
0 J3 Q$ a0 j3 i+ l(command "undo" "end")
& ?- X" s, |0 S7 Q/ w! h* U)
) k8 D% L$ c) ]- R! v
& ]0 S% f' J( L6 J9 {;free lisp by cadviet,cd2k44
7 O9 ?( G6 l8 Z& L3 Q;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
4 B* b/ `% y5 J3 o/ p7 r2 L(defun c:Chsm (/ ent tstyle )9 {6 b0 b& G, F8 m- E. c, b; \
(command "undo" "be")
8 R: V w. s7 s(setq ent (entsel "\n Pick text :"))
/ ]5 {1 ~* R- p7 Z7 R' h: \(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
. m' s \+ q" w* ^; S6 I(command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
' f$ y. L J8 O7 x' ?0 e8 g6 @(setvar "TEXTSTYLE" Tstyle)5 \% T8 z6 Y U2 K9 c m
(command "undo" "end")
; }# n7 t. ?! o)
& I4 i/ z: n2 Z, J, M
) [ c; W! s( g. t; u9 ~;free lisp by cadviet,cd2k44
0 _7 {5 i" |+ G) u2 F;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830# i( z& X7 u: f/ D+ H1 j0 e* L0 J2 f
(defun c:Fttf (/ ent tstyle )
7 h) b$ e% _) a; `$ u(command "undo" "be")- n% C/ X" n4 D3 F9 ?' X- j
(setq ent (entsel "\n Pick text :"))5 o- @6 a: ~- Q& [
(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
! b: Z: Z( G8 V7 m/ E5 D3 f; P3 ^7 K/ M(command "STYLE" TSTYLE "Cambria.ttf" "0" "1" "0" "N" "N" "n")8 A1 z! m" ^, H* q9 Z0 K4 `+ \* _6 C
(setvar "TEXTSTYLE" Tstyle)* D! J7 L$ `. l f Q
(command "undo" "end")& @' z% e9 {9 ]: v% p/ B
)
% Y- n6 z' q" [
3 @ j8 k% @6 R- A;;; ============================================
# r6 C; r9 K1 J: f+ H4 K5 g;;;' w) h9 w& {% C
;;; LISP Creater Tao Duong Dan AUTOCAD2000
& c; k. u7 ^- }) f) N2 K, o2 q* h! {;;;
* k* H, h" }# i( f4 A;;; ============================================# Q5 p( A; N r
8 V, O4 Z% I+ {4 E;;; ============================================
9 _" [9 p' ^" ?& ^3 \$ R+ @* d;;;( e) {+ d* H; Y) E; k
;;; CREATING FROM AUTOCAD2000! C# y1 N4 x3 u, a/ n
;;; Tran Ngoc Thang - Sinh 03-05-1976
7 z& s# V; T& g' q8 Z2 t;;; ============================================ H) D' f/ G2 P" G1 _) J8 h$ \3 \
. }7 |; s' e0 F% j* ]. v, Y
(setvar "MEASUREMENT"1);Bien So SCALE Cua BHATCH& b! _& B* v" d( y- T4 O
;(setvar "DYNMODE"2);Bien So An Hien COMMAND LINE9 k1 ^4 v [" ]1 q E1 r2 q
;(setvar "VTENABLE"0);VTOPTIONS Enable Animation for Pan and Zoom2 ]5 M1 ^6 \0 a9 t( z' z% ]
(setvar "INSUNITS"4), R( L! i7 g7 K t! e n0 l- i3 f
(setvar "ANGBASE"0)" P- P" Y: p8 w; |# K( w/ Q, g
(setvar "ANGDIR"0) Q2 R" h, r4 I4 `3 u
(setvar "AUNITS"0)
7 \# Y7 m( ^& y: @(setvar "AUPREC"8)- S( o9 ^- I, o$ ]! T: j, E6 m
(setvar "LUNITS"2)7 H4 A; ]/ A/ j' O
(setvar "LUPREC"8)( @) a. R$ {# I; c
(setvar "ACADLSPASDOC"1) 4 `. f. g3 @7 a9 @" ~ x+ ^% z
(setvar "pickbox"5)
+ a' W5 [) K1 P0 a5 X1 y$ q(setvar "blipmode"0)4 T I/ v, h# S7 r
(setvar "mirrtext"0)6 H# t1 B' A! N \: J
(setvar "cursorsize"100)
! i8 c. I5 N4 L$ I- @. N(setvar "ZOOMFACTOR"75)
" h: x1 a7 v' y3 N- ^- b9 Y(setvar "LTSCALE" 10)
. q: f0 i, X. O+ `4 B(setvar "lwunits"1)- o" q6 Y$ k7 M; L# {! y4 J4 Y
(setvar "DIMBLK" "Closed")
! x6 [3 p" l6 ]& x: [- U(setvar "DIMGAP"0.0693)
. d- y- d; C, D8 L(setvar "DIMASZ"0.20)
/ \9 s# ?+ ~# u( v(setvar "DIMCEN"0.2)
, \4 s4 b0 @- l5 A( E, Y% F(setvar "DIMDLI"0.1), [ s4 p, }6 e4 Z6 i
(setvar "DIMEXE"0.0693)' n0 K7 s8 l, H2 I' u2 t! d( G; }
(setvar "DIMEXO"0.25)# h2 L0 [3 j. h8 ]! F2 |+ M
(setvar "DIMDEC"0)
' l$ R8 `6 {; `/ w' m j: [: `! k, z(setvar "DIMTIX" 1)
* W% ~3 g0 e* V1 Q6 h(setvar "DIMTXT" 0.099)4 i8 T6 I0 o4 a- p4 D
(setvar "DIMCLRT" 7)
5 c9 B/ F; k, I7 a6 F5 A(setvar "DIMTVP" 1)7 b6 v4 e3 v# L$ t/ H- r4 t
(setvar "DIMJUST" 0)
8 o2 ^ X) d4 [4 g7 l" A(setvar "DIMTIH" 0)
. `9 Y# I# c& V _* ~! c(setvar "DIMTOFL" 1)$ T* ^, r! R2 ?( }$ A9 c, W+ L' _
(setvar "DIMSCALE" 1111.1111)" u c; J* L! k$ K
5 j4 |8 N- r% x7 v$ ~0 K2 C
: e+ d0 Z1 x. t( h) M* p+ N: Z
0 }2 G" |( C2 a% ~
(defun c:zp () (command "'.zoom" "p"))
; p2 O p1 o' C# y8 M8 g% g+ ^* a(defun c:zz () (command "'.zoom" "p")): e" M6 b$ k/ H- h4 @2 V% b$ a
(defun c:ze () (command "'.zoom" "e"))
! Z1 M* R/ U1 _5 a: L& k(defun c:za () (command "'.zoom" "a")). }0 P; A! e# S
(defun c:zd () (command "'.zoom" "d"))( w) d+ ?( p+ Y/ w, }" o5 E
(DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
$ w) W0 ^* V4 w8 L" F) g' x(DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
5 L% X# A5 C* q8 r5 |5 Q(defun c:de () (command "ddedit")(princ))
8 D$ \$ z d6 ]% N* m0 [/ n(defun c:dda () (command "Dimaligned"))
& {7 g( _( [. g: F2 y# s6 A(defun c:ddb () (command "Dimabaseline"))
" I/ n9 k9 H5 R( v$ v4 J/ D(defun c:ddc () (command "Dimcontinue"))
% \* o) O$ J1 ^, o6 Q(defun c:dde () (command "Dimtedit"))
~1 h$ b5 c& r! Q) B(defun c:ddf () (command "Ddattdef"))6 L; U7 m- s$ D$ G) S( |
(defun c:ddi () (command "Dimdiameter"))$ x$ q5 }- S% j: N5 x' _! J2 ~
(defun c:ddl () (command "Dimlinear"))
. ^' @9 o0 n5 W( O" ?2 R(defun c:ddn () (command "Dimangular"))
; J w: w$ @0 y: N- f2 p(defun c:ddo () (command "Dimordinate"))
/ g% x9 p: |! _(defun c:ddr () (command "Dimradius"))3 l0 Y/ F" _- v( G0 U
(defun c:dds () (command "Dimstyle"))
/ E' \( a2 d. N b
8 y; j4 V2 k8 h6 `(defun c U () (command "dim1" "up" "select" "exit" pause ))(princ)* C) v" H X5 I- d: {/ z6 H
(defun c H () (command "Dim1" "home" "select" "exit" pause))(princ)) ^# V) B% U' R$ l* ^+ D) K9 ?
(defun c:UU () (command "dim1""update""all"))7 b" W7 l; t$ V H& j
(defun c:ded() (command "dim1""tedit"))2 N/ S( e4 O' s
(defun c:da () (command "dim1""ali"))! J2 t" }$ `6 | k' z3 z
(defun c:dll() (command "dim1""l"))
0 h" |& T( Q7 X+ @% K(defun c:dan() (command "dim1""an"))6 S8 e/ f: F4 F" m& S0 ~
(defun c:d1 () (command "dim1""ra")) p; v( S: K( z; Y+ N1 H% _0 T4 u
(defun c:n () (command "dim1""new"))1 Y. b3 A7 V" \ T
9 `8 I+ x, `2 V/ z Z5 Q, L+ W
(DEFUN C E () (COMMAND " EDIT"))
/ K2 D$ D: B3 f" F(DEFUN C L () (COMMAND " LINE"))
0 V9 C; C: j1 f% ?) i(defun c:dd () (command "dist")(princ))
% b( I, u1 r, A! V(defun c:w () (command "pedit" pause "w" "au")(princ))9 H! \1 u f" V' l4 g6 o2 S7 Z
(defun c:pg () (command "polygon" "polygon"))
; C/ I5 f, E5 Y/ Y9 |! P. t9 F' L(defun c:el () (command "ellipse")): [9 |) H5 j* X# d: \9 ]
(defun c:xe () (command "explode"))
- T! L1 r2 g: F' k" v(defun c:eex () (command "extrude"))$ j6 G- V& `9 o, L9 j2 v
(defun c:xg () (command "xline""a"))5 i8 x4 l+ ?$ m5 e; Z* }; R8 H$ X
(defun c:xh () (command "xline""h"))+ C; F8 m5 ^' P1 T: r$ g! b
(defun c:xv () (command "xline""v"))
, b& M( X( j# R' v; N1 @
: W; s0 k6 i! v3 m5 g8 H) [(defun c c () (command "osnap""cen"))
5 a( l5 `1 u9 O0 U% F& U(defun c d () (command "osnap""nod"))
4 m i9 m9 S% `7 J(defun c e () (command "osnap""end"))
/ p/ \& \: ~9 q) b- S(defun c i () (command "osnap""int"))
/ @ d" y0 s" t(defun c r () (command "osnap""per")); c; i) U1 i% s0 c+ P
(defun c n () (command "osnap""none"))4 V8 p3 Z d- z8 n& S. w) _2 s
(defun c q () (command "osnap""qua"))6 {5 X# y9 ^* R& W. O& |7 `& u v
(defun c m () (command "osnap""mid"))
) H. {; a7 p1 ]4 m8 V3 c" l( i(defun c t () (command "osnap""tan"))
- O& h( L3 w' s(defun c in () (command "osnap""ins"))5 m2 r9 U$ R5 x% l4 {- h, |3 e
(defun c:oa () (command "osnap""nea"))/ z+ p$ W( m5 k% X
(defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
( Z1 }, D# [4 i;(defun c:du () (command "dim1" "up" "s" "pick" "other"))9 \! P6 p9 D: e. y& c7 O, \
;(defun c:nn () (command "new" "y" ))
% J4 \- d$ P- O5 s* ]5 ~
: y6 }9 c# S3 {) P: v- T% S(defun c:/ () (command "limits"))5 |4 d2 @/ @- G4 d( @7 c
(defun c:`1 () (command "region"))+ h& _8 n3 d; D6 O4 p" H
(defun c:`2 () (command "subtract"))- h/ Z' O5 s) `0 Y2 y, g# G
(defun c:`3 () (command "union"))
6 g, `- o7 T% S+ Q(defun c:`4 () (command "intersect"))5 h1 @( L* V$ g6 S- b* b8 ~' K7 r. V
(defun c:`c () (command "cal"))
8 Z0 H3 b) Q' V(defun c:`g () (command " olygon")); D6 @7 I3 V# w4 I( w, }
2 E) T2 F. C3 ~- |& u" M9 u
(defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))6 k. q1 o( S. V4 H9 }* c( h: @0 I2 J
(defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ)). x' L( n$ \9 ~! d& e, r! I) u
(defun c:ip () (ssget) (command "print,_plot" ))(princ)
9 m, J, y b/ Y
% }5 g1 p+ T& H+ c(defun c:ddm () (command "ddlmodes" pause))
2 G1 k6 }' h6 j$ g7 q8 N; f9 T2 B3 H- ~
(defun c:sha () (command "shade" pause))
" x( g/ B, `: q" }/ H# z, Q9 h7 h( k" e1 `, s" J6 R. \
(defun c:sr1 () (command "surftab1" "p" "" pause))9 U! r8 a1 ]* J, M% j
(defun c:sr2 () (command "surftab2" "p" "" pause))
- K( }% X/ ]. ?7 [+ G; ~6 R& f% }) w* r0 Q9 }4 ^6 j+ Y8 l1 u
(defun c:ad () (command "audit""y"))
( Q9 W! W# N! f. O0 ?1 T(defun c:q () (command "quit"))2 t7 l/ A, a3 o+ ~$ g1 X" V1 O
/ P! u6 A3 f* i# V' ^1 M0 p
(defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))& C5 v- g% r5 v' H* U0 `* W
(defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
8 I1 z/ Q/ v- @" \5 d( C/ P(defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
5 N' p8 T$ `8 w9 {% N G(defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))& W+ Z9 y' |+ S$ G1 Y" ~) M
(defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))7 h; L! K* a4 L- I' w( _1 f. L
(defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))4 @7 ]5 L1 l" h8 i) f
(defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
6 Z4 r$ H$ o6 J(defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))2 _% r* R* P% F. h8 L$ F3 X8 k
(defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))& k, x5 _% _; I3 E& ]4 l- Z
: o- R" P8 @4 ?9 Y0 S' j
(defun c:u3 () (command "ucs""3"))8 Z5 q7 @1 b a- ^3 d5 Q4 q
(defun c:ue () (command "ucs""o""end"))
# p c, t6 {6 n, K6 T( S(defun c:ui () (command "ucs""o""int"))( ]6 x7 Q3 C0 X/ Q- C
(defun c:um () (command "ucs""o""mid"))
- P; m. _5 `6 Y2 O. a$ e8 i- b(defun c:uc () (command "ucs""o""cen"))
7 N: o: @8 R) n3 a(defun c:uq () (command "ucs""o""qua"))# B$ P7 t( L4 f! }; Q7 C
(defun c:3s () (command "ucs""3"))) n) Q# a1 _1 C4 T5 ]
(defun c:sx () (command "ucs""s"))
, @: P& l O0 Q: @3 C(defun c:sf () (command "ucs""o"))6 M2 Y1 i! b. Q1 w4 E: { @
(defun c:sz () (command "ucs""p")), n g% i, {6 g$ F( x3 ~
(defun c:sr () (command "ucs""r"))6 r1 ` H9 ^: u6 w6 Q
(defun c:sw () (command "ucs""w"))
`* w& k! G8 w8 Z# T8 `& I* y8 z(defun c:fv () (command "ucs""v"))8 z x0 @/ W5 p1 v
(defun c:ux () (command "ucs""x"))% A% c9 i1 S+ N* g
(defun c:uux () (command "ucs""x""90"))0 v" M$ G% t! ]
(defun c:xxu () (command "ucs""x""-90"))
/ V& K% g ?/ h. i5 R' u(defun c:uy () (command "ucs""y"))6 x4 z/ P) ~2 M& T- l
(defun c:uuy () (command "ucs""y""90"))" g/ m. }: e* Y$ J
(defun c:yyu () (command "ucs""y""-90"))
: z8 v }! P0 n- c(defun c:uz () (command "ucs""z"))& Q+ w4 M [ {# L
(defun c:uuz () (command "ucs""z""90")); W% g6 J+ d! ] S K
(defun c:zzu () (command "ucs""z""-90"))4 z+ j5 u; C& p3 R
(defun c:uci () (command "ucsicon" " roperties" ))(princ)
) B) T$ C% F" b; M! ]# h# k(defun c:ucm () (command "ucsman" ))(princ)
1 A, f+ s, u) \: }1 _: k( v6 I- A0 ^; }7 N
(defun c:sa () (command "vpoint""_non""-1,-1,1"))8 J: i$ ?, \9 s6 S6 Y
(defun c:sd () (command "vpoint""_non""1,-1,1"))
! g6 v1 k# |/ T, s(defun c:se () (command "vpoint""_non""1,1,1"))
9 p8 ?# S; J- }$ W, @" F5 o- h1 o(defun c:sq () (command "vpoint""_non""-1,1,1"))
! r- T4 ?$ n/ _: O(defun c:vc () (command "plan""")) I9 z/ l4 y; V/ `; M9 j
(defun c:vd () (command "dview""all"))
8 X/ L. Y1 i( L! X4 ]; }9 ^6 e8 M* V4 C$ M( E' G" ~2 t1 A
(defun c:TT0 () (command "tilemode""0"))
) P- T) Q& N- L. ?1 e6 L- e6 X(defun c:TT1 () (command "tilemode""1"))' | w6 g8 ^% \0 N8 q
3 \ x" h% Z' l2 x$ [8 \
(defun c:vt () (command "vpoint""_non""0,0,1"))
( B: M8 |0 R) N/ M(defun c:vb () (command "vpoint""_non""0,0,-1"))
- Q2 F& e: n, K- x(defun c:vl () (command "vpoint""_non""-1,0,0"))
7 J8 ^1 f, N7 k(defun c:vr () (command "vpoint""_non""1,0,0"))
7 J+ r3 W9 \# u( e& @5 L(defun c:vf () (command "vpoint""_non""0,-1,0"))
3 p! P$ G4 Z" \& x$ Q(defun c:vk () (command "vpoint""_non""0,1,0"))+ U" s7 D* d! T: w1 T3 l
6 n9 e8 p! t- h5 n* K
(DEFUN C:MM () (COMMAND "MIRROR"))
; j6 v8 n) M3 l: @(DEFUN C:MP () (COMMAND "MOVE" " "))) P5 w% A/ _" u: Q
1 L/ v8 L. [. I
(defun c:mee (/ a)8 q, B, v- q( D# \
(setq a (ssget))(command "move"a"""end"pause"end"))
% R3 e: Z: c9 A7 G$ g/ L2 }+ N(defun c:mc (/ a)
1 ?, O1 C; H$ B- f) y3 |- k (setq a (ssget))(command "move"a"""cen"pause"cen"))
/ n9 H) J+ s$ m0 ]: r: Q) e$ E2 l \(defun c:cc (/ a)
: F/ G/ F" P2 k% |, V" Z (setq a (ssget))(command "copy"a"""m"))
( }1 y6 `3 ^+ a& L. ~(defun c:ce (/ a)
* X* ]" G! K! P8 G' |( f6 X! P; l) V- s (setq a (ssget))(command "copy"a"""m""end"pause"end"))
% W4 Y) O. i" X) i- b& Y(defun c:cn (/ a)
B0 M) J, Q6 L9 w2 B" @ (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
9 W1 Q& n. y4 ~( j* V1 ]+ m(defun c:tl ()(command "trim""l"""))
# m% E5 Z7 _- l(defun c:tf (/ a)
& T" o; f d2 b1 O4 ] H (setq a (ssget))(command "trim"a"""f"))6 L+ P, a& Z# t4 q' w
(defun c:el ()(command "extend""l"""))
& T# p" f9 w3 r, M(defun c:ef (/ a)' ?, ` A9 P7 @; r" i
(setq a (ssget))(command "extend"a"""f"))1 W: m9 z v$ t
) ~; v& y% g4 i8 N u
# y" S; p) x: Y/ {/ I" W) q(DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110")). |! U; C+ q# e/ ]. p
(DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
5 X5 b8 U. L6 D4 ?$ t' e' S1 S(DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))/ m' e; }8 A" ?1 z5 m+ K3 w6 r/ v
(DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
7 n8 K& S5 C5 R* y ~+ B* q/ T(DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
3 L+ \" q ~* Q# X/ z(DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))6 ?" G1 N4 a) O( E
(DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))8 D4 u0 k! {1 Q W1 T0 g6 r
(DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
( R* d/ {# o$ e# j% @8 ](DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
4 ]$ y9 I2 X( s% B O(DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
0 S$ ]* h" u$ E( K: |(DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500")). Q! K% o7 Q9 h+ E
(DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
9 J$ |1 o3 W4 ^3 u& v(DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
D; p$ F2 ?, s; L/ x: l. {(DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))! |+ D2 Q- I6 X
(DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))9 Y, }9 X2 m5 c8 ] C- K
(DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))) p. c" |% U# K' s4 O
(DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))! f- r( @- n1 w0 Z; o
& |$ p$ ^) _, {, W$ u# c8 s
(defun c:mla () (command "-mledit""av"))0 e9 R1 ^+ x0 B/ N
(defun c:mlc () (command "-mledit""mc"))
" f) W' ]3 f7 q7 c, B, w# s! Q* k# b(defun c:mld () (command "-mledit""dv"))5 Y8 o, m" `" B0 s& `# F* J1 A2 ]
(defun c:mle () (command "mline""end"pause"end")) U! ?5 p; c. m8 W9 W, J5 B
(defun c:mli () (command "-mledit""ca""int"pause"int"))' Y4 W$ A5 x! B# |
(defun c:mlj () (command "-mledit""cj"))
; A8 m9 C0 R& U3 }/ Y(defun c:mlt () (command "-mledit""mt")) c/ x8 V: x- U6 P! H
(defun c:mlk () (command "-mledit""ca""end"pause"end"))
& r) W* F4 W' h, P(defun c:mlw () (command "-mledit""wa"))7 W; d- u+ L) S1 E) \, k1 U4 J/ S
* R' e+ L0 X1 @4 j% q6 ]9 L" f6 S(DEFUN C CA () (COMMAND "DVIEW" "all" "" "CA"))( a8 d; w, O$ Y9 c. ~5 |( Y1 z
(DEFUN C PA () (COMMAND "DVIEW" "all" "" " A"))5 U' V6 P+ }3 m; P: l
(DEFUN C PO () (COMMAND "DVIEW" "all" "" " O"))
( d0 h7 ^' F# o' U4 b N(DEFUN C DD () (COMMAND "DVIEW" "all" "" "D"))4 S e2 k# h1 ~) ]5 l X
(DEFUN C Z () (COMMAND "DVIEW" "all" "" "Z")). o; V$ G& }' v! N
6 ^2 S; Z- W7 o, s(defun c:p0 () (command "pline""""w""0""0"))
4 H+ I- O O( C) Z0 @(defun c:ot () (command "offset""t"))
' \# S, U% a4 i# o: T n8 B$ L(defun c:t () (command "mtext"pause"j""bl""h"pause))
; Q) W9 Z0 Y7 u7 z: x! ~* s(defun c:uo () (command "ucs""ob"pause))
0 n- B/ Z; x. O2 d# }0 U2 O0 B(defun c:f0 () (command "fillet""r""0"))9 S7 S! B* ~ Y) Y/ ~, F
(defun c:fr () (command "fillet""r"))
! Z5 W$ u5 Z. c& _* _
X; ~* E" \% F7 e4 Z;CHAMFER/ J2 ?, w- A, Y. G* L; K7 V
(defun c:cf () (command "chamfer"))
6 H0 E( J6 D7 v( I5 K(defun c:cfd () (command "chamfer" "d"))
+ _7 \- a* X' D* l5 p u(defun c:cf0 () (command "chamfer" "d" "0" "")) B- }2 V: c+ W) B& V% [: q8 j/ t
. Y1 u7 x Y- L3 D8 g( H" @;FILLET0 l2 m; S& _& a7 g, C& M+ U
(defun c:f () (command "fillet"))
% ~3 H1 e) K) Z% {% W# b/ }(defun c:fr () (command "fillet" "r"))7 b/ c$ J8 g2 Q
(defun c:f0 () (command "fillet" "r" "0"))
6 o9 |0 [/ A; A9 G U* t
. l/ n0 U# K3 G(defun c:OO () (command "oops"))
7 Z. W7 }7 w+ K6 B(defun c:dln () (command "dimlinear"))2 L/ V5 d# Q; t( v: L7 {! S- c3 ]
(defun c:dan () (command "dimaligned"))
/ `4 _3 K) z( b5 [5 I5 Z* r(defun c:ddc () (command "dimcontinue"))
3 {$ C" m$ c1 G8 a- ^: j1 d% G# t L& e& P6 q" o; E% A! j" B' i
(defun c:sc () (command "scale" "auto"))$ q- |$ Q4 T) M6 T& T; E
(DEFUN C:XO () (COMMAND "snapang"))- R& w8 ?% Z* a6 V- F
(defun c:cc (/ a)6 i& T% u! O/ [, R& m3 @
(setq a (ssget))(command "copy"a"""m"))6 F) X/ n+ h7 e% O. F4 z5 t9 _3 ~% w
0 n" d8 z+ \( c8 s
(defun c J (/ a)4 `1 _3 E& v1 H
(setq a (ssget))(command "pedit"a"""j""all""y")), T( |6 u9 r0 B! T G
(defun c:JJ (/ a)1 b, }/ J( [9 s( S' n5 U
(setq a (ssget))(command "pedit"a"""j""y"))6 i1 Q1 @7 V. `5 b) ?4 j2 j
(defun c:TN (/ a)* J+ [- F9 z" Q
(setq a (ssget))(command "change"a"""p""T"))
" T6 I- Y7 z. P( `$ J
+ O6 \6 y- k$ c
2 q9 E& h& P* o8 x% Y;================== Tran Ngoc Thang - Sinh 03-05-1976 - Suu Tam - Tu nam 2000 - Hoc nam cuoi KTS . DHXD ====================% N0 V0 [8 D7 v9 r- j
" [1 K& H& p/ }. E7 |# _2 z0 Q) v
(defun C:IB ()(setvar"cmdecho"1)' e4 G9 }+ n! ~; ]
(setq pt(cadr(entsel"\nSelect Block:")))6 m$ ~5 S- A! T
(setq e1(ssget pt)) 9 S% W8 N2 r7 Q
(setq e2 (entget (ssname e1 0)))0 m' n9 ]' \: q/ o
(setq blname (cdr(assoc 2 e2)))8 k0 t; X; u9 H b/ |1 W4 V% E& ^( L
(setq oer *error* *error* err2)(command ".insert" blname))
, r6 o, ^$ G. w& l+ G$ ]+ z
X9 s( J# E6 m. A# Y! U(defun c:II ()
5 U9 n. j; |! S& `+ l (setvar "cmdecho" 0) i; A5 t1 y: ]) e) t
(setq olderr *error* *error* myerror)
3 R j" \- w2 j3 Z$ X6 H) d: V" R (prompt "\nSelect objects: ")
1 s7 g' b/ Y; e# `6 a+ K0 [" k (command "select" "au" pause)
: Q2 V4 m0 T. z9 u% k (setq sstxt (ssget "p")
) b( e: q8 l3 h* A sslen (sslength sstxt)
7 H7 C+ g- q9 `( N+ _ ctr 0
; K$ w- G6 d/ C* p )
5 k \. P6 Z. N- O$ K$ M# f (command ".undo" "mark")
7 \: G9 @2 J k( K( u: L7 a: z( t" p (while (< ctr sslen)
" g( J- u& p4 i (setq listxt (entget (ssname sstxt ctr))) @ d: ?8 q7 R- @
txttxt (cdr (assoc 1 listxt))2 d, d! ~( ]7 c( a# x Y% G% r$ I
enttxt (cdr (assoc 0 listxt))( v1 X- C) A' [4 H$ P5 d
)8 Q, F& h6 H" Y
(if (= enttxt "TEXT")/ J& \- a% o) f) O" K2 n
(progn
7 u) _7 w/ L7 Y/ Y (setq testxt (substr txttxt 1 3)). I" R5 x- _) }! }9 J& U1 D6 G4 Q
(if (or (= testxt "%%C") (= testxt "%%C"))6 u3 B/ s y9 S! }6 R8 B
(setq newtxt (substr txttxt 4))( w7 M$ L, N, o6 T. |! |& N
(setq newtxt (strcat "%%C" txttxt))
2 l* h: a1 {+ P4 |% C )
1 B8 `9 `% ~; W0 q (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
: X( o& b2 z9 N7 g, D7 L (entmod listxt)
0 M4 H% R5 M4 G: x )# n' b7 U+ k4 n% W
)
( }. W6 h% m- ~1 n( d: I (setq ctr (1+ ctr))7 T0 Q$ i# T- O6 {
)5 Y8 n% E0 R/ q
(setq *error* olderr)
: G. _6 B' w: `8 z9 ?6 ^1 o (setvar "cmdecho" 1)0 ~# r- Q; g- p1 H
(princ)
+ }; [9 j: _! f" E, I! [, T)
" [. B1 `3 _! D/ {' d$ v5 L, ~- d9 b9 B1 U/ o+ ^3 L+ ]
(defun c G ()/ g/ j5 L9 g" J/ l
(setvar "cmdecho" 0)
& d2 {# J! x: E8 N1 D6 F l* u (setq olderr *error* *error* myerror)
( H! ?& v3 q% D- _ (prompt "\nSelect objects: ")
( ^4 j; V+ r$ ~ (command "select" "au" pause)
# d1 r! s7 a4 C7 e n/ b' p (setq sstxt (ssget "p")
: N/ j5 }/ {9 s- e. t: E sslen (sslength sstxt)
- y+ v5 B# i. e. ^* _ ctr 0
! m& F, h) M! S ) T4 u5 U) k5 d4 T( t
(command ".undo" "mark")
* [0 x/ f7 L! |6 B7 O (while (< ctr sslen)
+ \1 j9 l: g- r% U+ { (setq listxt (entget (ssname sstxt ctr))0 K i' Z% U3 \) p7 `: ^ ^
txttxt (cdr (assoc 1 listxt))
5 t0 T. C G( L enttxt (cdr (assoc 0 listxt))0 f6 G0 f8 S9 `0 ?% ?
)
! A! }" d2 u( U/ O; C4 g/ Q (if (= enttxt "TEXT")
& {! O0 O9 b" k! r- Y( _ (progn+ Z, X2 |3 ]; z& B
(setq testxt (substr txttxt 1 3))
4 N# m4 Q- r3 x7 |5 n2 T (if (or (= testxt "%%d") (= testxt "%%d"))
% s9 e: x$ b+ s/ K" }# a (setq newtxt (substr txttxt 4))# o: B# t3 t) y- ~' V6 O
(setq newtxt (strcat txttxt "%%dC" ))" E4 J9 |7 l3 j0 [- N
): y) p) {3 a* s* j2 X8 H
(setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))8 \3 F1 f8 q) S( Y
(entmod listxt): k( X# X1 H: ~0 S
)
t8 {- Y( H2 E/ n( }* t )
# X! O) n. U. \$ y8 X* ^" `: v (setq ctr (1+ ctr))! z# ^) c7 H) m2 s" \
)
8 `" S- Y8 b7 ]7 T (setq *error* olderr), a7 t3 [* `/ p: i- w; r: L
(setvar "cmdecho" 1)
) ?3 d" n+ D6 ]! g (princ)
7 _3 B1 K7 S' h1 m! W)
" P, j5 l2 I, Q8 J
! Y/ t9 r( q# [0 ^3 G5 ^& n+ p, H(defun c I ()
# l2 d% R, E( t) O* [! o% x (setvar "cmdecho" 0): y9 \7 F& s4 u8 I9 e. `. B( x
(setq olderr *error* *error* myerror)
2 @6 ]' `6 k4 m3 |" I (prompt "\nSelect objects: ")
: E& H" H R, p* H: }* ]9 j! v (command "select" "au" pause)
0 `! y1 I8 Y+ n (setq sstxt (ssget "p")
7 {7 S5 E2 q, n sslen (sslength sstxt)) b: r1 i$ R! }' k- N3 C
ctr 0
) a, b8 ^/ F" l/ ~ )
( ]: L3 Z! b. B- D8 N0 h# ] (command ".undo" "mark")
4 N% c( Z5 y! _: N (while (< ctr sslen)1 K9 l) {/ A. L* {
(setq listxt (entget (ssname sstxt ctr))
3 R1 }" I' s+ d6 P txttxt (cdr (assoc 1 listxt))
/ m1 l& U0 g7 Y9 u enttxt (cdr (assoc 0 listxt))
3 t- x% K# u, T" g% z, J3 J )
6 L5 T3 o: c) j- O (if (= enttxt "TEXT")
% g/ N( |, Y' P5 H# o7 J (progn
u# |* G' [; P3 h' J, m* Q (setq testxt (substr txttxt 1 3))
) D# o( m! ]( p6 m$ ^ (if (or (= testxt "%%p") (= testxt "%%p"))
% ~( n) r2 f; A- P& k5 }& x (setq newtxt (substr txttxt 4))* C5 \; A7 M- A% k9 m8 M& |6 f
(setq newtxt (strcat "%%p" txttxt))
W# J( K. r# N" C )
% b6 R) j9 o2 x6 t- f# X# b (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
E3 Y1 W }9 _ (entmod listxt)
- @5 ^* a: v, `# e, }1 D )
& ?! q5 N$ r3 H3 @& f )( q/ Z. L C6 A& w T7 Y
(setq ctr (1+ ctr))
& A& k% u0 w. O: y8 X )
$ i7 z1 D/ u$ P (setq *error* olderr)
5 e4 V+ P9 X# N: ] (setvar "cmdecho" 1)
# u5 A. c5 Y2 O; V1 t& b (princ)- i& v4 g* z3 D: ~
)3 B: ^- v: e( g2 p( l
3 t% h5 R! D; |$ l. L' ]+ H
(Defun c:CB (/ a)- ^/ E- X( B7 P5 w
(setq olderr *error* *error* myerror)
0 w! N5 r& F, l (setq ocmd (getvar "cmdecho"))
X- }0 k* i I1 n5 F (setq oblp (getvar "blipmode"))
( L2 e' A3 Q! O/ I2 J# q5 z* s (setvar "cmdecho" 0)
2 i$ y) }' N- v7 M+ @- | (setq a (ssget))# e+ A$ a; ` A# V; y; V$ b
(command "CHPROP" a "" "C" "bylayer" "")
" `; ?6 A) _" |& A _% } (setvar "cmdecho" ocmd)
, P( o! p! e# m (setvar "blipmode" oblp)
! m7 M1 X6 j, s% R+ ]/ m (setq *error* olderr)
8 ~% L3 O4 J5 c. t7 _ (princ)5 h: n8 b0 ~. M$ @& v; _; B
)
. z7 H% I- J7 N1 J4 Z6 V' G# c' h9 O
(defun c CC (/ co43 obj23 la23)
7 \& L+ \+ g6 z; B& ~8 J (setvar "cmdecho" 0)" I$ Z* F3 j) m
(setq co43 (getstring "\nNew color : "))
8 x E6 J! ^/ D2 H9 h/ L, u (setq obj23 (car (entsel "\nPick object on desired layer: ")))
: M, |" n: @2 T1 z7 v (if obj23 (progn# ? D7 G: O' `8 X. c; H& a) `5 W8 \5 {
(setq obj23 (entget obj23))5 N5 k5 {) f5 W
(setq la23 (cdr (assoc 8 obj23)))8 k: }" L9 @/ Y( D$ b
(command "layer" "c" co43 la23 "")3 F% {; V! s$ q3 X( X6 a0 b) l# Q
)8 }# _$ B |+ `; s& c# L
)& s8 _2 ^) D4 n: D
(prompt (strcat "\nLayer has changed..." la23))
) F3 ^1 K& j' J: V6 B+ k (setvar "cmdecho" 1)
1 z" }3 x- C6 L# \ (princ): T1 u0 C6 ?4 V& A
) 3 w$ C2 ]) E% n4 _( g0 ~' D% o$ ?
0 v! ]0 h3 l% ~- _! Q(Defun c:RP (/ a)
% A7 X) o: [% l5 \8 u* d P I( q (setq olderr *error* *error* myerror)0 L) q* a8 Z' ~7 }6 N L, d! B
(setq ocmd (getvar "cmdecho"))
" s7 q& L6 U' H (setq oblp (getvar "blipmode"))
4 z5 d9 r8 m6 Q+ t (setvar "cmdecho" 0)
9 j: N l/ s# h0 U% G! K (prompt (strcat "\nUSE: Delete object(s) belonging to"" K. A2 {+ x/ s* J# Y4 _$ @' }
" the layer of the entity picked...!"))
! G$ _1 H$ `+ n4 Y* Z% w (setq a (entsel "\nPick the entity with the desired layer to delete: "))
: @" W. @* o/ Z) h: w: A$ \ B5 \ (if (/= a nil) u2 E7 K( V) q* u9 E* J6 ^4 b
(progn (setq a (cdr (assoc 8 (entget (car a )))))6 A- Z0 B7 v. S/ ~, C. p: K
(command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
" M" p" R. y( z3 z5 T+ _& Z$ c (prompt "\nNo entity selected!"))! y/ f ~5 B! l2 {& B. ^) `
(setvar "cmdecho" ocmd)$ z l7 z- T3 T* M4 \/ p$ q
(setvar "blipmode" oblp)
( {( E; A9 ~# D$ h' x% Z (setq *error* olderr)$ L, c+ c5 K7 J' n4 W9 Y. U
(princ); e& f* D/ [6 O# C
)
. v6 O2 j* H8 h
% C9 h' T2 R- T: o: S(DEFUN C:WL(/ SSET NET SSL M)
- ?" o" F# H) B# b (PRINC "\nSelect lines :"): `' W% Q3 V& E! | J1 M
(SETQ SSET (SSGET))
+ _0 |; d0 ~' k (IF (/= NIL SSET) (PROGN- ?9 }4 u( ]3 Y: ^2 t
(SETQ SSL (SSLENGTH SSET)); f3 u r v# y
(INITGET 4)
; g2 a( k& `; T" S% O (SETQ NET (GETREAL "New width : "))
+ ^. r# C* s. Q9 q1 x6 W" O# K (IF (/= NIL NET)5 O# B1 R5 t: a8 H
(WHILE (> SSL 0)
! H8 U3 s, \# u0 F4 c (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))5 e$ Z$ p8 |7 g) F( Y1 n$ h
(IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") . m8 Z0 M" e0 t
(COMMAND " EDIT" M "Y" "W" NET "")
4 O3 g# G0 |4 e# Z; n ) 4 |% L# G$ M+ n& C$ n {
) 6 g2 U/ ?- I6 X3 w- v7 z# K
)))% s. ^% ^! g& G0 X
(PRINC)! ^) A2 l6 R+ W' |! E$ r* N/ }
)
+ g( A7 w" |% ~6 z
; d9 @! c5 m6 g" a0 e- a8 _- p7 a(defun C:MML ()1 N% b$ O* A% x4 C6 d
(princ "\nSelect objects to move to another Layer.")
2 r6 d- \+ I3 k* c( K8 \* ?4 g (setq ss (ssget))! t: @! U* i2 Y$ C% C/ S
(SETQ UL1(GETSTRING "\nLayer to move entities to : "))- N0 S( z' n( d) d: P( y
(setq counter 0)! t' X: x+ L2 b! N( h- Q5 s
(prompt "Moving to layer.....")(princ ul1)' \9 z5 d/ t, K
(setq e (ssname ss counter))2 p3 H. _) g: |+ l2 g( T8 q! r1 f
(setq l (cdr (assoc 8 (entget e))))
- s/ l3 Y* w2 \" s+ M# h p% U (setq S (ssget "X" (list (cons 8 l))))
0 R, f% V- f9 U (command "CHANGE" ss "" " " "LA" UL1 "")1 E$ s5 \5 P' }3 X! f6 M9 Y; t# K
(setq counter (+ counter 1))5 t; t5 {* W) Y0 M' h+ E6 Y
(princ)
& d; P I$ z; @9 @) T- J, y)
0 I4 Z* A" d' N l- y# x; G: p5 M4 J6 l9 J5 g1 o; S
;;; ================================ GHI CHU ============================
2 K/ O v7 C% r4 ^;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
0 B$ F" A. Z' y/ H7 |+ b;;; =======================Thuong Dung Font Romant.vnh===================7 X, R7 O' v. V; P! ^4 B# s3 v" `
;;;==================== Tran Ngoc Thang - Sinh 03-05-1976================/ y: V; K- O3 ?: p
0 W% c5 I: W( h! N+ m5 X9 N5 h/ [
(defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
7 W4 C3 @7 ^! ^- [4 S6 C) B) Q (setq oer *error* *error* err2)
0 g) _- j& b# N$ n! v+ w (PROMPT "\n(VNI-TTF)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")5 g2 N7 [* A; c) l6 o) a
(SETQ Cpt(GETSTRING "\n (RomanT.vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (Vni-SHX)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))2 L: \8 |% `2 T9 ^/ j+ t0 _4 L0 T
(IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhaø Beáp")): |3 r1 }/ Y6 i# b# l9 C. @( ^
(IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phoøng Veä Sinh"))8 u7 y% q k( d9 G2 ^4 v& f0 n
(IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Phoøng Hoïp"))/ y* g# h% B$ G0 P8 q
(IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phoøng Laøm Vieäc"))
- F5 X7 v. z9 O (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phoøng Nguû"))1 I a5 q9 G# \4 @: l
(IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phoøng Beáp + AÊn"))
/ N( m. T* X5 M0 A% _+ s5 g (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhaø Kho"))
; C# @. l4 y* ]$ @: |9 M, j: A) f9 D (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phoøng Ñeå Ñoà"))
/ K' l+ E) `2 V1 T e/ F- w* |$ G! r' u- R# |. g/ a5 r6 x4 X
(IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
2 o% u2 a9 L" u* r1 W! y (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))0 r" q3 M3 J: A0 G
(IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
5 `! [, s [" Q4 y, o (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
8 m& u3 x, I5 r" H! Z& p (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
V E3 v7 @9 e& L (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
Q& t* x3 N, b9 u. E1 O- b (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))2 K) E, Z4 \/ l% L* b
(IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))" i2 d' H- l2 r& [
; b5 F; z6 u1 [, x1 R8 I (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))" Y7 y! e* [, }$ Q. y6 R9 O3 t
(IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM")). J# \0 D0 R: }
(IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
0 _8 S9 R3 l0 V4 r (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))5 b1 [9 |9 k: b/ c& Z
(IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R")). v% V3 b- A) v( b7 r- r
(IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
j( }, M+ h+ g( `0 _3 g (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))! \ T- J, G+ h& N
(IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))& I- e! F- l" w& ?* ?9 {
(setq pta (getpoint
2 z. m5 n" X) `8 u- N "\nPick first corner. : "))
# p. K4 E/ s) S# F (setq ptb (getcorner pta
# W, i4 Y) M0 P( v! n6 J& T, q "\nPick second corner. : "))& t" h& e% s x1 D2 y7 n. l, M: o
(setq ptc (list (car ptb)(cadr pta)))
% f4 v* K1 U+ D2 q. l9 |2 e (setq ptd (list (car pta)(cadr ptb)))2 p& U) a* h5 Z
(setq ang (angle pta ptb))
6 K O0 {! N7 W5 i k (setq d1 (/(distance pta ptb) 2))/ J s7 s8 J* `, N& Q% j4 B/ s
(setq cp (polar pta (- ang (dtr 0)) d1))
2 l) i5 x- O" j. r (setq X (distance pta ptc))
+ R, X+ m, d' h) b (setq Y (distance pta ptd)) L: E6 B% c+ p! b+ }0 B5 n7 Y6 g
(setq X1 (rtos x 2 1))4 r3 ]- i" |) `% C$ S
(setq Y1 (rtos y 2 1))& {4 z; {3 |7 l# |
(setq rmsz (strcat "(" X1 " x " Y1 ")"))1 W2 g: D7 C0 K7 K* r( ]$ u
(command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
, H& y; d# E3 m. D+ I (defun dtr (angg): k! w, A( t6 a0 z4 a
(* pi (/ angg 180.0)))
: z1 ~, f* T6 A/ k. R) ]: Q9 B3 Q% x8 @# O- G C! v
(defun c:ZS (/ pta ptb rmsz pl1)1 ?) ~/ }, z. {2 o" I
(setq oer *error* *error* err2)
5 B' H2 E; X& R; I' n9 b" z (PROMPT "\n (Vni-SHX-TTF)floorp(L)(oL)an.(E)(oE)levation.(S)(oS)ection.(M)(oM)planFoundation.(C)(oC)Found.(K)(oK)Khung.(P)(oP)View3D.")
4 F- f+ B; Y! D P- q0 m (SETQ Cpt(GETSTRING "\n (RomanT.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective.")) B; _' W, M* c$ \+ F9 x
7 O2 |; e* P) U" a* i. r& G (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
- L5 L, c) h# b2 X: P& E (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
) W0 v& v9 {4 l/ U (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
9 y. W9 v; ?( T6 j r (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))- r3 x& n* J3 }& A
(IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))) c1 y* ^* D, H6 ~+ f& ]. s8 [
(IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))! \. v6 X( T% p4 |
(IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
/ N8 J, C- D \$ w4 a+ Y, g& V$ a: B$ G w% {( s# @" w' {4 S
(IF(OR(= Cpt "oL")(= cpt "ol"))(SETQ CPT ' "MAËT BAÈNG TAÀNG 1 : TÆ LEÄ - 1:100"))
# @! U; w" u' R5 U7 j (IF(OR(= cpt "oE")(= cpt "oe"))(SETQ CPT ' "MAËT ÑÖÙNG TRUÏC ?-? : TÆ LEÄ - 1:100"))
: B1 T0 j$ L8 o8 j6 \( a (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT ' "MAËT CAÉT A-A : TÆ LEÄ - 1:100"))1 p3 v( Y. O4 b, Z
(IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT ' "MAËT BAÈNG MOÙNG : TÆ LEÄ - 1 : 100"))
9 B# _. ~$ C! X: q (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT ' "MAËT CAÉT MOÙNG : TÆ LEÄ - 1 : 100"))
0 _; E2 Z0 c! t0 x (IF(OR(= cpt "oK")(= cpt "ok"))(SETQ CPT ' "KEÁT CAÁU KHUNG DOÏC NHAØ : TÆ LEÄ - 1 : 100"))
, l& {( Y+ j% K& G (IF(OR(= cpt "oP")(= cpt "op"))(SETQ CPT ' "PHOÁI CAÛNH MOÄT GOÙC NHÌN"))
/ B4 F" y# O: t1 w+ Y; G
# W8 n7 h& w# t3 r. ?; Z J1 m' }4 C (IF(OR(= Cpt "L")(= cpt "l"))(SETQ CPT '"MA/W/JT BA/W/FNG TA/M/FNG 1 : TI/R LE/M/J - 1:100"))
P& h! ]1 e% x& a9 p5 J (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
$ F% l$ e3 Q6 {4 T" f (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))( g4 o& P! L; D9 g# n5 G
(IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
7 ?; N) z( M% U3 P/ a$ q (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
: V3 q2 q7 N( n (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"))( ^3 a' C. k1 y* i, I1 y' D
(IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
4 s) Z% Y6 C( l4 w (setq pta (getpoint; q; p& p/ f/ A( }3 i, U- l
"\nPick first corner. : "))1 p/ _& _' Z) r& U% v
(setq ptb (getcorner pta( X/ \2 R. k' x' i+ r) e- V
"\nPick second corner. : "))
; L5 m5 H0 f3 w6 I& V" \ (setq ptc (list (car ptb)(cadr pta)))
8 [$ Z ?" m3 w9 N3 @/ K (setq ptd (list (car pta)(cadr ptb)))' w4 d6 s0 I3 Y+ w( G9 G# l/ g
(setq ang (angle pta ptb))
. d: H& w" i: b7 d (setq d1 (/(distance pta ptb) 2)) H, x- g4 G4 C% e% U( J: \
(setq cp (polar pta (- ang (dtr 0)) d1))
! V7 ^) ?3 [, u9 [6 ` (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
8 n- B- |8 k' G! l' ^) z (defun dtr (angg)
# z. m# e; V1 v0 p6 y$ D$ e (* pi (/ angg 180.0)))# g- m3 W e: [1 ~# O C D
* |9 G( \+ q6 `* m
;;; ================================ GHI CHU ============================$ G+ G% Z! T8 g6 ^/ M
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
/ p3 h& `! B! _$ E;;; =======================Thuong Dung Font Romant.vnh===================6 B" b1 K* ~5 B4 J) E8 N
;;;==================== Tran Ngoc Thang - Sinh 03-05-1976================
/ I9 k _( L0 [. F1 o9 k3 }% p" ^* N# b* Q+ O8 }
(defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)- z$ z' `( I* O: O
(setq oer *error* *error* err2)- `; Z6 Z) `. }: l: U3 I0 a
(PROMPT "\n(Vni-SHX-TTF)(oD)(D)ining room. (oS)(S)torage. c(oL)(L)oset. (oC)(C)onference. (oWW)(O)ffice. (oK)(K)itchen. (oB)(B)ath. ")# c& F; O6 P/ y' x7 h8 m/ g9 M
(SETQ Cpt(GETSTRING "\n(RomanT.Vnh)(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
3 C9 u; X# z. D8 I& B& k (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhaø Beáp")); n3 ]3 W( z% z3 A6 K! X5 p
(IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phoøng Veä Sinh"))
' P+ i8 G" p; [; G (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Phoøng Hoïp"))
, W% Z/ i8 y; p1 G6 k (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phoøng Laøm Vieäc"))) z" {. W! }+ J: Y
(IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phoøng Nguû"))* G6 y9 V" Z, j7 p' }, ~- S
(IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phoøng Beáp + AÊn"))2 h& P) B4 M/ t) f8 F
(IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhaø Kho"))/ H# K/ f0 ]+ @+ Q0 d
(IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phoøng Ñeå Ñoà"))/ X+ [" Y3 m# o; V2 @5 r+ ~8 C
: B5 y# f/ [5 r (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))" p2 N; k1 H7 e! x" \
(IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
1 T, T. p4 X' ?6 ]3 y (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))' x3 ]; B2 `1 v& i
(IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc")): F1 J- v; P' y, X( x
(IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
! f7 ~" C' ^% U" S1 M (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))0 B6 h4 _5 ^5 b- Q( w: c
(IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
! l: F* Q( h/ {% J* | (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å")), W, G( N3 v) X( c
# f" `5 Q f3 L* q4 `! U( ]5 q; c
(IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
2 \" {) K' g( \ (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
6 C G- S `* G1 D1 v5 C (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
6 T( D# C8 [( |, {' N (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC")): D: i7 c0 _! {6 g0 V, s1 ^4 }, N# Y
(IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))/ n! L2 Z6 L" F% ]8 j) B$ ]
(IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
' {' |3 L1 \" e) p5 `" Q- x (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
7 ^+ h- U) M# v (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
) W/ S# v8 e) ]: r7 u
( t- j# v+ N2 g) [. A0 H (setq pta (getpoint
: a& B$ i: m+ { T, R+ g "\nPick first corner. : "))6 U+ v$ P+ c: t1 H2 L* i
(setq ptb (getcorner pta6 l& q, L6 M3 D9 V& m8 K' r i6 H( {
"\nPick second corner. : "))
" ^: g4 u: x; |/ b2 B! \8 d( @ (setq ptc (list (car ptb)(cadr pta)))
' u: v$ l9 j/ j) E (setq ptd (list (car pta)(cadr ptb)))
) q( m5 D% _5 J (setq ang (angle pta ptb))7 Y. G+ g/ b7 P! J) B5 e6 q) u r
(setq d1 (/(distance pta ptb) 2))& c/ f M% W' M8 U- y
(setq cp (polar pta (- ang (dtr 0)) d1))* v4 i, A6 Z6 h
(setq X (distance pta ptc))
4 s' b, e# Y2 V9 a5 o8 J (setq Y (distance pta ptd))1 q( l% i' C% o( }& d) | E
(setq X1 (rtos x 2 1)). g) T9 f+ m1 j0 u6 C9 b
(setq Y1 (rtos y 2 1))+ D e0 a$ G' n' C- u' J6 `/ c
(setq rmsz (strcat "(" X1 " x " Y1 ")"))8 N; S0 J# @1 ~0 [( G4 u
(command "TEXT" "c" cp "0" CPT "text" "" rmsz))
, G; z' P; O% @: }9 e (defun dtr (angg)! I6 t2 x3 B/ |) J. u
(* pi (/ angg 180.0)))
]. i! Q2 e, V* p" I1 o% L- I$ K
;;; ================================ GHI CHU ============================6 f" v5 t0 l3 l7 `
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========; I; i, o% m+ K5 Z
;;; =======================Thuong Dung Font Romant.vnh===================' ~) y$ a, A& e, H* c) H
/ G g4 T0 j7 W% ~1 a& c(defun c:GS (/ a b c d) L7 z' C j- q& b
(graphscr); v$ g1 x7 i3 n( I5 P% D4 h
(prompt "\nSelect text to set style....")
1 `+ W3 Z( M" z- E, H7 q; J (setq a (entsel))3 \! [; w4 d6 ^1 N9 e+ v9 f1 c" z
(setq b (entget (car a)))
5 f3 T" s8 n+ x" g4 ]- X1 e- }7 B (setq c (cdr (assoc 7 b)))/ v4 J; _0 J3 c2 c2 X; }6 V
(setq d (cdr (assoc 40 b)))
2 W5 I' e+ R% C (command "style" c "" d "" "" "" ""))0 f& A( X' p. W, U( Z1 }
(princ "\nType GS to set text style.")7 ]9 \- J/ y2 x9 {" t# B# }1 Q M
# o& n6 q# z6 X8 S, d+ `
(defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w) t" ~# C4 T2 O5 b( x
(setq olderr *error* *error* myerror)
5 J: @. s) c" m+ b, i, P8 a! ]& { (setq ocmd (getvar "cmdecho"))
3 D5 Q* u: \1 O" C% ]" Z3 f$ { (setq oblp (getvar "blipmode"))
S) V: `+ Q3 a9 z; ], x7 s# V (setvar "cmdecho" 0)
/ d9 I8 }7 E) ]" n! l7 Q (initget 1) ;3D point can't be null
8 q/ X: q4 E, l (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: "))): F$ b! D3 A1 g7 W- @; V2 y
(setvar "ORTHOMODE" 1)
" e, p# M7 h5 R (initget 7) ;Length can't be 0, neg, or null" f- C5 K& B, q1 K; \
(Setq l (getdist pt1 "\nLength: "))0 n6 t6 R% u" a9 o8 F$ s
(Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
, j! I- E4 W1 v1 b& l (grdraw pt1 pt2 2)
Y* E$ C0 C( Q, w (initget 7 "Square") ;Width can't be 0, neg, or null
) U3 l3 F4 r) b (setq w (getdist pt1 "\nSquare/<Width>: "))- C4 d; p: E4 i& r3 h1 m
(if (= w "Square")
. E3 U R9 o. k" S# c' L/ Z: E6 J (setq w l)) L% {* W* T2 e* K. Q
)
3 e# j# r: u; j; g (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))( m5 ~2 V2 C# A. u5 F4 W
(setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
7 [6 `; [8 `8 r' X* B6 w9 ] (grdraw pt2 pt3 2). R) M4 G2 o i/ {
(grdraw pt3 pt4 2). a6 x) `$ ?- M( q; Y; W
(grdraw pt4 pt1 2), n! h ^# u! o2 y: ?' h- i
(setvar "ORTHOMODE" 0)
( E- [% z- C; d* Y4 F3 n (command "pline" pt1 pt2 pt3 pt4 "close")4 }2 I) P: a2 }( m9 Y
(setvar "cmdecho" ocmd)
( ~! [/ ?9 t, W, R2 x3 C7 O B# l (setvar "blipmode" oblp) {- [; c& r7 N; {' g
(setq *error* olderr) ; Restore old *error* handler
8 Q1 t$ @/ M1 A4 [ (princ)
5 _0 ^; H# l% k)
2 n3 N8 N4 S. {' i4 Y" P) ?
9 M9 A6 D' m" A. V(defun c:SG (/ ent pt1 pt2 ang)
2 d4 ~* k. s3 T8 M- C4 o (setq cmd (getvar "cmdecho"))1 N1 N0 s" @! Z4 m2 B! M
(setvar "cmdecho" 1)
. i8 f( N9 J* l& ^: u (prompt (strcat"\nSnap angle will be set to angle of line")) v. r: ^. x! S2 J* I
(setq ent (entget (car (entsel))))% o. L( D$ u8 X
(setq pt1 (cdr (assoc 10 ent)))
- H& g8 r2 T- D, Z6 K- \/ D6 Y- ` (setq pt2 (cdr (assoc 11 ent))): {4 v2 P& d; T c
(setq ang (angle pt1 pt2))
# j/ u7 U1 V3 r/ u" S/ m (setq ang (/ (* ang 180.0) pi))
/ ?8 D0 W% ^2 K& o (setvar "cmdecho" 0)1 _- s. p+ N( }4 {* d
(command "setvar" "snapang" ang)
( {/ y# c# c$ H2 p (setvar "cmdecho" cmd)7 b" F0 g- A. \
)2 R7 ^' C$ d: i9 z$ H
8 _ k) `2 A) v E) B# A" g
(defun C:TG ()/ [9 g7 Y0 C, C
(initget "Increase New") N9 ?. n& `' u1 e
(setq ans (getkword "Increase/<New>: "))
0 o# h' {3 G, x; @& Q% U (modang)
& F7 R( |- x+ ` }( w9 j)1 S, H0 k, M# t6 ^' e% d
(defun modang (/ ang ss ca e na ssl)) x2 Q0 _/ |. s
(if (= ans "Increase")4 y' J8 D2 @3 {7 _
(princ "\nIncrease angle for text by: ")) |% G; @ F8 L9 o
(princ "\nNew angle for text: ")
4 W4 n9 B4 [; i )
0 ~/ T6 U! Y( k, o4 _# U6 s (setq ang (getreal))
, g" a' H# c8 u& u$ |9 \% o5 ]. r (setq ang (* (/ ang 180) pi))
5 i+ Q H8 u& a1 ?$ a O G (setq ss (ssget))* ]$ Z( c* j4 h ~$ X
(setq ca 0 ssl (sslength ss))% @/ Z1 d& k5 Z8 s* h
(while (< ca ssl); R; a( E& k- X; Y* Q
(if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
' j' f- m/ y" u$ ^% A) g3 J. n8 R$ j (progn
. o4 ]# U" D# S' ^ (if (= ans "Increase")
' e+ O$ G i" A (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))4 U$ _6 N8 `) _3 Z- n" [6 x9 y% f# ?
(setq na (cons 50 ang)); E6 q% E+ b$ E
)
. i; ]6 n% [# ]5 J; `8 J" R; J (setq e (subst na (assoc 50 e) e))
4 _, ]% s# ]- c2 z (entmod e)
, Y& l8 e% b, z (setq ca (1+ ca))7 b- U5 V: U! ~& [/ o9 i6 `4 W0 [$ X5 Q
)
a) n8 E. T0 l; c )" x! K3 c( f" v# t6 F4 l
)& Y# o1 {% O( c5 r3 n p3 U2 B* `
(terpri)
' D: Z# ?. z% F)
4 d2 \; g/ T. ?
! w% ~# J& {! C- }) V' C
; F8 Q# @" i. z1 j7 y3 u(defun c:WL ()
! t6 H. i( k" [, W (setvar "cmdecho" 0)
. D2 s* e7 w. k4 b' I1 E (setq a 1)+ V& V. `/ {+ p! V3 ~' S
(prompt "\nSelect Polylines to change: ")
/ [8 D5 C4 e& u" F (while (/= a nil)0 \2 T4 w1 ]0 V: V. X( d" G9 p
(progn! a. g: W' l! l& H. O( p% |3 v1 p# x
(setq a (entsel))
- i ~0 g) Z8 n* ?/ N (if (/= a nil)
$ I: g. {4 \& Y7 Z6 t1 a5 W9 \2 K (progn% H4 j8 W4 l, |+ T. m6 {2 [
(setq b (entget (car a)))
4 x, v( u, ^- s8 z7 d5 W (setq c (cdr (assoc 40 b)))
8 _3 n- M" x6 w- v# P! c (princ c)% b6 H( j) s5 Q; \: _) s$ ^
(command "pedit"a"w""lw""")9 w6 V* f- k2 d+ V
)))) ) ]1 e, g3 a3 }7 ]5 A5 w
(princ)
Q# `# k; [; n' v' H) m6 N# @* c)8 e, L$ p8 I7 s* }6 ~, s
. s0 M& P2 K6 s+ a3 `7 _/ d2 h;;; ================================ TEXT FIT ============================
1 c- c: f' t$ B' P
% V6 x& G8 v; P* A8 C9 f3 j(Defun c:FT ( )2 D' a/ f( T. E
(defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
$ F1 s3 \' }1 v! I: y" [ (Defun LL-xyz (arg) (CAR (TextBox arg)) ) H4 @# m/ j+ F0 A; x1 t
(Defun UR-x (arg) (CAADR (TextBox arg)) )
7 A5 ]5 h$ E3 s4 d# s1 \& _ (Defun LL-y (arg) (CADAR (TextBox arg)) )
/ v4 Q$ ], V3 U9 \ (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )# x9 K0 z# W9 O. {& W
(Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )% Z( q9 [% b, q$ B l4 w
Textent (If ename (EntGet ename)) )
+ k/ O1 H% q8 M# J5 q+ _7 |* q (If (= (CDR (Assoc 0 textent)) "TEXT")( e- Y1 y A, Q$ C( k. U6 u& w
(Progn (initget 0 "Start")
7 q( G% T" J+ `: N1 a (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )6 P2 k. |/ G+ S, O5 z
(setsnapang Textent) ;set snap along text entity6 g7 h2 ]* R. {& V* e- Q
(setvar "ORTHOMODE" 1) ;drag along the text- c8 |; |8 Q7 j8 k1 O x
(setq
8 w: F: x8 G. r9 S; {8 mTMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") ) t/ ?: Z. L/ Q) ~. C, W# z$ N. I
(setvar "snapang" 0)
# m/ V, d, R: {3 F (cond; x9 k6 {2 i% L
((= (type TMP) 'STR) ;;new starting point to be selected
* X' y5 P' ?# c0 J (setq Start (getpoint "\nPick new starting point: ")); A, n% |/ |# u( Z9 V/ P; D1 W3 |/ H
(if Start (progn4 e, e& ]3 p* _" f
(command "_UCS" "_E" (cdr (assoc -1 textent)))
: K3 R- D6 _2 }' O& w; Q0 ]# u (setvar "ORTHOMODE" 1)$ W& `+ z5 D# I
(setq NewPt
) \/ T! T" E* Z' B) i& V0 ^1 D (if Start2 i9 f' `8 y# F
(getpoint (trans Start 0 1) " ending point: ") nil ) )
) b/ `& i2 U4 b% Z+ J (if NewPt (setq NewPt (trans NewPt 1 0)))
p& \& j. `9 I# G/ c (setvar "ORTHOMODE" 0)
& g. F1 M$ N% {% Z/ G: X' I, x (command "_UCS" "_W") ) ) )) ~1 V1 G$ s, U3 ?
((not (null TMP)) ;;new ending point selected( I! z$ s& s; c: V2 m
(setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
& [# \3 L& N% k+ V' H2 s (t (setq Start nil NewPt nil) ) )$ A; M; b& d8 a- r- t @
(if (and Start NewPt) (progn2 @/ B3 W- c6 t) R+ M L6 N
(setq Val (Assoc 41 Textent) ;;current width factor' j* z. @9 I0 O) E }
Val (if Val (cdr Val) 1.0) LTC_%
% {- Y* A. I9 S; e) z7 W, o (* (/ (Distance Start NewPt) NewEnd ) Val )9 _! k3 _; m& l
textent (Subst (cons 41 LTC_%)
, c% `1 Z( N7 { (assoc 41 textent) textent)3 Y/ n: h5 x- K; G4 k; ?( u
textent (subst (cons 10 Start) (assoc 10 textent) textent)
+ C0 G8 E* R6 e0 w textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
2 L* y5 }5 P$ H; G (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))& j* ^) `7 D1 p$ I
4 y2 w/ X: D1 |
;=====================================================================2 F; G: s; J! [4 \- z
;=========================COPY + ROTATE ==============================
3 }( k$ b6 C! ^, P1 |' w7 b;=====================================================================. t* n6 h) g# N9 d% B& |- L; N
1 G6 u y v" O" A- m8 K8 w7 ~- x& b; i(defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
+ H3 I$ b- }, K1 X7 w (setq olderr *error*& J7 C9 [. ?! M1 t% A1 C, t
*error* croerr)
" G" A/ L5 B) x9 `4 I2 n, S" k$ r (setq cm (getvar "cmdecho"))8 N/ w0 L0 H$ |9 d9 V z7 Y
(setvar "cmdecho" 0)3 B/ Q2 R. h4 a4 e0 @% j; B
(setq loop t). N1 [1 @6 A X+ j" _
(while (not (setq ss1 (ssget))))
& _! T: l$ N' C9 M4 X (initget 1 "Multiple")
/ ~: O* u6 \- Z ~+ Z! y (setq bp (getpoint "\nBase point or displacement>/Multiple: ")); c- \* a t, c- v% \
(if (= bp "Multiple"): v5 H7 c5 o9 U4 ]( s4 Y
(progn
. V( w* n0 H! [ p2 j$ g, ^" L (setq bp (getpoint "\nBase point: "))! {* b* Q: v6 r y7 e# ^7 N
(setq mult t)$ `6 y% y9 C) Z+ @4 L
)
( h6 q& b, O$ j6 O* z/ g" u )
8 T2 o1 C' q6 e8 W4 m! S7 d6 H (while loop9 _0 y4 K# J# H* l4 ]
(setq loop mult)
7 @# S4 s2 d5 P4 {' x: S2 U (setq lent (lastent))
$ _- _4 n" t2 G( k! Y3 i (command ".copy" ss1 "" bp bp)
# ~% r! ~5 J. ]7 K- F7 W (setq ss2 (lss lent))) U: l8 h% u7 v# ]5 b
(setq lp1 (getvar "lastpoint"))1 Q* `4 N4 y, _0 L# B& M
(prompt "\nSecond point of displacement: ")
4 c* p8 f; e0 @8 { ~( P; ? (command ".move" ss2 "" bp pause)) G1 {$ m& e' p( |6 G1 C- n
(setq lp2 (getvar "lastpoint"))4 U' `3 E8 L. [+ P3 u* o6 r: p
(redss ss1)
* D6 k2 o% `" l; P; D- d" ~% T (if (and (not mult)0 h8 _$ r7 {* y# @8 X9 e7 U6 i& p
(= (distance lp1 lp2) 0)' Q( }. O& m1 J+ v5 `- O# d
)
2 |+ y* e8 Q- A, X5 [" ~6 c (setq lp2 (getpoint "\nRotation Point: "))
9 |. d# B* ?1 T) i )
4 M! |" O- r4 A9 X (if mult
. s* b2 I, N8 O, ` (prompt "\nRotation angle ")
. D8 Z) C* t' v' ` (prompt "\nReference/<Rotation angle>: ")* ?* i" m! c* l, l; }( @
)
9 k, {1 p) E7 v5 ^ (command ".rotate" ss2 "" lp2 pause)
; z: ]* ~/ p: h" @ )
$ F2 x& q8 |5 U (setvar "CMDECHO" cm)
; e% B0 k; P" }9 W8 R9 K (setq *error* olderr)
" r1 c3 c, q0 B; {8 @9 ] (princ)
5 i( S% G# a' P- ~& Y' f)* g% L/ p; M9 h- b) p
(princ)
! F9 C- a) _4 Y(defun croerr (s)
; u. }. w# M- |9 U (if (/= s "Function cancelled")
0 V" l/ t" v3 L$ u! |0 q$ [( U (princ (strcat "\nError: " s))9 l$ P/ V: Q8 ?! H+ x/ X
)
+ K1 P' J' a+ E2 L4 C& x1 G3 ] (setq S nil)1 K& M( D/ N, u
(setvar "CMDECHO" cm)
: }; N& r+ w/ g' k; z. \3 K% y! ?# e (setq *error* olderr)7 V4 U) @2 H) p! F) Z. F4 @
(princ)0 ]$ L* @+ L# m& Y6 f
)* m, D( `0 l2 H1 I3 g) v
(defun lastent (/ a b)( b# U I# M; s5 T a5 @1 v3 p
(if (setq a (entlast))9 g: F3 ?3 A0 B
(while (setq b (entnext a)). a6 S" w5 G* S! j g) Q" b o
(setq a b)3 R0 P3 W& h, f( i
)8 m. c7 Q* a5 l6 K
)
$ d% H: i. X2 {+ A2 t; s% T a
, Y9 x6 X5 q- v- C, a)
$ A: l& @( x; C(defun redss (ss / en i)* S+ E" O- D; V$ ?3 g4 b# t# D
(setq i 0); o2 w1 E% w- S$ Z/ F
(while (setq en (ssname ss i))! X9 K. M/ N# h# x
(redraw en 1)3 p7 [7 m8 b' C
(setq i (1+ i))
# z" j9 {/ W. x% [1 W4 s0 \ )" y9 A$ K6 K, d* V g; n
)
2 z8 i9 C, Q. q7 V& l$ o(defun lss (en / sels ed)
8 p; t1 D0 W$ N (setq sels (ssadd))
2 H5 h, ]4 v2 ]) m! P6 i* H (while (/= en nil)
& C0 G# l# f; n0 X V F: ^ (if (setq en (entnext en)) (setq ed (entget en)))' G/ h3 e9 Q* b, W/ n% L- Z8 x
(if (/= en nil) (setq sels (ssadd en sels))): n, L! z0 y4 u7 P: J* Z' m
(if (or (= (cdr (assoc 0 ed)) "Polyline")- b3 S8 F# B) D
(= (cdr (assoc 0 ed)) "Insert")7 ~7 {6 X' p% ~9 ]/ O/ {/ r2 Z4 f
)
. b3 b/ g0 d2 S8 X (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
F9 B/ o0 E! \2 n )
8 w/ z$ j7 v* d2 g k8 c" ]4 F. u )
* O$ G, ~- z- A* M8 w0 ~ sels
0 a0 E* N! ^+ })
0 k% F% w- B! h& M4 w+ d; o5 A7 Q2 p
;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
7 W0 |) Q5 r$ Y, r5 X2 z4 H;;;==================== Tran Ngoc Thang - Sinh 03-05-1976===================
7 K' \4 r3 `3 k" Y e
0 \: m, W" `+ U4 u: t$ W1 P(defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))6 A Y v. s7 E y8 p
(defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
$ V7 s p Q8 _$ V(defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
' |" b, b4 f+ y5 t' P(defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
& e, d) B2 N/ U. V5 Q(defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))1 r+ r; l( k( c8 O) ?3 |" E
(defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))$ n- ?, r* K5 w" d
(defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))# _& E; B1 E8 @: f; n
(defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" "")), w$ d- M0 z# n& I/ S' |! F, s
(defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))
/ n, }7 c# r* \! H(defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
& A5 N8 t& x; W% X4 C: \(defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))) O* V& v' Y* ?
(defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))/ C! ^8 G: n& o$ ?
(defun c:77 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
& K( ^+ z7 r- d" ^1 A* U: C(defun c:7 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))+ Y. z! F i+ ]
(defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
6 Y5 r; K( M9 ~(defun c:9 ()(princ "\nChon doi tuong net TEXTTXT")(ssget)(command "change" "p" "" "p" "la" "TEXTTXT" ""))0 H' Y. Y# W* K& o1 W( k
(defun c:99 ()(princ "\nChon doi tuong net TEXTVN")(ssget)(command "change" "p" "" "p" "la" "TEXTVN" "p" "C" "bylayer" ""))9 `( A% n3 u# |& T5 s0 @2 ?6 E: r
(defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))3 N4 l5 {* i \4 Q
(defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))$ r1 A4 {# I, @# a( m: `
. }6 w/ i# y! m9 X, K( s;=====================================================================( Q/ }# Q9 z2 h1 k, {; X
;===================DAT Ti Le Theo KHO GIAY BAN VE====================
; C+ h, e+ h; \+ x, S$ E M# L;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
9 j: T% j; I! N0 i
' w$ _% y3 p% T( y2 e; c! {& M;(defun c:SA6 () (Command "DIMSCALE" "111.11111" ))(princ)/ ^% m! A" \6 V p
;(defun c:SA5 () (Command "DIMSCALE" "1111.1111" ))(princ)( s0 h* L: U: v
;(defun c:SA4 () (Command "DIMSCALE" "1111.1111" ))(princ)8 G K7 K, S! k: [7 t# f+ t
;(defun c:SA3 () (Command "DIMSCALE" "11111.111" ))(princ)8 i( `1 f" q* T$ L+ [
;(defun c:SA2 () (Command "DIMSCALE" "111111.11" ))(princ)* p* T, G! N' Q! r& i. Y( i
;(defun c:SA1 () (Command "DIMSCALE" "111111.11" ))(princ)
; s5 I7 Z J' K' x;(defun c:SA0 () (Command "DIMSCALE" "1111111.1" ))(princ)
0 t5 j! C$ a2 Y1 F- {, ~- F% x4 ^; |' C/ I) b
;=====================================================================9 K" i% F/ q" K5 s$ _8 T
;===================DAT Ti Le Theo KHO GIAY BAN VE====================2 E& V3 r2 N0 V, d# R: k U
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
1 R+ D) x9 @5 z0 F( {3 D" ` `' z& f) d
;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============1 A9 M- o% \; n7 D0 |
, z" U9 l9 ^* _4 p& H! @
;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
) M& N$ O# w7 L
f# E0 l& ]! i(alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
& Q3 o8 X; H' w. F5 g$ S* P(princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH"); I7 }( Y4 z: ]3 ]; ~6 Q3 z; w, t
, _9 Q9 N7 k+ y+ O, j
;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===: r* Z* Y/ p) N% C
! u' Z* G- u$ l- F;(DEFUN C:netxuatanh ()' x; R/ X4 O2 ^0 p: x0 s" w
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" "" z% a6 ?/ U$ q. q3 B
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
. T4 t% v$ W9 K6 j0 _ "M" "MANH" "C" "9" "" "Lw" "0.5" "", u7 b6 g7 t9 }8 j- Y( t* E
"M" "DIM" "C" "1" "" "Lw" "0.6" "", k2 Q7 }& x, t9 I9 R
"M" "THAY" "C" "7" "" "Lw" "0.7" ""
. Y" r+ M$ j- W2 b a "M" "NOITHAT" "C" "60" "" "Lw" "0.5" ""* Z9 j2 {0 [6 B1 G3 b
"M" "HATCH" "C" "5" "" "Lw" "0.35" ""
' n' Z& i' @- a. c T "M" "COT" "C" "2" "" "Lw" "2" ""
6 `& Q& {/ `/ a! ^8 ` "M" "Defpoints" "C" "7" ""0 L( \0 J. g7 r
"M" "0" "C" "3" "" "Lw" "0.5" ""
# \% E* b4 P" s" t( S: X* m7 ^; "M" "1" "C" "1" "" "Lw" "0.5" ""! Y- X% L1 @5 E0 x+ L5 ]# J2 a2 S
; "M" "2" "C" "31" "" "Lw" "0.5" ""
. c: {+ V w- @! I$ q; "M" "3" "C" "8" "" "Lw" "0.35" ""$ @: g8 a4 |1 b8 \5 `: l: Z' E
; "M" "4" "C" "4" "" "Lw" "0.8" ""
% ~* X5 Q$ c3 N2 V2 z, u; "M" "6" "C" "6" "" "Lw" "0.35" ""
) W8 ?" E# a0 ?: R- r8 S; "M" "7" "C" "7" "" "Lw" "0.4" ""
6 @0 d* C4 }9 T! p4 y; "M" "8" "C" "8" "" "Lw" "0.35" ""$ N! R9 \" l9 d+ z2 v% R
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""% o. Q* @( ]* V; b* S
"M" "DUONGBAO" "C" "7" "" "Lw" "1" ""; X6 l. a) y3 f8 u
; "M" "KE" "C" "8" "" "Lw" "0.3" ""& Y5 n+ r- I9 ?4 m+ b( r- Y) [1 X" ~4 p
; "M" "KT" "C" "9" "" "Lw" "0.35" ""
" ^( C+ b/ L5 X9 t0 o "M" "NETDAM" "C" "4" "" "Lw" "1" ""9 f6 c' A( H a6 } q
"M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""! i+ i! l) ~/ A8 Q2 _
"M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
! u2 Y- o. s1 V: ^# I "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.8" ""
9 i6 v+ F3 B2 b "M" "TEXT" "C" "7" "" "Lw" "1.58" ""2 N: }0 O$ K5 V9 f
"M" "TEXTTXT" "C" "7" "" "Lw" "0.5" ""
3 v+ ~9 q2 L0 K" Y: ?. b "M" "TEXTVN" "C" "60" "" "Lw" "0.4" ""
/ {" n, G5 O0 A6 O: p( J "M" "TEXTVNi" "C" "60" "" "Lw" "0.4" ""9 G. k' g2 ^' i1 E$ T u' j
"M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""$ h& t! E4 V6 x, c& J; |- K$ A9 l
"M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
2 d5 x4 o$ ]% ]/ V: w: e "M" "CUA" "C" "6" "" "Lw" "0.5" ""0 a: Y8 N" {) O6 @
"M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" "" f1 T! o: O# O& M( d0 W
: r% x; f) _1 _, O# [1 g. q; {;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===0 q6 d4 Z+ |( K
( C/ {# L+ s/ R/ I( D: D "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""* X. K1 J: t! r. X! H/ q8 K
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""7 \7 v q+ L* Z$ x) b
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
' `$ O3 t8 j% L4 k$ C$ Y0 o; "M" "250" "C" "250" "" "Lw" "0.35" ""
6 R7 l6 F; } O( T0 p# Z "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""* l8 [6 f+ }" F6 J5 e& \+ U6 S
"M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" )(princ)
( v9 t. D0 P+ T$ p& W5 i
6 A1 x. W; T3 i* J2 G# c;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
& g3 w$ g+ N+ F' N+ E) V;===================================30|04|2024==============================
) J- f& Y8 q, U K
; Y l0 r. l. i: A (Command "-style" "VNi-AUCHON" "vauchon.ttf" "225" "1" "0" "n" "n" )(princ)
7 }8 L1 T5 W" h (Command "-style" "VNi-COURI" "vcouri.ttf" "200" "1" "0" "n" "n" )(princ)
1 X: l% p& t( o% v3 e (Command "-style" "VNi-COURIB" "vcourib.ttf" "200" "1" "0" "n" "n" )(princ)
2 D5 N: t" O% [" e* v (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
6 {/ l4 m, X+ T* e) R. l (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
1 P6 g4 k6 Y* H/ ~; f (Command "-style" "COTES" "tcvn3italic,vns.shx" "0" "1" "0" "n" "n" "n" )
. y/ ?2 z7 I( L+ w0 H (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" )
) _! V! O! D/ M3 Y% A7 { (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" )3 k+ a$ `3 B& t
(Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" )2 s5 J) [" p- W5 Q
(Command "-style" "STANDARD" "Cambria" "250" "1" "0" "n" "n" )/ J9 F; b3 i3 G7 |9 a
(Command "-style" "CAMBRIA" "Cambria" "200" "1" "0" "n" "n" )
7 B+ o0 _( C0 @9 h% w" Z- b, _7 O7 z, J (Command "-style" "GHIKH" "romant,vns.shx" "0" "1" "0" "n" "n" "n"): n0 m: F- w% c* g+ G5 R
(Command "-style" "GHISH" "impact" "0" "1" "0" "n" "n" )
4 p3 o8 \7 q! U8 o+ H (Command "-style" "ROMANT-DIM" "abcroman,vns.shx" "0" "1" "0" "n" "n" "n" )8 ^. C Z0 S* r. p% ?
(Command "-style" "ROMANC-KhungTEN" "abcroman,vnh.shx" "200" "1" "0" "n" "n" "n" )
) o& @8 ~8 }- z" }4 ] (Command "-style" "ROMAND-TEXT" "abcrom,vnh.shx" "200" "1" "0" "n" "n" "n"). M8 T c+ z2 K5 e8 h0 z- a3 e
(Command "-style" "ROMANT-TEXT" "tcvn3italic,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)! f7 L& l. f+ T+ B6 U+ s4 v
+ {0 P5 m) {2 |- Q! u1 l/ X5 |;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
^5 O6 V9 W$ u0 L;===================================17|10|2024===================================+ {! L$ Y& b4 ]9 p
1 l$ @, I6 W1 j4 v; g
(Command "DIMTXSTY" "ROMANT-DIM" )(princ)5 l c z7 c. l1 E
(Command "DIMBLK" "Closed" )(princ)
; U/ f" R/ D' Q; T. m z
$ [1 s6 e# f5 j8 ?8 G;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=+ L' U5 \! s* x/ |
;===================================17|10|2024===================================
9 t( d1 E+ @/ x9 A- A+ K* O: z7 R* [ Y4 N S4 l6 S
;(Command "-units" "2" "8" "1" "8" "" "N")
5 a1 N) l: u3 F3 K' N! r(Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "" "N" "" "N" )(princ)1 `5 G7 k, ^1 A
1 I; C' Z% N: F( g: {, y1 p
;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
: P; I6 B/ r# y2 S;===================================17|10|2024===================================) M4 e+ s7 b$ `% D
) m) p$ U+ P8 l( m8 z3 |6 {0 [;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
: h( U% J: J4 J4 o, D1 Z( U; P! ~2 U2 n7 X1 C0 u9 @ [5 ?
;======================== DAT NET IN & TI LE BAN VE =============================
" Y/ Z% F$ z' Q0 o+ G% F- }* j% A! J# i$ a& k" {
;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================0 r- W3 T8 G: I, u
;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
0 q# T) Q/ E5 ?0 j2 t;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================4 ~- x( n* {* o. m5 ^" j2 c" T
;=============================11|07|2025==============================
6 x% U) H) F! l- r# I& R }, i;Ti Le Ban Ve - 1 : 100
' R8 q: g9 l" }- j# y" A(Defun c:kta4 (); D% a5 G P- [0 w
(setq mv_sc 100);Ti le ban ve
A' l8 Y' z/ m8 @6 B) N (setq x4 297)2 J/ U- w ^# [8 b; x
(setq y4 210)4 i3 q( P, z/ Y* ~) G
(setq x4 (* mv_sc x4)
) F7 n; n6 x# a6 K! A8 p) Q. { y4 (* mv_sc y4) )
* Z W& c2 b" P$ o) @+ A0 | (command
4 V- L z: p L1 V "LIMITS" "0,0" (list x4 y4)- d+ m1 E' P1 j! `2 f: F' @
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
/ m; e/ ^0 E1 b- j0 p. A% m;Khung CHU NHAT Chinh
+ J7 `( Q' t0 ?) ^ "RECTANG" "500,500" "@28700,20000"+ d9 X7 [8 k9 T6 s, Y j2 U
"RECTANG" "700,700" "@28300,19600"5 g- L3 |; J% Q: x+ t% T$ j
;Khung Ten Chung, e z0 v" w/ i' u
"RECTANG" "700,700" "@8000,1250"
4 h$ V$ y1 f1 k1 p1 l& W# B "RECTANG" "700,700" "@17300,2500"
9 t) A1 {, s7 x# X;Ten Ban Ve* W* W, ~( d4 z5 n4 g) v; l" f
"RECTANG" "18000,700" "@11000,1250"$ \7 s+ z; g7 T# Y; ~4 V
"RECTANG" "18000,700" "@11000,2500"
4 w M9 I. c% L; I;Khung Ti Le + Ngay Thang Nam
: g6 J8 l2 W. I9 T- Y7 R "RECTANG" "22500,700" "@2000,2500"
/ g) N2 d/ {- l1 L" J+ ];Khung CHU TRI
3 a) x( l2 Z7 u3 J5 T1 L: a "RECTANG" "8700,700" "@3800,2500"1 ]2 A* [6 E g# Y# [% t( W
"ZOOM" "_a" ))8 B# z) L2 M3 ~
;=====================================================================+ r$ R& a4 D0 f
;Ti Le Ban Ve - 1 : 100
! ~- e. D, H! o3 f6 ]# ?(Defun c:kt4a ()9 ?5 d1 S4 k6 _4 Z3 E0 D
(setq mv_sc 100);Ti le ban ve
6 T' o2 D( ^4 c7 N+ e* d0 C) | (setq x4 297)# w6 b# N' ]7 B2 Q# U1 i
(setq y4 210)0 E& W+ t; N( m; A3 `( l
(setq x4 (* mv_sc x4) t- y: ^0 o' l% i0 w+ y7 }
y4 (* mv_sc y4) )
0 j; W+ H! ~4 p: w: V. W+ M (command
# t/ W8 m4 T! X& G# ^' ~! f0 G "LIMITS" "0,0" (list x4 y4)8 k7 c; ?* S. {, F1 }; S
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
' p" Q3 {4 b7 Q0 m;Khung CHU NHAT Chinh 6 o) H" E, M7 ?& j1 E$ o
"RECTANG" "2000,500" "@27200,20000"
# Y0 |$ d8 i1 m3 l "RECTANG" "2200,700" "@26800,19600"
+ k( B3 T: y) P" H l;Khung Ten Chung
9 O; A' D$ a7 |% m "RECTANG" "2200,700" "@6500,1250"
T, s# ?' R3 } "RECTANG" "2200,700" "@15800,2500", n3 f5 Z. G: N/ a: S; Y6 D
;Ten Ban Ve; x8 W& m. w& o* {" Z$ A
"RECTANG" "18000,700" "@11000,1250"
$ b/ q C- v5 N ^( Z "RECTANG" "18000,700" "@11000,2500"
9 T4 G; V6 a2 a5 B; k;Khung Ti Le + Ngay Thang Nam! Y6 a, l6 g1 e8 S% b
"RECTANG" "22500,700" "@2000,2500" _/ i- D7 {$ ]. ~2 o
;Khung CHU TRI
% n0 b3 @" l5 t8 b3 |' W9 } "RECTANG" "8700,700" "@3800,2500"
& ~' W7 J# g' _8 e: ^9 R "ZOOM" "_a" ))% m5 S9 M9 @* t' N% |& N3 }
" J, h9 `9 u! i6 `3 B;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
2 }! X2 [# | k7 u;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
0 f& @. {1 S+ ^' @;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================3 N [* k9 i6 _& l0 Q5 d
;=============================04|07|2026==============================
9 {0 {3 H% E: R$ M# N" p;Ti Le Ban Ve - 1 : 100* c7 o' K3 D' Y% ~7 h) e2 V
(Defun c:za4 (). `. O1 f8 R2 j
(setq mv_sc 100);Ti le ban ve
* L# H' |* }% H3 ?0 S (setq x4 297)& T+ W6 b" T. Y) t; C
(setq y4 210)
; ?+ R% F9 f; X: b# q (setq x4 (* mv_sc x4)
5 }/ Z! V( W5 V% `& F2 [2 U1 G y4 (* mv_sc y4) )2 H; r$ r5 K+ d" c5 C
(command
' P6 S3 y" f- A: B, n% {- l$ v* n "LIMITS" "0,0" (list x4 y4)0 u$ E+ h( u/ w# _4 G0 e
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"# n7 ?& i6 t9 V6 F, B
;Khung CHU NHAT Chinh . @% M- {7 X: _$ D0 S( `) M I
"RECTANG" "500,500" "@28700,20000"# M9 r- d1 P# S
"RECTANG" "700,700" "@28300,19600"# W7 w2 w0 |8 U9 q* ~& a
;Ten Ban Ve
- J" }2 }6 \" d5 O9 \ "RECTANG" "24500,700" "29000,1950"
6 k4 o/ ]' }! s" c6 m! n" {/ d "RECTANG" "24500,1950" "29000,3200"
$ c& n: \: i& Q1 c;Khung Ti Le + Ngay Thang Nam
$ y) w' I( i! F6 b "RECTANG" "24500,3200" "26750,4450", X2 l2 G+ ]. B% O* P4 a7 {
"RECTANG" "26750,3200" "29000,4450"
2 N C& Q" \0 a. @;Khung Kiem Tra
0 ]0 b: d4 X+ Y/ }9 d "RECTANG" "24500,4450" "29000,6325"% E6 N+ E* f3 V3 M' G# y
;Khung Thiet Ke
, r1 }# P- r+ K: B; \7 h) Y "RECTANG" "24500,6325" "29000,8200"! l) l/ | t; @, p" L9 q9 I
;Khung CHU TRI
; G% w1 G0 x5 d% C; y( |3 S "RECTANG" "24500,8200" "29000,10075"
8 P5 r2 y" F6 p;Khung GIAM DOC1 \# t3 }/ J, f0 z: j. k
"RECTANG" "24500,10075" "29000,11950"
: \7 h9 T6 D) {% x6 D! y;Khung HANG MUC
7 [; U/ t. y; E- g! a) z2 [ "RECTANG" "24500,11950" "29000,14450"
5 S% @% l% _9 W/ d2 }4 K' ?- G, M;Khung CONG TY0 y1 n4 ?' v5 C- g4 f. z
"RECTANG" "24500,14450" "29000,16950"8 C1 |, S! h; X, ^9 U
;Khung REPAIRE" Y& }3 ]- V* ^' i+ \$ z! ~9 ]
"RECTANG" "24500,16950" "29000,18125"
; F2 R! i* I/ Q' w* l9 _- B "RECTANG" "24500,18125" "29000,19300"
! R, j4 y! p# u; o8 Y9 f2 c "RECTANG" "24500,19300" "29000,20300"
* R |- }# @$ Z+ X) S6 c2 v "RECTANG" "25500,16950" "25500,20300"4 J% V) I7 C8 ~
"ZOOM" "_a" ))
9 g2 e- G7 u0 ~! X/ j;=====================================================================+ P; P8 v1 q+ t3 I8 j7 P8 d; j
;Ti Le Ban Ve - 1 : 100
8 e7 F$ @* O; j* V(Defun c:zb4 ()
1 X+ i* u- l! m; ]9 L" M (setq mv_sc 100);Ti le ban ve5 _9 k: J4 T- e% t
(setq x4 297)1 u( V" i8 R& b
(setq y4 210)
2 _2 _ ^$ R- e5 e4 q) T (setq x4 (* mv_sc x4) % ]' `5 A+ W! M
y4 (* mv_sc y4) )
0 ]. s3 z- w% B* v" ~ (command
5 x9 R( `5 [8 y; _" D% c4 R "LIMITS" "0,0" (list x4 y4)
r7 U$ h r( ]$ h "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"- d. Y# Z9 Y& r
;Khung CHU NHAT Chinh
8 u5 m6 i( g4 t2 ?9 B. J/ V( A "RECTANG" "2000,500" "@27200,20000"' G% B8 _; }( U3 b, ]
"RECTANG" "2200,700" "@26800,19600", ~, v5 w' g% ^& P, i- ]% B
;Ten Ban Ve& @$ D$ w. f, ^4 K( j
"RECTANG" "24500,700" "29000,1950"% `. V8 _* g9 _% @
"RECTANG" "24500,1950" "29000,3200"
: ^' @# i0 t5 R) R6 W;Khung Ti Le + Ngay Thang Nam
& w. P$ s0 \8 X9 L "RECTANG" "24500,3200" "26750,4450"
' H6 I, g1 v9 q( M$ z "RECTANG" "26750,3200" "29000,4450": v5 U( [; Q# \2 B1 {! J
;Khung Kiem Tra
. S `" B; ^/ F5 L "RECTANG" "24500,4450" "29000,6325"
]9 w) m6 \8 G( Q( L& G;Khung Thiet Ke! W, W! _' v& d4 g( G
"RECTANG" "24500,6325" "29000,8200" P( q4 Y$ c1 Q+ ?7 Y& d
;Khung CHU TRI
) w3 X( S; V7 m: a( T, P2 [' I "RECTANG" "24500,8200" "29000,10075": u8 J8 X- G4 y- K: O, y% H; V ]
;Khung GIAM DOC
% ?+ q1 W! D2 k! u0 n0 m "RECTANG" "24500,10075" "29000,11950"
+ M9 ^! X* b u, O( T3 w;Khung HANG MUC0 }, S& H9 t1 w, ~* @
"RECTANG" "24500,11950" "29000,14450"" x$ I& g8 P S& E) V1 u
;Khung CONG TY
! t8 L# p3 E) s( G# X4 T0 Y "RECTANG" "24500,14450" "29000,16950"
q1 @( q7 k& a" @. y;Khung REPAIRE1 `2 D8 M! N- F# w* n* Q' E' |
"RECTANG" "24500,16950" "29000,18125"
2 f8 T$ y4 q. K "RECTANG" "24500,18125" "29000,19300", S! h8 K- c, D/ \% y
"RECTANG" "24500,19300" "29000,20300"
7 n1 Q3 u- K) J6 [7 `$ V8 g2 Z- Q "RECTANG" "25500,16950" "25500,20300" f3 K6 H. |. ?" }' d
"ZOOM" "_a" ))
2 u6 e. W8 ~& u, V3 C( p/ a
4 w; i2 {2 n0 F;;; ============================GHI CHU Khung Ten========================
" I2 w$ y+ P' `0 x/ ^. a0 A;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========5 Y9 n: c0 J V9 c) a
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================
% \+ x$ C; W9 K2 ^6 X$ v;;; =======================Thuong Dung Font Romant.vnh===================
4 K# L1 E5 J. `! N0 N' o/ F! R d) F( E$ `# D: X
(defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)$ f* r w k, n6 J; I: e0 v
(setq oer *error* *error* err2)
" }- r. P: V: ^, C( V+ w* i- e (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")$ p$ k( o6 L8 r0 B0 G9 S `7 l; P
(SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))- j# a* A" @2 u9 y9 v
(IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
1 j' }+ i3 I2 P4 ~* E (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))6 u: R, G# l% \
(IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))" n) U% q8 [1 j
(IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
+ B8 Y1 G0 h7 w" F" c (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
( g8 {0 S5 L. P) s (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
: C- M; K8 v% k9 G' W (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))* F9 W- ?' K7 u+ n y- b
(IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))! n! t0 v" M8 l. b- ?4 p P: L: I* y
(IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))& I. q+ p$ X# ^& _; L8 i
(IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))+ J7 q. D% K; q- H5 r/ p. k" E
(IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
' ?2 F! L, {0 O) D+ ? (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))& c7 q! R2 ~7 }" X3 M `, T. r; n9 C6 ~1 R
(IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))2 X/ R; v8 b. I9 y# `) Z% b' D
(setq pta (getpoint
6 T' d% A/ @4 @6 f "\nPick first corner. : "))+ F5 C- z* I/ ]' m% s7 R" f7 z
(setq ptb (getcorner pta
6 Q3 [" N# _. A Q! u9 _ "\nPick second corner. : "))
; y! P4 L8 w% b% l2 T8 _ (setq ptc (list (car ptb)(cadr pta)))
& }- ~6 s5 P* e+ p* ? (setq ptd (list (car pta)(cadr ptb)))
# v# |0 g3 o8 C5 ` (setq ang (angle pta ptb))
8 _5 l; X8 }) f6 Y) U h (setq d1 (/(distance pta ptb) 2)), q) g% i3 q' \: K8 | q
(setq cp (polar pta (- ang (dtr 0)) d1))
( S" w3 \; m% s! Q8 M1 Y2 P( m- g (setq X (distance pta ptc))4 q3 ~5 F/ G8 C* o$ ]4 P
(setq Y (distance pta ptd))) |7 @1 J" |9 ]6 y1 F
(setq X1 (rtos x 2 1))0 ?/ x* W0 o) P: W! I* B
(setq Y1 (rtos y 2 1))8 O* O8 m2 e2 O4 `
(setq rmsz (strcat "(" X1 " x " Y1 ")"))8 L/ c" i8 j. a0 r7 r
(command "TEXT" "c" cp "0" CPT "text" "" rmsz))9 m5 X1 I6 K- }; q7 K4 v
(defun dtr (angg)* c6 C/ L7 R! {
(* pi (/ angg 180.0)))! w& i ?; x2 x; ]7 z/ L
$ V4 L7 n2 G* o7 l k* ]* K, |& R;;; ============================GHI CHU Khung Ten========================* y# e% q, X+ ~8 t; Q; L2 b6 R6 ?
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
" A( z! g5 a! }" |* j) c;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================
) f5 u. s2 e; `# \& o- o$ k;;; =======================Thuong Dung Font Romant.vnh===================& w A4 V% W! X( I8 {& C
) K' x8 O- s3 F) I$ G( V(defun c:iit (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1), L+ ~( |/ P7 e1 y+ l" ]
(setq oer *error* *error* err2)
/ ~3 M5 @) s0 x4 Q (if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5% z/ k9 k0 i' P# \* o; ^& {6 C
. a4 r1 r A3 ^# d U0 D
(setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))( z: f4 n1 W+ p
, Y- z. i2 w" E" c, i (if ht (setq h_text ht))2 _7 b2 R0 M* p
" W, r! d) c6 T; w$ \% v) }
4 B. L8 A. V5 a t* X! n(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))
, j& h( c2 M8 f. r) B( ?- t" T6 a' v% \1 h3 s9 V& B+ r
(if (not ang) (setq ang 0.0))2 ^! x9 I( G& {7 T+ N( l. m/ G
- P: x! @+ A8 Q& e/ S8 b
- E7 X" F# n2 D1 _' B. n" n2 ~* k8 p% ?0 q, Y/ E+ P0 d6 a% j& L
(setq pta (getpoint( Q. a# s, r. j. U! `8 y
"\nPick first corner. : "))
6 @: L; e M w3 k5 j) p) m1 t (setq pt (getcorner pta
* d4 X! b% d; ] "\nPick second corner. : "))
1 n+ q6 Z- U/ u& }6 S% [* V
/ Q. E+ Y+ _' L6 @+ g8 ^+ L% d4 [# l; N; t: H
(command "TEXT" "j" "M" "4700,2575" "0" (SETQ pt ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông Quy M«") ) (princ)
/ D( U7 H* i9 e7 ]8 N7 D, X( Q$ {3 Y$ X) X3 o @$ X: n
(command "TEXT" "j" "M" "4700,1325" "0" (SETQ pt ' "2 TÇng 1 Tum Thang") ) (princ)
$ I0 p( t, {( l/ ~& B' E" X
+ w4 |" ^( @) C (command "TEXT" "j" "M" "10600,2850" "0" (SETQ pt ' "Chñ Tr× :") ) (princ)7 S! u4 _! @9 k8 p) `
" c# l8 Q2 ^0 _# @4 O0 [! L* x; M (command "TEXT" "j" "M" "10600,1100" "0" (SETQ pt ' "TrÇn Ngäc Th¾ng") ) (princ)6 g) `$ W% n$ I, r2 O# V+ |0 A
7 |! N' b3 J* v
(command "TEXT" "j" "M" "15250,2575" "0" (SETQ pt ' "H¹ng Môc :") ) (princ)
1 X& O) [ B# F! l1 J1 u3 ^* ]. }) z
(command "TEXT" "j" "M" "15250,1950" "0" (SETQ pt ' "Nhµ ë Gia §×nh . Nhµ LiÒn KÒ") ) (princ)
) { `4 I; |1 K0 @; m/ k5 C" P- {! x- X* p! o. L) O* _
(command "TEXT" "j" "M" "15250,1100" "0" (SETQ pt ' "Tel : 09.76.89.12.94") ) (princ)7 ]2 B, Q, N; x' P% |% Z
4 E( R9 X2 q4 R( Z6 v
(command "TEXT" "j" "M" "20250,2850" "0" (SETQ pt ' "ThiÕt KÕ :") ) (princ)) Z0 S+ ^9 S! o( B* v
5 I5 z4 d8 u, C- e4 W (command "TEXT" "j" "M" "20250,2300" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)& Y4 i( q5 Z+ w/ g
; m7 U+ U( }+ A7 I! N* d& s# ` (command "TEXT" "j" "M" "20250,1600" "0" (SETQ pt ' "KiÓm Tra :") ) (princ)
! T" h5 x0 I. z( [5 I: m
/ O- y5 g* b; e" B$ Y$ k( w. m u (command "TEXT" "j" "M" "20250,1100" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)& h" u5 l% L( J2 }4 n# ?
* d5 ~( g% M: |" C; p; T (command "TEXT" "j" "M" "23500,2850" "0" (SETQ pt ' "TØ LÖ :") ) (princ)
5 ?. R; ]' N/ ]4 [ t2 M* R, b" v8 l3 J( @! L) D# |) Q$ t
(command "TEXT" "j" "M" "23500,2300" "0" (SETQ pt ' "1:75") ) (princ)
0 L& G' e X. e% l" l5 d7 }0 Z5 ?$ U
(command "TEXT" "j" "M" "23500,1600" "0" (SETQ pt ' "Ngµy :") ) (princ), S# Z5 y' L# Z; k" y
* k3 Z) Q$ H2 I: ?# o* r* l- T: J
(command "TEXT" "j" "M" "23500,1100" "0" (SETQ pt ' "2026.07.02") ) (princ)
* R; a% t0 g: o) F& H6 @0 R- ]" ~, V
* o+ R' a8 t/ D1 h (command "TEXT" "j" "M" "26750,2850" "0" (SETQ pt ' "Tªn B¶n VÏ :") ) (princ)' |9 I* ~3 L* o+ ]1 i
6 H; B m( u2 J0 V# Z5 X7 M
(command "TEXT" "j" "M" "26750,2300" "0" (SETQ pt ' "MÆt B»ng TÇng 1 + 2") ) (princ)% V% l) E$ _! r/ i
6 S/ p `1 s/ E* h
(command "TEXT" "j" "M" "26750,1600" "0" (SETQ pt ' "Ký HiÖu :") ) (princ)
i" D5 e! ^; c' j' ?, p; e
/ y% z) y9 R" s: L0 w6 E (command "TEXT" "j" "M" "26750,1100" "0" (SETQ pt ' "KT-01") ) (princ)( {, T# X8 @8 o) V- }4 ~* b
3 _& U, P& v5 R2 O! s
(setq ptc (list (car ptb)(cadr pta)))
! O/ X( C! V7 e( h; y+ }. ` (setq ptd (list (car pta)(cadr ptb)))) v2 \& M# H4 Q, a, z# t+ y, K
(setq ang (angle pta ptb))* C# @ a4 ~, X k# d3 z2 Z
(setq d1 (/(distance pta ptb) 2))
1 ]1 @1 X+ x' [/ e# n8 I (setq cp (polar pta (- ang (dtr 0)) d1))
q0 H4 [" A3 p, T+ V! U (setq X (distance pta ptc))% V! ~7 u( \3 s6 f4 m2 ]
(setq Y (distance pta ptd))0 ]! U+ L. N# t! z
(setq X1 (rtos x 2 1)). ]/ s3 D5 _! Y$ \
(setq Y1 (rtos y 2 1))
8 j5 d( c& q. H7 o& S! L (setq rmsz (strcat "(" X1 " x " Y1 ")"))8 x, W2 v! V7 H
(command "TEXT" "c" cp "0" CPT "_text" "" rmsz))
% ^, _! O' Y+ I* f (defun dtr (angg)% _9 b/ e. w& R7 g6 U* n3 I
(* pi (/ angg 180.0)))
# p" {7 G: n3 I; T0 E" T" v! c; e3 V. \# G; K# {+ _/ O/ h
;;; ============================GHI CHU Khung Ten========================
: z/ t5 @8 v5 j$ ^6 Y" ]: K;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========0 b5 Y! l, K8 Z/ _* ?' ~7 E
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================
( V) \+ g9 e# j9 Z2 h, @4 [* [;;; =======================Thuong Dung Font Romant.vnh===================, I. _0 ?, g# f- V0 @. N$ [( S
/ w% ^) @8 N6 E2 r9 |. R
(defun c:ipt (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)- {4 E/ e7 ~" ?. _. c. E- l
(setq oer *error* *error* err2)' u6 P/ O8 q5 \
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5
{9 L; f; J& E+ F) G( J
8 R5 f" J% c3 Y$ B1 e- a8 Q9 c (setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))) T+ u$ T9 i8 m8 Q
. l0 L6 j' @" l4 r (if ht (setq h_text ht))
* y! H7 f4 @( e3 E) k; e
/ K6 s2 F' B: t5 F+ Q" w& v1 R- |6 f+ f5 U6 {
(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))
; ~/ B& ~: Z* Y |5 C' d: X
0 U* b4 h2 ?+ H k (if (not ang) (setq ang 0.0))" n: F) f, {+ j* S
) \. z$ c+ M8 _# p8 P* u& G+ U E" R, }% g) j( n
2 u% g% |" c( K$ ]/ z/ L
(setq pta (getpoint6 R7 t! _1 H, C$ N3 L/ a3 j
"\nPick first corner. : "))4 H8 U) c j; [7 ~/ w4 W7 j" f. b2 L
(setq pt (getcorner pta
% u' S/ y- ~) I# w( ?0 H: e "\nPick second corner. : "))
0 J8 @4 v; K0 G0 B& H% Z P; q0 L7 D5 c7 ]
4 d, D3 ]8 ~! B8 h+ X (command "TEXT" "j" "M" "5450,2575" "0" (SETQ pt ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông Quy M«") ) (princ), X2 X0 I7 Z# w; y4 }( F
' K6 }2 |2 C+ `. o/ G* A. n
(command "TEXT" "j" "M" "5450,1325" "0" (SETQ pt ' "2 TÇng 1 Tum Thang") ) (princ)' Z5 o0 y5 ~- Q4 Q5 k8 M
7 P6 i$ A! Q$ H& ]% c1 S (command "TEXT" "j" "M" "10600,2850" "0" (SETQ pt ' "Chñ Tr× :") ) (princ), e' h, t9 r( E( M% C4 S
0 J" H. o* w* o. o (command "TEXT" "j" "M" "10600,1100" "0" (SETQ pt ' "TrÇn Ngäc Th¾ng") ) (princ)
) m; r/ w/ h1 p5 y" X8 p0 {0 d8 q4 l& J7 l3 S: d+ }
(command "TEXT" "j" "M" "15250,2575" "0" (SETQ pt ' "H¹ng Môc :") ) (princ)
& O0 t6 }8 v" b9 k$ r0 I5 @1 j; b. g% U7 n0 H" P
(command "TEXT" "j" "M" "15250,1950" "0" (SETQ pt ' "Nhµ ë Gia §×nh . Nhµ LiÒn KÒ") ) (princ); ^, T6 {# Q- u5 Y$ i) W m
: L0 T/ J: i) h' m! p (command "TEXT" "j" "M" "15250,1100" "0" (SETQ pt ' "Tel : 09.76.89.12.94") ) (princ)/ D2 ]' ^6 s" |
$ z) I- f# l+ Z3 u1 G7 Z (command "TEXT" "j" "M" "20250,2850" "0" (SETQ pt ' "ThiÕt KÕ :") ) (princ)# z7 k# f3 F0 [
1 {1 ~9 q) E9 w& {% I (command "TEXT" "j" "M" "20250,2300" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)$ q2 R- D1 l5 f C. O1 ~
3 C0 g1 t; v# `& j1 ~& v1 } (command "TEXT" "j" "M" "20250,1600" "0" (SETQ pt ' "KiÓm Tra :") ) (princ)& e# x$ M1 `3 _6 h0 ^4 k
% ~0 F6 A1 E, E; P0 n' z9 I# y$ G
(command "TEXT" "j" "M" "20250,1100" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ), k6 |4 k' ?, A; l( o
6 }; U7 e( l: o- Q& u (command "TEXT" "j" "M" "23500,2850" "0" (SETQ pt ' "TØ LÖ :") ) (princ)" q! p; M0 |+ s: `+ r: s9 f+ f
2 b: W/ o4 ~! {1 J/ r' R
(command "TEXT" "j" "M" "23500,2300" "0" (SETQ pt ' "1:75") ) (princ)) u0 T: K2 ?0 d4 K1 e0 X# Q/ J
9 X* m; L8 p6 t! U/ f: n
(command "TEXT" "j" "M" "23500,1600" "0" (SETQ pt ' "Ngµy :") ) (princ)/ F) f$ E5 s7 U" n& E# D
- U% y* [3 h5 `" S6 v1 h8 B (command "TEXT" "j" "M" "23500,1100" "0" (SETQ pt ' "2026.07.02") ) (princ)# H3 f9 M8 N. X1 B
M) J6 ]2 N5 i5 l (command "TEXT" "j" "M" "26750,2850" "0" (SETQ pt ' "Tªn B¶n VÏ :") ) (princ)
+ p. i6 X% x5 }- P' w1 [2 m! h2 b) A4 F1 u1 c
(command "TEXT" "j" "M" "26750,2300" "0" (SETQ pt ' "MÆt B»ng TÇng 1 + 2") ) (princ)3 K9 E4 Y& Y& r
4 g1 Y1 C6 A5 N! t- O- x (command "TEXT" "j" "M" "26750,1600" "0" (SETQ pt ' "Ký HiÖu :") ) (princ)
8 q7 n0 k( l% V; a* a5 b3 x$ j% u2 t4 o
(command "TEXT" "j" "M" "26750,1100" "0" (SETQ pt ' "KT-01") ) (princ)
3 V1 M, l7 D! k9 ^3 J% M( z
: L L- ~& _* k; ^% o& ?+ U (setq ptc (list (car ptb)(cadr pta)))
P# H) `4 b) } (setq ptd (list (car pta)(cadr ptb)))
9 B, q$ E i; M8 F- g3 T (setq ang (angle pta ptb))
( a7 D& x6 A P (setq d1 (/(distance pta ptb) 2))
9 {5 {$ Y$ Y% e& D+ e (setq cp (polar pta (- ang (dtr 0)) d1))
* j( o+ z3 m" Q* B* a1 _ (setq X (distance pta ptc))6 Q4 X2 e( c' V, [5 u
(setq Y (distance pta ptd))
f6 |' }6 d! o6 B (setq X1 (rtos x 2 1)) y- E' f4 H1 A. v( j
(setq Y1 (rtos y 2 1)) K) i& X8 U( v. ]& \& _ ]. K0 n
(setq rmsz (strcat "(" X1 " x " Y1 ")"))
5 P4 x* m7 _) ~) L (command "TEXT" "c" cp "0" CPT "_text" "" rmsz))3 _# ?" q" f Q+ z d& z1 f
(defun dtr (angg)
* t) s' J1 A7 s" U( h' O (* pi (/ angg 180.0)))
; |7 x3 ~. D% E/ ~' e/ q2 }2 p* j% L/ y
;;; ============================GHI CHU Khung Ten========================
8 ]. y& e, b- [0 G;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
. A! \, q' E) t- j/ m5 u;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================
& X' q. Q1 b2 c: n8 T4 J/ C;;; =======================Thuong Dung Font Romant.vnh===================. {& N- Y& i: p9 ], @8 y! i, L# O
/ J: d8 N! _3 ] s" O6 E(defun c:iza (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)* D/ o* z* M; [
(setq oer *error* *error* err2)" F: o) f2 Z- Z( y$ Z8 _" t6 c
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5
4 T6 A+ x% E3 ]* a7 I* M! Y
) H) l0 e# J; U1 |- }' e/ k (setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))
4 T+ ~0 f3 ~0 @3 k0 p8 j$ W1 }+ ^- N; m. G5 G
(if ht (setq h_text ht))& k7 D+ y2 R% I/ a" }* Y" U! W, e3 u
$ k7 X) ~- n* v
# `, o( t4 ~: I; r0 h: ~, @(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))1 y1 b# Q5 B) {0 b6 W* v: q# W% {
4 o! l" M D" ]1 ^' D8 n5 b (if (not ang) (setq ang 0.0))
. W* H( l' i& r5 r- B1 x0 L2 i" p+ f6 ^$ _
n& o! y# [) C4 M1 G- s! ^
5 Q" J& m2 p2 Z( ^+ h (setq pta (getpoint
6 ^% d$ `' t' j "\nPick first corner. : "))
0 p0 ?# } k1 h( O" d8 I (setq pt (getcorner pta3 }5 B6 w/ M6 N9 ]6 s/ k9 k
"\nPick second corner. : "))
. f( a3 k4 a" R) p; y$ c
% z' O5 s! E- {
/ @4 n9 }0 }+ z) p( Q5 l, x8 ^) \
(command "TEXT" "j" "M" "25000,19800" "0" (SETQ pt ' "STT") ) (princ). ^2 a* T3 r: V9 _' T' {
' y* o' s# `% _2 N
(command "TEXT" "j" "M" "25000,18712.5" "0" (SETQ pt ' "1") ) (princ)3 u/ n1 E) o0 x
# N) U: J: n O& K" ]# K U (command "TEXT" "j" "M" "25000,17537.5" "0" (SETQ pt ' "2") ) (princ)
) \+ [+ j2 c- H! {# E3 Q4 W0 R. J# w( t$ a8 k- v
# V6 W1 g* k6 o. K% X* K7 B; _* k (command "TEXT" "j" "M" "27250,19800" "0" (SETQ pt ' "Ngµy Söa Hå S¬") ) (princ)
) H$ c/ U& B2 a' ^: l
+ F' ^. k2 h1 \# H3 Z0 Z* s+ n (command "TEXT" "j" "M" "27250,18712.5" "0" (SETQ pt ' "15.05.1997") ) (princ)
2 T2 I0 ?; A- d7 }3 m }; I$ j. N& n
(command "TEXT" "j" "M" "27250,17537.5" "0" (SETQ pt ' "04.07.2026") ) (princ)
6 W1 X1 s w% X. U! o% z
# @# r/ t' }- B, q( z/ k8 z& s& A. I3 h/ j- o& `
(command "TEXT" "j" "M" "26750,16600" "0" (SETQ pt ' "C¤NG TY - Corporation") ) (princ)- b2 W, I3 ? j% R6 s- u
- p5 E" h4 m& [2 U. u$ p% L" m
(command "TEXT" "j" "M" "26750,16016" "0" (SETQ pt ' "ZENNI.S.Z.T.K") ) (princ)$ U" J0 |* e2 o, Z
% F: P1 |; B8 o/ J
(command "TEXT" "j" "M" "26750,15433" "0" (SETQ pt ' "§Þa ChØ C¤NG TY") ) (princ)
: \: _. y. z* V ^' v; B% {- K. m! |" d) P5 ^( q+ l3 h% Y
(command "TEXT" "j" "M" "26750,14850" "0" (SETQ pt ' "§Þa ChØ : 00.00.00.00.00") ) (princ)8 ?. A1 \% S$ i5 U: g$ n% ~2 I
Z5 t }1 S3 w2 p6 Y, F3 [- z. A; ?, G0 j2 A" V7 ~( \. `/ |% O# _9 L
(command "TEXT" "j" "M" "26750,14100" "0" (SETQ pt ' "H¹ng Môc : Part Project") ) (princ)" t: C, y9 K% O: D2 w. v3 r
( R3 r- A& E$ g- b$ q
(command "TEXT" "j" "M" "26750,13516" "0" (SETQ pt ' "Nhµ ë Gia §×nh") ) (princ); }3 C, y# ~: w5 n* x, `
$ p! d" r9 n/ ^- S( c- w) E (command "TEXT" "j" "M" "26750,12933" "0" (SETQ pt ' "Nhµ LiÒn KÒ") ) (princ)+ x' d# f+ |4 U
/ O4 B6 b+ a* H. v5 I! b3 m3 W. ^ (command "TEXT" "j" "M" "26750,12350" "0" (SETQ pt ' "Tel : 00.00.00.00.00") ) (princ)4 u, u# z* C0 x, l/ j3 [5 y
3 _- S0 M0 r! F6 m" n, U
9 Q/ L# o* O& a2 M, R" ~7 a (command "TEXT" "j" "M" "26750,11600" "0" (SETQ pt ' "Gi¸m §èc : Director") ) (princ)6 Z/ y# ~ ?/ [: b! l
6 M# A9 [( {2 j; C; Y0 X
(command "TEXT" "j" "M" "26750,10475" "0" (SETQ pt ' "ZENNI.S.Z.T.K") ) (princ)
8 M T0 |5 _/ U1 u |! T1 Q" c5 T4 A
(command "TEXT" "j" "M" "26750,9725" "0" (SETQ pt ' "Chñ Tr× : Main Project") ) (princ)
) C( b" [7 ]5 D: F) @7 Y2 e7 i
& S7 O/ ^, [: H! c1 u, l (command "TEXT" "j" "M" "26750,8600" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ): z! p7 H: r; F9 f" W/ |
) Y7 j# d) a9 i1 m5 K (command "TEXT" "j" "M" "26750,7850" "0" (SETQ pt ' "ThiÕt KÕ Vµ VÏ : Design") ) (princ)
; h) E; B+ A& Z: d' h' a
4 r) ?* o' Q& d9 N6 v- K (command "TEXT" "j" "M" "26750,6725" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
* Q2 S9 c0 B7 J# @$ H: P5 A2 ]( K. c O( [/ N; L7 E
(command "TEXT" "j" "M" "26750,5975" "0" (SETQ pt ' "KiÓm Tra : Checking") ) (princ)
. {* T5 V- T& |/ V* `7 c/ B0 w: J7 r
8 a: r# y( B6 H4 H (command "TEXT" "j" "M" "26750,4850" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
5 B- \9 {, N9 O/ X. T% a3 ^
' h# Y( m5 x5 A# L7 Y/ ^5 n1 {; x W, U3 p ? V" I( n2 c0 J% @
+ ^% R8 a. A1 |& l$ h
(command "TEXT" "j" "M" "25625,4100" "0" (SETQ pt ' "TØ LÖ-Khæ") ) (princ); `: G, G1 F, u2 G
) ~) r6 G# T) ]1 [ v3 s (command "TEXT" "j" "M" "25625,3600" "0" (SETQ pt ' "1:75 - A4") ) (princ)
6 z& U+ p7 b: |/ L0 m7 {4 X
4 Q+ j8 P. E# k' `6 x- O& R (command "TEXT" "j" "M" "27875,4100" "0" (SETQ pt ' "Ngµy Xong :") ) (princ)
/ S, N, V8 O2 Y- y) {. D. g0 I8 o# n" q
(command "TEXT" "j" "M" "27875,3600" "0" (SETQ pt ' "2026.07.04") ) (princ)
& ?8 m8 i2 v* {* o( J7 h0 Q* T4 k
; Y( }4 b/ ]! I. j (command "TEXT" "j" "M" "26750,2850" "0" (SETQ pt ' "Tªn B¶n VÏ :") ) (princ)% N8 M; b/ L1 Y( m& Y" u- `
' {6 w- x% ?: g+ D (command "TEXT" "j" "M" "26750,2300" "0" (SETQ pt ' "MÆt B»ng TÇng 1 + 2") ) (princ)
0 T1 o5 w4 V0 g, ~5 T) F
T; _0 r% s! L- C (command "TEXT" "j" "M" "26750,1600" "0" (SETQ pt ' "Ký HiÖu :") ) (princ)
! `( f J6 C6 f/ Z9 O. f
" }7 c: }5 g' l% t (command "TEXT" "j" "M" "26750,1100" "0" (SETQ pt ' "KT-01") ) (princ)$ G) O6 _" f4 A
9 A( G% p' ^5 u: P5 i3 Z8 s
(setq ptc (list (car ptb)(cadr pta)))3 b' s8 Q0 T: n' n0 ^9 N5 O; e' V3 n
(setq ptd (list (car pta)(cadr ptb)))6 a; ~ | n6 T- ^
(setq ang (angle pta ptb))* C. O6 A- n R
(setq d1 (/(distance pta ptb) 2))! s; l- s0 [, z- `2 o
(setq cp (polar pta (- ang (dtr 0)) d1))' ^8 ^8 K" |4 O6 @' M: O
(setq X (distance pta ptc))8 M; g ]+ t: Z6 k/ t$ o
(setq Y (distance pta ptd))+ a! S6 f# \/ ^+ I6 {) r
(setq X1 (rtos x 2 1))
3 K. z/ F- ^6 T' `, L A( x9 k (setq Y1 (rtos y 2 1))! X: Y t& p3 N7 B; _+ z+ x
(setq rmsz (strcat "(" X1 " x " Y1 ")"))# I, z2 Q: ?% l4 l
(command "TEXT" "c" cp "0" CPT "_text" "" rmsz)) M) E9 X2 f8 x5 }, \+ D
(defun dtr (angg)
& O# |$ }& J5 T; k$ Q (* pi (/ angg 180.0)))
# s5 U; b h; P# D% B! n. j l7 u4 D7 }; t: M, l( F$ V, v( Z
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
! h8 e4 m: v2 n, g7 {' [$ E O;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================
" H% _! E! n6 Y0 ]3 p% B7 D;;; =======================Thuong Dung Font Romant.vnh===================1 M& R" a6 W1 I" o6 a+ v9 A
) M6 s- K5 `. ~. k5 `(defun c:pta4 (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
' F/ O) l7 E# m (setq oer *error* *error* err2)
8 o8 U$ x5 P" [+ D (if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.51 d' F) s9 h$ E
' \! a: u1 B, o0 Y; q. K) `
(setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))2 T+ _0 N# \3 L M/ D
7 { V. u4 w$ V! r) i( y
(if ht (setq h_text ht)) v. m1 U& _$ v: S
! ]$ }; M6 C, ~& @
! ^" E% N5 k2 k$ V6 \7 [6 |(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))
& z" C( i3 w* s: Y8 D& d" {% n3 B0 R4 g }9 R
(if (not ang) (setq ang 0.0))0 L) u F4 [) n' w
% N8 ?. p* ~: L3 u
$ x1 t0 j! ^5 ?$ M7 R
z; w% D t, f: K& Q# Y (setq pta (getpoint
, b1 n" l8 j. R# r6 c- i "\nPick first corner. : "))+ O! f* ~0 x0 V
(setq pt (getcorner pta C/ L5 R' B6 K7 |. n/ z% D
"\nPick second corner. : "))
/ M8 P3 X" D% X- J1 P% X+ _4 j" p$ l- N8 I
: w" x" G4 J1 x1 g4 V2 o' O
(command "POINT" "4700,2575" ) (princ)/ p: G0 M/ S6 f/ I! T
G9 W, _4 K- d8 D$ X (command "POINT" "4700,1325" ) (princ): i( S' d# l9 s, f3 `" e
7 L/ J8 \5 c! R6 d- _ (command "POINT" "10600,2850" ) (princ)/ D6 C! f/ x* [5 t- ?
# l- }1 ^7 ]0 }' s (command "POINT" "10600,1100" ) (princ)
7 s N/ H/ Z8 b5 P& Y3 G% l; A
) M* S e# k) v9 f: ` f (command "POINT" "15250,2575" ) (princ)" Q; m8 k3 s4 H2 x/ e4 \& j
6 l) Z: Y I/ c
(command "POINT" "15250,1950" ) (princ)5 P- r+ S/ A) Q% s4 U
) n' _ v4 t& P4 j- R
(command "POINT" "15250,1100" ) (princ). I- f, @. o. j0 Z/ g4 c
: r& a6 i3 G) c+ P! B4 w (command "POINT" "20250,2850" ) (princ)
$ _* T8 w0 p4 q( B" J7 ~( {3 C
" Z1 g' r# r( C9 H0 @! | (command "POINT" "20250,2300" ) (princ)# ^3 A. S+ }2 V
8 Y h+ f! l2 D. M" |! q
(command "POINT" "20250,1600" ) (princ)
4 |( d! K2 j6 r( n
1 M& t2 e* N. j4 ]! y2 X) A! B (command "POINT" "20250,1100" ) (princ)2 [6 `3 [7 C, j) Q- P3 g( \9 D
# T3 k! `1 ]: m3 u) g# R" z (command "POINT" "23500,2850" ) (princ)0 z; p# t) A' B) L# p6 N
+ o* _- `/ T) W' \ (command "POINT" "23500,2300" ) (princ)
3 l% n+ H" c3 N$ Z
$ _- F7 K$ ~1 h, K+ P (command "POINT" "23500,1600" ) (princ)
0 g6 `# f! j8 C$ ^2 m* D- q" k' Y4 x+ I1 L; r N: g
(command "POINT" "23500,1100" ) (princ)
2 z$ y# f+ A, p6 I9 @6 }) }+ w, L" Z7 e8 u
(command "POINT" "26750,2850" ) (princ), V1 K9 I) i9 N0 H0 k% I) j9 Q
( v0 A# M: \0 } I! t+ R' J' @ (command "POINT" "26750,2300" ) (princ)* d! ^' N% L/ @ l6 s0 G ?$ A
, U& K3 I6 Y6 d; _8 G( k6 K (command "POINT" "26750,1600" ) (princ)
, O% v8 ? r0 [: e2 J/ y6 [# d; O3 [
(command "POINT" "26750,1100" ) (princ)0 J7 Q' C8 s( I p+ L$ D
$ m/ d* k# T4 c/ k6 t( y
(setq ptc (list (car ptb)(cadr pta)))
# e C* i" ?* U2 o4 ?+ K (setq ptd (list (car pta)(cadr ptb)))! l! f, _; ]8 Q x S! ?
(setq ang (angle pta ptb))# ^4 x4 M8 X% e7 G- G3 X
(setq d1 (/(distance pta ptb) 2))
3 }& S3 Z& [+ E- ` (setq cp (polar pta (- ang (dtr 0)) d1))* {% g* x# P5 _) B/ m. Y9 v
(setq X (distance pta ptc))
s7 l; k5 D }! b4 }0 p (setq Y (distance pta ptd))
, L$ l; V" D& e" H5 ^& Z c! | (setq X1 (rtos x 2 1))7 _* p6 X1 d: H! }: E
(setq Y1 (rtos y 2 1)) A- |8 k) L G- O. j+ h
(setq rmsz (strcat "(" X1 " x " Y1 ")"))/ z" f" I7 i# m. A; Z! n7 Z
(command "TEXT" "c" cp "0" CPT "_text" "" rmsz))6 y3 Z$ ~$ M; {8 N& B4 V! L3 {; ]$ e
(defun dtr (angg)& ]9 D* \3 f9 B4 g- o# G$ q
(* pi (/ angg 180.0)))
9 V; ~: a3 Z8 c$ A/ I8 `
; @ V$ |1 b+ N6 @$ D/ U. U: |;===================================================================== ]- ~! S8 F: J& E. p
;====================DAT KHO GIAY BAN VE - KIEU 1=====================* b& w/ \; _4 A2 k6 m* a# J+ O$ J
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================2 {: T6 H/ c5 u- A' s
+ d4 ~( F" P2 o. K$ \
(Defun c:a6 () j# A& }& V( d9 n2 l h
(setq mv_sc 100);Ti le ban ve4 i8 I/ o, [* M& Q, @. s, @$ l" F
(setq x4 74.25)
( Q$ g$ p1 A; _ (setq y4 52.5)
9 E0 k+ Q3 s! F; @ (setq x4 (* mv_sc x4) 8 Q) g0 O0 n# \* J, \: f
y4 (* mv_sc y4) )) ~# A: a; f1 l" o/ u: B: ?1 l; `
(command 7 e6 V n* M/ g# X7 ~& X7 e/ _& `
"LIMITS" "0,0" (list x4 y4)
% z5 [, s& `+ [; b) d+ Y/ z "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
) l9 L% z3 ~: V) q C w5 G "RECTANG" "125,125" "@7175,5000"
' j5 \& N+ p* b, V1 B* I7 U# | "RECTANG" "175,175" "@7075,4900"
5 u6 q/ h! v5 S' R, r "ZOOM" "_a" ))
0 v& c9 w" |; ^6 R, b;=====================================================================
, g$ k& o1 Y3 `1 |. I9 J( T(Defun c:a5 ()/ M1 ~, D2 y" D' @) l! @, o
(setq mv_sc 100);Ti le ban ve
; s$ S' ?! [- `# ~# r+ ? (setq x4 147.5)$ S; A; G- @! x& x2 b1 \" j& u
(setq y4 104)
4 S: x) O. d- k, } (setq x4 (* mv_sc x4)
6 c* [$ ]4 R( j1 [& E8 } y4 (* mv_sc y4) )
% q1 D: W0 C! |5 x' o7 \ (command
* N- r) q! {1 T8 }- g# t "LIMITS" "0,0" (list x4 y4)
S; X* H7 h* q4 D9 O V$ G "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
) u% K, b5 [1 b "RECTANG" "250,250" "@14350,10000"5 t4 e1 V9 z0 ^! p, ]( F
"RECTANG" "350,350" "@14150,9800"
$ s& W; j l' x+ F1 J: X "ZOOM" "_a" ))- N* F' J5 F: S: M& d
;=====================================================================, i) J; A5 |: F; i: z& S# _$ H
(Defun c:a4 ()
* }! ~+ S5 \. g2 A0 I6 Y (setq mv_sc 100);Ti le ban ve& i1 i- k. C% u% m. U1 T/ {3 J1 V& ]
(setq x4 297)% V4 C' Z3 `8 }! w! c' m% j* ^7 {
(setq y4 210)+ Z: O$ _* g {
(setq x4 (* mv_sc x4) " ^; B- }! o, Z; a! H# N
y4 (* mv_sc y4) )2 w% e9 W: k$ @1 z% A
(command
9 F0 y- O$ z% c/ p! ~3 A "LIMITS" "0,0" (list x4 y4), J7 n8 V* t$ u
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
: k- X! ^- \0 P# M$ E& \ "RECTANG" "500,500" "@28700,20000"
4 ~) h, G; b6 i3 v: `& X! e4 G7 [: u "RECTANG" "700,700" "@28300,19600"
! u- x* O: `) N% o; A% d0 y "ZOOM" "_a" ))
' Y9 k+ o7 g. [: `5 o4 W/ q( |;=====================================================================; L2 U7 x: `* r8 ~
(Defun c:a3 ()
: s d, Q" b$ K* r1 O3 O (setq mv_sc 100)
" H0 c( ]' w4 b; y) n (setq x3 420)
+ X: G# X# |6 G3 Q (setq y3 297)
/ O1 Q! Q* e# K8 Y, P1 z. M (setq x3 (* mv_sc x3)
8 o0 i* `* _+ W2 ], G; x. Z y3 (* mv_sc y3) )
6 N1 }% i# p! p3 A% q9 m# _, | (command
5 L/ Q) F/ H8 F! N "LIMITS" "0,0" (list x3 y3), D* `5 ~% T8 m2 ]( z" b
"PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
( T% V( v1 J" L8 {% O5 L# R "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"2 S8 U4 h/ `1 S# ^7 ^& F5 u, Z
"RECTANG" "990,990" "@40024.28571429,27720"3 p9 [7 T$ W" R1 L; h
"ZOOM" "_a" ))
" D( g$ s7 ~0 u% V! \* m;=====================================================================
3 l3 y+ f Q7 _, z(Defun c:a2 ()
$ L! j9 n7 x1 G& v2 k" a (setq mv_sc 100)% M+ _& ?2 @& w) x- J i3 {0 I' }
(setq x2 594)
+ B9 ]5 M: ?/ ~* v6 Z$ q (setq y2 420)
3 q0 E5 S2 M7 b2 W' s, T6 |5 B( a (setq x2 (* mv_sc x2)
7 e1 [" q+ l- y- \* g7 Y6 m y2 (* mv_sc y2) )
/ D" _: |3 {5 u: O$ Z5 C (command
, K8 Z7 I7 O+ W# p' l* @ "LIMITS" "0,0" (list x2 y2)+ d/ L2 `; k3 ]$ X4 l- b
"PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C": z8 t0 s3 U9 g$ M! T; k8 m
"RECTANG" "1000,1000" "@57400,40000"
7 T# W/ ^. p( S "RECTANG" "1400,1400" "@56600,39200"# N6 ~/ c; o1 R+ D# G
"ZOOM" "_a" ))- @0 `# p8 b" e. V5 c
;=====================================================================
9 O- V4 F/ O$ M% ^/ m/ g" f" j+ `9 q(Defun c:a1 (); N: \" N, p3 r* [3 ^
(setq mv_sc 100)4 ?' _5 G( ^* }0 b- t1 v
(setq x1 840)
6 v) I# v& M0 I) I) [ (setq y1 594)
! [. ^/ L+ `; d- \ (setq x1 (* mv_sc x1)
9 X; I& S/ b S/ L" v* F y1 (* mv_sc y1) )
; g6 M- e3 b% w1 B o1 i (command ( ^1 [& j; F$ K6 a( [# v- h
"LIMITS" "0,0" (list x1 y1) B+ I+ w1 J; p! ]7 s7 Y5 j' _
"PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
; L; U4 \# n3 x8 S5 h* t "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"0 G6 z B( ]6 t6 [2 k2 r8 s0 j
"RECTANG" "1980,1980" "@80048.57142857,55440". n2 W3 C! Q7 ]" R; T. G: Q
"ZOOM" "_a" )) V) L1 V/ u' [9 Y& I3 T
;=====================================================================) A# n' ]+ Z; y3 t$ v" X
(Defun c:a0 ()& K5 N4 L, i! X7 n! _- W
(setq mv_sc 100), V$ K9 p5 x$ ^# Z7 K% a
(setq x0 1188)) k; d" h9 h1 `( Z9 J7 t B
(setq y0 840)
" H O2 K/ h$ r U+ i4 A* ?4 x6 I3 B (setq x0 (* mv_sc x0)
6 j% K6 d+ }/ L2 T k0 n, Q y0 (* mv_sc y0) )- _! }' j, |) v; @1 u# s8 G
(command
0 L N2 O7 v3 Y6 V* |* P "LIMITS" "0,0" (list x0 y0)
& F1 c9 Y/ z0 R% V1 F6 V1 {, E "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"+ R! Z3 Y+ n7 Y5 X7 u+ j% C
"RECTANG" "2000,2000" "@114800,80000"! y2 B4 N+ a9 v$ f, w
"RECTANG" "2800,2800" "@113200,78400"* }! O! p- ]5 _* i, a
"ZOOM" "_a" ))/ V" m# P. ~$ J7 h
. g# t5 ~6 ]; l7 Q7 m
;=====================================================================
- a5 M! x" [2 [5 o+ F5 d;====================DAT KHO GIAY BAN VE - KIEU 2=====================
& o- T' u, K- s* {7 D;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================3 ^# Z9 A0 w$ B; x; X( ^- U4 Y, {
) F/ i$ J$ b* A6 c. G# _, G2 R3 N
(Defun c:6a ()- ~% o( v8 [* y$ G7 Z w
(setq mv_sc 100);Ti le ban ve3 E0 Q3 S1 A/ D5 t4 E
(setq x4 74.25)
# n* m4 R0 N e1 W0 F% Z4 Q# i (setq y4 52.5)
7 T3 z/ s8 R& M$ t8 l3 N (setq x4 (* mv_sc x4)
- v9 E. T1 B3 h: m$ D/ ] y4 (* mv_sc y4) )$ n0 x6 O" O3 W1 r& A
(command : k7 \' b* f4 M1 t" {+ p
"LIMITS" "0,0" (list x4 y4)
. e/ U' W; ?# @ g0 X& P2 u "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
7 a8 z7 u* x- r. n "RECTANG" "505,125" "@6800,5000"/ z: c* d1 y1 l6 O" x* O
"RECTANG" "555,175" "@6700,4900"3 @9 d; P- z% Z. a" d$ \8 e
"ZOOM" "_a" ))
4 v/ H7 Z2 B3 m9 w' G8 P;=====================================================================4 r, z' ?4 A1 k3 _
(Defun c:5a ()" E v* a4 d% I. a) h0 g7 x/ Y. L
(setq mv_sc 100);Ti le ban ve
( X, L- H$ n; a, \ (setq x4 148.5)$ V. M" f1 i. z5 G
(setq y4 105)' ?6 p4 w* l g O' q* ?
(setq x4 (* mv_sc x4)
* e7 @1 H b2 y8 ]) ` Z y4 (* mv_sc y4) )
' }7 A4 U" _/ u' J/ k/ g/ t( w (command
7 S4 H8 B0 L" l( `; [ "LIMITS" "0,0" (list x4 y4)+ Z3 X* }( F& ^3 Y A
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
' u9 T" y$ d9 M- Y% Q- X "RECTANG" "1000,250" "@13600,10000"
1 `! w. \) M* O7 u- j2 a "RECTANG" "1100,350" "@13400,9800"& K- r( e8 h. `9 s* h0 v; Z+ ^ s
"ZOOM" "_a" ))
, F2 r" e5 l3 I- [' J. w# a" X;=====================================================================, q U& M7 v5 i0 ?' L# s: C: S
(Defun c:4a ()
* L" f/ f: _" W8 s. V! N (setq mv_sc 100);Ti le ban ve
/ S/ z+ G9 f% g4 Y* b (setq x4 297)
6 A8 R9 O8 f$ r (setq y4 210)( S; o7 {% \, ^% A
(setq x4 (* mv_sc x4)
* u/ b, I6 Z8 @/ o5 p y4 (* mv_sc y4) )
3 s9 r/ |% ]4 h. F (command
6 J2 F& c% v8 \+ W; V6 t "LIMITS" "0,0" (list x4 y4)
# T/ D( r# i0 S$ M# N "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"4 u2 N- {) x' J* |" {
"RECTANG" "2000,500" "@27200,20000"
4 i1 B! q) R2 x; i3 R. p q5 o- L "RECTANG" "2200,700" "@26800,19600"3 t' c& {7 h6 @& V6 h) S
"ZOOM" "_a" )): Q; w, A% B" c' p B
;=====================================================================
! ^ E5 l- d; b; Q8 T(Defun c:3a ()
4 k& e F S' E6 L4 s (setq mv_sc 100)
( d& z' O# y% q (setq x3 420.0428571429)# k, k. v' w! d% T/ q) A! b3 E
(setq y3 297)
1 L- @7 |$ @2 p( V8 N" G (setq x3 (* mv_sc x3) % a$ |4 { x$ [0 y
y3 (* mv_sc y3) )
7 T, a/ M0 W9 R4 S+ Q (command
+ k6 U, |- Y6 u0 w "LIMITS" "0,0" (list x3 y3)( p* @" Q$ O. }3 I4 P
"PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"% }) J9 d8 p8 B' U; f$ x2 @
"RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
; z( d9 D$ d+ r: V' u8 k: l4 u "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"$ }1 B- d1 }5 _1 j$ ?2 s
"ZOOM" "_a" ))
, Y4 x4 z, u2 Y3 P;=====================================================================
5 I0 J* C+ \2 i(Defun c:2a ()
$ _) s+ V7 m% q" m0 Y1 B (setq mv_sc 100)
* ?8 K% r8 B" \2 a! E7 W (setq x2 594)+ A7 u, ^" o% V8 q! R N
(setq y2 420)+ c( h3 q/ q4 H4 e
(setq x2 (* mv_sc x2) . H' p. `. w9 c A1 U) z. z
y2 (* mv_sc y2) )2 t9 r1 _2 Q) C: V" b1 ?2 f9 f
(command . M O. W8 @5 z3 b) z+ h3 J
"LIMITS" "0,0" (list x2 y2)
4 p5 v( S3 S* z. d6 |9 g "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C". d/ s# K9 P1 {. O) c) g
"RECTANG" "4000,1000" "@54400,40000"& e0 k% n$ K' N( R ~
"RECTANG" "4400,1400" "@53600,39200"! P; q! y" x+ v! Q4 U9 \
"ZOOM" "_a" ))
3 b, R4 S3 N) x: \;=====================================================================) \) s) l! D4 B2 |# D
(Defun c:1a ()
1 d; ]+ `! C- o4 A4 h5 A (setq mv_sc 100)
& N, B5 I; C4 c) [) u6 o6 I (setq x1 840.0857142857)9 q: t; l6 B8 V+ Q+ J7 ]) Y0 L
(setq y1 594)' a) O$ T! l' D3 `
(setq x1 (* mv_sc x1)
; }$ a+ G" \) A( l# r y1 (* mv_sc y1) )0 ^& y$ C# I6 B( C8 d
(command
" I, p0 t0 z) H "LIMITS" "0,0" (list x1 y1)6 _5 l+ a" ]) X
"PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
( w) [7 h( k, q# P4 e "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
3 ?; r: T: i" H/ S; d+ C( a "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"
4 v9 g$ [' C7 m' t& S "ZOOM" "_a" )), B2 m# m ]/ }) @6 j
;=====================================================================
! a1 x+ W, J- m% n! U' t# s1 D(Defun c:0a ()
, j ?2 U6 O( p& I: Y! S (setq mv_sc 100)
r% k) ` @6 i; D3 K4 Y: i8 u (setq x0 1188)
- N% U4 ?6 }2 G5 K( ` (setq y0 840)# r2 n) y9 H7 M e2 G1 c; e3 |
(setq x0 (* mv_sc x0) / ^2 W& W8 Z' m" D- T
y0 (* mv_sc y0) )
4 p3 D1 u7 V0 P. O! L& v (command ! N& u& q% A6 E) o4 U, m
"LIMITS" "0,0" (list x0 y0)
# K: D [ \, y5 ?) } "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
/ Z+ d, x( A6 y) V "RECTANG" "8000,2000" "@108800,80000"
6 g# {6 ~+ ~7 y* a- o "RECTANG" "8800,2800" "@107200,78400" b0 G5 Y2 d5 K; u8 H& g# v
"ZOOM" "_a" ))
5 p P! T- `6 w! a
, `: B$ p3 ?- c; K- a9 c: J# A;=====================================================================) ?! A j3 J# j" |! }
;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
1 ?' w3 T# N# {; R) E# a$ f" Q;=========================== Nguoi Khac ==============================
+ i1 m+ I5 u" e- u& Y: d(defun c:khogiay (/ oldlst a b c d e f g h kho TL)% J% x' v/ _0 f/ u. M- W
(command "undo" "be")6 ~( i8 r5 G! e# f
(setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
1 G* z5 P! P* p! I) O(setvar "CMDECHO" 0)/ g8 Z! X0 n. X5 ?5 d- }& n
(setq a (getpoint "\n chon diem chen :"))
# u/ P6 S y* Y; M6 S2 b" n(if (not TL) (setq TL 1.00))
6 f+ x* V8 U0 ^# \# q (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:"))) J: I0 ~7 V' z6 R' L, S: z/ W
(if TL1 (setq TL TL1))
; g$ r6 ?/ m8 o9 h: E; ^(setvar "osmode" 0)
9 Y) C" y% t' d(if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))- ]' U/ H( l6 a; A. J6 f) |
(initget "0 1 2 3 4")
6 q: i' k7 A3 ]. Q (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))5 U) b& x! i" \7 [ O$ [1 U8 h
(if (= kho "0")" [. O5 J7 P) h* t0 \" j5 A
(progn" W0 g, p2 H5 C" W
(setq b (polar a 0 (* TL 1189)))/ @+ D8 {% h: n
(setq c (polar b (/ pi 2) (* TL 841)))+ Z) J7 G7 K9 P' @
(setq d (polar a (/ pi 2) (* TL 841)))
& l' S: j) |, v# c1 p (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))8 ^' j7 T. \! T& `* q N
(setq f (polar e 0 (- (* TL 1189) (* TL 24))))2 C; ^0 x% d6 k" s/ t
(setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))" \; ]* d. S' n' Z7 u5 o. w+ F
(setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
2 O8 @: j) Y8 M. H3 S/ d (command "Pline" e f g h "c") 8 v6 l: R: a. D1 J' n+ T' h7 N
(command "change" "last" "" "properties" "layer" "0" "")9 u% N3 A7 l! F9 B+ |( q- L3 T% F. I
(setvar "cecolor" "4")
5 C5 m- m0 F+ L' M: Y4 F* Y* U (command "Pline" a b c d "c") k4 v2 I. D" e* \. m+ L* z
(command "change" "last" "" "properties" "layer" "defpoints" ""))) 4 T- k7 G- X* d$ t
(if (= kho "1")% K+ a$ R- G) C/ p; U/ _4 r1 W
(progn
: a5 i8 H8 ]5 x4 R, n6 ] (setq b (polar a 0 (* TL 841)))6 x& d# n" F/ u& A4 Z
(setq c (polar b (/ pi 2) (* TL 594)))& t! X& s$ ^ Z7 H. a5 W7 r' d
(setq d (polar a (/ pi 2) (* TL 594)))
- s P) G4 U9 o0 c+ | (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
. z8 \. z- |0 t$ Z (setq f (polar e 0 (- (* TL 841) (* TL 24))))
: R( y" l5 A/ N$ Y' A# b (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24)))); d: x" H0 P! g) v7 Z3 M" j
(setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24)))): J9 G. V, N# n% f" {7 P
(command "Pline" e f g h "c")
/ O: _ N; Q# l0 ?. _ p! G(command "change" "last" "" "properties" "layer" "0" "")
8 R5 Z% }1 D6 m1 I; z& \8 w8 J(setvar "cecolor" "4") h( H/ b5 F# l
(command "Pline" a b c d "c")" E4 s* s* C! X* M% Q0 d# n4 `3 Z9 h$ n
(command "change" "last" "" "properties" "layer" "defpoints" "")))+ @; `9 _& S- x. M% s
(if (= kho "2")2 e; b: Q; S$ h' }; a2 U3 |. V2 m
(progn
) Z B6 u( p0 _1 G% d7 H1 x (setq b (polar a 0 (* TL 594)))
A l7 a0 l+ ~5 N (setq c (polar b (/ pi 2) (* TL 420))): `8 d! W( y' S; @) Z( k
(setq d (polar a (/ pi 2) (* TL 420)))
! s3 {0 G% a/ E7 {, L! D/ c( S4 f (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
# f, J+ {# f$ V" K: E* n (setq f (polar e 0 (- (* TL 594) (* TL 20))))' M! g' M3 v0 J
(setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
# q! |% _% }) L1 J (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))# ]/ _9 o9 ^; |
(command "Pline" e f g h "c")
3 h% |9 ~- L7 m# O(command "change" "last" "" "properties" "layer" "0" "")% ^/ C. _6 ^" G+ l2 w4 E0 E7 `9 O
(setvar "cecolor" "4") O7 C) g5 i- @0 E4 q( O
(command "Pline" a b c d "c"): g% r! Q1 g2 |
(command "change" "last" "" "properties" "layer" "defpoints" "")))
e1 A, E8 ]6 ?. B- r9 |. a+ P. n (if (= kho "3")( K- c! B, G. f: s, z3 m! J' u
(progn) g3 }8 M3 C1 u: W
(setq b (polar a 0 (* tl 420)))! h5 n" d m- b
(setq c (polar b (/ pi 2) (* TL 297)))( C v+ Z$ M) T w
(setq d (polar a (/ pi 2) (* TL 297)))
. ]4 Y! m5 }; T) b& o% f& I (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))% I# b: _; A. T" X$ a2 p. {
(setq f (polar e 0 (- (* TL 420) (* TL 20))))
6 [& s4 e* g, P a (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
m! _' P" X2 j3 D( o8 i% f9 K (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))2 A" a, D) \' G5 Q1 b
(command "Pline" e f g h "c")
) n P- v$ i" H5 y& I (command "change" "last" "" "properties" "layer" "0" "")( ^, s6 r H' ]# _0 q" ?& S% v
(setvar "cecolor" "4")
2 A# U0 \4 D' z, }% d(command "Pline" a b c d "c")
: x6 J* U6 [4 [, u. _ (command "change" "last" "" "properties" "layer" "defpoints" "")))
8 c* f) x) o+ p8 {2 ^ P (if (= kho "4"), I5 I# R$ k3 v& J
(progn
# i2 z0 Q$ d) S0 Z (setq b (polar a 0 (* TL 297)))+ e- y) U9 T7 U' a0 J4 l1 }
(setq c (polar b (/ pi 2) (* TL 210)))
" M) j5 m& o! U9 a (setq d (polar a (/ pi 2) (* TL 210)))
* u O' d. i' q1 | H' w6 p3 A) } (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81))))) [9 H8 E" O/ V9 c
(setq f (polar e 0 (- (* TL 297) (* TL 18))))' f# P$ C5 P( N" c! z
(setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))5 _0 t% K$ r- A: Y% h
(setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
- X( J1 x0 _! x* L2 w4 C) n) ] (command "Pline" e f g h "c")
" _3 o( r& s4 W+ `(command "change" "last" "" "properties" "layer" "0" ""): o" a- T) L% i
(setvar "cecolor" "4")3 L5 D& S' I2 B* g7 v
(command "Pline" a b c d "c")
9 ^* ]5 c( T, F( `# f& u(command "change" "last" "" "properties" "layer" "defpoints" "")))$ I3 a) D) w S8 K
(mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)$ F3 T8 A# N6 r6 d* O4 ]7 }4 h; G
(command "undo" "e")! J* C7 V. A. l$ N: C" X }0 g
(princ))
% ?6 N5 I# S. C q1 J;=====================================================================
9 B N" s# V! }) o;==================DAT KhoGiay Theo KHO GIAY BAN VE===================# \1 z6 z* f7 ^2 x
;=====================================================================
; f3 V* ~4 F+ B a. ^! J. `9 j8 q3 m$ Q% b* j; q" T9 ^/ I! N+ D
;=====================================================================
8 g1 y! a: T) w5 O) ^" U$ o;===================DAT Ti Le Theo KHO GIAY BAN VE====================, {' P7 S. y8 _
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================: S. k4 ~0 O }7 h; c
4 v+ H, d1 i) T) o0 _4 Y/ ?(DEFUN C:SA6 () (setvar "DIMSCALE" 411.11111)) k! F$ x' l% c# K
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
# j. f) X9 N d2 O/ y "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
! q! z6 I$ D0 g, l "M" "MANH" "C" "9" "" "Lw" "0.1" ""- l# j) r' Z/ a4 Q4 z
"M" "TEXT" "C" "7" "" "Lw" "0.12" ""
& V7 G& ^4 o! T5 y1 T "M" "DIM" "C" "1" "" "Lw" "0.12" ""
. }% p% \# B; s7 {. H6 O+ D/ G2 p "M" "THAY" "C" "7" "" "Lw" "0.2" "" `" k8 ^+ t" M/ }% E6 ]. b- l
"M" "NOITHAT" "C" "60" "" "Lw" "0.12" ""
+ f7 u" w+ p4 z. z" M& Y* d) J# f5 n "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
/ g6 u/ |' u, s" v+ J "M" "COT" "C" "1" "" "Lw" "0.3" ""
: G" k+ t; G% p$ P "M" "Defpoints" "C" "7" ""
- P4 V R- n: |0 L" a "M" "0" "C" "3" "" "Lw" "0.12" ""! Y- F3 N7 E* K7 T1 |# c
"M" "CUA" "C" "6" "" "Lw" "0.12" ""
5 {( M( f# i* s: z r "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""! \- ?! h; p8 i6 o
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
a7 \7 {( N0 D( i+ q "M" "NETDAM" "C" "4" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"2 p( ~8 T. U" U# t5 t. M
"M" "NETTHAY" "C" "255" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1" T) u y c! O. H9 i
"M" "NETMANH" "C" "43" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
: z+ @8 N! I# \5 r4 B# M "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
0 U% B3 K* R, `+ z* K "M" "TEXTTXT" "C" "7" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"# `: Q9 A7 S# p9 ]: F! ~: O$ n
"M" "TEXTVN" "C" "60" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
6 s9 R" ^" C) j- G: m "M" "TEXTVNi" "C" "60" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"2 v! Z" U$ k. R; A, y# K% f* f2 d- [' t
"M" "THEPDAI" "C" "3" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"* o S; t, @. z5 T
"M" "THEPDOC" "C" "2" "" "Lw" "1.20" "" "LT" "Continuous" "" "" "LTSCALE" "1"- E) a* Z$ k- P
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
; F V2 B0 v' h, Q5 }! R _ "M" "4-WateR_IN" "C" "4" "" "Lw" "0.4" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
# @ P+ |' m" v V& b "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.4" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
: F! D2 Q% n9 a9 r7 X "M" "KHUNGTEN" "C" "4" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
$ W5 E/ { J0 X9 d# A( ?# A "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))(princ)$ i1 J# u+ l" t' V& m
(DEFUN C:SA5 () (setvar "DIMSCALE" 611.11111)1 ?7 E% `7 O1 Y& U/ W
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""2 S+ \2 r6 ? u# s8 d# T) g1 ?
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" "": F* b5 Y3 ?1 B `* }
"M" "MANH" "C" "9" "" "Lw" "0.12" ""
" X; S2 n4 B. h8 X* a "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
$ n6 T, m: i3 s4 b& c9 |, W% w1 D1 C "M" "DIM" "C" "1" "" "Lw" "0.2" ""
& Z5 y$ y2 [2 T5 n! \ "M" "THAY" "C" "7" "" "Lw" "0.2" ""
3 F* ]% `6 A5 \ "M" "NOITHAT" "C" "60" "" "Lw" "0.2" ""
, [5 e% d u9 ~1 }& z "M" "HATCH" "C" "5" "" "Lw" "0.1" ""' k7 O- q2 D1 a M) a
"M" "COT" "C" "1" "" "Lw" "0.4" ""% ~* M8 V4 ~! Q
"M" "Defpoints" "C" "7" ""% \' Z. b" P: ?3 J" o
"M" "0" "C" "3" "" "Lw" "0.2" ""- q3 a0 q$ }+ T9 b
"M" "CUA" "C" "6" "" "Lw" "0.12" "": e% y8 w6 [ R7 r+ ~
"M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" "": v1 t& M0 S& S* s
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1" S7 V$ _" H K3 _5 ` n9 R
"M" "NETDAM" "C" "4" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
. F; s1 R5 p; y! l1 l9 f" ]9 t+ W/ | "M" "NETTHAY" "C" "255" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"# a$ T5 x g+ C5 o" {/ a
"M" "NETMANH" "C" "43" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
; Z! I( B* X/ r# f5 u7 S "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
% l5 x6 T4 y( |. u) ?% K6 E- K8 z "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
, F% A; q) a% s3 o "M" "TEXTVN" "C" "60" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"& ^2 p" b9 T: {, Z$ S1 p
"M" "TEXTVNi" "C" "60" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"5 d/ V) [* ?: J" _& V( \
"M" "THEPDAI" "C" "3" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1", ?( ^1 o/ a3 F5 I& u& f! a
"M" "THEPDOC" "C" "2" "" "Lw" "1.40" "" "LT" "Continuous" "" "" "LTSCALE" "1"0 F5 n& \0 o, @1 b/ ~! Q# P
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
2 U! K6 |8 {& S6 n: q$ T "M" "4-WateR_IN" "C" "4" "" "Lw" "0.5" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
- X& J4 p }1 R0 I* r% G9 Z- D& y "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.5" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"0 C- J4 J. y2 X% n
"M" "KHUNGTEN" "C" "4" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
) w% M* y6 P; z. ^* C; I+ ] "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))(princ)2 Z/ u. o. z# B: J c. }
(DEFUN C:SA4 () (setvar "DIMSCALE" 1411.1111)1 `, b# @: Q9 c7 ^0 U
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""9 E5 w. T- l& Z5 v3 q' p8 k1 ~
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
& k- K: C+ s- `+ I/ k; S "M" "MANH" "C" "9" "" "Lw" "0.2" "". Y" p5 n2 w7 t, w$ X) _% @" t
"M" "TEXT" "C" "7" "" "Lw" "0.2" ""* Y5 F4 H* N# d6 p) e0 \4 m( a
"M" "DIM" "C" "1" "" "Lw" "0.25" ""( d4 q% A8 R7 j: g- P7 O; R
"M" "THAY" "C" "7" "" "Lw" "0.35" ""
- ~! `$ K7 {& n' X% C% a "M" "NOITHAT" "C" "60" "" "Lw" "0.25" ""
, A$ O0 B0 C- O: c# v u "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
* ^% B3 g. o2 s. R `& e "M" "COT" "C" "1" "" "Lw" "0.6" ""9 |( o8 S' o# Z; M/ B) X
"M" "Defpoints" "C" "7" ""
) m5 r: j% |; \0 h" v "M" "0" "C" "3" "" "Lw" "0.25" "" h2 b/ B) i/ |$ G1 i- m" w
"M" "CUA" "C" "6" "" "Lw" "0.25" ""3 y' K- y& y' v
"M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""$ _. N7 R$ ^' j- [- L" k
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
" t6 e6 q1 j7 Y @3 F$ ^4 |3 K( f+ @ "M" "NETDAM" "C" "4" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"$ D, p5 s4 J G d9 U B8 O
"M" "NETTHAY" "C" "255" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
9 ]% z& }+ A5 m8 l- Q "M" "NETMANH" "C" "43" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
) y0 F( G6 O/ u1 U+ | "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
" N+ `! m: ?, ?9 ` ~ "M" "TEXTTXT" "C" "7" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
( j9 y& y4 P' K8 i( Z "M" "TEXTVN" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
, B# t. r, e& w( ` "M" "TEXTVNi" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
' s* s/ n4 u" A- o" x "M" "THEPDAI" "C" "3" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"* |: [* O# _ G8 h# D8 v; m
"M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" "LT" "Continuous" "" "" "LTSCALE" "1"
4 k9 q/ W- X. ? "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1") b6 J- x3 M+ z# h( t; p3 [& u
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"& _# e6 H( L+ M; c J, r' i
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
1 r( Q+ s7 I. p" \# Y2 V "M" "KHUNGTEN" "C" "4" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1", z8 d- A9 P6 P! k
"M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))(princ)$ h D5 C2 {9 ^5 a9 P
3 q Y0 \4 ^, W* S( r(DEFUN C:SA3 () (setvar "DIMSCALE" 1611.1111)
. L, `, C, t U (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
4 Z! K- _; g, O; [2 | "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" "": z" F2 ~' g% q2 {& J5 e$ b% r
"M" "MANH" "C" "9" "" "Lw" "0.25" "": X0 y$ J. B5 q5 P8 c$ K4 G
"M" "TEXT" "C" "7" "" "Lw" "0.2" ""
, u% a0 A4 L0 v1 `# d2 J: J "M" "DIM" "C" "1" "" "Lw" "0.35" ""0 P" s3 ]( F0 B2 C
"M" "THAY" "C" "7" "" "Lw" "0.4" "", }2 ^! c7 A0 z9 b" n
"M" "NOITHAT" "C" "60" "" "Lw" "0.25" ""2 x% T/ k* x* T* C. r7 b
"M" "HATCH" "C" "5" "" "Lw" "0.2" ""
5 q }" E! h+ g- |' T: K B6 ~ "M" "COT" "C" "1" "" "Lw" "0.7" ""
8 g' z( j' U$ ^; q l- q9 g- u "M" "Defpoints" "C" "7" ""
/ A$ Y- K8 ^$ [3 ~ "M" "0" "C" "3" "" "Lw" "0.25" ""
9 Y: u! U% U' D8 j1 m "M" "CUA" "C" "6" "" "Lw" "0.35" ""7 y. ~" k% |/ G& i, W
"M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
7 o% X( G3 s) S1 V% ]. u% V "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
4 q1 f5 @6 E, a+ O- g/ e "M" "NETDAM" "C" "4" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"6 t/ i, t9 N4 }
"M" "NETTHAY" "C" "255" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
0 }( B7 _( \" m) D1 s "M" "NETMANH" "C" "43" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1": o; k& x3 [7 A( ~4 J
"M" "ThietBiDIEN" "C" "2" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
/ @; ]* c' m3 {1 |# p$ _6 K "M" "TEXTTXT" "C" "7" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"' L2 z7 u# I }
"M" "TEXTVN" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1") H0 `9 u3 l3 G
"M" "TEXTVNi" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"- {% o: q9 q% Z8 W' R& o, x3 f2 V
"M" "THEPDAI" "C" "3" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1", D1 l: E: x; h9 i$ z) d. m; N- w
"M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" "LT" "Continuous" "" "" "LTSCALE" "1"2 k+ M1 p8 ?8 ]7 [$ ]
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1". w |. ^, v1 U. D+ u R
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
0 Z! g2 H( H2 K: { "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
/ ?3 _5 f8 w! m9 U! C$ q "M" "KHUNGTEN" "C" "4" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"
" Z: r% M8 V9 B) D# f; s "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(princ)
) c3 L3 }) d6 g9 ~
: @6 x! x1 h$ w3 i(DEFUN C:SA2 () (setvar "DIMSCALE" 4111.1111)
; j# p9 F9 G0 E5 y2 E! ] (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
$ D) C8 M3 G8 @$ `4 P "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
: Q6 z. D; C6 d ?& x9 v "M" "MANH" "C" "9" "" "Lw" "0.25" "". b# }: L; _ v" [; g9 g
"M" "TEXT" "C" "7" "" "Lw" "0.25" ""* @3 z+ U$ B m- ~' P. j( l3 F( q
"M" "DIM" "C" "1" "" "Lw" "0.3" ""
& Q) K' z9 C" Z "M" "THAY" "C" "7" "" "Lw" "0.4" ""
- e [* q6 d) m' b& o! G "M" "NOITHAT" "C" "60" "" "Lw" "0.3" ""+ h E s3 D/ Z" }% N% d! Z
"M" "HATCH" "C" "5" "" "Lw" "0.2" ""$ K& A/ N5 H* V! b8 F+ _
"M" "COT" "C" "1" "" "Lw" "0.7" ""# c& N+ K, g$ ?
"M" "Defpoints" "C" "7" "". o/ K2 ]5 p/ K( f2 F K; x& V, P! N5 j
"M" "0" "C" "3" "" "Lw" "0.35" ""# w0 M) o; U; F0 _$ p
"M" "CUA" "C" "6" "" "Lw" "0.35" ""! o$ c( A3 j! N; ~$ T
"M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
- w2 |6 R7 W) W4 x: E, M; L* b$ t "M" "DAY-DIEN" "C" "3" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"; X& x. V; h) g( z7 U
"M" "NETDAM" "C" "4" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
1 O7 Q: v9 k% X+ v& r/ m "M" "NETTHAY" "C" "255" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"2 x3 J& i0 z. q1 R/ I: w) d2 y) c& T3 }3 w
"M" "NETMANH" "C" "43" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"$ |( l3 r! w8 K$ ^& P' D
"M" "ThietBiDIEN" "C" "2" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"7 w. r3 J# o2 U z6 I
"M" "TEXTTXT" "C" "7" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"; B3 M% H9 T; v9 T4 U! S+ |: d
"M" "TEXTVN" "C" "60" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
) C+ k1 h- l/ ]. Q "M" "TEXTVNi" "C" "60" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"6 P, z. Q; [- G, Q5 K0 H; n
"M" "THEPDAI" "C" "3" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1", d) A( w7 K; I
"M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" "LT" "Continuous" "" "" "LTSCALE" "1"$ h/ ~6 T! ?% N
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
- f3 U' Z% m1 s; G "M" "4-WateR_IN" "C" "4" "" "Lw" "0.7" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"# X# O& i6 i! w/ t/ `" S. ]# S
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.7" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
" H: i0 S1 ?, a0 H "M" "KHUNGTEN" "C" "4" "" "Lw" "1.20" "" "LT" "Continuous" "" "" "LTSCALE" "1"
8 [$ p$ }+ R* E0 ]2 `. l3 S+ A& | "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))(princ)8 N/ t4 t* W) K8 k, `5 e
; J! [- n# W8 ^5 r& ^3 }% n0 o
(DEFUN C:SA1 () (setvar "DIMSCALE" 4411.1111)5 A( X+ p/ K3 V: q7 m
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""+ A, ?8 o* F2 ]- M
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
' h* i. s: T( ^& @3 t9 l' [ "M" "MANH" "C" "9" "" "Lw" "0.35" ""1 m" U4 {& u9 Z. @# M( {% F2 p
"M" "TEXT" "C" "7" "" "Lw" "0.5" ""
: z7 J3 x0 |4 Q. {' X/ v "M" "DIM" "C" "1" "" "Lw" "0.35" ""
( D' I8 ^ j8 z) d4 P- |2 G "M" "THAY" "C" "7" "" "Lw" "0.4" ""
B+ A% N- D- f "M" "NOITHAT" "C" "60" "" "Lw" "0.35" ""3 ?" E- S0 B4 ~/ Q; b. g: y
"M" "HATCH" "C" "5" "" "Lw" "0.25" ""
6 L0 D/ n4 K( N3 G "M" "COT" "C" "1" "" "Lw" "0.85" ""
. B8 |# A& \7 A- x( [" c# Q "M" "Defpoints" "C" "7" ""
2 t* c+ w6 ~8 h3 g' G: b "M" "0" "C" "3" "" "Lw" "0.35" ""
8 O# N; M# x) n2 b ~! o. F6 t "M" "CUA" "C" "6" "" "Lw" "0.4" ""$ N- u4 X& g& c
"M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
+ O0 [% r$ ~/ ? "M" "DAY-DIEN" "C" "3" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
. t9 {) Z4 [7 P' ` "M" "NETDAM" "C" "4" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"* J2 ?* a9 o# J& f2 V( _! Y! K; ~, V
"M" "NETTHAY" "C" "255" "" "Lw" "0.9" "" "LT" "Continuous" "" "" "LTSCALE" "1"
9 t. D& }% m2 r# j* t4 c "M" "NETMANH" "C" "43" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"* t' x0 c& b2 ~
"M" "ThietBiDIEN" "C" "2" "" "Lw" "1.0" "" "LT" "Continuous" "" "" "LTSCALE" "1"
8 w; s8 P9 p3 H4 B5 d "M" "TEXTTXT" "C" "7" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
! O% C$ L# @; K: j "M" "TEXTVN" "C" "60" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"- j. V1 \* p, ~6 @% w: G/ ?, o7 L, M
"M" "TEXTVNi" "C" "4" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1", z) @, N2 {/ l& V5 y
"M" "THEPDAI" "C" "3" "" "Lw" "0.9" "" "LT" "Continuous" "" "" "LTSCALE" "1"
% q6 Q! h; o' B4 ]$ Q- ~5 F( E "M" "THEPDOC" "C" "2" "" "Lw" "2.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"
7 Q# v+ A- e2 f "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
6 k* [% ], S; {8 Z, @' d "M" "4-WateR_IN" "C" "4" "" "Lw" "0.8" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
6 U7 J$ N, A A "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.8" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
# a; r% w/ H7 ^0 U "M" "KHUNGTEN" "C" "4" "" "Lw" "1.40" "" "LT" "Continuous" "" "" "LTSCALE" "1"# T5 V* }" a% R, v, a3 Q
"M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))(princ)! U) F# ^! t7 {* G+ W& w: }3 J# t
1 W Q& l& P- d4 F f
(DEFUN C:SA0 () (setvar "DIMSCALE" 6111.1111)2 r+ P! L% B8 u" B! K1 N/ ]! e% y
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
4 P( d8 d2 E7 P) D+ ^7 w "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
- g! B3 `$ U& v) I) `+ C8 K z "M" "MANH" "C" "9" "" "Lw" "0.35" ""& D0 V9 w% c6 q' J2 w$ o
"M" "TEXT" "C" "7" "" "Lw" "0.5" ""& u! O6 z! x7 e4 @
"M" "DIM" "C" "1" "" "Lw" "0.35" ""
1 v. B5 a7 W+ m0 j: Y9 d0 h "M" "THAY" "C" "7" "" "Lw" "0.5" ""7 f: a" @ F2 ^; R
"M" "NOITHAT" "C" "60" "" "Lw" "0.4" ""! t/ J+ g4 X% m7 z/ _
"M" "HATCH" "C" "5" "" "Lw" "0.35" ""
" G) @+ w6 w8 s0 Z$ S8 i "M" "COT" "C" "1" "" "Lw" "0.1" ""0 {; ?% P$ j$ u8 ?7 h; v- T
"M" "Defpoints" "C" "7" ""7 {% c0 n( { G
"M" "0" "C" "3" "" "Lw" "0.5" ""+ {: z3 D5 E' y4 X/ P) \: M& A
"M" "CUA" "C" "6" "" "Lw" "0.5" ""
$ [0 k% z* g" V" n! T "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
' x* ?, ~. i3 { "M" "DAY-DIEN" "C" "3" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"" n% y% Y+ u f
"M" "NETDAM" "C" "4" "" "Lw" "1" "" "LT" "Continuous" "" "" "LTSCALE" "1"
X* I* I- W0 F y% D( d "M" "NETTHAY" "C" "255" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"
# H0 ?- A" j- } F9 |* W5 y "M" "NETMANH" "C" "43" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"* k5 ~. l, U- }6 q+ }
"M" "ThietBiDIEN" "C" "2" "" "Lw" "1.20" "" "LT" "Continuous" "" "" "LTSCALE" "1"
8 c' [6 p: c; a0 B) [0 ?& M: G "M" "TEXTTXT" "C" "7" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
3 V2 n3 U& k* ~4 b$ h "M" "TEXTVN" "C" "60" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"2 E1 A3 ^* x0 l3 J% k& }) x6 i
"M" "TEXTVNi" "C" "60" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
% g! K/ I" _% G0 I "M" "THEPDAI" "C" "3" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"& A: _8 r. }/ @+ c! r
"M" "THEPDOC" "C" "2" "" "Lw" "2.11" "" "LT" "Continuous" "" "" "LTSCALE" "1"
6 k7 }, y$ A/ H "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
% n; A2 E$ V1 F( u5 m "M" "4-WateR_IN" "C" "4" "" "Lw" "0.9" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
# Q1 f& U- }7 b' N8 f "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.9" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"7 ]' w8 Z2 J; }8 `0 z
"M" "KHUNGTEN" "C" "4" "" "Lw" "1.40" "" "LT" "Continuous" "" "" "LTSCALE" "1"% l3 U; ]) r {' a- R
"M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))(princ)
2 x. a0 N5 H6 M* R" n(DEFUN C:O () (COMMAND "OFFSET"))
2 n7 ?1 x% X$ n; q* J; O0 s(defun c:s1 () (command "surftab1"))( J# w9 \1 S$ M; M, u: v9 t% A
(defun c:s2 () (command "surftab2"))
2 r- I6 ]" j! e6 ~4 {, v; I$ r(defun c:ep () (command "explode"))
3 z5 U& w: O6 H) B% d/ q w0 J% b(DEFUN C S () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))$ _6 e8 k. g# X! Y! J
(DEFUN C V () (COMMAND "QSAVE"))
" z9 M" r# i V; _# Q(DEFUN C:S () (COMMAND "STRETCH" "C"))2 ?$ M! M. O* j; ]
5 d& H n5 {# O% r4 l;************************** CAT DIM ************************** _7 ]0 S% ?" M2 Z* f% I
0 {: C( X8 k" _(DEFUN C C (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I: k9 Z m7 s1 n% A' e. v
PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
8 M" O# h( v$ N* B- s9 M' U(SETQ CMD (GETVAR "CMDECHO"))8 Q1 U2 O) c$ R4 n( V+ h5 ]/ C1 C& m: v% c
(SETQ OSM (GETVAR "OSMODE"))
; l( {( y+ h" [, u( p! t2 ?(SETQ OLDERR *error*
/ n" s& p3 D1 R+ F( Y *error* myerror)
+ ?! n+ V6 t' T9 W, b j(PRINC "Please select dimension object!") V' a7 S' ^8 D7 C, L3 d# m. j& t
(SETQ SS (SSGET))8 t/ }: Y2 |! w3 g+ w- {' A
(SETVAR "CMDECHO" 0)
. ^. K) m" H% y4 @4 I/ z(SETQ PT (GETPOINT "Point to trim or extend:"))
2 y' U l3 J7 u5 g( e(SETQ PT (TRANS PT 1 0))$ T, ^( x- H- u& |( p- W
(COMMAND "UCS" "W")
% R( B( ?+ L3 g" f1 E0 P0 u(SETQ LTH (SSLENGTH SS))
: h2 _: k/ y2 n5 Q/ K(SETQ DEM 0)
6 c6 q" S- W! f9 u(WHILE (< DEM LTH)
3 |" w4 g! K9 n V* d (PROGN3 l! q0 @2 P/ L3 Y8 j
(SETQ DS (ENTGET (SSNAME SS DEM)))9 d2 ?8 O; K+ V* _2 l
(SETQ KDL (CDR (ASSOC 0 DS)))
5 x9 w1 o ]) Y) _ (IF (= "DIMENSION" KDL) `8 B. u+ l: _! B5 p
(PROGN
) s( } F/ y& R( T (SETQ PT10 (CDR (ASSOC 10 DS)))6 K9 d6 `6 P) `
(SETQ PT11 (CDR (ASSOC 11 DS)))
* {2 W) R# Z# g2 `. a9 N% Q6 E (SETQ PT13 (CDR (ASSOC 13 DS)))/ I, G3 E+ j! j* i1 W5 [ h
(SETQ PT14 (CDR (ASSOC 14 DS)))
# n) f6 y1 A+ s. n$ ? (SETQ N70 (CDR (ASSOC 70 DS)))
" B1 H! i; }2 x: @3 ?6 k% z- X1 | (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))' J+ b/ T* R9 q& m" }
(PROGN! l; b* ?/ R6 W4 o
(SETQ GOCY (ANGLE PT10 PT14))
0 k& Z5 M- u; }# v2 n$ Q (SETQ GOCX (+ GOCY (/ PI 2))); f- N8 e& Z7 j' \
). T2 Z- H4 N" }9 d
)
7 D+ q3 S/ n% r0 f* z/ t+ W3 L! ] (SETVAR "OSMODE" 0)
& I5 {; F5 f ~( p1 @6 V0 s (SETQ PTI (POLAR PT GOCX 2)). H. X! N; ?2 n
(SETQ PT13I (POLAR PT13 GOCY 2))+ G3 ]; |) y$ _/ T" x
(SETQ PT14I (POLAR PT14 GOCY 2))
4 J; {' g: ]* M4 H% N; E (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))9 W& r! {1 i% t
(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
2 n' I. {8 m, g (SETQ O13 (ASSOC 13 DS)): E; L3 s4 N7 i( C: ?; i& g+ X% a, g
(SETQ O14 (ASSOC 14 DS))+ o( ?% Q8 [8 D; y' u7 c. N" ?
(SETQ N13 (CONS 13 PT13N))# M2 ?* x# p" A3 ~9 E" m* ^# E, }
(SETQ N14 (CONS 14 PT14N))# X- z1 d& n2 w* E" m& Y
(SETQ DS (SUBST N13 O13 DS))
% F3 p/ ~& G4 p (SETQ DS (SUBST N14 O14 DS))
6 H( a U& n1 D, o s (ENTMOD DS)
0 M% i4 x7 a: u4 X0 W )- d- E% V" v# O: G
)
7 c1 r1 p, g4 p; e (SETQ DEM (+ DEM 1)), o( a1 j! T0 g$ f' _% H
)
% y; _2 E" S+ R7 T* ^5 L d; |)
( i; ^. \) N$ a% o* T4 ~(COMMAND "UCS" "P")% G2 w& ~' b" d: U/ U6 f
(SETVAR "CMDECHO" CMD)
! c& h$ y4 g2 |& L, h; `(SETVAR "OSMODE" OSM)
4 I2 U" I( ] N% L* r8 C! F# _& i- Q(setq *error* OLDERR) ; Restore old *error* handler
- M# R9 T5 \3 d- W(PRINC)
- E1 [- Q/ O3 [) t)
8 ? E& ^+ B7 h$ Q
* m) N5 L3 g( X3 X5 m# d/ a(DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
0 t: s% j, g! S8 ^ PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
! ~, J( ]1 E% ?* ^9 ]! A* E# Q(SETQ CMD (GETVAR "CMDECHO"))4 I1 m" b3 L& o; N0 G
(SETQ OSM (GETVAR "OSMODE"))
( \/ [' ?2 }: u& W8 `% d(SETQ OLDERR *error*+ z: ~! t v6 r& l7 O( _
*error* myerror)
# O+ }4 o! V) }4 @/ I* M5 Y- Z(PRINC "Please select dimension object!")
' i, w( P' }6 {5 H0 n! k7 X9 q8 F(SETQ SS (SSGET))$ k0 w- u; T: N8 i+ ]
(SETVAR "CMDECHO" 0)3 @ t7 x1 p/ _, P
(SETQ PT (GETPOINT "Point to trim or extend:")), w5 ~: b/ d8 u1 j: Q
(SETQ PT (TRANS PT 1 0))
" ^( v6 K3 A( ]) y- _(COMMAND "UCS" "W")
4 D- ?: M& l3 C. S) _(SETQ LTH (SSLENGTH SS))! P6 `4 U, o, X% ~2 z3 I
(SETQ DEM 0)2 N/ Z2 {, J% d) [
(WHILE (< DEM LTH)
, ~+ e0 g4 G* Z( V* G; {2 G (PROGN
4 Y W% V# L1 _1 ^( V4 \) C; ~ (SETQ DS (ENTGET (SSNAME SS DEM)))
]" \+ F/ G( ~, m1 s (SETQ KDL (CDR (ASSOC 0 DS)))
" o* a7 H" @& H' N* D3 F (IF (= "DIMENSION" KDL)
F; a' R& l: ?1 _ (PROGN
# n$ p& c$ b3 W1 Q* i (SETQ PT13 (CDR (ASSOC 13 DS))) I: G. ] Q! [* K! G
(SETQ PT14 (CDR (ASSOC 14 DS)))
' `& d* U+ P3 @: M4 g8 o (SETQ PT10 (CDR (ASSOC 10 DS)))! w2 G4 u c4 E+ l! N4 a
(SETQ PT11 (CDR (ASSOC 11 DS)))
4 p8 S; @2 }7 _( ]; E (SETQ N70 (CDR (ASSOC 70 DS)))% f' i' Q1 P- |% u! J
(IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
8 a; F' T+ ? R8 s8 r1 y (PROGN
% E% L a: j! M (SETQ GOCY (ANGLE PT10 PT14))2 N8 D0 a4 |; I" t) ~
(SETQ GOCX (+ GOCY (/ PI 2)))( f. l) J5 L3 h' R2 u" C& p
)* N' e- R9 x5 n! M# X
)! L2 }, h# X+ e# Q
(SETVAR "OSMODE" 0). R y+ ], F Y* J
(SETQ PTI (POLAR PT GOCX 2))
0 i1 q* Y: h# c* f( G* G+ ^ (SETQ PT10I (POLAR PT10 GOCY 2))
+ B* M) B- G2 `3 y! i2 ^3 @! E/ q (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL)), w7 v7 a' F! O! ?2 T% e
(SETQ KC (DISTANCE PT10 PT10N))
/ v* ?' C3 d, B) r1 I2 R (SETQ O10 (ASSOC 10 DS))
* r" N1 \2 C, z5 s9 C0 ~7 _! c (SETQ N10 (CONS 10 PT10N))% O2 W, ^* |% M. u5 N$ }
(SETQ DS (SUBST N10 O10 DS))) c& s& i9 m W/ o; ?5 ^ @+ y7 \ b
(SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
* h! I# Q% @- k- [' g4 K (SETQ O11 (ASSOC 11 DS))
) y- e" [, u. {- [/ Y& c0 `. n' [ (SETQ N11 (CONS 11 PT11N))
) J5 P: P( O+ v- A& |, x( \ (SETQ DS (SUBST N11 O11 DS))! D$ Z. Q L6 K+ J4 x# i
(ENTMOD DS). i h g+ o+ a: H y, @" s
)
- v2 |% {( c! l+ g )$ h/ k/ P( z7 Y
(SETQ DEM (+ DEM 1))3 \2 G+ n) p7 F8 s
)- N2 E0 I8 ]" G U
)
6 y# m5 q; Q0 z(COMMAND "UCS" "P")
0 f! W9 k" ]9 s, }(SETVAR "CMDECHO" CMD). N' {: {+ |& [9 `; D4 I
(SETVAR "OSMODE" OSM)
( U: G, @/ k2 e8 x( m4 L( f% r2 V(setq *error* OLDERR)+ {, D! h: w8 d1 R3 ?/ Z
(PRINC)# t p- A* n1 x. L0 F* V
)
# h6 e/ ]; Q3 d
( c6 w' [# h) ?& A2 I4 U
) n( i% D( f" D% Q& k;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================1 V- X0 s' d" y
6 b+ G6 y6 ]" X(defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
. f" {2 N9 Z2 a- w (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")' P4 _( A F4 W& i! S7 o5 i1 Z" p
sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt; d! u/ @. q# R; m
(entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
+ ^. G# @1 }) R5 L8 ], o (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
$ G0 _4 o7 X' [4 w: L: |' l6 j; u (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
6 t5 a7 N3 p* c/ ]4 g* Z! v (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
" j8 o+ O5 B7 X* m J7 o' q$ K (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))5 I1 t3 f6 E0 }& \$ e5 O" R/ F
2 G! J! Q/ s; j8 j5 ~4 I2 J;;; ================ CHEN COT (TUU) =================4 \- m0 u, v1 D7 n: c
, z7 e. L% a3 Y' t9 m. w
(defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")7 ^ ^$ J+ \! N* x/ k, O# l8 t! l
(prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
- U4 L: N6 P) g( m3 [9 p7 M/ b+ m6 ^ sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt5 X/ }+ @/ n4 v
(entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))7 _( L/ t1 G/ A/ t
(if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")6 M0 \9 k! `( Q) G3 U& s
(= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
/ }# u; d: x7 v* c (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
1 l. g2 _/ j/ m2 j: e6 U (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
' H d9 u/ X4 y! {/ c! Z# r
' ~3 \2 A1 b7 M- n( [& v2 \;;; ================ CHEN KY HIEU THEP (TP) =================
2 q; j* K$ x- s F; q" w' N1 }/ H2 _& K; v/ z$ C
(defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep "): R* {7 a7 T ~4 n
(prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")6 W; J d) V6 L3 ^+ ^) ]
sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
& }+ u: t' i9 z (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
4 M. l. Y/ _3 x4 T (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
8 J* Z6 r1 {5 ~' c$ V (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt))), J) }: t! c8 Z2 Q. q. G/ D v
(setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))2 q% C& c' }9 |; s: `+ M
(setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
$ [5 G, w7 g6 x. m
! P( F6 W: q( H8 W4 Y+ k# t;=========================== TAM TUONG (TAM) =================================: a; N+ O" w9 e$ h0 Q9 ~
6 J$ c9 F% }; i! t$ E0 @" m& D
(defun c:tam(/ data_m)
; k3 ? r; Z' { (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))5 T' l+ K. M( t. T+ w# `( L; H) E
(princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))7 H- ]& o. B) Y6 ^7 x8 E7 b- f8 Z* A
(setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)$ l) D# V( f. g" Q' w
(if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
: N- ~' z& Z0 y5 Y' Q (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr; L, n& ` l" B( o- h, ~0 X: C
(assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ): d2 H/ U+ x. H) u1 T1 a/ a
)(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if- f- ^! U! s) C8 L- _, [
(< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
8 x/ m5 n3 y6 `7 k2 X- b6 z y* D3 C distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)1 ]' F" ?0 ^; q' V/ Y3 j5 _
(nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
4 [7 {! l/ c( C+ v7 y! ]% d4 w (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<6 H0 I; o8 C+ d& k+ l, x
(abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
( ]- A/ y( m2 Y4 r& D" ~: U, R distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
! M5 M7 g# m, A0 J& _ (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
! a6 h- a" P5 L (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not+ k' w6 p8 ^0 ]
(= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
- X# h0 X: M- M+ ?0 { (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
0 ~4 a" w# F, h6 H3 {; J7 g (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))5 O# {5 b+ L- L# A& O- T$ M5 |
) b+ d( V" K. @% g# `# ~8 W' P# a
;============ GHI CHU PHI (T1) ================
' s; V3 Y. w r) Z' x0 I
& M3 N( E3 a* V4 ^9 S(defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
, m+ u" q. F \/ P (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3$ N# T9 Z" C0 |: Q9 R7 x2 T9 \
(polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
, `& h( p& c2 H1 b" m (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)9 t0 a8 f/ s; T7 m
))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))+ J x/ [4 g' j6 O
(setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
" ?3 q, F' G$ Z1 g6 m- c0 u7 ?- {! b 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
, o! r! a1 K' |& p (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )* y. h* F( }1 ?* D9 O5 o
(command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
$ Y8 d6 L6 S3 G4 s4 u (command "ddedit" pause)): X. n& w2 m5 @" m, F
* U0 B) Z- v$ D' Y3 r;;; ========================== Join (J) =================4 r/ I0 A5 P1 f8 u
$ `! T+ j6 R( o" ?( S' a" v7 v
(defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
; T1 w8 w/ `- K3 s6 O* I4 m8 u (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))5 s D! k' p, H' z: _
(setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
G$ s) E6 E: X: ]* C) g. O7 j ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
$ m2 j3 \ }- U6 \ @% l% G2 q (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))+ a! _% L9 T- U* v/ f, r
(COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))+ F( y/ ?, r/ w0 H' A+ g& F% W
(progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) $ E M3 B( d$ K2 |: }. z8 S; W, s
(if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
[7 g1 Q+ B: v4 l8 c+ K$ x0 `( o (setq *error* m:err m:err nil)(princ))9 `3 @( @ r9 q; R! x1 f
1 D ?6 _! F# z0 ^) O
;=====================================================================
& H' t0 d \6 b4 f;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
/ d" g( X% F6 g; w, h/ N;=====================================================================
6 ]* v$ `3 c8 k0 [3 A7 E' f9 B+ R i/ [6 T3 X/ P! i
(defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
' W4 `2 o1 [( I) y5 ?+ k1 e (setq old (getvar "OSMODE"))
. f( Z1 n# O6 |5 J- t+ X) {: H1 |$ m! }, L
(setq p1 (getpoint "\nStart point:"))
4 E+ [0 G$ | h (setq p2 (getpoint p1 "\nEnd point:"))
8 X( L4 n8 G3 b4 `) J (setq side (getpoint p2 "\nOpen side"))% h7 I1 [+ P+ B1 z
5 D2 _# x! s" d (setq dis (distance p1 p2))
. M2 d. O: Q$ _( A0 {6 M. s (setq ang (angle p1 p2)): b0 H* T" c0 k6 k
(if (< ang (angle p1 side))! K D" o* s4 F# @. _( Z! a
(setq angside (/ pi 2) )0 C) H3 \! s- X7 \( }4 `# n
(setq angside (- (/ pi 2))) Y+ }( T% N/ Q* x( J, p! r
)
9 i( o; G! H) v* p* ? (if (>= (- (angle p1 side) ang) pi)
5 [, {: `( M2 ^ (setq angside (- (/ pi 2)))8 Q0 f2 \) ^& y$ e7 b
)4 J; s7 \" b: p
(if (>= (- ANG (angle p1 side) ) pi)% b. D0 l8 D6 M& X# w) L
(setq angside (/ pi 2))% i" z# F! O" n
)0 b% f3 q5 s7 E
! E; u5 o$ _3 \0 M& K: z' V4 p1 ?
(setq p3 (polar p2 (+ ang angside) dis) )! g% e, {# x2 g: d
(setq p4 (polar p1 (+ ang angside) dis) )+ N6 ]3 }5 E; z: s9 q3 ^: i, H
(setq wid (/ dis 15))4 W$ D! W4 y7 {. T* [ c
2 U/ @. V% R3 y/ U4 f B (setvar "OSMODE" 0)
7 P% U& B5 o" i" o" O; X6 M- o/ K
' B2 K0 Z7 q2 k (command "PLINE" p1 "A" "D" p4 p3 "L" p2 / O- ?$ w% a& @5 [( A3 @" U9 g
(polar p2 (+ ang pi) wid) ) H# Y$ E; }' N% s, u
(polar p3 (+ ang pi) wid)
$ c2 }2 ]/ W9 E( {7 H1 P2 E2 z7 g "")
" P% Q8 b. F( F1 {( v
& P9 ?5 s H: E% A% D (setvar "OSMODE" old)$ Z2 W8 C k8 {' Q8 |8 D* Y
(princ)
6 P7 W4 ^( y& k+ w)
1 b) x! a; m. L( h. G' G! W' W3 b+ a( h( @, g
;=====================================================================% W% C" L T, J5 Q
3 R7 ]- c6 d, ^3 ^1 S" L O$ z9 U(defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old); D! p+ _- L6 x
(defun cua1 (pt1 pt2)
) p( d, z% D$ A0 v% s0 V5 h (setq p1 pt1, O- r" C9 h0 L
p2 pt2)
! w" S) B: u' Z! I$ D& E( Y
' X: t% E% N/ O h. w: h$ i$ N (setq ang (angle p1 p2))* L5 U W9 I1 F3 W) g$ _8 N
(if (< ang (angle p1 side))
* W0 q% J: B5 v0 A% J' [* M (setq angside (/ pi 2) ); C* U( W& n9 L- F8 {
(setq angside (- (/ pi 2)))
! f( w& y( f z )+ R7 c" A% |% U- Q% w
(if (>= (- (angle p1 side) ang) pi)
# D# ]# }) s y: ~) r2 J3 m (setq angside (- (/ pi 2)))
, p8 W- f% r: C& W- z& D* T. m j1 X )
/ C6 z* i) { P1 r. \; d (if (>= (- ANG (angle p1 side) ) pi)# s9 _: J6 j% e8 I
(setq angside (/ pi 2))$ Y+ ] u% O+ Q; G2 \6 y$ L9 ] W0 v4 b& v
)
" L% v: z/ R. i; J1 J
$ P& h& i, q) `$ c (setq p3 (polar p2 (+ ang angside) dis) )
0 G! P' X: u" \9 o (setq p4 (polar p1 (+ ang angside) dis) )
& n7 R% A" W2 h3 K3 N: s/ H! l (setq wid (/ dis 15))
" D7 d, @0 L8 T5 Q. `* C$ c5 g- x; A l! F( y8 ]5 D" G2 q
(command "PLINE" p1 "A" "D" p4 p3 "L" p2
4 `: d* }5 }* k9 I$ p. o1 [ (polar p2 (+ ang pi) wid) 2 D0 ~0 x B) \2 `! B
(polar p3 (+ ang pi) wid) & p- w9 U/ C4 w. }; X0 f$ b
"")
! O8 j1 a. }& F0 z: K- z )! v1 Q6 j' C7 M7 h$ W$ @; p9 x
;=====================================================================
& c4 K: W" P7 l9 c0 k (setq old (getvar "OSMODE"))
1 l$ d- V% v. O# Q/ M1 }
- F) o' R/ T, m: l6 z% {1 M5 v1 U (setq p1 (getpoint "\nStart point:")). x% C* _- O W6 x! z0 A
(setq p2 (getpoint p1 "\nEnd point:"))" K7 f r6 H- F* o
(setq side (getpoint p2 "\nOpen side"))3 u) P l3 m' u4 Z
M/ V0 O* g% u) o3 e (setq dis (distance p1 p2))% F! M# l# C& I7 z7 B, P
(setq dis (/ dis 2))
( V) i' t( ?" t I* s" N* |
4 R7 y: o0 `$ W2 {( }7 D! e8 H2 G (setvar "OSMODE" 0)" H' o8 h9 \' F2 Z E+ u) `
1 w! g5 q5 g8 \ (setq p1 (polar p1 (angle p1 p2) dis))6 v! b& M8 n) O J. k( h1 I9 [# F( `
(cua1 p1 p2)
; }6 P- Q2 X$ S: ^- ?& A7 T
+ t& D! a( ~8 A (setq ang (+ ang pi))
1 _- t/ B. V- l2 I& n3 `9 t- y (setq p2 (polar p1 ang dis))# Y1 s' Y/ s7 {2 J1 \/ `
; (setq side (polar p1 () dis))/ P* O+ }1 F3 v, P* L
(cua1 p1 p2)
( j4 B0 i; L$ B5 o; w- d4 q, `4 W9 A9 E" x, }
(setvar "OSMODE" old)6 _+ x# ~4 k3 g- ^( s
(princ)
0 z( a9 q' x; L$ G7 U$ ]) s)
3 h% K- }3 q0 A' |* x6 p
6 I5 w) o. k4 L% O1 R# |;=====================================================================. v+ ?2 B7 P( S ~) T. q
;"Glue" text strings. All adopt first's properties.3 ]/ v! E( T# O- b
; Author:
3 f c2 [! [" C) x3 l) q9 Z5 u; Henry C. Francis
( B- R3 ]* y) d2 @; 425 N. Ashe St." A: g1 z" a2 h. H- m7 e6 N6 M4 k
; Southern Pines, NC 28387
' W2 G. C. ^: g/ g; http://www.pinehurst.net/~pfrancis
5 H% q7 C" n2 z; g$ `' U; e-mail hfrancis@pinehurst.net
2 x7 W9 z/ ~ `6 i" k) v; All rights reserved.
, n/ i3 A' E" c. H9 J/ R(defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)
9 B m: e/ P" i1 s(while/ q2 i6 z$ K8 p- L6 Q+ o7 @ x. M
(not! f1 _' `4 e! q) W1 p9 N6 M
(and
5 ~, w" Z# w; {; S (setq ename1 (car(entsel "\nSelect first text string to join: ")))* F2 X) M8 E6 Y {3 ^! @0 ^
(setq ent1 (entget ename1))/ ~/ l6 ]& Z( ~9 ^# ~. T. F1 G
(eq(cdr(assoc 0 ent1))"TEXT")* \ k: R( C4 F5 @
);and
$ h. D4 [5 e6 M* T );not! c5 X' M& S$ w! v( |
);while
! b% k' D% i2 E% T" @(setq old1 (cdr(assoc 1 ent1)))
1 ?( t. \* \# K9 `$ T(while! M; e: H I0 G
(not
4 M. U5 N6 }9 Q% s! C (and
" T3 B# X/ `& @$ K) D" ~6 X @3 O5 } (setq ename2 (car(entsel "\nSelect second text string to join: ")))
- v9 V: u* s9 r3 [ (setq ent2 (entget ename2))
0 o* [* s+ W- W Q" F& W (eq(cdr(assoc 0 ent2))"TEXT")
: @' i$ k( Z8 m7 L% Z- r/ p, p (not(eq ename1 ename2))) V% e! O' {8 L3 c E
);and1 V7 Q8 i4 ~: Q; R# v% x9 o7 p
);not
, y7 W' p" w2 C0 X8 h);while7 T. }. z6 x* G2 E
(setq old2 (cdr(assoc 1 ent2)))
6 @; |2 E0 x0 @ l(setq new1 (strcat old1 " " old2)
9 _4 q; m" P I$ L. Q7 p4 r ent1% O* y' t/ g6 @, f' A
(subst (cons 1 new1)
$ y# C1 |0 V& b4 v" H( q# v o (assoc 1 ent1)) j; z2 B4 V0 x+ q1 I9 [
ent1)7 X+ u3 G" Z: Z4 w' r7 O. s
);setq
" T4 |" B- `9 d! w' j7 ](entmod ent1)- {( |, S- I! @, D
(entdel ename2)
8 N; |& K3 k6 _# W5 W, t5 ]. x(princ)6 i, t" U9 S# `: P! a" ?+ \
);defun4 r% `( s1 `+ ~" n
# t% y$ X& a1 b6 w* k2 [! j
;=====================================================================: ?/ U: _! {- E1 g
; Q/ f& G3 A9 Y$ b" |6 b4 z' ]
(defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
1 r& W# q9 h$ s, ~0 G! k9 c+ w/ u2 W3 k6 A
(defun nterr (s)
' C; V3 K) E$ l+ d e (command "_.UCS" "" "_.UNDO" "E")
7 _! r2 Z8 d) a (setvar "cmdecho" 1)4 O s9 k/ k; c" N2 A& T# G
(setvar "blipmode" 0)
. K5 U# x8 ^5 w+ K (setq *error* olderr)
; C4 f: t: ?" R (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
7 X- Q: ~8 U2 s6 q nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
7 K) }' X) {5 A S9 X/ n (princ)
- S" K$ H/ ^4 p6 n9 J, a )
& b3 r, b% A' j/ ~0 N: S
! ~; E) T5 n7 b) a: A8 f (defun tim_in (dt / p01 p02 ktra)
8 [- H+ I/ S+ u$ _; T$ n (setq p01 (cdr (assoc 10 (entget dt))))
" q# `1 V! F$ q$ t/ r* X (setq p02 (cdr (assoc 11 (entget dt))))" e0 q/ Q" Z1 p, B
(setq ktra T) S& L+ X( H1 N$ N/ _2 a
(if (and (> (car p01) (car g1)) (< (car p01) (car g2))
9 v3 n! P6 O8 `; N, d (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
) a1 N1 Q0 a* s0 p' q0 R0 P% x (setq ktra nil)' F9 j5 D2 Q. Z& R( f
)2 x# c0 R- [7 M* o9 h& {) G0 v) }
(if (and (> (car p02) (car g1)) (< (car p02) (car g2)) ! f) u0 x) w8 R- L) A
(> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))$ Q. B1 G3 \. @$ j
(setq ktra nil)4 A. _/ A" I2 x7 y- W" I# x
)
* ~9 Q5 H3 v6 i O" }$ F: r% r$ u ktra3 ^ D/ b3 H }8 l( B( _
)
8 ?; p; q( N- j. Y0 y0 P e- H, y6 {2 P
(defun timdt (dt1 dt2 / p01 p02)% j, r) Z% y L* V
(setq p01 (cdr (assoc 10 (entget dt2))))) l, \4 [6 k7 u/ A& t7 \. ^
(setq p02 (cdr (assoc 11 (entget dt2))))
4 B X; P! {6 K8 k! y, Q (setvar "ucsicon" 0)3 m$ ^7 ^7 e/ J: a
(command "_.UCS" "E" dt1) e& O% E% t! Y9 ^/ l1 s6 t6 I
(setq p01 (trans p01 0 1))9 h; | z5 M# C |
(setq p02 (trans p02 0 1))
/ T, l% K) o) B# @& B (command "_.UCS" "")
8 q; A7 ?- t5 F) J! B7 b8 N (setvar "ucsicon" 1)8 v- V2 Q/ p. g4 |" O
(if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001)); m% n4 K& a* |; p
T5 h( q9 a( \; }
nil
7 l- S2 R2 w$ @( A )
5 q& m/ p# {' c; W )5 Q, U: D, z2 {: y! ]* I7 `2 q
% z* G2 B) a% r (defun tim_out (dt / p01 p02 kt)
' \4 X& {5 ^5 `# I/ y8 O (setq p01 (cdr (assoc 10 (entget dt))))
/ D& P' \ ]5 Y6 z (setq p02 (cdr (assoc 11 (entget dt))))$ x, {1 y: \ [
(if (and (> (car p01) (car g1)) (< (car p01) (car g2))
, J1 C* q" N+ K% `7 q. W (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
% l' w, p, M: n% {- ~, D. B3 O (setq kt p02)
6 H. f6 c( _- k2 [, g )
% Y2 C# l! |* h# R# q0 V, y' U (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
, c" Q7 t! q/ T9 G! M) x2 I/ f6 X (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))5 P2 V# [4 w+ o/ X: e
(setq kt p01)% E7 H0 v" t+ d
)' f; ]9 D" \5 L/ A
kt % C* w% i) c3 U4 |& O
)& U8 F0 i6 H% g- @' d. @9 g
, e* F2 l8 P% c% b1 v
(setvar "cmdecho" 0)
% a) j! d% ~1 J1 a (setq olderr *error* *error* nterr)- J2 \ _( Z5 h7 c( y. |4 Q; U; c% c
(command "_.UNDO" "G" "_.UCS" "")+ `' T, O" x+ h( K' Q
(while (null ss1)
; m2 A- E# f2 ]+ I (princ "\nChon tuong muon noi...")& ~+ b) ?( r! ? N- N; b. E' z
(initget 1)
+ n! v+ ~# i2 {$ J2 z8 T (setq g1 (getpoint "\n>Goc thu nhat:"))5 k g# |3 m+ X: l6 t
(initget (+ 1 32)) f) O3 e1 E* V$ O# `' [, u4 @# ^1 K
(setq g2 (getcorner g1 "\n>Goc thu hai:"))
0 ?1 D4 u3 U7 v7 S (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))/ [7 Q; D) [- t- a* W4 C4 U$ `
(if (null ss1) (princ "\nKhong tim thay doi tuong!"))) `& D; w* V' p: X) v
)4 V6 m# }) Q, u. q3 c
8 {. f9 y+ p% t. j% c (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))8 _+ {% |$ }/ s* |1 ` }. ]
g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
3 m8 D# ^8 O/ O" d g1 temp)
. C& d# b/ E2 g: K% x/ A3 ] (setq ss1 (ssget "w" g1 g2)); m4 l( ]7 q6 R: j/ \7 |9 D
(if ss1 (command "_.ERASE" ss1 "")); ^# _# ]& [3 e8 z3 _! U/ @6 ~ g
(setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
4 M/ z& u7 K3 o5 R8 X3 X! y2 Y! [; z: f. H0 |8 _
(setvar "blipmode" 0); R" c5 {# @7 p! p3 @
(setq i 0 l (sslength ss1)). i K6 z3 b4 l6 }8 C3 L
(while (< i l)) J7 p! Y T& j! v
(if (tim_in (ssname ss1 i))
' w1 x$ f% _# l b* a4 `, | (progn
2 O/ c$ u7 [% D5 o" W (ssdel (ssname ss1 i) ss1)
" V& _& r: b# _: m (setq i 0 l (1- l))
! _4 \" }& q) I( ] )
& ?8 x' C/ t. g: e+ v- l4 E (setq i (1+ i))1 b* ^* u% E+ Z/ e I/ {$ {
)
1 s/ z B4 j7 {( ]# M p )$ Y5 x' V, j6 r' I
(setq l (sslength ss1))
2 T6 G$ y+ D+ m (while (>= l 2) I) s5 H/ H8 z7 Q* a; |, H
(setq e1 (ssname ss1 0))
5 ?( G# L3 t7 Z) }- A. P (ssdel e1 ss1)
P& C4 p; A- S; J2 @# ? (setq e2 nil i 0 l (sslength ss1))
3 t& R, _# P( Q4 A (while (< i l) & }2 \3 E8 [& G' N) ~7 A
(if (timdt e1 (ssname ss1 i))
/ N1 D& `0 x- U9 F$ n6 s6 W0 Q- Y/ g1 L (progn
- E3 N! H2 T! ~ o; k/ S- ^ (setq e2 (ssname ss1 i))
: ^5 b( V9 p; H (setq dd (tim_out e1))- F& @' b) T' M0 O7 O! H
(setq dc (tim_out e2))
' d6 u! S3 `" c0 D& n0 ]# W, [ )
# ] A5 e# h( i )
2 A! j4 P. d: Q ? (setq i (1+ i))
1 {- x% s' n! S )
2 T9 K9 o5 \! w4 Z. D (if e2 (progn
4 V7 m" s0 d" g0 h$ g: F: K (ssdel e2 ss1) 1 c F, Z9 A: A9 l
(command "_.ERASE" e2 ""): H6 h8 Z2 L4 y$ z" O0 }1 }+ H
(setq temp (entget e1))8 h* X, g9 E3 }3 g. S( `9 ?
(setq old (assoc 10 temp))+ C* _# R: P4 ~- [8 t
(setq new (cons 10 dd)), k. F9 \# u" Y4 T: r9 e
(setq temp (subst new old temp))
4 i) q+ n! Q7 _: Y: J- f (entmod temp)
W2 c( E7 F9 I6 J9 L b& M6 u' p# W (setq temp (entget e1))4 G6 s% k( P* ?8 x- h
(setq old (assoc 11 temp))# `: l( n5 X4 T. a |5 f( p
(setq new (cons 11 dc))
* o* X) E5 g6 y( e (setq temp (subst new old temp))
) R4 |# q; e/ l! @7 W& ~4 E (entmod temp)% T2 A/ f9 }' b3 \# G- f$ H
(redraw e1)
3 U2 I) u F% I2 H, j (setq l (sslength ss1))
2 e; L+ k. F7 E$ I1 z )
8 P3 d+ S' c7 o )
. D8 ^3 e: Q0 k. `. b )
. H9 s1 G$ i1 `* k% G; |9 ?9 }% @4 I& u& J% c2 g- }1 v
(command "_.UCS" "" "_.UNDO" "E")
$ K* X& \% m; t8 D# Q (setvar "cmdecho" 1)
+ t+ L3 j; H( `6 z( h/ ]8 c C (setvar "blipmode" 0)( \2 W% m; o3 t9 Q- e
(setq *error* olderr)4 N' m1 n0 `4 n2 Y% b a
(princ)) b$ @* i& `, M6 y% a
)
* H: _9 V Z! E5 e1 \;*********************************************************************
# _, x9 ~: F- j2 S }+ R' B. W(defun ketthuc ()
# R- |6 O5 X4 j0 A* M (setvar "cmdecho" luuecho)) R$ G7 G# a* `3 Q6 u# y# E
(setq *error* luu
# H" j- X' v# Y2 H. y luu nil
- Z/ p7 M4 h+ R' R3 h: ]% B7 C" X luuecho nil u& b7 P& a+ L2 {$ N, [
);setq
: o* P' R; e/ r8 W4 _, d (princ)
8 F/ \, r& [ d( \# l)
3 d: B: }1 M X9 p# G5 z" h;*********************************************************************
% M: _7 D8 O' s(defun modau ()
0 O& R. G- T f$ F(setq luu *error6 y& {+ X( g( G* u7 p7 ]) w7 V
luuecho (getvar "cmdecho")! y6 E2 |, Y8 Z# @4 E% k
*error (ketthuc)* C' d k9 l4 X2 \5 V
)
0 B1 ?3 `" W. b* j0 S; ]5 e+ e)9 H. K! z6 `' k. }- G1 v( M0 M
;*********************************************************************
5 Y/ g# V$ Q& }4 v' l) y' S" m; {0 L(defun xulytext (text / kytu ma sokt luusokt lui )
8 y/ D+ _1 \( X/ D3 p2 u6 s L(setq kytu (substr text (strlen text))2 s2 F7 S [4 N- V5 h7 `7 H9 R
ma (ascii kytu)
9 d+ |0 z7 `# o9 L. F1 n, b! g sokt (read kytu) % E0 Q8 b1 K* c! x; f' M
lui 1
& A& A! f$ `# J3 a6 s! T)
% f* `* u+ E% L$ S, \(if (numberp sokt)8 ? C g( _3 ]4 V. e% T; r
(progn
& \5 ^: ^, v. @ (setq luusokt (1+ sokt))
; f8 i; s+ K% j* a8 n& M (if (and (numberp sokt)
k3 ^8 r, i: @( T' |' t (> (strlen text) 1)
, I' Z; m7 @$ o- ^ ) , e _) g% L9 n. J2 Y# @+ Q
(progn
, j! \9 F5 |7 O (setq kytu (substr text (1- (strlen text))): X( U5 L. }5 w5 a( l" d Q, B
sokt (read kytu) ; X0 W N3 G6 }2 l
)
0 ?: `4 x* X9 X) N4 B4 e; o; x: n (if (numberp sokt) ) B/ K0 f0 K/ O6 O# B$ ~* U; f' H( Y
(setq luusokt (1+ sokt)- K U" Y$ Z5 \+ I5 i
lui 2
# B c T N; G/ x* w" X3 F
8 n( ~6 \3 @7 x9 T5 w5 F( T )# F1 }( a; c4 w
). T. F: Q# F6 ]6 J) _
);progn
( y$ I! A* t- n" q4 D1 u8 @& U3 y )% |# ], ^+ s5 V/ ~- w; L$ U+ b
(if (= luusokt 100) (setq luusokt 0))0 V1 ^9 ^. t* h2 m8 S
(setq kytu (rtos luusokt 2 0) k4 r2 o6 H0 g: i1 p' H+ Q
' b) p' s# W* Q7 F, P% C3 O text (strcat (substr text 1 (- (strlen text) lui)) kytu)& q/ P7 [+ q- e4 y2 f/ v! i/ i3 |# D
): Z$ P t1 o2 p& Z, x0 @
);progn 2 a. E: D% U8 {; y0 l- a5 b
(if (or (= kytu "z")' {& L9 w, N- t
(= kytu "Z"). v& W# D7 [) Q" b5 }. I2 G
)
7 X% K) M+ G7 l8 w) ~# Y (setq text (strcat text "0")
/ K6 j" {9 {6 J textxl "0"7 F" t6 C9 R: e5 h' C7 A7 G) D
)0 l3 ~3 c, t; }* E3 G5 P/ e' b! a
(setq ma (1+ ma)
+ q( I) u2 C/ {8 ]2 `$ K. L* C8 ]" \ text (strcat (substr text 1 (1- (strlen text))) (chr ma))" U7 t0 Q( |3 Z/ f; B2 H% v
)
% c- V' r6 v6 L4 P9 F. a) L& S );if6 ^9 U1 E! z! E' [
);if
! v$ S8 N# U$ w W9 K, M( T" h)
2 ^ F# @, S) T1 y7 v% x' N9 Y;********************************************************************* `0 c' N; S" M7 m# H. d/ B5 z/ W
(defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)0 d4 U9 u* `) A2 ]
;Neu doi tuong la text thi tiep tuc& V$ t3 e: v# z& C6 D. j
(setq doituong (entget tendoituong)
3 d2 U3 x3 w Q% T kieu (cdr (assoc 0 doituong))- f4 B( i* n% y1 f# c& t
canle (cdr (assoc 72 doituong))4 R1 d2 o, |3 g& b6 q
) % _) o5 f. U" t( d
(if (or (= kieu "TEXT")
* R: ~7 O; n7 x* F7 R (= kieu "MTEXT")
p+ N8 W+ H1 e$ y- ^ )
: \7 z& {' }# {& P+ u: F (progn5 B% A9 r4 [2 R' P$ E9 z
(setq textxl (xulytext textxl)
; z( ^% d6 x* Y3 ]3 w% q! f) H text (cons 1 textxl)
- h9 B4 B: ]% x8 T' L vitri10 (cdr (assoc 10 doituong))
/ I# G9 _7 ]" o" Y' n3 `% m9 \' F vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
3 O1 _/ ^' q2 O0 _7 \% ~* C vitri10 (cons 10 vitri10)
. {4 m+ O- k( C' L F& A8 B( O$ l vitri11 (cdr (assoc 11 doituong))
* |4 H/ P+ F1 m' ~+ i vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
& \' Y# d; m5 E; B vitri11 (cons 11 vitri11), }* @( \: Z! j" H4 t, O9 _ ]
dem 0. w5 V9 w# S; n8 ~
dsach nil" J# b$ I' Q1 h/ |% \
)
% Q0 U l) d4 f# A; K (foreach tam doituong
8 I" P! m+ V3 q5 u+ Y' e (cond7 r0 p, u9 Z; x2 Z
((= (car tam) 1) (setq dsach (append dsach (list text))))
9 ~+ S, q& X0 N" g3 }' E ((= (car tam) 10) (setq dsach (append dsach (list vitri10)))) B7 l# a4 {3 r
((= (car tam) 11) (setq dsach (append dsach (list vitri11))))0 S. n( d: U4 v y( t( F
((setq dsach (append dsach (list tam))))
' S5 i' q$ j/ B" C ), g# M- G. a. w& t+ g, G' D
)
- k: K8 g E$ e9 Y: P5 ~; q m (entmake dsach)
% f/ p6 j ?: I( ? );progn1 o! X# F- _" N0 r2 U+ n2 M5 V& k
);if6 Z$ y. f1 _0 j, {( P: L5 [
);4 Q$ x1 y" N) _! Y
;*********************************************************************3 q9 ?' S2 Q m8 [8 `2 O2 [( X
;sao doi tuong cu sang vi tri moi
: K3 R) A5 @) g* S% _7 \4 c9 L4 m2 C r* s, x
(defun copy_dt (tendoituong )0 L1 n+ Y1 T- O0 C k9 w, G( G
(command "copy" tendoituong "" goc toi )+ I2 g( ]& }0 W; ]5 s
);defun
) L: u3 C. V& ^2 k* J6 y
! [0 \7 g* Z+ A& b% H7 M;*********************************************************************
% o: |' E R! X8 g4 i0 h( P+ j. ]+ w
(defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)9 k3 z' c3 T! f7 X( E
; Khoi dau cua chuong trinh
' s! E# T/ ?9 w) x(princ "\nCopy Inteligent...\n")2 ^+ g0 \) M/ j" t4 W
(setq luuecho (getvar "cmdecho")
; P! L6 s3 ^/ g- }0 T- p1 N' r7 S luu *error*
1 H+ b. V( v1 g3 w *error* ketthuc& b, Z/ Q0 V/ P5 t* b" v
cumdt (ssget)
% L1 E- B+ u' m. B* k dodai (sslength cumdt)
$ y+ @( `1 |* u/ U# Q; \. O4 {- i9 q goc (getpoint "\nSelect base point:")7 W6 b8 _) F, Q
thoat nil. R% l* K5 ]) m
dem 0, v a9 Y7 b% J, ]9 _5 b! Q
textxl nil- Q( u1 W" g* k) ]
);
/ S: X' g5 I. Q& z2 l) a6 q(setvar "cmdecho" 0)* a& M1 {% W# s+ Q; L1 e$ o0 p/ a
; Loc ra duoc ong text de xu ly% v5 O2 p9 L- R+ N4 ?: T9 U5 M- H
(while (and (= thoat nil)
* g3 e9 t( f+ w o (< dem dodai): e* x4 Q2 N+ D# d& b' v T' a
)8 J, P, t) a0 W8 B* u$ r, m' w6 r
(setq ten (ssname cumdt dem)
* S4 Z) |% V9 \- C* V+ o e dem (1+ dem)- b/ M" l3 \+ v+ O' V+ ^7 g7 r
doituong (entget ten)2 J: E1 ^' Q, P3 N/ x$ }
kieu (cdr (assoc 0 doituong)) ; n# h$ B: q7 a+ ~) V- l8 E9 R5 }
)9 s0 A% C$ ?! [% A$ |" P6 Y
9 g+ j' Q1 v& f
(if (or (= kieu "TEXT"); }+ S3 m! T2 ~$ @7 H% v
(= kieu "MTEXT") / O, Y) @& J; K% s9 q- B
)
! g( \, |; w8 Z; H9 o, b (setq thoat T4 D j& x, @" J1 b. j
textxl (cdr (assoc 1 doituong)) , F' l& g+ M7 _1 h! O9 q
)' B; E- f+ c" T1 c. c
)
$ d, z0 G1 @3 d);
' v1 M% X: `- n" ` v* W: A+ b5 o(while T
) P0 L4 h: S2 @3 G(setq toi (getpoint "\nSelect next point: " goc)
1 Y, ^. _4 B3 I5 A! l vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))* q; H/ X% n Y* b% N
dem 0: `$ ]' G/ n4 d( ~& |
)
. s4 S! h a2 ^, ~& E% q5 p(while (< dem dodai)
% G) X7 o$ g, j2 x9 g (setq ten (ssname cumdt dem)
$ H( e# F9 v" l* u7 M6 o dem (1+ dem)
) \. b7 D# \* ^) h. P9 x doituong (entget ten)0 E+ M* c1 Y0 Y+ ]
kieu (cdr (assoc 0 doituong)) , B* S. Z$ U' v5 l
)* A; P- E N4 E) \7 E% p! P# I
: l" N# C* ?* N( j0 K5 o2 k: e
(if (or (= kieu "TEXT")
' D9 S r6 Z0 E3 v (= kieu "MTEXT") % X& O# C# B8 { ^9 ?. @
)
+ c1 D+ M1 F, Q3 i: `' o/ l (doitext ten)
Y. i% ?: A; a+ X x! h (copy_dt ten)( e$ v. w3 `; l8 J' s, N
: T0 f0 k# l3 H' s
);if
; z9 n+ _. i1 u7 u6 K)
( U8 T; I2 J2 G4 d0 n2 ]);while4 U1 t- n! \. l+ @6 [8 ?; V
(ketthuc)
L7 a; f' j: X% z);defun
5 k- v0 b9 h) G" u(princ "Type \"DG\" to start")3 U3 H3 w8 B9 d% C, e
;Note: bien toan cuc: textxl vitrilech! ^0 S9 Z+ A; ] @4 ]; K6 V
* t8 x6 F2 c. {6 @7 S9 a0 E. M4 A;=====================================================================, B% {; L; n2 l$ {
;;; PLJOINFUZZ.LSP
1 }$ a# c: l4 @( E7 J9 s' F;;; Joins lines, arcs and polylines using a fuzz distance
$ o0 i+ \- u2 T3 ~4 B;;; If only one object is selected it tries to join to all objects that are possible5 B' Q3 d( o6 A# I5 _2 \
;;; By Jimmy Bergmark2 g' a* Z7 D" F" [. _
;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
) e% {0 b* S9 z;;; Website: www.jtbworld.com
5 z- T, E7 i& [& v;;; E-mail: info@jtbworld.com
- Q% p+ o' z: G' L& T8 S( d* k. S9 N; M;;; Tested on AutoCAD 2002,2004 and 2005 U `9 n r- ]/ f. n! ], G& ~
;;; Latest revision made 2004-11-11+ k" _5 u; Y" H, A7 a; l9 z/ O, g% a
;;; Minor code cosmetic change made 2004-11-13
( x; {: j, X- m- M }! [;;; Bug corrected 2004-12-23 j3 |* `- l$ r' ?
" k& |* d. O/ `(defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf4 ^1 C& \2 c- i! H* ?
(defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
S! m. u s& M" ~/ U! M (setq oldcmdecho (getvar "cmdecho"))
/ x( A/ G* Y, S* Y# K (setq oldpeditaccept (getvar "PEDITACCEPT"))' M: M8 {) m& w& L
(setvar "cmdecho" 0)
5 B; ^1 T8 H1 }2 V. T (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))3 s8 D5 T" O6 D* H* V
(if A2k4 (setvar "PEDITACCEPT" 0))
# c ^- |+ F: k8 m0 X' C' f (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
2 U2 A- ^" d( n4 Z4 i (princ "\nSelect object to join: ")3 U/ G! a& C, p, b# S! o
(setq ss1 (ssget okObjects))0 m% S9 \6 y& k8 g+ b
(setq fuzz (getdist "\nFuzz distance <0>: "))
2 F' y$ A. ?/ o; z0 t6 H1 T7 L (if (= fuzz nil) (setq fuzz 0))& u. }* C" B) T# l: l4 A m
(if (/= ss1 nil)/ h7 `( g: u! V* z
(progn
5 |- v Z8 }+ b6 A (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))% g' \: V0 F1 P! C8 J8 J
(if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
* d* k* u1 l; Y6 c (if (member objType '("LINE" "ARC")): ^9 H3 V+ f' g9 T `
(command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "") H& v1 K# Z- @. J
(command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
- x* E4 o/ `, H. Z )
( [, U3 X* g9 C& K; @( e )
) q: S% f1 @! f8 S; D' q& ?9 b$ i )- a! i3 H5 R7 R3 U+ ~
(setvar "cmdecho" oldcmdecho)! P- `5 {2 F* H" G4 r: o
(if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))6 k* }# \. d1 \, v. c
(princ)( q/ w0 q5 W3 V3 j8 U6 W2 {! d
)
$ c M5 F- J g2 t- U1 E5 f$ |, T' ]# z* ]- Z8 |+ ] P# B
;===========================VE CAO TRINH===========================# D B* Z4 _ J4 [: T0 M
6 Q2 }) `$ c( K. q2 f
(DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
" A6 j' X% O2 ]9 P0 ~. r CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)* w& A( @: Z5 F) L
(SETQ OLDERR *error*' E8 R$ z z; ~6 `6 P. n0 u
*error* loisb)
7 |8 r, x/ i& f* C1 [(command "layer" "m" "dim" "c" "" """")
- r5 r) r2 w$ B- |(SETQ CMD (GETVAR "CMDECHO"))
B/ g, h A* j5 B4 M" f3 e(SETQ NBC (GETVAR "CLAYER"))
, M; e4 p5 C& e# S3 ^5 s/ P(SETQ OSM (GETVAR "OSMODE"))
+ p# A: j' o4 b, v- |5 @(SETVAR "CMDECHO" 0)
6 {+ Z J( W4 m; _/ x/ U* @(SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
1 F2 c8 f; w4 s7 Q(SETQ TX (GETSTRING "\nCao trinh:"))- ~* a; M4 y, A) D' D
(SETQ FCH (SUBSTR TX 1 1))1 I8 O" H4 V. \
(IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))! M: v V$ G; I0 w% ]; }
(SETQ CRST (GETVAR "TEXTSTYLE"))
9 w8 q0 z8 c$ K, ^(SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))4 U# H+ z" v3 |0 d7 B* e1 \3 R( |
(SETQ TSIZE (GETVAR "TEXTSIZE")) G* B# I r. `5 y o
(SETQ STR (RTOS TSIZE 2))
0 v( N) G& @7 z) q3 T/ e/ q& i(SETQ PRMT (STRCAT "\nText height <" STR ">:"))4 x# R! l& a/ d! R
(IF (= RSIZE 0)( C5 s7 A# J, f; u1 Z3 N
(PROGN
, j8 f8 B) F: r4 p3 \: K, F (INITGET 4)
N; Y; v1 c( S j8 z+ k$ g (SETQ TSIZE (GETREAL PRMT))" H: z" k2 U6 W& P& s$ J
(IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
2 X3 D: o% R" e1 I! C (SETVAR "TEXTSIZE" TSIZE))
7 d& i; @7 T0 ~# n' j. Y )
( i) V# c8 m) z)
: u0 s5 u; G/ A/ i6 |(PRINC)
& B. C' D# V/ R3 R3 J! A7 g(SETQ TL (/ (GETVAR "TEXTSIZE") 2))
5 l& [2 \9 r6 |# {(SETVAR "OSMODE" 0)
7 C2 k) G, M3 f9 Q(SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))! N+ J- Q; F; g$ h
(SETQ NPI (/ PI 2))! t% x. _% P' X* [1 C, [4 L
(SETQ PT4 (POLAR PT1 NPI (* 1 TL)))# F, n) b& I' I" {+ _
(SETQ PT2 (POLAR PT4 PI (* 2 TL))) i s' l l- I8 r# C% E
(SETQ PT3 (POLAR PT4 0 (* 2 TL)))
/ x. N1 v; u( Q4 V [6 n2 `(SETQ PT5 (POLAR PT4 NPI (* 5 TL)))2 X( L3 v( B) Q+ Y" x
(SETQ PT6 (POLAR PT2 NPI TL))
. c' ?3 L c: x+ @(SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
2 S- _- f8 c2 [# l3 a$ m8 I(SETQ PT8 (POLAR PT6 NPI (* 1 TL)))' g, j# R2 [9 K6 h# H: b
(SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
, u9 T; L8 z9 i& J(SETQ PT9 (POLAR PT1 pi (* 2 TL)))4 e) P' I* p5 s. C0 x0 v. S
(SETQ PT10 (POLAR PT1 0 (* 2 TL)))
! Y% C3 q; }# G" s) D4 M) {(COMMAND "COLOR" "7" "")
1 g6 s4 z! H0 X; ~$ L5 B(COMMAND "STYLE" "COTES" "tcvn3italic,vnh.shx" "" "1" "0" "n" "n" "n")
& B4 z& ~" A" ~2 e8 |; g5 H" W1 C& j(IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))# U; P2 l. W# P3 C6 B; v$ u" a
(COMMAND "COLOR" "BYLAYER" "")
2 B% i- P2 E: R0 n% f& `(COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
: h Z7 ]& L: y(COMMAND "COLOR" "BYLAYER" "")
; G* X' r8 R# }/ N; I. X(COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")" Y$ _* w) E- [) H8 s
(SETVAR "CLAYER" "0")
; N& e- z, D8 G+ S(command "ddedit" pause)" Y/ u5 U" l: V% C; o7 f; [
(COMMAND "COLOR" "BYLAYER" "")
$ F- x5 [8 N: s Y& _6 m0 F(SETVAR "CMDECHO" CMD)
" K+ Y" M8 Y1 h7 [4 T(SETVAR "CLAYER" NBC)
& X! \+ Q& X# c. M) {: y1 a(SETVAR "OSMODE" OSM), d$ j. Y4 Y" I6 I- l( j( d( N/ ~
(PRINC)
2 q7 ]+ R# t+ B' z3 J$ L)! l9 i/ d+ d0 E9 P- F" O2 A! j1 h
d7 q$ N+ y6 X2 D8 L* h2 \' _
;;; =========================== VE NET CAT CHEO (GC) =============================7 L4 p, y, }' T( G. a
. c5 V8 q* m+ V p% U8 W7 o(Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)3 e+ y8 R! y1 \ s4 o, K
(setq x (getvar "osmode"))) ]+ d ^6 }8 b9 e
(setq p1 (getpoint "First point : ")5 J: T# Q& U. |& B% N: H$ U
p2 (getpoint p1 "Second point : "))3 U; ~ R* @: a
(setq l (distance p1 p2))
) d* }2 A( ]& [- N (setq p11 (polar p1 (angle p2 p1) (/ l 5))
: ]% l) L7 F Q7 ?" k. T" v p12 (polar p2 (angle p1 p2) (/ l 5)))9 n9 j$ [: q) x, P5 Y' n! Z' e
(setq ang (angle p1 p2))/ p6 n- X b1 a1 [
(setq p3 (polar p1 ang (/ l 2.5))) p% ~, P/ R4 i* F; W l9 R
p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
$ e$ h1 `8 Y' n7 h- |+ M! ? p5 (polar p3 ang (/ l 5))
2 z( B* |" E# f2 ~' j p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
% t1 U/ m8 |' Y5 \ (setvar "osmode" 0)
9 V$ @6 J' K9 k* r5 h3 p j (command "pline" p11 p3 p4 p6 p5 p12 "")
$ K# F" I3 H/ b7 K5 H (setvar "osmode" x)0 i+ @+ X1 m6 l$ x1 W$ v$ s
)
+ k$ g/ T- M! i' I* V;----------------------------------------------------------------------------------
8 R1 C9 g) l# {7 ~& V T8 X(Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
1 D8 w5 O- T" q' ]/ X' F) L1 N pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
! f" V6 i! M$ a7 \4 ]! Z5 Y$ S/ g (setq ps1 (getpoint "\Chon diem thu nhat: "))
$ a, W* V) c: T/ J3 M8 t (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))' J6 F$ O2 h1 ?- o, ]& T, ]8 u
(setq sb 50.0 sh 200.0 se 20.0)
. R' Q6 B0 t, h: s' \ (setq ang (angle ps1 ps2)), o5 F+ e1 D+ W* p4 o7 Y
(setq pf1 (polar ps1 ang (- 0.0 se)))
& `7 I" {7 Y& \) a$ m9 @4 Y. c (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
- H, o8 f% E5 L+ j: E (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))7 e- y* Q. r" k T& M: b' j
(setq pf5 (polar pf2 ang sb))
0 X4 d. J; l; @% H3 ]+ h (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))( C S1 O; d) |& A
(setq pf6 (polar ps2 ang se))
$ ~ b0 T; S$ K1 N9 I (setvar "OSMODE" 0)
: S/ r) {) O% o6 W5 p (setvar "BLIPMODE" 0)
1 u/ T% p. w4 W$ a# J: F( S* g (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")" P" Q5 b& n g7 C; }
(setvar "OSMODE" 703)
6 H4 j" |. u( t) Y% s+ A: L v9 t( y (princ) )
" c( s, P$ R7 j! L& E! k;----------------------------------------------------------------------------------+ s" v9 W! Z/ u5 o% Z9 b
(Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6$ V3 k$ a' q7 [. ?
pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
5 S/ M+ \3 A+ k* Z0 }% ? (setq ps1 (getpoint "\Chon diem thu nhat: "))
8 [, A5 L1 q9 R$ f b# W D0 Z (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
# Q8 y+ g6 Y% Y (setq sb 100.0 sh 150.0 se 20.0)4 O& ]8 i- b9 a% N6 m. I8 z z4 D" ^# {
(setq ang (angle ps1 ps2))
f) Z! Q6 g$ N7 s (setq pf1 (polar ps1 ang (- 0.0 se)))! C$ j# o8 W2 A7 J( H
(setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))) W' G" X; n9 [. \' E4 J
(setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
}' _2 r3 l; K. p (setq pf5 (polar pf2 ang sb))
5 V2 T' O2 _, q1 K( p3 r4 m (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))( ^: d* ?9 z& {
(setq pf6 (polar ps2 ang se))
( N$ L5 f; n2 r( G4 x (setvar "OSMODE" 0)
; X9 k: T2 ]9 }( K2 J! ^ (setvar "BLIPMODE" 0)
4 I7 @% {( P2 `9 ^" K; | (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
0 {, o# m2 j/ g; Y' Z6 l1 Q, Z; J (setvar "OSMODE" 703)
3 Z5 W$ }. o7 m2 {- U' b4 x$ c (princ) ): ]$ j9 {/ ^, Q4 b2 U
;----------------------------------------------------------------------------------
: k: `1 t! u0 B) V+ p7 ]' z; Q(Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf65 g5 D5 I0 z8 z9 Z T8 }
pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
) z' [1 _. V5 M+ P (setq ps1 (getpoint "\Chon diem thu nhat: "))
, \1 d* n: |7 D (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))0 o4 i* ?. s! \* G$ w
(setq sb 100.0 sh 250.0 se 20.0)
3 y. p7 n+ s8 o5 p. l0 `# e! @ (setq ang (angle ps1 ps2))& B1 H6 J. L5 I, M% {
(setq pf1 (polar ps1 ang (- 0.0 se)))8 |; P' y% ]' B& ~* B
(setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))3 H, q- w: X& S8 S: b' C
(setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
# L; k+ G5 j# g, u (setq pf5 (polar pf2 ang sb))
& V# [. U) w( o7 \% Y (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))* a* z* R/ x% V4 z \
(setq pf6 (polar ps2 ang se))
* t& I( x# a& I- w (setvar "OSMODE" 0)7 }$ X- k: A) x9 {( ?5 u8 s/ V
(setvar "BLIPMODE" 0); D" i8 ?1 x+ `# O( v" D
(command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 ""); D5 i8 B4 J* Z. ]- H" y* q
(setvar "OSMODE" 703)
- ?8 _7 r. P9 {- `' f (princ) )
6 l7 @' ~' L9 Q: H8 X; b) W% \2 z" f* `7 \
;==================================================================================
7 e4 R& Z% ]# A" O$ A, F4 C(defun c:ang (/ ent pt1 pt2 ang)
+ a5 G! {+ ]( `* h5 `) A0 b, k (setq cmd (getvar "cmdecho"))# }# ?, U4 \/ S
(setvar "cmdecho" 1)
- ?( y, u3 |. v! X, o% Z (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
. k1 |" T1 f/ p" L7 B& F (setq ent (entsel "\nChon duong thang:"))
2 m0 _: a* {6 x6 j2 N! E/ u (if ent , u# y' Q+ K; y+ i4 ~8 r
(progn# ~4 V D3 x( ~8 F
(setq ent (entget (car ent)))
" t) S! }. i0 T$ h$ I, c (setq pt1 (cdr (assoc 10 ent)))8 h8 p2 `# b0 R+ H$ A9 F4 p' w
(setq pt2 (cdr (assoc 11 ent)))
0 S* k Z" M/ m/ N+ | (setq ang (angle pt1 pt2))
* B3 O3 H- @% Q4 a; x (setq ang (/ (* ang 180.0) pi))
4 R% W7 H8 x; {. u! U. ^1 X: x (setvar "cmdecho" 0)8 C. n/ w7 g2 l1 F+ S$ \* a5 \% s
(command "setvar" "snapang" ang)
9 G! P( T o1 B( W1 ]2 B1 o! L& v (princ "\nGoc cua truc toa do moi : ")# D# L5 B$ q" w3 c9 e' b
(princ ang)
) O7 D6 ^( [" x' s8 f: ] )
# \+ t4 I( j8 y5 r* S# u) y( ] ), k5 S$ A) V# T# k3 M
(setvar "cmdecho" cmd)7 ^) |& t3 \# _9 ?% s' u
(princ)
2 Z1 x. B0 A- j" X)4 f% P& c' m& }; u" f
;==================================================================================* x* p5 ?$ H4 B7 b5 j
;============================== KY HIEU DOI XUNG ==============================; `" Y/ d$ _) D: p S& g0 C
;==================================================================================
+ Z9 b7 l) f$ ~8 A4 J3 `( s' D; H- W" f9 n& t6 L4 Q1 k
(DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT96 I. U; O* s) M
SZ G45 G135 G90 G180 SS loi)) C) o, X8 G7 }: {" T) J: y+ v
(defun loi (s)
. o3 ?8 C& f# t( } ^4 W& P8 K (if (= s "Function cancelled")
6 u& O+ B. |$ E2 n2 B9 m9 U (princ): h- V' a1 O5 f8 @
(princ (strcat "Error:" s))3 }2 o4 Z! e8 r K
)
# t' I- x) t9 M, r y (SETVAR "CMDECHO" CMD)
/ V- J+ D% |1 ^ (SETVAR "OSMODE" OSM)/ r9 K3 l" D1 P2 j2 I! l
(SETQ *error* OLDERR)+ {1 `: r0 ^- B! K2 E3 L" l
(PRINC)
/ I$ P8 m7 C: V# z- j- v# I)
6 n- {; R" q4 Y$ o9 ^1 _( b! _+ T( l& { (SETQ CMD (GETVAR "CMDECHO"))+ [( s& @/ V2 f8 t
(SETQ OSM (GETVAR "OSMODE"))+ j- I# ?9 {" u4 t4 B; ~
(SETVAR "CMDECHO" 0)
" h6 r" l- a) L) \ (SETQ OLDERR *error*9 S) l/ G1 [5 o3 x6 y
*error* loi)
; @3 F" \* r1 b' h (SETQ SZ (GETREAL "Size <1>:"))0 Q6 A- g, a+ `4 S' b' n1 _8 z
(IF (= SZ nil) (SETQ SZ 100))
5 J' f6 _; q+ H3 @ P! f- { (SETQ G45 (/ PI 4))
( F7 O2 p+ U! K) j2 S% B( H6 k; j (SETQ G135 (* 3 (/ PI 4)))% `8 O% U6 V, e _+ b4 k: D
(SETQ G90 (- G45 (/ PI 2)))# L& S9 M# k/ h- R. h' l5 r$ U
(SETQ G180 (+ G135 (/ PI 2)))
' D {8 i7 {. U5 ?5 |$ | (SETQ PT1 (GETPOINT "\nDiem doi xung:"))/ Y7 i3 E' R0 Y8 u
(SETVAR "OSMODE" 0) d0 I8 Y- k0 ]" l2 A1 e
(SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))7 p$ C x4 z$ f1 e0 V' g# q5 J
(SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))) C. f$ ^7 d- Y7 S& E+ f
(SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
. w0 A% z# R4 |! N, \ (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))( C5 q5 Z3 |0 e7 U! e
(SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
5 o' b2 l; r# ~ (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))
% x7 }" s! x! k# p (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))& T/ X* L, f- j$ J3 n, l
(SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))4 o2 S& B" w0 G
(PRINC "\nGoc quay:")
3 t( d; g% h/ h! j+ r (SETQ SS (SSADD))
# T4 ^5 e. `: X1 C+ c; w(command "layer" "m" "Dim" "c" "" """")1 p" h4 C X( G" Z3 A$ S3 Y
(COMMAND "COLOR" "1" "")
0 ^+ v5 y4 ?6 z4 H( e n7 P (COMMAND "LINE" PT8 PT2 "")
* w% v; X1 ^* @0 h (SETQ SS (SSADD (ENTLAST) SS))! Z, p/ c% I4 k
(COMMAND "LINE" PT9 PT5 "")
$ L: e1 E- b9 K (SETQ SS (SSADD (ENTLAST) SS))! Y; |" q- [/ f( b; x2 e
(COMMAND "COLOR" "1" "")
r! Y5 w+ i8 K. h4 R3 S9 ~ (COMMAND "SOLID" PT2 PT3 PT4 "" "")5 h. z0 g* N$ O' m* e, H
(SETQ SS (SSADD (ENTLAST) SS))+ f) R% y- H) J
(COMMAND "SOLID" PT5 PT6 PT7 "" "")3 W5 I2 j7 _! K$ A
(SETQ SS (SSADD (ENTLAST) SS))
$ q; T' ~5 G5 d& R+ v3 J% i6 d$ p (COMMAND "ROTATE" SS "" PT1 PAUSE)
2 u* L3 t' r1 P& [- k(COMMAND "COLOR" "BYLAYER" "")
+ w {& f! d2 ~5 W+ ` (SETVAR "CMDECHO" CMD)
# j; N4 `- f3 y' d (SETVAR "OSMODE" OSM)
4 n9 |+ X+ G* X5 a0 `* y (SETQ *error* OLDERR)
, W9 `5 @2 |2 o# I (PRINC)! x0 a" ]% i! s1 R8 Q$ P; |
)
7 E+ ?2 P9 ^; i: g
" ?& s+ c, r# _/ S4 f;==================================================================================# d/ _: ^) p8 h) W: @
;================================= KY HIEU TRUC ===============================
3 h' I# @$ n8 O" `5 J;==================================================================================
, }. @( {8 O6 z+ g) g1 o# Y. U( C4 A4 A, [/ T
(defun C:vetruc ()) j) ^( t/ {: }) B/ `
(setq bk (getvar "USERR3"))
! B+ g8 N" }% C0 V# k8 c1 M' T(if (= bk 0)+ y0 {* L' Y/ j/ p
(progn
$ l: d! I1 S0 a (setq cont "1")
9 P5 X. h" j6 p% u3 J5 N (setvar "USERR3" 1)% p# j9 F- e& g+ u! [* d+ C0 S4 I
)
: E) C" i0 Y$ o g! X6 z (setq cont (rtos bk))
+ {# E* ~# q. A9 O" G1 O/ \2 r)
9 U- U( p' t8 f" D3 F(setq pt1 (getpoint "\n Nhap diem dat:"))
9 R4 H) S( j- G9 v(command "layer" "m" "Dim" "c" "" """")
( h7 p6 K; Z+ o8 h/ [0 d(command "osnap" "")
7 S2 v# R; A3 m4 Y) f(COMMAND "COLOR" "7" "")9 u: Y' U; ]0 A
(command "circle" pt1 150 "")8 x: }0 ^; S) i! R. l
(setq pt2 (polar pt1 0 150))1 \3 i g( X- j
(setq pt3 (polar pt1 (/ pi 1) 150))8 D1 ?8 w% _5 I7 Z
(setq pt4 (polar pt1 0 300))
5 k! D B' s) D2 N8 t y(setq pt5 (polar pt1 (/ pi 1) 300))$ c3 t! z2 h' }6 ?( r0 O
(setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
4 q! c. P5 m; Q(setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))/ I8 b7 ^! g- _, ]. _
(setq pt8 (polar pt1 (/ pi 2) 150))
* V# m g R0 ]! [2 D* o; J+ o(setq pt9 (polar pt1 (/ pi 2) 300))3 {4 w. ~4 k5 Z, |' h
(setq pt10 (polar pt1 0 150))0 B2 S# Y7 O' C8 |) J3 [8 P4 `
(setq pt11 (polar pt1 (/ pi 4) 150))+ c9 H( e# Q# z0 u3 f( j! ~
(COMMAND "COLOR" "BYLAYER" "")8 d0 ?: J. v% {4 U5 C$ ^
(command "line" pt2 pt4 "")
' L& K! f2 Q) O! f }: f) F' j(command "line" pt6 pt7 "")4 ?0 U4 S r5 Y8 N
(command "line" pt3 pt5 "")
! f. S5 ]/ ]" F4 N* _) L. O( X(command "line" pt8 pt9 "")
7 y' C* }- I2 x2 B(setq dk (strcat "\n Size:<"cont">"))
' g& d" _' p( L% _1 ~(setq bk (getreal dk))
, Y3 G- C0 {, `$ u' A1 C(if (= bk nil)
9 J1 Z e8 K- n3 i6 U8 r* r (progn$ o* Z$ M$ h& K
(setq bk (getvar "USERR3"))5 H# k' w& j) ~
), ~- }: @# F' V9 q; x' ?
(setvar "USERR3" bk)
6 A& b/ a3 S) ]+ y3 ~ k4 m: T" a )- Q) n4 ]2 B M/ U3 L
(command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")8 R8 i4 \. C# a5 p3 u* ^
(COMMAND "COLOR" "7" "")/ G; L6 x2 i N! z
(COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")3 \* E* d% X; j$ B/ c: b* h
(command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
' i% I: m: Q5 Q. N" T [(COMMAND "COLOR" "BYLAYER" "")
: O: \: I+ c2 R- b% n; \)3 p5 e+ u6 Y9 E2 [2 M" e1 I; V' u P
* V, n# t- M4 Z! l
;=====================================================================& a8 S( x7 c% U; |2 P' O
;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.): ?( W5 o" N" D$ ?- I3 ?+ u
;
' J: x% `5 ^# T0 }9 F- @;Jeffery P Sanders" @$ r, `, `3 G1 _+ [, \
;
5 X% }2 y" s/ ` D(defun C:CA(/ en enlist tx newtx cnt tp asc note)
: o; f1 e5 b. e (setvar "cmdecho" 0)
) {- S# D/ }" N! m& f! C (if(setq en(entsel))
: E1 F% a/ o3 O$ d# ] (progn
8 I3 ~2 k# M& n) \4 X2 l1 I (setq enlist(entget(car en))). i$ i/ O$ ` I
(if(= "TEXT"(cdr(assoc 0 enlist)))" d' r0 v- P# O
(progn- M# |: A5 h& u; E" I- m+ B/ q X
(setq tx(cdr(assoc 1 enlist))
" v- H" o8 ~' ?5 H newtx "" cnt(strlen tx)0 S( K' u i$ p7 Y" Y/ N- I2 V
note "\n...CASE Reversed. \n "
0 u( ]' Z3 {# M% v )
# y2 c/ S0 `: r (while (> cnt 0)% m+ E" G1 t y/ l. {
(setq tp(substr tx cnt 1))
5 o9 Y6 y6 d' o! X- ~- G (setq asc(ascii tp))! F5 c# f+ s! }6 C% l* t9 V! r |
(if (> asc 96)
( A* X2 K; L: x+ @; m5 Q3 p) L& R5 [ (setq tp(strcase tp))* R: Z" F& Y, J8 Q+ k8 e
(setq tp(strcase tp T))
! ^5 K4 }- \% i )
& m- c, N$ U- ?: J; Z! ^" @# _ (setq newtx(strcat tp newtx))3 M6 E# l" b0 N$ e2 v
(setq cnt(- cnt 1))- t3 @7 j* W8 m
)5 d( F" `1 D$ n
(setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))4 P1 g6 y0 ?' a" j
(entmod enlist)! E$ \. G' R1 V4 n+ V3 P3 L3 h5 M
)1 `9 H5 c1 Q- r _& e3 M( ]
(setq note "\n....Text Only Please. \n ")# a& w. w. u# c( @6 r
): z0 |. I: X" `( L& D; c
)
1 D, n5 }! A6 H5 V1 c. t Z (setq note "\n....Nothing Selected. \n ")
# S( s8 [ @2 f- C6 \6 I' n )* ^ \7 A/ o. O# l _, t
(setvar "cmdecho" 1)' |( D! o2 w' s" z9 a
(princ note)9 T, m0 _$ o: I- g! U! ^+ j, ^
(princ)
9 v9 _+ J5 f0 k7 G* t)7 l+ w2 o: Y$ t J+ J3 \
+ m" j; v* G$ ~0 k0 g9 h( R" s
;=====================================================================" ~7 F7 v% ]; H7 G, S8 `) R
;==================== NEW TEXT STYLE UPDATE ==========================
, _8 B! s3 j+ r2 r, N+ v7 A;=====================================================================
! r( a, [( W; \! p4 U T, t! ?1 l" m7 r! }
(defun c:nS (/ tdt ssdt sodt index)4 x, A( p: | Z9 ?. v, K5 H
(defun ObjName (ssdt /)
- Y4 @7 A3 x* G(cdr (assoc '0 (entget ssdt)))
# m' w& y) ?& @3 M9 ^2 g)+ S3 d# G" U" n' n2 n9 g' M
(defun MoPL (ssdt /)
) O, d& x; l7 @, h$ Q$ R(= (cdr (assoc '70 (entget ssdt))) 0)
; |* h" {5 k* n' B( x. @)* L! M O# [9 v4 b4 e9 `4 F* C
(defun NoiPL (ssdt /)
( a8 W/ o: q0 M) Y3 B* D+ B6 ]( i1 L(if (MoPL ssdt)
* m+ Q7 k- r* r1 m2 S(command ".PEDIT" ssdt "J" "All" "" "X")3 I7 e8 k6 [" z; C/ @2 M
); T* f+ C0 M0 [4 Q+ t" N& i
)& p( s: L) z/ O8 g
(defun NoiLC (ssdt /), e- J+ Y- n/ o4 N1 N6 S4 Q! B
(command ".PEDIT" ssdt "Y" "J" "All" "" "X"), z G; f- j" |! x/ R9 I
)/ f9 A* f: [, v+ ~- S1 U3 e% Y
(setq
) `8 q' e! w, S7 ttdt (ssget)
, Y0 V- e/ Q" N) X+ c: xsodt (sslength tdt)8 n1 |8 V8 c1 P% `; {. y
index 0- I: G, P1 E G' k& h
)
. V+ R0 K+ v. W, I# @(repeat sodt
8 m) D7 c) I4 x4 I8 j. e(setq
5 j7 i" c, q- W- E" {ssdt (ssname tdt index)3 a% U9 L1 J1 }* S3 v
index (1+ index)8 R, U8 I' O: E/ X
)- }6 `0 t2 ^" t7 h2 h
(if (or (= (Objname ssdt) "LWPOLYLINE")
+ P6 B* K# v; q- A: d T(= (Objname ssdt) "POLYLINE")8 r9 d9 ]* S, v3 p% G5 q1 e T
)
8 M$ S5 ?+ N6 X1 T$ A(NoiPL ssdt)
. P3 l! V. h9 k% x& g)
. Y, h1 f+ E) Y$ }9 j(if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
, @( [: B1 {2 x7 r1 _2 R' f) g(NoiLC ssdt)
3 O) F" m9 h q D0 [" }) O$ ~)6 j7 c: K8 W( X1 h& H! _
)3 ^% B: }$ @7 t: c
(princ)3 e$ p& U& u( a1 X+ ^. R
)& @ {$ W0 s, g- W$ a# Q8 g+ V# C Z
; {" |! g" w! z% G4 _0 l;=====================================================================, T$ M. u8 p: Q- T; Q7 _
;;; AREAM.LSP1 ?5 m6 Z* I1 N
;;; Function: Calculates the total area of selected objects
2 S/ a5 i( R# }- Y;;; By Jimmy Bergmark% j/ z. |3 ^' i1 i0 W4 G* v9 z' r
;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved; @& l8 Q+ Q( \( y: D8 n
;;; Tested on AutoCAD 2000
+ L8 _- v0 j0 I) }* ~+ Y5 T q0 \$ N( }% I* g0 Y& K7 `: N" _7 E; D
(defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)" v7 ^4 e+ [- _1 b
(defun errexit (s)$ l, J& _# T5 M c
(restore); M$ c' b3 P0 g
)
2 r i6 i+ k% F/ m6 _' w$ `! A' m2 t$ Q F: p2 Y; C) _6 {; B8 q
(defun undox () [- }. C! |/ w0 g/ ]
(command "._undo" "_E")$ [2 W) r( a- H0 S8 ^( Q7 B
(setvar "cmdecho" oldcmdecho)+ d. _3 z" E: J( W1 ?5 Z6 V. J
(setq *error* olderr)# d" x: `+ A9 ` x* G) \8 Z
(princ)
4 i& Y6 @& a% u0 v; } )
$ `/ Q' ?1 |( d M: y/ H" D
3 H2 a/ o2 {! c' \8 J0 ` (setq olderr *error*
6 }9 d5 X! Y9 ]2 P. h restore undox
2 _( J* z5 ~5 ^; j9 C" u *error* errexit/ V# A9 M+ _- Q; \ B; i
)9 M* T- z9 \7 V
(setq oldcmdecho (getvar "cmdecho"))
' x- r( j! |. g( _ C/ c' K (setvar "cmdecho" 0)
3 C4 \* a5 o) {" c/ N$ } (command "._UNDO" "_BE")
' W! s% l2 T. C- G4 f. w (if (setq ss1 (ssget '((-4 . "<OR")
2 T+ M- f" ]; u( l (0 . "POLYLINE")
4 S; A( ^; i/ L0 [* l* p1 A (0 . "LWPOLYLINE")
0 j) n/ u2 v" m2 R( V5 X (0 . "CIRCLE")
' V& g1 Q% [& M$ ]9 c6 F0 x" j/ w3 F% p (0 . "ELLIPSE")
/ W7 J, ?/ B7 u4 x: s' y- K (0 . "SPLINE")
' N( @; g$ C: v% g# k1 v5 k (0 . "REGION")4 s/ T* T" {% [! R8 v
(-4 . "OR>")2 _2 L$ S. {4 V. D0 s
)
! n1 k. @3 O2 V z' h l9 P/ i )6 x2 f! H0 d5 H# M8 H
)
, ~6 M8 F) Z, D% @9 C: h (progn
) V# M1 L4 `" e. B. J% S g/ z# M (setq nr 0)
' ^% T* G8 y! U9 f& c8 H" X (setq tot_area 0.0)9 X3 |% n) k2 m) a
(setq en (ssname ss1 nr))
. C- X% r! o& B# \7 r o (while en! f/ j. ]- \0 B$ q* C. C5 b% p
(command "._area" "_O" en)6 s& Q' ^1 ?% U. z9 a
(setq tot_area (+ tot_area (getvar "area")))
5 A I+ P7 E$ h* z (setq nr (1+ nr))6 V& F# n& j1 |; Y
(setq en (ssname ss1 nr))
8 `3 h' g. e( ]- O+ [. O )
) _( ^8 r f1 ?4 ?7 G (princ "\nTotal Area = ")4 E; _3 o1 v/ j6 _
(princ tot_area)
. n2 T. Q- M1 w )* Y% q [# x' A4 b% ^/ F
)- W8 R. {) c8 H0 {
(restore)9 w& M; j- H$ L3 T) K
)! L/ |2 A! r- m2 A2 i! u3 P1 u$ ~
! ` j2 I( j ~+ w$ G2 i* V;=====================================================================- k5 s6 V7 Q. \
;;; By Jimmy Bergmark
) _8 N( p, N) C/ d+ K% q;;; Copyright (C) 2008 JTB World, All Rights Reserved" H7 n) m( k3 A8 E3 u* c: B
;;;7 A- ?) J+ X0 A9 w4 J0 L
;;; Created: 2008-03-31# S6 ~" \0 x0 G4 G
;;;" a2 c3 V$ B$ w" s8 R. j
;;; Convert Attribute definitions to mtext" c4 b; g' L7 [' O0 z8 U
;;;& s5 ^5 p8 @6 L) X' a
$ Q9 G1 O! {& [' a. E, L! l6 \+ j
(defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)- J7 Q+ y" o i1 ]
(setq eset1 (ssget (list (cons 0 "ATTDEF")))! L4 F2 \! n$ s7 S: s" j+ l
blkcnt 0
# }6 K% e; d2 x) ~ )
7 u' f! a$ n$ A8 ^# P! l# K& f9 V4 l9 o+ q# p
(if eset1# I9 W1 G/ ?: Y5 h+ `
(while (<= blkcnt (- (sslength eset1) 1))
$ R; I# d) ^& G (setq en (ssname eset1 blkcnt); I) t2 n: C6 b% M& n
enlist (entget en)9 ?4 i8 T5 ~( d W9 \
ht (cdr (assoc 40 enlist))
/ O" j. E; ]8 P1 r pnt (assoc 10 enlist)
2 T# T- v1 F* [7 d4 H6 T( M- L0 i pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt); T4 F3 E9 G, Y+ n8 p5 |+ y: N+ V$ j
space (cdr (assoc 67 enlist))
0 c: J" ]; k0 D) i0 N )
' V N5 G) O% t (setq vl (list* g- w/ t' L1 w
(cons 0 "MTEXT")
! R% `7 N6 k. v- } (cons 100 "AcDbEntity")
- y) f# v! {1 ]# V8 s- b (cons 100 "AcDbMText")
$ d8 l9 R8 F( A0 ?; C (assoc 7 enlist)
7 t2 V; g7 Z3 Y3 N' t5 J5 y) N (assoc 8 enlist)
, x: V, U7 f& W4 L8 J9 x0 Q) X pnt
# P4 S& N9 `9 P) u2 l W (assoc 40 enlist)
9 q8 Y8 M& U0 o1 h (cond ((assoc 62 enlist))
0 P8 U: c# l7 D/ `! E; x ((cons 62 256))5 \% R( y# ] I2 W _+ T0 o( K: I
)
; h. G. \1 ?2 x8 A (cons 1 (cdr (assoc 2 enlist)))
$ E$ m9 N2 _. Y( N (if (= space nil); f5 n4 J% ?# E0 X6 d/ n$ R
(cons 67 0)7 K2 x$ t# D( j; |( h( l
(cons 67 space)1 E3 i! y! A2 q; F
)
* c$ A) d1 A% W )
2 ?) i% J, o9 E7 `+ J- e )! W" e- m+ A+ I) a
(entdel en)
8 |' d$ [; A9 D3 i9 V (entmake vl)
) ], x5 s+ t) z (setq blkcnt (1+ blkcnt))
- ]2 ^ M' a* t8 q' ?' h! m! T )
8 O/ z7 E2 _/ c& D: C: }1 N4 C. Y )
x+ Y) M Q3 e2 N% v4 H6 | N)
. r& ^- G. x, H* z2 e
$ t( {. ]- w9 V;=====================================================================
& k O( G% Y% F( `# o) |+ |
) I+ m" l5 V% C1 I- h$ @$ J% ](defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
7 z/ C' [ ^- {: f1 t; Khoi dau cua chuong trinh
. ~7 r4 j0 j2 Y4 u' _(princ "\nCopy Inteligent...\n")
% x9 p9 T5 u6 |7 k, c% p( b3 G4 d$ k( T(setq luuecho (getvar "cmdecho")/ U- u% Q& ]5 j9 H% [. A
luu *error*+ H6 K: n3 ]2 v
*error* ketthuc
' k- w! x1 e; E- ~ cumdt (ssget)
2 w# j) i: Q6 l; E# ~ dodai (sslength cumdt)
" K% m0 p% y/ I" x, b3 J" Q9 M goc (getpoint "\nSelect base point:")/ O& e$ ^0 L5 l3 B
thoat nil; a/ j6 |! G% x# ]# |0 t
dem 0; E/ \; k4 G/ t i
textxl nil
! |1 T' ]( T" ^8 w, H# C0 y);5 n0 R1 X. S# F% K
(setvar "cmdecho" 0)
7 d: Q. O: E: ^2 h; Loc ra duoc ong text de xu ly& t6 K- F1 O: e5 K& J* g8 {) p
(while (and (= thoat nil)
/ \0 D9 q" c; }; P- Z% ]2 g (< dem dodai)' n; g- o7 x$ f2 O W# P3 ?" f
). z, ]! s9 d( I! A. W/ \: N& \
(setq ten (ssname cumdt dem) m0 w' h* b C5 E# [- b x
dem (1+ dem)
' `" L0 p+ Q: K2 ] doituong (entget ten)( S" n1 D0 R7 A
kieu (cdr (assoc 0 doituong)) : d& ]9 n2 L' p6 F
): k6 [) Q4 S) N# q/ A) h
# T. R) }3 U4 y H' y# u (if (or (= kieu "TEXT")
2 \5 p) @6 Y5 I( L8 H, f (= kieu "MTEXT")
8 Q7 B- F3 |1 k1 h )2 i( g1 o( {9 H
(setq thoat T+ e7 \' T+ W3 w: W
textxl (cdr (assoc 1 doituong))
" Z% ~. y' J8 K2 [" r ), @. c9 F" @' t, c% i4 k. }' \% a
)7 k$ x1 @# B$ A o S
);
0 Q# `' n2 D5 t" y+ L(while T . b# v$ O. f9 E& i
(setq toi (getpoint "\nSelect next point: " goc)
; J& n. ^" d& t) Z2 {* f vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc))): @& K# K, G9 E7 _1 h
dem 0
, D6 j% h: e8 s) U7 m B# y: o8 X
(while (< dem dodai)2 `2 m. ] Z# H9 L. r* w5 h/ Z
(setq ten (ssname cumdt dem)
2 n/ J7 B0 O+ A" j/ I' B1 e, n# U9 y dem (1+ dem)
2 F& D' v; k ~- `) X% _! F$ J doituong (entget ten)) D* m/ @3 j' z1 T
kieu (cdr (assoc 0 doituong)) $ d" C- r: V2 q9 C! ]
)& @' f- Z8 S6 l; l' l
U/ k! F$ _( l- b1 e+ c
(if (or (= kieu "TEXT")
1 Y" N. o: Q" @% X$ Y, T (= kieu "MTEXT")
8 r; W8 ^7 H8 {+ ~+ a$ L )
$ R& i6 D. Q. I! k- O0 X1 W (doitext ten)
, u0 Q9 Y' u$ J9 f (copy_dt ten), V+ m- f6 j- T( ~
+ U: k% G9 b( k, c7 R );if
( n' ?* j- l& s. s4 H+ U)
+ ] u4 `; w: v) ~4 t# b8 });while
5 e0 O2 n; H% @8 B(ketthuc); t2 h( Z6 [6 X9 l
);defun* V5 [, a8 Y% D/ e0 ^$ B4 T; C
(princ)
8 X+ M- ]. v- k, K# c. r% e+ ~! T# I; d) \) `
;=====================================================================4 G6 {8 {4 B7 I
;;; By Jimmy Bergmark/ _7 \; \3 l# m& v* a1 A8 e
;;; Copyright (C) 2008 JTB World, All Rights Reserved
) G- e- N- ?# X9 {7 \;;;: I" o$ M H) p: Q/ C* @
;;; Created: 2008-03-31
5 w. T4 t- P9 c. P" N;;;. y, y' W' t: c- g
;;; Convert Attribute definitions to text1 w# ~2 Y2 o8 \0 f
;;;1 I2 h% c% W7 [ ^
& L2 \/ B* ?7 F6 |4 n; l- @6 Z. J6 L
(defun c:ATT (/ eset1 blkcnt en enlist vl space); z7 {6 Y t# D
(setq eset1 (ssget (list (cons 0 "ATTDEF")))3 `4 b. D# v9 j; u5 U- g
blkcnt 0
3 C O* C- O2 A2 Z. k5 N: f )! ]7 {: i7 J, R1 r$ W' ]% J
5 t5 j$ {# q* q2 q0 ` (if eset1- d! R# A3 J6 ^& }' ?/ f
(while (<= blkcnt (- (sslength eset1) 1))# M# ]3 |, ^4 Q
(setq en (ssname eset1 blkcnt)* ]; ?: e4 ~* r' w
enlist (entget en)1 K) `3 U/ H+ }0 u7 N4 P* h
space (cdr (assoc 67 enlist))
( w( {# C/ y. m/ F )
; d9 h2 L. }/ `( P& @7 U (setq vl (list: V( u! y- `* N) `9 \4 D
(cons 0 "TEXT")8 O% Z. P% Z M6 X
(cons 100 "AcDbEntity")
* s; \4 X0 C/ ^8 [7 q6 } (cons 100 "AcDbText")2 L* n. V+ b B1 m+ A q, p3 e
(assoc 7 enlist)
U* q# {. P4 A. l. ` c* e' u$ N8 ^ (assoc 8 enlist)' L- }* ~: o3 n
(assoc 10 enlist)
% x9 d$ g |7 g* K (assoc 40 enlist)) p4 N; |. o) V: `. v/ O
(cond ((assoc 62 enlist))
1 b( b7 I- y# b X+ K. S8 g2 v ((cons 62 256))
/ P8 U! L! m# v1 q )+ W$ ]+ F/ n- G9 B
(cons 1 (cdr (assoc 2 enlist)))
$ ^0 T) M: Q) ]3 M0 B# E4 D! ^ (if (= space nil)
( k+ {2 y& n# o (cons 67 0)1 G5 c( O3 T( v) b X
(cons 67 space)
; [' W: U3 N! g2 D$ x$ N4 X )
; U# T/ N" \8 j )& _3 e0 E- V3 L3 v9 z8 i
)% _% s0 _+ {; J( R9 M
(entdel en)
2 k" ?; V# K! B+ P4 ~ (entmake vl)
& C7 u+ L; e9 _; |5 ]: m! { (setq blkcnt (1+ blkcnt))! v6 q+ j1 l0 H
)1 W3 K$ j) B; [4 r* V
)
9 h |2 c1 j" v' W0 })
, v* |5 ~2 e6 ]' A;=====================================================================
$ ]. D) z, ^, N$ u9 h) [;============================ Doi Truc ===============================3 ? |9 P+ A2 Q* C, I
;=====================================================================" Q5 Y- i6 E2 N
, j2 o; `. y& J5 Y" T; ~
;=====================================================================% D! ]( P: q9 v
;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
9 i I; M! x5 Z, m. W' ^;======================== Tran Ngoc Thang ============================( E, `+ b1 L( Q1 J5 x, Y3 ?
(defun c:ga1 ()8 i+ a0 G2 Q: y" Q0 P% C- V
(setq a (getpoint "\nChon diem: "))3 s" b8 |- F- y4 [6 t# [* v% Z; O
(setq b (getpoint a"\nChon diem: "))" r; g3 O( ^" R. O% j
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 j" Q5 Y0 _# j+ y
(command ".circle" c a)0 s+ r6 M5 }+ {- I& _
(command ".line" a c "")
. Q9 X; ~: F4 h) W Y$ n(command ".array" "last" "" "p" c "1" "" "")
) T# G" m; _; Q. ?; I) X(princ))
8 J; i( l; W6 J6 G( {& ?9 Y2 N' I0 ]
(defun c:ga3 ()% ?! n9 `$ K+ U! h' U
(setq a (getpoint "\nChon diem: "))9 e& m) c. W$ H+ \8 B7 Y, y6 y
(setq b (getpoint a"\nChon diem: "))
& Z1 E& z* F- Q) z(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% w# v6 J, S# m9 [& j# U
(command ".circle" c a)8 v5 y8 _" B) b
(command ".line" a c "")3 q7 E5 q# ^, S ~/ H. \5 s
(command ".array" "last" "" "p" c "3" "" "")) x7 B* o) T i+ U4 p- j% S
(princ))0 P4 z* Z* g8 P" Q& L; o
; B# ^& L x& j6 q/ \% B4 U# s
(defun c:ga5 ()2 N& w3 P$ Z$ R$ |" f: g
(setq a (getpoint "\nChon diem: "))
7 h9 ?- a1 U; h6 g/ T! X m(setq b (getpoint a"\nChon diem: "))
' K; l5 g1 `, M(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# @: ?& D, g$ _; e) C(command ".circle" c a)9 M2 S- R7 G8 Y# d7 ~
(command ".line" a c "")
8 R4 m$ v8 X( K: W p% a4 }(command ".array" "last" "" "p" c "5" "" "")
8 z) G1 E; p. z/ h1 a3 o( e(princ))
2 b; e5 G1 P1 w- G* H4 a4 Y' Y
) l* M3 l# I4 I ]9 Z. ]) X(defun c:ga7 (). J/ r) s+ l& A9 E- G3 M- j8 R' v
(setq a (getpoint "\nChon diem: "))
# d! W$ i' x! C0 J! f5 x(setq b (getpoint a"\nChon diem: "))$ T3 M. _3 L- ^. O7 ?4 e
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 z7 Z0 A" S4 v( [+ x(command ".circle" c a)
/ ?/ Q: Q2 @8 }+ I* O(command ".line" a c "")
3 ~6 G) ^7 F/ Q( ?" }' E/ p% K(command ".array" "last" "" "p" c "7" "" "")) t% m1 t$ X3 C
(princ)); @/ [$ @( J: E. w& n
- N/ w1 |& l5 F(defun c:ga9 ()
, @; v0 b1 z- R(setq a (getpoint "\nChon diem: "))% F B) H- r$ _3 k# ?. s
(setq b (getpoint a"\nChon diem: "))" {2 Y3 A i0 L: E
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- p# H6 T, E* `) x2 v
(command ".circle" c a)& O% D$ {6 R+ t* y K
(command ".line" a c "")
& w& o* O( U; ^/ e# P) e* _(command ".array" "last" "" "p" c "9" "" "")8 S; Z; D" e) P7 h. p3 r$ o
(princ)), I3 n/ Y3 h7 p. k5 Q
6 K( D1 \- X8 M/ \5 p; Y(defun c:ga11 ()- H8 A- T" [9 V/ U8 h1 ^
(setq a (getpoint "\nChon diem: "))7 E' L& @9 k, q1 r5 Z. c/ u3 e
(setq b (getpoint a"\nChon diem: "))/ J( L7 E; A) ?* q; O& i9 H
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# k) |6 H4 M( l! d; q6 p- P(command ".circle" c a)
4 N0 y: |, x& S2 L) U(command ".line" a c "")5 m$ A6 M& Z% y2 Z3 o7 A1 `; @6 f
(command ".array" "last" "" "p" c "11" "" "")& S# x) z- \! [: s8 L0 }
(princ))4 Q" ^) k" T# L* V
, x4 F# s% n! w- a7 u5 W) u
(defun c:ga13 ()0 I- X i `' A- R/ t
(setq a (getpoint "\nChon diem: "))
8 ? E! O" d3 M4 f" H(setq b (getpoint a"\nChon diem: "))
0 U3 N9 q* U! v(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 I$ n" G T; k, _! T
(command ".circle" c a)
+ R, a# w- o0 ]; G% ^7 {8 z(command ".line" a c "")
, O, } ?; m& Y5 v- |1 x& E8 Z0 Z/ u(command ".array" "last" "" "p" c "13" "" "")
& C* ^ z. i5 S(princ))
9 i9 t! \3 r$ Z8 W1 C0 e! w; Z6 x
$ @8 c! b6 x& S1 }% K! \(defun c:ga15 ()
: ^. X( C% d2 Z9 | f(setq a (getpoint "\nChon diem: "))
6 {9 S5 n9 L6 M8 t* e$ b) A(setq b (getpoint a"\nChon diem: ")). u# z2 O9 G8 @% J
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" h9 m. G& e3 \$ E(command ".circle" c a): A" _6 L" R; m
(command ".line" a c "")
' K4 @8 e+ V- ?(command ".array" "last" "" "p" c "15" "" "")
1 y: x' s6 |8 Z2 D, q4 q(princ))
( D! l/ E" t" t& D# w) z
2 }( x. Z* {: z, T+ h: e1 {(defun c:ga17 ()
% ~& E+ U' L6 N$ F(setq a (getpoint "\nChon diem: "))
0 U4 c* e, q3 T( s(setq b (getpoint a"\nChon diem: "))
) m1 B+ }2 ~! S& }(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 c z5 M3 y! u: e5 W& v(command ".circle" c a)8 v9 t3 Z) N& K
(command ".line" a c "")
- g! \% h) I8 ]& t7 W(command ".array" "last" "" "p" c "17" "" "")% W8 F- f" G, E! F4 n
(princ))
) f& ~+ O7 e6 n8 b- }& @! u. D6 L" e H% W; v7 P4 D! \' }& |
(defun c:ga19 ()
* i2 h% d& Z2 Q4 F(setq a (getpoint "\nChon diem: "))
" `* z; u: t0 R& k( ~& I* w4 j! N(setq b (getpoint a"\nChon diem: "))
y8 v& `, h- G& ?# \(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ q3 C: T3 z; P2 Z% [8 {& F3 ~
(command ".circle" c a)
l' ^- o- S( {! Y9 e6 @(command ".line" a c "")/ D% s6 }- d+ u4 U+ a
(command ".array" "last" "" "p" c "19" "" "")
! r: w6 U: _) X(princ))! U4 f G' r2 p1 b. v" P+ ~
+ F+ W% n* Y+ J& f0 E( R+ E1 _% W& l# i
;=====================================================================3 L9 P" M3 J3 K1 A
;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
C6 T! B6 F* J- r& u;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
* Q5 w. c* V* b. c; a4 O& B(defun c:ga2 ()
1 {" H1 H* R2 H6 r(setq a (getpoint "\nChon diem: ")) s; v5 D. O( g2 ~: r
(setq b (getpoint a"\nChon diem: "))! Y: C! p4 A8 c
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 ]7 }! D. s, D- \ |2 D% K(command ".line" a c "")
" f% V$ W. [/ Y% M+ C(command ".array" "last" "" "p" c "2" "" "")
/ ]. }8 c7 l) j: v% M# M(command ".circle" c a)- Y* |9 E& `$ [' G
(princ))
4 j" A% _ x/ t, U3 M/ {
: K) s5 x4 |( R/ A: K2 J(defun c:ga4 ()
/ o5 I) h: _9 E7 @(setq a (getpoint "\nChon diem: "))
5 U0 @* t& n6 Q(setq b (getpoint a"\nChon diem: "))
* r* u$ W6 U% L4 U$ ~- c(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ v V( ]3 ]9 {
(command ".line" a c "")6 [) @$ Z6 v, g3 D1 ^
(command ".array" "last" "" "p" c "4" "" "")$ a! G6 |+ Y# H' x6 z# X
(command ".circle" c a)! m& J+ ?( _% x( x/ Z/ T
(princ))- u; g1 A0 h- U) \( w" }. Z
7 c* W. J: S& p* E(defun c:ga6 ()
3 f" k R2 | h+ }(setq a (getpoint "\nChon diem: "))( r! }) {) y" \& Q7 v1 K( w! g
(setq b (getpoint a"\nChon diem: "))
* N* j/ h2 A* p$ r(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* X0 n! Q* b! F( h( l7 o3 U
(command ".line" a c "")
& c, T( @$ {/ }9 @( a% U- u' d(command ".array" "last" "" "p" c "6" "" "")8 f2 U$ L& ]2 h9 {
(command ".circle" c a)( ?5 ~5 u1 _. a3 J2 y
(princ))
* ~# B# ~! {/ K3 `6 q: _
; c( F8 ?% A; M4 X(defun c:ga8 ()0 g, U" P7 `' Q
(setq a (getpoint "\nChon diem: "))
) i% m6 I0 c7 S/ C1 g9 u(setq b (getpoint a"\nChon diem: "))3 O& D6 }( h( k3 b$ g3 c2 l
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 d1 C/ W1 z/ \. t
(command ".line" a c "")* P. f& a5 T- `$ V/ G' }$ E0 {
(command ".array" "last" "" "p" c "8" "" "")# U! o% U0 L5 b' Q; L4 [
(command ".circle" c a)
2 R6 V! z$ ~' _! {(princ))9 T9 h$ {8 {% A, l9 U
. X) r9 N: e9 t, z& `) |: A
(defun c:ga10 ()5 A0 H6 w2 F" [' N1 x* D
(setq a (getpoint "\nChon diem: "))
' G, d& P/ k& z* a7 m( `5 N(setq b (getpoint a"\nChon diem: "))
3 M( t) F3 d* ?& p! g3 ?5 e- s(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- ?" F" _: M5 W5 a7 j. I) f* d5 G1 B
(command ".line" a c "")$ W- Q0 i3 W7 x P
(command ".array" "last" "" "p" c "10" "" "")
/ Q( X- Y5 x% Q- x* o8 l(command ".circle" c a)
* R1 \* d6 N3 a/ r(princ))
2 L$ u) v. @2 W
: o6 C0 W( T/ G3 L& o, K' v(defun c:ga12 ()
/ {2 A# J9 d2 z+ w- a9 ~(setq a (getpoint "\nChon diem: "))5 s4 \. s9 ?: T# `( d" O
(setq b (getpoint a"\nChon diem: "))* l# M: B2 d+ t4 R7 Z, j, v P
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 u: K; X7 p: X: d1 q& e) M+ S(command ".line" a c "")/ a2 M/ ~/ n6 `2 E
(command ".array" "last" "" "p" c "12" "" "")3 G) i- G4 E$ W6 c" b7 i
(command ".circle" c a)7 \) ~2 d. D0 M4 G3 c
(princ))
& k0 o+ v& E/ d) E1 z
) C% c# v0 }8 c# o* q7 v# o$ }(defun c:ga14 ()
) _1 c0 C% t/ q8 r0 [7 y+ L(setq a (getpoint "\nChon diem: "))0 H8 Z; v( H: A0 Z& U$ ]
(setq b (getpoint a"\nChon diem: "))
& w, Q c0 F; G! g6 o(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), g$ t8 ~% ?, |* u# `- t
(command ".line" a c "")& Z! F, a/ T0 o
(command ".array" "last" "" "p" c "14" "" "")
+ T# d$ S [: k(command ".circle" c a)( @* L6 ], ^8 ~ y* X$ v
(princ))
; S$ @" s5 H+ d6 t/ S8 [) v; J, w4 P4 I) i% Y
(defun c:ga16 ()
# u, O0 i' I: V(setq a (getpoint "\nChon diem: "))
( |/ @7 Q8 C! w(setq b (getpoint a"\nChon diem: "))
7 w7 w1 ~0 q5 i6 t0 v- W; v& h(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 ]6 l. ?0 T" N8 J0 K
(command ".line" a c "")
* q. e' P' F" s0 O& k(command ".array" "last" "" "p" c "16" "" "")
/ B5 U: c7 |+ n5 ~4 v(command ".circle" c a). ^( Z6 D% @( ]1 i. Z
(princ)), k0 u/ H# Z$ g- E
" b- f- n" N8 T* B# p% T& a(defun c:ga18 ()! D" X. O7 u* u6 G
(setq a (getpoint "\nChon diem: "))" b- m: w4 d' n+ s7 @: Q3 G
(setq b (getpoint a"\nChon diem: "))1 H7 |( j" D; m* K, z1 b: m0 z
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))7 H; A E V7 F0 B6 I! |# b
(command ".line" a c "")
! P z4 d9 Q+ W(command ".array" "last" "" "p" c "18" "" "")
3 G; v! m! t+ g3 k$ u' q0 Q(command ".circle" c a), L. o' }" s5 n! h7 Y
(princ)). O6 v6 q' y3 ]9 |! v9 l8 ^
0 |( m9 c2 s# B3 ~4 `* `% W5 N ]
(defun c:ga20 ()1 n/ q7 O- @; A ]* Z
(setq a (getpoint "\nChon diem: "))7 L7 i/ r0 `1 j2 o& g0 _0 J4 Z
(setq b (getpoint a"\nChon diem: "))
- { G1 [# `8 p( r: Q6 G1 ]/ I" ~(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% x* A' r, Q. q5 G7 V3 r
(command ".line" a c "")& H: c7 v+ B/ N! G& Y( _ z9 Y* u
(command ".array" "last" "" "p" c "20" "" "")* [: m* w! c8 ]5 }& ?
(command ".circle" c a)
5 M" K) L" D# g# @+ k+ G) q(princ))
* r+ @) `5 h, O4 k) p/ p& N7 D
/ e+ i1 ^/ u. Z) Z/ l+ k$ @* f" s: Z4 B
4 O. g% u y3 S% N0 j
;=====================================================================' Y, c# `* i2 |* o" f' B* y
;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============- ?* c y/ ]; D1 J5 I% D$ D4 B
;========================== 06-11-2016 ~ 18h00 =======================5 B6 N. M9 ~! b5 q1 j: i
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================" h! |; v3 n# l
(defun c:ga ()2 I& o- d/ p/ k1 s; p& W
(setq a (getpoint "\nChon diem: "))
- k' i1 R) e: c( m! c5 ^(setq b (getpoint a"\nChon diem: "))
5 ^. ^* c# H6 i1 i6 m1 H: o(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 d! F6 w, y+ g- ^1 U- C. }" g
(command ".circle" c a)- R$ ?: h- I+ [* j! X n
(command ".line" a c "")" l( {; X: r; O8 t6 q) N& I0 F
(command ".array" "last" "" "p" c "NUM" "" "")
2 {6 }8 D! ^- o @% n1 H(princ))
7 g" d6 T/ l3 ~7 F z! {1 n. A' |9 D6 a2 q* [6 i
;=====================================================================
- @0 O$ c! a" o8 `( f1 Y+ J5 a, g;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============' \# U$ M4 J* W& f5 i% x
;========================== 06-11-2016 ~ 18h40 =======================7 @! ]* j1 ~( ?1 q& u
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================5 E6 m6 O$ ?4 Q9 ~4 f. P4 E
& {/ k8 S$ s" u% X9 i* r
(defun c:hoathi ()
0 h l- V* T) \& H0 z0 c(setq a (getpoint "\nChon diem: "))
+ g9 M& L( `/ I, `9 \, K(setq b (getpoint a"\nChon diem: "))) o" K/ y R& X7 g, w/ v
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! W9 [5 _2 }$ P/ Q8 F- m2 G
(command ".line" a c "")
- N7 B8 G. l; Y+ s( d) L(command ".array" "last" "" "p" c "NUM" "" "")
6 K' m# z- Q( Y(princ))5 L: {$ t; R' N# x+ B8 U+ D! V
) d2 h# c7 F& p4 {( F& M- m& T
;=====================================================================
) s2 s+ u- O' n: _# A7 ?* E;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============# _1 R. W1 f) a6 I- {
;========================== 03-11-2024 ~ 19h33 =======================
5 G& `( e# m4 Z* V% @;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================% Z! D5 w0 ]. G2 f
3 `% k! T) X# u" L. q- R
(defun c:cung ()
, o$ L4 l! ^: q, ~* |, b(setq a (getpoint "\nChon diem: "))
* z2 ^4 U) W; Z' _, k6 t8 |. D(setq b (getpoint a"\nChon diem: "))
I5 n$ w( {* Q# S(setq c (getpoint a"\nChon diem: "))
& V/ l! L* A: P T5 W. L(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ C- A" a! g( x P(command ".arc" a b c "")) |2 ~( R, |$ ~% x
(command ".array" "last" "" "p" c "NUM" "" "")
; H$ Z( d( S0 d0 z; W1 A* X) ]1 m+ k(princ)): x$ X/ n6 j9 d% V8 G
* E, _' O0 {% D6 F
;=====================================================================
4 o. s* g2 W, q- ~" L3 n;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
$ Q9 H9 A. P, e;========================== 03-11-2024 ~ 20h02 =======================
J* c6 g0 p( q* \;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================+ y& q* |% p, N7 ~( y
(defun c:hecloic ()
3 b! L5 ~* j) f) P$ a" c(setq a (getpoint "\nChon diem: "))
. t O5 |7 q W# Y3 x2 {$ }(setq b (getpoint a"\nChon diem: multi "))1 |, [/ C$ d E' s) n# l
(setq c (getpoint a"\nChon diem: "))(princ); P- N' K7 s4 T& D( L5 L* M
(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
}& t. l' ~1 n/ p( D2 l(command ".arc" a b c "")6 A! V6 R& q0 T% a! ~/ W8 G) Z
(command ".array" "last" "" "p" c "NUM" "" "")' ` L) S+ ?4 U9 P3 @
(princ))
2 A3 V$ V/ P$ d. ]9 m: I& J/ G7 t8 M+ c, l4 i% ^6 [' S B
;=====================================================================+ h1 Q& u' L5 f
;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
9 p3 S( c& w# T, U. J;========================== 03-11-2024 ~ 19h38 =======================
" u! ?/ m4 H/ W- Z;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================. O- k6 ]4 h% ~# {5 `% |
" w# J! U: P( C* J# o0 v" e
(defun c:gay ()8 H9 F+ Y8 p) I) E9 y& c
(setq a (getpoint "\nChon diem: "))
7 z# ?& V& ]" c(setq b (getpoint a"\nChon diem: "))1 \. I: c) ?( _2 O
(setq c (getpoint a"\nChon diem: "))(princ); ~: x. F! Y: J) {, }* j
(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 z& a+ \1 Q3 V. V7 `
(command ".pline" a b c "")
* ?6 v; {0 U2 m" e9 t: m+ L& B(command ".array" "last" "" "p" c "NUM" "" "")* ?2 u/ v/ z* G" X7 @# e
(princ))
9 s: Z: H" E$ ]: P5 v2 U( S4 H
* k2 o' c; k/ b' S/ Z& ^% {;=====================================================================
& e2 g# G( m& ~/ y. n+ G;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
/ y. _5 Y9 _# c9 x. ]/ f' I;========================== 03-11-2024 ~ 20h02 =======================
3 H7 o* T7 ]3 a* t0 ]3 R+ U2 c;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================2 ?4 ?2 Y- b v
3 Y2 n4 ~9 p3 c/ i; B3 t% \8 y(defun c:hecloit ()* ]9 o6 u9 k$ ~$ j7 \
(setq a (getpoint "\nChon diem: "))$ u( h9 q0 o+ ?9 F# q
(setq b (getpoint a"\nChon diem: multi ")) w3 B# X! c4 P4 p
(setq c (getpoint a"\nChon diem: "))(princ)
9 g( T# h3 s& w4 Q$ I(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ C$ t) {7 ~6 j4 F) M7 ^; M) Z(command ".pline" a b c "")
/ A% b2 D( ?8 h' p- I6 m3 {& r- T(command ".array" "last" "" "p" c "NUM" "" "")
. E. Z: R* V( N B( P, o1 K(princ)), k% y- I' t2 P, B
7 x7 F# V% V, s, j. t* O
9 J7 R) \- W- M" N2 N, m;;; ============================ Merge Hatch =============================5 t+ |3 x% I$ Q! s* h2 `- o( N& {
6 q6 t1 a0 A" r7 H6 U(defun c:mh (/ ss entht sl i dt dtht)! {, U# y' i; Q
+ c$ g2 d8 ?1 H& ~+ v (princ "\nMerge Hatch - free lisp from CADViet.com")
% [5 p& ?: T% m, E/ f0 j8 L1 V! A* @3 f1 r1 W
(setq- M9 p' G6 l4 N. u9 M0 g+ ]
ss (ssget '((0 . "HATCH")))
" o! {* N7 {/ q sl (if ss" d' U3 Q7 d# D6 q' L3 t: p* G
(sslength ss)2 F* ~3 V1 }$ o
0" \2 T( M4 j' m
)
3 i, o: ?8 C3 f8 `4 `) _0 X i 0
9 }" u$ c2 h! e4 P( n l 0
, G" b0 ~) Q# v, y" j ) ?$ g7 `9 z# o$ w: k
; \+ k- v% t, U( Q
(repeat sl
1 F6 [* f7 N( \* z! L2 X (setq& D) J6 [9 I+ a/ M
entht (ssname ss i)* Z% F) ^* i# e9 o$ C2 d; E: J. w
dtht (getbdata entht)
8 S f% d* z1 a8 O9 ` dt (append dt dtht)5 g1 @( l: \0 W9 m( I$ a
l (+ l (cdr (assoc 91 (entget entht))))
2 c) h4 ?2 p% c2 k+ e" ?; ~. i i (1+ i)$ }' c' x3 [, g
)) @2 u/ W b2 J
)6 E8 Y5 }! M% E3 z" p
6 W) m F2 m% F% i& T/ m
(setq ent (ssname ss 0)
6 x) c8 ?" H$ @3 a: f- F. @" x9 r ss (ssdel ent ss)* u) C9 i5 t& i- w. l O
tt (entget ent)/ S9 e! z* M, y
duoi (member (assoc 75 tt) tt)# `6 {8 ]( r" Z2 B! k4 ^- ?
dau (reverse (member (assoc 91 tt) (reverse tt)))
* [" L0 A1 @) r H0 u tt (append dau dt duoi)% A% x/ ?4 u( T1 H6 q. H" z$ ?
tt (subst (cons 91 l) (assoc 91 tt) tt)
2 ~* y2 \" t8 k+ e6 d! ~" N f: J, p8 R )
; {- `* T$ Q2 y1 ^ _ (entmod tt). ^& B; c9 s0 J4 h# H z
# a$ Y0 A( ^1 ?/ P (command ".erase" ss "")
+ f/ ^0 W. T% B (princ) ], n/ t- N# m5 Y$ `0 S
)
+ S7 X8 L, u* X! W3 }' f: L; a1 M
. B; C7 C' w, d+ r4 n/ k(defun getbdata (ent)7 h, V1 G s+ m9 t
(setq tt (entget ent)
+ h% }6 o" J) } g tt (cdr (member (assoc 75 tt) (reverse tt)))
$ L1 C3 P. d" G- Q- K; ? tt (cdr (member (assoc 91 tt) (reverse tt)))- L% c4 o# R" n" M4 p$ a; s3 m( h
)
* a$ J( i- B' g! c1 O" C)+ E2 ]; R/ c* v$ z4 W9 K) Z n: C
# [* ~5 k3 v$ j/ ]
- M; n5 C- ~ Q
(princ): D) g9 a; B. H( e: ^
1 W1 w7 U5 }( [6 G4 M! o9 n
;;; =========================== CAC LENH LAYER ==============================
, Q5 m! ~9 Q; y7 F;;; =========================== Layer hien hanh =============================" ?' X0 W. E! I4 u$ d
I; y1 M Y8 x, y6 f(defun layset (/ LAY) (setvar "cmdecho" 0)
9 W- ]0 b5 w# n" { (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))* `0 m; R, n8 B% ~
(if LAY (progn
8 g$ H& K; s8 Z, ~8 n (setq LAY (cdr (assoc 8 (entget (car LAY)))))( P" g+ o% [7 c% j
(command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )$ a: @, d3 h ]/ G1 r
(progn
, S" b: ]& x7 N) a1 H (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) 6 Y0 P3 p5 w$ V6 `, f& l) j
(progn# [8 l( f' s J$ b5 {% }- H& C
(command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
8 Y: x( |& ?. @0 U+ {, L8 c1 W& _(defun c LL () (layset))(defun c AYSET () (layset))" M3 r0 d3 c; @. e8 D4 N
- m# Y1 a, u5 G% I, S, I; O;;; ================== Cap nhat doi tuong vao layer hien hanh ==================+ Z$ ^$ ^# }+ z7 S: ?( l" r
a# @& N. g, \( N ]) t
(Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)$ W0 m# E5 {* U+ J4 U% C9 C
(if (not (setq SS (ssget "i")))
0 \( w. o9 E- m2 R (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
% W! t/ P+ `4 S: V; K4 l5 h (setq SS (ssget)) ) )
. Z& g: t6 E/ X5 ?0 _) H7 b6 C (if SS (progn$ _6 q) ^4 ~- w5 B& c
(setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "")
1 n6 {2 N# u7 G0 u (if (> (getvar "cmdactive") 0)
' d8 `& w& _9 m9 q1 C9 _; w+ h (progn
+ K; b" H: J' T' Y' b9 w (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) ): I5 n$ Z$ f; q Z' h( b$ u; \
(setq SS nil) ) (if (> CNT 0) % @9 ]/ L/ b, Y
(princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
& R% @* M7 K% { (if SS (progn
, D0 W! F" p0 e (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")6 ~& m; _) r" ^9 F. D
(if (= (sslength SS) 1)5 \4 f1 j5 b# o% Z+ ], i6 L. h
(prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
2 U( q- \2 P9 h" Q4 }7 q; B (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end- K" `% ?" P3 P, n$ B
(defun c AYCUR () (laycur)) (defun c HH () (laycur))7 N4 h# p: z: d2 z, d' }
% ^* h% g4 V2 Z2 B" R/ }! ]
;;; =========================== Layer Iso ===================================
; f# Z L" O1 `; ?+ K8 @: t) O
`1 X# d' Y7 M(Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)1 D$ b: x* P4 P; u2 L( L* O
(if (not (setq SS (ssget "i"))) (progn7 b. F6 _; a4 h [/ }7 X1 {) d. b: k; j
(prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: "): d9 l$ f8 ~3 u. w4 t
(setq SS (ssget)) ) ): B3 c9 m! s8 ~1 K6 `9 n+ ~
(if SS (progn (setq CNT 0)
" Y; }- I+ m1 @, q0 M (while (setq LAY (ssname SS CNT))8 r* n% x; X& A1 |" ~
(setq LAY (cdr (assoc 8 (entget LAY))))
( p6 E: T, t0 e (if (not (member LAY LAYLST)), H" m( e1 J, w% O; x B$ t- s9 A
(setq LAYLST (cons LAY LAYLST)) )
, X2 d2 Q9 q3 p (setq CNT (1+ CNT)) )
& }* t3 `- f4 |; _' B& U (if (member (getvar "CLAYER") LAYLST) H5 l8 @5 D" s2 v- g
(setq LAY (getvar "CLAYER"))
: c$ V3 G/ {! ~, R9 f% u (setvar "CLAYER" (setq LAY (last LAYLST))) )
* d. U. M+ j. d (command "_.LAYER" "_OFF" "*" "_Y")1 t& O; [! T; E
(foreach VAL LAYLST (command "_ON" VAL))
/ a1 ^/ Z" e; I1 f0 [ (command "") (if (= (length LAYLST) 1)
7 b* q. c' ?0 }" f# g (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))/ L0 I& h I# q# K- C) \
(prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. ", r( U; `- B" {+ _) L
"Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )$ K- z1 }% \7 t8 `% h5 Q
(defun c AYISO () (layiso)) (defun c I () (layiso))
) f1 ~& _$ L2 u. O _3 l. h2 O1 X/ o( z
;;; ========================= Layer Match ==================================
! x# i% p. w& J
) R( e* S! B8 W5 T(Defun LAYMCH (/ SS CNT LOOP LAY ANS)
1 E# ?2 w' z- M+ g1 S. x' L (setvar "cmdecho" 0)
' V* I) T- q; P: ?& ], W4 i (if (not (setq SS (ssget "i"))) (progn
/ @+ F% V9 [/ [+ Z0 O. M (prompt "\nChon doi tuong muon thay doi Layer : ")( E4 F2 }( u+ c& C7 c% Y8 Q
(setq SS (ssget)) ) )# [: h8 Q4 F R" u; @
(if SS (progn% t5 c- _* i$ ~! v3 f
(setq CNT (sslength SS))4 X# w3 l/ K" |" e$ o( A) j
(princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") ! `& b8 G0 k& G1 m2 G+ x
(if (> (getvar "cmdactive") 0) (progn9 u f, j' L4 u }; S5 M) r
(command "0,0" "0,0") (setq SS (ssget "p")- a( }% d E& M/ t
CNT (- CNT (sslength SS)) ) )
" X$ q1 j8 n0 h8 F9 V0 V: t (setq SS nil) ) (if (> CNT 0) # A4 Z& c" u$ z1 k; [$ y
(princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )6 P+ V; h. t& R1 H' w$ w+ A
(if SS (progn
' g2 ^/ d- b3 D+ m (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
! d) P0 L6 O3 _0 h" [ (while LOOP (cond' ]/ {/ O$ E _# {6 P9 @
((not LAY)8 K3 |* C" t$ u1 z4 D' j: n( o; s
(prompt "\nKhong chon doi tuong.")
) G( `6 S7 N, Y1 Z' m9 a- P H (prompt "\nSu dung layer hien hanh? <Y> ")
: Y$ \6 B1 s8 i$ c- T6 `* n& k. q (setq ANS (strcase (getstring)))
3 P/ t( A0 \# T7 A (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
v5 S7 e& v' E; m (setq LAY (getvar "clayer") LOOP nil ) ) )0 {: X: P& t" A) | Y1 G3 `3 v3 Z W
((listp LAY) (setq LOOP nil) )
; Q+ b1 S: ~3 V ((= LAY "Ten")+ x9 e3 I: {# g! J5 P4 z
(setq LAY (getstring "\n>Nhap ten layer: "))
; q; R9 S* |! v& I% ]# S+ F (cond
: ^$ J; t4 \4 j5 F" _4 X ((tblsearch "LAYER" LAY) (setq LOOP nil) )- f5 W9 z0 Y) U- D3 \$ P. t
((/= LAY "")
' u7 \* \" O# U3 Z! F$ v (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
! f+ ^( [7 \. }; p& |5 u (setq ANS (strcase (getstring)))
% r' P% N& V" _ (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))0 V& ~: v6 S! o8 x6 Y9 |
(progn
& A6 w% P/ N* V" y; Z (command "_.LAYER" "NEW" LAY "")
+ a. f, I0 w2 A" | (setq LOOP nil) )( }9 X8 \' \0 G
(prompt "\nLoi ten layer.") ) ) ) ) )" l2 o4 i, m& L) x* k1 @
(if LOOP (progn (initget "Ten")
: I( P G. r6 x5 ~* i1 A (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
+ `0 f8 [) I) Z$ r/ [ (if (listp LAY)4 z. l0 g& ^0 O; ~, r4 [
(setq LAY (cdr (assoc 8 (entget (car LAY))))) )
- x9 p( Y% U! t+ q (command "_.chprop" SS "" "_la" LAY "")7 h- X2 V3 e8 i ]" X
(if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) ): {. P& _: |2 }' ^
(if (= LAY (getvar "clayer"))& g2 b* r% [. K/ K* L
(prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )5 I4 x6 U: M2 I L. B! o% R# D7 l
(defun c AYMCH () (laymch)) (defun c:CLL () (laymch))
* }0 Y' b7 B1 N. a7 k0 d0 w# I7 K) d3 w4 n$ d n
;;; ============================ Layer OFF =================================2 s1 }$ {" V0 A f# ]+ y' r
; B$ k. r% W. q/ I; \(DEFUN C J (/ SSET SSL ENT LAY I MODE)
9 _ |2 g' r, y4 ~; t+ V3 {7 ?% w (SETQ SSET (SSGET))
( _$ Z% {2 g! b (IF (/= NIL SSET)
; g) p: y- F$ T6 F& X1 w (PROGN1 Y- h4 M& ~8 P% s; D A
(SETQ SSL (SSLENGTH SSET))$ x. R5 m; u8 K7 w* H' I% y
(SETQ LAY "")) d1 b5 t; ]" A- n. w' ^
(SETQ I 0)
' E4 x2 `$ o8 i! ^3 s1 d4 l' a. [ (SETQ MODE 0) 4 H& ~1 Z8 E, M2 T3 m
(WHILE (< I SSL) p3 R! |! S: }+ M
(SETQ ENT (ENTGET (SSNAME SSET I)))
; L1 S" r% M+ k (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )# O2 G) ]% g1 |0 K G. R# E# D
(SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))2 w" [! r$ _& |; C
(SETQ I (+ I 1))
_5 V6 M3 R+ h$ l& k, O( ~ )
# T/ T6 k2 Q, x. v- a (COMMAND "LAYER" "OFF" LAY "")
4 E2 k5 n! @" J (IF (= MODE 1) (COMMAND "") )& [( S) G4 K7 X
)
* Y! g' X: k8 U0 u5 G# Z )
, u6 |/ h; A( G {2 @: T (PRINC)( o3 f( v& u" j9 y+ C& H
)
" \2 L8 d3 t5 d! \
* F: U' Q0 Y% x0 D. ]1 J;;; ================================ Layer ON ==============================; Y( x% T. |3 {
2 g; Y) t, r3 H/ a$ q! @' m(Defun LAYON () (setvar "cmdecho" 0)
! X6 D/ u$ s0 q4 v; x- k (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
9 ~& A* y, N$ x* m2 `: |$ T- K (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
5 k/ M" f4 t1 t- J j4 p, @' m/ y(defun c AYON () (layon)) (defun c:LOO () (layon)), Q7 E. X7 ~$ H7 [ U8 h
(Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
1 i! A% e7 O! x2 a8 `9 T. C% f6 _
% i5 j, Q. J4 Q; R i7 u;;; ============================== Layer Freeze ===========================
/ u2 f" `% K6 _% K0 a8 R
& s( h: h8 [$ c0 w% j0 `. I6 o1 }/ m1 q) \(Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) 2 U; Y$ \( T# [$ d
(prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
9 E. v! N. B/ N9 ~: I' s (IF (/= NIL SSET) (PROGN# h8 |3 x! C+ b& I
(SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) 6 b) I3 G# r. Q' N
(WHILE (< I SSL)
2 j5 [! q6 b: p" F (SETQ ENT (ENTGET (SSNAME SSET I)))
C( o$ [! ~$ M e6 ? (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )" H X$ i, @. o4 X1 @' x
(SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
$ L2 z% b6 J$ A/ F* o (COMMAND "LAYER" "FREEZE" LAY ""): S6 E' O6 t/ K4 n& [: D/ L
(IF (= MODE 1) (COMMAND ""))))- o" Q% i; } ^! p8 O2 _
(setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)! W7 v4 C7 W0 Q% p3 w
(princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )5 \. H# H& R+ k
(defun c:LAYFRZ () (layfrz)) (defun c:LLF () (layfrz))* I; H7 |5 l: ]9 E7 C. g+ J
! j0 F% V) g8 I* `( z;;; ============================== Layer Thaw ===============================
9 j' {8 s3 m) {5 j
# L) q3 l7 _0 Y4 j w(Defun LAYTHW ()
4 \# Q3 X$ b1 q+ g. W (setvar "cmdecho" 0)
/ r. @0 T' b$ a- z# N9 b (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
! {8 ~4 ?/ B# i1 K (Command "_.LAYER" "_THAW" LAY "")
% T+ v! ]5 F# } (princ (strcat "\n Layer : " LAY " da THAW."))
# G& }$ P' m* Y$ G F' _$ y+ N8 b (princ) )
* Q& u6 \! [* `(defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))" X- S8 m4 X! G
4 \ m, K: [" ^. X6 O
;;; ============================== Layer Lock ==============================
2 e) R) \. V4 D( Q( |/ _4 z9 w: U1 ^' G$ K9 P
(Defun LAYLCK (/ LAY)& d5 F6 C, K' k
(setvar "cmdecho" 0)/ [! Q* x. D. Y: w' F$ j% u! S1 m
(setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
# ^+ N2 @+ G% l! g1 |9 Z (if LAY- P& A- d2 K5 T2 B
(progn6 F4 I$ H. K, O
(setq LAY (cdr (assoc 8 (entget (car LAY)))))* V s- y: }2 }8 x
(Command "_.LAYER" "_LOCK" LAY "")
; z' }/ t1 T3 l2 G4 ~ (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
. g( T. y0 U" T: a' V3 e* x' |(defun c:LAYLCK () (laylck)) (defun c:LK () (laylck)): D! x& C2 M+ n4 v. \' z2 u2 A; w
$ M7 U" T% N$ G( K( u/ B& O
;;; ============================== Layer UnLock ==============================
( s. p) V7 z. T" K! W* n: x' d% i5 K( h0 I( a* y
(Defun LAYULK (/ LAY)9 I- G. |) s( [( F9 q7 z
(setvar "cmdecho" 0)) V; i4 Z. N" W- |! G1 W
(setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
; q- b9 i# u2 Z1 X4 L (if LAY
3 q0 k' R( @- u5 ] (progn
, N1 B& p. T# k. d7 f (setq LAY (cdr (assoc 8 (entget (car LAY)))))7 ^: Q- d( [" m: O/ j# M
(Command "_.LAYER" "_UNLOCK" LAY "")3 A3 p: J/ x, M* b
(princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
5 w: F. I# [. ?" z(defun c:LAYULK () (layulk)) (defun c:LU () (layulk))! A$ q$ g. W/ _
! l, o1 w# q0 A. l2 e4 }
;;;===================== Delete all objects of Layer ========================
$ P* F4 m6 P: D, v+ j6 O2 u5 \
8 j- I( u( g" h& `- a(defun DELAYER (/ ocmd L S)
! r+ t" L1 T- V5 t1 b4 E (setq ocmd (getvar "CMDECHO"))
* r% n2 v: N% l (setvar "CMDECHO" 0), N" i, R, }: g( }7 \( v" p
(setq L (strcase (getstring "\nLayer(s) to delete: ")))
# K6 X1 V* X& C/ H (setq S (ssget "X" (list (cons 8 L))))
1 `7 p/ _, D5 b% n" F( O: n) c. T (if S
' ]! o$ h+ ~" j- q0 J- E3 V (command "ERASE" S "") & a9 h" d4 H" b Q6 H& \. B" [9 ~
(princ "Layer empty or not a valid layer name.") ) ; |6 m# S6 a' s8 {- X
(setq S nil) ! U' O* o" J+ u3 s# I' N
(setvar "CMDECHO" ocmd) / o% J" r# P' C0 d. s" H1 m
(princ) )
# V U% ?5 F: e3 b3 j(defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))$ r8 G! Y; q8 I2 a% d8 m
% r4 G( N1 O/ `% k8 Z9 ]
;;; ========================= HET CAC LENH LAYER ===========================
; ]8 H$ ^+ k1 G9 ^8 y E6 L! [, |1 K' [
;;;====================== EXTEND NHIEU DOI TUONG =========================== t9 Q% S. z; S6 w# P/ m7 t! z
2 ^( Q' V( o2 [' _
(Defun C:EET ()
0 s- x7 n/ i! g" I' ]+ W/ C1 x+ q (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)6 U% \6 d! a# t% J; ~ s) v* p ?
(Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))$ O" k5 N/ I9 b7 X; r$ w5 P8 p
(Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
I- _/ m I2 }. C. x& P1 J L (Setq I -1)1 d8 g# U" W9 i) G* V
(Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")5 A# B# S/ C6 {: R1 ]+ y
(Repeat LEN' B/ l2 T8 F! `# [6 A
(Setq I (1+ I)). ^6 ?1 ?& k0 _( q* |& f
(Command (List(SSname SS I) SIDE)) ) (Command "")
5 V4 A7 Q6 Q/ K$ N% x9 n+ H (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )' g% d d1 I F
, Y; H) @7 `( S4 c
;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
! r' D: _1 {3 ?; N, Y( C- \7 K5 p* @" t) k: T" x
(defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
9 Q0 u4 x/ O- G (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))/ y: D5 e3 {) T0 s
(setvar "osmode" os)
G1 J. |" B* ~* R3 e4 f* O; M (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
+ b1 l& ]* z& K, Y- e, O2 Q( G3 { (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))! F+ t& |" Z- H/ ?" T& J' ^
0 Y% _4 s; }0 l* t$ V* ~4 O
;; ================ Change width of polylines =========================
* I. X$ K) f, H2 b
2 Q1 d; Z9 Z* v$ m) e(DEFUN wp (/ a b sophantu sodem list1 ha:wid)
! c5 S* D0 }' l(PRINC "\n Chon doi tuong can thay doi do day (Width) !") , y1 L% |- M" `. c; L0 k$ q: a0 }
(setq b (ssget)) 9 r7 ^5 E& F. B( ] @
(setq sophantu (sslength b)) $ B, R6 O' N* Q( m0 ]3 r) F
(if (null ha:wid) (setq ha:wid (getvar "tracewid")))" q1 S1 \& A/ x
(princ "\nDo rong polyline <")# ~5 Q6 r* P: Y" }. N* t8 ~
(princ ha:wid)
+ C% f! h. G7 y8 G1 a( L (princ ">: ")
6 f+ [1 k( r4 Q (initget 4)* N( C. u9 _! j+ b, `/ w2 i
(setq ha:wid (getdist))3 Z, e$ c( Y- T
(if (null ha:wid) (setq ha:wid (getvar "tracewid")))
( `- Y- F2 [- D& D J0 s% D6 c (setvar "tracewid" ha:wid)
" w4 G- M) g2 W' `+ W (setvar "cmdecho" 0)- M7 h% Z2 q! @4 G2 L5 E. a1 w
(setq sodem 0) + H J% u$ n2 t+ j
(repeat sophantu
8 K- v, b# k1 H2 | (setq a (ssname b sodem))
; J% [) o7 [( w (setq list1 (assoc 0 (entget a)))
. A3 ^" E7 }$ Q9 E3 w9 D* F# M (cond* U& ?: ~; q' @
((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
! m& L3 Q7 Z) h4 Q, m$ g (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) # d0 L" Y i: t+ X; o# s' }! T
(setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
3 a: c1 U! K* ?' Q(defun c:wp () (wp)) (defun c:pw () (wp))3 ]% t6 ]3 j/ W2 ], q
# E7 Q' m6 ~/ _" I7 R7 D4 B5 b( {* A
;; ================ Change radius of circles ==========================9 L: o+ ^+ G$ V u) H: Y& b7 j! S# D
( f+ ]" V8 m6 _1 U l(DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
: X1 C( ~: G, u. k1 D0 J (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : ")). t% C# X' {% e* q/ e- d9 U
(IF (/= RD NIL) (PROGN (SETQ I 0)
. x2 m7 ~9 w& ~+ m1 S& z/ { (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )6 U' b2 d: [7 l, C- B( b
(IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
2 I8 H. K3 h8 [2 S5 P$ l) v6 D3 k (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )# R4 \, j8 N3 H% J
' B( i! b+ ?8 Q+ C7 [
;;; ============================== TEXT Hight ===============================( E/ j* z5 R$ y. E+ ~: L
3 z; J$ | j. ?9 X1 X5 n- Y
(defun texthght (/ ent hght). U p4 I& P- T e- V
(setvar "cmdecho" 1)
9 O9 P* p1 h' u( p" G, } (prompt (strcat"\nSelect text entity with required text height"))
' D- f+ l" E' \5 e, h (prompt (strcat"\n."))0 @6 V* g$ s* u
(setq ent (entget (car (entsel))))' D6 b$ T* D7 A
(setq hght (cdr (assoc 40 ent)))) _. v) G. w% j& J
(prompt (strcat"\nText height now set at "))(prin1 hght)+ Q8 |0 q0 `% s3 \, x e9 }
(prompt (strcat"\n.")) % ]% Z3 z% m4 M2 R8 n
(setvar "cmdecho" 1)
' z- L8 V7 Q' |9 \. p6 g (command "DTEXT" PAUSE hght "") ); M# e4 t0 O' [+ X! Q& ]0 z
(defun c:teh () (texthght)) (defun c:texthght () (texthght))
- o: H& x: U4 R" D j5 j4 E# K
0 e5 r2 o$ y8 ?1 q. M;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================9 j7 g2 o$ v, C4 b9 }) U
( B+ y, M/ c, ]+ u" \& s% G
(defun c:tuu () (setvar "cmdecho" 0)" `' ~; m' h/ g- X: C7 X
(prompt "\nHay chon dong TEXT can gach chan ")- O# W6 }& V6 `
(prompt "\nSelect objects: ")4 o, e, W( x& h6 C' _& s
(command "select" "au" pause) v2 H3 }. g: i9 G
(setq sstxt (ssget "p")
3 L" U* Q! n0 `5 }' g, w9 V" y3 e6 _ sslen (sslength sstxt)4 R/ P5 R) j% v1 v
ctr 0 )
1 N) \$ V' j; {" ? A( b (command ".undo" "mark")
6 G1 b" B8 H) h+ _1 h (while (< ctr sslen)6 {6 v& }; D: T1 n* Q" Z& B7 x$ h; `
(setq listxt (entget (ssname sstxt ctr))
; `. R/ E/ g. J; x8 F txttxt (cdr (assoc 1 listxt))
3 m) n& q# ?+ N, u enttxt (cdr (assoc 0 listxt)) )( K' M; ?8 G& e3 U. d- a4 A$ W/ f
(if (= enttxt "TEXT") H5 e$ s$ {; B6 ?: _
(progn
& Q: y; h" z' c. {. W. G; c (setq testxt (substr txttxt 1 3)), ]& l/ \9 N2 v$ O9 t2 ^1 ]
(if (or (= testxt "%%u") (= testxt "%%U"))+ \' s$ y" S9 V/ C# \ I
(setq newtxt (substr txttxt 4))
2 I+ P$ ? S; q2 x (setq newtxt (strcat "%%u" txttxt)) )+ [+ C |4 ?7 K: p
(setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
0 K, ~" }: c6 o. { (entmod listxt) ) )
+ H) g" r1 z) i (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
' H S3 P9 f& v2 \; s, K& Z. U1 C( W2 l# c, l/ l @
;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================. p/ X) v O/ K P# E
' q. o1 L; Y$ m$ \- I7 O5 [
(defun c:tob () (setvar "cmdecho" 0)4 }8 N: p! Y$ T+ t1 U- N7 d
(prompt "\nHay chon dong TEXT can gach tren dau ")" d: O0 z3 Z3 {( K; |3 X v J
(prompt "\nSelect objects: ")( G& Y r; q$ [! w; ~4 E2 F$ j
(command "select" "au" pause)- H7 q# b- g( r/ J5 o: m
(setq sstxt (ssget "p")
- J" B. t3 Y2 T0 [ sslen (sslength sstxt); c B, f* O- N% l
ctr 0 )4 j, `7 H: ]* {$ G- c3 A
(command ".undo" "mark")$ P" b7 ^3 \3 Y7 R
(while (< ctr sslen)
4 R P) O+ z, o5 \. C (setq listxt (entget (ssname sstxt ctr))0 m9 A3 G) S6 J7 d
txttxt (cdr (assoc 1 listxt))
9 n0 ?, t% ^4 K, O S- W enttxt (cdr (assoc 0 listxt)) )
0 l F- F- k, m5 {# X# ?; X( e (if (= enttxt "TEXT")
6 m# `+ d% o! @7 g/ ?3 T+ I8 ]) H (progn
% ^1 y% L/ M* z. @3 D (setq testxt (substr txttxt 1 3))/ C* j- D9 b# z/ @1 g
(if (or (= testxt "%%o") (= testxt "%%o"))
6 F1 Q4 R( t- y/ D (setq newtxt (substr txttxt 4))
( k! l7 ]/ M1 }7 h (setq newtxt (strcat "%%o" txttxt)) )
' y# q" O1 {$ A6 i0 R (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
* U1 n4 O5 K p (entmod listxt) ) )& }" Z& x$ G3 G9 F. W6 g% E
(setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))6 n1 |/ M% X3 D" ]/ i
4 X4 S" w" q; I# J;;; ========================== Tim & thay the TEXT ==========================
/ {' y! G9 X. U" z, H7 c* a" ^4 x' c' p; j
(defun frstring (str search replace / str1 str2 index find)
8 Q9 B. Q8 k9 Y+ ?- R/ D4 B O(setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))- S1 e4 z1 p( N4 y' H7 J' k% ]
(setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))& d0 o/ {: v* M* {6 P
(setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
- V+ N# ]$ b, x. l3 T% g& Z(defun hai (/ dial); e& X" o7 F7 t+ z* w
(setq dial (load_dialog "hai.dcl")) ;;goi dialog
( F# v: k N+ W" r (if (not (new_dialog "find" Dial)) (exit)) ;;
! m8 [5 j1 l' _ (mode_tile "find" 2); Tao dau nhac tai hop thoai+ \. |% ~4 R/ D4 M) k* b/ W" L$ E
(action_tile "find" "(hai1)")! ?4 `$ z0 d! ~# Y( t! p
(action_tile "replace" "(hai2)")& {& b; D/ `; {7 u! [, D# |- x8 ^
(action_tile "cancel" "(done_dialog) (exit)")2 Q* [) z% N- n
(start_dialog)
) m. i* H5 B6 {) l7 [! f$ a$ X (unload_dialog dial))
3 J3 r. j5 H& D4 J" R! N(defun hai1 () (SETQ str1 (get_tile "find")))& v9 \$ \% J& Y
(defun hai2 () (SETQ str2 (get_tile "replace")))* E- X/ a1 l! I
# h/ Z+ w$ M1 i* G" `4 F(defun c:TTT (/ a str str1 str2 newstr taphop sodem)
# M+ P/ h2 g( o* ^ (hai)
$ ^, J4 U3 G D0 L (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le"): _- Q" _" u6 c8 _6 p
(progn
( a& e; e7 j: } (setq taphop (ssget '((0 . "TEXT"))))- p5 }" T/ j, w6 }
(setq sodem 0)* q% L, U+ t. e2 T- o# ] @
(if taphop
+ @# m3 X0 w* V1 m (progn* u- ?5 }$ h) u2 b8 e
(Repeat (sslength taphop); k1 v6 b' a/ q! S6 f7 h: J2 G
(setq a (entget (ssname taphop sodem)))5 K, S2 d1 ]) H- Y6 Q0 v
(setq str (cdr (assoc 1 a)))
1 }0 T. K }* E1 k. `$ Y6 U (setq newstr (frstring str str1 str2))
1 r8 b! G: N: a; Y0 j/ |0 M/ C (setq a (subst (cons 1 newstr) (assoc 1 a) a))
) x( W) I5 O# \3 X( B& X/ a& j (entmod a)6 v' b( F1 y' z
(setq sodem (1+ sodem)) ) )' `! W% ^4 X3 x- @6 z* o( {1 F
(princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))- s7 i, U; Z' {: ]# G
( A6 Y2 [- F; C$ p
;;;============================= CHTEXSTY.LSP =============================
' ]$ o3 s- \& A6 u3 g
8 I' s1 B* }7 U. V' G7 H(Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST "), E2 g; R8 y3 s1 q
(Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
% h3 H! A6 G0 o8 X" y8 S! B(Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
$ S" S I0 k) R+ E" I- q3 T, N(Initget 1) (Setq C (Getstring "\nEnter new text style: "))
+ _8 G8 t' S. B7 Q(Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))5 z* y0 W: g& b9 F5 n0 q
(Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))& F4 z8 i+ l1 v. }* Z$ j) p
(Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
; y; w) r. m3 U0 T% g(Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
3 { F% g; w# ^, d& z* k/ Z. v(Initget 1) (Setq A (Strcase (Getstring) v. T5 q4 M. ~+ M9 s2 J
"\nEnter text style to change: "))) (Initget 1)) N7 Y5 A, F8 E( c A7 y' m
(Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
7 p2 x# J* ?; r. u' Y6 X(Extang C) (While D (Princ ".") (Setq E (Entget D)) (If" V @9 g+ q9 U4 J7 z( C( U
(And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))( G1 Y! q. [& v# A
(Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
6 D0 @/ g- y- A& O9 C(Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J)), z) }' R0 ^6 U7 a5 R3 O7 t
(Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))6 _5 h. ?( S7 M+ V2 o
: W0 h$ {6 m$ ], ]( d f(Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
- ^. e, i) s. p' H, a(Setq J (Cdr (Assoc 50 A))))
4 o* z1 J. X s0 V: D
' v: K9 U& A7 S;;; ============================ DRAW CLOUD =============================" z6 H+ n! m! E" X+ Y8 u3 e: E% ~
# q$ ]! j. U; U4 V4 M1 `3 j/ l2 T) j
(defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)4 A, U: |1 ~ h0 d: J" \0 [
(prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
5 i8 y4 X% R; o0 h+ c0 n (setq la (getvar "clayer"))
1 _+ J* ?. c4 C( y/ g: v (command "layer" "m" "cloud" "c" "5" "" ""): y- d8 H" w7 i7 z" W) X
(setq pt1 (getpoint "\nEnter first point of Cloud: "))
( w l0 J; o/ Y( c! _% R5 } (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))' H# D* `' D$ v# Z
(setq cnt 1 ss (ssadd))
+ w# \" v. X# K (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))3 f" m4 f/ _, g8 i2 b' r
(if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))& j7 F2 ^( l9 V7 _& J
(if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
) ?9 |8 p5 |8 h# ^' \ (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)$ T- E& m0 f: N2 v: ]1 H R: z4 S! T
(command "pedit" arc1 "y" "j" ss "" "x")( z& j8 V7 o# t" a* s7 [; Q- f
(if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
3 X1 l+ H( d' D: I (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) % ?/ ^% j5 f; g. w
(DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))3 f: r) ^- `1 g1 H
2 L: x8 ?! X k+ H. @0 |+ U; h
;;; ================================ Funtion-Dulieu ========================
# V, Q- V0 N0 n6 L;;; ================================ Funtion-Dulieu ========================* Y( A7 Y1 Q; g$ ?, C8 N, L
;;; ================================ Funtion-Dulieu ========================/ x! d0 g( b' m- h4 Q
' j- Q) i& k1 G0 M, p2 `. t(defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
) J1 [0 H6 N4 R3 D* o8 X( F0 T(defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))' L$ j# H6 e! @ o- s: `* a
(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))
7 x- }# t0 Y+ l$ Q(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) )
: W6 o# q) X) k' j+ t. j(defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
, J8 c& ^4 g5 |& B9 {4 R3 \1 r(defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
3 `( p- f) B) H. S! \2 |0 g. r( C(defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
5 Z; G: ?$ F* r$ p: m6 \(defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
0 v2 _, M. N4 g* i(defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
' a9 v: J$ u: E$ w; q& v9 f(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)))$ e' f0 g6 B- q. _) ]+ T6 f
(defun dtr (dtr) (* pi (/ dtr 180.0)))
* N w+ Z0 m$ W' A) c7 g$ X; R/ q1 A(defun rtd (rtd) (* 180.0 (/ rtd pi)))
: n, [5 i' B$ \7 n, O4 u1 I8 r9 ?
! I% e5 i; ~% F n9 X;;;==============================PROGRAME===============================
% G( y9 W$ @# q& r1 [;;;=====================EditDiM Hien Hop Thoai Dep======================6 n: V+ \0 N* M( C6 v6 s" r, @
;;;==============================PROGRAME===============================
" T6 }! k. a2 h! A2 U2 R5 L {1 K
e0 M. N$ Q! n, ]6 H$ n: X;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)5 q; I+ ?0 H1 D( W. V( h
;;Chay Cung Du Lieu.Lsp & Hai.Dcl
5 b: [2 c. `2 B4 P% ?& L(Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
8 b" U( }$ j, G8 O (Setq Oldlis (Entget (Car Chon))
; Q: o& p- v7 j7 h3 k" C Pt10 (Cdr (Assoc 10 Oldlis))
8 D7 f$ ?' D5 V6 L# _: t Pt13 (Cdr (Assoc 13 Oldlis))
! @3 E3 t* p( A" `- S Pt14 (Cdr (Assoc 14 Oldlis))
$ ?) a: @" ~2 s A& V% H St (Cdr (Assoc 70 Oldlis))
3 ~1 y3 b6 v% t1 b1 X' G Dimdefault (Cdr (Assoc 1 Oldlis))
; E1 c5 e0 S5 I/ {$ Z( d! Q. y )
& x7 V4 G- | e0 ^3 { (Cond
# T5 C- S1 {* y/ B4 @" a/ x) g: A ((Or (= 32 St)(= 0 St)(= 160 St))5 p' f; @$ J4 Z2 w. J' L9 b
(Progn
# X9 g+ ]4 r5 P& g( n" b5 { (Setq Ang (Cdr (Assoc 50 Oldlis))0 y9 F/ X3 h$ G9 x* @! e: u; N
Pt (Polar Pt13 Ang 500)
h# G6 f' G. `% W% N% @; f Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)" V* ^2 N) f4 @% V' G% E
Dis (Rtos (Distance Pt13 Hc))
! d' _% b) r$ [* a2 m: R$ c )9 ]* n% F% K( h- ~6 T% m! D* P
)( O) f# N4 T% L1 p, s" n2 }# [# B2 a
)
: H% t9 w* }# q$ ? ((Or (= 33 St)(= 1 St))
8 X2 H- k. g/ \5 |& r& n' i' a (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
0 j1 I. E4 [; g) C1 w );;End Cond
" h1 ^" f( |, T4 Z) K- f (If (= Dimdefault "") (Setq Dimdefault "<>"))" f! ]# f1 |4 {# ~
(Setq Dial (Load_Dialog "Hai.Dcl"))2 T/ B/ p( L q
(If (Not (New_Dialog "eddim" Dial)) (Exit))/ ]0 v; @0 u; T; | i$ H
(If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
/ l) m& K; W; d+ H$ V( i (Set_Tile "text" Dis))/ l: D$ j# X) u0 ]6 d5 B
(Set_Tile "ha:edim" Dimdefault)# @) ?( [9 `7 y7 z' i$ \/ G
(Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai. [ o6 G# G& H: h% i- H* F
(Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
* y- z$ H/ p w- Z (Setq State (Start_Dialog))(Unload_Dialog Dial)# y8 d3 C. v2 A. o8 |* B8 I
(If (And Str (= 3 State)), e% U( L5 G, P W' k
(Progn* a5 J: e/ p/ r" U* k; [" G4 W
(Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))# T7 H- g( [5 \7 p B
)
; B- j! ^( r |0 N" Y(Defun C:EH (/ Chon Name )8 q; S9 i/ d, B6 s9 V
(Defun *Error* (Msg)1 z1 A1 ?/ G* }. `. U
(Princ "\nerror: ")(Princ Msg)(Princ " ")
. o) h {% o, L, v V" p! i: k (Start_Dialog)(Unload_Dialog Dial)4 x) e9 s6 p9 g# z6 i
(Setq *Error* Olderr)(Princ)- F) ^% G; B& ?5 H: ?
)0 H' J& Z+ C, i% Q9 T D0 h/ e0 `
(Setq Olderr *Error*)2 H& e0 q3 ?: J C- H# R5 l
(Setq Chon T)
B- P2 n( z p- [6 P4 C9 @5 f (While Chon% i' r$ @7 _) U0 s
(Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
B; |8 n7 J+ ]3 w/ m% A8 k( R Y (If Chon' F5 D! k- N5 ^
(Progn5 D) i) x2 F: \- K1 T, R
(Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))+ @7 U) ]5 i% N( V' J
(Cond
; D% W4 u( X) Q O5 z7 ] ((= Name "INSERT")(Command "Ddatte" Chon))
& z5 O3 {, _% v7 \: v1 ? ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
* N9 F6 I" x; E& ~ `2 Y ((= Name "DIMENSION") (Hai_Edim Chon))" H! ~+ @- |1 _4 l0 n
)/ I4 s' T8 g7 H4 ?0 t6 F' `4 }' u
);End Cond) j. j4 ?+ \0 J. Y2 S3 B
);End Progn
; b3 C+ M) [6 A# D5 y* _, w. h0 Y );End While b+ |6 M- c1 B3 z$ W# m, ]
(Setq Olderr *Error*)(Princ)- n) Q T( S2 I# K1 D5 G% _
);End Program0 H% T+ `" n( M2 L
- p3 K0 D$ r* e1 d% Y
;;;====================DDeditDim=====================
9 \. T# p6 R4 W/ y5 a, @9 l;;;=====================Hai.DCL======================7 b% b# R, \2 W
;;;====================DDeditDim=====================- G0 h) M: L, |& g9 j1 L
) v9 t. s2 |# P3 d" D% E) i' y
;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)6 C& e$ L) |% C' y
;;Chay Cung Du Lieu.Lsp & Hai.Dcl
/ }* |+ G5 `9 m0 T(Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
: K8 M# G, K5 h! M (Setq Oldlis (Entget (Car Chon))
3 D. |5 Q: |+ U1 x4 ]6 L Pt10 (Cdr (Assoc 10 Oldlis))7 J( ?" L! A5 G1 t3 m+ B
Pt13 (Cdr (Assoc 13 Oldlis))
- _: m7 y" R1 E& @8 j* w9 L Pt14 (Cdr (Assoc 14 Oldlis)): ^, V6 r; U2 `) U, ^1 o
St (Cdr (Assoc 70 Oldlis))8 z |7 n( F& v8 C
Dimdefault (Cdr (Assoc 1 Oldlis))
' [* k" d1 ]. ]6 ^3 `- }$ f )+ G2 d I0 C {; W) ^. [
(Cond+ c. g/ n, W' V% z0 n. D& g1 z
((Or (= 32 St)(= 0 St)(= 160 St))4 B: M$ g, @6 P8 Q- k' j
(Progn
0 r2 S: Y! o0 Z8 o" i: A (Setq Ang (Cdr (Assoc 50 Oldlis))+ b8 d: g! W M7 N: \7 A$ Q
Pt (Polar Pt13 Ang 500)
8 I# O3 X" \9 q6 R6 L9 j7 J* p Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
" `9 ]" g* F; g. z$ E7 J2 `( u Dis (Rtos (Distance Pt13 Hc))# K6 A) V# } U3 B. k. a; Z
)
# E9 [) J5 P, P ]) W. l6 ~ )6 D! O3 G# m a8 w9 X/ o
)$ e# p/ S, O3 Y5 n8 O
((Or (= 33 St)(= 1 St))
$ Y1 m$ E. b: A9 D5 c; H5 w- R (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
+ Y! L4 y7 {2 C% R( |3 W: l: a );;End Cond5 V! @4 B) d* |5 G2 H- O1 F/ \
(If (= Dimdefault "") (Setq Dimdefault "<>"))" Z- f+ z3 n: n
(Setq Dial (Load_Dialog "Hai.Dcl"))* K7 \8 K1 n% @) P1 R6 M1 B; _5 c
(If (Not (New_Dialog "eddim" Dial)) (Exit))
4 M+ s6 B3 _# [ (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))7 R3 k: C+ }. i& o- _, Y ~
(Set_Tile "text" Dis))' }; H; b, {; t& g/ }: a/ F' r
(Set_Tile "ha:edim" Dimdefault)) O5 D: r& L9 X/ z
(Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai$ ~5 z- n6 y n$ J {
(Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
c8 t- {* }' q/ J2 E (Setq State (Start_Dialog))(Unload_Dialog Dial)
2 l: |! i" o$ g (If (And Str (= 3 State))
/ Z4 Z+ g6 s1 E% b4 d (Progn0 g- p0 E% x, @9 c7 A( L6 l
(Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
' P( T0 i4 e9 N7 U9 U* v ); q k& k2 |6 [2 V: }) I
(Defun C:EH (/ Chon Name )/ Y+ J% C; }3 M4 d& v
8 O) h+ A# d& \' u8 _ c# N, ]
;;;********************Du Lieu********************- J$ s6 S; G* U# g+ j4 i# k
5 C$ U: ~2 }) p9 g8 Y(Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))& A c+ z; r( e8 h
(Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)$ D" y* V7 f. o/ [: H, m- h
(If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
9 S& _0 h- m1 |; B (Progn
! a7 T- z6 D1 L) h0 a7 H" Z% J+ s (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))( [/ J% y( B" ?
(Setq Chon (Ssget Hacat3))
3 f, u5 o' a: X: n (Command "Break" Chon Hacat1 Hacat2)
9 T7 x0 [ R f+ r )
0 B" i% Q$ F- i9 v4 {2 k2 M: L )
8 F: G' A. c; F5 K: O. q (Princ)
( J' D/ l% S' g) t8 I: m )8 l* M& l- u/ y
;;
9 U0 t) \2 q5 k5 R. h(Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
+ i/ F+ r& d6 e* s;;: P0 d* o& b- s' M |! B; f7 z
(Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
0 G; N: O! G8 N" H+ N9 [( p3 m;;/ Z4 l3 d7 J& D$ R9 D
(Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
- C C* R3 ^' u/ v;;) a8 c1 K5 Z1 u9 w4 Q
(Defun Reinit ()(Setvar "Cmdecho" 1))2 X! J& ~# F/ N0 @7 w
;;" Z* h, O+ g# V& l
(Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
: B: w9 x! [. C, p0 s& U;;0 U T6 e7 g. e4 h
;;Cho 2 Diem Tinh Ra Vec To Phap
4 d7 A6 b( |# V0 O, q6 }4 c(Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
! T0 ~, ], d: l2 t+ l;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang& I U! @ [: p8 X- T
;;Da Biet 2 Diem Thuoc Duong Thang
1 q' n! A: C F8 P Z. d h(Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
' `0 `& x0 N# _& J* T2 A, M (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)% O4 _9 g+ O) `: r
Hc (Inters P1 P2 Dc1 Dc2 Nil)))
! x9 P, U" S6 T {" P5 g5 A! x0 D: k( V;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang, W. n S" T8 q) M% e3 F+ ]
;;Da Biet 2 Diem Thuoc Duong Thang
7 q# e1 a& {# D* a' p! f1 e(Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)5 Q& [. K6 Z9 v+ I3 U" k
(Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100): x. B, U, k. H
Hc (Inters P1 P2 Dc1 Dc2 Nil))
6 F5 C" P' `' \4 \5 x1 O (Distance Dc1 Hc)& v2 |& b7 x3 Z# g# i
)1 U0 h! q0 U* E4 m! R: |4 R
(load "nhapcua.lsp")
1 O, ~7 ^' j) u (Defun *Error* (Msg)& Q- e! z. L# O3 o3 ]
(Princ "\nerror: ")(Princ Msg)(Princ " ")
& b P! Q) }0 U" k, L4 V9 L1 t (Start_Dialog)(Unload_Dialog Dial)7 ^+ R$ W8 a' Y3 {0 |0 |
(Setq *Error* Olderr)(Princ)
* J- S; u( W/ y. |4 Z )
* C) ^" | ?, t9 B } (Setq Olderr *Error*)+ n& G3 e0 M; B) }5 W5 v
(Setq Chon T)
1 D' [! m' L9 o8 Q3 D (While Chon! J) Y2 Q6 ?* G& s& ~3 ?7 d! [
(Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
! ?9 c" T2 x6 s7 n (If Chon: ^- H! r/ i: l2 O7 ]( c$ B1 T
(Progn
* ^ @4 C$ ?$ Z: K0 k" ^) o$ P# J (Setq Name (Cdr (Assoc 0 (Entget (Car Chon))))); y9 k, v2 r8 ]. Z2 q& e4 ^
(Cond$ j. U! v: o$ C o) h
((= Name "INSERT")(Command "Ddatte" Chon))
% {2 X% X# `. K9 g; W ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
' A. `6 S# ~9 z ]) y/ B1 f2 G ((= Name "DIMENSION") (Hai_Edim Chon))
r. m; h2 l2 N1 N& t )
, G/ F7 c" y, X: e );End Cond: G$ F6 \7 \9 E6 Y6 I
);End Progn! A) m/ R7 {3 ~$ ?( s: r0 X- S2 f& H
);End While
: Y5 w8 ]- r3 A! l: c+ {/ a (Setq Olderr *Error*)(Princ)
) C" b# u; {) g+ X5 H );End Program
6 B/ d* _% ]3 W* V: A1 B# P
/ Y* v( l+ f; |! l! W$ k3 S7 }' ], }# S5 u8 H
+ l# r9 h3 s0 _) v8 K+ z
;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM=================== e" i! A! U% Z
;====================================Nhapcua.LSP====================================
; E+ r6 n$ j% z( q. }5 C8 F;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM=================== D# y5 w% n" v o+ w: ^
( r, ^* u3 W; q( T, r0 A
;;; ============================ Ve Hinh chu nhat ==================================
" P8 B* Z @3 U, o `) z1 U$ y) P(defun HCN (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
# }4 V5 |# x3 J# Y (setq ocmd (getvar "cmdecho"))0 z$ I. [. H1 T" Z. ?
(setq oblp (getvar "blipmode"))
' e3 t2 Z. e ~: S w6 m5 N (setvar "cmdecho" 0)% C' f: m8 `0 r9 _) l
(initget 1) ;3D point can't be null
l) [' U, f, _/ h! F% W) [1 S% w (setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
% i8 [- d6 r* n (setvar "ORTHOMODE" 1); L# S" g) L6 i% |* D
(initget 7) ;Length can't be 0, neg, or null
0 x' }1 P3 v8 O+ V1 W" e( E! P (setq l (getdist pt1 "\nLength: "))" ~+ b6 Q: N2 X2 w0 ^
(setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1))), e$ V' d7 ?; w' c
(grdraw pt1 pt2 2)5 ^( Q5 z% }* J0 I
(initget 7 "Square") ;Width can't be 0, neg, or null, m: E9 o0 u- I. w) d( s b8 m
(setq w (getdist pt1 "\nSquare/<Width>: "))* _# O- Z/ D2 N% I
(if (= w "Square") 1 h9 c! A7 n8 D; a& y
(setq w l) )* [9 p( k. P" M7 C$ `- X* @2 T
(setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))2 v& b+ j* H& n8 h
(setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))0 A; D- r5 c' C. A% W! r
(grdraw pt2 pt3 2)$ E; U: V( N q- C! N/ M6 j. J, q
(grdraw pt3 pt4 2)
: M7 N- ~ l+ F7 }" J (grdraw pt4 pt1 2)+ I$ Q0 Z. m& r6 {2 b& P
(setvar "ORTHOMODE" 0)$ r) O& v0 Y' H j: m$ x1 R2 l
(command "pline" pt1 pt2 pt3 pt4 "close")! F; A% p+ J3 ~4 G- A8 E
(setvar "cmdecho" ocmd)2 Z- r. P0 D7 _* W2 p
(setvar "blipmode" oblp) (princ))
# |; C0 W! Q. v(DEFUN C:HCN () (HCN))
, F# W. k B: {5 `2 R" k7 E u1 Y3 V# w {5 G
;*******************;*******************;*******************;******************** \* D3 ?" z5 r1 q
;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
. R/ ?9 i( L# i# e. };*******************;*******************;*******************;*******************
" o3 J, s; S5 u5 `3 @7 ?' n" q
4 n( k2 g. U! @1 j0 Q;VE HINH BINH HANH
" ?& ~& q* G6 c& `+ G+ G- U+ J$ t# M
(defun c:binhhanh (/ p1 p2 p3)! d5 H2 f. ~% B8 o* i
(setq p1 (getpoint "\n Nhap diem thu nhat:"))3 ]% \9 d4 F# ]" X
(setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
5 ]# p! _3 K7 A6 m( ~/ ?. {(setq om (getvar "osmode"))
/ J. f6 s! j9 o x4 W& `! E(setvar "osmode" 0)
' q6 d& [! Z" S4 W u1 r, d! i (command "line" p1 p2 "")
2 T8 y. @& z6 [ U3 z8 x1 V(setvar "osmode" om)
( P! G2 w) B7 s (setq p3 (getpoint p2 "\n Nhap diem thu ba:")). _" B3 ^% P; N2 @4 I
(setq a (angle p2 p1))
9 v5 J. h# A+ y4 B! M5 O" `+ I (setq d (distance p1 p2))7 h* y( j2 W* m2 t ?! k
(setq p4 (polar p3 a d)). D; w' u6 G2 f, \5 x
(command "OSNAP" "none")# x4 G- [8 |! L& U1 |
(command "erase" "l" "")9 r0 a! O4 _& F+ m2 [( G1 j Y$ v
(command "pline" p1 p2 p3 p4 p1 "")
& I# J/ G% p5 z$ c(setvar "osmode" om)
, F9 [+ E. {" q" F( U# T)
$ `/ q. _5 T8 y3 w, S4 k6 s# h" p$ n# ]3 u, W# I6 [) T7 p8 A
;VE LUOI COT9 T' U1 e9 k9 d; O
6 ^& n) s4 Y1 W& i; n v
(defun c:LuoiCot ()
3 R9 [1 a' R7 m% C8 v$ Y( X(setq om (getvar "osmode"))
' h1 T$ O# [" b8 s# p) @: }) \(setvar "osmode" 0)$ t( l% v! g/ t* L4 @
(setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))/ \" F R. E5 r2 _4 R/ t) Z- a
(setq p0 (getpoint "\n Chon Basic Point:"))
2 y2 g: Q/ O/ l' L (setq nc (getreal "\n Nhap chieu ngang cua cot : "))# M+ w# P4 F0 {5 D9 [
(setq dc (getreal "\n Nhap chieu doc cua cot : ")); Q" _+ }4 F6 D, }9 Q6 N6 z
(setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
, S% N) {8 [3 G( {$ ] (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
7 R5 ^- d- S4 g. G (command "rectang" p1 p2)- L, E- F- O, Z) K2 X/ b3 W5 D( `
(command "hatch" "solid" "l" "")5 [4 v/ |4 m' g) X2 A' F% K; F
(setq bcn (getreal "\n Buoc cot theo phuong ngang : ")): j/ u2 X# Z. R
(setq nn (getint "\n So buoc cot phuong ngang : "))
0 }4 @" H* f* n0 [) [; @ (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )* G$ B3 ^! k3 ~( L4 A9 [
(setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
! U1 ?3 Q k2 u* {- j (command "select" "w" w1 w2 "")- W D0 @8 j- @
(command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )8 F I5 X7 z( F4 [
(command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")* H1 `3 o" n2 p
(setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
8 E) a7 |1 `1 N/ Z6 h7 C/ i9 g) |" O (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))0 ~8 K9 t- X9 d; o
(command "zoom" "w" w1 w2)# b2 h+ Q. K k' L' O& t
(command "select" "w" w1 w2 "")
: \% t( g8 a3 K) Q" Y (setq bcd (getreal "\n Buoc cot theo phuong doc : "))5 C. x, p* F0 j( I
(setq nd (getint "\n So buoc cot phuong doc : "))7 P/ S4 |( Q2 E1 a
(command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )$ E$ L# H% t2 [8 M T# A
(command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
. m5 a; g: P) ^' ]' C (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )7 [: Z% a4 Q8 k
(setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) ( n, H9 u% j( o( S' H, x8 ]
(command "zoom" "w" w1 w2), g8 q3 v |+ v9 [/ g1 P0 m
(setvar "osmode" om)
, I) T" ]$ u8 F8 x; W7 R, y# g)
- i s* W& E5 t9 ?( f" o( |; z3 l0 n5 O# U
;VE CUA DI
' q1 X7 r. U( d' L! ^7 m' z6 R) s% ?, o6 K( Z3 r, I5 o
(defun c:cuadi ()8 q4 O2 B) B+ [% |( _5 T0 l v
(setq om (getvar "osmode"))
5 ?. Z* p, F* e) v+ W) A- I1 H. p(setvar "osmode" 0)
P- f& Y3 |0 o- f N6 s8 a' ~/ F7 d3 W1 F3 I: Z7 [
(setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
) p" \/ f2 K+ R8 k! T! o(setq b (getreal "\n Nhap be rong cua : "))
. P q1 X, C0 E: y4 h0 K z(setvar "osmode" om)+ i4 ?# p2 a* R$ f
(while (< 0 1)
$ n3 x3 k, m2 |4 u (progn, V. U6 @0 A# O5 K' i* j) h5 H. M
(setq p0 (getpoint "\n Chon Basic Point:"))( N, h, A' ?0 [& w; S
(setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))" w1 D+ y# n$ u0 {# i
(command "osnap" "none")0 M8 n( z2 M. ?$ d
(setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
5 j% h" {) s# A1 p (setq a1 (angle p0 p1))
0 ^+ Y/ J' o1 C2 D (setq p1 (polar p0 a1 (/ (* hstl b) tile)))# T7 S2 w' m3 j3 Y) E; M5 r( z8 C
(setq a2 (angle p0 p2))
) X6 O6 P0 f* y( K z (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
5 ~- Z! n/ {) G0 d1 [ (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")# T3 j7 G0 {, g3 l/ ?. i x
(command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
5 w0 l3 ^4 x5 o' d0 | (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
9 i3 |0 f$ U% S; f t; }/ H# z7 m. }(setvar "osmode" om)4 t8 l2 s! K$ Z8 E: h. s! K
)). W% R0 P9 N% P/ T
)1 u4 K9 ^% F5 f9 l
2 u/ t* L4 B$ G2 \1 l9 O;VE CUA SO
! T9 a1 |+ R4 E2 d9 S8 k4 }6 E, _! n: {, x
(defun c:cuaso (): D% l1 b: x3 z( m1 v
(setq om (getvar "osmode"))$ k2 u$ `- E; S* u1 U$ `# Q' p8 j! \( Z! ~
(setvar "osmode" 0)$ K/ e: r" C) ` ]
8 Z# q7 [& S3 R" q0 R" a( {9 A6 R
(setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
: J' ?+ B7 M/ ~( `( `3 [(setvar "osmode" om)
6 ^& [; D, m* r) a( f& k! W(while (< 0 1)
2 [' K7 A, Q5 x" R# ]$ P (progn! S: g: i4 T2 g) P2 ?7 D# f
(setq p0 (getpoint "\n Chon Basic Point:"))* Y: g) Q/ I. y- s+ @
(setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
% m& E6 v1 O% Z) R; K7 \* g- Q (command "osnap" "none")
2 {4 d/ p6 [$ b( B (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
: D- R5 Z' m b z( {1 q (setq b (distance p0 p1))0 y. |8 j4 v0 A0 [; z& X3 t" E; K# ~3 S
(if (< b (/ (* hstl 600) tile)) (setq du 50))
1 D1 A. u6 B8 H4 p (if (> b (/ (* hstl 600) tile)) (setq du 150))+ r0 t' Q2 c* m6 Y' e+ H
(if (> b (/ (* hstl 1800) tile)) (setq du 200))& A, o2 [+ s P( Q8 @$ _1 y% _
(setq a1 (angle p0 p1))
S' b8 U' E7 T. t, o) g (setq a2 (angle p0 p2))
" \* X+ y5 g1 x- F$ [* m! Y! t (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )2 D. l% u3 H' z; g4 Y8 O8 \' x4 S
(if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
& r9 ~' w$ b2 q4 g9 | (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
7 D. O9 y) S, ^6 F; G% S3 R (command "pline" p0 "w" "0" "0" p1 "")
: a y! o- x) R" [: x" A (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
. [! ?, S/ @! x; W9 L* j6 ~7 E9 C( U (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")+ w# ` ?. m, C$ \; @5 x x
(command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) ) J% F( b4 a: T9 x
(polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
: A, T* t# @* N5 W(setvar "osmode" om)
4 ]7 P) l' p# Q5 ]7 O))
& d* w7 A( J0 I# Z)7 s8 T- g, ?5 Q: H! g; y6 W" t M
3 Z; G6 A c6 ?. h* d) t, r# u F; |8 l
;;;=== General Utility Functions ===# ]* C! p$ C" d( d) r; D+ f
9 e2 u1 c5 O& `6 k3 C& |' r. S
; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined 6 @+ ~( ]/ |+ C# o0 a
; ADS function. Now it's a simple AutoLISP function that calls the / b5 Q3 T) H4 C
; built-in function (help). It's only purpose is R12 compatibility.
9 N/ a, q( W; g; h1 N5 Z. m; If you are calling it for anything else, you should almost certainly # o: v) e9 V/ h0 E9 y7 G: D
; be calling (help) instead. 6 v: [% f, [. @$ O" _7 ]) Q
7 p2 _" `% ^8 d( a
(defun acad_helpdlg (helpfile topic); d( O+ r4 |- L r( o5 i: c
(help helpfile topic)
) f1 p J% W4 c3 O, h), M; h' G7 I C4 |/ } L- N2 |9 E
. E. z) N8 \( y" o m) p: |8 F; s) _# I0 G9 D" ~
(defun *merr* (msg)0 c0 w& z2 v- E, P/ }+ `( g
(setq *error* m:err m:err nil)
; T0 ?+ f6 _9 y( u (princ)7 [ N# D1 \8 Z( F
): j0 J! ]. n8 f Q0 a* }, F: d
: o, g, M$ R; `% l, D1 z(defun *merrmsg* (msg)' g! k( s2 B( G! P2 r
(princ msg)
5 `1 S' ~9 y h, | (setq *error* m:err m:err nil)
0 p9 \) O) J; b/ v" N) v (princ)* v. w% l) Q& c- h
)
; l: J4 ?* a( [5 P2 I4 c: G6 X3 }/ S
;; Loads the indicated ARX app if it isn't already loaded
' r e% W8 p( Z8 b9 E;; returns nil if no load was necessary, else returns the! [2 n* X, | G7 |' c6 @9 B
;; app name if a load occurred.+ Y* |; S1 b+ V/ b9 B
(defun verify_arxapp_loaded (app)
5 {6 c, P4 ~3 Q, B# E/ C (if (not (loadedp app (arx)))
4 R3 E0 z1 m1 q' ?& z( Q5 ~ (arxload app f)$ V& E$ U% m$ b0 i- C
)
9 K/ ~' }6 E. I: g8 F* k3 e: u)* P |. `. T% F' p
% X6 C- J: f- L8 y3 k' J;; determines if a given application is loaded...
! [0 F3 G5 y Z. m4 R T4 d;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....9 x! C8 `* B( N' B/ I* |- n) @" x l# P
;;4 g' r9 u- b0 h3 x7 q
;; app is the filename of the application to check (extension is required)
0 [/ K0 q3 B% I0 A( `6 x1 y;; appset is a list of applications, (such as (arx) or (ads)( B }" b7 o1 c( Q
;;
! c0 i; P% ]3 S;; returns T or nil, depending on whether app is present in the appset
2 k4 T8 `+ c. L5 m2 m9 E;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
* C! C% U5 c/ Z9 r" \;; Also, if appset contains members that contain paths, app will right-match
4 l% F7 W4 y3 j+ P# f' D/ _;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
- d. r* E- n4 | l2 @;; "bar.arx" will *not* match "c:\\path\\foobar.arx.". E+ T' u+ D2 l6 K6 u4 W, g+ ~
(defun loadedp (app appset)5 l; p2 g2 z2 }: B: P
(cond (appset (or
4 g! ~6 V, H9 c( F, O ;; exactly equal? (ignoring case)
, ^: j- J, C* ~, u' f (= (strcase (car appset))
! j7 Q3 a; l$ Z (strcase app))
. J0 U f: W- q8 ?) U0 Q% K$ E' w ;; right-matching? (ignoring case, but assuming that6 z ?6 c6 L! N! [ I' {. _0 M8 e
;; it's a complete filename (with a backslash before it), b) L6 q6 L* ^, _; Z7 y. X
(and
2 v, B- M, Z; o6 ?0 {# W {# C (> (strlen (car appset)) (strlen app))5 J! _7 ]0 f2 \+ O
(= (strcase (substr (car appset) 6 z" ]$ F9 C- Z* i$ Y
(- (strlen (car appset))
6 X; P# [* N5 L (strlen app)
+ d- S7 U1 O/ X. f; H ) & j# n1 Z' k. Y7 y0 P8 ?, O
)
. b4 ]& e# W7 ]4 r+ n: x )
8 g* s4 \1 `& {0 s6 ^ (strcase (strcat "\\" app))
; h; w$ e8 Z4 ~ )4 E1 A" ]$ H, M' d. ^
)
9 y7 M& X6 b- b& F/ r- f ;; no match for this entry in appset, try next one....6 Q6 e9 g' }6 v5 B
(loadedp app (cdr appset)) )))
, b; H9 m2 ?/ N* C)& _7 E1 k; S% W. u+ B
! V' l, |3 R7 f* ~/ x; a- T# A O) x
- J3 e, B/ B u0 E) B' A( O
;;; ===== Single-line MText editor =====! _5 [2 e" x% W
(defun LispEd (contents / fname dcl state)
, {( W9 ^% t# _+ l( H4 u" k* | (if (not (setq fname (getvar "program")))
/ S& ?$ A" K; V8 ?7 l: y! r- ` (setq fname "acad"), r8 ^# j, q2 ^9 U
)
: M+ V2 I" z# a4 F (strcat fname ".dcl")/ Z- j2 E. G2 a b# B) ?
(setq dcl (load_dialog fname))2 D. N+ W& e: A" ^; v; z: n5 M! ]# B. n5 v
(if (not (new_dialog "LispEd" dcl)) (exit)), X5 S/ D- U8 d
(set_tile "contents" contents)# |/ P g: f1 I& J+ f- M
(mode_tile "contents" 2)8 \2 c4 w. X" e$ Q. L' r d2 k
(action_tile "contents" "(setq contents $value)")) I2 j' D9 B. H' k
(action_tile "accept" "(done_dialog 1)")5 T% h1 R4 n4 w- R9 Q6 w) Z
(action_tile "mtexted" "(done_dialog 2)" )% m6 b2 j _4 F# @5 s
(setq state (start_dialog))" ~7 i# @( [; l# M0 V1 k* `9 c
(unload_dialog dcl)0 A. |4 G" \0 n7 j/ l) u
(cond
8 Z5 e0 [0 t; T3 @* F- V ((= state 1) contents)/ L$ i8 m, q1 E: O$ I2 \( v
((= state 2) -1)! y7 V, H4 M; a. h* D: |8 W+ N
(t 0)
" F& o( S) l: p. B7 q )
5 ]# ^) F d% s& E)9 ^9 y0 L- H( i0 V y
* L& ]1 _$ s* ~( G; ^4 p) Z;;; ===== Discontinued commands =====
* f- X0 @2 m" a(defun c:ddselect(/ cmdecho-save)
/ Y# v& K. B% c j5 Z' ~% j (setq cmdecho-save (getvar "CMDECHO"))
) u4 p- o: c4 O. c+ y (setvar "CMDECHO" 0)
. O6 F( Y* o+ H3 P. ^ (command "._+options" 7)
) ]- |+ p. G/ X8 O/ K (setvar "CMDECHO" cmdecho-save)8 A) {% o; b$ k' f! } ~
(princ)* d' @0 b! W2 z8 H
)$ t% _ C* J- F
+ Y8 L! O5 o' m- E% F2 Y( Z2 f1 ~' @(defun c:ddgrips(/ cmdecho-save)
+ A: a% ?& r8 j$ V/ Z (setq cmdecho-save (getvar "CMDECHO")) {# k9 J! F _ |$ S3 ]$ F3 q
(setvar "CMDECHO" 0)- C( u Y& \8 i+ a% x0 ~ D( B
(command "._+options" 7)7 ^. h( Y8 f, D: N: t
(setvar "CMDECHO" cmdecho-save)
" c% J; [! Q# s1 t2 A (princ)
1 g# O6 X, _7 T* g4 T1 y; ]% [. e1 a: N)
, g1 ]2 e" d$ N7 X% Z4 p0 e3 b i) N0 I& t
(defun c:gifin ()
5 G9 g7 ]! ?' o- l' B (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
6 L; c; r. R+ A9 e& H% Y6 Q1 \ (princ)
, E7 _ b# u* a3 i)
7 n' S" E: O$ J8 M/ z
# k+ h, F/ n6 d4 t3 o* F; g. E# P(defun c:pcxin ()- ~- Y; B) l- [3 }* N5 P3 `8 G: Y
(alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
) D- S* G _. I" |1 n (princ)6 H# y- U" {7 T, x$ c
)2 b3 Z( k6 Z" W5 O& ?
' M k" I# j q9 |(defun c:tiffin ()
1 J- P! ]; Q' ~. j- Y$ u (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")1 R5 z6 p! c+ x% ^: Y
(princ)" Z S; S" @7 `4 w! Z1 a
)" I r9 V2 Q. Z9 }* v
2 e; @( ^8 G, a- t" i' w* ]
(defun c:ddemodes()1 d% ]; q2 Q( n4 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.")
' z3 V1 ]. f! I( a2 M; b' b& j (princ)4 v: M F" r4 w: g) o
)
3 y- g k1 \) B; i( l) v
% B. W0 ~. P1 U }( J" E(defun c:ddrmodes(/ cmdecho-save): H# m0 r# T8 Y! f5 U0 W8 @9 o
(setq cmdecho-save (getvar "CMDECHO"))( t6 |1 v# W$ G3 D
(setvar "CMDECHO" 0): p- M/ O# F! |7 { Q1 Y+ N; w
(command "._+dsettings" 0)6 P+ @4 f6 a5 H {1 W; x. Z; Y
(setvar "CMDECHO" cmdecho-save)
5 ]4 ]% {% N8 j- U; n (princ)
2 ?- d6 \3 h4 P* _+ B. U+ [) G)% K; [# V0 t0 b- o4 `" c8 ]
' z* {, H* a$ W' [) X
;; HPCONFIG
# T, y7 k- \4 V1 z+ R8 l, Y! I(defun c:hpconfig (/ hlppath)8 X S% V4 \: ?0 u; m/ v
(if (not (setq hlppath (findfile "acad.hlp")))" \! m6 `* C+ O0 n% x% V8 E
(setq hlppath ""))
8 W( [& Y- J1 c! c (help hlppath "hpconfig")
- J3 |# Y8 M) S (princ) e$ B% W1 s: U, s
)) B6 m x* o1 g3 s& l: }
6 ~) _* [3 ^+ Q4 u6 {; ~
;; OCECONFIG: N( R/ z7 N8 F: T& V
(defun c:oceconfig (/ hlppath): ^1 ~8 Y. ~% r( O4 w _1 ?
(if (not (setq hlppath (findfile "acad.hlp")))
& f' R) l) M: o, N; N (setq hlppath "")): p4 }# v7 R2 |0 q
(help hlppath "oceconfig")' A% d5 L- x& Q* t7 C# m4 L
(princ): a" n% F" P, d
)2 k! J/ U6 o$ S% y
. `: Z3 t9 F! T;; CCONFIG3 b" ]; |9 s a% R7 u
(defun c:cconfig (/ hlppath)$ v8 ]* ]5 B# l" s) {: i9 w
(if (not (setq hlppath (findfile "acad.hlp")))' @0 c1 D u0 z) N& ^$ e" ?& G8 p8 V
(setq hlppath ""))
8 e. q6 E- m3 v; i6 K (help hlppath "cconfig")
/ Z( P' R( O+ v, O8 s' i (princ)
7 s6 J1 f# q: o; A1 ?; s)
* S( n6 y M" b6 M
3 a- |" D; l& F5 w+ i$ K;;; ===== AutoLoad =====9 A+ o* E/ p8 H9 }) ?2 R% L
: r7 B1 ]. [2 ?5 f;;; Check list of loaded <apptype> applications ("ads" or "arx")
/ p, M: `, z" e, U( P1 V;;; for the name of a certain appplication <appname>.2 r4 c: f/ D' ]( I9 V2 J: q
;;; Returns T if <appname> is loaded.
+ h* E. I- p$ d( `! k E; o0 z' L4 M7 o5 m" U9 l) `, b
(defun ai_AppLoaded (appname apptype)- V- f q x9 B! \3 u! p
(apply 'or
. N) q' W- w8 m$ @, r8 }# q (mapcar
/ m& B, x2 b* `& z '(lambda (j)
\( z4 r0 M6 I5 U7 Z (wcmatch+ S2 {1 l+ H* \! k
(strcase j T)# D3 F% a; b; n. ?3 m1 Q' T$ p9 Z, q p
(strcase (strcat "*" appname "*") T)
/ y9 U. x6 s% f. a ) 6 G, H- ]* l$ e1 r3 E
)
2 z+ C( q8 `1 ]( i (eval (list (read apptype)))
0 z: ?, s# Y7 c# B0 R) ]. x$ J )
! ~0 l8 [/ A1 s, h$ w4 c+ u )
9 M1 e" t/ W( w6 B1 Q6 H& n)
5 h- C# |( g' p) \5 h5 F4 M7 i0 N6 T3 S; V, B
;; , E; D+ c, }# V" A
;; Native Rx commands cannot be called with the "C:" syntax. They must + Y: f0 y( k, w2 G: A
;; be called via (command). Therefore they require their own autoload
: n" B4 e6 p4 \;; command.
; k# Q+ n4 ?4 W5 p s6 }; V" S7 t. i: E: l9 H/ }
(defun autonativeload (app cmdliste / qapp)- M+ j" K' \0 W! k
(setq qapp (strcat "\"" app "\""))* ^/ Q% D: m. h1 S+ Z& u
(setq initstring "\nInitializing...")
! L- F1 A& n/ ^' W/ N (mapcar8 a8 X) \; J( \ T! \
'(lambda (cmd / nom_cmd native_cmd)( X5 Q \ D1 p& ?
(progn
8 M* r( L# X) {9 W H8 O. h, Q (setq nom_cmd (strcat "C:" cmd))) k5 \ K1 ]2 w) a% ?* h
(setq native_cmd (strcat "\"_" cmd "\""))
2 @7 j- H Z7 o" G/ K4 {2 `8 B0 N6 { (if (not (eval (read nom_cmd)))
* T; j8 b4 w# w; V( U# B7 S; @ (eval
0 {0 ~; p1 | ^; \ (read (strcat
9 h1 d$ ^( O+ w$ q* d1 { "(defun " nom_cmd "()"* B7 Q8 Q6 i8 s. n
"(setq m:err *error* *error* *merrmsg*)". j9 E6 M; K+ [# f1 y
"(if (ai_ffile " qapp ")"
2 f# `- _7 k: B" ~$ N2 ?8 T "(progn (princ initstring)"4 q8 x, Z$ Y* y
"(_autoarxload " qapp ") (command " native_cmd "))"
: b! Y- J: v" j' S0 R "(ai_nofile " qapp "))". ?3 v, \0 p/ W# p N% O, W% D
"(setq *error* m:err m:err nil))". k/ S5 h5 s, D, n: a' |
)))))): \ R& ~9 ?% J- c( t
cmdliste)
8 T- ]& u5 g& ~0 N' ]7 L& | nil* l/ J Z$ A0 {" ~* f: I9 T
): A" }5 D: P" m9 S# d' i$ Z) ^
- T- A: {9 S N& p+ P4 k
(defun _autoqload (quoi app cmdliste / qapp symnam), y) Z. W( b% u1 I& |
(setq qapp (strcat "\"" app "\""))' M* G/ R; C$ S5 X! \
(setq initstring "\nInitializing...")5 c8 G# q! u5 L$ e0 }5 ]$ P5 [
(mapcar7 Q1 O' c& U5 A6 q* E
'(lambda (cmd / nom_cmd)
, R; N% f! I. p! [+ m8 I (progn+ q1 {& e3 A, n
(setq nom_cmd (strcat "C:" cmd))% K8 b9 M8 u6 v& n1 P
(if (not (eval (read nom_cmd)))0 ^: J) e# W: E" R, u& h, v( d( v
(eval
0 K' `) p% Y! T6 o) x9 C7 D (read (strcat, i' U" ~4 `1 V1 V% f
"(defun " nom_cmd "( / rtn)") j5 |1 E7 _ u) ~+ i7 F7 R# Z
"(setq m:err *error* *error* *merrmsg*)"
0 ^, O. m* Y7 h1 B "(if (ai_ffile " qapp ")"
5 z9 X! `8 t' Z+ t( F* ^# ]1 j "(progn (princ initstring)"
" R/ a! Y. } O; g% d/ K "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"6 \+ O) y' `) r6 l: p& Q1 |
"(ai_nofile " qapp "))"! i+ c% t9 L, |1 L/ {
"(setq *error* m:err m:err nil)"+ @+ Y; J: b/ [* P- [
"rtn)"" I8 e* l& K* a0 r
))))))$ h8 M0 b* S% g
cmdliste)/ v5 D; a% N' x, A; T8 {8 E0 o
nil
* n4 f5 R F* e$ a9 a4 A)
9 A! s! B* O+ j$ n) g1 B6 y) O Q" ~$ a* a3 T
(defun autoload (app cmdliste)5 T! i7 a, m, K& G6 @9 f2 T
(_autoqload "" app cmdliste)0 r' I1 y7 `/ z+ K9 n) i
)* [6 }6 L, ^1 r
7 J3 ^( n" F( V8 k. T(defun autoarxload (app cmdliste)
2 x6 z' D- p4 u9 b- Q% b (_autoqload "arx" app cmdliste)
/ a _& q7 z0 G9 i" q" j)
I, O% U# _0 j9 W& h% N) N7 M( P" r+ n8 U# R8 l! r1 H
(defun autoarxacedload (app cmdliste / qapp symnam)
- z4 K" T/ m$ s# ]) [ (setq qapp (strcat "\"" app "\""))# m5 l2 f% {* z# M8 w% z. f# ]! j
(setq initstring "\nInitializing...")6 a# o5 p8 Q5 K2 u$ `* r
(mapcar: P. u/ v1 p" }1 p; s
'(lambda (cmd / nom_cmd): H. S8 Z* j$ m% H1 D: ?; y: G
(progn
8 O/ b7 M, L& Z0 l8 ] (setq nom_cmd (strcat "C:" cmd))
5 d! |. W% w% f/ v (if (not (eval (read nom_cmd)))! |: L( [/ \4 c6 ?0 o
(eval5 R* R' [( k/ L b
(read (strcat1 I' K& n+ h Z0 O5 P1 @/ r
"(defun " nom_cmd "( / oldcmdecho)"" T; G) K2 `9 y" e- _5 j
"(setq m:err *error* *error* *merrmsg*)"
: z, I% G% |+ j! f: u: E0 g0 `( L: d "(if (ai_ffile " qapp ")"
. ~$ X" Q0 u* V "(progn (princ initstring)"& j1 `! o. J- e; B' g
"(_autoarxload " qapp ")"
+ m9 D& O3 m, I J% X4 V5 p "(setq oldcmdecho (getvar \"CMDECHO\"))"8 d8 N( X2 l# F8 Q) ~
"(setvar \"CMDECHO\" 0)"* }9 Y; a' X# I# C4 ]
"(command " "\"_" cmd "\"" ")"
( w. {& O. i7 Y m6 f: j "(setvar \"CMDECHO\" oldcmdecho))"! k/ x9 r) f- g8 W
"(ai_nofile " qapp "))"
1 y, @; H. N# N) n" e( | "(setq *error* m:err m:err nil)"3 c. _( b+ t$ g; @: J) t' c3 L7 \
"(princ))". X' l; f. S# i+ ` n
))))))
3 g1 ]: l3 D1 |: [9 L cmdliste)
1 b! s0 @ @# v3 L1 Z nil
; W# a- x" }, M: _% U)0 z$ k( U7 Z7 L+ [9 t; Y# E1 e& N
# h+ M4 v1 c3 ]4 ]( `6 d9 m(defun _autoload (app)7 Z# V9 j0 p: Q) | Z+ o
; (princ "Auto load ") (princ app) (princ ")") (terpri)1 }. [) r3 |3 X7 I/ O/ o' {2 E6 D
(load app)8 `- z9 C* `( c0 \4 D1 N2 P
)1 H3 _7 L3 ?9 I# a' j+ }" R; ~
6 y# Z* K3 I8 E% d1 H3 q/ f1 P(defun _autoarxload (app), ~5 U+ ?' x! {& }8 R) [4 @1 a
; (princ "Auto arxload ") (princ app) (princ ")") (terpri): M# ^% M* a2 q5 ]0 @
(arxload app)
6 `# Q. q) J7 y$ b, @)
, A) [3 ?) l+ D) }% [& M9 i! K& w
+ W( z, j% L( `( t' G4 f9 ~; X(defun ai_ffile (app)7 I1 t, p% S% \
(or (findfile (strcat app ".lsp")); Y9 f7 } V* G$ k/ H7 ]6 W
(findfile (strcat app ".exp"))
0 F9 ?8 _6 ?! k4 d/ N$ C (findfile (strcat app ".exe"))$ N- \! n0 g6 o3 M2 x, g6 P \, z
(findfile (strcat app ".arx"))
5 j8 Q" O M f (findfile app)
, S3 k9 h, O- Q& e% c) L* l ), t( }" U2 n: A' H
)/ {: k6 j7 H; X% |( ^( V! M4 S
. s; j) B" h f3 r4 z8 ]9 ]' R(defun ai_nofile (filename)
2 |4 [0 Q! V% Y( O4 [* M, T (princ
$ R: D5 ~. e6 R3 U! `, y (strcat "\nThe file "% v" D/ F. L1 u( O
filename
) `0 V8 _- G4 W# @ "(.lsp/.exe/.arx) was not found in your search path folders."+ x, I2 O1 ?1 U0 q3 h
)
4 S' `$ n) ?3 E5 r2 @3 ^; `% J7 U )( B( `' e6 e* R" f6 ]6 k8 J
(princ "\nCheck the installation of the support files and try again.")1 I i( `& R8 Z0 M: m! J4 p Q
(princ)# }' n; U3 B g) n
)
5 x2 Q2 ]/ @- ?+ _
; L+ @: N, h0 o: G+ x$ r7 x" h8 f- d: {8 d0 `" ]5 R5 s$ Y
;;;===== AutoLoad LISP Applications =====4 o% h- }& ^- ^0 u Q2 k/ a0 c `4 V
; Set help for those apps with a command line interface; j3 [% e) U4 j1 V, b& F
( e3 e) j$ w9 t! @: |" `4 E(autoload "edge" '("edge")). S, e: W {8 J2 o
(setfunhelp "C:edge" "" "edge")6 O4 X+ j* D+ ]5 |
+ Y4 f8 I; O! z* f+ N3 u(autoload "filter" '("filter " "filter"))7 E$ _4 Q1 g/ `7 t
1 F/ G* D& p, q3 ?; E* m(autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
; K8 }4 m& g( n1 o- V( H$ i "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
) V8 {8 X7 e: w6 ?% `)
- i0 E" h3 R8 D4 @(setfunhelp "C:3d" "" "3d")6 w+ ^" b2 t: \: e
(setfunhelp "C:ai_box" "" "3d_box")
. w/ _: |5 F9 w6 L M4 v. P9 F(setfunhelp "C:ai_pyramid" "" "3d_pyramid")
/ h* j2 }$ I2 q# m- n(setfunhelp "C:ai__wedge" "" "3d_wedge")
" H* g; ^3 Q; ~5 h. z(setfunhelp "C:ai_dome" "" "3d_dome")
% P$ r* W" a) ^& W: }* O" R(setfunhelp "C:ai_mesh" "" "3d_mesh")
) ~2 t: U- Q. y% {0 d7 n1 G(setfunhelp "C:ai_sphere" "" "3d_sphere")& q$ J0 y$ h9 L: p. J4 r# r$ B+ o
(setfunhelp "C:ai_cone" "" "3d_cone")
5 c# _1 G4 l, F* T2 f1 Y, M(setfunhelp "C:ai_torus" "" "3d_torus")3 J r: }5 T# |/ g$ q
(setfunhelp "C:ai_dish" "" "3d_dish")) V0 L3 _2 O+ L2 ]
7 Q& B# |' y3 {* W) R(autoload "3darray" '("3darray"))* U$ U8 X3 ]. q! [# t2 X8 S' }# D: [
(setfunhelp "C:3darray" "" "3darray")
' A8 W/ [2 f g+ G
/ S7 j, {. m2 _5 ?) I/ q7 H(autoload "ddvpoint" '("ddvpoint"))1 X, _- C9 q% i% q7 e2 G0 Z2 `
2 W/ P3 [% B9 s7 M. F(autoload "mvsetup" '("mvsetup"))4 F5 o& c: w4 ^" ?
(setfunhelp "C:mvsetup" "" "mvsetup")% x4 ?6 X8 p. o5 l5 p1 {
$ ?( g# B1 [' x5 ]* o& d* g4 G/ x(autoload "ddptype" '("ddptype"))4 s7 i: E+ k5 U. z* W
, Z8 A/ ^0 w/ D8 j# h+ Y
(autoload "attredef" '("attredef"))- m, ^! }1 k r, n k' Z1 Z7 K
(setfunhelp "C:attredef" "" "attredef")4 b6 d. `5 \& U
3 l& b0 F2 N) N
(autoload "xplode" '("xp" "xplode"))
; m, g! R3 s5 e0 G- w4 m H(setfunhelp "C:xplode" "" "xplode")6 w/ ~# e. [5 E8 l& K: q/ [6 e- Y
$ e% {6 l+ [/ T1 {
(autoload "tutorial" '("tutdemo" "tutclear"
( k- ]; N$ P; i( o "tutdemo" 5 Y- v) {% H" l
"tutclear"))% V. J1 M0 Y' W9 R8 F. ~ y
/ \4 L3 \. |* E, \1 q7 n
;;;===== AutoArxLoad Arx Applications =====
, s9 q0 _" A9 z) b Y8 N N+ F5 {8 H. T7 F5 T" | | a
(autoarxload "geomcal" '("cal" "cal"))
3 S/ H! P' ]6 L' x1 _: p/ r( w1 Z5 w! J) { h
(autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
7 z2 D) q2 U7 n3 E4 U" \ "mirror3d" "rotate3d" 3 u D' h9 b3 a! b, a$ z @
"align"))* T; v# h2 E. i& `- O8 ~! s
M |$ Y) M( M* O
5 x; I: O l/ y& H& _- |; c
;;; ===== Double byte character handling functions =====
& [- n0 G3 p% ]7 Q2 S& E
! r" G2 g1 m" q# I/ A5 t(defun is_lead_byte(code)
- a; q- R9 w3 m K# C (setq asia_cd (getvar "dwgcodepage")). `3 a0 a5 k6 C+ ^6 T
(cond/ }. q6 S( O- Z5 y1 g. E/ T
( (or (= asia_cd "dos932")
9 v/ j, M9 q, i2 F (= asia_cd "ANSI_932")
0 H9 t: Z1 L3 F, p+ j5 C% ^ )6 X4 L2 ~( ^. `
(or (and (<= 129 code) (<= code 159))
4 Z _' n0 N5 n! {. a& y/ S9 Z (and (<= 224 code) (<= code 252))
! ~, ?( Z! V$ Z$ T )
; l1 s* h9 ~* N- g )
" M6 E0 E; l* j+ T; k ( (or (= asia_cd "big5")
7 a8 c0 n7 X9 ]7 F (= asia_cd "ANSI_950")* a; e# L2 y# p2 @3 ]
)
3 l/ p7 Y! K9 N4 \& ? (and (<= 129 code) (<= code 254))! Q9 d2 t8 r+ f H+ x. S0 V
)
2 e1 a8 A6 d: L4 h0 Q8 l, h ( (or (= asia_cd "gb2312")! w) U: f, r& f5 [
(= asia_cd "ANSI_936"). }/ T# Q* S5 X4 W" G( H& |6 Z6 U! o
)
9 _2 u0 x- h9 r (and (<= 161 code) (<= code 254))
+ y& g {% ?$ Z )
2 j4 U+ i2 p# ^ E3 i ( (or (= asia_cd "johab")
5 a2 C$ G* e& i/ g9 y* k, ` (= asia_cd "ANSI_1361")
0 g+ z6 ]5 c: Q* g6 X# W ), V6 t* X$ F9 Z! `! }6 T2 h* V7 N
(and (<= 132 code) (<= code 211))
1 [: z, r- A$ y8 M- U5 S E )& @2 A# M* x ?% n4 W# f# h
( (or (= asia_cd "ksc5601")
1 @3 h) K, r) f, Y" {6 I! T0 i (= asia_cd "ANSI_949")/ K8 x; d% X; f0 c& `; i+ N
)
$ i' M# K ]1 X2 ^5 A (and (<= 129 code) (<= code 254))6 Z# ^* y7 {& B5 \% o f
)
7 c- h; ~+ E) D( N* z4 ~9 [! k8 O )8 U* {1 r( f( t1 u* |6 p
)& h9 ?, b( q& {: J
- p3 r, D, i) i+ X( w9 r7 \
;;; ====================================================
$ C/ r% Q- L2 ^2 B& C: N/ G a. r3 M! e, ]- t
$ w9 D% F9 k1 h+ k# r9 S
;;;& z6 ^1 ^+ c; {, N
;;; FITSTR2LEN4 C5 m$ D2 S; l: c1 i
;;;
p' D. V! I& s* U! {, T" Y' ?;;; Truncates the given string to the given length. $ b# W6 e* g4 u2 m
;;; This function should be used to fit symbol table names, that
1 Y" k, {; @; |;;; may turn into \U+ sequences into a given size to be displayed! Z4 V5 r' {; c" l2 {
;;; inside a dialog box.5 W9 e2 ], Y8 S! v/ d4 {7 w
;;;1 F2 b- g' J9 |" r
;;; Ex: the following string:
) X" y! }6 A) q- o9 @6 L7 L;;;7 s( y: |% Y t& M$ C
;;; "This is a long string that will not fit into a 32 character static text box."
, B* I% c1 i, n! K+ s$ T! |, a. K;;;$ P' g$ M/ L) z6 y- f O
;;; would display as a 32 character long string as follows:
: R, a, t/ F3 h: f! @;;;4 O8 Q" ^3 [' n3 j1 k/ n8 y0 A( [( Z
;;; "This is a long...tatic text box."3 p3 w$ o6 g* _6 h- q& S
;;;. A' A5 U9 Q8 l! h3 _' i
9 T# N+ h. J/ X' p, s
(defun fitstr2len (str1 maxlen)
$ k2 ]4 K3 u" v0 L+ h( w9 J" K* j5 D, g/ ^
;;; initialize internals
# Y5 i: E+ |6 v- M/ a (setq tmpstr str1)$ J, z0 P. [! @
(setq len (strlen tmpstr))
) q5 R% y& E2 t C k$ K; }% W
& O2 g% H$ q/ i9 ] (if (> len maxlen) 4 \% R* }; ]; ^+ j9 z
(progn3 P$ R. l: N* [ q. |; z( N
(setq maxlen2 (/ maxlen 2))7 f) y% H& L; c/ k5 y3 ~
(if (> maxlen (* maxlen2 2))
! |9 ^9 I+ d7 H (setq maxlen2 (- maxlen2 1))- e, d8 j; U) m9 p0 A$ Z
): m& M- [$ w+ E& n
(if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))- z- H# `, y( M+ [) q" Y: p
(setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
) L7 A8 g7 E L5 J (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))8 U$ h. T; `9 W( n
)( B- H- r6 R, ?' a
(if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
3 L9 s- _ y7 D& U) K3 z6 Z$ J (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))( Y; Y' f- q* ?4 @ c. _
(setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
( `/ Y9 `: Z& U6 k5 ]& k+ [; `5 a )
" y7 [" w7 V! F C N& U (setq str2 (strcat tmpstr1 "..." tmpstr2))
6 L0 r& a% d0 U% w/ \6 Y ) ;;; progn$ C' G. `4 T1 l' l o
(setq str2 (strcat tmpstr))4 [- d# I. M1 S5 ]& n. i* k! t
) ;;; if
3 P$ f9 _- c' R# h) ;;; defun, H& l8 I" ^5 I5 F6 K
$ c! L* Z _, m9 S) D( E( ?
* a+ u% d6 O3 ~4 \7 A
;;;9 I7 ~* f D+ x! ~
;;; If the first object in a selection set has an attached URL
4 E0 o7 h# `0 K2 v ^3 g;;; Then launch browser and point to the URL.% v' Y6 W& p5 q& G
;;; Called by the Grips Cursor Menu! f: b# F' b# z
;;;( Q2 x- F( X' T r" M
|! U3 [; d( G% A Y0 k1 @, ^(defun C:gotourl ( / ssurl url i)/ C G3 c" F& T, k& B
(setq m:err *error* *error* *merrmsg* i 0)
% _6 K' p+ Q: `( O, N0 K* b" f) J/ O2 ]# j
; if some objects are not already pickfirst selected,
" \+ t% u6 _. i& o3 G& Z2 ?; then allow objects to be selected
: o( ~' {/ b0 D2 i
7 G' @2 E* y% w& Q (if (not (setq ssurl (ssget "_I")))7 e( U' A, d# @, u2 F( E s% {
(setq ssurl (ssget))/ D' Q3 u# `6 L) @) P
)
3 u/ Q5 K g5 n4 l9 I$ H/ y9 t$ S" [. F- F2 y8 m
; if geturl LISP command not found then load arx application, m' w; j+ [% j% | f L
; `. W8 d- V) H/ c' W) y
(if (/= (type geturl) 'EXRXSUBR)
$ p3 `8 L+ y3 h1 Q: z% O (arxload "dwfout")8 r: C8 l4 Z7 j
)
0 a2 N( s5 p: G/ [
% t. w( `; e9 L. J! ^! H; a" h; Search list for first object with an URL4 C: d2 I; S& \# i3 P2 }
(while (and (= url nil) (< i (sslength ssurl)))/ p" M- o" d9 C& b
(setq url (geturl (ssname ssurl i))
) l2 R, k. W/ p1 ]$ r) L i (1+ i)). h2 o2 f! ]4 ]
)
) I) j# c# p1 j$ X! ~0 s# P- g1 h0 w1 f% M
; If an URL has be found, open browser and point to URL: h( ?; [3 [; U+ g6 w+ N( C9 e
(if (= url nil)! u, T/ \6 T0 Y6 P& @+ L
(alert "No Universal Resource Locator associated with the object.")3 q: v/ \# b2 m0 `2 \1 B$ j8 s
(command "_.browser" url) O9 j2 V u" |# ]& b
)
" x/ @! v, ]) s" S% R6 H
! k! ~8 o% D. N0 [5 k0 I6 Z (setq *error* m:err m:err nil)
! V3 Y& ?& ?$ a3 O (princ)% c9 S7 I3 U6 I: f
0 h/ M4 |9 Q o( W$ B
)& m% O" g0 I& {, @/ E& I
2 n0 u; ^3 _$ ^! I& W! C;; Used by the import dialog to silently load a 3ds file( R& b( K" i, ~+ m
(defun import3ds (filename / filedia_old render)2 D3 d4 a* f7 y K
;; Load Render if not loaded
% p8 \, `3 t3 j7 S5 {" u (setq render (findfile "acRender.arx")), V; D& o! v% n0 C u
(if render
+ w7 _! Q6 ~' f3 D: z5 A2 u (verify_arxapp_loaded render) ; h G. _$ m6 G7 X/ Q4 f' L
(quit)
2 E8 D- p7 [: _4 W" q, y )( a! i0 J* O& k% R y9 M- u
, T4 W7 p; L& \. N$ @" ~, F ;; Save current filedia & cmdecho setting.$ W8 o" y: @# d; v+ C9 Y
(setq filedia-save (getvar "FILEDIA")) F4 E" Y/ u4 C+ _7 \
(setq cmdecho-save (getvar "CMDECHO"))
, H: }7 o5 i7 l0 J# ~6 s (setvar "FILEDIA" 0)
/ z9 F. }) @4 |7 s0 @8 g (setvar "CMDECHO" 0)1 J( l+ o- E: Q+ F8 S. i& P
% }6 A& @5 p. s7 z% J: s8 d
;; Call 3DSIN and pass in filename.1 n, a- H% n1 |
(c:3dsin 1 filename)
( i. t2 O" @; g& f3 Z0 E5 B( g3 O- \
;; Reset filedia & cmdecho" L' Q7 d4 j7 D2 @" J
(setvar "FILEDIA" filedia-save), G; ]& r( k6 X; }5 A
(setvar "CMDECHO" cmdecho-save)! o+ I: Y: D7 h, B
(princ)
1 I t' M$ _" S* |)
, s% x! p8 C' O8 K
3 c; @* ?$ n7 P! F n" |; }' H$ A s, B) `: _$ T' H
;;;=== Menu Functions ======================================
, F7 c0 n( s9 @( u6 I# ]. K* h/ H! n+ k6 |$ z* D W" e. B8 J
(defun ai_rootmenus ()1 q. A: [ x6 q3 A
(setq T_MENU 0) o# m, L! E( N( X- j. ~7 b+ K. E
(menucmd "S=S"), @! P! p- H T5 [: w: ~
(menucmd "S=ACAD.S")) ?; z; _# H _ @% _6 v# h7 U
(princ)
& I/ [1 E* n, F( g# H)
7 C9 k0 ?: h% M4 Q- y
1 f4 z6 v7 X/ K- D. J$ P2 N(defun c:ai_fms ( / fmsa fmsb)% p4 R, ~5 L; o7 G1 u* y/ z- t
(setq m:err *error* *error* *merr*)
9 ^, m' j- I1 y( n! U (ai_undo_push)
0 I1 }7 n k' o0 ?' k) @ (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
7 U5 d- v8 ~" {& V+ M% D, d (setq fmsa (vports) fmsb (nth 0 fmsa))6 e- R2 y+ H; q! j; O$ v! M
(if (member 1 fmsb)8 h) e5 L' { Q
(if (> (length fmsa) 1)& a5 \ o. ^9 b3 A' K
(command "_.mspace")( k) I. ^# K" o. C5 c* E4 n$ [) b
(progn
) [7 Z$ u4 G4 a" ] (ai_sysvar '("cmdecho" . 1))9 G% I7 m& A; P0 b/ w
(command "_.mview")
6 X; `9 z1 {' K: E (while (eq 1 (logand 1 (getvar "CMDACTIVE")))6 ?/ a( g& T* J: V6 q* k0 f
(command pause)
( s) Y, z' L/ e0 J )# {% [* @4 {, k- G
(ai_sysvar NIL)8 u4 y& R0 w; A
(command "_.mspace")
0 x* j1 G; ^$ } )1 g2 J# I* e2 D! F$ }* r
)7 U0 I1 e/ R4 b3 H/ \/ P F
)8 L$ t+ P+ n/ ?
(ai_undo_pop)- p p5 ~% ]6 c9 r' m
(setq *error* m:err m:err nil)
8 P0 h4 U @. i3 P) R$ k (princ)
3 h3 q( u: j0 c& V; D! n)! i: b$ t, @6 ?4 u# y8 w5 p
5 i8 |$ ?: m8 C1 Y5 {5 S8 P7 s: N3 T(defun ai_onoff (var)
3 b5 T- n# _, Y5 e (setvar var (abs (1- (getvar var))))
7 U, m/ t) E- ` (princ)
/ d9 s, B) u$ \$ v)7 o* k; _. u% Z6 v1 I) ]$ A. l
' W) N1 `# |2 E4 k. ]+ y$ \$ I% |
;;; go to paper space2 K8 N7 z7 B @7 v2 T. ]+ g* ^
(defun c:ai_pspace ()
: f( T C; D; L8 j. E (ai_undo_push)7 |$ G8 R4 v3 }( E% y4 r
(if (/= 0 (getvar "tilemode"))
6 M, J/ a6 e9 K. c6 M& a7 o (command "_.tilemode" 0)# a( ]3 b; L3 ~/ a6 o: P% ^3 v
)
' p3 [% Q7 o6 Y% e+ P (if (/= 1 (getvar "cvport"))7 E2 u& e* x% q. h4 v( _
(command "_.pspace")4 d3 [1 k, x7 e# {, D
)
, f* ^) O* }! h: g+ r) }" T& ]& P (ai_undo_pop)2 ?, k; P: H2 v2 A0 m) [' F: ^
(princ)( i& \5 b9 @* e# N# C1 G/ n
)- U O ]" p/ J. Y |- S* [0 ?
o: V7 n$ {0 s- h;;; go to tilemode 1
+ t r/ p- P7 R; w. \# {(defun c:ai_tilemode1 ()9 \4 }: B# Q. W2 v; J/ r8 {5 w+ r
(ai_undo_push)* E: O: K* P$ {2 J( a
(if (/= 1 (getvar "tilemode"))0 T2 C' z9 G' z; Y) U) z P
(command "_.tilemode" 1)
" y" q5 p+ s' [. z g! `2 k; ] )( d' g! R) v1 D3 U
(ai_undo_pop)$ J: D0 q8 n2 _, S# v6 ~; e( V
(princ)* x/ F' P2 W9 L/ g
)( a2 z. T& B8 {( l6 h) ^7 Q6 ]. Q
' U& n. K# k3 V2 g* r
;;; Pop menu Draw/ Dim/ Align Text/ Centered
! A( I3 a7 a. A- O;;; Toolbar Dimensions/ Align Text/ Centered
. p! B9 D- Z L k8 F% G, i4 g9 J0 g5 @0 \
(defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
3 _2 s& F$ Y) ]( Y0 U; n& l (setq ai_sysvar (getvar "cmdecho"))
+ Z0 N/ j: q% J1 C (setvar "cmdecho" 0)
9 v: ]8 r+ `: a/ [: h (cond- n0 A- c3 P4 ]7 V6 m
((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))2 _5 q" }# k w: [: c, c
(command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
" _8 p! Q4 q% X "_.dimtedit" ai_dim_ss "_h")/ V @1 O6 |' ?6 A& i# Q1 g( x
)
~6 ?0 j! k8 T( n (T nil)
/ ?& Z4 D7 O. k/ r )
1 l( [/ y# Q) N! Z6 K& @ (setvar "cmdecho" ai_sysvar)
6 T# i& w9 |$ e) } (princ)
$ v! y. X) @* ~% R; K/ {)
; a4 i) _' W; m% o# }, {9 ]% ]' \! I
;;; Shortcut menu for Dimension Text Above ! _4 p1 F3 Y3 u1 [0 G, l, i
# ?: j) D ^0 G( w# t" ?+ x) K9 j
(defun c:ai_dim_textabove (/ ss)3 X9 j/ O! m& ]# a( B) m6 B
(ai_sysvar '("cmdecho" . 0))
) M3 B' q: @6 z" [, ^ (if (setq ss (ssget "_I"))
/ |: Q) M' ]5 w (command "_.dimoverride" "_dimtad" 3 "" ss "")
. \) N0 B- x5 \* { (if (setq ss (ssget))
, o/ B* w- r7 q) Y* a3 @ (command "_.dimoverride" "_dimtad" 3 "" ss "") & ^* X4 p4 `/ s& d# x
)8 U' \& U& R0 ^' h' y0 O! i
)
4 m% Q1 ]; I' L$ Z (ai_sysvar NIL)% g) Y7 Z, v/ Y% r; ^
(princ)
5 P/ c& E; \& w: u" k, O! K, c# ~3 Q)
6 b1 b" M( h T3 F5 u+ t! c
( Q+ ^9 O$ U5 R: Z1 j;;; Shortcut menu for Dimension Text Center
* W+ I% ~# c" b/ K: n0 [7 Z6 }! E" }: e! A; y
(defun c:ai_dim_textcenter (/ ss)$ a' ^( @9 R: w" e4 D h% j
(ai_sysvar '("cmdecho" . 0))
" X! c* z8 W% h: M7 \ (if (setq ss (ssget "_I"))4 D) x0 b. |( d
(command "_.dimoverride" "_dimtad" 0 "" ss "")/ z9 t# X0 J: }; j
(if (setq ss (ssget))5 ^! m5 I4 c0 C: C
(command "_.dimoverride" "_dimtad" 0 "" ss "")
( X) p- o4 P$ v )
% x4 ^; D; f) @8 X )
1 U" }4 o* P: t3 a+ s/ F- C (ai_sysvar NIL)
3 T7 T. D6 M) q2 F4 [5 m, I (princ)6 t2 ~! S/ S& p% m
)
+ G5 I" [5 E& P. m- M5 `" ^. O/ R2 }* d5 a5 ~0 a7 j
;;; Shortcut menu for Dimension Text Home 8 O# N8 b: q0 h: B
4 y+ S1 O. c8 T
(defun c:ai_dim_texthome (/ ss)) t; c8 T' Z Q9 Z2 z/ D9 V- _6 G
(ai_sysvar '("cmdecho" . 0)); |! W6 J; Z2 s
(if (setq ss (ssget "_I"))" M8 N2 S _0 l, P" r$ b# [5 W7 y
(command "_.dimedit" "_h"), m( p( Y. p3 a
(if (setq ss (ssget))
" P w }, l0 k u6 _ (command "_.dimedit" "_h" ss)- d# }; V! o( b& |/ @
)+ G) ^/ z/ O; k/ ]9 y/ ^. a8 U
)4 [2 ~! e! B8 s Z5 K
(ai_sysvar NIL)( t; I" x! P" E. l
(princ)
. O h$ K1 j, d8 ?8 r" a)4 h# ` F2 C) `) x9 U; F# O
6 O) ]) Q5 X( c' t2 v( b* c/ D8 ?+ g; @
;;; Screen menu item for CIRCLE TaTaTan option.; T' Q( I7 k& H% P
;;; first, get points on entities) B7 b( {" }& X5 p H) d& o
(defun ai_circtanstart()
/ y4 Q$ G$ J7 T; b$ \ (setq m:err *error* *error* *merr*)
& b6 s% s8 d' M, Q4 p" g U6 d (ai_sysvar
& Z6 k$ _. e) t- U$ s1 F (list '("cmdecho" . 0)
% g+ }, x" b* |9 B9 s3 `5 j ;; make sure _tan pick for CIRCLE gets same entity: F4 c$ v A, I Q) }$ V" y; u
(cons "aperture" (getvar "pickbox"))
. c) H9 ]0 ~; L3 @6 ]; F# m$ V; X0 Q )4 S3 p$ o) ?9 i* H
) x% @8 F, {8 i" v7 n
;; prompts are the same as CIRCLE/TTR command option
* V D) m3 y$ ]$ F6 N& z, d (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
1 s8 @& Y0 L6 ]% ~2 A$ c5 G (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))# Y$ b$ Q# y0 u4 T: I( G
(setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
6 x% D3 H' c8 J6 ~' o" M! {. ?)* r' v w4 h) c2 n7 e: H
;;; Command-line version; Y5 a5 b' e) K; W, f% Z9 J
(defun c:ai_circtan (/ pt1 pt2 pt3)
% b/ y/ f; j5 x1 p# `7 w (ai_circtanstart)( L& `% _/ m/ Z. d! @) B: s
4 i5 I/ j7 l/ q4 k& Q {4 U: B" U: \ (ai_sysvar '("osmode" . 256))
* F6 h4 \9 v5 i (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
& k( [0 k) G) L3 q
4 N* e: s; b2 W `+ X) y (ai_sysvar nil)0 t/ a& }: l8 M- \* Q1 P
(setq *error* m:err m:err nil). ~9 k8 n+ k$ t# h
(princ)
7 g# a9 c- j) w! j5 @" G)" J0 n/ M, e2 ~9 x
;;; Use this if CMDNAMES == CIRCLE
, A/ p) X7 x. u# p: B8 t; H7 e(defun ai_circtan (/ pt1 pt2 pt3): c8 I+ k* m& ]2 s3 S! A: P. \
(ai_circtanstart)5 w- B. X! [2 c$ O) j3 ~
+ t7 ?( J: _6 K, b/ W9 M9 j: v
(ai_sysvar '("osmode" . 256))2 W: C4 {2 x7 I. h$ Z
(command "_3p" pt1 pt2 pt3)
2 @2 ^: u4 P/ ?! G& b# R5 j7 k* y" S& l
(ai_sysvar nil)
# p- K4 m n6 {! M5 _ (setq *error* m:err m:err nil)0 P$ P" s9 T7 I/ W4 u
(princ)
6 w5 \ p( p7 S! u1 H: y)# S$ h8 S9 N$ N9 |" `# ~% N
) z( d& E+ A' t
7 G% \ t) ?. l7 o: ]# d4 V- |- e& k- ]2 S
;;; Shortcut menu Deselect All item.+ G+ G2 ?# E W; u. w, I/ ^0 ^
! ?5 x2 F! X+ m O! z(defun ai_deselect () z3 l0 _, S2 S5 S+ h
(if (= (getvar "cmdecho") 0) ;start if
( B V0 y8 W J) ~, J (command "_.select" "_r" "_all" "")0 Z4 ]. m; A- m* Y+ S. z
(progn ;start progn for cmdecho 11 _0 z/ t7 |! M& D
(setvar "cmdecho" 0)
9 Q/ `$ D1 n Z& L$ U. L (command "_.select" "_r" "_all" "")
/ T' N: r- x' o3 s! @: { (setvar "cmdecho" 1)! B1 R% }9 {0 R0 E7 }& g; f
) ;end progn for cmdecho 1
- T% v; b* I4 o* H2 |3 j ) ;end if
8 l: o8 n* x( H1 r (terpri)
3 f$ Z7 h+ E' k$ R [; ~( ^ (prompt "Everything has been deselected")9 t4 l* ]" X- i: Z* v2 m$ b
(princ)7 F2 H. y; S4 c C4 I6 I; }
)( i+ {" t, n( v S/ I8 i
2 L1 w' t8 k+ \9 ?
;;; Command version of ai_deselect to be called from the CUI5 w6 r( w, f8 {
;;; so it gets properly recorded by the Action Recorder% ]' _! z0 @+ h# C; p- ^' p( U
;;; H: C. w# P; `; k& }, e
(defun c:ai_deselect ()
8 x9 y: \( V8 k (ai_deselect) e8 }# C4 V7 e
(princ)
U: L9 e6 i6 a# [) @% Z$ D9 s2 q/ Q
1 I& y4 l \+ X5 P% K;;;& T3 S% Z2 Y7 Z7 _5 {9 X8 y. j
;;; Enable Draworder to be called from a menu7 n1 f5 O2 Z: w, D0 B+ h, {
;;; Checks for Pickfirst selected objects
; A m% F! j6 e0 w' _;;;
4 ~; w8 d7 K! d; Z: g# d$ G" n; Z4 A! j+ A! v
(defun ai_draworder (option / ss )
' E p5 x6 o. c2 P- W6 a
% `5 R* v5 h% p/ ]$ A6 ?' i5 G' p (setq m:err *error* *error* *merr*)
( ?! n4 \5 L& }3 J& J! E' f (ai_sysvar '("cmdecho" . 0))
_9 C3 m3 t8 \( G0 I; Z. }
2 O' m' w3 [5 @4 [6 P (if (setq ss (ssget "_I"))& M2 J6 x' F( B! j* f5 \6 |7 T
(command "_.draworder" option)
' q- j4 S4 x2 i0 M Y (if (setq ss (ssget)); q0 u* V# A" a* B! j5 n/ T
(command "_.draworder" ss "" option)
; k: Y- Z+ s0 X/ V. r )) k5 t4 x+ O( r; o
)9 P5 D; K6 B( ]3 ?9 R8 h+ _, j% r
(ai_sysvar NIL)
; B* d; F4 M2 }. D& T (setq *error* m:err m:err nil)
0 }( B9 L ~) Y) \* H$ F3 h, ~% _' B+ y8 W
(princ): u% V0 E2 }/ g @
)
6 @' o2 ?' T. u5 h5 `; ]. A) R. Z/ O7 \. T/ Y: l) r
;;; Command version of ai_draworder to be called from the CUI- v& o: |# }' v4 t+ Y
;;; so it gets properly recorded by the Action Recorder, e6 H, y7 S% y
;;;
* g" m0 [/ J M+ @# s5 y1 \(defun c:ai_draworder (): Y: x3 a! }2 D! r2 Y
(initget "Above Under Front Back")3 o9 M) X$ I1 O% [' }. o5 M2 R
(ai_draworder (strcat "_" (getkword)))
3 q$ R' A, X3 q u: {9 q, S4 T (princ)
6 V; A& w! A- m! {)( }9 E& {% U* r- g0 ~" H' N
+ F" i+ Y6 a$ O* E, d/ q
(defun c:vlisp ()
' h: y1 e2 N& _4 V8 l( C (if (/= nil c:vlide) (c:vlide))
9 a* K) T6 R( j- ~: A [)8 }3 i/ l# c; N9 \
, e0 ~* z+ e$ c8 r8 W
(princ "loaded."): c; J8 E5 I4 T
" c* n: s/ ~. ~* v N;; Silent load.' X3 A/ k+ E3 Q0 x
(princ)9 Y" L. \/ w1 M# x3 l5 S; o7 ]9 M
/ J4 M' _# R. `: ]/ P' d
7 E* U( q' `# d' d* W7 L! b# c
m5 m1 Q% H# l1 q ^6 i. G
;;;----------------------------------------------------------------------------) F0 s1 H$ s" m3 k: W/ u
;;;: Y+ X3 l+ r$ S: j0 J/ h# x/ S- V
;;; DDCHPROP.LSP Version 0.5( R3 m5 K2 w- H# \" `
;;;' |) x5 T) r$ }* ~% A% M* A
;;; Copyright (C) 1991-1993 by Autodesk, Inc.: q/ u0 f* q( @- \4 r
;;;" @# l5 I k: _3 q8 C
;;; Permission to use, copy, modify, and distribute this software9 X& l7 ?' w8 B: I/ z5 h
;;; for any purpose and without fee is hereby granted, provided9 a0 \0 U! k$ s; Z3 G% q% r0 F
;;; that the above copyright notice appears in all copies and that
& Y1 G; C$ ^, p. `* W' `;;; both that copyright notice and this permission notice appear in
4 o0 h* k& S; u2 ^;;; all supporting documentation.
# J: T" H1 o$ y% Q* S5 w# I6 O;;;
p; ?4 g+ c% ^) o- @; T;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
, ?+ I9 _9 g4 }& M" w;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR3 o9 e) R+ X0 L2 p
;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
+ ^% e! [3 y+ D7 Q;;;
3 i2 U- Q/ E* F3 [' G% v8 h;;; 2 February 1992
@+ ?2 R) ]$ Z" A; p9 X( z! L;;; u/ B$ N0 \% \& z# e! G7 X& R
;;;----------------------------------------------------------------------------) t* c9 c+ Z. R6 V2 ^6 p8 U9 l6 o" }& R
;;; DESCRIPTION6 F7 [- E2 v+ W
;;;----------------------------------------------------------------------------/ U) f2 u1 [- ]" }
;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
& d1 _& h" X; ^9 J: v;;;
' ^! w, ]8 a+ X3 b: N% m+ n;;; The command looks similar to DDEMODES. The main dialogue has an image
! B* A4 X$ J& W# o v6 J;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). , ?2 a# S; `% x a
;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
& q( T- N8 L" K9 m) D9 l6 m% P( v% `;;; The dialogues are all defined in the DDCHPROP.DCL file.
" k- I# m) H; P. W" s;;;
$ m1 j. D) q$ C* i5 T- x2 h;;;! E; j2 ]3 n: i& k0 P, `# `
;;;----------------------------------------------------------------------------; J1 Z- X; B4 j' D
;;;----------------------------------------------------------------------------% h& ]: Q {, a1 ]% C7 o
;;; Prefixes in command and keyword strings: + M7 N" @# l3 I% g4 F
;;; "." specifies the built-in AutoCAD command in case it has been
1 V/ Z) u5 i7 h) C;;; redefined.4 k7 V X, N2 }# `$ F. k- @
;;; "_" denotes an AutoCAD command or keyword in the native language
3 V5 r3 Y1 K1 c) y;;; version, English./ V, V a& i( \" y6 m* W& A
;;;----------------------------------------------------------------------------. p, F0 x, K/ m, ^! @+ H: F# E( ^
;;;) _* T% j+ R1 T' t& x
;;;
/ V" U8 I, K) ?* ^$ C* H6 d( X;;; ===========================================================================& \$ y1 O9 h( s0 G5 O- ?1 g, Y
;;; ===================== load-time error checking ============================5 k" H. \0 e# R& v D
;;;
/ T) T& y! l) f5 @3 @; q3 n
" n7 ^8 V- ]: x1 f (defun ai_abort (app msg)
$ ~1 x9 w T# v (defun *error* (s)( w. l: j. P+ t, }
(if old_error (setq *error* old_error))9 n5 Y* M! |( R% {1 P7 M
(princ)
7 Q: v4 U2 D6 _- N+ E: V )1 ], ^2 @4 @$ x& U
(if msg
+ p: o& p/ i. a" \ (alert (strcat " Application error: "
' I) \" m) i- P' V0 B app! h& x0 X0 V. x$ W
" \n\n ") V/ Y6 p$ P, R1 l/ V& b
msg0 w2 |' l# N X( n4 M* z
" \n"
5 D6 e: W6 l: ~4 H1 a; [# d. `+ [ )) q6 c0 @% v5 u' e* i
)# O9 e5 L1 K7 y% O
)
- w' I( ~! H" A6 l2 {/ ] (exit)! b! G: G9 t6 j$ t
)( B' f8 n" P8 Q f5 u5 }
& [" h- r! r0 m" K2 Z
;;; Check to see if AI_UTILS is loaded, If not, try to find it,: l7 A& Z& x- M1 Z4 E1 b
;;; and then try to load it.$ Y" W7 s8 B; ]2 R
;;;: c V. F: ?7 e z/ F
;;; If it can't be found or it can't be loaded, then abort the" m/ R& X$ }9 ]& M! f
;;; loading of this file immediately, preserving the (autoload)
4 l5 H5 X1 P* l7 H' J' w;;; stub function.
8 E+ H( K8 Z! N+ v
. L; \& ?: e$ t! \ (cond
, B' n: S% o( ]2 R) z) ~7 T ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.( j. ?$ m" ^$ D5 |0 ]$ G, A
, F2 |' ~8 g+ v9 W
( (not (findfile "ai_utils.lsp")) ; find it
& u1 J6 b/ Q- v# d; R, b (ai_abort "DDCHPROP"
: J1 \3 h+ ^/ `2 _; h% r (strcat "Can't locate file AI_UTILS.LSP."
2 T5 y, c: h& {9 B! u7 `1 S, y: e "\n Check support directory.")))
5 w) O( }8 k( f4 U6 h0 Q) Z
9 n* E, ?/ s5 D) _9 ^+ R" } o ( (eq "failed" (load "ai_utils" "failed")) ; load it- \& R2 I8 W8 B) T4 m8 u! `- s
(ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))3 E ], k+ l$ C& i
)( W1 e3 [; ^, A
' j4 ~, V+ |1 `- | (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP! |% [0 X8 x% n ~4 Z* o8 `! E7 u- m
(ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses! K: F7 W0 X4 Q$ n6 A& K
) ; ai_abort's alert box dialog.' ^" m5 G3 d1 t/ e2 p
- C3 C$ Y3 e( ?9 r2 K
;;; ==================== end load-time operations ===========================" }3 {1 a% w; }4 ?
9 j5 T- N0 S0 i, i: ?- x$ [; X, t;;; Initialize program subroutines and variables.( f4 z. B0 P: A" d; `4 r
5 V: ]5 B8 e _+ ]% }
(defun ddchprop_init ()
0 J' ~8 e7 J* A: p; G0 c7 H# q9 S' x( m
;;
7 L( ?0 `3 @5 I, m, z ;; Define buttons and set values in CHPROP dialogue box
! J0 Y" g7 ~! P4 Q; M I6 {3 O+ } ;;
4 G' }5 F8 R+ h7 v5 R$ R (defun call_chp ()9 G8 n/ j3 L& C3 v
(if (not (new_dialog "ch_prop" dcl_id)) (exit)), [, u& L9 V! Z9 i; r
(set_tile "error" "")
0 m, L, f g- c( z; t ;; Set initial dialogue tile values
! q, ^2 c. m" Z& I- o3 V8 [' q" e, U (set_col_tile)& B% Y9 j$ \7 j6 J$ S) S
(if (= lay-idx nil)+ S9 S0 m% u; s7 c: r
(set_tile "t_layer" "Varies")+ D9 o; g! R5 \# q* Y
(set_tile "t_layer" (nth lay-idx laynmlst))+ W+ b0 W" T7 w6 W
)
) l. T9 v1 Q5 a" \: x1 X (cond
- P' L3 W. P, U3 }' G2 X ((= lt-idx nil)
! ^! E1 z, _. }* \) ?# s (set_tile "t_ltype" "Varies")
* a. a/ i5 s4 G' ?) H% X- f) { )6 s6 F& K4 W/ S) z
((= lt-idx 0) ; set tile "By layer & layer linetype"# N. y" o+ c2 b
(set_tile "t_ltype" (bylayer_lt))- @6 L6 W1 d# x3 W
)
0 O% K) z( ~! g1 ~# I7 t (T + d( N8 h1 K( a; {. B2 c
(set_tile "t_ltype" (nth lt-idx ltnmlst)). d9 K) m& o9 J
) H; f, R6 c, b" T
)+ e7 D: O/ \) w; b
(if (or (= ethickness nil) (= ethickness "Varies"))
/ o0 K" z- q. [ (set_tile "eb_thickness" "Varies")4 g+ D+ \ f7 R
(set_tile "eb_thickness" (rtos ethickness))
! p. P- ?2 j& v, }8 I& J )4 M. y+ T3 L# N) \
;; Define action for tiles! ~- ^. c9 @# O* e
(action_tile "b_color" "(setq ecolor (getcolor))")' d0 a7 q6 i" E8 D
(action_tile "show_image" "(setq ecolor (getcolor))")8 t2 p9 @: L2 r& {
(action_tile "b_name" "(setq elayer (getlayer))")
& T8 U' l/ I# \! D, W) V3 [ (action_tile "b_line" "(setq eltype (getltype))")( L" D6 o; }, w* j. u0 k7 v; G% B( e5 ~
(action_tile "eb_thickness" "(getthickness $value)")5 U' R0 x! y, e: ?* t8 c
(action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")2 q. m+ [; z/ I# f) v! `' G
(action_tile "accept" "(test-ok)")
2 O4 D: J' W" A' Y& Q( P5 n0 c (if (= (start_dialog) 1)8 {& I( b5 E$ o, t$ z3 v) S
(progn+ o; |- s# c4 L' E6 a" V) h
(command "_.chprop" ss "")
9 B4 k4 W$ w# p$ j; Z4 } (if ecolor* ~3 H! Z) o4 |! e) H
(progn% x- f8 M5 a7 V/ P
(if (= 0 ecolor ) (setq ecolor "BYBLOCK"))& \. X* \% F& g# R/ M
(if (= 256 ecolor ) (setq ecolor "BYLAYER"))5 `" t: F8 Q& t+ P: f- X/ k# C6 E
(command "_c" ecolor), y p. p) C. N4 W. ]) `" Y$ ~
)! Y8 B* |$ i% Y, C* g, r0 ~
)
7 w8 a7 t; Y1 O j (if (and (/= eltype "Varies") lt-idx)
8 n' b/ t; N. N4 E. i3 t (command "_lt" eltype)
3 a! q6 S8 O# Q) U4 G, [1 p9 D ). D1 e% A Z y% ^$ d$ s* w8 E
(if (and (/= elayer "Varies") lay-idx), g8 S* Z5 J. y/ Q% G k0 a- X6 {
(command "_la" elayer)7 Q+ c9 r, |/ ~: S& A S
)
6 ~8 a9 n7 j& M) j- f (if (and (/= ethickness "Varies") ethickness), V3 J- L& q, j8 L
(command "_t" ethickness)
* B, G# W9 i8 a! b+ b8 |1 A )$ i3 ? M- k4 e
(command "")
c. v& e7 Z, a; l( K1 x8 s! a )
2 N( c: p$ ^$ f/ D# i5 T (princ "\nProperties unchanged"); I9 G2 D6 O; ?
)
' u$ _( [( Y& B0 M! g (princ)3 X3 V- T9 D6 ~% z
)
& s% Y* `6 Z6 a8 ?" i ;;; q. V! z+ q9 H& w& n! v: l3 J8 W6 K
;; Function to set the Color text tile and swab to the current color value.
$ H9 @. S5 P0 G, c6 r, p4 K ;;
1 u" Z: s0 n' p; a (defun set_col_tile()4 r( k& F9 d" u# ]/ S
(cond
. _9 l( W; T/ O" N9 \ ((= ecolor nil)
0 x# t4 b6 t$ J" y# y/ B) g (set_tile "t_color" "Varies")
( G: z0 H, g" ]8 i, v (col_tile "show_image" 0 nil)
; y4 f: e5 N. b9 a" N )
4 t* R5 _0 O1 Q+ @3 R6 G ((= ecolor 0)
" L X" ^, \& r! ^& y (set_tile "t_color" "BYBLOCK")- f2 p# r @) G+ B. p. g% X. k8 N
(col_tile "show_image" 0 nil)5 ]: Y+ L, ]5 b- u) [/ C7 P( K0 |
)
' {: P H, E, Z7 A) [2 p ((= ecolor 1)
) B8 a2 w9 y8 G5 L0 I; D' R (set_tile "t_color" "1 red")
" I# i5 U: ^! Z# K (col_tile "show_image" 1 nil)+ W4 X9 _& b# e; p
)
* V) B4 |# k8 }5 _& w ((= ecolor 2)* y% I3 f8 Q1 E5 h
(set_tile "t_color" "2 yellow")# X* z! s, T- `( h* c7 R
(col_tile "show_image" 2 nil)% s, ]. _6 _/ r# v6 j3 |8 D$ m
)
" L( c k% ~" u9 [0 V ((= ecolor 3)
& e \: O: ^6 B, r (set_tile "t_color" "3 green") x( {" J9 ~& Y& j+ f, }% n
(col_tile "show_image" 3 nil)
, K7 ^- U) }+ N' [ )
' y' [$ ]/ Y/ _" |* U, P. X' \ ((= ecolor 4)
/ X# ~, f# n4 U0 n/ w8 R (set_tile "t_color" "4 cyan")
& E- w( b7 e2 h# g3 _9 P (col_tile "show_image" 4 nil)* f) H1 R0 X& i
)
- L% d; L- d) m% C# B ((= ecolor 5) X" ]" W5 y% h0 Z" \, R
(set_tile "t_color" "5 blue")5 p* N9 F% s p; a
(col_tile "show_image" 5 nil)1 P: P+ p+ R6 v) q9 M
)
4 k ]" [7 d* q* S( j ((= ecolor 6)! l- V$ P; B& c% w
(set_tile "t_color" "6 magenta")4 D6 D) V( y. Z8 q: T- `
(col_tile "show_image" 6 nil)# {! i$ Q6 B7 y4 \; b, _1 c1 G% y0 H
)
3 f% l/ W8 Y$ b$ N3 R ((= ecolor 7)
& J$ `2 B$ I; P" [ (set_tile "t_color" "7 white")2 r+ \0 Q) H6 n% `% T
(col_tile "show_image" 7 nil)/ Q. s4 s8 }- Y, @ d- P) V! ]
); ~8 P$ V( w2 Q' \6 ?
;; If the color is "BYLAYER", then set the tile to7 t; r9 {1 f: |( u0 G3 @8 ^
;; show it's set By layer, but also indicate the
4 l, }$ O1 a4 r N ;; color of the layer - i.e. By layer (red)
4 U( r0 F7 S* j# D ((= ecolor 256); U2 F' {" G1 w9 [ z4 d7 m$ Y& h
(set_tile "t_color" (bylayer_col))
; S( M* p( O: \1 w4 ]( w (col_tile "show_image" cn nil)3 g+ q9 m. U* u- b
)
7 V2 k. U1 P8 t. k- E- P' R0 X5 E# M (T
) c( i& @4 o/ N* @3 x m4 Z (set_tile "t_color" (itoa ecolor))4 [! F: ~! u8 u+ \! V
(col_tile "show_image" ecolor nil)! f1 `" a, M5 q0 E
)
+ n+ A- H0 z6 \' h, `; u )( x: I1 Y+ B9 q' M% n7 ^
)
9 q% a6 E% k# U, [* w$ T, } ;;
. Y" x; q2 R' t$ e/ X4 j ;; Function to put up the standard color dialogue.1 Y& x K7 @6 p
;;- K2 }# o. a& N+ H% N
(defun getcolor(/ col_def lay_clr temp_color)
7 o* U; j4 y# x# `, D3 y2 C* h ;; col_def is the default color used when rq_color is called. If ecolor y6 p1 m; O" q$ B: |' `
;; is nil (varies) then set it to 1, else use the value of ecolor.
, ?: L5 ?( s) f' [+ G" {5 u2 f6 Y3 V4 | (if ecolor
0 @' D$ j# ]( x (setq col_def ecolor)
; s- R& u8 J1 @6 {% H8 B. H4 K (setq col_def 1)! ~5 p* Q$ z% u9 _+ t9 k4 l' h9 \
)5 T* k4 b) v3 d) r
7 O, o; }6 _4 C7 ^" T1 F ;; If we're working with a single layer, get its color
2 }: _! V. ~* \% x ;; for use in the color swatch if the user selects color BYLAYER.
! Z0 m4 o3 [- x/ D5 T. o( W (if (/= elayer "Varies")
0 y- s6 C! ^% l$ l# e/ c (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
, N# {/ w. d7 [; `$ l- _ (setq lay_clr 0)
4 _* n( j9 M7 B )" w" {! P0 Z' Y, b$ _( M7 r* b9 ^
(if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
) U4 }' a; Y/ C( O4 L (progn
" y& G5 N: e$ u/ _9 q8 P) K( C (setq ecolor temp_color)
5 Y0 A4 O( L- o- k+ }; `' n (set_col_tile)$ V$ w' ?3 M, b: D
ecolor
9 `8 p' F4 s& [% D" Q' p )
7 b( v4 ?- T/ F ecolor* T) g3 n6 F9 g6 |3 P
) M: r: |6 q5 z" f7 @% K& s9 k
)4 Y$ L6 p& _6 _8 b3 b
;;
. z, q& h8 y& o- |2 N, N ;; This function pops a dialogue box consisting of a list box, image tile, $ b0 C+ ? K% D9 m9 O
;; and edit box to allow the user to select or type a linetype. It returns
& {/ R$ S; l& q6 s6 y ;; the linetype selected.
- n& f1 B: U$ H y q2 R4 k) n) F ;;
3 M8 f; H2 p0 G+ F/ s% g# ` (defun getltype (/ old-idx ltname)
1 F5 [' M6 M" N% M5 p5 Y ;; Initialize a dialogue from dialogue file3 i8 r, h$ G" s2 X0 N
(if (not (new_dialog "setltype" dcl_id)) (exit))
' i$ A' d# U7 G' t* L* }9 B# O) } (start_list "list_lt")
6 t/ X; ~( P4 g# P }) q' { (mapcar 'add_list ltnmlst) ; initialize list box: C9 a# V; k: ^# [, P: K3 A
(end_list)5 L+ F4 J7 h& F: P
(setq old-idx lt-idx)0 l1 [/ d8 S. t5 i: p
;; Show initial ltype in image tile, list box, and edit box4 t/ |6 N; d0 z9 g m+ c5 ~
(if (/= lt-idx nil). G$ W3 Y# h' B1 k0 V# h0 O
(ltlist_act (itoa lt-idx))) I! Z8 l8 Z/ {3 @, u( s
(progn
! E- }8 b: s- I- _% L" E" [ (set_tile "edit_lt" "Varies")
9 }. [1 Y4 y6 B0 K+ C (col_tile "show_image" 0 nil)7 y: x1 J' m) O' U
), v2 R2 n3 v' E. U1 \) K
)
0 [4 ~+ Q3 I( y* C% V* e$ H (action_tile "list_lt" "(ltlist_act $value)")- m4 V# O' f+ H. _2 z; I
(action_tile "edit_lt" "(ltedit_act $value)")
; t- h& ^! V! p/ L. x1 R (action_tile "accept" "(test-ok)") @: t/ V, t$ w: L! h K
(action_tile "cancel" "(reset-lt)")
7 a! V0 U) E z- W (if (= (start_dialog) 1) ; User pressed OK* Y7 {; o+ { g: v* B2 J
(cond $ c7 E, x5 c+ u9 Y6 K4 E0 ^0 [" x
((= lt-idx nil)
) }# i! T9 m( j5 k: \# B (set_tile "t_ltype" "Varies")
! R" o* A8 [- H: d/ b% G0 G "Varies"- C# x y4 R) V8 j1 Z# Z
)6 h7 \' j% N% ~3 k. I
((= lt-idx 0)8 a5 T$ ]* F k+ c9 M, g9 w
(set_tile "t_ltype" (bylayer_lt))
( @& K0 p3 c0 h6 v0 A6 K "BYLAYER"1 ~, S- i$ D9 X' `0 R6 x- F. i
)' {, h$ h7 o$ L
((= lt-idx 1)+ C" Z* C6 a- @9 B
(set_tile "t_ltype" "BYBLOCK")$ _! S& y6 a" {+ f
"BYBLOCK"
$ G) G6 @( g( h3 l& @$ l )/ X- D `9 w( P$ q* e0 k9 t6 [* N* n% O7 H
(T
5 [7 C6 B' t5 e* m b2 q; \3 ? (set_tile "t_ltype" ltname) 6 ]4 r8 g0 S! H3 H# {# T- I
ltname
) Y' v# p" S. Z9 }) p+ }5 P )
% U; M3 h! Q" F* Z )3 O* j0 h6 } U z/ X% U: @) Q8 h. ]
eltype
5 M6 q" p0 o, [7 V. F( @) I+ W )9 ~1 G+ }! a- J' ?$ u
)
' R/ _2 r( k' Y# n1 T ;;
# J4 J8 a6 p. ? ;; Edit box entries end up here2 o6 ^- ^1 G$ n! P2 u( q
;;
9 a/ e' P# C @3 [ (defun ltedit_act (ltvalue)5 F% K. L( k$ D' M( V% _/ x0 i
;; If linetype name,is valid, then clear error string, % z4 F9 q: a$ N
;; call ltlist_act function, and change focus to list box.; `; A, l1 P3 ]2 j
;; Else print error message.: q. \9 W0 y4 X
(setq ltvalue (strcase ltvalue))
! u4 P g' F0 F1 c( U (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))/ H! v$ [7 H! M5 |- r( Q
(setq ltvalue "BYLAYER")
9 S0 W/ P3 x; U2 r% Y9 Z$ }! R )& [7 h1 i, z W
(if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
( q- l. y1 R& @ J) j: t$ Q (setq ltvalue "BYBLOCK")5 b4 ?( s2 g! n: z
) U! V5 A6 g9 s8 \
(if (setq lt-idx (getindex ltvalue ltnmlst))
" B2 n3 G/ P2 N) K! P* B (progn8 |1 V' n. S( E9 B1 C
(set_tile "error" "")3 A, |1 L5 t( Q! C6 o
(ltlist_act (itoa lt-idx))( E1 t, d* Y5 N* K
(mode_tile "list_lt" 2)
5 {" \- T' \( O8 I0 u )
" T0 ?* t7 q6 }, E, I (progn
; e3 ^) v3 Y9 {6 Z (if (/= ltvalue "VARIES")6 H+ E/ G& E4 M' p6 g
(set_tile "error" "Invalid linetype.")" ~: Q3 k4 O! h" U
)
0 s# E$ b0 W; Q; k; n (setq lt-idx old-idx)" d6 c: A9 c/ u% K* _/ K
) 8 {% n8 U# V. |+ K! v* V/ I6 {
)- w8 b+ q4 }1 P5 k$ w; y
)$ x4 Q: p* ?6 m l# I
;;
" @. M+ d" t& k5 o. w7 Y ;; List selections end up here
/ ]1 A# @3 q) |6 [9 d& e ;;7 I" F1 H" g9 H" I2 t
(defun ltlist_act (index / dashdata)
* }) ?3 P* n' q9 ?1 p/ Z% B# J ;; Update the list box, edit box, and color tile' f3 O( w3 u% P/ `
(set_tile "error" "")! m' Z H U) @+ m; q
(setq lt-idx (atoi index))4 a) A' p7 `, E# i, Q* d
(setq ltname (nth lt-idx ltnmlst))
4 o5 O* y' B5 k7 D0 s% v (setq dashdata (nth lt-idx mdashlist))
; `' f; h N% e. H (col_tile "show_image" 0 dashdata)
* J$ E8 }9 b( \' Z: l. X; K: \ (set_tile "list_lt" (itoa lt-idx))
4 S- Z, X5 K6 B2 I (set_tile "edit_lt" ltname)
7 Q! i! v+ r/ s% t7 U" Z3 G" C& j )" I+ i7 h$ Y1 V$ d
;;
: n' a n, V# I) S. ^ ;; Reset to original linetype when cancel it selected! A, A p2 ?' r
;;
* ?% y+ I U) x3 _8 }6 Z9 D (defun reset-lt ()
/ L2 {' T% G O o# T- v3 P" W (setq lt-idx old-idx)
* s# l, A: L# h1 K (done_dialog 0)! w$ l: b# E7 ` H: i N
)
- m! g# p3 Z: F% B, i( k3 e ;;) k: z8 R, p: n# A: ^1 W
;; This function pops a dialogue box consisting of a list box and edit box to
2 R8 Y) {' w0 g8 a) i2 L# b ;; allow the user to select or type a layer name. It returns the layer name
3 ]" X2 ~7 A& a* { ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the 2 Y _0 o% D2 W9 C
;; drawing.
+ [( g, T" F2 c Y/ o8 y ;;6 V, `# r. K2 _: Z
(defun getlayer (/ old-idx layname on off frozth linetype colname)1 \8 t, R' Y$ t5 z& l, q
;; Load a dialogue from dialogue file; e7 l: D+ Y, V
(if (not (new_dialog "setlayer" dcl_id)) (exit))2 y2 ^8 X4 X4 J" k1 b
(start_list "list_lay")1 F$ N+ M" H! L4 r" A( u: r
(mapcar 'add_list longlist) ; initialize list box) b3 V! j0 w" W- M+ O+ E+ f0 l$ U
(end_list)) y" A+ a7 s9 T4 o+ K
;; Display current layer, show initial layer name in edit 7 c0 Q. t4 h3 C2 |2 h
;; box, and highlight list box.
, k, e# ?% R, |1 f7 K (setq old-idx lay-idx)% P. f/ m4 X* E. t6 j# g* R
(if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
# P) D* X0 \# D9 t+ G. D% l (set_tile "cur_layer" (getvar "clayer"))
/ M$ Z) k Q6 F (action_tile "list_lay" "(laylist_act $value)")6 v( \- T I, p8 N5 W. o- n
(action_tile "edit_lay" "(layedit_act $value)"); p _5 O" }* D
(action_tile "accept" "(test-ok)")
4 K! z1 }( k; \0 e# v (action_tile "cancel" "(reset-lay)")" l( x8 K* B" [8 J- r$ H R+ S
(if (= (start_dialog) 1) ; User pressed OK
/ I: B% K7 K5 ?8 A; p5 v (progn
3 f2 H! L/ r3 I& c0 G, o (if (= lay-idx nil) (setq layname "Varies"))& B' \8 E$ c5 [# }9 C6 y) Q- @+ x, d
(set_tile "t_layer" layname) r9 C- i0 }# y3 s* k: Y
; If layer or ltype equals bylayer reset their tiles
& r5 F: H+ J- S+ H: B (if (= lt-idx 0)& t9 Y$ b6 p. Q3 b# O# O/ @: c, s
(set_tile "t_ltype" (bylayer_lt))1 U/ u2 s# {, q! D
)5 f- H" f6 S0 e% X: ?8 |
(if (= ecolor 256)
' y; b3 _! D! }9 A6 R (progn
) F" j0 q# n- k$ D. w (set_tile "t_color" (bylayer_col))
. m4 w% Z1 I* A. W( K$ ~ (col_tile "show_image" cn nil)3 N+ h+ t9 w3 |# C9 Z
)& B% [+ c: ^5 x# o
)5 D# U3 \8 D* Z. p
layname
& Z$ A7 E# o: ?! z( O )5 _2 \6 \) i7 v0 O
elayer
" T, V- } Q$ n5 {( U9 ]: h( e u ) }3 E. y. r) y% j
). a% j( B* Q+ |3 w i: i
;;# @& ?7 v7 x4 q4 ^; S: r7 N4 t
;; Edit box selections end up here
- {2 E" U+ y- u1 D9 n+ Q ;;. U* v9 b( v8 ~$ l* a9 E/ v) t1 s* r
(defun layedit_act (layvalue)
J+ B" W# p# A) A ;; Convert layer entry to upper case. If layer name is
# ]5 O7 w/ b. P3 o ;; valid, clear error string, call (laylist_act) function,
/ s7 Q' \0 [' ~' |( y+ J3 K ;; and change focus to list box. Else print error message.
9 Y- ~" [- r+ `& R$ v( G& w (setq layvalue (strcase layvalue))* L. k0 ]" w% E) }. M, \1 |
(if (setq lay-idx (getindex layvalue laynmlst)). N2 g3 L- g" d8 f9 X7 P0 X
(progn
. E- e4 \4 [" W' O$ c; f4 ]7 T (set_tile "error" "")
- k4 o5 E9 C* p& B$ s) N. o) u (laylist_act (itoa lay-idx)). i8 t4 _& d3 |2 c9 E
)
5 \; l i. @0 d4 |) {6 p5 {& m (progn3 X6 X1 r, l q/ l2 E
(set_tile "error" "Invalid layer name.")
) E7 O; i+ |( a2 h5 I3 N8 V- @ F (setq lay-idx old-idx)* t; B4 Z' o, H z& Y/ W: R
)
. I, f) c& B' w* C9 y )
$ i4 r$ R8 v8 R" I( ?) _2 A! R )
5 Y; U, a' Z( x. I% [9 L3 C ;;
8 s2 L& s" f& `" z% V, X ;; List entry selections end up here
' ^& N2 V5 V! z; O ;;6 n: Y+ n! S7 {* ^
(defun laylist_act (index / layinfo color dashdata)
+ ~( x0 m% b }3 S) ~1 t. { ;; Update the list box, edit box, and color tile
/ y, j1 `' i6 K9 F; S- S" K: k (set_tile "error" "")
. E1 x0 ?9 E2 Y" u. [6 ]$ Z# ^ (setq lay-idx (atoi index))* {$ ^$ v# s, y1 E0 {4 D5 J
(setq layname (nth lay-idx laynmlst))3 M- \* x, n/ ~9 X% d6 V
(setq layinfo (tblsearch "layer" layname))
0 P$ X! n9 D& h (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
$ c; d n Y" A3 I& e2 n# u (set_tile "error" "Cannot change entity to locked layer.")
% i0 g3 P# W5 a! H6 ^ (progn$ \6 X/ r9 |! j
(setq color (cdr (assoc 62 layinfo)))9 |$ ~! Z; M4 _7 i% l. ~
(setq color (abs color))) ?; y3 M% X3 o, K9 X, Z0 d& L
(setq colname (colorname color))3 ]( e* Q1 k; E& z2 k& C/ g/ [7 l
(set_tile "list_lay" (itoa lay-idx))* e5 f- {( B9 l9 C
(set_tile "edit_lay" layname)
( ^, V. v# P/ g- K: s (mode_tile "list_lay" 2) Z$ }, i: C7 Z% I
)5 `: q' m5 ]0 g2 b& T3 J
)5 N5 L4 g$ g8 F- s7 p6 _% i& y0 F
)
& Z( E, J2 @! k; ^% m1 v ;;: Q4 J' _2 |! Y9 F. T x
;; Reset to original layer when cancel is selected
, ^- k7 u! L. ]3 U/ @ ;;
) y% p- x- t9 \* `. `; H8 A (defun reset-lay ()) N3 T$ _" B4 k& u
(setq lay-idx old-idx); @& _$ b8 O0 Q) J4 m9 q- K0 b
(done_dialog 0)9 u, [! F8 y3 ~9 J
)
/ _- G6 i& I) l( q1 x4 B ;;
# B! @5 P% D+ K0 a ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
% t- T+ O1 ?& l6 j3 _9 v' z ;; string can't be converted to a real, this routine checks if the first 8 b2 o" P3 [" g1 {
;; character is "0". It also checks to see if the value equals "Varies"., \- f' T% _- e: h Y
;;+ J7 S5 r- g3 a" a* r/ {5 |
(defun getthickness (value)
. `) D# [5 w7 s) }3 @ (setq value (strcase value))
% m# p1 r; q9 J: @ (if (or (= value "VARIES")
. Q4 }4 {3 }) \" k* F: e (distof value)3 U5 L" n; d* q3 k3 q
)
7 Q. N8 }3 y6 G1 v+ B/ \/ ^& o (progn
* A! V+ A- ^5 n+ c (set_tile "error" "")
3 \9 `5 }* R% ^& O3 D# D' }0 q (if (= value "VARIES")/ F/ h9 q" A6 g
(progn
/ R' S& J$ S& E* p8 f( }" Z (set_tile "eb_thickness" "Varies")# r" S/ V |' `* g
(setq ethickness nil)$ t4 u- F0 N, O3 o' ~. B' x
)
0 v- Q; P; R l, M2 d$ e (progn
6 D; x$ I2 K) b1 x (setq ethickness (distof value))
4 s8 \5 ~ X. z (set_tile "eb_thickness" (rtos ethickness))
( C4 H8 Q( r# M8 d' G5 n9 s ethickness7 N8 z& d' a4 Q% F7 [! S
)
* x3 ^+ S! r5 ?6 T )
0 _. x3 @. \# S0 I' ] ). f' F: C4 Q q# H, m: h* q0 X9 ~
(progn$ [! N. w; n- R3 b% @0 y1 y! \5 [/ e
(set_tile "error" "Invalid thickness.")' O" q5 W" m, j
nil
" c' q: F5 u7 _5 Y) u8 I )
3 i/ |' [; v2 Y6 P' W6 ?* r )
6 p X5 Y! v! g* t" y F& \) L& c )
1 ~$ O8 k# ^4 y ;;* a5 b0 l9 j+ ?: Q( G. v
;; This function make a list called laynmlst which consists of all the layer 7 Z, h! f) ^. V4 |6 M
;; names in the drawing. It also creates a list called longlist which
" V/ H: I- U3 E6 K% X+ O0 u ;; consists of strings which contain the layer name, color, linetype, etc. + P3 E/ J; P$ f6 s" V* `
;; Longlist is later mapped into the layer listbox. Both are ordered the 7 p. X4 A9 E' l
;; same.9 |9 N% c9 t: i7 Y* @% p
;;
) h D( @: _$ L6 w8 C$ M (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
: k8 z0 ]! n) H/ ]( Q- s- @ xdlist vpldata sortlist name templist bit-70
: X- o+ K. U% Y# c& ? )0 A2 C9 {% M5 _" J: v' T1 R, z
(if (= (setq tilemode (getvar "tilemode")) 0)9 v7 X g% e; C, Q ]8 j2 R8 v+ c
(progn" s) ?/ y/ O$ Q3 B+ X) G9 `) _
(setq ss (ssget "x" (list (cons 0 "VIEWPORT")! _# z, Q7 B0 u# p" z
(cons 69 (getvar "CVPORT"))! Z* m7 \4 p* |; e
)
# t) @3 g1 z, x( u# W8 O: | ): \- C) U5 u8 B- L4 f! G
) 8 {$ {: h3 u7 \: o6 _
(setq cvpname (ssname ss 0))
/ y/ F0 n" g1 e+ |1 A (setq xdlist (assoc -3 (entget cvpname '("acad"))))
: L) x! @4 X' d" p$ y" q: P% t! b0 q (setq vpldata (cdadr xdlist))4 g: n+ y/ L; _0 I6 i
)$ ~1 l; g! X. ?8 Z9 F
)9 r/ _" p& v( j4 a
(setq sortlist nil), _% Q! Z" y1 V8 c' Q
(setq templist (tblnext "LAYER" T))
7 C& o; W6 T! k# S: g: p) p6 x (while templist
4 j' f; N6 |3 u (setq name (cdr (assoc 2 templist)))
) c+ K: x& I5 R! q' y/ V' s) W! _' B (setq sortlist (cons name sortlist))) B6 V( U7 C$ N5 D- n' ^6 O( d
(setq templist (tblnext "LAYER"))
C2 W, V) b- p! Z ) 8 T# t0 x2 S" K, t( s- N( L
(if (>= (getvar "maxsort") (length sortlist))
2 @7 m. J2 _$ b8 o (setq sortlist (acad_strlsort sortlist))( I9 Z& ^% f l o6 E$ v
(setq sortlist (reverse sortlist))
9 C, L1 v9 [# i. n )
4 F) T6 F/ u2 |; O' ?- \' j' l8 D (setq laynmlst sortlist)
5 A/ E2 L, g- f/ o7 d' r: O3 Y/ V$ K (setq longlist nil)
( U) d4 E% A. w* f (setq layname (car sortlist))) x$ x+ Q& q- M: k. h/ l
(while layname
5 j) W2 y8 k: v" o' m6 h (setq laylist (tblsearch "LAYER" layname))
, T& ?% x0 Y, o p (setq color (cdr (assoc 62 laylist)))- V/ u8 p1 I$ k4 [
(if (minusp color)
1 r0 B2 `3 ]8 Q4 Z; P) H; A* O (setq onoff ".")/ B ?' n! [5 I g8 w! ?1 a3 u0 j
(setq onoff "On")8 @0 C) g7 y0 \. W. B' ~/ z! g
)8 S) w) t: G$ w
(setq color (abs color)). J5 S8 u2 {0 E- J4 ~' m
(setq colname (colorname color))- W9 Z* f! ]) v/ p& D
(setq bit-70 (cdr (assoc 70 laylist)))
7 a! \/ s" H7 n% V8 q9 P (if (= (logand bit-70 1) 1)% l& s5 {5 O7 H3 l0 d
(setq frozth "F" fchk laylist) v5 j3 m0 m. |4 n; q
(setq frozth ".")/ u! @. \% |8 M; j* {* b: r
)
6 s' T# t* I, a& {; d+ ^; I (if (= (logand bit-70 2) 2)( h [* W/ O4 w; A
(setq vpn "N")
8 F3 p' V a- J (setq vpn ".")! N, {# N. U: I' g; K ~
)
5 J5 I& p' i7 g6 x6 G/ i (if (= (logand bit-70 4) 4)- X2 L3 I+ k+ a& @- h
(setq lock "L")
6 J* O; w6 K. C) e (setq lock ".")# f" }$ b" O% a* R
)* A3 G$ G o$ z% t) H& ?
(setq linetype (cdr (assoc 6 laylist)))! P/ ]; l/ I {0 P& ]
(setq layname (substr layname 1 31))5 u- _5 l E- F5 j, g* j
(if (= tilemode 0)
; v: e. ]( @& S2 Y/ {. ^ (progn
+ g* ?( b$ Z$ F0 { (if (member (cons 1003 layname) vpldata)
! X; ~" S7 ^2 b: _: A' n (setq vpf "C")
7 c/ _8 L% B) d6 \( } (setq vpf ".")+ Z. R, x* o) h7 F+ e* W
)
7 m% Z, E+ @, L4 A/ ? )
! w7 S5 l8 d1 u% D: W1 W# ~ (setq vpf ".")9 K4 Y' }) I$ \' w" x9 g: f
)
! W) E+ \4 }9 T+ q# o$ u (setq ltabstr (strcat layname "\t"' ~" z0 K& @& |, P5 G
onoff "\t"
7 g! g4 l3 k7 G5 \0 O, E0 | frozth "\t"
: b. }) ]) K1 o lock "\t"1 S9 w! z* G4 o6 J
vpf "\t"
8 `' O/ I7 x* P' K+ A k. W3 N vpn "\t"( w4 u+ G9 i( C L; |
colname "\t"3 I. h4 `) F5 W4 u; A; B
linetype
" t# B1 j. Y( {7 E: N$ w )6 F' K1 q$ n, ?
): W& M, K- f5 ]* v
(setq longlist (append longlist (list ltabstr)))+ a1 m5 g! j( v8 b
(setq sortlist (cdr sortlist))# i' V. x) m) O0 q1 s
(setq layname (car sortlist))
6 v' [+ s& E9 f* Y5 i3 I, v )! ?0 w* l0 x9 n! e
), j' s2 _4 s% g4 k/ v! E
;;: S/ s8 P) Q- u$ K' q5 m
;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
8 _) b! B2 C z, {2 m, d, O" R ;; linetype names read from the symbol table. Mdashlist is list consisting , l3 ~9 \- ~" d
;; of lists which define the linetype pattern - numbers that indicate dots,
; {) Y8 ~! y: i* Z% ~, \- q" \ ;; dashes, and spaces taken from group code 49. The list corresponds to the 9 C! v+ e6 m4 n* w( h- ~) T
;; order of names in ltnmlst.
6 T$ U1 ^5 C5 | ;;
/ p7 e% `9 Z: c/ Y0 \" Z6 Z# S6 d (defun makeltlists (/ ltlist ltname)# l5 {. b; ` G
(setq mdashlist nil)6 a( \+ R$ w) N/ q
(setq ltlist (tblnext "LTYPE" T))' D# n" A1 p3 Y: D8 ]9 n
(setq ltname (cdr (assoc 2 ltlist)))2 H( }! X1 W# e
(setq ltnmlst (list ltname))
& q F; }% C( d
8 G- i9 Y! o2 A( b O/ J) R (if (= ltname "CONTINUOUS")
3 R; {! M/ e2 G/ D \" b (setq mdashlist (list "CONT"))
% b2 G( t" E, T8 P7 E' ?# Y (setq mdashlist * D- P) |% B1 p1 S
(append mdashlist (list (add-mdash ltlist)))
( N8 j* S5 Q% K( K* U- h/ n/ c )( T8 z5 C- }* `
)% J8 E1 v% R. c1 d Q! D+ h8 |0 V" z
(while (setq ltlist (tblnext "LTYPE"))/ H/ P9 v/ T8 Z6 ~+ w
(setq ltname (cdr (assoc 2 ltlist)))
6 c$ N$ `. s' f1 @9 W3 R (setq ltnmlst (append ltnmlst (list ltname)))
! H2 o! m* e: R; e (setq mdashlist 3 w. P3 U2 a$ T4 S( j) d
(append mdashlist (list (add-mdash ltlist))). Z& b2 s5 R) V3 i p R
)
0 o" L N/ ~- \) j$ [* t )7 H% w1 `. i5 C6 I8 G" y
(setq ltnmlst (cons "BYBLOCK" ltnmlst))+ Y1 m& D/ w. o5 Q
(setq mdashlist (cons nil mdashlist))
x. U5 T% Z3 ~: h5 K, `4 x (setq ltnmlst (cons "BYLAYER" ltnmlst))4 K* \+ G: P* [3 j
(setq mdashlist (cons nil mdashlist))) w4 r" J! e6 x! p
)# i! m2 `* _4 k; l/ j; J) g4 F
;;; t6 T# f' d M/ ~' q
;; Get all the group code 49 values for a linetype and put them in a list
5 e; u) f; u' H1 z! R6 ~ ;; (pen-up, pen-down info)
8 c8 p2 l5 m9 p5 O2 D6 d0 V$ Z* z% ` ;;
{5 }: n1 B6 D( m% D# K7 f (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
' j' g" q2 c* J9 R. ^6 b' h (setq dashlist nil)
( F3 P9 n2 n! y* U' l. F( B (while (setq assoclist (car ltlist1))
0 v9 {6 |+ `+ c1 [' i (if (= (car assoclist) 49)
+ k3 i6 k( p' t- X: Q$ |7 | (progn' D7 y6 o- [7 U% \4 R- _( s2 [
(setq dashsize (cdr assoclist))- ~' ^% N9 W f, c, h$ U- c1 F0 B9 f
(setq dashlist (cons dashsize dashlist))/ V1 K: T" _( S. q+ X
)
- Q$ x8 ^! \" ~( ]3 y" O- X3 X )6 c& {5 G# A ^4 W6 v
(setq ltlist1 (cdr ltlist1))
4 W8 h* u: h% L )" v2 z, X' }! y; x
(setq dashlist (reverse dashlist))& A, W- i6 D" b) [! ]/ {& Z4 M- Y
)& \0 ?7 O8 U9 _* e0 w" A/ V
;;
% d; S) G# @7 N' S; g: c7 x- U# t* Q ;; Color a tile, draw linetype, and draw a border around it+ s) f3 i# K: E, ?0 v) b
;;0 ]# F# a" r' P, o9 q. Z q/ c
(defun col_tile (tile color patlist / x y), j2 v9 Y7 p7 z; |
(setq x (dimx_tile tile))
o' u. U1 m, C4 h# X (setq y (dimy_tile tile))
7 p) R3 G! t8 N( Y, U4 Y# r (start_image tile)% b6 o+ ?$ k3 w4 ^# y7 a- t: O0 Z
(fill_image 0 0 x y color)
* e" z+ S( J# n0 B5 H% m- N- O (if (= color 7)" @' U o$ W2 {0 u0 m
(progn
. ], p" {4 F* u4 Y* q: T5 r (if patlist (drawpattern x (/ y 2) patlist 0))
q0 K5 ?7 ~& g (tile_rect 0 0 x y 0)$ g* Y+ _# c( o% B: b$ c5 Y
)
/ l* C/ m# C, A! S. g% Y (progn; W" L) z* S* M# J% q1 o' d" o( y O
(if patlist (drawpattern x (/ y 2) patlist 7))* r8 V( \ _# a, \0 |7 {5 {6 D
(tile_rect 0 0 x y 7); P8 R( b& O$ g5 H1 {* J Q9 e0 q
)$ m, p/ J) L- b( R3 e# b5 b0 Q& r
)
( Z4 m, a m0 {3 F% I (end_image)
$ G, S2 z2 A' }8 | )
- K' V# R4 y# s, r' W ;;
7 u: T+ ~+ M4 t8 u* R" I ;; Draw a border around a tile
% e0 ~& C; t! z+ {- l# x; T( N& y ;;; _4 Q2 X5 e# ~+ R/ S
(defun tile_rect (x1 y1 x2 y2 color)
% N& A2 M: o$ Y- }$ Q (setq x2 (- x2 1))+ v5 l' c( D' _. X" B+ s1 U" s
(setq y2 (- y2 1))3 T- H) x. ^; X* b+ ?+ L
(vector_image x1 y1 x2 y1 color)' p% F. A. z* _) a
(vector_image x2 y1 x2 y2 color)% u& o7 X* R; {& V! g' p, t$ j" [
(vector_image x2 y2 x1 y2 color)
6 L! ?6 b. u0 Q8 t% w (vector_image x1 y2 x1 y1 color)
7 V( x* p: f+ l8 v, p1 m )( X, j b5 E" r
;;% O9 J: z4 K1 p
;; Draw the linetype pattern in a tile. Boxlength is the length of the image - ]/ ]' u6 h% P: X9 g! H
;; tile, y2 is the midpoint of the height of the image tile, pattern is a & V9 B N# ?6 z' b2 w' C0 G3 n
;; list of numbers that define the linetype, and color is the color of the 6 k1 f( t l# C3 A9 \+ Q/ {+ D1 h
;; tile.5 z& w8 m) c* h0 s6 O2 B
;;
! k5 F' m! A! Z+ d (defun drawpattern (boxlength y2 pattern color / x1 x2+ V n5 |* q7 O4 _
patlist dash)
* @: A4 j1 {$ c2 b+ v+ E (setq x1 0 x2 0). C4 p; Z) y& L" S( q
(setq patlist pattern)3 G+ I9 P( L; r" X0 g
(if (= patlist "CONT")
( T: d2 t4 U. x& S) C (progn 9 |6 Y. ~# h, }! v% Z$ r
(setq dash boxlength)
' e2 X& `7 ?5 b5 S6 @2 U* r; @ (vi)+ Z2 N: h. Z1 x* C- Y% L' [$ t
(setq x1 boxlength)" W: R1 T9 ?4 [, g, T% J$ _: O
) W$ S% e2 ]. [% t% j
)
" n8 m- O+ Y7 v [/ D (while (< x1 boxlength)
6 T/ z( ]' V( B! I+ l (if (setq dash (car patlist))$ S3 p- V( U/ P
(progn5 x, X" d- q2 E
(setq dash (fix (* 30 dash)))
, p ?0 o/ w9 ^1 W2 V5 c/ c (cond
1 ]6 n! [+ @3 U2 k ((= dash 0) 8 C! h- h+ c! s
(setq dash 1)
. K0 b0 o5 r* R! N (vi)* G2 w- B1 j1 V& d+ q6 Y
)
) B. {3 y4 s7 [9 A ((> dash 0) . s5 H) T v$ k5 [; ~% \9 j
(vi)7 p( ?. X$ I! P8 A/ j+ e. C
)! b( A% k: c3 w) \, X0 A. r
(T # ?" }4 h' q0 G5 Z$ B0 w
(if (< (abs dash) 2) (setq dash 2))
" ?5 `2 Q9 x$ b) r* ?" a6 M (setq x2 (+ x2 (abs dash)))" s6 S: N* v E. [! J5 Z" | q
)7 R: O# l2 m& }3 ^) L3 v
)
8 H3 j# d$ T* w4 T* F) |" R (setq patlist (cdr patlist))7 z: L+ O( I/ R: S' p! S& u2 E9 Z
(setq x1 x2)
) w- ~! X/ r7 z$ v2 ~! c; G' Q )7 u) b1 u) J1 b
(setq patlist pattern)
3 H- X5 u$ g2 I2 H* P6 r )4 e1 u- x( l2 e6 Q) ] V
)
' U8 J- [: m8 p5 ~7 W8 N )- h( p. }6 x. v6 K+ B% O; ~
;;
/ j- T7 N6 G _# Z ;; Draw a dash or dot in image tile
5 ^- w$ P, ]! T2 r. T ;;
& u7 C. r1 m3 X5 i' i. e (defun vi ()
2 }! F$ X9 Z- Z3 T3 ]- J (setq x2 (+ x2 dash))& D; f# d6 h7 i# M' R
(vector_image x1 y2 x2 y2 color)& C/ D$ G' m( Z( G8 h f+ I
)
% l9 x2 D4 T, o4 p# z' D. V ;;) b& X/ U$ k- d/ }- T$ G4 O
;; This function takes a selection and returns a list of the color, linetype, / s1 G& C3 T: k g
;; layer, and thickness properties that are common to every entities in the
1 T3 E3 M+ [/ V ;; selection set - (color linetype layer thickness). If all entities do not - |( T$ j b; p l
;; share the same property value it returns "Varies" in place of the
1 f) Z/ v6 c) c* u ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)( _7 l) J3 o! ]1 [$ s3 r+ B+ }
;;" [' h. S* Q4 L
(defun getprops (selset / sslen elist color ltype layer! W. n4 }7 H4 G# Q
thickness go chk-col chk-lt chk-lay chk-th ctr)
4 e- ?, M* }3 r# q (setq sslen (sslength selset)); ~& L* p, I1 n: u. w
(setq elist (entget (ssname selset 0)))
; L: W+ C/ Q3 S$ J+ U4 G7 j (setq color (cdr (assoc 62 elist)))) M7 j X1 o1 b S7 G5 u( ^
(if (not color) (setq color 256))
4 F4 L p- j: ~3 N1 R" t0 M( D (setq ltype (cdr (assoc 6 elist)))% C- w9 R, t' n- c/ R. j9 ~
(if (not ltype) (setq ltype "BYLAYER"))7 j+ j! C) S( j" D
(setq layer (cdr (assoc 8 elist)))
2 l7 B$ ~2 n6 E% S3 v% m (setq thickness (cdr (assoc 39 elist)))3 W* d& |! s$ g8 x
(if (not thickness) (setq thickness 0))6 ?' C' j! W- q( U( m
(setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)( E4 I( J4 {/ }' F- ]2 H ^' i
& }/ a) j0 M; O; }* i9 Z
;; Page through the selection set. When a property
. f* x! Q: p6 ~3 L- R X ;; does not match, stop checking for that property.
3 {; A) L+ i) W; z ;; If all properties vary, stop paging.5 _ b6 H9 U# C! Y
. t$ G# W% d! j9 `1 I0 s
(while (and (> sslen ctr) go)# L1 g! r9 `$ W9 b4 J3 L
(setq elist (entget (setq en (ssname selset ctr))))
" Z. q) G1 c. G+ p h (if chk-col (match-col))
6 [- n+ `) R( t" N% O (if chk-lt (match-lt))/ r$ R3 k8 b% `/ r8 w4 j3 M
(if chk-lay (match-lay)); V( e" ~! ?( a Q5 E5 m* X, W+ I
(if chk-th (match-th))8 B" J/ }+ S, U- P0 l2 u$ J
(setq ctr (1+ ctr))( w1 ~/ {6 L; a4 U
(if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
0 K. l: r3 ?' Z9 V0 Z (setq go nil): d/ P) `, L& @2 ~# m# V, X
); y3 M7 G4 Y3 ^% c C
)
0 ?% b2 q: i8 Y' ]; ^. Q. i (list color ltype layer thickness)5 p+ E' l& s0 I/ @; e1 t) G) c
)! Z1 l& o+ A. D- B1 \2 x+ F+ `
5 b, Y$ `/ N! R# y% }1 ^ (defun match-col (/ ncolor)
2 e2 d/ x, ?9 i (setq ncolor (cdr (assoc 62 elist)))+ _$ i p8 K7 e, V; L6 q
(if (not ncolor) (setq ncolor 256))$ c8 }) G6 {1 L" k- o, V3 [# L. K
(if (/= color ncolor)
0 p7 U2 m8 {: B$ I4 R (progn: @- z9 L& z* h7 d [4 M
(setq chk-col nil)
# Z% K. n2 a5 ], F- O (setq color nil)
, ~* o- T- {4 ]# l& D )$ L9 i1 X9 V# A# }5 }1 @% `# ]
)5 v) L$ ], }: q( R
)
% }# j* L: f( P) T! @# k
" [( z& T, M. q8 y& u! h (defun match-lt (/ nltype)
) g9 x+ F4 q) L4 u (setq nltype (cdr (assoc 6 elist)))
+ J4 @4 S. j6 ?0 Z' M- {$ @6 D- r (if (not nltype) (setq nltype "BYLAYER"))! e3 n- G, [3 h+ H5 Z5 F; W
(if (/= ltype nltype)4 Y' ^8 C& u- r/ {8 ~$ t
(progn
! x8 {- r5 V' |+ k (setq chk-lt nil)
2 ^! \: c& O3 ^( u3 z (setq ltype "Varies")
3 k4 A* d+ p) r$ G: c" V& I )/ q* |! T) A6 j, a' L9 D
)2 v( I9 ?. \" R% H8 C0 t
) r6 v# p( Z$ ^* `) l- O4 G
- s' M. f) S8 _0 X) B
(defun match-lay (/ nlayer)- p! y9 v# _) @! z U% }* o
(setq nlayer (cdr (assoc 8 elist))). V7 d5 ^% [7 g' ]4 p
(if (/= layer nlayer)/ s' {: W* n& H# G
(progn
% Z# F+ E% ]% u! g$ O (setq chk-lay nil)
7 p N8 L% @( Z) @5 f$ s (setq layer "Varies")5 C+ q8 a: O# m0 Z2 ~) T
)
' t" j* @5 G+ [: A0 N- Y" r )
9 A, p+ ?3 v" \ )
* r1 |5 f$ F& Q9 R! @7 f- h& C' k2 [! @% C; O% H" f5 e* }- ?
(defun match-th (/ nthickness)7 q4 p6 X+ W5 d) L
(setq nthickness (cdr (assoc 39 elist)))
8 E( }/ B3 i# Y2 m (if (not nthickness) (setq nthickness 0))
- s6 C6 r* `# E; J1 x* ?, P (if (/= thickness nthickness)
, z7 t) {- p. I (progn
: U- U" q0 o1 ?1 c$ {; y5 z# W (setq chk-th nil)2 W2 b" C( Y0 K- U
(setq thickness "Varies")
) \. G$ p4 s5 o L- j )2 u Q" p: f. Q/ I, b. j t
) [8 R. O5 W' F2 v% f4 g2 i- @0 f
)
7 m& L; w- K7 E; G) i& d" N5 P; B# D; b2 ~: ?; h
;;( X ~& x- f( w
;; If an item is a member of the list, then return its index number, else
/ P. q6 n. A, t2 e' \ ;; return nil.8 K/ a" |" X1 d& W+ L+ N6 E
;;
6 W+ j- u- r" p6 s& G, q8 N) { (defun getindex (item itemlist / m n)2 d+ u$ @, b+ ~9 g; P2 `- k A5 k. u' G
(setq n (length itemlist))
9 b/ L' l0 w! A (if (> (setq m (length (member item itemlist))) 0)- a _$ D9 f) \' X" J% h6 S
(- n m)
4 m2 S* V! G+ }% K nil4 L( N$ A& [$ a9 H: s6 N
)$ v- c0 B# X! G5 `* ]: w/ K
)! b* W2 s q4 x+ ?4 i
;;
1 M$ i" Q1 N8 x( k( @: V1 d( z( a' A$ s; w ;; This function is called if the linetype is set "BYLAYER". It finds the
" a9 W, B' J$ L, I) b: @ A ;; ltype of the layer so it can be displayed beside the linetype button.2 ]; r# E5 X8 Y
;;6 n: Y: M, C4 A0 l+ x. S2 J/ e. x7 P
(defun bylayer_lt (/ layname layinfo ltype): l2 V8 M! X8 N, `# z& H# Z/ P6 ?
(if lay-idx
0 V, [4 t' e7 ~" u9 Q8 ~& u (progn
$ o4 Y W7 @ I! v9 {; M5 t (setq layname (nth lay-idx laynmlst))6 a; w1 n. g: r+ |
(setq layinfo (tblsearch "layer" layname))
1 D+ F5 d _) P1 J6 e: ~! I8 w# _ (setq ltype (cdr (assoc 6 layinfo)))- N2 e8 l; M( X3 e6 e: p! B
(strcat "BYLAYER (" ltype ")")
4 r( W ~. f4 Y4 w# k )
6 H% h+ q. L1 Z! X; A# P, S* w "BYLAYER" \7 p H* M& q/ \' r# b* p
)
; T0 d& d$ c- |0 q1 |0 t8 x( B )$ h7 w1 Y4 [7 f+ \8 g4 C, W
;;, W$ i D+ Y! w- E- V
;; This function is called if the color is set "BYLAYER". It finds the
- T/ {$ _( }# Z" c$ C ;; color of the layer so it can be displayed beside the color button./ _! B r5 e5 v* w. M" Q
;;7 N; H; j/ `2 l3 a$ }* Q
(defun bylayer_col (/ layname layinfo color)
$ T% L0 H, \" k4 T' n7 E, `5 L (if lay-idx O% l/ r; _. t& N: d
(progn
- E, K* H; P# Q! v3 W4 \6 W9 k! T (setq layname (nth lay-idx laynmlst))+ {; G1 I" Y* x* }/ A
(setq layinfo (tblsearch "layer" layname))0 q+ O! E5 L" m
(setq color (abs (cdr (assoc 62 layinfo))))* v2 M3 }7 R& Y1 v3 u' o S- N
(setq cn color)% F. x. A( v; f' Z. T* |
(strcat "BYLAYER (" (colorname color) ")")
. H$ F7 H0 q4 c4 @0 ] )
- e4 e! L9 u2 q0 f/ |" ]$ j l (progn2 y Q: c5 c9 T% n( M2 m" P
(setq cn 0)
2 c/ A1 X' k. f# a1 ? "BYLAYER"
5 [! n9 ^1 O, f, Y( K2 h )! P. b+ M1 ?, C8 m2 |, O
), O8 U2 } }* U8 S! `
)
- s8 G& m) A) W6 z+ \5 ? ;;
$ ?) H/ z; H4 y q ;; If there is no error message, then close the dialogue0 o" t- F$ _" S, t9 ?5 X
;;
/ o! D# I! i5 S- Q ;; If there is an error message, then set focus to the tile) c {' g0 l. u$ R% n1 c3 x! E3 j5 E
;; that's associated with the error message.
- G0 i. y, ?& J: b6 H$ E ;;
) X4 `+ b" F2 f# r' B# M (defun test-ok ( / errtile)' m: H# T+ G% I/ h& I( o3 `; _
(setq errtile (get_tile "error"))
; i ^7 N. A' v% E (cond+ {5 R6 ]' k7 }2 p; W% H
( (= errtile "")
6 ]. ~; v4 Y; o) W( Z4 f (done_dialog 1))6 m; Z# N/ o, c6 R9 t
( (= errtile "Invalid thickness.")7 X" D5 ^& P: R8 `: l/ O: ?
(mode_tile "eb_thickness" 2))- }; v+ J8 C- l0 `7 n$ v- Y+ B: ]
)
0 y. C# T* ^- q. E- O )
0 h2 e% v5 f. i& g6 f" x ;;
* w( z* y& H0 G7 I ;; A color function used by getlayer.4 Z$ y* M4 v' n. G% g: A4 r. B8 Q
;;5 l. C" |3 H7 U& k
(defun colorname (colnum) M# R ]( F1 p# e- D
(setq cn (abs colnum))4 L. E+ j5 Z1 Q! [: ?' j( o" y
(cond ((= cn 1) "red")% i) H. S$ m: m4 a p
((= cn 2) "yellow")
8 ^ c& S, b: v* _+ P& j. U) G: Z ((= cn 3) "green")
0 Z- @- E) Z R D$ }' T/ C4 P ((= cn 4) "cyan")
( b* l7 a' n- J3 S% ^( t ((= cn 5) "blue"). S7 C1 g- k o1 }& ~: s$ d! j
((= cn 6) "magenta")
& \3 w. A, X, j1 O. \. m ((= cn 7) "white")
5 J4 \5 G1 L- X* c, S- e (T (itoa cn))
; ]6 l. t2 P) E" L- w U )2 r3 n/ _; P( S9 p; R! X3 Y
)
2 F; v( N) c. f& e8 |& N9 C5 m& Y5 {' \- o% [
;;; Construct layer and ltype lists and initialize all, e" q- m i) L& b) ]* z
;;; program variables:
, F- ? q% r# v. C* z5 s6 X2 l! S0 N( Z6 ^; E
(makelaylists) ; layer list - laynmlst5 v! ^* b' b1 L" [
(makeltlists) ; linetype lists - ltnmlst, mdashlist
" W- r4 l. E6 A* p" Z2 m ;; Find the property values of the selection set.5 x0 f4 v K% ~; O
;; (getprops ss) returns a list of properties from
2 K4 V+ H) V d! O2 Z ;; a selection set - (color ltype layer thickness).! \9 k. a; @: ~, P' P" ~7 u6 T) h
(setq proplist (getprops ss))
: N" d& d3 N X4 L8 j0 ? (setq ecolor (car proplist))
6 v; ~& o3 y+ x/ Y' E( G$ M4 N8 Z (setq eltype (cadr proplist)) Q# ]; n6 U5 O/ Q7 T$ b
(setq elayer (caddr proplist))+ Y9 z8 o. N/ a, e' x! {3 d4 e/ d
(setq ethickness (cadddr proplist)): K/ e# g4 _/ Z3 J" N- C
;; Find index of linetype, and layer lists# q4 \4 v/ u$ D+ h1 v3 p U
(cond! n6 @! B/ c( K/ C
((= eltype "Varies") (setq lt-idx nil))
) Z$ L' N; y" i4 ]5 j- o/ v' b! U; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))' g B; t9 f7 W" B+ c ?$ X
; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst))). t: ~ @% P) h) p
(T (setq lt-idx (getindex eltype ltnmlst)))8 }4 M$ O1 {5 n
)) E3 c( I+ N! {1 Q6 P" {
(if (= elayer "Varies")
3 `6 _. d& C2 Z (setq lay-idx nil)
. x9 s' d o3 B (setq lay-idx (getindex elayer laynmlst))' }6 _/ V9 f- h( N. U
)2 `6 t% X5 |% [8 x
(if (= ethickness "Varies")
6 ]5 G# E9 w$ V (setq ethickness nil)
: P9 Q$ r( p7 U/ @, n. m, u+ N& `6 {! K )
+ y2 l2 P6 u k) n6 J5 `
1 ^5 D% R9 Q. [+ _) ; end (ddchprop_init): \2 K. M+ ?& N5 u
* x- F( F" T0 \5 D" F+ N1 Q;;; (ddchprop_select)
; ^. b9 P5 i5 d; Y3 {/ {;;;
! r7 H& V- m0 j k2 \;;; Aquires selection set for DDCHPROP, in one of three ways:
1 |9 A6 E( |0 M: @% i/ S$ v- P;;;
$ S) b/ w/ N) o' g& z5 P;;; 1 - Autoselected.9 U+ d1 ?9 Q/ p; N, q
;;; 2 - Prompted for." I5 k! B2 Z, m' y
;;; 3 - Passed as an argument in a call to (ddchprop <ss> ). K' Z+ V2 @* d
;;;7 s0 ~& w% x5 q$ e2 }: {! {8 c
;;; The (ddchprop_select) function also sets the value of the
- ]1 q. F3 a- j# z+ q;;; global symbol AI_SELTYPE to one of the above three values to
! Y) ] ?. q! i: l;;; indicate the method thru which the entity was aquired.
9 T! N3 |1 M1 B% H" _ L5 u6 U* M9 F/ u) Y+ o9 O5 _
: x1 ~0 W, }! d5 r+ Q: w(defun ddchprop_select ()
! T* T9 `4 P! K (cond
+ d( ]% i9 I6 q) H" {. @, t ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
0 E5 {) n6 A- s4 y; L5 F. O0 r5 [! { (cond ; (ddchprop) as argument4 h8 b7 }( L' `/ k9 P
( (not (zerop (sslength ss))) ; If not empty, then
: T5 R9 P0 C( Q& Y. k (setq ai_seltype 3) ; then return pickset.
; X: m! w2 m* k2 b3 I/ S1 I7 \ (ai_return ss))))
. [! a1 w+ n! q: {+ k& v5 D T
+ K1 }& A) ]% J0 @+ A! C+ \7 w ( (ai_aselect)) ; Use current selection
8 W. R% b l7 z5 e$ V1 _ ; set or prompt for objects% L, L: f- a2 J7 x. k
7 g$ _, J' a t8 o (t (princ "\nNothing selected.")
% [& b. O+ W8 s+ _- ` (ai_return nil))6 e% b7 q8 Y4 T
)
$ R: O* T) S& O)
, ?7 j2 m" b x# [! d; ?7 m/ P
( p) n$ W* b- e5 @;;; Define command function.
- o+ s! _ d- x# b+ T `# y
4 K \' u7 c' V(defun C:CH ()+ Y4 a* [$ \4 T) I- E
(ddchprop nil)
Y/ _% H* J+ O6 [5 z8 W (princ)
, I. `3 `6 o& m)
; _* D* q3 E) i: a( V
7 w$ v# z4 W2 I! ^$ E' ]' f- a5 } G: O: w
;;; Main program function - callable as a subroutine.
1 E# N4 Y. |5 d$ i! t;;;' j4 N6 p8 i: S Y* k0 f
;;; (ddchprop <pickset> )- n" q- K. ^! N3 s3 N4 [( R. w& c
;;; t5 Q8 N8 m5 H, V) r, v
;;; <pickset> is the selection set of objects to be changed.
7 p/ j/ x8 }4 M4 U;;;
8 Q7 Z' d" ]3 P3 w( W" H;;; If <pickset> is nil, then the current selection set is
8 p2 i X. B. p a$ q;;; aquired, if one exists. Otherwise, the user is prompted5 C Y& r4 ^* O% Z, ]
;;; to select the objects to be changed.
) A# ^& d+ Q; Y* g8 @& F" I" [# _;;;
7 E% `9 g: S2 p- u6 l;;; Before (ddchprop) can be called as a subroutine, it must
$ i. M- C' P3 ^7 c" n;;; be loaded first. It is up to the calling application to n) x3 I$ X1 C' i( ?6 k5 g2 Y
;;; first determine this, and load it if necessary.
9 C. D, O9 L" i: p. i; c0 u1 e$ F; P/ d' b
(defun ddchprop (ss /
: @* A* d, _! b
5 S6 o; X. I( I add-mdash ecolor ltedit_act s9 |6 m( ?) _4 ~
assoclist elayer ltidx selset. T9 P$ Y6 c5 B
bit-70 elist ltlist set_col_tile8 N0 y1 R2 x" s+ {* q
boxlength eltype ltlist1( t8 V# Z1 C+ p1 y4 V9 y5 H
bylayer-lt en ltlist_act sortlist
0 ]( X/ r* N- f; W% t8 \ bylayer_col ethickness ltname8 N, W; W5 L- a0 ]; W! _
bylayer_lt fchk ltnmlst sslen( x; v! y( }& Y& W% `
call_chp frozth ltvalue templist
! {* ~6 I3 A' ` ? chk-col getcolor ltype temp_color: i3 o; d% ?& Y2 P
chk-lay getindex m test-ok
: O5 S" n6 U1 _! Q chk-lt getlayer makelaylists testidx' x8 T9 R" `) u0 P3 n
chk-th getltype makeltlists testlay
B% C+ B" C$ t! ~0 r3 W cmd getprops match-col th-value
1 `) r0 P: N' m+ m: ` cmdecho getthickness match-in thickness |; t& y2 e* k2 f! E# _' i
cn globals match-lay tile3 Z( b& l( {3 X5 L
cnum go match-lt tilemode7 {, X' ~$ {3 R( `0 l. O' j' P
col-idx index match-th tile_rect
: _# B; e! l5 e. i colname item match_col vi
9 M: W+ X$ J3 E9 ?$ l colnum item1 mdashlist vpf
9 M2 ]5 n$ X5 j! e, O color item2 n vpldata
+ s! B G4 ~# X- F# B- n) U colorname itemlist name vpn
6 N6 Y0 }1 ~. H( s' H; o5 b+ P$ s! v col_def lay-idx ncolor x; A: f |2 H+ W5 |, |
col_tile layedit_act nlayer x1
# e6 g0 _, b* w, X6 F ctr layer nltype x23 P. W$ S6 f8 y/ F8 m
cvpname layinfo nthickness xdlist
! x+ l2 Z) w. A8 ?6 n dash laylist off y
$ O% Y p" ^ } w# L dashdata laylist_act old-idx y13 C8 A; X+ a, ]3 J z, ]# o
dashlist layname olderr y2
5 w9 p: Q! v4 R% u dashsize laynmlst on undo_init! l; L/ \" i( j6 C& A
dcl_id layvalue onoff/ V3 c/ Y1 r- i2 u! B" ^( K
linetype patlist
- N5 g4 |/ d+ x0 ~- K ddchprop-err list1 pattern* u2 {. }8 o( T+ L& S! l
longlist proplist
1 P! F# d3 K+ j% p/ k+ L4 X lt-idx reset-lay
3 @) R' G9 h" E9 V* | drawpattern ltabstr reset-lt) t: m# x, S% ?+ G; ]' f
)
/ j3 {5 |) Z4 B6 C7 v1 H- C9 V6 Q, }
(setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
* H9 P; V, ~6 p3 z3 M( @ old_error *error* ; save current error function: i( _) G" m1 ]! i: |' O" w
*error* ai_error ; new error function
; t9 U. x# A. r+ R. B! Z- ?2 m( u )
; K0 c: a2 ]2 H/ c: }
0 j/ @* f/ B: Y% U( I- _ (setvar "cmdecho" 0)
0 [- J& {* I" o$ S+ i: g
8 p- _( c9 o. T0 Q' J4 T4 K( @/ a (cond' a6 Q+ x9 C4 ]% U4 g& N, E
( (not (ai_notrans))) ; Not transparent?
' b5 y( Q& O3 Z9 t; b3 [; B: l+ W' h ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?- k5 T+ U2 V5 w+ _# Z- _( S7 ~$ Q1 C% y
( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?7 K+ U7 K0 H4 `5 i5 b; w
( (not (setq ss (ddchprop_select)))) ; objects to modify?
- X/ ?' S. _8 e, m" I
9 E# y# Z7 w( A5 t7 |& Z! G (t (ai_undo_push)- S$ U# }4 p0 z
(ddchprop_init) ; Everything's cool,5 j# r6 z [4 m+ @9 r, G
(call_chp) ; so proceed!/ t! l3 l3 Z" l3 e" I* F
(ai_undo_pop)
1 X. b/ K5 Z7 ~; ?# J )
- x# R# V; g- b2 P1 b6 ? )+ W+ {( M8 b$ s8 ]
( F2 z! S* R2 f3 B' O0 U2 H6 ~ (setq *error* old_error)
1 M( L9 s) h7 W3 v (setvar "cmdecho" old_cmd)
1 |/ D1 _/ Z$ A2 u# F9 j (princ)
1 o3 M8 L& S+ }( \1 |8 K- K; f: p; [- B)
8 u7 d. K8 Y) R5 e* v2 Y. Z. f' D0 Q
;;;----------------------------------------------------------------------------
) }* e5 W5 l9 `; j! M" E' ^/ R6 l, e4 m, s+ b3 h: n
(princ " DDCHPROP loaded.")
: L$ P9 ]1 ~$ A(princ)
% W! V- ?- M) X: [& T
" W2 @7 }9 Y3 ?1 h# A;;;----------------------------------------------------------------------------; L) t: Q' ~' _) h
: N& S& ~' s+ ~* C+ H, o f
;--------------------------------ddmodify.lsp----------------------------------
3 K9 f" y7 M6 j; Next available MSG number is 111
: m0 o- Q( R- e1 r, H4 P: u5 d( x; MODULE_ID DDMODIFY_LSP_
: ?8 p3 w3 N9 {' V }. C;;;----------------------------------------------------------------------------
/ N. Y0 [) w& m+ }2 Z/ {" s;;; DDMODIFY.LSP
4 E5 Z% X/ n2 c7 ?+ D2 x;;;, ~, _0 y1 C4 u% g7 C3 [, l" r# p
;;; Copyright 1997 by Autodesk, Inc.: w4 J" g3 n M
;;;
) Y+ O' F( I, J;;; Permission to use, copy, modify, and distribute this software
( f8 B8 W8 h6 v;;; for any purpose and without fee is hereby granted, provided' r( ?3 _. c' l
;;; that the above copyright notice appears in all copies and
& K9 R7 r4 e& p$ b/ z( e;;; that both that copyright notice and the limited warranty and
8 D4 Q- Q/ P+ f;;; restricted rights notice below appear in all supporting
; u" {7 A2 z( T+ U;;; documentation.# r" v7 Q, O1 i$ L
;;;0 {. k1 ^9 I/ D# M) K% o, o
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.! I1 j) A; M8 K$ o
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
" Y8 I, f$ [8 R1 T;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.% |0 } V3 b) c6 m5 A7 r8 e
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE2 w5 ]% x" s' N7 A
;;; UNINTERRUPTED OR ERROR FREE.
! N* a C$ C- j! a4 W' I, m;;;4 X7 h" o6 j: V
;;; Use, duplication, or disclosure by the U.S. Government is subject to
+ N1 P& Z' D4 o5 v$ x3 n* ^;;; restrictions set forth in FAR 52.227-19 (Commercial Computer% {7 A9 D% R/ l, \
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
# z! X+ ^! v C6 t6 F9 D;;; (Rights in Technical Data and Computer Software), as applicable.
: F+ `) q9 h% c% f6 _;;;
, C# s7 q" T1 J2 W7 c( ?4 j;;;.
2 l/ ^) o0 P( `7 R, T- ], o; P$ u;;;1 Y- B8 b3 b( c% k' [7 f6 `( X
;;;----------------------------------------------------------------------------
9 \0 q1 X3 C4 I. C5 E. g! n+ ^( b;;; DESCRIPTION$ }: l ]/ J: y0 S: b# X
;;;( X3 s! a# `5 L/ `$ C
;;; This function allows the user to get a listing comparable to the LIST, }- q; F* B2 S, u" `
;;; command for most objects. In addition, most object fields in the3 v4 j2 P: n4 Z" E6 l) A9 f
;;; dialogue box are editable. Points can be specified dynamically by0 }0 V5 c9 T, k
;;; temporarily dismissing the dialogue box. Each object has a unique2 C5 d$ L& `. V+ o
;;; dialogue.0 w W; |9 m+ i+ o% c4 W1 u0 [" ^
;;;
7 a ^7 A& w4 z2 B;;; Naming conventions2 W: p# O; o5 a$ a, u3 b) s
;;; Long function and widget names may use an underscore "_"- ? }! r3 f& c. |3 x
;;; in their names to make them easier to read, long variable
* ^. A, G9 C5 H;;; names use a dash "-".( s; O1 c: q* q. A3 _' \- q
;;;----------------------------------------------------------------------------
# h- F$ R& B$ s;;;----------------------------------------------------------------------------
8 \: ~9 O9 o9 V# g. z- j;;; Prefixes in command and keyword strings:+ T2 [% B$ A: P) b3 V" e
;;; "." specifies the built-in AutoCAD command in case it has been* q+ ?" m$ d- k; x' x$ _
;;; redefined.9 t4 B' |! [( H% u# S+ R, R' ~
;;; "_" denotes an AutoCAD command or keyword in the native language
9 k+ g/ w4 {' W) E" q;;; version, English.
& J% C, h8 t. P( z/ R;;;----------------------------------------------------------------------------* H) P- L3 O( f2 K: Y
;;;
, x, |% R; X- s& F- J: [3 j4 G;;; Avoid (gc)s on load to improve load time.
5 n# h) [' ]8 u( e;;;" Q. x/ O/ x) _% y
(defun do_alloc (/ old_allod new_alloc)5 K+ H7 [5 l q2 P: J ]
(setq old_alloc (alloc 2000) new_alloc (alloc 2000))% ^* n) U# N, e" t; J
(expand (1+ (/ 17000 new_alloc)))
# B d5 d8 N# W- E: Z( [2 C6 ^8 d (alloc old_alloc)+ i4 V. V' F7 c* o
): h1 f3 z" Y. s: I1 Q
(do_alloc)
1 t. L& {- f$ h6 {3 `& {(setq do_alloc nil)6 i) C$ D; p2 n: C' l/ @' C
8 a: D ?% Q$ Z* _$ }
;;;9 \- Z2 ~' ?5 p% P- X! V6 W
;;;5 e4 A _% z: v2 [
;;; ===========================================================================; w' Y. H* a H/ w4 I1 H
;;; ===================== load-time error checking ============================; ^" t7 I6 G3 ^$ r7 P# L; M
& q$ `& u* x1 l& S# L( f1 a! R
(defun ai_abort (app msg)* i* a. T7 l# ]1 f d
(defun *error* (s)
( [3 @5 D/ ]: a6 v# h# ~9 h (if old_error (setq *error* old_error))2 a1 i( K; r6 h2 [
(princ)
; h T) N. g( \" M% ~ )$ h) ]: K: g3 r6 B) |
(if msg n3 K$ ]) f# o$ ? s0 R- p* J3 A
(alert (strcat " Application error: "2 Y& C) g3 T! ~ r. ]) x) ?
app
& U8 a0 N: [; L. k" p- y8 o " \n\n "0 T" E+ v2 H( Q2 I( K
msg
4 u/ K" N' S5 X2 |8 N " \n"
' U, g2 f8 k+ Y3 | )2 |8 x! t8 U, V
)0 o; z0 C8 x2 p; Z* {
)
: {4 D7 p' g1 G1 {0 J0 q8 d+ h (exit)1 j5 A7 ^3 e H* S
)# S& [. R3 o' ~1 W! n6 s
" Y) c7 f, y R' R7 S- S9 Z1 [;;; Check to see if AI_UTILS is loaded, If not, try to find it,
9 [( B! [8 J$ e3 F6 p;;; and then try to load it. If it can't be found or can't be
# X( ]$ ~) R3 J l$ U4 i% C( x;;; loaded, then abort the loading of this file immediately.
5 E& B# P7 ^/ |; N4 E, L& [0 \7 K/ _3 r) y; K8 k9 a
(cond# T# @& `/ ^- u5 K% u7 G$ M
( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
8 V& J) N- g1 q. S$ a$ l6 ?# l) |
% I% h; z3 `$ m ( (not (findfile "ai_utils.lsp")) ; find it2 u* X; y5 `; s# F0 `2 n! ^& T3 f
(ai_abort "DDMODIFY", J: ?* k- R8 T. q4 G4 g. ~+ t
(strcat "Can't locate file AI_UTILS.LSP.". S7 R" |/ |: T' \) ]: g2 u r
"\n Check support directory."))): H! y- i0 o" ]8 ?( C) C# n1 R
7 i" S" q0 F( j
( (eq "failed" (load "ai_utils" "failed")) ; load it) b# l2 _. B+ v- B0 @& ~
(ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
# I1 c. q! t$ @* f. G: x/ X )4 e* o7 Z+ m2 F
8 O+ i% h1 \) T; ~3 h9 m' o+ O
;;; If we get this far, then AI_UTILS.LSP is loaded and it can
. ?4 V' X( c2 ]# t" F;;; be assumed that all functions defined therein are available.' s, r5 Q( O7 A# q5 [, S9 T' d
$ c r5 m/ f. V+ d4 `;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
) {- U! G5 p/ }! K* l) a/ Q;;; if the file can't be found or xloaded. Note that AI_ACADAPP' I; u0 f* L" p4 G
;;; does not abort the running application itself (so that it can
6 F: l2 b# u/ q |7 m;;; also be called from within the command without also stopping0 j u7 J/ g' Q9 o, K1 a
;;; an AutoCAD command currently in progress).
' k6 y% X6 T5 O/ \( K! [: \/ B$ T' f3 M+ C, R1 m' e/ f
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP' d) K) K/ k; B5 h3 }
(ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses5 z" v" _, b$ X
) ; ai_abort's alert box dialog.
) h" r+ c5 x: I- g6 `5 k% n3 z" n" O* R
' L( h6 I. d2 h G4 I1 ?- S;;; ==================== end load-time operations ===========================7 \0 z- K( b' Z
5 O5 o9 }: D- f$ `
;;; global variables
$ m; ]2 e4 u8 ^# c) ~2 @& I: c' s! [1 m& t+ u7 G( s+ p3 `
(setq hatch-elist nil)) |) t- {9 ]3 x. h& h9 c; Y6 ]
; P; e' a3 f1 e- m. [;;; If we get this far, both ai_utils.lsp and acadapp.exp are8 h8 I7 L" a" \- a4 f4 A" x
;;; assumed to be available.7 P* v7 }- f4 p# G2 M4 G' C) O, J
. H$ _9 R. B5 E0 s. s% Z" Q s;;; Define and encapsulate all subroutines that are declared# R9 k6 p6 v a* K- M- i/ X; r
;;; locals of the (ddmodify) function.6 x- G0 k0 T8 }( j9 w
# q8 W2 K4 S0 _
(defun ddmodify_init ()
8 m! Y4 D4 x# v( A. B ;;: S6 p$ ]& G- A% g' q) P& f
;; These three functions modify the enitity list for common properties. Since
H0 H: w, ^# T+ c# J& [0 t8 d ;; color, ltype, and thickness are absent from the object list when they are
5 a3 S g0 H# M' `! s ;; set to their defaults (i.e. color = bylayer), a simple substitution using
: g7 G7 \, D/ I% W4 ?; Q ;; SUBST is not possible.
4 U, O% b- |9 @% a ;;' D/ y! N$ Q u5 W: R+ m
(defun modify_properties ()6 [; i8 L: J/ |+ m
(emod ecolor 62)
5 c! J+ X8 V2 c' D ~ (emod eltype 6)
c. q1 r. P4 C+ y7 R* U4 `. \ (emod ethickness 39)) J1 b' {* [% p# u# H) i
(emod eltscale 48)% Y( D% N8 N. G" L6 ^3 n7 y- j
(tempmod elayer 8 nil)
4 b( o/ ?* o* m+ @4 w( I) d ): |# f8 Q& o% b/ \" F
;;! E( D6 N( X0 T, R3 m# H
;; This function is used for modifying common properties of the ACIS+ B: ]4 D2 t. z9 A& P
;; based geometry objects. Thickness is not valid for these objects9 H& _5 l- F# e9 F/ d2 B
;; so it is left out.- O A; C- C/ s. [8 @0 \; Z
;;
$ L/ b; a5 T9 R" G* w4 m4 T9 b (defun modify_prop_geom ()
* ~+ ^' B! R& T* Z# @" Q. V (emod ecolor 62)
9 I e0 X0 C3 ? d# v (emod eltype 6)
6 P* p' ]' O4 E4 C0 Z- q (emod eltscale 48)
1 ^5 R& E* h- r0 u (tempmod elayer 8 nil)
4 L+ J E( W' i/ s )9 v) H! `4 _4 g9 V
# m( L6 p' t4 r" {
(defun emod (value bit)8 l8 u' v6 p, @6 r5 i/ C
(if (= bit 62)0 l6 u% U | e: }1 p' n
(progn
2 i2 B( w$ V: r$ v! s$ C (if (or (= value "BYLAYER")
/ r$ \8 ]. E" F* a (= value "BYLAYER")) (setq value 256))! z5 b; `+ J5 o7 H; i: W
(if (or (= value "BYBLOCK")
' C& t' M' Z) P8 H (= value "BYBLOCK")) (setq value 0)) q% d' B; i& A' j5 |
)
5 Z9 p% V6 `5 T. G )1 [1 o" q! I" a# c1 ^! w; m6 f
(if (setq oldlist (cdr (assoc bit elist)))1 b. c9 F A5 U* ~* M/ a
(tempmod value bit nil)
% \' s7 @/ e; i( _( R (setq elist (append elist (list (cons bit value))))0 o+ N( V6 h3 |0 G
)1 X( P9 J5 Z+ P- |# F
)7 a6 {7 ]7 @8 n; H. C k5 M: b
;;: d1 a+ b% b8 r s9 s6 g$ @ B( I
;; Resets object list to original values. Called when the dialogue or
* L% ~6 |, V- ]- c2 n9 Z ;; function is cancelled.; U% u9 G9 k' C5 q3 s( E4 N1 q" j
;;6 t \ ^2 d1 n
(defun reset ()
0 q6 z h A% }" }; T (setq elist old-elist
7 ~- ?3 v( ]$ V3 C* v1 ~ ecolor (cdr (assoc 62 old-elist))
. Q* c' @6 g o# A' u4 u# K( _- P ethickness (cdr (assoc 39 old-elist))
; `3 u& i5 Y5 g eltype (cdr (assoc 6 old-elist))& V: j$ g* [* `9 h) O
elayer (cdr (assoc 8 old-elist))+ _( q) t) w2 ] X J- F% U, w8 i
eltscale (cdr (assoc 48 old-elist))
+ \( p7 c) `& Z; A" p )2 \$ o p& V4 v4 ?7 q) L% ^) _
(if (not ecolor) (setq ecolor "BYLAYER"))% q( F# [4 Y9 F8 A
(if (not eltype) (setq eltype "BYLAYER"))
: S" l- [$ [ H2 y7 w% R) }8 m7 n3 { (if (not ethickness) (setq ethickness 0))* P3 \2 n5 T$ O& K, Q+ ? f* r
(if (not eltscale) (setq eltscale 1))% r, x" w) c6 @
(modify_properties)
8 j" n ?0 t) U, ` (setq reset_flag t). _7 p3 v$ K, h$ X& g" b7 r
(entmod elist)- F+ N2 q# |- e
)6 ]- Z8 [# z4 V/ `& W+ ]* ?
;;
" \ ` f3 I3 H+ f R# k: S! e& I! g4 r ;; Modify object when dialogue is temporarily dismissed to reflect latest
" U& _5 C D' B2 G5 u: z ;; settings of dialogue. It converts the point from current UCS coordinates to
) [( D2 W- v9 {7 F9 L5 P ;; the proper object coordinates (world or object).
+ y4 B9 L& x! J ;;" s' Y" A4 d) G9 P6 B
;; Arguments: value - in current UCS coordinates
8 J# y: ?5 q6 q$ t Z" y, J4 M ;; bit - object code (i.e. 10 for start point)$ y& F% l+ I6 O' Z& N
;; ptype - point type 0=world 1=planar: p) P+ g" S3 p; H$ t v$ G2 Z
;;
. R4 K: u/ {/ r( x (defun tempmod (value bit ptype / newpoint)
9 V7 S, g; V; M7 V7 X3 c (cond0 R- W0 L; Q* V# P4 ]
((= ptype 1) (setq value (trans value 1 ename)))
& v3 Y7 ~# C# p0 X, P7 f ((= ptype 0) (setq value (trans value 1 0)))
/ S1 D# r" Y- R5 c: Y7 Q )
$ D# O8 v: c; y3 [& U% D (setq elist (subst (cons bit value)" ]: v' X3 r& t4 q
(assoc bit elist)
5 i0 k4 _0 z* ^ elist
& h+ n4 D5 H) y2 c )
6 ~* `4 T. Q+ i8 o/ c. g$ ] )2 m( b. U! _2 s' C+ \
)
M" F* _6 o5 l5 k h$ p ;;9 x1 U) ~4 f" L
;; The following functions are called after a dialogue has been temporarily6 C: v: L2 [, U; P* x( e; o
;; dismissed and the user is selecting a point. If a point is selected the. j* H. M# n* v4 }( J% r. \3 A* p
;; object list is modified and new X,Y,Z values set. If no point is selected
% D# C7 S: o. h$ S$ q# U; ` ;; (null response), then the point is reset back to its previous values.
5 H# S* O1 J, V3 F% Q, U ;;
" }, g7 n8 \% w; C! n$ ] (defun ver_pt1 (ptype)2 [3 \% s" V8 w( Q5 I& I6 f
(if pt1
; S: U3 y! Q5 T$ @. o (progn. F2 Q, h* U+ Q% X* J
(tempmod pt1 10 ptype)
n' t: G P: v1 @- M/ s (entmod elist)" R' ]: ?" T6 N0 N% j
)
% Q2 p4 U0 Q7 a4 y7 d) C (setq pt1 (list x1 y1 z1))
& h {+ ~' L5 r+ `* o+ Y )0 I! \, G6 n; G/ f0 _' H
)4 F; r+ Q* h$ x- x
; U+ o2 ]4 r$ \6 U. m2 n( Z3 V ; (move_pt1 <ptype> ): _! I. _# G* B, c9 \+ ^
;+ A$ o5 ^. G* |: O# _7 g+ A8 Y
; Called in liew of (ver_pt1) to translate block insertions which
# D% }( O/ s/ B b/ Y% \ ; might have variable attributes attached to them. If the distance
: {8 a$ o$ K( U1 q8 [, R ; the block is to be moved is < 1e-6, the move is deferred.
% Z* _/ |0 l8 x' _/ W2 s- z
2 k" S% Y. ?' A% k+ ]( x) v (defun move_pt1 (ptype / basept hi)
' x* E2 E# _9 L% N! ^+ n9 n9 a (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))5 R9 f! i7 K/ ?& v' T2 e
(cond
: R/ Y# Z- ^7 u2 K. f ( (not pt1)
8 d0 M {6 u- a1 C' ` (setq pt1 (list x1 y1 z1)))
* E- i0 F" S; \! E
! ~; J. G# O5 ^! ?9 Z, r% o1 ~ ( (> 1e-6 (distance pt1 basept)))! [9 G8 K+ g3 ]* j- ^( z
. {- Y9 j2 @/ O1 J3 O3 S
(t (tempmod pt1 10 ptype)
; ^2 h4 K3 z. u. C0 _, [" w5 e3 M' x (setq hi (getvar "highlight"))
: }, i& E- e: l; Q' Q (setvar "highlight" 0)9 g& Q0 p( `+ m8 |* E
(command "._move" ename "" basept pt1)
/ ]6 T- H" Z. D (setvar "highlight" hi))" f+ e2 `4 m A+ ~$ }! w6 R) A
)
7 H5 p3 g u8 v+ d$ x1 w5 X. H% \ )
b7 T! w) ^: |- T* p9 k8 F: B% e; R# j d3 C2 e6 `+ p
(defun ver_pt2 (ptype)8 g+ y3 B( F3 A
(if pt2# x% F! m5 q) o% ~/ `; s, U6 w9 p
(progn u. l; _! e# Y! }
(tempmod pt2 11 ptype)
& `3 P1 K" z( C) z3 X8 t4 n (entmod elist)
3 G7 U/ Z T* `$ G& c, v1 i6 J& m )
) e$ O+ o" p) s8 V5 N, h (setq pt2 (list x2 y2 z2))9 d' j5 U/ j' w0 Y, U- @: k, U+ n9 y
)
$ h% Q# e8 W' E4 D- e2 e )8 y3 n4 ]# u: y& N
6 Y' j. x. A2 b6 d
(defun ver_pt3 (ptype)
: a0 _# {& c7 C/ A3 U5 G: D5 q (if pt3
( k5 ]6 ^3 `9 K. x* P3 F (progn
+ c2 A- w/ B! e/ K (tempmod pt3 12 ptype)
9 r0 O+ a2 d9 i" { (entmod elist)
0 A" a+ \5 Y& Z @% `/ z )2 v3 z$ k5 O" [3 n9 K
(setq pt3 (list x3 y3 z3)), a6 U( `5 c. o( Z7 A: \9 G
); t# V6 } B* T* k2 x4 T
) W* W* I6 F: E# C9 f
% R+ m0 r% p+ \$ B) i- j (defun ver_pt4 (ptype)
* X4 k/ X/ K) T- n/ d (if pt4
/ A% d# r7 ?) F4 O; V' e (progn
) I: e* ]" r! E8 v7 |) F (tempmod pt4 13 ptype)
6 o* `9 q0 F3 R$ P# t (entmod elist)& d m9 p3 z% H* X5 _# w
)
0 [7 [; A z6 A+ h8 n' Z (setq pt4 (list x4 y4 z4))
2 s# [% e& G, z7 D) h5 p )
- v8 z) w- n, q. E3 @ )+ u( w) C) h# d5 H' A3 a$ `' {
;; Xline/Ray4 m: o& e" Y6 N
(defun ver_xline_pt1()! _5 Y5 b7 [ \. T( T% i- c
(if xline_pt1
: b0 C' C" T1 Y. s# X/ p (progn
2 x, |# a4 V7 l. z" I$ U ;; convert to WCS.+ A3 ~* J8 I. z6 l" O
(setq value (trans xline_pt1 1 0))" c3 g- i2 }7 r+ ]
(setq elist (subst (cons 10 value)
~; ]/ o j6 R (assoc 10 elist)# `1 l$ d8 E6 z9 V9 o
elist
/ p1 J7 g2 p9 i+ p4 l* ~ )
% _. Y+ Z" [. u; m* b )
! Y# _2 Q9 X3 {0 ^, d/ G! e )
, \& r2 m& P' y# f* ~' q. G (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
7 z" A4 Q2 G% d; B6 W0 {, O+ e6 i ) ?; ^1 e1 A/ Y2 f- B
)
* Z5 C$ G& y7 A: Z4 y
/ m; n2 G1 m. w" V7 i3 d* X (defun ver_xline_pt2()
7 ^" F0 B* X- X2 a% N c (if xline_pt2- I. F3 E% ~ F7 Q- W
(progn
0 g+ ^" `2 e; ^0 v ;;
/ X/ s \/ D' D' \ ;; Calculate new Direction Vector WCS; c a; P9 F3 ?8 z
;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))- K E- O, ?$ q! M, V
(setq temp_dir (trans xline_pt2 1 0))7 \0 G8 Y6 x# O
(setq temp_dir_x (car temp_dir))8 h- E7 N$ h6 W" e/ H
(setq temp_dir_y (cadr temp_dir))2 `4 i3 h$ O6 }6 @0 {2 A
(setq temp_dir_z (caddr temp_dir))6 i. w y3 w4 A# Y4 z" ]
7 a' E* [( n" V$ e, w! _* l/ ? (setq temp_xline_pt1 (trans xline_pt1 1 0))2 W* C% V Y3 s. P; A
(setq temp_xline_x1 (car temp_xline_pt1))
$ _, X0 B6 W0 m0 C# o8 q' Z$ x* n$ j (setq temp_xline_y1 (cadr temp_xline_pt1))8 a: L' g4 I" Z6 S7 n7 z; h2 Z
(setq temp_xline_z1 (caddr temp_xline_pt1))1 G" z' O( J. ~. A {- M
! k/ b5 D0 c; d$ F" Z4 ?' Q (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2); v# I+ V% y/ c% [2 i7 l W" z
(expt (- temp_dir_y temp_xline_y1) 2)
( S" r I; k) F6 s) t/ ~ (expt (- temp_dir_z temp_xline_z1) 2)
1 Q; O0 M- m& s+ E. m( U; r )))
L( P) c4 ?. s. J (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))8 N Y- Y' T) N0 F, f) D* k6 `
(setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))0 _) t, K7 A7 l1 Y [* L* ^
(setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
3 c- v3 g: l& E) g4 j' @ _0 W4 q (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z)), N$ i0 @5 W1 d# p0 F+ N
(assoc 11 elist)- j6 N9 _: I8 C5 @' q
elist
( L0 w5 f5 f& U" { d& G3 D )$ u- {7 W9 L5 `3 X
)
: R6 i( u. ~9 h (entmod elist)' w6 m+ ~+ o9 @' y- G
(setq xline_x2 (car xline_pt2))
& o& b @ Y8 l, u. u! n (setq xline_y2 (cadr xline_pt2))
% \# v, v9 L7 J- m (setq xline_z2 (caddr xline_pt2))
0 x9 B. k! N! D1 J
7 A4 o$ m$ M8 N* n, m, M5 o% T
/ N+ m2 @8 M3 G" O7 k )- T6 `, L' r" V9 F5 a7 ^
(setq xline_pt2 (list xline_x2 xline_y2 xline_z2))7 P; P3 ]* p! Z) R y
); F; k2 a& O. z( J( t
)2 }% a" y8 ?) Y
1 w8 W- b, N0 w1 \( Q: Z ;;
- r6 X7 D+ [5 l& @* p# x3 L ;; Common properties for all objects
. r% T* p9 Q# G, b- X1 k ;;7 I4 B( R7 R& R! F" O6 ]
(defun set_tile_props ()
" O$ Q% j* l- R5 `* q (set_tile "error" "")
: p4 A+ O: e0 J* l* T0 w (setcolor)0 J9 |3 S% Q+ f7 G% C3 j/ D
(cond) u7 [: p3 }) H+ x" R
((= eltype "BYLAYER")
. }, r! i$ m9 X7 q* _3 Q9 a5 A6 [* y (set_tile "t_ltype" (bylayer_lt)))8 ]% p' J) M- @, S+ Y' ^) x
((= eltype "BYBLOCK")8 f+ U! H1 ?' s: h3 @
(set_tile "t_ltype" "BYBLOCK"))' ?. {0 S5 T( a2 Z
(T (set_tile "t_ltype" eltype))
4 d( G z! V' f" ?7 {. s5 y' U2 j )! p) w7 y* g9 v1 F5 K
(set_tile "t_layer" elayer). P: U w/ \9 ?' r( @
(set_tile "eb_thickness" (ai_rtos ethickness))
3 X8 V! N8 a! y" X# _8 S (set_tile "eb_ltscale" (ai_rtos eltscale))
% a! ]: F- r" C4 c2 Q9 E (setq which_tiles (ai_common_state etype))* ?8 g7 o/ Y: D) F1 `
;; Disable tiles if need be...6 ]3 x" r! o) d6 [8 L8 o
; ^; z* \' K# Q' z ;; Layer Button and Text Field4 {' y( s3 s" \" T+ K, c
(if (/= 1 (logand 1 which_tiles))
. N) x$ J- l# b* F" N9 A1 n (progn' q' d8 l7 @6 Y5 k/ t
(mode_tile "t_layer" 1)) ~7 ?5 ]/ J Y) q& |
(mode_tile "b_name" 1)+ `. F2 R( ~: z) C0 H& m' e
)/ F; L4 O8 m$ {; a: `( @9 M
)6 D5 x. {9 I# a9 _
;; Color Button and Text Field0 \& ^. p$ I' j$ V' Y
(if (/= 2 (logand 2 which_tiles))
& k' a% A" i, g- ? (progn
% _& t. p! L$ E (mode_tile "t_color" 1)/ n; |- C2 @- n+ I& o
(mode_tile "b_color" 1)$ }( q) x- N, u' }1 j. T& F
(mode_tile "show_image" 1)
3 i; d6 e8 k: K )
% K$ k! d) R; k( ?9 n )
* `5 i5 M: ~) F, R- z, w' y; { ;; Linetype Button and Text Field7 e$ Z" |- {1 {9 m6 e9 D1 }
(if (/= 4 (logand 4 which_tiles))3 @5 P R7 N7 M: c% f, ^
(progn
& T2 M3 V7 F: Q/ }- z9 V) h (mode_tile "t_ltype" 1)% d2 I) ~* s4 m& x. V9 P
(mode_tile "b_line" 1)
5 u- k" z# e5 W: A' z+ V )
/ S. r! N c' I& b )
) U, b& N) f+ {0 ] ;; Linetype Scale Edit Field
/ }* B& r* D. A! k+ j c$ l% a+ _' ~) V (if (/= 8 (logand 8 which_tiles)). }/ @6 m+ F9 Z/ h5 X* S2 A) `
(progn
S H5 d) W5 {: e5 Q! D3 @/ }8 \ (mode_tile "eb_ltscale" 1)8 w% T1 Z; \4 a5 v9 b9 k
)" S5 b5 N# _! Z3 B* u
)
, `, f r k$ S. U; C$ T ;; Thickness Edit Field.6 i# P: t" h4 u$ c0 v
(if (/= 16 (logand 16 which_tiles))
6 R) }, U. J' p: x: I/ x (progn
+ b' h# w! u5 P Y2 b (mode_tile "eb_thickness" 1)
+ r3 v0 t( C2 j- s4 ~ )
3 {/ C. w( E1 T6 @& e% M2 l ), R& ?( w/ ~ K" }" }( m- k
)
: J7 N$ k; J0 T" _; U2 v ;;) G; L3 [( t9 M
;; XYZ Point values for all enitites
5 s5 T1 C+ R* o# z$ t7 d ;;
[' |# A% P4 t$ \/ F; m (defun set_tile_pt1 (ptype)" w, p" r, F" t* }' u+ n; y- K
(if (= ptype 0)
5 F2 p% |( `# f3 E! j3 ~* B (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
6 T) U9 _5 g% m (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
& g; t, w- A0 g! D Z* Q )
; d! g7 X& F5 p2 s (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))
# \! r K6 ^. x" H3 ?: ^ (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))
1 Y1 _+ w9 S" Z! v; z% ~! N (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))1 ?' A; q, J6 t$ Q
)6 L9 v: K0 G5 [0 M5 I: {) V. i
(defun set_tile_pt2 (ptype)
3 i$ e2 M! u; z2 u& c (if (= ptype 0)
- v. a9 d* v. H/ K) x (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))- g! r* q( Q% D3 R7 Q5 h
(setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
1 \% A; c( p- J )
" H. y: e+ \/ \1 f( W (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
% r/ q2 ^) _" n0 O' c* b, y (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))# W/ @- \3 ]. a: M% B: \6 I
(set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
& A9 L) v: ?1 r+ Q1 i )9 l3 J0 S9 q! ? ^9 U
(defun set_tile_pt3 (ptype)' \ |% A/ h/ A& w: o
(if (= ptype 0)2 M) _: D* n8 I f0 q, O! h; T1 |; ~
(setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
: x3 C' A4 N4 b2 l L6 s (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))7 u( f8 ]& v; c, L7 ~4 g
)
- s! Y; M. V# B* y (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
+ ?, G% V5 s/ f7 m# _4 k$ s8 J (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
3 }) f) Z: H/ h$ F1 e2 A# K (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
1 R' w1 \+ N/ G5 Q" v9 ~3 m7 R- _ )1 M1 V5 e7 e/ i" V8 J2 X6 h
(defun set_tile_pt4 (ptype)
' m1 y" A1 R8 T% E9 ^ (if (= ptype 0)1 j# f! d- ^; l, s( x
(setq pt4 (trans (cdr (assoc 13 elist)) 0 1))' l1 Y9 i7 t5 x3 [% N8 l
(setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
' b0 n- u1 b. Q( V, U ): r& K) _2 ]4 L7 ?
(set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))6 R" o1 |+ V" V; J
(set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))5 T$ x+ R$ }/ Q7 x& x9 b
(set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
/ H8 y0 G* t/ C# J )
* g+ ?3 w5 D1 t; F( U4 { ;;
( t* U% F1 `8 H. d% ~( Q ;; Xline/Ray
# J# q% P0 v4 w' _/ q; @ ;;
- E5 D7 h* U/ b9 I( V2 [ (defun set_tile_xline_pt1 ()
: {4 }# Q$ C' S+ s0 z0 N6 ~& [
7 A* a- }- p& ]2 d* o& Y; R. V (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1)). M2 f8 y0 J, T. e! o. u
9 l/ F$ x+ }' L* H, x% _) z
(set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
4 p9 B% v+ k$ R+ C. ?9 R7 ?7 R (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))0 l/ I1 G N% w i3 ^5 x" g! f
(set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1)))). v4 z9 @" o: F
)% c$ F Q% ~$ U5 ~6 f
(defun set_tile_dirv ()
$ |' h3 G( J N ;; Convert 11 group to local UCS (displacement)
% @3 Q9 `+ T/ M2 S) j- ? (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1)) g" B; g Q# x+ M, C) ^
8 ~ w" P* {; h5 ? (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
0 ^" |" ?" g6 T- F) G+ F' c (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))
4 g [+ z2 ?6 J- u5 |% D (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
y" k# Z# I& @* q- j )
6 T3 f# Y' c1 B) U" Z" R. J% }5 L (defun set_tile_xline_pt2 ()
; ~: ~9 G, R. f4 ^; ] (if (not xline_pt2)
2 u1 u5 ]4 x: d6 n ;; Initial second point is Root Point + Direction Vector
) Z9 b* f+ `" X9 U) P$ `: X: a (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
+ _; w* I3 m7 L% i8 K8 W9 C )
( H4 O: B' |1 B+ Q (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
/ D ]+ ]3 ~ E% |+ A4 s (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))$ B1 X1 l) F$ }( _& t g- D/ V
(set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))' W3 x; g' a! e( Q2 E
)9 O5 h( {/ Z' ~2 A, Q8 h
' `# p0 g' |3 i( f$ D) V
;;
! l) O; T- u& o% v/ t9 ?1 x( o ;; Handle for all objects
; x+ z4 ~6 O" s" N; H6 e ;;
5 i8 P- q6 U4 s (defun set_tile_handle ()
: Y5 ?5 H. ?* v( C; @- p (if (setq hand (cdr (assoc 5 elist))). m# i* d' E" l
(set_tile "Handle" hand)
# k( m3 t+ ~% c8 @: W( c (set_tile "Handle" "None")/ ~% X* z$ ? p6 e8 Q8 z: ^
)
/ D4 ~5 W! d6 \: O5 i a )4 l/ B. w! z) j3 u
;;
: E2 a8 E( }) B8 ~4 i- G6 V ;; Radius for ARC and CIRCLE
( d1 ~0 k/ B0 P) c5 ~% H ;;
0 n. f8 w3 w2 P( u0 { { (defun set_tile_rad ()" }! U# C2 c8 U& S3 C, q2 S% z
(setq radius (cdr (assoc 40 elist)))
8 w0 [. P8 U/ s' d! J (set_tile "radius" (ai_rtos radius))
: f# Z5 X& m+ @8 m9 W& ]0 z4 e; E )
0 V# ~& J- a# o, E& S! v ;;
: [1 V! h; d4 N* A. a' L$ A ;; Start angle for ARC
& w4 a$ t9 F1 J6 H ;;# z) P* q, g1 i& i# o1 i4 E4 U
(defun set_tile_stang ()
0 s" J8 L$ y1 t. M) } (setq st_ang (cdr (assoc 50 elist)))
3 G/ T0 v' g1 ~6 e. H' k6 `! _' i6 z (set_tile "st_ang" (ai_angtos st_ang))
) V$ o5 v; m) ?: |" g$ l )
# o: H, d0 c, D2 T ;;0 {7 @5 Y# U& F# f* V* T& ]1 r
;; End angle for ARC
# V5 |* X! I/ j3 N- v' O$ Q ;;
! _3 e4 q& u8 r (defun set_tile_endang ()3 Q% X0 f7 k9 i' f
(setq end_ang (cdr (assoc 51 elist)))6 K$ t) X! I( Z7 s8 L
(set_tile "end_ang" (ai_angtos end_ang))# o4 z: b* P5 n0 z
)
/ Z: z* `2 Y. r, R ;;1 r# I3 m5 k: u/ `0 r+ v
;; Rotation Angle - Text, Attributes, Block insertions and Shapes& U9 ]2 m# R* y& Y
;;
6 K& b. `; h7 p% \$ ~: i, s# _ B (defun set_tile_rot (). C4 ^' ]3 {/ I5 X+ ~" I9 n; U$ [
(setq rot (cdr (assoc 50 elist)))
. O: Q- j* ^8 n; Q$ `9 @ (set_tile "rot" (ai_angtos rot)): P7 [ P' S1 _' V% E
). `) E4 G$ s* ]4 f5 [3 ?
;;
, V R) y# C6 N4 L ;; Height - Text, Attributes and Shapes! _5 g) t) O% \" ~2 R
;;
% ?8 b0 m; D8 V2 j. a4 A0 }9 @ (defun set_tile_hght ()
' h; R: \- i6 y, B! ]. Y (setq hght (cdr (assoc 40 elist)))
0 k5 L/ G; }# {4 k$ U! V (set_tile "hght" (ai_rtos hght))2 n5 D& }7 W1 `8 c
)6 k3 [( D1 f2 `
;;4 t9 G) w2 W0 I! P; ]+ F
;; Width Factor - Text, Attributes and Shapes) y4 ?+ ]2 `! e: V; e
;;& X* t% J9 z* E/ I
(defun set_tile_wid ()
% I8 x* R+ y1 @, I4 J (setq wid (cdr (assoc 41 elist)))
5 c( ^3 y9 Z' g, S% ?7 C: t (set_tile "wid" (ai_rtos wid))
/ p' h) F7 @: T9 a; ~$ w* o* P )
' c* d' g# b4 g! e ;;. S W! C g1 h8 E& U, \5 C3 {
;; Obliquing Angle - Text, Attributes and Shapes( s" m" ?* u, e+ f- q
;;
' j" H. ^# ^; d( f (defun set_tile_obl ()
/ n1 z) b) q6 A% D) u (setq obl (cdr (assoc 51 elist)))
7 ]& h$ ]1 @$ U! a% ]' N (set_tile "obl" (ai_angtos obl)), e/ ~; u: n5 Z/ g+ f* C
)9 T0 O4 s5 V/ x+ e6 U p3 B5 {
;;5 }$ d$ Q- D! z) Z7 C7 l
;; Text string
' u7 w( n7 O" W* F5 n% f( B, e ;;6 k0 D5 N# j9 S- i* Q7 N
(defun set_tile_text ()6 s! ^% H( u0 |! x) L$ n
(setq text (cdr (assoc 1 elist))); o1 R. U- q1 L* U' v
(set_tile "t_string" text)
. S6 \0 {9 \+ E- O )/ x. o4 l" r! q
;;
" a( s0 N; |5 y& l; \. G, J; o ;; Attribute Tag
) G" W( O- o. c6 l# T ;;8 _& n/ h3 X5 k. h: h1 z X- H
(defun set_tile_tag ()
& ~4 \* P! G* x# [ (if (= etype "ATTDEF")
3 q/ I' J x- e( x I (progn
# D6 t, ]/ p( K5 o" o5 @ (setq attag (cdr (assoc 2 elist)))
0 X7 J, ~8 _+ W y- d (set_tile "tag" attag)
4 k: `( D C' ~! T ^ )
- @' O: h8 ?" @( I8 q& X ): S; m: ?% y$ V" D/ T
)& E6 F& e3 K0 a0 l0 u; j
;;
9 F' n$ u/ w9 k4 k# D. c" m n5 X ;; Attribute Definition
$ I5 ?5 |6 X5 M# W6 H ;;0 A9 D ~1 ~8 D
(defun set_tile_prompt (): G. c' y1 g1 G' j" ^! b
(if (= etype "ATTDEF")
' x/ z) _, x" {* i2 F6 F (progn# a0 Z0 u% N! C" j+ Q
(setq atprompt (cdr (assoc 3 elist)))" x# Z# z% ]; L; e5 {
(set_tile "prompt" atprompt)
* E$ ?% i& w! X0 P" @/ P )
& p# b# ?( ?0 }+ @7 z8 ^! Q )
3 X, _2 s- o7 q6 ]& T# y+ c, Y )$ t- z- w M" S- ^# v
;;
7 b. y: e- m: d" r ;; Justification setting for Attributes and Text. Initializes
& ] ~% a: {. D5 f p3 \ ;; popup list box p) n/ o/ j7 q0 {! u& ~
;;% A; i/ f ~, X4 `3 p
(defun set_tile_just ()" n5 D% a9 o8 i" ~3 G% @; v
(setq ha (cdr (assoc 72 elist))) ; horizontal alignment2 ]' ?4 E) M# L/ X% p6 v
(setq va (cdr (assoc 73 elist))) ; vertical alignment
H M6 }4 b! R/ X4 O! c (setq ha-prev ha)
# C) n+ r+ p! R: C (if (= etype "ATTDEF")( ]" [& j0 m8 {, b
(setq va (cdr (assoc 74 elist))) ; vertical alignment
, o, U/ z q/ f ^9 N# U, e )3 h& ~; [9 w. O- j
(setq jlist9 Y" t- u' X9 u8 F7 U: V
(list "Left" "Center" "Right"
% d1 z2 p7 t+ P. C# s7 o: v! U9 @2 f% S "Aligned" "Middle" "Fit"2 K8 k+ J* ~8 H% b' h
"Top left" "Top center" "Top right"1 {7 {3 G4 \1 Z6 f
"Middle left" "Middle center" "Middle right"3 a/ T/ @ a: T7 R7 a" s5 [
"Bottom left" "Bottom center" "Bottom right"
5 ~) h, S; X* O! c/ C )$ Q1 N; D# b; B& Q* O0 E! |3 E
)+ z8 G9 V% z# T6 W
(start_list "popup_just")
1 R! D2 u* A( c% j% A3 W4 ? (mapcar 'add_list jlist)
" d# ^- H' J! U4 w4 e (end_list)
2 J4 q2 y. x7 @, [* [! r (set_just_idx)5 B w' x& l3 D( C3 H2 t
(set_tile "popup_just" (jlist_act just-idx))
9 c$ I) J6 e5 w5 o! {9 P/ s )/ s y% f. @7 a- b7 J4 ~: K8 s
;;% U+ B+ L Z5 T5 R0 {9 t
;; Style setting for Attributes and Text. Reads symbol table for popup list1 R+ Q! f4 ^, O
;; box.
* F: h* G8 X% G; q2 a! n- U ;;; X. c& }% O4 I/ }' |
(defun set_tile_style (/ sname style-idx tlist)
2 J: F& ]7 N: B7 P (setq tlist (tblnext "STYLE" T)! [- X) P; A6 f# Y/ F. H1 V2 ^: b# d
slist nil)( g$ q" O! M5 D
(while tlist+ n* ]; z, V3 b5 ^. A0 _. v
(setq sname (cdr (assoc 2 tlist)))
- f, m% j9 I6 ^& q (if (and (/= sname "")
6 K$ g: F& y2 `2 s ? (/= (logand 16 (cdr (assoc 70 tlist))) 16))* M+ h; c4 s, ]
(setq slist (cons sname slist)))( u: e) y# R" g$ f. W' Z4 F5 [5 @5 n
(setq tlist (tblnext "STYLE")))/ f- e# Z0 s; ^2 ?4 Y
(if (>= (getvar "maxsort") (length slist))
, M1 q% u9 c5 Q' [ (setq slist (acad_strlsort slist)) ; alphabetize style list
' y! O) Y" L( g: c7 K1 D | (setq slist (reverse slist))) ; or reverse it to put it in DB order
$ L5 o6 {( O3 s- m" q$ P1 y r
. Z) h2 T: i5 q) z& D. P; L) u (start_list "style")
' C! F a8 u/ ^; r4 J (mapcar 'add_list slist)! t0 ~8 u% U9 Y9 U& x f; Z- ]
(end_list)
/ G/ w0 q" N! B( M- f7 o* W (setq tstyle (cdr (assoc 7 elist)))
" S' W% A$ S6 s( w+ M4 B (setq style-idx (getindex tstyle slist))
6 h9 A5 Q, h- q; h. ~' M (set_tile "style" (itoa style-idx))% T9 g% w* [2 N
)2 P& f& H3 W' B6 n- o
;;" T$ r- u& V" n
;; Text and Attribute setting - upside-down, backwards
% @% ?% q/ x s ;;
2 v- j# `: K3 K, F* g (defun set_tile_bk-up ()
! `6 Y1 U# }# h; U3 z5 ~' t4 S! z | (setq bk-up (cdr (assoc 71 elist)))
! ?% [4 b o4 A, l( a& S0 H; o (if (= (logand bk-up 2) 2)0 n; J0 P( N* ?8 J/ H' I
(set_tile "bkwd" (itoa (setq bkwd 1)))
* I7 I- v4 O& T4 F (set_tile "bkwd" (itoa (setq bkwd 0)))
8 R5 F; T' K3 x- ]; X( J )
S8 c( ]1 h y) h (if (= (logand bk-up 4) 4)) ?& ^4 ?+ M$ z2 m
(set_tile "upsd" (itoa (setq upsd 1))) {# c% Q1 Z0 }6 ^. ~4 c( x
(set_tile "upsd" (itoa (setq upsd 0)))
% X4 W" b6 z; `/ O )9 D# r6 |; |7 R9 y9 |$ t
)
3 A# X4 _: h, H* i ;;
9 p( o a8 ^! Z. j, ^+ t ;; Attribute setting - invisible, constant, verify, preset5 ]/ E2 k( n" W, M/ G
;;/ v* ^) g6 a1 C
(defun set_tile_icvp ()9 k$ ^$ x& v. _+ Y) \2 E7 O
(if (not (setq icvp (cdr (assoc 70 elist))))8 ^2 _( z6 f9 C' q+ p
(setq icvp 0)1 v8 y( j C/ n8 r8 f
)! i: I' l1 s9 B$ s$ d) N; a
(if (= (logand icvp 1) 1)* ?; B; F! ?4 S- t2 u ]5 H8 Y
(set_tile "inv" (itoa (setq inv 1)))7 i) Z# P; n( q( ?" \, ?/ y
(set_tile "inv" (itoa (setq inv 0)))
" H( V; t/ M6 a9 O# [ ). m9 S3 |1 |2 p( A6 J; s& L; C
(if (= (logand icvp 2) 2)
4 V$ y) V0 L6 ?" G (set_tile "con" (itoa (setq con 1)))% H! D: C. O) ^8 c6 {
(set_tile "con" (itoa (setq con 0)))
& h% T9 Z0 [# o$ a( E: E2 G )& y3 Q3 T( n( V3 l7 D* S, |- [
(if (= (logand icvp 4) 4): X& P5 P4 I& c
(set_tile "ver" (itoa (setq vfy 1)))4 P; \, w- n S# E5 R/ D% b* j
(set_tile "ver" (itoa (setq vfy 0)))6 @% l2 }7 e4 y5 o
)
! r6 Q! T, L0 c3 n$ d2 w( y (if (= (logand icvp 8) 8)
/ c% P2 Y. \+ \8 i (set_tile "pre" (itoa (setq pre 1))). X- b, n. ~" p5 n0 x$ [
(set_tile "pre" (itoa (setq pre 0)))0 s7 j; S; q" R
)1 {$ k. Y$ D+ {" \% _
)
" g3 ~ A4 C- J; n/ K ;;8 U. J3 l' d0 w/ e
;; Scale factors for block insertions: s; N3 F! D, p- T" W6 m2 f/ Y8 f0 q. g
;;8 b: G: E5 l6 O, ^
(defun set_tile_scale (/ temp)
: d7 \1 S& A! |3 ` (setq temp (getvar "LUNITS"))
; \* z2 x; y8 l (setvar "LUNITS" 2)
) H! h1 h1 r5 u (setq xscale (cdr (assoc 41 elist)))1 |2 d8 r# U) F; ~
(set_tile "xscale" (ai_rtos xscale))
3 X8 G5 |5 z3 Z7 l, O3 R (setq yscale (cdr (assoc 42 elist)))
' S2 l/ C* l( V. `: g) k (set_tile "yscale" (ai_rtos yscale)). w7 C. U! x! y" x
(setq zscale (cdr (assoc 43 elist)))
# F$ b2 q m& O: i! y2 K4 u1 x (set_tile "zscale" (ai_rtos zscale))$ a9 [! e# f5 W3 I1 M0 o
(setvar "LUNITS" temp)
# t/ F3 R' [" r" X8 I )
9 V p& k( B5 s; \1 f* i+ X, m ;;
) }9 p) }1 s5 U G: k Z3 H ;; Rows and columns for block insertions
2 M4 j L( P+ }4 j6 C' L ;;
* o1 s& `1 A0 C1 W (defun set_tile_rc ()
+ h, G/ g3 b. A; s, f* _4 L n (setq columns (cdr (assoc 70 elist)))
( ~6 W0 j0 I, }+ g1 Q- d) J (set_tile "columns" (itoa columns ))
3 y; q/ X6 `9 H" e A% I/ G (setq rows (cdr (assoc 71 elist)))
# ^/ ~4 `* Z7 k$ x" D# _ (set_tile "rows" (itoa rows)), ]. e4 Y# e1 w0 Q/ f! ^, K
(setq col-sp (cdr (assoc 44 elist))); x& f& W0 s% v8 Q$ ^2 o- J) s
(set_tile "col_sp" (ai_rtos col-sp))& o& ~6 g& G1 G7 L
(setq row-sp (cdr (assoc 45 elist)))
$ g# F @# l# J/ f (set_tile "row_sp" (ai_rtos row-sp)). p6 \* ]0 C3 n9 F- Z
(if (/= hasclip T)9 D! C0 n& a7 t6 o4 h8 ` A0 {
(mode_tile "xcliponoff" 1)3 p. J5 ~- n8 N( R
(set_tile "xcliponoff" (itoa xcliponoff))1 P0 k( K$ \6 v' ]5 e% }
)
: l5 b/ Z& \7 V1 k$ t )
' r+ p6 r: K& v8 R8 F ;;8 D6 p! Q0 \$ e& p& E2 F$ w$ u6 z
;; Invisible edges for 3DFACE
0 K2 r1 a- N) ~& |% r ;;
+ }7 @+ K$ J! e0 E" U (defun set_tile_edges ()
0 R9 X9 N9 x; s4 e$ e7 H/ L2 s a (setq f-vis (cdr (assoc 70 elist)))+ w( Q: I& o& g ?
(if (= (logand f-vis 1) 1)# C2 d5 W3 o( m: g# D; W9 v
(set_tile "edge_1" (setq edge1 "0"))
/ d$ T7 z+ @. m Z& J! |; I, l (set_tile "edge_1" (setq edge1 "1"))' z5 O/ [6 t, I9 S- Y, a
)
: e1 Z9 R1 b- i( ~7 Z (if (= (logand f-vis 2) 2)* o! U$ X1 J2 S0 D
(set_tile "edge_2" (setq edge2 "0"))
1 q h Q- j# B+ O! q8 q (set_tile "edge_2" (setq edge2 "1"))1 s1 S f5 Q/ a9 W
)
0 x4 l" P3 M7 w e( h (if (= (logand f-vis 4) 4). R! ]& |/ F: _% g# G% ^
(set_tile "edge_3" (setq edge3 "0"))
9 {8 n# L: o0 h8 H% x5 ^5 i( W; P (set_tile "edge_3" (setq edge3 "1"))
, N6 [8 G; F q! y )
1 p" M4 ~4 a# Y3 N (if (= (logand f-vis 8) 8)
' `5 z# W2 z* c# b (set_tile "edge_4" (setq edge4 "0"))$ p. ^" X; h0 F) A
(set_tile "edge_4" (setq edge4 "1")). i n) g$ [8 c8 n. Q; d: z
)+ n* R, [" h- b( K
)
3 A4 |. X2 d; e+ v# [+ n* k ;;
) N4 D2 q. x+ w. ~ ;; XYZ Point values for polyline vertex5 q& t# a6 ]6 d8 \! u- l+ T( T
;;) w% ]3 Q+ P" R% V
(defun set_tile_vpt (ptype)
: A# s- ?; R6 x ` (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
# m7 |; y! D5 E) b7 h" e (progn* {& T! i2 p2 P/ w# }
;; ctr is 1 based, vertices are zero based.0 K, s* g U1 L5 i& ^/ ~/ j
(setq vpt (cdr (getLwVert (- ctr 1))))
9 i; z$ S6 _" {' t" V (set_tile "xtext" (rtos (setq x1 (car vpt))))( {' W! n8 ?5 Y$ j6 n+ ?' E
(set_tile "ytext" (rtos (setq y1 (cadr vpt))))* o" ]* r7 ^! u7 C! l6 S4 z
(set_tile "ztext" (rtos (setq z1 (caddr vpt))))
4 P. x0 ~1 Z% m) Q2 C )
! _( a. l n1 j) g3 l' b (progn! m, x- L1 j# s* ?; v+ G
(if (= ptype 0)2 `. g. E" w$ a+ T7 @
(setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
: n) v% Y8 @' t L (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
m9 |, B/ k5 t )
! S9 T( ~: c7 m( t1 a& j5 J
' ], I5 A2 x0 u% ]& Y. y. {7 ?) K (set_tile "xtext" (rtos (setq x1 (car vpt))))8 I" `1 Y! |7 O- J/ J; i
(set_tile "ytext" (rtos (setq y1 (cadr vpt))))
) y: g& ^# A0 J) x0 _: s (set_tile "ztext" (rtos (setq z1 (caddr vpt))))- Y" _6 `5 j8 Z# I9 w3 V3 _
)
/ ~: l6 J7 N0 n$ V1 c ) |. L- z/ q k g$ y* V# ~
3 _2 a* @. j5 X& j% p" }; n/ q )6 R" h$ q5 O# w: a& N$ A% p
;; This is the equivalent to doing an entnext on the heavy weight9 J+ _) n9 |# S: d1 S9 f
;; polylines. The hard coded '4' below allow stepping over the
! J% q( I# o; m- C, i* ^ ;; 40 41 and 42 group code information. The while loop finds the
; u* Y; L; q- ^; @$ H4 E/ V; l8 V2 g ;; first vertex which will be used as the starting assoc in the
8 l6 z9 T* \, d0 G8 _( T ;; call to nth.# V& Z7 R! D% ]8 E: G
;;) M. |8 z: N0 s/ i$ ` N# w. p+ s
(defun getLwVert (tmpctr / count tmp)
8 @" d$ O W! r (setq count 0)5 n! a; V3 x0 u9 J
(while (/= (car (nth count vlist)) 10)! p# }3 J# J5 B. h# k% ~
(setq count (+ count 1))
2 S( O8 O6 `! @- E )! X" z9 s3 D$ D6 C9 V& o9 P* F
;; If the counter reaches the number of vertices,
. N$ {$ } `' G! X% | ;; reset ctr and tmpctr to zero again.' B2 G$ W/ _' Z- w8 E5 q. w) ]
(if (= tmpctr (cdr (assoc 90 vlist)))
& n! Y3 F3 E A2 p% x+ [! \# {. Z0 i (progn
& R5 Q. a$ C6 g" U0 \9 s4 C (setq ctr 0)3 Y$ i/ O; X% ?& V' x9 _5 y( u
(setq tmpctr 0)0 x* R* ~( y1 @3 W& ~) i: c
)
( y0 q1 R* y0 n# Q* V1 @: r: ^ )
+ i" C. G, ~* d (setq tmp (nth (+ count (* tmpctr 4)) vlist))- r% m( _8 I) a5 U' o
(setq tmp (append tmp (list(cdr (assoc 38 vlist))))), v) T; ?: J; h
(setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))2 O* d' b( h8 v' J' K+ z5 L8 _3 B
(setq tmp (cons 10 pt1))
8 c, G- U9 c; k5 ?3 g! Y% w (setq tmp tmp)( ^8 U7 K* G0 _3 Z- H' b' i
)! c6 T2 w/ j- E1 Y7 ]0 a+ S% f
;; B0 R7 F! r; @0 n5 v+ t
;; Set tiles for Spline properties. If the spline is rational then we5 I1 n5 Y: T$ [
;; need to display the weight values of the control points, so set, G( N6 T T. b8 ?
;; flag to 1.2 V4 N( [" M: o1 ^: V' g
;; 1 = rational spline
* I4 k+ X9 s) w& k0 _ ;; 0 = non-rational spline' u" e5 F) E8 P0 D) y: i
;;
' X; D# a- T5 L, ]: J (defun set_tile_spline_props ()3 Q' y3 D& h4 Z" s1 v' u
(setq rational_spl_flag 0) ;; initialize rational spline flag) {& {) H" i& K' U
(set_tile "Degree" (itoa (cdr (assoc 71 elist))))& M: N3 Z) G4 h# R. o3 \
(setq bit70 (cdr (assoc 70 elist)))
6 K8 `8 E# x6 u (if (= (logand bit70 1) 1)% D& E7 q8 p. Q! D+ n6 |
(set_tile "SpProp4" "Closed")9 C$ C0 x. ~ S3 \& n3 A
(set_tile "SpProp4" " ")
' Y/ T. w' j D9 P: U9 a+ n0 F )
! d. w7 C* |4 B/ |6 W: [ t (if (= (logand bit70 2) 2)5 t) Q. e% S: \+ d% W" V3 X6 M
(set_tile "SpProp3" "Periodic")
0 p5 t% G( t& o3 n (set_tile "SpProp3" "Non-Periodic")1 \0 v* c0 J6 e' x
)( O7 w' m9 ?! X1 S' b9 f
(if (= (logand bit70 4) 4)
e: b" p6 e, O! G% b" J; c (progn
2 U4 N8 E) p4 O( f! K$ C1 x (set_tile "SpProp2" "Rational")
6 ~2 |5 \" h$ O (setq rational_spl_flag 1) ;; this is a rational spline$ \6 }2 G3 ^6 ~1 }3 J5 j) _
)& Z$ r5 O" E3 E) t) E
(set_tile "SpProp2" "Non-Rational")1 i: l/ m1 M" t# B D
)$ `/ t+ L0 B& Z$ b3 c1 ^+ g
(if (= (logand bit70 8) 8)( I. C. ?) y$ i/ K/ E L. {# ]% p
(set_tile "SpProp1" "Planar")5 _. o3 F- t2 o2 \8 p& _+ Q6 q) U
(set_tile "SpProp1" "Non-Planar")
& g, B# ~, v3 c/ ]* m )) i W/ }. ]3 f5 \+ D
(if (= (logand bit70 16) 16)# d( E/ Y" h! W T
(set_tile "SpProp5" "Linear")
! n. [4 k) `9 p (set_tile "SpProp5" " ")0 k. v) y* O1 L; K
)
- R* b5 s5 }4 f( Z1 M! w' z: C )
9 q: T" a, y/ o& u ;;' b @4 g3 u% }7 y. G* o2 M: b
;; XYZ Point values for spline points$ j; j$ G- h6 V1 n6 [
;; Need to account for WCS/UCS) W* \8 V) n4 n# b% Q9 L9 i1 {
;;$ r8 x A ]0 j$ T
(defun set_tile_cntl_pt ()3 D( e; u4 I9 r( i
(setq cntl-pt (cdr (assoc 10 elist))) v" A& d1 [4 W i) M# K
(set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
; ?3 X [8 V2 C$ c/ q2 ` (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt)))); ?! E+ r$ j# F0 X6 T* ^
(set_tile "ztext" (rtos (setq z1 (caddr cntl-pt)))); ` O' Z0 n" x% X
(if (= rational_spl_flag 1) ;; if rational spline
" _4 C! ~, b* O+ T) u6 r (progn ;; show weight) p8 d6 `$ j$ |. }) O9 b) u c# Q
(setq weight (cdr (assoc 41 elist)))
0 ]3 Y. z6 h+ Q& p G( S (set_tile "weight" (rtos weight))
* n& I4 u i! F' w. y1 S ) ;; else0 C* g2 | S6 A. J7 c
(mode_tile "weight_text" 1) ;; disable weight field
, z# `6 |" J* E: \4 B& W ), B; v8 P1 j* m" Z! g0 x2 w: i( w7 t
)( s" C4 B* d" R& q9 G. i" [
;;, u: o5 j6 N: {: N$ W# {7 H
;; XYZ Point values for spline points
$ _ J3 W4 q! h; [& {, e5 u' t% f% f! X ;; Need to account for WCS/UCS
* x: I E; ? c, X3 {( B$ N5 o: L. B ;;
. W% c* X, D' m4 v (defun set_tile_data_pt ()" f. z$ A# u9 a/ x
(if (not (assoc 11 elist))) d+ g8 H' U: N/ U# P
(mode_tile "data_pts" 1)* N3 f% Y5 d8 w. z s
(progn
2 F" d% R& \: R8 n" f3 C (setq data-pt (cdr (assoc 11 elist)))
; X2 Z8 b& ?* V; O: \$ }& O" f* d ;; display points with current precision.' f$ w' g4 G% n; ?* z
(set_tile "dxtext" (rtos (setq x1 (car data-pt))))
1 b) ?" o4 p% `2 ^; P. d (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
; L' J4 f p! O& A (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))" b. E, _9 N, L/ v
)
4 U2 y: S: b' j) J )% g* ~$ q0 e+ y6 A4 r/ E
)
2 L/ B9 D1 J8 s5 {& F ;;
% w- [+ o4 y2 ] ;; Fit curve, fit spline, or smooth spline surface setting
# ?* m! `9 ^( x v% U ;;% a: G0 N# P( I) Q2 F, N
(defun set_tile_fitsmooth ()
% l; c: |6 ^) f2 c (cond
: A. v) c- G/ I: ]% e4 m ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
% m, g6 z( m# n7 _5 ` (set_tile "none" "1")
/ c$ W4 g2 e7 G+ D# a )0 h5 w) T0 K* P9 d: |
((= (logand bit70 4) 4)
6 y7 g' }8 f4 N8 G5 |' r (cond
$ S/ H4 z: h5 k, p! ^& E' D' s ((= bit75 0)
1 Y, M! U5 _% J2 Q! w (set_tile "none" "1")9 S+ r0 y# a% M! k4 J" E( N9 H0 ]
(setq spltype 0)( b4 W- D1 s! _8 u
)
9 u6 ]+ y7 X$ |4 O$ C ((= bit75 5)
! S0 x/ S7 H) c$ I9 i (set_tile "quad" "1")
, ^. k6 e, t, n. N( | (setq spltype 5)- d- h: V! e5 G3 m) p* P1 Q
)1 V: _4 C; |! M3 \' x
((= bit75 6)
# B7 V9 u: I* M* R (set_tile "cubic" "1")
0 q& y' a* O! ?. f8 p' U, \ (setq spltype 6)) Q. h4 @+ c& T) q+ N
)
6 i0 X2 V6 A2 M* M ((= bit75 8)
. k' d6 ^' F% i3 k (set_tile "bezier" "1")
4 [8 I4 X% N' M7 { (setq spltype 8)
5 T3 L2 n) v9 S4 f )6 U! {* c! q( u) o9 M
)
( }7 n* [4 k( p- | )
$ n0 I. g* E* c* `3 i ((= (logand bit70 2) 2)
+ w! _. Q, _* X( C9 R( K (set_tile "fit" "1")0 j2 G& S% Q3 Y! y6 t. }+ s
(setq spltype 1)5 x# H3 u3 l5 e
)
; Z1 |- }6 f7 `+ Y# w (T (set_tile "none" "1"))1 G! Q( {) Q0 [4 h( h$ y3 y
)
- c' _$ M, x/ L7 F# D$ o )
- ~' t4 q8 t& x( X, G0 k. O+ p ;;
5 j7 o: ^$ b H2 j8 I ;; Closed or Open mesh and polyline setting
j1 W: ]8 X( q' m6 h ;;9 X& t3 ^. h" t6 _) B& o
(defun set_tile_closed ()/ M1 F! Q# T5 x9 A
(if (= pltype "3D mesh")1 y0 }7 `" R) a: h- \
(progn
, A# V- T9 l$ P! b# k6 P% X0 R' @ (if (= (logand bit70 32) 32)
* W+ ^/ ~7 l- p* K2 B7 \$ y (set_tile "closedn" (setq closedn "1"))$ R6 |- V& E, u
(set_tile "closedn" (setq closedn "0"))
3 {6 ^& q: ?7 t )
$ ^/ a5 C c1 z (if (= (logand bit70 1) 1)1 e- U0 u- i+ V2 c
(set_tile "closedm" (setq closed "1"))1 I& T2 [2 R! P
(set_tile "closedm" (setq closed "0"))
( x% F3 E3 Z4 O1 h) z )
}# O; z' b4 ?+ \ (setq old-closedm closedm old-closedn closedn)$ A( \1 o+ C2 b+ p) i/ q
)
: P6 D; a" J) i$ {4 L% ? )0 A7 e; `& K r" s6 @, M
(if (or (= pltype "2D polyline")
$ F9 n' {: v% K8 e (= pltype "3D polyline")
& I6 A* z2 \ y$ R: o9 t2 P+ L6 a )
$ E& u' r% X. [ i9 p+ D (progn# s# J' d& u+ r1 }) T9 Q" U5 [
(if (= (logand bit70 1) 1)
6 Z( y1 Z: T/ f( Q (set_tile "closed" (setq closed "1"))' q) ]0 h* F+ z/ i: v7 b, X% U
(set_tile "closed" (setq closed "0"))
* p( i! Z2 \( u& h ): Y1 Q1 l) q4 w+ ]- y* L
(setq old-closed closed)
2 p ]8 ~% W7 s& R# ?# T) z )' W" {) q* m3 S1 ~- N
)! U' J6 D" Q0 f5 E& Q) W0 l9 N7 M
)
5 `9 i: c* N! M3 O; G+ e: G ;; Set common action tiles- a0 y. f0 N& P1 I5 R: z
;;( E- Y' _1 G7 i) C* }
;; Defines action to be taken when pressing various widgets. It is called
% E: E7 ^- h8 n2 J/ N5 z ;; for every object dialogue. Not all widgets exist for each object dialogue,/ A0 H. T; G0 }. [: P! h, p, F
;; but defining an action for a non-existent widget does no harm.
% A' E" p& U9 v6 ?- h (defun set_action_tiles ()9 k* a f3 Q" Z7 V; C. ^
(action_tile "cancel" "(dismiss_dialog 0)"). _- R9 X1 N+ ^1 h
(action_tile "accept" "(dismiss_dialog 1)")8 h9 ~' g$ I H) u; D1 ^& C
(action_tile "help" "(help \"\" help_entry)")
+ J" D' s1 c' \" z( b: q1 l; R; R (action_tile "b_color" "(getcolor)")
0 k- X+ N( n3 Q1 }% q, y (action_tile "show_image" "(getcolor)")
+ h4 \; i T% f$ ~* s5 P- q h (action_tile "b_name" "(setq elayer (getlayer))")
& x s( i" Q' ] (action_tile "b_line" "(setq eltype (getltype))")* v% e: t2 E6 V0 y! a: N Z3 _+ \
(action_tile "eb_thickness" "(getthickness $value)")
3 R# X A8 B, T, o (action_tile "eb_ltscale" "(getltscale $value)")
8 m2 a5 k- i2 X ~2 G0 x8 [7 j- A" J$ }& Y/ H- G) Q3 l/ q
(action_tile "pick_1" "(dismiss_dialog 3)"). b7 v+ q9 d. F X
(action_tile "pick_2" "(dismiss_dialog 4)")
) ]* ^8 Q6 |6 ~ (action_tile "pick_3" "(dismiss_dialog 5)")
& } ]. ~1 {2 b2 N5 y (action_tile "pick_4" "(dismiss_dialog 6)")
1 A' L9 J8 `6 e1 o (action_tile "x1_pt" "(ver_x1 $value)")
. f% C. t; I, D- \( P% ` (action_tile "y1_pt" "(ver_y1 $value)")
% w7 e, h' m; a# Z z (action_tile "z1_pt" "(ver_z1 $value)")
0 `; G3 s8 }. ?9 V& W3 L1 ~' y (action_tile "x2_pt" "(ver_x2 $value)")
4 r5 s3 b4 _7 V$ @3 C' r (action_tile "y2_pt" "(ver_y2 $value)"): @5 U3 D( N2 o p- t2 |; t/ B
(action_tile "z2_pt" "(ver_z2 $value)")
C6 A- e; E8 c8 |/ _9 W e) W (action_tile "x3_pt" "(ver_x3 $value)")
! z3 F8 c' U! t$ v- g' a (action_tile "y3_pt" "(ver_y3 $value)")8 g: a: W" l) ~* W5 Z$ v9 P0 ^
(action_tile "z3_pt" "(ver_z3 $value)")% s' A# ~8 \& ]( B5 b
(action_tile "x4_pt" "(ver_x4 $value)")
* a6 Y- G; q r+ y8 i( y; R" ~) R$ k6 v7 \ (action_tile "y4_pt" "(ver_y4 $value)")
# k3 d# e! w( h# _/ u& c (action_tile "z4_pt" "(ver_4 $value)")
( x9 g, r- D2 I8 P. J- b7 G8 N; H
;; Action tiles for Xline & Ray
. Z: ]% o0 t5 r (action_tile "xline_x1" "(ver_xline_x1 $value)")
; v4 u! z, d$ O- h* _0 I$ m (action_tile "xline_y1" "(ver_xline_y1 $value)")
) W' T' z" w/ ^( d& c3 D" D (action_tile "xline_z1" "(ver_xline_z1 $value)")
/ k" M* T! N8 J# _3 \9 z0 ` (action_tile "xline_x2" "(ver_xline_x2 $value)")
5 S" y. j" Z, g' s! @% ?2 o (action_tile "xline_y2" "(ver_xline_y2 $value)")
3 b6 f# j) \- ^7 L! }3 ] (action_tile "xline_z2" "(ver_xline_z2 $value)")1 a9 i7 ^9 E3 A% u$ [; h! ~% g
% \$ @: H' k! r1 X
(action_tile "edge_1" "(setq edge1 $value)")- z- T/ F9 Y# h1 H. Q5 e
(action_tile "edge_2" "(setq edge2 $value)")' R, i' C. S& A1 q# w* m6 f
(action_tile "edge_3" "(setq edge3 $value)")6 E( c& Z$ g; f9 ^; D" ^" j
(action_tile "edge_4" "(setq edge4 $value)")
) h4 q4 t6 l D" `7 J1 e, y; z$ M* M/ h2 P+ `$ M4 c" P; L- a3 Z
(action_tile "radius" "(ver_rad $value)")$ z% S! h% w" j- ?) q" O
(action_tile "st_ang" "(ver_ang1 $value)")# P6 l2 o0 }. I+ k" m3 ]1 o
(action_tile "end_ang" "(ver_ang2 $value)")
& r4 C4 Q: O5 U5 V. B (action_tile "end_eang" "(ver_eang $value)")' S# G. t( d5 U
(action_tile "minrad" "(ver_minrad $value)")7 T7 A+ E5 t9 G
(action_tile "majrad" "(ver_majrad $value)")
M" l1 v. a; ~2 N8 w7 }/ d }3 K, q8 C# P n% o% n6 V
(action_tile "xscale" "(ver_xscl $value)")
1 v+ p9 t; f" W5 ` (action_tile "yscale" "(ver_yscl $value)")3 d- U6 ^( _' M' }- w! _
(action_tile "zscale" "(ver_zscl $value)")9 d5 P$ s/ B5 f
(action_tile "rot" "(ver_rot $value)")9 E! Q* C0 W& f4 b. v* Q
(action_tile "columns" "(ver_col $value)")5 [$ B) @% S3 Y& t
(action_tile "rows" "(ver_row $value)")3 Q; Y0 T0 Y) Y: w; Q) l. m6 w
(action_tile "col_sp" "(ver_colsp $value)")# n2 y! J& y6 Q& O6 [# K
(action_tile "row_sp" "(ver_rowsp $value)")
* H1 T: u3 t* `
/ O0 E+ i+ h/ _& J9 F U1 A (action_tile "hght" "(ver_hght $value)")& a8 c: o# \* ]0 n% ^/ T6 u+ k+ W
(action_tile "wid" "(ver_wid $value)")" b( e/ N4 k5 D% L
(action_tile "obl" "(ver_obl $value)")3 k. y+ L) ~; c& P4 B4 S8 `/ Q+ r
(action_tile "style" "(style_act $value)")8 O' E3 U+ c/ `2 V2 ~; d" z
0 |$ b( q. n- l4 U" E) [, |4 F. d9 o
(action_tile "t_string" "(ddgettext)")( @" W L" |& G1 k7 N4 _0 p
(action_tile "tag" "(ver_tag)")
1 S/ c2 t; k& C. R/ j (action_tile "prompt" "(ddgetprompt)")
' [: @ K K- ^ {7 s' \7 h( W' u (action_tile "bkwd" "(setq bkwd (atoi $value))")
) u" `% ?- ?/ h4 F) ]; O (action_tile "upsd" "(setq upsd (atoi $value))")- o$ U) V" |, ?! @5 _+ q5 k
(action_tile "inv" "(setq inv (atoi $value))")
6 l% R' Y0 [6 t2 B& v (action_tile "con" "(setq con (atoi $value))")
" f% N/ A% s% E. P: Q$ t7 Z c (action_tile "ver" "(setq vfy (atoi $value))")2 @/ k9 }, T) i
(action_tile "pre" "(setq pre (atoi $value))")
& @% h9 x# c6 O# @4 h (action_tile "popup_just" "(jlist_act $value)")
" C% K: u! e+ H, q; D$ ]4 B" \9 p- t; [2 |. p& J
(action_tile "closed" "(setq closed $value)")5 N. H- e/ e' b9 J% b4 D
(action_tile "ltgen" "(setq ltgen $value)")
! b0 M D W$ B( U (action_tile "closedm" "(setq closedm $value)")
& ]1 ]: ^( T. m: |3 k" e$ q (action_tile "closedn" "(setq closedn $value)")
1 O! E$ S, ~! L! v' h, n2 f! } (action_tile "next_v" "(next_vertex)")
4 B$ c7 a+ X. K1 L# f (action_tile "xcliponoff" "(setq xcliponoff $value)"); K% j! @! N4 W0 I2 P, m
# B! h7 c* W4 C& _; L9 h$ G& I
(action_tile "next_cntlpt" "(next_cntl_pt)")8 d; \: T+ B1 {8 u3 Q
(action_tile "next_datapt" "(next_data_pt)")
! b) b# l- F6 V7 ~ |
% t1 M0 ~3 g' [% J) t (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
, w, M) q+ [( L3 [% e (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")8 W" ]# M I4 m2 ^) W& }2 S& g( n9 W
(action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
% t$ ]) H% A, n9 y% n- H; w (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
0 A0 {- j6 f* o, o (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")% W" F' L' M( p( z! L% @
9 v' i. U' r& P, L7 w$ w+ \ (action_tile "u" "(ver_u $value)")' S3 f; o8 D) b* \, l/ K
(action_tile "v" "(ver_v $value)")
4 L- z2 P" B( v) E- P/ J- Z/ u) n6 _ )
( ]" |9 W, _1 E) m# w$ x k5 T9 i Q' M s. q4 Y( |! \0 T" k! O
(defun ddgettext()2 f9 N0 ^# S" ~3 }8 V
(setq text (get_tile "t_string"))3 k3 ] w/ l; ^0 z5 g% R) v; P
)
8 O+ |$ r3 }( l9 U9 ]$ }# ^! {- e1 l1 g. X8 l0 O0 _" q' u
(defun ddgetprompt()
# I6 Z8 T1 R! ~3 \$ U3 c! w# x (setq atprompt (get_tile "prompt"))' P; P; ?, _7 @! x5 {/ A% m
)
- q+ [$ O$ H* H' L+ ^1 F5 u; W+ z
' N, j7 c" r; X4 ^5 A ;; As OW doesn't support disabling of individual radio buttons within
: n, c' ]4 Q& _6 t5 ^9 U8 @# N ;; clusters, a check must be performed as to the legitimacy of the3 k, g3 t0 u! B9 y. H v1 k6 {: E, f
;; button pushed and reset if necessary. a. p0 n7 }1 s& @6 g5 g
(defun radio_gaga (pushed)
- {# ]9 z5 x* m1 \0 S8 t# ^ (cond
5 `7 h2 B/ W9 O* k2 G: t ((and (= pltype "3D polyline")5 x1 @! t1 q7 k
(or (= pushed "fit")
5 ]' u9 g& n- [* ~5 v (= pushed "bezier")% G9 L! V! j2 e2 d" s/ B/ N h" P1 P
)0 b5 ^1 J7 W9 N- a8 Q9 W
)0 M; P' C# e7 f: `; `1 w7 ^. t
(set_tile "none" "1")6 G3 A2 ~3 r% T4 n
nil
3 H; |5 E9 z7 X8 n. x )
8 b! N2 H/ E4 t, N% v+ T Y, R ((and (= pltype "3D mesh")+ N |# w/ |9 r5 Y$ S/ f: h& D
(= "fit" pushed)
. ^, P$ x1 Z8 I8 Q )
! e& {( v6 J. Z; U& x& ?4 m5 f4 S (set_tile "none" "1")
9 Q3 R+ Z' l9 _* [* [* i nil
) c: |" N$ p, D& k6 W. T: U )2 c+ J: _8 }8 u' l
((= pltype "Polyface mesh"), f( C; ?9 |' H6 `
(set_tile "none" "1")
& l q z) c: p5 y6 a nil
$ ?- Z; \ P7 @9 r" m1 \$ b )
I5 f& Y4 Q! R7 w, q ((and (= pltype "2D polyline")* j, i& Q6 e: i# S/ n q1 e+ ?
(= "bezier" pushed)
- \# o, B2 \3 b6 V! o )6 d9 a1 `- Q5 H
(set_tile "none" "1")3 u" t7 V9 P0 l, J
nil
+ ~% O5 T: `: ~, a- f9 Q* y0 U, j ), I1 P3 W' c! E( g
(T)# W- _ L/ b7 d- }
)
r& u+ N$ k" C9 y# z9 D ), h2 l: R S7 T! N) ~: H+ S5 j
;;( i0 M! {0 Y* D- C9 L
(defun set_uv (type_n). L4 H! k/ v$ S, o( S7 q, H
(setq spltype type_n)
( b4 W+ u7 a* x0 R5 U4 T5 @ (if (= pltype "3D mesh")
; S5 t2 O+ s, B |# u) ? (if (= spltype 0)8 ]5 G( K: k) _6 w/ N& Y. i
(progn9 z! r# _# f* q" r
(set_tile "u" (itoa (setq u 0)))
$ i5 P0 W5 n6 B (set_tile "v" (itoa (setq v 0))) h1 O4 m) Z/ C3 D
)) O! E) M g6 x0 ^) v" r
(progn/ K4 W9 N/ X8 b% Q3 G! z7 ]. c2 I
(if (= u 0)
2 Y4 T. q6 @) w (set_tile "u" (itoa (setq u (getvar "surfu"))))
1 k# e" B( o2 }' w( z7 R ); |1 S, ~0 g0 [4 b( ^! B
(if (= v 0)+ c$ y8 |* o3 ?' V
(set_tile "v" (itoa (setq v (getvar "surfv"))))
- I. Q7 j8 R7 o1 ^ )
3 ?7 R4 `8 V) D )
5 }7 Z9 y: N' `9 m6 J )
+ x" k; J2 q0 j- Y) j ): r( Q0 y! l8 j
)
4 T1 N- U) ?, J& f Q) A+ R
2 Y: y+ B9 A1 D: I' b3 ?& r
, M0 g% V( ?& c ;;5 Z( e1 |) Z1 Q
;; Verification functions
) f, K% e; X9 w/ d2 _9 j$ p ;;( M4 _# n; s/ i( R# [1 V( r S
;; Verify distance function. This takes a new X, Y, or Z coordinate or
0 L% N# p2 S& G4 L ;; distance value, the tile name, and the previous value as arguments.
$ f& U( f% F" l* {- U ;; If the distance is valid, it returns the distance and resets the tile.
4 i ^0 f! c# c: c6 `) S( \ ;; Otherwise, it returns the previous value, sets the error tile and keeps4 ^$ I( o5 l1 P2 I/ l' q6 F
;; focus on the tile. Shifting focus to the tile with invalid value can3 u( D2 T0 B! Z9 K" m: V- g
;; trigger a callback from another tile whose value is valid. In order2 G' E- H# i* `# G
;; to keep the error message from being cleared by this secondary callback,
7 K0 n W; P" g$ Z3 s. d2 G N ;; the variable errchk is set and checked. The last-tile variable is set
0 j% u A$ [, D8 M ;; and checked to ensure the error message is properly cleared when the9 B# U* k, t, o) F8 i
;; user corrects the value and hits return.
) C, M w% M" r- c) s3 C ;;
, [/ G: }$ r0 v# N: ^! T+ G (defun verify_d (tile value old-value / coord valid errmsg)
" e; I! W' O, o& E% | (setq valid nil errmsg "Invalid input value.")
0 @4 @3 X; N# c% k: ~; x (if (setq coord (distof value))# q8 [6 [8 J j
(progn9 c# h5 W8 Q/ Y2 |7 v$ R
(cond
4 s! U% f7 m5 q8 L$ d- A. h- Q0 g ((or (= tile "radius")
7 s4 y( r7 j3 }5 F1 t$ j0 L (= tile "hght")
( I) c5 d4 {) x' w (= tile "wid")+ k2 t. v8 r# g* r: I) x
(= tile "majrad")- V1 m' Q$ s' R# _- H
(= tile "minrad"). O* U2 K$ N8 N" o
(= tile "eb_ltscale")
2 E( k. Z" `. \ )' r) h; I# m; p: T* I, T- F
(if (> coord 0)
; m9 W0 H$ q7 }; q1 ~! q# c3 \ (setq valid T)9 {2 ]- H' J: ^8 j$ B
(setq errmsg "Value must be positive and nonzero.")7 I, w' r5 J3 L. F
)+ @6 L4 A- ^: h% w. q) e
)% w; ~- r; c }9 l
((or (= tile "xscale")# n! J+ U$ e$ ^% l
(= tile "yscale"): a% `( w( D) V1 |+ j- F
(= tile "zscale")
$ ^- n# D7 E' _, V$ W3 @ )) d. e' u2 @3 u8 Y& k5 f+ Q* b
(if (/= coord 0)
+ P4 n9 T; N w ^3 Y2 h (setq valid T)6 h ~' ~4 h7 i# a+ b4 e3 [% O
(setq errmsg "Value must be nonzero.")+ C6 G) p& L& C- Y3 i# O: g V& V
)1 ^2 d/ ]1 i4 ~6 e7 n
)
/ ?) E6 i' e6 h1 R$ ? (T (setq valid T))% W( F5 g1 K) ^. l
)$ D7 M1 d1 O; Z7 @( n0 @0 s
)" q; C" u* P+ n- [
(setq valid nil)
* D" |% ^) ]- c8 \3 i ]" g )
. y& W/ O2 @, y (if valid
' g t' t- a0 a# \7 F; ^ (progn
# S5 N" W5 w6 b& H' K (if (or (= errchk 0) (= tile last-tile))) l3 |! Z' x* s& Y4 A$ k
(set_tile "error" "")
2 l% ^( k3 S- d s" @, A" _ )
* E1 F; f5 I" p6 h- z (set_tile tile (ai_rtos coord))# x, ]9 [- F, K- t
(setq errchk 0)
% j0 y2 ]8 G; s- w$ G- v# U (setq last-tile tile)8 m/ [, G2 [0 A, o# s
coord
" |+ y% O, G3 b @, g/ y$ s ): ], ?/ V ^1 y* D/ [
(progn+ f* A: [9 v% }' J& O0 L% e
(mode_tile tile 2) ; Move focus to offending field5 s( h& q" D1 e% b7 i
(mode_tile tile 3) ; Select offending text
0 X1 c5 ]; {. e- I (set_tile "error" errmsg)
/ T3 n" \! p! ^0 m (setq errchk 1)
, E. }& r! G% M (setq last-tile tile)
" n6 e1 s( E) O- i old-value
( i- x9 _& i- w! _4 I$ J* j1 } )
! S8 g& H& @# ~5 z( ]) a; L6 \% q )* l: q: u4 _- z1 M% C. v2 g
)
+ s! a1 t" w4 Y; j ;; Function for Xline coord edit box checking.
! h7 l* ^2 F& Z2 }6 y0 e ?2 y1 U (defun verify_xline (tile value old-value / coord valid errmsg)
7 p+ N4 ]: D4 ~0 o" G$ G (setq valid nil errmsg "Invalid input value.")
% G. B5 i9 A' ]9 C7 j (if (setq coord (distof value))
# h; C. U/ i: K) @- s/ w2 o3 c( ^ (setq valid T)# o- w' ~: c; K( Z+ C0 `
(setq valid nil). m4 O8 D2 e% E
), h+ r8 P: F" p, S0 q2 q$ h8 s- I
(if (and coord3 E* d0 ?5 B2 O* v4 x1 h
(and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
) b9 c5 h" {# _" `( W5 d (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )) Q2 g% Q. ]' q: F7 D
(= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )! C$ Y! w( d* F: f+ ?5 f7 \/ m
)
! H2 |$ h; {& N* I+ c4 B6 A ) t k5 K* A6 o9 i
(progn
5 Y. L8 h1 t$ _- I1 _& B% @( Q (setq errmsg
$ }" O' I+ ?& a/ f# Y "The Root point and the Second point cannot be equal.")* q* y$ Z( q, J: |
(setq valid nil)- ?2 k3 ?5 ?1 p3 T
)0 c5 J+ i' `; F0 l+ M6 a. j
)2 C. N, a3 K7 p: y% H# Q# c, p
(if valid0 [: d6 K; U/ p0 v* v
(progn5 `$ f+ K; T' O
(if (or (= errchk 0) (= tile last-tile))1 W! F- [; {6 {1 W3 L
(set_tile "error" "")& D3 K5 `& v) r% K4 j- U
)8 |1 x& y+ A/ u' `2 \+ N0 |. ]
(set_tile tile (ai_rtos coord)). j' J8 C$ W7 Z( U2 X2 t
(setq errchk 0)
! y' l. P- \5 L% h9 X (setq last-tile tile)$ K) o6 Q2 [1 Y- z: I ]
coord
. N ?7 q- A( S- Y )* X7 s7 R- a4 W( G
(progn
* X7 w3 Y& X. H( Z9 r$ V7 z (mode_tile tile 2) ; Move focus to offending field
( p7 N5 }- f8 X (mode_tile tile 3) ; Select offending text; I5 k# Q9 b! O; b, L* r
(set_tile "error" errmsg)) N1 K7 t+ o* M# v
(setq errchk 1) j- P5 Y5 f8 y, \+ ^, Q' a
(setq last-tile tile)/ n; x, y. i6 G
old-value- G! r' Q+ [) {$ Y$ @4 h
)
+ P1 E" S, z- ^ )
8 O f* ] y5 ^. n7 d7 o5 o( v. } )
" M5 R& Q! A h2 f3 Q3 j
6 t) ~( g- U! ]) _" K ;;
5 g, [5 c; V1 L& ]2 e3 I ;; Verify angle function. This takes an angle and a tile name as arguments.
. p; G; s3 [- A. A; R1 [. J ;; If the angle is valid, it returns the angle and resets the tile.6 j% ]# E ]6 Y' e- y/ P. Q& g
;; Otherwise, it sets the error tile and keeps focus on the tile.
7 [! E' T7 N5 Z ;;
5 Z: U. `" ?( l/ A7 \1 S* _ (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
. K# q) ~; A, Q/ r4 V- X2 [4 L (setq valid nil. I m1 k( V3 s& ]5 q9 {. ?
errmsg "Illegal input value."0 {& |; u1 O3 g8 Y0 F
)% y: m/ F T4 s2 y: K w) E
(if (setq ang (angtof value))# X; ~) h" \0 p
(cond
9 P7 D& m" P6 i. C ((= tile "obl") ; Restrict obliquing angle
9 T) w" @. Z" `+ f+ U7 x (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))8 d# [4 q% o, f" z
(if (or (<= ang oblqmax)
. F+ x) P7 j5 x0 F+ L+ I1 b0 M (>= ang (- (* 2.0 PI) oblqmax))6 @6 w( ~3 ~- b. ^
)% r/ ^5 @7 a$ Z& Q' L' C6 Y
(setq valid T)
& y% N: L( T9 b (setq errmsg
+ ^* {8 U6 f- |' {2 D0 i "Value must be between -85 and +85 degrees.")
9 E! C3 W! x: l0 U. ` P( Q8 B )0 V7 f7 Q) R6 K# a2 ]: N/ d. @
)
+ Z0 c% I, V: i5 h* R9 e$ d (T (setq valid T)) ; Other angles not restricted3 W. {# V& ~8 ]( x
)
: D, \: m Q8 X* t, J+ A- j (setq valid nil) ; Invalid angle input
9 }- H" m8 N1 m) h6 G ), ?+ d% }! L2 s7 P' @3 u. A2 ^$ w7 S. X
(if valid
: z+ c5 w$ Q5 f7 R% f (progn
8 J* p) d0 @$ [/ q+ u (if (or (= errchk 0) (= tile last-tile))
5 I5 I( `9 p4 J1 g/ ] (set_tile "error" "")
! G; x) ~) n6 `+ D! G- I- } )
, J8 w7 c1 W% K& O( O' q5 D* a4 O (set_tile tile (ai_angtos ang))$ F" f) E+ S# r9 G( N
(setq errchk 0)
* ^/ b2 Z# {! b% K (setq last-tile tile): h2 ?8 t. H* u, X5 B
ang; }+ w4 `2 X0 e
)
, E0 [9 U7 w9 j: _: L7 H& S* S( @0 M (progn. z8 S4 G( l* n: w6 g: ~7 @
(mode_tile tile 2) ; Move focus to offending field8 E1 M& B" y; R& j
(mode_tile tile 3) ; Select offending text- _0 z/ D& i4 p2 | l& ~
(setq last-tile tile)7 s/ D* {9 }. H: {1 A
(setq errchk 1)
, [# C1 b- u% y# d$ M" i% B* o (set_tile "error" errmsg)
6 V8 M/ R' m9 `4 t/ @ old-value
$ c) t0 {$ S& M1 n# l )
1 a, w, Y7 \8 n) ]- r/ w ). L; h) q7 x& h7 i9 I
)
$ h1 p2 I" }1 p/ F- Z ;;$ l, T# s- p7 E
;; Verify angle function. This takes an angle and a tile name as arguments.
8 j( M3 D H0 ]1 r ;; If the angle is valid, it returns the angle and resets the tile.0 s3 ]# P- ^ t$ D0 l0 T* B# ]
;; Otherwise, it sets the error tile and keeps focus on the tile.( U- E) J2 N3 w/ X1 O3 a3 k5 m* u
;; This function is specifically for the end angle of the ellipse object. If3 P, f& U6 g3 Z
;; the end angle resolves to zero then we want to display it as 360.# o6 y+ R* V; o( h# r6 G
;;
6 ~/ c- W. f( ?+ t7 c8 G% A (defun verify_ae (tile value old-value / ang tempend)* r4 K! d- [' S$ X1 Q% o' m5 U
(if (setq ang (angtof value))& p+ w% R( [0 v& y8 j
(progn) a6 O E$ B9 I3 p( |
(if (or (= errchk 0) (= tile last-tile)). i7 X, I# r6 I/ M# h' F3 [; s: ^& d
(set_tile "error" "")
+ h# ]' C) f5 I )
; v, c" [+ {; Y: @4 n (setq tempend (ai_angtos ang))
+ W Z- ?) _' I+ Q2 T (if (= tempend "0")# e0 v+ `& O$ l% K
(set_tile tile "360")/ {" u4 k2 {0 j4 L
(set_tile tile tempend)6 N9 b8 V3 r! u/ p
)
9 z$ d. l! P. J h/ E (setq errchk 0)
8 a6 f8 w% ?5 G1 F( I6 ? (setq last-tile tile)
6 _( E2 D% z# `# Y+ U ang
$ `3 ^( a0 G, S+ w )4 f) r5 f$ s4 z. B$ f* B
(progn
4 u d' k7 ^* r2 `! f# {7 i% M (mode_tile tile 2) ; Move focus to offending field. \1 h" |, y' F$ v; `
(mode_tile tile 3) ; Select offending text; u% }& Q6 c# k* K/ W) s, @ F
(setq last-tile tile)1 L- k4 l7 k; O/ L2 V# ?7 k) i( K6 }
(setq errchk 1)4 @; [- B3 R) v: M" V
(set_tile "error" "Illegal input value.")
! P5 P0 s" j, D$ j5 D, t3 S old-value
4 t$ R# @+ v# E' M& t, J8 F )
$ F4 I p" w5 Y2 B" `4 ? )
X3 A9 S3 @/ ?# n) W$ H$ z; J7 { )8 B7 W$ O( J0 |
;;% P% a( g) \* ` N6 |* @& h
;; Verify integer function. This takes an integer and a tile name as, p6 c2 J& _% L5 ~
;; arguments. If the integer is valid, it returns the integer and resets the
# o( I' |9 d$ A/ H; c' _ ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
8 t4 P( h" o3 p6 o8 i ;;
2 {0 \8 ~2 i1 F. q* v (defun verify_i (tile value old-value / int valid errmsg)
: E3 h E, }/ y (setq valid nil)
( K; [. ?# s" i3 Y4 ?' G. ^ (setq errmsg "Value must be an integer.")2 U% w/ X: k4 D& F
(setq int (atoi value))
: }4 d# k2 ?( ^( L" e- K (if (setq intchk (distof value))6 B7 Y G3 k5 ^3 r5 R% C6 F& o
(cond
y1 W% x' P" r! M3 O/ i* A ((or (= tile "columns") (= tile "rows"))8 N3 w4 Z! |8 \, w/ J
(if (and (= int intchk)3 j' } E& y& Y9 y( q
(>= int 0)
, g/ B" t0 `; B5 Y (<= int 32767)5 |1 W, Q _, J0 M6 r; z
)
1 N& ~9 w1 R5 |3 I" P (setq valid T)
3 X6 q/ y3 ~/ }* W4 |4 v: V (setq errmsg "Value must be an integer between 0 and 32767.")
1 j4 h! D: r m ). a/ l6 g) ?, |; W
)
5 w0 S/ M- A) j L ((and (or (= tile "u") (= tile "v")))
. M C$ {8 i5 ]) D' H (if (and (= int intchk)+ U8 ]- J. J# G" a! I, E
(>= int 0)
# k% R2 P( q+ L% a* T0 x- ]5 e (< int 201)
! O- ?4 @: Z+ \6 v )! t6 e. F5 J0 Z* t& C8 u
(setq valid T)
9 o* k/ U& {: d# X) X/ k, j (setq errmsg "Value must be an integer between 0 and 200.") i% Y9 F: l5 e
)8 _' ~1 s8 L6 u2 S
)6 Q8 | L$ s/ P! z1 b$ S
)
* H; O+ ~' D6 u q! e )
) h6 A7 a( U4 j8 y, I6 ^; ~% @. ~ (if valid+ n- X; r# D c+ n. A
(progn
& f- O5 D8 _( s# v3 w (if (or (= errchk 0) (= tile last-tile))3 h( V5 P4 U- M& ]
(set_tile "error" "")5 ~6 k5 J3 O9 D9 ~- ^
)
! `' r. Y+ Z# G (set_tile tile (itoa int))
4 [6 q- r3 H$ n$ Z2 P (setq errchk 0)" X0 ?7 v g! B1 ]: ?
(setq last-tile tile)
) T; o$ l& h7 s1 S& g int
! B* R" N' {- y )
( r) i: E* R- \- x1 o. X* r% i( p (progn- X, T5 o3 R# z! ^+ J, j' Q5 n G
(mode_tile tile 2) ; Move focus to offending field
$ Y+ \8 d) p9 @/ J- U% Y' c (mode_tile tile 3) ; Select offending text' q u# L% z2 w- L9 t5 L
(set_tile "error" errmsg)8 \, b' k2 s* g" S/ S
(setq errchk 1)
& J; D/ v" O$ L' g `, ]8 B% M (setq last-tile tile)2 _3 T! r( _" k
old-value% c, X4 B6 k9 c8 C- F$ U
)
9 Z- D! ?: i8 F) ] ) Z$ E. H: F) } s
)! l' z3 B9 Q* J0 `
;;, N! o. T6 X9 J B
;; Functions that verify tile values for integers1 m: K( P; }1 l
;;
" G5 l1 M+ i. f (defun ver_col (value)
0 G/ b7 J0 V7 Y8 v/ r* s (setq columns (verify_i "columns" value columns))
6 W* p" M& Q2 r+ t- R& [ )3 Z% a3 G$ }' u( g
(defun ver_row (value)4 C9 T @ o3 v
(setq rows (verify_i "rows" value rows))
. u/ Q' R% y' F$ o/ b )
( s& _" S( [ C1 S9 }& Q* D: d O (defun ver_u (value)
$ s6 w2 G2 Z- x9 {: @( j (setq u (verify_i "u" value u))
' Y& S7 v" \2 h9 g) j0 A7 ?5 V! G' u )# a/ \- S5 E1 W0 z- H# R' a3 o
(defun ver_v (value)
1 a. L4 W! Z# F/ j' M (setq v (verify_i "v" value v))
8 P" C! S9 L0 H- X )8 b$ N, K1 {+ x9 Z' c+ L
;;
- K& V6 O; T' X9 g ;; Functions that verify tile values for reals @* N4 \3 b9 i
;;
8 x+ r) _. H3 N4 f (defun ver_x1 (value)
3 Y9 q$ Y! n' K: q (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
* }* d- {4 C' ? T )
( O3 f$ P, b( N (defun ver_y1 (value)
5 e- j, `% n, c* B" x0 P (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
6 m5 n, a( g3 P8 L( }6 I# ] )
; u J- e9 X( ]' q (defun ver_z1 (value): u+ {% Q0 E0 o3 [) ^- u+ J
(if (setq z1 (verify_d "z1_pt" value z1)) (calc)). n" X$ Q2 P3 a5 h, n H, z
)
$ [2 o% A9 j" G8 I0 `3 ` (defun ver_x2 (value)
1 [ B ~* C' s' j# J5 q) }" X8 M (if (setq x2 (verify_d "x2_pt" value x2)) (calc))$ {( J# ^7 o8 Q# f) Z; W' T
)
4 j- z' c5 R) u8 X0 e5 Z (defun ver_y2 (value)
0 K* |0 R) J$ z# ~2 q; ] (if (setq y2 (verify_d "y2_pt" value y2)) (calc))2 I, @. @1 t/ R; j& ?" c5 A8 E
)1 P0 k2 C. `' a; T
(defun ver_z2 (value)
7 X8 f$ ^; l% o* s: ~ (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
9 m; A1 n( A0 g )) ]. q7 j9 q6 v. r
(defun ver_x3 (value)
8 @% J5 }! u0 p. I5 x8 m( \ (setq x3 (verify_d "x3_pt" value x3)) i) n( o0 F7 n. H/ r* ?
)/ a* y3 s" I& T
(defun ver_y3 (value)
* O/ w3 ?( @) n2 p% u3 t( w; a (setq y3 (verify_d "y3_pt" value y3))7 ^; M7 L, ]2 M. v; v. a
)1 O M3 j: S0 f( f* S
(defun ver_z3 (value)& C/ c/ ~; L$ Y* w% ^$ t( H% L
(setq z3 (verify_d "z3_pt" value z3))+ N; R4 b) F9 W# F m/ e* T; j
) m* g+ Z# k5 `! r" K
(defun ver_x4 (value)
0 `7 t% k) V C! y: J (setq x4 (verify_d "x4_pt" value x4))! C5 F! ^; @/ w' V. k
)% z! ]$ f! r% T( B1 i, ]; M. y' z
(defun ver_y4 (value)
. E6 p4 k1 b+ ?% O (setq y4 (verify_d "y4_pt" value y4))7 i( }) j9 ?% y p+ L/ A
)
# u% Q5 h4 y- i' q; b (defun ver_4 (value)2 v, G( j9 f: h
(setq z4 (verify_d "z4_pt" value z4))
1 n& y& N0 Z+ F )
/ R& S, r! t T (defun ver_xscl (value)
$ E; q9 ]$ ]& [! B; r. k (setq xscale (verify_d "xscale" value xscale))
( ?2 ]/ ]" }' q9 g. o0 f) t6 I )# `' q) o* z) C: a
(defun ver_yscl (value)
- E6 V, i" P/ F* A, y7 F0 b& }! y! n (setq yscale (verify_d "yscale" value yscale))
; G, m" f c2 K )
2 h% D$ N7 m- c R (defun ver_zscl (value); C# ?+ `- L, h# ~: g& T) C" o+ j
(setq zscale (verify_d "zscale" value zscale))
9 l$ q' [1 _9 Z3 i( b# k )
+ C" \. @& f4 o- r8 e& U7 i (defun ver_colsp (value)
8 u+ r0 X; Q& m: B" ]' C (setq col-sp (verify_d "col_sp" value col-sp))" k. L: X1 |' T; {% H" N
)/ U6 D8 s5 O% s1 r1 t: {
(defun ver_rowsp (value)
I+ u# u1 O& G8 O# ^( b- d5 M (setq row-sp (verify_d "row_sp" value row-sp)) ~* p" W6 m5 w1 t: @* S
)- D l! Y. Y: O# o( @4 k6 Q6 g
(defun xclip ()) {/ B6 d& e' q
(setq xclipmode t)/ D) m. U: @8 ^. i) _
(if (= xcliponoff "1")
; x! m8 _2 J5 |$ X7 }! Q; v( H (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
- W7 s7 |8 F, J3 M( a9 g (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")3 Q0 f* D g, b
)9 }6 Z( X, c% p6 t# w9 c& J
)
- a, c3 l. d7 s9 C5 O0 M6 }4 ` (defun ver_rad (value)
2 S$ F: R, ]7 y* F+ p8 c4 A (if (setq radius (verify_d "radius" value radius))
- @' I( ?6 C1 R8 K9 n (calc)
7 m4 R9 Y6 k5 U3 ~' T; `+ w )) U) x3 G; e6 _! G
)
/ M! x& D" C0 K3 J1 y& O; F (defun ver_majrad (value)1 Z- c' F, Y4 X5 \) p
(if (setq majrad (verify_d "majrad" value majrad))
5 P7 \6 d+ X3 |1 M5 j8 m (ell_calc_newval "majrad")5 W- @7 E% E+ c
)8 {9 F- N9 D! t n; Z
)" R5 h$ w7 v T4 h9 |$ h
(defun ver_minrad (value)
9 Q" m/ q, E+ ]0 ]. V5 H (if (setq minrad (verify_d "minrad" value minrad))
0 x2 e# Q; ^4 x* I" }. R. ^ (ell_calc_newval "minrad")
" ]6 H2 n5 J/ ~; S9 P. S )# t, M7 K+ ]7 } T9 X
)
, d- ?3 n8 k' |% n! ^ (defun ver_hght (value): m+ g) B. j! \0 T
(setq hght (verify_d "hght" value hght))
/ J% p ^, h/ m3 d% `7 c8 d )( W) K' P, _) `4 b
(defun ver_wid (value)
9 W" V' W+ C) m7 }: A2 r; A (setq wid (verify_d "wid" value wid))
+ [5 W4 [0 S' B )% n9 ^$ `! j9 ]
(defun ver_xline_x1 (value / temp)
8 N; y( Y* [- S, W (setq temp xline_x1)
# f E- o8 K4 X( g T (setq xline_x1 (verify_xline "xline_x1" value xline_x1))# E- g0 j, N; b" U% G
(if (/= temp xline_x1)' \. k: r5 X2 q
(progn (modify_xline 0) (set_tile_dirv) )
* S& T7 U( R+ @# l )/ T. [/ r' e% G0 `' W% J
)
% @* l, I: R4 |/ ?7 | (defun ver_xline_y1 (value / temp)
% ^" [& W0 X0 @5 a+ U (setq temp xline_y1)# n/ {& I- K, @: {1 z# W' l
(setq xline_y1 (verify_xline "xline_y1" value xline_y1))5 W% l, l" N' A+ i
(if (/= temp xline_y1)
( c7 i8 e" x7 | (progn (modify_xline 0) (set_tile_dirv) )
6 J" ?2 y: o w: W" D* y. W )
" K ?, t9 G' B, ?0 F )
0 v0 d8 ?. X3 G (defun ver_xline_z1 (value / temp)" Y$ n+ ?3 Q# m5 D" ]
(setq temp xline_z1)
* P+ I8 K& w9 }* N t- \6 `) \) R ^ (setq xline_z1 (verify_xline "xline_z1" value xline_z1))5 m* ~+ N6 H( A8 j/ ]& w
(if (/= temp xline_z1)
! t4 G; J3 H7 M( u (progn (modify_xline 0) (set_tile_dirv) )1 E/ V) Y6 k1 q2 o s7 v
): u7 t& u2 Y+ R5 W( @) v+ d
)1 _7 c4 G. T5 S& ]/ q8 {
(defun ver_xline_x2 (value / temp)
: e- P: f- \0 u l (setq temp xline_x2)
7 i: a0 R0 D* q4 j/ \# Y9 Z1 q/ G (setq xline_x2 (verify_xline "xline_x2" value xline_x2))7 ]9 \. L2 {* f1 Q
(if (/= temp xline_x2)
; \* }5 u; O& q* d( O/ F (progn (modify_xline 0) (set_tile_dirv))
# }6 d& H: G4 i) u6 z5 e )8 U( |: F! |: D; \0 n/ l
)
0 n- y- I% Z- C4 I0 B (defun ver_xline_y2 (value / temp)9 G) b9 E( K' V# v( x5 e: Y
(setq temp xline_y2)& }; _$ F; u5 i. B9 ~7 `% e4 X
(setq xline_y2 (verify_xline "xline_y2" value xline_y2))# [8 q9 h# G' @' \4 [
(if (/= temp xline_y2)
: h {, J" C9 O (progn (modify_xline 0) (set_tile_dirv) )+ Z0 M/ P. U8 I8 k% g" k2 @
)& i- `& n- ?* E! Y
)
7 m0 n; L% s3 ~ j% |% Z7 p (defun ver_xline_z2 (value / temp)
, p+ X2 z6 ~ P2 U: f) Y (setq temp xline_z2)
. \* \2 ~9 V0 c8 o (setq xline_z2 (verify_xline "xline_z2" value xline_z2))2 l; z, h+ r* N. m7 Z" b
(if (/= temp xline_z2)
Z9 ]* U4 O7 p( y8 z- B (progn (modify_xline 0) (set_tile_dirv) )9 l, ^* H0 W3 ^0 M. b+ Z. `
)3 }7 f; g2 ^5 V! e
)" E6 [ Z4 S+ f S* U8 @" c& ?) |
;;: U2 l8 m1 T# Z( S
;; Functions that verify tile values for angles3 X) n7 h' F9 B; X, B
;;
1 y5 s% k$ W6 J: O5 g' `5 h& ^ (defun ver_ang1 (value), I" t! w& V% W( T
(if (setq st_ang (verify_a "st_ang" value st_ang))
]4 i. ^" J: \9 C0 [ (calc)
* d) i! e1 s5 y )
; q5 {$ E; z: Z# t* d# H' A! f% g6 e ). p! s6 z' N: M* l2 p& ~& C/ y
(defun ver_ang2 (value)7 I: q7 Q$ I$ o b) b; W
(if (setq end_ang (verify_a "end_ang" value end_ang)): F5 D( u6 |8 t# j4 U( C9 a' ^6 b% W7 @
(calc)
( m. R, G) n! P! F4 W/ f, x9 v$ ? )1 C' @$ b0 W/ \$ C. c, u" b
)) a. j: G9 V/ t$ a
;;
, X; m$ V- t8 K7 F" M ;; Verify tile value for ellipse end angle. Handled slightly6 ~; w, N& g9 \: z3 s1 r
;; differently than the other angles.) M8 l& ?& {: K( S3 e
;;0 D- z# P: O f6 _( Y
(defun ver_eang (value)7 U' B) [! ]5 e; B
(setq end_eang (verify_ae "end_eang" value end_eang))
* \, i. R) ]/ w2 R; E )5 f/ T9 ?- _* B7 T7 p$ ~
(defun ver_rot (value); D9 }9 N3 _+ l; b" K
(setq rot (verify_a "rot" value rot))
3 ?- ` H% E; @' Z( n )4 L3 ^( K* ?4 ?5 Q" N
(defun ver_obl (value)" m% W( S; |1 C! G
(setq obl (verify_a "obl" value obl))
- m9 }* i) {/ N. h& @ )5 e2 t6 u7 i; @. a& W1 j
;;
+ }# k7 a) z4 q4 A" r4 _+ y0 i9 z ;; Function that verifies attribute tag field for null string,+ m- T8 v# S. d) y4 I E5 p& x8 P. `
;; or a string that contains one or more spaces. Tile value
1 M I- u7 E# a: D' g8 h ;; is also converted to upper-case as well.6 W1 h4 S' b* `0 r. I
;;
: V I( X9 G( a' } ;;
( A4 |$ e) x& ?5 u+ a- F (defun ver_tag ( / tval)3 d8 M8 l8 _# }% \% m
(setq tagval (get_tile "tag"))
) ~) }, I5 V0 J& i (set_tile "error" "")5 c. b6 Z" E' W" }) i9 g: g [# I
(cond
) w6 f% m3 ]! y* t ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))2 b$ T( f9 E" r. a8 S0 e4 K
(wcmatch tval "* *"))4 j7 B5 `6 r' u- g W0 t2 g
(set_tile "error" "Invalid attribute tag."), @0 h2 k) \7 u4 H) `
(mode_tile "tag" 2)& V2 A/ J. Q* L1 a' c- O
(mode_tile "tag" 3))
: c1 j" `" z! B$ { (t (set_tile "error" "")
* w4 u z% s, L( I (set_tile "tag" tval)( O! {2 Q5 [) T8 M5 s
(setq attag tval)))
+ } t( \5 ?- a )5 @) ]( y1 G/ j4 [1 D4 ]
;;
1 w0 h% v; W+ C/ c/ _ E& n ;; Calculation functions- u* X W! w; g. ], @8 F
;;' h j2 |) J [
(defun calc ()
k& L* c& j2 F (if (= etype "LINE") (line_calc))
& q- y9 S& d D. I/ q# a (if (= etype "ARC") (arc_calc))7 J2 O6 p) i6 A
(if (= etype "CIRCLE") (cir_calc))" i1 z7 E- Q4 E& l& u+ C ?1 C0 k
)
- b. x, V+ ^! j ;;
$ J ?% v$ f/ T. @1 ~* O$ G ;; Calculation functions for lines, arcs, and circles" ~# }/ ^ }) b; f$ L; X
;;/ B' j2 ~4 H) L1 C' I
(defun line_calc ()) s8 b- k5 I" K& J5 z# U
(setq stpt (list x1 y1 z1)): K" |! b/ H" h( O- A
(setq endpt (list x2 y2 z2))! Y: }1 A' ^. i, N- k1 Z0 p
(set_tile "delta_x" (rtos (- x2 x1)))
8 R& c* ?2 F- E- C* L- s (set_tile "delta_y" (rtos (- y2 y1)))
0 u2 C8 V( M$ T" G3 W9 [ (set_tile "delta_z" (rtos (- z2 z1))). {. Y( D8 u; m
(set_tile "l_length" (rtos (distance stpt endpt)))) w# _- P7 K& x. {2 P. J
(set_tile "l_angle" (angtos (angle stpt endpt)))* `% Y2 y5 J: K# i- J
): E' ~3 c2 A9 D) A; X
5 h* r m$ M' H2 R1 i; _# e- } (defun cir_calc ( / area units)
! ^; F% V# \0 G- y (setq radtest radius): x8 S. X' v$ m: w) |! F
(set_tile "Dia" (rtos (* 2 radius)))2 [1 D& y9 a, r# l
(set_tile "Circum" (rtos (* 2 pi radius)))$ R$ R: D. T- l# x5 ]
(setq area (* pi (* radius radius)))' ~1 M, `) M2 F5 K, a; k# r% J
(setq units (getvar "LUNITS"))* W6 @' T2 U6 y' y q( i
(if (or (= units 3) (= units 4))6 w% e4 h. N; \2 [) ^' X* ^/ u( o4 r
(progn
' [/ }+ L/ R6 v7 P1 Y" S5 ~/ \ (setq area (/ area 144.0))8 E- e$ Y4 x" N' y6 Y) I& A
(set_tile "Area" (strcat (rtos area 2) " square ft"))
+ W7 }& m8 h! `+ i' i7 e5 ~) u )0 z1 G1 {- l: L: y6 D
(set_tile "Area" (rtos area))( T! y" y' f! s r7 A! z# m
)
6 O" K* T: K$ ~; i )8 u! ]8 [( _1 o7 v
7 Q% v8 A/ E1 |/ x- e
(defun arc_calc ()6 a8 g5 j/ t& r4 t7 d
(setq totang (- end_ang st_ang))
4 R/ q& {& R, u$ L (while (< totang 0)3 p1 L. @3 ]$ T4 @6 N
(setq totang (+ totang (* 2 pi)))8 m8 ~1 y# |0 i) e% Y' f$ I7 z; c
)
u3 O$ N3 z) f! b1 T (while (> totang (* 2 pi))8 p3 V& o/ j0 s/ V" @7 P I
(setq totang (- totang (* 2 pi)))
! M2 ~8 D+ T2 u% g2 Q: A1 T )
3 i1 W' v6 d; w: U: z4 Z& `, j (set_tile "tot_angle" (angtos totang)). N. z- ?6 J7 h9 k( \, c- t
(setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
2 F' O' k: H$ z7 B. I7 ?0 { (set_tile "arclen" (rtos arclen))
) {- h: \1 U% L: F )0 u7 N# C) S) I0 f s
;;
7 g- i$ p9 e/ h8 R. H ;; Calculate the major radius, minor radius, major axis direction.
7 ^- B/ d6 }8 }; z2 D ;; Get radius ratio. Convert Start, end parameters to start and end, X' q8 L, @6 w) Z9 o, T; r( Y6 X
;; angles. Save Major Radius value in "old_majrad" in case the user
, b9 x) I: t& b+ c% x+ c ;; chooses to input a new Major Radius value later. It's needed to2 o+ K6 g. F* T6 X4 w, ^1 T2 X
;; calculate a new Major Axis Vector value.0 F4 _. T7 I) ^; P7 U- X, B
;;
' T* Z7 R: `* T% {8 M4 g% l6 E! J (defun ell_calc ()
0 J+ X5 g* I0 n- |5 N* V6 L ;; Get major radius from the major axis vector.
# `. |' r8 m# I& z0 L4 V3 k3 O (setq majaxis (cdr (assoc 11 elist)))
( x) {/ a5 {- @! C$ F+ P( s (setq xx (car majaxis))
m7 e7 v/ E- e (setq yy (cadr majaxis))
k) S1 e' {% N% g% V# q6 g8 I# d (setq zz (caddr majaxis))
: T4 a. d, K" M) y3 ]; u, Q (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
% j9 ~& Q5 [" ?6 O- \* L$ O- R (set_tile "majrad" (ai_rtos majrad))) j$ _ o. b6 h- v' U
(setq old_majrad majrad): r. Y- A/ U" j/ d! B
;; Get radius ratio
7 d; ]6 M ^( L. v (setq rrat (cdr (assoc 40 elist)))
, C. v; R# {( i7 M/ k (set_tile "rratio" (rtos rrat))- \4 H- O# P0 r5 W4 A5 A7 y
;; Calculate minor radius
3 w* ^" A8 k" ~, v' X/ ~9 q (setq minrad (* majrad rrat)): h* m1 p+ a5 `
(set_tile "minrad" (ai_rtos minrad))9 c3 |. n F4 ?. ?! j6 `
;; display major axis vector
5 E+ b% B" Y$ W. y" `( O, ] (set_tile "Majraddirx" (rtos xx))1 ?7 i1 A/ S5 _3 A
(set_tile "Majraddiry" (rtos yy))4 s# N. Q3 R9 e: t' I4 ~
(set_tile "Majraddirz" (rtos zz))
3 A; N ]/ d" H y# k# H5 i! V3 }4 u+ G
;; Convert start parm to start angle6 b- H1 d! G$ _) S
(setq stparm (cdr (assoc 41 elist)))
. u5 h9 G7 ]4 u1 R (setq vecx (cos stparm))
+ W+ y3 Y7 h' {0 G! j0 g4 w (setq vecy (sin stparm))
7 T* k9 ~/ j6 `1 I! @8 x (setq st_ang (atan (* rrat vecy) vecx)); }, G* F+ }# }7 B9 y+ G l- V
(setq tempst_ang (ai_angtos st_ang))
/ M, B" C. S Z) d7 `) o0 x (set_tile "st_ang" tempst_ang)
6 [/ e9 X2 x$ h3 i% r6 f! N- J ;; Convert end parm to end angle. If end angle evaluates to 00 c% G( g4 U& V& u% v9 K
;; degrees then display it as 360 degrees.
5 T4 o9 @* G) _5 ~' `+ @ (setq endparm (cdr (assoc 42 elist)))/ l& ~7 T: L" a) o. }; h& E
(setq evecx (cos endparm))2 X% X0 P9 _4 Q
(setq evecy (sin endparm))' e1 y- v; e5 I% ^2 r* N
(setq end_eang (atan (* rrat evecy) evecx))
. u/ D5 @) g* \. Q, y) I6 L9 ` (setq tempend_eang (ai_angtos end_eang))( v+ |0 C. `2 J+ o) ]. Q
(if (= tempend_eang "0")
9 B, @( a) ~" V# J4 }$ J (set_tile "end_eang" "360")+ {. K& l: F6 ~* k3 X7 d& d
(set_tile "end_eang" tempend_eang)
4 D, w8 P+ Z4 ^" @ ); ? J$ n8 W1 _& |# z5 E$ G
;; Get area of the ellipse.
& {% V8 ?: J; v3 \4 o2 m (ell_calc_area)( B: g9 p% a, g2 E! n g
)* z+ k9 {) `/ q( e+ S5 F9 D5 Q
;; Calculate area of ellipse. If it is an arc then
) T0 F* c# N9 q& L* {0 c& b ;; grey out area display.
. r- t; ]; e/ O1 V# n! D ;;
0 V9 E" T& V0 N (defun ell_calc_area ( / area units), ?9 z- m; N& V) ~
(if (and (= tempst_ang "0") (= tempend_eang "0"))2 h3 V5 S5 G% Q$ }" y1 }
(progn
) |" v- {% a2 n% g. T. V. Q (setq area (* pi majrad minrad)). s1 J$ p4 J7 J1 S, o. n
(setq units (getvar "LUNITS")); d) a* u7 U/ c
(if (or (= units 3) (= units 4)) w! ]: Y9 V; C
(progn3 E2 r# ]' K) L2 z; V: g8 I
(setq area (/ area 144.0))
7 e( r. r/ l* t, w (set_tile "Area" (strcat (rtos area 2)" square ft"))
8 z2 ?2 I& I, g$ y+ p- M6 b K )
4 B( |. y& }; {3 _: P8 g2 t (set_tile "Area" (rtos area))
! S9 {+ _5 o5 B7 g7 L )9 c& H1 z: H% Q. g: j. R
). [2 i7 |0 o/ y% d4 o! B
(mode_tile "Area_text" 1)6 ^; _2 ?( d; x/ O" ~
)
1 ?; j- {2 G0 ?5 R: g )
8 t3 c* [: s# L' K7 w* N. x ;;; D9 u8 Q: r' ^
;; Calculate new values for ELLIPSE9 }! M' \/ ?1 r9 J' ]; Z4 d1 U
;; Minor Radius, Area. Q6 X) Z- i2 x# T" A6 G9 z
;;
0 _$ J4 r; \2 A3 q8 ]+ r8 M; n (defun ell_calc_newval (ell_tile)
' }) H9 u& Q* j (if (= ell_tile "majrad")
# W# W; c" F. Q. m5 c a0 h. _ (progn
, A1 ? T: I6 A' ?' Y (setq rrat (/ minrad majrad))
. @ Q* J* S8 j6 n (set_tile "rratio" (rtos rrat))
; U# u. |0 \' `+ G8 T (ell_calc_area)5 }' {( Y' S: T/ |+ L
)
" L+ a4 Y6 N. H! E! W/ ^ )
3 ^- a8 U" S; g6 n (if (= ell_tile "minrad")% Q& i9 p2 b( c2 v
(progn
|% q$ z* E7 f c2 s (setq rrat (/ minrad majrad))
2 S3 o$ P" {( A; Q6 C& y P (set_tile "rratio" (rtos rrat))" h1 ~! b+ l; y1 K/ L( z1 j9 d
(ell_calc_area)" n( d# w- Z7 F2 n. z
)/ @5 |% V2 d0 ]: q
)
) d) f1 m/ }+ ?$ ^4 z; m! V) | )" P, M9 j( z2 y. l o5 G& c0 K
" U3 K7 {( |' K' _! A, R* s
(defun set_dimen_props (/ loop a stl txstyname)% O. Q, v7 k! ^& W ]
7 N2 ]8 `# J5 j+ s% G2 C- R (setq stname (cdr (assoc 3 elist)) ; get style name7 c# B" w* Z' Z: _
stl (tblnext "DIMSTYLE" T)
! M5 B% u! g9 {" w7 b stlist nil)
% r. e& W6 D: k ;; Get all style names and list them in alphabetical order
8 p+ M! [' `3 q1 b0 e+ K, T (while stl
1 G: D2 v }, S4 l8 d" I' _3 H (setq sname (cdr (assoc 2 stl)))5 G& a. n0 C) f& w2 K1 _7 z6 H
(if (/= (logand 16 (cdr (assoc 70 stl))) 16)
7 q$ B( v6 Q" `1 W0 o (setq stlist (cons sname stlist)))7 x# s( I/ l. I0 K6 ^
(setq stl (tblnext "DIMSTYLE")))
7 P$ P* o s% }$ C6 e2 d' X2 H3 t% X4 V7 g, @
(setq len (length stlist)8 t3 |+ x+ y6 v. g" a) _/ Y8 e
loop 0
. c( \$ Y1 }0 ~! J3 m% y dimsty stname# F1 m6 s% o$ m1 b# H( N7 {' w
)! g3 i: M+ B' Z- Y: o. J: p* Z) I
8 F8 @' O/ p# r- [7 | ;; alphabetize style list, depending on maxsort
) {: i- g2 D; F- n9 B (if (>= (getvar "maxsort") len)
0 u/ P Q6 A$ P0 v- Q' ]" l4 Q, K; Q (setq stlist (acad_strlsort stlist))/ J% P h1 \/ U4 p4 S9 z
(setq stlist (reverse stlist)))7 b0 V8 a# d, Q6 f2 ^8 u6 p
4 l# m& x6 ~# ~" V3 \( b) C5 }# h3 H. A ; *UNNAMED style (dimsty = nil at this point) is replaced with
1 r1 E6 F6 o! z ; the current style. After R13, we require dimensiosn to have a) |6 o& i" c' p( O. t# t( T' a* {
; dimstyle, so we plug any holes where we find them.
: ^( S' u3 `* r- \ (if (null dimsty)& g- k; N- n0 P: P' d1 v
(setq dimsty (getvar "dimstyle"))
5 A( g& @" w* K% e2 e: L1 `6 \* g )
+ s5 {) \. p. F* c ; Show the styles in combo box1 B6 J) y" K# x0 v/ `
(start_list "mod_style" 2)9 b, \6 F( E! }( {5 l0 A. l
(while (< loop len)+ A, T2 z& u9 f
(add_list (nth loop stlist))& l9 E7 z5 g- `8 B
(setq loop (1+ loop))
' _4 r+ X2 {7 g/ v )
) n- e' Y5 P# A8 o& O! Q: T& `
" K; R3 K) o3 E- g7 y (end_list)# B$ A7 F9 Y- o e O4 ]- d
9 b. A& l! C+ W" _+ } ; Hilight the style name of the selected entity
$ d @+ b; U5 z4 b9 p (while (and (< 0 loop) (/= dimsty (nth loop stlist)))# K% N l; D) h% x M. X( S
(setq loop (1- loop))# A, Q/ u) c& Y; d! a: d
)
# ?6 a- @# b U9 b& U (set_tile "mod_style" (itoa loop))
0 g8 J2 U$ [. `* L. p8 ]5 q! |; B. V6 y9 c/ } u! d# `% `
; The following is the list dimvars. It must be sorted in the same
7 @& {0 M! F* U7 W' e ; order as the resfub returned from DDIM (ADS module).: G7 i. u9 W% X. G. n
$ L/ {% b& |& S6 b' A
(setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
1 t- b4 ?6 n+ u" V2 x% ^9 ^0 X- K7 M "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2". P2 Q) P" W& b& a' r+ S0 ~7 q6 d* {
"dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
( K' q' |+ v; |* L "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
3 n# H9 v7 f. ~4 p+ E8 s- k "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"7 q' ]3 j) G' u" K/ m
"dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"1 K5 K" S! e: a% a \3 |" {
"dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
0 Z8 z, O8 s5 g/ Y8 e "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"2 D7 Z) g. \. s
"dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
8 ]3 Y. D2 n* Z# E "dimdec" "dimtdec" "dimaltu" "dimalttd"
! G- c @1 G: W: q. ^- U1 M "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"% W4 d; z5 I+ w0 J
"dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"1 t$ R( N2 d3 A0 j9 ~
"dimtxsty"3 F& H; e% m- |7 `4 `. f: S
))# K7 s2 s6 j& t9 C6 I( V4 w8 l
(progn
$ h" }8 x3 J- | (setq sv_dvlist (ddimen_getostate dimsty)' ?+ z' ^3 v5 @1 D6 C7 w
txstyname (assoc 340 sv_dvlist)0 |/ W: X. {& [: q( u
sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))* D/ z# U' G" h( h
txstyname sv_dvlist)0 _% L3 b# A1 Q9 w
dimlist sv_dvlist
3 l* o+ ]) c3 S5 u- T( s5 O4 t2 }6 Y )4 S6 M2 ?* C# g! j) h
)
& r- L. V5 D% @/ E (if (= dimtype "DDLEADER")3 y9 \" k: [/ r4 S) M0 L
(mode_tile "mod_format" 1)
2 U% n1 g A w+ Z! ^ )
) |4 z; V% F7 b8 ?" N& Y. p (action_tile "mod_style" "(setq dimsty (ddimen_style))")
% B6 k/ s0 \' S8 k0 Z3 p (action_tile "mod_text" "(done_dialog 4)")
( ~0 O+ u1 G# r+ e$ k (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")* \- v6 O4 {/ g
(action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
8 i! G+ M4 U$ i (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
8 E8 C6 r2 U1 i ]" U7 Z1 o5 p (action_tile "accept" "(done_dialog 1)")
0 M4 l( h; O6 E& r4 \( b )
, l" r# C' l$ |6 f* l ;;- Z: [! E% `! |4 r D$ U
;; Get dimvars that have been restored.
; E, z( m; k8 [ @! b ;;
/ k0 k' ]! ]2 N W/ K (defun ddimen_getvars (/ elm dvlist dv i)
& y: \' R; }8 t (setq i 3
1 c. B& j; o+ f+ m8 r, H dvlist (list (cons 0 "DIMSTYLE")
) e/ Z% W w k) E' @ (cons 2 (getvar "dimstyle")) (cons 70 0))' T! n- T! w$ }; r3 T
)) i* E$ R4 D. W# P9 d
(while (setq dv (nth i dimtbl))
( i9 d; B# g7 y (setq elm (getvar dv)
4 r8 [+ W, G3 A8 x dvlist (append dvlist (list (cons dv elm)))5 S) g4 x( _% C4 C5 v6 f! t
i (1+ i)& ^* |& `9 z4 G9 S5 H# Z/ a
)+ T5 d* t! h6 f- ] X1 h$ [$ F6 Z
)
* e7 W9 O5 u% Q: X2 m+ n# D1 B dvlist/ s2 F$ T" G7 d! \
)" ^8 i1 b" U) c8 E0 R8 p
: O+ l9 N. {) n0 H& U
;;1 w: O% |6 O6 K9 R. G' h
;; Get the original states of dimvars. This is for DIMENSION entities.7 a t& X2 J9 d& A5 v5 b
;;
; R2 d: l! C4 J: U2 z V3 e (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
& E5 t4 Z3 W( w( \ Q6 w (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list& R3 l1 v: ]7 {
dvvars (ddimen_getvars) ; Get dimvars for that entity2 \5 K. B- u# H9 j
i 13 H, _( y4 O$ W- A3 l+ y
)2 ~* s) l2 n& l! J' A" i3 L
* y- C( c5 ~3 O' ?9 o ; Create a list that contains values of the selected entity./ a8 T* |2 |: Z! e X6 ^
8 ~7 H; D$ ]& K' B# r9 F (while (setq elm (nth i dvlist))
# N* N4 s$ x) }* W (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
8 B, l# F$ m7 f4 o/ F/ H i (1+ i)4 H$ O% d, l0 c+ I% C( J! u1 N
)
2 F" V' W3 f( \# q ). q' p7 ?' _ c9 q- l
dvlist, Y; r* V0 p, n" S
)5 e4 Y2 ^; }9 P1 A$ |$ i8 a. z
( L8 e, g4 V: Y ;;
8 @% i7 @( {. a @- }4 z ;; Restores dimvars of the selected enity.
# f$ {8 u4 A y v1 C ;;
% Z# `6 h: u* {$ _& }$ o (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)( G& v2 Q- ?5 V0 i/ y+ q
(setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"/ r+ j7 I5 G; L& K6 h& S4 y3 A
"dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
) ~# X/ o9 k2 r3 M/ ^ } "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"" }# w" p4 ^2 G: F6 z
"dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
) @, q( H t" E& x8 ?" W4 p "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"$ N3 a2 z/ }2 O/ m( h" [5 V, C- m
"dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"* m, O$ m6 I v) x) @
"dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
! e @9 S0 z+ b( }* ? "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
; M* ^# X% a# L; d* A" J* L" e "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"0 K2 P; b1 V- ~& b% u0 \1 }, d
"dimdec" "dimtdec" "dimaltu" "dimalttd", a9 {( |7 W- a# y
"dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
" Y' T4 e! J* M+ p9 L "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
3 X b* [ |! @9 [ "dimtxsty"7 i$ ~8 k5 N# \) _6 [1 ?
)). s4 }- f9 [1 D+ W+ G+ E; y
(setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
! W+ n0 J$ S, N# e: ]7 F( Y2 o) K, S (progn" N: W0 x V" ]* t- a& h- S
(setq en (cdr (assoc -1 elist))); f+ C) y% I6 f6 V7 r
(command "_.dimstyle" "" "" en)- l: F' Y5 B# P3 R0 J
)
) L' I' S# y- A6 R2 ^9 G5 ?* Y4 x% U dimsvcurset
1 m) I4 }2 l* h* j! q! v )" ^/ `" P- V. [% @2 l
;;+ g7 S/ k" G# B$ Z
;; Modify Leader
6 N) g( a9 k' H b2 s ;;
O/ H% P. }$ I/ S5 _# d (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
$ R b+ T4 h. Y& v6 a dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
2 h$ ?2 o. V0 o. A8 U l dimtype dimsvcurset)
) q; X* N- {9 y: ^" { (setq dimtype "DDLEADER"
4 C6 [2 }$ T, }! c dimsvcurset (ddimen_dimsty_restore). K0 _0 ~/ d- |: a" }, J
)) @5 z( O& \# i7 k
(if (not (new_dialog "ddleader" dcl_id)) (exit))) h' w/ f" U3 O" Q2 W$ w
;; Set initial tile values! t# I( [* F, ^/ f, h, [, ~0 y) x
(set_tile_props)
, S; s# I: c9 Q+ G5 S0 R (set_dimen_props)
" a3 H, @( ^8 Y (set_tile_handle)4 v+ }3 v+ I' J; M
;; Define action for tiles/ R1 @( Q4 d8 J! A! L4 Q! M
(set_action_tiles)
9 w8 o r- T* ~* |' A" _ (mode_tile "mod_text" 1)
4 I/ V1 l4 i* a2 N( q. ~8 L1 N6 ?: ^+ c7 d) m
(action_tile "mod_style" "(setq dimsty (ddimen_style))")
! N1 }' x' J$ N4 q (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")% j5 l/ o: P4 z8 ? I
;; Get ARROW and TYPE.9 \# ~6 L# F2 q9 @, N( H4 ]; d
(if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))7 s: I+ x) d" h0 \% k* [% V( S _& U
(if (= 1 (logand (cdr (assoc '72 elist))))
) @) ^; b z' u+ @$ ? (set_tile "s-s" "spline")
. F" A7 O% O* \# d9 S1 ~6 f r (set_tile "s-s" "straight")" o$ b, X/ D( l k \; P( z
)
3 k6 D5 k }8 ?1 f! b! v ;; Start the dialogue.
2 L$ f$ ]/ x7 o9 Q& t8 R% I# H (setq dialog-state (start_dialog))
6 r! L8 ~; d: @/ B' D (if (= dialog-state 1)
6 v2 `# D/ u! {0 K; F2 r" V (progn- h) e6 R" Z/ ?
;; update the style, S7 B L8 I4 t
(if (/= dimsty stname)
; s# t5 i2 q k# F( _/ \. G0 L (progn
3 d0 a" F* w" p/ ^6 [. [ ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
3 ~$ J# H0 Z0 O9 w5 R ; doesn't have it.
- Y; L; G8 K; R( E0 c" } (if (null (assoc 3 elist))3 `" \- r9 ]( S, ~; c( k
(setq elist (append elist (list (cons 3 dimsty))))
* j4 _! E2 F" |# f4 r7 y ; else just replace it.3 [6 \( ~2 V5 g3 d; U
(setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)) N9 ~4 V1 r2 U! P* q' ~; l
)
1 V/ x+ x% C0 L; g1 B4 D( @, _8 O ; refresh sv_dvlist with new dimstyle.
4 Z. @& Z8 C9 w4 b (setq sv_dvlist (tblsearch "dimstyle" dimsty))
1 B- S9 G: a2 |& D1 y& C4 C )7 I2 N m3 T* A3 t, l" _
). n/ J, d' t7 z2 x3 a8 u2 X* {
(if (not (null dimlist)) ; attempted to change dimvars8 X% e8 N: s+ f, a
(ddimen_complist sv_dvlist dimlist dimtbl)! {# c' n1 s8 c- ^& n# p
): c9 v( p; ]2 M- s* ?$ j
;; update for ARROW./ z N5 F& W( }# o, U0 {6 r
(if (= "1" arrow)! c% F- x" g* j0 f9 {6 z% J* w
(setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
! O3 N; I6 s8 ~" r (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
" n, p4 r) M) W5 L9 d2 H w ). h ?, J- u# U. L( P8 q/ y
;; update the TYPE.
; W V( ^: S6 L, U* D s H (if (= "spline" leadtype)
& \, k; y2 C' d (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
4 W. E& ~) d/ i& z (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
! ^+ ^/ x0 _9 E2 X2 l ); \$ }9 i7 n& T6 Y e6 `/ W
(modify_prop_geom)
1 a8 @4 U$ _+ ^ ;; update the Color
( r) a! n# _" g% v+ f2 q: V (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
. O) I9 [% }5 M) Z3 K( ~/ l3 ^7 n: ?% U (entmod elist)4 F- d, S h! P' q4 x* `4 ~4 {8 u
), X" D0 f2 L1 K
)8 R$ h! Q8 x5 j
(ddimen_setvars dimsvcurset) ; Prepare to exit% [* ?. U1 Y% a$ v3 c' A
)
8 A' {; _* p% B Q% i5 k0 N2 h H6 |! t6 h8 I- f6 B; w
;;! T: _: W i' f& O5 L! e( I
;; Get dimvars of a dimstyle with overrides.- q e: ]3 [* a: j. `
;;2 u$ ?- d; V: q$ S
/ o- w+ ?4 }! ^: R- h% |: y (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)* @1 y( o; y. [$ K) h0 w, ~- w3 i
: T" ^( C! F1 N% r
;; Get override information for the specified entity.
2 z( \* o6 w+ F/ O ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
0 r" I2 ?5 H' E8 g! @& q; q7 H2 q ;; must obtain override information through this tedious operation.
( P, [1 N: m: L! m% ^6 | (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
( ~/ T0 w. K' l2 } dvlist (tblsearch "dimstyle" dimsty)
9 ^/ G3 g$ w: R( F i 2
# X Y/ _, u$ _ )
% F- g8 E- o+ x0 J ~- [" X# M( d% a6 Z# A) ?7 e
; Update the list with overrides if overrides exist./ v! ?; A$ \; Y! ]* ~8 @' E
: n/ c6 s2 X. H g (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
7 n1 r) f# l% T& [+ ~4 I (progn
1 \; h8 I/ ]6 i2 v( c (while (setq elm (cdr (nth i dimovr)))
1 s. z8 T. S# X7 o @' l% Y' R5 h (progn: w- R* B' d9 I
(if (or (= elm "{") (= elm "}"))$ n: P, c+ ?$ ]! p" c, o
(setq i (1+ i))+ f4 G, f3 k) U0 L4 T1 d3 k
(progn2 y& [9 @! E" B! _. Z- g$ c
(if (or (and (< 180 elm) z q9 D& Z7 `
(< elm 190)
) t. \% N- C5 z% o, m )
5 n: P2 f% \& r. `- d) o (and (< 80 elm)5 d6 S8 T. l+ [ H$ M' h1 \% o( x7 ~
(< elm 90)
; U! J% I3 R0 q )
+ N4 Q( F9 \6 l1 X )% V8 s. F+ P* h5 e' g7 J
(setq elm (- elm 10))
/ i( {8 P. u1 G: \ )
" E4 s* Q2 B- y# Q# w& y (setq i (1+ i)
# |% { J: q' U# X elm (cons elm (cdr (nth i dimovr)))* F) [) _+ ^" e! [+ ^& I Y2 L
dvlist (subst elm (assoc (car elm) dvlist) dvlist)9 q# `4 m6 o- y* V
i (1+ i)! \' }7 [1 t! X( T E
)
1 E" ]" r+ b. I% j3 g1 I) ]# C" S )
6 A' f% m q# g* Z+ ?) M4 |, v )5 e: V8 u2 i3 C% d C
)
0 L- @# F9 F1 t. V; R x& _ )( V( f0 l$ a6 d) J# {
)
8 v( V" ?, ?# b0 P )
) W' s( U; }6 w& l ^ dvlist
1 b$ O9 U( g- b )
5 x/ ~4 O7 |1 t; O" C- T7 ?
. b) X# v1 ]4 h" o2 ~7 _4 G) T0 b ;;8 x' M* O$ b' K+ w: m9 ? a( C
;; Modify POINT
_/ Q1 w3 Q+ h ;;/ y% y9 D6 D+ g6 d
(defun modify_point () e2 {& }1 H7 q9 n& D1 X9 r6 a
(modify_properties)
X5 \ u0 k$ K( d8 a3 }, w. j) F (setq pt1 (list x1 y1 z1)), t" w; l! w L
(tempmod pt1 10 0)! X0 Y* E9 @8 z
(entmod elist)' e8 V* ^4 F% V9 @7 V6 R
)9 \' K7 E6 b6 ~3 ?) a; }' j7 m
2 a$ T+ l* u: c5 B) m (defun ddpoint (): O7 O+ t5 P+ A, i8 @
(if (not (new_dialog "ddpoint" dcl_id)) (exit))
, ?! T y. `. u/ o, o ;; Set initial tile values
0 `2 |- r& V, i( f& M2 d (set_tile_props)
$ v) O; h8 Z+ f* W! x. @* Q (set_tile_handle)$ l8 m% y$ O, ?1 B7 p: G7 [& t
(set_tile_pt1 0), H# b3 d. ?) H+ M
;; Define action for tiles
; X( V7 ~% R8 ^8 Q }( G+ r: Z (set_action_tiles)0 G1 W: z+ {4 C
(setq dialog-state (start_dialog))3 Q7 a7 w( H4 x: i" D
(if (= dialog-state 0)7 e6 H( b5 Z% [* `7 Z) \* J8 u
(reset)3 [0 \" c- d5 S6 K' C" p
)
$ S1 q" L- |' M& i, G3 h (if (= dialog-state 3)
# L. E7 \) Q$ |# R (progn7 l) J1 ?* j* ?* I, x& y3 c; x
(modify_point)- H+ z- z3 [( b! w5 |
(setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))1 _: g4 k4 e i6 ?* w# ]: n
(ver_pt1 0)
7 ~' S0 @/ `1 |- Q- v1 p9 A( O (ddpoint)8 z+ ^0 p/ |/ F) h
)$ P) N7 y( {9 [# O6 z# N% C% T* p2 q( c
)
. `/ O# U O- {8 g. H+ { (if (= dialog-state 1)! j$ q6 |5 H9 D Q5 p8 W
(modify_point)& Y' `9 ]0 ]8 I
)! Y0 ^4 Q3 l7 P) A4 h5 }( X8 B2 C( N
)
7 v1 j# W7 u* c8 L ;;4 H- _, W: l# Z/ K9 k
;; Modify LINE; Q' r7 P4 |4 w7 S$ }# J
;;% z& k$ u# D4 y7 }" S
(defun modify_line ()# m5 X8 r* s; N$ E P9 Q) N: w
(modify_properties); a9 M7 o+ s6 J9 v' w; W4 Z5 d
(setq pt1 (list x1 y1 z1))5 L" M/ D& x6 m9 u" J
(setq pt2 (list x2 y2 z2))* k9 A5 }3 ?; H1 T8 Y4 X
(tempmod pt1 10 0); Q$ j4 |8 S5 F$ s" a I4 U
(tempmod pt2 11 0)- W F- W& R( `" {
(entmod elist)
( g$ [" M0 E) u( z' m' t( Q )
5 N* Q6 S+ B5 f) k) d& @1 |2 X9 v (defun ddline ()
$ b: n$ V- ]$ H (if (not (new_dialog "ddline" dcl_id)) (exit))& f8 a* H' A Z8 d: H: }( B
;; Set initial tile values( V# O; L8 d2 H# u- J# e
(set_tile_props)
" V) A% _' f0 A& d9 }" _ (set_tile_handle) a* |2 g7 H* u! i$ [- e
(set_tile_pt1 0)5 ?$ }( t5 h3 l" p% p, l; f/ }
(set_tile_pt2 0); R7 u4 q; w0 L$ q
(line_calc)) j. u. E3 i1 L" y5 U6 E. Y4 p
;; Define action for tiles
* v( P! I- |# {2 d (set_action_tiles)5 t& T( Z4 H" [; H! d
(setq dialog-state (start_dialog))
! B0 s8 d! S9 a3 k6 } (if (= dialog-state 0)- i ~5 r3 z: t( b
(reset)4 m# I& a$ V* \# E4 Q/ y; m
)
0 \( Y' r- e" V/ E+ N- ] (if (= dialog-state 3)
1 ]) u2 \! q- f$ d; \, ~ (progn: _, P: U# Y7 Z: p5 u& `" m( a( |
(modify_line)1 `% c! ~: m% J5 O. a9 e
(setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
# [3 }8 Y' U9 _% Z4 w- h (ver_pt1 0)
1 ` X3 i8 n+ o (ddline)
S }; T* x3 Z2 g1 j" Q2 x& b )
( E' Z+ g, m! g3 b0 @/ D. } )
* u& `* [- M9 ^2 N& c+ B5 a (if (= dialog-state 4)
8 E2 D2 Y2 U# `! c1 i7 ^ (progn
, C2 j/ n; ~* \6 _: ]9 B (modify_line)
/ t0 J- l/ `5 J0 J (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))& [* O" u7 ]. x5 d# A4 ]+ W6 D- ?
(ver_pt2 0)
. r/ o; C: P2 h- J& k (ddline)
6 l/ H& K2 y# E, ^6 D% k )
# _* k: z( i- Z, M, n )
8 k5 W- D# t" y1 d0 e4 c2 [: \ (if (= dialog-state 1)
) O0 b9 G! E8 w3 i) g (modify_line)
4 L7 ~5 z2 Y5 H2 m) Q; r) f )1 {3 k s8 A- H. Z
)1 q# S! r( O j1 D8 \
;;
4 B/ D/ V% P5 n* W6 c. y ;; Modify MLine
2 ?. ]! g9 g& \0 {8 o ;;8 C5 M# m# }/ U& Y
(defun modify_mline ()
/ j9 _5 H0 v# W0 V' }6 e. j (modify_properties)7 m, Q! R) c6 X3 @3 O+ @) h
(entmod elist)
& W5 Y9 k7 S6 `& ~" r$ Q" Q )
2 u* @+ O) r0 ?$ } (defun ddmline () a/ S, t& S) Y+ K7 w. e
(if (not (new_dialog "ddmline" dcl_id)) (exit)) ^; [" |! ]9 a
;; Set initial tile values5 h+ X# L( T4 M. @1 K6 k
(set_tile_props)
7 @8 e# _& Y. J (set_tile_handle)
, M C7 x: q( e$ U2 [# j" J+ x8 V ;; Set mline style text field. h/ R4 ]; p/ M3 p6 z3 X3 r
(set_tile "ml_style" (cdr (assoc '2 elist)))
+ B2 ^& N' c& E& V, |4 T* [
$ g7 R* {: ]2 M: D( }6 \ ;; Define action for tiles! b2 O8 ^+ ~( c
(set_action_tiles)2 Y$ U, V! W# X3 P, X
(action_tile "ml_edit" "(done_dialog 3)")' U f6 G$ W; S4 ^ K- F
(setq dialog-state (start_dialog))
: A M# }* D% w0 P7 s. `1 |' { ;; Dialog cancelled, reset to original values.0 ~$ B3 `( }; \% t( H
(if (= dialog-state 0)/ H; I4 F$ j; k0 J0 h5 J/ r
(reset)
1 Q6 a$ i" o$ M% | )+ ?, c7 D: p' |( u1 k% P
;; Dialog OKed, update the mline.! i" M# h' [" I' d
(if (= dialog-state 1)
" Z7 V4 c; c6 P2 z" U* n (modify_mline)/ `+ d" E- R0 H. @" _7 j: V" r6 h
)$ T4 K; l8 |. W
;; Edit Mline, call MLEDIT.
4 T# {. ~& y% X; n$ e (if (= dialog-state 3)
8 I- _' Z7 N+ p1 U (progn( |5 H+ Y/ v6 L: {; i& ~
(modify_mline)$ P% O1 u# r# f. s) l
(command "_mledit")
0 L$ E1 K+ T5 G (ddmline)
% p- P( d9 V% f1 a )
/ V% t7 o- v$ x$ U: I' p )- m B a- ~0 P8 I) @
)0 |! R4 f* r6 ~) V& `: n
;;$ l$ I. u" b& M1 Y: H
;; Modify Xline0 P6 H) [( N+ ^, l) C& Z; ~
;;
4 ]8 a" o0 Z* j$ U6 n (defun modify_xline (flag)
1 _; z2 a& o4 h (modify_prop_geom)
$ o* ^: [9 U( \% F (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))) D( e: z6 {3 g% R! z
(setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
$ A! W1 {- H, ?; p3 b ;; Update the Root point.
& P! J" y& D) Q# e (setq elist (subst (cons 10 (trans xline_pt1 1 0))8 e3 G5 C5 T4 p
(assoc 10 elist)
, q4 X8 d! |0 A- p5 H. U% @9 X elist( e g$ g: X' S0 W
)
' @# @: Y" F7 Z3 p% S4 x6 O. R )
! R. F s( Y" R s/ Y9 r4 z ;;* R( w, g4 n# N- ~
;; Calculate new Direction Vector WCS
8 H4 t! m: q6 Q ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
) \* }; |4 Q0 l$ T$ T
& w I, n3 C' G1 u5 r7 u (setq temp_dir (trans xline_pt2 1 0))! t, V9 X, B9 g l$ N/ w
(setq temp_dir_x (car temp_dir))
' `9 R* p+ |& a6 @+ _ (setq temp_dir_y (cadr temp_dir))+ L# P+ b) z0 J) a7 \
(setq temp_dir_z (caddr temp_dir))# y, p- U% _# ^- X) g
, k$ B; j# X3 A3 w7 L& k* Z% W (setq temp_xline_pt1 (trans xline_pt1 1 0))6 O# `0 i! ?. n( q& Y
(setq temp_xline_x1 (car temp_xline_pt1))+ b9 n1 z6 x7 x) P F: R& P$ S1 O4 V. S
(setq temp_xline_y1 (cadr temp_xline_pt1))9 ]+ D" Q, V7 y
(setq temp_xline_z1 (caddr temp_xline_pt1))6 u) c( k) f5 B
% C& \1 ~ w# D' z X
(setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)5 ^' Q2 {3 }& f0 s
(expt (- temp_dir_y temp_xline_y1) 2), T- d5 V; v: F8 |
(expt (- temp_dir_z temp_xline_z1) 2)
3 e! p+ L) @8 l7 } p )))$ U% y* j3 \* F& w# J
(setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))) o: v# N' @# `- u4 m6 f
(setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
6 O5 U1 h* v# H (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
4 O- t5 h5 u' e (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
- y3 w% A/ ~" W0 B$ J (assoc 11 elist)7 U- _: v2 _1 H; a7 Q5 D
elist& b9 \& \5 B( m( ]
)
: J) L3 U/ l3 T6 L: R9 F6 \ )1 @* L0 _( g8 N
(if (= 1 flag)
- F I- C3 o# d9 C. R (entmod elist)9 y- \1 ~ D3 n/ O
)- K) O- S4 u$ \* Y% X! Q! p1 C% T8 R
)
( c* }" l0 z1 @7 W* g/ {+ n% O
, a% B/ L: Q# @; d1 s6 c (defun ddxline ()4 q2 b5 j( M, w; W. F
(if (= etype "XLINE")3 j! u s" E3 i# b+ m
(if (not (new_dialog "ddxline" dcl_id)) (exit))
3 ~% c* Y4 X8 L$ g (if (not (new_dialog "ddray" dcl_id)) (exit))2 ^4 k9 f1 H2 k$ `. W
)
E% Q4 k. Z9 @. z1 e) l ;; Set initial tile values
$ L7 o1 `5 y4 o, Q7 Q3 o (set_tile_props)" Z3 B/ r" ]' n1 a4 F; v
(set_tile_handle)
, l% [ Z& g+ g* h (set_tile_xline_pt1)1 m0 a1 o4 h* _/ r$ \
;; Convert to UCS and post Direction vector.
" g* d: @$ x0 Z% q (set_tile_dirv)8 X: C5 C% W/ Z7 J, s
;; Calculate second point by adding Root Point + Direction Vector.
- g, C C$ X5 h (set_tile_xline_pt2)
2 j% {$ U" U4 i2 c$ r ;; Define action for tiles3 y& L/ ^9 O- g; L' [8 _2 t9 L
(set_action_tiles)! |: x' A2 \) [
(setq dialog-state (start_dialog))
( K/ X% ^, j! Z/ m# ]0 ^- ^ (if (= dialog-state 0)8 r5 F7 g7 C: b3 A! v- o" S
(reset)
' u7 u' ~% G, X )0 W& x% w8 S0 O9 H4 q) C: \* J, A
(if (= dialog-state 3)! [/ [( N% f& p5 O: F4 X
(progn
0 R9 [1 r" C, t4 f# [2 O' u (modify_xline 1)
( T7 y! E! O9 b0 }! }& ?+ ] (while (equal xline_pt2- E5 ]6 F( }; d& u g' w: [
(setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001), O5 i/ e$ Q" n/ l
(princ "The Root point cannot equal the Second point.")2 J% f5 o S2 t, m1 X, [# C$ h; m
)& h3 }9 d: E/ o) x& n
(ver_xline_pt1)
( C5 ]( h* s& ^. q \ (ver_xline_pt2)
, z+ [% m- ?5 Z P Q- T7 S(princ)
& ]; a6 H' j! W- K" N+ p* U (ddxline)! J3 p) [; i8 \, O
)
' ^* g. \) P+ S )
+ S- [. G. w4 q. j* c1 x (if (= dialog-state 4)
" J0 N/ M% x6 } @5 `& I& p' k. ~ (progn
7 Z* x9 _7 b+ J* @ (modify_xline 1) A. J: ?6 M1 {
(while (equal xline_pt1
, E( @: X8 W7 v( k* E (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)/ o) M' s' c6 D. t3 G$ i
(princ "The Second point cannot equal the Root point."): h9 _6 L: l) W! h
)
% t1 L8 B+ i! U A% u9 w. X (ver_xline_pt2)1 b( S" g) W ]& e& p* v+ \0 K
(princ)
7 c2 l: T0 l7 I3 R (ddxline)- r$ k& z$ b$ j' m( P! X% `( W) `
)& G4 x$ o$ k5 J1 U3 b/ k* [& p0 o
)' _! f N! F9 A/ C
(if (= dialog-state 1)# ~. u) k& W7 T% U/ b
(modify_xline 1)0 t9 m* U0 }- h: k0 D
). `5 C3 i8 p l3 _$ @4 G
): ^+ g: M( K4 e$ q/ ]
;;
; n2 }6 F1 f" @8 Q. y% e ;; Modify ELLIPSE
3 x& F. K* c) \3 P, u5 x ;;/ S# O5 l4 C1 f( @
(defun modify_ellipse ()+ e8 ` I } z g+ m
(modify_prop_geom)
) q4 g$ Z8 l: R ;; Update Ellipse Center Point value.7 t8 ~& g' j6 e% q1 i" t" e$ Q
(setq pt1 (list x1 y1 z1))
9 N3 O1 `; U- }4 n (tempmod pt1 10 1)
2 A8 Q% ^( q2 R7 @* O# i ;; Update Start Parameter value.
' _9 m1 i% T) {5 G/ n (setq y_val (sin st_ang))
' c Q5 U- a% b6 G ? (setq x_val (* rrat (cos st_ang)))- T' [5 s: l* _2 x* m' y
(setq stparm (atan y_val x_val))
) j& t6 }: j0 O (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))7 N" R, Y* v% [, ]6 x9 R" [3 B& ?' a+ g9 u
;; Update End Parameter value. Normalize it, if it's less than
6 M- M6 U+ r% C7 t ;; the start parameter.
8 s" _" _$ C" d, V3 [& l& H7 o (setq y_eval (sin end_eang)); j0 J9 e3 f. b8 b0 V- \( J
(setq x_eval (* rrat (cos end_eang)))
" n, _* j3 `) j& k: ^9 ` (setq endparm (atan y_eval x_eval))* k# A) z* j- a( o3 v9 u
(setq diffparm (- endparm stparm))
0 f2 r' k! u j ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
: F s9 Q' R; n2 C- _ ;; Since zero length arcs are not allowed - construct the full
, r7 b: m& c0 q5 ~+ q ;; ellipse in this case.
9 c6 l& |% s9 |+ C4 Y% [4 I (if (<= (* diffparm diffparm) 1.0e-12)0 K5 f9 w$ @" @
(setq endparm (+ stparm (* 2 pi)))
4 g y7 x6 s3 d/ C# {6 E4 ?, t )
0 y/ d& }8 U" [ (if (<= endparm stparm)
( M) @/ T0 j1 k/ M/ }: a (setq endparm (+ endparm (* 2 pi)))
: @( z# `; ?/ E3 C+ e2 N; D" d )( a5 M3 P; h/ j- ?
(setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
: w' S$ j5 U+ ^9 ~3 y, \ ;; Calculate the Major Axis Vector by first calculating
7 e* p+ G4 P. Y+ {' X9 v O! x- d ;; a unit vector using the old Major Radius value. Then& k6 y6 K, U; o, Y6 t
;; Multiplying that by the (possibly) new Major Radius
$ g+ v6 y) _/ l7 g) M7 S1 L ;; value to get the new Major Axis Vector value.3 J, @8 w3 _& T& R1 V+ y& g
(setq unitxx (/ xx old_majrad))
, X Y0 l9 p- F2 Y: e (setq unityy (/ yy old_majrad))& v5 k, Y# } O% |& _4 Y8 ~
(setq unitzz (/ zz old_majrad))4 e& B: ]4 z' ~3 p/ p" t
(setq newvecxx (* unitxx majrad))
7 V% u+ `5 M& |+ n (setq newvecyy (* unityy majrad))# {: f6 f4 u6 |; v- F
(setq newveczz (* unitzz majrad))( q$ `9 e8 ]7 o' R5 _
(setq newmajaxis (list newvecxx newvecyy newveczz))
7 S( \' m8 L$ d; F9 @2 Y3 v( L/ C ;; Update Major Axis Vector value
* V6 Y" i: V8 `; i (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))% z% l! k9 T8 s8 C+ f0 b
;; Update Radius Ratio value
' t& f7 `: w( e% } (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))' B% T+ M; a, l7 y6 x5 Q4 W3 T0 k
(entmod elist)
. m$ I0 r$ w- y% l* C s4 S )
, J s/ Q3 ?1 c; v, X: d6 V, j& }5 ~, N, l+ X) i! ^
(defun ddellipse ()
7 A# W( |- Z! [5 K% T# r (if (not (new_dialog "ddellipse" dcl_id)) (exit))
: u2 O) ~" H" i6 t7 |; T4 ^* F/ I ;; Set initial tile values- t" i" n0 l/ M0 u3 U& j
(set_tile_props)# p/ U1 x i4 T' A% R! p
(set_tile_handle)0 i. ?' x3 f/ Z9 i. M; K5 u
(set_tile_pt1 1)
( S0 C) e3 W8 o( c& _6 z (ell_calc) m& J1 I2 I! c( z) c
;; Define action for tiles& t/ K! G0 c* t0 y" I5 P& s: o
(set_action_tiles)) j, o" @0 M4 ?6 @
(setq dialog-state (start_dialog))4 V6 `0 I! N$ M" R" f- T
(if (= dialog-state 0); M7 A( a9 ^+ ]- P
(reset)8 ]) F9 k6 g" g+ R# U p
)
: A8 t( `* ]$ R$ g% w (if (= dialog-state 1)5 G& O( D2 p- }. t/ |' x$ P# S
(modify_ellipse)+ H3 E( P+ b6 X" x
)
% u% P8 l9 q$ j, Z# b& q4 R$ j (if (= dialog-state 3)7 K* ^8 E% j7 j' E. ^9 D
(progn
/ Y' [' T% f3 |1 W) w- f5 d0 B9 F (modify_ellipse), D) E2 x& v/ Z' C3 |2 v" a
(setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))3 f9 y" g, ]+ P
(ver_pt1 1)4 q3 e8 t. F: v
(ddellipse)& v/ G3 @/ { W
)
4 {( p R5 x1 |3 J: }8 D) c )
: F* E9 X, l; ~* Q )& O$ \; l1 n* r; V6 @
;;
. V, e8 o5 w9 m4 Z4 P( s5 [8 | ;; Modify REGION
- k7 q5 _7 G2 Y- E* } ;;( G3 u2 `2 Z) l4 y+ K
(defun modify_region ()" |" ]3 P9 ^& G
(modify_prop_geom). F! m5 ]: q2 S! d3 c9 y/ ?2 U* j
(entmod elist)
' K* d$ c- o0 `/ \' z# s4 T; ^- e )
9 ^7 `# F& `5 R# _* y! C' f$ H9 d& c8 `' {
(defun ddregion ()
3 Q2 k. o: k) V) Z! Z$ | (if (not (new_dialog "ddregion" dcl_id)) (exit))9 @! P* j+ @( v. x- a
;; Set initial tile values
* _. t! R- }( J (set_tile_props)" ^' s7 H5 j# F# ]! \& |: U& x: o T: Q
(set_tile_handle), t1 C/ V0 w2 N; E" z4 [
;; Define action for tiles
0 \- u; o* K6 l5 Y4 E (set_action_tiles)
" ~' q6 j; @) O n" a9 ~/ } (setq dialog-state (start_dialog))- M) V2 M2 a% n' \: N( w
(if (= dialog-state 0)& x5 I/ X3 w8 {& E$ j, W1 N
(reset)8 h# C. M( e& P% q/ p: \) D
)+ @: d2 w( \+ ?& R/ ?& n
(if (= dialog-state 1)
# U j, v; w9 ^7 a* u- ]& m! w (modify_region)$ o/ `: |9 r* ^! q* i
)8 ^( ~ w4 L8 T4 n& w1 x- q
)
$ c% r( i5 A* }/ V7 T: r. v$ l4 b ;;7 H; Q' h$ [2 f8 j8 H7 ~; x
;; Modify 3DSOLID
1 l, c6 x* @1 v6 ]$ Y+ M" @, A ;;
+ K: B, s) U- k1 y. k' F (defun modify_3dsolid ()9 s6 p7 t$ k4 j1 H, N
(modify_prop_geom). w( A* W. g+ h
(entmod elist), u9 E, |4 b# R/ l; Q
)
% u& H' _* u" I- {& _8 X: S+ z; w7 V
(defun dd3dsolid (); s! Z' O6 |4 A! t; A ]
(if (not (new_dialog "dd3dsolid" dcl_id)) (exit))0 p( Z- [4 L2 p# h! T# q( J, S5 L
;; Set initial tile values* J1 ` ]+ K7 c
(set_tile_props)
* R- b) u3 g! l# @/ J7 L (set_tile_handle)4 u: F4 Z- k& H) ~, C) D
;; Define action for tiles
/ w2 H% M' ~ J2 I (set_action_tiles)! Y" Q6 g- S, L
(setq dialog-state (start_dialog)). m: s1 d7 W! g* [% v
(if (= dialog-state 0)
j0 _, P2 K7 H8 ~ (reset)
. y, L2 F% w0 a5 Y) Q5 M2 I9 B" A )
& |: `. X% S! C" Q$ @0 t X (if (= dialog-state 1)
5 {4 F: V+ ^3 v& r/ v (modify_3dsolid)
; U# L& }# @" r$ P$ H )5 g, h- u* j; a5 j( R n# n* P
)
, }2 h$ |0 H2 U; \' a ;;( C( \1 _% \4 [* R; i
;; Modify AcDbHatch( z& i8 b. W! ~4 T j' W
;;
2 b# }/ i4 y7 u. R (defun modify_hatch ()
- Q/ ^/ K! q* H (modify_prop_geom)( R0 y* [! w: W) k2 U
(entmod elist)( s4 j( f- S! P* D
)
- Z( k, J; p- H, Z+ I# |
\* n$ R3 l9 N/ l: `/ m4 N (defun ddnewhatch ()/ Y3 m# @3 F9 F( H
(if (equal hatch-elist nil)& a* ?0 D7 b3 T3 s0 G6 O! E
(setq hatch-elist old-elist)
8 y1 @8 }' \7 a9 K$ K, u )4 U* v6 C# \ {
1 c d1 S2 a+ C: L0 d
(if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
, l, H2 a: n- }, n/ }) E! E6 l: Y, i) H8 o# F0 g
;; disable the thickness tile4 s. [& y' n) h/ e% o4 ^( a
(mode_tile "eb_thickness" 1)3 ^) {/ G; T$ A U- ?
(mode_tile "e_thickness" 1)
: y) @1 i- o. h! F ~& ?' K# d4 e9 N& X# Q( i
(setq help_entry "modify_associative_hatch_dialog")' z$ E# Z% `0 M. I+ z* p
(set_tile_props)/ l6 m& r. u: A
(set_tile_handle)( Y- V" I4 |/ z* X: r
! t5 U. K4 }+ t- w* F$ G8 c9 D
;; Define action for tiles4 M! j3 v. U5 ^4 Q7 C. ?* t
(set_action_tiles)
2 `) b$ r, N- }: P' `4 F (action_tile "b_hatch" "(done_dialog 2)")' o2 B# k, J# w
(setq dialog-state (start_dialog))3 y, B( U& W X
(cond
; e X3 E1 r ]: S$ M ( (eq dialog-state 0)
5 A1 e4 O0 W4 u/ a (setq old-elist hatch-elist)
" O l9 V8 O: }" l' Q (setq hatch-elist nil). ]: F0 W$ r i) ~- C7 V$ A- @* {
(if (= (checkforlockedlayer ename) nil)
9 _# X z5 w# p$ ]. L (reset)
8 n( W' [# d' q (progn ;;; special handling for locked layer reset/ ? Q5 P+ Q: m; ?4 Z
;; unlock the layer; Q ^0 J& V# \
(setq layername (cdr (assoc 8 (cdr (entget ename)))))3 J8 P1 H& U; @# a. ~! g
(command "_.-LAYER" "_Unlock" layername ""): c; u+ ^8 o7 R( B0 @# ?' R
;; reset modifiction" A% L) H9 X" { b& d- U& y5 ^2 I
(reset)2 r h# T1 U( ~ m5 G
;; lock the layer again
, j# E$ @6 c6 ~8 X4 @4 f1 h (command "_.-LAYER" "_Lock" layername "")& ^4 ]6 _+ C8 u
)- z! U0 ]2 {, ~8 s- x3 ?
)
, u" `! K2 i( \ nil ;;; makes (ddnewhatch) return nil for Cancel1 h9 L9 F7 g5 w, ^4 p5 z9 p
)8 T: P/ z: P, u! B+ Q, X1 u
( (eq dialog-state 1)& [1 W8 Q: }0 n0 @4 E0 m
(setq hatch-elist nil)
; x Q. r5 S3 N2 ?6 T J (modify_hatch)
$ r" q# f* p( c4 O% ]# l( U& L+ k4 r T ;;; makes (ddnewhatch) return T for Ok
2 q9 k* @$ M9 F/ l) T7 Z4 T )
) m1 C6 Y* o; F, |4 a3 x* f2 ^ ( (eq dialog-state 2)
/ M' q& q4 u _/ _* e/ d1 B& o! _- I/ f6 Z7 q1 B4 J
(if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))( E2 S; x7 I3 h4 c' @) _' n7 E
4' E2 @" I( ^% j6 n* H- J
)
( M# b( ^; Z" M/ e ;;; new selected layer is on a locked layer
) K' G+ g* J. n+ E) C/ `+ f' k ;;; we can simply modify the hatch properties
5 g* u# t3 F7 A0 r/ M" S (modify_hatch)
, u2 A; d8 B! i6 n7 u; _0 z (progn
9 z! b( C" K, Y- Z+ Z (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))$ \4 u5 H1 e8 n0 ]
4
/ t- r' b4 o7 z0 l# v4 ^4 I ) ) [9 e1 u: r& ]$ w" e8 i
;;; We changed the layer previously and now the hatch lies on a locked layer.3 ^) g, ?1 X% T$ j; ]1 l
;;; We have to unlock the layer forethat we can update the hatch properties.
) q/ F- R( B" ^# |( L6 z( |; Q5 W$ A ;;; If we don't do that (entmod) fails to update to the new layer.
# T, }0 Z; p: w I6 L; b7 m$ b (progn+ Y& y9 u0 }7 }7 x/ @# R. i+ z6 I2 _
(setq layername (cdr (assoc 8 (cdr elist))))
3 Q6 d+ N2 P2 M7 i+ j. p (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
, ^. j+ o7 s# F, c (modify_hatch) ;;; update the properties3 l3 C: g I. O2 q/ K; Z
(command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
$ U* j. m m$ |) U6 i7 d u$ H0 F )/ @% C* `/ J" l8 l2 v9 I( _% d; @- p
;;; All other cases we simply update the properties
+ D5 T; t- q& X8 ]# Y: U (modify_hatch)5 I2 `" X" d1 X2 M
)3 W* Q1 u8 Y' O9 J
) I* y! k2 H: C
)
/ W9 H( @9 f. n3 i" C a4 n% B" I0 f (if (= (checkforlockedlayer ename) nil)2 U+ x2 \, f, Z
(command "_hatchedit" ename)
4 ?7 y3 _- u: I. A8 ^5 H (alert ;|MSG111|;"The hatch object is on a locked layer.")
- p/ |$ I. ~& ?& H )
6 n! H$ S+ G+ u' M1 p (ddmodify ename)
6 x7 l; }- x8 q% V )
! _. ^' @0 g; N9 e' Q )
7 A5 U' v) W- I# F8 Q )$ l) Z4 ~+ R' h# x9 I$ D
;;
$ O* q" L& ^# m6 m; H7 j ;; Modify BODY
' W+ e9 G; I: ]! C0 a/ c; r ;;7 m9 l8 T* ]. E* x4 i6 V# v
(defun modify_body ()
& d8 e3 R0 ] k- D4 J1 [! Q# v (modify_prop_geom)) b" y ?& t( |' X
(entmod elist)
" S# d5 @3 W. e ): V4 x; C) P- y* |
, \' F$ k! _2 r/ ]4 O% b (defun ddbody ()( x+ K0 N( f D# s
(if (not (new_dialog "ddbody" dcl_id)) (exit))& N: J b0 }9 s& j
;; Set initial tile values
% S( C# u2 N5 [# O8 j (set_tile_props)
( ]/ A9 Z$ b6 p) l4 c (set_tile_handle)
5 I3 `; B( `. V& i/ l) \ ;; Define action for tiles
0 ]" E; c* ?& E n6 E (set_action_tiles)6 [, q+ N# k4 e) C$ \0 t
(setq dialog-state (start_dialog))" k% J6 u3 l% c
(if (= dialog-state 0)0 i0 y# l% Z8 `+ W3 W
(reset)
2 e' F5 p# N$ F0 K6 q8 F! H# o )
$ D2 j& \' @; {! ^ (if (= dialog-state 1)
+ a5 s% h4 \; B8 H7 ~5 a1 ^ (modify_body)
/ f+ [: K k0 u& x( f1 r# h )
- S0 k' V! N! U2 r( h )" A9 b K* i& J+ t! e& b+ B
;;
' F' [9 A- }& R$ c1 p6 \ ;; Modify CIRCLE
" F/ z6 _3 j& z4 C3 E' a ;;$ C" x) M; c2 J7 |: q) \
(defun modify_circle ()( ^2 l0 l- l+ S, y& U; {( }
(modify_properties)1 f2 W6 F% [2 `/ I, s$ s
(setq pt1 (list x1 y1 z1))
$ s7 r- e/ Z" K! t2 q; K4 S (tempmod pt1 10 1)
; K* c; R! P( b+ B1 e2 L (tempmod radius 40 nil)
5 D5 y4 Z1 e6 p4 a (entmod elist)2 H3 V: F+ R# B) s2 y, K q
)
# ^. n3 \0 N. Y% s3 d/ y4 z& B
, D) m5 p, ^$ L q; f (defun ddcircle ()- D8 E" D& g4 j4 _& o9 g
(if (not (new_dialog "ddcircle" dcl_id)) (exit)); o: s" v( n/ n8 s( ~, ?
;; Set initial tile values
4 I( x% L: y2 C- D1 j7 d: q (set_tile_props)
0 t* G: t( Y" R (set_tile_handle)
" }0 S8 G' C. K$ C n (set_tile_pt1 1), v( \( j3 S$ b F/ ~* J) X1 f
(set_tile_rad)
! K. O Y9 ]- z0 \3 ~ E (cir_calc)4 _- @# h. q. W- t6 V8 B I
;; Define action for tiles* k2 ~* x9 i$ f% l1 i
(set_action_tiles)3 L4 E& e, S; w2 a
(set_tile_pt1 1)
9 w" P" Y% L2 c. R ~ (setq dialog-state (start_dialog))$ X' c, l/ m$ U4 I; T
(if (= dialog-state 0)# [9 H) n( [3 K) j5 Z$ k* P! i, V8 C
(reset)
( s% {3 H( j0 M: ^# x )* ]* T% I" ~ G5 \. L
(if (= dialog-state 1)
) s4 M7 V, G$ {9 d: w8 C5 u+ ] (modify_circle)* U; _/ p5 M; l
)
+ B9 d" ~' a" H9 b9 _2 R (if (= dialog-state 3), W2 W( _3 o! B& i8 J' f7 B" M
(progn/ h( i, O( ]& h! `* X
(modify_circle)
. A h# V( C/ ?: E5 s (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))! ^' {8 f4 B/ Z- J
(ver_pt1 1)
) [8 ]. P' ]. d$ @3 X0 f: y (ddcircle)
|4 D2 O& O4 A )
4 }1 C; G* M( A: q )
. V: P2 y; d; r1 W) s& P" U) T )4 n. M9 o2 r8 w6 j' |' Q. P
;;9 s7 l& Q2 v- [3 c% C& u5 u9 ^
;; Modify ARC$ y0 v! A- |) n' j) ^. ^8 n
;;
( y6 ]/ M/ F" _( C$ T (defun modify_arc ()
4 Q1 Z' r8 l- b& e (modify_properties)1 z$ h- t2 z# W
(setq pt1 (list x1 y1 z1))
; U% D: R, A0 r) T1 t W (tempmod pt1 10 1)
# s: b# k7 _4 `; p4 U3 B (tempmod radius 40 nil)4 \1 J( S* z0 K, t
(tempmod st_ang 50 nil)
2 R# d+ U3 n! h8 J/ v3 _! y* q (tempmod end_ang 51 nil)
7 r. f+ C( j; J+ J1 ^. j# d" ^ (entmod elist)% d# t8 u* l! H
)+ y* L5 ?) M) I( i4 b) J" Z
(defun ddarc ()
# |+ @1 ^- W6 L (if (not (new_dialog "ddarc" dcl_id)) (exit)). B1 ~; W7 y% {) C C
;; Set initial tile values5 A% k. a3 S$ J7 `+ J/ }/ X1 w
(set_tile_props)
: W. V1 z3 W7 Z) C! }7 T; f (set_tile_handle)5 u5 T: ]* a W* L0 c5 z
(set_tile_pt1 1)
& t" g& E4 W h. J2 P$ a (set_tile_rad)
2 L: @" Y$ `* ?# W5 a (set_tile_stang)& q) Q/ c1 C) B, D" ^' U2 X( _
(set_tile_endang)
! B2 J# j& p' S, k" }8 C (arc_calc)2 Q! }$ U' A. E5 V. w
;; Define action for tiles" e, x6 \1 v5 A# d- L
(set_action_tiles)
5 D2 f l, a8 H$ a2 Q (setq dialog-state (start_dialog))
) t7 `1 u+ h" R3 s7 v. ~/ l0 T (if (= dialog-state 0)
8 r. _* F) K. _! r6 c! l+ o (reset)# k+ _1 _7 z* l( p
)0 N# [' t- A- T: L/ ?2 G3 o
(if (= dialog-state 1)
" u( ]! v1 ~6 b0 v5 y4 T (modify_arc)
& N8 d S* N/ ]7 w9 T- Z6 q) F )' @' O3 N a6 W' ~$ t, L3 Y
(if (= dialog-state 3). V% y* d+ O G! j" d/ t: G
(progn
7 g$ a: f' z7 ~& q# s) C6 V1 [8 s (modify_arc), Z9 N, i# ~, b4 f4 I3 {
(setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
- i9 F# J3 D! a8 o (ver_pt1 1)
3 d" G' Q& z( F$ Z! C% \: M7 ~2 b& { (ddarc)
. [( z. M( I' m A9 C )
" @) F8 Q! e3 v7 O: j, n8 ]. B4 b )
1 c! F1 {$ U1 i2 U; p ); z/ {* D+ C2 r3 P5 S2 B0 v( w" A
;;
" H/ I3 R/ ^0 |: l ;; Modify SOLID or TRACE& N0 f5 L V0 o; Z: @) w
;; Note the Z value of the object is determined by the Z value of the fourth7 j' h I0 K/ |3 p3 |$ ?: @
;; point - code 13. Changing the point values of a solid or trace from a UCS
7 r% s' ]8 ^( O" V P ;; that is nonplanar to the UCS the object was created may confuse the user.
9 C8 U) T! N3 r7 q* `- r9 B9 H( J! U (defun modify_solid ()7 Q7 h5 M6 V" U' t* o4 I5 L! z
(modify_properties)
0 [( L! X; _$ u2 g (setq pt1 (list x1 y1 z4))) c$ C1 ~4 p* o- I) V7 n7 N
(setq pt2 (list x2 y2 z4))7 Y/ L$ ~4 t' E3 Q7 |
(setq pt3 (list x3 y3 z4))
; U6 C4 A5 G. C (setq pt4 (list x4 y4 z4))
* f) E3 [; R* H) N( M8 }; s3 L+ A (tempmod pt1 10 1)" Q2 V3 J- q) V! b; l. c0 N
(tempmod pt2 11 1): R" d" i) F0 Y6 J* j! c S
(tempmod pt3 12 1)$ X6 N' N' h: N) u3 L+ _0 _
(tempmod pt4 13 1)
9 A; ]7 i5 }2 Q" Z3 \8 r& r5 v (entmod elist)
|1 A. N! h5 f )
" L5 P6 }5 X3 g& q1 I9 Q4 e% X6 r4 a& ]- Z
(defun ddsolid ()
$ s- ^1 P9 j2 P (if (= etype "SOLID")
: E; s% j2 u, k; S# i (if (not (new_dialog "ddsolid" dcl_id)) (exit))1 U0 {0 [/ r# }
(if (not (new_dialog "ddtrace" dcl_id)) (exit))3 W* J' ^6 D; g7 E
)* o* ^* \' ?" F& A
;; Set initial tile values% G, X% ?# i! ~& ^5 i5 V& h
(set_tile_props)1 P- O) |4 ~+ A( x; R" f
(set_tile_handle), d& [6 a) M5 [ L8 H4 Y' I7 p
(set_tile_pt1 1)
5 N# P# [% e/ l& n6 `& L0 D5 H (set_tile_pt2 1)
7 t, [" l5 l7 J$ c4 h) m& r6 C (set_tile_pt3 1)
- ]/ g! j/ C4 ^: `6 I% N (set_tile_pt4 1)7 v; {* L- a" g6 z
;; Define action for tiles1 q. { R0 @! @- }, o) N
(set_action_tiles)
* u* I, i5 J/ [( l2 s" l (setq dialog-state (start_dialog))
/ j' r6 {9 U; Y0 s: C. }/ C' f+ r (if (= dialog-state 0)
8 N8 {$ [; Z& t8 V4 e9 I5 r (reset)% @8 ^1 H& l, {: X% S: D( w
)
8 v# l5 N( A6 x6 P; Y (if (= dialog-state 1)7 A" I; G$ G7 n& O/ e" V* C
(modify_solid)
3 M4 F, t& T3 A' P1 E )
7 H( o$ Y) ]' N8 t5 T# h9 z) _ (if (= dialog-state 3)! D) e0 H7 N( A
(progn! e: p* C: K' m4 P" A
(modify_solid): ~! n ?. N# N1 j0 Z# ^
(setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
* x+ H, ^0 ?" A' Z7 i, H9 f (ver_pt1 1)
& n- s( ?4 P! ?0 `0 B; ` (ddsolid)2 U9 w* b: A& J1 ^
)
/ R- i& Q/ I+ ~. Q5 H )
& t' F2 K* [6 l) ?; n% n (if (= dialog-state 4)' p+ }1 \- T" y; H0 h
(progn# {% v* |9 Z7 v4 J9 j
(modify_solid)
# z! S3 [! l" \& W- `0 z9 x& e' c (entmod elist)' h5 R3 m' J: T1 @# }# n! b
(setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))5 J( y( S x5 t+ C$ e t
(ver_pt2 1)) l$ I1 U1 p/ }/ Q2 R2 ?
(ddsolid)4 Z- a- _& G% m: l. J. T
)2 F# ~' [( |/ n& A7 r# A
)
- C( }0 n$ L% W (if (= dialog-state 5)
, Z. h- ]9 |; z (progn
* B( P1 {$ Y4 \6 @ (modify_solid)4 S2 @4 I5 F$ p+ L- ]
(setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
7 Z2 A9 D2 j' i3 C (ver_pt3 1)
/ z% y: X, R- ]3 N4 H (ddsolid)- A8 C8 u0 v4 `" ~0 ?+ b" Y3 w$ ]
)
' a' |1 T6 b; J* A6 S )4 N/ k8 f3 q: I/ s
(if (= dialog-state 6)$ Z; L7 C# N+ l" w- A
(progn
; W4 K) _) h9 `+ _/ Y$ D" E( w (modify_solid)
6 Q/ V, Q8 Y% h0 V: I8 ~ (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
1 X' I% o: B/ f, ^ (ver_pt4 1)
6 ~+ i$ m( I- r. X' \ (ddsolid)
' |* Y* A: `" X1 P! U {7 u0 q! P )/ P8 n! L- n6 E# P# |
)
& w1 O7 T. ^: t4 I+ U) b! H- r8 ?1 O )
) M+ Q) v' q0 C7 r. [% W/ n j ;;
# {5 J: q1 }) _) z ;; Modify 3DFACE1 V$ x& g; E( T) j8 @* C. [2 M
;;
6 c+ H2 r) d, ^* U7 O ;; Check visibility of edges' _- w4 E( F' O% Q" q! t1 l8 H5 ]+ ^
;;4 w1 d- \: B2 I y% e' t5 ~ y( a
(defun edgetest (/ bit1 bit2 bit3 bit4)/ V- i$ d: h! t( k# e* D6 _
(if (= edge1 "1") (setq bit1 0) (setq bit1 1))8 c- Y% k& P" w+ f
(if (= edge2 "1") (setq bit2 0) (setq bit2 2))
+ J% j9 R7 Y+ N1 U (if (= edge3 "1") (setq bit3 0) (setq bit3 4))( d( Y2 V; D4 G; b7 G
(if (= edge4 "1") (setq bit4 0) (setq bit4 8))9 t8 L! S f" C E9 B) p$ d
(+ bit1 bit2 bit3 bit4)( Y7 U7 C+ i) N) V8 g4 T3 ~* Y
). k0 R- i) e+ m3 e; W8 [' H2 O4 V8 ]
0 W" t' U; \ ^" h7 ^, J) Y
(defun modify_3dface ()
/ e! E, I1 r0 d% ^) V (modify_properties)) @2 |' n% K4 V
(setq pt1 (list x1 y1 z1))
6 Z; |" g* j6 Q% k3 [ (setq pt2 (list x2 y2 z2))
4 O& e' q8 Q9 `5 s2 L9 C& K (setq pt3 (list x3 y3 z3)). _1 J2 q0 q4 q0 @' V6 W3 B9 {7 R
(setq pt4 (list x4 y4 z4))
$ @& t+ o \" ?" H7 H6 s2 Z (tempmod pt1 10 0)% x3 N* q, N4 B8 p/ \) M
(tempmod pt2 11 0)8 ^1 j ?/ k9 R1 V, a; {9 v7 L
(tempmod pt3 12 0)
, u& E \0 `" P. S (tempmod pt4 13 0)+ E' Z+ T/ B$ \& s) P# S
(tempmod (edgetest) 70 nil)
5 x( h1 R# X; n, r (entmod elist)3 u4 C! {+ X$ l; d) D
)
: Z9 t( g1 I; D
7 Z1 ^6 s0 l) D+ ~: z# R% \ (defun dd3dface ()% w- W n$ k/ K9 v
(if (not (new_dialog "dd3dface" dcl_id)) (exit)): _* p. e1 j w( }8 _/ k
(set_tile_props)! B* u$ \% v. j# d% d. V6 V
(set_tile_handle)
* s F4 `* m# N6 k+ w (set_tile_pt1 0)3 c2 d. f9 _* {5 L! W" D* [7 @
(set_tile_pt2 0)
7 L I1 b' w' j5 ]+ o/ I- }9 d6 w (set_tile_pt3 0) ~! k6 i& z3 y6 U. N+ p/ \3 W
(set_tile_pt4 0)
( B4 J# ?$ P( W& [ (set_tile_edges): w" ~4 n7 X; w6 {; e. r6 U# G% `
;; Define action for tiles9 c! ]4 _3 h6 O% A
(set_action_tiles)9 @0 X/ O9 Z; Q, ^6 y9 W
(setq dialog-state (start_dialog))
9 H6 Z# v. h7 C- S3 t (if (= dialog-state 0)# x8 f! U8 U& F; Q
(reset)
7 Z4 [# J% E& y )
# N$ {$ i D* ^$ R: J( h' { (if (= dialog-state 1)
' |+ [/ H3 O1 v7 B- W0 k (modify_3dface)
9 {% L! |. G+ x; [6 A )3 I. ^, y K- `! [" k" O
(if (= dialog-state 3)
& q( G. F: i- f- D (progn
4 F" e* a/ N0 v- y/ N, j (modify_3dface)2 R. p5 o' \9 m& ]
(setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
1 P7 w F8 r4 ^0 D (ver_pt1 0)
; ]0 V, l& P c: ^ (dd3dface)( ~; p4 p5 P2 `& M# J, I& Q* x- p
)( `# k, r P% E! t3 P* W
)2 J( a- L% v$ V! l- D5 W
(if (= dialog-state 4)
; D& o+ F0 Y$ T& A) G (progn3 R p/ x, k- ]9 G; d! T# n
(modify_3dface), H4 b6 H; O$ P0 c
(setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: ")) e$ j5 j7 G. f- V0 s/ |0 [
(ver_pt2 0)/ t' c8 K6 k9 m5 o, ?- O0 \
(dd3dface)
8 Z/ A# Y4 w4 ^, W! _8 b )6 ]7 f+ |' K- c! {
), M+ V4 m" V) d Y7 K
(if (= dialog-state 5)2 W# [: r7 R. b+ Z) v0 m& [
(progn9 ^5 A0 W2 u: d+ i- K% C: u2 l$ |
(modify_3dface)
8 F+ [3 _) e$ c7 a" ^ (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
- K6 f# r9 K5 E9 V0 a$ J0 G: x (ver_pt3 0)
0 V9 O3 O5 J6 i# ]# u) N (dd3dface)
+ w- O) t$ C: [4 W6 s' x )
# L3 p* {& f7 c* Y: H+ A )
% d' U* y- C4 o: O7 `, N* p: T (if (= dialog-state 6)
- z0 \5 I4 v: l* j3 z1 N# r- p9 \ (progn
/ q4 l3 L t m (modify_3dface)
4 ^6 \+ z+ U p9 w5 H8 V% J (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
0 \$ S5 O" X' c4 V) z6 [0 f (ver_pt4 0)# ^1 B/ V: j: j# n) u. X8 l
(dd3dface)0 H+ W3 {7 i1 _
)1 m% a" c4 I& x1 X: H+ H
)" x. \0 I5 e& S8 _6 J( [
)( a$ _% A' l7 t6 E/ ~8 g ]
% [. H9 ^# A6 l; }$ w ;;' T- e L9 _! l* A0 N
;; Image functions% {, B' ^/ Y7 }5 x" f7 M
;;# _: G9 w+ A4 \, t& a" z! v; A
(defun image_scale (/ upixel en n userscale temp)
4 `- F6 A; o: ?4 Q ;; Calculate the size of an image pixel in AutoCAD units
- {) Y6 |, \% G- A4 p$ b (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))7 T2 z/ A& W) {
I0 u- H+ _9 _1 `! Y6 E2 ^ ;; Retrieve the user scale
$ P7 u6 ^: F% h; l/ y (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))' i2 w8 ^% c. Y B) J
. P' K2 W+ w& O2 H7 ]
;; Next, extract the image units and pixel resolution; q5 J W9 Q% O0 i! R2 {5 t8 m8 y }* f( u
(if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
8 S( K. i7 E8 S3 x$ k$ b (setq image:scale (* (cadr (assoc 13 elist)) upixel))
8 h) y, h4 M7 W (progn
/ ~% g) s2 j) U) [; Y ;; Convert the user scale to the proper word
; P. H. A( R/ y# @0 P9 h (setq n (cdr (assoc 72 en)))# @9 z, ]( z6 y# }0 m$ e
(setq temp (getvar "LUNITS"))% B* a+ M6 A+ `. t
(if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))/ |* q$ l0 S% P5 x( j
(if (= n 1) (setq userscale "Millimeter"))
3 I5 q& e# a) k) j (if (= n 2) (setq userscale "Centimeter"))
. f V, u/ N) M1 h2 u e& p (if (= n 3) (setq userscale "Meter"))
1 Y: W, Q' ?" |) U (if (= n 4) (setq userscale "Kilometer"))
' V5 U8 }9 z* C" i8 A! X4 } (if (= n 5) (setq userscale "Inch"))
3 z( p9 {1 ^4 i (if (= n 6) (setq userscale "Foot")), P/ g; s _6 o. t9 b a( w5 y3 n
(if (= n 7) (setq userscale "Yard"))! T+ U7 B2 ~2 ?7 F
(if (= n 8) (setq userscale "Mile"))- _0 u8 k8 P1 Q4 _
(setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
5 B5 Z3 h9 _' _- J$ L, N )4 o& L$ ^7 b9 E! x! @5 z
)
0 }9 ]. r! O% d/ l9 X6 d )5 H$ T, c5 S% Y/ k4 |5 q# T6 E
9 I& O1 B O4 o ;;8 q$ j+ V4 ~* i
;; Scale factors for block insertions3 M7 B H# C6 I1 h) l0 Y
;;- ?. N. I$ h4 K& T( g- |
(defun image_set_tile_scale (/ temp)
8 K* ?% W( R" r7 ?/ W) Z (setq temp (getvar "LUNITS"))! f% D$ a B& A+ r6 E9 J
(setvar "LUNITS" 2)
- W- l- W% }3 J& H' M (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
( f/ ? X( d* x3 |+ G (set_tile "wid" (ai_rtos (* image:width image:mult)))
3 h8 N! @6 k) e( W% d (set_tile "hght" (ai_rtos (* image:height image:mult))); X- a5 D0 z& j, W+ U4 ~
(setvar "LUNITS" temp)
I! e. t5 @4 ~" w' Y/ g) U! H )3 G$ }) ]6 z1 v! u6 ]3 j
4 U8 Q7 Q# V8 m+ {& I4 N' I) {* |# K, y ;;' c1 N' H7 t+ G3 Y/ @
;; Set the scale, width and height values appropriately.0 _0 }. O& u7 k% r. u& _. f% d
;;
4 n$ f4 b* B7 c (defun image_update (field value / orig_value new_value mult)( S }1 q# ~3 w, f3 F
(if (= field "xscale")1 I& R2 d) j+ Q& S/ d! ]8 n
(setq orig_value image:scale)
. S. u+ t( [$ C! G: q, Q0 V )
7 l o7 M/ l. t! b7 ]/ ~$ u (if (= field "wid")6 x, o4 V( o8 |% V, s
(setq orig_value image:width)
: U7 x( S S. l+ P3 I- r, d9 | )9 g3 @2 x( u" @
(if (= field "hght")* S {& u/ H: m: Q2 M
(setq orig_value image:height)+ N* O% S7 x7 _6 ?
)* Z( v; k; J: `. ]
(setq new_value (verify_d field value (* image:mult orig_value)))
, b0 U6 B4 E! S5 |( t0 [# E# I (if (/= new_value old_value)
9 p1 ~# ?% c! R l1 Q. R ;; Make sure the user has entered a sufficiently large value
. u x, Y0 r1 Y7 U (if new_value
& m& v( S$ F$ g f) {3 @ (progn
& u4 o& ~! T" p) { (if (< new_value 1e-8)
" W+ }! u& `& R2 o- }' S: J/ { (setq mult image:mult)
+ H- H) z5 y l/ U& s% s2 g* } (setq mult (/ new_value orig_value))4 \/ b! Q% g" |& N7 z7 A
)
, O. Z X. X' g+ U" r2 z+ k1 `% } (setq image:mult mult)
7 ?7 Z' p! g# R" C0 k (image_set_tile_scale)) j! a. g" F# B, J0 G1 Z9 ^
)4 r. g5 Z) w6 f: }+ b# W) n
)4 h p' j6 D& x( |% M6 _
)% f+ w% u! T9 O) q, j
)
/ y9 T3 j) x6 v5 u' X! a% n* I: j9 U) ?; ], E; }
(defun image_disp_opt (bit)# M; c( m7 `7 g: }2 d8 C2 n; k
(setq image:options (Boole 6 image:options bit))
5 S2 p" s3 l4 @3 s8 I3 X )) c6 o- U0 G1 |) m, ]9 U+ \
, k) N j$ |, U3 d7 \8 G
(defun image_modify ()
6 p: j# H" `8 h l) Q2 T (modify_properties)
2 d6 d5 X3 G* ?/ D" @ g (setq pt1 (list x1 y1 z1))
0 M* g* L5 t! [0 E m- O) Z, w (tempmod pt1 10 0)# y* C; K: ?. S: j
(entmod elist)
5 V% m8 W3 i7 Z) V; q9 _. J )
2 R2 I9 ~6 M& X$ u4 H1 q# K, H' Q% O" z) j1 p
(defun image_clean_variables ()0 G+ e6 r+ C- k g1 F# W' S
;; Clean up global variables used here& q+ X+ K3 u+ n/ y5 i1 a1 q
(setq image:scale nil)/ ]) m# J1 V/ d5 J- p! R* T
(setq image:angle nil)3 _. F1 v$ d$ Z) D+ f0 \: X
(setq image:width nil)
8 t5 q; T8 Z, V (setq image:height nil)) ]* \- i( \9 E
(setq image:options nil)
. X$ L$ ^: _( s2 V (setq image:oname nil)
7 R3 c' x* f/ l' @: ` (setq image:olist nil)2 V/ M# c0 k! r5 F, M' k# p+ D
(setq image:mult nil)% p k- j6 j' b7 H+ Z/ i
(setq st_ang nil)
7 s. t; [. h2 i7 C8 x/ b )
0 ?, F2 }4 Y, ~6 i7 E1 t) d
0 E) l$ x9 Q% J" v2 \ (defun image_scale_vector (v1 value): h0 D: n1 e- f
(list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
9 F3 u* Y& G7 B+ g2 p! i )4 |7 G% X2 p' t) i6 ]
0 k& J# T. y: \+ b# T }( r
(defun image_cross_product (v1 v2 / vx vy vz)
/ r& _ G+ \! m$ {3 Y- p (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
" l5 R/ s h; H& D9 ? (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))7 c7 {. q8 D, s m) E" [2 x/ e' b
(setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
+ t! t( e. T% L+ d& F$ k; l (list vx vy vz)
& d4 m4 |) n- s, G. D# n6 X )
9 r1 Y. ~ f, X& k
! |- @' t+ i$ F' ]' e (defun image_dot_product (v1 v2) e) H/ m# Q+ ~( d5 D" X9 a5 b: y, f
(+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2))): @" Z5 @* h, B7 i) w/ B9 R% j. ?& l
)$ p" c$ O) P% e2 C
" g: T" `' Q' @ B5 g( \$ o (defun image_add_vector (v1 v2)
) B2 K+ w1 ^$ M" m3 a0 h (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))* @6 ?' C' I V( X6 W
)
/ l; ?" M& i' q8 ^/ B5 H, n8 S& L3 F1 X0 u: R9 M v
(defun image_subtract_vector (v1 v2); e4 ]1 r2 _; p- i! [5 R. N3 @
(list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
; b/ f/ z/ j* b: U) H )
4 }1 [$ A* Q, p
0 B) E2 w6 T. h0 m! k. _! r1 ~ (defun image_normalize_vector (v1)5 l9 J5 ?3 q9 X
(image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1)))). ?8 a& g. F/ F. o/ t5 B
)8 x' m: D2 r3 ?6 L$ [: e
% _' o2 W* ^! s T5 p) w (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane); u& ]- l( t0 j! J
;; Normalize the axis* o+ O/ D( j! v/ M
(setq axis (image_normalize_vector axis))
7 q' K/ @: z7 H) D5 s8 r (setq along_axis (image_scale_vector axis (image_dot_product vector axis))) N7 c' m& C7 f' W3 O" A
(setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))* K o. O9 }/ h! ^. I2 J3 a4 |
(setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
$ p* z. ^8 V, a2 A- {" B) q. B (setq in_rot_plane& |( w' v/ I- H8 |9 q: z
(image_add_vector
# J( }. F0 P+ Z, W7 A g- T4 ]$ u7 ? (image_scale_vector axis_x_in_rot_plane (cos angle))
! w3 E& z6 P0 L5 c4 e (image_scale_vector axis_y_in_rot_plane (sin angle))
3 c" q6 ^2 O. q0 Z( }5 e )
: @5 c+ b6 V u* x9 G7 c )
& w S J+ W$ N7 T [9 S; K& k (image_add_vector along_axis in_rot_plane)
0 k' } j$ I0 }4 }9 {8 n* ^ )/ z: S) C: g) n" t- @
* ?( l' {' y4 k( \5 H2 ^
;;; ^/ }, `0 t: R; b
;; Calculate current rotation angle if appropriate.
( _' B* l7 M' _3 H G2 V+ K! z ;; If not, grey out the rotation field.
/ S5 K3 }+ A' |& |# _* r ;;3 F/ |4 R) j1 }! S( `* D5 Y! z3 K
(defun image_rotation (/ normal rlength zlength sqrt_tolerance)
( @( O" k7 I, _" T ;; Determine if image normal is codirectional with
- _ \% L: k9 g6 R5 G" L. m: I ;; the current UCS Z-vector.) h8 q" l. |. ] T1 K
;;* V, s8 U/ h& g, v* H. q
(setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
7 F$ d E" C! O+ [; i (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
% ?, u! C: @5 `, ^ d (setq zlength (* (last normal) (last normal)))
& s8 Y: J# G% E ;; Note that the value .0001 in the radians is approximately 0.0057 degrees., O7 G# c( [6 {8 A! D
;;! ?6 I/ h1 p, h s8 E) \
;; cos(.0001)^2
1 T. ~; T5 A0 C ;; Tolerance = --------------
' r& ? d; g8 W9 T& i ^ ;; sin(.0001)^2% h. [: \9 U# h$ y1 N
;;
% ^' Y* |0 p4 I; f$ C0 W# J3 {9 u (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001))); `/ U' T4 Y& n& V3 ~- W, A7 _* `
(if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
" ?* _/ W4 d2 [, G (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
+ b( c$ P8 X2 N1 s (progn
8 S8 E9 L/ _2 z" b$ L5 `5 i (mode_tile "st_ang" 1)
6 T( t/ M c/ y) T9 u( A (setq image:angle 0); d% P6 i- k8 [7 A, f0 S
)' y) ?% [! d* ?! o- n. a
)1 w9 X3 q( E3 G: R2 P
). r% b, K/ n/ b( t0 \7 B
3 M3 \% M* }+ R% x# M" f ;;# ~8 U6 i+ z. |2 w- n6 M
;; Modify Image3 L4 ?, @8 h8 G {, y8 M$ K# u6 j
;;4 I, X4 ~: f. e: ^
(defun modify_image (/ u_vector v_vector z_vector)6 j3 r; q; p( F, q7 b8 h7 E
(modify_properties)7 v7 R9 n+ ^6 U% t5 S* k' e
(setq pt1 (list x1 y1 z1)). F: l% }& @# `
(tempmod pt1 10 0)0 k; h" x1 b. `- b/ M
;; Make display option changes to image
# ~4 d! q. Q6 ]/ `0 i9 K (emod image:options 70)
! J3 _8 B/ P \4 V& V ;; Get the u and v vectors+ t, ]% E& R+ K/ K2 _
(setq u_vector (cdr (assoc 11 elist)))
9 S5 W7 G! S" ?+ f* Z (setq v_vector (cdr (assoc 12 elist)))+ A: ]+ a8 b- I4 K3 u: t6 V
- A% l* M$ k% m- e9 x ;; Make scale changes to the vectors& x6 X. T" O% S+ f
(if (/= image:mult 1)
2 U8 @& T) G5 \8 K" u% l (progn
0 @/ l1 a6 h+ J+ }* [5 P7 S' n (setq u_vector (image_scale_vector u_vector image:mult))/ H$ z3 t) g; \/ M2 @# |' U8 N; O
(setq v_vector (image_scale_vector v_vector image:mult))
( v8 G; l8 O( C- g )
4 Z9 Y( |) C+ A )
' Q; X1 e2 h% n8 v' |2 k8 h- ]$ y/ ] ;; Rotate the vectors: H' Z# J3 O) T# u% ?) z2 w
(setq st_ang (- st_ang image:angle))" ]& {2 ~, U. u# y" }- Q! L
(if (/= st_ang 0)8 I6 ^$ }$ o9 l8 S. ^
(progn
! g# G0 F5 u" D- x# ` (setq z_vector
0 X; p2 o$ h+ e' Z8 Y4 U (image_cross_product$ V( o5 G7 E9 l% Z5 N4 B# P2 J! I
(image_normalize_vector u_vector)1 J% P7 _. |, m: }& ?( H
(image_normalize_vector v_vector): G! k: h. M3 t+ B
)+ ] y, B4 R' [' B4 t# a/ Y0 z7 ?$ H
)
# ]4 C; Y( Z+ r2 Y- v0 @. | (setq u_vector (image_rotate_vector u_vector st_ang z_vector))0 }' C0 I* L4 F8 C% P S4 Z
(setq v_vector (image_rotate_vector v_vector st_ang z_vector))
" {" ?( C! P1 q8 \* h! } )
; v- H7 Q$ w+ | ?) ?6 G- T )
; R- p3 s8 b' g7 j0 W. w; A (emod u_vector 11)/ y3 J- [3 L. q( J' r' S2 e
(emod v_vector 12)
" C8 t" L N: p! M3 G3 G2 K7 I (entmod elist)# C% Z4 h* E4 N
)% N4 L' R. h: L. F( j
9 B) [& q8 b7 p6 N. p
;;1 O: S- Q+ l+ y0 u& u
;; Run imageadjust on given entity, working around possible
. d7 h5 t- ~' n3 k ;; re-entrancy problems7 e) r- }6 q$ T
;;
% t$ j @, b7 U (defun image_adjust (ename)0 Q! x6 w/ I6 J1 i7 A
(verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
7 O; {0 k" e# A' ^& R7 B (imageadjust ename)( r# z# e! G2 S1 v3 G
)6 J- ~5 Q& `2 _: D$ |1 V% |) A
4 F' O6 `. t' h8 b$ G
(defun ddimage ()
* K. ] c0 [5 D4 G (if (not (new_dialog "ddimage" dcl_id)) (exit)), I$ L. N2 B( s2 |
( e/ `3 b4 i R+ \ ;; Grey out the thickness field.
' H5 q/ @7 @7 X7 L (mode_tile "b_thickness" 1)
4 m1 v( q% s! Z7 q (mode_tile "eb_thickness" 1)
! @4 n/ k% Q/ Y' e; Z# X
0 P* \! u- Z4 C+ A/ d ;; Get the associated def object.1 H9 e# q8 S* ]- N+ e1 M" b3 x7 \
(setq image:oname (cdr (assoc 340 elist)))
. V5 T* L( b, o5 a8 o Z0 X; Z (setq image:olist (entget image:oname))& A/ C6 V: A) c0 C9 p. y n. O3 ]
, u1 [ F/ g# E2 C
;; Set initial tile values
% z% |$ l. U3 a6 ^( b6 k7 u (set_tile_props)5 X2 V( v9 o+ f- k3 ^1 _& @
(set_tile_handle)
) l# W- g& {6 `( K0 Q+ @ (set_tile_pt1 0)4 o3 _$ U8 r: M2 N
(setq image:scale (image_scale))
( \* z9 Q; }- ~- ]* x, X (setq st_ang (image_rotation))7 E: H& b! L9 ?, N7 o/ u
(setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))! A! n) S' g. z$ P& \2 ]
(setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))/ X" n8 f( [! i9 x% ?* s% j: D+ M
(setq image:options (cdr (assoc 70 elist)))
; q: S* j. c8 a3 ? {: |
4 c- n/ M4 I# k, \4 u3 \2 d ;; Record the last multiplier for use in image_update function
' T7 F7 m+ p$ @" u2 [5 C( ^8 o (setq image:mult 1) ?3 c4 k+ W1 q. u. w4 Z+ }
! K3 F! h6 y: X3 q- i3 D3 F, F
;; Retrieve the image name& Y2 D; u8 y* }' d7 f/ G- n
(setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))4 C1 f% ?; b% [: e
(setq flag 0)8 p6 d, d0 J X- Q" J
(foreach n fn" I% @4 C( H! O1 D+ j+ P, J! }
(if (= flag 1)
3 P G: ]: y( g9 y! Z/ B (progn
3 o5 @" Y) A& \- V4 q ;; Display the image name' V3 W2 r0 S# n! G' l
(set_tile "image_name" (cdr n))
$ l0 u: K) {6 e9 C3 N (setq flag 2). O6 z& g8 y3 p0 c/ s" e
)3 D5 ~) P. j) d/ b
)
. f' d! s* @- J' f# K, v: m3 M (if (= flag 0). a" J2 l5 M/ a1 @& D# @7 c; r; A
(if (equal (cdr n) image:oname) (setq flag 1))9 b1 k9 E2 i5 ]
)
0 l. ~( u4 ^1 G3 a! j )9 w) `& b3 i' s6 f. @. o
8 f% a8 W7 n3 z- l- X; r (set_tile "image_path" (cdr (assoc 1 image:olist)))
- j6 @( ?) H7 n$ n0 i7 ?$ f0 k (set_tile "st_ang" (ai_angtos image:angle))
9 o8 k% e; l C! F$ u' m; G( M (image_set_tile_scale)
7 Q3 S: u3 M# y0 Z: v1 ^! |5 X5 w7 ?7 m9 x3 a' j$ {8 `4 a
;; Check the appropriate boxes* S5 p, n$ w: r. S+ p8 g9 B! B1 {& @7 N
(if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1")), @) ~$ ~$ [. _! Y* ^6 U
(if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))' ^7 [7 f( g; t4 I$ }; H4 q: E
(if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))3 c) U# X# i, A* V
(if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))) @0 G5 ^; g) l$ u
' U! b, n/ e- }7 O, w2 d+ g" a' P ;; Define action for tiles4 U+ R7 c6 X2 i5 a
(set_action_tiles)! H) Z# V, _% s( i
(action_tile "xscale" "(image_update \"xscale\" $value)")4 Z6 K$ j3 Z8 S# y+ ~* N. v
(action_tile "st_ang" "(ver_ang1 $value)")
1 W' a- h* b$ Y; |' g/ P (action_tile "wid" "(image_update \"wid\" $value)")2 x3 x, s3 O3 P9 I: h* L& Q# Y
(action_tile "hght" "(image_update \"hght\" $value)")+ k* t8 v; j' Y2 a" C/ m0 ?
(action_tile "image_show" "(image_disp_opt 1)")
) B4 \7 ?# U# z3 L7 C$ T4 @# |! ` (action_tile "image_non_ortho" "(image_disp_opt 2)")" _- b3 d' P% I$ K: M
(action_tile "image_clipped" "(image_disp_opt 4)")
2 C* @* g% K7 _3 a. e (action_tile "image_transparency" "(image_disp_opt 8)")
) ^6 O+ S2 T; a( j: x6 W# ?8 I (action_tile "image_adjust" "(done_dialog 4)")
% d6 U9 o1 l* ^
5 x8 L) X5 g& v4 A* H7 X (setq dialog-state (start_dialog))$ P$ C2 \4 a; ~+ @( t+ O6 B% d
(if (= dialog-state 0)! K' m( x; l8 M$ f$ y M
(progn
! U9 d$ g: h4 @- j5 {' a$ Z5 O (reset): t. V% p3 d5 }; F
(image_clean_variables)8 n0 ~0 @5 v; W, y
)
) O, ~" h& R4 p8 @ ), R# S# V, U0 O4 I2 p" X0 k8 D
(if (= dialog-state 1)
8 [9 ~& ~8 u4 D! q (progn
) |) K4 l7 P% N, n: V. R1 x# P (modify_image)- A3 R0 |' |# H" Y: x. f
(image_clean_variables)
7 v5 c+ d c8 D& J$ e )5 h/ r6 i$ j: Z( n- B
)& \5 Z: w" [+ b- ^: P6 `$ f
(if (= dialog-state 3)
: T2 A1 U) j+ `) N. o (progn& U# _: ~6 [ R4 ^7 ~; A4 _! X
(modify_image)
9 k3 J9 @, J/ z0 }( X (image_clean_variables)' ?; O0 M7 ~, V4 D6 t5 s# s
(setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
" E$ A0 A) Q& ?# m k8 s" Q* u (ver_pt1 0)% }& E" a, f6 V, M* ~4 |& e/ l
(ddimage)
, c8 E2 G1 z |, B g )
9 X6 R+ x9 c H$ W )2 N5 T" m1 }% c, M8 N4 G
(if (= dialog-state 4)
: g+ S3 l. K# n- y, ?" D! X, F' \ (progn% W. g6 x9 V4 ^# Z8 C* e' ~% Q
(modify_image)
; a: q0 H/ q: _* \ (image_adjust ename)
, R8 q% i# F8 `2 R( X3 Z, \( e U (setq elist (entget ename))1 G2 B9 Y' F5 I: T h7 ^* H6 F B
(ddimage)
, E, ~8 c' G' u, x! g; k2 B3 t' |8 l )
, T* ^5 E6 _0 z0 x* ]2 S1 l) k# B )2 E3 d! H i9 g8 M, {8 l
)
* F6 n' P! g3 a
! w1 @+ {% ?: ^! e3 N. j8 V6 ]8 l ;;! [5 G, ` B+ K* ]# g
;; Modify BLOCK (and its Attributes, if any)
* D9 H* C* g% L! [& J" s. W ;;
6 w8 ?* J" w$ \ (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr& P& V, o: m6 r# W
new_wid old_wid old_rot scaling old_scale
# m3 G; g) d( o xdelta ydelta zdelta xbase ybase zbase ipos)$ c2 ]) H! J3 h1 T% n( [; Y
(modify_properties)
, {. r# o; m8 `% U/ D
) g- W* Y8 C) p3 w2 Z ;; First, translate and scale the Attributes, if there are any.
( c" ?. S1 r4 o- T" g1 O( Q" j (setq old_rot (cdr (assoc 50 elist))# i w! N2 p! X8 S/ _+ G) t* u
old_scale (list (cdr (assoc 41 elist))
) ^6 d b$ Y8 N (cdr (assoc 42 elist))9 s/ S& ?5 f! x; R: x
(cdr (assoc 43 elist))
. Q0 B! x0 I; e, \7 f )
7 h% E; E- @5 Y3 E/ }9 D# _ scaling (or (/= xscale (car old_scale))8 t2 p( D9 h8 q0 @1 c
(/= yscale (cadr old_scale))
8 B# a" T% f k* u2 N (/= zscale (caddr old_scale))
' M s! N- s3 j X* O )+ [" S3 f/ q6 t r
attr nil ; No Attributes modified yet
( G# T% |$ r$ s )- b! N* P. ^' e5 Y& r
(if scaling
+ L) G* I4 r2 z! s6 e" R5 s3 C3 p% }, ^ (progn
s4 f5 l" J: f, K6 T, ^, k (setq xdelta (/ xscale (car old_scale))+ w7 n: L9 J2 Q
ydelta (/ yscale (cadr old_scale))
0 B6 V+ I. \6 V: r" T zdelta (/ zscale (caddr old_scale))
5 Q# U5 J+ [# N5 R( x ipos (cdr (assoc 10 elist))5 v/ }' i+ H0 r( c2 Q
xbase (car ipos)
" e0 D; W& V3 W7 o ybase (cadr ipos)
: C# F' ~# N) Y6 D' @ zbase (caddr ipos)6 o5 `; a6 v' X8 a2 c
en2 (entnext ename) ; First Attribute* |2 f& Z" [) U. x. X& |: {* Y
)) Y1 B( K) N+ q# @' n
7 _1 N4 n! A9 \' f+ ~* r! }; | ; If the Block is rotated, temporarily un-rotate it, along
! e, g8 H( [& ? ; with all its Attributes, so the scaling/translation of the
# O4 X9 ]2 w: U: b9 v ; Attributes won't have to take the Block rotation into account.% M" m: c2 @" V+ C8 o N" q
(if (/= old_rot 0.0), H/ c5 |/ L& t" O
(progn
. }# Z( T6 B- T0 r8 d (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))9 Y& L% |) w; F" ~
(setq old_rot 0.04 e) ^9 M& m2 O/ p; f1 q
elist (subst (cons 50 0.0) (assoc 50 elist) elist)( e) @8 a7 Q7 P& s) ^% o8 I& K5 m
)
7 Y7 n; y9 F S! m1 k! s" _ )( m$ A% r% h( S4 R4 X9 \2 U' y
) A5 J' C& a# s4 d2 l; n8 d4 F
- W; h* w: k$ S) v5 Y
(while en2! G& a: R* r) `' H- S! m+ \
(setq el (entget en2))
: e) ~( D2 t: u& [0 C6 F8 n (if (= (cdr (assoc 0 el)) "ATTRIB")+ `3 ~: M) k: b' Z& s
(progn5 @8 I6 l- R6 N ?( |$ w3 t
(setq old_hgt (cdr (assoc 40 el)) ; Height
) |, I- I/ N8 M old_wid (cdr (assoc 41 el)) ; Width-factor
4 g# b% [- }. q oldp1 (cdr (assoc 10 el)) ; Generation start point2 K3 W1 o/ G; a8 V3 P! }
oldp2 (cdr (assoc 11 el)) ; Optional alignment pt
% |- ~* T4 {# z7 H$ R ha (cdr (assoc 72 el)) ; Horizontal alignment( ~3 n( \; D2 n2 {& E/ Z P4 w
va (cdr (assoc 74 el)) ; Vertical alignment2 ^* u0 ~, Q& o
" c( m7 z& F# L* w8 n0 _$ {8 |
; Translate gen. start point
* {5 e0 J; e4 r1 u. h p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))0 F2 s. P5 P& a8 F
(+ ybase (* ydelta (- (cadr oldp1) ybase)))5 j! G+ i l) |* v3 ^, k# z
(+ zbase (* zdelta (- (caddr oldp1) zbase)))- t' X% Q5 I' P/ g b5 N
)3 U) H4 m8 X7 b4 l& v) G
el (subst (cons 10 p1) (assoc 10 el) el)9 L; G' e: J3 l. d* n+ ?
)6 V ^" T$ ?/ H1 Z
: r) Q% e; M$ B6 ^2 t$ B8 H ; Translate alignment pt similarly, if present and applicable) J' b/ F k# Y7 L/ {
(if (and oldp2 (or (/= ha 0)6 [8 V. D$ M# s7 d
(/= va 0)
. d4 X' w0 M3 ^2 l0 P )
+ T/ Y6 l, W$ w. y4 P9 u$ G( k )
6 W; l' c+ p2 X/ P& Q (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))% z* O! [7 ~* c$ E6 i* e
(+ ybase (* ydelta (- (cadr oldp2) ybase)))$ H U( m+ j: |/ h- j
(+ zbase (* zdelta (- (caddr oldp2) zbase)))
7 R* B7 S | k )
% A" P. ~. Z+ u+ { el (subst (cons 11 p2) (assoc 11 el) el)
2 d! n: l9 `# `* F/ i. E1 K )
6 `+ m$ \! a$ j" O ), q6 v- P# K/ p4 A4 u9 R+ v
: G/ V1 R( w: |& g, a
; Each Attribute's height and width-factor were computed
1 y$ c2 P# \2 t+ N: Q. N! e& Q ; based on the Block's scale factors. Adjust them now,
T! ]- q4 v7 A# E ; by first reducing to values for 1x1 scale...
4 P1 k: i4 j: ~. D2 P7 x& n" M (setq new_hgt (/ old_hgt (cadr old_scale))
$ ^# j8 {2 B6 E" ?! m3 O new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
& j$ `2 Z0 g/ a% i' ~3 d: X )
, H% W5 ]: \' v ; ...and then rescaling.2 Q6 X9 ?7 a, G. y8 {% O
(setq new_hgt (* new_hgt yscale)
( M& w* @$ \8 p& b, T new_wid (* new_wid (/ xscale yscale))& F( X D7 N+ ~; y2 p3 P
)0 I6 n1 q+ |# T8 N
(if (/= new_hgt old_hgt)7 X% v2 w" ]3 q. Y3 h
(setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
1 q1 a$ g! Y4 I/ P" P )
. V9 L4 s V7 K1 p Y" R, M8 T (if (/= new_wid old_wid)# t U7 G V/ r3 m7 F5 @0 n
(setq el (subst (cons 41 new_wid) (assoc 41 el) el))
- Y* I% E7 H: o# M4 S9 Q )
, [- O$ R/ D% O/ F# F* s n& o# _ (entmod el)
. a$ y4 e5 Y4 }5 i# W1 z/ w (setq attr T ; At least one Attribute modified- C _1 O( f9 m3 c' f( j5 @
en2 (entnext en2) ; Next Attribute0 h4 g& c& D" [* N [1 T! d
)
) U/ S' B1 I% w4 i; l )# J7 {4 i/ s$ M4 u
(setq en2 nil) ; No more attributes4 _: u/ M# H7 }( ?+ o1 T$ I
)
5 |0 u6 c/ Y6 F, s* L7 v1 Z )
2 P" k- L, Q' Z+ O& K0 ` )+ p( z& I' t: |; @
)
- t- w( }, Q) k
8 r: R. K" ^% } (setq pt1 (list x1 y1 z1)) M* l6 E* N" l( [1 m
(tempmod xscale 41 nil)
! i) N+ F- m0 C (tempmod yscale 42 nil)
3 V3 z$ b5 a1 V' p- c (tempmod zscale 43 nil)
# w8 l3 m J5 j9 c1 e# X# A (tempmod col-sp 44 nil)2 f( P# R& h8 H& G+ ]% e! D
(tempmod row-sp 45 nil)
9 y, ~6 m2 N5 _" [* x& L) x (tempmod columns 70 nil)
. {& h* z% r# |5 G9 F- ]4 c. l (tempmod rows 71 nil)
. o& ], O( K. M, S1 W) K/ v (if (= xclipmode nil)
6 k8 |3 k/ O2 \4 A+ q- t0 S (entmod elist)
; K7 m& Y- |- {3 r# r7 @# _! C M (setq xclipmode nil)! A C: B: n2 \9 `# h
), F9 f( L8 y) x- N
(move_pt1 1)
) f+ K$ z" E+ m" d: w h! v2 C) I& P+ Z" m; c
;; Now do the rotation with the ROTATE command.
( T9 o: [5 J, U (if (/= old_rot rot)
) m( [1 l2 f1 S6 a3 U0 E, d (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
1 Z5 n/ n! U6 G- Y- s9 E (if attr ; Else, if attributes were modified,
6 j0 e7 x" q! o1 i" ^4 G (entupd ename) ; just regen to force attrib display
- V" O9 f0 G" y. `/ [- a+ s( { ) f4 l9 Q/ ^$ Y# A5 q
)
% g: m) |) Z- X0 m2 Y9 r (setq elist (entget ename))
& h! J- E% I, c- _7 w ): d( S& I" B( w3 g- o+ M
(defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
3 P8 O. ~: f+ P* f& _; D- D# H( ~ (setq newhatch 0)9 \. U& g3 n h, Z4 g
(setq blkname (cdr (assoc 2 elist)))
1 c- x; t$ }; @$ {2 i3 _) h# j (setq blklist (tblsearch "block" blkname))) H. |. k1 T3 r
(setq blktype (cdr (assoc 70 blklist)))
5 s: s2 y1 U+ N. x (setq xcliponoff 0)
; e) f/ [! k# L6 |/ e" ?0 k. ~ (if (or (= blktype 0)(= blktype 36)). ?- H9 p' h+ V; p# r8 n* P6 V
(progn, b; G5 L0 P% N' r; S3 F* p
(setq xcliponoff (xclipon elist))
0 p3 B, u, ]* o! P (setq temp_xclip xcliponoff)% ^; k0 W( I$ `$ n2 _$ t: g
)( I8 b: Y, A) Y: Q/ _" m8 L
)5 n& S( R# Z7 r3 C! ^
(if (= (logand blktype 4) 4)3 s+ a/ L" i7 E5 Y
(progn* v' g& b, T! {/ U5 c3 _8 h2 B
(setq xrefpath (cdr (assoc 1 blklist)))
, E; N# f M3 V# Y- q (setq help_entry "modify_External_Reference_dialog")
9 [4 q, B. s1 Z7 {( \8 Z (if (not (new_dialog "ddxref" dcl_id)) (exit)): o% P' {, F9 V7 ]- ] i1 l& p
(set_tile "Bl_name" blkname)$ N/ U. Z( B% M+ P! M" w
(set_tile "path" xrefpath) r; R- S8 |6 W }' p' H+ D5 R
)& P5 [5 r1 z& C# _: [! Y
(progn! ?0 a0 z* f: c& C, }' N
;; Get program name for use as Xdata app name
. N3 N# C. z1 ^& d) T) d. g# h( {% W (if (not (setq program (getvar "program")))/ B$ @3 Y) b `) x" L+ m5 Q
(setq program "acad")' @) K: M4 b+ w X! O
)
+ z& d* j3 j6 _2 } (if (and (setq temp (assoc -3 (entget ename (list program))))
4 i! K7 w: n* Y( b$ t4 S (= (cdr (assoc 1000 (cdadr temp))) "HATCH")' e( g: l# F, C* ]# _: S. ^* @
(assoc 1005 (cdadr temp))7 j( d7 J( x( Q9 l' a
)# g, t" N) m/ @5 S6 k/ p% K" Y
(progn
1 X& n& v0 i7 s2 F/ E (setq newhatch 1), m1 U, o$ A' m! t& E4 c+ k5 C* @% G! f
(setq help_entry "modify_Hatch_dialog")
& X: b4 D- I/ F$ W ;;; convert the object into a new hatch9 o, _4 F& G/ A x+ |/ N, T! n. h. |
(ai_undo_on) ;; enable undo1 s: ~7 C: F. [# y" t+ p3 r4 A L; B6 ^
(COMMAND "_.UNDO" "_Mark") h# F7 ?! n$ J8 u* m* R
(COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")( y$ x1 q. F- N
;;; suppress nasty message from convert command+ d3 w& [9 H: L5 f/ `: k0 U
(princ "\r \r")
7 E4 \8 f6 e/ i$ H (setq elist (entget (setq ename (cdr (assoc -1 elist)))))6 d/ v u9 l2 i
(setq old-elist elist)
8 r! N! O) \ Q2 ^0 ~7 @* E ;;; If we have cancelled ddmodify/ E P5 h. M' U0 M9 {
(if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok U& X# ]# b/ C% L1 B
(command "_.UNDO" "_Back")
1 W& }5 g# u: j: D" e: d )
1 n4 N. M! S" N! s (ai_undo_off) ;; restore undo state
6 `3 H/ M! _* ~ )9 C, ?- {5 D2 o9 B. X
(progn( y' @, x( O7 v! c) W2 i
(if (not (new_dialog "ddblock" dcl_id)) (exit))
9 y0 l9 Y( W& r) L. H6 p- G. _ (if ( = "*" (substr blkname 1 1))
# E/ y+ e4 W: M5 R9 P% J& i (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
+ K2 q O8 j) B; _ (set_tile "Bl_name" blkname)
k* Z' d. c! E ): x* B& R/ v" w9 U$ z! A4 K
(setq help_entry "modify_Block_Insertion_dialog")
9 J! Q* f& h6 C3 q )- p" D% p g( A- r( v7 D
)
: l, t. ] J5 Z% ^: a, A )6 E$ z! C) x/ I. P7 t1 A/ ]
)
* v/ i0 I1 J( _ (if (= newhatch 0)
5 [+ o7 v9 `& p5 [* l (progn- U# ^1 a4 ^" m4 ~
(set_tile_props)
4 D8 M1 d; h+ F% \+ u5 ?! }3 j (set_tile_handle)
0 |6 W- [3 L u8 Y. W (set_tile_pt1 1)
" O0 A8 F- {7 F5 n; S2 c (set_tile_rot)
2 _( b9 c2 s+ j+ c! {1 z& G- p# E (set_tile_scale)
0 }) b& R) L A4 J! Y- q6 t (set_tile_rc)
! M! z4 z. k% l7 f (if (= (logand blktype 1) 1)( R& g9 y& `) w" k0 `: c; [' T( p
(progn
, i# |' X% y# A7 {* M: N/ b# e (mode_tile "xscale" 1)5 `% ~) S) W/ z" O5 _& q' c
(mode_tile "yscale" 1)
% v5 J5 R* J8 h9 @ (mode_tile "zscale" 1)
1 W& _' E/ P! p. c* I6 N5 W (mode_tile "rot" 1)
, B! g, D- \% U: j- ^0 Z (mode_tile "columns" 1)
/ C. L$ g9 X! _ O2 e (mode_tile "rows" 1)
v1 H( ?7 l- |" D5 [! F, b( D (mode_tile "col_sp" 1)/ \1 e: F' I, Y4 w! |! v
(mode_tile "row_sp" 1)
; C! e- E2 S f0 X )
9 z; o$ w/ ]7 w/ l. F )
( B0 z! }; ^. m" g ;; Define action for tiles7 g% n! d& E4 v0 k7 k
(set_action_tiles)$ U/ ~ Y2 r8 g
(setq dialog-state (start_dialog))
7 M& X: d, B4 C' Q (cond
7 C; M' H; ~3 X- K3 |7 D* y ( (eq dialog-state 0)
% O6 f8 ?, ^4 e Q (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1)), w z2 y9 D) J
(move_pt1 1)% n/ |1 V' ?( J0 a1 k; \
(reset))6 _- U, m2 t0 |8 b0 |5 A" N
( (eq dialog-state 1)8 w2 P& J( u7 f# ?
(if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
M* p `- ]1 l9 | (xclip)
: S) a) T& J- A, g5 O" x )" F# c5 V! ~- Y/ d# ~# {# V
(modify_block))
: y7 t1 }; N3 F5 ], R# o1 V3 {% g ( (eq dialog-state 3)5 m A& k" W/ F7 Q
(modify_block)# d( |" \+ i) i% V
(setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
# d& |2 X3 f; A3 }0 F( X& ~ (move_pt1 1)
" H" y9 w& V- L8 D0 Q |& N (ddblock))
" I/ j& C' E5 S ( (eq dialog-state 4)8 P' A2 C B3 \& s2 P! o0 [
(modify_block)7 G: B. Z9 ~3 Z% X7 X1 O w1 P7 u- G
;; Get current handle.
7 O7 i) j4 _. q: Q' |( O (setq hand (cdr (assoc 5 elist)))
8 y+ r" ]* h$ m3 w Q. v (command "_hatchedit" ename)
0 e# ^- f0 R4 g" f) j. [: F! P ;; If OK in hatchedit, a *new* entity is created and the old one
- M% C1 a5 O; c+ y7 b ;; is deleted. So if the old one exists, it must have been a& w; b+ \. S/ x. b+ l) s
;; so rest the entity.+ l% c1 E3 u1 H- ^
(if (entget (handent hand)) (reset))
2 |# Z# {$ |% B6 x )) ?, M. Q# F7 C2 X! C. g! s
)
9 f2 h. D$ c% T )1 X1 T% l) @! a' |
)
* y: D5 {3 a2 t* t5 N; X )/ m, z! H3 \ ~" {
;;
" ^; c; E4 K" s ;; Modify SHAPE# t/ Z& Q" o( q2 { a5 c6 e" B& V
;;& k" M# w& Y/ J. j' K0 P
(defun modify_shape ()# R; g$ T1 g; ~7 O$ D" J; r' W
(modify_properties)! A0 X- x; C- D/ r
(setq pt1 (list x1 y1 z1))
7 Y9 B+ |: t7 l7 R/ u (tempmod pt1 10 1)# l' Q; J. D& p
(tempmod hght 40 nil)5 I" f, t' D7 b6 {& L
(tempmod wid 41 nil)' D) U' n* X$ R7 _
(tempmod rot 50 nil)8 Z8 |- E6 E( M/ I
(tempmod obl 51 nil)
; E. G) M4 \0 ]" p (entmod elist)
) h9 F0 R5 O9 K* t( D) h# @0 G8 P' [ ): g- b' Z+ Z M' i Q, ?6 w
! h* K, B: @% D* ~* d8 o5 V4 I% s (defun ddshape ()
( P1 y8 R# F$ C# L4 ~5 y- C5 d/ n( g (if (not (new_dialog "ddshape" dcl_id)) (exit))' ~. ~+ R9 X! O6 m3 f: c
(set_tile_props)
/ z2 Y- N3 u( O; q. r. N9 [ (set_tile_handle); V' W2 \$ K P9 k; X
(set_tile_pt1 1)8 h5 E1 K z# B4 B8 }
(set_tile_rot)
2 D2 w/ I8 q2 ]2 S (set_tile_hght)
* V7 Q' ^% K! c0 Y$ B (set_tile_wid)
6 }* L5 u9 K0 |, Z" {- U (set_tile_obl)
& v; P# ^ Z8 ^' G! B) [4 ? (set_tile "sh_name" (cdr (assoc 2 elist)))
! b+ { G% F4 {% e) c ;; Define action for tiles7 r" `" s* h( w# Y' M, H
(set_action_tiles)
# x& l% h" w( A9 o6 P7 C9 B (setq dialog-state (start_dialog))
; Z3 M' V6 r2 B (if (= dialog-state 0)
4 d7 V8 i4 W i (reset)
2 A, A9 M' ?/ k )
& S1 L6 v; x- V* v/ L. x (if (= dialog-state 1) o0 x- J) b8 z! l% T2 R
(modify_shape)
6 V# v3 t' q! O! H( u )
3 G: `( l- B$ Y. W p, F6 N (if (= dialog-state 3)
4 w( S# Z; _0 k/ K7 J- k (progn
' V4 p& x) A+ W8 {8 ~) M (modify_shape)6 z' ?# g/ R4 x1 R$ N
(setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))4 w8 N- U/ Y1 y) E; ~ M% |. j
(ver_pt1 1)6 [6 I! k' E: ?, E* h; T- I
(ddshape)
9 d- Z+ v7 p: Q0 y )
. i! Z* H: S* }* ?$ f! {) S% U ), @2 `8 K, v, x- d* h! l) p& I+ O
)
9 M9 ^: O& I9 ?, e1 M ;;
' \" A* H {: A9 T& Q/ x L ;; Modify TEXT or ATTDEF
9 q/ y8 b9 A$ k8 ~' V ;;
0 z8 |3 J4 [/ o* x0 s ;; Set bit code for upside-down and backwards setting
8 Z% M5 S# b6 {+ ], X! `" { ;;' d) l& Y) S! l* r" _+ n$ F
(defun code_71 ()
) X: R5 Y0 b! M1 J2 a (cond ((and (= bkwd "0") (= upsd "0")) 0)
" g$ X# N/ S0 n" `7 w' z& V* s ((and (= bkwd "1") (= upsd "0")) 2); [7 l/ b3 l& ~: N5 r
((and (= bkwd "0") (= upsd "1")) 4)
2 ^0 N+ [/ _) _( j ((and (= bkwd "1") (= upsd "1")) 6)+ h* X. S, D0 Y% }- a- j
)' J8 ]# \; ?3 o9 g% q8 E* ~
)4 [, w5 z# m5 V
;;
; f( g$ V& |! `# a- d( ~* @# t ;; Style action. Reset widget values to style defaults
0 s/ a1 I, C5 z ;;
- W7 v: ~& m \* @5 G, P (defun style_act (index / style-list)
# t0 B& _+ a/ C& i8 A; s9 M- d (setq style-idx (atoi index))
) C* g) n2 I, p& a9 x( [$ v+ _5 b (setq tstyle (nth style-idx slist))3 c: N) l4 F; e& t; _4 a
(setq style-idx (itoa style-idx))
- R0 R4 H& b- x9 G% H (set_tile "style" style-idx)2 l9 e6 M9 h9 D
(setq style-list (tblsearch "style" tstyle))
2 e% a2 m" m6 Y$ u* H7 G. j (setq shght (cdr (assoc 40 style-list)))& m/ O1 Z) i* g; x2 J* T
(if (/= shght 0)+ U* h6 X M* z3 E, \" D
(progn( N# L5 ]1 @- U
(setq hght shght)
8 s$ l. o# |# |, B! H6 C+ ?0 X. C (set_tile "hght" (ai_rtos hght))6 X, ]8 l1 K# `
)( G/ \, H1 \$ G0 F$ q
)3 v9 ]. l& i5 S. B9 A
(setq wid (cdr (assoc 41 style-list)))
+ W* ~$ i( @5 W0 `6 Q' U (set_tile "wid" (ai_rtos wid))
% p/ a! c* N0 `6 } (setq obl (cdr (assoc 50 style-list)))
! t. Z% Z) M/ C5 _7 X+ v, Q (set_tile "obl" (ai_angtos obl))
9 ~' |( o1 s1 @0 |+ Y (setq bk-up (cdr (assoc 71 style-list)))+ |6 x- E% C2 x: I
(if (= (logand bk-up 2) 2)
' z R3 e7 k; k (set_tile "bkwd" (itoa (setq bkwd 1)))
1 u+ {" k& o6 R9 q2 a6 y/ n9 \- s8 d (set_tile "bkwd" (itoa (setq bkwd 0)))
% [( K$ ^9 y; B )
, B# x; g. B% Z) M( ?5 ]/ e (if (= (logand bk-up 4) 4)
g& c% a" B4 ]+ Z (set_tile "upsd" (itoa (setq upsd 1)))( @: H# G5 ^+ Y2 ]3 W3 o
(set_tile "upsd" (itoa (setq upsd 0)))2 X; q2 u9 H$ x2 a+ q! c3 W
)6 a `! \* F& ^5 Z' k4 o8 s1 o
)- c; P2 Q4 \* B& N
;;; K$ u( A% D+ L5 `, Y: ]6 y
;; Justification action. Set vertical and horizontal alignment variables,
+ {7 M+ F! B- N! } ;; grey out rotation and height if alignment = "aligned", grey out rotation
3 G& x) e7 }7 Y$ U$ z ;; if alignment = "fit".7 {" i6 h; O% B% k& W
;;
! \1 {2 r: D g4 ~/ ^+ `! D% {, h0 s (defun jlist_act (index / templist)
" _+ f$ d7 L7 f4 d (setq just-idx (atoi index))- x' n0 r& ]# a0 w4 V# H
(cond
; P* s( U/ X1 L ((= just-idx 0) (setq va 0 ha 0))
# v/ L( `. m% |1 s r( L ((= just-idx 1) (setq va 0 ha 1)). ^8 H$ \0 j* {% i
((= just-idx 2) (setq va 0 ha 2))
4 L( r' S1 o8 S& P ((= just-idx 3) (setq va 0 ha 3))5 g( K8 d" F) P& N. G
((= just-idx 4) (setq va 0 ha 4))
% |- P$ c. `4 V# D1 G5 s ((= just-idx 5) (setq va 0 ha 5))* m- g$ n" c- b' h( h; q
((= just-idx 6) (setq va 3 ha 0))5 F' B' R0 l' j3 Y9 Z
((= just-idx 7) (setq va 3 ha 1))" |. }+ o# s3 Z! e' X% C8 J* H
((= just-idx 8) (setq va 3 ha 2))
1 S& C( x1 y& G ((= just-idx 9) (setq va 2 ha 0))
- C, r# `# f9 {! z. t) i ((= just-idx 10) (setq va 2 ha 1))$ O/ t/ z' ]3 k! g
((= just-idx 11) (setq va 2 ha 2)): K4 M9 D- Z9 O2 c- b
((= just-idx 12) (setq va 1 ha 0))
$ F; ^2 Z! K2 X2 ?. t ((= just-idx 13) (setq va 1 ha 1))+ {4 F: k& e+ ]$ ?: g
((= just-idx 14) (setq va 1 ha 2))3 b/ j- y/ u8 @! O0 @3 M1 {
)6 a8 k$ v$ V: \
(if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text0 f3 S& A7 _) D- I
(mode_tile "rot" 1)
* N$ T/ l4 [7 U6 d* y (mode_tile "rot" 0) s$ a$ G5 h4 I) L4 S2 g) B2 D
)8 O. X( h$ i% m5 \: W5 Q- B1 Y
(if (= ha 3) ; If Aligned text
/ B3 ~1 O. ^/ H2 n! \ c (mode_tile "hght" 1)5 N5 a9 g7 J* i- r
(mode_tile "hght" 0)1 ?$ V. O$ ?+ k" T+ N- c
)( z3 h7 O3 [& k! n# H
(if (= ha 5) ; If Fit text: U% J3 J( @/ b+ K
(mode_tile "wid" 1)8 V* |' ~, d; e x/ O/ X$ @' v
(mode_tile "wid" 0) C5 ^6 W* I# y$ X# b
)
8 B6 [. J5 }6 P5 h8 n9 N/ a ;; Reset rotation and height if changing from aligned. l4 n; b, q0 }2 x5 O
(if (and (= ha-prev 3) (/= ha 3))5 {7 C- s4 `; ? p9 L6 e
(progn; d6 G* _- q& g* L( _
(set_tile "rot" (ai_angtos (setq rot 0.0))): n+ @3 W$ e( a1 r2 @- m
(set_tile "hght" (ai_rtos (setq hght 1.0)))
" m4 `$ ^( K! m5 ^, Q ). y6 M% T3 x, ]& z. d! o
)
3 E3 X, A# I+ I3 ?6 E4 X: H2 k. Z: ~
;; Reset rotation and width if changing from fit.
# F$ _* M5 e6 M/ M/ V; l3 H (if (and (= ha-prev 5) (/= ha 5))" M' e3 D+ m7 T: \% u& q' K
(progn
8 G }+ b+ W* C, A" N (set_tile "rot" (ai_angtos (setq rot 0.0))), |! j2 g0 ^6 x- `
(set_tile "wid" (ai_rtos (setq wid 1.0)))
7 n) f8 u" ?( \ )
7 Z, K& L7 ~! |+ Y U )
3 |' E' y6 h# D' ~" ?1 V# ?% `6 r4 h. S9 i; W0 p% h8 F3 T
(setq ha-prev ha) ; update ha-prev for next time
: W0 P5 r% s# ?0 M (setq just-idx (itoa just-idx))
+ m9 s3 o3 n+ k4 N )8 w. y6 _8 O3 H) u5 `5 U! N
;;
" y3 Q8 l9 M* h7 V, Q1 [ ;; Set intitial alignment setting based on vertical and horizontal alignment
' R ^: |% w; k8 m9 F5 y ;; bit codes.
9 C- C5 E( x" P u) T% u* H6 D( \6 f ;;, x* p1 B9 ^1 T5 t: k
(defun set_just_idx ()9 r+ u5 I5 V; j& f8 n' ?/ P4 H4 I
(cond5 q/ @! l1 g- G1 B4 u+ |' M
((= ha 0) ; Horiz alignment = Left5 o O9 U8 E" M8 z
(cond
2 I( t) W+ [! E3 q. {' G% F& \ ((= va 0) (setq just-idx "0"))2 Q/ Y& i9 _6 U- ?9 {* H& V
((= va 1) (setq just-idx "12"))
4 h& y9 d; \5 g ((= va 2) (setq just-idx "9"))
% t& L* t$ l5 ~. a+ _7 h; P ((= va 3) (setq just-idx "6"))
. J7 | s# V$ ]" M3 Z )& |& `* N% r: c2 d9 Q! Q" B
)- u, D; z; u, n- T
((= ha 1) ; Horiz alignment = Center
) ^5 {; K, t p8 a \: i (cond
5 i) [- r( c4 |0 _" }9 x+ @/ Y* S ((= va 0) (setq just-idx "1"))7 k# A+ W2 x, b
((= va 1) (setq just-idx "13"))6 J0 C4 S# q: T- |2 k' ]4 i7 V( h+ [* u
((= va 2) (setq just-idx "10"))* S% l$ H! O, t. p4 ?
((= va 3) (setq just-idx "7"))% l6 a% F0 _, O8 `$ M9 P* q1 U
) L; }7 u" t! j0 x. |( [1 K* |
)
: l. q- t1 h* Z3 [$ u ((= ha 2) ; Horiz alignment = Right
& ?) q o/ a! l9 f4 n (cond# s* O( M8 ~) x; U' ]( Z
((= va 0) (setq just-idx "2"))
) P5 ~/ ?& C8 N; G3 Q! f$ R ((= va 1) (setq just-idx "14")); G3 R6 Z8 y$ P/ x& G
((= va 2) (setq just-idx "11")). G% L4 `% \" j" \6 W& d
((= va 3) (setq just-idx "8"))
! |6 d; n5 S. i& O) W: i )$ N( t% K. i* z4 J4 U+ P
)3 q8 W) Z3 N* q' d/ X% `
((= ha 3) (setq just-idx "3")) ; Aligned
1 D; b% g3 l7 C$ Y ((= ha 4) (setq just-idx "4")) ; Middle. e0 z0 r6 }, t8 S2 L* J% {" I
((= ha 5) (setq just-idx "5")) ; Fit# C2 k7 W3 U# ~
(T (setq just-idx "0"))
* d: F# y5 K# L( ^2 g. @* D! H8 _ )
$ C: N A) W2 D: R' l just-idx6 K! ^3 S# v6 ?5 w7 v- a
)
3 P, ?& v6 |9 g2 H
, u V8 N; p9 G: @) }6 w8 U (defun modify_text ()
: C5 Z* T; s: q. d$ e2 ~( b S& G9 U ;; insertion point9 T9 N8 q1 ]: M3 J- U" _
(setq showpt (list x1 y1 z1))
5 ^' k1 A8 i, W# I% d8 | (setq bit-10 (trans showpt 1 ename))$ u, ~; S! G' M* G$ @' k
;; alignment point. a3 I+ v% V& F! }3 @" h
;; for 'Aligned' or 'Fit', alignment point must be different5 d, F0 ^8 Y+ u$ E# ^$ s( e4 j
;; for all others, use insertion point
( V: p8 j7 \$ }5 u1 [6 j1 ?; H ;; (ACAD will recompute insertion point)1 ? H2 W- H; Z! p) F3 n) E1 |
(if (or (= ha 3) (= ha 5))' T6 W" I( O+ |. N
(progn
" U2 Q$ i0 t9 d- {6 v3 B ;; if no alignment point, fabricate one0 a+ {1 Z J+ ~% D8 F$ S$ O' ~
(if (not alipt)
$ I+ A/ O4 T8 t ;; add text width to insertion point( N; D5 L$ j4 S% E! }3 t
(setq alipt
% p) k6 Z4 C( {$ U8 s" M$ f/ h (list (+ (car showpt) (car (cadr (textbox elist))))
' _$ M" C- T; ]! p6 x (cadr showpt); R+ w+ w" e+ J f2 v2 Y* B
(caddr showpt)
' w/ Y. b0 ]/ B9 j% R! N! Z )
7 E/ S# a% `9 [( ~6 K6 N I )* g9 X. B6 y7 {6 M* q; w) t: C
)
- E# r7 _& K+ Y7 Y. M (setq bit-11 (trans alipt 1 ename))0 [* I1 d& ]( T
)
# m/ x+ T" C4 N' G: K (setq bit-11 bit-10)
, E4 |0 t5 G# d# @9 g1 p4 q( |5 | )
0 T- e' ?6 s0 ~) y0 P8 d) ? (modify_properties)
# N9 c0 Q1 G6 H! f) _9 A1 \) ? (tempmod tstyle 7 nil)
8 a( g0 E" l6 y0 ]( l (tempmod bit-10 10 nil)
! c) _- e7 s8 }/ k5 R0 m# |1 I! A (tempmod bit-11 11 nil)5 B/ q7 F' b5 K, |3 ^7 q- X2 ~
(tempmod text 1 nil)
) M. E1 P% j; s (tempmod hght 40 nil)
; D) c1 ^( a9 T (tempmod wid 41 nil)
6 K) G7 l( \3 c. k (tempmod rot 50 nil)
$ A3 ^, r v7 b. r+ o6 M& C. E (tempmod obl 51 nil)
5 k9 z8 h& }' s4 L; t (setq bk-up (+ (* bkwd 2) (* upsd 4)))* t4 ~ N% O% y: P) L$ x
(tempmod bk-up 71 nil)/ d7 T2 W1 {5 i- v* }
(tempmod ha 72 nil)
. A9 D( |6 ?2 { ;; Attdefs use 74, text 73% A$ k' I1 v- Y
(if (= etype "ATTDEF")# S% S6 V( f; H1 N) f! ^9 }! I- F
(progn
3 f% n' M" a" p( |- Z (tempmod attag 2 nil)
6 ]1 h* |5 _ j# c! C! l: ? (tempmod atprompt 3 nil)
8 g4 a1 u: g# E9 `0 v( O, z (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))' P* U" |" d0 p, T
(tempmod icvp 70 nil)
7 w% N8 @" G1 O% l: @% \; L2 p (tempmod va 74 nil)5 X" e$ y A1 b6 j# I- m
)4 J3 M* R4 z0 e9 }
(tempmod va 73 nil)
6 Q% x ^) t* u2 S/ Y4 x4 P8 m- w* d B )
& P5 q& a# K5 B (entmod elist)
b* G( C/ | ~4 A. w, F )6 s' ?3 C( n; v" j! ~
7 f J# F P, g8 i
(defun ddtext (/ 2ndpt slist i)1 U( o3 W, @& V/ V7 H# G7 O- E5 |
(if (= etype "TEXT")
$ _4 l9 {2 m! ?2 I (if (not (new_dialog "ddtext" dcl_id)) (exit))4 V4 }) L# h& H% M
(if (not (new_dialog "ddattdef" dcl_id)) (exit))
6 c5 n7 [2 ^& M5 z- W )
. g( Z! U ^3 k! k5 C. d (set_tile_props)
/ k1 ~: M5 B4 m; n6 y/ S; L2 T2 ? (set_tile_handle)
3 V; a, q0 Y. h7 i0 ^4 ~ (set_tile_text)
; T9 S8 i+ k3 P5 C5 u% l# t (set_tile_tag)/ z% j+ E9 F' S6 O: ^, ~) Z
(set_tile_prompt). K" T, h5 n+ q( |, k$ Z
(set_tile_hght)
0 w" U h7 [' r (set_tile_wid)
! F6 W d" x7 G7 S$ _$ ]6 s1 @ (set_tile_rot)2 x% S: ?. Q+ q, A: x
(set_tile_obl)9 G0 \7 T$ }' i- E, ?* S& F
(set_tile_bk-up)
- r2 v! Q0 T/ g B9 j8 Q; w3 P* w (set_tile_icvp), Q6 H% T% g+ \0 h( Z
(set_tile_style). \( M% z' p; ^% k- N
(set_tile_just)8 U. L' C% B/ n
(setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
1 ^& L$ _0 f. f5 b7 O (if (not (assoc 11 elist))
+ o& U/ V$ H1 ]4 U$ p (progn (setq pt2 pt1)3 @' O D( B+ ]/ u& x& K0 z0 H* |
(setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
" G0 z6 R$ m+ s4 Q )
/ k+ c# o) t+ V6 E" Q6 s;;(trans '(0.0 0.0 0.0) ename 1))- J' w1 a" I! d. m) ?3 u
(setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
) E# u. j2 ` c, W q )
- S' E. y2 M. c' f9 Q' Y8 B" A (if (or (and (= ha 0) (= va 0))
; i( e: C$ V% Q9 L5 {, s0 t (= ha 3)1 [& C* T$ }! A4 p+ t' V. K
(= ha 5)5 S' P$ \% A2 P* |2 n8 {
)
9 |: j" ]: K1 }% [9 f (setq showpt pt1)$ H) h5 n9 k& s$ y
(setq showpt pt2)5 x$ I- V: l Q5 o( n% U0 [
)
8 a' v6 U. Q. _6 B5 ^+ ` (if (or (= ha 3) (= ha 5)) ~2 f6 k" I$ }6 V9 h
(setq alipt pt2)
% i1 L6 u( p0 a6 x# O (setq alipt nil)
4 K! N+ W' \6 j- [8 J )
* U) t8 Y7 a# R# }* g8 q$ x1 Y# V) Y$ b* N8 j s4 s
(set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))4 x3 i5 F& d* z( M
(set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
; r9 T/ m4 }6 \/ u7 [! c, H# j (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))8 ]' h) Z( A! m% d# s$ J: t0 ^0 T% s' r
+ I! W3 j, e. E# F ]# n ;; Define action for tiles: b' [; R: k K- Y( s" v* {% ]
(set_action_tiles)7 P( u0 }. z! [
;; Set focus initially to the text edit box.
, I' f( j- E8 W$ D3 K (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
6 ]) ^+ f, ~3 I (setq dialog-state (start_dialog))
( Q2 R- J% _: Z! u" m/ u: a (if (= dialog-state 0)
, g3 e- Y. Z# f( z; t (reset)2 z% n% Y _; p. {
)5 y0 e: c2 [) G3 }/ ~
(if (= dialog-state 1)
4 w% ?( l7 S# d0 d4 c/ V (modify_text)1 \) `6 q; J, {% R) Z( } F
)% s+ N' q9 E! ^2 g m$ ?' X' S; J
(if (= dialog-state 3)) M* ^ W6 u) @$ X6 {* F
(progn& O' |4 c: E4 P0 F
(modify_text)2 w' _- w8 r* \1 }
(if (or (= ha 3) (= ha 5))' V2 B3 F+ m& t b4 ?$ t
(progn; p% w* L$ _8 N6 d0 h
(setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
6 n; s/ Z) D9 v (if (not showpt)
$ B" T0 x: a1 e- [ {2 @ (setq showpt (list x1 y1 z1))0 p& ]& i# J; A5 Y
)$ Z5 q& r) Y5 @& g5 f0 {( Y9 i
(setq 2ndpt (getpoint showpt "\nSecond point: "))
* ?( n4 F6 ^& n+ W (if 2ndpt
! i# C0 v( i. }% z: ]: o (progn5 |# M+ f0 o6 Y; D
(setq alipt 2ndpt); T, Y, Q8 P. |- Q+ z$ ]/ j2 x% P
(tempmod showpt 10 1)1 ^7 O2 r9 z2 h; C
(tempmod alipt 11 1)
- }+ Y+ g) C3 J+ O (entmod elist)
1 k3 b& a* I: l )
3 b4 ~9 c- ~9 N) o5 q: N+ ~ )
3 l/ W9 I" C7 l6 o9 ~ (setq elist (entget ename))
+ x& K9 ~7 t+ u; Q3 m! D! | )
9 p# L3 O) V+ E" f7 z6 l- O (progn5 }$ c K- ^5 z; Q! ~ |( K( N
(setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
% t, g- ^4 e) p; h6 x/ A (if showpt
( V& y9 Z# t* h. C% X (progn
m. ?) ^. X2 [" N (if (and (= ha 0) (= va 0))
' F# g6 H2 G! b! R; K (tempmod showpt 10 1)
) f! H$ n! m" Z (tempmod showpt 11 1)
% i) t! V# c( I6 O& Q )( L- c! g0 d, G8 o
(entmod elist)
- `3 w8 E1 D2 P: c2 R' O. B )
2 K/ z9 m/ w( @* ?! X (setq showpt (list x1 y1 z1))/ }8 O( a, m ? _9 n- }
)
# b$ A; i: g2 }; `1 } )
( p H+ i+ V u( E )
5 K9 h+ T0 G2 m& O: f7 \) J" M+ [5 ^ (ddtext)1 u: p7 f. G3 T
)* V# h& |* P/ K- v& F$ |, ^
)
% I) m, M; o3 t )
$ r1 N0 z, |4 b* K# u
6 a; n3 `) O8 C% l; P2 I3 s ;;/ N5 W( p) q) d& K- C4 b8 f' T
;; Modify MTEXT
8 b3 j, h# l8 o9 n# f3 Q. F$ ~% m) ~ ;;
2 }% J' l- r( c+ Z (defun modify_mtext ()+ y- j" K( ^ P$ l9 _- V
(modify_properties)
0 K- \* m' v j$ r ? (setq pt1 (list x1 y1 z1))0 p" ^/ x$ s# X/ f; O( y
(tempmod pt1 10 0)$ ?3 g0 k7 |1 i# K3 \) M' C) ]
(tempmod text 1 nil)
V2 \% v! m/ M (tempmod tstyle 7 nil): c2 g2 i+ T4 R
(tempmod just-idx 71 nil)% @7 _1 }+ p0 h; }$ o, N* P5 G
(cond
5 V! J6 d4 V+ U- r/ S- R" f ((= dir-idx 0) (setq dir-idx 1))/ n' W [- P" D% g7 O) D3 O
((= dir-idx 1) (setq dir-idx 3))% m U" Y: g: {
((= dir-idx 2) (setq dir-idx 5))
. F- X5 _. R+ E' \0 L (T (setq dir-idx 1))' S) N) P# B. {, R' f+ G @
)
( L5 K8 m! o" C" A (tempmod dir-idx 72 nil)
& f" P/ ?3 O# W6 d8 b2 C. _ (tempmod hght 40 nil)
4 N& S# n' \0 o (tempmod wid 41 nil)
2 W9 I; a* T9 }3 G8 D1 d9 ? (tempmod rot 50 nil)) f( F3 X' @2 e* @$ z/ r
(entmod elist), X3 ^9 w' U, u; |2 j3 u7 s& W( `
)) e$ t+ X) ?, s
o( L* w/ C3 N8 f, | ;; Set MText text style
3 d+ i: y {3 l/ s: N( w (defun MText_style (index / style-list)
# D4 e8 E, W& N7 t7 d (setq style-idx (atoi index))# x$ \. `9 @) M' c# R
(setq tstyle (nth style-idx slist))
0 J9 X+ H" V7 L- T' s (setq style-idx (itoa style-idx))$ I/ c7 c# P6 a" @* ?/ K. h9 x
(set_tile "style" style-idx)8 ^6 n) Y4 N1 x
(setq style-list (tblsearch "style" tstyle))
% \* @8 u' a! f2 ?! D1 W2 y (setq shght (cdr (assoc 40 style-list)))
# @4 T& G; I8 \0 k! V) l (if (/= shght 0)
/ P$ F7 y& w/ v" p. ^9 o8 s8 C (progn) J4 D7 b* E7 I
(setq hght shght)! O1 h$ o- G" a1 {( }. r( M4 H U4 C [
(set_tile "hght" (ai_rtos hght))
* q: N4 d6 Q: _2 @7 G% m& ^ )
; j) M3 V$ h5 b5 S3 @3 Z$ r )
3 h/ F) R) F* N0 X. w. Q) P ). u- O# G7 L2 ~" l
9 ^. O) i! h9 y! |! N; ?. U9 [" l ;; Run DDEDIT on given entity, working around possible re-entrancy
/ w) G3 e+ A0 e3 f2 l* S ;; problems with MTEXTED
$ g1 o) z: K/ z) Z9 C" g (defun safe_ddedit (ename / orgMTextEd work); ~4 T* t2 H2 f' r& j
(setq orgMTextEd (getvar "MTEXTED"))9 ^4 @1 ]$ ?# p5 ?2 S
(setq work orgMTextEd)
6 c+ P" u7 F+ Q/ U2 ], h2 a+ E& V! x (if (= ":" (substr work 1 1))
) L/ o6 t6 ^& K" g (progn* U8 f7 A1 l* w% O7 \+ j6 ^6 E
(while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))$ @7 }' I" b6 E4 e' N# b
(setq work (substr work 2))
S3 l( K! X! z1 g1 } )! O" x; n, j. Y2 W
(if (= "#" (substr work 1 1))# | W; A1 g2 J1 v
(setq work (substr work 2))/ R! D7 ]* K: k+ p, h2 v
)( x3 x3 n3 _/ Q: L/ p2 O F9 P1 Y( W
(setvar "MTEXTED" work)' w: r5 \3 Q3 P0 K. t
) ^' f: D4 m$ ~: r5 A: ]
)0 M$ | a7 b! d2 u- i3 w6 [3 b0 J
(verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
, n, [9 A8 O1 g' k& a (command "_DDEDIT" ename "")" Y# D7 w4 ^0 H, k3 I
(setvar "MTEXTED" orgMTextEd)
* u8 L* D4 c* a- H3 P )* I' \" [0 _0 u1 Z( e( `
9 C* {% @: m. r+ V5 f
;; Verify MText object width+ V: x# j2 ]/ w6 U( l) A: _% V
(defun ver_MtextWidth (value)
, I. ?) I7 { b: I! e (setq value (distof value))
, R& I* k- X3 M# F7 g& k9 d (set_tile "MTextWidth" (ai_rtos value))5 w2 I8 _7 |/ S% C' A8 \
(set_tile "error" "")4 `1 T1 e5 m8 S: a, a9 \3 L
(if (< value 0.0)
3 L$ b- X2 t7 c9 n2 v& p6 G" N+ P s (set_tile "error" "Value must be zero or positive.")# V [5 \4 e2 o* `- R; @
(setq wid value). e1 ?% P( ^2 ]$ H0 p$ h
)
" e- F* X$ G# C' I% ~4 t$ z ); Q2 |1 [! r6 m' E. i2 @5 H" C d
% |* E. u- v& `* H c6 ^2 b (defun ddmtext ( / gc3)1 K, e, k( W; P, ~, w- _7 i9 U O- G
;; Get dialog
+ ^$ ]/ O7 |+ ~) l (if (not (new_dialog "ddmtext" dcl_id)) (exit))
# x: d6 ^' B. i$ Y
6 f% \: c8 F, X9 V9 u! u3 j ;; Load list boxes
# A% u2 z+ |, {" x' W (start_list "MTextJustify")
- ~4 D. v4 i5 _* K4 L0 O+ k7 l (mapcar 'add_list '(
" l) U9 {4 `" J5 ]: x& a "Top Left") _ W) m" R( m- v0 b
"Top Center"& H5 X- O0 P9 H" @7 F( E
"Top Right"
- K+ o+ K8 [- Q "Middle Left"/ V4 c6 i7 k, {! d# K$ _! s) K0 v$ ?
"Middle Center"
6 `& @. R/ R' }. W: ]+ k; q/ G "Middle Right"% S4 @; g+ n I* \0 f$ O6 ?
"Bottom Left"4 v3 a C. L/ ~' X4 y
"Bottom Center"
) O( l/ e9 |" R# t "Bottom Right"
/ j4 Z% e+ z6 R4 R- ]0 n )9 ?5 k6 ?: n4 S$ D7 l) p& v. \
)/ F6 z' m8 c p Y
(end_list)
# `+ N% E5 B5 v. p, g# e
0 |$ y( G) J$ \" ] (start_list "MTextDirection")
& D( Y d' A; f2 v0 Q" U (mapcar 'add_list '(
) q8 r' ^- N9 D3 z0 D "Horizontal"
; {1 E3 v' G7 `4 H "Vertical"# \$ |' x' B4 d- ~+ v( t
"By Style"
" Z3 b2 I! V! f8 g )% o3 {' D0 {9 k, Z0 D
)
0 Q, F7 e1 l; M (end_list); D* E( G7 f) S" m# |" q
1 a3 Q4 c) F9 A. N s( S- F$ u8 o1 s
;; Set initial tile values
_7 U8 @7 |, z7 t6 F8 ^ (set_tile_props)
2 r) U% J. _$ ~7 t; D# C9 u- ~( P (set_tile_handle)
M& K/ x; y! N0 O* o (set_tile_pt1 0)' b5 h; w" ~; @6 n; |$ w$ \# n/ ~
(set_tile_style)
. L" | V, g M( ^ A) z8 Z! l (setq just-idx (cdr (assoc 71 elist)))
9 n' |! G/ J8 {# Y3 {3 l8 V$ f; h; ? (set_tile "MTextJustify" (itoa (1- just-idx)))
1 s: [( d! u+ L2 W% b4 O( E: H (setq dir-idx (cdr (assoc 72 elist)))
1 o* \+ c; w' y+ A7 C0 N3 ~/ r! B (cond! ~" O4 J6 H4 i; ~4 S
((= dir-idx 1) (setq dir-idx 0))
* y* |' Y( L1 }. u* o ((= dir-idx 2) (setq dir-idx 0))& d0 j: K+ \6 l0 G4 ]
((= dir-idx 3) (setq dir-idx 1))
# Z% V/ u7 y) ^4 c3 Y$ ], \- \ ((= dir-idx 4) (setq dir-idx 1))
' c# V8 q* l- q: Q0 X% Z ((= dir-idx 5) (setq dir-idx 2))
5 y$ f# s) f+ ~" u (T (setq dir-idx 0))
- d! l' Y8 y# q. U( N" \ ) \0 U5 h3 F/ w0 V, f6 S0 {
(set_tile "MTextDirection" (itoa dir-idx))0 j' E. W$ L" E# e
(set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
8 F* t' Q/ y3 L2 E' A (set_tile_hght)4 u/ i0 N! {# V
(set_tile_rot)
4 D/ h! o5 ]4 p% t- g3 \$ Y* Q" H1 [
0 g0 w7 s+ H" w" q/ t' k ;; Set edit box, disable if too long+ V) v" q! I& U% ~3 i5 W% d
(setq gc3 (cdr (assoc 3 elist))
$ m: M x% ^" d: e! Y! J text (cdr (assoc 1 elist)))
' f! W- @$ i2 @5 t! ~ (if gc3
) a* V' C- n: d- X9 z1 R (progn ;; Text is over 250 chars, disable edit tile
4 n C T+ a5 H+ i7 q3 o% ~; i (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
& B# E# V0 J# U0 L, `0 P (mode_tile "t_string" 1)
0 t: P. y& w- q) t )% C+ U: C/ Q' T' G
(if (> (strlen text) 80)
1 R" Z5 \) n: L* _# P7 g (progn ;; Still too big# ~( t; P/ L4 v: y- i. U& a' [
(set_tile "t_string" (strcat (substr text 1 25) " ..."))
( ~/ b7 l. ?" H (mode_tile "t_string" 1)
& h* F/ S- b7 f+ x( L$ H0 K* E: s )
: J- q* @$ k' Y# N" D8 p6 A# L (set_tile "t_string" text)1 i. Q2 y( E* r" }5 Z- @+ t
), R. D3 K& r: a H7 e
); C8 U& k5 v4 U! i; L
* y3 P3 I( S2 \3 i, @6 q5 F ;; Define action for tiles- P# e1 S+ g6 Z
(set_action_tiles)4 y9 o" t, O3 @0 ^( w- t4 n
(action_tile "style" "(MText_style $value)"), L. s5 `$ q; c# e+ V; W
(action_tile "MTextWidth" "(ver_MtextWidth $value)"); D- V3 w, |- S9 f& Z8 v) ?- H
(action_tile "MTextEdit" "(done_dialog 4)")
9 s( Y+ n* c+ W7 n* p3 w' h (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")
+ Z8 ?" R* f3 H, C (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")7 I5 |9 f( j: K" M( T$ f: A
) ]" v( z |4 G3 E+ I( {4 L4 U ;; Set initial focus to text edit box.: d) i! N1 v# H! G: m, D% T
(mode_tile "t_string" 2)" l1 c" t# h1 o0 D
" y. _% ?$ t# _+ [9 V+ n ;; Run the dialog3 j0 M6 s' U9 r: i, F
(setq dialog-state (start_dialog)): ?% C$ t" P8 |1 C5 } E# A. i. }
(cond1 ` A2 d1 E) o6 x! B6 @7 c
;; Cancelled - restore saved data) j# c9 ?& w/ Y# e0 |! p4 ?) r$ r
((= dialog-state 0) (reset))
( j1 P" ]& h& j; N ;; OK - save new data
- `( {. B. {9 F' Q& D5 c! [ ((= dialog-state 1) (modify_mtext))
" \: h8 E) C i4 L ;; Pick new insertion point
6 c! k1 V2 ?0 w( K% _ ((= dialog-state 3)
T: }5 Z( }9 r( Y' n: A! ~ (modify_mtext)
' T1 K( [5 {* B# j (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))4 e1 |* `" s0 }; w$ f1 y; X* A
(ver_pt1 0)
. _' ]" g* K0 z( U* [6 }+ { K (ddmtext)- Y' D+ |/ U! T. F$ Q0 h- b, {
)
- k5 C7 v2 ^3 j ;; Run full editor4 Z6 |5 ~) H+ H6 ]6 q; q! ^
((= dialog-state 4)7 ^# O- G7 c8 @3 Q
(modify_mtext). y' l5 Q! h$ F' D r
(safe_ddedit ename)
/ K& ?) O8 d5 @5 ~8 C, g+ D2 t' R (setq elist (entget ename))
: U. l. Z& I& M) }4 `4 f (ddmtext)2 j4 G, B; Z. H
)! d+ O/ m4 Q9 E& X A
(T nil)( B- c0 p1 x! `& p3 Q' C3 d" Y
)
, Z! b( j3 r# t8 {& Y )
: c' {; q$ [/ v6 p9 N4 V5 g- a# [5 E1 D- i( t
;;
% Z# i, y( Z* H% `1 { ;; Modify VIEWPORT* \5 v. E- j3 c/ _; m2 \
;;
) B& C5 Y" {) c! f# u; b$ G" I7 A8 q4 u# T9 G1 B
(defun ddvport ()
8 S% H" N. ]5 }$ a) a (if (not (new_dialog "ddvport" dcl_id)) (exit))+ r# B k6 j& q Y1 A8 @: R+ _
(set_tile_props)7 c6 a$ p" i& H! i# \, D' w
(set_tile_handle)
; |5 {2 F' A- s1 j3 m4 V) s (setq vpt (cdr (assoc 10 elist)))2 F5 T& b7 Z% o) a
(set_tile "xtext" (rtos (setq x1 (car vpt))))
3 S6 ^9 y3 n3 Y( _8 R (set_tile "ytext" (rtos (setq y1 (cadr vpt))))$ A9 [( @, a. a7 L* d5 p1 d$ Q# \( g
(set_tile "ztext" (rtos (setq z1 (caddr vpt))))
8 q4 t3 O- F R- i% x; x (setq wid (cdr (assoc 40 elist)))
. t) u/ G; k% I; L7 S (set_tile "wid" (rtos wid))" W N- t- T3 ?3 v: h3 V
(setq hght (cdr (assoc 41 elist)))
v) r+ F9 k9 q' k2 t (set_tile "hght" (rtos hght))
$ m( {+ @* t6 Y) m (setq vpid (cdr (assoc 69 elist)))- V1 V+ b% R6 ~4 S4 K
(set_tile "vpid" (itoa vpid))# x5 q+ N' g6 X! j. V
(setq on-off (cdr (assoc 68 elist)))
1 c+ y9 j% S- k0 |4 h (cond B3 ?5 ]* N" v9 H9 U; @; k- h5 v. }0 r
((= on-off 0) (set_tile "on-off" "OFF"))
; n& s0 y9 A: q$ L" l/ G" A' o ((> on-off 0) (set_tile "on-off" "ON and Active"))$ D$ j5 J3 I( G, M2 `
(T (set_tile "on-off" "ON and Inactive"))3 E3 H+ ~' h' r B- {; u8 u: K
)% k7 d9 M/ [/ U3 J) G( m
! y; ]" n1 v! @+ { ;; Define action for tiles2 L, j0 y) E4 J# p
(set_action_tiles)
8 ^, H. C! I7 ?( G- |- V" d0 G$ Y8 m% h G
(setq dialog-state (start_dialog))" E7 @; C9 I& o6 g \0 P
(if (= dialog-state 0)
i% r8 w; \, g4 g7 T- R (reset)( r& E9 G! I8 {! L7 O
)
& ?. m* q3 a. z, {9 ]! @ (if (= dialog-state 1)
% h H6 x7 {9 N$ d! a (progn- G* C4 }" K4 Y" H, g
(if (= ecolor 0) (setq ecolor "BYBLOCK"))& z3 Q- F; t. k) e9 b' f3 N+ y
(if (= ecolor 256) (setq ecolor "BYLAYER"))
( d* j! i! \1 g& c7 k! m (command "_.chprop" ename ""2 o4 o- R- W( v- D: T% a2 i \
"_la" elayer
" x1 [% i$ @0 B! ]: K& u& c, l. U "_c" ecolor ""
7 u3 F" U5 U. W% @. F )
" k2 W: \* y _! F! v )% G+ q) Y" O; J; ?
)
7 E' V* m3 j }% Z2 Y6 N )) h; b2 \8 `' c4 T# ]5 l2 P
;;
- J( s" |0 x; J& i ;; Modify POLYLINE
8 b |! T) u4 S1 p$ S: _ ;;
( X- g0 `4 F2 F$ o0 h$ j' f5 U (defun modify_polyline ()( }! B% S; w4 m, F; b- R
(modify_properties)6 V' z' S: u0 C4 d# u# E6 `4 n
(if (= ltgen "1")
8 A) `4 F4 L! m (if (/= (logand bit70 128) 128)
6 B7 W4 q% x5 O0 q (setq bit70 (+ bit70 128)); G5 s& I' n8 p6 ~( b
)9 \2 v8 V* X# [! F) M9 h
)
, F Y/ u3 }& ~5 e! ?9 x6 r( l8 X (if (= ltgen "0")
) r: w; k( B) K9 f+ J (if (= (logand bit70 128) 128)& z" X& Z5 d( e- Z: t% u5 c* K
(setq bit70 (- bit70 128))
2 B4 X* v- c! A# F0 ? )
6 }1 H* K& v. o3 K- L4 E) e$ { )2 R+ I; m% ^* y" g" [' h* o
(setq elist (subst (cons 70 bit70) (assoc 70 elist) elist)). A' p: O3 b# h8 ]
(entmod elist)" Q0 i) ?( m, L/ E/ t
;; Added to take care of updating Vertex information for color
" V# @! F) {3 `; v& U ;; and linetype.3 [% C( c! K& w K% o
(setq save-ename ename save-elist elist)
0 d( q+ C( C9 i3 ?; L (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
" r" E- [8 x, e1 |9 I (progn
* ^5 m" [5 b" D8 u$ M; W0 h (emod ecolor 62)
7 Q) |' f- e: Q: Z' L$ L$ f9 V% e (emod eltype 6)7 P2 S* r4 c' x3 b6 p) X
(emod eltscale 48)1 c. M3 ]$ d- m" _& R& k
(entmod elist)9 ]: ]1 F; _0 Q& R+ H4 ^
)
) p' f4 K7 y+ C6 y" v5 H! P (progn
# x9 i. E9 J d" ]3 e (setq ename (entnext save-ename))4 J. i F$ A+ y" p0 z+ u) ~( V
(setq elist (entget ename)). `' v0 z& \$ i" p
* C3 T9 z; Q; x1 M! X0 C
(while (not (= (cdr (assoc 0 elist)) "SEQEND"))
) P$ d* Z! s$ M6 k (emod ecolor 62) F& J9 L. R6 W: ~& Q( r/ H
(emod eltype 6)
& [5 Y3 L9 {: g (emod eltscale 48)' O4 K8 v+ Z+ w- P) K4 N9 m* X8 [, }9 p
(entmod elist)
9 i, E; L- z/ D! d, k/ o- ] (setq ename (entnext ename))
# F% k# I T s L0 r( r, O (setq elist (entget ename))6 \- w6 [8 H2 G9 `3 k a1 N
)5 H* q& w3 B( u: {& N. O, a
)" e0 R4 N" g6 s
)
& i3 E$ A2 i" {& X ;; Update the SEQEND
2 x) J# r/ }- |6 K+ w (if (= (cdr (assoc 0 elist)) "SEQEND")
3 z6 W0 S6 R5 G6 m- y (progn' g0 N% S6 o( y T* i' U
(emod ecolor 62)' P9 a2 U& b' c6 P( H8 v; S$ b8 n
(emod eltype 6), h1 X% z- M( Z) Q5 m6 C6 t
(emod eltscale 48) m6 ^1 Z1 L( r8 j8 k
(entmod elist)
* y7 T8 I+ S# x r! F) _ )( H$ Y8 ]3 o3 X: N
)" z# A& H/ a9 s" e: ~& _8 J
;; Go back to header.- f# D8 b9 j2 h
(setq ename save-ename elist save-elist)
5 `. x* ^% G" `+ I. ]" w
/ e& p" \/ b$ j' y; n9 F: z7 ~1 [ (entupd ename)0 @1 g. r+ v/ a2 @
)3 f9 v7 l% r: E, c- E1 f# H5 }
6 |* k5 E# X0 O
;; Increment vertex. Set tile values to next vertex. r" c. e; P/ V1 x" P& {) B
;;0 n4 b, C3 N0 ]" `
(defun next_vertex ()
: i: a6 C3 C; ], M* z% I/ J (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
5 y: x9 x# ~$ Y+ I (progn% l, ?/ R: e0 P( u% U0 C
;; If the counter reaches the number of vertices,
1 ^# H4 D0 d I& v/ e* O' I ;; roll it over to zero again.
& u! A5 L ~9 T (if (= ctr (cdr (assoc 90 vlist)))
! z7 E4 x w. O- C8 b9 [ (setq ctr 0)# V' r+ w7 i5 o- j0 T3 _
)# o9 r- x' u7 z3 _
(set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))- C) O7 A% {8 F! z
(set_tile_vpt pointype)
$ h; V/ b7 p8 |6 Z+ L )
5 W( }8 N# e* z+ y5 R (progn
0 @3 r, Z' J7 P (setq vname (entnext vname))8 N# ~# h3 A- `: i) _
(setq vlist (entget vname))
& |! o) ~6 D1 \* m/ v- R1 M (if (= (cdr (assoc 0 vlist)) "VERTEX"); m- D; T! ?% ?$ N. Y M7 F0 T% p
(progn. T2 _& H3 S, X2 ?" a5 M( b) h
(set_tile "ctr" (itoa (setq ctr (+ 1 ctr)))): b; A" x$ x8 M& `# V" h
(set_tile_vpt pointype). m5 z9 h$ P3 c9 E5 }$ S, [4 ~
)2 q' t k1 {' m |4 L5 k6 Z
(progn
$ z: W3 f9 x) g' r (setq vname (entnext ename))3 e: A; p; D! B+ I9 F
(setq vlist (entget vname))
e3 Z5 H, N& d2 H# }, t y: X (set_tile_vpt pointype)
+ P; j. N5 [. `! k (set_tile "ctr" (itoa (setq ctr 1)))6 y3 G& O* W' d
)+ Y# S8 S+ i/ b; P2 q) h) R
)
& b. y0 e4 v3 G9 V )8 k% V% Y" F; _. W9 h
)* H: P2 l; o0 v/ [; q1 I& V
)5 K% }( P* G* s' l: o
0 | F9 y. Z: ]1 \
(defun ddpline (/ oldecho)
6 [/ ~ X/ d* S) B (if (not (new_dialog "ddpline" dcl_id)) (exit))3 s3 s+ |9 R9 ?- G2 K/ M
(set_tile_props)0 h2 Q1 T& J% @
(set_tile_handle)
+ w& x' g: a/ Y& i (setq bit70 (cdr (assoc 70 elist))): V: {* t) j+ k( |1 u4 K
(setq bit75 (cdr (assoc 75 elist)))
6 R, m5 h v: Q. I( Z (cond. }! {/ K }. x% V" R8 f/ J" u
((= (logand bit70 8) 8) ; 3DPOLY6 q5 C8 T; T5 G1 r
(set_tile "ptype" (setq pltype "3D polyline"))' F2 ], R" z1 \! i! g3 _( G) c! k) Q" ~
(setq pointype 0) ; WCS or ECS point values
' K& c" D. O9 u e9 } (mode_tile "fit" 1)
- l3 `" ]6 c& D/ V1 c! m (mode_tile "mesh" 1)) x! G" a+ |9 j# z# }$ C' N
(mode_tile "bezier" 1)& H6 K$ V. C: ], `6 H
(mode_tile "ltgen" 1)1 I8 G% c7 e6 O7 G0 w+ Q0 Q
(set_tile "none" "1")
$ ~ e9 @+ }# A9 _5 o( M (set_tile_closed)4 Y; z5 o3 Z/ {2 _& @
(set_tile_fitsmooth)
; {/ I* Z3 N4 B )
% L3 ]- f% [# Z6 H" j4 @ ((= (logand bit70 16) 16) ; 3DMESH1 s4 R( O* L1 d( D$ F1 W q
(set_tile "ptype" (setq pltype "3D mesh"))
/ x8 t; g j2 |& Y (setq pointype 0)) w; l8 ?- G% _, l8 ^7 S
(mode_tile "pline" 1)
5 @, q& h4 x% `# p5 Q (mode_tile "fit" 1)
4 I* K/ |/ v* A" A- a3 A (mode_tile "ltgen" 1)
9 B. V" u4 O/ N0 f (setq m (1- (cdr (assoc 71 elist)))): R% Z o. E8 `7 m3 f, z
(setq n (1-(cdr (assoc 72 elist))))
" B( Q, ]" v7 M (setq u (1- (cdr (assoc 73 elist))))
7 }0 v3 k) q; v. K2 y3 h (if (< u 0) (setq u 0))4 d( u. Q/ K+ v3 S
(setq v (1- (cdr (assoc 74 elist))))' x# ?: b/ H, @4 h8 o
(if (< v 0) (setq v 0))4 {: [' ]" G3 K1 k2 G7 q) s# J
(set_tile "m" (itoa m))- x6 P) b+ S9 X0 p, x! G
(set_tile "n" (itoa n))
$ T5 o) k! w e0 c8 Q6 n* a (set_tile "u" (itoa u))
9 g/ D7 u7 r3 c! i' T6 Q (set_tile "v" (itoa v)); \- q0 I, X" S2 J/ e
(set_tile_closed)+ D, c8 @. a, w9 C- V
(set_tile_fitsmooth)9 E! P6 ~1 x* ]% p- {1 h X
)
/ k: [+ K% I, y. ?/ E2 j ((= (logand bit70 64) 64) ; POLYFACE MESH8 c' b- z2 r, H( u
(set_tile "ptype" (setq pltype "Polyface mesh"))2 j C) s9 ?, [
(setq pointype 0)
" ~: i$ Z! F% H0 e9 W- w. ? (mode_tile "f-s" 1)* ?$ Y! j4 ^7 P* q
(mode_tile "mesh" 1); A; r% @; f5 F$ d/ X8 \/ W3 d' [- M3 I
(mode_tile "pline" 1)0 Y. F% E0 [$ z' \( ]: c
)7 _6 }9 D! U, r# S; ~& I
(T ; 2D POLYLINE7 L; E8 L7 s9 v% k7 t- \
(set_tile "ptype" (setq pltype "2D polyline"))
( v" c2 {8 j3 x- W (setq pointype 1)
, J6 n8 ~' p/ Z1 r! g (mode_tile "bezier" 1)# ]2 b/ C, I, @. h
(mode_tile "mesh" 1)6 h$ T: l9 Q& z" H
(if (= (logand bit70 128) 128)* v% Q+ `, ^! i! x
(set_tile "ltgen" (setq ltgen "1"))5 S8 t$ B) t! b. m' w3 m6 p9 L$ k$ O
)
2 }6 B) H/ }: T' R3 g. } (set_tile_closed)) g' R0 r" }& Y7 a
(set_tile_fitsmooth)
4 \6 z1 W4 }$ o9 y/ m2 k )
$ S/ H) N: G) w. N$ [: X" ]$ n )* _4 ?( c8 v( I4 A3 G
3 I# a3 [5 j# V% B d @
(if (= (cdr (assoc 0 elist)) "LWPOLYLINE")) z# i4 U- G( i' v: ~
(progn& z9 u$ G* \( S4 C
(if (not next) (setq vname ename))6 p. b- p+ x o) R7 h; [
(setq next T)9 m; D( @9 L4 S' N* t
(set_tile "ctr" (itoa (setq ctr 1)))
' {$ [+ t# ?( k9 t( ^! s& S/ F (setq vlist (entget ename))2 u1 L3 x( M, D0 A3 f
)
7 X! ~3 B7 W" G! a* x$ a (progn
7 Q! q5 @- Z- u2 l" ] (if (not next) (setq vname (entnext ename)))- J C+ k+ H. t4 e# y7 T# z, j
(setq next T)
: x* U; T5 v% _ (set_tile "ctr" (itoa (setq ctr 1)))
4 k! l0 B9 ^! U. p; ?$ x x& _ (setq vlist (entget vname))
8 _" T: b# U6 l7 n3 q! M2 o )
! |9 ~' f4 A2 I$ Z1 ] )
) j( {- T" e, T# y! j+ h (set_tile_vpt pointype)- s6 ~6 h% k+ ]7 B
;; Define action for tiles
# k. |+ G. B% t8 u6 p (set_action_tiles)/ P0 F% e6 t9 s2 k/ `4 l) Q
(setq dialog-state (start_dialog))& J5 b& O; e2 Q) h5 d8 W
5 U! B k- |0 v (if (= dialog-state 0)* P# G" L S! |- q
(reset)# k: L7 j, J/ S4 A. M
)# W; n( W8 t5 a5 r! ~5 t
(if (= dialog-state 1)
# z; _5 E& {% I, U) r (progn
* C8 B% U- q* t! e/ Y (modify_polyline)5 ?4 p% f1 V" H
(if (or (= pltype "2D polyline")8 s m; n" H2 t9 m
(= pltype "3D polyline")! B9 m- n0 F0 {7 \6 ]9 h* [- f, O* b
). s! b3 v0 `' j/ A
(progn7 d. [& P, {- I
(command "_.pedit" ename): J" W$ Z( {1 y4 f2 [4 `
(if (= spltype 0) (command "_d"))
% Q/ w+ a. N5 Z (if (= spltype 1) (command "_f"))7 _( F# ?, C5 k( g
(if (or (= spltype 5)
- O( s( R: e$ |! h (= spltype 6)
& n+ j+ p3 ~: w( {6 ?8 G, R4 q )
. B Z& b+ T% q- A3 p (progn6 r( ]! |. @6 z. {& K
(setvar "splinetype" spltype); ~' \. r+ Z- h& {9 x
(command "_s")( m6 {7 \8 z" i
)
, z7 ~0 t9 Z; g& g/ F8 I- \ )# D, m" s, L1 h$ H. x
(if (= closed "0")
, |. Y* d' z' I0 a% @6 _ (command "_o")
, G) _* l) f# K- Q9 C1 r6 A+ c (command "_c"): L" }/ S/ _( J2 Z% I% @7 R
)3 _$ [7 W9 W; `+ e+ g: O
(command ""): Z x# A5 [. H! N
1 G* Y4 y/ O, ?' g) g* x2 g. |
(if (= spltype 0)4 S$ R2 r5 b3 ] r. a9 m& b! L; |
(progn9 f% Z$ z8 \9 f# A
(setq oldecho (getvar "cmdecho"))
2 `2 g3 f$ W9 n' _# S; M4 Q (command "_cmdecho" 0)
9 c! Q+ \! V- L: w+ s6 b3 c; P1 Y (command "_convertpoly" "_light" ename "")
) x3 N' C: |2 }. @ (command "_cmdecho" oldecho)
9 c0 ?9 r) a: O! c )
0 l! @: S5 ?* |2 A' O )
, v$ |9 }5 Z" {$ u3 `# [3 O+ x )$ r7 S4 _! w- t/ X; t- C" E1 d L
)
0 `6 O# ?" u5 @! A A8 R& L (if (= pltype "3D mesh")
: X/ a* C$ J$ J' \. X: r3 l (progn% n: o4 S% R |3 `& F/ O t
(command "_.pedit" ename)
/ `- O. e6 P' P7 I: F (if (= spltype 0) (command "_d"))( |+ m P8 P8 G( o3 _, q
(if (or (= spltype 5)
: Y9 A* a( S! Q( h (= spltype 6)
i7 Q$ ~# D) b5 W4 y& @" P& k (= spltype 8)
7 p4 d6 X) ?( U5 V1 u% v ) C* V; J. n9 N* g! F/ ^+ |
(progn
. ^8 o( I* ^/ o8 Z0 O8 C5 l: x (setvar "surftype" spltype)
: y3 [3 l* P0 [- ]+ X4 C (setvar "surfu" u)
; p( |2 r5 }- C; Y8 w7 L (setvar "surfv" v)
- k. B# s# j7 v) d, J) ^2 Z1 ]& ~ (command "_s")
6 |9 _# c) r4 l9 D0 t# C$ A9 a )
# Y0 `( a% R6 S2 m )0 r/ x9 l5 U' l5 n: _
(if (/= closedm old-closedm)
: C( z' |! ]& W* j (command "_m")% }5 E8 c2 A4 Q% D1 L* y4 u
)- L( x( a' ?1 @/ R5 L* ?
(if (/= closedn old-closedn)2 L; h4 V( y8 q" d6 N& O
(command "_n")) s3 ?- k# U& u8 i9 T; j
)! ^ ]5 z! Z5 L$ d
(command "")2 {1 }7 y& s$ ~0 S# e
): d3 [& s& _: V. [: D' a3 G8 H
)1 V+ T: K. M6 b7 O+ [5 c2 p: d2 K
)
* I& C4 X5 b' Q0 E1 p6 k )
2 _3 p2 E& U1 a# L0 y )2 U& S! C; o% T. `' c
;; K! B% H) @9 ^4 I, @3 R l6 e, U
;; All the spline data is contained in a single elist. We must do some
) g* h: z. b3 t2 G* o0 i, E* l ;; tricky list processing to loop through the elist in order to display
) Z- M/ Q1 e5 C4 x! g+ @1 l: _ ;; all of the control points.% w/ `/ `) P8 x, a
;;
1 G9 r# m4 Y& [) m% c ;; The structure of the elist is different for rational and non-rational2 ]; Q! G. a. u* R: `
;; splines. Therefore, we check the rational spline flag.
+ t Z1 J8 ~* N ;;
) M; R; t4 z: [ (defun next_cntl_pt ()0 H& g: C% h" n& \& ~' V) g+ ~
(setq elem-no 0) ;; elem-no = element counter0 T# `1 H0 f3 w
(if (= first-10-time 1) ;; If first time, find location of first+ O% B& \2 [+ r4 a
(foreach list_item elist ;; cntl point element in elist: r$ r, o2 `. H6 x
(progn
4 u' a" j/ R. @* c (setq elem-no (+ 1 elem-no))
3 a7 W+ h% K8 J q (if (= (car list_item) 10)
. L. G% @' r- P) g+ H( o# `' j9 w (progn
' J8 w& z' L6 E/ y3 q, i; d4 m (if (= first-10-time 1)
4 U& F. ]( O. t1 S. Z1 n (progn
& s% K: j, r6 X; x- J# b0 P' W& g (setq first-10-rec (- elem-no 1))2 s3 d9 L, @' j! ?* T! {' P
(setq first-10-time 0)/ u0 ?+ b) [2 |5 N* i
(if (= rational_spl_flag 1) ;; if rational
5 m& x: I4 u+ u: C& ]9 O8 a (setq cur-10-rec (+ elem-no 1))/ D5 T# V; X4 x
(setq cur-10-rec elem-no)* E6 }% K7 ~, t: m3 I# s V. e
)
4 y+ W0 I$ Q5 }3 F8 d9 y )
' x) Y t! P+ l# J3 d( q' t )
/ A' M$ d1 p4 a( \ )7 j3 K4 b* f1 |6 R
)+ W3 l$ Q1 k! `) {! [3 b
)
" [8 e# d( q8 s0 n l )! ?3 ]) S# E3 ?' @
)5 v/ n; y s2 y$ v4 @; Z
;; Now we know the location of the first "10" record; it's stored* m, ]0 G7 n# M. i: ?3 \
;; in first-10-rec. The first 10 record was already displayed when5 g/ @# u0 H( }% |4 n
;; the dialog first came up so let's display the second one when
( v0 _9 L M8 W* v: z3 J& { ;; the user presses the "next" button (the first time through).
; {* c3 F- G* e7 B/ [0 X0 Y ;;& J& \" C# w5 y- F' ?$ u. G
(setq temprec (nth cur-10-rec elist))
# ?3 J+ Y; _5 ]; J ;;
) y7 f; e# m* {. r6 v, B (if (= (car temprec) 10) ;; if 10 record
) w9 v# h1 W: c3 b8 t (progn4 e: N) O$ ]1 [) D6 b* u
(if (= rational_spl_flag 1) ;; if rational spline0 ~' S$ @: v+ C2 O& C$ B
(progn. [. v$ m0 }; C% H1 [% g; a
(setq tempweight (nth (+ cur-10-rec 1) elist))
- t' l' Z4 X! {$ F (setq cur-10-rec (+ 2 cur-10-rec))
) H# N; m- Y& H: W ): T8 a) H' f: f1 Z- \$ A6 B4 _
(progn ;; else! B( w/ C7 v) x8 x* Q
(setq cur-10-rec (+ 1 cur-10-rec)). \8 K$ {/ u( `4 \+ f7 }
)
2 X: c% q4 j( @4 G2 V )5 E# ?+ `+ d7 r, q6 b* A0 N
) ;; end if rational spline9 `9 f! y7 P: E
(progn ;; else reset counters! R( R8 ?, I" U5 Q0 N4 Q5 \
(setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
* V e" q( m7 p (setq tempweight (nth (+ first-10-rec 1) elist))$ W9 _ i# Z- H p% @9 B
(setq cntl-pt-indicator 0)
( @, U+ V2 L$ k2 N) {! A% E4 Y (if (= rational_spl_flag 1) ;; if rational
* ]& |8 M( L: a( ^6 v6 k& X! M0 ? (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec8 m6 q# S' }6 o/ f2 X: A
(setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
7 f6 {2 q5 k" V# C )
, L" t/ y. h7 g { )2 e% g* C- X1 ^! Y6 h+ g) `7 y
) ;; end if 10 record& P7 U0 ?6 ^+ m+ P
% B4 I' _# G, c/ W) i0 |: J
;; Display cntl point, weight and ctr. Increment ctr.9 c1 D' _( \1 K" U
(setq cntl-pt (cdr temprec))
( }$ h3 i% ?' w" K7 J (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))2 W! }6 a6 ~" R* v. |- c1 V' h8 q
(set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
9 d- @& a2 p' [# |' T( `5 z" x (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
5 c- [6 z& n" W# f# m5 J (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
- r$ l o. k9 s (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
6 N. |9 h. B# _, c (if (= rational_spl_flag 1) ;; if rational% I3 V: u& F% Y6 K% y* P( I, X
(set_tile "weight" (rtos (cdr tempweight))) ;; disp wght( s8 d7 F. Q! |, [, I
(mode_tile "weight_text" 1) ;; disable wght+ Q) D; A% R8 n6 i' m
)
9 O/ X4 s4 [( d4 q4 [0 |7 l )) m2 |' J7 A g0 e& @
;;
( B& ^8 a" \% t. K+ B ;; All the spline info is contained in a single elist. We must do some% ?5 f, m$ P. d0 D3 ?
;; tricky list processing to loop through the elist in order to display5 I. v0 C7 e. x) q8 x5 x
;; all of the user data points., q* _# r4 g( D& _" z
;;4 G O2 w# J/ U3 [9 a0 O* ?
(defun next_data_pt ()
* M1 T, Y* `5 k5 e: m (setq elem-no 0) ;; elem-no = element counter
' M; x/ j6 a0 ^ (if (= first-11-time 1) ;; If first time, find location of first- B) A& r. s: A
(foreach list_item elist ;; data point element in elist
& \) g$ ^; S4 l3 w2 E7 { (progn
1 O. k. G+ p: s) u5 v (setq elem-no (+ 1 elem-no))! F. ~2 x0 r; M
(if (= (car list_item) 11)* f! W* V1 t. E7 s6 J
(progn
; G2 `* v* d; F" y8 m/ l (if (= first-11-time 1)# c) `: m7 i1 g$ u Q( v
(progn) j9 f( ~, U4 G" L! H& V
(setq first-11-rec (- elem-no 1))6 m" ?) ]. }3 J M" ~' S
(setq cur-11-rec elem-no)$ G J8 d3 |" g7 a
(setq first-11-time 0)6 p- |9 ^/ i/ R5 t& Y. n
)6 C1 Q2 X" r9 }+ X2 s7 [4 C5 V
)
# O3 |# B' N2 e4 n: X$ X )3 r* p' U2 b( N8 _% e8 [+ R
)
8 m! I3 e5 r2 g& @* F: z8 f )) p4 P: {: L4 o; K8 I4 X( w" y8 t4 J
)
& h+ b! [; h- s3 n6 z$ e )
& C+ o! R, u& x2 U. _ (setq temprec (nth cur-11-rec elist))* a9 [& S7 `2 Q/ ~
;; If it's not a DXF "11" element then we've gone past the last
2 @" K; u. ^) Q8 Y) m I ;; "11" element. Go back to first "11" element. Reset counters.) S0 c5 Y2 ^0 j
(if (= (car temprec) 11)
! k* R/ c. c k' d (setq data-pt (cdr temprec))
6 r; y0 E6 z3 S; t( ^- P: e9 O# \ (progn ;; else
2 C, q+ P8 M7 X! c# U (setq data-pt (cdr (nth first-11-rec elist)))
$ E; e& I* o: D, u (setq cur-11-rec first-11-rec)( t3 |+ ^3 G9 `6 G0 y. |
(setq data-pt-indicator 0)
1 v2 s8 U$ `" t* g8 P )
) _. e6 d( o4 Q. M6 e- c* o! @& I ); a) t- z! I. z
;; Display data point and ctr. Increment counters.
5 M3 J5 q1 _3 \. w% } (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
/ o0 `7 |+ X3 B4 Q2 T (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
* ?3 t9 a/ y* L7 c, D (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))5 ^6 ?: E+ Y1 w \
(setq data-pt-indicator (+ 1 data-pt-indicator))
, V; \2 q& P9 Z, P* B, ~' [/ e7 g' d4 v (set_tile "data_ctr" (itoa data-pt-indicator))
% t1 V: ^+ b: t* o) n3 _: E; L (setq cur-11-rec (+ 1 cur-11-rec))( O. f6 u" g: l1 v# n; i( `- d
)
6 h3 T; [) {) W. U7 X; b4 ^/ q ;;+ }# O$ [( X1 o* x( a
;; Modify SPLINE
, \: L% {/ p% D; ~ ;;5 X# ^# `+ J9 T& f' p- Y7 q3 S
(defun modify_spline ()# N0 R& X& I0 B2 j. [. k
(modify_prop_geom)
! K) z* z2 d1 h; S (entmod elist)
" I U; ]' s! E )# F9 L; C$ R! d6 C
- o( E1 M$ ]2 p" ^( K& [/ }) } (defun ddspline ()
/ G2 H$ M# y, ~0 Q9 u (if (not (new_dialog "ddspline" dcl_id)) (exit))) ~1 c! h3 L8 L/ D, ~& k2 J" W% q
(set_tile_props)
# d+ L9 Z0 N8 b, |2 h) ]2 K (set_tile_handle)
( ?3 ]- Y5 y9 `, O (set_tile_spline_props)
0 c7 Q5 _0 X% U# ?0 a9 ]# y8 j- _* b ;; Display first control point
3 {! E' \7 E+ e (set_tile_cntl_pt)6 F/ j; J1 S4 v9 o H$ ?
;; Display first data point _8 b6 N& ]! i
(set_tile_data_pt)
' e1 }; X `( w' P% ^: d; G% g6 Y0 K0 D: d. S( V1 q
;; Initialize flags to indicate first time through the dialog.
8 T3 E; C! N" I ;; For control points and user data points the "next" buttons, |2 [9 h) z+ m8 H$ u# ^) i
;; in the dialog call the appropriate functions.& x8 Q# X" [* n
(setq first-10-time 1)& E0 k) O9 m) w: N' F( {% r, E; g
(setq first-11-time 1)/ H4 b7 g4 W( O; W
;; initialize control point number counter
1 W/ c7 @* ?! N) r) U+ H0 m& ~ (setq cntl-pt-indicator 1)
; N% v$ R! M3 l+ l# X (setq data-pt-indicator 1)
( ^$ X3 G3 x, P7 T3 n+ @ (set_tile "cntl_ctr" (itoa cntl-pt-indicator))6 Q6 a0 ]$ B% R* i* K
(set_tile "data_ctr" (itoa data-pt-indicator))' e+ m7 b3 y! n. X9 X1 B. ?6 D7 M4 e
(set_action_tiles)
' `* [( U2 a! l" e: I R (setq dialog-state (start_dialog))
1 U& }# q: m9 a* _, e/ ]7 A
3 Z% J( H% ]3 P- a- L | (if (= dialog-state 0)6 b B, R F9 {! o8 p7 q1 i' ^+ ]! U
(reset)
) i5 ^! d5 j- v )
4 I7 U0 p( u* W" o% W$ q7 L (if (= dialog-state 1)* N7 Y1 h# z1 N: p( |
(modify_spline)% _# c- S2 h3 Y- N @) s
)
# G5 d. V7 E% M" D4 ^8 H, U5 i- ]( D )# m. N" s/ J' A( e3 [
3 D; g! N. h( O+ r6 Z$ x4 I2 e
9 o" h$ I2 S3 c. ^- s, r J) V
- z1 ?9 F7 N5 W" y; k ;;" b1 ~! G, V8 k5 b9 J- M9 ~; g
;; Modify DIMENSION
. G" O7 ~5 L; y5 f3 i$ Z ;;
0 ]0 X# g& @7 y' |' ?) M/ a9 ]# m (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
: u4 y; z7 V$ L2 E dimsty dimlist dimtext svtext dimovr sv_dvlist stlist0 F. s9 a& G6 N
dimtype dimsvcurset)
1 G" \+ ?" w+ t (setq dimtype "DDIMEN"
* R: g) s) @7 R dimsvcurset (ddimen_dimsty_restore)
$ n$ b+ M! d" B; [ )) w9 F6 y" L" e# [! ^
(if (not (new_dialog "ddimen" dcl_id)) (exit))9 H: I" P1 a+ k7 W' I, N. i/ C
(set_tile_props)" t. R- a2 P' K. u+ G" d
(set_dimen_props)
6 D" b! y4 w6 F8 p: h, D (setq dimtext (cdr (assoc 1 elist)))# e9 a6 m9 ~, M# }8 n
(set_tile "t_string" (if (= "" dimtext) "<>" dimtext)): y% r w$ [2 ]
(set_tile_handle)
$ T5 ^; f6 k/ e# u9 ]$ z/ e8 @ ;; Define action for tiles; { b* I+ x0 v, z ?8 R
(set_action_tiles)
5 Z$ G9 c/ l" a, @- T
6 W2 b& K8 M% V" n- p2 {) \ ;; Set initial focus to text edit box.' u5 u. D& d5 J/ P
(mode_tile "t_string" 2)* J( n o! A3 _+ L' h5 I! Y5 N7 a
* G; B' J. J! N5 ^: z/ g$ d- N
(setq dialog-state (start_dialog))" X- C0 D! `( o" g; J. Y
(if (= dialog-state 0)
6 q* S* i: j9 e5 B% k4 k% x; D (if (= ddimmt 1)2 j5 Y1 J5 {0 Q; o g
(reset)# Q# S% Q X& @) A
)
X2 x- h3 \. Z, n L8 h0 }! z )* d+ w+ d' ?! s+ O) R, g8 j
(if (= dialog-state 1)! [2 L2 u/ \. Z! z2 i" }
(progn5 X: p6 C' Y) A" j
(if (/= dimsty stname)
& {* T% E7 G; G0 Z5 z8 { (progn% ?/ `7 _: k9 Z- q
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
" I' ^& y) j# d) v ; doesn't have it.
/ g) w1 P$ F/ F8 [& q; m( w. _; M (if (null (assoc 3 elist))9 M% `: R$ I. [" r+ ? K3 s! e3 b
(setq elist (append elist (list (cons 3 dimsty))))
. b; ^% O, k$ }# M5 n3 k ; else just replace it.
) H- D- \( Z' E: a (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))) {4 `) R, y8 ]8 r* Z7 Z# s
)
2 H+ ^1 n; b+ w. c* V& a$ _ ; refresh sv_dvlist with new dimstyle.
* p4 G: i4 W! n; C" s ~ (setq sv_dvlist (tblsearch "dimstyle" dimsty))( N+ X& S2 [7 I7 H
)
8 E4 b3 A* Q% r B )
' Z0 ^" g# B* a; g X (if (not (null dimlist)) ; attempted to change dimvars
: X$ C# h$ }$ g2 _8 o& p3 z' } (ddimen_complist sv_dvlist dimlist dimtbl)
, }/ {3 p$ z! ~' P )
# K( g1 \* X' k3 K7 n ; Modify dimension text5 n' q# t5 H2 ^. F! }1 g" @( `7 A2 n
(if (/= dimtext text)
/ i. Q d+ U7 F. C4 m& Z9 a, @ (progn; V( B9 a; T5 d( l2 m
(setq dimtext (if (= text "<>") "" text))
( L0 E- R# X, E! @: q c (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))# T4 x {' o7 I0 g! z3 B: ~; v
)
8 I( ]* X# M8 Z$ D( ]$ g, L )
H; L! G3 O. G5 [ r& A (modify_properties)
1 W }; {2 ~' E% s7 y (entmod elist). z: X# v: k/ f& Q5 |
)
4 w8 f: W+ O9 ^0 G3 ~6 r )
7 t* V5 H% e' L8 j S" X (if (= dialog-state 4)
% c# V5 [( n; B) F6 ? (progn+ B+ v9 d: {( i
(setq ddimmt 1)
, e/ w7 {8 C3 a$ q/ D& b (if (/= dimsty stname)
* P ]3 M) o$ E) {6 x (progn/ ]: i$ t2 G$ ~% s) S
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
! c* @' ]4 y" |" c5 I ]! b! m ; doesn't have it.
! E! Y& w; U& q7 a- X$ I1 g6 J H (if (null (assoc 3 elist))
) D2 F5 U. m* v" T9 u- y7 W6 S (setq elist (append elist (list (cons 3 dimsty))))
& E4 x; m. M% c. B9 e. Y ; else just replace it.
0 U8 u* Q! W; Q; T- I+ X% O% I3 g (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)), B+ U H W: [; _% u- X- N6 Q
)
5 e' N( m/ {$ a: J0 Q8 ~# M ; refresh sv_dvlist with new dimstyle.
; b+ B4 {$ c5 r! Q& L (setq sv_dvlist (tblsearch "dimstyle" dimsty))& |6 _4 c$ P5 |; ^/ z0 A
)8 l, r( T: R8 N$ ]/ t
)0 U$ {" b, U& \- u, N
(if (not (null dimlist)) ; attempted to change dimvars8 T. o" e2 s, f4 J& g# e& ^
(ddimen_complist sv_dvlist dimlist dimtbl)
. c- c. r" i" R* x' X- L$ C )5 m" Y" o* w3 _$ K
; Modify dimension text2 i; _& V+ \$ ]8 W
(if (/= dimtext text)
' F2 B) _: S8 R. d9 l (progn
1 _& \2 f" W* M( N (setq dimtext (if (= text "<>") "" text))' [+ T. t$ |" T6 [
(setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
9 N; R* [3 h B& c7 U, A )( h9 q9 `- h) K
)
) \. Y/ J/ i2 M6 r* \) r+ A+ J (modify_properties)
8 s3 q& |1 q8 K4 z% M, G% [2 a+ b (entmod elist)
/ h2 s2 G& `. J: F% M: D( a l (safe_ddedit ename)
; q/ Z& [1 j4 o0 O; i$ A: h (setq elist (entget ename))
/ X# y2 k4 b* P# i. h& t! @6 h& H (ddimen): N4 |2 j7 q" r4 _9 S" Y9 O
)4 |2 \% j3 h0 g1 l5 t u- n3 o, T
)+ m/ \2 M( n5 F% n- E
(ddimen_setvars dimsvcurset) ; Prepare to exit& a: v, N. Y, t$ m; w" n
)6 Q" M! U1 i/ u3 l
. D# S/ X( C9 X3 C ;;
1 k! `* P" Q* z5 Z9 [ ;; Modify TOLERANCE
4 o# p1 n" {, O# x5 O7 Y k ;;
! H# z- Q0 ?/ p j (defun ddtolerance (/ a stname n dimtbl
9 U s: m7 w J6 J& r dimsty dimlist dimovr sv_dvlist stlist dimtype
/ E6 t% c$ p( W- _) [% O dimsvcurset)4 l9 F# L4 Z4 e) P4 ]
(setq dimtype "DDTOLERANCE"
8 t0 I# ?1 n# x5 Q dimsvcurset (ddimen_dimsty_restore)3 V Q" w; y& h3 V0 ^0 h
)$ Q" J3 b9 c* |! K9 f! d
(if (not (new_dialog "ddtolerance" dcl_id)) (exit))7 a" m/ O3 e- Q, S# V
(set_tile_props)4 E$ L- r1 s/ `& B8 L. M" ?
(set_dimen_props)$ h( C- d- c0 h0 V* u
(set_tile_handle)! E5 W7 [& a, B+ x" z A
(set_action_tiles)
7 p9 R R6 r+ A; ~; l (setq dialog-state (start_dialog))7 ?1 o8 v. i. G0 s3 z3 Y! ?0 z
(if (= dialog-state 0)3 z* n% ]; V/ j; E/ N
(if (= ddimmt 1)
8 y K6 Y' \0 {* h (reset)
3 p8 I% c# X3 v8 H6 n [ )
" \/ y, |1 e/ h )
# }; L' d; X, X: f2 { (if (= dialog-state 1)2 C# ~( ]9 c; y W6 t" z) d2 ^
(progn
, _# ]. |- N7 W* I7 B7 g. v (if (/= dimsty stname)
) r' b1 g4 T8 F: \$ T( k7 G (progn- f! q) \. t7 ?; u: Q. Y
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case" u+ r5 S) g/ O
; doesn't have it.8 G6 g0 u2 h* \
(if (null (assoc 3 elist))( ^% }& p+ f5 _* E! @
(setq elist (append elist (list (cons 3 dimsty))))
; r3 g" \& O& E6 b ; else just replace it.
) F: s A8 A6 @3 v8 c (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))$ y% `- N2 M$ A) j. b! ]
)
& N: r2 f' M. s3 [4 p5 ?9 s ; refresh sv_dvlist with new dimstyle.9 i( h6 a1 G+ N; X8 g
(setq sv_dvlist (tblsearch "dimstyle" dimsty))
) z I! E+ [. z3 [; Y+ {) V# c, C+ S )& w- b2 Z# \$ W% C* h& _
): h" C; C* E9 d% t' E) S; a( M
(if (not (null dimlist)) ; attempted to change dimvars! s$ l- E" ]0 Z5 E% w. e/ f2 v" C2 C
(ddimen_complist sv_dvlist dimlist dimtbl)
! h2 U4 D: C# a+ p6 ?. h7 f3 K )9 m* O( C+ i/ u6 E* [
(modify_prop_geom)
$ U' E5 B9 j. E! \ (entmod elist)
1 S" N+ \0 `* n& g4 I3 @ )+ G8 a% }. J8 r2 i
)5 M K4 I5 |- W
(if (= dialog-state 4)1 O. @4 ~& ]! O8 Q% S; a9 H$ N9 w
(progn
5 O1 Y* ^) c/ @" [ W; T/ C- m (setq ddimmt 1)8 R% t; }5 V( A5 D8 Y& ^
(if (/= dimsty stname)/ _: Q9 @6 a2 M% k8 B; V" u
(progn6 T: ]+ f8 U6 x- [% f6 R
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
0 v4 O" e/ r, l/ b8 ~ ; doesn't have it.# D, ^/ w. ~1 u5 D8 H
(if (null (assoc 3 elist))
1 l2 O, h' B4 T: O (setq elist (append elist (list (cons 3 dimsty))))9 |, i* S0 Y! m @5 l" @
; else just replace it.
" F& r G5 M) {! X' |6 O5 e6 K) Y (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
8 p" `8 P3 A- M5 F# t$ F$ L8 W* V6 s ) B9 a' u& o9 y+ s
; refresh sv_dvlist with new dimstyle.6 F4 D: {2 @, M# d. E# O: _
(setq sv_dvlist (tblsearch "dimstyle" dimsty)): L1 M+ R+ y6 c$ y
): I0 U) s3 ~: r# h/ G7 G
)
6 z% }: Y; W* n9 ], i" c (if (not (null dimlist)) ; attempted to change dimvars& ^; N! u# [. H3 @/ z' M5 b E
(ddimen_complist sv_dvlist dimlist dimtbl)
/ ]* C1 A; } b9 l' t% N )" n2 y! j) ]3 x2 p# Y. m* z( E, r* A! x
(modify_properties)" w f3 W7 [& }2 Y, @* }$ @1 S
(entmod elist)! M9 }7 ~1 W9 T
(safe_ddedit ename); [. L5 x0 G. P8 f' u
(setq elist (entget ename)) e# r9 R4 t3 j& I
(ddtolerance)
! y! B; A9 R8 Q5 Q; L$ I; [ )/ m0 M% h3 G9 u6 [
)
4 N( _- ]% n4 e3 D, w' i (ddimen_setvars dimsvcurset) ; Prepare to exit7 R" A0 i4 g# w2 b# e0 A7 C7 {' V" P
)( ]! D0 l6 }% k/ z; W: K3 o% G
; G5 G! K3 M/ | s' v
;;
4 l" o+ ^! U( Q ;; ddimen_dlg - jump to ADS ddim module
* J# s! F4 x D, V* q8 I/ T6 i ;;
. h4 N2 O1 I! h, l0 x a! e4 B
(defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)0 F3 l2 P4 O# Q3 N. o* e' t4 Z' z
0 \! \/ v5 Q. s) g ; Jump to DDIM with overrides if any.
2 l- z, h6 i" ^ (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry! l2 v) s! G$ a$ H" k4 U" W5 P
((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format- s0 x1 b. L/ Y9 D) ]
((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
; J* \8 L0 `, t0 { )* |/ u; ]0 j0 j0 `. R0 W5 w9 _. Q9 O
)% H! r+ G% W% q+ a) `
" O8 p; B% q! d: B% G* F ;;
* r' ~6 V1 I! a8 D) i ;; Dimension variables updated are stored as overrides.
. [. f: r, k- L* k9 n ;;
2 w$ M$ ~2 d2 T6 c
8 f& j' b3 k6 U (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
. `" o$ j# `9 l& ~1 O* X dv dime commandIssued)
( d3 }$ ~' y6 i- | v: O2 i0 J, o: @, `! [
; Here we skip the following first three items:! D. y9 U+ H" t& f/ P
; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
* Y7 ^, T. Z8 E ;$ r& ~6 c1 ]; I; f
; The list comparison immediately begins with dimvar.- K1 A' [ M! z1 \
;
) ?& D8 l1 P( \ ; dimolist - original states of dimvars
, i2 m1 J @3 S% y" ] ; dimnlist - new dimvar list which is of the resbuf's
3 S: K$ v% n' n. ^% x5 q ; dime - entity name for the dimension
( J1 [7 W" Z4 n2 x ; odvar - value of dimvar for the dimolist& t( G8 V, V" b `) i9 u6 o
; ndvar - value of dimvar for the dimnlist$ V9 z: Q& o6 b" K
/ e: a& ^" w! s/ K2 I1 C (setq i 3" O; ]9 Q) k2 o7 U4 J
dime (cdr (assoc -1 elist)); d) ?- {3 n1 _6 c9 n! Q: D0 Q$ a
)
! L( y3 _2 B, O& k% U9 T( b (while (setq odvar (cdr (nth i dimolist)))
# ~( n0 d6 g' G3 F z8 ^ (progn
0 D4 L& _0 A7 L1 a (setq ndvar (cdr (nth i dimnlist)))
) W/ i- k' z/ n v: r: |) O- S4 H (setq dv (nth i dimtbl))% U+ @8 U' k8 u2 \1 Z2 q! G
(if (eq dv "dimtxsty")+ `4 T" O# h; h
(setq odvar (cdr (assoc 2 (entget odvar))), p/ r% U U2 x! B
ndvar (cdr (assoc 2 (entget ndvar)))
! i5 K- p1 u: K, c) N6 M; s )
6 b0 ~; [' X/ @- x/ s )8 p4 J+ \- ^6 W8 c& e/ }2 J
# T+ a' N* ]$ m0 Z
;
, \4 h' V+ S2 ?7 W" D# z, s ; In order for DIMOVERRRIDE to operate correctly with string
/ N$ a/ E0 T9 @( C$ a9 r ; based dimvars, we must pass "." versus NULL strings.$ F, P# |1 _0 c% k j! X& @& O
; In this case ndvar is the new dimvar value the user wishes
9 C4 d3 I$ y5 G1 o ; to update on selected dimensions.
& k; N, e7 g$ |1 I- c8 D ;
# H0 M2 C6 k, R0 h; z' ]# z& I+ A7 R9 } B (if (/= ndvar odvar)3 V' S# U' i+ y& E9 \; I
(if (= 'STR (type ndvar))
) [1 d1 d* h; X. ^( Y (if (= ndvar "")( d0 {% z( k4 d+ d
(setq ndvar "."))))
# r7 _4 F: u2 o. D( G! ^6 @" w8 W8 v4 i1 b9 X
(if (/= ndvar odvar)1 _: k1 G8 X* ~7 A
(progn8 h+ F) y! }: t: O) U! q6 ~
(setq dv (strcat "_" dv))- _5 Y, Q3 y2 d
;
3 z$ ^% L' h9 M7 R% R- f ; Start the dimoverride command$ z5 R8 ]9 c1 O5 q" x
;+ T3 O( f% x1 ~
(if (not commandIssued)- m. U- b# _/ H ~. ]5 R) z
(progn# T. g/ Y4 m, Y! W0 F
(command "_.dimoverride")
9 ~7 S3 {7 z8 s: | (setq commandIssued "T")
) m% f2 o- x; m' X( y( |- } )
4 l. [1 ]+ `' m: d& O) n )# y2 h, y$ v0 ~' i/ U- s, ]2 I
;
4 }2 P9 |9 k/ w( u& C% y ; Issue dim overrides5 i2 H( N* y# D+ u% \4 }) u, x
;
, H) C: j7 Q2 T1 G* ` (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
' B: f# i; f8 M' [2 T- v! Z& b (or (= ndvar 0) (= ndvar 256))5 O4 W$ ~/ ?) z) y8 s
)3 `8 H! M! H* H+ C, J
(progn
" @/ y |/ P) F) p. c3 S (if (= 0 ndvar) (command dv "BYBLOCK"))
( u% E* d, f. W( g) J (if (= 256 ndvar) (command dv "BYLAYER"))4 `4 h6 u2 n V3 B
)
: ^$ H4 Z9 V! q+ J3 g% O2 Y (command dv ndvar)' g& S; h% ~( k) a
)1 l1 k5 H6 E" C6 G& \: i0 K
)8 ~2 P9 Q6 C4 \) k6 c
)
- P6 L# b, n4 N' S (setq i (1+ i)): H2 d9 X) ]) _- c4 y
)
, b3 T ~& B/ m% o m# b6 I )
2 R8 B# L6 D* B ;
9 s: v* x( Q6 a, B' \; p) ` ; Select Entity and terminate command+ j5 w8 x6 z* q5 j! B8 l! i" M' P+ g
;
9 K/ B" \, R, }9 x( f( k$ ` (if commandIssued
/ R2 f) ~1 X8 n5 T r! O (command "" dime "")2 F* o( T1 G( V7 P
)- [3 \, l0 k6 Q( K$ [8 ~- ^. `6 e
)
# V' i! @3 R2 ~% f% j5 z. h
/ Z/ f. ?0 {. {' f E ;;: E$ T6 [4 D& b8 D& c6 x2 I$ h' B6 Q
;; Get style name currently selected style name.
; w' j6 E/ t) K0 n% U. ` ;;
8 p( R7 j7 B; w3 d( k4 u* {( ?
, q7 Y y" b- [$ y9 x4 S& Y (defun ddimen_style (/ dimsty)' Y. ~1 |+ @. {# m7 w6 ^
(setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
, a0 c3 f$ P( l& F% I& v6 U1 ^. g dimlist (ddimen_getdimvars dimsty)7 p* V) j* ?1 x) M3 P& D f- q
)
4 w4 g, k6 u3 I0 d' N dimsty
, N1 W* b0 z5 a7 c4 d) d )
- w4 R' v: ?4 U9 Y" o* z/ a
( [2 R; D) d& K ;;
3 W; e) i7 j* U2 I: b: T ;; Set dimvars
5 A/ ~8 c" K5 G# E! q4 r ;;
4 ?. g( W$ u: X! G3 `) ~ (defun ddimen_setvars (dimsvcurset / dv i)1 r$ f0 Y: e3 r# @3 Y; l4 x+ I
(setq dv (cdr (nth 1 dimsvcurset)))
0 i' x. a0 K5 ], b& l1 ` (command "_.dimstyle" "" dv)
9 I( k# j+ j( ~3 C: ]( x+ p5 Z1 y (setq i 3)
$ s6 `3 y8 B( [8 N9 m6 p (while (setq dv (nth i dimsvcurset))' e1 I. h' N- ]4 w' o
(progn
; y u% e! u5 \/ O% m& w; p (setvar (car dv) (cdr dv))
3 P1 _) k5 K3 n% C+ a (setq i (1+ i)), M* _" T, F3 }9 Q: C
)9 a. R' p! Q J- |* X+ [7 H5 I& X
)) D8 S" c6 m) z/ ^8 ?1 V
)2 \0 O. f. U, z5 T: J
;;
" R _0 `) g x+ ^, U. K ;; End-of-dimension7 W1 c( S; A& e
;; ==================3 |0 n, S2 N* A2 b0 G! S* [
( A( a- l& ~' _( k
;;
% K" ~* x! f) _. S ;; Sub-dialogues for properties. Common to all object dialogues
' C7 b0 A) k+ } L) o0 t ;;
( |3 w1 m; D8 @4 y* d' m ;; This function pops a dialogue box consisting of a list box,image tile, and
6 {. {9 n% _: w# R4 g ;; edit box to allow the user to select or type a color number. It returns
% S0 _/ H% z! Q5 A+ n3 q% u1 C ;; the color number selected.
+ h; E* c) m0 _5 { (defun getcolor (/ old-idx colorno cname lay_clr)
8 u8 Q9 k& \! M/ g (if (= (get_tile "error") "")
" U1 C/ D; r% f& J3 T) L7 j (progn
0 N4 a0 M4 W, z1 {3 c0 P( B" ` ;; Get the color associated with this object's layer, for use
/ P" ^. W5 g5 B6 { ;; in the color swatch if the user selects color BYLAYER.
) F2 q8 w R4 c1 E5 g (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))/ _$ W( \( g* j$ Q. ~9 V
(if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))- y5 }( G& c! O7 X y0 _8 K f$ \" O
(progn
" j9 \& R$ L) |$ X (setq ecolor temp_color)
( K+ q8 h4 `0 M4 u4 w (setcolor)
9 g3 v* D' g! ` )
: g K% |8 |+ N0 n (setq testcolor temp_color)
) `; B9 k5 k: B' g2 D )
, D8 u+ ^4 \/ K; ^7 J! q* V7 c )
, J" V+ ?( T7 D2 _: { )2 e2 t: q; D7 d! _6 ^) W3 J
ecolor1 x& @( ?) {9 K7 C+ O U
)3 e5 b: J& C& i4 M# x4 T# `* g7 ]
;;, x+ ]9 K7 z4 d
;; Function to set the color tiles.
6 M" d! o7 S, |2 S* R (defun setcolor()
, X5 S& u: o+ o5 ?& K1 l (cond
- C; X. z# w) p( \3 ~) P ((= 0 ecolor)* U% L' i: B6 S3 o- B8 |1 f# _
(set_tile "t_color" "BYBLOCK")+ C: Z- ]3 g% A$ `8 P* F6 F
(col_tile "show_image" 7 nil) ; show BYBLOCK as white
( _! ^% a+ @: R5 A; c )
+ \" ~- ~2 v u' J4 H8 X& H+ u U ((= 1 ecolor)
- W' B$ g- h8 f5 N: P; Q4 W9 { (set_tile "t_color" "1 red")& F4 o* w% f2 N4 @$ O! g
(col_tile "show_image" 1 nil)
6 H: k& N1 M1 K: d )
/ u* l J! I& {5 P4 M6 a a ((= 2 ecolor)
; [' ~" H3 ^; k0 K (set_tile "t_color" "2 yellow")
6 H; G. g8 F2 K: J6 R+ q2 z5 B (col_tile "show_image" 2 nil)
f0 a; }' A+ E, x! n* ^ )- I- q% G7 W1 z: i S
((= 3 ecolor)
9 ^4 \) J( u; ^" `# i3 Z (set_tile "t_color" "3 green")
( }. ~% M" V3 F* v { (col_tile "show_image" 3 nil)
" m: S: C( B# i |* U& h' t )
* d) e& }$ z' T ((= 4 ecolor)
; {# H! y9 h8 K6 Z3 e0 B# Z (set_tile "t_color" "4 cyan"). k6 e* _8 w# `' W
(col_tile "show_image" 4 nil)9 ~9 L/ T6 z9 d0 C t% [7 b
)' T2 L( B4 \9 p ~
((= 5 ecolor)
/ P8 C% p% `3 p" |7 D (set_tile "t_color" "5 blue")
! s! P G1 D. A# E0 p5 v$ P( f (col_tile "show_image" 5 nil)0 b3 E" v7 x9 E% \* _( z
) O: H% h8 U6 u/ K2 _' }* B
((= 6 ecolor)
, W/ U' ~/ ~6 ^$ X (set_tile "t_color" "6 magenta")
5 `0 @+ c7 E" D: F( F (col_tile "show_image" 6 nil)
+ C% z, }' M! f$ S. x: g )- m! s: C5 y* j# R, V! s
((= 7 ecolor)4 O% F2 Y9 [" ]! T1 X, P, p! W
(set_tile "t_color" "7 white")
9 M- X( Z, ?( E- O) h) k3 e& Z, P (col_tile "show_image" 7 nil)) c' i/ [& r( ~: Z4 [+ U
)
/ p6 ]. ^2 [% W$ L ((= 256 ecolor)
% }4 v J/ X3 n, f (set_tile "t_color" "BYLAYER")
' a V" B" `% ]4 o5 Q( k3 Z (col_tile "show_image" (bylayer_col) nil)
# |/ S# [ `, b$ N! p+ e) X" A' u )0 l, k, Z) M M) s) I1 l, H2 B: F
(T
3 A O' D; b# E0 J% h& Z! W (set_tile "t_color" (itoa ecolor))
- s4 s# ?( y0 b0 h1 P (col_tile "show_image" ecolor nil)
0 k. n l: Y; H7 P )
" E$ K5 ^' f' u) ] )( E& _. L' J& V G# o
), C* z$ H- T: c, r
;;5 ^8 u, e1 A- n x- }! X! ~
;; This function pops a dialogue box consisting of a list box, image tile, and
! L/ i0 w2 ^1 k% P- n F ;; edit box to allow the user to select or type a linetype. It returns the! W$ |9 }4 {# D$ Z
;; linetype selected.
8 L6 @( c; q1 w- G% ~0 W% G ;;; Z J$ [5 m% [7 r. ?( Y6 l
(defun getltype (/ old-idx ltname)
- L& l# m$ K4 R8 m- J/ W2 f (if (not lt-idx)& R) G& |% m2 ^( h( V
(progn2 l! j9 D+ K* F
(make_lt_lists) ; linetype lists - ltnmlst, mdashlist
4 j' L1 x9 j6 q0 e! ] (cond
: M) G+ h, g Y ((= eltype "BYLAYER")
+ U* r1 W( f0 ] (setq lt-idx (getindex "BYLAYER" ltnmlst))): M* p' t* e3 _3 G0 {) @
((= eltype "BYBLOCK")
) W ]) i0 v* U2 ?5 a7 v2 n, b (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
6 i' \* S- R7 ]6 j8 f2 I (T (setq lt-idx (getindex eltype ltnmlst)))! Q. V, l0 P# R7 b* \! g/ V
)
3 ^; L7 d1 Y) K1 V5 G) H9 ] )8 Z) n% V; K3 p( k6 B) L
)& `/ Q, w1 T) T4 c/ N1 |5 q
0 O! E/ Y+ c. v l9 P- z( d (if (= (get_tile "error") "")
* L9 @8 Q% N6 Y0 Q0 _ (progn# |* {; p' A! v; H7 E
(if (not (new_dialog "setltype" dcl_id)) (exit))
/ W* E; c2 w4 `, g (start_list "list_lt")4 a9 O7 t5 M6 b9 [" Q
(mapcar 'add_list ltnmlst) ; initialize list box: q! |( F2 \1 x0 c7 i7 C* J( P
(end_list)
0 l5 ~! R, h* k (setq old-idx lt-idx)
5 Z/ i7 k/ }1 [9 @' N (ltlist_act (itoa lt-idx))
' J9 G9 p" G. S. j, S2 H5 R8 S
x. Z& g8 {: J5 \# O5 f+ L: p (action_tile "list_lt" "(ltlist_act $value)")- |, {1 Y5 O4 P. S+ t0 `/ ]
(action_tile "edit_lt" "(ltedit_act $value)")
7 J: K5 b6 k! Q& n (action_tile "accept" "(test_ok)")2 R B: A: u* v) f( }! r
(action_tile "cancel" "(reset_lt)")8 v* E: b7 t) H: G. g" e5 @
: X, Y, j4 x( u6 R9 x
(if (= (start_dialog) 1) ; User pressed OK% N5 p" G! X/ C( A4 L- l, i h
(cond
) _, F. o" R) h9 o ((= lt-idx 0)8 k [9 \- ]' Q
(set_tile "t_ltype" (bylayer_lt))
; N" n9 p1 H9 ^; ^+ y; f$ O8 o "BYLAYER"
+ m/ q3 V3 e5 @* B7 o, K1 m. M )' o: _# d& X' o4 [7 i
((= lt-idx 1)
3 {( U3 B" t+ l. A2 B* M+ g (set_tile "t_ltype" "BYBLOCK")6 M! q+ W5 P# v7 h8 ] o5 u4 {
"BYBLOCK"3 w/ F4 v q1 e$ a% L
)
* e: |' T- k0 T+ ^6 i (T (set_tile "t_ltype" ltname) ltname)
5 k; b3 `0 D+ E! B )
* m m, L- C; [1 k" C" J eltype) Q2 d$ u. e& G& t L; \
)' E, ^- S" w0 C- u
)0 J' _& q7 ~; I1 X8 f# [
eltype( c. G* k# f: c! ]+ e$ [8 Y
)0 m$ g4 o' j3 f) T
)7 j% h% K+ o5 s: V8 X
;;
# k. _. F$ W2 p7 a8 a! _0 @9 a ;; Edit box entries end up here
5 Z) W1 g0 I% P& v/ Z (defun ltedit_act (ltvalue)
! F8 @" ?3 X d) R2 x (setq ltvalue (xstrcase ltvalue))
! T7 ~0 L7 W6 u. H( ?+ R1 | (if (or (= ltvalue "BYLAYER")
: X, h5 B) r3 S (= ltvalue "BY LAYER"))9 ?1 T% |& y" ~( m X# t% M
(setq ltvalue "BYLAYER")" m _/ S7 M. J' F% }0 C) F
)5 h! {0 q) F X9 z7 F7 M' D- I) {
(if (or (= ltvalue "BYBLOCK")
1 j4 I% r' e" @* z, N (= ltvalue "BY BLOCK"))) B. T8 p. w' a( F" z9 ?: [7 M9 G' V
(setq ltvalue "BYBLOCK")+ J+ w4 L2 l. l3 O( [7 q2 b
)3 s% V& k' Y. g. m3 Z. e$ X+ D
(if (setq lt-idx (getindex ltvalue ltnmlst))2 f- x) f. w- Z' ^/ z$ o
(progn+ }' g" \! x: t) k4 k5 \
(set_tile "error" "")( n. Z4 ~& k" P3 W0 F! u
(ltlist_act (itoa lt-idx)); u- B6 O- |4 ^! I. ^7 I) X, }' H% Q
)( s* t6 t# c, s+ {1 L0 M" r
(progn
0 G7 o4 ~0 ]2 h6 ~0 \" n (set_tile "error" "Invalid linetype.")
# D4 \% Y- P% w: t( b (setq lt-idx old-idx)$ h/ Q5 F; X* K4 E6 F
;; (mode_tile "edit_lt" 2)
- A5 X& y5 C/ f) e% h;; (mode_tile "edit_lt" 3), C' s1 S' e' O7 W0 J6 s
)# W. m5 [# a. M: B; ~3 k; y
)
+ T G8 T1 O+ @1 L$ h* ` )6 R: G7 {, a' s: N: s
;;
e# C% X: Q. E: s n ;; List selections end up here. Update the list box, edit box, and color
3 H/ C( S. n5 G5 T; Y$ q7 H- d ;; tile.
/ v0 ~! J% m3 A- q1 Z6 O ;;4 V; F4 k( ?# ^* Z/ C' K
(defun ltlist_act (index / dashdata)
1 _* _- {! c5 x' R9 k4 O (set_tile "error" "")" ]* b4 E( d% S+ D- P
(setq lt-idx (atoi index))% v' B' v6 o$ A2 Z O1 N$ p# B- z* T
(setq ltname (nth lt-idx ltnmlst))
: O7 j0 t) k. L (setq dashdata (nth lt-idx mdashlist))5 w: u! Y& f' d/ F7 z, ]
(col_tile "show_image" 0 dashdata)
8 l8 E% a# b1 E# C3 }$ I) j (set_tile "list_lt" (itoa lt-idx))
& p( B. J5 ?$ D& y (set_tile "edit_lt" ltname)
/ f5 l* e7 v1 c: z6 J )
+ h) H$ M4 t% V9 S ;;
* r9 z; b1 r2 ]1 g8 l) Q3 a; d' K* v ;; Reset to original linetype when cancel it selected
7 _0 ~2 m2 o( e ;;1 i2 p3 h, |5 _% F
(defun reset_lt ()! Z" \) w! Z, b# s
(setq lt-idx old-idx)/ @5 ^- l1 P# X1 d4 V. h
(done_dialog 0)3 c# R: X8 p! U7 ]
)
0 P1 g( j# _& I) C' K ;;2 }) @: ~ p, G
;; This function pops a dialogue box consisting of a list box,image tile, and
4 m- I# X* W3 M% r, V. \ \' K ;; edit box to allow the user to select or type a layer name. It returns the, P1 C. D U7 D
;; layer name selected. It also has a button to find the status (On, Off,6 N" }. X% s6 N* v! D L% k
;; Frozen, etc.) of any layer selected.
. ?9 j P8 j9 @( |7 b ` ;;
: ]2 L' q* v7 V6 a (defun getlayer (/ old-idx layname on off frozth linetype)
$ ?% F8 w" R* \6 I1 |' _! c' a ;; Create layer list the first time the layer
& Z6 c. W; \, j& k6 m ;; dialogue is called.
, p" u8 N8 v1 \- l (if (not lay-idx)" O+ a; Q/ g s1 f6 ?0 w/ Q- d* n) ~
(progn+ N% l2 _( M0 L( {
(make_lay_lists)
" ]& c5 [- O/ _5 ?5 ~+ I; i. z, v (setq lay-idx (getindex elayer laynmlst))
! ~4 j7 r7 U3 K) R8 V )
% A; {+ c5 D# Z& x+ w+ Q4 e2 Q! w )4 z" Q7 V; G4 E4 \8 ~3 x0 C' p0 K) W
% k. V& Z+ N' s' h6 ] (if (= (get_tile "error") "")
% h9 d! `+ M) }7 g0 g: D3 T. m" q (progn3 [+ A/ e/ Y2 u t- T q, V
(if (not (new_dialog "setlayer" dcl_id)) (exit))
1 [. s) T$ v b0 V5 x (set_tile "cur_layer" (getvar "clayer"))3 N U/ ^3 s5 b5 \( Y2 T
(start_list "list_lay")
0 n' n% v7 f6 K9 E# N# w% u( g" Q0 Y; \ (mapcar 'add_list laynmlst) ; initialize list box
* r: l' `/ W- i6 ]& U% l7 J0 p0 g (end_list)2 Y1 B3 s/ N2 g- ?( P E
(setq old-idx lay-idx)
; D- t$ H4 A! D! p4 k2 v (laylist_act (itoa lay-idx))8 ^+ K3 z# n" s+ ?: v' q1 |
(action_tile "list_lay" "(laylist_act $value)")/ u$ d/ G E+ U: t0 K; L
(action_tile "edit_lay" "(layedit_act $value)")
6 `9 ]) Y+ \2 E# Y% Q (action_tile "accept" "(test_ok)")
7 j2 [ @4 W5 o5 N2 x (action_tile "cancel" "(reset_lay)")
5 M; _. s9 _7 W0 {7 Y( @# ^ (if (= (start_dialog) 1) ; User pressed OK. Q! X5 e4 _5 l. P, y. d& B3 c3 l
(progn
: n& |7 z! u2 O! c1 n. q9 y1 ~ (set_tile "t_layer" layname); e# {4 x% C x( c
(setq elayer layname)3 H6 }: n3 E3 y* Q# G. I* J; g
;; If layer equals bylayer reset color tile
9 R/ J7 {' z, v (if (= ecolor 256)
; y8 }% ~4 F, W$ M0 J$ t9 B# v (col_tile "show_image" (bylayer_col) nil)
: \( `, f! O0 T" h9 N* Z4 p$ x )
" y& W! a' Q& d, S y/ H layname
9 X; R1 y0 Z5 u f0 R0 g6 ~ )7 L5 @3 R* e9 b
elayer
X9 e9 w' z* n7 p& o) k8 o* [ )5 }/ a) q1 I! u4 E4 p! b0 n2 o) _
)
+ @# M! u; r; z3 u1 j; v elayer
* M5 S$ c$ b2 C2 v' R )1 M3 i! g7 V. F! C9 n" o( D
)% P3 X, ]( `7 H- O) N
;;
6 N' d3 k; R# ^- }2 E3 ]) T ;; Edit box selections end up here. Convert layer entry to upper case. If
7 Z1 V2 T" ^$ C. v3 s ;; layer name is valid, clear error string, call (laylist_act) function.9 o$ f( A6 r2 _( Z7 V! U
;; Else print error message.7 D( ~2 j& J0 R) e. ~1 q% E3 ?
;;; B3 l$ {) x, w# P& q
(defun layedit_act (layvalue); T* n4 x( F4 C8 J1 O; N/ M: j
(setq layvalue (xstrcase layvalue))
3 `; q7 |6 D$ W (if (setq lay-idx (getindex layvalue laynmlst))- L: O9 j+ S( V8 p$ e9 J
(progn, _5 Y6 I" t& \7 H
(set_tile "error" "")
; B. ?* T8 d: I8 n1 j6 j2 U (laylist_act (itoa lay-idx))' a( r. g j3 B7 ^/ j5 ?
)
* @9 \% _1 c' X, |5 ^, o (progn7 T( E" N* b o+ U( y6 q8 b+ M
(set_tile "error" "Invalid layer name.")
" B' t1 `$ ~1 i;; (mode_tile "edit_lay" 2)0 g: v" g( u: w& R) e
;; (mode_tile "edit_lay" 3)9 t9 l& {& B* y$ S; f8 }
(setq lay-idx old-idx)5 i J6 A9 |( M
)* a" ?* H, E/ p/ _
)
" A& y |5 s- m; ]# x )
0 b$ L2 Y3 Y! b ;;, C, i7 G) B( H5 m6 N$ T$ H/ d L
;; List entry selections end up here.8 f ?" R* ^# Y" n
;;
1 K# n9 v2 p5 J) B3 x- e! d# Z (defun laylist_act (index / layinfo color dashdata)
2 ~" s. E" {. R. O# J4 e0 z* O ;; Update the list box, edit box, and color tile.3 L, c- K, U4 |( b+ {4 R$ o1 E
(set_tile "error" "")
/ ~) c. I5 Q/ A# H% U& k# C (setq lay-idx (atoi index))
4 B; u: \: g L. @$ f4 v (setq layname (nth lay-idx laynmlst))0 y# E& a+ A$ h8 C% K; m5 h) j
(setq layinfo (tblsearch "layer" layname))4 x, q$ S, F3 P$ a
(setq color (cdr (assoc 62 layinfo)))
y* e0 _9 L8 v( A' Q/ v( ^8 p8 H (setq color (abs color))1 P p# F% G/ f) z" Q: U6 p
(setq colname (colorname color))
* m- u& E5 K* H8 R- J8 H: _! z* | (set_tile "list_lay" (itoa lay-idx))
G$ m$ G& S1 d$ m (set_tile "edit_lay" layname)
/ {3 b9 g$ }" o ); o& ^" X" P, P% g5 _& Z
;;5 r: x. C* y1 t b: Q; y4 p
;; Reset to original layer when cancel is selected. d+ F0 M8 i' U; h
;;4 V" ~/ Q' h# z
(defun reset_lay ()
a! [/ V7 |0 Q (setq lay-idx old-idx)6 Y: x3 @/ ?! }" E' }7 ^$ S
(done_dialog 0)
7 |) [8 t7 V9 V+ B. k* { Y0 j )
6 x4 R9 d( C5 X8 v# G0 w, W ;;4 v) |. W8 T9 R- g6 a' y! \+ p' `5 L
;; Checks validity of thickness from edit box.2 d1 Q) Q+ ^1 v2 A, p# ]) O
(defun getthickness (value)
6 Q, @ U# D' D) q. H (setq ethickness (verify_d "eb_thickness" value ethickness))
2 {/ ~2 y/ g+ X; s7 @/ e, X/ F+ c ), K7 D- G' ]1 x- S6 _8 A. }
;;
5 ]- q# X% s, F, {$ B7 { ;; Copy of (getthickness) for ltscale. If more, make this function
7 q% {9 ~6 ~1 ~6 e ;; generic.
, A, O' |% L% H1 f4 w. d( ]. a: h2 x (defun getltscale (value)' y4 p2 Z! a- H* u5 [8 i
(setq eltscale (verify_d "eb_ltscale" value eltscale))
4 {( i8 c: X9 ^6 q J )
/ O% l5 \' D+ v1 R ;;& z, P7 a! V6 b: I5 Z1 T+ z1 E- u
;; This function makes a list called laynmlst which consists of all the layer0 ?0 p# h. C8 Z/ ?
;; names in the drawing. It also creates a list called longlist which) x7 C' q0 B F7 m5 @
;; consists of strings which contain the layer name, color, linetype, etc.2 h6 ~6 K5 J! A$ J' |0 d
;; Longlist is later mapped into the layer listbox. Both are ordered the
( x" N5 V9 A# } ;; same.) c" I' b! {. O2 x% O& l
;;( R8 p5 a# E" g+ D% p
(defun make_lay_lists (/ layname sortlist name templist layer_number)
- G: K' o% {- e5 w/ f0 r" \ (setq sortlist nil)+ g% M% v- L0 V3 z, b- T0 T9 j
(setq templist (tblnext "LAYER" T))" y4 B3 ^% Z2 j0 T" q6 e
(setq layer_number 1). |6 v. K6 s) z/ b- J
(while templist2 f- G7 k( E$ H/ c% d# [5 A r
;; No xref dependent layers, please.
+ F) ^+ q1 R( P9 M: j3 S (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
3 `* V1 v6 F( Y( t& U, S! m* }6 l (progn' V6 |, |) t! L: |
(setq name (cdr (assoc 2 templist)))
& o" g7 U4 G0 r6 W2 X5 E (setq sortlist (cons name sortlist)), O+ j3 n' H0 K3 Y8 Z' M$ v+ d
)
$ j0 J7 q5 F- V )
1 P/ {+ C. J; A8 O ; Get the next layer.( i5 r; P: H# z; y' w! d7 g+ n
(setq templist (tblnext "LAYER"))4 S2 M/ X7 ]1 K; Y" u4 z" K
;; Not dead message...
9 u4 z! v7 f9 ^3 A (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))% o' u* k6 t& D$ S( h
(set_tile "error" (strcat "Collecting..." (itoa layer_number)))/ e$ Q: y/ s4 z3 S! r. B2 R8 e. ?* A
)
& E8 Q0 P) f' t3 Q# h+ J5 y2 L (setq layer_number (1+ layer_number))
. m4 T: } D0 [# p )" F% y$ d0 R/ F y
(set_tile "error" "")" ?; C7 M S" V& B9 [
(if (>= (getvar "maxsort") (length sortlist))
( R9 ^' J$ C/ U) n: z9 ~( H! \7 O (progn
4 T9 `* n$ z+ E& y1 k (if (> layer_number 50): G5 V4 E( N/ }
(set_tile "error" "Sorting...")* T1 ^$ y0 u) o- N! p
); D5 k% ^4 G A- P
(setq sortlist (acad_strlsort sortlist))6 }( D4 d) m; X* k) P
)
, i( i+ L, k6 h) B( A W, Z" ?5 N2 e (setq sortlist (reverse sortlist))4 |) }' {7 [* d& Y
)
) u+ _1 l- \* @# f* N5 [4 k9 p) s! m6 @ (set_tile "error" "")
. }; @ R2 ~* x8 G6 I0 L8 ] (setq laynmlst sortlist)
2 } `1 l7 j Y$ t/ y( d) e )
1 `* N" z( i- Q ;;
C( f* M/ Q5 l. I ;; This function makes 2 list - ltnmlst & mdashlist.
! _; J& B0 `; W% i% c ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist6 h/ c2 G1 z' B' _2 |
;; is list consisting of lists which define the linetype pattern - numbers
9 Y, } k9 W" x( Z" r ;; that indicate dots, dashes, and spaces taken from group code 49. The list
$ t# a6 E7 _7 i. q1 q$ e( ^5 D$ i ;; corresponds to the order of names in ltnmlst.0 q6 ^( H; t: G2 E2 v: @2 N
;;
& B* Y9 k7 N5 R! M* X1 h (defun make_lt_lists (/ ltlist ltname)
% E, V0 W' K5 u (setq mdashlist nil)
; l# m" J. s1 m (setq sortlist nil)
0 u/ {) r) x' ~ Q (setq ltype_number 1) M" [$ N3 q5 t! Q7 _2 }+ c6 x
(setq ltlist (tblnext "LTYPE" T))
% W ^ W& [% H7 z1 D) j+ R ;;(setq ltname (cdr (assoc 2 ltlist)))
: X! r& I$ O- @9 I% Y9 ^" y$ ~ ;;(setq ltnmlst (list ltname)). h6 B& q7 d6 T: P- ~, ^
(while ltlist
' l" u1 l4 ]$ x7 z8 o6 T1 r8 @ ;; No xref dependent linetypes, please.' R1 W9 \# z2 F7 N% b
(if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)/ n/ q! d F6 Z
(progn" \0 r: [: a" i! ^3 f# c5 g
(setq ltname (cdr (assoc 2 ltlist)))4 O. M$ ?: L6 A
(setq sortlist (cons ltname sortlist)), F. ?( M2 T9 [: H& y
)6 y4 n2 B$ c3 O7 L# y( X7 d: e! f
)
% H0 U5 C' B% E5 t& e! B ;; Get the next linetype.
( C: c2 r5 j8 c6 k0 V (setq ltlist (tblnext "LTYPE"))
! D! `6 Z: R, v. n
3 u. Z+ H. f: I0 Z$ n5 u ;; Not dead message...
. _2 j+ N6 A: T K (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))8 b) p. M. j4 B( s3 J
(set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
, H2 h9 t9 G" ?7 K+ l )
6 G+ h- q7 G5 P4 I) a* u' J% A (setq ltype_number (1+ ltype_number))$ k7 R7 G7 h5 _0 G, N5 _
3 g4 i1 k# Y2 c7 v: _: w )
1 o/ F! a2 A" y1 ^. d' P1 f" x
* p" K: y8 L/ A0 W; e/ I" O4 I ;; Remove Collecting message.2 Z2 ~, h a: s8 n9 F
(set_tile "error" "")% s& Z% C# K& n* v( ~2 m; f
0 N) P7 W- K$ u# y0 x' _% Z$ C* m
;; Sort based on maxsort.
$ F, e' o; S' n/ S- S (if (>= (getvar "maxsort") (length sortlist))
' Z. G* u! {' @; M; `; c" s7 x (progn" m: ^- h' V; q7 p
(if (> ltype_number 50)' \2 d# K& q) e
(set_tile "error" "Sorting...")* E( k/ y5 ~. y" {6 x' U) g& E
)) T- R3 q8 F. b. M' s6 h4 r- K
(setq sortlist (acad_strlsort sortlist))
! f. `) P, b8 B3 }; |' e )
6 c; `' w/ f4 D1 T) R$ b' H( X& Q (setq sortlist (reverse sortlist))
' k: y" V& t0 \2 d3 o! q) q( N )8 l M' o- `* C& t, w
(set_tile "error" "")7 f5 ~ ~" }9 l- F
(setq ltnmlst sortlist)* `7 e4 }1 O; U! \1 f# N0 ~
0 N0 l( ~) [/ b* u( K, u* v# u (foreach ltname ltnmlst
2 n8 _* v3 d9 ]1 m7 X (setq ltlist (tblsearch "LTYPE" ltname))
1 B F( P U, \; y( Y# V (if (= ltname "CONTINUOUS")3 T8 |+ u+ W3 T! j
(setq mdashlist (append mdashlist (list "CONT")))* t* t; B2 O2 ]- C8 @# [2 z5 E" `
(setq mdashlist, g7 v& h' Q: F' B
(append mdashlist (list (add_mdash ltlist)))( K% D5 f. b' d% ]! ?4 m
), S6 v! S4 `$ d
)+ o! o4 j n2 y
)
# k0 Q; V# c8 { (setq ltnmlst (cons "BYBLOCK" ltnmlst)), b+ Z. K9 M. g6 f H
(setq mdashlist (cons nil mdashlist))
2 y; z+ P) p# z5 y$ u1 W (setq ltnmlst (cons "BYLAYER" ltnmlst))
. T" ^- p) q* u9 K( m; _ (setq mdashlist (cons nil mdashlist))9 \3 v L) J! I/ f
)
( Z" _) E. P! T ;;9 {( ~1 A# e& [3 O3 v; h9 {
;; Get all the group code 49 values for a linetype and put them in a list; s2 }5 W+ g1 H3 f9 @0 t8 F( E
;; (pen-up, pen-down info).
8 f8 X0 j7 g/ \2 c$ y8 ? ;;
' m- z$ Z; ?4 m (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
! L8 U& i0 N' p$ q (setq dashlist nil)" z2 I: b h) j5 e
(while (setq assoclist (car ltlist1))+ ]3 {' Q7 n3 m& `1 P% ~9 |
(if (= (car assoclist) 49)
2 L; {! q4 \9 C3 \4 ?9 O9 A: m (progn
# I) ^" z/ O* H2 U$ q (setq dashsize (cdr assoclist))
S% a+ C; H9 `0 {9 g: r (setq dashlist (cons dashsize dashlist))
" r$ H6 U6 Y* O+ R0 p )' D- `6 e% c6 W6 ]$ ]8 R; [
)- ~5 \2 e; f+ g) e6 J) A/ Y2 f3 U
(setq ltlist1 (cdr ltlist1))5 e( A7 S X: ^, O: |
)
- p" Y* U" K5 @; A9 v# { (setq dashlist (reverse dashlist))
5 q* B) ]8 ~1 V2 g% m# o; D )/ s$ c! p/ E% E8 i
;;+ x3 u" l! Q5 G
;; Color a tile, draw linetype, and draw a border around it
- ?% G: Z: S' \# N" b ;;
$ k8 P% N8 {6 `9 w; C- c( d R (defun col_tile (tile color patlist / x y)' l9 W- u* h: O% ^5 K# G: ?
(setq x (dimx_tile tile))
/ g* s) o6 b5 K# a& B- h9 h (setq y (dimy_tile tile)). N8 ^+ c1 m) z) l- C" H+ \+ J
(start_image tile)
/ h X) m$ \7 i& i2 \* o (fill_image 0 0 x y color)
) x7 V* n9 p( ^8 T (if (= color 7)) y% H+ d$ r' Y( \2 O0 R: z: z) _$ x
(progn6 s7 N+ F* C* I( U+ D
(if patlist (drawpattern x (/ y 2) patlist 0))
1 q! Z0 D. n& N (tile_rect 0 0 x y 0)$ t; b- n! C2 |$ ~) H
)# t. Y$ T4 c. U1 ]+ P# b& ~4 n: h
(progn
- |+ d8 X0 `* s2 W* z (if patlist (drawpattern x (/ y 2) patlist 7))* C7 v5 n/ x' V
(tile_rect 0 0 x y 7)
9 i% C5 ?$ ~% j ); z9 _+ z+ z$ J0 t
)
. ^2 g% {7 U8 S4 _5 d2 ~, B* ] (end_image). l, \1 W, d1 `7 X
). r, e+ n/ D, s. |2 h; s
;;
. F% w1 s3 [! j0 r6 X1 v' \; j2 T) P ;; Draw a border around a tile
/ c4 Y& j& H1 U6 G, Z ;;
% f6 x( G. C2 e1 m (defun tile_rect (x1 y1 x2 y2 color)! R0 w4 f1 x# w! V+ n. V" I: B V
(setq x2 (- x2 1))
; t. b6 D; I) `* O- F (setq y2 (- y2 1))5 ]& v8 t, f/ s: G/ }
(vector_image x1 y1 x2 y1 color)
* T3 P- K' n: C) ]% _ (vector_image x2 y1 x2 y2 color)
8 _; L& t2 t3 T (vector_image x2 y2 x1 y2 color)4 K3 O7 q" t, h4 p5 ?
(vector_image x1 y2 x1 y1 color)
1 Q5 j/ [, t. Q: h) W' C )! t0 k; \8 p- N$ X
;;; f4 D" r# t0 q# G |
;; Draw the linetype pattern in a tile. Boxlength is the length of the image
+ E" A2 p* N6 u2 a+ D ;; tile, y2 is the midpoint of the height of the image tile, pattern is a. {5 z1 P0 S; z6 r% E5 z5 t3 X
;; list of numbers that define the linetype, and color is the color of the0 Y" D S ]% Q! m2 N/ ?
;; tile.% J/ S8 F$ x& K: d# f
;;/ `: z7 y/ X5 j C$ a
(defun drawpattern (boxlength y2 pattern color / x1 x2
$ |5 Q9 m0 I8 ?# K: y+ c patlist dash)
8 g- n4 ~1 }% J: v! G (setq x1 0 x2 0)# Y& T' I! n( t8 m5 V& X1 }
(setq patlist pattern). C; q: J9 q* N/ ]
(setq fx 30)
9 X# F- Z8 v, p. \, | (if (= patlist "CONT")
9 o- ?* K' `, I (progn (setq dash boxlength)
' L6 _; Q* C H* N) m; Y (vi)+ _' x3 p; Y2 l2 o+ u% \
(setq x1 boxlength)
8 Q! [5 y. ? }1 n, d5 |8 c7 ?+ b )4 f2 ^- [! ?- r* X
(foreach dash patlist
6 S" D; D1 r# j! f$ [) X% w8 q. j9 B+ T (if (> (abs dash) 2.5)
5 M! q9 w. d7 J0 J* J (setq fx 2)+ o* O' D# J6 [. R9 {# a; X
)' @. i2 Z7 p( C% T8 m
)
4 ^* z2 D4 G; x2 Y )
3 w9 G. |' L0 N& _3 N! L) Q9 B- P+ _ (while (< x1 boxlength)5 }% g1 g* p/ X' k5 s+ d9 I
(if (setq dash (car patlist))
3 f, ~/ M& ^; {% U; N z (progn% [ M3 e* m1 ?, ]* ^+ q6 e# }8 a% f# {
(setq dash (fix (* fx dash)))- D' Z& I( }1 S9 V
(cond& ]# }' D6 A f& _
((= dash 0) (setq dash 1) (vi))
7 }" z6 x; N9 p ((> dash 0) (vi))
9 m; m) {2 z% n+ z1 n0 v \4 i+ y3 T (T( ?$ t' H' ?- N2 A, R* c X
(if (< (abs dash) 2)4 t, m \- N/ Y/ f
(setq dash 2)% d. L" O" D" c5 g* K/ _9 M j
)# u/ i$ d6 O) {4 e" ^$ Y6 e6 m
(setq x2 (+ x2 (abs dash)))8 [3 H e* W, r1 ]3 g
)
# N. y3 x. Z/ N% i )# L6 E* f5 [4 h, S
(setq patlist (cdr patlist))
[) I6 [" _0 H& [ (setq x1 x2): E' p1 ~5 Y5 J1 n( W# ~1 z7 L6 V
)
% _7 N6 W4 v# O (setq patlist pattern). j# F- V) M/ o
)
7 F' k0 ?6 {. i- U )& b% P; N/ @+ X% o5 W5 |4 V
)6 S8 a4 ?. \& k
;;
& x8 m- R( P' w# a* J ;; Determain state of xclip
) Q, q; l& a2 n7 `5 y' i. i* v ;; Returns the group 71 value of the spacial filter dictionary.
0 ]; ]* X+ T0 Y) k4 q ;; If the entity doesn't have a spacial filter dictionary, this
& y/ M1 U# L, @ ;; returns 0. If it does it will return 0 or 1 depending on the0 r* T' m! ^4 c h$ o* J& D
;; current setting of the state of the clipping visibility.
+ j" H- _* L6 C. J! b ;;5 Y4 a2 [- C+ Q4 w( h$ W
(defun xclipon(elist)0 F) z, ~' u8 k+ U
(setq hasclip T)9 x2 e7 d, B+ ?; U+ X, K1 U4 K- z
(if (/= (assoc 360 elist) nil)
2 ?% ` k# h- p: e8 A4 |1 l (progn
6 K* H* R2 ~+ \" c* k/ A (setq tmp (entget(cdr(assoc 360 elist))))* s4 Y8 k6 X) o+ q' u
(if (/= nil (assoc 360 tmp))
+ {/ l( n) n9 ^$ t (progn5 C2 ]3 k: o: }
(setq tmp (entget(cdr(assoc 360 tmp))))3 X8 T0 T- B5 A6 E( z
(if (/= nil (assoc 360 tmp))
) A3 F3 ], ~- z4 U (progn: h" M- Q7 q* n
(setq tmp (entget(cdr(assoc 360 tmp))))
" A) U& T9 J2 C$ I8 R0 K$ J (if (/= nil (assoc 71 tmp))& K4 n7 F! \7 f u9 P& t2 x" b
(cdr(assoc 71 tmp))
9 b# @8 ?% v1 C, {1 i9 ? (progn ( d# ]5 t. E; ]7 i( f! e* S
(setq hasclip nil)
& S% d3 a! ?" y- S- R% E# p) r (eval 0)* c: b5 `, n9 f P% y
)' q, h3 K3 j: M; O7 I. ~
)
& j4 @+ q, s/ n% ~4 \ )
, h0 M m" R6 V: S (progn + A5 R/ W1 ^! n2 j# d$ y p
(setq hasclip nil)
2 e! |/ W1 c2 U) b (eval 0)
" n& m0 W; X5 D8 B" @ )
M3 R6 j5 A% F6 E )
/ o5 ?/ j6 U! i# r, T4 ` )
, i, D& \. h2 k; Y! a (progn 6 B" h" @ v" G) E! V& H
(setq hasclip nil), h5 h' c$ [2 q9 ~( B
(eval 0)' b. ^- h) `3 r# P* I
)+ s+ D( N( i" V3 I$ k0 l
)4 L3 W5 H2 G/ Q: ^- Y# t
)$ |' c) Z! u( h" |
(progn
4 Y, N6 Q: F! X& M) N' \9 ` (setq hasclip nil)( S0 T4 z+ @: G# {( D% f; l8 o- P
(eval 0)
9 q. W' Z1 q7 C )2 D! ?+ G0 Z7 H
)
2 t, n9 i: ]! O0 P( z5 ]$ t )% {& N* f' Q k5 ] Z- ] F2 N
;;
- Z0 a* @0 @! z9 S C ;; Draw a dash or dot in image tile
' x% t( u* u+ ?. u- `0 A; C9 V" n$ e ;;# \# s) n. e' ^ c
(defun vi ()" g: B0 K x H* q/ v+ T! H
(setq x2 (+ x2 dash))( ~- x& W4 \- s# T
(vector_image x1 y2 x2 y2 color)
0 I- y' V" m5 ?, _ )
# ?4 d5 v: x1 y5 K' O0 [ ;;
: ]( ?9 `5 q+ ~0 O8 ] ;; If an item is a member of the list, then return its index number, else
1 r& K( C8 e6 B ;; return nil.. s8 i3 P! R, u" K* i8 a1 I& T" v
;;+ y9 q7 d3 ^1 g6 w }) j8 [
(defun getindex (item itemlist / m n)
/ o8 _4 p& f( Y5 D: \ (setq n (length itemlist))1 O3 M4 U' q7 t, ^8 Q! T; O
(if (> (setq m (length (member item itemlist))) 0)
, t* S! ^8 v" T1 {6 R* b) H/ B6 I (- n m)
2 V$ P: ]& C- j h; q nil. W" H% e5 j4 o' }0 o
)% Y' t6 x9 n& X6 {
)( P' p" I- u E, n# {' ^
;;4 u% k- B: i, ]% N, }
;; This function is called if the linetype is set "BYLAYER". It finds the
& K* O- o2 Y2 M. a, i9 ~ ;; ltype of the layer so it can be displayed beside the linetype button.2 a6 {- z3 \; j/ g0 r6 ^ n
;;
& H8 v3 W# R h (defun bylayer_lt (/ layname layinfo ltype)4 f+ e0 t+ R/ r+ d$ o' N5 q9 l! o$ ]
(if lay-idx8 ]: ^, o7 Y7 i: v% }
(progn
/ G9 F; R1 }6 t7 p5 v# O (setq layname (nth lay-idx laynmlst))
4 z0 M" t3 e. @3 b! m( p, D (setq layinfo (tblsearch "layer" layname))0 p! ?9 a& U' h
(setq ltype (cdr (assoc 6 layinfo)))
* q: _# ]. t0 S0 y. I9 P "BYLAYER"
1 A0 c8 e- k/ s* X2 ` )6 T, p$ S6 U, _) u/ r5 W1 M
"BYLAYER"5 ] ?' E2 A* Q5 C9 ~
)$ q# `1 I7 M! y2 x' Y
)1 N5 J" O) m$ f. C, _: l' b) k* y
;;
/ `! e: ~/ S. W8 i( ~ ;; This function is called if the color is set "BYLAYER". It finds the color. ?4 o6 b. [* h' \ B& v
;; of the layer so it can be displayed beside the color button.
4 I: m. @: C0 n- S1 D# e6 g" o$ l ;;
4 t3 K, |0 ]5 z: { (defun bylayer_col (/ layname layinfo color)
4 q$ U* P, W, I1 \! U2 o& g (setq layinfo (tblsearch "layer" elayer))
% S& F7 h/ f0 d+ n" Q* X; J (setq color (abs (cdr (assoc 62 layinfo))))
) q0 ^9 e( g; a2 x )3 b0 Z- H6 P x9 f! y8 V9 l: s
;;
) P N1 {3 x1 s' \) r& r) x ;; Used to set the color name in layer subdialogue.
! @) h; W6 U% B! A+ V ;;) W+ V: D" w! X
(defun colorname (colnum / cn)8 S# b% g. }" T3 {' r3 F
(setq cn (abs colnum))9 P7 @( F$ A4 [ K# Y# v" V
(cond ((= cn 1) "red")" V3 e: S7 m5 [6 Q" `3 p
((= cn 2) "yellow")
! n1 O$ \! a N, y; e W' \! V ((= cn 3) "green")5 c3 E: [7 ^! g0 C1 p H; p
((= cn 4) "cyan")
$ X) z- p. {" v4 |& F |4 {/ ? ((= cn 5) "blue")
! S4 h1 Q( }" O3 X. W3 p# r9 D" @$ q ((= cn 6) "magenta")
- J" J' x& C; F- K% `+ z3 S ((= cn 7) "white")
2 k& p, _% o8 z* s (T (itoa cn))
# r5 @9 Q+ Z! r3 Q3 J N )8 c( q, b) ]& \7 t; z
)& m. x7 m- b% O5 k. R. E" T4 ?8 a
;;5 V1 i w) @3 |- v- |4 Y
;; If their is no error message, then close the dialogue.. p$ j' b1 r6 |- P6 [- b
;;% u* A; c. ?7 ?, a; ^( k
(defun dismiss_dialog (action)# c7 N& F8 U: y! Y8 @
(if (= action 0)2 c: }! `- e3 ^+ e1 ~
(done_dialog 0)( P# [* }7 |; S) \
(if (= (get_tile "error") ""), u( R% p! I5 u: Y
(done_dialog action)
& s/ q1 w$ ^9 |$ W& _ )
$ V) y5 M- s0 _ )
" _ U( d: J' q3 ]; Y# e& w )
) J1 f1 @' Z7 b r
) n4 l& g4 V7 D2 e (defun test_ok ()( G0 r: ^- w' g$ z/ l
(if (= (get_tile "error") "")% l) O6 e4 C. a. z
(done_dialog 1)' G7 W" C# Y) |4 Q- l8 a0 Y7 H0 J
)
3 O- Y$ H: {/ [1 G6 @6 j ), y. k, x; c+ V6 m* L& O, j4 _. L
5 {9 f8 `) x5 F/ x$ K$ U2 h! t (defun cancel ()
+ Y q" [7 @6 k3 m0 P& N( l (done_dialog 0)
* V7 c1 ?3 @& Z/ a8 i2 i1 i+ e) r )
: X' a5 ]$ k% J9 E7 M: i; X. k/ I$ s4 @
;;; =======================================================================
+ g& h D% k, y, w! i, r;;; SETUP layer and linetype lists for application, and initialize all2 G" B# c( B8 b
;;; program variables.
; T) S' k. ~# [# O8 b) Z; G8 t7 a+ \- \ a" @+ {! ~; h0 N
(setq elist (entget ename)9 h9 l" V1 a7 ]& g3 p
old-elist elist
8 |5 {+ K& `% R: W k2 O6 X$ V6 C6 ^ modlist elist, R8 n3 Y1 ^& d" |. A: }
etype (strcase (cdr (assoc 0 elist)))
. Z, Z8 F" t g% P ecolor (cdr (assoc 62 elist))
! T; B6 }; i& Z/ o. H2 V elayer (cdr (assoc 8 elist))
- u6 L& O' ]8 r eltscale (cdr (assoc 48 elist))- W5 K0 E2 [2 b `+ q6 O
ethickness (cdr (assoc 39 elist))2 F6 w* f& b" w7 c0 J! e
eltype (cdr (assoc 6 elist))
. E! i% P7 b$ \+ d4 @5 n0 m. x )
9 Q7 D1 I. o- {9 E' ?& X e/ c: ] (if (= (assoc 210 elist) nil)
' z u; }8 }7 a4 F. e (setq extru (list 0.0 0.0 1.0))
5 |2 E- S3 `$ S ` (setq extru (cdr (assoc 210 elist)))/ W) X" C j. |; w6 L8 X7 O/ U
)0 |, \7 G# Q3 C% {9 W
0 T4 E0 H& @: G& n, r
(if (not ecolor) (setq ecolor 256))8 Z4 N7 j3 R5 L8 a" M
(if (not eltype) (setq eltype "BYLAYER"))5 u3 i& f! B! C: T, F
(if (not ethickness) (setq ethickness 0)). y% z* w$ O2 I1 R
(if (not eltscale) (setq eltscale 1))7 F% w) X8 l* a* ^
) ; end ddmodify_init- h6 N8 X8 M2 F, V* E
( \1 X7 o" v C& S$ p4 d$ A5 g0 \;;; --------------------------------------------------------------------------8 d0 H9 W/ `! o
;;; Function: DDMODIFY_SELECT
$ R" U) j- H- _4 o% W* q" @0 @;;;9 M7 o8 W6 R: Y+ ?7 v7 c# S
;;; Object aquisition function.
- f5 a! E3 F4 f# {6 p; g" Q;;;4 I4 I0 C( G( r* C
;;; (ddmodify_select)5 Z. J1 [6 A- j* J. T
;;;
9 w" m. j9 r$ t2 ^& i4 N;;; Obtains object to be modified, in one of three ways:/ G2 Q: H' S6 g Q9 X
;;;
1 l, H4 \1 a2 _;;; 1 - Autoselected.
) E9 ]5 K' D3 T5 c: R2 C/ p;;; 2 - Prompted for.
$ \ R. F/ V' O& o {9 Y" f;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
" |; {) S. |, }! ]: `6 };;;- B+ R5 r& e+ p: M' X) L' v7 Y7 u+ b
;;; The (ddmodify_select) function also sets the value of the
% q* P0 j$ {5 _% _, ^9 n;;; global symbol AI_SELTYPE to one of the above three values to
4 z+ W9 q) x9 d3 \/ K8 u D3 W( w;;; indicate the method thru which the object was aquired.
% C+ \$ J0 E% v4 p$ j;;;
N! Y1 k. r2 B3 e. E4 b# z;;; This value can be useful to applications that want to RESTORE
! d* v4 T/ o& c% ~7 A' d;;; an object that was autoselected to its previous selected state
+ \ P5 ]8 d' S5 `% D, c- c;;; when they terminate, although there doesn't appear to be any+ _2 W" ?& y- N. P+ v+ w" j
;;; way to do this right now.
& b' s+ h8 n: r! E$ `' P- w0 m) B: \9 b- n
(defun ddmodify_select (), I9 p( M& A( P' V- d0 ]1 Y9 a
(cond
1 |1 D; u+ ~: d+ _. S7 F ( ename ; (ddmodify) was called
& c6 R$ Q \6 S& J (cond ; with an <ename> argument
) M& C+ z- p% p2 R, V ( (entget ename) ; If object is non-deleted! c9 W) b: ]& \! c, M5 H$ g' }& p
(setq ai_seltype 3) ; then return its ename.
! n$ }0 H9 g5 A: \/ u% H- u (ai_return ename))))
/ |% i/ Y" t8 q4 ]
9 I5 \: E2 Q3 B* M3 g3 ] ;; return auto-selected , see ai_utils.lsp
+ A, N! N" E9 t" | ( (ai_autossget1 "\nSelect one object to modify: "))
) S% y( [2 _) [1 T& f& [. r5 L0 |; u! g' a d3 Q b
(t (princ "\nNothing selected.")* v5 q7 q& Y/ ~- X5 c$ o5 U
(ai_return nil))4 e; w, @! S' J" W2 v
): W4 ^ }5 m$ k) ^8 Z- r
)
. t2 w+ |( H! c- k. N
, o* j p) x2 Z" M- v;;; ============= Command line interface function =======================
5 }& I4 o2 r6 L0 z9 \3 \2 m+ `/ X' s6 D, ]3 h
(defun C:MMO ()2 O3 k* _7 _4 o9 e- G2 u
(ddmodify nil)
9 H2 B; l; q$ c# w0 \ (princ)2 [3 B/ V3 ~$ w* m$ S. e
)1 d9 M u4 E. S7 n& z5 W
- D' e0 _9 Q& U5 _# P;;; ================== (ddmodify) - Main program ========================
- u, ] s% F( ]' I. l- N( g; g;;;
! {* }/ ?3 V; P* Y5 J;;; (ddmodify <ename> )
8 }% P$ w# P! g- P2 G+ O A;;;8 S/ w* ~! t( J9 m6 p9 A
;;; Main program function, callable as a subroutine.
, [2 D2 S) L! s;;;1 G; K5 F! ^7 D' g: }# ]2 {/ \" M
;;; <ename> = object name of the object to modify., r6 V, z- C, k* d2 _, e7 H( S
;;;! u1 w3 i, B3 U; ^* e
;;; If <ename> is nil, then user is prompted to select1 l0 ?7 z' S" }, K
;;; the object interactively.
* G3 q2 [6 J) U5 f3 t+ \5 k;;;
3 q, O0 I* A0 @3 A" X5 O* O;;; Before (ddmodify) can be called as a subroutine, it must ~$ i& F3 g; b v- ~/ s$ E: u8 p% m
;;; be loaded first. It is up to the calling application to
: `. B' o& s# Y7 k6 Q;;; first determine this, and load it if necessary.9 g9 x9 D9 R0 R. j# b
8 e$ k: p( _5 q3 h
% ^' b) A t* P(defun ddmodify (ename /
+ B& ?# C& A4 c7 N0 Y7 T1 E2ndpt ell_calc_area move_pt1 templist
% e. J# e/ ~# ~; C3 ~0 Badd_mdash ell_tile n tempmod3 _! C4 l; g* C9 I
alipt eltscale name tempst_ang7 x3 ?! c- w( |! ?5 ?* H) h- ?
ang eltype newpoint test_ok
( d2 }! _& a3 s. L7 Karc_calc emod next text
8 J1 k6 M$ y/ o' D4 J' u7 A8 h& T; H5 Carclen end_ang next_vertex th-value" \2 V; X% R. P: I7 N- z" x+ V& Z" }" j
assoclist endpt obl tile
" `- \2 G* m! Y1 }" latprompt errchk off tile_rect) F$ X6 s. C- z+ q" ]
attag ethickness old_majrad tilemode/ h' b# V4 n. z0 R0 z. F: ]
attprompt etype old-closed totang( T1 d* M5 m X+ H0 S) R: B3 H9 q* i
bit extru old-closedm tstyle% z: X; ^5 F& k/ A- k
bit1 fchk old-closedn u
7 a* h9 v q4 }, a! e% ^5 Bbit-10 first-10-rec old-elist undo_init2 r p* z t, l* `# A" I4 d' c
bit-11 first-10-time olderr upsd
- G$ [7 @% E7 C6 X! m2 |1 p, W# |bit2 first-11-rec old-fit v
, g" `0 P. _; Z! D$ @( b, n& Gbit3 first-11-time old-idx va- D' ]( _: Q/ c% y: [6 A
bit4 fit oldlist value
& c% z4 M' F, l/ ` H. Y3 Z4 X5 Bbit70 frozth old-spltype ver_4
& ^- L$ q) L6 H$ ~% E: f9 pbit-70 f-vis old-u ver_ang13 n, D, ^$ R) S/ P6 P* m
bit75 fx old-v ver_ang2! |+ o# v: c( Z" }
bk-up get_color on ver_col
7 m8 H4 J+ e" `) Q' f1 }) @& f& m' obkwd getcolor onoff ver_colsp6 A$ C+ e$ M* E! |; u7 b2 b
boxlength getindex on-off ver_eangle
" O0 ~. Q3 T* Lbylayer_col getlayer patlist ver_hght
" _- @6 H( n& ebylayer_lt getltype pattern ver_majrad
$ m) [; ]3 j1 e) H4 Jcalc getthickness pltype ver_obl
' Z2 l, q/ e5 ~cancel globals polytype ver_pt1& e. j) C6 A: g% I2 s8 d
cir_calc ha pre ver_pt2
" Y* F& g1 q" ]closed ha-prev proplist ver_pt3
( f! [; V+ m" S% wclosedm help_entry pt ver_pt4
4 C" l M8 ^* t4 T) wclosedn hght pt1 ver_rad4 u1 X) f$ a7 B" Z
cmd icvp pt1_eq_pt2 ver_rot+ |( s/ q6 l) I/ E1 o$ ]# [, I
cn image_add_vector pt2 ver_row
9 E: V8 ]! R7 X% ^, S( ?cname image_clean_variables pt3 ver_rowsp
, u+ U5 }- Q4 f b7 A, Zcntl-pt-indicator image_cross_product pt4 ver_tag4 ]+ U0 Q2 T8 d V7 \, w0 Z2 G
code_71 image_disp_opt ptype ver_u
! m) L) E- @/ Y) j# tcol_tile image_dot_product radius ver_v! O+ Q- f2 R! o8 h+ v* E
col-idx image_normalize_vector rational_spl_flag ver_wid
9 t% j3 Z5 d( r: [1 Gcolname image_rotate_vector reset ver_x1
# ~1 T* Z6 N# W- c$ \# a) ncolnmlst image_scale reset_flag ver_x2) [, J' t/ x- G& J
colnolst image_scale_vector reset_lay ver_x3
1 @# d4 ?/ l, Ycolnum image_update reset_lt ver_x4
$ W/ q, C( k4 D- `+ d) ]color index reset_uv ver_xline_pt1
, l5 L" J" o" }7 s) \colorname inv rot ver_xline_pt21 h% g1 h7 Q2 k: m
colorno item rows ver_xline_x1) w4 q5 A1 A$ \/ E p* F+ _
col-sp item1 row-sp ver_xline_x2: J6 l+ ~' ?1 n9 H8 s! `! g) M) i
columns item2 rrat ver_xline_y1$ h1 Z2 i4 M+ x8 F1 F& N
con itemlist s ver_xline_y2
" Y, Y" _6 K7 i, N& L+ U8 V; S' T# ccoord jlist set_action_tiles ver_xline_z1
7 j& F7 c7 `# g/ [ctr jlist_act set_just_idx ver_xline_z2
9 M$ O6 \* B E9 Dcur-10-rec just-idx set_tile_bk-up ver_xscl
; d- S/ M/ `" j2 Bcur-11-rec layedit_act set_tile_cntl_pt ver_y1& q: x3 I8 S+ Z$ r5 ?' A1 A' I
cvpname lay-idx set_tile_data_pt ver_y2+ r" ~+ B( ], v) y2 U
dash layinfo set_tile_dirv ver_y32 q m e7 ]$ s$ X- ~( s" o6 C
dashdata laylist set_tile_edges ver_y4# k5 U& D2 ^# w% U \6 m2 j6 n
dashlist laylist_act set_tile_endang ver_yscl8 |9 P: F, C1 n" f. G% ]
dashsize layname set_tile_hght ver_z1$ z2 N H# ?) u! u
data-pt-indicator laynmlst set_tile_icvp ver_z2! f, a" ?) d. f! c" [' o
dcl_id layvalue set_tile_just ver_z3
$ p; @4 d, o) B Ydd3dface line_calc set_tile_obl ver_zscl
& S: ?3 x4 S |- W# N/ T+ E* Y3 Wdd3dsolid linetype set_tile_prompt verify_a) h: M( `% e# K( u
ddarc list1 set_tile_props verify_d
* z- c2 E/ F" e" E6 b- Iddblock longlist set_tile_pt1 verify_i
! e5 B2 K, `; d8 w& T* _ddbody ltabstr set_tile_pt2 verify_xline1 [ @6 k$ n5 x) b" R
ddcircle ltedit_act set_tile_pt3 vfy' Y* |5 j- S. G4 D# _, l' m
ddellipse ltidx set_tile_pt4 vi7 H3 O8 d. C2 ~7 |. _
ddgetprompt lt-idx set_tile_rad vlist
: W* @' W3 m# ]# pddgettext ltlist set_tile_rc vname1 G: E% B/ ?$ E+ M8 s e
ddimage ltlist_act set_tile_rot vpf4 {1 K9 q8 N# j7 d( _6 s
ddimen ltlist1 set_tile_scale vpid
/ R3 H1 I* C8 V+ z- Tddleader ltname set_tile_spline_props vpldata
" K) @2 D$ V4 ]9 {% p7 r# G1 gddline ltnmlst set_tile_stang vpn
: K) }( p6 y7 j+ l) Pddlist ltvalue set_tile_style vpt/ M! Q6 ?, A. ^8 C
ddmline ltype set_tile_tag which_tiles
) p/ d& B: M- u# lddmodify_err m set_tile_text wid( y* h+ \7 e7 j
ddmtext majrad set_tile_vpt x2 b1 j' f6 c* `9 G; A Y
ddpline make_lay_lists set_tile_wid x14 D- }* a8 A, g R2 x0 z9 j) H
ddpoint make_lt_lists set_tile_xline_pt1 x2
: `0 W% J7 m- o# J- v3 J9 y Y# nddray mdashlist set_tile_xline_pt2 x3
% F& d# O5 @ kddregion minrad setcolor x4
8 L- B6 s5 H5 {- kddshape modify_3dface shght xdlist
: z( Y7 C2 K$ [! H( M# ^ddsolid modify_3dsolid showpt xline_pt1' [& a/ O# x5 ?8 h
ddspline modify_arc size xline_pt2
! y; v* c/ \ A' ^+ }ddtext modify_block slist xline_x1
, S8 `" _( I( a7 p# Qddvport modify_body sname xline_x2: T8 N' J; N% a) \
ddxline modify_circle sortlist xline_y1, y3 s( \5 {& D5 |. P
denom modify_ellipse spltype xline_y2
# U5 O4 D/ _( O3 `, N6 J4 j |dialog-state modify_image ss xline_z1* Y) T2 Q. _) G2 \7 Z
dir_pt modify_line st_ang xline_z28 z' U8 X1 w/ b
dir_ptx modify_mline stpt xscale$ ^+ R2 W) [- ]. {, S" E
dir_pty modify_mtext style_act xx. l1 L# l" |9 R" B* Q, e* h
dir_ptz modify_point style-idx y* ~; ?9 f3 i% T# n" J. z; e
dismiss_dialog modify_polyline style-list y1
/ Z' F" e# @2 X2 Fdrawpattern modify_prop_geom tagval y2! j# I; a2 Z/ n: l8 T' Q6 u# ]
echo modify_properties temp y3
9 K2 @1 R& d; Mecolor modify_ray temp_color y48 e' r3 T L' H# n9 p `; U' H
edge1 modify_region temp_dir_x yscale
+ U+ i7 Z+ `- J6 U- U ledge2 modify_shape temp_dir_y yy5 O" `& u7 O9 G: Y: h$ n' [
edge3 modify_solid temp_dir_z z1
) Y6 s8 [8 D( W- n! A6 sedge4 modify_spline temp_xline_pt1 z29 U) y& P6 g4 S% c' D+ l0 J7 l
edgetest modify_text temp_xline_x1 z3+ q) s" H0 Q) Y( \! H4 l" `* m
elayer modify_vport temp_xline_y1 z4
9 o9 h5 {" Y9 q; q* I+ B2 velist modify_xline temp_xline_z1 zscale; t" g& O+ |& g) G0 d7 s
ell_calc modlist tempend_eang zz% K6 a! F2 d# o2 F& l0 A
dir-idx safe_ddedit ver_MtextWidth xcliponoff% t& }( l4 R% b% u5 `
MText_style1 ?# D. K* p4 a3 _- O
)
. \3 W9 x" e: N6 Y/ t& d8 J3 @2 A+ h' J6 k' M
(setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho+ ] H9 w+ K7 ]8 O/ }0 X' {# Y
old_error *error* ; save current error function' s, u* _# x. p
*error* ai_error ; new error function7 A- r: Z& ?- |% a e8 i9 ^% w
)
# a- I; p0 y$ [5 N, w$ w" n. |& l3 D/ ?1 N
(setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle& ^5 h1 ?; d' M% I$ {
(setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
* u6 I3 W- h4 U& c6 X (setvar "pickstyle" new_pickstyle) ; bit and set to new value
5 |- p) ^% s' L: K2 c4 P1 j# F: [* T
(setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)9 w$ R R8 n- ]
(t 1)))5 F, @2 e( D. R O$ P5 w5 d5 Z! j
(cond
3 }1 v( E- n: C; R+ g3 n) m2 Y/ w ( (not (ai_notrans))) ; Not transparent?! K9 @9 P6 B; B! k5 N
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?- N2 t/ a9 | w# M( i4 B) I1 F
( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
, t% H1 e" x& ?. x ( (not (setq ename (ddmodify_select)))) ; object to modify?- F3 J# t$ W9 \5 L* ?
, j( z/ V% b+ |* c
(t (ai_undo_push)
, A6 F6 e6 P+ y# X u; @' E (ddmodify_init) ; everything okay, proceed.
/ i& H' e4 ~* k S; g% V6 M% Y/ ~8 w (cond; V9 `7 L9 k' l& P4 h
((= etype "LEADER")3 N& I1 W7 S, ]9 q
(setq help_entry "modify_Leader_dialog")
( Y4 O, j* w# G (ddleader)' w- y6 I" t, r1 a. G4 X
)
+ X& O) x8 S3 B ((= etype "ARC")0 l( J- l) F! k- X2 F
(setq help_entry "modify_Arc_dialog")6 J& H+ d0 n2 z
(ddarc)) S' Y# X5 z- ]( Z2 ]
); V5 C9 H( |4 y3 d
((= etype "ATTDEF")) M* Y$ z" c* Z# A! p" ?* f
(setq help_entry "modify_Attribute_Definition_dialog")9 C( U8 B' A3 x) ~; v$ Q3 Z! j G2 D
(ddtext)5 v/ w" k! j3 r) z
): z( g' {) I# k( D8 u
((= etype "CIRCLE")
) n" ] @9 H. w( s (setq help_entry "modify_Circle_dialog") Q9 V! N- t9 h
(ddcircle)
7 ~9 a$ D" Z! N. b )& L3 x1 O( g' Y5 P3 r5 j/ T" I% \
((= etype "ELLIPSE")
1 D% N/ Z4 ^) }' u (setq help_entry "modify_Ellipse_dialog")) g# M' a- J1 r" X
(ddellipse)$ W) P' K- E6 a& C! ]$ s/ R
)4 x1 ]6 a+ Q" o' e& ` @' c
((= etype "3DSOLID")
. g) @' Y: A" T4 \. U (setq help_entry "modify_3d_Solid_dialog") `9 S m& _6 Q% x$ W0 l) C+ Y
(dd3dsolid)
% t: B" O" _( V" l5 a )# r! K% h+ [; v- m# K" s
((= etype "BODY")
`. A4 O" {" a& v* X8 D; w (setq help_entry "modify_Body_dialog")
( i0 ?2 D5 r9 w (ddbody)
" v. I& F j3 s3 {, v )
1 h, _- o& Y5 M& r( D ((= etype "REGION")
4 V" E3 }4 I. {5 g& a (setq help_entry "modify_Region_dialog")
; y& x( h9 u3 T8 S0 I) F (ddregion): O9 a F( h9 \; s
)6 m: ]+ k9 |8 Z$ p
((= etype "HATCH")
0 N. [+ L6 ~3 l3 j (setq help_entry "modify_Hatch_dialog"); e3 ]' e# ]/ v- b
(ddnewhatch)( k0 V2 V' E7 e2 I
)* B8 G; P) x4 _ h6 o1 P% _& v
((= etype "SPLINE")' Q8 L' `, o- r, s& d7 n
(setq help_entry "modify_Spline_dialog")
! G. }. B# r% E4 G: ?. { (ddspline)
/ E# w5 s# K- l/ S5 {, b )
6 R' ~- Z' C7 c" k7 c. |7 F0 p6 M. S ((= etype "INSERT") ; see ddblock for help_entry
0 S' F' K: }, C: W! U( n (ddblock)
6 t6 U3 n: m( G4 @1 D+ J% {2 C/ N ). \" `" ]" B, |0 T* D+ s/ ] |' D- F
((= etype "LINE")
% `9 i! D; W, ~ (setq help_entry "modify_Line_dialog") S2 s1 T" M6 R8 J- y
(ddline)
! i. g, ]' Q* T1 ^/ ^7 G )
; a- n$ h) ]5 Y2 C ((= etype "MLINE")7 c3 y7 p) j( a! W$ Z0 R
(setq help_entry "modify_multiLine_dialog")
; C3 F) O' K6 f2 m (ddmline)+ }) G7 @$ i$ l, Z0 G g
)9 s0 o7 F" G3 K' _1 ^
((= etype "RAY")
3 l" A0 h" [) o% \" V (setq help_entry "modify_Ray_dialog")# @3 X7 A* P% J
(ddxline)' T: y6 v# e P7 c' l7 `" i
)
# K; s) q0 i, y9 \9 T: ~ ((= etype "XLINE")
4 X+ S( x5 {' ]0 l2 F6 e4 O (setq help_entry "modify_Xline_dialog")3 K8 c7 v1 Z* V
(ddxline)! v0 {4 t* p2 Z! Y6 ^$ g9 M
)% k$ S: _- e6 e* @
((= etype "POINT")
$ ]! Q$ @% N: w) d! B (setq help_entry "modify_Point_dialog")1 b$ L: `! C! e, X/ [
(ddpoint); g8 u) C, T; g0 ^5 _! n) D/ v6 M
)2 {( o u, v+ U3 o4 T# a
((or (= etype "POLYLINE") (= etype "LWPOLYLINE")), g0 E' e" Q5 {5 P. E$ n
(setq help_entry "modify_Polyline_dialog")
6 G, z/ k5 p7 R j ;; If a 2D pline, check to see if it is planar to the current$ v- q) `6 E6 _- k& {
;; UCS, reject if not. To see if the pline is parallel,
, E' m+ b3 Q6 R: b ;; the 210 group (WCS) is added to the current UCS origin (WCS)% | M' `% F# G
;; and then converted to the current UCS and checked to see if+ `- } I' K7 E- C$ p6 R6 d) n
;; it is equal to (0,0,1).9 z. _- }- X& _3 D3 f0 X
- J; _/ ~1 |0 [1 B
;; Incase the 210 is default and not in the dxf list.
3 Z3 V% h3 n2 N. G% j$ V8 Z (if (= (assoc 210 (entget ename)) nil), Q" Q+ P5 C) c# _- l! K
(ddpline)$ z! j# |( K1 @) Y- p: R! L
(progn( w& }; A1 M, L6 B) s0 D
(if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))# O6 x/ Y2 Q v4 Y' k0 g$ q5 ~
(not (equal '(0.0 0.0 1.0)
; {" H. Q! v3 @0 L' C9 d$ Y (trans (mapcar '+; {; {* Y( L0 ^: f/ W
(cdr (assoc 210 (entget ename)))0 _2 x9 z- m9 b
(trans '(0.0 0.0 0.0) 1 0)
# |( f+ q0 ^0 d1 w )" r$ d8 o% `& @- o& m2 G, a i
0 1
9 e& D* w/ p/ Q% e )
& w1 A, e1 N% H+ O 0.0000000001 ; fuzz9 Z* G3 f; { ]1 b
)
, e) U% Y+ `, ?+ X3 e* D ): g# g* V9 W( ?( D
)8 d# {8 B' o( W4 E1 |
(princ "\nThe 2D Polyline is not parallel to the current UCS.")) M1 \% D7 L) g7 }+ ]) {+ x
(ddpline)
& e/ J5 p: S- |8 D5 l: j8 I )5 `6 Z, C% L& [6 n
)4 l4 c9 X7 K, O: e8 O
): k' L3 L+ G/ u6 k) p
)$ O6 C! ?2 G/ r. B! U1 F8 m
" b+ b2 e& |0 a4 v; ?, k ((= etype "SHAPE")
5 x* N3 v( \" p/ s* q (setq help_entry "modify_Shape_dialog")% Y; V/ h( u- f) d
(ddshape)- |% B5 M: X& C8 }3 S8 K5 W
)
+ v+ A* m7 X* s) j7 n ((= etype "SOLID")9 ?$ E7 r% ], {
(setq help_entry "modify_Solid_dialog")
1 ~" r* X6 t5 o7 e8 a (ddsolid)* u4 U( H$ \0 J
)
3 G% y8 U2 G. {1 A% V5 j ((= etype "TEXT")
2 n. S) M _; b) v: r (setq help_entry "modify_Text_dialog")
5 V. c8 V) R8 U- W/ L |4 c (ddtext)9 V9 i M0 t; B# z5 C
)
: [5 q/ H& {0 f. N1 X- R$ g ((= etype "MTEXT")
) m' j' q! J# t (setq help_entry "modify_MText_dialog"); \. Z3 a6 C$ s# r6 |6 N+ t$ `) |
(ddmtext)8 M; d. K" i& g' E, }8 ?
)
' o% n/ g* J7 U2 j7 t4 ~! X3 J ((= etype "TRACE")
/ W5 }4 q4 W0 Y (setq help_entry "modify_Trace_dialog")/ |2 P6 G! G1 j: o1 G
(ddsolid)/ f7 {% i7 i/ q6 P
)
# D. B# m2 _& L" J ((= etype "VIEWPORT")) T" Z& s* c# N
(setq help_entry "modify_Viewport_dialog")
( W& k U, v' [: X( b1 j( ` (ddvport)+ `& I- O: ]: r6 h3 G1 B- k/ t
)+ Q! _+ M; O7 f) l1 t9 y
((= etype "IMAGE")
. f% ^1 i3 p$ @ S (setq help_entry "modify_Image_dialog")/ Q; y: g/ q* m2 o& W( L8 _. d
(ddimage)
, W. e( Q# ^$ c( T1 R )
6 t9 t5 ?/ s- q* } a2 o ((= etype "3DFACE")
" j7 @2 r" c( d4 y8 F6 [ (setq help_entry "modify_3D_Face_dialog"). c _& S* T- T0 |
(dd3dface)
$ u4 P7 }7 T/ o D )! [; T, e0 t' y' n6 m
((= etype "DIMENSION")8 A* G4 S& y+ v/ D/ }1 q. H* z- }6 h
(setq help_entry "modify_Dimension_dialog")) H9 |) l8 ?% P+ V2 ^' D# V
(ddimen)9 u# }! i* L4 `( K) m6 _
)
% D8 z, G; r7 Y' H! r& X4 I) U" t ((= etype "TOLERANCE")
4 a1 V8 u: G0 i) L1 B1 K (setq help_entry "modify_Tolerance_dialog") S( Q2 P k8 \
(ddtolerance)
# R' E% r+ V& t; m# n* h )& b5 n: P# D/ e, S# w5 r" R2 R
;; Fall-through condition changed by MCAD for MDT 1.1 release.
6 O: i0 Y$ J2 |6 L;; This allows DDMODIFY to work on any custom object or any new object type7 k N& F* X7 z s/ P' r8 F
;; that isn't specifically handled above by calling the more generic DDCHPROP.0 M: H5 f1 ^4 [5 ^/ I
(t$ g: Q, z2 N; g8 [8 y) `
(if (and (not ddchprop) (not (load "ddchprop" nil)))" d( \# z \! S5 L' T+ E
(princ (strcat "No dialog support for object type: " etype ".")))
$ m$ D3 _ _. y2 @. f$ z (progn m; J9 l+ I& n% m1 \2 F
(setq tempss (ssadd ename))
4 V6 l* x: C/ b# ?& q (ddchprop tempss). j! n. _ V) G3 s) V0 ?
(setq tempss nil)" Q4 [! e8 t$ @
)- X" |1 Z1 J9 i) t+ {
)' U; d6 @; I9 i6 E8 Y0 d3 c
)
, @2 q4 i+ X5 C0 B;; Previous fall-through condition.: V( I9 ~4 v/ g
;; (t (princ (strcat "No dialog support for object type: "
, i" _) `# _8 H) R/ ];; etype "."8 ]! s. n, M0 t0 ?& z
;; )
" j; |# ^7 [/ m;; )
. S) y m, \! R;; )
% C* Y5 L6 d3 E& m) v;; )
- ?9 z0 v# G0 C& I0 ~* ]0 L (ai_undo_pop)
. u9 X! ~, Q! N )& R# Z" u% Z* b# ^3 i& K9 U% T
)
( ^- D& D0 w. C2 b- E
9 }# P, W. r7 y) l (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle! }4 y0 \8 ?- n0 g5 }3 U% E- G
(setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
* ~) n3 K" m0 @; S% @ ) ; to what we started with- v# }6 n/ G5 `% l% [! [
H' _8 ]4 _: H# u+ o# p (setq *error* old_error)4 ]4 ~( X B9 b. B: h
(setvar "cmdecho" old_cmd)3 q; ] ~' b1 J# ?0 n
(if (not reset_flag) ; if object was modified, then
# V6 R# @& v6 g* k$ ^1 v8 m (ai_return ename) ; return it's ename to caller
" n4 `5 g! S5 ~1 A2 l2 l )
$ Y7 s/ F! s0 n% g2 X1 g); l# M, {3 \. _* X' L4 _
* N) K# S/ R1 S7 e& D/ s
(defun checkForLockedLayer (ename)4 s) t! N9 G; B
(setq layername (cdr (assoc 8 (cdr (entget ename)))))
! o9 I( l2 N7 ]& A: z) \ (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))8 g6 N+ t5 u" b
(if (= layerflag 4)! I# a( M( P( P
T
C2 w* p# h- @. _, R. ?7 G nil e# b& U$ Q) S# i
)2 O+ n& D$ E: v0 X& e+ `8 H! [* r
)5 X! D' }$ \ ]( \# ~1 U
: s9 U* [* ?* ?. v. ^9 y(princ " DDMODIFY loaded. ")
# J) h* y* C7 ~# k8 {(princ)
! s2 `2 \7 _$ Q; {& P+ g: U6 ^;;;???;;;---------------------------------------------------------------------------------------
( v$ V8 X" Z8 M p. u6 E# \8 E. ?1 p6 r) m" E9 a
; Next available MSG number is 8
! g) s1 G' d. p5 k6 `. Z$ e: j6 V; MODULE_ID DDUCSP_LSP_+ K" g! x) _; C0 c9 D
;;;
" S( v) E6 G2 ~* k& a T- D1 S;;; dducsp.lsp5 Z- a3 t5 R o
;;;
3 `' B& d; J1 y! X! I;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.0 }8 Y4 Z4 e# |' ?$ ~! j( @4 n
;;;
8 P+ {$ L0 I H5 G- ]% [;;; Permission to use, copy, modify, and distribute this software2 p' ]3 j1 ?- j S; P
;;; for any purpose and without fee is hereby granted, provided
$ Z% }* L5 V4 a$ n;;; that the above copyright notice appears in all copies and6 p- d4 V6 u) n# P0 a5 d* _5 {
;;; that both that copyright notice and the limited warranty and
+ Q0 k- W" }& D* i;;; restricted rights notice below appear in all supporting
7 j7 a! }2 A) O) x;;; documentation./ Q3 {: V8 o( `3 v
;;;
* `" }8 J; Q3 J: s;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
3 w6 e7 }# ^* H+ Z0 {& ~" m;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF; z6 t8 z2 e" k% S* ?9 j9 A% Z
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.# x8 k/ z4 T5 p( A6 `
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE2 V9 o' I& [: R. ^8 G
;;; UNINTERRUPTED OR ERROR FREE.; y% p7 q; }$ P5 s
;;;, o% ~- [( t# {2 ^
;;; Use, duplication, or disclosure by the U.S. Government is subject to
$ I7 l7 c" Q" X# F$ I; U;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
6 @; f& |( j$ D" U& R;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 4 u$ p/ W1 R2 P
;;; (Rights in Technical Data and Computer Software), as applicable.
" H5 h6 W1 Y+ }9 Q: U, w! K1 R;;;
4 L: a6 M2 Z. p" D( G;;;.% ?; R0 G# i% S4 C
;;; C:DDUCSP - User Coordinate System presets dialogue.! H5 F# J' i! ?! _4 v
;;;
4 p8 M) g- w8 F;;; Uses DDUCSP.DCL for the dialogue definition. The
8 m! q0 F6 s: X( ^7 x;;; slide images are in ACAD.SLB.
- P1 n. @) u0 {* j0 Y" q;;;0 a" R }6 Q1 ?) v
;;; ===========================================================================- j9 ^+ V, F! @1 j
;;; ===================== load-time error checking ============================, F# V, s3 E, ?
;;;
& C9 v2 z$ y& `& m1 p& W& z* M$ a
( }/ E7 R1 W3 `8 i) f* a: ~# R (defun ai_abort (app msg)
8 ^, i4 H7 c! } (defun *error* (s)
/ F/ ~; N9 }' W( N+ @) ?1 | b (if old_error (setq *error* old_error)); t8 \9 @& \0 V i5 @
(princ)+ W/ ]) Y, q3 ^7 m
)
u: C( R1 B/ h: t (if msg% I4 a2 `$ _* G8 j4 q
(alert (strcat " Application error: "
5 f% S4 G0 D8 I: g' e" b app5 r% c) s2 O) `
" \n\n "" j/ E0 C2 S- R& ?% H0 V* Y: ^
msg
, w5 K8 M0 q5 p: s7 V " \n"/ J8 x/ s+ l* e. Q! S" v# H9 G
)
" r# l+ h+ u( q; p) R: I4 j7 n1 F )
! N4 O7 Q. N; e; A* u7 B; D5 U )
7 F& O* [ j* D& T (exit)
- h3 C6 X9 d( R; s8 }0 A* J )
" p) X6 @; @$ p1 k# ~1 \, @# F( V/ l T7 n" |$ q* q- t
;;; Check to see if AI_UTILS is loaded, If not, try to find it,
+ x' e/ ~, X8 @2 J( J;;; and then try to load it.5 |( f3 f2 e2 Y# S" [6 L) G
;;;' ^! {" W5 u; J) H& Y$ b5 Q, _0 K# n. t; Y
;;; If it can't be found or it can't be loaded, then abort the
3 V. K4 S3 p3 d: S9 ^0 ^2 w( ~3 l+ c;;; loading of this file immediately, preserving the (autoload)8 A. ~/ q/ x% |2 M5 m m
;;; stub function.
* Z6 ]3 L" Y8 ]% U
$ y; n; e) N& y2 R (cond# j, f4 F6 l2 h& ^/ d' K9 q4 ]
( (and ai_dcl (listp ai_dcl))) ; it's already loaded.2 t# C: t7 j1 N% L5 m1 ]& @
7 |5 }& U$ y$ U1 `0 V
( (not (findfile "ai_utils.lsp")) ; find it
7 [# s! u: w7 u! ^! R/ w (ai_abort "DDUCSP"! [* k g* h# Y
(strcat "Can't locate file AI_UTILS.LSP."6 w$ @0 T% J7 j0 J' o- ^+ H: w& B
"\n Check support directory.")))
$ M% o0 r, ~& B, E) u. ?
. u" v g8 ~& B ( (eq "failed" (load "ai_utils" "failed")) ; load it
; f8 R: W5 p1 s6 w. q( i- r" } (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
+ G) T! A6 S# s )
) ?" Y7 @( O" C0 M" S" b2 X! v. l# F6 ]' g" L* @. D8 s7 M
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP* M$ E' T g G" U
(ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
9 l0 a$ m4 z6 |' M ) ; ai_abort's alert box dialog.
6 ]8 d8 s; w& i' W/ n# \! l
6 D( q0 D& {( ?;;; ==================== end load-time operations ===========================! q- W6 S$ u" L0 a- {2 R0 k
/ f, V+ |- U' C! b, ]4 R(defun ai_ucsp_start ( / program)4 d5 G- U5 s+ Y) Q$ r1 f( u8 o
;; Get program name
4 b4 e) M) ^9 E* i& U, n" r (if (not (setq program (getvar "program")))6 [$ u2 ?8 L& o) Q( y
(setq program "acad"). m. [, X" [. l8 n$ z# y6 D3 ]% N
)
5 c0 }$ {/ \- F! w: L (foreach v0 '("world" "left" "cview" "top" "front" 0 ^0 C5 Q- v- X; Z# H: a
"bottom" "back" "right" "prev"), ^ q) l8 w6 C% g
(start_image (strcat "ucsp_" v0))# q t( a) ^: a( L; D, A! h) P
(slide_image! g* H" s( I/ O) C% K
0 0) S8 o8 o2 c4 u( `% J, G
(- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1) h/ b& I& h* h6 r2 |7 x+ T
(strcat program "(u-" v0 ")")
5 m1 N3 W% m, P% E% _ )$ Z" g& x; F' j
(end_image)
, k; q( J+ K, g) q3 @& Q )
+ P! G( [" {5 I)+ L- Q# {2 q9 @5 j$ t
" H2 [7 V6 C3 [# N* J6 x(defun ai_ucsp_set ()' _/ m1 K# G# [, c' x8 g
(if ai_ucsp_sv
& V9 E; h8 T5 O8 i (command "_.UCS" "_V")
& J1 }3 V r. J3 L, C0 s (if ai_ucsp_prevs
6 c* L( I1 ^7 ]1 c7 N$ M1 D (command "_.UCS" "_P")
3 z+ y& v& w" a( W# p (if ai_ucsp_chg
a& {# H& [! U/ k5 Q (progn! x' x, L' _* v3 W) s0 z! V4 ~, `/ M
(if (/= ai_ucsp_a "*")
# t6 Z, K6 T) A" u; z: v2 S/ P (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))( i1 a2 L. |% B$ f5 `- T
)
* ?2 V5 b% V% n* n4 l+ u (if (< ai_ucsp_pick 6) l5 ?* Z9 D8 }% O
(setq ai_ucsp_set0 "@"): l' h+ \5 n3 f) s& w3 P, j
(setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")$ v7 @) H) J' }$ \7 K
)* C0 Q' u6 r F& J1 @, Y( B, S2 E
(cond ((= ai_ucsp_pick 0)
; R# U1 t: v% i" {' V y h (setq ai_ucsp_set1 "0,-1,0"6 h& Y0 e. x% G; {1 s$ d9 O
ai_ucsp_set2 "0,0,1"7 H1 d" R5 r8 l- X) r, q8 L# \
)
* ~; R% C- K |$ N. t7 m( ^6 q )' H/ E2 R! r. n j. Q ]* V
((= ai_ucsp_pick 2)
2 r. Y, Q/ v3 S! V# v% c* @6 p% o9 S" F (setq ai_ucsp_set1 "1,0,0"
* Z! k, u/ ^$ u0 V* n- X" c ai_ucsp_set2 "0,0,1", y( n1 {. ~: m4 E; J' I* L5 C
)
. ~7 i% D$ V+ ?8 c; e/ w )
) q/ m4 o7 Y, {0 b5 U/ { ((= ai_ucsp_pick 3)( u5 _8 s6 Y1 V$ ^
(setq ai_ucsp_set1 "1,0,0"
0 r0 _( |" N+ T2 Q# a) Z8 m+ x ai_ucsp_set2 "0,-1,0"
8 Q: Y9 L; q4 z- b# g& ` )
$ T/ m$ O" H6 W( o! f1 I )2 A6 k2 D9 N2 T+ \# K6 A5 e
((= ai_ucsp_pick 4)
- m6 _0 X' W( x* f4 B0 i (setq ai_ucsp_set1 "-1,0,0"( w0 g' `9 H6 ]8 Q9 Q( ?( E* y7 {
ai_ucsp_set2 "0,0,1"
( F3 K/ p2 C6 k )
: T8 S' N# g5 W! E# y6 X )! T! X! _3 n- E5 h9 d
((= ai_ucsp_pick 5) e$ R/ m, V2 W
(setq ai_ucsp_set1 "0,1,0"
0 [! f0 a6 W3 ]" g/ ~- [ ai_ucsp_set2 "0,0,1"
. W6 {9 Q. g5 v: Q )
/ p: j' z9 q! U ): M. |! _* {. m& _- M
(T
: [3 m1 m5 V' j- v3 m (setq ai_ucsp_set1 "1,0,0"6 C# x" l( k `! j# P
ai_ucsp_set2 "0,1,0"& j- ~1 E3 L! ~/ n6 U" s- Q' Z
)
( U6 W6 w; m+ S& T0 i2 t6 S )( X) G$ Z( ], w7 z, i
)
- f3 c/ Z; x7 R! \" ~2 M3 c7 C (command "_.UCS" "_3P" ai_ucsp_set0
0 F( G3 d% H6 M& Q+ W; r* A (strcat ai_ucsp_a ai_ucsp_set1)
$ A. q( C8 V. n' n9 ~0 C- H. W (strcat ai_ucsp_a ai_ucsp_set2)
5 D! b$ _) W) J- g: z, c/ L1 p' b )
/ Z( V. D% t* J, c6 U- @5 X T: M )3 U' V2 g- E1 M7 q/ _$ X
); P" ?) g' p% {
)
2 L7 y+ S$ W s0 m: W/ J3 Y Q# f )& H/ o+ @/ r+ J$ t$ L7 c. c, z
)9 Z. f5 ?# l$ f$ k7 I; N# M
9 K) L7 ~& t: }) h
(defun ai_ucsp_p (val currtile)
4 l6 S+ N8 a6 d7 t* J' [1 g/ u1 M (mode_tile ai_ucsp_currtile 4)
& y7 {* _9 H+ V (setq ai_ucsp_pick val, p2 C% w" r( {( {1 M, e M& m6 R
ai_ucsp_sv nil. q) y& s6 x0 D$ n" S
ai_ucsp_currtile currtile3 Q) t. v2 W; Z5 P y
)
+ S z% X+ u @- ^7 Z (if (/= val 1)
4 p3 D0 j+ C) H# w! y (setq ai_ucsp_chg T)
- h' c7 ^7 Z" A3 a1 y )1 p. G; e9 ]1 t( Q* P- [: u: K
(mode_tile ai_ucsp_currtile 4)
3 g- M; A, B' \% V' _)8 u4 g- p1 e5 x/ }- W( a
7 z, v' k) V: g7 g* B0 f& j* G# ^
(defun ai_ucsp_swcs ()
; [: f/ p7 C" A1 f7 H F0 A+ | (mode_tile ai_ucsp_currtile 4)* G& }7 Z- x% L3 H+ _* O4 e, p
(set_tile "ucsp_a_wcs" "1")1 v' T8 b' x# E/ Z, P" J l p! @/ ^
(setq ai_ucsp_pick 65 _) U0 c5 J$ @& W- K- z
ai_ucsp_sv nil! G$ \& }7 P& q! [; l( i
ai_ucsp_currtile "ucsp_world"
0 b$ J/ q k' g: C7 a' P4 E )
4 S% D9 J m5 }1 Z, U (if (/= 1 (getvar "WORLDUCS"))
" x$ S* K' X4 a- t& W (setq ai_ucsp_chg T)/ p- p: `8 I% l! T
(setq ai_ucsp_chg nil)
7 i" G4 t) P1 I, _ u/ T )3 X* ]6 b0 W9 G& c- [' {) h9 q
(mode_tile ai_ucsp_currtile 4)/ ^' k* z6 k% v @9 k5 A( h, t
)
2 r8 D: ?) Z' m/ r$ m; k7 W
' u( n h" P/ M. ]8 h6 R$ x" C* P(defun ai_ucsp_cview ()0 B9 [4 F [+ w
(mode_tile ai_ucsp_currtile 4)8 b' A+ y9 w4 Q5 o# ]+ z9 c3 [
(setq ai_ucsp_sv T
9 W8 K+ e" t3 s0 l- k$ t ai_ucsp_chg nil) N) m3 Y# a; Q6 W) @( O, y( c/ F
ai_ucsp_currtile "ucsp_cview"; @ w, @% ?3 {4 A+ H) K1 _
)
! C/ Q" n+ }2 g5 v (set_tile "ucsp_a_wcs" "1")8 l' l/ g" }; R w; o- ]
(mode_tile ai_ucsp_currtile 4). }9 Q9 v4 ^) l$ s$ z% v5 i
)5 q) k y8 l% |9 H7 [7 }; Y( r
' x7 [1 O3 a9 o' P
(defun ai_ucsp_rucs (typ)8 N1 i, B0 S9 U+ |; D
(setq ai_ucsp_a typ)
& y0 R. b0 R( T. ? g (mode_tile ai_ucsp_currtile 2)
9 d9 y3 t8 h+ L5 `4 `0 M6 w. H {4 f) z)
5 P% I( P/ \3 j; s
9 N! G" q5 [9 I L0 I7 p(defun ai_ucsp_prev ()+ V1 D" W; Q1 i: G ~4 S" Z
(mode_tile ai_ucsp_currtile 4)
$ r* ^& @" E% i9 l+ y. S, @# X% W2 ~ (setq ai_ucsp_prevs T8 i' Y' f4 j/ F& H& N
ai_ucsp_currtile "ucsp_prev"" ^% T/ l. T2 }; `: u- w
)' Q8 G- v2 M% q# U; O" R( L
(mode_tile ai_ucsp_currtile 4)
, B- O8 {/ P! _$ I. s)
" a' ]- J) ]& L- M6 ^( O: J- A! T! I, D- j+ V! p
(defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)7 k! ]) G6 L3 |6 S( I) `
(if (not (new_dialog "dducsp" dcl_id))
! X6 ]5 d2 K8 s- A (exit) j( ?2 i! G2 I0 t1 ^
)
1 R" X! a/ P' n/ v
; r" ?/ C4 g6 b m; S* ^ (ai_ucsp_start)! O6 h5 R( A/ u9 h
(setq ai_ucsp_a "@"
+ v5 Y8 x8 K$ Q' C0 u ai_ucsp_pick 2
* m+ }6 V9 X3 ? ai_ucsp_currtile "ucsp_top"2 U- Q) @) J& Z, O2 i! g- G- b
)
* m4 \- I7 [) D (if (= 1 (getvar "WORLDUCS"))
/ V2 b4 B3 L% X9 j7 _ (progn
2 l5 I5 g' o6 M% a" j7 }# | (set_tile "ucsp_a_wcs" "1")
: G& \$ K$ z" o# j, v& ?" } (setq ai_ucsp_currtile "ucsp_world")5 a- W8 L) R, f6 ^. n
)
) Z# S7 @, f* Y* _- _ (set_tile "ucsp_r_ucs" "1")
& n3 ~# Z. L( N, ]8 I )
" v/ n, {! N4 y. H (mode_tile ai_ucsp_currtile 2); V9 B5 X; y$ B
(mode_tile ai_ucsp_currtile 4)* T% d; M4 b9 L( C( l
(action_tile "ucsp_world" "(ai_ucsp_swcs)")( ~/ e4 I) D5 l& B* f% I, {+ {2 w
(action_tile "ucsp_cview" "(ai_ucsp_cview)")
% y* h/ A3 j1 H3 |7 |7 D, C+ d* e (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
4 J8 f- a( _, n (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
3 p4 A% ^# ^7 i8 V, T f (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
% n+ y0 K& {7 E6 X* y. C( Q) n0 K: C (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")/ l+ B0 D: w1 K) l" H+ y3 Z
(action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
- q; b' a, B1 `3 O" b1 T$ v+ v* | (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")( [1 m7 N6 K n! \8 C
(action_tile "ucsp_prev" "(ai_ucsp_prev)")
) _6 Y$ [: `8 G5 z! h- {5 z# q% H (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")6 d& F4 S& O% r4 f8 `
(action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")! e1 Z, Z' T$ ]1 c1 M# q/ X( y
(action_tile "accept" "(done_dialog 1)")7 y9 S& }/ [: f2 ]/ O& ?; P) B% `
(action_tile "cancel" "(done_dialog 0)")- A( Y$ o, q5 K& l/ O6 @
(action_tile "help" "(help \"\" \"DDUCSP\")")9 [- _$ Y% \' F
(if (= (start_dialog) 1)! T5 t) ^6 p* S. K% s' s3 m+ H
(ai_ucsp_set)8 }4 v% C" ^" \! S ?
)2 ]# c9 m e' r
)
$ h8 K4 B3 v: t& T( W; |$ g
. Q, d* s, f* g& F# K+ G(defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs , Q1 s% ]3 e/ r2 E
ai_ucsp_sw undo_init) t+ l1 l& n0 H
% h) T: N8 h) l7 B* Q2 c ;; Set up error function.# L: P) o/ u, h. O* [9 t, ?% ^+ O
(setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho5 s* ?8 ~! [' W! n6 Z( r) A* t1 n- Y
old_error *error* ; save current error function; R n2 r* D( X
*error* ai_error ; new error function
: H+ u7 c( O) m+ m. ]2 L old_osmode (getvar "OSMODE") ; disable OSNAP for duration) u3 B' D4 G1 W- t/ F B: X, A
)7 E' E- N: Y7 N$ b1 T2 k
- U; J6 o) {: T# ?; Q# c (setvar "CMDECHO" 0)
- u; m8 f! Y) J/ D+ a/ \8 p) m1 N5 H' g2 L9 w" L- }
(cond$ U' S r7 e, S" m
( (not (ai_notrans))) ; transparent not OK
! \' n# r2 r) m0 v; C ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
3 }+ p. g1 k5 ?: I0 P ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
- l: P) m( r. h (T (ai_undo_push)
$ O k# _ i6 Y' W3 x- z s* @# X (setvar "OSMODE" 0)* }3 g' B* M4 }4 y; y1 K+ L b
(ai_ucsp_main)! [- a, V! L& W5 T w
(setvar "OSMODE" old_osmode)3 ?! F$ ?" N! ?! I; s
(ai_undo_pop)
C; X) z/ ~% ?' n/ o1 L )
, }0 p/ i3 g5 N2 ` )
, X4 I7 p% Z+ u3 R, F' B* k
. y( p% D$ z- u/ o) g2 J5 b (setq *error* old_error)
# Z( |' G4 L. s d, q' f2 C9 P. K (setvar "cmdecho" old_cmd)/ u- G' @# U1 u7 e& ]% A/ R
; U+ Z6 h) n7 F: X# T (princ), _$ ~6 q B; t) @1 ^
)
; q$ u. W. B- N5 M+ n) U& p
' `# O$ z# m* ~- w5 V, _& e+ m(princ " DDUCSP loaded. ")5 a5 O m- l, u2 t9 O6 Y( F
(princ)
# X) m! ~& P- ~* m5 E8 y2 [
1 ]! S6 \6 C/ K4 N \; F;;;???;;;---------------------------------------------------------------------------------------
) U) Y0 k& C, p7 D) _# O2 a( ]1 w& S& [7 O1 Q' @) z' I5 o
;;;----------------------------------------------------------------------------
) p i) C% O5 ~( h* R;;;3 b, ^5 g3 F! v9 H. s
;;; EXCHPROP.LSP
# N5 i: y+ T4 B& C;;; Polyline and text modification capabilities added by 6 |" r$ z: `. O, g2 e3 z5 n* g2 F
;;; Randy Kintzley / V, c5 @; `: r
;;; 3 L4 |) f- }5 s S
;;; Copyright (C) 1997 by Autodesk, Inc.
q0 i" r% D1 A. j;;; S: r5 e" V _
;;; Permission to use, copy, modify, and distribute this software8 Z/ ^6 }, S) E$ g
;;; for any purpose and without fee is hereby granted, provided/ E' E% x% {$ W0 e
;;; that the above copyright notice appears in all copies and
! z+ ^" R2 g: s! u3 D0 U+ ];;; that both that copyright notice and the limited warranty and
1 q$ U7 g. V. T8 @; \;;; restricted rights notice below appear in all supporting
' i1 o+ X$ Q: ?' t;;; documentation.# S4 v. G" v7 W1 ~( t+ X
;;;5 W% t+ S% p/ |1 b# J
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.: U* V+ M" b3 b! }: s
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF1 O& J$ N! D. v3 _7 w6 Z |% a% [
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.3 g$ G) G# i, R a! Y5 V7 _
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
9 O) u$ z6 R( S;;; UNINTERRUPTED OR ERROR FREE.
; X2 r7 X! [% M' V( }5 z, x7 {;;;
2 S, q6 j1 l6 D& }8 o- @8 c3 @;;; Use, duplication, or disclosure by the U.S. Government is subject to) |/ m6 t6 t0 I1 o" b! _
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer7 U6 ^* A% \& I8 i0 [) J
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
7 A5 }: C9 E" i8 @' R1 Z. A7 p( e;;; (Rights in Technical Data and Computer Software), as applicable.; d. P6 u; b5 G/ i; x9 {
;;;
+ D) V5 W( h* E0 `' N+ Q;;;.9 ~* \) o* p% ^" A) W1 m1 B
;;; 28 February 1997
) F6 l* J1 ~+ I. a7 M, O;;;
}# y& A, t, _. U1 A: f;;;- k+ X [. F( u" O: `$ i5 N
;;;----------------------------------------------------------------------------
9 A- Z' H; t0 I$ W0 B/ W;;; DESCRIPTION1 X! N; [7 H3 J0 C0 |/ R
;;;----------------------------------------------------------------------------3 d1 D8 k7 l1 q# \
;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
/ T; o* K! t. ?- i;;; command gives the user the abilitie to change several characteristics
u; ^! T5 y5 i;;; of selected polyline and text objects. : W0 P/ x8 y" E, x7 j# k- ?7 E+ L
;;; The style and height of selectected text objects can be modified # t, K2 h$ o9 X0 G0 p
;;; (including text, mtext and attribute definitions) as well as, width and
; i( n! | h5 A8 m8 g;;; elevation characteristics of selected polylines (includes lightweight and
* z _6 k% C- I;;; traditional polylines.)
' ^! E, O. w% g8 i;;;----------------------------------------------------------------------------
3 u0 M% j" p" [4 _6 {, n;;;----------------------------------------------------------------------------/ Y; q* `7 O' ?7 M. k: q, l! M
;;; Prefixes in command and keyword strings:
" d* j$ _. R+ R- Z;;; "." specifies the built-in AutoCAD command in case it has been) y/ |0 L n3 h" p8 q
;;; redefined.+ ^: O9 f/ ^, {) S. v7 D
;;; "_" denotes an AutoCAD command or keyword in the native language
; e3 G0 z* F7 I- J& I5 V$ ~;;; version, English.
: J% }1 X8 P% Z1 n# M3 C' g;;;----------------------------------------------------------------------------
]# c# [' N4 Q4 T2 S;;;) M4 F/ a. b: t1 J: d2 U
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9 y' u$ x9 ?, _3 @! Z) ~- A5 X;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
, Y; Z' {+ X+ W% F;Functions created as result of loading file: exchprop.lsp
- Q" m9 G0 S9 ?; DDCHPROP23 _6 @; e5 A7 n" X) f
; DDCHPROP2_INIT' i1 ?* s8 d9 I3 U
; DDCHPROP2_SELECT
0 e* Z5 ]1 @5 i+ A, p2 [# g;0 Q3 ~5 _# ~ z5 D9 L/ R
;Variables created as result of loading file: exchprop.lsp, e E! x: B+ Y- l. M" q$ L
; OLD_ALLOC: V$ G' Z( [: y, z% v
;
( R4 D* U8 [4 n M;Functions created as a result of executing the commands in: exchprop.lsp2 y! f) H* b4 L* @$ }5 F8 T
;
' ?. v8 U0 m# ~* l;Variables created as a result of executing the commands in: exchprop.lsp! c8 N/ w! j3 s! I' |- Z; \! o4 {
; AI_SELTYPE
7 Z2 _1 L/ M4 s; BONUS_ALIVE
; a/ ]5 w+ q) E/ `+ Z: a( g" I7 F9 `6 v9 o; BONUS_OLD_ERROR
. S) v3 u4 T+ I# x;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# q9 d( G- J x3 i, T
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
: I2 T1 u. k- |+ P _/ p
8 E: p1 m* @4 k M;;;2 W9 T( ?' v5 \
;;; Avoid (gc)s on load to improve load time.
5 K1 U3 x A7 q% ]4 d& ]0 C; ?;;;) o( s. g+ _1 U; g6 X" b- {( `- p
(defun do_alloc (/ old_allod new_alloc)
0 q7 I- p9 c. m) z& J X0 J2 [+ K (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
y; ^( B, M7 f( ] (expand (1+ (/ 4750 new_alloc)))
8 g' k$ Z5 b& j* L8 N4 [ (alloc old_alloc)
( d Z) G( m @9 G);defun+ K, H/ A( b5 }, s+ ^
: C) T/ b0 P3 J- x9 x;runs at load time - rk% A Q' Q; i$ y) P
(do_alloc)
) Y( x: ]* e! M. j }9 m(setq do_alloc nil)- G1 t* W* B8 |1 B/ T
;;;: V6 m6 w$ g' w$ @0 k
;;; ===========================================================================
7 C% f3 O9 F2 X: l# \' j' b/ x0 @$ S* G;;; ===================== load-time error checking ============================' H% q+ U5 u6 g% [5 N
;;;. ~: h7 G- W/ ?% @- o! k) J
. i4 O- {* s6 L6 e% b$ k% v (defun ai_abort (app msg)
" k% w6 L1 ~; q' U. f (defun *error* (s)/ M; }6 S2 _: r Q/ F: M
(if old_error (setq *error* old_error))# o; M# j2 \- M5 e3 z% m) A
(princ)" w& j0 ]7 [7 a6 r* H1 a3 M
);defun
) j) c2 C1 c3 o$ ] (if msg
# J; z' N+ n5 v% h (alert (strcat " Application error: "
1 I0 W0 z" D+ \ app( g9 g* e8 l; E8 i( C6 }1 c
" \n\n "
' E' _; e/ g' r! K6 l% h msg$ m- `! m3 ], y- i
" \n"! [) i' a' X5 a* s! |/ E
)
9 f& f! P# L0 h0 { b! M );alert+ X8 q1 r' R9 Z( b5 G: D9 j
);if; Q) K1 ] L) c* l
;(*error* msg)
1 h! ~7 m3 B) [ (exit)1 x- q& o* ?5 y
);defun ai_abort
! j+ P8 x4 B" e% B& z, ?: y! X- p& x' \; |& i( } d
;runs at load time - rk
5 r$ F$ O, W- x* F8 x0 R% x* G; j;(if (and *error* ;added the if wrapper around this - rk.+ b, L5 w4 V" Z# [+ s
; (not old_error)
6 f$ m, C" |) ~9 A+ D; );and / M3 v' z _; F: f
; (setq old_error *error*);setq
4 @: ?% _+ \1 F9 y;);if0 @3 ~6 `# R$ M8 e
% P% |& ~/ [ \& C, F9 {0 i6 \
1 w. E& f5 l4 ]3 N;;; Check to see if AI_UTILS is loaded, If not, try to find it,
3 R5 }; z. S& q' ]% {( N;;; and then try to load it.: L9 U$ n2 _ t% z8 w' N6 U; L2 P
;;;7 n/ t( X" {9 F) {8 ~
;;; If it can't be found or it can't be loaded, then abort the
& G" U, S& f0 {; c3 ]4 B;;; loading of this file immediately, preserving the (autoload)1 j: r. e2 w. D3 M: O
;;; stub function.! g4 l) y: m+ C/ o# G2 L0 ^: q( K- c
# \) C- h9 `& D, c
;runs at load time - rk.
' @( u0 b7 b, \5 {+ K(cond
9 w# S! a1 Z- e2 I ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.+ O$ o# _5 @ @
( (not (findfile "ai_utils.lsp")) ; find it
% O0 h* q1 W; N (ai_abort "EXCHPROP"
+ h* ^* b! ~( ^# u- S7 L' ~ (strcat "Can't locate file AI_UTILS.LSP."$ w, n% S8 u6 A: L. V
"\n Check support directory.")
s l8 P" T9 N5 R; u3 h- e );ai_abort" @: r2 _6 T/ q0 h/ o
)
, D9 p+ H9 u" b. k/ S ( (eq "failed" (load "ai_utils" "failed")) ; load it- s3 K4 S5 Z. N% V0 _# r
(ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
- c; Y3 H. v. c2 |, m! x2 ^ )
" f' P* D* y1 Z- n C/ \$ y);cond close( X+ G: ?' q. |" O% E
, ~, h3 d5 Q) F9 U! R( U, h# i
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP- V0 {; M% k( A, {% ^$ |
(ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses1 m; r7 E) {2 b% ?7 C6 G& \
);if ; ai_abort's alert box dialog.
2 D: D( i5 R( w2 ?: w" L( f
% f7 Q- o) }: K- R! w;;; ==================== end load-time operations ===========================
+ v6 _3 m @7 T
+ _) S! N( H* i0 D0 v P$ |;;; Initialize program subroutines and variables.1 V6 c2 h; K2 L/ Y) D; V
* r. @: h$ T- R( i, R8 C+ p(defun ddchprop2_init()8 [. W/ U3 V2 H Y. K7 e7 g
: P3 I5 r' U" `: K8 C ?
- Q3 a# [8 [" L3 o" a$ P" k
; z6 _7 e7 }# C0 Q$ ]- C7 g& j ;;0 g7 m3 u" O$ F4 E" @8 u
;; Define buttons and set values in CHPROP dialogue box
# Y2 g8 V' p6 n+ g# l% v3 ] ;;
- K5 ]9 n5 `: g& E (defun call_chp2 (/ cmdact p1 p2)
6 q c+ u& t, K R( L2 ]1 J" ]- Q. U l
& j. W; p- P; a' z! l (if (not (new_dialog "ch_prop" dcl_id))
/ l0 r! R2 G" f3 r; ]" C6 S (exit)7 k+ d Y" q$ [7 B9 w
)
9 t0 ]) e# Q8 q6 Y" B
. [7 H; c8 x% I8 j: A. J7 V (set_tile "error" ""); E4 J: h: j j4 V
;; Set initial dialogue tile values9 v; g* W- Y7 l) F v
(set_col_tile)& D0 ]6 }2 c* d
(set_tile "t_layer" elayer)6 T/ `6 K5 F' L* h; e" E3 \
- F/ c' q1 O/ e) G: _ (cond3 v3 f$ ]+ D& A0 V/ J |
((= lt-idx nil)
$ @1 q8 S* e/ G (set_tile "t_ltype" "Varies")/ o1 y: E3 T" S( F
). D& }9 b# d4 A; b
((= lt-idx 0) ; set tile "By layer & layer linetype"
9 F6 m: q7 Y2 B) T4 E6 M+ S' H (set_tile "t_ltype" (bylayer_lt))' g+ b7 C% y# D; X9 H4 q
)
' F$ v3 S0 G7 V4 y (T
" y1 r4 }+ g% \4 ~# l2 _ (set_tile "t_ltype" (nth lt-idx ltnmlst))) w+ \' c3 b# {: r- n" s
)
7 z1 G7 R* H5 k )' N/ q- l0 P6 b7 h" N
. _5 u. l! ?3 E0 z: s* M (if (or (= ethickness nil)% M6 P7 X( @5 [3 _ S
(= ethickness "")3 b3 f7 R5 ^# z& U. F, B+ X
(= ethickness "Varies")
P0 t, O: C5 @, V! k4 N );or6 Q/ S- T9 G3 T% E& v1 x
(set_tile "eb_thickness" "")+ F8 o# b5 k, z3 l$ _1 x1 O
(set_tile "eb_thickness" (ai_rtos ethickness))9 O, k( R# x- y7 ~* C& @; E
);if3 ^# x+ `6 e: ~9 `) N' Y' z6 b( ?: e
(if (or (= eltscale nil)
( N9 E1 r& e; F (= eltscale "")
2 T8 k3 S8 M) m (= eltscale "Varies")% Z8 O7 w/ t! f5 l& k s& Z
, H$ [* X, t6 r )
* n1 }' v+ b+ O2 X (set_tile "eb_ltscale" "")
# p( E* m0 G6 h& a& E$ c (set_tile "eb_ltscale" (ai_rtos eltscale)); L8 P) Q! U+ l7 a
)
0 }+ u* F' i5 J. O0 U (if; o, _- U" P4 m2 z
(numberp ewidth)
- e; v y9 C1 |" k: D (set_tile "poly_wid" (ai_rtos ewidth))
8 l; R8 K& I( \0 m- t0 V (set_tile "poly_wid" ewidth)
5 Q, P( d3 c- ]4 Z )* G+ m% N$ m* u
(if* d ], P2 a9 L* |
(numberp eelevation)* j! u- Q9 |& C9 N' D
(set_tile "poly_elev" (ai_rtos eelevation))
. s {0 C+ i4 v% x0 }, K8 P3 [ (set_tile "poly_elev" eelevation)7 k( i# H3 m9 M* J+ [7 g
)
9 H, a# e7 g& n& M) A# j$ z$ g; x (if
3 j& ]0 w: c( | (numberp eheight)7 K% q& }2 `* [) w( V6 D( N
(set_tile "text_hgt" (ai_rtos eheight))
+ I7 [: D3 s7 J1 Y$ V (set_tile "text_hgt" eheight)
i0 n- j9 {4 b% |+ |& S! u )
; Y. [" ^0 j/ H% I (if (not estyle)
7 o' A' D1 K4 g2 }) z: v: K (setq estyle "")
_6 s) Q! U2 R );if 2 ]4 F& G2 i4 a* R; B% K
(setq hair_style_list (tnlist '("style" 16)));setq
; G5 k" ^8 z1 U4 [9 ^0 v (if (not (member estyle hair_style_list))' O5 J2 z) y- z; c% _1 ?- u' S- I$ R
(setq hair_style_list (append hair_style_list (list estyle)));setq
- H* R6 f0 o( m( w- a4 w );if * O3 c, D( g& N7 H& L, v9 m7 v! {
& u( k6 G/ ~+ y. f* e l ]* U) B/ m (setq hair_style_list (acad_strlsort hair_style_list));setq
4 T+ p( ?3 U3 [! R (mpoplst "text_style" hair_style_list)4 E/ N/ q0 D4 v/ ?
(set_tile "text_style" / l: e; y- r/ f
(itoa (position estyle hair_style_list))! U6 N" \3 u- x- X; o
);set_tile
/ u7 K' i; d, C( w. F2 E
9 ]" W4 H0 O* z- b3 m- t( q( w/ N ;; Disable tiles if need be... ;@RK$ z1 Y) L% S- V0 O" c
(setq a 0)
x! k" J/ [" C. Z. Y( w! ] (while ( < a (sslength ss))
2 f3 w/ `( T" C! T* ]3 I (setq which_tiles
/ f+ o/ f) l6 q O (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
6 B" ~* q9 a* O7 e5 @. e0 \) C# w5 L, {; c. [; ^& S# H4 n
;; If all fields are enabled, don't bother checking anymore.
, Y J' v; H( E) g+ I/ ` (if (/= which_tiles (logior 1 2 4 8 16))# V: I2 a5 M8 {$ J, [/ u& J5 y
(setq a (1+ a))3 x$ i; Z, x& `: x+ @ `+ O
(setq a (sslength ss))0 o: E9 W2 t8 [3 Q4 W6 Y$ D0 U! }
)
- J, R* z4 b* ]; N% d/ c# D' } )
4 D" Q# t) _# \: H! V ;; Layer Button and Text Field' {% l. A8 J* G) d# H7 r+ D i
5 ]% _3 ?1 V, h- w1 { ^6 r$ s/ [. Z (if (/= 1 (logand 1 which_tiles)) R7 `1 X, s6 J" p0 O
(progn
1 A% U- c9 F9 } (mode_tile "t_layer" 1)
; m1 e1 Z; N( M0 X (mode_tile "b_name" 1)
4 q7 d4 n9 ^6 H; H6 e1 V4 j. [" u )" O% n. z4 @. S6 L/ I' K- w
)& d3 F1 E& p" _' u( V9 X" N
2 |# n6 ^5 b5 D
;; Color Button and Text Field! ?" R; f$ v+ n1 m/ ^) I% Y) H
(if (/= 2 (logand 2 which_tiles))6 T# m* f( y' q6 J
(progn
! V4 w+ \8 a( Y6 |/ ]" e; v (mode_tile "t_color" 1)
8 ]' f: I5 ~7 g+ k# f, b (mode_tile "b_color" 1)1 Q/ |# ^/ p) f. d
(mode_tile "show_image" 1)( a4 Q, X6 F- j: {6 R
)
5 H2 o/ F) `; j1 d; Z )
+ u$ w" A5 a; J# M/ \ [ ;; Linetype Button and Text Field+ Y+ B( q, F/ w3 @
(if (/= 4 (logand 4 which_tiles))
7 J/ h0 n( f" ?+ G! e6 _0 Q. j (progn8 R8 u- |+ c$ l, q5 E5 P/ n3 C/ ?
(mode_tile "t_ltype" 1)
# [- U q- O( V1 S$ J' P4 Z (mode_tile "b_line" 1)2 F# M1 A; L+ I; B- q) q: T& R, W. i( A
)
9 v( z) `, T& m )
0 d2 w% @3 r& w, v4 q ;; Linetype Scale Edit Field
! ]6 b3 R5 f% L( e (if (/= 8 (logand 8 which_tiles))# K- Q6 K+ S- [, q" o: h: d' b) F
(progn
; s$ G+ v( J% |) F& H% t2 m (mode_tile "eb_ltscale" 1)
! I% m- q; p' ?3 t+ o! S. v )
X" o! ?7 a3 q" M2 h: A )
* z( ~. \4 f3 J9 u K ;; Thickness Edit Field." N, q; p+ Y- T: d* F" s
(if (/= 16 (logand 16 which_tiles))
+ d+ C$ E z! F7 V3 v, X9 Q (progn
2 P& w0 B4 m4 Q- |" q! C! c (mode_tile "eb_thickness" 1)
( v; ^" h- ?9 i! y3 Y6 j% T )
& }9 o% R$ `! ~/ [0 e )! {$ ~+ H, E8 |$ ~" c( S
6 N/ L! t& N6 @6 I
;; Polyline box and tiles @rk 10:05 AM 1/30/973 ~* r: p) {' | T1 T% ~
(if (not (= 2 (logand 2 eflag)))
9 t ^4 g" R. Z (progn
- v; w/ r' n2 ]; }; g (mode_tile "text_hgt" 1) `+ E' S; U7 n: l; ~3 i! ?0 _( V
(mode_tile "text_style" 1)
7 i" c9 J2 j9 W );progn P5 X. I' M. v5 t* @; d
);if
% X/ Y& T& W6 H- F (if (not (= 1 (logand 1 eflag)))9 h+ {7 {2 g4 ~3 Q
(progn
: d0 `7 l; }0 |; R9 j8 h3 M (mode_tile "poly_wid" 1)+ [0 L5 V- h% C: Z D9 ~: V# Q# s
(mode_tile "poly_elev" 1)
7 Z! w3 L5 U: Z2 ~5 W );progn then disable polyline fields
+ t, p; t! t0 O6 l );if
7 _ n$ G4 P! v$ Z* E! q+ d r0 N# x$ r {# J& z, z9 [
;; Define action for tiles) G3 o* D: U/ u
(action_tile "b_color" "(setq ecolor (getcolor))")2 X% U e3 b; |8 ]/ {, ~
(action_tile "show_image" "(setq ecolor (getcolor))")! |0 G( v/ M$ H7 F' F
(action_tile "b_name" "(setq elayer (getlayer))")# u& ?# k. T8 k. }7 ~
(action_tile "b_line" "(setq eltype (getltype))")' z6 ^' _5 Y' ^2 V4 U' t7 G- j
(action_tile "eb_ltscale" "(getscale $value)")
/ j* b6 E" q: |% V (action_tile "eb_thickness" "(getthickness $value)")
' s4 ^0 r$ |* O* Y) _6 l (action_tile "poly_wid" "(getwidth $value)")+ U: y8 z, i) b; o0 t
(action_tile "poly_elev" "(getelevation $value)"), ^: M9 p& n7 E5 q" z2 ]
(action_tile "text_hgt" "(getheight $value)")1 s3 L D) D9 P, {. K
(action_tile "text_style" "(getstyle $value hair_style_list)") " w D( [1 g: V4 w1 E0 j+ v% L
(action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
6 R; \( M6 f& e6 M$ r) t (action_tile "accept" "(test-main-ok)")% J* A$ T+ e3 P- e# |6 j
6 a, w1 D: v4 I- q q/ U9 Q (if (= (start_dialog) 1)
4 t. {& U0 P6 g (progn. M+ U: w3 }0 c3 h' p
; Update special properties for polyline and text selection-sets.
2 ]. m, b" m( ~3 R1 N! e$ K6 _8 R% B7 I2 u2 X* M0 @7 q. N
(if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
: r9 T2 o; Z) _$ }6 T7 I F3 _4 q (or ewidth0 `8 k" {% } N. Z3 D
eelevation
7 z% S# m6 A" S1 ` );or
2 e: @7 H& d8 B8 P );and" I/ c& I. i) y6 P
(progn
% }* z* `* |5 U( B; K (setq ss-index 0 & U1 k! E4 I* l3 w) R: Z/ @
ss-length (sslength poly_ss)+ f" ]8 B7 m% q. |+ P& i/ G
);setq
8 M m' Q- Z, u% r! k (while (< ss-index ss-length)
9 Y6 F, X) P3 [% v9 G (setq ename (ssname poly_ss ss-index)$ T4 [& D5 V& n f
elist (entget ename)! H8 q8 @$ K' }9 M2 J
);setq
* ~1 R j6 c" Z$ K (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp7 ~' ~2 n) J; k5 h4 Q4 W2 a/ P
(if ewidth + n0 f6 S9 @; r
(command "_.pedit" ename "_W" ewidth "_x")
8 `% G' ^: o" z( z! J6 R" | );if 6 o# |, Y; p$ h% |" x! J
(if eelevation
& d t% S* f6 h8 c (progn
& f9 E& X+ b/ r8 R (setq p2 (list 0.0 0.0 eelevation));setq6 ^- p: \' x% c6 i5 M* J0 k4 }4 n
(if (equal (cdr (assoc 0 elist)) "POLYLINE")$ |, C! q+ X: H% d& i
(setq p1 (list 0.0 0.0
: m+ p0 U4 V5 L5 E (caddr (cdr (assoc 10 elist)))$ {+ e, [1 ]) D! s
);list0 o5 i! Q' s2 `/ b: Z
);setq
$ S+ I, c8 G4 U v( g0 g! L (progn
3 L; m1 |2 Z) g) q (if (assoc 38 elist)+ G9 j' M! n6 {+ W8 b" L
(setq p1 (list 0.0 0.0& } w% P# f p, u
(cdr (assoc 38 elist))
2 J9 p+ `/ d4 S- e% n" E );list
4 i4 X9 P3 |& R1 k0 T( M5 N# X' c% { );setq
" ` |, o# h' M m7 a# [ (setq p1 '(0.0 0.0 0.0))
' j. k7 H+ d* W2 F );if
" O* B+ _; ` h );progn $ d# ^9 [% G6 c% u
);if3 l3 o& i+ S+ }7 _1 b. C
(command "_.move" ename "" p1 p2)
7 g0 D4 ?. O) G8 u0 _ );progn then change the elevation of the polyline
$ H+ v) Y; W/ n/ V- M$ t );if/ C% ~# t& {6 D" M( E
(command "_.ucs" "_p")+ l2 [) s4 ?3 F
(setq ss-index (1+ ss-index))
4 v: Q8 b5 W. ^( ~4 _& ]( {; { );while
/ v) b; d6 y1 I. t, Q% O );progn then polylines are in the selset
! ^$ k% ^3 y3 ?9 z/ s );if
6 `& a" a9 u7 J+ V- T (if (and (= 2 (logand 2 eflag)) ; text
: z, l: p! [5 j) G (or eheight
& t( R4 e& L/ Z2 r! t) G, E) m$ [ estyle r9 ]* G( y: f
);or
$ J8 S5 B9 ?8 ?1 Y1 N6 o+ t1 T7 D );and" J: _! X. Y) u2 f$ B
(progn
" m6 V% Q& b% K5 t, n2 K& p' ` (setq ss-index 0 ss-length (sslength txt_ss))
/ C. {" d, B, B/ O' r. n6 n (while5 @/ x) d- @1 Y) L& q, R4 l$ {
(< ss-index ss-length)& H! f9 ?% ^% j$ C+ s, l/ ]+ o
(setq elist (entget (setq ename (ssname txt_ss ss-index)))). r; s! q g! ]" W- H5 _! W
(if (numberp eheight)
: O9 J$ W+ p! d" ]' y9 ^ S! U, K (setq elist (subst (cons 40 eheight)8 ~$ v% [7 a1 b% t. ?
(assoc 40 elist)- Q0 C4 h$ G+ ?* s
elist
. D% s" m/ I2 G+ d( M );subst8 `8 s) k6 L& G+ \0 I! G9 X% ?3 C# m
);setq6 H, L0 v0 O z1 Z2 o
);if# I9 p4 h; v$ X
(if (and estyle ;(not (equal estyle ""))
3 D! N% _( z* T3 w. O* ~) J0 h- v (not (equal estyle (cdr (assoc 7 elist))))
# @& V y! C' B2 [- d- t8 y );and
3 J% x6 X* d* X" N% m (progn
5 c& q9 }2 s6 S/ l/ R ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
6 |" }, l8 Q" v8 A! V ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
" r% ~; |; i/ H7 Q ; (setq elist (fix_mtext_fonts estyle ' t( r2 Z7 p x# ~% h% Z. ~$ W
; elist
* o7 B& [' p1 w* g ; )
8 w2 C" O2 ]* c0 Q( S, D! o& z ; );setq then
# |! k" L4 U* s7 b: y# z2 [% R (setq elist (subst (cons 7 estyle)7 T" e0 j9 ], D7 t7 J$ v+ Y
(assoc 7 elist)6 |( s: g9 B+ e/ i. q
elist
/ j) q/ z" O' x' S );subst
# ^ o" |7 h7 n0 R );setq else
- a Q( \6 b& V! d2 A* s5 j' [ ;);if
9 l0 K, D. I# d. a- i. M );progn6 U' x! |" S' W$ C4 ]6 q% v
);if
3 ?% l% s9 i5 I( V0 x' U (entmod elist): m9 H- j5 Q2 x1 d' ^( N0 }5 S
(setq ss-index (1+ ss-index))
: P' H0 V6 b8 i2 I) v- W- f$ M: l );while
) W- s% B$ g' @ );progn then
2 }, X b1 M L; j7 ?* V );if
3 R2 H8 L; c0 r- m7 T5 L
& y# x# p# b* x (setq cmdact (getvar "cmdactive"))
; Z) [% b: M L% N (command "_.chprop" ss "")" |3 S5 B0 p D% b6 {
(if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
m/ ~: o& U" |- F& A; p4 \9 ] (progn
% f! e( T E% _ (if ecolor
1 R; o m$ P/ [2 l4 r3 {4 } (progn
; j( w( R; K3 c, t4 x/ u (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
: ~: x2 q9 Z: _% u) D$ c (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
- N+ \4 z8 R1 C (command "_c" ecolor)4 r; U* o C2 I( E7 }( V2 f
);progn then
" ~. ?0 B7 N1 q c- P8 {7 o7 S )
! c# D& E4 A" [; X' m- J (if (and lt-idx
3 s- ]1 y: @0 Y0 ] (/= eltype ;|MSG0|;"Varies")
8 s" @1 T* i6 Q4 e0 R. e ). e5 O! Y8 ~1 z6 T7 w* |8 k3 T
(command "_lt" eltype)8 c0 V" }- f$ m1 \- f7 h- t1 t
)8 Q4 x, b: p' V6 C0 N& q
(if (and lay-idx 6 f! J! m) q1 l7 ]/ g, o# M
(/= elayer ;|MSG0|;"Varies")/ K7 t, O' F, y# }' j2 Q
)
9 r* Q* `1 x& K (command "_la" elayer)
$ w# A. h" U8 T% s; q )# M* G+ ~5 y# ~/ u, W( i5 E
(if (and ethickness 5 s+ g: P- B5 y, B8 k# R% w# v; s
(/= ethickness "")
/ |' T; C, a) [: o1 n7 Q (/= ethickness "Varies")
0 j; v1 u8 ]# W( c )7 @3 e/ F* w8 {3 l) s9 L' L* I6 ?
(command "_t" ethickness)
' P0 c0 B4 F N4 {& V )
+ t0 D$ c( y9 H) ` (if (and eltscale (/= eltscale ""))2 T( d; M! ]9 B
(command "_lts" eltscale)$ P6 m& u' z' z8 ?* N" v
);if
# u ?8 y$ w) U1 _& I# J5 k, p (command "")( u& o" Z& P2 F
)! w; n9 b% \0 p: r% B! f
(princ "\nProperties unchanged") ; CHPROP didn't like our SS set
9 X3 G2 N+ q! T! ~, n/ v )9 h9 v3 y% [7 A3 P3 t# ~! v/ M6 @
, }" O1 d. c8 E2 |( s3 | );progn then OK was picked in the dialog.
2 f; @8 B; S" Y2 u4 T t# |1 n
( R$ n6 D' H# `7 U1 w ;; Fred GERBER - 25-AUG-94
5 ]' S5 D, H0 w" e4 W ;; Don't print the "Properties unchanged" message when the user cancels
' v r- u& t0 G ;; the dialog because he knows that already (otherwise he would have
t3 L/ p$ R: T, @2 ~7 J" L ;; hit the "OK" button). Display the message only if CHPROP fails for
; |% o# d, ^9 q+ y6 G Y ;; some reason, because it is not the expected behavior of the command.$ z7 u$ M* u/ r! |, U$ x& m3 E! ~
;;1 K* q8 o- g' T
;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged"), s2 G/ V1 @; B: e7 [. l
);if
' h! `/ N9 r2 M: n (princ); k# o7 ?( Z( |) ~, u! l, e
);defun call_chp2- R R6 o& x0 K2 i
;;
" S" D% K2 d' {9 Y2 P5 M ;; Function to set the Color text tile and swab to the current color value.
! {: m" f3 W5 z7 ?, y9 {# Q9 Q ;;
8 Q5 c9 @ h0 h! n: A (defun set_col_tile()4 e) G+ }2 }! W1 P+ |7 j1 Z
(cond
# o, j. j7 e5 A" `0 e; Q" P9 s ((= ecolor nil)0 O% L+ x, [! \3 U2 O
(set_tile "t_color" "Varies")
* T" a/ _( \3 e: |& U/ j (col_tile "show_image" 0 nil)
4 z4 n" V6 z& u; V" ?6 m ), w% p* B7 Z- u) [* A6 z
((= ecolor 0)
3 _) c. f9 Y; h+ H$ h (set_tile "t_color" "BYBLOCK")
. ^' K0 Y. o! [1 W0 O& J# f6 a (col_tile "show_image" 7 nil) ; show BYBLOCK as white
' p6 z+ J* a# n )7 @ f5 {. @8 [
((= ecolor 1)# e2 N9 s& C9 O5 l6 g6 `; C4 ]
(set_tile "t_color" "1 red")
7 `6 m1 h; X3 T$ `1 J9 ^, w (col_tile "show_image" 1 nil)
6 P C6 w* d0 { ), [% m% u9 l% Z5 K6 c5 N* `
((= ecolor 2)& H; Y" O7 {/ t8 f
(set_tile "t_color" "2 yellow")% U) A( k2 }$ I8 H, }: _) Y, ~% H, A
(col_tile "show_image" 2 nil)
* g7 R' R5 R- l )
0 U6 T1 t) E f, f: G! m ((= ecolor 3) {5 u) y$ u9 b5 Y, ` w
(set_tile "t_color" "3 green")
( n4 D8 ^& J$ ~' s- c. ?, | (col_tile "show_image" 3 nil)
: D X+ s: h) D( I3 w: \0 J& X )) _, u' f6 Z" y$ G8 e& F- R
((= ecolor 4)2 q$ g: w$ T. n' K9 p
(set_tile "t_color" "4 cyan")
6 {* H& V% a) `3 V ~& N! \ (col_tile "show_image" 4 nil)3 x' x \& }# Y X7 a; d
)
- Q( V- N9 \) o ((= ecolor 5)9 C' b& |) E4 O1 n
(set_tile "t_color" "5 blue")/ d& @. w! U- L( E! h
(col_tile "show_image" 5 nil)
; O& l$ j0 c$ i4 w) Y5 Z0 f. j )
. p! O& B) c D. G+ d) c0 w6 k ((= ecolor 6)4 L# a: D' h: p. \$ ?
(set_tile "t_color" "6 magenta")
& Y2 `+ D% W s! c- `0 T (col_tile "show_image" 6 nil); j c; M4 R V3 s
)8 e- \1 r' W0 _4 D- Z7 S
((= ecolor 7)+ K( X, F* B. a9 ~- ?, z2 N- P/ `
(set_tile "t_color" "7 white")6 n% [7 A" x5 ]9 D' z! y$ K) Y
(col_tile "show_image" 7 nil)
) B. h' r+ x% Z( ^ ); y, Q! Y6 _4 R9 f6 X
;; If the color is "BYLAYER", then set the tile to
- b& c7 g T( q' Y" [ ;; show it's set By layer, but also indicate the, l7 b2 w/ p" j( n! N
;; color of the layer - i.e. By layer (red)
/ l& Q8 c3 ], X5 a! M2 q ((= ecolor 256)
0 Y! L# Z" }) `5 `, ~ (set_tile "t_color" (bylayer_col))
; B9 L4 \+ |$ E (col_tile "show_image" cn nil)
3 N6 z( ?1 e3 P2 n ) |; ]- l% O$ G, b- p, Q7 f. M; ?
(T
6 I( F* j# C: B% M5 `& X9 H1 Q (set_tile "t_color" (itoa ecolor)): |, \8 C; G! U) F2 s+ f! V
(col_tile "show_image" ecolor nil)
; o6 G% x$ `( _ y! T4 Y9 [$ w4 B ); X2 ]8 e( Q6 s5 ?& q4 v
)
3 r+ D3 t$ G# H) Q0 d$ T )
' x3 \; W4 ?/ y ;;
1 ^" `$ R9 \: R x2 d ;; Function to put up the standard color dialogue.$ J0 Q/ I/ S. T4 T
;;2 M7 a$ Q! q ?& Q
(defun getcolor(/ col_def lay_clr temp_color)
! a) L) f9 W T8 U; Y" Q5 T ;; col_def is the default color used when rq_color is called. If ecolor
+ f* R8 y: ^+ H& R N, E" O; w ;; is nil (varies) then set it to 1, else use the value of ecolor.3 J; W5 @1 y& T* m! z) v$ b$ w
(if ecolor
8 b! b1 ?+ C6 D% H/ j- g (setq col_def ecolor)
9 n, |+ }. m/ ? (setq col_def 1). @) X1 y5 ?) c2 `+ @0 L- l2 ?
)9 h7 U# W& J9 H) v. k
1 {( X6 |! m+ o$ \1 F ;; If we're working with a single layer, get its color
, S0 [) u) I1 O8 l* |% x% y, G ;; for use in the color swatch if the user selects color BYLAYER./ @0 A+ L, `" }! |; U( D) E3 f4 u
(if (/= elayer ;|MSG0|;"Varies")
2 I+ e3 R# K3 r$ B (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
( h$ q+ Z/ ]) ^( Q3 d (setq lay_clr 0)# b! U7 S- C- q! \. D7 X
)) P9 p$ I2 S% i7 c- B2 o. Y& y
(if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
: t) w* u. {6 p! {$ n' ~ (progn( y& ^. _8 W5 I3 ^
(setq ecolor temp_color)
! A( w' ^) ~5 E& S6 {6 k) o (set_col_tile); v- T5 m2 |$ X) H0 ?5 k% P) S. Z
ecolor
~* a9 Q( n3 R6 j )5 N5 L+ C) B' _) K
ecolor+ p1 w3 x+ Q8 G8 z9 G2 e
)
/ z/ g$ j' M5 _2 F% d; d( b. [ )7 m5 d' j2 [/ Y# j
;;
' Y0 @* S. C2 A4 p! h: @' h ;; This function pops a dialogue box consisting of a list box, image tile,
) K7 o4 m' g; r0 D ;; and edit box to allow the user to select or type a linetype. It returns L6 ^- J6 M+ f9 c; V" M
;; the linetype selected.
# ?+ j1 d" w/ }9 ]* C3 b- _5 W9 J ;;) `4 I- w+ x( k" t; Q* C, S
(defun getltype (/ old-idx ltname)
6 P2 I! S8 h& I" M6 y3 j3 W& G$ o ;; Initialize a dialogue from dialogue file# B" ?# _( b' f+ [8 G& Y
(if (not (new_dialog "setltype" dcl_id)) (exit))' O; Z u) T2 g" b% C; H
(start_list "list_lt")* k z% X' { a5 l3 ]; `
(mapcar 'add_list ltnmlst) ; initialize list box! ^, y/ U' ]; [, e: G
(end_list)
" s$ X* {/ v8 { i, i (setq old-idx lt-idx)/ j% c. h& o R8 `* O/ Y1 y
;; Show initial ltype in image tile, list box, and edit box
" i' d3 X' Q3 w* Y4 Z( X% | (if (/= lt-idx nil)
) t" Q8 d1 b* b9 `# V: N) P+ |7 C (ltlist_act (itoa lt-idx))
$ w6 E" m" s$ D (progn$ D8 L- | f" R% w9 d
(set_tile "edit_lt" "")
, W, y/ O/ W% i; Q5 U9 s3 ^4 j% g* s (col_tile "show_image" 0 nil), g) p4 y/ i; ~5 b$ [
);progn else( Z' `9 C# ]$ U0 e5 i
);if: r/ s; T, C, v) v
(action_tile "list_lt" "(ltlist_act $value)")! D. h2 k. d7 l8 f
(action_tile "edit_lt" "(ltedit_act)")
: V' C% r: K3 I1 y# x (action_tile "accept" "(test-ok)")
8 P' f$ [" p- ~6 E (action_tile "cancel" "(reset-lt)")
p' R+ ~; c1 {8 Y$ P (if (= (start_dialog) 1) ; User pressed OK
$ B# S, c" s7 @. r (cond
7 c5 O% m. C! x ((or (= lt-idx nil), R5 L" @$ Z* L+ P
(= lt-idx (1- (length ltnmlst)))
- V. C+ e! j" i& f );or
! u% }4 V/ m- H; y8 f; r (set_tile "t_ltype" "Varies")
( _0 I F) U/ y# B7 I" U6 U ;|MSG0|;"Varies"; a2 S) H, F- Y- E
); Y& d0 f6 i$ u2 f) C3 V. }6 [- \
((= lt-idx 0)* j' T2 A5 ]; E9 r) z
(set_tile "t_ltype" (bylayer_lt))
9 w2 z7 z4 n2 Z4 E: U ;|MSG0|;"BYLAYER"9 ]& E+ \* d2 d1 q" ~0 D2 i) ]' Y' C
)
. Y3 n& F$ I6 @) p ((= lt-idx 1)
9 _8 l/ \" B0 W1 d3 m1 D* C* p (set_tile "t_ltype" "BYBLOCK")) Q0 n' @' R# n& D/ m! h4 j+ h
;|MSG0|;"BYBLOCK"/ ]- ^+ H( r) r* k
)' E) Z$ A* ^" u# Z! Z8 B
(T
! X, {$ V0 m5 B. T (set_tile "t_ltype" ltname)
, A& I. J% g: @" ^4 Q4 f ltname
$ H7 l5 {8 I; Y( M2 [ )) L/ @. w( a8 Y
);cond then# l1 B3 H( H1 v- G( ~
eltype7 h- J/ P, q" i
);if
. c9 n( M* s' \ P! p5 @ );defun
9 o# q# J( U F' I ;;! p: F& Z" N3 Z3 e) v, k' ]7 B
;; Edit box entries end up here
" m4 z/ @: X. h3 g0 W6 w ;;
1 S* {% _% l5 ]: { (defun ltedit_act ( / flag)
% l$ {6 e- m/ Y" z0 U ;; If linetype name,is valid, then clear error string,
3 s# S" _" }$ Z2 L8 ~+ N% l0 u ;; call ltlist_act function, and change focus to list box.
3 D0 G1 p2 Z' L- ?$ F, [( ` ;; Else print error message.
; {6 Q; A9 ]' a5 n! S3 {' n5 R# }' G8 M m
(setq ltvalue (xstrcase (get_tile "edit_lt")))
3 f5 ]8 _, h, o" r (if (or (= ltvalue ;|MSG0|;"BYLAYER")3 X9 h) i( y! f% K3 w; Z* {$ ]
(= ltvalue "BY LAYER")7 ^# U* ?; P7 d. e! b- _+ |! G _
)
8 M: g+ [' X! R0 G' K* ~ (setq ltvalue "BYLAYER")3 o* e& r# [ [
)% F. }0 W7 D8 k! P6 ^
(if (or (= ltvalue ;|MSG0|;"BYBLOCK"), n& `1 k( h( ~6 ^* a6 c
(= ltvalue "BY BLOCK")9 G" j. V7 d O6 \% `. w+ W
)- Z. L0 e8 [; h2 E
(setq ltvalue "BYBLOCK")+ I/ |5 h0 o7 f( T7 @0 A+ S
)
" o9 ^5 p2 k! Q( }0 l (if (setq lt-idx (getindex ltvalue ltnmlst))
/ i2 \" |$ T& n& u, R } (progn8 T! F- q: a7 z# `6 A0 o, w' N
(set_tile "error" ""): p" Y6 F2 u3 Z7 Z% U
(ltlist_act (itoa lt-idx)). n0 j" q8 \: V8 V
;(mode_tile "list_lt" 2)
: W! N7 s# A5 `3 H: @1 U. j );progn then
4 [# H" P- d$ B (progn
2 `. Y( }( B5 ~0 n (if (/= ltvalue "")8 f$ h( V+ j- W, \
(progn( Q, j! P& a" f0 w
(set_tile "error" "Invalid linetype.")
& A6 h! m! q8 o# k6 u2 n% u (setq flag T)
9 `7 L7 o, k! x# ]2 ~" t );progn# R4 o1 [! C8 H) f; r) _& i
)
6 D+ `3 l1 K* P. y f (setq lt-idx old-idx)
: V) _. y; I$ }5 E; Y );progn else
[2 Q* V2 F! \8 i) }$ Y4 a );if
9 u4 r/ H+ F5 o! Y; [ (if (and (not flag) ;added so a return will take you out of the dialog.# R7 Z0 E& y* \# z
(= $reason 1)& k9 }* i1 T% n' m9 Z- n2 j8 j
);and
$ u* X; U- q9 h. Y (done_dialog 1) & e% \! L. i/ G+ q+ r( m
);if
0 m. F. |$ r1 y) c );defun ltedit_act
+ H, g3 v* @' G ;;: _7 o+ M3 k' z* [3 V3 A# I# I
;; List selections end up here
* @3 k% Q; f% g ;;
+ X8 `3 A" r! m! t+ m* L/ c' K; m" i (defun ltlist_act (index / dashdata)2 q5 ~2 g% ^& D$ F' Q7 h
;; Update the list box, edit box, and color tile, [1 y+ B+ a3 v' F$ J2 \
(set_tile "error" "")
1 X/ ?; R. _" x8 y! Y) O' V* b (setq lt-idx (atoi index))+ F" p2 i2 Y0 r, [
(setq ltname (nth lt-idx ltnmlst))( b F1 [4 {) G& o2 K
(setq dashdata (nth lt-idx mdashlist))
; a: C6 n. D% i6 ~: ~$ O (col_tile "show_image" 0 dashdata)/ x6 E: N# z+ I; S
(set_tile "list_lt" (itoa lt-idx))
+ t! {: X7 l f( c5 H* j- D (set_tile "edit_lt" ltname)
9 E4 C* x- c4 J) z* Y )9 ?% m' g, p0 d% m3 j
;;
G8 e' T# Z n D5 u( O ;; Reset to original linetype when cancel it selected
; e$ e9 w/ s. k ;;
/ m$ p. B3 e1 U# Q( ?4 f( D8 z (defun reset-lt ()0 |1 T. ]6 i9 [. z, A6 e2 Y; L
(setq lt-idx old-idx)- {; n f( O8 d. L% K7 ^- F, N
(done_dialog 0)# X( k+ w. U, k* E- r0 B/ M
)
8 h/ e9 V1 I; r" ]# K ;;5 ]5 D2 b0 E! h; v, Y
;; This function pops a dialogue box consisting of a list box and edit box to8 q; K$ a7 y1 \
;; allow the user to select or type a layer name. It returns the layer name
/ P+ J0 f. ?" W% _& q% F1 [, O. L ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the1 I* w- \" e/ g6 r* `# o% o( s
;; drawing.
& S/ ]3 V1 ^# P% g- C9 x: v" _ ;;
$ S) H; H2 F" @6 e0 A (defun getlayer (/ old-idx layname on off frozth linetype colname)! T% j6 B7 \, u# H$ ~' y
;; Create layer list the first time the layer9 m; L1 s7 ]& _9 z
;; dialogue is called.# t/ i F z6 {8 p1 I" E, h* i6 Z9 u
(if (not lay-idx)( ~0 O- y5 Q( p9 J
(progn( Y' ~& }, L/ j1 W! R/ l
(makelaylists) ; layer list - laynmlst- A- N0 j0 V. i6 `+ i n
;rk
D, L8 ^* b; a, Y (setq lay-idx (getindex elayer laynmlst))
. l; p% y: B! P& F/ b );progn% x) b0 P$ A7 A. X3 h
);if* Z2 e! d; O- g3 s* `
3 {. E7 k$ R9 b! Y
;; Load a dialogue from dialogue file' q# _7 R+ b" O6 }; N
(if (not (new_dialog "setlayer" dcl_id)) (exit))
1 @2 R6 z6 g& j3 p4 ] (start_list "list_lay")4 R' A3 L/ m+ Y0 z7 F J
(mapcar 'add_list longlist) ; initialize list box, \, ]# z7 {3 `- S: C3 Y9 G
(end_list)
: H/ h. \) p* ^ ;; Display current layer, show initial layer name in edit
3 ^( s$ D! E. P' ~" v ;; box, and highlight list box.
/ e9 K9 o# D! L# ?+ @/ u! G, ]! S (setq old-idx lay-idx)
) R7 f2 G! f0 O (if (/= lay-idx nil) (laylist_act (itoa lay-idx))). z3 m+ ]0 i( s3 f8 }0 j; r
(set_tile "cur_layer" (getvar "clayer"))
6 ]6 ]5 R% ^3 B$ ?& | (action_tile "list_lay" "(laylist_act $value)")
9 g% ^0 [+ E2 j: a (action_tile "edit_lay" "(layedit_act)")
* A0 H$ \* [. T (action_tile "accept" "(test-ok)")
: I+ g) r1 K& c- L* C k. r1 k9 X (action_tile "cancel" "(reset-lay)")3 ?2 Q2 \6 E' I0 u! J
(if (= (start_dialog) 1) ; User pressed OK
7 L( G4 C1 O/ f) K8 W9 E4 j7 l! Z+ g (progn
, `" m2 F- F @, [4 |+ v, _- g (if (or (= lay-idx nil), W+ a; W6 d# X7 X! D2 b" T+ c0 k# v
(= lay-idx (1- (length laynmlst)))
8 c' O \9 _' g* \# W( J, v: B& [ );or, N7 I5 U$ B" w0 J
(progn+ j0 y) h# F% W( z4 r8 [/ j* |
(setq lay-idx nil)
) Q2 X- b, }8 J. w6 V9 E (setq layname ;|MSG0|;"VARIES")) |0 m% }0 y0 ]! c a( t. i
(set_tile "t_layer" "Varies")
& [# l$ c \$ M Q0 M (setq layname "")
6 \! G% y! ~! y. H* L );progn2 a5 K* `& W0 p% P) p4 v5 b+ ^
(set_tile "t_layer" layname)) m2 e5 ^/ ]2 Y. W4 S) o4 ?) l1 D
);if
8 R0 b: m6 u% Z) L ; If layer or ltype equals bylayer reset their tiles
8 ]0 E4 x. V% P' E" D (if (= lt-idx 0), y# x8 V) v) d/ B! y
(set_tile "t_ltype" (bylayer_lt))* p: h8 P: U( k% L0 J! B8 a
);if
0 M% \2 Y$ @% e7 r" J; s" H5 H (if (= ecolor 256)
* q f2 p! U# f) U- ` (progn
4 `# p' y9 A% C8 q3 J4 k9 R" y0 j (set_tile "t_color" (bylayer_col))
) [5 n+ w& M* S( ^3 R (col_tile "show_image" cn nil)
& l3 D8 k J T, m# i )
9 K+ L, n- L2 c! `" X$ I+ q );if+ S& p B5 f) B8 X( I6 {
layname0 ?( Q9 T2 ?3 K/ \# j Y \$ t
);progn
& {( i) c- H0 t* A% N elayer
# P3 K5 {: Y% J: r );if
" x0 P5 X" W' e0 x' r )0 U' L& [* P0 `4 l+ f0 n& `( r& T
;;
- G7 ~9 [6 g3 h3 f) A ;; Edit box selections end up here: h: u! j8 }4 C6 Q! N
;;
5 e8 Z5 k+ ] Q5 f (defun layedit_act()
: V0 D! T! t1 s. r3 C ;; Convert layer entry to upper case. If layer name is% v. [ q2 |3 s; W3 v
;; valid, clear error string, call (laylist_act) function,
! k1 F3 O Q/ x ;; and change focus to list box. Else print error message.5 ~5 }" N" w3 H
(setq layvalue (xstrcase (get_tile "edit_lay")))
7 j( U* g2 s' M8 c$ p4 s6 q" U (if (setq lay-idx (getindex layvalue laynmlst))
7 X% s0 U6 o ^$ u5 ~: x (progn
8 k' ]( i) X' a& a: J& C (set_tile "error" "")" X* {: v" V$ j7 R
(laylist_act (itoa lay-idx)). h' ]; ^8 T" P0 I
): H& W5 |: M+ h4 G# a, _$ h9 I
(progn1 n& H3 j2 o4 ?) v+ m3 S _8 h8 j
(set_tile "error" "Invalid layer name.")
7 |. H# E4 L* ~( d4 K (mode_tile "edit_lay" 2)
6 r2 A6 G R' m, F4 s; Z: F* _ (setq lay-idx old-idx)
; ^/ j4 }+ T' k) n2 G# V/ E )
8 d6 l4 ^ ]6 { );if3 G6 e4 H8 x( `6 A6 |0 {7 K0 Y
);defun
/ I; h/ h& Q! w* G1 w% V ;;
9 w. h9 M8 \- A' I ;; List entry selections end up here
4 L1 p3 C) e6 i4 H+ T8 X ;;
% ~1 J7 r) y& f+ w& u (defun laylist_act (index / layinfo color dashdata)
9 s5 P9 q9 {9 s3 }; n; O# c, w# | ;; Update the list box, edit box, and color tile) t: y7 r* M F( O5 [
(set_tile "error" "")
5 Y4 V2 d( y( c (setq lay-idx (atoi index))
9 H' x \" Q) |- [ (if (not (equal lay-idx (1- (length laynmlst))))5 J/ z9 @; y$ b( G
(progn
' l [( p/ K+ z- T! g (setq layname (nth lay-idx laynmlst))
( o; b/ B$ w9 [5 i1 C7 w (setq layinfo (tblsearch "layer" layname))
% l; @+ }0 Y1 q( B J; b8 m1 P9 J+ E (setq color (cdr (assoc 62 layinfo)))* u( R+ A) {2 M; B
(setq color (abs color))8 v$ T" y0 e+ A: ]/ ~4 m
(setq colname (colorname color))+ b8 T8 _# ~8 e1 m) k% }
(set_tile "list_lay" (itoa lay-idx))
+ ? S2 `* H* [6 @! a: h6 n: p# m (set_tile "edit_lay" layname)
5 \" F3 N* |& t% ?# ~ ;(mode_tile "list_lay" 2), M& E1 @0 J4 L* G2 E- o# c
);progn then
# z3 V6 U# i! K' | (set_tile "edit_lay" "")
C( X/ P" S; n );if , M4 h) }* k! U
);defun laylist_act' \0 ^5 w6 |: e1 N% w
;;- ^- ?3 u! k+ P! Q5 f) j) _( o
;; Reset to original layer when cancel is selected2 B2 h6 n4 \" b9 o, V
;;$ E. [. I9 n% O9 \1 |+ H' ]- U
(defun reset-lay ()
# X/ B, x$ {% {5 {+ g (setq lay-idx old-idx)
5 U! }1 _$ T5 v/ d x( d (done_dialog 0)* z6 e/ U6 [* u
)
, j* G( Z5 X: \2 S
0 R0 ^" L, o0 v4 g ;; Checks validity of linetype scale from edit box. It checks to( j: O$ K+ d2 o
;; see if the value equals "Varies". G+ b8 T* Y% o; D A& Y
/ o7 e5 g- \! w% X
(defun getscale (value / rval)" {6 R3 b+ c. J6 s4 k3 Z
(setq value (strcase value)
1 m% }9 M+ G+ ^: V j6 h/ [ rval (distof value)
* s% _4 _# }+ J0 F) C& R );setq8 c G9 q3 C- v. @3 D: h) E7 K, v
(if (or (= value ""); n$ p# h! m: d0 p# H
(> rval 0.0)- p! ^0 h+ U& h5 U4 ~
)- T+ n4 s# e) m; n8 K
(progn
& G' J3 S: W/ q# p/ n, w: m (set_tile "error" "")( J! e- q% p! A% N1 M4 W- D7 i
(if (= value "")* W% w" c: |) s" _- j
(progn
' z; C7 R6 Y1 l `6 P: ] (set_tile "eb_ltscale" "")
/ u7 S% O7 o, ~6 j, Q9 t3 Q (setq eltscale nil)& g' D$ t! b6 y2 `, G$ n# b6 |
);progn then3 s$ M; G2 g9 t# b. K: D$ y8 H
(progn& J: ^* r+ {1 r" v
(setq eltscale (distof value))+ W: u3 b/ J9 g9 K/ n
(set_tile "eb_ltscale" (ai_rtos eltscale))- z: o# \( W g
eltscale8 K2 f& J, a& o+ g4 S
);progn else- _3 V- i- j3 I' u7 b, w% h0 f
);if
1 z! E% G: d W5 y );progn+ z5 P& @4 p( ^) T
(progn2 t) B2 X/ q6 S( ^% V4 @+ J" b7 E0 l( C
(set_tile "error" "Invalid ltscale.")
. ^# s8 U( f0 I( \$ z nil% X. M4 Q7 Q4 R8 U
);progn else6 E9 o- j' V" F
);if
1 W6 n8 X6 i$ A. [3 ` );defun
, q0 k6 s$ J' W5 W' q ;;
- @) y8 y8 } c* s e5 ` ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
+ W5 E1 y0 E# Q ;; string can't be converted to a real, this routine checks if the first
! D) |: ]- U6 f. a+ x ;; character is "0". It also checks to see if the value equals "Varies".) T* B* T1 E; ], ]
;;! m( d% T7 e- Y& r6 O5 G
(defun getthickness (value)
3 R8 ], c/ L% P. c/ F- V7 N (setq value (strcase value))+ e" `! p% ^ m' c
(if (or (= value "")
9 C7 A/ y4 ?0 J/ ? (distof value)
v0 R* X0 c( ~4 H: C0 R );or' }- U3 @$ [ x& R
(progn; x( k/ d! ` Y
(set_tile "error" "")
. P9 ]8 f6 P9 ` (if (= value "")
p" |. E' ~/ T (progn4 [# v _! \" G; ~: d
(set_tile "eb_thickness" "")0 s K! m7 n( P% ]4 e( k0 n
(setq ethickness nil)
7 J; A( E- O1 n );progn! [. ]" k6 U% J: m
(progn9 J; D1 Q& @$ ~/ x
(setq ethickness (distof value))
3 [+ d- }! q, C (set_tile "eb_thickness" (ai_rtos ethickness))
$ v% z7 N# V! a }" s ethickness
1 g! [2 u1 F# j) l );progn
5 J7 c. a5 h/ O! x ~* w( ^7 q );if' V5 F) A4 N- |
);progn
/ J p( X/ C7 b4 q (progn7 t- L4 W& |- A
(set_tile "error" "Invalid thickness.")9 K5 _1 z0 U/ m, c" L; u
nil% E. Q: M: P% h; R( T) J
);progn
! P( O9 |* p5 p+ c8 X: _1 [5 } );if) p4 z' q x$ e0 C6 {4 Q
);defun 6 G; R$ P9 t3 S! a& O
;;
+ F, O2 ^: V6 i; _# F5 G5 _ ;; Checks validity of polyline elevation from edit box.
, a* G$ X& v9 X3 |2 s" j1 o" R: d ;;
) j6 V& b- e* T) Q (defun getelevation (value)
$ f! X% m4 P* U (setq value (strcase value))
# N( A$ m5 y) o (if (or (= value "")" p- A+ k/ T) K! z* M8 r" ]+ f
(distof value)
0 B5 b# ]5 _' C) k6 y )/ A- o4 j- z l1 X6 e& L
(progn; l/ _; u$ f' Z) I2 v7 o$ q/ r
(set_tile "error" "")! c- ^8 I( J& W; Z k
(if (= value "")8 f5 J* w& O. ?% h9 T! k
(progn
6 T4 G) t1 |4 C( ~7 n) _! ]9 L (set_tile "poly_elev" "")+ ?1 Y/ z! l9 \: f# E, G5 v
(setq eelevation nil)8 M4 G- V. C8 j9 ~' v8 k
);progn
) M4 y; t9 Q. y2 g; E8 _; x (progn
+ _) |( h* g. Y( q: T- J (setq eelevation (distof value))1 j8 _$ W' ~8 U: ~9 z: o% ^
(set_tile "poly_elev" (ai_rtos eelevation))0 i% j7 S* y. K
eelevation F6 M; D% [/ ~. p
);progn
+ B, `# J3 w0 ] k: U; o8 U );if
- C; x3 O9 i/ w0 `, ^% ? );progn8 X- T9 P; s2 {+ N# n& Z+ p1 Y
(progn. u! E! u0 V# g& f1 L# T4 d
(set_tile "error" "Invalid elevation.")+ S- G7 @* P. A2 ? b
nil
3 _- S _8 r5 M* ~- K+ D$ x; J );progn+ w6 @& N! e9 t# v
);if x! |4 N* M+ C% y: o
);defun9 d- U" L1 A2 r+ J$ ~8 M" y
;;7 `8 a6 @' \$ M
;; Checks validity of polyline width from edit box.4 i& |) z$ k4 O
;;' P: [' t1 _; a# k- U6 k- ?; T3 C
(defun getwidth (value / rval)
0 w! a+ a* K3 x5 m1 Y: E (setq value (strcase value)
) m$ ~1 G# z d0 i9 h/ c$ S8 Q rval (distof value)
: h4 j' @/ f' y0 q+ B( k ); Y9 X+ f. x: M5 }" A4 d
(if (or (= value "")- V) F3 ?0 g3 C
(>= rval 0.0)* r% ~; c( }# R. B1 A4 I
)
) j) w6 N6 d6 E- Z: u1 m (progn
* @ K, M! Z$ V9 [0 K: B (set_tile "error" "")8 a$ q8 |$ `8 s7 @* o& g
(if (= value "")* Y4 |# E, ]: q x
(progn
3 l7 P" I" i" k9 h8 | (set_tile "poly_wid" "")3 m& w" n) ^8 I A& @7 J
(setq ewidth nil)
) j( h: v! {9 M/ w6 {5 S );progn
* x, ?* v% ]1 @5 o. s& O% }! I+ U) C8 a (progn7 @& u0 D7 D8 X' X! O
(setq ewidth (distof value))7 R! r5 K K3 s# q! ?) E" y0 I
(set_tile "poly_wid" (ai_rtos ewidth))6 w8 b5 ?$ S6 X, Y3 j9 V
;width
! f( n& f) }: }5 ^' ], E) R$ Q );progn
# ^# R- P" A, s( n- A );if
% l8 e6 _, E; h& J );progn5 s. o7 U; l: l2 r& b8 j
(progn
( i; z+ p4 `. [) O, o( K (set_tile "error" "Invalid width."): V7 S6 ]6 u. i9 {7 i
;(setq ewidth nil)
' w$ {6 B/ z( z nil
+ T2 d" M, B' J1 O+ I$ D5 v );progn; Z5 t- v5 O! b* A4 ]( }
);if
4 n/ s4 k# M9 D" w );defun2 @! Q# s$ w/ j9 |: G% H
;;$ F) q. M! ~0 `
;; Checks validity of text height from edit box.
7 ] A3 n3 L1 U, g ;;
I0 B6 V* m, ?8 ]. w, X9 I (defun getheight (value / rval)
2 m# {" z; [. M$ U3 L6 |, o (setq value (strcase value)
2 B8 X' X* `" ]2 | rval (distof value)
2 _& H" t: u1 u/ r ). x U- X& d7 M6 N! H! {
(if (or (= value "")% G0 D' ? f% `; l g+ w" b; `
(> rval 0.0)
, {3 g" f% W$ F7 R( w- D( ] )* a$ y- }% q; k) y/ _! t( c4 C
(progn
, N' I0 u/ k+ Z( M (set_tile "error" "")) R+ B; W) D- z! S {
(if (= value "")' t2 K& j4 G( {9 ]3 ]
(progn+ R8 f4 ~5 ?7 A' ^/ r6 ]/ Y: \+ x
(set_tile "text_hgt" "")
, S& ~) ?# v# q (setq eheight nil)
* w+ |$ i$ y5 q$ z! A% P/ } );progn
7 J* Z1 \6 j- j$ h ] (progn
1 q7 T0 p4 b0 V (setq eheight (distof value))
# F5 D$ o" @3 w9 ^- ~$ C5 L3 f! k (set_tile "text_hgt" (ai_rtos eheight))1 i$ H0 z' W; ]! v! a; W
eheight
7 W. q5 g. r. o0 c. Y );progn% o, u1 |" d# y# E t
);if$ U/ y1 ]8 K" ]7 d2 \+ ~7 \
);progn9 d" a3 \4 R& q2 J& ~; [
(progn
9 Q( k, i. [, _3 _# f; g% ?- T/ y (set_tile "error" "Invalid height.")
7 |% V: T$ X/ r( i7 v* F/ U4 ` nil+ g( s) N# @+ L6 I( h6 d
);progn# A6 g/ n) I8 L- s" I) ^, D$ N" Q" Z
);if6 w. T6 p' W& G( Z
);defun
/ c) b& {$ l) Z4 v8 p) |9 f/ {
" [! V7 I( ?5 f3 B1 W (defun getstyle (value lst / rval)
, n( `% h2 h' U5 Y, S" K ;(setq value (strcase value))
! _/ M! h9 _: F( L9 j (set_tile "error" "")/ J! L/ Y- h, }$ d' G/ M, E$ K. d P9 H
(setq estyle (nth (atoi value) lst))
, U6 ^4 }, w. Y* [6 V1 g8 E6 ? (if (equal estyle "")
, r/ i5 G2 w) Z8 X8 f/ k: n3 b (setq estyle nil)* M( v2 |, i$ z2 C
);if1 R' M, P# F/ H2 B/ q: B
$ ]2 Q2 I$ @. `
);defun getstyle) N3 @7 V0 Y# G8 w0 o
1 T) O5 @, f; Z V
;;
: P: A0 E2 o7 R4 L' o/ [ ;; This function make a list called laynmlst which consists of all the layer
& J( @9 s/ S: {- s6 _8 |6 a ;; names in the drawing. It also creates a list called longlist which
, H4 E3 m1 H3 p; V* r( b( ] ;; consists of strings which contain the layer name, color, linetype, etc.! P" @, N: {- x* x" {
;; Longlist is later mapped into the layer listbox. Both are ordered the
6 o, H' e& z4 Z$ o" V0 E) R ;; same.! T+ S7 k2 j7 y
;;8 X/ F: m9 W- {; i$ S3 K
(defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
; `% i' {- g! F( n c9 P xdlist vpldata sortlist name templist bit-70
$ c( d3 J4 ~1 A4 { layer_number
2 O% z+ e, o0 X. a )
7 Y8 `9 r m3 \ (if (= (setq tilemode (getvar "tilemode")) 0)2 ^/ x. M t1 l8 H
(progn% R, V$ a5 v) o6 {
(setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
: j$ b$ m' C* o (cons 69 (getvar "CVPORT"))4 V. v, a2 d8 I5 X) y! g$ k1 n
)
& X8 A- H; ~, E" k8 ?/ ` )( w1 n d' h5 {& l# I4 w+ t9 Q
)
. t, T" L, U7 R4 R+ J# ^5 E/ h (setq cvpname (ssname ss 0))$ {' K) C( `- ~
(setq xdlist (assoc -3 (entget cvpname '("acad"))))
( m. L- H$ Y3 N (setq vpldata (cdadr xdlist))
' h! Q6 U5 _; i+ C )) K4 V; o [/ \
)
) g/ j7 C( `+ P3 p" @ (setq sortlist nil): ]/ U; B3 H" z6 Q0 _# {. w0 G
(setq templist (tblnext "LAYER" T))
3 ]- ?) E m# c' K7 ~ (setq layer_number 1)
* `9 V* d* l6 j (while templist
4 m% q* V, E. Y) k# Q. Q( A- x (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))) a6 \; x2 [2 I
(progn 6 }7 s9 v. L; I8 o- @
(setq name (cdr (assoc 2 templist)))
+ U- R H6 x9 y a (setq sortlist (cons name sortlist))
( k, m0 g% T% k q5 d ;; Not dead message...% ]- v8 u' G# B5 D5 |+ x
(setq layer_number (1+ layer_number))
: E7 d& }3 c* X$ i );progn
: j; m- }: e$ t2 s );if
8 z2 G- l# K. c0 V (setq templist (tblnext "LAYER"))6 L; t2 d, g) m+ X6 H9 p O" T
(if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))( i( X! C/ ~3 s! M: S0 |/ G
(set_tile "error" (strcat "Collecting..." (itoa layer_number)))6 @! i6 ]: z, U; Q% A) w
);if3 ?- v4 J' M9 ]$ Z# D
)- D7 i/ E. C A& H" Q6 u
(set_tile "error" "")
! b# G# y1 W% a2 _ (if (>= (getvar "maxsort") (length sortlist))
% V3 Y# s4 V$ G9 s1 H% M; z (progn
! c. d! L) e( F! O+ M+ l (if (> layer_number 50)' G5 n+ l$ X, i7 t- [
(set_tile "error" "Sorting...")
; S- W' v; i, [8 a& h ), V6 ]% q- {0 T0 m
(setq sortlist (acad_strlsort sortlist)): }/ Y' p, j2 l n; S$ M
)! w0 C4 ]8 D( g* `2 [
(setq sortlist (reverse sortlist))2 d* c7 ?; _) d& w! f1 \
)+ f7 t! O+ v5 w. i; i" L8 Z
(set_tile "error" "")( T, B! M) r4 v9 e2 z# E
(setq laynmlst sortlist) M- e/ l5 ?: u" G. ?7 r7 c c
;rk 3 @8 C' w' b6 |1 s9 N
(setq laynmlst (append laynmlst (list "")))
5 h8 I( Y" ]) x" m' B$ \4 g; d3 [7 u$ {. q' h& h' f4 v
(setq longlist nil) X. L" |5 Q# ^6 P& A1 J
(setq layname (car sortlist)); }. ]6 G! y+ _1 W$ \* u0 w( C
(setq layer_number 1). Y8 Q6 c8 V c2 \$ l: C
(while layname i A e& I2 a# M0 G. c8 H
(if (= (/ layer_number 50.0) 8 B, d0 m( ~2 o. X% Y9 p: a
(fix (/ layer_number 50.0))
' x ~4 r( E& i6 [9 Z0 ] )1 v' ]" B; W8 n- i
(set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
( x# D2 x1 Z4 d6 Y3 C );if/ w5 B' B! a- \$ U# v
(setq layer_number (1+ layer_number))( N1 D* w h6 F9 A0 O% [
(setq laylist (tblsearch "LAYER" layname))
& }' v* R& A1 ]! t+ Z& Z$ C- A% Y6 n (setq color (cdr (assoc 62 laylist)))
+ c# n: |1 p+ _3 k4 [4 ] (if (minusp color)' k$ K, m9 F# O T3 m2 H4 b! g. O
(setq onoff ".")
{. Q; `1 L9 X$ L (setq onoff "On")2 G, ]& p4 I& y _( Z" \
)" n/ E' u3 y+ M
(setq color (abs color))9 |+ `* E5 a9 {( k$ i1 s4 C5 Y5 I4 B
(setq colname (colorname color))
, p( D! a3 a! V* B! T: D) M (setq bit-70 (cdr (assoc 70 laylist)))
, W% M1 P2 g$ }7 B# M; J (if (= (logand bit-70 1) 1)
* M- j2 ]* q& {% c+ d( r2 f (setq frozth "F" fchk laylist)
. z5 r1 k9 d- Y* U( e Y$ X, E8 l (setq frozth ".")
& b) K ?. i9 ^, S )" P% q, t+ S: a# e( J& ?
(if (= (logand bit-70 2) 2)6 E- {6 F/ _9 D$ x1 z. P. a. f
(setq vpn "N")
' {, M5 R9 N, m1 _2 c5 t- @1 V1 b& | (setq vpn ".")1 \0 W! V. y: H# C4 J$ o9 P. [
)
" B0 g2 m; A3 g& Y/ _3 V* o5 C (if (= (logand bit-70 4) 4)+ z8 o3 q$ y- h9 H3 H; p
(setq lock "L")
( t) _7 r# D* w (setq lock ".")
4 ` z: i+ C; J )' g% Q, c7 `1 ~4 n: \. v5 Y& G
(setq linetype (cdr (assoc 6 laylist))), l$ g' i) z6 x. C" I7 h
(setq layname (substr layname 1 31))9 Q ^& ]& s% U5 s5 D2 P2 ]/ ^
(if (= tilemode 0)
. Z% _* m4 p1 _, i4 k v' j (progn
! A3 |+ Q% p( P9 ~' E' H! ]9 n. y (if (member (cons 1003 layname) vpldata)
! e/ b* L3 {. R R (setq vpf "C")
! [, Y# m$ r$ S4 s (setq vpf ".")
! K+ d: B/ \, Q6 ~9 F1 j4 s2 Y )% ]/ a3 o J5 u3 d2 s
)
' c1 b& U, r: o! ^6 k) q (setq vpf ".")
( i! v% _. Z+ f' |+ b )# ]0 ]* F% j' |2 G6 a
(setq ltabstr (strcat layname "\t"2 u3 |8 ~* u- z) o9 K: T) Z
onoff "\t"
5 v+ c0 r/ o/ f+ j$ J frozth "\t"
. K, c3 u* v# l4 L lock "\t"* c( M/ j0 [, u# N
vpf "\t"1 }& Q: M A \' i$ E
vpn "\t"+ p' K$ T* \# N3 I1 X5 e% D: Y
colname "\t"
6 D2 N1 R; ?! C linetype- W* s6 L2 B, |8 z0 ^2 j; Q$ c6 Z
)
# \7 u) Q3 i, k+ i2 J )
' l0 o m( v: _0 P2 O6 n- Q. C8 A (setq longlist (append longlist (list ltabstr)))
0 c7 v9 N) j5 p8 g$ S7 | (setq sortlist (cdr sortlist))
/ ]- m; f9 B& e' N/ M4 p (setq layname (car sortlist)); H: j! ~8 J, E# d3 D
);while1 i. i% O* {! k; Q# Q* A4 a2 S/ }& u6 [
(setq longlist (append longlist (list "")))2 b3 G# V+ l3 u2 ] E
(set_tile "error" "")! l3 L5 c* B. a+ S8 D
)2 O& p+ E) V5 T2 ^/ t
;;
! N, i* `; h$ z' G+ c. n1 T ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
! h; Q; \1 z; _& M$ O% e ;; linetype names read from the symbol table. Mdashlist is list consisting9 J J8 [( l5 r6 u5 b# R
;; of lists which define the linetype pattern - numbers that indicate dots,; x$ R9 F) N% J7 A0 @
;; dashes, and spaces taken from group code 49. The list corresponds to the2 [; m" j4 a% M
;; order of names in ltnmlst.2 n' J* R" P% m. U+ w- L
;;- Q2 _: S8 F0 |! }
(defun makeltlists (/ ltlist ltname)# f; p) p5 k) Q) Y7 V4 a" F Y, N
(setq mdashlist nil)
$ y, {" c0 f( B+ h0 i (setq ltlist (tblnext "LTYPE" T))
7 R( p( g1 n' r" S" ` (setq ltname (cdr (assoc 2 ltlist)))
0 ?7 V* {4 l5 ~/ } (setq ltnmlst (list ltname))
" s; r, s. B; W) o( l (while (setq ltlist (tblnext "LTYPE"))
0 i$ `9 A- F3 }1 X& d (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
% E& O* c2 k+ d, l5 B# r+ g- W (progn
) Z+ x$ C& e% I; f) i1 Z (setq ltname (cdr (assoc 2 ltlist)))4 T3 E2 r0 h" o& K) h3 u
(setq ltnmlst (append ltnmlst (list ltname)))
/ {0 G% i+ |5 }% ?, M, ]1 _8 i. I+ Q );progn
1 ^5 m% F* ]4 n7 r* q$ O' v! _' U/ @/ K- C3 n );if , y+ o ^4 Z5 S
);while- z b! F5 k# e* e, b
(setq ltnmlst (acad_strlsort ltnmlst))( Y7 `7 b$ i- Q# H! X! R8 o
(setq ltnmlst (append ltnmlst (list "")));add by rk ! ]1 P+ s5 Z% }! G
(foreach ltname ltnmlst
, S7 O" R% l/ `& ~ (setq ltlist (tblsearch "LTYPE" ltname))9 p! K P% l* [/ j" Z
(if (= ltname "CONTINUOUS")
% G- O- p: M& L9 d (setq mdashlist (append mdashlist (list "CONT")))" {6 C1 y0 ~: t
(setq mdashlist
% J* ]' x" d3 y (append mdashlist (list (add-mdash ltlist))). D& {1 P; q8 Y. X" Z3 L9 I- m' z
)* ] w% k) z0 |. D+ n% r. r
)
3 V. g# t; e5 h9 N" z0 s6 h )% t; S2 g/ [* H- \
(setq ltnmlst (cons "BYBLOCK" ltnmlst))
8 l) d; u3 \0 u! `) n- m" ? (setq mdashlist (cons nil mdashlist))
7 u, [3 C! r$ K x& _ (setq ltnmlst (cons "BYLAYER" ltnmlst))
2 V( _( r- B, `( a (setq mdashlist (cons nil mdashlist))
2 W6 v$ x" `- [& \/ f )
! _5 X9 D( \9 F# G ;;; Y& D* A6 ]1 U
;; Get all the group code 49 values for a linetype and put them in a list4 a3 I* S( l: `, B
;; (pen-up, pen-down info)
1 I' ^' P# j0 S( P8 F9 { ;;
! M/ ]( [6 U! H9 v( v# L3 b' H (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
# w/ P! z! l9 _" c (setq dashlist nil)
`2 m3 f6 O% G% e* b: j (while (setq assoclist (car ltlist1))
4 L) H5 ^4 ^8 z( a z (if (= (car assoclist) 49)# x# M# i! h- @. p8 I- P
(progn
6 {. s7 Q# E" e% M# [! w2 w (setq dashsize (cdr assoclist))
2 |6 P! f+ l1 @% h (setq dashlist (cons dashsize dashlist))
/ h: `% A8 a& i- M2 t3 G7 K- {( y )
m% C, K' B5 G6 A" E' _) a, j )% P O6 s$ {4 { F8 {
(setq ltlist1 (cdr ltlist1))
. M( P; Q; [. G )
4 x: r: }6 v5 Z5 G+ f% ? (setq dashlist (reverse dashlist))
% d* k. t3 n8 k% ]' F )( }$ t8 g& O1 a+ r2 w* @( {
;;3 p8 Y( x, l/ m1 P0 |
;; Color a tile, draw linetype, and draw a border around it$ L* I) f! `) f* z k/ [
;;; G5 N- F$ J- z
(defun col_tile (tile color patlist / x y)
9 p0 L9 w9 V/ [, Y; N (setq x (dimx_tile tile))
0 {( l5 m+ ?' x5 A (setq y (dimy_tile tile))
; J! u) n9 L' {3 H+ y- t (start_image tile)) y) A! I: b9 n8 J6 J
(fill_image 0 0 x y color)% o+ W( u+ w% G) V% K- }
(if (= color 7): u8 R e4 O- l7 ]* P$ Y1 z. a
(progn, b9 V1 \* c) q- a( I
(if patlist (drawpattern x (/ y 2) patlist 0))
" q$ E5 k# o8 h9 x# u6 z (tile_rect 0 0 x y 0)/ {1 v) C: m+ B8 J+ ^! M9 [' ]9 m
)& P* u. V4 V4 q O. y
(progn' Z/ {6 ^4 n. @. F# _3 `. S2 u l3 w
(if patlist (drawpattern x (/ y 2) patlist 7))
, r% d/ r$ ?. x( U$ q+ M$ U (tile_rect 0 0 x y 7)
$ O$ R5 c+ Y3 _3 T, \4 E ), i# l# U( Z' O+ O' D& U9 ~- t
)2 L' ?: R, X' [9 I- c
(end_image)6 [5 s' S- E. N% b$ R2 f
)# d, p0 |3 ^% T
;;
$ L1 q' p, {4 q3 J1 p9 b4 U ;; Draw a border around a tile
9 p: j. _0 T: F: u; D ;;
# S; _8 ?/ B+ K/ m- x- s+ U (defun tile_rect (x1 y1 x2 y2 color)
D. q N3 L8 x! b6 @0 q8 E- @ (setq x2 (- x2 1))
$ j A/ |4 B& [* o; a (setq y2 (- y2 1))$ O6 E* E: j6 ` A$ r% }4 |
(vector_image x1 y1 x2 y1 color)5 H: y: @/ u" S4 s- G# N5 Q- P
(vector_image x2 y1 x2 y2 color)
0 F3 N- S$ q8 O* t (vector_image x2 y2 x1 y2 color)2 L5 I0 Z: d2 G E* L e% a
(vector_image x1 y2 x1 y1 color)
3 X- u1 P# Z1 r, b- ~. O9 S )
4 z, q( ^- v% V0 U; | ;;" v* X" c; L# n8 u1 a5 m
;; Draw the linetype pattern in a tile. Boxlength is the length of the image4 S3 H7 w; Q3 n+ i8 [
;; tile, y2 is the midpoint of the height of the image tile, pattern is a* b) V& ~9 o0 N0 }. N4 e
;; list of numbers that define the linetype, and color is the color of the
$ e+ B6 v& Z/ J$ P- T+ I ;; tile.6 V% {( o' O4 Y
;;
. d$ M9 q5 g# O/ t E (defun drawpattern (boxlength y2 pattern color / x1 x2; W" I+ C; c: Z' \+ P1 P% _ J
patlist dash)( E$ w( d* }# G, L* `/ ?- p) \2 W
(setq x1 0 x2 0)
3 Y+ K, r1 V. V8 u& E: p (setq patlist pattern)+ w; [$ ~, O" ?# L2 X
(setq fx 30)
+ ]+ N8 ^% F: P9 j* \% P (if (= patlist "CONT")
) b& X/ W d( ]% | (progn
* {8 C1 }+ `- Q (setq dash boxlength)
* R& F3 p9 V% x (vi)
0 p" X4 h. w: K+ ~8 s (setq x1 boxlength)
1 q# y; F- B$ I9 h- F6 N+ T )7 @% s; G/ r9 H# B, W
(foreach dash patlist0 a5 i, ?8 N% r
(if (> (abs dash) 2.5)
3 T) D- v6 u4 v, a; X$ @- A! O (setq fx 2)
' X. u" Y8 g6 h )4 f, x: |4 O) q" M; l
)2 A/ b' ]+ r% B1 A9 B
)9 a1 S& q8 V* C5 s
(while (< x1 boxlength)0 R& u2 i0 l- l, G# U
(if (setq dash (car patlist))& f. p: Q/ u% D2 f
(progn
2 K; A0 v/ N" M; V& _# i (setq dash (fix (* fx dash)))7 e9 g1 q1 v5 I0 ^$ ^1 L
(cond
8 C$ s6 y" j! T& V) A5 s0 |* s ((= dash 0)/ G! X( S5 G/ Q; r7 X$ T
(setq dash 1)
5 `- c8 } w9 I (vi)
- D3 i0 i4 a/ c- H/ ?& t6 b2 T )
2 E5 K: I9 J2 y+ i' u ((> dash 0)
- y* r1 `5 b5 x. c3 a$ Z: | (vi)
# r& \1 z/ W. ?$ T+ F. F3 h )
! S9 ~' U; l) O) u$ k; q (T
; b& W8 @2 r- q8 ]0 I( B1 e- | (if (< (abs dash) 2) (setq dash 2))
# ]) W; u8 f6 u (setq x2 (+ x2 (abs dash)))+ i8 ~( d- m$ D
); k2 u( i' Z: R6 v2 H/ {
)
9 V' P3 i2 D3 R. t4 Z/ d4 O7 ~3 J (setq patlist (cdr patlist))4 W# J; k( j8 |
(setq x1 x2)
7 M' Q W3 X+ Y )9 S; L+ S5 N+ O T( h
(setq patlist pattern): k: ]) K. W9 x7 ^
)
" ^/ Z, N# k4 `5 r! Y |0 y )
; ~: p/ z4 l3 J* Z/ b) u6 U )
; k% O9 [' P, R: T* h( _9 j4 X ;;
* U. N- w6 _% o6 P+ M$ Z ;; Draw a dash or dot in image tile
1 M E6 l, O6 Y ;;
; i# k9 W! }$ b! V (defun vi ()' k) z/ z, t. g8 N. |; H0 n
(setq x2 (+ x2 dash))
) A" P, R3 [: J. x w8 ]" J+ ?7 l (vector_image x1 y2 x2 y2 color)+ U, B j" y3 k) f* D4 L6 y
)/ [- u. n2 M+ i J4 e: ~" k+ i
/ }* T t% _; d: g9 |$ ?
;; This function takes a selection and returns a list of the color,( F- ~; z/ G: r0 [, m
;; linetype, layer, linetype scale, and thickness properties that
. @' a" Y1 B7 J0 M& e; ]- u/ k ;; are common to every entities in the selection set - (color
0 x0 ?( y# j/ i6 c; E) w ;; linetype layer thickness). If all entities do not share the same+ [' w: _! N0 h G2 e" h6 r
;; property value it returns "Varies" in place of the property6 z `: x' _! f5 Z! O
;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)0 ~7 |, ?( O; u+ N; @. t! }' G
;; The last item in the return list is an integer flag for the
6 i) |" H! R5 Q1 g+ Q ;; homegenity of the selection-set object types.
) Z6 x7 t- ?9 B ;; 1 = All polylines
$ E7 u) Z8 X T6 I ;; 2 = All text or mtext or attdef, or a combination of the three
$ c+ s5 ? j; o8 z! i u, W ;; -1 = Any other mix of objects2 W' k: D, ^4 f- \
9 h& e3 r2 u4 B- N (defun getprops (selset / sslen elist color ltype layer ltscale thickness
, q. h: q' A% t8 i( p/ y Z- s6 I width elevation height go ctr 7 R" i1 d. C. R0 D
eflag
+ I% [+ N9 \ e6 {- J8 m etype temp 8 n$ \! I: K1 V# U6 V
txt_ss ;;;;rk 11:24 AM 1/30/97, g! }* M3 ?/ g8 X) a
tmp \# {6 y# y% P
poly_ss & l3 P4 ^* d: m3 }) l7 O" R. w1 [
style
* K' z$ G6 q: Z )
. @# z- U- R' T: M- Z0 k7 C9 Y' u) Y4 K, ~- n
/ t7 U; b; F" `* b) g (setq sslen (sslength selset)0 P5 M* A3 y+ g, G( ^
elist (entget (ssname selset 0))% J! G: {- i0 V" p: _% K2 N$ v. q
etype (strcase (cdr (assoc 0 elist)))( i9 e: _$ x0 {0 r. W
color (cdr (assoc 62 elist))% @. p& C* f; M9 o+ K
ltype (cdr (assoc 6 elist))
7 a. z! |& Y& z' ]3 d5 N1 N& x5 j layer (cdr (assoc 8 elist))" [2 G6 t* l4 e' A
thickness (cdr (assoc 39 elist))- R, [+ e+ v m( v+ R
ltscale (cdr (assoc 48 elist))
2 l# `3 _) P1 _" E, s; t7 T );setq* D: H6 h$ x( m& U; K8 e$ y* @) A
8 [1 e2 u+ ], o) O4 {6 t (if (not color) (setq color 256))
; k, |- m5 _/ w$ n (if (not ltype) (setq ltype "BYLAYER"))2 f/ n8 O0 ` \1 {2 w4 @: L6 b
(if (not thickness) (setq thickness 0))7 G4 b# f& ]/ X. g8 S0 b
(if (not ltscale) (setq ltscale 1)): n+ R: n/ Q1 J6 h5 r% ]
4 E* ~' ]& S+ |. ^ (if (not width) (setq width ""))
: H8 e: A- A9 Q# p (if (not elevation) (setq elevation ""))' b$ [2 _; z0 S( r7 C
(if (not height) (setq height ""))
. M$ Y% K! k, ^% n9 _( O
. P* r) Y; u9 G; L9 Y2 ] (setq go T + U, N X5 {: _
chk-col T
3 N6 s X0 r2 T+ g$ U4 P chk-lt T ' V% ^- `/ @2 Y5 r1 u. v+ v5 ?* V
chk-lay T - p+ p* I8 s4 r4 L4 j8 v, s
chk-lts T - U* O: z) Z: L* l$ [
chk-th T
) `/ Q0 ~- b) o$ F* G% G( e/ |5 S ctr 0, X m$ F S) J. l, `: e' w
);setq0 a& {* d2 i8 v! g
9 x% f @2 w8 h' B ;; Page through the selection set. When a property
7 k5 Z' N% I* P z9 o: ?) A: t8 x ;; does not match, stop checking for that property.+ |7 ^' ^0 W3 S5 S8 Z% h
;; When the selection set is not homogenous, stop checking.8 R: t: A$ J' ^
;; If all properties vary and the set is not a type 1& K1 [9 I6 Z. }
;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.
4 o F/ C: h( l/ X; d w8 L( M5 a0 @: S2 E) N) R# C# A( ?' g
;Lets set the eflag so we know if the selection set includes any 2 Z: r: B) A: o4 u5 ^
;combination of polylines, lwpolylines, text, mtext or attdefs.' u9 v1 j+ `8 Z+ t1 Y" j! d
, s7 k Y% b1 W! X ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
+ i$ s. e$ K' e+ i1 R (setq eflag 0)3 E2 h+ y3 q, Q3 a8 S: A
(if (setq poly_ss ; k! O6 L0 f( R8 Y
(ssget "P" (list '(0 . "*POLYLINE")
8 g; a# i0 ]1 E* T% g/ { '(-4 . "<AND")
, j# O8 J. y1 M8 F '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
7 o( ]7 Q, m, g: R '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")( R/ O# x( o. W+ ?
'(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")0 n2 J3 T* E3 s8 x: K& v
'(-4 . "AND>")
1 d2 ?% w! H, j. e9 X* Z0 b );list
( x6 Y) n$ Z+ h' g, @/ ^( f4 { );ssget get 2d polylines (legacy and lw)
' J- s5 R4 R: v# Q7 v/ o3 [ );setq( U# x) U5 d' m! L
(progn
$ J* w! [1 l( R8 X/ | (setq eflag (+ eflag 1))! h+ A* h: |0 v# t. P8 ^' V
q+ x' j6 k9 I+ M2 {. V" G6 [! `/ b (setq tmp (entget (ssname poly_ss 0)));setq
1 l2 v6 z% A$ c' h' ?' Z( K/ a. w# j( S: d* e) k' o
(if (equal "POLYLINE" (cdr (assoc 0 tmp)))
P+ _3 F8 ]6 R$ n (setq elevation (last (cdr (assoc 10 tmp)))). _8 s8 c) n [( M" U
(setq elevation (cdr (assoc 38 tmp)))/ Z+ `1 ?8 o1 v1 I6 f
);if
. ~ A( j- v! v (if (not elevation)4 S6 g/ |. k# O4 H( B
(setq elevation 0.0);setq( v: Z3 n- y# I. S1 }& g0 Q
);if5 q9 w6 x) `( d9 E& f
/ |! K \- n/ \ (setq tmp (ssget "P" 0 h' i5 D' y, ~ Z, b
(list I- K. O/ d/ P: k; a
'(-4 . "<OR")/ L7 e) o4 d# O2 E
'(-4 . "<AND")
6 R4 e& |/ }' A- D9 Q+ z '(0 . "LWPOLYLINE")
& \8 p5 s4 K! H8 M (cons 38 elevation)
/ \; u# ` a, s3 _& Y2 K, r '(-4 . "AND>")
1 P5 \; e7 [9 f" p '(-4 . "<AND")# [! \4 N* h5 s* A4 j, c1 `
'(0 . "POLYLINE")
: F2 k$ h% p! \1 j '(-4 . "*,*,=") ! J' b2 o: Q. [$ o8 \, Q
(cons 10 (list 1.0 1.0 elevation))
; T7 N1 \& ] V& g( k '(-4 . "AND>") + g( [ v! m r3 j' N
'(-4 . "OR>")
0 S; U0 Q/ p' M" [* X" U1 d );list! \" P" u4 l" t g, G
);ssget1 u7 O' j* a0 o" z: [
);setq% Y5 _! D/ a# g7 j( F( D0 T
: w& M) ]1 K6 T
(if (and tmp
& B8 m+ q# ^6 u" P# m$ z (equal (sslength tmp) (sslength poly_ss))
9 y& ]" J8 c+ u2 ~( c6 P) T9 ^0 ?6 N6 Y );and
$ `2 m3 x- [3 O9 \, | (setq elevation (ai_rtos elevation));setq& M5 r- g* a6 C% M
(setq elevation "")
2 _3 A( d5 G# U% a% u );if
1 s0 q9 O0 v5 F K) C/ B) R$ ~* P R+ @- U/ y
(setq width (pl_width_getter poly_ss));setq! a q8 \' p" L+ B2 z( ]
3 E4 B6 m+ F1 Z% m+ } );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE! ]6 O8 k8 m: m5 Z5 s
);if
0 w* Y7 u4 ^- l6 V0 [+ B (command "_.select" selset "")6 o. d9 W9 m. x7 w0 h* h& i& F
- n. `# ~2 }5 h: ? (if (setq txt_ss ! n5 f' }/ m) ~( U, U' U8 o& q& b Y% I% i
(ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") 7 W7 F# g6 }7 O$ [. \0 q
(0 . "ATTDEF") (-4 . "OR>"))0 d* S5 V v- Q$ U$ @
)
6 P5 M7 d5 u, I: j" a! s; X );setq! {* Q( Q- g9 u4 ]1 p4 K# U: r
(progn1 v9 _) x* X4 @+ P/ j
(setq eflag (+ eflag 2))2 g5 L$ W1 d3 X! S% y
(setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))& W2 e/ _! z6 }! i% l6 f
tmp (ssget "P" (list (cons 40 height)))
* x% b5 ~" z- s; w v, U );setq
9 g# ^! ^% q) s% d( r1 a (if (and tmp7 m' c7 i9 D; C! c
(equal (sslength txt_ss) (sslength tmp)) & L8 ~: @9 R' }9 K
);and
$ o- |: [) D/ \4 y (setq height (ai_rtos height));setq ;@rk need to translate from float # C! g. E, s4 y3 s
;to string and back again easily
& t2 p; I3 J$ ^$ O0 ~6 ` (setq height "");setq else the height varies # w9 H9 U! L( }+ Q1 t$ V9 j0 ~* _
);if
9 x9 I1 ^9 q5 e, R& S (command "_.select" txt_ss "") ; g9 \0 C4 W0 w8 S; K! c7 O
(setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
& ^7 R4 c0 H# E3 `9 B tmp (ssget "P" (list (cons 7 style))) ( u. m- U8 {5 |" T4 x' d7 K4 m
);setq
! Q! {1 J. q9 M9 {3 L$ u2 N (if (not (and tmp
& H' @! H0 q0 u( l1 D5 e (equal (sslength txt_ss) (sslength tmp)) 5 o* J- P: g' y% U) W1 J
);and
( c m# |$ f$ M& `0 T8 p );not# Y' X; L3 w8 T6 k9 y) S5 X
(setq style "");setq then the style varies 9 n* _2 t* M, d7 p4 b+ D
);if, P! C9 s v. D' N4 L4 t6 V4 k
);progn the text type objects are in the selection set
" E7 D' f0 l7 ]# K );if! H8 e' O# \& [' P, K) m
(command "_.select" selset "")" \. B/ u* |- K2 q5 m
8 k3 T6 p8 X& U- s$ j" J: I) N. w (while (and (> sslen ctr)
. _0 n3 Q E; r. f go( {5 |5 Q/ r8 T- V ]7 z" l; S
);and. Q$ S0 e0 j' W% w- d
(setq elist (entget (setq en (ssname selset ctr))))
+ h' ]- ?9 y2 {0 S9 E% L" G: R% a6 r W" ]! \, `+ A
(if chk-col (match-col))
, d: N- f0 l$ N Z: c (if chk-lt (match-lt))! z% [: P. ]5 T& G
(if chk-lay (match-lay))
% d( k, }# L8 p' M% u* F (if chk-lts (match-lts))( i8 @ v% y, H, q1 `; a+ U
(if chk-th (match-th)), t: [. {2 l3 s4 F$ [
4 L0 C/ ~6 z2 P; Q) p ;(if chk-etype (match-etype))
! D8 P7 t& O2 _! ^; U6 Z
& p( e0 E; U, y" R (setq ctr (1+ ctr))0 o& X( Z: Q1 V1 M6 Z+ t& n2 B
(if (and (not chk-col)3 Q) f8 Z. o! o3 P- Z q0 b! _
(not chk-lt)
* Y0 K2 N |, P, r (not chk-lay)
1 Y9 O& X9 Z" A/ D (not chk-lts)# V# V) ?$ _) f6 G; b
(not chk-th)
% D7 w( E) \' M2 D8 m R+ d ;(not chk-etype)+ F; W/ W; y( N* t8 @4 z9 P
);and4 m: S# Q9 a0 i% G
(setq go nil)
8 x: C6 j3 ?( a+ V, i; P2 a2 ~& X );if" f+ h7 @6 j! L* T% [0 K
);while7 S& s/ S- M! F. u; L
9 J8 b' k' @: \0 X) `+ e (list color ltype layer thickness ltscale+ k. j$ v. U( e" \. j* E
width elevation height eflag + t: A6 ?/ Z8 W+ Y, Y5 u
style poly_ss txt_ss2 R H3 H9 {; u) y* v3 k, V5 a% @, l( p
)4 f) J6 \$ W* ^2 J. {# f+ C
);defun getprops7 I) S* \0 @$ C
2 w2 i0 s' K/ n% P2 @3 F: y ; This is a speedy little routine to tell whether the polylines in 6 t5 V3 t7 i5 n- m; _4 P2 P
;the selection set argument are of varying width or a constant value.
8 N$ E0 v' Q5 Z4 x& R' | ;Looping through the vertex's has to be done for old polylines when - f& T- O' N6 x5 x& S3 g& G2 _
;the polyline header has width values of 0.0. Basically, in this case,
0 }- Z" Q* x% N* s T+ { ;information in the polyline entity header is abmiguous. Width values . b0 v/ d& p T" M F+ v2 R5 y! P* K
;of 0.0 in the header entity could mean the polyline has a constant 2 \' B& z+ M$ _2 V" c& p2 w
;width of 0.0 or it could mean that the polyline has vertex's of varying
/ i8 S' [0 D9 F8 m2 K6 J: Q ;width., E& e" Q% l2 L9 q5 f
;
4 N- p! l+ x+ ? ; It's all in wrist. Err a.., I mean it's all in the 'if'
/ `* }0 L' G7 \4 x- |' D9 o1 w ;;
; |. c! M t, P1 r3 x- { (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
: p9 Z) z9 P/ d' k/ R& T0 Z# y6 Z" c, S+ w' p# j1 B
(if ss u2 D n5 n5 K# F; c- [
(command "_.select" ss "")
* t" }& M- {! Z9 r );if
; [' D5 ~" w7 \8 f3 Z8 \9 W (setq width ""
- n9 l; f( c& J flag nil' N6 v3 A- ~5 P7 s+ m# Z& M
flag2 nil
: s0 I% I9 P1 z H3 X; i6 S* n3 l );setq$ z5 |8 }, u9 Y# M8 S) O
(if (not
" q6 k8 ]1 y" Y0 r) a" v (and ss
0 i2 L2 b! U3 K/ B2 \ (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
0 S0 U+ C* Z( \% x (setq na (ssname ss2 0)" Q7 Y; s H* Q g2 s
width (cdr (assoc 43 (entget na)))
6 J1 H" r+ I4 x) M );setq1 y: r% {7 @) a8 ~; @) a# L
(setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")) o$ T! l' J! ]+ t' e! L# g
(cons 43 width)& H8 u! p0 g; R$ R! G2 m
);list, k8 B1 V" z: A7 L
);ssget3 q# C/ S; c0 `
);setq
3 X5 t% L1 J. R! T3 E7 X$ b) t (setq flag T) ( {" l' J- K( z8 \+ U% p1 w& G/ z
(equal (sslength ss2) (sslength ss3))
2 L6 A1 ^! b' p2 M: l0 F );and
3 h4 N" G5 ~2 N* s );not5 m+ u4 M" b# R% G; s' n& _
(progn
# d# a- c9 l8 O8 X7 U (if flag! e2 ~1 F) y* S; \* J% A
(setq width nil)
& c& Z+ M) z4 V6 i$ v0 j' Q );if
$ R" P5 @, q- E& O );progn* S7 n' D6 H2 X1 \9 g* R: M
);if
7 @9 R) \! B' `. f3 h* k3 v4 [& h( M5 w
(if (not W5 b5 r* H% p( Z
(and ; s- d. [5 t' e6 i I' y3 w
ss+ ]/ N( ]. H, p. ^! {. }
(progn (command "_.select" ss "")
3 f, t x" d6 U8 p) u7 p (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
, Z7 g S" S Q3 e* Z5 z; A )
9 s0 o X& M" p3 s2 ] (setq na (ssname ss2 0)% J; r/ Y7 l" i. |, C
e1 (entget na)- G& K! x) E3 V8 e3 V: w
width_a (cdr (assoc 40 e1))( Q |- a/ P" \" M( C
width_b (cdr (assoc 41 e1))
* J) @: Z f. @ );setq
5 u$ j$ U/ F' X& }! P (equal width_a width_b)
. ~* c5 J# Y" I, K (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
! @5 K0 c' E$ U2 Z (cons 40 width_a)
. ~, i9 a$ \- u! w/ U- Y (cons 41 width_b)
a% U8 K- `$ [% G& { );list
* `9 p+ E( j4 u5 ~- O3 a );ssget
0 t1 P0 i1 p) o& ~) N" G8 Q );setq
4 f. Z* t+ K3 V! ^+ r; G (setq flag2 T)/ ~4 \, u3 X L2 [% H: ?
(equal (sslength ss2) (sslength ss3)): Q" e4 S5 g; L
);and - F8 [7 z8 R0 X
);not
7 Y$ c* L9 L8 G (progn
7 |% r6 g5 x' Z5 |$ @ (if flag2
: F/ s6 E, V/ l; e& ^# }3 W9 _ (setq width nil);setq5 g8 r9 ]+ Q! R$ k7 Y! R; X
);if5 n0 o, c2 z/ v% m) f' a' j, ~0 ?
);progn then
1 Z! g" ?: g# h2 f+ E* S$ A6 V (progn( z3 m0 `8 l; r- m+ x! B
(if (or (equal width "")
: q- z) N" \- g* p% k m9 e9 v (not flag)! k6 G1 B' {: d1 a2 K8 L
);or
0 v& W4 c: Z1 a5 r8 \& q0 Y (setq width width_a)
3 y v B; @1 q( U4 c (progn
+ h' b4 h6 X8 }+ Z (if (not (equal width width_a))
1 g9 ?8 p$ ^9 u0 _& F& Z. P (setq width "")* C, b3 F* P3 K2 G, T) |
);if / R% s5 l- o# K* N) M9 a( G' E
);progn1 [7 |. t& C3 _6 W% J3 w/ \
);if& X) g! A/ ~* g' S- M" x# h
);progn1 `$ h m! E9 ^: t0 j5 d
);if6 a3 a! ]: p, V+ g, R" M9 F
* v0 n0 @1 l) h/ V0 I/ h
0 I: N! d# W, W2 Q8 c
;now for the special handling for old polylines' D( ^8 b4 T' E/ m- g% b9 z
(if (and width . `" J5 c- W0 I, p. w( s7 n/ r
(equal width 0.0)
( ^- Z- B) j* u# C+ o* n5 }" C flag2
( {. ]7 K/ ` n );and & ~! X+ Q- h2 M. t
(progn7 q$ H6 K# X6 I6 m p
3 r3 y3 e% y( O, j: l& K, l9 c
(setq n 0);setq
$ v* a! H2 U5 q, m+ s (while (and (equal width 0.0)0 y, K9 z( N7 k1 c- J
(< n (sslength ss3))( C5 l `4 I0 ]2 E' h* D8 x
);and
8 \( j0 _1 I3 ~. A7 D/ t* X (setq flag nil
9 N* F8 }1 Z- S0 S( J6 G- Y na (ssname ss3 n)
* p+ D0 k. J( |6 t8 u na (entnext na)
* T( C& o y7 h+ I/ }0 X e1 (entget na)
7 b, F; i0 h' t6 l# ]( a );setq( Y* J/ ?2 r& [
(while (not flag)
& U4 @. J- n1 W2 U& c4 i% f (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
" }$ g1 K( n6 W* X# g (not (equal (cdr (assoc 40 e1)) 0.0))) y. k6 M2 z. A" R0 o
(not (equal (cdr (assoc 41 e1)) 0.0))
& Y( Z/ Q" b4 f j0 Q );or. ?3 c: H% S' }. z* X, _( o
(progn: y) G0 W& g0 f/ W1 e; G
(setq flag T);$ Q9 ^( ]( @# x9 ?- b) ?
(if (not (equal (cdr (assoc 0 e1)) "SEQEND"))2 @% Q3 w+ b3 i7 K" J
(setq width nil)
' ]" r6 o. k/ l );if6 x' f2 Q' s, v; @* Q! k
);progn then jump out of the loop
1 s5 l$ F+ E0 }: ]/ R (setq na (entnext na)
& J& B& Y; L& h e1 (entget na)6 \$ p6 |5 s' p$ Q d
);setq 8 n5 V- N5 R, @. E$ S5 d
);if ) t0 W3 f' M8 y8 w7 \# F7 |
);while% w3 w2 m1 i$ \* V
(setq n (+ n 1));setq ; H! L: J$ c1 E4 N j/ ?2 ?
);while # D4 |- ]6 [) a6 O* M9 w
8 J }+ g* X0 l9 c- s );progn then it's a legacy
4 Z7 R& i! N% U# x9 N );if ;legacy polylines that may have varying widths
1 j0 p5 ~3 i0 A3 R: X5 v2 b* L
, A, }, ?: j3 c6 s% W (if (not width)4 k6 {+ n- {- f" I; \9 E& q
(setq width "");setq3 O$ r' y& X9 G% X7 R+ `
);if) J- y& q' w* \& n8 V- }
(if (not (equal 'STR (type width)))! i/ _* A7 [. x$ u- L: m
(setq width (ai_rtos width));setq
" p& m# I# D$ \0 i: V* F& Z: f );if
5 f- {( Q: l0 C# Y6 \) I% ?& K8 T( l; t( v$ Q& P
width 2 Y; [3 c8 [- k3 G
);defun pl_width_getter
3 L4 ^ k/ L! o% w. ]# j% \4 [& w& G5 }; }' g
$ Q8 W, i f* Z+ F1 i (defun match-col (/ ncolor)) G4 F4 h, \* [
(setq ncolor (cdr (assoc 62 elist)))
5 M4 d, Q; N$ _0 a* t6 U (if (not ncolor) (setq ncolor 256))
6 m- {7 N" i4 T% d$ r5 S1 H (if (/= color ncolor). `: H) |' r; H3 {4 z
(progn0 h& d q: E z
(setq chk-col nil)
2 f o7 ~% k+ _5 w" a7 @ (setq color nil)/ I: F- G$ T7 U, J+ e
)" b$ v& H& w0 p1 C- @
)) ]" z4 ?, ^! A% Y \
)
! z+ c& A0 h% J, Q0 G% K1 \( L: o0 h
(defun match-lt (/ nltype)
6 b; r% `9 G; Y (setq nltype (cdr (assoc 6 elist)))0 `' ?8 \7 w0 Y8 m4 o3 `* K% s
(if (not nltype) (setq nltype "BYLAYER"))0 ~3 b0 Z$ F3 h/ l W
(if (/= ltype nltype)2 R# U+ [# S& E
(progn; u; F- s M; W' _- g. _
(setq chk-lt nil)
: v+ `9 H! C, q4 Q* ] (setq ltype ;|MSG0|;"Varies")
G4 |5 {2 u0 @& `# E4 _! S )1 Q# x# i4 y( }3 k
)
/ K- g- q3 x3 K3 E: x' R1 K )- q5 e; a( x6 R7 C8 {: Z; r
8 ]0 @; ? y. h" Z/ r$ h' K: E
(defun match-lay (/ nlayer)/ W; z/ Z% E% C# g# H; s# _
(setq nlayer (cdr (assoc 8 elist)))4 d% y7 U* U4 e2 o6 Q
(if (/= layer nlayer)
: u' B. W# W: U. M- ?/ ` (progn
/ A- ^4 v) z; ~) n9 Z' K (setq chk-lay nil)# D- e% g! D# [4 l$ M/ [
(setq layer ;|MSG0|;"Varies")
, ` J6 B# K% S, s4 K( t% A )$ O; o( M) x5 i! V2 w' n( F6 f
)6 Q- P8 w& N5 d# R' a0 Z- B7 s6 M# c
)
7 a* Y# o; t0 @5 K
. H' I% _" g, e/ l* J* W" ]. f9 A (defun match-th (/ nthickness)
; \/ i2 \: Q3 Y5 g- E+ E (setq nthickness (cdr (assoc 39 elist)))
; J' x( S6 K3 Z& f (if (not nthickness) (setq nthickness 0))+ d# X% P, S2 C# u/ a
(if (/= thickness nthickness)
( c- j9 Y$ y3 u& A; O5 e2 T (progn1 K# E! H7 X _7 _! z
(setq chk-th nil)3 J9 K/ D1 t% S) E" u( O
(setq thickness ;|MSG0|;"Varies")
. I" @9 i& \) R% T/ a0 ~ )/ |! P# d7 _2 y1 G- l8 J% B& ]! `9 C
)4 [( r1 D2 ^1 m3 A8 b2 C* f z
)
1 ? ]" @2 i! M7 b8 @+ r0 B0 H# |2 a# ]) j0 S) }
(defun match-lts (/ nltscale)
1 f6 c$ T# H8 d, k4 A Q: t4 B (setq nltscale (cdr (assoc 48 elist)))( M) t' Z* X* V/ H5 w
(if (not nltscale) (setq nltscale 1))# z# @% V0 g! [! | O% V( S
(if (/= ltscale nltscale)) K/ r% P; K# i0 ~
(progn
1 V% k# O6 P& d/ j. g- R1 S (setq chk-lts nil)6 j9 |# G9 t- s$ D4 p: J2 j4 I
(setq ltscale ;|MSG0|;"Varies")% H) U$ n) p7 s9 ]& w5 P8 A
)
7 b+ G# T7 Q3 _! F* E3 x )
0 `' l- o/ N4 _# p5 L )4 y P& y) `6 M/ s6 |: o
8 A, t# `1 z2 a _" Z$ ] ;;
9 r" ^. k6 u: }, X t ;; If an item is a member of the list, then return its index number, else
7 l, b7 A5 {3 Y6 F8 @7 x2 X ;; return nil.0 e' ]: y% L0 ?3 @
;;
7 s' m$ l& A% P8 o (defun getindex (item itemlist / m n): x, }. ~* x9 [. V: i: i7 k0 T
(setq n (length itemlist))
9 f: M1 I1 o: V! c6 ]* r2 } (if (> (setq m (length (member item itemlist))) 0)
9 @% V# S% T. f (- n m): r1 I+ a6 }% `+ C6 l8 @1 Z
nil7 i' ?' h0 s+ V4 w. u' ]! f' h3 c
)
# p6 R' t. M& x! P3 f' S )
9 z8 }5 h" e+ `! u ;;) \% b- o8 q2 _# H$ \ `# l% C
;; This function is called if the linetype is set "BYLAYER". It finds the x* Z% |( i- ^6 Z$ E+ v
;; ltype of the layer so it can be displayed beside the linetype button.
e: Y+ l3 n( \0 g5 [ ;;
% k' @4 Q1 v8 S5 a: V8 j (defun bylayer_lt (/ layname layinfo ltype)
! @9 a. J9 @, } V (if lay-idx" V, _6 Z, S9 ^0 I* ~
(progn! w" a! M* [5 [& O2 {$ A% M
(setq layname (nth lay-idx laynmlst))9 @% }# d) h+ |6 U) x D
(setq layinfo (tblsearch "layer" layname))
( u. m, b& M4 [% t (setq ltype (cdr (assoc 6 layinfo)))/ K+ ^! ^2 z6 B" |( I
(strcat "BYLAYER" " (" ltype ")")
8 S! X% G1 b9 f d )
+ @% L* C. @9 f "BYLAYER"
$ O7 T, w) m# s% g9 |% ` )
6 D b& |. i1 _9 H+ q6 @3 J" @ )
' @( w9 M7 C: h' H2 v ;;
/ y$ |: A4 Y k, A# w ;; This function is called if the color is set "BYLAYER". It finds the
' _+ Z( f$ t9 e" s+ v. W' D ;; color of the layer so it can be displayed beside the color button.
4 R- v1 _% D0 Q, W2 i ;;5 k! Q* i% o; e; N
(defun bylayer_col (/ layname layinfo color)* F& S) `* d1 Y9 b) f1 @, u7 D1 u
(if lay-idx% {, s" c" i- t$ ]" `
(progn _$ { r. J; }! n2 G3 S6 ^
(setq layname (nth lay-idx laynmlst))$ D# `9 U9 Q p1 Z5 T1 K
(setq layinfo (tblsearch "layer" layname)). l# l: R" q1 F
(setq color (abs (cdr (assoc 62 layinfo))))
, \; s @" n; Q5 } (setq cn color)
. c( a& U4 R7 P( R1 H Y+ ` E (strcat "BYLAYER" " (" (colorname color) ")")
2 B- E" G' ^3 G8 d )
% ~/ k5 R0 L; |( A (progn6 Z& P8 a" g" `; s5 o& J% o
(setq layname elayer)* I3 P3 t3 y6 R# u
(if (and (/= elayer "")5 G1 ^+ J( j7 i& T$ @% g9 J, u
(/= elayer "Varies")
3 f; A8 _5 C3 r0 x );and, U' I X8 a% k. z9 ]1 p: Y" i
(progn% k9 ^# l" @8 J: _. s* e: I+ o
(setq layinfo (tblsearch "layer" elayer))0 k& k B1 C/ T, b* c
(setq color (abs (cdr (assoc 62 layinfo))))# a# V* K3 P/ u7 r @8 ^
(setq cn color)
9 D. X5 y- c; m# u7 } (strcat "BYLAYER" " (" (colorname color) ")"); L! o- D; _2 h0 _0 Z
), O4 X/ a6 @" G3 ?
(progn
6 B2 e2 m' j' ~5 Z8 q2 l (setq cn 0)5 h& j0 g3 f/ ^ B+ {+ Z
"BYLAYER"& V- H0 f% |1 m9 m2 ]- p, |% {6 Q
)6 a4 _6 N" g2 H: o: j
);if
) T' l# D# a( J# U! p );progn- ^" T2 u7 o+ d+ I4 `
);if
- T: e: N. p( U4 c7 y% z ), }( N& i+ r9 J+ @- ^
;;0 X3 E3 m/ Y) Q7 u+ }" l' N, M1 F
;; If there is no error message, then close the dialogue
; P6 F) F2 }8 P6 ` N0 s ;;
: r1 [" K6 g0 O; \) b6 p& { ;; If there is an error message, then set focus to the tile
0 R: c( d1 _# F/ M: T* I ;; that's associated with the error message.
0 Q9 i! M3 Z! G, V ;;
1 k. U- X l- Q (defun test-ok ( / errtile)
6 m8 Q* V4 F1 {9 v* y1 f% w, f (setq errtile (get_tile "error"))3 w5 Y1 s+ g1 ], X- u% h* N0 J- C
(cond
/ U; z* c- ^# G( ]& ^2 Q ( (= errtile "")
! d/ Y0 v* c$ H# f3 g2 r% h5 Z. C (done_dialog 1))
2 h3 ^: f! _. k0 V( } l" g ( (= errtile "Invalid thickness.")( z1 q7 }, O* I/ X
(mode_tile "eb_thickness" 2))
$ H: C! S, C2 z. H/ s! e )
0 Q' {9 O+ L; R% s )
" g! i. w E3 Z- e ;;
) Y5 W8 Q7 w( b* I ;; OK in main dialogue.% {' `5 y; Y, o7 Q, n8 Y! S
;;: X8 A: Q$ V' Y4 u9 _7 X
(defun test-main-ok ( / flag)
, }; W8 \0 g: G7 ~+ |: w (setq flag T) : I% A( N; q& |; F2 c% [
(if (not (or (distof (get_tile "eb_thickness"))
9 @6 I5 L6 z5 r- X5 o8 |2 D. w (= "" (get_tile "eb_thickness"))
* i, u+ k3 |0 q5 S/ D8 G% z3 u );or
5 l5 q0 e5 f, N1 v: H );not
( B& p/ ?$ Z- Y8 ^4 h8 a (progn+ l, k7 x, M( S) j6 }( I/ u8 A1 k
(set_tile "error" "Invalid thickness."), y: ?0 E6 c6 |. C6 n6 V* i
(mode_tile "eb_thickness" 2), i6 F B( L9 x8 A% F7 V9 k" C, m
(setq flag nil);setq. ]; x# \+ H3 F: R
);progn
$ r1 J1 g, p* T7 r$ o- W );if* j3 ~. W8 g0 y1 ~4 Z
(if (and flag/ I) v7 C& K# a! f5 i% y0 z
(not (or (< 0 (distof (get_tile "eb_ltscale")))) c5 m- V( P, c3 b3 o2 J# L
(= "" (get_tile "eb_ltscale"))3 f1 a8 A; r7 P; v
);or 1 Z! H* f2 P l5 }# _/ D6 a& o
);not% S, y; z0 r. G. W6 z. r
);and s* N( A! L; {- Y0 @
(progn
0 I" h5 c$ l3 Z2 G1 L1 F0 ^2 b0 u (set_tile "error" "Invalid ltscale.")
1 `) x; P* m) w1 R+ Y; k (mode_tile "eb_ltscale" 2)
5 i- u" k+ o3 A4 \ (setq flag nil); 7 k2 F9 C" p( M% M9 i& B5 f! N
);progn then7 ? y6 g `+ J/ A) p2 @
);if, b+ s3 V# Q! Z. T
(if (and flag- H: x$ D! _" J/ w5 p4 q
; Don't test the tile's value unless it's enabled.
9 Z& Z* Y; J8 d ; We're not set up for the display-only value
0 `0 Z% u9 D5 c. A- a# J ; of "" here in the error handler.$ ?( F& p' \2 ~- z5 v& [
(= 2 (logand 2 eflag))) D3 M8 d8 v% `0 V+ q6 @
(not (or (< 0 (distof (get_tile "text_hgt")))
* N' P4 ^" e9 \" X (= "" (get_tile "text_hgt"))) i3 _3 w, Q x" [, D, G5 j6 I7 V9 O
);or
6 V s' e' c3 Q" b4 S) t/ X9 @9 R );not
' y9 u4 W$ y1 u' c );and; [2 M2 l8 [3 F
(progn
/ Y8 A1 @" \, l" d) F; Y" c w (set_tile "error" "Invalid height.")
# X- S* A; W4 r5 d) O7 l5 ^9 } (mode_tile "text_hgt" 2)* G r0 f$ E0 }5 S$ X4 c! q4 w) B
(setq flag nil);
; J! t* }9 @1 I& p );progn then1 F* K: v( F" u6 Z
);if
. G1 g: N! D5 b# x. D0 l7 x (if (and flag
, s; ~+ c' }; z) z# a (= 1 (logand 1 eflag))+ M6 n; _5 [" |0 Z7 g5 x
(not (or (<= 0 (distof (get_tile "poly_wid")))# Y. j+ B8 c, q7 @) }
(= "" (get_tile "poly_wid"))3 ~% J2 f7 ~# _; ~9 U
);or
0 I! N$ z u% p; f. D3 r );not
# t+ V- r; ~; v9 r" E( V );and
4 i2 Y9 ~- `) F2 k (progn' ]5 D$ w8 ^1 U- Q
(set_tile "error" "Invalid width.")* f W% \8 U& d# |( q1 o, l* F
(mode_tile "poly_wid" 2)+ w1 \" U! z2 C5 A5 m. C
(setq flag nil)0 E! T- P) N) \) G L
);progn then0 r9 M m4 D: _" b. v9 @* t
);if ( { A+ e# s$ L
(if (and flag6 \* j W3 h/ p4 A+ ^: @
(= 1 (logand 1 eflag))
- v- u+ p9 ~* `3 o+ o) D (not (or (distof (get_tile "poly_elev"))
0 [( ]2 W5 s1 a4 ~6 i2 T3 ? (= "" (get_tile "poly_elev"))7 v6 L1 u0 y& s5 n9 t$ |) G
);or
! }. D7 A4 R% h, u0 n) o );not# m$ {' G* ]. Y. `2 [
);and5 f. z- d5 R3 u" a) e$ L7 O
(progn$ a' }* y* O; r% S5 I
(set_tile "error" "Invalid elevation.")
# W9 j( n) Z- d (mode_tile "poly_elev" 2)
) S+ ^ S+ U( \* [! h (setq flag nil), e) e; R( J( B7 R) N {! ?/ w
);progn then$ m; _& R- i/ G
);if
, g5 O9 B, i6 [ (if flag 3 f! K8 B8 n1 f' }' X8 N8 y/ B5 @
(done_dialog 1)
, Y9 O9 W" r% s% E" b$ W. Z );if' Y: u( `' Q" N3 g" E8 z% I! J; p
);defun test-main-ok4 s0 N2 \* S$ Z5 e
9 J) W% A \9 D) {
;;5 o6 ^$ H7 J4 L* S, i0 ~
;; A color function used by getlayer.
d% B+ g' J: h$ _. v+ G+ G ;;
% R% ?) d; B; L (defun colorname (colnum)
. o) ^( m' ]# r- u! \+ U5 D7 M: ? (setq cn (abs colnum))! y2 \7 U4 s1 B+ K
(cond ((= cn 1) "red")
' Z) k7 i2 f1 n6 ] ((= cn 2) "yellow")
5 Y9 P, i& W, K6 T# I2 Q ((= cn 3) "green")1 u6 F5 V" B' g1 f* K
((= cn 4) "cyan")
, s; Z2 o4 l2 P0 W; d ((= cn 5) "blue")1 V2 W3 g* R, I6 u
((= cn 6) "magenta")
$ _% _; O8 ]' p2 V v; e ((= cn 7) "white")
! [7 N2 `$ V! ]- ]+ t$ Y$ T (T (itoa cn))
b9 s3 e4 c( L ) N9 g D1 p) K# J1 m
);defun
" C- t4 [% b& [2 S: Y) O# o' h
2 l" K$ K( @7 s9 g2 H% p;;; Construct layer and ltype lists and initialize all
+ q( O1 J/ u6 [ H+ j;;; program variables:) v, F" u4 N& Z6 k: n! _7 ?+ B
% g A6 q* x3 k' W; (makelaylists) ; layer list - laynmlst& y. P0 h0 v- B+ E y
) d* w( O5 Z/ A* P
2 g/ b$ L: W' h/ {* [1 l% _. j (makeltlists) ; linetype lists - ltnmlst, mdashlist0 u- R0 d ]# D9 ?# h; h; F5 B% _
: r2 |. l5 }! Z! c ;; Find the property values of the selection set.
& b% `4 [( U) Q+ L- L# n% ]2 c6 t ;; (getprops ss) returns a list of properties from
9 s9 ?' D, u: j ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
+ v; _5 Q6 W2 P. f6 [1 v3 z9 d8 p) B+ m L1 l4 S( S6 k
(setq proplist (getprops ss));@rk interesting things happen here: E( @$ `8 ~( g4 W- z& ^7 Z
9 m/ D5 }- h% I. `- }- a+ @1 R @
(setq
* a5 K1 o, ?: X ecolor (car proplist)
# ^$ g3 @3 _2 ~! @6 z, a9 U5 g! ^0 B+ k eltype (nth 1 proplist)
( g* A( g! {3 Q5 `' M7 b elayer (nth 2 proplist)
, {5 I* [ {* M- G& a1 [4 n ethickness (nth 3 proplist)
" P. g7 {2 t- Q! M- k# A) s L1 ]' ? eltscale (nth 4 proplist)& A, A# X3 b/ n2 n% c# {) Z
ewidth (nth 5 proplist): @, Z* `0 e* T/ @7 L& q) T5 e3 F: n3 b; y
eelevation (nth 6 proplist)
* \/ {, S' a1 S! P- I3 o+ A eheight (nth 7 proplist)& D% E6 | W' I
;etype (nth 8 proplist);commented out and replaced with the line below. RK.
0 e0 p' _0 v" F( P7 Y eflag (nth 8 proplist)' n& t7 `. X8 v/ J+ X5 W- @
estyle (nth 9 proplist)
3 ]( i2 r2 V8 z& A& I0 @% Q3 N poly_ss (nth 10 proplist)
" q: ^- G' Q' D8 V1 [ txt_ss (nth 11 proplist). z1 f2 J% m7 o# p) A& s+ T
);setq I' M% H7 o* u
8 ^; q$ U7 ?% @6 p. p; k ;; Find index of linetype, and layer lists
' p; S! ^, d0 K( q1 K3 c8 f" _ (cond
! o+ V; ^& b2 o' ?+ [ ((= eltype "Varies") (setq lt-idx nil))9 n! \# X" E/ Z, g) {3 J, k5 B* w3 f
((= eltype "BYLAYER")
- L$ H. f" A: f (setq lt-idx (getindex "BYLAYER" ltnmlst)))
# B/ _( b8 i& j8 i' E ((= eltype "BYBLOCK")- c' O* ?( l5 J# C) T) N. J0 G
(setq lt-idx (getindex "BYBLOCK" ltnmlst)))4 \0 T ^; x" t1 O0 m! Z1 \' u
(T (setq lt-idx (getindex eltype ltnmlst)))3 G) }" N1 r( Z
); g. Y y0 r3 x9 Q- m9 H+ P, T2 u
(if (= elayer "Varies")
% U& t& `( f, C5 S! A+ B; X (setq lay-idx nil)
o" R- E0 g: z$ ?' Q (setq lay-idx (getindex elayer laynmlst))0 y/ c! z- y" g" s) z, V
);if9 j& `3 c! w: d# f" E, Z p% v/ m/ x
(if (= ethickness "")2 T( F, s# a- @" n8 r) j3 v
(setq ethickness nil)7 K i$ L# h, a3 H
);if
0 E# i6 A: [: c! H (if (= eltscale "")
6 O; ]& g8 D; N \/ I (setq eltscale nil)
+ E7 J, L" @( E6 d. v+ B/ x% ]1 t );if" k2 q4 J4 R8 P
3 q5 r$ x H/ S7 m/ ~
);defun ddchprop2_init ; end (ddchprop2_init)8 F9 U% A5 D" U* G9 |$ G- h& @( I
1 |) F! L8 y. I' s3 Q1 W. ~0 p! p
;;; (ddchprop2_select)
- D: P8 v. T) m* g% k N. ?9 @( B;;;
+ O4 p/ b/ H, I. X5 S( d;;; Aquires selection set for DDCHPROP2, in one of three ways:' |6 |+ E0 u' {/ @# u0 M
;;;) {" L* e% [1 t' ^7 k- ?3 r9 y
;;; 1 - Autoselected.& Z- t0 h' \2 Y- L
;;; 2 - Prompted for.* T# \) c& g4 A$ `# U' A
;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
. ^- t, F/ F% A6 }5 d;;;% q3 o/ _# c5 { o0 X
;;; The (ddchprop2_select) function also sets the value of the6 m, b) q6 W0 _( n( w- W) V; n
;;; global symbol AI_SELTYPE to one of the above three values to
; ?3 ~3 D' ^# H7 L2 D7 _;;; indicate the method thru which the entity was aquired. o3 ]3 F. W" ^1 p4 w
8 a$ O9 P% Y( B9 B
5 n, X P- _9 |, y2 ~+ k(defun ddchprop2_select ( / )# u5 W8 m6 ]. i7 J+ x
* W+ ?5 R& W/ ^( @* N. B
?) L2 I7 ]" R4 |6 K7 F
;returns only entities in ss that are in the current space. + h6 h" O) m( H$ a; }3 |9 H1 \- p
(defun ss_in_current_space ( ss / a cur_space ss2)6 w4 c- m# s+ y- l y3 a
3 C4 R/ V, Y+ q0 E6 M) s Y5 p (if ss
9 b+ Y; S: d. b$ s. ] (progn
/ y* r9 G9 D# q2 ?1 l* i% O ^ (if (and (equal (getvar "tilemode") 0)- s6 N2 N8 q9 I5 E+ t4 J
(equal (getvar "cvport") 1)' M7 F# P; k/ k0 K, o5 g
);and
3 [' {% V. J z" O, Z1 b" R* b (setq cur_space 1);then paper space is where we are.
+ l% b) C* S H1 C } (setq cur_space 0);else model space." s/ K9 w% r; [: ^/ y
);if9 ~) r/ B' A, b3 H s' a
(command "_.select" ss "")8 Z3 z' Q" N6 I
(setq ss2 (ssget "p" (list (cons 67 cur_space))));setq& Y1 e; m% Y: Z$ `6 ?
(cond ;;;;;tell the user what's going on.
( B; m4 C3 C" @ ((not ss2) (princ "\nNo objects found in current space."))
. q- I5 f; o% u' ] ((not (equal (sslength ss) (sslength ss2)))# p" B! @; B' x. _8 }$ j
(princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2))) E* e* C2 q$ P& `1 ^3 ^
" object(s) were not in current space."' N" E6 n j0 e! b$ a1 i6 N
); v3 Y& [) _% ]0 n% j% F- Z
), l. o8 S6 i# Z# C+ Q' M
)
; H4 E; J' @, u) C3 h2 F% @' c: X );cond
" E7 T* F7 [! v0 {4 p7 b! E );progn then
. s! N8 v( N1 r9 B' M" @6 H' `! v );if ! R- k! ~6 I' f+ g# i7 R
ss2
1 T3 m3 a m( R# g);defun ss_in_current_space
9 m( E1 |3 W( I+ s0 s, h* Y+ k) N7 ]! q: Z) f
! K* H) W9 L, Q, L; \;;;begin the work of ddchprop2_select
: X, W2 N7 I) o3 k: `5 V5 V# U1 i# v2 E. L3 l' L# `( I
;; temporarily restore original highlight setting.
& i- @: Y3 [" F (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))8 Z1 R: |5 F5 g: { i: V! D
(cond
: W! A" v r6 L9 w9 O# R ((and ss
6 l+ F: p; x& E. e (eq (type ss) 'pickset)$ ?) o2 X! r3 i2 F! C/ f
) ; selection set passed to
! N' D! o4 y! c6 r1 w! |4 k (cond ; (ddchprop2) as argument
/ j6 G5 N! n% j" p0 u ((not (zerop (sslength ss))) ; If not empty, then
2 R, e0 V( `! \9 T4 c (setq ai_seltype 3) ; then return pickset.
9 h/ |9 n9 V; k (ai_return ss)
5 A2 \9 W9 G2 \9 ~/ [( _1 w" H( R% q$ d )
/ o2 |) L% \# O4 I: S );cond close; s6 Q. l: ^, [0 q8 {0 x7 c+ @
);cond #1
$ Q% R: i: H% v% P3 S! A. z; E ((setq ss (ai_aselect))) ; Use current selection9 ?+ J: y( q( ]# }6 j. Y+ s" c" L
; set or prompt for objects
% D3 c0 A" q# T6 d3 a' f+ W% b (T (princ "\nNothing selected.")
) \( B) V, {2 c1 X9 @1 z' @ (ai_return nil)) O8 _: S' k2 ^' o1 A# U
)
7 j' t( q' x( G) H );cond close
3 q7 L ^3 Y& [" s5 ?' y (b_restore_sysvars)# f" h/ R* Y' }2 M7 M
% D! P/ S; a* g0 O. b0 A: v- i9 I ;(if ss
5 J) J5 s' ?/ E" x7 ? ; (setq ss (ss_remove_locked ss))
; K' k! n+ P! u! Y% r! X ;);if% C; N8 ?# _; m1 X# p+ k- g, t
(if ss4 e; W2 M) M2 u
(setq ss (ss_in_current_space ss)) # o! d y% t; R3 H' e* A
);if" J* B9 d2 K+ r. @3 @; |) o! K& L" W
8 N' b3 o8 h2 C; @/ j% \( v- h; t
ss9 Z/ J9 w9 r8 G( N" G
);defun ddchprop2_select& F3 \0 k' H6 G# }/ J
! ~: M0 @6 q1 q/ N8 R& l% p6 l( E& _" e0 b2 t3 s
;;; Define command function.3 j" L _& `" d2 A) s% T
(defun C:CCH ()* T" p7 G/ f y7 q0 X% H
(ddchprop2 nil)# V7 z0 T) [) t$ c+ C
(princ)- W A2 W0 g# b! r8 z
);defun2 R2 Y) J! M. N2 k3 ~4 s
$ o0 y' ^- B9 p& ?# f k9 I
) h4 u b- Z9 N;;; Main program function - callable as a subroutine.
8 q) o6 |; R7 }. }; R$ Q! g;;;
& P8 A; e* w% r# W- m' Y;;; (ddchprop2 <pickset> )) F8 Z8 w$ f# s+ d" ?$ T& c
;;;1 b( D! n+ Z+ r) i8 v; Q9 L" l
;;; <pickset> is the selection set of objects to be changed.. ~& h+ W/ n+ P C7 x& e# k
;;;
; v5 z. ?! i; k6 p$ @3 M8 l; y;;; If <pickset> is nil, then the current selection set is
' X3 u: O9 E- H. X7 h* m# _ G) x;;; aquired, if one exists. Otherwise, the user is prompted
. U, F0 Y4 L" C5 m; g d& C# ?;;; to select the objects to be changed., K9 z- v6 I; }7 }1 H
;;; Z2 x4 f- q; \4 E' y* \9 l
;;; Before (ddchprop2) can be called as a subroutine, it must
$ l1 x7 m8 Y/ K. j3 G* f" P! v5 z8 k;;; be loaded first. It is up to the calling application to; M B' n; s; I. Z* ^" F& c
;;; first determine this, and load it if necessary.
& U8 I. D( D( B4 n. ^* i+ H5 @
* N c9 Z- X% @8 p2 i9 {6 P% M(defun ddchprop2 (ss /* f6 W2 P& _: h5 t8 S
' h# c" G: `- V. k8 j
a
: ?, R1 l& s/ Z' i add-mdash
7 G9 m: Y. P! J3 ?) x0 Y assoclist! X/ X0 t$ ?/ G8 C4 X
bit-70
& M' h w/ r0 r# y r* ]* \: n: [+ O boxlength
* r# o# w- m, p4 j1 B bylayer-lt
& y* ?; e& c% c: P bylayer_col
" k. t0 H. ]6 E$ k5 J bylayer_lt4 w# H, A/ f7 L" H% l$ q
call_chp2
4 q: Z: g* d3 L chk-col! l: H- F0 K( n& G
;chk-etype ;var removed by rk 5 g7 x0 Z6 I0 {
chk-lay * m1 s/ o4 | j3 U- _
chk-lt0 i4 v6 w& M4 o. @; I! z
chk-lts ;var added by rk , b( n0 e- B8 h" Q1 S9 y( k" E
chk-th# \% \, B# D) G$ `; U& ~1 l5 f! }( x
cmd7 z: m. Y; j, x O# I+ O
cmdecho3 |2 C: a8 P' ~' \3 a2 s8 \
cn1 k- [3 J$ z5 W
cnum
: F b% o& x2 z+ d col-idx
4 d! @) a9 m5 j J% T7 {0 k col_def/ ]% n5 q; L8 b' ?
col_tile
3 t+ t: }& N0 U; ~4 k5 F( s colname8 G7 @1 A" T- W
colnum
$ g3 y0 K3 f+ n1 ^# `! A$ l- ?, _) u color; B' [; M4 ^& _5 Y
colorname
. }' s: t( W3 }! F% P9 ~ cvpname
& T/ ^0 U$ ], R+ k/ h) A8 v$ B9 y dash7 U% N/ R- e0 L9 I- H& K( E
dashdata2 u/ Y0 ~0 ^9 A! z
dashlist" I; W4 v1 K `/ H# c5 H- U
dashsize
' v3 y! `' o: H' D dcl_id
) c% |: x1 Z& |$ p3 R0 ~ ddchprop-err
& L% Z0 R ?0 J, a drawpattern
2 A: w5 N5 v F# Y9 V q0 r+ C ecolor9 P! Z1 \0 v7 g2 ?
eelevation
9 i5 L+ i! j9 p. `' u: J( V eflag# F% [/ e9 Y8 ~8 Y2 q! U
eheight4 N# @- c" ~/ K1 B3 ]* M
elayer
8 y* C5 [# Q5 F/ O3 X elevation1 i5 Q. R+ D* N( E3 n) n
elist
$ V, S: e8 K4 K6 A3 J eltscale
/ U$ W C/ R: X; a' l eltype" P3 ?: i" A {4 E1 Y
en5 m! e. \ Y1 O9 a! u1 P2 f4 @$ C
ename
5 F3 |% |& K5 k7 `3 _: S! e ESTYLE ;var added by rk, _ Z4 q% h0 v6 j6 k/ C+ r
ethickness
9 L c2 h4 L; I* o0 p ;etype ;var removed by rk1 ?$ a8 k9 r9 ~) }: w$ H
ewidth
+ w/ J* v6 ]9 d: D fchk
5 L# c7 n5 o/ R5 v" g7 g frozth- s7 I+ R C8 M) t
fx
8 b/ w) o, G; ] getcolor
* S* c1 ?+ z# S/ i b GETELEVATION ;function added by rk# y* E2 }% m/ `4 C
GETHEIGHT ;function added by rk' B9 L+ Q- e. U3 j
getindex# D5 A6 s, R9 ~+ L
getlayer. Z, ?+ t" t, ?5 k! C0 @/ n
;get_locked_layers ;function added and then removed by rk
% l, j% x2 s2 d# E getltype3 k* p# L' O0 d+ G/ t! Z1 J& J
getprops8 q! F( ?* M( d% P
getscale ;function added by rk: u8 g% Z5 S% V8 y
GETSTYLE ;function added by rk
w( \' Z0 k, B# I getthickness
- [ U( Q! a0 O- e7 ^) K' E3 p GETWIDTH ;function added by rk" s, ?8 c8 R/ h7 c
globals% V4 p% j: |9 T6 s2 f0 [9 |- _
HAIR_STYLE_LIST ;var added by rk d# F7 U+ o! m$ I: t
height# v; h5 }. m; U' s
index
Q; h' P3 @8 K" s, a4 }8 v4 n item: {9 N8 f2 ^$ o( k
item1
" p2 ], |# k6 } item2; }5 d3 Y9 i- C0 ]1 E, |, b
itemlist
3 n) A! o7 ^2 n$ X0 T* N) F8 U J4 h" K lay-idx2 ^2 K. x, q; a ]
layedit_act$ g0 h( ^' Z+ i
layer
: o2 T4 Z" t" P& W M# } layinfo& H3 r) [1 j o9 K( e
laylist
1 G+ d, n2 X9 e; d" [ laylist_act
* a) l3 r1 Z, R0 A1 l4 N u layname9 Y9 m* |2 [/ z3 c2 Z E5 Q
laynmlst) \! @, q) y/ J7 F( O) q
layvalue: m: c- Z( a) u
linetype- T b, @- }: S7 \2 S1 \4 F
list1
; r" N: h% z# i* u/ J longlist
" O& k3 C! Y% |; _" V1 h lt-idx6 u% [2 E) z4 z) H1 M
ltabstr1 \. m. Y0 e; t9 N. b- H
ltedit_act& u9 i. |) ?1 G5 p* O2 w* I
ltidx
7 r+ |" C# `* U: G3 a# D" C A% d ltlist
( o% s u' u5 w9 w ltlist1
% h3 W/ x7 W& X ltlist_act
: |% N$ P- M- r$ w' C1 l) Z; p3 O ltname
" Z) I% S) b V1 ]; C ltnmlst) B6 G( z6 o7 U4 R) `$ P0 ^. B. |4 i
ltvalue
8 Q. U# x( u$ \, \9 d8 V& @/ Q* b ltype: s+ @& |$ {+ |' O
m5 K5 g! s4 b) y
makelaylists
5 F0 Q& F4 \. l) L2 e8 z/ a makeltlists8 R; n! r2 h* ^/ F
match-col
0 o+ h n+ u5 M4 i ;match-etype ;function removed by rk
$ J4 }' c' g! r' y8 \2 a; m4 _* Z match-in' v; M4 {$ v1 G8 W% S" d- u7 W" n$ i+ B1 p
match-lay1 b* B5 E5 i- d" s
match-lt
4 _5 X) `5 P' X# ]* C* p9 P match-lts
j- A; w3 d9 C) U3 q! s" ? match-th- A, d" O" X! B' O
match_col
" K+ b8 s t8 @! s4 m' _1 _& }2 v mdashlist( C# Q7 I. m, R* q7 e
;MPOPLST ;function added and then move to ac_bonus.lsp by rk' l2 ?, u: F& `! t# x: N
n
/ z0 B% R: ^+ x& ^ name& H: e! N4 `6 [4 W
ncolor$ q; S: P k# f9 c. o; Q
nlayer
) @4 C6 ~/ M8 r+ t6 u$ z9 t nltype' Q9 F. k2 ~% C( w# ?! x9 g( A- O
nthickness, f' n( ?* K& E$ x" `. l2 k- }0 B
off/ x* m' j$ B3 w- M7 z" M: r; x9 R$ N
old-idx" n; g6 d; z7 K$ `9 o2 s2 q' k
olderr
& Z1 h6 I |+ R" H on( J/ e4 N$ F# q7 H. g9 ~0 S. _
onoff
. F: O3 p& }+ a; Z. C g3 b patlist
) ]5 j% Y5 b4 t pattern5 ~% O$ c" z6 s$ Y4 I
PL_WIDTH_GETTER ;function added by rk
" e; Z) P, i# G, P& F# P POLY_SS ;var added by rk/ Z5 W: G3 x" {; a+ ^
;POSITION ;function added by rk and then moved to ac_bonus.lsp, [) T2 ?5 `! R% j/ W& C
proplist9 q" V1 i1 C) |* }2 `, \
reset-lay0 D, [' R7 @$ W9 T
reset-lt4 r% |4 B9 } H/ r4 J/ M
s
5 N. _- d0 _6 ^9 Z, P( Q selset
$ A2 c2 |# z1 p3 I! V set_col_tile
f1 { y1 Y! E- i9 O6 |& p! A& K3 Z sortlist1 _ I1 H3 P9 U6 h2 n! I$ z+ d( x+ z' d
ss
! s! K7 E7 l' {+ S' x3 [$ b& b ss_in_current_space ;function add by rk.
8 G, y0 f' }6 A j3 Z ss-index
% f/ n3 Z2 {/ w4 b9 N ss-length- @9 |2 l6 s) n4 @0 p6 \& M$ k
;ss_remove_locked ;function added and then removed by rk.
( A j9 E: y+ Y* ?: O3 ?* ` sslen
* A) ~0 L; [! n/ i" A9 g7 X temp_color
0 [+ I9 a7 \+ ]) Z templist" y+ D+ U7 V0 @, O
test-main-ok
- P- k( ~6 w# X1 R( R/ s test-ok: \) Z. Z' ?( l3 B; s! p1 U
testidx
+ h7 s! r8 L0 }1 L3 m testlay- U: _9 x3 Q, b' C4 M" }
th-value! t3 f+ Z: R& |$ m
thickness
# U3 l( J Q$ a: b( b tile$ C. H$ K8 l3 Z% i4 K
tile_rect' `1 K( X1 c# ~$ Z! |
tilemode
5 P$ X( ?" u+ [# K7 a ;TNLIST ;function removed and moved to ac_bonus.lsp by rk# Y& H5 w) s+ E1 G
TXT_SS ;var added by rk9 b: Z! s9 B1 o) v7 ~1 l0 p/ w
;undo_init ;removed by rk.8 \4 z5 s* a4 M- u
vi! S( |& q; p4 X7 v: j
vpf# h) e+ C+ R+ r" {
vpldata
) K n5 \. V* e6 W5 i vpn6 e: z- x% q7 ` b; j, y" A& i
which_tiles
/ I& r5 d' |# |5 u( a3 L! r+ [* k b width! g( ^8 Y" N8 y2 q
x
, h6 q; W$ o! J. m: C x1, P( i' c( f1 m# [( G/ d9 [
x2! i# h+ n( w; @( u6 o. b1 _
xdlist
1 M. {, r( V p y5 r, ] C( a. ]2 a3 A# X# c
y1
* S$ d2 j5 L5 V: s/ \) R y2& h! H3 z5 ^4 w2 M
)
0 _: H! S4 g' m5 T: t. p' ]) u* N' Z1 {5 @' v$ R
(if (and (not init_bonus_error)
$ [9 R9 n. j# ~, ^( z (equal -1 (load "ac_bonus.lsp" -1)) , Q# c; q: m/ m1 q4 I
);and1 Y: V: Z/ U3 S' j! i( ~" T0 H2 h* ?# G' d
(progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
1 }: h/ f4 [8 ^: N8 a4 [ );if/ u6 z: {1 [2 S4 Y8 v2 i: h8 D
(init_bonus_error (list
5 k- P+ T: u# S6 S (list "cmdecho" 0 3 A' p7 i. K& `
"highlight" 0
. Z" Z7 L- s2 b& S+ X* Z "regenmode" 1. Y8 H! l3 L6 y1 S; ?9 M, T' k |
"ucsicon" 0
5 H' [5 Z/ ?2 E1 Z+ }' C* h' g )
) o# M- s* P4 |$ r! k; A" g7 f. X T ;flag. True means use undo for error clean up. 3 {; S4 G" k: ^/ |
);list
; \2 E' o% c( R" ^* n );init_bonus_error
9 f/ F& Q: p! \* B# G$ q8 X# l& Q" B9 _: r5 w) P! U) |
(cond$ X+ I# C( j. E$ e+ V2 i
( (not (ai_notrans))) ; Not transparent?! {! r# g" O/ T- j
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
0 [/ t, H. f' ?" F ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?3 N+ T3 }$ ^& n4 g
( (not (setq ss (ddchprop2_select)))) ; objects to modify?
6 e* F& X# z% Q0 D! l! s3 I6 R* N (t / r$ U2 K7 e5 R6 T0 p# P: u
;(ai_undo_push)
- s7 X. i4 @+ E5 Q" O! ] (ddchprop2_init) ; Everything's cool,* Y3 K( Y- W; T' @" w3 l
(call_chp2) ; so proceed!
0 \8 \1 U H/ _8 I( P$ y& k; G: ~ ;(ai_undo_pop)8 j \, c. [' W2 [+ Z
)% O- m1 T. w. s+ H, C
);cond close' I5 l* k5 _4 O) R: v
2 i/ z* z0 O" j- p# x( ] (restore_old_error)
% K4 D2 W2 s- m) ?+ V6 X( E- x6 {: Q7 `0 ~
(princ)
1 J) P1 G( O9 W) T);defun ddchprop2
) h$ g! u( A: E' w5 M. o+ Y; o. z" z2 Q. K5 I. p" d' F: e
;;;----------------------------------------------------------------------------
" s' l# M4 u4 G4 M# s) K
: O" a1 Y7 W9 j; h! B7 S(princ " EXCHPROP loaded.")' @( v, g2 C. T9 N; n0 ~4 B
(princ)
x( L" z4 h6 u% y; a% h' u* A
/ S. E' `% @1 |4 s;;;----------------------------------------------------------------------------4 x$ ~* ?1 i" r" h% x
;;;---------------------------------DDCOLOR_LSP-------------------------------- v: n3 l/ b- X$ P5 U2 V# s$ {% F: w
;;;----------------------------------------------------------------------------
8 @0 I _& `/ \* M5 s: G f' O. I* U# P
; Next available MSG number is 24 8 @) d* T. ]5 [7 A2 w; P0 b
; MODULE_ID DDCOLOR_LSP_
/ p4 n) n% c( q# A. };;;
, T5 ?& i; d" N5 m& _;;; ddcolor.lsp* G5 e. O0 B/ c" t
;;;
4 `! x T0 {1 A4 I0 s$ @;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
9 B) n' a5 z# u( |! }/ s;;;
) W9 B( b0 J& {3 S% K5 z4 o: P;;; Permission to use, copy, modify, and distribute this software
! F0 _/ \ p1 l" e7 L; u$ @;;; for any purpose and without fee is hereby granted, provided
) D+ l; B" Y7 g" S* m6 p) g;;; that the above copyright notice appears in all copies and
+ `; \% p7 I- r;;; that both that copyright notice and the limited warranty and
6 [" s0 p( W9 x& N/ k# c1 R; P;;; restricted rights notice below appear in all supporting
' C4 Z* e! Y, s# l/ H# L! V* T6 n;;; documentation.
+ U; i/ \3 y, L3 | V;;; d( a. { V6 X0 j
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS./ p e. {7 X @" F( l& q( T( E
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
# {9 P& B/ q& {) ]; _+ g- E;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.5 v. a! } a1 |
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE) b$ v3 k+ v: Q9 ?
;;; UNINTERRUPTED OR ERROR FREE.8 a- r9 j$ D( ?5 R" j3 T" c
;;;
$ K0 n4 @6 m" s, R. G" k( {;;; Use, duplication, or disclosure by the U.S. Government is subject to! {4 T/ X9 d4 L; D) h6 b
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer- R% [. j; T& M. S
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 1 ?% N3 x* M/ Y
;;; (Rights in Technical Data and Computer Software), as applicable.' u6 L6 P& ?" ?
;;;
- N, Z! l1 j3 j* c) J;;;.8 V# k& \( \0 q3 {9 O
;;;
1 A0 C$ |7 o0 n;;;----------------------------------------------------------------------------
. H, T+ z3 d0 R;;; DESCRIPTION
0 n4 @2 Z* _9 Z. H6 c) D;;; , v0 I) ?; D, q2 `
;;; Chromatic Pallete style color selection dialog." }" ]1 @# }) m8 L+ B$ p
;;; - N7 n1 u; @& ^5 M6 T; I s
;;; Globals:; ]$ h- N' R' s. |( f
;;;
6 K& _4 ?" y" h% U- t0 p;;; chroma_color - Integer color index. The last value selected# Y, {) q% i w# f
;;; by the user in chroma dialog. It is not cleared or reset
" ^1 O$ r, j5 y- U' F;;; by a cancel. Only used for communication between callback
9 r4 M* R7 k" b1 U; ]! f* e8 i;;; functions and the (chroma) funciton.% n# j0 ~9 U5 Q6 w) c: \
;;;
7 @. q5 x+ }! A/ e) j* f, Y;;; Depends on the definitions for the dialog provided in chroma.dcl.* T; G7 I) S$ J$ v' i' ~
;;;
$ w5 J% u+ ~, b7 r;;;
$ e- K* L1 n0 ?" c! M( f7 |;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma 9 F. m9 i( I# s
;;; pallete style color selector.: E K% e: a- N- U: T3 Y3 o
;;;; b, ^; N- i; K4 L9 I# @7 x
;;; ===========================================================================" ]/ ]3 y5 i) c+ ~& k- y
;;; ===================== load-time error checking ============================1 F7 u2 A- H- p
;;;
, M( w* K+ b" @2 s. X7 B. v
c7 z# M) ~: q7 L3 c( E8 I* E6 P (defun ai_abort (app msg)
3 R0 X% p/ u2 \ (defun *error* (s)$ U7 h: c5 p* l' T; h5 a
(if old_error (setq *error* old_error))! m6 d0 X! A* E2 `
(princ)" }9 ?4 m" R. z3 n& T' _8 Z6 ~
)
: S6 h5 k0 q8 w( y3 F8 b (if msg
* r' r1 G3 P0 h2 `1 {. P (alert (strcat " Application error: ", F n9 ]# T0 G2 s3 Y5 k
app4 C$ `4 I5 P. y+ g
" \n\n "
9 ~% q: M. X: H$ H4 K msg. q1 v1 i N6 H. Q8 z
" \n"9 a1 c2 _. V3 F) ?: L7 _
)' @, I0 }) U) M" [; j' ?
)
+ E4 G4 t) X& d j& \ )
- d4 \: _" J, D5 I3 Q (exit)3 Z3 A- R1 n3 q e1 F5 f2 ?2 @( [5 `
)
0 _8 }6 W5 T3 b7 C F% f4 _( q1 `2 T/ c ]
;;; Check to see if AI_UTILS is loaded, If not, try to find it,
' e3 V8 ?( k' ^; r- W0 I( ^' z;;; and then try to load it.
7 S7 k: S- i$ A+ A3 e' {;;;
8 k, l: D7 [& c;;; If it can't be found or it can't be loaded, then abort the
$ a! k" n; A( P1 Y- U/ h;;; loading of this file immediately, preserving the (autoload)+ F" x4 v- F6 S# |/ v$ T
;;; stub function.
% m) ]6 v# X( L0 w# n
+ Q$ U" S# C8 q3 f (cond
2 ~8 r) D- p4 u! S8 q ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
6 {' }! i2 B7 R* D
7 @" [! ^6 a3 } @/ F( H ( (not (findfile "ai_utils.lsp")) ; find it
8 c# p/ N o. W" L% u Z (ai_abort "DDCOLOR", A A- ~$ C5 }4 }) D# ?
(strcat "Can't locate file AI_UTILS.LSP."" M. M: ^! v, h0 p/ ^
"\n Check support directory.")))! o- A; l# s! @& R/ J& Y
! f. m7 r( e, Y$ P
( (eq "failed" (load "ai_utils" "failed")) ; load it6 e+ N5 x1 W4 c7 _) P3 i
(ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))% K: Z' t8 E/ y5 [+ o; S1 W
)
' V& b5 a+ v0 q* V. A) r. \( H) F% ~1 c3 }2 h
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP* r( ]& O' V! e i- d
(ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses1 v& }* Q! Z3 H
) ; ai_abort's alert box dialog.9 A5 E7 }! n1 v0 \3 C* j
. V! v0 t8 A0 H
;;; ==================== end load-time operations ===========================
6 X! ~! S$ v6 T0 P6 v
$ p$ ?; V( X9 _! S1 D& i& W(defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
/ f) A2 d; |, S. q
2 K( Z% e' P: v1 h2 m ;; Main Color function, called by setup code.+ A. r' \* ~6 @7 y# X( E' ~
(defun ddcolor_main()
0 R! ^- p5 R! C; z5 q# v' L5 O( b( E! F, q9 q# S! t
(graphscr)
5 K5 A9 |- t" U
: [5 ?0 F: x. O$ g ;; Get the color of the current layer, for possible BYLAYER color swatch.
- Z' }- X3 t- u2 L* M! A# L (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
+ @% q e- `6 Z z+ _' T) z( k9 G2 g% g0 A! E# o
;; Call the dialog here...$ X5 F% C3 D: q9 J$ O% F( j0 M
(setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
- ^% Q) ]( r% Z7 w4 y" ? O- R5 U! p: d: S E8 Y2 i$ F4 f! L
(if clr
) v j& u$ I4 i8 m, @ (setvar "CECOLOR" (citocs clr)))
/ l" C% p5 W: d2 ?/ z/ D ), F$ {9 V/ j1 j& O+ m' o6 h
3 J2 t( K- R3 p. F" u3 H
;;;
) {" \+ F1 D/ a ;;; CSTOCI -- Color string to color index
; E4 n$ A; ~6 Z7 Y* a1 G' ?: {! v ;;; Convert an arbitrary case string into a color index.) m0 Z. D5 K0 O! U% c, q: m
;;; Returns nil if string is not a valid color.
- T J D/ Y/ B4 \ e ;;;
; O- H* G8 [3 o4 Z (defun cstoci (str)6 h& G4 P' r: P7 T5 g2 f+ g
(setq str (strcase str)). W ^9 v) U- [
(cond- {8 p( `5 B& V
((= str "RED") 1)! e) o r( X7 h
((= str "YELLOW") 2)* {/ b- _# Q5 s
((= str "GREEN") 3)( b) o, {! o6 R/ M' N
((= str "CYAN") 4)
: [1 ~4 \- ]7 t d* K/ ~; v( B% E ((= str "BLUE") 5)0 N. w. R5 g% j+ D) D& Y$ E* U
((= str "MAGENTA") 6)$ Y/ ?/ K! \8 k |( ]
((= str "WHITE") 7)8 ?# Y; g. p* `7 u$ O
((= str "BYLAYER") 256)) c# e: _9 p7 d* w9 Z
((= str "BYBLOCK") 0)7 G. j, E T/ V5 A
((= str "BY LAYER") 256)+ x! W& C+ U% @, x: r$ [
((= str "BY BLOCK") 0)6 A4 T) u. `2 \! G/ i! |: j
((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))8 t& k6 |* K8 S, O' I9 H
(nil)); l. c: e2 h2 L2 u( b! B
)* a% P5 L% y0 J! B
" i f1 S- n9 k5 R
* J% _5 \, G5 @" ]% y v7 d
;;;# ?+ m$ Q8 f L+ _
;;; CITOCS -- Convert color index into standard color name. n/ n; T/ e& W
;;; Will return the standard and logical color names as text
( S* b) a& [; a ;;; strings. Returns nil for out-of-range color indicies.
7 o) I2 S% |6 p! n3 L! E ;;;
1 Q, W( m- B4 u2 O: |$ L0 B$ u (defun citocs(i) T, n0 n+ O$ S6 \6 ?
(cond7 W9 L( n- c$ L! Y" t0 W
((= i 0) "BYBLOCK")
/ ~/ @% ?$ x7 H( S" U ((= i 1) "red")" E' b% a4 b K8 m" d
((= i 2) "yellow")3 i; b5 [2 T! @
((= i 3) "green")5 g6 |# p% v" _+ o, ]3 V& O
((= i 4) "cyan")
3 ]! k3 j" z" x/ Y1 m+ \ ((= i 5) "blue")
5 p" R2 ?5 d0 \: _3 ]8 ~ ((= i 6) "magenta")1 F( m& a K" D9 L
((= i 7) "white")
! w% _6 ~# h/ D ((= i 256) "BYLAYER")
& m! @ D+ N7 R ((and (< 0 i) (> 256 i)) (itoa i))$ r! [& s+ s0 R/ [" E+ u
(nil))
- f1 w8 w9 Q3 b" S* T0 q ): y7 D. `" k) c+ |0 E, [
, F/ P, M+ c \, D: p/ c
;; Start of ddcolor
3 n& U2 m C2 M# ^) e (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho8 ]* j( o8 H5 A& w# J+ L
old_error *error* ; save current error function
7 X6 ~, t3 G/ g6 X' l *error* ai_error ; new error function, t- T6 c# E, X [9 d/ i6 z- R" E
)
1 T; i& k5 m q* A& \/ h L! D' K8 I3 o a+ {5 n A( |! L% b( t& r1 r$ v! {
(setvar "cmdecho" 0)
2 h! u# r; d3 b: ?: u
+ E% k$ @/ B o7 p' \# q (cond
: p- b- E" U+ c8 C ( (not (ai_trans))) ; transparent OK9 ?$ ~5 H/ l B. z. N
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
( `/ x3 U5 Q3 ]! {0 s( ^" V% F7 ^ V6 t: A: L: q
(t (if (and (/= 1 (logand 1 (getvar "cmdactive")))' ]" z/ c, |+ v W3 E: {$ n0 I
(/= 8 (logand 8 (getvar "cmdactive")))
5 ]/ i5 s! T- x8 x& N )+ ]7 W2 W/ r0 ~" Z! U( F% ?& o' _
(ai_undo_push)
% d v% P4 y% I; M& f )
p1 K3 A, s" _! J" D* e% k4 i$ {- O P0 o( |9 {, ` S) }
(ddcolor_main) ; proceed!: |, U: e6 S0 m/ g# D
4 J7 F6 C" H# P9 a0 Z
(if (and (/= 1 (logand 1 (getvar "cmdactive"))). V" Z5 P8 O2 X4 H
(/= 8 (logand 8 (getvar "cmdactive")))
; N' v4 Y- [7 ] x) `' L )
7 x# y5 C, d, y (ai_undo_pop); Y6 m2 |- D8 h6 O. S
)/ q8 q0 [9 G- |' q8 O* g
)
4 F7 t' ]% N: H4 S4 ?! i )8 |+ z) s: v6 Z0 V
. c5 B& j* K4 u" U- I7 ^' g
(setq *error* old_error)
6 L6 q! } U' q' {# L& r- U9 V (setvar "cmdecho" old_cmd)
7 Z$ ?" ~5 B4 b! @2 @' K/ X (princ)
7 Y9 Q0 ], `5 S' c: I8 R& F+ V# i9 l- M4 V X) E8 C6 B) Q
)
: G$ {* a& F! L8 P; {0 ~- i
1 c! O7 {" I2 u- e- p;;;----------------------------------------------------------------------------9 t/ b& m6 `4 ~7 @1 g
2 z! D ]( C: N: d& p(princ " DDCOLOR loaded. ")
6 N) m$ R! d* W$ R$ r(princ)9 c; Y; h1 ^. ]' s" O
7 f# t+ E! h$ q/ F4 Q8 @;;;--------------------------------------------------------------------------;
+ t7 ?4 x, ?2 ~0 X+ d7 G n \! F8 k+ R& Y;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;8 D8 \ R1 ?/ L6 _
;;;--------------------------------------------------------------------------;
, E. E& _0 f7 Z8 x3 E- G Z: k+ y;;; ssx.lsp
$ I( k- m! l8 \9 `3 Q# b9 G;;; Copyright (C) 1990 by Autodesk, Inc., p& J* |% Y$ l3 D% ?% w' D
;;; Copyright (C) 1991 by Control Systems, Inc./ y6 G1 b; z" t" A
;;;
$ J- T5 C! U$ G T- s( y;;; Permission to use, copy, modify, and distribute this software and its4 [7 t4 D5 {! l& ~! V
;;; documentation for any purpose and without fee is hereby granted.
/ b; b. u) o& U) p$ D8 i;;;- q$ C+ F8 @4 Y, A2 M, e; K, H ?
;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.! f; C+ X* J) Y; a! ~+ o
;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF4 H" X6 A% B; m- A! o& J; e: w( P9 [
;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.4 C4 b$ q0 m4 b$ g) _: ]* R
;;;
# W+ @$ B/ V3 [( k) k; r9 M;;; Larry Knott Version 2.0 7/18/88
: @* h$ n3 m5 q# Z: u/ Z;;; Carl Bethea & Jan S. Yoder Version 3.04 F! V9 U# s: f' ^# g# o9 G
;;; Enhancements to (ssx).% L# t" C6 i# F9 S
;;; 15 March 1990 & ] c8 ], l8 L( @
;;;6 j1 v3 i+ T9 w8 O1 d+ p6 A
;;; ARTIST Software, Inc Version 4.0 December 1991
: s; I9 R8 t& T, J/ p;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,0 @0 h0 n, V2 Y. X* n
;;; use Flexicon menus. D* u0 V0 B$ Y6 f8 P0 ?
;;;0 B6 a3 ~2 Q# T, O4 {- ]/ T$ c6 E
;;;--------------------------------------------------------------------------;" W d4 c" B, i& V- ]
;;; DESCRIPTION
% s$ P4 O4 r9 S5 \;;; SSX.LSP
' A$ h; x/ w G4 ~- [;;;
3 @7 j. J0 `% h( B/ A;;; "(SSX)" - Easy SSGET filter routine. : j' }, r* Q8 G! e; |2 Y
;;; ) n, U; Q3 ?6 X7 F
;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
0 g1 i8 D/ c1 V, d;;; to create a "previous" selection set or type "(SSX)" in response to
$ F9 e/ Y6 {5 B;;; any "Select objects:" prompt. You may use the functions "(A)" to add 0 J( v8 t# V3 s7 c& r
;;; entities and "(R)" to remove entities from a selection set during ' H @' M2 `) t: e' c. s
;;; object selection. More than one filter criteria can be used at a
0 ~0 @* |1 @% q- }9 Y! _;;; time.
' O+ W; p; w( x6 U, J$ v;;; + L! Q ]3 i& q3 s; G
;;; SSX returns a selection set either exactly like a selected7 i) k8 A3 H( }; w
;;; entity or, by adjusting the filter list, similar to it.4 h) M% x2 `* S, [! ?, w3 M+ \
;;;
1 Y6 P0 [1 U) {;;; The initial prompt is this:) x7 o% k8 v: n6 c
;;; / T! r5 I" L0 d3 }" `: t- w$ c
;;; Command: ssx
/ p" \. Z0 R6 k v8 v/ z. u5 \( Q4 S;;; Select object/<None>: (RETURN)% r' J+ @$ J' G0 R7 @
;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ; n5 j3 i& V$ w8 X
;;; ' x L3 b' V+ I) I- f) y( O- n% a
;;; Pressing RETURN at the initial prompt gives you a null selection + `. L8 _$ K' t v+ b4 J. k
;;; mechanism just as (ssx) did in Release 10, but you may select an
- Q k" i& s$ S4 N8 ?8 p;;; entity if you desire. If you do so, then the list of valid types
' g r6 A' f9 u;;; allowed by (ssget "x") are presented on the command line.
8 S# S2 O* w3 z3 N;;; 2 E y9 e5 }- n8 n+ @
;;; Select object/<None>: (a LINE selected)" Y2 w1 }: Y2 Q$ s% Z, r7 n N2 U
;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
& G4 W3 o- V) B+ q; a;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ' X& a, k1 h% H. B2 M
;;; ! J* y8 i3 _" o7 m" O: f7 E
;;; At this point any of these filters may be removed by selecting the
- d; j# \3 y5 L& ~) E8 B;;; option keyword, then pressing RETURN.$ W2 A* a! F0 v: {" t4 `
;;; + |; {: O1 v1 L2 q; x! p3 o& R" I
;;; >>Layer name to add/<RETURN to remove>: (RETURN)9 l; k; V9 j. {* Z* K3 l
;;;
. n6 y! }& L6 o: y7 D;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) q2 ^! a! A, Q6 j( k/ A
;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
/ v. I+ G; {; s' j3 ^( z;;; % c% m4 d, V) Z
;;; If an item exists in the filter list and you elect to add a new item,
+ R' U# X: B: g% O* P;;; the old value is overwritten by the new value, as you can have only , T& _6 g7 g; u, s/ Q
;;; one of each type in a single (ssget "x") call.0 _+ O4 n# x' \# ?& c# {
;;;" r0 y5 A( H6 w
;;;--------------------------------------------------------------------------;
2 D7 I2 m; J/ [; Y3 P; t2 |;;;
8 X0 K; F) x( i( Q. ?. I;;; Find the dotted pairs that are valid filters for ssget
! s9 ]& _2 V: Y;;; in entity named "ent".8 U8 f& E& x) k, x' P8 m
;;;" q/ w( _, a! R1 f$ d2 w- C0 |
;;; ssx_fe == SSX_Find_Entity+ L' R: q! Y( v
;;;' j) |4 X% H" y1 f+ Y8 f
(defun ssx_fe (/ x data fltr ent)% H: Q; |* _- p
(if (and (= flexvar 1)(/= t2 "Pick"))( G* V& g- `8 I6 _
(setq ent nil)8 K# @5 J% {1 `* ~# `( s: E1 o: k
(setq ent (car (entsel "\nSelect object/<None>: ")))% Y0 g8 g1 J3 b- C- }, R6 ]3 Q
)
- q6 t. X9 a# X( J6 E. r5 N4 Q- f (if ent2 f8 [! T, Z% s. g$ i
(progn
& r6 z2 [. k& |. T4 Z: z (setq data (entget ent))
T( @8 |" U( M M* p& c (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
) z) C5 u: v8 _: J4 u* K4 r (if (assoc x data)/ J* M# ~' W) W3 Y- i1 O
(setq fltr
# N: c' \3 X9 N- J* j (cons (assoc x data) fltr)9 @4 Y |& S$ T) Z i
)
% M H2 k+ P. `8 y) ~% N( N )
+ u) [5 R8 w2 ?. c ) ( _- g1 p" i, n0 q
(reverse fltr)
( \8 i: H' N- I# d0 P/ K& { )
: i( o, q/ f9 U9 L" i% e# @, H; Z )
/ H) q5 k4 t: n9 v; j% h3 X$ u9 k)
o. F: B. ^1 m: L! n3 I;;;5 H2 N- n6 A3 ~5 |4 u" v) m
;;; Remove "element" from "alist".( ]6 ]# s# \- I
;;;
# g, n; Y1 F9 d0 X;;; ssx_re == SSX_Remove_Element
, W; Z( {! p. Z. X! b9 V;;;3 N1 |0 O% G8 G$ d3 U- L4 {" N2 M
(defun ssx_re (element alist)
, m( V0 g5 f ?3 w (append
' E0 g; Z ]6 c) \) a. _ (reverse (cdr (member element (reverse alist))))
- P/ V. w& A1 r/ t5 Z8 V# G! b; ~ (cdr (member element alist)) 3 s! ^$ H9 y" I0 B; I
)
" l7 T( M6 |5 \2 q! T" k z, I) v2 L& o0 P' O& R5 W- L
;;;
4 O: ~7 I& Z) j( J4 k- P* m;;; INTERNAL ERROR HANDLER 0 o3 N J' B. d& \4 Z
;;;
3 m4 c% B8 d _' O$ U(defun ssx_er (s) ; If an error (such as CTRL-C) occurs P% n) {# d6 s( }3 v& g
; while this command is active...
# E4 \& P# D1 j1 v! u3 a (if (/= s "Function cancelled")
. Q- J! _7 i' }2 {9 i (princ (strcat "\nError: " s))
F6 j2 o. i) p )* \ G* S5 z1 o Q
(if olderr (setq *error* olderr)) ; Restore old *error* handler
) u8 R; V( c% P0 {, y0 n0 i% B (setq flexvar 0)
s, Z! @3 Z/ ^( |3 Y (princ)
! b3 E) J( B& p9 O/ R2 W/ a# b. [)0 O0 f" e8 {' b7 f) {% D8 ^
;;;
& J9 v' W$ V+ ^8 q;;; Flexicon call routine, ?% ~+ Y& g0 s0 k& C. w
;;;
. y- U+ p* x! [" U$ D(defun flexmnu (a)
; e3 A% O* n- U4 v) j (if (= flexvar 1)( f$ V% T, l$ q- P
(command "FLEXICON" (strcat "FLEX" a))
7 x3 R0 J- |) h3 O' N2 w8 C )7 m) n3 Z& m7 O* ~* r% ~. ~/ w5 }
)4 P! i! f" u8 Q( a: r, D' N
w+ W+ }4 J) U+ u;;;
5 E( ]2 Q3 N4 r6 K% A! F: s;;; Get the filtered sel-set.
8 g2 f0 ~0 n' Q7 k;;;8 k. a# O# Y1 J+ j
;;;
% W( ]6 q6 c& [7 K(defun ssx (/ olderr)
* b- j- o" E) K% S/ f5 q* r (gc) ; close any sel-sets 6 H1 n( H1 u# q* \) E0 v
(setq olderr *error* ' |2 v% Q; {# u
*error* ssx_er * n; B6 N7 G! Z8 |0 z4 x' S
)- u2 S( r6 X2 Y7 D
(setq fltr (ssx_fe)) # k: i% R# q- ]+ h
(ssx_gf fltr)
# w5 Z! a+ C6 t/ w; M (if (= flexvar 1)5 t7 U! Y% F" R3 a. g( |8 j c6 k
(progn8 | \2 @7 a ?3 g; ^5 N. p7 i
(prompt "\n \n \nNow select the required EDIT command and (P)revious.")
6 r* ?9 P! E! C+ o. |% z# x (flexmnu "EDIT")" e; L- k: a& Y" {# v0 c- v4 n
) T7 x+ P' ?1 e0 t1 C
(command "p")
+ \' g4 A& Q5 z" V4 L' b* g+ q )
) k- }) X a' I* @, j5 T% _ (princ)
# W! O) S7 e" l)
6 p4 p. O4 A# j i, Z( |' k! ]# I;;;
, @3 n' M$ o9 B' Y9 L, X8 z$ a;;; Build the filter list up by picking, selecting an item to add,
0 ^) f& l9 x9 Q- Y- Q;;; or remove an item from the list by selecting it and pressing RETURN.
' o. J' U7 _! |0 L$ S( W6 A9 K. A;;;
+ \# o0 [/ V, Y- Y# |;;; ssx_gf == SSX_Get_Filters
" S. D: \& J8 J8 w- p( Y;;;
# x* {3 S; g- {5 p- Z5 h( S4 v(defun ssx_gf (f1 / t1 t2 t3 f1 f2)
: d: S& P, e8 p (while
2 ?$ \* g. F' r& | k, h" A' Y (progn h1 q5 f. X, Y5 v5 U/ J! F
(flexmnu "SSX")8 r _! H8 W. Q
(cond (f1 (prompt "\nFilter: ") (prin1 f1)))
6 k! I# W, Y1 Q- B7 R! c (initget ( W" @6 U, \; Q3 j, T, `% o! R
"Block Color Entity Flag LAyer LType Pick Style Thickness Vector")( a, y2 N9 r( h& c% k$ `1 z& S
(setq t1 (getkword (strcat! K/ Q$ N8 Z2 T; t) e" E6 a
"\n>>Block name/Color/Entity/Flag/"
7 _! {8 G. E% I, P" [! z G "LAyer/LType/Pick/Style/Thickness/Vector: ")))
# x, p1 o8 C9 S- x; W- | )
/ N3 d3 E" M" z$ |# O! r9 P) J* J (setq t2
$ X6 X8 w5 Q4 }' K (cond
I3 b" K2 t8 I% U ((eq t1 "Block") 2) ((eq t1 "Color") 62)
/ ?$ D( u9 @0 {7 b7 E/ @9 j$ z: a ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
( r+ H! N" v/ R; p2 a2 i* Z ((eq t1 "LType") 6) ((eq t1 "Style") 7)/ [' Y3 H# m* ?! S: H, S5 c9 \6 S
((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)2 `8 A ~) Q* p' m- C) X
((eq t1 "Vector") 210)
2 T4 r& Z3 `8 o2 X b! K$ W (T t1)/ V, L: o+ C- L" i y0 l
)9 h3 o- Y" O( Z
)
1 j a5 |$ @& n2 N( g (setq t32 x8 m* I) V7 W
(cond5 s* d" ?9 \1 @0 q0 t' s5 t
((= t2 2)3 C2 T: x' [7 s8 O8 i, J
(if (= flexvar gtads 1)
" G) ~* _3 a0 k3 f, M (progn
, h8 p; u# I" b( Y( u. z: w" ~ (prompt "\n>>Block name to add/<RETURN to remove>: ")
6 w o6 p6 P6 C' C. E. t. e (gttable "BLOCK")
" Q+ s. u/ `9 ? r% R, r )
1 Q8 T0 p, m5 k. @7 ^) a (getstring "\n>>Block name to add/<RETURN to remove>: ")
8 t/ H" C) r9 v1 \0 E6 f )
/ c. D- [9 b. g+ q2 y )
+ Z, H1 `/ C3 a* y, E# o! k ((= t2 62) (initget 4 "?")
, a* j y/ e; {+ V2 h* E1 K7 s (cond8 {( V* l% E. g5 x0 o0 B' h
((or (eq (setq t3 (getint 5 Q) w3 P$ R. W M5 W8 C
"\n>>Color number to add/?/<RETURN to remove>: ")) "?") ' L b# B" D3 k& J( w5 F8 m8 l
(> t3 256))
/ Y8 D" _4 b; t5 b (ssx_pc) ; Print color values.8 B2 ?7 c: u5 U% |, C4 N
nil6 F1 G. U# a( ]0 q% q# D
)
' H r3 x5 s7 Z* q% z$ T (T- {6 [! E8 ^! v# A
t3 ; Return t3.+ W. n( _" x- W* v) H
)
: g' k4 q" Q4 J& h1 ~! u5 O% W1 ? )
; J1 f$ d; ^8 B )
+ B2 ?/ W1 W7 x9 p: ?1 n ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
! c" z6 v1 ~3 E$ b2 q k ((= t2 8)
- K* L- \( Q, Y3 y9 D (if (= flexvar gtads 1)
7 ?8 ]% N' R9 n0 g( i: F# U/ R. _ (progn( E5 ]( ?1 k# g3 l. E, I1 n U# z
(prompt "\n>>Layer name to add/<RETURN to remove>: ")
# _" r1 x! R( ?4 L' z8 z4 _ (gttable "LAYER")
|% B4 O2 P9 C" L! i )
, \8 J9 v, G9 }1 O) U" g (getstring "\n>>Layer name to add/<RETURN to remove>: ")7 H1 D; a. F# _9 U
)6 s6 W& D4 b! N" N" I5 R, P& B
)
( Z) W% D* I5 S' P ((= t2 6)
3 B. p6 a& @ m1 x (if (= flexvar gtads 1)
: k% D" a9 j, S% H k$ j$ w/ \ (progn
* {5 ?' F' g" u3 r! V J1 U; b (prompt "\n>>Linetype name to add/<RETURN to remove>: "). u* V/ V: f S7 x
(gttable "LTYPE")
% F$ v; s6 g E& v' z )+ u/ E% e: p2 r( R: u9 J
(getstring "\n>>Linetype name to add/<RETURN to remove>: ")9 U* {, M$ j/ {0 v$ L! D7 |
): z* S$ U9 b$ R* P
)
* Z6 ]! {) E: Q ((= t2 7) $ c1 J/ P, @& X, S- W
(if (= flexvar gtads 1)
s0 C% q8 d) I" y' u: a9 V (progn! e/ o: u" z/ \6 N" j
(prompt "\n>>Text style name to add/<RETURN to remove>: ")
' L4 B: [# M. V5 [ (gttable "STYLE")
" W6 D/ w' z6 r& M" ]; h )
1 v& h* M! m) I6 T- f2 r5 |, f (getstring "\n>>Text style name to add/<RETURN to remove>: ")
3 M: E, \, S A$ x/ C! l9 m8 i )
7 I# s# r7 i! S5 q1 ~/ B )2 T# e5 N) j# O1 Z$ G: @. `. Z* `
((= t2 39)
! K! a0 f7 w7 L" u (prompt "\n>>Thickness to add/<RETURN to remove>: ")
7 _! U. Q/ P, S9 L, _ (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
! I2 ^' O A& m* ~# w: x% l+ [ )
! t) R8 E, F- @, i) P* Z* L. u2 s ((= t2 66) (if (assoc 66 f1) nil 1))
! F9 a7 @: Q" a+ _) a ((= t2 210) + V% X& s* t5 n; E& `! l8 ]
(getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
7 M: P: j7 O: n' ?! | )
9 B1 J, T* ?0 ?! J h8 J' d (T nil)
" r% ^" z: |; L9 F L/ B )
0 M5 f7 b4 y, O+ ]- H0 P )
% m' k1 l# q/ P9 G. V (cond
/ b/ y- |, h% P0 Z4 s* e4 T0 G ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
3 |2 H# n: P" p+ \# _# O ((and f1 (assoc t2 f1)) ; already in the list, \: b; i9 k$ A9 J. K
(if (and t3 (/= t3 ""))+ ]) Q9 _8 j# r
;; Replace with a new value... $ W7 j, @4 \; ?/ R: u ~4 a8 w5 l
(setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) & A# C9 s) C9 L4 Z
;; Remove it from filter list...0 I' Z1 P8 }/ G& g& r
(setq f1 (ssx_re (assoc t2 f1) f1)) / Z# d( ]5 S8 v1 K. ?3 Y7 n
)
# \; {* |* M. F6 R. T )1 e; p9 }6 J/ D- `0 R; o0 t: L- C
((and t3 (/= t3 ""))
/ T3 C0 V! i5 @& p3 ] (setq f1 (cons (cons t2 t3) f1)) E) ~ S. U. k7 S& p7 C
)8 U. }2 N1 d+ d, U3 \* J
(T nil)
6 j. a# C4 m1 p1 [, A )
3 D' Z/ e6 w- F3 O2 o; W' T/ o& R )
8 f! s; C& A" ?3 w. ]8 e' S( e (if f1 (setq f2 (ssget "x" f1)))
/ u& I6 @" B- g5 X, g. e, r3 b3 j (setq *error* olderr)
. ?/ H. k T' Z5 Y' ? (if (and f1 f2)
/ U* ]. s2 M3 p( V (progn
/ F. |$ V9 l. r& r. y x: I (princ (strcat "\n" (itoa (sslength f2)) " found. "))
0 ?& p6 t1 C2 H, N" v/ x f2 " ? k7 R5 y0 [( Y; g
)+ r/ v1 |% m( n$ ?; j
(progn (princ "\n0 found.") (prin1))
' } z( D* l. Z7 T& f3 S )2 w* n% l) d3 E$ s E; `
)% p$ n' c* q$ \# s4 \( h" F3 T: C
;;;
' m' L w% H: H; h" ?9 g9 c;;; Print the standard color assignments.* B. F( I& n Q* [7 @ T1 b/ K3 F
;;;' p) t; i: l7 i3 y
;;;* M" F, [1 ^ ?! a% P
(defun ssx_pc ()
+ j5 g1 E5 J, p (if textpage (textpage) (textscr)): N( l0 ]& n: P; z3 Q& K. f
(princ "\n ")5 Z J: h3 r- a. D6 p
(princ "\n Color number | Standard meaning ")- U6 {/ X) _: y; P; q
(princ "\n ________________|____________________")+ P& l5 X' X. X1 W; S! c
(princ "\n | ")
8 V! ~! N( V. A F (princ "\n 0 | <BYBLOCK> ")4 n% ^4 ~3 g: ^& b w) w
(princ "\n 1 | Red ")3 t1 X% ~: i- j# l1 y
(princ "\n 2 | Yellow ")
6 V0 w% r# S; U/ l! p (princ "\n 3 | Green ")' u: a/ \5 c7 v+ ]* f4 e6 w
(princ "\n 4 | Cyan ")- e; P0 A9 _: q2 C
(princ "\n 5 | Blue ")0 S% {" K9 k! G+ P
(princ "\n 6 | Magenta ")1 C/ R0 f4 g" C* a! Z
(princ "\n 7 | White ")2 w/ E1 E, C4 G1 O
(princ "\n 8...255 | -Varies- ")6 G6 ~! B. x. Y
(princ "\n 256 | <BYLAYER> ")
9 z8 ~: V! F' `; H0 b (princ "\n \n\n\n"). E1 M3 `% M5 S+ ~+ D+ z( c
)
' {1 I3 R+ p/ z0 P" ~;;;
6 E% \" R1 V- D" v;;; C: function definition.
, l3 u7 o# e; @;;;8 e* L6 N- A8 d* P/ s* J y0 A
(defun c:ssx () (ssx)(princ)) e% I, H3 A$ L3 `
(princ "\n\tType \"ssx\" at a Command: prompt or ")
- Z' \- t: v u2 E9 J) ]4 I5 |(princ "\n\t(ssx) at any object selection prompt. ")5 Z* P* e! \8 T& B6 V5 d& L
(princ)$ C" M/ T" ]/ C' q( E! y* `! L
- |& m6 x* |, h& U;;;--------------------------------------------------------------------------;
9 G: Z0 d# B* M;;;--------------------------------------------------------------------------;/ R6 c. B0 Y6 B
;;;--------------------------------------------------------------------------;1 o+ K9 {: |- q6 w* u
(defun S::STARTUP ()8 x$ \. k+ [$ b6 C( {* O/ u8 } D- X
(setvar "cmdecho" 0)
% Q @* S P7 Z3 P0 X(setvar "cmdecho" 1)
5 d' y. S( b5 K0 W! o(setvar "LTSCALE" 10). v' ^& K) x# h( S) L: \4 K9 e2 A
$ K0 w: s0 t* f) u9 } |/ d. ~+ A: J' s/ X+ L
;(command "_load" "chenKH.fas")
6 |( N& B; P$ y. k( V2 h;(command "_load" "ctcot.fas")5 ^+ h) @* A/ c5 I8 q
;(command "_load" "damdoc.fas"), _. v6 g) i o
;(command "_load" "ghichu.fas")# A# F; ]8 W& X! H: b6 q" `1 E
;(command "_load" "hamtutao.lsp")
g# ~ p: q$ E3 W3 b;(command "_load" "KHOITAO.fas")
F9 b' j* ^7 }8 Z& ?;(command "_load" "KHthep.fas")
+ X& z* Z( L) j$ u0 y' t, b;(command "_load" "mbmong.dcl")& j) e9 R, N9 s
;(command "_load" "mbmong.fas")
; P' J2 v8 ` o;(command "_load" "mccot.fas")
* d! z- M3 v' W;(command "_load" "mcdam.fas")% B% d7 {, n% ~9 k- I
;(command "_load" "mcmong1.dcl")( u E. Q9 t+ r
;(command "_load" "mcmong1.fas")( T8 T# Z3 I/ Y3 A
;(command "_load" "mcmong2.dcl")* z9 C# S! f. y6 ~
;(command "_load" "mcmong2.fas")* N: J' c' n& W
;(command "_load" "mcmong3.dcl"): B% N. Q2 P+ d9 d$ s0 m
;(command "_load" "mcmong3.fas")1 P% y n, E; T: j! k6 s
;(command "_load" "mcsan.fas")
% o- R7 ^& m# X+ n$ K;(command "_load" "thepdai.fas")
& D d7 k& u# r: X* ];(command "_load" "thepdoc.fas")
7 X' l, C& Y! _9 G1 m;(command "_load" "thepmb.fas")
$ M) y/ e5 W0 ~$ |( g/ [7 j;(command "_load" "thepphbo.fas")
3 `( u& v0 ^$ c9 ~' h/ d(command "_script" "thongso.scr"), P4 l5 R. B" {7 F( C/ {
;(command "_load" "thongso1.dcl")
6 s# f( x, g8 I+ {4 E& f;(command "_load" "thongso1.fas")" P. I* G% V6 u# O
;(command "_load" "thongso2.dcl")
5 m0 S% U# s' c2 G/ ~* N;(command "_load" "thongso2.fas")
8 E3 q4 G$ P( n, O+ ~- ~;(command "_load" "tietdien.fas")7 a9 ~+ S- y7 k
;(command "_load" "vehan.fas")
9 S8 C: t- k* f2 {9 {$ N(command "_load" "phamduy782006htd.dcl")& m. w. @$ s0 a( E9 F8 G' R
(command "_load" "DDCHPROP.dcl")% q' T1 l8 a* x9 v5 P
(command "_load" "EXCHPROP.dcl")
4 n, ~; C" ^: \( b(command "_load" "DDMODIDY.dcl")
7 d: M: c' P% j+ b T7 k(command "_load" "TK.dcl")) I4 {! Y6 ~* Y2 `. O; q
(command "_load" "TK_LIB.dcl")
: {4 k, h5 W7 ?(princ)
# q6 N* O! x9 E)
" o. r( }$ O" _6 Q5 h2 C2 N0 {
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\DDCHPROP.LSP")
e9 _+ T" v& ?" [) w& J/ `4 q( ?/ y4 m1 b* S& t% Z
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\SSX.LSP"); {: E: d7 u) h0 H" G5 S% c
' S; z9 q( ~5 B# t7 z. i- E
;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\phamDuy782006_TKT_VNI.LSP")
+ f1 E5 j, ^0 Y5 `; ?9 u;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\phamduy782006ganhtd.LSP")
4 f! E9 Y' u8 P% b3 _- { n$ \;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\phamduy782006ganhtds.LSP")
" D6 g( ^3 e3 x `9 z7 A1 u& j5 h- l: C( w/ j9 Z4 x
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\THONGKE-THEP\\TK_EXP.LSP")3 R: @6 N8 |; g. u/ ^6 {: ~; E; A
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\THONGKE-THEP\\TKN.LSP")! g2 T; _( F* V+ v4 [
: D' V% W: _) {: k
;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\ACAD iit insertTEXT - iiT.LSP"). h9 X" h" m% J) g" A
' z( r0 }2 U% ]5 |3 z$ H;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\ACAD iit insertTEXT - iPT.LSP")
5 i! Z; O! c% f+ ?: F: c8 O) u& E7 y9 J% m3 l: o2 V/ V" w
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\ACAD insertPOINT - PTA4.LSP")
| H- x" C8 j0 O* \! O3 `# w: @
;; Silent load.: A1 f% V- E/ B
(princ), T5 J$ x2 @" B1 B6 I: ]
$ e: _: g2 g! U) N" V4 _/ g) F
1 b& a( O- ^# f: j$ `! `;; Silent load for the Express Tools.
- g: t" l- B. l/ i: K' g;; Altering this line will affect Express Tools functionality8 I- K0 z# @' m! g9 q: i
(load "acettest.fas" (princ))# \+ j+ f- F( f: Y& [
" g! N2 G/ N- D8 _8 }. ^) x$ Y
;------BLOCK NAME Put The End because ERROR other LISP-------
: ]& `3 e6 W1 B- V& @;------------------------BODER HATCH-------------------------
" T+ K7 y% l, \2 A1 B# V; q& G: |% t2 U" t8 d" `
;;; HATCHB.LSP ver 2.5/ {7 D( ^6 b" `' [% \
;;; Recreates hatch boundary by selecting a hatch
# f' \8 r3 f" {1 K;;; Known problem with some elipses and splines
( J& K7 A0 \% E0 U;;; By Jimmy Bergmark
! g( j* |% J0 R7 |6 T% l9 t;;; Copyright (C) 1997-2008 JTB World, All Rights Reserved5 V0 s3 a% @2 E& t2 p) Y+ T1 L
;;; Website: www.jtbworld.com
6 Y1 @, ]" n5 A;;; E-mail: info@jtbworld.com2 [1 W. B0 J4 E/ P7 ?
;;; 2000-02-12 - First release
0 r. m7 {, ?% A. C0 X( I;;; 2000-03-27 - Counterclockwise arcs and ellipses fixed+ c3 s$ S/ x1 H" R8 t) c) n
;;; Objects created joined to lwpolyline if possible, l+ [* \8 I ?$ s- c+ V
;;; Error-handling, undo of command% E8 l+ Z4 Y- t! E
;;; Can handle PLINETYPE = 0,1,23 O8 l3 e, I$ P8 A4 T) f
;;; 2000-03-30 - Integrating hatchb and hatchb14
* X D! U2 k" o) U;;; Selection of many hatches
: [- A, j$ ^& v: ~;;; Splines supported if closed.
8 V+ B1 S! i, q, T* b0 S;;; 2001-04-02 - Fixed bug with entmake of line with no Z for r141 c4 P" K, X7 j9 O4 C
;;; 2001-07-31 - Removed an irritating semicolon to enable polylines to be created.; ?# ]! O/ N, W2 H' i7 R
;;; 2001-10-04 - Changed mail and homepage so it's easy to find when new versions comes up.5 l! o N" [/ Q/ X
;;; 2003-02-06 - Minor fix7 s0 U3 w5 {9 E7 c. t1 S' u N
;;; 2003-02-17 - Area returned if no islands is found since it's not consistant
: H8 F. j4 @/ T' V* [4 m;;; 2003-05-19 - Fix to take PEDITACCEPT variable used in AutoCAD 2004 into account
/ _3 w/ m6 }. k;;; 2004-11-05 - Minor bugs fixed
7 U) }9 `" H8 H' F* i. };;; 2006-03-18 - Nothing changed from 2.1 other that it's been confirmed to work with AutoCAD 2007
$ r2 u1 Q( m- M;;; 2006-05-13 - Create the boundary on the same layer as the hatch using the hbl command and0 \4 A- J" n- Z: O! ?$ G
;;; on current layer/color/linetype using the hb or hatchb command
- _* P( J& m$ s; O ^" _;;; 2007-02-08 - Fixed a bug with the hbl command; L& x+ b. x! }' E8 D8 S ^
;;; 2008-02-29 - Support for hatches in non WCS thanks to xiaocai
, T- T( [, \0 ~0 y;;; Tested on AutoCAD r14, 2000, 2000i, 2002, 2004, 2005, 2006, 2007, 2008, 2009
3 J3 Y# k$ Y/ K;;; should be working on older versions too., [ y1 C; f+ H7 m: S
' o% S" Q7 z2 K& |# t( {0 h(defun c:hb () (hatchb nil)) ; this line can be commented out if there is an existing command called hb9 N9 i: e, l+ G$ K( J
(defun c:hbl () (hatchb T)) ; this line can be commented out if there is an existing command called hbl
, V8 E6 b% Z9 A(defun c:hatchb () (hatchb nil))
8 }- Q4 P: g8 g, _0 u- D, W7 e(defun hatchb (hl / es blay ed1 ed2 loops1 bptf part
' ^4 ]- E$ _( m$ n+ D; o et noe plist ic bul nr ang1 ang2 obj *ModelSpace* *PaperSpace*
8 K. R1 |4 n; Q9 _/ w; S' r space cw errexit undox olderr oldcmdecho ss1 lastent en1 en2 ss lwp
2 {$ {, ]5 {9 r' p& H' D0 r+ r list->variantArray 3dPoint->2dPoint A2k ent i ss2! Y5 E0 c9 H. T
knot-list controlpoint-list kn cn pos xv bot area hst noarea ]6 b9 k& |) P2 L! G* T# o
)- B' M: i7 G, Q
(setq A2k (>= (substr (getvar "ACADVER") 1 2) "15"))
0 \# f2 h9 z8 Z3 i9 k+ e/ D0 E0 w% f (if A2k8 l* P: u V/ G$ G
(progn
. `! ^) i" O4 E% e$ m% d4 W* n (defun list->variantArray (ptsList / arraySpace sArray) Q* a! b! Q4 |3 l3 |
(setq arraySpace
: J. ]: @" B. Z (vlax-make-safearray
, K' J N S/ R) ]7 T; p" c1 |2 u: V vlax-vbdouble
# Q6 o% k7 W% A) P' a (cons 0 (- (length ptsList) 1))
9 l l: i0 D9 |( e h4 q )) N% ~8 K& U* ^) N
)
" p1 e# O6 |: e5 b (setq sArray (vlax-safearray-fill arraySpace ptsList))
+ A4 D" }1 _8 e) t/ z (vlax-make-variant sArray); b' h; s& s& Q* K4 Q
)/ g' p) X! n5 u7 F
(defun areaOfObject (en / curve area)8 j. b1 X' W Z* K
(if en
6 K9 a8 T% E9 a9 F9 p/ ^0 k (if A2k9 X4 P' p* F4 x# T: F
(progn% U# {% p; v D& @0 A' q5 v& Q
(setq curve (vlax-ename->vla-object en))
1 o- [" j& d1 z6 a( L0 M (if! }+ u. S# Q+ J% W+ R7 V- I: f
(vl-catch-all-error-p: d# h- l9 L6 X5 A
(setq' c9 c, _+ h: ?' Y6 @- R
area. f/ q8 y: v) Z3 ?7 h
(vl-catch-all-apply 'vlax-curve-getArea (list curve))
$ ?% O5 M- T- u ): x* J3 G# Y" k3 Y4 |
)
0 Z+ ?3 F6 h4 @ nil
7 d; A& j# N# Y area
, ~* P( j; q; ^5 U' w, O/ M0 w: J )
0 s* ?! r- |1 q. s ). y _ X q1 d3 D2 |! B( X
(progn
) W. D5 Z# r6 E (command "._area" "_O" en) _; X; T# N# L' H+ k8 H
(getvar "area")
6 A9 ]4 m1 f1 p, z) c8 c )( }$ A- U- ~+ Q2 G
)+ u. {, D+ }) l2 b4 M2 z
)
; E) U' d2 X( _1 I* { ); k7 X8 _" h- K- T# s! I
)
! S: H9 y# {6 L )6 o/ J3 h. P1 l8 o7 z9 U4 L& R# W- S
(if A2k
! g% u6 Y- }; q' d- p (defun 3dPoint->2dPoint (3dpt)
" J! }; e+ @9 I$ T" i (list (float (car 3dpt)) (float (cadr 3dpt)))0 i8 x; C0 D4 ]4 u5 t$ H4 X' z
) N& _ q- ^) K
)
+ G6 K' _1 t2 H- n4 a$ O
5 O6 }" w0 \5 p% r4 { o+ W (defun errexit (s)' ~0 B2 F# z& i5 B# c+ d. q M
(princ "\nError: ")
1 P# u4 w) g5 z A6 \ (princ s)0 `4 f$ q: f/ z0 y0 |( ^1 v
(restore)
! j6 n5 q% B& q% Z) { )
9 j6 n! H; U# a) P) N: d7 a: B$ p$ x+ l( T/ j- x0 k* m
(defun undox ()% ?5 M0 P w% s `+ N
(command "._ucs" "_p")
6 l6 N* o( z; {3 ?& G8 ^( | (command "._undo" "_E")0 y" ]! [) M. R$ p1 T
(setvar "cmdecho" oldcmdecho)! B, M& t7 {. Z
(setq *error* olderr)
# I1 h, n" }' x3 t3 J (princ): w6 O6 `* A. x8 }; b: _
)
4 q4 t. @; h& B8 t m! W9 J7 t6 X7 P1 K y
(setq olderr *error*- E( e: r/ \& W3 t2 m1 |
restore undox
+ M' \/ A( [3 a. Q$ X; t *error* errexit9 X& D2 C5 z) a2 R5 C3 `7 E
)1 b& V, M; J8 @" I
(setq oldcmdecho (getvar "cmdecho"))9 H `! k3 K5 Z8 g5 C& W
(setvar "cmdecho" 0). l2 Q! W8 X) `% h4 l8 ~ {
(command "._UNDO" "_BE")7 D- a5 G, ]# p; T* |
(if A2k (progn3 _- ~+ B- v9 ~/ k) r1 j% Q
(vl-load-com)
c: t$ C7 z5 V* g) w6 [8 P (setq *ModelSpace* (vla-get-ModelSpace4 ~% T' [7 Q/ i- a
(vla-get-ActiveDocument (vlax-get-acad-object))
$ x+ x" a' \, Y* L# [" }) ~ )
1 h+ ]7 S, [/ @% n$ ?, M) z *PaperSpace* (vla-get-PaperSpace, D% z& `. A3 q! l4 Z
(vla-get-ActiveDocument (vlax-get-acad-object))
/ C+ p/ |- `( D7 j+ ^' ~! L )% ^% M/ X9 r4 @6 j6 Y
))
9 U. B/ u; W1 P0 I2 z; N )
) \4 w( f+ L' Q' k/ x
: z! X7 o0 {& q [6 N F# ?* _7 f* ~
; Remove for testing purpose
9 P, r7 H+ B4 l8 t+ d. g1 M; (setq A2k nil)
( x m& { j/ f5 _7 k+ t, T2 q! b3 c, S) W; I1 u5 m
(if (/= (setq ss2 (ssget '((0 . "HATCH")))) nil)2 B' A# [ p0 v2 c. f
(progn
" u% x/ m' P/ R0 G6 M (setq i 0)5 c# F4 O' [7 y. z9 E! }- ?) @; y
(setq area 0)
) Z& @7 y. q. z (setq bMoreLoops nil)
" _' r. o9 Q! [6 z' }/ s* U' v (while (setq ent (ssname ss2 i))
9 D, ^- [3 O$ q) z0 P$ R' D (setq noarea nil)4 E# |2 Q0 V6 |
(setq ed1 (entget ent))2 X% U, O, u. P w+ \) @6 {& c
(setq layer (cdr (assoc 8 ed1)))2 I$ [0 e5 j" i- h2 |
; (if (not (equal (assoc 210 ed1) '(210 0.0 0.0 1.0))) (princ "\nHatch not in WCS!")) ;modified by xiaocai" }7 b) E0 A; e& `. F9 z1 t
; (setq xv (cdr (assoc 210 ed1))) ;modified by xiaocai
" a' ]6 ~# r3 T. C (command "._ucs" "_w")2 {* O6 C- Y! a/ f* n
(setq loops1 (cdr (assoc 91 ed1))) ; number of boundary paths (loops)
1 S3 B$ w. J# |# ^: X( {7 \ G (if (and A2k (= (strcase (cdr (assoc 410 ed1))) "MODEL"))
6 {! i( y/ [/ Z2 j7 w+ o (setq space *ModelSpace*)
{0 \8 _5 I2 \- E u* x5 Z4 Q3 ~. X (setq space *PaperSpace*)
8 W- A. O6 C3 N3 P8 v )5 ?0 t/ ]! `4 V+ \) o: ^
(repeat loops16 F9 O. F: D. r- E
(setq ed1 (member (assoc 92 ed1) ed1)). H6 ?# D1 Z' {. z
(setq bptf (cdr (car ed1))) ; boundary path type flag6 j% N# l0 V( _" W* o* v* ~" r
(setq ic (cdr (assoc 73 ed1))) ; is closed
9 S3 V' \# J( ?$ K+ E) T) @ (setq noe (cdr (assoc 93 ed1))) ; number of edges- t! z: ]" r: V% g0 w( H
(setq bot (cdr (assoc 92 ed1))) ; boundary type
4 Q" _2 N- w- t( e! \4 u (setq hst (cdr (assoc 75 ed1))) ; hatch style; S( c C% }1 q# |# M) r8 Y
(setq ed1 (member (assoc 72 ed1) ed1))$ c- o; u9 v6 J7 X* V F. s; D
(setq bul (cdr (car ed1))) ; bulge
l- v, [: Q; Y2 Q (setq plist nil)
! r& J) D5 d' s$ O (setq blist nil)- Y* w9 x1 I) G
(cond
: W4 @- h5 J3 K' n3 f8 F8 | ((> (boole 1 bptf 2) 0) ; polyline* ]# j& E* R2 n4 q; j3 |! d0 @
(repeat noe
. E, L- j; K* H1 z2 M! q: r+ B (setq ed1 (member (assoc 10 (cdr ed1)) ed1)). T% D0 ?! M" p" V7 a8 M1 T4 F: y! ?' w
(setq plist (append plist (list (trans (cdr (assoc 10 ed1)) ent 0) ))) ;;add trans by xiaocai! X" _+ ~' e# J) o8 j) [) D) s
(setq blist (append blist7 a+ a. x% b% _* p
(if (> bul 0)4 |' r1 j. {+ ^/ `2 e& e7 J, i ]
(list (cdr (assoc 42 ed1)))- B7 m3 a1 @2 B! y( G0 W
nil
+ I0 q, E, m, d* b# L. u )
- g$ M% V% D8 R! S" I )
2 H ~7 W2 K% r% x- v )" k% |* n3 k" t& ~: r3 C& t
)" a3 v& ?1 J8 I0 _5 O" y% {
(if A2k (progn
i6 E# K* ~/ Y) t% n# a (setq polypoints
/ _. d4 r% y, O5 K* M (apply 'append$ }* `. g8 f9 s
(mapcar '3dPoint->2dPoint plist)$ y8 K G1 J0 F: C' _+ S
)
3 X( f6 s& m. ~5 K* O6 }: G" t' _ )& `7 ?; T2 a# u8 \1 |
(setq VLADataPts (list->variantArray polypoints))8 S! N+ R* o0 C
(setq obj (vla-addLightweightPolyline space VLADataPts))
. R) J s% p% a: w: Q' l (setq nr 0)
8 l: O5 F& V5 U" z$ { (repeat (length blist)
& q( _& Z. Y- I" ~ r* D$ `( g2 E (if (/= (nth nr blist) 0)
+ q; u- @+ y2 R) S; } (vla-setBulge obj nr (nth nr blist))
+ K$ O5 l* c0 B$ f( b, ]; | ) E2 M$ C+ W* s& e
(setq nr (1+ nr))9 k* s5 B* @0 G. f5 n9 C x
)
C- f5 ]! Y4 Q6 M (if (= ic 1)
6 b6 [. ^3 ^# F (vla-put-closed obj T)2 }! T' S; X- i) k+ H* f
)- a3 S6 l' o+ U- O: f3 U9 ^
(if hl (vla-put-layer obj layer))/ a' O4 }: [2 X, S9 h' K2 D
)6 q1 K# P8 Y- F G& p
(progn3 e# }; A' v4 T) n7 m
(setq ne (append (list '(0 . "POLYLINE")) (list (cons 66 1))))
" A8 s- C5 H6 C \6 K, n4 n (if (= ic 1) (setq ne (append ne (list (cons 70 1)))))
2 x) O. Z5 o- g: @* z (if hl (setq ne (append ne (list (cons 8 layer)))))
7 E3 s Q1 w, y l6 b. ? (entmake ne). g" {- O0 x u: S- b" p. h2 L
(setq nr 0)2 l+ @7 c( E4 d' G
(repeat (length plist)! `- W" I0 }9 n% Y( M( y3 Q
(if (= bul 0)
/ D% v+ e) g* _1 Y9 b (entmake (list (cons 0 "VERTEX")
& I$ L/ [ [7 d i, ], o (cons 10 (trans (nth nr plist) ent 0) );;add trans by xiaocai4 j; n" P+ b4 a
)
; T5 y8 B3 i6 j8 X )
9 R3 }! } E# F (entmake (list (cons 0 "VERTEX")
' }/ H0 A# O: u$ i8 D( F' X (cons 10 (trans (nth nr plist) ent 0) );;add trans by xiaocai
8 k/ h& b, ~8 V# D (cons 42 (nth nr blist))( M/ t3 h; V& j. H
)
+ [# J6 D ?3 A1 u& C) N )5 X! }: h8 h9 C6 R4 v# |) E
): L) H* X& A) R. y" A
(setq nr (1+ nr))" L# O$ c- q( q8 N
)
$ a; V2 ? `4 {) D (entmake '((0 . "SEQEND")))3 @- W, @4 I: a* A7 U0 f
)2 Y8 ~7 H' B! w5 @5 m% z
)
( M% f. m: m- L( z6 R ); C. y1 H3 h# m0 f7 X7 b
(t ; not polyline
! z8 a- X7 a" X6 i: P. j. T- I# _: ` (setq lastent (entlast))) Q/ t( C8 L5 j7 c
(setq lwp T)
5 r0 t; D6 q9 F C2 J3 @' l' X# Q2 p (repeat noe9 c: L1 e, ]3 G% Q$ e" C
(setq et (cdr (assoc 72 ed1)))& \5 ^- R/ p, ]
(cond- |% r- A+ N# n- e# l& `
((= et 1) ; line
' Y* h, a) f2 R( f5 K. b# \0 B (setq ed1 (member (assoc 10 (cdr ed1)) ed1))4 q7 X7 o, o% y- k
(if A2k
5 Z, v& [' Q& E0 b (progn' w* o0 q/ m& r
(setq obj (vla-AddLine
% H9 j- ]+ I0 u- z& ]7 } space
6 c6 c) b; C, ] (vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) ) ;;add trans by xiaocai! ?( m7 K/ p- c0 T$ a
(vlax-3d-point (trans (cdr (assoc 11 ed1)) ent 0) ) ;;add trans by xiaocai
2 n$ ^: m2 b6 q5 P7 k2 F ))7 I, g( A1 T V, J/ L
(if hl (vla-put-layer obj layer))
7 E' T N" z) X7 u) p% I( K )- p1 r; B) t0 Q* \* V X
(progn
7 {* e6 J/ Q$ r5 _7 ]+ R (setq ne (append (list (cons 0 "LINE"))
8 L y8 ~+ U! {4 Z- q. a* ~ (list (list 10 (car (trans (cdr (assoc 10 ed1)) ent 0) ) (cadr (trans (cdr (assoc 10 - g# w' W o1 C9 J6 e# u/ e B
& B$ L6 @7 ~& g. z4 |
ed1)) ent 0)) 0)) ;;add trans by xiaocai5 U$ h* ^3 j; L W
(list (list 11 (car (trans (cdr (assoc 11 ed1)) ent 0) ) (cadr (trans (cdr (assoc 11 : z1 v0 v- i! n/ j0 j! Y, b
& R( ]8 A8 H4 a2 u3 |4 y
ed1)) ent 0)) 0)) ;;add trans by xiaocai
1 @- e6 ?8 x& f @ ;(cons 210 xv)
, Q/ Y" T \1 ]9 {5 Q )
7 [5 ?! [& A: P/ H' [- Y5 W3 \7 n )& L; m0 k3 V/ A% E9 \
(if hl (setq ne (append ne (list (cons 8 layer))))) J) x* ^6 m/ f
(entmake ne)( A% y" U* v2 F# p- D' T! A
)
: `& X2 u- v4 I- }, L1 A% X. O )
4 _( I6 n6 Z5 m4 q1 ^- h2 f (setq ed1 (cddr ed1))- I0 ^% E, n4 z5 b. r
)
9 e" f! m0 |5 E' W ((= et 2) ; circular arc
* f+ t' @; Y! ] (setq ed1 (member (assoc 10 (cdr ed1)) ed1))
1 ~6 W h- C3 D' ~- M (setq ang1 (cdr (assoc 50 ed1))); ~/ ~0 u+ V- l5 k
(setq ang2 (cdr (assoc 51 ed1)))
" |" _. N$ n% _* z (setq cw (cdr (assoc 73 ed1)))
" Q, i: j; J8 M+ q5 G (if (and (equal ang1 0 0.00001) (equal ang2 6.28319 0.00001))5 q8 K* ]* j- e
(progn
7 F3 C# v; j$ P: S) n% ^ (if A2k
2 d ~4 p% I' p (progn9 j; ~/ r! W S: X3 ?
(setq obj (vla-AddCircle, y9 N2 x$ s: ~1 |
space5 t1 _9 w0 @( V9 Z( J
(vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) )
5 F2 H( o, P0 b# ^ (cdr (assoc 40 ed1))8 x: F, x& [0 d+ n# p
))) i. m5 p$ s3 Y# ~
(if hl (vla-put-layer obj layer))
/ b/ L( I" ^# v# h6 U3 |7 t )
) U4 ^" J3 \$ Q (progn0 s9 \$ m- _- [ b a
(setq ne (append5 Y/ b8 B( j E" ` ^# h" \4 [
(list (cons 0 "CIRCLE"))* u9 c8 q" ~/ b
(list (cons 8 layer))
# A' Z8 S3 I& M Y( B (list (cons 10 (trans (cdr (assoc 10 ed1)) ent 0)));;;add trans by xiaocai
, n. u0 I2 d; _ (list (assoc 40 ed1))& s( A) @& l! y) g
)
$ M( m6 `% D7 ] )+ z$ k3 F8 X( }5 a2 e$ L
(if hl (setq ne (append ne (list (cons 8 layer)))))
% [! M! u$ q: K9 p5 K* @ (entmake ne)( T7 d% B$ d3 {$ u# |' t) m S% q
)
3 w% p1 ]0 ~7 B9 t- x )& s# }! L K% s! E) {8 ?
(setq lwp nil)
( W0 A+ r1 c6 L' @2 g ) W) n/ b) u7 _4 b9 A; W
(if A2k
# Y: Z; j% P R6 X/ d0 ]9 g1 h (progn
; d' r# U& r( i( M (setq obj (vla-AddArc
8 Z0 G- v$ L0 o" ^9 O8 S space' W: G7 Q8 w' c/ ^ }9 r9 l
(vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) );;;add trans by xiaocai
4 [9 w3 A1 e# q$ M (cdr (assoc 40 ed1))
9 Y6 l- y& a) |( z# M; U. H3 {9 C (if (= cw 0)6 E7 L, w Q- s8 U! Z/ t$ R
(- 0 ang2)7 f6 s: w5 ~/ [
ang1
4 n, j! g- u2 q4 J5 v )
" S" o4 d3 \1 I! ? (if (= cw 0)
* |. Q- T6 y2 W5 u4 ] (- 0 ang1)
8 q4 x( B% G7 y5 b! N0 A @* m ang20 I- K1 T7 f; o8 @0 y( X- s
)5 k7 p( @ ^9 _
)): g* h: O. Q! l* q
(if hl (vla-put-layer obj layer))
" Y7 R) S; O; e )( y. \) ^) A0 i/ O
(progn* \7 A' ~' W; Y0 w8 h: Y
(setq ne (append (list (cons 0 "ARC"))5 I1 c% ]: X }' j
(list (cons 10 (trans (cdr (assoc 10 ed1)) ent 0) ));;add trans by xiaocai
5 a8 ?/ H- D' W0 c2 t: h$ C (list (assoc 40 ed1))0 S# o& j7 z! c( G9 h) p( p; G
(list (cons 509 l8 B+ V5 K* A/ \7 v' i" ^# h( C
(if (= cw 0)
4 m% M2 Y7 q; a' ?7 R0 ~ (- 0 ang2)
]0 m" f( ^) v7 s) q; o5 i ang1/ [8 r; G* R8 g! |3 h" h& P
)
; V3 Y2 I5 t l- Q5 t$ K: G ))
2 c R e& n# [ (list (cons 512 f! }% X. i* M/ O* _. f0 ~7 P
(if (= cw 0)% w1 ?/ N2 T$ I
(- 0 ang1)
& R% c) j3 G: }4 |6 D- R" E ang2$ G$ j o9 ]/ Q4 ~: q" a
)* C( ~$ ?' I5 ~0 k' B% b2 r L
))
: Q1 C' j1 h* {; A )0 q. r& p6 T% |: z! I( z
)( ~3 ^) i4 M; C4 s) q& ]6 `* T$ ^
(if hl (setq ne (append ne (list (cons 8 layer)))))( O0 N0 J" H6 `5 Y A5 E
(entmake ne)
6 Q9 q' ^- N6 { v* t( T )
$ m: T9 W& @7 `: I5 O, r )
7 N9 k) R6 _$ Y6 A# I )1 g. f$ r# ~8 a9 v: \
(setq ed1 (cddddr ed1))
* r6 `$ Z }% e4 X ) T! Q x% C0 N+ d0 ]
((= et 3) ; elliptic arc
! F" L( s# I) j+ w* L3 T (setq ed1 (member (assoc 10 (cdr ed1)) ed1))) j7 ]' |6 O, |+ f- S
(setq ang1 (cdr (assoc 50 ed1)))3 s& Z" q) H3 u# K5 @
(setq ang2 (cdr (assoc 51 ed1)))
, t# _* C" }+ f/ R/ |1 g; J8 e (setq cw (cdr (assoc 73 ed1)))
3 x, \. j4 Y7 S% h' `& F (if A2k (progn
/ X. T' X2 S" S8 R6 H; \, i (setq obj (vla-AddEllipse! h4 J$ @8 L3 M8 l3 I) j1 s
space, ?! f' O& y [) ~8 r9 g
(vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) )
6 ?; a" t% A$ ?/ J; J; W (vlax-3d-point (trans (cdr (assoc 11 ed1)) ent 0) );;add trans by xiaocai
' p% q3 W/ V T# y; V S (cdr (assoc 40 ed1))5 ^! i' C; j5 z0 l& D
)
- d, n6 i+ a4 ] )% B& e) E' r, U& w# Y% U
(vla-put-startangle obj (if (= cw 0) (- 0 ang2) ang1))
! N2 p$ a% d/ S0 V! W" ]2 O (vla-put-endangle obj (if (= cw 0) (- 0 ang1) ang2))
k- ~0 R' g6 j/ w; b: {; W (if hl (vla-put-layer obj layer)), ?- ]+ D, }, p) F8 e
)
! O+ z: A7 S$ B (progn2 H5 H* V1 N/ l5 S
(princ "\nElliptic arc not supported!")( i0 V: X' g$ G4 I! g; }. n' ?
(setq noarea T)/ Z& m6 Y! K ]. N! `' U
)* R+ j! j0 R6 I" \
), \" u) T4 B. W: E4 N
(setq lwp nil)8 w# y# S4 @- l6 p3 s$ Z" w0 E
)6 }- s* c5 ?' z
((= et 4) ; spline
& k+ R) V. M* x. Q (setq ed1 (member (assoc 94 (cdr ed1)) ed1))& N" ^- M* U8 h; R7 z& V) r
(setq knot-list nil)
. ^- F- e# x6 Q' U (setq controlpoint-list nil)& z/ r7 u5 h* n6 g; U: m+ Q
(setq kn (cdr (assoc 95 ed1)))
" t" O# _0 t3 y" i* k$ e; A% F" q (setq cn (cdr (assoc 96 ed1)))4 J9 C' d& |6 Z9 O7 D% o
(setq pos (vl-position (assoc 40 ed1) ed1))( |+ S( y- `( h% l: e$ e
(repeat kn
+ h" w1 v: G$ @: A (setq knot-list (cons (cons 40 (cdr (nth pos ed1))) knot-list)): G8 K, `" ^! d+ c# b9 Y6 `) c) D8 T
(setq pos (1+ pos)) F N$ q$ k' T
)$ e6 m; P8 F( v( Q! [4 h8 R
(setq pos (vl-position (assoc 10 ed1) ed1))8 ]5 E0 e- G3 v# D. ~
(repeat cn6 v3 E' O3 m! A# K& K1 n
(setq controlpoint-list (cons (cons 10 (trans (cdr (nth pos ed1)) ent 0) ) controlpoint- ] H" e% V4 Y4 A; G' p
) Y8 y% `4 v+ O- n7 r. g
list));;add trans by xiaocai
' f' T$ l8 e# a (setq pos (1+ pos))7 x( b; R; g" t+ d% ?# L" D8 `. p; o6 j
)
: o( I- r/ d4 y; {1 j& {! l (setq knot-list (reverse knot-list))& w' u' i3 p4 d5 }& G4 ^
(setq controlpoint-list (reverse controlpoint-list))
. e5 q |8 ~* S" T2 H" R2 f (setq ne (append; V$ g, U* T% c' U' w; f
(list '(0 . "SPLINE"))
, j) W+ z0 Y) y" ~. T( S8 _( D4 \ (list (cons 100 "AcDbEntity"))7 x i1 E, \3 p- F
(list (cons 100 "AcDbSpline"))6 ]" d! w/ i- ~- [/ ~4 A+ P/ O
(list (cons 70 (+ 1 8 (* 2 (cdr (assoc 74 ed1))) (* 4 (cdr (assoc 73 ed1))))))$ |6 G# a5 Z Z
(list (cons 71 (cdr (assoc 94 ed1))))
* @% K" V7 k+ S) J (list (cons 72 kn))
2 L7 b% ^: g0 i1 K- U (list (cons 73 cn))
" \0 O5 V; `7 L# R$ Q knot-list9 ?8 c7 a+ N; \4 T% \9 h
controlpoint-list7 v$ U1 L0 g. ^3 ^8 l* Q
)
0 n; K# m* l: O, y. Y )
- O& y% w; {( m1 Z+ X. W" J; _( t (if hl (setq ne (append ne (cons 8 layer)))), D4 h' w. z# v! O& t# b
(entmake ne)8 }: m3 P7 x9 z! e7 i4 `1 Y( q: `
(setq ed1 (member (assoc 10 ed1) ed1))% F/ G3 S4 C! d' D; e6 u
(setq lwp nil)& c$ F) |" ]1 p! T8 {1 v9 W- g5 b
)
; p8 B* T! s5 Q! l ) ; end cond
6 s# {- c6 _5 j: M X ) ; end repeat noe
% }3 O G4 Q3 P) g0 w (if lwp (progn+ s# [! L) N+ G" V
(setq en1 (entnext lastent))
, {4 B7 f) _4 V7 H* L$ n& B/ E (setq ss (ssadd))
' W7 K3 c9 ~" o% R5 x (ssadd en1 ss)
. C) G' {9 @$ U2 ]. Y# e1 D q (while (setq en2 (entnext en1))
% m' J% b2 @/ G3 Q (ssadd en2 ss)
6 R: x! I2 W+ @' X) v0 D0 F (setq en1 en2)8 J. Q% C7 a B9 l
)
, k5 d, z0 J* h" z" y' }2 H (if (= (getvar "peditaccept") 1): c5 [5 b+ o& k$ I
(command "_.pedit" (entlast) "_J" ss "" "")
$ E+ e( m0 @1 w& D$ A* n# J- l$ h (command "_.pedit" (entlast) "_Y" "_J" ss "" "")
$ i/ `7 H# O$ B+ D/ T. R )/ t9 D) a; d7 v- B& a
))
1 \& k3 P# o0 e" u
& u4 H& d" T: ^8 F ) ; end t/ G2 ?& \1 n+ B
) ; end cond
# V* L4 N: }9 t; T$ A- j$ }5 L+ W# |; Tries to get the area on islands but it's not clear how to know if an island is filled or not" k( C+ R6 Q- W, m7 e/ q1 s
; and if it should be substracted or added to the total area.4 Q& r* p3 l) ]9 g# X8 V2 K
; (if (or (= bot 0) (= (boole 1 bot 1) 1)) (setq area (+ area (areaOfObject (entlast)))))* a* P) p$ j! |: K4 z# ]0 |- i$ ^
; (if (and (/= hst 1) (/= bot 0) (= (boole 1 bot 1) 0)) (setq area (- area (areaOfObject (entlast)))))
* Q& u3 }; Q& z5 i& [8 |; (princ "\n") (princ bot) (princ "\n") (princ hst) (princ "\n")1 \; H$ f" Z% B4 P
; (princ (areaOfObject (entlast)))
& A) A) a3 w" H) G$ T ) ; end repeat loops1
* R8 C+ c, U3 i1 a- f; V (if (and (= noarea nil) (= loops1 1)) (setq area (+ area (areaOfObject (entlast)))) (setq bMoreLoops T))0 E8 w8 ~+ X/ Q( H# q, U
(setq i (1+ i)), J! i8 r1 F* ?4 T& |+ L8 o
)2 Q# U# F( J" c& \* l$ E
)' W' @. Y' n" R, v4 r
)$ ` n" o0 @. @
(setq ss2 nil)
; g: f- [9 W' X7 ^ (if (and area (not bMoreLoops)) (progn6 o" h. R! B' s/ a- r3 e
(princ "\nTotal Area = ")
& [ h0 u) O# v H (princ area)0 o$ c7 K0 T# c+ ~* x
))
/ N: A" k6 U: }: T4 u$ {0 v (restore)
8 ~# }3 k6 S1 B \ (princ)- R- |3 c. H" Q" Y/ q
){\rtf1}' Z) W/ q V1 @7 Z8 K; B N/ |
9 q# z% E. F2 h/ X# h(defun C:BN ()4 {- T0 K' d3 w/ E# H5 D7 x
(princ "\nAdd block name to drawing.")
- i8 ?) `8 E$ R; L ^ (setq pt(cadr(entsel"\nSelect Block:")))
) o7 K+ u( I. c6 H (setq e1(ssget pt)) # l: ^2 P# z, E1 }
(setq e2 (entget (ssname e1 0)))1 x- D$ ~* o4 {# ^
(setq blname (cdr(assoc 2 e2)))+ Q; ^% n% h9 \; C% \
(setq pt1 (getpoint"\nSelect point for block title:"))
5 W5 Y9 \! I( Y- v9 O2 _& }- { (command "text" "c" pt1 "" blname))
' W2 Z) }1 a! ?, V5 e! F(princ "\nType BN to execute)
# |3 [0 z- T2 {3 u" B�32
- x& R- ~. r+ P( H6 _- y5 z4 a2 r# L7 E/ c' }" Q8 c5 N
2 R* s5 L% Y" E& K I |
-
2025-04-21 Plot.jpg
(70.6 KB, Lượt tải về: 358)
-
2025-04-21 Text Style.jpg
(42.87 KB, Lượt tải về: 339)
-
2025-04-21 Layer.jpg
(26.81 KB, Lượt tải về: 347)
-
2025-04-21 AutoCAD Message.jpg
(8.58 KB, Lượt tải về: 339)
-
Screenshot_20220406-091212_Facebook.jpg
(306.88 KB, Lượt tải về: 335)
-
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để G.jpg
(249.66 KB, Lượt tải về: 360)
-
Untitled-1 Da Xong Trump Putin 0 Hoi Xong Chua copy.jpg
(299.44 KB, Lượt tải về: 336)
-
-
RUN-2000.zip
1.11 MB, Lượt tải về: 5, Tải điểm: Thưởng -2 điểm
Zip
-
-
0st RUN-2000.zip
2.02 MB, Lượt tải về: 1, Tải điểm: Thưởng -2 điểm
Zip
|