|
|
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">0 D/ ?- x4 W+ k' ]4 ^
Sao chép mã ********************************************************************************
- L7 o- _; b( ~* ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *2 T& N M, n# G9 J6 M9 |
* Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 */ c7 N1 b8 r% _8 U
* Suu tam & Soan *
: t1 o# x3 n7 v: s+ L7 O& v********************************************************************************; e# o. G6 R) N% j* c& ~
' e' v2 B2 Q4 y& Q8 V1 `- v; Next available MSG number is 1048 x/ ?; h6 [) ~! K
; MODULE_ID ACAD2000doc_LSP_% v6 F; p) d1 i2 [) b
;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 20001 r6 v6 N' r# ?' l
;;;" V- f: h( v+ Q# @' z
;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.
, A" z& m! f6 p4 z: w2 c' n;;;
- U, |5 c9 I2 X* q- P;;; Permission to use, copy, modify, and distribute this software! N8 N5 O9 V; C6 U+ ^" l
;;; for any purpose and without fee is hereby granted, provided
4 q) `# W" g9 b( u;;; that the above copyright notice appears in all copies and
\' N$ [* o; ]" H4 W8 `6 K;;; that both that copyright notice and the limited warranty and
) w, [5 ~8 `/ I* e: @2 |, y* P6 L;;; restricted rights notice below appear in all supporting5 `; @# m% H( W& r8 `
;;; documentation.3 h& \4 q, A5 O; O) R
;;;) O$ f: n8 [5 Z) Z: g
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
5 q! d I* _7 M+ v;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF% [4 n( v/ `5 O
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
9 [. H5 u0 J7 O8 L+ E9 H) A' z;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
: S( k& U4 H3 A9 P! H; V6 s/ Y;;; UNINTERRUPTED OR ERROR FREE.
5 I, P* {- c/ r, H* Z6 i9 V;;;
% S. v' e& T# D, ^8 Y8 p# N0 c2 |;;; Use, duplication, or disclosure by the U.S. Government is subject to, i8 w( o9 |; D$ y
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
7 I) V$ F. y3 [0 u;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) # N. m3 O% i9 V) b
;;; (Rights in Technical Data and Computer Software), as applicable.* S8 m* f0 o) Q; u# U8 x) D. b
;;;
" U# _+ Y" B3 b- a( Q;;;. G& t: T9 l9 P( h3 A# V. T
;;;1 Q+ W! w {! c/ d7 J
;;; Note:
8 Q5 {0 Q8 r* s% h* m; i1 k;;; This file is loaded automatically by AutoCAD every time # T- C! Z' g9 i w6 m
;;; a drawing is opened. It establishes an autoloader and
/ q3 @& D8 d3 v5 p8 h;;; other utility functions.
( i8 c% k7 H" k/ s6 k;;;1 j/ R# u+ E8 D+ W! R0 l. z
;;; Globalization Note:
4 ^0 J k* N- C1 D2 j;;; We do not support autoloading applications by the native 5 T* g) P. D1 ]# J* H' D# }/ I( t
;;; language command call (e.g. with the leading underscore
3 v1 U, }1 @. w$ I7 e8 L;;; mechanism.)! w7 S* b3 x; r1 _( J3 R5 C
; i, i' h7 Z& ?8 w2 {+ Q- w
, R/ G. l. z u- h( N9 F;;;===== Raster Image Support for Clipboard Paste Special =====
' K0 U0 L, N8 o& J5 i% c;;
: V; L" e7 A3 C Q/ L;; IMAGEFILE* B8 K2 k" L! U. \5 I5 O
;;
2 T, S# c& B' N& D {/ Y9 j;; Allow the IMAGE command to accept an image file name without1 J" l# `4 ~ o m6 L
;; presenting the file dialog, even if filedia is on.
( K$ w( M2 X7 `# f- M- \;; Example: (imagefile "c:/images/house.bmp")
. F3 S3 t5 |, ]' v;;
8 M1 j4 m* z. t2 O: M, ^(defun imagefile (filename / filedia-save cmdecho-save)
, _* j" W: M) z" t$ o' p" \" ]* j- q (setq filedia-save (getvar "FILEDIA"))
% Q. o& F) r7 B N (setq cmdecho-save (getvar "CMDECHO"))2 L; l9 T4 R+ }- Y7 X
(setvar "FILEDIA" 0)
b$ ~# ^8 G* U; a* L (setvar "CMDECHO" 0)
- O$ o' ^ j2 N: \% j# j- o" k% p3 { (command "_.-image" "_attach" filename)2 F1 E* j9 c8 A5 T/ B( W7 v
(setvar "FILEDIA" filedia-save)7 A& @1 ?9 \7 u& f9 F+ s
(setvar "CMDECHO" cmdecho-save)
3 m* } f# W1 I' G- U: `! N8 k (princ)$ u* R+ n: u7 `/ m6 j) }
), g1 Z8 ^" O1 g: Y# H0 n; g
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1 t8 v* q0 f0 q1 X- Q; Next available MSG number is 11 % @' c- O" Y' `9 i
; MODULE_ID DDVPOINT_LSP_
) ^0 d7 D I4 s5 j. B;;;$ T7 {' e5 Z1 _( {, H8 N0 e
;;; ddvpoint.lsp3 p! x0 u' @% C# R0 X7 ^0 v) K
;;;* L8 e1 Z5 x+ Z3 {* z/ ^0 B
;;; Copyright 1992,1994,1996-1998 by Autodesk, Inc.
1 \, n+ t$ i& D' P;;;
1 O; ^6 _/ r% | |9 ^;;; Permission to use, copy, modify, and distribute this software
0 Q+ q' a0 U/ R7 U# }) D/ m! w;;; for any purpose and without fee is hereby granted, provided
: e1 l1 V# `6 i+ \;;; that the above copyright notice appears in all copies and
2 h; g+ j/ t# k" T2 `! W6 I;;; that both that copyright notice and the limited warranty and! @7 M$ I0 m2 P3 F# ]
;;; restricted rights notice below appear in all supporting* b& L& J& L9 I) z. ?$ H2 }! i6 a0 s
;;; documentation.
0 F! q% r8 `6 G1 v7 q$ L) n;;;# x, _2 {4 N. ~9 ]; l" m
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
/ J' c/ q8 S5 M& i% f) Q;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF& J; s* B p }7 ]2 S
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
; G8 @' n& ^9 a% W _4 W;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE" P! v3 M( {6 y3 N9 k. ^. \
;;; UNINTERRUPTED OR ERROR FREE.; O5 {- s6 ^$ @( V8 c9 O4 F6 t. y6 A
;;;
' e2 h* o, [' c0 J' A3 f" g;;; Use, duplication, or disclosure by the U.S. Government is subject to
9 h$ U: e' ]: `, G& s) y9 A;;; restrictions set forth in FAR 52.227-19 (Commercial Computer" O8 I6 P3 s0 ?7 }0 K4 J4 z0 ~
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
( P9 f5 Y8 ~' t. U; G: }7 w;;; (Rights in Technical Data and Computer Software), as applicable." Z3 b' z3 K1 J# U6 @) s
;;;, w' A" u1 [3 B1 _1 a1 @5 o
;;;.
+ S- r" J4 m2 C4 V( P) U;;; C DVPOINT - 3D Viewpoint presets dialog.' b* z3 v! O/ }, [' o% {( p2 r( R
;;;0 V6 k. g/ h. a! i4 f4 A F0 d
;;; Uses DDVPOINT.DCL for the dialog definition.
% h' s* h1 m7 o' \; H0 n; Y, _$ l;;; The slide image is in ACAD.SLB.
. v: ?- S* w$ f" Z, M;;;5 U6 h5 v# _+ m- N/ N+ F, L$ \
;;; ===================== load-time error checking ============================5 B# D! }" S! @# n! E# @& z
;;;
! O7 s6 D7 o2 ?3 t) v
( v/ q6 z* l$ N" O/ n1 u (defun ai_abort (app msg)
! c7 P+ H h2 H (defun *error* (s); P% y/ h6 r. d/ [) W* a
(if old_error (setq *error* old_error))6 Z+ W# ^7 G' r
(princ)* b" |/ m( a* Z; I
)8 p3 c: @+ m9 V, y# Z/ P4 B0 D
(if msg
0 D, R! S" p; G8 b4 l (alert (strcat " Application error: "
! |( I# W Y$ X @! o! g" P* W9 J" t2 E1 A app# M, Z1 z8 a7 V' \+ X% s6 e. p
" \n\n "
, Q! W# w8 D" c9 u" t msg. K. P* j+ v2 I1 \& M
" \n"
: Q4 `& U2 h7 {5 ?# | )
: {1 O3 H+ d+ ? )
4 t y7 Y; _3 S1 d5 G7 }" z! d )! I$ d+ q( \3 x# L4 k
(exit)0 a& L% Q( t$ V: L$ f' V3 O
)/ ]' |5 B- R! l0 ]* ^1 v! @
9 F' O6 t5 _8 u- K o6 F
;;; Check to see if AI_UTILS is loaded, If not, try to find it,
$ r9 |# I1 W6 v9 g% ^6 {;;; and then try to load it.
# [7 F6 s! w& |' };;;9 z. f; ?# e- ] x0 [/ N& S# m
;;; If it can't be found or it can't be loaded, then abort the+ |8 c# L9 ^. H) Q, K# T9 F7 y
;;; loading of this file immediately, preserving the (autoload)
! j6 N% s' W) G' ~2 |# D/ F;;; stub function.. u6 h. n7 L% z
; l* M& T7 _( L- r1 {4 |; w (cond9 B0 c x: M3 e
( (and ai_dcl (listp ai_dcl))) ; it's already loaded./ a) q5 l5 h2 ~+ P3 d
5 m; U5 {* u, R ( (not (findfile "ai_utils.lsp")) ; find it
* q& r* M$ v! k% j (ai_abort "DDVPOINT"! f8 A. Z5 X3 z) Z/ N
(strcat "Can't locate file AI_UTILS.LSP."
1 z F. r/ U0 r3 D" O8 Q "\n Check support directory."))): \/ `5 \- y$ _0 R
% o( v) B5 N! \! C* w9 g ( (eq "failed" (load "ai_utils" "failed")) ; load it
N! D+ n2 t) C (ai_abort "DDVPOINT" "Can't load file AI_UTILS.LSP"))
3 ~1 n& f+ o v' [3 I& P3 i9 L2 K )/ a2 R2 ?" F8 g7 g/ A! I5 t/ C; g/ Q
& O, I3 c) I, e& x1 N$ T- t' V
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
' E0 t# h8 ]1 {. I" L' b: J (ai_abort "DDVPOINT" nil) ; a Nil <msg> supresses
$ _' l! @, f z ) ; ai_abort's alert box dialog.0 g+ Z$ Q, H2 e: N: S1 w3 d
9 X: R7 ?$ J! r" i6 |( x! o; A! D$ d
;;; ==================== end load-time operations ===========================+ R" ~, g( _; K. W+ F3 [/ I; T
: K+ A0 x/ u% E5 Z& O% v1 \2 [, K
(defun ai_ddvp_start ( / image_x image_y image_h slide_x slide_y slide_h program)& m: ?8 a5 ]# w7 x
;; Get program name
! s, b Z1 \5 {" |6 i (if (not (setq program (getvar "program")))! I! l1 _) ^4 F5 ^; }4 D
(setq program "acad")
1 a2 L3 O, T: B9 H# q. K4 k. x/ U )
; l$ K0 G! Q# B5 \$ R; B (start_image "ddvp_image")) ], `/ t; P$ Q* _9 @
(slide_image
6 Y4 P) ?7 i+ Y) r; Y 0 0
( t3 ?3 d$ n5 F (- (setq image_x (dimx_tile "ddvp_image")) 1)
; O/ }' u* @% f! p6 p7 q2 O (- (setq image_y (dimy_tile "ddvp_image")) 1): ]- P1 B4 I0 f8 t% ]. l
(strcat program "(ddvp3d)")
2 [; E* u( ?1 z& a )
' y6 E. U/ j' ]0 _ (end_image)
& g$ ~- h/ K( T O% `" R# {& c (setq
& f* _, X: r: V: [* y9 X! E& W3 Y6 _, e image_x (float image_x)
; D4 ?2 a4 r3 Q1 ~' U/ C image_y (float image_y)
( p9 ]/ F2 o# O- d" g7 X slide_x 12.42654 X- B4 e* i* g2 m
slide_y 9.0
' @& |& ~- r( K) X/ T image_h (/ image_x image_y)
" F. _3 O2 M0 ~ slide_h (/ slide_x slide_y)
: a! ?. C. u$ j )% k$ ?, E4 ]' ]' Q: v4 N
(if (< slide_h image_h) K% O( m/ b) e5 M, o/ g
(setq slide_y image_y
* {0 ]- L6 L5 u* l9 M slide_x (* slide_y slide_h)
$ G9 S+ I- e& Z8 D8 t; Z; A# [ ); Z# D% [* H7 I. Q7 q E" W( l
(setq slide_x image_x7 Z9 f- H. n4 i/ ~' q# ?" s' Z
slide_y2 (* slide_y (/ image_x 12.4625))$ p; }- ^# }; i8 r% }
image_y2 (/ image_y slide_y2)
: ]) p0 D$ a0 d/ g slide_y (* slide_y2 image_y2)
+ L1 S6 W! o- \: D6 m$ @/ X( V7 x7 {* |$ Y, D' Z
)
# t, V) Y5 I* |" A )
4 d0 Z/ W0 y5 F1 x2 L, l/ n4 b2 ] (setq ai_ddvp_bx (fix (* 0.295 slide_x))
' A6 l& e9 G3 l+ c& r# ^2 O ai_ddvp_ax (fix (* 0.65 slide_x))
; v! X2 N$ D, S0 s5 W( [7 `7 t1 i ai_ddvp_by (fix (* 0.4875 slide_y))
" ?3 F8 I. T' @' \) {7 S% ~7 x )) T0 _6 m2 K9 ?4 H) a
)
/ |/ T. R `1 e( ^1 [- D
& s" m0 X0 R/ u(defun ai_rtd (arg)/ E5 S: R' K% b5 U# j; X
(/ (* arg 180.0) pi)+ ?* ]# D9 d# Y) X6 n
)7 k: w8 x% ^4 v" n9 N' D8 F
* U6 t8 D0 U r# @% ^( R. }' v
(defun ai_dtr (arg)
$ m3 e; o+ ~6 k" s (* pi (/ arg 180.0))
& _$ ~! Q7 u8 h( e; E4 k)3 |/ d2 a5 O. s: Y2 L4 l' H, ^
! v. ~+ D. R3 Z4 T3 M3 r
(defun ai_ang3dv (v1 v2)7 T& J( M, \& x3 S0 A
(if (not (equal v1 v2 1e-12))
* x: ]) M6 [6 W1 C# g (ai_arccos5 R; u8 D; ^) Y0 U, `
(/ (ai_dotp v1 v2): ^+ C" p( C s0 i
(* (sqrt (ai_dotp v1 v1))
. W X2 ?9 s$ O! A( C8 _# D (sqrt (ai_dotp v2 v2))
0 e: A2 l" [( E# ^9 F! B- A. ?* | )
$ ]$ J* q6 O) u+ }1 z" ? )
2 O! Z2 S- w5 g; z; i ). k0 j+ W+ p0 b% J
(eval '0.0)( z7 U) ]: o( K! G( l8 r
)
7 r R+ m/ m1 V1 [)& S7 ^6 E- h$ M* y) v% a
2 d9 F! m7 w2 T' j' Y
(defun ai_arccos (ang)7 a/ {+ N% z$ }2 ]
(if (not (equal ang 1.0 1e-06))
; }& _- I( m# f8 f8 Z& ~ (if (not (equal ang -1.0 1e-06))/ ~7 ^1 l# F! r. c2 J
(atan (sqrt (- 1.0 (expt ang 2.0))) ang)2 m) z# I( w1 z) _! @
(eval pi)- D; t) |. k6 R+ h/ Q" D
); E2 `* O Z! Y' v
(eval '0.0)
# N* [) [' ?, M5 w5 D+ L( N )
3 k; c5 [( [7 b)) l- a6 i9 U" A7 I
2 H2 K- s }; U
(defun ai_dotp (v1 v2)2 R8 h$ I$ G& \- W' o
(+
% m4 N! y0 O+ M/ e3 u (* (car v1) (car v2))9 ^( ~5 y( ?' r) i' n
(* (cadr v1) (cadr v2))% l. V, @2 D$ ]9 q+ f' t
(* (caddr v1) (caddr v2))
7 ]6 X" K- A% P0 c) J4 s )
- n* u0 Z9 v% K. V7 K)
1 E; { j- S; ?3 v
' X4 J9 [. K$ i: h! n8 V4 b(defun ai_ddvp_do ()5 D/ K1 \ R6 g" [/ N6 @
(if (or (>= ai_ddvp_b_curr 360.0)0 H" p k. C( {- d$ r
(< ai_ddvp_b_curr 0.0)
0 ?- S! L( ]' a' W (null ai_ddvp_b_curr)3 ?0 ?, l0 ^% N2 A9 @
)
; \2 s) W0 D. Y, }- S* h0 k9 { (progn
& \" G4 M% s" r. G% e" e( k' P (ai_ddvp_drx ai_ddvp_b_last ai_ddvp_bx 0)) U. d2 g. d- T$ U1 n+ ?9 N& Y
(ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 1)& a6 s: E4 y1 ^% G q
(mode_tile "ddvp_val_x" 2)* h3 v% d$ x# q3 f
(set_tile "error" "Invalid angle from X axis.")$ x! p, H# W% W
)
1 a. V2 ^. q0 P# q (if (or (> ai_ddvp_a_curr 90.0)3 k' p, {! t% G
(< ai_ddvp_a_curr -90.0)
: k8 ~& m7 C5 f/ f% E; y (null ai_ddvp_a_curr)+ q) G4 n- A Q6 p, ?8 K
)
D1 _; l0 C) f+ [ (progn
. Y% q+ d$ h+ M9 n9 D (ai_ddvp_drx ai_ddvp_a_last ai_ddvp_ax 0)9 m: A( O% T- V$ y) \
(ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 1)
9 W! y, p; s, N3 Z (mode_tile "ddvp_val_xyp" 2)
+ q2 C# a, n: \2 N. }/ x (set_tile "error" "Invalid angle from XY plane.")
. ?4 d8 k4 Y7 c4 F& i6 y )
* E5 K4 E$ N) l) p (done_dialog 1)
' H, S0 r0 S/ z, M! G6 W )1 X& x5 v! x! X; D; q+ I
) E7 c2 r# \, x1 s$ ^
), u# O, t6 L9 |5 d" V# z9 {2 l) M4 L
2 \ U& h6 s `" C, ~# \0 A
(defun ai_ddvp_set_a (ang). B% e7 ?3 J" t
(setq ai_ddvp_a_curr ang)
; { j3 x6 U6 o8 W9 B5 l, _ (if (or (> ang 90.0)
+ q: x. \' o- N* _; `* }/ s7 H (< ang -90.0)
, E" E7 z5 L4 n( P& ]5 x- y2 _* [, Z* r (null ang)
! n' q/ q9 o9 E2 H5 | )
: O& g. ]3 d: e0 r5 x+ [ (progn
. h% D6 m* f4 G x- l (ai_ddvp_drx ai_ddvp_a_last ai_ddvp_ax 0)
- |5 k- [: L- x, j7 N; h8 u (ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 1)
6 l \2 r7 {2 {. ^5 o1 x& h. R (set_tile "error" "Invalid angle from XY plane.")
, ]5 @- K: V5 F& O; j9 n )
" L: j7 `. z3 u (progn8 Z# Z; Q! e4 ^3 `9 O7 @
(set_tile "error" "")
) r' Q; B6 Z" r6 U/ b (ai_ddvp_drx ai_ddvp_a_last ai_ddvp_ax 0)
$ V3 k6 e2 B/ z. V4 a& N! v (setq ai_ddvp_a_last ai_ddvp_a_curr ai_ddvp_t T)6 ~. ?+ j; H0 F. u
(set_tile "ddvp_val_xyp" (rtos ai_ddvp_a_curr 2 1))
* s. {2 `. e$ j% R (ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 1)) b W! r1 e/ k* s. C
(ai_ddvp_drx ai_ddvp_a_curr ai_ddvp_ax 7); |0 J2 a8 G* x6 d& V( `6 F4 e
). j8 `) x% X) x, \
); J3 R7 p! f% r9 I
)( c8 C$ A6 ^" `# Q
; {+ S; [5 I: @5 ^& Y# \2 ]
(defun ai_ddvp_set_b (ang)
* M6 h6 C5 Y. ^) p (setq ai_ddvp_b_curr ang)
G8 f$ y# Q& }+ w% Q% T (if (or (>= ang 360.0)5 ?& j: P' E& w% N) q& E
(< ang 0.0)
' _4 n5 |4 \# l$ ?6 s7 V! }! P (null ang)3 W/ r4 T3 _1 y" ^" R$ r
)
' P* q- l# o# |6 O7 B (progn) v6 U" C: M5 Y4 f" R4 |
(ai_ddvp_drx ai_ddvp_b_last ai_ddvp_bx 0)& \& |/ u) b9 t# F
(ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 1)
# o+ L' P) {, p: } (set_tile "error" "Invalid angle from X axis."). V: w: H1 g# \! [( Y
): _; s# b6 q+ g8 ^
(progn
6 k; t* d" E% ]: [ (set_tile "error" "")
8 F1 h* |# L' ~8 \ (ai_ddvp_drx ai_ddvp_b_last ai_ddvp_bx 0). C1 Q# }9 P9 _1 `2 X \1 [
(if (= ang 360.0)
: W9 o9 ]6 Q. T (setq ai_ddvp_b_curr 0.0
1 t( r y8 I+ u4 W) d" z8 W% n/ Z ai_ddvp_a_curr 90.0 : Y: h+ B6 O7 X) R1 _* p V. J
ai_ddvp_p T
* }# E0 |2 t; g5 t b3 V2 Y+ Y6 a ai_ddvp_b_last ai_ddvp_b_curr
( y' N: i' K9 O9 h4 a' X" F% o% J4 ? )
9 F9 _0 r/ J& l6 G (setq ai_ddvp_b_last ai_ddvp_b_curr ai_ddvp_t T)( C l; {8 v; z, c
)
* M3 ~ H8 H. T (set_tile "ddvp_val_x" (rtos ai_ddvp_b_curr 2 1))0 h. U [- ?. l
(ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 1)+ x2 \/ d* x. Q: W) G* I" S
(ai_ddvp_drx ai_ddvp_b_curr ai_ddvp_bx 7)
0 ]0 w0 U5 O% [9 O% w+ Y )
- y3 [* t: ^7 T' \/ `5 } )( T: f6 {8 n! J2 a4 @
)
0 d" V" c6 k! t3 b/ U: M. c. D
* u8 ?- R3 O4 A7 \- A(defun ai_ddvp_drx (ang x1 col / a x2 y2) D6 ]+ I3 F) Y- M* Y' N; L5 [
(setq a (polar (list 0.0 0.0) , s! F2 n$ k* s- V0 k) y
(- (* 2.0 pi) (ai_dtr ang))
) W$ Y& j G& U W$ j& L9 w 25.0" A$ t/ }' F( o* i/ K" R- ?
)
$ l6 @/ r9 M0 ` x2 (+ x1 (fix (car a))); n7 j6 x* d x9 |
y2 (+ ai_ddvp_by (fix (cadr a)))
% b" S" Q# R/ E )
4 N! w8 s- ~; j* o1 D3 e9 L, B (start_image "ddvp_image")
& J- ^) b. a" P1 N* `4 k7 E (vector_image x1 ai_ddvp_by x2 y2 col)$ N. T/ Z1 v r5 V
(end_image)& S8 {0 q) u$ W1 N6 ]9 s- Z. V
)" x8 T9 }9 t, R# c% X/ q, W* t4 [, W& B
6 ], ^" Y1 D. o
(defun ai_ddvp_image (x y / ang1 ang2 list_xy list_axby list_bxby)# t* J& j( N$ X% m' b
(setq list_xy (list x y)9 \) d& }- w- a) o5 C) v
list_axby (list ai_ddvp_ax ai_ddvp_by)
6 w$ D' W' x* _/ [ list_bxby (list ai_ddvp_bx ai_ddvp_by)! {8 y9 H: |1 Q3 v4 ~' F, Y9 A
)
# J$ Q) q% f+ L1 [8 C, q$ e3 T; p$ ]0 c (if (> x (- ai_ddvp_ax 1))6 f8 p8 c" o1 x, u" E
(progn( ~ X1 t( m [2 }
(setq ang1 (ai_rtd (- (* 2.0 pi) (angle list_xy list_axby))))
7 W8 q7 J6 K4 D# U/ v$ d (if (< 90.0 ang1)
) Z( {* X/ X' d' c5 h (setq ang1 (- ang1 180.0))
) I4 l- v: R+ ^' R! K! F2 U )
2 n [& |0 o% y! O( C (if (< (distance list_xy list_axby) 40)
, z' N9 p; _" P+ \5 K (ai_ddvp_set_a ang1)
' d M# E& B3 l& L2 e5 C (if (< (distance list_xy list_axby) 84)' o+ Q( W$ S! ]6 K# c% ]* |! {
(cond ((= ang1 0.0)
0 n# L: L+ W- c% L (ai_ddvp_set_a 0.0)
t7 v5 w4 s1 Q* U4 D- h )
' K' _5 \2 @# c4 v ((< ang1 -72.0)
0 S! V* B/ Z% g+ }* S6 X. \- K (ai_ddvp_set_a -90.0)
# x" r* b/ Y: f [ ): t; m& g8 g# V% Q' ^
((< ang1 -53.0)! J$ d9 ~. N' k( V
(ai_ddvp_set_a -60.0). _# b7 m6 j# f% J z
)( Q0 Y- d3 Z- L: K# j
((< ang1 -38.0)
! h3 o3 O6 x D (ai_ddvp_set_a -45.0)1 {' t6 ?, n3 y2 I
). b, i) N. C3 W1 V8 s; ~
((< ang1 -20.0)
7 F9 f# z' ?% R* ^. `1 a7 v7 O (ai_ddvp_set_a -30.0)8 [' d: G& Z& f& l" Z9 z
)
, [0 o, k' L& f. M! t; u& B' S: U ((< ang1 -6.0)
5 \3 M( s) k @) [& p (ai_ddvp_set_a -10.0)% }& ~3 _" [3 d; g7 L3 g
). e, I% a2 L. ?% ?0 Q" c8 b! f* v8 {
((< ang1 6.0) e/ J. L/ q( o. o
(ai_ddvp_set_a 0.0)
( {$ q+ J( N# s )
0 n$ _ D. I' l9 C ((< ang1 20.0)
8 L* X+ X; J2 `1 a' M (ai_ddvp_set_a 10.0)
1 i& o2 F" L' Z. h% ~+ D )4 ` T2 L& f' @% ?5 B
((< ang1 38.0)
' F; h' X6 I- c5 e (ai_ddvp_set_a 30.0)
9 b/ V4 ]$ R( q: D- ]% c$ |- }! L4 R& O )
& w2 ^5 o7 e4 ^9 A ((< ang1 53.0)
9 x) f& B! f1 \8 K `1 l& d (ai_ddvp_set_a 45.0)3 b" R' g$ H9 N
)* Y9 W9 u1 X" k' O+ R8 `
((< ang1 72.0): k, L7 A+ D/ [6 K4 G. Y
(ai_ddvp_set_a 60.0)% s2 z- `5 U) _ H4 U- E8 b
)6 D4 e. Q5 l$ { o* \ B
(T. X( p3 D' i; }7 c
(ai_ddvp_set_a 90.0)/ f1 W: x2 \* v) y. r' Y. y
)
/ E9 @9 a1 u7 B0 S )
4 K6 ]9 i. e U1 \2 u )
- B- Y1 t- N6 I! ?$ S9 X' s )
& {% ] X! a1 G, m+ U$ n2 x7 | )
/ b- K/ {6 [& C$ b: i (progn
9 e: H4 i: o# O' k4 o3 _. J (setq ang2 (ai_rtd (+ pi (- (* 2.0 pi) (angle list_xy list_bxby)))))
, D5 v9 ~* ^4 I# t% E (if (< 360.0 ang2)4 y ?9 e3 n3 b" }
(setq ang2 (- ang2 360.0))
7 V- C6 U9 b8 ]2 D* @0 ^( j )" d0 s5 D5 U# V8 z
(if (< (distance list_xy list_bxby) 40)1 ~/ _) c' x2 _
(ai_ddvp_set_b ang2)
0 h/ q5 T" Y: c1 a) z! o6 M. k9 \ (cond ((= ang2 0.0)1 c0 f3 J3 a. K2 K" ~
(ai_ddvp_set_b 0.0)
6 v C v" q" w, E7 V, u$ A' s )
1 Y: U& D2 x6 c6 T- X$ z) j ((< ang2 22.5)* D* ?/ W: k' w
(ai_ddvp_set_b 0.0)' D$ `- J2 C) O- C! B7 ?7 ?; X
)) p3 A, Q6 @$ c6 F$ [* O, m
((< ang2 67.5)5 w0 @' T3 V, z& U* D8 c- z6 c
(ai_ddvp_set_b 45.0)8 J$ o- L9 Z$ T8 U% d% Z
)5 E8 j7 w% U5 p
((< ang2 112.5)4 T3 l5 Y/ [8 _1 G# q6 k' J
(ai_ddvp_set_b 90.0)6 T. I+ |( G/ y
)8 @! R( s: Q% l* x7 y
((< ang2 157.5)0 f$ B; D* T! ^- h) f! F, M' R7 b
(ai_ddvp_set_b 135.0)
# d. j2 i& H. i( S) N! ` )! ^ q. I& v; h/ l% {. X
((< ang2 202.5)
. C. e" F1 }' j* W (ai_ddvp_set_b 180.0)
8 d. Y a5 l) g- Z% m7 q8 s$ k$ a9 Q )$ ]7 W$ d: `0 s2 `+ i2 U8 P- o, U
((< ang2 247.5)
+ i& `0 k4 w+ e+ |. f$ k2 k (ai_ddvp_set_b 225.0)
+ J. U8 p0 y# E )
+ d: ?: w4 o) r X0 ?7 d( W. K( p ((< ang2 292.5)
6 @$ e* A' r) G9 Q5 e (ai_ddvp_set_b 270.0)
/ R: B) O+ j% L; d )
6 ]8 _2 D, a( o6 _. {/ A ((< ang2 337.5)! l6 m6 t& g3 b
(ai_ddvp_set_b 315.0). A# d/ o7 w5 y7 d2 b
)- {$ Y- H9 Z4 r& x0 e9 C# `/ D
((< ang2 360.0)
9 u8 }: o$ [ ? M; G. E1 U! g (ai_ddvp_set_b 0.0)% p+ n$ h2 @& x7 b
), A1 e0 \' }; o( Z- p% m2 @: Z1 \
(T
: H6 K' ^: v5 M( {4 D$ q (ai_ddvp_set_b 270.0)# N: | L4 r8 _4 P
)* F; r6 x1 g2 Q z1 ^; M
)2 y' W% Q( S% c( x; i! \
)+ n/ p. T% t; l- E- m' a) L- @
)# U) P: R/ w \5 f V/ {, \ c
)
5 h: y5 o3 G" n) r2 C; l e)$ c l R. L; a( v6 W2 N
! t7 J6 G; L4 L( t; }3 r; d% |(defun ai_ddvp_plan ()
- i, y. `8 J9 h- W. u7 F% D( R3 [4 u (ai_ddvp_set_a 90.0)$ V! z7 _. N' {
(ai_ddvp_set_b 270.0)
/ z& y* J1 g3 ]$ _6 A% u)7 n5 ^- K0 Q4 H4 t' j4 S0 F
' p4 _1 h- Z9 N0 \
(defun ai_ddvp_setvdir (a b) F5 C0 U8 J. c7 ]9 Z
(list (* (sin (ai_dtr (- 90.0 a))) (cos (ai_dtr b)))
, k" J! P2 u5 `. D9 D1 g (* (sin (ai_dtr (- 90.0 a))) (sin (ai_dtr b)))
4 n5 L3 t9 R1 {5 { Q) X( d (cos (ai_dtr (- 90.0 a)))
& Q( M& q2 X( c0 G7 p* J" @; p )2 l( w7 K6 D0 A3 `. _
)
; J* g( R; L+ A3 L: W. A
# W0 J4 { s- u1 O$ T/ d6 O(defun ai_ddvp_set_abs ()
3 z$ H* `+ c8 W (setq ai_ddvp_wv 1)
( R; k5 c p6 z Q& G3 c4 h (ai_ddvp_drx ai_ddvp_b_curr ai_ddvp_bx 0)
. w& K& u/ d9 w; d2 O) @ (ai_ddvp_drx ai_ddvp_a_curr ai_ddvp_ax 0)
2 X. y' W6 S- e (ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 0)
0 ^; A7 `' r: ^ Q. l9 N1 d$ v (ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 0)2 h" G4 E! z! z3 q/ T4 P3 ~
(setq ai_ddvp_vdir_base (ai_ddvp_fixzero ai_ddvp_vdir_base)): R4 n* L* M- j# }
(ai_ddvp_setang (trans ai_ddvp_vdir_base 1 0 T))5 D o2 H9 a1 P+ Y
(setq ai_ddvp_a_base ai_ddvp_a, R4 H. `/ l3 ]& o0 l/ [( q3 }
ai_ddvp_b_base ai_ddvp_b1 ~! g3 ~# H7 L( g
)+ `( g3 [& q! k( M# A( M
$ M$ l) d) ]3 L9 D' M (setq ai_ddvp_vdir_curr 2 y1 Z/ u ?! q; X9 T: z) w
(ai_ddvp_fixzero # j" L" Z& H& X2 ]- x! [
(trans (ai_ddvp_setvdir ai_ddvp_a_curr ai_ddvp_b_curr) 1 0 T)
( N* J! B2 T) m% d$ ` )& W, h7 P% f E' B6 y6 d
)( p6 e- n# k! i6 V! E
(ai_ddvp_setang ai_ddvp_vdir_curr)- b) ~+ F2 R! i+ ^4 F
(setq ai_ddvp_a_curr ai_ddvp_a* @1 Z2 X9 `, p: H0 R9 p. r
ai_ddvp_b_curr ai_ddvp_b
% p* R0 F6 @( f1 }- r. `- u* A! h' X )* q! {8 z7 H a
# S( Y$ c2 ]! Q (ai_ddvp_set_a ai_ddvp_a_curr)
" z1 U8 j4 f6 f7 C (ai_ddvp_set_b ai_ddvp_b_curr)
" ^+ o6 `- A0 t$ }6 G! F* l3 b)/ U! W! `: T& d3 H6 d, o
8 _9 X* J0 E/ w) B9 `" m
: r" Q7 b; M9 w: U1 x5 X" F(defun ai_ddvp_set_rel () F! B3 U2 @. A% ~$ L
(setq ai_ddvp_wv 0)
. H6 i l) H. R2 L5 l (ai_ddvp_drx ai_ddvp_b_curr ai_ddvp_bx 0)( L; H6 u4 j+ J; t
(ai_ddvp_drx ai_ddvp_a_curr ai_ddvp_ax 0)
& @) m+ {: b. \; Y; e. l9 C (ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 0)
) R7 y8 T% ^/ J! `+ z. n (ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 0)1 e9 x* P2 Q, m. C8 h% y
(setq ai_ddvp_vdir_base (ai_ddvp_fixzero ai_ddvp_vdir_base))! w; L! z2 |7 H) r/ _
(ai_ddvp_setang ai_ddvp_vdir_base)6 P) b5 S& x/ h# V5 o
(setq ai_ddvp_a_base ai_ddvp_a* l# `! O$ q; `# u- }; _1 Y5 |
ai_ddvp_b_base ai_ddvp_b3 U* R2 w" f* X
)
( s- a) y- d3 W/ R7 D (setq ai_ddvp_vdir_curr
0 i: a2 z) }, ]. O3 |# O (ai_ddvp_fixzero 3 z& e R+ m5 ?2 V
(trans (ai_ddvp_setvdir ai_ddvp_a_curr ai_ddvp_b_curr) 0 1 T)) Q# B w. k8 f$ L5 n& e. l
)& v3 k% N, y1 C5 Y) j
)0 t/ a& B7 F1 d+ E) q
(if ai_ddvp_init
, e* O! N# H# g# K8 i (setq ai_ddvp_vdir_curr (ai_ddvp_fixzero (trans ai_ddvp_vdir_curr 1 0 T))( A' i1 |3 `+ a( p1 J8 p
ai_ddvp_init nil
3 Z. P) w6 q& L8 G )- u% b, q! `* ?& m/ {" V) X' y. G
)% j' a( e- G0 r0 \5 v
(ai_ddvp_setang ai_ddvp_vdir_curr)
8 C3 @1 n! r, d# H7 p" C; j4 a6 ]: C (setq ai_ddvp_a_curr ai_ddvp_a6 H' }5 Y1 [ N: \6 R
ai_ddvp_b_curr ai_ddvp_b
" J$ @2 d% T9 l- L& l0 \, @7 J )3 `, t6 b" {' T% K1 O5 v c
(ai_ddvp_set_a ai_ddvp_a_curr)
; j' \7 B- }0 w( }/ ^ (ai_ddvp_set_b ai_ddvp_b_curr)
( b& {% D! i i)
9 ?& ?2 G( G& z4 \! k+ X
6 D6 s' l2 q% o; y7 d Z(defun ai_ddvp_fixzero (vector / vector_x vector_y vector_z)
, X P7 ]1 ?; D' l* T (setq vector_x (car vector). \3 e7 n8 @- g8 L
vector_y (cadr vector)5 ?$ K" Z+ ~* }5 j* r2 Z3 T
vector_z (caddr vector)
$ b! B( [% a2 g# u )
. g! N2 a/ H1 G Y7 F (if (equal vector_x 0.0 1e-06)+ J8 S. N. B& k3 G! g) P
(setq vector_x 0.0)
" p( W* R7 h' d; R )( G$ U9 Y# }2 o3 C2 E
(if (equal vector_y 0.0 1e-06)
- q. @) P* i4 }" r- T' o (setq vector_y 0.0)
3 l* \- \+ Y( F9 X )
+ [3 s+ e% a# F. z8 \, j- X (if (equal vector_z 0.0 1e-06), R& y7 T2 x+ s) V$ I
(setq vector_z 0.0)+ X$ x6 l' F( [) f3 F4 S( z% G0 g1 D+ C
)
; d( _' u7 _% K! f1 c (list vector_x vector_y vector_z)' j) J. Z1 g; B |5 u; @. Y
), H5 ]/ W* I0 a( ]
) G% @; t K. n! c(defun ai_ddvp_setang (viewdir / viewdir_x viewdir_y viewdir_z ai_viewdir)
# a3 R- A1 G* V0 p8 p (setq ai_viewdir (ai_ddvp_fixzero viewdir)
8 s8 Z% ? E$ ]: w ai_ddvp_b (ai_rtd (angle ai_viewdir '(0.0 0.0)))
0 j' Z7 Z. ^3 d )3 J! c' e! b& N# e: L* b- A
(if (equal (list (car ai_viewdir) (cadr ai_viewdir)) '(0.0 0.0) 1e-06)
# v5 A$ {( |. c" C+ d/ u: Y (setq ai_ddvp_a 90.0)
$ \( I$ r/ n$ C) x' c$ I- D$ l0 g (setq ai_ddvp_a (ai_rtd (ai_ang3dv
& P" j* g w8 } ai_viewdir
+ ]1 b% s7 ^0 o8 |# p (list (car ai_viewdir) (cadr ai_viewdir) 0.0)
3 G) H" P( h- J& x6 V( a )
- C: j- C: S$ H) C )
; A8 V: Q7 ?0 M. `4 \! e8 E )
- }. `, q" Y/ O) \+ e ), P8 N6 M' F1 C4 \7 H
(if (< (caddr ai_viewdir) 0.0)
8 Y% Q# b! Z1 z1 T4 r \ (setq ai_ddvp_a (- 0.0 ai_ddvp_a))
$ i' Y* \" A3 J8 {5 ]! Y. L (setq ai_ddvp_a (abs ai_ddvp_a)). x# b$ `0 L4 F5 K
); e/ {/ D! d9 V
(if (>= ai_ddvp_b 180.0)
4 b# h+ A9 D$ t' S& M. X6 \) l3 X (setq ai_ddvp_b (- ai_ddvp_b 180.0)); a+ w' Q% ^0 a5 n9 H
(setq ai_ddvp_b (+ ai_ddvp_b 180.0))2 X9 z0 o3 Q7 i, q. g! t, ^7 J
)$ X# g! k1 C1 Z5 B
(if (or (= ai_ddvp_a 90.0) (= ai_ddvp_a -90.0))1 c: E+ \2 R0 \* g, c& Y+ A
(setq ai_ddvp_b 270.0)! h* B2 }/ `' L8 J) J" ^
)
8 V* \1 b( }: R)- `6 M* Y- ^! a) ^
' g1 \# G- L0 Y(defun ai_ddvp_main ()$ o5 S7 z* E/ n6 ^4 ^6 l/ `
(ai_ddvp_start)
: A2 R9 ?2 U) e4 P. w (ai_ddvp_setang ai_ddvp_vdir_base)
/ Y6 G. U m9 }, ]! ^9 x (setq ai_ddvp_a_base ai_ddvp_a
# l6 R; i& b6 A- R, O7 B, e ai_ddvp_b_base ai_ddvp_b# D- p+ y# p0 L
ai_ddvp_vdir_curr (ai_ddvp_fixzero
8 [, z- B$ p* |1 P( Q (ai_ddvp_setvdir ai_ddvp_a_base ai_ddvp_b_base)6 l* d z- r5 V+ n
)
% ^- c9 Q: R( v) c' g; T ) d4 |4 x* h' ^, g* E, z
(ai_ddvp_setang ai_ddvp_vdir_curr); J! w7 ^, T- ]; h
(setq ai_ddvp_a_curr ai_ddvp_a
! h& t! K0 n; Y2 A! a, Y5 t ai_ddvp_a_last ai_ddvp_a_curr
; H* s: k6 j4 B b ai_ddvp_b_curr ai_ddvp_b! q0 z% W, _$ m# E* K7 i# r4 x+ q
ai_ddvp_b_last ai_ddvp_b_curr
1 x! l+ e4 z; h' x0 v )
# t" u. L$ q/ T% L N (if (= 0 ai_ddvp_wv)
6 b) W& K) W; R& Y& s3 D/ | (progn0 d+ s$ a! `0 Y0 Q- y; t# e
(ai_ddvp_set_rel)
f- R+ |1 J. R9 n3 }' @ n$ q+ | (set_tile "ddvp_rel_ucs" "1")! q( j6 P V4 M( ]3 d m
)
* e" U* W _* O1 n2 c# v (ai_ddvp_set_abs)
0 y# i" S+ s" E0 v* s& s7 S )
! e- s! L5 s! x (setq ai_ddvp_t nil)2 j1 j1 t. B$ U- U; `* a
(set_tile "ddvp_val_x" (rtos ai_ddvp_b_curr 2 1))
. K& D& Z# J2 ^7 Y1 ] (set_tile "ddvp_val_xyp" (rtos ai_ddvp_a_curr 2 1))
2 v( `. q2 ]: Y (action_tile "ddvp_abs_wcs" "(ai_ddvp_set_abs)")+ ^6 w+ k/ f/ Y! ~" z0 l( ?! n
(action_tile "ddvp_rel_ucs" "(ai_ddvp_set_rel)")# l) \! V9 N1 i& O8 r- ?7 W$ H
(action_tile "ddvp_image" "(ai_ddvp_image $x $y)")
* b! }% c: u1 G8 Z( t (action_tile "ddvp_val_x" "(ai_ddvp_set_b (distof $value))")+ g7 E+ y" p. a7 e& X
(action_tile "ddvp_val_xyp" "(ai_ddvp_set_a (distof $value))")
+ y3 b( k& x# [4 e' ?- ]9 F (action_tile "ddvp_set_plan" "(ai_ddvp_plan)")
- l% s! j! A9 k) \+ [8 o; D- B5 s5 g (action_tile "accept" "(ai_ddvp_do)")
9 {8 \$ L' i* {6 N7 Z5 N (action_tile "cancel" "(done_dialog 0)"), o7 J" k( j' T* p# q I4 {
(action_tile "help" "(help \"\" \"viewpoint_presets_dialog\")")
8 K" y+ S0 A5 J& q- f. Y: @ (if (= (start_dialog) 1)- F- b2 B' x$ W0 Q9 F1 b
(if ai_ddvp_t
3 ~* U- z% b/ X' ?0 s& v (progn
9 w7 q1 ^# s8 `9 o* l (command "._WORLDVIEW" ai_ddvp_wv)0 {% \3 B0 x; U% {, q+ ^
(command "._VPOINT" "_R" ' M# }% i. z7 {9 Z2 o. p! `6 [* [
(strcat "<<" (rtos ai_ddvp_b_curr 2))" Y3 S$ ~* p( O. I9 H4 V4 H
(strcat "<<" (rtos ai_ddvp_a_curr 2))0 B" N2 ]7 ^- i
)
( _4 O% P" s5 W1 o5 M )/ S4 @5 p5 e& O, x( a$ ?
)
! r1 D1 I2 s' Y8 V4 z; r )# j8 F# J6 Z+ ?' a) v2 E# X5 D, l
)" i# W1 Q6 i" e# |9 F, R, L; b
3 C: K+ n: ~/ V" u* Q8 `(defun c:VP ( / ai_ddvp_wv ai_ddvp_vdir_base ai_ddvp_vdir_curr( T+ A/ @1 u- y3 [; _# G
ai_ddvp_bx ai_ddvp_ax ai_ddvp_by ai_ddvp_a_curr
, J& m# D( X r1 t' b5 B$ |/ ^ ai_ddvp_b_curr ai_ddvp_a_base ai_ddvp_b_base ai_ddvp_p+ Y3 k& m* y* p1 N; A7 n
ai_ddvp_t ai_ddvp_init ai_ddvp_a ai_ddvp_b; {% B# r1 z5 U( e9 g
ai_ddvp_a_last ai_ddvp_b_last1 a1 H4 ]& M* _+ ^
app dcl_id old_cmd undo_init 0 O1 x7 p" |2 b4 O
)
% {) n6 ^( q; }6 G: ^2 ?, @% o- t% D# Y$ s0 h9 i
;; Set up error function.
0 P" F" ?: T3 y# W (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
, J$ Y3 @( p3 _ old_error *error* ; save current error function, A" W' y- V2 J% |2 [
*error* ai_error ; new error function
6 V. `) z7 Y$ T )
5 e5 n, _. X0 t: _& v
5 o& e( I F9 h, r! c& g (setvar "cmdecho" 0)' ~, b2 g' V2 {/ j; U! ]
5 _7 w& V# n4 l; G* w V (cond
8 u8 X) R& F _. \& u+ A ( (not (ai_notrans))) ; transparent not OK7 D% x; s; Y5 Y7 q; J3 L k8 e
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
, D3 ^# }3 {4 Q1 v7 g0 X/ V ( (not (setq dcl_id (ai_dcl "ddvpoint")))) ; is .DCL file loaded?
$ E" n+ Q- O; {# c, Z) w (T (ai_undo_push)% ^, _8 P3 @$ q, F
(ddvpoint_main) ; proceed!
2 m( Q7 j+ _* L; e1 L/ r! m (ai_undo_pop)
: t3 S1 D2 s, t- \& K ) & I+ ?3 q) b7 p" d( q8 C
)
/ e, N0 C3 M- a% ]+ a4 v$ o7 ]: j
(setq *error* old_error) 9 J1 z4 a/ H" b; ?
(setvar "cmdecho" old_cmd)
- x3 g) g5 C) P& C- U4 }6 E (princ)
" H* G" _. m0 U/ v3 f5 u& S)& E, S6 \& I& L- E( N& h; o L
7 b3 W3 C7 `; F
(defun ddvpoint_main()
1 `7 G# g. N1 |+ ]. K2 N1 h$ W* i. X# T; f. e3 O; r7 }
(if (and (= 0 (getvar "TILEMODE"))! ?2 [$ [+ w7 N0 q( M2 `5 x
(= 1 (getvar "CVPORT"))
* D7 Y( @9 X# A7 U )
$ q. h, m; z2 {% v1 _ (princ "\n** Command not allowed in Paper space **")5 q; } W9 J9 }9 b5 N# E6 D4 O
(progn
: z' o" q. ^& W (if (not (new_dialog "ddvpoint" dcl_id))) Q1 X! X" L- W$ W- ~! @
(exit)$ @0 c+ [! I) ^7 n6 ~6 `
)1 B6 G& f* h, P2 u/ N' f
(setq ai_ddvp_vdir_base (ai_ddvp_fixzero (getvar "VIEWDIR"))% G# ^, X- B$ g6 h
ai_ddvp_wv (getvar "WORLDVIEW")
' f9 M) N$ [* U) T ai_ddvp_init T
- m% q! a% C! G6 S2 I; P* B ); P# {6 ], b' e1 P5 z
(ai_ddvp_main)
( Q5 X* c& b, Y+ g: v7 ?9 V )
% ~' _& J$ B' V5 L" C )
0 O' Q+ Z C- H1 f5 |6 U5 M)8 G1 G5 ]1 q/ r4 }+ D
* r! X) p, A' T) X5 z5 z, L
(princ " DDVPOINT loaded. ")
, \6 o( t9 m6 l7 s, R' ~% D$ M(princ)3 w9 {# c6 @9 i4 _3 d
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;% X( |6 Q/ h6 c2 u
;============================= Tran Ngoc Thang =================================
# [/ C/ }" g% q: ?% E; K5 W* [(defun c:zx () (command "zoom" ".5x"))- ~3 L* r1 Q" W8 X( D
(defun c:zz () (command "zoom" "p"))& r. T; v( y; b7 @! x/ V" I
(defun c:za () (command "zoom" "a"))
2 F( Y3 C7 ?6 I# X: ](defun c:zd () (command "zoom" "d"))
- U$ y' p2 D+ m7 G! H(defun c:ze () (command "zoom" "e"))
/ A( c7 b) z1 Y# b, N(defun c:zr () (command "zoom" "" ""))
' @5 d$ a" D- L ?(defun c:vv () (command "ucs" "v"))5 X/ h+ P) z* I7 p" y( s
(defun c:co () (ssget) (command "copy" "p" "" "m"))
; r2 H% }* x( K! l( |(defun c:c () (command "circle"))
7 ]0 D' s# ^; m; o" i% K(defun c:rt () (command "rotate"))
) Z5 J1 `9 G) w, Y0 Q( ~(defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
6 p6 s" x; ?" |' h(defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
0 b! W$ {$ @+ P(defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
C2 x9 N- [+ ^: i1 n(defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))" O6 P0 V7 w2 R7 R' c7 A7 O) U. T! t
(defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
R5 i0 V: a: q6 W# e: b! B(defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))8 Z* q$ V# i( N, a- K1 m3 |. R/ D. T
(defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
% x' h S! V! \0 f8 s+ o(defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
/ P8 Y4 ?* w+ k; t o5 k+ N(defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))( w# a# L: B' N+ _( {
(defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
3 z. ^6 k0 @& ^( \( s- n) E* X8 ~; j+ Z(defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90")) ]4 [' k$ V! f
(defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
( K& l6 y. O0 o% k+ ` [. h+ R(defun c:fd () (command "find" "p" "" )(princ))(princ)6 u0 \9 `9 F" E8 t# Y1 c
6 L! \$ i* I) `4 x/ ^6 y(defun c:VNI () (command "-style" "VNi-AUCHON" "VNI-vauchon" "225""1""0""n""n""n"))(princ)
1 D' x* o9 e' ~+ Y; N: r! S. { @/ E f) s) c4 b. o0 Y
(defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)! r3 n# `6 H2 T/ m) w' A5 X9 ?
(defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)1 G, O# s0 V0 c2 @ i# [0 l3 }
(defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
7 p) Z$ r4 R, P: F5 k4 R6 K(defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ); P# n7 ^0 Y1 V9 F$ F- ^
(defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))/ {. ]; a1 }1 U$ T# I4 o4 g, t
(defun c:chu () (command "-style" "CAMBRIA" "Cambria" "200""1""0""n""n"))" }9 q' l3 P2 {3 n/ \5 p
(defun c:cot () (command "-style" "COTES" "Romand" """1""0""n""n"))( i& o# h' b2 L0 E
/ b' B( M( g9 ]% c% i4 L+ A
(defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
' D/ S# A4 X( \$ q8 x$ [2 g(defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))1 d' \" z( I, O3 Y- B3 _
(defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))
5 G( p/ e4 m3 X4 v3 l- _/ q& \(defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n")); E7 J# U1 w4 O! _
(defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
. I) y% Y& Q5 @(defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n")); z x# r) P! p; {+ G9 [
9 Q6 E& k/ e% x( s(defun c:ps () (command " SOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
3 I) a" H+ Z/ }/ b, B( T- v; W& |. i8 ?
;free lisp by cadviet,cd2k44/ T7 n- j8 `; ?$ p
;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
" q) Q4 H& L/ ~9 J" M7 {(defun c:FTEXT (/ ent tstyle )
0 t5 z+ E; r! Q2 g; J0 o3 X(command "undo" "be") q" R e. }! [( ^. Y8 g$ O
(setq ent (entsel "\n Pick text :"))
5 P* p0 A7 ^' v% {% C(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
7 b$ t/ A% J4 n7 ] ^: K4 C8 i(command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
( H( _9 d# m9 W3 N6 K4 n$ B, w# p(setvar "TEXTSTYLE" Tstyle)
* T6 ~ B, |+ F" r3 ^4 T7 e(command "undo" "end")
! u7 m. m, @! B( Q)
5 z" F: j& I t+ v9 z' B! p0 c) o;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)/ U! O: C& g% T* x
( { b3 n0 r4 O2 |;free lisp by cadviet,cd2k44
& {7 r6 e q3 E- t; ~/ z1 r;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538300 T! s' P5 M+ C/ g) a
(defun c:Fvnh (/ ent tstyle )
. a) K( Y/ u8 h! c(command "undo" "be")
% ?' u1 s f% }(setq ent (entsel "\n Pick text :"))
0 A3 l- T/ g* F(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
; }; E9 B' @% s$ k* y+ i) H+ V(command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
7 K" X, K( d. ](setvar "TEXTSTYLE" Tstyle)% y( q+ \/ L& u8 S# `' c9 e. |
(command "undo" "end")
* e7 g: w7 `! P)5 a( \6 d2 ~: K2 r& ]7 Z% k; s; i
, h9 p2 q- L7 d- Y;free lisp by cadviet,cd2k44
' ~0 ]" @+ o% H$ L4 I+ O0 D" {: e: X;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
* U0 K+ ]& E Z; p, G- V4 a) C(defun c:Chbg (/ ent tstyle )
4 N7 W) i9 m+ O8 b: q(command "undo" "be")9 g% t/ X6 N# J1 g$ i: i! O% k
(setq ent (entsel "\n Pick text :"))
2 d( x4 J. j& x3 }/ j* _(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
8 `* Q1 @# C) J6 Y, O0 f# d2 k* O* x(command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
( @' c' L1 L% w(setvar "TEXTSTYLE" Tstyle): j! T3 V h8 a2 F$ B
(command "undo" "end")
4 V% ?' {2 k# |3 x& ?: _0 v" S4 g( I1 b# D)1 A* h& o( n6 ?9 w; Z& @, J7 X
" u8 \) P6 I* q A% J! h5 m
;free lisp by cadviet,cd2k44% r* V' b8 K8 x. P* g, H8 H5 O
;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
& N$ ~* q7 z" o" g4 Z- L+ u(defun c:Chsm (/ ent tstyle )
4 F, z' e8 ^# [" U2 b( b(command "undo" "be")0 w. p8 `& C, k0 e1 S
(setq ent (entsel "\n Pick text :"))3 U+ ^2 V0 a; P# f2 p' E' U
(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))% Z# l" z% P; ~: z$ [! f
(command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
3 w# a7 c4 ~5 ~" n: N' I" W(setvar "TEXTSTYLE" Tstyle)
1 ^% i% p! S3 P. d" @$ K. r(command "undo" "end")( }* }0 V* r" E
): W* {4 s7 a/ [8 q3 I
# B" q- X% o% F
;free lisp by cadviet,cd2k44
0 ~8 v6 l( s4 c) D;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
. D$ u' c; v! q(defun c:Fttf (/ ent tstyle )9 o; r( W5 x. _7 _9 g4 a
(command "undo" "be")
+ V( c j( n- I4 |5 n) G(setq ent (entsel "\n Pick text :"))0 A4 z7 J7 L0 q/ I3 K9 s
(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
3 M% b5 g6 w) N1 e/ m6 F(command "STYLE" TSTYLE "Cambria.ttf" "0" "1" "0" "N" "N" "n")0 C8 f8 H* d3 K7 g8 n
(setvar "TEXTSTYLE" Tstyle)% c# I5 k: c9 O1 ?6 d
(command "undo" "end")) i: m' e+ }" z8 F5 |$ n) e
)
% N$ Z p& p6 D0 } `/ J
3 e+ f0 r$ Z( z;;; ============================================
4 C; K5 ~# z& T6 r9 q3 S;;;3 H' _" i0 p; D0 J7 ^/ s% d
;;; LISP Creater Tao Duong Dan AUTOCAD2000' f. s) H0 e0 d0 D: P
;;;% M' D9 t7 t* r5 y- e
;;; ============================================
/ P/ R8 t1 u2 \ j4 z w1 h6 W- Y6 _ B) D8 ~( S4 d9 H; G
;;; ============================================
6 p0 C( J: s* `3 n& {;;;
% v3 T6 N$ B) o, x7 @+ S" k, p;;; CREATING FROM AUTOCAD2000
" ]) x2 A8 I0 a9 K;;; Tran Ngoc Thang - Sinh 03-05-1976
5 i. e, d7 J9 X- H;;; ============================================
# W2 B5 w' s, |1 J2 B1 Q; D2 V; e; z5 e m8 J' @
(setvar "MEASUREMENT"1);Bien So SCALE Cua BHATCH
V7 R4 S/ a1 \7 i. \( n1 b6 J;(setvar "DYNMODE"2);Bien So An Hien COMMAND LINE# g( F n' T+ T3 o; j8 E
;(setvar "VTENABLE"0);VTOPTIONS Enable Animation for Pan and Zoom m3 S! \: ^) v5 T
(setvar "INSUNITS"4)3 r# z$ ~% a* f& |0 J+ b& t# _
(setvar "ANGBASE"0)3 `' x# a+ w" I
(setvar "ANGDIR"0)- T1 W W; { r7 W" A
(setvar "AUNITS"0)
9 M! w& g8 S; a0 l% z9 }$ M(setvar "AUPREC"8)
" m* O# z4 W9 z( c6 `+ p- W8 V(setvar "LUNITS"2)
5 D/ H3 p9 C: x* S# V' v4 R0 H j(setvar "LUPREC"8)
* f, l. q4 A* _, r(setvar "ACADLSPASDOC"1)
3 n, e O) T4 |1 W(setvar "pickbox"5)% P3 N% Y' [; }) Z1 }
(setvar "blipmode"0)
% Y! p( _/ L4 p- H1 X- e(setvar "mirrtext"0)
9 }* X4 k2 b2 {3 d! e(setvar "cursorsize"100)
# I9 E: {/ ?3 o2 X( k(setvar "ZOOMFACTOR"75)1 ?, _1 o# w3 U( E
(setvar "LTSCALE" 10)9 z# {8 ?$ ]$ {1 `& L) K* |) ]
(setvar "lwunits"1)
% B7 m* m5 r2 t( [' i3 z: o" c(setvar "DIMBLK" "Closed")
% s' d5 ]' ~2 ?(setvar "DIMGAP"0.0693)
% Q" ~- ]# ~3 h; z; Q8 v% t2 s4 a7 @(setvar "DIMASZ"0.20)
3 A7 Z5 W0 X& z7 N+ G. s7 G7 _& f) S(setvar "DIMCEN"0.2)
8 y3 t0 s# r5 i(setvar "DIMDLI"0.1)
" l: Z/ d4 B. s' A; ^" g! R(setvar "DIMEXE"0.0693)
3 o" S- ^0 a2 B3 N3 X# S6 Y* l(setvar "DIMEXO"0.25)# }2 i$ W) T- K( O i: O
(setvar "DIMDEC"0)7 [/ P6 R& N! E
(setvar "DIMTIX" 1)
$ h0 [3 |% H- w2 T(setvar "DIMTXT" 0.099)
7 g# K6 O* E0 q# \(setvar "DIMCLRT" 7). k: W( e/ h: G$ U
(setvar "DIMTVP" 1)# U' }, a- ?; z6 a h* \- C/ o
(setvar "DIMJUST" 0)+ Z h" ~# `3 P
(setvar "DIMTIH" 0)9 W" y3 r! }# |5 e
(setvar "DIMTOFL" 1)
7 ~" ^+ J/ f+ d+ j4 d(setvar "DIMSCALE" 1111.1111)6 {, c9 y# I( ~5 U. Y
( _0 k" x: p% n* g
# s" E, L& q7 [4 R* P6 ?6 T+ C. ^5 `, a' y/ C& j
(defun c:zp () (command "'.zoom" "p"))
1 Z1 P( o+ t5 m, e$ P$ R(defun c:zz () (command "'.zoom" "p"))$ H7 V, R6 h* t" q1 `
(defun c:ze () (command "'.zoom" "e"))
0 H9 T! G, S& _4 k(defun c:za () (command "'.zoom" "a"))! q: G" v$ V! g0 a% i6 s, x( |
(defun c:zd () (command "'.zoom" "d"))& D7 g) |5 Y& F. K8 T0 ~
(DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))/ @5 H6 J* g+ o5 B# l, O T
(DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
7 O+ o1 y+ i$ ~* e4 m& k5 V(defun c:de () (command "ddedit")(princ))$ |3 N- {) R0 O0 R! n7 N
(defun c:dda () (command "Dimaligned"))" o. I3 q5 p+ `% G( c1 x& k* {. k
(defun c:ddb () (command "Dimabaseline"))
: I) v$ `. m8 f9 V% A; w(defun c:ddc () (command "Dimcontinue"))
. i, T. \" K" [# L" P% F(defun c:dde () (command "Dimtedit"))9 z6 c- U3 ?( y* E$ n
(defun c:ddf () (command "Ddattdef"))$ b% D2 k1 x7 X" P
(defun c:ddi () (command "Dimdiameter"))
% I" C+ a9 s% g2 j7 p0 \$ H(defun c:ddl () (command "Dimlinear"))9 C7 i# h+ ~7 e; v* ?/ H. k% t! u6 S
(defun c:ddn () (command "Dimangular"))' |( j, b/ ~6 @9 ?! t1 W+ H
(defun c:ddo () (command "Dimordinate"))( ^* h7 `+ i/ w: k" B4 J: h1 W
(defun c:ddr () (command "Dimradius"))/ O$ H2 [6 x# N* D
(defun c:dds () (command "Dimstyle"))* X) }/ N* c- e$ A" b
# A$ d3 H# T: }* \. |1 A" n# v(defun c U () (command "dim1" "up" "select" "exit" pause ))(princ)
% G5 I: G! ~1 V, M7 g(defun c H () (command "Dim1" "home" "select" "exit" pause))(princ)5 [1 k" R5 {9 u/ R( l B& R
(defun c:UU () (command "dim1""update""all"))7 O! h* }% r, o8 `
(defun c:ded() (command "dim1""tedit"))
+ L% ~6 z! ~% {(defun c:da () (command "dim1""ali"))
- t/ C# ?! ?* ?4 S5 F" r' E: o(defun c:dll() (command "dim1""l"))2 M# C3 f. B- V; G5 g& N! b: B/ {
(defun c:dan() (command "dim1""an"))
s( }# q, T6 {1 g(defun c:d1 () (command "dim1""ra")). \0 o+ y$ f9 M+ f8 ?2 a/ c- k
(defun c:n () (command "dim1""new"))
+ m+ _, S7 }% T; H- v! U% m
/ c& P/ ~- B. h/ R9 K(DEFUN C E () (COMMAND " EDIT"))0 {, h! N% J5 A; ^# w7 S# T
(DEFUN C L () (COMMAND " LINE"))
; `) g, d) b9 a+ c. j) @8 C/ m2 ?(defun c:dd () (command "dist")(princ))8 P# Z) j7 _6 w1 d- A6 {
(defun c:w () (command "pedit" pause "w" "au")(princ))+ ? i" V# {& \. s0 J
(defun c:pg () (command "polygon" "polygon"))
5 N; u( \# J4 a(defun c:el () (command "ellipse"))
9 ]5 E7 H: v' T- Z5 O+ f(defun c:xe () (command "explode"))7 n2 j5 R5 ?" i8 U
(defun c:eex () (command "extrude"))
! e7 @8 |7 y! {: K1 Q/ @(defun c:xg () (command "xline""a"))& k4 v% o: N( c6 O7 U
(defun c:xh () (command "xline""h"))# R ~5 Q( d" H1 v/ R; M- s
(defun c:xv () (command "xline""v"))" J" a, q/ m7 _) O$ f
; i4 l, Y4 T i! v(defun c c () (command "osnap""cen"))% b1 Y5 V3 P4 Z) g
(defun c d () (command "osnap""nod"))5 i1 N4 S6 l8 X x/ X
(defun c e () (command "osnap""end"))9 n( y, y# C2 \0 R1 l
(defun c i () (command "osnap""int"))+ p& o8 T7 X# S0 d$ x
(defun c r () (command "osnap""per"))* V9 ^! F( {* g
(defun c n () (command "osnap""none"))7 e+ N" z! H& F$ B
(defun c q () (command "osnap""qua"))
: o7 ^1 N8 X3 n/ q% D4 P. f0 Y(defun c m () (command "osnap""mid"))
2 {6 a- S3 H9 R) d(defun c t () (command "osnap""tan"))( l$ c5 \( N" k* p. h$ \
(defun c in () (command "osnap""ins"))4 E; g, M: p9 G1 ]
(defun c:oa () (command "osnap""nea"))! N: ]' R7 U" o3 F6 ~
(defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
- B$ c3 l* k4 ~ I! |% y; e& m$ `;(defun c:du () (command "dim1" "up" "s" "pick" "other"))3 I9 F e3 |% S' T. e' d
;(defun c:nn () (command "new" "y" ))1 U3 L7 L5 h/ M
4 L# {2 ]6 U1 } O3 U- a(defun c:/ () (command "limits"))$ t; ^5 u4 n8 a# @, Y
(defun c:`1 () (command "region"))- `) Y! G T7 q
(defun c:`2 () (command "subtract"))8 n+ m; C; ]4 w- W) p* l# j, y* X
(defun c:`3 () (command "union"))1 x2 X4 r- n+ ?* u
(defun c:`4 () (command "intersect"))
3 i1 h6 C# F6 k1 a(defun c:`c () (command "cal"))0 w1 ?, s8 P7 `
(defun c:`g () (command " olygon"))
* M: M8 n! ^5 m R' e/ H( q5 }- n2 D/ S [5 K
(defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))) a7 G# m2 o3 U' e/ a, U
(defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))$ X7 {+ _$ m U5 \( O/ L
(defun c:ip () (ssget) (command "print,_plot" ))(princ)$ {! s' U, ^3 {
" a6 U3 a5 o0 l) G(defun c:ddm () (command "ddlmodes" pause))' ]0 x5 r4 q9 x" L: N( Z$ i
3 N3 K8 X9 ^9 E8 s+ c. ^" M1 e" {(defun c:sha () (command "shade" pause))# X7 @ V) c1 d' J
4 u% I/ J5 Y" D+ d0 y
(defun c:sr1 () (command "surftab1" "p" "" pause))
! H1 D" b+ t- b% K5 I! b) H(defun c:sr2 () (command "surftab2" "p" "" pause))
, i: K" R. X) S# C) x
/ M+ ?: l3 D9 |; }0 B% S5 o. ?(defun c:ad () (command "audit""y"))
# a7 ?. V. S: ?8 G$ V(defun c:q () (command "quit"))
; w* E" O( {! w% @- R& Q# f# f4 s* X# [1 l, q" r8 k
(defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
- U. ]3 [/ t! y(defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))8 {- E+ L7 h8 z: `# G
(defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
5 P) M5 T7 Z4 M! p: q. E) u(defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
6 j8 h$ M; M: m2 E8 y0 K( x: H(defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
( [; _. O$ {; u' i7 S1 F2 c(defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))( Q( E6 B1 y7 O$ Z" Q8 ?
(defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
+ ]; L$ G$ v+ r& Z6 {; w(defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))$ _9 ?) t0 U; r- `9 r$ |
(defun c:180 () (ssget) (command "rotate" "p" "" pause "180")), P* z! G J2 @" a" f
f8 o8 L: b4 F(defun c:u3 () (command "ucs""3")); e u% d2 L8 m0 j. P+ p
(defun c:ue () (command "ucs""o""end"))- j; k# Z4 l. {/ N
(defun c:ui () (command "ucs""o""int"))
0 k5 p* M& s5 ?(defun c:um () (command "ucs""o""mid"))2 y8 F4 Z: i# C
(defun c:uc () (command "ucs""o""cen"))
4 v% r b9 v. P) @; f6 w. P, [(defun c:uq () (command "ucs""o""qua"))- S7 r9 k* t5 h& X4 M) K Q% [- v5 v2 \
(defun c:3s () (command "ucs""3"))
- D$ t5 X' j; x, L" ]( H, J(defun c:sx () (command "ucs""s"))7 C2 R6 v% ~3 ~0 K
(defun c:sf () (command "ucs""o"))2 o1 F7 O: _' E. ^& Q" u0 s
(defun c:sz () (command "ucs""p"))
* E: d" v4 I) c9 Q1 b! J( q(defun c:sr () (command "ucs""r"))/ s- s8 |! _3 V8 y
(defun c:sw () (command "ucs""w"))
: x, A8 w4 C7 G. G(defun c:fv () (command "ucs""v"))8 M& g! K I+ R) y; b4 u
(defun c:ux () (command "ucs""x"))) H! s! m" z7 [$ I( z+ {
(defun c:uux () (command "ucs""x""90"))
4 B1 Z- ]& O+ C: m' n( j(defun c:xxu () (command "ucs""x""-90"))
, {! F* K4 w% W% f7 f6 |. _* Z- N(defun c:uy () (command "ucs""y"))9 _: r9 O; R6 y
(defun c:uuy () (command "ucs""y""90"))3 K2 ^: `; o9 Y `
(defun c:yyu () (command "ucs""y""-90"))
3 J8 e* b) F3 Y/ j8 m$ a) M w(defun c:uz () (command "ucs""z"))1 t: f! A! l) W- p
(defun c:uuz () (command "ucs""z""90")) C) r7 A9 {: r. H
(defun c:zzu () (command "ucs""z""-90"))/ J8 o0 d* F! l7 z! f# |% d8 D D3 p7 X5 ^
(defun c:uci () (command "ucsicon" " roperties" ))(princ)
( s, d- s7 b6 s3 u: h; A2 b: {(defun c:ucm () (command "ucsman" ))(princ)
; O) x+ y# Z' b0 R0 \
' h+ r9 O0 Q" z+ n: K- u(defun c:sa () (command "vpoint""_non""-1,-1,1"))
& t2 h1 M4 `1 s* s0 e/ Q3 ?5 ]2 y: n(defun c:sd () (command "vpoint""_non""1,-1,1"))
4 x. h( _9 U" O- r: u# t(defun c:se () (command "vpoint""_non""1,1,1"))
" X6 t% f0 N5 m- g(defun c:sq () (command "vpoint""_non""-1,1,1")): b5 `8 K8 r6 I7 z. V- g3 Z
(defun c:vc () (command "plan""")): e4 B3 X b2 t8 P4 z
(defun c:vd () (command "dview""all"))
5 j8 [7 }2 d Z, }
2 ~: [1 B8 h5 V) z8 Y! i: s9 U(defun c:TT0 () (command "tilemode""0"))' ?) s! A/ j: z" L6 d: H
(defun c:TT1 () (command "tilemode""1"))$ {6 l* {2 a# a( \
. \$ u* _( C6 J$ h9 l2 J
(defun c:vt () (command "vpoint""_non""0,0,1"))+ _& ? b+ Q; I& |6 V! C, ^
(defun c:vb () (command "vpoint""_non""0,0,-1"))4 I9 u( C w8 u- G2 w
(defun c:vl () (command "vpoint""_non""-1,0,0"))9 J# [2 V8 K1 K, f9 v
(defun c:vr () (command "vpoint""_non""1,0,0"))5 q9 s2 U" H* |, ]) W
(defun c:vf () (command "vpoint""_non""0,-1,0"))
. Z; ^0 j a4 j3 ` E0 @( _(defun c:vk () (command "vpoint""_non""0,1,0"))
/ J- w& l& N/ g I1 p8 y9 ~, S4 U( i6 L, Z! _* z$ I. N4 \
(DEFUN C:MM () (COMMAND "MIRROR"))/ j( e, m( n( q8 J# C1 k
(DEFUN C:MP () (COMMAND "MOVE" " "))
# Z+ B2 r4 S3 o1 h# p- A4 p
/ c# D# F* Q! @(defun c:mee (/ a)7 W6 F, g8 G: h2 m! \0 _0 T
(setq a (ssget))(command "move"a"""end"pause"end"))
8 c" S( f( I# S) f' F- u! i(defun c:mc (/ a): R% E9 G4 l. V1 ^$ }2 o
(setq a (ssget))(command "move"a"""cen"pause"cen"))# A# h; A' A5 R- n; w |
(defun c:cc (/ a)
6 H3 R4 e4 U2 U) Y* k0 {* S (setq a (ssget))(command "copy"a"""m"))6 B' y( h) `6 U2 v
(defun c:ce (/ a)
4 t8 V+ B1 |5 {# z3 _% _, y (setq a (ssget))(command "copy"a"""m""end"pause"end"))
5 Q3 x4 l6 k+ v. k. P(defun c:cn (/ a)9 U- k# Y6 R( @' r4 h. J
(setq a (ssget))(command "copy"a"""m""cen"pause"cen"))% `, y7 |7 a/ ^) a% X
(defun c:tl ()(command "trim""l"""))0 i0 ?7 j4 _/ Y; t. Y6 E; l5 S6 q: r
(defun c:tf (/ a)2 z! h' n* J3 _
(setq a (ssget))(command "trim"a"""f"))
: k. E& d& I4 T' \0 G# q) Q' u(defun c:el ()(command "extend""l"""))0 W* m- Y. Q. i- F
(defun c:ef (/ a)
' x8 g( ]/ i, Q) @' p (setq a (ssget))(command "extend"a"""f"))
+ o$ ]! f6 a/ p- i {! I: E# F6 F2 m6 p& ~7 |* w# }1 r, _. @
! o- W& ?6 I* H$ g. A& ~(DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
, Q& E& W7 g. p(DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
) b5 M/ |& C, D/ k9 n0 S: Z7 [( r(DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))7 G; o' c5 l, L; Y! `# G
(DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400")) y" K/ c' G3 i5 Q
(DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))7 z# x5 E' q& P2 e; Q2 X, t# w
(DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))
/ M! L$ B: }0 L, t+ _# Q(DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))- r3 l5 Q2 f. {9 p
(DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
/ M8 x; B! p) l2 P* k0 [(DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))& L+ E& y8 G2 r
(DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
$ R9 z. U! L% D* Y9 y(DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))1 v% M2 G% C0 J: v5 a
(DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))) D2 y5 X! L0 J& H) p. e
(DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400")). Q% e1 d% y5 A1 g4 X, l! I
(DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
- f8 O( x/ s5 y. y9 ?(DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
4 f, U( Q& V3 o, |) B: j& x8 q(DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
) |2 D ]8 K2 Q: a(DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
, `6 e; t2 e g3 O) q
/ b/ L; d7 J! B. o- @+ q- x8 }(defun c:mla () (command "-mledit""av"))( I! @) H: c+ @2 K2 c1 ^
(defun c:mlc () (command "-mledit""mc"))! p& d5 b0 b- M! d; g" v
(defun c:mld () (command "-mledit""dv"))
6 _' p# x' f* ]3 H( f: T' E' l(defun c:mle () (command "mline""end"pause"end"))" S6 L' l; C; ~* [- _. o* k8 @# S
(defun c:mli () (command "-mledit""ca""int"pause"int"))' e, J4 c9 O( p+ m( Q: D6 P
(defun c:mlj () (command "-mledit""cj"))4 U7 b$ ^ F6 Q v) s' m( \' v; V
(defun c:mlt () (command "-mledit""mt"))) f" y+ T. @7 J8 |* r4 l
(defun c:mlk () (command "-mledit""ca""end"pause"end"))
9 I; Y, w. Y0 f) f; c& j( ~6 a(defun c:mlw () (command "-mledit""wa"))$ @1 S; L$ G r: x6 t: C
5 k, d: \- p- w8 }
(DEFUN C CA () (COMMAND "DVIEW" "all" "" "CA"))
& w, ]7 G2 w2 S% W(DEFUN C PA () (COMMAND "DVIEW" "all" "" " A"))
3 x$ R$ i7 R: d A$ H; g3 X(DEFUN C PO () (COMMAND "DVIEW" "all" "" " O"))
2 T7 q$ n# z; p" D" u. T2 r2 T" E(DEFUN C DD () (COMMAND "DVIEW" "all" "" "D"))( S+ \; w. u( ?* p, D
(DEFUN C Z () (COMMAND "DVIEW" "all" "" "Z"))7 g4 R! k- c; d' M. _5 }5 r
6 k9 J/ D/ ?3 n(defun c:p0 () (command "pline""""w""0""0"))
. ~8 z7 k/ \" v7 Y! s$ y+ h) E4 ~(defun c:ot () (command "offset""t"))
" n9 q0 Y- m' B# K(defun c:t () (command "mtext"pause"j""bl""h"pause))$ C# o+ F; h* i. e
(defun c:uo () (command "ucs""ob"pause))) r" g) |; G# `; _, c. p3 Q
(defun c:f0 () (command "fillet""r""0"))1 W" [6 J* T8 q
(defun c:fr () (command "fillet""r"))" U, X* `' i( I4 T7 t
' j/ j; C2 n- b5 Z/ |8 t1 Y;CHAMFER
9 i" g5 D0 B. g' k( @(defun c:cf () (command "chamfer"))
) q% I; C; T9 l3 S& A3 |(defun c:cfd () (command "chamfer" "d"))
3 [9 L9 p# W* f1 h(defun c:cf0 () (command "chamfer" "d" "0" "")), U5 _8 r: C, h$ Y0 Y0 [& |
( \7 _3 _8 @0 l' j$ P;FILLET* _( \1 p- B* H" C! _, N4 V& `* N
(defun c:f () (command "fillet"))
3 T# H; t' y* [(defun c:fr () (command "fillet" "r"))
) S* Z [, Z9 X/ K; B7 L1 Q(defun c:f0 () (command "fillet" "r" "0")) t) T6 L$ f: }$ R W
4 `1 r: ~8 N' {6 ~" n3 M, M* J
(defun c:OO () (command "oops"))
- ]: c, P, E% x3 n. } f+ ?& K(defun c:dln () (command "dimlinear"))
' p# i4 s* C0 a4 O3 l5 H; i. L1 y(defun c:dan () (command "dimaligned"))
" l W V2 a% i! y9 Q# |8 E(defun c:ddc () (command "dimcontinue"))
4 ^, ~, s% r* p& G
# C, ~- T* [' w* G5 c(defun c:sc () (command "scale" "auto"))
) a: f& R. v# Z6 c4 c2 j8 w(DEFUN C:XO () (COMMAND "snapang")). O6 j0 A- A; Z7 b; l2 f; B! C8 V
(defun c:cc (/ a)
* ]) b' x( ~/ B B; Z (setq a (ssget))(command "copy"a"""m"))
% T( P! Q' E) T- ]
$ b n$ r1 k5 w3 Z1 h* o: ], G V8 S1 G(defun c J (/ a)+ X6 |3 r( m8 F, H
(setq a (ssget))(command "pedit"a"""j""all""y"))+ a6 d0 L5 d2 |( Z# J
(defun c:JJ (/ a)
" Y, g, c2 \" s( Y' a9 O) F3 h (setq a (ssget))(command "pedit"a"""j""y"))+ I: h" c) M) U& S/ D3 O4 g2 _
(defun c:TN (/ a)/ Z0 d; H5 L5 N9 q+ N% J& d' \
(setq a (ssget))(command "change"a"""p""T"))2 p# s6 ?( o B- I- B) B8 M6 k. m+ S
9 l2 A+ a' V2 |1 _) u: D1 Q! L
/ n- k8 w5 u; Q) J$ \/ j;================== Tran Ngoc Thang - Sinh 03-05-1976 - Suu Tam - Tu nam 2000 - Hoc nam cuoi KTS . DHXD ====================2 d# d$ f& M* d# G! l1 N9 S; j' z
0 y u" [, @8 N. E(defun C:IB ()(setvar"cmdecho"1)
2 H" u5 R4 u {- L% M% c (setq pt(cadr(entsel"\nSelect Block:")))
4 L( [) i$ |+ _/ D (setq e1(ssget pt))
, \" O7 g' O- s+ q- K3 ` (setq e2 (entget (ssname e1 0)))" O/ {3 t/ w+ Z2 g8 r$ ~ y7 J
(setq blname (cdr(assoc 2 e2)))/ g* j' s3 e& a2 v
(setq oer *error* *error* err2)(command ".insert" blname)). S9 ?) ?$ j! G/ A1 J; h
) F* d! q3 E2 [ M$ e( B(defun c:II ()) I0 [8 f7 s. f( _$ Y
(setvar "cmdecho" 0)% w7 }# E' h7 j) n6 S$ H% Z4 d; c
(setq olderr *error* *error* myerror)
% w) L% ?- B; N) H/ B (prompt "\nSelect objects: ")
5 U/ O( h2 O- h! q* V (command "select" "au" pause)2 i5 `+ \2 `5 h1 Z8 d
(setq sstxt (ssget "p")) W! R% C8 l1 I! F3 _1 [3 L& J. a
sslen (sslength sstxt)& m6 @6 E" Y! s7 O% I( z6 t
ctr 0
+ h4 F; z: _9 t0 f, ?: R a )& Q% \3 |% c/ h+ [. ^& S+ i
(command ".undo" "mark")
1 b# u4 U# X2 Z* Q2 h (while (< ctr sslen)4 k+ x5 ? } W2 _/ G8 q
(setq listxt (entget (ssname sstxt ctr))* [4 _; v2 P& E! Y4 n
txttxt (cdr (assoc 1 listxt))6 ]5 U. u3 z9 a: ^6 _ e
enttxt (cdr (assoc 0 listxt))0 Y; L3 j- j# d: k1 k/ B0 ^6 Y
) `/ O$ d0 F( T- c
(if (= enttxt "TEXT")
; K/ f: k8 E# U- ? (progn
/ e8 I& v0 H5 i( @ (setq testxt (substr txttxt 1 3))4 B' h, U, W8 i/ _8 Q5 C* }4 p
(if (or (= testxt "%%C") (= testxt "%%C"))% p1 y( Z [( z5 p2 o& {8 h+ b& W
(setq newtxt (substr txttxt 4)): A1 I& x) ]2 s4 m4 M
(setq newtxt (strcat "%%C" txttxt))
6 g3 T% Q" S5 B5 Q& { )
. J+ I4 V( o1 d7 A (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))7 x' w* |0 {+ d& N0 d9 L4 }
(entmod listxt)) m7 H6 U3 V' {6 {
)$ P: W# p( O) t1 `2 A3 J% w
)) t9 T3 e0 V; Q0 Y$ h
(setq ctr (1+ ctr))
6 ~ |1 S+ u- J$ C )& @! C% r2 c# |, m
(setq *error* olderr)
- w* U1 i6 ]% d" H c4 X4 [$ Y5 w; Z( e2 W (setvar "cmdecho" 1)# P* a A+ E6 B* C; D
(princ)
% S% q2 [1 x, c$ i, e: h% c), b, a: M) G$ B7 w9 X* O- n4 @6 @
8 y- L' g# Q- m1 g9 i* |& F, i" K: u8 r! m(defun c G ()
. m8 l: c1 _3 ]+ Q# B (setvar "cmdecho" 0)
% A/ d/ f' i6 L/ | (setq olderr *error* *error* myerror)/ E/ _. c% \, K$ |8 L6 _& F/ A+ A& l
(prompt "\nSelect objects: ")
# W9 Q" F" x7 M# W5 z (command "select" "au" pause)
. c+ x1 C. Z& E) m) q- n (setq sstxt (ssget "p")
* q7 h8 i+ `0 z! ?1 E, ?9 z sslen (sslength sstxt)) ^6 q2 b; \1 J- N; P% E8 z
ctr 0
0 n- k! i e/ i )
; S% u s! K3 | `: I& }/ ?2 k (command ".undo" "mark")/ V' X/ \& s3 r6 U) Z5 k, R3 p
(while (< ctr sslen)
& ]8 m8 u" S0 \ (setq listxt (entget (ssname sstxt ctr))
Y# K9 `! |; ?' t txttxt (cdr (assoc 1 listxt))2 a. H2 s; ]2 m+ r8 I3 G) J$ K& S
enttxt (cdr (assoc 0 listxt))
- K& d* J! Z* ? )) W% N# Y+ I# N- H& L) X
(if (= enttxt "TEXT")$ Y' M5 R/ y: D
(progn. k, h8 ?0 L% e% p. |0 F! K
(setq testxt (substr txttxt 1 3)), R, R2 \$ W1 L5 P0 ^
(if (or (= testxt "%%d") (= testxt "%%d"))
0 q e" u' d( |# D; z6 Q (setq newtxt (substr txttxt 4))3 |8 m/ q, L5 v) _+ c
(setq newtxt (strcat txttxt "%%dC" ))
! @0 p4 o. u% E3 T! h )
: f; N, ?1 `, r$ o3 u6 y8 J (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))8 I4 A. f7 E; d0 Y8 _
(entmod listxt)
6 m6 k H$ @0 g1 g# e: k5 I- X, l )) @9 J* S" L* B
)
( g$ K9 r" S' C! q+ S7 ~' l (setq ctr (1+ ctr))2 E' O# e9 ?' ~4 g. [8 b
), x4 `2 j0 l) u: n' ^, T
(setq *error* olderr)
* r+ D; y" R6 S9 [. [# t7 e (setvar "cmdecho" 1)- Z4 b: o4 o8 ~. v, z$ O4 t6 [: Y
(princ)8 h7 b" n; B2 F: X
), H5 W2 ]( v! v
1 x0 k+ Y* K0 |% E4 r, c6 ]
(defun c I ()
* h) Y( v& X7 Y! z, G" b2 o* l (setvar "cmdecho" 0)- k9 g" q& h" ?( N# u
(setq olderr *error* *error* myerror)
8 y# ^) f. K& l7 z% K+ l; f, n e (prompt "\nSelect objects: ")2 a+ F( D& q m1 O( i' n/ p
(command "select" "au" pause)
) F9 T1 |) n0 X {# `- v (setq sstxt (ssget "p")
7 C1 E, P2 H& J) p1 c9 D+ D sslen (sslength sstxt)$ x2 r5 n4 x" a c/ h C
ctr 0) x. X% U) g- Z/ {( Y6 J: I
)3 ?9 J/ ]2 t. L8 w* _
(command ".undo" "mark"); a, j- u& f: n, \
(while (< ctr sslen)9 D. P* \1 m$ e4 P U- e$ b- Y3 i
(setq listxt (entget (ssname sstxt ctr))
2 V; B: l1 W; o/ ?& M9 g, c# s) | txttxt (cdr (assoc 1 listxt))) E& Z4 A: o2 l! G
enttxt (cdr (assoc 0 listxt))
3 N$ f( _5 r4 h! y )& i7 o" P+ R. Z4 j, N
(if (= enttxt "TEXT")) k( K% ?$ l! a' e3 V! {9 W+ W
(progn
: r6 j) i$ n1 Z4 g (setq testxt (substr txttxt 1 3))1 ]' q- v7 c& g# j
(if (or (= testxt "%%p") (= testxt "%%p"))
5 B/ G$ b: y v% @ (setq newtxt (substr txttxt 4))7 G2 G" g6 ^6 A/ t
(setq newtxt (strcat "%%p" txttxt)). @; h; `( x7 ?1 N Y
)/ T0 u' ?; T5 I
(setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
6 ^* r; }' l0 B (entmod listxt)
6 T! w& Y$ |; Z ): g$ Q- f( g" d
)/ z5 l/ |) L/ W+ m3 X# r
(setq ctr (1+ ctr))
" Y3 O. o* t! M8 n )& k, S- j- t/ V
(setq *error* olderr)* Z0 x+ J) m, C; T
(setvar "cmdecho" 1)5 B. W% D" o$ b# I) [3 c
(princ)
. G; ~# W+ M1 b+ ~' ])# f; b6 ^; r3 O5 w# `, t
( t7 j, l2 h$ O w
(Defun c:CB (/ a)
# W8 H5 ?; \- I (setq olderr *error* *error* myerror)
7 N* }2 `' {- \ (setq ocmd (getvar "cmdecho"))) Y7 m, ]- {8 K4 B" K
(setq oblp (getvar "blipmode"))
% y- b9 m+ e: f0 r+ A/ `% i8 G (setvar "cmdecho" 0)) ]6 @# w6 o. y" b* j9 A9 v$ }
(setq a (ssget))- z8 E. f& @% K; m
(command "CHPROP" a "" "C" "bylayer" "")
9 ~% E# Q- r7 X (setvar "cmdecho" ocmd), c/ J1 S8 }/ Z1 Z
(setvar "blipmode" oblp)( p9 S$ y* m' C3 R
(setq *error* olderr)# S# v" f3 F- F- ~+ b- x/ E1 T2 |' T* X
(princ)/ v) \6 H5 t1 f8 _
)
+ Q; Q- g2 o+ m$ m! i t
7 u5 z! |+ @$ n0 O# W) F(defun c CC (/ co43 obj23 la23)5 O; K" h8 O0 S' Y
(setvar "cmdecho" 0)& o; ^4 F4 g" {; @9 W
(setq co43 (getstring "\nNew color : "))5 a- z* n* q# c8 m3 q
(setq obj23 (car (entsel "\nPick object on desired layer: ")))/ r' f9 o0 a5 L
(if obj23 (progn
* ~( l g9 U) D7 y+ c& m, p (setq obj23 (entget obj23))& C- c7 L4 p' Z, `% d
(setq la23 (cdr (assoc 8 obj23))); C! b; i9 s6 V- w/ G
(command "layer" "c" co43 la23 "")
0 E n) e8 A& j )
: _8 F; Q, \5 \( f ^& y5 y0 Q )& f6 O' h- q. w$ S. F4 A, G9 g; g
(prompt (strcat "\nLayer has changed..." la23))* Y7 D1 k4 \+ K6 [) p$ D% A
(setvar "cmdecho" 1)
. k. t: B! y5 y* C (princ)! O! q' {1 ~# t/ I4 ~
)
* N+ \( E) k z
/ M$ a' I p) B1 d, E" }' ^4 h: W(Defun c:RP (/ a)( p2 P7 b2 e/ T9 Y7 X
(setq olderr *error* *error* myerror)
5 r8 x) {; ?, M, X/ r S, u (setq ocmd (getvar "cmdecho"))- M/ A: I2 D5 p. o+ O
(setq oblp (getvar "blipmode"))
4 i+ D4 k5 L7 s% k (setvar "cmdecho" 0)
* I7 |3 x5 R- ~. \$ S/ W (prompt (strcat "\nUSE: Delete object(s) belonging to"
' o. t: @* ?3 q3 p8 N " the layer of the entity picked...!"))
7 R2 m q$ m0 ?$ B- c6 s9 }7 b' d (setq a (entsel "\nPick the entity with the desired layer to delete: "))
" I9 f2 x8 f" Q (if (/= a nil)9 b' q* k1 v8 [# @/ Z: g
(progn (setq a (cdr (assoc 8 (entget (car a )))))
% S( J& Q) U' Q- c (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
( b+ j, J: p0 p P (prompt "\nNo entity selected!"))
' Y& l: G+ ~$ p (setvar "cmdecho" ocmd)6 p: J9 i' `4 W8 \
(setvar "blipmode" oblp)/ x) S' g* C3 T* }: e( c* o
(setq *error* olderr)+ Z7 [$ C/ R( h3 m) Z" N( }1 v# l
(princ)
; C4 {$ `7 T% b. k)( G( \6 ?$ g- W- L* T) o7 e) |& l' u
2 c8 {: Q5 u q1 r
(DEFUN C:WL(/ SSET NET SSL M); X: _) D; ]- J( }
(PRINC "\nSelect lines :")% P+ _+ L4 [# O) d/ h
(SETQ SSET (SSGET))$ O( k% K* N! l
(IF (/= NIL SSET) (PROGN) k" o' S1 i2 X( x; I& n; N5 V; K
(SETQ SSL (SSLENGTH SSET))
5 `8 z: u, x2 @7 r r( a8 E (INITGET 4)
/ a( [* H* J- f7 ~, C (SETQ NET (GETREAL "New width : "))
9 |( L% @* t, h9 E+ y9 K3 Y (IF (/= NIL NET)3 B# U) o& \) ^/ P
(WHILE (> SSL 0)( _1 E4 U& u4 e8 l7 y0 v! l2 |6 S
(SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))0 s/ X% q3 M; j
(IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
0 P8 f4 O6 O1 b, [3 a (COMMAND " EDIT" M "Y" "W" NET "")
, A- P e! F" j5 R+ u2 Q9 R )
! r% D$ s+ o) ]% ? ) w2 p1 A- ]; d0 {
)))" M0 M7 k7 I- F8 V4 W! x
(PRINC): J, _* z- J' i' B! p
)$ X( e3 b0 i _1 M v% t
5 w6 \' S, r5 ]1 V) b( X9 j
(defun C:MML ()
# ]0 L( _% `$ L" V+ ^( O8 f1 } (princ "\nSelect objects to move to another Layer.")$ ^" V' g1 A7 z% T
(setq ss (ssget))+ q. u: p: o- W
(SETQ UL1(GETSTRING "\nLayer to move entities to : "))
% y/ B) a' S6 [# H b$ T' e, h7 e. y% H (setq counter 0)
7 y) S6 j2 y$ t7 C (prompt "Moving to layer.....")(princ ul1)9 c0 N+ ]8 i. r
(setq e (ssname ss counter))
' g' ?8 e, D: G. F, a- @6 e: E+ w) v (setq l (cdr (assoc 8 (entget e))))7 C: Z( `' I! m$ b
(setq S (ssget "X" (list (cons 8 l))))' g3 K' G3 p! ]# _; z, `
(command "CHANGE" ss "" " " "LA" UL1 "")
1 j% o1 d( H: O5 |5 Z, V# j& M$ L5 t (setq counter (+ counter 1))
" w5 `, a1 d; |(princ)
1 C M& b9 @. g) 2 y& ?6 H5 g# v2 L; \
" V) ^, l& _" Y
;;; ================================ GHI CHU ============================
/ P8 k+ @$ d6 [;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
- ~8 r% p3 F& B" y' i;;; =======================Thuong Dung Font Romant.vnh===================
- y9 y$ K: m+ h3 ~;;;==================== Tran Ngoc Thang - Sinh 03-05-1976================8 i A0 Q8 E+ T" d
0 a! G. r1 B4 s. S(defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
" j9 v! V4 T3 s7 |4 V (setq oer *error* *error* err2)
$ N1 y9 w" q* W/ \+ [ (PROMPT "\n(VNI-TTF)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
& m2 `% N4 @/ C q3 U+ u (SETQ Cpt(GETSTRING "\n (RomanT.vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (Vni-SHX)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))- h1 b# {( H( Y6 ]8 Y1 _5 f" x
(IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhaø Beáp"))
& G1 Z% ~ y% U- i (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phoøng Veä Sinh"))
4 z# s8 P% Z; ]2 j1 p+ M (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Phoøng Hoïp"))# F0 M% O% p4 |: D3 Q0 d
(IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phoøng Laøm Vieäc"))* ]" F0 a$ m3 Z# r# V+ f
(IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phoøng Nguû"))
( e# r- C) X8 H7 W" z (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phoøng Beáp + AÊn"))# W3 R- s. q+ }7 |8 G! @. I
(IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhaø Kho"))
% G6 s6 s! @) e9 a- P8 x (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phoøng Ñeå Ñoà"))
- h$ w0 Q/ ], W; ~4 l5 m: n! s+ b
(IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
) s; j/ i5 M& {( u( `8 }8 Z/ n (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))2 t m: Q% h+ i1 B% j, m
(IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))9 S* l7 `# b1 s- |0 \4 I
(IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))- z8 H6 L- S8 ]# U+ I' R' X `
(IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
. L. r/ |$ l+ \- k0 a (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))) {/ n4 c4 G9 c3 F, |/ ~
(IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
' I4 a3 l* w1 q" Y# s( T, L (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
n( I5 a; k0 x' e' I( O; ]
`( o0 R- d. {* c" X* V+ _ (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
3 D0 _7 B. f* q F0 U1 s- ?3 J3 G (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
! Q B/ e! q1 ? (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))$ U" u5 t6 E8 a$ e( v8 f
(IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))$ ] N. u, h9 l( z; M7 q( K
(IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))1 N8 E p" o& a# e; ]9 I
(IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
( e8 h' ~5 q. I( n( P9 R( `# Q9 T/ i (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
# w3 H; J6 i# C. H; W% ^# T (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))4 A5 ^/ h* R5 O- [6 N6 N
(setq pta (getpoint" K: B& d4 y l! T7 D1 o2 C
"\nPick first corner. : "))4 u$ e/ A# ` ~4 ^% m0 w
(setq ptb (getcorner pta
8 ?" G1 O I+ h "\nPick second corner. : "))
8 f! \0 y) _: F$ i& T+ ^8 _ (setq ptc (list (car ptb)(cadr pta)))7 b k) q' a6 K% d! f; T
(setq ptd (list (car pta)(cadr ptb)))
3 {* t, n% ?# {. \' p* { (setq ang (angle pta ptb)); o% e/ {7 K+ Z: i1 q6 a# `8 h
(setq d1 (/(distance pta ptb) 2))
5 q% t' U7 T; k4 s! { y2 K (setq cp (polar pta (- ang (dtr 0)) d1))- C2 o# ]# W) k0 N- n
(setq X (distance pta ptc)); F* p# R) G2 X7 M/ a
(setq Y (distance pta ptd))
M2 E) q; E4 g (setq X1 (rtos x 2 1))9 P% }% w6 Q" Y1 E3 a2 s8 w
(setq Y1 (rtos y 2 1))4 ~; o" l5 S1 [3 p
(setq rmsz (strcat "(" X1 " x " Y1 ")"))) @5 n5 [) w2 X. L& g
(command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
3 B R! D* r; b+ N6 J (defun dtr (angg)
0 Q7 h) y9 u& s) ^, W (* pi (/ angg 180.0)))5 M" A% ^9 } A7 r' U$ G
5 Z. r; N2 T: d; `
(defun c:ZS (/ pta ptb rmsz pl1)
; V6 ]% z# b1 Z/ k4 d: ^ (setq oer *error* *error* err2)/ k8 p, }/ r }" K9 b; p
(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.")
, @- f' m; h' d/ J4 k& _0 l& J9 C (SETQ Cpt(GETSTRING "\n (RomanT.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
: A0 F G: J4 J, C( ?: O3 J* Y& X
( m0 o) }- ]/ q: j3 o (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))9 M9 a" V7 t3 h
(IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
4 o/ W K- b2 E4 `2 O- P: u (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
, v2 G9 _" D1 x0 b9 b+ O0 X5 D (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100")) Z4 j7 b) H" M q P
(IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
# Q; y t( g3 Y, K" I7 u) K (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
0 E4 C+ K! F9 N4 }* u! P9 O (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
/ O! k& Q' H. {# W8 o3 z+ X! L e* I6 \% k
(IF(OR(= Cpt "oL")(= cpt "ol"))(SETQ CPT ' "MAËT BAÈNG TAÀNG 1 : TÆ LEÄ - 1:100"))7 r+ t" h1 [* {/ J5 v3 v8 S( d7 [
(IF(OR(= cpt "oE")(= cpt "oe"))(SETQ CPT ' "MAËT ÑÖÙNG TRUÏC ?-? : TÆ LEÄ - 1:100"))
( M: _+ H& \9 F i: ?$ V7 ~ (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT ' "MAËT CAÉT A-A : TÆ LEÄ - 1:100"))
& E8 E& m4 ^; k: @! X( I: V (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT ' "MAËT BAÈNG MOÙNG : TÆ LEÄ - 1 : 100"))( I3 k5 g( [6 X, K: x f
(IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT ' "MAËT CAÉT MOÙNG : TÆ LEÄ - 1 : 100"))
V0 a' _: D' ` (IF(OR(= cpt "oK")(= cpt "ok"))(SETQ CPT ' "KEÁT CAÁU KHUNG DOÏC NHAØ : TÆ LEÄ - 1 : 100"))
" b3 E" P% j. J! _5 y( s8 U. s2 l (IF(OR(= cpt "oP")(= cpt "op"))(SETQ CPT ' "PHOÁI CAÛNH MOÄT GOÙC NHÌN"))
# n7 E- M! H6 L& `$ W" k+ e1 ~" H8 o N! s# i
(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")). t2 P* U$ r3 _/ N6 v6 G, O! P
(IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100")), ]8 |; A' M2 i' H5 q
(IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
1 w" m0 P, _. w- W5 J% u/ U (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))- x' c( `2 S1 h& ^9 F, |' ]5 v+ G
(IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))) E/ ^9 N; d- `& 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"))
: w6 J x- z! }7 ^9 C, v) ~1 Y3 Y (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
. ^) l2 I# v2 e, A (setq pta (getpoint
- D: ^9 O4 J( | "\nPick first corner. : "))# {) S: E! W5 t9 b0 n7 f2 A
(setq ptb (getcorner pta6 G& _. Z9 A# B6 ^7 w
"\nPick second corner. : "))
+ l3 s4 x0 F& ]; G- z$ r: X (setq ptc (list (car ptb)(cadr pta)))
6 d0 M/ C2 }5 M1 g% X+ n' ^ (setq ptd (list (car pta)(cadr ptb)))
0 @/ Y. V) a6 m% s7 ^% K5 Y; L2 T (setq ang (angle pta ptb))
- D& Q7 x% r7 ? (setq d1 (/(distance pta ptb) 2))
# e1 |" ?$ T3 D" F (setq cp (polar pta (- ang (dtr 0)) d1))
* m5 g( s# |; u4 ?" j8 [ (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
2 G; | K4 C: P; a, E* u (defun dtr (angg), R* E- O- v- w D! U3 v4 v
(* pi (/ angg 180.0)))2 q0 b6 c& K R, Z' ?* i
9 _6 l( c z0 E7 ^- }
;;; ================================ GHI CHU ============================
3 U* [8 Y3 @+ z: I4 t;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========8 O, I& Y, w: u$ I0 v a
;;; =======================Thuong Dung Font Romant.vnh===================' _* d! L2 N% n! T
;;;==================== Tran Ngoc Thang - Sinh 03-05-1976================
; l/ z: o# n3 C5 I- `
3 m3 v& A1 D) G. X# _" d(defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)5 S/ a7 C4 b- W h- w7 |' B
(setq oer *error* *error* err2) O2 I- J E: q; [
(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. ")
6 a- S; C1 ?; ~# ~ (SETQ Cpt(GETSTRING "\n(RomanT.Vnh)(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))& `9 A+ ^. P* x" ^& S& e
(IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhaø Beáp"))
/ s" r8 e6 b) g) [% ? (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phoøng Veä Sinh"))6 X* {0 n7 c/ x! o3 L2 [4 x
(IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Phoøng Hoïp"))3 M# L" k5 s0 j& J/ B/ z
(IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phoøng Laøm Vieäc")); U9 q# J" M2 O, m& Z3 F' j9 F
(IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phoøng Nguû"))$ v- T/ H2 U3 P: I
(IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phoøng Beáp + AÊn"))
4 `, C5 l" _8 s; E( h+ q: R, x (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhaø Kho"))
9 J- R# V) u6 S3 N$ ~4 B# m9 P (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phoøng Ñeå Ñoà"))8 m& ]% T2 i9 B/ `
8 J# O$ `* v- g" Q% H6 }6 m; h: _ (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
8 I# u% A, {* a9 @7 `9 F (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh")), B9 [8 _5 h, V' A/ Q' X) ]3 r
(IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))/ _. }/ S% `. g1 Z6 N. C
(IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
) F6 h7 G9 l7 P/ T4 K$ M. X# j% [0 F (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))4 o8 Z6 |) ^5 s) i
(IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))6 `, O: Q; s& H/ y- e q0 N
(IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))$ h* [! w o; g
(IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))- `/ a2 g" h& B6 o5 m
0 y7 i# D. f8 ?! m (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))9 F2 F, t2 _/ K2 K; k: {+ j; j
(IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))' B' C* c! W! U! s3 E7 b% y+ s/ I
(IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
# S; [ o$ d/ @0 B- I0 D8 L (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))) B& w) e$ X/ E' W7 N
(IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))/ m" q. b }1 v& o: B& K6 a9 Q$ `# G
(IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
3 ? `/ l! o4 P, @ (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))$ Q; p6 K* A. O |/ A* Z r2 n
(IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
/ U3 G {/ ], V/ \& ~
: ]3 }' }2 ^1 i; a3 M (setq pta (getpoint
" h0 K' p$ |( R. N$ v "\nPick first corner. : "))7 z+ ]% ^5 G) a: D
(setq ptb (getcorner pta4 K9 E# f% s$ N. o3 F/ A) K
"\nPick second corner. : "))
* q. C+ p7 ]0 ? (setq ptc (list (car ptb)(cadr pta)))+ ~$ @3 `2 M8 K) S
(setq ptd (list (car pta)(cadr ptb)))1 U, b1 {" C, ~& X: j& `& k2 J
(setq ang (angle pta ptb))
& k) X7 ]7 L. H, ~4 p% F) Y (setq d1 (/(distance pta ptb) 2)); ~4 V- }! `3 K. x, O6 K
(setq cp (polar pta (- ang (dtr 0)) d1)) R. O$ M6 K" ~' V
(setq X (distance pta ptc))
4 a7 `0 M# C6 s& x (setq Y (distance pta ptd))- c7 u X5 @# D5 Y5 s' x2 @( R5 u$ C
(setq X1 (rtos x 2 1))
! Z4 a/ T! {+ j* K (setq Y1 (rtos y 2 1))2 O, V/ r, {. N6 b+ \, x
(setq rmsz (strcat "(" X1 " x " Y1 ")"))
+ Y; O4 B q$ [8 w% C8 A (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
- ]- Y( n- ?& c9 ^9 H- B& k (defun dtr (angg)
6 z9 ^) C( A$ h* a (* pi (/ angg 180.0)))
9 ^4 F; _6 O) Z9 `! r- ~! w% y7 n! e0 x9 t
;;; ================================ GHI CHU ============================" Y9 l' I: _( q* D2 |
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
# e! j+ t! u% [+ j' V) ];;; =======================Thuong Dung Font Romant.vnh===================
* y1 [* U9 W: d6 T+ f) [. O# c* W# K3 e
6 z! L6 c9 P& R* h% h(defun c:GS (/ a b c d)
) f8 u) [6 y6 e( {" r (graphscr)
) T8 s/ I7 A2 ]4 \6 A# W; Z (prompt "\nSelect text to set style....")
) I2 F) k) U' Y7 j m6 t# T (setq a (entsel))7 h, w& L# q+ M- [
(setq b (entget (car a)))4 J: J: r! g' E7 S% Q- _9 Y
(setq c (cdr (assoc 7 b)))
8 ]9 }6 S1 i# Z1 Z (setq d (cdr (assoc 40 b)))' V4 ?; k0 M8 o i: e# l9 `, f7 @
(command "style" c "" d "" "" "" ""))% a2 y7 I# |! i/ s
(princ "\nType GS to set text style.")
* O( Q. x9 a/ Y" Q$ E% Q
9 L- R2 Q U' [' C; m* [( R(defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)8 d$ }2 C! p4 D* \; @5 a
(setq olderr *error* *error* myerror)* R3 P3 r2 q1 V1 i
(setq ocmd (getvar "cmdecho"))
$ I: j6 _) O" Z3 t (setq oblp (getvar "blipmode")), x; N. p: L$ w+ y
(setvar "cmdecho" 0)
# H# d$ B$ S& H' T7 q. ? (initget 1) ;3D point can't be null
: x0 j! c# T" t; q* A4 q( Q8 j (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: "))) E* s: j. g% o( ?
(setvar "ORTHOMODE" 1)
0 k/ I( ] ~) z/ o% z (initget 7) ;Length can't be 0, neg, or null
( k, M# r+ e3 i. \( y( h3 x (Setq l (getdist pt1 "\nLength: "))7 J( H. N% G1 R) h! N9 n, U
(Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))' z$ G7 |7 Z$ ~0 J9 n0 _
(grdraw pt1 pt2 2)
+ b, p; c/ }4 {3 _2 f- }& t* C (initget 7 "Square") ;Width can't be 0, neg, or null
# G8 J6 i8 b& l. K) _9 E" ^ (setq w (getdist pt1 "\nSquare/<Width>: "))) T& H: l! U* s- i
(if (= w "Square")
# a1 U& U: \3 y# w: B. A! z* b5 y (setq w l)% W7 x% f/ P3 ]4 I% ^; m' G% q$ v
)& _- L) T3 S t
(setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
; J" \% O8 y% b- P (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
% m& X q$ \/ } (grdraw pt2 pt3 2)
* d1 W0 N0 K. @0 x) D! v: {1 u (grdraw pt3 pt4 2)
7 t1 {7 N2 m% P+ S' }$ f# f: I (grdraw pt4 pt1 2)
/ _/ }5 |. b6 t; y (setvar "ORTHOMODE" 0); b# i6 L0 i8 a3 Q
(command "pline" pt1 pt2 pt3 pt4 "close")
# p' v) E3 @9 r, F/ F/ P, R (setvar "cmdecho" ocmd)9 w, a) U$ k& }' Q( z
(setvar "blipmode" oblp): W5 K- \& M- t1 C
(setq *error* olderr) ; Restore old *error* handler7 g( z& p5 ~0 [2 u: [
(princ)" u) l5 j! m, u
)% j5 V4 f# v, H) l( f+ S; x
+ _. i' w, A) X+ k' C
(defun c:SG (/ ent pt1 pt2 ang)& k) I+ Z' N; J. }9 r
(setq cmd (getvar "cmdecho"))- R$ o/ j4 ]' H0 e/ B7 W& v
(setvar "cmdecho" 1) U8 f* V7 j) v3 v2 G! c
(prompt (strcat"\nSnap angle will be set to angle of line")): k( m# f4 @2 q$ }+ t; f
(setq ent (entget (car (entsel))))
0 X% L* Z4 t* z y" p1 J# Q/ o: X e (setq pt1 (cdr (assoc 10 ent)))
, ?) t+ v" N4 e7 Z& Q& L* ` (setq pt2 (cdr (assoc 11 ent)))
" K9 {. G; i) h+ v" s- i (setq ang (angle pt1 pt2))4 ^: S5 a) f; _
(setq ang (/ (* ang 180.0) pi))
; J% P: I5 \" H4 {8 }' S. Y9 |+ { (setvar "cmdecho" 0), V: g! L0 n. b3 o+ i4 ^! A% S
(command "setvar" "snapang" ang)0 u7 _% p; q% ]/ n% r8 b) L, p
(setvar "cmdecho" cmd)
* n9 D2 k) P2 ]" y% A9 m, V). K B' U% R: A- }3 r; t
8 C* R$ N9 w8 m- t, d(defun C:TG ()5 G* t, e, N& A4 f
(initget "Increase New")
3 S: `! B# V0 `* `1 H! l+ h1 v+ S (setq ans (getkword "Increase/<New>: "))
' r1 N: B& V. {/ o (modang)
% _, o+ B/ a$ }8 M7 [+ e/ r+ C# T6 Q)
* w( B5 G8 ~' Y u% x7 v(defun modang (/ ang ss ca e na ssl)6 y2 s# D+ O- o$ M
(if (= ans "Increase")
; g/ [, p% L) K \, P. Z; O- o (princ "\nIncrease angle for text by: ")/ n! g2 p1 v$ Z
(princ "\nNew angle for text: ")" q3 ^! d8 g8 J0 C5 {1 A5 i) c4 c
)
7 J5 Q" Y- ?* q (setq ang (getreal))& J# i, Y5 n7 @- N, i3 C
(setq ang (* (/ ang 180) pi))- o) k2 \, z8 l
(setq ss (ssget))' f2 D# d. e+ V* I7 B
(setq ca 0 ssl (sslength ss))1 Y' ~6 x v( x0 x N6 u
(while (< ca ssl)
! X2 r% j! e8 r- T+ y (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
& Y+ C4 \ ~ g \' @% X/ M" U ` (progn0 W/ c0 W. F5 b' M
(if (= ans "Increase")7 {( t) n: G, ?7 H) m
(setq na (cons 50 (+ (cdr (assoc 50 e)) ang))): w. I5 n* Q3 W: u1 h' q3 W m! p5 r6 K
(setq na (cons 50 ang))
7 z! t# u4 r+ G, y )
- S& y; h C# ]; L2 f/ k4 b (setq e (subst na (assoc 50 e) e))
) U2 n' N' X5 }: x) Z (entmod e)' _2 {; V( ]5 X. P( s
(setq ca (1+ ca))
$ h* e3 F4 I! q- T5 z) j- | )
: L# K+ H( q+ S! U )
5 y( }: h7 I$ g4 t )3 E9 v% r# a5 ]: a5 c
(terpri)
! }+ |4 d# z# D4 T$ i0 u' D), h8 E9 _1 g* j$ H
0 a1 m5 \/ i! Y7 D z
3 P+ S* a) m, c(defun c:WL ()
( H0 T7 t, M' z, a (setvar "cmdecho" 0)
! {/ ]% }' ]! t6 m2 } (setq a 1)
% t' S1 `, }; I% T$ O (prompt "\nSelect Polylines to change: ")9 c0 c' o2 C7 w1 Q# U7 n7 `
(while (/= a nil)2 h9 V! Q6 ?4 g/ H
(progn. q- A: U: W7 x9 R4 \
(setq a (entsel))! D) P: g2 Z- r0 ~" z. N/ _) Q' }
(if (/= a nil)% `/ }0 [. S! _1 E2 ]# f3 X% P) X5 T2 L
(progn I9 ?2 @( |0 P$ d2 m+ A
(setq b (entget (car a))); Z+ L% o Q" F. Q- ]; }- j6 J
(setq c (cdr (assoc 40 b)))
/ @! V! d3 _6 u (princ c)
+ P& g; w1 H. b8 A$ t (command "pedit"a"w""lw""")
) ~3 a" g5 h6 ~ )))) % h- ~4 @7 C3 X" S: o
(princ)
/ R0 N2 p3 W' I)
$ l( r( h4 L. k8 x9 R' K$ w3 t/ ?+ S% S+ l- d
;;; ================================ TEXT FIT ============================' Z) O. y) U: {
! A8 A; {+ o2 n1 \: k(Defun c:FT ( )
+ T/ z) P7 T* P# L: k9 m (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
! _: e% h/ |# e' E1 u, {5 x7 f (Defun LL-xyz (arg) (CAR (TextBox arg)) )
( t; y- r; {& Y/ p (Defun UR-x (arg) (CAADR (TextBox arg)) )
" ]+ J2 U, {0 B& d6 [4 E6 D0 j- ^3 p (Defun LL-y (arg) (CADAR (TextBox arg)) )
& K7 p! V3 K' E, { (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
/ L2 j( {$ u& ? (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )9 m" F6 f/ ?( j6 J; H1 F
Textent (If ename (EntGet ename)) )
. q# l; T( \% x0 h2 u; Q' M3 I (If (= (CDR (Assoc 0 textent)) "TEXT")
! e) n% F# s& ] (Progn (initget 0 "Start")
, V Q# A0 _% d: q (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
( m( M D3 Y7 O& c6 Z9 N; I M (setsnapang Textent) ;set snap along text entity
4 a: D8 E5 U9 K0 w& L X* b8 | (setvar "ORTHOMODE" 1) ;drag along the text
6 n; t: q; |8 {& l3 j6 Y# d (setq
1 L v6 l& t# Q! u2 MTMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )2 ?9 B% Z2 K, ?& a
(setvar "snapang" 0)
% W6 M' |, `6 F2 p" D3 h. Y$ | (cond
& Z5 x% Y. |+ y _* q3 F6 v4 d ((= (type TMP) 'STR) ;;new starting point to be selected/ F8 w# ^8 T& ~+ f
(setq Start (getpoint "\nPick new starting point: "))
# J6 P" M1 ?- {- l2 h- {# f$ W (if Start (progn
6 w- u+ H! f$ p% I( { (command "_UCS" "_E" (cdr (assoc -1 textent)))$ h6 M6 T+ [8 k( s
(setvar "ORTHOMODE" 1)/ R, \- L5 j6 `5 A: M
(setq NewPt
( ?- f; O O; B' r j: Y. s& j, C& S9 y (if Start
# o+ c; T' y# C (getpoint (trans Start 0 1) " ending point: ") nil ) )$ D% F0 r) z$ U# p# |6 [$ ~) \
(if NewPt (setq NewPt (trans NewPt 1 0)))0 e3 k3 S# F! z5 N1 J, z
(setvar "ORTHOMODE" 0)
7 z2 U/ I+ w, J/ ?3 f (command "_UCS" "_W") ) ) )
' m6 t# C# S! T8 G/ T* A5 p# m ((not (null TMP)) ;;new ending point selected
g8 N D+ Y0 Y+ H: O9 i (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )" e+ Q( K% o- O- m
(t (setq Start nil NewPt nil) ) )6 B# J. C f' c& n
(if (and Start NewPt) (progn
1 G4 ?, |& Q% w5 E4 Q/ ^- x (setq Val (Assoc 41 Textent) ;;current width factor
6 o3 z3 V- w/ T4 d: _+ l) M8 Z Val (if Val (cdr Val) 1.0) LTC_% ) @8 a1 N1 j a: A! |$ a: t
(* (/ (Distance Start NewPt) NewEnd ) Val )
$ T6 S' r: |4 M; v8 }5 F, c; A textent (Subst (cons 41 LTC_%)
* U. Q7 ^* P( s* R$ ^* P1 J (assoc 41 textent) textent)- k6 [9 w, L& z8 e/ c2 c' W
textent (subst (cons 10 Start) (assoc 10 textent) textent)
9 k( A9 E: g* _1 @ textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
9 m) P* F2 O6 a# s2 ~ (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))3 c0 k' p" N7 l# ?2 T5 D; D
& d" \5 A" j# n! ]+ Q
;=====================================================================/ }/ ?7 w1 g1 _2 c0 y O$ [4 e
;=========================COPY + ROTATE ==============================) e j; q) r. s' H: o: n
;=====================================================================' P/ _; h1 C3 [% W
% f+ ^+ S! t! D- B8 _+ Y! _(defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)$ g: G" i; M2 D- i* j# V( B Q6 r
(setq olderr *error*; P! z% A/ K+ c8 V" q. w
*error* croerr)8 y: Z% P8 r( W/ S
(setq cm (getvar "cmdecho"))/ k" W+ B$ K2 T' @" W
(setvar "cmdecho" 0)8 C9 R0 t* k; P+ J% D* T
(setq loop t)
, i2 f* L( k) }) a3 j5 U% h3 b (while (not (setq ss1 (ssget))))
% }0 C# o4 u) v( z! b" W5 e% H" A! A (initget 1 "Multiple") k1 f8 C8 U& t% i
(setq bp (getpoint "\nBase point or displacement>/Multiple: "))
( N5 H% t) M! u+ g. ~3 X/ B Y (if (= bp "Multiple")
5 f: V, d* c) P9 _5 o+ s" d (progn7 A, l; T3 J2 D" V, a% |1 r
(setq bp (getpoint "\nBase point: "))
0 u' W" X+ F! ~3 Q (setq mult t)0 _3 @. q+ u' J: t
)
, V8 `, C' i! v" E# i I4 D )6 x6 Y$ C2 S# @8 ~5 P
(while loop
3 H$ i$ |" n* d+ x7 f (setq loop mult)- `: g: C) L$ z. W9 e
(setq lent (lastent))
8 l3 u3 b7 ^ |) m) w2 U, _# i (command ".copy" ss1 "" bp bp); e5 y* ?( J( p3 k5 w
(setq ss2 (lss lent))
1 g2 F: q1 E+ r5 q3 z/ Q$ U" p (setq lp1 (getvar "lastpoint")) c2 h; y; p+ D* I3 v: n$ z& L
(prompt "\nSecond point of displacement: ")1 ~" I$ |5 Q; `# E( f1 j' `3 F" B
(command ".move" ss2 "" bp pause)
6 R$ G3 T' q) N9 Z3 L* @ (setq lp2 (getvar "lastpoint"))
$ v4 L0 x' _% O! y% ] (redss ss1)! l2 ?, X- a+ U8 Q/ h
(if (and (not mult)5 i- |3 Q6 v2 s" w' [( O% [% v. c; A
(= (distance lp1 lp2) 0)$ g0 s$ s' T, G! d6 [8 s& ~
)5 w1 w1 B& [1 {& L1 |& I; n
(setq lp2 (getpoint "\nRotation Point: "))
' w) ^2 H8 ~9 B# ~) z4 `1 B( p( E/ z )
- l5 ]$ ^, n- c* @- v8 X1 J (if mult6 g/ P4 Z: j% g- y+ M5 q+ i' S
(prompt "\nRotation angle ")
- U( V; b1 C# o3 T( L; w( h: x" [ (prompt "\nReference/<Rotation angle>: ")
2 F0 [2 }) c2 T )
' |( w6 _2 G2 k" L (command ".rotate" ss2 "" lp2 pause)3 H) ]- L& M) U6 o% c$ `' c+ U
)3 m; t: B% H' q3 t" u) m
(setvar "CMDECHO" cm)
9 E' n' }, x' I1 N4 l- j# s5 ^ (setq *error* olderr)
+ f1 {8 `4 S' y9 E- ]+ \ (princ)6 A8 s( D# `0 r' Y
)3 _; R: W& ?* r+ G
(princ)% Y0 G+ @/ F5 N& B" Q! t
(defun croerr (s)
, |6 E3 V3 E% L' a( I (if (/= s "Function cancelled")
- Q" h; |! O7 B; u (princ (strcat "\nError: " s))
4 M1 R C% r8 X ) 1 n! _! c% Q6 a; O
(setq S nil)
( [" U! X) L5 j% Y/ K6 X/ ?8 D- \ (setvar "CMDECHO" cm)2 G. j6 H, |9 b* O/ L! g& Y' Q
(setq *error* olderr)
# S' P h0 ?- Z, Z+ f# T0 R' f (princ)
5 h- i; a2 v6 `- E4 x1 d)5 }6 {- Z/ ^. n$ s' u: x: Y+ B
(defun lastent (/ a b)
1 B) ~0 h* h a" \6 ]9 N2 K6 r (if (setq a (entlast))8 {7 |3 ]3 d" o! w& ?) i6 e# O; C
(while (setq b (entnext a))
7 L: p! ]( _' V( {4 H. b' x8 c } (setq a b)) L' }$ G$ a8 H: N4 f" ^
)
( j" q8 s3 Q5 r$ L )- ^4 D" q$ b1 P6 C$ P
a% Y# t; X, h: \6 V
)
! _, l3 E7 T6 p d1 L* o(defun redss (ss / en i)
8 \3 f8 |$ a7 q9 g3 Z0 B (setq i 0)& C# W) ^" c4 J5 C5 g' C
(while (setq en (ssname ss i))) i! E1 @# R4 J+ a) ]
(redraw en 1). G- B( U% a1 j4 G: w7 H
(setq i (1+ i))# D g. p, q( t" ]2 X6 B* P) l
)- o$ v v, B, Z8 |/ t
)! h% s+ R( X+ A U
(defun lss (en / sels ed)
8 I& Y7 Y4 \6 P: Z7 W: i (setq sels (ssadd))
A' g, P( s/ q" Z: @0 ^" } (while (/= en nil)
6 P9 s& ]0 j& ^; R( W- m& C( p (if (setq en (entnext en)) (setq ed (entget en)))
9 x7 S; T6 p: Z (if (/= en nil) (setq sels (ssadd en sels)))
' Z i( v4 W \ r (if (or (= (cdr (assoc 0 ed)) "Polyline")
" {2 ~- }/ Y+ D. H (= (cdr (assoc 0 ed)) "Insert")
. L/ b& h9 S. @ )
/ i2 d/ t4 Z! L/ w3 `! x (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))8 _- T2 o( M! S0 D$ k0 |# Y4 k K5 C
)
/ E, w |1 G; G8 O0 Y% Z3 R0 W: ^! O- C )
& M3 c. V* D+ Z# } sels
) t. g6 h' R5 T4 o/ R' K. s)8 C8 g! }/ T- P7 U6 v8 P# c
1 D: M; {5 t* K/ }& j;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================& y8 @4 a9 h& M
;;;==================== Tran Ngoc Thang - Sinh 03-05-1976===================5 K+ r3 f* z& e$ C9 F2 d6 ~
, Z. c& H3 z. n) h$ ?0 ]7 ^% C(defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
& j% n6 U) p" \+ m" ?5 f(defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))7 @" ]" @! {' W( ]8 j
(defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
" T' d6 B7 Q4 s5 \2 P(defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))/ s8 Y" B8 A+ r z; F2 q
(defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
1 M! m6 X: M( B R7 ?(defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
, S8 g5 g; z# H, g" p(defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" "")), g* @" x9 O O& ]) r: D
(defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))- ]% I9 ]$ ~ W1 \
(defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))) H" Q6 _4 q4 |! z1 O
(defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))+ h' O H2 N/ L" V6 ^6 @
(defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))1 ^# C, w; C7 L7 o% p
(defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
! @, g( t Y4 @ O" v(defun c:77 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" "")). ]; ^$ n) ~1 I/ V; z
(defun c:7 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
; q V) l4 w$ E3 k. k! d1 G: \(defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))0 V, ?6 L. I1 P3 N
(defun c:9 ()(princ "\nChon doi tuong net TEXTTXT")(ssget)(command "change" "p" "" "p" "la" "TEXTTXT" ""))
: z4 X8 D) g$ R5 \$ U. D! V& f(defun c:99 ()(princ "\nChon doi tuong net TEXTVN")(ssget)(command "change" "p" "" "p" "la" "TEXTVN" "p" "C" "bylayer" ""))
& v/ ^ D2 U# m7 R- a) [(defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
4 V. j1 c0 Z: O9 V# O) R$ C( h1 O(defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))0 k9 v+ U% |3 N' I' }8 r$ y: K
2 w1 g1 ^7 w/ S; ?;=====================================================================
2 h( \$ z, e j8 o" }' u;===================DAT Ti Le Theo KHO GIAY BAN VE====================
, n/ |5 f& l) c. L7 b s8 P( h;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================. l. V, _' v4 m
- g: h' ~. B! x4 K
;(defun c:SA6 () (Command "DIMSCALE" "111.11111" ))(princ)+ D: m6 }0 z% d- s2 q
;(defun c:SA5 () (Command "DIMSCALE" "1111.1111" ))(princ)
3 N% U- X* M, z;(defun c:SA4 () (Command "DIMSCALE" "1111.1111" ))(princ)
& w/ V8 Q2 K1 G3 c& q. B- e* ?;(defun c:SA3 () (Command "DIMSCALE" "11111.111" ))(princ)# `* W. N# @9 i; A
;(defun c:SA2 () (Command "DIMSCALE" "111111.11" ))(princ)
" a7 D. g# c- I# e* i4 A' x# r' [; r;(defun c:SA1 () (Command "DIMSCALE" "111111.11" ))(princ)* Z) Q8 n* [2 o* H; U2 k" C
;(defun c:SA0 () (Command "DIMSCALE" "1111111.1" ))(princ)% S9 a- c2 v% w2 A4 m J
% M& U- M t7 M; R. [
;=====================================================================
, [8 k; t; t2 w0 I) |( ~;===================DAT Ti Le Theo KHO GIAY BAN VE====================6 ^2 H( O( w5 t- Q- Q) K S
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================1 M% `: j; K& h0 `8 T
+ o+ P1 V5 ~: B2 Q;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
2 [; J9 k; |8 s! k7 u1 M$ L/ N) _+ Y/ x+ a8 t' _
;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============7 d' t+ j6 S: C, n
# M8 e1 ]/ \, V0 |( b1 s, q6 F" E- n8 t
(alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
8 j% W( H5 T" r(princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")6 R+ n/ p. v9 `* d! w& J- X% I1 }3 e
2 V1 I& p/ r# d6 L
;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===9 {$ S# k# M9 T
3 A% E+ X# G( `- j
;(DEFUN C:netxuatanh ()
# m( m/ G4 N% j% u6 Z5 Z' l5 d (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
1 p9 `( N, q& d" | "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""* r& V1 `) k0 C K5 P9 D4 C
"M" "MANH" "C" "9" "" "Lw" "0.5" ""
! p0 }4 _% D! V( m: m "M" "DIM" "C" "1" "" "Lw" "0.6" ""4 l+ h3 {" t1 A- N
"M" "THAY" "C" "7" "" "Lw" "0.7" ""8 k2 c" E0 |4 f4 u/ A
"M" "NOITHAT" "C" "60" "" "Lw" "0.5" ""
\" Q9 o6 K& g- K "M" "HATCH" "C" "5" "" "Lw" "0.35" ""3 L0 L0 @2 k+ Q, @1 R
"M" "COT" "C" "2" "" "Lw" "2" ""9 g/ [4 c5 i, ~( Y4 H6 A
"M" "Defpoints" "C" "7" ""' }( M2 k* H/ b, E6 P- a! `) {
"M" "0" "C" "3" "" "Lw" "0.5" ""% f) z6 w4 g/ C" y) Q
; "M" "1" "C" "1" "" "Lw" "0.5" ""$ N! p+ {3 m" r9 j) c
; "M" "2" "C" "31" "" "Lw" "0.5" ""8 E. p% Z( m: g
; "M" "3" "C" "8" "" "Lw" "0.35" ""+ m' z1 @9 ]7 t
; "M" "4" "C" "4" "" "Lw" "0.8" ""4 M! J/ I2 G; h. U' ?! {9 a- w0 K
; "M" "6" "C" "6" "" "Lw" "0.35" ""
6 i6 l4 R6 S" y4 _; "M" "7" "C" "7" "" "Lw" "0.4" "", B4 ^7 w5 N3 x1 }3 ^2 [
; "M" "8" "C" "8" "" "Lw" "0.35" ""
6 ?$ J. p9 E P! h; V$ y0 l H "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""; S* ?7 ^5 R: J2 r- l* O" [
"M" "DUONGBAO" "C" "7" "" "Lw" "1" ""+ o! n r& i" r. D
; "M" "KE" "C" "8" "" "Lw" "0.3" "" s. |7 S3 `3 S2 ^1 l: S# A
; "M" "KT" "C" "9" "" "Lw" "0.35" ""8 y3 b: {8 T( a! U$ w
"M" "NETDAM" "C" "4" "" "Lw" "1" ""
/ `, I! p+ J0 u; I* ~ "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""4 v: X- k3 o9 d: P: e# K1 U
"M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
# z3 S* w B2 t, r. x- V& B "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.8" ""$ [0 _" V7 K8 S/ v& e) j, ]# ]
"M" "TEXT" "C" "7" "" "Lw" "1.58" ""3 h9 L; _2 W; r; k+ B# E
"M" "TEXTTXT" "C" "7" "" "Lw" "0.5" ""* T' C, J2 a" @9 e
"M" "TEXTVN" "C" "60" "" "Lw" "0.4" ""
3 b, j7 e, x$ Z, w8 t "M" "TEXTVNi" "C" "60" "" "Lw" "0.4" ""
! {3 T1 s; g$ ~9 Q) |. _& p( F* T+ M+ V "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
T; Z @! E2 |: D% Q* f "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""/ q: X' g2 T, C8 E$ U5 n
"M" "CUA" "C" "6" "" "Lw" "0.5" ""/ j8 J# z+ h" i! B
"M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""5 R3 X/ X1 D* R. ]- \. z9 ^3 B# H
- `: `% u- [& [- D# j9 \
;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===* O- Q' o6 x+ w
9 o( K% H; k! ^) }& A$ l; x l "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
- h5 M+ b8 N: n$ }( A6 I; m& N1 t% @ "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""9 l: k, i a% M+ B* `
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
% g0 M) d/ O7 ~/ z" _ C; "M" "250" "C" "250" "" "Lw" "0.35" ""
5 w5 @" l: \. p1 {: v' J0 L5 F "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
% W) X+ Z0 p7 m. m "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" )(princ)
1 N5 M3 ]7 W+ E/ F, T' a7 K, L$ K; P5 _; O) `' {" g8 a' T% ]
;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
0 a P# z1 t. [( p* S* `' C7 o! z;===================================30|04|2024==============================
+ M) k& j7 d6 } G9 h' U5 s: L0 z* q( o, Z2 ?+ V+ d
(Command "-style" "VNi-AUCHON" "vauchon.ttf" "225" "1" "0" "n" "n" )(princ)
/ p2 E& V" i; D9 M+ x; m (Command "-style" "VNi-COURI" "vcouri.ttf" "200" "1" "0" "n" "n" )(princ)9 P# f4 n4 s, ]9 n
(Command "-style" "VNi-COURIB" "vcourib.ttf" "200" "1" "0" "n" "n" )(princ), \( @9 S& l' S
(Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" ): I4 p6 `% }! y) g
(Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )' Y0 W- p2 {* V5 r7 b) e \
(Command "-style" "COTES" "tcvn3italic,vns.shx" "0" "1" "0" "n" "n" "n" ). a2 {& [0 R' h6 }1 {# p; Q
(Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" )
0 y1 ^( v, f- |% B9 p1 d% R (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" )
2 q# i j2 U4 u# N (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" )3 ]* d; x) S+ s' G1 C" U
(Command "-style" "STANDARD" "Cambria" "250" "1" "0" "n" "n" )
8 X, O# J: @) F3 @) o, z1 C (Command "-style" "CAMBRIA" "Cambria" "200" "1" "0" "n" "n" )
8 y- \! M0 P% }4 y/ H6 | (Command "-style" "GHIKH" "romant,vns.shx" "0" "1" "0" "n" "n" "n")' h2 C/ A6 C% L. F( ^
(Command "-style" "GHISH" "impact" "0" "1" "0" "n" "n" )4 Z/ q4 {5 S% l. L
(Command "-style" "ROMANT-DIM" "abcroman,vns.shx" "0" "1" "0" "n" "n" "n" )
u: C0 M9 t" B( Y, _ (Command "-style" "ROMANC-KhungTEN" "abcroman,vnh.shx" "200" "1" "0" "n" "n" "n" )
! e0 l6 I* W, k+ K. T' _+ W8 B (Command "-style" "ROMAND-TEXT" "abcrom,vnh.shx" "200" "1" "0" "n" "n" "n")/ i! Q! x, X, \ G0 u
(Command "-style" "ROMANT-TEXT" "tcvn3italic,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
4 O# y7 n+ f+ S I; O' x& p, D, u. i% q4 c, O1 h( I' }
;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
/ \- A/ Z% h" w- l2 @- `7 l/ G;===================================17|10|2024===================================
) W" [ ], _5 G( j
( A W( R1 I* |) ]8 T' @; ]& o (Command "DIMTXSTY" "ROMANT-DIM" )(princ)
& y# V7 p+ O2 k9 _( ?* } (Command "DIMBLK" "Closed" )(princ)
2 Q/ e& u P3 d2 ~0 ~$ i
. F6 W0 k4 ` T' O;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
) c: d9 g( {, w, I3 p, D6 o3 C2 @8 Y d;===================================17|10|2024===================================/ A) Q) {% p! n; u [
0 V& `6 {1 q p( E
;(Command "-units" "2" "8" "1" "8" "" "N")
% t+ o% q' b% ?4 K(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)
: h% o$ C5 v+ U5 q* u o# n) }/ ^! a0 g8 [2 T7 ]1 v6 {
;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=$ _; m0 c2 R- [5 I
;===================================17|10|2024===================================, m8 k+ Q6 g5 r$ B, c/ `
- Z3 [; y% z( X: t; c7 ^9 Q) S
;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
7 w. B. z* D( A. n& H/ f- |! ]. P/ O. C7 g
;======================== DAT NET IN & TI LE BAN VE =============================
8 t, b" w+ \' o! V! q8 j @/ t5 x, Q1 f6 w b
;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
4 C: z) E) o0 E3 m# d3 l;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
3 E! H3 A$ c& K/ X, N, g1 H;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
0 F: ~6 ]+ V# `' N6 B* z- o/ J( B;=============================11|07|2025==============================
: |# x; ?" Q1 q( g: z$ {;Ti Le Ban Ve - 1 : 100
8 f' ^8 ?. {0 j% d @' _: V(Defun c:kta4 ()
8 z. A @+ ?6 H1 ], M, k (setq mv_sc 100);Ti le ban ve
- R" n& L3 v$ F0 ^/ O. t4 k& y (setq x4 297)
3 s- @# ~+ v b n! |& k* O) A, t (setq y4 210)4 `: C# y7 ~5 U" V1 x
(setq x4 (* mv_sc x4)
+ J# v# i8 t( x5 D: ^5 S" `1 `8 B y4 (* mv_sc y4) ); o+ M( Y, r& z% d! n: u/ }
(command
7 E3 ^. ]8 i1 O8 E3 [ "LIMITS" "0,0" (list x4 y4)
4 O7 u6 \8 g& x "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"; f% k- C7 c2 ?. {
;Khung CHU NHAT Chinh
j: w4 j0 f3 u( g( X2 D "RECTANG" "500,500" "@28700,20000"
2 z& [' b5 J# O- H; @ "RECTANG" "700,700" "@28300,19600"
; m# E% J6 c+ b9 W2 {3 k8 ^;Khung Ten Chung
8 n' s, h- y, o7 w- z7 j- D/ g "RECTANG" "700,700" "@8000,1250"3 L) m' C1 k3 _% B5 o' G% [
"RECTANG" "700,700" "@17300,2500"
4 e! G. u; `6 S- A& ?8 O;Ten Ban Ve8 W6 e" T$ l! U" t) K
"RECTANG" "18000,700" "@11000,1250"
6 ~ J3 X. Z$ x3 \5 b& l "RECTANG" "18000,700" "@11000,2500"
$ B5 r$ a T/ s9 V6 I% f: t) O6 ?/ r;Khung Ti Le + Ngay Thang Nam7 x9 ~7 N3 P3 Z3 K0 A# Y. _* I
"RECTANG" "22500,700" "@2000,2500"
( \/ r) l) Z( \' E;Khung CHU TRI
5 |! B5 y& K; E "RECTANG" "8700,700" "@3800,2500"/ s4 |% M8 f* ^$ l6 I3 N
"ZOOM" "_a" ))) j/ W" y( F* G/ @6 D
;=====================================================================
- {: h: N" P" M; p;Ti Le Ban Ve - 1 : 1003 C& l4 f0 t* e6 h6 }, D1 M( w
(Defun c:kt4a (), ^# C8 k d* X# S- ^
(setq mv_sc 100);Ti le ban ve/ j# O/ i3 t% Q
(setq x4 297)5 g$ z: y, ]- y" L, O
(setq y4 210)" \1 J0 X% |) g# \( y
(setq x4 (* mv_sc x4)
' w0 {( D) b: Q/ S0 H8 {' n# C: Z y4 (* mv_sc y4) )3 F6 {7 s+ {# Z7 ?
(command
3 D5 ]/ P; Y: x0 h5 W "LIMITS" "0,0" (list x4 y4)# I6 u% d, X* b% o& C* X y- X
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"6 v& X; ^0 p2 ]0 s
;Khung CHU NHAT Chinh
' V9 X, D: g$ F, M& B "RECTANG" "2000,500" "@27200,20000"
/ h; k, f* B' g. S/ [1 ^% z "RECTANG" "2200,700" "@26800,19600"
, d- a5 X+ {: O' ];Khung Ten Chung
9 ~+ x7 {5 F) E# c "RECTANG" "2200,700" "@6500,1250"
9 I. }, t! Y# P" i% o "RECTANG" "2200,700" "@15800,2500"
6 I- M' k) K/ n, }3 W, B. `; x5 i6 T;Ten Ban Ve
- t0 D3 d; @- \% {8 J "RECTANG" "18000,700" "@11000,1250"
4 `/ d, X: f' [) d' \ "RECTANG" "18000,700" "@11000,2500"
: O' I b" x5 N;Khung Ti Le + Ngay Thang Nam" p- d2 x; J5 j0 g! P5 W
"RECTANG" "22500,700" "@2000,2500"( L. T/ W4 P1 ^+ L: E4 y: c2 G: v ]4 l
;Khung CHU TRI
" K8 r% b/ {2 O* F8 ]- J) D& M "RECTANG" "8700,700" "@3800,2500"; O& Y, i H# u' L: j
"ZOOM" "_a" ))
; B% D. u! \6 R- y7 i& s4 R. g+ W. z/ A
;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
( \5 _( D( [- P& G9 n. h;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
. j) A' g/ h- z$ G;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
) `# ~- k6 L" |;=============================04|07|2026==============================
+ @. T i& a" |4 {: _! u% T7 w7 M+ c;Ti Le Ban Ve - 1 : 100
5 ?% j* M" U, Q3 {% u5 ~(Defun c:za4 ()8 A* k5 s$ L& U: i; M0 v; h6 ]
(setq mv_sc 100);Ti le ban ve
* t7 n! H5 {# u0 ]4 u (setq x4 297)
}+ Q6 `- O5 x0 X# { (setq y4 210)
8 t! Q- N+ A4 k( G$ L5 o* P/ e (setq x4 (* mv_sc x4) ) S5 m* R: m W G* U1 h, n7 L
y4 (* mv_sc y4) )
0 N) h! ^9 N& F1 A (command : e7 @ {) \, ~9 l% r7 [8 P
"LIMITS" "0,0" (list x4 y4)8 S) k+ @, k \6 j- [9 S
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
1 g1 {5 Q. w7 q5 z;Khung CHU NHAT Chinh
/ A$ Z1 ~. [+ D& k "RECTANG" "500,500" "@28700,20000"
6 R8 R8 x2 u& w* y& o) s1 g, q- B "RECTANG" "700,700" "@28300,19600"9 r A5 a& Y) z8 z9 F
;Ten Ban Ve" D6 W2 c- S" g$ X- J
"RECTANG" "24500,700" "29000,1950"' z+ k7 z; w$ N5 o: A
"RECTANG" "24500,1950" "29000,3200"/ b: l. [# ^8 n7 i8 C! W6 ]$ d
;Khung Ti Le + Ngay Thang Nam0 K5 \7 v0 m7 L/ x5 h
"RECTANG" "24500,3200" "26750,4450"1 o" D3 j0 [* v% [# h, r7 s
"RECTANG" "26750,3200" "29000,4450"
/ q9 s+ M" h" ?; G;Khung Kiem Tra
+ d+ o+ @/ v5 u* C "RECTANG" "24500,4450" "29000,6325"* b5 q8 k2 ?1 X% j& J
;Khung Thiet Ke! w, l6 g1 `2 M7 f H" q0 f8 `9 A
"RECTANG" "24500,6325" "29000,8200"
( V; B ^3 j9 E. \6 w;Khung CHU TRI
, s$ B% e9 d2 H" Z "RECTANG" "24500,8200" "29000,10075"
" Z$ k S6 B( g" T8 v;Khung GIAM DOC/ @3 O3 Q* u# n4 l- w/ @
"RECTANG" "24500,10075" "29000,11950"$ [1 N. B! }, ?* H* j( N
;Khung HANG MUC' n: j, U. f5 Y. T5 u7 u* }/ L
"RECTANG" "24500,11950" "29000,14450"; S1 P% G2 n# |- ?4 X8 D
;Khung CONG TY
5 Z! q6 H% t& B* w% K "RECTANG" "24500,14450" "29000,16950"1 Z) n, Y7 Q7 I! @
;Khung REPAIRE
0 I0 }- [, Z, a& P- Y "RECTANG" "24500,16950" "29000,18125"
7 o i- D% _! u "RECTANG" "24500,18125" "29000,19300"
' r# \9 O: \" t. a "RECTANG" "24500,19300" "29000,20300"
4 t) n1 f* H4 {% O "RECTANG" "25500,16950" "25500,20300"( P7 u/ L# r7 ?6 m
"ZOOM" "_a" ))
4 V" p4 W: {/ r2 E1 i9 j" r;=====================================================================
) R! Y U/ X$ i0 R$ }6 x;Ti Le Ban Ve - 1 : 100
3 d: V8 l! G/ ~7 H(Defun c:zb4 (). v. t0 F1 u6 G
(setq mv_sc 100);Ti le ban ve! L2 g9 P; ?3 \
(setq x4 297); Q" P) N8 V' E+ B1 Y' K& a
(setq y4 210)
' n) K/ d3 W' x' e (setq x4 (* mv_sc x4) 8 X* Z. A+ \3 y+ @$ e% G9 P
y4 (* mv_sc y4) )
$ ]! @' w$ H4 ]- e. E, s+ T (command - @9 o E- |$ h! C @2 T
"LIMITS" "0,0" (list x4 y4)
# o5 o* X' Z# R, L7 R$ s "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
! l8 ?4 ?" Z8 {" ~ B;Khung CHU NHAT Chinh - w* [) |- p: w6 b4 i9 c2 E
"RECTANG" "2000,500" "@27200,20000", O1 D! |# I( G! _
"RECTANG" "2200,700" "@26800,19600"9 b% R! {3 `9 @4 @8 u s& r* K8 ]
;Ten Ban Ve
5 ~1 j# V( L, k6 W: N) J2 I% | "RECTANG" "24500,700" "29000,1950"1 O0 M- y8 n' E+ M/ T2 P# b
"RECTANG" "24500,1950" "29000,3200"" ?7 I+ j3 ?: e. w8 w# |* k
;Khung Ti Le + Ngay Thang Nam; O Y# |3 i% }4 Q
"RECTANG" "24500,3200" "26750,4450"
6 V/ I# K W6 o; X& T; a/ C "RECTANG" "26750,3200" "29000,4450"
- D' I" e! ^; v! u+ X, f; Z( z% }, _;Khung Kiem Tra2 o/ f# C V9 I2 z: q) G+ e- ?8 z! _
"RECTANG" "24500,4450" "29000,6325"
, _% R8 b v8 Y/ r2 m;Khung Thiet Ke
! l, a% ^/ C" H "RECTANG" "24500,6325" "29000,8200"3 y5 R( J; M" _! t
;Khung CHU TRI
/ r7 E2 e1 x) r5 X# H3 W# Y "RECTANG" "24500,8200" "29000,10075"- J2 e. @- G7 B6 ?" n/ S7 ?
;Khung GIAM DOC
6 `- G' K2 [: w1 t) t! ^" l; n "RECTANG" "24500,10075" "29000,11950"# c W' V; N; P: Q V
;Khung HANG MUC
, h: @; s8 l( U3 n2 | "RECTANG" "24500,11950" "29000,14450"( x: r/ A; e _* _; y
;Khung CONG TY! ?" }2 l& b2 K
"RECTANG" "24500,14450" "29000,16950"4 a! t, i7 C4 I' v4 l
;Khung REPAIRE; u& D. f+ \4 p, v
"RECTANG" "24500,16950" "29000,18125"4 v3 g/ A7 g! W3 p7 {
"RECTANG" "24500,18125" "29000,19300"
+ k) A$ Q8 h$ O0 b+ z: C3 Y0 N2 @ "RECTANG" "24500,19300" "29000,20300"
- l( W7 p" l& U B* J! S2 x4 i "RECTANG" "25500,16950" "25500,20300"6 C9 @/ Z5 f, a4 R; _5 O" u' J
"ZOOM" "_a" ))
; F0 c$ B# S6 N; J* ~
" d0 B. Y: m1 i2 p* C;;; ============================GHI CHU Khung Ten========================+ {- J) r! E/ |4 x/ ^2 J6 ~+ u- L
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========* s, P. [5 p( s }' J
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================( Z; x/ T( `0 X+ J5 X3 e( n
;;; =======================Thuong Dung Font Romant.vnh===================
t7 M& X" v% J9 A' m* g: k/ ]' w! ~+ V. k: H& Q& M0 P0 ~
(defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)2 j5 V+ W9 e% W
(setq oer *error* *error* err2)
5 ]3 E/ g2 ^" I: m' [ (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. "); {' G( x, X9 ^" x7 W
(SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
* r$ T# k+ \" F (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
' Q G6 F; ?8 ] (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
! t4 Z/ K+ |* }) Y0 E( F9 d (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
' X& ~8 \5 g. |. ^6 O4 ]3 _& M (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
, ]1 Y8 N4 s+ Y6 o$ P0 z9 N (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
; o- b* w( |% P5 N& d1 R (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))$ K* I( y" N) V
(IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))+ B/ Z+ e0 _8 t1 {0 C x
(IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))1 }: n2 e- I5 X1 _/ u9 R" h
(IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
! L% m& A# a$ p' W9 A (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
* T0 ]% u# R5 \6 M. r (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
; m% \. |3 L8 M+ T( \4 g( S7 B4 L9 Q (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))2 h8 h: B8 D. {$ j5 M: _9 e" L& L
(IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
6 a; c9 M- F: ] (setq pta (getpoint
+ _8 G6 A# n) S F- R "\nPick first corner. : "))- }7 z' @' a4 h6 H' @
(setq ptb (getcorner pta: r" c6 U# _0 S
"\nPick second corner. : "))* d9 S( ^! u- h7 ^* }/ c- K( h4 j
(setq ptc (list (car ptb)(cadr pta)))4 v5 b6 i+ Y2 \
(setq ptd (list (car pta)(cadr ptb)))& n9 ]4 R- C6 R+ N3 s
(setq ang (angle pta ptb))# }3 }4 @; ?( u* G5 H$ U
(setq d1 (/(distance pta ptb) 2))
/ M, u- ?! w& ~ (setq cp (polar pta (- ang (dtr 0)) d1))$ Q& B5 X I* q% S/ ^7 P6 S
(setq X (distance pta ptc))5 r; e5 i8 D2 i' Y+ G( q& s
(setq Y (distance pta ptd))5 N0 q- |$ a7 o4 _+ j6 l
(setq X1 (rtos x 2 1))
2 N. P! y) j( B0 p0 | (setq Y1 (rtos y 2 1))# e% f+ v( r0 A- X4 I$ m
(setq rmsz (strcat "(" X1 " x " Y1 ")"))
+ K" F" ]! z: b8 G/ n: ~ (command "TEXT" "c" cp "0" CPT "text" "" rmsz))* `& W4 n' e) {4 l, N3 C* u# r
(defun dtr (angg)
: I* A5 @6 g& H9 ?( `- U7 g (* pi (/ angg 180.0)))
8 R2 |* c Q7 j. I! S _
8 t, Q6 E) [. l0 l q;;; ============================GHI CHU Khung Ten========================
& m9 W% ?% t8 ?/ h6 I1 x o2 ];;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
8 z( @) @; C7 i/ Q4 q) R;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================3 E7 k5 T3 v, m' y. |, O
;;; =======================Thuong Dung Font Romant.vnh===================
/ k& @, w* c9 B0 @8 D9 Q
. y0 s4 L0 x, x% R/ F(defun c:iit (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
9 ]* a) {! k: |% ?" P (setq oer *error* *error* err2)6 N- h" H) v& q) y: F
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5: ? h- |" r& l. }7 X8 q5 |( G
@" q$ ~; r$ W" t6 N7 V* C (setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))
5 n7 u6 Z; P& i/ f! Z- }( y; t1 l+ m. X& B2 a/ O
(if ht (setq h_text ht))
3 C# P: q1 E7 E' H; z! v x S4 V) p
4 {6 R0 ?7 D4 z: O l& v- G g
(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))
+ q% [ C1 x d9 H$ y j4 O, x/ o4 u) y5 D3 i1 N( ~+ l
(if (not ang) (setq ang 0.0))
7 d, V1 I! g7 v$ Y, D/ L
" h& D- X+ Q. a9 _- n/ [: z! M% \3 Q- K$ ~* Y" \
8 e7 L- w6 `6 P+ j& U+ U8 U3 ~. F0 B (setq pta (getpoint @: V8 [4 W @. D* h9 p% x4 G
"\nPick first corner. : "))5 q* B. j1 v- F7 ]$ @5 Q1 N" q. N1 \7 [
(setq pt (getcorner pta
5 N$ d5 o" J4 V4 J9 K7 h- x- o "\nPick second corner. : ")). Z/ L k. X, K5 r6 s7 c
. P' B- b0 X% d" c: P b1 G
1 q! u3 h; ], l& t" [3 g; v8 T! |' ?
(command "TEXT" "j" "M" "4700,2575" "0" (SETQ pt ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông Quy M«") ) (princ)
n" M# M7 {# g' Z' T) t
; A& {: w4 y7 j3 r+ J; n (command "TEXT" "j" "M" "4700,1325" "0" (SETQ pt ' "2 TÇng 1 Tum Thang") ) (princ); S. ^- A* @/ N& ^
# Y: M- P+ }5 e: l' y
(command "TEXT" "j" "M" "10600,2850" "0" (SETQ pt ' "Chñ Tr× :") ) (princ)
* \& T0 u# q2 W, n% W
8 Q* b3 d2 T! ] E6 Z F7 y (command "TEXT" "j" "M" "10600,1100" "0" (SETQ pt ' "TrÇn Ngäc Th¾ng") ) (princ)& d7 m5 ^, r/ d* D' n/ W) ^2 z: c
, ?' }6 I K8 j. c
(command "TEXT" "j" "M" "15250,2575" "0" (SETQ pt ' "H¹ng Môc :") ) (princ)
# I) J: A% m, D3 i% B$ }% ]/ E
: w m5 R* W$ S) r( t (command "TEXT" "j" "M" "15250,1950" "0" (SETQ pt ' "Nhµ ë Gia §×nh . Nhµ LiÒn KÒ") ) (princ)' a1 E/ S+ F C/ S) n( i$ X
3 ?" e' Y7 k$ B Z
(command "TEXT" "j" "M" "15250,1100" "0" (SETQ pt ' "Tel : 09.76.89.12.94") ) (princ)" |. \$ g$ J5 r" c. l2 s% [) c* L
* a+ G: Q! ~ G' Y7 M8 Y& \
(command "TEXT" "j" "M" "20250,2850" "0" (SETQ pt ' "ThiÕt KÕ :") ) (princ)2 A$ m' w0 S% G {
, d& `/ h j/ z5 K4 X
(command "TEXT" "j" "M" "20250,2300" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)- e5 W9 T4 X& L5 U S# ~
- O9 o" j* ^5 B, t- N% J
(command "TEXT" "j" "M" "20250,1600" "0" (SETQ pt ' "KiÓm Tra :") ) (princ)
1 B. @! g( P( q' d9 e# L- C- n l5 a3 a" p5 c( k5 R# j
(command "TEXT" "j" "M" "20250,1100" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)3 i8 N( c$ O. b( O. C$ @" j
+ e3 E2 C" W5 C% L+ v3 V! q1 P (command "TEXT" "j" "M" "23500,2850" "0" (SETQ pt ' "TØ LÖ :") ) (princ)
; r) R$ r& A& |% [' l; z
& H* f) U, u4 p( I0 U, g5 w (command "TEXT" "j" "M" "23500,2300" "0" (SETQ pt ' "1:75") ) (princ)
: @# T9 Q) b" ~/ U [, o8 q
9 V3 s( O6 _1 { (command "TEXT" "j" "M" "23500,1600" "0" (SETQ pt ' "Ngµy :") ) (princ)+ @9 Q+ L' h( L! y2 D+ N
8 Z6 b g* k& V Y3 t0 j (command "TEXT" "j" "M" "23500,1100" "0" (SETQ pt ' "2026.07.02") ) (princ)4 ^8 R" p! {# C; c V, H
6 b3 T p7 x% ~& {
(command "TEXT" "j" "M" "26750,2850" "0" (SETQ pt ' "Tªn B¶n VÏ :") ) (princ)0 Z% a# n& R# K
# {) A- |+ ?2 z, h
(command "TEXT" "j" "M" "26750,2300" "0" (SETQ pt ' "MÆt B»ng TÇng 1 + 2") ) (princ)
6 Z: z) y- }6 w o
& L9 {0 J0 j' O! u (command "TEXT" "j" "M" "26750,1600" "0" (SETQ pt ' "Ký HiÖu :") ) (princ)- G& @8 `* ^3 p
1 o6 F% P# c* ^& e, A! q" G# v
(command "TEXT" "j" "M" "26750,1100" "0" (SETQ pt ' "KT-01") ) (princ)
4 a8 y w: K& t2 o8 i+ y3 o( d5 V8 c+ H8 O9 c# n3 |
(setq ptc (list (car ptb)(cadr pta)))
- W7 o% z# l, B+ s9 D) P (setq ptd (list (car pta)(cadr ptb)))
@( S8 _" h+ c/ ~& K9 ~* W2 h (setq ang (angle pta ptb))
/ k% z7 f+ ?/ E! D* A* _" L (setq d1 (/(distance pta ptb) 2))
: I2 l0 K. s4 e) ? (setq cp (polar pta (- ang (dtr 0)) d1))9 I2 K) X+ l. o+ [, m1 x
(setq X (distance pta ptc))$ E5 t3 i; i& H( u* O0 y
(setq Y (distance pta ptd))
6 p' ?8 ]; ~+ v (setq X1 (rtos x 2 1))
7 d {, [3 H H& Y (setq Y1 (rtos y 2 1))
$ @0 d( C6 U( W5 }! R (setq rmsz (strcat "(" X1 " x " Y1 ")"))! c4 d7 W5 ^; W, s+ e4 O' j9 L5 Y
(command "TEXT" "c" cp "0" CPT "_text" "" rmsz))! f" o5 s! s5 j. d
(defun dtr (angg)
+ t) n" A4 s* B0 c) I/ S5 k' c (* pi (/ angg 180.0)))
% o$ ]. ?: H$ U4 p- S0 i* u& `% d' ~2 z( c
;;; ============================GHI CHU Khung Ten========================7 v5 f) }7 C- g r0 h
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
6 b9 w3 j; R2 x% X5 ?8 M+ M, y;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ==================== H% T& ~9 `1 o0 K/ M1 V) f
;;; =======================Thuong Dung Font Romant.vnh===================
% o4 V4 D/ T! Q) b1 O# e
- U- ^6 ]! Q; I$ _(defun c:ipt (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)7 O$ n" G2 i- o& }+ ~" l" m6 d4 Z
(setq oer *error* *error* err2)
) b. q" Y, H4 ?/ C" _$ S (if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5/ U# T! O g* P( o$ H
8 z& ?3 Z. y3 U6 |8 R& f6 c (setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))
0 @8 g/ n" x9 i- P! }
9 K2 ]5 k( [2 L. Y, f# g0 s; ] (if ht (setq h_text ht))# b& a% G& A1 w
: _( ^/ G+ `, B( t0 o: \
( h0 r5 _- n v9 Q(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: ")) G& i3 Q* M: m2 S( l1 ^2 n8 t
1 ~ s* Y0 g5 i$ c# {7 {
(if (not ang) (setq ang 0.0))- ~- L6 k$ J( [" e
& C% A: m) b+ u( o0 v0 i7 O! C
. c! r8 W8 c" B1 s/ Q
1 v' S u+ C* r/ c( F* L (setq pta (getpoint
2 ] Y/ m; \) ~. T. c, G1 S$ W! G3 R4 H "\nPick first corner. : "))0 f( p' z1 q( T0 w
(setq pt (getcorner pta
" \$ D7 p6 @1 } "\nPick second corner. : "))
6 Z7 ?" i0 n/ u3 Z
9 x, k( n8 d" q7 c+ s3 Y& p/ }. }3 @* F" y
(command "TEXT" "j" "M" "5450,2575" "0" (SETQ pt ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông Quy M«") ) (princ)
: A; r1 p2 u% C- }( b# g6 Q
2 ]4 U4 N" j4 L9 z2 d9 k (command "TEXT" "j" "M" "5450,1325" "0" (SETQ pt ' "2 TÇng 1 Tum Thang") ) (princ)
( `3 U% D8 a) @8 L7 S
9 e0 {9 t7 d0 ?' K/ a" g" k8 V (command "TEXT" "j" "M" "10600,2850" "0" (SETQ pt ' "Chñ Tr× :") ) (princ)' k3 x' m. `; y: @9 |& l
7 S' O4 S: }4 A O- B
(command "TEXT" "j" "M" "10600,1100" "0" (SETQ pt ' "TrÇn Ngäc Th¾ng") ) (princ)5 x y( ^# {6 [9 S: g
7 b6 _' J, ?: }) `' |1 _ (command "TEXT" "j" "M" "15250,2575" "0" (SETQ pt ' "H¹ng Môc :") ) (princ)
4 l' {3 S1 R4 s
7 j) r6 k5 p$ w6 q (command "TEXT" "j" "M" "15250,1950" "0" (SETQ pt ' "Nhµ ë Gia §×nh . Nhµ LiÒn KÒ") ) (princ)
7 z, h6 e4 N N8 h/ K
6 H6 N/ z7 i( ` m (command "TEXT" "j" "M" "15250,1100" "0" (SETQ pt ' "Tel : 09.76.89.12.94") ) (princ)8 s' {3 }# {) M
2 _ a; O8 n8 m6 |3 s
(command "TEXT" "j" "M" "20250,2850" "0" (SETQ pt ' "ThiÕt KÕ :") ) (princ), W2 e, i/ t0 m, r1 U6 z( u, a
) c$ ?, N: S; `3 u5 Y
(command "TEXT" "j" "M" "20250,2300" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
# ?' [% t W5 [
3 r& K8 @. m# s7 N (command "TEXT" "j" "M" "20250,1600" "0" (SETQ pt ' "KiÓm Tra :") ) (princ)
1 v) g6 t* a& O& G1 C% L0 Z
( S, H0 I; q+ ^, l$ V (command "TEXT" "j" "M" "20250,1100" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
4 q I6 ^& m$ ~1 w# n% `6 {' D4 d2 p$ R1 `
(command "TEXT" "j" "M" "23500,2850" "0" (SETQ pt ' "TØ LÖ :") ) (princ)0 f) ]; h2 N% s5 T; r! p+ |
0 w( z, ]6 z, }" V: E
(command "TEXT" "j" "M" "23500,2300" "0" (SETQ pt ' "1:75") ) (princ)
- ]6 v7 V* h4 {& L& f8 W: A& t+ y2 X
(command "TEXT" "j" "M" "23500,1600" "0" (SETQ pt ' "Ngµy :") ) (princ)
' H- ^% @6 h7 M" r/ D# F! g
! {- ]' b% P* ?- J% D* ^1 u( ` B (command "TEXT" "j" "M" "23500,1100" "0" (SETQ pt ' "2026.07.02") ) (princ)
8 \+ x8 v4 b! ` ^0 C3 ]
$ ^. o5 t: E% a" }/ P% z8 T (command "TEXT" "j" "M" "26750,2850" "0" (SETQ pt ' "Tªn B¶n VÏ :") ) (princ)
! s( H+ P" T- [% @8 G* H4 L0 L9 ]$ M$ j( j D
(command "TEXT" "j" "M" "26750,2300" "0" (SETQ pt ' "MÆt B»ng TÇng 1 + 2") ) (princ)1 U7 |5 _6 ~. f# J
# Z* }4 {7 \4 w0 t% r
(command "TEXT" "j" "M" "26750,1600" "0" (SETQ pt ' "Ký HiÖu :") ) (princ)
+ B n, y x( `- K% x+ j) z# D, d. k. D9 C
(command "TEXT" "j" "M" "26750,1100" "0" (SETQ pt ' "KT-01") ) (princ)
5 ?7 ]0 t, Q h7 I; e2 W# I z/ r
3 q* [) A3 r8 U& C- C7 J8 l (setq ptc (list (car ptb)(cadr pta)))8 J5 H: q1 i: ]1 \4 ~" ?% u7 v
(setq ptd (list (car pta)(cadr ptb)))
4 u* p: L/ V6 E( a( F* H (setq ang (angle pta ptb))4 h! r$ ?/ C! T$ G0 f) t
(setq d1 (/(distance pta ptb) 2)) e/ ]7 L5 v4 P- z9 O, E2 q
(setq cp (polar pta (- ang (dtr 0)) d1))% U6 [+ A: l- U3 ]# H8 {, x3 e. G- k* Z
(setq X (distance pta ptc))# L6 V. I# D3 N7 ~
(setq Y (distance pta ptd))( Z( @: X R$ o* I( {- C6 R
(setq X1 (rtos x 2 1))
" y1 u* r( t k0 H; ^ (setq Y1 (rtos y 2 1))
6 J: F1 ~+ K& k2 B3 K) e% F (setq rmsz (strcat "(" X1 " x " Y1 ")"))
' h7 i! o6 E9 Z: x: d (command "TEXT" "c" cp "0" CPT "_text" "" rmsz))0 s2 i- g* o9 Y2 v/ b0 e- \" D
(defun dtr (angg)4 D9 `, w" V$ Q/ _1 t6 D- c
(* pi (/ angg 180.0)))
. R+ K4 H$ }* N) Q
; K8 o" p& Y; f/ |: s. A;;; ============================GHI CHU Khung Ten========================
- @6 U7 D$ m8 r& ?9 F;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
0 W) ^7 X1 F% _ U;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================
& f! H" e2 `& h7 n( b;;; =======================Thuong Dung Font Romant.vnh===================
& \; l u0 g6 L, h7 }
! `& Y1 G! B% p- h- z(defun c:iza (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)$ y: |0 {* Y3 d# x9 F
(setq oer *error* *error* err2)9 E- [1 O+ E' e1 E! Y! D; q
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5
" w, P/ A) G0 a8 y$ v$ Z/ l
7 J" k3 _) N# d! P (setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))
0 M2 H/ F' O* b7 @5 @- W @0 {0 V" [) [( N* J
(if ht (setq h_text ht))
" ~; z: Z, j8 v; U0 \. z- V- b+ _9 X: W9 g0 H$ m! i
9 |% h: N# u+ n, [% z( `3 W8 K, B2 D
(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))/ K% @0 e$ E2 ^8 n
+ J+ i$ @& o1 N (if (not ang) (setq ang 0.0))
: ?& _* x2 H. _2 A9 L" b+ @+ f& Q* F1 Z1 H* C( p- V) j5 D$ \+ J
7 B9 ?" Z* {. S4 c8 M
: Y8 a3 Q; S' |# F! \7 ^- z (setq pta (getpoint
# c' V' i0 X& O4 c/ e "\nPick first corner. : "))( V3 O/ Q! \5 d z: D/ R
(setq pt (getcorner pta
# x- x" h9 |7 l& |0 F "\nPick second corner. : "))# k9 N+ {& j* B( S& D
6 A- w$ _! A# | @
( f9 u" W+ o* ^: ]; T6 w7 e( |
; ^! I; t) @9 W! t. | (command "TEXT" "j" "M" "25000,19800" "0" (SETQ pt ' "STT") ) (princ)
7 b- { E3 n' `2 n
# m& W0 t" q) f (command "TEXT" "j" "M" "25000,18712.5" "0" (SETQ pt ' "1") ) (princ)
4 E0 p. e) [: F& ^# s( n5 d+ @
7 S- N0 F' F1 M2 s% Y) C8 j (command "TEXT" "j" "M" "25000,17537.5" "0" (SETQ pt ' "2") ) (princ)6 S( C' C# B: Y
7 K' I2 ]( A3 T' a8 b: T
; i; d+ j: k& z: c% n (command "TEXT" "j" "M" "27250,19800" "0" (SETQ pt ' "Ngµy Söa Hå S¬") ) (princ)
, Z- p+ ?. F8 s" @' Y' g& V. g. j$ ^4 b' H% K& C6 T/ Q- p
(command "TEXT" "j" "M" "27250,18712.5" "0" (SETQ pt ' "15.05.1997") ) (princ). X$ S8 A- ?: H' l# O, f
% E: u% [7 k/ o( f" N
(command "TEXT" "j" "M" "27250,17537.5" "0" (SETQ pt ' "04.07.2026") ) (princ)
, ^4 R6 X n5 r5 V0 @# X; _+ ]( u5 A) A! i
+ L1 z, b' P, s+ |: D6 J8 Z( s
(command "TEXT" "j" "M" "26750,16600" "0" (SETQ pt ' "C¤NG TY - Corporation") ) (princ)
+ I+ y# D0 Y1 s
6 |" x% J* R9 i0 Z" I3 z0 n (command "TEXT" "j" "M" "26750,16016" "0" (SETQ pt ' "ZENNI.S.Z.T.K") ) (princ)
2 T9 w2 [2 P& u& b. P
[$ u) V( S9 T. e (command "TEXT" "j" "M" "26750,15433" "0" (SETQ pt ' "§Þa ChØ C¤NG TY") ) (princ)/ Q' A( s- v7 b* r/ u% m9 q
$ f# M8 j; t/ F. [7 @4 n0 a, k4 x7 B (command "TEXT" "j" "M" "26750,14850" "0" (SETQ pt ' "§Þa ChØ : 00.00.00.00.00") ) (princ)4 H: F3 l3 [6 U! \" Q/ X
" p- V! L1 a' K( [" ]
4 C; z/ I& }" Q \4 W+ o (command "TEXT" "j" "M" "26750,14100" "0" (SETQ pt ' "H¹ng Môc : Part Project") ) (princ)1 C: W, ?0 J) g( U3 h
K, v4 E9 p* E2 E- g7 X, I9 J Z. w
(command "TEXT" "j" "M" "26750,13516" "0" (SETQ pt ' "Nhµ ë Gia §×nh") ) (princ)0 c/ s. [% p9 O; [
, _$ A; w6 W2 [( F (command "TEXT" "j" "M" "26750,12933" "0" (SETQ pt ' "Nhµ LiÒn KÒ") ) (princ)
7 s7 C( h8 w9 |# w6 ~0 z# \* ?, l$ v5 b
(command "TEXT" "j" "M" "26750,12350" "0" (SETQ pt ' "Tel : 00.00.00.00.00") ) (princ)
; j$ {* L0 E$ Y, Z$ x" `/ r$ A$ g( H* Q% P( W
, b, F( N' Q% Q! x& E3 y4 A" F (command "TEXT" "j" "M" "26750,11600" "0" (SETQ pt ' "Gi¸m §èc : Director") ) (princ)
8 \" A; i4 e# N( [( r- n. C
3 _0 u/ _* q. o" K: h) Y- j (command "TEXT" "j" "M" "26750,10475" "0" (SETQ pt ' "ZENNI.S.Z.T.K") ) (princ)
6 Q1 T- D9 b6 \2 V% D" q& i* U7 P/ I9 ]
(command "TEXT" "j" "M" "26750,9725" "0" (SETQ pt ' "Chñ Tr× : Main Project") ) (princ)
: n% k+ Y5 w- |! w! L1 V. \1 W
4 b. p/ y& S2 _- q- {8 X2 B6 ` (command "TEXT" "j" "M" "26750,8600" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)& g- E: E0 t! [# S4 D
& b: M! _; z2 q' W3 y+ m (command "TEXT" "j" "M" "26750,7850" "0" (SETQ pt ' "ThiÕt KÕ Vµ VÏ : Design") ) (princ)! w" i. u+ x) L' n* g- e1 ~
1 P) x, q( o% h: V, y (command "TEXT" "j" "M" "26750,6725" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)+ F5 `8 r1 K P1 i& t0 j
# H( t- l6 P% Q
(command "TEXT" "j" "M" "26750,5975" "0" (SETQ pt ' "KiÓm Tra : Checking") ) (princ)* q2 I2 K2 E7 b P2 r8 u& n
; v$ N6 r) D* u- M (command "TEXT" "j" "M" "26750,4850" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
7 a! G% D7 w; G1 X2 q
4 Q) x4 Z8 A% \- u2 L7 r% p# B: L, C4 ]( L5 q% h
8 |) C. K0 g1 e" B; r' a1 V (command "TEXT" "j" "M" "25625,4100" "0" (SETQ pt ' "TØ LÖ-Khæ") ) (princ)# l- F; t+ e5 W- M/ l2 v
( Q6 M' R" {" ~0 b/ _4 z
(command "TEXT" "j" "M" "25625,3600" "0" (SETQ pt ' "1:75 - A4") ) (princ)3 r3 h9 P7 [7 W0 i6 P' V- K
* ^8 i0 b& [( z/ G' v+ g
(command "TEXT" "j" "M" "27875,4100" "0" (SETQ pt ' "Ngµy Xong :") ) (princ)
: A" y5 S9 I' {/ x9 v2 Z
6 d/ v( B0 s8 {! A (command "TEXT" "j" "M" "27875,3600" "0" (SETQ pt ' "2026.07.04") ) (princ)
, V1 P; ^; V' f+ _8 U* X5 |9 b! h& z
(command "TEXT" "j" "M" "26750,2850" "0" (SETQ pt ' "Tªn B¶n VÏ :") ) (princ)
1 x# u b, S* n0 K+ k
! [) C0 p8 W! E& \- c0 j9 c (command "TEXT" "j" "M" "26750,2300" "0" (SETQ pt ' "MÆt B»ng TÇng 1 + 2") ) (princ)8 h2 a6 l5 v! M( t$ Q. a, A
. I/ [5 P* Y( f+ L7 Z
(command "TEXT" "j" "M" "26750,1600" "0" (SETQ pt ' "Ký HiÖu :") ) (princ)
% I& ^" n4 a% z9 B: Q
! D' i3 n! y, ^; V i1 L. }) Y3 i |$ o (command "TEXT" "j" "M" "26750,1100" "0" (SETQ pt ' "KT-01") ) (princ)
+ @! @# y1 d( b3 h3 R5 ?6 B6 [; N) h, ~* x5 K# S0 @
(setq ptc (list (car ptb)(cadr pta)))
: Y' A1 J) C: p: } (setq ptd (list (car pta)(cadr ptb)))
' a8 Q, t* W- L) X% p4 _3 N (setq ang (angle pta ptb))
; |* f+ A" P7 |) P* S (setq d1 (/(distance pta ptb) 2)): k0 f3 Y/ h: p. n+ m$ w' l7 O
(setq cp (polar pta (- ang (dtr 0)) d1))
+ T& K0 b. i. g/ [8 E. y# | (setq X (distance pta ptc))( Q0 y6 M8 ^- j7 S5 B! O/ E! j
(setq Y (distance pta ptd))
1 j0 N5 X2 P, }9 k' s/ X( R (setq X1 (rtos x 2 1))/ q% m/ k5 `! K# Q. o2 Y6 d
(setq Y1 (rtos y 2 1))/ _" f! n4 @, w2 @( a2 c
(setq rmsz (strcat "(" X1 " x " Y1 ")"))8 x4 I3 w2 Y+ U9 V
(command "TEXT" "c" cp "0" CPT "_text" "" rmsz))6 @& j: v9 r, b, b- P
(defun dtr (angg)
0 R2 |- P0 I- X: }# s (* pi (/ angg 180.0)))
- Z+ @% b# N- @+ m& f" Q$ z
7 T3 m- i, }1 m& l9 m;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
. y3 Z2 f' d* B( G5 e U' z! T;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================0 m) n; V6 l3 N8 c& T
;;; =======================Thuong Dung Font Romant.vnh===================4 O p$ G- @" k) C7 n1 x$ N& i# L
5 H; Z& g: h: ~(defun c:pta4 (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)7 Y$ K: E1 P/ B8 \4 l- ^
(setq oer *error* *error* err2)8 q0 P+ y# D9 e2 ]% @
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5
: `; e$ S& `4 o' O4 Z% S
5 s n* L$ c: d- U; p& ?7 ` (setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))
" X, U9 i8 V4 m: ^( }8 E2 y' {. g" s9 m S! [/ O* D& @$ J8 w) j
(if ht (setq h_text ht))
+ b7 }9 F0 y4 _5 A4 p* j& x
' S/ o& W% m8 X/ ]7 }
0 X- I. N7 |7 |' h(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))
) A1 F& A% e S
9 _9 V# a9 V7 Z* B (if (not ang) (setq ang 0.0))3 j1 u2 @3 @$ I5 {- q- O& k/ i0 a
! m4 I$ r$ s% T
: D# A/ M5 [2 G4 }, ]6 q7 l0 O3 F
8 ]) u3 [, `; E: b* Q& S (setq pta (getpoint
/ P+ Y$ F# }3 n! m2 k "\nPick first corner. : ")) W1 z6 W" d; _9 }# {* T3 r% h
(setq pt (getcorner pta
" S# F* O2 N7 M1 b7 Y "\nPick second corner. : "))
5 [) ?# y* a& }1 O
- G: ]. ~2 x# s: z0 p7 D
4 i8 V5 I; ~* K% b" L, c- c/ W W (command "POINT" "4700,2575" ) (princ)
4 P- ?9 U( s- S( X& X5 z. y6 m# n& R* P5 b# _+ m# u
(command "POINT" "4700,1325" ) (princ)
8 I4 s4 k! r+ D- ?# W* N" F$ z: l( [- r+ S% @$ E( T/ r
(command "POINT" "10600,2850" ) (princ)& Y0 O9 i7 w4 ]
1 }& F* @4 b. w6 C: a
(command "POINT" "10600,1100" ) (princ)! L) f9 v& t3 D" ?$ j
6 h# Q' \4 ?/ n& @4 _2 d
(command "POINT" "15250,2575" ) (princ)
; V' p3 n4 P5 D8 H2 D3 T% ~2 `, R! i& H: f! k8 P
(command "POINT" "15250,1950" ) (princ)8 \" l% z, S* b. t" E0 ?1 ?
& U9 M. { }9 w* k+ Z (command "POINT" "15250,1100" ) (princ)
/ y( J/ }. Q$ d$ b9 w. p7 V8 ]2 g0 I
(command "POINT" "20250,2850" ) (princ)' I4 p" @9 D4 c9 r2 t
3 @1 _% o: W) x* K8 \: ]# q9 M+ }7 K d (command "POINT" "20250,2300" ) (princ)4 b( C0 L/ c: H3 h5 D
$ _) g# A! k/ ^$ u/ L2 K* D, B (command "POINT" "20250,1600" ) (princ)
8 ~! h$ w |9 ?, `; U( J; J( o5 k! ~; f
(command "POINT" "20250,1100" ) (princ)
4 k0 ?* A/ \, k/ ^! n1 X8 \2 @3 a) z, V0 ?
(command "POINT" "23500,2850" ) (princ)
o: E7 W7 A, { Z: [1 q, y, r+ Q. k" r6 S/ M, D Y
(command "POINT" "23500,2300" ) (princ)
, w1 N1 J$ E" d' z1 M) x i& u' l( Z4 Z( X
(command "POINT" "23500,1600" ) (princ). M) _3 m+ I2 [2 a" A7 t" \# b
- \! z8 |7 m* \. W* v+ a
(command "POINT" "23500,1100" ) (princ)
/ t$ |4 @ D& w. x* Y- ?% _) Q" u6 ^( q# i1 \
(command "POINT" "26750,2850" ) (princ)8 d# p& U1 [& y! V
" x/ i+ h4 Y2 ^- T. v
(command "POINT" "26750,2300" ) (princ)
. m( b+ d/ v3 ^
k2 X% g* Y5 Z% c (command "POINT" "26750,1600" ) (princ)
& t- y6 m. i/ r2 |# S% R! N
1 A% O6 |) C* Y! G, v (command "POINT" "26750,1100" ) (princ)+ j, n* s7 I: w
W2 t$ e9 j4 @ ^- N# i5 w
(setq ptc (list (car ptb)(cadr pta)))
7 G6 X Q* ~6 }8 L) V1 a- w (setq ptd (list (car pta)(cadr ptb)))
2 h1 L( E3 n6 G; U2 D6 M' O6 a (setq ang (angle pta ptb))0 n/ ?# D5 B0 @ {) w0 f6 Y* B
(setq d1 (/(distance pta ptb) 2))
1 B b6 e7 I$ [) W0 Y (setq cp (polar pta (- ang (dtr 0)) d1))
/ e: Q/ o7 G3 M+ F (setq X (distance pta ptc))
9 j9 h4 |6 {: y( j (setq Y (distance pta ptd))) |+ }1 F8 |! J$ ?; k
(setq X1 (rtos x 2 1))+ L9 h0 Y& q |' c
(setq Y1 (rtos y 2 1))+ v8 Y0 R$ G4 X" a% {0 Z# D
(setq rmsz (strcat "(" X1 " x " Y1 ")"))" e% d7 q, H+ e* m8 c
(command "TEXT" "c" cp "0" CPT "_text" "" rmsz))
$ T2 y: a+ [$ F (defun dtr (angg)4 C( U$ c4 T# [$ e! R- v
(* pi (/ angg 180.0)))
: ^- w* T! i# @. }. ]
; t1 \, {: L+ \! B! `! ?;=====================================================================# k7 H2 T& A9 l I+ n
;====================DAT KHO GIAY BAN VE - KIEU 1=====================' |1 N1 ?* } N1 V: a/ N5 M
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
! \$ s A. n% [+ L& z7 U5 z$ ]
8 f- E9 ~% i" s1 R# D(Defun c:a6 ()
# }; O, f0 n$ \- E* R& h1 v0 Y (setq mv_sc 100);Ti le ban ve# V8 W& p! h+ L _
(setq x4 74.25)
6 M5 q; u7 D5 T1 G2 W (setq y4 52.5)
* p( ^: w. t* y8 p4 a (setq x4 (* mv_sc x4) / r* A B9 g$ T) N3 G4 A1 h# S1 g
y4 (* mv_sc y4) )
/ d4 L# j' }% Q, Y, p (command
8 {. l1 Z& l$ R$ z" A( D' E "LIMITS" "0,0" (list x4 y4)8 k& o! Y) ?' q5 K7 p
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
c C+ A/ h: t- j1 a "RECTANG" "125,125" "@7175,5000"
1 I8 h) T% }2 x1 j "RECTANG" "175,175" "@7075,4900". C4 h& }7 \6 t/ k- c0 E
"ZOOM" "_a" ))5 B7 r0 A1 @& N4 X: j
;=====================================================================
$ s3 F; f2 i) N( @+ R' C m5 k* \(Defun c:a5 ()
: X" M4 o& C8 P9 c (setq mv_sc 100);Ti le ban ve! s, p, s* ^1 e5 b9 X! M
(setq x4 147.5)$ X$ I2 c, P: T0 k4 v" t
(setq y4 104)2 p! A8 X0 J9 J
(setq x4 (* mv_sc x4)
, l; ~, A2 ?: h y4 (* mv_sc y4) )
. B7 O; R* x! ` (command ! U1 B, N7 v9 D, `1 b$ K5 c
"LIMITS" "0,0" (list x4 y4)! Z2 G( I; E. ]6 [
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
9 A; G4 E( d7 T' b1 S "RECTANG" "250,250" "@14350,10000") ]* X+ G% e* S# c# I
"RECTANG" "350,350" "@14150,9800"
, B2 @- R3 B" ?2 v4 w p "ZOOM" "_a" ))$ c) C' u7 m1 o! L' \
;=====================================================================
1 G- {2 C9 }; Y; C(Defun c:a4 ()3 i9 `$ ]/ G& `" T: M5 V. c
(setq mv_sc 100);Ti le ban ve. n+ C% f1 _" Y% a$ w4 o4 l+ L3 R2 ]
(setq x4 297)
6 @/ P1 ]1 b. k: ~6 M. g! ^4 C (setq y4 210)
$ p/ h1 U0 p" C& {2 y: d (setq x4 (* mv_sc x4) " A2 m6 C) q% p% m/ D+ K
y4 (* mv_sc y4) )
2 B2 K; ?8 w* ~, S" J5 V' [ (command # }' O! ^. h) t. E" d7 l
"LIMITS" "0,0" (list x4 y4)
1 y) I x0 u" @" r6 @ "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C", ?, H: |$ t$ _7 e1 |
"RECTANG" "500,500" "@28700,20000": _( t; _% s& [! ]1 N
"RECTANG" "700,700" "@28300,19600"
7 X: g2 L9 U" d: E "ZOOM" "_a" ))
: K% Q0 E# W$ N3 s$ w, _;=====================================================================
. e* K) x, G7 u4 g(Defun c:a3 ()
; V! G4 R- L2 b. }4 x! _# B (setq mv_sc 100), p, k9 a4 Q( |1 b
(setq x3 420)$ u$ U- }7 J4 j# w. y3 P% k, B+ u
(setq y3 297)
; ^7 h/ m2 L' k* Q- Y3 f (setq x3 (* mv_sc x3) 1 ]" E) d& P6 u: d
y3 (* mv_sc y3) )
$ B- \* J! I& U (command
0 l: ? T* K4 g# G6 F2 N1 e0 ~ "LIMITS" "0,0" (list x3 y3)
% W! w5 m/ \* E- O9 y( l- h- t "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
4 s6 B4 Y2 }( a- [ "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
9 R0 }: l; n) M- }0 ^9 b "RECTANG" "990,990" "@40024.28571429,27720"
8 X4 v# o: Z6 k" M "ZOOM" "_a" ))
, U% }* w/ a, N$ _: N# V0 S;=====================================================================; T# _$ c4 v( K0 g2 V$ [
(Defun c:a2 ()
( |) l/ @8 M. Q4 Q1 S (setq mv_sc 100)
1 i6 o' M: o6 C" ?( @ (setq x2 594)
( G' _. _! s" @& N$ F9 f (setq y2 420)% h1 ^! F$ K( N
(setq x2 (* mv_sc x2) : K5 j1 d: O+ l% ?
y2 (* mv_sc y2) )% U6 C) h9 F+ D
(command 3 h- F+ @! J0 d3 r# a+ W, r% Y) b; \
"LIMITS" "0,0" (list x2 y2)
5 g4 ^, U) s: u "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
: `& m: m7 F0 T4 Z4 J6 N Y* m "RECTANG" "1000,1000" "@57400,40000"1 l: {2 U: ^- A/ ^4 s
"RECTANG" "1400,1400" "@56600,39200"
: E8 j& M" g U. j& K6 o "ZOOM" "_a" ))
" r% Q9 ^/ k& e. Y0 d;=====================================================================
# v, n/ b2 s% N! o M$ }7 `6 H4 Z(Defun c:a1 ()$ r" g& l- r/ o' P$ n
(setq mv_sc 100)
4 Z0 A& @2 @/ q6 x- X5 b4 F (setq x1 840)9 k7 s. t2 X: A' x6 j' w
(setq y1 594)
* S- E2 ]( P& ~" d; K, g- V# a- ^* S' K (setq x1 (* mv_sc x1) $ Z) E4 a' \8 S4 H
y1 (* mv_sc y1) )& j4 @, R$ b7 K w
(command * ?3 B2 g: b' w) Q
"LIMITS" "0,0" (list x1 y1)
1 Q7 v% l+ s5 T8 L8 p" `0 b "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
: @& x7 a8 B% j "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"7 F T3 e. U$ r$ ?% U6 e3 I9 B/ K
"RECTANG" "1980,1980" "@80048.57142857,55440"
' ` z) Y* q3 C3 y+ ~7 `: b; X "ZOOM" "_a" ))* Q" M/ ]! L( ], Y0 E
;=====================================================================
& | d3 t3 f T8 j(Defun c:a0 ()
2 k: L6 w" d \+ S5 `# | (setq mv_sc 100)8 a, e3 Y4 l- @. a& s
(setq x0 1188)
: Q% w7 R3 F3 o/ F; d, l/ v# K (setq y0 840)
" I2 N$ ]4 R( c8 t (setq x0 (* mv_sc x0) + K# S# q1 w1 C' O/ ?; I/ z/ L2 V
y0 (* mv_sc y0) ); H& r2 B& L- E6 L+ `# ]& @) U1 G
(command 3 A: P2 l) ?8 b
"LIMITS" "0,0" (list x0 y0)# E: m# t6 ?+ l. x6 u
"PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
! W$ `4 i3 |" R5 a* p3 M "RECTANG" "2000,2000" "@114800,80000"
0 x5 k+ @: S$ k. p: F' A5 w( I "RECTANG" "2800,2800" "@113200,78400"( ?# Y. f# I* x4 q
"ZOOM" "_a" ))( g0 V0 W X: l; }) @8 B9 w
. g. w) f, Y7 J9 s* T; u* O
;=====================================================================
+ [# }, s$ t/ M; S0 e* ^2 g;====================DAT KHO GIAY BAN VE - KIEU 2=====================
% U& I; R& @6 K; }3 W;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
) |: _' W7 W9 o! o+ _% R+ `# X: ?
+ r' K! \$ Z* s$ w& L$ W(Defun c:6a ()3 K6 m7 V0 J5 J9 G& o
(setq mv_sc 100);Ti le ban ve
' }: V5 m5 v' e9 ?3 V* ~ (setq x4 74.25), }. g/ \7 f6 U9 h+ U
(setq y4 52.5)
) g/ ?! n( Z/ s5 h (setq x4 (* mv_sc x4) ) m" K3 }* b; a) g0 ^& E
y4 (* mv_sc y4) ); a8 {8 S( R4 _3 G( V& a2 c0 ], a0 `
(command : X- X+ n. E' `
"LIMITS" "0,0" (list x4 y4)
' z, z* U8 g2 P# l; a "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"% d! V5 Q9 k" t) _ O! j
"RECTANG" "505,125" "@6800,5000"
3 ^5 M2 x6 V& Q, L5 e/ ^ "RECTANG" "555,175" "@6700,4900"
, T4 Z; Z4 u+ N3 {. p "ZOOM" "_a" ))
8 @/ r" E, Z" X! g) [# j O;=====================================================================
7 f8 t2 L; ~9 o, p7 Z(Defun c:5a ()4 `! k( h; O' m3 A9 ^- H6 n
(setq mv_sc 100);Ti le ban ve
. c$ h$ _1 ^0 v. e- I( ?, U (setq x4 148.5)
! }, k8 D( \/ g1 a. |- _ (setq y4 105), d+ R* G4 ^8 t* M6 X8 e
(setq x4 (* mv_sc x4)
2 M& }- E- O; w( M. j2 K y4 (* mv_sc y4) )9 ~: w5 n* e0 h
(command
- ?( [' m) l7 ^& ^% l "LIMITS" "0,0" (list x4 y4)
5 Z" h; U" s2 n4 T" M; f "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
+ p$ [) S* M5 J1 r "RECTANG" "1000,250" "@13600,10000"0 E# F1 h2 ?: _6 |! P
"RECTANG" "1100,350" "@13400,9800"
2 l5 j- I( v2 W4 r. s# Y "ZOOM" "_a" )); w6 x: m6 ~- O& t8 w
;=====================================================================
6 p2 V& E2 |& X" u' l- r8 J z) V/ ^ u(Defun c:4a ()
* V: Y; V9 v5 N+ v (setq mv_sc 100);Ti le ban ve: Z* M1 v" N$ S! n8 V
(setq x4 297), f) g9 y y7 o( g& Z& H7 b6 r" S
(setq y4 210)
. c# x6 F. d" \* ]& y& D# A3 | (setq x4 (* mv_sc x4) / c4 t( i3 K$ a2 S
y4 (* mv_sc y4) ). j6 F8 L* K7 X; W- I) b. J3 p3 X
(command
# Y6 K- }4 `5 m" h1 t6 ~" g "LIMITS" "0,0" (list x4 y4); W) y( I6 ~: n+ [ z( K/ k
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
! U, J1 Q& i( a2 A "RECTANG" "2000,500" "@27200,20000"7 l2 Z! }+ x O' \6 _9 {% `% B6 P3 j, ?
"RECTANG" "2200,700" "@26800,19600"; X6 x4 L+ B' t2 J3 b: [0 {
"ZOOM" "_a" ))
9 T- v$ n+ Z; ~& ^;=====================================================================
3 i; y3 P6 _6 E; s h3 m(Defun c:3a ()
7 {5 T# Z: h! S1 [ (setq mv_sc 100)
' n* W" ~' c' n/ w3 N (setq x3 420.0428571429)
: s; _8 i( s/ |1 Y& N# a$ l' R/ T (setq y3 297)
' f. i- m9 q) g# g( y8 Z# y (setq x3 (* mv_sc x3) ) \2 d E: g9 r9 }3 s+ T2 R
y3 (* mv_sc y3) ): d6 {9 V* |1 [3 R1 y
(command
' R$ o: w& |3 t' U+ V# ]7 M/ U x5 X "LIMITS" "0,0" (list x3 y3)
! d4 ~5 u0 s! O" E( n% | "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
$ r2 [, b4 z' N "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
, F" K: L' H# e+ t a "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"5 C7 S# {7 S. e: X6 t/ i
"ZOOM" "_a" ))
1 v6 E1 O- Q& U5 [ r; p5 x;=====================================================================
) F: C; j2 A; t" [& h$ |(Defun c:2a ()
% l2 s P7 N- p: y1 c' r (setq mv_sc 100)7 |# D5 ^7 [9 w) y9 ^
(setq x2 594)
$ V4 ^! d: t- O8 S- S (setq y2 420)
5 X3 \: h3 a Z (setq x2 (* mv_sc x2)
) U8 B/ C0 V& {( Y' d+ f% M6 O y2 (* mv_sc y2) )
/ e3 Z* z/ R6 V' x (command ( |. n* L& j/ v- `
"LIMITS" "0,0" (list x2 y2)
5 c- O% v/ L! o& E "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
) @$ j; |3 U' q9 [ "RECTANG" "4000,1000" "@54400,40000"
& h. y" ^3 F) Z9 R) V# N2 ? "RECTANG" "4400,1400" "@53600,39200"' q. B7 m: @' u! i$ P
"ZOOM" "_a" ))5 O I" H$ D2 @
;=====================================================================
' Z* J) E9 i$ p$ b! i(Defun c:1a ()$ [& |' m5 g$ l7 I' Z
(setq mv_sc 100)
& X9 o- Y/ F) q6 n. A9 C' y (setq x1 840.0857142857)3 X" n- J/ Z& k. u0 S7 i
(setq y1 594) j3 y# e$ x/ n8 O4 |, ^! O) a* z
(setq x1 (* mv_sc x1) % g% h4 ~+ Q1 P1 Q
y1 (* mv_sc y1) )# P0 e! J! }; D: v: Y8 T. c4 Z
(command
: J% P) G0 y: l5 q$ R "LIMITS" "0,0" (list x1 y1)! f* t# I, Y% H8 G/ @0 m
"PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
( s5 n8 p# n( j9 u: i/ Z "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"1 O( n- I) Y* k5 h6 P1 {
"RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"& K; @& U8 J7 Y9 {' Z
"ZOOM" "_a" )). _" o' z Q( ^3 b
;=====================================================================
( w( }1 u' b/ _ V; D1 p6 X! ?(Defun c:0a ()
- N7 H! Q; k- l; b0 n, S+ K1 m' } (setq mv_sc 100)* e. f% Z/ Q' U% N( ?
(setq x0 1188) _& Q8 S- N4 d7 c
(setq y0 840)& }) Z0 l$ P5 T- g% x
(setq x0 (* mv_sc x0) 2 T+ l3 r* s, t( ]: o; K
y0 (* mv_sc y0) )
/ n5 H+ \( V) f (command
! R0 T! O2 h: d2 g2 R "LIMITS" "0,0" (list x0 y0)
) U# h* p) O! T0 L) } "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
. b& z( y) s8 m "RECTANG" "8000,2000" "@108800,80000"
- n; ~1 ?5 L+ r "RECTANG" "8800,2800" "@107200,78400"; ^) M5 t. c) }( s/ K
"ZOOM" "_a" ))& t% i. j( c! @+ q
6 J5 B5 F* D6 t. Z6 k
;=====================================================================* N: y0 @& t; u* C% `. F2 j
;==================DAT KhoGiay Theo KHO GIAY BAN VE===================6 [& R2 C/ b" F3 _
;=========================== Nguoi Khac ==============================
/ q! W5 |, D) O9 \- p6 S; h$ m7 o(defun c:khogiay (/ oldlst a b c d e f g h kho TL)
7 ^. P0 e/ E* R1 H(command "undo" "be")# R `; H1 c* c R5 J( ^1 v) R' }
(setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
/ K6 d& O5 d& o. q" M+ L; u$ n6 ]% G(setvar "CMDECHO" 0)" @' e, B* e1 I6 v% z
(setq a (getpoint "\n chon diem chen :"))
( H$ z# x, l2 g, G' Z2 c- ~(if (not TL) (setq TL 1.00))
) b' n* W) C. V& N, k, T7 M (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))2 E; C( b" \% L6 k( O t+ Q+ W. B
(if TL1 (setq TL TL1)). f6 U( Q9 @- ^/ P, |$ Q
(setvar "osmode" 0)3 U; e5 Y( d) g' [2 X: q: ]
(if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
% J U6 `3 S, R! c: v9 J(initget "0 1 2 3 4")
# s3 B/ H+ ]0 i4 |& u (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
. h- m+ z* U* M L (if (= kho "0")& n: T, m2 N& n) i2 _0 ^) z( s
(progn
/ ]8 p3 j. n5 { d& [ (setq b (polar a 0 (* TL 1189)))
, d% ^( Z" l8 ~" v+ o (setq c (polar b (/ pi 2) (* TL 841)))
9 t# V. L) {4 L5 b: H' i; m- b (setq d (polar a (/ pi 2) (* TL 841)))
/ v1 D% {9 M+ v4 w- b (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
7 C' l- ?" n* o! E. [5 O/ k (setq f (polar e 0 (- (* TL 1189) (* TL 24))))$ ~% X f2 y" z: \4 H7 u
(setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))" N" F# S/ Z# m( r+ ~" d
(setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
4 n3 a- p8 O7 O( @/ ?+ H (command "Pline" e f g h "c") 3 `3 X5 a y6 h7 |9 S
(command "change" "last" "" "properties" "layer" "0" "")
/ M: T( j/ m2 e: h D(setvar "cecolor" "4")% x* @ x2 k5 T, g
(command "Pline" a b c d "c")
7 l; j+ B/ i4 k7 n3 ^8 B# J(command "change" "last" "" "properties" "layer" "defpoints" "")))
$ R# q! {( u' O1 [* S (if (= kho "1")" g& g2 @' D+ T( x
(progn, [1 \# S4 G' f! K1 r
(setq b (polar a 0 (* TL 841)))
' V1 G" x9 [" Z0 a2 i) l) N (setq c (polar b (/ pi 2) (* TL 594)))
* R! `: g8 l( B- a/ X (setq d (polar a (/ pi 2) (* TL 594)))
; ~$ B3 @& S7 P n (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))" R' |- J7 h) \, N$ `
(setq f (polar e 0 (- (* TL 841) (* TL 24))))+ Y7 _0 i- P0 n
(setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
; m* S: a1 _9 t (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
* e- w# k$ j |# u+ D2 u: e (command "Pline" e f g h "c") 3 H+ E) g7 \( @! L
(command "change" "last" "" "properties" "layer" "0" "")! v& ~7 }3 M9 F* y, a4 }- r2 i& F
(setvar "cecolor" "4")7 V* R& b) I D: C
(command "Pline" a b c d "c")6 `. U0 r! P' O4 o0 p. Z
(command "change" "last" "" "properties" "layer" "defpoints" ""))), _ s' h5 g+ S6 l& T$ m _. d
(if (= kho "2")
# W. y+ F- y8 i$ I! v (progn
" F& O* u; X2 b( |3 [( {8 ? (setq b (polar a 0 (* TL 594))), K$ C& ?# h) D6 M9 L! J) _. z1 z; C
(setq c (polar b (/ pi 2) (* TL 420))). W8 ^# D ~+ L2 a& O7 |* `1 o
(setq d (polar a (/ pi 2) (* TL 420)))& r/ a- s# k7 }& T% w: e5 f
(setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
: [- B: k6 ~0 o* J (setq f (polar e 0 (- (* TL 594) (* TL 20))))
' y# H) P" }, V! a6 y4 u: @ (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))+ Y2 u; x- e2 e# o# m8 \
(setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
* C1 M4 L' j( f# J3 W1 W6 D6 ^ (command "Pline" e f g h "c")
G ]! o8 X9 P3 P) Z+ L1 U(command "change" "last" "" "properties" "layer" "0" "")
; V; w( V5 g+ b3 \$ O(setvar "cecolor" "4")
9 u3 k+ y K: ` (command "Pline" a b c d "c")4 J7 I$ o s2 ?! \
(command "change" "last" "" "properties" "layer" "defpoints" ""))), e9 G* {$ O9 _6 i
(if (= kho "3")
/ L0 t+ S! Z9 r: q (progn* X u; k7 u# \" h4 Y! N
(setq b (polar a 0 (* tl 420)))
( R; E. b$ v6 D1 z! I# F( \ (setq c (polar b (/ pi 2) (* TL 297)))
! a2 u1 N6 d, Z (setq d (polar a (/ pi 2) (* TL 297)))6 ^& v, ]" ^7 {) K( N
(setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))4 N z5 j; C: U# R
(setq f (polar e 0 (- (* TL 420) (* TL 20)))) I5 }, ]) p- ~* z0 |; J; e( Y J
(setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))( q+ o& H7 r; L$ K/ n
(setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))+ c4 h ^$ l H9 s1 k% p' n) k( S
(command "Pline" e f g h "c") a4 N) G" c0 ?- q3 I
(command "change" "last" "" "properties" "layer" "0" "")$ x: f& S1 U6 y" j, A+ F
(setvar "cecolor" "4")
6 z. P) ?. [6 T0 G$ F0 ~. T(command "Pline" a b c d "c")
) `* y/ U' l) p# v; a5 h, |6 C' h (command "change" "last" "" "properties" "layer" "defpoints" "")))8 [. ?% R1 c. }9 z
(if (= kho "4")
! h) v! ]: q9 h# P8 A4 Z! o5 a( P (progn* O$ Q1 F# j4 B- D8 P
(setq b (polar a 0 (* TL 297)))
1 j) S0 s' w- L/ V5 ] (setq c (polar b (/ pi 2) (* TL 210)))
+ D5 e/ A, a; I2 e/ Z (setq d (polar a (/ pi 2) (* TL 210)))
$ D, Q6 }: g! @# t) y$ O5 t9 n1 p: ~ (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))- l6 ~ o. H0 A
(setq f (polar e 0 (- (* TL 297) (* TL 18))))
" k( H' ^7 q2 w& [' d3 s (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))" i# q$ G: U5 E0 y& `, j" e
(setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18)))) m6 g6 N8 ?2 d& z! e
(command "Pline" e f g h "c")
) W+ g( x! A8 N2 w m(command "change" "last" "" "properties" "layer" "0" "")
3 j0 ]8 o: d( Z. Q4 [9 p: E(setvar "cecolor" "4")# k2 v; x: j- _8 t- ~( x
(command "Pline" a b c d "c")
. A+ S! c K4 o2 k(command "change" "last" "" "properties" "layer" "defpoints" "")))0 D0 a) M3 v9 \& W( K
(mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)4 d) u; C1 x" _$ k, \: Q! X
(command "undo" "e")
0 i. M* l; I: b4 Y(princ))0 K, e1 g b' s
;=====================================================================
* z/ p( b' d+ \3 P;==================DAT KhoGiay Theo KHO GIAY BAN VE===================3 O$ s, v* d* ~+ V$ s4 V R) V
;=====================================================================
- E; C7 r$ P/ x Q1 S* e O* x- u$ q" S+ w
;=====================================================================
! O, H: F/ b. Z( ?. B: T;===================DAT Ti Le Theo KHO GIAY BAN VE====================9 I1 P% W" P2 g* |: [
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
2 j* c6 K+ R" x# H3 E. ]0 O- `( s
(DEFUN C:SA6 () (setvar "DIMSCALE" 411.11111)/ w0 K T U6 s& E4 b5 t
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" "" p( M# r) q8 P& F2 D( o& o
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""5 a; z) e Q% C' r* R, i D, Z
"M" "MANH" "C" "9" "" "Lw" "0.1" ""5 n2 ?; S8 n* {, u7 k: }
"M" "TEXT" "C" "7" "" "Lw" "0.12" ""' z! y" G3 u+ U0 I
"M" "DIM" "C" "1" "" "Lw" "0.12" ""
, T& @: h4 E4 ~ h+ v "M" "THAY" "C" "7" "" "Lw" "0.2" ""
) M; }, ?4 L0 z6 K: X: g "M" "NOITHAT" "C" "60" "" "Lw" "0.12" ""- s5 t6 d0 _! B& J1 d
"M" "HATCH" "C" "5" "" "Lw" "0.1" ""' w7 G- f3 _5 L2 l9 h' A
"M" "COT" "C" "1" "" "Lw" "0.3" ""
' K" x- y* {( y! [% H/ J) f- S2 u "M" "Defpoints" "C" "7" ""' H0 i( c. R7 l4 Y4 P
"M" "0" "C" "3" "" "Lw" "0.12" ""
& m3 a' r* T2 U) o2 U6 s "M" "CUA" "C" "6" "" "Lw" "0.12" ""
) X. d; W) h8 B- _. B5 v" D% { "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
+ C, E# y# X/ l "M" "DAY-DIEN" "C" "3" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
* v: v) j" i0 @ "M" "NETDAM" "C" "4" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1") p9 L! @# ^- O2 c: }
"M" "NETTHAY" "C" "255" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"+ q6 E" g; Q8 ^6 Z5 w/ m" l
"M" "NETMANH" "C" "43" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1") Y! l3 ]* n: ^% s7 G
"M" "ThietBiDIEN" "C" "2" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
+ U0 R% v/ m+ F "M" "TEXTTXT" "C" "7" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"6 @# t+ w" _6 [1 a3 ^# b
"M" "TEXTVN" "C" "60" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
. C& h& p _% W+ j2 n "M" "TEXTVNi" "C" "60" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1": B$ l* M0 O! f' {: ?& O
"M" "THEPDAI" "C" "3" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"; Z* S* E5 X; W% H) j$ q
"M" "THEPDOC" "C" "2" "" "Lw" "1.20" "" "LT" "Continuous" "" "" "LTSCALE" "1"
; S5 P9 b/ Z6 Q" `9 I0 ^7 E, P "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"' [9 E9 w$ D( e8 O+ t" A. m
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.4" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
/ ^. i; {+ A' S4 R+ v9 w6 o "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.4" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
: T: \5 @/ e, q, m8 x+ d. | "M" "KHUNGTEN" "C" "4" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"0 o$ X/ E. b8 N& s: p
"M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))(princ)
+ x. [$ H+ P9 j' J3 E1 x) Q(DEFUN C:SA5 () (setvar "DIMSCALE" 611.11111)+ w3 G9 h; f' O
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
% \% U* C% r7 S! K) j8 u "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
" R, {% [+ \6 |/ n0 q8 a( R "M" "MANH" "C" "9" "" "Lw" "0.12" "", ^$ I" a' d& O( Q0 e: t; [5 N
"M" "TEXT" "C" "7" "" "Lw" "0.12" ""
; G, I' _3 B, f# l9 _5 f7 i "M" "DIM" "C" "1" "" "Lw" "0.2" ""
1 w w; b: Q9 s6 b "M" "THAY" "C" "7" "" "Lw" "0.2" ""
7 A5 b2 x# U# G! j2 W+ P "M" "NOITHAT" "C" "60" "" "Lw" "0.2" """ c5 w0 m R# R/ H8 k) k7 C9 E/ k \
"M" "HATCH" "C" "5" "" "Lw" "0.1" ""
8 `8 @' G. g& R" X) U9 e8 u "M" "COT" "C" "1" "" "Lw" "0.4" ""
5 n i& N. Z6 h. e4 K/ o; l "M" "Defpoints" "C" "7" ""
1 T- S- X6 W, V$ H "M" "0" "C" "3" "" "Lw" "0.2" ""
) C6 \: `* }8 r6 H! ?! | "M" "CUA" "C" "6" "" "Lw" "0.12" ""
: }0 |6 T' |- ^' y4 y2 K "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""! d. A, J9 u7 Q" [5 L+ M
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"5 L( o2 f' G# k) i3 O
"M" "NETDAM" "C" "4" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
, O' J' Q: J5 ]8 Q. k; G "M" "NETTHAY" "C" "255" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
( q' T( p( u1 C5 t2 ? "M" "NETMANH" "C" "43" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1") }' [) L2 E6 J% L
"M" "ThietBiDIEN" "C" "2" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"/ X. w& I5 c2 B3 @' F! t) O
"M" "TEXTTXT" "C" "7" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
- a. K8 z. u. k- y "M" "TEXTVN" "C" "60" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
$ E, s4 I6 t$ ~/ V2 m* T "M" "TEXTVNi" "C" "60" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
, P7 X, \' o: S* E- Q' e "M" "THEPDAI" "C" "3" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"( j' q9 `$ B. y1 i6 L4 _
"M" "THEPDOC" "C" "2" "" "Lw" "1.40" "" "LT" "Continuous" "" "" "LTSCALE" "1"
. [2 k4 ]1 I4 Z+ G: X "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"( e( ?4 P4 o. `/ g' ]
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.5" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
) I- K7 G- E3 U "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.5" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
5 N2 l, p' M* A7 ^6 W4 o "M" "KHUNGTEN" "C" "4" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1", b1 ?# _' a2 u9 |# P0 M! |. B2 g
"M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))(princ)3 h Y8 o0 `9 ], p' R
(DEFUN C:SA4 () (setvar "DIMSCALE" 1411.1111)* C0 Q3 r. o6 H& I4 V5 y
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" "", m( R$ D) v0 L' l
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
" m% n2 b% x! ^8 a) G6 a "M" "MANH" "C" "9" "" "Lw" "0.2" ""
1 I; f; e" J+ ^/ z3 ^1 x% T5 ?& P. Z "M" "TEXT" "C" "7" "" "Lw" "0.2" ""6 l. b+ O: S6 N' B; X
"M" "DIM" "C" "1" "" "Lw" "0.25" ""
1 N. ~7 ?9 ?1 B. R "M" "THAY" "C" "7" "" "Lw" "0.35" ""
7 t* \, q7 _0 k" m3 Q! y! _ "M" "NOITHAT" "C" "60" "" "Lw" "0.25" "") n+ k* m9 U- x
"M" "HATCH" "C" "5" "" "Lw" "0.15" ""
+ \6 h8 y/ J9 x# Q; b0 W' [: Y+ o "M" "COT" "C" "1" "" "Lw" "0.6" ""
' T, d" Y8 t7 m' F g. ]- ] v "M" "Defpoints" "C" "7" ""
8 a$ e$ X- U- `! v3 ] "M" "0" "C" "3" "" "Lw" "0.25" ""5 P' l) Q0 m3 m. S6 F
"M" "CUA" "C" "6" "" "Lw" "0.25" ""
( [% A& t; V) q( I" P& B) P4 F "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
: p& K+ ^9 P c3 q1 R "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
/ M% K" {" f7 R; p "M" "NETDAM" "C" "4" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
* q* ~! |* a- e4 }- v+ b1 t) } "M" "NETTHAY" "C" "255" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
& d0 u8 v3 O& p( ]1 q; T } "M" "NETMANH" "C" "43" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
( C8 z0 \. M: R) s& N( n; e "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1". u1 P3 q! s+ p, |
"M" "TEXTTXT" "C" "7" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"4 U$ A3 ^$ C9 @. z6 e' M4 H8 G
"M" "TEXTVN" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"! r7 }* H% v- X! ^. `. O: H6 z
"M" "TEXTVNi" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
, H" J$ r+ f% ]' D; } "M" "THEPDAI" "C" "3" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"; J- q( Y8 O& h0 I* e! [
"M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" "LT" "Continuous" "" "" "LTSCALE" "1"
: B# c0 T {8 U4 c/ \. o8 v, }" O0 @ "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
9 h8 Q) u& Z: _% e' k "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2" U9 q0 u4 N) a! M, v+ y
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"+ X# X K9 i5 L/ @. ~% a
"M" "KHUNGTEN" "C" "4" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"; @, R" E1 y* Z6 I
"M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))(princ)7 e3 o3 U1 R$ c
, `3 U" x5 ]4 L. d* m5 @
(DEFUN C:SA3 () (setvar "DIMSCALE" 1611.1111): O$ J+ |% l* S! u
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
- F: P" _5 v' _& c1 m# g "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""& P1 w) d3 _; ?% k1 R8 \4 D: E
"M" "MANH" "C" "9" "" "Lw" "0.25" ""
5 {+ x. t: r/ `; @3 i/ c "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
9 _% M. x5 b) h, E) m "M" "DIM" "C" "1" "" "Lw" "0.35" ""9 \3 |/ T2 x& w- ~
"M" "THAY" "C" "7" "" "Lw" "0.4" "" |. Y$ R- P+ l8 x" ]+ s" N' \
"M" "NOITHAT" "C" "60" "" "Lw" "0.25" ""
) l& o8 B# Z& D8 Q0 ^ j9 Y "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
1 b5 I+ t4 q6 p+ p/ ^& S "M" "COT" "C" "1" "" "Lw" "0.7" ""
' q. {8 V" w2 U1 L% U7 S; ] "M" "Defpoints" "C" "7" ""
6 E) M8 Y4 Y& e+ u( W) t2 r! y* f "M" "0" "C" "3" "" "Lw" "0.25" "", g# }2 f. R T
"M" "CUA" "C" "6" "" "Lw" "0.35" ""
; F5 ~- E; `% B. Z "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" "": t/ C8 R* y7 @& a* J! S
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
3 G/ F w: G: ?1 Y# S$ p6 l "M" "NETDAM" "C" "4" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
, X2 d" u3 j; I7 Z4 ^; [ "M" "NETTHAY" "C" "255" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
% ?9 J' E- c4 G6 r% w' N "M" "NETMANH" "C" "43" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"" H5 `3 R6 b# t! E; @$ H, E7 X
"M" "ThietBiDIEN" "C" "2" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"- C9 {* a" b: |- W& t+ t& u
"M" "TEXTTXT" "C" "7" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"! v( N! f- f( t: r$ a) h2 F; ]
"M" "TEXTVN" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
" x/ c8 c! n' w0 n9 {) ]5 X "M" "TEXTVNi" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1") b \- {: F b3 x$ L& B) k4 D
"M" "THEPDAI" "C" "3" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
. d5 d, E/ m6 c3 s1 P "M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" "LT" "Continuous" "" "" "LTSCALE" "1"8 C( Q% O8 X6 e
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
0 a8 O7 s7 v5 C. y2 z* t9 o2 u) a3 E "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"0 k9 X/ b6 [) f3 U4 f( U3 O
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
; j( @9 q7 ~3 P9 ^: s9 Y( P "M" "KHUNGTEN" "C" "4" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"( g! X: T) k; N6 ~4 H9 f
"M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(princ)
8 v( h! p6 Q0 X/ f' ? S3 s* S
0 r6 O" t- \4 p(DEFUN C:SA2 () (setvar "DIMSCALE" 4111.1111)+ {8 L! o+ i$ c
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""7 I, C- h9 f$ R
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
2 C0 v# p/ @: C/ `: @ "M" "MANH" "C" "9" "" "Lw" "0.25" ""
: C6 F7 p) O- O* a6 b6 ~3 O "M" "TEXT" "C" "7" "" "Lw" "0.25" ""* y5 u' b' b; V
"M" "DIM" "C" "1" "" "Lw" "0.3" ""4 _$ d5 K( m4 S( s, w. H
"M" "THAY" "C" "7" "" "Lw" "0.4" ""
# W v- e/ o2 p: ^3 v/ J! i "M" "NOITHAT" "C" "60" "" "Lw" "0.3" ""
. q3 S/ L0 C. g% s: @ "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
+ P6 D& J$ n" l: Y" f% j "M" "COT" "C" "1" "" "Lw" "0.7" ""
: \- L- k: B7 M; T0 u* z "M" "Defpoints" "C" "7" ""
! ~2 y" L* n P "M" "0" "C" "3" "" "Lw" "0.35" ""; `; B" F5 f2 }7 m
"M" "CUA" "C" "6" "" "Lw" "0.35" ""4 G% g* R' S5 Z- _ a
"M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
) I* ]9 m! L2 o "M" "DAY-DIEN" "C" "3" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
! Q3 k' \% s0 @( d2 |+ | e "M" "NETDAM" "C" "4" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"9 Z2 S. P( O q1 \
"M" "NETTHAY" "C" "255" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"9 _% z" u1 J, q* ?
"M" "NETMANH" "C" "43" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"4 F& T5 L# J @, S: q, @
"M" "ThietBiDIEN" "C" "2" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
6 ^% l8 N4 A: J$ r4 Q9 \: {" K; _ "M" "TEXTTXT" "C" "7" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
2 C ?( M2 }3 h4 R. R "M" "TEXTVN" "C" "60" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1", W' O0 J6 r0 P G7 m) D
"M" "TEXTVNi" "C" "60" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
/ I/ L* m, @: F7 s% }( Z! j5 t "M" "THEPDAI" "C" "3" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
) S: [) `" j. h u9 V8 u "M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" "LT" "Continuous" "" "" "LTSCALE" "1"8 _$ L5 }% F1 ], [# F1 r4 W P
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
% C. z, j, R W8 _# @! t "M" "4-WateR_IN" "C" "4" "" "Lw" "0.7" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
. @' B$ T+ `: Q1 h "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.7" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
0 f) Q) T8 \; v* F8 }" L! K "M" "KHUNGTEN" "C" "4" "" "Lw" "1.20" "" "LT" "Continuous" "" "" "LTSCALE" "1"
! J- f' D/ y! H4 R6 I "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))(princ)6 X1 r7 a8 O. N! k1 K
( \% t8 M" ?$ V(DEFUN C:SA1 () (setvar "DIMSCALE" 4411.1111)
" ]; P- U# B# u6 `, K (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""' x5 M; f) w: L
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
" c9 G5 V. l; \: Y6 |0 F4 { "M" "MANH" "C" "9" "" "Lw" "0.35" ""
" ^8 P/ }, E; s, E/ g9 x "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
5 A/ i( B# ^% J0 A( }1 ? "M" "DIM" "C" "1" "" "Lw" "0.35" ""$ ]5 _7 Z. e7 p, N' g1 c1 R
"M" "THAY" "C" "7" "" "Lw" "0.4" ""
2 y) S1 j; l+ n! X+ J "M" "NOITHAT" "C" "60" "" "Lw" "0.35" ""
1 H; b: S( N8 i# V "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
- s% _$ G& j+ O) U "M" "COT" "C" "1" "" "Lw" "0.85" ""
; G% U! j5 [! m" {% H( L0 h "M" "Defpoints" "C" "7" ""; M5 h" @* y; m/ u- u
"M" "0" "C" "3" "" "Lw" "0.35" ""
& o% P5 B) v" r% {: w4 e+ }9 Y7 G "M" "CUA" "C" "6" "" "Lw" "0.4" ""
* G$ |; h0 w; P/ k- J "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
1 M( A; u3 f. Y$ ^- H "M" "DAY-DIEN" "C" "3" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
# c8 W/ I/ P3 _/ _+ i- ^ "M" "NETDAM" "C" "4" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
6 `" F) D' P6 K3 b, w6 a "M" "NETTHAY" "C" "255" "" "Lw" "0.9" "" "LT" "Continuous" "" "" "LTSCALE" "1"
8 {; K* Q" Q/ i) \ "M" "NETMANH" "C" "43" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1". o+ `$ Q8 n) ~$ \3 y% y6 b, G
"M" "ThietBiDIEN" "C" "2" "" "Lw" "1.0" "" "LT" "Continuous" "" "" "LTSCALE" "1"5 ]+ b0 ]$ Y) k m0 F0 W
"M" "TEXTTXT" "C" "7" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"9 m5 W3 ?9 y$ V* S
"M" "TEXTVN" "C" "60" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
, N& W l. j' I9 S* s. X "M" "TEXTVNi" "C" "4" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
" X1 [+ S2 c- h% Y' b "M" "THEPDAI" "C" "3" "" "Lw" "0.9" "" "LT" "Continuous" "" "" "LTSCALE" "1"$ C; O2 @& n0 ?' A1 w+ ^" J
"M" "THEPDOC" "C" "2" "" "Lw" "2.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"
- X4 @, u9 e Q! r* e3 D "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
* }+ ?* y# `* A' E- |* F "M" "4-WateR_IN" "C" "4" "" "Lw" "0.8" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
" x' A6 v! a, S% l: T! z( Q0 d3 B) H "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.8" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
! S( S% N. I" F; N4 T/ h t "M" "KHUNGTEN" "C" "4" "" "Lw" "1.40" "" "LT" "Continuous" "" "" "LTSCALE" "1"
7 {4 L7 f* {& I3 q "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))(princ)7 c: f$ E4 Q# b, Z# J% w
3 q) e# i8 J7 z1 d% w(DEFUN C:SA0 () (setvar "DIMSCALE" 6111.1111)3 l5 `8 ?3 p' T
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
' M0 t& Q* O* U; `3 H "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""4 C8 ^7 t4 Y7 ?! g
"M" "MANH" "C" "9" "" "Lw" "0.35" ""
7 @5 e2 m; }, [* N+ v% ^ "M" "TEXT" "C" "7" "" "Lw" "0.5" ""2 O- y1 Z/ c& T. u
"M" "DIM" "C" "1" "" "Lw" "0.35" ""
! P) Y8 R1 M& i+ J! x "M" "THAY" "C" "7" "" "Lw" "0.5" ""
& `& C; S& e. P3 L "M" "NOITHAT" "C" "60" "" "Lw" "0.4" ""
; y+ U- T* R6 Y9 j4 ` "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
( K% v" l9 T7 E "M" "COT" "C" "1" "" "Lw" "0.1" ""
4 y$ }0 R+ ^* p$ \& A: e "M" "Defpoints" "C" "7" ""$ ]7 P7 h% Q# c$ `" _
"M" "0" "C" "3" "" "Lw" "0.5" ""
9 Q; j9 z; ~9 [. s7 N "M" "CUA" "C" "6" "" "Lw" "0.5" ""
+ g- e) n2 d7 V. M9 V" }# _ "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
+ n/ X Y3 D6 W, s "M" "DAY-DIEN" "C" "3" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
. B6 |' u1 U! [) E. { "M" "NETDAM" "C" "4" "" "Lw" "1" "" "LT" "Continuous" "" "" "LTSCALE" "1"
: b1 l, j0 ]' a: m "M" "NETTHAY" "C" "255" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"
: c+ }( ~: j0 b- t6 w \. q "M" "NETMANH" "C" "43" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
0 ~! A. ^9 `' K: p2 C "M" "ThietBiDIEN" "C" "2" "" "Lw" "1.20" "" "LT" "Continuous" "" "" "LTSCALE" "1"
# Z7 [) ?( f+ N# k2 u/ Y4 E% h& l) l "M" "TEXTTXT" "C" "7" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"# z; |* h- w& h S0 Q
"M" "TEXTVN" "C" "60" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"; J5 Z% M% ] L: M7 O1 z: U1 V6 c
"M" "TEXTVNi" "C" "60" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"" _3 I; Z" K1 b
"M" "THEPDAI" "C" "3" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"
9 D' J7 N. t. A* w& { "M" "THEPDOC" "C" "2" "" "Lw" "2.11" "" "LT" "Continuous" "" "" "LTSCALE" "1"3 L2 T Z8 d8 c
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
- |! n! q0 e1 p# O$ s, F "M" "4-WateR_IN" "C" "4" "" "Lw" "0.9" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2") F9 H' d: G9 W& y8 b
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.9" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"( }' H5 R$ P" m
"M" "KHUNGTEN" "C" "4" "" "Lw" "1.40" "" "LT" "Continuous" "" "" "LTSCALE" "1"
0 x) V6 ^ j% j; y6 S! j0 C4 L+ Q& | "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))(princ)$ t! t6 z* n8 A- k( ^
(DEFUN C:O () (COMMAND "OFFSET"))
5 O2 V' E3 E/ R8 i) F(defun c:s1 () (command "surftab1"))
; Z' c/ I' h1 S7 e(defun c:s2 () (command "surftab2"))% D% l/ L1 K9 k1 }2 J& Y
(defun c:ep () (command "explode"))
4 o" k4 b7 }4 u! t(DEFUN C S () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
1 t' A1 n" [* \7 \9 d# F(DEFUN C V () (COMMAND "QSAVE"))* ^6 [4 ^$ C2 J: V
(DEFUN C:S () (COMMAND "STRETCH" "C"))6 n/ a; \3 ?8 P' h
7 \$ N) j/ j# P;************************** CAT DIM **************************
* ^) W! G' h6 [; u5 r% F
# m- y% a" q1 V1 @3 K(DEFUN C C (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
4 e; w9 B& }, B) ]% F! k6 v! X PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)! Y5 i$ S4 A' @+ _
(SETQ CMD (GETVAR "CMDECHO"))' L" B8 U/ P4 j) ]6 S3 S4 Q$ ^( M
(SETQ OSM (GETVAR "OSMODE"))6 R* h* q; l# v4 n! L. O# j# @
(SETQ OLDERR *error*! g& ~( |$ r U
*error* myerror)
, y2 V4 J( s% o+ W& d(PRINC "Please select dimension object!")/ Q1 T' O; G* z% k; D
(SETQ SS (SSGET))" m7 a8 b/ V5 p4 H. B P9 c4 b0 f
(SETVAR "CMDECHO" 0)
/ O( C4 _2 |: g5 x' u(SETQ PT (GETPOINT "Point to trim or extend:"))
9 a) J8 s# C, a% u- F& X(SETQ PT (TRANS PT 1 0))
, g7 Q! Q( y# ^(COMMAND "UCS" "W")* r( M9 L- c3 L% `" `
(SETQ LTH (SSLENGTH SS))$ g& E3 h. u/ h |( A# r. P6 A
(SETQ DEM 0)
% w, k) j! H ^(WHILE (< DEM LTH)
* f5 y9 z* I* Z) H8 l4 H* i/ c (PROGN$ A5 o$ H, h [$ n4 ?' V4 i
(SETQ DS (ENTGET (SSNAME SS DEM)))8 ]. w% F9 Y$ g
(SETQ KDL (CDR (ASSOC 0 DS)))
$ J( d* p9 H+ N$ r& Z! |# d (IF (= "DIMENSION" KDL) A0 e' c1 b$ i* W1 b
(PROGN% j6 S5 b! L. _9 {4 [( r( _
(SETQ PT10 (CDR (ASSOC 10 DS)))( Z* {) r! F! @: C3 ]8 [. O, t1 y
(SETQ PT11 (CDR (ASSOC 11 DS)))) y% W- P" f& D! l; R
(SETQ PT13 (CDR (ASSOC 13 DS))); o/ Y4 B2 C$ \
(SETQ PT14 (CDR (ASSOC 14 DS)))
' _7 P Y4 u5 `: l5 v% @ (SETQ N70 (CDR (ASSOC 70 DS)))' i6 Z( d$ u# T0 F9 u
(IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
* R u% S, _5 k# ?1 p! P" ^$ x2 z2 d) B (PROGN7 I& \+ H+ S3 `
(SETQ GOCY (ANGLE PT10 PT14))
( A' V$ ?2 {1 H' u0 g7 c6 | (SETQ GOCX (+ GOCY (/ PI 2)))
% c1 c, Q) r# s% A. ] )8 r7 K+ P1 h o1 l5 N
)0 g& T u$ i9 E
(SETVAR "OSMODE" 0)0 z& @0 A) P; f7 `
(SETQ PTI (POLAR PT GOCX 2))8 _5 p9 `. V1 a7 K6 {7 M+ ?
(SETQ PT13I (POLAR PT13 GOCY 2))
4 r0 f! ]- y& M0 b' t, i2 M (SETQ PT14I (POLAR PT14 GOCY 2))
% v) q: R6 L( X/ L3 i (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))& a1 W: B9 \( I9 S2 j3 W1 Z
(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
: Z/ F# M2 w3 T7 m( A (SETQ O13 (ASSOC 13 DS))
3 v4 V5 \5 Z5 |7 I9 r- X (SETQ O14 (ASSOC 14 DS))+ A$ I& }( c2 ]/ q+ e( E) S0 |
(SETQ N13 (CONS 13 PT13N))
$ @! _" n+ Z' a (SETQ N14 (CONS 14 PT14N))* W! ^6 e a) q5 P# v) v. \& S/ Y! p8 M5 S
(SETQ DS (SUBST N13 O13 DS))5 R! _( ?, {, o' W& W! `
(SETQ DS (SUBST N14 O14 DS))4 O0 O+ K- Z B6 z; [/ o
(ENTMOD DS)
! {$ _: E1 @* n/ T: n) X e9 H$ J )
|% @- }8 [! C0 e6 a )+ G- t- s+ x. j* a
(SETQ DEM (+ DEM 1)), I/ k: m4 n; _
)/ R7 S8 [5 J) U$ f5 u& q) E
)
, q' I9 O: W: B3 [9 g0 e(COMMAND "UCS" "P")/ a4 Q9 {4 g6 ]+ N& V& }0 ~
(SETVAR "CMDECHO" CMD)1 F8 t% b) m. [7 _4 L8 G2 L& u
(SETVAR "OSMODE" OSM)
4 }) W$ A7 K% k1 p7 a* c7 d7 a6 b(setq *error* OLDERR) ; Restore old *error* handler+ e8 y3 v X1 |3 h7 g
(PRINC)
% l" G! t& J! A! y; t+ C" Z)- Y& }1 f7 d: _
5 K6 _+ g1 [% u1 }(DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI2 @& p5 e" c1 x8 U
PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
+ G5 [7 H8 N) a' Y(SETQ CMD (GETVAR "CMDECHO"))
; D/ C3 g! Z6 g# B* U0 A6 h- ?/ d(SETQ OSM (GETVAR "OSMODE"))1 z+ b# x8 Q+ x: f* b
(SETQ OLDERR *error*
) y9 r5 {* Z! G6 N1 Y. { *error* myerror)' c: g$ v' G) F2 C& b% Y( W
(PRINC "Please select dimension object!")
9 ?0 l! U# j$ I- P(SETQ SS (SSGET))& L2 n" {8 z' h) i' K5 h' a
(SETVAR "CMDECHO" 0)
_6 ^0 L9 d$ K: j' F, \$ u4 h(SETQ PT (GETPOINT "Point to trim or extend:"))+ i+ Y5 i! n f; U9 s7 L
(SETQ PT (TRANS PT 1 0))! I6 }/ N7 Z$ R. L6 L
(COMMAND "UCS" "W")& u0 E& K1 U, R' K. a. a8 m
(SETQ LTH (SSLENGTH SS))
3 q, Z+ e- T V! B1 K(SETQ DEM 0)5 G# }4 E$ N. p+ a) g
(WHILE (< DEM LTH)
4 J1 ]/ q! e6 Z/ V (PROGN; \7 z: ^* D N9 P ?
(SETQ DS (ENTGET (SSNAME SS DEM)))# }6 b7 W- D1 B3 ], n% c" y- b& ^
(SETQ KDL (CDR (ASSOC 0 DS)))5 s Z [" z( G% K7 m; D, M) S
(IF (= "DIMENSION" KDL)
; I, R$ o; r1 m+ C$ o. O; k (PROGN$ b9 a( x! m3 m7 ?/ L! E
(SETQ PT13 (CDR (ASSOC 13 DS)))
+ j3 @3 S* m! S" F& s: i$ Q (SETQ PT14 (CDR (ASSOC 14 DS)))6 m+ a% [4 e/ c# q+ g" P4 G$ p& R) \
(SETQ PT10 (CDR (ASSOC 10 DS)))
. u+ g" G+ p' [+ _ (SETQ PT11 (CDR (ASSOC 11 DS))): u1 s6 y6 p" l# b6 D& @
(SETQ N70 (CDR (ASSOC 70 DS)))
; Z( w3 Q2 P% E- i! m1 d (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
. n, [3 z0 e" ~; T2 E, B0 [9 n (PROGN
$ K) C) h/ h4 P8 ^ \1 T; C (SETQ GOCY (ANGLE PT10 PT14))
3 u# l( p# k; u$ R9 |3 j& M (SETQ GOCX (+ GOCY (/ PI 2)))
, q. x7 [6 B; H )" C$ H! }6 g& K/ m& I D, a. U
)4 e$ ~" F' i" K P+ _
(SETVAR "OSMODE" 0)* N: J1 p7 m; [- Z
(SETQ PTI (POLAR PT GOCX 2))& K6 B% p/ D/ k8 g# s ^; Y; z% b
(SETQ PT10I (POLAR PT10 GOCY 2))% ^* g" c1 ]# q! C( [; M) M
(SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))4 \5 P: w: j \) [9 J' N3 p
(SETQ KC (DISTANCE PT10 PT10N))2 z& G- D1 Q% C& H, t2 Y# b3 u
(SETQ O10 (ASSOC 10 DS)). `8 L# c* Z4 j6 x A5 t2 M2 ?5 z
(SETQ N10 (CONS 10 PT10N))
0 K( N( M. S% x9 Y( i (SETQ DS (SUBST N10 O10 DS))/ o! o& D% m& l. c. P& P& c( q2 q
(SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))2 b3 @4 N3 w2 v6 k) F' _
(SETQ O11 (ASSOC 11 DS))' a G) G. |5 w% L% B& P
(SETQ N11 (CONS 11 PT11N))) b, P* R9 |9 y% {" B% z2 I
(SETQ DS (SUBST N11 O11 DS))
- K A# k" B! N7 }, l (ENTMOD DS). c" E1 X3 ]5 Z( C/ g& s3 i$ Z
)
, u) ~- r0 q7 ^2 [3 e )
7 [$ I6 O1 W6 Z- y* J (SETQ DEM (+ DEM 1))3 `; C I) c6 ?% K. n8 A+ J
)
4 K E# S# k# |: @9 a)2 o0 N7 `/ p3 m. c: Z3 E' Q
(COMMAND "UCS" "P")3 Q& P5 K. t" d1 x$ a& o
(SETVAR "CMDECHO" CMD)
' \' H2 W" ~( C6 D1 m(SETVAR "OSMODE" OSM)
$ n& f) }* p3 X( O2 `(setq *error* OLDERR)5 v! Z3 e4 k: v& y5 [ O4 }
(PRINC)
: q" Y4 S! ]* W' k2 P; s. X9 })
7 v/ R; i% f2 w1 g7 C6 |
7 {6 e: w1 a: [; X6 ]
4 ?; B' Q1 d) g/ i1 W4 D4 j+ X;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
/ l# x$ {2 f V/ P5 t
o+ D# F: o6 M& G/ Y7 _(defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
% D u, U* ~ K$ E% H (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")/ I* U" t& d/ D; q$ _2 I0 M7 B
sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
C8 R% `4 P7 m( y c) u3 ` (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
# {& C4 E7 B: M (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u"), o) p0 N8 v) a& g, T/ p9 ~0 o
(= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))9 \" m% X! }* e/ Y3 ]' Z/ b# Y4 L) }
(setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))! t6 z6 r5 s4 T3 H( D4 m9 ], i
(setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
7 o* F/ |, M0 H0 e% T
+ `7 e* q, R- N7 p, {/ [! H; r r;;; ================ CHEN COT (TUU) =================
! p# ~9 _3 e' M. J8 _
5 Z+ c3 ~5 [$ c ](defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")2 r' f) b& t* c& u4 N
(prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")' n: e; }* u# `( _- T% v# _
sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
F1 g! M. p {# ~: E' a' V (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))/ H" Q4 H" j- U1 C/ @
(if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000") {7 ?/ K. @7 t' S* ^
(= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))# r9 h! c" v' O
(setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))& Z) n1 O. s; c: t# R& H
(setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
3 h$ ^2 B. p. B+ K; Q" G
! n% _ x, n/ Z" P) m;;; ================ CHEN KY HIEU THEP (TP) =================
! `7 Q2 o, B7 v1 i& A1 I! @1 {9 T/ l! t! k
(defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")) A& z# u4 z" x$ S$ p
(prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
% q7 i o) [. o2 f* f' u" _; S, a sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt! P/ m- M8 ^# H) i: Z* J6 N
(entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))# v' H+ e3 h3 W3 z- v
(if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")' B D9 ?: s, v: Z& d
(= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
& z' @& j$ x" ^ (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))+ ]: o: u6 x2 [8 h6 a5 Z9 `
(setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
) Q+ ^. B# v2 N, K4 [* y z! s# Z, r! [5 g* Z
;=========================== TAM TUONG (TAM) =================================
* N( U+ Y) L s: f6 R# G$ Y1 ~* U7 r% n7 n
(defun c:tam(/ data_m)
, ^& q- ~9 W6 B" G (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
$ ` D7 S' i' o9 q) { (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i)), R. s9 [- K! |" P9 [
(setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0): }1 U# P( r6 [. l/ A! x
(if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
5 V0 L% q1 g/ @) e+ ^ (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
+ f( A# W! P1 P# g( J+ y% h (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
9 w( J* _! [( q% _ B )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
2 b$ h: \/ U) j! d1 ? (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
; J5 K `9 M/ }! w- q0 ~ distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
% r' b& ~/ M K1 @ (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))6 S7 C/ H1 U, h" b
(setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
" r' |. X- D" Z (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)8 I u9 E; ^6 V f1 A' u, u
distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
& I: {) \1 q1 g7 d1 o (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
+ d. T: d+ T0 L( l* q( ~; ^ (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not. B+ [) n! f* X
(= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget% Z+ A% V9 }' S. d1 w2 l+ ^3 y
(ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
1 _: r1 J& _8 p a( s (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
# W! m& p1 ~& ~! r, i2 `8 h6 h u( a5 \' m' [$ [ x* e
;============ GHI CHU PHI (T1) ================
' Z' _+ {# }: `9 g
' N) K; J8 L: c# ^5 c; ~(defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))/ e/ p7 b- |' r0 x
(if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
& a) ^5 O5 `# R (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)6 `7 P; E* Z+ t8 J" F. Q- Q
(car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
4 |2 _* w4 y+ W+ U ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))+ h7 O9 u k7 c- h. U
(setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
9 D# M; V5 ^3 F4 W 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)/ O) _' i$ f4 C- Z( n
(command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
5 n+ e& z- r9 t2 D8 r (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
l9 d% ]' C0 [" i (command "ddedit" pause))
! X- B! c& ^8 f! p3 j* U/ s8 m5 s, E: P2 V+ F( A) h
;;; ========================== Join (J) =================
$ c1 `# {# ^6 u' e+ j, X
. m9 B! m/ i# q% u, N' I) n(defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))$ g' S, m8 n$ {* U+ E
(if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
3 |5 N! l! J& n6 I (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
" x) Y+ g& N* W, M/ k ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
9 ?$ Q3 k6 Z3 G0 t (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
, t4 ]- {) i4 h! K* g (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt "")). _) }+ ~% s, V3 p6 c( x
(progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
' ^. `6 P% l! [- r! u9 j0 j (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))0 P! K7 |/ l& D8 }/ j
(setq *error* m:err m:err nil)(princ))# q- C }* y, A
3 ^9 A$ p$ C, J0 k
;=====================================================================+ M1 n1 z) J& Q0 d1 n
;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
. \- Q+ o4 o! D5 S;=====================================================================
2 R" w/ s) B% V; I6 M3 X
3 @ l/ A Y, l+ ^4 n& `* S) E(defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)" S9 W" y' n# T3 a: u( z
(setq old (getvar "OSMODE"))
3 j0 _* d: v' z) k0 j
5 S- J5 e& ^$ k/ b8 s9 L (setq p1 (getpoint "\nStart point:"))
- y' A$ n7 b9 } (setq p2 (getpoint p1 "\nEnd point:"))9 L+ |2 p2 A$ S. _& W
(setq side (getpoint p2 "\nOpen side"))# n! z4 `5 H* u. ^1 `& u9 y1 m+ ^
" U" x+ e4 @" H& Q/ Y* w; {1 p
(setq dis (distance p1 p2)). v- ^, l! a$ l7 C4 s1 R
(setq ang (angle p1 p2))) \& A C3 ]3 e5 {5 r7 b6 i6 Y* i
(if (< ang (angle p1 side))
- \+ M/ Q, C2 O% a } (setq angside (/ pi 2) )4 W; y7 `& M1 f
(setq angside (- (/ pi 2)))- p) l+ {1 i3 r5 z7 `$ K, R9 I
)
5 R- d5 \, [. Y4 Q1 E: M (if (>= (- (angle p1 side) ang) pi)4 q4 f; r, `, R8 r1 P6 R
(setq angside (- (/ pi 2)))/ n6 O5 m3 R% E9 O% G
)
% A3 v, f. E2 `& O! _ (if (>= (- ANG (angle p1 side) ) pi)* N/ u. i9 F8 R" o7 I, v) d
(setq angside (/ pi 2))
" C1 B0 z) A3 a1 x' v8 ^" a )2 d/ [" L) I; S7 y* D
: l; F9 E) j% C! g* x) T& |
(setq p3 (polar p2 (+ ang angside) dis) )
2 N1 R, |$ A2 U) m8 S3 V (setq p4 (polar p1 (+ ang angside) dis) )
* ]0 t0 U: P# u5 P: n# A' S4 G (setq wid (/ dis 15))! u- [7 |1 M' A7 T" c; V
# D- o; u; R- ~8 D' I6 |
(setvar "OSMODE" 0)
& J9 V1 t5 a& j2 N! _* i
% I+ ^6 ^6 [# `4 F; d/ } (command "PLINE" p1 "A" "D" p4 p3 "L" p2 2 Y( C" c- B9 O3 u7 n3 h+ ~
(polar p2 (+ ang pi) wid) $ c z9 |' Q! z' Q" K9 \
(polar p3 (+ ang pi) wid)
# R6 N& J" x+ {# h( ~ "")$ |7 C. Q6 | ]/ }) S) l; ?' j: E
4 f5 t- J) V9 P
(setvar "OSMODE" old)
! h# j9 f4 U- @- J# Z" _ @" S (princ)
3 Q, m& [+ P ^9 Q. P)
( b% F0 u2 g B. k" g+ U. b* p
; z- w" @. A$ S4 ];=====================================================================
, A! c( g3 g b5 \4 ]# B0 g
8 n6 h: m. B& E; \/ {, N- V(defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
4 m3 s/ n0 S- N [& z (defun cua1 (pt1 pt2)
6 I6 k, d. m. ~; P4 n) C (setq p1 pt1) U- T0 H; a/ }: ]% E
p2 pt2)
1 I3 h z# ?4 y5 y9 S1 u" ^+ y; ]6 w7 v: K" M) u
(setq ang (angle p1 p2))
- Q, r8 q' L7 q( q% V (if (< ang (angle p1 side))( D" e" E# Y. [( @: M& r# K
(setq angside (/ pi 2) )
v# K0 b/ u# I/ _$ Y$ z (setq angside (- (/ pi 2)))# ]) h i1 F" q2 l0 t
)9 [. n4 c3 o: \% ^0 I
(if (>= (- (angle p1 side) ang) pi)
1 ^( R3 P& f. R$ _ u r: n4 `& P (setq angside (- (/ pi 2)))( j; }6 z7 l+ ~2 l
): S. P( u( z$ W% H) n' y% o
(if (>= (- ANG (angle p1 side) ) pi)( X8 L# _" ]2 Z& S5 j1 B
(setq angside (/ pi 2))" e; w6 ~) n: `3 {( k) w7 ~+ m( j
)
8 X; t6 b& ?: B( F: K6 R1 m' a1 u" {2 o: S" Y
(setq p3 (polar p2 (+ ang angside) dis) )' u6 n8 o) p( c7 `. Q7 u. K$ z
(setq p4 (polar p1 (+ ang angside) dis) ) l! A7 R# w+ D, z. L) k2 v$ a
(setq wid (/ dis 15))
9 q8 u# {# {- f5 g% k9 r4 P# G
7 J/ q; |) e* G$ `' E: c2 l9 X (command "PLINE" p1 "A" "D" p4 p3 "L" p2
2 ? a; H3 R& Z (polar p2 (+ ang pi) wid)
: I. B) I* G4 @4 s8 P (polar p3 (+ ang pi) wid) 4 o* Y! V- C" W! S
"")" X; H7 Z5 I0 a1 q
)
5 x) R; p, B. {! Q;=====================================================================
. L/ m+ N2 F1 \9 Y9 G9 r) ?; d (setq old (getvar "OSMODE"))
2 C' k" K& d) r& O
" \% _! Z& S6 Q2 {3 Y (setq p1 (getpoint "\nStart point:"))' d: s: b, m/ H- G
(setq p2 (getpoint p1 "\nEnd point:"))
& p' c+ ?3 X) ~2 v! q5 @( e2 {8 ^ (setq side (getpoint p2 "\nOpen side"))0 ]4 F8 l a( f% f
8 C3 z) N/ E/ q- Q& K
(setq dis (distance p1 p2))" r. a/ Q3 e8 W+ g
(setq dis (/ dis 2))- r+ X+ @* }1 v% Y
1 }: H/ m, Z7 _ z8 a (setvar "OSMODE" 0)" Z5 P" S4 A& a, k% R# i0 C. z
- U& [' ]4 n3 x5 ~ (setq p1 (polar p1 (angle p1 p2) dis))3 G5 C8 ]7 e! B1 W# S( j. Q
(cua1 p1 p2)
. y7 ^6 ^) c l: P' G( m
3 P- ~" w+ R6 v, ~ (setq ang (+ ang pi))
: `- k( }' H+ [' Q, m8 q( a7 Y (setq p2 (polar p1 ang dis))
" r9 o/ E* h z4 F; (setq side (polar p1 () dis))
/ L! E8 O/ N6 G% n- j (cua1 p1 p2)
1 `: ^2 c9 l7 E2 O5 L- q) ?
9 \4 Z& _1 \6 H {. Z (setvar "OSMODE" old)
# i6 Y& D4 w; k' s% p (princ)" a; P) M: W* f9 A. |2 x, Q, u
)
; j1 M$ s. r9 A" q! v3 ^8 N& B/ m3 c+ w8 J* X
;=====================================================================
# D& p& E9 T* \" p% t, o& P;"Glue" text strings. All adopt first's properties.) f+ r2 w) x$ V7 d( S: w9 o
; Author:
# X7 X6 v/ B. L; l; Henry C. Francis
, B$ c/ b1 ]/ N+ j: R# C) q; 425 N. Ashe St.
. D9 f0 {. R4 q- w: V/ i# L4 m; Southern Pines, NC 28387) a3 X: b! O% w2 K8 S
; http://www.pinehurst.net/~pfrancis
4 v6 z" h4 W9 E( S; e-mail hfrancis@pinehurst.net) h/ b2 Y3 `) [& p4 H2 P
; All rights reserved.
8 {. {! }: y! w2 B(defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)7 o! x+ c4 q# n, f2 d4 X
(while
) D, {6 ~7 Q7 ~, u" R, A* J' g( U (not% \; Y% U7 l& Y0 m; H
(and- f% v- v+ x. A) `, J2 \0 r
(setq ename1 (car(entsel "\nSelect first text string to join: ")))
; q. u6 g# b& @) A+ k (setq ent1 (entget ename1))
2 [+ [$ \( g5 J' [- H* f" P) K (eq(cdr(assoc 0 ent1))"TEXT"): [0 w1 y- E) T5 _1 O
);and
: D4 R1 H; Y6 ]9 z );not
$ b* Z$ a! s7 }' \( b0 X' b);while* f4 M% S2 p- O% ~3 q
(setq old1 (cdr(assoc 1 ent1)))
9 p3 I8 y1 h5 K6 a q(while
N1 G5 E1 `' h (not
/ Y9 [! X1 D0 [- P8 i; I (and) X* u9 E+ K/ Y" p! a4 C" J
(setq ename2 (car(entsel "\nSelect second text string to join: ")))
" ?+ c3 {8 e# I6 T% X! p& Q (setq ent2 (entget ename2))
+ j1 W" Z. h9 y2 k' H (eq(cdr(assoc 0 ent2))"TEXT")
9 ~, h. Q& x1 I f% D (not(eq ename1 ename2))- ^# {) d0 g8 [5 x* {+ Q& g7 t
);and: i5 U" Z0 t/ D4 G5 @/ K
);not% X. l) I0 O R; F3 u% o
);while8 c6 J. J5 e( F/ h! K/ A
(setq old2 (cdr(assoc 1 ent2)))* L; y6 c& x' o N% u% B
(setq new1 (strcat old1 " " old2)
$ {% j! `5 B/ j; @9 P9 o ent1
7 e- r! t+ m+ z, e$ Z (subst (cons 1 new1): e& V f& I9 I# g* @. F2 |
(assoc 1 ent1)
. c+ _9 _2 [! O3 [6 H q& W ent1)
2 s o/ O e: j9 Q/ u+ ~);setq, l+ Y& }8 d3 P' G
(entmod ent1); W; x4 E: @2 l1 |6 S, ?
(entdel ename2)
% B. `* ]* A. f: _3 x& z6 U(princ)3 h; P; r) y' j* L$ ?
);defun
) C4 b, |3 s# D6 P/ \6 ^2 e6 O2 O1 {* T& _$ m/ B; I
;=====================================================================
/ F" a4 `" v9 Q- M+ H8 m: l1 o$ W5 x
(defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
9 X; F K6 m. [; Y: O6 p- r
/ A) G: ]3 }# X' t' E (defun nterr (s)
) u$ P6 O( f/ u, I( Z9 _* K9 I (command "_.UCS" "" "_.UNDO" "E")- r2 N# J" A. {; d, V. m) w
(setvar "cmdecho" 1)- {/ s8 z/ m& }/ t
(setvar "blipmode" 0)
8 F# Y5 [$ D- Y* X) \ (setq *error* olderr)
: y2 a; ]7 y3 t9 N (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
( ]! X8 l4 y. y o2 l6 B; g+ V9 H5 }0 u nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)8 I8 K( K/ K- T) x6 u# t- N6 }4 R
(princ)
" @2 e3 p; B! W8 {9 g )6 j: i. `4 R) }9 n' |+ _
}, ~# C$ n4 T5 x) d
(defun tim_in (dt / p01 p02 ktra) o! M/ O% Z, F% Z9 b+ |* S
(setq p01 (cdr (assoc 10 (entget dt))))1 X, I% \. _! B- T% m! B: A
(setq p02 (cdr (assoc 11 (entget dt))))
# D0 j! n* n1 X1 P9 p& U (setq ktra T)
: w. \( H) Z; c- y! [ (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
( A4 P( i! A% H7 c3 H. n (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))% F4 W$ H7 b$ M1 |& [8 Z m
(setq ktra nil)( P; P' p" u. {% e c
), K, Q8 y* z" C
(if (and (> (car p02) (car g1)) (< (car p02) (car g2))
' h6 f9 X1 w( Z. F# L) w (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
3 q, A/ u0 U1 D& S. A' [) g (setq ktra nil)
: n. |' r2 i) v7 }1 \) n )* f/ e5 y+ K& B- G: ]4 ^& x$ g$ W
ktra
5 E' g ~5 e8 G )/ a8 J2 {1 Y- E
0 H% d3 x; p1 g; ~% R$ F q& t9 @ [
(defun timdt (dt1 dt2 / p01 p02)) t: B: k$ @: E% q* k1 H
(setq p01 (cdr (assoc 10 (entget dt2))))3 S T( u" f9 g& f- c, N
(setq p02 (cdr (assoc 11 (entget dt2))))
) H0 B. q% t! V' J4 v* ] (setvar "ucsicon" 0)/ \( [* j2 r4 \# g- n6 b/ D
(command "_.UCS" "E" dt1)2 D; |) g6 ~$ O# | @: X& F; t
(setq p01 (trans p01 0 1))
Z; d' X* z# ` @. s9 d9 e (setq p02 (trans p02 0 1))
% e& e! F+ v3 a( z (command "_.UCS" "")8 z7 ~" M& @% t) F$ I; r
(setvar "ucsicon" 1)
% G+ O1 U9 E5 |9 }# H. U (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001)); A# ?& e% G- S9 s
T
' r; y2 {# K+ b& u3 ` nil
% _/ t# e) D0 ~1 k ); n! r8 r# Z# o8 t* J5 E
)& r) c7 ~! P D$ y6 o
7 ^1 r S. P* E7 Q, M: |. a
(defun tim_out (dt / p01 p02 kt)8 F$ j3 `, P c, c: h3 j
(setq p01 (cdr (assoc 10 (entget dt))))' h, y0 P, O% Z, E; z# U
(setq p02 (cdr (assoc 11 (entget dt))))
( M7 ]6 T- ^9 l3 H: \) u' s- f2 Y (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
; V& z7 u8 W4 m8 h6 C N (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))9 F4 W- g. j" m( u0 F/ o/ |
(setq kt p02)
- c5 B, j# I4 ]9 B: d8 M Y0 k )
7 m! `' T. v. K. |+ b4 } (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
2 h) J* v B, C$ ]) n5 D% T (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
; { c( F$ u) m! {' N! p (setq kt p01)3 @5 P( `* N" F) G- n
)5 r# Q( E5 J+ m: }; S
kt * a( P# p, q3 P8 X- `. }. S
)$ q! F& |3 w) h4 u6 f/ @
( X) t4 m7 A) w5 T. w; o
(setvar "cmdecho" 0) T1 H7 A7 V6 H6 N3 S9 R
(setq olderr *error* *error* nterr)! }' l0 J+ @5 S2 {
(command "_.UNDO" "G" "_.UCS" "")7 v" O E9 {" d
(while (null ss1)* S: _1 A' l$ e$ ^6 d
(princ "\nChon tuong muon noi..."); J7 D' }" y& Y: _# L9 f
(initget 1)
$ ]$ N2 w5 O; j* ^ (setq g1 (getpoint "\n>Goc thu nhat:"))( B2 X! F" c4 K/ O6 S
(initget (+ 1 32))2 s6 g' [1 z |, t* A
(setq g2 (getcorner g1 "\n>Goc thu hai:")): i! O& G) I( ^2 I
(setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))3 B; v6 n9 o# L( d# C
(if (null ss1) (princ "\nKhong tim thay doi tuong!"))3 F6 \+ }8 J+ Q7 I" j' a
)4 Q& s; d5 q$ L+ R! c7 k
0 [2 f5 S4 m! _9 A$ x% T (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2))), ~6 X% h: ?. ^& H
g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
E2 W; C* i- A" _( }' O- y9 R% }3 l g1 temp)! Q2 `' k" K; m4 O. o
(setq ss1 (ssget "w" g1 g2))2 L/ t$ a5 p8 R3 ^) g9 C
(if ss1 (command "_.ERASE" ss1 ""))
4 `# b* s0 w+ T8 ] (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
1 ]) `! x' `! U1 q$ C& P/ [9 R ] T9 {, W# ?3 g) r3 c9 j! l
(setvar "blipmode" 0)3 {0 _" H# [! s- e, f
(setq i 0 l (sslength ss1))- W7 K9 L" V7 v2 [
(while (< i l) B p; P" o( v* j# f n
(if (tim_in (ssname ss1 i))
* @* I' J" L6 s/ W/ i (progn
9 i) d: {, a6 L- y9 ?5 z3 k- D (ssdel (ssname ss1 i) ss1)+ ?# L5 H8 l- F) Y# d- f
(setq i 0 l (1- l))+ a& z( {: j: q: {
)
! N+ a) j2 q; s (setq i (1+ i))
3 j n8 \! E8 }0 R6 u6 a9 w4 S$ v )
& ?0 U1 ] [& R* K )1 Y. `9 G6 {2 L, b2 J H/ L% C
(setq l (sslength ss1))5 v* T' L. ]9 s
(while (>= l 2)1 Q* P7 ^9 L$ w2 b
(setq e1 (ssname ss1 0)), \ V/ b, E2 ?" r/ M* h
(ssdel e1 ss1)
% @ z- j5 x z. D) }; d# i (setq e2 nil i 0 l (sslength ss1))
; p1 ]! q1 i+ Q* @5 K (while (< i l)
0 N, h. B" R# B0 T) S5 z (if (timdt e1 (ssname ss1 i))
: I: ]/ T1 T4 V (progn& x; y& D5 t6 {8 O
(setq e2 (ssname ss1 i))
( z5 U/ A! B$ C0 f (setq dd (tim_out e1))0 r$ j: ^7 L9 M! P* ~- w$ E2 a
(setq dc (tim_out e2))
$ ~0 p9 e+ F, w z. } )
" I/ T/ I/ a6 {# r. V ); z) Y. W, ]0 q% A
(setq i (1+ i))9 h! g8 w0 \* a) b
)% r% G: ^: Q1 G: N+ X1 a- w
(if e2 (progn0 a/ X( t/ D" x* n4 f. r8 K5 N
(ssdel e2 ss1) ( U) h) R) F: c" U& b0 e! |% A
(command "_.ERASE" e2 "")
]) ^$ \0 \! r* A+ h6 }$ \ (setq temp (entget e1))- k6 E6 P" Y$ E
(setq old (assoc 10 temp))0 R6 t0 r" p. k' g( c' C) U5 ]1 |% \
(setq new (cons 10 dd))# N) N' k7 ~- P
(setq temp (subst new old temp))- x* A) S$ T C' p& a2 b" m. |
(entmod temp)% v+ ]$ Y5 r' O, F( l! b
(setq temp (entget e1))
) M: q: d8 ~- v- g (setq old (assoc 11 temp))
- ~% Y3 x2 `2 e* k$ z# ~ (setq new (cons 11 dc))8 S0 B Q) |" W- l! [# o4 q( b
(setq temp (subst new old temp))# H. `; Z9 P* M; d5 v3 O4 }* l
(entmod temp)
; A* d% q6 K [( w. q6 z+ m (redraw e1)
9 H9 B( F8 k' y# a* S% X! D# ~ (setq l (sslength ss1))
: b5 T) a( f% U6 A )
+ [2 X! }; S, t1 \) S* E9 Y- n5 a )
& A- B# L3 ~( T; p3 {2 h5 }& m )% e: T+ A6 {3 P0 r4 w
2 |! \, m9 v2 e" W
(command "_.UCS" "" "_.UNDO" "E")
2 v6 i! a$ O. Q: C) X (setvar "cmdecho" 1)
6 n( I) t3 N, |+ ?. a } (setvar "blipmode" 0)
3 I' J' _1 D: `! z (setq *error* olderr)
9 U( y" `+ z" n, d$ `% q1 M (princ)
. Q5 L8 C/ b) P% [: X8 ~; K$ }- Q9 }4 b)
* C) l+ l( j2 r, G4 E;*********************************************************************; U8 R8 @9 P2 U/ E7 Y3 U+ ~, q% A/ ~
(defun ketthuc ()7 Q+ O: K r3 w! Y
(setvar "cmdecho" luuecho)
! u. T) B$ w, Y (setq *error* luu1 Z) Y9 p6 y1 Y5 x& H
luu nil
G. v, I0 d- K- }9 k1 C, O luuecho nil
% S( X4 q) t7 ?5 Y& B! Y );setq4 {" B) @) F" }+ i
(princ)/ j0 u; ?$ o6 K% n' K8 K3 s; n
) 0 l, v& k& m( E! e9 y0 u$ E5 I. X( X
;*********************************************************************
/ L7 g8 H; E: K(defun modau ()9 W- Y& d" E( R* w2 t; x
(setq luu *error# j. ^! W# y4 u# t2 |8 D
luuecho (getvar "cmdecho")
& V3 k: `* }7 d4 F) P6 P1 G *error (ketthuc)
" G$ G3 [3 ^7 k0 [' C)% q* {+ h3 r8 U& N& y0 C8 Z# A
)1 N: E# R. ~4 w. x9 S' @
;*********************************************************************
L6 [0 j- J* E6 j' h! o(defun xulytext (text / kytu ma sokt luusokt lui ), j% z& z& e+ T8 U* H/ Q1 i
(setq kytu (substr text (strlen text))
# F% F! v$ m+ w) m' S) s3 t; ]2 \ ma (ascii kytu)
' F9 s6 H( s' n) d8 o$ E sokt (read kytu)
& L# V' L3 i! `1 |3 c lui 1
: K% L( K0 E" A/ p8 } r9 _)
) D+ G( g1 \5 t: S. j3 I( O(if (numberp sokt)
& o; a5 i* K+ }1 L7 {. g (progn
+ T5 m4 l. D* E8 k$ e) W; ?% V (setq luusokt (1+ sokt))( [& |3 q: f) B- C m1 I/ V
(if (and (numberp sokt)
: F* L0 Q% V0 E' y7 B (> (strlen text) 1)
# O o" \+ g) X) Z, Q )
5 G) F: m1 z+ ?: f$ r5 v (progn1 |5 j. Y( Z# [. s0 D9 \
(setq kytu (substr text (1- (strlen text)))2 j; A6 x/ f" G8 ^6 ]- o
sokt (read kytu) ) {6 \* {! Z3 g. \1 S5 ^6 m N% W
)
" t# }+ [9 H' n2 o) ? (if (numberp sokt) 5 m- J# P, t+ D
(setq luusokt (1+ sokt)
8 p' t( |3 P4 T" b lui 20 B& C' g; T4 f& T4 n* y! a
/ p8 r/ J. ?- m( h4 `2 x! }1 F )
+ s2 {, w4 A7 p; }1 c: E h q )
, m8 b) Y& ~4 K) V: p );progn ' _! \- o4 P4 B' K% R
)
: y( i2 B% T/ |4 P$ g1 ~ (if (= luusokt 100) (setq luusokt 0))9 K0 F7 A/ k( O1 z( |( k
(setq kytu (rtos luusokt 2 0)! R6 M/ y$ w0 r, y
9 J+ P, I) I: r text (strcat (substr text 1 (- (strlen text) lui)) kytu)! Z+ p" r5 s: }# X+ k
)
' s$ M p. D# K/ f( _7 \" P$ z1 G );progn
& a5 W/ D7 p: |& M (if (or (= kytu "z")
, n4 a9 b6 I' S, y0 V (= kytu "Z")8 A: e$ F2 N- V- y. t2 W- b
)) H" |0 `' e: v, Y
(setq text (strcat text "0")8 n y7 g {' p( v$ G8 z- C* d
textxl "0"
0 u1 @2 \% m9 j; c: w& ] )
! `# u7 R: O3 @1 J (setq ma (1+ ma)
, N$ g4 q& b( o% J4 P& Z text (strcat (substr text 1 (1- (strlen text))) (chr ma))
0 t2 b. |# `) X" t* d/ Y6 R )
# h9 z" {/ i2 K) N) w* k/ M; X );if2 G5 D/ H. u( w* n
);if$ {+ ^% x* f8 a
)
) P2 U, k. \( I;*********************************************************************" s \. j5 Y. W' {' s
(defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)( e# n8 }# c9 C: L6 X4 H K, a" E
;Neu doi tuong la text thi tiep tuc
: r0 k- O8 T/ y( Y(setq doituong (entget tendoituong)
: f5 @' z: t; J$ ~ e kieu (cdr (assoc 0 doituong))$ f" @; S1 v3 \+ r0 Z* w
canle (cdr (assoc 72 doituong))7 m0 u/ V& V) @* u6 y4 F
)
: v7 w) w, D1 ? [2 [(if (or (= kieu "TEXT")
2 `+ v; y0 k6 i4 G2 v R (= kieu "MTEXT")
' V/ W! `9 k/ d' E; D% g ) , A, Z6 Y% q8 Z7 q" p [
(progn% S3 a9 C/ o$ S+ |
(setq textxl (xulytext textxl)
: R3 t, h2 j* M: e7 H1 W text (cons 1 textxl)4 f) F1 o. X, C6 E/ [! V
vitri10 (cdr (assoc 10 doituong))0 i2 E4 m# c7 E$ o, F
vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))% x) R6 l' X9 n% o& F! |
vitri10 (cons 10 vitri10)
% f% E! K) k1 ? vitri11 (cdr (assoc 11 doituong))
* N4 S2 {6 U; g vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech))); s( u% a- d; C
vitri11 (cons 11 vitri11), L2 x4 l! ]: R
dem 0; v) `" l4 O2 G( F) P" _
dsach nil
5 I5 L/ @% v. o6 \9 K- \ )
$ L" `: _3 p3 i% k+ L (foreach tam doituong# c9 {. i6 C7 N5 m/ w1 G& i
(cond
% f4 ]" q% Y; j ((= (car tam) 1) (setq dsach (append dsach (list text)))) L. X2 d* W z9 L7 y; @9 S3 O- h( w3 }
((= (car tam) 10) (setq dsach (append dsach (list vitri10))))4 m4 V; B- c; l0 t4 ~# Y' q: C7 _
((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
+ J! g3 i1 y! F% ]5 A' r% q ((setq dsach (append dsach (list tam))))' \3 n" u4 w! J7 V8 h( y
)- u" p* S# B/ @
)+ R) r, c" ?8 h8 A9 ]
(entmake dsach)
7 Q9 A; r) V; k- u9 ?; ]$ H5 p/ u );progn
* }. m- V* r2 k2 y* o* O% c);if0 L- c9 h# V# M
);
: O$ u* T. x8 C/ g# X;*********************************************************************( E4 J. x ~- t' b
;sao doi tuong cu sang vi tri moi' f, j4 ?* o% J+ t
2 d- {5 F/ q" v(defun copy_dt (tendoituong )! p; ^$ Y+ E+ O$ w0 g/ o
(command "copy" tendoituong "" goc toi )
, W6 I# o4 ^% t3 S; g* f);defun
6 }7 c1 M a/ H' s) J Y
6 I- i1 u5 ~# s: A) X;*********************************************************************. l! x' ^! X2 [3 {; e
7 |3 ?5 B* Z2 d1 e; c
(defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
- w+ }: S1 Y* P& l6 b; Khoi dau cua chuong trinh6 t; r8 j1 O: J- h1 `
(princ "\nCopy Inteligent...\n")* S5 T |+ ~# d0 X% s+ b& {6 N
(setq luuecho (getvar "cmdecho")1 R3 o% Z4 R5 j2 D7 w" {- o4 a+ [: o
luu *error*
' } C& o: b, U# o1 z% z! l& I *error* ketthuc% B, s7 K" a* s. j. d: v
cumdt (ssget)
: v: P2 C4 t# |( A9 P dodai (sslength cumdt)
. }1 ^# N5 G, S; v' u1 d: B# \: _ goc (getpoint "\nSelect base point:")" R8 a4 b: M5 E, C
thoat nil4 O* e" H/ b4 t, g' D: L2 v$ `
dem 0
m) o D$ P) I, ]; ` U textxl nil
U6 i5 g" W( e, ^: o);
1 w; X( O* m# f/ c(setvar "cmdecho" 0)
M1 J/ ~) g4 V$ ]9 ~5 J; Loc ra duoc ong text de xu ly
1 M3 A1 J* A) B, [0 q4 @4 s(while (and (= thoat nil)
4 E- d" N4 ]* }. D. [ (< dem dodai)( M9 c/ j( L+ ^; p) {/ ^2 |1 \
)
0 H/ |$ G1 o% s) h* h7 }! C (setq ten (ssname cumdt dem), i7 ]6 e% u+ A: V* X$ x
dem (1+ dem)* t5 c. {1 ^. X: k" t1 X. g
doituong (entget ten)
+ k6 ]# i- A( j7 h kieu (cdr (assoc 0 doituong))
, W: F4 b8 P% K# M! l+ c! H8 O2 E )
3 z) r% a9 J! ]: Z# B. P
+ }) h+ ^. _& j e- r (if (or (= kieu "TEXT")9 R# D' Y( d9 G
(= kieu "MTEXT") 7 o' h0 y+ q3 J0 D! c2 d' ?% N* Y
)
6 V4 y! i @; h, q& ~ (setq thoat T
0 z- L; h7 K" N3 E( E textxl (cdr (assoc 1 doituong))
?7 d y$ Q5 ]5 \* x( I& ]. j1 `. o0 _ )
9 \0 o4 u& \( e/ ?( U )
: I, _! [& w9 i" C- V m);
0 N6 {. n# M3 S: A6 H4 Z0 g(while T 5 Y7 j# d$ Q: u
(setq toi (getpoint "\nSelect next point: " goc)
4 D8 Q) l) g( D7 B4 G9 g F vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))0 q! w, v& R2 z
dem 0" B* s% K/ Z& o& P
): H6 y6 b$ b j: D: H8 L# A
(while (< dem dodai). g, m4 a6 L! @0 X6 u( @
(setq ten (ssname cumdt dem)
6 \) p! ]- H( C6 _, c) D dem (1+ dem)$ u9 {- d1 R7 o) i( E
doituong (entget ten)
5 M1 X" ]+ p/ R kieu (cdr (assoc 0 doituong)) # W% z; W5 U' f
)- K& `+ {/ k& O1 z
) x& t6 i) M; a9 _' r- v (if (or (= kieu "TEXT")5 U$ z W1 r b7 ?9 ^
(= kieu "MTEXT")
* S7 P$ i) a N7 A% g! v* u )
0 O/ @" P5 a" D (doitext ten)
& T0 {9 A5 w5 X8 p (copy_dt ten)
* j& \, L7 ~: c+ ]. G: d0 [. ]7 _- I0 p0 |- u1 n
);if9 ?, T# j) ?! X1 S) \- q' ?
)
1 Z% @% b$ }( F9 |( C' R' I* i);while
' T/ i& ?# I3 J. y+ U(ketthuc)
# P4 c) x- ?9 `1 u);defun+ A& E# o/ |- d) \
(princ "Type \"DG\" to start")
# {7 V% g3 E- |4 e;Note: bien toan cuc: textxl vitrilech9 u/ c, E! _: O( k; G2 l
: x: R1 \( C; q, M+ X;=====================================================================! ]' {: u+ o) A, W x7 A7 Y
;;; PLJOINFUZZ.LSP
7 _/ K' x! r5 v1 I& ^;;; Joins lines, arcs and polylines using a fuzz distance
8 s3 Q1 `3 u6 V5 l;;; If only one object is selected it tries to join to all objects that are possible
+ `4 n' _- ^' d- p/ J;;; By Jimmy Bergmark- N6 N3 m; n# A s& z7 v3 I
;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
8 x+ |1 L6 H! M k;;; Website: www.jtbworld.com
, L9 ]' z, ~1 K;;; E-mail: info@jtbworld.com5 m- z' {. p, G' K: B
;;; Tested on AutoCAD 2002,2004 and 2005' P1 Q1 d" i1 G* w; a
;;; Latest revision made 2004-11-11
# v, K1 L: H, Y7 S. A& J+ K;;; Minor code cosmetic change made 2004-11-13% z0 l# S) C9 Z% ?) W" l: x
;;; Bug corrected 2004-12-23
. p2 n# a6 \. o& A7 i) ?
) ?% d5 v# k/ @* Q(defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf: w |. g1 E$ A, z+ t$ h5 h& }
(defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)3 z- Y, Z6 l; F* t3 _. r8 {: s
(setq oldcmdecho (getvar "cmdecho"))2 T3 s8 g$ P$ f8 X9 i" [
(setq oldpeditaccept (getvar "PEDITACCEPT"))
/ _' N3 N2 n4 B" u (setvar "cmdecho" 0)( g7 u$ s7 Y% t. G) z
(setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))7 c9 T% ~% S" x
(if A2k4 (setvar "PEDITACCEPT" 0))$ y, o) U2 P0 Y6 N" T2 t' f. k
(setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))4 T# U$ N. K" U% q
(princ "\nSelect object to join: "); [( [8 R. z4 R2 j
(setq ss1 (ssget okObjects))3 o7 i% U; k3 m0 R+ V+ ^; M4 S
(setq fuzz (getdist "\nFuzz distance <0>: "))5 I( P6 f9 R. r& f8 D7 l
(if (= fuzz nil) (setq fuzz 0))# ?/ y l* V# X# Q; x
(if (/= ss1 nil)
6 b; V- u$ t2 ?4 p" E3 ]3 V (progn/ v, p3 H s' ?0 f# A
(setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
( t; \( u) z4 T9 w. D. ] (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))/ Z. g" y! ]5 O- c6 |! e
(if (member objType '("LINE" "ARC"))
, _* [* | i1 B* {9 c* R (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
6 |! f% h$ t: q. R (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")/ ]# W4 b5 y/ N+ b0 X
)
& Y% t& b* G5 O# w )
! T5 V4 \% |* k) q )- M- q [! `! C, _% L3 |2 u
(setvar "cmdecho" oldcmdecho)
# B9 T4 n' l4 }$ q) d6 m2 X5 K (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
7 u- D+ r" D$ S$ S# v- z$ i' @ (princ)
/ s9 Y* d) d) D/ D" v8 })
. L" a- ~) _; O' y, a! T0 g% @
7 C# |) S" |5 m% z5 k9 X;===========================VE CAO TRINH===========================
0 z; \# ^" d j. F
0 [' k0 S1 q2 v3 K1 Y(DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
' w7 b8 _/ l# c" V5 [+ l CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)6 J2 ?0 j8 m% g3 V$ e
(SETQ OLDERR *error*$ t. N( _; |# n a/ {/ g. Z2 c
*error* loisb)/ O& Z) K5 t+ w5 _' F- p. w) o
(command "layer" "m" "dim" "c" "" """")
& \0 g' C! v; C5 j t1 f(SETQ CMD (GETVAR "CMDECHO"))) E" D- z# c- l; t$ U0 o
(SETQ NBC (GETVAR "CLAYER")); v" [" a ]+ Z& x
(SETQ OSM (GETVAR "OSMODE"))
. E# S( t L: {" s(SETVAR "CMDECHO" 0)
, Z8 B0 P, p$ S! B6 c# x(SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
9 C$ x; R- ^1 g& L' [7 }- ]( K(SETQ TX (GETSTRING "\nCao trinh:"))
( R6 J7 U; F- {& z5 m1 e* b$ t(SETQ FCH (SUBSTR TX 1 1))" ]4 |7 B/ K0 g4 W# q, m
(IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
# C+ z! r4 a, Y: B(SETQ CRST (GETVAR "TEXTSTYLE"))# ]: ` ]7 U, l3 f+ u! z
(SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))2 t6 O1 K, L- P q7 D' q
(SETQ TSIZE (GETVAR "TEXTSIZE"))* y" V' ?7 A% d& K& ?# P5 v
(SETQ STR (RTOS TSIZE 2))2 l1 A5 b6 w4 z9 D" z
(SETQ PRMT (STRCAT "\nText height <" STR ">:"))
1 i/ R2 P2 _6 f(IF (= RSIZE 0). {. S- _" i+ A2 |# K
(PROGN' M, ~' k+ s+ z% f3 C6 J$ g
(INITGET 4)0 [& q# c) U2 J: [$ Y1 e/ W
(SETQ TSIZE (GETREAL PRMT))
. T$ z6 U4 o5 H (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
7 a# B% C# ?6 B: S& m (SETVAR "TEXTSIZE" TSIZE))
2 ?1 g" f5 ^5 ?) W5 h" l: F% f) L )* ~9 [1 s5 q( V) ^; t9 N2 l
)1 _' y+ G& y5 @
(PRINC)
6 e2 H# o& s4 `6 t) `$ U* R(SETQ TL (/ (GETVAR "TEXTSIZE") 2))* j& K, j) {: I6 f% i" L+ e, L
(SETVAR "OSMODE" 0)
( Z' a4 V* A; w; ]- r' [% R(SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
9 T4 g0 R6 m1 f0 n0 y$ o(SETQ NPI (/ PI 2))2 b `0 G$ w# r2 K
(SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
, j2 h- C3 h! x1 U(SETQ PT2 (POLAR PT4 PI (* 2 TL)))
, Q; g6 m2 y4 M) b$ S+ h(SETQ PT3 (POLAR PT4 0 (* 2 TL)))
6 ^( a7 {8 x5 Q) o2 O+ Q2 u% \8 B(SETQ PT5 (POLAR PT4 NPI (* 5 TL)))7 W$ o+ r% x! x- V4 h+ u+ v, M+ G7 ?
(SETQ PT6 (POLAR PT2 NPI TL))
9 z+ h! K' H1 V" t(SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
9 q2 `5 Z2 z/ x! u! m(SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
! C& _) J+ O6 g& D(SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
! g& F/ j$ Y( ^( l(SETQ PT9 (POLAR PT1 pi (* 2 TL)))8 M2 C4 W, [- k
(SETQ PT10 (POLAR PT1 0 (* 2 TL)))5 k3 D0 u1 i" j: ]! S! U( g
(COMMAND "COLOR" "7" "")4 Y4 A8 T/ i, D
(COMMAND "STYLE" "COTES" "tcvn3italic,vnh.shx" "" "1" "0" "n" "n" "n")7 Y! n- k" k2 x8 b V
(IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))/ Z9 Q0 B8 {1 y! s
(COMMAND "COLOR" "BYLAYER" "")
B9 ~& p8 O; r" e: u, U, I(COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
, q" U) s! O( \5 y(COMMAND "COLOR" "BYLAYER" "")
. s$ F ^* z/ l; T2 b1 w(COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")7 ^, o9 o- E9 ]! b
(SETVAR "CLAYER" "0")
# Y4 D& d; P6 r3 N(command "ddedit" pause)2 f1 s$ w% J q3 `# i9 j# j' m3 A
(COMMAND "COLOR" "BYLAYER" "")
. q' D4 [7 w/ u, K) n0 _# v! [+ |+ ](SETVAR "CMDECHO" CMD)
: Z- p2 v% R% ?7 X: m) ^. @(SETVAR "CLAYER" NBC)7 B4 w# g1 ~' x
(SETVAR "OSMODE" OSM)
; ?9 S1 k7 c# C- W2 O% l+ H1 \! F(PRINC)
/ O" p/ n: t' z E)
- a/ K' z. x& m7 n7 q+ z! n$ X+ s% O' ]( k/ N; u
;;; =========================== VE NET CAT CHEO (GC) =============================) e8 `2 q, a% ` ?( K, e
. b- x T s. \ y% E& A/ X2 E' h
(Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)( b# C* G8 X8 d2 q' `( p. t# X: X
(setq x (getvar "osmode"))
, G& ?2 [* C. B9 x. R (setq p1 (getpoint "First point : ")
! `! b! p9 n( B4 w h) R/ Q% p0 f p2 (getpoint p1 "Second point : ")) q4 P3 v$ k U0 B% a: u2 U" [
(setq l (distance p1 p2))# S! K" K) x4 I7 Q7 S! a( g
(setq p11 (polar p1 (angle p2 p1) (/ l 5))3 u8 T8 @ {7 D" b6 i" I
p12 (polar p2 (angle p1 p2) (/ l 5)))' X/ w/ l& |+ }5 g9 x1 r
(setq ang (angle p1 p2))
0 m F1 x" g) e# _ (setq p3 (polar p1 ang (/ l 2.5))
1 d- Y# a8 t. Y; _ p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
& i$ s* W6 a! h: p p5 (polar p3 ang (/ l 5))
: h- P) a2 \9 K p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))3 d/ U* ^2 D1 D) D! k& q) l n) {
(setvar "osmode" 0)
0 u4 s% O2 L8 \- G6 `! w+ x (command "pline" p11 p3 p4 p6 p5 p12 "")8 L G% s# C) G- O( _: w
(setvar "osmode" x) X) G5 @& \# ^* i
)9 o+ ?6 _! i' K/ K
;----------------------------------------------------------------------------------
- j9 j! U- o2 u& ]$ o(Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
. c& Y1 r& ?1 j& ]5 h' I pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
, k* n0 m! Y3 J: k# |0 o (setq ps1 (getpoint "\Chon diem thu nhat: "))
3 y/ s- p- a" m& T( S (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
2 C* J4 g" r0 s (setq sb 50.0 sh 200.0 se 20.0)
0 O/ W0 b- w7 {# ]7 x4 M+ Z5 W (setq ang (angle ps1 ps2))
% f ~. f0 _; ^: Y1 x1 s9 J (setq pf1 (polar ps1 ang (- 0.0 se)))! l( t2 ]7 c( P- u8 O' v- x
(setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
/ x8 C" A$ ]5 P) y (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0))). A+ M" U! ~: h9 s
(setq pf5 (polar pf2 ang sb))
& g+ h0 e1 t6 O p (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))! x, n4 j3 n7 J2 d
(setq pf6 (polar ps2 ang se))5 \' K; W0 u% a+ I/ T9 Y& g/ h3 o0 ?
(setvar "OSMODE" 0)) |+ C5 }0 J- k4 n# `" n
(setvar "BLIPMODE" 0)) X @5 S1 M9 a" i$ d) e
(command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")& M' O* h! h; E1 V3 x. L/ R
(setvar "OSMODE" 703)5 D' m# z! ~8 e3 e
(princ) )) D$ G! V# U' t0 e1 `3 |
;----------------------------------------------------------------------------------* h4 Y6 \' K+ U0 x
(Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf66 A: O% a& {4 }% B4 c. i& R
pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))6 ^0 M: K% O2 k/ n
(setq ps1 (getpoint "\Chon diem thu nhat: "))2 Q$ K( i) f8 n* q+ D9 T
(setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))* P! ~5 o5 P# H# F# j
(setq sb 100.0 sh 150.0 se 20.0)( ~% w0 f8 N5 |" M( f/ i
(setq ang (angle ps1 ps2))
" C) D1 }/ S5 w* v* n3 o0 s7 j: w! m (setq pf1 (polar ps1 ang (- 0.0 se)))
* [4 c+ Z) A" O( P$ I/ p (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))! Z8 e$ o ~* E7 c, L
(setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))$ [$ x* h* T3 }" i
(setq pf5 (polar pf2 ang sb))
8 F' e5 |% V2 {! M( O (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
. q$ v5 P! c2 X2 \* n1 d, A (setq pf6 (polar ps2 ang se))
( t+ h1 A+ d3 n% M1 d8 J (setvar "OSMODE" 0)- p0 |" H; O5 K" g$ t8 }" i
(setvar "BLIPMODE" 0)3 R& Y9 x9 M2 P0 X; Q
(command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")3 s6 W. O' h' P7 i1 A6 V
(setvar "OSMODE" 703)5 E: ?. u7 w+ G* k
(princ) )
+ D, `9 S& t9 B3 b6 D;----------------------------------------------------------------------------------
/ U" Z( I' K( U5 v(Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
- w4 e) s5 y% t& h0 m pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))4 ^$ Y. b3 z! o T
(setq ps1 (getpoint "\Chon diem thu nhat: ")). p& P+ ^' a% k. C7 t
(setq ps2 (getpoint ps1 "\nChon diem tiep theo: ")). J- z4 ?2 ~ Y6 I6 T
(setq sb 100.0 sh 250.0 se 20.0)
$ Y2 O) X1 a; ` (setq ang (angle ps1 ps2))
/ K3 z8 p! K" I* c* n (setq pf1 (polar ps1 ang (- 0.0 se)))1 ?% ^+ E+ l$ m2 k
(setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
$ `+ v' O/ i' Q2 Q. W (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))5 a4 V+ H+ {7 |9 R6 `* `, ?8 @
(setq pf5 (polar pf2 ang sb))8 B" s8 Y1 `3 @+ W X
(setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))+ E4 y+ v# l. `% p
(setq pf6 (polar ps2 ang se))
% q9 M6 s9 _) {8 A. V x& s (setvar "OSMODE" 0)
) V! t% f; j: }0 m2 A& h1 d (setvar "BLIPMODE" 0)
B& h# L; G5 u# b3 q (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")" N; i) [( K/ L/ ?" [- p
(setvar "OSMODE" 703)/ y) ^. q! ~; O& ], j" w
(princ) )# L" q5 D- T" Z3 U( b
+ W9 W$ c9 Z. g) Y;==================================================================================% G9 {9 }! o7 Z
(defun c:ang (/ ent pt1 pt2 ang)! S- w! k9 t; X, ^; E
(setq cmd (getvar "cmdecho"))2 d+ e9 E0 X. ^- l& g3 p
(setvar "cmdecho" 1)
9 a+ T8 i0 @4 V9 L (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
: K4 {+ s) s( G! c3 @# I (setq ent (entsel "\nChon duong thang:"))9 a9 x6 e6 O) P5 z a3 s9 w Z
(if ent 0 O: b: x' p4 ]. C; l; A( }3 X7 ?
(progn3 X4 B+ }# V+ p: Q6 i9 j1 V
(setq ent (entget (car ent)))2 I4 p/ N. `2 H7 U/ m' P
(setq pt1 (cdr (assoc 10 ent)))$ y( V; n0 l: [$ _* B& r8 v
(setq pt2 (cdr (assoc 11 ent)))% ~% @8 P! j" b8 E7 ?
(setq ang (angle pt1 pt2))' [( f$ ^; l; [1 C* a% m( B" z
(setq ang (/ (* ang 180.0) pi))+ r4 A, y" h( l, |
(setvar "cmdecho" 0)2 j* q- P, x7 i. \
(command "setvar" "snapang" ang)
5 u( A, O1 X1 G. y( B& ` (princ "\nGoc cua truc toa do moi : ")
$ \' h1 S0 X0 P3 n! X4 w (princ ang)1 U% F3 c1 x3 u" N
)' Y$ ^. l7 T% ]. s* y
)
+ K' O3 s+ Y( T7 ` (setvar "cmdecho" cmd)
5 h7 _( g$ l s (princ)$ d l% B+ U9 {$ P! q* S5 G
)
' E% A& `+ Z, m& q! W3 o8 \;==================================================================================8 V, T# z; A; n* v7 T; e1 L
;============================== KY HIEU DOI XUNG ==============================
* A2 D. d' y- M4 ~1 E;==================================================================================
% v+ h$ O0 y8 L% U: O1 n) B+ E" Z G8 Y- D) ` |
(DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9# `+ S8 h: @. l, ]0 T
SZ G45 G135 G90 G180 SS loi)
3 j/ |$ I% T. x5 _1 `' x(defun loi (s)7 W5 n& R/ `; i% O7 ]- a1 c4 x
(if (= s "Function cancelled") d' i: |, s+ K- @% p3 z
(princ); S" r% s& m" \" l
(princ (strcat "Error:" s))
" m, D1 _2 P" Z0 a- [7 g8 t* B/ } )
6 X l0 @7 C3 D) M7 g (SETVAR "CMDECHO" CMD)
" n6 U1 N: j4 ^* l8 C9 W6 u: K (SETVAR "OSMODE" OSM)* k6 ~$ t5 P8 |7 m3 ~* C
(SETQ *error* OLDERR)
/ i5 r8 P3 l P9 ]& A5 ^ (PRINC)% w, d+ {& k6 x U; ^2 s; G
)
! c* A9 }$ \1 U( g8 m) e (SETQ CMD (GETVAR "CMDECHO")), |7 D, B: z8 T4 [9 Q A2 e) ?
(SETQ OSM (GETVAR "OSMODE"))! Y. `9 ^8 A* H$ h4 @' G: f. s
(SETVAR "CMDECHO" 0)
2 J& b' t+ d7 S5 i (SETQ OLDERR *error** }! E3 k. q* p+ f) F$ u% u
*error* loi)
+ q: |. u& p# {2 O8 p3 m (SETQ SZ (GETREAL "Size <1>:"))
1 A: R# D7 r& r, f; q (IF (= SZ nil) (SETQ SZ 100))1 b" h: l0 Y7 H8 E
(SETQ G45 (/ PI 4))/ D3 p8 x9 j$ j9 _, o: S' `) V
(SETQ G135 (* 3 (/ PI 4)))8 |# t/ a2 J; B: R; {* C
(SETQ G90 (- G45 (/ PI 2)))$ z# [ y b' w7 t
(SETQ G180 (+ G135 (/ PI 2)))
h$ t1 B! ^$ `, M- v (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
" X+ n* M4 g( I% l (SETVAR "OSMODE" 0)
" }0 T) R# `7 g' N) V (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
4 n% I* [# u; q7 p" ]( ? (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))& I# u/ M' q! p1 F/ U
(SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
3 w0 w! J3 J* Y. S (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))% H6 q1 t6 M3 X: J. H
(SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
8 K% Q2 t0 x" L& m( U (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))) [. S( L9 F9 C
(SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
+ R! B4 M1 V4 s' r3 ~( { (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))( E! t& S2 k w1 H# h/ v3 C: y, P6 m
(PRINC "\nGoc quay:")! V( C: |# v+ J `, J
(SETQ SS (SSADD))
+ z1 N! @6 j) [+ T7 g(command "layer" "m" "Dim" "c" "" """")
9 L2 a, w: n* x+ E. y* m4 s/ ?(COMMAND "COLOR" "1" "")
5 N/ w& e" e, W! t (COMMAND "LINE" PT8 PT2 "")
0 F5 ^' a; `$ N9 _% J1 b9 p, ` (SETQ SS (SSADD (ENTLAST) SS))! a6 z2 m, D- j# Y% Y- ^$ \: x
(COMMAND "LINE" PT9 PT5 ""): j+ q, j8 z+ u
(SETQ SS (SSADD (ENTLAST) SS))
6 \8 ~9 ~+ D4 S3 C/ o! o- ~" f(COMMAND "COLOR" "1" "")! k M) S; S( P6 h u2 R
(COMMAND "SOLID" PT2 PT3 PT4 "" "")" G/ y4 Q" J/ C6 A+ D2 t$ i5 E
(SETQ SS (SSADD (ENTLAST) SS))
+ |6 e% o$ [4 I) V; y p5 |2 h (COMMAND "SOLID" PT5 PT6 PT7 "" "")4 s: S& p+ g) M4 O3 K6 I) Y
(SETQ SS (SSADD (ENTLAST) SS))
: o; B. T6 c0 T (COMMAND "ROTATE" SS "" PT1 PAUSE)% F5 e& }1 e( Z$ [6 ?" l& A1 A) I
(COMMAND "COLOR" "BYLAYER" "")
0 n$ m! W. D W9 r" c (SETVAR "CMDECHO" CMD)
+ J s O# j* q4 c: d; c( n (SETVAR "OSMODE" OSM)9 {, [1 W- y5 x) ?/ x
(SETQ *error* OLDERR)* H j) j+ L* G6 x+ U2 f/ T+ Q4 K
(PRINC) \5 n M9 f% l# g! M8 n4 |( i$ K
)' w9 R8 D$ [4 ~' T
$ Y0 ?" y0 M- k9 ~
;==================================================================================
0 r1 j9 c& y/ |- y1 C6 ];================================= KY HIEU TRUC ===============================# G2 S/ r6 S Z* p4 ?% x& a+ i) r
;==================================================================================0 R& P' r6 a! s; i) F2 F2 \
* k/ \) l6 e) L* M" Q# H+ P(defun C:vetruc ()& A+ F1 B" S1 C" u4 w* _
(setq bk (getvar "USERR3"))/ S) x* p) F& Y
(if (= bk 0) n% V! K/ y0 J1 k* {/ }. o2 k( C
(progn
9 X1 m9 z/ J: ] (setq cont "1")
. r& p8 }' i" q (setvar "USERR3" 1)+ n! N* c5 e T1 Z" Y5 s* Q4 x
)
1 b6 X2 L0 u! R9 w( ^ (setq cont (rtos bk))
% `. w4 g2 z/ @( v! f% z8 u$ v)
' F' K' M; ~# \8 z8 u(setq pt1 (getpoint "\n Nhap diem dat:"))
0 U, U% B; S1 M1 _(command "layer" "m" "Dim" "c" "" """")
5 ]- o( @# o5 V(command "osnap" "")% e7 w* w+ I( z1 `0 A0 t+ k
(COMMAND "COLOR" "7" "")
; i: k9 Y& {7 c" b7 q- Q(command "circle" pt1 150 "")
) r5 |# P- b! _& I) m4 [7 D- B(setq pt2 (polar pt1 0 150))
- H: C- ^% Y8 e* X- n: Y; X. e5 E; P(setq pt3 (polar pt1 (/ pi 1) 150))/ l* ]* n# o j( A' q: {% W# I& H
(setq pt4 (polar pt1 0 300))
; ]! i* q4 K" I7 d4 {(setq pt5 (polar pt1 (/ pi 1) 300))7 ]. G$ J# y- v: t7 S- N z
(setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))% F3 c) @: _; A' v8 v) G
(setq pt7 (polar pt1 (- 0 (/ pi 2)) 300)), h% i# g: c4 ]; \+ M2 H
(setq pt8 (polar pt1 (/ pi 2) 150))5 Z- y7 @: V) p6 P, n
(setq pt9 (polar pt1 (/ pi 2) 300))# e4 L9 w4 d C. M, R7 _
(setq pt10 (polar pt1 0 150))
) g3 s. f3 I' t# L(setq pt11 (polar pt1 (/ pi 4) 150))
. M% x" n( r( w' L7 L(COMMAND "COLOR" "BYLAYER" "")
+ q! B; m$ ~* K9 F7 a0 M(command "line" pt2 pt4 ""). S2 h3 _4 q: H1 k
(command "line" pt6 pt7 "")
. {- G! ^1 f/ Z3 u) M, ~(command "line" pt3 pt5 "")
/ h6 O) Q- n+ F4 l9 n Z(command "line" pt8 pt9 "")
( o( y* a/ e5 B3 ]9 D(setq dk (strcat "\n Size:<"cont">"))& q q0 y4 {5 B' ?4 y+ x, }
(setq bk (getreal dk))
/ R3 Z4 s" k) V! L(if (= bk nil)
- v; M7 T( N' A (progn
$ c" u% z# @5 A: J5 J" [$ {/ Y (setq bk (getvar "USERR3"))1 `3 d R/ z5 N( b+ Q' d" C6 A
)8 B! g5 L, R0 a9 z* S
(setvar "USERR3" bk)
+ x0 B o3 I7 B' e; n$ h+ L )
3 [8 x8 B& n/ X; D# {. I" D(command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk""). Y- k" _2 H7 |
(COMMAND "COLOR" "7" "")
4 P3 o$ X! H9 |! y e6 v(COMMAND "STYLE" "Truc" "impact" "" "" "" "" "") n' h- Y$ w0 ? p
(command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
( [- ~4 ?/ P% f, U; V(COMMAND "COLOR" "BYLAYER" "")2 Q* B( S% ~6 F, I8 y
)
* c! |$ r+ n/ p A- H- M
: S% ^. s% e, K2 e. M4 t;=====================================================================5 M# J5 B9 C: Q4 Y7 D/ b) A
;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)5 _- e% Y: s8 B% s# K+ K
;
" F& H; W! a+ y: h! v( d9 s5 };Jeffery P Sanders
3 C0 \4 d: B& l- V6 z+ }# K;' }- v ~6 Q$ Q( c/ {; K+ _6 y' M1 E! K
(defun C:CA(/ en enlist tx newtx cnt tp asc note). A, }0 d/ D0 i9 ?/ v0 q3 Q2 c
(setvar "cmdecho" 0)
: y' K6 H2 t7 x6 E' O" ~9 g! ] (if(setq en(entsel))3 R! I3 d) F# Z0 F2 ]
(progn" Q3 \5 ~9 p0 I# y' V, b
(setq enlist(entget(car en)))
5 v5 B$ k! u P9 J2 i5 g7 `# }6 X$ ~ (if(= "TEXT"(cdr(assoc 0 enlist)))6 p. l1 Z$ j4 [) s0 \3 F$ E: T
(progn: K1 T+ A9 E* O% u' n
(setq tx(cdr(assoc 1 enlist))
" l7 ]" V, X- H3 H newtx "" cnt(strlen tx), C/ A& x% Y* A7 f% X* q# N) o" }
note "\n...CASE Reversed. \n "
! k! c1 X3 h8 D& s/ Q) E5 q )
5 p+ F* T" W" w* P( P$ E (while (> cnt 0)7 ~, Q, R, o# k) o& e
(setq tp(substr tx cnt 1))+ k( e9 [/ m6 q/ D! j( p+ u
(setq asc(ascii tp))
! q( Z2 `, Y$ K; c, {6 C5 I& D2 z (if (> asc 96)! X0 K( q/ z( d' |! e
(setq tp(strcase tp))+ n2 \. B6 [5 w% T/ o i
(setq tp(strcase tp T)). Y4 B+ H3 o, E# K& G/ c ]8 q. C6 T
)9 }7 T' Z. X& @
(setq newtx(strcat tp newtx))0 Y& i4 o, u! _2 e m
(setq cnt(- cnt 1))6 d3 C0 U' A* R1 |
)
( p8 ?" u+ A9 A8 H (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
- Q- P' \, c" j (entmod enlist)& k( D }- t l5 V
)- t1 C& W; _ b$ t( ^8 r
(setq note "\n....Text Only Please. \n ")
1 x- T) {* e6 ?$ [) V- P )) d ^' [. G2 w' L
)
5 x" @' U: R; R1 K- d: B (setq note "\n....Nothing Selected. \n ")- C% h9 t7 k8 `: K2 N B+ p
)1 w8 l) i1 L6 Z- m) g. v
(setvar "cmdecho" 1)
! a) e- w' t: Q/ u; K (princ note)
, G4 {7 ~. Q3 ^* q& G* j (princ)
1 f5 [+ S5 G# W7 E)& g. J( D' ], j% I1 q6 n/ X, M# v& @+ g
: R" f% X0 \! _1 U2 }
;=====================================================================( Z9 h$ h: t' L" K+ A K
;==================== NEW TEXT STYLE UPDATE ==========================
) N6 @5 w9 W! w+ a! v9 W;=====================================================================
/ L1 T7 h% N- A' Q) F/ i
' [/ ~1 D% f! I r g(defun c:nS (/ tdt ssdt sodt index)
: r$ k6 Q* M' c g: P: m(defun ObjName (ssdt /)
& j2 t$ v: _( Z8 P A(cdr (assoc '0 (entget ssdt)))
( x0 [# i* V% B): _" C0 {. B. q! N) g& G5 o/ v
(defun MoPL (ssdt /)) K8 h7 o5 Z* s
(= (cdr (assoc '70 (entget ssdt))) 0)
% T3 H1 T' [# Z6 v) s1 s( v)
: X7 D0 \* g7 ^( _(defun NoiPL (ssdt /)- ]9 q. Q1 [2 D3 H% c" s( v6 ^9 k
(if (MoPL ssdt)
( @5 I: y, ~/ z- L, F(command ".PEDIT" ssdt "J" "All" "" "X")
5 R a/ H2 A5 v: ?3 N& x6 a) V: z)
0 I5 F7 Y0 z. t)
% T$ w S7 ^! @' `- I. q( r. j/ Y(defun NoiLC (ssdt /)4 u* v$ j- o. w$ r! D& z, ^8 n0 ~4 V
(command ".PEDIT" ssdt "Y" "J" "All" "" "X")
. L5 Q/ Z6 `3 j* m9 ~& a j5 k- \)% b- w, N* R2 ?
(setq
D. U2 L, b' I( H8 c' N! Q" \tdt (ssget)
4 O- x, A* |3 j7 f1 l) Z, g* W Asodt (sslength tdt)* ^* T3 u/ R9 `
index 0
$ u7 ]# s( L/ f)) `' f# T' ?1 h( w) c" f& C
(repeat sodt7 V* b9 {9 _3 j
(setq' E: H; |; X. B, V
ssdt (ssname tdt index)
' |7 ^) U( K- Z" Z/ X5 \index (1+ index)- |5 `4 | v* |5 M# P
)
8 D7 L7 ^: F6 k4 P(if (or (= (Objname ssdt) "LWPOLYLINE")
! A6 a5 |$ v# y1 w! _, d0 ]( q(= (Objname ssdt) "POLYLINE")5 o- T1 t( K; \3 Y
)
: Z3 p/ y0 j( Y: t- b, `(NoiPL ssdt)# v; l. u! T1 `! U. Q
)( ?' p. _4 a+ _2 \+ S. q% B* C. J
(if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))/ v% s% t6 @% X
(NoiLC ssdt)
% v5 [- m2 C' H5 B+ G)6 Z9 F( j8 {, z+ B; X, x
) E7 u9 R0 |+ x0 H) Q2 s, ~
(princ)& a. L4 _4 b& ?& K5 k. G
)
. d/ i- q6 F- @! {( W2 p) O& _
/ C! F; Y2 {; M9 m! o" L) r;=====================================================================
8 ~% p O- |1 h) M: y3 `;;; AREAM.LSP: ?" U' H. P5 T) m0 [ K( f
;;; Function: Calculates the total area of selected objects j. q+ P4 u- Y; V! n9 B. a
;;; By Jimmy Bergmark
# C+ g. _. Q+ G5 m' Z3 ~" F/ ?;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved4 _' q6 ] O% N
;;; Tested on AutoCAD 2000
0 D/ P6 w+ Y q$ d9 S3 ~: z5 g8 E3 c9 Y
(defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
/ d' {; _ Z' w% x C3 G% C y" F& G (defun errexit (s)
$ p7 @# c# K" Q7 `9 G# g) s" Q (restore)$ S& t3 [( L1 L+ G9 i8 F& i
)
4 j" A& [' L J5 ]
# G' ^- u, g. E (defun undox ()
1 }# L: R! t& q (command "._undo" "_E")
6 u( g7 P. S4 [, [% @. N/ x3 y! T (setvar "cmdecho" oldcmdecho)
) v; D( A9 P$ X7 \& \ (setq *error* olderr)
* C& B, i# x M4 Y0 g- u (princ)
1 E) m! N# E0 X& M6 v4 X ) _9 K8 _! o8 H) b" [1 C
) x7 q/ p- @3 v# g. r6 p1 a; q
(setq olderr *error*
, R, b$ H/ w& B. M) } restore undox$ H0 c( J0 y7 W, {! }5 W
*error* errexit- `5 q Z, r5 `" P' ^
)
* g* M3 v8 }& \- h4 x (setq oldcmdecho (getvar "cmdecho"))$ ^2 F0 d1 G; k; h6 m. u( P
(setvar "cmdecho" 0). a; H, j+ ~2 z7 |
(command "._UNDO" "_BE")7 T. H. p8 E5 J& Z! F" R5 q. W
(if (setq ss1 (ssget '((-4 . "<OR")5 E3 c' I2 ~- X3 z( p
(0 . "POLYLINE"): P0 H) Y+ A9 {& O, u2 x
(0 . "LWPOLYLINE")
, b/ |. I! G: `( h1 a) R; I0 b (0 . "CIRCLE")
' U5 I' ]( D/ L4 ?5 L# S (0 . "ELLIPSE")
, ~8 h; v4 c1 r. l) k (0 . "SPLINE")8 Y9 [6 O2 y- A! v# V6 h
(0 . "REGION")
8 @9 G1 ^3 ~& b v7 s+ S (-4 . "OR>")' D+ p' i: d9 {/ X& x
)
4 I4 ? H- w! J: y# {2 _! A% E )# Q* I* b9 @2 x3 ]
); B) Y- `- }6 [7 m
(progn
, ~7 j! v( o2 Z& E4 R (setq nr 0)
. X* q1 d9 N# y$ ^6 y. I: m1 S0 J (setq tot_area 0.0)) G3 T9 _3 \+ o: @
(setq en (ssname ss1 nr))+ z6 q t4 J; a d- ?
(while en8 l9 B! _- Y0 o3 q6 B
(command "._area" "_O" en)( U6 D6 g. ~: e2 D! B8 t2 X
(setq tot_area (+ tot_area (getvar "area"))), f2 j; V& e* W0 u
(setq nr (1+ nr))8 w W9 {5 _3 T2 ]1 k4 ?
(setq en (ssname ss1 nr))! {% A# h% r' N0 W/ Y7 {$ Y
), Y( k: U% f' l# P* Z7 [0 w
(princ "\nTotal Area = ")
5 _% ~. ~) p5 R1 S y* ^" E) I1 Y (princ tot_area)( q9 G4 Y% \' a0 g/ C
)5 U0 M! W. }5 F. s7 f6 s7 Q7 o2 i
)# q7 \! r2 ^% U8 t; R
(restore)
7 H5 s" [! U; l" ~' P }$ m6 a)/ h5 N) P' t9 k$ E; ?* O% S7 r4 a
( ~% A& U8 L; o3 H. p5 u( |
;=====================================================================- p* G2 n/ S( w$ A, f. F6 B' N
;;; By Jimmy Bergmark
6 K5 W$ C3 F3 a! O;;; Copyright (C) 2008 JTB World, All Rights Reserved
8 v& F5 T, l$ z8 _% X# ?% e;;;2 x% v( `4 x8 u; R6 m) P
;;; Created: 2008-03-311 S6 ?9 y. o5 z" v- N8 e j, A
;;;
& l5 z! J& o! D+ l- U; B;;; Convert Attribute definitions to mtext
/ ?/ N& Y- |, d' m;;;
( c- m: _, K ]+ _0 E% S" I# V$ Q3 W
(defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)' m- q! v) q6 {. ~' D) H: P' T+ z0 Y2 q
(setq eset1 (ssget (list (cons 0 "ATTDEF"))): B; S& a0 T4 u, w
blkcnt 0% \/ p, R7 u X& e
)
) ~$ `6 L& r8 N1 Q8 B2 c% E
3 {0 J" }4 J) U% k: B (if eset1
4 b$ a3 K7 I( x/ H* k (while (<= blkcnt (- (sslength eset1) 1))
7 f4 |- H5 \8 `8 d4 w; c; ^ (setq en (ssname eset1 blkcnt)9 t! X& M, o( p- F, Y( y" Q
enlist (entget en)9 t( {" f4 `4 \1 k
ht (cdr (assoc 40 enlist)) a' V W2 s- E& }' u4 i& z8 M
pnt (assoc 10 enlist): n' s3 a6 k6 P
pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
+ `) |4 j) q0 G$ ? space (cdr (assoc 67 enlist))
, u! l3 z$ C1 h )/ t! I# \. \8 Z& x6 g; e
(setq vl (list
9 S0 m' k' ?; `& X" ?8 w (cons 0 "MTEXT")1 Q+ o4 u" K4 }; N3 `; ]
(cons 100 "AcDbEntity")4 r# Z3 Q% S$ L8 ~; y1 H
(cons 100 "AcDbMText")3 f8 a; J6 j+ |/ _
(assoc 7 enlist)" a% R- T/ N7 B4 a4 b7 S, B; `
(assoc 8 enlist)
: c; V7 g* H" c5 f) [/ a pnt! i% Y& ~9 `5 H( \
(assoc 40 enlist)
5 m6 @ b( ?3 j" X6 z, X. x (cond ((assoc 62 enlist))
: w. K7 y9 v- ? A1 K: ?% m9 D) s ((cons 62 256))
9 }6 w& O; ^! B) ?# \9 C# x )
! L1 S, @/ K/ K4 K (cons 1 (cdr (assoc 2 enlist)))
$ ~1 M S4 S. q* \( {8 F (if (= space nil)
+ \: m% z4 B3 Y" F+ B A% J (cons 67 0)
8 m( N5 C: T3 V (cons 67 space)7 ^, Y3 U0 }$ A
)& Q2 q2 Q" C2 t3 q1 Q7 G
)
! L+ b9 M: ]! V, U$ O7 o )
8 t$ Q2 S0 b$ T' }7 h( w2 \ P (entdel en)( @6 i) A6 G6 K* D! ~& Q) j
(entmake vl)
4 y% r1 X( y9 }: C (setq blkcnt (1+ blkcnt))
/ t8 g0 T; c/ s; O! L )
" J; y8 \, a1 F )
: H9 Q$ e6 G# b- N1 Z" d)3 u2 r$ H! `, @4 }: e7 n
/ _$ I2 W7 o/ ^' |9 J# i' ?;=====================================================================
; O6 W# O2 r) i. I @* V; ?4 v
0 x/ N4 s- c) T& K(defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
4 H) D9 w1 E$ h+ C; Khoi dau cua chuong trinh
+ T; L: T) r9 Y3 J(princ "\nCopy Inteligent...\n")
! d/ _7 W! o$ Z4 Y8 S(setq luuecho (getvar "cmdecho")
& {' Z& c$ |$ o- l: z- P3 n luu *error*; [ Q) A6 y9 R0 o9 p, x/ j
*error* ketthuc% S6 O- n4 @7 h4 V' F
cumdt (ssget)
8 x( B! Z# E# a' P! e, c6 R6 T dodai (sslength cumdt); l- O( w' M+ c; W5 M
goc (getpoint "\nSelect base point:")
% L1 U! `) w9 E4 T& X# J thoat nil% E1 l f( z( z( d
dem 0
! l5 n! Z0 e- \( h textxl nil/ c% M+ c* |! z/ D( v( V) `
);# K4 r, U0 W* ?, J3 O* s" h3 K
(setvar "cmdecho" 0)# B( K K9 L* p. u: F* P- K7 k
; Loc ra duoc ong text de xu ly4 E$ h; ?; S+ l1 V0 E+ `$ D5 L6 e
(while (and (= thoat nil)
8 S) T$ o; S+ ^ (< dem dodai)5 ~7 A% J5 y& J4 y. P0 E5 i
)
8 p1 p& I ^1 d/ X (setq ten (ssname cumdt dem)
6 e# G; G8 o6 ~2 L) b% Y dem (1+ dem)
7 A9 P0 M- o( u2 ~5 W; T0 o doituong (entget ten)
! ?; m3 Q" L3 E5 Z" R& K3 p. ~ kieu (cdr (assoc 0 doituong)) . O |. c- Q+ |" [# Z- x/ L" C
)
* {& L% p- p# Z
2 X6 F6 ?# c) c/ b, n (if (or (= kieu "TEXT")
, J! Z, g N+ r2 K2 O (= kieu "MTEXT")
% Y. |6 Q" W/ I v$ @7 \ )) D' M3 w0 j" W5 b, _# f
(setq thoat T/ I, J( o4 _: y! }6 r, C: ?
textxl (cdr (assoc 1 doituong))
! A8 e3 E: G# P )
4 F: d/ h; X7 C) R+ j% N* ?$ j" \ )
5 ?0 |, w- i N4 j% N- a4 m) @* ?+ W5 \2 t);; z. i, g3 x0 A! t4 f# M0 u% k( z$ D
(while T
0 h4 U1 X# }' E7 b7 l(setq toi (getpoint "\nSelect next point: " goc)
$ @! z/ b. e; P, p) \ vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
: ]9 x% U$ \7 _! W) g8 b dem 0
* E3 x, x, R* ^. U2 i# F( E/ y, i)/ I- |3 L- K3 V2 p4 `
(while (< dem dodai) I4 K4 s7 k: b5 V
(setq ten (ssname cumdt dem); p4 \" |- w. i+ b# q; ~
dem (1+ dem)" e( N4 _! l; t7 H* @( B: ^
doituong (entget ten)
& u, h9 d5 X+ S kieu (cdr (assoc 0 doituong))
+ f: J* n, V3 A# s# X/ @+ f+ V' Q, G )
6 u# d7 p( W* _2 U* ?+ j9 c# q
/ X2 D* F8 l+ t/ y( r (if (or (= kieu "TEXT")9 }7 [2 l J. P, H3 u6 H3 w$ e
(= kieu "MTEXT")
8 i) L9 j7 z0 m+ N' p$ X- N0 [ )& J& V0 \; h* H
(doitext ten)
( H4 b- V% e5 [4 l (copy_dt ten)8 x8 @0 M6 H1 m/ i
* c, j7 d+ B. j9 F9 ]: ? );if
4 n% v c" s) o @7 a)
$ E4 C }2 n" G; f# ~* }2 A);while
) z6 y8 M7 f/ _(ketthuc)! \7 H- E }- D! s @6 ~* E
);defun
, H- \8 D1 ~# V) y0 w1 | H* d p(princ)
K+ p) z& e% l0 g- J) G, i
) x' T0 U% n- r# \! F;=====================================================================
0 k! t/ e: S* M) q;;; By Jimmy Bergmark
# `( B9 g: s- B2 E0 U6 t0 ?( {$ t;;; Copyright (C) 2008 JTB World, All Rights Reserved
5 i# Q G8 n! v;;;
9 _( h# l" H+ L! b;;; Created: 2008-03-31
3 ?) W! d- K0 c1 f0 e" A6 |/ i: k6 T;;;% Z2 c- e8 j% T# T# O' ]+ _4 w: I
;;; Convert Attribute definitions to text' Y9 _* T( a4 y0 {' s
;;;* \2 [# `4 m; l: Q
$ i$ B) y" ]% K* e' s# n(defun c:ATT (/ eset1 blkcnt en enlist vl space)
; H8 ?" m$ b* w4 _4 |: a* F5 t (setq eset1 (ssget (list (cons 0 "ATTDEF")))
, [8 h( ~7 O/ l- }/ f0 t blkcnt 0, n m; S% x) Y+ `4 a& A; s
)! R' A) _$ \/ S! r4 E
1 @! p2 R2 `" Y w (if eset1
+ f2 Y4 J" h) c5 r+ ?$ o! ?: | (while (<= blkcnt (- (sslength eset1) 1))
$ v+ {9 R/ Q3 B) X, ^8 n8 D (setq en (ssname eset1 blkcnt)- N4 f6 }" l& Y4 u' q- c2 e
enlist (entget en)) a3 F+ c6 t0 O9 ^4 z( \8 P, i1 g
space (cdr (assoc 67 enlist))6 {$ q9 F0 A" A7 c* ?" j
)/ w/ X2 `* V$ r/ n5 z
(setq vl (list
+ s' P& j" \6 c5 M( x (cons 0 "TEXT")
8 \# C" l' r8 o [& ?; F (cons 100 "AcDbEntity")# z$ p0 G0 |6 V
(cons 100 "AcDbText"): ?- D% o( A: V* |' }9 B1 {3 e
(assoc 7 enlist)
1 n$ A* j& k9 G/ I* O& R (assoc 8 enlist)
5 C5 ^) I1 @0 }3 G+ `) X (assoc 10 enlist)$ X: i1 T3 G) `9 s1 ?, R: ~# W
(assoc 40 enlist)
# a( B: i+ e' E2 B) t1 k) N8 L (cond ((assoc 62 enlist))
1 E, }) h2 e8 C$ a ((cons 62 256))
_* x6 m& `. Y# W! E7 w/ q P# _ )
0 i K7 d: e7 j! e o4 ~ (cons 1 (cdr (assoc 2 enlist)))
, X8 t- P, w4 D5 e( X! }) ~: j (if (= space nil)
, V: x! \; K8 `2 X1 M$ T (cons 67 0)
( @/ D4 y' l" M3 m: o (cons 67 space)
0 K. ]# q) e$ {, y )3 \0 a+ c8 _2 F" e+ l
)
7 E" H: C4 x* z )6 F' [) V* O& x% B
(entdel en)
% j) T0 g; n! p, ] (entmake vl)
0 |. k- x0 {) B (setq blkcnt (1+ blkcnt))0 }/ j$ H* f1 F$ _( \ R% h6 u( c
)' y( F3 q4 D6 r
)
. B B$ {3 Z, E7 e3 `& k- ~)/ M4 Q! y1 L! V; @! A- B" v) I
;=====================================================================
9 D+ g( E/ ]. e' L* ^; k;============================ Doi Truc ===============================
) c! v$ C9 e8 p2 t$ j% v;===================================================================== N2 T6 q( F+ c1 U
; D# C; x! N/ T$ L: O7 K( \, r;=====================================================================& H) |9 M& L6 D' ~( a* Q
;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
3 a; `: ^4 ]5 e3 Y3 `;======================== Tran Ngoc Thang ============================
# t5 b1 T$ u1 j' n(defun c:ga1 (); o1 \" m1 Z3 j7 l) [4 b( j
(setq a (getpoint "\nChon diem: "))4 n- @: z% A6 {4 p7 ]& ~4 @
(setq b (getpoint a"\nChon diem: "))
y4 d2 m+ L, ^; K3 Y3 `(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 X# @& `6 B6 G3 D0 J4 ]4 `3 y- X(command ".circle" c a)
: [/ A5 w9 D+ ?(command ".line" a c "")
0 S9 ^9 y; X7 L. |" c' G6 ^6 Y(command ".array" "last" "" "p" c "1" "" "")
9 w2 C& S, e+ \& U9 n' c& r(princ))
7 b) n% D5 |" x$ F) }# M- u/ T# Y3 a
(defun c:ga3 ()
% k: D* b9 ^- b- K; X* O- I(setq a (getpoint "\nChon diem: "))$ ?( a6 Q: W) }( b# Q- Q
(setq b (getpoint a"\nChon diem: "))3 @$ ^ C" n1 x1 r; D1 w
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 U$ J$ m# `+ P) H
(command ".circle" c a)
+ j- o# y) u6 J U% z+ f2 o( D8 `(command ".line" a c ""). ~& N/ [& B% t& y6 U: S
(command ".array" "last" "" "p" c "3" "" "")9 e- w4 [* Q+ ^
(princ))
6 H1 M j0 d9 Z2 Y3 ]3 w8 r6 W1 j! A2 r9 P
(defun c:ga5 ()
( ^/ }6 B* X/ p' \& o ^8 Q(setq a (getpoint "\nChon diem: "))
- P8 M+ A$ C5 H6 L' [( n(setq b (getpoint a"\nChon diem: "))4 I0 v9 w s/ I
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 v2 j5 b" z; G
(command ".circle" c a); I! e- z6 ?( L6 g3 v) N2 V
(command ".line" a c "")+ Y! w+ U, ^2 p0 \
(command ".array" "last" "" "p" c "5" "" "")/ t, @$ t1 r0 @0 N
(princ))
" f9 Y, Y# h; T! H6 B! G+ k
0 d; [# a2 \. h0 g(defun c:ga7 ()$ H, U+ h$ f4 f1 X
(setq a (getpoint "\nChon diem: "))
8 U9 @( I: {3 k+ B(setq b (getpoint a"\nChon diem: "))! V+ Z1 F. q; \ `0 U" ^
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 K u- H$ T0 t* }1 I6 G& ], `
(command ".circle" c a)
6 r4 G( w- K! o) s: a(command ".line" a c "")0 ^# b* H5 u/ V& m9 P- j& C5 U
(command ".array" "last" "" "p" c "7" "" "")
5 q( w8 g0 P' t7 _! l5 @4 N3 V/ a(princ))
. z3 ]* j* \. i0 d A) Z3 A
) x4 }# c+ j4 X" @(defun c:ga9 ()
- ]/ ^, h$ m/ Z1 U: ]6 a(setq a (getpoint "\nChon diem: "))4 S1 f) K- \! b
(setq b (getpoint a"\nChon diem: ")), a' Y7 |1 B) o& l/ G3 \( S
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
; j' g* F- U$ r* v# t# j1 R(command ".circle" c a)
o2 `2 d# Y" }( A(command ".line" a c "")7 X! e5 ^0 u/ `$ Q+ I- X
(command ".array" "last" "" "p" c "9" "" "")
! x0 K$ c! r2 o0 j5 r, \: s% D3 h(princ))
9 e$ m7 y8 u; _: K f# x; G; E/ d7 m6 n4 A! }: f
(defun c:ga11 ()! j0 E) s1 V) i9 v S1 X
(setq a (getpoint "\nChon diem: "))0 {& I; y% P- S' ` c) P5 Q
(setq b (getpoint a"\nChon diem: ")), r2 i" q& I( a5 A
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 F \8 ~: G' Y, J0 s: S0 H3 D
(command ".circle" c a)& n. f2 [: f$ m! y% ?& ^
(command ".line" a c "")
+ l- |* a3 ]9 j7 j6 g# \& ~(command ".array" "last" "" "p" c "11" "" "")
: ^- y1 c& t& ~1 L' e% H, |2 Z(princ))
; \+ ~8 D: W- `! X! g# X8 D1 a
( h7 ]$ i3 b0 j- A' |(defun c:ga13 ()' ^) I* ]2 l7 K1 ]* F7 H
(setq a (getpoint "\nChon diem: "))2 X0 Q! }2 c+ K
(setq b (getpoint a"\nChon diem: "))% W3 g5 k% }) w, b) K, o) z
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' [5 S' x; k' |1 p2 [2 Y' r
(command ".circle" c a)
/ `/ E) W. k: Z+ b(command ".line" a c "")' O: v. F: E" t! g
(command ".array" "last" "" "p" c "13" "" "")
( O7 k+ X% D4 Z. [% ^6 m1 n(princ)), ?2 Z2 e. V" n" p4 b8 \+ r
- S/ W! b" A3 T
(defun c:ga15 ()
/ A( z! a1 y# W- H! t4 Q(setq a (getpoint "\nChon diem: "))
5 c3 {: c& T8 m* T% \9 k* s. B% `0 O! ~1 t(setq b (getpoint a"\nChon diem: "))' P5 T- c( h# i# y. b: R
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 h1 o' X6 l; U3 F$ x0 Y
(command ".circle" c a)
+ E0 f0 j' U+ x# {! U(command ".line" a c "")) l0 q! ]: R7 t, v/ x1 ]
(command ".array" "last" "" "p" c "15" "" "")
( n' O' f& W. |- ?: d(princ))% x* E6 W: r: S
, } r( R' a; l8 o! h& R. {/ j3 Q4 a. E(defun c:ga17 ()2 q* W6 e, v& g0 x. b( y
(setq a (getpoint "\nChon diem: "))) D' f1 V- c e! V" _
(setq b (getpoint a"\nChon diem: "))9 m* z: c- R. y
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 D4 R( p8 J- z& p+ ^: m7 u
(command ".circle" c a): N) m% q3 E: y4 A4 E
(command ".line" a c "")
/ [# M T# y# d, S# Z8 ^6 w(command ".array" "last" "" "p" c "17" "" "")
/ B( o& G6 q1 e' S5 x2 T5 d2 x) _(princ))8 }% j" @7 P1 F/ A5 q
; o1 S) [% t4 I8 \2 d4 _: o
(defun c:ga19 ()
/ h, [, [$ p' K& V0 h(setq a (getpoint "\nChon diem: "))
1 I8 |( S+ {2 {( C. I: X4 H(setq b (getpoint a"\nChon diem: "))8 J- c' A# \! b& |# N. L
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 Z& w. e( J: m/ v(command ".circle" c a)
' Z; f' \) W3 N# S* Z. u7 z( m) [(command ".line" a c "")! F1 b) c* T7 f; O
(command ".array" "last" "" "p" c "19" "" "")! x. D, L1 R2 z i- {7 o" X
(princ))
/ l+ j' k+ A1 f7 o6 `0 s) B F! |) H% k+ x ?! g
;=====================================================================; d8 n+ y |9 L7 c8 w
;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
1 N1 `. S4 M! o5 p;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================+ M" h% C% d0 g! C* k9 s! p
(defun c:ga2 ()% y$ B3 o7 F0 a$ D' o3 ]
(setq a (getpoint "\nChon diem: "))5 D! l# V2 Y9 u6 i% x8 v
(setq b (getpoint a"\nChon diem: "))6 r; T7 l. k; i' C# N
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& m- R3 \ x& W4 y
(command ".line" a c "")7 T0 u8 B ~6 b- C! F1 l& T
(command ".array" "last" "" "p" c "2" "" "")
( d7 z2 |# k6 V0 L& E(command ".circle" c a)5 r) [4 `- D0 S
(princ))
F. j8 t& E5 n2 S: i2 F% ^1 [7 j% T( A: F0 M- V( G
(defun c:ga4 ()
9 e: p1 d7 `: K8 ^# c(setq a (getpoint "\nChon diem: "))
( N- l6 o6 B! L& T* I* K(setq b (getpoint a"\nChon diem: "))
3 J E5 Y& `# h' ~4 T(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
; O3 `1 t) u$ P! R. A3 a(command ".line" a c "")/ w- r4 J5 S3 f9 r- h. A! A
(command ".array" "last" "" "p" c "4" "" "")8 P9 n' R2 M# @: T1 b0 e& h
(command ".circle" c a)
1 L) {7 f. ?* T; y' q(princ))
4 u: L( O8 s% P4 w- \0 W
1 V3 L% j$ u+ e(defun c:ga6 ()
/ \7 A5 ]" `# @, i* j% @(setq a (getpoint "\nChon diem: "))
+ V% Z c3 A9 d9 X6 U2 r% [(setq b (getpoint a"\nChon diem: "))
' f0 x2 ?* U. p& ^% o0 n5 Z _/ ?( o! c+ t(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* c/ B6 D: U z+ P* ^- H: ?" x0 |
(command ".line" a c "")# V) x6 W N* p' x* ^* C2 {
(command ".array" "last" "" "p" c "6" "" "")
# `. d9 j+ S) @5 A/ E6 j/ t; J(command ".circle" c a)
; h( p+ i E! m(princ))
% Q0 i4 `: l8 [3 w# x4 A/ s; |) j+ z, j
(defun c:ga8 ()
# w9 n& f6 o* e! L! Y# v(setq a (getpoint "\nChon diem: "))! ]4 f8 C5 M3 N
(setq b (getpoint a"\nChon diem: "))
2 L5 c+ {5 [. a* d" h(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 ^* a! U- b2 @& A(command ".line" a c "")
, N- A7 b" O4 G9 o0 U& {5 U(command ".array" "last" "" "p" c "8" "" "")
" h8 k; N8 A5 P(command ".circle" c a)
$ ?" R. w5 ~ T(princ))
2 ^! |$ D. t# K6 Y$ l- y4 ]3 m' i2 o& p/ K b
(defun c:ga10 ()
- w& r [# q9 H g* y5 n) O4 h(setq a (getpoint "\nChon diem: "))
7 S$ ]7 m; N, M1 H3 d: ~(setq b (getpoint a"\nChon diem: ")), ?4 V3 P+ h1 R2 S
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 ?2 o+ P3 I: D(command ".line" a c "")
6 m' m0 Z+ p4 V( ](command ".array" "last" "" "p" c "10" "" "")+ J) M2 L1 x; Q4 E4 I& B
(command ".circle" c a)3 S9 u s) v6 l
(princ))3 ~5 J) W6 Q3 s
( x; v E9 `" }1 X% A(defun c:ga12 ()
, |9 H5 a8 A+ X" I(setq a (getpoint "\nChon diem: "))
8 c* }/ y. C6 d5 s1 v(setq b (getpoint a"\nChon diem: "))& d, g( r7 i \$ Q7 t
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' p% z7 c$ f& ^! n' z(command ".line" a c "")# Y- l7 P( X6 T: X# |1 N6 z6 x1 b
(command ".array" "last" "" "p" c "12" "" "")
% R$ k% C. }/ a$ X& A$ W2 U(command ".circle" c a)% O# k! y( D- \. t% `' m/ T- Z7 G; {
(princ))2 X! m/ i; _/ y# @9 u
* q8 t) b* x) g% _; r8 F3 Z
(defun c:ga14 ()* G5 L' v# y- v+ d
(setq a (getpoint "\nChon diem: "))) B: S H" I0 v
(setq b (getpoint a"\nChon diem: "))9 ]: d$ j( y. J& s# J7 w' y
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 s; \+ h! x. F/ L. R( q( t9 \( ~( m
(command ".line" a c "")! ?$ N7 [& i& w+ C9 [2 e
(command ".array" "last" "" "p" c "14" "" "")
/ @0 @. Z$ Z6 [$ A! |6 A0 y(command ".circle" c a)
$ q( t5 q# ^( g# |7 _5 X( i(princ))3 a3 K& u# V( v# y6 ^# o8 O. ~
2 q ?6 a c- q, I" I
(defun c:ga16 ()
+ o! r3 d/ \4 `% J: K(setq a (getpoint "\nChon diem: "))
( v4 m6 p" T6 f" a0 o5 X(setq b (getpoint a"\nChon diem: "))* ^; I% s- T2 p8 J
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 j2 S3 [+ s4 m A(command ".line" a c "")
! W7 Q6 s& @" ?. \" f(command ".array" "last" "" "p" c "16" "" "")0 T5 T% I7 N% ]! e; h$ g
(command ".circle" c a)
: n' g9 i" y# M(princ))
' d: t: R# S _ R. Q$ X+ o$ \- J, o. i/ ~$ n, @/ ^7 B( [
(defun c:ga18 ()" ^6 T$ ]% M) ]
(setq a (getpoint "\nChon diem: "))
}3 C% P, _5 x# X4 _3 t7 E9 m4 s(setq b (getpoint a"\nChon diem: "))% K. {% X S3 w$ E
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) p7 k/ }4 R, Q) [5 d5 C. P f
(command ".line" a c ""): k3 ~( ?7 ~% M) w! B! t1 R$ {
(command ".array" "last" "" "p" c "18" "" "")
9 v* ^, i8 b& g3 U, Y- I5 {0 ?(command ".circle" c a)
; u3 a8 R' w5 D0 h(princ))
* o& x& G+ N4 l5 q. K! V
2 V2 Q" w% E \(defun c:ga20 ()
! g% |1 u. J" w6 q(setq a (getpoint "\nChon diem: "))/ A2 Q3 B/ ]/ a/ H3 R) Q
(setq b (getpoint a"\nChon diem: "))2 K; N/ k9 T" Z, D& G
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
P. U* o; H0 N, w9 l% {6 C2 U(command ".line" a c "")
4 B* }" R. @% ?( [7 W5 y' [% c(command ".array" "last" "" "p" c "20" "" "")
/ @* d1 {( S$ {5 `8 k(command ".circle" c a)* d( D3 O, Z: s+ }
(princ)): l- L+ r, M2 k1 X
6 S3 r7 U& j$ H m2 @. m: d
# ?* {* C/ i! w( }* f8 S' y$ n; ^6 c9 O2 H/ p3 _! e. H
;=====================================================================
7 Z. ~( b1 _' |% Q% P1 i a;============== FUNCTIONS GA TUY THICH : EVERYTHING IF =============== J3 N' J c( ?
;========================== 06-11-2016 ~ 18h00 =======================% ]# H" } C1 v; l! f. }) _
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
! Y( }& I# u. t. H* z(defun c:ga ()% J' c6 W) ~8 ?/ h0 l
(setq a (getpoint "\nChon diem: ")); w0 L X" y- O _' y0 K
(setq b (getpoint a"\nChon diem: "))
0 p: l5 [9 y1 E/ F0 m0 k(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 w) c, @0 J/ q# D
(command ".circle" c a)
: D& I3 O" Y( K5 D) Y(command ".line" a c "")
9 q2 D/ B, I+ {8 q(command ".array" "last" "" "p" c "NUM" "" "")
! G& L$ {6 C/ z* V' s) G |% |+ T(princ))
9 A( }$ X1 L8 L1 P) l9 `# H; x# P9 P* U6 Y# J
;=====================================================================2 L5 Q' @/ U7 P: [; @+ V# i
;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
: I4 h5 I) ^0 a;========================== 06-11-2016 ~ 18h40 =======================3 t2 Y1 P- F4 S' a' T* L
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
) r5 O! _3 ]# y, R3 N) v5 u J- R" N. _; C$ Y8 w
(defun c:hoathi ()4 a( r3 M$ u3 g' P9 P" [
(setq a (getpoint "\nChon diem: "))9 y$ ^( K z3 U8 y9 P2 S, n
(setq b (getpoint a"\nChon diem: "))
" b6 ^2 W, u$ I(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 c5 Y, ]8 _' ?, i7 y: A
(command ".line" a c "")+ K( W+ N* T4 F% P
(command ".array" "last" "" "p" c "NUM" "" "")& [( V, S( I, k0 e% ?4 u2 j
(princ))4 l8 B7 N" X9 U8 m
" ~9 {7 }+ b) T( a4 B3 };=====================================================================
- C: O: ]. g" F% P$ v: w;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============8 v3 U o! R n4 h4 x
;========================== 03-11-2024 ~ 19h33 =======================1 ]% F* w- X' ]
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================' Q, {$ R: }8 _+ f, z
0 {1 s1 N. K! j' Y h: n
(defun c:cung ()
9 E! ]; x/ F: P5 i1 i! u(setq a (getpoint "\nChon diem: "))
9 v" V ^, }) b( u+ S(setq b (getpoint a"\nChon diem: "))6 y# ]; C* p, r: m2 S8 X' C& O
(setq c (getpoint a"\nChon diem: "))0 {( c; U1 d9 m' t2 |! _
(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# u) H% t' `2 b& o
(command ".arc" a b c "")1 V2 U( A7 h. [7 r; n
(command ".array" "last" "" "p" c "NUM" "" "")
8 A' ]7 P* Z" {( _8 o(princ))
- F& {# |6 T5 l, c' G
8 E4 M5 S: j9 j/ T;=====================================================================
/ C! q! ?4 g" Y4 h; A2 v! L;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============& q; \- Y. @/ Q5 w# Z8 @' s
;========================== 03-11-2024 ~ 20h02 =======================
z4 h' U3 F- S3 a: i7 S( M+ _;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================- j& c' X1 d8 h8 b1 M, N0 V
(defun c:hecloic ()* Q+ n6 K# b0 j+ i$ X) L5 i! A: E
(setq a (getpoint "\nChon diem: "))' P7 n, N/ z% k7 b, R% h
(setq b (getpoint a"\nChon diem: multi "))4 ` d2 R2 O/ F% e' Q
(setq c (getpoint a"\nChon diem: "))(princ)0 u# l7 x$ L/ _5 e+ l; t: ~
(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 L# y/ S" E+ t5 Q- \(command ".arc" a b c "")" M+ i9 I2 T: w, k- b$ q$ f% ? d
(command ".array" "last" "" "p" c "NUM" "" "")' C) l/ w( x; @1 b% k: V
(princ))
. D3 S& g6 h5 g4 I" V k
+ }9 b" R) e. _/ \$ Q6 h;=====================================================================
1 v ]( F+ U: F/ A/ a7 Q. Z) j/ R;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============3 O3 ?$ ?# F2 |$ ~2 `) @2 U
;========================== 03-11-2024 ~ 19h38 =======================
0 J0 @2 n0 s; b% m. S/ q' o5 C; Q;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================4 [' G* F9 ^5 \* [
# \2 X( U' A, [! J3 C2 I(defun c:gay ()
8 a; _1 Z. g$ s; J. d) I(setq a (getpoint "\nChon diem: "))0 A5 u, A0 Z' q. g
(setq b (getpoint a"\nChon diem: "))( z# j. g/ x" J; I- J
(setq c (getpoint a"\nChon diem: "))(princ)
9 M4 X1 V) i" @/ G, r9 \(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' @' s; h. S$ C0 V(command ".pline" a b c "")
5 f" s* J) Z# Y% W2 M* r(command ".array" "last" "" "p" c "NUM" "" "")
( x: g* e& \- h) f2 h0 A( J8 g/ h(princ))1 v. p( Q9 ^' {3 B
$ y0 B% t3 f" {8 H3 H8 y;=====================================================================
: Y9 a2 a1 W, K' r+ C;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
0 y$ I7 B6 ^' K) t+ a4 m;========================== 03-11-2024 ~ 20h02 =======================
! a$ o5 ?9 ]# t9 \6 v;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
5 B3 ~$ G& \. E' \; b; k) k; K7 ~: U2 F% k* Y
(defun c:hecloit ()
5 ]9 a/ q ]3 @& |0 l. l0 c( Z( r( G$ T(setq a (getpoint "\nChon diem: "))
0 b1 B, E% _9 f7 b. @' P U(setq b (getpoint a"\nChon diem: multi ")); o, G% C9 ]1 N# F% ]' T& J9 U
(setq c (getpoint a"\nChon diem: "))(princ)" v* }5 M% q7 A- n# n
(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( T( K* v) t4 W0 X1 T
(command ".pline" a b c "")4 z' n; ^* m" V
(command ".array" "last" "" "p" c "NUM" "" "")+ x! v, L4 M; j0 c# V
(princ))# U: [7 l! T2 R4 q" g
1 ^7 Q. c$ `6 }, E( L
5 b* |' E' D) x5 O3 J: B! w& T' G0 Q;;; ============================ Merge Hatch =============================& Q# l; `. Q$ c% N6 }
- d; b2 [; b$ r! K3 E(defun c:mh (/ ss entht sl i dt dtht)
0 T9 Z' d2 g3 y8 l# x, ?" F! p- J; U( h* O9 G8 E* _
(princ "\nMerge Hatch - free lisp from CADViet.com")# `% r8 j K4 s
; m, l B8 c( ]. _! ~* T (setq* B0 H, A# ^6 j3 o. {, \
ss (ssget '((0 . "HATCH")))
( z; F$ s0 }& o+ Z, m8 f. V5 I0 i sl (if ss
' ]! q% H+ S _7 d (sslength ss)
8 M* T8 C! E, i9 h2 T) n 06 ~9 i. ^3 D4 K
)3 D, Z5 m9 }6 s, |6 J5 s" H9 p
i 0/ l. d }. U( W( S9 a) |4 X
l 0
9 g; h+ N6 U6 G# {. p )
& [+ i7 S' \# a3 C5 j. x$ H m8 j# `5 n$ x
(repeat sl
) T7 Z% m2 J$ L( N (setq
& ]" o6 v% |8 Q. V6 S entht (ssname ss i)
2 s( y1 l3 D) @3 j dtht (getbdata entht)$ d; V4 {. z4 E F4 n
dt (append dt dtht)0 B" V. f' C4 W# k, f
l (+ l (cdr (assoc 91 (entget entht))))
0 {7 V# j1 G# @2 y i (1+ i)
. ~( g) _4 I; | F1 s )3 {" k& H" r( b& p, m' N- e
), c/ ^+ M1 N; x
2 U0 e( \! j9 n0 n6 K
(setq ent (ssname ss 0)4 j# w8 I9 D# M0 c3 U
ss (ssdel ent ss)
& X3 K+ Z4 U/ l* d tt (entget ent)
. v; a; O* d" J, b duoi (member (assoc 75 tt) tt)
@' Y, ]0 I* E6 N+ G' e dau (reverse (member (assoc 91 tt) (reverse tt)))
$ r$ \6 D n, } tt (append dau dt duoi)% H+ @7 M& W/ D B1 X" q
tt (subst (cons 91 l) (assoc 91 tt) tt)
% K. Z# m5 z0 T$ B1 Y- s/ V! V. ^5 G )
- W- @( k/ `# r4 w (entmod tt)1 _! W [( x: }7 G8 s7 x
$ p8 Q5 J) w$ e2 g* {# A5 K (command ".erase" ss "")
8 n2 m8 v7 r3 C6 j V( F, | (princ)
; i8 q% q7 X7 D- u8 P R4 B1 B: g)' {: K' P4 N5 [, ?* C4 B" R6 S
" T/ g( h j4 r: N! e4 r(defun getbdata (ent)6 `/ {+ o) K, L1 p
(setq tt (entget ent)4 f# g3 j7 ]' m6 {7 T3 }
tt (cdr (member (assoc 75 tt) (reverse tt)))
& F6 a! ~& b/ z7 a" i9 I tt (cdr (member (assoc 91 tt) (reverse tt)))7 s) z: S# {" Z- M% ~. W/ @* i
)
) }! ?$ e# i8 j( V0 v)
* \) B& G0 Y) v, Q" Q+ f) L' \+ ]6 Z. d1 ?4 ~" V
. U: V C( g, d5 g(princ)
- U9 g# B: H6 d7 o7 C$ F/ B9 Y/ U" F: b: F j$ L3 t
;;; =========================== CAC LENH LAYER ==============================
% v- F5 Q( [, Y# r" S6 o1 M9 ?( p;;; =========================== Layer hien hanh =============================
6 b4 Y& Y, k% o9 Q8 y6 i& i4 g% F5 N+ P E
(defun layset (/ LAY) (setvar "cmdecho" 0)
# X- r* j, z+ k$ F8 ?. F; \ (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
1 {6 m) [5 {" ^1 x8 o% J! \ (if LAY (progn
7 M+ g, [, V t (setq LAY (cdr (assoc 8 (entget (car LAY)))))$ |. t! @+ O+ J6 m- {! h e
(command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) v- p+ |4 u) e+ p+ [2 B/ H$ c
(progn& Q- Q5 K1 z3 n9 w( k; \: K
(if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) ; p/ A% @+ C4 a( [! j6 v7 F
(progn& j5 I/ j) t* j# X% H
(command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )9 j* S) u; @- B. J) |( o, T. A' |
(defun c LL () (layset))(defun c AYSET () (layset))/ R% X/ A: S( L4 N0 X% F
, d, k, N1 i5 e9 y7 [6 Y
;;; ================== Cap nhat doi tuong vao layer hien hanh ==================$ }+ N; M: q" W. x. b
! v( `' j+ h. |+ e* }! H- g(Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
" w& Q; _! I6 U& l" w3 J (if (not (setq SS (ssget "i")))
+ [! i* S' V: ?" K+ @! s (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")# Z8 G! z) J# `. x% G/ P
(setq SS (ssget)) ) ). H$ F* [* }# I7 r
(if SS (progn1 R8 A, H" U3 S) {1 U. |5 `6 r
(setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "")
9 O6 R( K* G. B! ? (if (> (getvar "cmdactive") 0)
/ h% h3 P% x9 e; E5 P (progn
u1 A# P# C( A& p# t (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )+ ]3 K, f: S$ g" n. y0 n+ t
(setq SS nil) ) (if (> CNT 0) # S, y4 X' K8 M+ D& d9 _
(princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
! g h5 z+ s7 `* V5 ~$ M3 N5 H (if SS (progn$ v. I8 B; t& x/ }( ?4 T
(setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY ""). l, D @0 C7 f& G- w7 S9 h
(if (= (sslength SS) 1)
0 C7 G7 N6 U& J6 k$ \ (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
0 x" V5 h1 ]+ Y (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end2 \1 h, M* N. G3 l9 `% |
(defun c AYCUR () (laycur)) (defun c HH () (laycur))- G8 |7 d$ `2 Z
8 [8 Q5 E8 L' R( ?2 @
;;; =========================== Layer Iso ===================================
3 I/ v& k6 r8 I- p. z0 t' q/ Y% d' u5 O! D+ R
(Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
: D5 k, v5 m* G# w7 w6 D- \ (if (not (setq SS (ssget "i"))) (progn' k ?: z( g" l2 Y$ t
(prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
* t" Y) w8 s5 `& s' z2 ] (setq SS (ssget)) ) )$ t6 A* |' z, _% {% s( F5 S1 m" y
(if SS (progn (setq CNT 0)1 N: b- e8 p' y2 F U- z
(while (setq LAY (ssname SS CNT))
$ K3 ]3 }' M, c; M3 L' m (setq LAY (cdr (assoc 8 (entget LAY)))), N) j8 D! j% E# R) l
(if (not (member LAY LAYLST)): f4 L9 D$ E! o4 I' V% d4 F
(setq LAYLST (cons LAY LAYLST)) )1 e$ U2 u( a' v& ?( W, y4 F
(setq CNT (1+ CNT)) )
$ \$ f* e- x0 V5 l, s- |, Q7 h8 x1 b (if (member (getvar "CLAYER") LAYLST)# [2 {! ?5 y# \ l
(setq LAY (getvar "CLAYER"))2 G' |. O6 \8 I0 X5 ?3 m6 q
(setvar "CLAYER" (setq LAY (last LAYLST))) )# I. V! w6 e9 n
(command "_.LAYER" "_OFF" "*" "_Y")
X* B3 B9 j7 }" M A N (foreach VAL LAYLST (command "_ON" VAL))
8 S/ n$ i- k2 I/ Z (command "") (if (= (length LAYLST) 1)! s( H7 O$ q' p' j+ g8 L; \
(prompt (strcat "\nLayer " (car LAYLST) " da tach ra.")), \9 \7 \$ U+ z
(prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
7 A! y3 o+ Z# e3 ?( } "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )* b- q# |+ a' P4 j, X$ s; _0 ?$ \
(defun c AYISO () (layiso)) (defun c I () (layiso))
* I, O F) B9 `+ ]5 ~9 V( J; P7 W" j7 v; \% [3 ~4 a
;;; ========================= Layer Match ==================================! _% a$ Q+ [) q' ^7 W8 J
: t& T6 u% Q! ~6 O# D(Defun LAYMCH (/ SS CNT LOOP LAY ANS)
0 q8 O) l5 a6 S% i6 M/ e8 P (setvar "cmdecho" 0)( ?1 X; d5 F$ W/ y8 y4 f
(if (not (setq SS (ssget "i"))) (progn
9 t/ Q) e# {1 z L# n1 k (prompt "\nChon doi tuong muon thay doi Layer : ")0 @2 D" G3 W4 y) K5 k, G! G( ~! L
(setq SS (ssget)) ) )
5 i, I. z" \/ U0 ~$ U (if SS (progn
3 A! {3 y) L& @+ ~8 _3 ]3 w4 U, W (setq CNT (sslength SS))
* u5 Q% P; \% W, Y (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "")
1 H; M' v* \8 G/ b (if (> (getvar "cmdactive") 0) (progn
& ~) h9 s4 ~# ~9 _" @+ e2 F; g (command "0,0" "0,0") (setq SS (ssget "p")$ j. o1 ~* t' P) P
CNT (- CNT (sslength SS)) ) )6 t9 o3 T0 s8 j7 r: G
(setq SS nil) ) (if (> CNT 0) 0 D' t8 B% ^/ o$ j
(princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )( k1 u0 U0 V7 e3 j" K1 ^7 D
(if SS (progn% ]8 }7 j' V/ X" h$ y! I Y( |
(initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )% C! ], s3 c* n2 x; c
(while LOOP (cond
0 v, X# N r, g; v0 A" R1 A ((not LAY). W, a2 C7 w! ~$ e+ R$ p& \
(prompt "\nKhong chon doi tuong.")
8 e$ ~0 e( ?# ]9 ^4 e (prompt "\nSu dung layer hien hanh? <Y> ")9 O3 ^, Y) |, a$ z) s3 @
(setq ANS (strcase (getstring)))
' o* q6 j9 M9 S8 w; z; }1 h3 G6 z (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
+ [# d7 }5 V, w7 e3 C4 v5 W (setq LAY (getvar "clayer") LOOP nil ) ) )
$ v0 {: k, j' [* y ((listp LAY) (setq LOOP nil) )
' n5 r1 O2 \8 W! e9 D ((= LAY "Ten")
* [+ k( U7 O. w' f6 V& f4 ]' y (setq LAY (getstring "\n>Nhap ten layer: "))8 ~: y- a; V2 w1 h
(cond
% j' `& k& h; A( ] ((tblsearch "LAYER" LAY) (setq LOOP nil) )
/ W' t4 G; I3 v% U$ [9 J ((/= LAY "")
; U6 Q0 C( ^9 q; L5 d0 u" a3 Z. Y- B (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
( B2 x. F( P" s5 \( R- o (setq ANS (strcase (getstring)))
8 i" U# O2 n$ [$ N" {$ n (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))9 t4 M$ h$ D) Y! d, ]
(progn' B$ ^5 D; k ]+ q
(command "_.LAYER" "NEW" LAY "")$ p0 e: `! A, C: Q9 c: ]: l8 ^
(setq LOOP nil) )' }. `. U+ M" |+ P
(prompt "\nLoi ten layer.") ) ) ) ) )5 \+ d# y. A- p
(if LOOP (progn (initget "Ten")8 M' D, n- }+ m
(setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
- r. ~1 ~* U: k) e0 I) E" e6 y ~; Y (if (listp LAY)
& F/ D/ ?& i! j$ O( v! x (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
3 I1 k5 Q* ?% u* b (command "_.chprop" SS "" "_la" LAY "")
9 b8 v/ c# W% K, y9 h (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )" ~3 N0 b: D% u2 r7 \+ x, w
(if (= LAY (getvar "clayer"))8 V9 ]: ?! Y4 {4 Z3 |- V& m7 e
(prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )9 w, G* q$ J0 m( J- @
(defun c AYMCH () (laymch)) (defun c:CLL () (laymch))
7 d1 y! { J1 Z4 ]2 [- w
& ~1 a6 a. f! i- s3 F;;; ============================ Layer OFF =================================$ q3 {5 R, X2 m7 T1 X" l
8 @& e& X# G1 U; t(DEFUN C J (/ SSET SSL ENT LAY I MODE)# t k B- r' c |8 \; N, E+ d
(SETQ SSET (SSGET))
$ Q3 v: `( t3 S; y4 f& y' a% t (IF (/= NIL SSET)
# b9 J4 [( C$ v# z8 [ (PROGN0 p2 q7 C7 j, I6 C
(SETQ SSL (SSLENGTH SSET))
# M/ \7 U" |& k7 r (SETQ LAY "")6 P8 k. _3 i, U3 u: o. \6 T0 _
(SETQ I 0)
, K5 [1 `0 K2 \ (SETQ MODE 0)
! L, A* o8 Y: _! y+ r (WHILE (< I SSL)# W: H X4 _. z- m ^
(SETQ ENT (ENTGET (SSNAME SSET I)))
/ ~9 \% g. y. g1 j (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
% A w c, w8 Z d (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
& _, p! ~6 v ~ (SETQ I (+ I 1))
5 `: ]8 `) @5 w- f )9 R y* l/ T: P% G' Z+ L' u+ H, f
(COMMAND "LAYER" "OFF" LAY "")
6 F9 m' L! g( v- E (IF (= MODE 1) (COMMAND "") )
" I+ s% G4 z N' g1 g$ q5 ? )7 ~9 E; d( C- a) F7 C* W8 T" `' f
)0 [& F" d7 ]' m, G" ], t$ T
(PRINC)
" i/ T9 e+ M+ x# Y)
# Y+ V# b7 x' S+ E
/ X+ ]: P, [& ?& z5 ^. B;;; ================================ Layer ON ==============================
# {' j i! @0 b) {! k; [' b4 ]9 i
9 G0 j* s- W0 E8 m8 A(Defun LAYON () (setvar "cmdecho" 0)
4 l& D2 E4 Y4 d# F1 a# d (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
) N4 z$ x9 \% E (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
+ X! N- e9 g. `0 ](defun c AYON () (layon)) (defun c:LOO () (layon))
- m$ c: w+ y8 Z, u( }( O(Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))8 t1 W; n0 a8 a @/ M
) d5 V& w% c- j3 A/ @% K Q6 Y: k
;;; ============================== Layer Freeze ===========================, j/ @2 x( G+ t
9 O! D7 E5 _% M& E
(Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) $ E2 V8 q0 t# N, W. L1 m
(prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
" _; D7 p# x# r X1 N (IF (/= NIL SSET) (PROGN0 z: J5 j/ ^$ I0 }
(SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
, t% a" l# }; m/ R% k! q. P- }/ e (WHILE (< I SSL)
0 V7 U6 a2 \5 w A (SETQ ENT (ENTGET (SSNAME SSET I)))$ q! \- ]( E/ W& V2 T# r
(IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
/ g- p; k) c9 ^ (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
3 }( Z9 `0 U/ }; M3 n (COMMAND "LAYER" "FREEZE" LAY "")/ B; K2 s" {! l) h1 q$ W1 u6 o
(IF (= MODE 1) (COMMAND ""))))8 {( Y" K7 {/ B" t" V, Y
(setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
R5 m+ B. P+ r' v; _7 ]" h (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
+ f" p7 K( z( [3 v5 g! F" ](defun c:LAYFRZ () (layfrz)) (defun c:LLF () (layfrz))1 e t$ g; s& y
' Z$ {, w2 |3 w4 L' }' T% C. T;;; ============================== Layer Thaw ===============================
3 p* B! h5 o6 B' `
% ~+ O* h7 \; A(Defun LAYTHW ()/ {6 v5 y ]+ H) S! i, [/ q. r: Z! X
(setvar "cmdecho" 0)5 r) ?/ B* v# ?( ?
(setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
, k9 ]: x/ ?( |7 J( P1 M (Command "_.LAYER" "_THAW" LAY "")
8 f, d" q0 @* G- K. w (princ (strcat "\n Layer : " LAY " da THAW."))0 Y3 V# w1 }6 J& [) }: m I* [
(princ) )
- Y6 H+ k' R# E' J/ |4 w(defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
& y% |* Y9 X8 R% Y
. `& S1 I( O8 W s;;; ============================== Layer Lock ==============================
% r H9 ?' h4 B5 \( d$ Z3 M" F
; o/ u r6 L% }9 e2 C2 B9 r(Defun LAYLCK (/ LAY)
: m+ `. B6 s) @" N- D+ v (setvar "cmdecho" 0) D3 ]8 `# I/ R0 Z3 {
(setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
8 O- q; D% ]% H+ k (if LAY5 B" L) O/ L4 K( U" B9 c4 ?
(progn
- c7 A$ J% N1 q" B (setq LAY (cdr (assoc 8 (entget (car LAY)))))
( w! q# y8 b) p& A; @$ i; J3 ? (Command "_.LAYER" "_LOCK" LAY "")) ?) c8 a9 P! ?* ?" ?; F
(princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )) |6 M7 X: H3 |8 j( _
(defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
8 ^' X2 h3 c5 L% X6 S# j
I% z; A8 z3 z) Z& D' m;;; ============================== Layer UnLock ==============================: b7 x& r: ^+ d
0 N O$ e4 U. M: w/ h( k0 ]/ d(Defun LAYULK (/ LAY): t( c8 g3 \# C% l( N5 v3 V
(setvar "cmdecho" 0)' ~0 |, U7 Y2 @
(setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))) }6 s7 w: a; x
(if LAY
& P9 n6 d# u% B (progn0 y( O/ d8 R( i" H
(setq LAY (cdr (assoc 8 (entget (car LAY)))))
3 V! w( b+ E) Q( e (Command "_.LAYER" "_UNLOCK" LAY "")
; W. J6 m( j$ _9 d (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
, q* \: C+ }6 f- S; J(defun c:LAYULK () (layulk)) (defun c:LU () (layulk))+ ~& K; C: n, e& J
; ?+ y* L8 w/ ^/ X3 K;;;===================== Delete all objects of Layer ========================
3 s3 ]) F2 \" D1 n# [3 l; m: b2 n; ~) p4 O" x. ]
(defun DELAYER (/ ocmd L S)
g7 e- ~3 ^0 [" } (setq ocmd (getvar "CMDECHO"))
3 }( N. b& k- A- {- a (setvar "CMDECHO" 0)' V% F# f; C4 R+ ^+ J% q) L# P
(setq L (strcase (getstring "\nLayer(s) to delete: ")))
( K+ B2 A% J6 S' }) H, v" y (setq S (ssget "X" (list (cons 8 L)))) # G+ d' T$ p% ?4 v* p" j5 E9 X# y
(if S
; S- N3 T/ H: V# d9 |. F0 M (command "ERASE" S "")
4 W8 K) d# `) `+ K& H0 W: j& `4 _ (princ "Layer empty or not a valid layer name.") ) 6 i) K' r" ?( u) |9 r9 X
(setq S nil) , W) n( ~& t2 ^8 v$ {: \, \
(setvar "CMDECHO" ocmd)
7 V: _6 O8 p; M% a5 `9 p% q$ s (princ) ) 8 `' v G2 c' J6 J. M! u2 k# r
(defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
! V& p4 G+ `- e S% g
3 d" E: c6 k2 H;;; ========================= HET CAC LENH LAYER ===========================
) Q; o0 B' ]8 R. |1 [" g$ Q1 J2 d2 _
;;;====================== EXTEND NHIEU DOI TUONG ===========================7 Z* G$ f- l- O5 T" ^4 q
, Q7 W# M2 B0 `2 I9 f i& Y1 n
(Defun C:EET ()
D1 m. N; Y0 v/ k9 n (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)0 e8 K/ w# F* I
(Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))9 m$ R0 k- ] T. p1 j+ G6 g; ^
(Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))3 Z5 Z+ f+ J+ |! R2 u
(Setq I -1)1 |$ m% v. t& [9 m) m9 c
(Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
+ H0 a0 {% S6 a {- I# @% o+ T (Repeat LEN
& D, l( c# p7 k+ @3 G5 E; @# W (Setq I (1+ I))% w1 k1 K5 g1 u* V9 p
(Command (List(SSname SS I) SIDE)) ) (Command "")
% f) u2 i) x/ L1 |2 U (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
0 o* [ x p' m$ {# E7 z2 y( _" Q7 P8 y/ _/ u/ T! ]7 J6 ?
;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============( U: F- O [ J
$ |( }6 s0 q$ p& X% f; d
(defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
) ^$ [8 U) b! F/ O (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
" k/ u; R2 b. ~( J$ l; T8 l (setvar "osmode" os)8 j) u) u* u5 V5 @8 ?0 ~
(setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
" G$ Z8 Y9 @+ O: O) U" ^5 {% x (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))6 D1 I# d4 v6 F, ]' l/ l: A
' G' j& f' E& [6 F! [% w;; ================ Change width of polylines =========================
+ q/ ]1 a% D, N" d$ \7 x% ?% \. g0 |2 F i1 S
(DEFUN wp (/ a b sophantu sodem list1 ha:wid)2 e& t1 }( m2 y+ ^7 V
(PRINC "\n Chon doi tuong can thay doi do day (Width) !") 0 w3 ~' D$ t5 P' R
(setq b (ssget)) / L( F2 h$ B( `$ k& X$ N# X3 a
(setq sophantu (sslength b))
7 v) O" q$ o( I (if (null ha:wid) (setq ha:wid (getvar "tracewid"))); [. a# C7 E5 B: `
(princ "\nDo rong polyline <")2 @/ E: \2 n1 t# d* S2 {6 ^: E2 J: Q
(princ ha:wid)
% v9 C0 M X' y; ?; x (princ ">: ")
% _+ c5 a: D9 ?' f+ G/ a (initget 4)
7 C5 w/ {7 E+ Y% ]( N$ ? (setq ha:wid (getdist))3 y% X) E) r: f; L5 g0 V
(if (null ha:wid) (setq ha:wid (getvar "tracewid")))
/ z* @% V: b+ @3 V' ~1 g (setvar "tracewid" ha:wid)
$ F0 W! ~) A" B5 g* k2 A (setvar "cmdecho" 0)
9 h* ], a( f0 |/ s/ Q7 Q (setq sodem 0) # W8 n: i9 C% R4 x
(repeat sophantu
" N' A7 E, X, S (setq a (ssname b sodem)) ]1 [: X/ E/ n/ ^) l7 h8 m& `
(setq list1 (assoc 0 (entget a))). L7 t6 M" @7 B
(cond
' a' U. W* N T; m# [ ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))/ s$ B; y5 K, Z5 H
(PROGN (command "_Pedit" a "" "w" ha:wid "")) ) 0 m( k$ C# P/ Z# a. v) P( K+ h
(setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
4 j5 X; Z: S# E, ]2 q: e(defun c:wp () (wp)) (defun c:pw () (wp)); g2 J" ^- s0 c; E3 T) Y, B
% {/ }" s0 R8 d# l;; ================ Change radius of circles ==========================
) I9 c" \3 j1 E% J! b) Q7 ~
( I8 `( n3 l" p/ h& |(DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
1 `. T* R' C" g( Z) x( b (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))# ^5 Z& ]" o. W9 A( z0 a
(IF (/= RD NIL) (PROGN (SETQ I 0)# C- M$ f( q3 q! `: v
(WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
: T8 Y" r9 l. s7 s- F" ^1 ~+ Y (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN. w* n# @; T2 ~
(SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
* {: h* F9 Y8 H; i& X9 c9 i2 h# z/ v- u( X4 }$ ~/ `" P# a+ q. T% \2 `
;;; ============================== TEXT Hight ===============================
! ~0 k0 y7 e. ]! `5 ?) ~; F/ F' V, K" `: {; P: u) q3 S9 e/ z
(defun texthght (/ ent hght)
: c2 o3 M$ r" Y& L) L) i& V (setvar "cmdecho" 1)
& ]$ [! u" Z6 k% P (prompt (strcat"\nSelect text entity with required text height"))
4 M" l V1 X: J. K, L: @ (prompt (strcat"\n."))
) c1 c8 o9 N! ]+ H; p (setq ent (entget (car (entsel))))
+ u# { ^5 g% ^" I; Z/ Q9 [ j/ F (setq hght (cdr (assoc 40 ent))); M2 K" L* y) u; {( J
(prompt (strcat"\nText height now set at "))(prin1 hght)
# D; b) u n: |4 c0 P/ A (prompt (strcat"\n."))
- l/ m" X' P+ p; W' V$ D (setvar "cmdecho" 1)2 A5 U6 \3 ^# _7 q' V
(command "DTEXT" PAUSE hght "") ) X3 B; R l) E3 P1 L
(defun c:teh () (texthght)) (defun c:texthght () (texthght))
, z: @+ ?1 N m7 u0 S& \$ S& ?- F& H
;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
/ ?- t" j% i9 y3 v F* Z: C4 u; S9 u( k( f$ p! K
(defun c:tuu () (setvar "cmdecho" 0)
# X+ Z4 f5 A; h (prompt "\nHay chon dong TEXT can gach chan ")
5 h, W* P1 T7 t3 } (prompt "\nSelect objects: ")
6 b' f+ x6 }. I2 Q1 y- E (command "select" "au" pause)* n' i1 ?7 Q" @; q# I
(setq sstxt (ssget "p")0 V5 P6 I: e/ b1 V3 o
sslen (sslength sstxt)* s$ x( E9 E, n9 F0 U: w
ctr 0 ); L2 G$ p' y, ?0 d6 u9 X* o
(command ".undo" "mark")
% }6 n3 `- s: v (while (< ctr sslen), N5 }) ~. P+ t$ K9 p" @ ]5 ]/ U3 R
(setq listxt (entget (ssname sstxt ctr))
/ R" ], x2 [! o- | txttxt (cdr (assoc 1 listxt))
5 ^7 H3 e ]* P1 f enttxt (cdr (assoc 0 listxt)) )" L" K; j6 ` H C& T
(if (= enttxt "TEXT")
2 I. _) M3 f& f( B. k, R! g (progn9 ?" ^/ a: j) U2 v' j# Y- k
(setq testxt (substr txttxt 1 3))
% y: ?. T3 R3 |; a z' m' z (if (or (= testxt "%%u") (= testxt "%%U"))1 v! o0 T$ _. o$ o
(setq newtxt (substr txttxt 4))
* y1 N3 f1 r. Z0 `# [ (setq newtxt (strcat "%%u" txttxt)) )
' N3 H6 U/ w) }" o6 K& \( \ (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
- `7 {) i6 h- V5 x* ~% v (entmod listxt) ) )
$ k- i/ z& u7 E' N0 l2 Q (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
& t# ]% t& ]5 D
+ i- j6 A" d# c3 U. B3 m;;; ================ BAT -TAT CHE DO GACH CHAN TEXT ================= i+ o+ |+ P; a) o
8 `4 \" P" S, ?0 g$ g6 ^- C9 S) f(defun c:tob () (setvar "cmdecho" 0)7 A, Z" p8 R7 u/ T- M
(prompt "\nHay chon dong TEXT can gach tren dau ")
# i+ C) J/ ^2 G; n: [. x9 ` (prompt "\nSelect objects: ")1 D' `2 W2 g; J, }. T3 |" `2 X
(command "select" "au" pause)
1 f0 k: W% t/ A6 j7 D. n( A, Y5 c (setq sstxt (ssget "p")- F, @4 L" s( W( p/ }4 `5 Y. j* D
sslen (sslength sstxt)
% p" ]" o, ?8 e2 ^7 h& h/ g" | ctr 0 )
4 Z3 F# A2 Z: q (command ".undo" "mark")
6 k' R* B U+ [9 x% I (while (< ctr sslen)% D2 N) u, _& e" }/ V- s; m
(setq listxt (entget (ssname sstxt ctr))
- } L% p' d& { txttxt (cdr (assoc 1 listxt))
+ Y- X6 q) T. G2 K5 Q& m enttxt (cdr (assoc 0 listxt)) )' I% b. i8 j, y) I: {' e
(if (= enttxt "TEXT")
' {2 b8 j; }, I4 f (progn' ^$ x, W1 @3 z! }# J( K2 U" z- f \
(setq testxt (substr txttxt 1 3))+ G3 T1 i( p+ e/ W% R2 G, ?
(if (or (= testxt "%%o") (= testxt "%%o"))
2 h8 X$ ^ P; u7 H% B. T (setq newtxt (substr txttxt 4))6 J8 ^9 i: H) ^* |# p! J
(setq newtxt (strcat "%%o" txttxt)) )
8 J5 a: V9 F7 k- | (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)): l! D9 m ^: o' N( N5 \
(entmod listxt) ) )
, Z& w; H$ c# e! U. D (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)): K, }0 x/ u) M0 m# U) S" v7 r5 B
+ O& Q6 q/ F8 h$ l: i( };;; ========================== Tim & thay the TEXT ==========================
6 c+ A! w3 _% M) J6 ?
6 g5 n# @2 a7 ~# R- D1 G(defun frstring (str search replace / str1 str2 index find)
8 u Y" n0 @# M" M(setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index)), I* F9 N: m$ B( A5 S, X) \1 f
(setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))3 D/ a& G* R% {4 J5 J+ z% ^
(setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
7 j6 f: W, o6 ?7 n(defun hai (/ dial)
/ M4 s: j6 h1 a5 \; W# N (setq dial (load_dialog "hai.dcl")) ;;goi dialog% f9 j% R8 [3 R' r
(if (not (new_dialog "find" Dial)) (exit)) ;;
& f$ h* T; x: z" X4 l (mode_tile "find" 2); Tao dau nhac tai hop thoai
6 h7 f& E! q% L& ^0 Y% y/ i- g" ~ (action_tile "find" "(hai1)")! j y1 c* S5 u
(action_tile "replace" "(hai2)")
! I( U0 O6 A1 F( [$ a3 e+ M' A (action_tile "cancel" "(done_dialog) (exit)")
}/ w! ^" i3 ?0 v0 h% Y (start_dialog) : ]2 t$ ~7 _8 y
(unload_dialog dial))
. ?$ {! d9 V+ @& o& z(defun hai1 () (SETQ str1 (get_tile "find")))) K1 ^" \( {# O5 Z* B/ f; L3 m) ^6 T
(defun hai2 () (SETQ str2 (get_tile "replace")))4 O; D J% N% h1 p
" d" `6 t. |6 E. f3 p$ o3 K(defun c:TTT (/ a str str1 str2 newstr taphop sodem)7 h( A) X3 m' [. E
(hai)
! E9 C7 |; @! W! t4 | (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")( _& u# k. X. j
(progn
8 j* N1 Q7 Z" P- y (setq taphop (ssget '((0 . "TEXT"))))
# T! z9 p7 I) L0 _! C0 x/ U( v5 b (setq sodem 0)
! e0 i+ A/ _$ m. P- o (if taphop" H/ _! y O- ]6 O' g1 B
(progn7 {& b1 p& f) z% B
(Repeat (sslength taphop)
9 c$ Q# O' \7 g3 C2 l& J) d (setq a (entget (ssname taphop sodem)))+ T% g0 F6 v; U3 n. Q2 j+ g
(setq str (cdr (assoc 1 a)))
% X' Z, Z k" B3 O4 U (setq newstr (frstring str str1 str2))( n4 `+ C( K% i: n! v, |( p
(setq a (subst (cons 1 newstr) (assoc 1 a) a))
' j9 t `! M: `" k7 m (entmod a)8 Z- G8 |( M' X
(setq sodem (1+ sodem)) ) )" H3 X# O6 y: m- z
(princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))( W' R {. Y5 ]
1 B% [* [1 D1 U7 S8 C7 z
;;;============================= CHTEXSTY.LSP =============================% x N' u; @4 K$ l, D
, u) [8 L3 ]$ `, `' I(Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
3 \1 d0 J( \% o9 ^; P3 T" R6 S(Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
* r, m+ e, l4 m$ e$ Y+ Y(Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
" Z9 r9 G) `' R! Y3 l4 s- c: b' P' s8 u(Initget 1) (Setq C (Getstring "\nEnter new text style: "))
/ `: y8 o! J( Y- l(Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))9 g" N7 I6 x ?: v% J8 }4 q" G; V+ m
(Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
, m# b4 C! q2 s6 m l6 X9 C(Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))' Z- t) Q, U" p- p$ \; J
(Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))1 p/ i4 k: r) g$ P/ X
(Initget 1) (Setq A (Strcase (Getstring$ K! J; k/ Y9 `) z& c; d4 e+ }3 s
"\nEnter text style to change: "))) (Initget 1)
. @1 M4 T! w% q* { r(Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))' [4 q/ F" G' W. Q/ H2 g
(Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
& V* ~$ s7 a1 p; d4 C4 n0 J(And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
' v; u1 C8 f Q; y. ](Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C)): h2 k. ?. F2 Q
(Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
: r4 R: m' q- b( F) r(Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))- P" G( E* u" P" ~+ W
8 ]8 i7 n' T7 J- O5 R
(Defun Extang (A) (Setq A (Tblsearch "STYLE" A))# y# {) g: ]6 ], ]3 F/ b
(Setq J (Cdr (Assoc 50 A))))
4 W5 Y2 B' b( f$ O4 c8 o+ r; ~
$ H& k& \0 D; t; \7 w1 U;;; ============================ DRAW CLOUD =============================, H5 ^& O5 s0 Z3 ?" q1 a+ F- Y
" I1 H7 E/ y& o: T0 @1 Z$ w! b$ Z
(defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
1 w7 ?8 l" Z, N& }2 g; p; Q& T (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")$ [# v1 `3 E+ j4 o8 U
(setq la (getvar "clayer")). N; w( Q) M p
(command "layer" "m" "cloud" "c" "5" "" "")
$ n; S/ e. S- w' n8 K) h0 ]% Z (setq pt1 (getpoint "\nEnter first point of Cloud: "))
- f% Q2 J0 X; Y# F: v4 _ (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))( V7 f7 ?4 t% d: a
(setq cnt 1 ss (ssadd)): X; t! R5 K! K: G& i6 Q8 x
(while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))! `* V5 p) e8 o, h
(if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))# l7 }/ i! e$ q6 I
(if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
4 h% @* o' [. V; B7 g, |; D" g r (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0) y! H7 @# ?/ a. K
(command "pedit" arc1 "y" "j" ss "" "x")1 a5 I$ Q* L( y% l" w6 _6 l; F4 K
(if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)7 r1 d* r" R3 b4 e) T& K0 o2 N* X& T
(command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) # d) m9 p$ Y5 g! G/ C: c* B
(DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
3 H! J7 J' v6 m$ j& F2 S7 C: y/ r2 R$ m
$ J6 x. y2 u3 l; b5 r& T$ V7 n;;; ================================ Funtion-Dulieu ========================
% c& j0 w/ R( U* q# `;;; ================================ Funtion-Dulieu ========================2 g0 q0 x. v% B* E: `! A ^! |1 b/ Z
;;; ================================ Funtion-Dulieu ========================
, u0 ^/ l2 G0 C, n7 ?( O$ z, r3 [# q# m0 y' V% `, S! c
(defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) ), G9 Q n4 s7 f) C! i1 ^& Y, t6 x
(defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
M& p! o) W. c: T& h& W) K(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))
% l4 O$ f; f5 S1 I: ~(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) )
0 \7 U4 [3 j6 E) J, n, H. W(defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
% C" f z9 I( k+ X(defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
/ R! w. |4 u* W) V2 e* f3 d(defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
% ~* g9 T R3 L, B2 S8 d(defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
4 ?# k' L! P! E1 d6 @2 S/ K9 d(defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
- R% I" {4 g7 P 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))), W$ g9 Y3 l% x2 N5 ^: O( b
(defun dtr (dtr) (* pi (/ dtr 180.0)))
, e$ Y, {* ^/ g0 R# @6 d0 W(defun rtd (rtd) (* 180.0 (/ rtd pi))); c# B/ \% P" f. b" I& F: p: W
2 h4 j8 N* G% X# z+ @! g;;;==============================PROGRAME===============================; o, y5 k) N1 x: v* q; j. w7 M
;;;=====================EditDiM Hien Hop Thoai Dep======================
" U5 @0 `1 F. @;;;==============================PROGRAME===============================2 E2 |" S6 r# l' J0 ]3 S" P6 B; t$ }7 L7 Z
, j, @" _9 }0 m# q;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)- S/ I* ~$ z$ k; {2 W
;;Chay Cung Du Lieu.Lsp & Hai.Dcl, M9 `4 ]4 ], t1 D- b" x# T+ S
(Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc); ~. Q8 s* s a* y/ |# ?
(Setq Oldlis (Entget (Car Chon))
; Y" M8 c. q" z( G6 @0 P" h Pt10 (Cdr (Assoc 10 Oldlis))/ K" }& Q2 E; \: ?- y3 ^2 C6 y
Pt13 (Cdr (Assoc 13 Oldlis))( V* G- s# E6 f- k$ |: r- W' ]: p
Pt14 (Cdr (Assoc 14 Oldlis))
% d7 A2 _0 R9 b& Y! S& @5 C' Q St (Cdr (Assoc 70 Oldlis))
; l2 @) v% N. w" q Dimdefault (Cdr (Assoc 1 Oldlis))
& ~9 t* m4 `, l6 @7 y )
, I# A7 a; A9 M# T! x' Z (Cond: }8 |5 A# @3 p
((Or (= 32 St)(= 0 St)(= 160 St))" c, E1 a# w& m- i5 Q; Y8 p
(Progn# q% D, t) R- h8 Z' }$ J
(Setq Ang (Cdr (Assoc 50 Oldlis))
7 k K1 \8 h W& u. g& j. j* g Pt (Polar Pt13 Ang 500)
+ _1 Z# I# ~) ~5 q Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
6 t6 v6 _/ {" [$ [ Dis (Rtos (Distance Pt13 Hc))3 R$ U( O* w0 Z4 q) s. q1 K
)
4 s& P# N- u- |0 A )
$ A v; ?8 j! ~7 ~& V )
/ f4 u7 Q: d$ q$ e5 O ((Or (= 33 St)(= 1 St))
% O3 U; A6 t! z3 V4 e4 { (Progn(Setq Dis (Rtos (Distance Pt13 Pt14))))): Q, w5 w0 d; ?
);;End Cond
, h3 W" c1 Y7 Z4 d* V+ I' n- h (If (= Dimdefault "") (Setq Dimdefault "<>"))
" y9 A3 q/ h* M0 }* O: u (Setq Dial (Load_Dialog "Hai.Dcl"))
! F' ~0 K+ f5 V8 x# q, _& ^% ] (If (Not (New_Dialog "eddim" Dial)) (Exit))
( E( h0 Y, A' W (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
$ r1 {% k* ]9 i: O (Set_Tile "text" Dis))
$ n' @ F: Z. t( i (Set_Tile "ha:edim" Dimdefault)7 \0 v8 u* p8 }" M8 w) J
(Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai+ w. x8 ^6 K2 }# }/ H A
(Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")- f8 B- w1 U" L: ~0 Z
(Setq State (Start_Dialog))(Unload_Dialog Dial)
; M2 g; z5 {; s/ \# N (If (And Str (= 3 State))
+ {% s1 D( q+ u1 E& `; S# x (Progn% L6 o4 q1 E3 M! }' R# w
(Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))7 K2 w2 ^9 }# v
)
8 R5 K7 ? Y* T7 E" a) R% p(Defun C:EH (/ Chon Name )& t$ o0 o' G# p# C0 ?' v% D
(Defun *Error* (Msg); A- X8 f8 w( i' m2 d1 u
(Princ "\nerror: ")(Princ Msg)(Princ " ")" X% k+ _8 @. C* D f. M
(Start_Dialog)(Unload_Dialog Dial)
& c; M- F2 i( P/ Z; S (Setq *Error* Olderr)(Princ)1 `: K+ C" s1 ^' L% N
)
' B1 H& S# l- l: z/ _' W! ~' ^ (Setq Olderr *Error*) g# b. f3 Y/ L$ Q( C7 I u1 z
(Setq Chon T); G; w9 w& M" K; q& W) K7 R
(While Chon" ^% E( Z; |. `- a6 f. J2 `6 B* q6 Q
(Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
1 M- j, b. E8 x, q2 ? Y (If Chon
/ W( P. I% I1 X- L (Progn3 ^$ ]1 m: V4 p4 `. l
(Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))- l2 i- f& L3 p+ g- i/ H( J
(Cond8 r( M5 \7 q0 I
((= Name "INSERT")(Command "Ddatte" Chon))( R8 J' l/ ~( K g6 ]: A0 Z
((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
, F; V( Y( x& `- Y; q7 ^* m/ } ((= Name "DIMENSION") (Hai_Edim Chon))
; ~+ Q. X7 c$ e )
! R7 }1 S! r0 k2 j4 @ );End Cond
2 R# t2 o. b* i9 U* }5 @ E );End Progn
7 N5 ~" N6 o. Q9 Q) | d );End While
, e$ v) m1 q/ ]9 ` (Setq Olderr *Error*)(Princ)* E; i9 C: f P* j6 I8 d9 J
);End Program: [8 E4 E" L; o
/ G7 N& l L G: t5 M
;;;====================DDeditDim=====================
; r: D% X2 W; l+ Y! \. n;;;=====================Hai.DCL======================4 Q R: R$ w3 o V- O9 w1 ^
;;;====================DDeditDim=====================8 j1 K' @ `9 Z* _/ s0 L% v# a
; l9 n% n' M' L& w5 l
;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh): ^, Q+ W: k1 W) v
;;Chay Cung Du Lieu.Lsp & Hai.Dcl9 F8 u8 l! [3 ~& Z0 t
(Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
; @- d* S# C" F& b! t9 T# m! H+ p (Setq Oldlis (Entget (Car Chon)); P' E# O# J- F/ k4 |
Pt10 (Cdr (Assoc 10 Oldlis))
2 D! ]: Y$ H4 ~8 t; j Z* o Pt13 (Cdr (Assoc 13 Oldlis))
* h. Q9 H& S3 [9 S, L6 e4 V' d Pt14 (Cdr (Assoc 14 Oldlis))
. U; J$ I+ h% p) A( t( `3 l St (Cdr (Assoc 70 Oldlis))4 F9 h( ?# h3 L/ T
Dimdefault (Cdr (Assoc 1 Oldlis))
! m1 k% l$ r2 a$ t& b) A6 p )- R# Y. c+ m& ]( [* f! o7 K* \
(Cond- L! B% s7 j" f
((Or (= 32 St)(= 0 St)(= 160 St)) f$ Z7 u }. n' n5 \3 U8 n$ k
(Progn
5 z9 u5 N. R. a u* ] (Setq Ang (Cdr (Assoc 50 Oldlis))
2 p" C1 s; S5 P$ M6 y Pt (Polar Pt13 Ang 500)
1 U# l: w' h% Q' o P Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)) x2 }1 I. G& ~3 G
Dis (Rtos (Distance Pt13 Hc))
/ j# P: v5 O7 F* c )
% W9 ?2 p+ s" n )3 _7 b9 e8 z1 Z8 [# }
)
4 L) w4 p& k) I ((Or (= 33 St)(= 1 St))( {4 q; M! b: |& e* |' |( y$ z: q
(Progn(Setq Dis (Rtos (Distance Pt13 Pt14))))) l3 u( l) S+ t& y9 ^" U; p8 q
);;End Cond
3 q3 i; D6 f9 x6 q4 R (If (= Dimdefault "") (Setq Dimdefault "<>"))
, L b# R* P+ r8 L (Setq Dial (Load_Dialog "Hai.Dcl"))
# B- j' W: q0 { (If (Not (New_Dialog "eddim" Dial)) (Exit)) L6 `$ x. v# \3 \5 K
(If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))3 g: B6 C9 m8 g% _
(Set_Tile "text" Dis))
; ^6 f1 j0 B' O (Set_Tile "ha:edim" Dimdefault)5 j& L5 N# V/ L" L0 }% K. G
(Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
- u: o9 ]0 O% x( L" S! K! Z (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")% e+ f; v: m! \- O
(Setq State (Start_Dialog))(Unload_Dialog Dial)7 j$ v+ X' D5 h
(If (And Str (= 3 State))
3 O# n! q) D) k3 i/ G (Progn7 C( E+ X- X: i5 S
(Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
( s) e: \* S) V )
$ a" H8 g; |9 k" J, ~% B(Defun C:EH (/ Chon Name )& j8 m. N* S0 a ]0 w
) E% T3 k* P- `& o. i4 Q;;;********************Du Lieu********************
* L' X0 c- D# ?' W2 ~9 l& Q+ l7 h1 V/ R+ _( z8 q8 N
(Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))
- P i+ p9 ~ |0 ]% {(Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
& E3 B( @+ I% l7 d- C5 T% T8 x0 w (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))! K1 X2 z) C/ t1 x) R! z3 e
(Progn
. |4 {) H: y' t6 B) @. | (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
, e6 U0 m+ r& o- ~ x (Setq Chon (Ssget Hacat3))
# w, S! ]. f& H2 w p (Command "Break" Chon Hacat1 Hacat2)
- W$ @' _2 Q+ S% _* Y8 F6 d )
" C/ {; D" d* N Z' S )/ v' @8 L/ i0 u: q o
(Princ)) t4 ]5 Q' Q0 Y
)' E) c) |6 v" a. S
;;, {& }) V* B; |4 C
(Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))! t' Q; h+ s. N8 {% J( L
;;
/ M9 {. K3 v1 R. w5 g(Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))8 ~ ^! p+ W; K( l5 Z1 i
;;
* X9 o& o: Z, T! g+ U4 ^+ {(Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))/ P/ i" q9 \# q5 T( q
;;
& y4 q3 H# W- U( o* f4 H(Defun Reinit ()(Setvar "Cmdecho" 1))1 H& M# r6 |& W/ }6 t" I. T1 P3 j% i
;;
, |$ X9 q, e2 Y(Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
0 a. f4 O$ x% l; r8 o0 q8 ^. P% K" ~;;$ s Y/ \. R: f3 G, V+ X
;;Cho 2 Diem Tinh Ra Vec To Phap- {- Y+ t3 y% f0 _6 B! m/ R1 H
(Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
7 I2 F3 z! ]# P9 g9 }7 B;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang% d) X& n6 q* N- }2 b' l/ v6 n
;;Da Biet 2 Diem Thuoc Duong Thang* ?. N" t1 u0 O
(Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)) u4 m( E1 h& y& U. x7 i. J8 Q! L
(Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)# t% t' f( q- x- P Y6 f' c- g; o
Hc (Inters P1 P2 Dc1 Dc2 Nil)))
( y/ A6 | O! x;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang8 L/ n: n+ ]' t& B7 U! k
;;Da Biet 2 Diem Thuoc Duong Thang, {3 }# h8 N( t J; i3 r8 ?
(Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)& z6 u; I/ G, N2 F
(Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
: L$ P2 h5 ?6 H$ b Hc (Inters P1 P2 Dc1 Dc2 Nil))$ ?2 z* W8 ~. y
(Distance Dc1 Hc)
* U r3 ]* ]% o; e* U )
* Z" T( U. S; ?6 ` {* Q1 Z! |7 n(load "nhapcua.lsp"); y. X+ I8 Z) F: x
(Defun *Error* (Msg)
2 i' i1 H# r; v6 y: j: ^7 Q (Princ "\nerror: ")(Princ Msg)(Princ " ")
8 Q3 p% Z; d) V W. y% w- J2 K: A (Start_Dialog)(Unload_Dialog Dial)
; Q/ ^" R5 Z/ F4 k (Setq *Error* Olderr)(Princ)
8 k. {: D, `% l2 H0 J7 k )
# }5 G2 @: v1 t1 g& J (Setq Olderr *Error*)! p4 k+ q! _) S g6 ]& w
(Setq Chon T)
6 L4 d( `0 z7 ~7 j# C* M (While Chon
: s, X$ b5 P- A+ C. e (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
) b) N; F. I# ?5 s0 R1 | (If Chon
' _( K- D% O6 V8 C( {. @' X (Progn& N: h3 V' K0 H; s1 f' Z, p& H; M
(Setq Name (Cdr (Assoc 0 (Entget (Car Chon))))); {! d- g, e6 W3 y0 i3 B M) E6 C
(Cond
! w1 j1 B$ A- S5 \+ E0 p ((= Name "INSERT")(Command "Ddatte" Chon))
9 N p% @" a- A" ^1 N ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))9 |! q! D6 G$ g! r( i
((= Name "DIMENSION") (Hai_Edim Chon))
, w) u3 \7 F' p) d' L7 l; W( D )& z" Q# W& Q! R+ s; ?+ K4 |- `
);End Cond
* ^ B0 r4 |" b+ d );End Progn
' p, d4 m4 r- l3 i0 G7 ? );End While4 u3 N# Z; H' @
(Setq Olderr *Error*)(Princ)
[( e5 M- @- m8 \. T );End Program* \* K% b& s7 }' t( c
4 x5 K" w$ O' u. n$ _3 o7 k; ]! E1 |7 [5 K! S5 y, h
V8 d: ~5 @2 v8 c, m;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================' k( ~5 A) b5 k' J
;====================================Nhapcua.LSP====================================
% z" R: ]1 d/ S+ t/ `7 @/ {;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================: N& f. N; e) B9 R6 `' u
5 P1 t2 ~# Z R# R6 }
;;; ============================ Ve Hinh chu nhat ==================================- ~; c- L' \1 b7 H) Y8 h* E# c6 l
(defun HCN (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w), r) w7 k" k! o% {! y. V U
(setq ocmd (getvar "cmdecho"))
# x: e1 j n" n; n; k& J (setq oblp (getvar "blipmode"))
% w6 R$ ]3 e: u* X, z2 z (setvar "cmdecho" 0)' O6 L* z; l; x" l/ a
(initget 1) ;3D point can't be null( m0 s5 |- y& \/ S, Z. v
(setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))5 `4 s7 q" s% t. i) ]7 @
(setvar "ORTHOMODE" 1)+ O4 Z7 }* ~2 x& C9 B6 m, w& l' y
(initget 7) ;Length can't be 0, neg, or null2 U$ [% @. ^; T
(setq l (getdist pt1 "\nLength: "))
( D& i6 q0 q+ o7 W5 r7 l (setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1))); K7 D$ t7 m8 l- C7 r3 G2 a
(grdraw pt1 pt2 2)( A0 O9 u: T' Z, C
(initget 7 "Square") ;Width can't be 0, neg, or null( A) g v4 C( E: H2 f- f8 y
(setq w (getdist pt1 "\nSquare/<Width>: "))" n& c1 }0 p. d; i! ^% O
(if (= w "Square") " }: C7 e$ e( I; i4 l9 O4 J# ~. F; p
(setq w l) ); I: v* ^" I# A) s
(setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2))) s9 O* O. G6 F
(setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
3 d/ \0 E" V( S x. L (grdraw pt2 pt3 2) n$ m1 B" \: `8 V+ [# u
(grdraw pt3 pt4 2)
w+ U* N, m0 j3 @ (grdraw pt4 pt1 2)2 n% ~, O5 o( t4 `- n* ]
(setvar "ORTHOMODE" 0)6 U4 V, i* P- l$ C& I3 h
(command "pline" pt1 pt2 pt3 pt4 "close")6 j7 S+ s0 d9 O* h5 Y" S! Z
(setvar "cmdecho" ocmd)
' x# a% d- t( |9 F; M (setvar "blipmode" oblp) (princ))
! a6 ^' X2 T8 b0 U2 H- v( d& R(DEFUN C:HCN () (HCN))- L5 {, }7 {2 e/ u4 N! {9 z4 p: |: j7 t
# }2 a- f1 c9 S9 k6 K
;*******************;*******************;*******************;*******************
+ k- o" h% E6 C1 k. J* U;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****5 h4 `4 X0 @. ~8 N3 u/ e9 L3 L
;*******************;*******************;*******************;*******************) o' m: j5 ^7 B. ~) ^, z* d
. n* R% d0 v1 l( d9 n y- T" x
;VE HINH BINH HANH1 Z" j/ ?6 J3 J! e4 A6 X& n
- x# n; K) a( s$ V9 A, H7 ~, O' D
(defun c:binhhanh (/ p1 p2 p3); \5 U$ h; o1 ]: I- g3 T
(setq p1 (getpoint "\n Nhap diem thu nhat:"))
# [& X h: G' f+ G (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))" l, ]1 O, R6 n* \1 J$ J! Z
(setq om (getvar "osmode"))9 \* ]* ^& e% o9 W
(setvar "osmode" 0)
9 @" t7 n. m3 R3 B* l2 E7 [* @ (command "line" p1 p2 "")
( B; R, T J1 {(setvar "osmode" om)3 O, E3 W6 s; h8 Z8 K( n
(setq p3 (getpoint p2 "\n Nhap diem thu ba:")): G8 }4 [$ P5 q3 [# b3 d s
(setq a (angle p2 p1))
6 _3 j/ ^7 G5 T: q (setq d (distance p1 p2))
' w s) I# E$ C- ^% B+ j7 `- F! h (setq p4 (polar p3 a d))
/ I4 @4 [# R& V: @- g (command "OSNAP" "none")4 z! M" Q6 @* d% h) [' I! d
(command "erase" "l" "")
" z7 E/ p/ [1 i( }9 @ (command "pline" p1 p2 p3 p4 p1 "")4 S2 c- S9 R% }5 m" t' U! e% b
(setvar "osmode" om)0 U% K# {6 c' `& [/ a! a
)
) V& T# K/ t, i6 f: a# q6 @! \7 x: b6 j( n
;VE LUOI COT
/ x K* I3 ?& G) g* W- [; X
' M! `, A! w9 ` x(defun c:LuoiCot ()5 z+ A& @0 g- p6 e" p
(setq om (getvar "osmode"))
' H) v4 @! e, ]" a- m/ {(setvar "osmode" 0)* o0 Y/ _! [) D2 v
(setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
0 E5 _/ [; e+ V$ x/ z1 R% O/ U (setq p0 (getpoint "\n Chon Basic Point:"))$ q3 m$ O4 @ `! Y
(setq nc (getreal "\n Nhap chieu ngang cua cot : "))
$ t7 X$ O+ ~2 v+ a5 S (setq dc (getreal "\n Nhap chieu doc cua cot : "))
, N; b# T- ?0 T% G& s: j, J# I (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
8 i7 k: ^ l) }& q- d0 c7 v& a" ] (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) ). \4 }. y7 a' \4 Z) j5 I8 p6 Y
(command "rectang" p1 p2)* S# r# [+ c% ~! h
(command "hatch" "solid" "l" "")1 R# e$ X# W# W6 V- W
(setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
7 c! ]% n. b: H7 Y6 Y2 \3 ]7 ~ (setq nn (getint "\n So buoc cot phuong ngang : "))
' m( P& G( g2 Y& J- U (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )' q* j9 n" c6 C9 [. D; A r
(setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )- h4 U( q, v6 Q7 U0 x( F
(command "select" "w" w1 w2 "")
9 C) S$ U7 s4 Y1 ]1 z4 V" y* g8 C (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
$ B* C' D9 `- G$ u# I$ c (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
4 f; B- Q( u& {8 m (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
& M" |- U0 O5 H. V! x- N (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
?: x6 e, F) \$ K& t (command "zoom" "w" w1 w2)8 B1 G7 B, v# {& z6 u$ |$ C
(command "select" "w" w1 w2 "")# o+ B6 w* j. E$ i) S3 i
(setq bcd (getreal "\n Buoc cot theo phuong doc : ")): A: \/ P0 `) C5 Y$ l
(setq nd (getint "\n So buoc cot phuong doc : "))
! \4 t9 i: t+ C( \+ X4 i* V. }! ] (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
# W: S8 _, ~8 H/ g d (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")5 B0 o5 U: e$ u8 a( @% j6 r
(command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
7 D8 a0 F# W; D( d# M (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
. [5 Y# u% w( u) G2 f, G( z `7 ] (command "zoom" "w" w1 w2)8 }; @$ j* ^ f. R* [* m: T
(setvar "osmode" om)
4 b) s7 u: k; X+ W" ^5 m)% i1 N6 `0 ^$ q* p0 u
4 k2 c* C- U0 ]6 `;VE CUA DI
" N& j, b; }: q1 `
7 ]1 ~2 D- m; s! c(defun c:cuadi ()
% ^' T ^6 q6 W( _(setq om (getvar "osmode"))3 F4 N" a: e7 D$ d
(setvar "osmode" 0)
9 y7 B- t( J+ r8 [4 i
* c$ } ?' Z' \* M, Z5 l (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))9 I/ ?$ T0 R& K% ?' c
(setq b (getreal "\n Nhap be rong cua : "))' ^! g$ M6 R! D+ ?
(setvar "osmode" om)
+ U; E2 ~8 c9 [9 [. |: j(while (< 0 1)
& \' f3 |. c3 p* Y2 p/ P (progn
8 O: s8 a4 R" u9 w2 K (setq p0 (getpoint "\n Chon Basic Point:"))1 v% S7 F8 {+ q, |* X6 J7 R- ^
(setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
1 O9 x: v. o* j (command "osnap" "none")
$ |. }, s2 m* z' z6 ]7 a: e (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
6 D3 M2 l3 s/ a- A x (setq a1 (angle p0 p1))
1 Y4 M$ h2 _! I7 ?% v" P* Y0 l4 X (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
* @6 H) j( R& J. q; I (setq a2 (angle p0 p2))
' b$ q, T: ^% O8 O' S (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )/ A6 n' l5 O- O$ n6 @( L) y
(command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")$ U1 p& \7 e, x. Y6 S
(command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))3 i( ]8 x- D, D. I$ Y, t# M
(command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) " @' \. [# |; u0 s; U/ A
(setvar "osmode" om)& T1 n' o1 U/ p* r
))
! G9 y* M% J9 B( m)
& w8 N4 ]4 f4 }3 o. T# q! \& O
! }; Q' t! U( b- a5 a- H;VE CUA SO; c' k( V: j) y2 X0 b; R: q3 ~3 |
) C6 r* f/ m/ B+ D5 K8 Z(defun c:cuaso (); A) {0 I6 I+ e0 A1 F
(setq om (getvar "osmode"))* U1 a5 |6 ]3 _; l
(setvar "osmode" 0)
# } W6 C/ r: i7 l: Y% Z- Z0 p# k P* C4 u" A U, `) v
(setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))! T1 m Z: C5 b0 H f/ ~
(setvar "osmode" om)
3 i0 ]! F9 }. m( M(while (< 0 1)
' f4 q9 W: Y f. x3 q% e (progn9 t( f( p. v1 v2 {4 M( ?3 h% i
(setq p0 (getpoint "\n Chon Basic Point:"))
: X( ? o0 U# T) u) u (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
2 C' C5 p# y( i0 r6 _0 m (command "osnap" "none")
: t: q% `; i' h; }- l, g8 _6 v (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))$ v* o1 _& Y+ t) g/ O( T
(setq b (distance p0 p1))
$ N9 i* ^9 ]$ N) a (if (< b (/ (* hstl 600) tile)) (setq du 50))* G" G [' W% e c8 {; @5 C
(if (> b (/ (* hstl 600) tile)) (setq du 150))
; U6 M' s6 s" g6 N: q (if (> b (/ (* hstl 1800) tile)) (setq du 200))
' x1 e4 Y/ i7 A& M' a% N' I (setq a1 (angle p0 p1))
# Z4 E9 w& P+ X$ X6 C (setq a2 (angle p0 p2))
! Q1 q/ X- g, s+ p (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )6 q6 k5 v- U6 L6 i
(if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
0 e) h+ `/ g0 G5 y" ?; E (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
1 G7 v0 h8 u/ C5 g5 g; t$ D7 |' F (command "pline" p0 "w" "0" "0" p1 "")
4 Y) e7 n8 y/ }* h (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
3 [0 y3 o! C( u5 \: r$ h$ Y (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")' O, @0 y: s6 ]. o# \
(command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
: r3 N1 }1 V, h. @8 ?) ? (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")# E1 v" T( R7 s2 k- i/ h+ G. u& w* r
(setvar "osmode" om)
% Q3 q6 c# c: D# }))
% A! d+ }+ ~$ a)% g5 F, n+ N, H( _3 v! }
, t! U2 R0 s* y0 C& r& N$ V;;;=== General Utility Functions ===: f5 `: T/ H, n3 t- A2 M' m9 C
# @' a4 B" D+ G5 J3 e0 Y) ~
; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
z ]; s* s3 b% W4 Z0 ?; ADS function. Now it's a simple AutoLISP function that calls the . n+ N- ~6 r G% `8 N, j
; built-in function (help). It's only purpose is R12 compatibility. 8 C/ y: ~6 }# S6 N
; If you are calling it for anything else, you should almost certainly
7 ?4 B; U# M4 f; i P3 z; be calling (help) instead. . E, e8 L# T0 R2 f
8 Z! V9 M: _0 o" s/ Z
(defun acad_helpdlg (helpfile topic)
- |$ B6 j2 b. Y (help helpfile topic)
6 @3 o& R/ G8 z) g7 n9 ^7 r), X6 I4 s. ]4 i) }- ~% t
9 C- Z2 ` j8 L* u. K
# H D8 P6 } Y1 k5 e8 |4 S6 P$ K, _
(defun *merr* (msg)
1 L, X, k7 y- @, ?' k; e; W4 o' w (setq *error* m:err m:err nil)
1 q# t- G# P2 v& b (princ)
& [2 V/ i, {" q). B; ]7 |' B1 t. [ M
* n0 H- x3 D( R9 Q7 i4 C: f/ u
(defun *merrmsg* (msg)
) [0 r. Q6 z: c; F- n" U$ `" g' s* D8 H (princ msg)
( x6 w6 Y c7 N+ s+ F (setq *error* m:err m:err nil)2 b4 U: Y0 K* D9 N1 M x' s% P
(princ)
- d) m3 x4 i6 H% ]" g)
* l; Z% V# q' k- }) _# _
, ^+ \, O6 B# H;; Loads the indicated ARX app if it isn't already loaded
3 _) C: R& H7 g6 ^3 {;; returns nil if no load was necessary, else returns the, Q# g$ m. S! v
;; app name if a load occurred.
& E6 H' w! _$ D/ ]. N(defun verify_arxapp_loaded (app)
( x2 r' @7 ` [ (if (not (loadedp app (arx)))7 S* ^1 p5 w( W" }+ N+ q5 V
(arxload app f). O' g* _1 [1 _# N6 F* l
)
6 w: O' U4 x: p/ h# F0 \)* ]$ Z3 P0 P2 u; d. a. _" c8 B
0 Y7 p( L/ e, K! K0 _' ^! C;; determines if a given application is loaded...
8 o5 V# u$ _2 t7 m;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....! U+ x; D$ K! s
;;
2 ]/ o9 W& e" n;; app is the filename of the application to check (extension is required)
5 q- p) o8 \% A* O2 T; N g- C- [;; appset is a list of applications, (such as (arx) or (ads)
0 x# t; J3 G# l" G/ k% ]: x;;
: \4 a0 P+ V9 T2 w8 P" L2 U;; returns T or nil, depending on whether app is present in the appset' W, {# S' {( `" m
;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"5 C/ ?% w. H) E3 v
;; Also, if appset contains members that contain paths, app will right-match9 o2 F+ c) A& l: s: |8 R
;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that) P* f& K; ^5 P: k4 l. n% d' D( d
;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
0 G8 u2 h' `8 H$ g! t(defun loadedp (app appset)
' ]9 k3 C% d* z/ | y (cond (appset (or 5 F0 A, G! w/ |
;; exactly equal? (ignoring case)
, T3 M5 _/ J" E+ k6 O0 L (= (strcase (car appset))
1 e5 L1 n; T4 O (strcase app))
7 w `3 ^+ o6 Q' W+ z4 x6 r0 r+ L8 x ;; right-matching? (ignoring case, but assuming that- [- e. w* J; C) e
;; it's a complete filename (with a backslash before it)& x @7 c( t* m2 v! R
(and 4 x- k F$ e7 {
(> (strlen (car appset)) (strlen app))) U% [/ I6 w; M& s* R$ a+ s
(= (strcase (substr (car appset)
& k# c, s9 ]' k7 z( |# ? (- (strlen (car appset)) ! e) ?+ l6 A4 A7 J
(strlen app)
* e! v9 C7 i7 S& t" E ) , B: N2 d8 u, u8 w" u* p7 o
)
: A) l m1 ?7 s \5 ] )
" I; {5 m- ?6 O9 Y: Y: S (strcase (strcat "\\" app))
! ?) @9 f0 ~' J8 f )
1 d& A' J8 l2 _6 o; V: o )
( @ n7 U' d* z8 q9 Z! M ;; no match for this entry in appset, try next one....
- c4 o7 {/ p& ` (loadedp app (cdr appset)) )))
8 w2 I& q) ]; U7 M: l1 a)
6 G9 z+ ` M( f. ?
& _/ B" [3 e7 r8 s( _ K! h
. C' A3 x S' `% H: X# |! r3 E;;; ===== Single-line MText editor =====
2 x9 T+ `& g% \" g% L, ?6 t# V(defun LispEd (contents / fname dcl state)
. L$ Z; S( c! P2 _3 \3 a2 w! ]1 T% K (if (not (setq fname (getvar "program")))
9 R+ _2 M# `7 ]7 u2 R/ @ (setq fname "acad")) G7 X- o4 v7 H8 W5 {, f
)8 s( r! J7 C+ g
(strcat fname ".dcl")" d+ ^3 n( @1 _8 |9 C0 C: s
(setq dcl (load_dialog fname)): T& G" d4 }1 Q; ^, K( g! z
(if (not (new_dialog "LispEd" dcl)) (exit))/ |! r w* k8 r3 y' P, |7 e4 N8 u
(set_tile "contents" contents)4 ^% V- b9 }; ]" @6 \
(mode_tile "contents" 2)
; [) f( ~3 f, I9 X0 I3 {1 d* w (action_tile "contents" "(setq contents $value)"); | ]% X. c* ~7 G
(action_tile "accept" "(done_dialog 1)")6 ]) C2 m z* H3 n1 q$ Q
(action_tile "mtexted" "(done_dialog 2)" )0 g2 ]( @# D$ k6 L0 m4 a4 ^8 J
(setq state (start_dialog))
& [, o8 ]% m4 ]% N& d (unload_dialog dcl)5 J6 E/ v- e5 r9 H
(cond u2 i: _0 ~3 n8 @; }
((= state 1) contents)1 {- C) Y2 u* s( a! ~0 e
((= state 2) -1)1 H3 H% T5 S; i# G1 Q/ M: R7 V
(t 0)
) e k' R. G# B* }, w )
* U% {. t3 U5 S. A* ~4 y): L0 p# g0 i8 G1 ?
' v: [6 i7 Q5 \- k! r* _0 Y
;;; ===== Discontinued commands =====
% v; k. g; j7 {, i, [3 D/ T8 f(defun c:ddselect(/ cmdecho-save)
* E7 P$ k. c1 z2 ?0 y/ w+ k: p: G( l: G (setq cmdecho-save (getvar "CMDECHO"))
" D7 r; d0 C9 u' h (setvar "CMDECHO" 0)9 f6 O% L1 {2 Q$ n1 S O6 K6 b) S+ u
(command "._+options" 7)
( ~. t; ]8 Q: m2 V! z% n (setvar "CMDECHO" cmdecho-save): J! q: ]" Q0 v. Z5 X1 q$ f* s$ n# g
(princ)
! U' \/ n1 y% l1 g% Q% C, E)
0 J2 `& W( Z, q3 Y( p3 {4 }: K2 D, g5 v0 C
(defun c:ddgrips(/ cmdecho-save)# ?! m& I+ B! H1 ]6 y7 }- q/ o, [
(setq cmdecho-save (getvar "CMDECHO"))+ r; i2 _$ E' _0 i% n5 h5 h: D
(setvar "CMDECHO" 0)$ ~5 y3 `% Y" o8 w
(command "._+options" 7)
' ^6 [* R4 U2 j& I (setvar "CMDECHO" cmdecho-save), F* R, R3 j" O6 `, s" E/ q. m
(princ)9 S& @% @, x2 ]3 z
)& \: O) q3 I. t h' X
7 T Q$ Q/ @ U) K" O(defun c:gifin ()
% u4 W3 x3 U: } (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")7 b/ e; R- F5 j& ]/ C( s2 G% l
(princ)" r2 n; P5 ~9 _! l! z' k
)0 W- `' {1 T8 Y7 L7 R: m8 `9 P
% o- V2 }% y; g! [( g' W) A l0 i(defun c:pcxin ()5 ?. x' i6 h! s# Q, O1 t
(alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
0 |- O- h0 _+ {" ^/ g/ S7 O (princ)
7 j# o* f5 ]$ o- t6 A)
* Y/ y5 i! U7 \
6 O. D9 q, m9 j N, O" t8 n(defun c:tiffin ()' }2 \% n& W( G! E9 p) K% B6 Y
(alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
# M8 c- G% E( H' }- U( u! C: c (princ)! Q# Z2 K! e7 _# k+ M6 }! L
)
8 |6 q' z) V' ^1 a' z+ a$ f+ `& `, U0 Z) i7 [# C- O
(defun c:ddemodes()3 s x; W# S* r U" |+ c8 e: A3 n( 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.")% O' n$ n! N- K$ |. x. b# r$ {
(princ). k5 T C( d+ i. _- D) X
)$ w/ l0 D+ A! V% d$ n7 b1 t
% a2 Z, n# _# z% Z0 G! x2 b( k
(defun c:ddrmodes(/ cmdecho-save). z8 g M# b3 L
(setq cmdecho-save (getvar "CMDECHO")), t& R3 N3 W2 }- V! B" g* b
(setvar "CMDECHO" 0)
7 O$ f% E9 l% q X% Q! R2 I (command "._+dsettings" 0)4 I* @' F; S8 R9 Q% d
(setvar "CMDECHO" cmdecho-save); R$ D" T; p; b. E" P
(princ)
. F" U5 P/ K2 x0 Q1 U1 c$ Q)# A8 u$ q( f- }8 C% W6 b0 x! h
( c2 _3 o1 ^' H
;; HPCONFIG
; p8 O" Z9 `8 A- p) j( A4 x(defun c:hpconfig (/ hlppath)
0 A' E x5 |% @# Z/ s+ U: |4 Z# l (if (not (setq hlppath (findfile "acad.hlp")))
9 j! p% o# J; B r1 A (setq hlppath ""))9 j: y0 @& ]; H. H
(help hlppath "hpconfig")4 M& {5 g7 n' x% x, w2 d0 K; k
(princ)1 x& J6 u g/ U& H9 f
)# R' k/ b) @) a; r5 d, G1 X6 X/ C8 l
* h" c6 j+ _/ Z;; OCECONFIG
( Y) r! f: O' r# U; Z) E(defun c:oceconfig (/ hlppath)4 v6 X+ u7 U% J) R% y
(if (not (setq hlppath (findfile "acad.hlp")))
# T q8 y' ^& s- e, D) m2 S3 N (setq hlppath "")): N) f2 M6 P# b& w' Y/ U: H! C) {3 V! C
(help hlppath "oceconfig")
2 C- J, ]! F4 m (princ)# ^5 N7 r) G. x# c+ q9 ?
)
' {4 e4 M/ [0 I" k8 w* l1 ]4 P0 H* P+ u
;; CCONFIG
: J, t1 x, @4 j(defun c:cconfig (/ hlppath)0 q2 ~# h6 O' X0 |0 R$ G
(if (not (setq hlppath (findfile "acad.hlp")))
( v: I7 D3 |, f6 Z (setq hlppath ""))
/ I9 w; W* X2 H3 G# q (help hlppath "cconfig"). L1 D# e/ j* h4 L s, N* Y+ p
(princ)
3 F% L! M0 a& s* u)6 P3 \7 b; k' N, u6 \: h# K' _
$ T G6 h7 e) q- e( n7 F
;;; ===== AutoLoad =====
+ t# }$ n2 I- Q" C: I
% {9 Y. P3 f, v8 |3 j;;; Check list of loaded <apptype> applications ("ads" or "arx")3 v- ^; b8 }) n1 }; D0 Y2 t* h6 f
;;; for the name of a certain appplication <appname>.
, y7 w1 K& m: q% V5 D;;; Returns T if <appname> is loaded.$ M9 i: u$ A; v1 I- P
Q. |$ _( m$ v) H0 D(defun ai_AppLoaded (appname apptype)
, S$ g5 G* f* Q (apply 'or
' m4 {4 Q9 @: H0 t2 A3 w- j/ e (mapcar
J" P- t1 X9 ]; N' I '(lambda (j)
" H0 ^$ P( S: w9 L: n# p (wcmatch
5 p) W$ S" M$ d. t6 `# _ (strcase j T)% ]8 |: e4 H* D) X# e( K! K
(strcase (strcat "*" appname "*") T): w! d( s+ K4 {! u, W- b
)
; \1 K& g8 F. X, }5 N- k )/ d$ J& v F j% e e
(eval (list (read apptype)))# s* Y4 U1 }5 H @- m g/ r8 m
)9 E( S8 d; n" a/ t3 e+ Y
)
* E* y2 V8 z" W& \6 w0 U4 t)
* J1 d. J. N) Z% a- M1 q, D+ X
+ ^! G9 P; `8 f9 V5 e7 ]! h! x;;
! {. P/ X! M8 R/ Y% J;; Native Rx commands cannot be called with the "C:" syntax. They must 9 U; t* t, Z) r& G: N/ }$ x0 }6 w
;; be called via (command). Therefore they require their own autoload * G0 c! J5 q& G+ N5 ?; U$ }
;; command.! n) m% h2 u2 A$ J! s
. r' P* `" G9 d" t1 u
(defun autonativeload (app cmdliste / qapp)
: x2 s+ `: m/ y; K9 N% s (setq qapp (strcat "\"" app "\""))
& m4 y5 ?4 ?* p# c+ j (setq initstring "\nInitializing...")
`6 t5 d& V2 y4 g (mapcar7 a& j ~# N2 X
'(lambda (cmd / nom_cmd native_cmd)8 {% Y1 p9 H8 ]5 Q0 D6 N& N* b. {
(progn2 H7 |0 _4 O+ k4 ]4 [7 j$ x
(setq nom_cmd (strcat "C:" cmd))
. g% R( ~7 l" A* g& A5 s2 p; D (setq native_cmd (strcat "\"_" cmd "\""))
" ]. B: W2 D& H) f) w4 Y (if (not (eval (read nom_cmd)))
9 ]3 W. R* l$ n6 x (eval
, W7 Y* K0 k3 U5 ? (read (strcat! [4 k% ?$ z# n! A( i. u5 Q
"(defun " nom_cmd "()"
+ V. `1 Y3 l0 t2 `; ? "(setq m:err *error* *error* *merrmsg*)"
6 Q4 `$ F5 a, {, ^$ D8 q/ H4 D) b "(if (ai_ffile " qapp ")"
+ G1 k1 T# i/ f: k/ f "(progn (princ initstring)"6 v2 O' f( ?. ^- E+ L) ]
"(_autoarxload " qapp ") (command " native_cmd "))"% ^5 }- F M, O( n
"(ai_nofile " qapp "))"8 e+ d6 N& A6 [
"(setq *error* m:err m:err nil))"( m- n6 A! [3 y' d2 x7 h
))))))
. c; M3 Q2 c( G9 t* Y! p; n) Y$ \ cmdliste)
! d2 l1 G5 X& b* e: { nil
* j" F# i% f% k' K)
4 g9 E/ |/ H A1 V' j
. p8 R) ^+ K8 [0 B; f$ P(defun _autoqload (quoi app cmdliste / qapp symnam)
W- |. _5 N9 u: `9 _& ~" Z (setq qapp (strcat "\"" app "\"")) K1 U V4 w: i: r, ]; F
(setq initstring "\nInitializing...")
2 g; [2 F3 o% n V, v (mapcar
( j' z3 P/ ?% I! Z '(lambda (cmd / nom_cmd)+ Y) l7 w: I' s
(progn
- d+ H- K/ m5 [! B% |2 A/ j7 n (setq nom_cmd (strcat "C:" cmd))
6 g3 m, `8 b- @ (if (not (eval (read nom_cmd)))
} ]5 b3 d1 U (eval
! ]+ I1 [6 L4 ^% Y (read (strcat
[- v4 G2 S7 `: T: i% V# { "(defun " nom_cmd "( / rtn)"
t: b9 s+ c9 A "(setq m:err *error* *error* *merrmsg*)"
/ ^/ e) r3 e, ~6 W1 i1 \ "(if (ai_ffile " qapp ")"2 G F. t9 y& I) V
"(progn (princ initstring)"
. E3 Z+ V7 C3 {, A# G4 ~& \ "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
9 Z) h3 S" V1 r. `1 C& Q "(ai_nofile " qapp "))"
0 H5 q' ^% k m, w7 |5 o "(setq *error* m:err m:err nil)"+ {7 `$ }: A. o. O* B1 V
"rtn)"6 Z' g7 V8 G' F2 g$ {7 d( D% J% k. Z
))))))
A! \0 G* I/ U: |5 x' {+ S$ s cmdliste)
+ u m }: ]; n o: X% Q nil
" w) W M6 A/ t5 t" Z0 Z)
& h3 L' R, y1 T" d
5 R6 u5 ]5 d E2 s(defun autoload (app cmdliste)- e3 g- l' b2 j; Q) y& M
(_autoqload "" app cmdliste)
8 a) d9 g! L( l e. c$ X7 U, S)0 A U4 _: f- ~2 C
' H8 c2 S4 g; H6 C3 b _9 V(defun autoarxload (app cmdliste)2 L2 `/ U7 l5 e& Q' _
(_autoqload "arx" app cmdliste)# G6 h/ t( i& U: S, y* Y* x) |
)
4 L, H( d7 ?. [! l4 i6 m1 B4 L
" m5 I7 L5 m$ a0 B [' p) N+ }6 s1 m! }(defun autoarxacedload (app cmdliste / qapp symnam)8 i5 U/ }5 L5 ~ g0 S7 ^
(setq qapp (strcat "\"" app "\""))
5 a# Z' i* d3 w3 q% X (setq initstring "\nInitializing...") W7 M/ k" J8 z: @6 c% J
(mapcar
5 i' `, D4 h+ k '(lambda (cmd / nom_cmd)0 b' I; J! B- x' S- o
(progn5 V. K, c9 R3 T$ f. G" L9 H
(setq nom_cmd (strcat "C:" cmd))
" R( \. o8 `9 y7 b; @ (if (not (eval (read nom_cmd)))* c9 H$ Z7 o' Z6 d& X; h
(eval* o& d; S( j# |8 o
(read (strcat6 V1 ~. a: g1 x+ K# s7 T6 K1 o
"(defun " nom_cmd "( / oldcmdecho)"
( [6 Y( _) w# ? "(setq m:err *error* *error* *merrmsg*)"
5 x/ M2 ? P, l3 g* J "(if (ai_ffile " qapp ")"
; b2 k4 w/ p1 K: G& X1 k9 a Z "(progn (princ initstring)"$ D$ J. x: L$ W8 i- A
"(_autoarxload " qapp ")"( G) Y! H L; x# @ p) W" e
"(setq oldcmdecho (getvar \"CMDECHO\"))": J6 k0 D7 c2 V
"(setvar \"CMDECHO\" 0)"5 a, S6 D! _2 M# P+ s
"(command " "\"_" cmd "\"" ")"
' e# f* F) p' c2 d4 { "(setvar \"CMDECHO\" oldcmdecho))") u3 `+ ?1 h6 h/ B5 W- b4 `; ~
"(ai_nofile " qapp "))"
4 a1 B( u) F' U. O5 T0 x1 s "(setq *error* m:err m:err nil)"/ `; p5 }6 _) j. s! j }1 S
"(princ))"9 z1 R' w; u$ @* R- v
)))))). p T; z7 d' R' h
cmdliste)
5 ]- w7 P. Q8 `+ C" G$ t1 d nil, p) V# a6 N5 S- i, {! {
)/ `- l. b* |. O' r
& n [4 L% U. l9 Y(defun _autoload (app)
% ]/ E9 G r, \# m/ I; (princ "Auto load ") (princ app) (princ ")") (terpri)
" S6 ^" t* H9 {9 n( Q (load app)
+ y4 m% D; q* j% O9 S; a0 T' j; ~)* ~! g0 W6 ^; o3 k( m# Y, Y$ m0 c
2 q1 _( S5 n; P& N5 q! K- u4 k
(defun _autoarxload (app)9 N9 k' P+ \5 o. A) F6 X% h
; (princ "Auto arxload ") (princ app) (princ ")") (terpri)
$ M, Q' B! ^/ v0 V6 J0 ? (arxload app)
5 B- I' z% \4 w, @# |: d)
$ D. t9 _+ |, ^1 e& m" ~1 F" d5 V$ ]* { x
(defun ai_ffile (app)* z# [% Y' S2 k8 `/ o
(or (findfile (strcat app ".lsp"))- w+ d; q# U2 l9 l& e* u
(findfile (strcat app ".exp"))
: e0 i/ |, l1 r) K( {/ O1 m: z+ B4 @" e (findfile (strcat app ".exe")). J2 s! S. Z! T- t! c
(findfile (strcat app ".arx"))! q% [8 j3 C' g% Z5 h" g
(findfile app)" U# Q% Q" Z2 ^0 o6 ?
)* D' }$ t& H, J# k6 p% `# L
)
; d* t# a, x0 H2 f+ Y( a
* Z1 u' s S3 L2 r7 K(defun ai_nofile (filename)' d5 ]$ D7 S; b3 `1 y- s
(princ
" e# L6 x7 o& V$ _ (strcat "\nThe file ", u: {, _: j5 t% ~- y
filename
3 G& J) A2 i$ @% B; H; z3 f "(.lsp/.exe/.arx) was not found in your search path folders."
; E% b8 ]4 }5 N )
H9 a) _% \/ z ) P' P! }& \, J% U
(princ "\nCheck the installation of the support files and try again.")) D7 W6 z: x1 k/ h% Z Z, f. G& P
(princ)
. Z4 \' b4 t- D S5 j)
, {1 ^+ N3 u2 C. U
4 r. N: t1 @7 @
: n! H& R0 ?- ?4 H3 G;;;===== AutoLoad LISP Applications =====
. f$ ^- B; m0 _; r; Set help for those apps with a command line interface5 Y+ B; F0 A' u; ~4 Z( }* s
0 o f* l, [% O2 b8 p# } G
(autoload "edge" '("edge"))
. T4 J' T7 N, F(setfunhelp "C:edge" "" "edge")
0 s! I/ P1 U9 [. y1 u$ r l# g# K: T' ~4 V" h& J
(autoload "filter" '("filter " "filter"))2 h# _1 R S0 o$ Q
+ i0 d K, Q! G& m1 G% \- M0 E
(autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
2 m# C# G6 u- M U( y, m "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
0 i* r% _2 c5 A# a' o- x+ ?2 ~)
4 e i7 b* n, C0 f8 v$ R, o( U(setfunhelp "C:3d" "" "3d")% k# }: ~. X$ X8 f+ C
(setfunhelp "C:ai_box" "" "3d_box")
8 S/ M" x: l4 y(setfunhelp "C:ai_pyramid" "" "3d_pyramid")( d: y. Y5 y; d4 R& B) j L Z+ W* C
(setfunhelp "C:ai__wedge" "" "3d_wedge")
# ? p9 j# U. j1 j; z8 x(setfunhelp "C:ai_dome" "" "3d_dome")- c0 M+ l) ~/ U8 J- W8 }8 P3 ~3 c
(setfunhelp "C:ai_mesh" "" "3d_mesh")8 l s( v4 N( N' C! Q8 u8 }6 F
(setfunhelp "C:ai_sphere" "" "3d_sphere")
) \. _2 j. c; i+ e& g, K$ Z# V3 p(setfunhelp "C:ai_cone" "" "3d_cone")
% J- n! W4 A! z! O" i# n4 }(setfunhelp "C:ai_torus" "" "3d_torus")
3 Q3 @' d, w7 v W7 Y(setfunhelp "C:ai_dish" "" "3d_dish")
" t/ @/ [$ I, d; I$ P5 t/ m6 o
- A% z& i9 M/ h& [& D(autoload "3darray" '("3darray"))) O$ |4 m, i" ~# s0 t& W# f
(setfunhelp "C:3darray" "" "3darray"); u9 ~4 q6 U' o
% w; `; ^4 ~- s(autoload "ddvpoint" '("ddvpoint"))
: A. J/ M0 }, ]& Q: T. ?
$ Y; h3 H5 e+ b$ L9 i(autoload "mvsetup" '("mvsetup"))1 w" F1 _0 v' s9 L' I
(setfunhelp "C:mvsetup" "" "mvsetup")
0 s/ Z" U0 M6 _& A1 F: j* ~
: y, @3 R% j" l# ?9 O; u Q/ p(autoload "ddptype" '("ddptype"))# G' z/ y2 R) _
, C4 G" ?- T" I/ f3 V
(autoload "attredef" '("attredef"))
+ J) J0 E5 }2 t* m$ a- D(setfunhelp "C:attredef" "" "attredef")7 N/ D1 B. }- n% J4 I8 {
! v9 [& @+ g4 [) S1 p9 B% H8 l# `8 r(autoload "xplode" '("xp" "xplode"))8 c; \- V& N/ Y5 f; j- U+ N) v
(setfunhelp "C:xplode" "" "xplode"): O9 I1 N9 G! Y% R5 a0 T. j4 U, ~
4 v0 G1 ^- I0 t( i(autoload "tutorial" '("tutdemo" "tutclear"
5 o! y( j* r, s7 \6 ^: f% k4 X "tutdemo" " ]4 {* ?3 A% I- k6 j! B* F
"tutclear"))
; Q: d4 }7 i8 R" P! T0 U1 g8 R( @! ]2 k. p( r# r7 t
;;;===== AutoArxLoad Arx Applications =====8 R( H: ]; @" ~7 W- u
# F: D7 P9 L# ], R2 \4 b( G+ c(autoarxload "geomcal" '("cal" "cal"))- a) z ~0 L9 V! d
$ `6 }" N' w- q, |
(autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
1 n3 V% ]6 I8 C( s. I9 f "mirror3d" "rotate3d" 6 T% P" F' m- a& X1 }
"align"))
6 \2 R2 X; E3 A' }* ]7 A/ ]: W7 o/ H# c
# e3 M6 o) W( T$ {$ R7 Y: };;; ===== Double byte character handling functions =====
0 A& E: c( i, M# E, `9 X$ @$ m/ r( J# W) L( M# U- V
(defun is_lead_byte(code)' n( G# G0 l/ \
(setq asia_cd (getvar "dwgcodepage"))
, W& h6 o1 F& z3 \0 G (cond
, P0 k: `% }; [+ s ( (or (= asia_cd "dos932")$ H$ y7 {8 h! J; x R
(= asia_cd "ANSI_932")( Z6 P. {( J5 C. E& v* F
)6 m @$ P( ^7 I% d7 |! V
(or (and (<= 129 code) (<= code 159))' u, z7 T) [( O* Q. _* Y) P7 g
(and (<= 224 code) (<= code 252))
0 R9 C2 {1 N& a' t T1 m )
9 L g u" y' L+ s9 X) K )
8 p# |0 p2 s/ u9 Y" M( K ( (or (= asia_cd "big5")6 S/ v* t! ]6 F6 Q7 ^
(= asia_cd "ANSI_950")- S5 Q; @* z- [8 X
). }) h. R% }# ^' ~% R3 @% }/ W
(and (<= 129 code) (<= code 254))
; G" ~- {6 W: U% n )
% E( i7 }/ v8 |5 \7 a1 i ( (or (= asia_cd "gb2312"). q, \! B8 @7 G+ ~
(= asia_cd "ANSI_936")( i( Y- p* m8 D# \; n* T
)
9 j& h& x( N) Q6 E4 X/ w3 V (and (<= 161 code) (<= code 254))" Z% a, {9 y* E6 t% }5 d
)
( Z F6 g& e# L) [. y1 b/ F ( (or (= asia_cd "johab")9 ~% u6 y3 } H- F6 w
(= asia_cd "ANSI_1361")+ c' V' l% P3 F6 u' V8 E/ |
)
, _; ^. P9 d, ~/ O# R/ C2 u3 f+ e/ o (and (<= 132 code) (<= code 211))& |0 k3 r( M- }% H; M- g
)
; w4 E( h( x+ d ( (or (= asia_cd "ksc5601")
. b7 G( J! v5 ], s1 i8 @ (= asia_cd "ANSI_949")
7 k; Y5 t. s+ |/ C. K/ H" r3 ? )
. |+ H. ^" ^, s" M9 D (and (<= 129 code) (<= code 254))
) @3 {) q ^( E$ X7 e )
6 u- W$ Q- ], j- x" ]- k2 ] )& B+ E& r1 X7 ]# U- p3 y) W# P
)
, C$ ~! Q) d! T5 i% g. i7 H Q' s9 ?
- B' S/ q& W+ b6 N% `;;; ====================================================) d( N: D# n* r! H
) V, x6 G5 V9 C' O. ]/ X4 @# O: ?
8 a P0 e2 M6 a5 b$ D
;;;
5 Z5 v2 b3 [6 W- H" M;;; FITSTR2LEN
- R) F2 d4 j. q$ Q( l1 |8 ^: f;;;4 W8 L1 M; j m' t9 \6 ~7 H0 k
;;; Truncates the given string to the given length. 2 Z% t0 \% D7 e+ h, ]" k
;;; This function should be used to fit symbol table names, that' b2 _7 t' T" r. {, ?, K% I0 S
;;; may turn into \U+ sequences into a given size to be displayed$ c! E9 p' Q& U$ T, l) t( Z* U+ U
;;; inside a dialog box.
0 G8 }2 F0 X: R* a& O* W+ e;;;* Q" `, k* K5 `* n# D
;;; Ex: the following string:
8 u$ y+ A9 m. B9 Q( V+ n3 B3 x3 a;;;
7 N& M8 R- a6 ]) G( j0 G, H7 U;;; "This is a long string that will not fit into a 32 character static text box."
0 Y. ]- i; z& `+ P1 \5 G;;; M0 E7 m0 |( g; u
;;; would display as a 32 character long string as follows:: t9 i0 H; M( v
;;;
+ a) L: S6 E6 O;;; "This is a long...tatic text box."
2 x/ S9 e! K* L5 l3 S# v;;;
% M4 P% Z1 s; @8 F# F/ D0 Z+ \( M! T3 A
(defun fitstr2len (str1 maxlen)
2 P& R& g. k8 J, q- l2 U% O
/ \7 W Y$ o z) C ;;; initialize internals
: h3 E9 a e. T% I" c (setq tmpstr str1)% c' e+ r* X! \( P
(setq len (strlen tmpstr))) O# ]0 M5 G4 ~& I' q0 A4 O8 p
1 A+ v: G6 {/ t0 d (if (> len maxlen) 1 w- y' Z6 V3 T/ l' Q
(progn3 I% B7 b: d7 y' S: [. s8 q
(setq maxlen2 (/ maxlen 2))3 v% z- d O$ Z" E$ [5 ~, a$ Q% t
(if (> maxlen (* maxlen2 2))
. U6 E0 b9 Y* Q) L; D, k+ L (setq maxlen2 (- maxlen2 1))0 n7 K; b: r: k/ a, l
)
8 y: X2 [) C& N$ G: Y$ d (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
L& I/ z( Z3 N: \) S J (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
6 @8 N3 I( h/ U) f l1 C2 ? (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))( y, K' P' I T/ R) J0 t
)# G* m" H) n, t6 E
(if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
8 G/ j4 @! V! M; ? (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
0 ~1 j/ f% H' R4 i( m o9 U0 [9 p (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))% H0 R9 M0 J) _. W
)
; X8 m$ a% N2 u- U2 q5 Y; d) V (setq str2 (strcat tmpstr1 "..." tmpstr2))
* G% B& _! c" `. P ) ;;; progn b" \ F3 y6 b9 _8 ?5 C
(setq str2 (strcat tmpstr))1 w2 T6 c! b: W6 n; T1 D
) ;;; if; j! K% U6 p. v1 l7 ~
) ;;; defun' Y: A( ?- G& t J. n
+ Y2 S, ^5 R* |
2 b/ {; F& ?8 U+ C+ g! W
;;;0 H- l C5 ^/ U% d+ c
;;; If the first object in a selection set has an attached URL6 J& L/ w' e/ i: r( L( P
;;; Then launch browser and point to the URL.) G7 B# n' F) L/ A+ Y7 X, T& p
;;; Called by the Grips Cursor Menu8 I. C! t5 C& d9 O9 X
;;;; n+ L+ f: Y/ {
# c; F! ~* G# o8 U- u
(defun C:gotourl ( / ssurl url i)& P' m% x# y, E# H8 U" G
(setq m:err *error* *error* *merrmsg* i 0)( e2 Q( B0 d3 n+ W
- W1 r# L8 N7 ^! {& _; E- H: n; if some objects are not already pickfirst selected,
) ?# J$ Y/ Y0 x1 m6 u) q; then allow objects to be selected
" ~5 ] M6 |2 u+ b% g9 Y" _2 g; O
. X5 ^/ ^9 f, l. U* q3 [ (if (not (setq ssurl (ssget "_I")))
. U: V; U7 [2 B! r' a0 K (setq ssurl (ssget))
! g3 L% w; k" q& b; g D3 o* P( v )
1 d" g" L/ h6 A4 z! C5 P7 C I% O+ B' w1 `2 u9 d
; if geturl LISP command not found then load arx application1 C; i/ {( f+ ~' M+ \
. b( |% n u6 n3 P (if (/= (type geturl) 'EXRXSUBR)) F1 i" T3 S: H7 K7 w
(arxload "dwfout")& v. M) l5 H/ A s& l$ V }
)* c; B) n% l; t9 V& O* C5 r
2 L3 h) t" [6 f6 U- k( P- Y7 T
; Search list for first object with an URL
- H, c6 G; i' k7 f9 V5 s/ N (while (and (= url nil) (< i (sslength ssurl)))' w" u7 B4 Z4 f- \
(setq url (geturl (ssname ssurl i))4 s2 `/ ~) i' C) q, y
i (1+ i))
- a. n9 ?% k: q: r )
& {" e# A5 v9 q) Q. N5 D9 y" c5 D l/ ?% c3 q) ~ J
; If an URL has be found, open browser and point to URL
6 s- `$ R7 U5 X; G P: _3 F (if (= url nil)* Q& a9 F5 T1 ?
(alert "No Universal Resource Locator associated with the object.")
" Q+ {( L; M2 Q$ \0 e5 W4 T (command "_.browser" url)0 v" g- S9 J. p6 h* i
)
! P- \ h& u" H( h$ F8 Q& D( R' O0 G9 p) c: \! o7 u) X
(setq *error* m:err m:err nil)
4 T8 I+ K7 k, o( x (princ) Q9 z- X* T: M6 Y! f% J/ B; `
6 v8 H& d% }4 n* h: j+ q)7 A* h! U1 h8 s
/ w8 h W3 M' t: V5 a" M4 b
;; Used by the import dialog to silently load a 3ds file% k1 ?* X" X* M. U
(defun import3ds (filename / filedia_old render)% q0 V. U L- d2 W# L# c; u" Z: |8 J
;; Load Render if not loaded
) t- D# H4 o2 v% B9 r* I (setq render (findfile "acRender.arx"))
, C( s2 C4 }. O2 L6 D4 Y w+ t (if render
% @# f" o# M' n! F7 {8 I% C8 F (verify_arxapp_loaded render)
! u9 |& b7 ^4 @+ j: l+ F: F (quit)
2 C! x9 r" `/ d ); K" g; _: u6 f: `7 ?
6 E$ x* l7 c/ t ;; Save current filedia & cmdecho setting.
& K* N2 k4 p3 k( y8 T: v& u- u (setq filedia-save (getvar "FILEDIA"))
. _6 n7 O2 o9 Q: Y; p0 ]! i. m: P( B (setq cmdecho-save (getvar "CMDECHO"))8 ^5 O0 S* H9 X" G; o8 f7 B
(setvar "FILEDIA" 0)
. t% w+ z' s" ]: C% `1 D; o (setvar "CMDECHO" 0)
1 h% i ^1 } c: {0 z5 d! G( R
+ B- S: x6 @$ a+ P ;; Call 3DSIN and pass in filename.! p9 v0 h, }/ }6 y* @
(c:3dsin 1 filename)
& i) S. ]& a) x2 r) Y+ C4 O: f% a
$ P3 X. C, g2 y' h) I2 q ;; Reset filedia & cmdecho9 j) u! [- T" }
(setvar "FILEDIA" filedia-save)
' A% F: f, W; r( v3 i, t (setvar "CMDECHO" cmdecho-save)6 w; D" H# ?/ Z
(princ). a" `; K- |% Y9 r ^: E' \/ r
)* f1 U4 h, I( o* b+ Z7 {* H
# I) n+ u& T, F0 [7 M% B* v! | g4 V
;;;=== Menu Functions ======================================5 r+ @. M- s& z$ I
* w! g* t, @! _4 X(defun ai_rootmenus ()
: E- B$ Y* a. m& C- c7 D+ N (setq T_MENU 0)! Z1 _$ h% @: t, }
(menucmd "S=S")# x% Y: d' D! S! F! z( V: u$ k
(menucmd "S=ACAD.S")
6 L) `# b! k: H! E" _ (princ)! x& I/ _3 c' I) _
)' j$ Q" R$ o k
0 }: K' H2 i9 z
(defun c:ai_fms ( / fmsa fmsb)+ U4 o- S! t m) m6 o
(setq m:err *error* *error* *merr*)
. y j, t& R# y (ai_undo_push)# j9 S% Z$ I7 K) }6 D
(if (getvar "TILEMODE") (setvar "TILEMODE" 0))
1 K2 S0 S4 C0 R* T. D (setq fmsa (vports) fmsb (nth 0 fmsa))# ~! q1 e0 y F5 r! x& Y% R
(if (member 1 fmsb)
& b5 y. \1 B3 O+ I: ]5 ` (if (> (length fmsa) 1)
" T6 t5 B+ A# B2 B6 E* L (command "_.mspace")2 v! g6 w/ w4 ?( R/ S: U
(progn
/ M( a1 K1 W; y2 h) b" w k (ai_sysvar '("cmdecho" . 1))& D W+ Z& l, Z; k6 m# \. R
(command "_.mview")
5 [2 y$ C. L/ A, J- J$ ]2 e0 ]$ Y (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
3 s0 N& J: Z: E9 U$ c+ ? (command pause)
; }9 H% c. t& r* o )5 v) a9 e, G# |! G
(ai_sysvar NIL)* P3 e+ q' H( h% j/ X3 i! ]1 u
(command "_.mspace")
9 z9 h! r7 v) O% s% z )7 h% p/ u) P( X1 [' \" g
)
5 c+ ] U- s: ?- a ); B. M0 F G/ C; L2 R
(ai_undo_pop)
* W6 r! g1 l, D9 @ (setq *error* m:err m:err nil)
, Q' k; \# t9 Z Y (princ)
; |/ q! @3 R( o i& L! Z* C e)) o7 K: J/ d0 F" E3 r& H
) {& }8 p* \# g; E' P3 ]5 r+ I E, e
(defun ai_onoff (var)
* \9 T% S5 [9 E. A( T4 c (setvar var (abs (1- (getvar var)))), M1 ~' y# n: G6 x! n
(princ)7 g/ n g3 M' n: x8 S. K" f, v; `
)/ k3 F' @, J T/ G. v
# M6 K, E, U8 J/ Q n r: I
;;; go to paper space
1 R" a1 ~2 J& f) L; r$ G(defun c:ai_pspace ()
/ q6 a) J3 O+ H' \" d8 e (ai_undo_push)5 `) j2 s, N8 d5 d+ } r
(if (/= 0 (getvar "tilemode"))
0 e1 C0 [6 t; i* b9 X (command "_.tilemode" 0)
! k$ L8 C) s, ?, ?& }8 o )7 W N/ s0 u) W
(if (/= 1 (getvar "cvport"))- ^: f: o" [1 ]. Z
(command "_.pspace")
: `$ ?9 G# f$ I) Z7 m4 g) t- R9 ? )1 e ?# o: v _0 n6 E8 m$ k/ M
(ai_undo_pop)4 {% H5 u m) c3 T& X
(princ)' Z, I% C# X+ p
)
. ^. }. b' y7 O' S; L1 j/ A) p* ^# D+ M. i
;;; go to tilemode 1
7 U5 g% q/ a3 ~+ ~(defun c:ai_tilemode1 ()
# _& j" Q2 q9 R (ai_undo_push)
/ T3 G8 e! r- I1 O0 L (if (/= 1 (getvar "tilemode"))
5 z' @- W$ F: A, B# ?1 b( n (command "_.tilemode" 1)
5 P. P: m1 ^1 S )3 m- W1 L$ Q+ R* ] ~. p: S4 o
(ai_undo_pop)" q* Y4 M2 I: Q l
(princ)
9 f2 R$ e) E- P' K)
2 v& P6 I! F) |
) N" U! Y: k3 b) ]/ o;;; Pop menu Draw/ Dim/ Align Text/ Centered
( l2 s4 Q/ M" N7 k5 m: }- O3 u;;; Toolbar Dimensions/ Align Text/ Centered! v1 O5 x: `& K1 D
3 @. A h- D4 j9 J" F" t(defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
# |) d ^: f& G7 v1 }) P1 F (setq ai_sysvar (getvar "cmdecho"))
# n- G/ l5 E" V9 z1 a; v9 e (setvar "cmdecho" 0)
1 g( G% R( z! H: Q6 h# V (cond
/ N% j, M: r% a. B- S$ T+ ?, F! r ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))! A8 _% x8 @, G4 @- t8 p; \
(command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
1 X. q) `) ^3 G( Y0 C1 g "_.dimtedit" ai_dim_ss "_h")
3 M. P6 r; A% P, t )
- w( {/ p9 t1 \7 F6 | (T nil)
) \+ H2 ~/ j) T. d0 o. _6 { )
+ W1 d+ ]6 X8 X* ?0 N (setvar "cmdecho" ai_sysvar)5 ]: m7 ~# Y; j% V
(princ)
, @( e' V3 D& z; b( h) j)% Q3 G% l* \. N
) p6 ?9 m' C2 D3 A" t8 A;;; Shortcut menu for Dimension Text Above
. H. H3 \+ C6 R$ f" B! f/ z
N$ V4 }. d2 c. J0 j5 R9 ~(defun c:ai_dim_textabove (/ ss)' G2 v) j |# G1 b. |
(ai_sysvar '("cmdecho" . 0))
2 E: \: x3 s0 X+ n' O; A' u (if (setq ss (ssget "_I"))- o1 v% @1 L; [* h& c
(command "_.dimoverride" "_dimtad" 3 "" ss "")
1 V: n- v% {2 ~6 p" _3 T9 k+ v (if (setq ss (ssget))
) _/ O3 y. H. P ? c+ ] (command "_.dimoverride" "_dimtad" 3 "" ss "")
& O# {+ ^, h; R! _ )
: W9 D/ g, Q% A$ X( R5 t" l )
7 m% C) {7 X. M8 W; P- o( X7 k (ai_sysvar NIL)% D5 m5 C) A) f# B# F1 {2 ]
(princ)
; b% n! g! Z4 h)$ G* W3 f% e* R7 _1 {# f, {
1 L" ?; A, K% t q* x( h: Z. ~;;; Shortcut menu for Dimension Text Center
1 n% b \' ?1 R# `
$ F) L+ d4 c; @' s z" f; b(defun c:ai_dim_textcenter (/ ss)
% k. W, l; U4 @" }8 ~/ e& C, Q (ai_sysvar '("cmdecho" . 0))
: ?* T7 U% ?; Q# \( v# l (if (setq ss (ssget "_I"))
/ d$ o3 V9 y! r/ l4 }! U J. X: ~ (command "_.dimoverride" "_dimtad" 0 "" ss "")( U; E, F" J7 L# c2 a. H* g! X
(if (setq ss (ssget))
0 Q1 s q% }5 q4 e (command "_.dimoverride" "_dimtad" 0 "" ss "")
" M- F: e2 h& ?0 l. C, n )
) a/ R% v5 r# ^ N2 g- Z4 t )
0 R$ B1 N0 [( e! r5 f (ai_sysvar NIL)" y8 F% f# o1 S2 U+ U7 P0 j
(princ)" E/ C; L6 t J, W. F3 x
)
7 T7 J$ l( T2 O. m( d' [6 X) P
/ N: H1 U/ u6 g' h;;; Shortcut menu for Dimension Text Home
7 R! f/ y; C( O- T0 M2 a2 T5 F2 V
. n$ E* z7 H) r% W$ j! U(defun c:ai_dim_texthome (/ ss)
# N- |1 b5 `8 G2 L# n1 s) | (ai_sysvar '("cmdecho" . 0))
, J; k* b3 g$ ]5 Z (if (setq ss (ssget "_I"))! `2 R+ \' L6 j
(command "_.dimedit" "_h")
0 M" F# N" p$ b; G5 A- f (if (setq ss (ssget))
$ k) U) V+ B$ h& v (command "_.dimedit" "_h" ss)% m: O5 o3 m6 W& N$ l1 a2 v- j
)
& `8 i; n# j6 S" P ); ~' R: H1 o2 n" \& a9 i9 _
(ai_sysvar NIL)- P" J1 _, N2 ?' e- m8 v4 _9 ?5 z
(princ)
3 _" G0 k3 Y$ Q& K, w)8 P8 s) E4 v' B$ @, z. B
5 x' C6 |: @; d( }' F0 e- q8 b
$ `! A0 J) J' N' ]( U$ F! z5 T;;; Screen menu item for CIRCLE TaTaTan option.
/ i1 i6 ?0 Y5 N; ^' C$ b;;; first, get points on entities
2 C& m' O1 S- U3 j(defun ai_circtanstart()1 {( V' t& `2 t4 |
(setq m:err *error* *error* *merr*)6 u% j9 G% U& O6 Y. \# k9 I
(ai_sysvar 9 L' }" r- J, M3 y
(list '("cmdecho" . 0)
% V6 B/ C9 X/ D: A. o ;; make sure _tan pick for CIRCLE gets same entity
/ q0 M3 w% \2 j (cons "aperture" (getvar "pickbox")) Q6 m5 n N8 R1 C/ k! D
)8 H5 g0 s: B* Y+ O5 }# Z3 B
)
; y5 G( P8 j. P) U3 [. k% h& Y ;; prompts are the same as CIRCLE/TTR command option
" }7 A1 w, M# o0 d; v (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
1 S5 m4 @; C! Z5 x% v2 h! K4 r (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))& g, |: d. ^) G- {9 ]
(setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil)): g% p% w, \4 O* G2 U' q( O& e! q1 V
) Z1 S) @% f0 b: p0 W1 @$ u* J$ `
;;; Command-line version/ z: m7 P" ?: L$ Y
(defun c:ai_circtan (/ pt1 pt2 pt3)
: W% V3 Q( V! c4 Z) @& m- Z (ai_circtanstart)
7 D, w1 c, z9 ]8 F; v' ?# w2 I/ D2 g6 I. M
(ai_sysvar '("osmode" . 256))2 I+ K$ _9 U' M$ ]. r* h9 f
(command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
9 }. D) g% H N& j( v3 V( v! [) N( ?0 ?
(ai_sysvar nil)- X9 E- s. V. p0 ^% n4 t6 I4 T
(setq *error* m:err m:err nil)3 _( g. I2 l5 K4 @6 b* p
(princ)/ ?1 W4 ^+ r9 m1 K* g
)
* i& I! I! V7 [;;; Use this if CMDNAMES == CIRCLE( b9 X" {6 p9 A
(defun ai_circtan (/ pt1 pt2 pt3)9 h2 M4 Z( b; Q/ t: J4 C2 a' w/ `
(ai_circtanstart)! q: A: d& [1 J- l
# F# {# ~' A X3 S (ai_sysvar '("osmode" . 256))& f* ]# O! k# v# C- U
(command "_3p" pt1 pt2 pt3)! P8 s* p5 @, o
2 y- Z9 } m0 |, p, l
(ai_sysvar nil)+ \; n) R/ M9 u6 |% A7 S
(setq *error* m:err m:err nil)& x1 _ A( w0 B4 g. M* X
(princ)
1 f4 l- P8 b3 r+ `: X% H)
6 L% c( r: y, Q4 P G) Z: u* @; y' b0 [
5 j' V+ e$ g/ x/ c- S9 T; `" J$ _( x# W8 u2 O% N# [
;;; Shortcut menu Deselect All item.' M1 ^0 i5 ?. P4 |0 D
! Y3 t& U b9 Y
(defun ai_deselect ()
$ R7 l2 \# V. f8 ?# H (if (= (getvar "cmdecho") 0) ;start if$ W# g+ ~! _0 G& W' G. N0 M. Y
(command "_.select" "_r" "_all" "")% @: e9 l {! V% }6 b
(progn ;start progn for cmdecho 1. D& h6 \! C/ M( x& u5 u
(setvar "cmdecho" 0)
9 j+ V1 l8 C, R [; K (command "_.select" "_r" "_all" "")" y2 h7 q" _/ F* w2 `: J. @
(setvar "cmdecho" 1)3 N% g% C' ?* W* d/ W
) ;end progn for cmdecho 1# X l, p x3 r1 F9 |( G! M
) ;end if& e- @9 x4 x8 [2 w) `
(terpri)9 C3 l: ?$ ~: S
(prompt "Everything has been deselected")
$ r( [7 i# ]1 k* e) z5 g (princ)9 z# Y- G9 [. l* D1 H" s& b# h
), q7 s! W( u- b" z; e# R1 E
/ S% }$ ~- e5 I. M: E# a
;;; Command version of ai_deselect to be called from the CUI# u9 ~: @+ J7 }5 Y
;;; so it gets properly recorded by the Action Recorder
# u2 d- h6 G6 U2 l8 V. g& ?;;;
- M8 J& C7 e; S7 f7 C! s, r6 J(defun c:ai_deselect ()
- ~1 _4 k; u& I$ q$ E( m3 M (ai_deselect)
9 p3 t! h( o! w( U (princ)0 _5 {. [. F4 N; M3 P1 u+ K! P0 E
)
+ s8 R( n" A. a/ ]: _
c1 U/ f$ P5 j;;;
# D: a7 b: ^3 \/ k6 N v;;; Enable Draworder to be called from a menu
6 D7 D: N0 D0 K* [;;; Checks for Pickfirst selected objects6 k3 I* ~" Q+ H+ G0 r
;;;
, X0 r& d" Z: M2 ]8 ?" H \* ]& w" a/ a5 ~
(defun ai_draworder (option / ss )" v9 {! T4 y$ c/ N+ ~' D
* Z$ t4 [+ r3 H5 p) ]; m
(setq m:err *error* *error* *merr*)
% n- z- t7 P; p5 J" a (ai_sysvar '("cmdecho" . 0))4 e: k' p& \3 Z8 K0 q
! l* l0 m2 J6 ]) O7 f) A (if (setq ss (ssget "_I"))
5 D: p" g* A8 T" z9 T6 z (command "_.draworder" option). O n2 j' ]( J" M C/ }- L P
(if (setq ss (ssget))
( o9 K4 c' k8 K0 i& C (command "_.draworder" ss "" option)
( [) q; x' @/ t2 G )
b5 h g5 K$ Q, I( n; K )( @: p' d# @, c/ E
(ai_sysvar NIL)
' Q' H' R; G6 q (setq *error* m:err m:err nil)' y) {) R6 |& r/ _# {: Y
3 P0 h0 c0 Q; N1 y& u
(princ)
) f/ C+ w. U4 W: t9 d)
1 j& S" p7 ]% ^+ c, \) X" N1 [2 P/ A" W
;;; Command version of ai_draworder to be called from the CUI2 `) n" m5 t% n2 Z" w3 c1 X
;;; so it gets properly recorded by the Action Recorder* e- G0 G, W$ F5 V3 i* T& D
;;;6 ~3 E7 H. ^4 W' g+ n9 T, A
(defun c:ai_draworder ()
+ B: J+ c6 S0 H (initget "Above Under Front Back")
4 W% ]0 q5 V% c! O8 z (ai_draworder (strcat "_" (getkword)))
7 C. t3 C0 W1 k5 D: v" \ (princ)8 Z- ]7 Y) f! A0 G' y# g
)
- [! T' g! V0 |6 r2 c+ N( j2 e0 d4 n, h5 }, f9 o: k
(defun c:vlisp ()
' {" }, X3 r) |& d (if (/= nil c:vlide) (c:vlide))
, h Y! K% \! ^" M6 m/ s)! U. u8 \4 V* [( h) O8 c
4 \4 O1 t6 n/ l- i7 e
(princ "loaded.")
8 T( q% K2 x+ T/ P! X9 g( b
2 r8 u( a+ X/ P& k+ ]3 E;; Silent load.' N q3 ?* A4 S5 W0 u7 Q+ G" n
(princ)
6 d$ j/ m( z' l. }0 E/ {7 V6 y$ |$ e3 v6 a L4 N, d
4 B: p) u- ?9 B# L) J/ a
; M* F' c& e9 w4 e
;;;----------------------------------------------------------------------------
# h0 \) T# i: ?) I2 [;;;
! R7 Z3 ]" H$ Q9 d Z;;; DDCHPROP.LSP Version 0.5
0 \- N7 g& g- h( b;;;; A+ R: M9 U" o: a! Z
;;; Copyright (C) 1991-1993 by Autodesk, Inc.# B( k9 s5 C. S0 @
;;;+ Y0 C. k. e& Y/ @4 G* X
;;; Permission to use, copy, modify, and distribute this software
/ h# b0 l" E6 P/ u! ~9 K;;; for any purpose and without fee is hereby granted, provided
$ `, ?3 H5 A. H;;; that the above copyright notice appears in all copies and that
! |& V+ P/ e; O0 B/ q;;; both that copyright notice and this permission notice appear in8 ?4 U; G" b0 l R; H: I1 j" W
;;; all supporting documentation.. r; Z }* Y+ |0 X6 d
;;;% X. T- R4 ]: a: g% Z
;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
& m/ R6 D/ e8 f5 C2 P;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
6 _& i' e7 V. K/ I: `+ {/ L;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.7 r3 b4 W- a0 x6 V9 E% g
;;;
: Z( J. ~% d+ G6 D' J3 [& n" w;;; 2 February 1992$ F: i# Y4 b( n- Y' V) ~# O* d
;;;
% `: L- I9 d; C' n8 }" J4 e+ p;;;----------------------------------------------------------------------------
e+ u7 A( p6 x0 F1 g: r- F# s;;; DESCRIPTION
3 ^% M/ n8 W0 {- c2 I4 Z;;;----------------------------------------------------------------------------* O+ I$ X. G: [! M2 `
;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
+ _; u& {$ i3 m+ ~. m;;;3 ?, N q4 v( Y' F# S
;;; The command looks similar to DDEMODES. The main dialogue has an image
, L! ?7 K* |4 J0 Y! N" m;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). ; F8 p; s; w1 y
;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. ! s. _+ q3 ]+ c2 R$ d
;;; The dialogues are all defined in the DDCHPROP.DCL file.
/ _. d: [- B+ x6 c' `;;;
, n x) o1 g! o0 R4 w \3 i3 z;;;
$ M* ?5 O ?3 x/ O;;;----------------------------------------------------------------------------
$ Q# [- I9 ~) S4 q;;;----------------------------------------------------------------------------
6 |6 C- b1 y. g; Z; Z$ S+ M;;; Prefixes in command and keyword strings:
% V, a/ m9 E ]/ r$ c;;; "." specifies the built-in AutoCAD command in case it has been ) i3 ^- x K% ^
;;; redefined.
+ i/ @0 L" A/ |: [+ s) |5 f" R;;; "_" denotes an AutoCAD command or keyword in the native language+ b# ^2 @( k9 b3 D9 U$ D# R- r
;;; version, English.2 e- z0 A I$ p9 q1 I
;;;----------------------------------------------------------------------------- F4 W8 W M# p8 B, E
;;;! Y5 b) E8 P/ {, p$ z
;;;/ K2 K' K. F/ o! [' w" T
;;; ===========================================================================" D9 R+ h+ [2 h1 N1 G! f
;;; ===================== load-time error checking ============================
* }/ U0 B% W: J" G;;;
% `9 ]3 N7 M: b1 ]- a3 t K* @5 b% ^. J# @' l# ~
(defun ai_abort (app msg)
) G$ C W* f( F7 G/ _5 F+ q; K (defun *error* (s)
) \! E2 [3 M# Q9 _ (if old_error (setq *error* old_error))
0 i, I& }$ M' f* R# W4 k1 d d (princ)
9 @3 B* t8 [3 I! X$ F/ m# U )3 D0 M) [: O& ` J: L7 `$ l
(if msg( Z) T3 Y: B( o9 e$ O
(alert (strcat " Application error: "
3 I* v* f1 E8 Z: ~, ^/ c app
d: b4 @% X4 ?$ ^, g' f5 U$ w/ p " \n\n ") W6 f( X* N! T1 m& u
msg
7 |( N7 e* _( b* w0 @7 S, ~0 y0 o; V " \n"
: m; X) e- o: u1 U+ |7 z+ @, M9 T, S )2 O2 `. [# ]% k% L
)
$ ^7 b. c1 T" i' j )5 Z- \3 M+ l$ i$ g% S
(exit)$ A. @) B3 Y2 l6 O3 z5 i
)8 G7 x1 y/ `0 f5 h G
, w" {5 R2 M* J2 I;;; Check to see if AI_UTILS is loaded, If not, try to find it," E+ T1 |2 y% V8 `0 i
;;; and then try to load it.
- E, m% A3 X, P1 M: _3 f& a, u;;;4 H# c6 B3 V- U
;;; If it can't be found or it can't be loaded, then abort the
% r M9 l6 J4 ]) e, w;;; loading of this file immediately, preserving the (autoload)' f4 R3 }% W* p3 r: V) @
;;; stub function. R% [7 A0 V: T% P4 W! A
, M7 V3 A) R4 b; D. i8 v4 s (cond( l9 N) G- m2 Q6 X4 I3 d
( (and ai_dcl (listp ai_dcl))) ; it's already loaded.. Y# u, f- A* R3 L# u' _
5 `" r( Q- ~' Y8 [ ( (not (findfile "ai_utils.lsp")) ; find it2 X- c" `# O" T; ^5 `, _! g
(ai_abort "DDCHPROP"5 l& Q; m8 x! n8 C
(strcat "Can't locate file AI_UTILS.LSP."
6 C$ F, \+ ~5 t" d- V/ ` "\n Check support directory.")))
7 o7 ]# C) s) i4 ~6 }4 [* p
9 R8 |, C# [- I ( (eq "failed" (load "ai_utils" "failed")) ; load it
1 M% i; ~1 P" i2 h! I (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
$ l9 B+ [5 I& ^9 O )+ C5 s- `1 Z% Y8 y8 Y6 x: l
5 [- ?; V* l: w% O, K y5 w( Z1 s (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
0 {4 o8 \( p) r0 ] @ (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
+ L. }( F2 b' w! Z4 h ) ; ai_abort's alert box dialog.
9 t5 f0 `6 J2 Z. z
) D4 j1 E. d' [9 M) V; `; S;;; ==================== end load-time operations ===========================4 ^* r% X9 ]7 @3 m
3 U. c* Y8 ^, b# g$ ^0 V" x;;; Initialize program subroutines and variables.
6 T+ w' Z. e$ |: u/ o
) q0 ~( j) l/ x5 N% z# A(defun ddchprop_init ()9 k3 C: S: z" z( Q9 s- k8 z
" T( O, ~8 g/ x
;;
$ S- l6 V7 c) k4 g. g( e# q! O ;; Define buttons and set values in CHPROP dialogue box
7 p7 V* ]2 c5 k" @$ E4 u* z ;;0 P* C" {" x+ ?+ |
(defun call_chp ()
5 [$ `7 M' E# i* v3 [* [ (if (not (new_dialog "ch_prop" dcl_id)) (exit))5 d. @4 d8 y$ c- e
(set_tile "error" "")
2 a- R* n" I% [# J, H( A- z |1 X3 U ;; Set initial dialogue tile values
$ o2 ^* S( |) T3 @ @ (set_col_tile)
. @/ n: l! W0 m# b (if (= lay-idx nil)
0 d/ i" [+ I- |! f0 h) J7 p @ (set_tile "t_layer" "Varies")+ y5 w; x {1 o
(set_tile "t_layer" (nth lay-idx laynmlst))
, f% g5 r) p! K7 f0 O8 z6 [1 W )( ^, V' {7 p4 D5 J9 l( h+ ?
(cond # i5 n) a. _. F+ i5 l
((= lt-idx nil)
, r$ P+ u) L- a: Z" g (set_tile "t_ltype" "Varies")* _0 H- ]! P% f4 `/ `
)5 |5 i, l" S1 u6 t- z
((= lt-idx 0) ; set tile "By layer & layer linetype"+ @. R& M- z9 u( b' |2 ^( x: u8 J
(set_tile "t_ltype" (bylayer_lt))
; |1 A% K Q" {, [ )
4 I' u& |& f6 a# T, `+ D (T * `- W7 c0 f( H& V
(set_tile "t_ltype" (nth lt-idx ltnmlst))+ r5 i3 R0 W5 E- ~1 v& T
)
" a& x P' J5 H! {0 v )
5 u/ o# h; ]) n% ?7 D+ t% V/ f (if (or (= ethickness nil) (= ethickness "Varies"))$ Y5 m/ ?5 z' ?" r
(set_tile "eb_thickness" "Varies")2 t! Y, Q+ B% y' b; Q4 R( v
(set_tile "eb_thickness" (rtos ethickness)) @( j- z/ o# y: l5 I4 R! t
)
6 l. L" P2 W0 H3 x6 [9 T3 H ;; Define action for tiles
# m% |& Y2 Y! Q t0 V0 X (action_tile "b_color" "(setq ecolor (getcolor))")
& V6 j3 t) A: z (action_tile "show_image" "(setq ecolor (getcolor))")) {8 ~2 w w4 z# B
(action_tile "b_name" "(setq elayer (getlayer))")
2 X) B1 V8 j( {! s1 x (action_tile "b_line" "(setq eltype (getltype))")
8 g7 S/ y. ^# f2 l (action_tile "eb_thickness" "(getthickness $value)")# d; n& y4 S" h' n& U
(action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
! s; B4 V' p) { (action_tile "accept" "(test-ok)")
) H$ w4 M* V. D- J (if (= (start_dialog) 1)
! i1 Q( F( B L1 A! v8 J1 Q (progn
3 C+ v6 M$ ^5 V, v7 h& @* m6 {( i (command "_.chprop" ss "")
5 Z" ?9 k2 [) B$ u (if ecolor
" E6 L+ m+ O% b! h7 V4 @ (progn# U F# H3 U4 |0 P
(if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
' k" L) c. C+ k& ~, i B: X (if (= 256 ecolor ) (setq ecolor "BYLAYER")) k' T0 [! d) x- f) f
(command "_c" ecolor)
* a+ e. |( X( Q7 _: O6 X0 _, |1 d )
; L W4 M J7 c7 r )$ c' {, K+ p' e Y4 f
(if (and (/= eltype "Varies") lt-idx)
/ T% T; f n! x$ z) N" J, a( a% ^ (command "_lt" eltype)+ Q$ M( D$ [' P4 Z
)2 P- H4 @( K9 |% [7 b; Z! V
(if (and (/= elayer "Varies") lay-idx)4 g2 c7 {* X/ n: {9 U% g
(command "_la" elayer)7 M) i' s, o4 R1 }
)2 t1 I7 T# h$ n) }! C
(if (and (/= ethickness "Varies") ethickness)
/ p. G/ [6 v2 T0 Q8 L- e (command "_t" ethickness)! i2 ?3 p( m/ H5 n* E H
). K( c6 o- X: @# H; ~. x
(command "")
2 x/ r6 I3 j4 v" x' L( u+ O ): K! a5 x% p$ C8 c% L
(princ "\nProperties unchanged")
# u# U/ W% g1 e8 l: r& s1 I0 H )
9 @/ D, X' s/ L% x# i9 L (princ)9 |7 P0 [* \2 V7 E
)( n+ t* i$ v& k+ Q1 G4 b
;;
4 p- j8 m/ m( T& Q* \ ;; Function to set the Color text tile and swab to the current color value.
* e0 }/ o; k. R ;;+ e" a- i4 ?1 C% ^3 _+ z) t) f
(defun set_col_tile()% i6 D: u; ]! L
(cond
4 _" ~% C N. _, F( A, n- _. Y) ` ((= ecolor nil)
2 {$ T# v8 C: h+ d (set_tile "t_color" "Varies")
3 k2 `; e: g; d2 m (col_tile "show_image" 0 nil)) H: B" `3 O, h- `% K1 q
)) x D! P- a# C% V& _
((= ecolor 0)
4 ]6 `% L6 K# m (set_tile "t_color" "BYBLOCK")
- I0 \% x2 a% N! {4 v1 W, `7 Y* s+ j _ (col_tile "show_image" 0 nil)
' `4 b% E1 d9 i" s, E )
G! F, ~" l' b9 `' S ((= ecolor 1)3 x' Q7 d- V+ e; `
(set_tile "t_color" "1 red")
- y) F( I# S3 s& E8 |/ N+ } (col_tile "show_image" 1 nil)
( ?* X1 x- M5 P% N )4 w3 O. [( _0 b) _) {! Q( `- s
((= ecolor 2)) i. a* f4 ~3 h E/ V
(set_tile "t_color" "2 yellow")& s) q# T0 T( _# B' C5 Q3 g
(col_tile "show_image" 2 nil), E* {8 b! y' O( Z" ]
)
1 H. ]* I+ x$ _ ]% P ((= ecolor 3)
0 q8 t7 ^5 x* d" R( B9 _ (set_tile "t_color" "3 green")
8 U) ~9 ^9 R% K* V8 {+ a5 O; F (col_tile "show_image" 3 nil)
1 m, i4 u( L6 [* r& W8 X4 X; ? )$ D9 |- b4 \4 K# r% ^( c/ o
((= ecolor 4)" F% T! J, e) V8 n8 Y+ @0 w
(set_tile "t_color" "4 cyan")) E% O7 S1 j+ R9 h& I
(col_tile "show_image" 4 nil)
8 m% h+ B+ O5 G( G' o: k, n* q )
2 ?. }; N) d5 Z ((= ecolor 5)' P' ]" |+ n7 `* X$ l- Q
(set_tile "t_color" "5 blue")
( ` z) ^$ ^( e& G' k' ?. K2 j (col_tile "show_image" 5 nil)1 {5 D N' n7 N6 }* L2 l' T
)/ e" x1 M( n+ _( G
((= ecolor 6)
) C% x* ~# C" u, a% m (set_tile "t_color" "6 magenta")) Z" y6 E$ Y1 @. y- ?1 V2 o
(col_tile "show_image" 6 nil)
4 k) Y9 y2 N R8 y1 G9 \1 ^ )
4 @$ j; P7 Q2 k ((= ecolor 7)
2 Z' x* y2 |4 f0 r" c/ D. u: u+ L5 B (set_tile "t_color" "7 white")* u& H$ f* L o; w, m9 ~" O
(col_tile "show_image" 7 nil)
; {. O( Y0 F/ N" e5 c. s: q )
' b7 m7 U. F: @ z- c4 {6 z3 e ;; If the color is "BYLAYER", then set the tile to* i0 d8 s! M" Z( O
;; show it's set By layer, but also indicate the
9 v( i1 M% v9 V7 o- L0 U' S ;; color of the layer - i.e. By layer (red)# M) p9 y2 W" R) n% Z/ m
((= ecolor 256)
8 X4 |. [; l1 a" L( P# B. `( f (set_tile "t_color" (bylayer_col))$ R2 _2 b, ^$ N$ `9 w
(col_tile "show_image" cn nil)
1 T8 B, ?: p* t I+ ^0 w* L )
9 G; w4 x$ d1 V% C0 c3 O# r$ s (T - [/ Q+ ^) T9 k. _+ M1 g
(set_tile "t_color" (itoa ecolor))$ M+ f) T' f; W) b- m
(col_tile "show_image" ecolor nil)
: ^2 R7 u9 m/ g+ y )
: c9 D, c. c( n0 a" u/ g% h# ]1 f C )
, |$ S, Q& F( F )0 j1 n) k2 d% C$ p. t
;;
9 a+ t* K% N5 T1 B: j ;; Function to put up the standard color dialogue.8 A- d4 ], E3 D3 q+ h. G4 I l
;;2 h7 W% t: g! \' ~
(defun getcolor(/ col_def lay_clr temp_color)
7 n [( _5 n$ {& M: Y. v ;; col_def is the default color used when rq_color is called. If ecolor
5 H6 `4 q7 u, R# t. l! x$ K ;; is nil (varies) then set it to 1, else use the value of ecolor.
9 K/ z* W& m" v$ S" k3 k, y; H (if ecolor( K. k, ]$ V& P
(setq col_def ecolor)) ?) B0 y. V. R3 s# [3 t
(setq col_def 1)
$ w" o5 {: L% m3 U )
% z5 ?; a9 w+ }. | _
: t: D* D7 t) K ;; If we're working with a single layer, get its color
6 _2 a- ~4 f3 o+ L$ E ;; for use in the color swatch if the user selects color BYLAYER.7 b5 t3 m/ q% A- T2 ~8 B! E$ s
(if (/= elayer "Varies")
7 A; C$ E! B$ x2 X; _ (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
5 ]5 `: `+ F# m" h6 ~6 j% K (setq lay_clr 0)% s; y) F# c% `+ s7 T7 a3 f
)
$ V0 q0 O8 y( Z) |# _0 n (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
5 K! D" D; ]0 C2 g5 S8 W (progn
; i9 m; M1 h" @8 ^+ p (setq ecolor temp_color); `8 l% T7 P2 a. ]
(set_col_tile): u$ j/ Q. {* M1 S* ]" U
ecolor! n9 s4 T( k. F- i6 q& O9 {: W% u& Y
)
' ~0 n) R V2 y4 n9 r ecolor k# Z1 [/ z5 k/ e+ J1 ?0 v4 n4 C
) 9 E3 x& E6 [( o
)
: p2 k9 d( j! X3 D ;;( E4 Q0 t: ` D) u1 Q* }" F
;; This function pops a dialogue box consisting of a list box, image tile,
3 c2 ]8 Z! ^ t* k* a ;; and edit box to allow the user to select or type a linetype. It returns 0 E9 ?( b9 N/ V0 _* Z1 y Z' r
;; the linetype selected.
, e5 ]* l+ L& g4 d/ l1 X J# R- | ;;
( F2 p& J9 | |8 u0 v( r5 { (defun getltype (/ old-idx ltname)
! V2 B9 l. f1 ?' u; T ;; Initialize a dialogue from dialogue file
& q# j/ z2 ]5 s. M (if (not (new_dialog "setltype" dcl_id)) (exit)) k% _% _; K1 ?( T( N$ @% Y4 v
(start_list "list_lt")& ]: [7 m+ ]* e" M; @! S* ]+ k K
(mapcar 'add_list ltnmlst) ; initialize list box
3 I X, T- Y% i (end_list)0 u0 K2 L1 n ]6 H6 C. ~
(setq old-idx lt-idx)! A+ R& l6 }3 M9 D. b/ S. N% `5 L
;; Show initial ltype in image tile, list box, and edit box
|0 E& x3 \2 Y; v9 z; ]) x3 v (if (/= lt-idx nil)
. H6 L$ ?( T$ [6 X f( u, c# \) g: I (ltlist_act (itoa lt-idx))
# c7 Y7 T4 B6 ~ (progn
5 M9 y3 C, k! m& k. p% T; | (set_tile "edit_lt" "Varies")- H0 {( o! T6 i& a3 Z8 x
(col_tile "show_image" 0 nil)) f k4 |6 y' |. |
), H# z7 Y& c. a
)
' ~* T. }+ \# E& E' Z (action_tile "list_lt" "(ltlist_act $value)")
! `9 a* ]9 ]; d (action_tile "edit_lt" "(ltedit_act $value)")7 g+ ]+ ~0 S; M
(action_tile "accept" "(test-ok)")
2 M; u2 h' ~& I1 y (action_tile "cancel" "(reset-lt)")( A( v) B: N0 w: u6 ?: f {% c
(if (= (start_dialog) 1) ; User pressed OK% w) {! L+ F; `4 V) ^
(cond
" |! E6 a. j( o ((= lt-idx nil)
5 i1 ?' p7 h1 j' N `+ y- D3 W (set_tile "t_ltype" "Varies")2 j1 M) G `- V; l0 z- Q
"Varies"
2 u3 S; H; V/ D) _ )" `4 t+ w) j! f3 E$ s
((= lt-idx 0)
9 X( M8 {) u- k; E* c8 Y1 _ (set_tile "t_ltype" (bylayer_lt))' @% t: o, V: s4 t
"BYLAYER"
3 U) G# g2 d2 t7 C )
( I* b% ?7 k1 C6 i, D ((= lt-idx 1)
' X/ n& u, c) G4 C7 ^ (set_tile "t_ltype" "BYBLOCK"), D+ I e+ }$ e$ M1 g" f! y" D
"BYBLOCK"3 L) ~9 q* }2 j8 b
)
, W4 u- `7 V* | M4 W! {! D (T / E( v/ L- h+ e, i
(set_tile "t_ltype" ltname) ' v& A9 {1 `6 q2 J# v6 [& a4 B
ltname, a: C Q( C! S" b" H
)6 }3 \1 f/ `3 z" Z
) @1 ^: v# W" g! Z- y, ? t
eltype" ~) i* ~7 Y% { R, E( O g& P
)
4 ^0 L1 P- u$ J5 S" h, M+ c )' X4 {1 w, ^5 ]7 m9 t& M$ W4 o
;;
3 G k' Z+ f1 q3 p7 r/ U% y ;; Edit box entries end up here
. c" Z& E: O; [, E3 b& O0 e ;;
4 H7 V+ k0 h6 u0 v (defun ltedit_act (ltvalue)
# a7 L8 O* L* @4 d& f) S8 y ;; If linetype name,is valid, then clear error string,
3 n# l+ C7 ?# v I ;; call ltlist_act function, and change focus to list box.
: x4 d0 n6 x* o7 ?$ d/ c5 v2 C+ k. X0 K ;; Else print error message.# w' u/ N: i' _' \& u0 a" Z
(setq ltvalue (strcase ltvalue))
4 s4 E5 X) w( X9 U2 O (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))) e" F- ]" Z6 p S- D
(setq ltvalue "BYLAYER")1 V) t2 P% T- h t* N' g: C+ g- i
)
# n6 I `" [ ?6 b (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
2 j! x! o1 V/ L" D+ Q (setq ltvalue "BYBLOCK")
$ q( e/ X3 j! X# |* X )
4 S7 ?# h% o4 X# b2 b: Y7 g (if (setq lt-idx (getindex ltvalue ltnmlst))
8 w8 \1 `5 s2 a, d (progn5 i _! j" U# Y3 e2 f
(set_tile "error" "")" q* H: U& B2 T& b+ M N3 j- u
(ltlist_act (itoa lt-idx)), s5 a7 h0 z' @. D) l3 j* e
(mode_tile "list_lt" 2)
a1 r( v; n5 S- U: |/ k9 V )7 F$ Q5 L% `& K- ~! R2 J% X
(progn
9 p# o' L+ Y& O/ G T5 W3 A( g (if (/= ltvalue "VARIES")
" g- A. n$ ?! @5 O (set_tile "error" "Invalid linetype.")& p8 F) d. H( [6 G
)! \" ?: [9 m; d# L
(setq lt-idx old-idx)
, B6 D8 H4 Y6 N: C4 H' a% m( i; Q )
2 Z d8 c. [8 G0 l )
8 }( c" w- A! S7 F& |5 w8 {8 p )
. @1 f! N, Y& D3 ^& t+ x. ~& _, ? ` ;;& @+ s3 J6 v3 _
;; List selections end up here
, D1 j& ~+ o* Q ;;
$ p5 ?( ], }1 \: _ (defun ltlist_act (index / dashdata)
% m4 D+ C. j! ^# P! J+ d ;; Update the list box, edit box, and color tile
# _) ?1 A: u6 w (set_tile "error" "")
5 B Z7 S5 r( L. ? (setq lt-idx (atoi index))
3 h& h, M3 Z8 d! q, O (setq ltname (nth lt-idx ltnmlst))3 o3 ^# V; L$ F
(setq dashdata (nth lt-idx mdashlist))" w3 E a( E5 n% ^6 P
(col_tile "show_image" 0 dashdata)
) P5 a: H) ]/ W (set_tile "list_lt" (itoa lt-idx))( W7 D5 s2 \. l( O, F
(set_tile "edit_lt" ltname)
6 t# O8 ]* C8 ?4 ~ )3 a9 E. M( s' B! N0 I, K k
;;: E1 N% ]# A7 m
;; Reset to original linetype when cancel it selected# e* L& a- O: \! \8 g
;;) I3 U7 W4 f! C3 J0 o
(defun reset-lt ()9 E1 A9 f1 l1 [. b3 U
(setq lt-idx old-idx) r2 b6 ]4 f# b5 l: r
(done_dialog 0)
4 n5 Y$ Q a* ]6 ~" y9 U% R$ l7 O )! m5 P$ N$ V F
;;
% b% f4 E* W, R* q3 v2 G ;; This function pops a dialogue box consisting of a list box and edit box to
% ^* V# x+ d" {4 P* ?- R% m ;; allow the user to select or type a layer name. It returns the layer name
" w. K/ r' b+ f3 @ ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the $ C7 o) L6 C1 |$ V+ I0 h
;; drawing.
0 B/ w) E1 c u ;;
7 O7 r* x) \' E: d3 h. y, t( [ (defun getlayer (/ old-idx layname on off frozth linetype colname)( e( c7 s# C1 z8 O
;; Load a dialogue from dialogue file" n" l; H" u6 e
(if (not (new_dialog "setlayer" dcl_id)) (exit))
$ x' H& X" d: R: e4 C" Y (start_list "list_lay")
$ n4 ]( F( K- Q3 Y$ [5 X) I7 R (mapcar 'add_list longlist) ; initialize list box
) f' g# m. d. ~$ Z7 r) z2 S (end_list), B* d9 O1 |3 e" @! i4 o9 y% D
;; Display current layer, show initial layer name in edit 9 [- t7 H' {5 g! u0 ]
;; box, and highlight list box.
* {) o5 E$ `5 L (setq old-idx lay-idx): H" ^8 a& e, e1 @5 T7 S) K
(if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
5 q! i4 [5 g, ?4 X) Q (set_tile "cur_layer" (getvar "clayer"))+ S! \9 R: H: W( t
(action_tile "list_lay" "(laylist_act $value)")( g) F9 g4 M8 h) p0 |
(action_tile "edit_lay" "(layedit_act $value)")% R" Y0 [! L8 z1 d# n- |6 z& g) m
(action_tile "accept" "(test-ok)")/ g% U' W% C$ d; f: \8 c( i
(action_tile "cancel" "(reset-lay)")
; H- |( n p7 Q* v' t. k (if (= (start_dialog) 1) ; User pressed OK
) S' n% F5 \/ W" t' x. h4 @! i( M (progn
* w ^. i0 e$ e8 K (if (= lay-idx nil) (setq layname "Varies"))
& j) u7 B% y, {& D( D. l# D (set_tile "t_layer" layname)
& r$ z3 q& q2 R9 k3 M( ] ; If layer or ltype equals bylayer reset their tiles+ t7 h& c$ ^- U ?0 ~* t) v$ }8 p' g
(if (= lt-idx 0)
0 n1 y- N: l. a6 M6 d (set_tile "t_ltype" (bylayer_lt))
$ s( a; E$ v! u. X2 T )7 ` |' _5 b; U3 q5 x, n0 \' I( i
(if (= ecolor 256)
' [$ Z# w( Z5 B' c (progn5 ]" F0 f- k- l; C
(set_tile "t_color" (bylayer_col)): U# }! \$ N1 T; K, w6 \* a
(col_tile "show_image" cn nil)
7 m9 O2 C: M+ _6 y2 i# { )
6 ^* h# n9 C3 Y& L; Z6 ]/ q2 P ): C. x2 G" d) v+ t' d* L
layname7 Z/ b" X# [# W# W
)( `& m2 l5 w$ b: ?# B' ^1 M* [
elayer: Y z1 A, L# K7 v' d. h
)
5 ? v& {: ]5 i1 d$ W# U: V9 T )
b' X6 i7 l6 l ;;
7 Q+ B% q, p, W0 Q& L; \ ;; Edit box selections end up here
/ m! e* x$ M, |$ m- _6 B ;;
; r9 ]' b& l, E (defun layedit_act (layvalue)5 q- z% m* l5 d- x I% n* Y
;; Convert layer entry to upper case. If layer name is
/ t) b" Q9 c5 o! g- v2 o) d ;; valid, clear error string, call (laylist_act) function,9 @# m: ~ O5 f9 d/ g" I; S2 R w
;; and change focus to list box. Else print error message.
' [, u6 f1 F3 C7 r/ X (setq layvalue (strcase layvalue))
) ^# P, f+ Z# W3 N9 ~; K9 a (if (setq lay-idx (getindex layvalue laynmlst))% j& e& J3 k/ o, ]$ u! h: K8 i$ V
(progn
. ?. M4 o1 \9 D0 \+ T (set_tile "error" "")# }( g! M5 X) R
(laylist_act (itoa lay-idx))% J$ i+ j2 }) Y
)( y* G/ R! N& y' `% S$ r+ A @: f
(progn
# O# o$ y( v+ X3 G u. Y1 o (set_tile "error" "Invalid layer name.")1 t1 X0 C, @0 o* t F& u
(setq lay-idx old-idx)2 j q+ T8 Q3 y
)( s+ d$ C, S$ N
)
. B) {; H: Z! y' z. f ): t% ~/ m4 ^& S: R: m
;;, r1 D8 I9 V( K% G& \
;; List entry selections end up here
/ M0 D3 `3 `1 l9 D ;;- h# c' A/ t1 V5 c( \5 L7 [+ ^" w
(defun laylist_act (index / layinfo color dashdata)# k% f5 D1 U( d3 S" |9 M! y
;; Update the list box, edit box, and color tile, ~$ m( ?. u4 i) [0 I! S$ ?
(set_tile "error" "")
* Z$ q- V6 s5 E+ q. _3 p( G (setq lay-idx (atoi index))2 D* P2 T; z9 d: x! ]3 `! S' q
(setq layname (nth lay-idx laynmlst))8 ?/ o' z, M5 ^' E* X
(setq layinfo (tblsearch "layer" layname))' H U0 j! Y+ e) e9 h* D7 `3 Y; J
(if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
}/ l& c% G3 z' s9 s; x& O( j3 N' ] (set_tile "error" "Cannot change entity to locked layer.")
3 e2 _. m, W; t- ~' A% I (progn" b6 q' k! U7 B9 B! C t0 q
(setq color (cdr (assoc 62 layinfo)))
, U. c) [$ t3 I+ _* J3 j3 } (setq color (abs color))3 v. n' Y! o) E {, y: }( @
(setq colname (colorname color))
; A( @- ~4 {9 r6 g/ L6 f# [ (set_tile "list_lay" (itoa lay-idx))
3 m8 w5 S/ }0 f& A0 t (set_tile "edit_lay" layname)
3 A& A5 _4 E, G5 u. u (mode_tile "list_lay" 2)/ I% \# Y! S- p: G( }' b# A
)
% o/ K$ q% h6 ]$ W, F1 r( E )
# Q" J8 D( ~8 R2 x* }1 ^, ^ )( V8 x0 j: q& ?; N: z- F. I/ ?2 |1 C
;;. z1 o. w3 S# x6 ^7 X
;; Reset to original layer when cancel is selected
7 b6 v: o6 l E+ Z+ q- y h ;;# g$ w9 |+ d" N V1 O9 Z, ^/ d
(defun reset-lay ()2 Q8 o3 c/ F1 ?% C2 u d) `
(setq lay-idx old-idx)
5 _4 t) \( l! b$ h5 J+ i4 |8 Y (done_dialog 0)$ F& V$ A; Y3 W4 i5 X* f) x& ]
)* S4 h0 V0 N3 `7 j
;;2 ]" l* s d2 o/ {# w
;; Checks validity of thickness from edit box. Since (atof) returns 0 when a + e8 y3 F2 j# {; [# ^/ T
;; string can't be converted to a real, this routine checks if the first
( E/ M6 @1 P5 c- ] ;; character is "0". It also checks to see if the value equals "Varies".
1 u+ g3 i [) ~: T! l ;;
6 v$ w2 w$ A* t. }, e% S, U) D (defun getthickness (value)7 W- E9 c& ~( L) o: g$ N) N1 W7 Y
(setq value (strcase value))/ n& \8 k+ A2 y7 a
(if (or (= value "VARIES")3 i# A- m- Q1 N5 v
(distof value)
& C6 f" w3 k( q. J2 e- ~8 F/ S )
' \; L" t. I. s (progn
1 t, o8 R4 A5 C (set_tile "error" "")8 s. ]2 _: E& \6 U
(if (= value "VARIES"), q; x: r- @. C
(progn
* F9 G# e3 ?: M6 L# a& n3 _ (set_tile "eb_thickness" "Varies")( o* B4 w4 [2 R% _" H
(setq ethickness nil)& {% C" w1 W \9 o: K
)
0 s; t o% d* {6 j (progn) g1 u7 }* v, }1 v
(setq ethickness (distof value))# R+ X4 U$ Q( c7 ]
(set_tile "eb_thickness" (rtos ethickness))
3 ^* v# Y- X- m. z+ K+ { ethickness' U; d& D5 x" T( X: F
)
2 \2 T3 }8 j2 \5 e n) o& N )5 P: z3 G7 @- ]# z4 c
)
+ x: O, m9 s8 v! v (progn
/ N$ q* k7 S& a+ z- h (set_tile "error" "Invalid thickness.")
- _. M! Z$ A' |" I5 c nil
3 g$ r9 u/ a. k' }3 ` )5 w( F" p. d- m% n/ A, M+ }
)% F- ^% {0 C' |
)
! U- Z- D2 D% L/ c ;;! y% C/ s& ]5 n) ]/ Z* [/ ^
;; This function make a list called laynmlst which consists of all the layer
2 l# F4 ?* t2 w+ ]! c% z ;; names in the drawing. It also creates a list called longlist which
; U8 [. ]' D1 r7 Q5 l' }! V6 w0 R* l ;; consists of strings which contain the layer name, color, linetype, etc.
9 i% E( f. @" G* ^, a) P) I ;; Longlist is later mapped into the layer listbox. Both are ordered the / [ l7 M/ A: N" _+ h2 Y Y
;; same.
7 U* I3 b- W6 K) ~2 E: l0 | ;;
7 A$ C( u2 H y/ g, P- q+ J (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
7 i( G4 _# G7 A6 t( H; K3 N xdlist vpldata sortlist name templist bit-70
9 r- O- `, N+ h )1 O. @- |6 V; i
(if (= (setq tilemode (getvar "tilemode")) 0)
4 i; u7 I: }5 ] y8 f (progn
8 t) x/ o( r0 {3 c (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
4 n6 a+ A8 o+ v7 f1 v9 p& ` (cons 69 (getvar "CVPORT"))0 S8 ^. W; G( n" ~& p9 j# Q e
)
2 [ O0 H; N4 n+ e( i )
0 K" J" }8 o/ }6 D6 ] )
$ M @$ ?7 |4 b* u- i/ z (setq cvpname (ssname ss 0))
0 i- P% z7 x; ^9 ? (setq xdlist (assoc -3 (entget cvpname '("acad"))))! t6 K! I% Q6 ?( z4 H+ T! l
(setq vpldata (cdadr xdlist))' K2 l( ]: ~9 F- r. Z2 R
)- @9 a5 |" ^% u1 x: i6 T3 _3 }
)7 |7 e; b5 y, g& X
(setq sortlist nil)
/ S6 D9 T4 ]1 j% {3 B4 Q r- J (setq templist (tblnext "LAYER" T))- U" y$ ?& G. _2 R, v" V) U
(while templist4 ]+ N& U p" i X. V- u6 V
(setq name (cdr (assoc 2 templist))): M4 F9 o" K( a# t' o+ S A1 m7 y
(setq sortlist (cons name sortlist))' ^5 _8 j$ |8 y1 t
(setq templist (tblnext "LAYER"))
B$ u9 S7 Q5 A! Y5 | ) " ]8 O' u1 A' I- Z# m* U, q
(if (>= (getvar "maxsort") (length sortlist))1 U5 N2 S, M, M! B& t4 T! m- \
(setq sortlist (acad_strlsort sortlist))* W. Z. P" k) w2 `" y# C
(setq sortlist (reverse sortlist))
- r: G, U3 K$ w E8 ]6 n5 t, l )
/ E) ^% l, a: n8 U (setq laynmlst sortlist)7 O6 f( s# |+ K2 v1 G7 A* i! Q
(setq longlist nil)) ^- @) i# N6 ` r
(setq layname (car sortlist))
) }! j7 K6 t- [: p, V. y) N' ^) [ (while layname4 E" t/ Y' b. b' C6 G/ ]0 F) \ n
(setq laylist (tblsearch "LAYER" layname))
$ r+ D- M) A+ y( ~: q$ d% H (setq color (cdr (assoc 62 laylist)))7 `% r% b. E4 [& F3 ?& \
(if (minusp color)0 ]; o0 d8 A9 W7 [; e
(setq onoff ".")
. M$ @! b# d% W% a( z8 t (setq onoff "On")
' o; J+ v3 c# p/ h* D7 x )
0 [3 I2 m+ T4 C1 P, x- U3 A (setq color (abs color))
" H! J: N5 c, K+ s* a- D+ h (setq colname (colorname color))* s" R) D; p. F& _9 X! a6 l
(setq bit-70 (cdr (assoc 70 laylist)))% l7 Z9 V7 Y9 \. x" }
(if (= (logand bit-70 1) 1)' d+ E6 f0 ]+ @# Y: R$ H# m
(setq frozth "F" fchk laylist)0 \6 P) h Q: R' M. E
(setq frozth ".")2 j2 c! I/ {) `3 [! g. [ r
)
$ a- Y9 w* M6 }& ]$ H2 t+ S (if (= (logand bit-70 2) 2) y! f* }# V; P/ m
(setq vpn "N")
4 |8 ]) E5 n7 n& W (setq vpn ".")
. {. z! ~: | g, H% Y- j )! [' ]5 d2 Y9 f' l: g- H) j
(if (= (logand bit-70 4) 4)8 j3 }5 P& q$ K" v& P e
(setq lock "L")) C/ v5 P- T3 Y% ?& ^- W
(setq lock ".")2 C" M. S# [! q4 k3 N5 z' s
)
* B( v) e) W- P. X' H (setq linetype (cdr (assoc 6 laylist)))
1 B7 j8 D5 i2 J6 G+ w4 e- A$ T6 c (setq layname (substr layname 1 31))" a, x1 c- ]" S ?3 r- h
(if (= tilemode 0)
* B( _; q4 \& e0 V+ i( y (progn
8 y6 R; n3 K5 W; I" R- E (if (member (cons 1003 layname) vpldata)
3 s3 M3 B% m( X! T1 n: e (setq vpf "C"), k( J: Q W- T8 i( J& v
(setq vpf ".")+ X: Z/ n3 L4 b( L5 i
)
8 D9 P0 J" v9 c7 d- D! P )
6 h/ m: c- x% H7 ^: E* l (setq vpf "."): D- }$ p" f! t+ F- E
)& a$ i1 w# i& `- I& A! u7 G& o+ B
(setq ltabstr (strcat layname "\t"
- C0 J$ y \- y* f onoff "\t"" S8 g4 ?: r7 T
frozth "\t"0 o# {7 E' V' w/ j8 B
lock "\t"
2 |/ K C) g, [, [ vpf "\t": }; `9 p R2 w/ E3 |) `
vpn "\t"* A* ~ {5 Z) L# q# N9 F
colname "\t"
1 w& F; ~& k) D$ W( n% i linetype
' {9 U. u/ U8 i3 J2 h6 s5 k )
% ?9 u' N3 P0 g6 E3 b# r, Y )( B. W: Z8 X& u
(setq longlist (append longlist (list ltabstr)))
5 x% Z/ y7 X) V; m ^: Z (setq sortlist (cdr sortlist))1 v9 }- L" c9 e( c4 H7 k* Z
(setq layname (car sortlist))5 K- @; b* |6 p5 f4 F4 i
)
' w5 s. J1 i7 w4 W7 ` )
- ^1 K) c5 W/ B+ h ;;4 _: O/ `! F8 X4 s
;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
8 I. s0 S0 \/ b3 p5 R ;; linetype names read from the symbol table. Mdashlist is list consisting
5 l) Z# ^1 O: c) o8 a- | ;; of lists which define the linetype pattern - numbers that indicate dots,
/ m( s9 I3 v6 d2 Z7 w4 ]* V4 \ ;; dashes, and spaces taken from group code 49. The list corresponds to the
, T0 n2 i9 [# b. W# {5 D7 F3 Z: [ ;; order of names in ltnmlst.
5 T8 a+ X8 I- Y: [$ ]7 A# ]9 S4 L ;;. O$ A, Q* i( V# e+ m( a; d6 X
(defun makeltlists (/ ltlist ltname)
8 F$ y& E" o; r2 w" t/ ]6 w (setq mdashlist nil)
. q" @4 Y9 a8 b4 E (setq ltlist (tblnext "LTYPE" T))9 o3 Y" h6 ?0 O
(setq ltname (cdr (assoc 2 ltlist)))
& H) N# Y# k% e (setq ltnmlst (list ltname))! d& X5 T ~/ |4 _( A3 B1 G* r: l( z
7 R# h8 {# L% s0 D3 `5 h2 l7 V
(if (= ltname "CONTINUOUS")
. i+ ^ r+ I% C5 M; X# P (setq mdashlist (list "CONT"))
1 g* l+ s% I Y3 l (setq mdashlist & s) p6 K: P! r* i# U- j Z _; A
(append mdashlist (list (add-mdash ltlist)))
4 u1 j% _ `" ?7 X1 \ )4 W9 Z B5 P; K# }7 q& J
)# H6 @( V6 z/ ^; _! [. u# z# \
(while (setq ltlist (tblnext "LTYPE"))
. l, {& X/ Z( ]8 X4 t5 ?( |/ I (setq ltname (cdr (assoc 2 ltlist)))
- E- B B( C2 Z( K (setq ltnmlst (append ltnmlst (list ltname)))6 m6 c p3 {5 q( R: x. S/ u! l
(setq mdashlist
, m' p2 {! R% E7 X$ @ (append mdashlist (list (add-mdash ltlist)))
+ w p$ `& e; J2 v1 f! ^3 r, w )
( H$ o, J- X ]. l8 j& ` @ )
6 G, R) A2 B+ _8 o! C5 M0 }: @* A (setq ltnmlst (cons "BYBLOCK" ltnmlst))$ R* M9 y `" R
(setq mdashlist (cons nil mdashlist))
r9 }" ]* N7 [9 Y& f1 n' f (setq ltnmlst (cons "BYLAYER" ltnmlst))
% }- B: ?' }2 X% [9 i (setq mdashlist (cons nil mdashlist))
( h2 T, L; m3 g9 t" W3 M7 N )
2 A# l6 ?/ d) T' I9 ^ ;;
/ w, ]' _& i/ ^5 E2 W ;; Get all the group code 49 values for a linetype and put them in a list ' Y x. u/ ?# }! x- }
;; (pen-up, pen-down info)
6 l# _/ n3 F3 q; W% G- Y+ p: W7 ~" i9 T ;; ]4 ?1 H* v- \, w3 _' j
(defun add-mdash (ltlist1 / dashlist assoclist dashsize)- t7 I7 b0 ` Y' u- p @" r
(setq dashlist nil)
/ K3 z$ ]6 S/ g9 @& H- S (while (setq assoclist (car ltlist1))
; X& P8 ]# a; p: I2 a8 u5 y: V9 j& j (if (= (car assoclist) 49)
3 h; i. j* ]2 b/ ^# Q7 J8 v4 W (progn5 C- c1 D# l! o. J3 b' S0 Y, v
(setq dashsize (cdr assoclist))) o* j4 {4 @5 n" n0 d
(setq dashlist (cons dashsize dashlist))
5 V) ^. `9 m+ } )
0 Z3 N2 X& `* x) u ); |& j$ t0 ?. A+ `: y- N# V
(setq ltlist1 (cdr ltlist1))6 v0 @0 m5 ^ i! g: R9 F5 }
)
! ?: `% z( M E1 O6 @ (setq dashlist (reverse dashlist)) ^4 V. b1 B- [' e2 g' G
): S, c" c% Z+ u6 M8 m" E
;;7 q6 n& V/ M# ^- C7 r
;; Color a tile, draw linetype, and draw a border around it
* C% s0 \4 H' J, \1 s, j0 ^ ;;8 j% R- \* D% I h. k
(defun col_tile (tile color patlist / x y)
4 q# m) \+ m! B (setq x (dimx_tile tile))
$ d ]3 P# I- l" ~7 F) ~. b! t (setq y (dimy_tile tile))! Z* [; [6 z1 n" t. C
(start_image tile)
+ A+ F/ \$ g1 b (fill_image 0 0 x y color)$ Q ^8 I4 c7 o" O) ~5 G- S7 `7 f) ?& p
(if (= color 7)# I% i* _, G2 `7 h: @
(progn* k$ ~0 x# g( D; n" M
(if patlist (drawpattern x (/ y 2) patlist 0))" @5 y9 d1 M5 f: _3 B3 M
(tile_rect 0 0 x y 0)3 {. J" f% W4 h0 ~/ u2 f' _
)
- D9 {% _! k" e' \1 k& X0 O (progn% h5 X! Z0 s+ a' h- x
(if patlist (drawpattern x (/ y 2) patlist 7))' h/ r. C& V# v" b0 p
(tile_rect 0 0 x y 7)
7 K1 c# C' t3 |0 e )
. C$ T9 a4 R/ Z6 a, ] )
3 c) |2 U q8 V+ r2 s (end_image)
; c* R8 D; A! a6 t( e+ ~- L ). Q+ }; }) ]/ e: l! k ^
;;: A" r' [- A' m8 g% ?; e
;; Draw a border around a tile; E* c2 R7 g7 u4 J9 {8 |
;;
! E6 j0 ?7 d& Q8 Y, |/ R3 F) R (defun tile_rect (x1 y1 x2 y2 color)8 f& p- a, h& ^9 S0 F
(setq x2 (- x2 1))
5 Q& J4 r/ ]" W( o6 d: {# r (setq y2 (- y2 1))
. N: C0 @' ~! r% k (vector_image x1 y1 x2 y1 color)7 m) H9 X: U/ z( J" u$ i9 h
(vector_image x2 y1 x2 y2 color)7 h. }' F5 J6 @( w1 c: ~5 k4 r
(vector_image x2 y2 x1 y2 color)
7 q; `; N. o I- y h3 ` (vector_image x1 y2 x1 y1 color)9 n; H: v8 m7 o& x+ N8 h! K* }
)
! i, d, d' s/ |; p7 s( W l" Q ;;* K2 J/ g- J5 n$ R" [: v
;; Draw the linetype pattern in a tile. Boxlength is the length of the image ' c- L7 H+ b/ U+ E! `
;; tile, y2 is the midpoint of the height of the image tile, pattern is a 9 c1 G2 c( G- r0 m5 J& y2 N! r8 o) w
;; list of numbers that define the linetype, and color is the color of the 3 I( i0 i: G1 j- @8 s. B
;; tile.
1 S4 W! @8 o" e. [$ m ;;$ y; U3 z+ J) u; S$ I
(defun drawpattern (boxlength y2 pattern color / x1 x2
" }* c/ b; M: l) c patlist dash)
9 C2 e* J/ g$ i9 V0 d (setq x1 0 x2 0)8 }. ~, f* A" P- @, p' m3 q9 z# g$ z
(setq patlist pattern)
. T$ | B2 A$ `% k3 [, B (if (= patlist "CONT")
$ u) l& `( C" M) }# Q8 l- L) O+ ~ (progn
: N' i9 b s+ x (setq dash boxlength)
# S% D$ j8 ?2 `4 L! S( J( U (vi)
! r0 k3 A5 k0 G3 I, M, G# S; ] (setq x1 boxlength)
: T7 H1 I* c/ t, i, `7 i! ?9 q' f )
- k$ t* s; E4 q2 n )
$ G8 V* B3 Y9 C (while (< x1 boxlength)
' I$ n2 I# J d% t, W; P4 \+ B( x0 H (if (setq dash (car patlist))) r$ k; a. u K' v5 }+ Z
(progn, ^; V6 u1 q2 w
(setq dash (fix (* 30 dash)))
6 i! H. W- L7 R5 M. ~% i (cond
; o8 Y0 |; F9 B' I7 l# M- a ((= dash 0)
1 A% X5 M- R% ?; R" ^ (setq dash 1)
; l1 H- V2 w( Q [ (vi)1 X1 S( p& S+ D5 t2 [
)
/ ]; e! n# z& A& B ((> dash 0)
$ J1 b7 l8 \! X4 P1 ?8 L (vi)" I) }, f, x: q8 Z$ u# {
)
7 ~8 y+ k" l W (T
5 }2 S- O9 q% q. b0 k5 p4 y* a5 f (if (< (abs dash) 2) (setq dash 2))- g/ V5 [9 @, H, i8 o
(setq x2 (+ x2 (abs dash)))
# ~4 M2 j A5 J0 N$ E; v% X( C )3 K, f# A- L, i8 c1 [8 D9 m5 m( Q+ v
)$ ^$ D9 ]( q7 E t+ D; Z! f
(setq patlist (cdr patlist))
( E/ c1 t4 p1 x: C! }* I9 ~2 L (setq x1 x2)% j, J! k! O: A+ {7 R# C
)
; J' f: d/ k1 K- a a (setq patlist pattern)
/ {3 h# x1 R2 U7 M )5 X: N1 E( O# p9 P8 K. K
)& [8 B9 ]8 b$ g8 v
)! O+ i/ I ~* N5 E6 w
;;) f" A5 O& G1 L" ]
;; Draw a dash or dot in image tile. @& v% c/ n) ?* N3 D v
;;
! [# G0 w1 K% ~3 Q" L1 _3 r# ~, \6 W (defun vi () @% K" Q' q9 W8 H: ~: |
(setq x2 (+ x2 dash))( E8 X! Y- P, g; e
(vector_image x1 y2 x2 y2 color)6 g5 K7 R y# S, q4 t, ]
)
1 A/ D6 A5 X* x& g ;;
: H" b) R8 z. S/ a3 ?6 S ;; This function takes a selection and returns a list of the color, linetype,
; O" Z5 J" C: a# h ;; layer, and thickness properties that are common to every entities in the
% X' B. N/ s4 z E ;; selection set - (color linetype layer thickness). If all entities do not ! n% F& @' M( n$ Q3 w' N) [
;; share the same property value it returns "Varies" in place of the
$ b$ b: a. Y, m v d7 Z ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)" ^# u! |& B3 g
;;# c! |/ X3 W# o' M+ G+ G
(defun getprops (selset / sslen elist color ltype layer& B! _1 P7 a+ k4 y& Z& j
thickness go chk-col chk-lt chk-lay chk-th ctr)
* a4 A$ W2 P1 L( u. z W# }! ` (setq sslen (sslength selset))
! }' g5 E3 z9 a' e7 A+ q/ m2 ~+ e (setq elist (entget (ssname selset 0)))
, v, c5 g" J$ K1 Y( G! R; ^! B (setq color (cdr (assoc 62 elist)))& j% g& {" q# o# i3 R. V) y+ n
(if (not color) (setq color 256))9 J. X( |. u6 V' M
(setq ltype (cdr (assoc 6 elist)))8 C& [4 Q/ e, z& S$ C
(if (not ltype) (setq ltype "BYLAYER"))
/ G7 D( d- e0 X* V- M2 F6 Y (setq layer (cdr (assoc 8 elist)))4 ]% o0 w. U: Z2 r) [3 X' i
(setq thickness (cdr (assoc 39 elist)))' [3 l2 W* l0 P" S, F
(if (not thickness) (setq thickness 0))
7 E$ g& u& y& S6 z, t( o* w5 d (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)% V% m5 R3 T" ~4 u
6 z0 A3 ~9 D& q. F: J1 ~* U) q ;; Page through the selection set. When a property( j" ]& A& h/ k6 H9 v, G0 C9 o# @+ \
;; does not match, stop checking for that property.% W& N/ [5 p. a, O
;; If all properties vary, stop paging.6 D# v$ ~; O5 b2 _
* q b5 n2 w7 H! p& L (while (and (> sslen ctr) go)+ ~( n' N' b/ U% c: K) n
(setq elist (entget (setq en (ssname selset ctr))))
! y- x3 Y' l, m1 t/ q (if chk-col (match-col))1 s( `3 q- \0 X& T6 o' ?
(if chk-lt (match-lt))
4 a" J' [, _" g, s( @$ M. R9 G (if chk-lay (match-lay))
, B4 d) W- Y% d (if chk-th (match-th))
- m2 E' H/ q% B0 j* W2 F (setq ctr (1+ ctr))
# S: m1 X; z% p& X/ j, o3 J$ ]2 L, U+ P (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
: C* f% Q( A1 }: E+ D) r (setq go nil)* [2 s+ u- \ ?, k9 E y
)! P; v! ]1 V+ U" E
)
9 ~; W/ Y1 O1 I0 W) X7 U, ]! {9 u (list color ltype layer thickness)) K) ~$ J* P! f" c
)
; M2 I' o$ w! E9 N: A4 h. A7 p$ x) |( K6 E& Z; i
(defun match-col (/ ncolor)
; E( U; X V7 U" H (setq ncolor (cdr (assoc 62 elist)))3 w. F' h) X& K' H' c; [" c
(if (not ncolor) (setq ncolor 256))
+ o4 g" W6 p+ U* @$ a (if (/= color ncolor)3 h5 o$ L( ?0 s- T9 f
(progn
- t4 _- R6 ~# Q. W7 I& H (setq chk-col nil)
5 H; Z3 F! {2 Y( p7 b2 ? (setq color nil)5 B' t$ [7 O" N5 w7 y# n6 G* l
)
4 a$ b: M: P, [! I: F, O M9 Q )2 a) U+ T1 }0 ]+ ~1 G
)9 }' k( y/ M N- Z( v" y
# ~$ g7 Q* e7 u5 r& p( j: @ (defun match-lt (/ nltype)( h9 p9 Z) N* }; D8 t/ F) c4 T
(setq nltype (cdr (assoc 6 elist)))3 |1 q+ Y2 I# t. E# M% k
(if (not nltype) (setq nltype "BYLAYER"))
( Q1 V& {) }3 t+ t' T& g (if (/= ltype nltype)
$ l" d5 N+ N- |' F (progn$ |& y5 c" O- T0 E1 n8 f9 f
(setq chk-lt nil)$ L1 t$ @% v( M/ R: _) g# Y
(setq ltype "Varies")
1 W) I8 Q- Y4 A9 y3 N) p4 { )
( y5 M# C) _8 U& {/ T )
. t4 f$ j8 c$ _) F )
+ B* z* ?( n9 d- D+ s
+ g. G% B { `2 P4 i7 w (defun match-lay (/ nlayer)5 f) V+ d+ y. w0 B- @* p" U8 S+ A
(setq nlayer (cdr (assoc 8 elist)))* ?4 O+ B* Q, U1 e
(if (/= layer nlayer)
! l0 ] f) Q3 t- q! T" v (progn
+ G" X, D- w% h* ~5 n% x4 B3 @% C (setq chk-lay nil)9 H7 {7 }$ e3 {0 ?# E+ U
(setq layer "Varies")
5 B, s! f- v! a3 B ); X' A8 I0 O/ n9 M o
) u" a d0 a7 \ `" t
)6 C$ s9 P% R0 w; M7 T4 i; u* q
' X" v1 j/ ? } (defun match-th (/ nthickness)
+ Z' L# Y$ s. O y7 I9 l! V' J (setq nthickness (cdr (assoc 39 elist)))
5 I8 s7 Z$ Y, M" U (if (not nthickness) (setq nthickness 0))
: {. p8 X* ~4 g( }. P6 W1 k (if (/= thickness nthickness)
& v/ D( H( r# x8 X (progn/ E, [$ a0 D* D6 \
(setq chk-th nil)1 v1 p& {; B8 L: _+ ~% ^
(setq thickness "Varies")0 {( L! d! c& e: n5 e
)
1 U9 ^' Q. |0 Q4 Z m6 j* z )
; @ Q% T r9 T# ] {) i1 k )" G: A3 N: ^, c8 W: `6 ]5 h
9 _7 t4 O7 C+ ]9 ~6 \' ^. j ;;5 _( e! x1 d0 u' H! g, x1 y
;; If an item is a member of the list, then return its index number, else 8 o( }" ~) z* b/ l% I j6 n, o/ T
;; return nil.
9 R$ `+ t; ]5 E [' W ;;1 X2 a3 M; h6 {$ w( @6 n
(defun getindex (item itemlist / m n)
; f* s5 n% V& n/ {" i) D; ]' M (setq n (length itemlist))' V: e; ^7 @+ i* }- n
(if (> (setq m (length (member item itemlist))) 0)
5 |7 M% ~) J2 ]4 y/ T9 @ (- n m)+ p% {' z ^6 Q. P- @) \3 |
nil
3 A* Z5 N2 [# ^" Q. D7 G6 \ )
0 X H1 B" B) M4 j/ u# m: e& x )
/ q; r: P5 C; g9 L7 I D3 h ;;, ~( b4 S6 G, S4 x
;; This function is called if the linetype is set "BYLAYER". It finds the ( I* \8 y' `7 s$ f$ ~9 O% W
;; ltype of the layer so it can be displayed beside the linetype button.
, R# _8 ~' t8 Y+ Q1 W& _, I2 Y8 k ;; Y( |/ ~8 a% X, c3 M; n- s$ v
(defun bylayer_lt (/ layname layinfo ltype)( }) k A6 ^! A& b/ E
(if lay-idx
3 p9 t. |( P0 z( Z- y (progn
; D; Q) u! `& O& c+ m& L (setq layname (nth lay-idx laynmlst))
" ~% D" y5 Q- l) ^: D (setq layinfo (tblsearch "layer" layname))
3 O6 g, C) l2 Z) d (setq ltype (cdr (assoc 6 layinfo)))" y/ E* |" C, f- ?/ {; m: Q* ?, k
(strcat "BYLAYER (" ltype ")")
+ P3 p: \+ u2 P" _, s, N1 X2 P% S )
- s& Z0 R, h9 N& }0 ^ "BYLAYER"7 f( N' g& D* L& r/ X
)) q4 Y! v' n. v
)
" U4 Y; f9 \. p( n ;;0 A4 [9 {6 a+ t' l z$ H& i
;; This function is called if the color is set "BYLAYER". It finds the
$ f3 B/ c) z; w. A" |) c: w ;; color of the layer so it can be displayed beside the color button.: c" E9 S ?9 h, G L
;;4 A6 h7 T. x) U( e
(defun bylayer_col (/ layname layinfo color)
/ g$ O% i. u0 z (if lay-idx& g; n/ k* k: x
(progn+ \& j% w; I- `' A6 W5 F/ `
(setq layname (nth lay-idx laynmlst))* h2 W2 [: |) f8 n _6 j
(setq layinfo (tblsearch "layer" layname))
$ R7 a' V- l: f. I (setq color (abs (cdr (assoc 62 layinfo)))); M$ w# [6 D' d7 ~% o( L, W
(setq cn color)
+ S# z+ Q/ G6 Q1 A8 f6 L (strcat "BYLAYER (" (colorname color) ")")' `; a- G1 @! \- t" O
)
, z- ^5 f: ?5 z6 F7 f+ g5 w2 N6 T (progn
f& Z' O* Q4 [7 j: D0 C) m (setq cn 0)
. ^: {+ _! j; S7 i( F% W( U "BYLAYER"
5 R7 e) w6 f) J- I5 A/ G1 F. O1 _0 ^ )* K _* I# g9 e/ A: d
)
' e( }5 C3 E) t )
( o$ w4 U/ H+ h, g8 h! w/ P ;;- s, |9 c+ q* `- x4 Q4 p* F
;; If there is no error message, then close the dialogue) p0 ]9 p: J* ?3 e
;;& t8 m% s5 U; C# I
;; If there is an error message, then set focus to the tile
7 ~3 Q3 y* j4 e. `. m) q, W& q ;; that's associated with the error message.
# L! v, [8 F1 B) r" n- _ ;;
. `) P l/ l2 G3 H8 S (defun test-ok ( / errtile)
9 H! N; |! K- [& O1 z C (setq errtile (get_tile "error"))) ~7 ]: G5 I- Y& t3 k* A
(cond6 C |. I- V# ]* V) m! H
( (= errtile "")8 [0 a: @7 J7 p# n1 {
(done_dialog 1))8 x) _( `/ [( }% p3 u% \! ]2 y' T
( (= errtile "Invalid thickness.") [: m/ V) q, c' X- \
(mode_tile "eb_thickness" 2))
; P& \6 V3 d) p U* r1 ?8 J% y ) g" o. f( `+ X
)
1 B N' K) Z5 F) Q+ H5 J2 X ;;
" P& L2 W8 ~- N ;; A color function used by getlayer.
, _, T7 [# F3 v ;;
2 N$ ^5 l# ^% ^+ \0 S (defun colorname (colnum)$ U4 @* p" W/ H! B8 m
(setq cn (abs colnum))
8 g& \. g8 T* y6 J (cond ((= cn 1) "red")
h0 A" B9 W0 X( ~$ p: s4 ` ((= cn 2) "yellow")
$ W4 v- Y" e* ]7 p! c7 p. q ((= cn 3) "green")
) U. v3 a8 z! u/ F ((= cn 4) "cyan")9 Q5 ?, b/ c& Z, Z9 X
((= cn 5) "blue")3 {' j% i' k) s: y) p# p
((= cn 6) "magenta")! O) c& R8 O& z0 ]3 _( R$ S
((= cn 7) "white")8 N C7 ~& z8 Y3 v: ^. q
(T (itoa cn))
6 ]- m5 D2 V0 I& \3 W, h$ Z )
" _9 `! v+ i8 B) g )
& r5 E' ?) U5 C3 a: E
- R; ~& w0 c, k1 Q& e) k) t7 [# ?/ ];;; Construct layer and ltype lists and initialize all
" @' S' o; ]7 \6 \;;; program variables:6 e3 b9 ~* X+ U" a$ S3 Z
% z% c$ }( ^9 P, y( B (makelaylists) ; layer list - laynmlst$ c$ Z6 r7 [: e4 W) s' D v
(makeltlists) ; linetype lists - ltnmlst, mdashlist( @- q- C- b& D+ @6 s+ Q! T
;; Find the property values of the selection set.
1 }8 b# r9 i3 A ;; (getprops ss) returns a list of properties from
% ^* Y1 ?% U( K1 S* P6 ]6 a ;; a selection set - (color ltype layer thickness).
Z! {6 x" ^# o8 g5 w h (setq proplist (getprops ss))
" m9 D9 m3 o4 h) n2 G (setq ecolor (car proplist))6 u+ u: `# F N! k4 _- N% c
(setq eltype (cadr proplist))) _, [5 C4 ~# j. V- i, K% u# }
(setq elayer (caddr proplist))
: Q1 S! k# H& g/ w; v& @( P (setq ethickness (cadddr proplist))
: I" O# _) P: ] ;; Find index of linetype, and layer lists
" ^# G L4 e. v7 C! [$ K9 a [& q (cond
5 ^6 y! A( \$ U2 @5 u3 K7 R" j ((= eltype "Varies") (setq lt-idx nil))
% ]3 q8 K$ g" ]1 D; @; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst))) S8 m3 Z& ~# m* X+ B
; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
3 e: v z* Z& y( s (T (setq lt-idx (getindex eltype ltnmlst)))
. m4 g# H- n4 Z7 \ )5 t3 l1 u& \7 }/ e H. u
(if (= elayer "Varies")
$ |9 g" z1 j+ f+ E5 u (setq lay-idx nil)
, c0 Z( G( W3 b1 H3 I3 @ P8 ? (setq lay-idx (getindex elayer laynmlst))
) Q. q- z2 W2 q; x2 g" d )4 B# Y( Q. ^4 v$ o- x- n, a! ]
(if (= ethickness "Varies"), g8 t" ~% j- q
(setq ethickness nil)
h* A% t) n2 t& y; R4 ] )2 y: E5 w9 g0 B2 G9 d# q
' d. Y5 _+ ~- j; G/ J, ~
) ; end (ddchprop_init)) `9 U }# c4 `% W2 V
9 {( b) K5 K' P. U
;;; (ddchprop_select)3 _8 M: L9 b$ C6 h. ]( Y' }! l) K1 e5 u
;;;
9 B1 P) Y( C$ u! w: g;;; Aquires selection set for DDCHPROP, in one of three ways:! p5 j' K, R" d! d
;;;
4 F0 T" u* k) P( f8 q( M( G/ k;;; 1 - Autoselected.
& |/ L+ X9 @9 g9 ?. B4 X3 c; H, h;;; 2 - Prompted for.
3 A# F4 t- M" n x;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
! F+ D2 p3 @# n( M$ `, U;;;8 ?6 t' a# k/ q- X, A5 X
;;; The (ddchprop_select) function also sets the value of the
7 n; f$ u: d. }, `/ s;;; global symbol AI_SELTYPE to one of the above three values to) D' Y5 H1 l$ |
;;; indicate the method thru which the entity was aquired.# C. g6 \$ @- X
- Y0 ^- v5 n5 ?/ h
' C# M: f& u. U(defun ddchprop_select ()
% V0 q1 D) q b6 c3 Z* k (cond2 d5 b$ A5 d9 g
( (and ss (eq (type ss) 'pickset)) ; selection set passed to$ ^, b' C" a- T. y w
(cond ; (ddchprop) as argument
: b- q D" V; ^% P, A ( (not (zerop (sslength ss))) ; If not empty, then
( G& W) ^& H, U4 i1 W- V$ b (setq ai_seltype 3) ; then return pickset.1 q# k. _" F) _! [# i+ O
(ai_return ss))))' K, K: H4 x# j. I- }- M
8 d; c0 z: g- t ( (ai_aselect)) ; Use current selection
) D" v: y/ H0 J5 n/ @3 ?) j ; set or prompt for objects( x4 Q, j+ {- x* U7 m; Q0 D L
1 p @2 t, ]6 j% \0 N2 y
(t (princ "\nNothing selected.")0 m0 U& D% e- ?! b- S: k) G0 c
(ai_return nil))3 v" h, v6 r: e, t8 Q4 E
). X. K1 D( x6 [: {6 ~8 g
)
1 U& ^2 n9 s/ I, b- J8 S4 S% b
5 [8 Q+ _$ }6 `2 o- E;;; Define command function.
3 Q/ F" e) a& U$ h% l X- V3 c% M0 C- z7 q
(defun C:CH ()/ y+ Y0 y/ B. Y
(ddchprop nil)
1 l8 @& r, q: b/ U (princ)
5 G3 M+ z' x) U5 q6 Y2 i3 O)
/ h$ ] w7 o) ?8 s7 d6 D+ @* r& M! _- `) C0 c' m+ t T2 _: ~
: M. {9 d1 t8 t& ~$ ^$ r;;; Main program function - callable as a subroutine., j) b4 u- y3 n2 I+ J$ X n& ] D
;;;
. {4 i5 t( v- \4 P+ z1 q: r, B- z;;; (ddchprop <pickset> )0 X g3 X/ ~3 r, ?4 w
;;;" u/ R* z- A& [: j
;;; <pickset> is the selection set of objects to be changed.
5 v. f( J$ A# {) @+ }$ w8 _( ~& w;;;
4 s% u! R2 x0 X8 }0 d;;; If <pickset> is nil, then the current selection set is; V5 u8 }+ \( J; L$ W
;;; aquired, if one exists. Otherwise, the user is prompted
5 O! b0 }& `: [8 d" M;;; to select the objects to be changed.5 }4 e7 p7 S( e& E* g
;;;- F: K. p2 F6 ~7 R$ A2 z
;;; Before (ddchprop) can be called as a subroutine, it must; n G* H, j6 z. n
;;; be loaded first. It is up to the calling application to x7 v) Z3 p# H0 O, k" x( m
;;; first determine this, and load it if necessary.
5 o7 ?- [' w- }# p3 y- `
9 _# M7 k6 j) `" w0 f# J+ V(defun ddchprop (ss /4 b t& z2 c& Z( v# w& U) E# I
1 w6 t- M% k+ {) @9 u' |/ Q add-mdash ecolor ltedit_act s, ^# \. _6 l; X
assoclist elayer ltidx selset
: \: b& p# R( l" _/ A bit-70 elist ltlist set_col_tile% F1 ~& R7 U; E& U m6 _) N
boxlength eltype ltlist1
& F& M, l- F$ L7 J bylayer-lt en ltlist_act sortlist/ M! J, X# G( H4 g. u( Z
bylayer_col ethickness ltname
; U8 K. Q! u$ }1 P) H* J. v bylayer_lt fchk ltnmlst sslen* Z) l, w6 X3 w; O2 H5 I
call_chp frozth ltvalue templist* E; K- V# i3 T
chk-col getcolor ltype temp_color
& c& ?7 M! i. Q7 t$ A8 u/ Z& n" c chk-lay getindex m test-ok
* [' Y3 W1 I, c6 |) {$ c6 z chk-lt getlayer makelaylists testidx
3 ^7 Y- b' ?/ q+ O+ d9 j/ [+ o chk-th getltype makeltlists testlay
# Q7 |, S) T% A% _ cmd getprops match-col th-value
" |+ `7 n: I7 ?& y2 x( W cmdecho getthickness match-in thickness
* m* r: d( L: u+ E, j cn globals match-lay tile8 ]' |" P2 k3 p, E: {' B
cnum go match-lt tilemode
& J# ?/ e& [% E1 _/ L col-idx index match-th tile_rect v) M0 N' ~# u2 [
colname item match_col vi- R& D6 f* ^/ Y/ t1 a
colnum item1 mdashlist vpf
/ o6 n% d& Z+ d9 X5 Q color item2 n vpldata, d- |$ Y- W! W5 j6 G. r
colorname itemlist name vpn1 t/ {5 X' h- }+ u' b3 j
col_def lay-idx ncolor x
! |# Z- A! N, l; x# n N7 } col_tile layedit_act nlayer x1
1 { F6 e) t0 V' [2 r" J ctr layer nltype x2
, c# x4 _: \3 L cvpname layinfo nthickness xdlist
% ]$ x+ M6 {: [6 I9 v# {) b, R' R+ x( F dash laylist off y
( s2 V- j+ F7 c* `3 g/ P6 Z dashdata laylist_act old-idx y1
( x- f4 x2 ?7 E9 @* f3 J' L dashlist layname olderr y2
5 z& e( e! s: W+ \4 s dashsize laynmlst on undo_init
" t4 ~3 U' T/ E& N1 b1 J dcl_id layvalue onoff
# F& \# f/ ~/ s9 V! P2 X& y linetype patlist+ P, w, U; C6 o1 ^$ O* X
ddchprop-err list1 pattern, q% z7 T; t! Q3 B+ Q
longlist proplist* }( \% K, f; }: A: r! ~
lt-idx reset-lay7 Z- k- s- e6 g( F
drawpattern ltabstr reset-lt' C! m% d U2 d. l' S, i
)5 \' [ Y' W2 T, g
1 x: W# U3 w3 V% s; | (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
& m. c& H+ D- p" k" W& J; n old_error *error* ; save current error function' E+ Y& m% s6 p/ _
*error* ai_error ; new error function, Z" ?/ T4 z6 W5 g# v# q: \, J
)* H- w7 I0 l8 d
; s0 W$ e Y6 i (setvar "cmdecho" 0)& W7 ^- `! P6 {- W) s( {. w/ ]
6 u: z& Q0 o- m7 G3 b% |) x
(cond
) N3 }' E2 e- g" H8 n8 i ( (not (ai_notrans))) ; Not transparent?. v) w c3 y) Q* k
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
& {# \) h* ]9 i! w+ ^0 w8 Q4 o ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?0 p+ G2 Z' [6 U* r- b" H4 a8 I
( (not (setq ss (ddchprop_select)))) ; objects to modify?
% F0 J$ m7 z9 {+ Z
7 F) [; T7 V2 U, w7 } (t (ai_undo_push)
, O: ^6 t; t+ Z- q (ddchprop_init) ; Everything's cool,
4 l" {* h: e$ R# r2 p. c* a( K7 ^ (call_chp) ; so proceed!8 f) t3 g. `, z$ C6 Y6 L- W5 k6 l8 s
(ai_undo_pop)
r; E' u- C) J# K5 O- {- B( u )- F1 _ K* l* g- D: b# r7 x5 @4 H3 S
)
8 ?6 C. P2 b' ?- c7 {
0 D+ Q" j5 _0 }1 b$ f (setq *error* old_error)
2 B; J: R \1 c* x. ~) D2 d" A (setvar "cmdecho" old_cmd)
" j: U9 L+ q* u; Y7 R- T (princ)
2 F+ u/ G! h/ i/ ?$ U! }1 ~)
4 ]2 y" P$ ~# P# P+ R
7 o! k, Z i6 Y# D2 G: Q; q;;;----------------------------------------------------------------------------) x5 `3 K7 k# D! z
$ d- L5 h$ t2 e' g- @
(princ " DDCHPROP loaded.")7 `2 t" m1 ~6 {3 w2 K: S
(princ)
?( p. Z, t) J% s
. Z9 ]+ j& c. b1 v% U% Q7 t: v;;;----------------------------------------------------------------------------
; L, z4 I/ F' |2 H0 F/ z4 Y
* A# O# y0 D# z% ~) I7 p9 R$ X;--------------------------------ddmodify.lsp----------------------------------+ \- |( j! s8 z: e) [+ o4 T
; Next available MSG number is 111
6 y. i: Z8 c3 R3 B: O4 x$ m; MODULE_ID DDMODIFY_LSP_
0 }4 T: S! p# w7 l# j$ l;;;----------------------------------------------------------------------------2 b$ L3 C4 c8 o- X. }, @0 ]
;;; DDMODIFY.LSP3 | l, k) W; t5 L S* r
;;;
5 A$ ^2 m0 D6 K! \/ L* };;; Copyright 1997 by Autodesk, Inc.# I7 g) C& Z. L# n" |6 t" x
;;;) g( f, x8 }( L* c* j
;;; Permission to use, copy, modify, and distribute this software
: }! z' m: g0 d6 j2 k4 ]1 r;;; for any purpose and without fee is hereby granted, provided9 R- }8 M* A5 ~ L! O
;;; that the above copyright notice appears in all copies and
8 C* J8 M6 q% j. E; w' i;;; that both that copyright notice and the limited warranty and, L+ H& c4 g! p+ [
;;; restricted rights notice below appear in all supporting
, }8 z+ h3 h& K5 c. z;;; documentation.8 S# \4 X+ M$ a4 H
;;;* o/ N; r6 B n
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.5 Z3 B6 M) r% r0 @$ b+ ^$ [
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF% H6 R1 u& d' w- h
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.# E4 y1 [( K% y ?$ I3 I* \9 b
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
. ~! n' G+ ? Y" p' Q$ D f;;; UNINTERRUPTED OR ERROR FREE.
* b% G' R$ z) \- ^! L `' y;;;
* k( g' b. R; z& C( z# T) [$ m A;;; Use, duplication, or disclosure by the U.S. Government is subject to
. V5 F% L5 K" E; ^- Y( g;;; restrictions set forth in FAR 52.227-19 (Commercial Computer0 m2 ] m0 Y9 m' Z5 u* `
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii). Y; i9 g% ~, x6 l7 P+ I8 ?) {# v
;;; (Rights in Technical Data and Computer Software), as applicable.
5 _0 Y+ }8 ^7 D( ~! g;;; q+ S( J% a6 _; R5 b7 F" u/ w
;;;.5 o% A7 Q, t, G& f! B. Z
;;;( C5 i: J3 y$ G6 I
;;;----------------------------------------------------------------------------8 _2 v S' [2 l$ h' d
;;; DESCRIPTION% k5 a6 o3 v6 D& s5 q
;;;4 C$ `9 U3 N9 t( p3 H4 S- I
;;; This function allows the user to get a listing comparable to the LIST
5 X/ g' ~. E1 Z+ C' i+ Z$ T6 \;;; command for most objects. In addition, most object fields in the0 |; U# D) Q$ N7 {( l
;;; dialogue box are editable. Points can be specified dynamically by# I" K+ U; E/ f8 g
;;; temporarily dismissing the dialogue box. Each object has a unique, M4 K$ e+ M. X* T- j8 f
;;; dialogue.
$ W$ Q$ j7 x& y% ?;;;
+ D. _+ x6 ^/ [2 j! m5 s7 @% `) O;;; Naming conventions1 @0 g( N2 f4 w
;;; Long function and widget names may use an underscore "_"
+ t0 F [5 V% v" g2 @) ~1 O @$ X;;; in their names to make them easier to read, long variable& t4 p, F" U7 i) u6 s8 T
;;; names use a dash "-"., c" h! _; b2 s6 k# \4 I
;;;----------------------------------------------------------------------------
. H$ O8 M% a; ]0 Y8 O;;;----------------------------------------------------------------------------* Z! X4 F: a* v6 W A& e
;;; Prefixes in command and keyword strings:
- a n& z. z# S;;; "." specifies the built-in AutoCAD command in case it has been
& b0 U( O4 L! n% i A8 R- I;;; redefined.3 m# a6 l$ x: x! ?! A, ^$ o
;;; "_" denotes an AutoCAD command or keyword in the native language
! ?7 H! p- L4 T;;; version, English.
* F4 h" P, Z4 W5 I0 O5 Q0 X;;;----------------------------------------------------------------------------% P" E; a* Q! w" ?! ^" ?
;;;3 P) u4 q. a+ Q: X8 i
;;; Avoid (gc)s on load to improve load time.6 g" A* q& B! N F. y4 o" m9 l
;;;$ s9 f1 h/ q/ N
(defun do_alloc (/ old_allod new_alloc)9 f$ g; b9 O A6 I L9 W/ |
(setq old_alloc (alloc 2000) new_alloc (alloc 2000))
* v2 m9 F! t9 q) @! f( ]; C (expand (1+ (/ 17000 new_alloc)))
: T0 Y! e2 o8 \% r (alloc old_alloc), ?6 a7 w2 \* `# y
)+ ^; h9 ^# l4 \/ g# u: C2 v
(do_alloc)
/ k. }2 P5 J( O' g5 c(setq do_alloc nil)- H: f8 i2 g; _. z5 r, Y: k3 H, t
1 m6 @% t, t1 p9 i. B; ?' d! O3 @
;;;
: ^1 H _$ F9 t2 V6 Z E) N7 a;;;
6 m+ n( t U0 A+ D" o* F) c$ R;;; ===========================================================================
! l0 n# }5 x7 `2 ?;;; ===================== load-time error checking ============================# s' S4 x8 q7 P
) G1 |* q: H4 X8 W {2 o (defun ai_abort (app msg) d$ i9 t; A! o9 z
(defun *error* (s)$ I# {, }! G1 `, r D& G8 n/ X
(if old_error (setq *error* old_error))7 U: w4 a7 O+ \
(princ)9 ~+ j% m. K) A& Y
)$ e9 i( J' V/ e# f# V
(if msg, G/ _% c' o; i* E# y6 |) T
(alert (strcat " Application error: "
6 i5 V2 N. i: C app; u7 `4 }# V- q, ^2 }7 X, k2 I
" \n\n "+ L, M2 ~6 o1 q" y7 U9 U
msg J& N1 b0 {, G6 c0 E' V
" \n"! ^9 ~* F' L! L+ @5 K0 Z6 B) M
)
+ ^! i8 H" m' I7 P& u- ~ )$ l1 ]4 D7 p: a1 T( ~! \
). U$ y$ D8 p2 Z) v: _
(exit)$ |- y, e5 |; \, L
)7 k/ j$ I7 K$ r1 c7 Q
2 _: l( ?( b- k4 T# V2 n;;; Check to see if AI_UTILS is loaded, If not, try to find it,
6 z D; G( Z0 h1 Y;;; and then try to load it. If it can't be found or can't be
) g6 @! ^9 O" l3 q8 R. p, N& e;;; loaded, then abort the loading of this file immediately./ e$ @' _# N5 i
- i9 m3 L" @% Y$ Q: {; e (cond
; ^/ w! n3 Q7 C; v; S6 N" }: R7 p ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
$ |9 ~/ ]- N- X D$ P
' P: H4 \; u8 Q. I ( (not (findfile "ai_utils.lsp")) ; find it
+ u" ^9 p/ N' i) V' N& \ D5 { (ai_abort "DDMODIFY"
2 `" ^3 F. y6 v E8 j0 Y (strcat "Can't locate file AI_UTILS.LSP."
1 Q( `) G4 w3 y" e" l Y+ i' o "\n Check support directory.")))+ [# U* V+ k. p9 I: ^5 Y# F: K
( i$ b' g; l5 K+ {$ ? ( (eq "failed" (load "ai_utils" "failed")) ; load it- y+ G) L2 _! ?+ h& p" K+ c# a/ S
(ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
# R1 N. j+ o+ q1 V, R- x& {1 d )
7 J8 w8 B9 Z0 S% \* F/ n6 d$ G7 ]* ]
;;; If we get this far, then AI_UTILS.LSP is loaded and it can' @- F9 V* c+ Q* o6 K8 V
;;; be assumed that all functions defined therein are available." ~/ A6 G# \3 W4 q2 M
- o9 }9 w; I6 C. N" g& A
;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort5 x6 [' z) D$ I1 t: o- ~- ~5 x/ \# x
;;; if the file can't be found or xloaded. Note that AI_ACADAPP
# ? R; `7 s7 P: b L0 Z;;; does not abort the running application itself (so that it can' i3 W8 f# T5 s" Q. O7 @+ J
;;; also be called from within the command without also stopping8 ~( |* o% P4 G/ w# l: d, r
;;; an AutoCAD command currently in progress).2 s! r, { D! w3 b( O
# I! ~7 x+ K8 [( M
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
d2 J! Y* ~: f& O! G (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
8 @9 H( W; E; {4 v( Y1 A& | ) ; ai_abort's alert box dialog.( \. r* G# t+ e( C' F5 C& s
8 T7 M7 x# B: R0 w;;; ==================== end load-time operations ===========================
9 [7 L; K& S; l% c
, l% s" Q E9 E. l;;; global variables6 Y$ ]9 J. z/ ]. a1 Y* a6 H2 {
1 i& b$ y! h' s3 S+ d6 U6 s/ L5 s(setq hatch-elist nil)/ M% E6 f' U ]; I% u4 s4 z3 R
) C% n E) T: y# p+ W3 m
;;; If we get this far, both ai_utils.lsp and acadapp.exp are
5 j- L g: d) s. i2 P;;; assumed to be available.' _0 o, C0 a! F6 K, E6 ~
9 U6 N9 `! u+ \6 i1 e5 z( n;;; Define and encapsulate all subroutines that are declared
+ L: [* D; L& a7 ^2 e;;; locals of the (ddmodify) function.
8 q; k8 Y* |; D) N) S
; @+ S5 ~% | W* I(defun ddmodify_init ()
* X6 t5 q6 e) v& C4 e1 {/ N ;;8 X( }$ ^& |, e
;; These three functions modify the enitity list for common properties. Since
" p% u6 u- L5 e" H i2 R ;; color, ltype, and thickness are absent from the object list when they are
5 m! l+ ^* u! B0 Z Q ;; set to their defaults (i.e. color = bylayer), a simple substitution using
. C1 k/ W1 Z3 |3 s. _( k ;; SUBST is not possible.1 y+ ?8 E9 x8 v1 P& Z
;;( L- w: H) a0 T/ ^; e
(defun modify_properties ()& D `6 j! x# z4 B
(emod ecolor 62)- V" `; r# P& u2 q1 m/ T# `' o) f2 Y
(emod eltype 6); U7 d' ~+ r7 h' a
(emod ethickness 39)
' @4 E" r1 c; s$ q (emod eltscale 48)
: }& R5 \ N8 b+ k (tempmod elayer 8 nil)4 U/ v) ^/ [( f* Q2 Y0 b/ R# ]
)
( B5 c0 K3 [/ _5 @7 k ;;: |5 E9 l& H# @% q
;; This function is used for modifying common properties of the ACIS$ s' a. k9 A' e$ ?9 E1 ]
;; based geometry objects. Thickness is not valid for these objects: ?+ F( `5 }" `' h/ B/ E+ t) L
;; so it is left out.
# F. @4 |* j, N, [6 O4 t ;;6 {$ d) C; z! q% l
(defun modify_prop_geom ()
- _0 a& R0 f' T5 C (emod ecolor 62)5 Y# W+ t7 l6 J
(emod eltype 6)9 E- z9 s' P- e1 n/ J! R) G) |
(emod eltscale 48)
2 G/ g. ~, y' d) h) X (tempmod elayer 8 nil)
8 ^. X5 v' w: L# a )1 b" P8 F0 }4 V. |; k0 ^
6 N6 Z- M* R% K' b9 M$ \: M% O
(defun emod (value bit)
% } o7 w9 ]$ K" {, n7 x3 U) s (if (= bit 62)
% v/ S0 R" v4 d1 \# n1 J (progn$ ^ o7 K: |. w/ y/ P7 ]8 l. m
(if (or (= value "BYLAYER"); D. F# `0 }* P# l
(= value "BYLAYER")) (setq value 256))+ K0 V- H- @% D+ X5 ^4 ]- ?
(if (or (= value "BYBLOCK")+ i3 }: _; I8 ?5 H% M6 l
(= value "BYBLOCK")) (setq value 0))- U/ t7 W1 ]: m) i" P8 `' X/ o. L% q
)
* Y, R6 |2 J" T1 j$ E3 t )
$ p( r2 O! W* T4 n# o# @+ R (if (setq oldlist (cdr (assoc bit elist)))
9 I4 p! v) Q4 S1 {6 H0 w: r (tempmod value bit nil)/ W% _; A9 e0 `' H3 c
(setq elist (append elist (list (cons bit value))))
) Y/ a# x( B' q* G+ ?6 Q6 w9 {$ _ )
8 U! |9 U' t7 P, D' t ) H* S; \+ M9 X j5 E
;;
& s x4 L; T2 x i9 ]9 \0 I0 ^# F/ Z1 e ;; Resets object list to original values. Called when the dialogue or- B# a/ G& E. c# Q# K. W- M
;; function is cancelled.
/ x) I/ \# b, X, M% N ;;
% w" t1 f5 p- C/ u5 s( r9 n9 T (defun reset ()5 t& D0 d, A$ w$ x- R. O/ i4 Z. n) [
(setq elist old-elist
5 `* r! w" ^% E0 x' m. w ecolor (cdr (assoc 62 old-elist))
5 H& H# r: v, ?+ F4 J6 \ ethickness (cdr (assoc 39 old-elist))
" l* d, N: q' Z eltype (cdr (assoc 6 old-elist))
5 [/ G) }& w' @& F elayer (cdr (assoc 8 old-elist))
7 o5 J4 ]# O$ f7 ~/ U' n eltscale (cdr (assoc 48 old-elist))
: ]& ]% X, s4 @6 C )8 {3 z' r/ M5 Z0 \! z
(if (not ecolor) (setq ecolor "BYLAYER"))5 L' k% g1 q% I3 E5 L0 ]) V
(if (not eltype) (setq eltype "BYLAYER"))
/ {- l6 x4 @8 a9 m (if (not ethickness) (setq ethickness 0))
7 `8 D c a: [% @7 M) i (if (not eltscale) (setq eltscale 1))8 }6 x; @; A2 T) R: \3 `0 P- {
(modify_properties)
& ?* v+ H( Z' r& w. L& U( b7 l (setq reset_flag t)
" v5 w) F( I$ D, ~1 I& C (entmod elist)
! b" Q9 @2 B: r& f! X/ y* l )
- N, L. I! ]" c. P0 b ;;
. q- N& n6 ^, P5 m7 h3 S; R ;; Modify object when dialogue is temporarily dismissed to reflect latest
0 g& e. w) t1 {; G ;; settings of dialogue. It converts the point from current UCS coordinates to
6 G- t8 _4 w; b; }! V; Q ;; the proper object coordinates (world or object).: O4 ?6 G1 I* M
;;
& }5 ]5 q1 o# c" j i, Y. O ;; Arguments: value - in current UCS coordinates4 O! t% ] `. O* x* E7 O
;; bit - object code (i.e. 10 for start point)! N6 x8 `% W' q+ ?
;; ptype - point type 0=world 1=planar
/ _2 s4 g9 R1 b/ ^ ;;
- M @) D4 @9 W1 l2 l, R f (defun tempmod (value bit ptype / newpoint)
y9 s1 F& ^& i; V! y. g3 G0 D (cond, D7 Q; l& t* d8 w0 H
((= ptype 1) (setq value (trans value 1 ename)))
; `' }1 H, M9 x ((= ptype 0) (setq value (trans value 1 0)))
+ h5 j2 }8 ]' H+ M9 ?: D- I4 B ), W7 T3 R: |4 J' m7 H
(setq elist (subst (cons bit value)
5 j- Y$ K1 C; o1 @ (assoc bit elist)
1 Y! I9 W; O0 t% D! X% B elist. S4 r- [: Y/ \& e
)
( \2 T6 g7 X- u {( ]; ]9 ?1 S2 s )
6 G( Y" _8 @& X" q )* b) `6 f/ G5 [$ S* }
;;
5 O, e9 Q) W4 G( E3 _/ q ;; The following functions are called after a dialogue has been temporarily: V4 a- y: a$ w4 p- j
;; dismissed and the user is selecting a point. If a point is selected the8 g0 h T" I) W* |. ^5 u8 c* z/ d
;; object list is modified and new X,Y,Z values set. If no point is selected) L) U: e$ h5 `- q; M5 B
;; (null response), then the point is reset back to its previous values.) H4 q. J( V: I; n, Z5 O0 h$ |- Q; F' K
;;8 v! z0 K! h8 P, A C3 t
(defun ver_pt1 (ptype)
2 x* ^- q! W" O% _- Q. p& I, H* o (if pt10 C3 D! t4 R9 V, x. f/ V
(progn
, F3 B' u! H V8 @ (tempmod pt1 10 ptype)
& D' a F0 d i, Q& P+ { (entmod elist)
* [+ K P- B2 ]! r$ p4 |: U' X )
( H w5 Z8 `, Q# v. e (setq pt1 (list x1 y1 z1))
! W9 n0 {& T7 W, Z2 H8 ^. Z# i ) U& G% j* D4 X1 a6 o4 J4 @4 G# S+ f
)
$ Z0 ?% m0 s t' d8 ~, H0 a% X1 P. ]8 }1 }
; (move_pt1 <ptype> )
* K) _* B9 {$ Y3 M/ ^- ?6 w7 c1 U7 V ;* ]+ `" D9 O/ X! G6 f E
; Called in liew of (ver_pt1) to translate block insertions which
5 A1 c( e8 G3 U4 f" m( e ; might have variable attributes attached to them. If the distance
6 m* l! f* c/ @+ f: S* a6 \ ; the block is to be moved is < 1e-6, the move is deferred.) |- R! S0 Z& V
H; [4 m5 J* a' b& h% S) J+ J% b
(defun move_pt1 (ptype / basept hi)) ^- V6 l4 Q9 C2 p8 W/ N
(setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
D9 D/ @" V# Q8 h2 G (cond
: V" P2 S" }' E7 {2 Y' i ( (not pt1), s% }8 D- @, m) E: S
(setq pt1 (list x1 y1 z1)))& E; U3 k) y$ f6 d
- V6 b" E& I. r9 _/ N2 _
( (> 1e-6 (distance pt1 basept)))
7 Z+ r* [0 q$ i* X1 H5 F9 B5 V F. X- A ^9 @
(t (tempmod pt1 10 ptype)& ]+ ]' @/ ^! j2 |" Z- I- J
(setq hi (getvar "highlight"))
- r3 K% F3 h v1 B8 U/ q8 F8 p (setvar "highlight" 0)
6 j6 e1 F/ s$ \8 o; F (command "._move" ename "" basept pt1)2 D [- `: V9 u5 s/ p) g
(setvar "highlight" hi))1 V6 O9 b& ~& J( C% {# ]
)
; Q6 x. l8 N; M1 G )( `, A+ O1 _. ?1 V1 C# Z
8 }& X! T% Y8 [1 z
(defun ver_pt2 (ptype)* F6 d, d' @: w9 B3 `& k- y- _( l8 n) r
(if pt2+ A, ^) L' C( b) ]. \- m
(progn# S2 S, }1 b& c6 y0 R5 c% j. U {
(tempmod pt2 11 ptype)
% Z4 J0 T9 X3 n (entmod elist); D( j' J) `3 w1 g9 I$ b
)
9 c2 S( x4 p) e% a, v (setq pt2 (list x2 y2 z2))
5 G! A% P0 Y" l {' t )
6 [* ]# K; j& Y$ e* O8 x: o* \7 N )
1 y& ^& _/ |8 Y& E- H Z* {' c. W$ r6 Y7 I$ c/ d9 a* j
(defun ver_pt3 (ptype)3 _6 F1 [. N1 d s7 B
(if pt3. v l- m0 h$ E, k
(progn3 t4 H. i9 ^" L. B9 m* o4 U
(tempmod pt3 12 ptype)
9 g/ s+ e& _+ B, g3 h2 w: V* @ (entmod elist)
- v, W6 [( }6 k, { )( ?9 t; ]5 U2 z$ d( h. G
(setq pt3 (list x3 y3 z3))7 Q4 x' S) F, ^4 J
)) L2 |- X! j7 S0 Y+ b9 B( b* }% B1 \
)
( ?9 L d) s# U
8 q2 F" v7 v1 r3 ]2 Q( y3 B+ [9 x/ J* x (defun ver_pt4 (ptype)" Y0 B7 q' p4 O6 D: O
(if pt4& m% K' Z( v: P' l0 `4 p5 h
(progn
6 a! _5 f2 m" S7 V; i8 ~% i (tempmod pt4 13 ptype)
7 e( h. T! n" c (entmod elist)4 z6 H) _ U( T7 j
)
7 [3 [7 u4 Z9 h+ M2 R' ~ (setq pt4 (list x4 y4 z4))
, j. l/ T* c+ _( s/ O% O1 s )
2 {6 i0 Z8 k2 W* h6 u% X3 E, a )
* e) @6 `/ h% x5 |1 Q ;; Xline/Ray
+ I5 v: D$ X% ?- Q( d* x. H ^ (defun ver_xline_pt1()% B2 e1 Y- n- c0 z0 t: i# b
(if xline_pt12 o+ T/ M8 F, ]$ k- ?& e5 Z
(progn; M+ ~: T+ R+ _6 o, s! h3 D6 R
;; convert to WCS.
* I' |7 m- f+ U0 y: F* ~5 ~3 s (setq value (trans xline_pt1 1 0))
: f* j9 h2 ~. L# \ (setq elist (subst (cons 10 value)
0 M+ V0 m' b0 I2 _3 F/ n+ f (assoc 10 elist)
/ d7 k2 f" n! P) u% `" ^ elist
( y4 D0 S0 Y6 \# f: J2 {3 v )% _7 s- q+ {7 @6 t, d# S
)
7 ?$ R, f. V2 V2 i ~ )
! P9 l4 T% O; O1 d3 A (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
' a# I @ h- v: v( w& _, s )# k" s& W; ]" m( m
)
0 h. a3 C: N ?2 B! m4 W
8 P, S' m! B2 P4 @' W (defun ver_xline_pt2()
9 s1 w4 Z8 p. o! K. V! K (if xline_pt2
, m+ q9 ^" A% l. X (progn
o! B7 @! U8 O ;;/ \' F0 c: f7 q2 ~
;; Calculate new Direction Vector WCS
' x, a" b2 |& }. D1 { ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))* L& V. k2 V# Q3 ^3 \+ n( e+ Z7 f! L
(setq temp_dir (trans xline_pt2 1 0))8 b7 X% Y3 R0 @
(setq temp_dir_x (car temp_dir))
- W0 H( X4 V7 f3 \/ @ g (setq temp_dir_y (cadr temp_dir))
% A2 ~: z' c! A. e (setq temp_dir_z (caddr temp_dir))8 u) E4 P9 C/ \6 m1 @ o; \! P T
' c* ^& X: b6 i9 U4 l$ |% `0 J (setq temp_xline_pt1 (trans xline_pt1 1 0))2 L4 H# E% o- Y+ l% {+ H# x- S
(setq temp_xline_x1 (car temp_xline_pt1))
; \5 k6 [- o5 E* ~ (setq temp_xline_y1 (cadr temp_xline_pt1))' D0 W( G8 {9 O
(setq temp_xline_z1 (caddr temp_xline_pt1))+ O7 x2 P3 _9 T
+ U, p9 K2 l$ z: g& R$ V
(setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2). Q( n D, |; k: c: t6 Y4 r0 f
(expt (- temp_dir_y temp_xline_y1) 2)1 M9 d9 z4 Z$ ?0 f ~/ Y& G
(expt (- temp_dir_z temp_xline_z1) 2)
3 V* ?7 y! C x9 u n4 N8 V6 k) a: J )))2 r! g! s1 @# e Z' w2 E
(setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
" S9 h) @4 y9 ^% G/ N! F$ z- Z (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))6 f# m+ q! k' D
(setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
" J! y( f9 ~9 i0 w, `9 y8 R, D2 j (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
/ w) ~8 {& B/ A g (assoc 11 elist); H# m7 [- E4 R
elist
! z! b1 e& u: R; S$ U! P ). z1 s1 U) ~: O% I: t9 A$ t8 i
)
0 B% ]7 ~& [, Q7 | @ (entmod elist); `% E) G; K( J' z% A/ x$ p
(setq xline_x2 (car xline_pt2))- t5 c/ P3 `% c$ _( x3 Y
(setq xline_y2 (cadr xline_pt2))% f; L2 r- c: q) l/ L8 S* ^, S
(setq xline_z2 (caddr xline_pt2))
C, u6 o7 R% \; d" c1 g0 G3 F
( y; F4 k& j6 f% \2 x, t1 V% O/ [ y. G! f7 p. V9 }5 h& W1 h$ v7 B' ?
)
. M* { R) l8 n ] (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))8 L( V! L+ E, R, A" E
)! \3 B% g) Y3 V7 h: i h |6 R h
)
4 ]& w9 J4 B; c) P8 ?$ ]% p! B7 w7 b# I0 G& u
;;
1 l( T8 J: r3 a ;; Common properties for all objects% F! l# \$ e4 s+ `8 n' K* ?5 ^* V
;;, A$ H; ^0 \4 z3 |! I \( j
(defun set_tile_props ()
2 x& Z1 [9 t, g; u+ t- h* k (set_tile "error" "")
9 T8 k, [, D( H# i% ]. b7 L% x (setcolor)
5 O! X1 A. ~# L4 w. t) [ (cond' J* n4 i0 N e4 p" {" P: z) _, V
((= eltype "BYLAYER")( s9 ? q7 v4 a* }; M
(set_tile "t_ltype" (bylayer_lt)))
5 T( K: K8 |, ~ ((= eltype "BYBLOCK")
! Q' I+ f& D) Z (set_tile "t_ltype" "BYBLOCK"))# ]" q" M. ]; }* q
(T (set_tile "t_ltype" eltype))
/ x: B3 a+ o7 t9 e6 k )% ^+ P; l# s: P) m: l$ [% J
(set_tile "t_layer" elayer)9 r( J( a a' v n
(set_tile "eb_thickness" (ai_rtos ethickness))
7 U$ j0 J! W' w: o' G' T (set_tile "eb_ltscale" (ai_rtos eltscale)): r; i/ E: l! T0 E) X9 K1 S
(setq which_tiles (ai_common_state etype))
# |' \4 A( S/ e( G' M/ p9 j l ;; Disable tiles if need be...
/ u2 a( b+ }! d* d+ q
) a' z M; P9 N% }* O; l, j! | ;; Layer Button and Text Field5 `4 U: ^/ L5 w# w3 e5 I' Q
(if (/= 1 (logand 1 which_tiles))0 T" [( a+ Q: [2 u( g
(progn3 R U' `; t) V7 O! p% r
(mode_tile "t_layer" 1)8 P% I4 k+ p8 a: C% }
(mode_tile "b_name" 1)( |* l. ~, P( `) J8 _
)( ~% i) h" K. [& s" Y- {2 B @
); c: R. y, a; D2 u, a2 U1 r
;; Color Button and Text Field
% L. w! U I/ I: E (if (/= 2 (logand 2 which_tiles))
4 F8 n7 B; T& i1 E( K, h* ^. d (progn7 k7 S/ K; c6 s' U# `# n
(mode_tile "t_color" 1)
0 a' D f* h3 v, n, K, g, C) K (mode_tile "b_color" 1)
8 F) _% b! i1 G( \3 e5 D4 _) C' r# w2 b (mode_tile "show_image" 1)
! U+ c Y9 W- A2 ~ F4 n8 R9 {+ [ )& U- u9 S& q* q% x! X0 Y
)
9 K8 b- F2 s3 N, t ;; Linetype Button and Text Field
9 a4 n" k' `* n1 x (if (/= 4 (logand 4 which_tiles))
4 ^% h( X" | q% z7 ~ t! p% e (progn0 p9 O8 {1 n$ n% h+ z
(mode_tile "t_ltype" 1)8 r+ b# g* W. s9 ?, B9 W Y, ]% H/ V
(mode_tile "b_line" 1)3 b% c$ T. T( a$ j! x* P) p+ w3 B
)3 N, A! c- V" @1 F# y: h
)0 q- D- r+ c M" X; E
;; Linetype Scale Edit Field9 p& m7 ]( X' o+ _" @
(if (/= 8 (logand 8 which_tiles))
& ^7 L: A+ R( G# m (progn3 n' F/ ~" s c. }) P2 A6 a) x; i, N
(mode_tile "eb_ltscale" 1)$ ? [& K; Z8 d$ W6 f/ `* W/ y6 t
); V1 U4 Q7 w: z& G: C, W
); g4 ?# Z5 z! n: F% q
;; Thickness Edit Field.: \# }8 ?) b5 w% I
(if (/= 16 (logand 16 which_tiles)) E+ N+ I8 L# l- g! y6 ?
(progn8 }$ s( T- p0 @+ c
(mode_tile "eb_thickness" 1)( R% W( T4 D6 A8 l
)1 C, q- [, l1 W5 h
)
. O; E) W3 h' x* O) h )
7 C' `5 U7 Q% P. i; y$ b D7 T9 d6 Z ;;% U! \0 O& r; J8 A! `" X
;; XYZ Point values for all enitites* t" p X" q& e& ?- D3 p9 P0 U6 F
;;( C; c& j( m- U2 i L( g
(defun set_tile_pt1 (ptype), @! X# x) K3 K/ K- W
(if (= ptype 0); q* t, [8 m8 ] {
(setq pt1 (trans (cdr (assoc 10 elist)) 0 1))+ @5 A. s% E# I& q: p7 J
(setq pt1 (trans (cdr (assoc 10 elist)) ename 1))9 p" R" G2 A+ _3 a7 P
)
; x" {5 j+ ?1 c( N9 j (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))
% F9 ~4 ^2 o+ F! V2 p8 | (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))9 D8 Q4 p' M1 y
(set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
, h& p6 h( I/ Q7 ] )
: J& t$ F/ |. f1 s (defun set_tile_pt2 (ptype). f! ?) G4 P4 |, B) J3 a
(if (= ptype 0)
$ k* K4 t( ~" G+ D9 V1 J9 V" D2 f (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
& Y% z5 K" ~7 ]; `0 J& B (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
, U* Z$ V c( |+ a )
8 F! B8 g+ I# P. N (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
3 v# Z5 x2 F2 F" S' X2 Q (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))$ A% t7 b9 L3 [/ w
(set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))8 K3 X2 @, u3 D& @. _5 X
)
4 E* ]2 F; i/ w1 M" R6 n (defun set_tile_pt3 (ptype)0 ^! l3 ]7 b4 e& D* o
(if (= ptype 0)
6 N7 o" G' f# `2 ^" o( @6 Z/ N/ L& l) |7 q (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))- e8 c1 v2 q4 T* ]9 y
(setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
$ b% _1 \: q8 V) t' @ )$ a/ X, p' b$ ]7 P- Y& s& i5 u) f+ c
(set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))# B6 c( k0 \# S
(set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
. U4 X+ g; I1 f7 x( c6 C8 G (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))" E7 c0 d6 n) u2 H# u; G S
)6 O0 V6 L' }7 z0 k" N
(defun set_tile_pt4 (ptype)
0 _3 l6 c: @, B (if (= ptype 0)& b: M }1 w5 G5 K' h- N
(setq pt4 (trans (cdr (assoc 13 elist)) 0 1)). L, c6 E" @% M' F9 v) j% k9 h( S/ \
(setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
, N' [$ |8 F+ e0 N' \0 |0 Q5 w4 u )
* R% p# a6 R9 J- E4 |. t# k (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))! G3 C8 p8 ~2 Q7 ]
(set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
5 V* g5 ]* u. i) r (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
& P8 S# x7 x: c; L) ^ )" `* i1 K- T" ] \
;;! Y/ R% `1 H5 f4 i
;; Xline/Ray7 n: u& T8 M" ?8 @( t
;;
" L4 L) c% q2 I2 O6 T (defun set_tile_xline_pt1 ()8 T4 Q# k/ `0 V# w7 r8 t
) o6 Z4 {$ Z/ P1 N; F (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
! a/ A7 c/ X# z% H2 v1 o& s: t, ]8 _. P# x8 E2 d5 t# B( t
(set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
, B M& a6 P6 O# q; i1 Y (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
: S) g4 H0 w6 x' _" g7 C% V (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
, ?' X x0 C; O' y ) B; i& Q3 }) y) p$ b
(defun set_tile_dirv ()
8 O# h( g* ]% y, F ;; Convert 11 group to local UCS (displacement)
* T8 I `2 E3 d (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1)). q- B/ X! V0 g. D: N! }
) R% S: {. ?, j b; B- u' v
(set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))& g# A8 n* R, d8 h- V% i8 ^0 V2 Y* t
(set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))
% f H. H3 x! n# f( M3 D V: z (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
! Y" c& Y" o: ~& E9 K6 d- Y) Z )' m5 c# i7 d& ^
(defun set_tile_xline_pt2 ()/ g# }2 _- Q9 b& Z& e( E
(if (not xline_pt2)8 y0 L1 M$ ]4 P& K1 I' y
;; Initial second point is Root Point + Direction Vector
3 e$ h+ z" O1 J! S (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))& p: I+ {' Z& x2 X5 L0 D! _# j
)
. A% l: U2 b9 L$ E (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
. Z7 y2 c) n, [$ d+ {2 O (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
8 O: T4 T9 G) S5 R" P (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
* R9 R' w$ Z# D, f# o9 T; H0 s )" m! z* [* S8 H) y" e
9 [/ |9 A3 {$ \6 h2 `0 a6 S* O" [- O ;;. u) A& L+ q6 @ x. B3 [
;; Handle for all objects7 y) f7 a; j, {" d% R$ y1 D! E
;;) ?. c6 S3 E+ g, g/ |8 \
(defun set_tile_handle ()
* f5 t, h1 G, i3 v' e (if (setq hand (cdr (assoc 5 elist)))0 X% p/ |" N/ k) k. L* x8 t
(set_tile "Handle" hand)1 ]7 V- A( ~; r6 U/ K, v! a/ {% C1 i; E
(set_tile "Handle" "None")( k# I7 Q; t9 ^) ?2 O, R
)3 @* G% C# ^9 R9 |
)& X7 [% y/ |- m
;;' q: {7 g5 w7 F6 B
;; Radius for ARC and CIRCLE
7 T: l0 U8 e+ ^! G ;;& S( Q ]+ \( X( ^' D9 [& q, _
(defun set_tile_rad ()
, h; n3 e5 a5 c$ \4 L (setq radius (cdr (assoc 40 elist)))/ [# O; C, ^* j9 L
(set_tile "radius" (ai_rtos radius))( `" O0 e* u% w
)
: C3 F/ g) m/ K' c A: I ;;
p* H T# i% U, {/ o! l _4 }8 ? ;; Start angle for ARC
0 d7 J4 U2 H. V! a, b- M5 ]* N ;;9 N% F. k2 Z; Y% C; m3 K2 e; w
(defun set_tile_stang ()
$ Q% f2 C4 Q( ?5 W" f, ] r (setq st_ang (cdr (assoc 50 elist)))
8 I5 D2 [. ]+ V* S/ c+ v (set_tile "st_ang" (ai_angtos st_ang))0 n: p! j! C5 X/ X* j' q+ I; D
)
' x; a: z" z6 D% j9 p# o6 j ;; j8 ~; y1 ?$ J( @
;; End angle for ARC
& B4 I6 S& k0 u g ;;2 m2 ?: ^5 V. V$ F% C6 c1 c2 B7 o* v
(defun set_tile_endang ()6 x( I; \- j! W: ]* P' v5 Y, s9 V( N
(setq end_ang (cdr (assoc 51 elist))); U, Q- s3 Q8 \) m1 s! _' w( V
(set_tile "end_ang" (ai_angtos end_ang))
! u/ F( I M* g* s* w )
, F% `/ B4 H" z# s( N* a ;;- O6 k% U7 r# ~* _. Y
;; Rotation Angle - Text, Attributes, Block insertions and Shapes
% Z' s) W6 `; Z$ P- O ;;2 \. q" L8 o. R% O7 q& {
(defun set_tile_rot ()# y! G9 z( W9 ]
(setq rot (cdr (assoc 50 elist)))
6 `7 H1 e! i' [5 p3 f: x# G$ n (set_tile "rot" (ai_angtos rot))5 U% ]1 d" `$ |8 I9 S9 ^: t
)
! o0 P* |# O! ]; ]- T ;;
3 |7 }6 I ^8 d, u& H" P4 ` ;; Height - Text, Attributes and Shapes
0 X" |! h0 r; n R3 v. A M# B# c ;;
! Y' C9 ?$ l6 T9 V9 ` (defun set_tile_hght ()0 A. ^; m/ s- a, H; P1 E8 C( R
(setq hght (cdr (assoc 40 elist)))
6 e6 A0 k0 w( d, d" d (set_tile "hght" (ai_rtos hght))1 [' v5 `6 n' ?( E+ P7 b+ B
)
1 q. i3 Z; p) n* J7 w ;;3 j/ _; W0 b% d7 ^! [
;; Width Factor - Text, Attributes and Shapes5 j+ f4 N w7 q! x. j9 t( J
;;. R# c9 _ h/ U, }# n: y5 E
(defun set_tile_wid ()
9 m0 G( T3 T: U$ ?" H (setq wid (cdr (assoc 41 elist))) `5 V: j; Q ?7 b
(set_tile "wid" (ai_rtos wid))
1 t: _! r0 U* X! { )0 d* x/ X1 y, M1 f' _
;;4 y* ]* {% |6 H! r9 l( V
;; Obliquing Angle - Text, Attributes and Shapes
# I5 V" E% ?& d9 q9 Q5 ~ ;;
* C2 x i3 U4 a; r& y) @ (defun set_tile_obl ()
: F4 P/ C' ~ q! e4 i (setq obl (cdr (assoc 51 elist)))# l( Z8 q& I- ~5 ]' t8 ^$ v
(set_tile "obl" (ai_angtos obl)). O0 h1 r% X& B6 n5 K ^
)0 Y! l" v) u' ?
;;
( Q4 d1 ~' Q5 v7 s5 j; j% v3 c, _ ;; Text string
, y: C0 H$ Z$ t, t ;;! D; g; ?# c4 l' n
(defun set_tile_text ()
) U8 A, n, @2 J* j9 X (setq text (cdr (assoc 1 elist)))
; D2 O& V* a" K: v: |3 R (set_tile "t_string" text)
" S. I/ I1 e( [! f6 g# _6 i4 { )( }. } l- [% @0 L' {* d; ?
;;# ~! O7 y, J! r" X1 a: i
;; Attribute Tag1 r4 \' O5 `& s
;;
0 i" M* ^; t* Y: W1 P (defun set_tile_tag ()! s2 k& S1 @* H% B8 \
(if (= etype "ATTDEF")
, x7 z9 F) ?# u (progn
4 c1 }' ~$ R$ c2 U9 a" ~ (setq attag (cdr (assoc 2 elist)))
: Y9 @6 s" ]+ T8 L( K- e& f1 e (set_tile "tag" attag)$ y4 ]9 [. ^/ C0 x" C
)% @8 N* Y+ n; B" E& H2 I
)# S( z( ]; K+ I( |3 W( p/ H" o
)' I# ~ m" F. G$ Z1 k; i
;;
: O: s( U0 v- Z ;; Attribute Definition$ C2 ]9 ?& o( N0 f
;;& Y7 U* R8 N# a0 S4 s x3 w
(defun set_tile_prompt ()
, X6 u5 ]) m# z- h3 Z (if (= etype "ATTDEF")! x2 d5 [0 Z1 J9 e: @7 G
(progn
+ b; V2 R% b* b4 ?3 i: O (setq atprompt (cdr (assoc 3 elist)))- D% U% ]5 l4 a. L, }+ M C
(set_tile "prompt" atprompt)5 B! ?( j3 c6 o0 E0 Y
)# j1 g* f7 a+ J
)
1 S" d9 m- G7 W& O. H )
, G+ _6 o4 r1 ]5 n6 I5 K$ z9 z ;;
7 n* q) \( Y6 Z2 W- G ;; Justification setting for Attributes and Text. Initializes; R- g) a: S" x% r/ e
;; popup list box: {# q* H% P5 W- M; d$ C
;;; e/ O& c2 G' U: n9 k8 w( m/ y7 i! z
(defun set_tile_just ()( A" b# ~! W/ K
(setq ha (cdr (assoc 72 elist))) ; horizontal alignment
2 L6 v, F% j, C% f (setq va (cdr (assoc 73 elist))) ; vertical alignment$ c$ P1 T0 b8 h7 P3 W
(setq ha-prev ha)' a( p* A. Q; p: b' I
(if (= etype "ATTDEF")
0 ^" K+ S5 u7 s$ M+ S (setq va (cdr (assoc 74 elist))) ; vertical alignment1 X0 C2 L# A- `% v0 n
)6 `; y* e# ?( [% j, g# v
(setq jlist
5 L: c8 z2 @% ^; A* t0 [ (list "Left" "Center" "Right"
& i- {( D' m0 c* w "Aligned" "Middle" "Fit"' r, A- Q0 W" r: k# F- `
"Top left" "Top center" "Top right"# M4 j2 f( W% V3 e8 y8 K8 F4 Q! s
"Middle left" "Middle center" "Middle right"
7 v: N2 N% o" B2 _. e' b) y3 b "Bottom left" "Bottom center" "Bottom right"9 Q, i+ d* `6 W( U
)
9 q+ Q2 d0 _* F3 {6 h2 v )6 C5 s. i' q% Z* ^+ E! t$ ]2 N
(start_list "popup_just") w2 a) a" k- D; C
(mapcar 'add_list jlist)
0 N/ x9 T$ Y. y+ r! V. C% L (end_list)% C) L. r L+ e
(set_just_idx)
0 l% T4 E7 V& L: u: G (set_tile "popup_just" (jlist_act just-idx)), E7 h( a j) ~" R* i
)- @* n/ M2 R% i& z; f* }$ B
;;+ \& u, V+ B4 [ A
;; Style setting for Attributes and Text. Reads symbol table for popup list
' t4 z \8 R7 E8 h ;; box.$ |4 S; g" V$ g3 _3 ~$ u
;;, g, N. O, W( _: P8 D! P' d4 _' Z
(defun set_tile_style (/ sname style-idx tlist)
9 ]& {% q* e3 z: W (setq tlist (tblnext "STYLE" T)/ t0 z4 H `8 f4 K. W- o, i# `: S
slist nil)) k6 ?/ h' m/ c/ b7 P) G
(while tlist; H" M3 }/ S; Y$ j( q& V6 C( g
(setq sname (cdr (assoc 2 tlist)))
( c5 c- i. M3 r (if (and (/= sname "")
/ {3 C6 B' h$ ]1 k6 } {7 R" ~ (/= (logand 16 (cdr (assoc 70 tlist))) 16))) ]1 G9 g$ O7 C7 W
(setq slist (cons sname slist)))
* e: u/ @7 U0 x/ ?3 N6 U; ] (setq tlist (tblnext "STYLE")))6 g+ Y% H' ]! c! ?
(if (>= (getvar "maxsort") (length slist))
2 t0 D! n- U6 {# O- q; v6 o5 | ` (setq slist (acad_strlsort slist)) ; alphabetize style list8 ~, p3 O! ]6 x
(setq slist (reverse slist))) ; or reverse it to put it in DB order$ N. I0 b T& n# w. H) |
! u3 C, Q! l9 ? (start_list "style")
7 U8 n8 X5 L5 _4 ?; R3 g3 Q, v; q (mapcar 'add_list slist)7 f @/ Z3 K( W
(end_list)* o3 \' c+ ^' e1 E" F# s3 @* s
(setq tstyle (cdr (assoc 7 elist)))
8 A# e e0 {8 c (setq style-idx (getindex tstyle slist))
$ _: }. a$ n& |8 ]+ ?8 V5 ] (set_tile "style" (itoa style-idx))/ i( x4 ~5 ?5 i9 `% r- A( c2 S: c' n
)
9 `- V2 d" s( P0 o ;;
0 p& S) z8 N; G7 q5 W8 w# o. @ ;; Text and Attribute setting - upside-down, backwards6 }7 i2 e. E: ^ e; h5 u5 I
;;- Q6 j& R8 z {; ~) K1 }1 F
(defun set_tile_bk-up () C' _2 ^& d/ D/ h- j
(setq bk-up (cdr (assoc 71 elist))): o# y- C) [4 |/ S; F
(if (= (logand bk-up 2) 2)
" s, z: H( `# v# j6 \ (set_tile "bkwd" (itoa (setq bkwd 1)))
) `/ }$ R3 E' }1 z (set_tile "bkwd" (itoa (setq bkwd 0))) R2 J% n& N6 u; t2 u2 }
)
' P( \ E* _; G# Z8 A (if (= (logand bk-up 4) 4)) k. I1 @* [: r, E0 w: {" Q
(set_tile "upsd" (itoa (setq upsd 1)))
2 a7 i6 ^. ^5 j+ ]% K' a6 s) M: e (set_tile "upsd" (itoa (setq upsd 0))); }, Q/ T2 D0 O2 ~! I
)
. e% _5 w [4 m6 c6 V* Y$ j ); p7 \+ c* }! Y! X2 o1 _! @8 w2 x) b
;;* f# R) M3 ]3 z: }1 O3 Z0 U
;; Attribute setting - invisible, constant, verify, preset
0 u) _% t* y" A1 v6 e% E7 Q$ c ;;
9 Z U. {9 a! j \+ A2 W (defun set_tile_icvp ()
# }- i8 \; u# I }& I4 t" A (if (not (setq icvp (cdr (assoc 70 elist))))
# m2 c6 r! E; u+ ]) m (setq icvp 0)
) ?% S9 D5 T ]! Z7 J- Z" b )
- `; i/ {& B8 S* K# }* b* W3 ^ (if (= (logand icvp 1) 1)
% K5 i0 y W0 @$ O9 a# C' G (set_tile "inv" (itoa (setq inv 1)))
, t! B' P4 X, Q0 e# r. D (set_tile "inv" (itoa (setq inv 0)))
- M, T8 H; O* c, j )+ t7 Y/ T. w! ]& Q$ C: F
(if (= (logand icvp 2) 2)+ M* [1 h& W! G& C' V
(set_tile "con" (itoa (setq con 1)))" M$ s' p/ t) y" q: {
(set_tile "con" (itoa (setq con 0))); M) H2 X$ p: M2 Y: B y
)# q1 O( `; }# ?' H
(if (= (logand icvp 4) 4)
% g! i3 ~1 A# i4 w2 m (set_tile "ver" (itoa (setq vfy 1)))
7 Q3 V3 X0 I, K4 a6 ~ (set_tile "ver" (itoa (setq vfy 0)))
" R2 V$ n, Q4 N w+ g" j ) F( l, @( [1 q- m' G8 q/ R
(if (= (logand icvp 8) 8); r4 U; ~7 {% _) p: i9 t6 o
(set_tile "pre" (itoa (setq pre 1)))
% ?$ H4 ]- m2 @. D# |% x0 o (set_tile "pre" (itoa (setq pre 0)))
3 L. u. {. x( c: S7 m \" V" D )$ b+ O( C8 Z2 Y7 ^5 d; F
)# D' C% h8 F9 a9 J/ Y7 Z1 K
;;
' {2 S" R& P1 R- A ;; Scale factors for block insertions6 t# q5 Y5 ^. Q& a2 a9 U) Y! x
;;0 H9 ~$ k7 e# H. [
(defun set_tile_scale (/ temp)
2 z! ?* r7 U7 b; n. o, c# o (setq temp (getvar "LUNITS"))
# z: t h5 W; g4 U (setvar "LUNITS" 2)) u' H: P! |2 P& L9 I/ f
(setq xscale (cdr (assoc 41 elist)))" E, u" J$ |0 B, m! q+ c9 x
(set_tile "xscale" (ai_rtos xscale))
1 \! c& K1 m+ Y/ ~! K2 Y (setq yscale (cdr (assoc 42 elist)))- ^9 Y% J( P* W `
(set_tile "yscale" (ai_rtos yscale))* |' P9 e' ]8 d, H
(setq zscale (cdr (assoc 43 elist)))" d- f& u3 ~9 O" ?: e) L
(set_tile "zscale" (ai_rtos zscale))
2 b6 _, q0 _: @ W! C (setvar "LUNITS" temp): H: p& b4 n, k/ Z
)! Y6 g/ w( b% I0 x
;;0 e; Z5 s3 g% K# @
;; Rows and columns for block insertions
/ f6 ?6 S1 }' S. c# `. q* f ;;: W, M5 P1 t* q
(defun set_tile_rc ()
* T* @6 g2 R4 M% T- ]4 ?. O (setq columns (cdr (assoc 70 elist)))
! Y, i9 V+ ?) ~8 |8 p6 p (set_tile "columns" (itoa columns ))
4 ?+ U+ }: `: _ I; ?8 M7 l (setq rows (cdr (assoc 71 elist)))( p- j; q0 `- o
(set_tile "rows" (itoa rows))* k5 K& [3 M5 n( P0 p% n
(setq col-sp (cdr (assoc 44 elist)))6 A/ `" T+ U) A& j. t1 p& i
(set_tile "col_sp" (ai_rtos col-sp))
$ k/ y4 Y' C! } (setq row-sp (cdr (assoc 45 elist)))) r9 r2 B& a" E4 t1 W3 }
(set_tile "row_sp" (ai_rtos row-sp))0 A+ i( E4 L( a6 t: \( l8 s
(if (/= hasclip T)* h% p5 i K/ ^9 e; C5 C
(mode_tile "xcliponoff" 1)
i8 A3 Y, Y O6 [) J3 ]7 P Z/ v1 j (set_tile "xcliponoff" (itoa xcliponoff))
, [+ h; R8 t/ J9 r) X& N )% I8 q2 k+ ^ g0 j$ Q- G
)
; j4 [( _% s" Q- `" H ;;
& u" t2 O0 J3 O5 Z ;; Invisible edges for 3DFACE
2 `0 C# ]/ L9 v$ E ;;
/ W6 T, R( U$ Q$ \0 J (defun set_tile_edges ()
! q+ q5 K& p5 C) @& \; ~0 c/ } (setq f-vis (cdr (assoc 70 elist)))
+ e% k% A2 N, b7 O1 w8 C3 q (if (= (logand f-vis 1) 1), w. S1 l: n% V0 c" P$ { R
(set_tile "edge_1" (setq edge1 "0"))8 j; S$ S, u2 U$ J0 I9 V
(set_tile "edge_1" (setq edge1 "1")): E- M& w3 Q' M) x3 `$ T( T2 V
)
& F3 G5 C6 X/ l/ B (if (= (logand f-vis 2) 2)
: K N% E1 R2 m6 ]8 m (set_tile "edge_2" (setq edge2 "0"))
3 f& E3 \; w2 S% w4 _& m) h (set_tile "edge_2" (setq edge2 "1"))6 R% A6 M: ]+ o/ A/ V
)
) E3 s; Y+ b7 R/ B! g# C (if (= (logand f-vis 4) 4)
! K/ D* ~$ I( w/ }& { ] (set_tile "edge_3" (setq edge3 "0"))5 k8 A: V3 \3 m6 K+ C( f
(set_tile "edge_3" (setq edge3 "1"))
# o) |+ i; q3 b7 ]. ~7 U )3 Z, @( |! L' A; m
(if (= (logand f-vis 8) 8)- g8 G* ?7 B8 U$ z7 f' M
(set_tile "edge_4" (setq edge4 "0"))
- Z" L$ p3 K+ W, k, y, W0 u9 Y+ C. X (set_tile "edge_4" (setq edge4 "1"))
# @% Z. s& q* h1 X3 ?3 r )& c% i' }5 z$ e# }% U _$ |! u
)
' a) @# Y3 M$ }# H ;;
7 ^7 ~& ^* ^; i" o% _$ u b q ;; XYZ Point values for polyline vertex7 r- b5 _. M% y4 [1 L0 R
;;
) Y u5 N/ K6 z% x4 X (defun set_tile_vpt (ptype)6 W7 [. k; K: Q1 i6 O3 C3 u: v$ _
(if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
' d, K4 T& i2 e' Z% A (progn
' Q* W% w5 z6 W' U ;; ctr is 1 based, vertices are zero based.# J- v. }! w5 S: M g6 B( B& n% F
(setq vpt (cdr (getLwVert (- ctr 1))))4 A l4 ]: L* o! u/ {
(set_tile "xtext" (rtos (setq x1 (car vpt))))' ~9 f& B& M& u, Y8 i4 y3 w
(set_tile "ytext" (rtos (setq y1 (cadr vpt)))), w3 J+ r: h$ r: m
(set_tile "ztext" (rtos (setq z1 (caddr vpt)))). F" K0 f4 Y& o9 x. B) ^ X
)3 |8 V( i5 q# T( g* V# V! t1 b
(progn5 |$ B* Z% x+ [4 g2 f
(if (= ptype 0)$ N, v8 |! X1 d. F# k7 y+ U# P% C9 ]
(setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
8 `& g) V& G( j( U, ~ (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
! U& Q! Z2 d6 ?; C& c T. z* D. p' M& } )5 J5 ], L* \3 h0 l: G
/ C/ s* ?" O @- J K& D. X* ]
(set_tile "xtext" (rtos (setq x1 (car vpt))))( s, [' X. a5 o& W( m' ]
(set_tile "ytext" (rtos (setq y1 (cadr vpt))))
2 T9 r( v# b' b$ Y w" n Q (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
0 b; X' I) h% }5 }+ p )# g3 t9 j2 f' |/ {. B
)! x' P' o8 Z& x9 W& R
) o E5 C$ s. k* k( n- g )
/ S8 e, P) Y* }% F1 m ;; This is the equivalent to doing an entnext on the heavy weight& ~1 n% R& y* \1 _' b m% M9 Z, {
;; polylines. The hard coded '4' below allow stepping over the- F5 h+ a0 }* E
;; 40 41 and 42 group code information. The while loop finds the0 d9 m/ @# {7 o+ [, t0 j
;; first vertex which will be used as the starting assoc in the
+ u; w- p2 X; o ;; call to nth.7 l, c5 {5 [4 g" y T' c* K) m) M
;;: |7 W j M: V) h0 @' s2 s4 |- c
(defun getLwVert (tmpctr / count tmp)8 _& u& e! T/ c: }# G; s
(setq count 0)/ _5 ~' H! Q$ U a9 e ^1 v. I
(while (/= (car (nth count vlist)) 10)
3 p: M Z; D4 z6 g2 i9 W (setq count (+ count 1)): l; u+ L) l% Q y
)# d! F0 m& n5 }
;; If the counter reaches the number of vertices,5 s, Y# o3 J3 U, Y- k6 w) Q
;; reset ctr and tmpctr to zero again.5 }0 m; T& w; Y! H6 p
(if (= tmpctr (cdr (assoc 90 vlist)))
# h# @* p; m! C& _! ^! U" J (progn
' L9 c6 h$ S( B$ K. K0 R- B; G (setq ctr 0)! h! w3 [7 Q6 H- o# @0 K# [; R
(setq tmpctr 0)
r: U5 d4 \9 s- @8 J )
0 t( c9 E: Z J8 q2 I )1 Z5 D% n! v# V7 u3 H2 _0 j8 q
(setq tmp (nth (+ count (* tmpctr 4)) vlist))
( {/ D* O9 z. `6 ^( c" b (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
/ _3 T4 f6 h& A+ F3 A (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
. H7 X" i8 l& F% c, I1 m (setq tmp (cons 10 pt1)) L5 X( s7 O) B1 }% p
(setq tmp tmp)5 O0 R X+ Q- @3 p! K1 R$ P, a$ e: C
)* k6 m; D! w: E1 l4 r
;;
6 j6 r' {: m! f6 J/ o" K ;; Set tiles for Spline properties. If the spline is rational then we) ]( k! y- j' u1 K# V
;; need to display the weight values of the control points, so set
. ]" H, G& T9 T4 g' r7 e ;; flag to 1.
5 T7 X3 ^4 ]* {/ d1 G1 ?" Y ;; 1 = rational spline e: Q, W. ]4 k# ~
;; 0 = non-rational spline: r4 e: R" w8 N+ e, l
;;( \+ o" X+ t" p2 `# O; e
(defun set_tile_spline_props ()
% t- ^/ w, c) U- L1 j: m% f9 M0 I (setq rational_spl_flag 0) ;; initialize rational spline flag0 E/ c Y$ }1 A, R/ ^
(set_tile "Degree" (itoa (cdr (assoc 71 elist))))6 |/ @" o$ s2 a! d7 A% n
(setq bit70 (cdr (assoc 70 elist)))% M) O+ ]5 e7 B Z/ m) i$ t
(if (= (logand bit70 1) 1)) w% y. T5 N0 J+ R
(set_tile "SpProp4" "Closed")
- |. z1 }$ G# z2 Z" k' v7 \4 b (set_tile "SpProp4" " ")6 I/ a4 F% b! V/ ?
). v$ ]) N% o ^
(if (= (logand bit70 2) 2)
: E: T% f6 F0 V (set_tile "SpProp3" "Periodic")
* Y/ ]" S3 a% H7 Z8 p# T (set_tile "SpProp3" "Non-Periodic")2 ^/ |* s9 T9 C# c
)' y, F/ I% B6 t- }" s2 F
(if (= (logand bit70 4) 4)% c0 a V6 R: k4 A* \
(progn7 r" ^: A+ T9 T5 b# Y0 X
(set_tile "SpProp2" "Rational")' Y" _& ~- Y6 ^1 r( t
(setq rational_spl_flag 1) ;; this is a rational spline; Y( g5 z! T4 Q
)
# u( W7 W- |$ S. n7 B# U (set_tile "SpProp2" "Non-Rational")
* o* Z B a* Z9 P+ D )5 i* [% Q; F6 e2 m* @9 C' Q
(if (= (logand bit70 8) 8), C# n3 Y: d4 b& ^/ u) L
(set_tile "SpProp1" "Planar")! p" l4 H! p; ^. ^: H
(set_tile "SpProp1" "Non-Planar")8 u, q9 n- X" Q: r: R# ~$ r8 b5 N, L
)% K& n, H/ J1 E8 ]
(if (= (logand bit70 16) 16)
" r( }& q* s9 n# u$ w* ` (set_tile "SpProp5" "Linear")4 e* A" D5 ]8 @/ ~; [4 s
(set_tile "SpProp5" " ")
7 k1 m, C! i7 Z5 k3 i9 ^* j& b )
2 m$ b6 q# s# r6 G, o- e0 j )9 e" f1 P: k% M" y, V- F) }
;;6 a% m; r; y5 [
;; XYZ Point values for spline points* l8 A( P" ?% K5 Y9 ?% L
;; Need to account for WCS/UCS
7 y' }4 A6 X- w- x5 D) o7 N( q ;;& W! `5 i( n) a. W6 X3 E5 y
(defun set_tile_cntl_pt ()
j1 k1 W9 i! M- ^$ o (setq cntl-pt (cdr (assoc 10 elist)))3 a- i; a1 f; x" d
(set_tile "xtext" (rtos (setq x1 (car cntl-pt))))- o$ r/ p1 N& m5 [$ y5 j. b5 k
(set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))7 V- }: e% i5 l
(set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))$ {2 D* X8 y7 a j9 e1 b0 C5 c
(if (= rational_spl_flag 1) ;; if rational spline
2 ?2 i' Z( d! ]5 f2 z9 D; H: T1 ] (progn ;; show weight, [+ P# @0 E ]" N4 d
(setq weight (cdr (assoc 41 elist))), M( [0 m, c1 _7 L, P! }3 X- h
(set_tile "weight" (rtos weight))
^0 q/ Q/ o4 O5 [! Z' o) }- D7 d/ f ) ;; else
& H. T0 H7 j: W" x3 q (mode_tile "weight_text" 1) ;; disable weight field- l, t" l# R9 o/ i$ @" K* t) s3 ]
)
$ D0 L6 L& ~- ?( Z ); g. c# [9 C. I- T
;;8 B8 R: b* j, c6 P" t9 }# W1 ]) Q
;; XYZ Point values for spline points
7 I+ S- H) r. I1 c ;; Need to account for WCS/UCS1 \7 ?" |2 c' H ~
;;: d, }* o1 |& I* _' ]8 H8 h
(defun set_tile_data_pt ()' }7 M& {& R% r. f- j) C
(if (not (assoc 11 elist))& \; s' z1 Q/ e- K( V% H. `( W: K+ J
(mode_tile "data_pts" 1)( f8 S0 l' P9 i+ C0 I8 ^ U& p3 S
(progn
/ q& n$ {' h5 y- F: Y# U (setq data-pt (cdr (assoc 11 elist)))" [) B& [6 d% P4 O1 w
;; display points with current precision.
+ B' d% @5 _' P; u* m3 B (set_tile "dxtext" (rtos (setq x1 (car data-pt))))( @* O5 m8 v3 @% N7 }
(set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
7 M' @. E" I4 X6 V4 |! e3 V (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
" h( Z# g$ e8 { D j" N, w( X$ [ )
0 ~- O3 i4 F" ~* T )7 D. A( M' q! s, p# |
)
) u4 Y( F D$ V4 k2 E9 _ ;;
) z( z, w4 B2 O ;; Fit curve, fit spline, or smooth spline surface setting8 Y, L' L* `' A' G& w
;;
) F1 R1 l% L7 H# P& h/ P5 B (defun set_tile_fitsmooth ()
2 L% Z& q- Q* P (cond
0 E3 _+ K; K$ b' ? ((= (cdr (assoc 0 elist)) "LWPOLYLINE")" c% M1 V. r% ]. J7 Z9 }. C8 w+ A' B
(set_tile "none" "1")9 D$ D6 J \( i" [& K& S
)8 j" |) m% G. |
((= (logand bit70 4) 4)
8 z9 |: G# o+ k- W* P2 n! Z (cond% l" a# ~1 ~# B% V& E
((= bit75 0) }# S# \" w9 m/ w
(set_tile "none" "1")
1 `7 O' d% j: ~" M1 B/ _ (setq spltype 0) K; c$ W( Y: j ~( h
)
/ i; f; y9 Z+ ` ((= bit75 5)
) Q# r8 k6 K. { (set_tile "quad" "1")
Z/ Y5 w0 D* Q8 s! h2 n7 S (setq spltype 5)1 |" s+ L$ R3 F+ N/ L
)( p+ p+ J/ N% ?6 |
((= bit75 6)/ [. ?1 L+ ?6 a ?6 l8 |$ D5 U
(set_tile "cubic" "1")
6 M* y6 `3 Z+ O( i m' e (setq spltype 6)/ ]1 ~/ t7 N E9 Q+ ]4 T
)
$ y/ h% T! K& E; a& J0 G ((= bit75 8) Q1 |( u A$ G9 a5 O
(set_tile "bezier" "1")
6 g) Q& v! N, f# W (setq spltype 8)
1 {9 K1 I7 F. e' p& w )% m: ]0 N- m6 P# O; e
), N. q; M# p! b
)
& W4 ^- V; ~" x' i7 }* S7 y ((= (logand bit70 2) 2)
# C. U' |7 p6 I h1 }# t6 t, [ (set_tile "fit" "1")+ N. x* j. u+ g+ H& f z* h; L
(setq spltype 1)' }+ l, ~( ^6 y4 A: s
)
* r5 O8 G3 o# z2 e2 p6 i% S (T (set_tile "none" "1"))
: ]3 N/ C4 v* v& [ )
9 i4 Z% V# o6 p )1 @2 {( C( r C
;;
+ z& I4 t4 x/ t ;; Closed or Open mesh and polyline setting
' r" X( G7 b9 F' D5 I9 ~6 t/ v( s ;;8 z) j& J2 \' B" O
(defun set_tile_closed ()
9 e- x7 Z0 ^ ] (if (= pltype "3D mesh")' p" Q5 N% L" `) a. S: i
(progn% y5 _3 V& |. r# r3 f- g
(if (= (logand bit70 32) 32)
2 M9 y% B: S0 g9 D$ T (set_tile "closedn" (setq closedn "1")) j0 V5 `$ }9 _" `' j( M+ `
(set_tile "closedn" (setq closedn "0"))
- F3 E2 ^3 ^ B9 |8 A )
/ A4 w7 s& l- v6 I! U (if (= (logand bit70 1) 1)' z& H& q- q% X1 w4 D8 L
(set_tile "closedm" (setq closed "1"))
/ i8 L& K/ x5 Q2 A (set_tile "closedm" (setq closed "0"))5 j' A+ @% f& C
)
. E% I* z! g, D (setq old-closedm closedm old-closedn closedn)
* _' E" @/ ?) m3 w) H% G! Q )# Z p( u$ z, l
)
- t3 L8 G. H5 q (if (or (= pltype "2D polyline")
# l$ b9 O1 V; F$ v5 c* {) ~ (= pltype "3D polyline")* m) e3 @: ~3 a% F ] T, v
); \2 J+ \' t2 f3 [& @
(progn
( j" s6 X( O; g" m; J (if (= (logand bit70 1) 1)
! d6 R$ M2 o3 h: [% F (set_tile "closed" (setq closed "1"))$ A. i1 V/ C+ X3 t
(set_tile "closed" (setq closed "0")), L% {% P& t6 r% p3 R
)8 F( u3 h3 ]( M
(setq old-closed closed)
) E5 j; n" W- |! f )% R4 R/ R% a# g4 y
)- u4 }9 a; U/ h# s
)
- E" ]& |4 ]0 u+ }1 h ;; Set common action tiles$ Z& I( i( R# Y( k* W: h$ b
;;
: t) g3 m: g& w+ U$ g) D ;; Defines action to be taken when pressing various widgets. It is called
e+ \8 b5 ?- Y' L ;; for every object dialogue. Not all widgets exist for each object dialogue,9 i; G& }" K% H" ?9 N
;; but defining an action for a non-existent widget does no harm.
& G" w0 @& ?9 C: t* w- |( J2 Y- J$ k (defun set_action_tiles ()
( u, m0 ^9 @, V4 N( V" B& U (action_tile "cancel" "(dismiss_dialog 0)")/ t- i! y/ u! {. R. I
(action_tile "accept" "(dismiss_dialog 1)")( N; Y& Y) H- X" t, Q0 I
(action_tile "help" "(help \"\" help_entry)")
2 ~* n) h/ e: h; R& g4 i (action_tile "b_color" "(getcolor)")
0 E/ |9 v+ ]* P4 J( q (action_tile "show_image" "(getcolor)")
( G1 i+ r" {/ Z# S: S+ c' m- O (action_tile "b_name" "(setq elayer (getlayer))")
2 v$ C6 |! S0 U7 f (action_tile "b_line" "(setq eltype (getltype))")! n" j! Z1 {4 f4 z/ d
(action_tile "eb_thickness" "(getthickness $value)")
/ p( }1 S3 [' E6 F1 O (action_tile "eb_ltscale" "(getltscale $value)")
$ p& \2 k, V. O- m. u8 o; {2 M
; U( a4 [6 l. l3 ^. h: V! e2 g4 k z (action_tile "pick_1" "(dismiss_dialog 3)")$ f3 W& P o* b; W) Q# t
(action_tile "pick_2" "(dismiss_dialog 4)")6 X$ F2 P; a9 D W }
(action_tile "pick_3" "(dismiss_dialog 5)")
J; C/ }3 e5 p/ p4 v4 s8 w% p (action_tile "pick_4" "(dismiss_dialog 6)")
2 Q; n j: L6 c( P1 e1 \- Z. i (action_tile "x1_pt" "(ver_x1 $value)")) ~, d" ?% v; m
(action_tile "y1_pt" "(ver_y1 $value)"), X/ G/ \( o" ]6 q$ R# [% K% A @6 n
(action_tile "z1_pt" "(ver_z1 $value)")' N3 [+ Z! N U" n8 v ?: T0 ]
(action_tile "x2_pt" "(ver_x2 $value)")/ R* U m) f" k. g+ e1 S# c9 }
(action_tile "y2_pt" "(ver_y2 $value)")
4 k1 \1 w* }0 e4 m2 N3 z# E (action_tile "z2_pt" "(ver_z2 $value)")
/ A6 J. {/ c( P J. o1 _ (action_tile "x3_pt" "(ver_x3 $value)")
& d# G3 k% |1 `7 D+ h& A (action_tile "y3_pt" "(ver_y3 $value)")
+ a/ d6 o8 H7 M K, E/ K3 w (action_tile "z3_pt" "(ver_z3 $value)")" P: v! h, F% W* H7 O1 w, w
(action_tile "x4_pt" "(ver_x4 $value)")
1 y3 j6 j* v- x' u* z. z% m (action_tile "y4_pt" "(ver_y4 $value)")
5 l T6 H4 R* ?4 y- Q4 l* O8 u9 d (action_tile "z4_pt" "(ver_4 $value)")
$ {& }6 C6 F& }; f2 h" a' l) v
9 n( H- w' B- V( z3 q/ L ;; Action tiles for Xline & Ray
; J! l3 J1 G7 F) E# S$ g+ z (action_tile "xline_x1" "(ver_xline_x1 $value)")2 q7 b7 A, a) }! E( i4 w
(action_tile "xline_y1" "(ver_xline_y1 $value)")
8 v" z2 a; c6 E( c; K/ P( P (action_tile "xline_z1" "(ver_xline_z1 $value)")/ m+ O! P% h7 P0 W8 {
(action_tile "xline_x2" "(ver_xline_x2 $value)")
7 b; O0 O4 [: E+ ?# M& G (action_tile "xline_y2" "(ver_xline_y2 $value)")# @( G2 ]- D( @) S
(action_tile "xline_z2" "(ver_xline_z2 $value)")4 M6 D/ o6 \* x1 ?9 i2 g% S/ C
1 A K# |' p w4 _8 _/ _9 u' O (action_tile "edge_1" "(setq edge1 $value)")
! u, [- O1 E3 H3 g4 q1 c (action_tile "edge_2" "(setq edge2 $value)")% d; Q" K9 s, m! E% `5 ]9 b1 D: M
(action_tile "edge_3" "(setq edge3 $value)")/ x* e& T3 x9 @0 V: h4 D
(action_tile "edge_4" "(setq edge4 $value)"); U0 W7 ?6 l5 q* C! i
! ?# h, C; D% m6 [) ^$ ^, p2 L
(action_tile "radius" "(ver_rad $value)")
4 z+ R/ G: R$ Y2 y& Y/ q& {4 ] (action_tile "st_ang" "(ver_ang1 $value)")
, @7 |+ z! `+ e [) U: Q& V (action_tile "end_ang" "(ver_ang2 $value)")
8 `* E: c1 q0 I" b (action_tile "end_eang" "(ver_eang $value)")
( v6 I4 u' b" ^! A; Z (action_tile "minrad" "(ver_minrad $value)")% b3 v# R l- t& ~. T5 M
(action_tile "majrad" "(ver_majrad $value)")
4 j6 A3 z2 W# q" J* e* x, j0 \" b+ O0 _- P
(action_tile "xscale" "(ver_xscl $value)")
7 F* ^4 `7 o! c/ p+ N* H (action_tile "yscale" "(ver_yscl $value)")
' A) u) e6 q0 O2 ?9 } (action_tile "zscale" "(ver_zscl $value)")
) [4 K4 ]# i4 a1 v9 W u* t* r7 S (action_tile "rot" "(ver_rot $value)")' o+ ]+ V7 ^: F! {5 d" P6 a( u
(action_tile "columns" "(ver_col $value)"). E1 T( ^9 k A! d6 |6 ]2 i* e: ~- T
(action_tile "rows" "(ver_row $value)")
: U- z' K: V/ K7 j9 z" o+ O5 c (action_tile "col_sp" "(ver_colsp $value)")+ l/ I( L }$ `9 p9 a9 u4 m2 b0 `
(action_tile "row_sp" "(ver_rowsp $value)")6 ?1 ?2 o' D% R2 c
( E' x4 f' c! \4 P! O) Z4 P
(action_tile "hght" "(ver_hght $value)")
K) j3 C* T- h+ j* O6 s+ N1 Z (action_tile "wid" "(ver_wid $value)"); D8 h: K& E9 l2 |0 [$ r
(action_tile "obl" "(ver_obl $value)")" s8 _" l/ E1 v$ X6 m h5 m
(action_tile "style" "(style_act $value)")
0 f1 K! `5 H, M X) G4 o: R" @# X5 }! C/ E
(action_tile "t_string" "(ddgettext)")
3 g2 t+ n+ c# U. U# |7 h4 E* _ (action_tile "tag" "(ver_tag)")
' D# W$ L8 ^( D% v (action_tile "prompt" "(ddgetprompt)")
. B5 U( Z2 e4 W* g) F5 g9 `4 @5 ? (action_tile "bkwd" "(setq bkwd (atoi $value))")
- ]( g5 [: i, B% b+ p- Q) j$ I (action_tile "upsd" "(setq upsd (atoi $value))")2 T$ Z) `6 l$ g/ ~% T
(action_tile "inv" "(setq inv (atoi $value))")
7 S1 t) s( j4 O$ O' d$ b (action_tile "con" "(setq con (atoi $value))")8 v; J2 g D% r) z& H
(action_tile "ver" "(setq vfy (atoi $value))")
( T2 g, N q, k. B( C (action_tile "pre" "(setq pre (atoi $value))")
; r! ] |1 r. J- N! E (action_tile "popup_just" "(jlist_act $value)")) c+ [/ _, K# E2 \3 g7 A
& |4 j( B" V; B$ u& U+ O
(action_tile "closed" "(setq closed $value)")
1 s' [& v/ r8 q' U. e (action_tile "ltgen" "(setq ltgen $value)")2 J9 b/ m, w% |6 ^/ S" K- T
(action_tile "closedm" "(setq closedm $value)")
+ w- U1 E3 _% ^# B# ^, H) M (action_tile "closedn" "(setq closedn $value)")# j2 O& D$ x+ P* _7 `
(action_tile "next_v" "(next_vertex)")
8 b7 Q [8 {: { R1 u (action_tile "xcliponoff" "(setq xcliponoff $value)")4 i$ E( I1 w( w8 I5 \! F# S$ E' m) S
4 w$ v& k) a* j; \0 A Z (action_tile "next_cntlpt" "(next_cntl_pt)")
$ c8 X" `$ ?" N$ H. h4 |( q (action_tile "next_datapt" "(next_data_pt)")
' B- n7 u: R% H* z/ G& d4 G. [& {0 M# q- \7 [0 B$ Q
(action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))") [/ N$ ~2 J; |8 F
(action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
s9 j7 P* T( L6 ^+ g& [% u+ }. W" \ (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
2 U, u9 A7 r/ p4 p (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
% x7 v4 b3 M) E: w (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")5 V) ?8 T- {; E' J( A
; b0 M7 q; F% Z, N" d
(action_tile "u" "(ver_u $value)")
" {# \* X$ Y8 N (action_tile "v" "(ver_v $value)"): _" Z, ~! {" i3 W# b v
)4 p. n- L$ c4 b3 C: d, L% r
: ?$ L7 m8 Q7 u0 Y9 L) i
(defun ddgettext()
% p x9 L( u0 g/ Q! q7 C1 T (setq text (get_tile "t_string"))3 P: E& B) W- i c- G
) u+ j* J* X. {. S
! [5 ~6 }/ _+ l' N
(defun ddgetprompt(). n; w' m. |4 n- a B# T) ]
(setq atprompt (get_tile "prompt"))
" ~& H& q* Q" ^. s s5 g )
) ]. W' M$ u/ s+ {! Z; Y/ [/ N$ s; T5 z/ r
;; As OW doesn't support disabling of individual radio buttons within
" |$ w# ~' U" J ^% |3 l ;; clusters, a check must be performed as to the legitimacy of the0 L( E, o. `' Z! J- k. ^
;; button pushed and reset if necessary.( n1 O) E7 Z4 W9 }2 O
(defun radio_gaga (pushed)) [/ q( Q& O( e3 q% X
(cond
; A0 t. W0 o- X0 P/ {0 a ((and (= pltype "3D polyline")6 W7 [# d( R3 s4 |( g
(or (= pushed "fit")6 @. ^7 u& M( g' ]5 M f
(= pushed "bezier")
( d' X2 _4 J+ u1 H/ G- w+ @* E )3 L9 _! _- D+ G" U5 g }! n( u
)
3 v) t2 p0 f* t" `6 @- V# [; b" b (set_tile "none" "1")8 P: a2 w0 R7 A8 Z. i0 Q
nil3 p a3 [6 d) p, `, S- v8 M4 q
)6 K5 }* F8 y4 Y7 [
((and (= pltype "3D mesh")- r2 b6 s6 c f0 ~" X% [
(= "fit" pushed)3 ~. }2 z" L" w' n# |" ^9 Y9 E
)2 ^( h& L1 g& d, v& e
(set_tile "none" "1")
( w! I9 r* I3 [" M, I nil
" K* q5 {4 \- Z8 M/ o( ~ )" _' C/ {! d8 K# Q
((= pltype "Polyface mesh")
6 N3 f: O- Q5 H% k (set_tile "none" "1")
6 `0 l$ F' W% b1 r% Y nil
/ t8 {+ r# U) s O3 ~( X( z2 m )8 C- S; v: | t, E/ i+ L
((and (= pltype "2D polyline"), e: b% \: a8 n, @
(= "bezier" pushed)
5 h/ ^7 B+ w, y; ~+ A0 v: @ )# Z# M% V) @3 R
(set_tile "none" "1")
) l3 Q3 Z0 L0 @% J5 t( X, b& M nil
8 y, g9 s9 I" B$ K/ n# l ), ^8 V. |! C# O5 B: u
(T)
" _0 n7 s/ {% x3 a )
$ y$ W- d; V- K )2 N g0 K8 D7 E4 b) Z1 @
;;
+ Y4 ^- P) Q7 A$ X0 N (defun set_uv (type_n)
3 e- e0 }: I0 W' ?/ c4 o1 B6 B (setq spltype type_n)1 ~8 K3 v; ]5 k- O1 g
(if (= pltype "3D mesh")1 ?: w: }* x2 ^9 y6 ?* I! A/ m3 Q
(if (= spltype 0)( X. N6 r5 A+ i
(progn
2 H1 C+ c$ K# v) @ (set_tile "u" (itoa (setq u 0)))9 I% V$ A& x/ P" v
(set_tile "v" (itoa (setq v 0)))2 m2 ~4 X( j8 h
)
$ Y! g! ~+ }4 l* ?# i0 h (progn8 E! p# m7 b, W% A( A
(if (= u 0)$ h' O: O0 u& x1 J: c8 A' v* a
(set_tile "u" (itoa (setq u (getvar "surfu"))))
2 X- Q. A3 h3 g$ A% |2 o )
R3 N% A) E& A! t (if (= v 0)
- j( M( `- F. j# Z) z+ p, j (set_tile "v" (itoa (setq v (getvar "surfv"))))9 n8 `3 G0 I2 O# ~( ?% t" G& Q1 z
)
: @! |0 @8 y# q1 N1 P )
2 d; e8 C0 g# V+ R# I )2 H& |" Q8 W# a3 b( Y) Y7 y; V
)% A3 f1 l; |' U# F" o
)0 k+ s, k( _; X4 Z# v3 D; @
! W7 m4 z3 s6 @4 u4 s& Z9 _% @
+ O6 U# |" [7 ^8 |
;;
6 H+ X& }7 w2 r8 j7 e; g ;; Verification functions
9 C0 T# C6 R- Q) ?( ] ;;( H$ e6 k/ R1 c9 k0 J
;; Verify distance function. This takes a new X, Y, or Z coordinate or' o9 b0 [' {9 }: f% r/ W
;; distance value, the tile name, and the previous value as arguments.
; r+ B: n) s8 B ;; If the distance is valid, it returns the distance and resets the tile.
/ d: S. z0 s8 |9 X+ Q+ ~' W: N% T+ I6 z ;; Otherwise, it returns the previous value, sets the error tile and keeps; Q; z2 \# R" `
;; focus on the tile. Shifting focus to the tile with invalid value can
) t: W/ f T* i# p7 ^ ;; trigger a callback from another tile whose value is valid. In order, z$ \( u- u: U* i- ?* E
;; to keep the error message from being cleared by this secondary callback,& z& m: @/ a6 A I1 I
;; the variable errchk is set and checked. The last-tile variable is set% H! Q" x# a d' C" {* W0 ~
;; and checked to ensure the error message is properly cleared when the
6 I# i" ?' v, h1 O9 ? ;; user corrects the value and hits return.
# L4 A3 c; b) ]+ f ;;
& {8 H! V$ r# S6 n' v. a h (defun verify_d (tile value old-value / coord valid errmsg)* M+ z) K U& ^5 y9 X# k
(setq valid nil errmsg "Invalid input value.")
2 k! w x/ n, I: ^$ M. X (if (setq coord (distof value))
9 Z3 a. x7 b8 o" Y5 ?& G (progn) ^, T2 \6 s7 V* r9 k) ?6 v
(cond
: G& D, t) Y8 H; I ((or (= tile "radius")
! H1 V" @4 u2 j n, ]2 k (= tile "hght")' K/ W2 F# }% ~& Q$ ]% o. P7 w
(= tile "wid")
$ \; o% M' @( B4 C7 D (= tile "majrad")
- n( r3 P1 U6 P% e5 @/ K (= tile "minrad")1 W s$ o0 Q9 n# }) E8 f5 M
(= tile "eb_ltscale")6 l9 `2 S. s, ]0 h: i3 W7 e
)1 K5 `8 c1 ]( j( C3 x0 |$ O: V( y
(if (> coord 0)7 {# s% k' c r6 \: h' X9 z: o
(setq valid T)& F. E8 A- w% |+ \& C4 H" B5 S
(setq errmsg "Value must be positive and nonzero.")
. D( w4 z3 O0 r% s6 f6 \) y )
: B# A4 w+ W, m. ?( m )
P3 S l. l) o' S- v U ((or (= tile "xscale")
, Y R5 B# [% _7 R. ^( H (= tile "yscale")- t. G, @, P8 `/ E! w
(= tile "zscale")9 `* z1 i0 m2 M( `# L% I; I& J. E
)
2 S+ D# q: U8 @" e8 M5 M s (if (/= coord 0)$ m1 f/ d5 X, I
(setq valid T)5 L" d3 u( u. E9 O- z; k
(setq errmsg "Value must be nonzero.")
0 ^' H7 V7 p8 u* b7 C. R )9 R1 A0 A1 \3 [/ e+ I
)3 {8 x5 W8 c! u* S. l4 l
(T (setq valid T))
. J% D# s% w; ?! K+ R ) l* Y! i/ K1 I8 V7 w3 \& [% {
)1 r7 j4 X7 N* j
(setq valid nil). c2 y9 o% J3 S1 A, j# m* ^$ X; p
)
, M6 D5 M2 U. L/ K/ i: @3 E; y7 a (if valid
! Y. Z! z* \1 R (progn: Y; K3 [* d @" m" s7 ]
(if (or (= errchk 0) (= tile last-tile))" i3 L1 u7 M$ V& o1 a
(set_tile "error" "")! ~# E3 V0 }1 F$ U! T
)
1 h+ k9 ` l3 K8 p ~( G (set_tile tile (ai_rtos coord))
0 V- ]- w2 T7 h1 x (setq errchk 0)% k7 T! }$ E, p0 |! [# B3 Q
(setq last-tile tile)# b& L' ^- J& _% G
coord4 x# s' \6 G. e" J
)/ l) R! m" r9 y9 m
(progn
+ b% h- D+ C8 P7 V+ r( r (mode_tile tile 2) ; Move focus to offending field
' T5 B. O& G, t9 q' t1 y+ Y (mode_tile tile 3) ; Select offending text7 b$ x; s6 F! R+ q& X1 q( S6 @. d
(set_tile "error" errmsg)
$ {' A! E5 B6 H& P: z/ k4 K (setq errchk 1)
# F5 `+ j X3 H/ D$ T1 B9 l. x (setq last-tile tile)2 l1 W0 a2 W6 ^+ f
old-value, T# }8 x0 j9 S
)% W. e; b( s5 z- B9 O
), I" O7 k( N, L; d
)
1 E: L! y6 H1 W: [9 M7 l ;; Function for Xline coord edit box checking.
" R- W: I( M4 v (defun verify_xline (tile value old-value / coord valid errmsg)
2 U: A1 _2 I, `. Q9 q Q+ H4 c (setq valid nil errmsg "Invalid input value.")9 I8 G3 n1 A8 ~# V" d
(if (setq coord (distof value))
9 v. L- v5 w$ }: b4 b, D (setq valid T)) T9 H$ l$ G' s- D9 a4 L% m8 D# M
(setq valid nil)
( O$ M& n: o6 h )" y+ S9 o( i" N+ I" H2 i' S+ f
(if (and coord
- ~# f0 C' \, w5 M& l (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )& ~7 v5 D' a, Y1 ~9 G
(= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )$ }3 j0 z' p3 m0 W: u; N# D# @$ G! l- c
(= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
4 T, o, d( y: q _ )
& G' ?* X; `3 h4 ^. _+ I )
7 Q; e% }8 V/ T1 Z; N1 x (progn# r$ O7 H3 F5 J4 d# {5 N
(setq errmsg2 ?& s- j/ r( V& t$ ~1 r2 B. r7 x
"The Root point and the Second point cannot be equal.")/ j0 I4 E/ F" R/ `$ d
(setq valid nil); {1 |/ {5 B& k9 b4 r0 q2 Y( s
)
8 C) B2 d3 @1 C )2 H. c" c2 N3 c
(if valid
) G/ U* g+ b! p7 }5 p (progn1 p% C4 k7 E# H5 x* Z G* D
(if (or (= errchk 0) (= tile last-tile))+ u) n7 ?* y. J# E2 y0 _5 R7 |
(set_tile "error" "")
& a$ j$ N! g; J8 l" l/ J) r) f )
- G3 p: T, \7 K# _ (set_tile tile (ai_rtos coord))
- l6 X/ q+ `# p/ g, o (setq errchk 0)
0 R/ ^! U6 \# K- P G4 ~1 ?- i (setq last-tile tile)4 }' l* f/ z7 D# g4 ?" v
coord
. e4 _/ S0 e. O )) D. l) [- q* a" o
(progn
$ @1 f# `% A+ O8 V6 H' r (mode_tile tile 2) ; Move focus to offending field
+ x: J1 B6 z: ^' z$ o (mode_tile tile 3) ; Select offending text6 H' c! p! U, k1 w6 C( X8 Y
(set_tile "error" errmsg)
% |+ T9 n/ f7 X6 r, x4 v9 I5 L (setq errchk 1)/ v, h1 p. L" B3 i' a9 ~$ i
(setq last-tile tile)
V6 f! B1 f4 n# k( l old-value
1 G) B( ?& N. W/ H, s6 u )% G, |( y9 G+ h6 e' G' P1 M$ Q( |
)
3 G! {& W: x* j3 D )
0 y0 H- r$ G& e0 [' k8 [
; N5 N3 Q. P0 J ]1 }' y ;;2 c+ Y7 z1 X& ~4 {0 H9 z/ n$ s% W8 n) |
;; Verify angle function. This takes an angle and a tile name as arguments.9 t0 t7 m. H6 z; m0 |
;; If the angle is valid, it returns the angle and resets the tile.
' _8 T% [& [6 v$ G+ A- k U F ;; Otherwise, it sets the error tile and keeps focus on the tile.
* y- h! S/ b: P( ]4 k7 ~ f: e6 M) v ;;7 a* X5 k' Q7 ^% J5 \& Q3 r( i
(defun verify_a (tile value old-value / ang valid errmsg oblqmax)0 q) ]0 i$ e$ a. s
(setq valid nil3 V" [; `9 i+ L8 j L( t$ |; ^! H
errmsg "Illegal input value."
- d$ f; m ~& G* d9 Z4 D& ~3 n )
2 n0 B& }) F- [2 A (if (setq ang (angtof value)) F( K0 w- \( O0 W
(cond1 ^0 j1 ]. M" j$ O% B# Q: K
((= tile "obl") ; Restrict obliquing angle/ z' Z( r5 Q- H$ @% I1 x- f
(setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
3 K" x! {, a) S! }+ A- V (if (or (<= ang oblqmax)' O/ O7 B r* X6 C; l2 p7 H
(>= ang (- (* 2.0 PI) oblqmax))
) y2 V* V% D u N1 M )
# e! W! o O, E: e, k( z (setq valid T)
) e/ O2 M" l9 g2 O* | (setq errmsg% d8 b( n, Q1 R; G
"Value must be between -85 and +85 degrees.")+ E% c) y' s! d* |9 L( F1 K
)5 _! @$ k& S3 s% U# d& e9 l' s
)
7 ~; z! }, q/ a' w9 Q% G0 | (T (setq valid T)) ; Other angles not restricted
/ l" k' h, z( N* Q9 q" D )1 |* s0 T8 @$ R( X
(setq valid nil) ; Invalid angle input
( c- F$ B+ _. s- L# N )
( E( w5 R7 o* S4 u0 K# k (if valid
9 P8 r& F- E) E) y. Z& J5 d; g1 S (progn6 v; s! M9 } _: x9 d' ?
(if (or (= errchk 0) (= tile last-tile))/ R- ]5 O$ G# ]: l2 f- P6 M) j6 J
(set_tile "error" "")
# i6 H0 u: U6 q7 ?$ ] )7 c: [" D# O$ O: {3 c
(set_tile tile (ai_angtos ang))
4 G5 A3 T- |0 [4 B (setq errchk 0)
' s. d! J. u; i0 f2 A (setq last-tile tile)3 L0 J5 Z' D: @! ~" x' K" R: p
ang
! X$ T8 `6 O' r. y6 ?1 ]; V )
9 J, Q9 ^" B. [ (progn. i! I! c. d6 S0 {# @. O8 Y( a* S
(mode_tile tile 2) ; Move focus to offending field" L5 l1 t0 }4 R1 R: N9 s
(mode_tile tile 3) ; Select offending text; g" I9 Y4 H9 \/ n- ^- m, @
(setq last-tile tile)
- _5 o5 p) D4 v6 ^7 c& K! g8 w (setq errchk 1)! u' P+ B$ v* `
(set_tile "error" errmsg)% @, x& T. g# b7 c" F
old-value
+ [- D8 J' y8 B )
6 t4 o2 M/ F% B )$ O' m! {+ w3 I7 G; x
)" Q' x: j; P+ Z! O" @
;;; @! e7 C8 {' `: ^1 [ F% m* @+ ^
;; Verify angle function. This takes an angle and a tile name as arguments.- ^' N1 O& Y) `2 D6 a# ~( D. |
;; If the angle is valid, it returns the angle and resets the tile.
$ b9 y3 W. t2 x( q" Q" f2 j ;; Otherwise, it sets the error tile and keeps focus on the tile.7 ~; V8 E# w. }/ f* N% G
;; This function is specifically for the end angle of the ellipse object. If
* G5 o# S% x1 x/ {5 W$ P. @. z ;; the end angle resolves to zero then we want to display it as 360., c0 |3 ?; r4 F! H
;;
; Q) ]3 D9 m" K# N7 b o& _ (defun verify_ae (tile value old-value / ang tempend)* n7 E/ D& E9 H
(if (setq ang (angtof value))# }) j( W& J3 N G5 z- _% R/ q
(progn
0 ]" A, G! P$ l (if (or (= errchk 0) (= tile last-tile))
' Z! d4 m0 F% n0 i+ n5 Z4 z (set_tile "error" "")
0 A% M' `$ ^( v2 O0 O ). h( |* {! P o5 V9 l: h. b
(setq tempend (ai_angtos ang))7 c% a: Q' |$ y
(if (= tempend "0")1 u: m' O! C# c! }: ?
(set_tile tile "360")
0 V; |* R9 x8 t6 G0 c (set_tile tile tempend); H! { J6 R# u) G, ]. _: r
)# z- \4 E1 s# p- o: K6 F( L
(setq errchk 0)5 _0 J( Q3 k( u/ Q) V# H9 |
(setq last-tile tile)) Q7 U# N1 _* a( j' c; H2 t6 |
ang& n7 _6 k* l3 d/ M$ n8 d L4 O
)2 E& _- v5 L- b. Q
(progn
# l7 q3 P: ]0 O0 W (mode_tile tile 2) ; Move focus to offending field
6 y: q4 ~. s1 i& ?/ M- e; a (mode_tile tile 3) ; Select offending text6 U( s( n7 p: E1 S, Z* n8 C0 J$ L
(setq last-tile tile)
! o0 z0 K; P: N: U: T7 E! ^ (setq errchk 1); {# ^, e' t8 c$ i
(set_tile "error" "Illegal input value.")
2 Q8 y+ L' [( @/ {$ k m% Q5 P( f old-value
! U. Y8 D! K* O h ). N& ~# i0 H) u$ ~* }0 b) T6 y
)
9 M( Y H# r& U: v )
5 ^* X, j3 |/ _; J4 K+ w9 W ;;
" e# C( k2 p, {4 g! \$ W2 Z ;; Verify integer function. This takes an integer and a tile name as4 ]9 l$ c- ?6 u( _( c! u4 D
;; arguments. If the integer is valid, it returns the integer and resets the
' F, }/ [/ {# l# x/ i/ \% y+ r ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
( Z0 x9 l# Y, T2 G6 ^ ;;4 s2 L9 X) o0 Z) v% y9 M. O, Z
(defun verify_i (tile value old-value / int valid errmsg)
# k \) @4 q. j. q' Z3 a3 |' R s (setq valid nil)$ j& K3 w. Z- ~- R7 ?/ z& w- u
(setq errmsg "Value must be an integer.")
( l7 Y! }5 b$ i" Z (setq int (atoi value)), ~ U" q7 r. D5 V ~, n- w
(if (setq intchk (distof value)); K: V2 V8 D+ X9 {" @ w
(cond/ d/ z9 a8 ^" s% X/ C
((or (= tile "columns") (= tile "rows")): G. T% J: Q' D
(if (and (= int intchk)
' B0 g& @- ]4 o8 o9 S0 l (>= int 0)
! L2 A! d& Z J4 T (<= int 32767)
+ I" M, c7 ?1 a. ^/ }9 C" d1 l% ` )
w( i9 q, w$ R! T% E7 A) q (setq valid T)
$ W4 i0 g- H) o, k (setq errmsg "Value must be an integer between 0 and 32767.")7 F) o' I2 n7 L2 \: m0 X5 W5 U* M( U
)
; _. O0 y1 ]& l# F2 |9 C )3 Z( H. P$ W' ?# x0 G
((and (or (= tile "u") (= tile "v")))5 [' s: ^& e9 I8 E- n/ Q3 q2 N
(if (and (= int intchk)$ n* U" T& y3 v9 y* b+ j
(>= int 0)1 O* j* k% L, q
(< int 201)
7 P" l K' e) x; s' G5 L9 [. B! { )2 f+ X1 N6 z4 M" k, _ X# r
(setq valid T)
+ Z7 U7 M: U i$ {0 ?1 | m (setq errmsg "Value must be an integer between 0 and 200.")& m) z& j. Y; s: h! D
)
0 T d, k+ o; M/ p7 g1 `! L, o ). T- r/ x% @/ u3 D: D' z
)
; V. P- c) t; B' _- ] )$ Q+ k6 M! A& H
(if valid, X5 a' o# F3 l% b( G) ?0 A! a
(progn
$ z5 k, {: ~$ r T1 g (if (or (= errchk 0) (= tile last-tile))9 ]5 Q+ E! K8 V7 f6 `( o/ Z% ^
(set_tile "error" "")
) K+ H" ^, W. [, a0 D* X! P, x )
' j0 \" C4 [, K7 F1 L' R (set_tile tile (itoa int))
, W" M' C f! b; A (setq errchk 0)
4 x% u; L* I4 ?: r" P1 ^- `. p& k5 O (setq last-tile tile)* {- J, e8 |/ a/ e0 ] {
int& P& S4 Z* d {1 @! b) P8 x1 t% z
)
9 ?/ ]5 R' |6 [4 @ (progn% ?) N' R, L+ |
(mode_tile tile 2) ; Move focus to offending field
6 I# P1 m6 y% i! ^+ M, J, X3 F: p (mode_tile tile 3) ; Select offending text1 m! j3 X0 e4 B% f6 S: k
(set_tile "error" errmsg)
' g m; C& c- o7 T (setq errchk 1); a* H& b* Z0 z
(setq last-tile tile)
4 K$ r1 Z: V+ h0 T0 j( v old-value; P6 Z- H$ y/ c2 j
)# J/ R) h( k K8 r! {
)
7 g6 h' l. |/ B! [8 p2 } )
4 e( v6 k. X4 n& ^# O( Q' N0 W" L3 g ;;
) j7 h" V5 s+ H1 i9 O, ]1 W9 J9 u ;; Functions that verify tile values for integers
l# |# ?6 _/ I q; _; k# G ;;
& z8 B- L) W N' v, `4 Q+ v: F (defun ver_col (value)
* n5 P1 H3 X- Y+ k (setq columns (verify_i "columns" value columns))
6 Y% r; I5 n0 o% A% z" l )
1 o1 J" V" @2 P9 @8 ` (defun ver_row (value)
8 i0 f! M+ h' L# x' O (setq rows (verify_i "rows" value rows))
( G/ V4 d2 P9 |- P3 R+ |0 Q$ q )5 d2 U P; U1 d7 R" c$ P! R3 Q
(defun ver_u (value)* O* C, h( s' p; `; q
(setq u (verify_i "u" value u))
9 ~% I, s5 [$ v" ]: q; d8 v5 B )8 C H9 q# G! ]) U6 [$ ?
(defun ver_v (value)
7 F" R: W8 l4 _8 A; I (setq v (verify_i "v" value v))! b Y% @2 d/ p$ }
)8 R+ e B4 X0 E+ P
;;
7 i# r, q/ ^: P- I& U5 i ;; Functions that verify tile values for reals! Z" I; d: j8 m% \* N1 t4 y" W
;;
; H4 j1 w, Z: E6 N8 l& N3 H" _ (defun ver_x1 (value)
, L; M. Y2 Q' h$ j; ^ (if (setq x1 (verify_d "x1_pt" value x1)) (calc))& m" r+ B; B u% Q; z6 d! o
)+ J7 f5 O; }! i) W$ U% A
(defun ver_y1 (value)0 \* J Y+ a. e+ L' e* f. k
(if (setq y1 (verify_d "y1_pt" value y1)) (calc))
6 p) @6 l, ^+ r9 R9 b8 ` )
9 Y% V2 S/ ]; `/ n (defun ver_z1 (value)
: `2 D4 ]. x/ ?& K (if (setq z1 (verify_d "z1_pt" value z1)) (calc))' m8 k9 l6 F) w% ?- w
)% w' { z- Q8 V$ m% x, I4 L( U. }
(defun ver_x2 (value)
, n- s- M$ Y" U3 _% R* E6 r (if (setq x2 (verify_d "x2_pt" value x2)) (calc))0 w- B' K& Y8 i2 g( z' E
)
6 [+ d$ Q! q/ Q7 U& i* d (defun ver_y2 (value)
8 g4 H$ F Z/ N (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
4 u v; o! j0 B4 V )
4 w2 u4 w. M. i (defun ver_z2 (value)* ?$ g& t4 t$ U0 u2 w
(if (setq z2 (verify_d "z2_pt" value z2)) (calc))
2 g' e3 L2 @# J2 p )% H- q) c u$ y. Z
(defun ver_x3 (value)
; h. }- r: f0 M) a7 l$ i# ^ (setq x3 (verify_d "x3_pt" value x3))
, U5 C" i9 \8 H- @7 H1 L )1 {, V" |7 ~. [. I- `0 N+ e4 {
(defun ver_y3 (value)4 k5 _' g# {1 r; g' m
(setq y3 (verify_d "y3_pt" value y3))+ b3 T: n) r2 }: C7 G
)
" E6 n$ P) W) i- g, W8 @ (defun ver_z3 (value)+ {) ?: u$ Y, `1 s1 e& ~( \! |( P
(setq z3 (verify_d "z3_pt" value z3))
& |1 x: f- H; u5 c. q* [" o( q )# r/ h( A& \' A' Y. f8 S
(defun ver_x4 (value)$ t8 f4 F0 V7 M% ?: e
(setq x4 (verify_d "x4_pt" value x4))- b# t7 I1 q. K n
)
V* A; Y3 a6 t9 S (defun ver_y4 (value)4 v t4 I- z0 t" a2 D
(setq y4 (verify_d "y4_pt" value y4))
; O/ \/ Q" x! f7 L' E( J )
7 P& ?0 J; T4 p/ Q: o7 l+ r( r0 p (defun ver_4 (value)& X3 Y% Q C9 O7 B0 s5 l1 A0 L# y
(setq z4 (verify_d "z4_pt" value z4))% U7 p$ y/ t, W; d( m1 y
)1 o9 R; S3 U- J; c
(defun ver_xscl (value)
+ K! N- C6 z* k5 a% h5 F (setq xscale (verify_d "xscale" value xscale))9 W+ R% j6 H) A7 B- I# C) n
)
- ~% {0 c& G& }! D (defun ver_yscl (value)4 g- \* Y# |' |8 p2 e* E
(setq yscale (verify_d "yscale" value yscale))5 Q @9 r6 k- S' r3 l! j& `
)
# s6 `3 |. b2 _5 Q# _ (defun ver_zscl (value)8 U# i( P! G, l- A
(setq zscale (verify_d "zscale" value zscale))
& `* r& z2 y2 J" n2 H) s )
$ x9 M. Z7 v M! m! t (defun ver_colsp (value)7 z8 Q3 v$ H: n2 V$ H5 t; K
(setq col-sp (verify_d "col_sp" value col-sp))# U& G+ A+ J6 f8 W
)) e' g) ] L2 r' N5 ?% S9 e
(defun ver_rowsp (value)
/ D. m( n6 @, a (setq row-sp (verify_d "row_sp" value row-sp))
! C; a, Z* k# y# b3 v$ N1 _ )
0 a' X. q! t0 s) I" K; y0 z; U (defun xclip ()
9 w% j# r9 l" D- p! s7 Y+ e (setq xclipmode t)
9 d' \" l4 H7 Y, u$ W+ ~" X" y (if (= xcliponoff "1"), a9 v, r6 n! d8 G \
(command "_.xclip" (cdr(assoc -1 elist)) "" "_on")' u2 W6 }! @) g$ c
(command "_.xclip" (cdr(assoc -1 elist)) "" "_off"). j% U Q4 L6 y! {
)
, \$ g: B3 |0 j* l# J' U% o )
5 r) D4 S) ~& d) K# k7 F (defun ver_rad (value)
8 b( F" Z3 j r) q/ V/ X% w6 m9 v (if (setq radius (verify_d "radius" value radius))
- J( z# F) e: ]6 n8 |0 L3 h- }2 k/ u (calc)
}# J& a* E8 n; E/ f2 t, q1 \" C )3 K- o" `% m8 Q& ^" J
)
9 m5 a1 n: }5 H4 b (defun ver_majrad (value). f; u7 i' u8 F. J3 k( X
(if (setq majrad (verify_d "majrad" value majrad))
& W$ s9 }9 b9 [1 X (ell_calc_newval "majrad")7 d& x8 C* N' F7 A" p
)
2 Q$ U) c7 B, J+ \+ }$ N+ p )
* x0 ^. h" |6 |. k4 J7 Y) P0 j (defun ver_minrad (value)
. r, E' Y* X* _; ] (if (setq minrad (verify_d "minrad" value minrad))/ u) f3 A8 R3 S
(ell_calc_newval "minrad")1 Z7 x+ [' q! v8 U# s. {' D
)
' o$ x2 {; d2 A3 b2 ^2 T+ ? )0 L2 \( w3 o3 ?) \
(defun ver_hght (value)1 t# Y. i. V+ |* e9 U
(setq hght (verify_d "hght" value hght))
@: B# ^6 k' d/ _5 [/ q& ~ )1 a3 f; m! g$ ?
(defun ver_wid (value)
: h7 x. u% m7 I/ v2 |5 V5 U (setq wid (verify_d "wid" value wid))/ @# H/ P& i4 R( X, k4 C a
)
* Z% [; D8 z4 O) N (defun ver_xline_x1 (value / temp)
/ v: _9 S9 T6 W& ? (setq temp xline_x1). M* o) F) v) \# ~; L- j
(setq xline_x1 (verify_xline "xline_x1" value xline_x1))9 {0 L" r5 D( K% b: G' V) K4 D
(if (/= temp xline_x1)! m" {, Q; {+ m6 h8 @/ T
(progn (modify_xline 0) (set_tile_dirv) )$ L$ ]( L: w0 u3 Z
)
: V" d4 S4 N5 b! r )' l; i" y d8 Y/ y
(defun ver_xline_y1 (value / temp)& k/ H3 J1 B# b# h7 L7 Z" l
(setq temp xline_y1)2 P$ H; G/ W* c4 {1 @
(setq xline_y1 (verify_xline "xline_y1" value xline_y1))
. i% y. ~0 B8 ? g6 Z! G (if (/= temp xline_y1)9 Z# m( B' V2 L2 L4 W1 q# X6 x( v a: T
(progn (modify_xline 0) (set_tile_dirv) )
" h' ]0 _0 U, a3 V/ u, { )- L3 ?9 \1 t; d0 N. `
)
" M; n5 ]6 b8 c5 |" }. C/ |6 r (defun ver_xline_z1 (value / temp)
, ]6 A% ]" w3 A: i3 D+ v+ z- a (setq temp xline_z1)
3 g4 H9 H3 I. ?! F (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
+ t5 v o$ X5 ~; I* X8 } (if (/= temp xline_z1)
% Q- u1 o/ B) O (progn (modify_xline 0) (set_tile_dirv) )
& U; @9 N2 k8 k j )
, j8 z4 g/ |$ b; n/ k9 L )
" r3 O. H0 L* `1 e* _4 B" y (defun ver_xline_x2 (value / temp)% k+ K( g/ D% W! f
(setq temp xline_x2)
; V1 g \/ \8 [, h/ j (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
7 ]6 z: v/ m* e# h* ~ (if (/= temp xline_x2)! P& R! c8 X: ^6 J- s0 u( }
(progn (modify_xline 0) (set_tile_dirv))
) i# N! h9 G' [3 G* V( e' } )/ E, W! _" F$ A6 P6 M% m& o, n
)
9 B! {5 P+ e( A. {8 E( U$ ~ (defun ver_xline_y2 (value / temp)4 j ^9 l7 i5 u3 N% l$ V" s; [
(setq temp xline_y2)
1 X, t2 I: @# g$ U/ f (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
" f* A8 K% D/ [; O (if (/= temp xline_y2)/ o- S* N( H) ~' j- N; K# u' ^
(progn (modify_xline 0) (set_tile_dirv) )
+ D( b" e5 o% S5 Z3 V )5 `$ I( Q- A9 q" o' x
)
0 S+ i- b2 ?& ^2 {2 F( Q% b2 a+ x (defun ver_xline_z2 (value / temp)
& d! h" y" ^& S4 r+ z& S) {4 k0 G (setq temp xline_z2)7 t' S+ b+ `, W1 I, d/ C" F, Q
(setq xline_z2 (verify_xline "xline_z2" value xline_z2)), O( `$ g2 s8 S; G, \
(if (/= temp xline_z2)
" `- H; K. j( j2 E$ E (progn (modify_xline 0) (set_tile_dirv) )0 I. r1 Q1 ?2 Z; j) B
)
4 P4 A3 D# P1 O3 W2 ~2 B d: x6 Y: z )
$ `& C* m' J+ o" j0 Q5 D4 | ;;
/ S0 i6 B3 h6 r; H ;; Functions that verify tile values for angles
/ Q; w6 O4 z$ P8 t ;;
8 e* M+ D2 ^! l6 ]4 N3 _) p6 [3 _! | (defun ver_ang1 (value); }/ R1 q7 K( z, d; f
(if (setq st_ang (verify_a "st_ang" value st_ang))6 g) y, X. }8 F0 S" n
(calc)
( r2 D( t$ d% a' n, Y: }* M6 U )
) Z6 l. j, U4 C. w )
- w1 b/ h' Z# [! S8 J* K (defun ver_ang2 (value)
* E9 Z- M" ]. G+ p) M* w0 M (if (setq end_ang (verify_a "end_ang" value end_ang)). e3 H7 S. Y" j1 Q
(calc)/ F1 L! U: H( j/ d: e
)
9 v6 Z: {( q! o+ z$ g )+ r6 W3 I/ j9 X. L, ^1 R6 \
;;; v! Z; U0 q8 N- x+ T
;; Verify tile value for ellipse end angle. Handled slightly
/ o/ w) b; h) A9 @* U ;; differently than the other angles.7 a9 W7 K4 p# K2 T) y
;;
3 R9 q5 w, P/ V' @ ?7 W4 r' V0 F (defun ver_eang (value)/ Q3 n0 w$ E: y9 b
(setq end_eang (verify_ae "end_eang" value end_eang))
& Q+ e) D/ U. g* l: t )
2 h/ E4 u2 L9 L3 E/ A1 k( w; r (defun ver_rot (value)) g1 q: P4 e$ {: n# b3 @/ j) H
(setq rot (verify_a "rot" value rot))/ J7 O8 z# M0 l% T k- q% P
)
0 [) k& Y; o" [0 D/ I8 H (defun ver_obl (value)
& R. O; f' G5 B+ z8 _ (setq obl (verify_a "obl" value obl))4 b7 M; f1 r0 w9 O
)
% { {0 p1 C$ d6 l2 P' k ;;0 j2 \: c$ G1 u. Y' x! @
;; Function that verifies attribute tag field for null string,
X+ z8 H6 b4 A, } ;; or a string that contains one or more spaces. Tile value
/ \! Y/ m# C! r3 t2 N% b9 y& X# d ;; is also converted to upper-case as well.
+ b% i6 x- c- z! P. H) V0 o0 ~ ;;
, P, [$ ^0 h' v3 e$ ? ;;! s% P- {3 V- U) u& V& n) C0 ~6 G! e
(defun ver_tag ( / tval)' h0 T/ { l' W0 a
(setq tagval (get_tile "tag"))
; _1 h1 b& h- A: h- J (set_tile "error" "")/ b. ]5 i) h1 k# g# `
(cond; P1 j- q3 @. s7 K& I, V' P
( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))0 h8 j% K& G7 r
(wcmatch tval "* *"))* N) y4 N# O# R: M0 E5 H( D7 Y
(set_tile "error" "Invalid attribute tag.")
8 c, l7 }! N4 E; K (mode_tile "tag" 2): E G/ U a3 D. m' Y ?7 F# N/ ^
(mode_tile "tag" 3)) `# R5 W3 }7 O2 [# Y. f [1 U3 t
(t (set_tile "error" "")
# }! }. {4 Z! o (set_tile "tag" tval)# k5 g5 b( [- x* O' R- s
(setq attag tval)))
8 a0 E& z6 R4 i3 v8 x )
2 t0 d& Y; z& |2 ?" M' I+ A! c1 { ;;4 d0 E5 m, j% Z5 j" F1 t
;; Calculation functions( f$ g9 |! q. W3 i8 ], D
;;
x# k, m3 {! C (defun calc ()8 _' f" J8 w( ?: ^% {
(if (= etype "LINE") (line_calc))" k9 F. O8 c9 o# @7 X
(if (= etype "ARC") (arc_calc))! T" V3 L3 ?% I+ r% S* @, k
(if (= etype "CIRCLE") (cir_calc))) ]1 ^2 t, ^5 E6 |3 K3 r
)
_- I6 A7 ?0 O0 M! W ;;
% K9 w6 o* d0 O ;; Calculation functions for lines, arcs, and circles! [3 e* V+ a M7 E. D0 A
;;
p, `* `& F0 B# c (defun line_calc ()# X U+ j6 ~6 X5 o) S4 p0 r( u
(setq stpt (list x1 y1 z1))5 n: u& h1 Q* r6 k
(setq endpt (list x2 y2 z2)). Z3 H% @) i9 K% D( J
(set_tile "delta_x" (rtos (- x2 x1)))1 z2 e7 G0 U6 E4 X' K7 G
(set_tile "delta_y" (rtos (- y2 y1)))
; p4 h! n3 v$ r2 t (set_tile "delta_z" (rtos (- z2 z1)))
" V* z7 u# P- a0 h( _( V (set_tile "l_length" (rtos (distance stpt endpt)))( I: R) Y- L% B" f
(set_tile "l_angle" (angtos (angle stpt endpt)))
' z3 K2 a3 b8 K )0 q( V4 X1 a4 w7 r
. e* N# B7 } T/ J2 a! A (defun cir_calc ( / area units)
+ b5 m! V- d1 z* y) } (setq radtest radius)
) ~6 n6 d6 C! H0 ? q (set_tile "Dia" (rtos (* 2 radius)))3 N% I2 X, b, b1 ]' c, d7 D
(set_tile "Circum" (rtos (* 2 pi radius)))
; c0 H3 q9 R9 U* Y! J (setq area (* pi (* radius radius))); [4 h4 z1 }4 |
(setq units (getvar "LUNITS"))
* E3 U3 o- F: S$ g; Q (if (or (= units 3) (= units 4))3 F! c! R: {: y; w4 s0 _- r- ?
(progn
& B0 U' C: j6 n3 b9 g8 O (setq area (/ area 144.0))1 u W: A1 x, G f
(set_tile "Area" (strcat (rtos area 2) " square ft"))
8 a& ]$ C( g/ C% T2 l0 c )' q2 }" [1 p* u! n& }/ n
(set_tile "Area" (rtos area))
$ l+ d* ?1 u- x! P% d. f$ m( H )$ j& U( [) D9 x6 h" I# b
)
5 K4 d: L( a* c: c7 A8 d# b4 o' b, f+ `
2 [5 m$ D. S+ q, c$ a5 L (defun arc_calc ()
6 t: j$ M0 a" k8 \8 q) J" ] (setq totang (- end_ang st_ang))
" j8 J) N8 c* @5 q1 D6 s! U1 Y# } (while (< totang 0)! |1 v9 m$ t3 `
(setq totang (+ totang (* 2 pi)))
+ ~6 a2 v( Y/ K! ?3 h F8 l )
4 P% d/ M$ \$ K; L7 s (while (> totang (* 2 pi))
1 u% Q' e Q+ \* G (setq totang (- totang (* 2 pi)))' D( _% J: _2 n7 l; G' U5 B$ n
)
$ L' Z) h- \8 R( c" Z9 ?: q (set_tile "tot_angle" (angtos totang))
4 m3 j& x7 c! V% F# U) P7 h (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi)))). x# k) F0 F9 j
(set_tile "arclen" (rtos arclen))
. l* S2 V6 A' W5 O )
% t, z( N# d( y. g% O& F ;;- \, K8 H. [- `% X7 ]' }% }: k# ?
;; Calculate the major radius, minor radius, major axis direction.5 n9 q1 r4 @, l0 u) t( t" n
;; Get radius ratio. Convert Start, end parameters to start and end2 d9 f/ X& q* H4 w6 D& O6 @
;; angles. Save Major Radius value in "old_majrad" in case the user- V5 y- T, `' F9 y
;; chooses to input a new Major Radius value later. It's needed to
4 ? }% N# j# k4 Z3 {# i* L ;; calculate a new Major Axis Vector value.
+ h+ A/ C- r2 Q9 w {0 @8 Y ;;, @) W, t% R! c( [" h9 j' t
(defun ell_calc ()
( [0 i- k3 K1 t: W+ w2 C' { ;; Get major radius from the major axis vector.
7 r4 e0 i' B! I8 {9 I (setq majaxis (cdr (assoc 11 elist)))* A* c! G) s7 i2 t) C
(setq xx (car majaxis))$ c! A; F/ S8 t8 s
(setq yy (cadr majaxis))0 h: x# I$ u* D2 \0 W- A
(setq zz (caddr majaxis)). B& c5 x- d" d
(setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) ))): O' q" l0 E N1 Y5 A
(set_tile "majrad" (ai_rtos majrad))/ w" v( U6 g# X% L& J& V! o$ J
(setq old_majrad majrad)$ n7 c4 s1 W# W4 E) j1 _% U3 q
;; Get radius ratio
* B7 p" n* Q T) W# w7 W, X! U (setq rrat (cdr (assoc 40 elist))), g1 \0 S' O& W1 \- ?: j
(set_tile "rratio" (rtos rrat))
/ [: V( j: [9 r6 E ;; Calculate minor radius$ d2 b2 _2 U- y
(setq minrad (* majrad rrat)): h& E( B' d6 {
(set_tile "minrad" (ai_rtos minrad))
; G5 |* b0 n5 M6 L6 u( E7 q ;; display major axis vector! d, o! C; O& C7 J* M
(set_tile "Majraddirx" (rtos xx))8 i; h2 u/ L. c0 E- z8 A( ]) @
(set_tile "Majraddiry" (rtos yy))
8 K( d+ Z0 p/ r, e! T (set_tile "Majraddirz" (rtos zz))
, ~1 ?/ x4 X- {9 @7 k
' v/ D* r! t( R$ |8 t+ i8 ] ;; Convert start parm to start angle) {& |. y* Z* b: R6 J
(setq stparm (cdr (assoc 41 elist)))8 i9 Q8 P. _4 Q) L2 u. {% x4 z ~
(setq vecx (cos stparm))
' Y! i5 B `" @2 F (setq vecy (sin stparm))
% A) ~6 ]) N$ i$ W: \$ m1 V" z (setq st_ang (atan (* rrat vecy) vecx)); f4 F, F2 Z' e& ?7 u( b
(setq tempst_ang (ai_angtos st_ang))# @* ~4 s6 c3 e0 p4 f! d/ u
(set_tile "st_ang" tempst_ang) D1 v, N! n) ^
;; Convert end parm to end angle. If end angle evaluates to 0
* P: I# i) y8 j+ w( _ ;; degrees then display it as 360 degrees.5 {, z" q, x; g% p
(setq endparm (cdr (assoc 42 elist)))! l9 h% I1 i7 ~. z- U
(setq evecx (cos endparm))% K4 R i! F; j: [% F
(setq evecy (sin endparm))
' | X' b; Z& i5 h8 w7 q (setq end_eang (atan (* rrat evecy) evecx))2 }. Y: j* {0 z/ m* m
(setq tempend_eang (ai_angtos end_eang))# U8 Z% G; R3 m
(if (= tempend_eang "0")
7 x4 z4 \$ ^5 p6 z3 V0 P (set_tile "end_eang" "360")2 a# F Z' r( Y" e+ w
(set_tile "end_eang" tempend_eang)5 z: R% S- R. Z
)
+ n. [/ V3 N, `1 b ;; Get area of the ellipse.
8 I0 M) R) B- l: T k# |$ W& l5 o (ell_calc_area) v* }0 X, m$ j1 d. Y
)
3 P) x1 K: D. ]' m: a- y ;; Calculate area of ellipse. If it is an arc then
F5 j2 |% K- j ;; grey out area display.
% C. {8 m2 G3 r3 Y# G! y ;;. }0 r2 C6 [2 G( t8 H- l( w! h
(defun ell_calc_area ( / area units)
- ?7 S% R: |6 e# m1 J9 L (if (and (= tempst_ang "0") (= tempend_eang "0"))
4 @: S" ]4 `' Z! { (progn4 G1 \! |$ P. |5 W9 `- P9 |2 r8 h( O
(setq area (* pi majrad minrad))
1 G& s) U) s r' x2 ~# R (setq units (getvar "LUNITS"))0 j: X+ S$ ~, A
(if (or (= units 3) (= units 4))
# S. C1 Q( l H! M6 ?$ j: d (progn
" V, d+ g7 j* b i8 g5 ^ C (setq area (/ area 144.0))
7 [. O/ ~* Q9 N, a2 s- V' N (set_tile "Area" (strcat (rtos area 2)" square ft"))
" J' U9 S6 m) z# z+ r& a' d )
8 I( ]! J- h3 a+ a (set_tile "Area" (rtos area))) D4 {2 p+ v i; W* o; a- o
). c) ^% y/ e9 M( D. ?' L' I
)3 g7 H8 e! e; E8 k" b
(mode_tile "Area_text" 1)" X( w7 D6 P8 _1 ^6 r5 r6 Z
)
7 e r6 j! U) T" }: R+ a )
' ]6 @5 N# P7 n ;;
4 J* S$ I! j. v) @ ;; Calculate new values for ELLIPSE$ s3 x$ ]) i' R7 z% f; u( Z3 l
;; Minor Radius, Area" p* ^$ ]4 z% s! U% z) ?$ w: | _
;;
2 e0 _; ?( y) ^& ^ (defun ell_calc_newval (ell_tile)0 X0 H( h: ?: @: N* |& O6 h' L
(if (= ell_tile "majrad")
$ |+ N4 O8 s/ O* i! P (progn G$ D+ E% Z$ U; {# w
(setq rrat (/ minrad majrad))% K, b$ d4 E5 e! ~5 V6 o3 g
(set_tile "rratio" (rtos rrat))
# [" \& }* R$ x, U+ Y R7 W8 ]+ K (ell_calc_area)# V4 C) j7 ?3 e% t- A
). R) y7 b: ^5 V4 W
)
t6 u) j% r# w z1 b6 | T (if (= ell_tile "minrad")* ~0 \) u$ Q# ?$ } U& U- _. Z
(progn
8 C& ~5 D6 Z; X* P4 K (setq rrat (/ minrad majrad))
; F8 a0 o: B0 N4 U! ]0 ? (set_tile "rratio" (rtos rrat))
5 w$ L9 S# J+ t/ Q6 n9 _ (ell_calc_area)
5 ~3 J7 Q1 V) b! Q ~9 k )- {' [7 E+ X- Z8 c6 V
)& q6 s5 n! a8 X' V& g- t
) N( w& J% m& `: F& j; F& y& E
# |, D" v. E8 N! V* z
(defun set_dimen_props (/ loop a stl txstyname)* n+ I$ l6 q4 h& s) a+ Z/ G
8 A# V- u1 f z7 c& b' u (setq stname (cdr (assoc 3 elist)) ; get style name
4 }7 u# u; {6 ` stl (tblnext "DIMSTYLE" T)( J: S4 j* y* c! l
stlist nil): Q% v' M! B" S3 B' Z; ^/ y D4 }
;; Get all style names and list them in alphabetical order
) x+ I) P; [" t* P3 @$ @ (while stl
5 m7 Q& j/ Y1 T' K# ^2 _ (setq sname (cdr (assoc 2 stl)))
% U5 {8 N% _, y8 C! E7 U (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
* z: R- g7 r% m l Z9 W9 M5 W (setq stlist (cons sname stlist)))5 G/ S7 F3 D( C. ]
(setq stl (tblnext "DIMSTYLE")))
& t9 O6 Q3 M9 \4 ?* u: n+ A( T! \
' a- H$ Z% |) B+ y0 v (setq len (length stlist)# c @% v" n" e. [6 x- ]
loop 0; }9 D' c7 g8 s- S3 i0 F( Z3 @# [
dimsty stname
* M, h8 [1 U Z' r )
% P2 }+ K: b5 V0 S7 l: T) n, X1 q( ^. l4 o
;; alphabetize style list, depending on maxsort
p: B2 D8 ^6 q; B- Z( b* [ (if (>= (getvar "maxsort") len)
+ O4 E0 \! v& B2 C (setq stlist (acad_strlsort stlist))
8 U& e( j9 z) n' M0 k" V (setq stlist (reverse stlist)))! n0 [ z' L+ R5 e
. [, e) L# \. Q" V; r7 M
; *UNNAMED style (dimsty = nil at this point) is replaced with
' M3 `& p& F9 Y4 t# L9 ~3 K3 H4 Z ; the current style. After R13, we require dimensiosn to have a
, L; U# L" `1 F4 V8 k" d+ J ; dimstyle, so we plug any holes where we find them.- }% Y( y( u3 F8 u
(if (null dimsty)
( E) u2 Y8 l# L (setq dimsty (getvar "dimstyle"))
, @5 r# I4 z, `) M; W8 y )4 [& r- s3 m6 v1 B+ _, q
; Show the styles in combo box9 D3 n6 i; w# ^2 i2 I
(start_list "mod_style" 2)
/ c$ j# j( @, P (while (< loop len)
% m4 L9 @& L$ A* e6 B. N) | (add_list (nth loop stlist))
( G8 h/ D- [. J) S (setq loop (1+ loop))
. I1 C1 |; T# l) x )
8 {$ O8 h; i8 f# O% m! l+ l1 A* R. w/ R- D( J
(end_list)
6 f+ X4 G& U. g5 z9 v$ ^$ M# q- n) E7 Y6 D# J8 ?. J
; Hilight the style name of the selected entity* S! B( A ?. W/ Q) }
(while (and (< 0 loop) (/= dimsty (nth loop stlist)))' v) L% C* S3 W! M/ z# C, C+ m
(setq loop (1- loop))
) m: x, K" o0 ~, h, |& _ )
$ F$ e! }; M- T' H3 I) |9 b# G6 @ (set_tile "mod_style" (itoa loop))+ s! i* W: l; q. l. ?/ J6 r
: k2 M1 u- J' C4 c- A3 e
; The following is the list dimvars. It must be sorted in the same
0 Z( l6 T3 C3 }% J' c! V. M! j3 H6 f ; order as the resfub returned from DDIM (ADS module).7 F( G3 W7 W" [+ S; V
2 L. U4 D' B1 v% A9 ~! E
(setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"; O) E1 u' l. i- ?7 \4 Z- E( C8 k
"dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
+ T% z$ w N9 b- H# A8 w "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
" n0 M( E% _3 u: R1 Z+ r "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
5 B* {- y/ y- ?6 ~, @6 Y- g "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
* j6 ]# F) h6 `' @: y, p. ] "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
/ u) D; z- i+ E "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
7 ?2 g. C; m* U% r6 d7 h "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
: `! k, b) @% M" ~) j "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
1 l3 B+ {- X4 v- ]3 R4 d "dimdec" "dimtdec" "dimaltu" "dimalttd"
5 C2 x/ g: D3 w9 z; Y, y7 }7 Y "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
' \( I1 H5 |" ~ "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
1 M2 a+ T1 H# z; R6 T. | "dimtxsty"
1 r1 q+ o. E- F ))# ]; M x& C1 E+ g
(progn
, m7 T5 t) g' \# K; H+ e (setq sv_dvlist (ddimen_getostate dimsty)- d: V/ v. E b0 K7 D( w+ m
txstyname (assoc 340 sv_dvlist)
/ t' Q; _1 Z3 N E sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname))) I" G' z; E8 x7 h) `+ D
txstyname sv_dvlist)6 J4 X- Y" x+ R I) h, k
dimlist sv_dvlist" R% G0 i2 E( _- {+ ^ H" ^
)( x! p2 l3 V* q! C
)* O K/ r" {7 }4 E2 h! b4 T
(if (= dimtype "DDLEADER")1 {9 H' ]& c, `) W; B
(mode_tile "mod_format" 1) _; t$ @/ k4 h) }+ A& t
)
) R4 h" Z! c5 N6 { (action_tile "mod_style" "(setq dimsty (ddimen_style))") S3 Q! q; u3 S4 L' t
(action_tile "mod_text" "(done_dialog 4)")
; d) f2 h: M2 ^4 m F* K) P (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")+ j' A2 ?" p: i( b
(action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")* n* `+ D5 R0 G/ l5 W: g% a
(action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")1 Q. M0 b- a+ x
(action_tile "accept" "(done_dialog 1)")6 n. X8 U6 v# y/ j
)
( Y( V& {1 G0 p5 ] ;;
x7 O9 i# j5 y" Q ;; Get dimvars that have been restored.
5 O" ]( v: S9 d& P0 f! A ;;
: Z* F$ L/ U& y) N% f. t (defun ddimen_getvars (/ elm dvlist dv i)
6 I7 b" S+ u# R0 t' \8 r5 r (setq i 3
1 N; L( Y0 ?4 Y T# L dvlist (list (cons 0 "DIMSTYLE")
2 P. g+ c( g& O! M! b+ J (cons 2 (getvar "dimstyle")) (cons 70 0))8 g r' N. ?7 N) _
)
n4 Q& h' W% g2 R/ `% z (while (setq dv (nth i dimtbl))
; t/ H; i& K1 e4 d7 c1 R (setq elm (getvar dv)4 j2 ]: A; Q) N5 O# {
dvlist (append dvlist (list (cons dv elm)))# |. p" d h5 T/ ^
i (1+ i)7 X2 o2 d1 D4 C/ r m' B
)
; b1 M* K- t! S& v )
0 B# o4 o2 L L5 ?: J dvlist
M8 R$ P, {/ _# J )
, }3 y$ [6 q- u: o' B3 Z9 `1 [5 Y
5 X. [0 n" A9 i7 U ;;
6 n3 o4 |) B+ Q( k4 P! ` ;; Get the original states of dimvars. This is for DIMENSION entities.
, d# U5 u0 O* {9 {+ @9 o8 _ ;;
4 Z' P, i+ K1 O0 k( @+ O$ Y# |1 l (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
s% t, H( x& g (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
; m$ X5 f! O7 H- H7 e$ W dvvars (ddimen_getvars) ; Get dimvars for that entity
. P, k+ w& o# H; p" t- t i 1
- Z* u' |( o& T0 l3 O k )
/ ~( p2 \; J8 \; @1 A
$ |4 W9 D0 m1 m ; Create a list that contains values of the selected entity.
! c9 o- k0 R' E) ~1 F5 {) i3 p/ s# V3 @) I/ U
(while (setq elm (nth i dvlist))
/ c; \, b/ q2 o- g5 T (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)- y1 T3 l5 s$ j
i (1+ i)/ C' T0 U$ Y/ e! j& K: b
)
5 u8 ~( f5 |7 S )
& h2 K# Q2 g& D4 ]6 D/ v$ a$ M) {; L2 T dvlist' g, x7 M8 O2 P* U$ k D& ^( J$ |9 Z
)& L0 t+ r) t G {9 M* c5 `1 e
0 q6 K% d% d7 a1 H; ?! l ;;
7 x. r' Q0 n9 {' }, U+ x ;; Restores dimvars of the selected enity.
2 O+ `: Y6 ?- i! [' |) ? ;;2 T8 z1 b+ [$ z c, {
(defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
: v( l. a c0 J0 B* S: x (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
6 U& Z# Y' M, A3 D! o! j "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
: p; B6 ?3 {' \1 O, J "dimscale" "dimasz" "dimexo" "dimdli" "dimexe": x/ e5 k9 ?' l z
"dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"* n l- O l0 `* C
"dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"8 Z3 t7 V) e* `% V0 W. p( g8 t
"dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
* ~5 X5 _' L' u "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
1 o- w& ~$ @; x B$ u& } "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
8 m" u& q3 h1 c- s' W "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
( N% m3 T/ ]1 P- x1 f, U+ B& |8 o% p "dimdec" "dimtdec" "dimaltu" "dimalttd"' F& y% p7 z& g8 t: p8 |$ R' S1 z
"dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"4 H4 V) r7 o4 \6 P+ M# U
"dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"- Y1 w2 i) R& a9 |/ g. c
"dimtxsty". ^8 G; c$ P M6 Q, [% D8 _ C
)) o' _- r L+ h/ m$ J( y
(setq dimsvcurset (ddimen_getvars)) ; Save current variable settings( Q+ \ a: N( [( r/ Q7 p
(progn* C) q8 \4 k$ g6 y% R
(setq en (cdr (assoc -1 elist))) j" b9 Q3 _* l5 F- ^5 {& \+ e3 N; t
(command "_.dimstyle" "" "" en)% A! a8 F9 w2 y& `" N; G
), [ T; s$ F1 }% r4 b- {
dimsvcurset0 h% R" x6 k4 q% n5 Q9 u* \: a% E
)* q2 N& @0 r) X {/ B" q7 A7 k9 t
;;7 X: a% n! ]" q
;; Modify Leader
+ w8 D {$ Z5 Z1 p c ;;8 M: Y/ n6 C' x4 z
(defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
/ f [0 ^* z) a6 [# T! z/ a dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
- ~' O; z, p$ v6 c: u# f dimtype dimsvcurset)+ [: {" U( V- _6 t9 O( B
(setq dimtype "DDLEADER"+ m- L) N, r* {4 N. `
dimsvcurset (ddimen_dimsty_restore)& |3 y: v. U+ k8 G9 r/ N
)
$ u5 ~7 ]4 k9 `; @7 b (if (not (new_dialog "ddleader" dcl_id)) (exit))2 Y( Q, _: n7 q& L1 m
;; Set initial tile values9 S; x( |$ B& c. Q( @2 d! h
(set_tile_props)
$ W& D) z9 ~4 n# p" C* F; m2 } (set_dimen_props)
, B5 x% {; ]; \( b (set_tile_handle)8 s5 ]+ m' o6 z3 w' z
;; Define action for tiles
& b& }$ W0 L: W, m, G& o n% c (set_action_tiles)( s( b. K5 n; _. I; l
(mode_tile "mod_text" 1)
$ @. `# b8 _0 a e9 g/ d& K% q1 N* k* s) ?! R8 k% ]2 m
(action_tile "mod_style" "(setq dimsty (ddimen_style))")
6 A% u! l3 p7 m/ G; F \7 f. X* R (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
: C; B" s5 M* @, f9 D ;; Get ARROW and TYPE., R2 m6 b: L V
(if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
d' y# \0 j- ~* Q9 F (if (= 1 (logand (cdr (assoc '72 elist))))
5 E' O# k; n1 J5 |4 K. r) O9 A' E (set_tile "s-s" "spline")
$ @( s5 S; {5 J2 j$ X0 P (set_tile "s-s" "straight")
$ ]3 j. N* M3 x/ ~/ k )0 Q4 A3 G1 t* C9 U3 D
;; Start the dialogue.% Q" \0 q5 a+ E1 v% K" B+ Z
(setq dialog-state (start_dialog))
% f+ Q) |( f, [* P$ L) v (if (= dialog-state 1)# U2 C3 y/ ~( x' q9 ~
(progn
6 ~0 U/ u) X4 r+ V( ~! ]; s" U ;; update the style
& o& s; ?9 `3 I K: s5 z3 ] (if (/= dimsty stname)+ P; F0 g0 W* B0 s+ C8 x
(progn+ f; G- [3 z7 ^+ I6 `+ s3 P+ h
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
4 M: y$ B2 n/ O0 I# G. y; |: F7 n: i T ; doesn't have it.
+ `4 }* v% f! j- f6 @ (if (null (assoc 3 elist))+ V# `' `! y( S+ ]6 x; L9 ^
(setq elist (append elist (list (cons 3 dimsty))))
9 x% o5 Z8 I# c2 b M ; else just replace it.
) ~) Z7 F3 v- }0 ?: F/ }' D (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
* T8 Q: G+ ?. \$ }3 c ), X9 e& \. c4 i' I- f
; refresh sv_dvlist with new dimstyle.
i* ]1 h9 n- \: X' @ (setq sv_dvlist (tblsearch "dimstyle" dimsty))
- x- U3 C$ s" Q& d' X8 w )
. Y/ Y8 S# u/ J0 V) n )# J% z/ M+ t( W7 v# O
(if (not (null dimlist)) ; attempted to change dimvars
- G6 D1 H& n Q (ddimen_complist sv_dvlist dimlist dimtbl)7 b/ }+ s% u- n) V! t( \$ P
)
1 |- \2 u% c7 f% Y# g, L0 ] ;; update for ARROW.$ j8 Y- W F" |# {. a, \
(if (= "1" arrow)
; g5 r- ~1 a k4 f. s! s. s: O (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))/ S6 n r0 V$ g& m
(setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
) X! U0 W/ M. G8 q4 Q )
# W8 O0 c6 r5 D9 S! d: n ;; update the TYPE.
% t, u+ ^# P _6 A. F0 i2 E (if (= "spline" leadtype)0 i9 S4 @4 \+ z- [, O- ^" H
(setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
9 z7 `+ r2 `; s; g; {5 W- V7 K (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))" o n+ d1 w, n
): U: d# `- H4 | ]
(modify_prop_geom)2 Y9 c2 |5 Y! W. ?
;; update the Color) d5 h- E4 R6 f6 @& b* E/ j" C* F: }
(setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))1 V5 v9 L2 R+ X5 \% E2 t
(entmod elist)# b" |: z4 ?% Q& x3 f
)
" a3 @ h3 O' E; r. i1 G- u )
6 C: e$ ~7 |# Q' F3 V8 V8 E (ddimen_setvars dimsvcurset) ; Prepare to exit3 i7 z& z5 I8 P7 G @* w/ R
)' G$ G8 K) E6 J" y/ |- J9 O* ^7 ]
) [0 \% B7 o; T2 m ;;% |! n4 P) P( D J0 @+ l9 t
;; Get dimvars of a dimstyle with overrides.
& Y! K/ }& X9 M% o ;;" w4 @( F" ^ ~3 S
1 e+ ^2 J+ M0 G# ]# ~7 x (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
; X6 J; ?7 x( `( o* F+ ~1 T+ U& L2 u, \
;; Get override information for the specified entity.: [$ S3 l Z) C' {2 V' z v% V- p
;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we+ S3 M9 T7 }" n x' ?! B
;; must obtain override information through this tedious operation.
( c2 Y" t- x. f4 C0 K (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
+ E5 \# V' z: o( y5 t6 x' v7 Q h dvlist (tblsearch "dimstyle" dimsty)
' n" a& J, T) g2 u3 }* j- g! \# J i 2 d9 X% _5 I/ E7 `
)
1 i9 V( J+ y! y: s/ S& Y0 i4 b' `$ o+ N! h) X+ v: x% @
; Update the list with overrides if overrides exist.
0 [* u& M/ i5 }; N8 o, }. {- k% L: N6 z% w5 d
(if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))) l; K {- p' x% D: q" ?6 ?- t1 g* P6 @
(progn& M. O2 ]8 G0 v9 U/ o# C
(while (setq elm (cdr (nth i dimovr)))
% E: D% f9 J [: D7 ^3 w* ]/ W( ?: ` (progn3 i* {+ D9 [& A2 \# h
(if (or (= elm "{") (= elm "}"))
& Y. O' m8 q0 I' S# K$ ^ (setq i (1+ i))+ \# U' {8 |6 t
(progn
/ A' G, d4 R7 k# i8 d* T0 B (if (or (and (< 180 elm)/ b/ I; |0 n G& I
(< elm 190)7 K' C6 I2 [# k' g
)
# B8 \- e" `. O% o+ T3 O o$ T$ ] (and (< 80 elm)! V9 c5 o5 o0 u# T2 O
(< elm 90)
. W2 N$ C2 D' u. G9 N )" W$ c; h& r( F$ Z0 O% V$ x
)
$ b) O; `* E9 `/ y/ ~ O1 _ (setq elm (- elm 10))+ n+ }0 Z3 e2 K/ S+ I! l
)- X- Q! V+ R" ]" B6 S) G* |
(setq i (1+ i)- S9 L5 o2 S3 O' c) {6 ~
elm (cons elm (cdr (nth i dimovr)))
. X0 g$ h& u9 _4 G" l8 S" \( H( R. N dvlist (subst elm (assoc (car elm) dvlist) dvlist)
) Q. ?0 ?+ i2 M }) V i (1+ i)
. Y- j4 D6 ?6 }) v" l9 U )
) o0 l3 [5 c1 }& ?* Y )4 y2 Z* T4 A3 E% u8 H
)
. `' \; h) D0 s0 ]" r )
+ U% ~% g7 f" m+ S+ f4 A7 w ) q9 c# O: O2 ]9 t6 a% e
)) k1 l$ G+ B3 K, Q
)$ l% j0 k. N) b& E2 G2 w
dvlist
7 f3 t7 E; W5 Y )/ A# p k+ {+ {, l3 G+ w/ E: Z
. c5 a. F4 _" x. D ;;) s) s2 |# l2 q0 ^: w8 N% Q
;; Modify POINT
0 j5 r* Z. Z4 B ;;
' s$ U, ]6 z9 k8 }8 j( |6 x (defun modify_point ()3 C* c8 ^. b4 M/ Q
(modify_properties)8 I4 h2 K- T8 j/ l. k( S2 z
(setq pt1 (list x1 y1 z1))
5 Z* U7 h# o; ~ ?0 r& y8 c (tempmod pt1 10 0)
- `/ A: E, ^3 H0 X" A' P+ B (entmod elist)
% K/ ]0 R7 T: r7 z" V; q& x% [ )
, G$ S V. A0 [( r4 Z! w' a+ I' b/ c1 f s, \
(defun ddpoint ()
( O" Y5 F9 f- [+ P- h (if (not (new_dialog "ddpoint" dcl_id)) (exit))) Z+ m/ Z0 [& H8 x
;; Set initial tile values
5 @3 B" p/ R! i& u4 u, P (set_tile_props)
& Z' A4 U) N' K$ w. K (set_tile_handle)
& K. Y2 P& k; Q) J! x; R+ t/ @% S+ l+ } (set_tile_pt1 0)
) J% M4 i9 d) \2 W6 @) N ;; Define action for tiles
3 g( z3 C: v; b. z# T (set_action_tiles)' o2 \5 w7 Y1 s3 e- x
(setq dialog-state (start_dialog))
5 B9 e/ e7 h6 e- [ (if (= dialog-state 0)% k$ P" U9 U; f+ T5 x2 [
(reset)7 \( h1 y* w/ b( e
)5 c1 t! q! K3 o+ @: Z- v9 [
(if (= dialog-state 3)# |1 D$ T/ v$ N0 }8 A
(progn
( e" ]/ g9 i$ h (modify_point)
, l, j, d, W4 k (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
! Z3 c) g! L; k4 z" Y (ver_pt1 0)
7 r; c1 u9 T) C n7 h6 g (ddpoint)
- q1 G! o! F g3 q+ q" m )/ `6 [8 K, Y2 d U$ D3 s
)
: f' Y6 ^; b) q' W; d- I- f (if (= dialog-state 1)4 }2 \2 B% A# ]' R8 T. J) _% Q1 ?
(modify_point)
) m I* k# m; _! E( g3 v* { )
% l; p- d" f E )& ^) U. h; B' @2 |3 k
;;
' G1 I/ b2 v7 N. r- t( G6 Z( k ;; Modify LINE l5 X, A( V! k2 ?# Y; k: F) m
;;4 ~1 B8 d2 B5 k( w1 g' c; d, N
(defun modify_line ()& v( ?; i8 ^6 _/ e% ~! P5 a3 Y( \
(modify_properties); ?3 j$ p$ B* k3 p% o7 [
(setq pt1 (list x1 y1 z1))
. F, E. Z0 e' J: q/ d7 R8 ^0 J7 { (setq pt2 (list x2 y2 z2))
; l; U& T; i3 ^' ?4 F. ] (tempmod pt1 10 0)
, m3 s. F3 U9 D& h (tempmod pt2 11 0)
8 Z- g2 s5 C, M (entmod elist)
: N, R! A" q- p. h )
+ V) A' C$ c, {& K (defun ddline ()
* a7 m) v, W5 Q; @ (if (not (new_dialog "ddline" dcl_id)) (exit))% n2 `* @0 B) H6 D3 e3 a
;; Set initial tile values
$ z5 l' c% w+ c- \( F9 z6 r; n" y (set_tile_props)3 ]# n% |9 m! ?5 s; W& t
(set_tile_handle)& W4 O- @4 y& C% x
(set_tile_pt1 0)! k8 D9 g, n% U/ Q
(set_tile_pt2 0). G' B- H+ S/ f1 M, `$ B3 r1 P
(line_calc)
`+ |! O/ J0 ?- c7 R# |9 ] ;; Define action for tiles( n& M6 Y( v# [5 |( c6 I7 f3 I
(set_action_tiles)$ |+ I( b0 d2 l
(setq dialog-state (start_dialog))
& c, k: K6 ~) b; [. L) B6 i (if (= dialog-state 0)9 b8 `+ w7 [6 t2 f) l! t4 y9 r
(reset)8 p) P+ D; W7 F0 d& e
)# J, Y2 o( D; U* J' f- N" h
(if (= dialog-state 3)+ G' W4 k$ Y* d2 c4 _0 U
(progn4 r0 B! |4 p' q1 a
(modify_line)
8 ~) ^2 J0 K' r) ]* g (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
{; U/ `: y. C g2 V6 }. z (ver_pt1 0)
4 B- s, s9 b" B2 Z (ddline); E1 s& `( ~. N; F" H5 N2 V& o3 ?
)
3 M" U# U! ]. d) O; n )
! C6 K% E. S! t (if (= dialog-state 4)
" m( Y7 G9 b/ x% c (progn
/ P) U+ R3 a4 @& M$ L' V: f (modify_line)3 ]' i4 u( ~ ^7 _% t0 z' C
(setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
* b6 h6 D7 A/ ^4 P! g! Q (ver_pt2 0)# u# p& J; G! O$ r& h. d
(ddline)7 q/ M% _- I/ |6 H: D5 c6 {
)
; A* q' x- ^0 ]$ {$ P )
& S, D( I! u/ X( k% X (if (= dialog-state 1)
U- }$ k- t0 e' c% N (modify_line)
& Z% i& B9 X: a" t$ V& V: \* M( x7 E* c- M )
' C% d2 Q I) C6 e2 A) p) E$ ]2 K )+ r8 H3 ]9 h( a9 M
;;/ W$ `& e( }& f* v% z9 f
;; Modify MLine# j" E! s+ `* `8 i" }
;;
% _- m4 q$ r) `' g (defun modify_mline ()
8 C' |% {/ }# N; ?5 N- b/ m4 G+ F (modify_properties)& g( m: M, n( u* {# r8 v4 |
(entmod elist)
* F( u3 [1 L- x5 q- R )
% o- v# k4 q, {- K3 M' H# p2 A' ` (defun ddmline ()
, a0 p% j! R1 a: t- ]$ @ (if (not (new_dialog "ddmline" dcl_id)) (exit))
; f! w7 J3 ?+ ~; d# ~# _* F1 P ;; Set initial tile values
' C2 e$ y. Z" t$ y* ~, D, } (set_tile_props); f0 @% C6 c. R- c/ L
(set_tile_handle)
" h* h0 R5 t0 O" e ;; Set mline style text field.4 y" B5 T! N% m1 E0 z
(set_tile "ml_style" (cdr (assoc '2 elist)))
) w K. H$ t8 S4 P( S% }# ^; u1 E( z# t' j& P% _
;; Define action for tiles
2 k2 b5 c8 W$ L (set_action_tiles)$ W+ W, l0 y, k5 a* Z4 V( V
(action_tile "ml_edit" "(done_dialog 3)")
* j* I2 G# t, v2 h* l (setq dialog-state (start_dialog))
# W4 j( n, [/ ? Y/ R ;; Dialog cancelled, reset to original values.
, C. I+ H, E0 [2 f (if (= dialog-state 0)
- i u3 A3 y* c0 k4 c% B# z (reset)$ M( k7 m. ]; v; G( b5 a
)$ Z z( B7 F1 L) I
;; Dialog OKed, update the mline.+ ^( [$ x; ?+ e& i9 w
(if (= dialog-state 1)
) y9 V( Q8 G2 e n4 @8 I) c' t (modify_mline). v7 }, t# Q/ t" z; @# x
)
' b0 x. t, G- H% }4 g/ x: T5 V ;; Edit Mline, call MLEDIT.- P/ J$ K* k' Z9 |
(if (= dialog-state 3)7 T8 x! k3 m& }4 R0 {& `; m, x* P
(progn, F) T* |0 t" T; \ T; e
(modify_mline)
D. A. ~2 ~+ w" R (command "_mledit")% e# j" Y# e: |0 T1 |
(ddmline)6 z: ~5 }( h; ~' K: H! V |0 h
)
" {. ^* E& O" x) @/ f; t& s8 r )
) ^( G+ f9 t; W1 h5 Q8 r )
6 u X" w2 M! B4 p/ N4 t; D2 @ ;;/ W* y3 Q- Z3 I
;; Modify Xline2 @( H' @% }2 a2 G( H, G0 `
;;' A) B: Z0 N5 C
(defun modify_xline (flag), D$ e- r" v5 A
(modify_prop_geom)
4 f l" t$ N" B+ m z; t (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))( W/ H: k( U3 @/ s9 }/ A* k
(setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
3 f* M. R- O ]9 O8 b$ } S" X- W ;; Update the Root point.) b5 U: [: i, ~ Q& e8 V/ W
(setq elist (subst (cons 10 (trans xline_pt1 1 0))7 j4 i. f, Q# F V! j4 ]
(assoc 10 elist)' V! e, w8 x( J/ K& V9 a& v
elist
2 B( t. r/ w. {8 \& d )
5 o) I9 t w% w )) j" S7 T( R7 H/ [$ T
;;8 V( [! ?4 W" p0 A1 d
;; Calculate new Direction Vector WCS X- P R/ W+ }
;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
0 v" d9 x2 E, _2 b9 Y5 Z- w/ U6 D, x& ], r. o/ D
(setq temp_dir (trans xline_pt2 1 0))! d& w& z8 ^& b* z
(setq temp_dir_x (car temp_dir))/ k' g$ g& ~% [1 Q% H+ Z. S
(setq temp_dir_y (cadr temp_dir))
+ u; @- \0 e; d+ e. Y# y7 { (setq temp_dir_z (caddr temp_dir))% w4 U' u3 T6 I7 N2 ~
5 j" i& |# E8 }4 l! F1 M (setq temp_xline_pt1 (trans xline_pt1 1 0))
# k. T2 X. m) {. c" A6 n, S (setq temp_xline_x1 (car temp_xline_pt1)): ?/ s, m! `: O, N" c! u/ ]. y
(setq temp_xline_y1 (cadr temp_xline_pt1))
V* R: @+ ^2 T9 G9 ` (setq temp_xline_z1 (caddr temp_xline_pt1))
, `4 [: g- |' r0 j1 _; Z
( ]' E. ]( D. z6 n X (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
, O" q0 r' w4 w* |0 P7 ^ (expt (- temp_dir_y temp_xline_y1) 2)8 `, a2 a% u+ T8 Y7 U/ }) e
(expt (- temp_dir_z temp_xline_z1) 2)0 t" l) g( f% q+ v- t
)))
+ u2 d/ ~; A% u. ~4 ] (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))( s( s' j. V7 T8 K9 |
(setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
: p s/ ?$ ]! X% Q$ t (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
M3 R! `- {, Q$ t' N (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
& _9 a# |7 h0 k1 v. M* v (assoc 11 elist)
3 j) l* l5 \$ N+ A8 { elist9 g& c! g; H. {( B4 X* R9 F% h
)/ m- n. i9 l6 y3 d# G h) [: Z
)5 h; y5 }0 {3 |/ j. w+ y
(if (= 1 flag)1 u" U: c6 f+ D% J. H& C3 s
(entmod elist)
/ k" K9 g7 w: x* M n" P& M )
. T: e6 L3 M- G3 B9 ?1 O+ f! u4 r )
; l$ N, A0 Z3 f0 @! Y- Z k* R! v4 i* c, F
(defun ddxline ()1 b% A! m7 S' r4 S! z( R
(if (= etype "XLINE")
8 N# M A' k1 o- S (if (not (new_dialog "ddxline" dcl_id)) (exit))4 ?# ?% _9 Y% `, B# v
(if (not (new_dialog "ddray" dcl_id)) (exit)): ]4 i6 b" ?5 ^% Y" g
)
3 b0 S6 e) d4 G4 [0 L! ` ;; Set initial tile values0 f; d z2 O% }! _
(set_tile_props)
! C# Y7 q1 o, f* y7 H8 k; j7 k (set_tile_handle)
2 X4 q* A, V. [ (set_tile_xline_pt1)( K: i9 G4 {' Z% q
;; Convert to UCS and post Direction vector.
8 F- A6 D' w, Q (set_tile_dirv)
1 x1 U4 s- ~& E* E6 t- w ;; Calculate second point by adding Root Point + Direction Vector.
7 n. k# }( P4 X T6 I (set_tile_xline_pt2): p. o) T B+ \( R8 c9 U
;; Define action for tiles
5 A8 z7 @8 s6 b* |8 R" J (set_action_tiles)0 R3 y8 Z. l- t4 ?0 W) E
(setq dialog-state (start_dialog))3 X ?1 J- c5 R0 F( _6 B
(if (= dialog-state 0)
0 s* G! s; n7 D: J" q( D (reset). a2 @2 |+ x7 k4 |5 s* I& ^ r
)) s2 r2 ]" @- [) `) }# X, _
(if (= dialog-state 3)
$ L1 N$ B, @* f/ V& C (progn1 c( a" }, q" l7 G% |. g
(modify_xline 1)/ D) L9 ]# K: H4 j1 `( ]
(while (equal xline_pt27 M8 x* }5 m- r- M# v
(setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)/ M' [+ P1 y9 k1 Q8 J0 t; N/ U3 w
(princ "The Root point cannot equal the Second point.")% K/ m" o" j5 H$ T4 Q4 ?
)
" @2 b4 _3 v6 ?$ [& f$ D3 C' T (ver_xline_pt1)
' q4 Q# M- ^1 h% z% V* B (ver_xline_pt2)! w" f4 n! @% j# Z( L0 u/ N0 y& ]' j
(princ)8 R4 a6 ?. h, {1 ^' x) z
(ddxline)) b r3 N( i, _8 H! X: A: o& z; K
)5 k8 D$ S+ m% \! q. i! N$ }- o
)
+ {8 C1 |0 J0 k (if (= dialog-state 4)4 F2 }3 i" d4 T2 s, Q$ ~
(progn* p( G1 ], [% `1 X9 L8 u; R
(modify_xline 1)
4 {* V; @3 v R (while (equal xline_pt1% I! A( }1 K9 P4 S: X7 G
(setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
8 W h8 ]. b/ k: p' v (princ "The Second point cannot equal the Root point.")
# ^9 m! `* g7 E% I$ u )! A S9 ]+ X2 J
(ver_xline_pt2)8 {2 ~/ ~* s. g2 L3 [7 F
(princ)& \( ^! W- M. X
(ddxline)
/ W4 J1 _# `# P* M ): N7 v! w8 L0 Q) D3 q8 g2 R, B
)
% V5 c6 Q3 q, q1 z5 A* @1 u( S/ B (if (= dialog-state 1)
4 |7 L1 U: M, y" q, Y9 o5 t5 f (modify_xline 1)
" e. c' t% i: K )
- V5 ]8 [& ~% n s. T4 a1 H- [ )
$ y( L0 U. c, h+ v9 T ;;
2 z$ ^( H* m ~+ }# K+ S( ^ ;; Modify ELLIPSE! g7 d) z7 B/ ]
;;
9 c; S0 E' T7 r3 Z# L4 Q4 C. ^/ d (defun modify_ellipse ()0 V& h, K+ O- Z6 @! b: t
(modify_prop_geom)
- O) p! [6 h$ }" ]& ^* @) V ;; Update Ellipse Center Point value.) i2 \$ I# z0 m% M1 t6 S5 A1 G3 D, y
(setq pt1 (list x1 y1 z1))6 f1 d# w3 M4 ?6 d z$ Q+ w
(tempmod pt1 10 1)
2 K3 {. j v/ g ;; Update Start Parameter value.( E% }* m5 G: ^1 H( H! J0 ~
(setq y_val (sin st_ang))
9 X5 q h" u& d$ Z: D1 M9 S (setq x_val (* rrat (cos st_ang)))
4 D2 \0 U/ Y$ z% A5 c0 H (setq stparm (atan y_val x_val))3 Z9 y5 Q C4 H; C( F9 ^5 g: n
(setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
* e3 Y7 E+ r- I ;; Update End Parameter value. Normalize it, if it's less than( ~: k' n% m/ R
;; the start parameter.
6 T$ Q }+ |6 H. Y (setq y_eval (sin end_eang))
# S5 i" |% _' J- E (setq x_eval (* rrat (cos end_eang)))
4 f' u7 _2 w9 y, t (setq endparm (atan y_eval x_eval))
8 L8 u, |7 R% k( G" @ (setq diffparm (- endparm stparm))
8 }* b2 W- L" [# D) n3 g' X! [ ;; Epsilon of 1.0e-6 radians for checking a zero length arc.$ L) N ~2 r, Y. J3 A# [+ w
;; Since zero length arcs are not allowed - construct the full
8 g1 S$ X0 b( M7 H% K ;; ellipse in this case.
/ ~3 U: h6 H6 S) R) \ (if (<= (* diffparm diffparm) 1.0e-12)
9 O. @' R+ r. |( y! u& r! b (setq endparm (+ stparm (* 2 pi)))
; ]$ P3 S* f4 `" M3 C# K8 _6 S )
7 l6 J$ w m) k (if (<= endparm stparm)
% X) b, p' R% I! C$ d (setq endparm (+ endparm (* 2 pi)))- _2 e6 w" l' `# c
)
% A* _5 M; Z1 z8 X, k# X3 m: q (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))4 o' D/ ]6 Q, n. N$ R- G7 Y
;; Calculate the Major Axis Vector by first calculating
* c( u( @0 d$ c8 k1 [" ~) T/ } ;; a unit vector using the old Major Radius value. Then
4 r" @* i! y6 j. R& w/ j ;; Multiplying that by the (possibly) new Major Radius) k3 D# C2 b( g# F2 f$ h Z
;; value to get the new Major Axis Vector value.; [, G( ]* ]7 V$ M' S8 s" m
(setq unitxx (/ xx old_majrad))
. E" I- r$ W; A; v! Q6 X (setq unityy (/ yy old_majrad))
: ^+ {: y* J7 e (setq unitzz (/ zz old_majrad))! [6 x# r0 c+ P. o t' _
(setq newvecxx (* unitxx majrad))
! H" g- p4 {) ?6 E (setq newvecyy (* unityy majrad))) E4 V. e% ~# w' T
(setq newveczz (* unitzz majrad)). N% W& m6 G N3 C! R
(setq newmajaxis (list newvecxx newvecyy newveczz))
' l0 k0 W6 [) z+ u" `5 t ;; Update Major Axis Vector value. O+ w9 p4 G" N+ K+ M; W
(setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
$ I0 s* b/ d( Y: |# X: A ;; Update Radius Ratio value3 {9 c+ a! d3 E/ M- V& T3 y1 N
(setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
9 I0 `% Y8 F. n( Q. K3 T (entmod elist)
& p' t+ G2 P4 Y ) I" I9 p& q, c: O' d) x
% U& A/ n; d& b4 z
(defun ddellipse ()5 G/ f9 h$ a; t, o& X7 d6 ^
(if (not (new_dialog "ddellipse" dcl_id)) (exit)). L/ M2 _% O: L0 N
;; Set initial tile values; w, z7 ?2 y# P0 W* K) D# g
(set_tile_props)
& ~9 Y( P' g( `( G; u- t9 G (set_tile_handle)
+ N1 V% \0 Q* X& a (set_tile_pt1 1). P+ W' P" U! B5 C# _/ n
(ell_calc)
2 j) b5 r# t5 `9 W# ` ;; Define action for tiles+ R( e1 p0 m; b+ J
(set_action_tiles)
: u9 H" ]; T, p5 t6 I( W (setq dialog-state (start_dialog)). i8 H9 Q4 J& l( Z9 A
(if (= dialog-state 0)! L& b5 ]' f$ i3 X* c9 ^5 o
(reset)
9 S8 W! c& b/ w# U; ` )
0 X, e1 y1 n+ V T (if (= dialog-state 1)
. n; e% _! c8 k( k9 I; {( a (modify_ellipse)
1 H7 v: ?! A5 q ). O* x. y4 F* q# M
(if (= dialog-state 3)
7 V v6 i' G" l6 a" E; q (progn- [% \) D9 o3 y9 w- w, F
(modify_ellipse)
6 o; {3 B% v' a N2 s! \# ~ (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))0 }. x, m z% [
(ver_pt1 1). ^' Y# |2 I. h3 |: }
(ddellipse)1 k% @& x" b' ?* M; s. @
)
& D) `$ Q5 ^; o0 f )8 f9 x& g& w8 D/ }
)
! F3 q+ \2 l0 Z$ _4 L* a ;;
8 Q" A4 F8 z- e5 }; M ;; Modify REGION
+ ?4 B9 g3 F; |/ Q0 E! _ ;;0 h6 h' m) R& `$ [6 {6 ~! u9 V
(defun modify_region ()$ P0 l9 j- {4 g' M7 |3 y* [# {0 N: v
(modify_prop_geom)
T" }8 d, C! Z0 S _ (entmod elist)+ ~, N" R) m6 R$ h# h8 v) a6 z4 g
)+ s3 B" n# u. q8 [% n' k- u4 I
6 g: E6 ~0 `9 A1 b. n2 Q" z (defun ddregion () Z' w) K- y- T$ F2 \6 n
(if (not (new_dialog "ddregion" dcl_id)) (exit))( @ n+ J- V* i
;; Set initial tile values/ `& T% _# ~- j! p
(set_tile_props)
. l0 K$ \$ }5 D- L4 G& A# g8 f (set_tile_handle)
% i1 }% Y$ b/ ~, ^ ;; Define action for tiles- R$ x/ o l2 _% x: b, h! [
(set_action_tiles)6 r* x1 I" Z* u" A9 n0 c
(setq dialog-state (start_dialog))- X T3 d. p+ r* b; I
(if (= dialog-state 0)
* \& I& E' H! B, w7 [- n9 F (reset)
, t6 j- w9 F1 b. x, D; x) T( s8 W )
+ Y! K8 r! l. ` u0 |- g- p" y (if (= dialog-state 1)
7 j. b' k4 V0 b& r$ h; X1 v: B (modify_region)
; w+ H: g5 d9 O. f )! p, k6 Q) q% L
)
|' ?% H0 V# u% A9 q ;;
2 A3 q. F- x$ M' J! G( @ ;; Modify 3DSOLID
- \0 X! e7 A7 V4 W& i& S ;; ?. m; Z6 j& c
(defun modify_3dsolid (). ?, ~0 v9 b+ o& L
(modify_prop_geom)
' J0 G; g: j% b c! H (entmod elist)" F8 \# l/ c, E! s3 V' q; g
)
2 t1 X; M& j2 o \! t( j7 N) D6 O7 T) \, ^8 Y$ M6 c
(defun dd3dsolid (), y+ ~4 ], Y8 ~6 T" O9 J1 [( H
(if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
& ]4 x2 o1 m ^+ I* ~( v" o ;; Set initial tile values
. N8 G9 l8 G) W' i" j1 c (set_tile_props)
! I9 c! T- _: s) G" F$ ` (set_tile_handle)% {7 t- Y0 A3 x6 W
;; Define action for tiles- W. n" |, @- F3 `. B
(set_action_tiles)
) \# F0 A ^9 R" f5 ?/ C5 h (setq dialog-state (start_dialog))
8 N8 t: m. U6 m7 g! ^ (if (= dialog-state 0)
" n# r2 {5 y# S9 b0 } (reset)$ x Z+ o% Y8 Z; r7 d
) d' Y3 P" c8 a s/ t4 U4 s
(if (= dialog-state 1): {% l2 u$ A9 A2 A
(modify_3dsolid)
: @. b8 `/ j2 n) G9 I9 r* I )$ j) r5 S( ]/ |( w: b) `# W" g
)
/ n8 G M$ v) Q0 }; h+ ` ;;5 @7 d& j6 b$ i2 E
;; Modify AcDbHatch& r( I& \% n8 a2 O- h0 I' E' V+ U f% z
;;3 e# Y# q b! s) e2 @) a6 q
(defun modify_hatch ()
4 Z& A4 M; ~3 B- \2 } (modify_prop_geom)1 Y4 D- W2 @0 c) d/ A5 s
(entmod elist)
% J, Z3 x/ q% r )% ], o' @7 u) y$ R3 x- k
2 t0 y( N: Q' m" l& T4 G7 U+ ] (defun ddnewhatch ()
~& d) u8 e c7 l. ]+ \ (if (equal hatch-elist nil)
, n o! S! B6 Z0 y" D8 J (setq hatch-elist old-elist)
7 m5 f2 w( g/ i! G% G )5 j& Y# R% p) B: x8 b; g
6 W8 F, u1 u; K- p' p
(if (not (new_dialog "ddnewhatch" dcl_id)) (exit))6 l. [/ x2 d6 R1 |2 H. o
* V. y1 L* e" V$ y
;; disable the thickness tile
8 ]: y- _9 j& S5 M (mode_tile "eb_thickness" 1) m- A+ q% S& J- c$ z9 @
(mode_tile "e_thickness" 1)
" F. o0 y* q" H" C0 b4 M. Y9 r: {4 l* }" k
(setq help_entry "modify_associative_hatch_dialog")% g- R+ N( a0 b- C1 D- O8 ~
(set_tile_props)+ b* ?, ^ a$ R. y0 `* C
(set_tile_handle)
; ~7 Z7 ^; h9 K% e; m, W& `
Q/ P& ~6 E# z/ o. } w ;; Define action for tiles/ J, c2 U: v% |! @4 I/ S; n
(set_action_tiles)1 |6 `. n# o( }$ c$ Y5 y: i
(action_tile "b_hatch" "(done_dialog 2)")
- |7 U! C( f- v: i (setq dialog-state (start_dialog)). P8 O- }! w9 V8 A6 S7 J: V( f9 g
(cond
% @8 B$ i; { F" i8 I ( (eq dialog-state 0)' h* I; D! }+ D. x
(setq old-elist hatch-elist) A+ E* b% l/ M; u2 L% E' Z
(setq hatch-elist nil)
6 @5 }5 \0 j* ?/ y' \5 b (if (= (checkforlockedlayer ename) nil)
; c+ D5 U x( m. y6 h (reset), T3 O$ u8 K8 p' U% h3 ]9 r
(progn ;;; special handling for locked layer reset
$ N$ P6 t! D# Q2 H0 m! j* y ;; unlock the layer [( D, p/ c* w
(setq layername (cdr (assoc 8 (cdr (entget ename)))))$ m# U: V* x3 a1 E2 y" L
(command "_.-LAYER" "_Unlock" layername "")! q9 k1 z7 g6 K5 i* J Y. R) R
;; reset modifiction
" P' F! J C, f7 R! R3 D1 q (reset)0 P( A, {5 u( D: p4 |; `# ^; ?
;; lock the layer again
+ u8 ^# w. f: D* K- ?# Q (command "_.-LAYER" "_Lock" layername "")8 U3 {. y( K" Q. d) m* |* r
)
* {; k$ B8 G* |7 j )) a# v% _8 l$ y8 c+ Q/ {
nil ;;; makes (ddnewhatch) return nil for Cancel
' u" x5 V( N% s# E; N )
4 K! y! p9 h ?# B! p ( (eq dialog-state 1)' z/ C* ^6 E x3 ]% k# Y7 I) s
(setq hatch-elist nil)
' m; [+ X2 j6 ~- v" m (modify_hatch)
' }0 J1 C6 x D* n+ i- q2 }) { {3 j T ;;; makes (ddnewhatch) return T for Ok: L S) {2 k0 e4 \" _3 A
)0 X4 M! i( \6 y2 j& O r3 O1 @
( (eq dialog-state 2). p) C" k8 g& H
+ s3 q1 S6 T. E8 N: n (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
4 O% d, P$ q' X$ l 4' x: Q( W* N. x
) " K2 y4 D! A( P1 t# ?! i
;;; new selected layer is on a locked layer
2 t4 _6 z2 k( e& a% H1 L# k, c ;;; we can simply modify the hatch properties# g4 Z" R$ i8 e& N7 P8 l
(modify_hatch)5 C) c) J5 O& C1 r6 g
(progn+ g: B! I/ o8 }4 a
(if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
/ l& w: G/ ~2 K7 Q; d 4
2 T& w$ a6 H' g" J' x8 l" I ) 5 n' U4 i- @2 k1 H/ \& w0 F% I
;;; We changed the layer previously and now the hatch lies on a locked layer.; g# }$ f8 R# R$ d9 ?. h& H
;;; We have to unlock the layer forethat we can update the hatch properties.0 Y! @8 l) C, k1 R! M2 W' z7 l- }
;;; If we don't do that (entmod) fails to update to the new layer.
& G) h. ]$ I+ M' [% } (progn
F' Z8 c) o9 U. [7 L ^0 Y (setq layername (cdr (assoc 8 (cdr elist))))
+ ]2 i& p! I& i/ N8 b6 L P (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer' S8 f& ~( p, X+ r) C8 l
(modify_hatch) ;;; update the properties( a: d- @4 x( E: C
(command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
' K# X6 e R" T/ ? B; C; O )+ g3 Y2 i( O2 f6 F+ y9 ^
;;; All other cases we simply update the properties6 A- O+ M( z7 g Y% v6 k9 \0 I
(modify_hatch): W" n1 i2 F' Z; `' ]0 \; {' x
)
, @ w. [* x( d" C6 h )
$ @/ [9 t) L, L3 g0 _5 q4 H )
j* B/ Q6 Q' _/ S# Y" y( p' J (if (= (checkforlockedlayer ename) nil)
6 {' K8 s) [" v3 c! D( C: f) b# } (command "_hatchedit" ename)( U. ~* i, U) k! j
(alert ;|MSG111|;"The hatch object is on a locked layer.")
' R3 E0 E6 J" I! {) N0 {0 _3 V )6 V" R5 O# {- n2 w& A$ _2 J
(ddmodify ename)" f" h1 x4 w+ C6 `" A
)
. Z4 X1 l* D8 F )
8 U/ c, v6 y; ]3 h )! b4 f/ |4 d5 c. j' Y. S( l1 R
;;
, u; E7 h# z; x; n ] ;; Modify BODY
; a9 h/ y* a. |0 E: R- z" p, Z ;;
- H0 Y8 U' S0 j5 L# Q (defun modify_body ()$ D" W% L1 }# p. v0 y) F7 |$ y
(modify_prop_geom)
) j5 I I. e" \) s \ F (entmod elist)9 M6 Q2 ?2 F2 o$ i. K/ i
)
. \* F ~% T8 C V* _- s3 }6 H8 y( ?' r. v$ I
(defun ddbody ()
$ y( s6 Q+ ]) c (if (not (new_dialog "ddbody" dcl_id)) (exit))
3 j/ ]4 Y" ]6 I n3 G ;; Set initial tile values. E3 F5 V* y$ [ U8 z1 R. A! M4 W) U7 J
(set_tile_props). s. a8 H. ]4 v4 g* u
(set_tile_handle)
3 z+ o5 L" m- z ;; Define action for tiles
/ v0 Y, X8 i# l+ e) @2 O (set_action_tiles)+ K* `3 w% C- a) c1 [
(setq dialog-state (start_dialog)), |7 b5 ?8 ^& O8 j" Y* {$ ]
(if (= dialog-state 0)" V( }. B7 e1 M. W' ]8 s; |1 d! `
(reset)5 F' v, _$ ^! z6 I
)
! a/ ? I; b3 _8 Z4 x% ^ (if (= dialog-state 1)5 ?6 a6 [; I1 x/ z5 M- s
(modify_body)& L s" x7 G+ a! p4 r7 T
)
" }, C- u: U4 i/ e7 {& \ )2 p6 f; A$ a! t4 A! p
;;
4 M H( w0 D. r6 K ;; Modify CIRCLE: K/ p/ \" _8 n: Q7 @. _% N2 E
;;4 Y! @! J3 W5 Y1 c1 I& e0 v; ~
(defun modify_circle ()
* U- C& h6 G0 o# h* D! c% h (modify_properties)! O% v/ h- E% C% }
(setq pt1 (list x1 y1 z1))- T2 }1 B) d+ o) B
(tempmod pt1 10 1)
; @* M2 R9 C/ \6 Q/ J2 @3 [$ } (tempmod radius 40 nil)
9 _2 [8 i0 M) L: l' L (entmod elist)# Q: Q+ E S( ~. [
)4 ^" j. n/ i# p, Q7 Z% T: S
% [- a9 x1 w0 f/ I. S9 n (defun ddcircle ()
0 y4 S& a4 D% }) _ (if (not (new_dialog "ddcircle" dcl_id)) (exit)). V2 V6 M3 O2 n1 Z N
;; Set initial tile values0 n4 X, P* P2 u4 _2 Q3 O
(set_tile_props)
2 x$ u6 f) n% E0 L) M9 C (set_tile_handle)
* X" O/ G$ F6 D (set_tile_pt1 1)" M1 c) J1 C* A3 G m
(set_tile_rad)' G: G/ I: P$ | B# H/ [* C, ?$ v/ ^0 t
(cir_calc)( S! X; F) s" q |) ]
;; Define action for tiles
, c# |2 d4 T$ ?) [* h (set_action_tiles)
& y# N( X3 Z0 _& y U! q (set_tile_pt1 1)
; V6 D5 r/ z+ O, O( e+ j3 K (setq dialog-state (start_dialog))- L6 H4 Z2 x) a
(if (= dialog-state 0)
. p* }! e9 D' n& Y (reset)4 ^) O' ~) g" {: g1 s6 S7 H
)
7 @1 R( R& L, q: D( ]: o5 Q (if (= dialog-state 1)1 ~' z# _, K+ Z
(modify_circle). s4 j2 I0 G& R9 z
); T( u' i: ?6 |' G% ]/ M4 K+ j
(if (= dialog-state 3)
9 G( c( b& Z" p& p' y (progn
' d; _7 {+ A1 G0 ?& b$ ^! I (modify_circle)
( n' @6 M8 p* Y1 p: D% [3 }" L (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
3 e0 _$ k1 B! F; t: M (ver_pt1 1)+ @1 c) n9 d+ j7 O s [' H
(ddcircle)
% p$ O3 t7 D: | )
/ D. v& C( I5 K7 y0 \- R8 g# G; l ) k6 Y" W; n- b6 p6 S
)
; k, @: W% R0 c ;;: F( `2 F W5 D9 y* H; ?7 x- W7 r
;; Modify ARC
2 v; L$ {+ y. z- ^5 }" d& k X$ h- R5 Z ;;
' ?$ ?4 l, A! c) S' q0 z (defun modify_arc ()
; y4 {% n8 G4 s" D# _# l (modify_properties)
& I$ G6 ~# h# D (setq pt1 (list x1 y1 z1))2 z4 c4 f! @1 ~$ o& M, r4 t. D
(tempmod pt1 10 1)9 P+ S) f' V9 ~6 O( l
(tempmod radius 40 nil)
% ~2 y5 h- B) z' q! l+ } (tempmod st_ang 50 nil): K! r% o" H1 a4 Q& ~
(tempmod end_ang 51 nil)1 o1 W9 E" e! V9 l. i
(entmod elist)
8 U( w3 M; M. K I )' I5 q) K. ~3 J6 r: q+ v. U, R
(defun ddarc ()
$ \$ I, T0 K; Z: P3 k$ X0 ? (if (not (new_dialog "ddarc" dcl_id)) (exit))
& G% }: v# Q* x- p0 W2 s! I ;; Set initial tile values
/ i) s% F: n6 a5 R" U (set_tile_props)9 J! H- I# P! i7 s
(set_tile_handle)
, c5 v' G) U! n (set_tile_pt1 1). i2 T2 o( k% j/ ~1 x- M3 ^* s
(set_tile_rad)
( s+ J( u2 C6 v6 w( ^1 D0 I. Z! y (set_tile_stang)7 v. Z w4 _, s `2 D0 X/ X
(set_tile_endang)" r! k4 I( |0 T0 |1 O4 _; ?
(arc_calc)9 N. _& n% E, S9 x. Q- [6 _0 F, Y1 h
;; Define action for tiles
1 j1 r* A/ D! l$ {" b (set_action_tiles)
9 y% L/ S: p. ]& `2 I: B. s (setq dialog-state (start_dialog))3 x; Y- f; T) M' C' r3 k0 y
(if (= dialog-state 0)8 }/ ^7 w& ~; c) [: e/ \
(reset)( F2 ]! B$ ?& }8 E4 H
)3 |: c7 ^% F4 A( y1 |
(if (= dialog-state 1)5 t* D) d' |6 j2 j4 J% b: @
(modify_arc)
. S) H9 w; A7 w$ N& E. }2 I& u% W )
3 }% q* i; Y( D, d5 b( P (if (= dialog-state 3)
J1 K& o7 ]. V/ n (progn( X$ J" c- C+ n/ {
(modify_arc)
. j! D8 b6 d1 E* J0 _8 t) v, i+ E (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))) W. ]& C" `8 v
(ver_pt1 1)
- r4 G3 \% l/ y/ e; F% P3 J (ddarc)8 {5 @: g! v' w: s* Z
)) t( j' X5 b- U$ v& j, m
)
# b% k/ z) G+ u j3 ?; } )
: X/ U* L$ m5 [ ;;5 w2 \) d# U9 R. X
;; Modify SOLID or TRACE: [: S2 }1 h! f ^6 K3 q
;; Note the Z value of the object is determined by the Z value of the fourth
) Q% s/ C1 M" k3 d* y3 w" J+ p- K ;; point - code 13. Changing the point values of a solid or trace from a UCS6 J( l- c3 u4 I& u
;; that is nonplanar to the UCS the object was created may confuse the user.+ R5 V* h5 E+ @- v" T, [- ]; x
(defun modify_solid ()
& K9 [! f, Z9 M9 Z; j (modify_properties)
2 u" f* M. W$ U (setq pt1 (list x1 y1 z4))
- U: `! F; ^3 Z (setq pt2 (list x2 y2 z4))* |" {3 C0 T8 ?0 p+ Z
(setq pt3 (list x3 y3 z4))
: L6 \$ J- v1 H& X4 A. ]2 n (setq pt4 (list x4 y4 z4))* J+ Z6 t$ \4 h: r7 s! z
(tempmod pt1 10 1)8 ^5 k. J9 ^0 H& S1 E0 [2 L9 L
(tempmod pt2 11 1)
. t3 C! _8 X1 l& @ (tempmod pt3 12 1)( K: [; r5 _- v9 I
(tempmod pt4 13 1): ~, a# H: t1 P- A& H/ F+ ~7 G
(entmod elist)
# Y( [6 |, k2 K& b7 O5 ]) n9 D3 ` )
. _$ M' \; [% ] G3 b, N
[9 b! z& s" W. ^1 u- V (defun ddsolid ()
2 a! n! ]: |2 u0 j7 q (if (= etype "SOLID")% s0 x3 M" g0 D0 o- P% {
(if (not (new_dialog "ddsolid" dcl_id)) (exit))
* v O; g o2 y+ V (if (not (new_dialog "ddtrace" dcl_id)) (exit))
- ]# G& ? m( p. g- k )
- F" p) \* }0 c* h! e+ T4 U4 D% B ;; Set initial tile values
1 w+ L' z* U. @6 b1 y$ |$ j1 W (set_tile_props)" a9 i- K8 D7 g [1 a+ Z
(set_tile_handle), P' F, j, n" `8 k" G" P+ L
(set_tile_pt1 1)4 P/ _( l% J" J0 G+ Z3 }6 y4 j
(set_tile_pt2 1)9 f5 j/ R+ w. V' h0 [' p
(set_tile_pt3 1)# {1 U8 N. R" u! x F$ V" w6 U3 w
(set_tile_pt4 1)
9 t$ \$ Q7 U0 Z& I9 y ;; Define action for tiles, c3 i, f X6 D
(set_action_tiles), i4 F0 {/ W8 k0 P6 ]
(setq dialog-state (start_dialog))6 z5 h- A& l8 W
(if (= dialog-state 0)
3 k/ G: n8 l# S* h0 i2 { (reset)
9 n' z" v0 b6 M! R5 u )" V$ h _8 O: j2 `
(if (= dialog-state 1)
4 v b: h( j6 ]2 _+ Q" m7 y+ n (modify_solid)
7 U Y1 ]/ A' V. r+ l )
! R- l/ ^7 C) Y9 d (if (= dialog-state 3)
3 J$ C; Y" g( ^ (progn
) G n" Q) H; ]& N/ I (modify_solid)
' L; t \. D7 s, o: O (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))+ P, i7 H! c+ c4 V
(ver_pt1 1)8 h2 w2 B/ c# X- d" q! u
(ddsolid)
% y2 ]) W8 M1 ^1 i$ |# b9 X )- g" u- \/ T' o7 Q
)% L* t# z0 p! Q/ h3 O. F" y. P
(if (= dialog-state 4)
+ t1 M7 F" }: z# H3 @% P. \ (progn1 w4 w! v, ^2 X* U0 y( H8 y5 R
(modify_solid)
# g4 c) `* n; X( }: Y8 y (entmod elist)9 x( f+ P5 k2 ?( E7 ^
(setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
9 f' |" o- V" {+ A& J; ^4 Q( O7 }$ Y% W (ver_pt2 1)3 f# H2 U; o- Q" y9 q- T5 k3 U
(ddsolid)
+ U: U* N& ~' {; Y& G+ c )- d/ t3 r/ H/ ?
): {8 V% k) K, P- ^, X' A
(if (= dialog-state 5)
$ f$ h% ^! y/ c$ ^$ q! L \3 y (progn
5 K) L8 G& u4 i: X2 h. r (modify_solid)
r' Z/ }$ v1 v' L. K0 A, @+ I5 F6 ^9 c (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))- O o& c3 C0 z* w, v
(ver_pt3 1)8 Y1 S# ]5 z6 r3 d$ T
(ddsolid)
1 D _3 i! {, q3 I) V$ e n )- H$ l) O9 }; v$ |3 |
)# P5 o9 P$ X" E X+ s
(if (= dialog-state 6)) |- b) g8 P1 Y2 _6 r( y- S
(progn4 w: s/ v- J% \7 M& t7 O5 c z0 R- c
(modify_solid)
- Y4 k) i/ y3 o' ^- x4 W' C (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: ")); k, _& N8 O& o5 y6 r% p; I
(ver_pt4 1) O5 t* @' c- }9 S! u( F1 j
(ddsolid)
8 E# A! v9 Z/ O# v& ^5 q )- z6 h* C: u( Y y9 \4 ^5 A5 l# e
)
: \3 ^( Z2 _: _% v )
( F3 ?# t. Q- I! k; e. H ;;; W% i# K" `) @9 T
;; Modify 3DFACE
$ x" i7 {) _/ H- _. U& P ;;
& j. }& { ^( ~7 W, M+ ]! u) V ;; Check visibility of edges
9 g: g& f( `8 X8 p0 G ;;' N5 S& ]; A4 C' ?: y& O' G; l2 a
(defun edgetest (/ bit1 bit2 bit3 bit4)
# z$ q1 B3 Z" t3 k5 a6 P: Y (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
4 {; S! V& ^. ~ c' x (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
( I$ B& u+ ^( V7 R (if (= edge3 "1") (setq bit3 0) (setq bit3 4))/ W7 C a0 E4 X- d5 W8 r$ Y
(if (= edge4 "1") (setq bit4 0) (setq bit4 8))0 ~6 Q3 g- S [% L
(+ bit1 bit2 bit3 bit4)# s3 ~$ p! k/ B0 g' L
)) g# M* o N( F1 e* s! V
1 u5 E; k0 \9 b
(defun modify_3dface ()7 T9 T( c' f. h, x
(modify_properties)/ j8 @1 V0 _" }1 h3 h! F$ D
(setq pt1 (list x1 y1 z1))
k. c2 }$ Z0 ]" h: t) D8 A, x$ P& A (setq pt2 (list x2 y2 z2))
/ Z r g4 N# I% E: j (setq pt3 (list x3 y3 z3))
" T% V1 c( z' n7 A: c+ \8 z' E (setq pt4 (list x4 y4 z4))
& k; H; A$ G% M6 w- E (tempmod pt1 10 0)
4 ?" K! F9 |1 ]3 E7 X0 F" e (tempmod pt2 11 0), p( k) `0 k- l3 _8 X1 c. g
(tempmod pt3 12 0)+ `* c' i6 u0 `3 w1 W
(tempmod pt4 13 0)- o0 u$ N* X& }* P% q# R
(tempmod (edgetest) 70 nil)5 c9 h/ c4 V8 N1 F) f. b
(entmod elist)# v* i! B! v" {5 K: v r
). T6 \7 q5 e e7 U9 z7 c
& r% }' i# i- B (defun dd3dface (): A7 g( I! D7 s3 W6 A# g
(if (not (new_dialog "dd3dface" dcl_id)) (exit))
8 A( {, |9 }. S8 H8 f (set_tile_props)
# V( d6 v/ e% w) G4 p8 F4 Q (set_tile_handle)! Y3 [$ F( Y" H
(set_tile_pt1 0)+ ]$ `3 G3 w; V; i9 A% x
(set_tile_pt2 0)
9 ?, D" ~6 E. [( Q: h" w, N X (set_tile_pt3 0)
- ? P4 a2 I& R (set_tile_pt4 0)
2 N1 O* ^2 W9 @& z- @0 d (set_tile_edges)
& u3 A8 y8 T# a' u( e; H ;; Define action for tiles
5 R* k$ R! K! p+ ~ (set_action_tiles)
) {9 c3 A5 q* G1 h (setq dialog-state (start_dialog))0 D, P, {' @! u4 ~- K9 X& K7 T
(if (= dialog-state 0)' g4 k% B' R& d4 R4 Q, g( q$ g/ z
(reset)
$ F2 b0 |( R; t Z3 G2 X )7 I! K. H P- S
(if (= dialog-state 1)
* l: L4 D3 ~8 d. i- d$ P (modify_3dface)8 r/ J) A3 K/ ^1 c% M8 D3 z
). ?. n- Y; E/ i0 K' j# J& Z
(if (= dialog-state 3)9 C9 K& N# [* J% z
(progn% q8 l% n8 `* I0 `6 Q4 t# J8 g% Q
(modify_3dface)- G7 r @% p. I% i2 q4 b
(setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))4 H" n T& s P0 z1 C
(ver_pt1 0): l4 Z z; ^! d i1 I
(dd3dface)
; {. u7 Z* B+ D& v! w )
/ {+ z. \% w% s3 u7 m/ F )
: \1 c; E, i1 n r. R (if (= dialog-state 4)
1 Z# b$ O* O6 K (progn
& I5 G$ u* ? u, J! B (modify_3dface)* h8 O* N$ Z3 [" z; D. N" _4 t
(setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))! m5 [# T* l7 `& G" V$ m
(ver_pt2 0) _; { T- H( Z4 {1 u3 |
(dd3dface)+ Q$ E. o* q$ r: n3 i. s
)
/ K8 V. F( k! O1 k8 N8 N )
4 M6 d8 Y9 `0 x9 O" C (if (= dialog-state 5)4 a( ^ P* C. M" ~0 W+ A4 q1 c
(progn
1 P% ]6 N( G1 W7 m, H) [1 ^6 @" I (modify_3dface) s% l8 e; ?" |3 Q, U5 T6 s+ R
(setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))0 ~; f: s A8 y3 r& V
(ver_pt3 0)
& h6 T8 ^3 ~& c/ p (dd3dface)! a2 Z* X6 p0 v! T: }" L Q9 S
)( b4 S* X R& Q- K, x; T
)
+ ?0 g: @) q" D; d (if (= dialog-state 6). z v8 n- d( k7 G0 g+ ^
(progn
3 ?+ M4 z/ Q n& H% w (modify_3dface)! ^& X! S' {" J$ R5 e$ u/ ~' M( T0 E* h
(setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
, d1 p7 p# K* a; k (ver_pt4 0); l, A. u+ G. v* Q. ?; {2 W! P+ D
(dd3dface)
8 T# o/ K" s3 g )1 G+ \1 S% U% J( f+ z
)
+ {# r* O5 O9 M; |6 K )
. n3 N. K9 ~) ?2 R. Y# S0 |4 P: U. _2 M0 {8 n- R$ \# N1 l
;;
0 c4 J; L, I, ]6 E ;; Image functions; q7 f+ D, S4 u7 P: T
;;
. D0 f# d' e# H5 Q* a (defun image_scale (/ upixel en n userscale temp)
. `7 m7 l2 N( A4 u, \4 y0 d ;; Calculate the size of an image pixel in AutoCAD units
4 |) [$ U e% p$ M" E0 n: ] (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
0 B8 B" R( Y' {3 g1 G4 {. ~0 R) S2 ^" D7 @/ ~9 |
;; Retrieve the user scale% l5 J9 o9 |) C
(setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))8 y# q( p: M9 `& V' }
6 h0 Q" \; }4 I( ^' Z! J3 D
;; Next, extract the image units and pixel resolution
/ M% N) K/ G$ ^4 ^ (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
. t# m& w$ r* w# [# B0 u3 o$ `& W (setq image:scale (* (cadr (assoc 13 elist)) upixel))
6 v/ {. [' L3 s4 U- p# | (progn
8 s3 X- h7 g* K3 `& `% K ;; Convert the user scale to the proper word
6 s( [( A/ [0 N5 B (setq n (cdr (assoc 72 en)))" R4 S' v) v( J4 t
(setq temp (getvar "LUNITS")). L" S) c6 A0 [" J
(if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5)), x; a0 f2 t' M/ b& E
(if (= n 1) (setq userscale "Millimeter"))5 Q8 w" g, J& i$ L8 o# l
(if (= n 2) (setq userscale "Centimeter"))
* u9 ^" f, `. Q (if (= n 3) (setq userscale "Meter"))- W, u* x; o8 r: G1 R
(if (= n 4) (setq userscale "Kilometer")); V7 \, X1 I! t
(if (= n 5) (setq userscale "Inch"))
% e5 ~+ O& [7 {# S7 {- R* X (if (= n 6) (setq userscale "Foot"))% p V' E! ` E" ]
(if (= n 7) (setq userscale "Yard"))
' I5 t& e% x. [3 w! C2 ^ (if (= n 8) (setq userscale "Mile")); `0 c1 m- I' W6 K. C, N/ e# [
(setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
) n3 z" Z0 a2 R+ I( e2 D! d )
$ q' T" K7 x7 F+ g. R. ^) X ), @, Q& h4 J2 l3 n1 o0 F
)0 @2 j; I: ?* z
7 B3 Q3 V3 j2 L ;;; m- S! ^, v3 N' X, s8 c" I y
;; Scale factors for block insertions
: c7 j4 r& d" C8 {8 j ;;! s6 z+ |' `/ p; _9 a
(defun image_set_tile_scale (/ temp), O7 {8 g5 A3 }" |$ B9 g$ S
(setq temp (getvar "LUNITS"))
: z" v9 o4 E+ I+ Y, o (setvar "LUNITS" 2)0 G8 y3 R( ?- w
(set_tile "xscale" (ai_rtos (* image:scale image:mult)))4 P9 P2 z2 B7 N' c, j/ \# y
(set_tile "wid" (ai_rtos (* image:width image:mult)))" Y1 i8 P/ k W
(set_tile "hght" (ai_rtos (* image:height image:mult)))
/ V4 a9 Q- M7 | (setvar "LUNITS" temp)
' A- P# G2 t ~/ @2 ` )9 G5 x, S g. T2 C
! _3 p' D$ c Q' |) q9 {/ ~
;;
- p, N# m" ^! @; V ;; Set the scale, width and height values appropriately.
9 R: {) x0 q2 }4 ]) l) h! Z6 k ;;
5 @+ s8 u- e2 O4 `3 X' Y @ (defun image_update (field value / orig_value new_value mult)
3 g5 n$ [8 x% @" z0 ?: N$ R4 s (if (= field "xscale")% E' e0 K2 ~% U( @& W6 _. u
(setq orig_value image:scale)
5 n$ D6 c- f" N0 I- Z- i; e) z )# X/ y3 \) I$ w) i
(if (= field "wid")
" J4 I/ @/ _; ?$ q (setq orig_value image:width)
* |+ b' Z+ m }- |9 w )/ V6 o( z( k4 l* H7 \
(if (= field "hght")7 U+ u: W: i- X/ ^; i2 o: ]
(setq orig_value image:height)
1 Z7 h( C$ c& k& U7 Q: ~2 t1 o+ C )
4 I/ {4 k* R9 `+ u; I8 U, { (setq new_value (verify_d field value (* image:mult orig_value)))! C+ Q, Q4 p1 {3 h7 K! o& J( m" a
(if (/= new_value old_value)5 z' o) L. M* j# f; _ Q! ?
;; Make sure the user has entered a sufficiently large value; f; n1 S2 @6 K) ~- q9 S: [; G
(if new_value6 W g- V$ D1 ]! v' p
(progn
# F# t: {% `% K (if (< new_value 1e-8)- ]* V% d' g! D% E- ^
(setq mult image:mult)) d' f8 Z+ k1 h# J7 e. c* n
(setq mult (/ new_value orig_value))
6 a' f0 v# I# [) w6 |2 U( ?. x )
; O/ V. B ?$ V6 }) x, _ (setq image:mult mult) ]2 z% P" v+ k% I, w0 f/ Q
(image_set_tile_scale)
3 ` @8 ^5 ~3 Z: M! f: t )
0 D% @9 m. j# i$ U- H- g/ n1 d )# v5 f2 [ M' k7 d
)" O* G8 q2 a- x, o( T: I
)$ R8 z: [! A/ ~3 T, J4 w' J1 x& h
# r$ T. [9 I- L: T/ T (defun image_disp_opt (bit)
; H5 q1 i, K9 h& _( S (setq image:options (Boole 6 image:options bit))
- I# s* ` {$ H3 Q4 s" l' c )
2 s" h% l* B8 @: _! T& v1 |7 u: q: H, @9 {
(defun image_modify ()# Q6 P! L" B$ G2 @# |! N: Q+ O
(modify_properties), |: a3 T+ N3 ` m
(setq pt1 (list x1 y1 z1))8 I( p. d2 |; ~) Y; B, Z
(tempmod pt1 10 0), B) m! O% g; o" q% s( n: w
(entmod elist)* @" ~- p' i9 P7 v8 A
)1 g4 H- H. j( K& R) K$ M/ b- [& T
) `, L& K* w/ Z
(defun image_clean_variables (): j4 X/ p5 A# {, B5 Q* O# C
;; Clean up global variables used here7 P$ P/ } k3 M8 J
(setq image:scale nil)
' R3 e0 Q' J: S9 r (setq image:angle nil)- |5 f+ ~* }1 M6 N7 K6 c
(setq image:width nil)
. w. y- R0 ?+ H (setq image:height nil)
@1 [3 d0 N0 t( x0 K4 a; L (setq image:options nil)
9 D3 s2 T- n# \( M (setq image:oname nil)2 t- E4 U+ w7 d( ]. V# c& R% d5 Z
(setq image:olist nil)
" d" A2 i+ L! J H4 ]# w" g& U' E6 y (setq image:mult nil)4 n9 D/ o* d- N9 y0 @( C9 E5 e
(setq st_ang nil)3 I2 E! N1 P& g+ M; ^& ]5 z
)5 J; r. j8 q/ j. A- ~0 V
: t2 ^. i* O( M7 V6 K! Z (defun image_scale_vector (v1 value)
0 {) J4 t/ h4 Z% ? N/ v, t (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
7 J/ _5 X& S3 X, b ). Q5 h& v- z2 W
6 f% t& @ H9 T7 R9 _3 Z. W3 W0 h (defun image_cross_product (v1 v2 / vx vy vz)
5 i# Y) M# i8 ?; w. G (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))# K$ {1 N# z8 z$ |8 g9 f6 X
(setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))* }2 R/ {% N& W( f c8 E5 r, c
(setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
5 Q- S0 }- J0 {6 F. z" j (list vx vy vz)
. n* T( D+ N) E, a! V2 x' Q )
S( [$ C$ B* @7 _/ X4 U9 `% M0 L- _ w' b8 J% o
(defun image_dot_product (v1 v2)7 K6 j) ]5 I# D& L. \) i% Q
(+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
! f, A8 P; ^, u3 \: s' u )
4 g. o; p' t& v/ w1 \4 s: i: v( ~% K# K# R$ ]
(defun image_add_vector (v1 v2)9 K$ T4 R$ F1 Y. P; R) `# `
(list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))0 x) E4 d1 A! C* ]
)
; l/ i) O5 F7 f, e) X$ A; G4 K0 O
(defun image_subtract_vector (v1 v2)
0 [4 z) t0 y8 O \ (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))! d6 A! f) D( |+ D: D
)
0 v: r. [; F: ^9 b# i% ?0 S" E% B9 }5 `# m6 f- s
(defun image_normalize_vector (v1)
2 Q, K* x( n' U4 W0 a, N' D6 K (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))- ^# l2 R9 t6 r! E8 G# n
)
0 D7 r n. ~* E+ h
! X2 j: x8 `# h2 w# B (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
z& t3 Q H2 f9 R1 Z ;; Normalize the axis1 D2 ]) g* {0 K5 R: `
(setq axis (image_normalize_vector axis))
5 A8 ?. c- g" R [ (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
; d5 o; [0 o7 f) ]5 H (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
$ i' d- u; N9 |0 m6 Y (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))/ R1 V$ z8 s4 ?+ O9 k! J
(setq in_rot_plane
+ P8 o4 H# j9 m$ i# ?8 B6 I& ?5 s (image_add_vector
+ ]% {: p' B) Y, p4 O: _. m (image_scale_vector axis_x_in_rot_plane (cos angle))
' A$ L6 e8 b: W- V @2 f0 Y (image_scale_vector axis_y_in_rot_plane (sin angle))+ i) U8 R+ x1 q) H- W2 _
)
) C/ ^# h; | H" i* m1 ~# B+ R; e )
! o5 `6 N7 f! o6 }1 U6 a (image_add_vector along_axis in_rot_plane)
6 y8 O0 y8 i$ V- M3 r! x/ O+ _; I )
9 a! j9 A, w: f! {2 V/ W, T" F9 y. d/ K& F/ L! m! {8 z" m
;;! |9 W+ S1 t4 y t4 p: m
;; Calculate current rotation angle if appropriate.
" R7 q4 W* F1 `9 K/ B" j2 }# m ;; If not, grey out the rotation field.
* O: R. g5 n! l* [) l ;;$ Q F" k: W b) L z0 j6 C
(defun image_rotation (/ normal rlength zlength sqrt_tolerance)
# n2 U& J/ k. H$ Z. r: r7 U# B ;; Determine if image normal is codirectional with
2 j4 C! H/ c; {" h9 X/ u& ^- L3 k) g ;; the current UCS Z-vector.
1 x; I. V4 y1 U# ^ ;;
6 x; m! U6 w! ~. H: k (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))# ^9 g4 T# m% E" |
(setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
+ X+ \8 g, E2 |# c (setq zlength (* (last normal) (last normal))): X2 y0 B8 Y4 C& B! B
;; Note that the value .0001 in the radians is approximately 0.0057 degrees.2 {* `$ }" o, l5 X6 I, r
;;
4 I2 R$ {- @( v) U% X ;; cos(.0001)^2 |0 s: k: |: r! R/ [" }
;; Tolerance = --------------
- `& A6 s/ w. n* u ;; sin(.0001)^2
! t8 T0 U0 F( q5 i9 _8 d, S ;;
% o j5 \7 }: A" n' U K (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))) W5 j3 X. A3 {( e
(if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))1 O- {) e1 @: V9 @( M; u4 l. P
(setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
1 u$ v9 N- f& Z+ ?# c( N (progn
4 u3 x+ m" b' g0 Z( H' ^5 N (mode_tile "st_ang" 1)
- Y' b9 K0 `! S P) z6 { (setq image:angle 0)
& i6 n: v$ z. k% [5 b7 R& ]- q: b )
6 E4 @! Y8 I8 F+ `9 g8 K) [ I )
! B, Z% n3 d X7 y )# F& }0 N) D1 V8 L' J4 b# ?# I
- B: ~, w/ I7 K; E9 } ;;+ c& d. ]( L P: G+ m
;; Modify Image' T* M9 d I4 w) n. {
;;% b Y! z# [: G- x
(defun modify_image (/ u_vector v_vector z_vector)
$ `7 c; F; H& B (modify_properties)0 T, X8 I5 H4 k- w& @& J2 t( F% f+ _
(setq pt1 (list x1 y1 z1)); G- W( |9 D9 `* C, h
(tempmod pt1 10 0)
. }) Y. A; D5 `' T: b, w, Q ;; Make display option changes to image! \$ p n2 @ d( o, m: `$ {
(emod image:options 70)) D# q! s7 @: {% J, _5 i
;; Get the u and v vectors
' P5 ]( c q! h+ R1 G (setq u_vector (cdr (assoc 11 elist)))
+ J) j/ m+ ~5 K5 |/ f, G J (setq v_vector (cdr (assoc 12 elist)))* M9 E+ B$ `$ L: H( p4 R
f: L; H W2 R, P# q" w( ~ ;; Make scale changes to the vectors( @. j( M \: k/ h, w
(if (/= image:mult 1)
I/ x$ j0 i! e6 u) y. d. r# s (progn
$ b9 k0 ]# m }) h) G) o! G( K (setq u_vector (image_scale_vector u_vector image:mult))
' W- D Z* w% f: v, _' O5 s (setq v_vector (image_scale_vector v_vector image:mult))
6 R+ d+ {$ z- o" A. _ )' V% }$ g, s$ U0 l7 Q( ?+ F- t
)
" b5 [* Z3 y" S0 U ;; Rotate the vectors3 t, @. R2 J% D9 F% _% m
(setq st_ang (- st_ang image:angle))- i8 }1 r" h! E0 x; x
(if (/= st_ang 0)
1 L: E$ _. @2 N (progn. L& A5 W( o' R" I {* T. p
(setq z_vector
$ O' ]# o- X) P) L9 E- J* T" P2 Q! A$ B; C (image_cross_product/ C6 o0 E+ u5 F8 @
(image_normalize_vector u_vector)! }) D9 e; y( {, D" V* m
(image_normalize_vector v_vector); r7 V( x+ z' y; B
)8 k) W( A- `$ Q: G! i2 N
)
0 \8 I, H* ^% A$ [0 s7 V (setq u_vector (image_rotate_vector u_vector st_ang z_vector)): a4 p# v: [2 d
(setq v_vector (image_rotate_vector v_vector st_ang z_vector))
! F# _% K% D% N# d% p9 ], X: H )2 R8 n; j( e4 A" a
)
9 E# h% M% q9 h/ M m) z& W (emod u_vector 11)
) Q' k" [. {: O; L; g (emod v_vector 12)
+ H" h+ i7 t* L- `$ q: ` (entmod elist)
) D, ~2 c+ t8 q4 _ D )( N8 a4 S/ o; }; T2 }( D' e1 a
/ A8 u$ U" G2 z% Z$ ?: v
;;
4 ^' d5 D( j, [, f& j; j ;; Run imageadjust on given entity, working around possible/ S9 @) l4 P5 K9 z* r6 d, W! |
;; re-entrancy problems/ m* s9 o" n. C* O$ f
;;
$ J* v+ B+ P4 s7 G/ _ (defun image_adjust (ename)! w+ _( k6 X" g1 d' s" b$ K9 \5 s
(verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...5 z1 P6 ?1 R7 u3 B9 U* G& B
(imageadjust ename)
& z( x% _/ k( q' d/ Q3 H9 D' L; g )
! ~" G8 I. Q6 a, b' Y. a. B/ s ~/ b( u
(defun ddimage ()1 ^ [5 t( Z) A: u& k
(if (not (new_dialog "ddimage" dcl_id)) (exit))
8 z& W" Q- L3 t3 \
" c: l) K& t# s9 j# y$ W1 ^ ;; Grey out the thickness field.2 U! [( w" M& ^ E" W
(mode_tile "b_thickness" 1)# ]* A: E5 x2 |" s" a- i9 a
(mode_tile "eb_thickness" 1)! x% [ ~) x, T. Z, S7 U
/ X" n' U/ B- @. m0 t; M ;; Get the associated def object.
0 b9 g6 A i# F+ q: } (setq image:oname (cdr (assoc 340 elist)))# w% g% K9 |) y/ ?
(setq image:olist (entget image:oname))
O9 M$ B: Z: K1 `1 w2 m S% Y5 ^' ^. I) @& Q: a, ]9 u V
;; Set initial tile values
5 Z0 `2 l& r3 v0 V" J0 ^ (set_tile_props)
& p; R# V2 f) v! {8 z (set_tile_handle)
0 |/ Y+ x% i' P3 N1 y9 j (set_tile_pt1 0)" o( p) R6 J# U
(setq image:scale (image_scale))
: J1 l4 F7 }( {1 N (setq st_ang (image_rotation))
% P# t: T; W; R0 ] t (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))5 I( Y- l! K$ X3 ?
(setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist)))). m9 A) S. g1 h" R
(setq image:options (cdr (assoc 70 elist)))6 q+ M& f. K+ t2 m& K1 H/ h
/ M/ m0 c7 F/ r5 [
;; Record the last multiplier for use in image_update function0 J- Y, T7 i5 c0 P& \
(setq image:mult 1)( m; Y9 T2 i1 K. i p8 ]8 ~
$ `* k4 r- X" a! C3 Y
;; Retrieve the image name
: ~( B) c: |1 b7 S (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))6 B( t% A& ~( K' c3 g& ^ ]
(setq flag 0)/ @3 |; q5 h$ @) t: ]# o H: S5 H. |
(foreach n fn" B$ ~, e% n6 A) y7 s. q: q
(if (= flag 1)- u/ W7 M0 {) `; j+ K! Q8 Y
(progn: j4 a. v% _! k8 u; R
;; Display the image name
& L# y( n- c* z. p7 S( L (set_tile "image_name" (cdr n))
9 F, A1 _5 {% T2 w) J (setq flag 2)0 y. E, Y8 @$ R8 l. Z$ ?
)
9 V) Z6 P* D7 J" M" V& I: } )
: Z9 j( u3 k7 Q* g# O& ?% C (if (= flag 0)" z- P! K" H: ], ]( B% Z. y" k4 g
(if (equal (cdr n) image:oname) (setq flag 1))( A: K: {- s3 L4 I9 e, F3 w: r
)
: [- x$ n7 S3 r$ h, D6 U9 u0 ^) I )1 o5 n9 k2 K% I
* w8 A, |% { h' g: D- j% z/ P
(set_tile "image_path" (cdr (assoc 1 image:olist)))
% m4 }) h/ J! U# r4 I (set_tile "st_ang" (ai_angtos image:angle))
6 z0 A5 B5 N0 ` W6 M (image_set_tile_scale)2 q/ V8 i1 n# E1 K9 w3 J# c \
; c- c) m" d. e* X! x& Q ;; Check the appropriate boxes
9 ]% l4 X! a# _ (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
4 v' s4 c( k5 V5 Z (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))4 n) d3 S( T1 t* e( ^
(if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
& Y. _1 N+ M* y. w7 C% o6 a (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))6 J7 r4 C, ]1 L' n, |7 Z; a% g
/ X- j4 d: E) C% L
;; Define action for tiles9 Q: S J- y* M$ Q
(set_action_tiles)
5 Z& i; P2 J0 m5 _6 p (action_tile "xscale" "(image_update \"xscale\" $value)")
- y" X* r1 `* a. R; Q+ o (action_tile "st_ang" "(ver_ang1 $value)")
( _/ i! d) o# _4 V (action_tile "wid" "(image_update \"wid\" $value)")
2 I, k$ c7 h. D% {8 ^: Q2 X) X+ c) ^+ m (action_tile "hght" "(image_update \"hght\" $value)"), h# E0 Y9 I# F/ x6 o
(action_tile "image_show" "(image_disp_opt 1)") a$ m# j) B) m3 T3 B0 v
(action_tile "image_non_ortho" "(image_disp_opt 2)")
+ y4 t1 L3 r' L! v (action_tile "image_clipped" "(image_disp_opt 4)")
/ w l, T1 u: k* @" B0 _0 J (action_tile "image_transparency" "(image_disp_opt 8)")* w& N7 R& O- F. R+ u: {
(action_tile "image_adjust" "(done_dialog 4)")4 y7 V! e% ^0 B
/ n1 h" m- [+ V/ R (setq dialog-state (start_dialog))
' g/ \+ R, b2 J$ p* } (if (= dialog-state 0)- I' A5 S% e/ Z M8 }! s
(progn# f+ P3 Q; t1 P* W
(reset)
c1 _8 s& J# l9 C: m0 X (image_clean_variables)) D$ r* R% N) `# ~
)' u% m; O# o+ v/ s
)( p* s8 s% C$ S5 V0 |5 i- d
(if (= dialog-state 1): {8 k% Y- x9 U3 Q! c4 Q
(progn
5 u. p+ ^4 b! _& F. q, Y (modify_image)3 Z# ?5 e2 B$ a' T
(image_clean_variables)" g' h7 v I5 |: R5 F
)
+ V5 d2 {3 B5 l6 W/ [! z8 T- a+ t )( o$ E& z! f W& q# g
(if (= dialog-state 3)% u2 D+ J- x% F; q& d4 t; Y7 V
(progn
7 u: T* E5 _3 X* l (modify_image)
: q2 h5 K* l. e+ t; b$ W8 m4 M (image_clean_variables) q) u- a1 ?; K: [! Q
(setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
9 K' p6 L7 p- d5 {, r (ver_pt1 0)" [2 h0 I! o9 B+ P" z
(ddimage)' Q( Q7 ^9 P- d8 `
)
, U4 M; e& `" j/ Q @* G; T0 P ). v1 l1 R& ^/ A- K
(if (= dialog-state 4)
% ]: [* c% D: j' m3 U1 H (progn
+ i9 X$ r; C+ E5 z4 @8 I (modify_image)' m! a# A( q* O/ I, g& ]* p
(image_adjust ename)
, D; c o2 H) Q( o; P. U7 }* h# h (setq elist (entget ename))# A+ C8 \( R: B' b2 Q- t; X, r( N
(ddimage)2 B( P- V* Q; l
)* }# F- T. ^7 t7 i; [& K& D
)
* O+ R, N" [+ U& n- c. @$ e )
9 p2 k! q0 p3 o% @& x: J- i+ v5 a
;;
' @+ T' e0 r9 p) E' N& Z! U4 y ;; Modify BLOCK (and its Attributes, if any)
7 l7 C0 \/ \, d7 m ;;
0 p0 i }* u- K5 M (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
2 @ \2 I+ F9 Q4 T9 F new_wid old_wid old_rot scaling old_scale
8 Q2 K2 a2 Z4 T' y z, q ] xdelta ydelta zdelta xbase ybase zbase ipos)# z% |! `* c7 o2 d+ z
(modify_properties)+ p8 P/ z9 j5 s" z3 u7 |
2 Q0 k$ B4 v7 H" x+ Z3 F1 T$ p! y5 r ;; First, translate and scale the Attributes, if there are any.! n4 C3 Q. r- F% e; i
(setq old_rot (cdr (assoc 50 elist))
! m1 }% ^* `0 @5 @" b old_scale (list (cdr (assoc 41 elist))" r/ a+ B2 q$ _
(cdr (assoc 42 elist))
8 }# J; x7 g4 \" d (cdr (assoc 43 elist))
) J' ~% D# v8 ]) k5 r, G$ a# Z )7 N& x' r" g; ]: L d
scaling (or (/= xscale (car old_scale))
1 _/ D5 p/ i/ g( m# c$ {( k (/= yscale (cadr old_scale)); {, I! L; Z' V& f8 Z4 R
(/= zscale (caddr old_scale))6 `: n8 a6 A: l: w; M. @2 ?( S
)
) K5 K8 I- }0 _. f Y attr nil ; No Attributes modified yet* N: i5 I3 S3 T
)
1 m! m, ?, n7 e7 C2 E6 w (if scaling5 D x9 b8 f5 [; M+ u
(progn
; s+ ~; U C; K |3 \4 |8 D (setq xdelta (/ xscale (car old_scale))
( K; D; _: W6 O: p0 W5 Q& ~& C ydelta (/ yscale (cadr old_scale)): T; Z& x1 K' Y, D( N4 I
zdelta (/ zscale (caddr old_scale)); A/ u0 r3 U/ n/ |4 q+ W4 P$ r
ipos (cdr (assoc 10 elist))
7 r( o' Z z0 z0 ^7 Z/ K xbase (car ipos)
$ e% F6 I$ [5 i ybase (cadr ipos): f4 J; R9 e* q* ~: Q, Z; `3 ~$ J
zbase (caddr ipos)
" Y/ z# z2 G; O6 C en2 (entnext ename) ; First Attribute4 w+ x* z: l+ O
)6 \/ E& ], p2 Z6 ~
: P7 K+ \) v; H0 b7 r2 W- K ; If the Block is rotated, temporarily un-rotate it, along
% F! A9 @# q# |, F; \' Q2 K; g ; with all its Attributes, so the scaling/translation of the
8 V3 Q' u" ^( o) K) g# N s ; Attributes won't have to take the Block rotation into account.! m3 \5 V o, [- d- v
(if (/= old_rot 0.0)
6 s6 F2 _; [# g1 G1 L4 L (progn& U) B% H3 l" J0 k$ a! m
(command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))6 P. `( i7 W, |' W; _6 a
(setq old_rot 0.0
) B$ g: I; Z, O4 ?0 }+ ? elist (subst (cons 50 0.0) (assoc 50 elist) elist)4 r' j4 k4 G; F4 K7 u" n4 a3 G( j
)/ d2 I2 a+ Z- C2 `
)8 Y% v8 r0 ~, K& \$ O7 q" U7 J
)( v' u6 |! C) t" v
* q2 [1 u, `, g) `3 P; K1 s& ~+ G
(while en2/ r4 a, _4 e! a" V% \: V' o
(setq el (entget en2))) @' S$ C* T. P. r
(if (= (cdr (assoc 0 el)) "ATTRIB"). T1 Z L8 }# a E" { b
(progn
6 t# Z4 r- `+ j0 R- \: E (setq old_hgt (cdr (assoc 40 el)) ; Height
; p3 W6 B% b# _% o old_wid (cdr (assoc 41 el)) ; Width-factor% [/ @) t5 ~6 s9 e% N q) Z2 R
oldp1 (cdr (assoc 10 el)) ; Generation start point6 w+ T% R5 t4 O
oldp2 (cdr (assoc 11 el)) ; Optional alignment pt6 X% v% _3 k4 e- ~4 r( |. C+ W
ha (cdr (assoc 72 el)) ; Horizontal alignment
, `& X+ Z! }( z: ^0 @9 a. n* }2 k va (cdr (assoc 74 el)) ; Vertical alignment8 Q/ P+ |6 H* K# x
9 L( w/ r' U8 y
; Translate gen. start point
( j1 `& Z: ]* h p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))6 Z. M9 S. {; f; S
(+ ybase (* ydelta (- (cadr oldp1) ybase))) a7 M X8 D1 B# C4 s7 L
(+ zbase (* zdelta (- (caddr oldp1) zbase)))8 D* U* A4 G$ Z0 S0 u
)
! V) ?7 ?2 e/ U6 ~ el (subst (cons 10 p1) (assoc 10 el) el)
$ ]5 g, q; H, Y2 ~4 v* ^ )
5 p. I8 N9 c" h3 j- A/ i/ q5 V# I$ u
' E+ H6 S0 I, c' U3 \& S0 @ ; Translate alignment pt similarly, if present and applicable6 Y( w! t8 k+ f9 m- s; Z
(if (and oldp2 (or (/= ha 0)
& h3 E7 g, O& J, K (/= va 0)! }! A! Z: {3 v6 J) `' q- r
)
- k9 g/ e. I! X( ^/ k0 \! _3 S )' ?; N2 A6 V0 }! c. o, z
(setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))8 ]7 Z1 q. k! K
(+ ybase (* ydelta (- (cadr oldp2) ybase)))
4 p7 w7 x9 d" ^+ Y( G/ T (+ zbase (* zdelta (- (caddr oldp2) zbase)))
) ` l8 p) a+ @" F- }& v1 k; ` )
2 C4 @; E" p# [) o1 [, c el (subst (cons 11 p2) (assoc 11 el) el)
' v; J. u/ p4 V )
/ {" v& P: V8 k# U( S S/ ~* e )+ a. w- L2 Q5 X. \/ d
* e; e' P& F/ S8 v6 r1 M3 y
; Each Attribute's height and width-factor were computed7 W& \9 B9 n( L
; based on the Block's scale factors. Adjust them now,9 X$ e, h: Z$ T k, g! W( B: J8 k& k
; by first reducing to values for 1x1 scale...
& e& u4 S1 Q; ~1 Q& X (setq new_hgt (/ old_hgt (cadr old_scale))/ Z v' b( \$ F4 f* i! ]
new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))5 ?: D; ]0 W* T8 F0 f9 A
)$ E0 \1 D* y4 W
; ...and then rescaling.
4 ], V% K5 v, [/ q! ` (setq new_hgt (* new_hgt yscale)6 v4 \2 k; ^) Y' w2 o
new_wid (* new_wid (/ xscale yscale))
' J' W/ z/ k+ u+ o )( Y$ @- [" _1 L: u& ]
(if (/= new_hgt old_hgt)3 n3 s- b$ P; c
(setq el (subst (cons 40 new_hgt) (assoc 40 el) el))- l3 W* d7 q- i# R# E6 i, n
)
. o" U0 f% Y3 J3 Y (if (/= new_wid old_wid)% U. O! u! k" _3 H, Y% J/ ^7 Z" k; A( F
(setq el (subst (cons 41 new_wid) (assoc 41 el) el))# l4 A0 g" m. _( j# n' A9 r0 p
)
2 b7 P1 y$ m" E4 v5 I' q, h b (entmod el)
* l! `" z. O' B) d( N (setq attr T ; At least one Attribute modified! F4 v" Z3 g. `5 M' B
en2 (entnext en2) ; Next Attribute
- Y0 z: i# d, y: m; U" E; g )
) F0 L8 O+ R$ m6 U) {5 y% z# q4 Z. q )9 A& z. j7 r* M7 b
(setq en2 nil) ; No more attributes3 V( x2 t7 E# {3 F! ], \+ X
)
R5 o) u4 W, _9 V )
' `& r6 z0 y! [& h( Z* s )
; C/ a* ]6 O, l: ~ A: B )( B6 w7 d$ c1 `$ [
. b* i+ I; ^7 {" x$ T (setq pt1 (list x1 y1 z1))
" d7 X8 I' c7 C (tempmod xscale 41 nil)
! U1 q& s% M. H, `' I q% J (tempmod yscale 42 nil)1 R7 ]+ X6 |# f2 n- j
(tempmod zscale 43 nil)
$ L, r# y8 Y$ E# N (tempmod col-sp 44 nil)) `! t( u# g+ n1 [$ T0 J8 C" i; c
(tempmod row-sp 45 nil)
; t: T5 b( F4 n1 i8 m5 F( R (tempmod columns 70 nil)
) L. i& g# H' F. y1 d) ^8 x (tempmod rows 71 nil)! t) L+ j, u5 K* |0 q
(if (= xclipmode nil)& a+ w( g( N( H; u( E4 Y
(entmod elist)
% L; k& b8 @1 [* i (setq xclipmode nil)
4 b% j6 ~" x4 M% R3 h B" T )
7 g0 {; [+ h0 r# c5 ]. U3 s9 } (move_pt1 1)
2 |5 M3 Y' e! U1 S9 T2 I3 t6 Z! x9 S" B4 w+ ~8 s
;; Now do the rotation with the ROTATE command.
) t7 A3 U- i, G) i) l5 E6 |$ T1 [ (if (/= old_rot rot)
2 d$ [: ^, K2 L* Y (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))% ?* z3 Z! r5 S" u1 y) F9 a
(if attr ; Else, if attributes were modified,
+ Z1 g3 A( z; O (entupd ename) ; just regen to force attrib display9 L' l6 H1 T H2 l2 [* h& ^6 |* h
)
+ h& s @) D7 b* W( g' B )
$ `# G( s/ B4 ~' g4 R (setq elist (entget ename))+ g/ P3 @* Q' \" S& m2 ?
)
# W9 h" Z" m7 g$ x+ @* ~ (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
$ `+ b) ~, V$ B5 x (setq newhatch 0)/ i6 ?) F7 q0 p
(setq blkname (cdr (assoc 2 elist))), m: ^& a0 t- }2 s- L+ J
(setq blklist (tblsearch "block" blkname))
5 X4 `; Q! D# ~, z" R# W (setq blktype (cdr (assoc 70 blklist)))
5 S5 P- Y0 G- `& y4 o# m (setq xcliponoff 0)$ Y; X7 j6 G. R4 ^% r( y
(if (or (= blktype 0)(= blktype 36))
( p% W( [: q" \: B0 w1 D' W (progn; s; L" S& S: T1 n L g
(setq xcliponoff (xclipon elist))/ e, E3 q/ q/ r; n
(setq temp_xclip xcliponoff)+ x, V# ]. d+ L/ F7 S
)& K. k' V7 _9 ^% h# O4 d% `3 ^
)1 x0 E0 Q0 N" h- z; l" ?5 `9 K
(if (= (logand blktype 4) 4)# v- y5 s' ^9 y: p- u8 _5 e
(progn% I; L% ^8 d- K2 w0 T
(setq xrefpath (cdr (assoc 1 blklist)))
! B4 l, u0 ] W$ D8 K (setq help_entry "modify_External_Reference_dialog")
' t" }' t0 @, K (if (not (new_dialog "ddxref" dcl_id)) (exit))
8 g' F; _$ o7 R$ e) K% ^ (set_tile "Bl_name" blkname)- O1 i" |! j4 B, Q7 X
(set_tile "path" xrefpath)- z; w6 e4 X' {+ O h% `/ b0 D
); x% p4 n. D+ r6 }" b) E$ W% V
(progn
! w! x- H+ y$ o5 L+ u; [* p: W' i ;; Get program name for use as Xdata app name5 x4 Y0 B3 Q# u4 N2 T2 G8 U- J
(if (not (setq program (getvar "program")))
9 T% \. g8 Z- j& @0 G (setq program "acad")6 o. k& d' U$ Q5 B- D& s
)
& z4 z/ v) R$ K% O' x+ {) ^ (if (and (setq temp (assoc -3 (entget ename (list program))))
- ?& U2 T0 K! c# P q) a* x (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
' e. C5 n" E% P+ H: b0 d (assoc 1005 (cdadr temp))
3 v1 e2 }1 |; y; x$ {* p )8 @. ?" k9 x+ X) W
(progn! Q( l8 ]& V2 N) w& t8 \! c# }
(setq newhatch 1)
' O4 s1 Z, N; M+ o (setq help_entry "modify_Hatch_dialog")
, R) ^ m) T0 C2 W2 M& @ ;;; convert the object into a new hatch0 @' v4 Y' {2 r: }
(ai_undo_on) ;; enable undo U/ P& H7 }. s& x! }; Y7 j
(COMMAND "_.UNDO" "_Mark")6 R2 z' a. W8 L* m
(COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")& u8 B4 ]( v5 Y
;;; suppress nasty message from convert command
9 Q6 g- o6 N! \5 g/ B. k0 { (princ "\r \r")
; p# p% x: H9 A8 i$ F) _) l (setq elist (entget (setq ename (cdr (assoc -1 elist)))))& j6 }" x1 g4 {9 O) ?
(setq old-elist elist), m& p4 B' B! @
;;; If we have cancelled ddmodify
2 T5 M4 h: R( y* w (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok# |8 u" m$ }: d/ M3 C, k! u+ {
(command "_.UNDO" "_Back")
+ ]# ?4 O9 K( Q0 n/ i! O5 f- u1 J )0 D4 u2 k0 B: O
(ai_undo_off) ;; restore undo state
& r5 t8 v4 Q. S. b; {3 y) b1 g )
% t. U- L$ g; ]7 a) W (progn
+ R; G/ I5 N! E) `0 \, M6 G (if (not (new_dialog "ddblock" dcl_id)) (exit))% S& a$ g0 s* f# j3 {
(if ( = "*" (substr blkname 1 1))
1 d% e2 l3 }4 H% }, D8 q+ E (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
* ?: G- J, f. E9 p9 r' `) D (set_tile "Bl_name" blkname)
% l" \9 I) M3 i )
6 `! y( z7 I/ g. c8 r% @3 ` (setq help_entry "modify_Block_Insertion_dialog")
" m- F) o2 M+ A" R )
8 J2 r- \; t) |) x9 I4 `& J )
( `! {3 s) a( J0 ?# F )
6 e3 ?0 U* b4 R) J: w2 n )
) Z! J! N& d& z* x (if (= newhatch 0)7 z) ^7 T# h" K9 b- q# x& n" L
(progn. n; V4 k* O8 @/ E) h6 N
(set_tile_props)
^1 b9 D% T1 h# F (set_tile_handle)2 {* R, B* K) l& D/ Y$ M) ?" i
(set_tile_pt1 1)
1 I: Z0 H# Z `: B" V (set_tile_rot)& i- h3 ^; b! Q* a" J0 }9 Y# {
(set_tile_scale)
1 _. S, h6 k* A4 Q. D (set_tile_rc)
: B! P n! [, ^, `* z0 P" d3 ? (if (= (logand blktype 1) 1)/ u% {# N1 C6 r" [
(progn
$ d) r, q& ~/ J8 C/ D0 g5 ^' W" s% m (mode_tile "xscale" 1)
) t1 I! V$ @3 y (mode_tile "yscale" 1) i9 |8 [3 Y+ A$ k0 i. D
(mode_tile "zscale" 1)) Y$ y3 K$ F; ^! y5 y
(mode_tile "rot" 1)- a% f) F# R0 @: \* |
(mode_tile "columns" 1)
3 v- F1 p; G8 z) x9 U9 f; O (mode_tile "rows" 1)
' o D: Z7 e. j1 A$ O" |* U (mode_tile "col_sp" 1)
; E# ?9 Z0 O' w( G+ a; |; Y8 K (mode_tile "row_sp" 1)3 E6 d* S' A/ B2 s$ x3 x3 s
)
0 n; Y- F( D4 H& d )9 N, n4 E0 P) m' T L
;; Define action for tiles
# F1 x0 r/ F, C. w% z (set_action_tiles)( e5 T0 l' n: l3 ~
(setq dialog-state (start_dialog))9 Q3 F' q' K6 [& ?
(cond M* M( e" `9 `
( (eq dialog-state 0)
9 w6 u; W$ W4 F5 K (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))# Q: c7 R3 ` Y( {3 D- L
(move_pt1 1)/ U& ~9 M) Q4 } k% a/ x; ^% B: E
(reset))
$ ~* E) l$ j# b" @4 @8 w1 o% B/ D ( (eq dialog-state 1)5 X. N5 D, ]5 i- v6 r5 Y
(if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
3 @0 i8 N4 f: Z (xclip)/ H. r. s2 j3 q1 o
)
, q I% }: A, E8 f. `5 G (modify_block))
: C9 P3 M' h7 \1 w. S ( (eq dialog-state 3)
" ?2 e5 W& F( e# H# y* y& Q3 G; X (modify_block)% h2 x( ?; }; C; {& O
(setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))# I! M: i0 @, I2 J6 `9 R
(move_pt1 1) Z+ x( I$ g: \8 h* [# D
(ddblock)) \7 L4 P# u, T3 B( H* Z
( (eq dialog-state 4)5 E# ?2 t% K& X" t3 W
(modify_block)
, S. q& b, y, x# }5 C ;; Get current handle.4 S; l% J5 i: F2 A9 c# B& M
(setq hand (cdr (assoc 5 elist)))' s- f6 `, n1 x, I. s+ V
(command "_hatchedit" ename)+ ^% {$ Y! ^$ J2 G7 Z# O5 ^1 T
;; If OK in hatchedit, a *new* entity is created and the old one
- O$ d3 j0 i/ @' K; ?& F ;; is deleted. So if the old one exists, it must have been a7 i! ^- s2 {- }9 p3 S2 c
;; so rest the entity.! i: ~0 P$ y2 O: F+ w- B8 l6 x; G
(if (entget (handent hand)) (reset))8 }- E% r5 X( n6 K( U% k5 o
)) W9 ^8 a- Y' p3 q9 k' N
)
' D; S$ a1 x$ u5 X )
! N% w; s% ~0 B! w* o } )( v7 s; s1 O; j8 R2 ^% s( H
)% F6 a B' d& K) X# `6 E, K
;;, g" Z, d4 F0 ~8 s5 Q7 o. b- e
;; Modify SHAPE
* F7 L9 N2 g7 } ;;
( M$ ^/ Y1 M3 T0 M( Z (defun modify_shape ()' B! ? a& S' O2 z. V5 H5 l" ]
(modify_properties)
% {: Z5 `- L' v& T (setq pt1 (list x1 y1 z1))7 l3 ?2 `0 W! Q2 h! H) o
(tempmod pt1 10 1)) u# }, t- q" U6 T' J5 A/ {9 M
(tempmod hght 40 nil)
" _$ N5 B8 G& @7 Q7 [! T) _ (tempmod wid 41 nil)" a) _) g \0 L' u
(tempmod rot 50 nil)" _/ t: u9 |$ A8 f# b9 T
(tempmod obl 51 nil)! Y2 c& M! N+ f; h# @
(entmod elist)9 C6 ~" N) p. ]5 B/ M+ y
)
% \; n7 [( |, h2 f6 f/ q) j* x% w/ W$ I7 E5 _5 t
(defun ddshape (). B7 E& U: C: ]( V: e0 M
(if (not (new_dialog "ddshape" dcl_id)) (exit))
7 E0 F7 ~, W" S) v8 N& ]( \, q (set_tile_props)) `" E0 r4 O8 T5 i1 ]! v7 p: G
(set_tile_handle)8 a: X I( t8 o4 T2 r
(set_tile_pt1 1): e* k5 f! _, @ t
(set_tile_rot)
! [, @; O* T3 ` (set_tile_hght)0 x% m+ G% m: T3 [4 \ H0 {# { O9 I1 l
(set_tile_wid)! h" J" q/ U; R6 [0 K7 f# a9 ~: S
(set_tile_obl)
7 ?$ Y5 {! P& Z* N {0 ~ (set_tile "sh_name" (cdr (assoc 2 elist)))- F5 @7 }8 ^4 T* J
;; Define action for tiles9 a& G q6 f/ ?) F( V
(set_action_tiles)
5 M8 Q- R5 E6 p. t9 @3 r6 K (setq dialog-state (start_dialog))2 ~+ [! Z2 S( g4 m! U+ F) r
(if (= dialog-state 0)* J& ?% P. h1 |+ C' h$ f
(reset). h5 m7 q* d+ g
)
9 C8 B: d' o3 i' n, k7 s6 h- r% c (if (= dialog-state 1)
8 }8 Q3 _$ M/ X2 V7 m- \ (modify_shape)
5 E# [5 l3 ]9 u3 \: ~1 b* c )1 {0 l/ t7 f- D6 p- v% l! i5 w
(if (= dialog-state 3)
C8 M5 h. W3 ]9 O7 @5 z+ ? (progn' V( @4 P: s4 @0 x6 S$ \& b
(modify_shape); J" ^" T7 g/ I
(setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))5 w8 d( Z q) o; F& R2 z
(ver_pt1 1)7 U, @" f" k4 B: d k6 e
(ddshape)' E; p* j+ E! P2 U8 b
)
4 g* h, i: {$ ?; f" t! x, ?! M2 O )
7 E' y5 P( a* f( Z3 y6 M/ U )
7 ?" r+ s) }2 k" X: Z( _+ b ;;0 q5 l2 x7 q& [% B( x
;; Modify TEXT or ATTDEF% v( Z3 i$ \* y0 t
;;
N ~8 W! b. P& Q2 @/ q ;; Set bit code for upside-down and backwards setting
! \2 A0 q/ k) b& O ;;
5 A0 _4 ~0 }0 |0 C8 h (defun code_71 ()
/ K }) D0 S9 Y8 J/ Q& h, r (cond ((and (= bkwd "0") (= upsd "0")) 0)) U& p0 Z X$ C7 S7 _
((and (= bkwd "1") (= upsd "0")) 2)4 R/ D! n% w# k
((and (= bkwd "0") (= upsd "1")) 4)
{9 e! D1 I) i, }6 x8 D7 i v: u, e ((and (= bkwd "1") (= upsd "1")) 6)7 a4 R) b% J7 p" ^: M9 ]
)
, {" c" v% r. a0 h% O. @' { )
4 s1 ?2 {" {: T# v ;;
8 H5 |* t. s1 b ;; Style action. Reset widget values to style defaults
1 V s6 ^3 q% H2 Q9 D6 z- C ;;" F6 k6 _6 C T7 ^0 }* s' x
(defun style_act (index / style-list)
7 q7 T& @3 R$ r1 ]3 H$ q* `% z7 h4 X8 B (setq style-idx (atoi index))) W2 W/ B! W; _& E1 @
(setq tstyle (nth style-idx slist))
8 y- S( S7 k6 H/ f6 } (setq style-idx (itoa style-idx))
+ K& A, R( E8 b8 D (set_tile "style" style-idx)
+ w1 R/ j' I) ? (setq style-list (tblsearch "style" tstyle))
# N8 @! d- G; O- x Q5 @0 ? (setq shght (cdr (assoc 40 style-list)))
" G! q" c, A! A9 I6 B m$ W1 ` (if (/= shght 0)* z' C7 ^& F' w$ \: S% M! ?
(progn" c b0 H# p: r8 M' a
(setq hght shght)
% r |& _- z: \) |) \ (set_tile "hght" (ai_rtos hght))9 H; K' y8 Z9 k/ ?
)9 F- Y. G* z5 c7 l+ A/ n
)- L7 U* Z% P# o+ j9 m
(setq wid (cdr (assoc 41 style-list)))
5 O* L+ G( m% a' v4 `% c (set_tile "wid" (ai_rtos wid))
- E6 _) u3 A/ j! n# A/ S (setq obl (cdr (assoc 50 style-list)))$ l8 U( h g( \/ V
(set_tile "obl" (ai_angtos obl))/ a! s8 C( a. M5 U; o4 s# M
(setq bk-up (cdr (assoc 71 style-list)))7 y4 u7 s$ w6 z
(if (= (logand bk-up 2) 2)1 @: |7 i7 R5 f
(set_tile "bkwd" (itoa (setq bkwd 1)))8 U+ Y: [9 h5 c+ e- R- r
(set_tile "bkwd" (itoa (setq bkwd 0)))+ N, p* a' k/ S; b( ?% ?8 J
)! s J. \6 w+ l( M {
(if (= (logand bk-up 4) 4)" d# d9 a4 t- H! m# m0 x
(set_tile "upsd" (itoa (setq upsd 1))). j. i- {, n. `7 @3 x; J
(set_tile "upsd" (itoa (setq upsd 0)))' t6 s4 T3 C8 `) k1 q
)
) m8 d6 A' g+ f1 I3 T+ u% X3 j )
) S( h$ I% S+ q# O ;;3 i# N, _ u& G
;; Justification action. Set vertical and horizontal alignment variables,: n& }8 g( H3 O
;; grey out rotation and height if alignment = "aligned", grey out rotation3 U8 Y" o5 `! _* O x
;; if alignment = "fit".5 Y2 `- z. h0 G U: [) f
;;
1 y! B; T1 A* h1 T (defun jlist_act (index / templist)% W. j" `2 c- }/ J; s1 R) |% E
(setq just-idx (atoi index))$ i# P4 s1 T& t8 n6 O- s: M
(cond2 s. p3 `7 V1 U- I: p
((= just-idx 0) (setq va 0 ha 0))! X/ @7 o8 q: w. E( f
((= just-idx 1) (setq va 0 ha 1))) }* K7 ]* n3 K
((= just-idx 2) (setq va 0 ha 2))
. p2 A; Q; i8 } ((= just-idx 3) (setq va 0 ha 3)), r; E) A' ~: y* _' s& r, M% k4 f( C
((= just-idx 4) (setq va 0 ha 4))
; L; A1 Q) o6 w4 q$ \$ { ((= just-idx 5) (setq va 0 ha 5))
5 ? j- s& j* B3 _( G. G ((= just-idx 6) (setq va 3 ha 0))
+ `5 I9 {4 R, v* E ((= just-idx 7) (setq va 3 ha 1))
$ g$ q) c( s: k/ z* |$ i ((= just-idx 8) (setq va 3 ha 2)). r3 Y# v" x! n" t2 ?3 s
((= just-idx 9) (setq va 2 ha 0))
6 q! s; B2 x! Z- {( p ((= just-idx 10) (setq va 2 ha 1))1 _% u6 D/ F* G3 I9 V( s# N0 E! U4 m
((= just-idx 11) (setq va 2 ha 2))
4 s# T- M6 \5 o3 ? i ((= just-idx 12) (setq va 1 ha 0))% K4 z& V) V& g) J0 S. N) c2 i# u
((= just-idx 13) (setq va 1 ha 1))# a6 a0 r8 f9 I7 G( |+ N
((= just-idx 14) (setq va 1 ha 2))0 z" Y/ [5 i) Y; G' p, R. d
)
% m5 R' L! e$ O% n6 y (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text2 i/ _7 L) H4 x7 L( B, K
(mode_tile "rot" 1)
2 U, D6 T" Y$ b6 ` u( U (mode_tile "rot" 0)3 y) _/ v) J" p+ V- Q- X
)8 r# y( ^, ~( d/ M( b) U/ K2 r
(if (= ha 3) ; If Aligned text6 t x4 F* R7 D0 e; ~/ M8 _
(mode_tile "hght" 1)
) p8 F6 P; t$ j x! x' ^# u (mode_tile "hght" 0)
: B& t4 P, Y$ M, T# n6 p )2 u7 u3 q# R$ m/ ^1 R, W: a" }: S
(if (= ha 5) ; If Fit text* W; y# j0 Q+ n0 ~ {" q) m
(mode_tile "wid" 1)
+ h% W9 e4 V$ {7 U+ k (mode_tile "wid" 0); H0 ^5 r* }0 [& ]
)# k1 D$ C4 R# K% n A, R
;; Reset rotation and height if changing from aligned.
) p" v; y; H h9 l% T5 p1 p (if (and (= ha-prev 3) (/= ha 3))) j Z+ H8 t9 ]0 T$ `8 o. s6 b
(progn
o& V+ J6 V9 ^ (set_tile "rot" (ai_angtos (setq rot 0.0)))
T) c$ C# F, R5 Z. V8 h' j2 Z (set_tile "hght" (ai_rtos (setq hght 1.0)))- w+ Y- Q9 z0 N$ M# e0 P. A
)
3 N+ z1 T z/ s5 A; L% I )
/ k* j8 g8 w, W4 u S7 p
$ z% E6 ^0 ^+ {# ~ ;; Reset rotation and width if changing from fit.
) r+ t, e2 J. Y (if (and (= ha-prev 5) (/= ha 5))
2 h+ Y' i9 r" `" U1 ~" S (progn1 c( u) |, L$ _+ G0 |
(set_tile "rot" (ai_angtos (setq rot 0.0)))
1 x. \6 i% m6 g (set_tile "wid" (ai_rtos (setq wid 1.0)))
1 e' y- m0 E V7 t' o )5 |7 T4 a* C+ R' h, m% j% B( \. c
)
5 P- x* f& U9 ^; F( t3 g
/ y. D+ [, ^8 t: L+ a$ z (setq ha-prev ha) ; update ha-prev for next time# {! {' ^( `& N# s( e7 B
(setq just-idx (itoa just-idx))0 G: z5 T2 y, O" N$ A! N# d7 Z, f
)
3 \; c$ k" R* Q; C2 t8 R ;;
+ f4 ^8 u8 o( I1 o" o% u ;; Set intitial alignment setting based on vertical and horizontal alignment" M ~" x! J, v* ]$ i
;; bit codes.% Y4 s0 p! @* V) H
;;
# [/ _ [' r) s+ f4 Q& R3 z$ Z (defun set_just_idx ()
# y8 H: d2 ~ T0 o& {6 g$ V/ i (cond7 g b6 p3 b; {% {! U3 K3 u
((= ha 0) ; Horiz alignment = Left
1 y* \5 E7 ?/ q (cond
2 F2 G$ \+ R" z3 ] ((= va 0) (setq just-idx "0"))
: H1 f! }6 l* s- j& M ((= va 1) (setq just-idx "12"))5 ^, W6 K) l( S& \
((= va 2) (setq just-idx "9"))
, L1 L; D: \; p- G0 ?: J1 U ((= va 3) (setq just-idx "6"))% [. V0 ^' }* [( Q! F2 d1 |: O8 }
)4 |/ C! E( [* P& A2 E: w+ s# w
)
7 Q" |- ?( c9 b1 O! y ((= ha 1) ; Horiz alignment = Center8 C6 X, u4 W8 _1 L$ Y9 a5 l
(cond6 k. l( V* B$ f1 N8 q- Z1 A
((= va 0) (setq just-idx "1"))
6 x7 s" T$ R/ `7 v( F$ `! Q ((= va 1) (setq just-idx "13"))
3 q- {2 K1 X4 I& G, ]! E) q ((= va 2) (setq just-idx "10"))3 F m$ o) S5 c/ ?8 t
((= va 3) (setq just-idx "7"))
8 W$ T V- g: V* b9 q )& E. ~0 X, t* d
)
1 ^. X) |# }$ @/ [3 \7 W- i ((= ha 2) ; Horiz alignment = Right
# q7 ~4 e9 M6 W% k6 t( i (cond
; D" ~) D9 | i' i) C# ] ((= va 0) (setq just-idx "2"))1 W9 T' z: B8 s3 z3 _
((= va 1) (setq just-idx "14"))
% Y1 q" v* Y3 d' } ((= va 2) (setq just-idx "11"))2 A3 b) {: F: k
((= va 3) (setq just-idx "8"))
0 U% F2 a$ Z! f* f )4 X# w0 x9 R3 \+ B c: y# d
)
& x9 c! W( j l: W ((= ha 3) (setq just-idx "3")) ; Aligned( e$ B) Q/ }! w
((= ha 4) (setq just-idx "4")) ; Middle
3 y e5 X& I6 ^ s" Y0 l/ l ((= ha 5) (setq just-idx "5")) ; Fit* [4 w# R v' N) ]5 t5 O0 M
(T (setq just-idx "0")); N7 N9 f7 [7 R/ t0 I4 M( B
)
9 ~# S. \! T6 Z# s+ l1 l just-idx
1 ^2 T) b2 o% q F: T X( U: l )
0 B7 Z( o2 ^ y' ^$ B6 b5 N" C4 t7 [: T, \$ d
(defun modify_text ()2 |8 z( I; x8 D
;; insertion point" T: {) r+ }' s$ M
(setq showpt (list x1 y1 z1))
: N8 _3 m9 Q1 W' ~9 m: E+ C+ ` (setq bit-10 (trans showpt 1 ename))- {8 L) a9 r: ? P& y8 V
;; alignment point6 f& h& ^/ \' g! j+ p
;; for 'Aligned' or 'Fit', alignment point must be different! e3 c- a6 G8 ^2 ^. q
;; for all others, use insertion point6 U$ X% m7 Q0 M3 g
;; (ACAD will recompute insertion point)
9 F# Y( V2 Z* p& l9 x: Z (if (or (= ha 3) (= ha 5))
' w ^2 h* q1 c T" Z' E7 I (progn
. F- m3 N+ i: x" S( e4 S, s ;; if no alignment point, fabricate one
6 d4 I2 Z, P# P' O (if (not alipt)
# r. _# P% A0 u |! K& b7 c: C6 w ;; add text width to insertion point& C' U6 N1 f6 v
(setq alipt4 C K' E( L/ g! l( [! ^
(list (+ (car showpt) (car (cadr (textbox elist))))0 Z. H, h: |- f1 V" t1 ]
(cadr showpt)
0 d3 n/ P( t& e4 A, C% ` (caddr showpt), g% |# ^9 U3 H! r
)0 N9 u1 t- s7 O
)
9 P5 G, j0 j' M. t: j3 ~2 M )
! y: B7 C- \5 _, x9 j (setq bit-11 (trans alipt 1 ename))
+ p7 V# w. ]( Q* p' H, O )
5 ^ q; E2 @) Z8 J (setq bit-11 bit-10)% N2 a& q. f' G
)( L- h6 G1 Q- x6 F
(modify_properties)
; M9 y; X) b5 m (tempmod tstyle 7 nil)
" w& m ?8 r( d% ?8 ~$ Q8 S8 x (tempmod bit-10 10 nil) L! s/ ?0 F. f5 w, w
(tempmod bit-11 11 nil)
5 Y3 a( k8 N" P (tempmod text 1 nil) Z y6 u1 C O
(tempmod hght 40 nil)
$ h! \7 x1 X1 Y) d+ z) D7 G (tempmod wid 41 nil)
" _/ a! X3 U% _- S0 q5 s (tempmod rot 50 nil)
! I# v, b0 @0 n8 [. W (tempmod obl 51 nil)6 U. o1 j* J: k
(setq bk-up (+ (* bkwd 2) (* upsd 4)))
: O3 |7 x6 y1 c- p5 f* V (tempmod bk-up 71 nil)
' _! W( K& g( W$ K+ E* |( M, M, |9 T (tempmod ha 72 nil)
5 `2 w, Z: T4 p+ o5 ^/ l ;; Attdefs use 74, text 73
2 y0 k7 R1 W8 D( F& ~2 L' ^6 Q/ k# y (if (= etype "ATTDEF")& A& t4 D1 O T+ N- y
(progn/ x2 @& o1 W" Y- M# [
(tempmod attag 2 nil)$ t0 w! J. ^7 m# |1 K- ~1 H
(tempmod atprompt 3 nil)) }& Z, Q" w' R* ^- Y
(setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))% j3 L' z' O0 Y
(tempmod icvp 70 nil)
9 y- F8 J3 a5 N6 P7 h: Y& Q (tempmod va 74 nil)
- S5 N9 N0 y) \6 G, @ )4 ^) M! |6 {3 c/ _
(tempmod va 73 nil)
; F6 X6 F- O% }) F0 d3 f5 Q )
1 J$ n1 `& n- [2 q+ Z: i r (entmod elist)
- z7 b, U9 {% N" C1 } )
. g# x6 R: Z/ @- J
, B$ u, d1 B0 [ (defun ddtext (/ 2ndpt slist i). | n, v8 A, E/ E8 B' i* T
(if (= etype "TEXT")! }4 f' c8 A4 h+ m/ n0 M! \5 s- m
(if (not (new_dialog "ddtext" dcl_id)) (exit))( o" c6 U5 q9 h4 E1 T' o$ d1 c1 m
(if (not (new_dialog "ddattdef" dcl_id)) (exit))
& z8 S7 w, @1 S: \! t )
8 U6 k4 I) T) Y) Y (set_tile_props)
% G2 G- h& J+ O- N: s (set_tile_handle)7 o5 N. c' M }% w8 M/ l/ z- i8 [% j
(set_tile_text), H; B( C" X3 i
(set_tile_tag)
$ E- g l/ E* h y0 N (set_tile_prompt)( D; c( d. `+ ]/ }( M; A/ r
(set_tile_hght)
7 G: W2 w- g- S+ y; z& _ (set_tile_wid)' o1 v& J4 w+ g! w5 c7 p4 s
(set_tile_rot)
! j5 _# K |3 {! { t9 I' f (set_tile_obl)6 J! X* a5 G3 X% e) l. X
(set_tile_bk-up)8 _' q6 I+ Y8 C
(set_tile_icvp)
7 I- z9 R/ i- F, x" F1 ~ (set_tile_style). j, s# B% A6 D) s9 N
(set_tile_just)* k, G8 r" u7 z) ` r) ~
(setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
2 p- o9 ^7 F8 w, P4 h) A. Q; K (if (not (assoc 11 elist))
" v i* p* h$ q6 y (progn (setq pt2 pt1)
1 m/ S* b5 d$ Y0 L (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
7 V* O0 _9 \3 u! M: e )- C) }, o1 P; O
;;(trans '(0.0 0.0 0.0) ename 1))+ U6 ]4 p0 j# i
(setq pt2 (trans (cdr (assoc 11 elist)) ename 1)): l; {) n# E2 F8 L
)! n+ J9 f9 X7 V9 V
(if (or (and (= ha 0) (= va 0))
1 a" W9 ?. R2 C1 H (= ha 3). h. r& y- B/ c
(= ha 5)
+ n* Y6 u( {. C: w& M) ^ )- m1 Q1 n' |$ r" z1 u3 I, i
(setq showpt pt1)' \- Z0 G! w/ v, e
(setq showpt pt2)
, \% _: ^% x: e+ l )
" o. d7 ^6 Y! f, @ U5 u (if (or (= ha 3) (= ha 5))4 i: N* r: z2 @/ ^
(setq alipt pt2). q+ Y. Y% v9 N6 _, b
(setq alipt nil)
: d8 Z! N$ }" V, I; r* F7 F, ~/ {6 ] )
) M" ]9 e; @* O1 e8 [
1 E! Y$ _0 V, U* G0 h (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
0 K9 P* W) C# P. C (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
" X3 R: n; ?) D7 {" X (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
( h7 q2 J P+ t/ Q" F! j7 [: I8 ~ J8 |% k5 j. u* H
;; Define action for tiles
2 k& O! {) _( h6 [. A6 L; K( I (set_action_tiles). L0 t N/ J. b
;; Set focus initially to the text edit box.
/ Z$ m. k I% D (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
9 E7 `3 i, l* } (setq dialog-state (start_dialog))
- w7 p* H3 h. Q- E2 R0 y: Y( D3 x$ j (if (= dialog-state 0)9 W8 r3 \6 b" M. z% l0 S1 q
(reset)
/ F7 S% n. q/ c4 G5 t )3 b ]4 N) S! D9 H
(if (= dialog-state 1)
1 e3 `# _" M/ v# ^3 v: k+ F (modify_text); v- Z( u* V5 G8 M# |2 V
)
$ Q/ S3 K' e5 |9 Z (if (= dialog-state 3)
, x5 x5 u2 T. w1 Q5 {' J, F* f (progn
, G6 x' L1 r2 K/ p6 ] (modify_text)7 \. a6 X8 {# ~/ [( k2 B# X5 K
(if (or (= ha 3) (= ha 5)); g5 q. x' _. B2 H0 G* P: |* G
(progn. q# ]/ [) _# Q7 d* ?& O# K( x
(setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))# `4 Y1 y! \2 V+ Q S
(if (not showpt)
1 R' i2 R ~; P. R (setq showpt (list x1 y1 z1))
6 c4 q# c1 p$ ^* t0 @/ j, B& Q )6 H; ^; t! p& i. w2 H+ c
(setq 2ndpt (getpoint showpt "\nSecond point: "))
) N+ f2 P' X3 R( D1 v+ C (if 2ndpt
" K9 S) x& x) d" u- j# {7 X (progn
% O, c4 H0 G/ ~0 O( ~ (setq alipt 2ndpt)3 b7 a2 {& }% _
(tempmod showpt 10 1)
* x5 R: A+ U6 Y- o, v# B$ ? (tempmod alipt 11 1)2 R5 y; ~+ j( }# _1 @6 F& ~) ^+ L! v; ?( e
(entmod elist)
8 Z5 G, u# D$ g )
* F' r5 F/ z5 z! C, n, Q" E )
. O" |* K% L: C# K2 R (setq elist (entget ename))
" G4 A: s# ~8 K) m2 \ )
4 O& c; w6 p& b' p, o (progn3 l: U( U+ {# c; M. r- I
(setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))( m) D) q6 q) _
(if showpt
$ C! O1 o# H0 e, B) V1 s* z (progn
& Z5 o& M3 b5 E* Z (if (and (= ha 0) (= va 0))5 f+ f2 m( w# t4 Q" d& @ Y' Q
(tempmod showpt 10 1)
. C$ [# v3 X* f# z- z7 { (tempmod showpt 11 1)' r% {! q9 o! | t1 o) X2 m) Q
)
( w+ Y8 W% l- q, s4 K (entmod elist)
) p7 w, i( N$ ^; b2 B )
' |; L; v; v) n# K: a: ^% ^, P+ G (setq showpt (list x1 y1 z1))' F: V( f* X3 ]' |" F9 p/ |* l
)
; z" l8 Q- N: y9 G' {* T )
s0 w+ x4 k9 l, E )- A* L, \( j& w2 C s
(ddtext)
- u0 y1 x( [: [- x" b6 x( k# E ] )
8 n" {- B7 ]" e, J9 P, | ); t2 S0 ^9 Q: e5 Q$ J3 P
)
4 M; i2 ^% n; D* I% ^8 \9 L% r, h1 d$ X% U. {: B$ t
;;( M& {' e( `4 d( e/ }3 y( q
;; Modify MTEXT
) a$ X) N& Y7 b( a ;;! k7 @( G1 a4 n, s! g
(defun modify_mtext ()
' d" v2 j! y1 z- X/ B$ I, |+ W (modify_properties)/ w0 Q$ O P+ `1 ? m1 e) O5 u* W
(setq pt1 (list x1 y1 z1))4 @6 B0 G ~4 @5 q8 H
(tempmod pt1 10 0)
( A0 O" h, B. |4 ~$ P (tempmod text 1 nil)
* ?) o0 B% ?; @$ l3 r. ] (tempmod tstyle 7 nil)8 T3 D9 D* c# g4 A- m6 K- F
(tempmod just-idx 71 nil)5 E. I0 }) h, w) f& p& V! _
(cond
& q3 F( G$ n! E/ W; P1 D( o! j ((= dir-idx 0) (setq dir-idx 1))
7 \& J6 p* U% c7 _ ((= dir-idx 1) (setq dir-idx 3))* B ~& c7 V" V, f2 ?
((= dir-idx 2) (setq dir-idx 5))1 {- g) o- u7 d2 W- B
(T (setq dir-idx 1))
1 z3 `5 t% Z) X7 ~" m: a9 R J" e )
" L- W, l& h, ]8 u$ Y5 j (tempmod dir-idx 72 nil)
6 P! p/ ?, \9 ^6 S$ _, X9 p (tempmod hght 40 nil)
* V0 ]. D) `0 c. u) B (tempmod wid 41 nil)
! R" F- @' Q1 W9 s% z! e! U (tempmod rot 50 nil)
$ S7 i% T1 H; m: s" C1 L8 P) I- a4 ~ (entmod elist)# Q5 Q1 k/ P! q; s, r8 Z1 G1 g
)* Z/ H+ F" p' s b
5 q B% }( L$ f l4 p7 \( x ;; Set MText text style: x7 V" U" n: J& ` s
(defun MText_style (index / style-list)
' B8 F$ q. ]! e1 D# w (setq style-idx (atoi index))* n$ @& S! D- D8 z0 f- a
(setq tstyle (nth style-idx slist))
# w1 S' l/ Y+ |! _ (setq style-idx (itoa style-idx))
+ a+ t0 H% H# P; c& d0 d (set_tile "style" style-idx)
3 j3 R' B' B: ], M" v (setq style-list (tblsearch "style" tstyle))
5 v& t9 p5 F8 s$ x$ ` (setq shght (cdr (assoc 40 style-list)))
1 ~3 {) e0 `* S# V, j) l9 H0 \. } (if (/= shght 0)" Q$ C/ E$ m$ w* N5 U; |+ b, o, l4 g3 ?
(progn
- T% V+ ?% e8 [# J+ l6 l. ?; B- @& L (setq hght shght)3 R* x8 M: C: U# ^: a. J+ i6 w
(set_tile "hght" (ai_rtos hght))
; b5 g' C1 }. H: K* r )
- q& b7 h/ b* u/ ~ )
2 Y, o7 W7 l" C8 j )1 c+ {$ e# x/ j
\4 L7 `; C5 a& G ;; Run DDEDIT on given entity, working around possible re-entrancy& f) N% W2 I" k4 s
;; problems with MTEXTED+ k3 |+ ?) V8 e& X6 i2 W5 h9 C
(defun safe_ddedit (ename / orgMTextEd work)2 ^7 s- B, G7 L7 k& f8 L
(setq orgMTextEd (getvar "MTEXTED"))
8 Q- z& G/ d7 A, n (setq work orgMTextEd)
7 p8 Z+ e+ N, H; C0 J' j (if (= ":" (substr work 1 1))
: I# N3 C7 Y3 t* ~ (progn+ N: l6 L$ C" W7 Q) y
(while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))* ]: i2 R% {$ {
(setq work (substr work 2))4 n! }: _" J2 r3 ^3 i1 ]4 s/ X( |" P
)2 L4 `, E9 u" N: E1 J6 @% V
(if (= "#" (substr work 1 1))
* [) V f6 J. b% }5 R, |, i (setq work (substr work 2))5 x5 Z l* Y: i0 N1 @- Y' t
); d# F6 u# U4 ^4 x7 S. p! _0 |
(setvar "MTEXTED" work)1 z+ y8 v3 I1 @2 i
)* k: }& H1 q6 v3 E/ n1 f1 q
) n0 n- p- K7 h
(verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...' O2 E. \. _7 a+ b1 n, i5 G* w
(command "_DDEDIT" ename ""), o/ o& S, T; O/ c) B- ?
(setvar "MTEXTED" orgMTextEd)
% o8 q1 p; H, p1 X )
" x% v8 h7 Y( @' T( f; P& \; X
9 o; p8 o+ P- c ;; Verify MText object width3 S1 ]: w7 p6 U7 Q4 T R ~1 r
(defun ver_MtextWidth (value)* m) @5 V8 F& M1 i L
(setq value (distof value))
" w* T: l4 N; {" |3 d( y4 L2 H (set_tile "MTextWidth" (ai_rtos value))6 ]0 x4 d" `3 K9 }
(set_tile "error" "")3 }# t% R7 j) ^0 h. y
(if (< value 0.0)
2 k/ V$ ^+ ?9 g# b (set_tile "error" "Value must be zero or positive.")4 k1 y/ C. @* w4 @
(setq wid value)% M( R4 i/ u3 f# X/ i0 K: j8 [
)% ^+ ? ^# i8 Y/ c
)
% l% j+ H$ @- T
2 | q* ^% g7 c; t9 h, R6 b' B9 t (defun ddmtext ( / gc3)
. p d- X% U4 ~$ P ;; Get dialog
0 M$ @8 u# A) R" o' r (if (not (new_dialog "ddmtext" dcl_id)) (exit))' b. ?" ?' `4 a" ?2 a( |( G
0 w: P6 D7 w8 }4 Y9 S ;; Load list boxes
& Z2 K+ u" p0 Q( T" w+ j1 S5 ^ (start_list "MTextJustify")4 a: {( s( R" `: B, }
(mapcar 'add_list '($ M$ y8 |* o9 @2 I4 \ A j* R% o
"Top Left"- A H* k5 G' A2 T5 Z" |: E
"Top Center"
! `4 D, q" a; d3 G1 r1 _ "Top Right", `% }7 |9 F" s: @4 m# R- Z# l
"Middle Left"
. v: D0 r) l U; Q "Middle Center"
# v( Y" L# d) U "Middle Right"
0 E0 Z- d. U1 s& P "Bottom Left"( ~; y# T5 b1 P3 F6 I& j1 @
"Bottom Center"7 W1 N( P7 Y; r" Q8 }& m$ t
"Bottom Right"
0 l, g9 V7 n6 X5 |5 s ), t9 I) M4 ]5 d N* m
)
* w6 Z5 Z' c/ X& ~6 x H0 I9 f (end_list)
$ L5 Y+ k& ~7 _" E0 w( n. _3 ]
2 I/ R4 b7 e- G! p (start_list "MTextDirection")
, n2 O Y$ |4 g! r( M1 _0 b/ L4 ? (mapcar 'add_list '(
7 ]7 b1 m" M/ [1 \& a "Horizontal"1 w2 B$ i6 [* c0 {3 v' q
"Vertical"
w( }* |! h4 }0 l "By Style"" h( J* H8 n9 l2 z9 n2 `, C
)8 m9 {- A! `9 [$ A& E7 K
)& w8 d0 C5 W' q) D$ J
(end_list) T6 u) ?- I) T5 l$ K! o9 Y' P1 ^
) O- P! {* I6 G' X' r4 x2 Q ;; Set initial tile values
. d" y, ~+ [, R' r0 W! U! } (set_tile_props)
$ i; ~0 v+ v% b) f (set_tile_handle)) `! z/ {, h) ?
(set_tile_pt1 0), n% F$ X* i, |8 S: | _/ \4 j* x
(set_tile_style)! W* k: N5 I! l- o
(setq just-idx (cdr (assoc 71 elist)))
/ b8 q. Q/ `- { (set_tile "MTextJustify" (itoa (1- just-idx)))
& [& z) O1 F( C8 P (setq dir-idx (cdr (assoc 72 elist))), Q) l8 ?; r: ?4 C
(cond% L+ l; B8 {: Y6 L: @
((= dir-idx 1) (setq dir-idx 0))& z# p6 |0 _; R
((= dir-idx 2) (setq dir-idx 0))
* s( ^6 ?: G! n2 O- [ ((= dir-idx 3) (setq dir-idx 1))3 E1 W! F1 }& ?, f8 ^4 A
((= dir-idx 4) (setq dir-idx 1))
( n& N+ t" c4 ?8 \1 s ((= dir-idx 5) (setq dir-idx 2))4 j( D- [3 U4 K) g6 g
(T (setq dir-idx 0))+ k$ |) C$ p+ \$ K/ q, _! n3 e
)2 H$ D4 h3 U8 e
(set_tile "MTextDirection" (itoa dir-idx))
# ]/ {$ O+ l, @1 n7 j+ m (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
! m! S* i0 F: w& p1 Q8 c& f (set_tile_hght)
5 ~5 a* w8 R: n6 R3 J (set_tile_rot)7 [" ^1 a% V+ D
; n" }, x e' _' S9 U6 Y ;; Set edit box, disable if too long7 Z( H; N# }: ~* E; N
(setq gc3 (cdr (assoc 3 elist))1 l- x+ J+ R- `1 v' a5 [: N( s
text (cdr (assoc 1 elist)))
: R2 w+ ?) ~9 q (if gc34 E% V' O+ i, f: |: {; F6 x0 p+ C3 d
(progn ;; Text is over 250 chars, disable edit tile; `0 ^! ?% R, P/ Y) L' }7 ~) P% J
(set_tile "t_string" (strcat (substr gc3 1 25) " ..."))8 H( ~; h1 e2 t4 q3 s4 T
(mode_tile "t_string" 1)
7 w# k2 S# \. u) ~' z; C )
% t1 \6 A* f& c$ `5 |6 W8 L+ a (if (> (strlen text) 80)
' ~0 D* |% l9 y6 [. q3 G3 @) ` (progn ;; Still too big* N" Y6 S/ R, g
(set_tile "t_string" (strcat (substr text 1 25) " ..."))
j( |% d+ r/ E) ?4 H9 H (mode_tile "t_string" 1); v$ {8 ~$ l2 t! g" G2 p
)
; \4 D, ^9 l/ N% y/ I (set_tile "t_string" text)
2 ?, X% {2 r: \ )- p X9 ^5 o' o/ a. I+ P0 ~' W5 Y
)0 O, @$ x6 Q7 B, k
4 J& s, \$ z" x$ t# G/ c
;; Define action for tiles
a: o) m' j0 l (set_action_tiles)" h$ \" ] f p3 A5 t4 t% z
(action_tile "style" "(MText_style $value)")8 v& Y+ R8 Q9 ^0 m D* r
(action_tile "MTextWidth" "(ver_MtextWidth $value)")
0 v8 b: { E$ j; X (action_tile "MTextEdit" "(done_dialog 4)")' n" n+ \# `0 t( b; m' T7 M
(action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")
8 ]7 s8 k7 i# z1 ?1 ~- D3 d; O (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
' n# W5 y5 v0 |% V
/ ~1 \7 d0 c" d: h W ;; Set initial focus to text edit box.
- z$ A' l- W) }* z (mode_tile "t_string" 2); y q. p2 Y' ?- X+ q' V
/ _% `# y9 f6 l A
;; Run the dialog
3 X# k' [2 d6 D8 p z1 F7 U/ _9 U (setq dialog-state (start_dialog))
% u" x' F; I7 }, a0 I+ o1 k' k, q (cond
$ h; J/ U" a2 H4 k+ r' \" y ;; Cancelled - restore saved data: G" w& C) u3 p( y' A
((= dialog-state 0) (reset))3 ]2 c7 c4 g0 I8 G8 a
;; OK - save new data
; o9 d [# ~+ O3 ~/ r ^" B ((= dialog-state 1) (modify_mtext)); E0 p: r$ ^" e0 |& E
;; Pick new insertion point
% G# M7 e4 {, o* X9 u ((= dialog-state 3)( [" R, L I: e% H- N4 d- y
(modify_mtext)
5 W* A5 Z2 W. n (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
5 X) h3 ^! A+ y7 a+ K) n" A7 | (ver_pt1 0)
5 Q+ @7 w8 l% ?+ U5 M (ddmtext)
5 V: C' l. ?* M3 |1 L6 V )& H8 v# h# ?+ b5 c* h0 ~. h3 j+ O
;; Run full editor
, ?6 E- u+ h8 _ ((= dialog-state 4): ?* y% Y P9 s, B: r* s7 Q3 s7 {
(modify_mtext)% \9 B3 D0 }( Q" f9 G3 E# Q R2 s
(safe_ddedit ename)! c& J6 N# C0 m
(setq elist (entget ename))! z0 t/ v1 }! `5 W
(ddmtext)
+ g; q; p8 X: Q! Q8 S( ^ )
1 V1 M, Q* w V3 i7 e$ [, Y (T nil)/ f4 t6 ~* {. ?7 n
)% G, Z6 F4 t0 q. d2 E7 y
)
8 y- r* o o+ r. L6 T2 C, {4 U: {' X4 i* U" H
;;5 Y, W3 p8 d. M7 n
;; Modify VIEWPORT
$ k0 S% _1 S; K! p ;;
* l, u# H6 ^! z0 {3 b
" s, _7 E. Y% L! n4 {7 [$ Y (defun ddvport ()
( k" O3 I% P- o6 s9 N( G (if (not (new_dialog "ddvport" dcl_id)) (exit))
0 f; ~3 L8 {8 q3 o. M! i- B (set_tile_props)6 ~# N0 r9 W/ l% Q5 ]2 M% b
(set_tile_handle)
* L$ ~' {6 V; l* k! |3 F (setq vpt (cdr (assoc 10 elist)))
6 U# j. y0 m8 r (set_tile "xtext" (rtos (setq x1 (car vpt)))); C& L4 ~' h( q$ ?+ ~ l
(set_tile "ytext" (rtos (setq y1 (cadr vpt))))0 A; A+ R% ?9 ]! k8 k" y! p( j
(set_tile "ztext" (rtos (setq z1 (caddr vpt))))
: I; _. m# E* r% y# T" \& d2 { (setq wid (cdr (assoc 40 elist)))) C! x6 V+ W! O. y/ Q" I
(set_tile "wid" (rtos wid))
* D$ s$ J$ X$ Q+ V (setq hght (cdr (assoc 41 elist))). }3 h m) p$ _
(set_tile "hght" (rtos hght))& g/ O8 P% v5 J/ _& v& m, S `
(setq vpid (cdr (assoc 69 elist)))
Y8 ?7 s' w! S (set_tile "vpid" (itoa vpid))
& a3 k! O- g- s& g* C' } (setq on-off (cdr (assoc 68 elist)))' m' U' ?' ~( i" U, b4 C- q- V
(cond
6 x8 Y) M& ]9 Y% V4 b2 ~ ((= on-off 0) (set_tile "on-off" "OFF")). w9 S( a5 O$ B- r4 l$ z, V
((> on-off 0) (set_tile "on-off" "ON and Active"))0 p8 D1 @( q5 L- A t
(T (set_tile "on-off" "ON and Inactive"))
1 E/ h; T3 C, C! `9 R( ? ). \5 m. ?' M! @# J% H( S% I
; U) r4 {; X" m1 Y; I7 Z
;; Define action for tiles# }# P& m# N& k: a4 s: C% }; ~. v
(set_action_tiles)2 n# a6 [/ m# f3 z4 U
, L! P& D+ E; f0 W+ }2 l
(setq dialog-state (start_dialog))
* Y3 C2 a% b1 p8 R, L1 B (if (= dialog-state 0)
/ x) |2 _. q7 m. |, Z- ` (reset)2 K4 r4 m; C1 ], _' ? G$ I
)
; N+ r8 c7 B6 O1 q' d: _ (if (= dialog-state 1), D! A" z0 m! a$ l& k m9 t
(progn
( Z( C5 W* v+ _9 m; Y( M (if (= ecolor 0) (setq ecolor "BYBLOCK"))2 o7 N+ U5 v; `$ Q! B1 |
(if (= ecolor 256) (setq ecolor "BYLAYER"))
& k0 t: ~/ d/ \" H (command "_.chprop" ename ""
* R8 C/ Y! q! E4 v "_la" elayer
( d5 U7 L3 `5 z& d0 y2 q& k& }0 A "_c" ecolor ""4 i8 s* t$ x, o9 u
)- {* J9 E% I2 N% Q
)& D2 M K" X r, R
)
. \' j( m- [ i2 o )# H p i# G' T. N3 A$ j3 a
;;
! E. F' C6 p3 `" t; J; F0 Z( N ;; Modify POLYLINE7 H+ g4 J6 }5 X
;;8 ]5 c h) {, P& r* [1 g5 b
(defun modify_polyline ()9 X1 k7 n- n; v/ S, J
(modify_properties); M1 \4 s& W/ o: s' t' K. S
(if (= ltgen "1")
( H: r. F9 a' @7 ~. j (if (/= (logand bit70 128) 128)2 J' G( K8 h# f6 H) P/ P0 p1 [! C
(setq bit70 (+ bit70 128))
' g A9 O m/ f* K; `- H# |- F6 ^/ u ): y S/ q3 }" y/ h3 y) n9 e) Z" {
)
8 C) ~2 k- Q9 Y/ G (if (= ltgen "0")/ ~' N# T5 a" S" y0 J- g. ^
(if (= (logand bit70 128) 128)2 S: g# u( i* C- E8 g
(setq bit70 (- bit70 128))
9 C. B8 A9 w% p' W2 I6 ? ); `6 B% ]) {6 Y' f) R: Q! o
)
( c- `4 _8 }+ k2 K4 q6 ^3 {1 ]; o (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
+ h. o3 T% w' |$ U/ v (entmod elist)' D& } x J" U5 }6 p
;; Added to take care of updating Vertex information for color# w) e3 t. v5 R1 r; ]- N5 Z7 G) L
;; and linetype.- G0 c- n! M7 q6 f
(setq save-ename ename save-elist elist). v; t8 u2 c) ~; Y# Z, h, _. H8 @; ]
(if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
$ r: x! M% v( T7 p4 b8 Q (progn7 Q2 ?* }3 s4 C7 R' [+ Z1 U
(emod ecolor 62)" @, m b" ^# U8 v6 _" n( i( ?5 Y! s
(emod eltype 6)/ d7 H; ^( G& \: }3 W7 y
(emod eltscale 48)4 b! Q4 _9 D3 `2 e2 U
(entmod elist)) G/ a* ~; U/ \2 F9 a( Y( d
)
& y$ h4 H7 q! B8 H8 i& ]* B (progn, S! E, ?# r3 B
(setq ename (entnext save-ename)) i$ q" ]. d, v% F. G. _+ u5 ?
(setq elist (entget ename))
$ h" Q6 U. U v+ {9 p" F. ]4 g2 p
(while (not (= (cdr (assoc 0 elist)) "SEQEND"))
7 s$ {/ B& K i$ O6 w# M& u (emod ecolor 62)4 @% q1 u1 C4 L g4 Y
(emod eltype 6)
5 @; S7 @7 P5 y8 D2 P5 M (emod eltscale 48)
9 U. Y: x3 m, r i4 H( i (entmod elist)
! f) C2 w% h3 T4 q (setq ename (entnext ename))
+ J: v& C6 N4 \) Z8 v/ n (setq elist (entget ename))
0 O, M: o: k7 ^3 K0 t )
8 W7 [' J/ J3 s9 N, P; e' b* r6 f )
. c6 u9 k5 @! {+ S+ d" D )
5 K5 C0 v1 V! L0 n6 M4 t; a ;; Update the SEQEND1 ^0 `0 B- H# K: \* Q$ h! `
(if (= (cdr (assoc 0 elist)) "SEQEND")3 R3 H3 ~$ D9 X' \) l' X m3 I- R
(progn
2 \2 B: z! L& b* _" _ (emod ecolor 62)1 B3 s2 w0 p u9 V6 ~3 g
(emod eltype 6) y8 u v" W' }( }! Z( y
(emod eltscale 48)5 r; w' t. s( {. D. T* y5 o! O/ N
(entmod elist)
9 n5 \+ t! {; P- `$ M )
! b9 i! }( G4 \' ^! f )
( P7 n' N" ^2 b% `" j0 e& c! d ;; Go back to header.
) Q0 m, @2 h6 o% c+ P (setq ename save-ename elist save-elist)6 }9 O7 s1 o* k+ c3 }* I
" ~' ]' ?9 E+ V7 k! |; B1 b (entupd ename)
5 E+ I% u3 v0 j- f )! _3 G5 Y& H. `$ h. C; w ^! J5 C
3 r/ c( R/ b; K ;; Increment vertex. Set tile values to next vertex& p$ W8 K3 i; B( s
;;
1 j1 p# O+ A" P1 J* e' M& r (defun next_vertex ()
/ U0 ?) Q) {6 @8 @0 e, | [6 R (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")+ J% g+ J5 I( Y
(progn7 v J, x! H0 r) A2 l- c4 l
;; If the counter reaches the number of vertices,
4 m* {/ G4 @7 m ;; roll it over to zero again.
/ f, ^+ d. X2 g (if (= ctr (cdr (assoc 90 vlist)))9 b8 d5 f9 P' u
(setq ctr 0)- L) E! {9 w6 ~( p; n0 t2 a
)
# W- M; L6 r: T: y! g2 X/ Z h (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
6 x: X# C6 G! Y7 U) ] (set_tile_vpt pointype)3 }6 [6 ~9 n" b7 K& o$ G, q/ H
)6 V8 r1 E% T0 P
(progn+ Z4 K* B. g0 S7 l7 H) C& Q
(setq vname (entnext vname))
5 ?3 Y. k' v9 v: c, b1 r (setq vlist (entget vname))/ \* w) K4 M) r4 ^ T$ _0 j$ k! P
(if (= (cdr (assoc 0 vlist)) "VERTEX"), s' C$ V0 x/ U! ]! F
(progn" p0 B. q, E3 V; h" I4 j
(set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))1 ^/ z% E+ ?1 i
(set_tile_vpt pointype)% |6 n8 s( j. t. v* s& ~% N
)
) q& L/ s6 c* T1 V* [ (progn# Q# D" O* o q, M7 P4 H6 \
(setq vname (entnext ename))
2 s) S7 ?/ j6 h0 W (setq vlist (entget vname))8 u3 I, y/ T2 g) @! p' i6 x2 F/ V
(set_tile_vpt pointype)+ o# l7 `& J2 X, ^( W% E* l
(set_tile "ctr" (itoa (setq ctr 1)))
" Q! V* b' o# J% u )
* Y" A8 r! `! }( I )
; u- u P$ e" x! n( \, |& [, j: v )$ o+ {) {8 F9 d+ o, G0 z) f
)
* r# Z% f S! O% u )- _" M& V1 u+ J5 w! E" h
* ?1 j# |% V* y& }2 q" f) X: r (defun ddpline (/ oldecho), T2 @$ Q5 [9 G0 b+ I+ M' j3 _
(if (not (new_dialog "ddpline" dcl_id)) (exit))
8 @( h) | I' e" T+ F" B5 c6 c (set_tile_props)
) L! o" S8 G2 r2 y" J' r4 N, n$ B (set_tile_handle)- |9 D: Y4 G' p5 F4 t6 m
(setq bit70 (cdr (assoc 70 elist)))
* O) q4 u9 f* J- M, z8 | (setq bit75 (cdr (assoc 75 elist)))" j* u3 A F9 h! K
(cond
/ x8 X& z" p S x2 J ((= (logand bit70 8) 8) ; 3DPOLY
0 A, c5 Y: {3 l# j. D9 t (set_tile "ptype" (setq pltype "3D polyline"))
5 Y: f$ i3 f1 j* s6 b4 F1 k" z (setq pointype 0) ; WCS or ECS point values- O# i) @2 t9 G) o) S$ B$ T! K
(mode_tile "fit" 1) y: ^) `) r+ K+ |) t+ \/ e
(mode_tile "mesh" 1)& u a3 j( f# ^/ j- U
(mode_tile "bezier" 1)
" w. t1 B7 t7 C7 t5 s (mode_tile "ltgen" 1)1 p0 w2 j! S* O6 ^# ]' Y; P2 x# c
(set_tile "none" "1")
2 a g% l" o% f1 U8 m (set_tile_closed)
: o" V, X+ @$ \ (set_tile_fitsmooth)
- T, h3 D) Y: y+ R* w' I )
$ H' W9 ~: T$ y8 p ((= (logand bit70 16) 16) ; 3DMESH, ?/ x5 \7 z( z6 ?1 i' G6 r
(set_tile "ptype" (setq pltype "3D mesh"))8 U1 ~' n- u6 w# z, F9 R3 q3 G' w
(setq pointype 0)
, z, x. t* O3 l8 c& y7 n (mode_tile "pline" 1)5 L7 }0 ?! Y# q2 r5 Z4 H
(mode_tile "fit" 1)( c- C- v2 `) r M1 p$ Q/ m
(mode_tile "ltgen" 1)- D; B4 H% G V
(setq m (1- (cdr (assoc 71 elist))))
- h( X% h! F3 T& A: c9 \ (setq n (1-(cdr (assoc 72 elist))))
3 F' n7 \7 x( x5 l! Q, C (setq u (1- (cdr (assoc 73 elist))))
3 D/ `5 I0 @7 h* a. C (if (< u 0) (setq u 0))! j7 S& m& Y Z5 D
(setq v (1- (cdr (assoc 74 elist))))
( c" j2 J& @# G( v7 R2 d9 @% e (if (< v 0) (setq v 0))9 u. j6 Q2 F/ ?" V/ U4 c
(set_tile "m" (itoa m))
1 }" u% [0 c' R3 ^5 w1 j (set_tile "n" (itoa n))0 @! l% V6 }; ^6 _9 L
(set_tile "u" (itoa u))0 M: S2 | m& ^' }
(set_tile "v" (itoa v))
) O: ?) T7 J {2 `3 c4 P. B( K$ m( {7 F (set_tile_closed)5 a6 J$ H8 `- r: G
(set_tile_fitsmooth)
: M% K1 S, a+ g0 n4 Q# t0 x8 W )
4 ^) s" T* \! S0 c ((= (logand bit70 64) 64) ; POLYFACE MESH; R5 D7 O. M1 y6 s% I
(set_tile "ptype" (setq pltype "Polyface mesh")), ?! F) k& w5 L; F0 ^1 L4 I- ~+ r
(setq pointype 0)
" i, G% [- Q$ X (mode_tile "f-s" 1). N$ L- g/ T4 L; i4 j
(mode_tile "mesh" 1)
! n# _4 `6 e9 R4 m% l' r4 Q (mode_tile "pline" 1)
( J. l5 f! {7 ^* W. G ): J& N* Z# S; f$ c% R O. x
(T ; 2D POLYLINE
1 H L+ y3 c1 F8 s3 W0 H" H! d: L (set_tile "ptype" (setq pltype "2D polyline"))8 ]4 c+ N7 r+ d6 @+ N
(setq pointype 1)! |2 x0 Q4 \" L' y1 P
(mode_tile "bezier" 1)7 I. I# i9 l+ Q3 C
(mode_tile "mesh" 1)
+ _# b c5 x9 z9 V C0 K6 B (if (= (logand bit70 128) 128)
1 H' i0 N& g" }7 x U (set_tile "ltgen" (setq ltgen "1"))9 F) R8 y# ?/ k
)
1 k. q- p3 x7 X. j/ G: l (set_tile_closed)8 a4 k) B- r G
(set_tile_fitsmooth)6 q! v, d! F7 q& \: D
)
+ H/ I* |' S) n I )
" h6 ~- ]9 q( D3 { [) W
8 p) i) H0 j$ }/ y- j (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
# D) B8 Y& E: A- ?3 p (progn
% [+ X1 H3 U/ i: A, z8 A (if (not next) (setq vname ename))
2 q1 m# w' U1 T3 z" K2 e( r (setq next T)- q& b- W' p" o, P8 b* P
(set_tile "ctr" (itoa (setq ctr 1)))
& m" R; m' e5 p7 F# G (setq vlist (entget ename))
5 ]& r$ `% X/ m5 q& P )* {& P4 r! o- U" |9 ^8 T
(progn' J$ R! h: ?/ }7 O# h
(if (not next) (setq vname (entnext ename)))+ ^8 D/ B4 m2 C5 W, i, `* m1 k
(setq next T)
. T. ]7 c" k' }: e6 t$ s1 k1 y (set_tile "ctr" (itoa (setq ctr 1))): ?, u0 ?* L6 Z, E4 c, r" L
(setq vlist (entget vname)) J, P# | S% C, b3 y4 ]
)/ S7 c5 K- i6 G* P- B! h
)
/ k- G# e* H4 f& R2 e( u. a8 v (set_tile_vpt pointype)9 ?/ D3 O$ T2 v/ i# d
;; Define action for tiles0 T9 Y' C" [6 w9 m+ {2 _9 \
(set_action_tiles)6 {4 n: x6 o8 p. Q' o3 _$ P8 r5 Y
(setq dialog-state (start_dialog))/ B4 J7 W- V7 ~. U5 C' |
' M+ S$ v9 {* u1 O2 l
(if (= dialog-state 0)9 O5 V" ?" ^8 @2 x
(reset)
2 A3 c) O( V: g7 ]: C b7 Y- k )3 ]. h% P! I; o
(if (= dialog-state 1)4 q) e8 X0 |' O2 L
(progn3 P- ]; S3 y& M; s& R
(modify_polyline)/ T- a- c) b! I9 U/ m
(if (or (= pltype "2D polyline")
) K3 U7 T% B$ X1 G# c (= pltype "3D polyline")9 q0 L# y8 R% K8 w3 W
)
: ?5 v9 T, S% |$ |3 e* _- X! I; m (progn7 A* B0 o0 O7 t* f
(command "_.pedit" ename); R9 Y- P# ]) t% Q
(if (= spltype 0) (command "_d"))3 i0 j1 r6 j! S& m
(if (= spltype 1) (command "_f"))( L+ _! y) g, `7 h- }+ ^
(if (or (= spltype 5)
7 I2 I0 D+ C4 t s% z8 q (= spltype 6)5 Z3 o: F9 ~8 c1 g1 [# y7 e
)8 F% ^. u! E" P) Z
(progn
8 c K3 b8 e8 q6 S" f (setvar "splinetype" spltype)) l7 }" T# z& b# x; F
(command "_s")
+ q7 x4 E9 I0 ?& } )
$ |, e; N3 Q+ _! F: a )& I }" E v3 ?) z
(if (= closed "0")) l# N3 P" v. G3 n o7 J
(command "_o")
( G- O- @" [8 C J) E (command "_c")
8 J4 Q5 S7 Z' F )
6 k/ ^0 h7 [% d. Z) r! q (command "")
{( h+ G4 s' r. A' x+ `8 @$ l2 E3 o8 U0 T! J: Y3 D& w$ ^
(if (= spltype 0)
. N3 h& [$ ] a) g' v- L (progn
4 L, T4 d4 v x9 \; B6 G7 K0 \ I (setq oldecho (getvar "cmdecho"))$ Y1 W+ d( K2 | q' W+ S% A& o
(command "_cmdecho" 0) f! g6 b4 _8 J1 a: D, A# }
(command "_convertpoly" "_light" ename "")
" i9 ~6 ?9 ^. G$ H$ I8 m (command "_cmdecho" oldecho)) I+ C& E0 q8 n! l9 x
)
R+ q8 Q$ q h )# u" g$ `+ _' E0 l5 u
)
: N; v' |/ Q% \2 U; y/ ? )
% s0 X; ~' e9 I3 Q/ X- ~8 A (if (= pltype "3D mesh")9 K1 w" M2 Q8 h6 K2 [' @: y
(progn
6 ~; C( p" {, Q% B (command "_.pedit" ename); q5 i$ Y/ x) Q# L" M9 a
(if (= spltype 0) (command "_d"))- i+ U8 E& d K" T2 W% R0 v
(if (or (= spltype 5)% @# C( ?, F: [) }0 o' v
(= spltype 6) A% z/ m$ f' Q( T
(= spltype 8)
5 n- P1 Q0 z. T2 W8 J )
; S K& `7 O! e; `, S (progn
G. r' E. Y$ u4 Q3 A (setvar "surftype" spltype)( B6 o. e2 }2 a8 B8 o) \/ j) R( T9 F
(setvar "surfu" u)- s- ?+ U% s) s# ^- ~4 R2 E. g
(setvar "surfv" v)
: g7 ~9 _0 b( k; L' o; W (command "_s")
8 y/ Q; {6 j6 m( n2 Q' g: x )* T e3 X+ Y- B8 r
)
+ m7 v' C' |8 B' v$ u5 h& ^) n (if (/= closedm old-closedm)
# J- k3 }: Y2 V! `( z8 X (command "_m") s( W( d, I8 A' M3 }
)- k$ O- ]* x; K" b6 r' z1 v) A
(if (/= closedn old-closedn)
# f6 I' w( ~2 |! U+ L1 \' Q! D (command "_n")
" h; A# v5 u) J, j- g )
) h* C, g- d( O# p (command ""). x4 D( `% O9 {, y# `( G
)+ {, O. g% D5 T% C; }
)
) Q& P" E0 J5 f" Z6 U( g+ [ )
_) u$ [/ b( N8 T5 E )- v' v, }6 L3 [! u- }" P; |; N
)$ v/ A7 ~6 p+ K
;;
6 E% ]5 G+ n! j. W! b0 S ;; All the spline data is contained in a single elist. We must do some' t! Q7 `. s( ?8 M2 J
;; tricky list processing to loop through the elist in order to display
, R ] u J% w5 p8 _ ;; all of the control points.
* d5 _# Q. s; d; X4 c: X, }; T ;;
- \( t" v$ | v' G4 x; @ ;; The structure of the elist is different for rational and non-rational% ^: o c3 z! Y* W& H* _9 l1 c
;; splines. Therefore, we check the rational spline flag.7 c9 H, d% W1 x) Z: w: A7 ]0 |
;;
5 W0 M9 P" I6 t (defun next_cntl_pt ()
& w2 m5 j4 h& y: i) N! M (setq elem-no 0) ;; elem-no = element counter
9 T j2 V) K5 I/ s( B (if (= first-10-time 1) ;; If first time, find location of first. [. R$ i# P" d: s' l) C2 c! M
(foreach list_item elist ;; cntl point element in elist
2 E2 y) j' i8 M" g# S r" G (progn
2 A- b1 ~1 a5 m# p (setq elem-no (+ 1 elem-no))
" V3 g+ @/ M' g (if (= (car list_item) 10)
. M% J. D( H% x/ @$ S O& q9 Q. r (progn
4 G! z4 q/ I$ J* V, I3 P! V (if (= first-10-time 1)
2 L! R& I) X- V: ?* Y, K: E; T2 C% s (progn# L% C6 o a- D4 J# l
(setq first-10-rec (- elem-no 1))
" E5 _$ W" {) q& I! F( p# i (setq first-10-time 0). [, o1 h/ G2 T7 B, V( D8 P. `8 e! f
(if (= rational_spl_flag 1) ;; if rational/ V' J9 M+ _* z( ^
(setq cur-10-rec (+ elem-no 1)); N% @2 y% m2 z8 Z
(setq cur-10-rec elem-no)
- c- ]2 P( h7 V& ]( p ): X- D' C8 V9 c9 N, R7 ^7 t- C3 x# d
)+ L- t5 x P' S( {5 N2 h$ E
)
c7 {3 d( E1 z2 b2 d# U4 c )$ ^/ h) n( h6 f2 G
)0 v, X1 t+ F/ q4 S1 B
)
n1 J; j+ {# ] )
9 {9 @1 b3 i9 E6 R0 ] )5 l& n+ m+ Z0 S% S
;; Now we know the location of the first "10" record; it's stored
+ X# \( Z+ t' F8 {( j ;; in first-10-rec. The first 10 record was already displayed when, M9 y7 x2 ]7 N: T+ p
;; the dialog first came up so let's display the second one when
0 O/ M( r, L& n( S& ^/ Q ;; the user presses the "next" button (the first time through).2 b; H; d; L3 O! q4 `+ l6 I
;;) U+ e7 g% V. F
(setq temprec (nth cur-10-rec elist))9 q! m& J( L4 S* h
;;2 N- |$ ^. _% o4 Q8 f6 \2 \
(if (= (car temprec) 10) ;; if 10 record; |1 Q2 F- a6 I7 N1 E' Q+ g
(progn
$ c8 I; b5 Y" r4 v (if (= rational_spl_flag 1) ;; if rational spline
& y2 K4 o0 ?' { (progn
( v6 ]. m4 p3 d& {+ E& N (setq tempweight (nth (+ cur-10-rec 1) elist))0 _. ]+ ^8 L# k6 I
(setq cur-10-rec (+ 2 cur-10-rec))
" z" h) p' {3 g* r9 b )
3 f e" l& e) q, B# j5 K# w' f (progn ;; else
/ U% I* \( @; d2 K (setq cur-10-rec (+ 1 cur-10-rec))# i8 M8 r6 H1 }, t
), E" R" d4 a) I+ L! B3 Q: Z
)
" l7 s7 d/ t' D0 V4 q( B ) ;; end if rational spline
0 y( M3 j: r8 m2 S4 ~5 e, k/ I( x (progn ;; else reset counters8 ?# W+ a! k4 ~( ?7 }" ?
(setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec! { B: f0 P1 j. o( i' D
(setq tempweight (nth (+ first-10-rec 1) elist)), T! S% C- E% I, k( J' {, q
(setq cntl-pt-indicator 0)
( m! G0 f2 ~6 q# g! [' q (if (= rational_spl_flag 1) ;; if rational
+ f, Q8 F. E6 M7 B4 j (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
7 ~, t2 y; o r' u- } (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
1 B: H1 r; {2 p$ n )6 [5 e* P+ v4 z1 C% X
)
' Y% X" I0 F8 |6 E" u7 ~: \ ) ;; end if 10 record5 T, H1 S4 z- z k1 g1 E$ g
+ p. d3 u2 y4 C ^4 Z* o1 @ ;; Display cntl point, weight and ctr. Increment ctr.5 i2 a. K! O$ H0 I; Y" \
(setq cntl-pt (cdr temprec))
+ W# C% l* s! s4 F0 h6 J# ^9 a" K (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
; k2 Q {4 m. Z3 v' N& x/ O (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt)))): K5 k8 ?: o5 \1 _
(set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))( G, _; O4 Z+ k* v- Q0 f
(setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
: l( G/ E! w+ U W: _" d. s0 e (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
, J9 m3 z2 _* N. z) i1 y5 \ (if (= rational_spl_flag 1) ;; if rational
c7 v% S, r P (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
( n- L0 I& Q" v! } (mode_tile "weight_text" 1) ;; disable wght# Y$ o) h9 N* U% R9 g% l* g
)" o7 i4 p( w% p, Q
)
+ @4 w) Y! D# d, y ;; W9 k: X- j! G1 Z* q
;; All the spline info is contained in a single elist. We must do some7 b3 X- r! j7 D
;; tricky list processing to loop through the elist in order to display
0 Q& {; n. r) e8 T& h ;; all of the user data points.% K; u6 W: i* z% X& R3 c! M
;;2 ~& s; {) J8 k1 X, M
(defun next_data_pt ()
: @+ j. E6 u6 Z9 e; c7 g (setq elem-no 0) ;; elem-no = element counter
! g+ u/ S1 ?' C (if (= first-11-time 1) ;; If first time, find location of first
7 r$ Q& g+ v" r; T8 P' [, [, Z (foreach list_item elist ;; data point element in elist0 f3 W2 k& w0 D8 G. p; n
(progn7 B. { @ I: W
(setq elem-no (+ 1 elem-no)); p, R/ ?8 x# |) q
(if (= (car list_item) 11)
+ H- y7 F' \7 L) H+ R( Y (progn
( i7 `6 Q5 C: ]5 u: l (if (= first-11-time 1)# C. W3 Q( q6 j3 f6 {
(progn9 s7 S* i' E+ k( f* h/ q: y
(setq first-11-rec (- elem-no 1))
5 b6 t5 A6 H/ ~# q9 y5 g" D! v (setq cur-11-rec elem-no)! T/ V3 x6 b4 _; O F& V+ [! {
(setq first-11-time 0)' E7 C- k- \" h. F3 g, v5 o
)
4 v1 n3 ]! W9 P) _ )# p- d5 U+ g ?+ a
)
) A$ J( g: ? `/ U, ^ )5 `6 _0 D9 L' I J
)
7 F) |$ W) g! B )3 d( E. Z5 a8 o( j& A3 g. R& w
)# k- r* B! i. ]9 Z# P% I6 V& w
(setq temprec (nth cur-11-rec elist))
" N5 J0 H# g: [% o ;; If it's not a DXF "11" element then we've gone past the last1 j" w+ }; T, o1 d: p' H/ Y
;; "11" element. Go back to first "11" element. Reset counters.! T) o; ^5 u- G5 ~" _
(if (= (car temprec) 11): w4 o: c9 ^ ^$ Z
(setq data-pt (cdr temprec))
3 a* E8 j: O7 Q( C& h (progn ;; else$ c/ v1 O# ]4 T3 y/ a) `8 _
(setq data-pt (cdr (nth first-11-rec elist)))2 u0 P3 C& G# U' |1 ^8 c
(setq cur-11-rec first-11-rec)" q: ?% |: m$ d" [$ ]" F1 \6 d: h
(setq data-pt-indicator 0)9 m5 N8 m' b/ |- p# q7 H: w
)7 S! b$ C! ~. h) J
)
1 C# c% H% f4 D/ y E% M ;; Display data point and ctr. Increment counters.) U! r, L! y2 p7 p
(set_tile "dxtext" (rtos (setq x1 (car data-pt))))( k" e/ ^. \) o, G
(set_tile "dytext" (rtos (setq y1 (cadr data-pt))))( s8 H/ U `& f6 j4 e6 I& g9 {
(set_tile "dztext" (rtos (setq z1 (caddr data-pt)))). [ c5 O0 k4 k# ^6 u, j
(setq data-pt-indicator (+ 1 data-pt-indicator))
4 q/ }" ~( t* O% I8 I9 ^9 I( x( } (set_tile "data_ctr" (itoa data-pt-indicator))
& F0 e; ?# p0 Q4 ^2 x/ K# O (setq cur-11-rec (+ 1 cur-11-rec))
. C, Z8 [5 K& s) a! `! ~9 G3 D )
' L/ I$ ] G0 F ?9 [, W ;;
5 Z& v1 ~' W7 n8 T0 e, a. h( T ;; Modify SPLINE% Q" R0 I$ |$ i3 k1 ?' Y
;;
! \: H( E' f7 Q! t2 y- y (defun modify_spline ()9 ^3 b% ?8 V% |
(modify_prop_geom)& P1 G2 e9 G! u4 b* E5 c z
(entmod elist)# y) c2 ~0 ?; G8 X1 N
)
0 s* m" e( }2 r3 U8 l
' H8 G/ S: G5 O- | (defun ddspline ()
- M& \# i5 d- s, | (if (not (new_dialog "ddspline" dcl_id)) (exit))
3 R, Q5 y% f# ^6 l/ ]; d h9 g (set_tile_props)
^+ m( q' ^" K/ t4 N (set_tile_handle)
+ b. F1 Y# f2 W3 L+ o; W w8 H (set_tile_spline_props)& `/ K3 h' z" W6 \
;; Display first control point
( v8 ~/ R- d% {. R3 M& u: ^& \! ~; C (set_tile_cntl_pt)
0 s' U, ?6 p* b0 s/ R# I ;; Display first data point* w0 n: x/ R9 |! e
(set_tile_data_pt)4 p$ M8 \& q, p- l; B9 ?
+ ^) N- j: P: d/ R, E& Q0 B& S ;; Initialize flags to indicate first time through the dialog.- v* x# O2 {. u( W" S( ^5 _' G
;; For control points and user data points the "next" buttons
6 D6 c9 D3 [6 I# y ;; in the dialog call the appropriate functions.3 _9 I) S& U9 g
(setq first-10-time 1). T& e; K& o9 F5 S
(setq first-11-time 1)* y. w' T3 I2 s* W/ s) p' F
;; initialize control point number counter
- X- ]& k3 T o' D3 s" m (setq cntl-pt-indicator 1)
; R" f0 P' m2 x: u2 [2 L. K (setq data-pt-indicator 1)7 R+ B& X3 m* q) `# C& o
(set_tile "cntl_ctr" (itoa cntl-pt-indicator))6 M) j8 d' a7 R% f7 I) b3 t
(set_tile "data_ctr" (itoa data-pt-indicator))
3 p$ n( l2 x7 d& G+ A1 j+ V (set_action_tiles)
4 ?! r0 |8 ?1 c7 @* H (setq dialog-state (start_dialog))7 ~9 u, ] C1 b; a8 T! r$ [
+ \$ ~1 h5 ~6 T9 W, ^- B (if (= dialog-state 0)
; _9 r, z) N1 r (reset)
9 q+ z) W& V7 {# a# C* c. N )4 X! {7 ^. E- n" ~; _4 m! x
(if (= dialog-state 1)5 k, D6 e& b+ q6 c$ v: h
(modify_spline), B, H6 p7 {1 D5 I% o% f1 k8 [* [
), G8 ]$ N" B2 y0 B$ e) L
)! O5 A: K3 @0 z& A
! l4 K* d, V. M a/ {/ ]
6 y3 ~0 C# D% i- L
1 n6 G \+ k6 Q% t4 O ;;
7 y) v$ s! R% J; b7 h1 H ;; Modify DIMENSION
# }" g; S2 `' \) {9 \& X N ;;1 _0 {) u: x! l) C. M9 l1 i) s2 M
(defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
9 @" s, V: ~$ Z0 k/ \ dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
: s0 T9 s5 ]- R( @ dimtype dimsvcurset)3 t: ?+ r5 C7 z9 w9 w% \
(setq dimtype "DDIMEN"
/ U7 T( X" q! @ dimsvcurset (ddimen_dimsty_restore)' T5 b/ B8 e4 |, c, B: {& R4 {
)
# L, J9 h/ V0 Q8 n1 J" } (if (not (new_dialog "ddimen" dcl_id)) (exit))
6 e% n8 A% w, L7 H2 c (set_tile_props) v" B; q2 B" w
(set_dimen_props)$ x' a% `$ _6 H/ J! E) h3 J( F2 ?
(setq dimtext (cdr (assoc 1 elist)))* A: D; Z9 @5 J2 i5 V
(set_tile "t_string" (if (= "" dimtext) "<>" dimtext))
0 H, s4 u6 g" Q S8 }* ^' G (set_tile_handle)+ ], D! `1 o& x
;; Define action for tiles5 @$ b4 |# E3 |8 @& V$ @2 a
(set_action_tiles); `& s/ i; I- d7 u
}! U6 k1 T, q
;; Set initial focus to text edit box.( p5 y+ F: h2 B" S" ^4 y& U
(mode_tile "t_string" 2)
& m7 A) K) g# p' ?
# S4 v7 N" z4 P0 ` H (setq dialog-state (start_dialog))8 r$ a( ^" E0 {/ J) Y
(if (= dialog-state 0)6 |1 r2 S7 d G2 w
(if (= ddimmt 1)
3 H" c: w: R/ } Z$ A$ u2 H8 F (reset)
8 B2 j. \4 U+ B3 \- P )% C, e* [7 |: W {6 I3 q3 C& L
)1 [, z* q4 Y# \! G8 I2 X0 q
(if (= dialog-state 1)
% d f1 `; g; x, H5 ] (progn( E. I: B& E/ d( r9 a
(if (/= dimsty stname)
# Z& A0 W1 N' e (progn
# d T$ U& e3 G& Z ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case# w* T m8 U3 c
; doesn't have it.
/ Q' v L3 t6 i( `* h (if (null (assoc 3 elist))
. K' w, |0 Q: E( x0 }+ N (setq elist (append elist (list (cons 3 dimsty))))
3 l# ^( H/ y$ c h: y- N: ] ; else just replace it.
/ d; h; v' F7 c) p6 w (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
- ]' q6 g" F7 N5 ^" i& t )
# U# a8 x' {, @) t, t4 u ; refresh sv_dvlist with new dimstyle.
# d# |9 Q2 i( n& E8 N4 f: { (setq sv_dvlist (tblsearch "dimstyle" dimsty))$ K$ D6 S; s8 I3 ^% K
): E8 s- a" b5 L
)
" S- ]' \, u( s4 n: Q" T (if (not (null dimlist)) ; attempted to change dimvars1 i5 O: M" E4 t& y3 X8 X4 @# e) j
(ddimen_complist sv_dvlist dimlist dimtbl)
$ ^& |5 P! _" [2 d' P" Y* ~ )2 O' }) F5 Q/ t. M; ~
; Modify dimension text" a( C" Q3 i Q4 D$ e
(if (/= dimtext text)+ U- W8 G# y( v/ ^3 _
(progn. ~3 m; t( v- i! z) V
(setq dimtext (if (= text "<>") "" text))( {+ P# @+ \# L' a4 S, u; f( ~
(setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
/ O# L! |# N# J/ g4 a8 [ ); O9 V# {8 t4 [$ ~% S x- {
)3 U- r8 C+ ^8 R5 c; F
(modify_properties)5 j+ q8 i$ n( v* g! f& H9 S5 Q
(entmod elist)( ^3 l6 k8 l* {% V
)
4 n# `0 U* ?- L; w )5 K# b! ^- N8 ^1 W" u/ U0 ]9 r
(if (= dialog-state 4)* x% W; b0 G& L
(progn7 u; U! ~+ K& w% i; ]/ [; I9 |
(setq ddimmt 1)' D( |1 P# N; {/ d1 P
(if (/= dimsty stname)4 X: v" p) d/ A
(progn
7 p$ b/ \1 R$ f! T+ I ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case% y- G( A: [- Y0 N4 T, z& G7 w) q( i
; doesn't have it.
/ ~0 l; f4 W" t- A: B (if (null (assoc 3 elist))8 l* @5 U! ?2 C- p( ^/ e
(setq elist (append elist (list (cons 3 dimsty))))
; h+ X5 @8 H0 y6 H9 f ; else just replace it.) a8 g/ A$ I4 P \0 X4 o1 o
(setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))$ z1 j. r: K4 ^* f
) G7 N8 L3 m2 Y& T, |- e0 g) j6 _
; refresh sv_dvlist with new dimstyle.
7 Q: R0 a8 l. h6 e+ t (setq sv_dvlist (tblsearch "dimstyle" dimsty))1 B) w( z2 s0 g2 f C6 U
)
7 D' D* t x3 i: o2 ]+ |% B! _, l )
: Q" S8 z! V8 s$ M) ^) F (if (not (null dimlist)) ; attempted to change dimvars
, b; |% [4 V" V% m0 T) B (ddimen_complist sv_dvlist dimlist dimtbl)3 B5 K+ ]# o; t' Y) B' Z
)7 `8 E# d7 {. a4 ?$ R
; Modify dimension text9 p+ ?. C$ \' [
(if (/= dimtext text)
: M0 v1 X! M/ g0 z' c (progn
! K: v0 e' _1 F2 @. V& z (setq dimtext (if (= text "<>") "" text)): N' n; r0 K! F! V: {" m5 U" C3 w
(setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist)), ?8 n9 y2 z5 V2 W/ u+ o+ a
)' w, N, {7 b, U, h2 E4 x/ J r8 v
)
" A. b! r+ N4 Q (modify_properties)
2 q; ^# X; F6 j; Y (entmod elist), F- {6 [; n$ o% [3 M
(safe_ddedit ename)2 h: Z) P& G! B" R. H+ i
(setq elist (entget ename))
; Q7 Z# N; }, \7 ]# D5 `$ _ (ddimen)
$ t. y0 J f% O: H )
0 |/ g5 D: _" p! Q l )
3 o; Q/ F h1 q (ddimen_setvars dimsvcurset) ; Prepare to exit8 `+ U5 {2 P# w5 b( y# T
)0 c9 C, }" ` }) ?2 @- w
6 O# k6 T6 G/ D
;;
& u$ j0 r: k& r ;; Modify TOLERANCE
6 o4 }! D) u, _ [ ;;
u8 P5 k* Z8 ^/ _0 \ (defun ddtolerance (/ a stname n dimtbl4 e7 @3 C5 t( u/ B& c1 I, W3 N) \
dimsty dimlist dimovr sv_dvlist stlist dimtype. C# b( r1 q; ^2 {' t
dimsvcurset)/ u8 ~6 J9 U) x
(setq dimtype "DDTOLERANCE"
; w ?9 ~1 f* G9 j. |$ r) o; \ dimsvcurset (ddimen_dimsty_restore)
4 ~, u# `0 O; ^' V) F )# @+ u; B- d6 ?: c& Y
(if (not (new_dialog "ddtolerance" dcl_id)) (exit))# G. d: U i* w! G* f
(set_tile_props)
- Y, v; \: F+ g9 J Z2 T (set_dimen_props)% y7 H* ]0 m, ~6 H" R8 i
(set_tile_handle)* d. i, M3 _4 ?: V1 c$ b9 j, R
(set_action_tiles)3 z) o) o5 ]& s1 S+ c9 z
(setq dialog-state (start_dialog))5 S; m0 w" F. C. B2 y, e( u9 [
(if (= dialog-state 0)+ Z' n' x0 }- G9 W, h
(if (= ddimmt 1)& O& \4 p) y) \1 A9 B& i T
(reset)
" v! E8 B5 b9 L )
% U/ `; F% J+ f )
% [; w# V* d! [& P (if (= dialog-state 1)4 ^8 i/ {$ ]1 x! e5 g
(progn
. \/ f W# ^, @" B& F (if (/= dimsty stname)& J$ h& N: K7 H) a$ Q
(progn5 |8 [# j6 r: O, b. s6 z2 J3 a
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case9 d4 P0 J% a0 m4 z
; doesn't have it.8 k L0 a# J/ `- u8 T
(if (null (assoc 3 elist)); ]2 u3 X( S/ |& |. \
(setq elist (append elist (list (cons 3 dimsty))))
6 Y3 L# T, X* I" Z& B! ~ ; else just replace it.
; s) O2 v' @8 Z7 `% j) Y! v5 v4 ^$ c (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
$ `- d3 A# d9 p2 g2 f9 X% X# J3 E; z )/ ^) z% w. L Q
; refresh sv_dvlist with new dimstyle.; `7 ?" |- \' m, y
(setq sv_dvlist (tblsearch "dimstyle" dimsty))
, ? H( m! G6 f- a* l- O )
0 B" l) K4 f ]) ^# P' ~& Q )$ _4 r0 c' }7 v7 }9 x9 f$ o
(if (not (null dimlist)) ; attempted to change dimvars! A4 G4 Z! t. C2 }( J
(ddimen_complist sv_dvlist dimlist dimtbl)6 R5 p5 B9 ~( P/ J1 @7 r' Q
)4 ?7 l8 ~1 i8 [8 D% }8 l/ P
(modify_prop_geom)
2 O [ p$ A) @ o1 y+ u( D1 n g (entmod elist)
$ r/ M( t l2 s% D& O- h5 ?8 Z )
1 u# X0 ~; E% C J: R5 Y )
" X0 F: r3 U5 Z: t (if (= dialog-state 4)3 ^3 @* {4 V# B6 x1 H; U
(progn
. ^8 ?* M1 z# c( O2 G; J8 b8 y* I (setq ddimmt 1)
) y* u* @4 B! V+ v+ f (if (/= dimsty stname). ^+ [: s6 y* q% T% x
(progn
2 `8 p6 o: V# {4 d- e ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
5 K8 @" X! W* {; [. x0 k1 A ; doesn't have it.
; {$ z: Q: U& c& w% ` (if (null (assoc 3 elist))
; S0 w, S' W! B p2 K! y: B% I (setq elist (append elist (list (cons 3 dimsty))))
, \- G, r7 e: R. }& l$ J7 C, G ; else just replace it.7 @2 C/ S$ \ n" ~' Q1 T
(setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
V4 C2 k3 F9 w9 f1 U5 G )& S7 v8 e# E7 d2 e. ~4 X6 G) A
; refresh sv_dvlist with new dimstyle.
) F% ^: }5 t' `- d (setq sv_dvlist (tblsearch "dimstyle" dimsty))- S0 s0 n1 t# D* p% H& N i
)
1 M }, R/ C, b) V )
- n9 q5 q+ o2 k& \) e! N, w" \+ P (if (not (null dimlist)) ; attempted to change dimvars4 L7 {; s1 b+ R0 b8 ?8 o3 k
(ddimen_complist sv_dvlist dimlist dimtbl)
( V3 R4 {* _9 @: { )+ \, |# D, t4 _! N
(modify_properties)3 D* j& y( \- U( p
(entmod elist)
( Q1 ~. J0 V- v3 _* _8 t. O: F- L (safe_ddedit ename)) g' J* L3 G7 K/ Y6 S
(setq elist (entget ename))( e& p7 J/ r7 G8 L7 B
(ddtolerance)- I' O9 x O: {
)
' v& i: u2 ` I0 u, m( b )
' l7 S* W; U6 s1 o& ~ (ddimen_setvars dimsvcurset) ; Prepare to exit
3 z* Q X# B0 s. Z, G' T& n): }* q9 M4 Q9 H
2 Q1 |6 {4 }4 \& [. a- I4 o ;;! _( ?( F c' j M |8 ~4 `1 P6 ?
;; ddimen_dlg - jump to ADS ddim module( j. v/ c/ m( O6 c8 E) N0 _
;;& e% A d) R9 `4 k
' U& e% G. O+ a0 }4 P7 m- Y (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)- A, k( T5 ?6 H* a- D; S- F
' ?. n8 j( E8 }, [
; Jump to DDIM with overrides if any." {. e+ |" N! B K0 a
(cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
# l" o! g3 P, M- @2 { ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
2 @- l0 l" y7 L7 D- s ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
+ o+ y: h: m$ v9 E )
* W1 m ^! x* Y! L4 U' J" q; r )3 T) k# u4 P3 ^' V9 u
& h5 L% u+ @* M( n, P A
;;
{$ @* \$ e7 F8 |% ~% { ;; Dimension variables updated are stored as overrides.9 @2 o" r9 t+ O; `) y+ g/ J
;;
8 V \9 K( c8 [9 e! c- N! ^
! g7 c, G8 `, f1 T9 q7 I (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar+ Z' z" V: A9 G( |
dv dime commandIssued)
& ]9 j0 u! g4 A- |: q9 m ?% H$ _3 \# ~& N
; Here we skip the following first three items:
! X- o5 l0 a t+ Q! e4 v ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
5 i! m+ w4 N; h+ [* K ;
; T# ~ Z5 j/ m! ?$ s ; The list comparison immediately begins with dimvar. p5 o, k5 U( p+ M" b
;; O* v: a. z) A
; dimolist - original states of dimvars3 A& _& f2 R6 A/ b3 N1 G
; dimnlist - new dimvar list which is of the resbuf's3 {% r$ m9 m( Y: b- M6 }* o
; dime - entity name for the dimension
/ z/ k2 ^. i6 P: v, W3 R E ; odvar - value of dimvar for the dimolist3 x, R# j0 i+ [6 b8 H' C: d: O
; ndvar - value of dimvar for the dimnlist
/ L: x( X1 q+ {# z6 b" c( x: {) M1 i7 W* H2 l+ g5 N% v! D' Y
(setq i 3
Z% _$ p% n3 q" \8 r dime (cdr (assoc -1 elist))
: z1 {' T* ?$ r, {8 k$ u; }, [$ b )
- `/ F8 k% T: T3 E: L (while (setq odvar (cdr (nth i dimolist)))1 P p3 b! S* M3 ]$ O# ^
(progn$ W4 L6 c. ?# k1 ^6 S
(setq ndvar (cdr (nth i dimnlist)))
( ~) O& f+ G5 @2 B0 P" e (setq dv (nth i dimtbl))1 M9 S" D, ^: @. ~; T
(if (eq dv "dimtxsty")4 Y1 k1 ^6 ]3 H1 {) r
(setq odvar (cdr (assoc 2 (entget odvar)))+ I& T% V8 T+ Y/ A4 I
ndvar (cdr (assoc 2 (entget ndvar)))5 F$ }0 F6 e6 ~% o3 P/ `! A
)
1 B; W% W0 [- V" T% N& `9 u! E7 [ )
0 N- a' L, R- H( {3 P9 V3 Z
% Q( l6 |0 h) o3 e. y8 F2 s3 F6 i3 i ;5 X6 A! K7 I& _( P/ X2 e
; In order for DIMOVERRRIDE to operate correctly with string* }3 r8 J% l0 ^
; based dimvars, we must pass "." versus NULL strings.1 i! z$ X, y8 |0 i: O J
; In this case ndvar is the new dimvar value the user wishes( Q2 X) h' o" `! x& C. n: v4 B
; to update on selected dimensions., [9 j0 W" O$ x6 O6 ?4 V3 Z( E. H# h
;
) I6 [! @, H/ e+ q0 H, Q+ G (if (/= ndvar odvar)% |/ M, U* K- @% H g. i8 R
(if (= 'STR (type ndvar))% s9 s% Z( n! J
(if (= ndvar ""): S& [6 O- o# x4 c
(setq ndvar ".")))); @0 c& i6 V/ t$ N, V1 z
* z/ K; ?% n/ z# ] t
(if (/= ndvar odvar); w5 y9 n3 d! n" @
(progn' |( e5 Q7 F x2 v! R( H; J) N
(setq dv (strcat "_" dv))
( \4 K7 m: o S) t' X5 F ;1 E* e+ ^ `7 n: m% U
; Start the dimoverride command* ~+ v* a( |$ f0 D4 F$ }/ }
;
8 j" w$ S; C: v+ p (if (not commandIssued)
4 P. o7 Y7 q1 j1 y# J (progn; |: c7 |6 k1 R
(command "_.dimoverride")4 j M B2 _7 i2 u0 a
(setq commandIssued "T")
7 a$ F+ ?8 q7 i9 H( t )% ~7 [7 G+ \( ?' W0 }4 A
)$ B! g9 R6 Y* @
;6 x. i1 R% ^0 {/ Y
; Issue dim overrides
5 |1 B& Z+ C; N# C$ v4 j ;
9 m6 k5 H; p" u: g2 `% F( K4 Z (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre")); D1 a, ]# e0 w- D
(or (= ndvar 0) (= ndvar 256))
2 R9 l$ y( u# M5 E6 v7 ~* a7 O )
[ d" I9 a; K% E; k4 x4 Z (progn3 C/ ~' H R! h
(if (= 0 ndvar) (command dv "BYBLOCK"))7 ?& Y) D1 S& F. q
(if (= 256 ndvar) (command dv "BYLAYER"))" z' q7 U: c9 H" N7 l
)
+ v; Z. E7 K: I+ e* V4 K6 `: S$ \3 C3 j (command dv ndvar). N0 }5 c4 u$ n) e/ v
)
3 s0 S% W( |6 z0 i9 A ): P1 i$ s7 H- t( N
)
3 c2 p4 W0 K( b$ J2 p3 O (setq i (1+ i)): U' Q6 P! D* M8 C' t# q
)
1 A+ G3 D7 A" z! B; L ); }6 B7 i; _1 ?! p
;
0 A' ^+ z# x9 k& h( u/ ~6 } ; Select Entity and terminate command' W$ A; l# h4 {0 e; Y/ D0 {9 K
;
, _$ _; U6 N! G& \ (if commandIssued
: L7 T4 t0 {1 p2 s$ M, K (command "" dime "")
/ c3 N7 S$ B9 R2 n6 I )
. H0 A5 y4 h+ _- z$ a2 N3 z4 X )
; a! M: U7 x9 A% |* ~1 K. w2 f: e% i. L
;;
% W7 F5 i3 S) Y: k# t+ G9 y2 f ;; Get style name currently selected style name.
( G2 ~: s6 ^9 y: J ;;
- }* V6 H, Y ` m' W7 d1 X3 n! L0 u
(defun ddimen_style (/ dimsty)- j3 s' _/ c; G1 a" v1 k
(setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
% y* F3 e' U* ^6 e: ~2 z/ e+ Y dimlist (ddimen_getdimvars dimsty)
' O! x/ L G* U )# e3 ? ]( L8 t# W/ M- F: a3 L
dimsty/ d2 H% d/ m. M& R9 }
)- z7 U% Z6 u8 z1 a9 h6 k
4 j+ T8 s& h3 k) Q4 I ;;+ y1 m, h0 b: Y q, q4 J: n) f% Z) k
;; Set dimvars# p6 A+ o g# K: ]& C
;;) C7 ]9 p9 I1 Z7 G4 g& r( J
(defun ddimen_setvars (dimsvcurset / dv i)# Z" E: y6 v: q0 H% [5 D9 e1 M* X8 j
(setq dv (cdr (nth 1 dimsvcurset)))
- w6 }3 ^1 m$ @6 L7 [ (command "_.dimstyle" "" dv)0 Z0 W$ ? {7 c7 ]
(setq i 3)1 q* X% a3 u+ |! _
(while (setq dv (nth i dimsvcurset))2 B: V* X3 e- O* `! Y3 L
(progn7 [9 l9 H+ A/ @9 Z+ k: \+ y
(setvar (car dv) (cdr dv))$ ~# _" v2 S7 C' {/ C
(setq i (1+ i))
/ |) }( Q9 |: [. R3 k- I l ) B0 K5 [3 I8 @/ {
)1 j1 ?& H# p- w$ O. `: F0 Y
)
% d+ C& E6 [' H: K: `, _3 d ;;0 p" F, U9 t6 y/ l
;; End-of-dimension
& B! V! H2 g3 b( }7 ~ ;; ==================8 f- V' b/ X0 O# L
6 T: X# _* l* g: A( H9 @, y ;;
4 B+ v' Z2 o% y7 N ;; Sub-dialogues for properties. Common to all object dialogues$ d# T9 c, \0 j1 e
;;7 V% j3 ]. ~# T
;; This function pops a dialogue box consisting of a list box,image tile, and( b; b) O1 {+ J Z
;; edit box to allow the user to select or type a color number. It returns2 U0 x5 N4 I0 L4 Q5 e o/ b
;; the color number selected.
- t: A2 Z9 [5 X% v$ j: P (defun getcolor (/ old-idx colorno cname lay_clr)5 E5 [* \" ?$ ]: ?) H1 N
(if (= (get_tile "error") "")0 A: _0 F2 Z1 q" H
(progn' O& O ^2 h1 b U ~
;; Get the color associated with this object's layer, for use/ U1 E# q7 [& J8 ^" r9 b
;; in the color swatch if the user selects color BYLAYER.
" J" [' D/ [. ~1 ~" y8 v (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))8 @: p/ V8 B+ O4 @0 C
(if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
+ D4 W8 s0 r V4 P) F3 {; [ (progn, A" Y% j6 C$ I$ W* S2 e9 P
(setq ecolor temp_color)
$ g+ u. N4 a2 X5 C! {9 n( Q& U (setcolor)
( k/ @7 a" K. y )- N. B5 C, v' a) _5 r/ n% ^) y
(setq testcolor temp_color)/ \0 b4 }( n: p p B. o
)
1 q5 V$ G% ?# n1 Y )
3 z0 [( x6 }' D2 T$ a( `# B% [ )8 d/ s- Z8 m1 g, a; v
ecolor0 K8 s% g' u: L* q, O
)
. o3 K( k9 Z* y7 V ;;
2 g8 n. Q, i$ x2 H( Y ;; Function to set the color tiles.. ~2 p( v; C$ B( A n
(defun setcolor()4 r+ Q$ u; i' Z+ e& o
(cond' o/ Q* }. e& }$ T: {' Q b" l, g+ [
((= 0 ecolor)- `) n4 D( q/ e2 F( f
(set_tile "t_color" "BYBLOCK")
0 m' X, T/ {& D (col_tile "show_image" 7 nil) ; show BYBLOCK as white2 t* g) }( Z/ H7 K0 Z, P4 e P
)
( x" c6 Y! i6 h6 q* E; o ((= 1 ecolor)3 b9 d, q. R4 F+ U# l9 Q# f
(set_tile "t_color" "1 red")% x r7 E% v* L
(col_tile "show_image" 1 nil)- y/ }7 U* u, m: X4 ]
)% {" ^, \2 r/ d9 v, ]
((= 2 ecolor)
3 g. I) ?+ P/ i" Q9 N: [ (set_tile "t_color" "2 yellow")
, b0 S2 z1 W0 ?% J/ \" A; T3 A3 v+ | (col_tile "show_image" 2 nil)0 O% v9 A0 S5 o$ ~2 R+ d) o( R& _
) B! w \' r6 [! m/ \
((= 3 ecolor)
+ V% J) R4 e2 |4 B5 [; T4 @ (set_tile "t_color" "3 green")
, \; P8 ^8 I9 C: e (col_tile "show_image" 3 nil)$ L) j4 z8 ^* {; ` G* h
)( u) [$ f6 Z* M3 {+ ?% ~) h
((= 4 ecolor)* D- |: k g$ v( h. V, |
(set_tile "t_color" "4 cyan")8 M; W3 K0 g9 c0 L8 I. T+ H# o' m
(col_tile "show_image" 4 nil)
/ S. a! L, t5 f0 y ). P! s; H5 [5 j% _; e1 T
((= 5 ecolor)0 ^, x' `; K5 h& W1 F" R
(set_tile "t_color" "5 blue")+ X! P" W6 w n" A( ^! C' {
(col_tile "show_image" 5 nil)1 u* J& h( e+ R: a U6 w! T( |
)$ g# ^. ?- o4 @3 F& m* Y
((= 6 ecolor)- ]# B( D+ C+ |
(set_tile "t_color" "6 magenta")
& B0 R, x3 ]* y2 y; m (col_tile "show_image" 6 nil)
' |: O) R g( @! H$ { )1 J8 S9 K% P/ Y
((= 7 ecolor)
9 p( h: J4 l& S$ j (set_tile "t_color" "7 white"): i0 S: b6 t- o7 w* j+ s
(col_tile "show_image" 7 nil)3 B0 Z$ r' N; H& N+ q
)
) j1 I T+ w8 {& L' V( [6 R ((= 256 ecolor)
9 u' ?+ O; a- o& b (set_tile "t_color" "BYLAYER")( T- h4 Y# ~7 F: G j2 b
(col_tile "show_image" (bylayer_col) nil)3 R6 v9 }2 f# ?! R4 z
)5 i) z M& l% E- R) j; _
(T. q; k; p+ d8 I4 I
(set_tile "t_color" (itoa ecolor))
! o$ }0 T/ I2 [9 @' {, b; t5 | (col_tile "show_image" ecolor nil)- i" K% C: g$ m, b9 o
)
1 X* |! p; t% B0 L ), ~' e9 U' R0 L) K2 D6 s% K
)- R! j. N; p. W6 L% ^
;;9 Q5 A- k6 `1 x( a4 n5 _
;; This function pops a dialogue box consisting of a list box, image tile, and3 ~# F% ~7 N2 n# |1 \3 R, n1 }
;; edit box to allow the user to select or type a linetype. It returns the
/ Q' n* L/ h. T) q: @ ;; linetype selected.- C- }8 I* V B8 V1 W; \% z
;;
0 J) E( Z9 m3 o$ Z# L. G) |8 M (defun getltype (/ old-idx ltname)) A F* T0 D& ?: E2 h9 C
(if (not lt-idx). M5 }$ v7 U2 k S% s
(progn
5 a: D7 D# @1 C1 J! v (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
2 k$ ^ _1 |# F# G+ k% Y (cond* R# g' O0 A" o
((= eltype "BYLAYER")" l: G+ c6 q( |2 j# s* O6 @
(setq lt-idx (getindex "BYLAYER" ltnmlst))) @ S1 p: Z- C1 |' [2 O8 E
((= eltype "BYBLOCK")( p, \& t1 M$ v# r4 i
(setq lt-idx (getindex "BYBLOCK" ltnmlst)))1 O* \1 e$ [$ w3 h7 O* N' ^: j
(T (setq lt-idx (getindex eltype ltnmlst)))
. R- T e$ v+ ]2 @ V6 c )
) Y* f0 d3 B m2 ~ )
8 b8 T p- D1 E' ]) O; F )" t4 ^8 m5 @% z3 \& D
+ e# ^6 ]- J) j& m Y3 V* B O/ P/ x' ^ (if (= (get_tile "error") "")
: }4 v' R! L `3 L3 M (progn2 [% ~9 h8 h% e1 |: P B
(if (not (new_dialog "setltype" dcl_id)) (exit))5 a9 s. N! |+ G0 k" r
(start_list "list_lt")
7 L' ?/ a; ?# g' h& } (mapcar 'add_list ltnmlst) ; initialize list box1 N0 }4 D! a1 o5 f5 Y
(end_list), m$ y9 h1 E- y5 G! O2 x
(setq old-idx lt-idx)
7 W8 Z. Z% ^3 A |/ r2 q; x- v7 H3 @ (ltlist_act (itoa lt-idx))
% \" f8 a; { R0 b7 F* \
4 A0 [7 A7 K& Y" d (action_tile "list_lt" "(ltlist_act $value)")$ ^" l$ m1 F4 _7 F. u/ E G4 H6 t
(action_tile "edit_lt" "(ltedit_act $value)")2 W; I- i! Y+ }& Q s- _( {1 |
(action_tile "accept" "(test_ok)")2 H5 n( \, |8 R& B% I. l
(action_tile "cancel" "(reset_lt)")
! j: a+ v' U2 r; S% `: G: A* k1 g" W& d7 E# G, _1 `
(if (= (start_dialog) 1) ; User pressed OK6 I. D: Z( A5 g: X2 m. v
(cond1 S) J# N7 ]9 f; V l
((= lt-idx 0)" a! v( P0 H6 [$ I& _ G
(set_tile "t_ltype" (bylayer_lt)). M/ ^; ?" ~5 T3 _* Q: g# H
"BYLAYER" d( Q$ n0 e# X1 P
)# _# T; i3 [! i( S3 u$ [
((= lt-idx 1)
0 E" F, p$ y# T& V3 V (set_tile "t_ltype" "BYBLOCK")
- L7 ^ P- J1 u8 Y# m Z) E "BYBLOCK"0 e5 P. F) {" _* `
)
% N6 s7 I% r/ N1 D5 u) s (T (set_tile "t_ltype" ltname) ltname)
3 D1 {' ^ h7 B8 {- a* B )( k I |) ^: T/ z
eltype% a ~8 |% O6 d9 Z" A
)
- q& r8 [0 C8 _ ) \6 V! T x+ \' ^* ]* h
eltype9 [, ]: ~0 r3 N+ y
)6 Q8 E1 e( @; ?: l: K5 q' ~, r
)
c0 V5 \4 v3 o- B5 _+ k A5 t ;;
9 ?; g, d& }' I ~ e! x" p, Z ;; Edit box entries end up here
( v2 G% c9 z" |" ` (defun ltedit_act (ltvalue)
4 s/ E. z! V3 j( h% T: w3 J1 F (setq ltvalue (xstrcase ltvalue))
! h; y( z' C: D% y) J5 E (if (or (= ltvalue "BYLAYER")8 j) s3 v" X% z, `- C
(= ltvalue "BY LAYER")); z9 m' t4 q s3 d
(setq ltvalue "BYLAYER")
: L& m/ B) Q* t( `4 y% v, \ )
) r( X }8 l2 N2 U- y h5 j (if (or (= ltvalue "BYBLOCK")
# m8 t" C0 H6 } l/ A0 _( o (= ltvalue "BY BLOCK"))
9 Q/ Q0 ~* P! V& V" k (setq ltvalue "BYBLOCK")
+ ]2 ?8 e2 q) n% L )# y" q6 w/ |9 ]0 d
(if (setq lt-idx (getindex ltvalue ltnmlst))
' B7 E; z2 w. |- t" m" F, O (progn
, v& H' W; _8 a; n. X (set_tile "error" "")
4 ?5 Z: D* l+ t3 V (ltlist_act (itoa lt-idx))3 `' D; U9 x6 V/ T% \
)
" ^* D$ w% m2 E( [7 z (progn
3 k: T ^, D; U# y, n& r& K (set_tile "error" "Invalid linetype.")$ L' u y2 G: i- ?
(setq lt-idx old-idx)- N( U; m& ?0 x/ y! t" G
;; (mode_tile "edit_lt" 2)5 p* _4 |% {$ [+ \# T; d9 F+ i
;; (mode_tile "edit_lt" 3)
' w6 R- v2 i: U( P* g )4 ]& [- _" i4 `. f0 f5 G# r1 N2 U6 W
)
5 h) @2 A, g$ |% |- y )1 ~; ]+ S4 E( M2 C# I; c) |7 }+ _
;;
4 l& Q" `9 t" o3 U* \+ W ;; List selections end up here. Update the list box, edit box, and color
. f- C3 q. I- E2 k0 ~5 x' M ;; tile. g, Y, v' P* Y6 b
;;7 {' Y) f4 ^7 H
(defun ltlist_act (index / dashdata)
0 \ p2 |) g: w9 N! j( T: w (set_tile "error" "")
c5 M, x0 b) `; N1 F (setq lt-idx (atoi index))
6 p/ R% _% f$ \# K (setq ltname (nth lt-idx ltnmlst))
2 i0 D4 a% W6 G& {3 I (setq dashdata (nth lt-idx mdashlist)), z3 d [% O7 G( u" ]
(col_tile "show_image" 0 dashdata)
, Z( X; o6 [. f; M; ~) ` (set_tile "list_lt" (itoa lt-idx))1 F( Z8 P4 v" |- X' d
(set_tile "edit_lt" ltname)5 T' P" t7 U" {; c
)& D4 ?# g3 i! G3 l
;;
* _1 Y$ l; a+ d" F$ |$ ] ;; Reset to original linetype when cancel it selected5 `: G( M8 g& \+ U( f7 }
;;
4 Y: r0 T. _! _" `- s+ D (defun reset_lt ()
* Q% ~) `6 M& A (setq lt-idx old-idx)
9 e7 u- o9 \! s- s% {0 l (done_dialog 0)
8 R; \# n0 X5 h9 Y) m+ b )
1 I; A& W; Q" G3 p' f ;;! t/ D. j: O( e+ `
;; This function pops a dialogue box consisting of a list box,image tile, and
3 O+ i, R' P% I2 }, n: j ;; edit box to allow the user to select or type a layer name. It returns the
0 {% h; E( m* `& O. u0 F ;; layer name selected. It also has a button to find the status (On, Off,- J" q5 `4 h7 S# H7 `' k2 d; A
;; Frozen, etc.) of any layer selected.
' S' C3 C- P( { ;;6 r2 A3 ^9 ^+ x8 K) n# h
(defun getlayer (/ old-idx layname on off frozth linetype)
9 V8 h# J) t, m+ f5 r) [7 \ ;; Create layer list the first time the layer
0 y8 h" l+ Z0 ?. N' X2 i* U ;; dialogue is called.3 D- [( e5 x6 I5 N/ m: D' s" w- ?
(if (not lay-idx)
+ L- X4 G# O# }/ ?, m( M' M/ r2 Y$ ^/ S+ ` (progn
: q- o4 C9 K1 Z& L, r (make_lay_lists)3 |: \; `* H' |6 Y9 v5 w
(setq lay-idx (getindex elayer laynmlst))) L6 |$ m4 S. b% s8 C* } m6 `+ h
)6 x! Q% O- c5 ^2 n. H+ o1 L
)
1 d( K/ w0 |) h3 B, c( A% K
+ v; B% ?7 h" A6 e! I" ^ (if (= (get_tile "error") "")
0 C% n8 H3 i. u A/ r4 h' J [3 d6 D (progn, u& ~: g; U8 r2 [+ X+ m( v8 Y' Q
(if (not (new_dialog "setlayer" dcl_id)) (exit))+ i5 X9 v4 S- P" T" h% n
(set_tile "cur_layer" (getvar "clayer"))8 `; r" R$ s, j/ K/ T
(start_list "list_lay")$ `: t9 \$ c2 Z! o. M
(mapcar 'add_list laynmlst) ; initialize list box. D( ]8 C% O6 a1 o
(end_list)6 `" p3 n( D X4 y
(setq old-idx lay-idx)9 O N: A: a- _ K. g, ]
(laylist_act (itoa lay-idx))/ N; i- A7 T! U$ t3 Y9 l# u
(action_tile "list_lay" "(laylist_act $value)")
" G/ ]+ f6 C2 B; k (action_tile "edit_lay" "(layedit_act $value)")
) X8 A! a% E' q8 o" d, W6 O (action_tile "accept" "(test_ok)")" q/ y* l# K3 Q3 S8 I
(action_tile "cancel" "(reset_lay)")
. U% o, S( i: r! _2 I7 ?9 ~4 C# y (if (= (start_dialog) 1) ; User pressed OK }. l, [. t8 u7 A' _. ^ J
(progn7 c+ e3 b. K# u* ^3 F
(set_tile "t_layer" layname)$ h `$ {9 g6 P6 H C+ v4 G( w1 Q
(setq elayer layname)
5 K( W/ u$ V# w$ r0 Q ;; If layer equals bylayer reset color tile
5 t( ~- e m- R$ E5 l (if (= ecolor 256)
( L) M. _; L; U" M1 d6 w9 y (col_tile "show_image" (bylayer_col) nil)$ v2 @- M6 @% B
)
! p4 T( a, L9 s* r/ G# {/ { layname+ ~/ ?5 c7 Z$ a Z" F+ r2 u
)
2 o7 j1 r9 t8 q0 w% {/ k8 V X) f elayer4 n0 B W% m" n- u
)$ t, }9 q! A" I# Z/ Z1 O/ [6 d8 [
)
a0 n8 b, k3 W6 Y7 b elayer$ X2 d5 U6 \ X8 j4 L. u
)
8 W- G6 Z$ s* H& y, q G% T ), u6 H! V3 A: S& W: @$ Y
;;
* q4 T7 y1 }: V1 m. e4 p( C ;; Edit box selections end up here. Convert layer entry to upper case. If
) K; X+ \1 x7 K1 j/ |- p9 z# D ;; layer name is valid, clear error string, call (laylist_act) function.
" D" X g) ]8 [+ G; \1 i) B* T ;; Else print error message.1 X! ]" z' G2 x, \5 E
;;: L! h+ y" B5 I) H& L( t' i; ^' ]
(defun layedit_act (layvalue)
" ~2 K" d& `9 C0 H. \3 w (setq layvalue (xstrcase layvalue))
* X2 [) ^! [& b' B h (if (setq lay-idx (getindex layvalue laynmlst))
. J4 }8 G. @( \# k8 o; M (progn
# A9 {! P n9 C4 J# O (set_tile "error" "")
9 {+ }' `# [5 a. r, h( A2 L; ?7 q/ Q (laylist_act (itoa lay-idx))& D4 H X2 Z$ v* g9 t
)
0 x8 p1 Y* q3 q% ] (progn5 W: X7 o- E+ ]' W
(set_tile "error" "Invalid layer name."); S: [$ G0 R2 m6 p3 b+ T
;; (mode_tile "edit_lay" 2)7 L7 u9 ^, w( k/ E9 E
;; (mode_tile "edit_lay" 3)
2 J3 j9 W. e, C (setq lay-idx old-idx)
6 j+ R& j6 z1 v% s+ H% n; L( I )
7 A3 D5 D X& ]% p& p )) H8 g4 r' u, @9 C- i' A6 Q5 f% Z' T
)
( Y, h% F( G% w) E4 Q ;;
" \ O3 V9 x1 D2 X0 O ;; List entry selections end up here.
& F; V7 `3 Z i ;;* p1 G* A: Q' ?# [& E
(defun laylist_act (index / layinfo color dashdata)0 B" L# ]6 f, Y- P8 t8 e
;; Update the list box, edit box, and color tile.# x" X8 A) ~7 X/ |0 k2 ~- t
(set_tile "error" "")
2 w* L/ T$ C! O' d' v" ] (setq lay-idx (atoi index))
`9 C7 j i# b3 ` (setq layname (nth lay-idx laynmlst))
+ W2 \0 H( y$ D' s$ I (setq layinfo (tblsearch "layer" layname))
0 I+ ^- M! ]% o/ { (setq color (cdr (assoc 62 layinfo)))1 q6 ~+ b* F/ d4 Z4 u! K
(setq color (abs color))
& V' D1 n5 t. P/ _1 E/ X (setq colname (colorname color))
) {2 b* m2 s) d6 ^, v+ Z$ r; H (set_tile "list_lay" (itoa lay-idx))
' v, `6 |! ~ M9 y( y/ O. K (set_tile "edit_lay" layname)
: U/ e9 a9 Z& o8 z, }- V) B )
8 @& g3 l, o. v! j/ N! X ;;
) \1 `) {/ ?8 s5 E ;; Reset to original layer when cancel is selected.- @& K* F/ u) _# }* v4 T
;;
1 f$ y. \0 }' Z, _' c (defun reset_lay ()
M! C9 @; ^6 C$ n1 d (setq lay-idx old-idx)
; T q6 @% u1 G$ V (done_dialog 0)
3 e, T7 n2 O8 O' ^, {6 z6 n' U )
( c* i6 H4 a0 u; ] ~/ U ;;
4 f4 V% C& Z1 I' y# J) B ;; Checks validity of thickness from edit box.0 t2 g: C% k( G& f: n/ o+ C
(defun getthickness (value)
+ }6 l7 R- c7 d0 P9 Z (setq ethickness (verify_d "eb_thickness" value ethickness))' j! j' ?7 b( W0 u- R# F& s; R
)
* t7 g% ], z: o( L$ k ;;
6 _6 [$ Z m% c6 ]3 n ;; Copy of (getthickness) for ltscale. If more, make this function
" v* e- J# V% ]' Y2 h9 ]7 _" I ;; generic.
$ E* y# H, g x! S7 {. y (defun getltscale (value)! E" K/ ?, B! } i9 X: W
(setq eltscale (verify_d "eb_ltscale" value eltscale))) m0 U1 u1 L ? x9 ~' N1 D6 L" c
)
0 o5 ? G1 Q$ [7 U' q4 ~/ o ;;8 H+ A* F" ^& e; L3 N" R5 Y
;; This function makes a list called laynmlst which consists of all the layer
2 V5 A7 I% F9 g7 _. w+ ^! t ;; names in the drawing. It also creates a list called longlist which& ?. l7 c! I( |5 M) R$ B; |
;; consists of strings which contain the layer name, color, linetype, etc.% l" Z" s1 [% q' m& ]
;; Longlist is later mapped into the layer listbox. Both are ordered the
, A m4 b9 R: o ;; same.
6 d- j9 Z$ O$ {3 ? ;;+ F n3 @" [7 S
(defun make_lay_lists (/ layname sortlist name templist layer_number)( A1 M! v, q( F' H% J
(setq sortlist nil)! ^0 O) M3 _+ Y7 m6 M. X. e
(setq templist (tblnext "LAYER" T))
" e7 U2 H+ G% [* q9 h (setq layer_number 1)
, N* x5 t; I/ y' V7 Z (while templist
6 S# W2 G C- u$ [3 v ;; No xref dependent layers, please.
' P6 l, ?" C. Y (if (/= (logand 16 (cdr (assoc 70 templist))) 16). j- p. ]+ b% S
(progn
4 _: {7 l7 h, g, n1 h& s7 Q) q (setq name (cdr (assoc 2 templist)))
+ o, ^2 n6 n: N (setq sortlist (cons name sortlist))
/ n8 F4 a/ p P6 U0 I( s" t )
* t0 X4 {0 j' s2 }9 l )
7 m) g1 o* R6 s+ Q+ Y ; Get the next layer.
3 H4 S3 S/ ^ v& l' A% [/ f (setq templist (tblnext "LAYER"))1 _' D, @, v0 }: L: b/ Z, o% P
;; Not dead message..., D- f& Z8 K- G, ?+ \1 Z# U
(if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))/ V |" ?. |4 E7 o9 t. N
(set_tile "error" (strcat "Collecting..." (itoa layer_number))): g% ]: w# F% T' J6 a7 ~
)/ s5 u7 ~% u) ?2 \4 z0 O
(setq layer_number (1+ layer_number))- W" E& }; m. ^/ ]! p
)
P% @/ \7 |* ?4 i (set_tile "error" "")
! h E3 Z2 n, K; _) ?6 L (if (>= (getvar "maxsort") (length sortlist)); m5 g8 _; W, E* C f( d
(progn; d6 p- z u$ B$ n/ v Y
(if (> layer_number 50)
* J/ o( m8 I! p* ~" g (set_tile "error" "Sorting...")
* |, L6 f% m( n) W )
% {2 l% U* @+ M2 U- j; `2 p+ i (setq sortlist (acad_strlsort sortlist))
# e7 z- J& l, f' y B' t% m% _ )& H9 z! A$ n( ~4 ~! t
(setq sortlist (reverse sortlist))5 v9 }* r4 U' z- }+ z
)
+ d; Z% @+ A3 z6 ? (set_tile "error" "")/ d2 {* g& k$ L' `# [8 [# c! z
(setq laynmlst sortlist)
7 y% ~( k% q* n* l" L ). {9 ]. z. ]! {' `) k
;;. ]6 J. X( Q( S( \. }; P5 p5 w
;; This function makes 2 list - ltnmlst & mdashlist.( k+ @3 b6 A/ L' N& T
;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist( p; a$ _ {6 T* ^3 G
;; is list consisting of lists which define the linetype pattern - numbers
[: }6 W: Y3 x& a ;; that indicate dots, dashes, and spaces taken from group code 49. The list
% S' y# A% t2 ~* ? ;; corresponds to the order of names in ltnmlst.( U* \2 n/ v) ? Y5 J; C
;;( F/ e% U7 w1 t8 q1 q; g
(defun make_lt_lists (/ ltlist ltname)
: q. e" X2 V7 ^ (setq mdashlist nil)
8 ]/ L4 B: U! T# }( I$ Q (setq sortlist nil)
( [) u" Q* V3 U. p3 n& U2 x% M( m (setq ltype_number 1)
7 ~ H/ A. K. P1 \* U, T' t+ P (setq ltlist (tblnext "LTYPE" T))
1 I! w% G7 Q6 e+ {$ Y% e7 J" x ;;(setq ltname (cdr (assoc 2 ltlist))): ^9 }$ c( M5 f. e" O( F
;;(setq ltnmlst (list ltname))/ m- M5 z: {) ~
(while ltlist
, v a2 c0 A y) ]- i% }/ _ ;; No xref dependent linetypes, please.3 i; ?( M$ G x0 G
(if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
7 k7 q' o9 O8 q6 v& | (progn
% ^3 Q7 n4 m8 S' K% f q (setq ltname (cdr (assoc 2 ltlist)))
, p3 C9 M+ V5 F: \1 l, F7 t# P (setq sortlist (cons ltname sortlist))" s- |& U/ ]+ @5 R) e- ~
)
. N+ X9 h0 M i- N4 H) e )
1 G+ \2 L) f0 f( ~. o ;; Get the next linetype.
+ Z, H/ g; M$ }6 F7 ]+ P (setq ltlist (tblnext "LTYPE"))
7 \; o- U% E' S9 |: J h) O( W/ w, Q* \% m, j" a9 h# k- U5 V/ r
;; Not dead message...
3 a0 a1 ^0 N9 n) \ (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))8 Z' L. E" h4 V9 Y# q0 Z
(set_tile "error" (strcat "Collecting..." (itoa ltype_number)))) z& C" e2 j1 ^- g+ y9 @
)7 P% K9 z, K6 [2 h& h( _
(setq ltype_number (1+ ltype_number))
3 ^7 ~; J( N) C. [, s, Z! l9 |% A
# R4 Z7 P5 E" h0 G2 N )
% p- s' z, Q& e8 n& R s3 m, f* p/ c; _' ^: G
;; Remove Collecting message.2 D+ f* y, W/ d1 \( Q8 p2 C
(set_tile "error" "")5 [ z" Z9 M" F& I$ _/ c
' D% q. L4 B5 b; `$ v ;; Sort based on maxsort.
/ M$ W$ H: j1 C8 j ~: W (if (>= (getvar "maxsort") (length sortlist))+ F: p2 X$ u) G5 ~6 P' k
(progn" y. `3 l% j2 ~& D# N- ^, a' s
(if (> ltype_number 50)
- p. z, e& \' V( B9 M1 w (set_tile "error" "Sorting...")2 E! [$ e/ A% z
)
+ \: Z* @0 h( I& t( R" e (setq sortlist (acad_strlsort sortlist))
7 Y, x- k" z- N! y" f; Q- y, q )' f1 E# V; f; O+ X) K2 g$ F6 A
(setq sortlist (reverse sortlist)); Q7 ^" G9 \2 `9 `! W; U2 s! j# ?# F
)
& W9 Q9 z1 p, c- o! k: B& d5 c (set_tile "error" "")
0 Z% ?! y4 R. `- z3 D (setq ltnmlst sortlist)
" y( K# L R2 ?5 d$ b
2 w$ M/ H* f2 {( a/ k) x+ _ (foreach ltname ltnmlst I0 B( z; U, o& R
(setq ltlist (tblsearch "LTYPE" ltname))( ?% b6 C( q# x7 e% u
(if (= ltname "CONTINUOUS")! B7 q% E# `' n
(setq mdashlist (append mdashlist (list "CONT")))
5 P- P; K* @# T (setq mdashlist
5 Y4 I2 H1 [6 \4 L' X o1 U7 Q (append mdashlist (list (add_mdash ltlist)))
8 N- d/ q1 A+ w4 O )
4 a4 k( o& c. |4 p* K4 ? )0 w0 X& ?/ r' e( `% e- @5 g
)2 r- ]/ ~* N5 P% A5 c3 P
(setq ltnmlst (cons "BYBLOCK" ltnmlst))
" S' w# ^, T. ?; a (setq mdashlist (cons nil mdashlist))
" N n u; q3 z0 s# K (setq ltnmlst (cons "BYLAYER" ltnmlst))! e: `. B1 e: M1 d5 B& E8 h; E, m
(setq mdashlist (cons nil mdashlist))
& z$ Y9 T& f/ e/ z7 F )7 N. p- o' e1 K H# _
;; G6 Y& ^5 [9 }: y5 h$ L: J
;; Get all the group code 49 values for a linetype and put them in a list
* w7 x2 {6 r; S+ A$ U, H ;; (pen-up, pen-down info).& _( s7 F: E% W- F0 Q
;;. C# T/ k& F7 k) T6 P. e* r
(defun add_mdash (ltlist1 / dashlist assoclist dashsize)( w! r0 d% o# G" T6 P
(setq dashlist nil)( f% c9 p+ c1 {2 N0 s8 R
(while (setq assoclist (car ltlist1))( R& J8 P/ V! q {5 h+ ^$ V; M
(if (= (car assoclist) 49) q. c: T" `# E5 N) q
(progn- _" f. O# W4 ?9 ?
(setq dashsize (cdr assoclist))7 p# R% k+ y0 ?9 t2 I
(setq dashlist (cons dashsize dashlist))) w5 Q E; \9 j' O0 j' G$ n
)! N5 M; G: p) C% P
)& \# z1 ?; N2 Y7 N
(setq ltlist1 (cdr ltlist1))
/ J3 l9 u3 s( N4 r. [ )
% Z5 D: [! H5 C9 N (setq dashlist (reverse dashlist))! p5 \% X1 P. v) `0 t+ c
)
2 j! D+ h! m% o+ O! M, d: E: K# O ;;
! D+ l1 T3 S9 b/ {# G; ^ ;; Color a tile, draw linetype, and draw a border around it
0 H7 _% u7 U) [: L9 D ;;
8 ^7 O9 {2 ]& Y8 Q5 j (defun col_tile (tile color patlist / x y)
( I4 b! f7 E6 U+ V (setq x (dimx_tile tile))7 X9 T; m/ w$ i% E, i; L6 x
(setq y (dimy_tile tile))
" Q! p( W5 r4 `+ c8 s, m2 u" b( ~ (start_image tile)' O+ `7 M3 N( B
(fill_image 0 0 x y color)0 L B, m w& a5 E: d+ ~! R
(if (= color 7)4 N5 y& S* |. j) g0 Z$ @
(progn' S4 Y" c( w: O% Y
(if patlist (drawpattern x (/ y 2) patlist 0))
' L0 F# _; P% q, J+ H1 a3 n6 C (tile_rect 0 0 x y 0)
) t4 B: P& V3 Q( b# L )! ?$ K3 e/ E; N; s3 i. r0 @+ A& A
(progn
+ B+ e& ^# u1 z2 ]+ H5 D (if patlist (drawpattern x (/ y 2) patlist 7))
( d, K# \$ B5 ~ i9 D0 N, U7 p8 b (tile_rect 0 0 x y 7)
R1 [ O V1 L( g )
* n7 K( Q5 |, w4 t6 C" I! V )
. | n$ J: B" H% o( G (end_image)) |% p, Z7 A! r- V
)3 L% p9 A- ]3 N5 i+ g+ p
;;
! m3 x( u( w; S" J9 S ;; Draw a border around a tile; g9 j; n W+ M' o
;;
+ e0 z9 Q- O6 B! C5 q# M5 X (defun tile_rect (x1 y1 x2 y2 color)
4 @! A8 U0 n# X# w r- t (setq x2 (- x2 1))
9 L' ?0 \6 V5 m& |4 \ (setq y2 (- y2 1))
$ s6 |* c$ D) [6 w+ b) @0 g; }. }9 S (vector_image x1 y1 x2 y1 color), e) Z$ ^3 m) K% v: Z
(vector_image x2 y1 x2 y2 color)
/ p& j$ J E: H9 ` (vector_image x2 y2 x1 y2 color)5 X$ r, P1 f' ^5 U" m1 x
(vector_image x1 y2 x1 y1 color)- P( `0 m- }" p$ X3 b- R& t
)
4 V9 A& i( P" A1 M ;;
( |7 E2 ^. b `' p) _. ~ ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
{; s, r! @; K7 \! ]6 J ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
5 x, t( J* X# Q- N; _( b2 _5 n ;; list of numbers that define the linetype, and color is the color of the8 ~% u2 P) g. ?0 F
;; tile.
7 E$ k( M" R0 v7 B; f ;;
' {) c/ @$ y* a9 p" X (defun drawpattern (boxlength y2 pattern color / x1 x2
& G \0 ~; K2 v" d patlist dash)% h& `. D: k0 I, v u% _
(setq x1 0 x2 0)
% r7 n3 @( L9 x5 G. L3 r (setq patlist pattern)' l" o* I# o: ~' |/ L6 V/ y- ^- q
(setq fx 30)
& h6 c+ a5 }& L9 T2 A (if (= patlist "CONT")- F5 E; @" _9 |- N! t
(progn (setq dash boxlength)
" k' ]6 I. {* @" I# D0 k8 d (vi)% x. f# M* D1 }. ~$ S5 v, R
(setq x1 boxlength)
+ o7 ~2 _+ [8 e7 l$ L )
8 o9 d, m- ]- }' y* S1 S (foreach dash patlist
( y* u- V8 i% O1 c (if (> (abs dash) 2.5)
. z7 ~8 z7 F+ k; ^' L (setq fx 2)0 J4 ^( j6 N% P0 O" S9 l9 C
)
9 o- Y& j7 e* H" H2 \1 g8 a# C. A )+ ~6 o- |3 |2 l. z- C
)$ X8 x8 U4 x# n, ?
(while (< x1 boxlength)0 R1 A& d7 s% ], T- u n- x
(if (setq dash (car patlist))7 [+ a1 l8 r# X2 ^6 u4 D2 V( m1 P
(progn" g% @) O) ]8 t2 A
(setq dash (fix (* fx dash))), @% l' d% i( B$ D2 k! ^: W
(cond: g9 U+ M$ d D5 ~' J9 Q/ V
((= dash 0) (setq dash 1) (vi))
/ f" j/ r, E! _# u6 z+ G ((> dash 0) (vi))
( B4 ?7 ?, m4 \. O$ @, J2 Q (T
* O: V% d0 U. w: g( L. d (if (< (abs dash) 2)$ E+ @4 H) l/ ?
(setq dash 2)
+ A2 e! L# p) |4 s L% o* \- I1 j5 x1 @ )' G9 b) }0 R: n; H6 _
(setq x2 (+ x2 (abs dash)))
" H% R8 r' _# o, U! A )
2 U, a4 ]8 M9 r& ?$ w )+ E9 t( {8 a! c- ?; f& b
(setq patlist (cdr patlist))4 c @$ {% H$ h. p, N
(setq x1 x2)* x( a1 w" w1 ~& G) R
); [# ]( R, `& j& V, p2 d
(setq patlist pattern)
e. Q7 M( p K: Y: l7 q )
+ N2 \! |- E2 P1 \: i )+ s1 F& ~& u+ O( \8 J% e) s
)
1 K$ z1 u6 I) D1 G9 ~0 r: W- ~$ Y ;;# O; t" i/ Q5 {) N z
;; Determain state of xclip
4 q. y$ Q$ ^& r& }* | ;; Returns the group 71 value of the spacial filter dictionary., g6 d) H( A/ b% r
;; If the entity doesn't have a spacial filter dictionary, this
2 E# e7 _ u+ M* z! T3 n q: p5 R ;; returns 0. If it does it will return 0 or 1 depending on the7 V! a5 F; E1 [9 k Y& P0 Z! \
;; current setting of the state of the clipping visibility.8 a) _2 {3 [1 j/ J2 _; X3 P
;;1 f X. P3 Q+ p7 B x* b4 h
(defun xclipon(elist)3 Z3 h9 s. h6 ]- v9 b
(setq hasclip T)
9 w* S; T: W+ p: y (if (/= (assoc 360 elist) nil)$ f- K6 [, O T# |
(progn
$ b, P7 g8 A0 } (setq tmp (entget(cdr(assoc 360 elist)))), j- z# \, d% z+ u/ ?" ^7 R
(if (/= nil (assoc 360 tmp)): }. u# ~& G/ S3 U8 n
(progn
4 s' z {5 b; ^) f8 A; ~/ b' y (setq tmp (entget(cdr(assoc 360 tmp))))
; l' V3 }8 o1 J (if (/= nil (assoc 360 tmp))0 u- G; q$ V; N R/ j8 b8 G$ O
(progn
6 b9 ^8 E; w3 M+ y+ b (setq tmp (entget(cdr(assoc 360 tmp))))- O3 j- d$ H; O
(if (/= nil (assoc 71 tmp))3 c- W. L6 `7 U# X0 F" ?6 `1 M
(cdr(assoc 71 tmp))$ t5 L" A4 Q% X
(progn
3 S" m2 }" s h (setq hasclip nil)( ]) H1 M6 p4 u3 T B y
(eval 0)
% v! J$ j0 e. @" C$ E0 A( ] ), t! a- ]# C/ A! B) `4 A
)( {) n) R% y1 U. l
)
( M/ A; O) {& x (progn 9 B6 L& x- `0 N/ f/ W+ w9 m$ S
(setq hasclip nil)" k+ u) I& o" x7 Q" t4 i
(eval 0)2 w8 e) Y! _9 T l& i
): A9 G& O: T4 C( d) l+ P" _
)
" H( a* X" [. X2 p$ e/ z' M6 N )
. n( W0 E2 m& w) U/ k (progn
) o* x/ O2 n0 D3 y+ c1 d2 z, O9 A: F (setq hasclip nil). x/ e4 J. h& p& k7 \& E6 j1 V
(eval 0)" g y8 T, i( g6 ? ?8 n4 l% x6 ]
)
7 v& {8 O- Q/ K5 _" n" }5 E( k )* t- k) A8 l+ S$ e1 v
)
, }# p4 g& R: m. e/ G/ G$ \ (progn 8 _. J1 v. s- z! H. |
(setq hasclip nil)
' ]* G3 _& V4 J (eval 0)/ N' R; S+ m+ ?+ ~
)
2 j: N Z. Q% U, ~' x )' s$ C+ L7 L. M% T6 z* r, d# l
)
, [: e$ r) E/ T. ~( u- m. J2 r: i ;;9 L1 h) K7 ~+ e) n) m
;; Draw a dash or dot in image tile
' Z3 f7 K( `) I { ;;% o; ~/ {( @ f+ x6 `" W
(defun vi ()3 ~8 Q* V, {' ?* q
(setq x2 (+ x2 dash))
C2 e( t9 x1 f# k# E$ V8 \/ K$ c (vector_image x1 y2 x2 y2 color)4 E& e; v' p; w8 v$ c
) m( x1 {; ?' \$ F; H
;;: F) k1 N4 b9 P! c8 X N
;; If an item is a member of the list, then return its index number, else
# i$ s- g9 G0 g* \" X8 f/ U ;; return nil.$ p. z4 `6 M9 i% T
;;
, V7 `2 N( a8 l: r7 T4 T (defun getindex (item itemlist / m n)3 u. P3 n' K! _9 G9 I7 O
(setq n (length itemlist))
0 R% M3 t1 n" a: @. b (if (> (setq m (length (member item itemlist))) 0)
3 @; Y8 B1 d( w (- n m)
: l% ^9 `* _& `! Y2 ?! A0 S nil( ~9 e! F# E9 S& H% V. E
)
: D* M* y/ B6 I0 {! V9 B )
% l+ [* v& H$ e% @* h B8 a ;;
. f7 h+ ^& W$ C7 h# L9 [! q0 O h ;; This function is called if the linetype is set "BYLAYER". It finds the
' d0 ~* B1 G3 X; N' ~ ;; ltype of the layer so it can be displayed beside the linetype button.
8 E$ `& \; q+ N W) t3 q ;;. Y. |! w/ J' G
(defun bylayer_lt (/ layname layinfo ltype)
4 u b4 ?/ C' R9 E3 E. q% ~6 f$ Y. V (if lay-idx- i5 B9 R2 a6 V
(progn4 C0 D) p) \( x+ n! P' Y9 ]0 R
(setq layname (nth lay-idx laynmlst))- @8 i j/ D% q3 \! |3 n H7 K
(setq layinfo (tblsearch "layer" layname))& Z4 h9 _9 L5 p! ~4 H; ?" G; U8 ?3 ]& ^
(setq ltype (cdr (assoc 6 layinfo)))
; ]6 L- N! b6 ~ "BYLAYER"
9 T: L8 C* d1 t1 t9 _1 ^ )3 T" @, @9 H" M+ Y
"BYLAYER"6 L+ r; _& B; b# [! X) x9 M6 Q
)
. B7 h$ n/ D# k7 N% ] )& D# _( Y& p# S& r# }. w% y8 `
;;
9 Y5 |- \) P' k# M ;; This function is called if the color is set "BYLAYER". It finds the color6 h8 k) ^- p8 k; l ?0 s7 j$ ~8 d
;; of the layer so it can be displayed beside the color button." L3 x7 U$ w& j* C' d' a
;;8 Q. M: _; p5 p% q( Q0 M) m
(defun bylayer_col (/ layname layinfo color)
( m3 N- X" Y; X6 @; ^ q: N% m (setq layinfo (tblsearch "layer" elayer))
7 t; Z- \& m& t9 t2 [8 ` (setq color (abs (cdr (assoc 62 layinfo))))
& U, j! w. w, C )
! i0 F; d; J/ C4 {5 O W ;;2 W. c+ i( L( V
;; Used to set the color name in layer subdialogue.
1 [4 K2 R, J3 V2 g0 c5 r: I+ C& T ;;
; c" x9 h% g7 |/ V+ h1 } (defun colorname (colnum / cn)
) i' B7 |" O3 | (setq cn (abs colnum))( C4 C+ Z. g: d) c! V) N
(cond ((= cn 1) "red")
# C$ u, p7 C5 g; i ((= cn 2) "yellow")6 b; S' I( A2 N( M/ _
((= cn 3) "green")+ ]* P R6 p% I5 P& F6 K
((= cn 4) "cyan")% T" N+ Z4 \2 l1 }$ m& `- N. m
((= cn 5) "blue")9 G( |* H4 t& s% k4 E5 w g2 _ r$ H
((= cn 6) "magenta")
7 l0 A* P) K8 Y' U ((= cn 7) "white")
4 T3 }2 S. s$ t (T (itoa cn))
) n% B, g" k0 z J l/ U; O )! M3 ?; @/ H9 y
)
; g# y( D8 }$ J2 U/ g x8 c ;;
+ Y! ]+ }% U- x: U ;; If their is no error message, then close the dialogue.
3 b. j8 q, U) ^: z* Y1 t1 M ;;
8 ^# U7 ] |0 p7 t/ _ s# [ (defun dismiss_dialog (action)) D }+ Y! ? e0 u* w
(if (= action 0)
+ D/ S8 y; H, H" N0 d+ I% j0 H3 t (done_dialog 0)
2 b: L4 Q; w X) { (if (= (get_tile "error") "")3 |: o" d) M: G/ S" D
(done_dialog action). F% q# L! F4 Z6 A( |
)% L) ]% w6 C& w& j Y
)
4 D1 X8 O0 C* N6 S )
8 B+ {% y8 |8 s9 E8 H* o3 S& A5 R& g+ G( K3 f; N
(defun test_ok ()! |; N8 c; Y, W( I
(if (= (get_tile "error") "")
+ v, k1 L$ A) w2 o' f9 U+ r (done_dialog 1)* r c8 u/ J# D+ w O
)& n6 f3 U5 i6 Q1 s
): o& q* a0 T1 d
5 b! l: b6 { V6 T (defun cancel ()
0 ^8 Y- F0 O- V" q& r (done_dialog 0)7 A6 e- t' ?+ U8 N) v
)3 `& d! W" C$ S
& }$ V1 @# L2 t3 ^) {
;;; =======================================================================
# c4 t9 F; G- E" z;;; SETUP layer and linetype lists for application, and initialize all
" F+ t% w- E% w+ r3 t;;; program variables.* F! O! o+ `% N5 t1 y: T6 h, [2 s
' @/ y7 D _ n (setq elist (entget ename)
+ d: h, b! k/ }# h/ T old-elist elist: \0 B& F" _! k. M6 G
modlist elist$ k3 V* [ u* ]* y
etype (strcase (cdr (assoc 0 elist)))5 ?' E" S+ J6 \: ^- y
ecolor (cdr (assoc 62 elist))
8 V3 y, Y+ N; @( J9 Y& \ elayer (cdr (assoc 8 elist))
; x% R- j! h2 l1 E eltscale (cdr (assoc 48 elist))
9 R' U" t' m: z/ F, E ethickness (cdr (assoc 39 elist))
+ A, G8 t7 O* G/ ]+ Z, e eltype (cdr (assoc 6 elist))5 i; z' d, o8 h% @6 M" x+ }
)
3 x5 r- |! X' o5 N# b/ K) {0 A5 P (if (= (assoc 210 elist) nil)
9 y' r/ v6 {; G (setq extru (list 0.0 0.0 1.0))
% A0 P4 [+ B4 j! \6 P (setq extru (cdr (assoc 210 elist)))' G& s# M' W" O$ R1 b) {6 B
)1 Z- B1 N/ t( y/ J* Y
% j: ?2 I1 {2 K- }& M: }- }
(if (not ecolor) (setq ecolor 256))
, R( M- t0 B% ~" v" a0 `0 j (if (not eltype) (setq eltype "BYLAYER"))+ G" @8 F8 e6 t" R9 X. ?4 d
(if (not ethickness) (setq ethickness 0))0 c$ l# J# [% S5 F* Q9 W
(if (not eltscale) (setq eltscale 1))$ p4 e/ E d- s/ ?5 H5 E9 t
) ; end ddmodify_init- A- ^3 ^7 K2 a, I
4 B# G$ R9 ~5 e+ {' Z, q. ?
;;; --------------------------------------------------------------------------) e* l: O' Z, J8 X) h6 X
;;; Function: DDMODIFY_SELECT
4 ~8 p, O! \; A5 w7 e;;;
' n1 O' R% S' I;;; Object aquisition function.
1 v- z9 J) ^) Q4 e! F' l;;;
6 X5 i3 f5 D0 P8 f7 Q0 O7 v;;; (ddmodify_select)" J8 \- @) E6 N* u5 z- j
;;;& V# W, o! ~% t7 r! W
;;; Obtains object to be modified, in one of three ways:
3 d8 o" y* n( N6 K0 C7 ^# [3 g5 O2 ^5 ]/ Q;;;
1 ~( i. P; Q, |' l;;; 1 - Autoselected.
8 O: c/ P% w3 ]* p5 d;;; 2 - Prompted for.+ N: u; Y6 o5 v- v
;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
8 u! ~0 ~' n4 k2 r;;;, x: R4 _# W: A4 j$ l( h
;;; The (ddmodify_select) function also sets the value of the
' U2 U: h: `6 }2 ~% P" r;;; global symbol AI_SELTYPE to one of the above three values to+ _9 m ^. p% @
;;; indicate the method thru which the object was aquired.
0 c3 i- ?0 {; }; M) Y! R2 N" \9 t;;;
" u* d& [2 {2 ?5 T;;; This value can be useful to applications that want to RESTORE# W P: a! X* Z9 |8 X' E
;;; an object that was autoselected to its previous selected state
, a7 z4 z( v# a2 c1 t;;; when they terminate, although there doesn't appear to be any
/ Q7 L% s O- X; T" l, [) J% |8 A7 R0 Q;;; way to do this right now.# d" X0 Z# a: H; S
# j2 i/ i) B8 Q7 }+ v" u, H: f" q8 j(defun ddmodify_select ()" Z3 [6 S4 P- \- D" u7 ?4 a
(cond
7 Z' a9 X: r. Y1 z% @ ( ename ; (ddmodify) was called
8 n1 Z' p3 X+ a (cond ; with an <ename> argument, @- v% b* y8 l$ Q
( (entget ename) ; If object is non-deleted
8 E4 `$ L( e0 a/ c; d& n# p (setq ai_seltype 3) ; then return its ename. F/ l8 y" h* H( S1 i0 t' L- |" y
(ai_return ename)))) V( F! R7 D2 q- r* y
. J* r5 d# l9 q3 b8 T
;; return auto-selected , see ai_utils.lsp
7 z" J; W \5 R k8 u ( (ai_autossget1 "\nSelect one object to modify: "))3 P7 K' Z, D: C' q) V! {
. n" C* @) ~# L$ k, }
(t (princ "\nNothing selected.")1 \0 Y. s& d" N' Y r
(ai_return nil))( o; K/ v: ]1 ?) Z$ i. j
)3 |3 V" f! e% K8 k9 s+ i, ~9 z* M
)
) m; i, H4 p' S0 f1 [' \6 C) {# ^( V+ g- }
;;; ============= Command line interface function =======================
# O9 B+ ]4 K% w* h5 [" i7 L7 L5 B, N2 s
(defun C:MMO ()
0 O- `9 r/ o& e+ x" p/ Q (ddmodify nil)3 E8 r: S: Z; h) i: h& b. ^
(princ)
[8 r# v; [; p) s# e: l) R! L: u+ ]: G
3 A: T+ l8 U% d& R% U0 s. C4 a;;; ================== (ddmodify) - Main program ========================
$ V8 Z! Q4 M6 _3 \;;;2 G* f! U3 l8 h/ M- ?
;;; (ddmodify <ename> )
* o* ~/ g# u1 Y( C, o' K. j;;;& j2 S0 J' u5 _4 H2 |0 {9 R
;;; Main program function, callable as a subroutine.
3 r& ]) h* e$ };;;
+ P9 ?! ?; }! l& X6 L& X# W;;; <ename> = object name of the object to modify.
+ ~- X/ A7 p) F3 s;;;
u! H# j2 r0 A; y;;; If <ename> is nil, then user is prompted to select
/ F0 s; \. n0 ]" z' ~6 ^$ o;;; the object interactively.
1 k' W6 D3 x$ E2 ~;;;) F! u2 `" c" X% D# B
;;; Before (ddmodify) can be called as a subroutine, it must1 ^9 A6 `! j/ q; r* T. I
;;; be loaded first. It is up to the calling application to
: C) Q# o4 I- c1 T- \( F. A% N; \;;; first determine this, and load it if necessary.
4 ^- x% Q A: W7 Q: I G4 j; R7 y% w+ u" l/ j# a% l6 D1 |# T5 b# y
( J% ?" E/ y6 {2 G1 B( b- ` g9 @(defun ddmodify (ename /: E1 i, F& ?; U; Z
2ndpt ell_calc_area move_pt1 templist( v- O9 p( \# I" i8 a# V
add_mdash ell_tile n tempmod: S, U* }0 }- ^6 t
alipt eltscale name tempst_ang
0 f1 D1 x" x2 Y5 j: F4 Iang eltype newpoint test_ok1 b! ?6 m8 M& M t% [* S
arc_calc emod next text- w3 m2 `0 m" u* k) s
arclen end_ang next_vertex th-value% D' y# X+ z6 d6 L0 Z
assoclist endpt obl tile
9 y3 R# m( A7 W) ?4 xatprompt errchk off tile_rect
& [2 C) E8 q: J: r( e0 {0 F+ xattag ethickness old_majrad tilemode
' y# B. m; z8 W; Z4 C* aattprompt etype old-closed totang$ D6 r+ Q' P7 Y3 G) Z
bit extru old-closedm tstyle* p# G9 Z7 E, E$ I0 {7 V
bit1 fchk old-closedn u/ k% G% @/ g* W4 S% A1 k6 t
bit-10 first-10-rec old-elist undo_init
7 w. r' }7 v4 d. ~bit-11 first-10-time olderr upsd
; D( p* w' R# T3 E' R. z( `4 m( Zbit2 first-11-rec old-fit v. r5 S* @* a0 I4 d) q4 [# E5 f5 q
bit3 first-11-time old-idx va
% V* p0 N$ h0 U# v Rbit4 fit oldlist value! t' M, y0 y" {; s+ i J
bit70 frozth old-spltype ver_4
8 K6 \% v1 I5 p2 v' x) gbit-70 f-vis old-u ver_ang1
- `# M- M7 s, O& I" X. d# j4 \, l8 }bit75 fx old-v ver_ang2 G2 E! f9 f9 _* y4 D) ?) \; w8 [
bk-up get_color on ver_col
! Q7 f0 Z' K1 k# ebkwd getcolor onoff ver_colsp
+ l! T; y% S% tboxlength getindex on-off ver_eangle
% ~: ^$ b8 a6 F5 wbylayer_col getlayer patlist ver_hght
9 U( I5 r: j ?' ~9 w! S1 Bbylayer_lt getltype pattern ver_majrad2 Q8 h4 P0 n T
calc getthickness pltype ver_obl. U2 i( h! @: c: R0 t. ^
cancel globals polytype ver_pt17 T& a. s/ r% _( t. S
cir_calc ha pre ver_pt2% n o' e1 n! R8 c3 J- J0 C/ c7 v
closed ha-prev proplist ver_pt3
8 A2 D7 i; _3 z# h6 I( n+ wclosedm help_entry pt ver_pt4
f# ^: f0 I" f' b- d" X- pclosedn hght pt1 ver_rad
: T [4 c6 l4 f' f% H$ x. icmd icvp pt1_eq_pt2 ver_rot
- J2 S8 u- R1 u) f% Ccn image_add_vector pt2 ver_row. Q2 k1 n" N1 X
cname image_clean_variables pt3 ver_rowsp( B2 t( n& d0 `3 h+ t# w
cntl-pt-indicator image_cross_product pt4 ver_tag
$ Q" _' |1 \$ l" P$ ?$ ^code_71 image_disp_opt ptype ver_u& V. V/ p, U V5 o
col_tile image_dot_product radius ver_v. [2 K2 ]7 J8 q' B
col-idx image_normalize_vector rational_spl_flag ver_wid6 X( z2 J8 p' {. B9 b0 a
colname image_rotate_vector reset ver_x1
' f5 i+ ~* q8 O" d2 n3 t7 P# g5 Zcolnmlst image_scale reset_flag ver_x2
5 R7 L5 {8 Q* R! kcolnolst image_scale_vector reset_lay ver_x3( |: l/ A6 G9 @2 c
colnum image_update reset_lt ver_x45 G( t) l" I7 N. k2 P9 c
color index reset_uv ver_xline_pt1 U* t( n3 Y! V6 D/ Q
colorname inv rot ver_xline_pt2
+ d: t& M; A. S8 `% }colorno item rows ver_xline_x14 z* G% u# _! Y; F6 M# P
col-sp item1 row-sp ver_xline_x23 h4 f3 p" g8 _& n9 s1 v- s& Z$ ?
columns item2 rrat ver_xline_y12 T" Z8 n1 ^, U
con itemlist s ver_xline_y2
+ O8 Y" w. Z2 d/ Bcoord jlist set_action_tiles ver_xline_z1% R/ s* v) n/ z2 |
ctr jlist_act set_just_idx ver_xline_z2# d7 b1 x$ t. A$ P' V& {( ~
cur-10-rec just-idx set_tile_bk-up ver_xscl
& p( C; E! H$ i4 S! p7 B" [cur-11-rec layedit_act set_tile_cntl_pt ver_y1
% W E" q+ B; Z j, zcvpname lay-idx set_tile_data_pt ver_y24 q" C# K* R" \* D; b% y* v
dash layinfo set_tile_dirv ver_y3
1 h8 h4 Z; e4 {) ?6 |: adashdata laylist set_tile_edges ver_y4* Y0 X/ f+ ]4 a& l/ K9 O
dashlist laylist_act set_tile_endang ver_yscl
- N$ ]! n- _# G! ndashsize layname set_tile_hght ver_z1
& X f- S% q9 Y edata-pt-indicator laynmlst set_tile_icvp ver_z21 O, t% H* P7 b* y
dcl_id layvalue set_tile_just ver_z3
7 T9 G" W2 A3 x1 o* \: mdd3dface line_calc set_tile_obl ver_zscl
2 }$ n0 c% \; Zdd3dsolid linetype set_tile_prompt verify_a
1 _, o* e( @8 r& ^ddarc list1 set_tile_props verify_d. d2 a3 r% ~1 |! [& z! J
ddblock longlist set_tile_pt1 verify_i
. o% F9 Z5 i/ T6 L1 X7 t' X; eddbody ltabstr set_tile_pt2 verify_xline# G4 ~2 Z7 M7 Y8 m0 x* S: A
ddcircle ltedit_act set_tile_pt3 vfy7 h" h2 o& N5 J
ddellipse ltidx set_tile_pt4 vi2 q$ c. q2 q% z& V9 Y; F
ddgetprompt lt-idx set_tile_rad vlist: h4 ^# F* F7 k5 P
ddgettext ltlist set_tile_rc vname
( j; o' t: I) gddimage ltlist_act set_tile_rot vpf
0 t% o2 g, |: v+ v- P- j2 pddimen ltlist1 set_tile_scale vpid
: C" h0 h4 G( n' c6 ? Z5 n) wddleader ltname set_tile_spline_props vpldata
. B) r7 P% A3 p+ Hddline ltnmlst set_tile_stang vpn
! P( k% T# n, H+ ]$ `ddlist ltvalue set_tile_style vpt# ~, i2 V* I( h. ?9 |% p
ddmline ltype set_tile_tag which_tiles% _3 z2 e7 W( Y" T+ G# n& p) X, M
ddmodify_err m set_tile_text wid
5 \3 b( l/ w2 ~4 f9 d0 K" d/ Zddmtext majrad set_tile_vpt x
" _' a0 o8 Y6 S0 G) U; \ddpline make_lay_lists set_tile_wid x1
; J$ x; K3 u* Cddpoint make_lt_lists set_tile_xline_pt1 x2
, \8 ]7 D( W! a R$ Y1 h8 T, d, q) Oddray mdashlist set_tile_xline_pt2 x3- E9 n8 ]1 Y8 J {2 \4 I. G- ]
ddregion minrad setcolor x47 Q* m) J3 E* [9 h% p( ]2 Q
ddshape modify_3dface shght xdlist
2 N; M; S; D0 Gddsolid modify_3dsolid showpt xline_pt1
, p0 O. h) d, k/ S" c/ Oddspline modify_arc size xline_pt29 k2 z [) \# x, q1 T
ddtext modify_block slist xline_x1) U; c3 V! K0 K& V0 z
ddvport modify_body sname xline_x2& W d5 q0 B4 Q9 m# R; R) v( W
ddxline modify_circle sortlist xline_y1
& [& P. w# P5 sdenom modify_ellipse spltype xline_y2
) f1 f. L K5 c( S$ K$ d! qdialog-state modify_image ss xline_z1
( U$ k5 j) S. [. X; Kdir_pt modify_line st_ang xline_z25 |8 B% p2 X5 C' R N) z
dir_ptx modify_mline stpt xscale$ k8 k* u+ D) j% ]2 O
dir_pty modify_mtext style_act xx
0 m" D) N( T7 a& d6 Odir_ptz modify_point style-idx y& ]- g9 \7 H2 `4 z( S
dismiss_dialog modify_polyline style-list y19 U% z$ V6 V( _9 `$ E4 R
drawpattern modify_prop_geom tagval y2
% A. `7 F, N: w% B8 q2 r" n4 Zecho modify_properties temp y3
" E( b) W: N& b2 i% I: jecolor modify_ray temp_color y4
2 @: G* S; G$ C- q ~edge1 modify_region temp_dir_x yscale
3 @7 ]0 l: G; D4 C4 nedge2 modify_shape temp_dir_y yy8 E. ]( N, R4 v; D
edge3 modify_solid temp_dir_z z10 ^" ` p( s/ W# c
edge4 modify_spline temp_xline_pt1 z2, M' ?( q8 f8 J8 t9 J
edgetest modify_text temp_xline_x1 z3
' h' I6 T/ K$ T& f: s' `elayer modify_vport temp_xline_y1 z4# B+ N; v5 _5 N$ |. A T
elist modify_xline temp_xline_z1 zscale
- v* T8 J$ P" Eell_calc modlist tempend_eang zz
* Y, d6 }* b+ I& U3 T [0 Kdir-idx safe_ddedit ver_MtextWidth xcliponoff+ N$ u* r( V- F- O* j
MText_style
' L& F; ^+ E6 B) M) [ ) T2 b0 ^0 c8 V0 t8 E: [
, ^ d" _6 x7 h. M
(setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho$ u1 c$ E* G4 P* i* E
old_error *error* ; save current error function
+ W* B+ j* s" K: a *error* ai_error ; new error function
/ I- w* y0 y% A( h ), A, w" q( A/ n% P& P! @
! t- Z6 _, h, M: _+ W (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
6 z5 g' D; Q8 B: V/ j' F (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
9 K& ^1 l+ |# l (setvar "pickstyle" new_pickstyle) ; bit and set to new value3 \0 _! u+ K% N! K
. [7 @( [9 _" @3 s7 ] (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)$ a; |1 b5 @ ?- M4 R' _: ~6 ?, z" Y
(t 1))). T' A( s( U( p+ t- L
(cond
s, A2 N" E% `% t# E. L6 ~3 l ( (not (ai_notrans))) ; Not transparent?
9 t2 o' y+ ]% Z( e. z- A ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
0 j+ k. O. @6 K4 k$ O( B ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
4 L7 O+ B% D# u0 |7 u ( (not (setq ename (ddmodify_select)))) ; object to modify?
; S2 R3 k) T0 G: \0 Z2 H# S
% ]) R. ]$ X& C0 b% M/ Y% W/ @ (t (ai_undo_push). F4 ?. c% N1 n' _/ t1 \6 W8 e0 ^9 T
(ddmodify_init) ; everything okay, proceed.; [6 w* k2 i- a3 L! V
(cond
7 v4 a+ ]9 A5 X+ P0 q4 _ D ((= etype "LEADER")
6 G A3 Q/ m# v8 i# T9 r (setq help_entry "modify_Leader_dialog")* v: \4 N& B9 K* D. w3 ?
(ddleader)
0 P% N) s7 S# B0 S4 c5 O )
% E3 z3 T: z: r* E0 d, E( R ((= etype "ARC")
0 r2 W1 W. `. u (setq help_entry "modify_Arc_dialog")5 o& Q) [% n+ F$ ?9 J2 |
(ddarc)! Y' a: M5 O7 Z
)* j# H8 D; l% U
((= etype "ATTDEF")
6 p& F+ K4 {( t# k1 p( G. \3 k (setq help_entry "modify_Attribute_Definition_dialog"): B3 q( B& k4 W; f
(ddtext)
( H! T( r+ Z4 G, z) E$ b, B$ L" h )1 n- z) d- i* ?7 v6 e) F. n
((= etype "CIRCLE")' c6 _0 B% C6 f z+ J b9 L+ x7 a
(setq help_entry "modify_Circle_dialog"). P8 t3 N+ h! u% t9 f( T
(ddcircle)$ E r6 P) a4 Y. @
)
. C+ b& f- S5 R l/ ^$ d% L ((= etype "ELLIPSE")) w) u- Q" o5 V1 ^& G
(setq help_entry "modify_Ellipse_dialog")1 K. h9 a' V. Q( v% h
(ddellipse)
$ S) p7 V- i$ Y+ f" P5 w )
' c3 s# G5 b/ Y7 W2 ] ((= etype "3DSOLID")8 A- q( s3 X) Y0 z# m* D
(setq help_entry "modify_3d_Solid_dialog")
/ o3 W. P: ?' h8 `! c# ?& ? (dd3dsolid): C- W2 y! q2 p: C! I4 U- f, C4 o
)1 b, b' ?6 h) ?/ M
((= etype "BODY")
1 r" c6 t M; T% J0 T0 L: u (setq help_entry "modify_Body_dialog")
4 k& W, a9 s% q7 m K8 ]" Z (ddbody)' T; l8 H" R# t$ k; [
)3 T4 ` A, f* \% E, f
((= etype "REGION")0 n" Y4 ?/ F$ p R0 }9 Y5 m5 G
(setq help_entry "modify_Region_dialog")
& J* i7 _+ ?$ _# T- d (ddregion)
4 c4 F1 A. b% m J( M- y; m ); \) G7 J5 ^) B7 O9 D2 A# x
((= etype "HATCH")/ N' q0 L$ O" S4 E
(setq help_entry "modify_Hatch_dialog")
& t5 ~0 C- u9 a9 t& z$ p (ddnewhatch)! g9 w* b/ T7 w" m1 U0 v8 ~' s
)
9 O8 v* T$ ]$ z' ^" ] ((= etype "SPLINE")
# n2 {! G6 p/ n (setq help_entry "modify_Spline_dialog")
8 j% N" C+ J& o4 o' t3 Y% v& _: c# m (ddspline); `2 E" B8 V" G1 c6 q' D
)
. D) G( m7 Y y% g ((= etype "INSERT") ; see ddblock for help_entry6 E/ z6 Q6 x+ t
(ddblock)
' ]9 u* j% M6 |: [ )* I q0 ]4 p. ~$ ]
((= etype "LINE")5 B0 Z( M% `( M2 J% Q& {; j; ~
(setq help_entry "modify_Line_dialog")
0 U% m, L1 }+ F* [+ q (ddline)
( F$ T/ e; M3 i& v- |1 | )+ Q. r4 c/ a: s+ z+ }0 Y l
((= etype "MLINE")
& F4 [! D2 a% V: Z+ [: w0 C8 B (setq help_entry "modify_multiLine_dialog")' [* D2 u& ~; a# s; A; h/ R+ A
(ddmline): _" i" }4 _, l6 C- m0 Q0 H6 {
)) ]* m, i( C+ s* O
((= etype "RAY")
% z9 Z9 `! _( ]* s, Y$ V (setq help_entry "modify_Ray_dialog")7 d& c* b7 b2 V% A1 V$ e+ ^
(ddxline). Y2 K0 F. ?& Z0 Z
)
' X6 n# v( [& L% O+ P ((= etype "XLINE")
" O9 R: r- u0 I | [" w* Y (setq help_entry "modify_Xline_dialog")
/ j4 c- t) u* X1 z! K7 ~# g4 H (ddxline)' K r$ n, Q# u7 e
) V( z k! J+ E% D
((= etype "POINT")$ t/ K9 i. p! S. i
(setq help_entry "modify_Point_dialog")
5 ~& s' |! B' ]8 Z8 z! q% n: w+ | (ddpoint)
' [# Z& T) h( B; J+ c% a )
7 u3 A# y4 R" M ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))! ?4 r$ x9 e$ I% ?1 {
(setq help_entry "modify_Polyline_dialog")2 l: [ p3 U; ]+ Q4 R" n W
;; If a 2D pline, check to see if it is planar to the current
8 t+ T( X" v% T1 y/ c' _+ \- E9 [ ;; UCS, reject if not. To see if the pline is parallel,
( z7 M* L( _! i0 r4 K s. d1 r ;; the 210 group (WCS) is added to the current UCS origin (WCS)
7 {0 L) C7 j z0 v/ R ;; and then converted to the current UCS and checked to see if
6 P @" s8 C) O& N ;; it is equal to (0,0,1).7 b9 d8 r- q# l$ f7 ~4 M9 r1 C
1 n! u: y& a' {/ m7 `8 @ ;; Incase the 210 is default and not in the dxf list.
, M( r7 j$ J+ s0 T6 ~- i2 H (if (= (assoc 210 (entget ename)) nil)" o( o/ i! P" D( J4 N. Z3 B) j
(ddpline)
% i' e( H7 h" X) y {" \- Z (progn
: k: {% Z, W5 ~! c. g5 h (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))) k" M3 ~, l ]2 G' Z9 E
(not (equal '(0.0 0.0 1.0)
2 Z3 E5 }0 y' Z" o2 S (trans (mapcar '+
9 f6 K& u' b6 m- y4 M. e (cdr (assoc 210 (entget ename)))! B z# k+ ^! f- `* V3 y
(trans '(0.0 0.0 0.0) 1 0)6 N0 w' n. R9 N: V
)1 K6 P ?# e* b" u
0 1
# F4 x, \4 ?6 ~ )
; h* m; c" g, G3 O 0.0000000001 ; fuzz; e( x$ F8 O5 \4 h& \
)
& A. @ t. S6 F! u )
; ?5 Z# S* v1 o+ i- u )
! g& f, T7 W, P3 Z7 ? (princ "\nThe 2D Polyline is not parallel to the current UCS.")7 W3 b1 {( x" [6 I' k7 e1 M
(ddpline)
9 c5 O! E5 ]3 h )
) K- r# y* \8 X9 T )3 x$ `" U9 C+ F9 _8 C. I. p4 B
)
- x$ H7 [! ?$ f )$ T! Q; |* n& U) h! d
$ T9 H& Q9 n& Z; e0 \
((= etype "SHAPE")
) k, s1 Q6 B* u; O4 v) B j (setq help_entry "modify_Shape_dialog")- K9 u8 v* l/ v d* {9 k- a
(ddshape)9 q$ c5 V* z) P7 b9 Z' t8 a
)
/ T7 Y" P5 y( V( f( U ((= etype "SOLID")6 |3 ?" [# R* V; C( \$ |
(setq help_entry "modify_Solid_dialog")" Y; J2 q3 N4 N' h5 e& q1 m9 g; s
(ddsolid)
1 E8 f5 P2 A8 H# U" A- F$ h )2 A# |8 z Q! ?3 p0 A# r7 {! n
((= etype "TEXT")# W* `- @" ]# N2 S) t
(setq help_entry "modify_Text_dialog")4 |5 J, w7 w2 c( K2 |: J& `
(ddtext)6 d5 M" t1 `8 R1 v2 q- T( O
)" \2 _8 A" u% \
((= etype "MTEXT")5 a# @0 \' Q( q* g7 K& I5 H
(setq help_entry "modify_MText_dialog")$ Z9 @( E. A4 f0 ?
(ddmtext)
' x% l& ]6 s! b( L )' I& Y: y3 c" G. @8 ^
((= etype "TRACE")4 [ [% l6 V5 [2 R- | I
(setq help_entry "modify_Trace_dialog")
5 `* I$ h5 p" b7 J9 |: p (ddsolid)
9 k v9 I( E: T. y/ q0 H )
) _* y* N& j' |9 B/ ` ((= etype "VIEWPORT")+ M1 ?, Q6 e: J2 C8 h
(setq help_entry "modify_Viewport_dialog")9 X+ [) w/ l/ q% z8 V i; R: h6 Y
(ddvport)
* A2 s! \4 J/ Q4 R: C ). |2 k; T$ i. j2 }- K6 |2 b
((= etype "IMAGE")
/ k: U7 `( \4 s. Q, A7 Z6 o (setq help_entry "modify_Image_dialog")
% O) n7 X& ]; k, [ (ddimage); t4 O" x& [& D! g- K$ M- _& t
); g8 H, w: g2 z* W( @ K- u) a4 `
((= etype "3DFACE")! P8 Y. k# u* z9 ~3 C6 J4 j
(setq help_entry "modify_3D_Face_dialog"). ^8 Q6 l4 W/ k
(dd3dface)
6 k: S+ m3 D+ u ), \0 U f; F( i! K& ]# G
((= etype "DIMENSION")' j: W5 F! g% b! I9 q: F: Z5 c8 e
(setq help_entry "modify_Dimension_dialog")0 k1 {' T! P4 C: A7 L
(ddimen)
' t; }& G, A& g" \+ |& w4 Q1 Q )
' Z+ f6 w4 p; Z2 u ((= etype "TOLERANCE")+ `/ s3 j+ D3 u% w8 R1 ?. l
(setq help_entry "modify_Tolerance_dialog")/ a# o* F- D# b. _
(ddtolerance)+ [0 m* f7 u K! K
)
. V* g6 n' N$ f7 [' o* ] a( \;; Fall-through condition changed by MCAD for MDT 1.1 release.& e- o& `# X4 g5 \' Z7 U0 g( `
;; This allows DDMODIFY to work on any custom object or any new object type
. i/ V5 E+ G/ Z& \$ Q0 L;; that isn't specifically handled above by calling the more generic DDCHPROP.
( M# u: a. O7 M# g" v (t
) C. R) ]5 N' I' m8 X (if (and (not ddchprop) (not (load "ddchprop" nil)))% a( z% M' v5 G* f- B$ \
(princ (strcat "No dialog support for object type: " etype "."))). j9 P7 y, m- @6 N1 S( P
(progn5 o; A2 v$ g* ` [" R
(setq tempss (ssadd ename))
* Y7 R& S# T: r. H9 m (ddchprop tempss)8 B+ @( p8 C6 W3 d. `* \* n
(setq tempss nil)5 M% ?8 T- l K* m) F$ w
)9 H7 M+ M/ z0 V) K% \
)7 L7 F8 x' X/ N. _# Q
)
% n, a/ O! z0 R7 U;; Previous fall-through condition.
$ n8 |, }- i/ a5 V) |0 Z;; (t (princ (strcat "No dialog support for object type: "
( o. Q. f( `% O9 ?# T" Q8 r, f;; etype "."; h4 v4 M& @: n! O
;; )4 {" M+ |) F" @
;; )
* L5 w) _& D5 s0 x' P7 v;; )
: U8 P+ E/ n+ ]( S, T;; )* z' m* M% t2 g9 o X% @, }# N( u$ C" D
(ai_undo_pop)
3 k5 E* L. K5 O )
5 a5 }) j$ a) i$ Q8 ~0 y7 V )6 R1 r- l I0 s( k
- e8 V/ n! R. t* h0 O9 o (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle! }& ^2 R% l; L F* c' B1 ]
(setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
2 z$ a+ g0 H% V& M; u ) ; to what we started with+ T. ?9 o) S1 Q9 a* l
* K; \; @. g; ?7 V (setq *error* old_error)
1 _0 C g6 D$ W (setvar "cmdecho" old_cmd)% M1 C! h( V5 p" N8 D6 P% W+ P f
(if (not reset_flag) ; if object was modified, then5 x7 @2 K' w8 y6 z5 S
(ai_return ename) ; return it's ename to caller6 F% f# C% {9 A" j/ J2 }; c
)
9 O3 C* R+ L) R& U$ Z)( b u) p3 H& i8 l+ ~
! k% C' t1 S6 D+ f4 ?( [
(defun checkForLockedLayer (ename), L/ r1 R* {. H+ n4 E; t
(setq layername (cdr (assoc 8 (cdr (entget ename)))))
! M; r) O: `7 U; t$ J4 i% U$ h6 J (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))7 S5 z. u' A* d. t# M' E: K
(if (= layerflag 4)
. i& @/ n1 D* m4 m4 p2 |; z/ t1 C* l% \ T
: {/ R9 z# P) }3 F nil
( h( e& p& Q: p* l+ B )
6 p& N8 e3 o/ h6 l; l2 X# `)% f, h; X+ {9 L6 A2 d, Y- F& b
" f( v8 c# _3 D8 ?( {7 w(princ " DDMODIFY loaded. ")
$ f! z+ P# k- u- z: R% M(princ); Z. H8 U1 F1 U$ n7 T
;;;???;;;---------------------------------------------------------------------------------------
4 r: Q5 [+ Y' y) T! R- A3 F
. [! j1 Q8 [& J5 J2 B; Next available MSG number is 8 ! I$ ~# \' ?" l. ?
; MODULE_ID DDUCSP_LSP_% c. I5 c: K: ?$ X( t) Z6 Z. [
;;;
. z1 z3 }3 ~0 {. Y;;; dducsp.lsp
- L' y* V8 P9 f2 E: o1 v;;;8 e4 \0 C8 S2 [1 S
;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
) Z. Z5 `* P8 P( B;;;+ W) G8 S; k: `; v) |
;;; Permission to use, copy, modify, and distribute this software8 r1 f- ^1 v* O
;;; for any purpose and without fee is hereby granted, provided
* h5 t7 u3 K' B8 m;;; that the above copyright notice appears in all copies and
& ^& G& `7 S6 v# j;;; that both that copyright notice and the limited warranty and
$ F! j0 h8 e" `. |;;; restricted rights notice below appear in all supporting4 ~/ S' c* {8 _3 F+ a$ d
;;; documentation.
. y6 i2 F; R- j7 R+ T;;;
1 u0 s" B6 o& v/ E;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.7 v4 n# B, E% }9 U
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF3 z- A+ V; J. T( U6 h! Z
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
/ x5 F) Y9 T# X;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
# F7 V" R; q9 Y _;;; UNINTERRUPTED OR ERROR FREE.
0 R: ~, z3 Y) F0 a% z5 C0 M7 g8 m* s;;;/ K) y v. W: m ]
;;; Use, duplication, or disclosure by the U.S. Government is subject to
* G7 c: @8 x1 \" x# l& t;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
. ^* D5 L7 ^2 `' b+ Z; O;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
! a% M* _4 k: [9 s! M7 o;;; (Rights in Technical Data and Computer Software), as applicable.4 B, n: g; M# m: X6 H: |
;;;( W" R7 H7 G# l( z; j2 s1 V0 n
;;;.
5 Y) S9 X. E. }% J' u6 c;;; C:DDUCSP - User Coordinate System presets dialogue.
' g' Q9 R. u: R- f2 X: A4 a;;;
1 [; w: U( Q! Q8 ~4 R5 ]9 A+ d;;; Uses DDUCSP.DCL for the dialogue definition. The
- \- \) p, t3 n1 h7 `;;; slide images are in ACAD.SLB.# s3 `: q6 G3 V0 m0 t( C
;;;
9 s, r$ C( R0 a2 O* | _;;; ===========================================================================; v( ^( U. x: Q) X* z/ G) G" T& R
;;; ===================== load-time error checking ============================
6 w8 `% q) ^% g;;;% j9 _; @ H" C2 K6 e; |
1 x- p$ I( q, n (defun ai_abort (app msg)* j9 g0 s. R" a2 D6 p8 k @ L8 l
(defun *error* (s)
- G( g% h5 p7 K. D5 X, k9 T- W (if old_error (setq *error* old_error))
' \7 G V' ]# o5 j; x (princ)& _1 Q& ]7 I U+ `5 H
); ^, D4 P1 V( S2 P& F1 ^
(if msg
+ w8 b' T0 B! O (alert (strcat " Application error: "
3 A n$ _7 o2 \, V app
" o# s$ S7 n$ B M) C " \n\n "
: j- |. E7 I/ K. g0 i* t+ i msg# W, [$ _3 E) N4 y. s7 P; t
" \n"; Y3 r7 |; S- O5 k8 ~
)2 V( U& S, r: i* S/ }; L) L
)
0 J' N# c+ v/ `! f* ~0 Y )
/ T/ m5 O- M* Y O3 P j (exit)+ P! V+ r1 J. a
), ]9 |8 F; d5 h2 W
% h. {- ^: S* {. ^, M- h;;; Check to see if AI_UTILS is loaded, If not, try to find it,' U2 k) q! v+ q$ a E, B
;;; and then try to load it.' e3 {& D! |+ i) r! R6 ^2 r8 X; b
;;;
2 ?& m8 i0 f" s F: l" J;;; If it can't be found or it can't be loaded, then abort the
! E) x, C, C6 U2 n- P, R9 P' b;;; loading of this file immediately, preserving the (autoload)
1 B7 K4 i" W. i" F ]2 }% m3 \;;; stub function.
* x! {5 v& t% l4 Z; x0 M: |9 L
6 }; p2 g1 o* R: T7 g0 { (cond
# K7 T8 H4 O5 o5 \ ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.7 E- F" d, m1 C. Z6 P( T
$ i1 Q8 G# u- P: z. j9 v$ B
( (not (findfile "ai_utils.lsp")) ; find it
4 }1 `: o* O' g. o* j (ai_abort "DDUCSP"
) ?& I7 O; |8 {7 W; C (strcat "Can't locate file AI_UTILS.LSP."
$ i9 r- l0 X3 ~- `: a+ l "\n Check support directory.")))) G' U" C% l! z: q
^( W+ {& e( h9 D
( (eq "failed" (load "ai_utils" "failed")) ; load it
: h, e1 E/ J" _+ b$ K f8 J5 V (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
( ^4 }. [/ Z5 K+ F/ \6 J )# ]$ f( {( F9 I
* _7 k! N' j' d (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
' d& D) {# D+ k' Y (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
3 t- i% ~% e7 o* Z ) ; ai_abort's alert box dialog.' }/ X# M7 [; f, r0 g$ J# N. g. q+ j; b
5 b/ c5 o. Q" b) p M2 a% p
;;; ==================== end load-time operations ===========================: A. Z* s5 k) b, c' u" \
+ e2 F" y+ g; R' e) g1 q
(defun ai_ucsp_start ( / program)$ u" o8 W, T7 N
;; Get program name
/ ?9 c C6 J( R0 G) H* G9 [ (if (not (setq program (getvar "program")))$ f: |' I8 v* f! d
(setq program "acad")/ d" n( E& X" |9 v
)
8 X. `+ I6 F- P) r: v, x, I# Q (foreach v0 '("world" "left" "cview" "top" "front"
5 V! b$ G2 W+ @) y "bottom" "back" "right" "prev")
2 B& G& E6 i9 T; r) O ?. V2 r (start_image (strcat "ucsp_" v0))
% E' ^% l$ Z) z& x% I( ~, L (slide_image& D: T" J3 V0 @) i/ Q
0 0
8 ] I$ V" t# v6 Z" v9 w- m; q2 @ (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1) z; x( Y1 f* F5 N3 }7 }
(strcat program "(u-" v0 ")")
. I; q+ }1 k1 R g/ A: Q5 ^6 k )
4 M8 }7 } {; s! G3 W (end_image)
: ~0 w# G) t# b5 k1 f' _) X )
% p6 H9 I% _) S* g) x3 p5 p)
/ z- B2 g+ I) H! Q( u* T6 @# Q; ?
- h& X! g5 E2 B( G(defun ai_ucsp_set () n" d0 y5 S4 S8 b3 A1 g
(if ai_ucsp_sv
' _7 D3 q" ^9 P# b! q- R (command "_.UCS" "_V")
( @' O0 T* n8 a+ K (if ai_ucsp_prevs) `, \* ~* N, d( l. O7 w ^$ D
(command "_.UCS" "_P")* k/ Z$ a! n7 L" h# P8 Q' ~* H" x% u
(if ai_ucsp_chg6 u/ V' @$ S. ]6 J* Y
(progn& {: {, @3 Z2 E4 [
(if (/= ai_ucsp_a "*")( ?- g% G4 H4 l+ [( |: p, L: V
(setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))0 P2 r6 N1 h* Y
)
( |4 G m! `' l' N! ] (if (< ai_ucsp_pick 6)
$ \' _0 m! L5 a5 K% t6 L( S) C- R* c (setq ai_ucsp_set0 "@")0 h2 D; Q8 O, h: a2 k
(setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")
/ r5 h( x( U8 h! a$ v3 K )
6 z- [! t% {6 h [' i- [. n3 P' f (cond ((= ai_ucsp_pick 0)
. k7 i5 E+ F& A4 `& r+ i! r (setq ai_ucsp_set1 "0,-1,0"8 Z3 r S. {' j$ n1 }" J- m
ai_ucsp_set2 "0,0,1"
) N9 p% T4 I7 C% M )
/ E+ S( _6 E, T" x/ k8 ^& x% L7 H )
! u! q; n9 H5 p( C% E ((= ai_ucsp_pick 2)
9 x8 V- }! C1 k3 { (setq ai_ucsp_set1 "1,0,0"7 ]$ S) I0 |5 ~. ?' a
ai_ucsp_set2 "0,0,1"
" [3 V) A, p0 x )5 x, G5 E* Q. C7 U- `
)
/ a1 _$ l- X+ G1 \, S5 l ((= ai_ucsp_pick 3). F2 ]2 N2 a5 M3 J& f
(setq ai_ucsp_set1 "1,0,0"' }1 w' J- s3 F
ai_ucsp_set2 "0,-1,0"1 r* M0 i t$ g- z5 u
)
s: z5 k# }- S# r; ~8 c )
9 x7 P# Y; b# _( s' ~& l ((= ai_ucsp_pick 4)
* A5 X2 s+ O" i) O4 l (setq ai_ucsp_set1 "-1,0,0"
# ]8 {7 S$ r& ?% E$ x ai_ucsp_set2 "0,0,1") V7 @0 ~; a/ b& q6 d
)
+ t) ]% w4 c/ y" Z )2 C5 W; Q% {0 f: c7 b. ^
((= ai_ucsp_pick 5)
* k0 U! a' C2 t" _% b. ` (setq ai_ucsp_set1 "0,1,0"
0 d' j2 `# o& i ai_ucsp_set2 "0,0,1": ]7 V2 e0 W: J; a7 x
). n; l8 K3 A0 Q; H: H
)9 S6 w$ G, o D; l' N; t$ i6 L
(T. K B( J* k( k! `- r
(setq ai_ucsp_set1 "1,0,0"
+ }! O* G% b8 P; _% ~0 e+ S ai_ucsp_set2 "0,1,0"
& H: W: x4 l; C1 J% h )
$ k) Z0 J G8 T ). _. \; {# v9 S& h
)
4 |) Q8 P4 P# U, w4 q& l- P) L (command "_.UCS" "_3P" ai_ucsp_set0
2 Q$ E# W5 _+ z3 z" y (strcat ai_ucsp_a ai_ucsp_set1)
9 \; @( ^' }2 N% x( t t0 i (strcat ai_ucsp_a ai_ucsp_set2)' _" s; k7 ]$ j. X3 b+ y
) / A. L9 o/ y2 K$ W: J
)/ ]# k1 B1 z6 x0 w
), a* n! X# |; u* O
)
, R7 r; v S% | )/ x3 c+ b% [) L9 Q5 S% c k( |: Z" q
)7 @$ m- I& z) }
2 Q! j0 m9 m4 \/ S8 j, Q" j% I- J(defun ai_ucsp_p (val currtile); \ w( s1 W; e% z- |
(mode_tile ai_ucsp_currtile 4)
& O8 } Y- E1 o* \ (setq ai_ucsp_pick val
3 h! R2 |$ f3 L% X! A ai_ucsp_sv nil" o4 a* D8 A& K: D- ]
ai_ucsp_currtile currtile
2 v; ~ V, \* e& T( a, }- D2 i$ L )
0 n& R, S( z9 M0 g- R+ A# ]/ i (if (/= val 1)$ X# M* k4 H# o8 }
(setq ai_ucsp_chg T)
' W' E& X8 a( X" i6 i- q/ I )
) ^8 I% @+ S; s; b3 i- D$ L8 A( D (mode_tile ai_ucsp_currtile 4)
+ f% C# x7 l) f- l! m3 Q `: {): g) |& x2 _- X# L
' h' S/ N$ }3 n9 Z! t(defun ai_ucsp_swcs ()
9 w! \ d H, G% @" B (mode_tile ai_ucsp_currtile 4)
' ~! Q$ J- v# \' D: F (set_tile "ucsp_a_wcs" "1")
, _ q$ m4 C9 a ?! W1 S (setq ai_ucsp_pick 6
/ M4 u/ ]7 d) {% O2 r. r: X ai_ucsp_sv nil
3 X; F3 [# k5 t4 n1 o* X ai_ucsp_currtile "ucsp_world"
4 q+ E$ W6 Y" T% k2 ^" U )8 F7 C' u+ Q* H. g$ R
(if (/= 1 (getvar "WORLDUCS"))
: N% g2 }- g+ o6 P5 } (setq ai_ucsp_chg T)- u; R( [7 s) Z8 ]3 A! w( L! `; a$ R
(setq ai_ucsp_chg nil)
$ n5 O* b; a3 F4 w& S1 q( d0 S ), n4 U; {$ c% o0 y
(mode_tile ai_ucsp_currtile 4)
2 K0 p" [2 [+ J2 N1 P4 ^)$ z9 T: A) v0 N' k c7 N
, R; z" H5 w# \# O7 N(defun ai_ucsp_cview ()
- F3 c( d* O# j1 w3 v (mode_tile ai_ucsp_currtile 4), [' l1 Z/ m, ]/ p, ^- u- @
(setq ai_ucsp_sv T
1 f( A7 P y% d8 V) j# y ai_ucsp_chg nil
Z. _3 ~' \6 f* l$ G6 x* Y ai_ucsp_currtile "ucsp_cview"
5 q+ ~: P: R S/ h- Q )
0 r- J6 X _2 V (set_tile "ucsp_a_wcs" "1")
; O# |8 a- O w/ m2 L2 P2 H/ G) q (mode_tile ai_ucsp_currtile 4)
# G; F* K# [( p5 {9 v)
# W* W* o5 z6 I* [3 p3 m2 D+ ?3 r7 [ B! \/ d" P, ^2 q
(defun ai_ucsp_rucs (typ)
; G2 W: K- Z2 | (setq ai_ucsp_a typ)
9 H( w+ }' J3 {) o (mode_tile ai_ucsp_currtile 2)
. l: `+ k+ Q. D( U) D)% t4 [3 p) t' u5 T& E
1 o5 X4 H7 `( `5 {6 w4 U$ Z D(defun ai_ucsp_prev ()* C5 O3 L! T( ^. j* ^: i4 j Q
(mode_tile ai_ucsp_currtile 4)% O4 T3 D- v8 I5 b) B3 Q4 x/ Q
(setq ai_ucsp_prevs T' r2 a4 ] {8 C5 x! M+ U* |! n
ai_ucsp_currtile "ucsp_prev"1 n6 A+ h, O6 `/ B, j
)
4 z$ `" w9 l" x2 V! E. _$ ?+ n (mode_tile ai_ucsp_currtile 4) X1 F5 E, S0 |* K
)& M; i9 p9 P- r6 e5 u) Y' s
9 W. @8 d/ @" r- c& p, R* G
(defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
% `: [& l# {0 Y, O (if (not (new_dialog "dducsp" dcl_id))
' v/ J: D4 `$ T' Q$ A Z$ U (exit)
, _% Y0 |, f: W% }) z3 X) O' b4 F )! x4 l8 V# s2 J3 W1 B
: e) s( ~9 W+ m
(ai_ucsp_start)! [ U: J8 H0 I3 Y3 u
(setq ai_ucsp_a "@" * L% X: \' B/ a0 I6 ~9 z% Q
ai_ucsp_pick 26 k+ j: k+ H6 `! G; t/ s3 f4 V4 W7 D
ai_ucsp_currtile "ucsp_top"6 {, U" J. i2 }. r/ L
)# D5 A# D X- w" [ q' ^2 l
(if (= 1 (getvar "WORLDUCS"))
3 J8 w) }) R- e! Q0 a& I (progn
* c+ g. z p7 R# a) j (set_tile "ucsp_a_wcs" "1")
0 H* j+ ~) o4 p' A) P T (setq ai_ucsp_currtile "ucsp_world"); ~: d: K" {: }! f. ?3 n% y
)
8 d3 J/ O+ n7 }" c (set_tile "ucsp_r_ucs" "1")
, v, E9 p/ ~' y" ~& }9 `. V- j )
" c4 C) b0 w) L4 j (mode_tile ai_ucsp_currtile 2)
6 i) y, u% r7 V# Z7 l& { (mode_tile ai_ucsp_currtile 4)
; ~/ ?- [; z% @( b& A& { (action_tile "ucsp_world" "(ai_ucsp_swcs)")
! p- t7 W: ^* ]) R' _ (action_tile "ucsp_cview" "(ai_ucsp_cview)")) o9 M$ D+ g( X4 i8 R
(action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")" N, x+ R! `% u* ~
(action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")( a7 {% r) w0 I' y+ y
(action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
# ~/ Y+ ^2 D+ f: y2 ? (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")+ [0 k5 }! E+ Z) q
(action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
9 d+ C9 ^# q* o (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
% a' l; e( a% `3 K (action_tile "ucsp_prev" "(ai_ucsp_prev)")
+ u# ?' X* u+ C% E$ F) _ (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
4 N: y4 C& {0 g$ C% g (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")+ Z' A6 @: [3 |) r: {
(action_tile "accept" "(done_dialog 1)")4 x) q' }; P8 Y
(action_tile "cancel" "(done_dialog 0)")
( ?; d& G l' H' J. d5 f (action_tile "help" "(help \"\" \"DDUCSP\")")# B% U; Q! @; c: P _1 y
(if (= (start_dialog) 1)) q. V6 o; l% d( C2 ?7 D5 a3 {
(ai_ucsp_set)
/ J7 |; x# o, B: l" }% Y. k )
, p- G7 J# G! g: k9 J$ i% G0 [) P& S7 E" ?: N U
i$ v: k2 L4 n: l
(defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs 1 Q4 L( y9 @7 u: N" Q
ai_ucsp_sw undo_init)
" F2 w' C9 O& ^+ p+ X5 p- [; ]
& y$ t* ]9 d* o$ M. A! A' t$ {; y ;; Set up error function.! x! _5 A. S' b5 @
(setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
& U( L: W q4 o% f* l3 q. G# U old_error *error* ; save current error function
: B5 `) Z% P. M3 k: J* o *error* ai_error ; new error function+ c# H& I# S" S S: h0 A' @
old_osmode (getvar "OSMODE") ; disable OSNAP for duration8 ?/ E4 l+ o) S: w7 j2 Q1 O
)
- b; }0 I% V: D, `
2 e8 y' ^# g9 z3 E% t! C) a% [1 g5 ^ (setvar "CMDECHO" 0)
/ h) F4 c; G% J: i$ ]+ x
' E: P e, C3 Q- M z0 @ (cond" |5 R6 F( i# w+ [
( (not (ai_notrans))) ; transparent not OK
% T- W1 f; @+ r+ m$ @& `! ^+ _ ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?; e) T0 S& l7 D" B* q
( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
; ~/ r. f# o' K T1 X (T (ai_undo_push)8 t, l! B1 C0 }8 z( h
(setvar "OSMODE" 0)
# O S3 G3 U$ h; N (ai_ucsp_main)6 u; s9 k+ n& j# |
(setvar "OSMODE" old_osmode)
2 Y$ q7 e) [2 N0 C' |. F (ai_undo_pop)
( e/ q3 J7 s4 w7 e g )
4 a$ `5 _! d- ?& w ) u* K5 |( b( z! ]
3 B) G" P% p$ F O1 T X
(setq *error* old_error) # ^8 z! s9 `3 U% S6 z
(setvar "cmdecho" old_cmd)) ?) J- t; k2 @
, ^+ D$ s( S \) Q
(princ)
* ?/ w; h' ^! K8 p)& M! \" C2 C) t& d5 `
" X8 J/ p9 C; B! G: P- h(princ " DDUCSP loaded. "), K1 M2 _' H8 Q
(princ)
3 y- z: Y+ T+ L1 z$ \4 d }. n c' x) g
;;;???;;;---------------------------------------------------------------------------------------
' h: A! {3 J. ]& e+ |
$ S; O5 A- r1 t* u$ Z" i" s: T;;;----------------------------------------------------------------------------+ ]- @1 @( k x1 w
;;;
" [8 N2 {; k% E8 F9 @) Y2 t, };;; EXCHPROP.LSP , j) A* ~) H) v. l& Y) N
;;; Polyline and text modification capabilities added by
6 |9 W3 k1 O7 V6 O) a;;; Randy Kintzley
" ~; d& h* M8 s/ I. u;;; 9 [/ {. n* c) Q0 r
;;; Copyright (C) 1997 by Autodesk, Inc.
' |7 _# b9 g; `4 P3 q9 i1 k;;;$ B, t! S" S& N7 Y0 ?" j
;;; Permission to use, copy, modify, and distribute this software: M/ |" l: I3 r% o
;;; for any purpose and without fee is hereby granted, provided, P; q9 [0 P: r" K, ]
;;; that the above copyright notice appears in all copies and
. S( j Z2 T+ K+ T- r- k;;; that both that copyright notice and the limited warranty and' c& i; E. B6 ^+ W
;;; restricted rights notice below appear in all supporting1 M* t8 b9 y" ~. Q
;;; documentation.
$ N! \3 M- c( j' r9 c;;;
' P v8 s# k! y) h;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.7 S- z- H- b/ i" T
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF) h7 f; I- a2 c! [8 q( k% P- z
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.& s* w1 f4 G9 i R) q( s, | T2 B
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE* Q p4 y8 C6 L6 B7 n; ~3 ]$ W5 |
;;; UNINTERRUPTED OR ERROR FREE.
" d4 R4 |% O! J1 W2 d% G3 W;;;
6 i: o) q0 l4 x7 z$ A;;; Use, duplication, or disclosure by the U.S. Government is subject to% T- L3 o2 D& Q2 U+ }' X9 L5 `8 h
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer; X) _6 E' L9 \) e4 P
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
0 }5 x( _# K6 q \, h& a: ?' S$ Z;;; (Rights in Technical Data and Computer Software), as applicable.
6 v! `, X6 t! m;;;" r9 \0 M1 a5 T) X' A1 Q
;;;.
; ?# p- Z* L4 i- p6 ^9 o4 M;;; 28 February 1997
. f& M9 h: [$ P;;;
, [+ ^0 k; F: h;;;/ W' E5 R1 m; u5 X5 g( h! @+ K6 m
;;;----------------------------------------------------------------------------5 l: F) h0 q: }* ~/ v8 w6 L
;;; DESCRIPTION
m. R' d' n! u( d0 U;;;----------------------------------------------------------------------------
/ S9 Z0 @! \+ G# j# L;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This 5 I$ T. ^( ?6 a) ^& D
;;; command gives the user the abilitie to change several characteristics , @' F/ Z b9 d$ F! V6 d P. d& c
;;; of selected polyline and text objects.
! e- K& g7 c9 B" g% U' S;;; The style and height of selectected text objects can be modified 5 N* g- r4 s2 ?+ a* N9 A
;;; (including text, mtext and attribute definitions) as well as, width and
, Z9 G. X5 G8 [+ k5 x5 b; N;;; elevation characteristics of selected polylines (includes lightweight and % d; v8 @" @- I: H
;;; traditional polylines.): x7 k# N5 r; Y$ `+ O6 x, L/ n" b
;;;----------------------------------------------------------------------------5 S f0 i% R, L2 x* U$ y- z
;;;----------------------------------------------------------------------------
# u; w6 K/ V; U+ i: i# v;;; Prefixes in command and keyword strings:
9 n. ]6 r# @/ v D;;; "." specifies the built-in AutoCAD command in case it has been5 J, S* P$ F% h4 B0 O9 n
;;; redefined.9 g3 l3 m3 C' ^3 ^0 Z# ~
;;; "_" denotes an AutoCAD command or keyword in the native language
; o8 c) K( J% h& i: g% Z;;; version, English. V( U3 k. ^" c6 u; h
;;;----------------------------------------------------------------------------
' i. E. K1 N$ d; s: K9 V;;;0 e; k7 k; D/ k
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
. n' A9 k9 J/ Z9 w;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;, V- Z9 ]* @, Q6 e
;Functions created as result of loading file: exchprop.lsp9 `. i1 u5 }- X. _4 i$ _5 }
; DDCHPROP22 _! L# y i& R) P& \+ U. H; P' x8 ]- @
; DDCHPROP2_INIT: o, v- x( b$ z
; DDCHPROP2_SELECT5 ^: `$ ^3 r( S! L$ ~5 }
;) F# m" r6 F3 o2 M: K& H: ~ l
;Variables created as result of loading file: exchprop.lsp
5 q* A' _1 W) T2 k; OLD_ALLOC5 W0 e1 g& L. U, @8 w
;1 u+ V; u8 E$ m' n
;Functions created as a result of executing the commands in: exchprop.lsp0 j, n6 n4 D% G" g' o i# Y
;; i( D& f% I" j* @5 m
;Variables created as a result of executing the commands in: exchprop.lsp
7 J3 f; U7 V( e5 H7 ?4 ~+ u, a; AI_SELTYPE1 ~3 m% }2 I2 H) y0 U( |2 _% S
; BONUS_ALIVE0 @8 K5 r0 Z \9 d
; BONUS_OLD_ERROR" Z5 q/ {2 D' C0 s8 W k# H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/ Y! g, L! Q. @/ X$ ~& r" V0 w' `4 T
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 [' F. ]& l) ?" A! ?/ z# _, [* }' V
;;;
+ z& W1 _. w y# E& z;;; Avoid (gc)s on load to improve load time.
* b3 e) x& W$ ~;;;$ k2 K7 f# Z1 w2 S6 \
(defun do_alloc (/ old_allod new_alloc)
7 S3 M" g6 X1 W+ e. w4 x (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
! k3 ~% K* x, e9 {5 A+ g (expand (1+ (/ 4750 new_alloc)))
# G; I/ s1 A( z9 T (alloc old_alloc)
! S) F9 Z6 n8 M+ [& B7 L+ Y);defun: H$ H6 w. \ A1 L" ~ \
% V7 m% A4 b& U4 Y3 M8 A; W
;runs at load time - rk
: V2 V4 c. K6 [/ J3 K( t(do_alloc)' y+ }( e, A2 ]$ Y
(setq do_alloc nil)
* f% T- p+ C/ m- J;;;
9 v4 e5 p" i8 \9 ~;;; ===========================================================================7 i2 j& g2 q; y u) G T
;;; ===================== load-time error checking ============================1 N* h% a" L2 H8 y
;;;
$ w F8 z. p1 D+ h% N, z
/ d' t1 B6 K9 T+ ` (defun ai_abort (app msg) + a" w$ E! M' E- i1 C' n! S0 P
(defun *error* (s)$ q' i3 g1 f; t5 g& f9 Y( Y) {% C* P
(if old_error (setq *error* old_error))4 N* ~" ]% m4 g7 K7 E9 B
(princ)8 {! y5 ?, H/ b3 S
);defun
. G& D! t [7 H/ Z (if msg8 f/ G" @, B* N0 A8 n& y! X
(alert (strcat " Application error: "- }7 w4 y( A6 P
app
" ?: y/ B4 O' D/ g/ D " \n\n "
$ e8 [2 A7 W. {- G/ F/ H5 n msg. f* \9 K$ G. R+ @9 ^; _
" \n"- Z6 b) `6 D# w, o! a4 v! B( ^
)! ^" q7 W0 D: `1 {7 z- ^' A+ ?
);alert0 w' b. w8 j* D, Q9 l1 I; {+ H8 h
);if. R! ]& ^# x6 E% w* q. S
;(*error* msg)
" i$ k4 a% D; i, v/ b, q (exit)
+ F! g4 |& v2 A6 p );defun ai_abort/ x D/ A) r! u- _( D5 d2 W
" A/ ?& A/ H* t, o ^4 ^. S ^5 };runs at load time - rk
5 I( |. \& h2 ~7 L6 R' T8 A;(if (and *error* ;added the if wrapper around this - rk.: ?! Y1 q' Y: Y# M2 G/ V
; (not old_error)
, U7 [1 t2 l4 j3 I3 I+ G; );and , T$ v6 [" z4 p5 A" N+ H
; (setq old_error *error*);setq7 s( _& L8 c, \, K1 A: X
;);if
$ n4 R* \7 Z% ^* C( G
! P7 k1 ~- ?) a! C$ x$ E: d
5 g* A: F2 ^3 A; [- c3 j;;; Check to see if AI_UTILS is loaded, If not, try to find it,; W' S* f7 [# p S
;;; and then try to load it.
. o* s6 R9 C" X# S5 h;;;8 q* w! Z# \0 c0 |( c" X9 c& I
;;; If it can't be found or it can't be loaded, then abort the, W! J* e3 A4 G0 _; l
;;; loading of this file immediately, preserving the (autoload)( _8 c: Y, O* x% r. K
;;; stub function.
4 U4 M5 z# c3 {# D& ^7 b: \) M! D) Y- X9 b$ ~& \+ w7 B
;runs at load time - rk.& b% j' f" n) O1 z! C# l- {8 a
(cond4 d- H3 J- O4 A
( (and ai_dcl (listp ai_dcl))) ; it's already loaded.: `4 p# [) P) N3 Y/ d9 s/ O
( (not (findfile "ai_utils.lsp")) ; find it- |- S+ d- N1 I: H7 W* o5 n& Y" z0 N
(ai_abort "EXCHPROP"
! r2 y# h( r z6 h: ^ (strcat "Can't locate file AI_UTILS.LSP."2 T2 \5 }+ _8 F6 o( o
"\n Check support directory.")) `" g& O$ u/ ?8 r$ z3 x
);ai_abort
0 |2 j* I5 U/ p )+ h1 _( Y, }$ |2 T }
( (eq "failed" (load "ai_utils" "failed")) ; load it
6 D! h( P! d7 F2 v (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
G/ C" d) F( n2 l& y4 B' ?# k )4 Y2 K- G4 v, i+ t
);cond close
' x% p7 r$ m0 a$ M% t) U& n4 E) B/ l$ k3 B. Z
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
5 }6 Q% i' X9 V# q! D9 u (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
~1 e ?( X% N7 i& x: z+ ^);if ; ai_abort's alert box dialog.* I0 U/ x7 }/ l& z8 F+ @7 f6 N/ j
: I5 k) ~# k, X0 [, h;;; ==================== end load-time operations ===========================8 C/ h/ i8 c' ~* o7 ^
8 j( K8 l1 S! t' L' [/ F
;;; Initialize program subroutines and variables.' S+ |7 { K+ U. Z3 H O/ Q
# X2 y0 |1 m4 T- L) R" @(defun ddchprop2_init()
- M+ r B; @; _( J" B4 D X+ s3 v2 i6 R* k4 t
) |8 u: K2 S1 r$ [* v& l* A
1 O. V: ]" i9 ?0 M$ M0 C, | ;;$ D/ u" z$ X% d/ h
;; Define buttons and set values in CHPROP dialogue box1 V [: n3 N& u( K8 [' h
;;
3 R d0 [) S% V9 \# [2 a (defun call_chp2 (/ cmdact p1 p2)
- s1 |: `" K1 A7 A# |% ?5 b/ {: [/ V6 [6 U$ r/ X" D1 S/ a
(if (not (new_dialog "ch_prop" dcl_id)) 0 o: I2 G% G* w1 H5 X' d" S, ~
(exit)* s6 u& k$ k# N0 z9 r/ V, J: D
)
, \1 a# P/ J( j! j& V2 ~, q" H* y
. b% m+ w9 E: `$ \; D* n (set_tile "error" "")$ S* G0 k1 O1 d) Z) v% j6 S
;; Set initial dialogue tile values
: R4 v& n% w0 g9 t& [0 `: S (set_col_tile)
5 R S: x7 w, O, b ^8 ] (set_tile "t_layer" elayer)
( Z; F2 T1 O; T% j# E/ {$ H, |; \3 J/ c) g. u
(cond
2 `1 ]# F$ M. z0 J+ s7 i( h, {: R ((= lt-idx nil)% q6 v6 {& p& [
(set_tile "t_ltype" "Varies")
& ]0 h) o: o* G+ D )
, F- b5 m$ _3 W6 m3 A% t; S4 C* U ((= lt-idx 0) ; set tile "By layer & layer linetype") k8 r& n$ _( w7 E
(set_tile "t_ltype" (bylayer_lt))4 t2 l4 b7 ^* P. S$ ]% Y
)9 P& S7 [0 k6 L% Y
(T
$ I" F8 @# n1 _1 d (set_tile "t_ltype" (nth lt-idx ltnmlst))1 W( R, d) U" H' r
)6 b6 J& J" I; g2 M0 Y( E8 i% ^
)3 R7 }. d! Z: g6 m6 V2 G
2 C. Q5 d' S) {7 r- v1 f (if (or (= ethickness nil)& o9 B, Z* P7 [2 F. u Q% K
(= ethickness "")
$ M* }- Q1 a$ S- t. F3 q& g, Y (= ethickness "Varies") ' g2 k: g- s' f( k- t$ j
);or
/ F" w! m8 N2 Y* Z (set_tile "eb_thickness" "")! ~0 Y3 E+ ^+ o# n- H* I4 z
(set_tile "eb_thickness" (ai_rtos ethickness))1 c( f% W/ z' Q2 W; T$ k
);if' ]8 p) r+ z3 k9 }4 }9 x3 F, E
(if (or (= eltscale nil)% T0 [. r$ d7 z# N. q
(= eltscale "")
9 ?9 \; W. i( q' d1 G E (= eltscale "Varies")
- O7 o* h; T2 J% W1 o* f7 ?; W8 a
0 \* q {6 w9 }* j )
. R( H# s( M) d4 {' E* Q (set_tile "eb_ltscale" "")
C! D h- ?4 O- M( M+ h (set_tile "eb_ltscale" (ai_rtos eltscale))
- z- w5 n* Y; `/ f )
8 ~) `' k/ U _. ] (if6 F: _9 X9 Z0 P5 f2 Q. g
(numberp ewidth) ~6 |. i# q, m4 f* \& H6 D
(set_tile "poly_wid" (ai_rtos ewidth))
: y" a+ n0 f3 T7 A (set_tile "poly_wid" ewidth)/ V6 f% f6 A1 U+ z; x. J; i, P
)
/ @' n+ v- Z0 O# T, _/ ?+ F (if
- i3 h7 {9 T; b3 V (numberp eelevation)7 r9 ?7 G3 W1 }) t. K+ E
(set_tile "poly_elev" (ai_rtos eelevation))& o. Y5 w: E: W/ m2 h( U
(set_tile "poly_elev" eelevation)/ J, n. s- v+ v8 k' R9 E
)
( z! C% s7 q: d4 V, f (if
0 @* l/ a) z. E4 I E* W7 W$ r% Z (numberp eheight)
3 ~ z, B4 x k5 D! e" l (set_tile "text_hgt" (ai_rtos eheight)): e2 s& \3 O2 d: x# Q
(set_tile "text_hgt" eheight)
$ p3 F( i$ T z5 r- R0 t )
+ H. O( \! h" e (if (not estyle); c0 H) X. q7 l7 d3 B
(setq estyle "")/ V3 E$ X7 j% [; [1 L1 x
);if : K1 H5 o( s& M# i- o
(setq hair_style_list (tnlist '("style" 16)));setq# f `# h* E! g: B k) V! ~" m
(if (not (member estyle hair_style_list)), F2 Q# H0 n; N1 T& g% R
(setq hair_style_list (append hair_style_list (list estyle)));setq* c) \- I1 c2 j9 Y7 d
);if , o" `1 o8 k' B$ [. v# \7 E, k7 S
0 g1 G1 C8 |: K9 v# V8 a& o+ f2 y (setq hair_style_list (acad_strlsort hair_style_list));setq% v! u# b- i4 B" d# G
(mpoplst "text_style" hair_style_list)
* E" n9 J& ~( F4 T( b L (set_tile "text_style" " u( X8 N. k1 L9 q( a5 t
(itoa (position estyle hair_style_list))
5 z8 [% n2 A' }3 [7 l4 V );set_tile 6 o% z& F; `- a8 ^+ h! m% U) C
2 a7 F$ ^3 f3 i) q. w" {6 m }
;; Disable tiles if need be... ;@RK
5 p; ^: O4 I2 w0 G1 m (setq a 0)5 Q" U8 X# i# U. |0 m8 }# ]
(while ( < a (sslength ss))
5 `" s& h4 c' S (setq which_tiles/ n: j8 a( g/ b6 A
(ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))9 L9 X6 t# m8 O d, A1 F+ [& ^6 s
2 B6 [# L" {- J+ U: o2 F' n+ B ;; If all fields are enabled, don't bother checking anymore.8 J j) @$ \0 i% `& ^6 |5 J5 x
(if (/= which_tiles (logior 1 2 4 8 16))
8 o/ E! R0 Q) K6 B, k (setq a (1+ a))
. o/ S/ D2 I3 P M9 i (setq a (sslength ss))% {) o6 R0 M' ?# }
): N1 l3 U. Q' R3 L+ O0 t' H
)
; V m. k! R" T- _* c ;; Layer Button and Text Field
5 m. ~; m6 P3 H0 q. e, V
% b6 S4 h* g" l (if (/= 1 (logand 1 which_tiles))
3 s/ E4 c' m9 I* E( d, K (progn+ x. L* \8 M7 ~% T/ W& Y
(mode_tile "t_layer" 1)" D+ m6 f6 C# n% b! k
(mode_tile "b_name" 1)1 A' S! w/ ~4 m" t1 O# w
)
( p1 Y3 I; a# K$ w )) p# Y O8 C- S0 e |+ M! w( l
# A3 m9 [( S' i8 d2 M ;; Color Button and Text Field0 [0 h5 B, _8 t B; O
(if (/= 2 (logand 2 which_tiles))% E! E3 [- j+ `) b
(progn& [( [" v$ Z ]+ i% q% D
(mode_tile "t_color" 1); |' i: g% K5 ~: M' ^
(mode_tile "b_color" 1)
3 c3 g0 `' V. c% L (mode_tile "show_image" 1)
- V" `1 C, ?( V3 }# }7 t# F )5 J* B! [# N/ |$ a4 z! P
)( X! k8 r# W* N$ p: Y
;; Linetype Button and Text Field
* [) {7 y8 H) y; m3 K; z8 l (if (/= 4 (logand 4 which_tiles))% [* ~# y% ?" [1 K& A* o, w' P
(progn' U6 i3 w2 c1 _- x
(mode_tile "t_ltype" 1)
% A, }3 |/ C* f0 \3 l; ~ (mode_tile "b_line" 1): m6 b+ M- W; Z& m" C: T
)
3 |1 J2 L+ ] ?$ o8 `0 j )
2 [9 Y/ U" u; C ;; Linetype Scale Edit Field& d1 _ J) J% @ Z
(if (/= 8 (logand 8 which_tiles))# ]1 t6 i9 M$ J5 U. V
(progn
2 x! F5 h$ w: O (mode_tile "eb_ltscale" 1)
/ t- {9 S+ D9 J; ~3 s' A7 A )% {% N, \( F" f. D. @! p
)! ~" H; o( \+ F6 o d! c
;; Thickness Edit Field.
) C) X6 D q- t0 S4 M (if (/= 16 (logand 16 which_tiles))' H, f8 q* V( c( h& d
(progn g$ {% n8 Z% \2 i2 {5 C8 E9 d
(mode_tile "eb_thickness" 1) N2 b) r* F/ K2 I
)3 S E! y) w( V2 [
)6 v7 m7 M# Q- S7 _
, O R3 A; Q* f$ R6 y
;; Polyline box and tiles @rk 10:05 AM 1/30/973 X1 G1 S& f& J
(if (not (= 2 (logand 2 eflag)))1 B% G- v- W) H' e& P6 H5 s* a
(progn
$ X; S, y4 T' q (mode_tile "text_hgt" 1). T! ^) r3 d* k# O9 `0 _$ K
(mode_tile "text_style" 1)
# L4 v) H+ w( e$ p; b# r5 c );progn
1 I5 t; G4 z M4 y5 I; d$ z );if7 O2 b1 L: q) Q+ j# M2 H/ e
(if (not (= 1 (logand 1 eflag)))4 q% P0 \4 x1 n
(progn . @' ^& f( ~; ]9 \- u
(mode_tile "poly_wid" 1)/ ^( m1 q2 J+ B7 j" {2 ?
(mode_tile "poly_elev" 1)
9 G k) |: d, s );progn then disable polyline fields
6 G3 }' p$ [( {; @ );if
$ |' y- b8 I) A4 y; v% U0 |+ O a8 g5 ?: V
;; Define action for tiles" B g" E* X% T% ~
(action_tile "b_color" "(setq ecolor (getcolor))")
; D# ~. ~# V+ N5 R8 g& Z (action_tile "show_image" "(setq ecolor (getcolor))")! V. i T7 P* K. x8 t
(action_tile "b_name" "(setq elayer (getlayer))")% e5 d/ X, P! y8 S
(action_tile "b_line" "(setq eltype (getltype))")8 {& A% z) Z! [" J- N! f
(action_tile "eb_ltscale" "(getscale $value)")
4 [# S- h4 W+ [0 H6 U3 H) x. m1 b (action_tile "eb_thickness" "(getthickness $value)")
% K' O6 ?. n* @+ ?) g" Q; Q (action_tile "poly_wid" "(getwidth $value)")
4 B' R( j3 j+ x" k8 m" ]/ J% i9 g (action_tile "poly_elev" "(getelevation $value)")
' D+ |# o( }1 Y (action_tile "text_hgt" "(getheight $value)")
/ ]& O7 P8 E) m/ j (action_tile "text_style" "(getstyle $value hair_style_list)") 4 M2 |' o8 c$ n
(action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
( e L4 n8 y n7 @ (action_tile "accept" "(test-main-ok)")$ P; c/ b# e( `: a9 Z6 P/ R- v
% F G7 _5 ^; T; k; M V# U' E( B0 K (if (= (start_dialog) 1)! s$ d3 b* W) C/ S' Z2 t
(progn1 u" P* c" m1 L9 \' e
; Update special properties for polyline and text selection-sets.
9 }( K2 p/ F+ M2 c; l9 M* v6 s4 ?0 q
(if (and (= 1 (logand 1 eflag)) ; polylines rk chprop# |4 B4 k( W, a1 ~( z4 O8 B" L
(or ewidth% ^* s, a7 w! j6 i8 S
eelevation
% Z% A5 o. b3 w9 ~ E7 Q: N );or+ p7 d8 C/ g1 d; G6 W G
);and
# { U: X; u( m) e8 b (progn
! @5 L" o) B; T( p8 i. H1 I0 _ (setq ss-index 0 % L& G1 E# d b6 F' X) Y8 f9 G @4 a4 F
ss-length (sslength poly_ss). w6 t$ }2 ] G, }3 `! G
);setq
2 v8 r( _8 y& l! z (while (< ss-index ss-length)+ `. M6 ^6 A8 x) _! I9 P
(setq ename (ssname poly_ss ss-index)* |9 J# N8 m4 _2 t$ Q/ V' z
elist (entget ename)6 \. l/ G4 P! B9 {, L* U9 L, r
);setq
1 Z2 Z7 d- I0 p( s1 b0 ]9 m5 g4 L (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp1 R1 }& R( Q) j3 Z
(if ewidth
) {: k1 w) H7 ?4 E2 m( Q (command "_.pedit" ename "_W" ewidth "_x")
. t9 B0 c- N9 S' X );if 1 {; M: \- a, X0 N' [
(if eelevation 0 ^3 V: w# [/ \5 u( u; ^- P& O
(progn C2 o. y5 k" E& h
(setq p2 (list 0.0 0.0 eelevation));setq% a6 A+ U8 K" z) v2 U$ ~( r
(if (equal (cdr (assoc 0 elist)) "POLYLINE")6 W0 f. q' O* K9 s( \+ ]8 B) \
(setq p1 (list 0.0 0.0- s! q/ b% i4 D& R
(caddr (cdr (assoc 10 elist)))
$ _. s. @. c6 U; H3 E );list0 j4 R7 G. I3 K7 }) V6 E# K
);setq Z, z, ~% f- ~! \) C7 g6 N
(progn. K G" S, P' i
(if (assoc 38 elist): [3 n$ K0 D! d- @% l4 ?; Z( o
(setq p1 (list 0.0 0.0
, U) ?- n; X1 h% l (cdr (assoc 38 elist))
. o& V8 ]# f, N( i0 W );list7 h# t" {- D& R( J
);setq( ~3 n: z* e: Q/ G6 E
(setq p1 '(0.0 0.0 0.0))5 |% S* p! s, H1 ~
);if6 s' @1 {2 g9 H/ r
);progn ' I* n$ q# a# S
);if
( P( c t% q6 Q% ^5 s8 `3 r8 Y (command "_.move" ename "" p1 p2). X0 H3 ?9 x6 L4 x/ L; @
);progn then change the elevation of the polyline
. {1 j! i6 c" E7 U+ v: P );if
3 g7 z4 c, T6 v7 V% `' b- T* | (command "_.ucs" "_p") d2 u0 R: U6 ^
(setq ss-index (1+ ss-index))
: P3 `4 ~) W7 L! s );while
% B& \2 Y* E1 w/ X- s! | );progn then polylines are in the selset9 S5 s* }8 v) b8 a" O( _( t
);if
8 c5 H% r* V: y! k4 b (if (and (= 2 (logand 2 eflag)) ; text' L k+ s: U1 `- y
(or eheight ! ?2 ?0 D9 u( x7 {% S+ y" T, B" z
estyle( L& ?, n% A r5 S
);or
4 E1 D% U; |! I" i4 K8 T. l( b0 E );and& {5 i2 L" {% Y( J
(progn
. e4 g5 S' Z; J( Q+ E" y (setq ss-index 0 ss-length (sslength txt_ss))6 Z7 n, d5 O: [. C0 z
(while
. \ V& ?! @8 r! P/ q. e( \' \ (< ss-index ss-length)8 t4 V+ S b# t1 d$ W" k
(setq elist (entget (setq ename (ssname txt_ss ss-index))))
' ?9 k" i& e( K6 t( M! G (if (numberp eheight)
! J+ x; t* \; X- j5 G. T& a9 L (setq elist (subst (cons 40 eheight); |7 ?# s: E5 w5 Z+ T# {
(assoc 40 elist)
: n! d @- I: D elist' a G3 ?# Y- A2 K. C$ c
);subst5 K- E& c* e8 C" V6 v2 A5 }& t
);setq
4 g7 A/ x Q' Z2 a- } );if
( w7 Z B' e- n3 r (if (and estyle ;(not (equal estyle "")). J$ B7 P' O3 q( ?' w* f
(not (equal estyle (cdr (assoc 7 elist))))
9 {( U( D8 k* k! F );and- v8 q# s9 u2 ^5 U7 i+ @
(progn ' n( Y5 J4 Z; U! [3 t
;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
. x4 Y$ [- u$ V ;(if (equal "MTEXT" (cdr (assoc 0 elist)))/ v D9 I* L9 G; r H1 p
; (setq elist (fix_mtext_fonts estyle
9 [, h3 j6 ^/ R% U3 [ ; elist
! _3 c+ u/ ^! u! w# C& Y+ D ; )
( q. } N+ W" R. q" Z6 L+ a6 \ ; );setq then
; r+ p/ d! J; m/ y' U" x+ N (setq elist (subst (cons 7 estyle), P: D& k0 F8 N, p5 u0 o
(assoc 7 elist)
7 }6 n2 @4 x6 [% }/ ?' a6 \ elist
! l* G0 C" J, M1 T1 o );subst' O: ~* O) A1 P
);setq else- S, r; t* P1 h
;);if 7 S" j/ U( @" Q5 Z V0 K4 P4 y5 k
);progn+ i: G$ @( Q+ N4 d* m5 s6 r$ S& X
);if
e* @% ]0 }5 s) S& L* Y; l. \ (entmod elist)
; `! U( v+ x' ^0 i3 a9 r2 ~ (setq ss-index (1+ ss-index))
- X# P) t: r! Y, t7 n% y! i. a );while
/ v8 m2 Y. h, p );progn then. S" }( m: h! y- E, R9 c2 {" `6 o- A
);if: z7 O( z* L! h
; k% {: s; e' e (setq cmdact (getvar "cmdactive")): _9 @' B3 `/ D5 {/ o; V! m; S
(command "_.chprop" ss "")
) l6 M9 @( G& P3 \, t (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
1 |1 b1 B1 h3 e% { (progn
! V8 l3 j' z9 H% Z0 P% n (if ecolor
, x/ S* a& R% Y. s! w ~ (progn
1 z6 s4 Y1 _$ v" \3 N (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK")) }! Y+ Z0 C9 R6 ?9 D& ?( K
(if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))/ L/ `5 g, q$ t8 c
(command "_c" ecolor)
1 _/ j3 L+ f; i3 m/ p6 x );progn then
& }. X3 j. { t8 G )) S" Q5 F7 I2 `# i) _8 ]
(if (and lt-idx' D" a' q" L( @* d0 N, @( V
(/= eltype ;|MSG0|;"Varies")
8 o% j+ x* O |7 \. ]* ^$ \ )
' I$ ]8 Z' x7 g$ {9 R1 W/ o" O. x (command "_lt" eltype)
, }7 e) {* R, D8 Y5 f1 V )
6 @: ?6 K. k: q p& L, X; c) c (if (and lay-idx 1 o2 y* O% K2 Q
(/= elayer ;|MSG0|;"Varies")& m3 Y; P& R) h1 k" K- K+ ]7 r
)
. W2 s: X9 g+ J! n' ^1 W (command "_la" elayer)
9 \7 H2 u, Y& `( ~0 B' P" d' ] )
! F, a& h/ o. l; C (if (and ethickness
" N& ^8 j0 N2 s4 W `# b8 w (/= ethickness "")
& a' g% E9 O6 u1 C- O9 P# S* z9 E' ^ (/= ethickness "Varies") ' @1 p" f% {& w. F$ T
)
8 i$ O* l* T9 l+ C' Q" ~8 @ (command "_t" ethickness)
2 j5 O' C, u! f" M )
( B5 b/ ^4 \2 N" E" F (if (and eltscale (/= eltscale ""))
$ s- y) k8 z) o$ f5 a7 }. }8 H/ ? (command "_lts" eltscale)
2 L0 o, f9 C1 `! L8 a: c );if& W6 ^/ l! \7 i: y: X
(command "")# E0 T# ]( v" C2 X# m
)
8 p6 J! A8 @" E) ?9 U (princ "\nProperties unchanged") ; CHPROP didn't like our SS set4 @3 ]5 U3 I+ f3 @1 b: y
)
+ {5 Q" {- [$ C+ t
% L2 n% K* K& ^" J );progn then OK was picked in the dialog.9 Z5 s8 N ~& D0 L9 d
* b; O( J$ b b( e
;; Fred GERBER - 25-AUG-94. y) L" _' E0 ]' L+ v) p& ?
;; Don't print the "Properties unchanged" message when the user cancels7 |7 |7 h3 k: V
;; the dialog because he knows that already (otherwise he would have
) F/ b5 D; W V/ a! ]3 I4 e ;; hit the "OK" button). Display the message only if CHPROP fails for# I; W9 h$ D' u7 P: ]6 G) d$ ^& K
;; some reason, because it is not the expected behavior of the command.
. M: Q* V, [0 k4 ?7 W ;;
- o0 P. E v5 Q X# q ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
0 R% {: \9 o. a" t6 F# p );if9 J6 T W0 C+ H; G/ f( u, Q" v8 m/ {
(princ) B" f" C7 P5 {8 z
);defun call_chp20 J2 K* R, B% z
;;4 |+ F8 K' g+ \0 d- `$ h8 D" l/ ]
;; Function to set the Color text tile and swab to the current color value.
/ H* ]9 G2 Y) r9 ~0 r' B0 Q% Y ;;
3 k& N# F0 u# B2 F4 t (defun set_col_tile()
- _( F8 ~1 s @ (cond1 D! @, k: \& D# c+ v+ i
((= ecolor nil)) m8 Q- b( @. K
(set_tile "t_color" "Varies")
2 T$ s# `! ]* x% V8 x" }$ V (col_tile "show_image" 0 nil)) G$ ]. M9 A n7 ~% Q
)
( ?1 @' v$ J7 S. J/ ^ ((= ecolor 0)
( r: z5 |. G9 {5 Y4 T7 W (set_tile "t_color" "BYBLOCK")" c2 }# I5 d/ A t" d( N0 o% x' J6 i
(col_tile "show_image" 7 nil) ; show BYBLOCK as white
0 b& [( e) ~; w3 ~1 Q )
$ X7 ^, J# ], r0 v; U: g; |0 u3 f ((= ecolor 1)
) e* C1 U; }/ u! n5 A) a9 r9 q2 T (set_tile "t_color" "1 red")
$ i2 y" k! n) l- W, y7 R (col_tile "show_image" 1 nil)# Q _, u( v' C4 Z, [! k
)
3 v, P% L$ Q7 E2 O8 ~ ((= ecolor 2)
4 K9 M# T( I! s$ f7 O. M; y7 K (set_tile "t_color" "2 yellow")
. l6 S/ i1 o ~6 ~1 T (col_tile "show_image" 2 nil)
- u7 y( i2 ^5 }8 Q8 s- B2 G- ^7 h1 h )
5 u. {1 b$ N" E4 a ((= ecolor 3)2 M3 `) O" S) t" b! f
(set_tile "t_color" "3 green")
1 e s, ], S& R5 |" } (col_tile "show_image" 3 nil)
6 a: j" A: T- r! Z3 B )
' b# R" n" {6 l3 O- [, ?7 H8 Q7 r" a ((= ecolor 4)
# ?( G8 B4 R7 }/ s+ V: u& }5 b (set_tile "t_color" "4 cyan")% A6 W! r/ U$ w) E" z* N
(col_tile "show_image" 4 nil), a) d& O3 f: [$ _, x7 e
)
5 \# k! k# k8 @/ @ R7 ~ ((= ecolor 5)
8 [# S9 G: }6 C/ |* Z% ]! _2 V) x (set_tile "t_color" "5 blue")7 A, Y! o3 L* R0 p
(col_tile "show_image" 5 nil)
2 y. u9 j& l: P. j7 W. w ). T1 Y7 _, w7 a7 R6 B
((= ecolor 6)
# k8 L+ g1 K Z+ @/ y6 j) P (set_tile "t_color" "6 magenta")
% b3 r' ~) J2 ?) C h+ F, v3 l) ^ (col_tile "show_image" 6 nil)
( {7 P5 t1 m% l( X' [; e; @( K8 n )
2 g! r9 d" ^( g" W& C4 j. ?6 F$ r ((= ecolor 7)
6 k1 B5 S" m; f4 x (set_tile "t_color" "7 white")
Y! p( m. ]7 s' x' v3 V6 p4 ~ (col_tile "show_image" 7 nil)4 ~% ^. j6 T! d2 `
)
* u8 g% A- X5 I. `+ U8 @+ A ;; If the color is "BYLAYER", then set the tile to1 q j4 j- _, C6 {
;; show it's set By layer, but also indicate the
$ p$ P+ O/ w- I0 R ;; color of the layer - i.e. By layer (red)* _0 Z5 V. r- ?, a, d5 _' s! o
((= ecolor 256)0 ?1 a0 b, {- A0 T2 j/ o
(set_tile "t_color" (bylayer_col))
& Y" |9 `4 ~) U& W8 l, M (col_tile "show_image" cn nil)# i8 ^6 w# `" d/ M2 C' G6 |4 b7 B
)4 E) C& i) ?" x7 Q7 C7 U
(T
( s( S2 ~2 o% q6 c, I# q1 r2 w (set_tile "t_color" (itoa ecolor))
# Z! b0 {+ i- [. Y9 O: ~/ S (col_tile "show_image" ecolor nil)
1 V- Z" [1 |! a, S& O7 ` )4 _4 ]4 T# p4 M# a! h2 N
)& d& a I8 O* w( F! w
)
E& E% S- b' m( l% K' h" O ;;- w3 |7 M' R& O
;; Function to put up the standard color dialogue.
; x( v* Q$ O9 Q ;;/ G( ` F3 {6 ^' B+ I
(defun getcolor(/ col_def lay_clr temp_color)
+ C, t6 k0 ]$ t1 \8 S/ ^) z3 _& H1 Q, { ;; col_def is the default color used when rq_color is called. If ecolor/ s, f% V1 ?6 i3 x. \+ Y
;; is nil (varies) then set it to 1, else use the value of ecolor.
; V0 C! ? }, G. G q* i (if ecolor0 u$ S8 q5 T( b3 y+ r: }, `
(setq col_def ecolor)
! w" |6 ?. l( j% R% P/ Z (setq col_def 1)! V* v' t3 r. z" \1 v( K9 H: g
)
' s/ T; b) A) x$ s' N8 l
; y/ w7 w0 ?9 I+ o) A9 o* q ;; If we're working with a single layer, get its color! U; r6 ^3 U7 e4 P: @( b) C
;; for use in the color swatch if the user selects color BYLAYER.
% C6 ~8 ]) p- ~8 J& ~2 h (if (/= elayer ;|MSG0|;"Varies")+ y7 W0 h7 u, F& o# A( h3 }
(setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))( B0 M7 R; q$ N1 B
(setq lay_clr 0)# b4 C) L6 F _3 {2 b
), @7 z1 D+ `$ Z! h4 d( z/ }( M R( P
(if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
. n5 D8 c% g) H2 R Z (progn
$ z0 s+ W" q& q6 b3 W (setq ecolor temp_color)# c: x& p5 V1 w2 Q% @9 [ m
(set_col_tile)2 m* D9 B- R6 M% r% }
ecolor6 ^ Z$ ~* N8 i ]% H
)0 p7 j" F3 ~5 [' O8 C) n4 j
ecolor- `5 J! G" ]& p& [& v% n% R
)# l, u8 p E3 N- k% C' R
)
/ u3 g) z4 l; P/ B' u ;;
% z7 L. H! C/ } ;; This function pops a dialogue box consisting of a list box, image tile,
+ c# X$ ~( N! y0 P) W3 v. M& o( S6 p ;; and edit box to allow the user to select or type a linetype. It returns
) L7 Y8 d( X/ W ;; the linetype selected.+ T7 C" C& N5 F% m, D) h
;;/ [2 |4 p: j/ T" ?* E' `2 g
(defun getltype (/ old-idx ltname); j$ F6 L' V) n( J! T" Q
;; Initialize a dialogue from dialogue file
& c i- I! Z: }! F: f/ q (if (not (new_dialog "setltype" dcl_id)) (exit))" f+ \+ @0 H* x$ e) \3 K
(start_list "list_lt")/ D6 ]/ q l* e( S) R! J
(mapcar 'add_list ltnmlst) ; initialize list box5 a+ `' V8 H! E" G% l/ |
(end_list)) B" e" _- |/ |9 d) O) L' O
(setq old-idx lt-idx)
& }. r1 c9 y. s9 D( Y& o ;; Show initial ltype in image tile, list box, and edit box6 ]& u6 F1 h+ H4 X- `5 K! Y5 W. A
(if (/= lt-idx nil)
* \, n" w/ j( i& O- `. J (ltlist_act (itoa lt-idx))
0 B5 [2 p* {$ I9 C {. _. L (progn
1 o% B& ^; y; Q- p/ r4 Y (set_tile "edit_lt" ""), S% U. Z! V& z" F6 [8 J- i# L
(col_tile "show_image" 0 nil)
) j: c# D* S+ L, @+ T8 I );progn else0 \1 K: o% O* S7 C- U$ @
);if
( _! {( [# ^+ K# E! L (action_tile "list_lt" "(ltlist_act $value)"); q- Y1 {) N2 j
(action_tile "edit_lt" "(ltedit_act)")
6 h9 y& L8 J1 ~5 G( S2 \% F2 M (action_tile "accept" "(test-ok)"): ?) M! J$ y( c9 d) A
(action_tile "cancel" "(reset-lt)") s2 R$ u$ n3 ]) J/ }
(if (= (start_dialog) 1) ; User pressed OK
& }* I; E9 L% t. o, H (cond3 d' n3 \+ d, [. D- h) ^
((or (= lt-idx nil)
) P0 h0 o. c+ M- V5 y (= lt-idx (1- (length ltnmlst)))3 p+ ?3 F9 u6 o" E1 b
);or
0 {, P3 l% h0 U. y& k8 Y3 Z/ b (set_tile "t_ltype" "Varies"). h$ ~1 m, i4 n6 I) R
;|MSG0|;"Varies"4 d; ]8 s+ g: o$ \3 g) {+ E+ G" N) e1 R( C
)) N- k* q j9 {" \
((= lt-idx 0)
- ]$ c) Q# K" v# g0 Q. a; e (set_tile "t_ltype" (bylayer_lt))
9 i/ ]) b5 }3 m2 o' d8 Q5 c ;|MSG0|;"BYLAYER" M, e/ T8 c2 o; X; z) W% J
)
# r1 u0 A& G& H ((= lt-idx 1)& h$ X% f X+ i2 l8 l8 L- m
(set_tile "t_ltype" "BYBLOCK")
" M7 t6 _6 v4 \: | ;|MSG0|;"BYBLOCK"
0 _/ s# d! ~5 c1 D4 S6 a )
7 V& S4 H7 }, ~8 Y5 B3 M: D (T8 [7 k$ S4 ?$ z' U" L
(set_tile "t_ltype" ltname)
; Z8 p; E' @4 R7 w$ J0 t i& ` ltname: J: y: k* G( U* N5 Z
)
: O1 W$ v/ [6 X7 T! m( D9 C );cond then7 R9 M6 |- q' [2 K/ n
eltype2 p) ^- _3 T0 ` c
);if
: U" Z- u5 }3 L% |0 |7 N5 q );defun
2 R5 h& J; u: h9 |: ?; j! r4 m ;;
- c% o- S6 t7 m) V. W5 {3 j: d ;; Edit box entries end up here& J0 [5 d8 \# m- Q, M
;;
4 Y* m0 X5 ?9 _# ] (defun ltedit_act ( / flag)
0 W8 T+ |; v3 n* C5 E& Z ;; If linetype name,is valid, then clear error string,
5 [ m+ R7 w% k& ` ;; call ltlist_act function, and change focus to list box.
+ s3 r( L6 e1 o2 | g ;; Else print error message./ Y2 ]4 ?9 V3 a E3 K# I, I: b
; @ X% ?; U( c$ u) R (setq ltvalue (xstrcase (get_tile "edit_lt")))$ G- A7 Y; j% j2 k& t% e$ @
(if (or (= ltvalue ;|MSG0|;"BYLAYER"): @4 X1 l Y+ \) k$ d
(= ltvalue "BY LAYER")
: k7 Q6 U0 j7 ]0 r! r )9 o+ L9 H* o2 A% S# J2 E% M
(setq ltvalue "BYLAYER")) w7 L6 B2 Y R/ d
)& h* Q: m4 K7 ^! V' ^
(if (or (= ltvalue ;|MSG0|;"BYBLOCK")
9 s% j+ S# K! d% z. _ (= ltvalue "BY BLOCK")2 P/ M g# }+ O1 f
). ~0 L8 t x( i4 \# q+ h
(setq ltvalue "BYBLOCK")0 _5 ^4 f- V# ?- ?
)
) @7 J) ]9 R( k (if (setq lt-idx (getindex ltvalue ltnmlst))
6 w$ b- S3 v8 B' L( X (progn
: z/ I, i' l* M8 Y# x; P. r (set_tile "error" "")% z4 ]0 q9 n4 u1 g
(ltlist_act (itoa lt-idx))
! J. ]+ ]2 [0 a ;(mode_tile "list_lt" 2)
% B6 r' a6 ?0 X4 \ );progn then
. T" M4 e* i. H5 t u f (progn5 @6 u$ p6 U9 Y4 h
(if (/= ltvalue "")
0 b# u& }" p9 R6 m! `) t$ |( W# t7 ~ (progn0 y: ?6 p6 [! P- }: R+ P; i
(set_tile "error" "Invalid linetype.")
1 q7 Q3 v* j! k9 L' I (setq flag T)! s4 Z3 X+ W. _- T0 a( h1 A+ O# g
);progn
; b- `# d+ k- t5 X$ [9 N c )
+ n* f" k% c: D$ } (setq lt-idx old-idx)" p7 k) T1 b! p& V5 V. w
);progn else9 U; d2 ^( K& p* Z0 h' m# U: D
);if$ N/ ^* F( V7 ?/ l3 {7 e
(if (and (not flag) ;added so a return will take you out of the dialog.7 z( {. O* S7 A$ s3 y. Z! X% W
(= $reason 1), L. Z' m1 r( |2 [, u) N
);and
+ W/ M3 v/ H( S3 p. \9 ?- j (done_dialog 1) / Y0 @! X; w% d
);if ; c8 Y0 D+ N- ^; t" L6 d6 l5 l
);defun ltedit_act2 ], ^: V, O" u/ C* k
;;' ?8 n+ S1 [! `3 C. _: E/ j
;; List selections end up here
0 r; M4 k/ Z: R- y- b5 Z2 I ;;: w' f+ N; v& n- x! l( s# A
(defun ltlist_act (index / dashdata)) U' O% j! T" k, R+ @: `( a# X
;; Update the list box, edit box, and color tile
: G1 N/ }* Z$ w$ a y (set_tile "error" "")+ ]" ^, H1 p7 v2 A+ V
(setq lt-idx (atoi index))
1 j9 q" r( [- h% A' V1 A! Y (setq ltname (nth lt-idx ltnmlst))
' ~+ b$ e& J |: d) r* u2 p) n (setq dashdata (nth lt-idx mdashlist))
! v) i$ `* ^* |. J& f; E! v (col_tile "show_image" 0 dashdata)
% v% F/ c! [# Z& |" e1 Z% M (set_tile "list_lt" (itoa lt-idx))
) O) H. J r9 |7 \- H6 @6 w O7 U, A (set_tile "edit_lt" ltname): Y1 u% i2 K& @5 b
)
2 [ l3 g" d4 E) ?( Z ;;
$ L( W# i( \; n' L- a& w' _ ;; Reset to original linetype when cancel it selected
' K J! k$ { T7 r k0 M* [ ;; X$ D/ v B3 `+ K" Z
(defun reset-lt ()
: y& b' K1 J: B, L% v (setq lt-idx old-idx)
. b% s, ~ c+ U# [0 R (done_dialog 0)
1 z+ Q% u7 v7 v7 U ). }8 l1 I; J1 k% p
;;5 v; w$ _# v! ?) m; I
;; This function pops a dialogue box consisting of a list box and edit box to2 D& ?9 s6 r# s+ _
;; allow the user to select or type a layer name. It returns the layer name
3 r7 Q1 C9 C/ V; k. a/ `/ X ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the+ g/ B3 j4 e b+ {: B
;; drawing.
& p p% b. F: G; g; j& {3 p6 A ;;' l3 e ~% b4 V5 i& K
(defun getlayer (/ old-idx layname on off frozth linetype colname)0 x8 a" F( L( u$ n0 U
;; Create layer list the first time the layer) w. _2 w0 n: s( {& z* q
;; dialogue is called.1 ?/ V$ ?: H, H; R" _1 B7 J
(if (not lay-idx)
; Y; \) f+ C% m (progn
- ^1 Y- [ C( p% m (makelaylists) ; layer list - laynmlst
3 _* N* t5 A5 A, m" ]0 L9 f4 f ;rk$ U \2 V- ?2 }# x- I
(setq lay-idx (getindex elayer laynmlst))
6 c: `# H: c# w) C& B5 `& m );progn G8 ^" P* f3 F7 L+ a2 E* p$ v) y
);if! k6 ]) q6 o7 M
# Y4 w/ ~6 ~4 A. T) i$ L# u, O ;; Load a dialogue from dialogue file8 ^2 P" g. U4 F
(if (not (new_dialog "setlayer" dcl_id)) (exit))6 k- x/ J/ X B+ F; t* L- M% q6 p; ]9 e
(start_list "list_lay")
0 R: n- c3 q @ (mapcar 'add_list longlist) ; initialize list box
$ P1 Z" J1 V* W$ t! @ (end_list)/ Y. d0 p+ o! M) n1 s: Q1 Q
;; Display current layer, show initial layer name in edit. `6 Y: i5 i7 b8 \; ?4 }
;; box, and highlight list box.
+ [. X1 a: B4 E4 S" b- i" ?# I! \ (setq old-idx lay-idx)$ \0 j6 ?. r# F0 n
(if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
- c+ e# w6 K U3 z$ T" M (set_tile "cur_layer" (getvar "clayer"))# C& p9 _: J0 M- F/ a/ h
(action_tile "list_lay" "(laylist_act $value)")- O7 h6 D3 \3 `$ h/ p3 U: \1 ^+ `; A
(action_tile "edit_lay" "(layedit_act)")
' a5 B4 A' O, s3 x( V3 w9 l# |6 i) ^ (action_tile "accept" "(test-ok)")
) @) |4 l4 o. D5 l: v (action_tile "cancel" "(reset-lay)")
0 U& }6 h; }' J* b (if (= (start_dialog) 1) ; User pressed OK4 a8 L, z' J) J0 O* Y" n u
(progn) A( i' Z2 c5 k& @7 w
(if (or (= lay-idx nil)
' m; Q$ Z D9 l$ s4 S5 c (= lay-idx (1- (length laynmlst)))& g( {! J3 h5 ?5 h8 U
);or
& [: G* ]: G. E y% m (progn
0 O$ K& o* V9 r2 K% @: k1 Q (setq lay-idx nil)
) A+ ~; Z' J; {4 F' k) ^( p (setq layname ;|MSG0|;"VARIES")
1 Q: ^, k% g! `& d. V: G# n) R6 f. x (set_tile "t_layer" "Varies")
) F7 U7 F' E+ O+ ] (setq layname "")8 x1 v$ Z" p, ~3 T. K
);progn% d! L% U3 F9 C
(set_tile "t_layer" layname) v7 \* h" R4 I, C
);if U. Q7 d4 m$ ]$ ^7 U
; If layer or ltype equals bylayer reset their tiles- C( M9 t. n* R4 D5 @0 z
(if (= lt-idx 0)% `5 V+ c! W0 T* s0 ~
(set_tile "t_ltype" (bylayer_lt))
0 m% s' x' P+ Q2 h );if
& a# g# N, l4 _; v" k; q* `8 D: ~ (if (= ecolor 256)
- s) s, a7 a+ y' |; T" X (progn% D# j' J! E7 X
(set_tile "t_color" (bylayer_col))
) X7 T w' d: x$ T0 I- M4 Y (col_tile "show_image" cn nil)! n* [* A ^: |) S/ ~) W7 c) Y
)
) {0 H' D$ K: `& Y/ u );if
3 ^/ j1 q; f @6 e layname
9 V9 v* `3 }0 L7 o7 m, h );progn
v: d7 [2 D |1 P$ X2 `7 ` elayer, }5 r: ~% }% ?) O; I
);if# t* ]7 U4 y7 Z7 m" x# c2 h
)
- D$ q' L) X# v# B ;;3 f0 _3 o2 ]' l6 j# {
;; Edit box selections end up here
6 f; }- {& }8 Z' C0 a D+ M) w6 m ;;
! x: p9 r- V6 A. O8 N* L (defun layedit_act()6 [4 {* W& [/ \% c( N
;; Convert layer entry to upper case. If layer name is
T2 y$ K; s6 Q ;; valid, clear error string, call (laylist_act) function,
; q1 I; b+ A( B2 [2 `* Y ;; and change focus to list box. Else print error message." b# a1 P' I( } i1 E1 u% u
(setq layvalue (xstrcase (get_tile "edit_lay")))2 r& k8 Q" c9 p% L
(if (setq lay-idx (getindex layvalue laynmlst))
: D- y, W! W* n) l% Y, T (progn0 ]8 @0 Q; \( D9 w1 R4 j
(set_tile "error" "")! [8 K8 @+ l( M1 n
(laylist_act (itoa lay-idx))
2 Q& O9 @3 Y+ h1 C )% m' |- @# i! [: W6 R- C+ v
(progn
; V$ t2 `! K% Q C* l9 B7 T (set_tile "error" "Invalid layer name.")1 _( \+ s( L# X( I. M: S
(mode_tile "edit_lay" 2)$ I+ K( u; j- w2 V# ?
(setq lay-idx old-idx)! `: k% J/ g5 L' p/ U3 @* o [ p! \# q: R
)
; d* q4 T9 t4 J" A: M: q );if; D7 B* P3 f/ \- U- @7 ?! z
);defun
8 T2 C, V$ I& G8 n# Y1 z5 W# z$ S) { ;;
7 T$ j. b+ @" h1 F" {3 s& Y- B ;; List entry selections end up here; C% t$ T' G, B( ~; z
;;1 g* s6 g, v3 C4 P" F0 V( H
(defun laylist_act (index / layinfo color dashdata)
: U' U- b' Z z) B4 A ;; Update the list box, edit box, and color tile, ~! Q+ ?0 d) x1 O! J
(set_tile "error" "")8 s$ T: ]; e, o O+ b
(setq lay-idx (atoi index))- [; I, g" B3 \! @+ Q- Y6 Y
(if (not (equal lay-idx (1- (length laynmlst))))
% D o8 u' ?7 |- W (progn : y. E. R b$ v
(setq layname (nth lay-idx laynmlst))5 g" v) F i e1 W- J# l2 g
(setq layinfo (tblsearch "layer" layname))( m. t# K, t T- W' }! ^" m- k
(setq color (cdr (assoc 62 layinfo)))
- W( w' m0 ~8 v (setq color (abs color))6 s7 H% B N5 b2 i% e$ n, {5 s( N
(setq colname (colorname color))+ B! x- q$ x6 A: {, y/ W7 Y
(set_tile "list_lay" (itoa lay-idx))8 M( x/ S0 [- K& l2 M) i/ Q# i
(set_tile "edit_lay" layname)
5 {1 s( y' _5 X" O ;(mode_tile "list_lay" 2)% r) D- @+ @. \( R1 T
);progn then
" ?# n; U3 A1 f' k9 h2 h (set_tile "edit_lay" "")
' G# e5 w3 T: H );if ; x) v h4 u) K: f
);defun laylist_act
- D% J8 S( _3 o0 ] j3 {0 s: _; N& ? ;;0 i' @) B' B: S0 V I: k' e! q
;; Reset to original layer when cancel is selected
! b5 T/ D5 R: B0 _% V1 D; C ;;
+ ?2 p7 y0 f1 \% P( m$ _ (defun reset-lay (); I- D1 M, N. Y9 h/ f) B
(setq lay-idx old-idx)% m- e+ T& ~& R+ I9 B
(done_dialog 0)
: c; b8 U1 B9 y1 t/ d )+ s: o/ F- |0 N- T3 E
: |0 ~& g3 n; j9 C. x6 Y7 P, r ;; Checks validity of linetype scale from edit box. It checks to% Y9 q I+ A; {. f, v+ P
;; see if the value equals "Varies".% j4 n7 K/ U- w
' I0 Z9 N% _. E
(defun getscale (value / rval)
$ c3 ^8 q5 B- j" \ (setq value (strcase value)
$ \, T- k% r; J, R rval (distof value)/ _7 O0 e& G v+ g
);setq
, l; q. R g; {% U) K/ e& B (if (or (= value "")
! ^8 [" M: J% g) a (> rval 0.0): p t) w+ l! Q' H# D$ ^
)5 q9 j, b, B' G: P+ w3 o& s* V
(progn
2 g: c! ]. x; m* j" u, q (set_tile "error" "")
6 [5 S% v, E: I* f3 j2 q; D, u (if (= value "")
: {( p: T- f) u: d (progn, k) Q* P0 W5 @9 B# m
(set_tile "eb_ltscale" ""), F, D% K* Q8 Z- j3 ~2 T) v$ p
(setq eltscale nil)+ P- S: i3 o) s. j
);progn then5 ?4 d3 f5 W! m& F% g
(progn
0 |) b- w$ @# U/ O (setq eltscale (distof value))) S" e7 S% [' c+ s1 [
(set_tile "eb_ltscale" (ai_rtos eltscale))" c6 o8 W ~0 [" |- L; ?: T
eltscale5 ]5 P E6 f0 y/ c) R) W6 k
);progn else
- V1 x; K! D2 _0 G) \ );if
& s6 H: ]& ~; ?' ~& y8 ? );progn# U/ D3 V4 j$ g' F
(progn
4 f, H5 [6 r- j/ t$ O2 k4 t( B6 ^5 O (set_tile "error" "Invalid ltscale.")
0 p, N/ Q7 m3 d0 I# p nil Z$ N7 A4 d* W; g9 J. l
);progn else
4 L5 k2 h+ \' h# R! |6 P* L );if
4 G4 O5 v3 N1 A. ^+ T );defun; W, w+ Y1 b7 d/ C3 Y7 s. G5 u
;;
. P. }8 ^" I' ^3 G9 T ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
* e' Y/ h/ x# I ;; string can't be converted to a real, this routine checks if the first5 |3 ^% U8 N- B
;; character is "0". It also checks to see if the value equals "Varies".
3 }' _! x; J9 L- r! ]3 F& y5 b ;;, Q6 d* G+ N; r
(defun getthickness (value)' U; H, l2 j# A6 f0 K- k
(setq value (strcase value))
& L2 E& J2 H) n9 S. @& j8 ^ (if (or (= value "")
: l% g6 r( v/ ]& |& B) t2 M! J (distof value), Y5 @" `2 F: z
);or+ o/ @$ O+ B. r6 v8 N5 G1 Y, G2 f
(progn( O7 t' r# _5 _: M5 I: P2 K
(set_tile "error" "")
0 a8 a- U, ^5 Z( ]3 _ (if (= value "")8 j0 J2 @% l' A/ t- Z" D, U7 `, R+ L, ~
(progn8 k- Q; R$ A# w, w$ B% W
(set_tile "eb_thickness" "")
+ s* C7 |2 L* T0 w0 W (setq ethickness nil)! G8 {8 g. @0 n' B
);progn& R6 |- o# X1 b5 E" @! W
(progn
5 l# [& w' y8 y( ^( L* o# j (setq ethickness (distof value))
& H- o0 p [" W) s* |2 G (set_tile "eb_thickness" (ai_rtos ethickness))- i* K1 C& t9 k7 E
ethickness
% \" ?; R3 ^: |: Q );progn+ ~( b- H8 j; m- e9 h, F% D3 m
);if
' n5 ~" o" k' y );progn! G4 t; Q! k; p( s* G& G! T6 l
(progn
4 a! {9 E7 }% w (set_tile "error" "Invalid thickness."), U6 Y( n' v. F$ w- T) z
nil
' Y+ T6 k" N2 P+ ^ );progn
5 G6 _9 f& I& a );if
' K' L- h1 I3 g% j4 z3 f$ G; T );defun
5 {+ x6 U' t) X ;;+ b4 y6 Z, c- n' C
;; Checks validity of polyline elevation from edit box.( q0 J! }) S9 U% u1 t+ ]( x
;;& x3 v8 r* [2 M' T
(defun getelevation (value)2 ~5 D* m4 |/ W6 F1 _' t( f
(setq value (strcase value))+ ]3 S6 q5 _, p# P0 }( j& l
(if (or (= value "")
4 G# [& R1 {) l (distof value)
" @ S$ X7 q s: q% _2 W7 X )
2 r& G+ }+ K& L$ x (progn
" \$ i- b9 c2 B% ~ (set_tile "error" "") r2 D+ H# F" m9 I' R3 i" N
(if (= value ""), e# R+ r* S/ s& H
(progn+ k( g) j# }# v/ ~
(set_tile "poly_elev" "")
! D) J# b. p. q) J (setq eelevation nil). r6 @2 c3 O9 O8 l- z) M1 ~
);progn, t- B9 p0 C' w) k
(progn
# S6 G) K) s' p( h3 B (setq eelevation (distof value))
; C. q) Z% _% f- M# { (set_tile "poly_elev" (ai_rtos eelevation))- K) |* _* x3 E" @" O6 n" c( `- V
eelevation
4 G" [6 r1 ?: Y# X4 T& \% V );progn
1 S. ?8 ]5 m J+ E7 G; @3 z/ ~ );if6 c V6 z4 A; {. f) N/ U
);progn8 e9 p: q6 |0 ~8 S1 u1 \5 R! d0 \- Q
(progn; u" w# [3 c1 v" i5 h! B4 M( Q: ~
(set_tile "error" "Invalid elevation.")
# H( Q) n0 Q2 g1 }( ~ nil
& i- s, g9 r0 }$ d( y );progn
- o \+ M9 e& U: S );if
: O" ^- J5 e+ ^/ k+ ~/ h );defun
- j1 I& O/ W& X( P1 Q3 H ;;
! }! K& w6 Q5 V+ `* H( L6 m ;; Checks validity of polyline width from edit box.
5 c" }7 A ~$ ]$ k9 q1 A ;;
5 a L/ l; @, }% ~& U6 N (defun getwidth (value / rval)
, n6 z' h7 I& n: q6 K7 { (setq value (strcase value)* M) y" f* D1 n/ m1 G% |3 X) h
rval (distof value)" K! O" G7 p5 v6 N6 j
)
" U) A9 H* ?9 E9 b) U7 m (if (or (= value "")' L i( T% K; X% Z6 y0 j, z
(>= rval 0.0)
. x3 n% I8 R& p s9 w7 D L )
! |" F; K% Y6 _! x8 S0 j (progn
3 P+ P4 X: ^0 z- }0 U (set_tile "error" "")3 e5 Z" ]% X8 M) L$ o! g$ O
(if (= value ""). E1 W! f1 K( @/ N/ ?# y" W& l
(progn8 X6 H$ v6 z# z
(set_tile "poly_wid" "") x. y$ ?7 V p+ s# u
(setq ewidth nil)
4 f& I* Y2 h' [9 Q% @% _( \) _ );progn3 m9 L8 O$ P* `; X8 v" S8 F
(progn4 \, [( \& q3 Z5 x' f/ _
(setq ewidth (distof value))
) r& y: g2 o+ V1 R& i& p( {* t (set_tile "poly_wid" (ai_rtos ewidth))
5 h3 n7 a+ `3 M% I( \ ;width8 q7 R' { I1 G7 C& n1 N
);progn* w: Q. ?4 K7 Q8 B- ]
);if
+ n1 ~. f7 K! G# } );progn
& G3 t9 u3 m5 }% T (progn/ }. E% k$ L X, h4 ^
(set_tile "error" "Invalid width.")4 g4 b( R0 K3 p) _
;(setq ewidth nil)* [5 {+ b* d; ^; I+ o7 f# c
nil
' ?& @/ m5 w) m1 }. d* n );progn
( y+ a% Q \. L( X );if
! [( b: u+ H; O: y: A );defun
4 @- `2 k- D+ _- L1 b2 R2 z' w ;;/ q+ x) G0 d% N) E) I
;; Checks validity of text height from edit box.
0 {" A0 v" Y7 o8 {9 n. p/ i. D ;;
% \, c7 K& j1 P" Z" g% e (defun getheight (value / rval)0 |# h7 T: j/ A, ]* X/ q7 d
(setq value (strcase value)* G0 e$ Y7 ~/ E2 M' p
rval (distof value)
" [% |' d3 K. n$ H" u )
6 v3 x E) Y( l2 P$ y- s0 o( T' H+ Q (if (or (= value "")+ k2 ?: m4 b. Y7 q
(> rval 0.0)
1 U% l$ ^- K# Z )
+ c4 _9 y3 l/ u$ M: @1 s (progn
. t% M# ]- V0 B* N, L, c3 t (set_tile "error" "")
2 W3 c, Y) T7 q2 P; T: H' j7 x (if (= value "")
3 { ?; l4 U( S6 z6 N9 Q% d, e (progn4 |# U4 n6 y1 E1 h
(set_tile "text_hgt" "")
3 N0 r- u# r3 r1 H3 _, k! |* _ (setq eheight nil)# J9 h0 L4 E3 d8 q
);progn! G- `7 K! _" D2 I
(progn5 o1 _3 n3 U( _
(setq eheight (distof value))
) ?; x ?' _# H- u. e7 O6 {) k+ S8 Z (set_tile "text_hgt" (ai_rtos eheight))" m' Q1 u- Y- I B
eheight+ p3 a4 N# n: ^" ]9 t& ]) ?
);progn
5 V/ e6 P( [, w2 b0 U* Z; \: E );if/ ?( |8 I; P/ Q/ ?6 w& k" S5 @
);progn6 P( b7 ^3 Z( e
(progn
/ r8 [* Y+ S! n2 H) m& i! X# T) s (set_tile "error" "Invalid height.")$ _0 s+ D$ Z! \/ b# d, @) _
nil- ~; Y) s4 e: y6 e9 f ?8 A+ g3 U v: {# s
);progn( o! ], A' w' I9 q a6 T
);if
7 a9 l* R, V, p. a- O );defun6 }0 w6 K* }* y5 c
* x* ^( r2 h2 \) }
(defun getstyle (value lst / rval)
1 [& ~1 p+ \+ c2 a6 Z( c# C* n: \" X! t ;(setq value (strcase value)). m+ @# j) I& S. X: r
(set_tile "error" "")6 D& m1 X( Z0 `
(setq estyle (nth (atoi value) lst)): u- _1 W" g9 d/ K+ V3 A
(if (equal estyle "")
+ f1 }. R' D" c: X, _ (setq estyle nil)$ b3 s" X) Y3 X4 Q) r. [
);if
. x; D0 i( _& ?' X. E; F0 _# M' I: J: R( b5 Z: Q0 g/ ~0 }
);defun getstyle
. L7 r- h8 |9 x: Y G& J% g- a( @3 D1 p: `
;;3 z$ t1 X+ A) e% P- Q5 `
;; This function make a list called laynmlst which consists of all the layer
w- ?. M5 f' X2 E& L9 K/ n7 v ;; names in the drawing. It also creates a list called longlist which
+ V! u( e) p; } z5 c) r2 z3 ^ ;; consists of strings which contain the layer name, color, linetype, etc.
2 }3 s ~* t9 Z! a' x+ T" w4 x ;; Longlist is later mapped into the layer listbox. Both are ordered the
$ D7 q( K0 J0 d; N ;; same.$ [; k4 X( N# ~5 Q& Z( ^$ }
;;
2 V3 A1 D& N& _4 O/ I4 T (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
5 a. X3 }' u2 W. j0 I xdlist vpldata sortlist name templist bit-70
2 {( t/ W) s7 K" E: {" Z8 ^8 o layer_number
# c9 D/ H7 T4 d; f2 t )
1 O- X2 `% k$ k7 \1 r (if (= (setq tilemode (getvar "tilemode")) 0)- ^1 ?* a" N, V1 j6 C
(progn0 G9 N! G3 J B
(setq ss (ssget "_x" (list (cons 0 "VIEWPORT")& O) l' i% o6 E7 k4 @, c# z; v
(cons 69 (getvar "CVPORT"))7 @* H( i; C5 Z7 T# S. ^
)
" R: [$ r* ]' {% @, P* g+ [ )
" y8 _: V9 R% X+ x" J/ S )
* G1 ^% S( V# _: |3 x (setq cvpname (ssname ss 0))8 c1 \; m5 P3 m8 r
(setq xdlist (assoc -3 (entget cvpname '("acad")))), S, N: l) b' l3 n
(setq vpldata (cdadr xdlist))$ W" J2 Q; S5 a$ p
)
! h* Y9 Q( s* P f( s/ L )
1 Y2 h8 X3 M$ |% D1 ?4 I (setq sortlist nil)
4 X& q) f- W% n! l; P (setq templist (tblnext "LAYER" T))
9 M; s) F+ e: ~7 q$ l+ x8 O0 {( [ (setq layer_number 1)
( N# Z% j5 k5 E1 d5 i" `4 ~ (while templist
6 b' V0 n/ [! a2 g+ a* d (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
" y' u# y" x. y0 a0 D (progn $ R" a- L' D/ ?( u9 U; Z# Y9 b
(setq name (cdr (assoc 2 templist)))
7 Y3 q0 [8 g9 ]4 D0 c (setq sortlist (cons name sortlist))( ]# `# {9 ~- b2 e( M: i) }
;; Not dead message...& A0 s: M0 O$ P4 x
(setq layer_number (1+ layer_number))
M" Z9 p/ i/ \1 h! s: v$ J: A );progn. a* c0 u- n7 W- \0 @: x4 r9 d* I3 q2 W
);if- a* R- j. q' }5 K' n) i
(setq templist (tblnext "LAYER"))/ e5 M+ M5 a! X9 h1 E
(if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
) |$ S: l4 j. D& h! r: b( t, S* } (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
4 P2 A) |% i% @2 [! I4 B5 L );if$ Y E$ [, W+ R" g' F
)
7 _% {* O" Z& H: \0 I8 f% T. O (set_tile "error" "")
4 t& q% Q0 D5 l$ Q4 g% T) h (if (>= (getvar "maxsort") (length sortlist))7 P% F4 Q- x1 i) k! ]" @% s" @
(progn
! B6 g# ], v+ e (if (> layer_number 50)$ \7 E% z" L6 l7 P$ {
(set_tile "error" "Sorting...")
# }9 r0 @ M$ K" f V ), g: Q3 h0 ?( J$ G7 J$ a4 z
(setq sortlist (acad_strlsort sortlist)); w9 v1 |4 g% [
)% S' B3 s, O# ]5 z
(setq sortlist (reverse sortlist))
' D) E7 h0 h1 S. |9 n; j )
6 P& q; g5 f$ S (set_tile "error" "")
$ K+ E1 \2 W+ E3 g; H N (setq laynmlst sortlist)
1 ?. P- l! L0 y* G0 U ;rk ( [- t+ ?: g- m( z
(setq laynmlst (append laynmlst (list ""))) 7 u' n8 n$ b& T3 Q" g2 Y
8 T5 r$ y. v3 A+ a) q' g7 e1 f
(setq longlist nil)" ]- b- U$ d( u4 w
(setq layname (car sortlist))" z3 F+ F2 V$ N( v# G, h7 F
(setq layer_number 1)
5 }3 J& G# z2 \) j (while layname0 b6 s) g4 I# s8 h- T3 M
(if (= (/ layer_number 50.0)
# k( J7 R6 F4 ?' M$ A& X (fix (/ layer_number 50.0))
4 G8 o: ?' N2 u; u; Z )
3 l: Z# e% w/ o) u1 j (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
8 ~4 L, J) a; c );if$ m3 |9 J9 n% u9 N! e/ T! d
(setq layer_number (1+ layer_number)). T @; n: v+ O% F0 B7 ]: ]
(setq laylist (tblsearch "LAYER" layname))
& Z; R* F6 G% S* j7 u) r" ~" Q' E) a (setq color (cdr (assoc 62 laylist)))
" T4 Y: j6 `: Q7 D% @ g% _) @ (if (minusp color)
8 Y/ l) q: U* l5 O (setq onoff ".")% X4 J' o2 f8 p6 g" x/ b
(setq onoff "On")
. K! K2 X' ?7 O. |3 q; k8 Z )
$ C( c. { p# O; Y+ U T6 w (setq color (abs color))0 x! q9 \; Q8 v8 |8 d9 O v: H
(setq colname (colorname color)); `9 n% c9 M1 N! l/ j% T
(setq bit-70 (cdr (assoc 70 laylist)))
& h1 F; h$ H" u9 |, l; ]4 d (if (= (logand bit-70 1) 1)8 T+ ~2 p0 o7 j3 K$ B, q0 Z& q. G
(setq frozth "F" fchk laylist)4 O( w3 o3 Z# @2 V' F6 A
(setq frozth ".")
4 k1 Y3 ^, ~' E )1 h% J" T' T3 u7 g6 T
(if (= (logand bit-70 2) 2)
2 k* s. }" A0 r6 ?- t (setq vpn "N")0 B& J7 X3 u9 ^: A! E8 K
(setq vpn ".")9 z0 L* r6 A4 `& t! b9 B7 E. c
)# }. j+ M5 k4 w$ Q+ w
(if (= (logand bit-70 4) 4)& \9 P6 [- s2 V& T
(setq lock "L")
" y3 ]( m# K/ \ (setq lock ".")
1 Z2 j. L# ?: J3 G/ c+ x+ E a ); r; D7 e" O/ p% v
(setq linetype (cdr (assoc 6 laylist)))
# a5 \9 Q2 }$ P7 P/ \- l( y% K (setq layname (substr layname 1 31))
; s$ G$ r3 p; ^ (if (= tilemode 0)' f, N3 Q( Q% Y9 q7 y/ Z' k" C
(progn
/ n3 D2 n. z# h (if (member (cons 1003 layname) vpldata); s- p% P7 O' I! G& k; G+ k" t8 r
(setq vpf "C")2 R4 r, k( ]1 X- N8 m# p
(setq vpf ".")2 L0 J: q# e$ b! p+ s
)1 j& r6 |0 V& y4 L
)
/ X( C7 l5 t+ T+ y4 `# {+ U (setq vpf ".")( g& q0 w2 d& M# [# N
)
6 _# ^2 L) B% r* L. E& Z- s( K (setq ltabstr (strcat layname "\t": k- G4 v ~* m( W: s
onoff "\t"( L& T1 R" \! i ^' l& g
frozth "\t"$ b$ }9 P, X! [+ o9 @3 F. |
lock "\t"
0 e7 @& L( ^1 I, M$ e3 S1 c0 E vpf "\t"
9 ^% Y5 K" V3 y/ A y' K vpn "\t"
+ M: a$ F% E: g9 l {" f! T colname "\t"& S; E( M6 ~) f& S e
linetype
) Q% x$ }: y3 h% e ). j$ s9 R3 J' l+ T2 A
)8 X/ V, `' {( K
(setq longlist (append longlist (list ltabstr)))
/ H7 `% G" T$ ]' X" S (setq sortlist (cdr sortlist))
) Y/ D: I2 x* i6 P' ^2 ` (setq layname (car sortlist))1 Z8 v. E* u2 Q& R% Y6 H" `: i
);while8 d! j# g$ q4 V
(setq longlist (append longlist (list "")))
3 v0 H* Z8 W7 |7 H6 c (set_tile "error" "")
4 S; e5 @% ^5 A) C! g! y )2 B8 D+ ^4 t/ }4 h
;;
0 a7 {$ c9 K5 [2 D& O/ f7 x; U ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
( W/ d3 u& n/ k" z0 ^' V8 I ;; linetype names read from the symbol table. Mdashlist is list consisting+ ]( k' E! Z8 A) s8 Z" ^# ^4 ^
;; of lists which define the linetype pattern - numbers that indicate dots,
7 _! v! i4 N7 B ^ ;; dashes, and spaces taken from group code 49. The list corresponds to the
5 ]$ C- ?7 V6 B& U ;; order of names in ltnmlst.
+ d% o% r6 N- c& ]# f ;;9 N3 O$ r% E7 j) m* d
(defun makeltlists (/ ltlist ltname)" \4 n, a- g2 Z6 N0 T
(setq mdashlist nil)6 [/ U$ Y5 H" {* U4 p, r. i& a' e: Z
(setq ltlist (tblnext "LTYPE" T))1 n* N. j0 \4 {( c. A% ^3 T2 `
(setq ltname (cdr (assoc 2 ltlist)))3 H( M+ I4 ^! ]$ J- y
(setq ltnmlst (list ltname))/ Y. k0 J+ R. F* V$ t8 y
(while (setq ltlist (tblnext "LTYPE"))
% a$ d- a f/ l7 s* F (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
$ J& k7 e! C& F& t$ C3 J (progn
3 Z- I5 n H- _5 y4 Z) S) t: Y: N (setq ltname (cdr (assoc 2 ltlist)))
6 R. h9 `( X0 T7 W. E (setq ltnmlst (append ltnmlst (list ltname)))
' ?. r3 Y5 G* f );progn
5 q' q9 r# a3 p5 @$ ^ );if
: @* N; c. }3 g8 G6 _4 { );while( J; T! Q, v6 V
(setq ltnmlst (acad_strlsort ltnmlst)) P; ?2 t7 ]% Q7 A7 ?$ i
(setq ltnmlst (append ltnmlst (list "")));add by rk
- L i' C+ p% x3 Z. K0 N (foreach ltname ltnmlst1 i; _6 b6 z8 ]' @
(setq ltlist (tblsearch "LTYPE" ltname))
, k ?9 O% U3 T (if (= ltname "CONTINUOUS")/ a8 b% h: w' i
(setq mdashlist (append mdashlist (list "CONT"))). T% d" i& v' A( l& ]# j
(setq mdashlist
: x# j" B8 o$ d6 u (append mdashlist (list (add-mdash ltlist)))
3 k6 Z# `6 ?9 t ?2 ? )
% u6 \& \/ Y& b3 }1 N+ O$ p7 d )- N# R4 M. M+ j+ u' B. a
); O( U6 N$ s* K+ D/ t) Q
(setq ltnmlst (cons "BYBLOCK" ltnmlst))
1 x. _$ T" R1 r; }) ]: f (setq mdashlist (cons nil mdashlist))
- n2 X2 v6 | I6 e2 V0 H: [7 H' g# j (setq ltnmlst (cons "BYLAYER" ltnmlst))
% E, h: C: {9 {- R# f6 Y! _+ Y (setq mdashlist (cons nil mdashlist)). g) F% @5 c% b# D( c4 p0 u2 s
)8 ?+ n( p$ A) o5 S
;;
! f9 A1 L2 w9 D ;; Get all the group code 49 values for a linetype and put them in a list7 q9 v! O9 F6 G+ w L8 u
;; (pen-up, pen-down info)* S1 `. {, q- _1 ?- \) `
;;
- w0 W" g1 a5 j0 A; q9 e/ f7 F (defun add-mdash (ltlist1 / dashlist assoclist dashsize): ~5 r2 G' E! J8 V0 ?6 p2 o
(setq dashlist nil)
7 K) |# h1 U5 I: }' I# C9 h (while (setq assoclist (car ltlist1))$ M; m2 ~2 r8 |' n! I
(if (= (car assoclist) 49)9 M. e `9 U# E+ \3 N
(progn
- G' m- }( x, _2 s4 v' h1 H& X (setq dashsize (cdr assoclist))( U" i! D; c" r$ Q* o! r0 r/ ~0 \' c( O
(setq dashlist (cons dashsize dashlist))7 W0 n8 j% K( e1 r
)# Y: Q$ }& O. v4 s) U$ B+ n
)
o& V$ T& p- R1 ~4 k' z (setq ltlist1 (cdr ltlist1))
3 p/ O6 u; E r0 }$ { )
7 }- m9 L; n) M6 D6 B+ p (setq dashlist (reverse dashlist))7 ? F' R( o3 A S
)9 g0 z5 o* e- }) a/ a- X9 j
;;. U3 K3 ~$ g( a8 x
;; Color a tile, draw linetype, and draw a border around it& G- Y& B7 B8 o7 d
;;
* b# Q D; T+ \7 z+ m" p (defun col_tile (tile color patlist / x y)
! O% O" E" W8 ^% r, J (setq x (dimx_tile tile))% ], C$ E% z4 Q+ B! l& a
(setq y (dimy_tile tile))
! |% S' l- O* i9 h& ^ (start_image tile), f: Y3 b5 V. d, K" |& G6 ]
(fill_image 0 0 x y color)
3 F5 Z8 j S/ P( @- P% T8 {5 ] (if (= color 7)
0 @5 Q I6 [& D0 H: ], f$ K- s4 a (progn9 K2 j8 W5 o9 F o) W4 N; v
(if patlist (drawpattern x (/ y 2) patlist 0))1 c0 t2 ^4 T! s- }' e& C' [, |" ^
(tile_rect 0 0 x y 0)
! y1 A; x' n' M5 K) m, C; M )( Z5 S" T' X' Y
(progn5 N4 C ]+ ?" J# s& o: f
(if patlist (drawpattern x (/ y 2) patlist 7))0 @$ k, g: J, |9 C( v' }$ ^- }" g
(tile_rect 0 0 x y 7)
: u: Q( M- T- f# d; y6 B- ^, H5 i. c5 q% \ )! k" f& Q" h- _5 a2 O
)8 s8 ~ y; @" d Q1 U' _6 x
(end_image)! ^0 j! z/ o8 ]- F$ C8 L$ N; [5 l
)
7 \1 K# i/ }' ^ ;;
. W1 _! U' ~6 R% O/ b ;; Draw a border around a tile
; F0 J) @8 P" @- q ;;) p4 h$ _7 c5 G
(defun tile_rect (x1 y1 x2 y2 color)! C- N- U) U H; I0 t
(setq x2 (- x2 1))) A/ S. y* Y( p) [& \9 k: Q
(setq y2 (- y2 1))- P% e4 P# l/ `
(vector_image x1 y1 x2 y1 color)" K& G* k+ ]# o
(vector_image x2 y1 x2 y2 color)# T4 Q: ?$ I y' J
(vector_image x2 y2 x1 y2 color)- B1 \2 d: l4 ?% C' k$ P+ F# n
(vector_image x1 y2 x1 y1 color)& p8 i( k& w* B6 |$ s
)4 K0 \6 @0 c1 g: u! ]7 o. b% k/ _
;;
6 F% H' @+ Q3 n) U* K3 h8 D ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
* _! O( y, A5 ~( r; X4 T ;; tile, y2 is the midpoint of the height of the image tile, pattern is a' {+ D$ n# z- ^- f0 X8 c3 A' F
;; list of numbers that define the linetype, and color is the color of the3 Z0 L& S/ @! K; ~+ X
;; tile.1 K4 H; P+ D2 H
;;/ S$ y# T' O8 k" j6 v1 |) { _
(defun drawpattern (boxlength y2 pattern color / x1 x2
. I2 `7 n y" }. m patlist dash)4 n* _2 s$ p9 T" X
(setq x1 0 x2 0)" t; T* |; X* Z. S: v" R
(setq patlist pattern)
; R- E D" ^* @6 B8 J' ^9 F, a5 f (setq fx 30)
7 y' N3 ~! m" ^# z (if (= patlist "CONT")- o) h2 q% i: A( _5 y k8 i
(progn' Y# W U+ K0 c7 S, d x% r
(setq dash boxlength); E% V; X' Y% ^) ?: U
(vi)
# y* O% U0 Q6 K& q3 ? (setq x1 boxlength)
1 R& \* {4 N7 b o8 E8 P6 A- R )
* C, [4 {; V" E) K" Q; }' Q! G (foreach dash patlist( Y) g% {4 z: t7 e4 H
(if (> (abs dash) 2.5)
2 ~9 h. S7 L; R( z7 V6 H (setq fx 2)( b" B+ Q; }0 r6 Y ]* p& z8 G
)
3 P% s8 l" s/ X )
) [. a: E$ n+ P! Y) } )
6 `& F) e" x6 ~7 w8 i% U9 l (while (< x1 boxlength)! X2 E, B6 C2 h( Y5 U" }
(if (setq dash (car patlist))
4 p3 W7 b o! }- ] (progn4 H6 B) T! h. S Z
(setq dash (fix (* fx dash)))
; @( {, Y+ x* _' j, ]; ]7 V. z (cond
- m6 r! L' W- {" A9 ?5 ` ((= dash 0)4 g0 I9 j# t" J6 H2 L* u" t
(setq dash 1)
: V% O/ M' c( o* n (vi)
+ e" F( @& L% B2 z! C( Y ); t d! k, a2 r
((> dash 0)
6 @9 f( J, g; U; U (vi)/ v' w5 f: V6 M$ m7 {. x
)9 |+ l5 k- ~9 W! r- e! g
(T
& g) l2 y7 W0 o4 M" i/ d (if (< (abs dash) 2) (setq dash 2))
" _& o1 n+ I# B# @- t% f (setq x2 (+ x2 (abs dash)))
8 z+ s: W3 Q* N+ `1 s- | )
5 i( b1 z8 W1 i) J7 K# E0 u" z ), O3 X' U( F: d( \
(setq patlist (cdr patlist))8 a) c. n9 F: Z0 I/ y! p
(setq x1 x2): t! a2 y+ C# h; W A0 v- Z- g
)) ]& V. d9 A; G$ Y: E. U
(setq patlist pattern)
0 l4 q- i1 P0 ]" M, H2 l7 X )
4 Z! |9 _5 u3 C m1 P ), N! H- v. j7 o* T- m' x
)$ g* |: v' d8 s; B
;;
, x3 `: _7 O$ Y/ s( i) g6 l% [ ;; Draw a dash or dot in image tile7 c: z' b0 b" u/ a6 v5 R7 G
;;
5 o$ r0 Q$ ]# W% h( w- u& R1 x& U (defun vi ()
0 Q) P. ?, S! S( s9 o (setq x2 (+ x2 dash))9 y* G6 B8 A, J0 ]
(vector_image x1 y2 x2 y2 color)
& _5 z. @" ^6 |* G* O& ] )6 H" ]4 u/ o. t
W {) B! f) y" T" h) l9 W
;; This function takes a selection and returns a list of the color,
+ k, v/ z1 {8 b) s ;; linetype, layer, linetype scale, and thickness properties that K. q+ n9 n: s# i. h6 l
;; are common to every entities in the selection set - (color2 L3 A- S( B( c! K4 i
;; linetype layer thickness). If all entities do not share the same
" A# P8 F0 }3 a9 U ;; property value it returns "Varies" in place of the property
6 ^4 x) f4 m1 @' w4 E% h ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
b0 V1 D+ d3 M& f ;; The last item in the return list is an integer flag for the
6 v6 V0 X$ _6 U0 L7 W' j% W ;; homegenity of the selection-set object types.: V; h1 z3 v" w3 A# t. w
;; 1 = All polylines% G+ |* x$ J9 V" O
;; 2 = All text or mtext or attdef, or a combination of the three
% W; y5 Y$ L' S# S5 ~$ e. f ;; -1 = Any other mix of objects
8 y' M: q3 L- @3 ]) e% t; G7 E. Z- G! g8 i, C* a: q
(defun getprops (selset / sslen elist color ltype layer ltscale thickness5 c: Q. u2 k5 z3 U' }0 i
width elevation height go ctr # ]+ c1 X3 Y+ w# s* ^8 B' \4 v
eflag ?1 L4 M8 W0 o! F) P. `7 i+ S
etype temp
& R8 e$ A( t8 R# V9 O% e3 O txt_ss ;;;;rk 11:24 AM 1/30/97
8 h5 K: _$ I3 ~ tmp
! w' }$ @: J' O' U poly_ss & q" [3 j/ {9 ^; B/ t/ u
style% f. X+ j! P& M) Y
)8 L5 ~ M5 R' T5 f
7 q4 V9 I! {' a9 h6 r h( L+ i; J! K% c4 S' \/ }: G
(setq sslen (sslength selset)
2 B8 C9 Z4 _6 s* L$ ? elist (entget (ssname selset 0))6 s( }& w" m* O1 ]8 W% h: B5 }) H
etype (strcase (cdr (assoc 0 elist)))
8 G2 k8 j6 x1 B color (cdr (assoc 62 elist))
O+ I9 Z& Q7 X! S" g; W0 [3 N; X1 a ltype (cdr (assoc 6 elist))
+ b/ _' Z, p8 @1 l! { layer (cdr (assoc 8 elist))% m% v, A9 }9 u# ~$ e( E# B
thickness (cdr (assoc 39 elist))# @. A- N3 A3 y8 L4 f; m
ltscale (cdr (assoc 48 elist))! ?8 x8 `9 V. w6 @) s; c* W8 H
);setq. H: I3 W4 c. L6 L* p) \
5 }& ?; z; h: X% v' v+ G* m
(if (not color) (setq color 256))
4 c9 Z1 j) O1 D2 U (if (not ltype) (setq ltype "BYLAYER"))
% {! A$ C5 T. `7 U (if (not thickness) (setq thickness 0))
( N; {( B" u% J% N! g, L: o (if (not ltscale) (setq ltscale 1))
. \2 a3 F& ^- I/ A) K3 g5 q5 n
( Y5 y0 P. K6 r2 L% s' b6 j' x (if (not width) (setq width "")) q5 k B, }7 K4 R7 p
(if (not elevation) (setq elevation ""))- c$ c Z3 H4 o% ~, y
(if (not height) (setq height ""))) L) i0 g; m1 y% l, ^7 m
8 O2 i9 h" u" Z (setq go T ( D4 r: J% o6 ^) S$ X! @% n7 W+ v
chk-col T
1 N, P/ ~4 [" ~, x, l* P( v( o! q chk-lt T
( Q7 J$ N. Y* {, V! X8 y chk-lay T + {3 U0 \; K" [, ?8 Y4 U# y, _& P6 [3 w
chk-lts T
6 c. _# S9 Q% k7 [) c7 ` chk-th T
) I3 L/ M5 ~' t! J0 |6 y ctr 07 M- v+ f# l+ J7 t3 o( J3 R
);setq% p, C E8 j. S8 r" C( e' `, r
) _! l: K4 @2 X% J ;; Page through the selection set. When a property; l3 t' m1 H. C+ Z. g" R3 [
;; does not match, stop checking for that property.
+ z' A. P- u7 o' s& T4 W ;; When the selection set is not homogenous, stop checking.$ A# y/ X$ e6 A8 Z4 z- c9 k$ g
;; If all properties vary and the set is not a type 1
! ]" e+ W% |2 F& m+ e+ i4 e6 T ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging." e2 y2 t2 H" o ^* h- C; p
7 L* O% U$ `7 d% D7 r ;Lets set the eflag so we know if the selection set includes any / p. G% ?7 F% G. ?$ T
;combination of polylines, lwpolylines, text, mtext or attdefs.0 a; _8 j9 D3 g# h3 w5 T
$ q% g" y- B+ u6 ]4 ? ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
1 M" O! I _8 O- a2 s (setq eflag 0)
1 m. D0 y/ S/ | (if (setq poly_ss
1 J7 j5 G1 w4 D, Y# G; I- a (ssget "P" (list '(0 . "*POLYLINE")
' d: M6 g: G2 U6 _" c# d/ M '(-4 . "<AND")
* ^* p. e9 @1 C- Y '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
3 B8 V5 i! g8 Y3 x '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")0 K6 D' q1 V# n" w
'(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")* v" v4 e z4 f8 T: L, E
'(-4 . "AND>")
4 D1 w7 l( x9 G4 |! {8 @ );list
! _6 h% c5 T' v2 O y6 l+ o+ Z3 j9 J );ssget get 2d polylines (legacy and lw)1 v: o) s4 w9 ]' q# p
);setq; ?* {0 Z5 e" K0 @0 Q8 n3 `
(progn
T8 b( h! X( b0 p0 } R- d3 T! a (setq eflag (+ eflag 1))$ R, K9 g3 p' `/ R. r/ G$ `" R
1 F5 h& K! M" r4 m (setq tmp (entget (ssname poly_ss 0)));setq
' f- ]/ g l8 J
1 \& [0 k" ]$ D2 }, J9 U+ j# G5 _1 R (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
9 w) B0 K- Q, c8 o (setq elevation (last (cdr (assoc 10 tmp))))& I" ^* V6 v4 `6 C$ Z- e
(setq elevation (cdr (assoc 38 tmp)))
6 V( ^+ D0 a# [# g8 D) I% K );if
* j p7 `$ m1 D8 ?2 r; ?$ p (if (not elevation)
' ?* y9 v/ u9 J5 V6 [7 b8 \ (setq elevation 0.0);setq9 ~/ H1 |* K3 p7 \; O" ^6 {
);if
! {8 {0 ]( M! v1 M1 L$ D$ Q) ^: }! o# Y3 F* v
(setq tmp (ssget "P" 6 |, @5 Z) R2 v+ _9 o; g7 ?$ z' Q
(list 9 }3 B3 E8 `. O
'(-4 . "<OR")
$ i9 n) r' \: l _& S '(-4 . "<AND")
# G. G% M9 X: y$ e '(0 . "LWPOLYLINE")
^1 M5 u! Q' E (cons 38 elevation)8 w+ j8 n ^9 O4 H, d
'(-4 . "AND>")# W' a, q& o, |. @0 h8 C
'(-4 . "<AND"): I3 `' E: \1 @& S' Y5 G4 `% U0 _
'(0 . "POLYLINE")
8 Y7 ~' o3 S E- ^9 J '(-4 . "*,*,=")
$ o" b5 _; {! p8 I6 S% u (cons 10 (list 1.0 1.0 elevation))) c7 R' M, n2 I" U* f
'(-4 . "AND>")
6 U9 Z7 |+ e# v( n '(-4 . "OR>")
( {; f: I! Z2 ?, Y );list
- x3 o+ J8 i& q3 q+ [8 h$ m! v );ssget
( D; Z, d' [" }1 F7 G) ~! S7 z- m );setq
2 q- k) O( p7 n+ f
) M5 _ Z+ w+ P( | (if (and tmp
6 d* i1 z/ h7 |+ e3 O3 } (equal (sslength tmp) (sslength poly_ss))
7 O8 K7 u l% U+ r- C/ y4 g );and i, w" k \, [$ f" @; e
(setq elevation (ai_rtos elevation));setq4 h. ^% K5 U$ |5 z9 R6 s
(setq elevation "")% h% A; k {! l% Q4 B# ^; {
);if: C) H4 T, X- V: W7 t E4 T
- z7 [9 S$ s6 Q' ]: _! m (setq width (pl_width_getter poly_ss));setq
* p4 u# D$ L3 b* f
. [7 w" ^$ \$ i) ] );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
: ^" p# H4 m+ `! r );if- D- Z. v O; L: r, _
(command "_.select" selset "")1 W+ p1 s! ^4 d; c8 M2 h
, K3 K% z4 V. W) b (if (setq txt_ss * s: M# [- `% U: p4 C; ] @
(ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
: }/ c) j" L# C9 E1 ^2 T (0 . "ATTDEF") (-4 . "OR>"))0 S" K: h/ v/ j3 X
)
7 I: n2 l) p7 X2 W );setq
# i3 t& [" ~) t9 q4 V* b/ d" Q (progn
! ~. [, V9 q& j# Y9 F* @7 z0 u (setq eflag (+ eflag 2))
* E2 Z4 C+ e6 Q9 f (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))- b8 j' ~! A2 ?! l0 ^
tmp (ssget "P" (list (cons 40 height)))
/ k, ~7 \6 d1 t" @1 l2 o1 W );setq 3 [1 x! p# h$ p: d, D
(if (and tmp
0 ~" j# h/ \0 a (equal (sslength txt_ss) (sslength tmp))
4 s! \7 O4 S5 l1 b) `4 E' n0 _/ N );and# [' ~& a( @7 N! {6 n
(setq height (ai_rtos height));setq ;@rk need to translate from float 4 v9 y6 Q# U; ?: O. E" p9 X
;to string and back again easily1 \* \9 z. n6 h* V w5 a, e' U
(setq height "");setq else the height varies 7 `- E5 H# ~4 v! y- o1 N; x( R. f
);if
; R" ^9 O# e+ m/ ~ \% J (command "_.select" txt_ss "")
9 l9 |* G) a/ n) L( ^ (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
( C/ h' d& N& E$ b tmp (ssget "P" (list (cons 7 style)))
_: x) X" V" k! q );setq
' Q/ U, s& ~; v/ n4 K6 Y) P" n (if (not (and tmp" J( _4 w: V1 m+ p4 l5 g
(equal (sslength txt_ss) (sslength tmp))
6 a* g7 R' a, N' o& Z9 G7 f! Z );and# A9 q1 |# X T1 V
);not
r8 @( z4 N0 K. I* H (setq style "");setq then the style varies
' f2 f) Y2 p- D: y, @ );if
3 \6 }- _- r3 { );progn the text type objects are in the selection set
! l; A _8 ~ i );if
6 e+ ]- j! n8 k; D (command "_.select" selset "")* B+ {' D; k5 T
$ p9 l+ w/ I# e$ q (while (and (> sslen ctr)
+ \ b( `( Z+ x6 n# a8 h8 N1 k5 G go8 C- K3 d4 x' ?
);and
6 ]; c, {% ]& p6 {6 ~ (setq elist (entget (setq en (ssname selset ctr))))
3 k0 N+ d+ T" I; S" ^7 t' [7 h- L
5 v! @% K! F4 v8 G: F (if chk-col (match-col)): ?: x! U) v6 H7 s7 {. S# @3 e: {
(if chk-lt (match-lt))0 d! r* w1 E T3 d* y6 f, A3 P
(if chk-lay (match-lay))% X, x* [1 ?0 }8 q6 j
(if chk-lts (match-lts))- T, F; l3 f8 I, Y/ m, s7 C& D
(if chk-th (match-th))
- F* C0 v% k! _+ x- I: U Z4 g) O
, h& n* ]4 C; b& u4 c7 [, c; Z ;(if chk-etype (match-etype))
" M6 S$ ?0 s! z2 a! X1 D$ ^8 b, T; U8 S$ x) D
(setq ctr (1+ ctr))
# {3 [2 c D. G8 |0 T5 ~* X (if (and (not chk-col)! q( r4 R2 n1 Q. r2 K9 I/ {+ h1 }) P
(not chk-lt), g( p* G( R( O* _. u' f: B4 Z
(not chk-lay)# y4 a+ S- e; x( @8 s }( g
(not chk-lts)+ p8 o& m- M4 g6 l" m S+ \
(not chk-th)
2 t8 U7 B' p. h' ~0 \1 ] ;(not chk-etype)
0 }% C6 n* O. _$ y );and4 W0 {7 D" K" h
(setq go nil)9 I- ~# ?4 }+ {0 Q& j* Z
);if
) b7 A- n5 M. d! L );while2 A1 c) ~: ~ {2 K: a9 c
! [+ J' O) |# X/ U" i% T. Y (list color ltype layer thickness ltscale
; g8 d/ b7 ~" a% H6 ]4 m/ @/ ] width elevation height eflag B3 W) S5 k |& Z, @9 g
style poly_ss txt_ss4 g7 C2 L8 k( b6 ~4 ?5 Y( e; v8 s
)* c) T! s: N5 {2 c, @9 P3 L
);defun getprops. o, p' D0 z0 y& Y( `, O: Y
P) x: Z1 }: P. A- q& D
; This is a speedy little routine to tell whether the polylines in
; Z6 `9 W4 E! g- l6 k ;the selection set argument are of varying width or a constant value. , v4 ^! ^1 R. X2 T. L9 A
;Looping through the vertex's has to be done for old polylines when
8 j# j8 k6 C7 O8 p! W6 g& `3 [9 d ;the polyline header has width values of 0.0. Basically, in this case, 5 G/ v" v% h5 M4 g/ N, A9 t7 {
;information in the polyline entity header is abmiguous. Width values ( i2 M% T) B4 Q
;of 0.0 in the header entity could mean the polyline has a constant
$ n; ]3 L2 e/ j6 S; Z2 R# I+ R ;width of 0.0 or it could mean that the polyline has vertex's of varying 4 c. U& \5 w) o0 ]9 x y
;width.
' X: y( ^ B5 q* o* J4 t* o ;
5 a2 H: Z2 B' ^9 S0 i, q5 e4 v o% J ; It's all in wrist. Err a.., I mean it's all in the 'if'+ t5 J5 k6 a, }: n) p
;;
: j* y+ U2 f `! J (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
2 } P( c7 ], c+ H1 c& W
# x {& I9 D# R: O: F' M e# y (if ss
. i5 }8 g d9 e5 G& w (command "_.select" ss "")
4 k' ~1 ~* D" l5 s );if3 Y( U" j' r9 b+ e
(setq width ""+ g k8 e% k& Y) n1 c
flag nil! u6 |: b; s2 N6 O4 x6 t3 i
flag2 nil' ?" o4 N9 G$ k+ B1 m
);setq3 `7 X# L0 i% T. d9 q0 j
(if (not
* b& I# R6 l2 K- v) I (and ss
# |5 v" ^. p# {6 G& p. [ (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq7 u* p* V8 x! |4 p( j
(setq na (ssname ss2 0). I! A2 k/ l/ w" O6 ?
width (cdr (assoc 43 (entget na)))4 q, m' b9 R/ t" C, Z
);setq; `& y" |/ a; Y/ L
(setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
( \3 @8 y' t6 [) z: T7 V0 N (cons 43 width)
0 W' |. d& f+ S8 d( M );list' W. o, N7 U" {) }+ z- \
);ssget# V' N& o# M. m* H. r7 H2 |% {
);setq
" U2 h8 G* |) @/ r9 Q5 D$ F (setq flag T) . ]1 L0 G$ m) U4 {: c5 w
(equal (sslength ss2) (sslength ss3))
2 t# z8 u s! ` );and
9 ?9 V f j; k. l; ?1 j$ K );not
( \* `3 _2 ]8 ~ m (progn$ N( C- \5 b' `$ R/ b
(if flag
; m/ o+ l$ o) A- g5 u (setq width nil) / R/ c4 t1 f R
);if: L: G) R9 f, ]# R; |
);progn
4 ]9 o* ~+ S5 {. @/ f' z" U3 ]2 k$ F, L );if
3 Q' f' h1 G1 [/ T. B7 G" a; A) s7 \2 Q8 J5 x9 T1 Y6 O) C: C
(if (not ! N/ B5 V# [. _* p/ F+ c, X0 @
(and
3 y) B6 b1 o% Z3 k$ ` ss
& p' X" I8 n) T5 x" Y0 q- v5 z (progn (command "_.select" ss "")
5 H" M/ \+ E n- Q1 ?5 S3 l (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq$ d& |# p" R$ `: P
)
9 B: K; d- D, n, M7 ]- k) L# V (setq na (ssname ss2 0)
9 ]0 E0 ]4 }& L3 B8 M7 d e1 (entget na)
' K" Y' `. P- S5 Y p" A3 U3 ` width_a (cdr (assoc 40 e1))) u+ h. p* k7 R7 P
width_b (cdr (assoc 41 e1))6 ^8 q" N6 d; `' `
);setq
7 J( k5 U- L) _; E2 o" T (equal width_a width_b)
- R9 b3 g$ U1 D- M (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
# M7 m% `# w3 _: I" g; P+ A6 O (cons 40 width_a)
* D& b+ N2 S# u9 k3 k (cons 41 width_b)
( E) `0 V% E2 u/ d; w- g );list
6 @2 w' s$ \5 h% A. C% h8 a# ^ );ssget$ n% r- _) b' j8 V& o; d5 X5 o z
);setq
6 p2 S4 `7 t# ^6 \ (setq flag2 T)
8 w* ]2 O6 e o& H- C9 I* t (equal (sslength ss2) (sslength ss3))" I9 K* c3 n( u& f. E! o
);and P- G" q. z/ I& a! S: B
);not
) F, |2 ^* ~ c+ W (progn
$ ~5 c1 r+ _% n$ [$ N, n (if flag2
3 a8 E3 B$ c; U0 T; q& v: v (setq width nil);setq
1 C. U8 x# C+ a" J' ` );if
- f& H2 w9 y4 p O );progn then
& y4 M: x6 Z. M F$ \) q# I4 h2 W% @ (progn
; u4 c5 `4 ^2 t9 C (if (or (equal width "")
( r& w" x# W0 o. _( y1 f4 Y (not flag)$ ~& `: D; f* \; C3 x: x1 |: q" t
);or
/ e% \ v: }$ j6 `; e (setq width width_a)
& P# t1 o X/ z; a2 U8 W/ R (progn8 _1 ]# ?" F9 P( m. A
(if (not (equal width width_a))8 i+ K6 x$ P% F& N# q# ~
(setq width "")+ P% {, ~! | G& j
);if 4 r' B$ n" k! t' a: d z! D- _
);progn
: p- P) M: K+ ]! Y$ s8 K6 ^, y );if
- k/ L) Q& n) t );progn
7 b4 H8 W/ m# ?+ c6 Y7 [9 J- p );if' |. `* W$ T/ I4 {# u+ j$ `
x3 y) e# X3 G; C
' I G8 J9 z- _% A4 y
;now for the special handling for old polylines
( I F1 A6 D$ D: Q) I# @ (if (and width * t4 u/ e1 a! N+ y, Q1 e8 J
(equal width 0.0)
# \& [8 L |8 `0 q, _( k* j flag2
* x) L4 v' o5 b2 T+ Z8 u );and % P4 t" ^1 m4 C% s+ ?
(progn% q! ?% c4 j2 u: d8 P
9 k, x, h% S- _! N' e% L1 S3 @ (setq n 0);setq
/ N8 ]: W# o1 \6 g (while (and (equal width 0.0)
7 u) }1 l! [6 u7 W. C. q% o (< n (sslength ss3))
# ]+ a4 h! \1 ?+ b );and: e I$ o, `& b
(setq flag nil
/ f6 a9 n; i" g9 T7 k, P" ` na (ssname ss3 n)
+ F9 V3 w, ^0 q% Z1 Y x4 U na (entnext na)/ z2 N2 S6 D' e* f q' s
e1 (entget na) W3 C5 _+ Z0 |0 K; O+ k7 L
);setq
1 j3 D2 [+ f+ n5 ~ R (while (not flag)1 R4 P) V0 F. \! D
(if (or (equal (cdr (assoc 0 e1)) "SEQEND")
5 k3 C; E' B2 g (not (equal (cdr (assoc 40 e1)) 0.0))
/ N ^. h$ Y5 T (not (equal (cdr (assoc 41 e1)) 0.0))1 V. D% ]2 M/ B$ F3 Y, U/ r: ]: ^
);or
) }/ D& \ P1 L7 O# O (progn
+ n5 w& o8 a/ n$ P (setq flag T);/ \+ y* I5 k0 }% W
(if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
. A& ^, v8 i4 s4 `( C1 e2 }* L) E (setq width nil)
% c7 C& H! X, d" S2 L" v5 T% o5 A; K );if
! |8 X* i1 q/ P9 w9 j, g, W );progn then jump out of the loop
5 ]2 L3 g$ ~, K (setq na (entnext na)
: p2 p' [" o c! [ e1 (entget na)
2 T. W# g7 X6 u0 h3 n' e8 x4 | );setq
$ V$ S% C( E0 K5 X6 a3 K8 X, w );if
9 h- }! ]4 O, }1 { );while
; `! n @' f: C& D" f: } (setq n (+ n 1));setq
" N, f9 [8 T7 u9 }% t );while
3 V& L" z9 O* a2 A5 ]- k O1 |7 [ Z3 |' k5 ]4 v: p; |
);progn then it's a legacy , O; l U5 o. k$ ?0 N; Q
);if ;legacy polylines that may have varying widths
+ x: p, x# k6 R) W) x/ @' k9 d/ o) }; _; l( o
(if (not width)
, Q4 Z, S c, q/ z- D/ t; O (setq width "");setq( J, ] n! h W2 r
);if
& E! n" N7 Y9 W* p. w1 g( M6 R8 m6 \8 U (if (not (equal 'STR (type width)))
2 S* f3 q, H% y% G% y: @7 u (setq width (ai_rtos width));setq 9 w/ l7 `+ Z9 Z& }
);if
3 b D' A$ G& K z; \: {9 q0 v. E( c$ Y
width
: R& k9 v" w8 v* w& L );defun pl_width_getter3 r7 Z9 c. C } j
4 w' O4 }, v8 }, s4 r' b$ v1 C* o' R, u' a
(defun match-col (/ ncolor)
: E/ L/ B5 Y7 H7 Q: G q (setq ncolor (cdr (assoc 62 elist)))$ c4 J6 D, }. f) G8 U' M, T7 ], W
(if (not ncolor) (setq ncolor 256))
- q/ I. F6 P' Q3 _ (if (/= color ncolor)
: t8 r# S: S+ [7 d# X5 f3 W (progn! u7 ?" h- l! ?
(setq chk-col nil)
0 L) `. G( K" Z9 p, \" m' C (setq color nil)
" n6 D+ u; H# b$ p; W )
4 ~0 k) F& f1 i2 N% C )1 {( a) w7 k6 z& w2 z
)4 J( J& G* w* b# L5 u" B" G4 n( m
4 p3 S, N" a* N, D
(defun match-lt (/ nltype)! O5 _" x5 ~: Z$ q' y9 Y& L9 `
(setq nltype (cdr (assoc 6 elist)))
/ L& o) O! w9 u8 H8 T+ O- f (if (not nltype) (setq nltype "BYLAYER"))- s7 ` r$ f/ _! M
(if (/= ltype nltype)$ G! P# j9 _* G+ K V9 w: M; Z# k- s
(progn
- |0 `5 D5 @$ Z* y& j (setq chk-lt nil)
. E& `3 @9 g4 Y/ v' x6 O& F0 G (setq ltype ;|MSG0|;"Varies"): X: c8 O' r) l) k! O8 m
)& m7 r5 p, @. T
)8 _4 \' n6 g: w! B; n
)
& h$ K2 y1 k6 ?) b' N' U2 J& [' Q. h* U& B4 M
(defun match-lay (/ nlayer)) C% a% B! x2 X# T9 x
(setq nlayer (cdr (assoc 8 elist)))
9 k3 c ^7 u1 x( N7 `& |3 u (if (/= layer nlayer)+ z {+ z& a. p3 A4 F+ I8 s: P
(progn! x+ C, e2 i8 C9 \3 N# D
(setq chk-lay nil)5 A' ?% m0 y5 F# T `; ~
(setq layer ;|MSG0|;"Varies")
1 f1 Z/ c2 A/ ?4 f )+ W# m1 i& h8 W* |0 z
)6 a! P3 t) ]4 ]& I }
)
' b2 L6 l0 A2 P" ^+ D, G& ~$ u7 R' C7 z" o
(defun match-th (/ nthickness)
+ E- \! u7 o* w (setq nthickness (cdr (assoc 39 elist)))7 ?* p3 |, {) y6 h( z
(if (not nthickness) (setq nthickness 0))4 z7 e# b% ?7 D; [
(if (/= thickness nthickness) h" {3 c& e+ ]4 q- d+ N+ N
(progn
4 ^- M% b4 i3 ] (setq chk-th nil)( t' L3 k3 J' m% t1 ~; `! Q
(setq thickness ;|MSG0|;"Varies")) d5 Q# E$ c9 j( I8 F1 }
)
" _4 X. [$ _0 r. B, i )& {+ S: }1 @2 L! b% c0 j
)1 G2 ?# Z9 L3 O# L/ ~' q s( g
, c- f( X! Y3 S: O/ ^7 } (defun match-lts (/ nltscale)& d6 g. a1 Q' v( y5 g$ H
(setq nltscale (cdr (assoc 48 elist)))# i- v7 ~7 q i; \" Y6 b8 d; ]
(if (not nltscale) (setq nltscale 1))
: T* Z r! O- n (if (/= ltscale nltscale)' J" Y% a: Z; D6 d3 z
(progn
. ?- f3 U0 d" {% `. r; [1 t; }) E (setq chk-lts nil): }& a( h" D0 ?2 C. H1 b3 W
(setq ltscale ;|MSG0|;"Varies")& x: i; \' J7 [5 Y4 {" `6 Q
)
% C7 W2 {. q% W4 y0 j$ |* R$ A )
5 y- k; h, b! M# N) N )+ _2 z* x7 M/ a7 n
2 F8 z' X9 S- i$ a' I! Y ;;
! I& Y5 \) u% h A ;; If an item is a member of the list, then return its index number, else
t. l4 O8 G% f* o' l+ u) c) { ;; return nil.
6 i6 R: d" H8 d( c ;;
) i: ?1 r. k0 A; U( r! ^ (defun getindex (item itemlist / m n)* @* a; G% H/ t( r/ k
(setq n (length itemlist))
- l. J. y( d% o! e/ Z) F* O (if (> (setq m (length (member item itemlist))) 0)
: _7 p4 q4 _/ Y. J (- n m)
4 B7 |. h7 G) J5 `2 z! R4 W; h nil
4 |/ U( q& v+ U% Q* a )
4 W- N2 _3 G; q( ~& K1 [3 i/ n: O) ` )
5 l! N( k: z3 F# B( y' j e& t ;;
# ]5 l% ^3 t, F5 ~ ;; This function is called if the linetype is set "BYLAYER". It finds the
% x5 s% g$ R B+ U$ O5 B- M d ;; ltype of the layer so it can be displayed beside the linetype button.
. ?6 K! b2 k8 ?) j/ q ;;7 L2 a; S1 N. w
(defun bylayer_lt (/ layname layinfo ltype)
4 P6 z+ N4 }0 C2 j( g (if lay-idx
, }7 F+ y7 z+ m! `; ?: K (progn
* N0 { \3 D, [$ F' w& y4 E (setq layname (nth lay-idx laynmlst))8 f. j) R9 e# e& \ F1 b' w1 U
(setq layinfo (tblsearch "layer" layname))) K/ o; n0 K/ N- F
(setq ltype (cdr (assoc 6 layinfo)))
, A& [$ S" ^9 {& g) [" S (strcat "BYLAYER" " (" ltype ")")
4 D9 u5 [( Q; c6 D! e5 a) `" E( v )
. R0 U0 S3 }7 d: K6 m+ S- h5 q "BYLAYER"
' W' j% @! I! i; S1 q1 ^ )
$ a7 z4 X/ w+ W' E9 M6 r3 } )
! J; z3 s9 m7 y, u# m5 a/ c ;;
) ?, e- _4 a6 m8 W$ J ;; This function is called if the color is set "BYLAYER". It finds the
/ S6 x4 W# R! Q ;; color of the layer so it can be displayed beside the color button.
8 s7 K1 h. o" G6 e8 P6 n0 h1 e) G ;;
6 H5 A( K0 X; h) x) P; i4 B (defun bylayer_col (/ layname layinfo color)
* N% P) o. ~, S8 ? z, q (if lay-idx
+ |( L# ~: u; P5 l7 v! ~$ Z8 [( M8 ` (progn
?% y! V' ^$ w! G$ j7 @5 t (setq layname (nth lay-idx laynmlst))2 h0 F. K# f* a( b6 B
(setq layinfo (tblsearch "layer" layname))
- o1 N% ~1 g7 h/ D! c (setq color (abs (cdr (assoc 62 layinfo))))2 q+ d3 k) y4 {3 V3 s/ e6 e6 U
(setq cn color)8 [/ i; U) C! b/ l2 J
(strcat "BYLAYER" " (" (colorname color) ")")
/ A4 W8 I5 y. A4 I8 O' a) ~; J ) Z) O- e4 S3 Z' v/ C8 Z
(progn
( Z5 S# B- Q- G7 z3 c$ I (setq layname elayer); j) z" c, N* j. k$ ]
(if (and (/= elayer "")0 I' B7 k6 I+ V8 k
(/= elayer "Varies"), h2 d9 ?* E$ m% }! q" z
);and
. v5 _: Q. z' l' V8 H: q (progn
4 s J# ]9 @; c9 P (setq layinfo (tblsearch "layer" elayer)), }/ L) Z7 G Z! L
(setq color (abs (cdr (assoc 62 layinfo))))
# C$ @$ _* n" ^4 j2 I( k y (setq cn color)* i& w2 O" ?! b: E4 H! v- r: l& B9 m6 A
(strcat "BYLAYER" " (" (colorname color) ")")
( b6 q7 a `" N$ |3 e )7 G/ P* g% X% _5 S& ^
(progn
8 v* B* W3 x" ]( O- n7 `( e$ S (setq cn 0)
9 R4 N! R/ Z: D( b% N "BYLAYER"0 r. m2 r7 l$ E1 `% A r; I
)
* }" q x1 F$ {. L7 ` );if) |) V0 K) w& K0 ?0 P2 K
);progn$ }4 D% Q3 x$ u5 i6 d0 a w( h$ c
);if, H1 K# e" T8 p4 t4 w. h
)
- p( U) p/ c* r5 n; J0 b, b ;;
+ J/ E. K7 a6 Z# w# T. k+ @5 D ;; If there is no error message, then close the dialogue
! u5 F8 `+ U1 d$ _* n" ] ;;
' n* O0 L- P' c; k2 W. r ;; If there is an error message, then set focus to the tile
7 g5 s2 D* o8 l9 h4 n6 k ;; that's associated with the error message.
# o) I( V, X, m" Q- ] ;;
3 \' L. E" |6 D7 s7 @- {2 | (defun test-ok ( / errtile)# P- O8 y# ]! _
(setq errtile (get_tile "error"))
9 ~2 r$ y, m: E) g' |$ g, f (cond$ n6 b' t5 m5 r3 M
( (= errtile "")
2 p! o% ?% x0 G% i+ _+ U6 E (done_dialog 1))
! o% r" B2 Q2 j) [ i ( (= errtile "Invalid thickness.")
$ W; }& ~2 d2 W! X6 { (mode_tile "eb_thickness" 2))
/ ]% v- g0 h i6 ~8 U( n )
. q2 L) u: C( \8 G# V$ a ), y" S) b* k) o6 a! f
;;- `* b5 u; M; j6 U) j7 l0 R
;; OK in main dialogue.* z5 R. Q" ]) F8 ?/ z% r
;;, x2 ?. `, j) f# e( V
(defun test-main-ok ( / flag)
- I) w2 T7 o4 I; H/ _ (setq flag T)
" X' c! O8 I& U5 ? (if (not (or (distof (get_tile "eb_thickness"))
- T" O3 n' ^ _$ x7 A& H (= "" (get_tile "eb_thickness"))
7 B+ l9 b1 N- j );or
2 w: ?) z, @' F7 C );not
8 X! L: e2 r, L& u! O& ]" P (progn
* w" M: a$ W+ J* _7 e( b" r- Z (set_tile "error" "Invalid thickness.")
4 i: c, S! f' ?! ?; T: p! T (mode_tile "eb_thickness" 2)
. S/ K: M0 ]' S1 W3 M4 U (setq flag nil);setq$ b& ~& d$ l( F9 Y/ \5 w0 M
);progn
, |9 j5 }; n. p# ? );if
% w% B& s1 S8 a P* e (if (and flag2 @$ E! j/ Z9 T2 W3 V
(not (or (< 0 (distof (get_tile "eb_ltscale")))1 S( d; W( A' o4 ~: y* |6 z+ i
(= "" (get_tile "eb_ltscale"))
2 R K) O: y. W% \; F2 U );or
1 _* O- f% v1 w, ?# n );not
/ u+ b# U" i; Y# y# K( h/ y! X );and
9 Z% } S g" ]! w o' s+ s: z (progn( }6 W E' _' k' X% _
(set_tile "error" "Invalid ltscale.")8 n M9 M+ D0 t/ U4 Z; |* \
(mode_tile "eb_ltscale" 2)* ~2 W5 D) i5 T' a% U% Y% M
(setq flag nil);
3 G9 V9 _+ p2 l1 A% g );progn then
4 `2 E! c! O1 C x* \ ^9 ~ );if7 ^9 p" g) @! W8 H3 C% q K' x" b
(if (and flag U2 q, {% K! w
; Don't test the tile's value unless it's enabled.
8 ~) u' Q: m# Q( x ; We're not set up for the display-only value0 F7 m/ q* }% ~! G
; of "" here in the error handler." y) u( s9 }3 N8 O
(= 2 (logand 2 eflag)); Y" ^ C7 X) C( x4 t. K
(not (or (< 0 (distof (get_tile "text_hgt")))
1 l9 O) } ]- U: q; K (= "" (get_tile "text_hgt"))
$ O& b, y& Z3 V, f: L );or/ o! w% k) r. }+ ?% s7 U
);not+ m% X8 i! x( A, X! \$ ^0 f# ?
);and" Q7 u# ~3 s& e) s2 G" u8 q
(progn* z! K$ X8 `# r! r, b
(set_tile "error" "Invalid height."); X# t, \& ?1 ^7 e- K
(mode_tile "text_hgt" 2)
7 W7 q2 O! R# [5 Y3 Q (setq flag nil);! k4 U# r: b1 ?1 A+ e
);progn then
( ]1 A5 F6 b* I );if* R9 t: d! q2 S }7 q3 z* k
(if (and flag
: P& m( N5 O i0 ] (= 1 (logand 1 eflag))
" d5 _2 `, {2 \9 H (not (or (<= 0 (distof (get_tile "poly_wid")))
1 d3 c c5 U4 }2 w* m' w# |3 d( y5 i3 } (= "" (get_tile "poly_wid"))
( K, [5 H- J6 G: R" u8 u );or" f0 j( a2 T3 k3 d
);not' @% l% K r7 I+ H
);and
$ A) m9 Q8 Q6 A7 [4 p- u) `; G" G (progn, M" c, \. s# U' _% y4 y5 ?
(set_tile "error" "Invalid width.")4 v4 R7 y' _9 O9 t
(mode_tile "poly_wid" 2)$ g' B: c/ g- C
(setq flag nil)
+ _! J7 v# l7 r- | );progn then+ a* @! S1 {6 Y6 j
);if & {1 Y6 g& r# t- @: O% K5 s
(if (and flag
/ S2 X+ l1 x/ J+ g (= 1 (logand 1 eflag))
' b9 J4 J, ? Y (not (or (distof (get_tile "poly_elev"))
% u$ E7 Q$ G6 k& }8 ?, o* |9 i+ t% e (= "" (get_tile "poly_elev"))2 {; U9 G9 ~4 W# m' p6 \
);or% b1 n. \8 H+ f% E6 S5 ]
);not7 h% x! r7 w4 p7 B! H6 B) b, i
);and3 t( F; Z7 ^/ m3 v8 }
(progn
8 k: H+ k7 Y! F5 M, L( d" H1 U8 B (set_tile "error" "Invalid elevation.")
$ j0 ?8 ?- v' G! }7 ~6 H4 ] (mode_tile "poly_elev" 2)0 e: U% G8 x2 H# z
(setq flag nil)
! Q$ m, }0 r% Z$ V) O );progn then' J+ @7 p" u q) u; N8 }
);if . w* a$ \# A0 L5 V
(if flag 2 ?6 o* B9 t. _
(done_dialog 1)6 I9 C) n4 m( f S7 f7 u) }4 v
);if0 K8 }0 n) x2 ?
);defun test-main-ok
! Y6 R6 r2 N) c5 ]/ e r" P: _2 X2 q
;;
4 d- `3 v9 f& ^. l ;; A color function used by getlayer.
; I- z: k9 ?( f# ^4 V2 Z7 S$ c ;;! I& Y; n ?! D/ v. G0 t9 Z
(defun colorname (colnum)5 F1 Z5 j5 F: p& H- X
(setq cn (abs colnum))
, o& `% S# \& {0 y: b$ Q# X' H (cond ((= cn 1) "red")
7 m0 [. e7 c5 J0 s ((= cn 2) "yellow")
0 {' z7 K8 D2 r5 W/ c ((= cn 3) "green")
% P/ {2 R/ U' D- c5 M) _+ Q ((= cn 4) "cyan")
# f9 R, k1 L4 m) L ((= cn 5) "blue")8 V' v L: l. s4 w5 N! \- p
((= cn 6) "magenta")2 o( p c% T$ W! @8 A
((= cn 7) "white")9 h( W: k, g3 t
(T (itoa cn))+ Y' y8 G+ j. W4 N D; |: @. i
)8 b: N" f% u+ q) b9 h/ p" \. b
);defun
~0 G; `7 v' x! j9 q! q5 \3 c8 J1 N) T# P) X5 d6 c
;;; Construct layer and ltype lists and initialize all
& I: V' s9 _, p" @;;; program variables:2 g1 w# ?6 z2 n' |) m
, g3 o& v" D7 n
; (makelaylists) ; layer list - laynmlst
& b; i- X1 O7 i& ?( \9 ^* ^, o
# z% y( U) G" |6 n3 R( z
- v, e& ^4 Z7 ^8 X; @" V- C) R. k (makeltlists) ; linetype lists - ltnmlst, mdashlist
3 v$ _+ _6 Y' S& Y1 j+ ~% z/ m5 _) O- J" t: O& h8 p
;; Find the property values of the selection set.
^ e( V+ \* F$ E/ D Q ;; (getprops ss) returns a list of properties from
% Z- j9 f& s' w2 V6 V4 V ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
. @8 M% t; M/ x& W. ]' E! K9 M+ V; Q( K7 D- b$ _
(setq proplist (getprops ss));@rk interesting things happen here/ q& T t8 L2 T0 |9 S
& |* C0 g/ G, O% M. h( O (setq, E" X) \5 G q5 f6 B6 n& l
ecolor (car proplist): u f, S1 \9 }" \6 c8 R$ }
eltype (nth 1 proplist)
0 v3 z, }7 M8 e N" x elayer (nth 2 proplist)
; U# F3 f1 l+ G2 I# `6 T1 I ethickness (nth 3 proplist)2 C5 \% h5 z' F2 X
eltscale (nth 4 proplist)
/ z. S4 h& e: L! H a0 P ewidth (nth 5 proplist)
& ?' A$ [5 t2 D0 m9 K eelevation (nth 6 proplist)
: w& c }0 u5 e2 v& D eheight (nth 7 proplist)* ^! B% b2 a3 p) e% v/ P
;etype (nth 8 proplist);commented out and replaced with the line below. RK.
" m: `# ?2 L' i/ m& P% S eflag (nth 8 proplist)5 o0 \+ w" V! V% F- r
estyle (nth 9 proplist)
1 u9 \0 T" @4 y, \ poly_ss (nth 10 proplist)
! N+ L: X' {0 a. @9 I: e* } txt_ss (nth 11 proplist)
! w, _$ W. }; r8 ^ |* F, L, J );setq @: f0 H4 M& @6 B8 b! f% u4 T
+ X! H" ~' t) C
;; Find index of linetype, and layer lists. i. [ m% v) X* D2 Y
(cond
3 A# s. f) E. H; V% h. U ((= eltype "Varies") (setq lt-idx nil))6 ]9 [3 A$ L& n; d6 h( n9 d# F
((= eltype "BYLAYER")3 V: ]3 W- D6 F5 w: ], v
(setq lt-idx (getindex "BYLAYER" ltnmlst)))
6 g1 c+ U/ b1 {+ l1 ]/ n% @ ((= eltype "BYBLOCK")0 p, t- [8 k/ {, m8 M& Y" r
(setq lt-idx (getindex "BYBLOCK" ltnmlst)))4 y) I. [4 }0 S3 Q
(T (setq lt-idx (getindex eltype ltnmlst)))
! y* u S' @1 G+ \% f% _( [ )5 [; ?( T | m% Z
(if (= elayer "Varies")$ w0 v1 K* x0 a% g% @) d! V
(setq lay-idx nil)
7 l* _5 U/ N, s8 @, m (setq lay-idx (getindex elayer laynmlst))- o% V& v' l4 k @+ q2 r& P
);if
2 G6 z- {* `2 y& B* u; y& V (if (= ethickness "")
8 a- O; s) D# p$ H! _6 {! A (setq ethickness nil)
; L, ~# }) v- t) V Y1 }" o );if
5 B" |% V; o9 ?7 x2 m( m+ y& m (if (= eltscale ""); v) _) H x% x N& q8 A$ o" G
(setq eltscale nil)
- ?+ B: X" l* x );if* e4 R- ~8 e2 s" Q+ F+ h
2 {/ K: f, }7 K) G/ v" |);defun ddchprop2_init ; end (ddchprop2_init)3 C& G0 C6 H4 f3 Y: X+ b& x1 `5 N
' v- T' k _9 U* y' b: p" G& a
;;; (ddchprop2_select)
3 F' A" h7 o5 I1 T) A+ P& W, i;;;8 u0 X. }4 b, n5 L
;;; Aquires selection set for DDCHPROP2, in one of three ways:
* O# y! D6 s5 m, N" @;;;
1 ^8 L9 |7 t: y7 w/ U;;; 1 - Autoselected.1 }+ O- B% N8 z+ z, A$ |0 o( n M
;;; 2 - Prompted for.- V' y: R) t. R; Z+ P
;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> ) a) x0 P: C2 ~7 ~
;;;
& m5 F' R+ h3 f. v. s0 R5 J L;;; The (ddchprop2_select) function also sets the value of the% O+ D. I5 D+ @: g3 \, t# C
;;; global symbol AI_SELTYPE to one of the above three values to: }: K0 \9 e) `% [% T; O8 @
;;; indicate the method thru which the entity was aquired.1 h! ^, B+ v& y7 V8 K6 O
/ S5 V T( S/ V/ `
$ x/ {) x) Z# ]4 u* ~+ j(defun ddchprop2_select ( / )% H. r8 ^, Z( c, z e
3 X: k4 C3 h/ x1 X4 M }
6 r, v2 c$ X9 O% ]& o5 ]$ K;returns only entities in ss that are in the current space.
' ]5 f c' K4 V& B8 l7 Z) C) w(defun ss_in_current_space ( ss / a cur_space ss2)
8 E6 Z% Q7 b9 v: p! A K6 P- o( j8 O9 d/ }
(if ss0 z2 v6 i) X1 Z# H7 l& N+ O. u
(progn+ Z$ A! B; H- [; M9 m* F/ N
(if (and (equal (getvar "tilemode") 0)$ e( E# B( [+ F/ z/ C! ~
(equal (getvar "cvport") 1)
, L1 s" v9 T2 _7 |6 W, D+ _ );and
' X* i- ^7 t; z# |, e1 M (setq cur_space 1);then paper space is where we are.
. t* x I: Y8 e; A# f3 |/ x (setq cur_space 0);else model space.
9 o' @( k% C3 I6 z# P );if- _* v$ A# G1 D) \
(command "_.select" ss ""): S5 V! X. ~+ P2 D$ `- M) t% ?
(setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
2 Y8 d( |* C' }/ [. T# f0 c2 t: E4 F (cond ;;;;;tell the user what's going on.
# R' Q# N) Z6 u ((not ss2) (princ "\nNo objects found in current space."))
. l; _; F4 r+ L9 Q' a! V ((not (equal (sslength ss) (sslength ss2)))
' L4 [# A% g+ ~. W- ?* K (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))& T z/ c0 z4 ^9 P: m# g" I
" object(s) were not in current space."# h) J* A/ M& Y' W* j
)
& `* _* H" X6 a' g2 D$ h )
. G, D2 U8 l; ~& ~. m )
$ f4 B- [$ Q7 A0 p$ S$ [' P7 l );cond 4 p+ l& m) a- O8 T1 B3 o! @
);progn then# E- L4 _+ P1 h! D
);if 8 Y |- y3 u0 v3 j ~& Y7 p N
ss2
$ _ _/ `8 s& M' z& T2 ^- ] R);defun ss_in_current_space
5 O! T9 ]# a" L/ A- ^7 j0 q+ ~
' l( S D& Q( V, C6 J+ N) j, P7 |3 h7 N
;;;begin the work of ddchprop2_select! g7 _+ c# f! r, L" o
- j" C2 E% T. N0 v
;; temporarily restore original highlight setting.+ V5 ?$ Q ?% U. M) _. F
(b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))/ d: Q. t0 D$ H+ G5 w8 b
(cond
' I0 b4 |. u& U! ^ ((and ss
& Y& v [1 B2 t# h* W7 A, m) s (eq (type ss) 'pickset) S/ Y. G/ B) S; m! j# Y5 v
) ; selection set passed to
4 E) |% D3 |! p/ ^4 z (cond ; (ddchprop2) as argument. o8 c9 |* b1 l9 u9 V
((not (zerop (sslength ss))) ; If not empty, then' s8 ]- Y# v I$ u4 d
(setq ai_seltype 3) ; then return pickset.
" Z; Z- h8 b# y* |% }" B (ai_return ss)/ L3 m; Q" m1 ?1 g1 R6 o
)
4 D, u9 u# v, Q5 C );cond close. a1 {9 a: V8 E5 {5 d% }
);cond #1) n1 _% k& }) G; @* W* S
((setq ss (ai_aselect))) ; Use current selection
& T7 S: D8 a9 n ; set or prompt for objects* }3 l4 c: G. w% r; z: `+ u
(T (princ "\nNothing selected.")
4 Z* G+ x/ }! Z( H9 R r. \) P4 c4 A (ai_return nil)
" K; C6 N; ~; b" j6 e6 i3 N )
# \* h; f, t- ^0 f Q2 P; w; k );cond close a9 V" } _ t. {/ k
(b_restore_sysvars)! W0 h8 R3 R( e7 a" F6 A$ ?2 ~- ^
) P0 t- Q/ y' X' c4 C& u' t ;(if ss" c% X( x+ w4 X/ s
; (setq ss (ss_remove_locked ss)) 2 k2 s0 z+ m: g8 j- o
;);if
0 b1 P2 ~! a8 b2 T* X (if ss/ K, m5 p2 A4 Q" ]! e3 _
(setq ss (ss_in_current_space ss))
$ N- L. H* E2 q4 k) }3 @$ r8 \ );if" y2 h. d% G& o& z2 `
0 p# H5 ~: a6 Q% f# x ss
% R( \" Y7 o$ s) ?+ _7 y% z);defun ddchprop2_select! O$ c9 X1 P: x9 s" {6 b$ t8 t
0 W( F3 X5 L" q& g+ v( H# e# |1 x" v: u* t5 o: X( b9 H; s/ W
;;; Define command function.
) R( O$ V; b" a+ B' r(defun C:CCH (): l( ^7 q3 r3 f2 Z! ]* G
(ddchprop2 nil)9 L7 F8 s Z, d7 x
(princ)
, H4 V, h- s) p* B- v: T5 N);defun
: ~0 x5 I& s8 w- F5 V8 Y
, Z/ g) L1 C1 T4 }4 x0 q* [
: f6 M+ M( l Q( H, b0 a;;; Main program function - callable as a subroutine.
& m* o9 Z1 Y3 U( Y: [4 t) L$ d;;;
0 {, ^: V, H( u7 i7 [' J;;; (ddchprop2 <pickset> ): ]3 \9 v' N' i/ N5 i9 \
;;;
7 y2 L% L% R9 ~" T3 V0 r;;; <pickset> is the selection set of objects to be changed.8 f( x/ i: R p6 E! U8 G
;;;9 [' X0 V. ?3 s! a9 R
;;; If <pickset> is nil, then the current selection set is
3 s: [" V1 i# S6 N) e( N" J7 n( Z;;; aquired, if one exists. Otherwise, the user is prompted
0 u R, T* i5 y- P" B; \ ]1 S;;; to select the objects to be changed.4 u2 R+ U, P& x
;;;
, s8 j5 r7 i6 u;;; Before (ddchprop2) can be called as a subroutine, it must+ U$ U8 `( W0 ?
;;; be loaded first. It is up to the calling application to
, R9 n& c) m/ I- R: b# _3 h;;; first determine this, and load it if necessary.3 M6 z% `4 O' }
3 q. o) O+ g' K: h6 c2 S: q
(defun ddchprop2 (ss /
) J; \9 r& }4 X7 ~/ g8 J j4 {
8 y1 p3 W% m9 H2 R a& K3 n) Y8 E% n0 a3 D; U
add-mdash0 x8 T2 l5 }/ G! L# X- M
assoclist
# B) g9 c8 N- n+ ^6 K- l6 z1 o bit-704 R, _2 ?: h4 R) T2 z* p
boxlength, \8 u# L6 G, v
bylayer-lt" n: ~3 m. f) `- R
bylayer_col
7 K. z! Z& ]# f+ {1 p bylayer_lt
8 u7 A/ b6 o7 X* H% p! b call_chp2
) U5 a, b2 d6 Y7 h& c4 d chk-col2 u5 M; I: W2 q8 {5 i7 c2 F+ M
;chk-etype ;var removed by rk % B# ? Q2 s( I$ J8 K3 }
chk-lay
# c) h* P' N% A! C chk-lt+ `/ R) K4 B$ G
chk-lts ;var added by rk ; a* Y: I4 A4 P o
chk-th
4 K: R2 j4 r1 D7 D# w9 n$ S* f cmd+ D! q7 a& J' x
cmdecho
, _& Y5 J( w) p8 W0 C4 K9 ^ cn
, z O0 p6 @4 q w% {+ Q cnum
8 f3 G% z8 A' @$ W% J/ R$ p col-idx7 c. A k( L8 Z/ ?
col_def
C. Y* ]' M* }- T: m3 X. T col_tile
, y( Q8 H/ J! F9 l& J/ l colname
+ F p3 b- S3 Q5 @ colnum9 Z) o& X/ J3 e. V1 R
color6 |( j) E* |2 _" U3 Q3 h2 D
colorname
+ T/ H7 t; T/ _' F5 [ cvpname
( U" i# F) n, \7 P$ O, z dash: e0 q" r6 @8 {, n, `0 x9 u# l
dashdata
2 `( C' ?; |5 ]$ i# m. b' m' c dashlist
7 M1 b# ]: Y, n2 _( v dashsize
8 `3 f8 g: M' c2 d; t dcl_id! t b9 c! B& P2 N: u. X
ddchprop-err
' S9 C9 G# N, g" {0 _% B drawpattern
" N, N7 h9 B4 ^- }+ u# ]2 G/ f( z ecolor5 b s& d7 X5 M+ F9 y
eelevation
8 ?4 \8 @# e! N eflag: H; N ]/ t! L/ v( B$ v
eheight* N: N1 o( f2 r. e* x
elayer
, p. D8 I" }5 z9 H4 W elevation
2 |& X5 a) V+ n' t+ O: J: z* K) U elist4 j) t6 J2 N5 P- b. D# J: ?
eltscale3 e7 r. L( R6 F) x/ ?/ l" E
eltype
8 |# l* M: h6 F/ u' H$ ?5 d c en( U6 N% K8 R) H$ n+ s
ename/ V7 L5 H" L2 N
ESTYLE ;var added by rk
3 Y) T* q: U$ ~5 p6 S, \ ethickness
# L7 d5 p! k- m. P7 [ ;etype ;var removed by rk
& [9 M$ [/ @: W9 O! ^# { ewidth8 z$ O+ }$ T1 r/ b3 P5 p; r% O8 N( Y
fchk0 |. ~; q# \. R @* s
frozth
2 |& I! q+ K) q9 q2 B" p" V/ ] fx) x& Y' _9 P. B3 w/ D
getcolor
4 [" p3 D9 M$ X6 e GETELEVATION ;function added by rk
8 C) c& I( a2 J% P4 x GETHEIGHT ;function added by rk
+ g! f4 F9 T* B4 L! E getindex
; X3 r& c& z: y( `: y2 \+ p% C getlayer- i: b) x$ M" Z8 W7 M$ d; D
;get_locked_layers ;function added and then removed by rk 1 N& b6 S8 U, ^/ Y) S
getltype
% R9 k; l/ e; G getprops
6 ]% X6 a5 s6 S; O8 c) q- R getscale ;function added by rk& N" e3 C5 U! n( X
GETSTYLE ;function added by rk
8 H- h" o5 y, L1 O, e* E) ? z; u s getthickness, J- J% T$ R4 B; o' `' l8 l
GETWIDTH ;function added by rk
% t. x# m& _& M& T& d k r globals
" u5 _1 h; q# Q6 E# y, q' I% [ HAIR_STYLE_LIST ;var added by rk
% ]$ p1 K" i A8 K- | height
+ k: Y. s1 l9 o+ h index9 o4 \* w$ ?& K7 U
item
- n" Y% u1 e/ }2 x% ]. S& L item17 x8 O) M" ~4 p* ~# p* y
item2
8 _ G" R9 \' J: I itemlist
+ w& w0 I8 ]4 s& y" |' N& L7 V lay-idx
$ |: w. p$ o+ S layedit_act
, q1 C9 W( F' a y5 T1 j1 r layer* `1 P& v9 d) Y- R
layinfo
" l! ]' N) i6 A2 T) k. o laylist
8 I8 s4 t( C$ T' Y laylist_act4 G4 u/ ~9 K" g) Q
layname2 U( J. {* R1 Z9 \- x
laynmlst8 ~1 H" D7 h+ x) Z: d3 F4 D
layvalue0 g9 [$ S) l6 M* l% {5 E
linetype
1 [1 Q' Z0 T0 s; J W; J7 F7 e E list1% _+ t# ]/ _, ^1 R q' S
longlist. Q8 v& h; q( Y) i
lt-idx& T* H+ i7 r- v7 T4 g. S F
ltabstr5 `9 U0 Z$ M" Z! q
ltedit_act
; I& o' b v. o+ d; ]" ` ltidx
1 A& s% R* t; c4 K" J/ Z; m% | ltlist
$ L# t) G E4 s% [5 @0 @ ltlist1, j& |8 d3 y* j
ltlist_act
% f! B" ~3 p- w% _& W ltname
+ x6 Q# z3 l; u ltnmlst
E- E% E! a, m, |8 D+ y& m ltvalue9 r$ ~/ E) G; ]7 D$ K
ltype
, v! D, [3 K! u0 @* @/ y1 n m
9 N; ~0 ^2 C3 i: J! U makelaylists2 X) z: Q+ i" X- V7 c& x" j$ H
makeltlists
3 F3 m& j( }+ O3 y# ^ match-col
( y3 H6 Y. ]/ y# W1 Q8 s% u$ H ;match-etype ;function removed by rk( u9 ~, p, P/ ^* [
match-in" p2 q1 j9 j4 @& o" w0 u/ R$ D
match-lay
7 q- P9 [2 Z" k; V match-lt
! X/ g1 C3 C) B) o4 f match-lts* l7 [; n/ i' _6 J0 D
match-th, J# x# F' r5 |
match_col- k, @( b( g) D% s' N% E: k
mdashlist
, P. K1 o: P' g$ q) E ;MPOPLST ;function added and then move to ac_bonus.lsp by rk* t3 |: n7 W3 E. T2 [8 E. A& P% X! w/ M
n
) Q1 K% F9 r' s# n2 ` name
) e* O. C3 M# L# I1 a/ J5 n0 Y2 u ncolor. q% ^# X+ ]1 i9 A+ V# R7 r( z2 b) Q
nlayer0 C/ A/ U: m8 R; v, V2 {. V. `
nltype
' h7 w4 [7 a. m; U" ]" u nthickness
3 V+ T7 z# s/ J r8 O off
6 b3 s( s* K2 z& b' a2 z old-idx
2 H! e! T) N* x/ ] olderr
8 B& f3 a: W( G v2 k8 g on
% e! r) _* @7 t/ w8 u, Y onoff/ X# M1 \/ y4 \3 i I( ^" ?6 j) m
patlist9 v7 S1 A+ e3 s' N* m
pattern- k9 ~( ^6 I2 C# Y
PL_WIDTH_GETTER ;function added by rk! J, i2 Z2 ]- M* x3 W5 a5 B
POLY_SS ;var added by rk8 s5 B8 X+ G/ g; J2 Q. q1 x
;POSITION ;function added by rk and then moved to ac_bonus.lsp( J! r5 X) ?5 u3 k9 `. W; ?
proplist& C4 N5 L7 \6 n
reset-lay% p- R/ I" z6 p) l
reset-lt
' d; d% P' f. j+ |1 H6 S s. d/ p% A5 ?, g8 [
selset
! r* [( ?- I; v; l1 m/ |" U set_col_tile
0 J) B2 R' G; F+ J) ^3 E+ _1 P sortlist* `6 S1 Z2 @- X1 t' ?) w, |
ss
4 s1 M, l) \3 V; [& x9 f ss_in_current_space ;function add by rk.! D6 a0 h% U; J1 t* C2 K( N4 V
ss-index
) U. ~5 I R4 u ss-length6 W( A( f/ r! X$ H) ?
;ss_remove_locked ;function added and then removed by rk.1 n- z7 Y4 ]5 ^: A7 e( z! i
sslen/ K& Z( G4 {, E& P3 f. D
temp_color
/ ^1 E/ W2 ~; L& @0 y/ J templist7 V! V! M+ H6 w9 f
test-main-ok
) m( K' P. @! c6 D5 c test-ok& t E) q+ B: d0 h0 x4 A
testidx3 y6 d' l8 f( r r- u. w
testlay3 G p/ M, l% \! C8 H; U- w
th-value& X9 I) u, ~2 N! u
thickness
9 m/ M( _# @0 A4 f S3 A z2 z6 W tile4 W6 p2 s1 ~ P6 U' ~+ m) H
tile_rect
6 |! H( l" }& V0 { tilemode5 [8 m F* P& i2 m7 x, x j
;TNLIST ;function removed and moved to ac_bonus.lsp by rk, D" Y3 X- {2 V+ e# ?" s# c @
TXT_SS ;var added by rk0 B- P7 O6 L- ~. x: S1 l( F
;undo_init ;removed by rk.
. V$ F+ E |- u7 @0 X vi
7 {1 i4 o- m* S9 K* p& ?4 J4 M vpf
R, r& G9 i4 I; K3 i' e vpldata* @2 c: Y/ i4 G: o
vpn3 G- e7 j- @8 A, H0 l) _/ I, Y
which_tiles; r! H* _; ]" d0 z
width
) w( ^7 D. K0 t+ ~ x
$ R6 A! K% O+ V- c x1! m, w: [* X) M" w6 L
x2) E1 b) ?% I$ B/ h$ ~% I1 Z
xdlist
" \' H& t8 c, w1 e y
$ \' I* ]9 `+ p! x* w/ f% k y1
% c, t7 c7 Y a& P3 Z+ Q/ C% G3 } y2! b2 {* F( ?- p3 S! r4 v
)
0 Q4 ]7 ]& @1 J& b
! j5 g+ e" [0 T7 o (if (and (not init_bonus_error) , j e, S' j* U
(equal -1 (load "ac_bonus.lsp" -1))
* {, k2 u2 y9 C );and
& m) o4 Z) X, r6 }, X (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
4 A4 |; G9 Z- B; a );if
& k1 C& z% Z# x" l, V+ l (init_bonus_error (list
, N$ p1 g& r7 H# I4 Q% ? (list "cmdecho" 0 2 U4 S" C, o6 \5 I4 ?
"highlight" 0+ `1 r$ B8 e$ x1 g4 l+ f
"regenmode" 1( Y$ D& c% k7 _- ~) u# q! V
"ucsicon" 0' q) U" Q R& u: n0 L# a! [. X
)
' M9 x' T0 x! w; C& ^, F: @0 \ T ;flag. True means use undo for error clean up. 0 r( I- p; R8 D4 {* t" i
);list 2 y2 ]- q7 n5 `! `
);init_bonus_error
' F5 J' E& g; H3 S! K2 x6 ]2 p2 [9 h0 Y7 c0 y
(cond
; c9 j( V) U/ \9 d( X6 j ( (not (ai_notrans))) ; Not transparent?
& S2 b% k' F; I$ ^ ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?6 X. G+ e! ]' z
( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?3 x( s6 Y7 M9 z, f
( (not (setq ss (ddchprop2_select)))) ; objects to modify?0 E1 N- R) _* e3 s* R( c* U }; K/ ]
(t
/ A4 |* W" z: q# `! u6 n# m ;(ai_undo_push)
) k6 z Q. Z! a, P# \0 @1 | (ddchprop2_init) ; Everything's cool,9 [6 i' V/ i' B+ q/ Z# a
(call_chp2) ; so proceed!
# x7 q7 @9 D2 S& D: G( N ;(ai_undo_pop), Q9 f9 X: e+ M# x. J a2 e
)
2 ]/ @2 A0 b" w! r );cond close
, Y5 x: t% C% s* K A+ e, P
( M3 n0 c$ I. _& w8 t6 C$ s* o (restore_old_error)
/ D0 q# c W! Y+ s6 a K ~' C: `% l/ g1 \2 @) s! i
(princ)
! X8 r, g. W$ o2 G% Z3 b);defun ddchprop2" a, g3 g$ X* G/ Y2 h! F, c! g
9 i8 F" T' j0 L, Y9 X' Z% y
;;;----------------------------------------------------------------------------
0 O- W4 w% _+ l0 l" A. x
1 G' K. j+ f. m4 q6 @" q; v(princ " EXCHPROP loaded.")+ {6 M$ j' y8 m% K1 A0 ~3 F
(princ)8 a3 B8 _) R# g7 h1 g4 [
- B) ]/ n0 X( q% r;;;----------------------------------------------------------------------------- F5 {: z7 D5 F3 z. e- _
;;;---------------------------------DDCOLOR_LSP--------------------------------
2 N/ D$ J1 |1 e& g; a/ o, P;;;----------------------------------------------------------------------------
j) N8 J8 n7 L5 w3 h. R W7 O
1 J, Q! M3 F8 ~9 K* e) E9 O6 ~; Next available MSG number is 24
% F' Y( B, h2 ?* R% o; MODULE_ID DDCOLOR_LSP_% l, U: g$ \. u: d/ R# ^( G7 S1 M5 Q
;;;
3 X3 ^5 {9 K3 S; k' H2 p;;; ddcolor.lsp9 R5 n+ o+ @2 h* o
;;;
/ _5 Z0 x" D0 ~;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
- Q. V% c {2 @6 }8 c;;;/ T" n! J! `# o" ]9 K; V, N
;;; Permission to use, copy, modify, and distribute this software% l+ d/ a( _: r5 x- F' k' e
;;; for any purpose and without fee is hereby granted, provided. i: h* l e7 ]
;;; that the above copyright notice appears in all copies and
; G# m% u& h0 S" Y3 Z2 i+ O7 Y;;; that both that copyright notice and the limited warranty and
' | y; v5 k" ` {;;; restricted rights notice below appear in all supporting1 y5 a: ^- ]* U$ {, H7 U
;;; documentation." _# e1 U3 b0 E) u) V
;;;
1 l: b8 O- a1 K3 O, Z2 U;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
w* D8 S' V* {6 @3 Q7 H;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
5 q0 I. g$ q2 [' j) d;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
3 v: ?8 `) K! n, M% D;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE' c7 Z- j& h: y$ h9 Q& d
;;; UNINTERRUPTED OR ERROR FREE.# u2 d Q/ ]) Q6 }
;;;: d$ B! p/ o: \6 E1 x
;;; Use, duplication, or disclosure by the U.S. Government is subject to
+ i5 d \& i9 [& G( Z* z4 ]- ^;;; restrictions set forth in FAR 52.227-19 (Commercial Computer' a! W- h3 G Y- E; ]1 Q0 y0 c
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
( l( X9 b# R, d, ^* R: o3 u7 s;;; (Rights in Technical Data and Computer Software), as applicable.4 m& h& g8 _4 l5 M0 y
;;;
+ V; }9 ~% ~6 t, X% i: Y;;;.2 X% _/ h, N- c2 S# e
;;;
" [3 v' ]# V o;;;----------------------------------------------------------------------------
4 q0 E& P& w+ ?3 ?' l+ I;;; DESCRIPTION
& R9 @/ V; c2 L: q;;;
6 V. n0 C+ G" l: H) O;;; Chromatic Pallete style color selection dialog.; Y2 O) v7 y9 ^! z: ~
;;;
; H+ p; B2 H9 C* E, K# d+ j;;; Globals:
- R- q' b, x: [( D/ M3 ?* h, N;;;
% t2 |( j- D1 @ t;;; chroma_color - Integer color index. The last value selected
7 [' ^1 u2 |: H2 s% [2 u) [;;; by the user in chroma dialog. It is not cleared or reset- X0 q, O$ p; E4 ^, v$ t: K% c
;;; by a cancel. Only used for communication between callback1 P* w2 V+ i8 H% |
;;; functions and the (chroma) funciton.
% C, Q3 N( c: E" Y;;;
% v: ]6 p$ i4 b/ @3 E;;; Depends on the definitions for the dialog provided in chroma.dcl.; _) Q* D; h5 R* p) f
;;;
5 s/ n+ l6 @/ B; p3 k;;;, I7 B6 @" a* u* U" A
;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
4 j* K; h! w4 V% }% y;;; pallete style color selector.
" Y/ I+ ]2 U5 U7 Y4 y! J" L( G0 ?;;;
, }2 Q, w; ~* w# T;;; ===========================================================================, V0 y% @/ a" ^
;;; ===================== load-time error checking ============================# X; w. ^8 Z ?. }
;;;
2 w6 z O% H p0 V; n$ e( @- R4 ]! D: ]2 t2 a) c) c) G) x& e5 J
(defun ai_abort (app msg)
, a" P9 E( B' g S (defun *error* (s)
1 D* t/ ?) \ H! X+ [# ^: B7 X (if old_error (setq *error* old_error))
1 s& B S2 y5 n2 a: t (princ)
9 ?% [1 h0 {6 X# @1 s( F6 K) j2 o )9 @% a# H, i0 m! C* i% J: H
(if msg5 s* e Q4 M% ^$ C
(alert (strcat " Application error: "& z, E4 y% {7 R4 R; g) |, j
app* O; u/ b2 X1 y% } d
" \n\n "
f5 `9 X" B2 c7 e7 B9 u msg
3 V' o9 {7 C3 Q3 [7 J " \n"0 ?& @5 r0 D3 a& E: ?' t/ Z
)4 a8 a0 T$ g; ^0 t' J( @: ?# T
)
. f2 w/ i, r7 c3 o9 C+ b7 o )
% P [& w$ v ~: x (exit)
8 {0 |; d, D1 \ )
% E& Z$ n- M- {* B
7 o# {3 P- h/ `1 Q+ M& t3 l;;; Check to see if AI_UTILS is loaded, If not, try to find it,7 v; z; X# k' d# Z4 n* v5 G3 @$ T
;;; and then try to load it.
8 O- s/ j) N/ _5 }6 Q2 s4 R;;;
- s9 Y" ?$ u5 L& _( o5 A* K( n;;; If it can't be found or it can't be loaded, then abort the
4 p% i3 [& D' T6 };;; loading of this file immediately, preserving the (autoload)
( w+ H& {4 A" n. J;;; stub function." I3 Y- ]. R& I5 t6 b7 G; b8 i$ J
* u! o8 z- x6 p: H7 ` (cond
- L" @$ X7 V- `% J" m* z3 c- _! x ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
# W. g( U6 s$ l9 m9 ` T
( R1 U1 D z/ m& z6 h ( (not (findfile "ai_utils.lsp")) ; find it3 S8 p% _8 O2 v* _; i
(ai_abort "DDCOLOR" ~: w% k7 l. B ]5 s! D
(strcat "Can't locate file AI_UTILS.LSP."
% k6 M4 N+ ~0 s o "\n Check support directory.")))
7 O' Z9 g/ A" G1 ?$ T& A% {8 e
( (eq "failed" (load "ai_utils" "failed")) ; load it
" b4 u& x8 W2 J- A, J (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
, }1 U& ^& m6 Q! h0 ?2 @ ); ~( e) m" q$ s" t: s& j
1 b% m) }0 r% r1 F* \2 Q (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
- m3 S2 M8 e; p: K8 s8 y (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
5 U3 i5 k _5 l5 `+ t3 ` ) ; ai_abort's alert box dialog.
/ Z6 b" ~. F6 t8 Z+ `+ G$ _5 \# x' A! Y3 `- S
;;; ==================== end load-time operations ===========================
( o( z! n" P8 d3 q1 H1 E( n8 q/ Y, c4 f `% A9 k9 E
(defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)8 [! M' n$ z% ?5 p& v
4 Q, D+ D) Y) i4 P: d- K3 T7 E2 c. J ;; Main Color function, called by setup code.
" W& V- F \5 r5 M (defun ddcolor_main()5 p0 T* H I: F" b+ |+ g9 V
7 Y& b. v" w2 P& z0 M& a; I- ? (graphscr)
: K( `) X- C8 o, U: n
3 P3 o. N& J! l' ?7 o ;; Get the color of the current layer, for possible BYLAYER color swatch.
6 l# m# Y+ A3 H) X9 l6 P% f5 Q (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))4 V% w" Q- H/ F
% B4 {/ y+ w) C. T; {4 ? ;; Call the dialog here...+ N8 N; q2 ~6 \& ?8 H2 X/ o/ P
(setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))2 `9 X( |7 e& O; Q' X3 V
0 \9 u5 K) j) Z `5 t0 D
(if clr
: [' e4 E* W2 E, m% `2 N (setvar "CECOLOR" (citocs clr)))1 W/ N, h \) e/ |
)
( c( C. A- L! Y: B8 A, |1 {# G6 [' o! L- c' }
;;;- E, H% ]# k9 T$ N9 h' q, _6 |! E
;;; CSTOCI -- Color string to color index
i9 Z' p) g4 P* ?5 v! L3 x ;;; Convert an arbitrary case string into a color index.! y* _' _/ Z$ H' Z$ f- k. P
;;; Returns nil if string is not a valid color., C) U8 r$ M8 ~& p3 W* Y) \. [3 Q9 q
;;;
4 V$ L5 P2 P" i# i+ e' A1 ? (defun cstoci (str)) M1 R u3 @' g# x
(setq str (strcase str))
0 X- H2 G9 p) o0 {# | (cond0 N4 S- q! e) K
((= str "RED") 1)# k- a( j1 B! T0 g* w
((= str "YELLOW") 2)
) y5 z. N! y0 o ((= str "GREEN") 3). `9 G: U. i( H2 D R j; k
((= str "CYAN") 4)3 K7 t; S: H0 b5 \: i. \
((= str "BLUE") 5)
+ k' V9 h1 `4 G) F. R! T. H- A ((= str "MAGENTA") 6)
; b) d X. }1 c& T c4 \ ((= str "WHITE") 7)
+ ~" K5 E1 G: b( L7 J ((= str "BYLAYER") 256)) j+ Z, T: x3 l; X2 o8 y
((= str "BYBLOCK") 0)% v" q5 g4 }! k# |: m# u( s
((= str "BY LAYER") 256): f- K8 ]# M. `2 A1 n) g. a
((= str "BY BLOCK") 0)0 F( I1 H+ N/ q& h3 d% v
((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
J0 x& x% Z% A8 F: s$ [; r2 k (nil))9 H% Y( K. N/ u
)
# s2 t5 D* w+ |6 h# j5 u: t
% ]/ r) J) G; X/ v4 N# \# Y4 V
2 O# {2 X; C) o; C' ? ;;;
; j9 P) ~" V' M7 o% ^# k/ `; N. F ;;; CITOCS -- Convert color index into standard color name.$ {' m" _! d9 ^5 e5 p) q: D/ x6 Z: e
;;; Will return the standard and logical color names as text
8 q6 w' a6 P% {8 j ;;; strings. Returns nil for out-of-range color indicies.
4 e8 |# V Y w' a7 q ;;;
& W! M0 b- O* D (defun citocs(i)
5 i0 W; C) E8 R, s (cond
' t# k* d* F2 b" q: n) C ((= i 0) "BYBLOCK")" T, |( r6 A- K( C* T8 S
((= i 1) "red")
2 y$ J; B: D! Q* d2 v5 l ((= i 2) "yellow"). H& n5 G, b0 l( E" B3 U
((= i 3) "green")" ^# }5 p8 s! `3 ~7 ]: k
((= i 4) "cyan"). x2 W% A7 f7 p4 Y
((= i 5) "blue")
% b! `% I6 x" |1 ]2 G, B- j( L5 U ((= i 6) "magenta")4 T6 f- n/ Q2 m9 R
((= i 7) "white")7 k4 |4 ^& |# ~
((= i 256) "BYLAYER")
0 K& S3 k8 s8 M1 }5 p ((and (< 0 i) (> 256 i)) (itoa i))
* {* g1 e% U! Q, Z. o (nil))6 ~% x5 { E3 S3 K' P9 c
)
5 h% z% o A# q# a, W9 u: ^# i5 G6 T* z' |
;; Start of ddcolor
V1 E7 q8 o7 g4 v o (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
* q# ~5 C( B6 V9 D" J4 { old_error *error* ; save current error function
/ x# w3 j' w& C* A2 Z: @ *error* ai_error ; new error function
, @. d; O. v4 J0 w/ {2 ^* ~ )
% P. ?* I$ M! y1 b6 M2 `; s8 ]& O
(setvar "cmdecho" 0)7 h& V" H; W" }; p) l- T
* z) ]) y' p$ y. q
(cond4 Q1 u9 y) n" \& i+ B F
( (not (ai_trans))) ; transparent OK
$ r3 g2 ~! C; F# u6 b; K ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?6 @ }7 a o/ F- l$ h- E+ d; K$ q
: X/ \ e- z. r. H- I: @8 | (t (if (and (/= 1 (logand 1 (getvar "cmdactive"))); p3 ?, W5 H1 C: n9 ^
(/= 8 (logand 8 (getvar "cmdactive")))
) L# U( u, s2 X& S; o$ U+ Y )
9 Y3 G% S" r- q, [5 D9 z (ai_undo_push)* s% L6 {& U7 d; O$ ^& _! _
)
5 c, n( I1 S( F5 P" y
# t3 M1 V$ u1 h/ ?7 O1 r/ R (ddcolor_main) ; proceed!1 a8 d' ?3 d9 _- W6 z
" B0 _0 s m0 E
(if (and (/= 1 (logand 1 (getvar "cmdactive")))
4 N- Y7 r+ I* Q% J4 U# l, J7 ^' C (/= 8 (logand 8 (getvar "cmdactive"))); k- Y8 ~+ p* B# S7 ^5 J+ V
)4 w7 U" f9 Y9 z7 L% E7 T
(ai_undo_pop)9 h# }( ^; }9 Y0 N2 b6 n! N4 F3 u# c
)2 G$ O" h: r1 G9 H
)& @- ]6 w& k! x) e& H( W
)
( O, N2 b' g5 i* z g7 X# m7 O6 G# }# u7 C) }! G
(setq *error* old_error)
) ]! \" L3 x: e (setvar "cmdecho" old_cmd)
* N$ o8 X, }; Q( w' I# c (princ)
- o! n: E7 e% @. u
$ ]5 y3 |7 c5 k9 E6 H)! G8 S* r W7 \9 Z, V
5 ^6 K5 c7 p( e: \
;;;----------------------------------------------------------------------------# }3 t) l& ?# I( O
; I- L0 e5 K2 d2 v$ {' N6 Y
(princ " DDCOLOR loaded. ")! h D. Z9 X* l( i) Y& P. V+ V
(princ)0 F# R6 ~" p# g4 X1 Q2 b
1 X' G+ X% B7 c9 H
;;;--------------------------------------------------------------------------;& M7 s# f( A; y: y3 {& [1 L/ C
;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;) v+ L% n1 d) c% U8 O
;;;--------------------------------------------------------------------------;
/ ]0 M; o/ @% };;; ssx.lsp" B5 r: `8 A4 w/ v* F' u' Q
;;; Copyright (C) 1990 by Autodesk, Inc.7 k. r0 N9 l1 d, y9 x3 B7 D
;;; Copyright (C) 1991 by Control Systems, Inc.
. c6 T+ h% c# i# e;;;6 s. ^4 u6 @- \( f4 [, z
;;; Permission to use, copy, modify, and distribute this software and its
2 ~5 g# o, T8 w' H/ [0 ]" a;;; documentation for any purpose and without fee is hereby granted.
; a: D& _* Z- W- w;;;3 b0 V6 t# p; L8 m4 [* v) _
;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
! Y7 n$ D) s# U$ f S4 m6 n# Y" w;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
4 e! P( ^1 l' ?8 G5 B;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
. D2 V/ |: A$ B;;;9 J7 z& ]8 |( Y, |
;;; Larry Knott Version 2.0 7/18/88
9 I; { A3 q3 ~! q# e7 X;;; Carl Bethea & Jan S. Yoder Version 3.0, }$ h& M9 j$ l+ s/ s
;;; Enhancements to (ssx).
& Q: J: c! O/ t;;; 15 March 1990
8 x" X* K% l; f- z/ _2 g! w;;;4 f, B; N% o$ x" M4 ^
;;; ARTIST Software, Inc Version 4.0 December 1991
' M+ c+ q1 v% |2 ], U4 n" w) `;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
' q" k2 ~$ Y# ?! `! c;;; use Flexicon menus2 O) W9 ]5 L% `3 B1 _; j7 u% m; a
;;;
! Z* I ^: F, B# Z8 |;;;--------------------------------------------------------------------------;
! ]5 E* g6 u1 r7 [% u6 E+ B;;; DESCRIPTION) I1 s3 C( f$ S8 ^5 `
;;; SSX.LSP % z, k# b5 U; ^
;;;
! t4 {/ |5 o7 h- m;;; "(SSX)" - Easy SSGET filter routine. " Y( X- o$ x! s" k& G3 |
;;; % T0 `2 @3 x3 d( K
;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
" l5 V4 W: i, q) {& T$ I;;; to create a "previous" selection set or type "(SSX)" in response to S- @' _* x }# O- p7 x
;;; any "Select objects:" prompt. You may use the functions "(A)" to add / n% d( p! X3 @5 q1 r
;;; entities and "(R)" to remove entities from a selection set during $ S6 C( o3 \ s
;;; object selection. More than one filter criteria can be used at a + t- x: C' K. [7 Z% @9 G* P! N
;;; time.
* v& s1 m7 N/ e) };;; 3 o1 E* N) j6 O* F
;;; SSX returns a selection set either exactly like a selected
}0 v4 X* }' ^7 t) K2 n7 t;;; entity or, by adjusting the filter list, similar to it./ h+ \2 O, i8 h7 A
;;;
' m2 W( W% \7 }0 `3 i" X" d; A% S;;; The initial prompt is this:! \' }5 ]/ y( m
;;; E; z! }) V* s- ~" S( e! G; H
;;; Command: ssx
2 z4 P8 y% Q& g% F3 a6 t# U$ U6 `' e;;; Select object/<None>: (RETURN)1 o: k# i+ t/ f, f6 v
;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: * p6 r0 ? G1 A
;;;
6 Z4 @1 U) B; A' Y: A3 t# M7 b;;; Pressing RETURN at the initial prompt gives you a null selection
# x5 J( h6 j" W8 ~ E' X;;; mechanism just as (ssx) did in Release 10, but you may select an
' @8 ^0 \5 p( s* o9 |6 j5 f# ]. ]4 K;;; entity if you desire. If you do so, then the list of valid types * J+ n' J8 Z$ M# ^: |* T/ q% {
;;; allowed by (ssget "x") are presented on the command line." I+ N" r0 l8 |/ J' Y( T5 a( w
;;;
( _0 o2 w# q0 c( c- W7 F;;; Select object/<None>: (a LINE selected)
* q1 x; U( e0 h+ Y. _( F;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
! H1 k: B) ?! r+ u1 e; f: O2 S;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: : y6 s7 c8 `! X" X6 U9 v% R- q* Q$ n$ ~
;;;
: i y3 ^: f, A# E1 q) X5 ];;; At this point any of these filters may be removed by selecting the
" t8 b- ?3 S5 K/ z3 B; k+ s;;; option keyword, then pressing RETURN.' }: A: @7 A9 L& b! o k/ x
;;;
5 S( F/ W' r% V& P7 ^;;; >>Layer name to add/<RETURN to remove>: (RETURN)
, I8 R1 f% f+ _3 J% h* I;;;
, |: r) n$ J5 P3 k1 e9 Q;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
7 k! D$ W% M# j( p& I;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
9 x' Q( A) i a;;;
- r' H/ h8 z6 q+ [# ]; R;;; If an item exists in the filter list and you elect to add a new item, 8 S% W. Q4 z' t3 v, t5 X9 I5 ]% H9 R
;;; the old value is overwritten by the new value, as you can have only 0 u, J# C, c: I, z2 [8 c# H
;;; one of each type in a single (ssget "x") call.
) I& U: H( ^) x8 Z0 Z, r;;;
3 `( t+ c$ Q# `& H;;;--------------------------------------------------------------------------;+ n1 ^' P5 G7 k& i9 f& ^* G
;;;
& _/ o0 L5 U, ];;; Find the dotted pairs that are valid filters for ssget
( a, |8 L# ?1 G% y) Z+ U) y; y% g;;; in entity named "ent".
4 z( C1 q" f/ Q; j;;;) E' Y1 r/ [ s% X' D
;;; ssx_fe == SSX_Find_Entity
0 b' j3 l: {: T;;;
# C* V/ [- o" h- l+ \(defun ssx_fe (/ x data fltr ent)! e; F# V* i( t
(if (and (= flexvar 1)(/= t2 "Pick"))1 K" S5 {/ A$ ~" @
(setq ent nil)1 e) ]4 s4 E) d! I1 y/ r
(setq ent (car (entsel "\nSelect object/<None>: ")))
; _5 K" M" f1 C1 ~' J+ Q )
' R2 L8 p5 z$ X4 h/ e (if ent
2 |6 H* J K q5 a' j (progn8 j* e8 C0 H* L! q& ~6 m
(setq data (entget ent))& K; t; j* ], K6 C
(foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 385 `6 V4 a# i* D5 i) L0 {$ p4 `
(if (assoc x data)2 i' W/ Q9 \9 K7 k- x$ M' H
(setq fltr
- R/ j- K: z/ _8 h$ q (cons (assoc x data) fltr)% A. F0 h; y* Q- f& y* ]! j
)
1 j) R6 r( Q6 P6 \4 A$ u8 o )3 Z% k6 e: k+ y
) 7 g$ c/ v6 o8 h) X; o! y+ [
(reverse fltr)( F2 j, q' d( S6 S# }
)
8 _: }5 h! w! M% J- z( z )
* Z: c! o# y+ i1 L# R9 {1 W)3 v9 F9 `; Q7 S1 `2 G
;;;
, K" K; m7 h; P) w+ U) c# K;;; Remove "element" from "alist".5 w" W* e* j; ?) ?; }) g
;;;
6 D# k- a0 T- e;;; ssx_re == SSX_Remove_Element, u* h1 E9 X5 L: G) T
;;;$ \$ @/ ~' c9 ~
(defun ssx_re (element alist), o% k: y1 G5 U+ X
(append. Z* n, G" `; I3 v, P$ K: [5 u
(reverse (cdr (member element (reverse alist))))
7 V) [8 \7 v8 G8 D0 [6 | (cdr (member element alist))
, O- Y7 Z* |& p8 R/ ~9 j3 j )
% b9 W Y [6 h0 p)
% _) V8 A3 {3 Z* m;;;8 E; V$ ^7 v/ i& r& {% l
;;; INTERNAL ERROR HANDLER + z s% b: o( p) y$ Z0 H, a2 [
;;;9 C: C( X! l) ~* D0 q
(defun ssx_er (s) ; If an error (such as CTRL-C) occurs3 x b* M6 n) B: t# {7 i
; while this command is active...9 I9 ^, R' ]5 i4 F
(if (/= s "Function cancelled")- R2 r: f2 _+ M( @
(princ (strcat "\nError: " s))3 u, H* R; g4 S- T k4 _" i7 s
)2 `7 {- w+ x( [7 v& ~, r
(if olderr (setq *error* olderr)) ; Restore old *error* handler: H5 k4 }$ V7 x; _
(setq flexvar 0). }' w4 C( Z. C/ t1 J
(princ)% ~8 f- G- D4 q
). z6 P8 q* W3 D: U% e: z
;;;
* g$ x: o1 a" V0 i4 k7 M* v, h;;; Flexicon call routine
8 w5 n" n8 W! E+ I, o# i;;;$ T: }/ _7 r9 k9 y7 b- }9 L- m7 P
(defun flexmnu (a)
; P" K* P3 J1 {" j9 k (if (= flexvar 1)
4 W/ k( Z" Y+ Z1 n2 e) S7 ^# z (command "FLEXICON" (strcat "FLEX" a))5 ?# {6 S! z( P
)
1 n1 y$ y1 p5 O4 k+ k4 F2 k)
6 o( i* w, e2 S. k/ n$ D! S f8 T! g6 Z5 v1 |
;;;
9 Y" W1 j3 g+ D: b;;; Get the filtered sel-set.
& d* y5 F* f+ z- W;;;
/ N: T4 |# k \% m) q7 J;;;
& ~. Q0 |# O$ V( X(defun ssx (/ olderr)0 o' F$ R% I. r, D$ Q
(gc) ; close any sel-sets
7 T8 r5 x i$ d( t& q: F8 J* v( X (setq olderr *error* ! K$ l! H% r4 |9 {2 }
*error* ssx_er
: K; A, u0 H$ `8 N" Y7 K )
3 T# ?/ q: h4 N% p. _8 Q (setq fltr (ssx_fe))
& }2 c" n Q% [& A4 p$ J (ssx_gf fltr) + c! {. S: R* o4 k
(if (= flexvar 1)$ } ^& q2 P0 B5 R
(progn1 u; |/ a2 t& C2 H
(prompt "\n \n \nNow select the required EDIT command and (P)revious.")
& |4 F _' l) _ |" C* ?) `, p r (flexmnu "EDIT")6 n! K O" N6 G3 z* a4 i8 f
)
( u+ D8 Y2 v: I; j2 k% C+ [ i (command "p")
5 |" e6 D4 h1 A9 _ )
; I( I. N0 c6 ^7 p1 U6 v5 P (princ)
" N* m; p5 M/ E)
9 [0 ?6 _ a* n( L5 B$ L( S;;;
C6 h5 x/ {* ^- t+ @, O" T: O;;; Build the filter list up by picking, selecting an item to add,4 V: X, P6 m+ C2 k2 g; N$ o
;;; or remove an item from the list by selecting it and pressing RETURN.8 l3 R* [ l0 B- ` o$ o) v1 c" L
;;;
% [# M, ?7 e: f+ f& R [;;; ssx_gf == SSX_Get_Filters
; a' A. j! g9 J+ r1 e;;;
* H! p, v; k( {6 I d(defun ssx_gf (f1 / t1 t2 t3 f1 f2). r$ s8 _" Y- }" F9 K
(while ( ~" @3 k9 t. q1 V4 m
(progn/ J3 h. F* s+ n" Z) N. ^% i+ G
(flexmnu "SSX")
7 P& A7 L4 i' V$ B (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
8 U. D' V. q( m1 c5 o6 G) W+ J (initget
# K2 W( b- W: M, `8 C6 g5 C "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
% y- h# s" v+ t( I. T (setq t1 (getkword (strcat; K# v% X0 t t) P6 W, n, T! d
"\n>>Block name/Color/Entity/Flag/"
6 d1 q* B( | u3 X$ N w "LAyer/LType/Pick/Style/Thickness/Vector: "))) 3 W: L2 A0 ?# V5 T } t
)% L3 s3 G) H @' h0 t, I: \) V
(setq t22 m1 c7 f. U5 @8 b# ?4 b% t/ ]
(cond& ~4 p6 U2 }0 Y+ ?) N% J1 ]
((eq t1 "Block") 2) ((eq t1 "Color") 62), o" p; `5 d: T9 _$ i1 H8 k
((eq t1 "Entity") 0) ((eq t1 "LAyer") 8); r8 f4 C7 @* H' s' z# R- d
((eq t1 "LType") 6) ((eq t1 "Style") 7)
( @ ~( k2 c- Z ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)& }# t# j; a! @2 N) ~8 a. A
((eq t1 "Vector") 210)
2 h( O& \+ r4 P (T t1)# h2 v! C9 \, i+ t' [& M% q3 H
)
- p. b. s* P9 [1 q: q9 k ), s. u. E9 x7 |) U
(setq t3
) h5 ?) d) C# R6 N+ ~6 [ (cond+ S% ^+ a2 x: }
((= t2 2)! a1 m+ r' Z2 C" g" ?6 F3 d' I" n
(if (= flexvar gtads 1)
U& U+ f* j* i) d (progn
" n6 W$ Z8 N4 {! L/ u; P/ a (prompt "\n>>Block name to add/<RETURN to remove>: ")
; I" F$ q. d! d2 P2 M! L (gttable "BLOCK")
- `6 q0 A4 t" `. b1 H* j5 j, @" | )/ N* `, o/ t) k; B2 E
(getstring "\n>>Block name to add/<RETURN to remove>: ")4 ?' }! }5 p+ j0 y+ A: A
)" T' h1 n3 X6 |- z" i# u z) L5 h: r
)" ]+ X( c2 j+ Q F% O
((= t2 62) (initget 4 "?")
7 l r T, w* I4 \6 K2 o4 } (cond
V- W, R& j3 t. Z; a ((or (eq (setq t3 (getint
& M/ ?7 Q3 i$ z& H, n6 v# N0 V "\n>>Color number to add/?/<RETURN to remove>: ")) "?") % c4 Z% H) `5 q1 h/ m
(> t3 256))" {) N8 p# _! O \" g1 A
(ssx_pc) ; Print color values.
( B8 n& ?. M! e5 J3 u nil
' X$ v+ b+ { {7 x2 e )
: h2 v9 F Y- ? (T& N( T9 {9 ^& `; a6 O4 q1 b' P) M
t3 ; Return t3.
5 t6 j9 O# D" p6 C% S )
( B L& C( J" Z4 Q0 r% @! t )$ Z4 F( v' h6 X1 m- h: x
)7 Q/ }+ @, [9 j+ A6 K7 Z+ o( X
((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))6 A! c" M& A; O7 s
((= t2 8)% b! X( X# c! v* V
(if (= flexvar gtads 1)* {& l' x& [0 X" ~( I( _ a2 F* `8 a
(progn7 [: T" Q0 b/ h" v
(prompt "\n>>Layer name to add/<RETURN to remove>: ")1 ~* C- L* H# C7 _* N
(gttable "LAYER"); J* u2 q$ Z$ [/ m
)% }- L" L: B$ l7 s: c
(getstring "\n>>Layer name to add/<RETURN to remove>: ")- S6 ?9 j% `5 c4 j$ N% C4 T
)
c. C3 o- T# o4 s ) _8 j7 v. }. C7 \
((= t2 6)
* ^( G2 O- L3 N8 ?1 M3 x8 I6 Y- Z (if (= flexvar gtads 1)- I! H: \# V) g
(progn
- g9 t* R7 ]& y1 ^$ `% J (prompt "\n>>Linetype name to add/<RETURN to remove>: ")6 q% t, o7 U8 M: x# ~
(gttable "LTYPE")
/ E6 S( @( G) B w9 o1 [0 l )4 y" K/ b3 ^4 w
(getstring "\n>>Linetype name to add/<RETURN to remove>: "); S, Y8 r0 o2 B, K( }, l5 b. G( e
): p/ G* `9 s. {% w$ A! N
)
& _) j9 H. I+ p H. p0 L6 j$ @ ((= t2 7) 8 H4 Z [9 O# n8 {4 p4 b9 k2 y0 B
(if (= flexvar gtads 1)+ q( b; [& ?" U+ h( `3 }. q4 s, H
(progn U4 }5 h0 v5 R& z% a- ^2 S5 `
(prompt "\n>>Text style name to add/<RETURN to remove>: "): A! @6 @9 Z; ^" [
(gttable "STYLE")
& j1 Y" [8 F2 J7 k ]9 _9 `! T )4 N6 [7 H. y: h' f" f
(getstring "\n>>Text style name to add/<RETURN to remove>: ")
: @+ T8 Q% s Z2 t6 Y Y4 ] )
: z6 Y- P- n4 X- _5 X% `- K* a )
3 ?9 P' F- \; A$ ?. N4 I6 P. ~ ((= t2 39)% m! r( ?/ S& c) X0 Y' w4 w
(prompt "\n>>Thickness to add/<RETURN to remove>: ")
# z* F! g8 h9 ]& ~% L0 B (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))% J9 [: O- \5 r
)) ~* z9 p, m" v- `2 g; ?
((= t2 66) (if (assoc 66 f1) nil 1))
0 y1 f1 s& R* \( {. F. B ((= t2 210)
0 G" s% G' p: Q# j0 B (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
" a7 w) U% q6 f3 e; I" X, n5 G )9 b, [: L) j* H
(T nil)7 C% p. w3 X4 i$ K
)
! m2 X: ]( q3 Y )
6 D b% Q6 j2 f: N (cond; V6 D) c$ v8 z" K2 ]/ E
((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity+ J1 u2 G* T! m& L
((and f1 (assoc t2 f1)) ; already in the list( e/ T8 w9 ^/ e; X+ U9 R% H6 Q
(if (and t3 (/= t3 ""))/ d, o8 L }9 p- m: a% i
;; Replace with a new value...
- W6 F& d% m' g6 N0 n3 V (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) ' E* `5 ]. U& Q) k2 A8 @
;; Remove it from filter list...7 f& p) K/ s4 S* X5 o
(setq f1 (ssx_re (assoc t2 f1) f1)) # I* a% m2 W0 K
) 1 o. C; A( ]! G% @" K$ B
)
3 X# Y; P4 r e- D! Z; Y ((and t3 (/= t3 ""))
4 Y! Z. o& ~* R* A. X0 a V (setq f1 (cons (cons t2 t3) f1))3 r F: }! P: g4 S& C' X( T' Y$ e
)$ T3 u* o( N: _5 _ J& ?/ b$ J
(T nil)
' X d8 o) ?# Y3 a )4 t/ P* E* @8 b! w, q# g9 o
), z! p T% J" O
(if f1 (setq f2 (ssget "x" f1))), E- B/ R: R2 x m# K/ P) \$ Q
(setq *error* olderr)4 d I1 z+ t2 q% a2 j2 C C
(if (and f1 f2) * e4 M8 v( {0 D
(progn
8 j% d0 H5 j1 p4 f (princ (strcat "\n" (itoa (sslength f2)) " found. ")) k4 \8 z0 @ o: i, F' j6 e" G
f2 2 x k+ J% m) v1 s
)
' L# o& x0 {7 ~8 s0 f (progn (princ "\n0 found.") (prin1))
% [, L0 X+ h3 F/ r0 } )
* `4 d- {: c: P& d! M9 s, b% `1 D# E' e)5 \8 U' z" e/ X7 a) m ~; o# [
;;;6 C8 Q, ^: ]9 G( q& X& `1 {8 g. V
;;; Print the standard color assignments.5 @) b6 E* ^- B4 @+ w) l
;;;( S. r* Z1 c* @8 j) F& R
;;;, r* F) {% h5 Z/ i4 Y( Q9 a
(defun ssx_pc ()$ V' D* o" y' E8 Q
(if textpage (textpage) (textscr))
. w, Z! B; B+ S8 v (princ "\n ")- }4 B# n) ?" Q
(princ "\n Color number | Standard meaning ")2 h. o: J7 i3 G, N! P7 G7 t; r
(princ "\n ________________|____________________"): d0 ]) o* S& |3 h+ m
(princ "\n | ")4 s# G/ _; j4 r' E9 `$ K( b
(princ "\n 0 | <BYBLOCK> ")
3 t; \. i* w8 y+ g5 o (princ "\n 1 | Red "). z0 u, L. U8 \8 y, k' s; A* o
(princ "\n 2 | Yellow ")
0 P8 @( [9 O& G (princ "\n 3 | Green ")
: Q+ |1 `* @; a( X4 i- n. J (princ "\n 4 | Cyan ")
8 |7 h0 t( |" f7 J) E (princ "\n 5 | Blue ")
/ @8 |: \" U9 y6 m1 i (princ "\n 6 | Magenta "). p/ D/ B, h' O, C" i
(princ "\n 7 | White ")& z2 \8 q& ?8 T+ E1 r% l( v5 j& ~
(princ "\n 8...255 | -Varies- ")
) l- N* H3 Q3 q! I, C; ? (princ "\n 256 | <BYLAYER> ")% k/ r: a Z* D. M
(princ "\n \n\n\n")- n% @2 z& ~6 k, K
), R( j% z$ a3 [* `9 t' C; D5 n
;;;
' H: m1 B, S9 U' \- {;;; C: function definition.2 X# q* X9 ?$ i5 w7 e$ _
;;;
' _6 \2 J( p* }% u5 p( g(defun c:ssx () (ssx)(princ)) }2 v/ O* @- A6 p
(princ "\n\tType \"ssx\" at a Command: prompt or ")0 c+ O: v# k+ r8 W1 o0 L9 [
(princ "\n\t(ssx) at any object selection prompt. ")
" O0 l, n5 y4 t3 `$ C( W, b(princ)( o' x- v' p) N# i. _+ G- O* Z+ b9 t
+ i: v V0 [+ Q- K
;;;--------------------------------------------------------------------------;
- N" L% F" D. h6 Y9 q;;;--------------------------------------------------------------------------;0 y( f, |- _" y8 e' C! A0 s
;;;--------------------------------------------------------------------------;
# W4 j( ^9 H1 d ?, {8 p(defun S::STARTUP ()/ Y' a$ ]0 c, J2 D7 n- w
(setvar "cmdecho" 0)
- D! ~0 k7 L3 O. O(setvar "cmdecho" 1)9 \9 Q) ~- k9 ^3 L1 ?( G% t
(setvar "LTSCALE" 10)
2 m. b, l; K9 d1 f( M+ j+ H1 O( p* h
- ?4 C; v h5 w$ i+ V5 V+ D/ j4 B
;(command "_load" "chenKH.fas")* s$ K- T# G! u4 z: M
;(command "_load" "ctcot.fas")
% f! }, s$ ?2 Q4 Q, i; s;(command "_load" "damdoc.fas")
+ T3 P& I8 Q q4 y4 {;(command "_load" "ghichu.fas")
4 A# G( m; I2 }3 N1 R;(command "_load" "hamtutao.lsp")5 a, `/ q: }8 O0 l6 r# a. j+ S
;(command "_load" "KHOITAO.fas")) }5 |) s& Z% A+ v! ?4 H1 m0 R/ t
;(command "_load" "KHthep.fas")3 G% r) K( D( b+ e$ `
;(command "_load" "mbmong.dcl")
5 l) ]- @5 O! v;(command "_load" "mbmong.fas")$ I9 t+ c9 g) v M" O4 |. j
;(command "_load" "mccot.fas")
* K: v+ @8 V) L9 q;(command "_load" "mcdam.fas")
! d1 s6 [1 C |- Z& G;(command "_load" "mcmong1.dcl")
( q h- Y( R+ m2 i) X0 k7 @;(command "_load" "mcmong1.fas")( C0 ]- T3 @6 E2 D R1 W0 G
;(command "_load" "mcmong2.dcl")
; {" i( F) n4 [$ H/ P3 ~;(command "_load" "mcmong2.fas")
0 L; p; ]- {1 |" d. m3 g;(command "_load" "mcmong3.dcl")
3 ^5 N" q7 w# n- y3 B7 Z;(command "_load" "mcmong3.fas")
5 e( I9 G) m' a' X9 n Q;(command "_load" "mcsan.fas")3 }! I' O/ Q4 F. [
;(command "_load" "thepdai.fas")1 r+ w% |- @ e
;(command "_load" "thepdoc.fas")
! T: Z8 h/ B1 f9 [;(command "_load" "thepmb.fas")
; t) N3 I! P# R7 t;(command "_load" "thepphbo.fas")
' F& y* B9 N8 W& `$ @) Q9 |(command "_script" "thongso.scr"): u* T# |& K4 c9 t( t
;(command "_load" "thongso1.dcl"): _8 e2 e& y4 D& p
;(command "_load" "thongso1.fas")
6 ~8 J: l7 v8 ^1 B' s;(command "_load" "thongso2.dcl")
! a9 v: r2 N3 n+ M;(command "_load" "thongso2.fas")
' O$ |! a4 e" q;(command "_load" "tietdien.fas")
7 p' a* m/ w- j;(command "_load" "vehan.fas")
! y& z) }3 F5 T/ ^1 D9 ?3 X(command "_load" "phamduy782006htd.dcl")
) u) X* J$ m/ ~) W! P9 F# |(command "_load" "DDCHPROP.dcl")3 v. A7 S7 t. ]0 t# V3 G7 W k' f
(command "_load" "EXCHPROP.dcl")
6 P+ m0 w t4 s1 o; B6 `: r(command "_load" "DDMODIDY.dcl")
% \) r2 B' w; b; @3 z$ V" M7 }7 z(command "_load" "TK.dcl")
: [# N2 M5 w9 [- t3 g; Z% P(command "_load" "TK_LIB.dcl")& E% {$ |3 V! s. b s2 Z2 q6 G: u4 Y
(princ)& C% P3 h8 W0 u0 G
)
/ `* c# S$ T; D! \- h" U1 k$ p* f
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\DDCHPROP.LSP")
4 R8 V6 S7 [! ^" ?* W" \# S! u- f. i0 Y4 ~# L& c
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\SSX.LSP")
- }- O _1 {# k2 ?! Z9 }8 | P
- \( k& \! I: w2 }5 q;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\phamDuy782006_TKT_VNI.LSP")
8 b+ p/ |+ i- W1 D2 n' L9 O$ L;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\phamduy782006ganhtd.LSP")
4 x- F1 w3 D/ {3 {: k' l% T4 T4 O. K;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\phamduy782006ganhtds.LSP")* i& `* [1 F% c
6 _/ o p9 @( i8 C; N
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\THONGKE-THEP\\TK_EXP.LSP")
4 o9 B* s$ q2 V l. g4 f(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\THONGKE-THEP\\TKN.LSP")
* |3 U+ @; E1 ?; @' P4 I' t$ Q9 t6 w8 B p+ i9 l
;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\ACAD iit insertTEXT - iiT.LSP")! c4 Q* w7 ?: i
. j7 @7 N% N+ U4 w
;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\ACAD iit insertTEXT - iPT.LSP")# @' t4 `: u3 `% Q9 `" g8 g
7 n5 }; w4 h. ^: o9 }; R4 P
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\ACAD insertPOINT - PTA4.LSP")
: b# r1 s5 b* q6 N0 l( t
+ o" Q, c5 ^4 N- S;; Silent load.
- w, u7 i& c- k' V' y(princ)
" {+ @* A5 ]( _, f3 y" }. @* U0 d' M6 R+ B' q$ b/ f) ]- a
1 {- `2 \3 j Y% \;; Silent load for the Express Tools.
: J+ _* |/ l+ \5 a% C! n ]* e;; Altering this line will affect Express Tools functionality
' w; f2 s; ~/ n6 t5 d) r(load "acettest.fas" (princ))! b$ i( S: E, C9 i0 k! _* i
6 |6 I ]1 L; o4 u, l, [( W
;------BLOCK NAME Put The End because ERROR other LISP-------& j5 G; }6 `- T+ x# t, c
;------------------------BODER HATCH-------------------------
3 W9 v4 F& p4 |! H4 U
& k c @: A. ]$ h( x% _+ E3 R s;;; HATCHB.LSP ver 2.50 `: f: F4 W! V) W5 q
;;; Recreates hatch boundary by selecting a hatch6 h [& E. q0 A% y9 T0 j
;;; Known problem with some elipses and splines
* J0 h% j+ _: z$ T9 u. Q8 ]9 W0 F6 n;;; By Jimmy Bergmark
6 k5 w# f8 {8 F( m) L;;; Copyright (C) 1997-2008 JTB World, All Rights Reserved/ O+ a9 d2 R; q6 j+ Q
;;; Website: www.jtbworld.com
6 _. U% v( i, c; L7 W6 L2 H;;; E-mail: info@jtbworld.com
( L$ O' ?. \# k;;; 2000-02-12 - First release
0 B! i4 j, ^1 ?$ Z;;; 2000-03-27 - Counterclockwise arcs and ellipses fixed
& W Y# d4 `7 S* b! F" O! b4 y p;;; Objects created joined to lwpolyline if possible. R; G9 J! z" C- q" F
;;; Error-handling, undo of command
4 W! \2 @$ B* ]( k3 {+ Y;;; Can handle PLINETYPE = 0,1,2& m5 v+ [. p) [! r
;;; 2000-03-30 - Integrating hatchb and hatchb14$ X8 U/ g: v% g) c
;;; Selection of many hatches
) {5 D9 C ~7 B( _;;; Splines supported if closed.
6 m l; ~4 [6 C;;; 2001-04-02 - Fixed bug with entmake of line with no Z for r140 \8 y3 B! J- F! e7 \
;;; 2001-07-31 - Removed an irritating semicolon to enable polylines to be created.
$ y. A f) ^: [( H% m4 z$ }9 V. Z;;; 2001-10-04 - Changed mail and homepage so it's easy to find when new versions comes up.
6 p. I4 j2 c: N9 A;;; 2003-02-06 - Minor fix
( P% w+ N) ^! ^# j;;; 2003-02-17 - Area returned if no islands is found since it's not consistant- b8 t2 b/ F$ j; T$ f, x
;;; 2003-05-19 - Fix to take PEDITACCEPT variable used in AutoCAD 2004 into account
6 W& ^5 S, L) }6 w: F" ]" T( i;;; 2004-11-05 - Minor bugs fixed
- `* \ ^3 |6 p c# {( x;;; 2006-03-18 - Nothing changed from 2.1 other that it's been confirmed to work with AutoCAD 2007# d1 K1 C1 t* q$ \- z) `
;;; 2006-05-13 - Create the boundary on the same layer as the hatch using the hbl command and
: p" I' l$ r9 k# ]+ E9 b" I;;; on current layer/color/linetype using the hb or hatchb command
: _' z% A" C6 ?% B! T;;; 2007-02-08 - Fixed a bug with the hbl command
7 H3 t+ g$ w+ e; I7 w" S# _;;; 2008-02-29 - Support for hatches in non WCS thanks to xiaocai
3 J/ `6 O2 f( M;;; Tested on AutoCAD r14, 2000, 2000i, 2002, 2004, 2005, 2006, 2007, 2008, 2009
4 K# ~: ?, z6 g;;; should be working on older versions too.
4 q# i: Z7 U$ Q5 g: @% ^1 G5 P7 l* Y, {$ ]/ z6 ?% s2 \$ n3 ^
(defun c:hb () (hatchb nil)) ; this line can be commented out if there is an existing command called hb3 p, ^! L4 ^$ G+ S+ r0 M' X
(defun c:hbl () (hatchb T)) ; this line can be commented out if there is an existing command called hbl
% R- r4 ^0 Q# @, A# n2 G& ~1 _) u(defun c:hatchb () (hatchb nil))) Y6 g8 a# S1 R/ h( ` o ~1 J+ k( a8 G
(defun hatchb (hl / es blay ed1 ed2 loops1 bptf part
6 k" e h6 t- s/ s$ X R( k) O et noe plist ic bul nr ang1 ang2 obj *ModelSpace* *PaperSpace*) N& x2 ~: _$ q F
space cw errexit undox olderr oldcmdecho ss1 lastent en1 en2 ss lwp
E& k$ B& L. k5 b list->variantArray 3dPoint->2dPoint A2k ent i ss21 Z# m) \( D8 k. ~
knot-list controlpoint-list kn cn pos xv bot area hst noarea
7 [" q7 j7 Y, ^ )( h7 u) T! k3 u
(setq A2k (>= (substr (getvar "ACADVER") 1 2) "15"))
; ^; c; ~; F. V& x (if A2k
1 _9 p; H3 a X' K% z/ R (progn7 ~/ c p3 S6 e+ O3 T
(defun list->variantArray (ptsList / arraySpace sArray)3 F E0 j- D5 P
(setq arraySpace/ h0 B& Z4 x7 S
(vlax-make-safearray8 a- Q$ h: |2 ?. U# i1 W6 @
vlax-vbdouble
# O C6 ^6 m& c6 I* w (cons 0 (- (length ptsList) 1))
* } v* n" t8 _ |; a* y; h* O )8 \, X, @: k7 m0 h+ l
)/ d3 R$ _1 z W! B4 I- ~. ^
(setq sArray (vlax-safearray-fill arraySpace ptsList))
8 {2 U O0 f, v3 C$ x+ A (vlax-make-variant sArray)
. @% A6 E. C' F3 h+ R: H( q )# i0 i& X `- h0 k! e
(defun areaOfObject (en / curve area)) p9 T. o9 h! s3 e
(if en6 K' v; W" d2 {( Y% C# d [
(if A2k' R) J. L6 n! A% U/ k5 x/ }
(progn
/ o+ j5 b" y/ ?2 ?: D9 F/ S (setq curve (vlax-ename->vla-object en))
8 a) ?7 h4 z) k6 L( ^+ S, X& |/ y. t0 ` (if/ `5 _! |( Y5 i0 y! [
(vl-catch-all-error-p
* z1 J5 r* Z( Y4 A' I! f (setq# E, k* I; n2 V0 b6 Q
area$ d% S$ e- x' b- \- y* P1 s
(vl-catch-all-apply 'vlax-curve-getArea (list curve)). f6 N' h5 E8 i. w! o7 v% t% a1 X
)% s* M d* S1 l* B, O0 P
)4 L( U9 |/ b5 \4 T# ~4 D, D' `
nil6 H( |) Z0 o; `$ D' N! {3 ]" n; S( I
area' T5 W0 _, M2 u4 t( m1 a) j, B; E
)# s' |7 d3 }( @) m9 D, ]
)
6 b( _% y5 f" S1 Q& U1 T$ o (progn0 {- A: `2 @% z5 j
(command "._area" "_O" en)
& {% K1 a: a0 M% p# N( C! _+ V (getvar "area")
, [# A3 S5 S* R4 s, q )
9 v- P- d. O: {1 E b )4 g6 ^+ { r, N9 L
)9 Q6 s! f' a9 }" ]' r$ ^) c( T" i8 {3 k9 R5 O
)
$ u- O% e. w- I# \1 a' [' y; P/ _9 X )
; P, C$ Q: B' q )
. q* K: O# u3 w: V, f6 d6 S) S (if A2k
6 K! w* l. L9 i7 ^/ d% }" `$ u- d (defun 3dPoint->2dPoint (3dpt)
5 f0 W% _7 p7 |) X (list (float (car 3dpt)) (float (cadr 3dpt)))
, U. o2 V% P; o% {3 A )
8 t. j% }/ s/ _1 f ); I/ o t- d: T5 Z6 H# B4 F
( X0 l3 T' w( ?* l% f7 L (defun errexit (s)1 O+ |1 z' Z6 B# l. s- d
(princ "\nError: ")2 }/ E1 g& L/ d, ~+ P8 Z
(princ s)/ q! {9 J' A+ K. c" s! l
(restore)
6 m2 M9 W; v2 }6 y$ ` )
1 f2 c7 }6 ^. _5 P9 K! Z0 j% {0 f' w1 ] b T3 c$ b' O
(defun undox ()8 G# Y& j9 R# P' D! b
(command "._ucs" "_p")! p8 ^* D8 v8 V4 @ n f+ v! f
(command "._undo" "_E")" Q2 z& a$ V: T! |3 e7 m5 d
(setvar "cmdecho" oldcmdecho)
* g! d) k2 [) ]4 ^5 a) x (setq *error* olderr)
- r- S# l( m' [: V* H% |' v (princ)5 u2 y) F$ A% L% w" P0 e
)
4 Q! A( j7 P, ~/ T z8 y. e1 W2 F1 w5 q! h6 L
(setq olderr *error*
. O6 X+ C4 ]6 x6 d2 p3 @3 Q restore undox
/ T8 \ {; r% U" D" C7 Y *error* errexit: W9 g/ S! o( Q% S7 [0 b4 ^) E |
)
* w. s# y' ^2 |" y! {9 H9 G* |* ~ (setq oldcmdecho (getvar "cmdecho"))
- {" z* N, @1 D5 F9 R3 @ (setvar "cmdecho" 0)
4 q6 y; K3 }3 t) N& Z) Z) j0 [) m (command "._UNDO" "_BE")
& b' ?; Z- [* k2 F (if A2k (progn2 ~$ Q8 ? y& Y! N( l4 _; i
(vl-load-com)
9 d% e, l% r+ v. Z/ a (setq *ModelSpace* (vla-get-ModelSpace% n% I* i7 {" t# w7 b
(vla-get-ActiveDocument (vlax-get-acad-object)): H' o4 m$ W9 {/ _5 e( ?
)2 h# d4 g9 g$ A3 U8 c
*PaperSpace* (vla-get-PaperSpace
X1 ^4 L$ y, H (vla-get-ActiveDocument (vlax-get-acad-object))4 D0 Y- E, ~' o+ V
): _" u( |* D W: n K
))
. y9 @3 b- p! l! v6 \! k )9 T& p$ U J: o( _; C
& C% v, u7 b) N: G) G9 l
; c7 e$ o6 R: g6 @" O) d) G& x; Remove for testing purpose# I) ]9 t: ]" K' R5 g
; (setq A2k nil)( B, j- c' q4 @) O; R5 X: F
8 \! [1 \; u( b1 m" f (if (/= (setq ss2 (ssget '((0 . "HATCH")))) nil)% F8 P* i: R7 M1 b6 f B
(progn0 H6 Z, ~! Y" @5 ~8 @. E! V
(setq i 0)0 L1 z* P( R5 L$ e
(setq area 0)8 m+ o! w6 m" i4 h' V7 A
(setq bMoreLoops nil)
4 q' J M* D1 u/ @+ F$ i2 j (while (setq ent (ssname ss2 i))' j- h$ b5 s, ~1 G" [, |- d. \( |
(setq noarea nil)
1 B0 U2 V/ ^- v8 @. e( ?$ {! { (setq ed1 (entget ent))# O2 F, O; m5 E: R6 i7 S$ B
(setq layer (cdr (assoc 8 ed1)))
) b* W& F; p ~% {7 \) G+ m% \ ; (if (not (equal (assoc 210 ed1) '(210 0.0 0.0 1.0))) (princ "\nHatch not in WCS!")) ;modified by xiaocai
% q( l8 f/ z8 |! ^% R9 T ; (setq xv (cdr (assoc 210 ed1))) ;modified by xiaocai& z8 S! I; o J4 I1 B# s
(command "._ucs" "_w")
' I! b# [6 N, f7 U( h# z1 o" d8 `6 U (setq loops1 (cdr (assoc 91 ed1))) ; number of boundary paths (loops)9 Z0 [- e$ H) k4 P# j! \ y( g
(if (and A2k (= (strcase (cdr (assoc 410 ed1))) "MODEL"))
7 f+ q0 V* V1 G4 G (setq space *ModelSpace*)/ g$ ?/ } D3 n0 H9 {
(setq space *PaperSpace*)
% W- `7 X1 C3 G: n$ s )
0 `) }: ^2 G3 M. V$ \ {! Z (repeat loops1" j" p6 Y2 W% f+ P
(setq ed1 (member (assoc 92 ed1) ed1))
; t- C: T( o. [1 H: F$ J (setq bptf (cdr (car ed1))) ; boundary path type flag
2 a: x6 K" ^4 b5 R* s9 A# A (setq ic (cdr (assoc 73 ed1))) ; is closed
. f$ E! y1 S& w3 |- _# U' p! ? (setq noe (cdr (assoc 93 ed1))) ; number of edges: z6 n& X. m' ^# q8 S; I+ Z6 ^
(setq bot (cdr (assoc 92 ed1))) ; boundary type
* Q5 W1 N C( T R (setq hst (cdr (assoc 75 ed1))) ; hatch style
) H- r( }/ ^1 l% O9 Q. w (setq ed1 (member (assoc 72 ed1) ed1))
! a1 c/ E: J! V h1 p0 x6 j7 k7 F3 U (setq bul (cdr (car ed1))) ; bulge
9 W8 ?9 l+ _) H7 f+ Q$ @; Y: { (setq plist nil)
! d$ o1 I8 Z0 L/ e# i! b, a7 C3 i (setq blist nil)3 h6 e2 R1 G0 \( E: ? w* E
(cond
' U1 Y7 @- ^) L5 {9 l' D ((> (boole 1 bptf 2) 0) ; polyline
8 m0 [: ]0 `- M& L* l (repeat noe
7 n" h- L O0 H( K (setq ed1 (member (assoc 10 (cdr ed1)) ed1))
& {1 q) u) R1 N! ?% d5 E/ | (setq plist (append plist (list (trans (cdr (assoc 10 ed1)) ent 0) ))) ;;add trans by xiaocai* [/ k/ q) Y9 w+ `( [$ ]9 k% o
(setq blist (append blist
' L% z* |" `- T, \ b (if (> bul 0)
& V+ q- r+ b( D6 U (list (cdr (assoc 42 ed1)))6 D) G' Q0 _' @% R0 g
nil# {( }1 H' J6 E+ a
): ]( ]! D3 y: Q9 J, ~' y) x
)2 P& o: s3 G$ o+ z, N
), ^( o- D* I" w- f3 s ^9 K9 `& g! t
)! `8 ~# l& |& K3 k. Y# `
(if A2k (progn9 {- k8 J2 Y3 O( H+ {8 M% V
(setq polypoints, X9 T" _/ c; I5 p
(apply 'append
6 H6 `" X3 ?6 l- W+ k% j0 \& M6 }% \ (mapcar '3dPoint->2dPoint plist)
: P; V0 y3 g& M) R4 K )# c ]! w7 [6 k! E
)
# }+ K6 @3 x% f3 j6 u, z8 s @ (setq VLADataPts (list->variantArray polypoints)): R9 f6 Y' E: S4 B
(setq obj (vla-addLightweightPolyline space VLADataPts))% M0 ^3 ]4 g' {% N
(setq nr 0)8 |" F. b& v8 q. r
(repeat (length blist)
4 `0 Q; e' x0 `1 N" ]) r1 S. A (if (/= (nth nr blist) 0)5 b) J1 X; w3 W0 U3 k+ t
(vla-setBulge obj nr (nth nr blist))
7 T* `3 F: {8 P5 B* A )9 m @% F7 c* f5 B9 l' ^4 W
(setq nr (1+ nr))9 y$ g4 y9 M4 F5 A% M
)
" [8 b `4 J+ \& l1 r a (if (= ic 1)
3 j# l+ y; c, _( G8 k- F (vla-put-closed obj T)3 p1 B) W) Z" O" f0 `
). g" x; i$ _% X: v
(if hl (vla-put-layer obj layer))3 L3 t! M. @5 f( R$ k/ ~
)
8 M! F3 n0 n2 g: Q( u( G# E (progn
6 F) M) u+ A8 C @3 S0 L (setq ne (append (list '(0 . "POLYLINE")) (list (cons 66 1))))
4 c% Y0 o* h% j3 v' [5 q1 [* ]; J% { (if (= ic 1) (setq ne (append ne (list (cons 70 1)))))
5 C8 ?6 ]/ q9 Y9 G) i (if hl (setq ne (append ne (list (cons 8 layer)))))
1 v0 A M- W6 f (entmake ne)
0 W( E1 u3 [- d( {- P. I) o (setq nr 0)9 d, @8 M( B3 @! \2 R# z
(repeat (length plist)
; _" ^2 @; l- i u# J L (if (= bul 0)9 N6 s8 f. v& F
(entmake (list (cons 0 "VERTEX")
E6 |( l, g& x1 f (cons 10 (trans (nth nr plist) ent 0) );;add trans by xiaocai
8 \; R' x1 d( o2 P [5 o# Y )
# {. c7 ^" W% r" O5 p9 z6 b )
, c N3 T" o/ s$ C4 ] (entmake (list (cons 0 "VERTEX")8 C" F# f# R9 k3 ?. y0 i
(cons 10 (trans (nth nr plist) ent 0) );;add trans by xiaocai) T& n/ T- h1 R6 ?1 t4 C
(cons 42 (nth nr blist))
3 n R2 @1 F) |6 v* W: V, F( Z )8 B1 [3 M; t! U( h
), A5 V8 v4 y$ u, [: u$ n: A, v
)' E$ `% {& r% z' l
(setq nr (1+ nr))8 {. S8 ]3 I, N( h
)& q( g% P9 X# }* O
(entmake '((0 . "SEQEND")))
9 W: v0 Y3 a+ v3 Q8 h0 | )! Z( w/ E1 y; g/ k+ b
)
/ r- U! X' Z* I9 G& f. N& M )& G) m( Y; Z6 ^0 w* G! p3 H
(t ; not polyline
0 }% T, R8 m. Z. W. k (setq lastent (entlast))% d8 O6 U* z- h. I/ O% Y9 z. ]$ t
(setq lwp T): s: q6 X/ v/ d3 v. {
(repeat noe
- v3 t/ {& e3 S" h. b (setq et (cdr (assoc 72 ed1)))$ x; z. W, ^9 j! A1 G; B% G
(cond2 ?4 h3 \8 g' ?$ Y8 n
((= et 1) ; line
* N; F+ `) Y5 ]' b (setq ed1 (member (assoc 10 (cdr ed1)) ed1))# F" l5 j4 O/ G+ ]6 M- S1 r6 b2 d
(if A2k' m+ n7 S. W" A: b; U8 y! X$ R
(progn
R$ Z& _( ?. f3 ~% R' k (setq obj (vla-AddLine
8 F: A/ E% M6 b( X$ D& C space
5 b& i- o p" N (vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) ) ;;add trans by xiaocai
9 } }( j7 G/ U) M0 J4 \0 i1 S/ P (vlax-3d-point (trans (cdr (assoc 11 ed1)) ent 0) ) ;;add trans by xiaocai3 ^% }' q1 T9 Q" |( I! }* h
))
: z. {# j& a0 R (if hl (vla-put-layer obj layer))
% @' G1 u. l9 U* [4 O* | )
+ I. @6 x1 R8 f* Y/ F3 U& V (progn
% D; J" \: g* c% ~( A: d (setq ne (append (list (cons 0 "LINE"))
( s! k1 M$ s8 d( W" y (list (list 10 (car (trans (cdr (assoc 10 ed1)) ent 0) ) (cadr (trans (cdr (assoc 10
+ z( I+ ~. b8 L$ H0 o, @0 Y: k) G, O4 I
ed1)) ent 0)) 0)) ;;add trans by xiaocai% S- x7 Q/ y# c3 c
(list (list 11 (car (trans (cdr (assoc 11 ed1)) ent 0) ) (cadr (trans (cdr (assoc 11 v: x* h. M7 M* j7 `" b" ^
$ e+ h) _# _; i$ i
ed1)) ent 0)) 0)) ;;add trans by xiaocai. I8 e" Z5 S( t8 A
;(cons 210 xv)
# J: |7 x { G# g1 E( v )
" {& _# ?/ |. E )
* ~7 l9 u) ?( a7 V: ]. M (if hl (setq ne (append ne (list (cons 8 layer)))))4 `, a9 c, O: V
(entmake ne)
- h" s( m5 i( m )* f8 I: p( _8 b1 ]: `- c
): t' v- u m% S; M! f* a1 I
(setq ed1 (cddr ed1))
( h5 D) O+ p U )
/ ^1 O }% a( v ((= et 2) ; circular arc
' L2 z' {' D# U7 D9 v (setq ed1 (member (assoc 10 (cdr ed1)) ed1))
2 ~% ]2 L' h P; Q1 Z; f (setq ang1 (cdr (assoc 50 ed1)))
. r* n* K6 _% ? (setq ang2 (cdr (assoc 51 ed1)))
0 p: G0 U1 D" P" b6 {3 |0 t1 }& ~ (setq cw (cdr (assoc 73 ed1)))+ A |4 D" h: ^4 X
(if (and (equal ang1 0 0.00001) (equal ang2 6.28319 0.00001))
6 u7 r4 _) x$ C7 W* q (progn8 \+ ^, t0 r$ e2 ~/ s5 n: e
(if A2k! u5 G2 S5 h* D( J \
(progn a1 ^( R# E; S4 Y# Q% M; B
(setq obj (vla-AddCircle
8 F% u6 i" h2 L space
1 V% x% b1 e0 E& z3 u (vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) )5 ?3 X* @# _( F. K1 f- e
(cdr (assoc 40 ed1))/ \: p5 W& X& A0 N7 ^
))
; U2 W5 d5 x$ l# U% e! _ (if hl (vla-put-layer obj layer))4 t6 N, z M# h. H s
)! M: n! `# {5 H% H" `: w
(progn
4 c% g0 `% p" r6 f (setq ne (append/ v: v, e" u* Z* O5 y% ^
(list (cons 0 "CIRCLE"))9 S8 r$ R6 K, Q' v0 Q# v6 u; \
(list (cons 8 layer)). ? S0 ^* N# [6 m6 u+ Q* I
(list (cons 10 (trans (cdr (assoc 10 ed1)) ent 0)));;;add trans by xiaocai5 K, ~) t- Q6 d- u: _1 L
(list (assoc 40 ed1))/ R7 _/ S0 E U$ W
)6 b- D% A5 F4 o; [+ w7 [0 x
): a! _! J3 D0 v$ M
(if hl (setq ne (append ne (list (cons 8 layer)))))
0 a- L9 V' A" y (entmake ne). v. y5 O2 U; k+ z/ N' ]
)# o$ K% ^. Y, i
)7 N+ J0 v' s: f7 D' N: ^* R+ ~
(setq lwp nil)
1 K0 q/ S, ?( T )
1 F/ S8 X7 ~, j# J (if A2k
% [3 q& ]; `2 ]; |* V (progn2 a% G+ w0 h* e+ W/ h9 v+ m: {' X# n
(setq obj (vla-AddArc
' I2 ~" x9 I- Z- I space
% }5 I! \4 L9 \4 {0 k# C (vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) );;;add trans by xiaocai5 t. ]& T$ J) A: p# p
(cdr (assoc 40 ed1))
- ]9 g( a* s7 D- O (if (= cw 0)
2 t0 x6 D) t8 a) Q Q! w' w5 h (- 0 ang2)- Y- d8 v$ y7 t# @) A# z+ g0 W
ang1
0 ~9 E3 Q- m7 O( b5 R2 J8 h# B: v) e )& z }& q4 Z0 X4 q( Y
(if (= cw 0)9 p/ a& x r5 i+ C- b( W
(- 0 ang1)3 |4 f. X3 V- |5 ^. E( S. G
ang2
4 F2 G' y' g& `3 M. c& p )
& J* Y' M i( X3 _ ))+ q4 N" t" z) i9 N' K8 b
(if hl (vla-put-layer obj layer))
% j, v% y4 v7 h. B' b- M ), }" m9 C6 V7 h) m3 \ z3 P- L
(progn
' c1 A$ E* X! E (setq ne (append (list (cons 0 "ARC"))" s8 b$ O# }/ p
(list (cons 10 (trans (cdr (assoc 10 ed1)) ent 0) ));;add trans by xiaocai
6 X) ]3 E8 A& n4 r; I! E N (list (assoc 40 ed1)), C! J5 d) ^: [" [1 ^+ }; ?
(list (cons 50
3 r4 \9 }9 g) V8 |3 q (if (= cw 0)
' a5 p$ ]. b x; f+ X3 V9 C" A (- 0 ang2)( {& [: {/ K; T6 A
ang1 R6 {% A: P, V2 |
)& [: C! P3 Y' @& T* ~- j
))
! _0 e! k0 A% Q8 F) x; a+ T (list (cons 51
# f, x" z+ v. l& R (if (= cw 0)7 d$ r2 T8 x! N$ m9 l& K
(- 0 ang1)& k4 p2 e* j/ F" n2 u
ang24 Y! o" z) r* X: d4 p6 U; }0 _1 n
)6 c# b; M/ A8 G2 ^7 x
))
/ ]; z* N2 v2 Q6 a )
M) T) s! @5 t# O3 V )
$ |; C' c0 H4 D5 ^* E8 J) b/ g (if hl (setq ne (append ne (list (cons 8 layer)))))
0 {5 j0 m' |' y, `+ ?: d, T (entmake ne)+ B0 a! [7 K+ q8 K! j
)8 `) o, e- K+ U
)
+ z8 W; W0 B4 Z1 a9 S; O+ U )
( ?# _. t3 z' X$ S: W (setq ed1 (cddddr ed1)), T( X& W# {7 v* f
)/ r" j9 Y( ]/ G% ]) C7 R) v
((= et 3) ; elliptic arc) U& X) n8 h; \% _! D; Z: l
(setq ed1 (member (assoc 10 (cdr ed1)) ed1))' B9 N9 b" e: b
(setq ang1 (cdr (assoc 50 ed1)))
8 H6 V5 x/ L+ u* i* i- } (setq ang2 (cdr (assoc 51 ed1)))3 t) x8 @/ A) d, |' Y* u! P
(setq cw (cdr (assoc 73 ed1)))) y+ i" O9 m. _2 e9 F" @
(if A2k (progn
; u2 q2 Q, p: e (setq obj (vla-AddEllipse8 U2 b: I5 j/ V0 ~
space/ L% D" {+ Z& U8 O/ f
(vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) )
2 @% w" X! ], y! I; ?3 [: o (vlax-3d-point (trans (cdr (assoc 11 ed1)) ent 0) );;add trans by xiaocai% S, n' J: `( j# _) T& W/ \
(cdr (assoc 40 ed1))
$ Q& ?1 i2 T( U$ D" v )6 `0 \; x: H' h2 ~7 H
)
; i3 q) `) k( D; H, z. |! T (vla-put-startangle obj (if (= cw 0) (- 0 ang2) ang1))
& y3 w% |, X I- F (vla-put-endangle obj (if (= cw 0) (- 0 ang1) ang2))2 l$ ]4 t( o' b( @1 C) ~6 v) f8 v
(if hl (vla-put-layer obj layer))9 k6 g* j: h1 y9 `5 O
)
) b: Z& f- ?# ]# `( ` (progn
( T6 q' Z6 P1 T6 N (princ "\nElliptic arc not supported!")
7 l% Y6 _4 Y. w U1 u (setq noarea T)
0 H) f' ~& I3 h0 w4 F )
8 N" a# G2 l% `7 J+ V )3 x% W8 T* o& p7 @8 @
(setq lwp nil)
$ B+ ?+ m) S6 j* B5 X" v )* t$ r9 N m( v: B2 h
((= et 4) ; spline
" j2 S3 a8 c4 c6 ]: b! N (setq ed1 (member (assoc 94 (cdr ed1)) ed1))
3 e6 Q4 R) L5 E7 T* S (setq knot-list nil). O D( |; i! F/ D" W# O
(setq controlpoint-list nil)
. _ {( R5 R# c4 ]' D# Q8 ?( Z. i (setq kn (cdr (assoc 95 ed1)))0 e, X0 C, I4 j+ H8 z+ Y3 k
(setq cn (cdr (assoc 96 ed1)))
# o4 [0 w0 t4 y9 `: F (setq pos (vl-position (assoc 40 ed1) ed1))
/ E: E9 I# ]- a% Y6 \/ }% F$ s (repeat kn0 s, O8 A5 ]3 X0 U0 {( \
(setq knot-list (cons (cons 40 (cdr (nth pos ed1))) knot-list))
/ g2 u0 M7 U! g& A! S (setq pos (1+ pos))
) a: l i$ k5 u& K) O )2 s' L" j5 C( i8 u! ?
(setq pos (vl-position (assoc 10 ed1) ed1))
7 B$ h% o2 J# O* U- o (repeat cn
% U' F8 {6 v( W8 Y0 F" s5 u (setq controlpoint-list (cons (cons 10 (trans (cdr (nth pos ed1)) ent 0) ) controlpoint-3 _# k/ U; x# C% @: z
3 y" [' z, e6 C* q: n0 l7 _5 R
list));;add trans by xiaocai2 x R3 R( Q: T- m5 ]
(setq pos (1+ pos))& J! ]' t$ N+ x4 ?
)8 V F! B! s$ X5 h& S5 N3 T
(setq knot-list (reverse knot-list))
* z4 v: s3 }' \8 k+ @ (setq controlpoint-list (reverse controlpoint-list))
+ \% C9 U7 {; a4 { | (setq ne (append3 g8 R+ x, N7 b
(list '(0 . "SPLINE"))' q8 o- o Z8 C1 w8 Z
(list (cons 100 "AcDbEntity"))0 h% V( O4 H1 r3 b( R3 [
(list (cons 100 "AcDbSpline"))
y& E7 W- C: ?+ ? (list (cons 70 (+ 1 8 (* 2 (cdr (assoc 74 ed1))) (* 4 (cdr (assoc 73 ed1))))))
1 n' d) P8 N' o: e4 u e0 V6 \ (list (cons 71 (cdr (assoc 94 ed1))))/ V$ V" p) x/ x# ^3 ^" [ m6 Q
(list (cons 72 kn))1 s3 `( t1 r; l1 Y0 v1 Y
(list (cons 73 cn))2 @6 G$ T k: v- F$ M& b7 N6 v
knot-list" y: Q( q& @: k. ~9 k# P, o; q j) U
controlpoint-list' i5 |, j' a2 q4 y1 C2 R% H7 l+ `
), r, V6 z- s" f
)' `" [- i/ S$ ~ B4 v' D, Q8 t
(if hl (setq ne (append ne (cons 8 layer)))): L1 p* ~" S! ?8 d2 N
(entmake ne)6 }5 G. F7 L- p( s
(setq ed1 (member (assoc 10 ed1) ed1))
3 m' A: [4 U. I% K (setq lwp nil)
8 V( ~0 y. |& f, d x) N' a )! S+ M. u- L" |: [$ e
) ; end cond
\; o1 b d% C2 O ) ; end repeat noe
; J. B% f$ T7 y" j& F (if lwp (progn, k+ y% z1 r, T( ^/ ]
(setq en1 (entnext lastent))
6 W" Z7 i% p' @* J* p (setq ss (ssadd))+ o6 y' }6 O/ e: Q/ H
(ssadd en1 ss)9 u V2 Z8 T, @6 d
(while (setq en2 (entnext en1))! W ~' ^. c, A. J& y2 L
(ssadd en2 ss)
+ \/ {7 J- ~& E* m (setq en1 en2)
2 J7 L8 v5 s! M )
3 u j; Z. F& ~# F5 v; h6 f. K (if (= (getvar "peditaccept") 1)# w6 {" D7 w( X2 N
(command "_.pedit" (entlast) "_J" ss "" "")
% `+ R. z% A4 c0 Y- T (command "_.pedit" (entlast) "_Y" "_J" ss "" "")
+ G7 J9 u" ^$ ~ M0 Y )4 u9 |5 h2 ~6 T8 p j U
))$ M" o# D8 k0 g, b
& m d$ O$ e5 N$ H+ [; r
) ; end t3 B! |$ m9 |) K( }
) ; end cond W! @0 c8 g! Y0 f+ w
; Tries to get the area on islands but it's not clear how to know if an island is filled or not
' u7 q$ Z6 L! q; and if it should be substracted or added to the total area.
# ~. z9 q/ p3 U; (if (or (= bot 0) (= (boole 1 bot 1) 1)) (setq area (+ area (areaOfObject (entlast)))))# y* u* ], D% K2 c
; (if (and (/= hst 1) (/= bot 0) (= (boole 1 bot 1) 0)) (setq area (- area (areaOfObject (entlast))))) M! c# r- ~+ Y/ N2 B$ U- _
; (princ "\n") (princ bot) (princ "\n") (princ hst) (princ "\n")3 S5 K& U2 ], G1 V
; (princ (areaOfObject (entlast)))$ z7 A( o5 K- X9 k0 {1 w- [
) ; end repeat loops1
2 \/ o& j! q9 a (if (and (= noarea nil) (= loops1 1)) (setq area (+ area (areaOfObject (entlast)))) (setq bMoreLoops T))8 U1 A5 U! i2 C
(setq i (1+ i)): Q+ p ^0 A; P% s+ X0 I) z
)+ D! c$ c! h+ o) s7 A
), L- W7 ]9 ]; b* j8 X! L
)& }# f0 L# m- s' [: t: l! ^
(setq ss2 nil)
6 h Q, @8 z* Q( C) Q' B; g0 M, U1 p (if (and area (not bMoreLoops)) (progn
. E( |/ D! X+ e (princ "\nTotal Area = ")$ I" p! u; @. r5 H. I! o
(princ area)
& l5 V6 l( J: E: [! ^# F ))
5 z6 R0 V1 j1 ~2 M. O (restore)9 e$ A. Y Z4 Q
(princ)
6 X. f8 [) A3 [' M- p, H){\rtf1}2 d* f. |$ x0 z: P
* i& y- [# B) `! w& g' `
(defun C:BN (). @3 I. q- K" b$ X. o+ A
(princ "\nAdd block name to drawing.")
. k6 k, g+ Q# R (setq pt(cadr(entsel"\nSelect Block:"))). R6 U4 Y3 \, M! }4 d
(setq e1(ssget pt))
6 J& \# W h# B) Q5 Q0 Y (setq e2 (entget (ssname e1 0)))
( S* _6 Q( l) A# U# B/ U (setq blname (cdr(assoc 2 e2)))
: p4 J2 R6 n2 B (setq pt1 (getpoint"\nSelect point for block title:"))1 A d( K) P' E |
(command "text" "c" pt1 "" blname))
$ R6 m$ U' u0 i" ?/ {(princ "\nType BN to execute)5 {- C2 s/ [( {5 H2 Z) p
�32: `. ]( H: \4 D) Z. F" o
' b; S" \( N% J: M& q l7 a) ^2 L
7 D* j! n k) B |
-
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ề: 340)
-
2025-04-21 Layer.jpg
(26.81 KB, Lượt tải về: 348)
-
2025-04-21 AutoCAD Message.jpg
(8.58 KB, Lượt tải về: 340)
-
Screenshot_20220406-091212_Facebook.jpg
(306.88 KB, Lượt tải về: 337)
-
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để G.jpg
(249.66 KB, Lượt tải về: 361)
-
Untitled-1 Da Xong Trump Putin 0 Hoi Xong Chua copy.jpg
(299.44 KB, Lượt tải về: 338)
-
-
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
|