|
|
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">( Z5 r. F! B+ ?" Y: r. j; G% n1 P5 |
Sao chép mã ********************************************************************************
& ^) N& p& a+ @8 v* m) {" s* ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
6 e/ Z/ j! F! w: i8 I* Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *8 Y. x2 [! Y; A F5 v1 G% I7 A% o. A
* Suu tam & Soan *
! i: t9 ^8 i2 C4 s' J********************************************************************************
& B8 }8 o5 p" Q U# {. I& G! p7 g; G( i* u- E& U% T8 {
; Next available MSG number is 104& m$ e- E* j6 ~1 ?/ v" B; B
; MODULE_ID ACAD2000doc_LSP_
9 b6 R9 _6 Z8 l; [+ E0 F0 P8 l2 s;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
! L* T( ~' v$ I$ |; ?$ r. n4 a8 ?;;;$ p! Q1 a4 z7 C
;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.2 f3 H9 a' `' q: ~8 R( T
;;;7 y1 @' x5 g6 [8 j0 G
;;; Permission to use, copy, modify, and distribute this software
3 x5 e$ x/ b3 [;;; for any purpose and without fee is hereby granted, provided7 m" B9 }1 A5 A& G8 _: R- w
;;; that the above copyright notice appears in all copies and
; Y# l b5 A7 t( j' U, l;;; that both that copyright notice and the limited warranty and0 w* [* D8 A7 \9 F' T. [) s: w
;;; restricted rights notice below appear in all supporting, w* f& L/ f; H* Y# d- ?, z
;;; documentation.
8 Z) j) D1 b) ]' r;;;
7 k' q* I/ _2 O) C;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.2 f2 d/ B/ w& V3 Q' C% j
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF( M& K% r8 c7 h$ a1 D% i! L
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.: P/ P' |$ m, T) c- z) z
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
% X9 R9 U+ A& B$ m$ Z;;; UNINTERRUPTED OR ERROR FREE.
9 V: g0 g; B0 X;;;
& F7 Q# }6 I# X% L9 y- b;;; Use, duplication, or disclosure by the U.S. Government is subject to
, |- C& B; C" e* c, _;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
/ @' I& F; \3 }" H) }. P;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
$ U q4 O7 {6 G- p;;; (Rights in Technical Data and Computer Software), as applicable.
/ s8 i+ b3 C) I' G4 E: r# M p;;;
7 t V1 H0 v$ l5 u7 Z;;;.; X5 l# z q" j) J
;;;
! U9 V% y3 k- V( j2 d+ a/ W;;; Note:
( `* m1 s4 T: x: ~, p, z2 s;;; This file is loaded automatically by AutoCAD every time
2 f8 `1 C5 j+ I5 @8 I;;; a drawing is opened. It establishes an autoloader and
/ r9 \2 y4 w6 F" [+ i* Y1 N;;; other utility functions.! R( }, L t/ t. I7 Q6 X
;;;
1 H, U& {) w$ t; C9 g0 M' N {;;; Globalization Note:
" L* B# C" O0 C;;; We do not support autoloading applications by the native * O7 r- ]1 f, _
;;; language command call (e.g. with the leading underscore
$ A2 _" I/ p% B4 X1 w/ [;;; mechanism.)1 v# Y7 M% f X3 n7 h
2 d1 g) O* V: a$ |' C) s4 k, P- U: S1 F
;;;===== Raster Image Support for Clipboard Paste Special =====
/ C1 O+ R7 L" l7 _, `, o; f;;
$ Q- r8 V' C% `) {3 I( M, \& F;; IMAGEFILE
. i8 n V! H% _0 O; z;;
- T6 ~% w. E; V1 }: A& W;; Allow the IMAGE command to accept an image file name without
5 |" l6 }) Z2 C$ Q0 c;; presenting the file dialog, even if filedia is on.
5 p' G; k5 h( @% H# j! M; Z( Y;; Example: (imagefile "c:/images/house.bmp")
# K, g4 Q8 v# Z2 D( _8 K& D;;
3 u1 W) @/ B& I) p(defun imagefile (filename / filedia-save cmdecho-save) U' H* r5 ]1 R! `
(setq filedia-save (getvar "FILEDIA"))
* L' `. V4 }3 ?5 H3 R W: N (setq cmdecho-save (getvar "CMDECHO"))
8 n( ~# L9 @( b: ^ V8 _ (setvar "FILEDIA" 0), B9 B8 o; F( D5 u
(setvar "CMDECHO" 0)7 R, m0 K' m6 D. W
(command "_.-image" "_attach" filename)
* p& ?+ h! n- R, M) w2 `5 h (setvar "FILEDIA" filedia-save)( x; ` A- P' P. e- S+ x
(setvar "CMDECHO" cmdecho-save)" ]2 w5 x" [, a$ ^; ]
(princ)
B3 u5 u3 h: f- V)
3 W; e: \) O# |# N( j;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
: i9 w! C$ e. n Y% T; Next available MSG number is 11 6 G- c7 ^% S7 D& i
; MODULE_ID DDVPOINT_LSP_
; ^& L! N' ~0 V% b4 R;;;
/ U2 d- }9 O6 P- m, [" s;;; ddvpoint.lsp
* Q N) @; N3 p# X" q5 _* w;;;
+ O/ y, _3 F' V0 K& j0 H+ f1 X;;; Copyright 1992,1994,1996-1998 by Autodesk, Inc.7 n3 {! B7 c1 h6 m& Y \7 |
;;;
8 f: G* }. e ?5 S6 Z;;; Permission to use, copy, modify, and distribute this software
$ ` T- L$ `7 p;;; for any purpose and without fee is hereby granted, provided
9 l V7 b5 K" d% p# \0 E H' G;;; that the above copyright notice appears in all copies and
& x3 V1 c% ` Q" T+ L;;; that both that copyright notice and the limited warranty and
. L: I/ f U% l7 {- h/ D;;; restricted rights notice below appear in all supporting
, k1 r% N% ~' z4 T# n2 u;;; documentation.
! Q: z; g( y! \: J;;;* n6 x: X5 B% U" k5 `( P
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
: p% ?2 k# @4 f, `$ y. [;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
" `- w% V/ W4 c3 B; _/ n. P;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.( M& V2 j1 s: ]7 c$ M% w' N- K
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
/ B8 \* j+ [1 P8 w;;; UNINTERRUPTED OR ERROR FREE.
0 Z% e0 X9 r; a8 e& V8 ?/ p- {6 X;;;
* q8 P& N9 K+ Q" ~4 w+ n;;; Use, duplication, or disclosure by the U.S. Government is subject to
5 n, r% ?" E! j* J' L;;; restrictions set forth in FAR 52.227-19 (Commercial Computer* { m( Y: z2 x! S& u9 ~* e
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) # F) _/ Y0 l% a# c7 y) R
;;; (Rights in Technical Data and Computer Software), as applicable. n6 y, u, a% h! v; j
;;;) a8 ?5 M; F. y
;;;.' r( O7 X+ ^; ]& b9 r, \
;;; C DVPOINT - 3D Viewpoint presets dialog.( i# A, k& I+ W5 f, M7 X# e
;;;1 ^2 e, l/ S' k7 Q
;;; Uses DDVPOINT.DCL for the dialog definition.; N( i. r$ p3 S Z$ z( R/ C
;;; The slide image is in ACAD.SLB.! N I" R; E6 F" K4 i- p
;;;
( C: e8 g- C$ t/ u. b: u;;; ===================== load-time error checking ============================2 U, K8 d1 {: Y& M# O Q" e. @
;;;
/ j0 a/ V$ T1 c9 z- u/ K; ]" g$ R; j: e- C9 d% g( C
(defun ai_abort (app msg)2 T1 ?! T& s: p3 R4 r0 }; t
(defun *error* (s)
$ b* a: r( Z4 q (if old_error (setq *error* old_error))
' l1 H& K! J% c6 [4 B5 O& L# _( W (princ)3 X3 U" ^/ B7 c- P
)
?; s$ @& f0 s' z6 ^4 p (if msg" f+ ?# j1 [ C K* e% E) p z7 L
(alert (strcat " Application error: "
* J& F. d4 s* i& y8 G app* K% P+ J, ] |
" \n\n ". t% ], r1 ]2 Q/ V+ X
msg
3 W$ q0 n" F1 x- |- v& R* E8 ~( I " \n"
/ j" e3 x: ^0 k- E4 ` ) _ ~# T* F) S. y, j
)
5 S c; p9 M+ ?* V )6 Y% g% G& M; Q3 N% x; \- G3 c# ~
(exit)
- T4 a9 K( c5 Y% | )9 x; v. Y. k6 o
% D4 K% f; U9 y) I
;;; Check to see if AI_UTILS is loaded, If not, try to find it,0 k. [, R2 w( ~# v# ^
;;; and then try to load it.3 w2 v) H, f. h1 n, u6 b7 _
;;;3 |' [4 }) @) ~( a8 Z
;;; If it can't be found or it can't be loaded, then abort the
% N5 `9 W$ V% {6 }- ]4 v" ]; n;;; loading of this file immediately, preserving the (autoload)
9 i3 G- ^; B7 b1 P;;; stub function.
Z& Y( x. o4 R4 L3 }
& t1 R O! b1 d0 B (cond4 @- Y2 p8 _; B7 U. d% R% Y. ]
( (and ai_dcl (listp ai_dcl))) ; it's already loaded.1 A2 t* s; @. w
0 u8 p z- { R9 c/ G3 A- r ( (not (findfile "ai_utils.lsp")) ; find it* v9 [2 N0 S1 }
(ai_abort "DDVPOINT"
2 v9 d% @" Y4 s6 n% u! K0 m (strcat "Can't locate file AI_UTILS.LSP."
. w3 z& w+ Y+ ^! _/ c8 z "\n Check support directory.")))
* U+ v' T2 Z8 _+ q- K+ x
6 I0 {5 s& v3 @* c$ Q ( (eq "failed" (load "ai_utils" "failed")) ; load it2 J& v: e* [& i0 n% ~: J. U
(ai_abort "DDVPOINT" "Can't load file AI_UTILS.LSP")) A" [- F, R: V$ Q' f! j& V2 p
)
* E% E1 e/ L! v) j ~# `8 C3 ?$ M0 T, {- |( Y; b Y5 b+ W5 b& V
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP- q1 w; U8 c7 r9 q6 |4 C0 H
(ai_abort "DDVPOINT" nil) ; a Nil <msg> supresses! [- t" _# S2 U' I! S
) ; ai_abort's alert box dialog.% M1 Z; c" s: e0 E! [
! c2 G, u. Q: H;;; ==================== end load-time operations ===========================- N8 }8 t+ P8 O' u3 T3 B: P' C
- q" k0 S5 W: D' K* U$ v8 n6 N- M(defun ai_ddvp_start ( / image_x image_y image_h slide_x slide_y slide_h program)
* _% P& {8 C* L1 L! ] R ;; Get program name
6 f( G0 ^ t$ @ (if (not (setq program (getvar "program")))
! i2 j. U% ~. b2 t2 } (setq program "acad")! n. {8 R3 W2 b6 P" V
)5 j+ m; G/ F( m8 P. h4 M
(start_image "ddvp_image")
' k2 R5 P8 n2 I (slide_image+ z S6 z- }( W
0 0
; v& q* b5 V, W- U (- (setq image_x (dimx_tile "ddvp_image")) 1) / \ _: x" {' N- [% n! I
(- (setq image_y (dimy_tile "ddvp_image")) 1)
% M/ g! b0 y1 e; c' \+ W (strcat program "(ddvp3d)")7 G9 [+ Z8 W0 w, c, d4 ]
)
& o1 V! E9 G' l' r& ], _ (end_image)/ A. J f& n! m# Q7 _& O7 L& r! y
(setq
" j* W9 Q- T8 W2 e- f4 U image_x (float image_x)- k9 x* L# k8 m' G9 C7 B
image_y (float image_y)
9 s5 m3 @ f( g+ ]) e1 F2 G slide_x 12.4265
5 n& K, {% l! q, T slide_y 9.0
7 l8 w, g& |: v ^2 u/ [, Q) k image_h (/ image_x image_y)
" E" b3 `! t/ e0 N slide_h (/ slide_x slide_y); m) t6 C) X( U
)9 I: S/ A: z' R: q: ]- J9 q: h
(if (< slide_h image_h)
; W4 C8 v5 t' ]; P3 {2 \9 N (setq slide_y image_y
: B( w3 i+ `( }: `1 m: n" u2 F slide_x (* slide_y slide_h)) ?; @$ p6 m" e7 t& Z
)& _3 z/ g* M7 V) P
(setq slide_x image_x/ ~+ @1 w3 n' }( }* h
slide_y2 (* slide_y (/ image_x 12.4625))
6 K+ ]2 @# Z I( U image_y2 (/ image_y slide_y2)
5 ^1 B" A" Y/ G. V, f' E slide_y (* slide_y2 image_y2)
9 x) L7 U! ^" _9 X) E }" A
8 l2 O5 o: d8 d0 r )
L- q: a+ Y# D" ~: m+ A )
5 q$ {0 H9 {8 ?2 s7 i& { (setq ai_ddvp_bx (fix (* 0.295 slide_x))
$ ^# I( p* g6 e7 X7 X+ i ai_ddvp_ax (fix (* 0.65 slide_x))
" C, h* w9 n7 x% {) w' J8 B# h0 t ai_ddvp_by (fix (* 0.4875 slide_y))9 p( a# Q8 n( C1 P
)* i* R- M1 r0 ]$ q/ Q, @% I9 s: n* E
)
1 Y& r. Z C6 H4 E8 M1 k7 L- ^, z Q; Q1 A8 F
(defun ai_rtd (arg)
; W* b/ P) {6 e4 z0 d. _* l (/ (* arg 180.0) pi)
8 F8 T1 g! T/ v6 E5 F8 S* ^)* c _! |; a* Q7 Y0 H X" {
. ^5 K4 y# a' J
(defun ai_dtr (arg) q. M D3 a# ]# j( _$ ?- r
(* pi (/ arg 180.0))
) b! q6 H1 H; W# _$ Y/ \0 X! b9 D+ f)* r% I* S% ~; j) L8 M. x& Z3 m
, |3 L% J( w( N- w
(defun ai_ang3dv (v1 v2)
9 i$ b" D3 v2 p$ H( U1 {6 P$ ]7 R (if (not (equal v1 v2 1e-12))' f7 [: O1 K0 o4 Z5 ?1 R
(ai_arccos7 Q D0 n. o- [! P- p
(/ (ai_dotp v1 v2)
- i, W2 g+ Z/ n3 v (* (sqrt (ai_dotp v1 v1))
- t( a% j& X' k" z8 [1 ^. l W7 D4 S (sqrt (ai_dotp v2 v2))
$ A* R; I7 [8 F% x! b4 K )
M+ Y& c7 ?4 S4 N7 w )9 g4 I- @) M' ~
)5 b/ \* B. z. J+ O/ r
(eval '0.0): S6 h. k( q2 G
)3 @- u+ Q$ e: P' `& h$ ^( l. T/ Y
)
; l' O. q! y2 O# Y2 Q8 d1 S: r6 d& a9 F- Q/ h9 z
(defun ai_arccos (ang); N4 f, f: }- z2 n E6 M5 T1 K; S
(if (not (equal ang 1.0 1e-06))
" d7 K7 r2 p# ]7 q- } (if (not (equal ang -1.0 1e-06))
* u* m [2 U4 q6 J+ X/ r# t (atan (sqrt (- 1.0 (expt ang 2.0))) ang)
# ^9 t1 K/ ]6 u. d (eval pi)
8 N, x# ~7 W+ D )
. j* H3 u& L) s# z- G (eval '0.0)* S, p, Z. a/ }# r
)
0 E0 i' P1 r* X/ ]), u: Q- Z+ f5 q2 e
+ X0 e7 p3 u3 L2 ^( s1 N" N m(defun ai_dotp (v1 v2)/ x9 v1 R3 c/ T5 p/ J+ o
(+6 N$ A* M4 W9 x% c0 Y. }( h
(* (car v1) (car v2))
+ D% `6 e4 G+ ~6 S- q: V: G- y (* (cadr v1) (cadr v2))
# P0 }# |& |% r8 ~1 f (* (caddr v1) (caddr v2))+ Z4 K$ z7 D3 \3 D$ |( s! M( l6 w
)
w* W5 G; V5 |' N)' `1 y& N. e6 b1 `
6 k- c$ s& h L+ V& h
(defun ai_ddvp_do ()0 h; A9 W8 `( l9 k$ a* e; h
(if (or (>= ai_ddvp_b_curr 360.0)
! o5 A/ O* I3 [1 S" k6 H' u (< ai_ddvp_b_curr 0.0)( c2 [; r9 h; D }( h: r
(null ai_ddvp_b_curr)
4 E# a/ L1 q; R: ^% o/ B )/ ]( F+ D6 j8 |) o: t
(progn2 Y6 @1 e% \! W6 b
(ai_ddvp_drx ai_ddvp_b_last ai_ddvp_bx 0)
* ?" ^% |' r' e (ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 1)
, x6 Y' u# B1 W. O$ I+ z (mode_tile "ddvp_val_x" 2). t0 ?, g9 J9 [
(set_tile "error" "Invalid angle from X axis."): q0 t9 y9 S: }9 N& ~! P% R! n
)& d& ]7 k+ `4 i- R$ I6 M c; Y
(if (or (> ai_ddvp_a_curr 90.0)* s% ^6 T4 W8 ~. {& v
(< ai_ddvp_a_curr -90.0); A, [9 Q& b" C1 W; N, s* f
(null ai_ddvp_a_curr)
, \8 A f2 L$ V( B )' {+ ~" n5 T( Q4 c
(progn
2 G5 y0 f8 b' G6 u (ai_ddvp_drx ai_ddvp_a_last ai_ddvp_ax 0)% r1 i* Z2 Z" \* r6 t4 O
(ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 1)2 m3 ~! R3 s. l3 Q; l( o) M
(mode_tile "ddvp_val_xyp" 2)
3 S# u% m7 |9 ]% j [ (set_tile "error" "Invalid angle from XY plane.")
, ]2 |" O; R3 j. k7 z )
! m* H3 ^# ^5 {0 Y1 [8 p$ n% C# U (done_dialog 1)2 e2 e c. g4 r7 n1 W! a
)$ Y& j* e2 [6 w% b# |; y
); E. s @: z5 }: P* n R1 F
)" d( G* T, {! U+ ?
/ t5 ~" u/ w. u3 T4 c+ S% {
(defun ai_ddvp_set_a (ang)! \3 V* y- m2 C. d! d
(setq ai_ddvp_a_curr ang)) m2 ]" E) e+ f' D! L
(if (or (> ang 90.0)3 O3 T; i% R, C r' A/ a
(< ang -90.0)3 f" f% @% S; F( j, ^6 X# p
(null ang)" [6 H: _& f: ^9 L9 S7 W, V/ {
). X' ~3 i. l/ H* e4 c
(progn8 \' \9 }) o w9 ^# |
(ai_ddvp_drx ai_ddvp_a_last ai_ddvp_ax 0)
{1 T' `2 A3 j) Y- W+ c" C1 | (ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 1)5 H6 [) W# n: k t, K
(set_tile "error" "Invalid angle from XY plane.")
: ?8 U7 z Z0 s F4 f% [* [, k )
+ P5 Y9 ~, R Q. s, x( b6 A g (progn' W$ v3 m7 i+ A: m
(set_tile "error" "")8 P T# ~+ y" d! N0 U
(ai_ddvp_drx ai_ddvp_a_last ai_ddvp_ax 0)) g- n" n* p# q6 {5 }* E
(setq ai_ddvp_a_last ai_ddvp_a_curr ai_ddvp_t T)! }2 h% p& y/ ~# X3 [
(set_tile "ddvp_val_xyp" (rtos ai_ddvp_a_curr 2 1))
. k0 r, i5 d9 {' o% _ (ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 1)
: h. [9 c/ R" L' V3 R* ]% f! [ (ai_ddvp_drx ai_ddvp_a_curr ai_ddvp_ax 7). `4 o3 f+ r4 K8 @
)6 Y5 o) b0 ?# t- K$ z y
)
4 Z" s* K1 |4 W' r! o* A)
5 {7 i; C! q- H) y9 a' x9 h, D. J1 Z' A6 I" G6 J, \; O
(defun ai_ddvp_set_b (ang)
0 T ^$ m. v- G! ]' X (setq ai_ddvp_b_curr ang)$ u' U7 L$ y& o" j& t/ O7 X3 Y
(if (or (>= ang 360.0)
8 c# i. C1 h. J# _ (< ang 0.0)
$ i& q! ~& G, v; D (null ang)
3 n0 A' c2 i1 f& _ ); X$ N8 l: Q! L! z
(progn# n& g; O7 b9 o6 m" V- L
(ai_ddvp_drx ai_ddvp_b_last ai_ddvp_bx 0); r0 G7 _1 ?# w5 l& P
(ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 1)
# g* A- Y5 A' ]/ g4 f (set_tile "error" "Invalid angle from X axis.")
/ I* Q# x; k. ]9 a ). y7 K3 X5 ^* `+ i
(progn
' j( z# t8 I# A4 A# r+ { (set_tile "error" "")8 B% K' i& p5 Y7 A. q) J
(ai_ddvp_drx ai_ddvp_b_last ai_ddvp_bx 0)
8 j" |8 h# V( g( f8 [ (if (= ang 360.0)/ |& K2 ]6 y/ q% c
(setq ai_ddvp_b_curr 0.0 ; I P0 P- N7 t1 e2 [
ai_ddvp_a_curr 90.0
+ ?' i0 Y; u9 N8 X ai_ddvp_p T
2 u( ?- l1 l& w# Y# _5 g9 Q ai_ddvp_b_last ai_ddvp_b_curr
) M& H! O; \8 U. y/ R9 v )( w0 V4 T( A, B/ r
(setq ai_ddvp_b_last ai_ddvp_b_curr ai_ddvp_t T)$ k7 x0 {1 f; j+ M4 ~
)
# T2 w; b& H. J: C (set_tile "ddvp_val_x" (rtos ai_ddvp_b_curr 2 1))
. V" a+ ^* d! ?9 H; t9 v8 G (ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 1)
* }& w7 b( `: Z9 L# ^4 y (ai_ddvp_drx ai_ddvp_b_curr ai_ddvp_bx 7)9 z1 p% U; c; f7 H* o
)
/ M6 ^& u6 `- W! n* W6 s- h6 U )
1 G( |7 \1 E# j) G3 [! M): v9 |$ b% t* }9 c0 K5 f! K y# V
4 j. f1 T/ ]* ]
(defun ai_ddvp_drx (ang x1 col / a x2 y2)" l9 n/ a0 W: P4 l; c
(setq a (polar (list 0.0 0.0)
$ }4 ^( E9 I' J1 X' U (- (* 2.0 pi) (ai_dtr ang)) 4 g: m; Z+ `1 K
25.04 T, J/ \/ F! z! E$ `
)& `) |5 z+ _. B" D
x2 (+ x1 (fix (car a))), P7 b1 V( A6 g
y2 (+ ai_ddvp_by (fix (cadr a)))1 S5 }, U9 I( `& @# v) I) ?
)
' c- z0 |+ w" H) e3 ?: b (start_image "ddvp_image")1 o# f4 J* d4 \. x8 X. }
(vector_image x1 ai_ddvp_by x2 y2 col)
+ v/ x. x( x8 U3 v5 a (end_image), b' i+ n! M% j0 R
)
- _6 ^! I! L8 J4 k( |4 g
/ N' i, t' m5 T3 i(defun ai_ddvp_image (x y / ang1 ang2 list_xy list_axby list_bxby)
. x( {% F% k; n (setq list_xy (list x y)
- N4 c: D1 M6 W3 o list_axby (list ai_ddvp_ax ai_ddvp_by)- \" H( @% n' W3 c) i4 ?, c
list_bxby (list ai_ddvp_bx ai_ddvp_by)" ], T6 q: Q3 [# [7 n3 K5 S# u
)
/ [/ N, ]( y; U) }- h (if (> x (- ai_ddvp_ax 1)). |" O. ]- g5 J% z3 I3 u
(progn
3 ?1 j; q3 w5 ?8 c' V: E (setq ang1 (ai_rtd (- (* 2.0 pi) (angle list_xy list_axby)))). C1 t* ?. o( P5 l) l8 N8 D1 P8 X9 {1 @
(if (< 90.0 ang1)- N% E2 P: S* _3 L3 G# m0 F* A
(setq ang1 (- ang1 180.0))+ j* A6 v& r$ e
)+ c+ p b: ]0 k7 w" s
(if (< (distance list_xy list_axby) 40)
; @6 C8 v3 e% ~- Z1 r (ai_ddvp_set_a ang1)
0 E3 X+ Z( S) W6 f4 {2 n" z5 x (if (< (distance list_xy list_axby) 84)
, {. w: `2 f' k9 f (cond ((= ang1 0.0), `+ Y: H3 A+ `) u+ P' q' d* |( {
(ai_ddvp_set_a 0.0)/ _% ]2 H. D6 ~1 y
)
% A4 B! ?- T2 N ((< ang1 -72.0)" l: C3 j }( x9 ~$ o# [/ `
(ai_ddvp_set_a -90.0); H$ {6 {2 p9 c/ p1 ~
)
" c6 G+ y% R: _7 L ((< ang1 -53.0)7 l( b! X4 c% c8 ?6 S
(ai_ddvp_set_a -60.0)
( e+ ^* s1 y: q* }% I6 A! u5 f )! F, x0 Z" Q& w4 c, p i; M
((< ang1 -38.0)- L+ ]0 Z. g9 l: T
(ai_ddvp_set_a -45.0)% H4 t1 g0 y6 C2 w& t/ G% h2 E
)
+ s+ L$ _# O5 }( j ((< ang1 -20.0)
! ` p5 ^8 J/ g' e8 H (ai_ddvp_set_a -30.0)
6 I7 p. A6 c: Z8 r8 l; }" K )
: d& v; d/ V+ m: e$ B2 ` ((< ang1 -6.0)1 r$ u" v4 N( B: D+ C6 x
(ai_ddvp_set_a -10.0)3 Q+ }; a$ j3 n) F8 ]( J `, |6 L
)
" D. i- n" r/ v0 i1 J# |1 q7 F+ h ((< ang1 6.0)
& f) H; Y9 i7 d; J (ai_ddvp_set_a 0.0)
2 C0 |4 A0 F2 k% K1 I5 u ): N+ L, P4 R* H* J& \7 U( T( ]
((< ang1 20.0)
/ J' m, V& ]. J" l9 x (ai_ddvp_set_a 10.0)
4 N$ ]6 f/ `6 Y3 P6 g )
7 G" I. `# \: B6 b ((< ang1 38.0)
7 k5 ]& S7 m7 ?0 A+ J/ N (ai_ddvp_set_a 30.0)
* g. N' z' H& L: H! X3 V )& R9 k: W% T% \
((< ang1 53.0)% r: e8 \( \9 |2 s
(ai_ddvp_set_a 45.0)# `* f( y+ P6 C7 X1 \' y
)* v$ n: I+ v5 S* ~( R" f1 k
((< ang1 72.0)9 k$ @0 u- V9 c( X, P% T+ |5 F
(ai_ddvp_set_a 60.0)9 V; i* |! X/ l$ ^2 @
)
1 f9 x) w( R: N' P, A (T" V7 M; C1 W2 p; P5 o+ E. v
(ai_ddvp_set_a 90.0)
& f! G8 l2 Q" F )
+ h/ q6 r9 n+ X% T )
$ K; ?) {! U3 I' r9 D7 S# D )* h" m2 |9 R4 k
)9 f& `( `5 }- `( A) V) ?3 h1 n
)
8 h7 {9 [7 A; J0 G1 v (progn7 ? C4 ]( {, }0 @; Z
(setq ang2 (ai_rtd (+ pi (- (* 2.0 pi) (angle list_xy list_bxby))))); o0 u; G& m( A+ e: y& z# x& Z
(if (< 360.0 ang2)/ r1 d6 E, S+ I3 P5 T
(setq ang2 (- ang2 360.0))
+ S7 [$ ?6 F: ~& a; X* _ )
- |8 a: p' B+ n& ]# V (if (< (distance list_xy list_bxby) 40)% l/ ^: j; p% J+ W$ f) P1 K; e
(ai_ddvp_set_b ang2)
! e9 i) h& H9 W# k (cond ((= ang2 0.0)
& N# n% M; `) f( K (ai_ddvp_set_b 0.0). _* z6 R& a+ H
)
' n% J4 ]9 U- P ((< ang2 22.5)4 I' Z/ W, I3 ^! C8 j6 j
(ai_ddvp_set_b 0.0)' u: `; W. M( o/ l
)
; y1 x1 W5 i# }; {6 |$ A2 W ((< ang2 67.5)- k* L2 P# W" ~. W
(ai_ddvp_set_b 45.0)
: q; t2 ?$ _: l, K+ F ` )$ J& c# x/ l; s0 Z- X
((< ang2 112.5)
( r: k% N$ n: @. k; C4 i9 s# k (ai_ddvp_set_b 90.0)
- U( S0 ^ n* K( V0 |! U )
5 q5 D0 M$ S! Y, n- p ((< ang2 157.5)
3 A/ C! S# ~9 d! {# k, a: R# k (ai_ddvp_set_b 135.0)
9 ]$ `+ R; B0 ^. \7 H9 U) i+ s5 m )* o4 s1 L0 I9 ~
((< ang2 202.5)1 Q5 @5 S! v& \1 P
(ai_ddvp_set_b 180.0)% p& i, a4 Q# b7 X( z/ w6 \5 ]
)" m/ [8 x& A# s3 j4 H& h; z; J
((< ang2 247.5)
& n' t* ]+ r& p; }% y (ai_ddvp_set_b 225.0)
1 U1 N L! f5 P5 L' q+ r )' @) A. {& T) K4 f. P
((< ang2 292.5)
( r; }, U8 e( \9 I, v* S (ai_ddvp_set_b 270.0): N7 f* L9 b5 E+ J7 a4 P
). z0 X# t7 R% X9 ~9 k& @
((< ang2 337.5)
0 x. Y2 h5 S) G9 E5 ~+ Y (ai_ddvp_set_b 315.0)
: Y$ u: Q# j$ r2 s# ~; j4 y! w )
" q' ]7 T2 \- b3 |! g" k1 H ((< ang2 360.0)0 p" |5 t/ q6 p6 i$ G# I7 L
(ai_ddvp_set_b 0.0)/ a4 p$ D$ F3 e/ g
)
2 b2 ^9 J# \* z3 @; ]! b( d9 V& F (T8 P. d5 X" T) @0 B) Q3 J( Q
(ai_ddvp_set_b 270.0) O( `4 M" }, J9 B8 ~; p# `
)! R. O* H3 J! V" k
)* L+ }8 n6 y, C" L
)
6 m% m G+ M7 F: i' J4 E )0 l; c+ x. R1 t; w
)- M# q; s" x" B, F
): Q; p! @6 a& ~, W
+ V5 B' I. Z4 P! b( ^4 z
(defun ai_ddvp_plan ()9 f& u7 Z6 l$ z8 R' K; T. ^# S
(ai_ddvp_set_a 90.0)3 V+ M& c6 i% y: q
(ai_ddvp_set_b 270.0)
% @4 k+ ^$ v& f- e5 Z0 l)4 M$ f* a1 _. S7 z
+ B, [* i I* o
(defun ai_ddvp_setvdir (a b)
7 P) @8 L) a2 d9 N5 o5 ^4 X (list (* (sin (ai_dtr (- 90.0 a))) (cos (ai_dtr b)))
~ L& ]$ e0 M (* (sin (ai_dtr (- 90.0 a))) (sin (ai_dtr b)))
/ G# g' A ^+ I2 ~2 ` (cos (ai_dtr (- 90.0 a)))
8 V u( E# W: t7 v$ d# Q+ F! K& s )/ m% x" i6 o) r) J
)9 p* ?8 M: G. X% G( L: _- `
. S' X, g' g0 {+ _- E, _- P' }8 v(defun ai_ddvp_set_abs ()+ d; ]8 K; t, ?) R
(setq ai_ddvp_wv 1)
" H S6 w4 {; t% N (ai_ddvp_drx ai_ddvp_b_curr ai_ddvp_bx 0)
* V. t, M' |5 |9 H; f: f (ai_ddvp_drx ai_ddvp_a_curr ai_ddvp_ax 0)! O* [4 [* _! P
(ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 0)1 W$ a. c& G! h7 H4 w) s
(ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 0), U6 U7 C& J2 `/ n/ s4 J7 d
(setq ai_ddvp_vdir_base (ai_ddvp_fixzero ai_ddvp_vdir_base))
. p8 y$ R+ p7 K% B (ai_ddvp_setang (trans ai_ddvp_vdir_base 1 0 T))# S4 o4 k$ _( N- s& y* @# r
(setq ai_ddvp_a_base ai_ddvp_a
; C/ v4 L0 H0 ]/ ]( j* q# K ai_ddvp_b_base ai_ddvp_b
! R( _1 N( s$ A+ [ [5 r1 r )
, x% f7 ~: a8 n; j8 `) V( ]$ [0 c; G4 i& O
(setq ai_ddvp_vdir_curr
, V; b- F- C1 [, V3 i (ai_ddvp_fixzero 2 n9 Z. d6 H& @( B) Y. \% m
(trans (ai_ddvp_setvdir ai_ddvp_a_curr ai_ddvp_b_curr) 1 0 T)
5 p' [: Z4 _0 T9 d, |1 @4 P4 T )
) p# m4 m8 h4 c4 @0 p( b )' g1 M- [9 Y) Y0 Z8 z
(ai_ddvp_setang ai_ddvp_vdir_curr)4 k: z4 u9 C1 m% L6 P/ s. P
(setq ai_ddvp_a_curr ai_ddvp_a% {5 d) s9 @& M& K( |
ai_ddvp_b_curr ai_ddvp_b
, r- k" U5 @1 p' b8 H* j )
7 k/ H+ F: G4 X/ C7 {+ o" T" z7 A4 M+ L- [) w2 [" B" F. g) q
(ai_ddvp_set_a ai_ddvp_a_curr)
/ E+ Y2 n7 x" W. Y( z (ai_ddvp_set_b ai_ddvp_b_curr)2 j9 ?" [$ ~* @$ _* O9 j$ U- } l# C% C
)$ _$ ]: e9 L: a, D, W6 ]
1 a% a- s6 N. ^5 C1 {
2 F. @( Z* _" c j, V1 F
(defun ai_ddvp_set_rel ()
2 ?& s$ k! M% [2 G7 T9 C6 K (setq ai_ddvp_wv 0)6 s: N- q# j% s6 D
(ai_ddvp_drx ai_ddvp_b_curr ai_ddvp_bx 0)( s( T% f, n* B6 \; ^/ m/ A
(ai_ddvp_drx ai_ddvp_a_curr ai_ddvp_ax 0)
9 t( f5 h; m) X$ N. h- z# I W (ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 0)" r/ M1 V4 T0 Q+ `7 \" b" R
(ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 0)! h: R% G3 ]+ u3 s
(setq ai_ddvp_vdir_base (ai_ddvp_fixzero ai_ddvp_vdir_base))) O5 n; T% i4 V5 m1 u
(ai_ddvp_setang ai_ddvp_vdir_base)
) F6 j u8 o+ h0 R6 I- l (setq ai_ddvp_a_base ai_ddvp_a
# P8 T; p5 s& T6 @) j8 d/ } ai_ddvp_b_base ai_ddvp_b
+ Y1 D8 f5 h! J! ~ )
% M. M% h$ V8 d# H# _" n1 \ (setq ai_ddvp_vdir_curr 9 e- Q0 D m. e t& \& T/ g) h
(ai_ddvp_fixzero
: s: Y. l7 i5 \ (trans (ai_ddvp_setvdir ai_ddvp_a_curr ai_ddvp_b_curr) 0 1 T)
& y% a; |& s! [0 g' g )$ L' X8 O8 b: Q6 g) [/ T
)8 j2 M# H7 b: r& p
(if ai_ddvp_init0 A% L6 b j& y( C
(setq ai_ddvp_vdir_curr (ai_ddvp_fixzero (trans ai_ddvp_vdir_curr 1 0 T))- U, B, Y9 x, c9 [- _0 A5 [
ai_ddvp_init nil+ G8 c g. o" }/ P' w) a
)4 m2 y! i1 g1 J: i
)" _( T4 j/ C4 { x& y
(ai_ddvp_setang ai_ddvp_vdir_curr)4 m( a* H# l m: X: m- V
(setq ai_ddvp_a_curr ai_ddvp_a
8 u0 E" h/ J; |% B ai_ddvp_b_curr ai_ddvp_b3 |( B! x" d& m E0 p& Z7 B% K, `% ?
)* y- J! B7 C1 i p9 _$ G& Z4 W
(ai_ddvp_set_a ai_ddvp_a_curr)6 I0 K" q0 g" `1 p- a9 R! ~
(ai_ddvp_set_b ai_ddvp_b_curr)# a- n# e+ D2 q( Z6 J9 Y$ S Z
)7 H5 m+ d) I! O' Y
: p w. \6 a2 l/ m0 T& {5 _. G1 N
(defun ai_ddvp_fixzero (vector / vector_x vector_y vector_z)
7 b2 a/ Y9 ^/ I2 x6 X! d (setq vector_x (car vector)8 J& G3 Y0 j u% ^0 O
vector_y (cadr vector)
% U4 l0 l9 z4 u) P0 S! R vector_z (caddr vector)! f$ } G. A2 A. F" r. v: ]' q# j1 d
)
$ Q( v7 s( X0 m( N5 Y* z$ C. B- c (if (equal vector_x 0.0 1e-06)& H% M, n1 b0 [& w5 Y: o
(setq vector_x 0.0)
: l' R9 l6 l" B. Z1 p$ i )
1 ^$ |- W1 D5 ]4 Z6 |0 }& j (if (equal vector_y 0.0 1e-06)4 A2 S) h0 l& C1 X
(setq vector_y 0.0)0 r7 Y& C6 [( d( d
)0 _- G9 U! A, l
(if (equal vector_z 0.0 1e-06)
( k6 w7 W. Z6 ^: b" F (setq vector_z 0.0)/ N, c# ~) o! R
)- `$ w4 ^; G5 i% f$ T4 o6 B3 A5 i. s
(list vector_x vector_y vector_z)
4 U# R6 h+ `; z3 ^8 p)
; g4 x% c$ T+ B2 [' s# @4 _ n/ @+ O. N- c5 p+ v
(defun ai_ddvp_setang (viewdir / viewdir_x viewdir_y viewdir_z ai_viewdir)
$ _" t6 N; \# o1 u: Q (setq ai_viewdir (ai_ddvp_fixzero viewdir); ]( H& M7 |) `* A Q' H
ai_ddvp_b (ai_rtd (angle ai_viewdir '(0.0 0.0))); Z4 p6 F, L0 K* `# ?
)
- `: d! d S& k0 ? (if (equal (list (car ai_viewdir) (cadr ai_viewdir)) '(0.0 0.0) 1e-06)
# G# \* N0 a1 O; M8 z (setq ai_ddvp_a 90.0); F3 \) h1 ~" u8 G* G- F/ f8 v( {
(setq ai_ddvp_a (ai_rtd (ai_ang3dv 4 A) X' ]7 `% D! R3 G6 t- g
ai_viewdir
2 n* U$ A- m4 l (list (car ai_viewdir) (cadr ai_viewdir) 0.0)# M1 @5 [+ b) D4 [% J
)+ z& V" D9 ^3 t- n4 g; G. }- a
)
@! H" E U4 ` )
3 z1 _$ r6 I2 u )/ l" L3 g6 g. M# C7 L& x
(if (< (caddr ai_viewdir) 0.0)
8 P- Z1 i; e8 x- X/ P (setq ai_ddvp_a (- 0.0 ai_ddvp_a))
/ u, i, c+ h5 g4 I, I/ z- q (setq ai_ddvp_a (abs ai_ddvp_a))" P/ l4 ^8 x3 @
)
% N4 l3 S# m! j7 y8 L$ ^, F% j (if (>= ai_ddvp_b 180.0)
: I4 ^$ M% q: P, U4 v% g% b& @ (setq ai_ddvp_b (- ai_ddvp_b 180.0))+ o2 F) P( U% O5 C0 G; l
(setq ai_ddvp_b (+ ai_ddvp_b 180.0))
2 R8 J; U3 p/ g5 P9 [. I( A )
, J2 m* v: Y6 W/ Z% H" u (if (or (= ai_ddvp_a 90.0) (= ai_ddvp_a -90.0))
# X* }9 q( u( a3 Y5 ^/ k (setq ai_ddvp_b 270.0)
9 z8 p9 J' r) H1 t C )) ~7 _4 k* h( S: ?. q3 O
)% z& H( K& g( }% m4 U: @1 `
% _' R& J6 y( X4 u5 z(defun ai_ddvp_main ()0 i. K4 ~4 C0 }
(ai_ddvp_start)8 l( M) K/ o- \. s
(ai_ddvp_setang ai_ddvp_vdir_base)
. c7 H, D; n5 E' z" \) o, } (setq ai_ddvp_a_base ai_ddvp_a. v' v1 {, l- I9 k, M O' N
ai_ddvp_b_base ai_ddvp_b( w. B. i" L+ |7 |8 ~2 T
ai_ddvp_vdir_curr (ai_ddvp_fixzero # Y( C7 y8 M1 E1 M3 K: U
(ai_ddvp_setvdir ai_ddvp_a_base ai_ddvp_b_base)7 V; }1 E, m4 l0 O
)4 F# v1 U( b) k# j2 @9 o0 \* w9 u* j& D
)/ ?# S. [7 y2 P* g; C- I
(ai_ddvp_setang ai_ddvp_vdir_curr)
* J: A7 E: ?1 _9 ~ (setq ai_ddvp_a_curr ai_ddvp_a6 D; e f7 y+ i X* H [2 M2 A$ F
ai_ddvp_a_last ai_ddvp_a_curr
- o" h) G; {% C$ C& C ai_ddvp_b_curr ai_ddvp_b* Q3 I" n- r0 q. f4 h" |
ai_ddvp_b_last ai_ddvp_b_curr
# F0 D5 r( _9 R" w ), F2 l. s# C# U' \7 E
(if (= 0 ai_ddvp_wv)
: @! _& b, n* U; j# L (progn$ _. p' g5 c$ o# O( j, M& @- E
(ai_ddvp_set_rel)
1 @' H. z( ?% T4 L. X6 v8 H" ?! n: z (set_tile "ddvp_rel_ucs" "1")
; w) ~+ j4 T% y$ @( b* i5 t )
" z4 F5 F- h; U (ai_ddvp_set_abs)
5 e, n$ Z8 D4 o6 K" h% g5 x0 k( ? )
/ C) y! _ s0 m& O- {. w2 d (setq ai_ddvp_t nil)
& P$ {0 o7 Y4 [7 X4 V$ e7 x' [* d! k/ y (set_tile "ddvp_val_x" (rtos ai_ddvp_b_curr 2 1))
4 {. M ~9 j6 t3 e: C( \) I+ U (set_tile "ddvp_val_xyp" (rtos ai_ddvp_a_curr 2 1))7 \* e$ T0 w8 c6 E9 K( t; }
(action_tile "ddvp_abs_wcs" "(ai_ddvp_set_abs)")5 E; P% A/ ~* t9 Q: \& p) g
(action_tile "ddvp_rel_ucs" "(ai_ddvp_set_rel)")
. R3 w: Z: R0 k+ R+ O H* e. K* d (action_tile "ddvp_image" "(ai_ddvp_image $x $y)")
3 w; T4 c7 w; O (action_tile "ddvp_val_x" "(ai_ddvp_set_b (distof $value))")# m$ _: T. t2 X; e( \0 Z
(action_tile "ddvp_val_xyp" "(ai_ddvp_set_a (distof $value))")" o! c7 H' Y$ q! T! w
(action_tile "ddvp_set_plan" "(ai_ddvp_plan)")1 Q& m; g9 j. P1 z& I" L1 D2 T
(action_tile "accept" "(ai_ddvp_do)"): c% Y U/ j6 E/ i5 r
(action_tile "cancel" "(done_dialog 0)")
9 A" K. G# \, | (action_tile "help" "(help \"\" \"viewpoint_presets_dialog\")")
; l- m. d- L! f1 t: P8 ? (if (= (start_dialog) 1)
. T3 Z/ q- l$ j, Y& T (if ai_ddvp_t
6 ^, r3 p. Y5 s# s9 h, E (progn
/ |5 w+ a' B7 }) V( z (command "._WORLDVIEW" ai_ddvp_wv)
+ P6 k0 I; S0 j( _5 x3 J (command "._VPOINT" "_R" $ f" q- u0 t$ K9 Z
(strcat "<<" (rtos ai_ddvp_b_curr 2))
7 \9 t, x) r* T- g T (strcat "<<" (rtos ai_ddvp_a_curr 2))# d' v, [3 b* H. X1 y* R$ ^
)
$ _# H c# z3 @+ i8 \ q$ I )! L' s p) k5 H: r. a. s N, v% u: Z
)
$ @+ w$ F0 q; N& M )
% z8 ? d u$ _6 m9 f2 p), N2 o( D3 n4 V( u7 F& @, f; L% K* V
# N; P$ t+ ~/ s. w4 L+ D7 o
(defun c:VP ( / ai_ddvp_wv ai_ddvp_vdir_base ai_ddvp_vdir_curr
4 F( u' t* P2 ~) t1 ^' x! p$ a2 R ai_ddvp_bx ai_ddvp_ax ai_ddvp_by ai_ddvp_a_curr- I# I5 ~$ K, U, C# `+ S) p
ai_ddvp_b_curr ai_ddvp_a_base ai_ddvp_b_base ai_ddvp_p9 t% }& S8 s4 b( `
ai_ddvp_t ai_ddvp_init ai_ddvp_a ai_ddvp_b9 P6 z+ K% H: L, E. Q3 s( @
ai_ddvp_a_last ai_ddvp_b_last' B; M1 h2 q3 W) B# X) q: r/ Y
app dcl_id old_cmd undo_init
$ _* e, J& e/ p6 d )- a- p' b' R* S
9 L, c7 \% x. Z% u; t ;; Set up error function.
% Y. U- h( f3 Y: a3 e8 N (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
+ @. z9 i8 g- C9 a/ J old_error *error* ; save current error function' E- C1 |/ u: o' p, d& \
*error* ai_error ; new error function) R! v" ?) K/ y8 w& W
)' b' i. O4 a( H/ y! i
& u& ^* o4 ?" W0 v7 l6 d" Z
(setvar "cmdecho" 0)1 d/ [) `( G$ [9 s7 q8 ] D6 s
_. p" v! F/ r& B* l (cond4 |' j ^5 e' l8 S
( (not (ai_notrans))) ; transparent not OK
4 [! B8 M, H" B& G X ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?7 C: `6 \* g- v% A5 Z; _& j/ u
( (not (setq dcl_id (ai_dcl "ddvpoint")))) ; is .DCL file loaded?
" I; W8 ~% c$ Q1 d (T (ai_undo_push)+ a; C: v4 ^! Q: E1 r5 E
(ddvpoint_main) ; proceed!
$ m6 C% @& Y% B# x8 z p: a( K (ai_undo_pop)$ o$ ]4 q9 q0 p
)
/ o) U+ m. h9 r' ?. Y9 I- Z )
" Q S4 L) \( a" o G6 K* c) Z/ ]+ B0 K4 u0 C9 r
(setq *error* old_error)
+ s- C* F3 Y5 I" K5 w) j (setvar "cmdecho" old_cmd)/ `' D* [8 ?/ ?5 g6 w) t% G" h m
(princ)0 @, q$ v0 u5 @6 `. C/ z, {. E
)3 K, s+ o2 O5 f7 N* R! i3 b
; B5 q& _% I9 r; ^# d
(defun ddvpoint_main()
: {6 u4 D/ A, _1 u1 A7 l$ Y& L/ F* g" X6 [
(if (and (= 0 (getvar "TILEMODE"))
6 ~* t% ~+ ^6 p) _1 ]7 ]: A E" s (= 1 (getvar "CVPORT")), G4 T4 O5 _ g/ R& z% l" H
)& b: ?$ k. s8 I) g( U5 q& L8 I
(princ "\n** Command not allowed in Paper space **")
. ] b" s& ?" S/ q- r* X+ e (progn
8 m3 X2 V) I5 ~) X5 @ (if (not (new_dialog "ddvpoint" dcl_id))
" B) N9 L6 l+ _/ ~: ?+ P: n (exit)
- s* q7 c9 B8 ^ )
+ o. |7 a. Z+ S$ B9 { (setq ai_ddvp_vdir_base (ai_ddvp_fixzero (getvar "VIEWDIR"))) ~4 u% J! Y x4 f2 p/ c) C
ai_ddvp_wv (getvar "WORLDVIEW")
$ G& ~2 L e' _6 \( W: Z) _ ai_ddvp_init T4 A; O4 A0 p/ Z" J ~2 U- e
)/ i+ j* E3 u1 G
(ai_ddvp_main)
; C; K5 C; \& i# n! T )
3 r& V: z' D5 q" n# @ )
' z$ Q' b: [# ^6 [): ]: F, D, V& u! v
/ F. J0 r5 Q0 e& }(princ " DDVPOINT loaded. ")
) [1 O. K2 ~ r% L2 \! Z2 s+ @(princ)& Q/ o* _) L% z( H8 S0 A" A) h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
% W# Q- e b/ F+ L;============================= Tran Ngoc Thang =================================. G4 q# [, d* B; R$ S
(defun c:zx () (command "zoom" ".5x"))
4 O& J$ _- s& k% ^6 L6 }(defun c:zz () (command "zoom" "p"))' R& `/ r! A) p' M% @3 X
(defun c:za () (command "zoom" "a"))
8 B' H- X. }4 Z( L, t(defun c:zd () (command "zoom" "d"))
5 q/ ?7 T8 i( U$ B+ b1 [5 M(defun c:ze () (command "zoom" "e"))3 _) c+ ?" H |, P4 a( I& B
(defun c:zr () (command "zoom" "" ""))
* E0 p2 A0 }) @. u4 r; V; `(defun c:vv () (command "ucs" "v"))( G8 @) z0 q" C, \
(defun c:co () (ssget) (command "copy" "p" "" "m"))
& N G. `' w" h1 S {2 F V5 M(defun c:c () (command "circle")): p' G& b4 }5 O! W& G4 H" M( o* v9 V
(defun c:rt () (command "rotate"))
( J6 Q8 u, P9 U* |; u# {(defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))4 C5 i( y0 f6 `, H' I
(defun c:30 () (ssget) (command "rotate" "p" "" pause "30")) l; j, c& ~6 l$ \! B
(defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))* J/ {! K# y/ f2 i. k$ y3 I
(defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))$ r8 W( {7 x$ T2 E% E6 u' C; R/ q
(defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
2 R }2 p# `6 k: n(defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
- y3 z; e) s6 ?$ x(defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))8 a/ ?% G. y; `3 }" a5 e5 c
(defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))9 ~& A: o2 V, T, [
(defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))) M0 B& F/ N$ e5 m0 V
(defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))5 m8 P! k9 o' [ F7 E- W
(defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))2 {6 w9 ?8 n2 I$ r9 _4 q
(defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
1 d, N. C2 r4 l& q(defun c:fd () (command "find" "p" "" )(princ))(princ)
2 F( d8 r, \# ]! W ~2 | m3 j7 L7 E6 ?$ a- E& W; o! V8 w
(defun c:VNI () (command "-style" "VNi-AUCHON" "VNI-vauchon" "225""1""0""n""n""n"))(princ): N. Y) K* c9 [& j
1 S, ~) l; u' A2 L* j- i! @(defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)0 P4 p- g! J, o H) ]
(defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)% D7 ?1 g6 M) _# r) {* O$ f
(defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)( G8 g0 U }. X# }9 M* P2 _
(defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ), j4 y' ?* C- k9 ]4 a
(defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))0 R( S0 c6 H0 J. R4 h
(defun c:chu () (command "-style" "CAMBRIA" "Cambria" "200""1""0""n""n"))$ P; n5 U0 }8 E3 L7 ^- _
(defun c:cot () (command "-style" "COTES" "Romand" """1""0""n""n"))$ m" c' S; @! g' E* T Y- K: Z
6 [. W8 | \1 ~$ B7 X* A
(defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))2 c: A" k- f7 A( u& k5 e9 [9 O" J
(defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
: W8 y m+ G1 }7 ]. v f9 t(defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))& B8 d( k# i4 K R) d5 \
(defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))
7 x* S5 ]) d, q& [0 d. ^( V(defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))( J0 S* y, T) U8 o
(defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
$ g) O) F' u: o9 Z/ Q7 Q" X/ \$ ?" F5 l1 k/ P' z$ f' a" G
(defun c:ps () (command " SOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file! b2 X6 s# V# R: |2 b
! J; {, H2 X2 e. J8 Y, E% m6 w) |7 C% E
;free lisp by cadviet,cd2k44. @% F6 G) E. B4 M5 B- Z
;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
; G& {% ~# ~4 v3 m3 \" t6 P(defun c:FTEXT (/ ent tstyle )! ~: K7 L% o; B2 Y B
(command "undo" "be")5 J2 q/ ^( L' z7 W
(setq ent (entsel "\n Pick text :"))/ a" `' @8 x7 e) D+ `: w3 s7 r
(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
+ W7 g0 A; w! {1 _. S(command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
7 \1 Z! e* [+ e5 S) g. w(setvar "TEXTSTYLE" Tstyle)+ R! R t7 \( d5 q8 V/ P9 C2 \( h
(command "undo" "end")
1 S4 p# Y5 R# a/ T- L/ o* T3 R); r( I' H: w l9 F% q
;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
/ `: [4 `" D1 O9 E7 h1 q4 J! r, E. B& g) V. R6 v% `
;free lisp by cadviet,cd2k44
# _( Q3 J& U$ U& j( a2 w/ w;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
& w" `. ~% J3 p) S# B p(defun c:Fvnh (/ ent tstyle ): v4 ]" U$ m9 c- _
(command "undo" "be")
/ j# U1 |1 |/ l; [ i$ f% r(setq ent (entsel "\n Pick text :")). m) A" ]6 A5 z7 H- o' \
(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
4 T! V0 Q9 z% d/ H9 F$ P- b(command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
5 I2 M# L& g3 e& U5 v) `% t2 m(setvar "TEXTSTYLE" Tstyle)' K, C9 U! ~$ T( s& y: _& @6 e3 g
(command "undo" "end")
/ z" k# ~9 h9 l. B7 c: G& t' z)
; F2 X+ Q6 m- o1 F3 W( h7 a
9 I; d+ h1 j% y( ?1 o0 n;free lisp by cadviet,cd2k44
; j3 b0 A/ f4 V* x;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
4 O- X6 V0 K8 q9 J(defun c:Chbg (/ ent tstyle )$ l* h0 W0 b2 A! [+ b' U( w
(command "undo" "be")6 T" m& m! Q9 L7 `) Y3 _. W$ O
(setq ent (entsel "\n Pick text :"))$ o# t+ `) F D, ]
(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))* D+ L( E+ A8 a
(command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")5 K8 N& u x/ B8 A
(setvar "TEXTSTYLE" Tstyle)
& u3 w9 {4 F' K/ u' ](command "undo" "end")
1 t$ R' w$ J( ^0 N" H6 Y3 d)6 o) S4 B* u& z! H( A- `
8 ~' @8 ~3 P4 c8 x- |;free lisp by cadviet,cd2k44
4 l: e) N+ {$ h# u, x0 m;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
4 G8 {* h/ a$ B; O( T(defun c:Chsm (/ ent tstyle )* A6 d7 w1 D# J; L5 r
(command "undo" "be")! i; l2 N ^/ V% g
(setq ent (entsel "\n Pick text :"))+ ?5 ?& f' y4 @! z+ V
(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
% ~, r' M, T) b$ [( Q/ A7 j& i(command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
1 g4 p9 Q' I" r) F7 x) o(setvar "TEXTSTYLE" Tstyle)! L1 m! @# G; D. t( f3 F/ E
(command "undo" "end")
9 @; T3 {1 G5 h; `) d% k)
U7 r i$ [9 f& K( ]( U) ~0 L8 ^$ X) E
;free lisp by cadviet,cd2k44
4 i: {$ _6 e/ { K) r# P1 y+ n;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538309 M& v" l) I! J6 |/ Y
(defun c:Fttf (/ ent tstyle ): K* v# L4 v8 Y- F# W
(command "undo" "be")
% _& A0 W5 K* D6 Y- z# u1 A(setq ent (entsel "\n Pick text :"))
6 x j3 N T3 Q. o! \) Q" ](setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
2 s" F6 F" ?$ |( O9 t, |4 |(command "STYLE" TSTYLE "Cambria.ttf" "0" "1" "0" "N" "N" "n")( a2 U! ^- L1 f# U
(setvar "TEXTSTYLE" Tstyle)0 U& Y% D1 e: Q8 Q6 J
(command "undo" "end")
3 Y# h3 ?" G" z9 D" B7 t)/ s( H) s4 _0 o. K; f# k
) P2 C9 a. N9 _( j& a( m# [# b- H
;;; ============================================
8 ?) }/ }- F: c9 r0 q+ J& R;;;: `1 E& _+ l' @4 D# e
;;; LISP Creater Tao Duong Dan AUTOCAD2000
7 S' C; ^2 p3 @% ~1 c2 [;;;* i) B5 G& }! ]/ h+ A
;;; ============================================
) |5 m! o3 { |, b- m
6 M; c/ H, H& a7 x3 k;;; ============================================
' X6 {" }' b+ q. n1 I/ x;;;9 X% @+ T9 H4 @" J5 V; R
;;; CREATING FROM AUTOCAD2000
4 t9 l5 |. H w& M3 L, Q, N;;; Tran Ngoc Thang - Sinh 03-05-1976
* `8 V% @$ J$ O1 `0 g8 e;;; ============================================
2 b6 S9 x. i. U0 J$ p, M u. F' o( [/ I# c
(setvar "MEASUREMENT"1);Bien So SCALE Cua BHATCH
7 P4 f- T5 p _. R4 x$ l;(setvar "DYNMODE"2);Bien So An Hien COMMAND LINE( r+ J5 S: ?0 V8 x K* M' u
;(setvar "VTENABLE"0);VTOPTIONS Enable Animation for Pan and Zoom
L- K, q/ U6 ~' l6 T3 s(setvar "INSUNITS"4)
; H% E$ s" ?7 Q( x; Z5 W6 ](setvar "ANGBASE"0)
" y, m2 j/ D. r: O$ |6 q/ ^. ~% L(setvar "ANGDIR"0)
! U3 c0 r; U8 T" j9 u; I f(setvar "AUNITS"0)
/ d! q6 o: [5 q3 d0 ?0 y7 _0 X7 @2 A' v(setvar "AUPREC"8)6 I6 z u0 {- M) E E) m' n' J
(setvar "LUNITS"2)
[. _( |3 P# i9 s2 p9 L& V(setvar "LUPREC"8)
2 p/ v u" K: W. ?0 ?% q(setvar "ACADLSPASDOC"1)
# v1 Y K! C3 g R7 x6 i(setvar "pickbox"5)( {4 P$ o3 X2 {" ^0 K. ~8 e: {( B
(setvar "blipmode"0)- R5 d( w* }) W. t" s
(setvar "mirrtext"0)
7 r7 d" A s: t! [+ S(setvar "cursorsize"100)
. V, F6 I- q) E- h8 y(setvar "ZOOMFACTOR"75)
1 F! `+ i$ j6 {! B$ a(setvar "LTSCALE" 10)
. v! @2 Y9 i5 t9 w/ a. r(setvar "lwunits"1)/ ~7 Z2 d% ^/ ?( ^! G6 z
(setvar "DIMBLK" "Closed")2 h0 w2 s- ], U' N9 L
(setvar "DIMGAP"0.0693)4 X$ y" S( A2 x j' k0 u
(setvar "DIMASZ"0.20)- X: ?3 Q4 q- L# J i7 v
(setvar "DIMCEN"0.2)! b9 ~& f6 x" ~+ c
(setvar "DIMDLI"0.1)* K' }8 J/ [$ u) ^
(setvar "DIMEXE"0.0693)
5 j6 y1 d; ?" ?: s3 O& _/ G(setvar "DIMEXO"0.25)' y0 j- e5 V( s# U9 `: f
(setvar "DIMDEC"0)$ M9 g8 u. K! z
(setvar "DIMTIX" 1)
# X% Q* G( {# V(setvar "DIMTXT" 0.099)
# D& a& S8 o. O; H' E& D(setvar "DIMCLRT" 7)1 T# O" }8 X: U2 J4 w
(setvar "DIMTVP" 1) \" \+ E! K' B% `9 ^
(setvar "DIMJUST" 0)' @$ c6 o3 ]( P4 `4 f
(setvar "DIMTIH" 0)
: e! X ^$ b8 K. S! B6 A(setvar "DIMTOFL" 1)
# O! C5 W) B' c3 d4 ~4 a(setvar "DIMSCALE" 1111.1111)
0 w; p# A1 _: x% x7 |: o% X
a8 L0 t7 ` P% x) X) S. u: m9 l* C: Z; c
- O" F% c* X( N& y
(defun c:zp () (command "'.zoom" "p"))$ f. O! k) z2 ~- \! R+ \
(defun c:zz () (command "'.zoom" "p"))0 `& E1 ?8 e9 D q& i- z
(defun c:ze () (command "'.zoom" "e"))
& W3 }( {0 d1 J+ M: J(defun c:za () (command "'.zoom" "a"))/ q! ^4 n9 h8 \5 S
(defun c:zd () (command "'.zoom" "d"))5 u( r" ]& N$ r* S
(DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
" _0 K- B" a5 P- C4 s" D2 C(DEFUN C:ZX () (COMMAND "ZOOM" "2X")): d0 G0 f" V X/ B( h1 Y+ x
(defun c:de () (command "ddedit")(princ))$ W; |2 @2 i) A5 C% e% T1 s* `
(defun c:dda () (command "Dimaligned"))
& e0 e9 y9 U) \% @(defun c:ddb () (command "Dimabaseline"))
$ o. w6 }, \( A1 `6 B(defun c:ddc () (command "Dimcontinue"))
! T5 V- z0 |, M( z1 a- m" q(defun c:dde () (command "Dimtedit"))( a& m) p5 d4 W( P7 t
(defun c:ddf () (command "Ddattdef"))# J0 E- z5 H- x) {; `
(defun c:ddi () (command "Dimdiameter"))0 P) F% [1 B @& q
(defun c:ddl () (command "Dimlinear"))% \/ Q( s7 q( y3 G5 A8 n5 V
(defun c:ddn () (command "Dimangular")). O( X" x* H0 b9 v6 Q, z
(defun c:ddo () (command "Dimordinate"))
7 Z; h" W# A# H5 L(defun c:ddr () (command "Dimradius"))
$ c' U& Y0 Y) {(defun c:dds () (command "Dimstyle")) Z1 P2 l( O" \( c# Y9 G
% ]+ k) E u' q$ k- y1 C% y
(defun c U () (command "dim1" "up" "select" "exit" pause ))(princ)
# S% l8 z$ C9 m9 {(defun c H () (command "Dim1" "home" "select" "exit" pause))(princ)
, P4 m& X( D9 |5 T3 z. a(defun c:UU () (command "dim1""update""all"))8 w6 y4 D. q+ ]
(defun c:ded() (command "dim1""tedit"))
, h; I. g2 S. F, n(defun c:da () (command "dim1""ali"))2 o/ y. R; s# c6 t3 v/ F
(defun c:dll() (command "dim1""l"))
9 v: j( ], z% a% u. n0 f3 w(defun c:dan() (command "dim1""an"))* B( V" N! \5 a, C S+ \
(defun c:d1 () (command "dim1""ra"))
: c6 {7 l3 x5 C(defun c:n () (command "dim1""new"))
% X. Q) ^& G: f$ v; I
' m' {2 _* f6 ?2 x) {(DEFUN C E () (COMMAND " EDIT"))
+ b4 h j6 \( ^7 ?7 O7 |4 k(DEFUN C L () (COMMAND " LINE"))
( }7 y; x9 `; @. Y(defun c:dd () (command "dist")(princ))
1 {; ?& T0 Z- u; x9 X+ Y% Q/ Q, p# ?(defun c:w () (command "pedit" pause "w" "au")(princ))$ C$ T: T! `! f
(defun c:pg () (command "polygon" "polygon"))
# q4 U: e- b- s* Q! v(defun c:el () (command "ellipse"))6 J* ~9 T8 ?4 x0 d8 }/ Q" \
(defun c:xe () (command "explode"))6 b) y0 ~" z2 \6 N, H5 R0 m
(defun c:eex () (command "extrude"))
% b2 U. V# C& ^3 f1 ]4 W' |8 Z* B/ ~(defun c:xg () (command "xline""a"))
8 F j/ o% o+ v2 X- {, M(defun c:xh () (command "xline""h"))& c1 ?$ }! M% a, Y
(defun c:xv () (command "xline""v")): M% m! v4 q4 I7 t
% \4 d( n; z: b" g$ T
(defun c c () (command "osnap""cen"))' R6 R2 w& S" D; L, I4 n! m3 W% t
(defun c d () (command "osnap""nod"))
, i6 W$ F1 V' z$ ~$ W" O(defun c e () (command "osnap""end"))
2 i5 K/ q6 W) M9 n w3 Y4 W(defun c i () (command "osnap""int"))
1 I$ J2 b3 b1 ?5 k& k% f% g(defun c r () (command "osnap""per"))+ j {' O' e! t2 f8 _
(defun c n () (command "osnap""none"))
$ q. @& P% }/ N, |* S, K8 p/ l7 n(defun c q () (command "osnap""qua"))
7 E6 t4 z% e5 R: u0 Y& k# O) q- u(defun c m () (command "osnap""mid"))$ t+ i1 Q l8 h2 h6 c
(defun c t () (command "osnap""tan"))
" d4 }& B' z7 J(defun c in () (command "osnap""ins"))
# q& q& ]1 L% j; o(defun c:oa () (command "osnap""nea"))
. ` k3 q1 Q1 U% m; D(defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
+ _) V" |" z# ^* b# g, ]2 g;(defun c:du () (command "dim1" "up" "s" "pick" "other"))1 m5 B/ r* f3 M' V3 H
;(defun c:nn () (command "new" "y" ))
7 y A7 k/ I# _9 q
% s9 T% D7 M9 W+ }8 G(defun c:/ () (command "limits"))& @# L9 b) b% X& d+ h
(defun c:`1 () (command "region"))2 w& R+ ?7 Y ?+ E
(defun c:`2 () (command "subtract")): S) \. \- `+ u, ~# `
(defun c:`3 () (command "union"))8 U) c4 D0 E& E
(defun c:`4 () (command "intersect"))5 e5 C/ j6 j' I4 Y3 U; F* G
(defun c:`c () (command "cal"))5 n) q8 t- U w- e9 b8 ~7 c8 z' s$ k
(defun c:`g () (command " olygon"))
2 `' B- u* F& i
. ]9 h5 y3 q1 ^4 [* A: |# @4 `(defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))) H, v* h; T& n$ Q4 b! [* w
(defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
" }$ o! x9 x' {, p L0 s0 h(defun c:ip () (ssget) (command "print,_plot" ))(princ)
. `% o7 C8 S1 @$ A3 u, E+ L5 J: ?' R$ E# o" e& d+ Z
(defun c:ddm () (command "ddlmodes" pause))) K8 ~! B& K) H1 N; J9 k. D" N, v
; B$ ^' }; P. c: C2 m(defun c:sha () (command "shade" pause))
% Q( k/ ~/ L) E" J4 z9 i6 u9 i3 z U2 G# p, M$ d j
(defun c:sr1 () (command "surftab1" "p" "" pause))
' E. k! G5 E# _, O! d(defun c:sr2 () (command "surftab2" "p" "" pause)): y1 Q( K, y7 h2 v! v2 @& I
: ]; {4 \9 p4 G, I
(defun c:ad () (command "audit""y"))
* F+ }$ A( g5 p2 U4 g2 `(defun c:q () (command "quit"))
3 f4 V. ~) Z5 y1 d5 Q9 w
/ ~* p5 r2 p' A+ _. }, L(defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))' [: a9 u' j: I# i3 {4 ]1 B) R
(defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
K% q' H- E* d$ c T2 `: n(defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))5 x8 D$ [$ d3 R) e. K# \
(defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))- O: V/ H" r# a4 c" j
(defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
$ A* S" X, H/ a( b) F; K0 Y(defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))! K! I/ I; J9 |0 q0 J
(defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))# Q0 @) C6 v6 J* ]! P- A
(defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
* k1 s- f y$ C( C( n(defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
5 [$ u8 k0 D7 a' t* R
; {, z4 N8 G# }(defun c:u3 () (command "ucs""3"))
% x% s8 {! M; Y3 Y H* [7 L(defun c:ue () (command "ucs""o""end"))
. O* L9 }& y( d- R(defun c:ui () (command "ucs""o""int"))
- }. d4 i* X k' o(defun c:um () (command "ucs""o""mid"))
1 m' Y+ R7 Z5 r3 A& U(defun c:uc () (command "ucs""o""cen"))! M9 \! @) D- v+ ?! M1 N
(defun c:uq () (command "ucs""o""qua")). p" h) y9 j9 b i# O
(defun c:3s () (command "ucs""3"))5 X$ o3 X3 E1 x2 n _: p" d$ t# K0 S
(defun c:sx () (command "ucs""s"))
$ U* e% q; D5 H' ]' b% c0 _(defun c:sf () (command "ucs""o"))
0 @& u8 J' `1 c6 Y(defun c:sz () (command "ucs""p"))/ _: _4 d- v6 b+ Y2 k
(defun c:sr () (command "ucs""r"))
7 i# H; i4 _0 f2 P/ ?& v(defun c:sw () (command "ucs""w"))/ E( d# S: R% |3 g
(defun c:fv () (command "ucs""v")). d: p. y3 ^8 Q7 @
(defun c:ux () (command "ucs""x"))
0 U) J Z" d ^(defun c:uux () (command "ucs""x""90"))
3 `' ~* g' s( F+ n3 T(defun c:xxu () (command "ucs""x""-90")); X' ?( i, d/ f \
(defun c:uy () (command "ucs""y"))
3 z" P5 W9 K- y u(defun c:uuy () (command "ucs""y""90"))4 A8 v5 ~9 s7 {- ~. O; L7 a2 Q1 f
(defun c:yyu () (command "ucs""y""-90"))
0 O4 N& R. x( d* z! `( [: d(defun c:uz () (command "ucs""z"))
! F' ~/ G; C e. v(defun c:uuz () (command "ucs""z""90"))
3 J, } A& B0 y$ l(defun c:zzu () (command "ucs""z""-90"))
' X5 @5 ~5 z7 ?- `( o& D% \+ n(defun c:uci () (command "ucsicon" " roperties" ))(princ)
, ~- K% U' I' a* K(defun c:ucm () (command "ucsman" ))(princ)) p) |5 d `+ I. ?
' T5 V( M" g4 }2 Q9 r, f
(defun c:sa () (command "vpoint""_non""-1,-1,1"))
( \1 X# L7 p `# ~, @* I+ d(defun c:sd () (command "vpoint""_non""1,-1,1"))
( i2 ?& z& L( e" W(defun c:se () (command "vpoint""_non""1,1,1"))
0 O$ Y6 [% L: A. p; `' @(defun c:sq () (command "vpoint""_non""-1,1,1"))
) ^% F- x- N) F b. d(defun c:vc () (command "plan"""))% g( s; y2 P B/ `! P
(defun c:vd () (command "dview""all"))! N8 e) c; Z; ]" O m) B, U5 v- d
; m, H' x0 [9 t! G( V* k
(defun c:TT0 () (command "tilemode""0"))# Z, ?& C4 [( g5 `+ V; `, i/ m0 b
(defun c:TT1 () (command "tilemode""1"))
+ H5 c! i6 U9 y1 b
1 Q f& A8 ?. h6 m) |(defun c:vt () (command "vpoint""_non""0,0,1"))
4 Y2 m1 q" c$ Z- [3 b% a4 S4 @(defun c:vb () (command "vpoint""_non""0,0,-1"))5 Q+ i* s4 \# \% t8 W. e
(defun c:vl () (command "vpoint""_non""-1,0,0"))
- H8 E& I- }: [(defun c:vr () (command "vpoint""_non""1,0,0"))9 f1 P5 B4 j8 G# ~* S, o
(defun c:vf () (command "vpoint""_non""0,-1,0"))4 D! I/ f9 j5 j: [. T/ K9 O
(defun c:vk () (command "vpoint""_non""0,1,0"))
! n- K* ^. e$ ^5 l5 L$ R' W g
- }# c" x# H. x' [(DEFUN C:MM () (COMMAND "MIRROR"))0 G1 M4 g6 s' B# j3 E
(DEFUN C:MP () (COMMAND "MOVE" " "))# r: O# T: m/ D
) a4 v: E3 V8 S6 _/ m(defun c:mee (/ a)
' i; I% H( N# R (setq a (ssget))(command "move"a"""end"pause"end"))
* u1 x; @7 g7 t0 v: _; O(defun c:mc (/ a), ~# u1 W; w! T: M: U
(setq a (ssget))(command "move"a"""cen"pause"cen")); k4 [0 q3 V1 l2 ]* i8 j
(defun c:cc (/ a)
+ z) J/ c7 o2 O; \* { (setq a (ssget))(command "copy"a"""m"))! U8 O5 P3 X) f! N& o4 @, u1 i
(defun c:ce (/ a)
9 K3 ^0 v9 b* P; A9 k (setq a (ssget))(command "copy"a"""m""end"pause"end"))
& J- E0 C# S: U. c! ](defun c:cn (/ a). `+ u7 o% v8 G9 i
(setq a (ssget))(command "copy"a"""m""cen"pause"cen"))3 B/ ~5 c* J# a; Z( E
(defun c:tl ()(command "trim""l"""))2 g/ R3 d) ?0 H* T P0 v
(defun c:tf (/ a)
) e+ x2 G! T8 c+ Q9 h/ t/ \0 g (setq a (ssget))(command "trim"a"""f"))' `: o7 `2 U4 T5 x( z2 w
(defun c:el ()(command "extend""l"""))# {6 i% k& Y" [8 Z* \% w5 R
(defun c:ef (/ a)
4 x, P5 e3 s! }/ } (setq a (ssget))(command "extend"a"""f"))
* H0 L1 a) y( f; \, ]4 x8 u
5 ~9 j: S" v1 t0 r9 d- X
7 l! `% @# m% N, v(DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
$ k7 V* ~0 W$ F5 a(DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
$ J+ ]4 m* [: T0 o0 K' \* S: h(DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
, q- ^/ X, Q1 v, n0 H: v$ G(DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
' _5 B% ]8 e/ I" }% |( F5 b" v+ b(DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
. K' q5 P# S: P& }7 O(DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600")); y6 P; j3 p/ ]) n J9 ~- A% X
(DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))+ [9 I+ n9 h9 J2 S+ ~3 U" ^
(DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))9 S5 o( l( O$ D/ i/ g) f$ z& O' _
(DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
, j/ R H$ T! r+ S X(DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
1 Y0 m5 [9 [: A! X(DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
, `" m* c8 J8 h0 Z) \(DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
7 W* n. D- \+ d6 q3 x(DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))/ Y* S1 }5 ]6 `
(DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))5 w0 J& c9 G0 i7 o
(DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
# O6 P8 ^! R8 n(DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
7 y9 p8 c5 d: V% Z* W! s' h(DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))0 w5 u! O Z- T) {0 N+ i
: k/ ~' W+ x5 W3 F7 t(defun c:mla () (command "-mledit""av"))' c/ c$ D% d1 G
(defun c:mlc () (command "-mledit""mc"))' U' F7 o4 c$ N+ k) C C
(defun c:mld () (command "-mledit""dv"))" [9 ?3 _! R" C- G' R* Z& `1 E% I J
(defun c:mle () (command "mline""end"pause"end"))
^/ w: @. B* s& R(defun c:mli () (command "-mledit""ca""int"pause"int"))- X3 @. J! a' ?7 {( m2 r5 g" K0 ]$ v
(defun c:mlj () (command "-mledit""cj")): f' l$ X; o0 R5 b8 k0 ]5 a
(defun c:mlt () (command "-mledit""mt"))$ [7 r0 z+ e/ @, ?$ u; w$ x% L. }, G
(defun c:mlk () (command "-mledit""ca""end"pause"end"))
+ ]+ G! ]$ e( S8 r(defun c:mlw () (command "-mledit""wa")) R V, N/ w0 C8 ^2 _8 D- {
$ H' @& v$ L, U1 b# y& F(DEFUN C CA () (COMMAND "DVIEW" "all" "" "CA"))9 _7 M" J. K+ b! Z! u
(DEFUN C PA () (COMMAND "DVIEW" "all" "" " A"))
, H% |% j/ x5 d8 a" Y _(DEFUN C PO () (COMMAND "DVIEW" "all" "" " O"))
) X: t- i `0 g7 |(DEFUN C DD () (COMMAND "DVIEW" "all" "" "D"))- ^/ A6 D3 F5 K, {4 h/ V
(DEFUN C Z () (COMMAND "DVIEW" "all" "" "Z"))+ U0 }# T6 K6 l. |; E/ s' H
2 c* ^3 j, G( S4 I" ?(defun c:p0 () (command "pline""""w""0""0"))
/ @1 P6 x3 _2 N0 R- q# K# R(defun c:ot () (command "offset""t"))
9 a: E1 t$ W0 D4 K(defun c:t () (command "mtext"pause"j""bl""h"pause))- f/ G# W; r- Q+ K/ p1 X
(defun c:uo () (command "ucs""ob"pause))
4 L' K, u0 r; N- {7 y(defun c:f0 () (command "fillet""r""0"))
& X3 P$ c) c* a% h" p& Y(defun c:fr () (command "fillet""r"))
6 @& z5 r9 Z4 l9 |$ Q: M; j% X1 Q% r; V: Z) M+ K0 I. ^9 l
;CHAMFER4 Z6 y2 {9 o# x3 @+ F# V
(defun c:cf () (command "chamfer"))6 E$ O ^! e! A9 y
(defun c:cfd () (command "chamfer" "d")) Z* w9 I, [- u4 L1 b2 f+ L, T
(defun c:cf0 () (command "chamfer" "d" "0" ""))
/ O+ h: M1 y0 P9 k# S! S# ^+ s) i9 u Z% @9 N& I8 M; z3 Z: V2 v" g5 V; w
;FILLET3 P3 d- l4 |0 o& H/ A7 Z- {
(defun c:f () (command "fillet"))6 u7 w* R3 R" Y" z
(defun c:fr () (command "fillet" "r"))
5 |+ k; `* U& H' T7 S ?(defun c:f0 () (command "fillet" "r" "0")). G3 F( L/ w3 N% J; D# V
$ U5 H) g* T8 l1 o(defun c:OO () (command "oops"))# L* f/ L) ?4 u$ V/ o% E8 I- O
(defun c:dln () (command "dimlinear"))
! g9 D; G! G; V& q(defun c:dan () (command "dimaligned"))9 x! ^8 f) ^6 L/ D
(defun c:ddc () (command "dimcontinue"))& K7 Q% l) V: |$ t) U
- [( D/ N; C. b& g! W5 ?(defun c:sc () (command "scale" "auto"))8 q9 O7 P( F5 h) z
(DEFUN C:XO () (COMMAND "snapang"))% |5 J/ o0 ?; V8 h9 f
(defun c:cc (/ a). p. p& }4 O4 ?# ~
(setq a (ssget))(command "copy"a"""m"))- H2 D+ }0 e8 C8 n+ n
# y5 {' w, ]- Y" q4 D) [$ P; m
(defun c J (/ a)1 u k: o9 r0 t0 O! O1 V) \0 P
(setq a (ssget))(command "pedit"a"""j""all""y"))' ~5 X; U; G6 t8 E6 I9 i+ f4 G
(defun c:JJ (/ a)5 X( Y/ g( }7 I
(setq a (ssget))(command "pedit"a"""j""y")) c. j2 x' m0 W& J2 G! A9 g; ]. {$ H
(defun c:TN (/ a)
3 A' p4 @& Z+ n; v$ L' r$ j2 c (setq a (ssget))(command "change"a"""p""T"))
; t4 V7 t4 M! e9 ?4 G- m. K8 _
; z9 C: ?, j9 d& K1 _7 S1 R5 c
+ K1 ?! g! l8 ^8 O6 K;================== Tran Ngoc Thang - Sinh 03-05-1976 - Suu Tam - Tu nam 2000 - Hoc nam cuoi KTS . DHXD ====================
9 `$ b- }9 n* ?8 \; A9 {
" z/ K6 N8 u4 n- u# _ E7 U4 d2 C; Y(defun C:IB ()(setvar"cmdecho"1)
# P1 L& T! R ]5 w (setq pt(cadr(entsel"\nSelect Block:")))" g, e' w+ A3 m) s& U; H# d0 j$ w; n
(setq e1(ssget pt)) : t1 S! T$ [' z% T# s9 u
(setq e2 (entget (ssname e1 0)))
+ j+ w3 A% x1 w" c (setq blname (cdr(assoc 2 e2)))( o+ o( p5 Y' ]. i
(setq oer *error* *error* err2)(command ".insert" blname))
' h: x8 \ E* i! `: i% }
# \, x; B; {, c; F+ e! w. i* B! P(defun c:II ()
% X- J9 F2 u3 W7 [5 ]" |% m (setvar "cmdecho" 0): `: U; ~, e+ a& e0 Q
(setq olderr *error* *error* myerror)
4 d- l! s8 k! P% R: v5 h (prompt "\nSelect objects: ")
2 B# [4 [2 G. Y2 I- }& O7 I (command "select" "au" pause)
5 s- \+ }. g; f, a5 t (setq sstxt (ssget "p")6 f" Y4 B+ }: q# T# i) o
sslen (sslength sstxt)+ e4 x1 `% c; H- D7 U
ctr 0
7 P$ a; |0 E$ s% I+ y )! e( S6 c. B: q' c
(command ".undo" "mark")2 H3 v% l- w# t% G
(while (< ctr sslen)
& a$ T9 i8 F/ ^+ p6 h5 g. M x9 \ (setq listxt (entget (ssname sstxt ctr))
5 G4 } T2 u- T& H3 i# ]" S txttxt (cdr (assoc 1 listxt))1 C) d+ A: a2 K% d; i2 S
enttxt (cdr (assoc 0 listxt))
6 Z: Z' @. t" j* n. O2 A. v3 [ )# K2 F# O5 s8 m; v5 l: v/ Z$ }; C0 X
(if (= enttxt "TEXT")
% I2 w4 F2 Q: [2 f5 \1 p- P' r (progn
. A! [3 }& d& n( a, H (setq testxt (substr txttxt 1 3))
% q" Z6 ^, k s# v+ D (if (or (= testxt "%%C") (= testxt "%%C"))
, I; r$ ~- V# j (setq newtxt (substr txttxt 4))
- h9 R6 Z( Q7 G8 ]5 [+ P2 X( ] (setq newtxt (strcat "%%C" txttxt))
. ]& h* P% {( l& N& K/ ] )
' Y1 |! a1 r z# C/ |8 s4 r (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)). ~" D" G a& k3 S' n, Z
(entmod listxt)
! ?) a% \7 j8 i9 M )
( }! U+ g* o/ [( P* F5 b )
0 |# r5 x% z) `1 V (setq ctr (1+ ctr)); W: k; k/ K, V6 @$ A. o7 e
)! S( M0 {) y; S. ?
(setq *error* olderr): f4 ?- I- Q5 D
(setvar "cmdecho" 1)2 @" d$ _% P1 n5 n7 b/ K
(princ)
6 w2 P- R+ {3 A)
8 ^1 K7 N# Q6 L
' f0 H l9 k/ ]& S- I(defun c G (): r: o3 p0 b0 s/ N
(setvar "cmdecho" 0)3 X9 g/ u s/ |" |' M# R6 c
(setq olderr *error* *error* myerror)
4 C; h2 D6 [% ?3 W" { (prompt "\nSelect objects: ")
S& o6 I5 Z. r& X1 J (command "select" "au" pause)
. M) u0 H/ `9 H5 W3 @) U/ S7 Y (setq sstxt (ssget "p")
$ E/ l5 ]- ~) F; {4 f+ j9 a sslen (sslength sstxt)
( |* v! ]7 k0 h* ?! G/ g ctr 0& w t5 G2 b, W
)
# \, J7 j3 Z5 U& l& q8 E (command ".undo" "mark")0 }7 s* s# f8 E6 u B
(while (< ctr sslen)
, {# f' A% `4 l: \3 v# O (setq listxt (entget (ssname sstxt ctr))
+ }4 u, i) F- c5 m4 `" r4 _ txttxt (cdr (assoc 1 listxt))
1 {% n6 S% }, s, z" h8 u enttxt (cdr (assoc 0 listxt))! g; m* `$ D$ E/ O
)
$ B$ O4 Y8 v4 L: W9 V9 S1 ?9 u (if (= enttxt "TEXT")
+ p) N8 B9 O6 P0 M (progn4 P H. b* w4 X; O* V7 |+ Q2 ~
(setq testxt (substr txttxt 1 3))
5 b, X# X# H2 @. q (if (or (= testxt "%%d") (= testxt "%%d"))9 q7 W& o- _# G4 Y- M3 `2 p
(setq newtxt (substr txttxt 4))* m, D D! ^7 c6 `5 r7 @6 A
(setq newtxt (strcat txttxt "%%dC" ))" M6 C4 E8 ~$ w5 I
)
4 m; ?; L& `: T (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))! M. ?" |8 |2 M+ [; ~" i% e `$ W
(entmod listxt)
+ s5 L! B2 K) y2 I5 A c )- y' S3 S, d+ u5 I: ~9 A
)
4 y5 b) O) j/ W+ q3 s6 o' M: } (setq ctr (1+ ctr))
2 u' F7 p0 z5 t! z* ~$ g+ r )
; O N& D. Y5 l$ U (setq *error* olderr)
+ s* z# a6 _' G5 F9 x" M" k (setvar "cmdecho" 1)
# f$ x' s: }# N (princ)
/ F K" w* @( _/ q)5 ]8 F ^. ?- p3 W, ]
. n+ ` h2 t3 U# C# e! R) q
(defun c I ()1 t$ U& O: O. R% {. h c3 M# M! j. n
(setvar "cmdecho" 0)
b' e8 H" v+ n6 _/ P: p ~0 G (setq olderr *error* *error* myerror)
8 ]6 p1 x u/ F1 D6 v% } (prompt "\nSelect objects: ")& A$ d+ M. d+ z* L s( O- C$ o& C
(command "select" "au" pause)% W. Z# O& [" h! d5 N
(setq sstxt (ssget "p")6 ]3 Y( s2 h- K
sslen (sslength sstxt)
' t4 C+ E: i2 f ctr 0
% R0 m( b7 c) S" `) } )- u. Y( Z& c; d
(command ".undo" "mark")! t, d6 o: i7 w$ \+ J' m
(while (< ctr sslen)
2 u; h; \2 l- P: o" h6 b6 `: Z2 Y (setq listxt (entget (ssname sstxt ctr))
* V/ ?9 s4 x O$ c txttxt (cdr (assoc 1 listxt))4 h9 K( o! f0 ~. B( W2 _6 L
enttxt (cdr (assoc 0 listxt)). F( I5 q) _7 Q. U: h2 H ^
)
3 s5 A' Y$ ~( o! P (if (= enttxt "TEXT")
/ q/ n+ D7 @, I' x (progn4 F2 n2 h4 I; b2 J+ d1 M; z
(setq testxt (substr txttxt 1 3))2 m2 H' T0 [& q) b0 M& M) u
(if (or (= testxt "%%p") (= testxt "%%p")). f9 D# B3 r' r) \4 g
(setq newtxt (substr txttxt 4)): X. D% Z- i J5 Y3 _# W
(setq newtxt (strcat "%%p" txttxt))
4 l! h5 y: h8 t2 j5 ? )
4 Q4 x1 r( y/ \' M9 o" V (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
' }6 U, I* G6 f8 s: F2 m6 D* J (entmod listxt)5 Y% {( F% W$ }7 i
)
2 `5 Z1 ~% t) [/ N* C9 d )
: G4 K4 }' g' N. Q (setq ctr (1+ ctr))
; q1 |! M' t% i# {: r! W ); l+ |1 }0 Z+ P; Y, X) Z2 c
(setq *error* olderr)& X: P/ [; q+ ^- Q! h" F/ p
(setvar "cmdecho" 1)
4 M# g" A1 h9 Z1 x6 z (princ)
; b( ?- M" c- S0 `1 ]/ A7 f)
# U$ @# O6 y% [4 Z# q, J8 |1 G$ H1 I. ^2 X' ~
(Defun c:CB (/ a)
- c: F* c5 Z: A8 e# m( r/ E (setq olderr *error* *error* myerror)3 L* E! X* J+ J4 u; d- v( P
(setq ocmd (getvar "cmdecho")) @) l3 y0 c9 q
(setq oblp (getvar "blipmode"))4 l3 O o, Z( T7 r y3 a& ?2 u
(setvar "cmdecho" 0) d c5 E- S. ?! c9 |
(setq a (ssget))
: T: `8 s8 F5 z; U) k8 ] (command "CHPROP" a "" "C" "bylayer" "")
0 {6 C, ~7 k' s! l (setvar "cmdecho" ocmd)$ P' v9 y; N5 r' I" i
(setvar "blipmode" oblp): P7 p/ {9 x" V$ y1 f3 L6 T4 a
(setq *error* olderr)
& I _6 X7 P$ ? c. O2 j (princ)
) _& m8 K7 s* B)" E/ t4 R& L* p+ \( P% e9 @% ]
+ d4 |5 X6 ~, q& |, D- m% R
(defun c CC (/ co43 obj23 la23)
* q: I' B# F' c/ C- W' o* t (setvar "cmdecho" 0)3 h) ~7 n, A, }( ~
(setq co43 (getstring "\nNew color : "))
1 G" I0 `& f m5 F (setq obj23 (car (entsel "\nPick object on desired layer: ")))( m9 A; f6 `" j8 a
(if obj23 (progn+ W5 Q7 v/ x b* |- G
(setq obj23 (entget obj23))
& Z& E' z3 m% P- {/ l0 U (setq la23 (cdr (assoc 8 obj23)))" k6 z- v5 c% r4 Y
(command "layer" "c" co43 la23 "")
/ w+ J& s/ _" g% \( K )
; M. n" p& E2 z# T! t6 S6 T )
, X$ ^6 d, }$ z2 A5 p- e" { (prompt (strcat "\nLayer has changed..." la23))8 z0 m" y* o1 V2 Y3 d
(setvar "cmdecho" 1)7 v5 }( V2 j, y. s+ g9 u' d
(princ)
1 _; `3 Q) N+ o, H9 O* [) # r( |# O0 r$ n% C4 C$ v) J
+ Q6 H7 r( ]4 N8 ~
(Defun c:RP (/ a)
- D, H4 Q) y( u6 D h9 @5 B1 b- e (setq olderr *error* *error* myerror)0 J# R1 V/ ?- C G7 Y# r5 v% Q; p
(setq ocmd (getvar "cmdecho"))* j2 E) S0 @. I0 p6 S
(setq oblp (getvar "blipmode"))% |& o! C& n' Z
(setvar "cmdecho" 0)
7 m9 j6 l4 _8 I# W1 L4 C5 ] (prompt (strcat "\nUSE: Delete object(s) belonging to"
! f) M3 D# t% z* j( a3 x " the layer of the entity picked...!"))5 w/ Q7 q; r# `; K& ]( M
(setq a (entsel "\nPick the entity with the desired layer to delete: "))
+ @# P- E5 I1 N+ @ (if (/= a nil)* I1 M6 ^, |" a. I0 Q% _
(progn (setq a (cdr (assoc 8 (entget (car a )))))6 k8 q9 A- x3 p0 H' g5 f
(command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
# a0 e3 L/ W+ K3 g3 D (prompt "\nNo entity selected!"))
) L. ^+ X) m. d* t' \ (setvar "cmdecho" ocmd)
+ ~0 m q& b y7 W) R& x+ ]$ ]4 H (setvar "blipmode" oblp)
I) `& w" X/ w (setq *error* olderr)
" P8 J7 m7 G, ^ (princ)6 S3 L4 z4 L6 H
)
$ f7 P# ?5 j8 \3 _0 R U4 \+ t9 X
9 b7 x% U) T% ~& E(DEFUN C:WL(/ SSET NET SSL M)
$ ]. Q7 x7 b; K (PRINC "\nSelect lines :")
1 C9 |4 E. X( \2 F) }4 L6 {1 x& | (SETQ SSET (SSGET))8 u* e) {1 G) f
(IF (/= NIL SSET) (PROGN" q- ^- j" Z$ l ?# P% U, p& H: I
(SETQ SSL (SSLENGTH SSET))
4 |; s; e7 y1 F4 e5 g( ^3 T3 u1 \ (INITGET 4)
7 {5 T4 ]! h! ^ M: v! h, A8 [ (SETQ NET (GETREAL "New width : "))$ D; ?5 `( a" L& X, {+ U
(IF (/= NIL NET)
5 S( b& q1 |* }6 ? (WHILE (> SSL 0)
) \5 e" k6 r f& ?' k* L6 v2 G (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
6 _( U8 a8 V$ F) _5 D8 I$ k (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") 4 U$ Z" h8 t2 {: X5 i; N m8 a
(COMMAND " EDIT" M "Y" "W" NET "")
& Z; o7 U. c' d7 q3 o ) M: z* h- x" F. z i, ^+ ]9 d
) $ D1 T, I! ~0 W: ?. [9 [0 u1 [) Q h
)))
4 y7 _) Z+ L& q8 M: u' @4 S (PRINC)
- m( F/ Z# X" m9 O# l* U; k)' N3 K! {: T5 r# _& ~
6 t; A9 e: u* d- d+ P. F) b
(defun C:MML ()
8 t b: y. B; F (princ "\nSelect objects to move to another Layer.")! x4 B+ M' l- ]5 o5 h
(setq ss (ssget))' ?4 F% U9 T& v* ?8 L* v* i; k
(SETQ UL1(GETSTRING "\nLayer to move entities to : "))2 y3 p% u6 C1 e: W% P2 Y1 C' ~
(setq counter 0)8 `3 N3 d; J8 @. \. r$ F) |! e
(prompt "Moving to layer.....")(princ ul1)
5 A: ?; h1 r6 w: d# v (setq e (ssname ss counter))
8 s& z# E& @1 }3 c3 }& y6 Z (setq l (cdr (assoc 8 (entget e))))+ c. w; d& N5 G4 X$ ?: R( T6 u
(setq S (ssget "X" (list (cons 8 l))))
$ K4 E7 n% k3 f- g9 r |3 ^ (command "CHANGE" ss "" " " "LA" UL1 "")& u; x0 N2 r1 ^6 ] C5 W1 R7 P
(setq counter (+ counter 1))3 H; i+ B/ e0 e7 i3 Z e
(princ)( E0 @" O+ H% R z% F8 c. U1 }
) 7 B; k! D% f* w2 y0 d; L/ Y) K
/ y4 R' _0 q" Y
;;; ================================ GHI CHU ============================
# V( l5 e# Y. W' J0 I7 g2 j;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
0 [8 u+ V& K8 m;;; =======================Thuong Dung Font Romant.vnh===================
4 G0 _, ]6 M A) m" P;;;==================== Tran Ngoc Thang - Sinh 03-05-1976================0 L7 U4 D9 O0 @+ E7 A
1 R% g9 L2 t0 ^5 A$ i; n(defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
7 p4 T3 l1 h1 Z (setq oer *error* *error* err2)
0 |7 p! }) |; F. k4 I, m (PROMPT "\n(VNI-TTF)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")1 J4 B& z: ~1 E
(SETQ Cpt(GETSTRING "\n (RomanT.vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (Vni-SHX)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
5 m- T) D, M6 u3 V6 B4 z (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhaø Beáp"))
* f% ]5 k2 D* ] (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phoøng Veä Sinh"))2 O3 d% M+ Z4 C1 T3 @
(IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Phoøng Hoïp")) O8 L1 |5 ~3 t* W0 Z6 h4 t5 W* @
(IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phoøng Laøm Vieäc"))
9 w j+ p9 S! Y: g2 f4 b (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phoøng Nguû"))$ O! v( n( e3 h2 m( [2 a0 n; f; Y
(IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phoøng Beáp + AÊn"))8 T/ o& h0 l F! Y, q
(IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhaø Kho"))7 Z" r9 T5 H; M+ u1 e/ I
(IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phoøng Ñeå Ñoà"))
! b3 I. E& O9 z- s- ]! V' U2 c- v6 `! s5 k
(IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp")): e6 I* w3 W6 ^
(IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
' L1 @& n# O* ^: v$ s: t M (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp")), p) q& b1 B$ |1 u5 y: v: h, \, l
(IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))" [+ I P9 J7 o4 m
(IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))/ q* _' i8 @( l. Z, h0 I) T
(IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))9 |7 L1 w1 R$ K) I# ^0 j
(IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
' T8 ?* `4 j: o- [ (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
; H9 Q/ A* k( ^2 G) [
: l9 T7 q) O! ]6 C+ j" ^5 y (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))" |3 L( N1 R+ P
(IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
5 N0 S I3 `% a4 R, e; O1 \ (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))3 i! m# k6 j q4 Y% e! R' r
(IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
' c3 G8 n9 m W: F0 m$ R (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))+ z' H% A2 k4 K
(IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
' }+ q7 b2 S8 `! i5 z& C2 p (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))8 W) X- Q" v8 l3 s& ~% \+ m6 ~ |
(IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
4 y/ V) M$ f/ T) M! o (setq pta (getpoint2 f( A% w# m! J' T& \$ s- P- w
"\nPick first corner. : "))* ^1 n( _2 `$ ~% U
(setq ptb (getcorner pta' z' `/ X9 L4 w1 L0 i3 b6 J/ n& Q
"\nPick second corner. : "))% d' F t& l$ L& a1 p- ?- A
(setq ptc (list (car ptb)(cadr pta)))
, J: g n& M: m7 A/ k (setq ptd (list (car pta)(cadr ptb)))6 \9 V w% N) M, r, ]; D& X
(setq ang (angle pta ptb))) r5 V$ w8 B: W3 L
(setq d1 (/(distance pta ptb) 2))/ a2 z) {) U, C& ^* [
(setq cp (polar pta (- ang (dtr 0)) d1))* q. s* _3 N3 k! s0 M, N
(setq X (distance pta ptc))" o) j, g+ }, R
(setq Y (distance pta ptd))+ P- c' \" L5 _! ^: l( A. L( Y
(setq X1 (rtos x 2 1))$ D1 V, L! S5 F1 @6 D
(setq Y1 (rtos y 2 1))
$ k7 g* a' a8 j- R% c0 {" |8 s (setq rmsz (strcat "(" X1 " x " Y1 ")"))
* P7 }0 m! T, p( f (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
% S) p6 c J5 K+ a- p (defun dtr (angg)- h2 ]+ l" x! t0 Y
(* pi (/ angg 180.0)))
! W, C/ {; b, q1 z) P& J; e
& {& z9 G x, J: a Q) O- j(defun c:ZS (/ pta ptb rmsz pl1)
1 u9 |% |, z, m- o6 j* d: s) P (setq oer *error* *error* err2) @% w# q5 N1 M! R
(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.")' p( N0 w/ x% D" A& n. J$ e
(SETQ Cpt(GETSTRING "\n (RomanT.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
+ Q+ f/ x U0 d0 c) C! l% g& R$ g- X- F8 |
(IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))* h. s, e( \% P8 n" E @8 ]% O! d
(IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
! w# m9 m+ p& @, | (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
; z- m$ H' p7 u, I3 g. i! I (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
. {% @, M! [ {3 Y (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))+ }+ d b% B/ L0 w8 ^7 ^
(IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
, y; r$ d; N/ _# l1 x b8 R( N+ M (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
4 h9 x6 _) D( \
( O2 X) c. [& [. O# R (IF(OR(= Cpt "oL")(= cpt "ol"))(SETQ CPT ' "MAËT BAÈNG TAÀNG 1 : TÆ LEÄ - 1:100"))
$ H2 g: i. | r (IF(OR(= cpt "oE")(= cpt "oe"))(SETQ CPT ' "MAËT ÑÖÙNG TRUÏC ?-? : TÆ LEÄ - 1:100"))
! @( X2 P- V# D5 n9 ~: { (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT ' "MAËT CAÉT A-A : TÆ LEÄ - 1:100")); Z7 v" u2 h. X( I+ I. h/ x
(IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT ' "MAËT BAÈNG MOÙNG : TÆ LEÄ - 1 : 100"))! a3 b9 o3 y) G3 H
(IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT ' "MAËT CAÉT MOÙNG : TÆ LEÄ - 1 : 100"))& S- b* [# i" S" y* G
(IF(OR(= cpt "oK")(= cpt "ok"))(SETQ CPT ' "KEÁT CAÁU KHUNG DOÏC NHAØ : TÆ LEÄ - 1 : 100"))
7 b4 U9 t. s. S2 s* Z! l$ D( E6 l (IF(OR(= cpt "oP")(= cpt "op"))(SETQ CPT ' "PHOÁI CAÛNH MOÄT GOÙC NHÌN")); y+ {+ @4 A) [: s ^0 ~ O3 Z+ X
* S5 E& E, A2 w1 J (IF(OR(= Cpt "L")(= cpt "l"))(SETQ CPT '"MA/W/JT BA/W/FNG TA/M/FNG 1 : TI/R LE/M/J - 1:100"))
# x3 B$ E- M" n3 M) S7 `! v (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
* x* f3 I _4 u7 C( B (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))% X8 s. j$ z8 i6 g6 v! S( h
(IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))3 Z( z" `! b& |/ S8 R5 F
(IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
W; f5 A* _, ]# e; a0 g (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"))
# n+ X q6 j1 V" J- d (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN")). K) S j, r, @; A9 ]
(setq pta (getpoint7 n( {, }( G0 w# M8 w$ b0 R9 q
"\nPick first corner. : "))3 u6 V, P, t1 |* Y9 M
(setq ptb (getcorner pta. U) X" R2 Q* S4 c6 V1 L1 z
"\nPick second corner. : "))
+ x/ E) W6 H. h& M (setq ptc (list (car ptb)(cadr pta)))) R( ~( Q5 c; Z. e
(setq ptd (list (car pta)(cadr ptb)))8 u; Y+ m. t9 Y2 Y
(setq ang (angle pta ptb))2 q& J: w. ~/ u) S# Z, d( ~* X
(setq d1 (/(distance pta ptb) 2)), b( B6 _2 ^" ~8 y
(setq cp (polar pta (- ang (dtr 0)) d1))
% p* A6 N2 ^' ]6 L0 v" @4 O+ X0 i- E (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
% U. {( |. k z( i _, W3 F (defun dtr (angg); O& o) ]5 A! _+ C& c" H# [1 I
(* pi (/ angg 180.0)))/ f4 N, X* ?( E) W. d
/ K( k, K; |( S+ m, a$ O K
;;; ================================ GHI CHU ============================' A7 F B3 J) r2 m* c7 r
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
) ?& \6 M) w; Z4 Y k;;; =======================Thuong Dung Font Romant.vnh===================
# j/ e# R9 Q r' S;;;==================== Tran Ngoc Thang - Sinh 03-05-1976================
3 ]4 @1 U7 V3 W0 r0 m( {
# f& E# _. t! h; j+ `(defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)7 C; S# C! @3 _# y
(setq oer *error* *error* err2)1 I6 M" J$ }5 M" K6 u3 z5 S% ^! ~
(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. ")
/ i, Q; c, x+ o. s+ x (SETQ Cpt(GETSTRING "\n(RomanT.Vnh)(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))" E2 W# N o* P3 u! M5 E$ d5 |
(IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhaø Beáp"))% {2 k5 U5 l7 P5 O5 \, D
(IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phoøng Veä Sinh"))) O/ I+ E! v; {0 t
(IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Phoøng Hoïp"))
- r6 v; \9 K' ?$ K& _ (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phoøng Laøm Vieäc"))
5 v% l; w0 y6 b( J! x (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phoøng Nguû"))
2 B/ \: J! Q3 |+ K, y) X" i8 H (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phoøng Beáp + AÊn"))
q* q& C- j$ G( ^" Z! `- ^ (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhaø Kho"))
6 c* L* Y1 C; T& ^! C; Z8 H; D (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phoøng Ñeå Ñoà"))
% j$ b. c, I5 ^, c; |+ t u' i( J- f) b" v2 F: {& ^3 m/ k
(IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))* @/ X/ ^/ S! @ A) z8 Y t
(IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))# [ L/ _$ [: f, ^$ a
(IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))7 ^7 A- Z3 {0 m" e
(IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))! h" U2 p$ E V/ F
(IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ")). U* g2 m# Z% r
(IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
$ D, y3 ^( q* S3 L! f& n T (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho")). n' T8 O5 I& W# N6 z* [
(IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
; C* I* W' ?! p. z* U+ ^4 _
% S; d) o. z3 q# \3 u, W0 @$ ~ (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
) |) N6 e) U; O6 u0 ^ (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))7 N Z5 ^" K8 Q) B! c: c
(IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
! D, l! ?3 E) M) B. w (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC")): k7 N6 J9 q$ k
(IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))2 ?# M8 @% B/ Z" _* w& P
(IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
: h* ^, l4 a; g: H& {. J (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
2 ]4 b8 f4 v( \* t2 b' q (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
% `' P$ i2 o& E; {6 w6 B% H2 ^0 j4 P; I5 @
(setq pta (getpoint
+ E5 F2 H7 P5 y) e( c "\nPick first corner. : "))
; U. W7 w1 D; q: T& `, I- H (setq ptb (getcorner pta
" s l7 z2 d- e, g" E+ J4 _% d( e "\nPick second corner. : "))! _" T$ y7 K. E7 m% R, x
(setq ptc (list (car ptb)(cadr pta)))
C0 P0 L# H* D1 t3 ]; S {$ }5 k. P (setq ptd (list (car pta)(cadr ptb)))
: E Z% h6 `9 E* b! a6 q+ S (setq ang (angle pta ptb))
% ^8 J' u5 _ L/ t (setq d1 (/(distance pta ptb) 2))2 [, E: d: M+ v
(setq cp (polar pta (- ang (dtr 0)) d1))
" L) m) u$ ?5 i (setq X (distance pta ptc))
: E/ W* U5 z1 T- L- i/ [2 T% G$ ^0 S) I (setq Y (distance pta ptd))
4 Y+ c2 P1 N, y4 H) t* _; s/ a (setq X1 (rtos x 2 1))
9 c/ c5 b# z- F) J (setq Y1 (rtos y 2 1))
0 b3 [7 g4 H, V9 V5 R' g (setq rmsz (strcat "(" X1 " x " Y1 ")"))
0 p4 g( A- }! P9 d% | (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
7 a7 p7 X& q4 @, S (defun dtr (angg)( i/ }' C8 q7 k9 L6 p( B
(* pi (/ angg 180.0)))
9 B8 d8 K5 }5 h0 L q, Q9 x2 }$ K2 v% G1 ^, H0 j: R$ U( M. c( B; s9 a2 L
;;; ================================ GHI CHU ============================% [: ]+ J( x! |
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
# Y6 J- ~9 G5 R( J: G$ L;;; =======================Thuong Dung Font Romant.vnh===================
4 R0 ?" }( w: V* W, X( ~$ Z' d7 i3 C
(defun c:GS (/ a b c d)
8 X$ Q3 C/ f' l' a4 E (graphscr)1 i2 N$ h9 e! M5 @; F* b/ z
(prompt "\nSelect text to set style....")
2 r' f8 `5 r( _" l% A" V5 M" J9 k1 T (setq a (entsel))
: g; a W" O* h (setq b (entget (car a)))$ B, L8 X6 S, C6 N) Z+ H5 W) h
(setq c (cdr (assoc 7 b)))
& g% y/ E' `. a9 o- c (setq d (cdr (assoc 40 b)))
% q- v/ E5 x6 ~" Z+ v, T S (command "style" c "" d "" "" "" ""))
6 t; _8 n$ v% J4 X; w4 o2 | (princ "\nType GS to set text style.")& ]0 W* ]% ~! a; Q4 T. D
# w" }! W P5 i(defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)2 E( H' Y, i! i9 U% k2 S9 B# ]; m
(setq olderr *error* *error* myerror)# C$ y8 B9 Q9 ?3 W. h7 l
(setq ocmd (getvar "cmdecho"))& w. |4 E8 \8 e) U/ p
(setq oblp (getvar "blipmode"))9 e1 A5 t* B$ O" T3 K0 ?: T/ a
(setvar "cmdecho" 0)
- s; Q% v8 R* `# d# h7 d1 N. z (initget 1) ;3D point can't be null! G3 L; r% a8 L7 }
(Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))6 T+ l" L- Y( O4 c2 J
(setvar "ORTHOMODE" 1)+ o) G/ Z# ]7 q& U, E
(initget 7) ;Length can't be 0, neg, or null4 k$ O% G9 f+ s
(Setq l (getdist pt1 "\nLength: "))
* g2 C' y0 f6 {9 O; J (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))$ h+ ?5 @6 ^8 v H" @% H
(grdraw pt1 pt2 2)
U W2 D( c: R6 d, N- w: I h (initget 7 "Square") ;Width can't be 0, neg, or null7 w% K0 A) P$ m* c
(setq w (getdist pt1 "\nSquare/<Width>: "))
" u" X. ^0 J# ?* f" |: i (if (= w "Square") 1 ^, x9 A3 _' b7 A$ V2 i2 ]
(setq w l)
7 k. }# E* y2 O" H, D )
r* ^1 R- }+ ? (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
5 R/ B2 F8 A9 m7 g3 c (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))4 e7 K) B# x+ v$ T
(grdraw pt2 pt3 2). J+ u$ ?$ w: {7 p
(grdraw pt3 pt4 2)/ d$ W2 U# t4 X' E" s
(grdraw pt4 pt1 2)
3 D7 ?; X" X4 | (setvar "ORTHOMODE" 0)
% h) R* t0 U& ?2 m0 C/ J (command "pline" pt1 pt2 pt3 pt4 "close")
0 h K5 h# O6 W2 @ (setvar "cmdecho" ocmd)0 I# ~, t- B' x7 `; v. S0 p( m: t
(setvar "blipmode" oblp)5 f$ t+ j9 U$ `
(setq *error* olderr) ; Restore old *error* handler
8 l8 p/ G( x3 }( |0 s+ r8 c (princ)4 _( p. Z$ U8 z
)
, K: n4 W( G' g( n# S
) q0 n3 J6 U8 v. a* ?0 I(defun c:SG (/ ent pt1 pt2 ang)
( V1 Z1 U: o Z% \( i (setq cmd (getvar "cmdecho"))
2 p9 x/ r; |3 g2 H, u (setvar "cmdecho" 1)
Z! r, c+ V% r# G (prompt (strcat"\nSnap angle will be set to angle of line"))! Y* U. J0 `& r" c3 B
(setq ent (entget (car (entsel))))% D( T0 w6 J! k. M+ E* ^' R3 P! c
(setq pt1 (cdr (assoc 10 ent)))
$ e' H$ v& F( V4 {! ~4 L (setq pt2 (cdr (assoc 11 ent)))
* k, M, q6 W5 X% e (setq ang (angle pt1 pt2))
0 L9 S4 d) J. j/ C (setq ang (/ (* ang 180.0) pi))
5 ?# x" o6 \) l% L (setvar "cmdecho" 0). B2 G& k+ ^0 ]% k
(command "setvar" "snapang" ang)$ e" Y9 I' T' p5 F* N# ~! ^# z
(setvar "cmdecho" cmd)
) D. ~& a7 N) `5 d" p)$ L6 Y. j/ R& k9 F0 d/ P5 `
4 t) s6 B4 I/ Q, R( O' I' h* {' |(defun C:TG ()
" `2 Y: C* P3 r4 i# T* r. p- d) G (initget "Increase New"): ?' q! @' H/ k- A2 W. w! n
(setq ans (getkword "Increase/<New>: "))
7 x# P" p4 O' ~2 Z" F0 d3 Z) W% ^ (modang)
, Q! R& k- v# }& J" a)
* n$ Q4 T* [4 g5 o1 P `(defun modang (/ ang ss ca e na ssl)
. F6 S& F0 Z2 s, c" u (if (= ans "Increase")
) U. u5 R2 w" ?7 `0 X2 J4 @ (princ "\nIncrease angle for text by: ")
) D9 d' [/ `4 V1 v. K D! ] (princ "\nNew angle for text: ")4 h; j9 g4 d: S4 ?: w- m
)) _8 [5 `7 h/ r* }
(setq ang (getreal))
) B6 ]% [6 c9 V& V (setq ang (* (/ ang 180) pi))' s* x- i7 B9 y- v# x7 y
(setq ss (ssget))5 m! M1 @ m! T% g C: F2 J
(setq ca 0 ssl (sslength ss))7 }! @' w+ M8 p6 W8 G( n; F+ y+ `
(while (< ca ssl)
9 C' J% u* ]; k m1 v5 |% D' y (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))# F8 e/ I4 e* p" Y0 u2 b
(progn! R: c# D% x4 A& \) L( k
(if (= ans "Increase")/ e% o) v2 D- y) H
(setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
: a+ j0 I( Q* O- m& J (setq na (cons 50 ang))
$ ~$ [- B% @; W; Y )
1 |' n# u0 f7 F1 K (setq e (subst na (assoc 50 e) e))
8 S3 v3 Z5 \ L/ \1 p (entmod e)
: }# v' t7 z) }2 K (setq ca (1+ ca)). H/ A- _0 S, i& J
); m# e* Q. D% Y3 y9 h
)1 G4 ?6 ], N/ P/ b
)
& C6 G! d2 \4 X' m8 q2 |+ b8 k" } (terpri)
* W& @; x& X, B2 r' P: J, [)/ i G) ]0 L2 b7 p+ n# }
6 _) I3 u+ `! C0 n( d0 B& p
K0 q# c7 p( r: _(defun c:WL ()
7 S# I6 | t4 S/ c (setvar "cmdecho" 0)" ` }* h( y1 |; x* L) [5 z
(setq a 1)
# V3 ?$ f* R: h' T4 Y% Y' w( b# @ (prompt "\nSelect Polylines to change: ")
6 z/ t+ O0 p4 O# V* d' B6 X (while (/= a nil)0 p \* u$ u# I A& \1 S. b
(progn2 I4 ?, u; p& J# r) U
(setq a (entsel))2 c9 k0 f* G& i9 G) }; q8 r6 ~
(if (/= a nil)
* A% a/ c0 Y4 S (progn
{6 [4 I, n* D- T: O# P$ A* j$ ]* _ (setq b (entget (car a)))
: X0 ?1 B" Z, M& q6 _3 T (setq c (cdr (assoc 40 b)))
9 p3 g& a. Y" k" e6 P7 X (princ c)! z8 a1 g( ~3 m. p
(command "pedit"a"w""lw""")
7 h: r& n: t/ E% H8 J4 K L [ )))) * ~& s9 h* q- P; |2 j& C$ L3 l8 {! t
(princ)
% c) ^1 E0 W+ J7 m W" n)
5 `, u) H6 c6 T4 z: U/ ~
, U" ^- t, f# ^- |9 V. Q- F;;; ================================ TEXT FIT ============================9 e' R: a. F" U
8 W, g r3 F1 n) \1 w8 k. r% k
(Defun c:FT ( )
' E" O3 N* `5 F. r( j (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
S w9 m% [: ? (Defun LL-xyz (arg) (CAR (TextBox arg)) )
# [4 B0 F" N5 z/ X! B (Defun UR-x (arg) (CAADR (TextBox arg)) ); K) d/ {+ U9 }: F
(Defun LL-y (arg) (CADAR (TextBox arg)) )
" z8 a7 ]: @1 x5 B4 _ (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
( {" G' Z' }+ i e (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
' { ?6 ]$ b0 G& ^ Textent (If ename (EntGet ename)) ) & ?' u8 a) b8 n6 H J
(If (= (CDR (Assoc 0 textent)) "TEXT")
# A( K* [, G4 x (Progn (initget 0 "Start")( h8 `0 R% ` b! O# p
(Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )2 c4 V5 D& T) m) {# m9 ~. S
(setsnapang Textent) ;set snap along text entity
& {) ^& [9 B- S1 c (setvar "ORTHOMODE" 1) ;drag along the text/ ~7 `! O- g- r- ?
(setq ' E0 D$ m% [& S# S
TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )4 n3 z! {7 y7 Z. Q$ ]4 n7 b
(setvar "snapang" 0)
: E7 f# X @9 ]" O2 n6 f' t (cond
$ J0 @% q/ {4 d. z y# k ((= (type TMP) 'STR) ;;new starting point to be selected
5 D6 O" a. h7 A8 y. S (setq Start (getpoint "\nPick new starting point: "))* K$ M. y/ z# Q
(if Start (progn4 `# E6 B. I. z- w! k) C; |
(command "_UCS" "_E" (cdr (assoc -1 textent)))
$ Q7 K' i( _1 D# e (setvar "ORTHOMODE" 1)9 O3 E% {: F! D( U6 R5 ~8 H
(setq NewPt
7 b) \5 v1 n1 ~6 Q (if Start2 \$ M/ t6 @$ R2 P! f
(getpoint (trans Start 0 1) " ending point: ") nil ) )
2 x( h1 S1 {5 k1 G2 W. @& P1 |2 v (if NewPt (setq NewPt (trans NewPt 1 0)))
- Y3 @/ o$ \5 C, ~& q: x- v (setvar "ORTHOMODE" 0)
1 S% _5 K @7 b (command "_UCS" "_W") ) ) )
3 U" P3 C3 _# k# T" y ((not (null TMP)) ;;new ending point selected, V! Z* D- d/ k% G' W
(setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
; L M Q% ]- P1 _' l$ ] (t (setq Start nil NewPt nil) ) ). F- a5 `7 O# ^9 i, D4 Z5 M
(if (and Start NewPt) (progn
1 M% {! A& ~7 I, c; W; Z$ R (setq Val (Assoc 41 Textent) ;;current width factor
( _+ G" z( [3 R, V% d8 K' y* M Val (if Val (cdr Val) 1.0) LTC_%
: A# r9 Z. s& ?" ] (* (/ (Distance Start NewPt) NewEnd ) Val )' p+ D* B& ~/ I$ z
textent (Subst (cons 41 LTC_%)& u% K5 q/ h5 k1 p
(assoc 41 textent) textent)% P+ |6 B7 Y8 _# v& k
textent (subst (cons 10 Start) (assoc 10 textent) textent)- M* ?9 N( [5 a
textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )+ `' r" }% W& N- N3 R7 {8 P
(EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))6 x& ?0 L4 b, F& G" l, p+ K& }
$ u$ }7 [5 [% ]: r% o9 w& m, {7 W
;=====================================================================
) U/ c1 o7 S0 o/ B;=========================COPY + ROTATE ==============================* V x/ u9 `# r
;=====================================================================; v1 ~; q0 w- C: v* f( s5 y& e+ q
. I p; q6 g3 G(defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
t9 v3 P' ] }8 d" L( P (setq olderr *error*
" t" d5 z( m( `6 [" O6 v *error* croerr)
+ W$ S+ o6 R/ o* s (setq cm (getvar "cmdecho"))% f8 f: e7 O7 l5 |/ i6 J0 O% `
(setvar "cmdecho" 0)
" j R0 Q4 b, P% F7 W (setq loop t)- }* \/ k1 e7 a
(while (not (setq ss1 (ssget)))), } ]) s& P2 ]6 H
(initget 1 "Multiple")2 s/ T" Z* x2 B7 g+ a# s0 y; N# e: W% g
(setq bp (getpoint "\nBase point or displacement>/Multiple: "))
3 ~* Q2 }& f: n' Z (if (= bp "Multiple")- w9 Z- o3 J' s i) W! ]
(progn
1 [ H% t8 r& q2 i (setq bp (getpoint "\nBase point: "))
7 U+ s( k) P* T (setq mult t)
$ V) ]+ y6 J1 r% D% r; g( u )
% }0 F- N) `. N1 [! n+ i, W2 R, h )9 Y& n- ]$ I t% Q7 C. K
(while loop9 |" e+ U, h0 C" y! `
(setq loop mult)
# M5 I+ F& _) P* I; G (setq lent (lastent))
, j# w( D5 v o4 i, a. a6 p$ e9 t (command ".copy" ss1 "" bp bp)% y$ C R4 E% P; L8 N& X
(setq ss2 (lss lent))
M9 V; y' d3 s4 P( l) n (setq lp1 (getvar "lastpoint"))
7 `! i# H& b4 Q" P. ] (prompt "\nSecond point of displacement: ")! h3 v* e+ S0 d
(command ".move" ss2 "" bp pause)
3 y- W& B7 S/ K5 R# r: g8 P (setq lp2 (getvar "lastpoint"))0 h# m- Z9 \/ ]( F- S0 a
(redss ss1)
( m( P9 _0 S0 O5 M (if (and (not mult)5 |4 V4 a* d. c- o" h. @1 ]
(= (distance lp1 lp2) 0)
7 B. C1 L" h+ x$ J8 N! I7 [ ] )
# F7 g ~/ x+ B6 Y9 z$ ]6 } Y (setq lp2 (getpoint "\nRotation Point: "))" K/ d6 v X- [1 s+ V% I+ `4 d* U$ `( a
) Q* _$ F& D( w( H
(if mult1 ^' ?- x& W; D* E+ E
(prompt "\nRotation angle ")
8 V$ N7 L% p. l$ _ (prompt "\nReference/<Rotation angle>: ")1 s) ~) Q2 G8 I6 L0 t) x- D5 ^+ \
)
5 R# \8 j1 p4 B) B' K; [$ e5 Q8 f (command ".rotate" ss2 "" lp2 pause)
0 t9 q( _) C8 h! Q, W# A )
: e5 K+ ^; U# U' X b) u. v# Y (setvar "CMDECHO" cm)
3 @, f7 | \9 B( O* }7 u) B (setq *error* olderr)6 X# }3 Z% N* E' ~9 A
(princ). [/ D0 {" O6 }( W( Z+ {4 q$ o0 _: `
)
0 O) c' W; y9 b4 e/ W+ E4 v2 Q(princ)
9 f5 } |9 m0 |% |- Y L) Q9 ~(defun croerr (s) 3 u6 H+ h7 s( {' x5 H0 L- Z
(if (/= s "Function cancelled") 2 c7 X, `" Y: `, S! q2 N- m$ |
(princ (strcat "\nError: " s)) ]' I W* k: M, C F& [+ b
) , }# }# U# F0 j8 u% l6 l, _
(setq S nil)* A, {0 U4 ?6 R, Z% c2 a7 a
(setvar "CMDECHO" cm)
5 O; Z8 |: K: y6 O* a9 y) ?# x5 A (setq *error* olderr)3 ~9 V+ F4 C! H0 |
(princ), r: G- \- K4 M5 N% H
)
) R6 J* a; [0 \" L(defun lastent (/ a b)
! c) Q; q4 o7 r' w1 q5 ?0 g: e (if (setq a (entlast))( F. A0 `/ G5 c+ z4 B y
(while (setq b (entnext a)): \: t# T2 n: g- ~5 u% C- H
(setq a b)
0 {) m, I2 Z: ^& k" s- S$ |$ w )
4 @3 l" J$ C* g7 d )
4 k& Z3 ^/ m' n8 c: H/ i! i a
- |9 g: S6 U5 Y4 z+ ], J9 L# P)4 j- i3 q% X7 K* D) L8 V7 {1 h
(defun redss (ss / en i)
4 l7 `! G1 i# y4 e& T1 \2 \ (setq i 0)9 _: F$ O: p6 A5 R F% @
(while (setq en (ssname ss i))' z# P! {2 \% D6 n8 r* s. _; t4 q
(redraw en 1)
/ l4 Y. n) N" G1 _; B2 `6 X; y (setq i (1+ i))
) \& I- e- w" G w+ p) P$ ~ )' i5 c0 F2 A8 P$ ^& o1 G
)
% T. g3 A* v) S(defun lss (en / sels ed)1 p7 H b# I2 {
(setq sels (ssadd)): k; y4 [5 @. F6 s0 F# q3 n+ l
(while (/= en nil)% c' x/ n' L/ j
(if (setq en (entnext en)) (setq ed (entget en)))9 {1 Q% l& \/ R) w
(if (/= en nil) (setq sels (ssadd en sels)))
3 D2 N# m! b* c1 }0 ~ (if (or (= (cdr (assoc 0 ed)) "Polyline")
6 j# U# r% u; a6 E (= (cdr (assoc 0 ed)) "Insert")
- _: o" K7 {3 k9 \ ), {% A# n( f8 R1 ]4 `
(while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
) o- d* B ~# [9 I: @, V )& d# B7 M/ U' T5 ~
)- I# a( k% @2 {$ \
sels
" A/ W/ d# e8 ]- e)& z* |: X9 h# @6 [) I7 F g- `3 |0 Q
' ~" f) Q6 V* u7 C8 p
;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
. K0 E& G! T K% C& h6 h;;;==================== Tran Ngoc Thang - Sinh 03-05-1976===================
( u/ p$ |" u7 ^ B. `
+ E% N9 @# \' A3 B% V! T% j(defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))+ N3 s0 I4 G; ?
(defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))+ ]9 n+ U+ x2 }) p" x
(defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))7 A% F9 K6 a' p) I. ]- [. U
(defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
4 m, ]% Y3 b; S7 ]7 u5 M(defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))9 p8 v7 p' `4 c' P
(defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
# m3 U! V7 |2 }; s6 p! d+ R(defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
0 w1 O) \0 `8 y6 \% K' Y(defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" "")). e$ ^! h/ Y2 c, S
(defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))( l0 `- Y$ Q/ {' L; s: O
(defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))" F R# G" {% ?4 G8 z( t. c
(defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))% }0 p8 ~1 t/ f2 r( E
(defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))# d" C; Y& c- ^ s
(defun c:77 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))$ O7 h% @; p! R7 D/ k
(defun c:7 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))* u$ |# m" Y( l* J. ^& [
(defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
5 G9 [7 {5 k3 |9 T(defun c:9 ()(princ "\nChon doi tuong net TEXTTXT")(ssget)(command "change" "p" "" "p" "la" "TEXTTXT" ""))
6 Z, y8 J8 w. Y8 N% v(defun c:99 ()(princ "\nChon doi tuong net TEXTVN")(ssget)(command "change" "p" "" "p" "la" "TEXTVN" "p" "C" "bylayer" ""))6 S! @9 [# e, Q1 _' o$ H; H9 X
(defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
5 n, Z& `* q( h$ G4 h: u(defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))& t+ z6 x* q L/ Z x0 T7 o7 ~/ v
3 @( a3 e" T% o" E;=====================================================================
+ t& y: z, w, T;===================DAT Ti Le Theo KHO GIAY BAN VE====================8 N4 R y# c' F& l
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================8 X4 K1 V( \6 e4 f! J# O
/ x& J2 {* j) ^& A: C! ^;(defun c:SA6 () (Command "DIMSCALE" "111.11111" ))(princ)
- o0 R/ J9 T4 p6 Y1 ^0 p1 g;(defun c:SA5 () (Command "DIMSCALE" "1111.1111" ))(princ)' w0 P# n5 j+ U* x, f# E" o# Z" M
;(defun c:SA4 () (Command "DIMSCALE" "1111.1111" ))(princ)6 n5 x. m" @1 |1 ]' \
;(defun c:SA3 () (Command "DIMSCALE" "11111.111" ))(princ)3 h5 C2 t- a$ Q2 d; M/ i! U3 U6 g
;(defun c:SA2 () (Command "DIMSCALE" "111111.11" ))(princ)
4 H) }7 t& |1 ~;(defun c:SA1 () (Command "DIMSCALE" "111111.11" ))(princ)0 X) k2 _5 W# U5 F
;(defun c:SA0 () (Command "DIMSCALE" "1111111.1" ))(princ)
5 C* T2 e$ W: ?3 ^
) {8 S0 \* n, H, Z* J- P+ i;=====================================================================
2 ^% }6 y: a- y;===================DAT Ti Le Theo KHO GIAY BAN VE====================0 r0 f8 x L! C
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ================= V' T" R3 V- ]; B$ D8 W
* Y5 ]* U& d% Q: c/ r! }
;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
8 a/ P; t1 {- U; F5 j& y
( `- M5 [- a6 [* i;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============% V3 h) m& f i' y# [2 L7 ~8 M. _
6 [+ G# U9 w: E4 l1 Z8 \9 y7 v(alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
1 q7 p/ C0 Q/ l4 K- u# p(princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")! u' }; f0 Z& a' q5 [
* }9 r, b+ b1 u;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
) I' K2 p4 u$ g S. ?4 c$ V
) V' [& F% W1 G# d6 x1 I;(DEFUN C:netxuatanh ()9 A/ C2 B; H1 H o
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
1 O. P" W0 N& B9 r L' ^* W# f "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""; ]4 L, e9 o' G/ O8 h
"M" "MANH" "C" "9" "" "Lw" "0.5" ""
# \; S2 X2 G/ b9 Z! ` "M" "DIM" "C" "1" "" "Lw" "0.6" ""/ S. B9 z1 E( n I$ o. p P
"M" "THAY" "C" "7" "" "Lw" "0.7" ""1 V! v S6 V: u$ e7 B! Z8 ^
"M" "NOITHAT" "C" "60" "" "Lw" "0.5" ""
. D- K" Q. H: S1 f "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
( w- X/ ~6 W: o8 B# {1 W. O "M" "COT" "C" "2" "" "Lw" "2" ""
6 h$ ^5 w% x/ Z- K8 D, \ "M" "Defpoints" "C" "7" ""; z5 G `# Q, p8 Y C6 h5 V
"M" "0" "C" "3" "" "Lw" "0.5" ""0 H4 S3 h2 {3 f2 c7 `
; "M" "1" "C" "1" "" "Lw" "0.5" ""3 {6 [1 j n! q2 [! d6 j# B
; "M" "2" "C" "31" "" "Lw" "0.5" ""! C( ?- ]. O7 z# V
; "M" "3" "C" "8" "" "Lw" "0.35" ""; k8 b( J% a" v8 d6 |) i2 f y- l* f
; "M" "4" "C" "4" "" "Lw" "0.8" ""
5 Y# l8 P' I/ j8 g* N; "M" "6" "C" "6" "" "Lw" "0.35" ""
( A1 _! @+ u T6 J: l' o' w; "M" "7" "C" "7" "" "Lw" "0.4" ""8 g2 K7 z- @8 Q8 J1 T
; "M" "8" "C" "8" "" "Lw" "0.35" "". U0 v4 O, a6 K$ L, E- ^
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
2 h4 p; ?5 a2 E; @% c "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
8 c% d( x6 ~. v5 f- X$ [; "M" "KE" "C" "8" "" "Lw" "0.3" ""
; G" ~1 K* H( \5 H o# c, B; "M" "KT" "C" "9" "" "Lw" "0.35" ""
" _: m2 | [$ s "M" "NETDAM" "C" "4" "" "Lw" "1" ""/ E0 Q6 n" G9 y: F# u
"M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
9 L2 _! V- e$ w" o, _+ d3 m "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""; i' U: m- k& b8 R% h
"M" "ThietBiDIEN" "C" "2" "" "Lw" "0.8" ""5 o& H: m; [/ v: A. v) \
"M" "TEXT" "C" "7" "" "Lw" "1.58" ""
3 R8 z( o& p! n& H, {- g "M" "TEXTTXT" "C" "7" "" "Lw" "0.5" ""
5 h; @/ X2 L( K "M" "TEXTVN" "C" "60" "" "Lw" "0.4" ""
) P7 ~( ^# B8 g f& u' c "M" "TEXTVNi" "C" "60" "" "Lw" "0.4" ""; {9 Q. `3 e! e6 ^
"M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""2 t& B# P; i* w7 g$ F; b ~
"M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
( w: g2 g5 r0 i4 g4 D3 A "M" "CUA" "C" "6" "" "Lw" "0.5" ""
" w7 W$ _9 r+ K4 c( U "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
. C. R& [) Z7 ?7 _- ]+ C) E# v2 o4 a, ^! P" k7 e l
;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
/ s& g* |" c4 }& ~. X8 P' y, \
O5 i+ s; E3 F$ z8 W. l& _/ W9 z "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""* V1 i5 m. y$ D* S0 M( o" D! i
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""8 o& f+ Z7 c- E. ~
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
# |/ A+ W" }2 e- r0 N) y% P8 j( x; "M" "250" "C" "250" "" "Lw" "0.35" ""
1 }7 @3 T1 Q/ @6 w% b* R8 `4 _# \ "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""+ E6 Z' t4 T: V
"M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" )(princ)# ^4 T' }8 M% |& B3 o' _
% T0 ]1 l3 r- {8 i0 @;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======5 E$ T2 @5 t" D
;===================================30|04|2024==============================2 t# S1 y, t/ x$ o
* v9 T9 L% i1 R- w (Command "-style" "VNi-AUCHON" "vauchon.ttf" "225" "1" "0" "n" "n" )(princ)/ e, U+ P6 }! y
(Command "-style" "VNi-COURI" "vcouri.ttf" "200" "1" "0" "n" "n" )(princ)
# Y; } N& s' r" g2 p; }0 W" f (Command "-style" "VNi-COURIB" "vcourib.ttf" "200" "1" "0" "n" "n" )(princ)
$ `0 P8 }" R1 _/ n1 l' {$ R (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )- [! Z. @& x) r$ A- ^' Q0 X; ^1 n; B" \
(Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )0 v( o" x1 T+ y+ y; W( H) F
(Command "-style" "COTES" "tcvn3italic,vns.shx" "0" "1" "0" "n" "n" "n" )! g4 P Q2 k! V# c. G
(Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" )$ e3 J, Z( d/ b5 ]
(Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" )
0 H# q- e+ Q1 D; ?/ z. ?+ e; [ (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" )* o) O4 ^, ?' l% f! o
(Command "-style" "STANDARD" "Cambria" "250" "1" "0" "n" "n" ), z5 k2 {7 m* t* c* D) ^
(Command "-style" "CAMBRIA" "Cambria" "200" "1" "0" "n" "n" )
* A1 g# f) ]( V1 \ (Command "-style" "GHIKH" "romant,vns.shx" "0" "1" "0" "n" "n" "n")
) H$ r6 O4 z/ A T$ q& ] (Command "-style" "GHISH" "impact" "0" "1" "0" "n" "n" )8 Y- y& l. d9 M7 ~
(Command "-style" "ROMANT-DIM" "abcroman,vns.shx" "0" "1" "0" "n" "n" "n" )9 W2 q! l0 i \# U
(Command "-style" "ROMANC-KhungTEN" "abcroman,vnh.shx" "200" "1" "0" "n" "n" "n" )0 w% Y; `8 Y9 S9 C2 v
(Command "-style" "ROMAND-TEXT" "abcrom,vnh.shx" "200" "1" "0" "n" "n" "n")
# C1 s' r! Y6 Z (Command "-style" "ROMANT-TEXT" "tcvn3italic,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
8 G- G& R! F O `8 S4 s0 \4 ]' I3 C% r" @8 {% @
;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
4 w7 L2 q$ U! G$ }& R w- C;===================================17|10|2024===================================
% m! D3 e1 \- f, X- I5 n, W' p3 E1 ~0 Z( T$ }& v
(Command "DIMTXSTY" "ROMANT-DIM" )(princ)
+ J' _% u0 \* |, x6 k7 m, e! z (Command "DIMBLK" "Closed" )(princ)
5 t, @' U8 u* k! |' `* R8 s- c: h0 m' |+ {2 p) Q
;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
; o# E7 @! H; O$ Z7 z;===================================17|10|2024===================================1 o' }/ Y1 `- B
9 @ n' s. l" J# U a. J: X/ @' i$ q' {;(Command "-units" "2" "8" "1" "8" "" "N")
( T7 r" k* b) C8 ](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)' X, I/ ? y, T, Q' a
' P, n/ m# U+ l;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=' B0 o; K1 j- s
;===================================17|10|2024===================================2 c0 z( e+ I/ s t# o# x
/ z) C; A6 x7 V8 L- B;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====! [6 n) j8 W* P9 O* z% w! F
3 J, v$ z4 ~/ Z$ V, r- y;======================== DAT NET IN & TI LE BAN VE =============================) e9 T+ V( ]/ d% [
9 t- n3 W" w7 [* \& e1 m;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================1 P! z* w8 c! m
;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================0 Y! N# Z) ?$ m
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================2 {/ h2 M( E* A( p
;=============================11|07|2025==============================- ?% k' g7 L4 K) Q. [
;Ti Le Ban Ve - 1 : 100
- F: F4 H& I- S(Defun c:kta4 ()
( S( T+ ?" I8 u k; r/ G W# L3 y (setq mv_sc 100);Ti le ban ve! H, r- D- H/ C7 M0 g" ?3 a0 o. O9 n: N
(setq x4 297)3 ~9 q, x/ J$ k* W( T) P
(setq y4 210)& h7 T( [# V7 S6 T X
(setq x4 (* mv_sc x4)
) g; b4 a5 z& }* D' X& u$ M y4 (* mv_sc y4) )
% [' `# S D0 _ (command 6 i m7 ?% c6 p) S$ x0 g3 P# H
"LIMITS" "0,0" (list x4 y4)
5 \3 C9 Y' W/ r, t* Z! G- O, n "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"$ F7 }2 T/ K5 s2 p: `+ f. ?- L
;Khung CHU NHAT Chinh
9 ~2 n; b0 S4 P/ o8 |) @' d "RECTANG" "500,500" "@28700,20000"" G7 ?" S+ x# _: R8 |6 K- ~7 p
"RECTANG" "700,700" "@28300,19600"
9 D. ~) X U# S) q" C;Khung Ten Chung
1 P9 |# h1 V$ t, V4 p "RECTANG" "700,700" "@8000,1250", K( p) H4 `0 G# q
"RECTANG" "700,700" "@17300,2500"( s: B3 [& F6 J. i4 Z) j2 D
;Ten Ban Ve' g! M4 h# f4 O
"RECTANG" "18000,700" "@11000,1250"
* {, F, y1 e5 W) _ "RECTANG" "18000,700" "@11000,2500"1 K0 W$ x$ M+ S1 c/ o
;Khung Ti Le + Ngay Thang Nam
& x* n5 q* t. V "RECTANG" "22500,700" "@2000,2500"
) y1 _ V& e8 O, Q. L r;Khung CHU TRI, G! |5 m- T# ]
"RECTANG" "8700,700" "@3800,2500"
7 j( u1 w; S" M) Q! D/ O0 t"ZOOM" "_a" ))
! z* U0 i- c) I( ^5 @) f: x1 c1 ?- T;=====================================================================
/ j7 E/ b& Z" m. ~;Ti Le Ban Ve - 1 : 100
; _0 ^. D9 v3 `! A0 g(Defun c:kt4a ()8 A* |5 c' S9 d: y" E6 l" i
(setq mv_sc 100);Ti le ban ve
8 D5 y1 w; u9 I4 j6 X8 D \% s ~8 p/ Q (setq x4 297)$ \+ y* d5 I0 J/ |7 r
(setq y4 210)9 k) V, E( c+ {# O. _$ d# e
(setq x4 (* mv_sc x4) 4 G1 Y2 {' F) D2 F7 z' P: e
y4 (* mv_sc y4) )0 c9 w- Q6 r2 Q. G
(command 2 w. k% b, ]1 L" G; [
"LIMITS" "0,0" (list x4 y4)
/ ^+ ?4 s% K2 ~6 A "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"( T1 r5 g( d* S, @! a1 ~( @: }
;Khung CHU NHAT Chinh 9 U d& f& ]& `& m
"RECTANG" "2000,500" "@27200,20000"9 `/ H3 y' @5 v1 b% A* K* `
"RECTANG" "2200,700" "@26800,19600"
F) T- H0 I* A0 w# J9 }' V;Khung Ten Chung
/ L2 I. l# P1 ]+ V) l "RECTANG" "2200,700" "@6500,1250"0 \3 k' [, J* u- W, H8 G3 w
"RECTANG" "2200,700" "@15800,2500"
. g2 p5 I( r) ~: v+ w;Ten Ban Ve
8 M3 A2 Q; T: Q- J2 ? "RECTANG" "18000,700" "@11000,1250"
4 K0 U0 v' h3 X: Z I& i "RECTANG" "18000,700" "@11000,2500"8 d7 {. G0 d% C3 ]; b& f* `8 R
;Khung Ti Le + Ngay Thang Nam D( ]' L4 F4 V
"RECTANG" "22500,700" "@2000,2500"
- j- f+ ]2 T% A1 d$ O9 T' H* z/ W;Khung CHU TRI* Q% x) r# f4 _" K, d
"RECTANG" "8700,700" "@3800,2500"
- L# t* e" V" j! s2 Y "ZOOM" "_a" ))/ X9 g; c1 Y% C
# _) f, N9 w* w+ V' j0 ]
;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================8 N" N& F, @! J$ g
;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================& S: e; R) z4 I4 b" s) K
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
- w( L9 a' Q' y3 n8 r! e;=============================04|07|2026==============================! }& Q. i7 N. K! Z3 K
;Ti Le Ban Ve - 1 : 100/ ?# @; p! Q' W8 O3 R+ R8 v1 N
(Defun c:za4 ()4 G6 L9 y) Q0 w
(setq mv_sc 100);Ti le ban ve& r2 n) o" P" g
(setq x4 297)6 J: l) s7 l7 t$ Q; a
(setq y4 210)+ h% I' P9 L6 f0 P0 e0 h' j) N
(setq x4 (* mv_sc x4) ( X/ `. R1 ?1 V% v5 R
y4 (* mv_sc y4) )
8 c) K% o1 {" I3 V (command
6 {5 ^" E3 R1 T8 d, Q- z8 G N "LIMITS" "0,0" (list x4 y4)1 O: _8 P2 O5 U- f9 k! [9 l4 t
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
! b+ Q6 ?4 L+ e: _1 [, l- D" `3 z/ b;Khung CHU NHAT Chinh
1 B# B; F9 F# }% G$ A "RECTANG" "500,500" "@28700,20000"
* }9 N: g2 M: j. w* ~& Z5 x "RECTANG" "700,700" "@28300,19600"
4 H- q3 y2 Q( u6 P;Ten Ban Ve
7 l1 j" X# x0 V% N% G8 O+ H "RECTANG" "24500,700" "29000,1950"
! K0 M( k6 G% \& w9 M/ | "RECTANG" "24500,1950" "29000,3200"% {/ Q; N. F/ Z: n- w& \3 k2 Q
;Khung Ti Le + Ngay Thang Nam4 J: C3 n. i4 f7 S) c. q
"RECTANG" "24500,3200" "26750,4450") S8 t( S; y, e! @
"RECTANG" "26750,3200" "29000,4450"' Q4 s' o. h J. K( K) X
;Khung Kiem Tra; N( }1 r" ^. N' `
"RECTANG" "24500,4450" "29000,6325" j8 O7 m: M5 Z! k+ E* f; r
;Khung Thiet Ke- T: [( r% z( h
"RECTANG" "24500,6325" "29000,8200"% ?* t" b6 W+ i* i5 k+ J
;Khung CHU TRI
9 H( s5 N3 D/ V. b5 t: }* b "RECTANG" "24500,8200" "29000,10075". N$ M( h" Q2 t! C3 _
;Khung GIAM DOC
1 e) w: m0 J p# E: p% x "RECTANG" "24500,10075" "29000,11950"( {/ Y0 |! y8 M7 W9 R) t T M1 B, G
;Khung HANG MUC
3 \8 H6 @6 I4 y "RECTANG" "24500,11950" "29000,14450"" L, k( L2 V9 s; R7 i1 T
;Khung CONG TY
! e7 J( j+ R: |8 s "RECTANG" "24500,14450" "29000,16950"
. ]% ?1 K6 f J) S& J7 F2 f$ X;Khung REPAIRE
+ ^' k; Z+ r2 P# b$ { "RECTANG" "24500,16950" "29000,18125"! u4 K5 o) F1 S1 m
"RECTANG" "24500,18125" "29000,19300"
1 p1 B5 ?; w/ V2 l& H) s$ a "RECTANG" "24500,19300" "29000,20300"
5 w- N1 J( S6 { "RECTANG" "25500,16950" "25500,20300"( b8 U" }" r( j3 ]1 Y
"ZOOM" "_a" ))
, @3 E2 Q2 T( w% G5 @& |; x;=====================================================================9 j1 @+ ]( ^3 U* w H
;Ti Le Ban Ve - 1 : 1008 c" G+ k! Y6 X
(Defun c:zb4 (); n9 ^$ A! w4 [! z! H% k% H
(setq mv_sc 100);Ti le ban ve8 k! f* j+ {" `& P
(setq x4 297)# v- D( t4 ?8 m' v/ B
(setq y4 210)* y% J/ {7 L( f
(setq x4 (* mv_sc x4) # U% |0 Q1 ]7 m
y4 (* mv_sc y4) )& f, Z8 t" X3 r- k, S9 P
(command
% x0 }% ^" ~+ I "LIMITS" "0,0" (list x4 y4)& I* g# M8 m8 [; H* M# p3 x
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
. ?4 t* n: b4 Q3 f5 }" g1 A4 J;Khung CHU NHAT Chinh
, j: j [: v5 R/ z. R "RECTANG" "2000,500" "@27200,20000"3 N; |/ @2 `1 K% J) y
"RECTANG" "2200,700" "@26800,19600" H; T3 P& _8 q! u6 g1 O/ S
;Ten Ban Ve
; h N5 y: j8 x c6 ]6 w "RECTANG" "24500,700" "29000,1950"1 W9 i- w6 d% R
"RECTANG" "24500,1950" "29000,3200"
) R) U' }8 ?6 y3 a; J;Khung Ti Le + Ngay Thang Nam3 b8 I" t5 ^7 R( ?% U2 E( b
"RECTANG" "24500,3200" "26750,4450"
6 {2 s0 F+ F8 s* u4 i "RECTANG" "26750,3200" "29000,4450"2 p3 K1 O( Q i6 x* X/ F4 o
;Khung Kiem Tra
; V/ C- z' h4 X9 c% T# k" h' d- C- D "RECTANG" "24500,4450" "29000,6325"
, l, R1 n- ~/ J( d% [' [0 E* k8 G;Khung Thiet Ke
" k; Y* b H" r4 ~: s# B- Q "RECTANG" "24500,6325" "29000,8200"
1 |3 Q; W0 ^5 ?" I$ K;Khung CHU TRI
8 [6 E9 O# @( e* y$ ]! O. }+ {2 k "RECTANG" "24500,8200" "29000,10075"( N% ~) K2 n# @- p* E
;Khung GIAM DOC6 {: h" |- e( }! h4 i) w7 I4 ]( I
"RECTANG" "24500,10075" "29000,11950"
, C% D+ k* D( W;Khung HANG MUC
+ f1 O! h6 f: c5 `' t; G! _# H- } "RECTANG" "24500,11950" "29000,14450"/ R7 ~+ b3 s8 M, G$ N% f
;Khung CONG TY
; Y* l. B# j3 i7 q "RECTANG" "24500,14450" "29000,16950"; y: P$ E. |# J6 R6 ^$ M/ v! ?1 u
;Khung REPAIRE
9 B9 y% ^! w u3 b2 u5 j; ^ "RECTANG" "24500,16950" "29000,18125"
2 a' @9 `+ h, j. w# X "RECTANG" "24500,18125" "29000,19300"
& I8 Z% A' U' u4 X1 r# ]; K: O "RECTANG" "24500,19300" "29000,20300"& c& L" ^) |- q& S
"RECTANG" "25500,16950" "25500,20300"+ k5 J: C& J; y$ n
"ZOOM" "_a" ))
$ y7 P4 O0 ?5 Q6 r2 T
0 |! u1 d( o% v5 Q8 \;;; ============================GHI CHU Khung Ten========================
, K5 O4 y* ]1 q& X) E;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========, j, `& K# S. {, }4 F9 }6 K
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================/ ?3 }! E% L5 w# R, w; s/ X: G9 N
;;; =======================Thuong Dung Font Romant.vnh===================. O2 m4 D1 Q! y# N( w) @* C* R4 _
9 h( {3 m5 r9 }0 k! S! @
(defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
) g) s% b% ~& d2 H0 x (setq oer *error* *error* err2)
* t( _: J' w4 C; d (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
6 Z3 K( Q" q) t1 W& {! w (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
) `# Q$ [) s; O4 t! V1 W (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
& u8 u }. D( c" @ (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
, D5 h5 F) q$ E7 V; q (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :")), s- ~& x- i7 T. }! p
(IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))& z$ L5 @/ Y* W r& V/ P
(IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))& a! Z/ t6 w. K" |. X
(IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
8 F- P. S& y f9 m0 i5 l (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
+ y! M+ s9 ^7 v3 U' C (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))! P# J' a% T0 I: j- o
(IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
( G2 l2 r! s+ y9 m (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
* M$ T0 K7 J( Y3 }* Q9 N, R (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :")) v0 m' K2 h4 E# R# N/ @6 z
(IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))$ R* j9 ?9 R5 x
(IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
! h: H ]# h" `& e7 T# t$ h (setq pta (getpoint
/ T( [$ k1 Z; z "\nPick first corner. : "))6 ^* K# _4 Y/ q
(setq ptb (getcorner pta
; s3 K! {: F7 n* l "\nPick second corner. : "))
! u3 B+ ?3 j8 S (setq ptc (list (car ptb)(cadr pta)))0 G; _' D, A$ k: R% U+ K2 `
(setq ptd (list (car pta)(cadr ptb)))6 b+ j& b- M! Q/ D6 }1 ~
(setq ang (angle pta ptb))
2 D2 i& P+ R% U( V# O9 [0 [ (setq d1 (/(distance pta ptb) 2))
1 ~3 ~3 f# @4 ^$ c (setq cp (polar pta (- ang (dtr 0)) d1)), k. f: f0 c: l' N8 m
(setq X (distance pta ptc))6 o) |3 ^+ N! D' J/ v5 R
(setq Y (distance pta ptd))
, o, Y5 b6 j# h (setq X1 (rtos x 2 1))
. v- q' X2 R6 h7 X( d: k# T/ e (setq Y1 (rtos y 2 1))7 R* `( M" A2 P& P3 L. N8 _
(setq rmsz (strcat "(" X1 " x " Y1 ")")), |1 ?- o- K) w
(command "TEXT" "c" cp "0" CPT "text" "" rmsz))
, Z" B9 c5 V% n) { (defun dtr (angg)" l {1 e: S9 R& R! {3 J% P# ]
(* pi (/ angg 180.0))), f, H1 _7 o( u) }
) ]) e5 i: m! k% u% G
;;; ============================GHI CHU Khung Ten========================7 p( A0 {0 M# F7 \
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========; P2 C: H1 ?, u3 K
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================, v8 D8 `$ J: }8 j. @' S
;;; =======================Thuong Dung Font Romant.vnh===================
1 Q4 \3 K/ A2 |: x- d/ h: `& k, K" h5 `( C6 ~, f1 L) I
(defun c:iit (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)% f$ w, P+ J' D2 G% f4 s$ \
(setq oer *error* *error* err2)+ H% b+ i# V3 F4 H9 J
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5
8 e. E5 v! I: d% |9 P! R: H; t# d8 J/ @- x0 J! d' X5 @6 G
(setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))6 ^0 l/ [5 `9 A: t
4 ]+ M* [1 |* n1 ^ (if ht (setq h_text ht))
/ {+ ?. ]" {. b9 ? L5 p' }. x) G- W+ p5 r0 K. W
7 ]4 z* g- K4 F$ G& V; x(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))
) v1 H# a5 t0 ^$ z- z/ `: l: f0 L' x, m! {' x9 M6 G
(if (not ang) (setq ang 0.0))
6 j. F' a1 f! P7 d, M a
1 H. |/ L) E) b7 y5 c+ D2 L6 s9 Q& `5 V! o7 U: U2 N, ~
: Q- I, ^) h( F3 \ (setq pta (getpoint* x1 G5 o3 R# v; N) P- |$ Z
"\nPick first corner. : "))
8 O' N+ g$ ~$ u$ _! G. X& }* W- U (setq pt (getcorner pta8 B/ ?& @" V3 f4 v
"\nPick second corner. : "))8 h8 Q: V: w/ X! w1 }& p
1 I6 V$ a. ]( I" K# |
$ v. ^! X- W# x
(command "TEXT" "j" "M" "4700,2575" "0" (SETQ pt ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông Quy M«") ) (princ): d9 k4 Z7 c/ P1 c! X
5 U1 A( R) a# Q2 P2 x. S) L (command "TEXT" "j" "M" "4700,1325" "0" (SETQ pt ' "2 TÇng 1 Tum Thang") ) (princ)
. C+ s# e% K* {+ I% }4 P) e
! I6 ~5 @/ L6 z) f1 X. F! B (command "TEXT" "j" "M" "10600,2850" "0" (SETQ pt ' "Chñ Tr× :") ) (princ)
0 R& L9 T5 L D/ |1 I( r8 O7 X' y. d& \4 M& m8 J+ Y$ z3 {; }+ M E- H
(command "TEXT" "j" "M" "10600,1100" "0" (SETQ pt ' "TrÇn Ngäc Th¾ng") ) (princ)2 u( c1 [" j6 B" m
! p! E7 i, Z% l8 a4 g6 u0 j (command "TEXT" "j" "M" "15250,2575" "0" (SETQ pt ' "H¹ng Môc :") ) (princ)
, J6 P1 s0 y5 m( y+ y) [. O9 N! R8 w% a+ Y% g% M
(command "TEXT" "j" "M" "15250,1950" "0" (SETQ pt ' "Nhµ ë Gia §×nh . Nhµ LiÒn KÒ") ) (princ)
8 [' |& P% v3 I! }! C
% l: a+ Y$ q8 I7 D0 ]! z (command "TEXT" "j" "M" "15250,1100" "0" (SETQ pt ' "Tel : 09.76.89.12.94") ) (princ)7 O E7 L7 C/ S
; F9 c9 s, y* v (command "TEXT" "j" "M" "20250,2850" "0" (SETQ pt ' "ThiÕt KÕ :") ) (princ)
; C Q+ h; L& r0 [% T5 k3 }
3 w( p+ @4 V9 r (command "TEXT" "j" "M" "20250,2300" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)3 @3 H: O( d. L: I
. V, ^! ?" U+ \% [, L9 V7 }
(command "TEXT" "j" "M" "20250,1600" "0" (SETQ pt ' "KiÓm Tra :") ) (princ)
/ s8 W( i% s& O* m S5 {6 G/ c' E. M9 W- q2 p" a& r9 \
(command "TEXT" "j" "M" "20250,1100" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)' @" h+ i9 a1 _3 L% V4 e
/ H1 Z9 U! Q/ ~) u* F' } (command "TEXT" "j" "M" "23500,2850" "0" (SETQ pt ' "TØ LÖ :") ) (princ)
! H1 y$ S& h P `: C# C2 c* k1 [0 f3 r% x
(command "TEXT" "j" "M" "23500,2300" "0" (SETQ pt ' "1:75") ) (princ)
2 I- R% l, @; S
2 }5 u1 a! M* G' d! e" n (command "TEXT" "j" "M" "23500,1600" "0" (SETQ pt ' "Ngµy :") ) (princ)8 @6 ^ Y* n! i" ^+ u
5 R4 T8 m3 J" Z (command "TEXT" "j" "M" "23500,1100" "0" (SETQ pt ' "2026.07.02") ) (princ)
4 }+ O8 s% z$ f2 Y) [# @0 J/ o! _
(command "TEXT" "j" "M" "26750,2850" "0" (SETQ pt ' "Tªn B¶n VÏ :") ) (princ)
5 k8 \- u& i4 U; l2 P0 R4 D. d+ ~" Q; p2 w, B& ^
(command "TEXT" "j" "M" "26750,2300" "0" (SETQ pt ' "MÆt B»ng TÇng 1 + 2") ) (princ)
7 c2 d1 F! c+ @$ M2 i" i5 D
9 V' Q) Y5 C' Z# F (command "TEXT" "j" "M" "26750,1600" "0" (SETQ pt ' "Ký HiÖu :") ) (princ)" T3 F1 U! r9 N" x$ K# b |
& x. n( A5 X a9 T+ d' l1 ?& f (command "TEXT" "j" "M" "26750,1100" "0" (SETQ pt ' "KT-01") ) (princ)* K1 ?! v3 K2 S* B! l
) w! Y( c$ }. Q
(setq ptc (list (car ptb)(cadr pta)))6 H0 i: o. j+ p: B8 `
(setq ptd (list (car pta)(cadr ptb)))
: C# ]0 ?$ t n. X5 Q (setq ang (angle pta ptb))
5 O$ C4 e* V: G% L$ `# Q (setq d1 (/(distance pta ptb) 2))7 S& z% D8 Z5 H6 v% m# q j
(setq cp (polar pta (- ang (dtr 0)) d1))# k% h3 k( I# P) V; u. D( M9 Y8 l) `
(setq X (distance pta ptc))
3 b! Q! h! ` |. d (setq Y (distance pta ptd))
7 N/ Q& g x# j% g- T9 o6 J (setq X1 (rtos x 2 1)). J: t1 M. C4 x: y2 a
(setq Y1 (rtos y 2 1))5 M, z5 `% `, v9 K% {& G% _) L
(setq rmsz (strcat "(" X1 " x " Y1 ")"))
: c, N$ J5 P6 ^$ F (command "TEXT" "c" cp "0" CPT "_text" "" rmsz))* J" n4 P0 B) z; {$ f1 n' J
(defun dtr (angg)
& ` p1 [* ]2 i# m2 S G (* pi (/ angg 180.0)))% |5 {$ J1 z- N' o
9 v- c% |3 Y9 K @1 U;;; ============================GHI CHU Khung Ten========================
! L$ s5 m1 N' D7 [" N" o5 H$ G;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========" f$ [" f. b# D7 F; v1 ~
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================$ c' s2 h$ |/ b" a, X1 C; Y
;;; =======================Thuong Dung Font Romant.vnh===================
" ^, V/ z5 I t" g' V( g. j* P( q H$ F# a
(defun c:ipt (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)) [" p5 s# d9 s
(setq oer *error* *error* err2)% B5 K ?; [, m8 d
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5
0 p0 R. i: d Y
8 ]# t2 c3 B2 z: K5 q( k (setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))
- o/ R) ^7 w6 _0 M4 S* y
/ L" c7 t2 k6 f' q- |9 G& Y) q4 T (if ht (setq h_text ht))% q$ v9 ~0 j' h) N4 X
/ Y6 S. ~3 }" H [ j, `7 k# R+ G; }& g$ U4 T1 u# x4 X0 @
(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))7 q0 V+ h5 K: t2 d
; G7 A3 y- \6 c c (if (not ang) (setq ang 0.0))
8 J5 K6 ]) a+ f% D' I
) S% D% b' O, @3 R2 e* G
) F3 e( G2 g6 w( _) l: m5 V1 ]$ n0 `5 A t
(setq pta (getpoint
. e' U% }5 v" X1 r0 ]! X "\nPick first corner. : "))
7 o5 y# F5 N$ i$ F8 l! D (setq pt (getcorner pta& l7 x$ W& F7 [0 y# q" j+ M: @
"\nPick second corner. : "))
( j6 [7 R( Y4 K$ Q
' M& f- w/ V5 l' O
& n3 z5 r# p* R (command "TEXT" "j" "M" "5450,2575" "0" (SETQ pt ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông Quy M«") ) (princ)
6 @! A( ]/ U" x( F* U/ Y a5 ]' S; M8 x' w/ k( ]. G) W. N
(command "TEXT" "j" "M" "5450,1325" "0" (SETQ pt ' "2 TÇng 1 Tum Thang") ) (princ)
7 z$ |0 I: a" W7 E2 _: g( e9 s* ]3 L* x [$ F, C. I6 [
(command "TEXT" "j" "M" "10600,2850" "0" (SETQ pt ' "Chñ Tr× :") ) (princ)& g, A3 W# u2 k
- K6 y9 U+ C9 o$ Q7 ^1 r
(command "TEXT" "j" "M" "10600,1100" "0" (SETQ pt ' "TrÇn Ngäc Th¾ng") ) (princ)
3 O0 X: Y7 l. q# h4 h8 i5 N$ ~9 d8 A8 I- x4 e# U5 S$ T D& h5 p
(command "TEXT" "j" "M" "15250,2575" "0" (SETQ pt ' "H¹ng Môc :") ) (princ)
2 a5 |+ R: r. q( z- N/ a# s/ q4 `1 `4 |! Y
(command "TEXT" "j" "M" "15250,1950" "0" (SETQ pt ' "Nhµ ë Gia §×nh . Nhµ LiÒn KÒ") ) (princ)) n, l# J" U* r: O
6 M( {5 `2 a' K" ?. X" u" b8 g (command "TEXT" "j" "M" "15250,1100" "0" (SETQ pt ' "Tel : 09.76.89.12.94") ) (princ). [4 T& k4 J7 w4 m8 I# L
% V( ?8 ~4 _ z+ B2 t! D: x (command "TEXT" "j" "M" "20250,2850" "0" (SETQ pt ' "ThiÕt KÕ :") ) (princ)
& i6 h0 k+ p; r. p; |% ~
% L: Z1 D1 B7 w5 R r! P (command "TEXT" "j" "M" "20250,2300" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
$ o, V" P" J3 P, G: ]- t. E) g. {* f2 I+ T' p8 D2 Z: w6 Z
(command "TEXT" "j" "M" "20250,1600" "0" (SETQ pt ' "KiÓm Tra :") ) (princ): e: O* U4 v: R' f3 {9 B. y. P- T
. C5 a% w# c% w2 ` (command "TEXT" "j" "M" "20250,1100" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ), u6 [8 x- q* J; d+ w
9 u& A- O/ y% w6 [' B (command "TEXT" "j" "M" "23500,2850" "0" (SETQ pt ' "TØ LÖ :") ) (princ)% L+ M6 ^5 V3 s
9 t4 {) N3 N& [# F5 s
(command "TEXT" "j" "M" "23500,2300" "0" (SETQ pt ' "1:75") ) (princ)
: k: j) y+ \3 I0 F, Z
1 P" P" f+ U, Z (command "TEXT" "j" "M" "23500,1600" "0" (SETQ pt ' "Ngµy :") ) (princ)
% S+ N* s \ i1 Y Q2 ]$ ^3 V/ @; f3 ~; A$ e6 S5 E
(command "TEXT" "j" "M" "23500,1100" "0" (SETQ pt ' "2026.07.02") ) (princ)
# d3 Q: E/ T5 n, r* T1 q3 f# J- l, c* x+ x- \; s, T/ L+ M- k
(command "TEXT" "j" "M" "26750,2850" "0" (SETQ pt ' "Tªn B¶n VÏ :") ) (princ)
4 t# C" T4 ?7 G8 W2 A3 y
. Y1 ^( N# I6 g; F1 y: @. g (command "TEXT" "j" "M" "26750,2300" "0" (SETQ pt ' "MÆt B»ng TÇng 1 + 2") ) (princ)
$ [5 Z3 q H" d0 O$ `
* _8 u" k2 P- F1 a (command "TEXT" "j" "M" "26750,1600" "0" (SETQ pt ' "Ký HiÖu :") ) (princ)( o) s1 m1 i# ~/ ^, O
. O! b3 z5 a: z6 V7 T: { (command "TEXT" "j" "M" "26750,1100" "0" (SETQ pt ' "KT-01") ) (princ)
- _4 _) E0 ~6 ]2 C* M
0 E; t! m7 f! t% T (setq ptc (list (car ptb)(cadr pta)))# K o! J3 ?: h* d9 ?
(setq ptd (list (car pta)(cadr ptb)))! D4 D( H9 @7 w) G0 i) R3 t, U
(setq ang (angle pta ptb))4 \ e- d) Y* `6 W( `* N
(setq d1 (/(distance pta ptb) 2))
2 v7 {. S2 a/ ?7 } (setq cp (polar pta (- ang (dtr 0)) d1))" c) k. k' H7 `% ^* ?
(setq X (distance pta ptc))3 R5 s" o& y1 r
(setq Y (distance pta ptd))8 ^' |9 V; b G7 p+ x$ v
(setq X1 (rtos x 2 1))/ e# n7 |4 U( i" Y- q4 P
(setq Y1 (rtos y 2 1))
& @7 N u# @! \( p) x (setq rmsz (strcat "(" X1 " x " Y1 ")"))) V6 P& m* f% Q. F
(command "TEXT" "c" cp "0" CPT "_text" "" rmsz))8 ~6 g- l7 W" R( P- E, f
(defun dtr (angg)2 F; K: H5 w) a: ?1 i/ f0 O
(* pi (/ angg 180.0)))
W. |% H; E% N( P" {( A/ d
- X" H) |- R4 I0 R;;; ============================GHI CHU Khung Ten========================
( R% C2 L* y0 v8 s% e;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========9 C" c/ F" d) K5 p6 K( A
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================+ t" w( V' M8 M" @$ b8 }) B [7 A
;;; =======================Thuong Dung Font Romant.vnh===================
' d% @# J$ p3 n9 D
3 m4 O7 E* W( f8 M) u. I* R(defun c:iza (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)/ Q$ z$ \4 [+ o% A- }4 {! m
(setq oer *error* *error* err2). `" m8 }4 ]' R% `# O* i; O# Y% @& E
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5
. [+ C) N. l7 F+ |* o2 f5 G) B& c3 x* R9 H6 h
(setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))8 o* ~9 }4 L* y5 l5 t' W' C, @
- U8 e8 m' P) c& J4 i (if ht (setq h_text ht))* e. T- G8 J) ]" y, W# V
, S8 a, A8 m5 N+ @
& ~2 c) i5 K- m4 \' }(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))2 }$ j* u% H& p1 O, \$ v- q
0 _! W4 Y$ ^2 z) R% @& p (if (not ang) (setq ang 0.0))
$ @2 i2 N- c6 m# w# u! a$ A0 S& Z# A& w7 `7 W& H0 J: o) w1 [* H
! y9 [& T& T; [' P+ z8 V: _- l# u% G9 _# ~% ]
(setq pta (getpoint
! e& K/ j2 k( W1 u: v "\nPick first corner. : ")); N0 ?$ t7 r. l- R
(setq pt (getcorner pta6 }4 W W+ N/ ^. p1 p
"\nPick second corner. : "))
& B5 k" r3 s9 [9 b& ^
; E5 Y$ e+ M V* b4 `: F: l2 K( n+ d. f
7 T% k. [1 }* y" x: d1 ?3 L B
(command "TEXT" "j" "M" "25000,19800" "0" (SETQ pt ' "STT") ) (princ)
$ S; p7 r5 ]0 S4 Y0 o5 s: X, n
2 ]# ^2 D- k! F+ _8 u5 T (command "TEXT" "j" "M" "25000,18712.5" "0" (SETQ pt ' "1") ) (princ)* K0 `' c1 h4 H0 G# w' J; o
9 I4 H3 F$ K; w& r( s5 G: v
(command "TEXT" "j" "M" "25000,17537.5" "0" (SETQ pt ' "2") ) (princ)$ q- O' J. L$ K9 t0 s
* o3 j/ x6 e9 D6 Z' q! m4 |
|1 q9 w! r8 _# _) \, N (command "TEXT" "j" "M" "27250,19800" "0" (SETQ pt ' "Ngµy Söa Hå S¬") ) (princ)
2 V' d* g; o( f+ R8 A# }- L* e, B8 V
(command "TEXT" "j" "M" "27250,18712.5" "0" (SETQ pt ' "15.05.1997") ) (princ)
x4 G3 o" \' S* U( E4 M" B3 w7 d5 V: d- n1 [7 _! o
(command "TEXT" "j" "M" "27250,17537.5" "0" (SETQ pt ' "04.07.2026") ) (princ)6 @/ Y- _/ J" ^9 _/ Q
: b) p/ Q& S9 {, ^+ ^$ d* Q
9 L' g/ m, o8 U9 G! J% f (command "TEXT" "j" "M" "26750,16600" "0" (SETQ pt ' "C¤NG TY - Corporation") ) (princ)
8 Z3 Y( n7 z0 i7 x
3 [' T$ Z7 ~5 |* |2 I (command "TEXT" "j" "M" "26750,16016" "0" (SETQ pt ' "ZENNI.S.Z.T.K") ) (princ)
' j1 G7 k3 e9 `: K( P: q0 g9 N: n8 e1 e6 A, U
(command "TEXT" "j" "M" "26750,15433" "0" (SETQ pt ' "§Þa ChØ C¤NG TY") ) (princ)2 `0 t8 g- W/ Y1 N6 P$ u0 l
4 s" e8 r' f' r7 P! }* G
(command "TEXT" "j" "M" "26750,14850" "0" (SETQ pt ' "§Þa ChØ : 00.00.00.00.00") ) (princ)& Z8 X! k( |+ N! k; q2 a) q
* i) b+ m, f: z1 m& t
6 s/ D; K# z' G& [ (command "TEXT" "j" "M" "26750,14100" "0" (SETQ pt ' "H¹ng Môc : Part Project") ) (princ); A3 V2 o# b( N: y
( {' d: E$ x& B
(command "TEXT" "j" "M" "26750,13516" "0" (SETQ pt ' "Nhµ ë Gia §×nh") ) (princ)
1 B5 D+ H* t+ I# b% e( N* S% I8 @- X: p8 i- A3 n
(command "TEXT" "j" "M" "26750,12933" "0" (SETQ pt ' "Nhµ LiÒn KÒ") ) (princ)
$ F8 A' r; @( k+ E0 T+ S0 a
- z' `+ g O9 O (command "TEXT" "j" "M" "26750,12350" "0" (SETQ pt ' "Tel : 00.00.00.00.00") ) (princ)
H- `+ ~* h$ k5 V
$ B- h8 |9 c6 ~. K; h, c2 a0 @7 ~8 w+ Q/ T5 W
(command "TEXT" "j" "M" "26750,11600" "0" (SETQ pt ' "Gi¸m §èc : Director") ) (princ), O5 z3 f* _% Z( w: ^! K# v. ^
: s% Q! {# s0 {) `2 p2 C* y( D6 ? (command "TEXT" "j" "M" "26750,10475" "0" (SETQ pt ' "ZENNI.S.Z.T.K") ) (princ)
: I3 Z8 v" L6 \; o# O5 g3 e
% G1 H M* @* u6 w$ C (command "TEXT" "j" "M" "26750,9725" "0" (SETQ pt ' "Chñ Tr× : Main Project") ) (princ)
7 i0 `) W. I' g5 g% V9 W
8 @! A2 u# N& i9 g" N (command "TEXT" "j" "M" "26750,8600" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
6 A R9 i* U6 s! z# L: w; u2 I0 B4 P* K: K. M9 O
(command "TEXT" "j" "M" "26750,7850" "0" (SETQ pt ' "ThiÕt KÕ Vµ VÏ : Design") ) (princ)( x: P* m+ Z( _$ l( u8 x
& {) ~4 B/ g/ q+ j% N# Q; X (command "TEXT" "j" "M" "26750,6725" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
% ?7 @8 O' \; r& a6 I0 E, j6 Y; Z9 r
(command "TEXT" "j" "M" "26750,5975" "0" (SETQ pt ' "KiÓm Tra : Checking") ) (princ)& u/ l2 x. x+ t5 R; h
6 Z# @0 w. V! g+ {. s7 i' {' u7 l
(command "TEXT" "j" "M" "26750,4850" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
5 W" a$ A: }* Q% j5 W1 P6 ?! g5 H, p' [' V" |9 Y( f& P
0 {0 p2 X9 ~$ b8 |5 G# E& H
9 e5 A8 v9 s, D6 d (command "TEXT" "j" "M" "25625,4100" "0" (SETQ pt ' "TØ LÖ-Khæ") ) (princ)/ i0 G! o$ Z/ F5 f0 r" B! h
7 Z) K% m$ Y, [5 }. _" {" d
(command "TEXT" "j" "M" "25625,3600" "0" (SETQ pt ' "1:75 - A4") ) (princ)
; {3 _$ | B/ \
0 f5 a/ A. h: k' `3 o. h (command "TEXT" "j" "M" "27875,4100" "0" (SETQ pt ' "Ngµy Xong :") ) (princ)
+ ?6 K1 ?- n% ]8 D
* M* U6 s( A. C( O (command "TEXT" "j" "M" "27875,3600" "0" (SETQ pt ' "2026.07.04") ) (princ)2 P( V# T5 S* y& Y* a S6 a
( U( J" T9 t* C/ A, I (command "TEXT" "j" "M" "26750,2850" "0" (SETQ pt ' "Tªn B¶n VÏ :") ) (princ)1 w# Z) B1 f( {" [3 Z
: @6 A2 d( v- p# u' W: z
(command "TEXT" "j" "M" "26750,2300" "0" (SETQ pt ' "MÆt B»ng TÇng 1 + 2") ) (princ)* p% z! w' f! y4 D+ t' {
9 }) ?, Y: h" `6 J (command "TEXT" "j" "M" "26750,1600" "0" (SETQ pt ' "Ký HiÖu :") ) (princ)% q: }, K9 M u, T
3 g) f9 ?" R: C! z (command "TEXT" "j" "M" "26750,1100" "0" (SETQ pt ' "KT-01") ) (princ)
! W* s. O; ]# ^8 q0 E6 f8 v4 T% r4 _& R
(setq ptc (list (car ptb)(cadr pta)))
' D t! x) C" D (setq ptd (list (car pta)(cadr ptb)))- F+ I+ W0 Q/ |# `" ~4 w( B
(setq ang (angle pta ptb))! j% [6 l, K" w7 H
(setq d1 (/(distance pta ptb) 2))
8 O; H3 N9 b0 t! P6 M" C T (setq cp (polar pta (- ang (dtr 0)) d1))
& C+ W# s) `# i6 Q' C0 ? (setq X (distance pta ptc))
+ g8 Y# T" a" T (setq Y (distance pta ptd))
, L' c6 c0 h& a; v+ O4 O/ t$ q (setq X1 (rtos x 2 1))
, a9 O: p. v$ X# D (setq Y1 (rtos y 2 1))
. V* Q8 o. L8 I+ q S8 H8 P (setq rmsz (strcat "(" X1 " x " Y1 ")"))( Y9 J" {# ~. a. e4 V4 u& N
(command "TEXT" "c" cp "0" CPT "_text" "" rmsz))
8 u3 A. F: q ]( b6 m (defun dtr (angg); s9 w8 M' E t$ f+ o0 Q
(* pi (/ angg 180.0)))
1 V' [) ~ o+ o+ [: o" B+ t3 r0 s. j Z: W
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
7 g: h0 n& u3 U" h;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================" R* E; H9 b5 D: n% T0 j7 x
;;; =======================Thuong Dung Font Romant.vnh===================) I2 p- x: L; B- \: O/ Q
( P) @$ }4 a% A1 ?(defun c:pta4 (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)5 K' w# R: S3 X0 o+ h O7 E
(setq oer *error* *error* err2), k. a4 K; I' z! v* m9 E( f8 r. y
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5
( \. w r( s/ _2 F6 C1 Y( o# K
) x1 } x# t$ W& f2 B (setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))
8 a0 L$ e& V% G1 U" k6 _' V8 _/ M& k* h x( f. U+ |
(if ht (setq h_text ht))1 \% [* @# k) ] d4 g
& r/ f2 \4 G) r! {' v5 r2 V P1 X4 [& y- n: E& [3 @
(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))
1 W; E! ?+ M& Q% a% m5 t. u$ _: j0 ^+ f% M2 Y1 M O
(if (not ang) (setq ang 0.0)), e/ D% j$ Z1 {( h1 [
1 j' S" o1 v: s' g0 n" D
. ^' |0 W9 @9 a
1 T3 a- f. h" N5 m (setq pta (getpoint5 W8 J0 v5 ^1 K/ @
"\nPick first corner. : ")); X3 Q1 H( a8 B/ N; u
(setq pt (getcorner pta
+ b8 `$ w9 V4 x! _( V. P "\nPick second corner. : "))+ y0 d# I# S. B) V1 {; H2 D
- A2 c g: z3 |7 i3 x1 a9 ~6 R7 z% J# G% s! `( h
(command "POINT" "4700,2575" ) (princ)
) j( A# E( N! }$ Z( k5 _% K" s" F# h! ?: E4 W6 n
(command "POINT" "4700,1325" ) (princ)
( h9 l4 \8 c) w5 L/ M! J0 }; f( A$ V
(command "POINT" "10600,2850" ) (princ)
0 _- T" V% i" N+ M' J! A7 i& y+ h q& a
(command "POINT" "10600,1100" ) (princ)5 D0 @4 f+ c& @2 j
1 ?5 x- q( v2 _& z (command "POINT" "15250,2575" ) (princ)
! @# Z" z* |/ `# F/ {! g* u2 c
% v& O8 _3 U9 z; Q (command "POINT" "15250,1950" ) (princ)( z- z% \/ g5 a4 B% B3 A* V
8 C; r. D' B* W) ~, `1 c/ p! \& N- N (command "POINT" "15250,1100" ) (princ)7 _; U3 z4 N% t. E4 s5 p& w
: T8 I0 v/ O2 A, w4 H1 Y; z (command "POINT" "20250,2850" ) (princ)
3 a& f$ t& i3 N- f4 r) Y; T- g
: L. \+ J8 a* J7 |5 k (command "POINT" "20250,2300" ) (princ)# b/ ~4 Q1 c! }" S1 [
+ C" {6 ~# M5 w& H' k8 Y( { (command "POINT" "20250,1600" ) (princ)0 {9 \% j1 [3 \; i/ d
+ k% q( P) O( D
(command "POINT" "20250,1100" ) (princ)
9 O1 C8 |$ p, ~) G; F. w6 g5 y0 F3 F2 `7 R) V
(command "POINT" "23500,2850" ) (princ)
! Z! i% C& Y' w/ ~/ p! _! i4 X A' W% h3 N
(command "POINT" "23500,2300" ) (princ)
& s5 n; `: w, C$ ?
9 X( ~5 H, H( X; V3 u (command "POINT" "23500,1600" ) (princ)4 w, T4 m/ q. H( Z! _
" O" N$ _0 ]$ e1 B* S" v
(command "POINT" "23500,1100" ) (princ)
+ w1 h& }# R9 A' ?* y5 S5 |1 I2 c* A, b- D9 o
(command "POINT" "26750,2850" ) (princ)
. Z' h! f w6 D. D0 e [
' ?' v- U; n& m3 {, }% ~ (command "POINT" "26750,2300" ) (princ)
: {) e$ H3 m' C. I0 d$ }) B+ Z7 P- R# `& {7 ^
(command "POINT" "26750,1600" ) (princ)! b5 W7 i6 G0 j% l1 Y8 U+ Q
1 v' \; t) ]- l% u8 M* Y
(command "POINT" "26750,1100" ) (princ)4 v3 R4 K; z6 L) k4 A% g9 p
$ O9 n0 r+ y. ?& M
(setq ptc (list (car ptb)(cadr pta)))# W {! y" g/ |8 c
(setq ptd (list (car pta)(cadr ptb)))
; { i8 @# h+ w6 C; y4 K (setq ang (angle pta ptb))
7 k- t8 ~. L4 N; D5 K1 f (setq d1 (/(distance pta ptb) 2))
# I. n3 R1 q( | (setq cp (polar pta (- ang (dtr 0)) d1))/ s6 H7 }4 g0 t- I; z3 D; U$ i
(setq X (distance pta ptc))
5 ]$ J H% n0 U (setq Y (distance pta ptd))) D8 |- A+ a# y- k
(setq X1 (rtos x 2 1))6 f+ r# N8 j; J; Z1 m8 i: ?
(setq Y1 (rtos y 2 1))
5 e4 g# [" \0 W* V* T) f* W2 N/ @ (setq rmsz (strcat "(" X1 " x " Y1 ")"))
4 \% L4 ?- K n; y' T0 e L# }, _ (command "TEXT" "c" cp "0" CPT "_text" "" rmsz))' p$ C% B: Y* D5 ]
(defun dtr (angg)$ F. _9 F4 J. d: L
(* pi (/ angg 180.0)))2 a2 i2 ~; q, m$ X
3 r9 Z0 x0 D- U5 k;=====================================================================% ~7 x( v. j9 Z" ]
;====================DAT KHO GIAY BAN VE - KIEU 1=====================
" u1 w/ a! H! y7 B! F+ w$ ~;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
3 s% m1 l* O3 n K$ t& a. n% k' o1 {* V) Z7 Z. t/ t8 b8 ?, Q
(Defun c:a6 (); ^ n( n% V, q' B- ], J
(setq mv_sc 100);Ti le ban ve6 b8 V9 {/ u' C. A. F' Q' {( j
(setq x4 74.25)
7 L) b! k% `$ w$ D1 J (setq y4 52.5)! A( z4 u1 `- P4 V* \) _
(setq x4 (* mv_sc x4) ' Y: g/ R2 ]' n
y4 (* mv_sc y4) )) v3 r% e2 i7 ]* V) q# D
(command \: u& p+ n2 @- f
"LIMITS" "0,0" (list x4 y4)
( w6 h# h) f- `+ M% ^# n "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"" Y0 ^; ^) J- Q5 n( z) B
"RECTANG" "125,125" "@7175,5000"
( p- L2 Q) Q3 D& ~ "RECTANG" "175,175" "@7075,4900"1 E6 x9 d: R: {. @" O5 E
"ZOOM" "_a" ))$ V/ b/ q0 C& ^5 [) ^/ B [) f
;=====================================================================5 F j4 k0 }, A
(Defun c:a5 ()
4 a- `. o: f* x4 J# i (setq mv_sc 100);Ti le ban ve
Q/ Y/ \2 A6 V7 F8 B) ^6 I (setq x4 147.5)2 C% Z- \& Z/ W* x/ F$ m
(setq y4 104)
7 c1 O) W' p1 w, u- \* R) I6 K0 z (setq x4 (* mv_sc x4) 0 F( ~- W# {2 N. Y% ^3 L
y4 (* mv_sc y4) )3 [0 y0 I' s f) o. i0 F% d
(command " V% ^6 U% s8 p X0 U( f
"LIMITS" "0,0" (list x4 y4)* f- N* P9 q) Y& ]/ j
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
& i+ H4 @. }* J" n8 j4 L "RECTANG" "250,250" "@14350,10000"
! Z( J+ H. i: D# i* |3 I* y! u0 W' y "RECTANG" "350,350" "@14150,9800"
9 t; i, ]7 l! P( I "ZOOM" "_a" ))
: {3 r( K% k" P1 a R;=====================================================================
( a5 w/ p, b3 K0 {$ _4 Q% W(Defun c:a4 (): p% u3 \! e% o' S) S
(setq mv_sc 100);Ti le ban ve
! |$ v$ A5 v/ L5 Z6 _. }: R/ r; |( k (setq x4 297)
. u# I1 x# M: P( R (setq y4 210)4 K# v0 E& F) v+ P
(setq x4 (* mv_sc x4)
, t+ x" j( O" L y4 (* mv_sc y4) )
$ `% Y- {1 g1 { G) M% C (command
; ^5 P( ?: X4 D7 | "LIMITS" "0,0" (list x4 y4)
- D; B4 f5 n) J$ q% K5 M "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C" M$ B% J7 p* b: g7 Q; r
"RECTANG" "500,500" "@28700,20000"8 G7 L- K( ?; F2 y
"RECTANG" "700,700" "@28300,19600"
/ S8 ]* D3 i9 W$ N% X4 L/ v) s- h "ZOOM" "_a" ))
5 _. z* E o$ [4 a x" U$ Z;=====================================================================
' P6 p( M- Q M5 f$ Y(Defun c:a3 ()6 c+ k( p F! t& n+ T7 O' r F/ |
(setq mv_sc 100): _5 o" T: B. d/ O( i, h4 Z( O9 z
(setq x3 420)
; ^1 x/ S1 d* v4 o, I (setq y3 297)
; N. u; w3 t! A (setq x3 (* mv_sc x3)
' k, W6 y4 J& [. Z y3 (* mv_sc y3) )
2 j2 ~9 s; S3 E (command , V. M; X* I0 `* O/ v- h
"LIMITS" "0,0" (list x3 y3)6 o2 s% }! R3 ?* A
"PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
9 y5 r4 T0 j/ o. ` "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"" W+ Y4 r7 T A* U
"RECTANG" "990,990" "@40024.28571429,27720"
( ]* A6 x$ W- f! ` "ZOOM" "_a" )); w, s" P) t# v; L+ A
;=====================================================================8 \/ e8 o) s0 I, n
(Defun c:a2 ()2 O; D! D2 i# O D
(setq mv_sc 100)* \2 ]3 Q2 b! N7 S x7 ]; L M
(setq x2 594)% V, Z* y. Q! `1 ~
(setq y2 420)
- h$ R! B/ a1 ~' }. p2 t+ { (setq x2 (* mv_sc x2)
7 b; _5 c, t2 h1 D y2 (* mv_sc y2) )
: p& x4 R9 z# U3 c4 t! X (command 0 f; @: S/ `9 g* c, b
"LIMITS" "0,0" (list x2 y2)
# v' @4 L, l# F" B9 z9 Z. W$ u "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
. {3 H3 n) g) s$ u( B. I" j% F( m "RECTANG" "1000,1000" "@57400,40000"
* G% P7 M: r8 @3 C3 @5 V "RECTANG" "1400,1400" "@56600,39200"
- g3 g* u& P& |. z) w# T "ZOOM" "_a" ))
' p, x8 u5 S/ w8 E1 H;=====================================================================# @" D6 s9 B8 V. Q8 `
(Defun c:a1 ()3 V' r: z/ c8 \& b* w# ^1 N( Y
(setq mv_sc 100); c. P( z5 G7 ?+ w, k) t) b0 l# g2 F
(setq x1 840), i2 d! E7 C/ t2 g; ^
(setq y1 594)1 c# b+ f2 E# I$ G5 L6 |
(setq x1 (* mv_sc x1) / p6 ?( x. s6 X9 t- f3 a3 F* X
y1 (* mv_sc y1) )
$ X: N+ o! {3 ^6 P8 N/ B (command
4 K: q" J8 y6 H* \" b/ D "LIMITS" "0,0" (list x1 y1). m8 q3 r1 N& C* e$ h' B" l5 v, b
"PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"3 |. _" A( L- g9 J O
"RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143" ?- g. ?( J ^# j
"RECTANG" "1980,1980" "@80048.57142857,55440"+ h7 p6 P& b' o* W
"ZOOM" "_a" ))
* S) |5 N K1 R/ b4 t;=====================================================================
" P3 S+ Y9 m+ ~( o. g(Defun c:a0 (), t9 ^( o( }! } o7 x3 k" ~- K5 t
(setq mv_sc 100); D; @3 _. A+ q: c
(setq x0 1188)
' c" K( ]( ~" E+ v. K (setq y0 840)
4 l, P# k+ J: o' H9 q (setq x0 (* mv_sc x0) & V8 q, [1 b, s; V, g; E
y0 (* mv_sc y0) )
5 P+ V4 d( u% @+ s' I5 a6 L (command " B1 N0 Y+ Q! ~5 f* ~1 x, ^
"LIMITS" "0,0" (list x0 y0)
L/ {1 r$ J% H+ r3 U8 m. A+ P& \ "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
L, C; l' A1 r6 [4 _8 } "RECTANG" "2000,2000" "@114800,80000"
& Q: [% K6 x+ c9 W "RECTANG" "2800,2800" "@113200,78400"
# H; {0 y! F) S( f; \" \. } "ZOOM" "_a" ))3 c I; {7 B, J2 S3 a' l7 E6 u
% K) s: V; Y% ]+ v" \;=====================================================================+ b: `" m, S5 ~* t2 ~
;====================DAT KHO GIAY BAN VE - KIEU 2=====================8 z/ L- i! X! D4 w
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
2 i7 z8 D: l) ^/ V& _* | G- {5 d! o( a7 b
(Defun c:6a ()
' u1 L# k* L I (setq mv_sc 100);Ti le ban ve; v, Y/ |3 g8 R N
(setq x4 74.25)3 w9 I* d0 P/ p9 t# f
(setq y4 52.5); c) J) I% U4 r# a3 s+ d
(setq x4 (* mv_sc x4) 6 J0 O0 V8 k& f# O$ y" C
y4 (* mv_sc y4) ) u; Y- v: w! ^' ~; B
(command $ ~7 `! t9 j, U" \! r, D1 v
"LIMITS" "0,0" (list x4 y4)8 m. B! @) f( ?: A+ ^
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"- i1 c, h' V( ~
"RECTANG" "505,125" "@6800,5000"7 O/ U. A( H2 `
"RECTANG" "555,175" "@6700,4900"# K: n0 }+ d, Y3 L+ }( T7 N, M
"ZOOM" "_a" ))
& `7 ^# ~/ I* W+ o% i- ^# `$ a6 s# V;=====================================================================
4 L9 G4 j3 R3 P(Defun c:5a () P9 k' Y5 ~' [4 Q$ B
(setq mv_sc 100);Ti le ban ve* g" A1 n" a5 l0 w/ X& l% n* Y0 G: @
(setq x4 148.5)
+ U- V2 c/ j3 g7 f, Z6 e (setq y4 105)
2 g8 j/ {( X; l. c, Q (setq x4 (* mv_sc x4)
% x6 v% r& p- w y4 (* mv_sc y4) ) Q9 S, G H: [+ V: X# ]
(command $ `$ n% J: j0 M- q5 x1 C
"LIMITS" "0,0" (list x4 y4)
6 ]& M0 n5 R9 A8 R- b" f "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C": Y& `$ @: A1 d* s( D3 G
"RECTANG" "1000,250" "@13600,10000"; v0 M2 N7 g* p9 {. \5 f4 r' X) A
"RECTANG" "1100,350" "@13400,9800", F0 G/ n) c2 B9 f* V* ?: L
"ZOOM" "_a" ))
% x, Y) Y6 I7 ^" L. v. [;=====================================================================' y4 N- \- l4 F8 ~ x+ `
(Defun c:4a ()
& _! @# K& G4 q3 t( k3 G8 N: { (setq mv_sc 100);Ti le ban ve
! ^1 m( Y7 q& |1 k. S (setq x4 297)$ `( P$ `" q6 ^# r
(setq y4 210)0 }% O3 E) z, v5 x
(setq x4 (* mv_sc x4)
+ I) q; M4 `6 w8 B( C- w0 i* v; c6 j y4 (* mv_sc y4) )
, T' m. s @ z1 r6 r4 M4 ] (command
7 i& `! K2 l- \! S" U "LIMITS" "0,0" (list x4 y4)
. n9 L5 t ^3 x7 |, W% p; u# P! \ "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"" V+ g w6 W8 O& ?8 ?# o
"RECTANG" "2000,500" "@27200,20000"
# A% a3 z5 v @3 G$ r' ? "RECTANG" "2200,700" "@26800,19600"9 S! a7 D) V& u' a6 K, \
"ZOOM" "_a" ))
0 ~0 O0 z( l" J9 z# I0 y;=====================================================================( J: G$ d( L1 E6 x, G+ e
(Defun c:3a ()
# K9 \! w3 A/ r (setq mv_sc 100)
5 v: S4 L, {( I2 z) d' E4 e2 U (setq x3 420.0428571429)
3 b/ M2 P' e! ?4 |" G8 F (setq y3 297)3 ~% n0 I) a: r6 g5 s" Z
(setq x3 (* mv_sc x3) * _0 D+ y+ w/ ?" @, k6 a
y3 (* mv_sc y3) )) k+ b' [& o$ B7 @6 D7 V8 x
(command 9 W$ t8 d" a7 A
"LIMITS" "0,0" (list x3 y3)% I6 E& M5 A) b; o$ o! ]7 ]: B0 u* Y
"PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
2 ^0 l* N3 w" j "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
& _( f2 k+ f' ^ "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
3 Y/ u, V8 d" r. y, U "ZOOM" "_a" ))1 s+ s! _$ D& m4 }3 a
;=====================================================================2 {2 H3 _: c% @ f7 R; S; b
(Defun c:2a ()1 n, ?: d/ z3 j R
(setq mv_sc 100)
8 Y6 T& y$ \& n- P (setq x2 594)
% c) z2 v" c5 _( ? I# X (setq y2 420)
- _6 X; T+ A6 }9 v9 E2 H2 j6 [8 t (setq x2 (* mv_sc x2) " x( X4 u3 T+ V) I7 `4 W
y2 (* mv_sc y2) )
* B9 h" ?5 D2 w' x) A (command 4 B$ i0 Y ?' t- i7 R" c
"LIMITS" "0,0" (list x2 y2): r) _+ [% M3 ]- m! z3 u$ X
"PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
# _/ [4 Y5 h, k. H5 s& K "RECTANG" "4000,1000" "@54400,40000"
/ G* [# z* p6 N; V/ o$ g "RECTANG" "4400,1400" "@53600,39200"7 X5 Q x% X T8 j4 I3 a
"ZOOM" "_a" ))
, ~4 I4 ^' [& m( c. u. ~0 T;=====================================================================
7 i6 p7 |) E3 o(Defun c:1a ()
1 c9 C: s/ A# l0 s (setq mv_sc 100)/ K! E( j2 l6 {. t3 e# ?0 N) f+ O
(setq x1 840.0857142857)
; ] g* m# e" G' x4 o- g$ j2 @ (setq y1 594) [( g G- T7 S
(setq x1 (* mv_sc x1) 8 y# J5 S4 \9 u w$ T5 v6 |8 @
y1 (* mv_sc y1) )& U) L) h8 _& W6 j
(command * L9 R3 }7 h) _' {
"LIMITS" "0,0" (list x1 y1)
4 I ]- Z3 r6 d% F "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
! j2 g& ]" s* ?. k/ g6 B "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"7 D* P) p+ L$ H' D5 A' Y3 B6 y
"RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"# B* S1 I8 H" s# O2 ]+ C
"ZOOM" "_a" ))3 L3 r3 G: l4 W. v; a' F0 Z! ^5 V- h
;=====================================================================
7 P) \7 }4 h5 E* A/ u(Defun c:0a ()
$ Q& E( x$ S7 `3 n# E- ~ (setq mv_sc 100)9 e+ l m' ~2 N5 G) o, }
(setq x0 1188)
, [9 H$ b! _# L" w6 f3 D" U (setq y0 840); i) k, e8 b/ D# h
(setq x0 (* mv_sc x0) 4 T: |# A; [! d+ k/ J0 i$ p7 \
y0 (* mv_sc y0) )0 X& }# ]' n" k" }3 f/ l
(command : a$ l+ N6 f) O1 }( o* S
"LIMITS" "0,0" (list x0 y0); L3 |& Q% }5 f L+ h
"PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
" [% n) w1 o7 u/ f/ E+ K. X "RECTANG" "8000,2000" "@108800,80000"
6 X- p+ x0 e; s "RECTANG" "8800,2800" "@107200,78400"
' D/ h; w5 u% w5 b1 v0 i "ZOOM" "_a" ))
7 T' c9 V- X( g. {; t9 |9 U
1 J% o2 d3 [% R4 {;=====================================================================
& ]( |) Y5 g7 F6 n9 ^% y! |) r! h;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
. e7 ~! b! h: m+ x" l0 w4 d1 };=========================== Nguoi Khac ==============================
7 j0 @7 f- s, w# u2 o2 }(defun c:khogiay (/ oldlst a b c d e f g h kho TL)
* ?2 H* @+ C$ S4 z8 M z% r(command "undo" "be")
6 ^- k; V, x u" l2 a) F& f$ w(setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
' X9 H1 D6 M. B(setvar "CMDECHO" 0)
0 O& Y) x( w+ b' \ (setq a (getpoint "\n chon diem chen :"))
( j# H) v: Z4 z9 u- J) B- g% C(if (not TL) (setq TL 1.00))5 f3 f- o3 _# |, v6 h
(setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))8 @9 o# z7 b3 {& b. y+ i; J
(if TL1 (setq TL TL1))3 h' x( }" V1 V; D' w, N3 T. x
(setvar "osmode" 0)
- ^8 D$ A2 D" O( W# c: C5 D(if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
& l E/ x) ]( m! |, C(initget "0 1 2 3 4"): R$ @* {! u4 I: w+ Y
(setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
) n7 F, X& R- r% E; O (if (= kho "0")
; y3 x; S# y+ ^1 a: p `9 X. i4 S (progn
& x6 H0 v% t+ V; h n. M% B. U (setq b (polar a 0 (* TL 1189)))# i! v# v8 Z! k( h2 M% _ |7 H
(setq c (polar b (/ pi 2) (* TL 841)))
: T, `; A v; N+ ]6 q (setq d (polar a (/ pi 2) (* TL 841)))
' E' K, z6 y- A8 M7 y9 s- l (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
/ \9 l0 O6 b) f* c$ b (setq f (polar e 0 (- (* TL 1189) (* TL 24))))# J! n' }. A+ f" D7 P. u
(setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
$ U. E( P. a, p (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24)))): i3 a' q" v- o+ N8 I
(command "Pline" e f g h "c")
- O( N! Q ?$ T8 `+ h( N(command "change" "last" "" "properties" "layer" "0" "")
W; k- ?' @2 a8 ^(setvar "cecolor" "4")
$ q; ]( _! x4 ^$ @. V: n (command "Pline" a b c d "c")
9 r9 D6 x: X) n& g+ h' V$ D9 k, P(command "change" "last" "" "properties" "layer" "defpoints" "")))
9 ?6 F9 Y6 L3 F* M d! ?1 o (if (= kho "1")
/ T# T) ]! i2 h5 p; U* W( x0 t (progn
% F$ N; v6 p( y6 [3 a' h5 h (setq b (polar a 0 (* TL 841)))
7 a. Y8 K# s- g; `1 I (setq c (polar b (/ pi 2) (* TL 594))): R$ ^1 z" N2 V" @
(setq d (polar a (/ pi 2) (* TL 594)))
; C$ j* O& }2 Z' V! Q U% I (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
1 Z0 Q3 K2 A; V t5 A+ c (setq f (polar e 0 (- (* TL 841) (* TL 24))))
# _: O- u+ f" K; \' H& W3 l (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))! h5 s1 x5 O0 ?
(setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
9 i2 j/ ]) N# I( r (command "Pline" e f g h "c") 0 E! B2 P) E. f
(command "change" "last" "" "properties" "layer" "0" "")& B) d! \' ]: r) |* A! ]% U
(setvar "cecolor" "4")
. e+ C0 H; q+ W3 N6 g! S, d (command "Pline" a b c d "c")# c- K4 Q) e5 S- E
(command "change" "last" "" "properties" "layer" "defpoints" "")))! U& m/ s5 c* b) v% e6 z
(if (= kho "2")
# ~7 i/ N6 Q7 Z6 ^4 i! K) i3 y* }( b (progn
5 N0 t# S6 E% f. F _) N- } (setq b (polar a 0 (* TL 594)))
7 d$ ]: y+ T( u, X (setq c (polar b (/ pi 2) (* TL 420)))# ^; O: D% M7 l0 n& v
(setq d (polar a (/ pi 2) (* TL 420)))2 l7 V6 F* G. d
(setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))# O7 ^6 i" q+ b* R0 T
(setq f (polar e 0 (- (* TL 594) (* TL 20))))+ |3 Q( @+ R/ Q) N% p9 Q: r
(setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20)))), R: E' N: D/ A( w! Z; f
(setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
Z0 j6 ~+ l% _% ~% ? (command "Pline" e f g h "c") 2 @2 l. e2 p2 X; f
(command "change" "last" "" "properties" "layer" "0" "")
' M) n7 z1 D& J8 g( L! l(setvar "cecolor" "4")
: U: C/ K$ _$ _6 G$ b2 H6 {6 _5 N (command "Pline" a b c d "c")
/ \1 C6 u. e7 t4 f- y* v+ ^1 p(command "change" "last" "" "properties" "layer" "defpoints" "")))2 V9 h1 B8 ~% @3 B5 A
(if (= kho "3")3 c- z( R* y2 }% e
(progn1 |" A7 P X" j) ?" Q
(setq b (polar a 0 (* tl 420)))2 Z1 J i @- G! G
(setq c (polar b (/ pi 2) (* TL 297)))
+ v' Y0 Z- D: i: h" ` (setq d (polar a (/ pi 2) (* TL 297)))
( z! u! r3 _2 f8 ~# j (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))! ^. y0 d6 f; O0 R" z0 J2 `
(setq f (polar e 0 (- (* TL 420) (* TL 20))))1 `/ ^( z$ `; x
(setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
( W( E/ M9 M* T. ^0 _0 p* x (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
6 ^6 w; a- l4 r(command "Pline" e f g h "c")$ O# K! S% ^) W
(command "change" "last" "" "properties" "layer" "0" "")9 C' b3 S* H8 h p) z4 z
(setvar "cecolor" "4")
/ M0 }" F6 U: b1 z: I0 ?7 R8 E h" N(command "Pline" a b c d "c")# w6 d$ J5 L0 N, W* N0 w! O6 {4 `
(command "change" "last" "" "properties" "layer" "defpoints" "")))1 ?7 \ B9 {& S1 u! o
(if (= kho "4")
: y% {6 I V( J (progn9 d4 F; W& t7 ]0 ~! k/ a; V
(setq b (polar a 0 (* TL 297)))
5 s8 _: E/ ~& H! B8 h$ x/ r (setq c (polar b (/ pi 2) (* TL 210)))
! C7 R6 k5 \4 a: x3 e1 L0 E (setq d (polar a (/ pi 2) (* TL 210)))# L, R. W2 p- C( l- W! J* ~* \/ \
(setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
7 M4 E- n6 A0 S0 v: _ (setq f (polar e 0 (- (* TL 297) (* TL 18))))8 [: P9 N+ F" @3 H+ I1 L
(setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))8 y! d/ l) i) o1 R; g9 E
(setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
) N; Y0 w) p4 R k N# a (command "Pline" e f g h "c") & g& _! W9 r' K1 }# U- I- u
(command "change" "last" "" "properties" "layer" "0" "")
; F: r" U6 a2 O( `: X" m* x: ~ Q' m8 n(setvar "cecolor" "4")
7 n8 I/ B) b" w/ U: |9 z6 F) C/ K (command "Pline" a b c d "c")
6 y3 o: s3 h$ c/ S(command "change" "last" "" "properties" "layer" "defpoints" "")))3 B) Q# q" P9 G" e8 ^! Z) z
(mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
. ]+ [4 [. @9 c ]6 u(command "undo" "e")
4 l( I3 |1 O/ ^5 C6 m6 k3 X(princ))! p$ L9 s8 _6 g, r
;=====================================================================
# E$ x& Y# @* i;==================DAT KhoGiay Theo KHO GIAY BAN VE===================/ h0 x" J" X- a& P
;=====================================================================
; W# a, d: M3 y7 X: ?. U% }* C2 {" H! D: `0 m7 u3 A+ T
;=====================================================================
% M7 J7 C4 [6 l) M" ^' d;===================DAT Ti Le Theo KHO GIAY BAN VE====================
1 B8 B$ T' `7 T8 Y6 x;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
2 R! \* L' F) K" t/ B' ~ v) c q7 t. N: z3 f
(DEFUN C:SA6 () (setvar "DIMSCALE" 411.11111)' b" i9 ^0 U+ p9 y6 z+ M4 }
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
! T4 ], Z, i( C9 N4 c j "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
7 |$ @* D, N3 I5 s "M" "MANH" "C" "9" "" "Lw" "0.1" ""
/ Q6 K* A5 [" ~) U "M" "TEXT" "C" "7" "" "Lw" "0.12" "". L+ B1 i; o2 i7 Y; H0 [
"M" "DIM" "C" "1" "" "Lw" "0.12" ""* c( g# i/ ~. @; p2 Z* a
"M" "THAY" "C" "7" "" "Lw" "0.2" ""
, p5 ?. b2 k- f$ ^ "M" "NOITHAT" "C" "60" "" "Lw" "0.12" ""8 J/ [4 W% Z! i
"M" "HATCH" "C" "5" "" "Lw" "0.1" "" R: G! b7 j( e( ~
"M" "COT" "C" "1" "" "Lw" "0.3" ""
" O$ ^5 ?3 G- H" v, K- T' X "M" "Defpoints" "C" "7" ""# \9 I4 A, z' C# w' W. V( N+ R7 O# F
"M" "0" "C" "3" "" "Lw" "0.12" ""/ u7 w- a/ b& e0 g. R6 @3 q
"M" "CUA" "C" "6" "" "Lw" "0.12" ""
; k% |8 c5 p! D "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""# D" \7 L* B* }) y8 N* p. `) {/ M
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"5 T: @' t$ K) G7 S# S7 n
"M" "NETDAM" "C" "4" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
i$ X& J8 {, W* i "M" "NETTHAY" "C" "255" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1" C% f% S2 u/ Y8 @
"M" "NETMANH" "C" "43" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
7 G; H( O& n, q3 w2 ^ A' ^ "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
/ R! ~3 r. G" {8 a+ J; L9 r "M" "TEXTTXT" "C" "7" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
, A* q( t: x$ j1 k4 X! }' \# y. ] "M" "TEXTVN" "C" "60" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"" v4 O7 \2 i; t X: N& b
"M" "TEXTVNi" "C" "60" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
+ O }* `# @) D: u3 Y "M" "THEPDAI" "C" "3" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"8 _2 L% e- o8 q2 K9 `! c) E2 m
"M" "THEPDOC" "C" "2" "" "Lw" "1.20" "" "LT" "Continuous" "" "" "LTSCALE" "1"2 B. {, O, G2 n: m5 l/ Z& ]$ S# K
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"* i2 X' O# C1 ^0 z
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.4" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"3 W6 z' k5 ?5 s' `+ ]
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.4" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"- {+ l5 h- O M+ i L1 V& J6 p
"M" "KHUNGTEN" "C" "4" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1", s# | N! z5 V4 ~/ E8 h# T
"M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))(princ)
8 v1 K( o" w2 |+ V+ w# D(DEFUN C:SA5 () (setvar "DIMSCALE" 611.11111)
7 e- O/ B) x2 h' g (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
8 D! P- J! K3 o) [0 d4 j2 h( l "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""' Z7 m, D# t- v! R
"M" "MANH" "C" "9" "" "Lw" "0.12" ""
( e" E2 I# |: v: t0 a% X) H "M" "TEXT" "C" "7" "" "Lw" "0.12" ""# b9 T6 \# j& d! x0 _0 [. F
"M" "DIM" "C" "1" "" "Lw" "0.2" ""
& N( A; c* q; C' K "M" "THAY" "C" "7" "" "Lw" "0.2" "" L7 f% T& p+ h" [* U) a
"M" "NOITHAT" "C" "60" "" "Lw" "0.2" ""
' ~% T3 t% x" p9 d" c. H "M" "HATCH" "C" "5" "" "Lw" "0.1" ""$ o: g$ [/ U* D' F+ n! l" I. T. V
"M" "COT" "C" "1" "" "Lw" "0.4" ""( V, z, P P( _# I
"M" "Defpoints" "C" "7" ""
: ]( {2 P- s& z, K "M" "0" "C" "3" "" "Lw" "0.2" """ x1 E N# V' o& A# {- C4 k
"M" "CUA" "C" "6" "" "Lw" "0.12" ""
8 M2 E6 E! }) ]' L& y/ ~ "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" "") L8 Q/ H: y4 z0 \/ b
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"6 Y' M! c# z5 W8 p
"M" "NETDAM" "C" "4" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
' U6 f8 X l& z" i, d "M" "NETTHAY" "C" "255" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"4 S- c/ {0 f G z
"M" "NETMANH" "C" "43" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
+ e4 F% E' f2 i- Q0 O U; \8 @ "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"5 W8 O$ e& g; V# `
"M" "TEXTTXT" "C" "7" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"! x* @" c( \; L2 t/ ?% h
"M" "TEXTVN" "C" "60" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
+ ~: J. X4 l" H+ Q" J0 j "M" "TEXTVNi" "C" "60" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
2 e x! x: p& Q; I: e. j "M" "THEPDAI" "C" "3" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"- R2 d: C m1 N& |! j- p* y% J' B
"M" "THEPDOC" "C" "2" "" "Lw" "1.40" "" "LT" "Continuous" "" "" "LTSCALE" "1"5 U; x9 ]% Y9 q, Z! q4 c
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
* p- L! P$ B* _8 a "M" "4-WateR_IN" "C" "4" "" "Lw" "0.5" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"' f% E! s5 _# V8 l2 _: @
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.5" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"1 V6 S; E3 C" H. e7 P6 c
"M" "KHUNGTEN" "C" "4" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
# J( f E X$ {7 B; a$ Y% g9 \( I "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))(princ)
! X" b$ g9 b+ f( c |(DEFUN C:SA4 () (setvar "DIMSCALE" 1411.1111)" m: x# l# e4 R7 v* u7 B9 t
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""- K4 E5 `' O" r/ G% k3 m
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
0 v3 [/ g( z* H; C1 E! ?' ?* v "M" "MANH" "C" "9" "" "Lw" "0.2" ""
2 P: Z/ m5 d; j: Z( x3 U8 v( w "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
! L8 N, f& T3 b& O p S "M" "DIM" "C" "1" "" "Lw" "0.25" "". B7 a, n: E: D5 F
"M" "THAY" "C" "7" "" "Lw" "0.35" ""' |/ I# I2 y5 l8 J: ]8 [+ v
"M" "NOITHAT" "C" "60" "" "Lw" "0.25" ""; e! ~4 f! ?' `/ W2 U% w
"M" "HATCH" "C" "5" "" "Lw" "0.15" ""
( A7 n g8 X, X6 F: Z2 P/ @2 |: H "M" "COT" "C" "1" "" "Lw" "0.6" ""6 x- ~% I5 i, x3 `: q
"M" "Defpoints" "C" "7" "" i4 H1 O/ s3 S, Y* X
"M" "0" "C" "3" "" "Lw" "0.25" ""( n! D0 W* ^% W+ k
"M" "CUA" "C" "6" "" "Lw" "0.25" ""
. `' b: M2 @4 m( Z4 [# j# ] "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
! `# H5 Y5 V- O% ^3 ?: E9 z. `1 U6 x4 J "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"9 h2 p2 g- c6 T. U( i, T
"M" "NETDAM" "C" "4" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"$ U- b6 d- X+ x" q7 D5 L8 D: u7 V+ ?
"M" "NETTHAY" "C" "255" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
+ T% t6 b4 D5 }! m# x "M" "NETMANH" "C" "43" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
! i9 A8 z3 Y- E- V "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"0 {0 ~, R% S/ V$ p0 N* }
"M" "TEXTTXT" "C" "7" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
6 _& T. Z. a1 ~* d "M" "TEXTVN" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
5 u. A+ J. k$ z1 D) s, t$ g "M" "TEXTVNi" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1") x, H4 `" O$ C4 H# D3 e' e w2 v
"M" "THEPDAI" "C" "3" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
s/ P8 V- K# o& p. h; |& h& t "M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" "LT" "Continuous" "" "" "LTSCALE" "1"+ R8 J; w+ G4 T8 p0 |
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"' S+ ]- }3 T( ]* }
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
3 x9 O3 p l8 N0 u- g "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"/ V0 ]% a& M8 w% Y& ~
"M" "KHUNGTEN" "C" "4" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"5 C8 |1 J# [# Z2 }7 g
"M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))(princ)2 y3 a! }4 t- G M) x; F
2 F! P- i2 M) u2 ~+ I1 |* f(DEFUN C:SA3 () (setvar "DIMSCALE" 1611.1111)6 x! f. k3 q* x
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
% P! v9 d# B3 ]: S6 N "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""; Q8 R C4 U; q5 r
"M" "MANH" "C" "9" "" "Lw" "0.25" ""
2 U* W7 r V% F* h4 N "M" "TEXT" "C" "7" "" "Lw" "0.2" ""' W9 g2 Q. O$ G5 B4 e
"M" "DIM" "C" "1" "" "Lw" "0.35" "") B- I* e: k) y2 {: [) B
"M" "THAY" "C" "7" "" "Lw" "0.4" ""
6 [9 a" |/ r+ D "M" "NOITHAT" "C" "60" "" "Lw" "0.25" ""
. o' y$ o1 t0 D* {9 E9 i "M" "HATCH" "C" "5" "" "Lw" "0.2" "": h4 c$ S, c, J8 C( @( j: w8 O$ }
"M" "COT" "C" "1" "" "Lw" "0.7" ""
/ |9 }2 o1 w/ ?# I$ m) y "M" "Defpoints" "C" "7" "" J) u' H$ k. ^; l6 F+ R
"M" "0" "C" "3" "" "Lw" "0.25" ""
* ]) o/ M S6 v8 F "M" "CUA" "C" "6" "" "Lw" "0.35" ""0 M7 [! j+ J- B, B
"M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
# _; ^0 l& x2 O' u "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
) p- ^/ x2 D3 J* i( D "M" "NETDAM" "C" "4" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1": Z# r# _" |; S" i2 u
"M" "NETTHAY" "C" "255" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"3 Q8 x/ G4 _ K( A
"M" "NETMANH" "C" "43" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"( f; h3 Q! ?: i7 L
"M" "ThietBiDIEN" "C" "2" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
9 w) l9 k) t$ [7 H1 }3 g6 [# r "M" "TEXTTXT" "C" "7" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"; i' \" S) Z8 K1 o& ?1 M$ `
"M" "TEXTVN" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"9 M/ A! U2 B X7 o
"M" "TEXTVNi" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
" Q3 W- ^" Z4 d "M" "THEPDAI" "C" "3" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
7 ]! t& Q' X7 ~+ R, R: i3 o( J "M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" "LT" "Continuous" "" "" "LTSCALE" "1"
: m" w, Z- M, b4 P "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
2 d/ }- `, E1 v- D3 g "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
: @- @( @. ?0 y7 s9 |4 l9 u6 t5 S "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
/ y( Z! I- A# B, q$ i- I! J "M" "KHUNGTEN" "C" "4" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"/ d9 ?: l; Z! v7 L5 O
"M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(princ)4 {* E7 N' s4 g% ]
1 ?3 W: |! P+ I' V$ {
(DEFUN C:SA2 () (setvar "DIMSCALE" 4111.1111)5 C/ [6 _8 Y+ _4 j) B
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""6 T+ K* k4 b" G
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
' G, m |2 E) P8 K "M" "MANH" "C" "9" "" "Lw" "0.25" ""
! l) ^* P q s+ v( _# \& {: u "M" "TEXT" "C" "7" "" "Lw" "0.25" ""; K% O2 w: }! c5 u1 Q4 x8 k
"M" "DIM" "C" "1" "" "Lw" "0.3" ""+ z6 C- t8 }% w1 o5 W! J% |3 e
"M" "THAY" "C" "7" "" "Lw" "0.4" ""9 e+ ^* r0 }$ ~) Y" M/ G
"M" "NOITHAT" "C" "60" "" "Lw" "0.3" ""
/ T$ X; ~) ^" X5 D( v5 ~ "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
/ Q! E( u. D0 A! p "M" "COT" "C" "1" "" "Lw" "0.7" ""+ X1 s8 r' ?+ x( C' @, g, J0 v* t- f
"M" "Defpoints" "C" "7" ""
9 n% K+ E8 u" u6 X% p "M" "0" "C" "3" "" "Lw" "0.35" ""; ~3 J) a, |. ~+ x; q
"M" "CUA" "C" "6" "" "Lw" "0.35" ""; R5 W) @+ p$ p
"M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""0 P3 H! D j; S/ P! ~+ b4 D
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"( R4 `+ l- f0 G9 e& Y' f1 i
"M" "NETDAM" "C" "4" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"2 m3 |/ i+ k3 k% {3 V6 F* J+ Y
"M" "NETTHAY" "C" "255" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
7 {1 n$ L2 U1 d9 x1 J8 ^) v "M" "NETMANH" "C" "43" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
, r8 U }2 _& c2 g9 o3 P "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"5 i) `3 v' k$ p6 T; h
"M" "TEXTTXT" "C" "7" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
' V# {: d0 U, m, h4 F "M" "TEXTVN" "C" "60" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
) @* c3 {, G. U7 Y "M" "TEXTVNi" "C" "60" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"! F4 i7 ]7 f: T6 @1 b; ?& p4 e1 @( K
"M" "THEPDAI" "C" "3" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
6 K; G& g* n" d' A "M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" "LT" "Continuous" "" "" "LTSCALE" "1"
8 t# I7 `3 i2 R+ a, E "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
& w& M$ e: ]# I4 ^6 m2 v2 c" e "M" "4-WateR_IN" "C" "4" "" "Lw" "0.7" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
2 ^0 u' I% X- K% D* t* M9 k; B7 v "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.7" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"6 [) c; }4 ~; {3 n+ @- i
"M" "KHUNGTEN" "C" "4" "" "Lw" "1.20" "" "LT" "Continuous" "" "" "LTSCALE" "1"( i" @% [1 Q3 B+ p
"M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))(princ)
3 l' h+ r) d3 v$ ?$ m. t
R6 Y7 i9 _/ t+ Y" G(DEFUN C:SA1 () (setvar "DIMSCALE" 4411.1111)
5 W3 ?9 [0 \. ]/ A. q9 Y (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
8 T. F# }* l$ W5 O; k- G9 [ "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""( R" V. m" H' }' a. A. X
"M" "MANH" "C" "9" "" "Lw" "0.35" ""4 I h/ L- y' b$ k7 C) T
"M" "TEXT" "C" "7" "" "Lw" "0.5" ""& K$ Y, D+ m) O' ~& R$ S1 V( q
"M" "DIM" "C" "1" "" "Lw" "0.35" ""
9 I" j3 Z4 K2 x "M" "THAY" "C" "7" "" "Lw" "0.4" ""
2 R+ ]" @# m" j1 @2 p9 D( ^ "M" "NOITHAT" "C" "60" "" "Lw" "0.35" ""
& T6 k* k2 G; K- c: b "M" "HATCH" "C" "5" "" "Lw" "0.25" ""! _6 ~& U7 B) ]" X# B' M% a( P
"M" "COT" "C" "1" "" "Lw" "0.85" ""4 t& R. o( a0 U
"M" "Defpoints" "C" "7" ""
- S) E# B8 C/ G ` B "M" "0" "C" "3" "" "Lw" "0.35" "" h/ [$ u/ ?3 D9 g/ e* y- \
"M" "CUA" "C" "6" "" "Lw" "0.4" ""7 l9 T; J) }) ^/ g7 E, F8 H
"M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
$ Q$ x* v, M) l3 Q0 ]- h, O "M" "DAY-DIEN" "C" "3" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"0 x+ Y1 e5 C1 u0 l4 I8 S# g- y
"M" "NETDAM" "C" "4" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
! s% V h/ d/ m "M" "NETTHAY" "C" "255" "" "Lw" "0.9" "" "LT" "Continuous" "" "" "LTSCALE" "1"$ O: c% v7 v( `+ _
"M" "NETMANH" "C" "43" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
- o7 u) {" F4 z4 G& D ^ "M" "ThietBiDIEN" "C" "2" "" "Lw" "1.0" "" "LT" "Continuous" "" "" "LTSCALE" "1"9 V( W U' G. ?+ P
"M" "TEXTTXT" "C" "7" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"' P6 m& q5 H( {" f
"M" "TEXTVN" "C" "60" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
# I" r0 n. W- F$ u3 R "M" "TEXTVNi" "C" "4" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
. d8 x. J( S) d6 t5 V- f "M" "THEPDAI" "C" "3" "" "Lw" "0.9" "" "LT" "Continuous" "" "" "LTSCALE" "1"
2 z, [; v6 ^" o "M" "THEPDOC" "C" "2" "" "Lw" "2.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"
9 E \* m2 y* G# W "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
7 T& V( p( i( l; L3 U/ L& F6 e "M" "4-WateR_IN" "C" "4" "" "Lw" "0.8" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"0 O0 i" x1 F. A9 F
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.8" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
; R' u- L2 C# @ O7 K ? "M" "KHUNGTEN" "C" "4" "" "Lw" "1.40" "" "LT" "Continuous" "" "" "LTSCALE" "1"
: b6 f, L7 \* f" ~! L! K "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))(princ)3 ]: K; [2 I8 M, A4 P2 A- V1 j+ i
9 `3 m; e6 V2 u* `9 c9 y(DEFUN C:SA0 () (setvar "DIMSCALE" 6111.1111)
9 u, z) ]6 C% p5 N (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
& A$ j) C: f: \/ \$ I e' f "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
1 ]9 b7 R/ i% ^2 I0 y# _% \ "M" "MANH" "C" "9" "" "Lw" "0.35" ""
3 M/ v* {# c! ^$ Y" Z/ C3 h' H "M" "TEXT" "C" "7" "" "Lw" "0.5" ""* m- S' L0 B5 t' M9 ^
"M" "DIM" "C" "1" "" "Lw" "0.35" ""
4 w/ E* ~2 ^3 Q% t( Y- N0 `' s6 J "M" "THAY" "C" "7" "" "Lw" "0.5" ""$ \( M' v9 f% }' H( A' A: X
"M" "NOITHAT" "C" "60" "" "Lw" "0.4" ""
5 a+ ~9 w8 N. R1 s5 {5 \: k0 ` "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
" \6 T/ F( J+ ~4 U' z! L "M" "COT" "C" "1" "" "Lw" "0.1" ""
$ R8 Y% l; g- v6 w! d6 f "M" "Defpoints" "C" "7" ""
1 C8 [* \% M4 F3 S7 ~ "M" "0" "C" "3" "" "Lw" "0.5" ""' {0 H! A4 ?8 |9 W% Z
"M" "CUA" "C" "6" "" "Lw" "0.5" ""! F( }# N* W0 x; f
"M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""; A% i: S, }, S$ _" a) F
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
: b$ }% f# Z' e- W/ u "M" "NETDAM" "C" "4" "" "Lw" "1" "" "LT" "Continuous" "" "" "LTSCALE" "1"
# g! G# P3 {& P/ J" J "M" "NETTHAY" "C" "255" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"( n- E- {- S8 D: F
"M" "NETMANH" "C" "43" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
1 \' n( T$ x2 | "M" "ThietBiDIEN" "C" "2" "" "Lw" "1.20" "" "LT" "Continuous" "" "" "LTSCALE" "1"
) p3 k; i- g$ X# m5 p# Q "M" "TEXTTXT" "C" "7" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"7 ]/ c ?( U0 J0 D* j6 A+ {
"M" "TEXTVN" "C" "60" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
) W9 C1 I0 u+ p "M" "TEXTVNi" "C" "60" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
: y7 N+ a& a$ s1 P2 X "M" "THEPDAI" "C" "3" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"
9 B4 c. Z, S5 b7 p0 F' V2 r "M" "THEPDOC" "C" "2" "" "Lw" "2.11" "" "LT" "Continuous" "" "" "LTSCALE" "1"
) ?: m7 l3 k9 `% ?! V2 N! R1 o+ H% D "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1": M6 ]1 j( D; }8 Q4 ^
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.9" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
. u& v7 l* K h, T "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.9" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
; h" |7 H$ b! l- _; y- F# z' f. Q; ]) J "M" "KHUNGTEN" "C" "4" "" "Lw" "1.40" "" "LT" "Continuous" "" "" "LTSCALE" "1"" S& c; r& O! \5 @, i
"M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))(princ)) u# r* o# ]; G$ x- z% x
(DEFUN C:O () (COMMAND "OFFSET"))8 t+ D7 x0 ~6 T6 H& b& _4 P+ u7 j
(defun c:s1 () (command "surftab1"))+ c4 ?7 T0 z: S1 P% J1 R1 x) g( i, W
(defun c:s2 () (command "surftab2"))
& c* ~! o( |8 _% c" e7 N; ^(defun c:ep () (command "explode"))
$ F6 t& a/ O" R' R9 E1 F$ Z(DEFUN C S () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
9 J0 e6 @5 ]& H5 c7 F' }( g(DEFUN C V () (COMMAND "QSAVE"))
3 N; g- t! x2 K2 Q(DEFUN C:S () (COMMAND "STRETCH" "C"))7 r/ f. i3 ^6 }( `
, r: @$ U2 }- ?& ~* m
;************************** CAT DIM **************************& i# \* X$ W& P) H% j W
+ A7 w9 a3 Q/ [2 Z
(DEFUN C C (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
: r+ H) l! J3 Q PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
8 }8 w6 l# l* I(SETQ CMD (GETVAR "CMDECHO")); q1 y$ t% m; r
(SETQ OSM (GETVAR "OSMODE")); q+ c6 T$ l1 c! ?
(SETQ OLDERR *error*6 c: W8 e8 x. {: `4 L, c2 p% {
*error* myerror)
+ S. d. Y! c7 Q5 L2 V, g1 o(PRINC "Please select dimension object!")' Q& V# S' N5 _, `. }" c$ p2 c
(SETQ SS (SSGET))
, h6 |! Z0 R# M) v+ O" A# R; W(SETVAR "CMDECHO" 0)
( {7 }! s- U. x(SETQ PT (GETPOINT "Point to trim or extend:"))
% `/ w# w0 X8 m(SETQ PT (TRANS PT 1 0))
E' K+ h5 [: g; X, q" M(COMMAND "UCS" "W")' x0 d% }8 o2 Q% Z# c, y
(SETQ LTH (SSLENGTH SS))1 Z- Q0 y6 r/ Z- \' W' n
(SETQ DEM 0)
" E. S. C. B8 }(WHILE (< DEM LTH)
2 h5 J, x0 o2 x5 V) j (PROGN! a0 H* X0 c' p- K# t& p" _5 x ~! O
(SETQ DS (ENTGET (SSNAME SS DEM)))$ q/ U3 o4 ^, J. I2 @+ a
(SETQ KDL (CDR (ASSOC 0 DS)))1 t" N7 }' {9 M" K5 I! f/ k; k4 K
(IF (= "DIMENSION" KDL)& q9 r4 |; {. K! R9 G& u
(PROGN9 Z4 V1 m( d4 f8 s9 c
(SETQ PT10 (CDR (ASSOC 10 DS)))
' p# n+ c. w/ B1 L* H- l) Y B (SETQ PT11 (CDR (ASSOC 11 DS)))* t3 [1 F+ Y) g/ K- J
(SETQ PT13 (CDR (ASSOC 13 DS)))* [( Y/ H* b E4 |; d7 w; z5 K/ [
(SETQ PT14 (CDR (ASSOC 14 DS)))
2 d1 y3 R$ U2 {0 P (SETQ N70 (CDR (ASSOC 70 DS)))
' G# K# e% a+ ]0 I1 A (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))" @. i! B- e& R$ g! k" _( ]; {
(PROGN; O$ N4 E9 [( z+ H" p; O. K, N
(SETQ GOCY (ANGLE PT10 PT14))! v) o z$ y& y% {6 }0 w6 y3 Q
(SETQ GOCX (+ GOCY (/ PI 2)))8 N: L4 ]9 x2 d4 b
)% m1 K$ U7 f8 [* x: h' ]! N: \: q
)5 Y) Z2 a2 W( C- c8 M4 i
(SETVAR "OSMODE" 0)/ @) @" s6 ?3 J( c- S* b. j. t) @
(SETQ PTI (POLAR PT GOCX 2))# n3 }3 r9 ^3 d& o2 I
(SETQ PT13I (POLAR PT13 GOCY 2))
3 W; n2 q6 S) r( D+ }+ }3 Q (SETQ PT14I (POLAR PT14 GOCY 2))
" }7 s9 V% D4 @( d (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
1 l% r+ V4 O$ U (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
& I" {3 Y7 s. B U9 y) ]8 C (SETQ O13 (ASSOC 13 DS))8 u; y& h$ l1 n; {
(SETQ O14 (ASSOC 14 DS))1 k( R S; }9 t/ i( T4 x9 b- S$ i
(SETQ N13 (CONS 13 PT13N))% v4 V0 L& t( _6 |; `3 s: Q
(SETQ N14 (CONS 14 PT14N))
: U- f) _5 J/ U& R$ p" L8 \* ~ (SETQ DS (SUBST N13 O13 DS))
8 h l8 n2 g( m& O4 r% A (SETQ DS (SUBST N14 O14 DS))
, X- u$ j0 \$ t' g (ENTMOD DS)
( q3 O4 _9 R1 A6 x- ? _ )
9 E) j, R& |$ x( t5 k )
2 m8 M- ?, m3 T, w8 P% Y3 ^9 U (SETQ DEM (+ DEM 1)) \" K0 h, S) t- B' M3 i& s& W
)4 a% |, V3 G, f% d& K
)- g/ E) h- R1 r9 v- ~
(COMMAND "UCS" "P")
, K% y, }1 I7 }0 X0 w(SETVAR "CMDECHO" CMD)
8 v) f! A. e0 @$ `- e) c7 `(SETVAR "OSMODE" OSM)' G! r4 i" J& I& ?% } [
(setq *error* OLDERR) ; Restore old *error* handler
; R4 e& ]8 R w" \ j(PRINC)
% V6 M- G% _6 ]" B! {$ ^)0 a; F9 \; I4 D0 H
0 J$ B# p; `+ k) G& [. c6 M
(DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI6 P% M% n* l# U8 c* O9 K
PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
5 x6 D2 E% R6 @ I9 p" I(SETQ CMD (GETVAR "CMDECHO"))
2 O- O _( `$ K9 f; q: O5 V' N! V(SETQ OSM (GETVAR "OSMODE"))
2 }" [- G ^4 ]* U! I5 ` v2 ^(SETQ OLDERR *error*
2 O; K$ f) x7 O2 J7 m$ B *error* myerror)9 J! r% q& x \6 \+ J/ ]
(PRINC "Please select dimension object!"): @9 ?. y: X1 l& T
(SETQ SS (SSGET))
8 U: L" n& f% Y3 T0 E. m5 Q(SETVAR "CMDECHO" 0)
7 B" O, p- G1 I2 J(SETQ PT (GETPOINT "Point to trim or extend:"))
. P$ a) i! g9 s(SETQ PT (TRANS PT 1 0))8 }6 r1 Y U) H
(COMMAND "UCS" "W")/ a$ x/ \7 D# i5 z
(SETQ LTH (SSLENGTH SS))
! v4 Z& l. ?& ^! C; B( \5 M: k(SETQ DEM 0)
F6 r9 p* c7 k- Y: W. p- o) `: n0 C" n(WHILE (< DEM LTH)' M' E! ]$ s8 V' X+ L
(PROGN
* X2 w# ]) x9 ?, D$ @" n, }+ u (SETQ DS (ENTGET (SSNAME SS DEM)))5 u) p \5 D3 h. V
(SETQ KDL (CDR (ASSOC 0 DS)))4 G6 U( T$ y4 t5 j7 S0 j2 l: ?
(IF (= "DIMENSION" KDL)
' d% {! o4 [3 x/ V3 { (PROGN5 Q X+ u) u' m3 N$ g& L) u
(SETQ PT13 (CDR (ASSOC 13 DS)))
; t0 |- x4 K7 p8 J- v1 k (SETQ PT14 (CDR (ASSOC 14 DS)))
. ~: g! q" C. M1 j: l (SETQ PT10 (CDR (ASSOC 10 DS)))# s0 y m! M$ ? E
(SETQ PT11 (CDR (ASSOC 11 DS)))" W& w5 b: x7 p
(SETQ N70 (CDR (ASSOC 70 DS)))
4 c T8 U9 d" y3 t5 }3 q (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
8 g3 V) _6 I$ b3 h+ e$ L (PROGN
: p$ F* F! E7 c l! m/ \1 p! W8 ] (SETQ GOCY (ANGLE PT10 PT14))
$ A7 K8 s( a! o0 B5 |3 I% H0 L (SETQ GOCX (+ GOCY (/ PI 2))). I3 F! |: u, K# t- s
)( |4 d) U8 O, r/ |
)0 w, `' s% }4 w
(SETVAR "OSMODE" 0)+ c7 O4 n5 m) O2 i
(SETQ PTI (POLAR PT GOCX 2))7 \& k( Z9 T! z9 g$ R
(SETQ PT10I (POLAR PT10 GOCY 2))9 ~& e' Z( p! A3 C& v! v' r2 A/ y
(SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
1 f2 I$ J& ^7 R- D2 |* z (SETQ KC (DISTANCE PT10 PT10N))$ g- y5 v. f" o. }, Y- T
(SETQ O10 (ASSOC 10 DS))- z6 |- u* O7 }5 k% m) o9 F
(SETQ N10 (CONS 10 PT10N))
) O, C( Z$ D7 t9 M. F; b (SETQ DS (SUBST N10 O10 DS))9 g& C5 d: X& `
(SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))2 [6 n& P W( m! f% k0 D5 c7 \
(SETQ O11 (ASSOC 11 DS))- g' J! P8 K1 ~9 L6 u r
(SETQ N11 (CONS 11 PT11N))
) K+ |( A/ A/ p0 j (SETQ DS (SUBST N11 O11 DS))5 b& b' O3 A& {6 W% O
(ENTMOD DS)
$ T0 q1 E, d- m% | )- |* I/ Y9 L5 k( u$ d
) w: P+ ~9 [: T- P
(SETQ DEM (+ DEM 1))
' e4 g8 o% f3 ?- `; Y X5 r+ d6 n )$ ]3 Y* E8 q$ R9 f, v. U3 A
)3 H/ c b* ]* ]8 U( m
(COMMAND "UCS" "P")
/ C4 ?# Y" a# ]' o7 k' k(SETVAR "CMDECHO" CMD). R0 R J2 s$ G7 T8 Y
(SETVAR "OSMODE" OSM)5 Z" S) \ K o, w: w
(setq *error* OLDERR)$ T! b3 ?2 A) l3 T
(PRINC)2 F) `+ H6 \6 D: p
); L N* D6 O( Q0 i1 P
3 n: o' b \* l8 V) L
# b; v- p z6 s h: R;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================3 w# a% ]7 t" [) A5 i/ v; Z8 X/ I
+ E9 K3 j( `0 c0 z- q( K3 {(defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")1 _. P; |7 H8 v1 f0 T' p5 i# f; _( g
(prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
- {" I4 W+ N8 q sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt+ |5 O3 c+ W2 o. Y! G/ A
(entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
Y4 A/ l! M/ z2 e (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")! Y6 R+ `* i$ t: |1 I! o/ P
(= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))6 I! b5 t# _5 Z6 g" M2 x/ z9 _
(setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
/ s8 D- B9 u% W. I+ r (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))* R( T: e2 G( E
/ n! x l ?0 I! T5 `) j4 R2 _;;; ================ CHEN COT (TUU) =================
8 _7 B+ E+ t+ X& j/ Z. \9 F
* ?$ A1 w+ a+ x6 q: U! D P- `(defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")8 }, h a3 a. v. o7 S' v
(prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
: f: E) A# F1 X7 [: \ sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
# J! \! t x1 B w) g9 H. \8 l* Q (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
5 E. \ k) H* x) A (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")& d4 w7 I6 H9 T& `6 p
(= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
% w0 Z- |' h! X2 V& \2 V' u! r (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
5 a. `* S( n4 Y2 f (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))! V6 W9 \2 s$ w+ H% ^
6 T/ O& `- d: \, S/ ?;;; ================ CHEN KY HIEU THEP (TP) =================
' U: C7 ?9 V+ n( c$ c: T7 n6 V! X& k+ b5 n/ ~* b( q* v, P
(defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
" P d$ X: S1 e (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")7 u }2 E; |3 c
sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt" J. U* i- M- e' K. F7 g V8 C0 e
(entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
h3 ]1 x Y! M3 O q2 s (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")4 L! b5 t' q9 E; F1 D0 {
(= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
0 {% V; y; K/ t (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
) u* l+ i' e: W (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
; M# Y# w+ O* Y* @+ L* [, B
6 w( }. ~* \) y;=========================== TAM TUONG (TAM) =================================* o% ?* g' T. V* x7 R, O: t R+ }
- D3 e; Y. k/ O& {' p' y(defun c:tam(/ data_m)% `& K2 g( {- z7 J" a
(defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))8 k( N V/ e( A8 R5 i9 x
(princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
" d" {: ` [- {; V3 [$ y0 ? (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)
4 n6 ]3 y! H" z9 T (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
. X6 z3 P/ U$ G/ Y( `, P& W. { (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
5 D# E E; R+ q7 f9 j6 g* W1 i (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
3 P2 H# r$ |4 O, J" p9 F )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
7 T0 ~; `( U$ U1 R* K( m X (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
6 _4 |0 `8 ]2 k$ K( U7 v distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2) ^: A# e' `$ U2 k
(nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1))). H6 a$ V5 }" R1 [8 ]( u
(setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
* U! e0 |6 l) J4 }7 X* Z; w (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1). J5 S1 t v& t) D; q
distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
0 ^+ X( b6 v, P1 k8 Q9 i (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
- j; m# e6 Z9 i5 b* `1 j (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
" Q: v- V7 `* W2 H& D/ ] (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
4 y- w* M! S! S& ~7 g/ X (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))8 H1 U! w, k: T9 g: ], f! O8 X
(import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))) v1 F: }, G& O2 k9 v
. U0 `3 H1 x' z% D; z9 B;============ GHI CHU PHI (T1) ================
5 R/ `& x* ^4 X, w" O/ {
) y, u5 ]3 `4 ~ o# f(defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
5 T- }# a8 {5 c { (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
9 P2 Z- Z8 E. \; N% z$ W (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
5 x7 e4 R4 z0 V- Q M; ] (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
3 g& Y: I' b0 c ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
$ \3 `. j1 i' ]! x, A, ~3 O5 J0 \ (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
5 L" G6 z2 n: n) i4 o5 q, j 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
% s3 E- N* I6 M. Z: W; {, M (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )# r' D4 g8 j5 n7 s
(command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")' _) ]& W' Q( c) y
(command "ddedit" pause))4 y2 G$ i, _9 H) n5 x8 F
. w0 D; A3 q1 l8 C! Y, Y# s;;; ========================== Join (J) =================3 z" c6 C2 `' Q( _7 ]1 L: Y
2 Z ^ q2 I. J, p3 U0 V h# U* p5 |(defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
0 ^ V8 ] i. _9 F, e. \$ \. f (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))- V- U8 ^# H) `
(setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
6 `# z9 c9 b# E: s ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE"), ]! u: ^8 f- i: ] k9 n( Z/ }- M
(COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
- i' P5 z7 k' _- _8 ?8 m' M; n, \ (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))6 E. I& a4 T. X: Y
(progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) & d9 Z, |, I9 t# ^! ]. J
(if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
" X6 I) x1 D( k (setq *error* m:err m:err nil)(princ))
' n# A- V9 l2 b' y( f" Q
" _7 x4 l* P: s# L, c9 V6 l;=====================================================================
2 T/ c a3 c0 D7 B8 L5 G6 A;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
( t3 c' `' {$ W0 Y7 O. z3 H;=====================================================================
2 E( K. B& Q3 D3 a- C, _. I9 L+ c1 H' e f# A; i
(defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
, s: u. G/ j) F; N (setq old (getvar "OSMODE")) 0 a1 x$ l) ~' _6 j& _ U
: B3 L& S/ D( I
(setq p1 (getpoint "\nStart point:"))
( c% i8 q5 U) Y- H! ?4 a* y (setq p2 (getpoint p1 "\nEnd point:"))
) B$ _' C8 G7 j5 q/ a% D (setq side (getpoint p2 "\nOpen side"))
4 d) I* O1 E# }: t9 S; Z' k6 g: ~. B0 a/ Y1 r6 |; }8 d
(setq dis (distance p1 p2))) e) j2 E4 e, |4 n: r9 |8 g9 O
(setq ang (angle p1 p2))3 q4 ~6 T Z+ J. U* c. P6 _
(if (< ang (angle p1 side))+ F; F. [* S% r% ^: |
(setq angside (/ pi 2) ). B7 ?9 T8 `8 R( u* o- x4 i0 Q k/ p
(setq angside (- (/ pi 2)))
0 c+ y+ i% z5 _: P* w )6 j% \6 z, b# ?2 ]% J
(if (>= (- (angle p1 side) ang) pi)
m- D' N; R; B( @2 V (setq angside (- (/ pi 2)))
0 h4 s. Z: Z, b( Z ) E2 V- e x2 D
(if (>= (- ANG (angle p1 side) ) pi)
( A5 }5 q, T1 { (setq angside (/ pi 2))
S' D4 r! I, |- {% N! M3 A" q )& B+ {1 h% u4 C; E! I- Y( U! c
- j& B4 d J) N' E* a7 u
(setq p3 (polar p2 (+ ang angside) dis) )
0 G0 n- d& I5 E7 Z- w! l. a (setq p4 (polar p1 (+ ang angside) dis) )3 F* p" l0 }! X) }" S: z$ f/ ?
(setq wid (/ dis 15))
# J+ O& p7 X: |+ P
- Q; T7 o( o* ~; D4 _ (setvar "OSMODE" 0)
" b& \ }4 b+ W6 F' [: y0 _+ `
- m1 G, a* t5 e) h (command "PLINE" p1 "A" "D" p4 p3 "L" p2
) V# O& P: }+ I5 h# I+ H4 P* O/ Q (polar p2 (+ ang pi) wid)
% V6 O" w* Z6 @+ y" S; W (polar p3 (+ ang pi) wid)
" `! o5 O2 h2 T, v. h "")4 o r- L4 d* h
5 J% V3 `4 I9 C* U: B% ~1 }8 G* a/ P8 j (setvar "OSMODE" old)* ~2 [8 e! a) t/ ^/ f; D2 ^
(princ)
& L0 I( K3 \$ J$ A)
' x2 @$ T7 @* w. G R8 x" [' i6 B0 {: h- Z. ]" O2 b& T/ t( p
;=====================================================================
( u8 H: c- x6 Z3 j) ~: V8 q
2 `; \* W9 C! H# k(defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
3 o. ]$ O6 X! o$ i. x$ B+ k, o. W) i (defun cua1 (pt1 pt2)
! L4 C; ?* K% [% \- Y9 t; T (setq p1 pt16 R8 k" E y3 ]5 Z2 Y
p2 pt2)6 M$ a) _5 [4 r; p8 n$ r
8 C0 Q1 J% k* |" s& {0 L$ K9 w& d
(setq ang (angle p1 p2))
# D0 ^: ]& y4 X (if (< ang (angle p1 side))
: C! B$ n3 g8 C+ t4 j4 G" A; w (setq angside (/ pi 2) )
7 U) C( `8 D: U9 ]% Z g (setq angside (- (/ pi 2)))
" `6 O& W- K2 U5 M. L6 f R )0 |, ^5 Q R% Y$ @! b
(if (>= (- (angle p1 side) ang) pi)
4 }" U" f* `( R) \# F" L& W) q4 [ (setq angside (- (/ pi 2)))& B6 v' p, C+ E$ d) ]- b
): E7 r9 B' V& o. o: P
(if (>= (- ANG (angle p1 side) ) pi)- [' m' t0 y9 L3 d7 }
(setq angside (/ pi 2))- T# w: T7 _ g- I9 `
)) Z$ A* h5 \1 n
3 I1 M7 c# m, J& I2 q (setq p3 (polar p2 (+ ang angside) dis) )& |# Z& ?5 w8 V; Z# G; B4 R) F" m9 I
(setq p4 (polar p1 (+ ang angside) dis) )5 c; B( c$ G/ N# c! T* X- ~0 C
(setq wid (/ dis 15))8 b% d5 ^& @1 ]* a
7 h' v; ~( P# x- S; F (command "PLINE" p1 "A" "D" p4 p3 "L" p2 4 o: r- D) W* ]# N
(polar p2 (+ ang pi) wid)
: h% S! J1 `0 p; }# ` (polar p3 (+ ang pi) wid) 5 s2 W/ z/ ?0 U: _. E
"")
3 f' X" {% }2 [. x1 d )
5 }" x$ M$ @5 n" ~' w/ t. k0 [! n t5 l;=====================================================================# j/ s$ h3 \5 h$ C8 u- V6 v
(setq old (getvar "OSMODE"))
4 n/ H: C5 A; i$ ^
6 M" ~. Y0 s! a' q+ D# I (setq p1 (getpoint "\nStart point:"))
. ?% j# m: `# U) K (setq p2 (getpoint p1 "\nEnd point:"))! n! ], L% Y& S/ N$ C
(setq side (getpoint p2 "\nOpen side")); {: a5 t2 V/ z) W8 O
, X9 S `7 M s0 b- W7 ]
(setq dis (distance p1 p2))1 j# g8 p) U. o
(setq dis (/ dis 2))! c, @* I: @8 A! w5 p
1 O( ^6 `8 V+ ]- g
(setvar "OSMODE" 0)8 l% c& V7 j( a1 R# Y
* q; f& b) G+ ?" r6 t: W5 [& t (setq p1 (polar p1 (angle p1 p2) dis))0 ?+ R" W' M1 D* j# _
(cua1 p1 p2) 2 U, X0 B. I2 H& V2 J; d/ u' E
- E* k0 }+ O/ E% C. l! O6 j) P3 u (setq ang (+ ang pi))% ?, R6 y+ m& d3 a9 g( v w! W* ~
(setq p2 (polar p1 ang dis)) m3 p! r# G0 `/ ~5 n
; (setq side (polar p1 () dis))3 |0 h6 r2 h- H; [. g3 g
(cua1 p1 p2)
: h4 O" |# h( `3 c" W
2 c% A4 _: G% I0 o! a8 D2 U# j8 M (setvar "OSMODE" old)
5 C& _) D# [5 |& C$ y (princ)
* c( ?6 E. t4 G7 e |& H)! O( y* I v5 P# S7 S. v5 {* S
* r2 g& x3 G9 n7 j, E* }1 r, U;=====================================================================
" `" |, {- x! M' d5 G! \: R# U;"Glue" text strings. All adopt first's properties.
! f7 D" G8 n- Y% g' y; Author:1 F! X! ?5 X$ M6 q8 d
; Henry C. Francis
5 K6 Z. a) p- V0 n5 h; 425 N. Ashe St.
, e" ]1 a6 H: Y3 t) K7 t; Southern Pines, NC 28387- n- r2 F' o% L; \. J- v! d
; http://www.pinehurst.net/~pfrancis
& _9 q( O- a% _$ [5 M e2 g; e-mail hfrancis@pinehurst.net% y, B: p; k4 X. m& T# G5 k
; All rights reserved.: o9 w. G0 d( t
(defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)4 o# Y- n7 y- Y6 e, e v
(while
8 v! P( m+ B2 M: l: P0 A (not D/ S) z1 l2 A
(and
! ? B) K' l# }) ^# ^% d! S (setq ename1 (car(entsel "\nSelect first text string to join: ")))) M: t9 I' a% ^2 H. L" b9 l. b* P" J
(setq ent1 (entget ename1))6 P' I J2 X% y: U5 Z" T
(eq(cdr(assoc 0 ent1))"TEXT")
- l8 L7 K B+ V6 F" e w* {( L );and
2 |8 b$ T. ?8 D- l0 i1 p9 b );not2 P5 e: c4 k% S- `2 t
);while
3 q# j" D/ I9 O; Q( [" K: }0 T(setq old1 (cdr(assoc 1 ent1)))
# Q" E1 r0 _. r% V% T(while
5 a( }0 z* T9 G6 g! B (not
" m+ \( |& h% y (and3 t9 q. d* y) G5 b# U' N' g8 b
(setq ename2 (car(entsel "\nSelect second text string to join: ")))
% t! k# n. F* [7 {0 Y6 e (setq ent2 (entget ename2))" w; y8 s* C9 k/ a. Q. }
(eq(cdr(assoc 0 ent2))"TEXT")
' D2 R" A0 g+ w9 y, Z (not(eq ename1 ename2))
+ [& L" x2 c2 r! Q, h. h4 P );and
& f% \' }, X, ]9 L( L4 s );not, A- I( `+ j2 ?2 C$ O ^
);while
# ^3 e6 }# S m. j2 v(setq old2 (cdr(assoc 1 ent2)))
: Y2 p3 L3 G" K% V8 o4 x(setq new1 (strcat old1 " " old2)" M& O n2 S1 ]3 o+ m& k# C# L* e$ s
ent1* U) l5 K) Y7 j; j5 u2 y
(subst (cons 1 new1)
2 W* @. {8 j" x5 ~8 A q* n1 d (assoc 1 ent1)
[9 F6 ^3 O+ s/ F" N ent1)! g9 M3 h% F* }
);setq
5 O, T% @! B" @(entmod ent1); k$ {5 O5 O O* q
(entdel ename2)7 c! @, T% A9 w- p" G9 X' z) s
(princ)
9 U% w G0 P0 Q6 l! w) f/ L6 h);defun
* {# y, _* U2 y5 g+ y' x0 B) v0 u- J' n. G7 K+ A! D
;=====================================================================
# l) h2 |& Y. f; p$ `" g3 Y" \ B- G" R' P4 @" p
(defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)0 _) [2 ]! {- q# j; b# \/ j% `4 `
% g5 O0 j8 G. G (defun nterr (s): {. `' u+ y6 r4 d' e% o' O' ? V1 p
(command "_.UCS" "" "_.UNDO" "E")- I! t/ N; u$ [; C/ y3 r8 U& }
(setvar "cmdecho" 1)
8 L4 a/ L& A8 R# w (setvar "blipmode" 0)
3 v! S7 i& {. c; O, ~4 @6 G (setq *error* olderr)
8 E! g# A9 S+ m# n% D+ m( U* p" Z! V (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
/ [' M. h; D: ~4 T, x nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
+ f/ @$ R# t6 u; T+ m0 Y" i3 Z$ w (princ); C5 `( I v" m5 ]
)
" ~% a3 r' z0 B6 Z* g; {6 J E+ _- S- B9 n5 N7 u
(defun tim_in (dt / p01 p02 ktra)
' a' n9 R( {( U9 {& l (setq p01 (cdr (assoc 10 (entget dt)))). f: s+ b, `8 Z1 x# J: r
(setq p02 (cdr (assoc 11 (entget dt))))' [6 {7 @$ Z, K
(setq ktra T)3 L' ^0 _% B* ^8 M6 a& ?$ X( {
(if (and (> (car p01) (car g1)) (< (car p01) (car g2))
9 n, M' r' ]9 x6 Q7 O (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))1 b8 P9 B$ o5 ]
(setq ktra nil)( [, X+ H$ S4 V1 v5 `/ D
)4 F( H0 F8 K$ U6 ~9 D- q" D: }
(if (and (> (car p02) (car g1)) (< (car p02) (car g2))
/ p5 s* x+ b. g4 {) h (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))/ s2 V& B( x# L3 q, B' K
(setq ktra nil)
2 D9 ^: y& b+ C5 s$ w6 m4 d; E# K )
' Z: }# ^8 g) n+ Y7 x ktra$ F7 b, M. x# j. {. ?
)
) m/ B. X% J1 g
$ C" ] Z5 p! J9 L7 m4 b) } (defun timdt (dt1 dt2 / p01 p02)
3 A( w/ d; B, M& ]- s( y: x (setq p01 (cdr (assoc 10 (entget dt2))))
. {7 Q0 Z( R" N: F' g( r& p/ G (setq p02 (cdr (assoc 11 (entget dt2))))
# Z: w0 G8 z4 x+ P1 G/ I9 N (setvar "ucsicon" 0)% ^% w: e) T! Y9 D3 q0 J+ P
(command "_.UCS" "E" dt1)
, k8 E5 z; u' p0 K9 G6 I! G (setq p01 (trans p01 0 1))
2 v# u1 C0 h$ p (setq p02 (trans p02 0 1)); b( f0 C9 H3 }( X4 g7 F
(command "_.UCS" "")( c/ Q K9 V# q( t& h# O) `
(setvar "ucsicon" 1)
' |2 j6 D. n b# d. t! M (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
7 N% M! M6 f6 w: a! @; t" Y T
5 _/ \8 Y1 X3 B" r; b7 G% e# K* C$ S nil
* G( p( ~. n0 F" U% T ) L1 l& {0 [0 p( r
)! O; D) E, J& \, I$ A
3 D* {# Z' e" D5 S1 X: X (defun tim_out (dt / p01 p02 kt)( j: m+ i1 k( M5 G8 }9 q7 v( n
(setq p01 (cdr (assoc 10 (entget dt))))
6 n+ o% J3 W- H8 t2 i (setq p02 (cdr (assoc 11 (entget dt))))% j* i: j: r G5 [" Y5 Q
(if (and (> (car p01) (car g1)) (< (car p01) (car g2))
J6 ^+ q& d+ q+ E9 d& v (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
+ Z* |& W8 c/ x" X9 w: j X4 V5 I* Q (setq kt p02)
/ f" t. u) X2 B' }3 u )
7 a* u, \$ t0 H) n! q; N9 P (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) ) g& U# K, n7 ^$ t# G/ m! \
(> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
, V9 I1 D. h, ~( w (setq kt p01)
; d1 u" g Q& e )
" O& l8 s5 B z0 f kt
0 e) M2 \) r2 @+ ~2 G" k p )6 w9 ~6 @1 t. M3 o
' [& Y) \! x: j5 ]9 d2 X! g
(setvar "cmdecho" 0)
6 U+ `- q1 h# _( W# s- S- p: U) q (setq olderr *error* *error* nterr)
; @8 |2 w3 X7 v1 {* V (command "_.UNDO" "G" "_.UCS" "")
2 D9 I4 `$ K) n( F6 D/ H; z' B3 K' o (while (null ss1)5 J/ {, N7 n& ]( @$ t2 c* U
(princ "\nChon tuong muon noi...")! y- ?3 o# x1 N: K
(initget 1): u2 ?. d' m. N3 s" W' Y. [
(setq g1 (getpoint "\n>Goc thu nhat:"))
- e4 {4 @- W ]/ ~, x- l! d2 R (initget (+ 1 32))
) Z$ T- i6 P M (setq g2 (getcorner g1 "\n>Goc thu hai:"))/ Z j! H9 U. T) t( v3 X
(setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))) a* h; R7 J4 G: H- q/ G9 m9 Y: l
(if (null ss1) (princ "\nKhong tim thay doi tuong!"))3 g0 P2 a8 a6 y+ b- _0 G
)$ t( V4 I! x: @: t1 L! A
" R9 X6 k2 v$ t$ Y& }1 k6 _* u9 R (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
7 R' I# }6 H4 ?7 o/ R: u% V g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))# r" a. K0 R/ g
g1 temp): K1 Q( p0 Q4 Y& K1 t; w# s$ s
(setq ss1 (ssget "w" g1 g2))
+ {% F8 {- _5 @ (if ss1 (command "_.ERASE" ss1 ""))
* \: p K* E O6 ?2 G! A5 x4 p (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
5 H- ~2 T% Y; f5 s0 X1 p
. }0 w; Q9 `* m2 G- O H3 o$ } (setvar "blipmode" 0)/ v& a' n+ \- L6 e0 |/ o5 h! p% T$ U
(setq i 0 l (sslength ss1))
9 t3 |' \' u6 o0 o (while (< i l)% g, b# L$ y; E2 j% i
(if (tim_in (ssname ss1 i))
" I1 D+ a8 K8 \+ ^7 k4 z) K (progn
. q8 b9 l* Z' i2 V$ x (ssdel (ssname ss1 i) ss1)3 |& | W9 x" F, B% O% `6 k! J
(setq i 0 l (1- l))# v3 `* q/ z# s" S0 c7 N
)
9 V8 P* O! b* [( h! V0 u+ ?/ R& R (setq i (1+ i))
1 l; f3 N7 m" m9 x9 c* c( w! Q, j: s )
% Y5 V; q9 ]; j1 S9 B. y/ u ): S2 P2 `- \1 E. r) x2 \, z1 e' v4 @6 F
(setq l (sslength ss1))
' c. b& T- b6 t% w* K (while (>= l 2)1 l9 G5 o1 U" v- ^' F7 q
(setq e1 (ssname ss1 0))
6 v9 Y! t7 I6 g/ {; w (ssdel e1 ss1)7 N) |! B( H+ B' y& B2 ]
(setq e2 nil i 0 l (sslength ss1))0 s, F6 \% Q) x- \" I/ b4 z. y
(while (< i l) 1 n O( R8 A* ?. {
(if (timdt e1 (ssname ss1 i))
4 |; j5 M( c! t* G/ f6 A; ?0 ^ (progn3 N3 }0 Y: E; k
(setq e2 (ssname ss1 i))" I9 I2 b' |" s! l# O7 C' R
(setq dd (tim_out e1))) Q4 t1 o2 B6 o' ^; f* a |
(setq dc (tim_out e2))
! A) n* Z! O" N& M8 T1 u4 C8 |4 r$ N )
6 G/ x" ~) c3 G- U$ m0 A. x6 J )6 Q r9 l- F9 {5 a: J
(setq i (1+ i))
# k/ r0 B8 m9 s8 N8 \2 P )/ Q- M% J) B( s
(if e2 (progn
: W% b' o" Z% E( Z+ x (ssdel e2 ss1) # J+ _8 J' `3 b, Y: Z6 ?: G
(command "_.ERASE" e2 "")
% R% o8 f: Y: L" z" _/ ~ (setq temp (entget e1))
. y! }; t# N# I1 O1 ~( T (setq old (assoc 10 temp))
# w( G& z0 j% V+ [, q (setq new (cons 10 dd))
% B4 B" Q$ H4 ^' { (setq temp (subst new old temp))+ i Y2 k: w$ U
(entmod temp)
3 n% d8 m. a7 F (setq temp (entget e1))
" m2 B. \ K& R# f* x: P (setq old (assoc 11 temp))
+ [. w' T$ ^+ r- H5 X# J (setq new (cons 11 dc))
3 ]% ?$ {, ~! w# ^ @/ @ A$ P7 ` (setq temp (subst new old temp))
" X2 t9 q5 f+ G& E; ]8 Y: B4 O (entmod temp)& |* H1 t# o* `3 Q t2 B9 G' L) C
(redraw e1)2 A3 U) h, q4 r+ a T o- R
(setq l (sslength ss1))
1 H4 N0 n- A- B& K1 t )
% k5 G4 N% z7 L& o4 X( L) W )
0 o+ |4 W3 t! p4 p/ {3 R t1 G! U )
% o1 F) _* ~# l* \! E: n) ?, G1 ~" a4 \ [; }
(command "_.UCS" "" "_.UNDO" "E")
5 |. T. Y8 [2 N. a7 E (setvar "cmdecho" 1)) g& g! j3 S. O3 v
(setvar "blipmode" 0): G8 P& Q. \1 Z. H3 Z2 u
(setq *error* olderr)
* x# N# R y5 e7 ~# B" U (princ)
* W# {" C8 K6 J# y)
- o: Q% p) r! Y# ?, J7 ?;*********************************************************************$ v) f5 W* Y% m; J
(defun ketthuc ()
$ G) N( z3 z* z9 o' k0 w (setvar "cmdecho" luuecho)
1 f! H# k$ V f, G7 t% H7 N (setq *error* luu
' ^3 ?7 a5 K' C4 K3 S1 v luu nil # d& F2 I( f. {! N; n1 E
luuecho nil
9 P6 t6 ~, C O) ] );setq
* h& [1 i* { ~. w% O) V (princ)9 P) L4 m: Q* o
)
% B, s& }& h' F1 `+ @, y- L;*********************************************************************: P& L' G( F8 _. e# o7 ]. j
(defun modau ()2 p! A- d e: z6 }( v0 Y8 P8 c
(setq luu *error6 p7 y: c: w6 Q }
luuecho (getvar "cmdecho")
: o/ I: ?8 l5 J: d) |$ U *error (ketthuc)
4 ]: h& ^( w4 U)
6 U# t* |; o" Z4 v( I+ P)" t6 s$ Q6 p9 b! W+ h j- v( W" f8 E
;*********************************************************************
4 c' M# r2 \9 S(defun xulytext (text / kytu ma sokt luusokt lui )
1 a& K' s" N# L4 U* y(setq kytu (substr text (strlen text))
/ M+ J/ H1 y3 z- V# E* m, _, ] ma (ascii kytu)& q& x9 w5 u1 c# b6 L5 j
sokt (read kytu) 2 k7 D! ^6 T9 N( a3 h- v4 m
lui 17 V) _' [1 y; M; {# F1 U$ Z; D
). j; ^, v6 K- M' D
(if (numberp sokt)
( x# J% n9 z* a) P/ M (progn: h2 x8 J4 n, b' b! s
(setq luusokt (1+ sokt)), `- n( p! Y9 h; V% X ~
(if (and (numberp sokt)
( \ B/ S$ b+ z9 Q (> (strlen text) 1)
1 v9 F" l) f0 Y; B )
7 k7 F2 n" [8 {$ n$ | (progn8 G+ C1 C7 h0 D' Y9 n5 }5 e
(setq kytu (substr text (1- (strlen text)))
+ b7 q) P0 k2 ], U7 W sokt (read kytu)
9 d; l7 y; v6 I* @ e$ W )
5 z, i* |6 A& S6 d (if (numberp sokt)
: u; Y( \: @) c' w9 @$ a& Y# Z (setq luusokt (1+ sokt)
. A7 `" _, {3 m; D/ x6 e% ^ lui 2
+ r1 p) N6 J; w; f" M
' N; C! V8 x7 r$ X )
7 r; K, j# g2 S4 }/ @% G. k- }. C )
- A0 t! h+ s, p( a4 j- H% F );progn J3 K& B# ~, [ Z+ W( B
)/ d9 h0 O0 L* i7 K& e
(if (= luusokt 100) (setq luusokt 0))- p/ z/ a9 I$ w% Q3 V- Z E6 p) Q
(setq kytu (rtos luusokt 2 0)8 E2 J7 t) O/ W" p
$ D( Q* p8 T" L5 |3 _& S3 C
text (strcat (substr text 1 (- (strlen text) lui)) kytu)
, q4 e7 x) S5 F8 H )* G- X+ x- x$ N0 O4 ~
);progn
9 Z# {" U! ^ k9 W4 C2 j (if (or (= kytu "z")
3 f6 M1 p ?( N( b+ z (= kytu "Z") k) V0 v) p* e, f1 K
)4 t8 ^6 c# _# K6 o! l5 q7 O
(setq text (strcat text "0")9 _0 H2 m: e- L1 ^/ Q7 D
textxl "0"
7 ?- Q2 f, ^6 v0 I! x5 X1 e4 p )
8 `: F* n# M! Q: E6 O (setq ma (1+ ma)9 n3 Z- N' x Z& N; E' b
text (strcat (substr text 1 (1- (strlen text))) (chr ma))% J2 j" G$ l& d6 T& D% |8 j
)
3 n9 z+ V6 k" F0 M& u8 S+ a );if
4 _" d' @& H# o);if
3 @/ w* r1 q% K1 G, z) n. r)) Y8 j o- x, J9 t
;*********************************************************************
/ ^4 w1 e3 |* q: R(defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
' b+ U( c2 i" h1 h$ ]& L;Neu doi tuong la text thi tiep tuc9 K& V4 T7 C' J0 N
(setq doituong (entget tendoituong)% }: @6 E8 {6 {, ^5 h
kieu (cdr (assoc 0 doituong))
0 U0 F/ ^1 J# h$ O# A4 Y4 l canle (cdr (assoc 72 doituong))
5 Y/ T' r0 ~* ^5 E6 M! d2 B- |+ E) 1 I6 G5 b) I0 i! w. Z, ?) a- M3 T
(if (or (= kieu "TEXT")1 s- m( ?: i9 {8 J1 ?
(= kieu "MTEXT")
, ]( H# N; p2 ~; @- \: o )
* ^6 k% F! I* Z* w0 e* l4 G (progn
- v1 y# c, b7 m# C7 J (setq textxl (xulytext textxl)' K A7 c" C5 j5 C
text (cons 1 textxl). `2 B( R1 j, f1 X7 d0 m1 _3 ]2 } v
vitri10 (cdr (assoc 10 doituong))
- g* p4 N/ `/ w x( V vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
- M- X1 u2 X' T1 Y9 @+ o9 Y% t vitri10 (cons 10 vitri10): \; P; H9 b/ p `: N" R, k
vitri11 (cdr (assoc 11 doituong))0 Z2 l, D6 w" d0 w1 c4 j
vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech))); C9 m4 u' m1 Q% i8 k* s
vitri11 (cons 11 vitri11)- Q" Z' b6 ?5 a
dem 0
* A; j: ^3 s+ r$ ?% r% h7 L% ^) m; t; M dsach nil
# ?, f& {9 X" Z+ g. V )9 a6 N' l0 ~. d# K1 D
(foreach tam doituong$ x) a( i8 j* d7 o/ Q
(cond
! b/ w% N3 k, T ((= (car tam) 1) (setq dsach (append dsach (list text))))- B' [5 L1 v- {: T `9 Y+ x9 J
((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
/ N6 _) i5 j2 H, I. l' w' t ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
& E; B* I* ~8 y' i ((setq dsach (append dsach (list tam))))0 V% {- x# @+ S+ |- o9 z
)' L p: ^/ D0 t( X$ _% A' r
)
; W1 X2 I' A& q1 ^% y1 M$ X (entmake dsach)
, f3 ~0 p0 M+ i$ m. ]& G9 F0 ? );progn( P/ G5 J! B! S) ]6 j* g2 m, a
);if
7 j- n+ |& g& D! a6 l# q3 l' T, L );: q) o) h- c& D6 b( G
;********************************************************************* j7 l( {% \. f$ Y
;sao doi tuong cu sang vi tri moi4 m( z2 v* h1 ?8 C" U
& m E# P5 F, K8 A D9 `1 H5 m
(defun copy_dt (tendoituong )
& l2 y, D, |% X& o9 v5 z(command "copy" tendoituong "" goc toi )) S" c; l& w b; Y! m# g+ r) p
);defun& V F; |. [0 v; q
4 `1 c+ H4 h+ ], h% N;*********************************************************************% j! V3 L# ~9 D( [- q! E
6 S2 [+ |+ {2 q. M6 y! a M9 _8 P
(defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi): s A8 O1 X2 M: Q4 o4 z$ B
; Khoi dau cua chuong trinh
& \- L% Y+ @3 w+ N9 l/ O0 U H(princ "\nCopy Inteligent...\n")
5 ~7 I3 J- i! u& J(setq luuecho (getvar "cmdecho") @) g7 `* C6 U* p
luu *error*
, O' _3 y; d' \; T5 ] *error* ketthuc3 \% |+ R/ U4 s; n
cumdt (ssget)6 [: z" o; Z; ]# i! {0 D
dodai (sslength cumdt)
/ k) `2 W' |4 F6 q4 _) @ goc (getpoint "\nSelect base point:")( j* | a8 q$ E9 g
thoat nil
! y! z. H) M# }9 u dem 0# ?' p& m& z' k4 m" n3 b
textxl nil) D$ U6 v* B: z
);9 G8 J2 [/ Z$ A* p/ J+ |2 S$ `
(setvar "cmdecho" 0)6 P" k( P& f8 C. u3 [5 d
; Loc ra duoc ong text de xu ly5 N) M0 A- G% w9 _) U
(while (and (= thoat nil)
( q0 a, r0 l% y q (< dem dodai): a& J# a8 m: E
) h( f. S; A: R4 C
(setq ten (ssname cumdt dem)
0 I& E% Q N2 H$ d dem (1+ dem)" b t% P5 I' L0 s2 c! e9 j; `
doituong (entget ten)
' Q+ W, \* {+ |, m* Q: r7 x kieu (cdr (assoc 0 doituong)) ! m, E& Z' y4 t! ~% {
)
4 G# D0 u6 _1 ^ }
2 ]6 P* ]. \! t! I (if (or (= kieu "TEXT")$ P8 b+ E8 t" q8 W+ Y
(= kieu "MTEXT") & j! }& e0 _2 F
), ?. }2 O7 A* J% C( Z& e
(setq thoat T2 i- k- C$ }6 u/ ]
textxl (cdr (assoc 1 doituong))
6 u2 P: a6 L: M, v; J )2 A, v+ f0 u( q/ \
), W" Q5 ^7 ^3 B1 c" `
);
1 a$ z: L, e( G- c* }. D0 f(while T
$ q$ i" i i9 Y1 C, \/ J(setq toi (getpoint "\nSelect next point: " goc)) G8 m }4 f1 z2 `) b' H
vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
' O3 M0 _ @; C! d# p s7 d dem 03 |0 b" Z- q3 Q, t* B" p# I
)
! C* N! Y7 G) c# ^9 ^(while (< dem dodai)
3 |: F$ o- o | (setq ten (ssname cumdt dem)' Q/ x7 V' s! z' u4 o* i
dem (1+ dem): c+ f# N! _: v
doituong (entget ten)
4 w5 u# S7 p; x# p! {5 Q) ~/ p+ k kieu (cdr (assoc 0 doituong))
( w3 Q1 w2 {) J- M& ~2 z )
* x1 S: ^3 [/ H$ h. M( i. U4 p# `
9 A, z: r- Q/ _ |4 J) B (if (or (= kieu "TEXT")
+ n" ?# P4 p4 _- w/ z& t- Q: D (= kieu "MTEXT") / @1 z L6 y9 n D
)
% S' {6 U, \9 P( K, K (doitext ten)
6 w5 U9 z% [/ H/ j% ^* F! ~ (copy_dt ten)
) @2 H! ]& ^& o3 a# N
" O+ f5 Z0 w; H! S );if/ ?' j, A2 g. I& |. ~* \
)
9 q4 ?- D/ O& a8 n. Q);while( j4 r! M: P/ y- t
(ketthuc)) q( {+ `1 s; ~: w
);defun. c, q8 }* U7 r( ~- S
(princ "Type \"DG\" to start")% M/ Q5 I0 e! ^' ]- K
;Note: bien toan cuc: textxl vitrilech8 x# r C2 B% p' J: d/ X
" |$ h7 {1 l2 Y4 U- V9 F
;=====================================================================
- ]5 Z. p9 V/ j/ |# r;;; PLJOINFUZZ.LSP
& _+ L3 ]: F' Z- v8 u0 j7 d;;; Joins lines, arcs and polylines using a fuzz distance
) ~: i0 R' X5 q# a5 f8 k;;; If only one object is selected it tries to join to all objects that are possible; N. T. |' G1 G" X7 ^
;;; By Jimmy Bergmark
8 p- H/ h* p& W) l' u;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
5 j; d' P% i# a0 n2 b) y) x; O;;; Website: www.jtbworld.com. w" O3 b0 p8 R) }
;;; E-mail: info@jtbworld.com: A! u1 w9 `6 g- }' M! ~& n7 I
;;; Tested on AutoCAD 2002,2004 and 2005
* N) K7 }5 H: x8 D* B;;; Latest revision made 2004-11-11
, l+ C# V9 C1 w" |: H) Q;;; Minor code cosmetic change made 2004-11-13
|8 f- o0 z/ s4 o Q;;; Bug corrected 2004-12-237 M) G$ s% q/ j+ K
0 Z& b/ q$ u+ X; \2 a: n(defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
" W0 I; {. Q5 P7 ?# j; Y( E(defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)' M$ A+ t* y, v4 c. i" \ M. f
(setq oldcmdecho (getvar "cmdecho"))/ W$ h! x/ c2 M f* J. l( k
(setq oldpeditaccept (getvar "PEDITACCEPT"))) \; g# f1 B9 S
(setvar "cmdecho" 0)
# o0 o: Z9 u$ ]# e) F8 @! R5 L (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))" {# z, q% g7 m' |& o
(if A2k4 (setvar "PEDITACCEPT" 0))
" J( C7 v0 K/ y: C% g" j S7 g" ` (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
; C1 d5 g2 u" g7 a# `$ e c# v (princ "\nSelect object to join: ")1 R! U9 R6 Z! R( S: H' `
(setq ss1 (ssget okObjects))
. t' S. {) Y# M- R7 I. a+ ~ (setq fuzz (getdist "\nFuzz distance <0>: "))6 l( I6 y1 {9 D4 \. N4 G0 j) v, I
(if (= fuzz nil) (setq fuzz 0))
( G5 U' ~" V4 K0 y2 \ (if (/= ss1 nil)
. ~7 S1 b p9 Y (progn
/ S7 o4 R- n; e (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
( K/ G2 B# r4 a3 d& B; S! G (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
3 s: Y0 d" s8 B0 S+ Z6 d: X (if (member objType '("LINE" "ARC")) O- \7 ?) M7 H( ?* O8 e( `, n
(command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")$ N$ G# w2 K. Z+ f E/ n5 @
(command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "") B8 w* ~! m1 j* p
)3 }0 o$ h1 s$ a. q8 v* b1 o$ j" p
)
) {( a0 `8 D: d )/ E& J1 w' m9 h& _/ R9 b
(setvar "cmdecho" oldcmdecho)
+ d" \# D% H/ e3 G" Z. T& K: ] (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
: d0 k9 n) U: n (princ)3 H, C4 V3 ~& _, P' _! d# r
)0 P& I. v" B2 c1 K4 {, }! g7 w4 v
K% B' R2 L! F+ R8 l$ v
;===========================VE CAO TRINH===========================
' E7 W8 i' _1 Q$ M& J# F1 k) ~+ ^5 P
(DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL8 f$ ^$ o: }/ a, J2 z, [: ?
CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)% l% X* f9 s1 Q" C/ S: E
(SETQ OLDERR *error*
: l6 y) n. ]# Y6 b8 X *error* loisb)1 t# R4 u& r4 f6 ^. y
(command "layer" "m" "dim" "c" "" """")! l3 ]6 S* k# P* \" f* V
(SETQ CMD (GETVAR "CMDECHO"))' l- e' g+ {6 p0 e6 S& p: ^; y6 d6 `
(SETQ NBC (GETVAR "CLAYER"))
. T* f% u% B' R7 h6 u8 E" Z(SETQ OSM (GETVAR "OSMODE"))
) Y% l2 u# ]6 k1 e(SETVAR "CMDECHO" 0)
" ~) I9 f- ?0 O- x(SETQ PT1 (GETPOINT "\nDiem cao trinh:")) R5 I5 ~) ^9 u
(SETQ TX (GETSTRING "\nCao trinh:"))
1 ]" c- s/ p o! S$ n( E" m7 F(SETQ FCH (SUBSTR TX 1 1))7 ]( N! a7 y6 ?* Q- I9 y1 Z1 u
(IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))2 |0 f1 i% V8 U2 S; Z- i) y' \
(SETQ CRST (GETVAR "TEXTSTYLE"))1 y: Z* Y# L( @* {* E Y6 G6 n
(SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))/ {2 U( _1 ^3 ?- _
(SETQ TSIZE (GETVAR "TEXTSIZE"))
- i) V8 I6 F5 U! Q(SETQ STR (RTOS TSIZE 2)): z8 `! n) n* A" t5 A' ^
(SETQ PRMT (STRCAT "\nText height <" STR ">:"))
/ M) G# g! ~, ?( e% N2 d' \* }(IF (= RSIZE 0)
2 w: k' c1 V" B' L; ~ (PROGN' s/ ]1 T* h- B; r& L M. \9 N
(INITGET 4)
# N% V% f; c+ K7 z; z- } (SETQ TSIZE (GETREAL PRMT))
0 x1 Q7 P3 _, e% T, q (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))# u Q/ Z" \9 e& |
(SETVAR "TEXTSIZE" TSIZE))/ J q3 s" z* z) w
)8 W: w" S* ]( K& S Y% o3 D
)
7 R/ M& Z. }$ m9 L) `" M+ j(PRINC). F4 W+ a, K" S7 D) H8 D& J, U! _
(SETQ TL (/ (GETVAR "TEXTSIZE") 2)), ]; k$ K1 O+ k+ `2 H z1 Y
(SETVAR "OSMODE" 0)+ u, j& p8 D! ~0 d( I: H" R8 N
(SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))0 V/ A' b3 {) k, ]& R" a
(SETQ NPI (/ PI 2))8 }6 j8 S4 D( ?. e/ J& @# v8 U
(SETQ PT4 (POLAR PT1 NPI (* 1 TL))); M6 W' m9 X1 P+ B$ d7 y% E3 |$ I
(SETQ PT2 (POLAR PT4 PI (* 2 TL)))' u; D' z) _% Y* b
(SETQ PT3 (POLAR PT4 0 (* 2 TL)))
g% x! }! U7 {2 L(SETQ PT5 (POLAR PT4 NPI (* 5 TL)))3 K K" H9 b$ k' T4 R6 T
(SETQ PT6 (POLAR PT2 NPI TL))3 {/ T8 L* y7 v- c
(SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))6 ^8 K; o$ O1 _. A7 Q4 f7 F$ L& W
(SETQ PT8 (POLAR PT6 NPI (* 1 TL)))6 |3 n' H* l/ ?* J+ |
(SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))& V2 {/ V* t9 f, R0 H
(SETQ PT9 (POLAR PT1 pi (* 2 TL)))
/ A) X; ~& [/ B- t( c(SETQ PT10 (POLAR PT1 0 (* 2 TL)))( @- A& `0 L& r m/ g. m" `5 {
(COMMAND "COLOR" "7" "")
5 l6 d1 I( j, J$ q1 d(COMMAND "STYLE" "COTES" "tcvn3italic,vnh.shx" "" "1" "0" "n" "n" "n") L# Z5 t# u: F1 c
(IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX)); X9 R4 a# Z' z$ v) n
(COMMAND "COLOR" "BYLAYER" "")
" L. c1 C T0 a( x+ z9 z" J# K& \(COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")* l* T& q* M8 ~4 M8 t) k
(COMMAND "COLOR" "BYLAYER" "")
" L& q& ]! W o7 [$ k: g(COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")2 O+ u( [* ]: F$ j) x `- P9 k- A. k
(SETVAR "CLAYER" "0")9 W+ w; x5 f6 k, ?
(command "ddedit" pause)& T+ }' h5 V# C* C$ p" M
(COMMAND "COLOR" "BYLAYER" "")( w$ j$ W( [4 f6 O1 o: Z2 t5 m
(SETVAR "CMDECHO" CMD)
% [2 Y0 }! G% L(SETVAR "CLAYER" NBC)
; X$ x- j" J1 Z$ E+ j3 F# N(SETVAR "OSMODE" OSM)
. D+ H5 \; a3 F, y U9 \6 d. i! a(PRINC)* {) Y3 Q; I' e, u9 t0 v) K
)5 i; e/ F; F. l0 s8 h% I& x) p& V
4 ]: d$ u. T( H
;;; =========================== VE NET CAT CHEO (GC) =============================
4 x- K; B4 \. g# E9 d1 @+ Y5 y
(Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)+ i8 {9 {% O0 f X8 J: X! \( \ r
(setq x (getvar "osmode"))* H( f% }8 t% N9 y* N" z
(setq p1 (getpoint "First point : ")% ~# q4 l, a! ^/ m$ ]
p2 (getpoint p1 "Second point : "))0 @4 }7 H# ^' Y+ f& p6 K
(setq l (distance p1 p2))3 z* R8 y6 W) r3 ]2 w. M& l
(setq p11 (polar p1 (angle p2 p1) (/ l 5))6 m2 T/ G O% j, C. y) f
p12 (polar p2 (angle p1 p2) (/ l 5)))
# k! g, X5 A, }3 h& w2 O (setq ang (angle p1 p2))6 {: }7 P7 a0 V; K. o
(setq p3 (polar p1 ang (/ l 2.5))& z1 d5 D @1 a, m' r
p4 (polar p3 (+ (/ pi 2) ang) (/ l 5)) x' `+ m* b' T
p5 (polar p3 ang (/ l 5))
8 M- t4 u4 Q/ T# ~0 ] p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
/ Z9 @ j/ k* a# p8 P (setvar "osmode" 0)$ F% G" D$ j! H) J* e( {1 F9 ]
(command "pline" p11 p3 p4 p6 p5 p12 "")
* ^6 n5 Q1 r0 A. m/ C$ d m' g" B (setvar "osmode" x)
- l! m# z( }, J8 G" E( s)2 d/ \/ {3 E3 s! ~4 N0 B
;----------------------------------------------------------------------------------6 m3 j1 j8 H# I
(Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf65 Y. c9 R2 Q |
pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))3 { N" |& J8 [2 C/ s1 i
(setq ps1 (getpoint "\Chon diem thu nhat: "))( f6 X N) C3 a9 D$ l6 V2 ]: h6 E
(setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
! U+ P! t6 K6 R! R& h% d4 y (setq sb 50.0 sh 200.0 se 20.0)0 v4 }. |# s* v* P1 F7 O
(setq ang (angle ps1 ps2))- d' r. Q6 P% n
(setq pf1 (polar ps1 ang (- 0.0 se)))
; [. l# R5 V" M3 g7 s# Z (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
* X/ X- ?5 n+ `1 X (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
) E" @0 b o# N3 p2 E7 C7 Y K* r (setq pf5 (polar pf2 ang sb))# v( U' R9 B/ l: ? `) Z1 T- I
(setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
Y6 B) }9 D% a; _) w* R! c1 F (setq pf6 (polar ps2 ang se)), ~& j! M; o$ Z
(setvar "OSMODE" 0)
& y$ T% a. h! ^5 \9 J9 i" k (setvar "BLIPMODE" 0)) p0 g6 ]9 D. n# R* @# M
(command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")6 j% o P5 s% X- Z. x9 `5 q
(setvar "OSMODE" 703)
+ H- q7 L" c Q7 a$ C ] (princ) )6 R$ \( B( q/ \9 E8 F& d/ D
;----------------------------------------------------------------------------------
% t9 c1 A. S; {) }" F1 n(Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6- v2 B4 W7 m8 \) g
pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
T: k- ^# e% h1 A: T9 @: Z- [1 S (setq ps1 (getpoint "\Chon diem thu nhat: "))+ C6 i$ S4 w- i
(setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))2 G, o) J b* _8 k) r. Y
(setq sb 100.0 sh 150.0 se 20.0)
/ r7 Z3 S3 h: c' k9 V5 N (setq ang (angle ps1 ps2))+ f! U! I' c, `0 C9 S& S& L
(setq pf1 (polar ps1 ang (- 0.0 se)))$ x8 K4 K& [3 S- g) k
(setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))6 a! p% J$ H" ?' a0 o
(setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))4 y/ z/ F* g' Q5 L0 E6 w& a3 z
(setq pf5 (polar pf2 ang sb))
1 i9 i c) H5 M (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0))): Z) Y" ^* g0 K- ?! t: J
(setq pf6 (polar ps2 ang se))2 j e% E1 ~( ?& k5 X$ z, p- V
(setvar "OSMODE" 0)
4 I6 o1 C- G$ d5 d( ^- P, ?, K% B (setvar "BLIPMODE" 0)
# O' b/ C1 Q5 s0 T( Z. @9 G (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
' T' A: b' q" ^5 W$ n/ C. K: R (setvar "OSMODE" 703)# q& _* a& X6 `2 c3 H8 B
(princ) )
9 D2 B' b4 G( m;----------------------------------------------------------------------------------
6 m1 n) _* v3 M4 y. d6 [(Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
3 T( m6 m" H: j/ D3 X: g pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))' {" J" ^1 d9 J! D* q
(setq ps1 (getpoint "\Chon diem thu nhat: "))
" Q- f9 V( u) C/ A% `$ K (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))4 g* Y* }, v& Y( L: P* k
(setq sb 100.0 sh 250.0 se 20.0)3 x8 R1 a) U2 x/ G7 ~) k
(setq ang (angle ps1 ps2))5 d0 A) `. J0 i6 h, X3 J
(setq pf1 (polar ps1 ang (- 0.0 se)))0 B. f# ?' Z5 t1 ~6 T0 ^' ~
(setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) )). Z% ~% Q: @" }; D4 {
(setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0))), G: K& ~) Z6 S% h- F
(setq pf5 (polar pf2 ang sb))2 p. g. p; E: m6 I
(setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))! S4 f' G0 \: [, v6 T* a4 u
(setq pf6 (polar ps2 ang se))
% l# K5 y/ p, W (setvar "OSMODE" 0)! |( N4 F Y( a7 [' K+ x, g. U
(setvar "BLIPMODE" 0)- M2 A* m5 }) [1 g1 H% H) \( B/ f9 x
(command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
' J+ l0 h# A# @ (setvar "OSMODE" 703)+ n& _0 r" ?7 G: y5 `2 V
(princ) )- `* g+ I) o+ z2 P1 d8 |
( A* D& V2 G; [! \( `6 O$ N* i;==================================================================================% l4 }4 r3 Y3 l( v
(defun c:ang (/ ent pt1 pt2 ang)$ p& j" n0 u) E
(setq cmd (getvar "cmdecho"))
* E' d" ^7 v2 e! z7 a (setvar "cmdecho" 1)
$ S) O. y* w7 U. R (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))+ Z* e* y) k2 d e( J2 R4 r+ G9 I
(setq ent (entsel "\nChon duong thang:"))
1 x6 y0 s4 M; E) C" a/ r (if ent ( |$ O% x% F3 H/ w, A$ I9 L6 r. j: o% ^
(progn
% d% K1 b _2 A% z$ X- M (setq ent (entget (car ent)))3 h$ p2 W. Z Q
(setq pt1 (cdr (assoc 10 ent)))
5 C8 j$ j a; o$ m9 n: y4 K9 S (setq pt2 (cdr (assoc 11 ent)))1 [6 o$ @* X. y& E0 z R& k! Q
(setq ang (angle pt1 pt2))
+ q3 [! o4 a; V- F8 t* E/ u' E (setq ang (/ (* ang 180.0) pi))& W: K5 k9 j; X8 q# U' H5 {8 C
(setvar "cmdecho" 0)% ?& z/ |) [& k' Q& N
(command "setvar" "snapang" ang)
9 S% _3 X2 T- [& x2 J( Z4 e; n (princ "\nGoc cua truc toa do moi : ")
; s3 G7 [( ^! f- C4 q (princ ang)0 Y, Q) j& I" z( B5 u+ g2 O
)
6 }8 O {& @# V/ [: L% A& v( _( k; I' a )1 Q; a' s% L* k3 k1 y
(setvar "cmdecho" cmd)
- a& U2 j5 G6 \ (princ)% X1 b) M$ M; k: ]6 h
)
& k( |% w& o& b;==================================================================================
& C; X7 i8 n; j0 A;============================== KY HIEU DOI XUNG ==============================9 ^3 ?' a6 x+ [3 I0 O: W9 M
;==================================================================================
* Y' c$ A) R* C/ v. Y* z( B8 G, U+ \# x# |/ g* H+ p0 f9 {
(DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9
6 I$ u; L0 w% p, | SZ G45 G135 G90 G180 SS loi)3 W' ?1 l1 b9 H! p& T
(defun loi (s)
# V! l- T9 [4 ~% L (if (= s "Function cancelled")
. W% b+ B, D2 [- L6 O! K% R (princ)2 l6 L( z+ @6 ]% ~0 S
(princ (strcat "Error:" s))
$ p r5 j) K9 [; u) y )2 Y$ }! x( t) ?9 J1 j+ P
(SETVAR "CMDECHO" CMD)1 b/ f# H6 d) X
(SETVAR "OSMODE" OSM)& X4 |/ B: f& h8 ]! O
(SETQ *error* OLDERR)+ U) ]. \/ _% `# v" ?8 H
(PRINC)' z6 K0 |. W* c- d# a: Z
)' _$ m+ Z2 E- H- }! }
(SETQ CMD (GETVAR "CMDECHO"))% z! A$ C* U4 {; S' ], P, B
(SETQ OSM (GETVAR "OSMODE"))6 S" N, r5 O3 {) {
(SETVAR "CMDECHO" 0)/ G* E$ H6 ^# n
(SETQ OLDERR *error*
' }! g) ^8 P) W+ R7 Z: O *error* loi)' f3 D" F, z! ^) Q, n! g+ S
(SETQ SZ (GETREAL "Size <1>:"))
! }/ B* @- |- v! ^& ^ (IF (= SZ nil) (SETQ SZ 100))
v: S q$ M3 n# J! P% C (SETQ G45 (/ PI 4))8 t2 W' N8 r, \4 H) {2 S
(SETQ G135 (* 3 (/ PI 4)))
9 X3 n! h9 P7 k" X7 E' f (SETQ G90 (- G45 (/ PI 2)))
: _6 j! {" F5 P6 O1 x* e* J (SETQ G180 (+ G135 (/ PI 2)))4 O/ T1 h2 I: {6 T
(SETQ PT1 (GETPOINT "\nDiem doi xung:"))
+ P3 i6 P/ Y$ B6 [, Q' x5 ~' U6 M (SETVAR "OSMODE" 0)
' ?" ~0 X2 R5 Z$ ]8 }; ]; I (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
0 b9 N6 T; Q4 D3 B! Q% f (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))- J$ p! J* p7 ^$ o# i$ b
(SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))6 z% O" A- J, |2 ~, P% \( \
(SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))1 G' o0 D7 }1 z+ o/ G0 H0 W
(SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))2 l. ~# P# W/ e& e" I
(SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))- Q1 p5 p/ W, G6 }/ [. b/ T2 M
(SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ))). P# k+ P0 @' N- V6 L9 h
(SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
$ j8 c1 x" o- V6 N7 P (PRINC "\nGoc quay:")
$ I! S P- N) \+ W (SETQ SS (SSADD))% M- \: z3 Z; O- }3 H( W
(command "layer" "m" "Dim" "c" "" """")! E9 a$ `/ P9 Q
(COMMAND "COLOR" "1" "")
, Y& l0 P& \! Q! l0 T. P (COMMAND "LINE" PT8 PT2 "") p0 s( k, ]9 b; p1 w3 Z0 Q" S
(SETQ SS (SSADD (ENTLAST) SS))# n- ?* C$ T6 j+ A$ l2 ?5 P; Z7 k
(COMMAND "LINE" PT9 PT5 "") D: M2 Q" H; z3 _. y& k9 q
(SETQ SS (SSADD (ENTLAST) SS))" y3 H% {( Y! d7 K6 a B
(COMMAND "COLOR" "1" "")( M, g% `* b. F" I$ c* ~
(COMMAND "SOLID" PT2 PT3 PT4 "" "")$ t5 F) {! @4 A' F* L
(SETQ SS (SSADD (ENTLAST) SS))4 j. J+ ^6 {# M1 v
(COMMAND "SOLID" PT5 PT6 PT7 "" "")
2 L H0 v' t3 L4 W (SETQ SS (SSADD (ENTLAST) SS))6 s) S, A8 ` o
(COMMAND "ROTATE" SS "" PT1 PAUSE)
6 X+ j$ D" {' G1 @2 A6 L(COMMAND "COLOR" "BYLAYER" "") r# v% V* w3 W7 N L; }
(SETVAR "CMDECHO" CMD)
* \4 h) J5 P) p/ f' r. o (SETVAR "OSMODE" OSM)$ C5 `; E' g+ e* g' G, z
(SETQ *error* OLDERR)
. b0 n8 A; s6 N$ c& { {2 Y (PRINC)9 v8 {0 f. I9 G; s
)
9 V" V" U& O; A
) p; h, L4 j5 W5 Z2 T;==================================================================================$ [9 S6 R+ W, `5 D
;================================= KY HIEU TRUC ===============================# ~/ o% j/ M+ H0 X1 J* @
;==================================================================================4 s1 `3 D# [4 w! n: h8 I6 p
$ \* ^9 R3 c5 c) r
(defun C:vetruc ()
2 g& L) d$ x9 L$ e(setq bk (getvar "USERR3"))
, l8 w! P( d' }4 p, E9 f/ H0 E2 @(if (= bk 0)
! ?6 a( w9 C0 a, j+ T+ m8 U (progn7 {* \' ^) ?" j2 d8 Q
(setq cont "1")
q; u+ ~7 J3 u! |- ? Q (setvar "USERR3" 1)
) o# A; j. i: ]3 P5 h )7 F! w7 M+ J; `+ M
(setq cont (rtos bk))& _( P% F" z/ _/ ^
)3 T# _" Q8 A0 k3 _" }0 q! {- ]- h
(setq pt1 (getpoint "\n Nhap diem dat:"))% `! W; e8 T, g8 ~2 M
(command "layer" "m" "Dim" "c" "" """")- z* h# G: I* L% o* `) ?2 _
(command "osnap" "")" {3 R b) a7 a: Z
(COMMAND "COLOR" "7" "")8 E1 K' a% D4 h$ ?0 a
(command "circle" pt1 150 "")9 W6 |8 b6 x. G& e
(setq pt2 (polar pt1 0 150))& |. K% i% Y. v2 t. s
(setq pt3 (polar pt1 (/ pi 1) 150))
5 ~8 u; ^0 N1 M4 _(setq pt4 (polar pt1 0 300)). P r$ ~. ?8 _+ Y6 a# ~; \
(setq pt5 (polar pt1 (/ pi 1) 300))9 y+ `8 O+ n1 O
(setq pt6 (polar pt1 (- 0 (/ pi 2)) 150)): d# A5 `) v, E* K
(setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))( X! ~+ A6 r) T8 p+ f M1 _
(setq pt8 (polar pt1 (/ pi 2) 150))3 Z9 ~7 ]% T( f, e/ @
(setq pt9 (polar pt1 (/ pi 2) 300))
$ T) x* f; o7 C+ D0 `1 N" O+ w(setq pt10 (polar pt1 0 150))
- E5 F: t: C3 {$ @9 t( F* W& E(setq pt11 (polar pt1 (/ pi 4) 150))
e* e& z9 J/ r3 U- ]( _(COMMAND "COLOR" "BYLAYER" "")' Y( U- V2 d0 n3 p4 O# p: J
(command "line" pt2 pt4 "")" c5 R, C9 Q* B8 i1 x4 {6 c
(command "line" pt6 pt7 "")
3 {" [. n6 l, ^9 E8 C7 c" i(command "line" pt3 pt5 "")( A/ O w: T! ?* U- Z1 z% N( c
(command "line" pt8 pt9 "") i3 h8 R$ }2 a) b9 n" I
(setq dk (strcat "\n Size:<"cont">"))
- x6 b/ I. k- S8 C$ u$ _. {(setq bk (getreal dk))
/ r% A/ K$ @) _4 R6 Z(if (= bk nil)
$ J. G$ f7 u% y a8 ?# O (progn
5 U( x, b; i5 [, L (setq bk (getvar "USERR3"))
- E5 p0 A; L0 h x! X+ _! D )' N8 Q1 p' s* _- w4 ^1 P0 f/ W; R( S
(setvar "USERR3" bk)
c7 L2 ~0 |* Q" i/ ]# H )
4 }, y# [3 S2 k5 p. f$ e(command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
" p6 w) g" I- u* m) O: n2 q d6 z(COMMAND "COLOR" "7" "")
. L" Q4 W r/ E5 U+ u5 i' m ]6 @(COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")1 o0 j! k7 y. [5 z7 Z* t
(command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
/ r+ T! V: e) B6 J& h% u0 y(COMMAND "COLOR" "BYLAYER" "")& L: o9 M$ |* p" F7 A8 R- L: m; K
)
& c: M3 p; b* g/ T) y( |" N! y' C6 k0 y3 l. @' P
;=====================================================================
- ?3 S9 W$ r# }( j& x, h! p# x;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)) r6 Q/ ]8 y+ [) Z3 W
;
" N/ N& S0 `$ t9 n' B2 r9 a7 m;Jeffery P Sanders# P$ }9 @9 C7 i$ e
;
; N- `1 h; e, l9 a- ]& f3 \(defun C:CA(/ en enlist tx newtx cnt tp asc note)
3 |) Q2 s% ]8 V* X n+ C1 M (setvar "cmdecho" 0)
6 c o' Y$ c$ a2 f7 b (if(setq en(entsel))
, Y& s/ F' V" }1 i/ m. q" S. _ (progn3 g. W X) S# H6 I+ Z1 |% K
(setq enlist(entget(car en)))8 v+ A- R/ b6 y( _' C5 P
(if(= "TEXT"(cdr(assoc 0 enlist)))- P: e1 R* y" Q1 x4 E# `
(progn
. Y) U9 g2 ~' ^ o8 ? (setq tx(cdr(assoc 1 enlist))
2 ]& G* w# N1 n$ H9 I E$ S6 a newtx "" cnt(strlen tx)
# C! ?1 w# o4 v3 ^+ l5 m, w+ x- q note "\n...CASE Reversed. \n "9 j$ z* P v+ ?9 H3 Z
)/ |1 l, u3 }. L) `7 P& H# U! z
(while (> cnt 0)
* b8 e0 u) u% u Q% Z1 S (setq tp(substr tx cnt 1))
6 j" g( Q% _/ h5 y0 k* i- P (setq asc(ascii tp)): m) T9 r( a; X$ S# a
(if (> asc 96)
* g6 g* o! r% B7 c( @ (setq tp(strcase tp))
7 y1 I6 `# A5 T @ (setq tp(strcase tp T))
! s" s$ f5 H: f3 D8 I )
' j! X( C! O! l. A (setq newtx(strcat tp newtx))4 N" P; t- @' D
(setq cnt(- cnt 1)), W0 B8 S3 l" |: C+ h \
)+ k8 d9 T9 }3 M+ X1 U
(setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))2 v3 F7 @/ g8 R- [: w
(entmod enlist): ?8 E' d5 a9 v5 p* _3 _& r
)
6 L2 R. `) U" s( B) Y7 k+ p (setq note "\n....Text Only Please. \n "). ?# k; ?: a1 q: }& b
)
0 Y2 d4 K2 ]3 F- f* J )% W! J* M+ w& E9 [; J
(setq note "\n....Nothing Selected. \n ")/ |, K8 \: p$ [
)
. W- u: Q, z- n3 Y+ @ (setvar "cmdecho" 1)+ p4 Z3 z- T# Y4 g/ _
(princ note)
5 H% E, c0 p4 x T" D; ] (princ)
% k: V7 ]- C+ B5 F: U$ e)# ^' a2 p1 _6 h1 S. B: w5 l$ n
+ Y3 _% m3 \$ J- |) x( R;=====================================================================$ l. z% Q8 W3 ]0 c# b0 U
;==================== NEW TEXT STYLE UPDATE ==========================2 ]" O3 v% Z% ]+ ^
;=====================================================================. a! V8 L1 \) \, }
8 |# W% N" S" K; r& u(defun c:nS (/ tdt ssdt sodt index)
4 k( d i1 O! A2 [; A& Z(defun ObjName (ssdt /)7 t3 |, h# f. p. S) Q D+ X
(cdr (assoc '0 (entget ssdt)))$ z) t" [" p+ Z
) ]8 [7 o& A( j) G3 m/ j0 y
(defun MoPL (ssdt /)1 E; |- C* Y- m7 o2 X
(= (cdr (assoc '70 (entget ssdt))) 0)
! z0 Z) N C% P)' e3 @3 x! L; I- C6 s' O
(defun NoiPL (ssdt /); Z" d+ o! j7 N
(if (MoPL ssdt)- b& A: E! E6 t1 J* A9 h, N7 H# U
(command ".PEDIT" ssdt "J" "All" "" "X")
' c! _, o: e) }2 [( X4 t; G)- k4 c4 d0 Z# X x
)- @& x- U" p+ }1 o
(defun NoiLC (ssdt /)3 d3 r5 B$ T2 `
(command ".PEDIT" ssdt "Y" "J" "All" "" "X")8 U4 a# ?; D9 o8 D. U1 B
), m! C3 z t, W% |; x% y. e) _
(setq0 y4 x+ v6 L; h$ A( g; A- y N9 ~2 K
tdt (ssget)% r$ t6 e# I; G8 a+ _' m
sodt (sslength tdt)
/ S+ ]. g/ q2 C. m, _; O; vindex 0
$ t+ H" q C5 l! s! |! M)
( u1 Z: w' X) ~3 R8 S5 m6 v(repeat sodt$ P4 Y; k. q: A+ R
(setq' W( j. o# y. m* o5 h
ssdt (ssname tdt index)
! Q- q$ i3 {9 s. o; ?index (1+ index)
3 y5 X: U% x$ x: C, W) x, R)
m8 N5 Z6 l9 B(if (or (= (Objname ssdt) "LWPOLYLINE")
, w7 M. Q6 b( A- ]/ T( b4 f' l(= (Objname ssdt) "POLYLINE")& _6 z" a; \1 t* F( R/ d
)" `' W' }1 W: r; G# x
(NoiPL ssdt)% \0 f8 L: }0 u: D
)$ K c2 p+ x; c: n
(if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
4 d4 B& [9 ], I) W. c(NoiLC ssdt)7 C* f5 N+ I: ], }) C
)1 b J; k: M* l6 T U
)! s" K0 G9 s4 S8 i
(princ)
+ t& z A2 i. q1 l2 t4 L' B4 D)0 O5 i! S/ I8 o g1 d
/ b# Y: E/ c6 g% a
;=====================================================================
; ^4 U4 K! u: ?4 i;;; AREAM.LSP. p- X) F. P' ], I
;;; Function: Calculates the total area of selected objects5 I' C/ [* A6 ~6 \
;;; By Jimmy Bergmark
0 N, i! a: ~3 x' a1 f Y {;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved9 j+ _) e* n6 J9 q# Y8 f
;;; Tested on AutoCAD 2000: l9 z! H. x% g0 `! G+ e7 w% G" X u
6 E+ f' X% g: i2 }" E# W(defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)+ h' }% i% U' g$ f
(defun errexit (s)$ A& S Z9 s9 m$ |' e
(restore)$ ^: h# A) R1 m! ]' p
)
+ Q1 B) b0 v! F) x2 H2 H8 m* {. ~8 E# h8 w/ Z& l4 P+ y( T; _
(defun undox ()
' o9 i [# W8 T (command "._undo" "_E"); B6 d! G4 G1 |
(setvar "cmdecho" oldcmdecho)
& {+ k" c. ]6 \+ ?3 e4 G1 k& F (setq *error* olderr)
) s' m! ^& q. ^+ A (princ)
( B7 L8 h. d' H- ^' ^ )& \/ h5 B9 T/ P8 Q4 J
2 b" C% Y" o, e' u% j (setq olderr *error*% x6 O" [1 v6 Z7 a
restore undox
+ a1 ]% U# o) e *error* errexit
% I# P' H+ g: ?" F4 m. l* z )0 g! i2 |* D* d4 q9 B. a
(setq oldcmdecho (getvar "cmdecho"))
3 x0 R! e; M3 Y8 v+ p' P" _ (setvar "cmdecho" 0)
" M* [! k- \+ ^& t9 @; p (command "._UNDO" "_BE")
" q s% X- B' J- b1 N1 Y (if (setq ss1 (ssget '((-4 . "<OR")
0 C: _8 z, a, o( |; J (0 . "POLYLINE")
! P% |1 q$ \; ?) ^ (0 . "LWPOLYLINE")
+ k2 G! `& D; F& K! Y( J& S& B (0 . "CIRCLE")1 X7 u! u6 i0 b( y
(0 . "ELLIPSE")( S Z$ H o( M: Q o; E: T
(0 . "SPLINE"): ]$ A8 X+ z# _2 u" K
(0 . "REGION"): i- g' s( [" N& ]
(-4 . "OR>")5 X- t* A1 v+ t* J& L; H" N
)
3 y& }" v/ X+ _6 P )% S; _3 H4 k+ G) {" ?
)
9 S0 p6 u& U( l: V- X (progn/ v# |2 U2 s0 y& b9 u
(setq nr 0)
0 y9 G( f* b8 f; Y4 ?. E3 ] (setq tot_area 0.0)& [- B) E8 E; c) j" g3 |
(setq en (ssname ss1 nr))
8 y" s# q* e w (while en
: X( o8 ?3 W% p/ f/ r (command "._area" "_O" en)8 Q" g$ }* j( d H. r
(setq tot_area (+ tot_area (getvar "area")))
9 A5 y d' O+ U. \! s4 C( y (setq nr (1+ nr)) ^' t* H+ H; A
(setq en (ssname ss1 nr))( f; H9 @' B) X& r$ T* [
)
/ H, ^4 k: @5 ~7 _% g# W- F: n (princ "\nTotal Area = ")
9 k* D( {9 q- z" `( a (princ tot_area)4 n n5 i0 o1 [5 m% D4 X
)
8 {6 _: P" m+ L )
7 O) ^2 |2 v' r6 h ^ (restore)
1 Y: l( ?' G9 [4 c. D) Y)
: L5 k4 ~$ F5 }( w% g& [/ P! ^/ B, z8 T. v. d5 G- d% B8 g1 \ R
;=====================================================================
- p: i3 ]; r2 ^, p, N& `: t;;; By Jimmy Bergmark n" S. H- y6 S
;;; Copyright (C) 2008 JTB World, All Rights Reserved
4 M5 B7 }0 J9 a;;;
4 R, r# K8 |- y; C9 G" a2 b;;; Created: 2008-03-31
/ }" U+ w; |. O. k& X; w* l;;;
/ Q# X* N) P8 I0 u1 ]% a7 }2 T;;; Convert Attribute definitions to mtext
$ J) h7 X( c+ {" j% Q;;;
/ w6 i$ {5 W7 M: l9 g- p$ @6 K) A% T( H; {4 F* D' v
(defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)6 Z$ h6 i( d0 q; _. [
(setq eset1 (ssget (list (cons 0 "ATTDEF")))
" N: v' U* N8 [5 n2 y blkcnt 0
: n6 O' j/ V; R, i5 I1 k5 D. L )
0 c$ G# E; m$ t- b- j3 X& _3 c. F6 }$ b5 R4 w
(if eset1
& a& M, |, c* g+ c5 A" U$ p% K (while (<= blkcnt (- (sslength eset1) 1))
- q* x1 N4 x' b1 k' |8 { (setq en (ssname eset1 blkcnt)* `5 l/ e4 q% z$ }; Q! e
enlist (entget en)% Z0 A1 [) z6 `8 j& Z9 I5 b8 S4 p
ht (cdr (assoc 40 enlist))
; G8 K) C+ B% q! ]& C9 x2 t pnt (assoc 10 enlist)
1 _8 m. d& D* P {7 i0 D pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
( I; W8 z' c# X3 K+ n& v! p space (cdr (assoc 67 enlist))
: b- T! f. h7 Z t+ L" K ): m U; Y3 G& _( |$ z$ D
(setq vl (list
5 T9 a; b5 i+ _% S2 i (cons 0 "MTEXT")
" i, I$ z3 ~( {/ k+ g: x& Q' m- X (cons 100 "AcDbEntity")
' k2 G7 k' m9 d6 d (cons 100 "AcDbMText")* L: @0 U5 o: e
(assoc 7 enlist)
" e. D# H) W( Q& l. d; l7 q (assoc 8 enlist)
: s B+ \0 n+ X7 F! h3 P( Z pnt
4 L7 G2 ~( a# `- C0 d$ k (assoc 40 enlist)
0 P" }+ `, e; M: w& { (cond ((assoc 62 enlist)): X# v- j: [/ n$ ]7 Z+ B" Y1 [! H
((cons 62 256)). U( k( ~( C! H! z. _, p* i4 n* `9 L
)1 ?- p& e- X; E7 N1 M
(cons 1 (cdr (assoc 2 enlist)))( F0 ^5 j g( ~( Y( w) _
(if (= space nil)
* L& f$ H- s' F% j' ~' V (cons 67 0)5 d S5 s( ?% U1 f9 E0 j
(cons 67 space)# O! c% b9 e8 W1 j
)
, _* `4 q( @! R. P8 @, c' {4 G )5 Z# ^$ c: R# |8 z5 {8 O: P
)
6 K) p9 W/ `& s; O) u (entdel en)7 J; Y" K7 t3 O5 u: V
(entmake vl)0 O/ g7 y6 q) H& a8 o& p1 O+ H
(setq blkcnt (1+ blkcnt))
- m; e! n) ~6 G- ^. d' a0 L# [ )
, v7 ]/ d5 F4 b. Z, A )
" f9 ^$ p- ~) G- t, ]& E)8 ]3 y8 |$ P+ V7 I! D
. P$ M6 F v& S3 G* g! c
;=====================================================================5 Y# P1 s8 s2 Z' ?) B; o3 A) W
6 E7 b6 y' W) C1 I- A. L2 ]
(defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
: a) C: b% L2 g& X) T7 b6 l: ^; Khoi dau cua chuong trinh
2 O+ J0 ]7 n" X' U(princ "\nCopy Inteligent...\n")
$ Z/ m. H3 R9 U* v! G" `1 D(setq luuecho (getvar "cmdecho") D8 d6 F0 ?' [9 k+ b) a* W
luu *error*
' |; s! P$ G9 C ~# F1 g$ \ *error* ketthuc6 ?7 \7 g3 T, k) y% P3 w5 F! [
cumdt (ssget)6 M5 J* H, k' y, B" u* J
dodai (sslength cumdt) N) a& m& H: D& o% z
goc (getpoint "\nSelect base point:")
1 z* T* P2 M: u thoat nil: p6 Z& ~% u& q# {
dem 0% x' v, A5 n. ^$ \- ~! B' [
textxl nil
/ H/ f( p0 W+ {0 f6 ^1 Y+ H);* q0 V5 [% x" \2 Z8 {
(setvar "cmdecho" 0)
# j! E. B8 L; r; Loc ra duoc ong text de xu ly4 |) B+ Q- ~! ~8 `
(while (and (= thoat nil): t q; b8 {0 @6 [7 D6 i# M
(< dem dodai)
, ]* v& Y: H, @2 }7 I. [. R0 Z. s )# \( k* k8 z7 Y& b# e1 @) N9 A$ e
(setq ten (ssname cumdt dem)8 K5 M, N7 C5 D- A, V5 L
dem (1+ dem)
8 M) B+ s$ u" U% F, f( f doituong (entget ten)
; a% T: S" f0 I kieu (cdr (assoc 0 doituong)) 8 x& ?& E4 Q5 C
)
! ^" @6 J, a( @% |. U; _
6 ]: p' G- k7 i (if (or (= kieu "TEXT")8 r: `& o7 I5 k) o( k6 S k7 s
(= kieu "MTEXT")
3 h( L6 U z1 A# t- V+ E. s )
: V0 D* C* K) d (setq thoat T! C! } W" I4 o4 z5 }4 { Q
textxl (cdr (assoc 1 doituong))
% I8 I! Z: n+ g+ q. n )$ c1 p1 n7 S. L# m' Z- \* P$ I6 A
)2 K' { y* }% D8 r. I1 X
);: D* h: W( N) E
(while T
6 R, O! C0 u: [% X- @(setq toi (getpoint "\nSelect next point: " goc)
; h1 K2 ~- @# s* Y$ a vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
1 [0 G0 a W: F$ |* X0 S* I, } dem 07 A- E2 n) p$ _1 z1 Z
)
) h6 U, t' d0 C* i# |(while (< dem dodai)' Y1 w' a5 U$ d2 E! W
(setq ten (ssname cumdt dem)' |. r( Y0 \* \9 b3 f2 |
dem (1+ dem)
7 ~3 e6 X) I& N& X% s. Y doituong (entget ten)& d0 z% z. Q) k* C
kieu (cdr (assoc 0 doituong)) ( J4 y" N- y" |. c9 {3 {
)
7 V: _( Z$ e1 A, z( [' d
- R% z7 y; u# `7 f1 w (if (or (= kieu "TEXT")* a5 b; ?/ k" c- O6 n, f
(= kieu "MTEXT")
8 o5 u. `3 d* Q% t ): j. z& K) V4 ?. s7 A, x5 _
(doitext ten), ?8 @% u; T: c/ |" R% N
(copy_dt ten)
- @, V9 z0 d. b; D" O |, W3 |) m% E+ p I/ _- g; w' }# T; [
);if* K- x- G* f; [8 _7 y& B
)
- X, R# _1 b; Z+ L* Y3 T5 q0 S);while
7 Y+ A4 v% B9 z; a(ketthuc)3 l4 ` Z3 E( `% R! x0 T! r
);defun
1 \/ m' p; m# t) N3 {; \2 [8 r9 H(princ)- M3 T" b2 e, }, b# E
9 D& w/ c+ R* s- [- Q7 P;=====================================================================( F% g/ b8 k! R+ |9 b1 I- N2 J
;;; By Jimmy Bergmark
; x4 B9 z$ a7 e! `3 o- W$ [;;; Copyright (C) 2008 JTB World, All Rights Reserved
: q V$ N; K9 G6 k8 k;;;8 B, [! [; I9 L U8 x" N! c
;;; Created: 2008-03-31) R/ o5 X7 S5 @+ d% n% }9 ]
;;;* e% R, b' m8 \* i$ d9 a" B
;;; Convert Attribute definitions to text
7 [2 \" q) ]! }2 x# J. U* N3 U;;;- T' X. l5 \- a# q4 {. B, \$ k. `
t3 B( T/ b2 M. [& A8 c: `7 p- \(defun c:ATT (/ eset1 blkcnt en enlist vl space)
9 \+ M1 D( b& F6 L, C/ J (setq eset1 (ssget (list (cons 0 "ATTDEF")))2 T* ]8 j6 D5 g1 T3 g! p
blkcnt 0
1 [3 Y H4 k2 ~3 J' T4 t$ T )
# U( p$ V* s' f5 Y' f0 e' A5 S% w
(if eset1
3 O I& t9 R ~2 ~( Y' b6 b6 y/ V (while (<= blkcnt (- (sslength eset1) 1))
( c& j$ T7 t9 O8 z6 v" z (setq en (ssname eset1 blkcnt) o* L1 j; J- Y! B# X+ O& h" U
enlist (entget en)6 i0 B9 E7 t; y
space (cdr (assoc 67 enlist))4 y6 i; p* E- g; Y6 l3 p8 k
)
2 g8 x3 \1 w( E" j Q (setq vl (list
/ e, E& F2 U" e: ~9 P (cons 0 "TEXT")) @# K. t1 e* n' v( D/ ]" B; p. o
(cons 100 "AcDbEntity")
3 B7 `$ o4 h2 N* m# p8 C4 f8 b (cons 100 "AcDbText")
' t" t6 [0 f J (assoc 7 enlist)- S# S' F9 y7 B% ]3 J) S% X; ]
(assoc 8 enlist), W3 _$ _5 X6 X$ @" W
(assoc 10 enlist)
3 J5 I' z+ p0 [# w3 P% ` (assoc 40 enlist)- k. [6 A' @ S! S
(cond ((assoc 62 enlist))
- f3 W+ a, |4 _ ((cons 62 256))/ V* @/ ` n# T7 c
)
" g) h1 g6 R8 m1 t0 P: a (cons 1 (cdr (assoc 2 enlist)))
8 f- h0 v: r# y: P: M3 _; m (if (= space nil)
`2 D K: x N* H% i" m# ~6 J: \9 O (cons 67 0)
( I: O* `* A6 X) Y9 A m# E. T (cons 67 space)
O/ X" c! D3 z9 y1 ? )8 f8 V7 u- z9 G3 C! B U/ G
)
0 s% t7 L9 X& U5 I8 b! \/ L )+ q) p4 U" S8 a l3 k! H
(entdel en)
, c- ^8 y) [. Z2 Z/ v# K3 m/ U (entmake vl)8 W& N$ A2 b0 B! h) ], [5 M
(setq blkcnt (1+ blkcnt))* e2 W2 d; l* l: g1 V% r* a9 u
)
; J+ C2 j8 i( s8 D! q* ^ )
5 G. e% z7 ]. J A2 ]$ q% O)4 f5 e4 z! e& x# @
;=====================================================================
: a( c' {. b4 T8 x;============================ Doi Truc ===============================% S$ X! T- R6 y5 v0 u
;=====================================================================: A' i2 e$ i8 ~
: t! q i1 L6 F% k* E. Q;=====================================================================
$ \6 g2 a; N Z( s B3 i) T% a;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
5 l+ D0 O& K# \0 D7 i) p;======================== Tran Ngoc Thang ============================
6 I+ v# ?3 O* y; y9 @: `(defun c:ga1 ()0 w3 t6 a+ r( Q) Q( ] ^% ?2 a
(setq a (getpoint "\nChon diem: "))! u, J% F7 K2 w. I+ \
(setq b (getpoint a"\nChon diem: "))
+ e+ _# n% x- b1 P(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ R7 V1 v6 G) C# h. E. k(command ".circle" c a)
8 I! h3 i* b8 D% ](command ".line" a c ""). U5 A8 L* A; }3 p; q
(command ".array" "last" "" "p" c "1" "" "")
5 l9 U0 w8 d( B9 T4 {& ?, ^/ `(princ))" f- j0 [" q( m1 ]
/ f v- p! d6 ?* R) B8 b8 ^) `- s(defun c:ga3 ()& U" q% G, q2 [9 K) a4 D
(setq a (getpoint "\nChon diem: "))" X: { S% @2 r5 R4 ]8 i
(setq b (getpoint a"\nChon diem: ")); N" u( I' ?+ W# ~' G/ J- ^4 O
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- ^; h' r* z0 @* o+ Z- M1 a W(command ".circle" c a)' G! C& [; n" b
(command ".line" a c "")% A# T. T# J$ z) l' z! M! ?* n; o
(command ".array" "last" "" "p" c "3" "" "")
1 d+ l$ _8 Z5 T. a( H* N(princ))4 ^$ ~$ N, X+ s% `9 m$ r
: \7 e5 v4 f( f( D(defun c:ga5 ()5 ~& Q; w9 n$ V4 L$ r; h9 N: \; W
(setq a (getpoint "\nChon diem: ")). v }3 s4 X v4 k: H
(setq b (getpoint a"\nChon diem: "))4 x; v3 e* z/ C" q# z; r
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ b1 ?/ v2 e; Q% x
(command ".circle" c a). e: p e$ D5 L: I' v2 l& O
(command ".line" a c "")
2 T5 t6 {4 _/ q r(command ".array" "last" "" "p" c "5" "" "")% D9 R1 j4 R: k' i% ?2 g
(princ))
* T1 X# M4 k S2 J" y* b# c
8 U! G' f+ i2 Z. C5 Z7 ~(defun c:ga7 ()
1 v! J: z5 t/ d* ?" Z; }(setq a (getpoint "\nChon diem: ")), ^5 Y1 _0 L+ r: d( C
(setq b (getpoint a"\nChon diem: "))& k! T9 }& X) B3 P! G
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" W, k2 L. \' i d
(command ".circle" c a)
0 l/ O' j) X% }" u# P3 F(command ".line" a c "")! q, T1 D/ Z$ N* D9 v* v
(command ".array" "last" "" "p" c "7" "" "")1 X! R, [) I( [' m( c+ f9 ]: b
(princ))
9 W7 y; l# v9 Z. P4 L6 f# W# W& p& E0 q
(defun c:ga9 ()/ t% g& d. W9 ^8 ^' ^& u9 B) H
(setq a (getpoint "\nChon diem: "))2 B h c, G. p$ Q6 H9 e
(setq b (getpoint a"\nChon diem: "))
4 x* o# R/ l) L' [6 e- n [' {" R" ?(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 x0 t/ B$ t1 j, ^- b( {$ U. U6 R(command ".circle" c a)/ i+ i) H( W' u5 w
(command ".line" a c "")0 W- p6 O; Z9 B l* h3 \/ R8 y- y
(command ".array" "last" "" "p" c "9" "" ""), c; [, L3 R7 G/ W/ K2 Y3 p
(princ)) b2 Y$ y5 T8 T& V# U
. j ?2 k" q0 }% ](defun c:ga11 ()
, j# ^5 }. [) C6 W# l I(setq a (getpoint "\nChon diem: "))
2 o1 @. J7 W; G* i; u0 [(setq b (getpoint a"\nChon diem: "))
1 i) y) p9 T( U5 c& x% ^7 f8 G(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 I2 z |4 O$ g) Z9 C(command ".circle" c a)
5 U7 K2 c7 i1 c. d4 A' q+ x# {(command ".line" a c ""), I- J/ J% m4 T; s) l
(command ".array" "last" "" "p" c "11" "" ""): N1 d2 G. p+ O$ q E
(princ)) z- ]$ V7 L# A+ i* k
% l1 S4 U* H6 D" J3 Q(defun c:ga13 ()/ X5 e! @; T! f/ i. f, g
(setq a (getpoint "\nChon diem: "))0 h/ P( K% l+ d0 X# o
(setq b (getpoint a"\nChon diem: "))
# o( t0 B/ C# ~(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) z9 I+ i" F+ o3 | P1 L8 ?* f
(command ".circle" c a)- V, C3 y+ B2 c; Q) {
(command ".line" a c "")8 m3 x6 ]/ N7 v. z9 e
(command ".array" "last" "" "p" c "13" "" "")5 U7 ~( e/ E, k* l! `# C4 y6 o
(princ))$ z* M0 i& i0 {- u
8 C, |, n- s9 \" `$ P; |- r
(defun c:ga15 ()
9 N" J) w! P) G(setq a (getpoint "\nChon diem: "))3 T$ ~2 b# n3 d4 I7 B$ V, J2 K
(setq b (getpoint a"\nChon diem: "))* {, ]- k8 v' d3 {+ {% E3 J
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% p }9 {- X, z. l0 I/ @# w(command ".circle" c a)4 z2 i, P B, P" `2 K. L
(command ".line" a c "")
' c3 \+ {, w# U(command ".array" "last" "" "p" c "15" "" "") }) ]- \+ G9 G) c
(princ))# M4 i" G; R0 W. d) N6 e" ^+ W
7 I/ k9 q4 ]0 x8 f$ p(defun c:ga17 ()
" B# Q7 {" g2 x2 U(setq a (getpoint "\nChon diem: "))
[9 g6 A# M; [! e# @& H- ^(setq b (getpoint a"\nChon diem: "))
( C# D$ C2 Z" c/ M(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
) w) @: W0 k* y' m7 H. |(command ".circle" c a)
" M# i. m, u' J1 t1 Z! R i( m(command ".line" a c "")5 M6 \% C# J- H9 o& S0 q
(command ".array" "last" "" "p" c "17" "" "")) W7 p; @2 t1 k5 Y" L# D
(princ))8 s+ i/ I, q0 \# P! Y. C0 S
' M+ A9 @$ t2 @(defun c:ga19 ()
1 w; G4 T, ^/ {; g2 B k6 k(setq a (getpoint "\nChon diem: "))6 r1 A# i! R) b8 f4 v& M
(setq b (getpoint a"\nChon diem: "))1 l# w a9 L2 R8 Y* S
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- H1 B7 m6 u# L, w Y; J+ z
(command ".circle" c a)" j/ r4 u+ J' Q- q3 Z5 t3 J/ G
(command ".line" a c "")
- S: s; Q. L# Y5 `9 Q: S- p# S# }(command ".array" "last" "" "p" c "19" "" "")
0 T; O; I. x( O, I, Y! z! \. p( n(princ))
0 b8 F; M8 F0 }9 G9 W: r3 _+ V* c. @( H2 s6 [% l- a
;=====================================================================
% ]0 M0 f7 l! S# L, B7 }4 v;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
2 a8 P" s+ o7 [+ |;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================. a7 p5 e) p# Z7 H
(defun c:ga2 ()6 K/ K2 V2 A4 o1 `- \
(setq a (getpoint "\nChon diem: ")). K7 H% F( h8 }3 K' J$ @
(setq b (getpoint a"\nChon diem: "))
, N0 t, T0 Q7 W& P: J- G1 @(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# m4 C- u" }: d5 S9 b& E(command ".line" a c "") M% r' q# L6 r6 X$ @# T
(command ".array" "last" "" "p" c "2" "" "")' s% C5 a, \% q- R- ~* Q' u
(command ".circle" c a)( v& _& K' q+ w; h9 c5 |
(princ))- o- R' q% V" F0 Q) [: n& x# Q
2 P# |9 [! `; \7 V3 T n
(defun c:ga4 ()% d* S. E3 K* r3 E0 G
(setq a (getpoint "\nChon diem: "))! a. \4 x' r1 Q
(setq b (getpoint a"\nChon diem: "))
+ m, M( }6 i- |! Y* j: F2 p$ \(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ R I& s$ f, V& b j8 O3 f( k(command ".line" a c "")* ?8 V, u* w& O. @* M8 M; ` A, m
(command ".array" "last" "" "p" c "4" "" "")
2 k; O9 c( b1 k; Y(command ".circle" c a)
7 i4 e: @2 t. C7 ~) J |(princ)), l! O# `) d; k$ r, o1 X) T
5 C: @+ \$ s! p. c/ g(defun c:ga6 ()
2 I* J% S `% p4 `: M8 m(setq a (getpoint "\nChon diem: "))9 ?, N2 d: u/ }; }- ]2 D/ P: A0 S
(setq b (getpoint a"\nChon diem: "))0 s2 X" \# F! S, Q4 A# d4 [: B
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 K5 L6 S9 ~) Z0 c6 U! B4 A5 l$ p# c(command ".line" a c "")
3 Z7 E$ x5 E1 l2 u& f. z(command ".array" "last" "" "p" c "6" "" "")+ F0 z0 v" L8 [7 o
(command ".circle" c a)7 s0 \* b* q" @' M
(princ))
( y* y, Y; t- f) R9 _& s/ t
) k' |3 y5 H6 @+ Q(defun c:ga8 ()4 b3 r4 x1 h( z4 E; `
(setq a (getpoint "\nChon diem: "))% H. R1 t n. ^% E ~% X& Z+ G
(setq b (getpoint a"\nChon diem: ")), S2 y2 l- I4 l' x, s
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
C& C% A9 J/ _$ |(command ".line" a c "")5 i6 _) b+ Q3 T3 \) A
(command ".array" "last" "" "p" c "8" "" ""). @3 j/ A7 G: x6 E/ K: b
(command ".circle" c a)
& C% O! h+ i6 J( T(princ))1 x7 w0 i. ?9 x1 {4 b5 p$ j
5 R( e0 O$ j! \/ ?3 b+ e7 P- }' l(defun c:ga10 ()
* U. J0 `7 F" B2 I" q3 u2 L(setq a (getpoint "\nChon diem: "))0 F. a9 a0 k6 f7 M
(setq b (getpoint a"\nChon diem: "))
! V# ?" k3 x( R" M4 f% V(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( U1 L8 g! ?, |! X; F(command ".line" a c ""); W& Q9 ]( Y. k+ {6 M1 d
(command ".array" "last" "" "p" c "10" "" "")
- R2 q/ g+ u8 A/ E4 `0 P(command ".circle" c a)
. s" }' J' v# u! @$ M: F- W(princ))" k( q" U/ ]. ?8 \8 f, S! @
6 {7 ]/ @$ _0 @8 K+ r5 o; b
(defun c:ga12 ()
; M, L( ?7 {5 h$ s9 v(setq a (getpoint "\nChon diem: "))
% c5 ], } M. e2 S( ^(setq b (getpoint a"\nChon diem: "))
% R+ K( |# t$ ~: w M5 l+ \8 M7 w(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 h# I5 J0 z* u& k7 p) _! `) A+ W
(command ".line" a c "")
7 r/ w' f9 V9 m0 r" E7 D(command ".array" "last" "" "p" c "12" "" "")% X# L% l* Y0 Z0 x
(command ".circle" c a)
/ B6 f& l6 a8 K. P3 Q(princ))( ]* }7 L7 q! }" @: N
( w: \& q- Q5 ]+ Z% f) C
(defun c:ga14 ()
+ m3 Z G! [% d/ c* \(setq a (getpoint "\nChon diem: ")): q- a9 u o7 e, i; ~3 e1 j
(setq b (getpoint a"\nChon diem: ")). c7 t: w8 s4 ~$ A0 e5 r
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( `* O t! @/ d3 A2 K# U6 |$ n
(command ".line" a c "")
, o3 t' n6 a" ], q(command ".array" "last" "" "p" c "14" "" "") t: E6 H8 Z2 ^, {* V, c9 |0 T
(command ".circle" c a)# I" j9 V( r! i" h9 K' O
(princ)). t5 X2 O( H/ _1 Y8 x* V. b( T
4 @5 Y2 \) q9 d( C8 o
(defun c:ga16 ()7 i& p3 Q5 `7 y5 r5 c4 R
(setq a (getpoint "\nChon diem: "))4 t- U1 X; E5 Q* N7 g+ I
(setq b (getpoint a"\nChon diem: "))6 w6 @1 [: n w" h" H2 m2 t
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) T7 P/ K6 r6 ~" @% O
(command ".line" a c ""). A; f! N$ M! d. S; _& {
(command ".array" "last" "" "p" c "16" "" "")
k2 d% ~" Q; M8 I/ n(command ".circle" c a)
$ t% C0 U3 `) S7 e5 e(princ))
0 h2 B. l! M( g! u7 R q6 v X7 s
(defun c:ga18 ()
' L9 P& i4 B/ X! g9 q3 v% F4 K(setq a (getpoint "\nChon diem: "))# |! I) K+ ^; T
(setq b (getpoint a"\nChon diem: "))
; q+ K& m; |6 U- D(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- q; v2 ]4 q Q5 v6 d(command ".line" a c "")
/ U) o) e( i5 E: u: J) Q(command ".array" "last" "" "p" c "18" "" "")
) s" [! _4 b* R* G& j" X( U: C(command ".circle" c a)
% Z& D1 G- g& N" q2 p4 ^(princ))
; T0 ]6 ~8 g7 d# ~) D. f3 R! f- k! u b
(defun c:ga20 ()
1 f& u/ r; s5 T6 y% Z Z. z(setq a (getpoint "\nChon diem: "))
0 ^0 {3 B' x9 d1 Z7 X; b(setq b (getpoint a"\nChon diem: "))
s9 f& }& R/ \(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 ]# w ^3 T7 j) \(command ".line" a c "")4 \# P$ o* T4 o
(command ".array" "last" "" "p" c "20" "" "")1 a7 x$ x; _, r8 Z7 ?& n
(command ".circle" c a)
/ h2 D0 B9 ~" c! }& B Y$ O(princ))
z) P2 u/ o' E! c {: b
* C3 X5 l4 x' |/ T
8 x9 R/ X9 j; Y5 q) r& {( h0 {$ _
7 z4 [" k) F. L8 B1 v$ \. y;=====================================================================
3 w6 a8 t4 E! D9 S6 {) Z" `- @;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============. a* o. M1 a1 {
;========================== 06-11-2016 ~ 18h00 =======================& d( B% ^: b% f
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================! H, ]/ H! O- p7 Z: x' |
(defun c:ga ()2 n+ s, t! B4 B
(setq a (getpoint "\nChon diem: ")): Y: b& F( B2 }6 l) `% Y
(setq b (getpoint a"\nChon diem: "))
$ r* i* W1 A- e( I; ?/ l4 S1 g& q( \(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* L1 y6 F2 \. c$ V# D* @
(command ".circle" c a); T/ P! L; D& c, M7 d& { r
(command ".line" a c ""): j7 h- W* i/ y" m
(command ".array" "last" "" "p" c "NUM" "" "")
) u" P0 h- y" [* c(princ))7 m* y F* ]6 x( M
" ?; F2 W. t7 |3 S
;=====================================================================
8 K# G# H& Z+ k% D! Q1 |) N;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
# f4 Y# m6 e8 m2 k! y- ` a3 B9 C;========================== 06-11-2016 ~ 18h40 =======================4 @% A9 R5 O, K/ \" o J4 M9 S
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
# A+ `( y: I- Y, J" T3 ]
3 U& a" p: [% i0 |. Y1 _(defun c:hoathi ()7 e9 ~* O; R1 A& ^
(setq a (getpoint "\nChon diem: "))
; C' G! c4 }1 }5 N7 C0 k(setq b (getpoint a"\nChon diem: "))- {" ?1 e; m6 [1 q# W! i
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 h3 U4 M: M; n- p5 _) u9 E(command ".line" a c ""). x) r/ t( X4 ?& P
(command ".array" "last" "" "p" c "NUM" "" ""), {* n) K9 Y4 P6 O* `/ ~' _6 {5 Q
(princ))
* E, Y9 M. J% X% y3 F
" v2 w( j4 s- d5 J! Q: x) U. s;=====================================================================
% r, e# M9 d/ G0 q;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
% U% C( z, s/ a, U2 ^;========================== 03-11-2024 ~ 19h33 =======================$ X# D* @, R4 e: N
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
/ Y; q+ K( t/ {7 D
$ R( N) @* q& g8 M# T(defun c:cung ()
" M5 |& C; I6 o7 Y0 n) P(setq a (getpoint "\nChon diem: "))$ i$ c$ a7 \# `1 g( j5 ]9 ^
(setq b (getpoint a"\nChon diem: "))
6 k& |( ^/ B; p1 U$ [% L5 H. l(setq c (getpoint a"\nChon diem: "))
- S" ?8 g g0 a8 V& d(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 ]3 E3 R& m8 E3 K1 j5 v% s! `
(command ".arc" a b c "")/ ^& Q% ~4 H i/ z2 {5 S! f
(command ".array" "last" "" "p" c "NUM" "" "")9 W2 i- [7 E' P9 g; Y! d
(princ))
0 Z5 f- ^( r5 [1 [0 f1 F" V4 r; z5 r2 \- t
: x/ ]& K* h; I2 G;=====================================================================/ z. w7 n/ B% v( s; Z
;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============. _" P8 L) H* K2 i+ h! o8 s
;========================== 03-11-2024 ~ 20h02 =======================
5 d7 p, V/ l' L" D: d) ^! W6 a;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================5 B9 k" x% U; R8 d, u2 E& ]8 T
(defun c:hecloic ()
! S! U) j8 a. h7 K" l0 ?3 Q(setq a (getpoint "\nChon diem: "))
: g5 k/ E$ B4 z) I; `% e7 |(setq b (getpoint a"\nChon diem: multi "))& [" q5 o4 v e1 J- X: k
(setq c (getpoint a"\nChon diem: "))(princ)% Q" g- P3 ]; i
(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( g' z& Z+ o! ?. h, p(command ".arc" a b c "")
6 L3 `2 P. X: e# Q(command ".array" "last" "" "p" c "NUM" "" "")
2 m3 e/ ^$ j) b" u7 C3 [, t2 L(princ))
2 Q. o( p$ b9 S8 Q& H1 P% t, p) |- E: u2 C
;=====================================================================6 I! _1 ~$ J" e2 R# a
;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
- W W/ e) h% I0 j l" ~# \;========================== 03-11-2024 ~ 19h38 =======================
* Q: Z- S2 M! k6 H7 I- R' u7 M K;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
2 B7 s9 B5 c! c" j- z8 W! D& `4 X) J6 ?0 B: l x1 V
(defun c:gay ()7 b/ I( @3 Q, `+ u" p6 x
(setq a (getpoint "\nChon diem: "))2 i0 u0 v* Y* C+ G! f
(setq b (getpoint a"\nChon diem: "))
, P# q. R1 R7 }$ ]1 D7 e5 Z% ` X(setq c (getpoint a"\nChon diem: "))(princ)
8 R( H' H# L& F1 @$ k* _(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: B! x( t+ W( H* Z% I6 [(command ".pline" a b c "")1 P. V* |% w6 |, @# P9 s) ]" }/ G
(command ".array" "last" "" "p" c "NUM" "" "")5 m; w5 J7 Z4 ?
(princ))# a5 p: {7 e6 Q
/ J" s2 H' N, ^ h* L3 _# i8 b: Z;=====================================================================+ P7 d4 s! R4 b( k8 A! o. y, P! u7 y
;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============4 N% j( n* ?. P) |
;========================== 03-11-2024 ~ 20h02 =======================# X' Q! z% [, U$ g9 F3 x
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================' J) `5 ~( V# m2 Y7 E
( K" @7 @$ I# H" U(defun c:hecloit (): U9 l \7 ]* B% N. d. d
(setq a (getpoint "\nChon diem: "))
: g9 \7 P0 Z, ^5 g `9 u& ~ d; y(setq b (getpoint a"\nChon diem: multi "))9 n( O6 n s& q! f- r
(setq c (getpoint a"\nChon diem: "))(princ)' c7 h- g7 n% g) L m2 D9 T
(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! U0 C& w- I' h! z' \/ d
(command ".pline" a b c "")
( b+ @! c" l4 Y# w( A(command ".array" "last" "" "p" c "NUM" "" "")
' ?- H7 y' X; M5 M) T(princ))0 `2 j* w0 O/ g1 U+ G! Q O
* L' V: @+ _% X
/ B1 H) u3 f' c5 b. B' ~;;; ============================ Merge Hatch =============================. ^: t- m4 z: X: k0 L% u
. Z0 c6 ~. w! _8 j# u4 D" ~) t(defun c:mh (/ ss entht sl i dt dtht)( ], i9 o; `/ Q& S
- I: r% w, i9 \' B; i9 X; h" h
(princ "\nMerge Hatch - free lisp from CADViet.com")
0 ^* @: R# O& v2 Q/ k$ p5 p4 f" T% D. _$ f- B
(setq
( U0 N/ X! G8 Z5 C# J ss (ssget '((0 . "HATCH")))0 ], |* o& n1 A& y$ }
sl (if ss
4 w6 V. T8 h) L6 D) O (sslength ss)' E, m' ?/ O2 A
0
! z2 P* _" h' {+ A) z& @) G )
: A& t1 T# [& p, V1 r2 |. T i 0- ~( j8 N: B. i7 e5 a' u, L% z
l 01 c2 h) ~% K' Q
)6 _ `% w. J, h9 [
) ]+ x( r f/ u# g (repeat sl
$ H0 U& r" g! H X; `, g (setq8 G. |3 h! g6 O7 ]& X* M
entht (ssname ss i)
. S! g7 q' E+ ?5 p. M: x. J dtht (getbdata entht)) i2 e- V0 _ N: E) j8 k0 [; w
dt (append dt dtht)
; l/ T3 a; W% S: y' N F6 L l (+ l (cdr (assoc 91 (entget entht))))
0 X) ~8 G1 z6 A+ f( f i (1+ i)2 m( w) x# Y" i" O6 D
)
H2 B/ K- {+ d! q2 p$ U1 W. C* f )
1 X: d# U L0 { I% c: ^$ N( Q* r# ]; n4 c6 ]
(setq ent (ssname ss 0)3 [5 W. ]) G6 O0 T2 G
ss (ssdel ent ss)# _# c8 `/ g. d3 r9 h6 P
tt (entget ent): b% a6 R" j3 r* ]. W+ z: O9 ]
duoi (member (assoc 75 tt) tt)& s2 R' h4 _% }5 ^3 m
dau (reverse (member (assoc 91 tt) (reverse tt)))5 V" c& h, {! H9 Q
tt (append dau dt duoi)+ y" e/ x0 ]- V3 a
tt (subst (cons 91 l) (assoc 91 tt) tt)
3 z! Z' J5 r! b ), r% d& w( y4 d$ V1 e! z# c
(entmod tt)
+ y: c( l9 M; ^
0 W5 A: B; V4 F% P, W, p$ s (command ".erase" ss "")
8 g9 `* S7 I( j# a _- [7 H7 ` (princ)
9 n% @6 ^7 y% d1 B P6 @)
3 [( a9 H. b( h7 V2 l. S. v3 n, N7 B& D2 r5 \2 {
(defun getbdata (ent)
1 _7 Y+ |- r* P4 z8 a6 _& g4 o% K/ O (setq tt (entget ent)$ @( h2 U8 V8 z! a5 \! a6 E& G
tt (cdr (member (assoc 75 tt) (reverse tt)))- u( U( W' X# i* r0 h
tt (cdr (member (assoc 91 tt) (reverse tt)))
) ^. j. v. N j) M. e3 f# i )
5 q6 W" }0 h; @- n0 h0 c a u)
! E4 L( R/ C M) U% l- I
, l$ h' F0 @) }8 m- j+ y6 }+ i$ A5 B9 x8 T
(princ)
# Y' p0 x8 ]1 T$ g+ f
6 ^( I5 u# Z" M' g' Z1 P;;; =========================== CAC LENH LAYER ==============================% N: S' G2 r; {7 Y
;;; =========================== Layer hien hanh =============================4 I$ V6 H( j! y* h6 c
% q1 E% C8 s4 _" e& j# o* j(defun layset (/ LAY) (setvar "cmdecho" 0); H! q% t! Z" S- M
(setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
0 J; c: j$ f8 P1 s1 Y% n# Y (if LAY (progn / D2 e% O: u6 {# h6 v
(setq LAY (cdr (assoc 8 (entget (car LAY)))))5 R3 h) I: r5 H7 g) g
(command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
0 U# k" P6 o# T (progn3 C% J: M( T" A4 |* f8 J% q
(if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
$ M0 @' E* Y3 S# f y$ P (progn) x1 K! g0 u- `$ l( j
(command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )! a4 l' d+ `5 w& Z. Z- h
(defun c LL () (layset))(defun c AYSET () (layset))
% E( |( M5 P* j- h& J1 Q. }2 {/ {' W! a% W( `$ e+ d2 c7 u
;;; ================== Cap nhat doi tuong vao layer hien hanh ==================$ u( L! ~( m4 A! |+ W' _! B! Z
# a" g) x8 a1 ?$ \8 S- L& s(Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
+ T3 S V9 X3 O" _" I (if (not (setq SS (ssget "i")))
8 i/ V+ t2 ^5 ?# }: ~6 O (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ") f+ S+ Z) W: g% l
(setq SS (ssget)) ) )2 { }7 o0 }* g
(if SS (progn/ C5 ]& E. c; w4 t3 [, B5 F
(setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") 5 j4 C/ B5 ^) p
(if (> (getvar "cmdactive") 0) $ d; n# [% `+ g8 p+ f
(progn
9 o) Q2 E" G5 U (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
5 e1 \9 G! }( j3 ~. _ (setq SS nil) ) (if (> CNT 0) 3 j4 G; E2 }: B* w
(princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
9 j" M' a; F$ }7 b. ~1 p (if SS (progn
* Z8 A! a; }+ k6 J! w (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
1 N7 | _2 R4 R( D (if (= (sslength SS) 1)
1 {# d! t4 y8 e% x8 ~: ^ (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
) T1 B+ j" U. j4 s7 L (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end N+ \$ T8 g8 i& d, N4 W9 |9 T7 x/ V
(defun c AYCUR () (laycur)) (defun c HH () (laycur))# ^; H0 m* b, M. R9 M6 J: g
+ e! r3 I' C2 q& H0 Q {
;;; =========================== Layer Iso ===================================
/ i% w2 L% a$ _6 s2 m4 c- G! S. h/ ^
(Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0). k1 L4 a8 r$ D4 ?9 l
(if (not (setq SS (ssget "i"))) (progn
, f7 X2 |' z# y/ N- m: q (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")4 ^( M6 z/ b, R0 z7 ]
(setq SS (ssget)) ) )
9 I2 v# I9 s) |4 u8 `! R" k# @9 }) q; H- f (if SS (progn (setq CNT 0)+ L& r8 H) d$ D8 y R( I* z9 Q M( A
(while (setq LAY (ssname SS CNT))) x3 U$ \8 P* h! S& |4 H2 M
(setq LAY (cdr (assoc 8 (entget LAY))))
/ e8 l6 I }9 Y/ M (if (not (member LAY LAYLST))
, ]8 O0 h9 Y, `3 D8 Q5 @" X: l (setq LAYLST (cons LAY LAYLST)) )0 M% X# b% |1 e& W7 l1 S3 [
(setq CNT (1+ CNT)) )* a/ P/ E" ]2 Z5 c6 ?3 Q5 W
(if (member (getvar "CLAYER") LAYLST)# H9 g+ ~; o9 t; i
(setq LAY (getvar "CLAYER"))7 c9 w0 ^: i |, y( r
(setvar "CLAYER" (setq LAY (last LAYLST))) )
. Z, {2 L5 b6 |9 F (command "_.LAYER" "_OFF" "*" "_Y")
! Y8 u& d; z" x. _. m* r+ }" @ (foreach VAL LAYLST (command "_ON" VAL)): k [9 l" |1 E) C/ I
(command "") (if (= (length LAYLST) 1)
0 l' n! ?0 N5 a, U0 x- i (prompt (strcat "\nLayer " (car LAYLST) " da tach ra.")), J5 U6 A3 K9 j7 W( u1 O" O
(prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "- ]0 q# C' D- V7 b2 j# G, ]
"Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
4 r6 H3 X8 M- ^4 J5 a1 E* H2 E(defun c AYISO () (layiso)) (defun c I () (layiso))4 O/ B7 K( v0 U! m. O7 j
; X8 L7 l1 Y0 l3 y;;; ========================= Layer Match ==================================
/ g! }! p \0 b7 m5 o* |& V/ f* y
(Defun LAYMCH (/ SS CNT LOOP LAY ANS)
0 I/ F- ^, Z* ]+ K% { (setvar "cmdecho" 0)
1 J8 ~, C. R9 W) R M0 p0 v* a (if (not (setq SS (ssget "i"))) (progn9 g( V) d: L7 e8 o! a$ _
(prompt "\nChon doi tuong muon thay doi Layer : ")
7 m; ^/ U" O( Z1 M (setq SS (ssget)) ) )5 ]+ t$ p% T+ e; B% v
(if SS (progn
1 G+ f& i% c9 |- }0 @ (setq CNT (sslength SS))
. A& `7 {: J. P (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "")
1 z" I# k. p" d" G* S# M (if (> (getvar "cmdactive") 0) (progn* b, s+ M& a# A+ R9 h
(command "0,0" "0,0") (setq SS (ssget "p")# I( T5 ]+ [ ~( i6 C% q
CNT (- CNT (sslength SS)) ) )
; z* j9 t9 ^3 K$ c3 n* h (setq SS nil) ) (if (> CNT 0) ' b5 u' f( K7 `' I# z0 w
(princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
0 {8 W( O' j6 W6 A1 ^ (if SS (progn
- I0 k; b8 T8 Z; K (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
# {3 c) F% o" F, h (while LOOP (cond
- d% ?& f" ^9 l( ^ ((not LAY)
. T7 N/ E$ a+ R" k (prompt "\nKhong chon doi tuong.")
9 K4 u0 i% x$ F" { (prompt "\nSu dung layer hien hanh? <Y> ")
3 [& ]! S( m7 z' m+ o (setq ANS (strcase (getstring)))
: {4 U1 q# t! [$ y: X, |' ^2 u: Z (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))' L+ L3 V1 I$ W" i: b4 Q& p! d8 @: Z
(setq LAY (getvar "clayer") LOOP nil ) ) )$ y5 \$ T( F7 M8 h5 {
((listp LAY) (setq LOOP nil) )
; o3 V" Z* ^6 C% V% g2 o, k9 t+ \% m ((= LAY "Ten")
6 N, ?1 s; v6 }% Q (setq LAY (getstring "\n>Nhap ten layer: "))
1 d! _$ M* O' l- S1 t* S5 D V (cond
z' {! R9 P' r( P# I% c5 ^( c ((tblsearch "LAYER" LAY) (setq LOOP nil) )/ g6 z7 Q$ A5 E3 L( g; g
((/= LAY "")
6 H0 w7 b; ~6 J4 _7 C$ _ (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
5 v( v) I: J9 }- T- H0 t1 F' f4 I (setq ANS (strcase (getstring))). _! u1 R8 I% D1 s" }) }8 N
(if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
& f2 D" A/ ~& A* } (progn
1 Y6 e8 ?- `2 W) E. ?) w (command "_.LAYER" "NEW" LAY "")
; j/ x/ ~! |; I `* I7 y (setq LOOP nil) )
. g2 O$ {/ K) @7 c7 k (prompt "\nLoi ten layer.") ) ) ) ) )1 L6 l* X; y) }0 Z: ^* t. Q4 }
(if LOOP (progn (initget "Ten")
9 G5 c; G( m2 T x (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
' N6 B+ J2 T0 \) A% F. X (if (listp LAY); n2 m( g; `1 a$ P
(setq LAY (cdr (assoc 8 (entget (car LAY))))) )
' r. q) v0 C6 f4 [4 C (command "_.chprop" SS "" "_la" LAY "")
c# M) z# d& E: a y, `( {9 f- H (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
1 w7 V5 H8 z! ?2 q! x$ t (if (= LAY (getvar "clayer"))! ~( C0 y5 o- B8 E8 R. Z
(prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
% l7 Z0 m# m( r! k8 d% [3 ^8 m(defun c AYMCH () (laymch)) (defun c:CLL () (laymch))- r# z* i* `2 y' |* C
8 s R! @/ v2 j2 V4 H$ e3 M2 b% {
;;; ============================ Layer OFF =================================& g$ N# F2 o& `9 n" F* j" o! |4 W: o
& j& f7 D8 x& P# i" e+ U* s
(DEFUN C J (/ SSET SSL ENT LAY I MODE)
" q6 ~9 |/ G1 d (SETQ SSET (SSGET))
% J5 \$ b. p1 u4 m1 ^+ B; U, j (IF (/= NIL SSET)
" V5 I1 X9 p( s Q5 v (PROGN
( [0 I/ c. G! q5 g1 U (SETQ SSL (SSLENGTH SSET))( ]- |, k) @& x: U6 Z5 q
(SETQ LAY "")8 w! k& O6 c# \+ Z6 `) @* O# S
(SETQ I 0). J$ d: W* ]5 {( s0 W! C, n5 ~
(SETQ MODE 0)
, g" l2 b4 J; p (WHILE (< I SSL)
2 e) K& | O/ j! H2 B1 n (SETQ ENT (ENTGET (SSNAME SSET I)))
( a6 W/ h0 d! `9 K! X (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
' l* V0 H7 i& y1 c (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
7 R- o8 m4 t" X0 E% y+ i+ c (SETQ I (+ I 1)): K+ X" n8 ], G8 A
)
" ?7 z0 |$ a3 b7 c (COMMAND "LAYER" "OFF" LAY "")7 }$ \9 X6 i* i9 {) e5 k
(IF (= MODE 1) (COMMAND "") )9 ~' ~" {5 x/ ]" l7 _" x- `# G
)" L2 E6 w4 b' D; ^; c
)* c6 G& i- P& ?" Y' }5 e# Y
(PRINC)( P& b- |* T# @" e: I4 d7 g
)) V+ R$ U d# N
% T# [4 n h% ?
;;; ================================ Layer ON ==============================
' W: I. e& ~" M! H- B9 Z
; ?& F9 d) Q* T/ i(Defun LAYON () (setvar "cmdecho" 0)
& I. U0 b7 l5 {9 v, r) ] (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
; r/ d: J6 Y/ b2 k8 b3 ^8 e (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
0 B9 |/ O$ J0 j1 S$ Y(defun c AYON () (layon)) (defun c:LOO () (layon))# E3 W0 o) h9 `$ v! z- G
(Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))& P# s8 A1 e/ _) ~- B
! }! l# Q! ]- r;;; ============================== Layer Freeze ===========================
! u: R1 ]4 k$ l# E; p
& W0 M, \8 z8 @, j/ r(Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) z; |+ ^7 f1 l- M: {- \$ z9 p
(prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET)), ]9 s1 O$ r8 \6 t* A; ]
(IF (/= NIL SSET) (PROGN
5 U2 k) g. }1 F* O (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
$ F" K+ }' P9 T: H9 v0 c (WHILE (< I SSL)
& D4 T1 n& A; F* a) d# \. C (SETQ ENT (ENTGET (SSNAME SSET I)))! c) y% f# H9 o0 q2 [# C
(IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) ). t! ~7 C% d+ R3 O( \# X7 i- G5 G
(SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
* \0 w3 ~' K+ ~ (COMMAND "LAYER" "FREEZE" LAY "")% e1 A' w/ ?, z9 {3 w
(IF (= MODE 1) (COMMAND ""))))
& I* D6 Q. `4 F. O* \4 g (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
v. t% j9 X, J (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) ); F4 F8 v4 ~2 T' x
(defun c:LAYFRZ () (layfrz)) (defun c:LLF () (layfrz))
& n) |6 D* h2 Z% h8 D1 p6 ?- S0 i' j e; ^- ]9 ~$ v1 G3 o1 p
;;; ============================== Layer Thaw ===============================
, F9 s- Q* [2 T) Z. i& ~8 l% P) X6 c, I) x& U( V5 t
(Defun LAYTHW (). s5 g. w. C) [: u! X! B
(setvar "cmdecho" 0)
+ M x: z' Z! n (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")4 a- y, e7 F$ J6 E& L
(Command "_.LAYER" "_THAW" LAY "")
7 L, D& Y5 [" C (princ (strcat "\n Layer : " LAY " da THAW."))
) d( {* ]& q! ?/ Z (princ) )
3 P8 l( Y3 d4 m+ }(defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))1 i- v+ F: b0 Y3 G& j5 d+ Q
2 c% m6 |' I( K8 k0 F;;; ============================== Layer Lock ==============================2 R* e' R. V) {+ F/ S
6 x/ P, O$ z1 s5 v7 t0 k4 `(Defun LAYLCK (/ LAY)3 [2 }5 U0 p; j1 A$ E7 ?
(setvar "cmdecho" 0)' B* \1 |" L* u# ?2 B" A; @. Z" z
(setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
) E: @8 M2 T7 {' x* y (if LAY
, `- k% F" G* [1 V (progn
: V+ A' K+ G/ J9 U# z* I/ t (setq LAY (cdr (assoc 8 (entget (car LAY)))))6 C0 c' j, w& k- F2 {
(Command "_.LAYER" "_LOCK" LAY "")
8 |/ f: W4 M0 F; s2 f2 A6 ~2 s (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
& ~+ T6 D* x- M(defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
$ s5 ?' i) Z( ]/ h" R
1 ^. s& I* j* {: F( a;;; ============================== Layer UnLock ==============================
& L6 I5 ~- F# B* o2 n$ v
, \6 c" f- G& }(Defun LAYULK (/ LAY)9 b; P3 U! A0 b9 X# n1 I
(setvar "cmdecho" 0)
: ~! d; Q5 B: o9 _ (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
6 l; n4 B" O4 X2 ?3 L& f (if LAY
$ Q/ T, M+ `% r+ H# K8 l$ { (progn% T( u; p* G* T7 x7 h9 `2 y
(setq LAY (cdr (assoc 8 (entget (car LAY)))))
3 e/ Z; e- D0 `5 P4 [ (Command "_.LAYER" "_UNLOCK" LAY "")" W1 w4 ~- y& m+ ^- c- f: |7 ^
(princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
+ h4 f7 V- s' c5 O(defun c:LAYULK () (layulk)) (defun c:LU () (layulk))# n6 y7 ]0 b, M) D
2 k( E2 Y" h2 ^4 E* V# ~;;;===================== Delete all objects of Layer ========================7 B7 U) T$ D4 B- L2 k5 c7 D4 p5 e
c3 S! q0 E/ V
(defun DELAYER (/ ocmd L S)
8 Z4 L' x' t5 N9 S' h$ |& X (setq ocmd (getvar "CMDECHO"))5 k! }9 F D7 H8 h2 R- Y1 z% r
(setvar "CMDECHO" 0)
: C/ Z0 b) y% O% O' E7 e2 u (setq L (strcase (getstring "\nLayer(s) to delete: ")))
% i7 ~2 n j, u& b2 V# F (setq S (ssget "X" (list (cons 8 L)))) , `; g0 E4 Q. `
(if S
4 s; | i- W9 d" N( ]( I- p (command "ERASE" S "")
" D6 Z# M3 a4 M% ] (princ "Layer empty or not a valid layer name.") )
4 I* B0 X6 o/ h% \ q (setq S nil)
) z1 y6 n) T. I" V0 Y (setvar "CMDECHO" ocmd) 1 a4 c7 d5 ~9 ^9 ]4 j
(princ) ) 8 X8 D# ]4 O3 G4 u0 R4 U
(defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))* f& ?0 ^/ q x6 `# [6 S
% V$ K% y# N4 W0 K4 d9 A; {- ~( O
;;; ========================= HET CAC LENH LAYER ===========================
, `# n% z; }) Y% R% E$ {: O% I
; v' L5 N& t8 T( e; q& U4 v;;;====================== EXTEND NHIEU DOI TUONG ===========================
9 x7 k2 M( r8 [# K; x+ A% L8 _: v7 R
(Defun C:EET ()
. f) T; }! f) g8 S* F2 H (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)+ }' C$ [& F' O7 c6 H W
(Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
- X+ J& O! R- p (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
( W( m! y) N& K* B* F; e0 Y (Setq I -1)2 E3 y2 E7 d7 q' S. K
(Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG ""); Q% W; w. Y5 H- U5 z( i
(Repeat LEN0 [: x0 U' _: \; T5 z" S
(Setq I (1+ I))
: z1 `. l/ b& `, r8 O2 g6 v; j (Command (List(SSname SS I) SIDE)) ) (Command "")
+ k5 I& ?" Q* [; [6 _/ ? (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
& ^. H# w# K3 U7 j- t* l4 o1 l b) o3 t& K: z6 M/ a
;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============) U, }7 n) J- B3 R3 y4 f) m2 h
0 e0 |+ i# u s w, r8 L$ P6 P0 A( T(defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
; {, H3 Q0 d$ p6 r9 v (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
5 |4 v9 a v' Q( a9 ? (setvar "osmode" os)( l3 D6 V" Y- W5 G
(setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
. K4 ^. ^8 W c: f( o3 a (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))& F3 h0 d2 v& [. d g
, S% p F: w2 y! e4 P6 F7 U;; ================ Change width of polylines =========================- p( s3 |" Q( i* O& G! G
# w8 v5 _4 [8 z7 @; X7 H1 \(DEFUN wp (/ a b sophantu sodem list1 ha:wid) F t& b1 [7 b8 \- r9 p7 \( |( i
(PRINC "\n Chon doi tuong can thay doi do day (Width) !") & ^ `! P; M& X9 N. }; G4 @* o
(setq b (ssget)) 5 E ]; h4 R9 ^+ z
(setq sophantu (sslength b))
/ a9 K5 W% T+ [0 r (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
X: p0 t. d' l H9 L/ M (princ "\nDo rong polyline <")
" T3 x9 n; e4 m& x% h/ @9 q (princ ha:wid)
; A; [' |, N8 p( M- m; H$ w! s$ V (princ ">: ")
9 z a& S2 b& l& p3 r. f1 H (initget 4)
2 a- t, m: Z/ |4 n7 S; B/ R (setq ha:wid (getdist))
) S0 @, J6 D: I4 Y (if (null ha:wid) (setq ha:wid (getvar "tracewid")))- a4 {5 h! l/ x! T% a1 C6 y0 U
(setvar "tracewid" ha:wid)
# B" e' Z8 G! y (setvar "cmdecho" 0)" W) N5 E5 y& W
(setq sodem 0)
) U5 B5 `6 ?6 X! E: g6 \ (repeat sophantu& m8 j* T0 z0 H0 G
(setq a (ssname b sodem))
0 u+ d+ ^* T j* k (setq list1 (assoc 0 (entget a)))
" r( {3 l! F/ X8 ~7 w (cond
) |4 R3 u9 v& U r, g ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
& k- }8 b7 j8 u# ?% d (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
3 c4 A! O4 A* A+ v/ q (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
; a2 d1 |/ c8 ~! g(defun c:wp () (wp)) (defun c:pw () (wp)), y; u5 O( N9 G) L
3 T7 I! G$ d' ^ B3 T
;; ================ Change radius of circles ==========================! ]: ]) N3 G2 o/ T4 h; l
' s& E- [/ X, ]$ L v
(DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
/ W5 s/ I) E# G' K6 C" G3 A (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
/ V1 v' f4 l9 ?/ Z+ g, Z (IF (/= RD NIL) (PROGN (SETQ I 0)& V& h$ Y1 i; C$ N9 \
(WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )7 L8 d: r/ `) v+ y
(IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
( ^) x8 h- M% o0 \1 o: y0 y (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
/ n7 A- ?1 |* k3 J9 z- Q# g o' t$ i/ c
;;; ============================== TEXT Hight ===============================
2 T9 k& s8 Y0 c0 M' U B* v2 s( v, M% d
(defun texthght (/ ent hght) q. n( x0 J0 X
(setvar "cmdecho" 1)
$ ~9 h4 I n& }: j* Z (prompt (strcat"\nSelect text entity with required text height"))* d/ E! I; W& r# S% ]: V$ u2 o
(prompt (strcat"\n."))
2 u) S3 ~0 H% @/ @7 [0 j/ R (setq ent (entget (car (entsel))))
! Z/ h3 `* [) M) X (setq hght (cdr (assoc 40 ent)))9 `* Y M$ O) \) ?0 r0 `/ e1 g2 T
(prompt (strcat"\nText height now set at "))(prin1 hght)
! W# {! J* k b h2 c2 ` (prompt (strcat"\n.")) - W0 D& `9 E( v0 g7 r( B
(setvar "cmdecho" 1)
J, y/ {4 V& h* y! w7 \. |* Y (command "DTEXT" PAUSE hght "") )# q5 a) b! n& E
(defun c:teh () (texthght)) (defun c:texthght () (texthght))
/ x- X- p+ S# ^% j/ @& p
+ G J# H. U( ^1 B;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================7 U: O" E, t& s k/ h
9 U4 L& S% j+ i8 O( W0 R F, r2 `(defun c:tuu () (setvar "cmdecho" 0)
7 m! G: N- Y' j (prompt "\nHay chon dong TEXT can gach chan ")
$ e; q8 i, F9 l (prompt "\nSelect objects: ")
" A. t; r; w6 p (command "select" "au" pause)
$ @. r+ U9 g& ]3 _; M, S2 S' @ (setq sstxt (ssget "p")
& c3 ^, \, L/ N* R8 M) S sslen (sslength sstxt)
5 u5 R) T Q1 ^' G$ P ctr 0 )- c1 _: u, h' O' I/ i* f
(command ".undo" "mark")
' S! i6 {: S9 b+ ~( p (while (< ctr sslen)
9 B- R7 e) h* @! r8 M: B (setq listxt (entget (ssname sstxt ctr))% l1 \7 p$ T# y* e; |! r- d6 {0 g! w' `
txttxt (cdr (assoc 1 listxt))9 K1 e% j5 p q4 S( g" D
enttxt (cdr (assoc 0 listxt)) )
: N) _/ \% B0 ^/ P (if (= enttxt "TEXT")" q5 m- F1 ^% B
(progn- U1 r$ _9 k+ ?6 h( Z! d6 v
(setq testxt (substr txttxt 1 3)), [; m4 a$ y/ q5 T
(if (or (= testxt "%%u") (= testxt "%%U"))
4 e- b" L% P; q$ { (setq newtxt (substr txttxt 4))
, [* T* B9 m6 E (setq newtxt (strcat "%%u" txttxt)) )
8 N) |7 q: o! I% T: O0 k ]% I (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
! ?4 ?$ ?% P* c. q4 w (entmod listxt) ) )
& z" a/ a- Q( P% l- i (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
* D; I. I* N0 q, `9 z" N/ X+ Z5 ^5 ?6 t
;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================% X* ?: z) E, ~5 S
/ \6 L8 Y2 v0 C; R* s- z
(defun c:tob () (setvar "cmdecho" 0)
H Z7 g" s9 H (prompt "\nHay chon dong TEXT can gach tren dau "): [- o8 e4 A% h2 B: V
(prompt "\nSelect objects: ")
( B) w# [5 f9 Z5 d9 |$ Y+ C (command "select" "au" pause)8 S6 @; N" J- ]# M4 [
(setq sstxt (ssget "p")# i" x P* H3 Q) j# {
sslen (sslength sstxt)8 h) ?- K! m: F, P1 t* i$ }
ctr 0 ). \8 ~4 T. m, \0 N! P
(command ".undo" "mark")
, U2 q8 Z8 B. g. V/ ? (while (< ctr sslen)) S$ z4 Q4 r) L. A6 z s8 ~
(setq listxt (entget (ssname sstxt ctr))
4 j i0 ^7 Z. Q5 A txttxt (cdr (assoc 1 listxt))
v7 r+ M6 [6 ^) i enttxt (cdr (assoc 0 listxt)) )
! E. X1 C. }( u3 t4 v (if (= enttxt "TEXT")
7 E, V& h4 Y! \0 G. P. y7 }2 i (progn" N. C% o; E* e r2 J- V9 d
(setq testxt (substr txttxt 1 3)). y; ~) P/ I" c% P. L
(if (or (= testxt "%%o") (= testxt "%%o"))$ N! x6 D5 g* B! `
(setq newtxt (substr txttxt 4))
; T \" i* t* U4 |+ u: U, k (setq newtxt (strcat "%%o" txttxt)) )# p% O0 G/ M' P7 ]+ s( ]4 c! V2 l N
(setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))1 }9 a4 @" ^; r- Z7 p
(entmod listxt) ) )' P) T; D3 t: ~1 G9 |/ q4 B; m A9 |
(setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))* ?$ M* p0 c1 o; x' V
! ^: q5 G1 ]4 z# o
;;; ========================== Tim & thay the TEXT ==========================
0 z9 T: @: U8 ]5 b7 ], \ }5 |# X" r8 y( S7 b* P5 p* r5 N
(defun frstring (str search replace / str1 str2 index find)0 l: x4 J5 R' Q* o! R) U' P
(setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
3 ~5 v- w( C) ~(setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))$ w% a7 N' U8 F- ~* f% k! ]" m
(setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
6 O/ B0 u8 J i" N4 L) Z4 t+ r(defun hai (/ dial)6 G: Y% h0 \. l& ~
(setq dial (load_dialog "hai.dcl")) ;;goi dialog- r& G p2 C6 l, J
(if (not (new_dialog "find" Dial)) (exit)) ;;5 P# a# s" k" ^
(mode_tile "find" 2); Tao dau nhac tai hop thoai
3 w) [$ n5 j$ p ^8 d! `1 n! t (action_tile "find" "(hai1)")
2 `! Z2 y' v) b7 e r+ p3 {* J (action_tile "replace" "(hai2)")4 x2 f/ B, k2 |& b8 K
(action_tile "cancel" "(done_dialog) (exit)")
3 y/ l4 \3 G( K( a7 Y" q (start_dialog) 8 A4 y! x4 G" j/ C" V" M
(unload_dialog dial))6 V1 s! s, b$ l2 i- ?
(defun hai1 () (SETQ str1 (get_tile "find")))& z0 P5 p. @/ l- t, A
(defun hai2 () (SETQ str2 (get_tile "replace"))); m* `, D* K9 ]: [& e
/ f" q2 L7 T% P. \
(defun c:TTT (/ a str str1 str2 newstr taphop sodem)- C# v0 M/ d9 S# b7 x: {
(hai)( L, q7 |+ V5 N* Z: \& O
(if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le") j# `& `, a) q
(progn9 M0 w% N4 B3 M5 \; J0 K
(setq taphop (ssget '((0 . "TEXT"))))
: o0 i1 t5 ?; Y (setq sodem 0)
& w3 O, }+ x5 a' n (if taphop
: f0 u& {9 T8 } (progn$ R, f5 ?& v1 c" X
(Repeat (sslength taphop)& a. @7 c1 \9 M9 I
(setq a (entget (ssname taphop sodem)))
/ F/ b: @# i0 D (setq str (cdr (assoc 1 a)))! u' Q. R+ i2 c/ w8 _
(setq newstr (frstring str str1 str2))- R' M. B6 U/ A$ o
(setq a (subst (cons 1 newstr) (assoc 1 a) a)); Q" X6 m6 O" _7 r) d6 c
(entmod a)
$ y7 o- Z! P8 L$ z4 w$ m% Y1 @: ~- X5 n (setq sodem (1+ sodem)) ) )/ M9 w( F% b5 w
(princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
8 R" Z" ]( }! Q1 F, R7 j2 e" K9 y8 x) g& ]4 [" Z3 ?
;;;============================= CHTEXSTY.LSP =============================
5 y7 Y1 v3 T9 ~2 Q4 o- B1 I o/ ?! y( T! X* e0 K3 u4 M [ A
(Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")5 M- E5 y7 _, I
(Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))( ]6 y5 K G) W
(Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))' w* A. P& ^. ], l3 j
(Initget 1) (Setq C (Getstring "\nEnter new text style: "))
! ^: y' H. l* r! R5 C+ f, v(Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
; k. C& t# m& e* d$ U1 I" v5 [2 i) ?3 j/ ^% s(Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))2 [) E: f* o' p4 @9 \+ {) D. n
(Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))* Y) e: u! S/ B/ u
(Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
6 l7 Q% D. k8 J4 ?7 _8 u0 {& |(Initget 1) (Setq A (Strcase (Getstring. b& P4 D9 a; J. ~$ Y
"\nEnter text style to change: "))) (Initget 1)
: e# f3 ]; [0 q(Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))( \ k& l1 |2 b# y5 j9 q) t
(Extang C) (While D (Princ ".") (Setq E (Entget D)) (If& f8 ^* n7 P% s0 G4 W7 h, G
(And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))$ @: {( v" _% }* T5 z
(Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
% F1 \7 j+ D3 r8 [# ~+ o. w(Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
) C' T8 p: d4 l% t, @(Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))8 }) Z% W4 P! Q J
( K R% `. N# K$ ?# N
(Defun Extang (A) (Setq A (Tblsearch "STYLE" A))3 q0 Q- q, v+ R9 u8 y6 ?" g4 K) K
(Setq J (Cdr (Assoc 50 A))))# G8 B' g7 v' x0 X. `) q
1 P; l7 ^4 i; Y) _4 Q;;; ============================ DRAW CLOUD =============================. y4 h( U# E o/ d, s
) J7 x/ {- F; ?(defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
p Y D+ \/ @; G$ i& d2 S (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
; p9 k9 G! l$ X3 U7 B$ |6 w! F (setq la (getvar "clayer"))
8 @2 o/ ?- p# W( J- F (command "layer" "m" "cloud" "c" "5" "" ""). b& o. E" ~+ E( O
(setq pt1 (getpoint "\nEnter first point of Cloud: "))
- l8 H- G/ D- `- j (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction...")). V V* b( M: R+ \4 U2 f) A5 l
(setq cnt 1 ss (ssadd))) ^8 f; o; v. j2 h
(while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
! @: n+ x. n- l5 C! W; F; w4 f (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75)), ]8 `' F1 M( c. z J* Z& p8 m
(if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))7 m ~* t s# T: V) G+ g: c( [2 y
(setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)/ q) ]# `: s0 R" s$ i
(command "pedit" arc1 "y" "j" ss "" "x")
# l' s( {/ Q+ a& l9 d- ^ (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
5 i# g8 u% O4 p2 D (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
# [6 ]; \& e) }% B" U/ L- |5 K0 ](DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
6 v: t- d: ]) T5 K! a* Q+ _& _" O. ~6 x+ {4 v% N" c: G, ?
;;; ================================ Funtion-Dulieu ========================7 i$ R( K1 ~1 d4 d0 W1 }0 G, m
;;; ================================ Funtion-Dulieu ========================8 @* l* f* F4 |3 Q4 l% X9 M
;;; ================================ Funtion-Dulieu ========================
! i6 X2 a8 p3 h& A; M" [1 |- d! j+ f- t& w; {
(defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )' t" ?* R* M6 E* o0 \
(defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
: W+ P, [) L1 o, w% h- U- f: F(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))
, g: B) R- s- o( n% C(defun hacat (hacat1 hacat2 / hacat3 chon) (if (and (/= hacat1 nil) (/= hacat2 nil)) (progn (setq hacat3 (polar hacat1 (angle hacat1 hacat2) (/ (distance hacat1 hacat2) 2))) (setq chon (ssget hacat3)) (command "break" chon hacat1 hacat2) ) ) (princ) )7 w! e- N* q6 B6 K |
(defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
: a( u# e2 f M(defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))- |8 O' r3 z- j0 s
(defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
! N% h/ f% T/ p: T8 E A, o! q(defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
, X L2 \$ R3 ^2 f+ X; L(defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
4 {* B+ K3 i, f7 |2 }. m(defun ha:giaodiem (dc1 p1 p2 / hc hc1 diem1) (setq diem1 (vectophap p1 p2)) (setq hc1 (polar dc1 (angle '(0.0 0.0) diem1) 100)) (setq hc (inters p1 p2 dc1 hc1 nil)))
& l, B9 Q( P1 b" c$ C+ d(defun dtr (dtr) (* pi (/ dtr 180.0))), U. ]1 S* N9 f
(defun rtd (rtd) (* 180.0 (/ rtd pi)))9 g) o5 j0 Q; P9 b& r9 V
8 }6 E5 Y: q$ W% F6 a$ Z;;;==============================PROGRAME===============================
8 s6 d& P: Q6 A9 H( q;;;=====================EditDiM Hien Hop Thoai Dep======================6 d) ?: f- }8 b+ z5 W( |( ?
;;;==============================PROGRAME===============================
& @6 ^0 i# U" R: z* `* @8 a
4 l2 T6 |& `. n. u- };;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
4 Z# W# T9 T8 d; P9 F;;Chay Cung Du Lieu.Lsp & Hai.Dcl' W* o5 C7 ?8 ~4 M* v
(Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
/ ~! X: I- O+ U. f' M( s: [ (Setq Oldlis (Entget (Car Chon))
- d4 `& }2 r3 T) ] Pt10 (Cdr (Assoc 10 Oldlis))
0 ?4 Z+ d0 B: u* q0 n Pt13 (Cdr (Assoc 13 Oldlis))9 W+ q3 }& {2 D: k, }
Pt14 (Cdr (Assoc 14 Oldlis))
+ H3 y" R' l2 K( a) a! n+ B s St (Cdr (Assoc 70 Oldlis))5 i6 a7 O" A8 V- X; n: V
Dimdefault (Cdr (Assoc 1 Oldlis))
, ]5 n* j& d0 a, h )1 q& h8 u+ R" a6 c2 m
(Cond
7 G9 c8 G( G9 h" B5 @7 ^ ^ ((Or (= 32 St)(= 0 St)(= 160 St))
' @7 [! }6 a! r. \* ]/ B. C (Progn$ ? w& U+ L6 ^
(Setq Ang (Cdr (Assoc 50 Oldlis))
3 r( Z/ ^* y# a- L1 N9 w5 S) z; @6 I9 A Pt (Polar Pt13 Ang 500)/ i$ h; R9 j# C) Q, ]4 t6 I9 g
Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
) r( t2 R7 u5 _4 O5 u! G/ n Dis (Rtos (Distance Pt13 Hc))
( A' Z7 [0 l; L9 R8 z )2 A4 ?; m6 R2 m }$ {% ~) _, s
)8 h6 ~' v, A6 \, ~4 ~8 m4 U: @
)
# ^) \; q3 T: d1 @: [0 \" Q- M: P ((Or (= 33 St)(= 1 St)). x, X$ Q* X& D6 F/ o4 m4 N
(Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
. M) M: ^- G9 w6 _' y1 |. | );;End Cond6 t1 i* {* c# x, ~! @7 L
(If (= Dimdefault "") (Setq Dimdefault "<>")). l# l& ^% ^" Y# I& P, I2 x" N
(Setq Dial (Load_Dialog "Hai.Dcl"))
& s9 N7 q, m% P1 E% V (If (Not (New_Dialog "eddim" Dial)) (Exit))1 x# q" g6 b% D) |
(If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))$ Z! g" f( r" h$ x* W
(Set_Tile "text" Dis))8 u% v$ ~, Z3 u! z( o$ j- X8 M
(Set_Tile "ha:edim" Dimdefault)" B. l7 O) ^9 n! K
(Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
# w! \* X- Z# W8 ` (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")+ ]. e: J3 i' K* r
(Setq State (Start_Dialog))(Unload_Dialog Dial)
0 Y& }! P& x' a# K: e' ` (If (And Str (= 3 State))* U: m& h3 h Q# E" ^5 c
(Progn
! t$ x2 F1 i# h7 H7 Y- y9 Q! b (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))# i3 b' T9 O+ w
)
# r, W. N R/ g3 a/ R$ d(Defun C:EH (/ Chon Name )
; a0 W+ r0 \7 s0 D7 s. I (Defun *Error* (Msg)
% L* R7 B4 Y" T: c- ? (Princ "\nerror: ")(Princ Msg)(Princ " ")
3 _& T0 g- ^. X; d1 O9 ?2 {: G) U (Start_Dialog)(Unload_Dialog Dial)
3 Q& D) L' K) P H (Setq *Error* Olderr)(Princ)1 P5 G, {' q, Y1 z
)
1 N: U4 E' K0 g* ~7 X8 A (Setq Olderr *Error*)5 t8 R/ ?3 J0 R" `
(Setq Chon T)
, z2 C* q9 d4 w# R! ^9 ?: w (While Chon
( G& R. E& V3 F5 m5 S (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))& E! N& H/ c( g! ?7 J2 i/ e
(If Chon
8 Q0 x& F+ u6 d (Progn6 v+ Q( K( n5 n" M$ J1 J1 j0 o
(Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
) A( C- ]* p6 Y( T9 _* K# ]( r (Cond: A" C4 x8 z- A: T7 R0 Y5 Z l
((= Name "INSERT")(Command "Ddatte" Chon))5 k( m' S8 N% R6 k7 K! a- y6 d$ t
((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
2 L+ H4 j/ ?8 W" n$ Q {- S5 H ((= Name "DIMENSION") (Hai_Edim Chon))
* f/ ?" ]) _0 f )
4 U; v8 G; S3 P, I: N& f: e! e );End Cond
% Z3 s0 D% i' o7 O, g );End Progn
7 R l, K2 p' I: l );End While
3 d" g3 V2 }) Y6 b, l4 y (Setq Olderr *Error*)(Princ)
! N: S4 Z8 W% G4 w4 D# q: H- M );End Program
; ~% x# n- q9 o4 o/ n
7 L! H7 [5 t* _5 r* v3 X& h;;;====================DDeditDim===================== J: g3 |5 `+ o- z# x) w& d
;;;=====================Hai.DCL======================6 H1 O( |4 z) _* @. e
;;;====================DDeditDim=====================, \0 V: M6 G% o) x
4 f5 g0 A- E5 H
;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
3 r, r; K. u( S;;Chay Cung Du Lieu.Lsp & Hai.Dcl" t9 F' C6 p1 Y1 }5 Y
(Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)9 ^( u) `' m$ p+ Y5 a) A
(Setq Oldlis (Entget (Car Chon))
+ A4 p7 N! f6 z6 v Pt10 (Cdr (Assoc 10 Oldlis))8 N: r L$ g, L8 ]7 P J5 e# I
Pt13 (Cdr (Assoc 13 Oldlis))$ Y% @% _5 t' k1 m4 n, d
Pt14 (Cdr (Assoc 14 Oldlis))1 B( I4 h* Y1 b' D8 S
St (Cdr (Assoc 70 Oldlis))
0 l; X8 J- e+ R: }6 W8 U( [ Dimdefault (Cdr (Assoc 1 Oldlis))
J0 P' S9 ^$ U, ^' h ), p- P4 [7 d6 b& J
(Cond, o, B/ v. y9 s% C3 ?
((Or (= 32 St)(= 0 St)(= 160 St))
* i. ]2 }, L- E Y' K (Progn
v& ]' D0 t3 h( P7 j, E$ V (Setq Ang (Cdr (Assoc 50 Oldlis))
3 A3 n2 x1 m% p4 k% D- ` Pt (Polar Pt13 Ang 500)* T' S( K+ m: O( t4 A: h* d
Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
y8 ^" |7 R( y' L; v Dis (Rtos (Distance Pt13 Hc))) z: F4 q+ u& d& X; J( r. p( V
)7 z6 b4 \/ }% r) S8 m8 A- E9 a9 m
)
, u. Z% F8 a. p a, _ )0 y) k4 N& ^' ?( j9 R4 b
((Or (= 33 St)(= 1 St)), ~! L. U' P4 e8 k' I' z8 c: m
(Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))# s8 c, ?- r) T3 f4 e; |
);;End Cond- _8 o4 x7 n6 G" ]. n1 X
(If (= Dimdefault "") (Setq Dimdefault "<>"))2 Z+ F1 i. }- N; A5 P) p) n
(Setq Dial (Load_Dialog "Hai.Dcl"))) x! E# }( _1 e/ g8 R9 T
(If (Not (New_Dialog "eddim" Dial)) (Exit))
1 o3 Y* ^7 e/ C (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))( x, N( S n. a* O8 t/ J' v
(Set_Tile "text" Dis))
" Z O& Q5 ?' B& D' N. n (Set_Tile "ha:edim" Dimdefault)
0 u0 [/ J# G0 b* D' M w, d& ] (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai5 F" q( Q, d- M6 c1 ^. x+ A( @
(Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
* B9 O* ?. v- d# f. H (Setq State (Start_Dialog))(Unload_Dialog Dial): C% A" ?$ t* v- T, V z
(If (And Str (= 3 State)). w$ y0 H# f4 ?
(Progn9 K6 x, e5 U( a8 Z
(Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis))); [: n9 k4 b; c; ~7 |
)
' z9 _9 g& k9 @3 t# V; `8 r(Defun C:EH (/ Chon Name )
) B. X/ @; w! x6 F( w1 v3 t0 F0 r
6 m8 F' H' X W! Y) Z;;;********************Du Lieu********************
: X- `3 G" H0 r% G$ v Z6 j8 a" u8 G, z6 o$ j1 d* z
(Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))4 o0 V2 \& \% V, D5 i9 c, t( s
(Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)" ^' A5 I# j) y+ z% q
(If (And (/= Hacat1 Nil) (/= Hacat2 Nil))# q( @6 `& y9 q/ E4 D" G
(Progn
/ C y- b+ g/ x" K- z (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))2 W; k; q$ C% [
(Setq Chon (Ssget Hacat3))& H5 r" h" N( ]- c
(Command "Break" Chon Hacat1 Hacat2)& h( f, e$ q3 |- C8 ]+ j+ e
)$ v0 K& y9 r: f8 d0 [# D
)
8 L) W, w; Q2 P3 i5 E4 ] (Princ)! V! @3 q6 V; Y! ], U
)
3 h8 o: t4 G: w" A9 A7 W;;1 D' N, M; K; J4 |- P* M
(Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
6 I' ~, z/ b; X5 ^( x;;
- ~9 U; ^% m' `+ F; d" 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 J1 u9 w% ]9 G; g, k, O8 \;;5 g6 S, R" q5 T% {2 ~+ G, |
(Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))" H8 s% W7 `( T
;;- h% M( S- L7 E! G% }* L; q4 P
(Defun Reinit ()(Setvar "Cmdecho" 1))9 R4 \( {; \1 L
;;
8 c' ~) A' x3 h8 [( _/ e2 d(Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
9 V1 ]7 i2 V" l' S;;
9 E" H' a% [1 y;;Cho 2 Diem Tinh Ra Vec To Phap Y9 K3 U' G1 l1 e
(Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
. M4 V: c6 Q6 A7 s4 G0 P;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang# P f h0 j. y# j/ G
;;Da Biet 2 Diem Thuoc Duong Thang) \( N S) H* T+ w4 g6 T, |9 R
(Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)/ w5 y( W& k" o6 j. |, F7 B
(Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100); V" r6 s( ?- O2 F, Q0 N
Hc (Inters P1 P2 Dc1 Dc2 Nil)))
# b5 E, }7 m+ ^5 a;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
0 @2 x+ f: G/ ~0 O. H" z: t;;Da Biet 2 Diem Thuoc Duong Thang) Z& Q; R0 L4 S; ]1 V& {$ Y" S, _
(Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
" c1 k# l* v. r. h3 Y$ {) Y$ a/ f' X (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)" J: T1 S0 Q% s- h
Hc (Inters P1 P2 Dc1 Dc2 Nil))
* O) `0 j; S" |% Q- t (Distance Dc1 Hc)
5 \: v: t# y: o1 _ )
$ {! h( Q( g( y1 t* {1 J$ F(load "nhapcua.lsp")
' ~* ~* n/ _+ U4 @0 `* i (Defun *Error* (Msg)
. {1 l: b2 |( x" [/ D" U (Princ "\nerror: ")(Princ Msg)(Princ " ")
$ M8 M$ k: {6 T& |6 F2 P1 p (Start_Dialog)(Unload_Dialog Dial)
- A, _: _, d6 i (Setq *Error* Olderr)(Princ)0 M& q4 ^9 l6 H5 G* o( e
)
5 V6 { N4 w! [ (Setq Olderr *Error*)
( ~, g3 r( u# `+ d/ ~5 ~ (Setq Chon T)& I5 p. d1 g3 J; ^. E
(While Chon
6 W2 Z6 K2 f; f4 C! c/ T (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
1 b6 L' W1 ~8 i4 C1 O M (If Chon
1 u; \1 H2 g+ H0 `/ ^1 _: y (Progn
3 n6 C6 m* [& }& d- x (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))5 `5 |. m5 Y) Y q: J* J# \
(Cond6 p7 \ P' D6 F3 m3 p
((= Name "INSERT")(Command "Ddatte" Chon))
/ g, C, p- e- M6 ~" D4 R2 I ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))8 r% Z5 q0 {0 I w" D" n2 A- F
((= Name "DIMENSION") (Hai_Edim Chon))" d, t* S8 m$ M
)
) c* w% E& m" r1 L5 S& ?. C$ {/ W$ Y );End Cond
: O, m6 f9 w M$ M: E- R0 w );End Progn
) Y) J" k8 I3 s! k% j. R );End While
( ^7 b! R# E" Y! O6 \0 E A% `8 l (Setq Olderr *Error*)(Princ)
- {' L: i' y2 ?$ ]0 W' ~* o G9 l );End Program1 p3 A/ B4 t7 [' }5 G
# Y1 {& ~' o$ e1 B) g& T; P& C
0 P5 X( P2 E* t* e/ j4 D1 d
0 I* l- n8 N+ F0 S;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================) a3 [8 r2 ?* F
;====================================Nhapcua.LSP====================================
8 W) \. R4 ^% |$ i* Z# c;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
3 h6 h- G; |/ F L) u7 r
3 Z+ T+ @' W0 n# j3 ], c& M;;; ============================ Ve Hinh chu nhat ==================================
/ `3 \' g) Q8 N F(defun HCN (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)# [2 g+ p7 j: n. j9 h$ z
(setq ocmd (getvar "cmdecho"))
* {: e {* Q0 c2 F$ _% |) p7 P% U (setq oblp (getvar "blipmode"))
. G) h1 y2 A+ C; U, o% M; ^ (setvar "cmdecho" 0) y' Z- y5 L7 X6 e4 C+ N
(initget 1) ;3D point can't be null
; r+ v4 h B7 j+ h, k$ H4 T. X (setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))# v: L- A, G3 u# x% V
(setvar "ORTHOMODE" 1)
& f5 P& n3 M2 T (initget 7) ;Length can't be 0, neg, or null' A$ u* N8 N; n2 n$ Q% a4 ]
(setq l (getdist pt1 "\nLength: "))
% X+ L$ D; ?/ g1 N (setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
- X* z* _ v9 u$ e (grdraw pt1 pt2 2)) n) @' R! ^/ B0 g
(initget 7 "Square") ;Width can't be 0, neg, or null+ ^; v D3 P/ R
(setq w (getdist pt1 "\nSquare/<Width>: "))8 H+ J1 _& a; @- W* \
(if (= w "Square") 4 h6 Y: M- O5 R% \ B' ?1 u
(setq w l) )
5 z$ a2 b4 |7 ~. @0 s( j (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
2 G' @0 ?; q5 Q8 D (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1))) R- I8 m3 z( o# U7 z% v
(grdraw pt2 pt3 2)
+ N! u& }/ Z% B9 E (grdraw pt3 pt4 2)( L% l3 {2 e8 o3 ` t1 V
(grdraw pt4 pt1 2) q/ G& s9 ~+ f: f. R4 g: e
(setvar "ORTHOMODE" 0)
6 h% e# s+ Z! V" j, Q+ V& f$ K (command "pline" pt1 pt2 pt3 pt4 "close")
- W& J" Y2 A+ _1 _ (setvar "cmdecho" ocmd)1 `6 _/ d2 [6 I" d6 |
(setvar "blipmode" oblp) (princ))
; o# y+ ?% g3 O( u$ X(DEFUN C:HCN () (HCN))
6 ^' J9 R) I$ C" \* R2 I5 M( \4 r
3 e# A1 q, C, e; R' y' A7 g( r;*******************;*******************;*******************;*******************
1 w, x1 x3 m# d7 u( G;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
. V l+ _4 Y/ X0 [% `1 r7 X7 X;*******************;*******************;*******************;*******************' ^ _ ]4 V% f! D9 n
" K% }3 L- c8 }3 P4 g$ T;VE HINH BINH HANH
. ~! O# s. `8 U s2 a. f p/ J$ Z a& p7 C8 G7 I6 T/ j- t
(defun c:binhhanh (/ p1 p2 p3)
' N* t- L% S. V& r (setq p1 (getpoint "\n Nhap diem thu nhat:")): O- c% A v$ L+ E u3 d
(setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
8 a1 ]) a3 m7 q$ Y+ ` ~(setq om (getvar "osmode"))
5 ~- D8 h: f+ z2 Q; e(setvar "osmode" 0)
6 ^! c& k: M# t/ M/ ?& J' k2 c (command "line" p1 p2 "")
4 P$ H9 K, z+ @8 E9 j2 R6 @- Q6 {(setvar "osmode" om)/ O5 i9 X4 W0 m" r
(setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
* k/ U9 E/ R4 a: G2 D (setq a (angle p2 p1))
% H( i$ _6 }5 B7 l7 M (setq d (distance p1 p2))
7 d. w9 J: Z8 l9 ~. ~" g (setq p4 (polar p3 a d))! u8 j9 q& ^+ y$ u
(command "OSNAP" "none")
& Q: I4 v- H/ B! [/ r (command "erase" "l" "")8 w# f+ u0 ~* A$ Q; Q
(command "pline" p1 p2 p3 p4 p1 "")( S5 Y; l2 I0 D9 }
(setvar "osmode" om): K5 }" c5 S3 h( ^
)+ l( m- k9 j$ l. \, ^
- l# q8 m' y( i$ _% t: V% \9 E
;VE LUOI COT. E9 E5 j- p6 h: D
) b! f* N- ?% w' y/ z% Z
(defun c:LuoiCot ()3 ]5 k2 c9 v& I$ |
(setq om (getvar "osmode"))6 N$ r. [6 c9 O; x' Z: Z
(setvar "osmode" 0)) v9 P, v. i9 Z. s
(setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
I7 D. r% _, p (setq p0 (getpoint "\n Chon Basic Point:"))/ y) P/ R! k# u, T! z" B
(setq nc (getreal "\n Nhap chieu ngang cua cot : "))
) K+ d9 M; a1 b2 Y+ c: b (setq dc (getreal "\n Nhap chieu doc cua cot : "))
& \6 q b" U) K' X) L (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
+ o: g" u8 e4 o @8 A (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) ). f5 y( y: }* p; x: H, }1 }
(command "rectang" p1 p2) [/ c+ u) Q. w. l9 `
(command "hatch" "solid" "l" "")
3 z- K/ r9 D4 G2 B- b (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
! W, B" c8 p% c: {! } (setq nn (getint "\n So buoc cot phuong ngang : "))0 ?0 V2 Z4 c0 x- I n. j
(setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
! {/ r. G/ l4 }; a5 Q; ^ (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )4 w0 V& o) m1 j! g
(command "select" "w" w1 w2 ""), L4 B: f8 L" {3 e6 v5 {
(command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) ): g$ m' m1 y2 U/ O- S! ?
(command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
, |& @$ e3 K7 Q x9 |+ Z2 B# V: ] (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
% B( j- N! f$ R3 p L- a- E9 W$ ? (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
( g& b5 |0 f/ L @1 h (command "zoom" "w" w1 w2)
& |6 w9 z( L) I6 d (command "select" "w" w1 w2 "")0 P8 ?# O- w0 r9 j& V ~
(setq bcd (getreal "\n Buoc cot theo phuong doc : "))5 Y2 j- Z' J) u
(setq nd (getint "\n So buoc cot phuong doc : "))# {( y/ _1 `. B) k
(command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )" R* w7 `" D o4 E
(command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
4 P q s8 q9 l: f1 ` (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )* a( e9 m, F; R1 |. G( e0 H
(setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
]% L- T9 P2 I% n: J+ ~/ C! P (command "zoom" "w" w1 w2)
5 Q* e9 B- q" g7 W' S* b- `(setvar "osmode" om)2 Y9 C! d2 O, h* l
): T. J$ I" p4 s3 Q# ]. }8 s# h x. k8 `
/ y6 f& G Y# w' T' z& [" ?
;VE CUA DI+ B$ \# Q# R: f
: ~# K/ {$ K/ X1 O6 |" t
(defun c:cuadi ()9 Z6 d0 a- e9 R! h3 ^& ^
(setq om (getvar "osmode"))& H [1 Z2 ~5 H, b% [6 G
(setvar "osmode" 0)% S3 s0 [+ r8 ~( e6 Y, }
: K- u- z% h* K, U6 U (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
6 a7 }7 P& y9 Q8 S- M, Y( ?! s7 s(setq b (getreal "\n Nhap be rong cua : ")): z/ d; a9 y& R( S5 T7 j- D% m8 l
(setvar "osmode" om)1 B2 R' e4 \" S& ^: j
(while (< 0 1)9 c) G/ Q9 W" o& u7 o% |) [0 _2 p
(progn
8 ]& [! d4 j, F" t (setq p0 (getpoint "\n Chon Basic Point:"))6 W# y' ?; Z J
(setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))6 B/ X9 Y+ K0 l+ J" j- J& u
(command "osnap" "none")* H- m: m9 H( @+ {% G% e
(setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
5 o/ U! Q4 k3 n$ p) q (setq a1 (angle p0 p1))
5 ]3 {# Z2 b, t( A/ w- |# J (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
' S9 l& m/ D1 z& P( W0 v (setq a2 (angle p0 p2))
7 l. a! l. c: r) v4 j& R (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) ) ?8 R7 S1 e" y. r, z# ]. r! z
(command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")5 |7 G9 j$ \7 _; H
(command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
' c$ d1 [& m4 @1 |* C9 Q (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
- Q" v0 ?8 A9 y) X$ v4 H! o(setvar "osmode" om)+ T# ?1 Y$ @$ q i
))
' O9 K& V5 P$ `2 m" O, H, @, q)
, X( J$ g0 f: o+ E
# p2 R- f2 V5 q& l;VE CUA SO
N8 o" O/ @$ T- A7 j" f5 X+ S, D# [' i7 Z) S, b8 p
(defun c:cuaso ()+ ~) }7 K# }/ v9 _4 L) [$ f
(setq om (getvar "osmode"))& P H3 e% `" z# P8 [
(setvar "osmode" 0)
9 d5 W5 q( x! e) g* x. `6 i% c# o9 p& S, P, P4 Q* F
(setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
' Z; q7 G' }, @' L* o2 k+ l(setvar "osmode" om)0 G6 J2 n; i% F9 l
(while (< 0 1)
H- N% i0 b! l. t! K (progn
( u* [: [: }0 Y (setq p0 (getpoint "\n Chon Basic Point:"))
$ Z/ R" N- o0 [7 J0 R: g (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
$ A1 ?/ |6 H7 ?% @5 ~ (command "osnap" "none")" T7 D/ N! T0 d5 {
(setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))- R- H2 A. I+ L* Z: s; T9 a Y
(setq b (distance p0 p1))
. V. ~# i6 n$ [& Z; b (if (< b (/ (* hstl 600) tile)) (setq du 50))0 g# I) G7 S6 _' Z" v
(if (> b (/ (* hstl 600) tile)) (setq du 150))$ Y& S* i" d: W. s( b" c# K/ ~
(if (> b (/ (* hstl 1800) tile)) (setq du 200))! J& m/ h" J- |( @3 U0 J
(setq a1 (angle p0 p1)): Q' p# ^$ C; Z
(setq a2 (angle p0 p2))8 x0 E: L4 g) M7 }
(if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) ), F2 q; O' S' W7 S1 a; F O4 \% j
(if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )% g/ F# @1 @* [) w
(if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )" ~$ u, S0 X$ Y7 w" N4 f E) T
(command "pline" p0 "w" "0" "0" p1 "")
. y+ }& l* G! Z) Y+ A; B% m4 I0 Y (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")% B& f4 A L8 g/ Y9 \ J+ b7 n5 E: g
(command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
B$ p$ }+ x: O (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
5 H' o Q& t( n (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) ""). }$ W( U% g( f- I
(setvar "osmode" om)9 F" @- |9 E$ g" k: X& e* P
))
: J1 F. f: K: H, d" l0 }5 q. k)
; a2 e+ J* d* E- R8 A3 X8 A+ `8 a/ E% V V0 L
;;;=== General Utility Functions ===
, y) l( c( [0 q, [, n8 d2 B3 j5 H( t1 l& q: \4 G5 N9 P
; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
2 E9 A. r7 ]3 ]- S; ADS function. Now it's a simple AutoLISP function that calls the
2 Z& d% g+ ^9 {& s6 O4 n) z; built-in function (help). It's only purpose is R12 compatibility.
- w* I! u: u. j7 B/ K; [( l; If you are calling it for anything else, you should almost certainly . a; l& @0 z, L, H" \" X, ]
; be calling (help) instead. . c' q- L" x9 P# W" m6 c9 O- `
O% ^6 I/ B2 k' K1 s% Z
(defun acad_helpdlg (helpfile topic)
! c- e# C( U- {: e% b( ^; [ (help helpfile topic)
2 {' m8 o3 ], K( U4 Z5 w)" @ ~( X3 j3 e- [( s8 F# N b
% r* S" R, M, F1 H9 i: ?
3 y, Z7 C! R7 q# g1 S$ i H1 P+ _9 p
(defun *merr* (msg)0 w5 J' c3 t" C6 Q/ b d$ W
(setq *error* m:err m:err nil)
; S7 z# t9 U2 }( s$ N7 b% E# z (princ)6 m- x! f# @) w# z; \: j1 d
)% ~8 z7 \4 h5 p) W0 [0 w% Z
# y" @- F) c. M F' a" z0 _6 c
(defun *merrmsg* (msg)
: i0 B! [" e* ]- K: W% K- L (princ msg)2 L" p# Z* @% o7 O* [1 j- Z1 D
(setq *error* m:err m:err nil)
8 u' K9 i8 z& Q$ o9 t9 n5 W" ? (princ)
3 w1 P3 I# @/ }' p+ t)5 c. Z$ |+ Q2 ^% z0 C. m9 K, b
4 j' s0 p- y4 r% X1 M;; Loads the indicated ARX app if it isn't already loaded
- e# w3 Q k3 j- v;; returns nil if no load was necessary, else returns the
# |) ~- `2 H- g [/ A;; app name if a load occurred./ m. |4 m* `: t9 O. N* W0 {' D2 w
(defun verify_arxapp_loaded (app) + c' }" {3 M6 [$ E6 A
(if (not (loadedp app (arx)))
/ p+ I7 K3 | A8 _* u (arxload app f)! a P. C" L7 [2 A4 Q3 u! W
)+ s0 ^, [' Y/ e, e. W" c' p5 C
)" K q+ R( \* R1 }2 [
* Y" g+ I; w) T3 p4 v5 a. A& T;; determines if a given application is loaded... ^% I9 k, R# n- {4 A
;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....6 o6 m4 a: x4 }- |; j' d) [8 {
;;
7 d; f" J3 w6 G3 y0 O;; app is the filename of the application to check (extension is required)
' W$ V9 {& G8 D# I; m" |- p# {. @: J; v( I0 ~;; appset is a list of applications, (such as (arx) or (ads)
6 R% N5 z' w2 U7 W. V;; 0 d; Z2 b. c( B+ G# N7 i4 o
;; returns T or nil, depending on whether app is present in the appset
& z/ z+ c" c2 k6 t- Z;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX": |) Z% D! I, A
;; Also, if appset contains members that contain paths, app will right-match
2 m" H- I- F: R2 p! U+ u) i;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that+ `( \8 g& I) n
;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
6 G" a( E4 r h, C3 \4 ?0 T& \0 D- ?& I+ w(defun loadedp (app appset)7 {! w9 p2 \- o( X5 b# Y
(cond (appset (or 0 E0 N" V! _/ q7 r
;; exactly equal? (ignoring case)2 S$ b( @& i% t8 `4 p
(= (strcase (car appset))
' W5 {. {3 `9 W (strcase app)) T- U& [6 e4 \' m+ p& M' X
;; right-matching? (ignoring case, but assuming that! q1 E* B* l/ z( o& s1 W6 ^
;; it's a complete filename (with a backslash before it); n, M5 F/ m8 E# h4 T8 @% B7 H
(and ( H1 f1 M- G. C2 E% e8 B5 D' W
(> (strlen (car appset)) (strlen app)); O$ B8 D! F, I
(= (strcase (substr (car appset)
# x7 r" @5 c7 u) F5 G( q8 H( D (- (strlen (car appset)) $ i4 Q8 P$ [/ j0 G2 L
(strlen app) ! F! C# d, w; ^" Q1 g0 g
) g e) \7 L ^# R
)
! E$ y: f; S6 w: B! W7 q+ ` ) 6 V" o. ?4 a. d8 o1 T* p: p
(strcase (strcat "\\" app))
: g) \7 T/ X% {) q- c5 [ )
2 I& g* y' e+ R4 b* O- A; H )
& Q: o0 y' z' f ;; no match for this entry in appset, try next one....
' D' Z4 k8 {9 H (loadedp app (cdr appset)) )))$ k3 R" j5 |# A4 |
)
( U& P) F4 `6 W, L6 M _' y
/ W8 X# Q% u) l0 \* s7 x9 u- y6 X$ U" `6 r! R; w
;;; ===== Single-line MText editor =====
^1 c) `# P5 _( V1 G5 @2 }(defun LispEd (contents / fname dcl state)
3 w! R/ C2 M- Z/ G+ M0 A. A (if (not (setq fname (getvar "program")))
" J- x! x4 w" p# r* _# ]* Z( l4 Y5 ^ (setq fname "acad")
m' |0 n7 @. X, I ); q2 @$ V# D% {' Q6 c I$ x s: E0 ?
(strcat fname ".dcl")/ s- n T- i$ f8 T# q n) \
(setq dcl (load_dialog fname))1 A/ g$ |* X% y( G2 c1 w
(if (not (new_dialog "LispEd" dcl)) (exit))
2 ^; f8 B6 f! W) x$ Y( a2 r/ I (set_tile "contents" contents)" O: x8 Q# t, U5 q6 E
(mode_tile "contents" 2)) J# ~/ l b, I V
(action_tile "contents" "(setq contents $value)")" ^% h% Q& s; R* m2 J' K s
(action_tile "accept" "(done_dialog 1)")2 |1 W& F3 [& N+ M
(action_tile "mtexted" "(done_dialog 2)" )4 c# \) a0 N {. v( i2 B
(setq state (start_dialog))
% R' t; V o, L6 B+ y# K- \3 ]7 F (unload_dialog dcl)
& M, x2 Y, R5 @% D* o* d (cond7 `( y) u# m' y0 X; @; w5 w
((= state 1) contents)
4 H$ O7 P* o* k E+ Z* { ((= state 2) -1)
s: _" F3 S9 x2 t! t. q# V- t (t 0)
9 ?4 Z D! }% _% U* m ), A) k2 s( P* P0 n
)) u7 j! Y9 f- ?* E. p6 F5 b4 s& J& D
/ ?* _& G$ o. H. G: c& x5 ^
;;; ===== Discontinued commands =====
% ^1 K: Z7 X( `! }6 ?) W8 T! m7 p) e5 g# g(defun c:ddselect(/ cmdecho-save)1 X+ R! Q, [- }$ w' D7 V
(setq cmdecho-save (getvar "CMDECHO"))& e3 k5 r/ G/ J) K" N% }0 x
(setvar "CMDECHO" 0)
! X* s1 s0 v. c. S! S7 r (command "._+options" 7)& c! E8 i6 ~- i; }7 ?' b9 x, E
(setvar "CMDECHO" cmdecho-save). r" ~8 l6 [& Y$ S, s, E
(princ)4 H# }6 [; m8 H" C- E3 T/ N6 v3 a9 U
)1 `0 B+ H1 l" Y7 k
' j/ ]: o7 a* b U0 K& A% C(defun c:ddgrips(/ cmdecho-save)
0 I7 |: s9 T% x/ S% A/ a (setq cmdecho-save (getvar "CMDECHO"))
' {" E- ?3 V8 X' n( }7 D E (setvar "CMDECHO" 0)) ~/ \( z$ L9 o, ?5 h- ]. ]
(command "._+options" 7)# h& b$ v9 M% M" a' p7 ?/ J
(setvar "CMDECHO" cmdecho-save)
) `0 l, k V+ X. E (princ); U5 M c1 X3 d T5 v I- ^ a
)
, ]7 q1 O9 G* X" |( v
- f( Y* ?: ]4 N7 u5 T- B(defun c:gifin ()3 U/ H+ R* L T Y+ B
(alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
- e* ~0 r b6 t# J8 P (princ)
2 T' u! ` U3 K1 \+ c9 b)+ c! C4 D& ?. m$ ]' h6 b
+ j9 j2 x% x* [3 p5 K& }: G
(defun c:pcxin (): o3 g6 G0 Q+ e" W c
(alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n"); y1 a+ C$ J z9 ~# Z6 J9 h% M
(princ), n+ A2 D. {$ ^( {/ y" o: l
)
& M5 C; q/ X+ ^1 {# c0 y2 z, }+ l4 Z. g4 T0 h
(defun c:tiffin ()
& u x: p; Q2 A3 ~5 Y5 f (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
0 K/ z# l" o+ U4 a (princ). J E3 U. P7 G: O
)
5 m$ N" v- J, V6 b! H
, H0 x! l6 O$ c& P0 a _# `(defun c:ddemodes()! q) U% |- h1 B5 `# F" ]5 b
(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."); |1 g7 {+ I, q
(princ)
! U% ]8 b" ~% X2 I/ p/ E)
) I" Y3 \8 Q# f1 b3 h9 o0 I9 ~' V# ?9 b4 O
(defun c:ddrmodes(/ cmdecho-save)
/ z8 d3 s! P! }% y' q4 X. q (setq cmdecho-save (getvar "CMDECHO"))
: |/ r8 v9 c/ p L5 G+ x |% x, S3 g (setvar "CMDECHO" 0)2 v$ V9 e& `5 Z' H
(command "._+dsettings" 0)
( g8 v7 w" w1 y (setvar "CMDECHO" cmdecho-save)
" q3 g( Q ?- E& _5 a# j6 {: j (princ)1 C# H, _! z' O# F( u' s0 t
)
" }2 _% z6 ], a- l8 V0 X7 t! G, l' K! T3 r. Q' t+ z
;; HPCONFIG2 ?. m' z8 }0 V9 g4 m
(defun c:hpconfig (/ hlppath)
; u5 `% y) p. W6 v( W( g$ V (if (not (setq hlppath (findfile "acad.hlp")))$ n% K3 R5 ]' y: n# N7 |
(setq hlppath ""))
0 n% D- a0 C) L$ B& { (help hlppath "hpconfig"): `) M0 x& {0 ? d6 S0 h; h6 ]* y
(princ)) R! R2 \ K; Y6 c0 X E+ p
)
! Q* A' R1 B6 F4 H' m, m# h! I1 U2 m# Y9 d* l7 ]2 M
;; OCECONFIG7 N% y g* `4 I# d j8 Q
(defun c:oceconfig (/ hlppath)7 B$ H6 B: I) d1 x
(if (not (setq hlppath (findfile "acad.hlp")))
$ y2 x } u; G, f$ U# |' M Z8 k (setq hlppath ""))
4 U" c$ X* U7 o* v( N (help hlppath "oceconfig")
/ G( }- e# H, i/ h (princ)- Q6 I$ G# t! M b8 w! [
)' R8 `2 s; D2 T1 Y
- h8 b8 T8 \% e& D
;; CCONFIG1 f$ C/ O2 f; L+ W# U# S# Y6 c
(defun c:cconfig (/ hlppath)" d8 i0 h. G- u
(if (not (setq hlppath (findfile "acad.hlp")))
$ c* i L j4 I7 y8 } (setq hlppath ""))
4 r. Q. U$ l: j( s0 _ (help hlppath "cconfig")& w/ C' c: c% U2 C2 ^5 g
(princ)" a4 r& V' N# C# o1 g8 a1 `
)' [" u$ G# U" T) h, M/ m
! X8 w, w+ T7 @4 S( c
;;; ===== AutoLoad =====. @' {- Q4 T7 q1 T" H8 @; n
' |& E# v; F O' p2 M" ?;;; Check list of loaded <apptype> applications ("ads" or "arx")
) V& Z1 _0 \( N4 [ X, Z;;; for the name of a certain appplication <appname>.; ^) U: j& m0 K$ x" z! z
;;; Returns T if <appname> is loaded.
5 @7 E/ U! A; n' k1 ^: R( |& g ]3 N6 T$ S) @, K9 V
(defun ai_AppLoaded (appname apptype)
3 x. L& ]% s3 V (apply 'or
% W: X0 c3 _# }8 k- G" J1 Q5 T- u (mapcar
" A: U- x6 j* L$ B9 _' j '(lambda (j): q6 p! y& I. @4 C3 f0 B' t
(wcmatch! ]$ A, }% c3 ?0 Q; a1 `9 z4 L
(strcase j T)
5 `6 `3 r7 y% Y! M3 F9 C- Y (strcase (strcat "*" appname "*") T)" V- L$ e" z1 ~. f1 l
)
! }+ B) R! F9 w )3 U8 n5 @6 J& H" O- z" F0 B
(eval (list (read apptype)))6 H: C- N+ i/ h" J# {6 E3 d
)
4 O, e* A$ `7 E# @ )
, }/ w* M8 ^1 [)& s& Z: {/ O7 R9 ^. o9 w
2 ~6 w' Z/ ~0 x4 @, y- f+ s
;;
* C; X% G5 I8 I( Y2 P% v" x+ o;; Native Rx commands cannot be called with the "C:" syntax. They must 9 ^4 ?1 P$ u9 B7 l: n9 |
;; be called via (command). Therefore they require their own autoload
3 c% x7 L" t! P;; command.
$ v& x' d$ F, H
+ D# M1 a9 w7 z" ^2 t% Q/ u(defun autonativeload (app cmdliste / qapp)
: Z& d: Z z: }, x" V! r (setq qapp (strcat "\"" app "\""))6 I; ~1 T! W! a2 b5 Y! m
(setq initstring "\nInitializing...")
. x9 {& I' [$ [/ x9 x (mapcar/ r& ], y, K6 I( s$ v9 S. F
'(lambda (cmd / nom_cmd native_cmd)7 {$ ~( `( e. p- z3 S8 o( X2 F
(progn
" ? R! B8 C$ {5 F$ Q) g (setq nom_cmd (strcat "C:" cmd))
$ t- D( U5 i+ B7 S3 Q* D (setq native_cmd (strcat "\"_" cmd "\""))
0 n) C3 y. V2 H3 w! K E (if (not (eval (read nom_cmd)))* F& J4 G7 O5 Y. d1 K @) C
(eval7 P' N. G3 k: e) r+ @' k3 K
(read (strcat% s6 V! y) P, T I
"(defun " nom_cmd "()"3 l$ t* z5 F8 z' q
"(setq m:err *error* *error* *merrmsg*)"( m: x6 l; j) H* o( ?
"(if (ai_ffile " qapp ")"/ Q- v' j6 `8 a) u' Q
"(progn (princ initstring)"8 u" e1 ?1 ^. x
"(_autoarxload " qapp ") (command " native_cmd "))"
4 K5 m6 l" U ]( U2 m* F "(ai_nofile " qapp "))"
$ ~/ T& s- n; D6 U7 c "(setq *error* m:err m:err nil))") j. \: b$ e8 o8 M o. o
))))))
9 O; K* h) ?% L cmdliste)5 x. d/ u+ h6 t
nil
$ m" q% [" a) `* G) u# d8 w)3 z2 A) O' _! L8 h, ~% J
. g7 a }! C% p' z2 v(defun _autoqload (quoi app cmdliste / qapp symnam)
: j- r# ^) w6 m (setq qapp (strcat "\"" app "\""))- n! P$ O0 S3 `8 U! g
(setq initstring "\nInitializing...")* \ s3 Q1 O. [# l
(mapcar
7 c' ^* p2 L% ?9 K '(lambda (cmd / nom_cmd)4 Z: ?* L [2 o6 B- `) Y
(progn
' ]- d8 x/ A; b+ f H& C (setq nom_cmd (strcat "C:" cmd))
. F: J5 ^# q# v$ I6 e9 ^ (if (not (eval (read nom_cmd)))0 @' |/ h8 s" {
(eval
& k& [- c1 h4 L0 B& D (read (strcat
' J! O0 V% D: D+ c "(defun " nom_cmd "( / rtn)"! z* k# D1 v K5 Z! m U% `, E( e
"(setq m:err *error* *error* *merrmsg*)"
7 ?, F, [2 i* k8 T( f "(if (ai_ffile " qapp ")"
2 D9 p/ s+ z9 @7 ?# Q "(progn (princ initstring)", `5 ?* ]+ @2 f* S' F! X. F
"(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))", }6 h# n y2 D4 o B
"(ai_nofile " qapp "))"
) t7 I/ C! G8 M5 ` "(setq *error* m:err m:err nil)"
8 `+ ^) w0 N" O/ [) G "rtn)"" g& {2 h9 T$ d6 k. O! A6 G. V: u
)))))). M" z" J. m7 S$ V6 [' C
cmdliste)
8 r; S, l/ k3 g$ M( s: t nil
- L- t5 w: j* S) J" ]# I. e( g)
Y4 \2 H& c+ E! t9 G. V# X9 R& [+ T+ K0 D5 C% k1 c. b. t
(defun autoload (app cmdliste)8 M: M. e: F: K+ A
(_autoqload "" app cmdliste)
$ e: J W `, O; M)
! a2 H9 t7 z, t* V; d: y4 O& s
" [$ ^, g m/ g+ i1 F( q! Z(defun autoarxload (app cmdliste)
% h7 {& v: ^* J# Q& ?3 ] (_autoqload "arx" app cmdliste)
2 l" `: ~9 M3 ~) n' {)
3 k0 e/ S9 T1 h' k0 k1 q7 k4 l# g1 R/ x
(defun autoarxacedload (app cmdliste / qapp symnam)3 |: T( i c: j
(setq qapp (strcat "\"" app "\""))
; W+ o, T" ^5 \0 P2 S (setq initstring "\nInitializing...")( ^, w7 S! G1 H/ B) z; J
(mapcar
( P+ X$ @9 H) v1 [# {' D; J '(lambda (cmd / nom_cmd)
6 k2 h2 n3 _% K1 s7 C (progn1 T; U0 P1 `& Y7 o$ K+ z+ e: T
(setq nom_cmd (strcat "C:" cmd))) L/ w8 W& m/ R* E, z
(if (not (eval (read nom_cmd)))
3 `# A: s: |+ W, p (eval! z4 `! D5 x" n
(read (strcat7 S7 y/ s1 a* T! S6 q
"(defun " nom_cmd "( / oldcmdecho)"' B X, r, [" V1 E3 P7 z" y9 _
"(setq m:err *error* *error* *merrmsg*)"
, Y7 V, x9 j9 A7 }5 k" h( `1 ]5 a "(if (ai_ffile " qapp ")"5 E% t6 q3 W o# Q
"(progn (princ initstring)"
! ]" h: m/ b7 |! y* }6 O "(_autoarxload " qapp ")"
( T' h: U, S8 G! F "(setq oldcmdecho (getvar \"CMDECHO\"))"
( j' }" Q# L6 X "(setvar \"CMDECHO\" 0)"7 e. T4 e* y% `. u$ a" o
"(command " "\"_" cmd "\"" ")". a4 Z8 d& }; P% c
"(setvar \"CMDECHO\" oldcmdecho))"
( g1 Z( u4 v6 u9 W "(ai_nofile " qapp "))"1 ]9 {, ^9 X- A
"(setq *error* m:err m:err nil)"
2 N+ F: I. g0 N2 b( L "(princ))"
& g' g4 p$ L6 V8 U P4 j( } ))))))# R9 d2 a% W" r
cmdliste)) w9 X c0 e9 L9 N+ }
nil3 l2 m% _, G+ G4 ~% e9 t7 Q
)( |3 D( d: m, Y c w" Z8 A& C
: G7 A5 v, S3 z3 n) c(defun _autoload (app); ]8 ~! o0 b% b+ F5 M( n
; (princ "Auto load ") (princ app) (princ ")") (terpri)
4 U! r- z, W1 u (load app); U4 ?' J% c- F5 B$ v. Y0 j! R4 [
): ?3 G5 i5 G3 r3 e
7 U) |$ k3 J0 [$ q(defun _autoarxload (app)
+ T: e: J& L: e7 A( {. |8 |; (princ "Auto arxload ") (princ app) (princ ")") (terpri)
$ E# O. o; b! a+ a (arxload app)( e5 u ^5 b' S; a, O6 S! }
) j% a! O" j( }1 H; f6 c
' x7 e' e9 @6 H2 {% t# A
(defun ai_ffile (app); ~- u3 a, B% W/ t$ z
(or (findfile (strcat app ".lsp"))! P0 H( @& {6 X; _& j( b
(findfile (strcat app ".exp")). V, ]$ c. c" P/ k. Y5 x F3 ^0 e
(findfile (strcat app ".exe"))
2 f, l& m7 j! F2 C6 j, s (findfile (strcat app ".arx"))
( R v6 E5 K( T (findfile app)+ r! ?5 E4 |( K7 r9 r. U6 j! Q# @
)+ U7 b% [. _: h9 t5 o7 z
)
+ J6 C( p3 W& d3 R y$ t$ Q8 L1 L6 P; D7 n& u9 z) X3 r
(defun ai_nofile (filename)) x0 Q) E) j9 N3 v
(princ6 L6 X, u" U: d3 L) ^
(strcat "\nThe file "
# G% w8 w: e$ @) Q) l% p filename
& l' s9 X+ B# y+ { "(.lsp/.exe/.arx) was not found in your search path folders."
: F9 }* m: F6 g )
: ^1 U" k- D* b) `8 g) R )
$ T* k6 z0 P0 q0 C/ U (princ "\nCheck the installation of the support files and try again.")
& h% l0 U. | E/ s4 k2 T: d o; \ (princ)6 F1 q! K6 J1 d
)
+ W& h! l# O- G" j: ]# {) g' g% ^2 q) \$ ~
6 O: u) M$ u* x* w;;;===== AutoLoad LISP Applications =====
% X7 N% \6 ?/ u) i" M8 {: h; Set help for those apps with a command line interface7 M# ?- H' A) s0 ]% S7 B, K
" s8 F9 h9 S% \% m(autoload "edge" '("edge"))# c8 [: r) c6 o. S$ @% ]2 k" p( [* V) r
(setfunhelp "C:edge" "" "edge")
+ A: F1 ^: e, O3 _% [; X
7 p& f4 |# m; j0 ^4 ~9 ^7 M4 u. o(autoload "filter" '("filter " "filter"))2 b& e9 b- X5 f5 R5 ^% j% f
8 ^5 L+ y8 Y* B: m) n3 B% G3 l
(autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"3 a: p4 n7 A$ V( i
"ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
. U) N1 M* _0 J" r/ p, M! m)
/ M' x, |& X( l) [0 }% ~(setfunhelp "C:3d" "" "3d")
; k# U6 k. E) R- [4 B(setfunhelp "C:ai_box" "" "3d_box")' `7 } C& r: B3 J I+ u4 I# H( u
(setfunhelp "C:ai_pyramid" "" "3d_pyramid")
7 T/ H) S$ @9 b(setfunhelp "C:ai__wedge" "" "3d_wedge")
/ _6 m: o' N2 j4 k(setfunhelp "C:ai_dome" "" "3d_dome")
2 A% I/ n+ ^, `% [. v; y2 S) [(setfunhelp "C:ai_mesh" "" "3d_mesh")
( T# I8 X5 h7 n! d8 e# t(setfunhelp "C:ai_sphere" "" "3d_sphere")
7 x9 o( h9 ] n* F; q4 V8 H, l(setfunhelp "C:ai_cone" "" "3d_cone")
2 u; P9 d' ^# ^5 x& _(setfunhelp "C:ai_torus" "" "3d_torus")) B7 b# p& M+ h7 W
(setfunhelp "C:ai_dish" "" "3d_dish")8 J2 e) u- L- i2 J; e! Z& M3 B
9 @ I+ s6 Z% _1 L(autoload "3darray" '("3darray"))
& t' O# u8 m" _0 X(setfunhelp "C:3darray" "" "3darray")
* X$ e U. a" N& f! j& t! j" U Y4 j6 c5 [# Y2 H* R
(autoload "ddvpoint" '("ddvpoint"))
# a/ Z$ m0 ]- Z
% V$ \3 l5 ]' t) `, C% i(autoload "mvsetup" '("mvsetup")), o2 s$ N: Y' j/ `: j
(setfunhelp "C:mvsetup" "" "mvsetup")
& L9 O+ r" Y" D3 I4 L
( e& |* I2 Z& a$ w$ W4 J(autoload "ddptype" '("ddptype"))
) {$ i# q& {1 s* Z* b$ |5 r
! ~- \1 n" C- X6 F(autoload "attredef" '("attredef"))& Z1 f) p+ C$ } H, O
(setfunhelp "C:attredef" "" "attredef")/ g1 e# a. b, f( k
: k# k6 `& S) _(autoload "xplode" '("xp" "xplode"))! x* C' t& \8 M: e* H6 c
(setfunhelp "C:xplode" "" "xplode")
# O' {3 E1 h& }* M6 t% c& `" K6 I/ n0 Y. g6 T F$ F
(autoload "tutorial" '("tutdemo" "tutclear"
4 l5 j$ \$ H$ I! \, w. _ "tutdemo" 4 L' J8 z% f" R
"tutclear"))0 X) z3 I9 r; k& r8 C
9 k& {- J7 U6 Z* o;;;===== AutoArxLoad Arx Applications ===== {3 ^- K3 V! i; c/ t3 |
! p7 S- C! c6 O1 S1 Z1 j
(autoarxload "geomcal" '("cal" "cal"))
4 j# W8 T( r' K9 Z' f- V, t/ f7 E: S2 R
(autoarxload "geom3d" '("mirror3d" "rotate3d" "align"0 L; T1 J5 _# J* ~- R: H1 z' m
"mirror3d" "rotate3d"
6 \9 b$ l6 M8 u# }" G v6 a w+ p "align"))
" _( M1 S$ p' K5 ]2 `
, {0 O9 n3 [+ m+ m& A5 |( K( T' d2 ^8 k9 G
;;; ===== Double byte character handling functions =====: e! a2 k! f' D# D* V
1 w; F& ?# `2 e0 x( }
(defun is_lead_byte(code)
9 e0 Z% Y! A' X- ~6 H; J1 k (setq asia_cd (getvar "dwgcodepage"))
1 l7 ^5 R* }2 ^ B* J k (cond
/ n/ _( s0 E4 ]* G( ?8 c: w ( (or (= asia_cd "dos932")
+ _& x7 z% ~2 u, z" b& ^ s( H (= asia_cd "ANSI_932")9 |& t$ A! V' B5 k# a' H4 y3 a
); P# ?1 v/ c' h7 Z$ b$ N
(or (and (<= 129 code) (<= code 159))6 u& s: _- P% E: O, W- Z+ P
(and (<= 224 code) (<= code 252)), t; ^- V) g% _# H1 n
)5 V% D0 u' e! @+ w0 D4 M6 M
)
8 N D& I2 R4 y. k4 y ( (or (= asia_cd "big5")( A- ^) x1 ^- |" e
(= asia_cd "ANSI_950")
& c+ Z3 O* Y F! H7 b )
/ ~& h4 ?9 @; ^$ V (and (<= 129 code) (<= code 254))
5 W! `4 U4 S) @5 l# g6 {* W, K& P" T' P )' i7 s. @+ Z9 {! G2 m' f ]
( (or (= asia_cd "gb2312")- `! _- g6 ~4 y! T/ x) p" T
(= asia_cd "ANSI_936")0 U8 B" ~( C1 U1 o' F1 W8 w, D0 N
)% R* ^& g. y( r' R
(and (<= 161 code) (<= code 254)); v8 ]) X7 s: g5 w4 [8 s) N! {
)* S" h: m# S4 S: c
( (or (= asia_cd "johab")
) j' I. H7 y t- x x) a (= asia_cd "ANSI_1361"), i5 {8 V# m% U, w7 Q, ^
); p1 ?2 e' E$ N. m
(and (<= 132 code) (<= code 211))
% X) T' H: k0 s/ z5 t" T4 Y0 x )
# t- R1 A/ ]) {+ z4 F ( (or (= asia_cd "ksc5601")
1 B! ]* ~, W$ J3 u" g2 q( K (= asia_cd "ANSI_949")
8 e- n! _. W3 ~0 E- z )- V0 @4 o# M/ z' C, z2 z- n
(and (<= 129 code) (<= code 254))# C, S6 b' }" }3 }' _
)
$ f v0 ~& N( G, v, T s )9 v7 c; {8 Q6 h; M
)
& j$ g& V y& b, O- i
% k, H& a* y# a2 G; X9 ~6 M% Y5 t;;; ====================================================8 W' J8 N$ d* R, Y
" y5 n" X1 J* Q6 f0 T- d; c
( L6 N, D- O. T. E: F3 b
;;;
8 e# f8 R: F7 [$ W;;; FITSTR2LEN
8 U7 m! q8 l' @;;;
. u/ Y( p7 U0 z% Z1 a+ h( n;;; Truncates the given string to the given length. * M( v1 D2 c! u% r6 P, }' r6 U
;;; This function should be used to fit symbol table names, that
& m2 k' t! v8 q;;; may turn into \U+ sequences into a given size to be displayed
' K# _! H( M+ V. @, C# a. c7 P( t( O;;; inside a dialog box.
: E; J( M; s5 W/ |1 w( E;;;
4 O$ {. L( ]7 D7 a;;; Ex: the following string: ( M. G' A! h! ]0 D3 v
;;;
4 n$ C `- v6 k8 s;;; "This is a long string that will not fit into a 32 character static text box."
) ^2 h8 n7 ]0 v) E5 O;;;
4 T, P/ r* V' f% O;;; would display as a 32 character long string as follows:
0 [- I3 ]+ k% ^" j) L* q$ e$ I+ K9 D;;;
% K" b4 a. F8 `+ e6 I# |;;; "This is a long...tatic text box."
i: p1 I) l# z( y;;;
3 d2 L; O& [1 O9 S
2 v; i3 l7 c9 d1 i. H& Y" ~. V(defun fitstr2len (str1 maxlen)
: n9 F$ O7 g: E8 }$ [% |6 G3 r- D: v, [0 D3 X; l
;;; initialize internals
$ `0 u7 k! m- [- @* W% o" [" o (setq tmpstr str1)
' n1 r6 u; I/ `0 F W$ ^ (setq len (strlen tmpstr))! K/ o9 `) @0 u9 h3 z2 C
0 Y! |" k/ o$ h; }+ r; m1 c- k/ | (if (> len maxlen) 1 p8 d1 `: U3 y+ K# M) f9 F) M
(progn7 r/ v7 w; M: A/ ?! `
(setq maxlen2 (/ maxlen 2))
& g2 K" O/ Z9 C* Q- |4 o3 h (if (> maxlen (* maxlen2 2))
4 E9 t8 K, i+ t6 _$ _ (setq maxlen2 (- maxlen2 1))3 Z+ @ B: D0 h
)
: |& o7 s+ k8 U. n( Q, D (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1)): ^1 C" n' ]3 V6 B% E s! \
(setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))* e0 D& _8 U8 q, v( b( q3 J
(setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))+ Z# g0 M5 Z% _* }; a3 d
)
$ p! K6 R+ c3 X6 ^0 k1 N | (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
8 \4 B" h0 M1 g2 r7 r M" N (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
% {; f0 v1 ~' a (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))# @8 R5 K3 l+ K6 m% O0 I
)
; q Y4 K/ y$ ^) b' h5 r* o) v (setq str2 (strcat tmpstr1 "..." tmpstr2))
2 n( U: x7 S6 v3 ^* Q6 p0 a ) ;;; progn1 I1 s$ H0 x0 b( S) T3 ^
(setq str2 (strcat tmpstr))
0 _2 E/ O3 l- Y, x8 ?7 [2 D ) ;;; if
6 Q( c' O8 w# I$ n) ;;; defun9 ?( N7 N0 R+ l5 K1 W
- N: |: K+ j- g: {+ u* T8 v7 O
v) m" _ K, };;;
7 e8 z* m b# ~9 Y$ A& ^;;; If the first object in a selection set has an attached URL+ t# p6 u1 g* h/ q3 o% _6 i
;;; Then launch browser and point to the URL.7 ~/ p% I) j# P) Q+ P
;;; Called by the Grips Cursor Menu* h1 T5 l$ O: ]9 e! i
;;;; d7 u9 n4 ?: X2 x1 H1 i9 O
5 M+ f1 _% e0 F' ~(defun C:gotourl ( / ssurl url i)& @8 }; ^( \7 q! b$ t% B) G& m
(setq m:err *error* *error* *merrmsg* i 0)/ Z) p0 n0 @ [' w
" Z4 a1 Z4 I" `- q
; if some objects are not already pickfirst selected, 1 }( P8 h8 y; |" [: n, t5 l" b
; then allow objects to be selected
, E' W2 b0 y3 n" M6 g6 x5 l$ R( i! M" B; p2 T+ r" q) B( Y9 k) ]2 {$ r
(if (not (setq ssurl (ssget "_I")))
8 B W0 _% J' j& |' `9 N" ^ (setq ssurl (ssget))2 b$ R; [/ B! R" d0 v( u
)- C ~) V) d/ W
: s, {; W# r# s# N. \4 J4 p; if geturl LISP command not found then load arx application
, ?9 `$ y& @! [5 N/ G5 i) [- y8 R; {5 V
(if (/= (type geturl) 'EXRXSUBR)9 y, d" a {+ V r# [3 ^
(arxload "dwfout")' T% Q- x6 y( @" e
)
5 h2 d, Q9 x( ?( a9 N" V, |6 }+ N2 |2 M" g
; Search list for first object with an URL- y" [' l2 ~% A4 U5 z4 w+ M$ y
(while (and (= url nil) (< i (sslength ssurl))): a* t. v1 Z1 p& x- G
(setq url (geturl (ssname ssurl i))
* Y1 ^( f% U( J/ j W/ B i (1+ i))
2 a9 Y t D- `. `4 J )
9 {+ j& p3 M k( V* g! H* ]5 `. p! z1 p1 z
; If an URL has be found, open browser and point to URL* w Q7 l; p. z) f1 D
(if (= url nil)! B$ m2 o( U/ Z% A4 Q
(alert "No Universal Resource Locator associated with the object.")) ]$ _3 K, ~3 f& O; N }; d+ Y4 f' o
(command "_.browser" url)
! y: P' A% j8 |3 k5 p1 \( i )1 S% w0 l. x8 D. L' L! R8 G! _
) c$ L4 n& X& D& t! N6 Z (setq *error* m:err m:err nil)
/ q, E1 T7 c6 h5 C8 ~ (princ). G/ K! S3 [1 D
& K7 U( ]7 a+ L) J$ ?8 H6 I
)
2 o# s, e8 k5 I, S; H [# [* n& c2 f0 C0 c+ L
;; Used by the import dialog to silently load a 3ds file
% U+ e5 j; R0 F8 C7 D(defun import3ds (filename / filedia_old render)
6 i0 J* C/ h" q9 p: g: j) K ;; Load Render if not loaded0 k; ]# |/ G" z; m
(setq render (findfile "acRender.arx"))
5 H' A |9 i; G6 S (if render3 R: q% e! S( K: r1 b
(verify_arxapp_loaded render) ; v: ]& h5 e- D& ^0 d8 x. P& k
(quit)
7 h; e @: F4 |' W )0 R0 p% r, w% }* M0 ~3 d
& l: y& |1 G' O R
;; Save current filedia & cmdecho setting.
8 t$ d) ?& o; \/ s4 L# W: ^& ?3 n (setq filedia-save (getvar "FILEDIA"))9 U$ F1 D0 u6 y8 {
(setq cmdecho-save (getvar "CMDECHO"))+ X6 \8 |* K3 C4 g3 o3 }8 Z; ^
(setvar "FILEDIA" 0) C+ |; V1 j2 O6 U7 |
(setvar "CMDECHO" 0)- M+ j; `! ^! W0 G/ q$ m, h+ [
/ O$ u. W+ |$ X+ @8 w' c$ ?. u ;; Call 3DSIN and pass in filename.
/ }) E$ ^5 K. u2 x2 q (c:3dsin 1 filename)
$ r0 t( \8 A. O+ }! `9 ^% x
* \+ q: j$ P) K0 G8 M E5 ~ ;; Reset filedia & cmdecho& n }6 v0 a8 z! X
(setvar "FILEDIA" filedia-save)) T' T+ d1 c8 K, M, K) S/ d* Y' |
(setvar "CMDECHO" cmdecho-save)
& D6 J3 {6 }9 k! J* l (princ)/ Y4 u. Y% N& P) v5 j6 z" ?
)3 y, P' j6 _ L7 g) j) T1 T
7 L. {# U& p0 X+ f4 U. C% A8 A
' m* w4 l- W+ S; K2 K. |# {* z O" A
;;;=== Menu Functions ====================================== K! G( _4 Q+ c5 p3 D
6 T: C/ q7 D; C& A7 P(defun ai_rootmenus ()
- P% C8 H( I# {3 C- _* Y (setq T_MENU 0)7 [7 {# t& P: {. t( [
(menucmd "S=S")
% ^- R% @# v6 u+ _3 ~ (menucmd "S=ACAD.S")- v5 l' m3 ^/ ~$ s4 M# o. b
(princ)
' z2 @- u Z% R: f) D7 A6 q- ^)# O: Y' O3 Q4 Q
/ I2 t) J" M, J+ V$ I
(defun c:ai_fms ( / fmsa fmsb)! N- ~/ s8 o! L9 n7 z$ x/ ]0 d: e, t
(setq m:err *error* *error* *merr*)
0 ]4 a6 |% V( f- r( c0 r$ ` (ai_undo_push)
: ]# {/ r! t% l: a* t; v p) ~ (if (getvar "TILEMODE") (setvar "TILEMODE" 0)). b6 M' u( \: I. a5 n
(setq fmsa (vports) fmsb (nth 0 fmsa))& ^; A0 J: L. ^- V6 c* _; u
(if (member 1 fmsb)
- r! M" D* P% r; A7 P# K (if (> (length fmsa) 1)4 q) s* O: q6 w% r% v
(command "_.mspace"), h" I3 t" F+ \1 K
(progn
7 Y6 T& [1 a/ b5 E! e! t (ai_sysvar '("cmdecho" . 1))4 V# a% X% j- e0 Q
(command "_.mview")
7 ~5 t/ N$ b% O) M7 B (while (eq 1 (logand 1 (getvar "CMDACTIVE")))0 T2 p( i% x" X, I5 ~* t% {
(command pause)% }) q% Z2 X7 m' U# M8 e/ g# p+ ~
)
" b4 w* r8 w6 K$ f# Y (ai_sysvar NIL)
( O$ x5 z, I$ O1 @/ m9 e (command "_.mspace")
: H# K4 f* W7 E7 ^5 { )
; T3 B. s8 F$ v; J' \0 P8 T" F9 Y )# q" Q$ p, F' j
)
! h7 @, S, Q) m/ h! ` (ai_undo_pop)
: |' t; o3 b8 w8 r (setq *error* m:err m:err nil)8 m+ i0 ]3 t$ m
(princ)
& t4 G9 O o" M3 u)
2 J, M7 S, ~- p
0 f; G, e0 _3 y(defun ai_onoff (var)
/ S6 o# k: Q7 m8 } ~8 Z4 t4 W (setvar var (abs (1- (getvar var))))% P/ J7 M/ e. A ]; Z
(princ)" y3 n/ c) v/ V- d
)
% i' {$ f; h/ Y) i
4 \1 ^8 ^. y7 F7 s;;; go to paper space
9 I1 q1 b' I( I* K( m3 r(defun c:ai_pspace ()
4 }. [6 W4 d& A% z! k- L (ai_undo_push)8 Q0 p0 |2 |' d }
(if (/= 0 (getvar "tilemode")) X& g6 S; J5 V) U* z6 Q. K
(command "_.tilemode" 0)' \, i3 o; q$ q6 H& |: J
)
+ H9 q4 ~5 J; p3 X0 H' N- J" p0 s (if (/= 1 (getvar "cvport"))
' k& v' {1 t! p% G) @1 z+ L (command "_.pspace")
, E/ _& D& P& q% k5 Q" ?& U! y* D )1 s: s7 }' d' ]" V) l
(ai_undo_pop)
; g# h% C( L# J (princ)$ L' d1 k* |8 T! j
)2 H N" z' `$ j! R! z1 t9 c$ N
$ S; R7 V( O! s% Q* q
;;; go to tilemode 1" }+ {2 J. k; t P2 e8 f5 t
(defun c:ai_tilemode1 ()
. z' |% ?2 t2 c+ U2 s$ s (ai_undo_push)
5 _ N. V/ Y9 |9 b* G8 d (if (/= 1 (getvar "tilemode"))- \! |: H f3 |" W' u
(command "_.tilemode" 1) D8 c/ v4 u/ h
)! l" m9 x! d- c; D2 x
(ai_undo_pop)
& C& _" `1 j g+ ]3 @; v2 W O) Z4 d (princ)# u) }0 w2 {$ N( l
)
! B; V3 O+ x! Y1 U3 A5 n3 c: r8 q: |% I' p# [( ]$ q# ]9 L
;;; Pop menu Draw/ Dim/ Align Text/ Centered
2 J; S3 B: P4 U$ I;;; Toolbar Dimensions/ Align Text/ Centered
R* I$ M: V5 V& w. K7 i
6 j. X" o- S8 }7 w' J* B(defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
) M" B. O$ I3 o. i& _: P$ a (setq ai_sysvar (getvar "cmdecho"))
/ K/ }* T8 L7 g d) Z8 J. I (setvar "cmdecho" 0)$ U Z, ~3 }2 s3 O% S! Z4 ` @
(cond
: U1 w, R3 t0 O: q u ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION")))). z" f. L2 z9 h2 o ~
(command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
" `5 ~ k% e; H- v "_.dimtedit" ai_dim_ss "_h")+ N+ E/ j8 G, V' J% S
)4 t7 G" y" x1 r- C2 ]8 N
(T nil)
# l; X! Z$ o0 z: _9 u8 |' \: Q7 L )9 v% U8 C2 t1 T
(setvar "cmdecho" ai_sysvar)
" ~' ^# ~7 t& V% a) O/ S (princ)7 v z6 H/ [% x: F( {
)
( C! C0 c T1 H, h; Z
+ k, Q* l7 d- F7 U4 i4 g( i2 c;;; Shortcut menu for Dimension Text Above
0 J0 g% ~; _* M! E9 v- R2 q, ~/ U g! w" x5 ]* ~; j P# q
(defun c:ai_dim_textabove (/ ss)( W; H, t' L! s
(ai_sysvar '("cmdecho" . 0))
2 R$ v! ~; M ~+ R: K3 H; t (if (setq ss (ssget "_I")), `9 E5 b$ t5 {' W- U* c$ p7 x
(command "_.dimoverride" "_dimtad" 3 "" ss "")
0 ^- W d6 ]( E, p/ {. Q% R, j5 d$ k+ T (if (setq ss (ssget))
: e; ~+ ^ p' m: ~ (command "_.dimoverride" "_dimtad" 3 "" ss "")
7 U/ u' M8 i- x a( O; S0 ]5 u )1 C" ]% F( C* s1 L s6 h W
)# Q, o, ?1 V2 y7 P( }8 N- F
(ai_sysvar NIL)% ^' C% w# P, d. s4 O' R
(princ)5 W& E; M7 ^, ]
)
! b& D' c3 W6 Z( x* P/ M8 l4 |9 _
' L- k$ @1 j% Q3 H;;; Shortcut menu for Dimension Text Center ' ?7 z, ^1 }9 ~) c3 R2 W& B- z
2 g7 B* U8 D4 \6 P0 d" E2 f. j(defun c:ai_dim_textcenter (/ ss)% p- I+ ^7 b" F' P7 K6 H8 G
(ai_sysvar '("cmdecho" . 0))* t2 N) \( V- z8 b4 U/ G: [( O& k
(if (setq ss (ssget "_I"))6 K. f5 f0 G: p$ D$ w6 D
(command "_.dimoverride" "_dimtad" 0 "" ss "")6 J" G1 `/ g% i& V
(if (setq ss (ssget))
- N e- E& K& [: q# T7 s( F w0 y3 D (command "_.dimoverride" "_dimtad" 0 "" ss "")
U( j) r+ v, w* A& ?6 a )! k2 q4 y, E2 d# s7 q5 w
), a8 L. o' W9 ~/ ]
(ai_sysvar NIL)4 M; f% V$ S5 K a' M' ^
(princ)
9 |" n( R. ~* `" e. Y)
5 l* ?1 c0 U( X' h( |/ y; U% h+ g& D# y
;;; Shortcut menu for Dimension Text Home 5 J' S R( g$ a1 @8 o
6 Q: H: a5 E" J; z- d- o(defun c:ai_dim_texthome (/ ss)7 Y; S$ t& O9 P; b
(ai_sysvar '("cmdecho" . 0))
8 ]0 F- P: \# i6 R2 H( B5 ] (if (setq ss (ssget "_I"))! m0 D, B5 f7 j
(command "_.dimedit" "_h")4 v9 Q! \5 `" i- f& U
(if (setq ss (ssget))+ e2 m, I' G' v9 b% `
(command "_.dimedit" "_h" ss)! b( H: K9 i9 A" Y% A9 ?8 `& D! Z3 K
)4 r: K6 l, H$ j, Y
)
8 d* l& z5 c2 c& N, `/ O5 c (ai_sysvar NIL)
; I9 P+ ]) i# i, ^3 [+ B (princ)
% {+ N) K0 S, G)
3 X2 l% O: G" Z* \
( M" O! ~# t! c2 d- f" s9 _
- l/ y4 `2 C: j/ s8 R' g;;; Screen menu item for CIRCLE TaTaTan option.
8 w8 d& _( J- U6 P;;; first, get points on entities# S d! `6 o) f7 a0 x5 S
(defun ai_circtanstart()7 y. |* y ^, R1 m. q
(setq m:err *error* *error* *merr*)
2 Y$ v0 ]; \( ^, d+ L6 t (ai_sysvar
i; V- @: l( E8 Q (list '("cmdecho" . 0)
3 c C. e R+ `6 x. d ;; make sure _tan pick for CIRCLE gets same entity
^/ q) ]( N" d) W' G) ` (cons "aperture" (getvar "pickbox"))
$ c; h5 E. ]7 b9 b f2 D. e )+ [( H. P# \6 e- X1 `' p
)5 S* ?+ C5 ]' g- z* G" {4 j) a
;; prompts are the same as CIRCLE/TTR command option
+ L& ?; q! }7 X3 F/ i0 H+ q (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))0 u5 a5 C- `0 o9 p) R
(setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))4 R+ a: @+ p* z2 ?, m
(setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))4 ]" W) z. m6 ]8 n, P1 M1 r
)
3 b: S( g. H' D0 K;;; Command-line version" A6 R, V, ?1 @' I' p2 C+ `
(defun c:ai_circtan (/ pt1 pt2 pt3)
3 d+ v8 ]9 G( E* I (ai_circtanstart)
+ c6 M% b' q/ j' X( z2 ^" i) A+ E! D; y
(ai_sysvar '("osmode" . 256))$ I* Z# o% m5 O5 H j) f* V" @( I6 }
(command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)7 h* k; b2 H' S$ v7 n
3 \; O, V3 C! X2 p1 u" ?5 v
(ai_sysvar nil)
% F" Z. m' B' S (setq *error* m:err m:err nil)3 L, {) m& A w
(princ)
% t( J. D7 Z* I: c+ }9 A6 H)& u2 G, _8 Q& v3 K( ~
;;; Use this if CMDNAMES == CIRCLE, ~2 t6 T' h) j% B9 L
(defun ai_circtan (/ pt1 pt2 pt3)* ?" A3 s' i1 I9 M% N6 h8 N0 ~$ x
(ai_circtanstart)
0 L% F, U+ ~: P; ]# t8 K H4 E* ]
5 n+ O5 j5 c. n" a8 P- Y (ai_sysvar '("osmode" . 256))0 `; E4 e& N" j q9 V0 G1 j) ^
(command "_3p" pt1 pt2 pt3)
9 c6 U0 m1 W0 i% ^- S+ {! U( f0 E7 E
(ai_sysvar nil)
4 y7 [# H2 @2 w( R6 d (setq *error* m:err m:err nil)0 B) x- w1 ?+ @3 O4 ~# D
(princ)! F( F- v m7 b; {
)
5 X; L$ B7 Q `& `3 c$ t2 A m# H6 L6 T( {* B
8 D! C. J$ A7 }: l
: f& Q' ]2 k" J* ?$ j;;; Shortcut menu Deselect All item.
$ k; G% k" Q+ e% m+ O, T. W. W5 a. E9 X# G1 V, g4 D* H# D
(defun ai_deselect ()
& e: B( }" V' V7 e9 c1 x9 f (if (= (getvar "cmdecho") 0) ;start if
5 Q8 Y- L; Y( j. x( s' R (command "_.select" "_r" "_all" "")
$ r, ]# c5 A5 _" | (progn ;start progn for cmdecho 1) b* l- {5 g0 s; r! _0 Y
(setvar "cmdecho" 0)0 T' \" n9 y6 c& @: `
(command "_.select" "_r" "_all" "")* E2 e+ v( l: S, e- a
(setvar "cmdecho" 1), `& _$ R. x- A H! L
) ;end progn for cmdecho 1
1 Q, b! q/ I1 ]) ~ ) ;end if
- w/ f, m1 e, V8 {% \- f (terpri)
; V+ r$ U5 j9 i; J (prompt "Everything has been deselected")
. P$ E& @5 `* I0 n; H) f8 z' ]6 F: F$ M (princ)
" W3 r; \8 n( S) o5 ^). T- K; j/ X9 N$ `7 k, l5 y
1 k* O+ O7 j' J6 X2 _! O5 E;;; Command version of ai_deselect to be called from the CUI
! T8 d& {" K" ?$ e. |;;; so it gets properly recorded by the Action Recorder2 S! I8 S0 i3 z! f8 _6 h+ O
;;;. ~- @4 j1 s+ J7 w( i* s6 n
(defun c:ai_deselect ()2 ?1 t! e2 t& m$ p
(ai_deselect)! f+ C4 R4 n, V9 i
(princ)
* T: r1 O- q* n/ X' ]; D* ?)0 m; x( R+ V/ w( \3 Z# f
- t# V0 T- M1 {( L5 X
;;;" c- o9 B* x$ b6 M2 w" w) h
;;; Enable Draworder to be called from a menu) W! \* l$ |$ T+ D2 s) T$ q- H. b2 q
;;; Checks for Pickfirst selected objects3 q' Y# {" `0 y$ }; C4 G
;;;
) k% h) C% @! |& h
! L9 K/ e- X$ `) \7 n(defun ai_draworder (option / ss )# [& }2 B/ c2 b" Z
5 V! y' a) ~' y8 F4 I* [( T (setq m:err *error* *error* *merr*)* t8 `1 L0 n/ l% [' H3 _" A. a
(ai_sysvar '("cmdecho" . 0))+ r/ H! t5 l. J
! w8 Z* S2 Y9 \0 W! r6 q (if (setq ss (ssget "_I"))2 ]! L* Q. {6 B' ~( R* K" {3 i2 _
(command "_.draworder" option)0 r1 [+ V1 V, |4 z
(if (setq ss (ssget))
& H( F1 J. @; D' e (command "_.draworder" ss "" option)
* x9 s: c- c5 b/ K6 Q! E- n )
+ R# v1 y: h2 U )& d; U' o. E& D% Y+ |
(ai_sysvar NIL)/ r# w) z+ O" i: }' ^9 x# G) E2 [/ _
(setq *error* m:err m:err nil)9 Q# o) ]* H# q6 D0 i" E5 L
9 c3 U4 J: F7 O, o2 L2 Z
(princ)
1 j$ y. P/ ^7 a% B)& {8 i" {# N3 ~# _
- m s4 a* s6 {
;;; Command version of ai_draworder to be called from the CUI
H8 g' i/ w% X8 B5 d5 W;;; so it gets properly recorded by the Action Recorder
h E/ ^1 S) n5 ?. x8 `;;;$ R4 A! B3 k7 a8 d( C
(defun c:ai_draworder ()# K) j6 x3 h4 t$ P ~7 H
(initget "Above Under Front Back")9 c6 S7 \2 s9 D% r8 |$ W
(ai_draworder (strcat "_" (getkword)))
7 I: m8 k+ r6 I: H) j, e- E" n (princ)
! @* p+ {: ^( p1 e& L" o8 n; e- A1 P)7 a: G2 O2 r; e3 D% i
- p$ }) J, c+ A4 y& e9 d/ g4 M! ?/ b
(defun c:vlisp ()
: T0 b) D. i& I( {; e( y (if (/= nil c:vlide) (c:vlide))2 w! b/ `2 n1 c3 m9 z0 g$ r# [. Y0 _* [/ y
)
2 M8 g, o" l1 b5 |9 V1 p; U o$ X N- w+ S4 t4 |* C
(princ "loaded."). ?& A, R) F8 n. M7 k$ V
; [3 S/ T- N, C9 \; G
;; Silent load.
+ x$ {, ^ y( e0 u% O) L4 L0 A0 Q, E(princ)
8 L$ Y5 D% U, \6 Y/ H+ H, S- e; m& p4 P' K' p7 x: W2 I
0 Q' d; k" Z9 B& i
# v$ f s- q1 ^ t2 o3 X;;;----------------------------------------------------------------------------
4 S, m( E1 P. K* P% O;;;
0 H+ A/ I% H. B, ^7 B4 G;;; DDCHPROP.LSP Version 0.5
( l. u& i, ~- f* `! T# U+ N;;;
+ R5 X% U; C/ u0 [; F1 f9 D;;; Copyright (C) 1991-1993 by Autodesk, Inc.# f# c+ e# J, R. P* M5 u' L; |7 D
;;;
; ?7 D' k2 Y4 |4 Y;;; Permission to use, copy, modify, and distribute this software
* _. _( F6 J1 \) C& [. L3 q;;; for any purpose and without fee is hereby granted, provided; M" e2 A& R, H& Q$ q
;;; that the above copyright notice appears in all copies and that
0 h2 X% T! u! Z0 m0 t [+ L) L# e3 R;;; both that copyright notice and this permission notice appear in$ p. P t# `+ \% x1 T
;;; all supporting documentation.
3 u( M2 z2 A# V3 c+ x;;;
0 I& ^2 @4 Q6 ^) S! X0 g4 c;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
9 P' a( L$ q9 o;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR0 U/ ^: Z: j* l F n# o7 V
;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.+ {! W1 d9 `5 t
;;;2 B7 g1 F5 `) v" C% w# q2 z) S
;;; 2 February 1992
( S! d/ D; N9 @8 Z1 |;;;
- A- T4 e1 s9 n0 [* g, ]' W4 A;;;----------------------------------------------------------------------------& t- `; i E$ `, d' p& ]9 ]
;;; DESCRIPTION
$ k& p( Q* y3 T;;;----------------------------------------------------------------------------
& \: _6 v% ^5 l* K5 R. {. y2 k2 w: a;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
* v* Z& I& l9 X3 E! _;;;0 q- y; L) g$ r" E x! k( K
;;; The command looks similar to DDEMODES. The main dialogue has an image D; A! N7 l e5 Z' E
;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). 5 g2 c9 a* ^) h( L* K) a8 q9 G$ c8 n# [
;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. ; t, ^3 r' F/ @3 h# \8 F* a
;;; The dialogues are all defined in the DDCHPROP.DCL file." d+ G2 a4 {0 o# H/ `, v: S6 u
;;;
5 d- ^& X3 ^# N- _6 |" I1 E( L/ \;;;
r" y6 N& P; b2 K;;;----------------------------------------------------------------------------
6 |& A& R6 X" s3 s;;;----------------------------------------------------------------------------
, K' E3 b2 f3 U) {;;; Prefixes in command and keyword strings:
7 F& d1 p M2 L7 X# E& A1 w;;; "." specifies the built-in AutoCAD command in case it has been
0 `8 E; W/ N0 D v8 t;;; redefined.
/ U4 N5 \9 I2 M- B;;; "_" denotes an AutoCAD command or keyword in the native language
7 E/ t6 G5 k0 L7 J ^( M7 E1 q;;; version, English.
, I! G5 J$ `6 d. R s8 M" o1 m;;;----------------------------------------------------------------------------
% P' _! W8 I) P8 D0 E4 `6 v) W;;;% {' n9 W: ?: B
;;;9 m7 ~, h' O$ H: m9 Q& h3 O
;;; ===========================================================================1 f2 b7 t# D+ \% _
;;; ===================== load-time error checking ============================5 @& Y$ q6 ^) n8 e3 ~8 U
;;;( a/ c: T ?8 E7 d( u/ L
3 }, P7 J1 ?$ d9 f% i
(defun ai_abort (app msg)
' a' l. Y" E; f( Z1 a (defun *error* (s)$ }6 I0 R; O* j" O9 x( s# ^& z- K
(if old_error (setq *error* old_error))
8 H% L! ^* @" q (princ) ^6 v! E7 g8 R) Z& u6 M
)* \' F1 z! `" M9 D
(if msg
. i! c/ A5 f H (alert (strcat " Application error: "
) K" U: ]1 |/ E, A9 R4 L, v; @( J0 Y& t app: _1 `& c" v, o/ g+ P
" \n\n "
w' F5 P. V4 z1 E msg
7 J8 m! `9 i: Q" n " \n"
! g& z) i V# F )* T- L/ _9 P0 i2 e* {& x
)
, _2 w, ?! z" _, [( D0 \, A )2 v# g' t% v2 D0 j) ^
(exit)
" y" i4 W% b0 T" ~$ @6 U3 W5 T$ G2 o+ f )
+ k/ r! K, z, H
: f6 I: d* H. Z; O;;; Check to see if AI_UTILS is loaded, If not, try to find it,2 W5 L+ Z7 a Y4 L. X" X
;;; and then try to load it.# t" e$ ]$ r5 B- G2 _; q3 G
;;;. X: s3 s' x k! m; H5 l
;;; If it can't be found or it can't be loaded, then abort the: ^ ~& \& z1 a7 J2 H6 v
;;; loading of this file immediately, preserving the (autoload)
; M0 Z2 _ r b) ~* M$ _$ ~+ S;;; stub function.& J ` N! K: d& y8 W% M7 X" v
& ^3 h& _& k" P7 Z
(cond2 N5 g2 C" R0 G
( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
/ W! W( q% F# d5 ~" O) H, z( x0 z9 ~ F( \1 J+ L. e# ?8 h% B1 r0 K# f
( (not (findfile "ai_utils.lsp")) ; find it8 [# \- P9 q( e$ S1 f
(ai_abort "DDCHPROP"' f4 S6 m0 X, c7 m* c( @+ {
(strcat "Can't locate file AI_UTILS.LSP."% U+ A0 `5 U$ F ~! E$ b: k
"\n Check support directory."))). X/ k" p0 X* {7 p3 k
# t* p* _1 B* B, d/ d ( (eq "failed" (load "ai_utils" "failed")) ; load it
- }# V8 U# U: h+ Q' I4 L (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))9 T3 z; G' e- v4 [- D
)
; r% e1 O2 q1 p9 a+ m7 C0 ]
" y" c2 R) d! r; W& D; M& N% I (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP9 [% C0 ]' b- M' L, c
(ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
, k9 X) i) S% s( d& y6 T ) ; ai_abort's alert box dialog.
& M; v( i [$ |. u9 \% F( S7 j# e1 [9 K/ H" K; J
;;; ==================== end load-time operations ===========================
1 H3 M" [- H8 I6 W* E* ]# A! q( D* r* d
;;; Initialize program subroutines and variables.% ~, J+ o3 s# |6 W
# O, [* q3 F) B, M7 |5 J/ \5 y
(defun ddchprop_init ()
9 N$ [, y6 n! M$ `0 G6 v# f# r- l
;;
: Y; U4 k) x, R' M% a9 v5 |9 L ;; Define buttons and set values in CHPROP dialogue box
2 x/ V% E- Q( W3 F) t ;;, c! e# M( _" N$ ~- M. T6 c& A
(defun call_chp ()
2 @6 r, T/ f$ K. ?- }5 v (if (not (new_dialog "ch_prop" dcl_id)) (exit))$ ~4 T; X# r+ ^: z6 h( i& A: b3 r8 e
(set_tile "error" "")
3 t8 u; X2 ?2 v' h+ q8 u* W ;; Set initial dialogue tile values+ x @- a4 z; X6 ?0 P8 V
(set_col_tile)9 T4 t5 y- \1 h+ M+ E: [
(if (= lay-idx nil)7 C) F' u2 k. U4 }
(set_tile "t_layer" "Varies")6 c8 N. h6 g R* G) C
(set_tile "t_layer" (nth lay-idx laynmlst)): @2 f* r9 L4 S @
)& D; c, {' [* Q
(cond ( q' p; [/ B# b0 b% C i
((= lt-idx nil)$ n+ G& E- p2 l( _2 u+ u* P# h
(set_tile "t_ltype" "Varies")
' x! @3 W& r$ Q )* K U1 q* m" z8 ]' Z8 W) `, k: S( W
((= lt-idx 0) ; set tile "By layer & layer linetype"3 F# c O& A, j% j
(set_tile "t_ltype" (bylayer_lt))$ ^' S% L& u' R4 C$ C8 `
)
# j- N! a! B3 C _: x: k$ | (T $ r' d5 T' k8 i; \* i5 v# R2 C4 L
(set_tile "t_ltype" (nth lt-idx ltnmlst))* B+ ^6 \; J. @3 K
)
, f7 a7 t" a) W; p J# d )9 Q2 H5 t1 A7 W. n
(if (or (= ethickness nil) (= ethickness "Varies"))# t }4 ?2 |, H( c
(set_tile "eb_thickness" "Varies")4 n) G* P0 r1 Y, R1 \, k% s
(set_tile "eb_thickness" (rtos ethickness))
( @3 d a6 ]9 ~" d0 O )# }- ?3 G" y9 S9 a( O3 ?
;; Define action for tiles
$ e6 Y- a' {0 e- X8 S# z (action_tile "b_color" "(setq ecolor (getcolor))")
1 _. e, ?8 N* k- H7 W# L (action_tile "show_image" "(setq ecolor (getcolor))")0 X/ C# l6 B( `3 i8 H
(action_tile "b_name" "(setq elayer (getlayer))")
9 D) `. z$ F/ }1 U# y. l (action_tile "b_line" "(setq eltype (getltype))")$ L8 a* O t5 J0 X$ C
(action_tile "eb_thickness" "(getthickness $value)")3 k& j! O; C3 @* W( d+ I4 }$ @8 q
(action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
; x& x9 I! t* O" A (action_tile "accept" "(test-ok)")
8 i" H" F: n: H! v: N; j/ T (if (= (start_dialog) 1)
+ g1 A& ^! {7 n% J& O: ?/ c3 T* f4 ^' P (progn
# I# F( [' b& o (command "_.chprop" ss "")" i& q- `* }) w7 ^1 Q! A
(if ecolor
' z8 a$ \, @7 Z" P1 n- | (progn2 c: b& w( \( ~: n! ]0 h9 t, f5 S% u
(if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
# Z" {: [9 E4 R- ~. E (if (= 256 ecolor ) (setq ecolor "BYLAYER"))& k: A6 S0 V$ }* ?
(command "_c" ecolor)
6 h( C _! c: U ): ] X, j6 h' m& l
). [0 `0 t0 i& V3 C% O
(if (and (/= eltype "Varies") lt-idx)0 m" E0 [! s1 U F6 |/ c) j
(command "_lt" eltype)6 j' `* [" ]/ ?6 f# `( u
)
& K1 s: o6 i& O; W (if (and (/= elayer "Varies") lay-idx)$ A# \. O: {$ k8 d
(command "_la" elayer)! y2 v4 [+ W) ]& |
)
8 H1 y/ b7 r3 ^" E7 i2 X (if (and (/= ethickness "Varies") ethickness)! C! o, S, _* |1 {$ ?6 b( u
(command "_t" ethickness)$ M* ~* n& r" }9 t( m+ `5 {, _
)) o- E8 i% d( S
(command ""): X* B6 |+ ^4 |
)
7 M0 L% E* r6 m! m (princ "\nProperties unchanged"): d) b |% r" z6 I5 n3 W8 ~! |
); V. }/ J- l7 e5 c2 j$ j
(princ). r& Z/ J' z" _" Z& v) e9 ~
)/ @* `/ w2 U7 c
;;
0 |0 L3 E% A& y: p ;; Function to set the Color text tile and swab to the current color value.7 j! T9 ]5 s! E- a
;;
& p7 D/ ]. [0 N/ Z% D% l (defun set_col_tile()
$ N9 b4 r$ H4 J0 K6 y% M _ (cond
, I# \: ]0 t" v+ s) ? ((= ecolor nil)! |5 V% | e+ ?% N
(set_tile "t_color" "Varies")# z9 t3 D! S7 I p5 p* w' p
(col_tile "show_image" 0 nil)
5 G& _9 z: T/ x; ]+ g( [8 I )
P2 z3 O+ U# e ((= ecolor 0)4 D! Y9 H) d; y5 R+ g6 t
(set_tile "t_color" "BYBLOCK")/ l; e9 c ^2 k. Q, ]9 v1 }( `
(col_tile "show_image" 0 nil)
o9 }( y; }4 F K# v" f8 l )
5 W" `* `8 }9 a. n0 I ((= ecolor 1)( j4 d6 h) D+ W. d/ @: q& f
(set_tile "t_color" "1 red")
7 k5 y, f+ _: F (col_tile "show_image" 1 nil)
# D. {& a/ B. o7 z% z- ^ )
& F1 N9 x. D) w3 s$ A' a2 A6 N0 n ((= ecolor 2)
. y# n- s6 L& C' `& _( [9 n7 N (set_tile "t_color" "2 yellow")0 J9 A) f1 n! E( Z1 Q. X
(col_tile "show_image" 2 nil)
* o3 n; y7 t" d. U )
, g) R) L' |, b( e0 P4 T! Q ((= ecolor 3)
4 w2 b) j2 d$ X$ V5 p9 G' m) Y (set_tile "t_color" "3 green")" O) j; R' U1 B0 `
(col_tile "show_image" 3 nil)1 | z7 h+ \+ e9 E
)
4 |" U* d: Q: Z* U5 S/ d; w ((= ecolor 4)
% C. u- H c b# R) k1 G. z (set_tile "t_color" "4 cyan")# p2 j' {0 ^+ W* l8 ? P. `! f
(col_tile "show_image" 4 nil)
u/ N1 Z; j! \3 Q7 | )
0 V0 I8 x. @( H7 ?0 C+ G ((= ecolor 5)
% g, j8 Z Z. [/ j, s (set_tile "t_color" "5 blue")6 ?+ q& B( z0 t/ f
(col_tile "show_image" 5 nil)
: R' n; K4 n7 o5 N' F7 M h( q* Y& V )# i9 Y2 t$ A2 {/ T
((= ecolor 6)$ C+ @) a; P) E; V
(set_tile "t_color" "6 magenta")
0 f+ I# L& r- k2 u, N (col_tile "show_image" 6 nil)
; e0 k( G1 M- i1 G1 O% k# I$ X )' P4 k: M4 D; L8 x4 N0 f. f
((= ecolor 7). @( h5 Y6 Z- h" d4 C! i5 t
(set_tile "t_color" "7 white")1 j! Z+ }1 p3 d2 c. i
(col_tile "show_image" 7 nil)
5 M/ e- }, F0 r S$ }& v* { )
6 D4 a6 q$ ` d( s+ S8 G ;; If the color is "BYLAYER", then set the tile to0 O2 ^! o' C' k/ g. D7 W
;; show it's set By layer, but also indicate the
+ e2 s6 ]1 d1 O7 Y: W ;; color of the layer - i.e. By layer (red) c' w8 y8 |4 K8 |" ?: i8 N0 @+ o
((= ecolor 256), L' _4 E* i* t+ l
(set_tile "t_color" (bylayer_col))
1 g8 k& G! E3 F+ N$ B) N (col_tile "show_image" cn nil)4 U- A" m$ P0 {/ c& V
)) v2 g0 {+ Z8 f h
(T " Y) U Y6 L# t2 c/ H: u# e6 F; ~. L
(set_tile "t_color" (itoa ecolor))+ Y3 z5 o: Y- }/ u. d1 w, Y$ _
(col_tile "show_image" ecolor nil): S8 z6 W4 g: Q0 \
)
2 ~; V9 o7 N3 k3 U* M )- j' l8 j$ e* I7 K4 D: s/ H
)3 q: N: E* C) ^( j/ g/ J7 C
;;
" K& O; K$ V: G- z9 P ;; Function to put up the standard color dialogue.
. V* _8 R* R' c5 K5 w+ U ;;6 X1 l, n( y i" V0 V! I8 _/ k Q
(defun getcolor(/ col_def lay_clr temp_color)
0 J* H# {& A6 n4 A0 V ;; col_def is the default color used when rq_color is called. If ecolor 2 d& v: s5 m3 I2 ]0 s6 K
;; is nil (varies) then set it to 1, else use the value of ecolor.
6 {; q9 C) K8 E3 H9 f4 j" w4 N- d: O (if ecolor a$ g- m! m: c7 U. {4 l0 B
(setq col_def ecolor)+ a- N5 U4 ^# k% D
(setq col_def 1)3 k3 U8 @; A) n) _+ R8 I
)2 U- t0 J4 \( `
# _9 x. B) k" f7 U ;; If we're working with a single layer, get its color1 N6 l' r1 i9 d6 a+ O3 @
;; for use in the color swatch if the user selects color BYLAYER.
' r7 ?; M: y& Q0 m9 ^ (if (/= elayer "Varies")
; X8 [% `6 r5 d5 T (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))" I2 v, a- f2 q* V, I1 K
(setq lay_clr 0)5 M, Y+ ~: t( l2 e
)$ f! k9 ]2 @/ U, c* n# E" {
(if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
3 U0 J$ U7 {* I8 [! m- j2 q (progn$ K$ N9 A! r* s3 x8 D( r
(setq ecolor temp_color)' d: E- _7 h$ D/ a/ W' h
(set_col_tile)0 G/ {$ }' y" ]* a5 |, O( ^ Q
ecolor7 x+ q' |0 C5 L/ L) _, D
)7 w. R- N7 o0 l* J3 o" G. y1 H
ecolor
/ G6 ?& o# n5 M, |- d' S# C: ^# z )
' K) f: a8 A# J; D+ ] )8 G- K. a1 Q/ u" \
;;" |8 n; I2 G2 c
;; This function pops a dialogue box consisting of a list box, image tile,
\- I n, m1 X- M ;; and edit box to allow the user to select or type a linetype. It returns
# K9 L5 V6 J1 {- d6 [6 g ;; the linetype selected.
2 c0 t3 ^' m& ?" u4 f2 w; B ;;8 {$ U) N! E' ^8 o
(defun getltype (/ old-idx ltname)) b- g% O6 K! V8 \( Y7 r! A& W# q
;; Initialize a dialogue from dialogue file% o( ~9 M+ ]0 M( Y3 x x2 n0 ?# d
(if (not (new_dialog "setltype" dcl_id)) (exit))
+ s' k) a" l) m- {" U Q, | (start_list "list_lt")
* R. p, N( L* ~* x (mapcar 'add_list ltnmlst) ; initialize list box. y. @. L' X" ~7 B5 d) o" j8 g
(end_list)
8 Y4 F0 |+ y/ y2 @& P3 Q' x (setq old-idx lt-idx)
+ L- x1 S3 ?- [0 V5 [ ;; Show initial ltype in image tile, list box, and edit box' ]; L. d$ x& o; r& P$ {6 B2 o
(if (/= lt-idx nil)
. s' P/ X2 ^( T* e (ltlist_act (itoa lt-idx))' t K2 ?2 t- u2 N
(progn
! _7 N) O; |0 c1 s7 O! R (set_tile "edit_lt" "Varies"); s ]/ o0 p7 j5 ?2 I
(col_tile "show_image" 0 nil)
% G9 d( n# M8 t' T8 W ); R5 T7 f8 A8 l/ L5 J$ P
)* u' m1 G# Z" Y- l6 c6 C2 G
(action_tile "list_lt" "(ltlist_act $value)")
/ K0 e; G i, ?5 g: r7 `5 ]4 I (action_tile "edit_lt" "(ltedit_act $value)")6 _0 w* J2 e+ R
(action_tile "accept" "(test-ok)")% r' F$ e4 E2 o6 X- K4 }3 ]5 o/ Z
(action_tile "cancel" "(reset-lt)")8 P' Y g" v( s4 E3 y* v
(if (= (start_dialog) 1) ; User pressed OK1 [. V8 S4 V5 X
(cond , h1 P; E$ P; W! s/ @6 |
((= lt-idx nil)1 z" ?+ T; W1 p8 f
(set_tile "t_ltype" "Varies")
6 ~' }* Q$ j& Y "Varies"0 z" w0 C% q' h
)( I; L0 e" A0 ^$ Z! N
((= lt-idx 0)
6 O) C0 @1 {! G# b. w1 z) L (set_tile "t_ltype" (bylayer_lt))4 m$ J9 L# D: j
"BYLAYER"
3 r8 X" d) C5 w* n1 X# Y' F/ [ )
: x% n; q- F E1 b8 L ((= lt-idx 1)- V6 D W0 |3 `% d
(set_tile "t_ltype" "BYBLOCK")! @1 Q% S7 S; z m' T4 i% V
"BYBLOCK"8 b* @, T0 Y! n' n
)$ J! ?! c$ {) p" {5 b+ c3 X0 \
(T `: ~8 n. h! W! t0 W0 v; s
(set_tile "t_ltype" ltname) 2 ^' f! F6 u& B( q3 l) m
ltname
6 s% H. d1 s8 x6 u) E+ X* e; R )5 l7 ~% t0 u! W+ }
)
! U% @- y6 _" c& N, J; `' N, f eltype
# ^# T2 ]0 s, D# ^( ~* | )
4 n# D5 q+ u9 y1 `8 S )
! h% ^+ v8 m) h; {: O8 } Q! p ;;
4 a4 c, Y' L3 \ ;; Edit box entries end up here
% h/ X3 m- V0 W# G- a0 K, c+ L ;;
, {% O, E2 z, V (defun ltedit_act (ltvalue)6 w; V. s1 J9 c( }7 D% u
;; If linetype name,is valid, then clear error string,
0 l* U$ \ [9 l1 S9 C+ q ;; call ltlist_act function, and change focus to list box.
% t$ N3 Y2 C' k* d% o V p ;; Else print error message.! z" I5 e- N; C: T, I# C3 l
(setq ltvalue (strcase ltvalue))+ L; V; u4 H: {$ T$ t0 ]
(if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
) R; u: I' [* l' r, P0 x* Z! x (setq ltvalue "BYLAYER")6 C3 ?4 f, Q' m' t$ ^
)$ y/ ~ S# T; U- n# j) z X
(if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK")). P! Q/ k: }, M% ^5 T9 z
(setq ltvalue "BYBLOCK")) z9 J( m$ y5 J
)3 i7 J7 \+ [6 A/ I
(if (setq lt-idx (getindex ltvalue ltnmlst))
) X4 u' z2 P/ d (progn
4 P; w8 E* H1 S' ^ (set_tile "error" ""): t- a; k8 u- V+ r
(ltlist_act (itoa lt-idx))
2 U4 ?4 p7 b$ U (mode_tile "list_lt" 2)
/ ^; X# F# O+ C9 z- g- y- e$ U6 K ); B( x2 Q. w% E* b1 q
(progn
0 _0 ^( F4 n6 s% v: U( u1 V (if (/= ltvalue "VARIES")3 D8 a; a+ B. R$ d9 `6 i
(set_tile "error" "Invalid linetype.")
, s) {' o$ G5 t& t )% p$ R6 N0 L) r# q' N
(setq lt-idx old-idx)
- ^; M: s: _% [0 K4 z% v ) ! p" g: T0 r* R) |
)
, U" U1 S" v! e5 A+ m) x8 t )
4 ~ E" ?" K& N3 S/ j6 x ;;
! F5 J! q. D ]8 j1 h ;; List selections end up here
5 d+ Y8 _5 D3 u J ;;* U" [7 l* `' q0 P! Q7 M. r# H
(defun ltlist_act (index / dashdata)
* d! w! |, B% }6 Q ;; Update the list box, edit box, and color tile3 K& {3 ~( h3 ]0 p8 b/ |
(set_tile "error" "")& L% t9 v) o) [9 ~7 F9 H
(setq lt-idx (atoi index))
9 R! W4 ~$ m" n4 C" p. X4 y (setq ltname (nth lt-idx ltnmlst))
P$ W; _) P/ {% @0 d. k (setq dashdata (nth lt-idx mdashlist)); ?) ]' i$ ~0 |9 K
(col_tile "show_image" 0 dashdata)
0 s2 L9 Q1 y' p# P. k5 ]+ g) G (set_tile "list_lt" (itoa lt-idx))
3 J c$ M) E0 d1 W (set_tile "edit_lt" ltname)
9 a9 z& r0 b$ O8 X. `* U )7 s2 n `. {' l, B) Q1 Y b) f
;;/ U# }! E. A1 y7 V: B
;; Reset to original linetype when cancel it selected" A' V7 }. a0 ]& n9 v. e
;; l- G h7 s! z) D, b
(defun reset-lt ()
: o, C4 ^9 R* Z4 t. N (setq lt-idx old-idx)
1 w0 H' G/ G: o# f0 k2 Q6 J% p8 c& V (done_dialog 0)
/ j; v w' u# E$ I )5 f; W5 u j* b5 I
;;
8 W! Z$ W$ b& I ;; This function pops a dialogue box consisting of a list box and edit box to
* L" ]1 _' i+ X+ C$ | ;; allow the user to select or type a layer name. It returns the layer name ! L" e) P! H: f7 s
;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the $ C. {( m. j$ E9 l/ S6 K
;; drawing.
$ [8 ~4 Z* d$ X; k* {6 ? ;;1 l9 z6 q# s: b5 g
(defun getlayer (/ old-idx layname on off frozth linetype colname)% D( Q* ?7 t3 n: S5 P! d3 B
;; Load a dialogue from dialogue file' i0 q( e1 P$ Y0 p0 ]. Y" k& _1 ~9 _
(if (not (new_dialog "setlayer" dcl_id)) (exit))0 m" b1 F0 |2 B1 h& _2 Q
(start_list "list_lay")
6 s, n2 ~& C; u2 c0 x# r) Q (mapcar 'add_list longlist) ; initialize list box
8 s1 ?, Y1 ~/ P8 h- x ` (end_list)
* O* N! H1 F) k ;; Display current layer, show initial layer name in edit 1 R: W. ^) l5 J7 N' `
;; box, and highlight list box.% N* c) o8 n- I0 i
(setq old-idx lay-idx)
2 N( a$ j% D( L4 p (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))$ U) ^- |- F# X6 [/ X! J0 n
(set_tile "cur_layer" (getvar "clayer"))! t: q$ E6 H# x. k' a% ^9 w: _7 M
(action_tile "list_lay" "(laylist_act $value)")
9 q5 K# W1 T$ h2 N* @ (action_tile "edit_lay" "(layedit_act $value)")$ {4 S# _! }7 T- p. s/ R
(action_tile "accept" "(test-ok)")" @3 h& R2 l/ @% G" i" N
(action_tile "cancel" "(reset-lay)")$ A1 V! y5 z! o* C) e
(if (= (start_dialog) 1) ; User pressed OK
2 e: U( \; ~2 c9 f! F3 ^ (progn
% [, X& p# L( {) _, u1 ]" V) E (if (= lay-idx nil) (setq layname "Varies"))5 c4 `1 t1 a0 V' ~
(set_tile "t_layer" layname)
8 W; c* G* C8 L" R ; If layer or ltype equals bylayer reset their tiles3 |8 V/ M! g) M6 B
(if (= lt-idx 0)
, y# e3 E$ Z5 J$ C( c$ _9 e (set_tile "t_ltype" (bylayer_lt))3 a1 G1 q% H+ T. X3 Z% F2 ?
)8 ~8 v; o3 ]7 E. w# N3 ~* a. q
(if (= ecolor 256)
* i6 c; l) m5 C# P (progn
3 E. g, _! K) c: a+ s (set_tile "t_color" (bylayer_col))
. Z' Z2 W0 v9 {) }& k (col_tile "show_image" cn nil)
; s) F1 u- d. I+ K )) ?1 w V1 C, p7 D" K# u8 E
)8 t* Z& \& {4 \+ e
layname8 \5 D; B2 j( }
)
' }6 E4 p3 X0 t( p& |6 Z( K2 O elayer
! r) P7 n" e% C/ M: L )
" N' N% Y3 K# F7 h# L' m8 }5 F# n3 a )* b8 F8 i, P1 ~& u0 ]
;;2 d1 E/ D9 ^ p K: {) P
;; Edit box selections end up here* G' A6 O$ K3 i) `7 E- D
;;7 X6 Y; |4 I4 {
(defun layedit_act (layvalue)3 {4 }* b* r1 ~ D' U) M
;; Convert layer entry to upper case. If layer name is- S) Z; a4 V: ~
;; valid, clear error string, call (laylist_act) function,1 [" k. ?" R$ J6 h% _4 x( u% N
;; and change focus to list box. Else print error message.
( |( L7 g; Z5 x( _4 E4 o7 N (setq layvalue (strcase layvalue))
: w2 t' Q+ l7 j& O, r; s) I: b6 U (if (setq lay-idx (getindex layvalue laynmlst))
8 q5 s5 ]' b+ o) O7 X (progn
& F3 x$ ~1 [- H+ p1 X (set_tile "error" "")
& A, e$ l! ?0 ^ D0 V. ? (laylist_act (itoa lay-idx))
' o- c. [7 ]+ D" i2 F )$ q' k8 P+ u1 q4 h/ W& F# Q
(progn4 T7 r8 B$ O2 L: U' R& n
(set_tile "error" "Invalid layer name.")- H+ ~( \5 Y+ f1 N j- ^
(setq lay-idx old-idx); e# S" W8 J1 @0 V. h+ A9 ?
). ^; |: r/ F0 q9 J* M$ x" o
)
% g. z8 I" x% @6 g% {" p } ): Y0 }2 g, ~% Y# I* H
;;3 Q6 R8 {3 k6 \/ @8 r9 L$ s
;; List entry selections end up here9 L# v; E: X! v. }' s' L/ e+ Z
;;
; }/ C& z: l$ Y7 w0 _ (defun laylist_act (index / layinfo color dashdata)
4 S4 |3 |/ G7 `5 ~3 e: e ;; Update the list box, edit box, and color tile
, D& v$ z+ e6 B! u0 D; ^ (set_tile "error" "")
$ c1 P% ]' g. P7 m: ^: N( \( k. F+ a (setq lay-idx (atoi index))4 I5 i- T/ l# ^$ |2 b& e
(setq layname (nth lay-idx laynmlst))- [, q* _1 ~) ^; P0 B% @. i
(setq layinfo (tblsearch "layer" layname))
6 q/ H" N% y1 B$ g( O: M (if (= (logand (cdr (assoc 70 layinfo)) 4) 4), s! {! A# o* o( H" A
(set_tile "error" "Cannot change entity to locked layer.")
; E9 w" [; {# b3 B) L (progn& [8 {- x; ]1 [
(setq color (cdr (assoc 62 layinfo))), ?; e: ?3 t7 o: n
(setq color (abs color))
o+ Z5 \+ N E* [9 m (setq colname (colorname color))
M# s+ |+ n2 v# I2 ?5 A (set_tile "list_lay" (itoa lay-idx))7 o/ h6 Q$ a# k+ ~# i* R1 B
(set_tile "edit_lay" layname)
% x3 B1 W. G: R3 ? (mode_tile "list_lay" 2)
+ E' M! c2 W1 R" M( {# o5 G )9 o; F4 F. \! V4 l% w3 F
)
6 |( |8 a7 A) X1 J4 b/ D7 [+ c )
8 {, K4 t4 j3 `2 D! y* Q ;;+ ?# a$ V/ I! d% v- y4 a, R
;; Reset to original layer when cancel is selected
( c- m, ?4 w) M# m3 v, ` ;;
* B4 P) h* i% R% Z (defun reset-lay ()- x' A' b1 X" t
(setq lay-idx old-idx)1 ^' |0 K, x0 @* p! B
(done_dialog 0)
- M7 Q# r% y& n# z2 m2 M# S )" i i- J3 y, m9 l
;;
1 |: @) ?+ A: ^4 H8 n# P6 y& C/ o ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a 9 \5 K- l. Q1 O3 q3 D- I
;; string can't be converted to a real, this routine checks if the first
! d2 E, g2 {( t# R( r8 i ;; character is "0". It also checks to see if the value equals "Varies".
, B- n+ B! x; }% i% K ;;
1 V& r' l5 ^/ S. F7 j (defun getthickness (value)
) ]! P5 @0 w/ y: {: K (setq value (strcase value)) w+ I8 Q* O6 Q" m
(if (or (= value "VARIES"): h" A; f9 U. a: n! z6 G& W* r. G! T
(distof value)
; ?8 ]6 B0 }% F! ^3 `3 J )
9 [* ]- L5 l5 A6 B4 ]9 y (progn
$ d6 N4 M7 e5 B (set_tile "error" "")5 O1 S7 ~ {" ~4 k4 R# v: j
(if (= value "VARIES")+ T: Y' M: i# B! w: ?
(progn
& c( E' b. P" Z6 ~& Q" T' o, R (set_tile "eb_thickness" "Varies")
/ Z+ h) R, q" Y" ?, ~+ ] (setq ethickness nil)
/ x5 E9 C Q0 c( i% P) L. L )
) l2 m( x$ l0 j% c: Q( A" Q (progn" _/ l; E1 s3 H! L" R9 ]& O; ?- ]
(setq ethickness (distof value))" ^/ f* Z' t% |) `% K
(set_tile "eb_thickness" (rtos ethickness))
* ?. C- c+ n, v6 x ethickness& u; m9 a* x) H3 O4 Q
)* c l# T$ W# U
), v4 V0 N# i2 @6 C$ ?9 R
)
) \$ Y* a$ L/ M (progn
& Q0 D. g- l) E2 f (set_tile "error" "Invalid thickness.")# t8 B. K& c* V6 ]" x
nil
. o9 G9 g" ?! h& Y )$ T* j2 D* k" a/ U- K) d
)" }( ]$ Z" t% t/ @% w" J
): {, Q4 U$ b7 w( d1 s* P; |% _
;;: [! \& n: @9 n. n7 f8 L
;; This function make a list called laynmlst which consists of all the layer
7 r% E# l) C1 @6 m6 O- |) N ;; names in the drawing. It also creates a list called longlist which 8 I9 O/ s# o6 [, |) d6 a( r1 @
;; consists of strings which contain the layer name, color, linetype, etc. * r/ m) s' W% Y% }
;; Longlist is later mapped into the layer listbox. Both are ordered the ' `+ W) Q' O3 {
;; same.
4 G# X; _. n8 J9 B ;;
# P0 f" D0 l. a2 v (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
" p _7 U0 f }4 g& e8 e E- e- ] xdlist vpldata sortlist name templist bit-70
* C1 E. r: \/ R# U& c) v )
" w5 K, n, B/ G" [ (if (= (setq tilemode (getvar "tilemode")) 0): c3 y, M* d- Z. l1 o0 C+ x
(progn
1 T2 G4 \& U) k: t! H: @4 b (setq ss (ssget "x" (list (cons 0 "VIEWPORT")8 V2 L- |- f' J; a& Z! b
(cons 69 (getvar "CVPORT"))5 B7 c2 E3 X. G
)
$ s( j$ M+ a0 N: I% F )* k4 C" x) A% f! F
) . y9 U& r# d5 M$ a; i* s+ U8 T+ ]
(setq cvpname (ssname ss 0))
7 B6 y2 a5 \0 d; Q (setq xdlist (assoc -3 (entget cvpname '("acad"))))
; [5 M3 ~1 \9 W! O! j- R3 R (setq vpldata (cdadr xdlist))2 [8 U h5 z, A+ V
)# ~ \5 Q, z9 z7 [5 h9 J/ q" T
)
/ b' G, m+ G2 i: E$ Y (setq sortlist nil)
; Z1 }0 L+ Q; k' F (setq templist (tblnext "LAYER" T))
* t4 ^/ w+ j. y6 C (while templist
! M& w% E) ]. L5 A (setq name (cdr (assoc 2 templist)))
6 C1 s3 J6 B1 p4 J C) }) p (setq sortlist (cons name sortlist)), N6 ?- A' ]4 W
(setq templist (tblnext "LAYER"))
) V8 Y, e/ B# | G# \9 j3 Q+ h; H ) 1 v2 d: [, D4 |( } I: j* A
(if (>= (getvar "maxsort") (length sortlist))5 A* R+ Z+ ~! Y, L0 ?9 b- ~4 B
(setq sortlist (acad_strlsort sortlist))
% l4 ^! s5 r4 _! ~7 R (setq sortlist (reverse sortlist))
8 f! i4 H6 I1 }0 z( l )* R3 U3 ~& r' S- e2 o
(setq laynmlst sortlist)3 y" C9 a$ z4 E
(setq longlist nil), |" L, G4 N; E S, T
(setq layname (car sortlist))7 L/ U. v5 D( w- C$ C5 p0 ~3 N; C0 N, Y
(while layname
[# \) @% S# [! M ? (setq laylist (tblsearch "LAYER" layname))
! Q5 x4 G" O- `: A r8 e (setq color (cdr (assoc 62 laylist)))
* [* v# S7 P9 P% a5 k (if (minusp color)
4 r, O3 \% V! Q. i* ~5 _' d( A( U. I (setq onoff ".")
5 C" A6 r( J& b1 U! k9 F5 \ (setq onoff "On")
3 l. Z! S2 ~% N7 W. [; ]: b ), {1 \# }# K! G) F
(setq color (abs color))
6 n; W9 @. Z' m (setq colname (colorname color))0 c7 O- b6 l. P! I% S
(setq bit-70 (cdr (assoc 70 laylist))), Q8 ^) f( N9 P3 I. }
(if (= (logand bit-70 1) 1)
4 ]& d& z$ Z7 E2 ], C( f( n (setq frozth "F" fchk laylist)& R- o% Y( B3 i2 v8 F' a4 W
(setq frozth ".")
' S. [; B6 L v. A5 v )
+ w+ p- }. I; K) D) z- n+ m (if (= (logand bit-70 2) 2)
: i5 i4 t2 W3 Y9 H% S. T$ ^ (setq vpn "N")1 f- [. [7 x2 ?% H' }0 ~) }
(setq vpn ".")
7 Q4 M& l. D: h& I )6 G4 D- Q H( x1 P% j
(if (= (logand bit-70 4) 4)
3 g( w. W; K. } (setq lock "L"), z* \ d# [. Q+ D, Q. N9 d4 o
(setq lock "."); \$ i: D$ I: b
)
7 F( l6 I$ g! q- [1 B7 `/ q/ T- d (setq linetype (cdr (assoc 6 laylist)))& u! j- r' |! _: R4 R' ^
(setq layname (substr layname 1 31))
- h( b9 a& I: @ K (if (= tilemode 0)1 n2 c4 `) A2 {( p( w7 E
(progn2 q. s! Y8 A, t
(if (member (cons 1003 layname) vpldata)
5 b+ O+ ?/ E% M8 B (setq vpf "C")
" v0 x; J0 i& Q+ ]$ W Y% e4 R5 t (setq vpf ".")9 q3 l. q( H" i' U- z
)$ y9 Q: p4 X" H3 k2 a9 a- V! P
)( M5 d; B; N9 c+ A* |% U3 j$ s6 M ^7 ~
(setq vpf ".")3 y7 ~5 Z8 l$ F G$ z* R
)2 g$ C% i0 L T$ O" q6 `
(setq ltabstr (strcat layname "\t"
" W% v; |5 S4 p' r! y0 V H$ G onoff "\t") f p$ J3 Q- O! N" e3 ~
frozth "\t"! z. w7 a* K* N2 s! q( b8 |
lock "\t"
/ ?5 I4 U1 X7 `7 k- x5 p vpf "\t"$ _0 ] P# ` F& X9 T2 f
vpn "\t"
( @- t1 G! ]' w3 T2 k. ~$ i colname "\t"
6 q s8 S- s" N1 K& ^0 s" T7 I! O linetype# @! R5 m2 M- W) u* f" i) h/ ^, Y
)% k$ h( L2 ?& i( B( o
)8 e1 e5 x: n5 d0 I) a s
(setq longlist (append longlist (list ltabstr)))7 X4 _7 S9 _4 l5 x& i) c9 ~# |; Y
(setq sortlist (cdr sortlist))3 B: a, |' @/ D$ C7 Z
(setq layname (car sortlist))
' e; r1 ~; t( b% m )+ N% G) ^, D- D8 t6 @2 L
)! M0 u; U* q4 l) ]3 P9 o8 X! M5 V
;;
3 o% P' A! Z' o& }* S ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
- @+ S3 ?% a4 f2 F+ J ;; linetype names read from the symbol table. Mdashlist is list consisting . A# ?( F6 q- N' U& z
;; of lists which define the linetype pattern - numbers that indicate dots,
7 |2 A; v' S+ f- C ;; dashes, and spaces taken from group code 49. The list corresponds to the
7 B2 z9 W6 ]) B0 Y+ }6 q; U ;; order of names in ltnmlst.
* W! r5 c3 k, B ;;
+ q& C4 d2 q; n4 Y0 a, v3 B) `7 p% _ (defun makeltlists (/ ltlist ltname)3 f3 C, s! U" ?1 c
(setq mdashlist nil)
2 J, T+ ^: Z4 u5 j' r# y (setq ltlist (tblnext "LTYPE" T))
0 |& n" ]1 b: a# @+ g (setq ltname (cdr (assoc 2 ltlist)))' D; n9 }3 s( G& j( g7 K
(setq ltnmlst (list ltname)); @* F# P7 z; l' z2 H" d
) x* {2 W$ H. S5 D (if (= ltname "CONTINUOUS")0 ]7 }4 \/ A6 y& T s5 ] C
(setq mdashlist (list "CONT"))& Z* X; t# j* J9 O$ W! m
(setq mdashlist 5 n3 y8 ?/ v7 F2 m' A# S2 B
(append mdashlist (list (add-mdash ltlist)))+ R) P! }) \+ a# k: P# j6 f/ Q7 t0 z
)3 C/ r3 I E* z
)5 F" N4 ^0 L5 y) Z' X9 O) ~
(while (setq ltlist (tblnext "LTYPE"))
0 c5 C9 }7 I$ j. R* x- I, G$ k2 N (setq ltname (cdr (assoc 2 ltlist)))
- ?' l; _0 i5 c* ^: r8 d (setq ltnmlst (append ltnmlst (list ltname)))
: Z& C M! n3 j3 C (setq mdashlist 1 P6 x2 a R, y1 |6 {
(append mdashlist (list (add-mdash ltlist)))
, Q9 D, E. [* H, N; P: Y" B1 l& o )
' j7 t3 b7 ^0 w3 V )
3 U: {% {- u% z p; W+ i! J (setq ltnmlst (cons "BYBLOCK" ltnmlst))
# b+ G1 C# H4 ~# |5 i9 ^ (setq mdashlist (cons nil mdashlist))6 N/ D# P3 E; E$ Y) L7 Y
(setq ltnmlst (cons "BYLAYER" ltnmlst))
8 ~: q# r. i4 m9 c" C (setq mdashlist (cons nil mdashlist))2 \# |2 }+ q/ U
)
5 r" b- K) y8 \" k ;;0 X. m4 k" J- v$ @, Y9 ]
;; Get all the group code 49 values for a linetype and put them in a list . I' U1 Z; f1 p0 y7 ?- @& _4 ~
;; (pen-up, pen-down info)
# e# O9 ^+ k9 L* l4 s( g0 S+ \# d, v ;;
! f0 p2 r4 p1 F% ~. @. M (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
( ]% I! m) A( D( I9 a( X! ^ (setq dashlist nil)/ z) G# _: g& t' u. Y
(while (setq assoclist (car ltlist1))
4 |( q. w. K5 a. v( [5 o (if (= (car assoclist) 49)
6 q7 C( @( P' Q q (progn6 b5 |2 g! |' y$ S
(setq dashsize (cdr assoclist))
- m3 ^& x3 s/ g6 q0 n0 E% e (setq dashlist (cons dashsize dashlist))
: l" n2 ]' c3 j! | )9 K+ r, M: s- c% I
)
/ f$ J/ p* ? W$ z7 c (setq ltlist1 (cdr ltlist1))
. @. V V! x7 F, s; d. ~ )2 G! b5 s* Z, q* G
(setq dashlist (reverse dashlist)), H3 b- v( c0 J( j9 E5 _( o+ T
)# a: H1 P6 W" J; Z
;;9 F) p5 c% {8 D( o1 U/ o7 s
;; Color a tile, draw linetype, and draw a border around it
# H) ^" k9 y, L" i9 v2 P ;;, {7 S( P. j3 J, m; w# M
(defun col_tile (tile color patlist / x y)
" F4 _- b: O1 ~! c4 t (setq x (dimx_tile tile))- ~; B6 G- i) @) U) c! c; O- o, G
(setq y (dimy_tile tile))# |0 [; ]( R' O' N8 H/ B
(start_image tile)
# S. h: \6 w& j7 ^. V/ T (fill_image 0 0 x y color)
X1 a" ?, _. ?/ i& C- R8 [* M( B (if (= color 7)- R9 n# \" D0 K# ]: s- u
(progn o6 E/ ^4 ?6 R: r
(if patlist (drawpattern x (/ y 2) patlist 0)). A% j; t. }, W: P
(tile_rect 0 0 x y 0) R7 }3 u& M. ]3 n6 E9 a
)
( ? V2 D: `! c2 a# O- z8 x( L (progn
* M9 f+ u: I+ ^; e f( ? (if patlist (drawpattern x (/ y 2) patlist 7))
! D1 N/ O9 e0 P (tile_rect 0 0 x y 7)5 `5 \9 E/ l: F4 ^& \+ ?# {
)3 D( b: q& D" d) `
)
% u; N6 {& Q }4 A S7 j$ i r( z- E (end_image). I. J& [# T, k' C2 `* v8 w: Z: J
)) O1 p/ B3 ?# l8 e0 ?# Y. G3 @
;;( a) s4 ^7 I! K) Z
;; Draw a border around a tile* |; G6 {& g, r; ]
;;
" ^5 d) g6 u- U2 _ (defun tile_rect (x1 y1 x2 y2 color)
/ v0 w% j1 I5 l$ ]+ b: q (setq x2 (- x2 1))" }: B) z. P/ g* p8 y- _
(setq y2 (- y2 1))
; Q: p" F5 m* Q; S (vector_image x1 y1 x2 y1 color)* x+ ? O; T, p# i' G: N/ X
(vector_image x2 y1 x2 y2 color)
* s+ v2 D* u& w$ U (vector_image x2 y2 x1 y2 color)
& b$ M1 {& @) e, T0 B (vector_image x1 y2 x1 y1 color): ?, E3 x, Z# j/ n
)
; \8 X& m% ^' n. s/ v9 W ;;
8 }, c: L9 j% l# H& L# `0 E" W- b& b ;; Draw the linetype pattern in a tile. Boxlength is the length of the image 8 Z5 r# ^2 ~0 o' C/ n6 Q
;; tile, y2 is the midpoint of the height of the image tile, pattern is a
6 B0 P/ S5 L, n3 {% P! r ;; list of numbers that define the linetype, and color is the color of the 5 ?! g) A1 j& k4 q
;; tile.
- \6 f& h9 i9 i" {* N% m ;;
: \! v4 D6 f. z. V (defun drawpattern (boxlength y2 pattern color / x1 x2
0 m5 v( C, i% U; i: d, Q9 F) x5 x5 V patlist dash)# |& U; G, p, X7 M, X
(setq x1 0 x2 0)
" e& l7 t4 u+ l (setq patlist pattern)! a0 v- r( D0 `* `
(if (= patlist "CONT")
" q/ v _6 `; Z0 H3 e& b (progn 2 G" a. D% M% k; {- V
(setq dash boxlength)
1 z! o$ Y. z6 k7 g# g (vi)
" _$ @* a+ G1 ]/ k1 O+ ~0 _! N (setq x1 boxlength)6 t! N3 K3 M3 U* B
)5 ~' M% y: N) l2 D6 ?# q2 [( q
)
8 i& d P# r6 l" g. ?: @0 } (while (< x1 boxlength)
* |7 N! K" d2 Z& q (if (setq dash (car patlist))- h+ \) z% {/ I3 X: |
(progn
3 ~/ V. ]. I) T# A/ u/ R (setq dash (fix (* 30 dash)))# k9 w3 t4 i9 `' J) P: z
(cond
% W8 x; B! P( y! Z6 D. N! I5 T ((= dash 0)
( w/ ~) ?) t0 b* x) m$ c, v4 \" ` (setq dash 1)
' ]- [! m' T, z (vi): c0 x1 u; |' w W2 B1 _1 i: h
)
8 k" K$ |5 o; r: I: U3 T ((> dash 0)
6 ~- h9 l1 T& U5 q3 N; L9 h* c j (vi)
5 ?& o/ {' U* D, Y/ s! ? )
- R9 [9 H, K6 b8 m6 }, ~8 ? (T
: }2 z* s w5 [/ r* x (if (< (abs dash) 2) (setq dash 2))6 G, T, ]% N- x
(setq x2 (+ x2 (abs dash)))5 o- P, Y( A2 E
)
2 ]( w$ b; Q0 O# @8 g- C )
) @0 U& T" f2 W( m5 v (setq patlist (cdr patlist))! L; E8 ^- N" s$ r2 q
(setq x1 x2). R6 K" F: |. N' D$ w$ q
)1 I' O6 K+ ^& n
(setq patlist pattern)/ A& y6 e6 x# x j1 J8 f
)/ e* O3 U. g9 b
)
7 y% h4 _9 ^( E$ a) [ )- M( t1 w7 B7 w( ~- r
;;2 z/ {8 F- c9 [; J
;; Draw a dash or dot in image tile( w* ^9 l$ l% {- z' e( I
;;
7 g- G3 C9 w+ W8 g3 Y (defun vi ()8 h9 h* o& s6 u
(setq x2 (+ x2 dash))( A3 V9 ]3 ^9 n6 S1 ^& Q7 I
(vector_image x1 y2 x2 y2 color)3 ~+ k8 }4 v0 |, }9 G
) L# M" Z S+ m
;;9 ^" c# m- k7 i7 X
;; This function takes a selection and returns a list of the color, linetype, & c1 ]- @# w2 w1 K/ b' G
;; layer, and thickness properties that are common to every entities in the2 \/ V: v x6 m+ a% K# }& W
;; selection set - (color linetype layer thickness). If all entities do not ! t4 v$ H# o2 U, K o8 y( S
;; share the same property value it returns "Varies" in place of the 3 T+ J7 f. O1 A$ n8 ?$ V! n; X' \
;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
: @. Q- K) O0 A; p' B: ^ T ;;, d R5 S# t& J/ C0 S
(defun getprops (selset / sslen elist color ltype layer
/ g) r9 I( Q& o thickness go chk-col chk-lt chk-lay chk-th ctr)
& {8 F3 h7 t& C) ~ G; H (setq sslen (sslength selset)): V/ K# v9 A2 p! [
(setq elist (entget (ssname selset 0)))
, m" T# |% ^6 o) _. B2 Z (setq color (cdr (assoc 62 elist)))
5 @2 N. q! k' s/ w' ^ C5 V5 V (if (not color) (setq color 256)) M$ P# Q' G; x+ ]
(setq ltype (cdr (assoc 6 elist)))
: O# }' q5 z: ~# q (if (not ltype) (setq ltype "BYLAYER"))7 ?! u% s2 [- L/ O) H, e2 e. x8 x/ v
(setq layer (cdr (assoc 8 elist))) N- j+ W& x2 e& ^* b
(setq thickness (cdr (assoc 39 elist)))
* M5 X( I5 i' G5 B1 |9 @, A3 o (if (not thickness) (setq thickness 0))
/ I* U0 [2 t: `+ m% h (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)" \ M' M( B* O
; u& j$ y2 |6 ]2 k5 l( _ ;; Page through the selection set. When a property
% G1 f0 t3 ^! _1 V% v6 Z ;; does not match, stop checking for that property.1 W9 e6 J: Z/ }! a
;; If all properties vary, stop paging.
2 t, L+ ~8 S! g8 x: z& t6 b. `* u& G, W/ `
(while (and (> sslen ctr) go), v9 s7 V9 m/ K) S/ {' }
(setq elist (entget (setq en (ssname selset ctr))))) G" C" H- d1 s |
(if chk-col (match-col))! n& }8 T- G" z$ p) }
(if chk-lt (match-lt))
% G+ j% F' d, R% o, A. h/ Z (if chk-lay (match-lay))
5 A+ x/ D, k, v5 g& y3 F( G (if chk-th (match-th))8 E! T+ s7 u* V+ U
(setq ctr (1+ ctr))
- d$ `8 l( y. P. ~- h (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
. \% M# d G4 y (setq go nil)
. h3 M5 r& d7 _% K8 ^8 H )4 v0 {2 ]! u* ]/ u& P. X( `- B
)
& `5 ~9 W5 ?/ b4 P3 ]1 x (list color ltype layer thickness)* e3 y5 Z( D, l3 z. {1 ?4 x
)2 a; F8 Y1 F1 A* P( _
9 h# q/ _) F5 |2 ~2 ]% n: f- y (defun match-col (/ ncolor)% E- U6 z% L- h4 o5 G
(setq ncolor (cdr (assoc 62 elist)))
3 p& o9 B; l' j5 \. R3 } (if (not ncolor) (setq ncolor 256))
6 P; u. Q7 w# r3 b$ _$ e! m (if (/= color ncolor)% C. L+ j2 S* M6 H5 |5 i
(progn9 \' G+ e" {; y! q2 F. z3 Y
(setq chk-col nil)
4 f8 {' k, R. r4 ~5 z( J (setq color nil): }4 W* `$ E. `, G
)
8 ^' a! B( Q/ {) L+ X* n% b )
: J/ `$ I$ v) n* @8 n )
. k, n9 F: _' |. }
* G; ]3 i C" R0 {2 ?' q (defun match-lt (/ nltype)
8 `7 r4 Z A$ a) | D, N" Q0 E7 o (setq nltype (cdr (assoc 6 elist))) }7 I( N: B+ N$ w! U0 R
(if (not nltype) (setq nltype "BYLAYER"))& a* j0 B0 _8 r* g; I3 U' s7 m
(if (/= ltype nltype)5 \/ ~2 @/ s! A5 r6 ?
(progn* {5 g9 V, {& a& N, F) E
(setq chk-lt nil). v+ I! D# e6 P9 ?! e5 M0 T
(setq ltype "Varies")' k9 @; z' L( o. G" f6 V
)+ H* z2 t( O, ]! A2 g" \; [9 {( D7 O
)
' B9 j R' |2 L8 `$ t )% }0 f, y/ C$ O! a$ G9 V
( W. t1 G8 W3 z" G* q5 G8 ~
(defun match-lay (/ nlayer)
* m3 Y$ Z5 ]' f6 @! N (setq nlayer (cdr (assoc 8 elist)))
8 i& _7 @# w& e j& Z2 X( h; |6 Z (if (/= layer nlayer)4 s/ u$ D" s. R
(progn
! }% O! I9 @: B0 f% w9 K (setq chk-lay nil)6 d) V, `7 i8 [& @9 X
(setq layer "Varies")
& {, f. f. H" a )" i+ L8 o: q7 e' } V+ q2 u( E
)! O4 i/ k) e3 U
)7 Z( |: N* L: c
7 t1 L. t, f- t- P2 y6 q8 Z
(defun match-th (/ nthickness)) ~6 `* V2 B# ~, |* g( _
(setq nthickness (cdr (assoc 39 elist)))
% i, W9 @9 b; \ N% | (if (not nthickness) (setq nthickness 0))3 n. C/ K: x+ g K! ^) d
(if (/= thickness nthickness)9 G3 T' |/ I- H
(progn
2 [- ~8 P* C6 ^ (setq chk-th nil)
3 k6 J8 |, Q! R! z (setq thickness "Varies")
8 i/ x. c' L; m- i3 z2 I ), C0 v- r4 D: u4 x' c9 B/ x
)
* ~5 R8 S7 \4 I+ P9 T )) c$ w7 K3 B: v7 f4 m/ n
6 t& X6 f E! S; i; I ;;
: `8 R0 C# b" @; e ;; If an item is a member of the list, then return its index number, else
( S3 Y$ _& [( F& `8 b3 n; @ ;; return nil.
/ f( y/ y- \) x3 M ;;1 e3 j2 q1 s/ Y5 u# V% A, L8 |4 w
(defun getindex (item itemlist / m n)6 r5 t. `0 L* r# L/ L
(setq n (length itemlist))5 C, T* }! b' M& X7 T9 y* L
(if (> (setq m (length (member item itemlist))) 0)
: L. A0 m7 G$ @1 A (- n m)
4 Q1 g9 F# l0 B8 Y9 b6 ` nil
; i O. z, C/ R( v )
! M# Z7 }! f4 ]* V& Q0 G) n )1 g6 q- T m8 ^1 w8 d" s
;;4 a- w* |& A# P1 o% K$ |
;; This function is called if the linetype is set "BYLAYER". It finds the # B, K9 W8 L- N
;; ltype of the layer so it can be displayed beside the linetype button.( ?& S+ ^1 J" h& |& Q
;;
! d4 ]- f1 d; ]& x (defun bylayer_lt (/ layname layinfo ltype)
/ u8 Z+ q' Q8 [3 O5 e: P (if lay-idx
- q9 t% n" l* T$ P2 x5 f3 D; q( I (progn
- w9 [6 T5 T: Q7 i1 [ G1 d: x Q7 | (setq layname (nth lay-idx laynmlst))4 `9 n& K% U3 v$ N' e# R# p
(setq layinfo (tblsearch "layer" layname))
* V; V* l7 H2 n8 ` (setq ltype (cdr (assoc 6 layinfo)))
" ?, \( i: T3 T x" m }. K1 b9 c (strcat "BYLAYER (" ltype ")")% U& E) b. N( a; X) F
)
}) |. M' W: B0 t* X "BYLAYER"
5 z8 X: W, G" T; B' i$ u O& W )
* K/ j& L. k+ m. t )
9 W) r3 Y2 K+ \ j# g! O ;;( F* h3 P! H. \8 R* b1 E5 V4 {
;; This function is called if the color is set "BYLAYER". It finds the 5 q0 \# l" {2 z0 I5 x6 J. V
;; color of the layer so it can be displayed beside the color button.
9 x0 |$ f# T: k! |: S/ i4 l ;;
' i6 ~. e( c, w' Y( r( W; v9 S4 d (defun bylayer_col (/ layname layinfo color)
3 K3 t# h4 c2 G" p- h |" q' P/ O (if lay-idx
( Q' X: Y9 k% ^7 V (progn; r2 m3 O. {! D& L" d- E
(setq layname (nth lay-idx laynmlst))
! L" T! o5 M. E" T+ n& Z (setq layinfo (tblsearch "layer" layname))
4 O! P3 I; y" d+ T5 l8 Z5 X (setq color (abs (cdr (assoc 62 layinfo))))8 Y. m) m# T: ^7 k
(setq cn color)
8 K( r7 n8 H2 W# h. ]; ?, b (strcat "BYLAYER (" (colorname color) ")")" i: ]; e/ e% `3 V ~/ z2 W8 Q' e% K
)
6 r# ~) ^2 j) w0 a) y( n (progn
/ k! }9 z. J. f! p, A9 x (setq cn 0): ?7 q4 S @! s2 V
"BYLAYER"
, y# a' S" p& M) Y, ^( p( x" t )
5 r5 u- h! }- G# t0 r, T9 M% P )# B( f+ Z* `+ i" s/ l# r
)0 q) V, o8 d0 y& h
;;* e5 }. ]! T3 G9 H0 N. _7 O
;; If there is no error message, then close the dialogue- p6 Y" M; |8 `9 G
;;
+ |4 }7 }1 @" E1 H9 h% Q% s' a/ L ;; If there is an error message, then set focus to the tile- N" Z; c' O L6 d* K# Y
;; that's associated with the error message.3 \4 O0 K5 D5 [! s" U
;;
' |( N: I% Y1 ^' G% s* x (defun test-ok ( / errtile)% X k: T- g9 p9 f
(setq errtile (get_tile "error"))
8 z* p& j% V, Q (cond
2 h( f! {* d2 t h& ] ( (= errtile "")
: q& ^, R4 `: \6 k ^ (done_dialog 1))) G" x1 |$ N# a
( (= errtile "Invalid thickness.")% f6 t! l' H7 u! {! s0 s
(mode_tile "eb_thickness" 2))
+ F8 Q9 q$ t6 b. c9 l& a; k )
* U. a) y$ {( J8 ?; n% C4 K# E0 P )& P& B% K3 z% x! p# u& R
;;
" d3 q6 ~& R5 P- _0 z% E& e; Z ;; A color function used by getlayer.
1 E* k+ H7 L7 q/ w- i ;;2 F* _' j5 z! X! a ?
(defun colorname (colnum)
) v6 W4 t; G' B* k7 \ (setq cn (abs colnum))2 v# y2 I* P6 ~, i4 n5 a
(cond ((= cn 1) "red")
1 H3 G/ d6 x3 Z6 S: t+ z% y ((= cn 2) "yellow") Z! ]4 I' X C0 y6 P# Q! V2 c
((= cn 3) "green")# i/ y1 M) p [4 T* P0 p
((= cn 4) "cyan")
- A$ U2 E6 E4 [3 ~ ((= cn 5) "blue")8 `0 s3 |$ e$ Y
((= cn 6) "magenta")
$ D! _0 ^8 T( l3 o ((= cn 7) "white")* R9 C# j: D m! N; i0 l$ ]8 D- ~
(T (itoa cn))
# n4 v: M" l& f; t2 v1 M w% K7 ]; u )
, D3 R6 v# \8 G) h, z$ F )
: i+ J; A( g3 ?; Q2 A
2 v$ z* x* ]# y( T;;; Construct layer and ltype lists and initialize all. v0 E' r3 K$ d6 \: h7 Q3 Q
;;; program variables:
4 _$ m" O2 p7 x7 n! \& q. E8 l6 Y9 E5 G4 K
(makelaylists) ; layer list - laynmlst
" X7 \7 Q& z, I: ~2 q, q+ C# s (makeltlists) ; linetype lists - ltnmlst, mdashlist3 m4 r6 ^. N+ N# F6 k3 w: S6 \
;; Find the property values of the selection set.
3 W9 i6 x- w1 E2 z6 l ` ;; (getprops ss) returns a list of properties from7 S: {) e5 [9 K& `! b0 W
;; a selection set - (color ltype layer thickness).+ z( B6 k5 F; w5 Q( f) _
(setq proplist (getprops ss))
V- p8 z3 Z/ L" ^ (setq ecolor (car proplist))& c5 @# O! Y. s# v+ r: p
(setq eltype (cadr proplist))! z5 A: V4 S7 V& y$ y
(setq elayer (caddr proplist))) v3 @/ O/ u1 A( K, p6 X
(setq ethickness (cadddr proplist))9 Y* e/ C5 F9 p7 S- j- r
;; Find index of linetype, and layer lists. z* l& Q! v: i6 D+ u
(cond% `& g% T2 J& v4 t7 q
((= eltype "Varies") (setq lt-idx nil))* e$ i. l4 F; Y& V8 V" ]
; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
% \# K) V# `) X! H% g# j3 E- F; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))% h* W- I8 j+ ~9 p7 d$ N+ V
(T (setq lt-idx (getindex eltype ltnmlst)))7 o6 q# T: @) O: {: `3 o/ y# v
). g3 R* i5 O' |1 {3 J, G5 p
(if (= elayer "Varies")# |- C3 p# R+ a M2 W/ o; _
(setq lay-idx nil)
9 V1 T" N9 p. D (setq lay-idx (getindex elayer laynmlst))) c" M1 p) Z; n8 ]! T* q
)1 Z, E) w1 I) H3 q8 i
(if (= ethickness "Varies")
2 f" s9 l7 C& b8 ^5 w (setq ethickness nil)+ h6 N0 G1 k4 W2 i/ A* g
)
: A: F2 } }; j) w
8 e/ j9 m3 I/ ^5 e2 s) ; end (ddchprop_init)
3 F3 g V% c: \. }3 @ r+ H
9 R& |- D6 h3 f4 x;;; (ddchprop_select)/ P- c3 ?1 h3 b4 V
;;;
* [5 r; \: w. Y;;; Aquires selection set for DDCHPROP, in one of three ways:9 l" E. \8 R' b! M
;;;
7 J9 [7 @; d+ S. c0 u" L. S2 j! v& h;;; 1 - Autoselected." E- A1 ]0 b0 G ~3 F0 p
;;; 2 - Prompted for.
3 a* Z! K8 _2 q% H! v; W) b+ M9 D% ?;;; 3 - Passed as an argument in a call to (ddchprop <ss> )8 Z4 t. z0 I) @/ f( A) W8 [4 j
;;;
5 A. h/ w0 I" I0 y( m9 `;;; The (ddchprop_select) function also sets the value of the
$ r5 y, d& Z8 N) J+ Z8 @;;; global symbol AI_SELTYPE to one of the above three values to
' `5 j1 k5 t6 b8 t4 D/ ]7 x1 U;;; indicate the method thru which the entity was aquired.+ M8 g3 ]* S( p K
9 E2 j; P8 h. k$ H
7 d9 @6 ~% ^9 J" Q6 P/ ~6 ~
(defun ddchprop_select ()
2 p/ L" V9 O l8 X/ N! z. U# v (cond. N# o* p- f- I3 ^* L4 i; r8 I
( (and ss (eq (type ss) 'pickset)) ; selection set passed to
) G% o7 i/ m6 E7 L [ (cond ; (ddchprop) as argument. ?& Q7 A, G/ y3 n
( (not (zerop (sslength ss))) ; If not empty, then: f/ W# o+ l6 b1 [/ U0 M$ R
(setq ai_seltype 3) ; then return pickset.+ S% _" b8 y5 \/ F/ m
(ai_return ss))))
* Y# Y! I" r# {7 J* w
& y6 A* S0 n% M" R# ?1 K! a6 K3 o/ x ( (ai_aselect)) ; Use current selection. n! e7 b4 L! ?! Z* F" J
; set or prompt for objects, |) `: r5 t7 n2 Q
6 z$ j: t; k6 R/ _0 J) I (t (princ "\nNothing selected.")" M- Z4 F7 N2 x
(ai_return nil))+ e: }) U. k- W# ~* t5 y
)! ?/ G# {* G" ^4 `
)
& [8 D8 D" E* U4 n) F% Q5 D# A, h* g+ M) w
;;; Define command function.9 {6 p, W. E6 |$ h! ~- |
9 x5 G& }/ L* h% K2 a$ d2 N
(defun C:CH ()2 r0 V* {/ m% W+ D( D- Q$ G
(ddchprop nil)
' q/ n3 d0 R( C8 \8 l% M# {9 h (princ)! P* U" m) K& ?' [ X, S' L
)
' l2 b( E! T+ @7 E/ N# m( _( {
, j8 L5 E& A( l6 v* e; k* r
: I7 o% b* d; o' ^- R W, j;;; Main program function - callable as a subroutine.
8 v+ Z$ H1 [5 l# z+ b% z;;;
( G' n% l( f/ ~9 }5 p3 _9 o, s* ]! _;;; (ddchprop <pickset> )
# f C" U1 j5 _9 q0 p2 t;;;- `' ~" a4 v" @" b6 A
;;; <pickset> is the selection set of objects to be changed.# c- f3 h: J) N3 X
;;;( z0 s& w# q8 t5 G' M' F9 x
;;; If <pickset> is nil, then the current selection set is
/ B2 P' Q% D" R4 R;;; aquired, if one exists. Otherwise, the user is prompted
- k$ o8 ^! l; d8 ~2 c7 |5 B;;; to select the objects to be changed.
: d3 g" j2 Y. ^: A4 `* Y;;;
2 W3 ^3 |3 { d' ?- {7 t;;; Before (ddchprop) can be called as a subroutine, it must
# q; @0 e. l7 M;;; be loaded first. It is up to the calling application to
* `9 q1 c- [+ X$ `5 k8 j;;; first determine this, and load it if necessary.9 B# Y1 x" K# \9 b' }" ?# T
7 ~6 S) D# U. c) n
(defun ddchprop (ss /7 _. \$ N& P2 S- n
! L0 g, e. @) A( t2 Y% S3 K3 `; K& x# ~
add-mdash ecolor ltedit_act s$ I1 m7 L# s* V
assoclist elayer ltidx selset* l3 T/ ^5 C/ u9 X4 a2 }( _
bit-70 elist ltlist set_col_tile
1 `( C$ C+ t; u. {% G- r boxlength eltype ltlist1
" y# Q+ q% q c5 ]6 y' s* W+ z Y1 ^ bylayer-lt en ltlist_act sortlist
: D- C8 _. m* }! F" P# c bylayer_col ethickness ltname
5 L7 ^7 x; L* e3 J# j7 | bylayer_lt fchk ltnmlst sslen
1 ^! R' M3 j2 o call_chp frozth ltvalue templist
0 x8 \- C6 Y! g. Y chk-col getcolor ltype temp_color
0 B! e8 t' O. S! R# e2 Y chk-lay getindex m test-ok
% o$ X( y+ i/ u+ M1 W8 H* i4 r: V# D Y chk-lt getlayer makelaylists testidx
0 M, W% Z* u4 }) R chk-th getltype makeltlists testlay
/ k9 F6 p" U# I) `/ C" ` cmd getprops match-col th-value
; @% C k6 X. `5 B cmdecho getthickness match-in thickness
+ W( E+ D% c; u/ F3 ^ cn globals match-lay tile
( E e0 O% `1 n" v6 H: P) q4 Y cnum go match-lt tilemode, f9 u& }9 } `9 O I) x8 ]
col-idx index match-th tile_rect- I- b: [, X/ |' M
colname item match_col vi
; ]1 n+ N0 ^1 x6 E2 P colnum item1 mdashlist vpf
; ?* M- _# k( Z% p; M color item2 n vpldata
$ ]5 A" D, {+ i& k! J colorname itemlist name vpn
1 o' p( c2 a8 Q) J6 W& ~2 { col_def lay-idx ncolor x
- i+ F5 p/ K' t2 u* @, u" Q- W8 Q col_tile layedit_act nlayer x1: z' d- e; S/ \3 ~- b
ctr layer nltype x2
. q; O+ S6 e7 \6 W. [4 K cvpname layinfo nthickness xdlist
; z% b0 r" h5 _9 x3 c dash laylist off y
0 o k9 v3 F* y! W, ]1 H9 t- v4 ~5 ~ dashdata laylist_act old-idx y16 ~8 Q0 p! K; [3 W/ Y' E5 k
dashlist layname olderr y2 Z/ d5 s) r8 u- w8 O/ O. @6 C
dashsize laynmlst on undo_init4 S$ r) I5 ^. |' ^! x0 h
dcl_id layvalue onoff5 i: Z% R' n, c& S& d
linetype patlist% y+ e) O3 B) d2 {7 c
ddchprop-err list1 pattern" \/ i+ w. w) \% H9 q. `
longlist proplist& j5 k5 D5 b6 X( o
lt-idx reset-lay2 h0 K5 U2 W9 |8 j% V6 @3 O
drawpattern ltabstr reset-lt2 O- G% A$ B$ O" A/ P
)0 T) S8 ~$ I; d- M
2 G/ J/ ]* T4 ]
(setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
. X4 W- ]& p* H6 x8 t. } old_error *error* ; save current error function6 i( ~8 }7 H9 p2 S
*error* ai_error ; new error function+ _1 ? O+ W+ q
)$ u' ]$ X; Q' k% B/ p
% U* J$ `5 D% x0 ^' D: O& N: _' n
(setvar "cmdecho" 0)5 O7 A$ \3 E# w1 ]$ ~3 k
4 Z. Y+ d* m$ F* ]: v9 g (cond
% I. Z+ z3 ]. E1 C2 N5 Y5 z ( (not (ai_notrans))) ; Not transparent?- i1 [3 C3 d( @5 M l( L
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?5 S4 I* l' l+ l& ~) X2 x; C2 U5 h3 }( N
( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?
- _* y5 J! L' z' f1 G7 a ( (not (setq ss (ddchprop_select)))) ; objects to modify?2 O9 ?1 T y) {$ H
+ p& k" N8 J% a+ \3 @7 e
(t (ai_undo_push)
9 Z4 p$ P; V* U4 z (ddchprop_init) ; Everything's cool, k+ Z( L; Q3 R: C8 f8 z
(call_chp) ; so proceed!$ W! c2 W, s U& L7 W X
(ai_undo_pop)
; c; ^- j( |; S )& e% p( A, z4 C/ |$ G
)3 M& a" A3 P4 ^0 ]
4 n9 q& d2 b3 b0 A (setq *error* old_error) ( h) R- C: `# `: l2 A6 z. `
(setvar "cmdecho" old_cmd)
1 l# d2 {8 h% K (princ)! s, T8 d( s" `; T' j
)
$ H ~& D& _3 E/ o( a
/ `/ m8 P: O0 L;;;----------------------------------------------------------------------------% C9 m2 E" p/ o2 f. }; x4 `5 j$ a8 L
' l* X3 N6 k* J; G( D! \6 ~(princ " DDCHPROP loaded.")
, ^, ^; B- J1 G! u& f- b(princ)
2 \3 `+ x# q) k$ {4 ~% A7 B# e' p' h1 v1 c* Q
;;;----------------------------------------------------------------------------) L4 X- p- l5 c
5 T0 T0 A0 @/ C9 V" v3 }/ w! C& n;--------------------------------ddmodify.lsp----------------------------------
* M3 a% p$ W# x! z; v/ `; Next available MSG number is 111
8 i9 i! [) A( G, n ?* l6 D# B& l+ O; MODULE_ID DDMODIFY_LSP_7 o) s$ }8 o' f! `
;;;----------------------------------------------------------------------------
4 A4 C0 C6 Q0 f5 l;;; DDMODIFY.LSP
: w6 p4 p: @ k. B;;;
; P9 l4 b, Z7 o& h4 h& S;;; Copyright 1997 by Autodesk, Inc.
; d; Y( n8 a. `;;;9 v T D) d4 Q! |& h
;;; Permission to use, copy, modify, and distribute this software: h4 z8 ^$ u, ]+ f
;;; for any purpose and without fee is hereby granted, provided+ _" U! v6 f6 K9 E
;;; that the above copyright notice appears in all copies and4 M2 E( w/ p3 d) u2 K
;;; that both that copyright notice and the limited warranty and
1 C- ]- c* l$ k+ Q/ J8 e1 c0 X, z;;; restricted rights notice below appear in all supporting
8 L6 U( a8 c% o a! U5 f6 H5 g;;; documentation.
9 L P7 [: x% i+ G4 `9 W' n;;;8 v4 {( {) s+ C6 R
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.' d( C& X1 s+ G6 {
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
- p# s9 L& w. C$ d& L;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.! N' c J$ q" ~8 E1 t4 P5 z
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE3 E$ U& }$ k& o
;;; UNINTERRUPTED OR ERROR FREE.) g- T2 H& v; G
;;;
( N9 Y8 z5 Z6 }% [* };;; Use, duplication, or disclosure by the U.S. Government is subject to6 w8 `" }* e' l( s
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
1 B s- e8 |' w) J;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)+ ~6 e, G6 L+ A1 i
;;; (Rights in Technical Data and Computer Software), as applicable.
" T- u: V/ |& z1 v;;;
: [% v! O/ v: U5 Q* B;;;.
+ G: v3 M$ v2 O$ J! A;;;, g1 B% {; d! {' s9 t$ P% T
;;;----------------------------------------------------------------------------. W5 \1 `8 A8 N' ?* _5 z
;;; DESCRIPTION
- ^4 ^0 F& S2 V1 Z7 Y6 C;;;
, J9 R) a$ F6 L: U/ n;;; This function allows the user to get a listing comparable to the LIST7 [8 C# y* L6 ~. f
;;; command for most objects. In addition, most object fields in the
' _3 E6 ~1 n0 h0 E2 N9 f* V) F;;; dialogue box are editable. Points can be specified dynamically by$ _7 M1 u2 P7 x) v* _
;;; temporarily dismissing the dialogue box. Each object has a unique4 A" @+ ^, ]' }5 t2 _. l
;;; dialogue." Q) d" [& x; H+ s6 x: `
;;;+ z+ i5 O9 R; E' ~- F
;;; Naming conventions; i% H; p5 C6 b5 [3 ?
;;; Long function and widget names may use an underscore "_"
# t" |- C# O0 ^' V& R;;; in their names to make them easier to read, long variable; t4 ]) O; t, o
;;; names use a dash "-".
4 ^6 y W7 q. q;;;----------------------------------------------------------------------------9 u6 N8 `7 }& L* i' y
;;;----------------------------------------------------------------------------* }7 o3 l! E! @. s" R
;;; Prefixes in command and keyword strings:
: c7 A Z X: ^ t;;; "." specifies the built-in AutoCAD command in case it has been( S% T8 c; ]5 e* R) k
;;; redefined.
4 Q! n! I% U. y;;; "_" denotes an AutoCAD command or keyword in the native language
! ?3 f, i1 i( i7 t;;; version, English.+ K0 F( g5 @& w8 R
;;;----------------------------------------------------------------------------
5 p1 F+ g* P4 y! W7 u, n) v! L;;;
# G, Y' W, b; Z;;; Avoid (gc)s on load to improve load time.- w5 y1 V5 Z7 x. f0 y$ w9 Z" h
;;;
2 F5 {+ i' p& W(defun do_alloc (/ old_allod new_alloc)1 ~+ x; ^4 I1 m# ]4 |" Y7 b: u& V
(setq old_alloc (alloc 2000) new_alloc (alloc 2000))
3 c9 y! x' f% O" ] (expand (1+ (/ 17000 new_alloc)))
8 i+ a$ F$ B. O# k (alloc old_alloc)" N0 ]/ Q: r) B1 ~$ W( s- @4 C
)/ c7 M9 I% W$ E ~8 q$ r
(do_alloc)
* K2 { B+ X9 K0 Y$ R3 ] W(setq do_alloc nil)
. H/ U7 L: |" d+ ?$ a
' t% e9 F* `5 r! z# m2 O;;;" T( _0 x4 u( h8 |
;;;
$ s8 t: y( J9 {; E) K;;; ===========================================================================
3 C- d6 C" q. v0 h1 E;;; ===================== load-time error checking ============================
5 t/ Q) Y! r4 |( p1 e2 }2 B$ n2 l+ ~: h; K
(defun ai_abort (app msg)
% D* \- Y* x2 J$ d% C (defun *error* (s)
$ v y6 \4 r/ O. x) q& z (if old_error (setq *error* old_error))
! V9 Z; G* {! B: T$ o% K- e (princ)
6 Y t3 R; X* y& |& [6 B )% k" O' z. c. @( u
(if msg
2 L: K2 l4 U( J T }0 a! \ (alert (strcat " Application error: "
7 @- f5 ^6 B! q app
5 X, J, U( S' Q) l " \n\n "
! }% d2 p5 {6 I" o0 g msg7 N0 N, C, c4 z! U$ I# |: _
" \n"
' ?0 g- v+ ?3 P/ D/ q/ `7 v )
, @3 S% p" M7 e; @6 e( ~" o ). F1 @ a& O. S w9 n
)2 Y0 r2 ]* h, A; q) q( V
(exit)2 d, ^5 ^. C* I* H5 U) O0 c6 ?
)
, B9 A- ?! ?9 A5 K4 I4 x0 g2 S6 {$ n3 i2 a, [# y
;;; Check to see if AI_UTILS is loaded, If not, try to find it,
* A) q& x7 p' g$ b) r$ y;;; and then try to load it. If it can't be found or can't be7 O" } S. s, A1 t- ]. s) i
;;; loaded, then abort the loading of this file immediately.
! U* @& x3 _! n& l
0 |# k" F, O# x (cond
! k9 e+ D, h$ Y' e* ]5 K. j4 @ ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
8 |2 F6 F: u5 M9 A( S* f/ u& A4 W
; t4 L c% N7 [/ P ( (not (findfile "ai_utils.lsp")) ; find it
/ L. n. F8 z5 \5 R (ai_abort "DDMODIFY"
; t# K6 l* s: ?- m% c (strcat "Can't locate file AI_UTILS.LSP."' _, F5 P% f' P r
"\n Check support directory.")))
& d s# o8 q; K5 T6 x
! w6 K& y8 _! @, i2 P9 { ( (eq "failed" (load "ai_utils" "failed")) ; load it
1 G2 b( N( f+ r; w. {: T- n1 ^& G (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
. b3 r# c8 R+ ~' b! L0 | )5 g! ` b' a3 Z& Z4 }% |6 |) B2 k
. d2 H- R" S8 L' J
;;; If we get this far, then AI_UTILS.LSP is loaded and it can
/ G# w- j( l: M2 o' b X;;; be assumed that all functions defined therein are available.
8 D% Z/ F2 N+ b+ h. c9 M( B/ P) Y6 M& K) X# J
;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
! I4 ^# k, n* A/ j! s7 `;;; if the file can't be found or xloaded. Note that AI_ACADAPP
; u# c3 J, B) {7 M6 u7 R' g;;; does not abort the running application itself (so that it can
4 Z6 I t6 u. W, l;;; also be called from within the command without also stopping- i( _; F' u# B
;;; an AutoCAD command currently in progress).* [+ y3 P. R! j6 b* t
3 b- _% R: c; c b (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
$ i- A! U, m7 T( [8 e) t% h4 _ (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses6 h% e$ [/ e! u! E( B
) ; ai_abort's alert box dialog.
( p- N7 L' K& I8 J- t. ^! I. K: u, B, L$ H6 P6 t" K: c
;;; ==================== end load-time operations ===========================. P0 ]8 p$ e+ K
9 B# Z6 p1 G3 ^! L, u( Z- Y3 u;;; global variables3 J& c7 n' G3 L+ D
' \- M2 c5 n( E
(setq hatch-elist nil)
7 Y1 ^, X% i7 y; H3 g! `- A7 q* t- S
! _/ X; ~6 y) W2 a# E: _;;; If we get this far, both ai_utils.lsp and acadapp.exp are
+ K" g [) x6 T9 o% w" V;;; assumed to be available.
[' u; a# H7 o* S7 i i0 ~" B; G: J6 i( B; }+ ], L8 t* p
;;; Define and encapsulate all subroutines that are declared
/ J7 O4 K# C8 u2 U! L# e" X' E& ?; };;; locals of the (ddmodify) function. ~! `( b2 ]0 }2 W3 w) y
8 K( }5 e4 B* {. T2 l4 R1 C
(defun ddmodify_init ()* P3 Y1 `' l) `6 Y
;;7 b7 k2 O. x% z" Y2 w! A, a2 h
;; These three functions modify the enitity list for common properties. Since; @- }. }5 Z d! k3 ?
;; color, ltype, and thickness are absent from the object list when they are. r0 ?0 R. j; X: {5 l3 x
;; set to their defaults (i.e. color = bylayer), a simple substitution using. R/ t5 X1 L: K( ]2 @' ~! m- x
;; SUBST is not possible.6 B/ U! U. Z! r! }
;;
% T; F9 Q# Z7 R" M% }' i" c- p' c (defun modify_properties ()/ H7 q2 A, c9 s" _) \- j
(emod ecolor 62)
# _7 R4 k2 i' V& L0 f1 A (emod eltype 6)
. U( [9 M! B+ f) f (emod ethickness 39)
) P' }4 d: c# X3 [6 ?, H (emod eltscale 48)
$ J0 X8 x7 G& {1 V& H5 r (tempmod elayer 8 nil)
( y7 q% K" \4 V n: F. N V+ B9 B )3 y/ f9 c6 B; Z: ?9 p
;;
$ f* B- x0 j5 g ;; This function is used for modifying common properties of the ACIS0 f; e0 |* X2 p' M7 _: C
;; based geometry objects. Thickness is not valid for these objects
1 |! \3 n$ c: l- _5 c% f3 I8 D ;; so it is left out.& h" G$ U5 D; @4 ?% K2 W1 g* ?
;;
2 i0 M9 k( J) R$ | (defun modify_prop_geom ()
" y( w/ [/ X4 h) t) h" Y' } (emod ecolor 62)* x* O. d6 n; R8 b6 s
(emod eltype 6), | l# C$ W- B% m3 q0 W
(emod eltscale 48)0 d. X d: S! F+ l0 E& H; C
(tempmod elayer 8 nil)3 \2 K9 K6 F9 p4 H3 @
)
- U6 t, e7 R3 H' L s% [% q U0 ~2 Z1 \! o
(defun emod (value bit)( s g. ?+ S/ t) V) P
(if (= bit 62)
% K$ O9 b" D; _7 `, W/ J7 ^ (progn$ ]/ b: B6 p2 E8 k- a0 v3 b" W
(if (or (= value "BYLAYER"): d, }% p+ s( o3 F
(= value "BYLAYER")) (setq value 256)) E5 u3 W: V- y h% j* Z
(if (or (= value "BYBLOCK")
J& P- s; S( p (= value "BYBLOCK")) (setq value 0))0 A) \0 G/ ?0 L: t5 F" {
). h# s: ~( S! K
)9 ]3 M7 o/ N! d* a" W: E
(if (setq oldlist (cdr (assoc bit elist)))
9 v* h: m2 X, ^4 q. e# ? (tempmod value bit nil); M o/ T! Q/ D. d5 |3 _" n, E5 Z
(setq elist (append elist (list (cons bit value))))
, z' s+ P3 I: {% m& W, F! l )6 e! Z7 [" L! F! `, g! y
)/ w1 |3 E/ Q" G2 V) c
;;7 ~3 o# @2 A5 U5 m9 B) X9 u
;; Resets object list to original values. Called when the dialogue or9 i! }6 ?' g9 r' P
;; function is cancelled.
5 _. M. S" |( e- q9 c& \3 H, w% M% E ;;
: o; b0 m' S( y+ t1 n (defun reset ()% ^8 j2 [( L/ O ]0 {0 P: k
(setq elist old-elist# L0 y% c. c# K3 V! r `
ecolor (cdr (assoc 62 old-elist))
1 a' Z0 K M# `3 s* G4 C ethickness (cdr (assoc 39 old-elist))% v3 q. ^, J: ~6 }& ]
eltype (cdr (assoc 6 old-elist))
3 ]6 Z, p3 \6 V1 Z" }; f. q5 s elayer (cdr (assoc 8 old-elist))
: x' ^. @' o: w) l! @' B4 ` eltscale (cdr (assoc 48 old-elist))
# ?9 o% |1 D' W9 K) q8 O" _( a- j )
1 x, @7 Y' H; i1 S5 c (if (not ecolor) (setq ecolor "BYLAYER"))
& ^3 g# \- z7 N7 |+ C (if (not eltype) (setq eltype "BYLAYER")); ~9 l; R; B# k0 b, N. j
(if (not ethickness) (setq ethickness 0))
- {9 S9 H8 a, X& Q. h (if (not eltscale) (setq eltscale 1))
0 E+ @3 d& a& o: S( i/ S (modify_properties)' e/ s: ` i8 G
(setq reset_flag t)
/ t5 n) s' u! C4 U9 r3 t/ p' t (entmod elist) A, V. K6 m& ~3 i! ~* L. t/ H
), s9 `3 u( @. Y3 ?2 J
;;9 T9 _1 z* q8 l2 o: k% B
;; Modify object when dialogue is temporarily dismissed to reflect latest4 x4 Z. ^# w8 u n2 k
;; settings of dialogue. It converts the point from current UCS coordinates to
$ e. J& t/ f$ m! x ;; the proper object coordinates (world or object).
2 X( M: @6 A3 b1 ~ ;;0 C+ ]" M. B# ~9 J& {; t! x
;; Arguments: value - in current UCS coordinates
6 `, B' E: X1 z6 X ;; bit - object code (i.e. 10 for start point)1 c7 g; b: `5 L0 r7 X
;; ptype - point type 0=world 1=planar3 ], A7 m5 S. R/ w# @, a: Y
;;
* o0 M1 \8 x g (defun tempmod (value bit ptype / newpoint)
$ y7 S8 E9 Q9 f (cond
9 h4 W5 G* q% D0 H+ J1 ] ((= ptype 1) (setq value (trans value 1 ename)))
8 @' `3 ^4 y. O3 D6 l4 ]8 t ((= ptype 0) (setq value (trans value 1 0)))# r: @# Q" Z! L) O" D3 w; s
)
6 M- `0 h; J- |7 P; n& P (setq elist (subst (cons bit value)" }- s9 \- v% ^4 }' z. p3 }
(assoc bit elist)( s0 l8 T0 x H1 H7 }- W% K
elist
& h* Q! E- c6 ^- P K% C! d )
4 s1 {7 ~. n9 J3 [. g9 P# O )" v. N$ }5 Q" Q2 C8 c! `( d
)5 t2 x8 t- x2 T0 M: M% r
;;, z# v" @3 F7 V
;; The following functions are called after a dialogue has been temporarily, f# _, }: v8 E2 b2 I6 [6 j" c) R
;; dismissed and the user is selecting a point. If a point is selected the
- H, E0 z4 Q3 f2 P6 j$ U0 f ;; object list is modified and new X,Y,Z values set. If no point is selected
6 y' ^4 a- |- l6 b: q8 h- d+ q8 g ;; (null response), then the point is reset back to its previous values.
4 g1 I* ^7 }0 Q5 q* L6 Y ;;+ B' w7 J6 R& x0 n9 F
(defun ver_pt1 (ptype)& L. {" `& I0 ~
(if pt1
# R/ M- H: k7 K: I (progn' R( w0 h: s2 P5 s; J+ V5 {% ~
(tempmod pt1 10 ptype)" P t0 n3 X1 c3 h' m |
(entmod elist)
% C; Y* _, v6 P )
) |8 R( E( B! _* y! N& | (setq pt1 (list x1 y1 z1))+ j# ^, E, X4 l* J9 d
)
9 x# }$ T ~8 M. n! e6 B )6 t2 a" `8 G8 c) b
1 f& K' d( [( Z9 k' I) f; @" O+ V ; (move_pt1 <ptype> )
1 G1 l# [7 O4 `7 f ;
$ U, X7 q% W' M0 u7 V ; Called in liew of (ver_pt1) to translate block insertions which* U: N/ b X @" H# H6 F+ T0 I* {
; might have variable attributes attached to them. If the distance0 Z; q4 K- j$ Q( o* c5 J
; the block is to be moved is < 1e-6, the move is deferred.
, Q/ V) [7 F. z& F$ s% S: {- r3 I; o) K; Q: g. K6 y( o5 F
(defun move_pt1 (ptype / basept hi)
/ W2 _2 d ]. j) k' v* z0 Q9 W (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))! _- @, T0 Z/ e3 P8 a, W$ V
(cond2 K- a8 B S4 d5 ^% Q0 I
( (not pt1)! i& w5 I7 h9 I' O
(setq pt1 (list x1 y1 z1)))+ |) M' m- K7 G
/ u% V. |2 w7 i6 i& e7 ?2 Y
( (> 1e-6 (distance pt1 basept)))
- Y6 m; Z {3 Y7 g! V4 h: {% K$ A& w. @! L+ ^/ v& N* r0 D: F
(t (tempmod pt1 10 ptype)
* w, k- i! Z8 C2 @ (setq hi (getvar "highlight"))
9 s+ w% \& o+ w$ v- q (setvar "highlight" 0)$ x% _6 I7 j& ~; ^& L
(command "._move" ename "" basept pt1)
' ]$ y( i; {- l# o5 f) j (setvar "highlight" hi))
$ H/ j8 H# X; H; r( x )
8 ^6 U4 Y# _; ?5 z )
X0 Q. N, c, I2 N9 h( g) `( U& c6 h
(defun ver_pt2 (ptype)
9 [% K3 q# W( q (if pt22 Z: ^5 {5 f; ~, `2 y& D$ x
(progn
M, g& {# U6 h( S% s+ C2 ` (tempmod pt2 11 ptype)
+ _% L6 u/ L9 |( K+ n0 O6 m1 |! y (entmod elist)
: u* S0 @6 ?9 I9 o )( {- h) x1 O* x
(setq pt2 (list x2 y2 z2))
1 J( S! W. M3 N! u )
- a( k8 G0 i# T. N, n, o4 o )% q7 U5 a2 s9 _: ^2 f
6 a f/ K; p: x1 T
(defun ver_pt3 (ptype)! P/ q3 x7 [! @ o! w: A9 Z
(if pt3
: b6 Q, {: f9 H, h( v (progn
/ \) N# b; m0 ` (tempmod pt3 12 ptype)9 O, v# V. }8 ?$ @' }
(entmod elist)5 A, w {2 j g9 h; a, _/ u
)! D2 x4 O/ f5 w, O3 ^' V' r
(setq pt3 (list x3 y3 z3))
4 N9 C( G0 Z0 x3 l& U* t4 A )! H; v" B: c- F+ T+ t& L8 V
)
) d/ m m; `1 |6 I; ?$ t$ t: e
' f4 v4 F+ R1 z3 [! g (defun ver_pt4 (ptype)6 r+ d4 ~* @/ p2 B
(if pt4. J. U, n$ _* o/ e x
(progn
6 S$ k8 J+ Y; G- f- e; [& T (tempmod pt4 13 ptype)
$ M2 X1 D: o" J (entmod elist)
: G- c# V% a- V& \! I( a, f' P )/ ~+ G9 p8 I+ Y& \' P( Q6 [
(setq pt4 (list x4 y4 z4))
9 `1 K; u& W8 N )
5 x2 A- g7 t! x )+ k; I6 r3 N3 R7 I
;; Xline/Ray
. m( E) B$ s9 A/ I/ Z; u( w (defun ver_xline_pt1()" m* }8 ?# |* N/ D8 @
(if xline_pt1
* N" C, g: r' M- y1 g- G) S (progn
9 R) d5 t, [; M0 D9 D/ z ;; convert to WCS.% P8 e a6 j7 |5 H: e
(setq value (trans xline_pt1 1 0))
# Z; e2 V. U5 q3 S. x (setq elist (subst (cons 10 value)
" n" M+ C( B( l" S* B5 v& D9 z: e (assoc 10 elist)' o0 J0 |' x- [1 `
elist
" q' K# B" \# ^% D2 f! S ), }( \ S% C" G: L; p: Z( i
)8 n: k4 T. e' Y# X7 c ?' G, ^+ I
)
$ ]3 m7 K& x) z4 P2 R$ K (setq xline_pt1 (list xline_x1 xline_y1 xline_z1)) o) [/ Y, b: \' T% ]
)
5 E3 g$ K4 l/ w$ E3 M8 Z8 v5 K1 M ) p. e% n& [7 j) F0 d; o
: H2 Y4 q* U/ S9 C) d, [$ b (defun ver_xline_pt2()4 Q9 \6 U7 n c/ C6 O7 T
(if xline_pt2
6 s% S! Z! S: ?8 L: Y6 }3 f (progn
) @ r. t& `' D0 z ;;
8 y2 U Y) f2 |- S ;; Calculate new Direction Vector WCS. G. q. Y* `. X4 _/ c9 y6 L
;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))) l9 ~ n; H; C% P; o( ?
(setq temp_dir (trans xline_pt2 1 0))
" O0 A( z3 ^8 }. I; J! S4 G (setq temp_dir_x (car temp_dir))( d$ J1 U: Y" T
(setq temp_dir_y (cadr temp_dir))' ?( I; Q! y7 Y2 w
(setq temp_dir_z (caddr temp_dir))9 J9 v4 S& P8 ^) z
9 q0 k7 I6 E1 e8 l, a# B
(setq temp_xline_pt1 (trans xline_pt1 1 0))
6 r! j, Z7 |" W% \. e (setq temp_xline_x1 (car temp_xline_pt1))3 W) @; n5 w l. a! i Y" t8 e
(setq temp_xline_y1 (cadr temp_xline_pt1))" X3 @ O& T- X% G( b/ \5 e
(setq temp_xline_z1 (caddr temp_xline_pt1))
1 L9 @! j# w7 y" j1 _% V0 M' m% X- M# q
(setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)" F2 b' W& S/ D" p
(expt (- temp_dir_y temp_xline_y1) 2)
) X y/ i! {7 u4 Z3 `" z' r (expt (- temp_dir_z temp_xline_z1) 2)/ W6 C" I7 _( N0 h8 j# J- T* }
))); X O7 z. V, T8 E. t
(setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
8 E3 i M* c5 t; t W (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
6 d7 Z; f4 P, u4 L/ }3 w& h/ P. k (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))- ~9 z$ M& B+ U9 V" u
(setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))$ M( L+ f; X9 M: X
(assoc 11 elist)9 m* u% x* l5 [' G# s9 l2 G; F$ K
elist' J* o0 J$ N2 q0 v$ c8 y& `
)! @8 S1 B6 X. b e6 Z: j
)' N# G( y2 P1 m |8 V) \
(entmod elist)
6 U4 K2 c# t7 a: m- J (setq xline_x2 (car xline_pt2))
( N; M4 U% U0 W3 ?# u (setq xline_y2 (cadr xline_pt2))
, X( h5 F- t" K (setq xline_z2 (caddr xline_pt2)) u0 h4 s8 ~- F, D; |0 a, ?1 l
+ \, p% P+ M3 h' u# w# C
- A+ S4 f% a4 F7 S
)
. ?# P [' y) L& F9 N' N+ L (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
0 y9 P9 b" e9 ~# G% i )4 [1 B9 D% B+ u- Z" G5 H9 }
)0 t; \3 c. w1 a
8 G3 S1 i/ u: P+ Z
;;7 F, h8 b9 j6 D7 `6 ?
;; Common properties for all objects. x5 A: ^. W) R9 U. V
;;. Z/ e+ [8 T8 y6 x% \
(defun set_tile_props ()
1 b ?, f$ a8 L! O$ h (set_tile "error" "")
$ ]( s3 L6 B$ e5 }8 X0 g (setcolor)
& F1 V+ i1 C' h5 L2 ?( a (cond
$ H R$ w8 f, p+ h8 G5 E1 [ ((= eltype "BYLAYER")% R. J; N: F* _! Q
(set_tile "t_ltype" (bylayer_lt)))
! C! d1 P9 V) w v, i ((= eltype "BYBLOCK")
- d% _5 b) j% O; f (set_tile "t_ltype" "BYBLOCK"))
" g& z m7 \$ t5 M. K; o; ` (T (set_tile "t_ltype" eltype))
( S$ L( K8 e+ J1 v3 G0 q )/ c1 \3 i, S0 r/ f: [% O- [
(set_tile "t_layer" elayer)
& ~8 O$ u. p2 h d9 A2 o3 E (set_tile "eb_thickness" (ai_rtos ethickness))* s, Q7 l3 h. S4 f. y4 \& Z% w3 W
(set_tile "eb_ltscale" (ai_rtos eltscale))1 u5 K9 a. [) q3 B3 I& H! C
(setq which_tiles (ai_common_state etype))0 b! ?% ~8 Q. {+ q
;; Disable tiles if need be...
4 y( z5 V; O. Y; r R+ y
( k- f4 I! Q/ g- ` ;; Layer Button and Text Field# G. K1 k0 n" b0 i% N8 x& Y
(if (/= 1 (logand 1 which_tiles))( h8 g' n/ ~2 t z4 N
(progn# t8 C6 o2 a5 E( U4 g/ i; J
(mode_tile "t_layer" 1)/ ? s( a r. W8 E- m5 Z
(mode_tile "b_name" 1). R+ \3 ~$ h; V* x; @; t
): {6 {$ M# k! z+ R, W9 U
)
( w0 _7 q5 v- D! ^4 t4 y ;; Color Button and Text Field
6 g5 D' T* e; r& f3 i (if (/= 2 (logand 2 which_tiles)). Q6 t2 {: B6 D, D0 `
(progn1 D8 {; d/ O2 M/ U& \! l) m
(mode_tile "t_color" 1)
% }' A" M+ d) E. x) ~/ V (mode_tile "b_color" 1)
. k7 A4 m0 ^7 s+ |3 Y (mode_tile "show_image" 1)
; f5 z# M" ~/ H, v2 u7 G )
. H" b, g; ^' u0 @: m) M" ^ )
9 l/ {7 _. Q5 e2 [0 x ;; Linetype Button and Text Field, C; B! W' J3 X5 q6 _/ {
(if (/= 4 (logand 4 which_tiles))
" R- _, }( m6 a0 W& I: @- G (progn
- D- S% i F5 j; t) @/ F2 O (mode_tile "t_ltype" 1)
( w+ J7 W9 c8 J ?+ Z& E (mode_tile "b_line" 1)
E% n: o8 y- ]+ {+ @5 z. G/ } )
+ X5 ?4 l# v" f2 }$ W$ A )
& [/ w( {9 q* ^: K4 J5 p' r ;; Linetype Scale Edit Field
K: V- C& S+ R (if (/= 8 (logand 8 which_tiles))& x6 c) E3 I5 p# x1 z
(progn
" S+ O S7 l6 J# Y4 T l0 j (mode_tile "eb_ltscale" 1)% O' d2 K$ x$ P( h7 I3 \! P; [- a. l* F
)
3 e4 f/ a3 W# v* G )4 H; D3 w4 l7 I6 w
;; Thickness Edit Field.& Z" E; ^* Z( v9 G6 U
(if (/= 16 (logand 16 which_tiles)); L3 N; w8 a- I) ]8 L' `
(progn" ]) m8 O; S0 t$ L
(mode_tile "eb_thickness" 1)& t3 e- U/ y; A/ x$ e" W6 h! g
)0 _3 j9 D" l* M' y M: ?" |
)
0 V# K, T0 }( q# \7 q2 V )9 M2 R, G4 X* {; U' o& ?% ^
;;
3 I0 G* Z1 ]) Y ;; XYZ Point values for all enitites6 I6 i3 v, {+ b m
;;3 b$ V" ]5 S, C( U7 u8 G
(defun set_tile_pt1 (ptype)* J |- `8 [! s5 t. ~
(if (= ptype 0)% Y% u- _% O" }) p4 u
(setq pt1 (trans (cdr (assoc 10 elist)) 0 1))0 k2 U& E8 O: S
(setq pt1 (trans (cdr (assoc 10 elist)) ename 1))- t) q% |. n5 x- ]2 a Q6 a
)
3 |8 A+ A" c% K8 h (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1)))) A z9 [" q! J
(set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))
1 y( p( {- X! t# x1 O (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))5 M! o F$ A( i2 D
)- W: u( A4 X% `9 S6 b7 }8 t$ _
(defun set_tile_pt2 (ptype)
/ B+ l: U1 ?" x1 s$ v (if (= ptype 0)
7 E8 O3 T9 X/ s, |3 D: ^ (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
( G; {5 d8 |6 b$ A2 W1 o1 z (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
% N' E# [0 D v9 H/ G' ^) s )
/ c8 x; t/ a2 V) y7 O (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))4 F( I0 {" F' K2 p
(set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))2 S; t R7 E: T2 I/ ?* ~9 s
(set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
q$ U* _$ \2 e5 n )
: F& |. {2 S! P; @$ b9 E/ v (defun set_tile_pt3 (ptype)
! |* f B+ k3 W' o: b Y0 P# Q (if (= ptype 0)# ?& p# W N4 Q; E+ I7 \% [: ]2 X
(setq pt3 (trans (cdr (assoc 12 elist)) 0 1)). Q6 \# _9 U$ ]8 a: E9 K
(setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
* S7 m( }2 k p$ p% ~, J+ w )
: x) i$ B5 J4 p) D3 r( N; G (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
+ a0 m" B: q! V! Q3 x4 L3 _ (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
8 P. F" E; e/ M! e (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
4 `3 F8 o; j/ K; o/ {" t )
l( P, R3 b% ?5 y- P (defun set_tile_pt4 (ptype)) h* _8 f* `4 G6 D$ C1 g' Y
(if (= ptype 0)$ _0 Y2 S7 W' x( z
(setq pt4 (trans (cdr (assoc 13 elist)) 0 1))4 N( g. ?. Y% S, j6 o
(setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
0 z& |* e1 a0 c7 z/ F1 d )- d3 c3 M6 ?* m# Z% n, x: r# M
(set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))0 e( {& \ e6 O
(set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
8 \/ ~# m( p. H( R( _+ S (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
, P/ c' H! d! W9 g' E$ o- G& _5 N )
7 \) r a5 i m! H) O ;;0 S, I- L& B$ s6 R# d
;; Xline/Ray' g' E H; k* T# x5 R6 ~# `* Q' z4 R) L
;; s; r5 E2 _. d
(defun set_tile_xline_pt1 ()2 ~" C) J K: U" x/ V% c/ Z5 t
/ V5 b4 C! G% o8 |+ x% |% ~
(setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
( R% A L1 u/ H# N) {# o6 z9 U! x1 v ]
(set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
7 F3 l& v1 f, m4 \" Y) A (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
# i2 p& h p+ |. u (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))* |, s8 r# N3 u: {4 i8 W- X
)
2 u/ S5 }5 u/ ?- y (defun set_tile_dirv ()
( Q0 h D0 Y I5 t( S; N( I ;; Convert 11 group to local UCS (displacement)0 r$ @8 c* `4 u0 i4 @* T% t+ W7 Z. `
(setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
! @6 v7 P6 r5 m, G5 C9 w1 |
2 V# S! ?0 Q- a (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))& R1 p9 U! ~1 z# [" s" }
(set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))
+ P7 c3 [. U: X% ~# g (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt)))); N% ~ `* S% O. J- @
)# K7 x6 l$ a4 f4 ^) C# @
(defun set_tile_xline_pt2 ()
: o, e" x. M- I (if (not xline_pt2)9 V" ]; p/ O5 ^$ c
;; Initial second point is Root Point + Direction Vector( z* ] s5 {. B# Y/ a2 Z
(setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
# Y6 E) F0 R$ S$ g% D )
u! r% S; a- e- U& E7 l (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
; `4 g( N- t& R/ R (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))) p7 |+ w3 u$ I' Q" a
(set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
1 F- O! G4 X1 U* `# E )% F5 d/ T5 ~7 V* ]% S ~* X
2 u6 N, ]+ W, ^& U ;;
9 |& H* e6 F- K; c# F$ O ;; Handle for all objects% B9 _3 Z( [4 M1 B2 R5 D+ U+ Z( X
;;
- n7 l1 ?! v5 U. i (defun set_tile_handle ()
" R1 U( V, |/ P# a9 b d4 v1 j (if (setq hand (cdr (assoc 5 elist)))7 X, X8 X1 l- s. a& \$ l
(set_tile "Handle" hand)* L0 N# }9 |/ A3 G
(set_tile "Handle" "None")
! O+ y0 G7 w7 ]6 \1 F* E )% G, ?$ \2 T' V
)
! b* \. F& q" O, I ;;
7 ~; T1 h* x1 I5 ?3 Z0 Z+ ^+ W$ A8 Q ;; Radius for ARC and CIRCLE3 c. L8 M( q4 ^& D' n& m
;;8 U2 B5 x$ L8 M
(defun set_tile_rad ()
& n% [0 t3 x& R2 d/ }8 h2 ~) P (setq radius (cdr (assoc 40 elist)))
' M, q7 u* k: W) k1 h0 y (set_tile "radius" (ai_rtos radius))
! }; `# I) W% A )
; t5 _+ m# B. D' X& U7 |. a% J2 I, Y ;;
" n! }2 W. j- Y8 l$ x ;; Start angle for ARC
9 A! i" U& `8 Y7 o7 M ;;
; ~* {( @4 A, m$ B4 V% a; h (defun set_tile_stang ()
: P' u% Y6 U3 ? (setq st_ang (cdr (assoc 50 elist))), R6 a7 ]# p& ~9 g
(set_tile "st_ang" (ai_angtos st_ang))
/ b8 m$ h0 _4 B1 N6 D) Y )
5 s% W$ D$ E4 N9 e2 }& l3 i4 j ;;
- N5 W8 W* p7 B9 j& y* ` ;; End angle for ARC
! C3 C v7 Z, m( G ;;; R4 I4 @. ]9 c! E% ]1 [
(defun set_tile_endang ()
L# b; u2 ?" h6 ` (setq end_ang (cdr (assoc 51 elist)))
j% i6 U3 q0 i9 {& p (set_tile "end_ang" (ai_angtos end_ang))3 K5 ^0 B$ e! d
)* M8 |# l m( v/ Y5 W
;;
, a$ k5 u: ^- F" F ;; Rotation Angle - Text, Attributes, Block insertions and Shapes/ j4 P3 Z5 g# m
;;0 [8 V# K4 g. F( Z# z9 v6 h8 W7 `" ^
(defun set_tile_rot ()
! C, J3 H9 T" {, c; x" d1 R {& V (setq rot (cdr (assoc 50 elist))), d1 r# m) ~& [1 e! x4 Y/ @3 Y- m
(set_tile "rot" (ai_angtos rot))" c) L& [' ~7 o9 M, S q1 z* p. o
)8 b+ G4 m) b U! n( x3 s
;;
6 ^! `& j5 Z+ U+ b, n ;; Height - Text, Attributes and Shapes
1 o0 N7 W& @& X" Z) H5 [0 W ;;
c. i1 T6 a" N& F2 u! U# x8 {+ j (defun set_tile_hght ()
- c4 X) d) D% ~/ e3 Y* ^6 c (setq hght (cdr (assoc 40 elist)))
$ b7 v, q% K# ` I, J: ]8 l (set_tile "hght" (ai_rtos hght))
) E' Y2 h, E x) Z9 [1 c8 d2 T, Z )+ l6 I7 a( T, e# K+ \. v4 s
;;
9 M( a( q. G* K4 S8 q9 | ;; Width Factor - Text, Attributes and Shapes' j* `: _1 l. C J
;;
1 v% v0 d' @( }& W, | (defun set_tile_wid ()3 M( Q' A1 P% u/ ^0 m r
(setq wid (cdr (assoc 41 elist)))5 c/ X. U7 ?) {8 O, P
(set_tile "wid" (ai_rtos wid))* q3 ]8 Z8 ^1 z+ F- J) V
)+ q& B3 K! T& v% _% O
;;) P% P K/ P2 J. t; X& u' U
;; Obliquing Angle - Text, Attributes and Shapes# [5 Z Y s# g' n% K) A0 @8 x2 p+ T
;;3 Q! E& M& Z: e! v1 Z
(defun set_tile_obl ()( M3 P! Q# C+ K% e. y
(setq obl (cdr (assoc 51 elist))), q7 u' r) s& P- Y% b9 ~, [' ?
(set_tile "obl" (ai_angtos obl))
0 P4 S/ n4 K% @, n/ k/ l )+ [( Z; X' {2 s2 n/ ?
;;) c0 A" p( u6 V0 u' ~! T
;; Text string
+ d' ~, Q& I* q" t ;;
2 a5 ~+ m! V+ i( c+ Q1 c0 r8 B (defun set_tile_text (); J% X) V2 `& O9 b
(setq text (cdr (assoc 1 elist)))+ f9 u5 a# E; d3 F$ [
(set_tile "t_string" text)
7 R+ L$ a4 V4 v8 N )
|- J! a4 k) Q+ G- {& A9 L ;;% T0 o3 b3 C+ s6 y J
;; Attribute Tag( r: K. r( x: N) X+ x+ y
;;# i5 w D9 \* Y9 ^% y9 q9 z. G
(defun set_tile_tag ()8 ?0 L; d# F( p' F
(if (= etype "ATTDEF")! A( h) b& n. y2 y' j
(progn5 H- c! m- Y D2 [
(setq attag (cdr (assoc 2 elist)))
; t5 d3 S, Q! W: b) |# w (set_tile "tag" attag)9 r: l+ p* G8 J" l" I! c
)7 M* C5 T e) C. a1 {* w% ?. z
), H9 v: c( ~: Z; s2 J: r' g
)
; W! K& e& I J1 D& {, Q! p ;;6 T: f3 s( f+ c+ m# E
;; Attribute Definition: c2 b4 a* W, _) P. j& J
;;- O7 [2 j0 B( O2 O% t
(defun set_tile_prompt ()
& q: V- s" `) {+ N# U8 R$ g8 W (if (= etype "ATTDEF")
! M5 A6 C/ N U& _: ~ (progn
8 a4 d4 U/ Y5 F (setq atprompt (cdr (assoc 3 elist)))
) e: q( g- l- e (set_tile "prompt" atprompt)
9 \( c* T" a1 g )- ? B K9 ^4 `- L% r( v' b/ B% ^
)& U/ l0 Q" w' H! A( z5 O& q
)
7 |1 r& h( K! v: a2 [. } ;;
; u- |% t6 D" ~$ [1 d) [4 Y ;; Justification setting for Attributes and Text. Initializes& [: x& H3 S9 s# J
;; popup list box, m2 R( m( ]" w/ Z' D3 T
;;
5 m, a- ]5 y/ `; ` (defun set_tile_just ()
- \: y9 r: \7 v. N' Y$ f8 R (setq ha (cdr (assoc 72 elist))) ; horizontal alignment- k& F6 i/ |; n, {
(setq va (cdr (assoc 73 elist))) ; vertical alignment1 {! H& t8 L6 d0 ^' h* @8 ]
(setq ha-prev ha)& b3 M5 f, g8 V% a. n( `
(if (= etype "ATTDEF")
r2 @8 V3 K8 d4 |/ M, P! o3 d (setq va (cdr (assoc 74 elist))) ; vertical alignment
% k) M: l" V) J/ [; V d7 @% X )
4 J' s4 ^7 s. \% A$ j6 d3 g (setq jlist
8 K1 d/ _! z$ {# w* `: {8 X. \ (list "Left" "Center" "Right"& U9 j4 D2 k% l0 o% s1 S4 }- g
"Aligned" "Middle" "Fit"
* s' u7 a8 G' r3 s "Top left" "Top center" "Top right"
* C A3 ?! `& X3 ~3 _# F% w "Middle left" "Middle center" "Middle right"/ |( Y- L* R3 \* z) D& l5 s
"Bottom left" "Bottom center" "Bottom right", V" @) a( h9 u! F6 l( k
)
Z9 J, X( g" u- Y )
1 F8 {; @! a1 n( ~! B (start_list "popup_just")7 R" d/ t) Q7 ?& `+ y; O; C& H
(mapcar 'add_list jlist)
7 r/ L; X2 x- u& A' Z( P (end_list)
, B8 ?+ _' P0 N0 t" t6 H, ? (set_just_idx)
0 R7 x3 j* f) F& U% T& h (set_tile "popup_just" (jlist_act just-idx))
5 G( h: s' g, x8 O8 I; X( h2 c2 K: n ); e: Y. Q7 j! f/ y. v$ w
;;
# n2 @- h9 S+ v% u. t, n ;; Style setting for Attributes and Text. Reads symbol table for popup list) `$ D5 D% x$ u" L, y
;; box. x/ w8 s& w0 r3 `2 r6 e$ v0 W
;;
+ R/ A" m+ n" E4 Q% O" L) ^0 Q# d (defun set_tile_style (/ sname style-idx tlist) h# ?+ v; u# k! t" m
(setq tlist (tblnext "STYLE" T)
4 c6 E9 y3 Y$ f5 F slist nil)* u- R a1 V" w7 W/ w9 m
(while tlist+ a8 R H/ Q) J( s4 n
(setq sname (cdr (assoc 2 tlist)))
: c. b( M4 G) I2 @6 j1 @+ M (if (and (/= sname "")
3 v ^+ r' ]% T C% u+ d (/= (logand 16 (cdr (assoc 70 tlist))) 16))
' g; B; `- X: i) J% \9 K3 u (setq slist (cons sname slist)))5 Z3 \! L; M+ h7 t: A4 ?
(setq tlist (tblnext "STYLE")))2 }- ^; S5 Z, c/ a
(if (>= (getvar "maxsort") (length slist)); z E# ]; i/ h$ J a: a0 n6 b
(setq slist (acad_strlsort slist)) ; alphabetize style list0 g' n b1 _" w4 W X5 f
(setq slist (reverse slist))) ; or reverse it to put it in DB order- G- r$ _' X2 A+ X8 a) \
3 m8 H/ ~1 b( |) F; P3 r$ |( q
(start_list "style")
1 @: G0 Z: y: q/ L, n (mapcar 'add_list slist)
7 t* D& R- u, i5 Z- W0 I (end_list)
" m- R7 \8 R- ~) |/ w% U! b' D' ~ (setq tstyle (cdr (assoc 7 elist)))
4 c) F7 P, q! X" M% J3 s (setq style-idx (getindex tstyle slist))
( ~3 w. G; L& i9 n, ~2 P (set_tile "style" (itoa style-idx))+ H* f R* l# U" Z! U
)
$ y, f) d; M% T- B5 S ;;
) e9 b4 i7 G1 p4 X: I! f ;; Text and Attribute setting - upside-down, backwards/ _3 s5 m) x9 D! a8 O% x
;;
$ V* U3 R( F1 t9 W# {) q. d' [! s (defun set_tile_bk-up ()! m# H4 K I* o8 a
(setq bk-up (cdr (assoc 71 elist)))
! q0 C: A, [9 J) F3 [8 X (if (= (logand bk-up 2) 2)
& P9 r) Z; K( j: s% f; W( D (set_tile "bkwd" (itoa (setq bkwd 1)))9 q x0 o8 x3 i, D o" N+ w' K
(set_tile "bkwd" (itoa (setq bkwd 0)))2 y2 N$ G; V( P2 S4 g% M
)# C6 T/ r9 k# `3 @6 Y+ I% ]
(if (= (logand bk-up 4) 4)% [% ^7 d1 h# g( P) ^, o. ]
(set_tile "upsd" (itoa (setq upsd 1)))
% Q! ^, R7 z/ ~5 X' m. w# _ (set_tile "upsd" (itoa (setq upsd 0)))6 b& a1 V2 e0 O& W
)
# R: J0 C# B) J- `( V$ e. X )6 N3 ^( H$ `1 u V' G
;;& U5 y& N0 \3 h2 L' [' }
;; Attribute setting - invisible, constant, verify, preset
* E- q9 _+ k+ T, o- \ ;;$ H" G; r+ Y3 c5 v/ \% L
(defun set_tile_icvp ()' p6 H6 m7 S! c( e' ?' y
(if (not (setq icvp (cdr (assoc 70 elist))))
% h0 N# ]% ^6 A, A( ^. q: `" t (setq icvp 0)- t b# \( B0 d9 \2 R% t& ]
)& J. }9 i3 v7 @( o3 I) e9 y
(if (= (logand icvp 1) 1)
# b1 z' F% h3 ^ (set_tile "inv" (itoa (setq inv 1)))
/ j- Z) p) M; }! r (set_tile "inv" (itoa (setq inv 0)))8 m/ c9 T, R1 k0 L! ]. B+ T
)# E9 p, W7 u3 q- g8 R% ?
(if (= (logand icvp 2) 2)
" d, j5 J8 s0 Z( X (set_tile "con" (itoa (setq con 1)))
( r$ Q) Q t; j) H5 U: O; @* {' x! N (set_tile "con" (itoa (setq con 0)))
! U1 N' q* T0 E$ w, h ), e0 i* M6 D9 j
(if (= (logand icvp 4) 4)
4 x `& p1 B; Z+ u* G$ P (set_tile "ver" (itoa (setq vfy 1)))" Q2 h3 O+ c$ l0 m" M3 L, M+ B
(set_tile "ver" (itoa (setq vfy 0))): X3 ~! M0 p# C8 v6 a% Z
)
) [/ u h L8 }3 \8 F* M (if (= (logand icvp 8) 8)
, l! ?1 v0 [& a9 @ (set_tile "pre" (itoa (setq pre 1)))' c* Y/ z/ g0 U" |7 F6 {; M
(set_tile "pre" (itoa (setq pre 0)))
. O4 j4 ^+ j) Y: P9 c )
( T9 Z2 A% M& s7 y& a) M )6 N( ^# a2 R6 O% v! z+ m! q" m
;;+ g* S2 q% i" M; Y7 i
;; Scale factors for block insertions4 N* t# X8 S H
;;, {2 o& E) v5 q) k2 ]) t
(defun set_tile_scale (/ temp)
6 J: u! _( P9 V; G/ @. l2 P3 H (setq temp (getvar "LUNITS"))
; j9 B% }! G- n1 _ (setvar "LUNITS" 2)
; |; P7 t9 z* z% F* i (setq xscale (cdr (assoc 41 elist)))
$ l2 v0 \" Q1 s& Z. }1 A (set_tile "xscale" (ai_rtos xscale))+ H) L E+ k/ a
(setq yscale (cdr (assoc 42 elist)))
5 k+ t6 P, F( z4 }8 e (set_tile "yscale" (ai_rtos yscale))
- [5 l' s0 j" Y (setq zscale (cdr (assoc 43 elist)))
# [8 ?7 q% t+ S) {( x; n5 q (set_tile "zscale" (ai_rtos zscale))
U, `% }* F2 K% u9 y$ K3 T (setvar "LUNITS" temp)
0 o! Y2 m% @$ _+ q3 G# \2 R )
* ~9 o% u9 y" ?) K: h- t! G ;;/ R- B# X# B) P4 @0 _$ M- J
;; Rows and columns for block insertions
; v+ ^# ~. @6 L# z7 g5 @# N ;;
$ @0 }; s6 w. C& K3 ~$ v (defun set_tile_rc ()
- u1 }% P% j) W/ I4 a2 D8 U (setq columns (cdr (assoc 70 elist)))) l- E% ]+ l6 L. t s
(set_tile "columns" (itoa columns ))# [! R+ W6 y% x7 |- G; G
(setq rows (cdr (assoc 71 elist)))' Q) ?1 y& j: ^ ~% z9 E4 G- }* P
(set_tile "rows" (itoa rows))
0 g) {2 |9 x2 B' r0 p5 [! [& W (setq col-sp (cdr (assoc 44 elist)))- Y7 _1 t& L+ t1 {) ^4 f" o
(set_tile "col_sp" (ai_rtos col-sp))
. }5 J9 n" X, X (setq row-sp (cdr (assoc 45 elist)))
p( j* o9 Q, w$ x' K (set_tile "row_sp" (ai_rtos row-sp))2 w6 p/ k- I6 a3 @3 q/ q: j
(if (/= hasclip T)
* \* Z" j8 Y9 ?) j, x) P" B/ { (mode_tile "xcliponoff" 1)
$ B& r+ S: i/ L7 P2 M (set_tile "xcliponoff" (itoa xcliponoff))
) ]2 x4 P+ X$ G, V ). n3 ?- g2 g6 Y/ P8 }6 h2 h
): e5 z# w3 K9 R( G4 V
;;
; I9 x3 U9 q/ d& K( y ;; Invisible edges for 3DFACE; f2 V( _) |3 |6 R' d
;;! F s7 x1 e$ m& K b8 J
(defun set_tile_edges ()/ x/ @, f! \! ~; w) H
(setq f-vis (cdr (assoc 70 elist))), s8 `( g' V8 _% ]
(if (= (logand f-vis 1) 1): y. a9 }* ?, i* n2 {8 \- o: |/ n
(set_tile "edge_1" (setq edge1 "0")): O4 E% l" k7 I! F* ?2 e- l
(set_tile "edge_1" (setq edge1 "1"))
9 E- a3 T9 W3 z" }4 W )
7 b# B2 a! i+ Y (if (= (logand f-vis 2) 2)$ H4 x- l C, y! U I2 R3 @
(set_tile "edge_2" (setq edge2 "0")); c, m2 R0 @& V2 v5 y
(set_tile "edge_2" (setq edge2 "1"))- i5 E) V; x! j T: U, n
)
0 \& _5 d0 J* ]0 ? (if (= (logand f-vis 4) 4)
g1 Z. a# w; N6 H1 w" u (set_tile "edge_3" (setq edge3 "0"))3 S4 X; f% j5 W* ~: c0 _/ b
(set_tile "edge_3" (setq edge3 "1"))
6 c7 Y8 j4 E- O" H0 ` ), t: m) _" y) u. G1 B' ~ U5 z
(if (= (logand f-vis 8) 8)
- I& V2 y; b! \$ C1 } (set_tile "edge_4" (setq edge4 "0"))' y( L7 b- o' C, d' \( Y
(set_tile "edge_4" (setq edge4 "1")), t# c0 W0 L6 N: y$ {& Q
)7 L1 |' L9 ^4 D5 e# r( M) j
)
3 I7 _8 u4 @2 v5 F+ W ;;
8 @; \- I' X+ W' B# p9 e! D& P9 x+ W ;; XYZ Point values for polyline vertex, C. o( N% a8 r' T; u: Y( M
;;6 E) R& j" A L
(defun set_tile_vpt (ptype)& X% ^, j4 g- x4 B8 g) R
(if (= (cdr (assoc 0 vlist)) "LWPOLYLINE"); h. ^) l9 L8 e( }( N d5 [
(progn
: ]( {* p' C* t: ` ;; ctr is 1 based, vertices are zero based.
/ b1 _9 E4 l7 X6 T* G7 y! E (setq vpt (cdr (getLwVert (- ctr 1))))3 _, d) V* e, H: K
(set_tile "xtext" (rtos (setq x1 (car vpt))))0 t9 g; z1 p* a1 i% F; p. L1 S
(set_tile "ytext" (rtos (setq y1 (cadr vpt))))
' n1 m+ I3 |" W, A) \0 A" j% Y (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
1 d4 B2 q8 G8 |- z )' C2 W' c6 B9 F( F5 q7 o6 i
(progn
9 n3 @; x, }' b: L9 D! `! Y& c (if (= ptype 0)2 _! J8 V5 C/ v9 Z n! ~
(setq vpt (trans (cdr (assoc 10 vlist)) 0 1))& f7 V+ W( j* y5 z$ w
(setq vpt (trans (cdr (assoc 10 vlist)) ename 1))) e/ `# a3 T/ P+ ~
)8 y# P- h! E! w6 C. B
3 x7 r6 i% o. _& z: R (set_tile "xtext" (rtos (setq x1 (car vpt))))# P3 n: ^3 s3 h2 O( F
(set_tile "ytext" (rtos (setq y1 (cadr vpt))))
6 K/ c: P) J# e: s (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
9 `- u9 V- y0 A! g9 d1 `) [ L )7 E* {1 m& X* T
)) A7 n( ?! X _/ J/ o* O" r/ ^
0 A& a2 K9 R% Q% [: _! s )
2 P1 s8 j& R/ H3 a ;; This is the equivalent to doing an entnext on the heavy weight! T" S; U2 D5 p; ? E4 ~- P: m# j
;; polylines. The hard coded '4' below allow stepping over the
) F2 i( G! y2 Q1 G ;; 40 41 and 42 group code information. The while loop finds the
% Z: t3 l/ |& L7 L( Z l2 F7 d ;; first vertex which will be used as the starting assoc in the4 ]0 r+ ]/ S# x
;; call to nth.
2 N w3 `) l; ~0 v. U, G ;;/ A6 v. Z- s7 P% u- K2 ^
(defun getLwVert (tmpctr / count tmp)
; ]! d1 x+ o( Q& ]. R. I (setq count 0)) ~5 O0 g6 D4 k1 N6 A C
(while (/= (car (nth count vlist)) 10)4 i9 E" I2 e7 Q
(setq count (+ count 1))# c* x6 v$ |% o
)
# F% C8 `- \( [% ^9 {4 H ;; If the counter reaches the number of vertices,- s7 k- M2 i/ b2 L" f/ @* M# \& A* n
;; reset ctr and tmpctr to zero again.! g0 ?' B" X3 J1 T5 Y% z) x
(if (= tmpctr (cdr (assoc 90 vlist)))) k" j1 O+ a: P' ?! u% G1 G
(progn% n3 i5 k' ~2 ?& D3 |
(setq ctr 0)* {/ F9 N5 z" ?6 e- n
(setq tmpctr 0) L: E2 E% g5 ~. G* f0 L" S9 {0 { H
)
' \4 ~& k0 T3 Y% w )! }/ @ d U [7 j
(setq tmp (nth (+ count (* tmpctr 4)) vlist))2 W( ?" T% ]0 k8 ?: z6 G' J
(setq tmp (append tmp (list(cdr (assoc 38 vlist)))))8 B% k% \9 Y% Q$ |9 B
(setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
+ o7 h# Z1 M, i Z8 u9 Y5 g (setq tmp (cons 10 pt1))/ T5 A2 l" z/ x
(setq tmp tmp)
' A+ v/ S$ ~! h6 q) z- r4 `% N, K ^9 n1 g )
3 r- B9 v8 i! z+ d4 D- T s& p ;;
; \/ B% |* E4 F2 c# l ;; Set tiles for Spline properties. If the spline is rational then we ?' R' G. U) O! g
;; need to display the weight values of the control points, so set3 \6 l+ R% Z" N' @' F8 ?" Y
;; flag to 1., W0 K4 n3 w3 j& f' F( X
;; 1 = rational spline/ ]% U& P& M2 {- w. A
;; 0 = non-rational spline1 u- b2 i& n- z1 O1 h# ~+ C
;;
. S; C' P) ]+ } d# \ K3 A# y" @ (defun set_tile_spline_props ()2 j, ^7 X/ H2 x' j1 [7 ]* a9 ~
(setq rational_spl_flag 0) ;; initialize rational spline flag7 b$ G. F. y/ C" K2 X2 \
(set_tile "Degree" (itoa (cdr (assoc 71 elist))))
! q0 k: H4 B9 k7 N1 J, ?' u* V0 ? (setq bit70 (cdr (assoc 70 elist))): X" j6 c# P, A5 F- z6 m) g& s
(if (= (logand bit70 1) 1)$ s. E4 N; \9 K; O& g% r8 ?
(set_tile "SpProp4" "Closed")
& K- U: x; m2 D4 Z$ y6 j4 B (set_tile "SpProp4" " ")
H: z- D" G; h. M; s5 ^: J/ }2 Q: V )- ]. @2 R8 V5 P- u+ z: b- C
(if (= (logand bit70 2) 2)- J1 r/ D# w5 ^$ W \5 |
(set_tile "SpProp3" "Periodic")
% o; W; Q( M5 i$ P+ z (set_tile "SpProp3" "Non-Periodic")9 I5 i7 p, u2 h M. m3 ~, s
)
|$ w1 g5 O0 @1 O (if (= (logand bit70 4) 4)
# {' t2 Y) X9 W" {& F! m" S0 y$ i (progn* h1 x0 `, T: u' k
(set_tile "SpProp2" "Rational")
% p* j0 Z. O/ H7 ]- p n/ v (setq rational_spl_flag 1) ;; this is a rational spline
3 o1 W! x* F. [; ? )
4 K6 U, @+ v9 E& ?1 T6 ^ M (set_tile "SpProp2" "Non-Rational")
+ U6 m0 H7 `* J a" }4 \; S )5 p! G& D+ n# X8 N; A2 y1 m9 P) I
(if (= (logand bit70 8) 8)4 W5 J! X3 a3 q1 b
(set_tile "SpProp1" "Planar")
% Q) ]8 n4 T) N& U (set_tile "SpProp1" "Non-Planar")* B$ y; A8 k2 o! T8 j( @$ {! [- T
)
. }: t* l8 z! ? (if (= (logand bit70 16) 16)
: i4 W9 P' f3 U6 K( K (set_tile "SpProp5" "Linear")
6 f4 C& j% A d* Y (set_tile "SpProp5" " ")9 O5 M& t# p" {- M! }
)
" c: H2 G. V: a" W4 Y8 f# k )) r' T1 G1 t$ G5 Q' b6 g; o) L
;;3 U q2 q' L6 {
;; XYZ Point values for spline points7 Z7 v# T* M/ z* Z- U
;; Need to account for WCS/UCS
: h# d9 d9 C V. K2 b0 \# y ;;# t$ D, p5 H! E) `( c9 R
(defun set_tile_cntl_pt ()( h% L* e( w5 k" [" B; i3 m
(setq cntl-pt (cdr (assoc 10 elist)))
! x8 |/ r5 e6 h8 r5 ]& W4 O, z (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
( A. M; j9 ]) a3 ~( c (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))1 T2 e9 Z) C) D5 I- l
(set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
8 o0 B! F$ b- F Q- l+ ^/ e (if (= rational_spl_flag 1) ;; if rational spline
& ^! I9 Q3 t2 P& s0 u) T; F (progn ;; show weight6 \/ r$ H/ T" ^) ^1 |; W+ N$ _
(setq weight (cdr (assoc 41 elist))): n; y9 T$ v' z5 J& `' D
(set_tile "weight" (rtos weight))2 q; ?9 G$ X. T+ t* b
) ;; else; @: _6 {' h: X) a( o" `
(mode_tile "weight_text" 1) ;; disable weight field: c8 z! E! Q! ]$ K* u$ [0 ~
)
1 E( Z( y9 v7 F3 k- u' y )
" @. n# g$ f6 d/ N2 d) y8 ^7 ~ ;;6 a& f5 F. w( G; \" C3 U7 p
;; XYZ Point values for spline points' M: Z5 Y+ d. G6 z" J
;; Need to account for WCS/UCS3 T/ I& ~+ l G" I- X% U: Q
;;; a; P# @' h& l/ J9 |" C
(defun set_tile_data_pt ()5 M- w& v& J* O% f
(if (not (assoc 11 elist))" }3 |* E- k5 v
(mode_tile "data_pts" 1)
7 y' L% d n* u; q& G$ H (progn
, K8 `) \1 O& x n: i9 _/ O& { (setq data-pt (cdr (assoc 11 elist))): p7 f; h6 F+ f5 F& ^
;; display points with current precision.8 d8 R# i4 U3 T" L( v0 i
(set_tile "dxtext" (rtos (setq x1 (car data-pt))))5 K0 J5 Q" ?8 t! v
(set_tile "dytext" (rtos (setq y1 (cadr data-pt))))+ a( p, ~$ b P1 d1 G# X# r. ~6 X
(set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
) t& [7 Q1 F: @/ Y% U )
1 S. L- n" n( s0 i$ h, Q2 x! c )/ o* ^ f" `% d( l% o1 p: ]
)
* |& N$ w1 l+ I ;;
2 ]# f- c, m+ B ;; Fit curve, fit spline, or smooth spline surface setting
4 B! m& G9 J# K k6 y ;;
4 B6 m7 z( j6 Y% Y, c3 d. z" a& S (defun set_tile_fitsmooth ()5 h- ]4 E. q" q3 ?
(cond# @3 s; W' ^3 z! L9 K
((= (cdr (assoc 0 elist)) "LWPOLYLINE")! H; N' S" |3 J: \
(set_tile "none" "1")2 |1 E5 ~: j0 t
)' q! V$ e0 P, F, I* l/ x
((= (logand bit70 4) 4)
% M; [0 B! F2 M, E7 y (cond
0 o* h7 o$ A2 c. z. u ((= bit75 0)* p" W! M, B4 s) m. R! D6 ~
(set_tile "none" "1")
0 o! g" r3 i7 M- i) K3 B0 \ (setq spltype 0)
1 q" ?, I" [8 p1 y7 q, @2 u )/ G8 S6 D+ ?$ J( U Q
((= bit75 5)$ t- T$ ]. K" X% u8 K
(set_tile "quad" "1")
7 X2 b! P' }" p5 S2 ? (setq spltype 5)) A6 \$ c2 w: X) g! n5 E. b2 b3 f4 ~' B
)
H. [( v; I9 ~5 |7 P1 j+ `# J( m ((= bit75 6) r9 P U: m' L! q/ x
(set_tile "cubic" "1")' b* P- \. j( b, S6 D
(setq spltype 6)! s0 T9 Q. h* c; u' `
)
! K& B& P9 k. @" s( p! ` ((= bit75 8)" M+ O0 [) D1 _* f
(set_tile "bezier" "1")
& J/ Y6 l; d6 U! ~% d- a (setq spltype 8)# Y9 r" s( }9 ^8 F- ]! T, ?
)
4 m4 J0 z' l' B; ?: n* i9 H" J1 z/ C )3 b" b& n3 u1 {2 m, O' N5 q! V
)3 Q4 O! R* f; V4 K6 K
((= (logand bit70 2) 2)8 d1 a" ~. a% _
(set_tile "fit" "1")1 U0 w1 {1 k6 n) f& _. P
(setq spltype 1)
+ h; s/ O$ T3 W [: O6 K )2 n" a6 w, k9 u
(T (set_tile "none" "1"))
# f0 S* P# v& p8 N7 V& d )
* _. }0 I! ]' y. `' j! d0 D: v1 N- @3 S )/ Q. Z, a5 E& @- V' ?, `8 j" l* B2 `
;;6 \+ V7 U- {! p' y e
;; Closed or Open mesh and polyline setting
' Y) H& g, L7 U/ y( [2 R4 N. Y5 Q1 E ;;- l/ b5 `4 Y1 g. y2 H+ E
(defun set_tile_closed ()
5 h* ~& A$ l5 z( p# f1 Y! ]6 v (if (= pltype "3D mesh")
/ t6 F: s8 d7 b" q, a1 c$ Z (progn1 @( D9 r+ Q: ^! D/ J& N r
(if (= (logand bit70 32) 32)
, {/ ], s* o0 V) N/ A3 Y (set_tile "closedn" (setq closedn "1"))
2 n f g0 s" ]* q& S' d' R1 t (set_tile "closedn" (setq closedn "0"))
% \9 d" y- ~. A; g; b0 q )/ G m O" }3 ]9 p0 C& V
(if (= (logand bit70 1) 1)
& r6 ?" i2 C4 j+ R# E (set_tile "closedm" (setq closed "1"))
6 v* I3 W6 r' y6 A/ V2 E (set_tile "closedm" (setq closed "0"))
9 o" Q- m5 P: } ): I: {, @/ f' i% c4 N- e) x
(setq old-closedm closedm old-closedn closedn)( Q4 K; q$ b6 b5 ]9 r) u
)
0 j5 x) B* {% d/ Z1 Y+ q1 M6 n )
+ L+ Y: c6 Q" g6 t (if (or (= pltype "2D polyline")
- [! | q" e4 q( j8 ^* V7 J (= pltype "3D polyline")
. D3 X0 U Q& K# {* A: V2 b )
9 t/ S+ k' f2 c! k. H# y& ` (progn8 ~" j0 d3 ?3 M& Q4 b5 A. I4 `
(if (= (logand bit70 1) 1)
1 u* ^+ b9 b7 S+ Q, l4 J (set_tile "closed" (setq closed "1"))5 a. a2 m6 T+ C T. ^# ~# m
(set_tile "closed" (setq closed "0"))
2 W; M* a' F& y4 ] )
. W/ [/ D( ]7 R$ P! j6 I9 ~1 C, [ (setq old-closed closed)
- ]: H/ p% d D )6 P2 Y$ d( o M" \; L( j
)
3 |8 ]# T, ]6 b) A! n7 l4 y0 R )4 P& u; q! P* Y& W6 q; ^# U
;; Set common action tiles1 G O5 O2 x( y3 A; y, ~# M
;;
: F+ S1 B, Q2 f1 u0 W' M7 } ;; Defines action to be taken when pressing various widgets. It is called
+ M7 p, ]$ b2 \2 m2 g0 [ ;; for every object dialogue. Not all widgets exist for each object dialogue,$ s, f3 V; v% T
;; but defining an action for a non-existent widget does no harm.
1 u& z6 E2 F4 X* P: O (defun set_action_tiles ()
* y$ [3 r4 `! i (action_tile "cancel" "(dismiss_dialog 0)")
# S) }3 }' M+ V5 I (action_tile "accept" "(dismiss_dialog 1)")
0 y# L. o- F4 f7 h6 }9 c' z (action_tile "help" "(help \"\" help_entry)")
# C4 [4 H# e; |! o5 F' H% _! T (action_tile "b_color" "(getcolor)")7 |0 {' g7 _3 h1 d+ p& h' J
(action_tile "show_image" "(getcolor)")
0 e' R7 s! E |+ H. K9 L+ D (action_tile "b_name" "(setq elayer (getlayer))")
' O9 d2 v3 N# ~0 F$ E5 G0 ] (action_tile "b_line" "(setq eltype (getltype))")
+ f+ A- Z( _/ l, |8 s6 i: Q (action_tile "eb_thickness" "(getthickness $value)"); j3 r( M. b1 ~+ r/ u
(action_tile "eb_ltscale" "(getltscale $value)")$ ?4 h1 \. m Z6 R
6 |- i( G q& _6 H0 l (action_tile "pick_1" "(dismiss_dialog 3)")
; S6 ] K; W7 V6 T% F c (action_tile "pick_2" "(dismiss_dialog 4)")
+ V3 E9 O. | {/ Q& B0 q, G (action_tile "pick_3" "(dismiss_dialog 5)")# N& Y% F- @2 ^8 v* ]
(action_tile "pick_4" "(dismiss_dialog 6)")" l$ q9 U8 U0 x/ ]% E
(action_tile "x1_pt" "(ver_x1 $value)")5 Z3 K' I5 v1 m$ R6 a( X0 z
(action_tile "y1_pt" "(ver_y1 $value)")
4 R e0 w& q5 y, s% b6 u (action_tile "z1_pt" "(ver_z1 $value)")
7 c! s$ Y. d# M1 p1 Q (action_tile "x2_pt" "(ver_x2 $value)")3 Z! M6 T* D# H# p# v1 t, [
(action_tile "y2_pt" "(ver_y2 $value)")6 o3 u; e' Z6 [& y& Q; |0 M
(action_tile "z2_pt" "(ver_z2 $value)")
: M; a9 ?1 v' S8 E/ j% R4 W (action_tile "x3_pt" "(ver_x3 $value)")
% |3 E3 V8 B# `+ f# l (action_tile "y3_pt" "(ver_y3 $value)")2 y. P9 [# \8 ~8 @
(action_tile "z3_pt" "(ver_z3 $value)")
3 \8 y* y u; \# S: [ (action_tile "x4_pt" "(ver_x4 $value)"): i U6 `+ A' x3 w' x; ? F8 G
(action_tile "y4_pt" "(ver_y4 $value)")
$ {3 r; B9 C& o% ?6 _! y* A; A (action_tile "z4_pt" "(ver_4 $value)")
5 h* b' y9 Q6 \- o2 P0 p( c& |6 y; u+ d7 D
;; Action tiles for Xline & Ray
4 P3 g0 }7 W- E) [ V0 r (action_tile "xline_x1" "(ver_xline_x1 $value)")
, F2 I% h' J0 E! q# r (action_tile "xline_y1" "(ver_xline_y1 $value)")3 P7 e# k1 Y+ b i
(action_tile "xline_z1" "(ver_xline_z1 $value)")
3 X9 F6 r0 \% {7 {5 ~ (action_tile "xline_x2" "(ver_xline_x2 $value)")3 X: _) \. _; N! ] |" `
(action_tile "xline_y2" "(ver_xline_y2 $value)")* w) K: A+ q% I) i. ~* r# _
(action_tile "xline_z2" "(ver_xline_z2 $value)")
0 ~9 b0 N! o0 t# D* T! O, P9 J5 U% R# w' \& q- E3 k
(action_tile "edge_1" "(setq edge1 $value)")
. g6 r0 I- ?) |. [; Q (action_tile "edge_2" "(setq edge2 $value)")) R' t+ }9 Z; v1 g4 \" `$ u6 t
(action_tile "edge_3" "(setq edge3 $value)")
+ J6 Z% r: \3 B5 M% A (action_tile "edge_4" "(setq edge4 $value)")/ C0 D8 Q; U( }- u
# s! b; b% ^ Y
(action_tile "radius" "(ver_rad $value)"): i7 F- N! N1 E2 w! r9 d- F& d
(action_tile "st_ang" "(ver_ang1 $value)")/ Y6 L* j) i5 a' v# n
(action_tile "end_ang" "(ver_ang2 $value)")& ^8 r' a8 s; r U5 p
(action_tile "end_eang" "(ver_eang $value)")
* ?. O D& C; E _% v) N9 F- p; ] (action_tile "minrad" "(ver_minrad $value)")
! b- l) V# A h; [ (action_tile "majrad" "(ver_majrad $value)")
3 b: _- r( E8 h b% O3 U
^" k: |) P2 T, G# g (action_tile "xscale" "(ver_xscl $value)")3 c1 Q& r& ~/ |7 }4 Y f
(action_tile "yscale" "(ver_yscl $value)")
1 x! O6 T0 C9 u$ N3 Y (action_tile "zscale" "(ver_zscl $value)")
; n0 x! A+ h" b5 S- n: ~ (action_tile "rot" "(ver_rot $value)") m" v- E6 ~- C! e: ?5 O# z
(action_tile "columns" "(ver_col $value)"): K8 k& ?0 \7 H, U
(action_tile "rows" "(ver_row $value)")
7 s, m* i6 O0 x7 F' D" U (action_tile "col_sp" "(ver_colsp $value)")
5 C5 A4 X* i% N (action_tile "row_sp" "(ver_rowsp $value)")' A( J& R! x5 y& b( `/ V
# O6 U0 e# o' N( B0 D1 N
(action_tile "hght" "(ver_hght $value)"), l# T* }* I% _' s+ N# g5 U- _9 q
(action_tile "wid" "(ver_wid $value)")
$ {, P$ P$ Y$ G8 P+ I* C (action_tile "obl" "(ver_obl $value)")
; J3 e1 B) |9 L/ f (action_tile "style" "(style_act $value)")
5 C6 C2 X! b5 K `
6 Q0 D& Q% E# k+ o (action_tile "t_string" "(ddgettext)")' d1 f6 O# x" |5 Z2 s9 a f
(action_tile "tag" "(ver_tag)")4 y3 b2 O8 m* A6 i- N& `+ {5 f
(action_tile "prompt" "(ddgetprompt)")$ O+ s/ B( B9 }, [
(action_tile "bkwd" "(setq bkwd (atoi $value))")7 j% F8 g2 Q8 A7 C+ b
(action_tile "upsd" "(setq upsd (atoi $value))")
( N/ I; o$ k5 P8 N3 o# u/ o2 Z+ O (action_tile "inv" "(setq inv (atoi $value))")3 {% q7 \) Z) C
(action_tile "con" "(setq con (atoi $value))")" x6 U3 K4 H5 z+ I4 C A" @
(action_tile "ver" "(setq vfy (atoi $value))")! ^3 b; c/ ]+ ~* E( t. X
(action_tile "pre" "(setq pre (atoi $value))")4 W# T1 L$ M. p4 t2 d
(action_tile "popup_just" "(jlist_act $value)")( ^$ O* Y2 J* v$ v( r
% c- h5 u8 E; i0 r: t (action_tile "closed" "(setq closed $value)")
- U! E; v* u( l4 ?, x (action_tile "ltgen" "(setq ltgen $value)")5 U0 G z+ V) c. F" z! O l
(action_tile "closedm" "(setq closedm $value)")
. @( | S( P# b+ y# J/ ?. x4 Q (action_tile "closedn" "(setq closedn $value)") S% \8 Q3 N" V I- k8 J2 m
(action_tile "next_v" "(next_vertex)")
4 X, A# H, U! ^+ H0 k+ ? Y5 O0 M (action_tile "xcliponoff" "(setq xcliponoff $value)") |6 |* W* T: V. v( w
" h! ]0 X# o: \* w+ D (action_tile "next_cntlpt" "(next_cntl_pt)")
0 A& y8 p! r* b8 `5 Q (action_tile "next_datapt" "(next_data_pt)")/ D7 M3 W8 }, U: o/ S+ A, z) M
' f3 N# J: X1 A" v* D
(action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
) V$ Z) C' O. w, K (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
3 c, T( D& ]% u, u* J( k8 h% X! n- a2 H (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
& |* G5 ^! B$ ~9 v (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")+ b/ B4 }% F3 A1 W( ]: m8 Y
(action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
# Q) T9 B W+ u
) a# l( l) L& ^/ l (action_tile "u" "(ver_u $value)")' c: V# i8 y* \) {# J( f
(action_tile "v" "(ver_v $value)")# \. V" Y6 Z+ m$ a
)$ d2 F3 _8 [4 X7 W' N- x6 `: g
* b! L. A" p: z# t) B6 T; a- ^
(defun ddgettext() v8 P; K+ u9 w, Y0 y+ H& r& ]
(setq text (get_tile "t_string"))) g# v7 G* G6 X6 w
), x, l/ X# k3 r7 h. s: C& ?
# U! i8 |) B5 g5 G3 a8 |( ?* x
(defun ddgetprompt()
2 L1 ~+ D" o% b (setq atprompt (get_tile "prompt"))7 S& y; E, n: I* P
)0 a, D, @. @ P2 _: D, x
+ C7 w1 B+ |& d# \6 I# V2 f
;; As OW doesn't support disabling of individual radio buttons within% H" T- d/ ?; E( [- a: R
;; clusters, a check must be performed as to the legitimacy of the
% [. v- |% X& u8 |. [- t ;; button pushed and reset if necessary.
4 G6 K6 b& K, a% r2 R9 | (defun radio_gaga (pushed)
9 t% W& M: Q+ r! `/ I5 z/ z (cond! M+ q9 B: S- b" w! ?; _2 Z
((and (= pltype "3D polyline")2 q5 I! s$ _8 x& k; _
(or (= pushed "fit")) B+ C/ Y5 N$ a% g6 o, P+ C
(= pushed "bezier")
" K6 r9 j- S0 {5 c )
5 U/ N4 P7 w( r" C4 i8 P$ f )
2 ~& C( N+ m# G- [% l/ a& \ (set_tile "none" "1")
. @5 U* C: ?* ^7 J nil. T+ L. q: {. W" d
)& v3 {, ?! e; t
((and (= pltype "3D mesh")9 c6 O& K8 g) y& ^- r" f
(= "fit" pushed)
1 s8 q9 D- G+ \* ~& R- q- Z6 n )6 H* _9 f9 D' Z; Z. R; [- L
(set_tile "none" "1")& r5 n& h% S# ]2 Y. `0 P* T
nil
- P: _* @; S5 [+ i4 C ); m1 G& D& e- N$ @- E* v6 A& d& E3 [0 ^4 y
((= pltype "Polyface mesh")5 z" ?" ~3 c" ?; [# a2 m2 Q, L3 w
(set_tile "none" "1")$ [' G$ z& f+ t5 I4 `
nil4 N2 c" F- `( ~! ]' j
)8 v1 m" l8 q3 h. N2 Y
((and (= pltype "2D polyline")- f/ w! Y$ D1 y! ^
(= "bezier" pushed)
+ V% P& N j2 w/ L* j0 |2 x$ ? )9 [/ b7 `( d9 K _4 G* v
(set_tile "none" "1")8 E4 f6 a3 J/ c# |
nil
" Z, B# |7 |/ s* A: O) h( F )
& B8 S0 M- A$ e' K, p8 G+ u (T)
8 i' m# Z( I1 e# L4 h" H )
- D# l7 w- L$ V0 q" F( ] )
) M* s6 ^+ G1 |* B ;; b6 e8 m( ^# k: ^0 g- k' H' R
(defun set_uv (type_n)
0 _6 K# S4 Y8 r (setq spltype type_n)
! C/ \2 M! r1 y (if (= pltype "3D mesh")" ]8 P& |6 X) J8 R; ?7 o$ Y
(if (= spltype 0)- S* H- F' e0 ]
(progn( h3 H* X+ Q" ] T1 [! \
(set_tile "u" (itoa (setq u 0)))
9 Q& g, p! k- a- h2 J (set_tile "v" (itoa (setq v 0)))1 D' A6 F: M, I3 C
)
+ ]. r% @7 ]/ `3 S" j (progn
1 z; N4 F3 y2 G6 T0 Z (if (= u 0)
' Y p* d( L8 i9 t/ Y4 J/ I (set_tile "u" (itoa (setq u (getvar "surfu"))))
/ J* D# Z5 \. D: s9 _4 m& v, Q )& T8 W" _4 {( u/ _1 R3 f T
(if (= v 0)
: W) v& ~% d; d7 v. B3 e (set_tile "v" (itoa (setq v (getvar "surfv"))))
- i7 H7 d( O. p# C1 m6 O )
+ x* l+ B/ `: [2 r! O( ? )
6 D+ C E% Z/ f3 L9 h7 d7 O0 T& P) a )
) f0 {+ H( A9 l: b7 E )% m" x( e: P+ A- ?
)
+ ^; n$ Q" p+ e8 }! t, k# M+ {; H1 z; D2 M
( \& x$ B( J- A4 y7 @0 Z ;;" B0 a. ?; `! T/ A* g$ e: y% G
;; Verification functions% M1 w5 o& P3 B/ d0 u- Y' h# Z% O6 k
;;
' e* u1 T8 e1 k. ?% w: l! Y ;; Verify distance function. This takes a new X, Y, or Z coordinate or1 k4 ]8 x5 U, a$ V' ?
;; distance value, the tile name, and the previous value as arguments.
# _5 G0 p7 y4 K( J$ r) {% F ;; If the distance is valid, it returns the distance and resets the tile.
' Y0 H- G( W5 W0 R ;; Otherwise, it returns the previous value, sets the error tile and keeps
2 ]3 D0 h: Z b7 b! X ;; focus on the tile. Shifting focus to the tile with invalid value can2 J7 t. u. ?# l1 F+ b9 W
;; trigger a callback from another tile whose value is valid. In order
) f. ~$ B6 {2 \' j0 c ;; to keep the error message from being cleared by this secondary callback,; c2 r3 `5 e$ V7 o' X1 z4 F$ }
;; the variable errchk is set and checked. The last-tile variable is set5 ]& I: I5 e% E' }" N! p4 ~
;; and checked to ensure the error message is properly cleared when the2 M9 h9 R) Y9 i+ t9 o" X+ v
;; user corrects the value and hits return.! \& ]0 O# L( G: T
;;
8 z8 T: R% C. b3 b; U9 X; p (defun verify_d (tile value old-value / coord valid errmsg)5 y1 w, _$ H3 y" f3 V" H% m
(setq valid nil errmsg "Invalid input value.")$ t9 ]/ e& |( N+ y
(if (setq coord (distof value))
* @0 x; a( @4 {5 N (progn
2 u- p% s! l M: V) p. m (cond5 F" D! {4 j5 l+ g
((or (= tile "radius")% y+ }% X3 v; O
(= tile "hght")
7 ~! b( D. h. j% S: u7 |* p" }, f (= tile "wid")
' q: A7 c& @, \; r) ~1 v- h0 O (= tile "majrad")
4 u6 ?6 Q1 Q# `; h+ o (= tile "minrad")) q5 T# \) O4 H7 b
(= tile "eb_ltscale")
7 [6 m8 w& o& T; o )% _8 b# W( S1 D. O; |* k/ J! X- X
(if (> coord 0)
# M+ N- @. ]7 ~0 c& R4 D (setq valid T); F& z! V6 G) @
(setq errmsg "Value must be positive and nonzero.")
5 j; S3 w l) q+ s' M )
+ t- l, q- K, t1 l7 {, |# f )7 ? I: o+ x' k
((or (= tile "xscale")
: [6 ~6 A1 n0 p- b1 f: B; W (= tile "yscale")
0 j# b# z- m& ]% E (= tile "zscale")2 A/ k# b$ c' Q
)
9 V# c- ~, }! r; i$ a (if (/= coord 0)
, r; a8 s/ s; i. U& J- _+ E (setq valid T)
( ]; x0 y) Z1 q$ a% I/ @ (setq errmsg "Value must be nonzero.")
6 K; P) Z5 K8 I6 R# r6 J6 l ); J) X' B+ y! e+ Q( e
)
* R( O" E0 F9 B' T (T (setq valid T))
* }; `# r) ?) S' o ), ~$ \9 p0 D/ y
)/ r" y# ?0 ?+ R' O% f; {4 m/ x6 ^
(setq valid nil). v9 l2 S+ v2 V% R) V7 c: F: P* g
)
- u% ^! u n/ S, l (if valid
" B$ F# b; i6 O0 m' Q# q% b (progn
7 T" h# m2 G: q# C& G (if (or (= errchk 0) (= tile last-tile))' X/ y% W+ b/ J; i+ y
(set_tile "error" "")4 M4 Y8 n F% {' q+ n+ Z
); b* S+ v* _7 E* y
(set_tile tile (ai_rtos coord))9 a$ M3 j1 a! S9 v2 L' |
(setq errchk 0)
/ e/ O* J- A5 R4 u u* G7 U0 E' \ (setq last-tile tile)/ W+ u: T( g! F: ^
coord
7 I. \+ w. `: X- M )
1 C; e3 Q% n- B U) k( ?+ C (progn# u6 f; l! p2 V! K+ P9 o
(mode_tile tile 2) ; Move focus to offending field" [ D3 _! t+ R# l1 ]3 o" W
(mode_tile tile 3) ; Select offending text S, `' d& Y) n9 ?, a
(set_tile "error" errmsg)& X5 e' a# g9 k2 @. F* i
(setq errchk 1)' p4 M4 ^6 z5 P2 _
(setq last-tile tile)
; Z P" h: h( L( b8 y5 ~ old-value# L+ R! R% [7 b/ p" I9 l9 T2 j
)" N0 h. j! E! D. j/ L- A
)
+ b6 f7 B. U* `1 r )1 N% r1 ]0 C! d8 g8 J% g4 l. y
;; Function for Xline coord edit box checking.
" y6 P( x9 @6 I3 L `/ H( j* f (defun verify_xline (tile value old-value / coord valid errmsg)
; F( t2 N1 L; W$ p& F (setq valid nil errmsg "Invalid input value."): g) g" k( B* M5 ~# C3 M _
(if (setq coord (distof value))/ T: N+ X: U$ l- |
(setq valid T)' d; _3 w! C. G. k
(setq valid nil)
' _' E- _4 U. N( m8 {# K: c )
2 [* U4 d+ d2 ^7 ? (if (and coord
4 h1 [; c) ~% _9 |9 g (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
5 ~- q8 O6 z8 g# g$ {5 b0 V (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )% f% S2 O9 Q% U( z; ]5 e1 S8 | R
(= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
' r* t0 I+ R) @# }% _ )" f3 ]6 ^( b& L1 F! @. j" H
)
) [ |" L+ b6 X6 w9 ` (progn/ p- g& q6 Q% i4 n( d) }& B
(setq errmsg
6 C7 k; I/ @; u$ B, E0 w "The Root point and the Second point cannot be equal.")
3 o& y9 @) I0 K1 g (setq valid nil): C! c# l1 P; e/ k, V
)! U4 _$ O/ S- C2 k0 f3 I
)
* Y+ e# X! |( p, m- {( R (if valid" Z3 q* f* i2 Q. l
(progn0 d5 K! C- p. F; U* r7 u
(if (or (= errchk 0) (= tile last-tile))5 h8 {8 e/ T& A
(set_tile "error" "")
; H8 v! y. c1 d; l5 k& [) K )
* ^8 Q; @2 I. P* t0 W) \ (set_tile tile (ai_rtos coord))7 f$ Y! H. b. n' b5 j# m" \* _
(setq errchk 0)
3 `) {/ p( B4 u3 A/ \6 F3 | (setq last-tile tile)
. Z) O: {$ U! {: D coord& i. i0 u7 J& Z" M1 p, c+ m
)
1 C5 A7 [7 x1 N% e) n( w0 t" M& n (progn, n* t; g! ]+ D; ~6 c2 n
(mode_tile tile 2) ; Move focus to offending field
5 G+ o1 t$ _7 \7 g$ V (mode_tile tile 3) ; Select offending text
' C9 N2 u8 ~5 O; Z3 G* C (set_tile "error" errmsg)
0 D5 N5 r# G3 h4 q3 l3 F$ a8 b (setq errchk 1)
2 f' G$ ]+ Z% r5 M+ `( f- q5 v (setq last-tile tile)) \$ n, Y7 {- p$ c J
old-value* Y" l% ^8 D A+ o( r/ d M# s' y
)7 P/ s: E, E9 t2 l) I+ P, W
)
1 F; f, b9 L y" P7 O )
. E& g+ ]! L0 }" M, h+ z8 w4 O
: a- @ l+ G7 { ;;1 E. z' N5 C" V6 N$ T# H- q j
;; Verify angle function. This takes an angle and a tile name as arguments.+ i+ C' _9 Z# u/ s; Q j0 ~
;; If the angle is valid, it returns the angle and resets the tile.$ L% } i' X* P& ~
;; Otherwise, it sets the error tile and keeps focus on the tile.- W2 B- o' X& M$ K9 }) k
;;& h; v, O" i% c
(defun verify_a (tile value old-value / ang valid errmsg oblqmax)
k9 \; h% P9 W# V8 V1 d (setq valid nil% L! E& o8 K3 N ~0 G( l5 k/ |' M7 T
errmsg "Illegal input value."% W1 s4 O7 ]! s" s: l% z8 @, [
)
) ]8 F7 f' X2 d' O) d- _* w (if (setq ang (angtof value))
3 r2 g. n; i1 R: C+ D4 H* i (cond& i9 f1 g1 {* K" J- B. ?
((= tile "obl") ; Restrict obliquing angle
" G. l( J6 K+ d) k+ k+ k/ V (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
: E$ b% K) Q+ ]3 v6 V: D+ x (if (or (<= ang oblqmax)
' ?2 R S6 v& D1 K (>= ang (- (* 2.0 PI) oblqmax))
~6 r7 m! `% K2 H0 m, q- \' } )
( F3 _! @/ S+ l6 z" d) Q* R (setq valid T)+ i* g' N& Y' s
(setq errmsg
2 u+ w j4 G x9 y" E3 V "Value must be between -85 and +85 degrees."), u- C2 R! L$ x2 `! |
)
4 X" a+ _& P* j |# R; O5 @ )( h1 i1 F. W, Z7 Y0 u
(T (setq valid T)) ; Other angles not restricted8 h$ x0 r9 v" c2 S8 S
)
- P' B' z* K* D: h (setq valid nil) ; Invalid angle input8 h0 w1 H- ^" |& x4 X4 l! u
)
$ d! C" ?& T; ]6 V8 h1 z6 z (if valid# A2 d* f1 q" r1 ?3 A
(progn+ \: ?( J+ ~ m2 ~3 @ H# i
(if (or (= errchk 0) (= tile last-tile))1 _' ^0 x* X+ K$ ]/ s
(set_tile "error" ""), [6 q. m& d5 a) j- ^
)# d) a( t. B) U$ B j/ t
(set_tile tile (ai_angtos ang))& p1 ^. _) s1 w( ]: L ^7 |
(setq errchk 0)
4 Y! R( }" o, @' R (setq last-tile tile): j3 i2 t1 r0 y' C1 N9 ?+ h# J
ang
2 G" P2 `" r4 P) ~5 e) j )* o' |, w' ]! ~9 x7 E- S
(progn
/ E/ v2 K) y, m7 a (mode_tile tile 2) ; Move focus to offending field
5 n" b, I% \$ ?; t3 W (mode_tile tile 3) ; Select offending text
. Z' M; ]* S; t% u (setq last-tile tile)
& j0 u, l( Y* D, Q, j (setq errchk 1)' [. K% C. m% [+ J' f; K0 Y
(set_tile "error" errmsg)4 u) w. U) E4 r5 g$ g8 {9 C
old-value
0 n4 X" E1 l9 I" F+ z )
: }/ s0 z: t8 u+ k" q, l )
: w5 g3 U, Y8 l3 u+ ^ )
0 a2 m& v( X2 s3 V& t6 h% l' q ;;
: B5 i g, n" p8 t" m3 {/ U& _ ;; Verify angle function. This takes an angle and a tile name as arguments.
* Q4 [: r3 J1 ^% O8 ?4 b) t, B( { ;; If the angle is valid, it returns the angle and resets the tile.. V! H* a( J) c5 ^( U9 R
;; Otherwise, it sets the error tile and keeps focus on the tile.5 l4 _! i# K& m. `4 C6 k
;; This function is specifically for the end angle of the ellipse object. If3 ~( z& u& c" f" W& d2 ]
;; the end angle resolves to zero then we want to display it as 360.
- t ?$ q$ H7 J P1 f ;;
) K9 f+ a: `& n4 O( | (defun verify_ae (tile value old-value / ang tempend)
3 v1 ], T6 R0 A8 |+ P( } (if (setq ang (angtof value))8 T, @8 h9 j. y y
(progn
6 i5 k' F3 I: I( z4 [0 m, m (if (or (= errchk 0) (= tile last-tile))
+ X0 r4 T& Q4 C- i [1 l! O8 n (set_tile "error" "")7 p ~& y9 Y% r
)
* z7 G4 N5 G* \5 [/ [) ` (setq tempend (ai_angtos ang)); I* ~# r: B! i! ]" m9 X! y2 E
(if (= tempend "0")
- f/ J- B/ H4 i0 a (set_tile tile "360")
5 h4 U. Q% t- `4 ~8 A' W (set_tile tile tempend)
+ k$ \; {, P) y. y+ ~$ s* b" W$ e ), v1 W6 X2 t9 r1 t; c
(setq errchk 0)
. O- n. [. B' g O I3 A (setq last-tile tile)
3 L3 g& t) \# x% @0 r ang
9 ], n' d/ A( Z- j+ M* }4 D )" D4 o1 D) `. w" \ u5 o1 `7 [
(progn/ O- z# P& l% H1 S- p6 M* I: B& v7 O
(mode_tile tile 2) ; Move focus to offending field7 ^2 n1 d! t# v! z1 C8 C
(mode_tile tile 3) ; Select offending text
* @* _. a6 A' C! A# S S (setq last-tile tile)( y9 r j& A4 k8 V i# a
(setq errchk 1)2 S& |5 ^1 ?4 V8 J' q" m( w
(set_tile "error" "Illegal input value.")
# a% c! p5 ~9 ?& u+ f' H" v old-value$ o2 W9 c$ `" H# X5 I
)
: W( f, I) V& Y$ m. o8 Q )
5 p5 f6 f: M- o5 S )
* ]# ^1 ^- A/ X6 R" Q' y ;;
3 }) Z2 T0 U/ |1 r+ y ;; Verify integer function. This takes an integer and a tile name as
+ l* z; x1 |5 [! K+ z: R$ d ;; arguments. If the integer is valid, it returns the integer and resets the
* Z ^- L& c, D) f) T ;; tile. Otherwise, it sets the error tile and keeps focus on the tile./ w! d* r3 \* t8 ^5 W5 w0 P# v+ H7 w
;;
) T. z* _8 U& ^/ e. T (defun verify_i (tile value old-value / int valid errmsg)
, Q8 t: X w; g; A (setq valid nil)/ a8 R. P4 c; i# R8 @
(setq errmsg "Value must be an integer.")
! }$ `5 a9 @; E (setq int (atoi value))- Q1 Z4 \. A9 B3 }- D
(if (setq intchk (distof value))( D9 _ z5 k* g) @0 p
(cond
8 E4 O$ ~7 \0 z0 t* K; h$ b ((or (= tile "columns") (= tile "rows"))
8 ^; ?6 v% B* u3 o (if (and (= int intchk), P2 N# W" \( S4 ^* ]' G- ~. E
(>= int 0)
$ k7 {/ B1 h" N% j (<= int 32767)
9 ~+ z8 Q2 @0 i% q, E )0 B- S# X0 ~" d7 w$ Z9 d T5 b, z
(setq valid T)0 M7 f. g1 W( }: `1 G
(setq errmsg "Value must be an integer between 0 and 32767.")) b- p' a4 y/ J
)
) @4 Y8 q* |5 F/ z6 E )( G* e& R/ K0 f, B' F1 A: b4 S
((and (or (= tile "u") (= tile "v")))
' @1 ^& k% Z' b x (if (and (= int intchk)) R7 n" g; b' n: u6 u$ {6 p& K
(>= int 0)
6 I; u6 [( `. g8 l' u (< int 201) P: N* e$ p5 Y' m
)- a; n6 ^" j! b% s; @1 @
(setq valid T)
/ _4 f C1 P k. R1 c (setq errmsg "Value must be an integer between 0 and 200.")4 q0 p, U! f$ N( a+ C+ r
)% A2 [) K; O( i3 D6 Q; R6 u
)* H: w9 \0 q1 l9 Z1 @/ x3 W
)
3 l. r7 z$ G5 V8 o )
. t" u: O% U! ?2 _3 g3 J* W (if valid
: o, J- n1 F& ~$ ~: r C (progn
! Q) p7 D( a6 |; _6 x# { (if (or (= errchk 0) (= tile last-tile))
1 b+ p; x, a+ G" z9 B8 e (set_tile "error" "")+ Q& g& a! b5 F- S* y
). R. N6 j5 j$ k! r6 {9 [. m" L9 U
(set_tile tile (itoa int))
6 B7 j3 t$ O5 k u5 v( n& h (setq errchk 0)
) ^. i; l0 @( s% a# ~ (setq last-tile tile)
6 S# L a& o* ?3 r7 ~9 r1 u6 B! Q int
3 s6 o7 o) ~" c4 T, O )
1 Y% @$ j9 a2 g* C9 M9 f& X0 n (progn8 v( N( {! c7 [* r$ R
(mode_tile tile 2) ; Move focus to offending field8 n- j+ y: h7 R. d0 G
(mode_tile tile 3) ; Select offending text- Z4 e& q/ f4 {
(set_tile "error" errmsg)
' n9 a X$ N+ U1 L (setq errchk 1)5 A& U: @ Y$ H: k
(setq last-tile tile)
& `6 n' A/ c$ d" o0 k old-value# U5 x4 A, w W0 F' O' N( j2 L
)
1 Y. c5 x' k: V( _+ |( L% |5 F' C )4 I Q9 N/ e: c4 u+ W& @2 ^$ M4 Y
)1 E' ~1 a z% [
;;+ I7 n! t2 {! y" L
;; Functions that verify tile values for integers6 f+ {5 P* s9 R1 {( {% \
;;
; T I) W# |. z# E) `& y3 h (defun ver_col (value)
: C( z" N) e" g- q (setq columns (verify_i "columns" value columns)), t# g" O; x: m+ K
)+ O5 ?' |. F H- \1 M' G: ?0 F
(defun ver_row (value)
2 s. t3 X5 B2 U3 J9 b( Q1 n (setq rows (verify_i "rows" value rows))
1 y2 u3 A* v5 Y" N2 c9 Y )
* s/ B2 R% t# Z2 w: D (defun ver_u (value)
. S7 _3 z- k; W7 Y3 n (setq u (verify_i "u" value u))
6 Y, V! f5 @! K! R )6 m; {, {: @+ g. i
(defun ver_v (value)( R" |- D1 V3 g$ W z
(setq v (verify_i "v" value v))/ J& |5 c* O/ p# J& F1 W! R
)
- I# } h8 ~# w6 a( k: J ;;
1 N O2 ]; Y9 L. c% M ;; Functions that verify tile values for reals
5 |9 u1 }# b- t ;;1 G/ T9 A3 M% W3 ]0 u. n s
(defun ver_x1 (value)2 M1 P' H( P$ y: P) J9 Q
(if (setq x1 (verify_d "x1_pt" value x1)) (calc))
" s8 T% T! p- G' z7 |1 @4 N: z. B )
9 `5 R& x W$ v* N2 I (defun ver_y1 (value)
2 [8 U3 ^6 I. g- M (if (setq y1 (verify_d "y1_pt" value y1)) (calc)), t3 V0 G' n1 c; f: x
) [) ?) ]9 ^8 f$ r2 G
(defun ver_z1 (value)# V$ ]: }# ^, }8 X2 d% h0 D" \, a
(if (setq z1 (verify_d "z1_pt" value z1)) (calc))4 k* W# P, x1 z9 E
)$ ?8 s) }/ w9 M8 `4 v ]! n
(defun ver_x2 (value)) t* @, w4 ^& L# R: I/ d" A
(if (setq x2 (verify_d "x2_pt" value x2)) (calc))6 t- q# a' u5 P4 C+ [; P
)
$ N7 @+ g6 `# _5 B( V1 _7 _/ L (defun ver_y2 (value)
" P$ D, X8 `* Y' r (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
2 c. u/ v! H& i )' t' V0 u4 l9 h$ O5 K
(defun ver_z2 (value)
]+ L6 v3 o1 J5 q (if (setq z2 (verify_d "z2_pt" value z2)) (calc))% k. @9 ]4 e3 u8 C' q$ `& L& P2 q% q& z
)8 H8 R- S" u$ f7 R! D( H
(defun ver_x3 (value)/ H$ e- J) p/ l' P) O m4 q
(setq x3 (verify_d "x3_pt" value x3))6 M; }* L$ q9 _, `
)
) I) ?5 j/ b4 V4 _) ~# a (defun ver_y3 (value)8 t! S& o' x% Q+ `' _
(setq y3 (verify_d "y3_pt" value y3))
$ u" j- t* i; s$ {' {' j )" U7 a, N0 n4 }
(defun ver_z3 (value)
& i( }4 ?3 b* j) Q4 s- H (setq z3 (verify_d "z3_pt" value z3)), d8 P% I& j' X8 p/ s9 V
)4 C8 h3 z" j+ c1 V
(defun ver_x4 (value)" f: B: C5 S ?. i6 u
(setq x4 (verify_d "x4_pt" value x4))
# c: d* U5 P6 R& D% R8 D6 u ) y7 \) `5 I1 P4 u5 w' P: i
(defun ver_y4 (value)) h5 c6 s j0 T3 z
(setq y4 (verify_d "y4_pt" value y4))7 C- E% ?9 }. h
). O" X; S, {4 b! @& \8 }6 B
(defun ver_4 (value)
0 z/ C" C, ~/ E8 p/ P" z1 p (setq z4 (verify_d "z4_pt" value z4))
2 U5 ?5 t p F( ]& A3 { )
4 k5 d6 W6 Q; E' p5 h (defun ver_xscl (value)2 ~5 K6 h0 n* J! j. `1 o# D
(setq xscale (verify_d "xscale" value xscale))( ]. B4 }2 m% n6 R
)
5 G% y# F+ G/ G$ z4 m8 b (defun ver_yscl (value)
$ O+ W3 ~8 C& I (setq yscale (verify_d "yscale" value yscale)): c7 W( E; W& x |
), a2 Z! @- A& S5 f) m m1 M
(defun ver_zscl (value)! K" q9 T0 R" A/ F
(setq zscale (verify_d "zscale" value zscale))
9 _- L" d& `" H( T9 F )
) ?9 e7 P K* E$ N7 \- \$ Z; c (defun ver_colsp (value) U: F$ E! N# H/ y6 l0 ~/ Z1 I. P% e
(setq col-sp (verify_d "col_sp" value col-sp))/ a9 R7 N- ]9 ~) r
)
2 G( `' k0 j9 x9 n (defun ver_rowsp (value)
3 Z. M/ K& J) c) Q& }4 t5 A (setq row-sp (verify_d "row_sp" value row-sp))0 e% j$ h8 i8 u
)
$ ~7 j7 X. c% O ^ (defun xclip ()
7 _2 P W/ ~/ H; w (setq xclipmode t)
L% N; r0 \" p, V+ [1 G) K' e" Z' a1 G (if (= xcliponoff "1")
4 X1 W8 j/ a @; G( f7 x (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")4 ^% U- y% O' R
(command "_.xclip" (cdr(assoc -1 elist)) "" "_off")4 ^: p$ a P- ]' A5 |5 X
)
/ L0 G! D2 g; Y* F/ y )
9 R0 Q. ?# F5 H' I (defun ver_rad (value) t$ P7 Q3 g6 z4 O
(if (setq radius (verify_d "radius" value radius)); e7 Z/ a7 g, e7 \. [- Z+ v
(calc)9 z S8 `5 k3 C T' V
)
3 v9 r2 T* H6 ]- |2 o, A' }' B )
) K& N) P* T6 Z (defun ver_majrad (value)
* n8 d. {! C5 S0 M7 m6 C9 O (if (setq majrad (verify_d "majrad" value majrad))/ D }& O$ L/ w5 F9 v9 _
(ell_calc_newval "majrad")
4 i9 S: w* R1 b( g7 F5 g )1 z& O* D. `9 O3 \
)
' J" s7 [! G/ D/ Y6 Q5 M% L c$ s (defun ver_minrad (value)7 [/ m: h0 p& g1 ]4 x `
(if (setq minrad (verify_d "minrad" value minrad))- S2 a/ O- h, Y' I- ^+ C! ~
(ell_calc_newval "minrad")7 G. @6 G7 y$ g" ^, { y
)0 j- y/ X- z7 y' g
)
1 \ n3 d6 G* y (defun ver_hght (value)/ m0 {' x$ Y6 r3 K2 _, v9 b
(setq hght (verify_d "hght" value hght))& k. f2 \% S' Q; Q
)
( V5 r2 |6 I- ~/ l* g$ `( g (defun ver_wid (value)
9 R5 A w* a" M3 c, Y4 N& c1 N (setq wid (verify_d "wid" value wid))
% v4 Q2 r6 c* `. O6 Y" q )6 ^8 q8 c0 `- \4 b
(defun ver_xline_x1 (value / temp)8 }. Q; j' g" k* K2 H
(setq temp xline_x1). O' w+ o7 L3 n3 U6 e! r
(setq xline_x1 (verify_xline "xline_x1" value xline_x1))3 h. [( a/ \9 [' ^6 |' ~
(if (/= temp xline_x1)9 w8 s9 ~$ Q$ J1 v! _6 P8 p) ^
(progn (modify_xline 0) (set_tile_dirv) )2 ^, n1 _, B& M' _4 x; ^
)
5 [/ A4 x+ V1 F3 c )8 {: n. ~: v, w$ H1 K, u ^( [
(defun ver_xline_y1 (value / temp)
3 V- }7 d8 H! U( ^' |# k (setq temp xline_y1)
$ y, O5 Z6 Y, @* h/ O/ D1 s5 a6 w5 f (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
+ d1 k/ F. ` b! s (if (/= temp xline_y1)7 C3 C D- k. R; [
(progn (modify_xline 0) (set_tile_dirv) )
& F" G! k$ Q: e0 ^8 f )
2 F! D- G ~. e: z/ A )
% N( h# i( N3 \ (defun ver_xline_z1 (value / temp), ~9 G5 Z6 K$ A* f2 d5 c
(setq temp xline_z1)0 C* m2 x. _ F5 o$ S0 H. _) @" p
(setq xline_z1 (verify_xline "xline_z1" value xline_z1))
, X# d P3 x2 | (if (/= temp xline_z1)9 X8 p2 {+ e% i& O& l3 n
(progn (modify_xline 0) (set_tile_dirv) )
: l; \0 }% G1 \. `2 `: k )
$ M$ j0 u5 ^4 ]; v9 \ )
7 H: A; n4 c4 d7 i; T1 D* F; J% U (defun ver_xline_x2 (value / temp)3 }5 N; _1 p; F$ R7 W: Y( Y
(setq temp xline_x2)3 O. I& L y$ T
(setq xline_x2 (verify_xline "xline_x2" value xline_x2))
1 h) d+ e g: [9 ` (if (/= temp xline_x2)( A( f% ~* M. Z
(progn (modify_xline 0) (set_tile_dirv))2 l# `2 p+ V1 W* K0 [
)4 U8 R9 x9 x& s4 E o, V" ~! X
)$ r* S/ d, v9 H
(defun ver_xline_y2 (value / temp)
& e8 ]4 `2 C9 t (setq temp xline_y2)* ?: q4 }# H0 C+ @* l! T
(setq xline_y2 (verify_xline "xline_y2" value xline_y2))# o* Y0 X* k) K$ v7 E! P2 g. Y
(if (/= temp xline_y2)2 L7 X! z9 o: Y1 ?8 ^3 }5 x
(progn (modify_xline 0) (set_tile_dirv) )2 n! @: t# u. O- ? ]
): `+ c+ v2 [& z) E$ ?
)! t( p7 r) E: @* P
(defun ver_xline_z2 (value / temp)& l4 n2 S# c7 E; ^1 G v; s
(setq temp xline_z2)
$ w! J4 V( W' R8 t (setq xline_z2 (verify_xline "xline_z2" value xline_z2))7 ]# r& S/ Q3 p$ |
(if (/= temp xline_z2)
& A" R$ y: P8 @- s6 b5 ]5 J! J/ d1 w (progn (modify_xline 0) (set_tile_dirv) )3 K: {5 D6 u. J* N4 D: e! o
)
/ d6 O$ w# k( U' {# m- T )1 `2 y5 _$ _* v+ l3 Q3 N; F& |
;;
; I5 H4 l' }" C5 t# M" N ;; Functions that verify tile values for angles$ s( D; p& d# H! P$ Q/ g
;;2 @5 I& z1 D* e
(defun ver_ang1 (value)' J1 b: B5 c) l) }4 B# I, M
(if (setq st_ang (verify_a "st_ang" value st_ang))
P! c( |5 _: W6 C, I. P (calc)
! _/ S! Z% U5 Y) h& | )
& H& ?% f7 p9 R )! n: ~, L3 z: j' F# D ]* m3 }
(defun ver_ang2 (value)/ Z9 k2 \6 H$ l! e. l& u, \' T
(if (setq end_ang (verify_a "end_ang" value end_ang))+ d3 e" }4 I* B( T$ ]
(calc)
( O9 g8 Y) z4 C3 h )% O/ g K `* J# A& |
)5 S: p" v& @& t5 w' l9 L
;;' X+ Z1 {. P: u; |! o. e
;; Verify tile value for ellipse end angle. Handled slightly
1 F# P$ H/ h: P9 A3 b- k/ X ;; differently than the other angles.
* Y9 ]. U9 u) O: L" `! j ;;
( c: N# V& j2 w3 n (defun ver_eang (value)
+ n8 L# o0 i% r8 h( }1 U (setq end_eang (verify_ae "end_eang" value end_eang))
* p3 e# r! @0 p) l. \2 ^ )
9 V. N* u# M+ l+ ?# H- G* z8 | (defun ver_rot (value)2 Y& T8 `# E! L9 L
(setq rot (verify_a "rot" value rot))3 R; I! B$ J% D% J( |3 Z+ y- {
)
( ~2 P; h, [4 I4 B+ L; y/ G: g( @ (defun ver_obl (value): g8 Z8 J5 w0 D% I! k
(setq obl (verify_a "obl" value obl))
2 ]2 C) s w4 ^0 d! j N! J+ F )
n$ s: @0 o- [) |$ z) h ;;% h0 ]0 @+ \0 p9 H4 J5 R
;; Function that verifies attribute tag field for null string,
& ~* z- ^& P+ ?! p" ` ;; or a string that contains one or more spaces. Tile value
4 }, R9 ?1 i( n7 z) K. W ;; is also converted to upper-case as well.
* H; v9 |; d7 w3 G* D1 A5 r ;;" q2 i- b( `, Y6 l: c# u3 Z/ ^
;;
* J1 G0 [3 o3 P% _* V8 I' D* c (defun ver_tag ( / tval)
" c: H6 ^# \4 g+ l: H6 y (setq tagval (get_tile "tag"))5 p/ f" ^7 o5 n; Z+ L D
(set_tile "error" "")
3 o3 [4 g- e( o: } (cond
4 e( z G( W7 H7 w9 [, @ ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
& K3 [: C0 m9 P7 W (wcmatch tval "* *"))( b: q: I% U& V2 u" Z, U
(set_tile "error" "Invalid attribute tag."); M, {' A0 a. ?# v2 c
(mode_tile "tag" 2). ~, J8 Y6 P2 ^6 e4 Q& d; g
(mode_tile "tag" 3))
& i# K4 h# [( X+ K (t (set_tile "error" "")
. `2 q0 K+ t8 q) h (set_tile "tag" tval)
y' W% Z7 m9 i. \& U+ | (setq attag tval)))
: b9 H8 d* f; l$ f )
& ~" o8 H& {$ ?! `; \ ;;
; G: z) @$ Q: E/ n# y: Y ;; Calculation functions- i* y. e4 ~' ]# ?
;;
# q, F5 l4 S0 i2 Y (defun calc ()7 \5 D. k* z/ t1 {8 U/ }
(if (= etype "LINE") (line_calc))" m7 a- \0 p ]0 u7 x
(if (= etype "ARC") (arc_calc))
( b& s# C5 H! j8 h4 M4 u (if (= etype "CIRCLE") (cir_calc))6 M0 S E7 m2 e' d+ N. I) R
)8 V4 Z9 k e/ X' y4 N1 f* F
;;" g' ^4 S: [1 O5 t
;; Calculation functions for lines, arcs, and circles
( H, w5 E! |/ p4 a+ P/ `! v j F ;;
f% R# H6 ]9 U* _3 C- h (defun line_calc ()- u: \; l' u- r
(setq stpt (list x1 y1 z1))
8 t2 _, Z0 L0 T* X" o (setq endpt (list x2 y2 z2))' h5 r p7 B0 |+ y4 S- S r# U: v
(set_tile "delta_x" (rtos (- x2 x1)))
& Y" i9 P8 }# n7 Y1 \5 { (set_tile "delta_y" (rtos (- y2 y1)))+ p& a! Q4 b7 o$ @
(set_tile "delta_z" (rtos (- z2 z1)))
8 Q. _9 @+ {1 a4 O (set_tile "l_length" (rtos (distance stpt endpt)))& `( Y5 }; B% g3 F: A% c' ?4 `9 e+ L$ q
(set_tile "l_angle" (angtos (angle stpt endpt)))
- E2 w* a6 E$ {: ` )
1 q+ ?, ?8 ^9 _& D
" }5 ]: F, J1 j" `7 G) S (defun cir_calc ( / area units)6 {- C, d. S5 v+ P1 C+ W4 e& r
(setq radtest radius)3 ~1 q, y& q5 S3 x {6 w @
(set_tile "Dia" (rtos (* 2 radius)))
4 _; @* X; y, k$ F4 H) Q (set_tile "Circum" (rtos (* 2 pi radius)))
5 L& j7 x7 y4 ^ (setq area (* pi (* radius radius)))) y. F& Q a7 T( j6 P# r3 o
(setq units (getvar "LUNITS"))
' i4 D5 o: `& l" C/ x (if (or (= units 3) (= units 4))
& J7 V9 m; _+ w0 {) t5 y' g. M (progn) [3 S+ t9 \0 B5 U6 c3 F
(setq area (/ area 144.0))( r: \& ^" v$ B, V- a5 J
(set_tile "Area" (strcat (rtos area 2) " square ft"))
) _- P3 H$ U! ]% ]$ ? )0 [ ]- R1 y6 L! x) ]( f( h( x
(set_tile "Area" (rtos area))% H* p6 ^4 ]; D7 I
)! I5 s5 R% s3 m
)
2 J$ `9 z- N- ?
4 I1 Y/ E0 H ~4 }; o (defun arc_calc ()
6 R q( `; {* Q (setq totang (- end_ang st_ang))
2 i+ t, W; T+ F9 b+ \& Y. {; C' n (while (< totang 0)) j$ v" ?9 |2 q* Z
(setq totang (+ totang (* 2 pi)))
! W4 ? Y- W' s! ` D: A! M) J )
1 `- ?9 a- o" ^# B! v6 m (while (> totang (* 2 pi))
4 @1 ]6 }; H* _" q* o (setq totang (- totang (* 2 pi)))
# U' n" T/ b0 |2 [* _) @ )
* ?; H( K3 Z( P6 G2 ~+ i (set_tile "tot_angle" (angtos totang))" u$ a6 u, _$ c+ B
(setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))$ Q6 d2 J* k, W5 S
(set_tile "arclen" (rtos arclen))
8 d! V$ z7 V E )
: x; \9 o+ F$ g( @' j* H* m ;;
7 O' b% y8 Z: a3 l9 } ;; Calculate the major radius, minor radius, major axis direction.: L4 s8 |7 J+ d
;; Get radius ratio. Convert Start, end parameters to start and end: b$ \" P( p, k/ T& i, ~' I
;; angles. Save Major Radius value in "old_majrad" in case the user; q0 [1 p4 U3 v7 C, d/ a
;; chooses to input a new Major Radius value later. It's needed to/ c+ V$ ]" _0 V3 `4 q
;; calculate a new Major Axis Vector value.6 c2 O$ Y7 o" G: s3 A/ E4 V
;;% X& Q8 M# G* M% x* z4 y& X# K7 {
(defun ell_calc (), p3 V& q6 C" B
;; Get major radius from the major axis vector.
4 _2 b0 y) e% p b (setq majaxis (cdr (assoc 11 elist)))
1 @, @5 l" f% `; N6 J2 o% } (setq xx (car majaxis))
9 X7 j$ B4 [- E/ f' V1 U (setq yy (cadr majaxis))
3 o7 S$ y4 S3 d' _) @ (setq zz (caddr majaxis))
! p. H2 @% G* i) l7 g1 | (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
' v- @5 S5 `( S' F (set_tile "majrad" (ai_rtos majrad))
4 \2 u- p2 q# m* a1 k4 ~ (setq old_majrad majrad)
9 J+ l$ L$ |6 W% z ;; Get radius ratio' ], y4 `$ J: m* x
(setq rrat (cdr (assoc 40 elist)))
! f2 q: h: P/ ^3 y7 \ (set_tile "rratio" (rtos rrat))4 l/ D' ~' N' B/ a- D/ n; s, N" I0 P
;; Calculate minor radius
, d9 ^1 A% d/ U3 t (setq minrad (* majrad rrat))
* ?% h( l( Y. ^! h2 g (set_tile "minrad" (ai_rtos minrad))
% Y$ f3 W% t) \) k ;; display major axis vector
C1 a) T! X# }/ x% T (set_tile "Majraddirx" (rtos xx))) @! ]* z" k' L' ]/ U$ `, c) J
(set_tile "Majraddiry" (rtos yy))
6 H6 Q0 R- N W1 n9 _4 F: f (set_tile "Majraddirz" (rtos zz))$ N: k1 c! a: `$ n3 {4 e; w
+ \ [! z* C3 y0 V ;; Convert start parm to start angle
- _- ~; d2 S: Q4 }; S4 |& M4 ? (setq stparm (cdr (assoc 41 elist)))2 M2 _0 f U7 Q, o7 a" S: T1 y
(setq vecx (cos stparm))9 I' o/ Z, @% ?2 H# c/ K8 A
(setq vecy (sin stparm))! B0 T9 x; k2 l) s
(setq st_ang (atan (* rrat vecy) vecx))
8 S# |4 d9 j5 o! j' i* ~2 o: H: r (setq tempst_ang (ai_angtos st_ang))
) X8 N! m* T6 N0 R/ ?1 g- T! c (set_tile "st_ang" tempst_ang)( x( j$ s# I. y, o. A9 G
;; Convert end parm to end angle. If end angle evaluates to 0$ s; E( h8 n7 a
;; degrees then display it as 360 degrees.
; B: |1 ?( X) F (setq endparm (cdr (assoc 42 elist)))( u' A5 Z+ i/ z! H
(setq evecx (cos endparm))' b! ?% Z8 o8 L
(setq evecy (sin endparm))/ L* y0 V; a. ~4 u2 g2 G8 ]# @. |
(setq end_eang (atan (* rrat evecy) evecx))
: Z! {4 k2 b+ S0 g5 t: G- ^/ @ (setq tempend_eang (ai_angtos end_eang))
1 i# d! t% g- T* Z2 V9 c (if (= tempend_eang "0")
" ~/ b* c M) z3 R$ M- v( m (set_tile "end_eang" "360")0 E+ Y* n3 w" r& }+ W+ m; P( ~
(set_tile "end_eang" tempend_eang)
0 |0 O) G c1 B; \/ P# d )
- I# S3 z* t4 [* z ;; Get area of the ellipse.9 s7 d& c( O4 U4 b3 u4 i
(ell_calc_area)! l$ i0 A% P4 ?/ z9 p
); O/ |+ L& d7 d' U9 f
;; Calculate area of ellipse. If it is an arc then
( Q8 o% X" ~( W8 e* Z8 M ;; grey out area display.
( x" c+ m X8 u* x# e- f" x ;;
K7 C( {- r6 q( e (defun ell_calc_area ( / area units)
9 f' [4 I! Z6 z- d (if (and (= tempst_ang "0") (= tempend_eang "0"))* R0 H+ ]: [0 x* D4 [8 T% s/ }* \% K
(progn# C& q$ _* ?% Y! a% @
(setq area (* pi majrad minrad))
2 ~! H8 w$ S; h9 { (setq units (getvar "LUNITS"))5 K- S3 _ D2 ` {/ Z: b' e
(if (or (= units 3) (= units 4))9 d$ u: b- q2 b4 b1 t+ T
(progn" [ j+ G* X1 c- F
(setq area (/ area 144.0))0 x4 w( N% X# b s S
(set_tile "Area" (strcat (rtos area 2)" square ft"))* F: c) W7 u8 Q; t! v" D
)
* f0 Z1 t4 c7 _+ S- R+ `( `6 I; X9 x (set_tile "Area" (rtos area))9 v9 {: h9 B; {2 B; x' S) J1 j' b
)
; x9 | b' Y& V+ F" n8 Q ) n) f3 n& ]) f" G8 |0 e% a1 Y$ D
(mode_tile "Area_text" 1)
8 j+ v* d9 V1 T8 m )
0 Q9 ~; i' S& q W& F5 T$ |6 K( m )3 D2 X& R$ y5 J! m: _1 f
;;- a6 U- l7 h) h, i/ q5 K& J
;; Calculate new values for ELLIPSE
* z2 A- D2 K/ o* I1 p% T ;; Minor Radius, Area. O d3 R6 B m/ H) `
;;
8 ?* q0 O- ]( H* v% {' U) A. J (defun ell_calc_newval (ell_tile)4 E; E6 P. j, b3 l
(if (= ell_tile "majrad")7 F9 ^# k( C- E. }
(progn- z' @: m0 h, {, }$ } P! L
(setq rrat (/ minrad majrad))) I2 `# C6 O* y( `- c
(set_tile "rratio" (rtos rrat))
4 d8 U, S( q9 j- Z (ell_calc_area)# ?: @8 f' q5 } O# Y; \
)
" a) q0 Q# i3 d" L+ z )% A8 o) Q: j$ T( b- [6 d
(if (= ell_tile "minrad")
8 h' [& H# O5 r* G6 P0 ?0 m (progn% [* b9 k; G& ^
(setq rrat (/ minrad majrad))9 e0 b$ N0 I) ~+ @1 I0 | w* G
(set_tile "rratio" (rtos rrat))
& {- o5 ?1 |7 v (ell_calc_area)
& h! P' h1 s1 }* y7 T )
3 T. T6 ~* r( j" Y1 v. V )1 u3 l7 n" V1 Q; N
)" ^# ^5 M( w% l e3 X. N1 O
; H! B9 }" J$ i4 M% g0 } (defun set_dimen_props (/ loop a stl txstyname)
! l; O2 f7 p% Z% I1 c) I3 ?7 P/ M9 c
(setq stname (cdr (assoc 3 elist)) ; get style name
* B/ Y% ?: z% | H- H, G stl (tblnext "DIMSTYLE" T)# U' Z8 H( S/ E& M0 @" X: D
stlist nil)
! _7 E- I q- ? ;; Get all style names and list them in alphabetical order5 l: L& T' D/ N+ v3 V3 @
(while stl
% C7 R% g9 e/ {$ [9 I (setq sname (cdr (assoc 2 stl)))
: p4 Z" O+ Z% t0 G h, i5 a/ n, K5 u (if (/= (logand 16 (cdr (assoc 70 stl))) 16), l' v5 ]# S1 i: A8 }& @
(setq stlist (cons sname stlist))) ^: q; l: P9 c6 g6 F- G
(setq stl (tblnext "DIMSTYLE")))4 r5 ^# M% p* W8 J: s# y7 j
# M) e& S, I3 h$ F2 g% F7 d
(setq len (length stlist)
& \" M k) F5 w% `3 o6 d loop 0! @+ Y9 R8 B9 Y7 J- f, w
dimsty stname
& l* y! t3 a+ x& q )) Q+ i+ ]5 h& l4 k
. |- W, e, y, s3 R2 F1 ~$ C2 t ;; alphabetize style list, depending on maxsort
" ^6 u% s7 a( ?' g& Y3 v (if (>= (getvar "maxsort") len)2 M( ^0 P& E3 a c7 }
(setq stlist (acad_strlsort stlist))2 R Q" G. a7 v; C
(setq stlist (reverse stlist)))
& i s) F" n) e( D4 n! K7 ~9 Q1 L
2 o7 p/ |! r a$ A, Q: @/ w8 n- ] ; *UNNAMED style (dimsty = nil at this point) is replaced with
1 ~% {, q! T6 X: e, \ ; the current style. After R13, we require dimensiosn to have a
% R3 Z$ h7 l* e z# c ; dimstyle, so we plug any holes where we find them.
l" i; _. ^( v( E) S+ j! X5 Z (if (null dimsty)
. l) U7 ], A r (setq dimsty (getvar "dimstyle"))- ^ H( G9 L- G& D1 W
)
: j! m) D+ O" T9 G7 Y ; Show the styles in combo box/ h0 d- ~( ~$ `+ Z* [0 E0 \# D
(start_list "mod_style" 2)
, L/ j9 M( u6 z; ^1 _9 h: j ]) c (while (< loop len)) N8 m7 I+ n; W* h; f
(add_list (nth loop stlist))
, u: X3 z& H& y U- B+ s8 Q (setq loop (1+ loop))1 z" r& U1 i2 T: r/ B
)/ n+ s: S% r2 K% G
5 \* h8 F. u7 K; o/ w
(end_list)( x) P6 K$ y: }3 X
* d+ v% U3 H0 u% }! Q1 c4 m6 I- X$ s' A: `
; Hilight the style name of the selected entity
7 q$ P- ?# A m" ?9 _* F (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
; B2 _ B$ A7 U* a% S& M( P; H (setq loop (1- loop))9 ]5 Z# [1 H, G6 H
)
1 h! y) B$ u7 F3 D (set_tile "mod_style" (itoa loop))$ M$ f( q [9 J" Z9 J
& X& t' v; d+ R ; The following is the list dimvars. It must be sorted in the same
k& e6 G$ e" ]2 h* s ; order as the resfub returned from DDIM (ADS module).
+ v% n4 T. y2 A5 ~/ X7 e
. k& a3 T$ }0 G# H (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
: ^ q( j& m8 T; \% h1 n "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"( z5 v | g4 L7 ~
"dimscale" "dimasz" "dimexo" "dimdli" "dimexe"; W- I# q' H+ m
"dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
5 E0 p2 @- r( r R+ L "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
: @, R% Q1 {% V3 q" w" v "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"; b0 |, h0 a# X6 C& H" V4 T
"dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
& `6 n l1 L4 l" R( d "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
7 V5 k8 h/ s1 ^! p6 u! e: D "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"( O H8 l, h# M; c$ q
"dimdec" "dimtdec" "dimaltu" "dimalttd"3 |/ J3 l3 T0 h- V; o; `4 T
"dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"2 n! U* ~& g K7 S
"dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
. l; [# K$ y2 J' ? "dimtxsty"
1 r, E& X. L, l b- S; U) T ))9 v% J, Y( B% h9 u6 M
(progn) N" }/ c6 T z$ z9 i$ M5 p* B. G
(setq sv_dvlist (ddimen_getostate dimsty)
" T0 H6 ^8 g1 X+ K& f _ txstyname (assoc 340 sv_dvlist)
4 ^ ~) X! F! F5 |: o9 P' i: p sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
8 l8 o4 h. v6 w& d4 I) Q txstyname sv_dvlist)
B9 t3 [6 y0 l! c; t! Y$ R u/ z dimlist sv_dvlist
3 l5 z( m; E; n. L/ |- s )/ y* v% b1 D$ l& ^! Y1 j
)0 M, m: D5 A+ v0 Q- }
(if (= dimtype "DDLEADER")
% S1 `1 d' X0 }) [; |* J (mode_tile "mod_format" 1)- V, D' ~3 H8 B1 H
)
/ |& ?2 D8 a0 q9 h) K9 H4 ` (action_tile "mod_style" "(setq dimsty (ddimen_style))")5 I s/ f, w8 _
(action_tile "mod_text" "(done_dialog 4)")
: N! L' l9 X5 D (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
: X2 z; y& l. _- G4 o6 o9 B$ x (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
( @2 c. U2 i: P/ P/ t (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")3 O7 T/ t! b8 j3 C. I
(action_tile "accept" "(done_dialog 1)")
6 d+ B! Z S s$ s )
$ ^0 r! Q% m- ]# c+ T0 ?# q e ;;! d$ H+ ~' N* n
;; Get dimvars that have been restored.
* J6 @0 c7 t6 R6 f ;;
( }* b$ n& v8 A* ?( G8 n# |4 e6 i4 L (defun ddimen_getvars (/ elm dvlist dv i)
1 Y3 c( p: `! ^$ B (setq i 34 D5 W4 e; P6 a2 Y8 d, ^4 S# J
dvlist (list (cons 0 "DIMSTYLE")
. l# z! @$ F$ M+ C" z2 y e (cons 2 (getvar "dimstyle")) (cons 70 0))
$ e @/ T# _( j )
l6 g6 B0 n5 w6 }2 R1 F ] (while (setq dv (nth i dimtbl))6 \$ ~! `# P. ]# ^' T5 W2 u
(setq elm (getvar dv)
, e; K! N5 W* p, p& C1 Z, D# t- l dvlist (append dvlist (list (cons dv elm)))2 D9 R2 j, E$ g6 O7 H
i (1+ i)
7 u% u5 a1 A# i& H. E! c: Y )
- ?4 v" ^% d/ g6 N+ `+ E) l2 M4 R )
: h: J W7 I0 ^) i H: c" J# ~+ [ dvlist
; Y, @8 @* C3 A3 H! Q9 P; x' a )( Y' z8 [+ P$ Q' P7 O$ E( g
. d- @, `' P4 j4 u9 C5 I ;;
; E3 c) }6 m% q, q ;; Get the original states of dimvars. This is for DIMENSION entities.
; a3 t/ j5 @0 S& `; H8 f& Y, H ;;3 c# i7 M6 C$ L k& ^$ @
(defun ddimen_getostate (dimsty / dvlist elm i dvvars)
& J E( X) E4 F1 ~5 w0 B( j) n (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
6 k' q* h1 G" y/ S, R9 A dvvars (ddimen_getvars) ; Get dimvars for that entity j$ t5 j# _8 t2 ]7 R& W. Q+ {
i 1
& D4 Z/ J, L8 ^1 E )
6 |8 K1 n. g4 P
5 i$ a8 N+ A2 d, b ; Create a list that contains values of the selected entity.
e- Y% V8 _6 ?- b8 ?$ f& I3 `3 @/ o7 X' w
(while (setq elm (nth i dvlist))
' r" w+ { s a0 f/ f: a7 ]1 i9 o+ [ (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
- J; w! \( i: v! x+ b1 C8 D0 F i (1+ i)
; s: l" l E q )
: ~9 q3 y' `3 d3 S& _ )6 d( ?& }1 }8 |
dvlist
3 c( {5 D4 p, u* d+ d9 Y% j7 O )* P, t' k( I( c
% S! w2 v6 B% D; [% _; k, Y; } ;;9 o; H6 q. v6 H5 Q h9 C
;; Restores dimvars of the selected enity.
- z7 H! @; p) V ;;
/ }7 c. a2 y3 N: a" [ (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)0 C5 S, V( L' P% k1 c7 D7 y
(setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"- ]+ p) N5 g$ [; i \
"dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
9 j" @% a8 ~% w$ R "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
9 c7 x% J, D! R; e- w# q "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"$ r- @7 [7 T1 n8 m4 F; k
"dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"; K0 _. \! v8 f: `$ `5 k
"dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"2 X6 g% t' H- h; _
"dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"7 g6 E+ m; Q, d6 p8 ~ I6 s
"dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"" \) s0 N, e* T( x1 |& f" o- F2 \
"dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit", K" t/ x, x4 b) q: b& h1 N' Q
"dimdec" "dimtdec" "dimaltu" "dimalttd" l( `& B. O8 m5 X+ D* ]
"dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"7 o( J4 ]. _3 [/ J. a' Y
"dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
1 `8 z& v" g' z/ q% z( V8 T "dimtxsty"
5 H2 _6 c: e" {( r7 S3 _8 f, Y3 u )) _9 ?* \" a' F& h
(setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
" g" Y) W$ t& F, ]! u (progn
1 o$ y1 H e% k% S (setq en (cdr (assoc -1 elist))) z3 r, B4 J# e
(command "_.dimstyle" "" "" en)
: h; D! @$ [- {- { ): F) q: C: Z' D6 P o5 T$ f
dimsvcurset
6 X0 j+ l& V$ [1 T! `/ o. O )
, i% ]! i1 T0 W$ x4 `4 W9 {9 k5 F ;;
/ E [: c+ T# w9 H ;; Modify Leader3 s* f& d$ T" s* W7 k* S
;;9 `1 H6 M, Y& n" |; t, f- T
(defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl, c7 y' d% Z4 _: J% O* G3 e
dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
A* b) p( N9 w3 _5 P- n' o1 A dimtype dimsvcurset)4 f) x. f' e1 v8 M1 {$ M8 ?' g7 o
(setq dimtype "DDLEADER"
% j' f% l& T3 Y+ ^5 S dimsvcurset (ddimen_dimsty_restore)
" q* k' v& ]; D% E5 M: C+ L L" s )% _+ o" r/ r9 X; ?* i
(if (not (new_dialog "ddleader" dcl_id)) (exit))
7 g" e/ g+ e. ]9 A; m \3 S% Y6 j ;; Set initial tile values5 s6 A3 i! L* r" I4 e3 R
(set_tile_props)! @; C4 J, h: h9 n- y
(set_dimen_props)$ R/ U/ g6 e. Q2 O6 z. f6 b6 Y8 B
(set_tile_handle)
/ D8 f! f$ E* l M- }; G ;; Define action for tiles/ C1 a |: c6 H
(set_action_tiles)
7 h- {: y* v/ |' ]% f9 o (mode_tile "mod_text" 1)
9 [- T5 W& N) C& r6 ]& C
6 Q# {/ d2 v9 i3 p8 Y (action_tile "mod_style" "(setq dimsty (ddimen_style))")2 x( y( c/ g o# _
(action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")6 s, V* M% V+ `+ I; U* Q
;; Get ARROW and TYPE.& d3 O, P2 r& _
(if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
# ~3 \* h B1 i' }7 Q( @ (if (= 1 (logand (cdr (assoc '72 elist))))
|- ]' e0 e: g& y6 K2 w6 d: W (set_tile "s-s" "spline")8 w. l5 e; I1 R( ?6 K( g
(set_tile "s-s" "straight"); N; w: c2 e+ B1 U1 u' m. }# f
)
8 g! ~+ ^4 F$ W, M2 i) ` ;; Start the dialogue.$ B' [. ]+ K, r' |
(setq dialog-state (start_dialog)), ~* I' M. g3 r8 c' L
(if (= dialog-state 1)
: ^1 O1 G% V1 s6 i0 I1 e4 Q; V3 P (progn% x2 V" P% k/ J/ a3 z9 Y
;; update the style: l& p: D1 t8 J! A
(if (/= dimsty stname)8 c$ T- L5 F6 y1 o. k
(progn' s! r- {1 ^% [" K4 }0 o. V- `
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case) f/ |( [! `" ]
; doesn't have it." g, b: F' d4 A$ n+ `0 p* D0 }
(if (null (assoc 3 elist))+ X8 X$ `1 R" N
(setq elist (append elist (list (cons 3 dimsty))))
. n1 X- Z% B8 r' f ; else just replace it.) V2 C6 S* Q' n+ |+ p; \6 U6 z
(setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))- P6 U: `. Q, N( N) ]7 r
)0 z7 c% R+ m7 ?
; refresh sv_dvlist with new dimstyle.
0 S1 n, `" Z2 Z e2 p7 b3 i' J (setq sv_dvlist (tblsearch "dimstyle" dimsty))4 Q, M2 _' {3 B2 L( w$ g( o
)
1 G8 ]4 }$ W) z: j/ t# G )5 t+ E$ X4 B" U( J4 q$ J9 q
(if (not (null dimlist)) ; attempted to change dimvars ]: z7 b+ t4 v5 j7 h; x5 Z: t
(ddimen_complist sv_dvlist dimlist dimtbl)' p8 n" [: H2 M! x* Y. _
)' c: }. B' j0 w a- y" D' R# [) I
;; update for ARROW.
7 _/ v7 x4 ^4 A7 m* J% k# r+ x+ \6 s (if (= "1" arrow)
& W |' W+ O5 _ (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))9 W2 c3 i% w9 T2 a( f m2 o
(setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
% V4 m2 {6 N, H. S) f! Y I- R, f0 S/ k )
; f. I- n [% M* w( X4 c$ n ;; update the TYPE.. _4 L6 [' | T7 K0 V! ~" F
(if (= "spline" leadtype)( K- o, V* S7 h8 M1 f) x" W
(setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
& L+ P1 |8 R/ a9 m. i: B (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
: v' j) d. n$ z! }4 V m0 Q )4 ~( |" o0 `/ ^9 o7 i' X
(modify_prop_geom)
% J0 d/ Q, K t8 m ;; update the Color( ^$ g, ]1 D' v# r% C/ b
(setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))$ S/ l2 ?- u' X9 x% J
(entmod elist)
6 ]. e" W; G* A" O: P )3 E! I/ F/ s5 U }! p8 Q6 O
)+ J$ B+ }: |$ h* Y
(ddimen_setvars dimsvcurset) ; Prepare to exit
; C4 ^% a1 u% |* B )
/ ]" M Y. ~$ ]$ Z- s8 [# N
2 H) J0 x' [6 O! b$ q8 X* b2 N ;;
1 P9 j6 K5 Z4 G. w1 a! v ;; Get dimvars of a dimstyle with overrides.
# a3 `+ m, i0 ?# U& C ;;
5 J8 `! ^# F2 ]
+ o4 e3 S$ N$ x& @9 n2 F' x (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)' P* b0 ?9 x" ]; z( W5 y- ?) D
z! n5 y7 S, n, z) ? ;; Get override information for the specified entity.
% I, n) [( Q8 B" P ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
4 [; I- ^0 |( e2 g/ u5 d ;; must obtain override information through this tedious operation.% O& A( C& n! N6 R! G( B8 Y/ Y. c
(setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
' n9 E; U5 u3 p" x+ x/ ^ dvlist (tblsearch "dimstyle" dimsty)- l( k# B( _4 k% D$ o5 A
i 2
: e' h3 {: y( [4 p+ l/ \; }+ [ )4 k% N3 A8 c- F: i! i
; |4 \8 D1 }+ c% J- g
; Update the list with overrides if overrides exist.& B8 X) Z9 k' w' m# z( { b
7 ?- t9 m( m2 p. r" W
(if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
& L. u0 K/ q! H% C; v+ m (progn. L G' `8 R6 }4 d8 [5 E6 K
(while (setq elm (cdr (nth i dimovr)))0 E$ r9 s, O R6 m
(progn, q) c- N# ]6 D2 d- T+ Y- I0 c
(if (or (= elm "{") (= elm "}"))
- \0 v/ w) y4 Y; B; J0 ~ (setq i (1+ i))
% F/ i, y1 [- p& d$ Y) [" }1 @ (progn0 u; _) Q, R" \
(if (or (and (< 180 elm)
: q( `9 V3 E) R; P! A9 O (< elm 190)2 F$ R. K; G. j3 S2 g" C' s
)
# w0 x% T1 J$ z# z7 g6 x3 N (and (< 80 elm)
* ?: c* N9 i: v s% y' i% A: v (< elm 90)
7 C3 J. P, J4 R/ _% Y9 y; b )
, o( P- M- W% s5 y. N& _) C2 f )
* ]8 P* s# o! m! G6 r+ d, a (setq elm (- elm 10)). {. v$ Q2 [$ e+ b8 j$ x
)" a9 C3 U5 T- u3 F, h8 }
(setq i (1+ i)/ _% d+ u* n P9 F% `4 \. P- ?6 ~2 U, a
elm (cons elm (cdr (nth i dimovr)))
6 V Z7 X' {& [/ f dvlist (subst elm (assoc (car elm) dvlist) dvlist)( l$ X/ k1 B) r' R6 `. T
i (1+ i)
! W" R, Q" F% t* | P7 X( e )' P1 d" y3 Y# b% e' V4 y
)
5 P0 z: f3 `: ]% h0 t6 d )4 X( u7 w5 E7 }! [5 J0 |
)
$ v( C: V/ t1 k* a )
0 F" T& l- ^* X6 M7 O )5 H$ ^8 \4 S% U* R0 [
)
* S" s! \! F6 g' K, N, g/ D# q C dvlist0 w; Q) `8 \ e: R
)" z7 R4 Q! g$ E4 j& u: t
1 c1 k# v' F. i) y7 S
;;
8 t, v4 U0 a. k7 | ;; Modify POINT+ {/ [1 H1 A4 _) d! q
;;
) j0 d" N4 z [$ B (defun modify_point ()
/ |5 G; G* Q. x1 P- v (modify_properties), [ H2 o9 K: p
(setq pt1 (list x1 y1 z1))
5 x+ d8 m' v2 A5 I. {" D (tempmod pt1 10 0)
/ @) e$ k/ r/ E. f6 ? (entmod elist)
( N' |2 c2 E6 w0 x) q )
, U+ i) Z/ @; `- ~6 Z r# ` g& Z" z2 [0 D% ^" C( {& R( O
(defun ddpoint ()1 B! W( q/ J6 u* I' C
(if (not (new_dialog "ddpoint" dcl_id)) (exit))
: F1 s% F4 D; d9 N! t ;; Set initial tile values
N# ` z# a6 ^0 G (set_tile_props)
" t/ d6 m' y/ E: I+ z. y$ m( J (set_tile_handle)5 q: t z) s, W# s( L& f3 r
(set_tile_pt1 0)2 H. A# d& x' F5 B$ P
;; Define action for tiles J7 q b9 d9 S& P+ Q8 b9 |3 i$ N9 L
(set_action_tiles)3 K3 i" d0 V3 v+ g$ O* O
(setq dialog-state (start_dialog))
7 R9 t: U1 ?& o. I5 Q (if (= dialog-state 0)
+ a% n$ S( R8 G# e7 c (reset)
; w, S$ P: O! X6 Q$ x0 j )' {# k+ g8 A$ o( @4 q) d& t
(if (= dialog-state 3): I X; M/ p7 }0 A w
(progn3 X2 K0 b- b" x+ @& V
(modify_point)7 @5 s/ b5 s+ M5 h& S* s" K
(setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))# ^" a. S! J; l9 J2 Z# e. d
(ver_pt1 0)
/ x# z0 A% |7 d7 G (ddpoint): _- \) ^0 _/ [; `! {( R6 W
); N9 A" q9 A+ ~; I7 b8 {' }6 {
)
4 u# F2 A5 D# `. c0 g) |% M (if (= dialog-state 1)
, ~' S" o2 K* t3 e (modify_point)3 e) L; m$ c8 s4 |0 `
)5 U @' e; Z1 ~3 @& u( f0 h$ Y
)
/ `( E7 w. N; Z% ~9 X ;;7 U& w8 y6 q8 {3 j
;; Modify LINE
; G0 P9 c/ P& a: v ;;/ U p; J& J8 S* }3 D* q' m
(defun modify_line ()
, v8 r! I) ~" ]7 }( {! r* K" K (modify_properties)
# r% T% ]9 U$ l (setq pt1 (list x1 y1 z1))9 X% N3 f2 C+ d" r; n- n, M% f
(setq pt2 (list x2 y2 z2))
8 ~" } y1 i% d9 p# Q- `& i! ` (tempmod pt1 10 0)
! i5 V! C1 l* O6 ^ (tempmod pt2 11 0)% O) x' h6 |! k' F
(entmod elist)4 l6 t- }% D8 v H" N0 G* \
)
( H+ x: o) Z* o6 G& Q$ {) |) @$ v. e (defun ddline ()
6 x+ E8 }4 `$ N7 {2 ] (if (not (new_dialog "ddline" dcl_id)) (exit))" g" @5 j! m1 u" |
;; Set initial tile values5 a5 D! s( v, H/ l; [* X
(set_tile_props)
2 J: b' E! {+ a1 c5 J (set_tile_handle)
; I" F# R6 l& \& q- A1 B (set_tile_pt1 0)
! F* \7 |2 B% C0 g (set_tile_pt2 0)- b* ]% z. I0 k/ ]" b- h
(line_calc)
5 N+ I5 B( h' x8 V" a4 C ;; Define action for tiles0 f l- B! N7 l x9 C- v4 S8 q
(set_action_tiles)' p5 ~6 R' d7 ~
(setq dialog-state (start_dialog))
# x1 e* C1 v) q3 {% ?* { (if (= dialog-state 0)' L# Z' e7 R; c2 j g, K0 a0 b- V
(reset)
. g$ O$ n X, a, ^$ `2 ? )
% w8 p) _) v+ h H b1 ^, a (if (= dialog-state 3)
! S5 X) q, H% L/ C6 C+ r: d (progn6 b" C9 {( [7 t. |* M$ y0 c
(modify_line): h, F" K7 u: X) F3 M6 d
(setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
+ p7 l1 [+ g: ]- ]* x (ver_pt1 0)
' g3 Q8 \+ J4 f' X" C5 p (ddline)9 s. K: z* e5 e
)% b* T/ D5 p% f( y6 K4 ]
)
% [8 ~: B/ O7 \3 r (if (= dialog-state 4)5 ^0 z+ E* A" O! c# y% Q
(progn
5 U, N$ ~" j5 v) y% @+ F# L- s( a (modify_line)% u# ]1 e! I8 r% O+ M$ ~3 j
(setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))& r3 A5 ]9 b U% z: u! @9 Q4 x/ I
(ver_pt2 0), F5 P+ ]( O8 w1 `
(ddline)2 @& u' M4 s1 N" t K; h9 b
)
7 m3 ~( O U: l- O) ] )
' X& t- B* R n6 _6 M+ b# y4 x2 S2 j4 t (if (= dialog-state 1)# t: F c$ r0 I" \
(modify_line)
6 R \; d6 B& W, l$ `, W: N+ d )
$ S3 }( N9 N4 n6 N )# C4 r( X. A0 N: ?
;; b) h: Y% h T! u
;; Modify MLine
& A' B) P& a* n" C7 N# m7 ~ ;;& ^' Y1 |! V, u: |! ?( w
(defun modify_mline ()
6 @6 S; y# C7 P; x" M! E (modify_properties)
8 |/ k0 p1 _* [" s; } (entmod elist)5 W, _3 u+ K1 C9 q% o" i
)7 ~: y* V7 H0 p; p. k9 s+ J
(defun ddmline ()
7 m( T1 q& ^( ~3 f$ n: l- a; B (if (not (new_dialog "ddmline" dcl_id)) (exit))8 G% m) C8 k% C
;; Set initial tile values
7 F& i; L9 A7 a# e" p7 V6 ^6 j+ o (set_tile_props)
2 ?& j+ D1 P7 t6 z# x P (set_tile_handle)' n- d# t2 t: M: k1 ^" Q- s
;; Set mline style text field.5 F3 ]2 c5 x% X6 v' P
(set_tile "ml_style" (cdr (assoc '2 elist)))
' B; |! f- d- K! n
3 q; K7 P- N1 q$ M2 i ;; Define action for tiles
_5 G1 Z8 u" J) T5 Y# x" b. m (set_action_tiles)
( b+ N: ?/ @& i _+ O (action_tile "ml_edit" "(done_dialog 3)")* s# G' d: ^9 D8 l, {& a2 o1 U
(setq dialog-state (start_dialog))
9 V& N5 b M X5 ` ;; Dialog cancelled, reset to original values.
" L7 k4 ]' X* _ O W3 X (if (= dialog-state 0)$ d3 Y5 V: ]0 o w5 \' J+ E6 b
(reset), ]. A5 |* o' A9 i: i* s4 |" j
)/ B; ~5 z9 _( q( Y, H
;; Dialog OKed, update the mline.
) ?. a; b5 l) x! B3 f+ e5 Z (if (= dialog-state 1)3 c8 A3 M/ ~8 d, T# F( R. C7 E
(modify_mline)
( ?( o- e0 S$ r8 j )2 G( h. H1 E" J0 b, Y
;; Edit Mline, call MLEDIT.
S# b' L/ k9 q/ m# ~& O1 _3 Y (if (= dialog-state 3)' A; j* |; }4 U
(progn6 {6 `4 [7 A% Y2 B% V
(modify_mline)- i, A$ D' v$ H
(command "_mledit")
9 u9 x8 s+ G8 O. X# v- O$ K7 T (ddmline)0 v$ L* e* I$ Y
)
# [) H* q9 d0 _( B7 o b" P$ } ^ ). ]# G2 K+ l( _( ?$ d) |, `
)
8 b) a) p$ {. Z1 m I ;;
. c0 g( H3 L# @, ~ ;; Modify Xline
, B. ^& t j. ~. B% q ;;6 f/ \0 P. ^5 x- V; h/ t
(defun modify_xline (flag)
: k& r* ^# X4 ^% L o1 P2 ~+ z+ @ (modify_prop_geom)
6 g9 x1 ~ s# t# e: b. _ (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
. N3 ]8 a3 [5 }8 X (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))2 q2 z& L4 \, d$ w5 B, [
;; Update the Root point.( Q9 A! o' V( \, e$ g, t' x
(setq elist (subst (cons 10 (trans xline_pt1 1 0))8 @3 t( i) G7 s4 g! n, J' c5 ?6 F
(assoc 10 elist)
* Z) |7 _0 l, }6 R8 |! w elist8 O+ Z1 @$ }( i" v
)8 ?- e( [. e' I/ `* E
)) W" ^( V4 i1 B' ?- J6 o
;;
4 {: I3 B" a4 M; P. I ;; Calculate new Direction Vector WCS& }9 Q! Q; M! f+ a6 r+ Z( F
;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
' `; `: v. U7 T/ h& o) f) G
! j" {4 j% A7 U+ w2 V9 P- r (setq temp_dir (trans xline_pt2 1 0))
, r- m7 i" P1 B4 s8 l1 W" b6 B (setq temp_dir_x (car temp_dir))
6 [" k% W/ D/ {5 h0 @" l (setq temp_dir_y (cadr temp_dir))" {9 H! H3 S4 X9 `- U
(setq temp_dir_z (caddr temp_dir))
: y" d3 y5 O/ C& u1 Q2 i4 K3 V1 f) e' m% v: C
(setq temp_xline_pt1 (trans xline_pt1 1 0))2 I- G' E7 P6 j
(setq temp_xline_x1 (car temp_xline_pt1))
6 S# X& ~6 q7 F; h, s0 n+ b. D p (setq temp_xline_y1 (cadr temp_xline_pt1))
" o- A8 m' G- Z% Q, G! r (setq temp_xline_z1 (caddr temp_xline_pt1))
' n [6 v8 `3 G6 f1 N) @2 ?( n2 I, T1 B
(setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
4 K5 A# {6 _ p! ~% F8 q (expt (- temp_dir_y temp_xline_y1) 2)
- c- r5 M8 ^4 n (expt (- temp_dir_z temp_xline_z1) 2)1 @$ X: h* M% Q$ \7 v2 D
)))
C; u0 s" e& B$ G (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))4 {) x! s( \; T, C7 Y
(setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
% [3 L$ u9 p! _: v c (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))# q: R, r9 z1 j: w
(setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))/ L' @* U! e7 N/ v
(assoc 11 elist)2 f) D9 B5 v% [& t/ j+ e# X/ j
elist
' g! i) f: o' E! t* x4 \ )
: O9 y" N' Z2 S+ p8 a )
' t2 |, P" w, o (if (= 1 flag)
! r: \5 _" r) r8 b4 U5 V1 t: n* [& c (entmod elist)
3 r' G3 R' N9 W- x7 o )8 Y$ F4 M0 P+ J% d J9 e! a5 Q2 G
)$ r6 W+ X9 Q; E9 e
( p( x2 G( T. u5 u' r9 n7 x; U
(defun ddxline ()
- u& s+ p' f6 w; C7 i( J2 ` (if (= etype "XLINE")
% e8 \! t' e7 e' C' @ (if (not (new_dialog "ddxline" dcl_id)) (exit))
* d2 P! [5 _: b (if (not (new_dialog "ddray" dcl_id)) (exit))( S1 x5 u3 {7 M/ n2 s, z3 R
)
7 X7 B3 a5 g3 g' V8 v ;; Set initial tile values& n2 ]- Z& n# e4 M3 P/ g1 F+ Q4 V* O
(set_tile_props)
: M( O% C* e3 \' O; J/ y* ` (set_tile_handle)4 Y2 v x1 E/ j5 |. u
(set_tile_xline_pt1)) c: U" m: R3 t
;; Convert to UCS and post Direction vector.1 I F& }; v. v# x
(set_tile_dirv)5 V% `: }/ g' J2 Y$ q- h
;; Calculate second point by adding Root Point + Direction Vector.
6 j/ q2 n! E* B- X9 ^* b/ z) Y" n (set_tile_xline_pt2)/ M; {2 G {0 c; D1 |' x" ?
;; Define action for tiles
( Z B+ C6 d4 @! C7 G (set_action_tiles)
- e& Y. _% Y, Q1 ]% k2 u' E& l (setq dialog-state (start_dialog))
, e6 R# ~ s4 m) c, }# @ (if (= dialog-state 0). P# t, }4 p, d7 F* } U
(reset)
3 y$ B* B. S2 e0 X: _! E' k )) M( S/ ]. d1 B6 e( a% F! y
(if (= dialog-state 3)0 S4 M* [4 C2 `9 F# {: Y& K
(progn0 _9 F; t' h; E( a: S3 y5 t* L
(modify_xline 1). A; {! o- i" B
(while (equal xline_pt2; l3 B8 y- F8 F+ U/ |# O
(setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001). l4 S3 k: a; L# i' g
(princ "The Root point cannot equal the Second point.")
) x F4 p, w9 b2 P )
& w, D, E: k1 D (ver_xline_pt1)! b J0 d+ q+ a3 n2 y! `
(ver_xline_pt2)* F- I! m t0 n! W9 r+ c
(princ)
( i j8 g3 ?* ^, G: v1 T$ } (ddxline)* I5 j2 m# g2 C4 `3 k( Q
)
/ t3 t9 o1 Q0 r3 |* \% c# a )
# F( [* k; p1 s' L) P3 W2 Y (if (= dialog-state 4): R! i8 b9 N: C3 @& T
(progn2 }9 k" |- S$ P. U4 D- ?
(modify_xline 1)
1 o4 n+ W1 M+ B) b) k (while (equal xline_pt1
2 N; i1 F8 W3 N* P |4 \0 D2 l (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001), a- O. c3 i1 L# s/ a- N) [0 Y y
(princ "The Second point cannot equal the Root point.")8 }$ k' [! Y' L
)
" f1 _! |! |1 w c+ H4 e (ver_xline_pt2)
/ x! s) [8 j) _, w, g K# ~* V(princ)
1 F) m8 E/ p! ~ (ddxline)2 b r, g" _' _* V9 y" K
)$ R5 Z9 b: Z$ e* k/ R. q2 R5 E" z
)/ O8 i# J: u% M \ \
(if (= dialog-state 1)0 x; M1 j: U. p& b4 y! f
(modify_xline 1)
7 u# I7 {3 E- z/ ~2 F )
% C9 L) L$ Y5 E3 \4 D )3 q- x% M6 T' z, c. Y
;;
) }6 a+ d- N6 F( }" l8 J3 Q ;; Modify ELLIPSE4 a# Q. D! P# d/ Y+ I
;;2 B3 l0 z$ E0 v! z ^9 d9 d2 f5 u
(defun modify_ellipse ()
" n, L: ~$ ]1 Y" { (modify_prop_geom)& S2 w0 T, @# y+ Y) U# I
;; Update Ellipse Center Point value.2 K: A/ n3 J/ A8 t
(setq pt1 (list x1 y1 z1))$ [0 G5 ]6 m5 Q' t/ w
(tempmod pt1 10 1). y( x- x% g5 b# [) @6 P I
;; Update Start Parameter value.
; r' l, F- \8 I0 R- z (setq y_val (sin st_ang))) g4 S, D7 P: T+ {; e" ]) m
(setq x_val (* rrat (cos st_ang)))7 e/ A$ `# y. {+ A* v- P
(setq stparm (atan y_val x_val))# V% r* T: z- M, M! t0 k0 i
(setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
8 }1 G/ `9 G) a6 `7 Q# T$ I ;; Update End Parameter value. Normalize it, if it's less than
" q, I' O" r5 ?6 b0 G5 J J' F ;; the start parameter.8 u% |5 w4 y/ y0 u% W
(setq y_eval (sin end_eang))
+ ?" C9 N" v% _ (setq x_eval (* rrat (cos end_eang)))
( K7 |# E7 j& R% ~2 t \5 }- o3 ~ (setq endparm (atan y_eval x_eval))
3 R! r" S5 L' h; t (setq diffparm (- endparm stparm))
5 E- d) B6 Z8 B& b7 A, C ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
% s4 v l8 g" y" H ;; Since zero length arcs are not allowed - construct the full
- }$ f& x5 z1 m5 z ;; ellipse in this case.
5 r4 C& G- @; s (if (<= (* diffparm diffparm) 1.0e-12)+ u* F7 \( k; ~9 _0 C/ w, ?
(setq endparm (+ stparm (* 2 pi))). l( O- _( [; p; Q, ]8 N$ Z
)
y" q! `, O5 v- L (if (<= endparm stparm)* l$ m% |: G/ d' n6 C
(setq endparm (+ endparm (* 2 pi)))
! U f, T, p, ?. x* ^ )0 m$ @8 A1 A4 l
(setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))4 s2 y& c) K; i3 x: c4 `
;; Calculate the Major Axis Vector by first calculating4 y3 H* t R% X9 H
;; a unit vector using the old Major Radius value. Then( X: X5 L/ V) {3 @# z) L
;; Multiplying that by the (possibly) new Major Radius
) }4 \# n1 @ O' o' ^ ;; value to get the new Major Axis Vector value.
+ j' S6 Q) J8 X! o (setq unitxx (/ xx old_majrad))
8 Q, W* n4 {; O. c- Z) @ (setq unityy (/ yy old_majrad))
4 F4 J+ ~1 p4 }2 | (setq unitzz (/ zz old_majrad))* o" T! m: A2 w7 |
(setq newvecxx (* unitxx majrad))* d; I5 S# B, `% [ l& ]+ i9 i
(setq newvecyy (* unityy majrad))( V$ I3 o* n: L" D, n
(setq newveczz (* unitzz majrad))6 z* e0 \$ G: E8 F9 p
(setq newmajaxis (list newvecxx newvecyy newveczz))$ a4 ~. \6 ^+ s6 p7 n$ R
;; Update Major Axis Vector value! [/ h1 ^2 a, \5 @& U+ E; q# Y- P
(setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist )); D ?2 Z! u0 M9 T, V! i+ [
;; Update Radius Ratio value$ K! E# j" j" j, R* J) ^4 m
(setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))% |9 s* `7 L# x+ B- V
(entmod elist)$ }; { c; F4 {
)! A6 j3 H4 |$ h' Y1 e$ l( B
* l7 r4 g- O5 E1 u4 w8 n: b; b. z (defun ddellipse ()
; w- M. f4 U! A (if (not (new_dialog "ddellipse" dcl_id)) (exit))
9 Y% z* z% O3 Q3 o' v w ;; Set initial tile values
7 r. F) h K" j* D3 T8 s (set_tile_props)( L3 E @( q- p7 H5 p* C; }
(set_tile_handle)
! ]6 B+ d7 x* a. W (set_tile_pt1 1)
) n5 [; I0 C, m$ j9 o# ^1 b& p (ell_calc)
' i& ^$ K N* ]5 r; U" P2 Q+ b. C* y3 [4 r ;; Define action for tiles
8 ]# y6 D! v2 B6 f% N: e+ K# M+ J (set_action_tiles)
( H1 G7 P* `$ M7 a; a+ T( J (setq dialog-state (start_dialog))3 m1 w. }' `3 p; u' c' F
(if (= dialog-state 0)6 H6 z$ E9 Q2 o v" L, l v
(reset)* X8 |5 [' }8 b$ I3 D. Y
)( h2 u1 N V. t% q. L% I
(if (= dialog-state 1)
N! D p% O" e! f1 ^, d (modify_ellipse)+ j! ~7 x/ P8 `) b# |
)
+ @0 D# R9 O1 L4 T) H2 @ (if (= dialog-state 3)
; m. h: W9 h% b/ Z9 e (progn
/ G; E0 W+ U, [" T, K (modify_ellipse)' M) z( O( x' B3 Z
(setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))7 W' C" }$ `7 E; C9 ?: s7 z
(ver_pt1 1)
: |+ ]& ?: h$ k- T8 s/ q* g (ddellipse)
' s0 X( k; [& \" T4 N: [ )/ v' U8 s* I9 E4 G6 Y1 P
)
8 ~3 S* o/ w1 f2 F% O3 P7 v )* A' P/ D8 |) b0 a
;;
+ H e" w$ o* {( | ;; Modify REGION6 t5 L' X4 A" H8 u- b* B
;;
y, b o( K% G9 ~ (defun modify_region ()
$ z T! k/ ~$ b7 `' r (modify_prop_geom)6 g& [$ {8 d" ?) d
(entmod elist)
2 `( Z! t6 V1 _; b. [- a) z2 u7 |3 ? ): H1 O1 Z+ }; k' O# J8 l
V/ D; T1 g$ a# h& }9 O+ b (defun ddregion ()
( b6 N4 z8 D0 h O6 L0 @ (if (not (new_dialog "ddregion" dcl_id)) (exit))6 T- Q) l( _, T8 t4 A; v( C: m' w: `
;; Set initial tile values
- V( x4 \' @. z* }0 c+ B" a (set_tile_props): G- E. m, F& X6 }, A" X4 M
(set_tile_handle)9 ?( S$ E& `3 b4 o. y' ]/ ~
;; Define action for tiles
& q; v) Y" X9 F# y (set_action_tiles)0 ~0 |( b0 l. a! X- a2 A
(setq dialog-state (start_dialog))3 c' o- U8 O9 P( K
(if (= dialog-state 0)/ b+ O; _& y, @+ G
(reset), F) {- e4 d6 s3 f
)" H0 H' ]9 ^& D3 m5 m/ N" N
(if (= dialog-state 1)2 I+ _! L) w4 N6 O; w* t7 l3 C$ X
(modify_region)# d, f, I! `$ _' T
)
/ W7 M/ V' v) p/ C( a( z0 U' ]' z ). O% c' v4 T3 x( `" O9 y/ @* x' C# S
;;
% k1 i! A2 V9 \" v# w ;; Modify 3DSOLID
, f9 p5 G& G$ d* j: Y; G$ e! N! I3 y ;;
* {% [3 E1 _! Q# P- R4 g0 p$ }: C4 n/ k (defun modify_3dsolid ()$ a) [1 O* N3 t, h$ P
(modify_prop_geom)
: i: x8 F2 R8 o! x3 ~2 G' \ (entmod elist)' L# |+ C( I0 u9 x% H# c
)
- v$ z, ^$ A5 B( y1 n
6 X; h* G9 ^9 z4 ]6 f9 j (defun dd3dsolid ()8 @6 J3 x- f: `. ?6 M* o
(if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
( a- Y4 L! S2 E W. D4 d ;; Set initial tile values
* Y1 o. R- v# J (set_tile_props)
$ P6 `; L% {( v" D% I* E (set_tile_handle)" M7 r% r1 q) q8 D
;; Define action for tiles2 R Y& s& S! d9 s# Z6 k- A# h
(set_action_tiles), Q4 [& E( P6 W" ?( E' H
(setq dialog-state (start_dialog))
8 |7 j" P5 h. i& m$ s) |# {1 M8 G (if (= dialog-state 0)
/ }1 d3 {4 `6 {5 h% I7 s (reset)6 `# w( s+ J7 n. q( L$ H" |
)
0 I8 n" v! y- @ x/ i (if (= dialog-state 1)! D1 Y$ @( r% p% ^/ Y2 e0 q9 o" M
(modify_3dsolid)9 }' S' m" U. e; m5 r
): d8 z" K F' M5 b
)
9 ?( I& Q4 D, |$ W& ]1 P/ W6 z ;;# D" _; P" ] D. K7 R
;; Modify AcDbHatch
* G/ T& n U. G$ `$ l' v: | ;;8 m! |- \4 g/ P0 B$ t- m
(defun modify_hatch ()1 E* T5 U. X$ n4 c1 X3 ?
(modify_prop_geom)
0 ^3 j) Q) V) m0 n1 E1 \ (entmod elist)
$ y8 J8 e/ [; F$ J, T )/ w* W {! j% P9 S7 x" y
+ ?! ?4 f4 [. t (defun ddnewhatch ()
( }, Z. @6 S" b& ]( d (if (equal hatch-elist nil)+ q, r# u5 G( f
(setq hatch-elist old-elist): b9 r! c' d6 v Z2 i I1 o, u: L
)
6 R, }9 e- o+ k4 v# ]* w$ G+ ]- h8 z0 k1 F2 t- ^
(if (not (new_dialog "ddnewhatch" dcl_id)) (exit))$ d+ ^4 f1 ^/ ~- H/ m6 F# F) b
9 K. U/ V% p7 s6 D3 u( H$ `5 L0 E
;; disable the thickness tile. @& l) i j, p6 p- ?0 I! C
(mode_tile "eb_thickness" 1)6 o# K# j N5 q$ c8 b
(mode_tile "e_thickness" 1)5 X5 [ o1 z3 D5 c
# x! u6 c7 ]0 b+ M7 T
(setq help_entry "modify_associative_hatch_dialog")" m# M9 o4 O3 g
(set_tile_props)
3 N5 K5 U- F* T$ ~) i (set_tile_handle)6 {' k: E" T! p. \# \; k" C
0 S' w3 p. `4 o& l% T* i% T3 l
;; Define action for tiles
: p5 C) E3 ^8 ~& [ (set_action_tiles)! k8 A" F: }! ^4 A: P8 j! Z
(action_tile "b_hatch" "(done_dialog 2)")
( Y% z/ O3 {# W3 H% L. D+ E) i$ f* O (setq dialog-state (start_dialog))) N* w( G% G% c% R! O# ~
(cond) ?* y# [& X- l3 r
( (eq dialog-state 0)
+ o8 c$ {+ ?9 \) S3 e: O- t (setq old-elist hatch-elist)
* `5 ], n8 z: e- L. s# c (setq hatch-elist nil)/ Y! J5 Q4 I; L+ i+ k7 R' K6 U
(if (= (checkforlockedlayer ename) nil)# o: `* L" Z5 ?
(reset)
8 i# P2 L* T8 D' k3 t, C7 ~ (progn ;;; special handling for locked layer reset
0 N. N4 u2 }' H ;; unlock the layer$ H( s; f( \5 C/ ~0 C* a: o
(setq layername (cdr (assoc 8 (cdr (entget ename))))); K* S! G { P1 ^
(command "_.-LAYER" "_Unlock" layername ""); F" x& y* N2 g/ C+ a9 M( ?
;; reset modifiction
9 }- [& s- n' [7 J" f (reset)
0 l& G9 Y( C9 z* }& ^ ;; lock the layer again7 ?/ l' ? E, L: v4 `& o
(command "_.-LAYER" "_Lock" layername "")
# \, e9 t5 U. S* l! g9 b1 h# E )
: \6 p2 c2 m( H. B7 [ )! d o' T& O8 {$ {) }1 k/ T4 S
nil ;;; makes (ddnewhatch) return nil for Cancel
& ]6 V, r" j& ]% X )
& k& ~% h. p# i8 E ( (eq dialog-state 1)
5 e! X2 D, V' ~3 n) r (setq hatch-elist nil)
' i. Z: Y* B, E6 ]1 v (modify_hatch)- A% p9 v7 R8 \% |% G i6 \
T ;;; makes (ddnewhatch) return T for Ok
5 Q( [) G0 R2 J ); X* \! U v9 I. i. ] }9 _+ o6 |/ }
( (eq dialog-state 2)
( j4 i% x Z1 d
9 M2 I1 a; k# T (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
0 B. m* ?% t; v6 j 4
8 v k4 H8 d: e0 |9 T ) + i( X3 j; a) }- Q' _: U
;;; new selected layer is on a locked layer) J% B; v7 h) V/ a
;;; we can simply modify the hatch properties; ?. E$ i" g; q4 _
(modify_hatch)2 F. o5 j8 c. v% E, m6 D) V3 i! x
(progn
% M# g! r0 y4 G/ ^. x. o. [/ Y! ~ (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
B! q* Q6 M; T: \, i# [ 41 W4 i2 \+ ^9 M* U
) * d$ Q% b5 ]6 `- Y; a
;;; We changed the layer previously and now the hatch lies on a locked layer.) B5 N# n2 M' f# Z& j
;;; We have to unlock the layer forethat we can update the hatch properties.
. }$ |3 p3 h. O/ d+ i ;;; If we don't do that (entmod) fails to update to the new layer.; }8 |! ~8 W7 G, P2 t1 m
(progn% N: ^2 J% F9 U- b1 z# B
(setq layername (cdr (assoc 8 (cdr elist))))' } a6 n5 [4 x2 o$ y, L
(command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer. x! y( D1 k7 k
(modify_hatch) ;;; update the properties' v+ E0 e% I+ p" U
(command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
3 s, Q; _$ \( v )$ I) [, d0 H- Q7 l
;;; All other cases we simply update the properties T! v. o! }3 R. Y. Q) d
(modify_hatch)
6 q4 ]: a0 C" x8 L- s/ b* ` )5 i7 e2 I# D9 |& X9 q$ j
)
7 ~, f' I) L. {9 X6 q ) 4 e; }# _; o `6 e5 @0 E
(if (= (checkforlockedlayer ename) nil)
. x4 o+ o7 [+ e, a9 y (command "_hatchedit" ename)
+ ]- I0 e! B' X& a7 q: K (alert ;|MSG111|;"The hatch object is on a locked layer.")
' `: V/ v" e( l9 _) B; H )
9 J7 h/ r" t! R' v- X7 B (ddmodify ename)
$ M% O8 ^' K2 W2 s )# s" C" u( r$ g- {2 ^
)
]/ ~; F; v& C# r% {4 X2 c )
$ ^8 A) z( D) ~ ;;; g6 ~' J9 i2 C! X% Y2 C; [# m8 v
;; Modify BODY2 {& E* k! C) G3 D
;;
" Y! q$ i2 Z$ s" K) R7 d6 c (defun modify_body ()
( P, d8 V7 z% H/ D" _0 a (modify_prop_geom)1 |% v: _3 x* h
(entmod elist)
% r8 R; D, v4 k4 b i! e: r )) w) j3 I9 V7 B. a& ~
1 c2 }( r7 O8 Z0 {! O
(defun ddbody ()
8 W, U( f3 J2 S3 U (if (not (new_dialog "ddbody" dcl_id)) (exit))7 |4 H P/ B/ g
;; Set initial tile values: \# E( ^. H6 O. k7 ~
(set_tile_props): O! g. r% h; I4 T8 I4 h' s
(set_tile_handle); ? s+ n8 C4 J! i Q
;; Define action for tiles
1 Y5 S: }' c1 m$ W$ S' _ (set_action_tiles)
* a& Y4 D1 s. n% p (setq dialog-state (start_dialog))) [7 u0 {4 M* N2 ` H
(if (= dialog-state 0)8 h; p7 x( L1 d6 I. v3 f
(reset)4 D2 k) r1 |, H1 r- \
)
5 Y t% k# p/ s, i6 L (if (= dialog-state 1) v2 s i; |8 N: g" x# {5 H; r
(modify_body)0 v( K1 Z8 F! V& Q9 b; A$ q
)! @' N5 H9 F6 {3 k6 L2 G6 T4 f
)" H. q+ K9 W. n! J2 M
;; n4 k& @: w2 L: }" j2 [( O" L+ _
;; Modify CIRCLE+ b R" P% \& D( H% m9 n( ^
;;
% G* H# I! X A Y3 [ (defun modify_circle ()9 [% c4 C+ R4 |3 W' |& Q
(modify_properties)
6 M8 J. |" j4 ?) |- J2 L# j (setq pt1 (list x1 y1 z1)), E# a8 m+ C. S) f4 U
(tempmod pt1 10 1)+ ?! x- k9 N3 y- c
(tempmod radius 40 nil)
1 | Z$ H% G; @3 c0 k" Z (entmod elist), |6 A/ G. k% c& t% d) ~
)$ N% g: f4 T5 g2 p2 i4 a
) B) Q( Y; g4 x% \; F" W: d
(defun ddcircle ()
/ @( T; k- O& Q; `5 @# [ (if (not (new_dialog "ddcircle" dcl_id)) (exit))
5 U! }; Q4 D9 z3 ]* w& T( x8 D$ s ;; Set initial tile values- N1 N0 r0 d- T: V. r! U# q
(set_tile_props)
: E7 ~8 Q7 y# T! }% t (set_tile_handle)- v* o7 ?4 t, M) ]. A
(set_tile_pt1 1)7 f2 W! n2 z% M. J5 G( x& Z
(set_tile_rad)
; y6 S) E! v+ u5 t (cir_calc)3 R' p0 k: ` A6 L/ G, a
;; Define action for tiles; n7 _8 T l5 M' l
(set_action_tiles)
" z0 P# w; S V+ i4 u( } (set_tile_pt1 1)" O9 \: I" I s7 q& ~; @, z |
(setq dialog-state (start_dialog))
k5 R6 O! x/ w+ |9 X$ f0 s (if (= dialog-state 0)
( F3 R u& O: S5 V T( j$ @/ ? (reset)
- Q" d; I7 i& b% N+ K+ E4 a )
3 l% Z; N; I1 K. _ (if (= dialog-state 1)( w# r. {2 w# E
(modify_circle)
) U: |; Q6 z. j4 s )9 z1 D+ Y8 Q7 n; g# `* |, ]
(if (= dialog-state 3)7 l$ W: r$ }0 ?. y3 m2 y3 z
(progn
7 ^# n, D7 [# O$ u6 M (modify_circle)1 i' B0 Z* m; g2 q
(setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))* O0 e& r2 |( M$ I
(ver_pt1 1)
: ~- s3 Q- x) d \! g (ddcircle)' P4 C+ N2 J9 ^4 M
)
0 M) I* B0 J0 M; M1 R )
1 W$ J4 t( X: ]0 @& V& P9 b )
9 P$ z: M# D4 W- M ;;+ F- e2 G4 \0 P) z5 G. x
;; Modify ARC
: K* Z# } ~ \: T) ?& @; o( \ ;;
# q( v" z5 a1 g' ?1 Z (defun modify_arc ()- {6 q8 D( W# h$ X7 Z
(modify_properties)
2 ~" I% V6 W2 R% ~+ I (setq pt1 (list x1 y1 z1))
+ ~& K; h" c2 K9 h (tempmod pt1 10 1)6 `2 Q1 R8 X8 c5 G7 j
(tempmod radius 40 nil)
# _% f4 A; F% m* [/ \* A (tempmod st_ang 50 nil)
) j+ ~0 [9 U5 J( D0 {; @6 x/ U (tempmod end_ang 51 nil)
6 X2 `: s, p, }, A (entmod elist)
% u$ a. r; S) f R9 [ )
: ?1 B) s8 H4 C- A (defun ddarc ()
6 Y1 ] m7 \6 D8 w* P (if (not (new_dialog "ddarc" dcl_id)) (exit))
" `' S4 M6 F4 ^$ E8 ]' \. B ;; Set initial tile values
& \+ U/ W. n( J o& p9 M w (set_tile_props) `1 U6 W- M4 c; y
(set_tile_handle)% |& X, q7 d; p' N
(set_tile_pt1 1)
' E l: I1 ~1 X* E+ t (set_tile_rad)
: X3 l S' u( B2 p: T4 f (set_tile_stang)5 ^9 O7 g* y# U6 I( d! @
(set_tile_endang)$ \" k1 y* I" e6 n! S# m
(arc_calc). Z' f: i1 r8 u) N
;; Define action for tiles/ Z) ?! A' U9 c2 J( H
(set_action_tiles)% g: z: v' V$ U
(setq dialog-state (start_dialog))
, B4 l* d, Y, M4 m (if (= dialog-state 0)0 w P: c; J; a4 u
(reset)! M0 F: b& |; |; B' l/ D. `+ b
): ^) s* a0 Q& j: S& I
(if (= dialog-state 1)- z6 G7 N& X; i( V' ~/ o n
(modify_arc)
+ ]0 W3 a9 ]7 H+ |5 p) y )6 g9 }& ]* _. c. D6 Q
(if (= dialog-state 3)
0 ?+ Q1 C P0 O7 f# W# O5 }1 ^ (progn
/ w" Y( T: d: z. ~) y: i (modify_arc)
6 l) E8 C" M; q2 {! y/ G- d (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))! p. u, r0 X& A2 s2 I
(ver_pt1 1)
3 N6 [9 t. h) c% |$ S0 Z (ddarc)8 r3 @6 C3 ^/ s0 `$ ~( f- L
)
7 \9 p0 Y/ n/ _. h7 F, c0 t )
! ?' W& c: G' h- z )
) y; H! X. y" J ;;" m# [+ Z4 v1 M w9 n
;; Modify SOLID or TRACE
4 u( I8 L9 J3 R7 X3 g ;; Note the Z value of the object is determined by the Z value of the fourth
U" k- `$ W: {3 c ;; point - code 13. Changing the point values of a solid or trace from a UCS, L0 j* d4 _5 B1 I9 j+ H/ D2 X0 Y% Z
;; that is nonplanar to the UCS the object was created may confuse the user.
1 q1 [9 ^3 P, {# _! z (defun modify_solid () g: W# g( o$ R) V r
(modify_properties)+ i% p: P+ ~- ?6 w' a
(setq pt1 (list x1 y1 z4))3 ^" ? X* G& t3 I! S6 V9 M6 h& _/ r
(setq pt2 (list x2 y2 z4))0 r0 x! U! Y* e' J [# v$ t
(setq pt3 (list x3 y3 z4))
9 ?0 z7 r# |5 ], s, V, \. ^5 w (setq pt4 (list x4 y4 z4))8 j" |- b5 m7 S: J. T
(tempmod pt1 10 1)
: @' b% w2 K9 k- G (tempmod pt2 11 1)
+ D6 b' l: g) {! I (tempmod pt3 12 1)7 L7 Z# ?2 N7 z0 O$ s
(tempmod pt4 13 1)
0 A2 [3 @1 N) d) c; L& g (entmod elist)- k* ]+ }7 c- S/ Z0 \" p
)
" Y4 _0 V, s0 y2 l( P3 Z/ g, k' @5 v8 l6 J9 U+ j
(defun ddsolid ()- l5 Q+ H4 G/ N! Y3 `9 @* q7 t
(if (= etype "SOLID")' O. K& q+ {% }
(if (not (new_dialog "ddsolid" dcl_id)) (exit)), T% T' O6 C( z
(if (not (new_dialog "ddtrace" dcl_id)) (exit))+ L3 N, E3 _: }$ e4 ~. W
)
- z# i' Z3 W$ l4 N! X* W: B ;; Set initial tile values
" M( [$ l5 |& W2 O1 C (set_tile_props)
- W: K2 |" H9 o* r- M( H4 X) @ (set_tile_handle)
5 e. L: T1 d3 ~. o5 |( S (set_tile_pt1 1)
% B R" {/ N% `$ D2 t (set_tile_pt2 1)
o! q$ L+ v y2 x7 x (set_tile_pt3 1)
& e- p, s7 x/ C- {$ j7 G$ h2 N2 b (set_tile_pt4 1)( I6 Y+ n' \$ v2 f7 s8 J
;; Define action for tiles& P! \9 S/ [. ~
(set_action_tiles)) A) [' F( }9 K$ K
(setq dialog-state (start_dialog))
' e3 G: o- R% y" v. S (if (= dialog-state 0)
$ X, e2 j, ^, t+ o; S/ F1 d (reset)% q+ r+ s( r" r
)8 ~3 K( x1 r# l; r
(if (= dialog-state 1)5 d$ M( j/ N2 T' Z; ]
(modify_solid)1 [9 {7 ^- l; W4 l6 t
)
9 e/ d6 P ^. ^3 P (if (= dialog-state 3)6 w. b; `9 c( P9 g, L5 s
(progn$ v- Z- t* w, v4 J* m
(modify_solid)* K4 M( X8 `3 }6 Z
(setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
( Y; |/ _9 g z! H- O3 |* a) I (ver_pt1 1)* @& C$ v, h! w3 ~) }. @
(ddsolid)
+ S8 I4 _; b9 V: {# A/ r" Z/ b )
- }/ @8 v6 t$ x3 Y )
, q3 Z' w1 W/ b6 N6 E4 X# s; E \ (if (= dialog-state 4), _- l; g" l9 X( W7 n+ J
(progn
! w$ i0 d8 g+ U3 S+ b (modify_solid)- |; U/ H! s6 m
(entmod elist)
# D% j7 s+ w5 y4 j! C) p% U8 S (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
6 e, c7 X0 o: |; k% | (ver_pt2 1)
8 y3 R* @9 j5 z% ]+ Q; B# B) @; E (ddsolid)/ ^- _2 Z! I! b& |8 U+ X! `
). Z& `# A& {% Q9 y, G; e8 U! V, s
)
# H, ]4 T$ m# f2 \( n (if (= dialog-state 5)
' ]9 ?% |& Y1 a (progn
5 m, h7 g1 s$ I& F8 h (modify_solid)
4 Y; ] `6 V. g4 f% `2 V (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
p% z0 W* P0 ~/ j0 r (ver_pt3 1)
' M) Q" v: Y+ u (ddsolid)& n$ b& J6 l- ~3 a
)% K# v: O( Q. j8 F: D, P8 T* C3 h
)
6 v/ r& O, [) B$ C, | (if (= dialog-state 6)
: S2 t% p8 k! ]; s8 R (progn
. [ V5 Z; { Z6 @ Y6 Q7 k u (modify_solid); L* e% U/ A' ~6 @: b
(setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))+ z% E1 A! q+ s9 T- t
(ver_pt4 1); c4 U# q0 |2 d
(ddsolid)* ~: t8 k- o6 r% I5 w) v: e5 ~: a
)
+ K6 i, t7 ~) i% r* L- C" ^9 I! T )4 j) k, _$ a* Z" n. w) _ ~# d" q- |8 u
)% H! ?- B. A r' H8 m* B& D
;;4 M x+ q: A. i) K
;; Modify 3DFACE/ J4 Y6 o2 f1 H
;;- O- o/ v/ o% ]7 G0 j# j& x
;; Check visibility of edges h! k; L5 I& v( ]% A/ x0 ~7 b8 N4 L
;;
8 p: P. ?" m4 G7 O* n" ]* @ (defun edgetest (/ bit1 bit2 bit3 bit4)& D& `4 F0 j% n: j
(if (= edge1 "1") (setq bit1 0) (setq bit1 1))) G3 d9 N* L4 R/ U* o2 d
(if (= edge2 "1") (setq bit2 0) (setq bit2 2)): k3 Z' O) d0 g' K/ e, T" c
(if (= edge3 "1") (setq bit3 0) (setq bit3 4))% E' ~; T/ f" m" j: y
(if (= edge4 "1") (setq bit4 0) (setq bit4 8))
: ?5 D# B v* I2 _: f (+ bit1 bit2 bit3 bit4)
9 ~: B" @" o b6 w" z( W )
" Y2 D# Q% _1 c A0 O, A0 Y4 R7 | v0 Q4 E
(defun modify_3dface ()
8 s# _, @" S: U, D (modify_properties)3 Y* W0 _3 {% u2 d1 J
(setq pt1 (list x1 y1 z1)): M1 K. r0 j8 x
(setq pt2 (list x2 y2 z2))
' V* `3 s! n2 Q/ c# m! u (setq pt3 (list x3 y3 z3))7 A" m( w' m) V# O! Y/ V
(setq pt4 (list x4 y4 z4)): ]/ K+ [- x7 X
(tempmod pt1 10 0)$ ]2 @- G/ i. S, H- Q/ ^; S0 a
(tempmod pt2 11 0)
6 ?' x/ B' M: y( _, D2 q6 G6 A (tempmod pt3 12 0)+ X: ?: Z9 w9 M# t6 {' Y3 R
(tempmod pt4 13 0)6 F, O7 ^* E2 T
(tempmod (edgetest) 70 nil)4 ]: l) Z$ m% G+ v* z
(entmod elist)7 @6 f) Z9 p, O/ {0 J( |3 D* W
)
], s" L* }% Y
8 s' t5 b* }( n, G (defun dd3dface ()
: n4 {0 x, c: L6 T1 C (if (not (new_dialog "dd3dface" dcl_id)) (exit))
$ p, h0 U# Y2 }8 I (set_tile_props)5 O) b- z5 |# x: L8 G3 r; f
(set_tile_handle)
3 v0 |' y- g* g; q4 d/ O9 d g. k! I (set_tile_pt1 0)
! e, J; V, X. d3 Z0 a# J (set_tile_pt2 0)" ^$ |1 U% t6 d) ~! j& p
(set_tile_pt3 0)( R: v# c/ D7 f8 X7 @# H
(set_tile_pt4 0)& t8 `- c# q. t# H" Y' ^
(set_tile_edges)
8 N3 u- M" C$ A* R3 |8 U ;; Define action for tiles
0 |7 ]3 k$ c' o5 c (set_action_tiles)7 w7 G8 W7 ?8 T+ T O1 J
(setq dialog-state (start_dialog)); i7 g) ^# M0 V: V1 s
(if (= dialog-state 0)
! U% I7 s. Q* M7 D (reset)7 _# c+ e8 k& I' Q
)9 ~ P6 J+ d" |- ~6 R# D
(if (= dialog-state 1)
/ W3 j% A2 k2 h (modify_3dface)
# s8 k( [2 ^6 Q& x# P ?. i )
. E5 i. Z0 |# S& M: u- b. E (if (= dialog-state 3)
) x' D! l# w$ Y+ F |& A (progn( L+ A- j' S, y( W. J( s
(modify_3dface)
0 k9 K; \. f( S; K (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
- r& [* l3 y9 n- _; f (ver_pt1 0)% j1 Q. _# N( `4 h) R
(dd3dface)
( L- J9 y2 D& D# q0 v )
! F* y. c+ i( |# _ )
; K: _ ^7 z: k, U( s9 f (if (= dialog-state 4)3 _5 L3 h9 x2 y/ T
(progn
0 g' P' x; V4 Z3 X (modify_3dface)8 K0 d$ b! @# t, w
(setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))! L2 X c/ W" Z5 c$ R! t
(ver_pt2 0)5 t9 ]0 `( w, ~! {, I
(dd3dface)! g o5 \9 r+ ?7 G% k* Y! w: P
)
4 @. b, `; M; @7 B% G )
, T V- L0 W' \& p3 n, E* e% a1 q (if (= dialog-state 5)
8 c& T! T" D7 W% f" y' N (progn% t4 Z% s2 W; }" |
(modify_3dface)
7 N/ P/ T/ v/ x' j% E% T/ R (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))- R( o) Z, Q( L' ?+ M9 T" f4 [5 t
(ver_pt3 0)
4 [# H2 W! |- Z- W0 \3 t4 r$ ~ (dd3dface)) B: A! a5 ^" c: d& N: K. a
)
! r' c% i: X5 z) Z )4 m7 c! U+ |/ Q/ G V
(if (= dialog-state 6), H# \2 K0 A9 Q' \; B* S
(progn
) \7 k6 g. s0 \ v( r9 x (modify_3dface)! G& I) I k2 o. p* i
(setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))0 m% p' }: D# o1 H. Z
(ver_pt4 0)+ u! {+ E! C# I7 c9 v
(dd3dface)& g. d( [# P$ P1 K4 q2 D! W
)$ Y9 O- E+ S0 x+ B9 b
)2 |5 w/ H2 i' t( Z
)
8 I% a2 F7 @" c2 T8 P; G8 z
- u! r. |1 o9 k/ w; M ;;$ Z) c K! t3 x
;; Image functions
( H* K/ Z4 V# Y7 V3 A2 P. ? ;; G7 ^! N) K( w# ^5 k
(defun image_scale (/ upixel en n userscale temp)( S) F" K) t, W
;; Calculate the size of an image pixel in AutoCAD units: h, y2 S, E+ R* }8 r
(setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))& c" ^- L' x' }6 \0 }
' e; F. O, V4 B$ n9 M. K4 R* |" V
;; Retrieve the user scale5 i% d4 S' X, ]: L( r1 S
(setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
9 ^: ?5 Y7 ]+ ?2 j, \/ n* p' x6 C8 Y' r, K
;; Next, extract the image units and pixel resolution
; p, x( R' |' e, I1 f* H (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))9 x% _+ q0 G/ x! E
(setq image:scale (* (cadr (assoc 13 elist)) upixel))0 b3 g/ N6 u, L6 V$ ^
(progn
: g0 y- P' z6 B6 p6 x$ U ;; Convert the user scale to the proper word$ ]/ R; L: p. ~% f4 D7 ^# q
(setq n (cdr (assoc 72 en)))
# X% T, C( i& f6 R- L* s (setq temp (getvar "LUNITS"))
0 a p6 q) U* V) e; L9 N (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))& ^$ E* g! D5 u2 \* l' j
(if (= n 1) (setq userscale "Millimeter")), o5 F2 m3 I4 N
(if (= n 2) (setq userscale "Centimeter"))
. i7 U6 S& [4 r( I5 P( l (if (= n 3) (setq userscale "Meter"))
9 ~7 h( G9 P) g; Y# ^ (if (= n 4) (setq userscale "Kilometer"))3 h& o2 r$ E! }
(if (= n 5) (setq userscale "Inch"))
4 a; w9 m: t% ^3 M (if (= n 6) (setq userscale "Foot"))
o) K" c8 b+ C h' [( A (if (= n 7) (setq userscale "Yard"))
, E6 F. ^) d/ F& J5 O (if (= n 8) (setq userscale "Mile"))
9 s$ |8 A8 `! T (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))3 m/ H* u( y& S2 f
)
9 {) E# F. t* U& n | )
, C* y9 Z' J" Q$ a )' z; U9 C, u {9 Z% P) s5 P
5 z6 h6 W5 j2 \( s0 [
;;2 U) E- |3 h [
;; Scale factors for block insertions
7 f1 [3 u6 u) D& ~2 A ;;
& L8 a+ c5 ]* D& Q) t (defun image_set_tile_scale (/ temp)
. }8 S5 f* r, e) v: k9 t (setq temp (getvar "LUNITS"))
! D, H1 S& K6 k/ O% \/ e (setvar "LUNITS" 2)
) {$ v% B" c1 |8 K, S, u2 [5 ^ (set_tile "xscale" (ai_rtos (* image:scale image:mult)))" S4 [) ^2 G. K* D; a
(set_tile "wid" (ai_rtos (* image:width image:mult)))
$ E; j0 _8 O3 H: {9 F+ y (set_tile "hght" (ai_rtos (* image:height image:mult)))
% e, M) c, ?' n" n7 F5 H! j' K (setvar "LUNITS" temp)6 M2 i3 j9 k: M
)6 q# H7 q) H K5 L$ I& w* ]( c
4 R% @+ k, P, Z* b# b7 ~; z
;;
: b- S& N" u B: G8 G0 r ;; Set the scale, width and height values appropriately.0 O3 ~1 z: Q% `
;;2 p- ]5 N) s+ \3 m n O" A Q
(defun image_update (field value / orig_value new_value mult)
! ?/ H9 i. X) [ (if (= field "xscale")
$ x7 a6 j+ x9 F! s7 h) c: A (setq orig_value image:scale)2 `2 y) J/ S/ z x
)% j; P* v" U# c! |
(if (= field "wid")( c' i2 V+ o* v2 x2 G) B
(setq orig_value image:width)
; C- ?5 T# _, N& @2 Y* q )/ t: Y, T X& M' K
(if (= field "hght")
6 s, g/ X$ Z, r1 i (setq orig_value image:height)
' b1 c; G5 Y- a& z0 \! Y1 B2 o )
0 E5 f N2 @" q! v' x# j (setq new_value (verify_d field value (* image:mult orig_value)))( D I# q' p3 Y
(if (/= new_value old_value). n& z( s) ^5 s6 ~& v# @) X# L- |
;; Make sure the user has entered a sufficiently large value
4 E9 ~8 _$ e; P1 }- T* v (if new_value$ m' T; _$ h- P2 q" d6 w, v- f1 O
(progn$ m* b: y. g! _3 Q& @
(if (< new_value 1e-8)4 R+ g3 |$ V, Q u# m
(setq mult image:mult)% n. u; I- g% Y
(setq mult (/ new_value orig_value)), \/ q; Y" k9 W! f" |; o! n" t2 c$ e
)) Z5 c% N {8 u0 i5 @) N7 B
(setq image:mult mult)
, }$ Y, I* C i3 T) a& L (image_set_tile_scale)
9 a) U' _, i: \ )9 U1 n Y1 d3 U
)! b/ D! O3 W5 D2 v
)
( {0 A- t3 `6 Z; k )1 T2 s9 s- k; o/ k# h7 F5 w. i7 L3 z6 D
A1 Q3 l9 [. n/ F4 z (defun image_disp_opt (bit)" l9 @* L! K* f, b* W% h& n
(setq image:options (Boole 6 image:options bit)), i: o% J# u8 K8 R
)7 x: k3 C5 Q3 ?2 n9 o7 S! o
% @) `9 U3 R% N. j (defun image_modify ()
! t9 E: _( c1 D) l* u% s- j7 ^ (modify_properties)
5 ?( o Y! R0 r/ I% y (setq pt1 (list x1 y1 z1))
& D% h, v; V" ^& t: l' O (tempmod pt1 10 0)
; ~9 G% S9 R# c5 j (entmod elist)1 Z3 l( q% U8 I% _( x4 p D% t) ]
) w5 [, D! h8 X1 X
7 z! O% `* L& S' C7 f) s (defun image_clean_variables ()1 f A- {0 n* r: a
;; Clean up global variables used here
# r3 |1 I! r# w0 G5 H5 n; g' {! i (setq image:scale nil)
0 q3 {" {: c; s9 ~) k8 |% d (setq image:angle nil)" u2 ?( Y ]# `( I1 D" U
(setq image:width nil)
1 d4 b6 a# k* H# i* W (setq image:height nil)
% O. }, H% W* r0 F/ g. D& | (setq image:options nil)3 r& K. c- z7 u& n3 v5 e! r9 h
(setq image:oname nil)8 ]4 \; \8 R! n& F6 \8 {
(setq image:olist nil)
3 {& b2 R$ H k. G, j* E (setq image:mult nil)3 p5 I u5 h5 x! R2 w& |; \# V
(setq st_ang nil)4 `1 o4 R! Z4 m
)
5 b7 p/ u5 L1 P6 o5 [4 v
+ I! y; f6 ~% G, i" j' C (defun image_scale_vector (v1 value)2 _ ?7 p) N" o1 W+ {
(list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
! z) r, h& w- \+ G ), O# [/ o" N* x8 ]# b( e7 Z' ~
; h1 ?; ]# j+ i+ Q
(defun image_cross_product (v1 v2 / vx vy vz); T3 |4 K4 L7 Q3 O6 _
(setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
% A! v" ~1 R4 I2 _ (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))" H' ~$ h( ^7 T f/ w+ z& D5 Z
(setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
( t J$ I q6 S (list vx vy vz)# y+ _/ |: b$ Q6 T9 {1 e
)
" \; ^$ g+ H- a7 L% c7 `- f$ W3 ?) U: k. w. O9 Q4 j) M
(defun image_dot_product (v1 v2)3 R& m) ~% u9 Q( u. R. J. I/ W
(+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))1 a$ H, F3 l |1 c9 v- F/ z% t- y3 c4 r" s
)
7 |! c$ d' Z% ^% V/ B# H* _/ H. Y+ f' u
(defun image_add_vector (v1 v2)
# b+ z' m- n6 ~4 L- ?0 @: @) P8 _ (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2))). M' Y" @- ^/ F& [3 b0 d
)& J/ X5 W; D( o8 ]& U- I
7 i" Y9 d; _/ I1 _8 R2 t+ J, I
(defun image_subtract_vector (v1 v2)" I! l' D. l, E! A$ P
(list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2))). v! m+ Q8 E4 Q6 o: `+ d% }
)+ ~& J6 W' \! o- N, {
6 ^% t- J6 n7 |" s( h6 k9 Y0 @/ F
(defun image_normalize_vector (v1)- ^# u, U- [3 M5 F; f+ W! l8 L
(image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))+ d; p5 {/ `$ Z7 e
)
: K8 k* H6 J% t+ p% z3 Y$ n2 s: c; T4 I- u3 _% i2 ^, J# [
(defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)+ x5 ^9 K6 j! y0 i& X2 P
;; Normalize the axis
& J7 x6 @: W$ J# N ]" R (setq axis (image_normalize_vector axis)): A5 l* Q: x0 l5 q" ^1 n4 r
(setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
2 M0 T9 V4 w) V1 I5 c; S (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
) p a' E( A) E (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))- u$ {& c1 p: [9 f3 T1 i
(setq in_rot_plane
# c$ a8 w# W F (image_add_vector M2 s3 p( z$ F, N) x
(image_scale_vector axis_x_in_rot_plane (cos angle))- @/ j' b3 e, f# c" _" V
(image_scale_vector axis_y_in_rot_plane (sin angle)): K; Q$ V; G. t) I
)
+ q2 F* B3 N. |2 H )
* A; r* k; ~9 o! N- o: l, F (image_add_vector along_axis in_rot_plane)
1 G& [: @7 m6 E$ c )
' q' x) L# U1 ?. s- V
( t; R6 Y) y; u/ A ;;
/ J5 I) F( I8 |9 _4 L+ o, U+ ~ ;; Calculate current rotation angle if appropriate.. `9 s+ T: {% {% O8 I
;; If not, grey out the rotation field.
9 O% q, K2 e0 F3 A/ i ;;
, ?1 Q: h7 L L. K5 z" e% Q8 G% D (defun image_rotation (/ normal rlength zlength sqrt_tolerance)5 P! @( _* A' p
;; Determine if image normal is codirectional with$ N! t" ]; P/ P' Z! Y, c1 i1 r( g
;; the current UCS Z-vector.
* }& \0 d9 [0 N. [ ;;
3 `2 l ]! N) w& z2 L% f5 Q A0 l (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
- @5 }6 E# _( z! M# E: X- H (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
- K# a5 A& n/ }, _ (setq zlength (* (last normal) (last normal)))
& y" H/ \) a, }3 [' C" N ;; Note that the value .0001 in the radians is approximately 0.0057 degrees., b1 \4 d4 U. k* _ }+ T% v
;;6 g4 C) J2 W# K) o I" V* N i4 Q! q
;; cos(.0001)^2
/ @* b' l5 s. F* X1 b+ S4 B1 d M ;; Tolerance = --------------
9 [* [: m) E. M2 `6 Q ;; sin(.0001)^2# V5 b) N6 C9 _5 Y* m. A) K- U
;;
8 p, B) ` S/ U) ^, t (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))( _; V+ z% M8 v1 c4 B9 ^ S. I$ e
(if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))0 i1 w9 }# n% T$ o R
(setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))8 ]3 ^8 H; z D/ g2 ?4 o
(progn
+ k1 _# F7 H/ V+ ?$ T ~ (mode_tile "st_ang" 1)
8 y9 h% o- B) C, S' H (setq image:angle 0)# `( L) I6 s) t- ]6 U& K# H9 s5 r4 W
)
% }% B& b) z; J1 r$ B4 a )
/ r8 e5 x0 U5 Z )
5 [4 p7 O. p) S# J4 a; P1 n& C, v$ Y5 O5 h9 ]( n& W2 \. a
;; Y h! K# Q7 G
;; Modify Image! t# f% R* x$ b6 R
;;% }, l- r+ r4 l ^0 R
(defun modify_image (/ u_vector v_vector z_vector)
- n( {* d8 w- X (modify_properties)
& z) ~; U& T* C (setq pt1 (list x1 y1 z1))0 D P6 S! u2 q/ ]
(tempmod pt1 10 0)
l0 c) t' i! V. \" V: k! {5 D ;; Make display option changes to image" J1 X8 t& u9 ~0 @) d
(emod image:options 70)
7 |$ T% A% Q# o) g ;; Get the u and v vectors' S4 t& H3 b' `/ O! G. }2 l
(setq u_vector (cdr (assoc 11 elist)))1 t1 o; x, z0 O3 `& ]" w, K
(setq v_vector (cdr (assoc 12 elist)))
. f( ]+ u8 E8 r7 f! O3 T* B
5 X2 V9 U( G n; i( K6 f6 f# c ;; Make scale changes to the vectors8 E+ M1 ]; V, q- y
(if (/= image:mult 1)
% H& \& i2 y1 W' ]2 A7 J# P! o (progn
* \/ I7 _$ c1 X4 k (setq u_vector (image_scale_vector u_vector image:mult))
' _. P$ d+ Y% t5 E& ^5 k) {+ d' i (setq v_vector (image_scale_vector v_vector image:mult))
& q$ w, K# H# w6 ^+ ?: P )
: p2 b- o( e5 }' y5 K )
* j- F+ p) G* o4 z; B- D' V" s ;; Rotate the vectors- x: x) r( p7 @4 g+ J
(setq st_ang (- st_ang image:angle))
. u' p" w! d7 X' r. w( v- t (if (/= st_ang 0)! m Y# ^0 S9 x+ w/ G5 h
(progn
$ m: R! }- Q' A* T, k* D2 P (setq z_vector
0 U# K$ S" |9 x- a (image_cross_product
8 \6 e* V" ^; U9 L (image_normalize_vector u_vector)3 }3 D1 O/ z% j7 j6 [
(image_normalize_vector v_vector)
# B% s- A( V) r5 c" h )
3 u- Q4 @$ a$ p; Z2 r )" f6 |2 Z* B" I5 X. \" {
(setq u_vector (image_rotate_vector u_vector st_ang z_vector))
+ N$ V3 L+ |$ i8 {% Y (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
, o g9 e3 \# c$ L! Z )
) A/ t( y( b+ ?7 w: H )8 g7 ?( x. A G7 i
(emod u_vector 11)
8 H* `6 i6 H$ G' y2 }5 ]) s2 Y3 d (emod v_vector 12)
1 o- `) Q7 b# V8 _- J0 z- N (entmod elist)
/ d$ v8 O( q: H9 r J) v* P7 \; Z+ B )
5 r" M2 b; r( i+ Y: h8 J" r/ ?$ w' }1 G* R: l
;;
5 @) [+ h5 j/ f( [ ;; Run imageadjust on given entity, working around possible
; A l8 \. A: R4 U ;; re-entrancy problems4 a$ k" y4 s/ Y7 e/ z. [8 d
;;- D6 D: F" G& j( F ]; E9 b
(defun image_adjust (ename)4 s% s& n4 F/ `) v
(verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
$ Y p! w o7 Q' q ~, W3 u7 h4 Y* U; ~ (imageadjust ename)- ]! M! H6 ^( z1 O: }
)
3 j4 h* h* z9 ]' U) t! a1 A7 P! D
(defun ddimage ()7 e: Z1 K9 G# m4 [6 i/ ^
(if (not (new_dialog "ddimage" dcl_id)) (exit))1 ]$ X9 s5 M& t$ _6 d! |
' {: q* [( q. g) K$ O. Y ;; Grey out the thickness field.
$ K- t8 d8 k* | (mode_tile "b_thickness" 1)$ A! e1 F0 g1 F' C5 l
(mode_tile "eb_thickness" 1)
- c1 J. a+ H# M e& ~6 B1 [. X8 N/ P+ q5 ^+ U& g7 }) B
;; Get the associated def object.
, L& Q& H/ w( V$ ^ (setq image:oname (cdr (assoc 340 elist)))+ o% M, w# \8 g1 G& p$ [" {$ p" J
(setq image:olist (entget image:oname))4 P3 j1 C. F# k
: k7 i" w' P, d8 A- u' k& p
;; Set initial tile values
/ [0 f! E6 o8 s. _. }2 R3 ? (set_tile_props)
L5 a5 |& K9 [; } (set_tile_handle)
' [6 P- a1 y2 Y0 S8 W' c) C1 S (set_tile_pt1 0)
6 X7 _, V4 f/ g. `5 a: V8 X (setq image:scale (image_scale))) w- y0 ~7 c. }
(setq st_ang (image_rotation))9 b3 R: W, e/ O6 v7 F- |& }
(setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))
" a$ N3 N4 Q9 U! v# V7 A, h# L4 Q! n (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))) ^9 {" Z5 Q; m8 n- N9 |
(setq image:options (cdr (assoc 70 elist)))
4 |7 d$ e4 |2 J/ O9 [4 {4 w
! u: E; y# N& H8 k& x ;; Record the last multiplier for use in image_update function7 h6 Y" l$ {$ s8 V: Z$ I
(setq image:mult 1)$ g$ r" u0 r+ x+ X
' G2 s! ]5 Z" u) Y- }0 J$ B) C% M8 z
;; Retrieve the image name
& X2 F8 i/ r$ u, W2 o3 Z" Z (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))3 r* L* D, n6 U- F" V
(setq flag 0)
# ~0 Y7 E2 J5 e+ q' {5 v6 x (foreach n fn
( \# m5 v* `( ?( i5 o3 Z (if (= flag 1)" }4 `. e5 M& _* ~4 N
(progn+ O* ~- y4 a4 x$ m D+ Z0 U
;; Display the image name
, m3 F% t# O3 S5 C8 c6 R0 h (set_tile "image_name" (cdr n))( H3 |5 [( d9 b" K
(setq flag 2)
$ ^& O/ @/ p5 Q )' V; n# Y* {) c W* ^5 {+ V! ?
)
+ m4 c% r% z. H (if (= flag 0)
& M" P/ W1 i6 q$ l; q5 Y9 ^3 | (if (equal (cdr n) image:oname) (setq flag 1))
- `# A2 j. S7 v, [' N: j+ `' F6 ? )5 k, D0 Q X V5 }& S. q) S2 `
)
' W6 f$ ~6 [2 @7 _$ w' c, s: Y. ^# y3 q" R( v: J
(set_tile "image_path" (cdr (assoc 1 image:olist)))
8 ~, u9 `- U) L7 r" F' c (set_tile "st_ang" (ai_angtos image:angle))
5 v. E- L& e# B Y3 b6 o (image_set_tile_scale)
3 m; q) I. i6 r9 G
7 l8 n; O6 C! Z" e* N ;; Check the appropriate boxes
, q. b" a0 j6 c (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
0 G% p" X1 \0 }1 o/ U& ?8 _1 s (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
! k5 |7 u! d* D. a/ K (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))7 `. R% i* H- P5 t4 R# c
(if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
% Y9 V& j! c1 \% N, D! ~# O5 D( B& g( @5 ?
;; Define action for tiles" l" t, ?4 J# @( _. `# p, y
(set_action_tiles)9 l0 A1 |- m3 C# K
(action_tile "xscale" "(image_update \"xscale\" $value)")
: l8 L3 v& h! `; i4 Q! ~1 z4 D9 ?. [ (action_tile "st_ang" "(ver_ang1 $value)")
. K7 _) v$ L* ^* t1 j2 x (action_tile "wid" "(image_update \"wid\" $value)")
( d6 Q8 e) U4 A! T5 r0 C/ A6 G% U (action_tile "hght" "(image_update \"hght\" $value)"); y7 K o9 B! l! E$ u Q& f
(action_tile "image_show" "(image_disp_opt 1)")
6 }& h. ~ V( g) Z, N. P (action_tile "image_non_ortho" "(image_disp_opt 2)")* e$ g- J; j# e( ^
(action_tile "image_clipped" "(image_disp_opt 4)")& S$ q; a5 }9 t1 o, I7 \3 ]9 T( w0 p
(action_tile "image_transparency" "(image_disp_opt 8)") t% @. b: g$ U
(action_tile "image_adjust" "(done_dialog 4)")
1 g; _# w5 `. n: A9 [( ?" X" S1 a) Z X4 _2 X( w
(setq dialog-state (start_dialog))
* {# w( Y" Q" s0 G8 ?! ]* } (if (= dialog-state 0)
. }2 i6 G8 J8 ^ (progn$ r! F6 O; U- x6 p. w! i( Z
(reset)- K6 |2 T, `7 U; s8 R4 k: H1 d
(image_clean_variables)
$ M$ v1 P# r% n' W4 O& a )
; P8 A1 a# Y% A! m( D" {& n )
' ?( d: i4 O2 y7 |# |; x" o$ j3 g5 u (if (= dialog-state 1)
2 ]: T+ }* T* v% M. d (progn
' Q( H' J3 `* K (modify_image)' z" N( k5 H `1 U/ h3 _. D
(image_clean_variables)
8 f2 S7 |: H, |+ W% }1 y, h )4 i# k* i0 N: Q
)# ]1 S* i% U6 S! a/ x H* p5 }
(if (= dialog-state 3)
' X C7 [4 U: }6 I8 q4 g (progn
3 {' |/ @$ Q/ x! ~( I0 } (modify_image)$ D* [" {* j' j2 c6 Q6 ?, j* c% ]
(image_clean_variables)/ t; m; q" t0 q+ {* W
(setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
! B5 ]! r ~; t; L' k (ver_pt1 0); M4 F6 R+ [; I5 ~( l# t8 ~
(ddimage)
9 A ]) H5 z, d6 i' G" l, } )8 ?* @9 v, j$ |' ]* a
)
. U9 i5 g, s: M0 P g (if (= dialog-state 4)
' y! L3 J& m+ N (progn9 e. c8 |8 ^7 _2 B" v
(modify_image)
9 x o; x, z2 B/ V (image_adjust ename)
/ t; G o& e6 r: m9 C# i (setq elist (entget ename))
4 l2 U3 M& L2 ? (ddimage)
$ |# A: V# P( O )! \5 Z( n1 B* I9 l/ q
)
4 E8 K6 ~% n- i9 t. o )7 ^9 |0 o! y2 m9 P- ~$ [8 F1 Q
9 @5 \8 ~' ^& f" g$ f | ;;
4 ]9 m/ k& P9 T% s( C ;; Modify BLOCK (and its Attributes, if any)
& z/ c D8 o. J" L+ {1 R ;;
0 K; i" F( Y( {' ~& Y6 e (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
4 U$ x A( U1 ^1 E, d# B/ C* t new_wid old_wid old_rot scaling old_scale7 I9 \% j a: R" D; t# r) j& _" F" Q* q
xdelta ydelta zdelta xbase ybase zbase ipos)
8 k ^( _( [1 v3 c (modify_properties); N% Y; K7 O, `( g1 U
8 S9 T. s: Z/ l$ l5 M6 I5 E* n( F ;; First, translate and scale the Attributes, if there are any.5 |- L8 c8 o4 d2 Z: I8 P
(setq old_rot (cdr (assoc 50 elist))+ o3 U; T! E4 j3 j" \( u7 ?/ K
old_scale (list (cdr (assoc 41 elist))
! B$ I. c% X2 j" V* K4 h6 o (cdr (assoc 42 elist))% D: b4 ^) |4 `) g
(cdr (assoc 43 elist))
0 a$ y6 }" m2 a )
" \7 w* i7 W# o2 s+ V% e1 v scaling (or (/= xscale (car old_scale))
' O% E2 Y4 t# M$ C9 c( r8 j (/= yscale (cadr old_scale))
* @- Y" i+ A0 e (/= zscale (caddr old_scale))
8 c1 b* W2 @/ o0 I' g4 V )) r( b6 Y% I" [' L1 T, r b0 [; c1 d
attr nil ; No Attributes modified yet
5 A! i) {4 d7 B/ m& G O6 }+ P )0 V _+ Y( p" j) e
(if scaling C; y$ A: @+ u2 }! F
(progn
( T# x, f8 X# y# ^' i8 K (setq xdelta (/ xscale (car old_scale)); e' V$ u( u8 t
ydelta (/ yscale (cadr old_scale))
) q9 T, H) z& h7 L zdelta (/ zscale (caddr old_scale))2 P8 @+ S5 G/ r4 A
ipos (cdr (assoc 10 elist))0 ?; O$ n7 S) n+ r% ]1 ]. G
xbase (car ipos)7 ]) [$ L- ~* l# J1 W
ybase (cadr ipos)
4 l; R. D; T F; q" r zbase (caddr ipos)
1 c3 @" d. O( [' W* K0 b# K) c: _ en2 (entnext ename) ; First Attribute
5 F7 ]* I5 R4 M )
( H3 F, p4 f p8 V/ }% k/ m# N& R! F. t2 V
; If the Block is rotated, temporarily un-rotate it, along
T$ x: Y- N. _) \: `: S) e, X ; with all its Attributes, so the scaling/translation of the5 R+ l; ?/ S6 N* F( r
; Attributes won't have to take the Block rotation into account.
: J$ d3 M8 y2 {. D, a2 G5 u+ p (if (/= old_rot 0.0)
: `4 c2 \8 j9 G8 R+ L1 @ (progn" E* e l- O( V
(command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
; `$ l# D1 B: V' g" \- m" B; v (setq old_rot 0.0# Y4 J7 H& y4 p
elist (subst (cons 50 0.0) (assoc 50 elist) elist)* @0 y; V1 {6 Y( Y- e9 q2 P
)
. s: i7 n+ `2 k6 }& b* @/ M )5 _0 f3 } V J, |7 Q
)
2 n* V2 {' q+ L; H* E# w
# |+ p, t- }- [, v, H8 V" L (while en2
B$ E6 O' W! a, \; g: Q k (setq el (entget en2))
7 Y; z9 W% `; ]- P/ q$ \ (if (= (cdr (assoc 0 el)) "ATTRIB")4 Z: k0 v1 {* a* g% b" E
(progn
# T Z! j* u/ B6 g* M5 Q5 u (setq old_hgt (cdr (assoc 40 el)) ; Height& o6 ?+ ?# y# g/ L% @/ r7 I
old_wid (cdr (assoc 41 el)) ; Width-factor% Z p3 ^. L5 o; x+ R ]2 ]" i
oldp1 (cdr (assoc 10 el)) ; Generation start point; Q: I7 P$ P2 i0 X
oldp2 (cdr (assoc 11 el)) ; Optional alignment pt2 d6 O( N8 V7 I7 G) U
ha (cdr (assoc 72 el)) ; Horizontal alignment7 d$ l% u" a- A9 h1 L6 {1 v
va (cdr (assoc 74 el)) ; Vertical alignment6 B6 n- }: c8 U3 {
, x+ Q; I* C) J4 c/ ]. D
; Translate gen. start point
1 l/ g- d0 G5 w) K p1 (list (+ xbase (* xdelta (- (car oldp1) xbase))), E1 k( [5 a$ `+ y* ~. ~' @6 O& B
(+ ybase (* ydelta (- (cadr oldp1) ybase)))2 G% L/ v5 V8 F& { I
(+ zbase (* zdelta (- (caddr oldp1) zbase)))
" O/ {: w V$ ?, ^4 M% f+ H3 z )7 Z; b0 S, c( L4 \" E! S! f9 V( I
el (subst (cons 10 p1) (assoc 10 el) el): r- [. n4 R% F
)2 f4 V5 k$ T" e& {1 p' K- k) d
( V3 b, x0 p, C ; Translate alignment pt similarly, if present and applicable
* | O3 M- e) h/ ]5 [' H (if (and oldp2 (or (/= ha 0)$ @) w( t& B/ S' a
(/= va 0)% x6 E0 @1 ?; w& A8 l
)
" S2 w: ]( ^4 j9 R )8 h! S! e5 ?/ k& C7 l/ b
(setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
: d) {+ U c3 \6 Z2 e (+ ybase (* ydelta (- (cadr oldp2) ybase)))
$ C( W4 P& N* X4 s( y (+ zbase (* zdelta (- (caddr oldp2) zbase))): X( {3 j) `4 N5 j
)
7 K' C' S5 g6 e8 r4 M2 [ p+ o el (subst (cons 11 p2) (assoc 11 el) el)
/ w" j1 A3 f' E* d )7 t4 H' M; I! m: y& l- f
)
4 A) x$ i1 h) |/ y3 n! y, e1 L: S
, @* B& E' [) f" y0 W* m: h8 ^& | ; Each Attribute's height and width-factor were computed
* W/ n M! f( N ; based on the Block's scale factors. Adjust them now,
2 @- I$ s3 |4 s! [ ; by first reducing to values for 1x1 scale...( S4 u1 x# n% t% _: D; v9 x+ Q: x$ Y
(setq new_hgt (/ old_hgt (cadr old_scale)). p" j& [$ ^+ z y
new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
8 [7 ?6 E' I: i) k2 ^ )3 z3 z) s* r; J! b8 l N8 d) H
; ...and then rescaling.( _# N$ h+ }1 D$ I! ?& v, _6 [
(setq new_hgt (* new_hgt yscale)
' R! M U$ r- A new_wid (* new_wid (/ xscale yscale))
7 O- X6 c0 s: W1 @2 b )' @) b& l0 \* ]5 K
(if (/= new_hgt old_hgt)
; ]/ L8 z8 c8 }( H' I (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
. ~" N) L3 F) a% O* o% n8 q )9 r# h7 P" B2 H- r! \5 \. |
(if (/= new_wid old_wid)
1 D3 z9 g, N7 _ b/ b (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
+ C: d/ ^1 R) n' M3 ^8 t )+ o/ D/ G3 q) y% u0 m0 U, _
(entmod el)
. e$ c$ W+ L, M8 w3 r; |5 l6 T (setq attr T ; At least one Attribute modified
' y2 \2 P+ G3 U! d2 S& [: C en2 (entnext en2) ; Next Attribute
4 P; M( O: C, K/ N- I5 ` )7 l9 N4 T7 h5 D2 ^4 h* g. [
)
( g4 t+ W5 Z# r* X (setq en2 nil) ; No more attributes. b, s O$ e: D x5 p
); C4 [" Z# N, o, u# L" J) O2 p
)
+ w6 x: ]$ K8 N" `% B )
3 U& S2 k+ p# o! D$ `9 R8 B )
. s! d; j7 j: z: I' e( m
/ j. e A5 b8 m( c/ L& s3 _6 R (setq pt1 (list x1 y1 z1)). j6 P2 T$ V& q8 ^' _1 W N4 \
(tempmod xscale 41 nil)/ U B7 E- c: J I) m8 \: @* |
(tempmod yscale 42 nil)
8 d& W4 w7 z: B! q (tempmod zscale 43 nil)9 K/ x% t. t" o$ l. ?/ j- R8 R
(tempmod col-sp 44 nil)6 Z$ G5 V% l- z, ^/ @
(tempmod row-sp 45 nil)
% r" L: |. t3 u3 _ (tempmod columns 70 nil)
- }; `1 ? E2 _0 G" w/ _ (tempmod rows 71 nil)( d% w4 Y' H) @) D/ I8 k# m
(if (= xclipmode nil)
8 Q) @6 n% J, B9 K Z' M (entmod elist)! |# O: ^6 i& J4 Y
(setq xclipmode nil)
; N& ~- r5 M- z )
~1 j- z4 l {; h! Y (move_pt1 1)
& k' m8 s O- |/ u9 W& v# ^& W5 ?$ V+ b( D& E
;; Now do the rotation with the ROTATE command.$ V5 v# H7 [1 b& @
(if (/= old_rot rot)
0 K% m& h* B( d (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))2 v( C/ l3 ^4 _2 U4 t
(if attr ; Else, if attributes were modified,0 {; E$ j8 _0 W8 A5 Z! x- Y8 j
(entupd ename) ; just regen to force attrib display
' V1 t9 z: `2 o+ [ )
" c0 h( U. G5 F/ [, p )1 K0 ~7 `2 V4 o: f; |, ?
(setq elist (entget ename)), O& C2 s0 c# ^5 p) S' j; \0 k# y
)) P8 w- B7 K2 C
(defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath), X* t8 t; {% p5 T7 q
(setq newhatch 0) m/ g7 O! k- L9 _4 X# k
(setq blkname (cdr (assoc 2 elist)))
0 T- `3 o- T+ P; H; [5 ? (setq blklist (tblsearch "block" blkname))( W, C" u- ?* Y/ d- O# [, C& O
(setq blktype (cdr (assoc 70 blklist)))
+ G; T% j' U( R; k' L$ Q (setq xcliponoff 0)# P! j& G/ n! O$ n, @! |
(if (or (= blktype 0)(= blktype 36))
: i" q% |& r6 T4 g9 } (progn1 \. D# P# `, c. K* o/ [3 {
(setq xcliponoff (xclipon elist))1 Z1 v6 k4 \# _
(setq temp_xclip xcliponoff)6 u6 w/ Y K# |6 v2 b6 v0 {( ?
); [" ]/ m/ ?( Z) `" U$ k
)0 l+ n2 K+ m$ [5 u, S
(if (= (logand blktype 4) 4)8 }/ F! \5 E& I6 w. ~* }8 B
(progn+ P2 V( \. W4 O) W$ A, j
(setq xrefpath (cdr (assoc 1 blklist)))
{; C; |; C! C1 b (setq help_entry "modify_External_Reference_dialog")& y0 \( Y2 j+ V0 W ^" t* `$ ?
(if (not (new_dialog "ddxref" dcl_id)) (exit))
0 ~8 o J! {: p# U2 s2 R+ J: o (set_tile "Bl_name" blkname)
. q: @& O) g t) |, x (set_tile "path" xrefpath)
0 S9 _& J0 P" M$ |2 T D2 K5 V5 m( t )
5 N/ u+ s1 P$ C$ m (progn
4 _6 \% v. p0 N [1 g- P8 J" E ;; Get program name for use as Xdata app name) Q0 @0 k" @3 W# x& M
(if (not (setq program (getvar "program")))
* s! p/ U3 {& ?* d$ B6 [" D (setq program "acad"), d* t* q2 W- s
)
* _6 ^ m* W% |# b/ \+ ]6 i (if (and (setq temp (assoc -3 (entget ename (list program))))
+ H) w# S$ H# G (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
, c' t0 K) F8 Q/ l% o (assoc 1005 (cdadr temp))" o5 C: [; E2 M, N- F
)
$ L- H, C, l& _) X1 m (progn) S" ]5 X% v9 ?; k
(setq newhatch 1); P& W2 z b; w0 w# h$ V4 ^, q
(setq help_entry "modify_Hatch_dialog")
' y4 ^- l5 y( N( C. ]: f0 [, h ;;; convert the object into a new hatch! y) H5 S, o; t& @5 N6 F
(ai_undo_on) ;; enable undo
, W+ I( L- _: X0 S1 O. L9 d (COMMAND "_.UNDO" "_Mark")
! M: J* K7 {, R; ^/ b" e (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")$ r$ n, s- p3 Q9 _# {
;;; suppress nasty message from convert command
, u7 a7 k# l% X, K; W7 ~ (princ "\r \r")
7 k& y6 n0 {5 H) A* b. R1 |! W (setq elist (entget (setq ename (cdr (assoc -1 elist)))))) V% K7 c7 N! `
(setq old-elist elist)
* [8 x% z5 l& E# k) G0 R ;;; If we have cancelled ddmodify
5 X9 Q2 `: S( b: b% E (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok3 k3 Z8 Z0 X% `
(command "_.UNDO" "_Back")
" U! ?. W: Z5 Q0 d4 ?2 W )0 v/ J; }: t& C: H. W
(ai_undo_off) ;; restore undo state; ~) g; F: Y- t) u" u
)" s, t# U- [, c9 q A
(progn/ ~8 L( s/ C1 ?/ u- T9 A
(if (not (new_dialog "ddblock" dcl_id)) (exit))
* {5 | X' J! R (if ( = "*" (substr blkname 1 1)); B( \7 V* p8 A# C$ d
(set_tile "Bl_name" (strcat blkname " - Anonymous block"))- h- j& ?$ B! t7 P; `
(set_tile "Bl_name" blkname)
# |5 t3 N6 ^ ?, L2 F/ y )
4 x5 S/ L& B: ~9 a! g (setq help_entry "modify_Block_Insertion_dialog")
- w. W6 K/ E* y0 [ ). f! q' Y* n5 j1 g# j2 k
)/ O: S( W# c4 S; e/ F
)5 O1 k: ?! V. J
)
0 y$ l5 z& f" x3 n4 Y (if (= newhatch 0)# ^9 k* B$ S, O1 j
(progn j! i4 H( k- M5 ]( V; K3 \' D
(set_tile_props)
; u8 u' n: ]! P (set_tile_handle)
) A$ g, p' |- @( Y5 d: y, V0 _ (set_tile_pt1 1)
0 m/ A i" N. j; H (set_tile_rot)
) Y" t0 [$ x4 E) {: ]. D- M (set_tile_scale)1 Y# J/ \, M* W: Y8 ^, i: a
(set_tile_rc)
* P3 |# ?6 `4 f# y t (if (= (logand blktype 1) 1)+ ]2 {& v9 m- D
(progn" _* t, Y6 V7 h! I; h
(mode_tile "xscale" 1)
1 o7 }9 v# F& r (mode_tile "yscale" 1)8 N" E* v1 n; U! k( }) Z9 ~% h
(mode_tile "zscale" 1)
4 e6 q6 y( [7 L- k0 Z D% ? (mode_tile "rot" 1)0 j- T8 a( y [) V
(mode_tile "columns" 1)2 H; ^0 ?7 V8 g6 ~. x
(mode_tile "rows" 1)
1 R o+ |# Z, B9 y# \! u5 C (mode_tile "col_sp" 1)( r4 [9 V8 \: Z- X2 f/ m
(mode_tile "row_sp" 1)2 Z& \/ j) k; k: e r3 r
)" B: f, l$ c1 ^* o* f$ ^
)
) p/ S3 K+ c# \8 E ;; Define action for tiles
& U7 t2 h# S1 r2 \ (set_action_tiles)
) }% q4 T( m1 P- Z (setq dialog-state (start_dialog))
/ S* e4 v, ^) H3 j# U (cond
! g3 L. k0 c: [( K. s$ R" N ( (eq dialog-state 0)
5 \- n% e: f! b4 F0 y (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
/ G- L3 F; s% ~8 U7 A5 a( W9 |6 y* ~ (move_pt1 1)4 k# g0 S9 ~* J& g
(reset))
0 j7 F, ]& [: Q# m9 Y: A ( (eq dialog-state 1)
6 f, x, p# F) X; ~/ S& \ _ (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))( e& z: U+ L4 X4 [4 G
(xclip)
" F! l2 o. i0 M )" j! q) m3 H( w) _4 D
(modify_block))
/ C) x$ D' p+ C, |3 [2 Z \$ y0 m ( (eq dialog-state 3)* ~/ D1 Q$ N u1 P8 ~' O# T
(modify_block)) X6 ~, p: B8 m9 l5 K1 R3 j
(setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))) o, `3 D: l6 h) o1 I" Y3 |6 K
(move_pt1 1)" a# o+ _0 a6 b7 u0 }: L9 T3 }
(ddblock))
$ V F) s5 ~, z ( (eq dialog-state 4)
' N5 p2 A7 _. e& z% P$ Y- H) F. C (modify_block)& H9 q. v0 b+ R' P# i& _2 Z
;; Get current handle.
0 N: }5 ~$ s7 {" }. b (setq hand (cdr (assoc 5 elist)))) p3 V1 h( K) [5 y# K% F4 c; X, M
(command "_hatchedit" ename)
; P, y% ]2 N. K# N; ~: P ;; If OK in hatchedit, a *new* entity is created and the old one& m& c+ V8 ~: s" _) h
;; is deleted. So if the old one exists, it must have been a; E3 f% K: L) [- H1 o
;; so rest the entity.
: x, L p' @" F& f- }! _1 t* z (if (entget (handent hand)) (reset))5 _7 V0 L9 n. H) A2 }7 E% \
)3 i& v0 d) M" p8 N
); C! k" g1 c7 U( O. u/ h
) v( I0 o/ d& t
), k- I! }* b) q c: z" a/ J
)* V3 A! ^ s8 e/ T5 [
;;$ Z' K" ?) c' L
;; Modify SHAPE- \. g! M# C$ r! x
;;
6 R8 w- T, u, M* e. w (defun modify_shape ()" F3 k4 \' m$ E" e5 O
(modify_properties)
* Y6 ^- `$ c6 _( K (setq pt1 (list x1 y1 z1))* i Y \1 w! R. u7 R
(tempmod pt1 10 1)4 T# {9 |4 _2 J( z Z
(tempmod hght 40 nil)
/ N! W5 N$ F& _+ c# l7 F (tempmod wid 41 nil)
% W) c# G' w2 a" s1 r (tempmod rot 50 nil)- Z# c! s8 f, r* P# U8 b
(tempmod obl 51 nil)- ]% T a7 S# I0 x5 ]7 ?- s7 ]
(entmod elist)0 ^3 x, }. \) Y6 w# b
)7 F% W. `5 R3 Y" v* B% F6 ^8 L+ G
6 f O; j0 b! ~
(defun ddshape ()& m' B& h% m0 D2 j9 n( ]) E. N
(if (not (new_dialog "ddshape" dcl_id)) (exit))
' j$ H3 |; J" c (set_tile_props); o4 l1 N- d' F" \4 V
(set_tile_handle)" N9 z+ @2 _# Z9 M3 i. S& a0 j
(set_tile_pt1 1)* g: Q" A$ M0 S% `1 j
(set_tile_rot)3 R* l$ |3 Z- [' ]8 J& J
(set_tile_hght)
& ?; A" m. Y0 k (set_tile_wid)! ^! `. p! c- n7 {2 h
(set_tile_obl): h* L/ t6 D% A( r
(set_tile "sh_name" (cdr (assoc 2 elist)))
, Y |& Z& l& W/ u3 a, e% v ;; Define action for tiles0 x: W) V- T+ S6 H" h9 H' Z, n
(set_action_tiles)' D9 g' s; b2 I/ v' P5 {& _8 ^, o
(setq dialog-state (start_dialog))
) M9 a. P, w/ @6 ` (if (= dialog-state 0)6 j* K+ Z$ [3 U7 Q1 I9 b) z
(reset)' |0 ^- z: n. A e" c+ E2 w
). L5 _3 H# F; u+ K6 v
(if (= dialog-state 1)* P0 ]1 z B& m# X+ @! b
(modify_shape)
% K0 z3 l" \. ?" @* E% ?# Y- z )" @5 g7 \3 `$ V L
(if (= dialog-state 3)2 H( w) l6 [! E0 Z& r0 k/ Q3 N
(progn
+ U: z) t$ v2 G( m1 o9 s) t (modify_shape) a" D8 X- h: T) n# O$ F* _
(setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
+ J+ }1 ?) m/ f6 S (ver_pt1 1)& G5 C2 z; o# i4 f
(ddshape)2 E, D+ S7 G" k4 g, w" o; O8 t
)
/ C6 T; }6 H0 U+ d )
7 B/ ^3 j% I. _6 a4 ~ ), |2 p3 a! N4 `- h
;;& d; }: j* O5 H3 J( N1 O
;; Modify TEXT or ATTDEF
3 Y6 `# B) ^& T+ Y- R$ [$ `6 w ;;
1 E- i4 F9 W9 l$ \# b F) \( ` ;; Set bit code for upside-down and backwards setting7 m* I) x; K" k, j; m+ C
;;
: K! O7 n2 J9 T# w, i8 B (defun code_71 ()
1 \& S. h A7 O1 y8 C3 O (cond ((and (= bkwd "0") (= upsd "0")) 0)
8 f, d2 Z* H9 R l# B7 ^; y3 o ((and (= bkwd "1") (= upsd "0")) 2)
+ H$ z) n1 s8 q1 H; X ((and (= bkwd "0") (= upsd "1")) 4)' a5 O7 u( K c' A
((and (= bkwd "1") (= upsd "1")) 6)" c/ E; [0 h" t/ M9 F P
)$ o9 Z( J7 Q' f2 r. {. H0 i
)3 r" C: @, q8 C( ]: p1 P
;;* _% Q) {% D z
;; Style action. Reset widget values to style defaults' }4 Q ^( d1 Q; e! F6 E S
;;
- c' l2 }' d* K) a (defun style_act (index / style-list)" N9 `9 J' K+ J; \+ T0 T
(setq style-idx (atoi index))7 A7 t) _& @, @& T# y8 z
(setq tstyle (nth style-idx slist))
" Q, R t( j d (setq style-idx (itoa style-idx))% |0 b; l2 X, X
(set_tile "style" style-idx)) f% d( y) G3 t$ }; X' V- I
(setq style-list (tblsearch "style" tstyle))
; X) \0 C5 Z/ _; c (setq shght (cdr (assoc 40 style-list)))
: A' ^0 U- b: R/ T( @& D# i (if (/= shght 0)
7 A9 f& H5 _- W W (progn* P0 G A% i% Y6 `" O
(setq hght shght)( D: w" H2 }! \ C+ k
(set_tile "hght" (ai_rtos hght))
( b& W) V' g1 u1 E% h' h )
2 v1 C& e/ X# G) h$ l9 A R ): j6 ^/ U7 x" {+ O6 J7 T
(setq wid (cdr (assoc 41 style-list))): E5 S: F0 y0 H; L+ N+ f0 G
(set_tile "wid" (ai_rtos wid))+ z w# Y/ ~3 R8 S' c& H
(setq obl (cdr (assoc 50 style-list)))
- Q' S( G5 F/ l. L# J x1 g (set_tile "obl" (ai_angtos obl))1 u6 D# x! \" T: p- ^
(setq bk-up (cdr (assoc 71 style-list)))2 l- Y) \4 F' ]2 e" G( `2 _
(if (= (logand bk-up 2) 2)
! k4 @1 c6 I9 F m+ W4 M" y (set_tile "bkwd" (itoa (setq bkwd 1)))
& z! c/ m9 l/ Z J* n. [6 k- T (set_tile "bkwd" (itoa (setq bkwd 0)))
$ k+ Q/ A( t1 N& `7 q3 q )* i' z8 o) a( A) a3 D5 _) f7 Q& k& l
(if (= (logand bk-up 4) 4)! F2 R, k; D! m9 ` E' ?* V5 a
(set_tile "upsd" (itoa (setq upsd 1)))9 h \0 }, O- M: K
(set_tile "upsd" (itoa (setq upsd 0)))
2 q( K+ N6 Y$ Q, E+ t4 E+ r" B# \ )
0 R/ a3 e6 p9 V3 A; h )
7 k: M; N) T1 C3 I: N ;;
+ `% l# t/ x" d/ L ;; Justification action. Set vertical and horizontal alignment variables,8 A1 i, R/ y$ Z! V/ c0 V
;; grey out rotation and height if alignment = "aligned", grey out rotation
$ F& M7 l' \. L' w ;; if alignment = "fit".
6 ~! T" B: B( a' N ;;5 L; C! G2 I8 q1 ^: H
(defun jlist_act (index / templist)
& P+ e1 z f0 E& A. V (setq just-idx (atoi index))
: U& L0 k& W/ o6 y (cond4 m7 V8 V# h+ z8 \
((= just-idx 0) (setq va 0 ha 0))0 u) l- C& x2 u3 \( e
((= just-idx 1) (setq va 0 ha 1))
n3 u# b; G8 y/ n) n ((= just-idx 2) (setq va 0 ha 2))
! ?6 {9 B& G% }. d ((= just-idx 3) (setq va 0 ha 3))6 I0 {7 a: F) [ r, j4 ]
((= just-idx 4) (setq va 0 ha 4))! e6 Q5 _& z0 b
((= just-idx 5) (setq va 0 ha 5))) q v, I' x- q& s" ~
((= just-idx 6) (setq va 3 ha 0))
3 s, I% e1 @) J ((= just-idx 7) (setq va 3 ha 1))
8 r! r/ v& E) M5 g/ } ((= just-idx 8) (setq va 3 ha 2))
1 c- X0 D) \/ c1 R9 p( R8 d5 n; g ((= just-idx 9) (setq va 2 ha 0)). n! X. U: T. ~4 e$ u- G5 `
((= just-idx 10) (setq va 2 ha 1)): \# n& U7 V# K; m+ Q4 W( |, U
((= just-idx 11) (setq va 2 ha 2))6 h+ Y& x. t; a1 Z# p
((= just-idx 12) (setq va 1 ha 0))& @" Z& z/ v/ D7 m( r6 l
((= just-idx 13) (setq va 1 ha 1))5 Z5 P3 T5 z* F. M. G0 L
((= just-idx 14) (setq va 1 ha 2))3 ~6 P, j8 {8 m* B2 a
); |( q4 x% }+ P% D
(if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
2 w& A1 @" u* B- m9 O: K c (mode_tile "rot" 1)% G+ E2 A- k; T7 c2 Z$ Z2 F3 R
(mode_tile "rot" 0)
+ t1 F% t$ r3 z0 j/ w )5 A6 r, o& V3 a0 }4 U8 S
(if (= ha 3) ; If Aligned text
- P/ m8 b1 m$ D2 j# h' K (mode_tile "hght" 1)
+ y% C j$ |" b0 L' e1 M (mode_tile "hght" 0)
2 ~: z. |1 W* \ )& Q: | G; {6 m& U J$ B9 Q
(if (= ha 5) ; If Fit text# `& e8 J+ i* F$ `( d
(mode_tile "wid" 1)
/ r4 S$ d. ]5 \: j, S" M/ G (mode_tile "wid" 0)
! c: Y* a3 h7 g- _3 Y* y )$ ^% w+ B& {9 r; R
;; Reset rotation and height if changing from aligned.
! t$ w% E1 w1 D% ]/ p4 p (if (and (= ha-prev 3) (/= ha 3))
+ s4 B& v8 ~. @; U+ V: x. h. W2 m, Q. i (progn) ]# e5 r6 r' B+ t# p% d( Z
(set_tile "rot" (ai_angtos (setq rot 0.0)))
/ {2 a' v A- x! `7 s7 X# _ (set_tile "hght" (ai_rtos (setq hght 1.0)))
& \; u& j6 v+ Z& }) g2 l )
! w, F+ f$ ^% d# ~$ x0 e. b )" i! t4 x+ I5 _; Y& ]- w4 [
9 r- S, ?! h: H) }
;; Reset rotation and width if changing from fit.2 D5 d& R- |6 y% g! T% L4 n
(if (and (= ha-prev 5) (/= ha 5))" K6 e5 G7 m- x. [! _5 V
(progn5 h: C( B- \- g8 E
(set_tile "rot" (ai_angtos (setq rot 0.0)))
& M, f L5 l* S( b% r! R5 ? (set_tile "wid" (ai_rtos (setq wid 1.0)))+ G! f$ G1 T% N* z
)# ~# W. e% c9 d& N l+ `% T
)6 T5 U9 ]1 D/ B4 p+ G; r' y
; y1 V$ C( R9 U (setq ha-prev ha) ; update ha-prev for next time7 [' v2 L; V5 y. x; U4 Z4 b4 g
(setq just-idx (itoa just-idx))3 _+ L1 A C# w8 p4 e4 s
)
, I5 B$ j1 u/ l ;;
# @. d& F$ J" N }" c ;; Set intitial alignment setting based on vertical and horizontal alignment& B _3 H9 e8 N h& @
;; bit codes." r0 Z' i9 Q2 t$ | }" ^; F
;;+ z0 g% \7 Q% R4 ?) f4 e: k4 K" ?
(defun set_just_idx (), u4 C z; `2 Q; W# p7 [3 k% n
(cond
! B. f. X. P8 z7 U) k9 U ((= ha 0) ; Horiz alignment = Left
7 Y6 P& C8 a. t (cond
1 I( b3 b D/ [1 _% {& h* v9 \ ((= va 0) (setq just-idx "0"))5 z$ I5 y3 v) f2 y" R) w( X, k- ^
((= va 1) (setq just-idx "12"))
0 z" }& s: O4 V4 D1 n) ~& B ((= va 2) (setq just-idx "9"))
* Y8 ~: O, n8 g& l ((= va 3) (setq just-idx "6"))
9 C; O# y: N4 K& S2 n [# |8 O )
* j' e- q+ K X2 n )* y2 }+ B3 ` Q- u" f3 s4 U
((= ha 1) ; Horiz alignment = Center- D. z" a, ?- r, G: M" f
(cond4 f0 b0 E: d9 v. X, _* B
((= va 0) (setq just-idx "1"))& a3 b! c- N( w9 Y. S
((= va 1) (setq just-idx "13")): Z* n4 f# X: P, g4 y5 [
((= va 2) (setq just-idx "10"))) G" b$ @4 O; e q
((= va 3) (setq just-idx "7"))6 T7 Z1 ]9 [7 _. T# i* w
)
J- O4 ~# l/ e* G# J; s, g. g( v )
2 o/ ]5 A6 q w7 b% v$ \ ((= ha 2) ; Horiz alignment = Right* x# t) h, f% v7 ?* r; V' { W; q+ G
(cond5 W( I0 K$ v6 \0 E: j
((= va 0) (setq just-idx "2"))" q2 V6 c3 ]: k) C( }) K
((= va 1) (setq just-idx "14"))$ z- ?+ b& [3 e
((= va 2) (setq just-idx "11"))% _4 n: {" T' `% h/ A, m9 |+ }
((= va 3) (setq just-idx "8"))1 B: }6 N! C* U4 @1 g- d# r
)- u6 e& l' B$ {/ ^- t
)) t, o5 Q+ j6 V8 j& ~+ F# Y4 F* E
((= ha 3) (setq just-idx "3")) ; Aligned) N% `) J9 E3 q" T* A. e5 Y
((= ha 4) (setq just-idx "4")) ; Middle B! B0 \- \1 S$ a- S0 r' o+ I3 J# R
((= ha 5) (setq just-idx "5")) ; Fit( v7 Z+ ?- L% h
(T (setq just-idx "0"))
s/ n1 F W4 o0 Z )
! T& Y3 {/ F# W2 A just-idx- t9 O/ ?9 m1 j/ F8 u* Y* O
)
3 h, x3 u% Z) k0 v2 Y3 _7 ?$ ?9 ]4 z" Z7 g; n
(defun modify_text ()9 h: S- a, k7 E7 _# g6 @
;; insertion point
9 m& K4 s- ~" T2 R t' W& ^ f3 E (setq showpt (list x1 y1 z1)); P9 A( v% n6 {
(setq bit-10 (trans showpt 1 ename))2 O! o* s1 Q3 j" t7 B
;; alignment point% N1 s3 ?# m9 B9 l! u
;; for 'Aligned' or 'Fit', alignment point must be different' q8 Q, D0 l; a# w4 p
;; for all others, use insertion point
$ t6 U+ V% J% p! P* V5 f& {; w4 n ;; (ACAD will recompute insertion point)
" M8 E* I) Q1 |2 B) O& Y (if (or (= ha 3) (= ha 5))
% y1 {3 M; i# ~# [: d7 k (progn' r3 s* L. F+ E7 b
;; if no alignment point, fabricate one
9 h8 j3 e; W4 I* D" A- u (if (not alipt). I2 \# ]" b: q8 C
;; add text width to insertion point
0 ^# F" L" l* { (setq alipt
% C, c0 o5 `4 d7 I! T (list (+ (car showpt) (car (cadr (textbox elist))))/ |4 U0 k3 P' A x/ k, Q- } ^3 t
(cadr showpt)
3 f4 p; F# ~. `/ A (caddr showpt)4 e$ G+ S; p4 H% P
)* D& h ~: {$ ^' ]0 k1 T
)$ I4 C1 \3 b# `# a
)
+ n* |5 K0 N" ^8 p8 N3 N (setq bit-11 (trans alipt 1 ename))6 y: y7 l% X% b$ q
)3 p) _9 ]( V# I, c4 h( a1 n. a
(setq bit-11 bit-10). V$ i& E5 a. ^0 C9 ~7 l
), g# `& T' Q$ c
(modify_properties), S. I/ C% r' ? i" f
(tempmod tstyle 7 nil)
; k2 ]- T+ m; K( ? (tempmod bit-10 10 nil)* D" D9 ]+ a0 ^+ x$ @; M
(tempmod bit-11 11 nil)
6 } o) o) F+ P9 b$ Y+ s (tempmod text 1 nil)
$ W! F2 d5 o7 L& S+ X+ P (tempmod hght 40 nil)
! g5 L: J( [7 a0 {; o* \5 r (tempmod wid 41 nil)
& C @9 a* t; ]4 B; W7 y (tempmod rot 50 nil)
5 M% I" f+ e! O. r (tempmod obl 51 nil)5 @4 ~% N) a8 @. d' H/ a
(setq bk-up (+ (* bkwd 2) (* upsd 4)))2 H6 Z3 n$ p- [# ^
(tempmod bk-up 71 nil)" S5 D3 e, H1 |+ P: C
(tempmod ha 72 nil)) K% O. {& L" C8 y }
;; Attdefs use 74, text 73: R! ]2 u8 X3 P( g9 U6 K4 B
(if (= etype "ATTDEF")
n- D( Z# h9 i* {6 q/ L4 y (progn
$ }- W6 ?" ^: J5 p/ i" N (tempmod attag 2 nil)
+ B( B }6 I7 s: } (tempmod atprompt 3 nil)' g0 d8 s/ ~' r
(setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))- f% m* q' w* M
(tempmod icvp 70 nil)
. D' q y8 y! t (tempmod va 74 nil)
8 U* R8 Y/ r7 P* H, h )
' P: L. m' {! q6 O& r" G- ~ (tempmod va 73 nil)
( \ R U6 L0 T2 ]1 D2 x, k$ C )' P: I) X: U D: ^# U9 \( W" ]
(entmod elist)
) g3 W6 `, s9 E, N/ @ )/ ^ v. V [& J" [5 y) J+ M
! T W0 O; G6 o0 t+ K (defun ddtext (/ 2ndpt slist i)5 n( @' {# F% S9 e
(if (= etype "TEXT")
( ~! p! X% s q% I1 S4 m8 S (if (not (new_dialog "ddtext" dcl_id)) (exit))2 u2 _7 \ m q. @! i
(if (not (new_dialog "ddattdef" dcl_id)) (exit))
6 F8 p* P% @! ^ ): V& A/ b0 k' r4 u4 s7 y
(set_tile_props)& F5 H" k0 L1 @: w
(set_tile_handle)( G& d0 H. h& t8 C' O. e% q+ u
(set_tile_text)' o( a4 b+ `0 j% u" Q5 |
(set_tile_tag)# N! z$ R9 I' [$ K; m4 p4 a
(set_tile_prompt)
" `: `& h$ R9 Z (set_tile_hght)* G+ e0 W- ?: Q
(set_tile_wid)
. `* S0 ^: W/ e) \) {' S (set_tile_rot)
9 q4 L. i( Y+ ~7 W (set_tile_obl)
& z' m) Q8 S* V (set_tile_bk-up)+ J5 _7 n3 z' G; E/ ?6 W" g; |
(set_tile_icvp)3 B8 B# I, |' Y; m
(set_tile_style)- S3 ^' n+ E! p+ W% r
(set_tile_just)0 M/ N7 u8 p5 y( x% T) u
(setq pt1 (trans (cdr (assoc 10 elist)) ename 1))8 ~' @5 e- t! t9 B+ A
(if (not (assoc 11 elist)), W+ a/ s$ G2 }3 @
(progn (setq pt2 pt1)- Y$ X8 p6 F6 ^) U& ]+ I$ e
(setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
l# P& B$ i% \$ ]; c )
, r% r) A; N. i6 @! e x5 x7 L;;(trans '(0.0 0.0 0.0) ename 1))
6 s# X% V% ?# o* r (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))* c2 S4 M1 W3 q8 I( k; m g; A6 `
)
/ f i) X: R3 D% g3 n (if (or (and (= ha 0) (= va 0))
. Q$ W5 a, s/ M* b8 w4 } (= ha 3)
& G+ [1 T% f+ ^( ^% { (= ha 5)
7 R( W, P( J0 e e )
2 L {) x' B, t, J- }' K (setq showpt pt1)
* }, W. x+ D* G$ {# P N, E- b* B (setq showpt pt2)) T, V$ H; j4 V; _9 W. K
)
8 Z; _# W! j) P R (if (or (= ha 3) (= ha 5))# W5 S% E& o5 v- x+ q4 U
(setq alipt pt2)
% D: B% T% B& d (setq alipt nil)
" O- Z4 a+ G; \( G) j9 g& s )
$ Z$ o8 w9 C/ b! f
5 i3 c8 O/ \ u0 R* Y q (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
8 H& t: n g8 d( {7 w+ ^ (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))/ b, s$ \( f+ n* H
(set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))/ ~) K p1 D2 ]. p4 B Y
- n+ l, `' L( y% _+ j8 u; F3 B ;; Define action for tiles- j7 `' N" l6 q* Z* L( d
(set_action_tiles)
% x* o0 \8 {& y+ T4 z ;; Set focus initially to the text edit box.
, ~! w7 X8 a! Y8 D" ` (if (not i) (progn (mode_tile "t_string" 2)(setq i 1))), M$ K; g5 R! q
(setq dialog-state (start_dialog))
9 i, K) M5 B- \) e; y- Q& T, W (if (= dialog-state 0)) ~& a" v @6 @+ j% {) f: R5 S
(reset)! f5 \7 C: o5 S3 n% _6 m% \
). \1 S' Z0 e J- T* A& e
(if (= dialog-state 1)" n/ Z ^6 ?: c2 q
(modify_text)
$ d4 ]1 o6 ~! j, r5 }& } )
7 j3 q3 @3 d D4 Y; E8 h- S' l (if (= dialog-state 3)# \$ H* Z( J8 p2 G3 B, m
(progn
3 M+ f4 U K$ J4 Y; p# v H (modify_text)
% Y x' x7 N8 e9 y) h9 l (if (or (= ha 3) (= ha 5))
" e2 X/ q$ q. J9 S (progn; p( S, A2 u/ Z$ ~0 [+ k: J1 v
(setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))4 M# x/ D5 f! H- D
(if (not showpt)4 [; _9 S- {. q, P5 M. c" ]
(setq showpt (list x1 y1 z1))
* B1 V& N. N6 B. h$ z K; k. h )" e5 x3 z' |* G+ E. S
(setq 2ndpt (getpoint showpt "\nSecond point: "))5 Z+ y( u1 j- v
(if 2ndpt: B2 D" [/ v! X' r. A* M
(progn
: c# i, c, r7 J3 ]7 b (setq alipt 2ndpt)
% E' W7 L( N3 D. Q9 ? (tempmod showpt 10 1)
' r- P- A/ ^6 L (tempmod alipt 11 1)( K7 J, }" H+ M* ?1 c$ r9 b6 f ^
(entmod elist)
: l, Z) K9 ?: h2 S& ^( I2 Z7 N7 t, } )
. c- Y2 k. u2 e& U3 E; d& C: h ), P! t4 i6 j9 g7 R5 R' y1 C
(setq elist (entget ename))
_' Z4 k3 _' y3 Q/ d )0 I5 r7 Z* [: D' r
(progn. R* o& W. q6 a m2 \/ _. `& Z
(setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))/ V* b2 A9 z; y7 }
(if showpt% U6 M, e: ^ m. D9 O
(progn! ^7 u/ b6 g; c( Y- T
(if (and (= ha 0) (= va 0))
# @7 n: V1 L$ A (tempmod showpt 10 1); X, ^) e& r/ y g3 s. F& B& D
(tempmod showpt 11 1)
1 u K' c' x" |: t )! C/ n# f, r8 K& e+ ~
(entmod elist)0 H& y: B7 Z: z( ^0 }8 F! ` i+ z j
)
; R# U2 l# u' K (setq showpt (list x1 y1 z1))% q4 U9 u3 ]2 A8 R$ R- ?9 `& |
)
) u4 C0 V+ @ B# L4 h7 v )4 F8 o- F H% W0 t( z
)
# U8 g: d+ F! B (ddtext)' U- h0 k* a1 N- x
)
3 j/ F6 B0 m" d$ H5 p& f4 t )
7 w) Y( P* u% E4 \. q )
. K! F# e" M& z- \* D0 F0 Q% d) L5 `2 w, i% O
;;
8 {6 \6 @6 U% a. L ;; Modify MTEXT% G& V5 a8 ` F9 C" W9 E; P: [
;;, G7 f) ]' u3 g/ V2 o9 t6 Y* k
(defun modify_mtext ()
' p1 i+ _. j. U" H (modify_properties)$ `% k. P! b/ J$ i! G7 q/ V) c( x
(setq pt1 (list x1 y1 z1))0 C5 b* l9 q- F Q2 Z7 a& d! T
(tempmod pt1 10 0)
( D1 E* W1 G% W4 o# C' w. {/ J7 R& [( H (tempmod text 1 nil). J P& V6 u. ~+ Z! b" O
(tempmod tstyle 7 nil)
0 o$ L9 r: O0 F (tempmod just-idx 71 nil)
; w% X9 f8 p2 u( ^ (cond/ m4 ?* ?* F9 Y; S) f+ g# {! O
((= dir-idx 0) (setq dir-idx 1))
( g, T( H) ^3 l ((= dir-idx 1) (setq dir-idx 3))
2 J' B \: h( z5 a1 V' x0 v3 [ ((= dir-idx 2) (setq dir-idx 5))
% A6 x0 P% Z- \, X% ^ (T (setq dir-idx 1))
: j2 E; s7 y* ]0 e+ r3 } )% n8 j& X1 g4 t7 B/ Z- ` h
(tempmod dir-idx 72 nil)/ u" e% k3 c7 m: r6 K& a# g% n9 \# e
(tempmod hght 40 nil)* b/ g' n% t2 F- \, Z
(tempmod wid 41 nil)8 l5 |. r5 m& D' B
(tempmod rot 50 nil)" h g: r6 C4 i2 m3 ~8 L, q
(entmod elist)0 w9 K# _6 ? M$ [& Y( e
)
1 d, D$ o. i3 k& a/ V+ n* ~2 j X Z+ J
$ M5 n7 {% ?$ E# ]7 K ;; Set MText text style1 {' O% i0 Y u8 X$ t0 x
(defun MText_style (index / style-list)
* X, i& {" ?1 {) M( I (setq style-idx (atoi index))! V3 G3 G; Z" v! q
(setq tstyle (nth style-idx slist))
) {6 t9 n- ]/ Y# U1 i2 [ (setq style-idx (itoa style-idx))
5 |2 R4 E# ?7 H) B) C7 e: t" }7 G (set_tile "style" style-idx). R6 ^% ~. {" m3 f' _- |
(setq style-list (tblsearch "style" tstyle))- R& y* m1 {/ E" e J7 t$ g
(setq shght (cdr (assoc 40 style-list)))' ]$ h' M2 P5 B- m
(if (/= shght 0)6 t) _/ S1 T+ p5 ]: a: R7 p+ h% i) ~
(progn$ g) f2 ~/ [2 b
(setq hght shght)$ P) B- p' q' ?6 \; u& ~
(set_tile "hght" (ai_rtos hght))
/ j! F% ~8 g8 [" p: Q! A. K )
. s2 Y, C( Q0 u# x& j# T )
; p7 o$ F. t( W' J" F ), M' B, |; l5 J
1 h. h6 y3 ^* D# `
;; Run DDEDIT on given entity, working around possible re-entrancy
+ M j0 n% {- S. Y( R ;; problems with MTEXTED _( g1 Q4 l$ K/ N( r" s
(defun safe_ddedit (ename / orgMTextEd work)
2 ^; s: [ X9 M (setq orgMTextEd (getvar "MTEXTED"))$ o) [/ o+ U# z+ j$ R; {
(setq work orgMTextEd)
( b2 |3 g) K, \. t9 ] (if (= ":" (substr work 1 1))" g* l* Z+ ?& N4 r# H
(progn
7 _% o+ A; }/ h; T/ ? (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))3 U) h v; E- L4 V+ s- h
(setq work (substr work 2))
4 @5 F& P6 J: i* h1 c7 i! m ). R* v* z/ N6 u9 l
(if (= "#" (substr work 1 1)) _* k, A* b- ~1 R# k1 X; H$ g
(setq work (substr work 2)). w& N2 A1 ~! R: V$ Z' n
)- M; o" M' K% n4 y7 N
(setvar "MTEXTED" work)
4 j$ N1 r6 S+ O. D8 n ` { )9 M- }) b; U* F2 s6 Q: ^
)7 L/ k& k0 q `$ T( }; I3 x
(verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...$ ?& c+ P& s2 `
(command "_DDEDIT" ename ""). S8 e. W, b: w J" ~. r( I
(setvar "MTEXTED" orgMTextEd)
a7 E: F4 O( F9 O. e; H# {" Z/ f )
1 t6 F. h; w4 I3 E" t( U4 d1 ]# \
: _- M h% u" m% U7 ~# S$ F. k* r$ q( f ;; Verify MText object width5 D) `* W& \$ D% U. K6 ?; Z6 n R
(defun ver_MtextWidth (value)! t( E- b7 z- v& u: D
(setq value (distof value))
" K4 d9 X; y: M0 r/ u; G (set_tile "MTextWidth" (ai_rtos value))
( F8 w) K8 {8 B# z" v (set_tile "error" "")) ^% `; D" z# x
(if (< value 0.0)
( y# D0 A c+ K3 p' @ (set_tile "error" "Value must be zero or positive.")
3 S" z* i4 `3 O+ \ (setq wid value)/ c) c8 h+ w* X- o
)2 T$ a4 @0 B& d; u# ^+ m7 p
)9 [. F9 ~, K; W# l% a9 z8 \- g
2 o2 Z- G: Q" d (defun ddmtext ( / gc3)) E7 R1 x' B& B% H
;; Get dialog9 F; }; C5 k4 e6 h+ u1 K0 Q
(if (not (new_dialog "ddmtext" dcl_id)) (exit))
9 f5 d+ a4 o9 D/ n# q
/ z; ^4 X3 Z/ U8 C, G ;; Load list boxes! a- j1 G9 b4 r p! V! n1 v
(start_list "MTextJustify"), x! B" q( q7 E7 o7 t( }$ U
(mapcar 'add_list '(
x! E* A4 I7 x( x& @8 P. l, \1 z "Top Left"
) K% f$ z5 W. o6 ` "Top Center" ?7 ` x0 s i0 I4 p' x
"Top Right"( E: C$ t0 j3 ^" `- U
"Middle Left"" H: x0 X( f5 \) r. ~3 u
"Middle Center"
6 q7 q+ E6 b/ L8 V/ p3 ?, T "Middle Right"
3 Z. I: x3 q% P8 f "Bottom Left"& ^0 @' D/ `5 d+ E, a
"Bottom Center"
$ o0 j( v; n6 A1 B "Bottom Right"6 ?3 H0 `1 M7 C, S
) I$ I h3 X4 O1 _* E/ U
), d8 q+ ~5 L+ F2 }, Y; N
(end_list)3 B$ q! z6 i& g
/ Y* Q4 A1 Z! }/ H* j6 s+ T% K (start_list "MTextDirection")
, _6 o7 s, p& J$ q" G, [0 N! |( t: h (mapcar 'add_list '( Q! O, V. j' Z) Q$ l0 \
"Horizontal"
" Q1 T- u; @* o- u) J U0 o+ Y% j& { "Vertical"
3 b$ @9 C/ y; K& M9 L+ O$ p "By Style"' ^' ]4 `* C# A/ v) {& U( h9 f& _+ Y2 r
); `- q) a8 K5 a( Z8 r
)
! k! `+ ~: q7 ]8 i0 Y+ r! ]# Z (end_list)
* f$ e! F& M2 R( S0 w
0 p1 N& X; z, Z+ f# Q5 |& z1 E0 W5 i ;; Set initial tile values2 P: C# ], x+ X- T; g) y
(set_tile_props)! N# F2 c3 s5 S0 l6 d
(set_tile_handle)) }% _. ~% q" T! m
(set_tile_pt1 0)
- K, P% a$ t" A7 k3 M' {5 N (set_tile_style)
9 [" r* \, Y7 I* B# q: U) A (setq just-idx (cdr (assoc 71 elist)))4 v& F0 o$ U* D- U9 ]# Y- u9 C# ]7 p
(set_tile "MTextJustify" (itoa (1- just-idx)))4 k6 [2 Z2 Z, ]5 t% [3 J: D
(setq dir-idx (cdr (assoc 72 elist)))8 j5 a7 s! g3 T( Q! k
(cond- h3 |+ O; G" C. f% ~; z& V: G
((= dir-idx 1) (setq dir-idx 0))
" |; Q6 c0 @5 D7 M1 F ((= dir-idx 2) (setq dir-idx 0))& O# e* U* F4 z! U8 O% l
((= dir-idx 3) (setq dir-idx 1))% t u# ~: F0 W) N6 d$ E
((= dir-idx 4) (setq dir-idx 1))
0 S9 p' `( J6 k1 s. Q ((= dir-idx 5) (setq dir-idx 2))! d% }! K. Z9 C$ f
(T (setq dir-idx 0))
0 G4 `, j9 J2 n' e: V- d ). K/ \3 D t. T/ C
(set_tile "MTextDirection" (itoa dir-idx))
( B4 F' c& `% ]( J$ R+ k (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))$ u: s9 s2 G) a
(set_tile_hght)
" L; D! y: O2 _$ a7 d' C7 @ (set_tile_rot)
% b8 _6 B/ Z' |( U6 I9 |
6 T3 d" L/ Q( ]7 G w0 h; C ;; Set edit box, disable if too long7 Y1 ]9 |) _8 D/ s
(setq gc3 (cdr (assoc 3 elist))
/ P4 g3 Q; w2 w4 x. I9 J2 v text (cdr (assoc 1 elist))), Q. ?3 e* q% ^- Z3 c) n2 r' }
(if gc3
8 t8 h& N- m6 l6 S/ y5 ` (progn ;; Text is over 250 chars, disable edit tile
7 V2 Z6 ^. I& H" ` (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))# X3 g1 b* A, d/ v# m
(mode_tile "t_string" 1)
! g% R4 n! Q- ?1 q3 q2 y8 y )$ n3 A0 u* A: q! M
(if (> (strlen text) 80)/ l! q. \: q- N+ f! ~& H7 K# Y! C
(progn ;; Still too big! o: f; o- z# R+ ~4 [* v
(set_tile "t_string" (strcat (substr text 1 25) " ..."))2 }( I% X4 d% m4 b
(mode_tile "t_string" 1)
$ X# O9 F, I- f4 ?% s l )
! Y; F% A& O' y4 ~ @7 J# s! i- g (set_tile "t_string" text)/ E7 E; K2 J9 X6 a7 _- F. F) }- E( J
). ~7 ~. X6 d! l& V* E& C4 b) \
)
U: }( C7 P' {6 G
. i) ]+ m0 ?7 G. C. h5 _ ;; Define action for tiles
7 X$ Q: W2 z) O9 | (set_action_tiles)4 N1 ]* _$ l% g8 F6 m" s
(action_tile "style" "(MText_style $value)")/ d8 ]9 h6 G6 x
(action_tile "MTextWidth" "(ver_MtextWidth $value)")8 r7 l( b- r' X5 Y8 n4 }# i
(action_tile "MTextEdit" "(done_dialog 4)")
/ D& _, x8 q% c; G" a (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")" \. l% F: R' c% g' K* r
(action_tile "MTextDirection" "(setq dir-idx (atoi $value))")1 p$ s6 H2 n& q, o! C
- u% |* P- E5 k9 H. K! V# E- g
;; Set initial focus to text edit box.
- w! k% P. H8 n/ G0 x# o# i/ [" _ (mode_tile "t_string" 2), K8 k# z) P4 q
+ M/ Q( G$ c4 o7 T
;; Run the dialog) q9 k0 ^% p/ `: z& h: A
(setq dialog-state (start_dialog))
8 [% m$ u& ?: }5 e (cond
8 R' |# k, X f' \& W' P" y/ N, q ;; Cancelled - restore saved data
5 S {2 c* X1 u% n: Q+ y/ |6 H ((= dialog-state 0) (reset))
" ~$ n) L% O' G9 r- ]1 i# P ;; OK - save new data
, W9 [' N0 u5 [/ o+ o% `( e. W ((= dialog-state 1) (modify_mtext))
! B4 M" }0 k' A+ @ ;; Pick new insertion point
% o3 |6 x* M: F3 k ((= dialog-state 3)7 Z' |* X1 M+ |$ A2 P. R
(modify_mtext)
& k3 ]5 l" ~$ W; v (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
' Z T- V' J( }& \: j" V (ver_pt1 0)6 [( C" O) S) V6 _; U! U- n1 j
(ddmtext)
2 w ~; w$ U0 o9 q' n9 E )' J* p) A7 @- M! p
;; Run full editor
6 _9 J V0 A" d" V/ _7 e% S! q9 D7 o ((= dialog-state 4)
& L( ^3 E( W& L' O: u (modify_mtext)
: q, A. ]. N/ z5 D (safe_ddedit ename)
$ a3 N4 E5 C2 j7 j (setq elist (entget ename))
4 i5 G% N8 c% L* z- j% y% l( g (ddmtext). m! @* q! u! v: s2 b! c9 r3 X/ M
)4 s4 Y/ U0 A7 {1 Z8 k) {
(T nil)8 T) ~; d: [* @ }
)
! w2 ~9 s, k8 L6 D ): Z$ D0 `# _( m- B
" v! F) _; |$ C4 G8 p5 b( o; \- E
;;
7 p+ N! v5 O, G1 L, r ;; Modify VIEWPORT& L( \! O. Y, e# C/ S
;;
5 h* o: ~6 H0 }$ X, e1 V1 k' B& _4 B4 o2 N V9 c
(defun ddvport ()7 J8 w4 V& V% S& \9 ~) w/ T4 S' A
(if (not (new_dialog "ddvport" dcl_id)) (exit))
, A5 o6 j b* Q+ \. F (set_tile_props)
6 [! T% G7 J( r (set_tile_handle)
3 j6 e4 V( S$ I0 Q$ A (setq vpt (cdr (assoc 10 elist)))
) r0 v. J" V5 y: i (set_tile "xtext" (rtos (setq x1 (car vpt))))
, m0 O1 L+ }" R: J( L) l (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
1 f J* Q, B' B8 U1 ` r (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
, M1 U2 j- ~5 c! Y, R (setq wid (cdr (assoc 40 elist)))& ~* R4 Y3 k' `. Q9 q) O
(set_tile "wid" (rtos wid))
! y; a. s0 N+ [+ ?) [3 \ (setq hght (cdr (assoc 41 elist)))
, p! i% E; L8 r1 A (set_tile "hght" (rtos hght))$ Q! O& i3 `' Y
(setq vpid (cdr (assoc 69 elist)))3 L' k, U+ X# Q0 x: o; `
(set_tile "vpid" (itoa vpid))0 @, W7 d' `, R% m, @' Y4 t2 f0 k% K
(setq on-off (cdr (assoc 68 elist)))
0 H, \+ o2 V' k( r4 _+ _! Y (cond9 e6 a6 F4 k% B5 C5 g5 ~: j! u
((= on-off 0) (set_tile "on-off" "OFF"))
6 U( E# ~$ R6 H& Q ((> on-off 0) (set_tile "on-off" "ON and Active"))
& U' H$ d7 M6 g5 y" K (T (set_tile "on-off" "ON and Inactive"))
% [ i+ W$ X, ?! G0 Y8 K0 Y n )+ H! a8 @& k4 L, U+ T w
2 C/ P# x* n5 s3 S
;; Define action for tiles
, ?0 i* ~7 T1 ?' c. B4 p7 b3 M# t (set_action_tiles)% F ^% N! ~& ]/ ^$ T
J9 a+ s- Z9 g( Y' y, \
(setq dialog-state (start_dialog))
! x# E! J u6 x (if (= dialog-state 0)" c/ S9 V, c9 c* i
(reset), J9 T& N% E' b5 G0 m+ @* L
)4 w7 D9 }4 n, P# f! W9 M# R. j
(if (= dialog-state 1). d4 w+ u2 k1 Y- D
(progn5 E8 a- y7 \- y) v1 g5 _
(if (= ecolor 0) (setq ecolor "BYBLOCK"))1 i: x- v, F5 A" J
(if (= ecolor 256) (setq ecolor "BYLAYER"))
- Q, s7 @5 e- C3 _' f (command "_.chprop" ename ""
# o# t7 N9 P+ d0 ^2 X "_la" elayer
6 U2 H) k. Y3 w$ E "_c" ecolor ""+ N' w& v S: s
)( |( N; j2 d& ?) g' c/ n; H/ d
)
/ L- p! ]* x9 | )4 x3 S7 r/ J! @9 s
); r$ i' M+ _8 l% a& I6 Y. k
;;
5 D% b( N+ v8 Z/ s$ t: [ ;; Modify POLYLINE: g8 C, n# D# u
;;
4 [' A0 ~! n- |+ p" H8 k$ z (defun modify_polyline ()
" ?$ h7 c c( Z) `% R& ? (modify_properties)
/ Z2 l0 E5 ], I: a7 f0 h' I8 V! Q+ h0 ` (if (= ltgen "1")9 a" f0 _/ C9 B, ~
(if (/= (logand bit70 128) 128)9 T+ o# w9 C, h. [$ o
(setq bit70 (+ bit70 128)), }3 r; a5 h& C/ f6 o' P" S
)
2 d, \6 X; p6 r$ ~1 } ): D8 A6 E( z a7 p
(if (= ltgen "0")
, d3 b' Q7 R( N; C (if (= (logand bit70 128) 128), m7 z" o8 _! H8 l& y' `- o- `
(setq bit70 (- bit70 128))( }& b0 k9 P2 \0 ^; L
)
. A$ w! z+ K a- t5 F# b# n% \ )
0 H7 l* Y' H, {7 q (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
1 F6 w5 S# [) P) o# T (entmod elist)
, n$ S. r- u3 h/ E, |3 v; a: ^+ i ;; Added to take care of updating Vertex information for color5 t6 C2 P. y, g g4 _
;; and linetype.3 ?& b% \7 }' J' Z; v+ U; b
(setq save-ename ename save-elist elist)
W; M# Q9 w5 Y- d5 h# G, ]6 H (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
# G% @8 a# Z: ^( b, I C% ]$ e2 A (progn
: H& c8 E! _0 t' N* a y0 P) d. u1 N0 e (emod ecolor 62)
) w" U9 w- T+ F: _7 H (emod eltype 6)
! f1 [/ y/ h h& j4 @ (emod eltscale 48)
! T2 M# z) ?5 |" Y1 F0 i6 v& c (entmod elist)5 s% }4 t; d$ @0 x% Z- C8 H
)
_6 K' f0 j' b0 c- ?% j3 ] (progn. [. v5 D ~$ H
(setq ename (entnext save-ename))& v6 @, n/ u3 f8 C @7 t
(setq elist (entget ename))
j' \& M, \: T- ?% ?; F: d' E& R5 a% X( S& f, z
(while (not (= (cdr (assoc 0 elist)) "SEQEND"))! p; |* n: [. r8 V
(emod ecolor 62)
9 ?1 M8 v ^, @7 x* |- Y5 o5 N& G/ f (emod eltype 6)
: y, y1 G6 S/ s (emod eltscale 48)( k0 g# O% `5 F9 g2 Y' m6 u
(entmod elist)
) F+ O$ g6 T! a7 v( z (setq ename (entnext ename))) [6 z1 O# U6 Q$ K4 a
(setq elist (entget ename))$ T0 M* P9 p! o. z8 r
)
3 j6 n% z3 B1 {' u: T )
* l p$ `0 I4 P ): N9 R& ?' r/ i- j J
;; Update the SEQEND
5 z6 }/ p( o, ~; S/ _6 a (if (= (cdr (assoc 0 elist)) "SEQEND")& q( W7 Q3 g: @2 V p
(progn
2 m8 r# O0 u# i% k (emod ecolor 62)
. G: g. E* v# I1 Q% U t (emod eltype 6)
2 ?5 f. d9 _; I! L, p (emod eltscale 48)) ~; D& b7 g# w5 {8 L
(entmod elist)& P& M7 i% N+ @# a2 p, J- s
)* @, ] _9 |) F9 Z4 `0 q* f* w7 c
)' i! c. D' C$ T0 ~( s! a
;; Go back to header.
8 n$ j3 t4 j" y6 I& P# ~* a (setq ename save-ename elist save-elist)
# z; h" e9 I' N4 Q6 W/ }0 p& a
(entupd ename)
% n1 ~8 J9 T! q6 p% x% J4 b )
4 m8 Q+ C8 Z' O, v( c" M
1 f0 c) R- p* A) d ;; Increment vertex. Set tile values to next vertex
/ L! a7 x! c' z: s, U- p4 s ;;' p& F6 K4 G% U* R' W0 ~
(defun next_vertex ()
$ E% ^+ P1 e& H) @- }1 E (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
0 ?0 ~% x8 g! Y6 [) S (progn* V' D# u' o+ S. i. @+ H
;; If the counter reaches the number of vertices, d+ Y& t8 s5 S5 r% d( ?
;; roll it over to zero again.
/ J3 d7 I1 @2 T5 _4 c (if (= ctr (cdr (assoc 90 vlist)))
8 {0 ^% p. Y$ [: ^$ y, Z7 ~: Z! J (setq ctr 0): I) A7 S: R1 I g' ]+ z& a! K
)
1 r* F( ?* o9 m- V- |6 _ (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))/ |+ g8 }' ~! z- l
(set_tile_vpt pointype)3 k' {9 O9 X+ |/ X+ n
)
, b2 N6 K7 u* F# H h (progn0 Y; j' N, m9 p4 S y: Z
(setq vname (entnext vname))
/ L/ n! x% x6 D. R' ]" M3 v (setq vlist (entget vname)); _3 Q- j) P9 k3 s9 D: S4 b' X2 z
(if (= (cdr (assoc 0 vlist)) "VERTEX") v& V5 k6 ^1 l% `- E
(progn
1 M H7 g4 ]' v( \2 ~ (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
/ B# N" j8 K* j, Q' s- Y (set_tile_vpt pointype)0 p+ ~$ I* h; ^7 J
)
Y p2 h( C9 a4 Y' a' q (progn
3 _( Y! A' v5 u7 } (setq vname (entnext ename))
/ b2 J! d% I. X/ R (setq vlist (entget vname))& C# G P% Y& |: \% v
(set_tile_vpt pointype)' z& _7 I( ]: S* g4 S, F1 u3 `
(set_tile "ctr" (itoa (setq ctr 1)))- X! m7 P& E& h
)
; I N1 C9 Q D3 ~5 y0 z )' R3 s0 H, m; j0 o- j9 L- n
), Y, y+ p" |2 A8 y2 {
)7 ]: Z' u. S! v* J
)
' o. V% c, A, H$ _
: |% A. q; l" j' H (defun ddpline (/ oldecho)
6 o" n Y, z2 c* W3 J' z( k! a (if (not (new_dialog "ddpline" dcl_id)) (exit))
4 G% u/ f* U& \6 @ (set_tile_props)% F0 E. k4 z4 {# k
(set_tile_handle)
. j2 @4 A' k4 [5 V+ x4 @8 ~7 q# L/ Q (setq bit70 (cdr (assoc 70 elist)))
" {* b$ D6 ?4 ^8 o, d0 Z (setq bit75 (cdr (assoc 75 elist)))) Y5 K! {% l% K9 `: `; D
(cond
+ X( P, J h4 h: v ((= (logand bit70 8) 8) ; 3DPOLY5 T# L+ ^* l1 T
(set_tile "ptype" (setq pltype "3D polyline"))
, L! t; n' r* L8 W! ?7 o x (setq pointype 0) ; WCS or ECS point values
8 w/ r) B2 s3 q5 s- C9 e (mode_tile "fit" 1)
3 |6 J+ v0 s" t" U7 Q6 Z (mode_tile "mesh" 1)
2 k. P" U$ W$ P& t; y (mode_tile "bezier" 1)
N ]' D5 ^! l( E" u9 f8 R) G (mode_tile "ltgen" 1)
' @. f2 i6 A3 o" Y) V (set_tile "none" "1")
! E6 }6 Y8 E+ N+ d( w8 v (set_tile_closed)
; `3 ?- x& c# W; W- w (set_tile_fitsmooth)' S) F: K9 ^6 y: d! e i# u
)
6 n j5 U9 ?1 q ((= (logand bit70 16) 16) ; 3DMESH* \9 e" ?' ?, v3 K1 i
(set_tile "ptype" (setq pltype "3D mesh"))( O+ v+ ]+ X8 [ d- \7 y0 z
(setq pointype 0)2 M- h9 V5 {9 @+ I/ X M& G
(mode_tile "pline" 1)2 P8 [# X, q2 y" q
(mode_tile "fit" 1)
4 l' y0 \4 p/ \. b2 F (mode_tile "ltgen" 1)
: {8 |- t, E8 u/ D# y5 X2 L: V/ | (setq m (1- (cdr (assoc 71 elist))))
8 Z2 N2 e: t0 Q v4 y+ h6 ^9 H( ^ (setq n (1-(cdr (assoc 72 elist))))0 m/ K/ f: V* T Z; {2 m8 E
(setq u (1- (cdr (assoc 73 elist))))
* X8 Y. ?: u# V% x2 G# T (if (< u 0) (setq u 0))
# z! v8 g8 s9 R# x( i% i9 C (setq v (1- (cdr (assoc 74 elist))))
$ }& g& |: l6 {8 t$ D (if (< v 0) (setq v 0))8 e2 k, `7 N- q% [% o
(set_tile "m" (itoa m))6 P- M6 T& g* p" L6 a
(set_tile "n" (itoa n))6 a5 n8 `* @0 l
(set_tile "u" (itoa u))
( L0 i8 x! M1 C p g$ T (set_tile "v" (itoa v))' {$ A! s! b. ]
(set_tile_closed)
0 c' F7 d* W- ^( I# C4 D (set_tile_fitsmooth)
; u, ^- k' h6 |" i1 v/ u6 Z! y )4 I8 B1 \" y. ?. ?: P& T8 U
((= (logand bit70 64) 64) ; POLYFACE MESH+ y* e, {& G. L5 h8 P. p: y
(set_tile "ptype" (setq pltype "Polyface mesh"))
# ]2 }' O" p+ G0 w (setq pointype 0)
& [: t% {% l3 x0 ?6 C (mode_tile "f-s" 1)
4 h4 }) E1 ^( s' d" y$ C( i. t (mode_tile "mesh" 1)
' y# [3 C! |2 C8 @ (mode_tile "pline" 1)& S+ S- A7 w7 p( T& Z# B
)
' O% W* c; r9 b7 _& V! x0 Q* s (T ; 2D POLYLINE
8 g; g4 i1 h; K. K+ V' ~* g4 V (set_tile "ptype" (setq pltype "2D polyline")): n( q% [8 P6 @. ~
(setq pointype 1)6 O" Z/ B( j/ b |0 Z! d/ l
(mode_tile "bezier" 1)
+ t3 i+ N0 }$ f3 J (mode_tile "mesh" 1)
/ v o5 i; v |6 W5 j0 _! ]! f (if (= (logand bit70 128) 128)# I' G7 v; z' z) I- z
(set_tile "ltgen" (setq ltgen "1"))$ W8 b4 r) e v: [( U. @
)5 B$ n. ]6 n3 {$ q( o
(set_tile_closed)
8 m7 r6 N! V) r* m' g. \! } (set_tile_fitsmooth)
# a% F$ X9 g; R) K/ @4 s3 @# V ) H: A1 j: b; q* p. \2 k3 x/ T, C+ O
)( P7 Y6 k+ U7 Q) |5 X6 Y
; a6 I" f4 k) y7 Y4 s* S, w6 b (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
0 L" S7 H9 C- h& X' [ (progn
$ _, P9 S, g( m; t2 W! K8 t (if (not next) (setq vname ename))
0 r8 q; m/ b) B4 S8 m3 ?8 A5 O% x: l* ` (setq next T)1 r% C3 `4 v& s2 I& r& ^% ?
(set_tile "ctr" (itoa (setq ctr 1)))
1 Z6 ^5 b2 H' d3 V( p6 v; n, w (setq vlist (entget ename))
2 A+ a$ k8 u* Q" P/ G7 G )
; ~9 T# `" o2 _ (progn, U" X, \+ J' W
(if (not next) (setq vname (entnext ename))); j9 T4 s; ?' T4 }
(setq next T)% ^" Q! y0 k4 V7 A2 z0 V( W) S/ G4 ]1 B
(set_tile "ctr" (itoa (setq ctr 1)))
) ~3 @( z, Q! U( \" T2 m3 _3 l. Z (setq vlist (entget vname))
# z7 t5 y7 v% z. N1 h# G )
% F1 E7 a& }% G" [2 t! W )
! d% |1 T; T2 F% B (set_tile_vpt pointype)
8 |& Y( C' d. x: R3 {% }* A ;; Define action for tiles
3 J- Q% K( ]5 W (set_action_tiles)1 J) c2 r. g4 M
(setq dialog-state (start_dialog)), y7 \ o8 M& F# t7 S
7 p1 f, b$ l) O
(if (= dialog-state 0)
% T9 _: ]) \! S3 v" X (reset)
' F @0 x! I3 l Z. R2 B )
' ~, B' P; r0 q a (if (= dialog-state 1)' `; p8 K5 \+ u) Z W4 Y. o% h
(progn
5 p" q) J: |; g" H" O (modify_polyline)
" ?6 M0 k# T) j, j3 A (if (or (= pltype "2D polyline")
" ?& P6 ^% t5 ~" b$ e (= pltype "3D polyline")
; `6 H2 ^& m1 k3 i6 @ )
2 D/ [" ~6 l% A/ v9 H (progn) ]# o: w6 Q- I6 L/ b- g
(command "_.pedit" ename)
6 V- f& c2 n7 e5 f9 z; m: ?% m (if (= spltype 0) (command "_d"))* P* b( T. y% D+ t& r4 K8 \) J
(if (= spltype 1) (command "_f"))
% }6 o/ B6 {9 M& K7 \4 [8 @ (if (or (= spltype 5)4 A9 f# p) V8 h
(= spltype 6)
3 Q( y2 Y) q2 ^& ^5 q ), Z* p0 T1 Y5 H+ {$ V o- b
(progn: m+ M- D# M F" O4 N, d$ H
(setvar "splinetype" spltype)/ I% {5 _8 }# Q* x3 P3 u6 J
(command "_s")
5 Q: i6 n0 w% T1 O )
/ j+ y& s! _9 Z1 C3 g& N) K! B )* J: B5 R; N8 O: P' o+ j
(if (= closed "0")5 @* d; |/ w+ u# m( ]# p- Z
(command "_o")
/ r P% F0 F1 J8 N0 }$ u/ h+ n (command "_c")
c7 I# o* i9 _+ w& A )5 ^# ~ i0 J8 c0 b4 P" V. S7 N
(command "")
1 E) U6 o* O+ g) o) J5 g+ T% I' ] c* j- |! T
(if (= spltype 0)) s4 ?; v6 G+ U/ t$ i
(progn ^4 K+ J4 A- ~- K- R4 H
(setq oldecho (getvar "cmdecho"))
, O/ m; [( }2 p& h: S (command "_cmdecho" 0): U" a4 h, ]# x
(command "_convertpoly" "_light" ename "")! {, B0 y$ u) D2 Z( H, }
(command "_cmdecho" oldecho)- d/ j# R- d9 p
)6 ]- U) Z! Y2 v
)
, ?5 ~) J* m; g7 O2 H# J0 e2 W )
. T2 t& }' n* a0 h )
' j- I) @5 T$ P5 u' m/ f5 K1 k* y4 { (if (= pltype "3D mesh")
, J: c' H- E% u0 \7 i' W3 X (progn; \( E" Z- r7 F/ _
(command "_.pedit" ename)# g# ?( _% D0 V/ T
(if (= spltype 0) (command "_d"))
8 o$ u4 q5 s( A3 Q/ T" Y; I' p% n (if (or (= spltype 5)6 f" d+ Z9 j6 z2 o1 n6 i
(= spltype 6)( d$ j9 \- |0 N9 x: }
(= spltype 8)8 d1 Q* l1 {: C( F
)& Z8 f, E* I( ^4 t
(progn
7 U/ N4 Q) k* B6 ^" s4 G. U B (setvar "surftype" spltype)# O ^( w2 `+ R& k1 [
(setvar "surfu" u)7 Q8 G K0 Q8 `6 A' ]/ J$ q/ s) J" L
(setvar "surfv" v)
|$ B% ?. x5 Z9 x; p( U (command "_s")
$ u. j, x. W7 ^$ T) c7 | )% R: c3 l: H. W; C" L
)
; l: g: ] ~1 @( j) T$ u. Y% g (if (/= closedm old-closedm)
+ B P S) s# u5 s" h (command "_m")3 o9 d7 [2 A0 z
)
6 r. k) Y2 e2 J/ [# g: a5 b9 e (if (/= closedn old-closedn)
* \$ j, L2 T) ?, e (command "_n")8 u" i+ ^! `- G7 A# v1 i n2 s
)
) L* x! C& r& v$ m, u (command "")
' _6 L, Y7 H* |4 U( V. x )" {+ u- a( I Y9 p- R
)3 {# }8 A2 _. ^" e: n- n$ k
)
3 ~1 b; B* y4 W! u! m )9 t" }8 e4 c9 \2 @, ~1 s; `" k% j
), o& A% [8 V$ u) d- A
;;/ P, ~2 F) J7 p2 w& ~; d
;; All the spline data is contained in a single elist. We must do some
0 o+ ]+ }. ]3 x ;; tricky list processing to loop through the elist in order to display
H/ f; [- }5 y) X) A ;; all of the control points.
; ^" o9 ~$ i9 O9 r7 ?3 q! \ ;;
- } `: G+ }& q: U+ Z% d) A ;; The structure of the elist is different for rational and non-rational0 v! d& s! r2 _/ }/ i Y9 a
;; splines. Therefore, we check the rational spline flag.; _2 W' \; {2 v" F4 X
;;5 a/ F: _8 `3 p1 d [
(defun next_cntl_pt ()5 Y3 s' ?; I P. {, ]" h
(setq elem-no 0) ;; elem-no = element counter
) w$ S4 x" s) g" W& D (if (= first-10-time 1) ;; If first time, find location of first' @& d& b$ h4 M+ p( }
(foreach list_item elist ;; cntl point element in elist7 \$ P+ M/ m P' y1 P5 U& M% L3 z
(progn
1 t) ]$ |" N B! b2 A! N' Z: e (setq elem-no (+ 1 elem-no))
% t! C" {/ x5 Y4 g4 N (if (= (car list_item) 10)- l' m7 p% |# o g! ~7 O
(progn$ g" K H3 f- @; N4 \- y. Z
(if (= first-10-time 1)- g0 E' P9 L1 w3 R- J: E! {, e
(progn
3 J8 S: }, f& m (setq first-10-rec (- elem-no 1))0 ?8 L' V. B2 a, A' C: w
(setq first-10-time 0)
& ?$ L$ F4 {0 b/ k (if (= rational_spl_flag 1) ;; if rational
! u1 I- @2 A) E: K7 M (setq cur-10-rec (+ elem-no 1))9 Q5 @; \7 a$ t+ R; ~& G
(setq cur-10-rec elem-no)
8 g" W/ y9 x7 ~+ S. _ )6 \7 l( z* Z/ _
)
( C; x: w8 f- h' G8 u5 {+ h )
+ K- S* X+ a" C) E4 A& e8 U/ V )
+ e- d& ^2 `! W0 v" T0 g )2 H, l: ~9 [! Y u
)
4 X5 I7 n$ E5 s; W5 j ), X9 {" H: v+ {" N. ]
)
4 v: i3 C3 d$ a# }5 I+ Z. h7 A ;; Now we know the location of the first "10" record; it's stored! k' e8 g# y p
;; in first-10-rec. The first 10 record was already displayed when8 q. k4 a% m% |2 a* G% m E
;; the dialog first came up so let's display the second one when/ ?1 g3 T# e4 Q3 a7 \
;; the user presses the "next" button (the first time through).8 s$ t$ u7 X/ [* D ~/ e9 F
;;( M. E& T, u/ r: H
(setq temprec (nth cur-10-rec elist))0 u: ]) d% z" E% e; T
;;! S \ g) V, _0 H/ _' v. [) n
(if (= (car temprec) 10) ;; if 10 record
, s, m$ G( G" X (progn
v# r/ n3 b0 p& W8 X8 X (if (= rational_spl_flag 1) ;; if rational spline4 X$ L, ~) O/ C
(progn
) \# J) e( X! ]+ g (setq tempweight (nth (+ cur-10-rec 1) elist))
7 L8 z4 I A! d1 r4 g4 P5 o (setq cur-10-rec (+ 2 cur-10-rec))
1 |/ T( ?6 ]" m- S! a: V8 F& Q )8 M$ y& l+ |6 g$ ?9 G* n3 @
(progn ;; else
9 M7 h3 `$ X. U6 Z7 K o1 d (setq cur-10-rec (+ 1 cur-10-rec))9 X1 @, L3 o$ s, n2 O
)
6 P' {7 j3 a; z- g- G )
2 {7 X; K, g3 C, l% x' L ) ;; end if rational spline1 j L- A4 E4 Y. \2 h
(progn ;; else reset counters
$ v- z2 ]7 T+ R+ ^0 q (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec+ }8 Q* R' L* y) {, I1 X, V/ n8 S
(setq tempweight (nth (+ first-10-rec 1) elist))# v9 s3 ?* n" C0 G1 k$ T; ?
(setq cntl-pt-indicator 0)
* S |! B+ D& [3 p9 t (if (= rational_spl_flag 1) ;; if rational- }2 g: _5 V" \$ Q& M1 }. Z3 ?) d z
(setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
. R5 \- B$ K8 N9 }$ \5 r& i5 Q (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec6 D# U0 m( I4 {8 \( m' n4 a
)
6 z) G, t; d' p! w9 u2 b )
& f/ S1 W; _1 H% ]! h0 p ) ;; end if 10 record5 i& [& d# W% ~3 Z1 A& b6 l
: z% h% ` {9 b# ^( \5 N0 R
;; Display cntl point, weight and ctr. Increment ctr.8 P! @% R E( O! X1 w" G- k# c9 M
(setq cntl-pt (cdr temprec))+ h5 f2 Y# L! w8 F5 K
(set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
/ D7 s6 a2 E+ k5 }0 n" C) h (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))0 B1 |" o" O( q+ g; t
(set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
5 ^* o/ Y' s3 X (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))4 [% r0 A |2 r
(set_tile "cntl_ctr" (itoa cntl-pt-indicator))$ Q3 c0 l X: V! a5 W; p
(if (= rational_spl_flag 1) ;; if rational! J+ p3 O+ ^ ^/ w6 `* ^
(set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
0 W8 L0 g0 P8 A' ^) J" h+ R7 F+ p (mode_tile "weight_text" 1) ;; disable wght
& u' d+ y, O6 T) C3 h )
3 \) {6 m. ?% n1 T* j H$ r )4 y: N$ N# m u1 A" |, B8 |
;;
, C- K+ }7 f8 l ;; All the spline info is contained in a single elist. We must do some+ l8 M7 b9 u1 n4 |4 Z/ p6 `9 ]
;; tricky list processing to loop through the elist in order to display
2 f3 z0 l. N# e0 s' ~: A& j ;; all of the user data points.& w! e( j0 s1 g4 g& P' ?1 N
;;
7 r$ r) Q. B/ T1 v (defun next_data_pt ()$ v& U' ?6 m' {: b' {3 @
(setq elem-no 0) ;; elem-no = element counter7 b( T& b" W' N
(if (= first-11-time 1) ;; If first time, find location of first% x) d+ D. w2 E3 Z; ^% T5 b: `
(foreach list_item elist ;; data point element in elist
6 R: h& N7 L+ w/ R (progn$ O- d. U; p8 L6 o) {5 p: y
(setq elem-no (+ 1 elem-no))8 g5 O: Q, r, t7 t
(if (= (car list_item) 11)
8 Z/ f3 {8 g( `6 V (progn" ]9 }+ T, ~4 ?* ~' n
(if (= first-11-time 1)1 a1 q9 \( Y. R6 N J
(progn" R& {- C5 ^% H" ~2 k9 N" b# N3 `
(setq first-11-rec (- elem-no 1)) D) H* b4 l4 @' P0 Y
(setq cur-11-rec elem-no)# ]) ?/ L& Y' e( L2 v! p
(setq first-11-time 0)
& r" |; ?% \0 V$ v )6 C4 _" D' ~5 @# y9 U% L& Z( P4 n
)
) w" e+ j [0 ]' P1 I% V# E ); S% }4 g1 p) }: X
)
" b* r T; Z3 e6 \4 g, V )9 B/ V- I4 U3 `) J. L
)+ G& A' Z& b" V' Z$ u8 X
)
4 h+ Z A, N* W/ Y/ ?: V (setq temprec (nth cur-11-rec elist))
0 U1 u; x& }) u9 X) |0 [7 U ;; If it's not a DXF "11" element then we've gone past the last6 C$ F9 l N+ H" M2 i% L4 l
;; "11" element. Go back to first "11" element. Reset counters.
% }1 ~0 @! c) l* L. q- _ (if (= (car temprec) 11), _2 l K% G% B% c4 [+ T
(setq data-pt (cdr temprec))9 @! U2 D4 @* o, Y+ C/ R
(progn ;; else
! f. S& G: k% u# T; D! b6 C (setq data-pt (cdr (nth first-11-rec elist)))$ e. A5 \$ k& d+ ^9 @, H4 ]0 y
(setq cur-11-rec first-11-rec)
$ u' i! W5 ?$ w$ e1 K4 I (setq data-pt-indicator 0)
% T. e5 N" M! ^! v! M )
7 i3 `" F, J5 U! K7 Z )* u/ `, [* g* G( d. f
;; Display data point and ctr. Increment counters.% M! [$ x* z. t/ s1 Q$ P7 G
(set_tile "dxtext" (rtos (setq x1 (car data-pt)))): Z* l9 x# X X
(set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
( t5 Z- ^8 c& K/ X+ A3 y3 S (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
* u- U' e3 V; m; S- b u% F" U, b9 @ (setq data-pt-indicator (+ 1 data-pt-indicator)). ?$ X4 p7 V8 V) ?/ g
(set_tile "data_ctr" (itoa data-pt-indicator))
4 z9 H$ B- |/ \6 N8 m+ a5 ? (setq cur-11-rec (+ 1 cur-11-rec))
1 E, c2 h. `% t2 s )* w' h9 n6 e( J9 k8 S
;;' @2 j$ W" c2 E) g/ n2 l Q
;; Modify SPLINE
" q8 x- T9 C O; B: b ;;: O8 \ i$ v: w3 q
(defun modify_spline ()
# |. O/ s+ A& Z5 _! G; m9 v2 M (modify_prop_geom)
3 M2 Q' g' ~$ P, d [% m) M (entmod elist)/ z! f9 L; l5 n1 x5 U
): \6 c) Z0 H1 t a4 C" T; B% ]
% {8 }. q! L8 U* R2 |
(defun ddspline ()
4 J! G* N5 v1 F9 r- R (if (not (new_dialog "ddspline" dcl_id)) (exit))
8 j4 o5 r) ]2 R; C2 X (set_tile_props)6 F5 k9 R6 f! m
(set_tile_handle)
+ B# A$ y& j; } (set_tile_spline_props)
+ T, l& N; X, K6 t5 o& c ;; Display first control point
6 f% s Q* p, k3 X. ~* C4 ? (set_tile_cntl_pt)6 z4 l& g9 `$ Z6 j5 L! p! E
;; Display first data point$ l' p N6 V) }! K% i, |/ A& Q/ L( E
(set_tile_data_pt)
2 T; t3 f4 ]2 [% v' `$ a
4 I- i7 ~$ q# ~! h- W/ E% ] ;; Initialize flags to indicate first time through the dialog.
' H9 V) n$ Z9 s$ p8 T3 Y ;; For control points and user data points the "next" buttons0 c6 S: i' u: W2 Q) F8 a6 l
;; in the dialog call the appropriate functions.
# |1 c, {1 r# W2 f& Y! J (setq first-10-time 1)
; W6 u8 C- Z5 l4 D0 @% x, J (setq first-11-time 1)
) L; q. Y2 l* n$ P7 X ;; initialize control point number counter
. m& Q0 B6 c- g% }) c" { (setq cntl-pt-indicator 1)
/ C x7 `" D7 ~: J& W( O (setq data-pt-indicator 1)
% l( R) v- m5 @7 K (set_tile "cntl_ctr" (itoa cntl-pt-indicator))# t. D. A6 c, s- @( d. E$ W
(set_tile "data_ctr" (itoa data-pt-indicator))
& ]/ f ?0 c1 L, u (set_action_tiles)& U/ u" P- L! d
(setq dialog-state (start_dialog)), k9 P7 |* n) d: A
! O% n! U6 Q) D$ k
(if (= dialog-state 0)
+ x: S* \. F3 h2 ?& v ] (reset)
* I: c2 w* s# C$ d1 J4 E4 U/ j4 m )$ R% p" x0 h& r$ Z" H
(if (= dialog-state 1)$ x2 l) t* g% g3 `( c
(modify_spline)
/ b5 G" E$ K6 n# s )
1 u" {# s$ O- |; H+ H )3 S$ ]6 Q E3 v8 U1 j
+ x1 S/ z5 V- X9 [5 }% [+ f2 b+ Z
Z+ u g9 }4 T7 t
( W- o3 v3 ]+ ^ B$ C; y ;;
: R; u" u G0 n& p( t ;; Modify DIMENSION: ~, q* W, Y# p) a9 Z3 [
;;- I8 e* I- F4 x( r+ p+ G4 c( U
(defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl. ?- S9 ?4 m0 G/ J, p
dimsty dimlist dimtext svtext dimovr sv_dvlist stlist' @) U: y. Q: A6 p7 W5 g; N
dimtype dimsvcurset)
' U& X( Y5 M1 B# u. M (setq dimtype "DDIMEN"- \8 d% [" o- z# D: o
dimsvcurset (ddimen_dimsty_restore)
9 ]0 h6 O, y. S) \# W5 q C )7 @' t- w. ^: d1 g
(if (not (new_dialog "ddimen" dcl_id)) (exit))
: g. j% H2 S9 ?0 l; E" n% ?0 w$ W (set_tile_props)8 D* Z0 y' _ q% e/ J
(set_dimen_props)5 c5 o U# A9 P. g, d
(setq dimtext (cdr (assoc 1 elist)))
3 m5 f. x+ X* h) p9 B (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))
( N% N: t7 |3 v/ a! G+ a) j0 Y (set_tile_handle)
( O. H5 A% I @9 X ;; Define action for tiles
7 V m: h! i1 C$ C& g (set_action_tiles)7 m/ V1 r/ d2 E6 X: j4 Q
) p( V% b+ E" Q5 Q- f ;; Set initial focus to text edit box.
$ |0 m# g' s) q9 Y4 |1 d (mode_tile "t_string" 2)
) D5 Z6 D& Z2 A" ] X3 W( T
! S; }- Z) @( r" @ (setq dialog-state (start_dialog))! ^# y7 v1 \8 U! H
(if (= dialog-state 0)
5 u& g3 s& U" R& P3 X (if (= ddimmt 1)! G3 |, N* z% k/ x+ g4 L" G
(reset)# o* D6 G+ p- ?3 {0 N) ?6 C* c9 u
)
5 G( ~) M4 \3 X* W )( G \$ c y2 C0 h
(if (= dialog-state 1)1 A- f, q% } I% A' p1 T; g6 H) ]+ d
(progn
7 C. F# Z( i: m2 h* u; i (if (/= dimsty stname); D4 {: c# M& W8 _
(progn3 j4 i! C7 n+ s! }0 k
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case( F2 m: r" E5 ? `: E6 l! r
; doesn't have it.
) n# \* B b: M8 B0 p: F (if (null (assoc 3 elist))1 X% I5 m1 V$ u7 x/ r0 t
(setq elist (append elist (list (cons 3 dimsty))))
+ ?7 [7 n. i$ I5 Q: ` ; else just replace it.
; y; m7 R. R3 Q9 i) m& B9 U (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
6 ^3 `* _# } [2 _9 R- \0 e ) V( S# e/ p3 V9 `
; refresh sv_dvlist with new dimstyle.
2 d- |5 z8 o4 r (setq sv_dvlist (tblsearch "dimstyle" dimsty))
5 f! i' p* o8 e3 c8 y, F5 }7 v )
% d. \% D. w) y& Z0 }+ Z3 _ )2 i2 H2 X( d* a4 B9 q
(if (not (null dimlist)) ; attempted to change dimvars
) s$ H" P! P* P. l9 X. F( P( Y (ddimen_complist sv_dvlist dimlist dimtbl)0 X0 k- q' O7 H& r7 G% n0 W3 T7 n
)
" R c. v7 H% S* a, c ; Modify dimension text
/ ?: K2 r- ~8 N. ^, e1 s. x (if (/= dimtext text)( T# T8 M, g6 l- e2 K8 \8 m
(progn* }+ k! y. u1 H5 y
(setq dimtext (if (= text "<>") "" text))& V( `, \1 m1 { B( m# n" X4 `4 P
(setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
/ [+ f, R1 u- d/ t: q f: R )7 v: h# f3 G6 d, K% W
)
2 u" O( c0 w F! g0 t (modify_properties)
' ~& J* C3 f& w, t (entmod elist)
1 f7 |8 p0 `; n2 F# a7 `6 J0 T )
) I% K+ A. N" F) X) E4 D/ t6 o )
* |7 q) L5 @( v2 ] (if (= dialog-state 4)
% e0 q6 o0 S3 a$ Q (progn
' ?9 N9 p( @4 _+ |0 Y (setq ddimmt 1)
( s( }5 u$ _0 |7 @( {( \0 x) v# { (if (/= dimsty stname)
/ G; m7 V( t6 E# w# s- }8 [4 ~ (progn- \0 N' c, s; a, X. r; r
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
/ {) ^2 E u; H7 h ; doesn't have it.
% K* N9 C9 W+ W1 z/ ^ (if (null (assoc 3 elist))7 c$ ~' h+ r/ @$ c+ f! `
(setq elist (append elist (list (cons 3 dimsty))))
5 F: G5 n r, [' q5 |/ `' j0 T ; else just replace it.4 b6 Q3 B. a/ a0 `& d; U
(setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))& Y# ?* p$ P R) v: D- c
)
$ B5 }8 C: Q R2 I2 @* H `: Q$ S ; refresh sv_dvlist with new dimstyle.2 B, U5 j6 q S& ~' D! V: d
(setq sv_dvlist (tblsearch "dimstyle" dimsty))
1 r- J% c, k9 z7 s N2 l" v )4 D1 h* g! w! I1 Z8 u0 i
)
. @. Z g! R/ d5 Y& o" } (if (not (null dimlist)) ; attempted to change dimvars
* F& C& I( M! n. u, I% T (ddimen_complist sv_dvlist dimlist dimtbl)
( ?1 d" p) H! N7 E+ e. W )
2 G+ E) }8 M2 k0 d ; Modify dimension text
* ?# s, } B4 H (if (/= dimtext text)
% K7 l# G3 A" ? (progn( x8 o& F6 ]( m5 _& E
(setq dimtext (if (= text "<>") "" text))) Z) Q w" _, ^8 O3 m/ {; g1 R* K
(setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
$ `/ f' B; b; f ) N; c# [0 d, n [7 {! m
)
* m/ V+ m4 W! A5 d0 n& s. R (modify_properties)
$ z- }' _) j R) q& R9 _ (entmod elist)
9 Y5 R- [" W% ]" W (safe_ddedit ename)4 z- L8 {& s/ s# r$ ]8 g8 i
(setq elist (entget ename))
@4 r* Y* U* p u* c0 F (ddimen)1 B' Z& H" f2 B2 a: f6 S
)
# ]7 s8 I# n' H. h s- q )
. Q" ]# V. J8 W( u* j (ddimen_setvars dimsvcurset) ; Prepare to exit
$ u: [/ y3 ^- R" M' K* {& @% o1 _ @ )$ h% b/ J! d, @# P
/ N3 U2 N9 \$ V' w* _( U8 e
;;" r. o( l9 N$ T9 }0 ^+ m9 @
;; Modify TOLERANCE
2 W6 m6 Z/ V' D) D+ U; |& s, q ;;- c4 y4 M2 ?. `) u* l+ j
(defun ddtolerance (/ a stname n dimtbl* p/ f, C; R( q7 z5 }
dimsty dimlist dimovr sv_dvlist stlist dimtype; p- o8 M5 L5 g8 m/ r: H$ D
dimsvcurset)
: R* o) F8 I2 { (setq dimtype "DDTOLERANCE"3 Y5 E/ r$ a* ?2 n: v, L
dimsvcurset (ddimen_dimsty_restore) I5 t# a: ~( r+ g7 C3 @/ b
)+ m* E8 X- O+ A$ b
(if (not (new_dialog "ddtolerance" dcl_id)) (exit))
) |" M7 u+ P" [& B, o (set_tile_props)" n2 H; F8 g- ~& |1 \( w
(set_dimen_props)+ d3 i0 X; Q% g f6 U
(set_tile_handle)) O9 W$ \' k9 c, W( {; L
(set_action_tiles), t" C- w# J0 V1 J3 i0 Y4 x
(setq dialog-state (start_dialog)), @: k) o' }. k$ x- c+ O6 K% \
(if (= dialog-state 0)
) ?1 ?0 M& a6 u1 H! D (if (= ddimmt 1)# y/ X% X) Q5 j- U0 `
(reset)
5 C1 Y7 F# X$ J6 B8 O) C )
: u: L" Q3 H2 D" R* J7 h; |9 L )
- ~# Q& k( ?+ s# ` (if (= dialog-state 1)4 I J6 X$ g9 r+ e
(progn) W/ E; e) c; e. x3 q+ H! ~
(if (/= dimsty stname)( K$ M/ ?0 _; K% q1 d
(progn
' T& y( P& ?: |5 } ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case* ?/ x- d9 q& T# Y
; doesn't have it.6 t* \" ^( D# s/ L1 w: S
(if (null (assoc 3 elist))
9 x" o% j# k; S6 M, A (setq elist (append elist (list (cons 3 dimsty))))
) G8 i* ]; W2 R: o: G* P ; else just replace it.
5 G3 g4 k0 m4 ?) B% y7 r (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
# l3 J1 X) p# I )
( X0 m7 x) G' w ; refresh sv_dvlist with new dimstyle.7 L. n* }+ g! t c8 ]& {
(setq sv_dvlist (tblsearch "dimstyle" dimsty))
2 z4 W: d( i0 d) T3 C: u ); o) j% G5 n6 Y( K
), R+ O7 ^) L5 A% o' b" a5 I
(if (not (null dimlist)) ; attempted to change dimvars- `. X( P# J* f! E) F
(ddimen_complist sv_dvlist dimlist dimtbl)
+ g% |% Z9 N1 ]" E# r7 I/ N )* r1 B& V( F$ f1 C) C
(modify_prop_geom)
) R" M9 ~1 L4 s" G. l! _% E (entmod elist), K- P' [4 D6 K ~" E
)
$ e9 F6 R3 m# r2 T. S )8 O4 c$ s! s0 o( s% }4 y: @
(if (= dialog-state 4)
# a$ l4 `7 w; K* m2 l, j (progn
1 X5 a) _6 [, e$ ?" j$ L% M' v: _9 P (setq ddimmt 1). w0 J' m, E! W
(if (/= dimsty stname)% A) o- M: F4 O x3 z% G/ [+ n7 z& ^
(progn
2 J/ O; N5 Q8 U: o0 i3 w; n ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case$ C! s1 O, x9 X5 Z9 }/ h" c
; doesn't have it.+ U6 c3 X2 I F8 y8 l1 z& C" @
(if (null (assoc 3 elist))# G- s% w# w7 p6 ]3 w* d
(setq elist (append elist (list (cons 3 dimsty))))
2 V3 @- l6 A* K8 k9 l9 V& d ; else just replace it.
% x4 j) ]8 j% W# e6 a (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
4 L' b7 C- ^. W )
, w3 R9 F/ Q- T ; refresh sv_dvlist with new dimstyle.+ X8 f9 H+ u6 s+ i3 D- y
(setq sv_dvlist (tblsearch "dimstyle" dimsty))& I6 n8 h/ f3 ? W& ]: m
)1 X; I; F' [9 v; ^
)/ I1 p8 |5 I: W) I
(if (not (null dimlist)) ; attempted to change dimvars/ L' k9 c* M% b5 M2 J1 K c, M4 g( Z
(ddimen_complist sv_dvlist dimlist dimtbl)6 x2 `1 M$ ]1 U7 C- z9 F+ r
)" d) Z0 D5 _6 F4 x1 O. w
(modify_properties)& M, _& v: i8 V; T' U
(entmod elist)
0 n2 `. k8 N. |3 n& @0 A (safe_ddedit ename)
5 F- s0 j. E. V5 C; C! m" l0 g* `$ u (setq elist (entget ename))8 C+ I; r) J x- _% g `
(ddtolerance)9 w7 K- R9 Z; |1 r0 ]# ]8 r
)
8 _% P9 L6 r+ y3 j, e$ @$ K ) S0 { E5 Q' r9 I- U
(ddimen_setvars dimsvcurset) ; Prepare to exit
6 e" C3 |/ j' x: s w% r)! H n& @3 w, ?" D' P0 ^
7 J& v9 M% {3 m L! O
;;% l) G! ?. c9 r7 M- k; `& F
;; ddimen_dlg - jump to ADS ddim module, r4 z% O; v1 k" V
;;
9 _) Y/ Q6 ]. `! w3 |! T9 Q5 r+ w( M& ]' t% ]" H
(defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
! R9 ]: {# D$ w1 R! T6 D3 U6 G# e4 a
; Jump to DDIM with overrides if any.
$ t* O% C& S8 l (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
/ B5 s1 }# `, l3 k# P+ O' b ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
5 V5 ^8 v1 q. D. ]: J$ a8 f# e ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
7 \" d& e" v' S2 g8 X; T )
$ B8 P0 T1 Z. T0 A( y# N/ e2 H )
4 u6 V7 W( y$ h- I0 p9 j& {0 u0 `! A# Y. E5 S$ u
;;4 X4 U4 t$ b4 }- B0 D% x
;; Dimension variables updated are stored as overrides.: _) T6 X2 e) [0 d; C6 G7 s0 d
;;
k' b* q$ J. O2 W% |
& N( D* p0 F) { (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar+ j) Q- S" D4 o1 ^
dv dime commandIssued)
4 W9 s. ^& J! r3 D: K* l$ f9 A' ~1 W) t1 s* k
; Here we skip the following first three items:5 ^& D9 O9 O( p' y3 b
; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
3 I' L# g7 ~% o) S% n- m ;( S7 [1 \8 v) v$ z- L; V
; The list comparison immediately begins with dimvar.
' D4 E3 i) ~4 J! e! _' Y7 b ;
7 ]9 c" j: p5 ?- `) \ ; dimolist - original states of dimvars
0 q P' R& [" f, W0 L' c9 h* o ; dimnlist - new dimvar list which is of the resbuf's
' p, p$ k6 E2 U! Q ; dime - entity name for the dimension* ?8 J& \( ^+ \, r: T
; odvar - value of dimvar for the dimolist
9 w i( f! n3 D; b) t P: E7 k ; ndvar - value of dimvar for the dimnlist( g7 p: v/ w" k: [: `4 U [
3 X6 q# R- q! i! b F2 k' z, v (setq i 34 ?8 I8 C+ o1 ]
dime (cdr (assoc -1 elist))2 J, e9 c# A0 E+ a5 u
)
" E+ b3 Y' z+ g V (while (setq odvar (cdr (nth i dimolist)))1 J- J+ T6 c7 B w
(progn
( F9 d+ ~, Z; ~: U5 p5 s (setq ndvar (cdr (nth i dimnlist)))* D3 ?( R; T8 X! J" E6 u
(setq dv (nth i dimtbl))& w$ @& `4 o- q* U% {+ B
(if (eq dv "dimtxsty")
/ O: |: f8 ^# |( k. o* G (setq odvar (cdr (assoc 2 (entget odvar)))7 z; i2 J. O Y7 f6 J) F( ]
ndvar (cdr (assoc 2 (entget ndvar)))
- W7 U. }4 ^' }' r9 K )/ ?7 ~2 \: V1 [: O: a
)
9 _- u) O( y3 d$ F& Y/ x& Y- c8 y; L, `7 F& T6 M" ^
;+ D6 V# a9 d" r
; In order for DIMOVERRRIDE to operate correctly with string. q, P3 P0 t6 E b7 J( t7 x
; based dimvars, we must pass "." versus NULL strings.( h( n" t! h& k% l' F* D
; In this case ndvar is the new dimvar value the user wishes- Q) l& h: q# m* m$ _0 _
; to update on selected dimensions.. \1 o1 F* n9 E; w0 b
;7 f. j" }2 L* r, g% T [4 O1 Y7 y
(if (/= ndvar odvar); u0 ?! r, m! j& k9 S
(if (= 'STR (type ndvar))
$ m8 s; D6 j" d (if (= ndvar "")3 ?$ T8 d x2 |8 R
(setq ndvar "."))))9 `' x9 w# G6 k4 D# y
D1 H* [. I( h (if (/= ndvar odvar)5 c; a4 D' f9 h- v# r
(progn/ N/ Y5 U5 q( u7 v; ?
(setq dv (strcat "_" dv))
7 n; j9 C3 t, l" @ ;
/ O: A# I: t" K& v ; Start the dimoverride command/ e5 F, K7 k' [# c
;4 c4 J2 T$ c# \8 y$ o) D$ J
(if (not commandIssued)1 W2 K: q$ c2 v
(progn
$ t. s2 {. a- S# T/ f (command "_.dimoverride")
, w3 l" \4 f5 z* e* B3 n T8 a F (setq commandIssued "T")
" L" G7 B; A- D* I( w1 s% h2 ~ )5 o" f% @6 ?$ m/ R/ `
)
* t. z6 V2 ]8 N ;" H% A4 C$ g5 O& }) ]8 P7 z
; Issue dim overrides, c; K" C* g# L
;3 i3 _9 B3 J, S3 D* {1 K4 }
(if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
% h) J% l2 s2 R9 N2 h3 S* C3 D (or (= ndvar 0) (= ndvar 256))$ @6 {0 a- I* A' D4 [' {1 \' k
)( V9 t H! x1 o. X( o
(progn" H. L X2 W/ v+ D, c
(if (= 0 ndvar) (command dv "BYBLOCK"))+ o# R& g( A, U/ E ^) f9 W
(if (= 256 ndvar) (command dv "BYLAYER"))
; u2 [; p9 p# i& u/ W( Q t )
% v" H) `5 L, U' `8 X1 v# T* {; ]# a5 v (command dv ndvar)$ Y+ w( x! k) I6 p- ]8 H
)
: A) X. V& W# m9 ^ )
. u8 B/ n1 H c )
( Q e- @! ~% h0 l (setq i (1+ i))
0 b$ d. D$ v$ P( f( W )
& V5 Q, q; z; m4 n# f )' O3 J( ` O( X y
;
0 d/ G7 Q: W* ]) ~$ j6 K ; Select Entity and terminate command: ^5 z+ u& b/ O9 \
;
! f2 s9 B8 p. I( W (if commandIssued/ Z' x% H7 a- l |2 U! N
(command "" dime "")( y1 c$ D- t: I5 H' E7 S* `
)
- v3 J4 O, {9 w )0 B. |7 U' M7 K+ y2 S9 [) f
0 h1 d% D. z! k
;;
) j2 N2 q0 }) ]# k. F7 a$ C$ n ;; Get style name currently selected style name.
; ~5 j8 Q( `# n) \) t ;;+ F4 V$ e% t/ H6 j9 i- X6 e2 i/ w
5 j2 d3 b* w9 X+ k" N
(defun ddimen_style (/ dimsty)
) G- w \0 ]+ t: l (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
+ T! z. @! L& e& ^ dimlist (ddimen_getdimvars dimsty)" z4 I/ D9 I' e/ _5 {
)/ J1 N- {, D% g; A( z3 |
dimsty
6 Z- \! `" C! ^) |# \; g7 A" o )
& Y% }! S, {1 ~1 m
/ J$ C; H7 i; I0 _2 g ;;
$ b( r# B: ?# U8 O' Z- e1 [ ;; Set dimvars
/ T. c g/ V6 z ;;
C) t* K2 I' d, e, Q (defun ddimen_setvars (dimsvcurset / dv i)
+ G6 o8 e# ?3 x: \% g# q (setq dv (cdr (nth 1 dimsvcurset))); e* k: d; v( r, a6 k) O/ ?1 O
(command "_.dimstyle" "" dv): Q2 z, O9 `0 Y$ D+ m, m
(setq i 3)
$ Z" p8 U, n2 x* G (while (setq dv (nth i dimsvcurset))! ]6 R; Y, U7 B4 F3 d4 b
(progn
0 B" t- h% D* r% N8 x (setvar (car dv) (cdr dv)). @/ o6 Y2 G' Y' [9 O* a
(setq i (1+ i))
/ U: m; V( I! E# n )1 H% {" Y* Q; ?: u1 p
)7 v; G/ m/ n K! ^2 f( \6 L
)2 D. \" ]7 b$ N; [3 z# j% Z* D. t
;;; J0 \: ~1 \8 C4 e: e$ |
;; End-of-dimension
7 v2 W i; }( y. E- A ;; ==================
% E1 f0 V- B0 i5 K( f1 q* e" Z% t7 Y; w/ J
;;
, y' ]5 g- H; @4 U# k% Q ;; Sub-dialogues for properties. Common to all object dialogues% z) J8 F S6 e" [& A
;;
9 n9 n$ z I& X2 \) [6 C' P8 n0 ~, O ;; This function pops a dialogue box consisting of a list box,image tile, and G V: Z3 f- x, k6 a
;; edit box to allow the user to select or type a color number. It returns7 T0 Q$ [5 g/ x3 N" F* _
;; the color number selected.
; {3 `! G# @$ N: M( G9 L# o0 Y; h (defun getcolor (/ old-idx colorno cname lay_clr)1 ?, @+ \/ O( F: ~9 p& D
(if (= (get_tile "error") "")
; `5 N$ P8 ^* W5 ^1 W6 X$ o/ V; R( } (progn, T/ Q- d: X* l$ x
;; Get the color associated with this object's layer, for use! {' `- Z; q0 @, ]4 a1 {& n
;; in the color swatch if the user selects color BYLAYER.3 c0 w! y4 E0 D. Z9 r0 \
(setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
6 J- _( K1 Y) W4 d (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))) c# K$ T0 C& x. w
(progn
9 G( C) r9 R- z! F2 I (setq ecolor temp_color)6 c9 o, l$ @. C* [! J! W
(setcolor)' v% z) |% P4 H* H0 @& N7 G% s
)9 A9 ~, {, U0 C8 T1 v, k3 d, E
(setq testcolor temp_color)5 q# P6 C1 W [! Q9 W( Q h1 U" L y
)
$ x' t0 ~1 x: R: Y )0 A! m! ?) A/ V' u3 p
)
0 q% G/ x: N1 f- ~ ecolor
3 b* g' O& Z$ k5 a; C4 i; V )3 V3 O6 D0 c# g
;;# T, O, @8 g$ U
;; Function to set the color tiles.
4 b5 _3 X' s( F$ n, [ (defun setcolor()- p& D- q) j6 L) r. L: |9 d9 z
(cond
- l! h2 }% _; H% C7 k* W ((= 0 ecolor)
$ D9 q4 c! f4 Z) \8 ~ (set_tile "t_color" "BYBLOCK")
$ L" G* y9 C) F# F7 x1 u (col_tile "show_image" 7 nil) ; show BYBLOCK as white
3 T/ T& [4 F7 ~9 N( O4 M )
6 I& K9 B |3 @) n, y# A ((= 1 ecolor)1 i* R: O+ \5 Y: A* m! d! T; o
(set_tile "t_color" "1 red")- H$ q- }) Y. p @9 _: W: I, M8 k
(col_tile "show_image" 1 nil)' I5 T8 E& g/ @& k( Z" {+ h5 z& z
)6 P. t7 `; Y$ Q a. @
((= 2 ecolor). T. E' |, N6 w. k0 \
(set_tile "t_color" "2 yellow")* W# N* ]4 x H$ g
(col_tile "show_image" 2 nil). e+ M; ?0 A- R" k
)+ _+ T* Q" [) z- b- D( N
((= 3 ecolor)" b- \0 d2 X3 ^0 P1 ^+ @' c
(set_tile "t_color" "3 green")
' B" U! p/ F [, U! A2 I (col_tile "show_image" 3 nil) F" P- K, I( j" a
)0 Z+ o2 h% x; C
((= 4 ecolor)! s* T* `- w& G3 q1 Q+ Z# U# D
(set_tile "t_color" "4 cyan") z5 `- U* C8 C( `
(col_tile "show_image" 4 nil) w: R3 a8 h3 A* h$ F) J3 n- {
)
: N) q/ c5 p# U+ B ((= 5 ecolor)
. O) i: Z1 T- u' }, X1 s# ^8 v& [* k (set_tile "t_color" "5 blue")' Y; L( j1 C" H* c6 p
(col_tile "show_image" 5 nil)
* B4 k8 @1 \# e: L0 b: V. ~; [ ): F- {! B- s1 A' s
((= 6 ecolor)
; ^" F, e3 D8 t( l. o5 f (set_tile "t_color" "6 magenta")4 n# b- x c2 T: l+ b. T; A. ]+ \
(col_tile "show_image" 6 nil)
9 l3 I4 q: ?& L" A ). A; Z- q" E' _! B3 l$ J
((= 7 ecolor)
- N8 q9 i w6 O$ E/ R/ t2 S! B (set_tile "t_color" "7 white")
# Q: {' y0 C- W5 z# x9 e (col_tile "show_image" 7 nil)
5 n7 k3 M+ F5 D# B. L. B) M )
/ ^' V( A& v/ c5 D1 P ((= 256 ecolor)0 k( a' ?* b0 ~! D$ Z# a, R
(set_tile "t_color" "BYLAYER")
8 z* E. |. ^3 ~- n (col_tile "show_image" (bylayer_col) nil)
& w3 J& m/ V5 b/ p! W )
4 f; n5 O z6 \9 v (T
. e7 S' y u( d (set_tile "t_color" (itoa ecolor))5 B, F7 M; v$ Z* b( e+ w1 }" b
(col_tile "show_image" ecolor nil)7 n# Y) {) Z& s: \
)
& G2 C% \ ] C, I7 ~. M& L* D )+ L5 ^5 b1 Z# z7 a" }1 v3 u. o8 q
)- ~2 a% ?$ `7 v
;;% l; S- J: [! L
;; This function pops a dialogue box consisting of a list box, image tile, and' n/ }' p8 l b q. D
;; edit box to allow the user to select or type a linetype. It returns the
* ^% t1 j# X! \3 {- ~* u ;; linetype selected.
]& Z$ V! g' j0 F- m ;;
, t! G8 a; O# |2 o) P: C& a4 c (defun getltype (/ old-idx ltname)
, v9 P2 f0 ?+ g$ c/ E (if (not lt-idx); u$ _; l' v9 y! h3 e* \5 y4 K( I
(progn- G I+ |% R' c$ \+ V, N) V/ s
(make_lt_lists) ; linetype lists - ltnmlst, mdashlist
0 T) Q$ L1 l% x (cond
8 [1 S( E+ H$ C& ]- j9 z1 f ((= eltype "BYLAYER")
# r& M7 I* K: h' K" J (setq lt-idx (getindex "BYLAYER" ltnmlst)))' [7 d* x/ a) J
((= eltype "BYBLOCK")
3 F6 f. ^* V: W2 b8 W5 I (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
8 [$ ~6 B* Q* P6 h# `6 E* |6 D (T (setq lt-idx (getindex eltype ltnmlst)))# G% l4 h0 Z' A5 q
)
, \' W2 A) c2 J `& \! M8 ^0 @; E) I )
: J+ `1 u4 h5 V$ e* @4 F1 u% x )! Z: F( n# W2 }$ d1 U( i0 e3 L
3 ^9 E t B+ i7 B! j3 h
(if (= (get_tile "error") ""). Y' k z/ L) U4 H. K! h, ^' u; E
(progn; e4 C- o8 u5 O
(if (not (new_dialog "setltype" dcl_id)) (exit))2 F0 k x/ _8 I
(start_list "list_lt")
: i# G- K& O0 u2 t (mapcar 'add_list ltnmlst) ; initialize list box! N! c# `5 @8 ^- Y+ A
(end_list)
2 w @1 d* S, Z (setq old-idx lt-idx)" n1 G/ J L( M3 g
(ltlist_act (itoa lt-idx))
' ^4 `' ~% B/ F: }5 r, x6 p$ ]$ B; {% }0 Y# R/ @
(action_tile "list_lt" "(ltlist_act $value)")
) P) z8 P6 \. Q+ v5 a (action_tile "edit_lt" "(ltedit_act $value)")
* M6 G4 H8 D8 z; n2 m% `/ a' ? (action_tile "accept" "(test_ok)")
9 d$ _# W3 E8 H1 q& q, N, I' {/ ? (action_tile "cancel" "(reset_lt)")
+ @2 K; S0 } B$ k6 x8 ]5 W/ \9 N' k( o: m2 `. A
(if (= (start_dialog) 1) ; User pressed OK
+ f( X' W, l: P& S) h (cond5 g: I4 z5 k) g
((= lt-idx 0)
% F$ l8 @/ b* _' k7 }! A9 q! O (set_tile "t_ltype" (bylayer_lt))
7 o' H' [3 L! S! G- I- }* Q9 B+ X "BYLAYER"
' j/ V! I& R3 A, G3 j& D% B: l ] )" I9 Z- [; z# f( U9 X
((= lt-idx 1)
% {. p9 V* W+ E+ o5 T9 T4 L (set_tile "t_ltype" "BYBLOCK")
; T% p( {% N' i7 |! X0 l5 a "BYBLOCK"( X% j& u) L- l4 W6 f, S
). |* X8 ^' H! o- T
(T (set_tile "t_ltype" ltname) ltname)
7 N6 N; X' r. h, a% _, f )
6 P$ l( x4 ~% c1 v5 u4 {( M( B2 ]) w eltype% y+ N! d/ x v
)
% `- r& D6 _& d. S5 E) t )
. b- M" T0 j2 Q$ E eltype: Z- y. P/ ^4 B0 A! I
)9 }1 N) F* i5 x* S7 Q% c. J i& ]2 V
)
/ z. r* A; J% r( F ;;0 U/ i/ u0 q2 k9 \3 d# F% z
;; Edit box entries end up here/ W X% M; [! {: k9 C' E
(defun ltedit_act (ltvalue)
* T3 m" f% x- @$ Z' j (setq ltvalue (xstrcase ltvalue))6 h+ Q) ]# a `7 d
(if (or (= ltvalue "BYLAYER")
( C* f7 d& j# A3 X+ R (= ltvalue "BY LAYER"))/ p/ s. c1 U$ H2 K0 l
(setq ltvalue "BYLAYER")
! |: C- H7 j5 q4 K )
5 N" z& L7 X2 I Q/ [! M9 t (if (or (= ltvalue "BYBLOCK")
* L* l- q% ]; A (= ltvalue "BY BLOCK"))5 ?6 C' t+ ?3 S$ ~1 {4 j
(setq ltvalue "BYBLOCK")* `$ [# r1 s3 Q) L
)
7 q- J3 D6 j& W3 m. p( X (if (setq lt-idx (getindex ltvalue ltnmlst))
3 w* S. e) M; h5 m, U (progn
" x+ N2 i2 q( V7 Y (set_tile "error" "")
( p5 a1 v; I+ @$ K# C7 N7 f (ltlist_act (itoa lt-idx))6 d/ ?- X. x4 D# n6 B- @% f
)/ p, `& Y/ Z9 C
(progn
/ l, L) g9 C' F& t. ^4 R+ o7 K; A (set_tile "error" "Invalid linetype.")
; G2 O# h1 q2 x- [ (setq lt-idx old-idx)
/ r: R( Z% f' I, z) m/ u* |5 ~;; (mode_tile "edit_lt" 2)2 h1 b9 r% X$ j2 @: i
;; (mode_tile "edit_lt" 3)9 }/ Z6 F4 z/ ]2 v8 n0 _
)7 [2 f# H8 s2 W4 g f
)( I! T I7 \/ X& b5 _/ ~3 u [1 Q
)
7 ~8 Z0 [( T# J6 C ;;. {. ]2 @ Z+ x8 h# i
;; List selections end up here. Update the list box, edit box, and color
) ~3 Y9 A3 k' Z. b2 j M0 v" | ;; tile.
! J+ \ X0 @% Q' d6 L ;;
/ E; G. y f3 k: d9 V- D7 E# B (defun ltlist_act (index / dashdata)
3 r1 y) q- ~, n# q# S2 v (set_tile "error" "")
3 S$ _+ U3 A& Q5 C8 a (setq lt-idx (atoi index))
2 `0 m7 n9 B( F+ | F4 p7 L$ \ (setq ltname (nth lt-idx ltnmlst))
& C* Z: _& F8 e& R) F) [ (setq dashdata (nth lt-idx mdashlist))% O2 W/ q+ {& h
(col_tile "show_image" 0 dashdata)' }# U& j' p& z- G6 x! `
(set_tile "list_lt" (itoa lt-idx))0 f5 X# L" y4 m3 b( i/ K
(set_tile "edit_lt" ltname)
. M4 M( B+ I! s7 [( u. F1 K )
$ p! y2 K# I* @( z3 e2 K- d+ V ;;2 V# Z8 `" w* E- A! S
;; Reset to original linetype when cancel it selected
1 ?, ~0 E1 M$ m9 r3 K9 y ;;
( f1 k. E5 N9 @$ [& E# }! n (defun reset_lt ()& Q% c! @5 \0 e& a7 e0 O
(setq lt-idx old-idx)3 K t" f+ O! I! M. A M
(done_dialog 0)
0 ~, P/ j- P2 R, w! b5 n: x& l )- E; Q, N* ^8 h8 K- X6 h! Z+ ]
;;, f9 t; j, l! r' j
;; This function pops a dialogue box consisting of a list box,image tile, and/ z# [2 n3 Q5 T( b0 C4 P: E6 x% p0 c
;; edit box to allow the user to select or type a layer name. It returns the2 ?1 {+ ]6 I- L( k2 G' I
;; layer name selected. It also has a button to find the status (On, Off,, A r: v" \* W/ y- M
;; Frozen, etc.) of any layer selected.1 P, l* A3 `+ G8 j
;;9 \4 @6 p% |1 O
(defun getlayer (/ old-idx layname on off frozth linetype)! V L0 Y5 u1 g7 V; V8 Q" U/ X8 m3 b
;; Create layer list the first time the layer
3 P! d+ ]( b' {: S5 J. J9 C ;; dialogue is called.
- g' ^. L3 ?" X4 x- `# O (if (not lay-idx), t! A) p. e- j6 Z8 j* J; s
(progn
! R# m" |: a8 G (make_lay_lists)
% F* |. F7 H& Q/ S2 G (setq lay-idx (getindex elayer laynmlst))7 N# q: m( q# _" E( U; ^9 ?2 c
)' D) T" k4 j3 q/ h& w+ O
)% w9 P8 }* V7 O: x
1 x9 K7 D& b2 e' l- f/ A$ w (if (= (get_tile "error") "")# q" t0 f/ t6 f8 \. @& x
(progn
( d9 b& c( |0 K) S3 R0 ]& g (if (not (new_dialog "setlayer" dcl_id)) (exit))
! g& ~. i9 g M) ^" P9 t) y (set_tile "cur_layer" (getvar "clayer"))
$ x/ J$ |7 G. s7 `& S5 I (start_list "list_lay")
0 a1 n& z3 t7 Q; ~ (mapcar 'add_list laynmlst) ; initialize list box4 K' w7 J: k+ [# k& L
(end_list)
8 K( H8 ~0 a, @( L/ L- ^: I" j4 { (setq old-idx lay-idx)5 C5 u% b6 t. I( t
(laylist_act (itoa lay-idx))! K5 K( H6 X+ Q# s- K: t0 ^
(action_tile "list_lay" "(laylist_act $value)")
) w/ U- K8 g0 }; k3 R% n' i (action_tile "edit_lay" "(layedit_act $value)")% ?2 F" w; C# R' N5 i! C0 |5 W# K
(action_tile "accept" "(test_ok)")
2 H8 V4 q, q" y6 |3 \0 O6 S. H (action_tile "cancel" "(reset_lay)")6 c& f' F k; g2 f+ E4 E( T
(if (= (start_dialog) 1) ; User pressed OK) W, s) l( X# g4 I# i. L8 ^* P
(progn
9 J3 W) a" F0 I$ L, I& F (set_tile "t_layer" layname)
) R: d1 C2 Y7 a3 y& b6 g (setq elayer layname)+ u) S: _0 D6 S0 @! Y$ d
;; If layer equals bylayer reset color tile6 p7 J: {* @" w: a- r! F
(if (= ecolor 256)
% D `2 F1 j- I; t( h9 @/ R& W7 ?7 b (col_tile "show_image" (bylayer_col) nil)
( F& d. N8 @$ Y. \- x1 f/ t )
4 q6 {3 i V0 N1 x( ]- l layname# q4 ?% f7 w: F3 M
)
J1 }. q0 m3 m3 _; d elayer
& ]( w ?6 Z2 d )3 r6 K7 p6 c3 h
)
7 Q# }# P4 ~' K- I" H _3 t4 c# ? elayer* Q7 _$ M4 B* S$ G M1 b1 ]
)
7 M( @& b- k/ t. g9 A )
. [# E6 K9 z- f, i/ k ;;
. Q' i& V# R- a+ c ;; Edit box selections end up here. Convert layer entry to upper case. If6 u+ c9 {6 A+ n o
;; layer name is valid, clear error string, call (laylist_act) function.
7 s# |- n) N3 T# F ;; Else print error message.& m7 Z& ]% g5 \
;;
0 U+ `3 w) A# X# c! x, H4 F (defun layedit_act (layvalue)
1 l* N7 E3 d- u N- N (setq layvalue (xstrcase layvalue))
( d: N1 m) w t; \* [1 q (if (setq lay-idx (getindex layvalue laynmlst))2 E9 n' ?: v. b8 b& U
(progn
( L% Z) T' j% I) G (set_tile "error" "")+ ^( @. G0 g/ r) W
(laylist_act (itoa lay-idx))! T% c# g$ \3 l! Y: n8 P6 e
)2 ?) j) s/ Q: a" c: B4 r
(progn/ ~3 z' ]7 s- u* O9 r
(set_tile "error" "Invalid layer name.")
6 V1 \3 \' l- c; k# Z& N;; (mode_tile "edit_lay" 2)! c6 b6 A9 H, g; t5 G
;; (mode_tile "edit_lay" 3)3 T4 n% A% V" n# C# E1 z
(setq lay-idx old-idx)5 @& J9 C) a* I, G0 u$ I! Y
)1 a' G: {/ T+ n! ?
)
7 A) h# z" Q+ W: u/ y )0 i+ U1 \3 W) W+ |
;;
- |+ Y' e9 i: s1 b( }$ |7 [; q ;; List entry selections end up here.: x, t j6 V) f. L/ O! M
;;
3 D+ C$ w% D7 l# J/ R! T0 n (defun laylist_act (index / layinfo color dashdata)" d* c# t$ I1 s# [
;; Update the list box, edit box, and color tile.
~. t4 v" o8 C9 } (set_tile "error" "")
9 J+ e% M& H$ h; E) g (setq lay-idx (atoi index))
4 z4 E$ K+ P: I n. J2 H (setq layname (nth lay-idx laynmlst))
( N/ t) W4 P- a (setq layinfo (tblsearch "layer" layname))9 E) F/ R ?9 D" h
(setq color (cdr (assoc 62 layinfo))); E* P! _) R' @0 ^, v6 I; n* V8 L
(setq color (abs color))
t! x1 b8 q. n3 \; m8 g5 r (setq colname (colorname color))
3 D8 `* n3 x O( y: S/ [3 _ (set_tile "list_lay" (itoa lay-idx))1 O& l- [$ }: a2 i
(set_tile "edit_lay" layname)
_/ b+ D) e( K0 |0 M1 @' t1 q )1 Z2 s4 @1 q2 K
;;
" s0 Z* b6 L9 o; W ;; Reset to original layer when cancel is selected.
$ J% s9 u+ F. _' e ;; K) i7 T" |- ^, D! e% J
(defun reset_lay ()
, V( b$ e) D' }- ? (setq lay-idx old-idx)
. z* d" G7 g3 R (done_dialog 0)
# Z2 X9 g9 a1 |! N )
9 j# k! m% W: P, q% d2 M' ]- V$ w ;;
; ^2 u; d7 z# [/ T( B8 o1 F3 @ @ ;; Checks validity of thickness from edit box.
K$ G5 {; M2 r! c7 q1 S (defun getthickness (value)% p+ I$ m6 W, g# o |
(setq ethickness (verify_d "eb_thickness" value ethickness))
! ~) G/ h: B: ^' [+ P, U- [7 p )0 C: E# v) ~; R" j+ L7 Y* o) s
;;
3 {' n3 ~& _' Z9 n+ B ;; Copy of (getthickness) for ltscale. If more, make this function
" M i1 C9 A+ s ;; generic.4 _, _ |1 T/ F! x4 i! x% \$ R
(defun getltscale (value)& b! I8 I) c* w% Z" Q
(setq eltscale (verify_d "eb_ltscale" value eltscale))2 t# A3 H' c) v7 O
)! \7 X) L! l' X- v' u( C
;; O! B2 s- N% ^8 O" v
;; This function makes a list called laynmlst which consists of all the layer
* N' V# T; v1 d; t% v- F ;; names in the drawing. It also creates a list called longlist which' q6 ^" F7 ^5 C% Q: K
;; consists of strings which contain the layer name, color, linetype, etc./ q, h1 `& F5 B( x( h; M/ q
;; Longlist is later mapped into the layer listbox. Both are ordered the
$ E+ [" Q; r! P: W) C( w ;; same.
' }+ |# j. \# s3 z8 E3 e0 B0 A ;;
' b% k& g* r$ B' J, O" t (defun make_lay_lists (/ layname sortlist name templist layer_number)
1 e& S* J3 | z8 \ (setq sortlist nil)
# Q& ^5 X5 w$ d8 r/ a4 ~* J3 G (setq templist (tblnext "LAYER" T))
/ ]' K, M8 m: ^( g' }3 C6 P (setq layer_number 1)
! ^: `0 g. e0 I, I& K& n+ S2 @3 x4 f (while templist
! X; p6 u1 T) ?' n4 c' j ;; No xref dependent layers, please.2 j5 u/ b. l8 R$ s% V# k* {( N
(if (/= (logand 16 (cdr (assoc 70 templist))) 16)
! S; a' @4 W3 I! s (progn
6 Y, Q0 E/ \, n' X6 m; r (setq name (cdr (assoc 2 templist)))
1 u* W% R' u: w$ v. \( y& [ (setq sortlist (cons name sortlist))9 o0 z& e! o" d& h1 h8 M8 _
)- ]3 [& F1 Q- ^
)
5 d# |" ]: ^8 j( K ; Get the next layer.
8 C9 b- D" U( ~3 p% ^0 { (setq templist (tblnext "LAYER"))
3 D* u4 g t5 d; z0 ]- ] ;; Not dead message...
6 q U( C5 b$ R3 b! `, T, L (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
! @' W% U! S% \+ e3 l# B+ ?' G (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
5 ]! l' _' {9 j# A( ] )
$ G+ I: X& N( k! {9 f& K& V1 X (setq layer_number (1+ layer_number))
5 {- l0 {4 m9 G+ N0 B+ b9 A )
+ t3 ` r5 r/ z (set_tile "error" "")5 B# w7 Y1 {- o1 u* n; {
(if (>= (getvar "maxsort") (length sortlist))5 g: E+ a' Z) t6 U
(progn) S& v2 ]2 U" `
(if (> layer_number 50)( C- Z' r( C3 e5 i3 ^' d
(set_tile "error" "Sorting...")
2 r6 L3 |. {% ]) M4 g )1 R& g$ M5 W, l7 e6 R! I
(setq sortlist (acad_strlsort sortlist))4 f; Q% J0 n( a
)
+ |# ?$ \: W* z; F (setq sortlist (reverse sortlist))0 }1 v9 I: t/ @, @' E! k3 |
)
1 h' H% F3 i l% j9 d" j$ s (set_tile "error" "")
/ S7 H4 z! V0 Q7 o. x6 S8 ` (setq laynmlst sortlist)- e4 [- I9 |- H- R/ [7 r
)2 ]% D: }; o6 s( E
;;
+ l7 ~/ B7 b% |3 S. q. o% v2 M# N ;; This function makes 2 list - ltnmlst & mdashlist.
6 G9 }8 @' J# d$ X8 P$ e, k- f ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist4 U; L" \* A4 R# n; W! H+ k
;; is list consisting of lists which define the linetype pattern - numbers
' _+ L$ ?3 S! N" l$ v3 g* P ;; that indicate dots, dashes, and spaces taken from group code 49. The list
0 b. D1 W3 N! [. ?( h6 X# ] ;; corresponds to the order of names in ltnmlst.
8 l# ?( x }& @0 n5 P ;;
! X& G: v% k' }0 j% U% Q, v& o (defun make_lt_lists (/ ltlist ltname)
4 ~8 O. v' f5 v% f. ]2 J2 ` (setq mdashlist nil)
; g5 ~5 A2 C1 G" @. A7 d (setq sortlist nil)
, w3 T1 t" w5 W$ s (setq ltype_number 1)
8 G7 _+ C7 w8 q" P8 D/ f/ A! } (setq ltlist (tblnext "LTYPE" T))
. K ?! q7 A) W2 H ;;(setq ltname (cdr (assoc 2 ltlist)))1 b, f/ K' Q, }% }2 x- K
;;(setq ltnmlst (list ltname))- R! \* Y3 `# L. x) @* ?# F
(while ltlist
}6 E3 J( F7 p! V* U ;; No xref dependent linetypes, please.( y8 n' F( a D5 N4 ]; Z/ v
(if (/= (logand 16 (cdr (assoc 70 ltlist))) 16). P4 u+ {9 C7 x; w3 g0 V; G
(progn
3 |, c2 @! Q, s0 M (setq ltname (cdr (assoc 2 ltlist)))
5 J, }4 K: U0 m4 A) H (setq sortlist (cons ltname sortlist))
$ q1 T8 U4 X5 h/ F; D9 Z5 V1 y1 R )
+ ?7 u2 `% _2 J) p h )
5 [- p! Y# M) Q4 c ;; Get the next linetype.
8 M- j ?0 w$ M5 H: t% Y1 y (setq ltlist (tblnext "LTYPE"))
: V; y9 [3 j7 u; J$ U/ z+ r8 x* _" H
;; Not dead message...
6 F* _, Y0 s4 \, U8 T2 X (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))+ l6 F, b3 Y+ k/ o
(set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
/ Y7 N" V' U5 D) {8 X )
) T# O( H+ P3 H. } (setq ltype_number (1+ ltype_number))8 f+ [$ P& J# Z' A& D3 @+ f3 u
7 `3 X8 X+ T3 z% N7 H( q )
7 S6 v5 A/ R' _1 e/ C4 ?! |0 p" ~+ ~' A7 n1 d2 r) }- l
;; Remove Collecting message.
7 s( ]: V1 ^# w: E+ c (set_tile "error" "")# ]" `+ U( h7 z/ b- d- o
3 g8 `7 N/ F" _, }/ @% [
;; Sort based on maxsort./ C( A$ @: z+ k/ Z) ^
(if (>= (getvar "maxsort") (length sortlist)). t: U4 j e' h9 w, n
(progn
, N8 ~6 O4 k) J; y( `0 a (if (> ltype_number 50)- v. t3 W# x% J. _9 B9 C
(set_tile "error" "Sorting...")
( J Q; x- W7 o )
9 L6 e" l+ x g" E (setq sortlist (acad_strlsort sortlist))1 ^! L. d( a. z0 V
)2 r% p4 e$ ~: F" I' @
(setq sortlist (reverse sortlist))& P$ L4 g; d9 @' K8 z
)
, `8 d& A3 g* R! u; o0 W (set_tile "error" "")
7 U2 I O( `; X (setq ltnmlst sortlist)
. ?0 D1 J4 k9 [4 ^( \. ~) a+ r( Q" I1 e- ]+ g2 h
(foreach ltname ltnmlst
4 @6 c1 S% V$ {8 e2 K7 f! s (setq ltlist (tblsearch "LTYPE" ltname))
5 \: ^& S$ I1 p# U (if (= ltname "CONTINUOUS")# h {& y* k2 X
(setq mdashlist (append mdashlist (list "CONT")))4 [/ v/ L- f, {; o! v% B }
(setq mdashlist$ @# {: v+ w! ?+ B
(append mdashlist (list (add_mdash ltlist)))
& `9 ~( } `% _ )
. x8 W8 w- F6 K9 g; t )
! Z j) x& f3 z% o! L! _7 ]% X )
0 f* D! q- k. L4 G; X (setq ltnmlst (cons "BYBLOCK" ltnmlst))
7 Z0 x/ {4 e+ \7 ^/ \+ H5 P (setq mdashlist (cons nil mdashlist))
3 m) V3 J! r7 k5 O- o (setq ltnmlst (cons "BYLAYER" ltnmlst))- f( j q- D: c7 h/ h
(setq mdashlist (cons nil mdashlist))# w: k0 E$ X2 C F/ L+ a6 p: }, c
)
, d9 a7 {8 F( Q2 ?' ]8 z ;;
! ^) K5 w8 N6 |$ Y/ t ;; Get all the group code 49 values for a linetype and put them in a list" X$ B/ a* Y" x/ Q
;; (pen-up, pen-down info).
9 z6 c) ]& k! Y. ]1 i8 X ;;+ _- x: D' {/ e
(defun add_mdash (ltlist1 / dashlist assoclist dashsize)
% e; R$ _' ?" V" a- Y. @& i1 I6 l (setq dashlist nil), V. h4 f5 S. b5 M( z' v
(while (setq assoclist (car ltlist1))
# P7 ~+ S. X8 y q (if (= (car assoclist) 49)* o& P4 s6 b6 n( |4 [
(progn
* z: p3 b% Z! L! q9 I (setq dashsize (cdr assoclist))
9 Y" J+ l' K- K( c" P! ~- n (setq dashlist (cons dashsize dashlist))3 U/ n. g+ @! u4 X2 i- N& ?
)+ n- b' S% d6 ~+ d$ Q( J
)9 a' _2 }( K% u
(setq ltlist1 (cdr ltlist1))
0 m5 ]; D" D2 M8 V ), q! o# a* s( [0 c; U# r' C' R
(setq dashlist (reverse dashlist))
6 M0 `2 _2 ]1 _$ I8 k3 y, A ), ]1 S! ?- w4 [, A
;;
! _% h) t ?4 d6 _. ~ ;; Color a tile, draw linetype, and draw a border around it! d& m% [7 Z" S5 }4 `$ C8 e
;;+ q) J& C- i" t3 G9 Y
(defun col_tile (tile color patlist / x y)
{' h8 i4 U5 }! I1 E (setq x (dimx_tile tile))
& d9 R0 V# l& }; I! v0 ?# i! _ (setq y (dimy_tile tile))/ B9 G! \' G( n. S# {0 l
(start_image tile)
% Y5 [7 ^1 G! |7 Q2 d (fill_image 0 0 x y color)/ F2 i7 w! |3 X; j- m1 f, t% f0 Z
(if (= color 7)
0 H2 L/ m( Y* X) g* ?! c, E (progn0 f5 Z3 }; Q& X/ A7 e
(if patlist (drawpattern x (/ y 2) patlist 0))
( K/ `& c- s( M9 Y- ? (tile_rect 0 0 x y 0), \; Y9 f/ q# w
)
- h, S k0 ]+ k" t. T/ N7 Q# Y, J0 L (progn
% V4 U V* P8 l! q5 V (if patlist (drawpattern x (/ y 2) patlist 7))
/ p- a( K/ m( w* V% b q$ Y (tile_rect 0 0 x y 7)
" c) {. b$ e G( A )
% o' i. p8 f6 i. z )5 l/ V$ X6 y# Q; y- q& t
(end_image)
, }! P0 G4 q# s0 j& K6 `3 l )
7 P8 n+ i- d# p, N9 i2 K ;;
6 @1 }; y, c$ I9 J/ n7 ^% G0 T ;; Draw a border around a tile
7 T7 m1 H, _/ Y ;;4 `" u9 s% O4 C" y2 ?
(defun tile_rect (x1 y1 x2 y2 color)
, b9 ^: j& Q( v! C (setq x2 (- x2 1))2 I `3 P9 u* V
(setq y2 (- y2 1))
% Q. Y. a0 X7 D) ~6 v) L (vector_image x1 y1 x2 y1 color)
7 P2 \1 z+ ^2 V+ B (vector_image x2 y1 x2 y2 color)
- B$ M4 D# A; _4 T (vector_image x2 y2 x1 y2 color)
* [8 }8 U+ u+ I3 M; W2 Q (vector_image x1 y2 x1 y1 color)
! j o8 M" d7 M )4 _3 m, H5 I2 N6 E6 K: B
;;5 p2 }% G' s g* t; K
;; Draw the linetype pattern in a tile. Boxlength is the length of the image1 G8 |9 N9 t, e7 g' i3 M
;; tile, y2 is the midpoint of the height of the image tile, pattern is a' v" F+ W5 v2 p, I" t2 P
;; list of numbers that define the linetype, and color is the color of the
+ ]1 H" I6 d8 [6 g; \$ Y0 c: i ;; tile.
6 l6 x% j6 l) d% A1 a5 L ;;
/ m/ x! B- r q5 M9 F (defun drawpattern (boxlength y2 pattern color / x1 x2, }* D- C l3 F
patlist dash)" m, F. j' D, B' `
(setq x1 0 x2 0)
. P4 O( D' ]& K3 k1 G8 D& } (setq patlist pattern)9 A) Y Z' @3 S+ P3 `+ k2 e
(setq fx 30)# S* e" E3 h/ N
(if (= patlist "CONT")8 j: {1 c3 N D9 K b
(progn (setq dash boxlength)
8 j) F/ c( r/ w* V* x6 y, b (vi)
$ z. b0 _* g A- u (setq x1 boxlength)
. a/ }' n: h% S' Y" A- t$ G$ h% a )
3 X# [+ u1 m" e' N1 ]) {9 ~5 \1 S/ O. L (foreach dash patlist1 `7 @! C, {* i. c
(if (> (abs dash) 2.5)$ u* g: H4 v/ L: E9 r6 J
(setq fx 2)
$ B. M1 w* p6 X$ c- V/ J( H% C )! g8 N% _; g" \; I1 X9 j# I6 C
)) l! I: n+ K, d" z }3 n8 H: c5 Q
)
! {; Z" D0 D. O (while (< x1 boxlength)
2 \0 S+ ~& }4 G/ [# x (if (setq dash (car patlist))( R* g8 w+ N0 r8 S- F
(progn+ p& Q8 B7 A% g7 l* |+ g# m; R! v1 v
(setq dash (fix (* fx dash)))4 k1 i: Y* P3 T, ^
(cond
7 M! A! j% Y, }0 h1 Q4 A! t/ P ((= dash 0) (setq dash 1) (vi))
?( c! F: T5 k8 R4 N1 k5 t ((> dash 0) (vi)), b" K$ J7 M i3 h4 b
(T$ e. N1 b: y% M: C$ t
(if (< (abs dash) 2)
$ F% h9 x% r2 L1 Q1 M# c* \ (setq dash 2) n8 e5 e5 P/ Q8 U9 t) d
)5 P* m* L$ I9 _( ^; Z( N4 U6 g
(setq x2 (+ x2 (abs dash)))
* q- L i7 z+ |7 J, y5 Y6 I3 T/ @: C )
% ]9 v5 q6 z# F* N1 N# Z ), r# O, P8 v, U
(setq patlist (cdr patlist))
& A/ r9 ~; L# \! Z# U$ L0 I$ s' m (setq x1 x2); V9 R" E4 d! s4 t6 s
)
& o3 V% U2 C; [: I! Z* X* e5 @ (setq patlist pattern)1 G( B6 I" Q' h" B$ Y: b+ w" m
)
, k Y( r$ s6 y- K ): q0 |/ l- K; H$ N
)
$ v0 H# x2 P; z* l0 s& `; M( G3 a' E# h ;;
% I0 W5 ~- I) U) {( u% t ;; Determain state of xclip; Q" ^ R9 ~- ]8 E6 r& @' M/ u- G
;; Returns the group 71 value of the spacial filter dictionary.
F( x7 s3 K" G0 g( v4 h) A' d/ S ;; If the entity doesn't have a spacial filter dictionary, this
+ J, w* @5 `8 [2 }+ D ;; returns 0. If it does it will return 0 or 1 depending on the& P! \; H, J) W5 l: U
;; current setting of the state of the clipping visibility.
" A4 q3 O! ~) E- {3 o ;;
, i# E# B5 ?9 H0 j- ]' `) S' b% @ (defun xclipon(elist)! e$ R' t+ t# {+ O4 F; d2 D. [
(setq hasclip T)* v: } s+ ^: Z f
(if (/= (assoc 360 elist) nil)
8 L9 q, S. P% i5 p0 f# Y N (progn4 ]: p7 z; _8 {. b# N2 R
(setq tmp (entget(cdr(assoc 360 elist))))
! P+ K' D/ H3 Z' y: I (if (/= nil (assoc 360 tmp))' B5 J2 U8 A* B7 Y% t+ f( ^
(progn$ V$ |1 O& X* f" y* B9 v
(setq tmp (entget(cdr(assoc 360 tmp))))
+ h1 i# y8 y6 u (if (/= nil (assoc 360 tmp))8 F- x9 F8 R6 p" _& g
(progn
3 V( _+ Q5 c/ Q (setq tmp (entget(cdr(assoc 360 tmp))))! ^% T# A: u* @5 o; W' S& i
(if (/= nil (assoc 71 tmp))( a; T# k' N7 |9 X! J- v* f$ a
(cdr(assoc 71 tmp))
7 \2 Z6 K( ~# `$ J8 w( ~2 M (progn 6 x3 [! r- C, f5 X% q3 U. K( [( ?
(setq hasclip nil)
; r1 D- S% F$ z' _ (eval 0)
! J' b- t3 Z8 y: Z ). Z2 v( d _, ?
)5 V) m; ^& Z! e, l0 c5 h
)' T) A- t. k# o' d2 Z4 Q/ L) U
(progn
$ \: l+ Y3 o# g/ M! k4 k1 i' x4 ^ (setq hasclip nil)) G$ B' q. \4 }
(eval 0)
; B" h# T' _5 T )1 U6 o/ s8 N# h Y2 }
)9 N2 E* `/ e; N* E# d3 B
)
6 T6 H+ n- r5 e) F7 G1 a (progn
% x! {. h6 a3 {4 X' z (setq hasclip nil)+ \' G" ?6 O1 u" |+ w& F
(eval 0)' [' L. b1 m$ }
)2 G8 K: a7 |3 j2 Q1 N( k
)
3 w2 j/ d- `, d* q' H1 r )
' ^; |" }; I6 w; p" E3 a# W (progn 4 Y) V P5 C7 F0 L
(setq hasclip nil)
# S/ `0 j* b( ~" C- `7 y (eval 0)9 ]2 ~9 v9 Y4 ^2 h" N
)7 L2 l+ U7 V7 I! _+ u0 @/ r& {0 B
)7 F Q1 X( Q3 \$ p
)
$ k- Q$ _# V3 J' V- c% f9 A: [% p ;;* f( P' w' ^4 Z9 V0 _4 m* X B
;; Draw a dash or dot in image tile" q' M+ a7 b" v2 ~
;;7 d1 V0 J" L# ]* _
(defun vi ()& E, Q' O/ W. i3 s9 ]
(setq x2 (+ x2 dash))
, E* s7 r! z" ]3 _$ j9 O% x (vector_image x1 y2 x2 y2 color)* b/ |' W$ u; m1 y. u/ ?
)$ \3 j# @) \1 I* M* l# T- ?
;;! ]& ^5 Q" W1 M$ W' X
;; If an item is a member of the list, then return its index number, else- t( o8 X6 ~( ~7 Y9 o$ ]4 k% }
;; return nil., \4 o2 e$ X: `
;;
. ~/ J3 d3 d6 V7 P# c+ l { ` (defun getindex (item itemlist / m n)
( C( ~* E) g c- f (setq n (length itemlist))
- r- a! v9 l% l) E* a (if (> (setq m (length (member item itemlist))) 0)
9 j/ g2 L, Q1 S1 E9 z (- n m)
' ~3 {, V( E& h0 p nil. ]. w1 `6 M: M: o$ ~/ f
)
, \- _3 P2 f- y )
6 z; J) ^4 Q5 s1 m: t ;;
: F' M2 `. J' B! l6 {/ r ;; This function is called if the linetype is set "BYLAYER". It finds the1 V. M" x% @, m9 F% u T5 A% A
;; ltype of the layer so it can be displayed beside the linetype button.
N6 q! s1 d0 o/ m4 h ;;
3 L: Y( h u0 E! ]0 X (defun bylayer_lt (/ layname layinfo ltype)
! l$ N6 h6 o* i4 P: L9 f (if lay-idx) h1 z. R0 Q/ m8 P; D) h+ h
(progn
; u- f# }5 |( g1 V! M( [# Y (setq layname (nth lay-idx laynmlst))
L. v3 T# f) ?# j (setq layinfo (tblsearch "layer" layname))
5 S0 d3 Y) G/ }# a% ^2 z3 A) C D (setq ltype (cdr (assoc 6 layinfo))): ^+ U* Q u! T, |3 D' y2 L
"BYLAYER"
! o. B- {2 i. K6 s! V$ B1 c )
8 g2 H2 ^$ i. K; I "BYLAYER"
1 r! F; T) j& O) }+ d1 m8 D )% ~& Q7 j8 {$ C6 ?# K% _" z a
). y3 }8 i# @; b, m, V' x9 a1 A
;;
( J7 w: _% j! L" N6 h0 x ;; This function is called if the color is set "BYLAYER". It finds the color
2 `* q( {( [ c/ k ;; of the layer so it can be displayed beside the color button.* `2 d" Z- }, @7 j
;;/ B8 h$ M( g5 C
(defun bylayer_col (/ layname layinfo color)0 p9 q" x: Y( K1 O9 ~* g: K% Z2 T+ x/ H
(setq layinfo (tblsearch "layer" elayer))/ m) M- _: x' \# m' ]$ I
(setq color (abs (cdr (assoc 62 layinfo))))
+ d4 D' U7 a$ I8 j+ D/ C& {& [0 b )
# c1 _4 a3 M* m" Z* @& y' v/ d ;;
6 z% O1 X: p; n! U ;; Used to set the color name in layer subdialogue.% k" b# m$ `: K6 I; x
;;
+ {( `% y5 j2 F* h. Z. x7 Y (defun colorname (colnum / cn): o& q, S5 r* P2 `0 c
(setq cn (abs colnum))/ W# h( o- S6 _0 y6 g
(cond ((= cn 1) "red")8 g/ O8 f# s2 |
((= cn 2) "yellow")
- X' X" F+ m/ ]6 F1 M ((= cn 3) "green")
; O ^- i0 w& J) ^1 t; |# B ((= cn 4) "cyan")
& g" p- P3 P7 i* q8 r ((= cn 5) "blue")# x) b* r9 |- q' L- y6 B+ c
((= cn 6) "magenta")8 d) i4 Y. P8 s: c0 _: o
((= cn 7) "white")
: a, q) g, R8 a0 J (T (itoa cn))
" x/ Y% F4 O2 k1 ^6 U )
; C7 ^$ e! z2 V )2 z& ?/ x8 n, ^# ~! N: g
;;; Q% V( Q' ]9 L) G3 u
;; If their is no error message, then close the dialogue.
2 B! G( p) u; x0 j3 p4 H ;;
0 t! O; F! u2 E' R. F (defun dismiss_dialog (action)' t% v# G C& r7 u0 k/ J# X
(if (= action 0)
2 A3 M4 t# e' E# o$ R q (done_dialog 0)
5 S0 F/ o; n& H (if (= (get_tile "error") "")
7 l# D% u/ E# J% i+ e (done_dialog action)
9 u V; @. g t9 @ )
. `+ S [" Q9 q )* `# u. ?2 |" s2 h* l- ?% m
)
- A9 H) T- z5 z# ^1 |7 z% q# s; k' g6 H2 Z8 N5 w
(defun test_ok ()/ v+ p# ^& {# a8 ~ _- q8 a5 Q
(if (= (get_tile "error") "")0 ~3 R1 Y/ \9 P6 h7 Z& t
(done_dialog 1)
( T. {8 E7 {6 m$ T$ K6 V )
! C8 K1 x/ G {4 H# L$ q+ }$ Q )6 a2 b B1 x6 G: I$ K9 f) U
# W2 ~. \/ H* M4 M (defun cancel ()
* |) v- `0 I+ I, J. n8 `+ } (done_dialog 0), G' D3 v d& c1 y( N- M
)
7 I( D2 t4 X* s5 a( F' m' e! b6 d5 Z9 `$ @( L/ a1 i* L5 _
;;; =======================================================================: U7 t& C' g0 B9 W2 a
;;; SETUP layer and linetype lists for application, and initialize all# y7 Z0 O% u4 }# h3 E4 G
;;; program variables.! s. L. K% T( \% X* A( ?: g
5 K6 L" H1 `/ Z
(setq elist (entget ename)1 }# f; v9 C3 f
old-elist elist
2 l5 Y* L0 j3 Y' b9 B4 N. C modlist elist8 b9 W* x z" k0 T
etype (strcase (cdr (assoc 0 elist))) g2 D9 b8 }! E
ecolor (cdr (assoc 62 elist))
- i( N0 ~5 J9 \. \6 T' _ elayer (cdr (assoc 8 elist))
" K1 z4 P9 g5 T eltscale (cdr (assoc 48 elist))
1 c8 I7 T7 G9 d- w3 {: z) G2 Z ethickness (cdr (assoc 39 elist))/ y8 C# ], A# h9 S S% [6 x
eltype (cdr (assoc 6 elist))
+ j/ H2 f# |" `# ^; J )
* B3 x8 Q8 K6 @9 X: Z( B/ M (if (= (assoc 210 elist) nil)
' S- W% ]# g. i9 J( u3 j (setq extru (list 0.0 0.0 1.0))5 n" S6 P! B# _7 m! J
(setq extru (cdr (assoc 210 elist)))
. `+ h7 v) } c v1 @: I$ E. } )
/ H& V* z" B7 r' H' ^( \2 D2 V( F- N0 j0 p; j
(if (not ecolor) (setq ecolor 256))1 ?0 o4 S1 ?0 x) m
(if (not eltype) (setq eltype "BYLAYER"))
* u9 H2 d4 `5 \3 z& P5 ]9 A (if (not ethickness) (setq ethickness 0))' q; {8 z' r- O# Y! y
(if (not eltscale) (setq eltscale 1))8 H0 ]+ r" R( p6 n* C! {3 B
) ; end ddmodify_init
! e. e) F- h' b: H
* J& b# o0 ~: U2 n2 W( P- w- T% C;;; --------------------------------------------------------------------------
8 D& k' K" S$ E$ ]( N;;; Function: DDMODIFY_SELECT4 g' y, W. C" D P) V. h3 Z" @
;;;/ W1 X# g' T$ `7 P. f
;;; Object aquisition function.3 P) U% `, Z9 r3 c3 M
;;;
& ^9 M+ N! @4 Y4 G/ G$ H: D;;; (ddmodify_select). z" `* Z3 ]3 A; p# e
;;;
' g( h+ I* I$ C;;; Obtains object to be modified, in one of three ways:
4 W4 M# L* z1 A$ ^ {5 c9 U;;;+ s& l- e1 y( s
;;; 1 - Autoselected.; a& k {- W% K6 j2 w/ [. t
;;; 2 - Prompted for.
# P+ ^9 I& [ E: u" f3 ~;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
6 n9 l) {7 Y M7 U;;;1 G2 [( z. q4 N9 }: V
;;; The (ddmodify_select) function also sets the value of the
0 d6 t# L( p- I% O% T }, E;;; global symbol AI_SELTYPE to one of the above three values to$ u6 G Q) }* Z2 w4 ]
;;; indicate the method thru which the object was aquired.7 Z, q! x/ \; A- f/ [/ g, m
;;;; q. X+ M, u) [& s, @# H+ q
;;; This value can be useful to applications that want to RESTORE
1 e0 P, a6 C" i) [& p; ~* M;;; an object that was autoselected to its previous selected state
+ s# c1 o, e5 g: K& s;;; when they terminate, although there doesn't appear to be any
: ]0 s+ q% N) Y# P; K;;; way to do this right now.( F6 S8 V& J* H' c* X
$ k' {6 M4 x3 j1 p3 x(defun ddmodify_select ()8 W9 p n$ r/ N' V
(cond, C6 e/ M, I' \% j( A
( ename ; (ddmodify) was called
8 D2 a- j6 l9 n9 j1 r( j" M (cond ; with an <ename> argument0 m1 d, B! s3 J! G7 V* j
( (entget ename) ; If object is non-deleted! m9 J# o, p% n' ?( N( N1 ]3 Q5 _
(setq ai_seltype 3) ; then return its ename.6 s0 y) P& g" x$ T
(ai_return ename))))0 a* L! s6 U6 t) M; W1 B/ s" q
; z/ N# x$ A5 h9 w# V, b
;; return auto-selected , see ai_utils.lsp
" |5 e- |! D8 Z8 T, T ( (ai_autossget1 "\nSelect one object to modify: "))% H5 Y% W: S: C, O
' D2 x6 s% Z; R- {* Z% e1 z6 m (t (princ "\nNothing selected.")6 E. U8 P" |/ d/ Q4 \+ O
(ai_return nil))
( E8 r" A' e( [$ L7 \1 j! L1 M, h+ n )9 u; v* u/ [- f* ^3 n
)
$ u7 K" u8 T; w4 S& i l# M# W% _' Z, s$ |8 b0 m# s$ D
;;; ============= Command line interface function =======================1 X4 k0 j4 l P$ }
1 W. t" z/ E6 ]$ r$ L) C(defun C:MMO ()
- C8 x$ g; ]# D% g4 Y (ddmodify nil)
2 O2 G9 _; K$ b7 Y1 S* f" o5 f (princ)0 E# u \+ l1 \" k2 ~
)
i, H3 p4 ]" d- R6 C! \0 e, R* U/ v6 R2 \+ L% V
;;; ================== (ddmodify) - Main program ========================% E' ?7 B* S; o/ c! _( I( P# N6 V
;;;
, n$ @& o8 ~+ K/ o3 `" p% i: ?, I;;; (ddmodify <ename> )
. F' l( G6 m( Y @$ r/ R;;;6 p4 y. q8 k7 @' ~0 ?& G; L' l
;;; Main program function, callable as a subroutine.
* p; E! X" R/ b# h6 z: Y3 T. X5 K8 `;;; k( |; A9 ~3 c8 ]$ d7 G3 Z
;;; <ename> = object name of the object to modify.
& c5 F8 f5 L$ t0 @;;;1 m% D# c4 |' t- |
;;; If <ename> is nil, then user is prompted to select
5 q, ~, N) v. [" I0 a. U;;; the object interactively.) d# v! M; \% m: ~. M# @6 S8 u
;;;& o0 Y8 L7 A- u9 v2 p. C- ~3 d0 P
;;; Before (ddmodify) can be called as a subroutine, it must
6 C; N& Y7 m! ^& ~6 e7 C;;; be loaded first. It is up to the calling application to" v# a! X- [( a2 L' N* k' e
;;; first determine this, and load it if necessary.- P$ l: |' k, \( }; ~
" I. e) k% t2 n% O. H
; ], J2 S4 L3 Z J' w4 W) P6 `9 ^# Y: W(defun ddmodify (ename / h( o# Y3 S+ E2 c
2ndpt ell_calc_area move_pt1 templist
$ L' @7 z; k/ ?; D; Wadd_mdash ell_tile n tempmod
) |5 h& Q7 s) q+ b6 walipt eltscale name tempst_ang% _1 Z6 l& H* ` P
ang eltype newpoint test_ok
* Y( x2 w ~; M& m5 Larc_calc emod next text( r) H3 D! J" |6 W$ m8 x5 w8 R; d
arclen end_ang next_vertex th-value
- N* @$ i4 n1 Y8 U; Y; B0 Z- }. Hassoclist endpt obl tile
! Y. z3 E1 }+ H6 `5 Datprompt errchk off tile_rect* c: }, {+ F% E. z5 q% S2 ?, Y
attag ethickness old_majrad tilemode8 T- f/ t e& F4 `
attprompt etype old-closed totang# @, o" P a2 s0 X
bit extru old-closedm tstyle
' f) F- u3 S( nbit1 fchk old-closedn u
3 \$ E2 g8 h% i6 j5 ~bit-10 first-10-rec old-elist undo_init
5 }, U$ f* |. F( Y; Cbit-11 first-10-time olderr upsd
9 G) E$ E+ ^0 X) W7 ^" D' \bit2 first-11-rec old-fit v3 b1 n2 R {% O
bit3 first-11-time old-idx va# {7 m4 i0 W- E; l' K5 Y: j) U
bit4 fit oldlist value ]* A! Q8 v/ @+ J! P* y2 l4 e
bit70 frozth old-spltype ver_4
; T; o' q# k( i$ p3 u' c" hbit-70 f-vis old-u ver_ang15 h4 _" I: n1 ?% k5 z
bit75 fx old-v ver_ang21 j$ p% G- w( k8 X" p3 C- y( A
bk-up get_color on ver_col: i( N3 S+ G/ q* U+ S
bkwd getcolor onoff ver_colsp
7 q3 J( I8 }" k1 D+ g2 W" r' ]6 Rboxlength getindex on-off ver_eangle
3 J5 W; N& V" m$ X `bylayer_col getlayer patlist ver_hght
6 Z7 M& o1 i+ r4 C- qbylayer_lt getltype pattern ver_majrad
+ z. s) F) ^4 u; _9 Ucalc getthickness pltype ver_obl7 }: K( a- Z+ w, S$ E2 `! T
cancel globals polytype ver_pt1
8 F# }" M: K& ycir_calc ha pre ver_pt2
8 Z+ T# J8 f: ?) bclosed ha-prev proplist ver_pt3
& ^! [& M, c" V. L2 w3 Y6 xclosedm help_entry pt ver_pt4. J0 }! Y* ~" O. \: H3 f6 I
closedn hght pt1 ver_rad
, \, B3 m' q& W, n: P: ecmd icvp pt1_eq_pt2 ver_rot8 q5 d3 g: o& K: ^ |& u/ Q
cn image_add_vector pt2 ver_row
: T5 Y u0 i+ Z& q* f; E+ I6 Y, Rcname image_clean_variables pt3 ver_rowsp
- i0 k/ G6 S3 B4 x; O9 y3 j3 ^cntl-pt-indicator image_cross_product pt4 ver_tag
0 R3 [, p( e0 |1 x* c2 Ocode_71 image_disp_opt ptype ver_u
) E- {; v4 J$ f" F, bcol_tile image_dot_product radius ver_v# u8 p0 |. v- H# c3 W- ]) j1 z0 h
col-idx image_normalize_vector rational_spl_flag ver_wid
6 a; j3 H$ g/ ]colname image_rotate_vector reset ver_x17 u6 N4 ^. _# n8 Q4 S
colnmlst image_scale reset_flag ver_x2
[# Q2 m1 k# E0 Y: W0 l/ scolnolst image_scale_vector reset_lay ver_x3
3 q) M' V2 J% ?$ w% v/ _colnum image_update reset_lt ver_x4% a. x# m- E$ Q3 q0 E, M/ ]5 K% j i) ?
color index reset_uv ver_xline_pt1
" d: z2 ]3 a0 @% ?: W) icolorname inv rot ver_xline_pt2, ^" X* h2 J4 f- ?; Y
colorno item rows ver_xline_x1. \. D% [* }$ x7 K. ~) @) c9 V p
col-sp item1 row-sp ver_xline_x2* n- k# p! \ P; ~2 Z( V. a
columns item2 rrat ver_xline_y1. y: c: W6 m# o/ Q& T2 d3 u' h* t7 e6 B
con itemlist s ver_xline_y2
! W, l8 O, i6 i! Rcoord jlist set_action_tiles ver_xline_z1
# o( C5 r- x% ^; I9 ?$ ?ctr jlist_act set_just_idx ver_xline_z2+ F* n' _. q2 T5 G7 M
cur-10-rec just-idx set_tile_bk-up ver_xscl
1 S% s3 I* M$ u% F8 Rcur-11-rec layedit_act set_tile_cntl_pt ver_y12 E+ k/ A6 N6 A. t: ]5 b$ i
cvpname lay-idx set_tile_data_pt ver_y28 X; c. D# H4 S5 k5 h9 j
dash layinfo set_tile_dirv ver_y3
7 ?& V5 {+ r) Z1 b. Hdashdata laylist set_tile_edges ver_y4
3 t' |3 ]& m7 f$ r+ N/ Ydashlist laylist_act set_tile_endang ver_yscl
$ F7 l: F6 n9 y* D& \$ C$ X3 Idashsize layname set_tile_hght ver_z1; Q4 M2 Y) U$ }# E: ]. j
data-pt-indicator laynmlst set_tile_icvp ver_z2
# S' z5 y X# k% [6 Mdcl_id layvalue set_tile_just ver_z3" X8 q$ n8 U/ j! A) Y v* k% H1 F
dd3dface line_calc set_tile_obl ver_zscl# \5 O1 `$ ^- v0 S( R5 J+ x
dd3dsolid linetype set_tile_prompt verify_a, Z9 b0 k* }% [4 p' I% ]
ddarc list1 set_tile_props verify_d
! _; [6 k3 C- d3 s1 cddblock longlist set_tile_pt1 verify_i& U) I- K2 [3 a$ Q+ M- H( @
ddbody ltabstr set_tile_pt2 verify_xline
* j9 L8 |, D" f0 [ddcircle ltedit_act set_tile_pt3 vfy
$ D* a+ ?# g t! v- Nddellipse ltidx set_tile_pt4 vi( q5 v( T9 {: S/ Q9 q! M3 T6 a$ I
ddgetprompt lt-idx set_tile_rad vlist
8 W- G3 m. W3 n" U5 uddgettext ltlist set_tile_rc vname
X4 T$ l; w( e0 Yddimage ltlist_act set_tile_rot vpf
* \; O# ?. N: k* V1 S- Fddimen ltlist1 set_tile_scale vpid
4 k" T; ?; ^ O2 S9 d( _, Bddleader ltname set_tile_spline_props vpldata
5 ~; q# d* q, o* Fddline ltnmlst set_tile_stang vpn
- a( g: C8 C* V7 T3 V3 k( _6 p& v+ Nddlist ltvalue set_tile_style vpt
# p, Y) ?4 p0 v- ^7 w) t1 q0 ?ddmline ltype set_tile_tag which_tiles% N7 g) |3 T0 h1 R5 `0 n; `+ a
ddmodify_err m set_tile_text wid7 f/ P ?6 u& ]% {& z+ E$ F- v6 W& o2 u
ddmtext majrad set_tile_vpt x
# s) M. j h8 q) B. W! `ddpline make_lay_lists set_tile_wid x1' N; _3 n L7 t" |2 Z+ T
ddpoint make_lt_lists set_tile_xline_pt1 x2: t/ E. I, K% P$ `( T* N* j. H
ddray mdashlist set_tile_xline_pt2 x3( E: l$ S' x/ k. j" ^, U
ddregion minrad setcolor x4. q9 v6 @ Q5 @5 i9 b+ q1 _; z a3 Y
ddshape modify_3dface shght xdlist/ ~' ~8 j1 ]! Y1 s! G$ \3 { c
ddsolid modify_3dsolid showpt xline_pt1
+ B; s/ |! c1 R q2 G. Cddspline modify_arc size xline_pt2$ \. m" T' ] C; y g
ddtext modify_block slist xline_x1
) D G' m) B& O( s4 u3 h' H) \% tddvport modify_body sname xline_x2" B8 D: V. f! i% k/ T
ddxline modify_circle sortlist xline_y1
5 h V7 n7 I' c9 mdenom modify_ellipse spltype xline_y2. k5 X& d! r8 ^" d+ Q: P
dialog-state modify_image ss xline_z1
. k& D5 x( x6 i, Z. m: Ddir_pt modify_line st_ang xline_z2% n! X7 ]' w* C4 \- m; O
dir_ptx modify_mline stpt xscale6 h- A& o9 v' R% ^) d
dir_pty modify_mtext style_act xx' z6 j' f( K( J$ [, \& i
dir_ptz modify_point style-idx y
( Y8 N3 M* m& u7 V2 Odismiss_dialog modify_polyline style-list y15 X6 W6 o. ]9 D2 d6 G
drawpattern modify_prop_geom tagval y2% a! @* J/ Q- h1 I; [- c* k: ?8 w
echo modify_properties temp y3
1 ]" g$ d* \+ Q, Z9 fecolor modify_ray temp_color y4
3 q, ^2 n5 p3 \; q* Z' }0 t' Bedge1 modify_region temp_dir_x yscale
5 e& y! S9 N* nedge2 modify_shape temp_dir_y yy3 \+ } H0 \$ p; ^) g) D# I6 W
edge3 modify_solid temp_dir_z z1, f- I+ V4 E5 s
edge4 modify_spline temp_xline_pt1 z2, g6 R6 a8 v. t9 e0 \
edgetest modify_text temp_xline_x1 z3
* U! K `' q& Felayer modify_vport temp_xline_y1 z4
: `/ r# s! U }. C Q9 G# `+ m, @elist modify_xline temp_xline_z1 zscale
5 q% Q6 H0 `' I$ |) k$ v, P- i; bell_calc modlist tempend_eang zz3 b) h% p. R' `) E1 {
dir-idx safe_ddedit ver_MtextWidth xcliponoff) T/ M! i% `+ }3 D- H
MText_style# G7 ~( q3 o$ F) u# C
)
% T w/ ~" l: W7 ]0 F' }3 S5 Z {' O i3 I1 p
(setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
; z3 o8 l+ ]& D old_error *error* ; save current error function4 s; s0 R: B" m0 f
*error* ai_error ; new error function
, T, B$ P) E+ }, D3 {1 ]4 W0 s )
6 G1 A8 T6 c4 s- h; j; n0 d9 W1 |8 M1 P4 P! k% Q4 ]
(setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle& X: z6 h4 I. J3 \
(setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
2 d( b1 ]& I% |$ Y- ?) i (setvar "pickstyle" new_pickstyle) ; bit and set to new value7 t9 r5 ~( d1 G" o0 R
3 F: Z, _. l) w! P (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)8 N3 R4 R( L7 `7 v. R- j7 z
(t 1)))
% g" n* q \( ]# i% |% ~+ n (cond! n7 n0 F4 }" H# T+ U4 R4 ]
( (not (ai_notrans))) ; Not transparent?
( ^9 W8 Q0 C6 C" U' e ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?: j) K) v1 v& o. t
( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
D2 h7 ]& P% }& y' b ( (not (setq ename (ddmodify_select)))) ; object to modify?8 S% N! {* F7 _: E4 ~
( ~( d) b) s* Z2 d& [6 p4 h1 b2 P; E
(t (ai_undo_push); [: z6 L' K% V X1 o7 m5 L
(ddmodify_init) ; everything okay, proceed.* P# B" n, z6 q
(cond) {6 O, L% n1 a/ {- s& Q
((= etype "LEADER")8 `& D3 x5 w; L9 C; d0 G( G
(setq help_entry "modify_Leader_dialog")
5 P# n E& d' v4 H8 Y8 R: A (ddleader)
# r' }: M5 a# \ g* j+ M )
' }' g, A# B% a ((= etype "ARC")9 a; t/ W( @; w5 Q* Z: w
(setq help_entry "modify_Arc_dialog"), P, p2 }+ G9 L3 W& x) {
(ddarc)
( A9 @/ ^& k* }' f P' H )% N0 S1 N4 ]) m/ _, f1 A# Q8 r
((= etype "ATTDEF")
' A, _- q7 ~) c/ e9 [- i( F (setq help_entry "modify_Attribute_Definition_dialog")
" ?, u1 M8 B* z3 k/ [ (ddtext)
) ]' |7 h! t$ h )
5 H% G; O, P \, d+ R- } ((= etype "CIRCLE")
' b x# m2 i: j& v! v (setq help_entry "modify_Circle_dialog")
7 c# b+ x! V5 f3 j (ddcircle)
, C* D% F a, {+ E M )' o: p5 v9 ?+ i; T- u3 h
((= etype "ELLIPSE")
1 b+ ~* p2 m; f6 k4 d, ~ (setq help_entry "modify_Ellipse_dialog")! S# W w2 o& ]& `
(ddellipse)" N, x$ n0 t) f- q4 ?1 V
)
5 K! E) Y3 \$ j% Z& B2 Z; M( d ((= etype "3DSOLID")
1 c- U% E/ d I& _6 Z (setq help_entry "modify_3d_Solid_dialog")
3 [( |% |6 H6 Q. H- o (dd3dsolid)3 n3 x; G8 P9 O6 C
)
, X- I0 A' S8 ~9 i- @4 a) S ((= etype "BODY")
* Y, N$ M5 \" }9 r" Q7 l (setq help_entry "modify_Body_dialog")! ?( S* R3 y& `8 L% O8 ~3 P
(ddbody)
; k3 t5 Z* s/ D1 `9 L- S4 g )
5 ?: C7 N4 p$ l3 c: Q6 X8 ~ ((= etype "REGION"): T7 T( M( ]; s7 }3 H
(setq help_entry "modify_Region_dialog")
% d8 @, o+ Q7 |/ X (ddregion)
7 Y( L" H5 Z. m2 ^5 W% K )2 I; }! U" _7 F2 a* I ~
((= etype "HATCH")
- Z1 T% E( t( J) |; H (setq help_entry "modify_Hatch_dialog")
; s2 j/ O! V* r# x- c+ e' ` (ddnewhatch) I7 k6 }6 u: W! B1 j
): `9 u6 R+ I+ p5 p* G' o
((= etype "SPLINE")) S" n5 N3 f7 O- \- ?# O% u- C
(setq help_entry "modify_Spline_dialog")- [: A+ a& q2 P5 |
(ddspline)
+ q0 P: Z: P7 y8 W' h )
- ^4 d1 d' a' ] ((= etype "INSERT") ; see ddblock for help_entry
3 |$ v& S# E. I+ C& A6 w (ddblock)
5 E" Z: w" l+ F; y )
/ U& a% y" R7 D$ e! |* n ((= etype "LINE")3 ?0 ^' P5 E" V! Y/ ]7 o( H4 B
(setq help_entry "modify_Line_dialog"): k) _, A; A3 ~- p: O
(ddline)
4 D4 D. @6 H* W& I! P )
9 N% I: G8 t8 S( E& x1 M2 e ((= etype "MLINE")! a H2 _6 p2 Z, u$ m! b
(setq help_entry "modify_multiLine_dialog")
% A" l7 y" l% `' r x5 j3 x (ddmline)' g( K \6 h/ ?
)
1 O; @3 j; k2 Z9 w0 n4 d ((= etype "RAY")1 b% r9 K* l# j* P5 C
(setq help_entry "modify_Ray_dialog")3 l1 ?' R0 [* F0 I, r' l* y
(ddxline)+ P3 i6 n; k- J% ?8 v
)1 s4 n% ? P1 e' q
((= etype "XLINE")
( v+ M6 y- k3 i9 N0 j$ K5 S8 B9 v (setq help_entry "modify_Xline_dialog")
$ x. ?# R: i4 C4 j3 {) m" h (ddxline)
% L2 l2 b0 s: x8 \+ k) k/ z& H )0 |9 E( `5 r, P" G7 ]5 o
((= etype "POINT")9 h+ U. O# f& ^/ L
(setq help_entry "modify_Point_dialog")7 l5 ^4 h0 D; j/ @# r# `2 H
(ddpoint)9 w" ` `9 N: L8 ]
)
8 n% V: [: [! @# D1 N ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
- a+ t; ?; x n (setq help_entry "modify_Polyline_dialog")
7 W; a! M o9 s ;; If a 2D pline, check to see if it is planar to the current; s7 k1 H9 w# N* W9 ~
;; UCS, reject if not. To see if the pline is parallel,2 n( I" z v- ^* Q" X( G2 E: L, _
;; the 210 group (WCS) is added to the current UCS origin (WCS)
# U: R# z! x5 _4 X$ A ;; and then converted to the current UCS and checked to see if7 P% F8 b7 T T, {
;; it is equal to (0,0,1).4 f/ p9 ~+ Z" O, m$ i3 I; H
' ?( B1 |+ h& ?& Q' |+ \$ B ;; Incase the 210 is default and not in the dxf list.9 a* J4 D: ^9 z) o8 I
(if (= (assoc 210 (entget ename)) nil)
2 `6 |! q, i& d- F+ [5 x- E/ | (ddpline)% |7 ^6 {. c* L# \ ~$ s/ f
(progn2 k( U7 b: r" f
(if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))1 X' V! S2 w2 H2 @% n2 q
(not (equal '(0.0 0.0 1.0)4 c! z8 y0 | _
(trans (mapcar '+
" }4 _0 i* u+ Z8 B, h3 Q (cdr (assoc 210 (entget ename)))
# O5 D: N7 y2 ]% l (trans '(0.0 0.0 0.0) 1 0), B2 t3 [. N4 G
)
5 A! i! h9 N, y5 X/ p 0 17 l4 q' w X& l4 w9 y2 o. z
)+ X: k) P9 ]: o3 j
0.0000000001 ; fuzz
% T7 o4 \1 i( w- t4 b )
T) V" k$ k3 v7 j) v% p3 Z. T ). D# Z6 B$ S7 _
)
( U1 P: O% @% w2 @3 t7 G (princ "\nThe 2D Polyline is not parallel to the current UCS.")
( S+ z4 q9 Y1 s2 D- E2 [+ U) c' X (ddpline)$ c: |7 s: w8 j1 y6 ~$ \
)6 S/ O; s2 |0 u8 n2 B
)4 u4 r1 M6 h i% f! l; V' _, X
)& D# m! |7 r; @& B1 {
)+ B* \" x' F3 o4 M5 i4 [5 X
' A D& }6 O b% E. h, _. W ((= etype "SHAPE")5 A! U: H* D* A3 F* `" B" `
(setq help_entry "modify_Shape_dialog")
5 J7 @ A( p1 A) g4 |- d1 K (ddshape)" R0 [ w6 T3 n: e
)! _! \* M% [& ~! H: `0 J5 U5 M
((= etype "SOLID"). }; \! d( z& f# C
(setq help_entry "modify_Solid_dialog")' G$ P6 T2 B; ? V# \& ` l
(ddsolid)- e# J& l; g! V6 ~5 ]2 k
)% c: t/ Y) r) ^8 x- P5 N
((= etype "TEXT")7 D6 Q9 p K. H7 ?8 Q% y
(setq help_entry "modify_Text_dialog"): U0 W+ }. c! C) [. y) V; M
(ddtext)# c' ]$ P$ B) W' g6 l* y; F
)- L: A8 w/ V+ l# k, @- m: }( o1 j! y
((= etype "MTEXT")
8 y) h9 q/ A- r, a (setq help_entry "modify_MText_dialog")
, P0 p: L A6 I$ a6 T (ddmtext) _' A- ~2 V3 A, t" _
)6 j9 H# _. m; l3 [2 O( j
((= etype "TRACE")
; C, ~* t- r5 v% p C3 T (setq help_entry "modify_Trace_dialog")) E1 ~3 }. v; [1 {( m3 i0 W
(ddsolid)
3 m, E! U Q ?6 L )
) L4 o+ L- s( m' y* [7 } ((= etype "VIEWPORT")# T8 y1 j2 t( |) c" R4 z2 V% y+ _
(setq help_entry "modify_Viewport_dialog")
) ]( z0 ^6 F! ^5 M. ]$ ~$ ~ (ddvport)
& D! c: l* h e! o, g, o O )
# q8 L& [2 s: g e( s- Z6 i ((= etype "IMAGE")
! L2 N7 Z" @7 _! y z (setq help_entry "modify_Image_dialog") }! U& q4 ^& @1 r- C
(ddimage)$ i! J6 G6 f& v' z& i+ x# g" V
)
: s1 [+ p+ t8 ` ((= etype "3DFACE"); ^9 h2 v$ h9 ^! z2 U" [5 g
(setq help_entry "modify_3D_Face_dialog")4 v: d2 T4 P" Q# h
(dd3dface)
0 f2 f, X1 X5 y5 W8 W! ?% @ )% _0 ]& S0 D. ^) s& Q4 [% [( n7 F
((= etype "DIMENSION")+ I. |6 C* s+ O( h- ~
(setq help_entry "modify_Dimension_dialog")" v( j6 J. v- l6 u/ H
(ddimen)
3 B3 x6 e5 I- `0 R# ]! V )
* G. Q+ G3 T6 K ((= etype "TOLERANCE"): J. t+ T, f* H# O9 V
(setq help_entry "modify_Tolerance_dialog")% X0 J% Z2 _- D8 O
(ddtolerance)5 D/ U) M9 M" r, f, b, s6 z
)( l: R1 z0 p6 {& _
;; Fall-through condition changed by MCAD for MDT 1.1 release.4 Z+ Y7 C! U" D9 Z7 t
;; This allows DDMODIFY to work on any custom object or any new object type
) M8 Q. j/ C/ J" u6 o0 {;; that isn't specifically handled above by calling the more generic DDCHPROP.7 `7 z" k1 Q8 L6 q: o3 b
(t1 @8 w) t2 ~( @& w3 v- B1 z
(if (and (not ddchprop) (not (load "ddchprop" nil)))
( P" u0 I; }/ o3 N9 R1 C (princ (strcat "No dialog support for object type: " etype ".")))6 d6 ~* A9 q9 g9 E4 v$ [
(progn
7 m5 y1 f' e" O$ p+ K. Z (setq tempss (ssadd ename))6 s: U( \& D1 M0 {! S
(ddchprop tempss)
% N! d# O G& q9 c+ i) ~0 a6 a (setq tempss nil)
8 C' h# y3 L1 J( Y& j )4 I# A8 ~+ f- F' ?
)3 R8 B: Q* L7 }) v4 a& M; R- B
)
, J) T( v& _! {;; Previous fall-through condition." I' H' a+ |0 R7 T2 `2 v4 }5 W
;; (t (princ (strcat "No dialog support for object type: "1 O2 i* M# W/ Q- E6 ?
;; etype "."$ w3 e# _1 l: N5 G4 G0 k. L
;; )
% ~: n9 G/ x" z0 ?4 l3 s;; )
7 P# Y2 d5 @ n' r7 z8 X4 i;; )$ m: c! A, t+ a4 H
;; )
3 f: d" M- l2 o9 Y' D' o% g4 Y- J (ai_undo_pop)! g( ?" H9 a% @+ P! [1 B
)
$ }8 s$ a. d: f6 E )
5 ^" x9 Z! \6 M: l0 Q3 w
9 j* {5 @5 a5 y$ S. Y/ j (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle2 O) G: ^, d: D Q
(setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
2 t8 B- C' W9 ~( p% \) D+ n, x% ^) Y ) ; to what we started with
0 W3 Q& C k, x& |6 e4 J
. E8 z; g' I3 m; z- K/ w (setq *error* old_error)
% Y! r# }" w0 [" d; J (setvar "cmdecho" old_cmd) ^- u0 W" {3 m
(if (not reset_flag) ; if object was modified, then6 A. V+ x. k* O/ ^' l% c
(ai_return ename) ; return it's ename to caller
1 X# m: d% V X+ f1 S )
' S% a! m: }6 f& ~)3 w l7 }$ L& |5 M* r' }
- G2 o _7 o n: L" x
(defun checkForLockedLayer (ename)
: |' C! o1 ^: X, |" @' J (setq layername (cdr (assoc 8 (cdr (entget ename)))))
2 ^0 C: f) {3 q0 \$ K4 F0 X( w (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
' x7 q7 S( l# K' f8 A% k (if (= layerflag 4)6 W1 M2 g) {% s" }7 Y
T, L4 ~ \. h' C
nil" [, G w* n2 h( R
)
/ Q5 O! \4 p2 e4 f# M)3 S2 C% l. y+ ~, A( M% t
$ \9 o3 q& B7 t: A(princ " DDMODIFY loaded. ")
$ \( t _ d+ Q2 L(princ)$ o/ z# S" H9 Q
;;;???;;;---------------------------------------------------------------------------------------- N: m# ^! g8 P' ?! t" r
9 h5 E' L! |. y5 y9 D, _8 |. h. M
; Next available MSG number is 8 % N" d) t# v& g% ?/ x0 z6 g$ I
; MODULE_ID DDUCSP_LSP_
g& g4 N: L& d+ M2 w;;;/ q2 {. J* p1 K/ c0 Q
;;; dducsp.lsp/ D6 {5 p$ ]. p! j4 @( G7 X" m
;;;
/ @$ e7 G* V/ B6 r- C5 l;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
- z9 w0 Z" C7 G1 T;;;9 ~1 v# p( t# z, s0 x: d
;;; Permission to use, copy, modify, and distribute this software
0 C2 z% e' v E* I% R* D;;; for any purpose and without fee is hereby granted, provided( n! m4 E1 F' U* @ m
;;; that the above copyright notice appears in all copies and9 F+ F$ x8 j. _" Z; ]! @: i
;;; that both that copyright notice and the limited warranty and
2 y: P/ ^) L5 C;;; restricted rights notice below appear in all supporting: Y" g" K$ \/ s
;;; documentation.8 Z9 {" x( Q; R& k7 ~5 }/ p
;;;
! n" H2 ^. t( D6 B7 Y. h# ^' R, z;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.0 M$ u, y# M- h/ q% n R
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
+ A! L$ z& z; C2 @# s: _0 s;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.$ i6 X7 V9 R8 K; S
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
8 O4 O% |: _& k, |+ [4 a. U;;; UNINTERRUPTED OR ERROR FREE.
e6 g0 x8 ]7 e;;;7 r5 |' ^+ @) A9 n. K
;;; Use, duplication, or disclosure by the U.S. Government is subject to d: t: y) U6 f* W) G0 V, `; A
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer9 F' z( w8 t9 `( \+ d
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 4 V0 k: o. I* x5 C/ v
;;; (Rights in Technical Data and Computer Software), as applicable.
6 F( t# T1 N5 u, r;;;& y8 R2 D4 K0 f3 D! ~, ~6 z
;;;.3 d" N% \) [) d9 D1 ~
;;; C:DDUCSP - User Coordinate System presets dialogue.
& ?0 D- z- r b. j9 C4 |* ~;;;
$ ^! B/ x! s' s" l" F7 D;;; Uses DDUCSP.DCL for the dialogue definition. The
9 i( p- A* B; r* ?% Z;;; slide images are in ACAD.SLB.
3 @+ C4 _9 F* \. T;;;' K4 g+ X% @* }$ M& E5 Q1 W
;;; ===========================================================================( I6 r( K" S* s2 H- Z0 @+ E
;;; ===================== load-time error checking ============================
& B' b7 M% z g) x- [& _;;; ~/ c- ]- G- b, ]# O( U+ k7 ~
' ?: A$ V( ]6 {. d3 y6 b* E o (defun ai_abort (app msg)
$ B6 H* x2 ]$ l, P8 g# T( d# _ (defun *error* (s)3 ^' K5 h* u* h* Z
(if old_error (setq *error* old_error))* n0 o5 {* t; H% w
(princ)
, ~+ N7 O* c0 x1 R. _8 o ). w& n" \- r: ^" V# B
(if msg+ u5 H) A) l4 h. c( W
(alert (strcat " Application error: "
x; D1 T3 z! G i app
( `/ y- a5 @# X" X) U- y " \n\n "- z, V' U2 t+ W1 G, r
msg) T; G$ K. l5 w
" \n"! a: d K" C( K9 {5 J4 l
)
9 {- T2 B2 D/ w6 \ )% Y" d, t% w/ e. c4 ?; G
)
7 c l+ \# k6 V9 m (exit)
* U7 h3 Q* j |# U' M )
* G2 H c: i9 R( D+ l) _4 q$ R) Y+ t5 ?
;;; Check to see if AI_UTILS is loaded, If not, try to find it,
( |0 v$ `7 Z- u* u;;; and then try to load it.
4 a3 E' j' }8 i( q9 C;;;
+ N" s' o& D* f" c: o;;; If it can't be found or it can't be loaded, then abort the
0 r, B$ `8 X0 i- c5 B, T; V;;; loading of this file immediately, preserving the (autoload)7 F, O1 M N5 B3 I' m/ ]
;;; stub function.
: g" X4 M3 w4 b7 P$ X/ Y* }9 I$ N/ F0 j3 A* F4 v
(cond
5 z9 q: q! X' b6 c' p0 f ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.4 Q. J2 H% s3 U! V5 x" b+ L
, `8 g+ k6 c' L0 x9 c) q ( (not (findfile "ai_utils.lsp")) ; find it
! M8 a8 D2 u$ C. g+ e, f% U (ai_abort "DDUCSP"
' v: N+ d6 D( H; k% P7 b (strcat "Can't locate file AI_UTILS.LSP."
. v. Z- G" j0 P: B* z: f: k+ a q "\n Check support directory.")))
0 ?$ ?7 C# ^4 N& R$ {5 X* V( K0 P( O `" J; k9 c
( (eq "failed" (load "ai_utils" "failed")) ; load it7 q( I& @3 U, l. U4 g5 h( m' }
(ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))' J: {( g# }3 `2 R
)
0 Y5 q) j( {0 v# @1 A& u* p' p `- v# w6 K0 v% {+ Y- c
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
# [; Z9 d6 a7 y8 s7 P0 E0 j (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses! W, x! V9 Y+ x8 Q n- ^% @- d! X
) ; ai_abort's alert box dialog.
/ G$ X ?- c2 O" o8 S# e
2 h e! x- p4 |. q) a;;; ==================== end load-time operations ===========================- \2 I% A) Q D( T4 i z
+ A+ ~% Q/ |% |1 X(defun ai_ucsp_start ( / program)
9 m2 M% F9 p$ L" k% G& j ;; Get program name
$ P& {+ O" `% K; ?) G' |4 h8 j (if (not (setq program (getvar "program")))/ x3 C5 t. v$ Q6 B3 e" R( O, Y
(setq program "acad")
* N# p/ M1 f4 u* m )
6 m6 n2 ]% l% z0 n" } (foreach v0 '("world" "left" "cview" "top" "front"
$ l, @0 R& `" F. M- w- h "bottom" "back" "right" "prev")
. a4 ^) X J- e- }- W- T8 [ (start_image (strcat "ucsp_" v0))3 v! V" ^6 t5 h/ b7 {+ M1 w$ z/ x
(slide_image7 X$ t3 s8 t& E5 B$ K9 u
0 0
! H, Q. K5 \& y1 c/ y (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)6 E* l: {3 G. a; S$ U0 B
(strcat program "(u-" v0 ")")
& Z8 t% d0 J1 K$ K) W, Q )( g! Z$ M9 y3 B9 e1 N3 ]! T) t
(end_image)$ ]- G7 W* {, H- o$ ^
)
9 `- F+ a6 j7 c a)% ?. F8 O3 g) y
3 I6 j5 J$ g$ o3 w+ b
(defun ai_ucsp_set ()% w& j3 x9 n& S5 C7 _0 y$ V' F
(if ai_ucsp_sv. u5 d4 X/ b; `: C6 `
(command "_.UCS" "_V")
" P! n/ G" s$ e$ e$ N- y (if ai_ucsp_prevs
$ @. U5 ^9 u$ L% s6 Y (command "_.UCS" "_P")
6 [5 O& H5 ?1 _( d2 A/ z3 F3 } (if ai_ucsp_chg, s9 I6 }& b; O$ G
(progn
# q1 w' p1 z9 z$ H. D% c; J (if (/= ai_ucsp_a "*")
: Y- s- @; [6 H, f( o3 J (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))1 Y% ?4 l+ H0 J% \# z( V
)4 l$ Z' a3 l& B
(if (< ai_ucsp_pick 6)
+ o" o4 l0 G2 e7 y1 o4 } (setq ai_ucsp_set0 "@")
; X4 f/ X, V8 _% L' E+ g (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")! t3 e" D/ T9 V7 P7 S: l9 c
)
' {" J% z/ {# F% t( B (cond ((= ai_ucsp_pick 0)
" o1 n8 ^5 Q; t (setq ai_ucsp_set1 "0,-1,0"
1 X# X, {* j% P ai_ucsp_set2 "0,0,1"
& @5 v: j" w0 a7 Y4 Q& c% L y )
8 f. U8 C/ E6 V' J8 R* f )# o; v/ C5 P$ b2 T& {
((= ai_ucsp_pick 2): q/ a5 W: N& Q2 I6 v0 p2 x7 Z
(setq ai_ucsp_set1 "1,0,0"
; M5 c' \; ?2 J: F ai_ucsp_set2 "0,0,1"+ a& Y" Q: W" ^! b: H+ M3 r
)
' ]8 g* F. o( n0 ?# i7 { )4 e, V( k( ?9 |. I6 G4 b
((= ai_ucsp_pick 3)' o, L8 P- J* V
(setq ai_ucsp_set1 "1,0,0"% J! T( t0 H/ U# A C7 j
ai_ucsp_set2 "0,-1,0"
+ p1 Q3 P* W4 J )+ M) r3 w3 i* Y; W A7 Z9 X# N6 P
)
" e6 ]; l( ^- G5 L4 a9 X ((= ai_ucsp_pick 4)
! a4 e" G D2 \- C4 m (setq ai_ucsp_set1 "-1,0,0"& x) K p3 o8 C ]
ai_ucsp_set2 "0,0,1"
C! B# _! s d1 ]7 U- R4 z) J+ D4 F )/ b6 H, d/ X- z: Y) _
). j9 x: o2 S _
((= ai_ucsp_pick 5)% z- { g* t* X4 m% x
(setq ai_ucsp_set1 "0,1,0"
9 m7 w$ ^6 `" [- O8 T& ~. w0 s ai_ucsp_set2 "0,0,1"
6 z' h7 c9 K/ p' v )
6 V5 y, g4 n. f )
' C4 w, q5 r3 e$ S) _0 m (T! U6 n- o: F6 g: l) Q
(setq ai_ucsp_set1 "1,0,0"
2 v2 g/ ]2 \, W: y! h( P0 W ai_ucsp_set2 "0,1,0"
! m0 u7 d# `+ B# L: t. F )
5 P" r2 u4 S! Q, P )
; @, f2 j4 |$ v5 `; [! k )2 u+ B; k% L8 H+ Z" n. \+ `
(command "_.UCS" "_3P" ai_ucsp_set0 2 N. q. v- u c4 {$ `
(strcat ai_ucsp_a ai_ucsp_set1)
d# T1 \8 i2 m8 b' S (strcat ai_ucsp_a ai_ucsp_set2)
{! q2 V/ s# i. N+ O0 `; Q4 m; i( n! E )
! \" N; K9 M* F3 c1 p3 z )
% ~) s3 y: A8 c1 p3 r )
4 X' e7 d: z D5 B$ _* ]- K1 F )
0 p5 y: r% _( x )
8 F& c' X* u+ g* D, m)7 u1 n$ i: s5 s
7 u7 H) e0 b( n% I(defun ai_ucsp_p (val currtile)
* F" K$ B5 K1 c/ u7 O6 R (mode_tile ai_ucsp_currtile 4)) k- ^% A& [4 v6 Q
(setq ai_ucsp_pick val
+ K/ o, N6 K/ C8 e ai_ucsp_sv nil/ ~& G) G" N, b* I, H
ai_ucsp_currtile currtile
6 v% j' W% _8 P5 `! f6 i, p2 U% e )
& K6 [. s$ V/ V$ c; }' x7 R (if (/= val 1)
' b7 v' @& N, p9 V, l (setq ai_ucsp_chg T)% }8 ^. [' r$ o; E
)5 @# y5 _, A0 b6 E, ?1 k0 G
(mode_tile ai_ucsp_currtile 4)
7 y- f H( S5 J8 R$ x), O% {, h5 r- c6 S/ y
" e& S" v* k! r0 R9 n, q. Z, M
(defun ai_ucsp_swcs ()3 u1 E1 t" d/ g% A+ U7 C
(mode_tile ai_ucsp_currtile 4)
1 X1 m2 e8 O% d. K1 c8 | (set_tile "ucsp_a_wcs" "1")3 E, e. Z4 p! s
(setq ai_ucsp_pick 6 Q; H' G! ]/ S5 u. { W( g
ai_ucsp_sv nil
N8 E# h/ f$ A4 }6 L ai_ucsp_currtile "ucsp_world"
6 o/ j# f& z5 K4 r5 d )
4 e7 w8 W: g% L+ w3 O" o- J0 x (if (/= 1 (getvar "WORLDUCS"))
* j3 C l& E8 A( \3 \6 y; Y (setq ai_ucsp_chg T)
4 n: b$ k0 N, K3 I7 j8 d3 i (setq ai_ucsp_chg nil)
2 v: ?+ Z4 K) g4 c- ^+ G )
/ U n' G. q8 W (mode_tile ai_ucsp_currtile 4)* U- C& P% C! _6 [" E0 m
)+ N; d9 |- _' n4 `' w
, _' ?$ {% K3 r7 q6 h9 Q& H
(defun ai_ucsp_cview ()% ? g( M0 k- a; ]) D
(mode_tile ai_ucsp_currtile 4)
( a1 _( x+ Y3 W* n2 m (setq ai_ucsp_sv T $ o/ _3 c+ L0 E
ai_ucsp_chg nil
W, V1 b" F7 H D5 m/ c ai_ucsp_currtile "ucsp_cview"/ B( ]( u" v: ^
)
* g- [6 I, A6 o' ? (set_tile "ucsp_a_wcs" "1")
6 e- k- ^6 B8 E, k: S (mode_tile ai_ucsp_currtile 4)
9 {( t0 W, G& }; h5 U& A). E0 t! o# W1 k
4 @6 v6 o8 V1 Z(defun ai_ucsp_rucs (typ)! O9 I: Z( u6 b" A; K
(setq ai_ucsp_a typ)
! c, p6 R! j5 v1 [- r (mode_tile ai_ucsp_currtile 2)! B. h8 X% w2 D( y. C
)
. q+ F$ m+ h' R- J% _, w' ^6 @& g2 _* i$ Y& m6 K9 b: A
(defun ai_ucsp_prev () Y! J9 y, H5 v' ^
(mode_tile ai_ucsp_currtile 4). w$ t9 i% T1 D' ]# K. V
(setq ai_ucsp_prevs T
" } Z/ h; O) Y- `' A3 [6 Z2 | ai_ucsp_currtile "ucsp_prev"
3 j/ H* F& z0 T: o" `9 M0 n )
; J5 Y0 g" \* l0 z5 E (mode_tile ai_ucsp_currtile 4)! y* g% z4 ?; f1 C( x3 Q! W
)
# l4 p/ Z0 c- t5 m" H- j+ i
8 ~1 z* \8 S+ C- G% m, s8 P$ ](defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)1 |. U7 |3 V, V1 J/ Q
(if (not (new_dialog "dducsp" dcl_id))/ ^) Z( |$ w1 Q4 G. \ x
(exit)* z0 X' q6 b7 ^* ?" }: ^' X5 ^
)$ _! y* t; b( d% p
: v. v; k2 s/ B (ai_ucsp_start)
$ P' z. C6 m" L! M" s (setq ai_ucsp_a "@"
* M! e$ q" u6 v! I# N# v* c. f5 w ai_ucsp_pick 2+ y5 X. Z) l, G( H+ q, [3 l) |
ai_ucsp_currtile "ucsp_top"
, O- U& K( [, B" m; y7 }; o3 k, O )
6 v) w# b, {: M$ X0 S2 m1 w (if (= 1 (getvar "WORLDUCS"))
" l. @. N- _6 q3 b; v7 D (progn
* v) l- c2 c* G8 I! W/ t L (set_tile "ucsp_a_wcs" "1")
' h% w4 X& I' k (setq ai_ucsp_currtile "ucsp_world")9 P( J0 X! g' ]2 O* R e
) _- d8 |2 B5 K* ^! t9 L# Q% x [
(set_tile "ucsp_r_ucs" "1")
3 ^; P1 q+ ]* o8 N& J9 B4 B ). x6 q2 x9 I( q1 w* U, r
(mode_tile ai_ucsp_currtile 2)
% z! Q3 P# _6 }% H% A (mode_tile ai_ucsp_currtile 4)
( T, O2 f& y+ }* w6 d2 b- O (action_tile "ucsp_world" "(ai_ucsp_swcs)"): d" v# n" W2 i4 }5 v
(action_tile "ucsp_cview" "(ai_ucsp_cview)")
( B7 T) ~8 O3 {. y1 P* l" c; Z7 D (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
' d. Y# d0 t+ Z' k (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")5 F' P# a7 s% o" d6 c7 T
(action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
i* H# S) ~2 O7 v# M5 @ (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
1 W+ {3 {& B4 P; y (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
2 {! _! n/ I9 x' s/ M1 {2 S (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
. [) g$ M! e6 e (action_tile "ucsp_prev" "(ai_ucsp_prev)")
6 ^% L4 s1 ?! U& c3 ^4 x (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
2 E! z/ A8 m* C/ a m2 k, t9 v (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")) v# l# @# {5 ~$ D' F
(action_tile "accept" "(done_dialog 1)")- T0 G8 _$ @' Q
(action_tile "cancel" "(done_dialog 0)")
/ [6 w0 S1 R. z& [5 X! E! \ (action_tile "help" "(help \"\" \"DDUCSP\")")
$ x. r6 o, t, r- Q (if (= (start_dialog) 1)
: R/ ?( p$ s# V (ai_ucsp_set)
/ F7 v$ b( r8 Y/ N )" B T [+ b& p; u$ x) y! j3 O
). l$ V% h9 `4 W/ B7 m, Z8 B9 U
+ c' U# O; }6 [2 w' F: d9 m& y
(defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs 7 s" ]9 R; x7 L* {- C
ai_ucsp_sw undo_init)
$ r) Y/ ~; c& f' J7 O5 U
! J; \, ^+ Z7 q* w% M$ M+ C( C7 y \ ;; Set up error function.( y* @3 ?. U8 P0 Z$ s: C
(setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
* `2 `4 S0 r3 l' ^' Q# t I old_error *error* ; save current error function
F1 Z; Q$ m2 M! t+ X3 }5 A+ t *error* ai_error ; new error function
/ o C8 ^" A) c0 Z old_osmode (getvar "OSMODE") ; disable OSNAP for duration! Z5 Y' A+ ]5 e/ l/ w4 u3 R# I
)5 m3 {6 B# f7 @% q
) J: x- U2 V6 l# L; d) J# P
(setvar "CMDECHO" 0)
; B7 R' x( T3 O# i1 [+ \0 I
+ n2 s( z0 j! H" m8 J- j (cond3 z4 m- e; Y& v% E7 b. J
( (not (ai_notrans))) ; transparent not OK1 L0 s0 U8 F( m2 v
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
( ~6 R! a7 [" S' y4 Q0 [. s+ i- R ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
+ e) z) O& P" J: S: E- p+ ]! m1 F, _1 L (T (ai_undo_push)" B; V+ I/ {- Q6 J5 ~
(setvar "OSMODE" 0)
. }7 l* a9 M( E; D8 Z- ] (ai_ucsp_main)
$ u! A8 R% `! _( H (setvar "OSMODE" old_osmode)
! ^) h* ^+ g* S (ai_undo_pop)
& m$ C! t5 @6 P8 y )
8 w1 L! |8 @* C+ ] )
( ^5 K7 c- U" E1 d
9 S& }( U- h" v (setq *error* old_error)
# C) \) X# Q3 w; x8 A/ B- W% c (setvar "cmdecho" old_cmd)
$ }: q, G7 b5 g6 X9 s
4 V+ i# t9 @) E* u (princ)+ K) E+ G2 b- v, L0 w8 ?
)
- w. z' y; {) o) F
2 U8 A, Z, U2 O# n1 |+ T- Q( F(princ " DDUCSP loaded. ")# E+ v+ `+ P4 J# S1 I
(princ)# P8 k8 M$ a" H
$ J/ V( P7 q+ W! `8 `
;;;???;;;---------------------------------------------------------------------------------------
/ O! `* o5 T+ N, w$ Q& m5 _ {6 q2 W# f( [
;;;----------------------------------------------------------------------------4 u2 j! B. V' v( G
;;;3 ^- w Z/ B4 T: r
;;; EXCHPROP.LSP 4 E. L/ C* i4 `
;;; Polyline and text modification capabilities added by 7 d) H" d' E. H6 J1 `* Q
;;; Randy Kintzley 5 P# d$ D! X! C' y% E" t
;;;
. n8 D8 E6 y* D& J# T) ^;;; Copyright (C) 1997 by Autodesk, Inc." ]; x. z9 R5 G3 ?" Q) k" R
;;;# f% t& \( d6 ~6 H1 f( \6 L1 A
;;; Permission to use, copy, modify, and distribute this software* ?4 f& c: | i. I3 D1 J. a
;;; for any purpose and without fee is hereby granted, provided
& k/ J3 w- L( L;;; that the above copyright notice appears in all copies and
" h/ Q- U9 l, X;;; that both that copyright notice and the limited warranty and
, l% |; [+ [2 ~3 k; ^1 O6 d+ K8 v;;; restricted rights notice below appear in all supporting
0 w& ~$ m' ]- M3 d$ ];;; documentation.3 s: h F& d# [: Y2 X3 r
;;;* N+ h. A* r0 _7 R- h, E1 r% l
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
7 Y5 `6 a" l4 T/ B7 k2 t4 y3 K;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
( O: U4 t- E6 j Z: l8 H;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
* P: C0 l2 n' K4 h& E, @) n0 d;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE; D0 L8 t" I. n$ S7 y5 @
;;; UNINTERRUPTED OR ERROR FREE.
O7 G5 C2 {: G. b* ]& C;;;( N' n5 E# \* n8 S
;;; Use, duplication, or disclosure by the U.S. Government is subject to
5 U `7 @* v- W. @;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
# p6 Z% e& D* l8 {6 v! A, J;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
4 P$ x4 `! M5 N) X* c8 n- m E;;; (Rights in Technical Data and Computer Software), as applicable.+ I, T2 }& U2 o k( s! A2 E. [! w- L
;;;
1 ~5 i, J7 n& j5 v0 s9 X;;;.
. E" @/ n" e% F5 v;;; 28 February 1997# t+ G9 E) Y. R* x0 V
;;;$ B, y" L3 ?! g$ a2 q* B8 F# M
;;;8 @4 D1 x5 F/ O# b/ W; T* e" J# ]
;;;---------------------------------------------------------------------------- i( _' f& s c. _3 s: @
;;; DESCRIPTION
; @- Z1 w( d7 h3 c e;;;----------------------------------------------------------------------------8 I) w( N: p( k9 `5 G# e, l
;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This ) p5 f2 e" J) j% ^! P: a
;;; command gives the user the abilitie to change several characteristics " x4 R( r5 S+ d7 G7 u
;;; of selected polyline and text objects.
# z9 O4 T7 z* f- d" j;;; The style and height of selectected text objects can be modified # w% K8 |7 x8 g) W: ]- }" n: Z
;;; (including text, mtext and attribute definitions) as well as, width and 4 ^, E! V! ~8 M$ i- I
;;; elevation characteristics of selected polylines (includes lightweight and 4 o0 V# G6 C4 p8 l
;;; traditional polylines.)
: j2 l+ f. {* K# w2 e' k3 o;;;----------------------------------------------------------------------------
8 L7 l# q7 F" ^. Q% r;;;----------------------------------------------------------------------------
& o, R- C4 J3 w- |: E6 ^6 s;;; Prefixes in command and keyword strings:* R' I0 V* d, V7 U l
;;; "." specifies the built-in AutoCAD command in case it has been
1 J3 \& q2 A7 | [ m# y;;; redefined.
( Q6 b1 Y* r; x6 _% N% o# c;;; "_" denotes an AutoCAD command or keyword in the native language
+ l8 j/ K! x4 b3 ?4 O2 t; Z8 ?;;; version, English.
( ]' k( l3 p, P# x5 @1 k/ r;;;----------------------------------------------------------------------------5 A( h# v2 Q2 h% S
;;;: L) R2 j1 C. p' ^. |) z) ~3 O
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
. L } I4 ?5 A. S6 v: \. s;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5 R1 Y- L. U5 V* X( K. D
;Functions created as result of loading file: exchprop.lsp
% ^* O1 M) x( X& O8 B, X; DDCHPROP27 s# y3 R8 H" o" F" w& d$ _: Y
; DDCHPROP2_INIT" O( u0 G7 L& P' K! U
; DDCHPROP2_SELECT
) @) ^, h( w; y;
2 w: ^: a |9 F0 G" Y# k2 a;Variables created as result of loading file: exchprop.lsp' Y& l3 X& ]# M( H: M; Q* M6 a
; OLD_ALLOC$ H( [1 L4 O- Y9 B4 N( N! T
;) F7 P# ?2 Y) d+ ^; n
;Functions created as a result of executing the commands in: exchprop.lsp" E6 A6 T' S4 w. n' h
;
- Q2 p, ?" ?6 ~4 [;Variables created as a result of executing the commands in: exchprop.lsp, J0 B3 h- M c
; AI_SELTYPE
. Q1 b' B+ U B' Q/ x7 j4 M3 {" x; BONUS_ALIVE
/ |% Y. |4 F9 l- L3 q5 u; BONUS_OLD_ERROR
`1 ]9 m7 n/ i;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1 S+ Y( q) {/ L6 m- h( y8 @
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$ j- v+ F* ~* i7 H, }# u, q# R
7 A% w9 ?& {$ v; b0 n" Y" G7 x# i;;;4 f; U0 ?, J: i! ^1 @6 n4 {
;;; Avoid (gc)s on load to improve load time.
8 m9 H5 S9 V$ F9 j/ n& k2 c" D;;;) z& _) }' b' w" x+ p
(defun do_alloc (/ old_allod new_alloc)! C3 H4 _. P9 A: l2 T1 _
(setq old_alloc (alloc 2000) new_alloc (alloc 2000))
p, O) A7 ?9 j* D2 ~ (expand (1+ (/ 4750 new_alloc)))# z" I7 F' R* S+ E1 v4 I7 T! G
(alloc old_alloc)
# R% T% a/ N# l$ M# `. b- e);defun# U) q6 W. o' y. _4 P0 w
3 v+ ~5 w- z* t9 c$ m3 `( n
;runs at load time - rk( I' V/ Z# G# a: [, Y
(do_alloc). Q2 g& D" u# F' i* y" _; K; D; O
(setq do_alloc nil)# J+ L; Q' {1 v
;;;
; V" K( ?8 B% }. z, [( w;;; ===========================================================================
2 R; }% _% S3 F4 l7 Y;;; ===================== load-time error checking ============================
9 a4 j! f8 s9 r. E+ [;;;
4 n2 b% O) \7 \% Q' ?4 r: M3 c# l' |$ K2 m3 E
(defun ai_abort (app msg)
$ `1 W" m: w1 G) ?3 ~- H3 m! T" r: T (defun *error* (s)/ `- `7 @# F, q0 x
(if old_error (setq *error* old_error))
$ e4 R1 S; U8 a ~% q- M$ W; t (princ)
. t& N1 l! E5 |, A5 Y );defun: t7 S$ t7 W7 G/ _) ?' F( @
(if msg2 T7 E i' D8 z( @( s
(alert (strcat " Application error: "
- Q( U! ~% W x: `, s, f! H& m app7 k1 V' f, L* y1 t
" \n\n "- T# N1 p Y1 M6 ^- `9 j
msg
* t' k" h1 O0 |. Z; W: ^ " \n"$ u4 F2 U% W J
)% v w) f( x$ e# H# e4 ~! f
);alert
, ~; Y% Y% X" O/ `. G# s6 f6 Y) p );if
. N( ~$ ~2 M B' }/ } ;(*error* msg)) s( V' k; T O4 \+ ^0 x
(exit)5 j1 u* \+ {1 h0 Q( C
);defun ai_abort5 F7 w) s' Y" L5 H+ z: @
/ q8 b) S) ^. S5 U$ T' H4 H;runs at load time - rk
7 n$ C# g& n4 }8 i0 Y# B;(if (and *error* ;added the if wrapper around this - rk.
6 ] [2 P U* b# j) ]) B* L; (not old_error)
: a5 m; g6 L3 Z+ I1 ?; );and 7 W$ ^- L( J+ M# y4 P# y% ?; S$ b" I' q
; (setq old_error *error*);setq2 U" |. ?* r7 r4 Y9 n3 N; J5 Q
;);if9 \7 m+ Z Q, z
7 Y6 t5 B; d. W; U( X/ }# n; ?) h6 f% C" M- t8 Z
;;; Check to see if AI_UTILS is loaded, If not, try to find it,
6 B3 J# Y) c! y1 _6 \1 s;;; and then try to load it." T+ v x; P, {" X c8 N
;;;
) x5 `* n' {! w;;; If it can't be found or it can't be loaded, then abort the
& F; x( n, h1 M9 n6 S;;; loading of this file immediately, preserving the (autoload)
b, b1 ]$ Y; V1 V;;; stub function.! o3 b" _1 n' X5 R/ W: M) M
1 M0 J2 q7 y; K5 B4 t( x C4 T;runs at load time - rk.! u- K) p2 K% b- C/ e: U: e
(cond0 v7 ?* P U; x& r6 ~( c
( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
7 y% S. }/ F2 k ( (not (findfile "ai_utils.lsp")) ; find it
* B# B ]% Z2 K N1 P' G3 ]5 a (ai_abort "EXCHPROP"
" A" w" v# `! s' |) v2 { (strcat "Can't locate file AI_UTILS.LSP."7 g. T2 ]( N* y5 i' { x/ w
"\n Check support directory."). t. S5 z3 I* F$ f5 n
);ai_abort: i0 i/ f8 y8 d3 I& \
)
' L+ G! B% g8 O- Y ( (eq "failed" (load "ai_utils" "failed")) ; load it
, U% A# E7 I5 m% e7 k! p) `, Y (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
+ {) [- D, J# j6 ^# X- E! x )- b9 \( Q$ W9 z/ z0 e+ _
);cond close- c' D4 Y$ C: o7 u2 V( u# r: A5 n
7 A u7 L- X" v" H( o
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
$ F' A/ |6 ]3 }; F, E: D1 t (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses* }$ ?4 \: ]5 s. L/ {; `
);if ; ai_abort's alert box dialog.
" A1 u5 l1 u; r. n
# t" i& ~- Q: ^" d: ~( g;;; ==================== end load-time operations ===========================
" p& X9 e/ M, \* S' g: j, |8 O: f( o% Y! f
;;; Initialize program subroutines and variables./ b! y5 i6 A5 e4 C8 W. U
. m) c. |0 q3 t9 _(defun ddchprop2_init()$ C: h: x. _) c) @
& m8 u1 S( V6 T8 F0 k2 U
2 b7 n% \* i: `3 d) H- n
5 m' }( |& b. k2 P+ G# i: ]8 u* y
;; T7 R8 L9 n1 Z
;; Define buttons and set values in CHPROP dialogue box
7 I1 e; m& L7 L. _8 i7 |/ ` ;;
6 q6 G. H8 q: Z (defun call_chp2 (/ cmdact p1 p2)
$ {' ^1 p- `7 A9 u9 }
8 ^1 x9 q( ^" i% N: { (if (not (new_dialog "ch_prop" dcl_id)) $ E. u1 r9 O) q
(exit)
- t. K( i: {0 { )
U. S( r/ v" l i9 }& f
- m) \4 |' S1 s! H: O, g; d8 w& e c (set_tile "error" "")$ j/ k* D& q- ?: ~* s9 J: I
;; Set initial dialogue tile values( ]4 o6 ^; |: V
(set_col_tile)
- u$ @8 p- I# J0 p( e (set_tile "t_layer" elayer)
; o* w% a4 _/ U7 q8 o0 P2 l
, q0 k% d, F. n% k3 a( h (cond, _( {2 O, m; y2 n$ v( T. p
((= lt-idx nil)
2 M" C0 z% n: M6 O4 \ (set_tile "t_ltype" "Varies")( J! R4 U2 y+ M8 A' o# X
)
: b, k7 g6 F6 f- R& \ ((= lt-idx 0) ; set tile "By layer & layer linetype"
7 Z b7 m1 \ o) ?1 n7 _7 ^1 J& E (set_tile "t_ltype" (bylayer_lt))* z, n( k3 B$ r6 h8 T- l M
)
# v! n9 K' s9 H, W/ v- C (T
: N/ V- J! v& l* o; x* z (set_tile "t_ltype" (nth lt-idx ltnmlst))2 x) e! O! Q6 O
)
6 q, j. }, d( @. f3 `. |3 ^7 q ), k$ g1 R9 C+ @1 W$ N3 [
! b6 e4 a& s `+ z6 M
(if (or (= ethickness nil)2 f$ I$ A2 r" O. K0 V7 T! J
(= ethickness "")
( X1 V2 E# u6 t2 s3 J (= ethickness "Varies") 0 E5 }7 _. E; e6 g' X
);or
1 R; c- b+ j- W2 a) |! e (set_tile "eb_thickness" "")
2 Q2 ~, v0 B% S# |& @- r (set_tile "eb_thickness" (ai_rtos ethickness))
1 P6 g- t5 |" V9 U: C$ x );if c f! u5 _+ v
(if (or (= eltscale nil)
1 Q, l; F5 h9 w6 C ?/ q (= eltscale "")% a1 x: Q! q6 H5 v3 a% ]/ V
(= eltscale "Varies")# c8 n) {4 Y/ j" \
( D; v) F3 s s6 m% }8 ?
)- C7 `9 U" G, b% Z0 X
(set_tile "eb_ltscale" "")
' z, x \2 x- _ (set_tile "eb_ltscale" (ai_rtos eltscale))9 B. o/ a) q2 R) l& b4 [ @. i
)+ J5 a6 K( e# P1 \4 K4 A
(if
$ y6 f9 `* ~6 D! d, J9 D (numberp ewidth)7 ?7 K% O) x4 o# A! N' S: U! p
(set_tile "poly_wid" (ai_rtos ewidth))
; [5 N9 t( {! Q (set_tile "poly_wid" ewidth)
# t7 s; h) K$ M* f! S3 q& f8 i+ T& B2 J )
4 K5 H& `, f; }5 s$ u0 ?3 Q6 g Q: o (if
% _2 d% l* |4 `( h: i (numberp eelevation)
( ~& ]+ D3 l1 Z' d5 X" a (set_tile "poly_elev" (ai_rtos eelevation))
* M# ?2 T) ~1 d7 r K7 { (set_tile "poly_elev" eelevation)
8 x/ m: L1 v3 Y# D )- j* ]( r% I* r; s1 d
(if2 n) @( U; l' g4 K: e2 _6 R
(numberp eheight)
5 G: {* D2 U( c9 b (set_tile "text_hgt" (ai_rtos eheight))
3 G2 N/ |, j4 |0 { (set_tile "text_hgt" eheight)
! ]* [! @1 N9 z' B: s7 t$ G0 n. V )9 n# T4 L; @* G$ ?; K. U' c1 e P, }
(if (not estyle)8 ]% E$ ^& H7 Y* a; W8 c3 Y
(setq estyle "")5 H& p- P0 J& J# c
);if
; ^% ?& _3 [9 u' B8 S (setq hair_style_list (tnlist '("style" 16)));setq
9 i& c/ h6 i2 C3 g (if (not (member estyle hair_style_list))
( d8 ?8 j0 ]% g! M9 j: z" b# h: T (setq hair_style_list (append hair_style_list (list estyle)));setq1 ~3 m5 F/ v0 y5 \* A1 C/ @
);if ; B; D, o& D1 s3 q' N
" ^4 w4 F# x- C* ^! ~, w" S
(setq hair_style_list (acad_strlsort hair_style_list));setq/ f4 J0 X) @. X: n0 Z1 W$ k" O5 u
(mpoplst "text_style" hair_style_list)% ^+ t) y+ X5 k! W
(set_tile "text_style" . h; [) i3 I1 P! x
(itoa (position estyle hair_style_list))
X* B5 K C5 _& l9 L _ );set_tile ) t/ s9 a2 u2 q; y7 d& e& M
$ N4 V, x; A! e8 A
;; Disable tiles if need be... ;@RK' r3 v' O% `# K% X8 Y% B
(setq a 0)
( W! _& P! I) `* a+ z* Q6 _# b (while ( < a (sslength ss))
0 B2 u/ f5 a d/ q8 R1 t; O% ` (setq which_tiles
# ~4 f" b/ |8 I/ D; b7 S2 Z/ a4 ? (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))) w& T; d& w1 r, h
- @4 v( k2 p4 W h* e; Q1 s; W6 H ;; If all fields are enabled, don't bother checking anymore.0 P# c1 c( b2 h8 {
(if (/= which_tiles (logior 1 2 4 8 16))* E% F N _# R: `3 S; b, R4 @' h
(setq a (1+ a))
5 A0 K" w. I- P( L (setq a (sslength ss)). h& F) e9 A: d& w' s5 l$ r2 ^4 d
)+ Y0 W% [' A5 n8 j* `
)
3 F* W4 w! Y9 y- \+ g& @. j% P ;; Layer Button and Text Field
& @/ j# R Y, r e! w O, K* L- k# t$ u9 p- {4 i O! |
(if (/= 1 (logand 1 which_tiles))" u) k9 v3 A5 T! t' N. F
(progn
! Z3 q' ~$ F0 y2 a0 a7 L (mode_tile "t_layer" 1)
% L5 V+ x; v4 _, } (mode_tile "b_name" 1)
+ C( W+ J/ p: n, W+ M )# F0 Q6 |6 [: R/ O/ ^, k. M
), F6 j4 I5 w& p( S- y4 _# q. H0 t5 n
z V; N9 U* e) o! e: K4 {2 w ;; Color Button and Text Field3 u9 `+ i8 v- V# J8 O
(if (/= 2 (logand 2 which_tiles))
; H* Q, h: x5 y" r& l6 g; R (progn
* b" @! A% x( U9 G4 [8 T (mode_tile "t_color" 1)" u, V* c4 `' J
(mode_tile "b_color" 1)
# T4 f0 _5 p5 g5 n1 Y! r (mode_tile "show_image" 1)
) ~$ ^/ J% @2 f/ G3 p! G* e( A )/ p* {6 Q/ p/ l% c$ J6 g4 m& m
)9 Z! w( O" k& I; L$ r* z$ v( e
;; Linetype Button and Text Field' K. @# `) Y4 ^, H' t
(if (/= 4 (logand 4 which_tiles))8 v8 V" ^; n1 b, u6 x4 O% B+ @2 P
(progn
1 J5 w( s$ ]& [9 H M8 i (mode_tile "t_ltype" 1)
+ m& w% L4 }' u$ l5 T" K1 Z (mode_tile "b_line" 1)
/ O- w2 m1 M# e. b" m$ l )
9 D5 P0 `) \6 a; a, i g )6 p4 }& U8 ?8 P
;; Linetype Scale Edit Field
; H3 X6 H& c$ Q1 h- | (if (/= 8 (logand 8 which_tiles))" [+ ?+ r; J& _ ?
(progn
/ C$ h# }) g2 b# s( I |# o4 I+ ] (mode_tile "eb_ltscale" 1)
; C* R/ D+ Y( g0 f. Z- W )
/ c" w0 ]7 |4 U0 Q7 ?! {* S7 V )
3 M3 H; G! q v2 K/ u4 x, T ;; Thickness Edit Field.
+ U* M1 h% N/ ]$ r. ?7 T: i (if (/= 16 (logand 16 which_tiles)); D/ W9 d$ p+ t( J- f& J; g! K
(progn
3 d8 \0 b5 c9 p (mode_tile "eb_thickness" 1)5 e1 V5 C5 X% G) x- p1 [
)
& n8 p9 p! D( u; z7 w* {( U )
, a; P; I; d/ | a# u
, f$ `: P% ], K- c" p& g ;; Polyline box and tiles @rk 10:05 AM 1/30/97! [: u3 d2 \9 F: L$ n
(if (not (= 2 (logand 2 eflag)))
: C1 k. R" s& C4 C5 U, d (progn/ j7 Z6 [3 B+ O! u# c
(mode_tile "text_hgt" 1)0 M/ ?( |, h! t) L" s$ p1 `
(mode_tile "text_style" 1)/ s/ ^4 t1 a" J4 ~' W
);progn
3 N6 g& P s1 n$ u! e. d );if
6 q( O3 s/ K3 {( q* E (if (not (= 1 (logand 1 eflag)))% j) f; _5 V- L% ~% }- w' F( |" {
(progn
4 Q) H0 ?5 U' z- T8 x# S (mode_tile "poly_wid" 1)1 l/ d$ D. @! R$ L' v
(mode_tile "poly_elev" 1)
6 z- b0 L) H: W( I! d% z! p! Y* m; t3 H );progn then disable polyline fields& m/ q7 W Y& o
);if. I2 E# d6 b! T/ o# {
2 P$ C* D0 \! z9 g
;; Define action for tiles
, v2 \* K- V- r8 [& T- B (action_tile "b_color" "(setq ecolor (getcolor))")
& ~! ]# C- _) S' I! K5 a (action_tile "show_image" "(setq ecolor (getcolor))")
`1 r& X& w" g; m2 O" Y (action_tile "b_name" "(setq elayer (getlayer))")
, D1 N, m" p7 g$ J (action_tile "b_line" "(setq eltype (getltype))")9 v+ [% K& B4 T( y: ~
(action_tile "eb_ltscale" "(getscale $value)")0 X1 D& _+ @& K# w
(action_tile "eb_thickness" "(getthickness $value)")
6 u' x! _, |) P6 l (action_tile "poly_wid" "(getwidth $value)")
% f1 D/ Q( J$ A8 v7 |4 G4 b& j% f (action_tile "poly_elev" "(getelevation $value)")
0 x0 M' g \" @9 h! s7 R% H (action_tile "text_hgt" "(getheight $value)")
# y0 j/ R7 @* w: a. Z+ M( B+ t (action_tile "text_style" "(getstyle $value hair_style_list)")
( t, ^& T" Q" B- z' F7 J (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")"): ^: _$ p" i# d9 o% C4 ]
(action_tile "accept" "(test-main-ok)")
) O& c1 m+ y* C- f b' s- T$ b; B; v b$ H* M6 i% f) X0 U
(if (= (start_dialog) 1)
6 P* e( U6 g4 b. z( m. R (progn
2 r, s& j3 c1 G7 M/ l! `4 p ; Update special properties for polyline and text selection-sets.
% o j. e: r+ N" t3 i7 d
( m4 k" O& R9 |9 B (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop* y2 M6 c. @4 K
(or ewidth t; G! j$ i: Z# H( V! T
eelevation3 V1 ]& }6 X8 C6 ?+ L( d0 _
);or
& z5 C9 w2 m, _& G* c6 {% R- A );and# F3 P6 x' t; N% h7 ^% Q; c; a; I
(progn
( z# E! x! Y+ ?2 ^. ? (setq ss-index 0 ; X: A, P4 @1 y, j6 ~
ss-length (sslength poly_ss)
6 G9 E$ p/ }) \3 f1 S. v5 ]0 B );setq6 |! R6 [$ E6 `0 j/ e) D( K
(while (< ss-index ss-length)
7 h& K8 i: s, E Z (setq ename (ssname poly_ss ss-index)7 j+ o* i; P9 r+ h
elist (entget ename)
( W/ }! L( I: u+ q );setq
5 h5 p: f& A3 ?, H# g (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp+ W) R( z6 ~ B& r7 c# b
(if ewidth . H5 ^+ X6 J$ ?7 w$ V
(command "_.pedit" ename "_W" ewidth "_x")( k7 @0 k: |( f9 Z
);if , e, e! y1 F# v. s2 s* w5 {& D
(if eelevation " O9 Y7 u, K d5 i1 ] p0 [
(progn! f( M+ f. v+ K* R
(setq p2 (list 0.0 0.0 eelevation));setq
. u( j8 i' o. w, a6 [ (if (equal (cdr (assoc 0 elist)) "POLYLINE")/ A# O9 E) w# L& d: U
(setq p1 (list 0.0 0.07 F9 `9 h4 Z" Q/ t7 B& R/ p
(caddr (cdr (assoc 10 elist)))
. R) H, I$ ?; ` );list
9 @6 q* F3 f. Q- l* V7 M );setq
0 H& c" q h0 b# R (progn
( c, F( F' O8 q; C6 P; z: E (if (assoc 38 elist)
8 B Z5 m( T4 E7 o; H* G (setq p1 (list 0.0 0.0
: F7 d+ D# i) b+ b# g (cdr (assoc 38 elist))) E9 a$ X G. r
);list* F0 L; A L: p+ w
);setq
0 x5 S$ d% u! |' R- { (setq p1 '(0.0 0.0 0.0))
% h# S4 ^0 x0 D* j8 k) G- p- z );if& o& _1 V+ X3 ]
);progn
( b0 {: _ E3 V6 I* m1 I );if- q6 G# D8 M8 `" N. J/ j, [; M
(command "_.move" ename "" p1 p2)/ }' Z$ j: P% Y$ w/ x
);progn then change the elevation of the polyline
$ F$ E' y: ~) f" B$ R );if
9 x% G6 l4 z# ~. N, g* P( v (command "_.ucs" "_p")1 ^8 Y2 e! {7 a, i
(setq ss-index (1+ ss-index))! F& ^1 @1 l2 A( q- {0 ?
);while
4 w+ n0 {6 y2 M/ Y# }; { );progn then polylines are in the selset
+ c% e) K J( X" t+ e, U7 O );if+ M, C- Y% ~; A- d1 j5 j* T
(if (and (= 2 (logand 2 eflag)) ; text* S3 c: F7 b3 y4 Q+ f
(or eheight
% i C% V0 r4 j: m estyle) j$ Z4 {3 m* F8 r- t
);or
, Q/ J. U, p3 y" h );and: h2 p* \( Q8 {5 K
(progn$ y% t0 v/ ~) o, t! H
(setq ss-index 0 ss-length (sslength txt_ss))
* O& Q E/ b2 m3 Q, h$ k (while
! L! Y* b$ J( z e (< ss-index ss-length)0 ]+ ~( b8 c: o
(setq elist (entget (setq ename (ssname txt_ss ss-index)))). g$ R7 a4 U$ D( x4 q; S$ m) K
(if (numberp eheight)9 E% U- X4 J4 x! n9 O
(setq elist (subst (cons 40 eheight)
! H: U1 k8 S9 ], ] (assoc 40 elist)! H3 f8 R1 A9 I
elist
/ _" |* w9 n! J+ U4 w* a( r2 I );subst2 l( N+ R3 d: r( I9 q
);setq
3 V y9 ?0 H0 W! ]5 x );if
* g- R1 k/ k' v, {) ?2 ~: s (if (and estyle ;(not (equal estyle ""))
" ~$ ^. i R0 d4 z# s3 w( _3 E (not (equal estyle (cdr (assoc 7 elist))))
) d6 m( n% L) `. {3 H+ l K );and; t6 B8 c( Y7 K3 k* G0 u
(progn . Z- x2 c; N! }# g$ P& |
;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt ( p, S$ B' z2 ~; s1 o1 I P2 K
;(if (equal "MTEXT" (cdr (assoc 0 elist)))
# L; w" Z' D- F: X' J ; (setq elist (fix_mtext_fonts estyle
! X, d: V6 Z( h4 {) o' M) b' Q1 k ; elist
/ j( v3 [: k w# e0 | ; )! q. R- W9 V4 x2 z; x3 ^- j
; );setq then) L. @9 @6 [: f, }( q
(setq elist (subst (cons 7 estyle). I E/ \( n3 r( f
(assoc 7 elist)
$ v+ U! |: o3 ~3 {# M" e elist
: d0 B5 R# I3 I1 r% K );subst- |2 ]( ` k9 J& h7 h0 U% J! e
);setq else( T+ s# `) ^& Q8 w0 F& y; a
;);if / |$ H( a( ~8 r" L
);progn
( M( a2 R; O( R );if
7 N. V' S8 X, }$ Q/ a3 N8 @ (entmod elist)
! y2 s- V7 O$ q* Y# T( p+ G (setq ss-index (1+ ss-index))3 e L8 o0 p) d6 n/ S
);while
, M- d% w2 A d. X% M% B$ x );progn then0 z, q; A# a. [3 ]) U/ |
);if
4 w5 N( v4 x& M9 s w9 p( }! N! i9 i
(setq cmdact (getvar "cmdactive"))
2 E2 k+ K' f) ^9 G e( \% w (command "_.chprop" ss "")
/ ]0 P) {8 i/ ]% N4 L$ r2 Q (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
, A* b3 S; \0 I$ h/ @! V (progn
; |4 }3 b' N1 J+ b6 W5 w4 l# E (if ecolor
, G' `( r; f* ^# \ (progn& M. J6 a1 K+ F) f+ v
(if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))% c4 G5 M8 O" i* H4 ~7 T
(if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
* o' g- T/ w9 s+ Q. d+ f5 v* E (command "_c" ecolor)
3 C8 a* d& ?4 m( f9 M/ J );progn then& l# I* B$ h/ ~1 P" q1 W; M8 k
)1 {2 ^# h' O# F' Q' |; c
(if (and lt-idx. w, i/ v* q2 s/ C9 ]' J
(/= eltype ;|MSG0|;"Varies")
* r3 S5 Q6 U$ R+ p5 Y* q3 Z )" M$ \* d9 _! {) W V+ G
(command "_lt" eltype)
- L6 y' J9 \' S% c% G )
5 B* _5 {2 E5 ^) p; R f v (if (and lay-idx
) V, R* j; R; o _3 _6 X (/= elayer ;|MSG0|;"Varies"). h/ {) \# a* z2 T
)9 _; o0 y, ]. ?+ f
(command "_la" elayer)
% g/ G- W4 y" u( m8 t! _ ). @" \3 r# s! }7 ~& s
(if (and ethickness : F; `; T* G v7 {/ C4 n
(/= ethickness "")
# \: R; M& F1 `# M (/= ethickness "Varies") & J s0 A2 d- Y {$ o$ C9 A$ ? e
)2 ]# O# m {# ]3 F% y5 |
(command "_t" ethickness)
2 b, T7 l, z# {; z) u7 Z )
9 x {+ a( m1 }# k7 d: r' h' e( R6 f (if (and eltscale (/= eltscale ""))
6 Y7 c! o8 j! v3 G6 H# Y( `9 \1 ] (command "_lts" eltscale)
4 j# I8 ^! h# m4 R5 N- j, e );if E, f i/ u H0 J
(command "")
7 K3 f) F0 N0 \) J )+ H2 T( I5 {4 \& I( o, Y
(princ "\nProperties unchanged") ; CHPROP didn't like our SS set
. }2 h6 p9 u2 F! |2 P& ^+ E3 ` r )
+ X* P( E& W8 q1 H V& B p% J w6 y l. X6 \& p
);progn then OK was picked in the dialog.- d% n' |6 y) ]$ U/ M, i
- o9 g0 M4 M1 Q! `* u# C ;; Fred GERBER - 25-AUG-94
0 j$ K- m) p, Z, h+ i4 k8 ` h5 E% _ ;; Don't print the "Properties unchanged" message when the user cancels
/ s: Y) a) Q8 i8 e3 \1 ]4 { ;; the dialog because he knows that already (otherwise he would have& j" Q* B# A1 D. Y0 \3 b% M' O
;; hit the "OK" button). Display the message only if CHPROP fails for' I9 @0 l' T8 B9 R
;; some reason, because it is not the expected behavior of the command.
9 ~( y% l5 b& s ;;$ H# j5 I3 H1 r* Y
;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")$ K5 |% B1 l% j
);if. O K3 F$ K# m- N$ v/ S3 _
(princ)+ N) D+ M. N) l+ q) N
);defun call_chp2
! |/ A8 G- c& ?1 X ;;- }* L ^8 T& F8 F; z# d- D- E
;; Function to set the Color text tile and swab to the current color value.! X3 U7 |+ y) t l. v3 X
;;* A9 |- |3 ~. [7 @6 f
(defun set_col_tile()
- t! e) v3 U D Q9 [7 ~$ G3 ? (cond
1 P! W8 x" Z: F. L) k ((= ecolor nil)
# r; p3 X! z* @7 u (set_tile "t_color" "Varies")3 H$ b( P! P5 E j& D
(col_tile "show_image" 0 nil), ~" S j$ @3 m9 Q' i
)
9 O/ ]2 Z) s+ h2 ^+ L( B ((= ecolor 0)
5 K6 _, v x5 R0 P! P9 k/ L (set_tile "t_color" "BYBLOCK")" c- B( b+ ]. J ?4 n
(col_tile "show_image" 7 nil) ; show BYBLOCK as white
' n- R, d: N2 U )
5 c l+ k; p% R: v: W4 N k! k# D1 p ((= ecolor 1)
( h, P! G) @0 F, I (set_tile "t_color" "1 red")
" K. Y2 P7 E' Q- T* x9 f0 }$ O* Z8 m" b (col_tile "show_image" 1 nil)3 `8 B# M0 g8 Z: h6 C
). b8 ]# o" i* e7 l' d- t
((= ecolor 2)8 Z; A. U5 S6 R0 g) I& Q
(set_tile "t_color" "2 yellow")
. t5 ^6 \! ^3 \8 j) X' D7 D (col_tile "show_image" 2 nil)
/ L/ g* o2 I. Q0 f- b )' p! U& J+ U) [
((= ecolor 3)* a" A( t8 ]& B2 P2 F5 i/ D0 M6 |
(set_tile "t_color" "3 green")' h0 Y9 S, f. z* L: g: n! R+ {
(col_tile "show_image" 3 nil)# w0 V) c8 t% ?- O8 l7 y5 p" L
)0 h8 l: `; t- u0 G
((= ecolor 4)
, n: x v. r- u6 }/ r/ K (set_tile "t_color" "4 cyan")( m3 L- q9 a! {" d {- x( s
(col_tile "show_image" 4 nil)
9 Z* `1 `" [% U# [ N& a )8 \4 L! h( @' i+ k( V; H4 A) R
((= ecolor 5). A, k2 C9 h3 j' O' q
(set_tile "t_color" "5 blue")
6 h: D8 g' G, _" m( Q) a (col_tile "show_image" 5 nil)
4 I7 B6 l: F) e )2 ^* T% B7 Q: h9 [! g1 g' V2 z' v
((= ecolor 6)9 O& e: K' u+ U( n$ e* J' m
(set_tile "t_color" "6 magenta")
+ T& ~. q, P1 @0 ?0 q: o* {* ^ (col_tile "show_image" 6 nil)& c/ I1 E4 C* v/ T, H5 F; y
)- e' x! ^9 m) o7 y8 r6 v. m
((= ecolor 7)
- W# B y7 ^; f t8 K" n (set_tile "t_color" "7 white")
+ e4 J3 V# c4 _: L (col_tile "show_image" 7 nil)
2 v0 u! O2 [1 k; S7 i( h* I )
" w! {! h! }- @. s- T* N* a3 u ;; If the color is "BYLAYER", then set the tile to
- R8 _. {( Q' A3 e* F- z ;; show it's set By layer, but also indicate the% p3 @9 i1 m9 G, B# L( r
;; color of the layer - i.e. By layer (red); h$ m, A q: R: c) V% ?; ]+ v: p
((= ecolor 256)* c" c8 V Q; ^/ s1 A3 d/ ^7 v
(set_tile "t_color" (bylayer_col)) L. q. [+ \8 H
(col_tile "show_image" cn nil)* ]( P7 Z& J1 B" w
)' @9 l4 z$ { J! G2 D0 k5 J
(T1 v+ P! N0 l3 o" ?, j
(set_tile "t_color" (itoa ecolor))! A9 @; O: }( [, a
(col_tile "show_image" ecolor nil), y) l" ~. ]2 y) u' F
)
3 T1 H5 O; a* w4 N )
( q# S# b0 f1 k- u) T. ?* i )
/ u5 v5 S" F0 i& ^' i5 k ;;9 `, L3 n+ Y' h( J3 ]
;; Function to put up the standard color dialogue.+ _ V8 x$ ]2 n
;;" ~, w0 ?) [" n, E4 J
(defun getcolor(/ col_def lay_clr temp_color)/ k$ X. d- y H( e0 L! O
;; col_def is the default color used when rq_color is called. If ecolor
) u2 ]( f2 p0 ] C6 f T ;; is nil (varies) then set it to 1, else use the value of ecolor.
; L$ @; H; X: }3 [$ J (if ecolor
* J0 y0 m) _: i4 c. l (setq col_def ecolor)
( z! L0 d0 X% K, p (setq col_def 1). |; X) u% T: S. r8 [6 @0 Z( r4 _
)5 r6 n# m1 ?. s# y1 R3 p
# a4 i8 J& _& A. z$ K8 m- o ;; If we're working with a single layer, get its color
B& v" B2 s8 {, @ ;; for use in the color swatch if the user selects color BYLAYER.7 L: i+ B; ~, ?) S
(if (/= elayer ;|MSG0|;"Varies")- o" u* ]; ^7 W0 c- t, U9 n; B; l
(setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
- u4 p" ?0 E1 B/ C) s* j5 J) f9 J o (setq lay_clr 0)
& b2 W% x+ U% [7 v x )
0 |; q, w5 _. E8 f1 V, n (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))5 P( @' s. ^: n- H; b! F3 H4 ?2 P5 y, {
(progn
6 q: ^5 i" Q# d- k (setq ecolor temp_color)9 K( p# H4 F, N" y& a/ y, d
(set_col_tile)
! Y; v% h- w, |# Y ecolor
! U8 K6 g$ N: }) v- z1 p- [! b* n )* X5 I N6 V8 r+ h* M; p8 q. b
ecolor
. r, M& Y3 G$ X$ S7 q& O% u )
( y# ~( N, E, }/ s" |% s2 |- Q )
3 D% d5 k: W8 W% z% G8 R ;;
& L0 O+ b/ ` Z% G ;; This function pops a dialogue box consisting of a list box, image tile," \; ]0 b: j5 |1 i# N, h( [
;; and edit box to allow the user to select or type a linetype. It returns/ ` U3 X: h/ L# ^
;; the linetype selected.
\8 P- t& A1 t3 T% S9 J+ |4 c. E ;;8 w1 V+ v1 t' f7 E( L: P+ X
(defun getltype (/ old-idx ltname)
{" G) t, [0 @5 A ;; Initialize a dialogue from dialogue file
3 q2 ^! T2 o! p+ F (if (not (new_dialog "setltype" dcl_id)) (exit)); A& ]: V, r: Z8 L
(start_list "list_lt")+ v, U" V% M) d Q& y& r
(mapcar 'add_list ltnmlst) ; initialize list box
0 C. z8 c: e, ~" f (end_list)6 H d# P& r& o! n$ {& k& ~" Q+ K0 p
(setq old-idx lt-idx)
# D; y' R9 g8 O0 z! ^ O) n/ k& k ;; Show initial ltype in image tile, list box, and edit box
: t9 m. J3 c4 T) ^' K" _" I (if (/= lt-idx nil)* w( v! W$ h( y5 l. `
(ltlist_act (itoa lt-idx))
6 _6 B+ F1 t4 ?0 F! } (progn! U- @& q7 ]% o( D! [" h
(set_tile "edit_lt" "")
0 ?2 Q/ J: z: j$ A6 s2 l' C (col_tile "show_image" 0 nil)
4 e* s% N( \: U3 \9 d1 u );progn else3 m' [0 i- H0 [: q' F: h
);if. b: G2 F0 ]/ k, l; x
(action_tile "list_lt" "(ltlist_act $value)")* B, J$ f8 y6 `( J
(action_tile "edit_lt" "(ltedit_act)")! j' L! C+ K4 ~7 P- o, \
(action_tile "accept" "(test-ok)"), ^+ j; B1 q0 G
(action_tile "cancel" "(reset-lt)")
, ^& m! d8 b* h' P8 ? ?: ` (if (= (start_dialog) 1) ; User pressed OK
- N; P" x! B& u (cond2 _ _6 v' r( P, q; F
((or (= lt-idx nil)
& s2 y( n3 g8 J% O4 M (= lt-idx (1- (length ltnmlst)))" Q) I$ t' g3 W) r
);or" d% z) G0 m$ w3 t' n
(set_tile "t_ltype" "Varies")
) i' {! K! k" o! c2 `, e ;|MSG0|;"Varies"% x' y* E5 \& w, Z
)
m: \% p/ W S/ d, g0 R ((= lt-idx 0)
0 z. y. M* R. ^) J% E (set_tile "t_ltype" (bylayer_lt))
- J1 {8 Y3 P; r; a& L ;|MSG0|;"BYLAYER"+ Q P5 l- T2 h N) `* h
)
5 ?' z) U) ^" \/ [ ((= lt-idx 1), t& e% E1 I s/ }0 d' |) w6 A
(set_tile "t_ltype" "BYBLOCK"). u7 ]1 C+ q* f# Y; s2 @3 O: ?0 j+ K) \
;|MSG0|;"BYBLOCK"
( Q: _# A" D1 A6 b' m# j* w- D+ | )
u# f/ P# @/ w3 I, j! u6 u/ ]) F; R (T$ X! r' D% z) S+ N' q* V( H
(set_tile "t_ltype" ltname)5 C9 U$ Z3 d2 i1 W' w* J& I
ltname% A$ i2 G: g9 R# m" L) i
)
6 i' `4 q5 _" ~2 v3 U& v: n5 w/ v );cond then- f5 X& H: a1 S; @5 Y
eltype
$ _4 z9 k$ q, g. j+ e' K1 c );if
, b w4 A# r0 P f );defun
" y ~& v, _4 I% p: Y ;;5 C; W# L. s2 {" h3 @" I1 p
;; Edit box entries end up here
, D5 w5 Q& @5 S, T ;;
; u% Q. ]) }8 X0 L/ x (defun ltedit_act ( / flag)
( l0 |' n4 d) [6 g# t, \( t7 o9 x s; A ;; If linetype name,is valid, then clear error string," P4 \( s% C3 {7 { P
;; call ltlist_act function, and change focus to list box." b4 [" [3 a1 S8 L7 s
;; Else print error message.
+ b2 Y1 [, W5 X: i3 ^. E* S
# n1 Z2 y' N0 W w7 M* e (setq ltvalue (xstrcase (get_tile "edit_lt")))
3 o8 s4 V# y( {+ P (if (or (= ltvalue ;|MSG0|;"BYLAYER")0 P" m8 j/ u: b, P1 k
(= ltvalue "BY LAYER")! ]7 p$ T( i; B/ [9 a2 Z
)
t m1 `9 W! R4 T8 t (setq ltvalue "BYLAYER")5 Q+ a/ X m* J: a, X" ^
)
/ w# d6 Z1 q1 K( d (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
! b- X! }0 a. u) B. C8 s" V (= ltvalue "BY BLOCK")
& C! g) `+ ^2 X2 y R. Q" o )
1 @% A' U; m7 h+ \- T* o. I (setq ltvalue "BYBLOCK")
9 x5 P3 ?( n; C2 b' ?7 B )/ t* y# C' ]/ X' N8 V
(if (setq lt-idx (getindex ltvalue ltnmlst))) e$ V, Q: u9 M- U5 }6 O4 d
(progn& u+ C2 i8 `' Q2 x
(set_tile "error" "")$ i3 i2 x8 o1 S% k- h: q \
(ltlist_act (itoa lt-idx))
5 U! v: f6 x3 [9 _8 K: m7 \% L ;(mode_tile "list_lt" 2)2 g" P; |: |" C/ n; @% a/ |
);progn then
/ f) c! E& C1 c8 F+ x. E7 K (progn/ @. u8 X N2 X3 ^, x" X
(if (/= ltvalue "")
1 M* F2 q1 q* B, `. B- P* m (progn6 N. C/ ~1 @' c; h: o4 ^8 ^
(set_tile "error" "Invalid linetype.")
9 D( Q5 D" W1 d. W A9 G (setq flag T)
' N2 ^% j+ T$ A" F; W. R( n );progn
4 F! g: l$ s) h+ h )' x Q9 O4 \; m3 f/ ?; ~
(setq lt-idx old-idx)
$ t% F$ W3 L# \+ t! W( H );progn else) T8 }1 g3 ~* R0 H! ^
);if
6 r( e$ ?, x r" T2 O: r6 G (if (and (not flag) ;added so a return will take you out of the dialog.% H2 Z) u9 h& q& v( S) f
(= $reason 1)
9 v+ @6 @; X; `2 R& m( w2 W );and
; u8 \' v7 o4 L9 d1 H! p" q* X (done_dialog 1)
1 ?" `, e7 W& P3 E7 U );if # |' N4 F! K7 |$ z" z$ Z
);defun ltedit_act
3 B, _$ U/ L$ b5 m5 e ;;8 d# O# U# P2 m5 k' x
;; List selections end up here' `6 _5 F/ \5 M
;; C) ]1 @- B& k, w
(defun ltlist_act (index / dashdata)9 x0 y4 U; ?: M2 {" H
;; Update the list box, edit box, and color tile
% d$ q% m/ Z" t" [ (set_tile "error" "")" L4 J Z* a) Y# c
(setq lt-idx (atoi index))5 J2 q/ I8 q% B/ @# b C3 K
(setq ltname (nth lt-idx ltnmlst))
2 a% a3 W1 i G2 l (setq dashdata (nth lt-idx mdashlist))4 R2 {, v6 c% o8 N }" L
(col_tile "show_image" 0 dashdata)! H/ I/ z/ @% V7 a
(set_tile "list_lt" (itoa lt-idx))
# L& t4 t! i+ P( x (set_tile "edit_lt" ltname)4 d/ {4 V# |9 Q `" U# O* e: {
)* ^( q) x. d9 P |% q; P7 r4 s
;;/ A4 ]# d$ R3 {+ E6 F3 q
;; Reset to original linetype when cancel it selected
' k. x6 p. L, K/ y; V ;;& _$ o# t N* D6 v5 b# X
(defun reset-lt ()
$ ^& ?5 n0 o5 p5 z (setq lt-idx old-idx)
! r a& O. p- w (done_dialog 0)
+ T: ?4 g3 e) k$ A )8 h8 j: J) Z- J; N# o6 \
;;
9 c/ x* y0 D4 X. A ;; This function pops a dialogue box consisting of a list box and edit box to
! A( I2 L$ A8 c: i6 t ;; allow the user to select or type a layer name. It returns the layer name
1 G9 g* X# g( A* p- b. ]: U ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the4 B1 M* `* m2 j4 T) z, ~
;; drawing.1 `; E' x& p, z7 }' a. v
;;
' k- b/ k; _$ z+ z (defun getlayer (/ old-idx layname on off frozth linetype colname)% ^0 Q" U$ k% t6 K/ S
;; Create layer list the first time the layer
/ J0 O @1 Z6 ^* D; G8 O% _9 p ;; dialogue is called. j y" ^6 ?) P7 o& V
(if (not lay-idx)
1 ~; R- K g8 t1 R (progn1 I: r: V* K. N% J
(makelaylists) ; layer list - laynmlst
0 B" m4 X# ^" E) u8 q& h; M) r- i ;rk3 B& [ B8 |- S9 k+ Q( l
(setq lay-idx (getindex elayer laynmlst))
" O% Z$ ]; H) w6 y2 w' H );progn
- k$ ~4 g* x* O; U4 [ );if. T, R m6 M* w" S* I8 ]
. ~5 W: ]7 q* v. q
;; Load a dialogue from dialogue file( f! e1 o; ]- T9 V
(if (not (new_dialog "setlayer" dcl_id)) (exit))
( W, k* M3 f6 V c (start_list "list_lay")
+ } K/ [; Y: d. _( z (mapcar 'add_list longlist) ; initialize list box
- _1 p" k# {: t" M! ~" k2 Z (end_list)8 B- _2 k8 S. f0 q9 \# `
;; Display current layer, show initial layer name in edit
2 S2 t$ J9 E7 h9 h3 a) R; b& H ;; box, and highlight list box.0 B4 _7 U/ P4 }1 L5 [
(setq old-idx lay-idx), S& A3 p9 o S" f7 B4 A
(if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
/ J% ^. A* m4 t, C: z S( q \ (set_tile "cur_layer" (getvar "clayer"))
q1 H" j, h+ T1 N (action_tile "list_lay" "(laylist_act $value)")' N K s7 y. s
(action_tile "edit_lay" "(layedit_act)")
. O, t1 g8 r" S+ I (action_tile "accept" "(test-ok)")
( T' T2 J, a1 q% z7 z$ L& Q1 o (action_tile "cancel" "(reset-lay)")
3 C8 i2 b$ F( ~4 Z- k% w5 W% h* ] (if (= (start_dialog) 1) ; User pressed OK* ~0 H, D) ^# [
(progn
$ h% m! \% v0 z (if (or (= lay-idx nil)
! g$ b* J: N O8 a. b (= lay-idx (1- (length laynmlst)))
9 o1 g! |$ g4 N, i: d" Y );or& [2 o! ^; F0 g7 ~
(progn
0 q9 Z9 H# A, K! V, a% J# m (setq lay-idx nil)
) _* e# s0 G. G0 t6 @/ l1 E (setq layname ;|MSG0|;"VARIES")$ y, D, N7 d4 r1 x
(set_tile "t_layer" "Varies")
' k( _, @" y1 E3 _ (setq layname "")
; L) C2 T( D; K5 R. t7 Z );progn
- D- f) c4 K4 M" Z (set_tile "t_layer" layname)
, g" u- l4 c% w( B );if
4 w8 G8 c) z$ z! B( } ; If layer or ltype equals bylayer reset their tiles
- n* W9 m0 E, e! l! X9 c% Y3 H (if (= lt-idx 0)# R3 s" D) b* Q. v( j8 r: e
(set_tile "t_ltype" (bylayer_lt))
( @, q' q- I1 T; ?+ [4 Z );if. m3 U" c! R, w& N( C5 c' b7 V
(if (= ecolor 256)
/ }1 \) Z4 Y% s; c) q/ Y$ X (progn5 ~! {3 c# f3 l; Z, d% s
(set_tile "t_color" (bylayer_col))
0 X- v1 J# k5 r: z, d5 {: J" q: K (col_tile "show_image" cn nil)( h+ D% c1 g z5 X! i0 P3 G' x
)
( P3 M& s4 h+ i5 z) J );if
; k' S( u* O7 C6 O6 s layname
) T2 | C0 R& g! P. v9 Y" ` );progn
# k8 w2 x5 e }8 u elayer
. i/ }: ~# L! q4 U9 y. W );if
( k: d, N. z1 p. M ), w" r; P: x6 J
;;6 V; r. w- R7 o' B
;; Edit box selections end up here& j% t' m! L3 ~# T s' M
;;& Z" q6 N. v# f6 D& @4 p: Q! W
(defun layedit_act()/ I3 I8 \3 I2 F" L1 {( e; S6 J& \
;; Convert layer entry to upper case. If layer name is
5 ]9 p5 e! q' d1 v6 ]( T7 A; j ;; valid, clear error string, call (laylist_act) function,
/ N# h& p1 |, }7 O% ? ;; and change focus to list box. Else print error message.; p f( S- _: n$ C. N6 N9 g( C5 u
(setq layvalue (xstrcase (get_tile "edit_lay")))" s4 T" i: K; [5 d% Z0 N+ w
(if (setq lay-idx (getindex layvalue laynmlst))6 k$ V9 K- M% K) h
(progn
2 z E; O! `( r; ]+ N (set_tile "error" "")
s" I; |/ ]9 M5 j$ I# W( u (laylist_act (itoa lay-idx)). @! G- s" d! z2 J3 F2 \7 C E" q
)" y1 U, X U& d a. p
(progn
5 _# a0 j% t, k7 P (set_tile "error" "Invalid layer name.")# H: v* G) n& ~
(mode_tile "edit_lay" 2)% o1 n- U3 j8 x( `( @( o1 B
(setq lay-idx old-idx)1 q: q5 C4 j4 R7 d+ F: W( S
)
- c" P3 }0 G; C7 }4 c );if
. X" H7 O7 f/ @3 c: h& U; | );defun
8 W5 o- q w( l ;;
- _' U9 y E) n m+ r" R3 w- |+ S ;; List entry selections end up here) @$ s' q! I+ w \! P# C1 g
;;
- {% Z) w) i. |3 o+ m; z- t (defun laylist_act (index / layinfo color dashdata)
& D0 u0 O9 }# D6 f7 n ;; Update the list box, edit box, and color tile
1 W1 J& Y1 t0 E7 i& `; P% g (set_tile "error" "")
$ i) h* o* g8 u+ e4 p (setq lay-idx (atoi index)) r' i6 k% F7 _, c
(if (not (equal lay-idx (1- (length laynmlst))))
6 K% D0 q6 V; H0 v1 `6 _' | (progn
3 L8 F% G! ]3 o) ]" a, C (setq layname (nth lay-idx laynmlst))5 G: S# Q6 O& ^
(setq layinfo (tblsearch "layer" layname))6 J/ i* q5 M+ J' Q0 o j
(setq color (cdr (assoc 62 layinfo))); Y3 `/ O7 E) q* N8 u! }+ l6 S
(setq color (abs color))! ]) z9 z, {9 |5 o: F; c. |) r
(setq colname (colorname color))
" J0 S2 g4 }2 j" y/ I5 q/ r (set_tile "list_lay" (itoa lay-idx))4 c) @* @- z' J/ @
(set_tile "edit_lay" layname)
" y# Z: u [" S- M8 G ;(mode_tile "list_lay" 2)
* B Q: Q; T# a& Z+ H0 a );progn then ' H) D. k, Z p$ O' ?2 N% W
(set_tile "edit_lay" "")
3 v+ ~! z, X O. t( @ );if
' d. ~1 @9 B: B; h );defun laylist_act
' H! m6 P; q! i) G V ;;
U7 A2 W& f" ^/ ] ;; Reset to original layer when cancel is selected
7 c$ m: D+ h& k& Q, w ;;5 a6 [) g8 P7 T* w% G# @# w* z! e
(defun reset-lay ()8 u2 {" f8 {) E" g s3 l% u
(setq lay-idx old-idx)* C% @4 J( b% K# @0 I, f
(done_dialog 0)
- a% ?6 f+ B) N% x )
* c. Q1 [" J) B: U, T: g
! O6 Q6 Z$ O! v7 d8 H9 S! _ ;; Checks validity of linetype scale from edit box. It checks to
, s8 Y& f7 ]( j$ I$ d ;; see if the value equals "Varies".) c: h0 O: g: O. `6 |0 m
E) ]8 Q5 b( v' a0 v1 |
(defun getscale (value / rval)+ \6 i. R# v [+ i, K- a
(setq value (strcase value)# D2 P4 l& t9 b" [- ^: ^
rval (distof value)
4 [ r& c, v( m) X5 e );setq
7 }7 S" Q: j7 g/ W" K% n! ], [ (if (or (= value "")
) V+ }+ `' Q' I, j; F) K; [: M0 r (> rval 0.0)! j# o( c% x/ v) p5 j, I
)
F: {; T9 F# H: ^$ b# O4 a (progn
y- n1 G) w9 n! _, [* y# S (set_tile "error" "")# |9 l7 y5 ^* H. j# D1 |* t
(if (= value "")+ H0 [9 Z# H: A) W+ V
(progn7 g( v& L+ R4 \ x3 v [/ f
(set_tile "eb_ltscale" "")* M6 m4 ]: Y1 i& l) K
(setq eltscale nil)
* P* R. s) u) G% J* U, P9 n );progn then
6 Z1 x- f6 P" v/ p; ?, k8 @ (progn) ]( o" D. Q m' Y
(setq eltscale (distof value))
' `6 _$ E6 G9 h. a. }8 Q (set_tile "eb_ltscale" (ai_rtos eltscale))- Y5 `% n! K; _7 K
eltscale4 j0 k4 U: G; B! I! Y% @
);progn else& v) j6 H$ X8 a
);if
; ]* M/ M4 |' C8 I g' [" g7 Z );progn) w! @; q6 o: ^+ f) d# D
(progn" C }! {( Y2 Y& w2 [* F. E! s
(set_tile "error" "Invalid ltscale."). o, o2 i+ Y4 c
nil4 H- }: |& O. T1 R
);progn else
( N- f$ n2 K4 L );if( I% C% Y, O( J1 c+ i
);defun
* e, Y8 w* ^- ?( c) C ;;
& y: a! |4 ?4 \7 ?( V O/ U9 F ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
7 G5 ?( p1 r; b3 s ;; string can't be converted to a real, this routine checks if the first4 W5 i$ x% G ~: ^% w8 e6 z0 D4 ]% }8 W
;; character is "0". It also checks to see if the value equals "Varies".0 R) C9 F' O7 [5 M4 T0 M, G
;;
8 O6 l4 w8 _; \4 U* e/ k (defun getthickness (value)
$ L. ^: \/ U- f3 k (setq value (strcase value)); Y. c8 F$ P6 T3 h4 a$ R- {
(if (or (= value "")
2 R: ]" Q) B& P1 M (distof value)% Q% M9 ?0 d3 g. \3 z- V. D G
);or
7 k" @: `& [+ B* ~" t, F (progn: V1 T; @# |. q1 s( k
(set_tile "error" "")5 A2 i* c& T g. [7 ]
(if (= value "")
( Q# N& U: n; w* R (progn
6 E6 q- m2 O H$ _- o1 c, F8 k (set_tile "eb_thickness" "")
2 D# a6 m2 A2 Q$ e: p6 R (setq ethickness nil)$ B/ p6 f+ p) f. E! ^% ~# k, B
);progn
; Z- U; K7 \5 S- ~4 O (progn4 \; K: p. J) G9 I* \, u
(setq ethickness (distof value))
" A+ w3 ?% t7 A$ ]1 R; G (set_tile "eb_thickness" (ai_rtos ethickness))0 I/ u4 X0 C1 p2 c( o
ethickness& |- _7 a8 ^6 i
);progn& {' U/ R2 y$ I' Q
);if
( ~9 c2 f" Z; ]5 ]( O* G+ j7 v1 m5 J );progn2 o6 o6 o" s5 s5 q# W, x
(progn5 s$ d! C- q% R' `' Y
(set_tile "error" "Invalid thickness."). i Y: e$ C. y# e
nil: t6 s( u" q1 e
);progn; P, q1 V4 ^5 G" g+ E$ o
);if
* d. Q& K6 a9 ^! ]' f );defun n7 Y1 v% H9 A1 d9 c6 e
;;
# [1 O4 e2 \- O' w( S ;; Checks validity of polyline elevation from edit box.
6 `( N4 x( ~% `4 m& k( L, p$ o ;;6 K- w" |; e6 u& [3 p. ^
(defun getelevation (value)
" f1 a7 W( Q- h( @ (setq value (strcase value))
* Q. y' c$ p( a# G2 E+ U (if (or (= value "")- s% w! g0 l6 q- \ e
(distof value)
. M- _* i5 o! K$ Q8 }# o )
+ M6 T5 K8 X# j) E" t* ? (progn
# C! z2 {, t% @ H (set_tile "error" "")% S! L7 u' Q& C$ d! s
(if (= value "")1 Q s3 r" m& ^( I& p6 _& Z! i( N3 s
(progn
; ^7 d, _+ A& i1 R8 Q) o! V! C( S2 E (set_tile "poly_elev" "")
) o( D& H8 G& a, ] \ (setq eelevation nil)( e q% \. Y2 g( P8 B# _9 w1 H
);progn9 e! V0 x+ p/ V+ M% Q9 C$ I
(progn
9 d" L7 Q8 G+ i# \$ s' G (setq eelevation (distof value))" w* ?7 w# d/ i8 h; e5 |
(set_tile "poly_elev" (ai_rtos eelevation))
. N. w& C" s K eelevation t9 c& u2 q) y. N: v3 T
);progn. t6 P- j* `$ J/ V. p
);if
# e0 ]' J6 [# @/ ^( s/ Y );progn
3 h, i- V: O. @4 J (progn
. P- U( L# w+ t4 I; x* Z* |# s (set_tile "error" "Invalid elevation.")
4 U$ ?. d, }6 d2 R! l3 { nil
+ t" j1 m! M) k/ m1 x );progn
- G' x6 {5 x2 C0 y );if, ]+ A. m+ G" k2 n, k( k: `
);defun
/ j/ P- @ g2 U ;;; X/ L, E ^' i" _: y& G; B: U
;; Checks validity of polyline width from edit box.4 h( {* m1 z: c6 U
;;
2 I, V- R$ K' g4 [ (defun getwidth (value / rval)
3 V4 p: Y! \, E: o/ ` (setq value (strcase value)
% e4 u7 ~' C! z/ W3 T9 B: y4 H rval (distof value)% |) W% j% V3 N/ y: P9 ~6 G; [) N
)
]# f. U" `/ S( d4 E (if (or (= value "")
! b7 D, y0 ]: {) C7 d (>= rval 0.0)) B& j- I' [, H5 U. Q) b
)
7 H c' K4 E/ D (progn1 x4 }* n3 H' x7 G: l( D3 u
(set_tile "error" "")! O0 _- |* ]& j8 Q
(if (= value "")+ _1 y8 {% k- a. G, X+ F7 j
(progn% }$ b6 j; r: n- e
(set_tile "poly_wid" "")
6 C% L/ P+ [! Y& h4 p (setq ewidth nil)
2 d, b* O$ ?+ s& ] );progn
0 m/ n! P6 s' P( a0 p (progn
7 C4 {) R/ R( H4 y2 n2 Q$ _ (setq ewidth (distof value))
. L* n3 ^# t G0 } s9 X3 A5 H (set_tile "poly_wid" (ai_rtos ewidth))
1 ?: |8 L* Q9 S8 ]+ P ;width% z( t* h, B5 \1 M
);progn" E8 ~ a3 ~" O6 E
);if
( h8 ~: m, y- P N+ w );progn
8 L0 d& L/ k T( ~0 w (progn2 B* i8 z( I! D
(set_tile "error" "Invalid width.")7 g1 g% T. P" _! f$ Q5 ]: R- N! i& @
;(setq ewidth nil)2 G0 P* X M: J3 {- e/ S6 k: L( k" I
nil
9 i: F4 v N$ l* O3 r' ] );progn
8 L" _9 E4 V# u2 j- c: ~ );if( c3 P+ M& T+ v
);defun
( B6 @& B9 y6 T- x6 M2 x* O4 j ;;
1 a% K( X; Y, ?! }8 K ;; Checks validity of text height from edit box.$ l5 H q" o% }! @/ E
;;- o5 ~% D0 H r# t% j, ^
(defun getheight (value / rval)" f6 V7 r4 ]+ S) [3 O2 x# f& d
(setq value (strcase value)
1 S7 X# s- Z0 `" o! i& G rval (distof value)
. ~" h' G3 R, \4 }1 q5 y0 v )
/ b9 x; O- f h8 p7 w ]7 L (if (or (= value "")
9 Z0 Y$ s9 R, {( c2 |1 _! g5 ^ (> rval 0.0)
) J( H5 ^4 ]. ]- L! {. M4 A )# H% y$ [: ~( j- o$ {9 `, O
(progn7 K; L9 D* c7 N W
(set_tile "error" "")
6 \$ V! u7 m5 N0 b1 u. e+ Q (if (= value "")
! j, |6 V1 J: g) `+ K" I. [ (progn
9 X) P8 k0 A7 {& z A (set_tile "text_hgt" "")- C: r4 I( R7 X9 ^! u0 h" R9 ~
(setq eheight nil)
) a; D$ F2 Y5 ]. l7 T, Z );progn
5 f9 M7 F% D' g8 [ (progn
- y" E7 l3 d8 `# j2 R3 D (setq eheight (distof value))
0 u, o& P/ D# Q (set_tile "text_hgt" (ai_rtos eheight))
3 f! ^3 b7 b% \ eheight
A7 }4 h( f8 K! f+ e' P* N );progn1 J, K# S9 T2 V7 _
);if
. l! O* p# Q. r' v/ ^ );progn9 Z7 V1 |1 D2 X1 I* z4 n+ \
(progn2 I& b( f8 k% z, | |
(set_tile "error" "Invalid height.")& U. X, ~, }# ^. c' m- D
nil7 k a h7 e0 T
);progn7 F3 e8 ]5 y/ u0 ^& T
);if
/ ?5 q- o" y( x+ d6 a7 o$ Y* r );defun& ?! b( I3 B0 _4 ~" L" ~$ r
% x6 q, o5 F' M' y! u+ L (defun getstyle (value lst / rval)- k/ G) R, V7 s* S. v' I _1 u0 K
;(setq value (strcase value))' |% q9 h' s$ z, T
(set_tile "error" "")$ o' Z% w4 k5 t @2 h6 s! c# B! f
(setq estyle (nth (atoi value) lst))
8 |3 J- b3 W1 ?5 h& h' h5 h5 B (if (equal estyle ""); N' h* G ^/ ?7 N& n
(setq estyle nil)
5 P( U5 P4 J7 i/ ` );if8 a: [' c( v! l4 s
" f" u z8 L, b d6 w );defun getstyle
+ _: M4 E0 b' u0 x8 f- N9 V) Q. _/ x* g
;;
' Q, X6 ^% H' w+ h1 `/ Z' I' b3 C ;; This function make a list called laynmlst which consists of all the layer
/ f0 L( X" C" }6 T4 ]- t; A3 A6 H$ S ;; names in the drawing. It also creates a list called longlist which
* A+ o6 @2 I8 J1 C$ G8 R ;; consists of strings which contain the layer name, color, linetype, etc.$ F: L- k1 m( A
;; Longlist is later mapped into the layer listbox. Both are ordered the
& Q9 ^" _' c9 ]5 L2 i$ ^ ;; same.
7 g( t/ ~; u1 W2 W4 r8 t ;;' H& r3 q3 x( E5 M* p
(defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
+ g5 d* @0 N7 B2 j xdlist vpldata sortlist name templist bit-702 `" z* U) P" j- g
layer_number0 [' A" r6 i) }5 ^ ~6 A, d' Y4 N7 g
)
2 O3 O) t2 M. r (if (= (setq tilemode (getvar "tilemode")) 0). v2 _7 `8 ? K" H; L- ` u" @
(progn1 Q6 `& f& o' h* r
(setq ss (ssget "_x" (list (cons 0 "VIEWPORT")3 V( ~; ~0 \4 p/ w
(cons 69 (getvar "CVPORT"))
! J0 E9 X6 J5 W* i0 n0 }: O2 h+ i, W ); K2 \2 Y! O: T( h
)2 c! ^# f: b5 T/ c; U/ n; s
)
3 [+ k" N0 f- u2 H' c (setq cvpname (ssname ss 0))
9 H4 P. R7 m: u, [8 a9 ~ (setq xdlist (assoc -3 (entget cvpname '("acad"))))
% W& r, [( u. I (setq vpldata (cdadr xdlist))
0 s1 w8 o1 R6 X) s& G+ y& U )2 ~# a2 g5 F2 _" |7 G
)5 ?3 P9 n* z, W" k, `3 d9 O
(setq sortlist nil)* o& O' F9 `9 N4 ?
(setq templist (tblnext "LAYER" T))* D8 B; X, M% e* L, b+ A
(setq layer_number 1)
1 Z& ^( ?# d4 d D* T( R (while templist- x6 W% C8 ?& Y& g
(if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))! S# @8 A q5 \
(progn
$ h! f* p1 S. ? C/ v1 f (setq name (cdr (assoc 2 templist)))9 C) H9 j7 t, ?( A4 i$ c
(setq sortlist (cons name sortlist))$ `7 T# y8 E2 L. ^. f$ {
;; Not dead message...8 A" u# e- W5 p' k- D
(setq layer_number (1+ layer_number))
5 D3 d$ M8 x3 f; x6 m4 V );progn4 c# h; G8 o5 h$ e' I: ~+ c
);if
! g' p; @2 \9 H6 v* F5 Q (setq templist (tblnext "LAYER"))
x O9 T7 {4 x2 M. f (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
' R7 ^4 U3 T' Z% H7 N( f) @ (set_tile "error" (strcat "Collecting..." (itoa layer_number)))& Y0 s! N! m" I6 h: V
);if
& \0 ?- c& ^7 X0 T# a- T. J )
" }, Z, J% a" N) u3 l t6 V (set_tile "error" "")
4 b* ]; T6 G; P$ N- J" N (if (>= (getvar "maxsort") (length sortlist))
4 _6 b6 R% T5 q9 m (progn8 s8 o' T A1 `" k9 z
(if (> layer_number 50). b" B- \! t6 ?
(set_tile "error" "Sorting...")6 V2 [0 R7 q4 i8 X7 P' c
)1 Z( Y! d# S9 K5 H
(setq sortlist (acad_strlsort sortlist))0 k; F3 a/ b) Q0 j3 d8 B
)
@* v. B8 L; B# Y (setq sortlist (reverse sortlist))
2 v& z T& d& P" g: b0 \ )
! Y$ q2 z# K; V) q (set_tile "error" "")- O5 L& I+ ]2 ?2 q( W5 T$ S, g2 Q
(setq laynmlst sortlist)
) v# p. ?* J0 g' M+ J ;rk
& N4 s7 Q, M/ ~0 f (setq laynmlst (append laynmlst (list "")))
# p- [9 \- R# J3 h/ C/ v; D* R# [, U% l+ P
(setq longlist nil)6 R3 H# ^1 l5 s" \ a, o& @
(setq layname (car sortlist))
6 \, I) f1 |; q% y (setq layer_number 1)
* n. W% A% M. h- I; X: W (while layname
/ d* o7 X5 V1 n+ n8 a' L (if (= (/ layer_number 50.0) 7 a* b4 V7 ?5 c' Q# b
(fix (/ layer_number 50.0))
! ?+ r. d. ?6 q! S: C* @ )
6 O- q( l5 ^. D, J8 D9 }, Q (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
$ W! N! N( U, J+ Z4 E1 K! {! K2 H );if
" |- l* b H$ W" h, A6 l& i (setq layer_number (1+ layer_number))
5 n5 ]+ M( i1 L+ ]( Q' f- M (setq laylist (tblsearch "LAYER" layname))
1 Q" o; ~9 a7 T, Q- g (setq color (cdr (assoc 62 laylist)))
5 P6 b2 y3 Z; B: J6 A, w1 p2 \) _9 i( ? (if (minusp color)& C4 @% b: g' \5 b
(setq onoff ".")
- h, y$ B3 K4 }7 } (setq onoff "On")# N5 e1 k& K! c! S a+ n( ]
)! E* V3 a2 x. H
(setq color (abs color))4 M- d% { K0 `, t* G: U9 B
(setq colname (colorname color))9 p9 r4 J0 C& b7 y' H* C* e$ U
(setq bit-70 (cdr (assoc 70 laylist)))! X" P/ @* @* P, H f( m% a
(if (= (logand bit-70 1) 1)$ J- e" M+ |, Z/ i
(setq frozth "F" fchk laylist)
5 |; R- a6 K( M0 N" x0 P! B. _ (setq frozth ".")
, a% k: t2 B8 Q/ c )
7 {, ~) F6 B" ]) E$ }$ D, u0 h (if (= (logand bit-70 2) 2)
* Q% L0 |4 a Q7 s! W! ?- C, R (setq vpn "N")* L) ]1 E2 _0 I# u9 i
(setq vpn ".")
8 P: J& v, B2 B0 C, C )
, T0 \# {1 S( A1 j (if (= (logand bit-70 4) 4)
* e- j! y! J$ E0 ~ (setq lock "L")
5 I9 }+ q+ g5 i% t* Z6 v: m7 ~ (setq lock ".")
1 v$ e# z3 w. a )
9 J5 y9 ~ c1 H+ r (setq linetype (cdr (assoc 6 laylist)))% ^9 A4 }+ l# r# _3 a( k: h" H0 s
(setq layname (substr layname 1 31))
3 l5 H5 ~% T v/ m3 S- R) p1 h (if (= tilemode 0)0 T) i0 O, K$ _" a- J/ _$ C' u/ U9 v
(progn# z5 @9 U- c# O0 }7 ?
(if (member (cons 1003 layname) vpldata)
4 p4 [' D( T% {' g+ f% | (setq vpf "C"). p) d, N# F/ `) C
(setq vpf ".")
- L* W" Y9 ~& S6 i3 G d )( W7 H: T1 z9 }. Q6 N
)' y7 s1 W4 U5 C0 u& p
(setq vpf "."), W Y0 k3 T+ v2 w# b) x
)6 e- c4 A7 m% Y# N
(setq ltabstr (strcat layname "\t"! _" `* {0 [8 u$ S
onoff "\t"$ R. f$ a& M$ ~- V8 \( o* \
frozth "\t"
) Z e t; y) k& s2 m4 K: W lock "\t"
& U o& F6 ^6 s* O$ g+ i( G vpf "\t"* z4 [" d f1 X. v5 ^
vpn "\t"
U" g1 ~8 @ p* K colname "\t"6 n# M- P. X$ w# ~8 t5 M
linetype
# K6 `, v7 e. L. P! R )
3 l0 V, u& r( u- J. Y )
2 _6 p3 E2 |6 ~0 ?- J; e+ }/ A3 b (setq longlist (append longlist (list ltabstr)))( F6 \# S) q0 o9 c
(setq sortlist (cdr sortlist))
" ]' U3 U# c) M# `- a' Y' l, @ (setq layname (car sortlist))
- b: E( D S2 p! E9 h. O );while
2 x) K1 i* e% ?3 I/ ` (setq longlist (append longlist (list "")))
0 p" j0 T2 T) g) I' }! R1 n/ } (set_tile "error" "")' |' j3 p8 J2 c0 J, E4 [6 P
)
|- ]! V& J) _2 ?: f, E: p3 e ;;
5 n4 g6 O3 ?6 i. G$ ~( } ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
& E+ i" S+ q% v, O: D/ Y3 N4 I ;; linetype names read from the symbol table. Mdashlist is list consisting
- h- ]6 t. O8 _/ Q) }& i ;; of lists which define the linetype pattern - numbers that indicate dots,1 e: ~& o& K6 |& q' T+ q
;; dashes, and spaces taken from group code 49. The list corresponds to the
5 K! d; H a2 o; O/ W0 K: _ ;; order of names in ltnmlst.
+ c( o( L* ?: f2 W ;;
+ [% j7 d; p( N& b6 J (defun makeltlists (/ ltlist ltname). |! K9 f3 \8 X+ [ K
(setq mdashlist nil)/ \7 S4 [4 x; @3 s, v. G3 n+ m
(setq ltlist (tblnext "LTYPE" T))
3 J5 |# E- s& i" B, C4 v7 Y( R (setq ltname (cdr (assoc 2 ltlist)))
) F9 c$ m& T2 U7 _ (setq ltnmlst (list ltname))
. R& f. H/ ^$ P6 N4 q$ l (while (setq ltlist (tblnext "LTYPE"))
+ {$ H: D' c- ^0 ^5 o (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
% C1 X. O& B3 f! ` O; n (progn + j$ M U" B# F" n% ]' |
(setq ltname (cdr (assoc 2 ltlist)))4 S ^% ]6 d! Z# y! Y+ i% J7 ~: q" e+ Z
(setq ltnmlst (append ltnmlst (list ltname)))
3 W0 S6 E u; V );progn
3 u" z' m$ j% h );if 8 i7 i/ |: L/ D ]9 d7 f- p8 o
);while
$ a, p$ F& K+ v. C6 l# c. v8 I (setq ltnmlst (acad_strlsort ltnmlst))
! ^9 @4 I) z2 U8 ^; c% v (setq ltnmlst (append ltnmlst (list "")));add by rk
$ \" \( `# M. F( J (foreach ltname ltnmlst# j3 V. |! n* x. C$ r2 H
(setq ltlist (tblsearch "LTYPE" ltname))) ?2 E- t) Y& x. T
(if (= ltname "CONTINUOUS")3 D& C* u6 L* g" w
(setq mdashlist (append mdashlist (list "CONT")))2 X- c/ _+ F8 F& ^4 M5 f# x* w! Q
(setq mdashlist( k: j+ t/ i, S j# Y: s8 s' Z
(append mdashlist (list (add-mdash ltlist)))
" t/ k# Y/ u- r* N, {$ v )
' _2 v! l* S0 U# t )
O6 W5 P+ u4 a )
8 A3 N7 h2 C& F2 e& G% i (setq ltnmlst (cons "BYBLOCK" ltnmlst))% y# w/ v$ G4 U# Y9 ?8 d# j, I+ E
(setq mdashlist (cons nil mdashlist))
& N8 [; v* n: |( V2 M- T+ N! l (setq ltnmlst (cons "BYLAYER" ltnmlst))% l9 ?/ k; J& I# D: Q
(setq mdashlist (cons nil mdashlist))0 o* J0 h( Y w, _
)7 W6 M' \! r8 u4 u! G! X; \6 T
;;. Q9 i2 f. e {5 p
;; Get all the group code 49 values for a linetype and put them in a list
/ a _- `4 {0 z. _7 O ;; (pen-up, pen-down info). p; y9 }; J; }: y. z. a
;;
$ t' m) j/ }* N$ ` (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
0 T# i) q# l" _ (setq dashlist nil)
; v9 \3 N$ \6 u# Q1 v (while (setq assoclist (car ltlist1))2 r$ D( V, l* k& g# d
(if (= (car assoclist) 49)7 x% N5 T D7 g9 a+ j1 h
(progn8 m5 ~0 Y! i3 f' e, d' z0 y
(setq dashsize (cdr assoclist))
' e8 A2 F( m4 s g: M (setq dashlist (cons dashsize dashlist))
- x/ G0 c; u4 f2 @ )
O1 H2 i) {8 G% b4 \+ } ). w' G5 j5 r Z
(setq ltlist1 (cdr ltlist1))
8 R1 N" F" j- u+ Y( O e# s3 S ) p* ?9 Z! }, E
(setq dashlist (reverse dashlist))! v, [! A6 A4 M6 H I' e) U0 U! _
)
4 v" g% G6 Y9 B& j g0 {# P& u ;;
- i4 V; D7 a) L, R8 H. m; O ;; Color a tile, draw linetype, and draw a border around it
6 p$ ^8 Q/ v% k3 A1 A ;;
3 w$ S9 L+ l# U3 ?& g, x (defun col_tile (tile color patlist / x y)
, m1 B, d+ ~+ K6 D; Q7 F+ ^ (setq x (dimx_tile tile))& _# J: b5 H+ v0 M0 R
(setq y (dimy_tile tile))
' x" z" W3 W* A1 L1 e (start_image tile)% l; F8 p3 n9 v) H6 O; G
(fill_image 0 0 x y color)8 s% B& i; b; `& v# \4 P2 Z, R
(if (= color 7): l5 D: J. \2 _4 x+ g5 z3 u
(progn" L) w- z* Y4 L. o
(if patlist (drawpattern x (/ y 2) patlist 0))
" y7 X8 S/ f: u (tile_rect 0 0 x y 0)
, s* ~. z; d' G1 Z )# M& }7 A; `( H
(progn
; I, D! G$ p- S. V3 ~ (if patlist (drawpattern x (/ y 2) patlist 7))# ^( J8 m3 D+ C: F* i1 o' u1 E
(tile_rect 0 0 x y 7)
' R2 l) B# ]0 C1 ]2 [2 L% d5 i )
. F8 [$ e) s# X/ r )
* ^7 ?. a- D- w5 K. K) k (end_image)
' a% {5 g. K7 e3 y7 V. [0 Q5 X ); m) S( p3 q: O; h
;;, l' r. S: `9 _5 l
;; Draw a border around a tile6 A! f9 M2 G7 ?# U$ `
;;3 ^) p: `+ ]# ?
(defun tile_rect (x1 y1 x2 y2 color)
; c+ u" J& f5 _! r0 @0 u) B (setq x2 (- x2 1))* p) ]) G |9 L! Z# N4 z
(setq y2 (- y2 1))% ^& p; s g. Z9 P$ P1 N
(vector_image x1 y1 x2 y1 color); b0 @8 {1 @% q- \7 {5 s5 x
(vector_image x2 y1 x2 y2 color); E; v, \% I$ d/ s4 Z9 e3 ?
(vector_image x2 y2 x1 y2 color)
- K2 C1 M* M$ j9 Z! L (vector_image x1 y2 x1 y1 color)% U2 A2 c+ f; A
)" i4 x) i5 M. L7 K( q3 |
;;
W+ ]7 G6 Z, Y; F3 T$ s8 r( U9 z ;; Draw the linetype pattern in a tile. Boxlength is the length of the image5 U; x; U! r( f/ K$ E7 \; |$ R
;; tile, y2 is the midpoint of the height of the image tile, pattern is a- O8 ]' g: J* a+ G) n- R$ ]: a+ R
;; list of numbers that define the linetype, and color is the color of the6 V2 N1 m0 |/ f, g* w$ ^
;; tile.
0 R" l2 B) G( O1 w8 B0 D! S ;;9 O) y7 j* h% M& E3 R$ ] r$ l
(defun drawpattern (boxlength y2 pattern color / x1 x2" }* [2 D: L$ _+ c' D+ m. M7 ^' I
patlist dash)* P/ @5 Q# _" G: k* [" `, U
(setq x1 0 x2 0)- M9 c% ^" `1 a: U
(setq patlist pattern)
. R1 M; M4 G! a3 u) ? (setq fx 30)
+ w$ p+ A# o6 w3 U* J (if (= patlist "CONT") U: b" t8 D `0 V9 S% p( G
(progn# _5 R0 ~% V+ q$ o* \; x6 m, @
(setq dash boxlength)
8 N4 q- v8 s: y9 J% G (vi)
5 ^6 o. N! k# i" G1 d& V (setq x1 boxlength)7 @: ^ [1 C4 i p, s3 _5 h$ _4 U9 M# A) i
): Y9 K( A# d0 f5 X& V; D; n: H
(foreach dash patlist
- c% m4 Y( a/ t2 P( D1 V2 y$ H! @ (if (> (abs dash) 2.5), q L: D4 g$ w% y: g- R/ U/ Z% Z
(setq fx 2)& E, B. {# j5 z A8 ~0 r
)
4 V- c; Z9 Q/ @/ U )
# u" J0 |+ y7 j) ` ). j& C# q) M) N& q* a
(while (< x1 boxlength)
. M! h0 b) E- k* Q7 O w# v% K (if (setq dash (car patlist))) G$ g$ p. s+ v' ~- s
(progn4 `1 i0 }5 V/ k6 o" A" X
(setq dash (fix (* fx dash)))/ Z( ~' I5 H, q+ A" O4 `2 G
(cond
$ X' y1 M$ o( o# V; w/ g( w ((= dash 0)2 T; q0 f' q- ?+ H# v$ Z; x' r
(setq dash 1)" y' g1 ]/ h" ?. z0 _
(vi)
3 U, V8 M S! t* J )5 A& y! _& A* e+ {5 v2 q2 a, u+ K
((> dash 0)
1 R( ^4 A+ O% [( ~' c (vi)
7 R- ^1 b& D' S0 s )4 j6 l$ T9 e1 }# k7 \
(T
1 N# i( b6 y1 D6 O. G) j0 m (if (< (abs dash) 2) (setq dash 2)). B! r$ m' _" d+ d1 G, }
(setq x2 (+ x2 (abs dash)))
- `% Q8 `7 L, q$ d7 s; B Z' o )
, [$ {* T# `' ^9 F$ W; d )$ H* v2 o y& Q8 |' I- F& L2 t) ?
(setq patlist (cdr patlist))
: [6 |9 B0 i) e4 s& y( g( i$ \ (setq x1 x2)' t- R' k. m3 ^4 u* i, R& w2 R
)
' c( ^* z; o6 B/ r (setq patlist pattern)9 F: e3 u. c0 }4 ^2 O
)8 [# G5 l7 M9 I4 Z; \# W
)
3 o# l! D# g1 E; x1 h- T: Y )
+ l6 O9 V" z' Z% Q% F ;;6 H# H9 h1 @/ ? t) q0 y* B
;; Draw a dash or dot in image tile ~1 s6 I4 T" u. V$ T- b( P; V
;;! S" T7 K3 o: j& @ \7 N
(defun vi ()
+ v) v9 U) w1 Q4 [+ R9 I (setq x2 (+ x2 dash))# s7 I. M# {9 O c" H
(vector_image x1 y2 x2 y2 color); X6 R; w1 M7 \
)8 r6 I- a# ~2 F" c& T, V Y. F8 f7 l
! M$ x( ~9 c3 Q. H9 y ;; This function takes a selection and returns a list of the color,) S5 E9 W" s$ O: f7 `1 Q9 `4 p
;; linetype, layer, linetype scale, and thickness properties that/ s \# Q& k/ Z
;; are common to every entities in the selection set - (color
7 L; W4 W. v- x ;; linetype layer thickness). If all entities do not share the same
8 j$ G0 m/ C4 Y ;; property value it returns "Varies" in place of the property. \ B- a6 u2 C- o% N. W& F
;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0): y4 ~7 K& F! H6 `
;; The last item in the return list is an integer flag for the7 P! A2 ~5 g; Q7 i" c! j! q+ S; w
;; homegenity of the selection-set object types.
+ o2 ?, n A& J) l3 l ;; 1 = All polylines
" N/ J! L H$ l, B. d# \ ;; 2 = All text or mtext or attdef, or a combination of the three0 a6 G) x2 y* Y* Q5 F3 y3 [* [
;; -1 = Any other mix of objects& ?# D( H' X- L9 b' G r3 x1 G
) C% B7 q/ m" e t" s1 a (defun getprops (selset / sslen elist color ltype layer ltscale thickness* w: q3 g. W: X/ ^9 _+ S1 ~
width elevation height go ctr 3 Z3 B8 f1 ]$ ~
eflag 1 O0 K3 b0 } V/ A; ^
etype temp
# l# F4 J' T+ h/ z4 q0 Q- J txt_ss ;;;;rk 11:24 AM 1/30/97; }+ s6 P r* d/ p
tmp ! ^. A5 M& ]4 \0 X" J' E
poly_ss 6 m0 g2 f7 q/ s5 H2 e- o5 {
style
0 d8 E1 V, Z" t6 V; i0 r )
) u; i; O. E3 j0 S9 _' H" s3 Z4 B6 @3 A# ]+ c
! |4 U3 ^1 y( X) k! I% M2 p' `
(setq sslen (sslength selset)6 s' E6 a) e6 S, H9 z* ^6 |
elist (entget (ssname selset 0))2 Y ]# {; ^$ R3 Q( d- u/ ]+ r2 V
etype (strcase (cdr (assoc 0 elist)))
- [( P7 T5 n2 l! h+ c color (cdr (assoc 62 elist)) Z% Y/ z: J. S9 p
ltype (cdr (assoc 6 elist))% J( n+ w8 V2 L5 @* g1 Z! Y+ K
layer (cdr (assoc 8 elist))
# x7 d7 N8 s: h8 {( A/ g thickness (cdr (assoc 39 elist))
. a8 d7 [8 e4 W6 w- b l( m. C ltscale (cdr (assoc 48 elist))1 C0 t( e y6 K$ {8 }' y
);setq( b L. p: D1 t' p/ j
- N* s4 n" R+ F$ L- `
(if (not color) (setq color 256))6 u" H+ @) ?+ j9 Q. b
(if (not ltype) (setq ltype "BYLAYER"))! k% \, |; s/ E. e4 \: Q* N6 j
(if (not thickness) (setq thickness 0))5 D4 ?2 s2 B; d0 S% g. [2 O
(if (not ltscale) (setq ltscale 1))/ a Y' q H; k: }, c4 s" p
+ ?9 N% l$ t9 G* x (if (not width) (setq width ""))- w/ T/ d$ o4 r! ~4 E! g/ Q$ U
(if (not elevation) (setq elevation ""))
* J' p ], j# H) I) z$ _) u; U) B5 p$ A/ ^ (if (not height) (setq height ""))
1 H2 `- {) U3 D: Z, L& l
# D+ R( H! f! } |1 I$ N. U- X (setq go T
1 O/ d8 b( Y! D; l h2 E" }$ D G0 A chk-col T 2 S: x- I: E; y% u
chk-lt T
. ~+ e9 k' M. l: n4 V chk-lay T * e0 e' n9 B) ?% ]5 N% H
chk-lts T : \5 y) n% O3 \5 @/ T
chk-th T
( U5 j4 i' f/ n% j ctr 04 Y. N% \6 s& a4 t$ z
);setq
' d, o1 F# Z% C' E/ s2 L0 v2 u
* W3 P! L% z$ g/ p: D l ;; Page through the selection set. When a property; @; l G1 B+ T ^
;; does not match, stop checking for that property.
, f8 E: z& ?- D/ h ;; When the selection set is not homogenous, stop checking.- i q) ?' j( _3 X/ @
;; If all properties vary and the set is not a type 1, d9 c: i( _+ C4 U
;; (polyline) or type 2 (attdef/text/mtext) set, stop paging." L" b3 @$ [2 u
# e# D* V8 q5 k- G' b9 C- m! A
;Lets set the eflag so we know if the selection set includes any ) ?# w5 {$ W6 ^) L, B
;combination of polylines, lwpolylines, text, mtext or attdefs., a5 o# ?# M' B
( S2 _, }! Z& Y
;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
+ E3 Z+ I3 e/ E5 j (setq eflag 0)
9 Z% f, T3 D& `1 d (if (setq poly_ss 1 u {! ~0 A* @* k. _' g
(ssget "P" (list '(0 . "*POLYLINE")
/ M! q) X$ F9 f9 F; @4 ]3 C- k0 C '(-4 . "<AND")
7 i0 u) ^+ Z1 Z- c '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
8 q5 v1 S: H7 I; G, }+ {; ^ '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")8 C) _* |- J0 E" [; D! s5 X
'(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")# ^; b1 R5 W+ E5 L6 Z2 S
'(-4 . "AND>")
1 G! ~5 n/ a4 @ );list
% ^+ b6 _* R$ S9 M# f* l );ssget get 2d polylines (legacy and lw)2 V7 j% H- Y) z
);setq
8 }8 Z/ X1 C F2 M( I% C/ g e' e (progn7 X: z5 B4 V. u2 W# `
(setq eflag (+ eflag 1)): N$ p5 O8 d5 ]! {2 h
- y; a1 ?; |3 u0 O6 m$ v# F (setq tmp (entget (ssname poly_ss 0)));setq
9 F* F4 K( s/ A; G7 w) G- j
( t4 a }5 N6 D3 }; L (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
: b1 l4 V0 L6 B (setq elevation (last (cdr (assoc 10 tmp))))$ p2 [5 e* |) I! X+ W6 N
(setq elevation (cdr (assoc 38 tmp)))' ]' I+ W7 r. y8 _
);if! Q& ~& C4 V J7 b/ I" n9 A
(if (not elevation)) _3 S7 _; d m. Q6 `
(setq elevation 0.0);setq i4 c# K6 m' L7 r' S* u5 |: Z
);if- x1 m `# E4 P2 ]6 f7 H6 Y
: [3 p& n7 Z9 ]* H (setq tmp (ssget "P"
( {9 p r0 `! p' a (list 6 J' p2 b5 V2 f. b$ s1 s
'(-4 . "<OR")
- \* N: \) \ ? '(-4 . "<AND")
' f5 P5 g8 N6 {! P" `& U- t4 i '(0 . "LWPOLYLINE")& K* |; W3 o+ v5 G5 T0 G7 v' Y- d" k6 ^
(cons 38 elevation)0 ?! t3 ^& l, y8 p' `9 M, o/ B
'(-4 . "AND>")
3 f' x3 ?. u% Y& }- N: V2 l '(-4 . "<AND")8 B! c1 j! E5 \2 |1 ?" j
'(0 . "POLYLINE")
# J% r( c& Z3 O' |% S2 { '(-4 . "*,*,=") 1 k4 h: F9 ?. W$ h7 x7 U0 o. }8 ?
(cons 10 (list 1.0 1.0 elevation))
* i. B {: j+ X- L' Z( Z0 a '(-4 . "AND>")
0 s9 y4 r: D; C* l7 \% \& b '(-4 . "OR>")
* w) q9 x& I# O& P$ m# \ );list( Z8 V: y6 @4 i% E+ j
);ssget) H) ^" V1 {6 k) x8 `* t: y; Q
);setq
, {' [2 d% w6 M5 I. ]! s, ~0 s
; C E0 K4 e" J, h1 { (if (and tmp
5 s3 t$ ]8 B' C' U! _. { (equal (sslength tmp) (sslength poly_ss))! \/ ]+ P, S; P% X$ H8 v# k
);and
% ?& I( \& r# w. W4 w+ ^! Q (setq elevation (ai_rtos elevation));setq- A% n/ S6 B! V) h' |9 T7 E% A' ?& U
(setq elevation "")/ [ a1 n9 i& K2 T
);if! n9 l, b4 O' Z% I+ |' O3 I
$ n1 z2 U8 i7 V7 h# K- S8 \* G4 i (setq width (pl_width_getter poly_ss));setq+ ?4 }7 H& D# x- m
( M% q0 V# W' S% T' C
);progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
" |/ I' Z% L, l3 s" F );if) R& F- S4 } t9 t [5 V
(command "_.select" selset "")
7 P& {$ p9 Y* G5 L5 B4 k* g; [
7 q9 s$ D/ E; s1 `" N+ b! A2 f& l* b (if (setq txt_ss & @! O) [0 ^! Q' {+ O
(ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
+ t. S* A7 |# b (0 . "ATTDEF") (-4 . "OR>"))
5 C0 X; l/ d# v( U3 B+ w. l )
6 n3 a" H8 N& d5 T; r );setq( ^$ v, @7 t$ m E$ Z) m
(progn
% s/ h! |6 Q) D1 f# D" }, T! d (setq eflag (+ eflag 2))
# |/ [2 @3 ~8 T (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))/ H( M2 d; L/ u2 s o8 c; ^
tmp (ssget "P" (list (cons 40 height)))
8 l0 z0 M5 T2 Y% F* q );setq / M9 s2 y& Q1 j E+ O0 b
(if (and tmp
$ O( }) K b- Z7 C (equal (sslength txt_ss) (sslength tmp)) ( |* \: r; U p o
);and/ B3 C+ z0 X; O" v8 X4 U
(setq height (ai_rtos height));setq ;@rk need to translate from float % U+ d% j* R% \9 y& H7 X
;to string and back again easily* c: u$ R. v) g3 k6 j! ^3 ~
(setq height "");setq else the height varies
" ~8 ?6 L# s6 o z1 S h );if
( r6 Z7 }5 f3 U- U3 ~' F (command "_.select" txt_ss "")
& q3 k0 P9 g/ s1 H- d) r (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
, h# ^, M* F0 a5 D2 n* x3 p tmp (ssget "P" (list (cons 7 style)))
3 _2 A3 V2 Y. t' F. F. p );setq
7 o% @5 {" f; P* @ (if (not (and tmp
3 Y" ?& L: q* T$ b0 _ g (equal (sslength txt_ss) (sslength tmp))
8 W. M$ d* t2 I7 J );and( P8 l- M2 g: |: B/ { L' y
);not$ B o+ M; ]) @# y
(setq style "");setq then the style varies 5 _& e: w" y8 t, ]% w) _
);if
' f- Z9 p/ C0 D, o& H4 W W );progn the text type objects are in the selection set R0 Y; b* g M8 o. u, B N" \
);if- p6 Z) Y ]8 B$ ~9 E
(command "_.select" selset "")
, O; R- k) Y- g: \; \1 g) N6 S) {" n; N6 N. a! d
(while (and (> sslen ctr)
5 l l! B# I! q) Q6 R' l# M go
: {+ p4 _1 e3 x9 Z0 p );and/ u, V( g: o: ]0 g
(setq elist (entget (setq en (ssname selset ctr))))0 \ O* G1 J. w
5 \0 |, m4 j; C, l6 f) H1 V: @
(if chk-col (match-col))
/ Y* Z# h) Z1 A8 ]1 I$ ` (if chk-lt (match-lt))$ S( } o. Z7 t
(if chk-lay (match-lay))5 B }% S8 f" T: \) x
(if chk-lts (match-lts))6 Z- s+ [1 n. w3 W
(if chk-th (match-th))
) L+ _+ O" A$ }: t" D6 Z' a$ r# {4 B0 K8 h* m% X) _- K7 u7 t4 y
;(if chk-etype (match-etype))
: y* d1 Y a# j* H; Y! @
2 |6 t# b. x1 f( {/ Z' l5 B3 E (setq ctr (1+ ctr))" U6 k: v* U7 L3 e% p# z( m
(if (and (not chk-col)
: g, @; s- B h' V) ]4 u (not chk-lt)6 ]0 V! D4 a/ w% _1 k1 `6 j: m
(not chk-lay)
+ I# k% c8 }0 z6 K1 z (not chk-lts): W4 ]0 V5 O, j& D- e2 n+ U$ ~
(not chk-th)
# j3 Y+ ]- i* U" Y ;(not chk-etype)( m# e* ^8 A8 x& \% r) ]/ a ?
);and& M3 ~9 @. R0 O b4 t
(setq go nil)) N: c2 [4 m! [
);if
. S7 s8 f- r; Z) V: R );while
_, b6 R" p3 |4 O+ u6 d
( ~9 Z& Q3 N7 C7 d& c (list color ltype layer thickness ltscale. E9 X1 U/ E# B/ h! @3 W; g
width elevation height eflag
& k8 K `2 g& j style poly_ss txt_ss" X# R& f# {2 }$ {( C& _
)! N% {6 ~7 g( V- O' z+ Q0 N
);defun getprops7 e3 r, l! w, F7 a: b- r
* l% X* x& ~/ h
; This is a speedy little routine to tell whether the polylines in
6 p6 Q4 b; i* I" a: N ;the selection set argument are of varying width or a constant value. 7 x- O2 s# n: C, K( J4 e
;Looping through the vertex's has to be done for old polylines when
5 r$ L. i" r* h! D/ e9 r1 ?5 l4 G ;the polyline header has width values of 0.0. Basically, in this case, $ j6 a! s0 E; n, }- ?, u! `
;information in the polyline entity header is abmiguous. Width values 3 ]( y3 G5 I9 |- I; Q P
;of 0.0 in the header entity could mean the polyline has a constant
* t) V. d" w5 s: Y- Z: A' |1 w& B1 q ;width of 0.0 or it could mean that the polyline has vertex's of varying 7 f5 |% B8 ^0 A/ o
;width.
# B4 q# G- w8 v; L9 u& c ;/ V* k3 b' ]# U e% K
; It's all in wrist. Err a.., I mean it's all in the 'if'. D9 j! [9 {+ [& a2 y% D
;;% R# Y/ d K! Y/ Q% K, W/ z2 \
(defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
/ Z) `' _) U+ J. z- u! W- H/ J, x
I! E! t! {, k9 ~2 ]8 o (if ss 6 X1 o5 f, S: ^1 y
(command "_.select" ss "")
0 C1 |! C$ p, z3 \) i% h3 o9 n );if
& o0 J z5 M3 s7 O/ J K4 E1 r (setq width ""
I7 L# I# \2 g4 r) P7 N6 l flag nil
3 Q, W; N9 t* i, d8 K9 T. T* W/ e flag2 nil
' N1 K+ r- X- f c9 Z/ S0 q; E );setq# w0 e3 u `6 Q" f+ l7 a2 }* ^
(if (not 7 _$ v6 n3 ^/ g9 s, q1 z1 q: j
(and ss
' l( Y& X h5 o: y: [) P (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
! A% M: j* w; {% \3 Q* i9 S (setq na (ssname ss2 0)
9 h7 R# n9 t# T; `( E* D width (cdr (assoc 43 (entget na)))
8 J$ d. I* _) F% v );setq
) F: l0 \4 n1 C& H( m3 o (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
' F [9 a/ k7 C* _ (cons 43 width)' X( K& I+ s2 |9 ?5 Q
);list
" c$ ~% h( p2 s! I: T1 ~% @ );ssget
0 n4 D- k9 W" F) |. x );setq
( p9 [8 Z) y5 W% j$ U$ @ (setq flag T) & h# r2 P: `: p' _
(equal (sslength ss2) (sslength ss3)): a" D0 ]7 p+ k# \! ]6 E& L
);and
3 z3 u) f; M: n. S/ |( w$ t% m f );not0 C6 w0 o3 Q" h8 a# a7 j" t
(progn4 S+ a! _( W! F( T/ { U% S
(if flag
# ]) T4 D, g- R7 J2 ?; w (setq width nil)
, i+ Z: m) v5 u+ h' C );if
3 ~- R. b4 c. R5 g% G );progn4 G% H$ S4 _* `! m
);if
6 f7 M8 f" r+ j2 i N# ^6 u' s0 B2 |& R% U8 @& M5 r, x9 v: `
(if (not 5 `) v3 s8 @! x4 Y- l2 b Q5 u- ^5 y
(and
$ w. w1 d: k9 u5 p ss+ H9 [: C, M) _& M7 u
(progn (command "_.select" ss "") ' ?5 _' d1 Q3 T" C4 r2 G
(setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
* ^7 m: w% J9 I- N( i/ Q )
: q1 ?- F5 c4 e) ?2 w* O (setq na (ssname ss2 0)
3 ]- W7 r7 v) r9 S2 Z e1 (entget na)
& g/ l4 \4 G3 N% I3 `. Q width_a (cdr (assoc 40 e1))
3 O7 N1 f I4 i0 M6 V+ Q width_b (cdr (assoc 41 e1))
; c, G1 Q1 u2 ~4 q );setq
: c: c/ G+ n3 |' G: M (equal width_a width_b)9 m3 m! V4 C3 j: L, D
(setq ss3 (ssget "p" (list '(0 . "POLYLINE")
) T- c0 a% X( o (cons 40 width_a)
7 b ?/ v$ B2 d: T0 B L+ | (cons 41 width_b)/ ^6 r: B$ g: T# k5 n
);list8 p, a' V, n; J
);ssget
* ^# v" |( A& o );setq
9 w* M* W$ M# [0 h. I* { (setq flag2 T)
- r& e3 B' f |; C (equal (sslength ss2) (sslength ss3))
2 R5 g$ Y( D7 s0 T/ a" U k );and
- C( ?5 y- B* j2 }' P );not
8 U# f6 X; V, t6 @ (progn
+ f* w3 Y; V- N- M1 K (if flag2
* u5 `! a& Y; Z5 N, K2 t9 ~+ X; G0 n (setq width nil);setq2 r- I: u" I3 T# u$ F7 x1 I9 C+ F
);if
6 z8 M* q4 f3 a );progn then; _9 f7 Y% ]3 W @0 @: n2 x' Q. W
(progn
6 T# s) l7 F( Q# K& s! y+ y& u3 M (if (or (equal width "")
# d! G8 L9 V9 _) N1 n+ G (not flag)
1 G8 M7 F \+ V/ e" s$ I/ G );or3 G: F( K: ^8 L2 Z! u
(setq width width_a)( @% B% ^$ C. W* }8 ?. Y L
(progn) ?5 Q7 S( }0 S0 W3 N/ m7 r5 R2 C$ Y
(if (not (equal width width_a))* E, [ ]8 ]; ?8 c- ]
(setq width "")
' K# y$ u1 W9 S* D6 v );if
* d/ t- N- z5 `1 ~ );progn2 o: i Y, t$ ]* ?/ ], P; x. [: r
);if
/ E) B% i D6 E9 Q0 K6 E );progn
. |+ a. Y- I" |) f7 a0 Q );if
0 i4 P4 ~6 w$ K: }" X: ^" T2 y3 \8 r5 D% |
- w5 k% }( g9 D9 _
;now for the special handling for old polylines4 v6 K) B1 ]& k3 I7 {
(if (and width 6 e* j! I" P/ R# n
(equal width 0.0)
) l+ P: e" I% f2 a flag2
" \5 Y6 H" v$ D3 L6 S# u- b );and 6 ?5 y# k4 `' e( I- r5 J3 [
(progn4 w9 Y m4 _9 {
2 C' W$ L$ P) J& T; W) o1 L# D (setq n 0);setq
& f3 R( }" ^3 ]* R0 k I (while (and (equal width 0.0)
/ h4 c1 v0 d8 ~, g (< n (sslength ss3))5 u; c, {" W, ~9 {, ]# [8 S/ d
);and6 q& f0 [" e$ l- x& L L- G
(setq flag nil
6 ~+ `5 ^) s. k' u/ @. q* ? na (ssname ss3 n) [0 U }3 X9 U9 Y9 @4 ^4 i; G
na (entnext na)
! f/ J' V8 g2 s1 \ e1 (entget na)2 x5 v* L/ Z4 o0 z- C. ?
);setq
8 \' w+ W3 f j% W1 l- j4 U; L (while (not flag)
6 I& [/ K$ _& F2 s$ P (if (or (equal (cdr (assoc 0 e1)) "SEQEND")( c+ p' I" L5 D4 \2 R
(not (equal (cdr (assoc 40 e1)) 0.0))+ ~1 A) x* ?0 U6 H8 v5 \* x4 J; k
(not (equal (cdr (assoc 41 e1)) 0.0)). P2 Y! u1 o+ i
);or) }0 ]+ O7 A3 T; W( ?
(progn
& O) Q, d" H. R: L8 [ (setq flag T);. A5 F# O4 C3 D% V
(if (not (equal (cdr (assoc 0 e1)) "SEQEND"))5 b4 `' s6 G2 ~- E
(setq width nil) 5 s# F7 {4 Z0 a
);if
; {. Q7 D+ e j4 n) ?; \0 W );progn then jump out of the loop
: {2 a2 w$ b6 S* m) y (setq na (entnext na)9 s0 o w+ Z! R6 _7 P$ _
e1 (entget na)
4 A; P5 R' q* f) S: S );setq % F) y6 `* y/ u+ e+ \) ~
);if * v% K8 b' F2 ^3 t6 a: Q
);while& S3 D' f+ |. n* Y' V+ X2 _9 r {
(setq n (+ n 1));setq & O& E9 d1 R/ G" \) V% @
);while
9 U' U1 s* d/ i1 m! t" W3 J. {
9 M3 S! @/ f8 Z$ n' ` );progn then it's a legacy
' t/ y! Y. |: U3 [+ A );if ;legacy polylines that may have varying widths 1 m4 |- L1 E( I+ O
# a) X! F* ]+ i
(if (not width)
; d4 V \* c# F! E& M. Y (setq width "");setq3 j! g# R$ ~5 k8 x# L1 m
);if
! L3 P5 W/ K$ |. A8 t+ c (if (not (equal 'STR (type width))). B+ d- S& K$ t* Z
(setq width (ai_rtos width));setq
) G: } v% v8 q7 N4 @& b );if
1 f% R$ M- f4 ?5 z0 ~* q! H
% N$ i8 o3 Q& ^ width ; b/ h: g, c6 ~2 f$ h
);defun pl_width_getter/ K2 J& K% ~8 L1 e. |
: u7 N8 E) Q" q' [9 F) z
. g# l6 {4 E( P7 p* w d( ^8 c (defun match-col (/ ncolor): U: Z# w* V# J3 ~/ a: }: O8 d) d
(setq ncolor (cdr (assoc 62 elist)))* }5 q# `) c5 A. @: ~9 _5 N- s& B
(if (not ncolor) (setq ncolor 256))- `4 P' z3 V0 }/ c
(if (/= color ncolor)! _1 s* G3 p Q: m1 r5 c
(progn4 |- |( W! P7 `) t }8 v1 I/ B
(setq chk-col nil)
2 U2 U1 |! Z a; G; a (setq color nil)) O8 E) b# I+ m- N, z
)8 c; {0 u% h: ]$ M* G9 @$ H
)- L4 ~/ t7 W5 O: l
)
3 d: _1 }9 ]/ U
$ ~6 U# u* C+ k, m/ z( ?( d (defun match-lt (/ nltype)! k- p4 e/ C5 B4 ]) B2 A1 Q1 O9 [
(setq nltype (cdr (assoc 6 elist)))1 z& Q& ~2 y4 N8 J
(if (not nltype) (setq nltype "BYLAYER"))
+ i2 ~* L- L4 a$ u (if (/= ltype nltype)
1 l9 T! G3 k. N3 j8 R. T& v. ^ (progn2 W1 z( ^+ U' i
(setq chk-lt nil)/ r" F1 o# ^, [) f
(setq ltype ;|MSG0|;"Varies"); T H+ h0 I7 D7 ~- q3 i9 N# d
)
( j# W: |2 `+ j )
% K/ [- q7 X$ L, d4 q M2 U" K ), }! b6 |# W& K A& h
+ K5 \* i6 ]' i( Y4 y; ~
(defun match-lay (/ nlayer)/ e: N% F2 m5 o2 g( H6 f
(setq nlayer (cdr (assoc 8 elist)))' R! t7 x% ]2 ~% W
(if (/= layer nlayer)- @0 a' c( ~, }6 G `
(progn
$ u$ r/ s0 Q8 \- [$ c (setq chk-lay nil)% |3 D4 P5 I3 }& n" o' B) N
(setq layer ;|MSG0|;"Varies")
) F6 ~7 R/ d8 `" h! S6 o )
9 ~; g- V6 F" L: p! a3 ^0 D: `( e )
' c$ z: ~. e5 w )
+ b1 F+ x; s5 y I, S) D$ F7 Y6 ^0 o
. k6 w' P7 S3 W! Z/ x( X4 ]8 d8 s (defun match-th (/ nthickness)
1 O3 o: o" T0 [. I! _) N (setq nthickness (cdr (assoc 39 elist)))
) d- y: g% g" u9 |# r4 V/ N (if (not nthickness) (setq nthickness 0))
) z" X* n- U/ u5 L" f/ { (if (/= thickness nthickness)
) x! j t1 [, n8 v (progn
8 R9 y/ X% A- V# {4 h! p (setq chk-th nil)
: p* w! C: D: D9 k0 J% y (setq thickness ;|MSG0|;"Varies")6 d# A$ m4 e& E9 F; b6 F* I5 g5 S3 m& X
)
# n% _+ d5 F2 f, t6 G2 R% [ )0 k$ R/ m% v! w7 u4 ~
)1 V0 T( ]" Q( X. o3 j" v7 ^6 c
1 m2 v/ t+ F0 w (defun match-lts (/ nltscale)
' J5 U+ b7 a( z( U+ x5 K! d (setq nltscale (cdr (assoc 48 elist)))+ z/ ]9 ^ X, x8 Y% P
(if (not nltscale) (setq nltscale 1)), g5 H; a3 N" o6 M1 o) Y( ^
(if (/= ltscale nltscale) ]9 m$ k/ j4 J9 c0 K- |" y7 Y. d
(progn' v1 I2 _' t& d4 K1 J% F/ d
(setq chk-lts nil)( J* O6 g: E8 I* Y: j. O) \
(setq ltscale ;|MSG0|;"Varies")
! I W5 \+ `7 P" M# q0 i# ~ )" F- W( }( O: C/ [0 u% q6 e) s9 G; J0 f
)
/ K/ T- o$ Y* D* E2 _$ w1 @# J )
0 M n3 U' L# ] n+ \& V6 ]2 g" i+ |2 [+ s9 C) P4 U+ W; w
;;
3 ~- p& D% K. q) D( U ;; If an item is a member of the list, then return its index number, else
9 U$ Z# ?0 m) [5 F, b/ p0 p5 i ;; return nil.- g/ k5 s3 {2 h' y( f
;;
2 R: a* F9 `( X (defun getindex (item itemlist / m n)' r( E9 S0 p8 S8 p, U
(setq n (length itemlist))
# n* r% h" |! n8 w; D8 @ (if (> (setq m (length (member item itemlist))) 0)
+ C: z; f6 @/ n5 f: `- p (- n m)
" @. B7 B- E8 d1 R! H) }5 ^ nil% L) f0 f% T& I7 D! T2 D g0 x
)
$ M# B! ?% @8 x" R9 w )1 j0 x6 U5 z- l1 r, ^* r4 w7 _
;;
, X# D P& P6 O/ ]& t2 _ ;; This function is called if the linetype is set "BYLAYER". It finds the
$ N' i3 @1 ]0 @; L. O: A. x' F8 t ;; ltype of the layer so it can be displayed beside the linetype button.& f5 O7 i8 x4 S. C }9 t
;;. g" b: ^( t' G v1 d+ m
(defun bylayer_lt (/ layname layinfo ltype)
) m) \. _; |. M3 G (if lay-idx! ~6 o4 ^- }( K: G# _( \$ @" k( g
(progn
) U( u5 u: ^/ d (setq layname (nth lay-idx laynmlst))
/ [9 n! P6 l$ p7 u (setq layinfo (tblsearch "layer" layname))$ K; \) D. Z, n3 R1 S5 D" P0 [ g; G; r
(setq ltype (cdr (assoc 6 layinfo))). n" `/ g" v ?9 R7 l, C! Q2 _
(strcat "BYLAYER" " (" ltype ")")
+ g9 R2 Q: h& T0 e )" ~+ j; Z4 V# V, F1 L
"BYLAYER"
7 O1 {5 |) P4 w$ M; S/ K )
, v" Y; Q1 }2 C0 s6 n7 w. A )
% ]/ O/ i& k0 A E; z# N9 E- i ;;
_+ D" c, X' @- i1 k. j/ S ;; This function is called if the color is set "BYLAYER". It finds the0 K6 I' R! Q/ R# ]7 t3 {
;; color of the layer so it can be displayed beside the color button./ Q! M/ z0 i. T/ v9 I
;;" L2 Q$ w$ d$ h
(defun bylayer_col (/ layname layinfo color) ^# ~: k& `1 I+ }6 O
(if lay-idx
1 m9 T/ t7 n2 R" S6 ] l6 G (progn% u) N, L; A) H5 d6 k
(setq layname (nth lay-idx laynmlst))
8 [/ T! L1 k9 y4 t& X1 S (setq layinfo (tblsearch "layer" layname))
' a, ^% S5 h# H5 p" c (setq color (abs (cdr (assoc 62 layinfo))))
4 [7 M4 U6 R8 H8 b (setq cn color)8 J$ l. u9 L5 R& y9 Z5 N" w
(strcat "BYLAYER" " (" (colorname color) ")")
( p4 Y* J3 j, D )1 ~2 F' Y2 p$ I7 V, }8 s
(progn
8 X& u3 }; x9 V0 V (setq layname elayer)7 R: i6 n5 w0 I! }0 W$ X7 G
(if (and (/= elayer "")8 t" |+ S& o R6 ]8 U
(/= elayer "Varies")
' D9 E8 {& r; f0 z/ n );and
* r) z1 v& c! ~2 Q X' c8 g (progn
5 u. E" Y$ w" F5 C( L (setq layinfo (tblsearch "layer" elayer))- w; C1 D$ f. a+ b: d
(setq color (abs (cdr (assoc 62 layinfo))))
1 l/ y* q3 ]+ |& ?' ] (setq cn color)/ O/ `9 }5 i( Q4 C. t( H3 X
(strcat "BYLAYER" " (" (colorname color) ")")1 B8 a7 }" ~4 E% s5 Y
)
5 m9 t: C4 G1 ], p( S/ u) A (progn. e, k- z! [( v% d7 E) V
(setq cn 0)6 e$ t( r7 u* i) @9 e
"BYLAYER"
: ~: I2 g6 u! o )# O# c l* q- l7 h! J2 @' Z
);if2 @! P, U* C# Y( w* `0 R4 i! L
);progn6 v& b! H# \- p( B
);if
' A, P$ j& w0 T" N- P$ s3 B )7 E5 y9 F+ A% g3 b" D/ i0 {5 {
;;
+ ? C0 T6 M* n3 E$ x. X9 i" l/ b ;; If there is no error message, then close the dialogue0 @$ i3 o- q9 ^/ q" {6 h
;;
3 d/ h6 O2 I l5 R9 @) ~8 c ;; If there is an error message, then set focus to the tile; P* u9 R3 t' s6 M e0 W
;; that's associated with the error message., J9 t/ y8 U5 ~6 r0 x
;;
' n: ]- @: K/ G( | (defun test-ok ( / errtile) l* m( |) p$ t. Q* x) i$ `
(setq errtile (get_tile "error"))
) l% A) E B7 ^) @ (cond( t4 \: }+ h( E' I) C, \# G4 t
( (= errtile "")" U7 w# f6 u/ h5 V. i& ^
(done_dialog 1))- J* \4 `4 a- R2 ?. N ?* w
( (= errtile "Invalid thickness.")( m- R9 J# f- W2 n/ t
(mode_tile "eb_thickness" 2))' S0 ~* z9 F" t, X: ]$ o* L; C
)
% A$ n2 ^" N) R+ Q )" a; P' x+ W# |0 G' P2 Y* U
;;1 w8 _/ ^0 i9 G, T+ ?: n; R6 T
;; OK in main dialogue.
0 ?! |! p! L/ J# h/ Q ;;9 L6 M& W( i1 A# `) P7 i
(defun test-main-ok ( / flag)* q0 K6 V5 f! \6 G& }
(setq flag T) & I% \* s3 s1 a! o/ |
(if (not (or (distof (get_tile "eb_thickness"))
t* O* j$ R$ J9 d4 _ (= "" (get_tile "eb_thickness"))
, [9 Q K+ j& C9 j7 X5 n, O );or- b' z& ]+ B" K1 k) h
);not
- E; A4 ]6 x" j# M B8 j3 n (progn
7 }* x7 r$ R6 W, z9 F% S (set_tile "error" "Invalid thickness.") Q b* K2 F7 j O
(mode_tile "eb_thickness" 2)6 ] o1 V* m2 |9 y
(setq flag nil);setq
' j- S) {, p! _* g7 I6 I# y );progn7 x2 ^# k6 P3 H; n
);if& W! B { k$ e; Y1 B
(if (and flag
0 T& Q" B3 {6 M# \6 V (not (or (< 0 (distof (get_tile "eb_ltscale")))
! i2 k# O% W# [+ k+ X7 t6 ` (= "" (get_tile "eb_ltscale")), e! V; N/ Y G6 N9 j% e
);or - K9 q9 E( ~, b& c- u5 O
);not
2 s7 l! S4 n0 t m* b1 ] );and
, _3 A0 x. A: ]8 e F2 Z9 ? (progn; b& O: t' l5 i3 d1 o/ L v
(set_tile "error" "Invalid ltscale."): h$ H/ m/ ?% e
(mode_tile "eb_ltscale" 2)3 B) |" ?* Y f/ {" |5 g; O
(setq flag nil);
6 F% k% g" ?4 Z5 b. m W );progn then
9 R& p4 t7 u' X8 I w );if- v' J) B& F2 o9 D* R& n
(if (and flag v" ?4 V. {' c6 g- W" H
; Don't test the tile's value unless it's enabled.! n( Q4 d# c: O9 d
; We're not set up for the display-only value2 _2 n- R5 g: r! a
; of "" here in the error handler.
1 J4 H" q' X% c0 n2 R& ^! s (= 2 (logand 2 eflag))( i( e6 B6 B7 G' F/ m
(not (or (< 0 (distof (get_tile "text_hgt")))- m6 D! B6 {# P7 M0 Z! _
(= "" (get_tile "text_hgt"))6 ?! l1 Q5 r/ {5 v" R- ?! Q
);or/ K: z3 i* r/ A# w7 @
);not
7 G6 \% W2 D1 \ );and- i& X7 D8 h* }" A- ?
(progn
' d* J7 ]- h) v$ V3 T) k8 B (set_tile "error" "Invalid height.")$ N9 ?0 x# F8 Q* e1 o; A' O, n
(mode_tile "text_hgt" 2)" w$ t2 f% ~! K; T0 F, }
(setq flag nil);
, B) X, _) W" |' H0 M2 X );progn then; ]! @ f8 P/ R) f
);if l. P5 X4 U1 z3 L4 c+ F
(if (and flag8 q, g8 ]4 `6 E V) S: ~; Z
(= 1 (logand 1 eflag))- ?" q0 w+ A, k7 C: n
(not (or (<= 0 (distof (get_tile "poly_wid")))
, Q' f2 U8 t& ]3 Y8 _ (= "" (get_tile "poly_wid"))
9 v. B% H ]0 _) c );or
+ T& j" b" I( Q5 c6 _4 l& B$ k );not
3 E7 b, ^; D0 x: A: j% E# D' l );and
- a5 _2 n' K- G: }- l* L) b (progn
0 U: K8 [1 r3 \6 a (set_tile "error" "Invalid width.")
$ `/ C3 w. R7 m. l: K (mode_tile "poly_wid" 2)
0 T- E; u+ F- B& T5 t! c (setq flag nil)& D+ C3 F, |# J
);progn then9 v' J" G+ t& d" r
);if ( ]! E! [; n d( R: W; ?3 g6 E* L" Y
(if (and flag
h1 @0 [: |: _$ h" y3 _# n (= 1 (logand 1 eflag))! ?+ [4 D7 j* y
(not (or (distof (get_tile "poly_elev"))( b" X( {+ @" J0 Q( q
(= "" (get_tile "poly_elev"))' r3 A" \. W; c4 f
);or3 H8 T; c) s9 @; b# M7 ]8 m* u `
);not
E1 ]9 @" X3 A, Z4 V );and' J# d [, I# T; y/ M
(progn
$ [2 F; h7 C( q) o8 E, ~ (set_tile "error" "Invalid elevation.")) p1 J) v7 g( j% s: `# G3 a
(mode_tile "poly_elev" 2), p8 t2 e2 O! A {4 M6 ?
(setq flag nil)
* i6 d9 P5 M: P; }# L- D2 v );progn then
( ]* J, ^5 j2 s. S2 S, q4 i );if
1 H6 u7 f% \5 U2 o (if flag # h5 A) P, b7 n7 r. c( @
(done_dialog 1)8 P# x" r+ k; p7 E1 `: J# z/ n$ ^
);if0 i% s' t! f5 J9 ^
);defun test-main-ok
1 u# x( L% C, d! @+ l% y
( w N8 |! ?8 R# m6 f ;;' I* l( k5 Z) L) t2 v
;; A color function used by getlayer.0 w" c/ f* ?: r/ p
;;
6 i* z$ W4 c7 n0 N0 w1 @, U" l (defun colorname (colnum)- J5 g; t7 R' a8 U: U
(setq cn (abs colnum)): i% S1 a% J+ Y
(cond ((= cn 1) "red")
3 f( h$ L& m9 o: A ((= cn 2) "yellow")
4 a) h' o7 J# P8 r2 N ((= cn 3) "green")+ {2 j+ D* B! s( I2 e$ `' Q2 T
((= cn 4) "cyan")/ @# C- P( A% f5 n$ i3 k. v$ N
((= cn 5) "blue")
3 @+ \- y9 T5 v# w9 {6 F ((= cn 6) "magenta")$ S, f" k/ X, X3 J
((= cn 7) "white")
& ~; P7 k7 }& u" v3 }8 P (T (itoa cn))
$ h1 }& R @: k% @- A4 e4 M3 ] )9 K5 F' P( F3 Y6 K
);defun7 e$ [9 Z3 e3 k2 @
( j( N) Z+ V: W/ r. D;;; Construct layer and ltype lists and initialize all
8 \+ ?6 O/ k4 q2 q6 m) m;;; program variables:
* ?: }) e% k+ T
. u q" r' X6 Z: T8 s" c; (makelaylists) ; layer list - laynmlst, N' o9 `1 K( j
2 Z/ N: @2 F9 G6 V5 o6 G. W
1 A* R% I4 S- d& D1 t$ P
(makeltlists) ; linetype lists - ltnmlst, mdashlist
8 F, x$ B6 ~) \9 s
, F5 G# I: H* b5 a ;; Find the property values of the selection set.
" a' c/ H: a2 v% a' d. v- {7 `* C/ }3 A ;; (getprops ss) returns a list of properties from
" {. f9 I! n+ \* V ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).2 V$ \: C1 E" u/ x7 O
9 o3 Y3 n& p' O* i: g! t5 I9 \ (setq proplist (getprops ss));@rk interesting things happen here
( z: e# V+ K* h- L3 m# l6 @$ ^ F l5 r T3 y* M
(setq
* W2 Y; }7 |2 a) D1 _ ecolor (car proplist)
; d* V- _% Q+ _7 } eltype (nth 1 proplist)
! p6 y' E1 L0 Y; k elayer (nth 2 proplist), `% R% Z* a$ V
ethickness (nth 3 proplist), P- t, o! T8 D9 T7 Y' s* h+ H4 P! c
eltscale (nth 4 proplist)* C3 K$ C" J" a' X4 t+ a% }
ewidth (nth 5 proplist)" G# V, M+ k; z8 U8 L1 A/ d" K2 X; q
eelevation (nth 6 proplist)% a% j, N& }$ _7 X% Z
eheight (nth 7 proplist)) C6 _6 k7 D6 w4 [" q' h z, q: b
;etype (nth 8 proplist);commented out and replaced with the line below. RK.1 p4 E# L" Y" N; X
eflag (nth 8 proplist)
s" S. c( p1 k: d* t. X5 t& y4 f estyle (nth 9 proplist)
5 [4 s' f+ B: N poly_ss (nth 10 proplist)% j+ g, D! g; q& o9 K P
txt_ss (nth 11 proplist)& t2 f! I! Y8 ?6 z! [6 p
);setq
( l, x- j% e$ _. |( |! }: l6 P8 K5 Q3 m
;; Find index of linetype, and layer lists$ s! \# q! }4 o
(cond
( a8 D+ V, k" w* h8 `* k ((= eltype "Varies") (setq lt-idx nil))
! }6 ?: B* {* ?5 {! L+ q: U ((= eltype "BYLAYER")
( a+ l1 J5 H) N* K8 x (setq lt-idx (getindex "BYLAYER" ltnmlst)))
/ w8 a1 ]# ~ Y% K ((= eltype "BYBLOCK")
0 n. _- n3 l' f2 N (setq lt-idx (getindex "BYBLOCK" ltnmlst))). X, z3 Q/ q( i* E9 t6 V& R, D
(T (setq lt-idx (getindex eltype ltnmlst)))
! E9 m6 [) I6 l) ] )
' X2 K8 i6 D$ q. b' m8 h5 k4 y (if (= elayer "Varies"), Z, ~- K6 m0 R
(setq lay-idx nil)
~% e/ L. x. h! R2 _" p0 Y. M1 @6 {- c. o7 U (setq lay-idx (getindex elayer laynmlst))+ ~4 X4 ?+ Z" f; g/ T% E$ `9 b
);if( X5 B1 @: j5 o0 V: n* O5 w' j
(if (= ethickness "")
& l/ n! M, t4 b% V6 J3 x( q, L7 ` (setq ethickness nil)
+ q0 m& q f3 J6 b* r );if
, Q0 [3 u+ x: p (if (= eltscale "")1 E4 A) U1 D+ p' x2 f, V
(setq eltscale nil)
6 w1 Y, k6 n5 x );if
4 D7 s5 Z$ X: ?! G" b: J e, t$ a: A- F3 [5 f0 K: h! z+ a
);defun ddchprop2_init ; end (ddchprop2_init)& K+ p g( d) h0 o; {4 s% x* z9 j; U8 E
, L3 h$ q7 o8 y# \1 A. r6 ]
;;; (ddchprop2_select)2 J, H" b, x9 F5 _% }
;;;
: X0 W7 p c; `;;; Aquires selection set for DDCHPROP2, in one of three ways:) }1 i0 D% r5 q. ?6 I( v* l
;;;9 Z( \ G3 A% ]! N _& r8 t
;;; 1 - Autoselected.
2 ^( V: @6 C5 S;;; 2 - Prompted for.
) a6 d; L: U4 O; o5 |8 N;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
$ y( f3 s) ^. };;;, x# v% Q. I& O
;;; The (ddchprop2_select) function also sets the value of the
. p1 S4 P0 ?1 F3 D) H; ~;;; global symbol AI_SELTYPE to one of the above three values to
8 l: p- a3 L0 _1 z; w;;; indicate the method thru which the entity was aquired.
, z6 Y; w6 B' B, F* X8 O+ `$ Y6 e7 y0 d: W4 m
H; ~1 H1 T' z! t
(defun ddchprop2_select ( / )& n/ A i* ^: M% ?/ ], n
; j6 `' z& ^- L, A0 E# I' h* b
;returns only entities in ss that are in the current space.
9 x6 ]2 T) P, O; n, v(defun ss_in_current_space ( ss / a cur_space ss2)
, O3 l9 I! b e% f- e4 d5 ^, J1 t& l7 j; w/ l; Y
(if ss7 D+ ^# ]. W' {+ A/ |; u) }
(progn
, ?( t" ~* T* ^8 R (if (and (equal (getvar "tilemode") 0)
! q w3 W' u9 W (equal (getvar "cvport") 1)# j% C, R b" L
);and ) Y+ U) J. M0 u1 B3 C: `* u
(setq cur_space 1);then paper space is where we are.+ s: H) G) O$ V5 u6 M
(setq cur_space 0);else model space.; _, ?6 `/ I* L! c1 I3 S, r9 M4 N
);if
; k9 U* t! b, i6 h" P (command "_.select" ss "")
' |/ v* f( S% p: T (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
7 L4 _- g& D/ [( j2 Y+ G* | (cond ;;;;;tell the user what's going on.$ J& K8 o' t2 A: @4 k, M+ h2 c
((not ss2) (princ "\nNo objects found in current space."))
% N/ q2 D% v `0 d ((not (equal (sslength ss) (sslength ss2))); y% F, C. E3 Z* Y
(princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))9 A9 V# ]8 {9 t; X$ w: f
" object(s) were not in current space."
7 O+ U ~# k$ `7 {! G$ c5 A )7 l" d% ~- X3 k, A& @1 ~2 ~* }8 M
)
( P- a# k0 G' d: ~ ) # G& ]2 w6 x" P* H, l0 s
);cond 1 _" I% E# X* E# b+ D% e+ C$ S
);progn then
, c5 g6 i3 U# }& N: u, o );if
+ o* y$ i3 }* J* g2 A ss24 {: i6 p% A* W. j
);defun ss_in_current_space
+ U p5 Q: g, i4 Q/ A) t3 O. s0 e- `& T; p% S5 b$ D
! _$ L7 U8 e- L) C( P& f
;;;begin the work of ddchprop2_select# u. A2 ]7 h. A0 C
' d/ ~! ^- i! Y
;; temporarily restore original highlight setting.
9 i' n& E z$ k2 n% x' W& } D: T (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
2 _& O5 v: ~2 X, W; t8 s, w (cond
) ]$ ^( }* Z" n4 D ((and ss
z! b9 A t3 s; r* |$ S) G } (eq (type ss) 'pickset)7 | V2 L2 B! `& A2 v0 A! n+ t
) ; selection set passed to
) A8 L( f6 P0 m (cond ; (ddchprop2) as argument
* s. C( W/ b$ u% o9 M+ S ((not (zerop (sslength ss))) ; If not empty, then# c; H5 _. Q5 G, H' S: g
(setq ai_seltype 3) ; then return pickset.
- K* S- Y' S/ [ i (ai_return ss)2 @ |& g- ~' r5 e: r2 u6 R1 \
)9 e0 h: `$ @' m* N
);cond close8 Q8 c' q! \ a& Q
);cond #10 s9 ]/ U# W5 u: u8 H8 S3 Q; z X
((setq ss (ai_aselect))) ; Use current selection$ t! }% n% o. I4 Q8 P
; set or prompt for objects/ i, p# V7 M, B P0 o" ^
(T (princ "\nNothing selected.")6 T5 O4 C0 P' i: Z. l8 X% L
(ai_return nil)6 D5 ?. ]$ q) g- c
) `5 h2 ?0 X4 ?' c6 X4 K
);cond close
. J( j& A1 w: q" }$ C* @ (b_restore_sysvars)9 v' J9 ?% v; X
9 v* C# t7 q9 ?
;(if ss4 G$ J# |) T7 H/ x# s
; (setq ss (ss_remove_locked ss))
8 }4 X/ V' [7 G8 p8 s* N! L ;);if3 G3 I! t$ }5 }
(if ss
; v$ W9 k& ^9 k9 o (setq ss (ss_in_current_space ss))
# E J8 a9 [5 g' P0 b );if
5 _0 j, Q) Q- {( W% u: O: P0 i$ Z/ C* c. q
ss" ?! g5 t8 Y% G* O3 f1 u9 P# _6 N
);defun ddchprop2_select; W; b, X: P0 d" G L2 V
" K/ [/ P; |/ h. B$ m$ H e: Y3 e" B; w( K7 E
;;; Define command function.! r7 n; s: k. p0 {$ e4 w! I
(defun C:CCH ()
3 F! c& u$ l# k (ddchprop2 nil)+ s! }/ H& j: u: ?
(princ)2 W$ g9 ?7 u4 I: C+ N) q/ F4 M
);defun3 {" ^/ r" v. K; f
, f) x. n8 p9 U6 d
( ^7 F5 K$ x2 A; h3 R6 V8 g;;; Main program function - callable as a subroutine.
# o% o/ W" V4 Y( f4 v3 P2 s' x;;;
) y9 Q! M9 q0 e: o. F;;; (ddchprop2 <pickset> )
! p) U6 F! Z/ z, }" T8 W3 j;;;" V3 P+ c' P, |+ b I2 s0 e0 G
;;; <pickset> is the selection set of objects to be changed.
+ M+ _" }/ r. i: v;;;
# C9 K% @, g7 x* i" [# n;;; If <pickset> is nil, then the current selection set is+ ~! j* l* K* K0 c
;;; aquired, if one exists. Otherwise, the user is prompted
: D' ^6 {* i5 }6 D' v- L- w;;; to select the objects to be changed.
# y; n& D2 u6 s' n/ @;;;( [; z0 s z3 s
;;; Before (ddchprop2) can be called as a subroutine, it must
* `2 c8 b$ |7 j2 t' T% l;;; be loaded first. It is up to the calling application to2 g4 h* N: q j0 W% ^% h! Q, C
;;; first determine this, and load it if necessary.
0 v5 r- ^9 Y( S& W
3 K/ |- Y- J" b0 Y! i/ c& `9 H3 `(defun ddchprop2 (ss /
/ i: y$ ^& ~& T2 z/ M9 a8 P: a% H$ Z. ^5 Y7 i
a9 c% S! t8 j0 a6 d. E1 S; J
add-mdash
1 |6 Z) c! q1 p# F! z3 ~1 d assoclist* C' D; Q/ x2 s( x/ }
bit-70
3 o9 j8 n* D m7 W boxlength- i/ V: a6 J# N/ u2 X# X
bylayer-lt9 c% _- O5 ?4 Y0 n7 J
bylayer_col
* c! L5 C/ F# T3 f' r1 W4 D bylayer_lt) B* h, J" F" \! m- }
call_chp2
7 N- b0 Z& K; E$ H% K chk-col
; D+ }3 U! R+ |5 ]2 s ;chk-etype ;var removed by rk : ]5 X: v8 H3 \2 A, C: }. F7 d; v
chk-lay ( G9 ~' E8 H0 V
chk-lt. _$ s6 O# [" H6 C3 N
chk-lts ;var added by rk
- S2 F% U- \3 n$ _& | chk-th
( n: j2 F2 j1 c8 Y" N9 J. t cmd& m3 w- T0 X& L$ u
cmdecho
# M- G1 F; e( }( ^6 B' |7 \& ? cn9 ?4 N s/ A# W' l
cnum" `$ s% ]0 g) h* F H) s( u
col-idx
. d" ]1 k" w4 o4 ]' S col_def
' T X) x2 Z* f+ y0 @* t col_tile
1 Z4 l( R5 |( T/ o+ O1 x colname, C ?% [1 B5 J1 }% Q' V+ F
colnum! o& V0 P7 \) p' h/ j5 K
color
! S' @* V3 S0 _" U colorname
/ O; M. w7 E. `( p" v4 L cvpname
8 v! H# l9 d) @+ C/ Y dash5 U$ b. E' `: E' B0 ^& j
dashdata) o) y2 }# w& t$ z; N4 ~0 P
dashlist
+ v/ D9 X( J Q# f dashsize* T k0 t- x4 W
dcl_id4 `$ `0 X8 a% A, T2 z& y
ddchprop-err) r; b: [6 ?- V" X, {% K
drawpattern- e& y0 j, y5 u+ e* N
ecolor
% E6 C2 G/ x/ l7 Y eelevation( \9 e2 r8 U3 \$ p8 N8 V) |" `8 A
eflag6 W5 g J: S% S- F6 j% [5 ?2 a, L
eheight9 d8 c# C: b- b J3 n, `) d
elayer# ]' B5 _ |* q/ c, w
elevation; L# {+ Q/ s$ b8 g6 D* a
elist3 Z* ^) S/ O- V+ m+ h7 B9 j' ?. k9 \5 i
eltscale
9 ^$ f# j" H9 ?7 z0 j, b eltype
' Q$ {; ]+ K( B en
( _" f# Q" ? M [0 K: Q9 ` ename
/ a9 L; O1 V# {) j4 f5 ? ESTYLE ;var added by rk9 u7 c+ H- \, G- A: ?1 o+ {8 X* k6 {9 {
ethickness- d9 Y$ j) Q. s' M
;etype ;var removed by rk, \2 z+ q6 }. z# n
ewidth6 H) S! }* k6 i2 e
fchk
3 d3 \; x; w" a" n% a, u frozth( C, W& Z( O" P9 |
fx6 o1 L( ?4 D6 J8 Q4 }) z
getcolor; ^) P9 Z' o5 Q6 e# G% a
GETELEVATION ;function added by rk
7 z- U$ x1 u9 C$ ]- _ GETHEIGHT ;function added by rk
( W' X& |7 d' V, m8 d' c0 b getindex" g# c9 m2 ~& Y( A' u% w+ E
getlayer" a8 r1 o8 [' U
;get_locked_layers ;function added and then removed by rk
q6 X* `) H0 y8 q( G0 [( @& N5 R getltype
1 i p5 ^: c$ \; p" {. }1 ^ getprops* H2 R( \( T% Y" r9 {; }
getscale ;function added by rk
; D; p [) R2 Z3 j. T( E GETSTYLE ;function added by rk/ X1 G1 }5 l* X2 m
getthickness
, D! s3 a; G/ o9 ~) g* a6 h0 u GETWIDTH ;function added by rk
3 ]7 v/ L* L& k9 A# b8 Z# ~ globals# A2 W m$ Q, R* \) E& C
HAIR_STYLE_LIST ;var added by rk
- S+ C6 C, }; ~( b- I0 | height6 ]! N/ \0 M8 v: l; C: ^" W
index; o. f6 A. F' ^" r5 z8 a# l8 S
item" O* z% A A* O: F! O- n( g! r9 `& \
item1
# }/ R8 N4 U7 O3 F9 `# Q/ d u+ Y item26 k; i9 A+ m/ u0 x
itemlist3 z7 H$ G; t9 f; m0 ^8 V
lay-idx( D- W+ W5 C+ ~- a P& G
layedit_act5 K3 v1 [# d# G* R; P
layer0 `/ l( A+ W# _; j% Z) T
layinfo) H6 O/ n( a% J: ]7 K/ p
laylist
/ h: n3 E9 r3 U$ ? laylist_act1 p& n+ U7 g3 R4 m& j
layname: G, {4 m. H! S- v3 Y
laynmlst
2 x7 \! O. Z" ^) F& s layvalue
* \8 j% y6 i' o/ O: r linetype1 Q) L8 } Z3 ~' {% K
list1
H0 J" t G6 [) N; R longlist
; P5 ?/ t+ l6 C4 J+ Q lt-idx2 C8 m% N2 ~& J* h" y
ltabstr
f4 t) I4 Q- b | ltedit_act
% x0 f( ~; I, @$ |4 B5 {' V ltidx
, @/ J5 I8 Q7 F9 Y ltlist
( h" G7 ? S9 X" \ ltlist1
+ |( O% n; F% Q ltlist_act
, m7 K0 L0 t M8 I, p3 } ltname
j4 F% |4 B) _" E ltnmlst) {8 Q) \6 c! L) g: N
ltvalue
- M4 I% L/ d( k( j- j/ n$ g" q8 g- b7 ^ ltype; n: c4 Y4 a4 P8 L* G% n0 f
m
, {5 e/ ^3 \1 d makelaylists) l; r/ o K/ @9 E5 |$ m3 L' r. }) `
makeltlists
- b& Q1 U0 S; k1 _& O6 l; ]. J6 @' z match-col
$ A5 d2 }5 U- P: n ;match-etype ;function removed by rk% Z. s" b5 Y* t0 ?1 G! m& q
match-in
( R( @7 j; u d9 Z; B0 q+ f* t) C, W match-lay
* e" a5 A6 S' b' y; |5 |6 L match-lt
" Q5 G% x1 Q& ]! n3 T match-lts
s V! b9 b0 ^5 H% N: ?5 ` match-th s6 h, y& i* B) i5 j
match_col! y5 c! |/ R* m
mdashlist
& a; W8 K7 I! M9 a6 v ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
' S& r: O% g5 O0 v& F x n& Z% l, L8 l' Z
name
( `3 g5 r' P8 S/ p ncolor/ m4 {. Y3 x! t
nlayer' O3 x; L$ T1 ]
nltype4 P$ G2 b J4 A8 y! ]3 t5 h
nthickness
& o2 |" g" {6 k off8 V9 \+ _7 }& B6 F
old-idx+ E4 }3 k& P& D% c( @6 D5 K9 J
olderr! @) w6 y/ Y6 o! f
on
! D% H/ _! \' ~1 L0 K% Y onoff
0 ]4 C8 M( Y5 ^7 r2 c$ y' j" t patlist T& T% P" m' j$ ?
pattern
3 b5 T6 O9 e: ] K+ a/ O, p7 I k PL_WIDTH_GETTER ;function added by rk
! O3 G+ w) Q! A1 R, l2 @ POLY_SS ;var added by rk
# @: M# {& F# O! v ;POSITION ;function added by rk and then moved to ac_bonus.lsp. o( z0 D# t7 i5 n7 Z$ o
proplist
% d) c; B5 c: }: v" ] reset-lay
! }. D( K! H: T$ d+ d reset-lt( ~ J; N1 b& J
s
: X' ]$ ^8 h. O; O! k4 e: S selset+ N K9 A2 d# ^! H) ?" X
set_col_tile
- P9 V6 d ]0 [5 R q sortlist
! u* a9 A& I2 q8 Q R ss* I7 r, v( Y$ d: |; M- }- ^1 E
ss_in_current_space ;function add by rk.8 a& v" r/ l2 l- b6 e: o
ss-index' m$ I, K# s/ F/ d K4 n- I; L
ss-length( B: s7 K$ _) q
;ss_remove_locked ;function added and then removed by rk.
3 ]6 f9 H# N: n8 s1 O+ r% W$ {, @2 j sslen: d' ^& U" [9 V& N: k% s" T3 H D
temp_color! Y& Q& @- m* q' B2 ~/ T
templist1 s% e6 x7 o' H3 p3 q1 s/ r
test-main-ok% V, c9 q- K: s. ~: D1 P. K
test-ok
7 b7 {. d! |8 E2 G, ?0 e testidx
6 F* M# _4 R% D' W" I- f# h/ \ testlay$ c/ l' {& b" C: H9 \( d
th-value
+ r. I' n( F/ I thickness
" U. x/ [, R- ? tile
' W9 S1 t, N- |1 J tile_rect
( Q: w" ~8 }, O0 H) ?: F tilemode
1 M& M3 h( {2 H5 p0 F) | ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
; L8 ]/ Q0 |9 f. ` TXT_SS ;var added by rk9 f7 C! g% k- B2 l' @8 [9 z
;undo_init ;removed by rk.
U0 o& n$ E- \3 w, L vi- K- Y! F! j) c6 Y! p) E
vpf
2 ]# f/ b/ z8 p, q9 c* |: Q/ N vpldata
/ ^8 ^ t% q& [7 } vpn
" c# k5 E( C3 X V8 ?* D' d which_tiles
1 S: {. K$ ? [* `) w6 u2 e width
! z: i1 C% n4 F9 w x
1 k) l. I. y8 f; p+ ~* s6 j8 v x1. w7 j, p' ~' X; Y
x26 u( U: x4 w3 n5 D' o$ u& ?
xdlist @0 Q4 ~, I6 c0 X+ X
y
. P& U, B; X" A& a y1) ?) I! @6 m, x* N c
y2
! i0 J' W9 E, H; D8 j2 Y: O# ] )1 ~$ O/ O/ |/ N7 g- H1 F: [
* Z5 E/ u- {3 d: d; b
(if (and (not init_bonus_error) 1 s3 q4 C2 L, e+ _& g
(equal -1 (load "ac_bonus.lsp" -1)) ( o% I, f1 o$ t0 Z/ y
);and
% [1 J6 {3 ]/ q2 s$ e1 O (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))/ i* E3 d* l. e/ s+ d1 g
);if
. M# A9 ^1 ^/ S$ G (init_bonus_error (list
2 G; Y3 M; X$ I1 E (list "cmdecho" 0 / c2 R. T& k* ~7 m
"highlight" 0
3 \$ [8 r: R! G "regenmode" 11 J9 x8 P* J1 }. \) [
"ucsicon" 05 Q+ ]8 C9 N: u. E3 f
) / D) \; U8 }4 {) X; s
T ;flag. True means use undo for error clean up. # b/ H# z5 A8 a) R: J9 X# \6 H2 b: ?! Z
);list " n5 t5 G: }+ j
);init_bonus_error
6 W% \1 g Z9 h
1 H5 ~- Q5 O) t% V5 J' S3 U7 o6 k (cond
6 ]( Y+ ]9 N/ Z; k5 z ( (not (ai_notrans))) ; Not transparent?8 g4 C7 g& {( ~* K+ \0 c& H5 Z
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
+ Y5 U; V* w: M ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?: V+ u. g; s( x c
( (not (setq ss (ddchprop2_select)))) ; objects to modify?
- H7 q+ c; p8 X3 t8 u/ |, V (t / O" X a4 W3 w$ Q1 D! r) ]
;(ai_undo_push)
0 n, H1 }& c6 _ (ddchprop2_init) ; Everything's cool,
* V8 P* \- V4 |+ d (call_chp2) ; so proceed!
; n! Y O2 y# w, U' Z0 ? ;(ai_undo_pop)8 n) V( B9 ]# _0 K
)2 T1 ~; J; W5 F4 n
);cond close7 v$ A* J5 P- Y/ y- ~
! R6 S X6 _2 k3 v8 \0 O! [
(restore_old_error)
5 V) b* h2 W6 f9 |' f A" f* Y6 ?
0 g3 Z( N, {% L' @( G( P5 r% h8 Z (princ)# I0 O l1 @4 {5 d
);defun ddchprop2
5 a u# ~( T6 p( M9 z) V, L& \+ G+ |8 C4 W
;;;----------------------------------------------------------------------------
g5 O* u) \4 t) Y* J& l: I' p3 R
$ {: Y, D$ t- t5 _+ k5 ]& r(princ " EXCHPROP loaded.")8 s4 f8 Q5 _5 L
(princ)
" W2 |- z1 v9 O4 B; x. `5 p# i) ?4 O; ^3 d% f2 b
;;;----------------------------------------------------------------------------$ w1 R2 J3 }; {. p3 }
;;;---------------------------------DDCOLOR_LSP--------------------------------) ?! Y; P$ L, r1 s( N
;;;----------------------------------------------------------------------------4 r9 D) a% M2 x
) w2 [( k6 J r1 {$ F, x; @" j
; Next available MSG number is 24 0 H' d# E- L# D6 B
; MODULE_ID DDCOLOR_LSP_
2 M- W2 N: e* c4 ?, i;;;; U5 O. u) B2 W. L
;;; ddcolor.lsp- C& S! U7 I6 d n7 [# y8 A6 x
;;; * g, `* I4 `6 d4 s' @
;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.9 ^' B- p* i+ i
;;;
/ `) _0 ]$ b2 J2 R# Q. S;;; Permission to use, copy, modify, and distribute this software
' y; h$ u& o. L$ A; \8 D;;; for any purpose and without fee is hereby granted, provided
! J: |+ E! S) T1 H3 b;;; that the above copyright notice appears in all copies and
/ y( s4 J' g w" G# O4 c! m;;; that both that copyright notice and the limited warranty and
8 O& _( w4 w7 i, p& J/ g;;; restricted rights notice below appear in all supporting4 i4 o# ~0 w# `7 r
;;; documentation.$ j9 ~2 |! d7 k& i. D/ r- G! G
;;;
! f {- ?" P4 }, g9 a;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
) U; K0 F5 D4 O9 l6 [;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF9 c; Y* @3 D. @* m
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
8 l M8 H7 v3 W3 u, H9 _;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE8 V' d7 l( o/ k
;;; UNINTERRUPTED OR ERROR FREE.
, W8 y4 a/ S W3 S;;;
% l4 ? c( @* V+ m0 o$ z;;; Use, duplication, or disclosure by the U.S. Government is subject to
% L! d7 m# J$ p' }0 }0 _;;; restrictions set forth in FAR 52.227-19 (Commercial Computer4 H* Q8 h: j7 R
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
4 e) t' d& S/ d+ X4 Y- I0 m;;; (Rights in Technical Data and Computer Software), as applicable.
! q" h% x3 @0 B- M, _;;; A7 \0 B# G( S3 ]! n
;;;.
( E' \5 q; H- H4 H4 i B;;;) O3 w, p. ^/ a8 L8 L
;;;----------------------------------------------------------------------------, G' a: J% w5 X$ Y# l, g
;;; DESCRIPTION
8 N& m5 J5 h9 b& h;;; - t: i& o4 Q- _0 m
;;; Chromatic Pallete style color selection dialog.8 R. r+ l2 {2 [* c( R
;;;
# ~' M0 ]+ s9 V, Y;;; Globals:
t" o8 Z, G( h! x* s;;; . z8 ]0 k' U! ^4 H' N% I1 l
;;; chroma_color - Integer color index. The last value selected
& x5 b2 e$ S; S0 w& Q;;; by the user in chroma dialog. It is not cleared or reset
$ \: |4 O6 c- `4 Z;;; by a cancel. Only used for communication between callback
3 O: e- e! E$ |6 Y0 }8 M# d;;; functions and the (chroma) funciton.) I; J' o. p; C' k3 t4 Q
;;; * X; E& c1 s9 T; D9 l
;;; Depends on the definitions for the dialog provided in chroma.dcl.5 u& i* T9 \# L4 w$ M+ v
;;;
& H: p1 x9 U! X;;;& }% k+ j. a/ J
;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
6 G9 }' o* `; d8 i4 c% z;;; pallete style color selector.
: Y9 ^1 O: g' p; @/ @* U- X2 n;;;
& n2 x/ j+ n7 w4 R2 m% Z: n6 c# h;;; ===========================================================================
- C2 w$ T) P2 d9 N: v0 O;;; ===================== load-time error checking ============================
% U2 ^+ y, p G, e" l% d;;;' k$ b. k; U, ~8 K; \
& C; n$ ?& M' g0 @, B3 E (defun ai_abort (app msg)
$ t# {; C6 ~* }/ T8 d (defun *error* (s)
2 A/ j* ~- U0 O* G0 O: ^# f (if old_error (setq *error* old_error)). I& a& d8 k3 o. p' ?; T; d
(princ) E( E6 u0 V. }% o/ u: z" t# a
)
" X) i1 I3 l0 Q$ L0 c (if msg
/ B/ M# C# K3 R- E (alert (strcat " Application error: "
( G; X; A- ?, q( ~2 j6 F app
- q- u4 k0 t; q9 d I3 Q, V: w3 z " \n\n "4 q# y3 D+ M" q; L& M
msg! v) E9 P: c/ H4 |5 N3 M; T
" \n"/ g+ E3 [8 i6 V' J
)
, x7 e# K6 z" g; y, ] c- j ), e, [- W6 W( ^4 o6 D- ~$ y9 }$ Q
)
# f9 h% K6 T) a (exit)% R5 x# L+ \3 X
)& `! ]& c" [1 E8 N' e$ |% }, k0 [
/ u/ k8 C# g B;;; Check to see if AI_UTILS is loaded, If not, try to find it,8 r2 Z" b; C& a) R' d# [$ M
;;; and then try to load it.7 k5 J+ s7 d4 `# D* [
;;;
# C% w& l3 B& ~ L3 F;;; If it can't be found or it can't be loaded, then abort the
4 k' K' [- ^, S H3 [6 F1 Q" u) G;;; loading of this file immediately, preserving the (autoload)
4 [, g6 {9 o1 B) q' W: m;;; stub function.
2 C% `0 m! A4 S# @+ O$ Y6 u( t2 J/ @$ r7 o @1 G7 F( E+ N6 k
(cond4 `: Q6 C2 Q6 [) V" U: @4 o! i
( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
) Y6 ]; s7 w4 T$ R+ k3 }- v9 j& M
2 ^& `( l) X' d5 t ( (not (findfile "ai_utils.lsp")) ; find it
& Z$ Y2 _4 _( y, `2 k8 k% t$ r (ai_abort "DDCOLOR"
' x4 y( s+ \) ~' |( t (strcat "Can't locate file AI_UTILS.LSP."; W7 T }1 H- k
"\n Check support directory.")))- _8 \" t* F' m
9 |% s. ~. m6 m, v6 A2 z1 G( M1 a i
( (eq "failed" (load "ai_utils" "failed")) ; load it# E1 X q$ Z# O+ a- ?% s
(ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
* p+ o4 J3 m1 J8 ]! d% O )+ [ B' T+ i5 z) e
) k/ l' X7 r9 q4 [0 k; U2 K
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
1 L, [' B( e; y7 y7 a6 B$ W9 R (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses+ |$ a/ `2 t$ x
) ; ai_abort's alert box dialog.6 F* J2 p/ V- {* m1 R3 f
2 f5 T A6 P+ g4 i# G" J
;;; ==================== end load-time operations ===========================
" i$ c! p2 v# z" V
# ]% l. f8 j5 e(defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)5 H: d o' ^( F; W3 y5 X
$ _* }- r5 t* x7 f
;; Main Color function, called by setup code.
9 T( @+ L% I! y; M7 A5 e8 d (defun ddcolor_main()
r$ c) h' ^ R/ i- @7 Q$ @! R/ m! p3 U, q% O0 F z
(graphscr)3 o& n! U2 N! c- M0 O
* M2 r/ c5 s2 ^) t. E ;; Get the color of the current layer, for possible BYLAYER color swatch.) b% u' d2 |2 Z
(setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer"))))); O7 Y1 r" G% U& y5 t2 p
9 R# X( S$ |8 m/ k8 G2 P ;; Call the dialog here...9 o. b: a) v" O7 {2 c: v u
(setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
d; |: h U5 ^' D. `4 c3 M
& y1 z7 z9 l: V/ z8 ^. C (if clr
: W7 m. G, r- A: h" l9 H. F (setvar "CECOLOR" (citocs clr)))
9 X$ S$ F( [ V! B9 i; A# ` )
- z q' ]6 X, f8 p6 G7 [
: Y! n. Q. a; D ;;;$ T. V# s. t: Q2 F C9 {: G* a+ C& L
;;; CSTOCI -- Color string to color index* V0 O% @3 ^! f0 Q, a
;;; Convert an arbitrary case string into a color index.
& g2 ?# C6 Q# [1 D% L5 f ;;; Returns nil if string is not a valid color.$ B4 U4 K/ }& n/ n( L
;;;
' t* N: j h. z5 Z+ j& ~5 I (defun cstoci (str)# Y9 _, r7 {! b X" c
(setq str (strcase str))
) @" C7 P/ e c& ` (cond
( W/ c/ A/ D$ t) q0 T( m2 S ((= str "RED") 1)9 e! ~% l+ Z& d. G
((= str "YELLOW") 2)$ _5 ^2 n) d" y7 w" L$ H
((= str "GREEN") 3)3 t# i5 U# L# \% ~5 o3 H
((= str "CYAN") 4)
3 G* K& [- M; B z ((= str "BLUE") 5)
- Q" r0 g; J: k ((= str "MAGENTA") 6)
& B9 C$ e/ c1 Y+ R% j1 w, Z ((= str "WHITE") 7) L; C# o- s5 B7 s0 J; p
((= str "BYLAYER") 256)- F5 C+ W# ~5 F
((= str "BYBLOCK") 0)
+ s3 Y) B& J% G ((= str "BY LAYER") 256)7 c1 I# s; n8 P+ C
((= str "BY BLOCK") 0)! c& B( L( q" ~5 C. |6 W) P
((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))5 a2 h# i" N. `; J5 Q
(nil))" F: Y- B% ]1 s! G4 x5 E- C
)( n+ g2 R t4 b
8 R2 P9 y4 j% Z% P' r* a* p3 X
* \6 h# C: \/ Z: m
;;;
; T% M" i# f0 X5 n* \ ;;; CITOCS -- Convert color index into standard color name.; \+ o s# a5 c) q! a
;;; Will return the standard and logical color names as text
7 K* @5 f. q5 J6 d* R- _ ;;; strings. Returns nil for out-of-range color indicies.
$ W, G; P# Q8 i U. ]* M ;;;; d% L- S8 I- O+ I$ n, b! J% R
(defun citocs(i)
1 n5 z8 {/ G$ K8 b/ s, W" G (cond
8 e0 x! v6 j0 E* U9 ^ ((= i 0) "BYBLOCK")7 l j5 Y* _" a& o4 c- J2 h) I
((= i 1) "red")' f: h) F) Z3 U% e3 y6 b9 `: F
((= i 2) "yellow")
1 R2 ?- L$ y. [ ((= i 3) "green")
# N3 c; ]) k2 {" [% }4 F0 N9 F ((= i 4) "cyan")
$ t1 _$ ]" ?/ ?1 C; X4 | ((= i 5) "blue")
* I+ V" e; `3 h f ((= i 6) "magenta")
( X! F2 V7 f6 z0 n' F ((= i 7) "white")
5 z3 ]* L! a( B& m ((= i 256) "BYLAYER")( C4 M, K+ K3 H' [( h2 r' L
((and (< 0 i) (> 256 i)) (itoa i))' p# G; \% A" g5 Q
(nil))% \0 j" Y0 K G1 ?# ~0 ^
)
% e3 _; I% D# T2 Z6 T( T" n- w# \1 e( y1 Q& W
;; Start of ddcolor
; S) u m# z, C# C7 p; H (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
7 n E: z2 o+ R3 r old_error *error* ; save current error function
" s6 m& @" H! f8 y4 I8 Z *error* ai_error ; new error function
( p( E8 V d3 \ )7 t+ A) u) n9 e' M
: z" t r) d c0 H
(setvar "cmdecho" 0)
' e* D" n' t* R3 O
9 v9 w; \* _ ?- X (cond8 Z: X3 o% A6 W) z1 A8 U
( (not (ai_trans))) ; transparent OK o" u+ e" b: M& Y
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?& e" Y4 o C9 u8 x; _ F9 r
* Q4 ^8 E& B" _+ i (t (if (and (/= 1 (logand 1 (getvar "cmdactive"))) G) k5 M4 ^$ ~) O1 V
(/= 8 (logand 8 (getvar "cmdactive"))), O) [' O6 i8 y2 ^2 [. @
)8 C5 M4 W/ ^5 Y0 s
(ai_undo_push)2 k, U& F# W0 Y6 ]4 a, l6 A
)
6 q+ m" }* E0 i: v7 {1 o8 k: Q- \4 O* \2 d, x
(ddcolor_main) ; proceed!
/ x% |( r* `8 M5 i5 V, k v
, \) {) z) V- Z g) v7 B (if (and (/= 1 (logand 1 (getvar "cmdactive"))); C' W% j' q2 P; ]- W2 A! A# {/ B
(/= 8 (logand 8 (getvar "cmdactive")))
' j9 N7 L2 L* g1 C )1 i$ E' x5 t6 X# o4 _7 f
(ai_undo_pop)
! M! w9 [4 `* p5 x6 Q M* `- x8 W )
~8 d; {3 s3 }5 O! d" D. n ), }* P. `+ L& W4 \; U+ x9 S
)8 Q+ C K$ w( v6 e
9 h! M1 U( \. u* U+ T (setq *error* old_error)
1 h3 n* }5 M- U6 W3 u" Q+ L; j (setvar "cmdecho" old_cmd)
* ?9 L* Z& T5 m3 m (princ)
' o* Q! z; J6 f4 X! B; _$ @* Q" d, ^
)
& ?/ e# V! i/ r% f2 j6 P$ S5 |) Y3 Q D5 ?/ F
;;;----------------------------------------------------------------------------5 [. D' C0 i6 v
/ ?) @* h5 m; K+ D7 p
(princ " DDCOLOR loaded. ")0 v& Z, q) J+ Z
(princ)! b) {7 w$ h$ L- V
/ T9 f( n) `+ R- ^" Y- ^' a7 {, C
;;;--------------------------------------------------------------------------;
- ^0 \- I( S$ v$ V( V;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
. a0 f0 L0 G2 L! d) X H;;;--------------------------------------------------------------------------;
! K; ~( \. L) ]4 B2 n. };;; ssx.lsp; p0 G' [/ p* R+ x& t% X2 l
;;; Copyright (C) 1990 by Autodesk, Inc.: u$ v1 ` k. c$ A: j/ m# p
;;; Copyright (C) 1991 by Control Systems, Inc.9 {3 p( H# y" @4 X
;;;- y, y' g" U) i5 y: G2 e& M2 I! s
;;; Permission to use, copy, modify, and distribute this software and its2 z% `- m* W c8 F' N
;;; documentation for any purpose and without fee is hereby granted.
- E. |- c7 l# `& v, X* ];;;
' J: d/ |( p' j) h, ]1 V; E;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.4 d' c' }0 s( k* B
;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF k4 B4 D: j2 ^. _
;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.' L, k3 D; i; P9 c4 o0 }0 ~( {
;;;
3 ]8 g1 v9 d4 r: Z0 P;;; Larry Knott Version 2.0 7/18/88
& r8 \1 H# |5 l3 H- }% r2 [/ a;;; Carl Bethea & Jan S. Yoder Version 3.0
. K" W0 P, Q, ?# C( E3 G;;; Enhancements to (ssx).3 u Y" Z* W# X$ [6 n' k, p
;;; 15 March 1990 $ W7 j! V/ [) `: L' W1 ]5 y- ^
;;;* m3 Y% i9 @9 ?# f9 u' u) Q! O
;;; ARTIST Software, Inc Version 4.0 December 1991/ u5 E, Z8 T6 q
;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,' b1 K" d z$ f |3 M3 E
;;; use Flexicon menus' y/ o& `$ p3 _- F0 p3 E! m% \
;;;
& x: ^8 D$ y- o% T R;;;--------------------------------------------------------------------------;
- |, m7 f; M5 {( p# q;;; DESCRIPTION; Y6 I* Z: _; o* G
;;; SSX.LSP ! j" a6 y9 a! L7 |7 \; ]
;;; / y+ k8 _# j! x- o5 F* r
;;; "(SSX)" - Easy SSGET filter routine.
) J1 f; S$ W/ ~2 w+ [;;;
; w4 g% Y) X0 w/ b! t1 W;;; Creates a selection set. Either type "SSX" at the "Command:" prompt ( y- Y; F0 }8 A) J4 _
;;; to create a "previous" selection set or type "(SSX)" in response to 0 _' z" P! [. `+ z: l
;;; any "Select objects:" prompt. You may use the functions "(A)" to add - s0 a/ X$ x+ n* A* c
;;; entities and "(R)" to remove entities from a selection set during
: `+ i5 U) Q/ k! m;;; object selection. More than one filter criteria can be used at a " C% t' P; l' B8 A; `( x( h, c& Y8 i
;;; time. 7 _6 p8 I* I2 F K
;;; / ?. i6 g1 f! ?% k c
;;; SSX returns a selection set either exactly like a selected( R' N) a9 K& |2 q4 G
;;; entity or, by adjusting the filter list, similar to it.
5 q+ w! o# `/ @0 y: g) f;;;5 [8 }% j9 p5 o L; }" {
;;; The initial prompt is this:
8 a5 y- ~( ?3 h! l- d! l2 k) z;;;
$ S8 q$ }2 M& b; O9 @;;; Command: ssx
c/ L7 B8 q" w$ X;;; Select object/<None>: (RETURN)' L9 v7 R1 a! G- Z$ ?1 K9 H
;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: : p! T" t9 F$ c% [! e6 a4 j( r, E
;;; 7 a9 r. _; f: O
;;; Pressing RETURN at the initial prompt gives you a null selection
% z0 ^* U1 U) w# m: [7 W/ P;;; mechanism just as (ssx) did in Release 10, but you may select an ' c2 w. ? q) |) N
;;; entity if you desire. If you do so, then the list of valid types " q" M8 Z3 m/ v* F5 p8 b/ f
;;; allowed by (ssget "x") are presented on the command line.* \6 r7 y9 {5 e6 {0 _
;;;
, \! C( \; j& c2 T: Q;;; Select object/<None>: (a LINE selected); w, n; p5 y" f
;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) ( z* ^, X- [1 ~6 i2 f; D
;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 1 t9 e* L$ f0 c, Z Y9 M3 b$ ~- F
;;; # v! b& ?8 G- B0 M
;;; At this point any of these filters may be removed by selecting the L4 z2 z7 [4 B. D5 [1 L8 T5 s
;;; option keyword, then pressing RETURN.2 G Y9 ^ A* f) B" t
;;;
$ f) O7 \/ s1 b;;; >>Layer name to add/<RETURN to remove>: (RETURN); I& {4 W# p2 x: C7 U% z
;;; . l* o) b M; e5 ?! C3 ]; R
;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
! r" X0 I- e' `3 Q" Y, m9 O. c;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
1 x$ l7 R* C9 Z9 }& J, Q# ?- W8 W* C;;; # b! i/ K) y5 X
;;; If an item exists in the filter list and you elect to add a new item,
3 F+ z% \. j% c% J2 ]. q! m;;; the old value is overwritten by the new value, as you can have only % J( A% F, ~ a9 c `; ~
;;; one of each type in a single (ssget "x") call.: m& O E5 }& e5 c9 q
;;;; f2 r8 b1 k3 h* }9 I/ x* p
;;;--------------------------------------------------------------------------;
4 |# w: ?; P. G5 b$ F7 B;;;
; f: R1 \/ X4 `9 G$ M;;; Find the dotted pairs that are valid filters for ssget8 {) }- a- w; { K+ p r, G
;;; in entity named "ent".' P4 p2 B( R& I- O/ _
;;;/ R5 e- B7 l# S/ [
;;; ssx_fe == SSX_Find_Entity
" V0 K5 m# D6 d, O0 O( Q;;;, T" a' ~4 Y7 I8 f" `) Z3 F
(defun ssx_fe (/ x data fltr ent)3 ^; f1 r$ D3 v6 Z7 d
(if (and (= flexvar 1)(/= t2 "Pick"))6 ^; g0 E& K- A5 B0 d& Q( g
(setq ent nil)
6 y1 C2 O \- q (setq ent (car (entsel "\nSelect object/<None>: ")))
/ E1 ]8 M) i; }) S8 } )
) b. y0 X/ Z) }! X ~ (if ent
1 Y: h: G6 t9 U. a2 D! F (progn
% T& r! V0 _2 I+ E9 j* ], R& W7 K; `6 P (setq data (entget ent))5 a. a H* a: a9 x* N0 ~% Z* P& I5 B
(foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
4 { [( D- C# F$ I: V (if (assoc x data)9 O/ U5 H$ i# G
(setq fltr
/ F4 B9 ~% h! v+ S (cons (assoc x data) fltr)
0 P) Y2 t0 j% q )# q n8 P' q; ~ i; V. S7 _
)
+ H9 F3 E5 L3 E r5 X' F )
2 P' P( R- T% @% R6 A+ Z (reverse fltr)
& D# ~0 I! T, Z; W* L )5 x# f. r) ?7 ?( F" u% E5 Z
) : ?3 S: W0 r$ f7 G( G2 M& M2 H9 }8 I
)
7 w$ d. W# s1 K# _1 d, H;;;
/ e1 E- ^ `& y! D- C;;; Remove "element" from "alist".' Z1 v& E# s: G" @' y
;;;* w+ x% ^7 q) _: p
;;; ssx_re == SSX_Remove_Element
8 \" @5 S8 ?) N4 C. Z5 M* r! a;;;
/ N: W+ D1 x T/ ?$ M3 p: ~; L(defun ssx_re (element alist)
3 h( l( Y+ e4 U0 R. Y' ?, U4 j (append
. g& W4 e& m8 n+ D" `! t! p (reverse (cdr (member element (reverse alist))))
: W- ]) h( ^0 _% R6 n$ p; F1 {6 G) X! Y (cdr (member element alist)) ( r: o" l, ~$ g* t. x& J; {0 ]! O
)
. e% z; l- C" ] J+ r" M2 X)
2 `# P8 S' ?5 };;;3 A& j& Y; `3 x, w5 _8 D( D0 b
;;; INTERNAL ERROR HANDLER
9 b2 q% k; Y8 \$ J;;;
* ]! g* S1 H1 u1 ]5 l3 Y(defun ssx_er (s) ; If an error (such as CTRL-C) occurs9 @8 ?" C8 L. V' \
; while this command is active...3 j% r9 E+ L1 g7 n
(if (/= s "Function cancelled")- |, P% I2 s/ K' @: r; |- Z! e
(princ (strcat "\nError: " s))
8 M- {6 L0 |3 X* M) p& O% n V! N4 T& K )
$ [, N/ l6 F$ W- d (if olderr (setq *error* olderr)) ; Restore old *error* handler; t4 R+ `$ S! |& G: B
(setq flexvar 0)
! Z3 e2 u( T0 b e* o (princ)
) _2 I& N6 K6 a4 `9 d* W4 P! {) p0 C. G% u" d: d! A& v3 K# D
;;;& r/ V5 S" t! w$ F7 @+ z" u
;;; Flexicon call routine0 c. o6 A- F$ D+ }
;;;2 w' K) k" y, X" U; J- s
(defun flexmnu (a); P: I- M9 k5 G" h6 L, k- w: l
(if (= flexvar 1)
, g) n2 v% y* p% \) `% L (command "FLEXICON" (strcat "FLEX" a))
! o4 p k2 \, ~- m7 P1 u A' ^8 c )
: q! r+ m* D6 o: a0 R) P6 C1 G6 Z)
- O7 r$ O* S- Z8 ^1 d
# o; X8 l0 c& @; w, z( j: y;;; 6 L4 n: Z8 I! A% E: Q
;;; Get the filtered sel-set.1 o. j; L' W1 E! K% e4 A
;;;
& S" L) T8 B! {+ P/ Q6 b$ t. x. |: q;;;; _& n) s1 D5 }- y
(defun ssx (/ olderr)
3 r% ~- Y7 Q) F# ?% u (gc) ; close any sel-sets
! K3 b$ d5 m! X& M( t (setq olderr *error* . t5 M0 c% f# I9 R% c, D5 s
*error* ssx_er
3 B+ V$ ~& J% N! G( @7 A( D4 Y9 k ); |1 Y' _* j8 ]" D# ^
(setq fltr (ssx_fe)) 6 T5 l) t' q" A' V0 Q& `
(ssx_gf fltr)
7 C+ S3 ~4 e! S* ~% u (if (= flexvar 1)
5 W E# {' ?/ h1 x2 `6 N- u (progn0 a" Z7 z8 R$ t4 u; \: P/ x7 J5 v
(prompt "\n \n \nNow select the required EDIT command and (P)revious.")4 I. j) Y9 k* d( r
(flexmnu "EDIT")+ V: H' K( o v4 y: `/ @( A
)! S9 t2 C# f3 D C# G2 E5 V0 V& Y
(command "p")
8 P( _5 g5 T4 t )
# l1 Y/ q! O1 g+ u9 l7 L) i, E (princ), V, q3 m' o! p' o- h0 S7 e
)! i- h* t1 G, i# H! K) h- W& k
;;;7 `+ [. `; w1 m( Z2 ^4 [
;;; Build the filter list up by picking, selecting an item to add,. W$ S8 f; L0 D6 ^1 t
;;; or remove an item from the list by selecting it and pressing RETURN.
9 d0 h3 G; ]6 M! N) d2 F- f. E;;;
; g$ Z8 \, I4 R3 V) Y2 g% N;;; ssx_gf == SSX_Get_Filters, R3 s7 S5 L. P% s$ ^; }
;;;
. Y9 V9 [) F* e0 b8 E(defun ssx_gf (f1 / t1 t2 t3 f1 f2)
0 ], T" q4 L) H% d& T0 | (while - u/ L' q8 J2 h1 s% M9 o: @
(progn
/ e/ s4 _/ ^) Z5 @ (flexmnu "SSX")
2 x3 V- O# B1 [% {; Y8 P) G (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
; ^& X3 `+ t1 x: `0 n (initget 1 E( `" h4 ]1 R, }3 F2 Y
"Block Color Entity Flag LAyer LType Pick Style Thickness Vector"): Z! q5 p2 u+ f$ |' u2 @
(setq t1 (getkword (strcat' t# t3 O- ]5 [6 y+ {
"\n>>Block name/Color/Entity/Flag/"8 C* o8 e+ W- c; q
"LAyer/LType/Pick/Style/Thickness/Vector: ")))
' |- X v0 m1 n, O0 g. h. K. Z )
( ?7 b q/ [. N" a; |; ? (setq t2
- H6 t) i# s0 K (cond
6 g2 Q) P, Q: ^2 Q+ r" |. Z ((eq t1 "Block") 2) ((eq t1 "Color") 62)
% ]3 @. B* i0 [) Y$ k ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)% f6 m- l8 `7 x: g- h
((eq t1 "LType") 6) ((eq t1 "Style") 7)9 P3 w( w. g! [$ L8 v; N) H; T
((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
5 V3 a( W R1 \8 u/ W6 ~ ((eq t1 "Vector") 210)
7 \" |( Q+ }- w4 S- ~. U (T t1)1 u8 S( ?" |. ?0 G5 j5 C
)
5 u1 S% R j& F7 B8 z* n6 H( L: | )! M6 l. E0 D/ R! O) a1 v5 U
(setq t3
w; j j0 ?5 y, a/ c; m (cond6 o ~+ g: e3 a' X2 v& d
((= t2 2)
8 p% F( H) E: ~1 c (if (= flexvar gtads 1)
o# ^* L: {3 o# ]9 s3 `9 ^ (progn
. o b- s5 ? d- R4 X( F (prompt "\n>>Block name to add/<RETURN to remove>: ")% \6 q8 l7 X! y% d0 y
(gttable "BLOCK")! H6 `, f$ [2 Q0 a1 f
)
! d) l/ L. Y: T' ?3 M' i1 |7 r (getstring "\n>>Block name to add/<RETURN to remove>: ")4 f; m6 U& U V
)
1 @5 g8 y8 b g; ~( \ )
! ? s, K- D+ A ((= t2 62) (initget 4 "?")# T- f( e2 b: Y+ c
(cond9 P+ l( V2 F4 q! z8 a1 r- J
((or (eq (setq t3 (getint
4 r. [( \3 R9 Q# H' g) a* X/ C "\n>>Color number to add/?/<RETURN to remove>: ")) "?") " H$ p# x$ r3 T, r U# ?# J
(> t3 256))
+ Y2 j, _- f' |/ ` (ssx_pc) ; Print color values.
- V" X3 v8 v. ? \7 k0 b nil1 c& g# t: ?6 \7 x
)
, `1 I# n# L9 o' q (T
/ l6 @0 Z) l7 j) x9 z, S y k! S t3 ; Return t3., u( O, i% h$ n; P# }& z
)
* H8 m& c* a4 [2 V' t* { )
) k9 w6 w3 w# X! ]6 M, {9 @3 G0 H )
9 Q1 i- q' l; P ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))7 b( D: `8 s0 J7 F. `$ k7 h
((= t2 8): `6 T/ N7 S8 M4 ]/ H
(if (= flexvar gtads 1), C0 V3 p& E' u9 M+ E4 R
(progn& \/ \% W% D0 f2 K& i( M0 z2 t: L
(prompt "\n>>Layer name to add/<RETURN to remove>: ")6 u& `, F" c, g& h8 f
(gttable "LAYER"). I0 V/ Q6 K/ x5 F2 f9 q$ C
)
( N" [+ ]2 g$ A8 k. b8 A (getstring "\n>>Layer name to add/<RETURN to remove>: ")
& L- [$ N# z" N/ J )! A6 F8 Y+ ?& O& U2 k. C+ l
)6 Q+ p" x7 |8 F- u9 w
((= t2 6) ! D: O& O( D% a% |2 ^: P, P
(if (= flexvar gtads 1)+ N( N; f2 @. j( `$ x( N8 D
(progn4 \& K# V, p! ]3 B" V+ i% L
(prompt "\n>>Linetype name to add/<RETURN to remove>: ")
+ R1 \" f0 D" A( ^ (gttable "LTYPE")5 i( |' L, d& j$ O" C
)) \ F# P$ K9 j
(getstring "\n>>Linetype name to add/<RETURN to remove>: ")" k9 e# [+ ?' d- {; C, @- n1 x
)8 f B/ s3 U4 v/ t: ~
)
2 f8 O6 A+ a ~, k- N3 I6 Y0 i; U ((= t2 7) 4 n9 n. e# o- d' @; W" O
(if (= flexvar gtads 1)
B5 C0 I0 i; D7 H4 T (progn
$ ]3 V. q( m9 R2 j+ u (prompt "\n>>Text style name to add/<RETURN to remove>: ")
5 z( P% z8 E% g3 } (gttable "STYLE")) w* Y' { w8 ^
). I* q" _) }1 |' i& I0 f" C
(getstring "\n>>Text style name to add/<RETURN to remove>: ")
7 H$ p# j: A' r, ^$ P )
: Z1 P( r, E% f- q# x, d, H: C- q ]# V )
4 ^8 U% m) D* n/ \% ]$ H ((= t2 39)
2 R. Y/ f) o9 ^4 ? (prompt "\n>>Thickness to add/<RETURN to remove>: ")+ o) Z W$ R" V* L) P
(if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))* R# b! J; X5 M+ ?1 K/ R1 { |0 A! h
)
& H2 R- @3 o/ @+ ?4 `, I ((= t2 66) (if (assoc 66 f1) nil 1)) P4 \. @, m$ }9 }5 P# i
((= t2 210) ( t/ R0 U- M7 P, f% t+ `8 t
(getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
. v' m1 E, ]( G )/ t% Y2 Y3 Q& x ]
(T nil)# I" i( t9 o x& U2 T. o' R
)$ }6 K9 C* @( H( j! I8 u; Y
)
* ^$ Z' M5 R3 ?" _, i (cond0 H8 o: Y& B- C( K' s- d& u/ m3 H2 c" J
((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity. D% r" q: W: z3 S$ H
((and f1 (assoc t2 f1)) ; already in the list
0 I# J1 ]+ R3 H. N (if (and t3 (/= t3 ""))* z9 I1 ]7 |5 ?6 k3 r6 @0 \
;; Replace with a new value... 9 p1 q! `' H1 B1 r6 K+ l5 r" b
(setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) 4 d) n0 ^/ B' G
;; Remove it from filter list..., a5 k9 I- x) _2 r% E$ g0 I" f
(setq f1 (ssx_re (assoc t2 f1) f1))
# H- o; H3 J0 j( f )
1 k }" E$ ^/ _2 w5 ? )
5 v0 b; n, ~" s( ~+ i ((and t3 (/= t3 ""))$ U. W; W# p# Z! _0 E' e* f/ r) W
(setq f1 (cons (cons t2 t3) f1))
; ~: C$ j9 j- L7 T/ s )
) K5 c8 ]) C0 _& D% p (T nil)* a9 [ m; N, c9 ?& E& Q! R
)
$ ?! K; q0 y. X, _* j- C )# k, [6 p2 i) Q- j. r
(if f1 (setq f2 (ssget "x" f1)))7 o6 a/ D* j+ Z! Z7 ~
(setq *error* olderr)
" {; l! h& I# r( W. j" u& ] (if (and f1 f2)
* b9 T$ q. U8 {# B' z- i (progn% C0 s `6 h: {, b* l$ F% S
(princ (strcat "\n" (itoa (sslength f2)) " found. "))
9 V6 s" l& B1 T9 M% V6 H) g: _' c f2
$ T9 U, v: w- @3 y; X6 d )
, O3 p" `' T' g& D/ r (progn (princ "\n0 found.") (prin1))2 T3 \8 a% w: l* Z- ~- ^: F4 v
): v2 _1 k6 t" } F( y5 }# U; d6 o
)
/ i( f$ o& d- n! L7 A1 Y$ J# D;;;
# g6 z* p1 [9 U0 c0 @+ E;;; Print the standard color assignments.2 S. O' p2 l6 Y7 M! k
;;;" x3 D: m2 L3 F1 p' g7 ~
;;;. G7 v" w s6 Z6 Q' x
(defun ssx_pc ()
1 b4 t4 y" K4 i7 o7 D$ Q% i$ ~ (if textpage (textpage) (textscr))
; {0 U' G8 V; U" F1 h3 C" Z4 | (princ "\n ")
- J; i4 E2 J% c/ c; p- P (princ "\n Color number | Standard meaning ")
& W: B, E7 z1 T (princ "\n ________________|____________________")4 v1 v! m6 r( j' i
(princ "\n | ")
7 G& j( W* R( x; `0 r% Q* M6 Q (princ "\n 0 | <BYBLOCK> ")7 P5 R' i) j N
(princ "\n 1 | Red ")
) s$ @$ ~* K G' x" ?. _/ N; j4 k (princ "\n 2 | Yellow ")) p6 [- @: A, ?$ {& c3 {7 y$ t9 h
(princ "\n 3 | Green ")7 E# w2 s3 c3 @: D6 q
(princ "\n 4 | Cyan ")( D1 \! T$ s0 Y& H; o# Q; z5 ?
(princ "\n 5 | Blue ")/ Q) z5 D) R) H# G& `( G
(princ "\n 6 | Magenta ")8 x: I2 f; b7 f0 g1 H
(princ "\n 7 | White ")
" _/ f6 |6 d1 b$ ?: T (princ "\n 8...255 | -Varies- ")
6 A7 v) D% |. d4 K+ j4 `( @) ? (princ "\n 256 | <BYLAYER> ")4 b3 t0 Z' @; R5 C
(princ "\n \n\n\n")
0 v: @& M% c) c# Y( l" x)) o ~) X: P$ x( T( P; p( g
;;;
, I( A# |. p1 D# b' E! ?7 O;;; C: function definition.
~( c8 h; B. m* D! e;;;; m1 V& K4 s Q/ T, c* v) Q
(defun c:ssx () (ssx)(princ))
* r N6 R! G( I) K2 ?+ H(princ "\n\tType \"ssx\" at a Command: prompt or ")
2 x: ^9 V3 q8 S: W) X(princ "\n\t(ssx) at any object selection prompt. ")
* H- n$ v+ [2 u! c; |(princ)
4 I e/ m7 |% L- I2 ]
- b R. N; _" p" G;;;--------------------------------------------------------------------------;" V8 N5 k$ _3 x( t. A
;;;--------------------------------------------------------------------------;( J- t$ m# ^1 _2 H, Z% ]
;;;--------------------------------------------------------------------------;
4 O" E) ^/ y+ h( c: P4 V9 l" s(defun S::STARTUP ()( w' Q4 r& A! z. N7 u
(setvar "cmdecho" 0)
+ P7 f3 W0 G- z; s/ }6 R(setvar "cmdecho" 1)
* K; H! U3 ^9 n7 @' d(setvar "LTSCALE" 10)
6 @5 M( |; g+ H' q4 d* A5 B+ Q; \" ^+ y2 u0 u" t" {
2 w! x; f8 a/ H) ], [$ w
;(command "_load" "chenKH.fas"), \1 a" G0 D! S
;(command "_load" "ctcot.fas")
! c( ~/ X* x4 g' H% W+ E;(command "_load" "damdoc.fas")
& t) }3 y& M; z: w;(command "_load" "ghichu.fas")' |* L; |8 a# B5 r7 V
;(command "_load" "hamtutao.lsp")( x' W% m2 w& h
;(command "_load" "KHOITAO.fas")
6 t" r0 ?" ?4 J" s w- A;(command "_load" "KHthep.fas")
) W2 E# x5 L7 }* f3 y;(command "_load" "mbmong.dcl")- i2 X% r% P( c( H6 T) R& F
;(command "_load" "mbmong.fas")
9 x$ h/ {( B( W1 M8 c7 h1 w;(command "_load" "mccot.fas")1 A" h9 i' q2 O8 S
;(command "_load" "mcdam.fas")
3 Z. n5 _0 Q1 U1 P6 w2 B;(command "_load" "mcmong1.dcl")1 c4 S: I3 J5 \6 X1 C
;(command "_load" "mcmong1.fas")7 S' Q; ^! v, u+ X- J8 A5 `: V0 `
;(command "_load" "mcmong2.dcl")% E$ I, u7 R1 w
;(command "_load" "mcmong2.fas"): }4 ^0 Z5 ?; o1 J8 |4 E8 y
;(command "_load" "mcmong3.dcl")9 q3 U, A) d8 k$ e6 \
;(command "_load" "mcmong3.fas")/ A7 Z8 A$ l5 ^9 ~
;(command "_load" "mcsan.fas")
% z0 B5 j+ S& k& f9 b9 T. h! O;(command "_load" "thepdai.fas"), N5 I& D) G5 h8 x5 q1 F3 B' U
;(command "_load" "thepdoc.fas")! _* K4 Z! s5 W! t9 B( a* B
;(command "_load" "thepmb.fas")
& M$ z p' ]* L) |% X- A;(command "_load" "thepphbo.fas")
7 t/ A f7 r5 M. s2 W$ h7 F% p(command "_script" "thongso.scr")
7 H* ~5 j5 m* N! x# ^;(command "_load" "thongso1.dcl")
: {4 R! Y' `& I# M$ W;(command "_load" "thongso1.fas")
D) l7 W D2 j( d8 w/ G/ W;(command "_load" "thongso2.dcl")
* I+ w; @" `3 O. r) s;(command "_load" "thongso2.fas")/ E! u; w0 L) D$ @8 M7 I( n5 }
;(command "_load" "tietdien.fas")
, {: o8 I2 s) j4 v/ }/ W% y$ @;(command "_load" "vehan.fas")
7 t8 H5 ]8 H6 w; A' s(command "_load" "phamduy782006htd.dcl")' H% e# B# v/ n
(command "_load" "DDCHPROP.dcl")' D% @2 z f, ^3 |0 u; \' ~2 g( c
(command "_load" "EXCHPROP.dcl")
) _: J6 L! `# J7 l4 h& J: n(command "_load" "DDMODIDY.dcl"); [, t; M6 O$ {+ d
(command "_load" "TK.dcl")
) i# G& X4 u8 x9 L2 [( F0 |7 p+ d8 {3 E(command "_load" "TK_LIB.dcl")
6 M8 ^: o4 l" q0 t7 ?(princ)- c6 a6 W u$ C& d+ y4 S# G
)! q" M" m# _7 g7 M/ O, q4 F
' m. J% f) _* t L
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\DDCHPROP.LSP")
9 Q, R" v( v0 `, r8 r- M! r z! K8 K3 h. l- J! n5 X5 c
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\SSX.LSP")$ E; P8 ?* A, O- G; z; z
# l% X" R" f/ q
;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\phamDuy782006_TKT_VNI.LSP")' ]8 d2 x- f& A: Z C" W0 d* ]
;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\phamduy782006ganhtd.LSP")6 y1 `' S" ]) f; p; H# b
;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\phamduy782006ganhtds.LSP")! m7 S2 {, I3 Y% K
2 n$ e4 D& R" ? v3 P(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\THONGKE-THEP\\TK_EXP.LSP")
% g" z. [' L8 k8 E(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\THONGKE-THEP\\TKN.LSP")2 K i( l7 M5 B. a0 R+ \
0 c6 ~8 U: {9 c
;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\ACAD iit insertTEXT - iiT.LSP")
6 [: l7 l2 J' X! @+ v
0 @$ ~' X% Y% [0 w1 d( H;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\ACAD iit insertTEXT - iPT.LSP")' }$ U" p' ?, L6 ~
$ N6 [3 I# h) Z; D( s
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\ACAD insertPOINT - PTA4.LSP")4 o6 i6 P8 f! N C
! j0 c: j" H$ M! @6 n- B;; Silent load.
' W) k( t' \; z" F(princ)' u( q6 Y5 C5 n
2 f; L% I( m* k, H
* j; p3 d" H) M9 a4 s8 Q' _ l
;; Silent load for the Express Tools.
, x( A# J# R, M& Z% z' P+ m;; Altering this line will affect Express Tools functionality
* o9 G, r% n" v(load "acettest.fas" (princ))
8 `& M0 \. q: b( G7 G. A
- l# {: Y3 i i;------BLOCK NAME Put The End because ERROR other LISP-------/ d6 L( I' i% t0 X2 s
;------------------------BODER HATCH-------------------------$ O: t7 M/ Z7 f4 }
- |' _; e, F* t$ V4 S* `0 t
;;; HATCHB.LSP ver 2.5
9 g) Q5 B( U/ P3 P( f6 D;;; Recreates hatch boundary by selecting a hatch
: t6 H: ?. H9 F. G7 y V;;; Known problem with some elipses and splines8 c7 q, ]' w7 x: Q
;;; By Jimmy Bergmark7 `; ?7 Y+ x! a, `- K
;;; Copyright (C) 1997-2008 JTB World, All Rights Reserved
6 q: |) y- G* p, L. `: w;;; Website: www.jtbworld.com
* |' U) |' @5 \" P" I1 N, R# H* ^8 Z1 O;;; E-mail: info@jtbworld.com8 f3 ~$ Q* Z. b# V1 m0 r9 I1 ^0 M1 ^
;;; 2000-02-12 - First release
; K% X S3 M! W# i' I: l0 e;;; 2000-03-27 - Counterclockwise arcs and ellipses fixed# ~# @. r G7 ]. U# C
;;; Objects created joined to lwpolyline if possible- t2 m9 W2 h. l9 O
;;; Error-handling, undo of command
/ W5 w) p' z9 }) z9 H$ C;;; Can handle PLINETYPE = 0,1,2& J, o5 R/ P/ M6 n- E3 }+ b
;;; 2000-03-30 - Integrating hatchb and hatchb14
% w6 j7 y( Y! D0 |! P- V3 j J;;; Selection of many hatches
8 m1 H+ A" G6 f+ D0 y' I, b3 j8 _;;; Splines supported if closed.
) m7 X4 [" u$ p;;; 2001-04-02 - Fixed bug with entmake of line with no Z for r14
: M3 a6 r) B4 F- O, n. X;;; 2001-07-31 - Removed an irritating semicolon to enable polylines to be created.
; X1 t" p9 b0 e;;; 2001-10-04 - Changed mail and homepage so it's easy to find when new versions comes up.
0 y: e( Z+ G! u7 F;;; 2003-02-06 - Minor fix$ `7 j3 y7 x3 z, G% a4 {
;;; 2003-02-17 - Area returned if no islands is found since it's not consistant
, `! Z N4 r, {;;; 2003-05-19 - Fix to take PEDITACCEPT variable used in AutoCAD 2004 into account
. j& L; [3 V( x" B;;; 2004-11-05 - Minor bugs fixed; C6 _2 g# O N$ p
;;; 2006-03-18 - Nothing changed from 2.1 other that it's been confirmed to work with AutoCAD 2007) i+ n* Y o# X% \; B: `" m
;;; 2006-05-13 - Create the boundary on the same layer as the hatch using the hbl command and
, J5 P0 @6 y% {* D5 Z;;; on current layer/color/linetype using the hb or hatchb command) c% g8 B- i# n' x8 j9 Z
;;; 2007-02-08 - Fixed a bug with the hbl command' w1 C; U$ W- Y' f4 ?5 Z# A
;;; 2008-02-29 - Support for hatches in non WCS thanks to xiaocai
- M9 T- e3 y/ J) ?) n;;; Tested on AutoCAD r14, 2000, 2000i, 2002, 2004, 2005, 2006, 2007, 2008, 2009
. ?! r$ T0 F. w- V R1 Y6 d;;; should be working on older versions too.) ?+ [2 P: F' \% o
) X6 c( _# J5 h9 D; {0 e# k# t(defun c:hb () (hatchb nil)) ; this line can be commented out if there is an existing command called hb
3 S- o' P( J% D2 p2 R0 j2 Q: G7 ?(defun c:hbl () (hatchb T)) ; this line can be commented out if there is an existing command called hbl
4 ~4 M! B0 Y. d# y(defun c:hatchb () (hatchb nil))
; K( e1 G0 k4 e: J(defun hatchb (hl / es blay ed1 ed2 loops1 bptf part% d9 ^' c; F$ O
et noe plist ic bul nr ang1 ang2 obj *ModelSpace* *PaperSpace*/ j! j9 e; L$ a4 x7 |' ]1 H, ^1 x
space cw errexit undox olderr oldcmdecho ss1 lastent en1 en2 ss lwp6 @& ]* d5 c1 ~' x
list->variantArray 3dPoint->2dPoint A2k ent i ss2
N" A1 W( F$ v1 m' [' @ knot-list controlpoint-list kn cn pos xv bot area hst noarea; u# V: t! ^) C1 D' t
)
* E5 d7 _5 S: S* ?7 P (setq A2k (>= (substr (getvar "ACADVER") 1 2) "15")). b/ \/ ~9 L y
(if A2k+ V) o, Q# t% m! Y# V6 B5 R
(progn1 W( H& I6 P5 u
(defun list->variantArray (ptsList / arraySpace sArray)) Q3 R* c% }7 ] }$ t! E
(setq arraySpace) T0 P4 }( U% a/ Z% I/ ~
(vlax-make-safearray
5 j; `5 U$ r/ U$ p. W0 [/ d/ T vlax-vbdouble" o3 n. h+ x% k. I1 U. m- V
(cons 0 (- (length ptsList) 1))* o) S" f; n" `8 R" Q( S6 |. B! X7 H0 i
)1 G" k9 X, Y* O2 n
)
3 ? @2 l: G) Y/ n& Z' ~: Y (setq sArray (vlax-safearray-fill arraySpace ptsList))
# L5 Z; c+ x0 W7 _! w( _ (vlax-make-variant sArray)& ?2 H0 k& t* P, g* w
)+ X0 G2 M h! @- h I" Y
(defun areaOfObject (en / curve area)( K# S0 I& ^6 p
(if en. I G8 z9 x6 _, I) N) O: ]
(if A2k
/ T+ {4 V8 ~% P1 a2 K; V; I (progn
) \! Z. [4 P7 N, o) d: s (setq curve (vlax-ename->vla-object en))
. v7 Q6 i) T, G9 x( @' M4 ] (if" V, y% U6 ]+ e# ~' | x$ V7 E
(vl-catch-all-error-p& `0 I- M) p' I+ J( m. P
(setq1 E; ?+ y$ v% T9 X( D$ z' u; R
area
8 G% |1 ?6 U1 ^! k% }8 E/ b (vl-catch-all-apply 'vlax-curve-getArea (list curve)); ]8 _2 K+ o. H! w
)
) e5 Q1 O# `4 U )9 {5 L; e, }0 L& W1 V& r6 f/ G8 q
nil
, i; G( m2 R" ~" ^8 Z5 x4 V area/ c5 k1 y. U6 G$ B* h4 G
)" E+ j) b: Z$ C E
)
+ I+ Z8 Z. M( v a1 J8 L+ g9 _ (progn
5 k: q6 p- o6 C! E (command "._area" "_O" en)' C' P% g2 M6 L3 V3 \
(getvar "area")
3 y+ `5 e0 N9 l* B2 M( O* c$ u )
. x; I* h, p. d7 v" y )
( N1 l9 U' O/ j+ M# V X )) i. Q, u, V0 d
)
2 e& c' a+ l3 C )7 S8 X1 h0 |' v- ?: ]7 \0 Z* ?
)
$ H4 v9 t. t2 m' c" j$ k G (if A2k/ B* b" @- b, e. [' l! S n
(defun 3dPoint->2dPoint (3dpt)1 D `( ]9 A$ O Q2 G
(list (float (car 3dpt)) (float (cadr 3dpt))). z/ F x, D% D+ ~* @. q. p8 Y3 f
)5 D+ p* w- {; p: I a, x, T. R7 y
) V( {0 G5 X, W6 \" ^$ T
% l8 X% e5 T! l
(defun errexit (s)+ N4 Y' D" a% R) ~ y
(princ "\nError: ")
' z$ j- H# p+ l (princ s)
7 V: ~8 [4 `& W" l (restore); ?/ }. Y! q- x' V, w' _
)
' F% o# w3 e8 o" c0 c$ u2 Z* s" l# ^) g. X5 y( T7 C- r
(defun undox ()
4 K* |+ z+ [2 q# I6 N8 C4 b (command "._ucs" "_p")
o) |2 Z- p e) f (command "._undo" "_E") a! J1 v5 Q: l; y+ ~/ z
(setvar "cmdecho" oldcmdecho)+ |7 |5 s6 T6 k3 a% i3 E
(setq *error* olderr)( s$ R$ _( N# y s# B; D) l
(princ)7 z$ o$ b* D2 P- s4 @/ \+ V: o( ?% W
) w8 {# O+ V1 w- m" R
. U3 r$ G- B' S& c (setq olderr *error*( w0 N5 V& u: }1 W7 e
restore undox
- o, p1 }0 k3 ?2 f *error* errexit# h. _+ r& [5 f! ~( R
). a7 |( T1 K% E9 ]0 b" q# \2 ~$ | b
(setq oldcmdecho (getvar "cmdecho")); o+ W2 z* l" g* x* J
(setvar "cmdecho" 0)) y) b* j' y: @% j3 T* Q
(command "._UNDO" "_BE")& e, O# L- d7 u; G) Y
(if A2k (progn5 J( x# r, i1 {* c9 K
(vl-load-com)
4 D$ I/ p5 a9 ~ c, u/ d: G (setq *ModelSpace* (vla-get-ModelSpace
( g; N. ^: y4 j1 x/ x( Y! v (vla-get-ActiveDocument (vlax-get-acad-object))9 b+ ~' @0 m4 l& U
)
1 g* s1 @0 E0 m0 X) { *PaperSpace* (vla-get-PaperSpace
2 [5 N9 `6 o/ C/ |3 | (vla-get-ActiveDocument (vlax-get-acad-object))
9 S2 E* k' G9 s2 G ), c( i/ S: @4 R8 |0 y
))6 f' {" ~- H3 K- \& m
)
, e- q( m4 J; t/ X& d8 i2 r' `9 `4 \' Q' t, S& o" t U
( p- b. U" }; }% X7 r+ U' E
; Remove for testing purpose
0 o3 _2 h# C# g" q( U7 X; (setq A2k nil)
1 U- |' s3 n& {- L
+ t( L6 U4 l. A/ v g (if (/= (setq ss2 (ssget '((0 . "HATCH")))) nil)
8 e4 q* g! Z! X (progn% @6 D6 X2 Q2 O1 M
(setq i 0)/ n' W* w) ~: n: u3 E
(setq area 0); N: k& X! |8 [2 E6 x4 O' K0 G! K! Q" W
(setq bMoreLoops nil)
1 G4 n. S( @/ H! t# _1 R4 e7 q (while (setq ent (ssname ss2 i))7 ^/ J8 ]0 L( n- d4 q$ y/ ?
(setq noarea nil)
9 }5 M9 ~% B: j# @ (setq ed1 (entget ent))6 |5 Z. M7 z: H% X% L& n- {, ^
(setq layer (cdr (assoc 8 ed1)))
* ^9 I* \$ v$ \, h. n! P8 n ; (if (not (equal (assoc 210 ed1) '(210 0.0 0.0 1.0))) (princ "\nHatch not in WCS!")) ;modified by xiaocai7 q$ A* l+ x* W V+ U) N& T
; (setq xv (cdr (assoc 210 ed1))) ;modified by xiaocai Q3 ]* J2 P, s9 h
(command "._ucs" "_w")" J, [; p& w) q7 Y0 s% }
(setq loops1 (cdr (assoc 91 ed1))) ; number of boundary paths (loops)
. r- i" h: ]2 H (if (and A2k (= (strcase (cdr (assoc 410 ed1))) "MODEL")). o; F% n! G) N) \
(setq space *ModelSpace*)/ U8 X" R! t' f- V0 Q7 o& f6 F
(setq space *PaperSpace*)0 f8 G" J' g! I: _$ p C9 a
)1 o& u! ]: ]6 t+ ?6 J
(repeat loops1
, S4 j2 P& s" ]: N; h (setq ed1 (member (assoc 92 ed1) ed1))
) v3 o7 {4 N0 n (setq bptf (cdr (car ed1))) ; boundary path type flag
4 y; d% M5 ], g* ~2 U (setq ic (cdr (assoc 73 ed1))) ; is closed
! X' W `% y* f5 y6 n/ h( @ (setq noe (cdr (assoc 93 ed1))) ; number of edges8 T$ Q3 r) ^9 I* U
(setq bot (cdr (assoc 92 ed1))) ; boundary type
. T b$ Y0 R$ g2 L (setq hst (cdr (assoc 75 ed1))) ; hatch style
0 L& v1 O% ^& a$ K/ X7 j" u u" \. \+ f (setq ed1 (member (assoc 72 ed1) ed1))
0 D3 j; F% x5 O9 } (setq bul (cdr (car ed1))) ; bulge
+ e+ r+ @1 ]! t' ?4 x& v" r (setq plist nil)% P- Y/ L1 ^, x3 {0 y, l: t
(setq blist nil): F% k/ D* t4 ^3 j; J. p
(cond$ w, U0 x& U8 V0 @6 a% o' s
((> (boole 1 bptf 2) 0) ; polyline" X% Z$ h: z( x+ t
(repeat noe
1 U% W4 H1 l- N4 R7 j (setq ed1 (member (assoc 10 (cdr ed1)) ed1))5 l( Q+ |' b6 v b
(setq plist (append plist (list (trans (cdr (assoc 10 ed1)) ent 0) ))) ;;add trans by xiaocai
; D8 ?' p3 N3 P" o0 X4 q (setq blist (append blist
3 H1 a0 {' }) \' `1 d. i5 d+ x (if (> bul 0)
8 ^9 n6 A0 [3 C (list (cdr (assoc 42 ed1)))0 e& o4 e, \& j8 C/ ^* c l
nil( {) p: [) u" X
)
; _( {; A1 X1 q; n )
+ p4 k% m& Y! r )
1 b! t* C7 E8 q% p/ k. t& r )
7 q) B! s6 p! C! C2 Z/ J0 P (if A2k (progn
# ]6 }' X/ M' h- W3 H (setq polypoints4 C6 O. J& Z( \) Y8 W- ]% E
(apply 'append
) B" v6 y8 s9 _2 s (mapcar '3dPoint->2dPoint plist)& p2 T: x4 ~- W1 ~( K
)$ x c8 N4 j* ]0 D+ _
)
% f, \: r/ ?9 a7 v$ Z* w" ]- i (setq VLADataPts (list->variantArray polypoints))+ V Q% ?) p, ~& }8 r( [* k
(setq obj (vla-addLightweightPolyline space VLADataPts))2 N4 U" |& P# g3 y3 d% x3 G
(setq nr 0)1 ^" M2 z5 x# Q1 E% l$ v5 H
(repeat (length blist)* H# w- c) c/ v* }1 G9 p1 e. C- y+ }- ~/ d
(if (/= (nth nr blist) 0)" ~$ h/ E9 s; W- J* q: I/ R/ N
(vla-setBulge obj nr (nth nr blist)): _5 o7 Z7 c% J+ Q; V: }
)
/ z3 r/ ?. h" j. X! o& s (setq nr (1+ nr))2 q1 C1 ^/ N8 b% g* o$ d
)6 C% X! n6 C' B% u
(if (= ic 1)( b/ a' N0 a+ C5 a- b2 R1 e4 Z% Y
(vla-put-closed obj T)7 L; p) l: i8 x
)
. O) N; |* K! k3 z (if hl (vla-put-layer obj layer)), [$ x2 H9 h* }3 @6 R* X. X) H
)
, w$ a$ }7 {' G& S (progn. e8 e5 `3 T, g9 x
(setq ne (append (list '(0 . "POLYLINE")) (list (cons 66 1))))0 s. `/ p% `" j1 O% x. J
(if (= ic 1) (setq ne (append ne (list (cons 70 1)))))
* I5 W! {6 V) ?0 l( j: v (if hl (setq ne (append ne (list (cons 8 layer)))))
|/ j' s" @% A* k1 g, p& X (entmake ne)
4 p) M W) P8 p- ], _, V' ?7 Q5 E! a (setq nr 0)
0 N, X( p) a7 O% H (repeat (length plist)
/ o, G: |9 `# _% _& y (if (= bul 0)$ ]" e- }: v# I0 i4 ~: [' C
(entmake (list (cons 0 "VERTEX")
* \( d% E0 U* I0 N5 @5 h& x' d! c- w (cons 10 (trans (nth nr plist) ent 0) );;add trans by xiaocai
$ t5 a6 S* i; v/ X4 h )% ^( }' P; B& h
)/ o( b* Z/ |& x
(entmake (list (cons 0 "VERTEX")
- U5 O( n, m h5 J6 F (cons 10 (trans (nth nr plist) ent 0) );;add trans by xiaocai
+ Z8 Q& U# W8 ~5 D (cons 42 (nth nr blist))
# b2 q; W. a, f9 g ): s0 |% x2 @4 W+ a% L
) E% ^" A) O& q- V5 _. b% c! G
)9 R0 ?* h& {0 H) G W& R
(setq nr (1+ nr))1 b3 Z0 m T- Z8 ~* q; w1 A p0 G
)& G' q5 ]3 a1 M- Y: J, {
(entmake '((0 . "SEQEND")))
$ U) X1 d6 E+ u )+ d$ m: e' g* A% c b. R5 @
)
$ F" _- e% C3 \4 h8 _: K )
) _, D1 f+ l: a* r) h$ U0 a (t ; not polyline3 i8 Z. k; r' g2 O
(setq lastent (entlast))
7 b) ?/ G; I1 X0 @ K (setq lwp T)
: i1 V% n/ D A. Q (repeat noe
7 C' w7 e& }. @+ V& c& X2 L (setq et (cdr (assoc 72 ed1)))
0 b. T5 o" I4 V (cond" A2 N; c9 S- r8 L$ s
((= et 1) ; line
: @. Q" ?7 ?* ^+ I5 f$ _1 X (setq ed1 (member (assoc 10 (cdr ed1)) ed1))
/ N& J7 y7 m4 `6 ~ (if A2k
2 `( t) ?% T% M$ Y+ h' i; a+ o (progn0 U) f" F) K3 ?6 _
(setq obj (vla-AddLine
8 k7 B( g, U$ Q space0 d+ ^/ P/ J" v( i
(vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) ) ;;add trans by xiaocai# Y5 ~* X+ n d; U4 D# m
(vlax-3d-point (trans (cdr (assoc 11 ed1)) ent 0) ) ;;add trans by xiaocai
% h. e( a; |6 J7 Z) O; s5 p1 r ))
8 l! b0 ?5 O$ T) q! ?$ y (if hl (vla-put-layer obj layer))+ y9 u: j5 A4 Z+ ? p1 i
)4 P) O% a" K8 c; q* c5 a
(progn
7 H5 h# C+ t# S( D: } (setq ne (append (list (cons 0 "LINE"))
" ~& X) {$ N$ _$ f (list (list 10 (car (trans (cdr (assoc 10 ed1)) ent 0) ) (cadr (trans (cdr (assoc 10
4 m. T" p) v2 n% Y! U$ ^$ C0 S9 B- Z8 m) G5 f! n9 v) Q
ed1)) ent 0)) 0)) ;;add trans by xiaocai& E3 R/ ]; x9 V5 {
(list (list 11 (car (trans (cdr (assoc 11 ed1)) ent 0) ) (cadr (trans (cdr (assoc 11
. z' z8 z# J$ V: }0 ]9 g. e/ }: A4 R: x/ U
ed1)) ent 0)) 0)) ;;add trans by xiaocai8 N5 L2 V7 x' q: W0 Z8 t+ ~) z
;(cons 210 xv)
0 V* W- t' I( Q' y2 s# G# r )! B/ Y& n; Q# J+ _
)
3 x: t+ |+ t9 w6 y m5 e3 w (if hl (setq ne (append ne (list (cons 8 layer)))))
/ Q. r- C5 a, t% P( t2 ]6 l (entmake ne)5 h5 g d8 q+ g3 h4 q4 z- W7 ?
)
, l2 F$ o: ^+ q3 k4 k )
8 @; Z/ ]2 h! i& ` (setq ed1 (cddr ed1))3 f' W2 D3 O# X
), x6 H- a" G0 C- H- \, F; u
((= et 2) ; circular arc
/ J0 q- M2 l/ W0 G (setq ed1 (member (assoc 10 (cdr ed1)) ed1))5 X9 R1 F3 j& R+ M/ Q- W0 @
(setq ang1 (cdr (assoc 50 ed1)))
! v5 G$ C' D* `( ]2 @ (setq ang2 (cdr (assoc 51 ed1)))% n1 I$ p$ x' e U
(setq cw (cdr (assoc 73 ed1)))* f& _0 t, {# v, e
(if (and (equal ang1 0 0.00001) (equal ang2 6.28319 0.00001))4 j* A! U6 ?8 q* b+ v$ G
(progn s2 E6 E8 Z/ X! @! ^" w+ M; Y9 e
(if A2k& ]9 a" r7 i% G. |6 m9 V/ O
(progn
% x+ G, q; L. I9 a$ f (setq obj (vla-AddCircle2 d% T' ] }) \; K. D
space b% a% V4 G2 K1 D6 w" A
(vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) )
" A M* _) h7 T+ v (cdr (assoc 40 ed1))& _) c6 L6 _. @
))
8 E# J X# ], N; z" R (if hl (vla-put-layer obj layer))
0 X3 A1 a4 ?# W5 ^* q. D& {/ G1 Z )9 j2 B* R' i5 q5 m: q1 k
(progn8 o i0 H& u) U! }8 }
(setq ne (append7 B2 s- b$ \2 w! m% g) V+ o) D
(list (cons 0 "CIRCLE"))
" N! P4 u8 J0 h7 n `* Q# N$ J, [ (list (cons 8 layer))" x7 f: V. E1 h5 B, r* s& X) e
(list (cons 10 (trans (cdr (assoc 10 ed1)) ent 0)));;;add trans by xiaocai
$ W2 l; e, u) H6 Z0 C y! B+ g (list (assoc 40 ed1))! G0 ]7 u5 L+ M
)2 U0 e3 @" u7 o6 b- K
)
# n: ^* M) e9 `! g (if hl (setq ne (append ne (list (cons 8 layer)))))) O# p- r: ^0 T( {$ r9 U
(entmake ne)- O& e9 O2 Y, ]- @
)
, k: a9 n G- N6 o" | )% a' M# ?8 n2 q, F1 q/ E/ N" j
(setq lwp nil)8 W9 j( T" e7 }& K- c
)
/ k$ @4 a. m$ j2 U8 K1 V* T6 ^ (if A2k
/ P$ _, I. P0 j" A (progn
. F" Q$ g" r; q (setq obj (vla-AddArc
7 Z) a+ w7 L* B! U# G! ] space
/ m5 j1 d" B. b (vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) );;;add trans by xiaocai
" h9 y5 S7 O2 ]$ ` (cdr (assoc 40 ed1))# h; V* ]/ s. W) K% N+ ~* a
(if (= cw 0). L* v3 `8 ?/ c' N0 v) Y+ ~
(- 0 ang2)5 a! k; d& X: ` Q! [6 ] Y0 |9 A
ang1& J# d/ i3 L3 f1 S# S
)
$ l( ?+ y0 h" Y" ^% p (if (= cw 0)
6 f. p0 h" R: ` (- 0 ang1)7 x3 j* d+ \4 g! O1 q! i4 s
ang2
* F' C* N$ ^( e& z8 e )
, V8 [: o0 @; q- V. e ))
1 M. L, b n" j+ I. n% b0 J (if hl (vla-put-layer obj layer))
; s! V* c n/ d: x0 ?+ N# o ): ?4 I* H/ }9 l2 n
(progn
1 U/ V& \0 n' ^8 M! w4 y (setq ne (append (list (cons 0 "ARC"))7 L" n( E6 C5 G8 E% ?
(list (cons 10 (trans (cdr (assoc 10 ed1)) ent 0) ));;add trans by xiaocai
5 [; m. ]- G( _! ]" Z6 z1 |; F ` (list (assoc 40 ed1))
) j. \; N2 i q% f' v/ y5 } (list (cons 50
' V8 o5 C! m: i/ O (if (= cw 0)
m. Z" ^$ }. ]: b (- 0 ang2)
0 b+ }. H0 N: d, w7 o3 Z+ C1 _5 } ang1- M. m: n/ W+ n
)
9 s! b; E, K7 M) M; O1 ^ ))
& e# G5 @7 B+ u8 ]: G (list (cons 51% } g; O& @! r4 x* ^! u
(if (= cw 0)
# C' ?8 T: B+ }$ d5 ?9 L8 g (- 0 ang1)
( W/ Q4 {5 B! t ang2
. [; g7 T6 Z4 e4 m6 a% { )) S5 V! ~2 w0 t3 ?" m8 k, c
))
# P8 q. l( J1 O) a* P7 w )8 \2 I% y8 B4 e0 z2 }
)! A! v% L6 w2 G) p! o
(if hl (setq ne (append ne (list (cons 8 layer)))))6 \) A% x( W: ~3 }
(entmake ne)( c( v! y$ W' H+ V3 R
). H4 _2 y' T; _4 g8 E" i
)
( o/ b* L# d5 c2 b6 O )' q7 t0 N# @ W: l" L2 e) j% v' F1 k
(setq ed1 (cddddr ed1))
8 ?1 i' n: u( U( U( d$ X: } )
; Q! Z2 H+ A. i. S1 B ((= et 3) ; elliptic arc9 l. A/ g% _! e% X! A* H+ H
(setq ed1 (member (assoc 10 (cdr ed1)) ed1))+ y8 `: {6 T) i" E
(setq ang1 (cdr (assoc 50 ed1)))9 g- y; N0 F" P9 T
(setq ang2 (cdr (assoc 51 ed1))). Q2 c4 A0 @0 V# e1 S4 n6 ]: Q. {
(setq cw (cdr (assoc 73 ed1)))
0 U& w; h1 c/ {! d$ K (if A2k (progn( e" l/ c7 r' \- {# }3 @% @$ \
(setq obj (vla-AddEllipse
2 k6 Z- N. {7 v1 ` space9 N7 G6 Q E4 }1 P# t+ Z
(vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) )
" \' [% `; S0 M9 Z! _, T (vlax-3d-point (trans (cdr (assoc 11 ed1)) ent 0) );;add trans by xiaocai( v, ]9 ^. t8 p, y
(cdr (assoc 40 ed1))
' B7 s, I/ b \7 R0 o )
% K! ~' B* y/ U7 f6 N+ Y- p )
2 H4 w, w' z8 v( S, a3 [, m2 i, I (vla-put-startangle obj (if (= cw 0) (- 0 ang2) ang1)), O. B4 U( \. ?, G
(vla-put-endangle obj (if (= cw 0) (- 0 ang1) ang2))
4 }2 O3 z9 V4 g$ O$ k (if hl (vla-put-layer obj layer))
% Z5 A5 Y$ s }6 m )
' l4 \) e' }0 m) x% I: O (progn
- G& }# v; S. k% K (princ "\nElliptic arc not supported!")0 N; T1 h7 t6 F" g8 v
(setq noarea T)' j7 _* g. S. a- c
)# y$ u% H S' @* {3 w
)( ` L5 z/ R0 {& c% d& r# A
(setq lwp nil): y* B- i; L/ F+ L
)" N. ~9 ^/ q- |8 F. o( E% o% c% P
((= et 4) ; spline
4 T4 `" |- I6 {' H: P) h# i. v8 j (setq ed1 (member (assoc 94 (cdr ed1)) ed1))4 q, s, _3 M' ^, o
(setq knot-list nil)
' v' v/ X! R9 E# V: u (setq controlpoint-list nil)" }' }: E, q. T7 ?4 W' R
(setq kn (cdr (assoc 95 ed1)))+ K& I3 V3 O6 h6 X
(setq cn (cdr (assoc 96 ed1)))
( j- m5 [- s) E5 O! \ (setq pos (vl-position (assoc 40 ed1) ed1))
! I3 \; U. }' f. Q2 k$ f* \ (repeat kn" t; W3 P9 a% T3 V P3 f
(setq knot-list (cons (cons 40 (cdr (nth pos ed1))) knot-list))) F6 C) u% u( w$ f
(setq pos (1+ pos))$ h! }) Q2 B4 i' V' e
)4 W! c5 j7 A. U. A
(setq pos (vl-position (assoc 10 ed1) ed1))8 ^4 t2 |2 k5 T+ H2 _+ z
(repeat cn+ }' S0 V, o N! L) w
(setq controlpoint-list (cons (cons 10 (trans (cdr (nth pos ed1)) ent 0) ) controlpoint-
y% V" ~, v+ h6 d% _. J' n2 }* v6 `+ n
list));;add trans by xiaocai
1 g. M7 w5 d+ H) A5 q/ ~" s; l (setq pos (1+ pos))+ N9 }& W4 g \. N
)
4 C9 }" e+ c, d (setq knot-list (reverse knot-list))7 `2 V! A: s" i$ r) w- Z7 }% L1 U
(setq controlpoint-list (reverse controlpoint-list))+ }; M# P$ W5 |' p: K
(setq ne (append* N, y; j- |9 \2 j! S( F
(list '(0 . "SPLINE"))
( N! `. t/ l; W5 T2 L (list (cons 100 "AcDbEntity"))" V+ O: ~0 U9 _+ x: d/ I4 }
(list (cons 100 "AcDbSpline"))) ^8 o% y f& i/ ?: x% {4 ` [7 H( ~( S
(list (cons 70 (+ 1 8 (* 2 (cdr (assoc 74 ed1))) (* 4 (cdr (assoc 73 ed1))))))" Y7 u% `/ g2 l
(list (cons 71 (cdr (assoc 94 ed1))))
# a5 J& \, o# d' V/ o: d (list (cons 72 kn))
9 o) v; J: R. u1 s% ]5 p4 \ (list (cons 73 cn))1 }* F2 Q, f! z* R
knot-list- L' N2 }# R+ i5 R; O( R5 ^3 P
controlpoint-list4 E) E2 M9 g/ x& c$ Q. `
)! t+ N, u7 g" ^: a6 \
)
9 j w' ?$ N% I4 _# h! D1 x M (if hl (setq ne (append ne (cons 8 layer))))) | d6 q0 K8 V) F3 Y# {1 l" u
(entmake ne)8 B; O- P0 |+ n5 ^
(setq ed1 (member (assoc 10 ed1) ed1))
6 C" h0 B0 z: | Z" o/ Z (setq lwp nil)/ ?2 i* ?: V# H1 r
)
5 P; E% z: }8 h9 k ) ; end cond+ u o- H. ]8 V, J8 {; A6 m# `0 {& }
) ; end repeat noe
, I2 T0 ~1 L5 s9 R7 i (if lwp (progn8 k$ H- l7 M, t- y
(setq en1 (entnext lastent))* O5 ~* [ l) V6 B1 A
(setq ss (ssadd))9 W$ `* K/ s7 t: j
(ssadd en1 ss)! R6 n. I; s$ |0 u
(while (setq en2 (entnext en1))* r) j! M# W9 h% m
(ssadd en2 ss), J- s: k2 _2 s4 b% F# r
(setq en1 en2)
+ O) b* V Q5 Q$ p& K9 o* S$ o6 z )6 [, s7 a8 u9 _% |
(if (= (getvar "peditaccept") 1)
; t- Y$ g J/ q; M# c7 ^: |! o' b; ^ (command "_.pedit" (entlast) "_J" ss "" "")
5 y+ ~$ N9 P9 y8 Q# Y (command "_.pedit" (entlast) "_Y" "_J" ss "" "")1 I: O- B0 V$ D, N- {- [* X
)8 ^, i v6 L; z& c9 \$ r
))
3 G. l2 Y; L& V8 y! T n4 S+ }% P: N2 a) M- z! c8 t
) ; end t4 E2 T9 J' l X, w- E* Y
) ; end cond
; X& o3 r* c! e" \8 b7 l6 @; Tries to get the area on islands but it's not clear how to know if an island is filled or not* ]5 E8 L7 y2 b' J5 e, c8 W
; and if it should be substracted or added to the total area.
# U( l1 A0 T, v' y0 X; (if (or (= bot 0) (= (boole 1 bot 1) 1)) (setq area (+ area (areaOfObject (entlast)))))' d, y! a: k; u2 T! V4 i- H
; (if (and (/= hst 1) (/= bot 0) (= (boole 1 bot 1) 0)) (setq area (- area (areaOfObject (entlast)))))4 t, D6 ]$ x$ q* N
; (princ "\n") (princ bot) (princ "\n") (princ hst) (princ "\n")
7 ?7 ]2 B( X- f; (princ (areaOfObject (entlast)))5 q( p+ f! g( ^3 W) ]6 {
) ; end repeat loops1/ @0 V' g: m2 c9 [
(if (and (= noarea nil) (= loops1 1)) (setq area (+ area (areaOfObject (entlast)))) (setq bMoreLoops T))
; S1 n+ M/ Z1 m7 U+ M+ j (setq i (1+ i))* S% D# E- j' A3 G0 J4 c# w
)7 q, Q; [: X3 a, q. Z) q* l1 ]
)
4 J, ~4 J0 p% ]* X& R )# ]# `5 k5 A/ `' ^( b$ ?
(setq ss2 nil)
% w* C8 b3 P1 Z) O g+ ^! b (if (and area (not bMoreLoops)) (progn, H$ t$ @6 c# y# a. p8 @
(princ "\nTotal Area = ")
& X! H+ p5 e5 @7 f7 _2 S( U( v, y (princ area)
7 e6 i% F8 q, @# r( j& A$ L ))# B) E0 F7 n# M
(restore)
' r1 W k0 \4 g" c (princ)3 B q* E) t1 m+ C
){\rtf1}0 e& k. T7 A1 V! q$ G
) [" b" y2 t+ V& ~- C* u(defun C:BN ()1 |9 Y) z) f ~) J( s( x
(princ "\nAdd block name to drawing.")2 [5 {, p" v4 d3 S
(setq pt(cadr(entsel"\nSelect Block:")))
% H" }1 o# b1 q5 Z X% I (setq e1(ssget pt)) & V* s$ g; A, o. l( }, m
(setq e2 (entget (ssname e1 0)))4 x7 d$ f4 ~! S, n
(setq blname (cdr(assoc 2 e2)))
/ ]5 L' K8 h' t (setq pt1 (getpoint"\nSelect point for block title:"))
6 a. o! G' k) e F# U (command "text" "c" pt1 "" blname))
5 [7 J: u9 D0 @: Z(princ "\nType BN to execute)
& b3 C" ?; ?, I( t! n�32
. k7 R7 ], k2 J2 t" z* k+ v) h& u
2 q$ Y7 q3 r8 d. I4 I
& m3 F) v2 z# k; J |
-
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
|