|
|
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">5 o+ D5 M, P9 A4 h0 W
Sao chép mã ********************************************************************************5 b- z8 I# {6 n
* ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
5 v O+ L! H, ~3 X8 a1 |" T* Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *8 N" a2 W u0 ^# `5 G/ W. o( o
* Suu tam & Soan *! B) D) l6 s' |* y
********************************************************************************
! G& R. l: M& |3 ~ ?$ E5 u
5 X& W* u: I* {- a/ l7 [4 y$ X; Next available MSG number is 104) `/ `* X6 u8 |+ B9 k0 B* l2 H# H
; MODULE_ID ACAD2000doc_LSP_) a+ e8 [+ @% i
;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
' G! R; ~9 B- X3 m1 I$ W# l2 R# _;;;
8 R$ e# _; K4 L4 z;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.# |" J7 h! F0 n: R0 y8 x/ u; a. R# Z
;;;
6 d2 c0 L# J. r" `' u;;; Permission to use, copy, modify, and distribute this software* S! z0 J; a1 ?% c }
;;; for any purpose and without fee is hereby granted, provided. C% N8 C" M" k* r
;;; that the above copyright notice appears in all copies and6 x1 _9 q- D6 |: p; D
;;; that both that copyright notice and the limited warranty and
; K. r y7 Q% ~/ o: ^6 q0 L! m;;; restricted rights notice below appear in all supporting
# O& b. j* v% ]5 r; Z' j9 l;;; documentation.
. a9 ~4 Y4 M( V( K. E9 X' q8 ^( S8 O;;;
% A- U5 I3 \6 @+ V;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
5 J- k! m4 h+ e/ D C;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF% K' q7 V0 o8 M; d% ~
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
! M: l( i3 o5 b& C) F3 j- G+ k;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE$ e. T" {0 P) X) @/ U9 q. v
;;; UNINTERRUPTED OR ERROR FREE.
; } W* Z2 K$ z1 e5 E;;;
6 m2 _! E; U% _' G3 x;;; Use, duplication, or disclosure by the U.S. Government is subject to
J' z$ N% e4 r# g;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
( z3 v$ C& `* C4 ^, U& L% L;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
7 Y6 i0 X9 w3 n9 \6 H2 L;;; (Rights in Technical Data and Computer Software), as applicable.1 @ n, x2 K/ j- e+ }$ n/ {
;;;& _1 A( `1 I0 Q5 w. n L
;;;.
2 L& `7 Z0 \" A- o;;;) S0 V. Y% O0 A+ ^- _: i* G& A
;;; Note:
! @4 w$ A) y8 k: ]8 o;;; This file is loaded automatically by AutoCAD every time & l% c/ T9 }/ C6 b# j) a
;;; a drawing is opened. It establishes an autoloader and; N6 \: d" C" {! G
;;; other utility functions.4 l. h" L: r5 G$ c1 v, ~: e" Z% }
;;;
" R- q% W' o7 [2 Z. H* d4 h# [7 c;;; Globalization Note: , g/ `* _9 }! _" e
;;; We do not support autoloading applications by the native 4 h7 y2 b h& }' M
;;; language command call (e.g. with the leading underscore
E+ ]# ?# \6 \* C: G( P, x! ^* [1 Q2 I;;; mechanism.)
4 T: d2 l, o' s
2 k0 a: V3 E" l9 P( u: ?
9 |- l# N/ V5 t! l' m9 B+ N;;;===== Raster Image Support for Clipboard Paste Special =====
% x; t+ @8 T/ S3 F;;
) v) L3 ?. N* {( B/ r) p$ f+ O1 p;; IMAGEFILE
7 k# B5 y u$ Y. v* F6 S/ b* a% e;;; z6 G1 R- F0 j5 v
;; Allow the IMAGE command to accept an image file name without- b; c: K" u, x; Q, h6 J; B% c- h
;; presenting the file dialog, even if filedia is on.* e) i- T& @+ K. [* P$ o
;; Example: (imagefile "c:/images/house.bmp")0 n$ |+ S. q& F, z M% c! X
;;
1 w( m+ C8 v a X) H( d# \; g(defun imagefile (filename / filedia-save cmdecho-save)
% M0 i9 k, I& R" r# q (setq filedia-save (getvar "FILEDIA"))+ w6 v8 T* B8 s- m! q; f4 ~
(setq cmdecho-save (getvar "CMDECHO"))
; U5 A' b. _" _0 ?+ u6 C (setvar "FILEDIA" 0)
6 H, q9 h, P( h! Q1 w (setvar "CMDECHO" 0)
2 z4 A. W# [- j (command "_.-image" "_attach" filename)
; [- N$ b' N& V8 J (setvar "FILEDIA" filedia-save)
7 L* [4 p$ O& N a; g (setvar "CMDECHO" cmdecho-save)# o9 F! K& L1 l' {
(princ)
5 l: ]: ~1 S& _# Q5 T9 a)# z2 `- X0 J( G) _2 {, j; I
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7 H/ u6 v! h! ~5 D/ f0 e; Next available MSG number is 11
5 y' ^# V2 V G4 n4 _+ ? X; MODULE_ID DDVPOINT_LSP_
5 i p# g% O( B: _4 y;;;
z, H3 Z8 O Z6 x;;; ddvpoint.lsp
# v( f- x2 s s- ~. Z$ I$ x' w;;;* b& M% ?$ Z# h' r) |" i7 `
;;; Copyright 1992,1994,1996-1998 by Autodesk, Inc.3 V& r7 L2 k9 v: m4 U4 b# @
;;;
+ ^/ V1 T0 ]3 ?" i; I* w& R# H;;; Permission to use, copy, modify, and distribute this software# e# Q5 G. g1 ]- C& z
;;; for any purpose and without fee is hereby granted, provided& a6 ~" J$ a z( N3 q$ D
;;; that the above copyright notice appears in all copies and
4 ^: `( ]0 P" ? B;;; that both that copyright notice and the limited warranty and
+ q) g1 J+ @& w$ I- V;;; restricted rights notice below appear in all supporting
: }/ p) v2 _/ x D& R. { ?# P;;; documentation.. @7 P/ T- ^2 g4 c
;;;* y, O E' P+ b% R- k* z
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
& W d8 p) u* M) g- l;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF; A" B; U; t- h) z& c
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.1 ` }7 F& b" e+ d$ h
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE* W8 R! o o8 ?, S6 ^* ~
;;; UNINTERRUPTED OR ERROR FREE.
0 m% h7 g6 c! e;;;+ y! P, g) h/ K, M* x1 ?
;;; Use, duplication, or disclosure by the U.S. Government is subject to
3 y {! [. X3 l8 Z! | @;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
) X4 O5 I; C8 d/ T0 s+ M" H) }1 ^;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) " K4 t" B- @2 K( o
;;; (Rights in Technical Data and Computer Software), as applicable.2 _ O" {) Q/ N6 z/ h- P, P
;;;; t! {8 C" [& D6 P
;;;.' d4 R* O" u' h; E7 ^- G; ~
;;; C DVPOINT - 3D Viewpoint presets dialog.% P ^) t! F4 o- n
;;;, y. `# L$ ?. f, H5 A M" r) _
;;; Uses DDVPOINT.DCL for the dialog definition.
* j% y( `* }1 ]$ q3 R4 P;;; The slide image is in ACAD.SLB.3 D4 _- h8 c4 g/ ?5 b- k( m
;;;5 E9 h9 r1 ~$ J$ N4 [% ?9 k; I/ [: @
;;; ===================== load-time error checking ============================
6 n9 X% d0 z" K- `;;;
& c0 i" \; l+ i: l2 B
) p5 \ O' o4 B4 Y# b% r; a. m (defun ai_abort (app msg)
3 ^ B' t. l; p' K: S/ C& d4 V (defun *error* (s)- N9 S% ]1 }: G% U7 l
(if old_error (setq *error* old_error))
% j- g! j& P5 j* q$ m6 |( U$ F (princ)+ h& X; W- w4 G5 v. G# F" V
)! }1 ^: |, u s# |2 u7 d; w9 S
(if msg
3 Y4 a% f. P0 y8 @: S1 S Y (alert (strcat " Application error: "8 M* ^4 H% O1 r
app1 C0 I3 G% w7 M
" \n\n "# T( m, u8 j4 F: b5 L
msg! G: W# b) D8 g- _( _
" \n"
/ U, B5 P' L! Q5 p) u )
9 d9 `$ T5 H( l5 F6 {8 Z, v )
5 _, l" a X9 R+ x )
2 S: V: C/ U9 \0 R0 y$ s8 W {* s (exit)& v6 B, |% I: P
)
+ v6 x( C6 E' ^; Q8 s
' z4 a. r( c- h;;; Check to see if AI_UTILS is loaded, If not, try to find it,
) ?' N& g. P1 l6 J2 E7 c;;; and then try to load it.# |; u& z( M) n
;;;7 `1 I( g' p- e# U0 A
;;; If it can't be found or it can't be loaded, then abort the
2 `4 j' A% G$ L; c4 O6 l p;;; loading of this file immediately, preserving the (autoload)# g* M. _/ N* ]/ F4 r( G$ K- v
;;; stub function.
7 J4 w- X" f( H- F! ^
- A" ^+ ?8 ^$ f/ u% @ (cond$ s* d7 w, z& g8 A
( (and ai_dcl (listp ai_dcl))) ; it's already loaded.8 f% ]7 v' q: S" p5 @
0 [* m0 E% l3 D! u: h( i& ^
( (not (findfile "ai_utils.lsp")) ; find it
1 \8 Y+ t/ l& P. u (ai_abort "DDVPOINT"1 O' Q0 v* R7 t- Z+ D7 ]/ P
(strcat "Can't locate file AI_UTILS.LSP."
( | E6 B& p! n0 ~4 Q8 K "\n Check support directory.")))
3 Z' K `& h. b2 S* ^4 S/ v ?8 k9 b7 v- A. w4 V
( (eq "failed" (load "ai_utils" "failed")) ; load it
5 T( { T* v0 H (ai_abort "DDVPOINT" "Can't load file AI_UTILS.LSP"))
! D. y G2 y7 {$ \ )
7 w, Y: M3 I7 w* T; s' w/ Y4 K5 N- f' }
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP0 J5 J" F+ J/ e" A2 b
(ai_abort "DDVPOINT" nil) ; a Nil <msg> supresses$ T; K, x: `: `- [) H2 Y+ _8 {* r, A; e
) ; ai_abort's alert box dialog.
+ f3 `" a- X) I
" _2 ~( t/ _, t- d' B# S- E;;; ==================== end load-time operations ===========================0 H7 d# j1 S9 ^8 @
' S1 l! G, Y! A
(defun ai_ddvp_start ( / image_x image_y image_h slide_x slide_y slide_h program)
m' v- l, \7 P' `, o- o$ A ;; Get program name7 [5 Y9 E( U. H, j& b7 g9 G
(if (not (setq program (getvar "program")))
5 t% u& s4 z" j" e: K (setq program "acad")0 Z8 ]- U% I }4 y5 b) n1 ]
)$ d4 {1 ?5 ^$ f- V- g1 I: |) h- ~4 P
(start_image "ddvp_image")
% i6 _! g0 q6 s& q+ J Q* I (slide_image
5 j# X+ ^% w5 i y5 w! @: ~1 \ 0 0
P/ s$ [1 U# ^# @$ }3 | (- (setq image_x (dimx_tile "ddvp_image")) 1) ; B: l) |1 L2 \9 `6 S7 T" G
(- (setq image_y (dimy_tile "ddvp_image")) 1)9 `" m) ?$ E2 V3 W' K8 y- K
(strcat program "(ddvp3d)")
1 d- G0 @7 B% P3 ]4 }6 b/ M )
/ G# r+ i& }7 d! k0 o* Z1 Q (end_image)
9 t4 a6 w* O8 ]' f8 }+ Q (setq
2 m* d$ t: A1 V `' n+ g image_x (float image_x)5 m% d- v# b% _. J, ~6 Z9 [7 E! T
image_y (float image_y)
2 F) u( L% @' z( T4 U6 k0 F5 g slide_x 12.4265
! H" Z; V \( ~: O1 o slide_y 9.0
* k9 q, L8 l y$ [# k2 o image_h (/ image_x image_y)
! J" J8 `3 R. r( f9 Z5 Y slide_h (/ slide_x slide_y)( C9 j/ i! l9 c
)( O. {* ]+ ?+ B
(if (< slide_h image_h)
2 C; ~: \8 m4 s( B0 m+ D (setq slide_y image_y
1 `; o0 w9 n) V, ], g slide_x (* slide_y slide_h)8 ^* @. t% y5 Y7 s$ v5 H0 n) [) {
)
) |( H0 O: s) ^. d- }) y7 ~0 F (setq slide_x image_x
- i# a% w- a; ]* Q slide_y2 (* slide_y (/ image_x 12.4625))
5 g5 Q6 ]! L% G4 a! l, {2 R image_y2 (/ image_y slide_y2)2 l4 I7 F! N n$ J( }/ A$ J3 ]
slide_y (* slide_y2 image_y2)" P9 J, Y9 L1 k* B* G
9 A4 Y2 o7 i& s( e' h' y; O9 H )" X W/ N( L7 V0 G4 l" z' o
)
$ F. M9 {& s) p/ k+ P (setq ai_ddvp_bx (fix (* 0.295 slide_x))
5 t8 R- r w# J, C( s0 ] ai_ddvp_ax (fix (* 0.65 slide_x))
$ T3 w3 t A' R5 U* M ai_ddvp_by (fix (* 0.4875 slide_y))
! S9 m" L% C* S7 r, P7 |7 D2 y8 W; S& J )
* Z; ^0 F$ d; [# U8 w)
2 I; z6 X d9 q! x. \0 M6 U k# l. X+ ]( s r
(defun ai_rtd (arg)
2 A" @+ o! ?8 f5 A+ l" x) k (/ (* arg 180.0) pi)4 f2 \5 F+ V9 \8 L
)$ P- F% |* P: M1 j0 r" Z1 X
& {# G4 O( m( h. E3 M3 d8 Y(defun ai_dtr (arg)
% @' D4 m7 a* [3 h3 A A; r (* pi (/ arg 180.0))
# W3 Q3 R) N. Q1 Q): d, y& ]& a' G" L( d' q5 \
0 t/ ^9 F1 t( n& \
(defun ai_ang3dv (v1 v2)# r1 I4 j5 \; e1 l3 E! Q( I
(if (not (equal v1 v2 1e-12))
. e; ^) J% N9 }* L (ai_arccos1 U: e9 R) v7 S4 u" Y" p
(/ (ai_dotp v1 v2)) z- \" g+ P) M" d% j% u) s f6 k$ N
(* (sqrt (ai_dotp v1 v1))
0 \5 i; g5 t# H2 S, }8 ]* ]" M (sqrt (ai_dotp v2 v2))! E2 ^( l9 I# m ^7 b7 J9 W1 [# h
)4 s& v5 D9 T. L. f6 G) o
)
0 l( v) m# F7 \0 N% p9 d) l7 i )
4 }2 ^7 n4 N5 m _3 ^3 Z (eval '0.0)
; j+ A7 f. `+ o2 f )
# ] Z" I B M; p$ a: h)
{+ f1 Y5 h/ F f! G
( i+ w/ s$ {' }* j2 J1 [(defun ai_arccos (ang)1 Q& J) [ Y+ J
(if (not (equal ang 1.0 1e-06))
0 J5 A n1 K) u" V (if (not (equal ang -1.0 1e-06))
, [ W3 }: z# y2 {1 Y! d! f (atan (sqrt (- 1.0 (expt ang 2.0))) ang)# |# i ^2 V2 f, d6 _
(eval pi)# S$ I9 Z$ T) M
)) X1 [+ M! G6 f1 ^' K1 E
(eval '0.0)* q! W& _! |( V C9 M/ V6 t
)
- j$ h3 f; j U6 f' a5 o$ @" E+ k+ K)4 G ]+ M( r& ^3 @
6 B7 L2 O2 U0 e6 ?5 \(defun ai_dotp (v1 v2)
! f4 T" D) k2 e* G (+$ j7 E% P/ t' s5 z9 n
(* (car v1) (car v2)). V8 i8 W' |& M' D
(* (cadr v1) (cadr v2))$ P4 m9 t1 @- f1 h" S9 t4 U
(* (caddr v1) (caddr v2))5 ^: _' Y- m- u
)
$ Z8 |) R: ]3 Y3 C; ]: O) s+ l)
+ \) _1 t; b) i# W. u
' ~, k" x- Y) ] o4 n1 r(defun ai_ddvp_do ()! k" |0 O$ h; R( i7 |
(if (or (>= ai_ddvp_b_curr 360.0)0 a) N% V z/ P" |( _
(< ai_ddvp_b_curr 0.0)
' o: S% Z# C8 O" F0 ]3 x (null ai_ddvp_b_curr)
& H" X% a' B4 V2 q% G6 s! A$ z. a )
2 c% @# m0 H6 s) S) [: t (progn7 F. E" s# `0 q5 ~
(ai_ddvp_drx ai_ddvp_b_last ai_ddvp_bx 0)
. D* ~5 G, H" r4 G5 t8 R# a5 D2 ] (ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 1)
. r% h0 e: Q. t; V (mode_tile "ddvp_val_x" 2)
5 k) w/ ^* k2 N6 J( M o) o W (set_tile "error" "Invalid angle from X axis.")4 A+ ^7 Z, j5 d- n. d" A
)
' H) H% W; U; c+ G9 | (if (or (> ai_ddvp_a_curr 90.0): c+ a0 t# \7 M4 d1 k0 x# R* C9 A
(< ai_ddvp_a_curr -90.0)
d- _1 W' \$ n* ?, A (null ai_ddvp_a_curr)
5 _8 o. V" y. {8 c$ j$ m, V3 ^ )
# ]8 o, e3 \$ L (progn
8 f& l7 p7 h8 D- X1 p2 F) V (ai_ddvp_drx ai_ddvp_a_last ai_ddvp_ax 0)! Z" f- a' R2 k% f- T8 t8 c& r7 Z& W
(ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 1)+ F; T% @- f% g- `5 V% u
(mode_tile "ddvp_val_xyp" 2)
* J, _. n' A$ d: M* y! A2 L$ s6 u (set_tile "error" "Invalid angle from XY plane.")5 i. ?3 [3 t% `3 C! r: j
)0 e$ e2 j+ |* N( E& o1 r
(done_dialog 1)$ h' Y; ~3 `4 n7 j6 B
) Y& H4 Z$ c9 I" R
)
! j X9 M& \- _- i/ F3 ?! _0 F)
. ^: X8 W4 Y0 u0 x, U; {/ F* S; L: p
(defun ai_ddvp_set_a (ang)
* C3 R% m) N1 o& q3 H; ? (setq ai_ddvp_a_curr ang)
( k" [/ t5 V% c7 U4 v& I6 s& x, h (if (or (> ang 90.0)
$ C/ k J# n1 ~# c) o# _' M (< ang -90.0)
- S/ v1 C' E8 O5 n! c (null ang)
$ [5 d4 @% X$ k; w) C0 Y4 ^% M" }' l )0 s- K& g( u, j) S. s p! E) B
(progn% b) @' C9 e. L. G' t; ~
(ai_ddvp_drx ai_ddvp_a_last ai_ddvp_ax 0)- i* S1 q6 H% V1 @2 G' { o( Y
(ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 1)* N( ?1 w; B0 p9 S |, y& s
(set_tile "error" "Invalid angle from XY plane.")) x3 x; K$ y8 l6 V! Z# t. {1 h$ M% F
)+ `- S# O$ j# k1 m8 j& r
(progn
/ ]+ z3 [/ Y( U. L8 a, f( z (set_tile "error" "")
9 B2 l+ F$ z6 j: z2 Z, ? D (ai_ddvp_drx ai_ddvp_a_last ai_ddvp_ax 0)
+ H. J$ z9 u, D4 Z/ S! O (setq ai_ddvp_a_last ai_ddvp_a_curr ai_ddvp_t T)/ l) i. J/ v1 H# U; w% m. p
(set_tile "ddvp_val_xyp" (rtos ai_ddvp_a_curr 2 1))) p* R8 m- D: I7 e1 l" ~
(ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 1)4 H8 {* h* H+ Q
(ai_ddvp_drx ai_ddvp_a_curr ai_ddvp_ax 7)" ~/ V6 S3 g7 m( ?- r9 U L1 m
)
3 g3 v" G$ P2 k: X8 y) ?, _ )) d$ {+ O7 w9 F$ u9 k+ X& E) D
)3 q. C/ R9 a1 Q0 J+ z( t- X
/ L5 [3 P& L" L1 Q% ?+ N
(defun ai_ddvp_set_b (ang)
- U+ u! \, Q+ Y (setq ai_ddvp_b_curr ang)6 k& Y! v$ H7 K; i. ^% t/ U/ q( P" K
(if (or (>= ang 360.0)7 H4 h0 _! J# _ U8 j1 R4 x q/ ^4 c
(< ang 0.0)6 u+ z% i% Q% s5 } c1 a M
(null ang)+ ^% F" J( c0 X- U5 ~
)# g) e6 Y, r; V
(progn
% J+ c% q; \/ y% A4 w G (ai_ddvp_drx ai_ddvp_b_last ai_ddvp_bx 0)9 U( U$ W* j3 t7 \
(ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 1)+ Q5 c# Y8 |5 e3 V$ S
(set_tile "error" "Invalid angle from X axis.")7 ]; s1 ^% ^* r6 r
)
- x+ x9 n6 {" y' ?* d! ~ (progn5 b7 D) h3 B" u$ I
(set_tile "error" "") d8 g! S' c% e9 h" J6 [
(ai_ddvp_drx ai_ddvp_b_last ai_ddvp_bx 0)- X/ Z! J8 I0 Q* C4 ?4 g
(if (= ang 360.0)
- c! `0 V; m1 V; F4 \2 @ (setq ai_ddvp_b_curr 0.0 . D5 f) T/ a2 q
ai_ddvp_a_curr 90.0 4 _5 Z6 ~) c8 P1 q, m5 h2 Y Q& a, B
ai_ddvp_p T) H' p# ~1 o, w* E7 Q2 v; i
ai_ddvp_b_last ai_ddvp_b_curr# R) x$ K0 o- c5 P/ Q, G
)
& g9 p# g; M- @- w7 ~9 M# o% s (setq ai_ddvp_b_last ai_ddvp_b_curr ai_ddvp_t T)* O5 n4 h2 `1 j, B( F4 `, f& J9 h
)
C2 F: P. n% z5 S7 P, }. B (set_tile "ddvp_val_x" (rtos ai_ddvp_b_curr 2 1))
9 \# u+ r/ G# z$ L% v2 y- X2 ]+ D (ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 1): y; p3 v& u; z* Y' ]
(ai_ddvp_drx ai_ddvp_b_curr ai_ddvp_bx 7)
: I. h. t# h5 f! J )
! m( Y' m2 i% ?# I# ^" L )
1 k; Y& a! m i3 o)( y6 K/ _3 @9 n8 h1 _1 [
% P4 `$ K( ~3 M U( r(defun ai_ddvp_drx (ang x1 col / a x2 y2)
* l m4 V0 J. d) b (setq a (polar (list 0.0 0.0)
' P0 V& |1 F; H. C; U (- (* 2.0 pi) (ai_dtr ang))
& R+ t/ y: {8 Z0 y7 s 25.0
% e+ a% A# a+ p' M7 {+ W6 \0 A )8 q2 H0 g5 _2 f g. W9 `3 G
x2 (+ x1 (fix (car a)))8 A0 K: v: C% k: Y
y2 (+ ai_ddvp_by (fix (cadr a)))$ P* x5 K% g% D. k+ n
)
2 F+ A" x1 i2 h2 x4 U* l. J1 _ (start_image "ddvp_image")- i# B6 z) h9 x% d
(vector_image x1 ai_ddvp_by x2 y2 col)! ?; {" r. W8 h& a$ L" f+ w! g0 y4 w
(end_image)
" V# {% Q4 u6 m9 v0 o2 b); o- L2 t6 W: q, S
# E* B( K$ f4 E% Y+ h- R9 K8 x
(defun ai_ddvp_image (x y / ang1 ang2 list_xy list_axby list_bxby)) J, u. i: W Q" J
(setq list_xy (list x y)' I! T3 P6 C5 w
list_axby (list ai_ddvp_ax ai_ddvp_by)
$ w" G6 X- U& b6 x c( D: y( L list_bxby (list ai_ddvp_bx ai_ddvp_by)% A" A& f. B+ Q' J/ B' e
): ], F8 y4 ? F6 b* M9 _- t. U
(if (> x (- ai_ddvp_ax 1))
' n% W. M% _# _ (progn' k! B, w* n" ?' Y# _- _. f
(setq ang1 (ai_rtd (- (* 2.0 pi) (angle list_xy list_axby))))2 C J2 |5 T: Z6 B' H: o! R/ w
(if (< 90.0 ang1)
5 L# w8 v# r b8 j3 c( t (setq ang1 (- ang1 180.0))
6 r3 M/ C! y% _5 o( ^ L ), z- p1 K+ y' p3 f3 c5 ], g9 R t
(if (< (distance list_xy list_axby) 40)
! j q6 L5 E) H7 d (ai_ddvp_set_a ang1)
1 W; `( ^. r% ], `9 q. N: O (if (< (distance list_xy list_axby) 84)' E2 X( t9 H& j' f- o p
(cond ((= ang1 0.0)
5 U. w' T# e c0 i1 T/ X$ }( a: E (ai_ddvp_set_a 0.0)
4 V5 C1 O4 m, B% `! o+ z )1 p3 M ~" y0 G
((< ang1 -72.0)! k B3 n3 V7 h9 y' U* y
(ai_ddvp_set_a -90.0)+ S) S" h% A! Y1 p- @
); b6 R: E: ~6 ?1 T" I. a' L+ f
((< ang1 -53.0)
2 P+ R O( g! G; a1 Z0 {0 A (ai_ddvp_set_a -60.0)
% n4 d0 P5 x+ j2 U* _2 R )0 p& H8 B# q) o& [5 u
((< ang1 -38.0)
8 ~! Z7 ]# F/ Q% g' r: a (ai_ddvp_set_a -45.0)
8 ?$ C: e5 k( j) O" J7 l4 Y )$ Y* @0 c: U1 G+ J! t/ g- D
((< ang1 -20.0)" {+ H1 Y$ F8 |: ~: C! q2 H2 r
(ai_ddvp_set_a -30.0)
9 g1 ?; J6 K" z8 j% D" w; S )
( H; f4 _6 w" _4 H, n ((< ang1 -6.0)
3 p% ]! s9 j4 N" n a+ w (ai_ddvp_set_a -10.0)& u& b6 @3 m! b/ G) t2 n) E
)
8 a) h; C+ ~2 o! ~# I- a1 o2 Z4 A# l, w, w ((< ang1 6.0)
3 z: k. b2 j, e. b5 n& e$ o (ai_ddvp_set_a 0.0)
0 j% P# j* n$ H- n' q1 k$ Q )0 q- ?' Y. h; Z, ^( U+ `2 w
((< ang1 20.0)& k3 l/ B+ @3 w' W
(ai_ddvp_set_a 10.0). f+ Q9 ]; l6 h# [& w' [
); \( \+ e+ _ v2 G
((< ang1 38.0)
3 l1 f- n V* f; O$ H* T (ai_ddvp_set_a 30.0)% B6 |1 D, a2 g7 c
)6 d: l2 o A% |& S: |8 l
((< ang1 53.0)
/ q8 V0 F0 Q7 |( q, c9 l5 s (ai_ddvp_set_a 45.0)
5 Y+ T6 h0 ~9 j )$ r) O1 ^2 J9 Z' G, v' c5 G: n
((< ang1 72.0)
7 U4 s2 i/ }" F# v. ^+ A (ai_ddvp_set_a 60.0)
$ m4 c7 ^/ W, z! V* z )& r# B% G5 y A1 M
(T# M% s* S- L) E- }6 Q! k1 Y
(ai_ddvp_set_a 90.0), N5 \6 L( U. r
)/ p @0 S$ a3 V' [/ L. z
)# s5 ^6 ]. `% f+ c+ P, H" b
)0 k7 k; O( B7 w1 O4 E% s
)
6 d/ o; S3 C" `( @& C1 j% H' E9 E )- c$ V2 a6 p' h1 d- J' B' l
(progn' u5 D# u3 [9 L; W5 g- J" }
(setq ang2 (ai_rtd (+ pi (- (* 2.0 pi) (angle list_xy list_bxby)))))
$ a( Y3 z9 W y+ L (if (< 360.0 ang2)' f' Z6 |! U( J* a# T& W
(setq ang2 (- ang2 360.0))
3 @$ l; Q/ t& R )
, S1 s4 T2 _9 p( ^- f (if (< (distance list_xy list_bxby) 40)& t7 v7 e. f$ [6 H
(ai_ddvp_set_b ang2)( x' q U P3 p$ k
(cond ((= ang2 0.0)
9 r& J6 A: u5 E- U (ai_ddvp_set_b 0.0)
6 T; t& Z# q b )
8 e# [) ]0 D4 ?" P2 I( [+ Q ((< ang2 22.5)$ r6 w7 `# J+ |. R& v
(ai_ddvp_set_b 0.0)6 n* ?. d3 _0 f
)
) F$ x% J0 s. s3 W3 S2 E) { r ((< ang2 67.5). V% Z& I+ o, M4 \ f* Z
(ai_ddvp_set_b 45.0)0 S0 E2 v, {! S [
); v0 k a& j8 L7 }) O. K9 _
((< ang2 112.5)
2 y# @ T5 j ]2 ?9 } (ai_ddvp_set_b 90.0)
3 I% [# ^& [8 g/ x$ {/ c; @ )
: ^; z8 z# n8 d! V! _! _; y! ?8 c ((< ang2 157.5)
8 h8 f$ H, a, @! Y6 S2 C (ai_ddvp_set_b 135.0)5 p+ [) [9 R' \. q8 j8 r
)1 h3 S7 }: I g* O( R! _
((< ang2 202.5)
9 i0 [/ o# i" {3 [; f# L0 ]# Q (ai_ddvp_set_b 180.0)% G Y7 B6 T v4 |! u
)
) o" P) E/ W0 f" ]8 a3 P+ i ((< ang2 247.5)) X7 s$ H3 s8 g& ]# x; ?1 w; K! v! o: e
(ai_ddvp_set_b 225.0)9 {' I9 `5 T5 L2 ^
)
- P, y5 c5 [+ g ((< ang2 292.5)1 i( p6 s9 v0 f
(ai_ddvp_set_b 270.0)
! D8 r! c1 x; s, Y) @0 O2 } )& P4 @ q9 w+ Y2 _
((< ang2 337.5)
; P- N4 |1 m, c; ? (ai_ddvp_set_b 315.0)+ p1 M0 E4 D% n T
)
- \1 _! o; ]6 X. S6 ~2 @- r ((< ang2 360.0)% ~2 A' h7 m; P) r# z: ~* O
(ai_ddvp_set_b 0.0)) w6 O+ R; @9 o
)
) B7 Y5 A2 |( @, G x- w (T
) Q! R" x2 w. r% G5 p; h (ai_ddvp_set_b 270.0)
/ y* r" z4 L9 G, D4 g0 X )
0 Z# g: X/ m9 Q- z0 [, [ )
- H& W. ], j3 a2 @1 j1 d; F5 f6 L8 j )! ~. V! {4 O% R6 ]! T m
)) e+ R$ y; V5 e& @! L
)- N& G* E3 d- Q0 }6 Y4 E# Y4 }
)8 a y* Q$ f: T& V
' Z( @$ T, |: l! O; C4 i(defun ai_ddvp_plan (), A/ W+ ]) A& d y1 w* K( e0 D: ~
(ai_ddvp_set_a 90.0)
$ T2 S$ T- Q# @7 d; o (ai_ddvp_set_b 270.0)' l+ C9 E/ W; E, [: M; J
)' v& U1 F( O: C7 h
! u: u) Z2 p& e2 b
(defun ai_ddvp_setvdir (a b)
% o3 w* f5 @6 {' p (list (* (sin (ai_dtr (- 90.0 a))) (cos (ai_dtr b)))* ]& G* y: @/ u* A& h# C( ]
(* (sin (ai_dtr (- 90.0 a))) (sin (ai_dtr b)))" y+ @# Y9 A" `+ ]
(cos (ai_dtr (- 90.0 a)))2 p* ~* N, `' g- m: L
)
; U7 y/ r! P% A)
( x+ v- M9 e, c1 c' B- o( w1 y& ^" i1 c$ E1 K0 E: F) {7 R$ g
(defun ai_ddvp_set_abs ()
1 _# a2 E! ]( I8 C (setq ai_ddvp_wv 1)6 i1 {( L4 G9 J/ d% p' n
(ai_ddvp_drx ai_ddvp_b_curr ai_ddvp_bx 0)
0 S* G+ R8 z6 x) F! u9 P (ai_ddvp_drx ai_ddvp_a_curr ai_ddvp_ax 0)( X- X5 `) t; F9 {; t Z4 I
(ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 0)+ G3 k' p" ^. i$ ` G9 P
(ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 0)
8 i# {* M3 B& t& `, i" Q (setq ai_ddvp_vdir_base (ai_ddvp_fixzero ai_ddvp_vdir_base)): o9 B0 E3 ?( O' p4 N
(ai_ddvp_setang (trans ai_ddvp_vdir_base 1 0 T))
4 ?0 g. J, {) Z& F0 C0 g3 w! i: L (setq ai_ddvp_a_base ai_ddvp_a: h$ }( ~) n3 o% }8 J3 f
ai_ddvp_b_base ai_ddvp_b
. z& O8 u4 o( p+ _4 o ). s) q4 V7 v% Q" G, l
6 |' `1 b% N" ] (setq ai_ddvp_vdir_curr 9 i9 o4 a3 H- A: s+ Y
(ai_ddvp_fixzero 6 Y4 F& s2 m0 A9 z. t# D" L$ j6 |% Y
(trans (ai_ddvp_setvdir ai_ddvp_a_curr ai_ddvp_b_curr) 1 0 T)
( O9 s3 T/ Y( o) e& V2 u% E )
# l( b; A) Z# Z )! g+ \* S. [! { S. g1 V: [2 R
(ai_ddvp_setang ai_ddvp_vdir_curr)
1 z8 B; H h( j0 r2 [9 ^ (setq ai_ddvp_a_curr ai_ddvp_a
$ P' f; ~& B. X# [8 h1 h ai_ddvp_b_curr ai_ddvp_b; J- h& R8 M M6 J+ A
)( @: @7 Q+ p4 U$ p$ ]% s' L
. L& W2 }7 Z0 r% d7 u: `0 p
(ai_ddvp_set_a ai_ddvp_a_curr): S4 j, s# `7 ^5 G7 B
(ai_ddvp_set_b ai_ddvp_b_curr)
3 L0 x5 T3 N4 j$ e" f% H/ P& V! S)1 C. ^7 W" M4 q" G' ]- x3 h
- R: G* |$ ~( L; X* ?
2 U; b& ~3 x8 @$ C% W. g; [$ s
(defun ai_ddvp_set_rel ()+ q- c9 g$ v/ A* E1 k9 p
(setq ai_ddvp_wv 0)
/ k1 n3 ^+ P+ }% R, F (ai_ddvp_drx ai_ddvp_b_curr ai_ddvp_bx 0)' q3 z/ w5 x: w {: J' R; O: n5 u
(ai_ddvp_drx ai_ddvp_a_curr ai_ddvp_ax 0)
4 b( B7 F0 E7 Q$ w$ H7 T (ai_ddvp_drx ai_ddvp_b_base ai_ddvp_bx 0)$ ^9 Q& ^- M5 n
(ai_ddvp_drx ai_ddvp_a_base ai_ddvp_ax 0)4 E, O* X ]4 L5 J5 U
(setq ai_ddvp_vdir_base (ai_ddvp_fixzero ai_ddvp_vdir_base))
( h9 Z" I; k9 _% }* ~' x6 n (ai_ddvp_setang ai_ddvp_vdir_base)
# U% }8 n4 R0 \8 J (setq ai_ddvp_a_base ai_ddvp_a: f- V+ R* a2 x3 E. s
ai_ddvp_b_base ai_ddvp_b& x4 v( k1 I8 p- J
)
% c& O* b2 W% i6 l! z (setq ai_ddvp_vdir_curr
( g& i+ y2 v6 k+ m% F( g (ai_ddvp_fixzero
" |" z5 K$ D# ?# T8 T1 I+ V (trans (ai_ddvp_setvdir ai_ddvp_a_curr ai_ddvp_b_curr) 0 1 T)
8 V- _3 ~3 B* C1 R- A: F )
0 c) u: A9 [* ]4 k6 \9 f )
6 `6 G6 Q! Y( h" V (if ai_ddvp_init
" J$ Y0 T# J) f6 C/ N (setq ai_ddvp_vdir_curr (ai_ddvp_fixzero (trans ai_ddvp_vdir_curr 1 0 T))! I7 ^8 I2 p/ L7 O
ai_ddvp_init nil: L4 ~2 ~8 d1 q% r0 E1 i$ W8 I: ^
)
7 R& z! i5 B) V )/ q J& n) U1 c- _9 i
(ai_ddvp_setang ai_ddvp_vdir_curr)
' Y1 k) E0 s% u& D (setq ai_ddvp_a_curr ai_ddvp_a
$ G. u K; L% G ai_ddvp_b_curr ai_ddvp_b
, k9 F1 F9 m$ e2 t* z )
6 m/ X/ S/ a1 {3 T& i, c. | (ai_ddvp_set_a ai_ddvp_a_curr)
`& [' e# L2 i7 J (ai_ddvp_set_b ai_ddvp_b_curr)
: K0 H. S5 a; t* e)# z7 T( R: T+ u3 H8 r* P, v
3 q( R! k; M: e* n/ t \8 B
(defun ai_ddvp_fixzero (vector / vector_x vector_y vector_z); p, }1 ?' {5 i$ L: R
(setq vector_x (car vector)
5 M2 ~5 [' c5 I2 t3 P+ u vector_y (cadr vector)
% e: P) D9 }- |* Q" t vector_z (caddr vector)
" v4 |8 q4 F& Z% @ )
) x! ~; _6 Z: U" O( ~1 y8 l (if (equal vector_x 0.0 1e-06)
7 |/ P+ h% u* f) f, G% @ X; M (setq vector_x 0.0)( d8 ^( @* F9 M' }+ q0 z5 X, k
)
; i# S, L' g9 o |# g/ B (if (equal vector_y 0.0 1e-06)' t& W( W2 E1 z
(setq vector_y 0.0)' M: q( E% ?* ]
)
. ], i# y/ |% P+ }5 U6 S (if (equal vector_z 0.0 1e-06)
2 ~) I* V) M; k (setq vector_z 0.0) ~* ^0 }& G( A! _2 n( d/ P
)
9 m: E7 p/ v2 L (list vector_x vector_y vector_z)
' D T; I4 F8 A* d3 |1 @) \)+ D& v" H% B8 F# ^& y& V( F
* f) D1 @* C7 c: ^" B6 H, i# u6 M) Y/ I(defun ai_ddvp_setang (viewdir / viewdir_x viewdir_y viewdir_z ai_viewdir)$ b+ @5 i/ y& ^ n( d; Y
(setq ai_viewdir (ai_ddvp_fixzero viewdir)+ m' I' F4 W: r2 F5 X
ai_ddvp_b (ai_rtd (angle ai_viewdir '(0.0 0.0)))( J- u) ]5 m: T) ~
); Z: _" x- z8 L
(if (equal (list (car ai_viewdir) (cadr ai_viewdir)) '(0.0 0.0) 1e-06)7 c* e3 v/ ~6 Y/ v/ W5 N
(setq ai_ddvp_a 90.0)4 V7 [! f* S4 `/ e
(setq ai_ddvp_a (ai_rtd (ai_ang3dv 6 ~; a0 z! Y g' R
ai_viewdir
: a E/ X) Q* W3 g3 ~ (list (car ai_viewdir) (cadr ai_viewdir) 0.0)
# r9 i& D2 }/ e% D) B- x )
! {/ G6 g) Y" @. M3 \! x )# b% c! a7 g/ q2 J4 o' e. n
)8 Z" W: A2 {; g% T+ `
)
( @6 f5 T2 R0 c7 K, Y (if (< (caddr ai_viewdir) 0.0)& t( a! r) ?9 |1 G
(setq ai_ddvp_a (- 0.0 ai_ddvp_a))
" |3 T( S" i" n* }$ F (setq ai_ddvp_a (abs ai_ddvp_a))
, e6 ]$ f6 h. `' N )
: W1 j2 Q& N9 C7 G9 k (if (>= ai_ddvp_b 180.0)
- y. k, O/ W" [ (setq ai_ddvp_b (- ai_ddvp_b 180.0)). c* u- P3 E7 b* c( C. P1 D1 s
(setq ai_ddvp_b (+ ai_ddvp_b 180.0))
/ A2 F+ g- c) l) z+ f- |9 @ )8 q7 t- x7 g# K. s. u* h& u
(if (or (= ai_ddvp_a 90.0) (= ai_ddvp_a -90.0))% d* v! L" M% T$ |$ ?
(setq ai_ddvp_b 270.0)5 [& f8 `! F9 {: u
)
' X, ~, i8 A/ |1 A; j/ X)
6 ]2 q) C. U2 E8 D$ z B4 g
. T2 ?$ A# W( [: x* e/ Y(defun ai_ddvp_main ()0 H: |" v* O" j: b {4 g
(ai_ddvp_start)# K7 U" X# z! K, G4 E2 ~) v# X; V, `1 d
(ai_ddvp_setang ai_ddvp_vdir_base)
) c- v& |% B1 Y Z S# p5 z3 Z5 X (setq ai_ddvp_a_base ai_ddvp_a% V9 ]4 I0 N( G( Y4 N ]! R
ai_ddvp_b_base ai_ddvp_b# f5 ?8 }' |2 K8 K, {
ai_ddvp_vdir_curr (ai_ddvp_fixzero 9 N' q( I+ n/ r1 J& R1 y I# u
(ai_ddvp_setvdir ai_ddvp_a_base ai_ddvp_b_base)) l! u& t* ]7 Z6 @& K0 d$ z# X
)7 X$ R' a0 c5 O
)
- Z9 A% E* g" G5 y1 W" K (ai_ddvp_setang ai_ddvp_vdir_curr)
! j e% i! w$ n( Q3 U (setq ai_ddvp_a_curr ai_ddvp_a+ G: b" X5 g, _: R% t+ ^" D& D
ai_ddvp_a_last ai_ddvp_a_curr1 |0 C. L+ L2 I% M7 e K. d
ai_ddvp_b_curr ai_ddvp_b
/ J) g$ H# U# { x7 u ai_ddvp_b_last ai_ddvp_b_curr
9 o: q7 n% `2 r; Q* M" L# b+ g )7 l3 }9 o: p6 S y* `
(if (= 0 ai_ddvp_wv)/ L) f' k7 M8 q5 O. A* K# H
(progn
# [' q+ C O; W. x (ai_ddvp_set_rel)
+ M% f6 R1 E# a4 o- H4 m6 W' E1 e (set_tile "ddvp_rel_ucs" "1")0 |" B2 a8 y8 w4 g- d
). T. p# O2 O. \+ h
(ai_ddvp_set_abs)5 }/ Z1 j8 e2 ^* j6 b4 X1 R
)/ q2 Z6 o6 T1 \5 l9 {5 C3 m
(setq ai_ddvp_t nil)
3 r- P( Q0 c6 |8 D- w (set_tile "ddvp_val_x" (rtos ai_ddvp_b_curr 2 1))
( d2 d. Q! Q. K# g& ` (set_tile "ddvp_val_xyp" (rtos ai_ddvp_a_curr 2 1))
* r) H; S1 `4 U2 u (action_tile "ddvp_abs_wcs" "(ai_ddvp_set_abs)")3 G( q6 b, a. o4 g
(action_tile "ddvp_rel_ucs" "(ai_ddvp_set_rel)")
) D- i) ]3 F* ~5 D6 _ (action_tile "ddvp_image" "(ai_ddvp_image $x $y)")
* q, A$ v8 J3 U (action_tile "ddvp_val_x" "(ai_ddvp_set_b (distof $value))")( T w; @ B2 ?' ]
(action_tile "ddvp_val_xyp" "(ai_ddvp_set_a (distof $value))")
/ \$ m, Y; T3 V: a6 G (action_tile "ddvp_set_plan" "(ai_ddvp_plan)")8 }* i# J3 `8 m" w
(action_tile "accept" "(ai_ddvp_do)")% u' u) \: {: k0 _3 g! J7 a7 z
(action_tile "cancel" "(done_dialog 0)")& X, e( D' Q4 I7 W. \5 V
(action_tile "help" "(help \"\" \"viewpoint_presets_dialog\")")
1 Y1 ^2 M$ q3 a. w& k- v (if (= (start_dialog) 1); X, B5 `2 C* B& ^$ I& D
(if ai_ddvp_t
7 _# a4 s$ ~! O9 p2 j (progn
% g! _& c% r8 L (command "._WORLDVIEW" ai_ddvp_wv)2 y1 J0 r: p; K) e& O
(command "._VPOINT" "_R"
" I5 _8 U0 j- {, a1 W (strcat "<<" (rtos ai_ddvp_b_curr 2))
! N# O0 \. {+ B' u3 n, z" f (strcat "<<" (rtos ai_ddvp_a_curr 2))8 ~& [$ S T( {1 n; K2 }$ d
)
4 C v( @3 T9 {+ W3 c' j )5 o5 u& [ \; b8 k
)
: Z3 K6 ?, m, ~3 Z& I )
+ P: i" a2 t1 H)
; P, i6 @+ C- H# G1 ]
3 j2 {0 E; ]2 \(defun c:VP ( / ai_ddvp_wv ai_ddvp_vdir_base ai_ddvp_vdir_curr
4 T1 V3 G( d" a3 R* k5 } ai_ddvp_bx ai_ddvp_ax ai_ddvp_by ai_ddvp_a_curr
7 B: I% I' s# I$ i ai_ddvp_b_curr ai_ddvp_a_base ai_ddvp_b_base ai_ddvp_p
C7 c" G/ [3 Z. s) @) Q ai_ddvp_t ai_ddvp_init ai_ddvp_a ai_ddvp_b0 ^( G0 K0 y% `% K
ai_ddvp_a_last ai_ddvp_b_last
\1 q% P/ f$ U* w7 B app dcl_id old_cmd undo_init # c2 f+ P% O( z6 U, u
)6 V- a! J7 q5 I3 y$ N2 e: g
( W9 y- g! j3 s/ c+ ?
;; Set up error function.5 } o; \; e2 J9 u
(setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
: q1 T- ^: U: H" o! ^ old_error *error* ; save current error function6 y2 r3 \0 m: t
*error* ai_error ; new error function
0 P+ m/ K9 H# L) {, n; B )
5 ~; M2 a4 e3 y! {$ ^" F8 a' H! k( O3 Q/ c& ~
(setvar "cmdecho" 0)* w, {2 p+ R1 H# c
% n3 ^& @9 b) F0 a" y; C k (cond
+ n' k6 u1 {" ~% `& f5 i ( (not (ai_notrans))) ; transparent not OK
* m( }3 J5 D& R4 k+ ]5 y1 b) a ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?8 Z2 ^5 W, X4 g- h, Z
( (not (setq dcl_id (ai_dcl "ddvpoint")))) ; is .DCL file loaded?
% @% F! i/ v$ [ (T (ai_undo_push)
* P% i. n- D4 T& a! y3 a (ddvpoint_main) ; proceed!
; c+ c+ x8 b1 e( n1 g. F (ai_undo_pop)" C+ T! z4 m0 i! [5 j0 K+ e
)
: F0 H- K5 p# d% L5 G )
) F3 h4 g- ?0 m3 T. w; C
: a8 p5 ~7 ]4 s1 _ (setq *error* old_error)
+ f Z8 A3 G: Z- M9 o0 J; |# h (setvar "cmdecho" old_cmd)) T8 p) y/ Q4 |' n4 _
(princ). P7 @& X: f9 ~. k& g# J
)
( F+ ^ r0 a* E" T0 k; {9 k3 R
7 W3 n/ W7 c& Y- R(defun ddvpoint_main()- l/ g. H0 T! p" L! I8 [
/ i/ R) g$ r ]1 C4 ~ (if (and (= 0 (getvar "TILEMODE"))
1 \$ g6 U0 H5 k" T2 ?3 K (= 1 (getvar "CVPORT"))$ W! w2 f6 [! I: C' d
)3 T, }6 z8 r4 Y
(princ "\n** Command not allowed in Paper space **")* D$ U5 Z. c5 C4 @2 }
(progn$ l1 J; X# d! ?
(if (not (new_dialog "ddvpoint" dcl_id))7 O% n q1 d% t0 l$ U+ Z. r1 ~% D
(exit)
' b6 i; W- J' C9 ^ )7 t5 W: [- K, K c0 O, _
(setq ai_ddvp_vdir_base (ai_ddvp_fixzero (getvar "VIEWDIR"))
* Z+ [% C: H( Q# p# b) Q; \ ai_ddvp_wv (getvar "WORLDVIEW")
* y1 C+ Y% ^$ D; b V ai_ddvp_init T9 B' w* E. w1 R4 }& ?
)* u" p" z1 z4 m9 h& x6 f
(ai_ddvp_main)/ A& n+ I7 t5 M0 r9 B" |% T
)
1 V! F- W5 H" B* `( D: x )
! g% G. v" q3 @2 m1 J' g)+ e+ I0 X( I5 h# d8 Q
) a9 i" E$ ]$ Z; y3 p' J(princ " DDVPOINT loaded. ")6 M; {2 h v; k
(princ)
% L- I3 V0 t5 m% y, n1 W% n7 W6 U;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
# C3 U; D, `7 \. {;============================= Tran Ngoc Thang =================================1 Y- [& Z+ l9 y6 R/ L4 K" p. b
(defun c:zx () (command "zoom" ".5x"))
' W' E; W7 y5 P& Q- d, f" L(defun c:zz () (command "zoom" "p"))
2 Q. A! T" d2 |(defun c:za () (command "zoom" "a"))8 o H/ I9 T5 T8 M# G1 h+ S: E2 w
(defun c:zd () (command "zoom" "d"))
' r& d' t2 m2 S3 x( S: S(defun c:ze () (command "zoom" "e"))5 `- p3 c. y' V2 K3 W* W3 B
(defun c:zr () (command "zoom" "" ""))
( @- ?; y o. J1 X1 E9 g: Y& r(defun c:vv () (command "ucs" "v"))! Y/ G* O# v. l2 ?
(defun c:co () (ssget) (command "copy" "p" "" "m"))* _# q7 f+ t) R2 S6 \8 _
(defun c:c () (command "circle"))) |& e$ c; L* w& f6 l' ^! y
(defun c:rt () (command "rotate"))
# n2 J# N K% B, e# u(defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))9 w* X& e9 B1 y: |& q; m* A
(defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))) f: Q2 H8 Z/ I1 | @, f* q+ L
(defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
3 e" s9 Q* R7 y' K' T( J [(defun c:45 () (ssget) (command "rotate" "p" "" pause "45")); ^ F2 Z( g8 Z6 z7 ?% e. E: u
(defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))+ h1 k7 N$ u5 m& ~" o9 X
(defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))6 a- i4 |; V0 V3 J- w
(defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
* |2 Q& N' { l# c( X8 f/ g% n5 Z(defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
+ m1 j G! x9 g$ O. ~8 T(defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
$ Y; L) x. `( P; @/ k+ U3 c$ G(defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))! y$ g# K2 v6 w) t1 {9 s5 [/ y3 z
(defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
+ a7 P+ p" K% H" A7 p(defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))0 O+ l6 A: E7 S
(defun c:fd () (command "find" "p" "" )(princ))(princ)6 S* K+ m; C' u& Y! ?
$ ]* P2 h/ r6 |# Z6 k3 J& }; n3 c; R
(defun c:VNI () (command "-style" "VNi-AUCHON" "VNI-vauchon" "225""1""0""n""n""n"))(princ)9 c# K1 m% Y3 x4 O v# z
1 [$ z0 T3 I# D+ g(defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
+ w+ E9 Q. A+ e$ }* Q; j(defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ); o4 ?: t8 r! q9 U6 ~! [
(defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
. F' h0 R I0 C( j u$ x(defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ). O( w7 _' B4 B+ W. o* f
(defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
3 B0 H2 [( }9 l$ c2 |6 X z(defun c:chu () (command "-style" "CAMBRIA" "Cambria" "200""1""0""n""n"))4 a5 H6 _( g$ H3 ~( l# j
(defun c:cot () (command "-style" "COTES" "Romand" """1""0""n""n"))( o3 o( d( P N. ?
, A; @; R/ t' o% B& k$ c1 Z(defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
! K8 q1 Q) V8 _1 W3 V. B(defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
) w+ F' b, R0 y9 U(defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))/ P6 X* `4 R5 g* C, J7 d4 {
(defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n")) y r% d4 X+ M
(defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
4 Z4 U. D g1 k6 K. O(defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
3 I7 G- L, B' U8 n# @3 k' Q
- q+ t5 [8 M1 ~(defun c:ps () (command " SOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file0 ~1 N# m1 l3 s: y5 t4 t# ]
, r8 ]: {2 ?) a4 f;free lisp by cadviet,cd2k446 M% R8 P1 U2 n2 S3 a. u" T( C
;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830( H! X( }& O) M: H6 }1 o* @& e& J
(defun c:FTEXT (/ ent tstyle )( d$ q- D/ m: k5 @1 [( L
(command "undo" "be")
* N# P) |' y- {0 w( I( Z* N2 D(setq ent (entsel "\n Pick text :"))& ~& D: I3 U: W' Q( Q
(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
2 d8 K! l& L P$ B }9 P+ }(command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")7 H- Z+ n3 X1 r
(setvar "TEXTSTYLE" Tstyle)
: _# j5 r4 C" B- v6 k& X' P(command "undo" "end")
0 D( e5 ~- g/ Q& f)
$ m9 p4 J9 L5 L/ |& H3 ]9 {3 i;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)& [7 g W! X* H: o: ?
3 K8 t- ^6 c4 [;free lisp by cadviet,cd2k444 }9 f3 |; @3 ~2 D0 h9 M P
;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830' L! Q3 u3 Y3 [. ~) q; q# R
(defun c:Fvnh (/ ent tstyle )
; a: R) s6 x$ A. e4 O; \' b(command "undo" "be")
* F% q1 N4 n' o: T! g: U(setq ent (entsel "\n Pick text :"))2 z" G& L+ G. c+ G3 H5 A
(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))6 _. j1 U+ A, V9 ^. h
(command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n"). R& k, l* ^* d2 ^$ x2 V
(setvar "TEXTSTYLE" Tstyle)1 a1 Z$ p5 |" T- z3 C
(command "undo" "end")
5 T6 @8 o8 V8 F l3 a- T$ [5 a)
( X* X9 s& d; _4 h" G. B0 Z3 D# m: X' y# }( d' h% M& ?
;free lisp by cadviet,cd2k442 |$ S0 P# l* M
;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
3 a ?# Z2 F: S8 g) x2 x. D, ?(defun c:Chbg (/ ent tstyle )* [; V- w6 F, T
(command "undo" "be")
1 h1 K' y$ P/ d. R, Q(setq ent (entsel "\n Pick text :"))4 }) G, t* y8 }3 r
(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))2 V7 q, u4 O, n" ?
(command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")! }; {# X& P/ P3 N
(setvar "TEXTSTYLE" Tstyle)
) x! e4 t. c3 s* A" V W+ U(command "undo" "end")0 B1 Q- }/ a3 q M1 O6 _
)7 A$ U1 X1 w: e- f) _
. V6 H# Q* z! ^" q5 H6 G) q
;free lisp by cadviet,cd2k44
- e0 r( x# q: l9 s e;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
; S% a2 F u/ a(defun c:Chsm (/ ent tstyle )
% Z% t7 _, d: G: u' \" f(command "undo" "be")$ K- b b% X- ^/ m: T0 o, M9 ?
(setq ent (entsel "\n Pick text :"))
4 n/ Y: S1 a+ w6 k2 t3 U(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
6 p6 b, d2 L4 T$ I& v R(command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")3 w) p. B y: t4 ?* E! c, r
(setvar "TEXTSTYLE" Tstyle)# ?& o; V; `0 L' }
(command "undo" "end")% j0 Y' Q* N4 J' W+ B# X
)
2 E: a6 R& t" I2 h' j5 a. e
. @6 h0 x$ a( V9 u7 Y2 V;free lisp by cadviet,cd2k44# I6 ]9 u6 K0 L |; b( J
;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830: |/ j8 v: M$ a# c7 y* U
(defun c:Fttf (/ ent tstyle )
; T- I' Q- w" D" q(command "undo" "be")
* Q3 c) f* [4 x$ R$ }(setq ent (entsel "\n Pick text :"))
* j- |# o3 Q+ ~/ |(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
2 y n+ P' _1 _6 ](command "STYLE" TSTYLE "Cambria.ttf" "0" "1" "0" "N" "N" "n")
$ X; B% k3 j; p8 t! O4 E(setvar "TEXTSTYLE" Tstyle)
' w. g! g8 m( B* c# y$ |7 U' ^(command "undo" "end")
5 p4 I* q$ s- u! Q6 T)9 `7 @4 Q: K) I: p, u' ?/ W
2 X& e% E. o. m4 P2 h* a;;; ============================================
- @) Y! E" @! j O- _% ?;;;6 v$ i1 E7 D$ t' V
;;; LISP Creater Tao Duong Dan AUTOCAD20000 v# i* U6 ]2 ], @) E: v$ d6 S
;;;
7 e" r0 I* ]6 J2 s4 L, \;;; ============================================% |. g: w+ }# J' u
2 n' X' q1 s0 D; X b& @$ n;;; ============================================
: q1 {0 W) H! }5 p2 P$ r6 E;;; C( e- s7 Q; w6 r8 s6 F
;;; CREATING FROM AUTOCAD2000
: s0 u; k" C, p1 i0 T;;; Tran Ngoc Thang - Sinh 03-05-19768 S: [( K2 V2 B E
;;; ============================================. @: c/ k5 R; v3 Z: f% C6 Y. F" O5 I
. a- S# F) x" J8 z
(setvar "MEASUREMENT"1);Bien So SCALE Cua BHATCH4 _. g+ q0 X' j n
;(setvar "DYNMODE"2);Bien So An Hien COMMAND LINE
; z: V: p4 m1 ~# P% K;(setvar "VTENABLE"0);VTOPTIONS Enable Animation for Pan and Zoom
( g1 Q, G- x) M0 N! b(setvar "INSUNITS"4)
, y6 ]" M- ~: F0 w0 j% c% Z(setvar "ANGBASE"0)
3 X% w" F# ^' ~7 k* z(setvar "ANGDIR"0)
3 p- x7 o- _( J9 e: z* Z4 D/ e(setvar "AUNITS"0)
3 d# r" l. r$ D" o3 J( n(setvar "AUPREC"8)5 a6 ~5 L( ]1 K- S* w. e' Y* ^9 D- ?
(setvar "LUNITS"2)
; A3 c& n' C1 m8 i(setvar "LUPREC"8)' c8 ?6 K9 _& u e; \0 G6 _
(setvar "ACADLSPASDOC"1) 2 R# X4 q/ m* b( L6 }* [4 F
(setvar "pickbox"5)
" d$ t/ X0 [/ a- O# B(setvar "blipmode"0)
4 o( {! j$ L( m# F4 I. u. }$ v* e(setvar "mirrtext"0)
% E) G8 f1 G3 {% j! A/ _! l6 L(setvar "cursorsize"100)
- d$ P2 A$ x) n7 `- X6 T(setvar "ZOOMFACTOR"75)1 t0 T2 H+ H) r! H( `
(setvar "LTSCALE" 10)8 t i$ K3 {: ?6 P
(setvar "lwunits"1)/ F+ _! S, m! _- D
(setvar "DIMBLK" "Closed")/ I& `8 ] H1 g3 o- L% _
(setvar "DIMGAP"0.0693)
. y4 z5 r9 g% {3 B/ T(setvar "DIMASZ"0.20)
) _9 q$ C+ f' U* o(setvar "DIMCEN"0.2)
: J9 P7 ]3 s6 s6 m. j* H(setvar "DIMDLI"0.1), Q i7 R4 B1 Q+ m b
(setvar "DIMEXE"0.0693)8 M9 q: H2 y$ T; K* s
(setvar "DIMEXO"0.25)
% O% K* h/ C7 m; u- N(setvar "DIMDEC"0)
' ?% l8 {; V) M) K(setvar "DIMTIX" 1)( F% U# W% D! r! k' L2 x
(setvar "DIMTXT" 0.099)
; B8 }+ {- x% n6 q(setvar "DIMCLRT" 7)1 W# f) U5 B% Z& N% M* M
(setvar "DIMTVP" 1)
6 Z& K) k' W6 L( W& N5 D2 p(setvar "DIMJUST" 0)7 K2 o$ g. P- X: L) _
(setvar "DIMTIH" 0)9 d3 B3 \6 H# [5 s0 K) S( I4 ?
(setvar "DIMTOFL" 1)1 T! M" A9 W+ G, I
(setvar "DIMSCALE" 1111.1111)
/ n4 t: Y3 w4 j7 ? X5 G7 r, T- `
& ~( [% |; ^& |: L" e" Z" p# D" ?* P6 g2 J- e4 A+ c
(defun c:zp () (command "'.zoom" "p"))+ J l2 u Z2 W4 m! {6 O1 f- S1 z2 B
(defun c:zz () (command "'.zoom" "p"))6 q/ K7 Z: P# [' F# D
(defun c:ze () (command "'.zoom" "e"))# U* R% x1 t3 x6 {7 ]7 C# |* c
(defun c:za () (command "'.zoom" "a"))
0 k) e( r8 @1 g, K3 W: d9 K! Z(defun c:zd () (command "'.zoom" "d"))9 _& e! z8 P8 j: S) B# l/ _
(DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))' ?! A4 j; H0 T- t- E& l
(DEFUN C:ZX () (COMMAND "ZOOM" "2X"))3 V3 X6 H* a, F0 P& z
(defun c:de () (command "ddedit")(princ))
, P8 _8 K% |& R6 `1 N* w(defun c:dda () (command "Dimaligned"))4 H: y1 n w. s: Q3 P
(defun c:ddb () (command "Dimabaseline"))
1 T" j8 O1 r( b) H' ~- l(defun c:ddc () (command "Dimcontinue"))/ j! F1 [- f; f
(defun c:dde () (command "Dimtedit"))' }, O0 f2 b+ d9 T
(defun c:ddf () (command "Ddattdef")): c7 R0 R3 k: x* D( Z% a8 K
(defun c:ddi () (command "Dimdiameter"))
7 s; x9 a- K, w8 D8 f% b9 T(defun c:ddl () (command "Dimlinear"))
. w* j! i8 W; w- v/ }(defun c:ddn () (command "Dimangular")), r6 b8 p8 @9 n' R3 k _% `2 N4 L
(defun c:ddo () (command "Dimordinate"))6 `$ X% S: ~$ J- F+ z" s
(defun c:ddr () (command "Dimradius"))
! m4 u, `. ]5 t9 F' e" o6 m(defun c:dds () (command "Dimstyle"))3 O- {+ B- }% I3 S J
% o0 \; r3 m9 _9 w
(defun c U () (command "dim1" "up" "select" "exit" pause ))(princ)
1 [+ E2 T% z& \$ j7 k(defun c H () (command "Dim1" "home" "select" "exit" pause))(princ)9 r% g8 }. ^7 T4 c
(defun c:UU () (command "dim1""update""all"))1 R7 i2 L# H- Z' c5 }7 o8 U
(defun c:ded() (command "dim1""tedit"))+ V; ~0 q- x1 h+ W% L3 h
(defun c:da () (command "dim1""ali"))
0 L/ ~3 X p$ q6 Y9 V5 y(defun c:dll() (command "dim1""l"))
) | t, U2 k7 f3 z2 [/ e(defun c:dan() (command "dim1""an"))7 j+ Z* D+ g- S& N" _ k
(defun c:d1 () (command "dim1""ra")). o d+ n' J# Z! U1 A: V! H& w# J
(defun c:n () (command "dim1""new"))0 p( _2 ?8 w8 C, D+ T5 Z1 h
6 G& Z, r, Q7 r(DEFUN C E () (COMMAND " EDIT"))# ]$ M6 O9 a; Y, w! B2 M
(DEFUN C L () (COMMAND " LINE"))
& X- c$ l0 f( S8 Y2 l" j( h6 p, O(defun c:dd () (command "dist")(princ))$ o; ?" _4 H* i
(defun c:w () (command "pedit" pause "w" "au")(princ))& {# L5 N* w3 o
(defun c:pg () (command "polygon" "polygon"))
0 I$ b" x* \/ l8 s6 q4 Q(defun c:el () (command "ellipse"))- \# F, y( v$ g- P( E# T) ^/ y3 A
(defun c:xe () (command "explode"))/ e- P# S L" o0 G! E. {
(defun c:eex () (command "extrude"))
) `- }4 J) b- P0 C$ M. C. T(defun c:xg () (command "xline""a"))
0 I3 ?9 Z! r S(defun c:xh () (command "xline""h"))/ z) m1 L+ i" k1 q
(defun c:xv () (command "xline""v"))
: C$ x0 [7 D( i: h! J& k# D0 `8 ?
$ b" S$ v% q- u/ o& b' M9 r) v a(defun c c () (command "osnap""cen"))5 h2 T. K8 @: n% X T! r2 g
(defun c d () (command "osnap""nod"))
/ N @4 O+ L* n(defun c e () (command "osnap""end"))
1 p3 A/ i' O8 L6 i: y* ](defun c i () (command "osnap""int"))$ c3 _8 W$ q$ Y m1 o7 Q% A7 |
(defun c r () (command "osnap""per"))
3 C0 t, l @& P5 Y$ V+ e(defun c n () (command "osnap""none"))
2 Q" p1 C/ ]/ W& I4 J(defun c q () (command "osnap""qua"))
) R" R5 A K, Q: }(defun c m () (command "osnap""mid"))
_" _( ~5 `* c, S p7 q$ m% q(defun c t () (command "osnap""tan"))
0 i1 L0 l( _0 x- c2 a0 p" T7 k( ~! b(defun c in () (command "osnap""ins"))# W5 A3 D9 @7 x1 q$ d
(defun c:oa () (command "osnap""nea"))
8 Y- x6 h2 Z/ |. l8 m(defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))& Z# }. c& j9 t( G! M9 D4 J7 S5 C
;(defun c:du () (command "dim1" "up" "s" "pick" "other"))' \ D0 W; o7 ?. f n& P/ n
;(defun c:nn () (command "new" "y" ))3 ~# I& G6 l% K
% y" S3 V& @1 M) Q% {2 e9 m/ @" k. L(defun c:/ () (command "limits"))
# F/ D& X3 B* a0 K3 n* H. |(defun c:`1 () (command "region"))
+ m% V0 \0 _$ P6 V2 X8 J; l9 n(defun c:`2 () (command "subtract"))2 f" @; a) F1 q6 _! t+ v7 t" I) f
(defun c:`3 () (command "union"))
& R n( N; X8 n( U7 w(defun c:`4 () (command "intersect"))
( y6 \0 S2 | ^; o1 ]4 c(defun c:`c () (command "cal")) t5 w/ h" e2 A6 g
(defun c:`g () (command " olygon"))
& z) P# p/ N# L( \5 p" j: t
+ D& _: x; _) N6 e) n(defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))+ S& o( h& H6 m2 B) o
(defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
" W; E$ y* r& E5 A0 m7 u# _0 V! z; e" Y(defun c:ip () (ssget) (command "print,_plot" ))(princ)
4 R ^* \; |' Z8 n6 i# J
7 T: o6 M* ^; s: i(defun c:ddm () (command "ddlmodes" pause))4 ] J' h( B2 [
( T }; P8 z' @' x(defun c:sha () (command "shade" pause))
' c7 U; x4 f$ d1 {" K3 t0 q+ j1 [4 B% x8 ?! b, s
(defun c:sr1 () (command "surftab1" "p" "" pause)), z7 C D+ u- b9 b/ V) Z
(defun c:sr2 () (command "surftab2" "p" "" pause))
0 g+ Z9 t/ ^/ d1 l6 v& @( K# i$ Y8 i; k; t; ^ ~3 z
(defun c:ad () (command "audit""y"))
1 |1 \- B, y. C; y4 q0 J(defun c:q () (command "quit"))
' E& A: p2 X; a$ ]
( G3 t! {; p8 W- O- k' S8 x! S(defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
; ?) t/ a0 \' Q(defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
: i. I G( c2 _( J6 H, s(defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
, m- }( s1 D% i& p9 E, E7 o5 D8 l(defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
' u% s: W* M7 d(defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
% {5 q- D5 ^& X8 w/ _0 v I& \(defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))+ y, u9 S% K# N3 z) s
(defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))) O+ c3 L2 U, g7 |0 `
(defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
( |: y( l0 p; J- v(defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))! Q8 T- v# J" p1 a' K9 R- m4 y) l
, M6 @' g8 _1 `) @. f9 ^(defun c:u3 () (command "ucs""3"))
( K8 n$ u9 n U' e1 b7 Q% v(defun c:ue () (command "ucs""o""end"))- v- D3 h: C5 F5 U
(defun c:ui () (command "ucs""o""int"))
4 s! Z- w! D3 @2 Q# [# m* Y(defun c:um () (command "ucs""o""mid"))$ K9 d/ f p2 S |4 J8 a6 E
(defun c:uc () (command "ucs""o""cen"))
/ V, S+ ?3 ?) X(defun c:uq () (command "ucs""o""qua"))
+ X$ Y3 ^* h" r5 D(defun c:3s () (command "ucs""3"))/ J' d9 D. o, f1 l8 G. c
(defun c:sx () (command "ucs""s"))2 Q" ]* p) ^) l! _9 q
(defun c:sf () (command "ucs""o"))9 T, T1 ?- ^% ?" e
(defun c:sz () (command "ucs""p"))9 b9 z* W3 b( @
(defun c:sr () (command "ucs""r"))
! z9 A( E$ X: }( T+ y1 i0 j(defun c:sw () (command "ucs""w")); l* X' T9 G8 v* u0 o, c
(defun c:fv () (command "ucs""v"))
. u, o# q$ k* c& l5 O(defun c:ux () (command "ucs""x")) V5 S, T' U% l6 }
(defun c:uux () (command "ucs""x""90"))& v# }9 A: Z4 B% b' o9 z
(defun c:xxu () (command "ucs""x""-90"))% I* z3 c: B% y
(defun c:uy () (command "ucs""y")). V+ i* N. }7 Q+ t# o1 Y
(defun c:uuy () (command "ucs""y""90"))
2 ?9 ~ c3 K X6 I3 q(defun c:yyu () (command "ucs""y""-90"))
& W9 W% O; I% `(defun c:uz () (command "ucs""z"))
% `5 a0 q5 n% `( [0 m& n9 u(defun c:uuz () (command "ucs""z""90"))
/ t7 ?* e0 O+ i" C; i(defun c:zzu () (command "ucs""z""-90"))5 h! o5 q# O& h3 E: f- Y* X
(defun c:uci () (command "ucsicon" " roperties" ))(princ)! E8 ^# ~# h, L5 C, u
(defun c:ucm () (command "ucsman" ))(princ)' [6 h; l$ V. w
$ K7 O" O& [1 u' b(defun c:sa () (command "vpoint""_non""-1,-1,1"))
- {8 P/ c0 v# d: C2 T7 ~(defun c:sd () (command "vpoint""_non""1,-1,1"))
' y: G. u2 @" i4 h, R" |# k8 g(defun c:se () (command "vpoint""_non""1,1,1"))* x# ^4 X5 i5 n& }+ @6 g2 o
(defun c:sq () (command "vpoint""_non""-1,1,1"))
; M* B& s3 l% ~" l- b2 m(defun c:vc () (command "plan"""))
& m* P8 {$ q5 [$ D% W(defun c:vd () (command "dview""all"))( z7 e& J0 x$ m+ J' [6 x
4 a$ K! ?4 B( @) [0 Y8 X/ y4 O(defun c:TT0 () (command "tilemode""0"))
0 z4 w/ P9 C& _, \ Z7 }(defun c:TT1 () (command "tilemode""1"))
+ G( d* n! N; O5 G- B3 [8 |& S5 N3 _1 D5 p1 ^) P& q1 R
(defun c:vt () (command "vpoint""_non""0,0,1"))
~; w! O z9 @(defun c:vb () (command "vpoint""_non""0,0,-1"))" g" d9 j2 l4 {8 y% d9 {9 C
(defun c:vl () (command "vpoint""_non""-1,0,0"))- u+ c8 b) j; J% d! h" ^
(defun c:vr () (command "vpoint""_non""1,0,0"))
2 M4 Q. H( S+ m9 W7 A" x(defun c:vf () (command "vpoint""_non""0,-1,0"))
* _- E* A- u$ |4 h- m: {1 P(defun c:vk () (command "vpoint""_non""0,1,0"))4 r* `1 s$ o# ]1 J2 V8 T
( o! A) H' _3 C5 p- c9 F(DEFUN C:MM () (COMMAND "MIRROR"))
9 e7 J) p. R' {( H' `4 o8 z(DEFUN C:MP () (COMMAND "MOVE" " "))
2 N( Y- v) {8 ^% G G: A0 h
0 a+ L3 Q. ?& i" H: s( X(defun c:mee (/ a)
: R% h4 {$ T3 |8 s (setq a (ssget))(command "move"a"""end"pause"end"))+ M% T1 q6 N5 b1 C8 W7 h8 G& x
(defun c:mc (/ a)2 V. S+ h m0 v7 w
(setq a (ssget))(command "move"a"""cen"pause"cen"))
: o$ U4 }) l- ?' ?8 S+ m: T" Q(defun c:cc (/ a)
9 r8 q, m5 l0 L: z; _$ _3 J (setq a (ssget))(command "copy"a"""m"))) o) _2 e8 [2 X. I( N
(defun c:ce (/ a)
8 |: m4 m% @; u$ O) o+ A/ A: p: [ (setq a (ssget))(command "copy"a"""m""end"pause"end"))6 V% n f% n* {6 p
(defun c:cn (/ a)
! t( w: m( Y" G2 M0 z1 Z (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
4 m1 ~. n. Q' [! T(defun c:tl ()(command "trim""l"""))9 d, x5 s0 H7 }. Z. h
(defun c:tf (/ a)
0 g- t* P2 W6 _ O4 X- c- j (setq a (ssget))(command "trim"a"""f"))
, r6 V4 Z9 {5 k: u3 U# s H(defun c:el ()(command "extend""l"""))
3 ^7 _2 w% y. E7 t(defun c:ef (/ a)& b& p! x! r5 K* ~$ F: j
(setq a (ssget))(command "extend"a"""f")), N' c" Z. l+ J+ j, A
4 x0 I s: @3 i" D& \2 G+ }$ k( c0 m
(DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))( u: E; J; z8 e1 p% \1 x) c9 @
(DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))0 T! ^! Y# a( v( N% a
(DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
q3 x+ z1 a4 u7 S(DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
7 k4 \! Q5 n0 ~4 I4 v(DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
( m: u1 ^- a! b4 |8 z6 a0 G6 D(DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))
+ k9 C# o+ d3 h) _2 z' F4 Z3 d# j(DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
( z6 f b4 T$ z' y+ T: m! }(DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
2 b9 E! b* T+ \0 j2 \(DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))4 o- C% O6 f( f9 q, S
(DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
P& }: \8 ^& E% N7 A/ E(DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))* W% c# }8 I- A/ K: x1 Z1 ?& t! [0 ~
(DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
! S" a: C, j/ T. l; R' {(DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
; H# e0 Y3 v3 k J {(DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
& t% o3 h+ k+ X0 B1 W5 t3 ^(DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
/ C9 ^- c' J& ?) m- z0 N5 O(DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))! s2 V- ~3 }" [- o
(DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000")). F7 K$ j/ { v3 f" `4 c* \0 A
8 t- ]4 x: ~3 w$ s
(defun c:mla () (command "-mledit""av"))- }/ j1 y. A( U p; Z
(defun c:mlc () (command "-mledit""mc"))
+ o @: N0 _0 B7 G2 [! w3 o(defun c:mld () (command "-mledit""dv"))5 P, }9 [% D# O5 }/ t( M- e
(defun c:mle () (command "mline""end"pause"end"))
. {5 @- j; h" l" H% g, Q8 A(defun c:mli () (command "-mledit""ca""int"pause"int"))
& Y P" n' }0 _. F(defun c:mlj () (command "-mledit""cj"))
% _3 |9 k" f9 S9 z! S(defun c:mlt () (command "-mledit""mt"))
8 G" S3 `( |" m% v(defun c:mlk () (command "-mledit""ca""end"pause"end"))- J1 L4 ]- x G2 J3 }0 z
(defun c:mlw () (command "-mledit""wa"))
# a* h) H) v4 R, {8 p& i) E/ T0 m; C5 G3 N! i) [! n% p4 F. ~
(DEFUN C CA () (COMMAND "DVIEW" "all" "" "CA"))" i" e/ h/ b7 X' ^3 N7 K6 l" M
(DEFUN C PA () (COMMAND "DVIEW" "all" "" " A")) c G& A* R1 l4 t! I2 a/ k
(DEFUN C PO () (COMMAND "DVIEW" "all" "" " O"))3 X& v8 M" T, J3 \
(DEFUN C DD () (COMMAND "DVIEW" "all" "" "D"))
. M2 W9 |- [, c# w(DEFUN C Z () (COMMAND "DVIEW" "all" "" "Z"))8 P% ]: \- `: S' d
+ Y: n4 ~! m8 g1 N) x6 z5 A- g
(defun c:p0 () (command "pline""""w""0""0"))
! ^* v# k5 X+ f6 O: `(defun c:ot () (command "offset""t"))
, v! B; w. i* v6 I. ^8 x6 D(defun c:t () (command "mtext"pause"j""bl""h"pause))
$ I7 O4 _9 V# c$ j3 H3 W$ l4 ~(defun c:uo () (command "ucs""ob"pause))
1 c- g) @6 N J& a O4 q(defun c:f0 () (command "fillet""r""0"))9 R4 s! [1 x" z3 Z* j1 E- ]
(defun c:fr () (command "fillet""r")) |) _ _4 H! b! F. o' w& e7 P
& A) ` A' K4 v! l, A% j+ i
;CHAMFER: x& H* B: j; y/ u
(defun c:cf () (command "chamfer"))9 Z3 z% @" j; @: r1 B
(defun c:cfd () (command "chamfer" "d"))7 U! C1 n6 K. Z
(defun c:cf0 () (command "chamfer" "d" "0" ""))
# l/ }% h0 Y% n' Y& p
$ Y. B! L& ~$ s;FILLET0 I7 N. i$ k% z1 D
(defun c:f () (command "fillet"))
. L0 E w" H( k7 l+ w(defun c:fr () (command "fillet" "r"))
2 B. ?" a2 `6 ~8 n0 y(defun c:f0 () (command "fillet" "r" "0"))
- _6 q% c1 H! l& Q$ C; w) K& M1 H) t3 o
(defun c:OO () (command "oops"))
; }0 j. g9 T" }(defun c:dln () (command "dimlinear"))' f" N0 W) {! z4 ?, [
(defun c:dan () (command "dimaligned"))
" v( c% x# y3 Q+ k5 l+ o, N(defun c:ddc () (command "dimcontinue"))* L$ M1 b4 F# t# m# V
2 R8 d% y" s. O8 w/ y(defun c:sc () (command "scale" "auto"))& `) ^, p1 r! L: I6 ]4 z: K
(DEFUN C:XO () (COMMAND "snapang"))
* |" ^ O- ?9 b- E5 z. }(defun c:cc (/ a)
0 q" `" t- E+ ` `7 _ (setq a (ssget))(command "copy"a"""m"))* J% G5 N/ x' B+ [5 N/ Y
/ d, r+ z6 W. y d6 A9 n. `$ a. M(defun c J (/ a)
$ q! L! N) f S (setq a (ssget))(command "pedit"a"""j""all""y"))
# ?) ^& H# W& h/ a(defun c:JJ (/ a)8 u: C* E% c+ ~- B" r
(setq a (ssget))(command "pedit"a"""j""y"))' E$ H: H6 h5 D7 w2 o2 d+ L
(defun c:TN (/ a)
( n, M5 k6 q I6 c (setq a (ssget))(command "change"a"""p""T")). q& N H( f* z7 V
, v$ w/ C$ V# l
& L' z. ]* o7 |: P; l7 V$ T6 h;================== Tran Ngoc Thang - Sinh 03-05-1976 - Suu Tam - Tu nam 2000 - Hoc nam cuoi KTS . DHXD ====================
: J' n; _/ d, I
! W# ^4 I2 h: o. r(defun C:IB ()(setvar"cmdecho"1)+ |& _) Z! T* h! L. T
(setq pt(cadr(entsel"\nSelect Block:"))), G A- T1 P4 p7 H ]- F; f
(setq e1(ssget pt)) ( _5 U9 p# q7 o* V
(setq e2 (entget (ssname e1 0)))1 `8 n" c: \! O# Z7 V7 _* z6 n
(setq blname (cdr(assoc 2 e2)))
5 Z! Q9 P9 G9 E7 A w (setq oer *error* *error* err2)(command ".insert" blname))
* m5 a( b' O' u: F& }
- _3 [' ?2 T( R0 ]* g& j(defun c:II ()9 G N2 v3 O4 `
(setvar "cmdecho" 0)2 i# o2 T) G9 L- `4 K2 S
(setq olderr *error* *error* myerror)' b. X" ], o! C' }! N b+ D' q1 r
(prompt "\nSelect objects: ")4 r/ G1 V: r$ i. r* ^# y O
(command "select" "au" pause)! V# X/ s* ~! i% N, q/ l# I1 I
(setq sstxt (ssget "p"), m8 K) m! N+ A9 g
sslen (sslength sstxt)
7 D4 M3 U. H$ @: J8 T ctr 01 r+ y0 Q+ g# W% f
)
- \9 `( `4 W( V) }# ? (command ".undo" "mark")& g( `. d4 `% ~4 q
(while (< ctr sslen)7 H6 G' o4 V$ Q3 \
(setq listxt (entget (ssname sstxt ctr))
% V( |4 r7 a' Y5 e txttxt (cdr (assoc 1 listxt))
+ ~ I6 L( h" h& f O9 u enttxt (cdr (assoc 0 listxt))
5 j; x! ~& ]* C8 H. o: K )8 v" ?8 X/ y& ?! i6 @$ L+ M% J& |
(if (= enttxt "TEXT")9 q3 l. }+ p3 @3 K
(progn
6 c s8 K& q* v9 J; i (setq testxt (substr txttxt 1 3))! }3 e1 n& u* V3 N3 ?
(if (or (= testxt "%%C") (= testxt "%%C"))
0 q6 j7 n8 p- O6 s6 q& V (setq newtxt (substr txttxt 4))
! Y6 o R: V |7 z3 v$ I) T& w (setq newtxt (strcat "%%C" txttxt))
+ r3 O3 W* ~. p% n0 u )
: y5 Q* N( J) c% s, } (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))% `0 [' @; G* X
(entmod listxt)! P+ }2 H+ m% ^' @2 n e
)
! q: q# d% \; \3 T5 b )
; k/ v6 S* I' m (setq ctr (1+ ctr))
6 g4 m. g# D1 P$ F) R3 {( H0 @# S/ ^ )# @; P5 }* b* |# {0 |7 J2 I
(setq *error* olderr); [4 R9 M# h4 W- ]9 K0 L6 E, @; _
(setvar "cmdecho" 1)' [, |4 ?' w% B; F- u: s$ S
(princ)
, E+ z! Z6 s* d8 v) A)
9 g) |# S9 D8 {0 V& g3 N$ M
5 p% h; U2 a, B$ x" w; |* `4 C/ X(defun c G (). o7 p/ w9 R/ W+ a
(setvar "cmdecho" 0)
, }' b5 u2 R3 x (setq olderr *error* *error* myerror)
) M3 Z7 D& b9 {% p- j G (prompt "\nSelect objects: ")
; `/ J7 D- Z# p" R1 j! v4 }. Q (command "select" "au" pause)
9 E7 w+ V6 \6 z* q* W( e0 C5 l (setq sstxt (ssget "p")
8 j/ K- M4 F% Q5 G8 q sslen (sslength sstxt)
5 p" o- @" ~; M1 y& t8 ?( W ctr 0, ]7 F) ]( t) w9 \" t% Z* ^7 h
): @; a* q ^0 [1 v
(command ".undo" "mark")) M1 Z U9 x T- {8 S3 U. i
(while (< ctr sslen) D+ ]$ ~( `4 F! X# A) _
(setq listxt (entget (ssname sstxt ctr))) F$ Q9 X1 N% E
txttxt (cdr (assoc 1 listxt))
( ?, e% W% x! R+ }/ J6 d8 z! S enttxt (cdr (assoc 0 listxt))0 p3 _1 p, r1 O) t$ K6 X) q( y
)
- G! C0 _- u! T3 ]" H- B$ A6 \8 | (if (= enttxt "TEXT")) P2 \; F& G% A# c$ E
(progn8 W( ^) q1 U% J3 f* ]; [/ ] P
(setq testxt (substr txttxt 1 3))& T% t- q7 T% x* p# f
(if (or (= testxt "%%d") (= testxt "%%d"))
4 P" f# n" W! X; r6 \! l (setq newtxt (substr txttxt 4))
! U% _: U. b1 _. n1 c: ^2 C- R5 X8 X7 c (setq newtxt (strcat txttxt "%%dC" ))
) l7 z4 M* Q5 ^! ^% u4 L4 X )
* N$ e# a6 X, \; S (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
( J% @ I. J a7 N (entmod listxt)9 [2 j$ j6 l# ~, c& M
)
, z7 {% f' z% n% \2 } D) \4 r+ u )3 M- J4 a1 F8 _! @& n$ v
(setq ctr (1+ ctr))
) Q, z; g9 e; k% y# x$ q" U )
/ i# p* y" ]; ^" P) \* S; y6 Q4 A1 | (setq *error* olderr)
1 {8 U6 {( k% _ (setvar "cmdecho" 1)5 o0 J; P( H5 S
(princ)0 z* U6 Z, J1 `" m9 q/ @
)
* ^+ I$ {# O+ _3 g4 e% W, C h2 ^3 k% e0 I0 ^ G
(defun c I ()1 S7 \" M# ]; P
(setvar "cmdecho" 0)6 G( p' e, i2 k: F5 o
(setq olderr *error* *error* myerror)
]/ o3 J* @5 o; u, k* n (prompt "\nSelect objects: ")0 F6 m+ V3 L" d( I% W& l; _ X
(command "select" "au" pause)
6 H* W2 K1 a, J& O (setq sstxt (ssget "p")% a5 P: e X1 J
sslen (sslength sstxt)
l8 f u4 v, w/ o" g: T8 H ctr 0' g& S1 y# U- |+ n% S1 I. t0 u- ~
)" P! R( m& S6 Q$ f9 a0 A! F5 U
(command ".undo" "mark")
' B9 Y$ c* G8 q V# o (while (< ctr sslen)
9 n9 w9 `# C2 h7 ]6 X; i (setq listxt (entget (ssname sstxt ctr))
# [' J0 S: ~) w) _0 j8 t* t txttxt (cdr (assoc 1 listxt))% L s! W& G* S1 F* D
enttxt (cdr (assoc 0 listxt))
) @' f. }, g4 C6 J )
3 a4 }* X# F0 \ (if (= enttxt "TEXT")
# j/ }* H7 e* u6 I; R Z! e0 m H8 l (progn: i1 g: Q8 S2 q1 x3 ]
(setq testxt (substr txttxt 1 3))# @9 w6 I- Q8 d6 R6 c3 M$ h
(if (or (= testxt "%%p") (= testxt "%%p"))" \/ M) x7 S. r$ u h
(setq newtxt (substr txttxt 4))
6 B- ?7 q6 J6 e5 r: H h0 B# a4 V (setq newtxt (strcat "%%p" txttxt))
9 L0 U; A8 T( I, J )9 S4 g) k% c' n$ X
(setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
4 C+ P0 r* N- f* e Y (entmod listxt)$ i0 x/ g0 e1 A# X `
)
) U$ V7 x8 E7 B: B5 v$ a) j )8 }4 U7 m9 X! |& C# P, y% |
(setq ctr (1+ ctr))+ ~4 J, j2 _% I
); f6 [+ R1 ?% a
(setq *error* olderr)! M* G( c! b: |6 ~! G. W$ v
(setvar "cmdecho" 1)
7 c7 U2 ?& m! F9 ? (princ), v$ `: k4 x; u
)
9 t W1 I% O* v/ t/ o& H, M! X; W1 g4 q5 _) Q4 `0 C
(Defun c:CB (/ a)
/ G$ s* m. p6 \: W. \* G6 e" e (setq olderr *error* *error* myerror)
& Q1 a. t* E/ W- c! y (setq ocmd (getvar "cmdecho"))7 Q$ e9 b2 V! W" u; s
(setq oblp (getvar "blipmode"))
; y$ R# F/ K @8 Z% P: G3 P (setvar "cmdecho" 0)
5 h, @/ J! o9 a; Z8 n: H/ Q (setq a (ssget))# _( N/ A7 f8 C! ~" v/ j9 ^
(command "CHPROP" a "" "C" "bylayer" "")
) ?/ r* \% P5 P7 I (setvar "cmdecho" ocmd)
& U9 t: t) g. R5 P( S, t% U! h (setvar "blipmode" oblp)1 I; }) G: b; h# A/ x/ B
(setq *error* olderr)) b+ l# ^' k, F( u. h
(princ). z% f9 ^' s' {1 J) `- q& l6 Y
)
, [& a# {9 @4 f. d7 B( B( N- u% ~& Y( v$ d
(defun c CC (/ co43 obj23 la23)
2 a6 D0 Y& o! M* o) B1 h (setvar "cmdecho" 0)( w( k5 W0 q% r w' ~2 H
(setq co43 (getstring "\nNew color : "))
/ S1 W& \- B( ^) |) ~2 `; f (setq obj23 (car (entsel "\nPick object on desired layer: ")))* y, J9 J$ C' n$ b5 t( X
(if obj23 (progn
% Z1 z7 |# }' S g1 h. i (setq obj23 (entget obj23))5 l5 R% U2 s; q: S; G( U5 Y( G1 w
(setq la23 (cdr (assoc 8 obj23)))* t1 s# d5 `, k% S% A* ?/ [3 [+ w* ^* e
(command "layer" "c" co43 la23 "")
1 y A+ H3 |$ g- j- o1 l `9 K )
. J7 G2 b' t/ t e R1 I )0 S3 ]2 e. a4 o* n7 U: _5 [
(prompt (strcat "\nLayer has changed..." la23))
" Y7 q6 W5 j% a7 Z& } (setvar "cmdecho" 1)
' q0 X3 d; _7 f' A u (princ). S5 r; v4 S9 g' q
)
7 d9 J/ T: A8 X1 r4 f9 D
( S* j9 {- q7 Y3 i5 a+ z& R(Defun c:RP (/ a)& V- I7 M6 X2 q# T6 S7 O' z
(setq olderr *error* *error* myerror)% ^1 s& I) T) L" w
(setq ocmd (getvar "cmdecho"))
% m4 a/ R+ O$ F3 k z7 t (setq oblp (getvar "blipmode"))
3 W# c L, n, ?- [- @ (setvar "cmdecho" 0)
. ?& ]3 @9 z7 |3 i1 e0 r (prompt (strcat "\nUSE: Delete object(s) belonging to"
: h4 L$ j0 B8 C5 E; ` G7 |( V " the layer of the entity picked...!"))! l4 [: J" a4 ?2 M+ J Y2 u+ I. S; y% Q
(setq a (entsel "\nPick the entity with the desired layer to delete: "))
! w* r; r% h/ v8 n0 p3 d5 i (if (/= a nil)" a/ D" h: J& P+ a, n2 J
(progn (setq a (cdr (assoc 8 (entget (car a )))))
( q! @+ @- j" n) ^* h4 D (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
w& k1 _# `! ~2 z* g7 D7 L (prompt "\nNo entity selected!"))
$ R( q1 i2 I" v, s (setvar "cmdecho" ocmd)# b Z7 n9 ~& o) c$ F: i
(setvar "blipmode" oblp)7 H, z& x4 [( k
(setq *error* olderr)
7 [7 y, Y2 J1 k5 P2 C, o0 V (princ)
/ k, C) s5 g5 x" I8 {)
- U% Z5 E' }: D0 o( r
4 z+ {$ Z5 o+ O H(DEFUN C:WL(/ SSET NET SSL M); \8 O! [$ J. k! p8 {8 _; v
(PRINC "\nSelect lines :")
4 k# A/ x) e, J3 }/ b1 t' D (SETQ SSET (SSGET))2 ^; {8 B& x1 b3 ^; J+ t: c2 B$ ~
(IF (/= NIL SSET) (PROGN. r* q. ]4 g4 i- W% H: L# x
(SETQ SSL (SSLENGTH SSET))5 w) j6 a4 [% t& T
(INITGET 4)
: B& e1 Q- n: q$ w$ V5 v6 M9 { (SETQ NET (GETREAL "New width : "))8 w8 u: H; K* N+ h
(IF (/= NIL NET)3 D- {6 ?8 A( o6 k$ `
(WHILE (> SSL 0)
+ X; j. f% C* f. k7 R (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
3 E8 d( ~. ? N& U! B- C8 z (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") 6 F, G# X2 X! w9 c
(COMMAND " EDIT" M "Y" "W" NET "")
h$ t1 U: E* Y1 @; n3 @ ) " Q, ^4 L9 a5 }2 ~8 f$ Z5 W
)
# z: O! V. F9 d! c )))' T; s" b5 U" B8 H& D1 K
(PRINC)
8 D4 X |+ B0 j- `; c" j)4 J- i5 L* q# U- Q" y/ v3 R5 }; e/ W
2 Z9 @" N& e( N0 j(defun C:MML ()* t+ W$ B1 ~/ k4 S" `3 K
(princ "\nSelect objects to move to another Layer.")
/ ]! O$ h5 a' I' H (setq ss (ssget)) |; s! O D# E0 j0 S
(SETQ UL1(GETSTRING "\nLayer to move entities to : "))
7 |3 H S+ X! a5 Z/ b) \7 H (setq counter 0)* X* F8 O, V, E4 c
(prompt "Moving to layer.....")(princ ul1): R1 v) Z) `( F! h2 c2 y
(setq e (ssname ss counter)), w6 V/ O3 c4 ~( ?: v: N* o8 b$ ~
(setq l (cdr (assoc 8 (entget e))))
$ y6 o( z" X2 I) ^ (setq S (ssget "X" (list (cons 8 l))))
7 q2 V, ~5 q* [! |; n$ r6 m Z- b (command "CHANGE" ss "" " " "LA" UL1 "")! ~" ]' H I6 g7 Y7 N* ]# M6 L6 b1 K
(setq counter (+ counter 1))
7 {; ^; w& i: ` i6 Y" t(princ)
& c, |" u8 } v)
. T' b9 V) o" N2 i9 {" ]8 I% ]9 F3 i0 p5 [ h/ \- t( I; d/ d
;;; ================================ GHI CHU ============================: g+ l b/ ?. L4 [; i0 x/ C2 \5 G: h
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
7 i/ k. ^4 M! g) J7 N3 C. y;;; =======================Thuong Dung Font Romant.vnh===================
1 ?4 D5 r* v0 l/ C% D;;;==================== Tran Ngoc Thang - Sinh 03-05-1976================& A; |! k) q2 h' v% G b. r; i
8 {- P$ s+ M& b/ c- I$ b- ]
(defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
* a) g# i# @/ L) N (setq oer *error* *error* err2)
5 D6 a/ [+ c ^- Z' T' r (PROMPT "\n(VNI-TTF)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")) i+ v3 f/ o2 j& b9 [
(SETQ Cpt(GETSTRING "\n (RomanT.vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (Vni-SHX)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
/ ^$ v* |2 h6 L6 I1 Y: k" z. U (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhaø Beáp"))
/ s8 y/ L/ N& p# Q7 D/ } (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phoøng Veä Sinh"))( I" o; }! \; g1 K3 |" y' V
(IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Phoøng Hoïp"))
4 R! X1 Q* z& `! j* [ (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phoøng Laøm Vieäc"))
, K2 J8 Y" G; t. A8 H (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phoøng Nguû"))
$ s, e- H6 J* Y& g: n+ O; n (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phoøng Beáp + AÊn"))+ D- c% q, H: l F$ |8 g
(IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhaø Kho"))
! N& L0 w- H) V& B8 w+ I- U (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phoøng Ñeå Ñoà"))# T& v+ `( x. f. Z5 g
; @4 X' K! g6 m" | } ~6 e9 r8 j (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))' |0 o5 U$ v) f L z8 ]/ R
(IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
6 k" y& P+ _" Q (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))8 b& L7 L$ @" B$ D. F
(IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
: v* k6 @ s$ k: c: a4 d2 M (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
4 b& G0 E1 A5 V! c% Y5 \ (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))$ ~& l& A4 N' i5 Q! M
(IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))! ] W) |. `, w. T4 F& Q7 C2 w
(IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
6 k. J* v; a. p! q/ g5 s$ a& r O
(IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
5 `, F3 H* |: O. ~, X, l: T (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
7 D0 A6 n d. ^* G& o+ s (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))5 b2 L. {, q% x0 b7 A- y
(IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
+ J6 B! \2 z! C r1 ^: { (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))# H* `6 X+ F0 a% P
(IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))- w4 @& e; r+ c* ^4 @2 w% O0 ]
(IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO")). O, r- D5 C6 x$ W4 p* x
(IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))1 d5 E" W2 y$ j& @7 N
(setq pta (getpoint; S) N) D! ?: y, ?! i! r: j# |
"\nPick first corner. : "))
% x2 D7 C0 K3 T (setq ptb (getcorner pta& y+ `9 y" V( M6 A, H
"\nPick second corner. : "))
% U& }: m& l7 n0 C4 U5 s; B (setq ptc (list (car ptb)(cadr pta)))3 @' \6 d& q' w y+ ^
(setq ptd (list (car pta)(cadr ptb)))
4 K! d# K! J- Y; T# Y (setq ang (angle pta ptb))
0 z; c' d7 Z: [/ B (setq d1 (/(distance pta ptb) 2))' d+ V: {; o. g/ T* Z0 o1 u
(setq cp (polar pta (- ang (dtr 0)) d1))
8 o8 |" Z9 v& z6 l (setq X (distance pta ptc))2 x0 C3 [. n- E; m5 ?) d
(setq Y (distance pta ptd))
' T/ K8 P7 r, g (setq X1 (rtos x 2 1))
" c% E3 j t. W6 r0 y* j# D (setq Y1 (rtos y 2 1))/ v9 T/ u! I" q9 {7 a1 t% M
(setq rmsz (strcat "(" X1 " x " Y1 ")"))
8 S1 @% V) w# L+ T (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
7 W* X/ U( J4 x* D' O (defun dtr (angg)' X( B1 B4 {- x/ W& Q" S8 A
(* pi (/ angg 180.0)))1 Y R+ M3 \( P
$ L' C$ U5 [9 ~( f+ s! ^+ @8 E(defun c:ZS (/ pta ptb rmsz pl1)
9 T; b1 _+ Y3 P2 i" l (setq oer *error* *error* err2)
1 _6 n9 ^8 M8 O: s (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.")3 y7 X o" m: p6 O: k# i& V& C! o
(SETQ Cpt(GETSTRING "\n (RomanT.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
( m6 { O% M/ j u+ F5 L% `- b( W! P1 U" m8 \: `3 `7 d
(IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
3 }6 I+ ^, Z# S (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))& s6 F5 V8 @! t) b$ M
(IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))1 }+ \* X B6 O$ b6 r& _+ s) Z
(IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
" r w+ \) u2 f0 z0 |( W( C (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
& a+ N0 o/ Q$ S* B* M) V1 p0 A8 L6 \ (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
/ r8 O) |0 R6 n H (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
* i _% \, ^5 e" G+ N/ Q7 ~; X" E$ N
(IF(OR(= Cpt "oL")(= cpt "ol"))(SETQ CPT ' "MAËT BAÈNG TAÀNG 1 : TÆ LEÄ - 1:100"))
7 K: Q* t: w2 ^+ i9 O2 P' a (IF(OR(= cpt "oE")(= cpt "oe"))(SETQ CPT ' "MAËT ÑÖÙNG TRUÏC ?-? : TÆ LEÄ - 1:100"))7 ? ~" O' P1 Q
(IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT ' "MAËT CAÉT A-A : TÆ LEÄ - 1:100"))
! |0 z# D; @3 i (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT ' "MAËT BAÈNG MOÙNG : TÆ LEÄ - 1 : 100"))
- _& |7 o4 ]4 q- V, ] (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT ' "MAËT CAÉT MOÙNG : TÆ LEÄ - 1 : 100"))
7 e1 a( X* Q4 \# T7 Z6 C) m; l2 @4 c6 D (IF(OR(= cpt "oK")(= cpt "ok"))(SETQ CPT ' "KEÁT CAÁU KHUNG DOÏC NHAØ : TÆ LEÄ - 1 : 100"))
, c" z- y3 v, g& B (IF(OR(= cpt "oP")(= cpt "op"))(SETQ CPT ' "PHOÁI CAÛNH MOÄT GOÙC NHÌN"))
4 U/ T4 f7 b' U* ?
4 K# _4 i. c% n2 r# |, I (IF(OR(= Cpt "L")(= cpt "l"))(SETQ CPT '"MA/W/JT BA/W/FNG TA/M/FNG 1 : TI/R LE/M/J - 1:100"))
2 j* ^1 s! P5 n* A1 }6 U0 N3 b (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100")), P5 Y9 v* m1 w' I, R. b
(IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100")): ^, |( m' d( w0 h
(IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))8 l7 P6 y- q) R6 h' `* o7 T; J$ {% ^
(IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))/ i3 r. B2 R" B% `5 D
(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")); a* V+ Y0 J9 g2 O& G m! i
(IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
, X- K( \, C5 r9 w7 s2 f (setq pta (getpoint
$ J, ^" D% P: g- ~1 X "\nPick first corner. : "))
5 i) f% O! N3 `6 _9 T+ R9 p (setq ptb (getcorner pta2 @8 Z( K2 f6 w4 K2 g
"\nPick second corner. : "))* t8 U) S% g: K# y$ f& z6 R
(setq ptc (list (car ptb)(cadr pta)))
: m! B3 z" J/ B* i5 \) ~0 K5 r) m (setq ptd (list (car pta)(cadr ptb)))! }. r" D: S- w+ J2 ^
(setq ang (angle pta ptb))4 {8 p% Q# ~- ~, z; x4 T
(setq d1 (/(distance pta ptb) 2)): n" f9 C! m. W6 s! O( X% L
(setq cp (polar pta (- ang (dtr 0)) d1))
( @' B9 A h: D9 i (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz)); b; k3 k( l& |' k# b7 H* C
(defun dtr (angg)
' Z+ X( Q! J3 W$ I0 J (* pi (/ angg 180.0)))
% p2 e: ]0 ~& p; Y9 h
7 F) m) x+ S5 O;;; ================================ GHI CHU ============================
: ^9 S1 G/ ^) L+ K" |;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========2 f) w* N+ ~1 [6 ~# @2 ~
;;; =======================Thuong Dung Font Romant.vnh===================5 m9 V0 H; A4 |, P' _
;;;==================== Tran Ngoc Thang - Sinh 03-05-1976================
S5 X9 H' S& c6 h0 n" u g+ V3 w+ i1 e% P5 Z1 l
(defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
/ a9 Y. u! U) Y% O9 d5 Z. C" d (setq oer *error* *error* err2)
/ Q5 E7 _* X: c: _ (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. ")
1 K3 @ j; x$ j( g1 p% I9 t- P% | (SETQ Cpt(GETSTRING "\n(RomanT.Vnh)(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))) {2 z! M, ]. k
(IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhaø Beáp"))
5 K: m1 G" r9 a$ Z (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phoøng Veä Sinh")); q$ w& I! ?4 ~0 w* K
(IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Phoøng Hoïp"))
# ?8 e: z# z- X+ d/ p' J9 N, t2 C (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phoøng Laøm Vieäc")) C- k- w/ T1 R" P+ s6 E
(IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phoøng Nguû"))& c+ g) u) f/ r2 q
(IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phoøng Beáp + AÊn"))5 c' \/ I5 p& J- \1 Z! z+ G
(IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhaø Kho"))
8 U1 v. W; F, J9 J( n+ B. N l (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phoøng Ñeå Ñoà"))
0 Q( Q8 q+ m6 w$ V% C3 R
}7 T' |+ n7 ~& l; [ (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp")). q/ y N& ~. ~! T
(IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))9 `( D! T6 {' N3 ^( O D& Y( [+ c
(IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))2 S8 x; C% V; t# I9 i4 `+ e* I Y
(IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
t) o! S# d* q5 h7 S9 o (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))& L- C4 ~$ k7 x$ m) ?: }! O7 H
(IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
. D! K6 Q* _8 H7 Y. N (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))2 w8 Z! N7 F" e
(IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))1 _0 t" _0 y$ w9 m* `) Q
G6 U. J* c$ A (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
& ?8 n0 H3 E/ R( o. z (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
( R3 j E3 P) f% r5 S5 T$ I (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP")); w) D2 Z3 c. N3 K5 H7 S
(IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))6 g; [7 x7 ]9 y* _1 b
(IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))# ^% [* B& h. D
(IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
- r* Z! X# O! k5 i' o (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
: q/ _/ o( Y& t( X4 s8 t3 q (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))- ^9 R0 V, a, g3 `. u
2 M) L! T0 h3 w# W& ~6 H" m: Z (setq pta (getpoint
7 n" N' o: K9 z8 u) W "\nPick first corner. : "))
* Q6 }6 G3 } N9 ~. r9 ? (setq ptb (getcorner pta( b* w. R& Z" J( m2 y0 ?% m
"\nPick second corner. : "))
8 P6 f% L# n2 s8 v0 k6 c$ r (setq ptc (list (car ptb)(cadr pta)))) {6 \# i, e3 W7 Z5 B6 N H2 O
(setq ptd (list (car pta)(cadr ptb)))2 P0 V8 j7 l4 j' o
(setq ang (angle pta ptb)); V. D x$ q" w% e
(setq d1 (/(distance pta ptb) 2))& s. ~0 \9 U% J |' o6 d% P
(setq cp (polar pta (- ang (dtr 0)) d1))) g; x: D7 V) B, ~' L0 E- E" N* N
(setq X (distance pta ptc))& w* s! V# Y: b5 t# a7 T
(setq Y (distance pta ptd))
* |4 @& q! x: h: p( C9 C (setq X1 (rtos x 2 1))
. u+ O+ [ h# B (setq Y1 (rtos y 2 1))
, r; ~/ Z* s* z! C* S! t5 R (setq rmsz (strcat "(" X1 " x " Y1 ")"))
( Y" a8 V: K$ G+ F; H (command "TEXT" "c" cp "0" CPT "text" "" rmsz))" P) i$ y4 B9 _ k1 [3 p0 k9 o
(defun dtr (angg)
' V$ G0 K$ v8 w a' ]$ z6 c# B; \ (* pi (/ angg 180.0)))9 L7 Z0 X$ a2 G
2 C f o! I7 u/ Y6 {
;;; ================================ GHI CHU ============================1 z6 }+ _, P2 H, W
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
. b. y4 Q; i0 N+ S: N* _* P' I- h* P;;; =======================Thuong Dung Font Romant.vnh===================
1 d$ Y3 U C: U: U3 J9 @# b* Z% `3 r1 o( W3 j! U) E
(defun c:GS (/ a b c d)
, E6 r$ g% o3 E S- u1 X1 N0 ^ (graphscr) ^& @+ M3 X' w
(prompt "\nSelect text to set style....")4 u5 S1 U: E& h7 u
(setq a (entsel))
- i& d9 A/ g! b' c' v) M: K9 m (setq b (entget (car a)))
" o' e h3 A& ~ (setq c (cdr (assoc 7 b)))
" I# P3 g' |) S2 s8 j& u' ` (setq d (cdr (assoc 40 b)))4 V. b. C, ^! a7 j# c6 a
(command "style" c "" d "" "" "" "")) p4 @7 S$ h: ~% m/ [; ^
(princ "\nType GS to set text style.")
8 j& a t: r W. n9 y" i
, u6 e5 V. D. S8 O- _0 Z(defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
& ], H, h8 m9 k+ N0 M, t7 E (setq olderr *error* *error* myerror)! x3 D0 l# c2 w) m/ t
(setq ocmd (getvar "cmdecho"))
& x& A9 N: H8 z7 i0 P/ q/ } (setq oblp (getvar "blipmode"))
) D2 d1 w6 J' Q! f (setvar "cmdecho" 0)) {/ R2 ^+ B3 ` V6 a8 d9 x: r! @$ Z
(initget 1) ;3D point can't be null
, x6 _+ C5 t- P1 B; v (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))) x& E, }$ X1 h; q
(setvar "ORTHOMODE" 1)' x/ v. D; t' I+ d( w. K
(initget 7) ;Length can't be 0, neg, or null+ g5 q* ]$ u9 a& [
(Setq l (getdist pt1 "\nLength: "))* g4 B0 ?. I* r# S+ ]
(Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
7 a# u" X+ P3 a6 l0 {; s (grdraw pt1 pt2 2)( o3 F1 z+ s5 n1 D$ k# h* z
(initget 7 "Square") ;Width can't be 0, neg, or null. R2 h% k7 b3 Z0 O' g; |* \5 P( @1 U) b
(setq w (getdist pt1 "\nSquare/<Width>: "))
' ]% {# q0 E" g) C. l) G1 n (if (= w "Square") - q- u; x" R% ^& i) Q9 H
(setq w l)$ Y. K6 [3 I! o7 A E
)4 b! j5 [% L4 g
(setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
( T2 b0 y9 H& {$ x0 G- \ (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))! K Q# J: l2 U, U+ q2 a+ a
(grdraw pt2 pt3 2)
/ ]# ^! j- X$ w; i; T2 X (grdraw pt3 pt4 2)8 Z0 n% d. p' |' t
(grdraw pt4 pt1 2)- N; H" \7 z5 H. c
(setvar "ORTHOMODE" 0)
4 V/ [) R! Y5 P8 T P (command "pline" pt1 pt2 pt3 pt4 "close")
" G& j2 i; M+ {3 B1 r. v+ A' G (setvar "cmdecho" ocmd)
+ a! [. D' I3 S: Z) i (setvar "blipmode" oblp)' F! y/ @4 ]$ S0 S- N% R
(setq *error* olderr) ; Restore old *error* handler, p0 ^# ?$ e. w! k5 g1 \6 X
(princ)
! t2 ~0 p( @8 J+ y5 V1 U! V)
, {$ x* @4 {* i
# g% T5 z# b8 T# h/ r X(defun c:SG (/ ent pt1 pt2 ang)' ?* [8 E" j0 Z6 @4 g
(setq cmd (getvar "cmdecho"))
5 E' C% v6 o _9 ?, g: v (setvar "cmdecho" 1)
! T- k" U5 P- @1 x0 w( Q" a: i- T (prompt (strcat"\nSnap angle will be set to angle of line"))! f9 \( W o) d
(setq ent (entget (car (entsel)))): r: c/ Z" S5 K4 L: r7 v+ @( |
(setq pt1 (cdr (assoc 10 ent)))+ D; U* E8 l# z. T: i
(setq pt2 (cdr (assoc 11 ent)))- l' K. H. C8 A; c S: {
(setq ang (angle pt1 pt2))
5 U Z% U# w* ?: ~: F0 F5 ]& @ (setq ang (/ (* ang 180.0) pi))- }5 u6 ` W; d3 q% ~6 d# L, F
(setvar "cmdecho" 0)
4 n5 Q* `" m6 r (command "setvar" "snapang" ang)
& O5 f! ?( n6 g2 c( k" Q (setvar "cmdecho" cmd). o" c: P. e% Y3 E' L# J
), K! B/ F }5 Z w. N w
; \, p" K) j; d& M+ }' d(defun C:TG ()5 f$ ^, k; u1 |# t
(initget "Increase New")) r& r7 m; `. t
(setq ans (getkword "Increase/<New>: "))
0 t6 S) {, A0 H, R, x% k+ A (modang)/ r0 U/ u& G: w6 ?; v8 g% j! Y
), y- E: z) U2 j. Q r6 G2 I: W
(defun modang (/ ang ss ca e na ssl)
/ U2 ?" z5 T9 o% z f0 L' `8 G2 s (if (= ans "Increase")
: g/ o6 u0 Q- f (princ "\nIncrease angle for text by: ")9 ~5 l- ]$ u: V2 m6 y6 C) u
(princ "\nNew angle for text: ")
# [- s) t9 b& E )% D. j& T# P5 H& p7 d
(setq ang (getreal))3 k |( N \/ Y; o5 K
(setq ang (* (/ ang 180) pi))- L3 I1 A: T% B/ {9 E6 `
(setq ss (ssget))
2 p0 O/ w2 }2 _$ ]+ ~/ B (setq ca 0 ssl (sslength ss))
$ R& ~: t6 i; U2 ` (while (< ca ssl)
: x2 Q; r5 ?9 Q1 K* Y: j0 U" \ (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
8 N2 d1 V8 n2 Z( x6 B3 U6 K0 e( w (progn9 M) H& g5 f8 Q0 P
(if (= ans "Increase")0 H3 ~& ~4 x4 P+ F4 f: A: D
(setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))) W2 o4 w3 I' A* i8 f
(setq na (cons 50 ang))
$ u9 |% @9 q. L u) [3 G/ ?& x )# e0 w7 |% Q- z% u d. Y1 j s* W; H
(setq e (subst na (assoc 50 e) e))( g ?0 [4 k' o+ p% {$ y. Q
(entmod e)0 A$ J- B3 S' @/ {
(setq ca (1+ ca))
& z% n- O0 k6 m" `8 a, r )
6 S, J& w) |/ y9 A0 R3 x )
- @+ Z7 i+ L, u. f4 K )
! z; s- J' Y7 Z9 d0 E& [! J (terpri)3 i4 J3 x( j" q0 m2 B1 p
)
) R8 i9 q! y$ Q n' B6 p8 Z8 z6 F! A9 T6 E
% N" N; V6 O1 U# v5 e. c(defun c:WL ()
, Z' K2 [8 s8 J" D+ N0 \ (setvar "cmdecho" 0)
3 V# A' K! X4 J( }+ z! w (setq a 1)
% j! W" j q4 }( c: n; }. @; A (prompt "\nSelect Polylines to change: ")
: C' j* l8 A7 G9 R3 e6 h (while (/= a nil)
% h6 c, Q" @! P& a (progn$ ^% X; M6 U; o l" M3 o5 K
(setq a (entsel))* O1 i1 k4 E' A! e0 l( X
(if (/= a nil). W$ X8 f4 m: R) X1 L3 ]7 r* p' l
(progn
$ m% c6 j) w. }. J9 e$ H (setq b (entget (car a)))% C+ M& q& }# F2 p
(setq c (cdr (assoc 40 b)))
9 F* e; \5 R O (princ c)
" a5 n! m* r5 K3 s5 |5 K (command "pedit"a"w""lw""")6 h6 Z* n1 S$ Z; V
))))
5 N; Y+ z" }) d* \& @" r9 m (princ)
6 K6 F* Y2 K B" n& F)! n t% j2 i, |: V& S5 s
) X/ @5 P y$ H% X& \& x0 K' C
;;; ================================ TEXT FIT ============================
* S2 Z( s- D& ^9 z2 d, @" }
1 r* v& m( n3 G! U" d* L(Defun c:FT ( )
& n1 j4 u; a: J (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
( C; C( C9 t& P, Y (Defun LL-xyz (arg) (CAR (TextBox arg)) )
! |3 S7 a; R# x6 y1 T# ^) m ?- W (Defun UR-x (arg) (CAADR (TextBox arg)) )- k# _. M6 Z$ n/ _5 \3 d
(Defun LL-y (arg) (CADAR (TextBox arg)) )% y4 k) d% m% G+ d/ _3 L
(Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) ). E1 P* d3 Q: w$ a8 Q
(Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
3 j& p% y c8 I Textent (If ename (EntGet ename)) )
9 c" k- A6 X- } (If (= (CDR (Assoc 0 textent)) "TEXT")
9 c1 f4 Y0 `( F" h0 h% o/ \" w5 | (Progn (initget 0 "Start")
. p+ [$ b. E i5 o* T. A( x; q (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )/ Q N8 ^' q; D3 A2 |$ h+ Q+ p! k
(setsnapang Textent) ;set snap along text entity n# L& v0 W" l v, c# r8 v
(setvar "ORTHOMODE" 1) ;drag along the text
2 j) t% k! V/ q) O (setq
1 P- J5 K6 l! M" Y' ^TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )+ q* k( i( a9 t4 S: h8 U
(setvar "snapang" 0)
9 y$ i9 B6 H& b) d) O (cond
8 c1 I" I/ M+ ^# H( F' H* W; H ((= (type TMP) 'STR) ;;new starting point to be selected# f8 B5 p" f# \) }2 d, I- \
(setq Start (getpoint "\nPick new starting point: "))* L3 t$ `3 `1 e7 e) t
(if Start (progn* s) a9 h% Z: }. h: l
(command "_UCS" "_E" (cdr (assoc -1 textent)))
# k5 _; x. H, q (setvar "ORTHOMODE" 1)
! [6 |6 G& c( O+ _ (setq NewPt- I: y2 u# ^* `2 y& Y: s9 P/ d8 g
(if Start
! g1 b: @9 ^" Y5 {1 H; ]/ } (getpoint (trans Start 0 1) " ending point: ") nil ) )
9 j7 v- E* N* G# M; y6 | T (if NewPt (setq NewPt (trans NewPt 1 0)))
9 p6 g/ ?, X3 h" d2 B) W) ] (setvar "ORTHOMODE" 0)6 S, H) e2 J4 P; m/ @; m
(command "_UCS" "_W") ) ) )
$ X5 P" Q; J: |2 | i i ((not (null TMP)) ;;new ending point selected1 z& Y0 m% D7 v* e( W
(setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
8 h' s7 Z( e0 E1 s (t (setq Start nil NewPt nil) ) )4 G3 A* O I+ n2 U' h$ a7 g
(if (and Start NewPt) (progn
; A* j8 @* e- p1 \+ ? (setq Val (Assoc 41 Textent) ;;current width factor
9 G2 `& e- @4 ? Val (if Val (cdr Val) 1.0) LTC_% , g; | |9 H+ M4 N n1 A( p
(* (/ (Distance Start NewPt) NewEnd ) Val )8 W6 x0 t2 D% V+ Y
textent (Subst (cons 41 LTC_%)+ b4 Y( O; S. Q: u& ~0 x
(assoc 41 textent) textent)& D5 O1 M% A& T) \* k# C: E
textent (subst (cons 10 Start) (assoc 10 textent) textent)7 n) ~. J; q8 P5 a; v# k/ S* |/ k
textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
9 ~ C1 X7 z% y (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))0 R( N: {4 [) r4 D) s# M" p( u
+ p, T0 w5 c% `: e7 ?2 b
;=====================================================================- N$ q9 E4 h% A: k" x" D
;=========================COPY + ROTATE ==============================- q# P* n. p- n ?1 }" j
;=====================================================================* m5 U+ r" |; p$ C# U# {, D
; W' q7 y$ }2 U0 v( u( {. F* L. k) B(defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2) Q8 b5 ]8 g9 {
(setq olderr *error*
+ k; a& L8 F) N- r! C *error* croerr)2 i4 p, x+ s, h( H) [# ? I$ ]
(setq cm (getvar "cmdecho"))
- R. s# t- B: z; D5 Z (setvar "cmdecho" 0)
% G0 \8 e) ?6 E/ P4 N) } (setq loop t)" d5 \4 S1 ~% [" m6 L% x/ a2 W8 w
(while (not (setq ss1 (ssget))))
* ?' {5 Q0 A1 C5 @+ D, l1 _ (initget 1 "Multiple")0 E, t/ h4 z. c3 P
(setq bp (getpoint "\nBase point or displacement>/Multiple: "))
% G3 b( X4 `: J: T; @! N (if (= bp "Multiple")+ U- }. r5 `' @8 }& Y
(progn
% B' _. k4 q, o" f. n0 ~% H+ a9 O (setq bp (getpoint "\nBase point: "))
: L' W/ k5 Y" n) f* k, g% `. \2 u (setq mult t)* h0 K6 t* ]3 M8 ?% J0 b* }
)5 n2 K$ T/ O4 j) k2 x2 c8 C
)2 Y( E6 S9 O0 z. F" E% ]5 P
(while loop
4 [# ^. G, B9 s8 N2 D4 l/ B$ s (setq loop mult)
6 {5 \$ W# U8 ~$ W3 V; N* G/ V, |' W (setq lent (lastent))
: \2 y# ?6 I8 z- g _9 z (command ".copy" ss1 "" bp bp)7 W; E" f4 J( J% c
(setq ss2 (lss lent))7 }) c ] ^% G+ n. O1 m; F
(setq lp1 (getvar "lastpoint"))
4 ]9 a% n- I/ j0 A (prompt "\nSecond point of displacement: ")
% v: O* P2 E- h8 H4 r4 z3 O (command ".move" ss2 "" bp pause)
- W3 `2 ]. o* Y, L; V) F (setq lp2 (getvar "lastpoint"))
7 g7 G, u Q1 m (redss ss1)& u+ \$ M: X& x+ U' J) g
(if (and (not mult)
6 t- P1 g1 E. u1 t (= (distance lp1 lp2) 0)
* q3 x2 Y2 Z- s6 E2 @ )
9 ?+ M! i% b; D, `) i (setq lp2 (getpoint "\nRotation Point: "))
1 `( M8 ?9 k8 z+ b% J )5 G0 Z3 W, |: X, i$ E8 [
(if mult
, N5 ^6 h* a/ R { (prompt "\nRotation angle ")- B* W# ~ G- B8 K
(prompt "\nReference/<Rotation angle>: ")2 h& Y7 q) r' N# Y, h# K
)& ~9 N$ U) d6 ?1 V* E7 M
(command ".rotate" ss2 "" lp2 pause)
( p+ \, i6 l) {1 }7 O$ F )- j! W0 E" K! V* e% P L/ J2 o
(setvar "CMDECHO" cm)
: v" @. k/ B2 v# l (setq *error* olderr)
, |- S }/ o# T' w (princ)" w- H" u9 E& Y; Z+ H4 s
)
3 v Z, n* N0 `' T% U* p; w: J(princ)1 e8 _4 S" t( V, H. U. V/ C% C
(defun croerr (s) 0 J' y4 V+ P# R% ^
(if (/= s "Function cancelled")
1 D& j- {4 k; w (princ (strcat "\nError: " s))0 J) B: o/ V0 w3 Y$ X
) " ] n) G: {1 ^% f- D: r' @5 r, O
(setq S nil)/ q' c' h7 y3 j& Q3 r, k! [
(setvar "CMDECHO" cm)' `, o, l# R- `& ]# _: o$ ^
(setq *error* olderr)
( S" v) l( |0 R. m: I+ { (princ)
/ F( r5 i# x# v$ g$ o), _6 H/ [9 o9 E; h4 C
(defun lastent (/ a b)
! }# [& ]% ]* { (if (setq a (entlast))
, s5 @5 G: F1 X; ? (while (setq b (entnext a))
3 J9 J+ N( `& q' o- T (setq a b)
# ~* s& B2 K" c* ]0 x )* k1 ^ e9 J/ K1 @* R$ a& h
)& P! f$ {# @& Q$ R O/ j
a
" i% l8 T1 j6 h' K B5 j, \)
" S0 Q) r8 u# g* s8 j; T& X(defun redss (ss / en i)8 N. ^& L" V& y* j
(setq i 0)# N& \1 ]; c/ O- f/ V/ j
(while (setq en (ssname ss i))) |$ }( b7 Y0 b
(redraw en 1)
/ D+ ]( w& O3 ?' N) G (setq i (1+ i))7 b6 m2 h) e6 \6 q
)
6 k0 @5 d1 h8 x, k2 T)
% h) N* A+ x( x- v1 t- n(defun lss (en / sels ed)5 F: k2 z( N8 |! @6 h/ D
(setq sels (ssadd))0 D. G2 j' J0 a, I4 F, L
(while (/= en nil)
; Y. W( `4 u" F" i8 |" P ^( n: R (if (setq en (entnext en)) (setq ed (entget en)))8 Q* Y0 m) y$ C0 f9 z1 T
(if (/= en nil) (setq sels (ssadd en sels)))4 w8 N9 I/ o6 l0 z; ~
(if (or (= (cdr (assoc 0 ed)) "Polyline")1 s1 E) ^9 Q7 t) \# a: E
(= (cdr (assoc 0 ed)) "Insert")
, `1 {8 A! d- M, y. @2 e )- ?6 j, v P3 g* w, z
(while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
, E3 Z+ E" e, a )
8 g% ?/ C2 \: f; W; v6 w. n )9 I# S$ c2 K% T% E# [
sels
0 X1 w# u/ F2 i% X [$ b), D+ |. y% x- l, k3 o
, P {; i# ?5 D) d2 _0 N
;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
& Q* ]) |9 _4 C* r5 Y" q;;;==================== Tran Ngoc Thang - Sinh 03-05-1976===================, F q- F" [7 ^# T5 C
! t5 D: j% |6 y, S B# {(defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))/ s! P3 A8 i0 u6 ]4 e- S% U
(defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" "")), v& m: B, c0 ?3 G0 l1 ]3 w, T
(defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))% m( H5 _" t" P9 W: _7 j2 t
(defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))2 G/ F" X7 m, s' S0 p
(defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
0 T6 u, b. v" u1 `6 k6 T5 c" }(defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
7 m' ^+ i8 \8 S! ?3 t7 {" ^(defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))8 c4 s* ]0 o$ @; n$ K
(defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
0 r8 `- @+ y* ?5 N. | {(defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))4 ~+ \: s& I% c1 P4 m
(defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" "")); J# P. N% Z8 g4 Q0 P1 l A6 I, p
(defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))' {" z$ H* i* `% U1 Q- n2 y
(defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
- H6 y5 k+ T0 M% K(defun c:77 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))- [1 `5 B3 ^6 J7 y
(defun c:7 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
) K# G# c4 W, c8 V; n(defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))& B* U4 s6 r7 Q% f V1 S
(defun c:9 ()(princ "\nChon doi tuong net TEXTTXT")(ssget)(command "change" "p" "" "p" "la" "TEXTTXT" ""))
/ A: P- L' ~8 L0 l# X(defun c:99 ()(princ "\nChon doi tuong net TEXTVN")(ssget)(command "change" "p" "" "p" "la" "TEXTVN" "p" "C" "bylayer" ""))
" ]) q7 V$ a5 f0 {! {(defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))& X C& A* B! C$ \8 H/ p
(defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
8 W6 E) X) i7 A- ?* w: A8 e5 D i$ A# J7 g
;=====================================================================7 L Z) G6 K" c/ K
;===================DAT Ti Le Theo KHO GIAY BAN VE====================
) p7 D, \! m3 Q* N;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
/ Y4 R( ~0 V u- @! l" z' n8 X( q3 ^1 }" i* a F& a4 y% h
;(defun c:SA6 () (Command "DIMSCALE" "111.11111" ))(princ)
% b2 V, r$ ?2 r+ M. |;(defun c:SA5 () (Command "DIMSCALE" "1111.1111" ))(princ)
8 A- U* _9 k3 G1 e$ E {;(defun c:SA4 () (Command "DIMSCALE" "1111.1111" ))(princ)# m# D& S1 o' R( Y+ L$ q/ g$ n
;(defun c:SA3 () (Command "DIMSCALE" "11111.111" ))(princ)
: i1 u9 A/ ~3 s2 {) N* Q7 P4 T* V;(defun c:SA2 () (Command "DIMSCALE" "111111.11" ))(princ): Z) w0 j: D B3 O$ M/ y* K
;(defun c:SA1 () (Command "DIMSCALE" "111111.11" ))(princ)
* w* ^% D8 i2 }# N2 q5 d: V;(defun c:SA0 () (Command "DIMSCALE" "1111111.1" ))(princ)* r/ M ^; N: ]% C/ }) |" ~
$ e1 S4 {: M3 J6 L* V;=====================================================================
1 R# ]. r* m4 W- L$ }9 S;===================DAT Ti Le Theo KHO GIAY BAN VE====================1 r w5 `( c! c1 x( A4 P
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================! ?) K% U5 S7 i( ^% S9 N0 ^* R
5 e& u. V+ |3 g7 n;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
$ O" \. ^+ p6 E5 I' l) q$ X, @1 t' G5 d1 G
;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============2 g4 Q" m( s. v5 G- U8 v( M
5 S) i s4 U! y* A6 n(alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
6 H* X9 k; ^& G% h, O(princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH") y- J# t/ E. p6 S: m
g- P# [8 O( _9 S;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===* ^) Z3 F7 b4 c8 V: z
9 K, y9 L3 _( q# H;(DEFUN C:netxuatanh (); X l5 N) o8 }
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
% z% o8 s& A# e7 d0 a& |8 ]. ~ "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
4 k5 L+ M2 [3 _( @4 m "M" "MANH" "C" "9" "" "Lw" "0.5" ""
& k) x1 w: A" @- }2 ^6 w+ W6 F8 G( E7 j "M" "DIM" "C" "1" "" "Lw" "0.6" ""2 k" n- v M. K3 d
"M" "THAY" "C" "7" "" "Lw" "0.7" ""
9 S* _( O1 c: C* l; q "M" "NOITHAT" "C" "60" "" "Lw" "0.5" "" |+ c o0 c% q# N8 Y1 \8 z
"M" "HATCH" "C" "5" "" "Lw" "0.35" ""7 l8 A1 P+ C0 f# X1 X( L: u
"M" "COT" "C" "2" "" "Lw" "2" ""
- A; C/ J" K7 p& h0 J( g- \7 g "M" "Defpoints" "C" "7" "" G9 ?; b% n. a5 H7 G
"M" "0" "C" "3" "" "Lw" "0.5" ""! U G( ^2 \9 l6 q. p Q4 Q8 {
; "M" "1" "C" "1" "" "Lw" "0.5" ""0 Y+ q+ Q8 C+ ^% [6 U" ]4 C" W
; "M" "2" "C" "31" "" "Lw" "0.5" ""- l Q) U) e% d) J
; "M" "3" "C" "8" "" "Lw" "0.35" ""5 l* f' p7 i4 L- V
; "M" "4" "C" "4" "" "Lw" "0.8" ""2 h" @) K6 t# ]+ s2 r* r$ j9 D* D
; "M" "6" "C" "6" "" "Lw" "0.35" ""* }0 c; v% S! ^8 }
; "M" "7" "C" "7" "" "Lw" "0.4" ""( K, Z. C0 y0 A/ |+ q o0 ?
; "M" "8" "C" "8" "" "Lw" "0.35" ""
8 @9 m+ ~/ c, s( T L0 k "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "" x. b# Y7 M( h! U
"M" "DUONGBAO" "C" "7" "" "Lw" "1" ""( w) H" O% s) r
; "M" "KE" "C" "8" "" "Lw" "0.3" ""
3 M' s2 w& L8 D9 B. D8 t. t( Q/ ?; "M" "KT" "C" "9" "" "Lw" "0.35" ""& p9 a! D1 F! s, t( {/ R4 N
"M" "NETDAM" "C" "4" "" "Lw" "1" ""1 @5 |# `8 K' A v' D
"M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
6 ~0 L. r+ b$ O: q "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
) Q' K7 G- J3 A) k+ P, r, L- }+ m" X "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.8" ""
4 }% q% L. K8 ?4 q( A "M" "TEXT" "C" "7" "" "Lw" "1.58" ""5 B- ]% m: D# {$ w* v
"M" "TEXTTXT" "C" "7" "" "Lw" "0.5" ""
% |7 \* C2 |1 T- |$ Y$ \* @ "M" "TEXTVN" "C" "60" "" "Lw" "0.4" ""
; Q H% J1 H- [6 l- H "M" "TEXTVNi" "C" "60" "" "Lw" "0.4" ""
6 {8 N( v- x& t; e- ~5 k "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""7 k; J" E# r7 \- a, _# B
"M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""1 P! ?4 v4 M. c4 p+ M- ]8 c% |
"M" "CUA" "C" "6" "" "Lw" "0.5" ""
% |: F: q6 ~( K9 ] "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
) G. z2 B, ^) L$ B d1 f! C6 y4 L
- G& {: z1 [3 i6 n( p;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===7 }0 b" Y% Z' i, [- v' h
T5 k7 P( P. B$ ?0 d/ z$ D "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
; V5 q5 u4 X Q# F1 h, y "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" "": _* o( X1 G" T# F ?
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
" l. J' M; g9 G2 y. G* J; "M" "250" "C" "250" "" "Lw" "0.35" ""/ a. z: G% S6 Z
"M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""9 X# [' x; Z6 U7 l
"M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" )(princ)3 _* m9 D" R0 S0 e) h" B
6 Y1 ]4 [* i0 U1 }! ` S+ I
;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======7 W- x1 k- k7 ~4 S6 |
;===================================30|04|2024==============================# \6 S1 }8 C& W- F& w7 @5 T
) c) B* H7 h D( a N1 C (Command "-style" "VNi-AUCHON" "vauchon.ttf" "225" "1" "0" "n" "n" )(princ)
- m1 H" p2 H. L2 J (Command "-style" "VNi-COURI" "vcouri.ttf" "200" "1" "0" "n" "n" )(princ) ~; f$ \9 Z% }: _' }* T
(Command "-style" "VNi-COURIB" "vcourib.ttf" "200" "1" "0" "n" "n" )(princ)+ d# T6 b) M& p+ u: E* ^( ^
(Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
- Q9 k% v6 i2 x8 A3 g (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
7 h5 r' c. K2 \) C8 ?5 S6 J* Y (Command "-style" "COTES" "tcvn3italic,vns.shx" "0" "1" "0" "n" "n" "n" )
* S7 u' r9 z9 J1 k c% O& o/ V5 A, F/ L (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" )
3 F; X& K/ ~, B1 m (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" )% h: [. S# k/ Q; ?3 e
(Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" )2 v0 q4 n& W8 q T/ w! B1 T
(Command "-style" "STANDARD" "Cambria" "250" "1" "0" "n" "n" ), P5 X, z8 I- ]# w
(Command "-style" "CAMBRIA" "Cambria" "200" "1" "0" "n" "n" )4 M7 [" E% i8 T9 w1 J5 |
(Command "-style" "GHIKH" "romant,vns.shx" "0" "1" "0" "n" "n" "n")
+ o7 o) T4 c" \; V5 W3 V (Command "-style" "GHISH" "impact" "0" "1" "0" "n" "n" )' q6 o" D" ~4 i k7 l0 g% y: `( r2 w
(Command "-style" "ROMANT-DIM" "abcroman,vns.shx" "0" "1" "0" "n" "n" "n" )# d. h* O+ K0 `/ l7 N' ]
(Command "-style" "ROMANC-KhungTEN" "abcroman,vnh.shx" "200" "1" "0" "n" "n" "n" )
% Q6 r* i4 B) ]: ] (Command "-style" "ROMAND-TEXT" "abcrom,vnh.shx" "200" "1" "0" "n" "n" "n")
9 q/ K0 L* L) S7 V; E, _ (Command "-style" "ROMANT-TEXT" "tcvn3italic,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
/ J( b7 K: |0 N; Z% z9 t m9 @( v) `) p4 E
;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
8 h. { B2 B2 O5 w0 @- j0 D! ]+ J3 ?, B;===================================17|10|2024===================================
& N* R! v8 d) r, S* q e7 T8 A. I9 p4 u/ J7 s% P: |3 H
(Command "DIMTXSTY" "ROMANT-DIM" )(princ)
& W# j; Q3 K% w& x7 E! Y5 D9 h (Command "DIMBLK" "Closed" )(princ)* ]- B2 {' d4 q- _
- y- m1 A/ V% |: J- v;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=0 I+ O, b/ ]3 Q" Y
;===================================17|10|2024===================================
" A" k- C. j2 F/ h8 _$ ^! g* G# [$ ]1 z9 N
;(Command "-units" "2" "8" "1" "8" "" "N"): s, C; L7 P" E$ Y
(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)
) u' C) v1 k) l! O( }$ o
6 p8 u. ` v: \+ N% j;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=* O$ n( \: ^% }; Z0 ?3 ^* s
;===================================17|10|2024===================================! D2 @ Y" @& S3 G4 e
% k- w( K9 Q( g5 |+ U+ b. U;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
. `- p$ u% W% A8 X- J" i/ z
q7 n; [( L' {+ V D7 u9 k;======================== DAT NET IN & TI LE BAN VE ============================= ~( b/ l+ B+ G
) d( Z7 n% I3 l9 M. h
;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================( p+ N' Q8 K+ {$ G- j
;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
. b5 D, ~) A5 }5 J2 q+ c2 s;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
) |# j0 j6 j9 @" u p5 P;=============================11|07|2025==============================# ^- b: M: W1 q
;Ti Le Ban Ve - 1 : 1006 G1 w0 l+ R8 Y! @( @ ~
(Defun c:kta4 ()
8 G6 d" [" B3 s3 p; }$ r5 t (setq mv_sc 100);Ti le ban ve3 E* w0 v" ^, S: T
(setq x4 297)
; W+ f( A: h0 G' Y (setq y4 210)
- c* n9 O2 u1 U3 T' a (setq x4 (* mv_sc x4)
# G& Y3 y, | N$ @6 c y4 (* mv_sc y4) )
2 T N$ C0 U- R% f$ o: P) ^7 l (command
: O, r0 x$ g4 x "LIMITS" "0,0" (list x4 y4)5 h% o x5 V8 F Q- Z' ]6 `$ A6 D% o. \
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
" S/ F/ F9 w" P; H( I6 w2 Q;Khung CHU NHAT Chinh 8 r" u. g' K2 F: f% T
"RECTANG" "500,500" "@28700,20000"+ f( j* _. A `0 k3 v
"RECTANG" "700,700" "@28300,19600"
0 K n1 i5 L5 p' }7 _;Khung Ten Chung
8 t4 R% E* U7 W/ x+ j/ d0 B9 i( Z "RECTANG" "700,700" "@8000,1250"
' D: _1 T V( O; g4 u- u, E4 @ "RECTANG" "700,700" "@17300,2500"5 N1 O/ X8 |9 Q# a
;Ten Ban Ve& w' j) W& X) }" M3 ?0 [& I
"RECTANG" "18000,700" "@11000,1250"( f0 X, r5 K: U) v$ T2 D
"RECTANG" "18000,700" "@11000,2500"1 x6 B) K% d+ w" ]7 d0 ^
;Khung Ti Le + Ngay Thang Nam
! o: R# a& o, O ^ "RECTANG" "22500,700" "@2000,2500"
4 T& B! _) | ^3 Q# V7 V9 ^;Khung CHU TRI
/ @! {/ P8 A! [' g! b$ b6 D% h0 W) y1 q "RECTANG" "8700,700" "@3800,2500"
) O& j9 L" o- `9 }% G9 ~8 P8 C4 _"ZOOM" "_a" ))
4 F: \. Z" r; q/ v;=====================================================================
, Z A: g4 x: K* P4 s; |# t;Ti Le Ban Ve - 1 : 100; p% {9 P0 a, V! @
(Defun c:kt4a ()
8 i0 k( M9 w6 u; [+ I9 h: e! e (setq mv_sc 100);Ti le ban ve: x' h; \( u! r7 P
(setq x4 297)7 p: D: z( C1 d2 L
(setq y4 210)
: I4 J9 X, c5 P- U- G: P0 N (setq x4 (* mv_sc x4) 9 R: X) R6 v; X; H8 W; @4 g) J
y4 (* mv_sc y4) )
) ]% ~6 O9 D% S4 W (command : Y; c u% ]' K R, T
"LIMITS" "0,0" (list x4 y4)
' z7 U4 r5 [ m$ h3 K9 V- C s "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
) Q. r% w- @0 f* ], r;Khung CHU NHAT Chinh
/ c+ H: h; g& ?! G1 G "RECTANG" "2000,500" "@27200,20000"- G0 a7 Y. [: U D, }
"RECTANG" "2200,700" "@26800,19600"
1 q6 K2 ~! q0 x;Khung Ten Chung- M0 ]; G; l7 M; n
"RECTANG" "2200,700" "@6500,1250"
`0 Y; `$ H1 l w) V "RECTANG" "2200,700" "@15800,2500"
! A0 X \) C( o: c;Ten Ban Ve, p( r+ N1 m% ^2 }$ }
"RECTANG" "18000,700" "@11000,1250"5 U0 ]( u0 {0 }4 E
"RECTANG" "18000,700" "@11000,2500"
4 i4 ]$ y0 @) B;Khung Ti Le + Ngay Thang Nam1 A7 E# H6 Y e( w6 P
"RECTANG" "22500,700" "@2000,2500"2 e; }+ ]* y/ H
;Khung CHU TRI# R: n# `2 i9 {
"RECTANG" "8700,700" "@3800,2500"7 M; C, ]2 [+ K# M: ]7 C
"ZOOM" "_a" ))7 b# l8 n$ b4 M' L
- d- H; y9 [4 Y( C1 f8 C8 \) I) a;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
% b. ]+ K) d/ [- T! n/ X, ?;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
3 n. x7 L; C' s;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================6 V; U* g" _$ L3 k+ a
;=============================04|07|2026==============================1 R, x9 V. ~6 z: w
;Ti Le Ban Ve - 1 : 100
* C# W- s- A* \0 P" L) d% i) T! O(Defun c:za4 ()( F0 k3 ]; i& _- F: k) |
(setq mv_sc 100);Ti le ban ve. ^- A/ W) S" k" [
(setq x4 297)
7 V; O3 h" D7 G3 x+ R; | (setq y4 210)
e# V% [# e) \) G; b8 c (setq x4 (* mv_sc x4)
* q$ [+ Z$ @, D( q3 ^ y4 (* mv_sc y4) ), c; n* Z! k" E8 h$ m9 b8 b: w
(command
! h0 j0 k& H1 |1 F "LIMITS" "0,0" (list x4 y4)1 j) T6 }$ r: I8 s9 A o) p6 G+ U
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"( w. X. b7 ^2 q# f. Z* P9 v* U
;Khung CHU NHAT Chinh
6 _1 O9 w! x! F% D0 |1 ] "RECTANG" "500,500" "@28700,20000"2 E- |$ E$ h2 o3 j! t8 |* y
"RECTANG" "700,700" "@28300,19600"
5 k3 _% R# _6 d, I( ~. R, T7 K% t;Ten Ban Ve" N" J& X# C7 z- q' ?& `8 ^
"RECTANG" "24500,700" "29000,1950"7 G& M. R8 s. @( F/ O& w& }; R4 `- o
"RECTANG" "24500,1950" "29000,3200"* p! c# \( y5 J% x. P
;Khung Ti Le + Ngay Thang Nam: S0 e, ]# K, e" U) n3 k
"RECTANG" "24500,3200" "26750,4450": u+ }4 x `. s2 I
"RECTANG" "26750,3200" "29000,4450"
( |9 x8 [. I% R6 ~) F;Khung Kiem Tra
. x7 _' A: ?4 @* |% f "RECTANG" "24500,4450" "29000,6325"8 D, g7 Q, n7 x/ x1 H9 ?' |2 m7 a
;Khung Thiet Ke
; y1 a# J+ h D7 x# ]* d S$ z "RECTANG" "24500,6325" "29000,8200"
}! \: X/ d: y- ];Khung CHU TRI$ [$ i# E" f8 w% V, E
"RECTANG" "24500,8200" "29000,10075"' a4 |" {5 ?1 }& b8 ?/ }3 m
;Khung GIAM DOC
' A) e$ Q; u! | M8 P- o: w+ a2 `0 b "RECTANG" "24500,10075" "29000,11950"% X4 T( z( L0 p; I. e
;Khung HANG MUC1 Q4 [' e2 m3 w" H5 i% E" [* E
"RECTANG" "24500,11950" "29000,14450"( h- j/ q$ J& b" q0 Q5 j5 d" q
;Khung CONG TY
* N5 f$ m R/ e6 c "RECTANG" "24500,14450" "29000,16950"
* N7 `# q( u* z8 {2 H;Khung REPAIRE% z4 F; j6 A D* N7 _6 h( H
"RECTANG" "24500,16950" "29000,18125"
8 \* d" \& E9 a" [ "RECTANG" "24500,18125" "29000,19300"
" L1 h9 u% W+ p6 L" l+ i "RECTANG" "24500,19300" "29000,20300"
8 I/ x( j1 m- S# X; M6 q% f "RECTANG" "25500,16950" "25500,20300"
; H, U$ B& j* I: S& C6 ? "ZOOM" "_a" )) n3 ^+ S# |& f3 z4 e$ m
;=====================================================================' g3 p+ C- A8 z5 j; L
;Ti Le Ban Ve - 1 : 100
) i# ]* w# Y0 m- b* Y(Defun c:zb4 ()* s" M# k! c- ^3 L
(setq mv_sc 100);Ti le ban ve
) V2 P3 U+ I0 x' u9 v0 N (setq x4 297)' `! r% d7 f6 ]8 Z8 R/ ^ @' h- Q
(setq y4 210)
5 U* s+ `/ F+ Q* S (setq x4 (* mv_sc x4) ) {1 p0 I- w8 Q6 G& m
y4 (* mv_sc y4) )
7 _6 k* N% Z% _ t1 s. U* i* ` (command
y; o3 v/ Q) z4 h# Z "LIMITS" "0,0" (list x4 y4)9 m# {8 o% `3 I+ C* t! v9 P; J
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
& z# ^1 ?; l' J' I/ l# O;Khung CHU NHAT Chinh
; S7 z4 i4 q, c) c4 ` "RECTANG" "2000,500" "@27200,20000"
r7 ?. J* H6 C "RECTANG" "2200,700" "@26800,19600"7 u0 y$ v# U9 V( R i; c0 f
;Ten Ban Ve/ e; ~) y4 ~5 h4 U
"RECTANG" "24500,700" "29000,1950"! _: ?3 K$ e1 ]7 }% Q
"RECTANG" "24500,1950" "29000,3200"
4 |! x5 w5 J9 E" F% Q;Khung Ti Le + Ngay Thang Nam
, o _1 h# Z" b4 X! { "RECTANG" "24500,3200" "26750,4450"
( Y4 H' G: u; I9 Y# U( a R "RECTANG" "26750,3200" "29000,4450"2 k( |$ n$ j$ z3 r8 \- `
;Khung Kiem Tra
& p; v6 k8 I: K1 i( ] "RECTANG" "24500,4450" "29000,6325"
1 i2 U9 K: H$ c' M6 C;Khung Thiet Ke* A. K4 Q; `5 [' C0 z
"RECTANG" "24500,6325" "29000,8200"
4 c9 L5 k5 B* v$ C" O4 i8 b;Khung CHU TRI' h' \- H9 M! G. U
"RECTANG" "24500,8200" "29000,10075"/ U. X0 r9 o4 a- e, `. y
;Khung GIAM DOC
1 g3 d/ n- h: {1 ]4 Q' f "RECTANG" "24500,10075" "29000,11950"0 @5 p$ ]' c0 k8 K
;Khung HANG MUC* B* D( c' @4 r/ A- j* e
"RECTANG" "24500,11950" "29000,14450"
% ?) g5 s+ R0 {9 `' g;Khung CONG TY: V) m& M$ E, {
"RECTANG" "24500,14450" "29000,16950"
( A8 I/ Z# K: u- r8 m8 c; F;Khung REPAIRE
2 u0 i4 Y( n) t; D2 a! a8 B "RECTANG" "24500,16950" "29000,18125"4 V' C* z* u1 m1 m6 E2 d! [# M7 ?/ W
"RECTANG" "24500,18125" "29000,19300") r7 D" H$ X2 k
"RECTANG" "24500,19300" "29000,20300"5 w& y' ?8 _% ]$ A; B
"RECTANG" "25500,16950" "25500,20300"
9 ], q8 z9 W' [ "ZOOM" "_a" ))
) Z3 O- u/ a' A& ]+ w& P! C
9 D0 S. d" R1 F0 O$ J( p9 g$ q( \;;; ============================GHI CHU Khung Ten========================
9 J& ?1 m* w3 S;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========, T% F3 n1 w/ @/ y! y- c8 u: p
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================
* N* a/ \! q8 U% t;;; =======================Thuong Dung Font Romant.vnh===================
' H% e3 u3 F8 F" o1 ~1 S4 n7 R5 g4 o. e4 C# s+ F
(defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
4 X0 m5 W% h/ t+ d( `6 w (setq oer *error* *error* err2)
" | Q$ ^" j; C) S (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
' y$ k% }( L. E- Y& C (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
: A [+ p4 \$ W& V/ w2 ? (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))0 D! S' H/ V% U
(IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
+ ]. _4 J" C* s( N7 g" | (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
/ v5 w; F V! w* y (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))) w3 j7 _9 C4 N# |
(IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))) b* m C, f, l4 f' V3 p
(IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))6 _3 ^1 P. \, [, P% n1 |
(IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
; w+ i6 ]& x: e (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
5 a! ~4 H, ]( M6 k (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
. S' {8 ^& h6 D+ L1 V (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
o% h: i. n9 j# b" r* J+ e (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
, H3 f9 b1 `, }7 d (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))( r J$ \5 c% a9 q1 ]
(IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
6 r+ K9 e" @1 V2 {; e" p (setq pta (getpoint
c8 z6 a8 O, W9 l "\nPick first corner. : ")), M- k# P, q& Y5 m
(setq ptb (getcorner pta
6 B1 S+ o% R `1 D" |( H( ] "\nPick second corner. : "))
1 g1 k# ~$ F4 T (setq ptc (list (car ptb)(cadr pta)))
, u2 g/ E/ F& X, ~' |% C( J8 | (setq ptd (list (car pta)(cadr ptb)))+ N$ f2 [: y" [8 _' Q6 i
(setq ang (angle pta ptb))
$ U$ X7 ?4 Q, J$ B (setq d1 (/(distance pta ptb) 2))
2 j- \- Q, n# _& h( W (setq cp (polar pta (- ang (dtr 0)) d1))4 g. R& Y: s& F" N! X
(setq X (distance pta ptc))( J+ U, n/ [( t7 b: v- j, `# E
(setq Y (distance pta ptd))
& h' {' z6 m4 S4 ^ (setq X1 (rtos x 2 1))
3 z% Z) i0 x* t. b5 [ (setq Y1 (rtos y 2 1))! w8 s- q( A: I7 A
(setq rmsz (strcat "(" X1 " x " Y1 ")"))
/ J+ W1 l, w! q3 d& B5 \ (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
4 v: C: J. y' } (defun dtr (angg)
3 ?5 j- r& b, y) h5 B, _( _ (* pi (/ angg 180.0)))+ ^2 t# V. G% n( ?' c+ o3 G m8 e
" G: d0 K3 B" B9 s" Z8 @* |& }
;;; ============================GHI CHU Khung Ten========================
( N' r H j0 g+ f( u' a;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========1 s" C3 Y8 I- s! Q5 D/ J$ b
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================
5 _; L y5 h p5 q2 K;;; =======================Thuong Dung Font Romant.vnh===================/ ]5 @: N- G+ R: O: x
4 v4 c6 ^1 O. m3 P* w
(defun c:iit (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
6 n+ m8 ~% [* _% N6 z (setq oer *error* *error* err2)( I, G7 w$ N& e2 P2 Q
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5; c7 d& Y& ~0 J0 E, N+ @8 G; x$ U
7 N) m' T4 A. d
(setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))
, y8 k _9 y) Z1 R% d
. `" i T. ^; T# s- l& E (if ht (setq h_text ht))
5 v8 } D& J+ Q1 o+ Z7 r
; k! R. g& H8 `6 m
/ S' l: a# w6 T7 s( Z) I/ `! T(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))
" h& K& c) j6 y1 D3 F
0 u2 {$ k# M/ e' c& g v (if (not ang) (setq ang 0.0))
+ d# Y+ r1 b) g9 r- }4 e# C
/ a" E5 q, h+ Z/ e( K! `' s$ a( T: E6 y
( O2 }7 Z3 T* g. \8 i (setq pta (getpoint
8 w* h* u5 {* G "\nPick first corner. : "))
' A6 S9 ~- S+ `# x9 j5 g (setq pt (getcorner pta
/ D/ ]/ R8 [0 N [1 B0 G "\nPick second corner. : "))+ E: k! P% s+ C) k9 e U& G
+ l0 x9 ~6 A9 |0 `" ^8 _, W3 o# h# ~0 h! a% i8 ]% X
(command "TEXT" "j" "M" "4700,2575" "0" (SETQ pt ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông Quy M«") ) (princ)
1 ]' a! r# j/ M2 P6 Q; |; }8 ?; g8 K" ^
(command "TEXT" "j" "M" "4700,1325" "0" (SETQ pt ' "2 TÇng 1 Tum Thang") ) (princ)
: P2 J4 T/ P; l; ~! |- g
! u8 D. A1 h0 G' l% `8 t3 o& E% o (command "TEXT" "j" "M" "10600,2850" "0" (SETQ pt ' "Chñ Tr× :") ) (princ)3 x1 a- V, r7 O9 S- M9 T& p
9 ~! o" ~* ?" x1 y6 |: Z# h; [
(command "TEXT" "j" "M" "10600,1100" "0" (SETQ pt ' "TrÇn Ngäc Th¾ng") ) (princ)
# `" V% O' n/ W$ q* B4 K7 n4 t8 c" L. n' g3 u7 G
(command "TEXT" "j" "M" "15250,2575" "0" (SETQ pt ' "H¹ng Môc :") ) (princ)
" L9 s, X; b, `5 A; P
0 o% F4 C7 C. h4 _ (command "TEXT" "j" "M" "15250,1950" "0" (SETQ pt ' "Nhµ ë Gia §×nh . Nhµ LiÒn KÒ") ) (princ)
+ _# D$ b# y8 S% B* @6 }, g* a
(command "TEXT" "j" "M" "15250,1100" "0" (SETQ pt ' "Tel : 09.76.89.12.94") ) (princ)
6 J6 z: `: Y+ c9 I, o4 Z- q" F+ Y3 B
(command "TEXT" "j" "M" "20250,2850" "0" (SETQ pt ' "ThiÕt KÕ :") ) (princ)
0 X& O) B, K+ U$ \/ m. B4 n$ G3 a, E1 r. K
(command "TEXT" "j" "M" "20250,2300" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
" w; I Y9 ?" e8 ]3 q' G( Z
! o8 Q: B6 G9 P- J4 m, y7 K8 ] (command "TEXT" "j" "M" "20250,1600" "0" (SETQ pt ' "KiÓm Tra :") ) (princ)
r; ^$ h# ~2 ^1 x/ g# M5 C8 m8 w+ x$ z$ O8 I# o4 T% y5 [& F
(command "TEXT" "j" "M" "20250,1100" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
! _: a& z8 @' A# p; z* I" B4 A4 d: c6 Y- w7 G$ L" \) c& M* ^. W
(command "TEXT" "j" "M" "23500,2850" "0" (SETQ pt ' "TØ LÖ :") ) (princ); o; n# F% W T
' |( B- G3 h3 L, V. Q+ k! v0 s" I
(command "TEXT" "j" "M" "23500,2300" "0" (SETQ pt ' "1:75") ) (princ)
4 {7 M% g, d7 h0 x& G5 H! @
: r$ d: \# @2 X (command "TEXT" "j" "M" "23500,1600" "0" (SETQ pt ' "Ngµy :") ) (princ)
, P# [: R$ X {# Y3 M: O( w3 `$ ^/ b5 k7 \7 R: Q9 v# Q( i
(command "TEXT" "j" "M" "23500,1100" "0" (SETQ pt ' "2026.07.02") ) (princ)
8 {' g5 R. q# X& ]/ f3 Q, _7 F% N: C- i3 a$ W( b1 S
(command "TEXT" "j" "M" "26750,2850" "0" (SETQ pt ' "Tªn B¶n VÏ :") ) (princ)
: G+ v) g8 ~ E+ V) e8 K
# r4 R* b9 U% C. C (command "TEXT" "j" "M" "26750,2300" "0" (SETQ pt ' "MÆt B»ng TÇng 1 + 2") ) (princ)/ |) h9 H/ ]8 p
* ?* a+ l, ?7 _) ~- | (command "TEXT" "j" "M" "26750,1600" "0" (SETQ pt ' "Ký HiÖu :") ) (princ)0 I, h8 Q. v) F+ I8 J
4 ~, y* N! G0 U. k; A7 |5 p- z* A9 F
(command "TEXT" "j" "M" "26750,1100" "0" (SETQ pt ' "KT-01") ) (princ)
' \( K) |7 b, q: i
6 I: \! y+ {) I3 Q7 q( } (setq ptc (list (car ptb)(cadr pta)))9 d& D7 g, B; \' {7 e& u j" @) V
(setq ptd (list (car pta)(cadr ptb)))7 w- f% C* M, M3 X$ \1 B9 z
(setq ang (angle pta ptb))& j# l8 D/ _6 l+ N
(setq d1 (/(distance pta ptb) 2))+ Z4 K1 h0 v. F! @) N9 j7 \* A
(setq cp (polar pta (- ang (dtr 0)) d1))
) f& [# i9 E7 U (setq X (distance pta ptc))5 u0 x/ J2 r0 W2 w: n
(setq Y (distance pta ptd))6 Y* @& \# p5 h& |, H" C
(setq X1 (rtos x 2 1))& ^7 d/ Q" T+ S: x6 H' X- ]
(setq Y1 (rtos y 2 1)). E+ E. v1 y2 g9 X/ }& s* c
(setq rmsz (strcat "(" X1 " x " Y1 ")"))8 F' p3 g7 H' O8 Z6 [
(command "TEXT" "c" cp "0" CPT "_text" "" rmsz))
# k+ [0 c' x/ f% x (defun dtr (angg)9 i) q8 v3 ?% L4 S8 E' u! x
(* pi (/ angg 180.0)))
7 L( n' y7 C4 B: q
: d- {5 c) @# A+ m! C# h;;; ============================GHI CHU Khung Ten========================8 a- q, j" h. U8 J+ d
;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========" ^8 q0 x( U7 T6 Y
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================
2 n7 D; O% T6 ?% F i;;; =======================Thuong Dung Font Romant.vnh===================
2 j' ?3 o4 @% p- s. L6 i# F" B% z0 I& g0 G
(defun c:ipt (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)$ F: \0 h0 G% I. y( `
(setq oer *error* *error* err2)# i+ V3 K, `+ v6 ~- ]
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5' c7 J0 T" ~( |1 [8 a+ W
6 [4 ?! [5 Y3 s! \; f$ l (setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))
6 k2 [* z3 Q3 z/ T- \; h
) T. x. c: C4 a" p: h( P (if ht (setq h_text ht))
6 J/ Z" g3 ?! x2 Z) X- o
+ i- t$ `) f7 N8 \/ P) q( S& M7 G: d3 j4 p
(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))4 \( }- c& g, O& `1 Y4 r
~+ b+ B0 p! C& Q4 o! ?/ R (if (not ang) (setq ang 0.0))
% ], P$ J7 v' y$ J
0 j' _! n; B! }8 b7 Z# S v- v9 I% M4 q
- p- S" p( x: V- p; o9 g
(setq pta (getpoint& B( z' K8 l1 {4 ]* f2 Z
"\nPick first corner. : "))
6 {* z6 x& W* x; w (setq pt (getcorner pta
$ D8 S, F1 R0 ^& E/ s9 M" F# m "\nPick second corner. : "))2 n6 H* |1 j! H6 x2 e) c2 Y8 u+ L
5 X$ W& T( w2 K4 r" f
6 x4 ~! i8 H0 V! U9 f7 Y; i
(command "TEXT" "j" "M" "5450,2575" "0" (SETQ pt ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông Quy M«") ) (princ)5 }, r, Y4 U" }1 }
) O9 _, K* [5 ?& R) R; Z/ ?
(command "TEXT" "j" "M" "5450,1325" "0" (SETQ pt ' "2 TÇng 1 Tum Thang") ) (princ)
& L. O" {* p+ d1 a3 J4 x7 k
9 l: ]( y X# X (command "TEXT" "j" "M" "10600,2850" "0" (SETQ pt ' "Chñ Tr× :") ) (princ)& \2 j$ ?- s- O* N
7 F* U( y, a9 @6 Y/ K$ S5 q (command "TEXT" "j" "M" "10600,1100" "0" (SETQ pt ' "TrÇn Ngäc Th¾ng") ) (princ)
Y4 B1 q# ]. Z, \1 Y
7 q7 z2 i2 H! j r/ z (command "TEXT" "j" "M" "15250,2575" "0" (SETQ pt ' "H¹ng Môc :") ) (princ)
6 D* a( l' }) U3 G5 D+ F0 @1 H2 e8 U( l
(command "TEXT" "j" "M" "15250,1950" "0" (SETQ pt ' "Nhµ ë Gia §×nh . Nhµ LiÒn KÒ") ) (princ)
0 i: \; C& c4 |" j* T/ @- P6 X3 {3 m1 } ?
(command "TEXT" "j" "M" "15250,1100" "0" (SETQ pt ' "Tel : 09.76.89.12.94") ) (princ) f& a2 Y; a; M Z$ \$ F
@. s% r, T( B+ ^ (command "TEXT" "j" "M" "20250,2850" "0" (SETQ pt ' "ThiÕt KÕ :") ) (princ)' Q( t$ L# `, Q
" Q) `5 n* }3 Q% _
(command "TEXT" "j" "M" "20250,2300" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
" x4 P8 W* f& k7 `. E
5 z9 T& {1 ?7 J$ E1 K (command "TEXT" "j" "M" "20250,1600" "0" (SETQ pt ' "KiÓm Tra :") ) (princ)
1 c. p8 ?7 A) Q* R1 g' ^ o, i6 n; C# A# R) p$ w D+ m5 E' d
(command "TEXT" "j" "M" "20250,1100" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
) N0 D( X" c4 {9 f$ t: ^7 U _% X, s% b: C5 N! e
(command "TEXT" "j" "M" "23500,2850" "0" (SETQ pt ' "TØ LÖ :") ) (princ)
7 f' u! M; U3 t. V% y: n- e+ y- \% c! V
(command "TEXT" "j" "M" "23500,2300" "0" (SETQ pt ' "1:75") ) (princ): O9 ^% j3 ^' y7 g Z! `
: c7 ^! U7 r" Z$ Y1 T
(command "TEXT" "j" "M" "23500,1600" "0" (SETQ pt ' "Ngµy :") ) (princ): i% d7 X# Z0 H: D" d; G
2 `, ~3 w. \; \% a$ R (command "TEXT" "j" "M" "23500,1100" "0" (SETQ pt ' "2026.07.02") ) (princ)
. F" X0 u Z2 A- Y& b+ Q. @2 i& @! V% }+ }! o
(command "TEXT" "j" "M" "26750,2850" "0" (SETQ pt ' "Tªn B¶n VÏ :") ) (princ)
; h; d0 n# L- e& e5 @% A
6 |# b* t' S4 i G! x (command "TEXT" "j" "M" "26750,2300" "0" (SETQ pt ' "MÆt B»ng TÇng 1 + 2") ) (princ)
8 p! }6 S1 e( d. V( @2 o, I
$ V" `$ E: Y% D3 b4 V" N6 V (command "TEXT" "j" "M" "26750,1600" "0" (SETQ pt ' "Ký HiÖu :") ) (princ): H; w- Z, g& M7 f
/ K/ Z/ T( z" s! o' J% X$ b
(command "TEXT" "j" "M" "26750,1100" "0" (SETQ pt ' "KT-01") ) (princ)/ h0 x& W* s: j O" D
2 m! {% g" l- c- K9 Y4 m5 e (setq ptc (list (car ptb)(cadr pta)))
2 d, M, q( t$ N9 n0 S% @4 X) Q4 D (setq ptd (list (car pta)(cadr ptb)))$ B' K* l, C8 Y
(setq ang (angle pta ptb))+ {) u8 m- N1 k
(setq d1 (/(distance pta ptb) 2))" Q$ ]! ~* q/ M! @, N* k8 x( @
(setq cp (polar pta (- ang (dtr 0)) d1))/ I: P6 ?1 B7 f" o" `9 ?5 ]3 o
(setq X (distance pta ptc))
/ {/ `& `. b i. B6 C, n (setq Y (distance pta ptd))
1 m9 A' Q/ S- w- w# G (setq X1 (rtos x 2 1))
% U7 q+ w* P/ A7 K* n3 Y6 z3 J (setq Y1 (rtos y 2 1))
) n. G h2 A! |8 A (setq rmsz (strcat "(" X1 " x " Y1 ")"))0 e7 n/ r; R4 k5 F+ ~: r( X! d, \- u8 ~
(command "TEXT" "c" cp "0" CPT "_text" "" rmsz))
2 O! f4 y8 W+ U$ ~ (defun dtr (angg)
3 f% g" O4 u( [ (* pi (/ angg 180.0)))
. j: k5 q) J5 @3 ?0 x! I3 O" b% t6 j+ l3 n) y% \
;;; ============================GHI CHU Khung Ten========================
0 I1 @5 @1 b7 ^9 A/ a;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
, b( c. q, i A/ C: n: o( @;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================
5 v4 Z N6 f; | w# Z& a;;; =======================Thuong Dung Font Romant.vnh===================0 x. R. V' t% v7 z& U. d& j3 u2 Q
5 h2 Y& Q% C; A% \9 w7 H* N$ ~(defun c:iza (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)7 M4 Q; _. {% V1 r- _( E
(setq oer *error* *error* err2)8 y$ a$ l( A, K, Y
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.5
& d% g+ N7 N7 b! ^* Q# @5 x W* v, B, h5 \
(setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))3 T/ f* E& C0 J. x/ g/ R
3 [: V! v* o( }* C0 h (if ht (setq h_text ht))
o) T4 @* ?5 @3 S% P" E( ^2 Y" d0 [ O7 H9 E2 I
* S1 z0 J) r0 x. q1 d(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: ")) Z. s { G5 X' L
: m2 n8 M4 V; M; T (if (not ang) (setq ang 0.0))) g: R7 H0 l! q. E1 ~4 l& [
6 ^/ y! q! Y$ w; v
4 e8 g4 M+ l8 Z7 n7 Z" U
, P9 d$ Z5 u- S" ?5 J (setq pta (getpoint& V; {% }4 G1 E$ R+ p& K
"\nPick first corner. : "))
+ m" {( d4 m4 ~0 ? (setq pt (getcorner pta' t. X: L. W# q% E0 s* B% b- \
"\nPick second corner. : "))
! s3 g% h( D. U- D
3 _3 q1 V) }9 o& v- [
( z; a! r# P7 [1 R! l1 Z4 p
) ~, s0 v: a% W( U7 P% N6 r (command "TEXT" "j" "M" "25000,19800" "0" (SETQ pt ' "STT") ) (princ)9 {1 N4 ~$ x' P# D6 e {" N) \
9 _" E8 j5 ^2 P/ {' G3 Q J (command "TEXT" "j" "M" "25000,18712.5" "0" (SETQ pt ' "1") ) (princ)4 v6 ^ [) Q) b4 Q4 Y& D8 @6 \
5 ~ p( Z a: ] (command "TEXT" "j" "M" "25000,17537.5" "0" (SETQ pt ' "2") ) (princ)5 b% f* o6 M2 s' p @- K' [
9 H5 B+ Y4 E& t9 s3 O, b
2 A/ L2 X( j0 _6 L- A8 C
(command "TEXT" "j" "M" "27250,19800" "0" (SETQ pt ' "Ngµy Söa Hå S¬") ) (princ)9 O, p# K. D+ Q N) n
0 x! l" K/ q q* N (command "TEXT" "j" "M" "27250,18712.5" "0" (SETQ pt ' "15.05.1997") ) (princ)
+ M% Y9 ] r% @. I( O7 w; ^+ ^1 C! d6 ]9 ?$ L
(command "TEXT" "j" "M" "27250,17537.5" "0" (SETQ pt ' "04.07.2026") ) (princ)
! X! ]0 D9 B, n. u
" w" ^/ P) J1 N5 O0 g/ }
& H+ Y; d* H' k% {" t' t* U7 p5 k V (command "TEXT" "j" "M" "26750,16600" "0" (SETQ pt ' "C¤NG TY - Corporation") ) (princ)4 S3 V: u5 |0 r, m j7 f7 h
; r! r" w: N! X4 X
(command "TEXT" "j" "M" "26750,16016" "0" (SETQ pt ' "ZENNI.S.Z.T.K") ) (princ)" Y( ]8 _4 t# M& G7 U
, f6 @1 V1 z9 L" G* W4 l* j
(command "TEXT" "j" "M" "26750,15433" "0" (SETQ pt ' "§Þa ChØ C¤NG TY") ) (princ)
- ?" G! D5 B) l0 G! f* F' P1 k
- B% l) \1 J/ `& z! |$ ?3 X6 I (command "TEXT" "j" "M" "26750,14850" "0" (SETQ pt ' "§Þa ChØ : 00.00.00.00.00") ) (princ)1 \5 o% W+ {4 a7 A1 Y2 X' ?3 m
6 k: a0 h, Y; N7 u- ]* ^4 `" c( Z% A! T0 |$ L& O# h/ b
(command "TEXT" "j" "M" "26750,14100" "0" (SETQ pt ' "H¹ng Môc : Part Project") ) (princ)
! N. _4 d# ~; L6 V2 D. _; e2 O* U( D" a
(command "TEXT" "j" "M" "26750,13516" "0" (SETQ pt ' "Nhµ ë Gia §×nh") ) (princ)1 r9 q- D3 N! R0 A
5 E/ G( ~& J' n/ ]5 L, D* o (command "TEXT" "j" "M" "26750,12933" "0" (SETQ pt ' "Nhµ LiÒn KÒ") ) (princ)6 M6 l, G0 k9 e+ U! l
# ~& `1 e. `9 X& u; x# v. v0 ]. m% C
(command "TEXT" "j" "M" "26750,12350" "0" (SETQ pt ' "Tel : 00.00.00.00.00") ) (princ)
9 [0 w- D) h* i9 |3 x! K3 I5 k8 }3 r, x( @& [! u# [1 ~1 B" r
& p# o2 Z7 [' f. T$ C2 d" w (command "TEXT" "j" "M" "26750,11600" "0" (SETQ pt ' "Gi¸m §èc : Director") ) (princ)
' _$ J1 B( O% ^4 \/ F6 k# e1 y# U
@% R4 `6 [8 P& c& C (command "TEXT" "j" "M" "26750,10475" "0" (SETQ pt ' "ZENNI.S.Z.T.K") ) (princ)" c+ T8 u1 w7 i
0 j6 T. O1 E2 ^* N0 u+ k
(command "TEXT" "j" "M" "26750,9725" "0" (SETQ pt ' "Chñ Tr× : Main Project") ) (princ)
- n( R, B+ g; J8 J* O- m: T) \' W& T0 T8 p
(command "TEXT" "j" "M" "26750,8600" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
$ w3 ? I) i: w1 Q; X- ?6 \
2 d. C5 u" e- J (command "TEXT" "j" "M" "26750,7850" "0" (SETQ pt ' "ThiÕt KÕ Vµ VÏ : Design") ) (princ)& c5 F& M/ W& z9 w1 b" N
6 B' Q' p9 q8 u (command "TEXT" "j" "M" "26750,6725" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
$ Z. n5 V: D* J) V& S6 h; o! b
" V" w2 ~! I M4 v2 E4 t (command "TEXT" "j" "M" "26750,5975" "0" (SETQ pt ' "KiÓm Tra : Checking") ) (princ); s9 b& i% l$ E$ z# C7 p& h
+ G7 V% |9 I, ~$ }8 w
(command "TEXT" "j" "M" "26750,4850" "0" (SETQ pt ' "Kts. TrÇn Ngäc Th¾ng") ) (princ)
. M: d4 ^) e* R
7 I" r: U( o% i* R4 U" \/ ^6 z' G* C# f
4 g3 ?) @. J- A$ D, w; ?
(command "TEXT" "j" "M" "25625,4100" "0" (SETQ pt ' "TØ LÖ-Khæ") ) (princ)7 K ~+ V* S" |' A- N6 i
- b0 U$ \ w3 b# Y8 O2 `
(command "TEXT" "j" "M" "25625,3600" "0" (SETQ pt ' "1:75 - A4") ) (princ). f* `: l. d: [" Q9 L; U8 _
R: R* E' ~$ c% A7 Q' X: p (command "TEXT" "j" "M" "27875,4100" "0" (SETQ pt ' "Ngµy Xong :") ) (princ)/ v! o D$ X) G5 v
- @+ \9 b! @& }% x/ H; ^
(command "TEXT" "j" "M" "27875,3600" "0" (SETQ pt ' "2026.07.04") ) (princ)0 e/ N: A& k" B6 g; B1 y/ W0 a
" d- g+ _$ ? D) Y' I2 d" X
(command "TEXT" "j" "M" "26750,2850" "0" (SETQ pt ' "Tªn B¶n VÏ :") ) (princ)
8 V8 B' d# ~6 {1 B, B) E
8 |- ?9 b6 c0 J, O# w' f& M (command "TEXT" "j" "M" "26750,2300" "0" (SETQ pt ' "MÆt B»ng TÇng 1 + 2") ) (princ)! t5 U3 p9 g# Y: L6 k
/ e! v" s- H' }7 K. Q" o (command "TEXT" "j" "M" "26750,1600" "0" (SETQ pt ' "Ký HiÖu :") ) (princ)5 P+ R* o" o# {7 \7 C6 e
4 [1 `8 v" u* ]/ U (command "TEXT" "j" "M" "26750,1100" "0" (SETQ pt ' "KT-01") ) (princ)
* p. a. L0 Y6 Z" C/ a J/ x+ j" {0 O
(setq ptc (list (car ptb)(cadr pta)))3 @! n& P+ F6 N
(setq ptd (list (car pta)(cadr ptb)))& @! y8 z0 H9 v' T; [& }3 C; L
(setq ang (angle pta ptb))
" k. I& H f' O, v6 ^ (setq d1 (/(distance pta ptb) 2))7 {3 n) }& n1 n7 A
(setq cp (polar pta (- ang (dtr 0)) d1))
* r$ ~ U- j7 s9 x2 p (setq X (distance pta ptc))" ?$ W5 P5 E/ u% W
(setq Y (distance pta ptd))
x5 Q2 K1 E" o& _# Y } (setq X1 (rtos x 2 1))
9 V) d, W% Q L8 \/ X8 n (setq Y1 (rtos y 2 1))
9 `+ S( J b* Y- u; C$ d% Z- _ (setq rmsz (strcat "(" X1 " x " Y1 ")"))
8 Y2 l3 C- `/ ?) A% Y! x3 k2 Y/ n (command "TEXT" "c" cp "0" CPT "_text" "" rmsz))
! a4 ] G* [( p; U3 a5 L( L (defun dtr (angg)
# c5 [4 f' f; ?8 x3 ^+ J! k" o- z (* pi (/ angg 180.0)))
* v5 w( q5 }6 p* |
0 B+ x. |. q- m9 }) U. x" @;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
9 \5 t. d$ U; ?;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 ====================2 ~# N2 K( V9 z& p# e2 Z
;;; =======================Thuong Dung Font Romant.vnh===================
* t( O& N: A2 p# N+ ^6 U' z* b& l8 X' {+ z9 v, i, M
(defun c:pta4 (/ pt str pta ptb ptc ptd X Y X1 Y1 rmsz pl1)5 H# q, r; x$ Q
(setq oer *error* *error* err2)( f- {% _; w; V) _
(if (not h_text) (setq h_text 250)) ; Kích thuoc chu mac dinh là 2.52 \% t5 c+ Y# f
" `3 i9 h/ S% e! h& @8 m! _ (setq ht (getreal (strcat "\nNhap chieu cao chu <" (rtos h_text) ">: ")))
& h* F1 t! r% t7 ?5 j2 V- ~7 w3 i( y6 }' _
(if ht (setq h_text ht))
$ o/ y! w% Q7 n. e5 ]% K* w8 t# E; B; [# K' ^# @
8 [3 u2 [2 M* ^- ]/ `(setq ang (getreal "\nNhap goc nghieng moi (do) <0>: "))
# v2 p# {. C- O3 i% v3 \& u" d
0 i" [' L; c0 x4 c9 Y+ b (if (not ang) (setq ang 0.0))
0 a) V7 S# ?( e
/ _$ {( o$ Y! `/ b( H& H/ d( B; i, ~0 l" ^& w+ @
d$ M# t# ~, b+ ]9 `+ r (setq pta (getpoint
2 R4 O( B8 ?' B% [ s "\nPick first corner. : "))
9 n$ A Y( S, y1 D, q, z% O- s7 c (setq pt (getcorner pta
. Y8 Q3 T& ?' b2 W* [( Y "\nPick second corner. : "))8 G3 Z! q! H' c: z& r
9 h! ~4 | { F) y% j# I
! e8 y4 q' b1 C: h (command "POINT" "4700,2575" ) (princ)5 g. r' g& o' J: K3 G/ c+ c
" L1 G3 j5 R8 C
(command "POINT" "4700,1325" ) (princ)
: G4 U' c* v! B0 ^- U0 y3 a" `3 }6 w( R* B/ [
(command "POINT" "10600,2850" ) (princ)% T5 z+ c6 u6 q, T$ T
8 p u! k2 m, R. b, q) {2 i; K (command "POINT" "10600,1100" ) (princ)# T4 {& X2 {+ B. {/ T! A2 @
' ^/ m, W) I6 {5 G6 Q( a% \
(command "POINT" "15250,2575" ) (princ)6 m; b0 \8 L9 k q1 H8 I
' B) R1 c/ a2 v& n5 k. W
(command "POINT" "15250,1950" ) (princ)& D9 E( `" a0 Q- M
) `- @4 Z9 P( p' m. t (command "POINT" "15250,1100" ) (princ)2 R* ?7 k9 \# S
4 {4 ^0 Z% ?$ @9 @4 b2 ?
(command "POINT" "20250,2850" ) (princ)- y1 p" L8 S; X
7 R; V$ V& K( w5 F (command "POINT" "20250,2300" ) (princ): u1 Y* F$ T: `5 z& a7 a( G% o
3 |; I2 E/ L; V' Z; ]! N
(command "POINT" "20250,1600" ) (princ)& z7 s* r2 B" F, c7 a; m
7 J) ^1 p) \# }: ]" W& ~
(command "POINT" "20250,1100" ) (princ)
O& k5 d; j6 K# Z5 n/ ?+ q
9 l8 I8 P6 D, M& U (command "POINT" "23500,2850" ) (princ)
; e$ l* L! `5 o/ v0 v8 S
" ^" R6 K; T n A; i* O k: w; B (command "POINT" "23500,2300" ) (princ)" q5 a) d$ I4 c- }+ n
8 e1 q4 Q+ V; m, u- H; M9 S
(command "POINT" "23500,1600" ) (princ)& S5 p" l+ _" h) u6 s
: L, c6 `# m6 p* L (command "POINT" "23500,1100" ) (princ)( w" ]& I0 Z: n, u- E. E( Z2 ^9 X
& N3 E4 u+ H* Z. ^& B
(command "POINT" "26750,2850" ) (princ)0 i9 {3 y# v1 P3 K
! g# r$ g6 r2 L
(command "POINT" "26750,2300" ) (princ); G2 m4 M! O4 y; K& Z% q
5 ]; \) W7 y; l0 o
(command "POINT" "26750,1600" ) (princ)
# v; |$ P6 c5 p) H: b2 W3 x1 V- p; `' f
(command "POINT" "26750,1100" ) (princ)
' X [$ ~; }5 f8 ~+ U( _
9 y" j4 f3 K+ x9 k: `$ W (setq ptc (list (car ptb)(cadr pta)))
* f' L' A& {! ? D0 _ (setq ptd (list (car pta)(cadr ptb)))% {6 j9 w: |' D; f& J
(setq ang (angle pta ptb))/ i! ^8 i# U5 M) y
(setq d1 (/(distance pta ptb) 2))
( D5 z9 }: Z* O2 i8 } (setq cp (polar pta (- ang (dtr 0)) d1))6 Y$ Q: M" S% U
(setq X (distance pta ptc))! }/ v3 _+ \4 F! i6 H
(setq Y (distance pta ptd))$ d/ V- R+ s1 A1 Q
(setq X1 (rtos x 2 1))
: z: C. ]+ Y* z: _1 ~5 y( P9 S: q. J (setq Y1 (rtos y 2 1))
! w" i+ C* Q% t$ @, M (setq rmsz (strcat "(" X1 " x " Y1 ")"))
3 T8 n& _7 r7 J( U7 A# z% q (command "TEXT" "c" cp "0" CPT "_text" "" rmsz))
% J- G- e# E a. ~8 j (defun dtr (angg)( [4 v8 u- |6 J9 h4 P
(* pi (/ angg 180.0)))0 X! \# m0 W9 {; U9 p
: b5 B2 j$ ?1 l
;=====================================================================% n1 D; E; X4 O. G
;====================DAT KHO GIAY BAN VE - KIEU 1=====================+ c' h6 a, D8 d+ G
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
" M7 o2 `/ y c" o4 J5 k& K) v1 u: O8 |$ h f) x7 J) g( C
(Defun c:a6 ()
2 M. k+ Q2 n$ U: Q# ~: \* R7 L b) X (setq mv_sc 100);Ti le ban ve
9 Y$ K; e! O* |1 k! A4 u: d+ d" i2 H (setq x4 74.25)- i. M8 S5 ~% d9 R4 ]( Y4 }" p
(setq y4 52.5)3 J8 N6 ^; g& ^! h4 {! B8 m5 b
(setq x4 (* mv_sc x4)
' c8 t' R! R; _5 M) M& g1 Q0 u/ x y4 (* mv_sc y4) )
5 G- X. s8 h, e) i0 P8 _6 V$ {6 |& W (command
$ H3 I" [6 ^, C3 v "LIMITS" "0,0" (list x4 y4)4 v/ @; {& s+ O( ]
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C". X# R) q F3 w" L! D/ {
"RECTANG" "125,125" "@7175,5000"- |/ \1 E+ l: H; d) a; L
"RECTANG" "175,175" "@7075,4900"
3 \6 N2 M' ]; _: b7 g5 [' f "ZOOM" "_a" )) ]' Z9 [ X" p/ [1 [9 ]5 v
;=====================================================================
# l% W! N E$ p3 T- [7 Q(Defun c:a5 ()" p$ K1 N* ]# p
(setq mv_sc 100);Ti le ban ve
; g) Z' P0 M* D# L H (setq x4 147.5)
1 F+ T' W6 J" x* q5 q (setq y4 104)
2 a& k5 Z% ?2 \7 z+ B (setq x4 (* mv_sc x4) # B0 D8 [. D, Q: y! I+ g8 h: k
y4 (* mv_sc y4) )
3 V" v' C) t; A+ v+ F3 W (command
. G c& s; M/ C "LIMITS" "0,0" (list x4 y4)
* o2 \5 J4 y% \4 ^ "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"% {/ o/ v% Z! S) ?7 q6 p% z3 |
"RECTANG" "250,250" "@14350,10000": R) p/ o! z1 r: m# T1 G. o
"RECTANG" "350,350" "@14150,9800"! a4 R8 ?& f8 Q9 {# S
"ZOOM" "_a" ))$ a4 T, q) U+ s; {5 X! d2 ^9 V e
;=====================================================================
8 `' ~" K# p. d1 Q9 } r' Y. F. _(Defun c:a4 () B: a) M. o' j4 ]9 I
(setq mv_sc 100);Ti le ban ve# _+ R( ~% V5 O9 O
(setq x4 297): H- R& `% l0 X% C- k) ?
(setq y4 210)' w" a# X' G, U8 d4 p
(setq x4 (* mv_sc x4)
% X+ [( \: K/ J+ i) y; x: d/ v% I, [ y4 (* mv_sc y4) ); a% I8 Z2 p3 ?" b/ Z( c/ l) z/ c
(command ) n% V* L- [% f8 Z& `
"LIMITS" "0,0" (list x4 y4)& Y2 y" h4 Q1 c( H! q, x
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
( G: l8 A4 W4 H& [ "RECTANG" "500,500" "@28700,20000"/ Z1 f& s5 }# y M: M; V
"RECTANG" "700,700" "@28300,19600"4 E+ p, A' w- S, j* ?* K% ~, Y3 `
"ZOOM" "_a" )); f0 |3 }2 o' u, t
;=====================================================================
& \7 l' G* A) P! p! L$ r- \& `(Defun c:a3 ()+ R0 t8 _% {& \9 A: b) R9 L
(setq mv_sc 100)$ K- H, k7 W: U4 T# z4 M! m0 B
(setq x3 420)
' o0 H+ N: A5 j' B (setq y3 297)
+ v7 x& Z1 e) R4 `& r: {! b (setq x3 (* mv_sc x3) ) R5 D- z. N4 _3 Y. D
y3 (* mv_sc y3) )
! u: Q0 I; E8 I5 S5 P! T" u6 w (command
- t% p3 h9 E, \4 f% k. L "LIMITS" "0,0" (list x3 y3); Q4 q5 @/ J% v: d
"PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
8 Y& f0 L7 ^; B! |# Z+ x "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"6 R' w* `) D( G9 g% J% L/ I4 \
"RECTANG" "990,990" "@40024.28571429,27720"* \4 T6 K% |' \0 x
"ZOOM" "_a" ))
: g0 r& _, s# C0 F& K) o' U9 D5 s;=====================================================================
' D1 v, j8 g: W) }2 K+ X9 B(Defun c:a2 ()
& h7 `. f4 L& N. } (setq mv_sc 100)
. o4 U. k( t8 |# K/ g U (setq x2 594)& B0 ]4 ^6 h, @. g+ }& g
(setq y2 420) ]5 ~/ G1 [) M% C1 L8 N2 ^0 o2 _4 {8 @8 S
(setq x2 (* mv_sc x2) " t- K9 U" r& A+ C! i) b0 i1 e
y2 (* mv_sc y2) )
# }4 E3 G5 g6 @0 D6 x9 h (command . f$ C3 P' c: `* z
"LIMITS" "0,0" (list x2 y2)
" \+ W9 s, y/ k "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"8 b5 s& L0 V/ y$ e; D* r
"RECTANG" "1000,1000" "@57400,40000"9 x9 a" s$ B6 _# H. ^
"RECTANG" "1400,1400" "@56600,39200"7 Q- T: d' |) k8 K; ]# C3 o
"ZOOM" "_a" ))) O1 }/ Z4 D: R5 ?- T% y
;===================================================================== a1 E2 G; c8 z' K- F: R3 p
(Defun c:a1 ()
: e7 j) O# l; c: }: ` (setq mv_sc 100)
6 d& ^. p/ U( w" H5 l (setq x1 840)
3 L' s/ Z$ U: |4 J" l9 b (setq y1 594); ?- l% Y: a( Z6 a( }
(setq x1 (* mv_sc x1) 1 Q( i. B1 E6 R; G
y1 (* mv_sc y1) ) i; w* ?9 {# O( d% p) J, y
(command
7 y! N ]. p0 A Y2 v% S "LIMITS" "0,0" (list x1 y1). A" g! @8 T/ j7 W8 ~0 l# |# X
"PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"9 R5 `. f* o% X9 T: V1 Q
"RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
, M' K5 F0 y1 B, E "RECTANG" "1980,1980" "@80048.57142857,55440"
( F- s+ e3 h6 \0 O A) ^+ N "ZOOM" "_a" ))
. [0 {1 q0 f' s2 y3 B4 G0 C% Z9 [! L;===================================================================== N. ^! t8 M$ \4 z9 @
(Defun c:a0 ()
+ |! \0 P4 a1 [* f (setq mv_sc 100)3 Y$ c1 Q3 E; G; ~
(setq x0 1188)5 Q! b& c$ g0 ]% r
(setq y0 840)0 p0 [& Y2 `$ [: p; G4 n
(setq x0 (* mv_sc x0) % n9 U1 ]' N- Z$ \
y0 (* mv_sc y0) )
" n1 t) D ~2 l: h* @! e6 P (command " a5 N2 P4 ]) k" I) _ S- j4 V
"LIMITS" "0,0" (list x0 y0)
- E& v$ H$ E* X+ u) ~* [ "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
7 q! M, B! |6 i5 k" }. L0 r "RECTANG" "2000,2000" "@114800,80000"1 s Q% G& V0 @ m
"RECTANG" "2800,2800" "@113200,78400"9 M8 v1 |9 c3 _) S! p) S1 l$ \
"ZOOM" "_a" ))
- f$ X! j& @5 C1 [# l% J+ j7 s
5 g8 J; y2 _4 |6 N; {;=====================================================================) A4 w7 W d. a: b
;====================DAT KHO GIAY BAN VE - KIEU 2=====================
- H* K+ s" I3 ~;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
; ^) s9 G5 e) Q( e# T" G( z
; \# A' v) C x0 M0 o- E+ |: M(Defun c:6a ()3 S% T( H% ~# Y+ G& h. `
(setq mv_sc 100);Ti le ban ve
0 J1 t' o2 f6 W7 N (setq x4 74.25)
9 F9 {6 i+ s( n( w- |* W- } (setq y4 52.5)9 s9 z( V5 O4 k* T
(setq x4 (* mv_sc x4) ' [/ X* ?6 E- c4 ^* Y0 G
y4 (* mv_sc y4) )
: O; t+ j9 w: v- ` (command + D0 ?% D3 T( L/ u
"LIMITS" "0,0" (list x4 y4)* `: {$ }3 O) @
"PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"+ A! S3 C. s& F5 a' R
"RECTANG" "505,125" "@6800,5000"* B' f1 ?* p8 H, ^0 X
"RECTANG" "555,175" "@6700,4900"9 j# s4 \* h* F7 y6 B
"ZOOM" "_a" )). e, `9 t. s5 |
;=====================================================================2 b' r5 ^* }- F7 \8 B) [; b/ h
(Defun c:5a (), ^, h( b: V6 V$ F; w
(setq mv_sc 100);Ti le ban ve$ f' V' Y& A- `7 A, w4 s# ~5 M' N
(setq x4 148.5)( p) q) |5 k6 {8 r: A' z q
(setq y4 105)
6 W# _) |( h/ U7 @1 B5 e (setq x4 (* mv_sc x4)
0 y2 |( k6 D7 I y4 (* mv_sc y4) )
1 V! V1 ?) y3 ~0 f h (command
+ m9 _9 k2 s* }( ^: J "LIMITS" "0,0" (list x4 y4)
% { h9 Q: p% M1 c% E "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
- _$ w+ E8 `5 D3 E6 f+ O+ u "RECTANG" "1000,250" "@13600,10000"
( N: k k$ v* e% Y* J$ o "RECTANG" "1100,350" "@13400,9800"
6 q) T1 w- @! a, G) J$ d' g "ZOOM" "_a" ))
9 b) t0 z3 I1 f9 Z. Q;=====================================================================
, u4 ~4 O T& [: e* O3 a(Defun c:4a ()
7 S! i5 {& U- V/ e# b. j4 l' Q (setq mv_sc 100);Ti le ban ve# S6 \ x/ A8 a6 y `) N7 j: A0 _
(setq x4 297)! h" B# Q# m; ~( i6 D6 i, F% P
(setq y4 210) H( i N r+ b3 f
(setq x4 (* mv_sc x4)
- z& G' c' {1 m4 B8 C1 o y4 (* mv_sc y4) )! Y, H- i: }1 r
(command
3 ]% ?7 d* Z# y "LIMITS" "0,0" (list x4 y4)
. J9 ?: j/ ` d& ?$ y: r/ G# z; g "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
( C: _/ M# p- ?( w2 Z- y "RECTANG" "2000,500" "@27200,20000"
+ A% g6 r% D2 H/ D' c; S$ ~ "RECTANG" "2200,700" "@26800,19600"- ~, }" y, e& U% W& u$ i
"ZOOM" "_a" ))
% @; H5 I. B2 s0 S3 o$ D7 A! q;=====================================================================# s# t! v* G3 ]1 E; E" C e
(Defun c:3a ()
% J/ Z, Q1 v( l% g! k (setq mv_sc 100) I7 E1 {8 H' G' ?, {
(setq x3 420.0428571429)
8 w" {4 {- ^: ^/ M (setq y3 297)
" L5 R% B4 {. Y6 O (setq x3 (* mv_sc x3) " c& B# ~ e& X
y3 (* mv_sc y3) )+ f: F7 P: M, y, v( A9 S& l
(command " }, K" {3 s% |- e
"LIMITS" "0,0" (list x3 y3)4 z0 v( g/ x6 w, m- h
"PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
% }. {9 E) ]: `+ P' \0 a! S "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"( l$ M. s! N+ C+ [
"RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"3 A( O; Z0 `: i) P* C# L
"ZOOM" "_a" ))
* i3 f8 C$ M, y9 B8 }) C9 j;===================================================================== S! S- Y/ L' Y6 m5 d; N
(Defun c:2a ()
* C7 b. ~# y7 V+ o: w3 P (setq mv_sc 100)% U- A3 u7 @5 J) c% S0 D0 z( F
(setq x2 594)
6 A& p5 J2 B' G% E1 W (setq y2 420)
0 L" u+ Y* m1 s# M (setq x2 (* mv_sc x2) % |+ R1 u7 F Q6 V
y2 (* mv_sc y2) )
8 T/ B7 I7 E3 { (command 4 G0 _' I1 V- n" \" I4 ]4 ^
"LIMITS" "0,0" (list x2 y2)
) ?) h: E u3 t/ X% H& F9 ] "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
?. B' N0 }& m) E6 Y "RECTANG" "4000,1000" "@54400,40000"% x) h7 f1 d" @: o
"RECTANG" "4400,1400" "@53600,39200"" C" t4 h/ u( L( ^8 [: `: ^$ v+ S
"ZOOM" "_a" ))
' r' V3 h7 _/ S5 G; \* _& V9 t;=====================================================================
}" Y! ~ C8 O R2 \, U# \(Defun c:1a ()/ S- j( z6 @/ k, G( z
(setq mv_sc 100)
; @3 J* ]; ^* ]% o& P, C! n/ B (setq x1 840.0857142857)
7 p5 u. ?8 b/ L: r (setq y1 594)
' d! z5 z( A- F+ e (setq x1 (* mv_sc x1)
% F8 j4 H2 n; T" y x y1 (* mv_sc y1) ). ?& _4 w2 t! f" d1 o& h
(command
. c3 \2 u7 J' {- [) V; k "LIMITS" "0,0" (list x1 y1)/ p' H O+ \) ~5 Z9 Y
"PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
' i3 C" D. X8 m' n "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
, f9 M( s" U( {2 A7 u "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"
9 }7 v1 i* Y, g: i7 F "ZOOM" "_a" ))
; K4 z2 _: y# [;=====================================================================
5 E9 n+ H7 @5 _; t4 Y ^9 o" Z* q(Defun c:0a ()$ f9 G0 D$ P6 ~9 U# ~
(setq mv_sc 100)
' V. {+ x! A+ N; D (setq x0 1188)
( C8 M/ P. n. h (setq y0 840)! W5 t1 O: x* t& E
(setq x0 (* mv_sc x0) ; B8 U4 { T6 @3 w+ d+ K2 m
y0 (* mv_sc y0) )! S% f" A R3 G) [3 P, @
(command
7 D0 f9 _/ c8 E, X6 r "LIMITS" "0,0" (list x0 y0)
( t9 k1 [8 i* h+ N) r, `% R- R, |7 [2 o' d# U "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
9 h. g8 z* R; [, Z "RECTANG" "8000,2000" "@108800,80000"" m( L- [9 C/ G1 a, C8 [
"RECTANG" "8800,2800" "@107200,78400"
8 ?: U6 U+ e# A z- b( @% y "ZOOM" "_a" ))
% v* S: O+ Q6 B, y: n) p. V) H6 |$ U5 w/ ^, p9 h- C/ v, k- e
;===================================================================== N" v0 {: ]* W+ {4 H/ q- O, H* V3 _9 ~; L
;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
% W4 W7 |& p! K4 K;=========================== Nguoi Khac ==============================
6 p/ B2 o% g( q% @0 I+ R4 W" N(defun c:khogiay (/ oldlst a b c d e f g h kho TL)6 y( `4 I, r1 ~6 Y4 m, [1 m3 M |
(command "undo" "be"). o2 ~8 Z5 z: b3 O8 `: S8 n
(setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))# |; E7 I" \9 d1 l' P; A; b
(setvar "CMDECHO" 0)% n! y' x; k/ n n% Y. @9 G6 v
(setq a (getpoint "\n chon diem chen :"))! f5 Y1 S4 W) _+ H5 V2 O9 |. J, e: k
(if (not TL) (setq TL 1.00))
8 _0 r! V4 w9 j2 q3 } (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))
8 D* f6 @; e2 B6 [. j! n2 ~2 k(if TL1 (setq TL TL1))0 ]1 I: T8 ]7 D/ V/ r" p
(setvar "osmode" 0)
9 ]$ H1 b5 w! B$ q M, e(if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))( u, `! \+ x* D% {) `+ E) p
(initget "0 1 2 3 4")
% G. g) G% X0 D) ?7 C# i (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))$ z2 M+ T$ B4 z0 n) f0 F
(if (= kho "0") W2 s) m. m1 T5 ^6 r
(progn
' |) J) P" w5 M) ~; u _ (setq b (polar a 0 (* TL 1189)))
# H7 ~0 O# C ?) {% I: {7 j' \ (setq c (polar b (/ pi 2) (* TL 841)))6 X* F; J c/ Y$ x2 t' u$ O6 ]
(setq d (polar a (/ pi 2) (* TL 841)))0 P( J# u0 l0 b# x' l
(setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
8 x- c) E$ a/ R: B+ r- y$ h (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
3 [ ]) x$ P, ]9 q (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))7 |- }4 E$ s U3 V
(setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24)))): K* K7 X- \* K! Y
(command "Pline" e f g h "c")
* R3 H* c9 J1 b% E& a3 E' z; ?' J(command "change" "last" "" "properties" "layer" "0" "")
; D5 l6 q7 L: e(setvar "cecolor" "4")+ M* R6 X/ Y$ q7 j, \
(command "Pline" a b c d "c")
) A) |- j/ u6 R+ i& b(command "change" "last" "" "properties" "layer" "defpoints" ""))) $ O( Z/ g; J0 q/ O
(if (= kho "1")
, J3 ~, c+ h* n. j4 x% U5 x% u; d$ U (progn# Y- {+ W5 b) _0 S6 B2 Q( `
(setq b (polar a 0 (* TL 841)))+ F6 O A" d/ F/ M9 p
(setq c (polar b (/ pi 2) (* TL 594)))
3 R2 s0 L+ m" ~0 D0 R+ |5 R (setq d (polar a (/ pi 2) (* TL 594)))
! M% L6 k% l! T: b$ v (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
9 K ^7 I! c2 Q (setq f (polar e 0 (- (* TL 841) (* TL 24))))+ n" f+ O! v3 F* W4 e
(setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))4 w1 C9 F9 Z! _* A7 X0 v1 d) T! q
(setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24)))) [, U) D) L' ?; z
(command "Pline" e f g h "c")
& l4 b! v0 }! a5 d# Q9 D7 y D# M(command "change" "last" "" "properties" "layer" "0" "")" t3 C5 m5 f( ~9 E
(setvar "cecolor" "4")
1 K5 v0 P9 |& }. P (command "Pline" a b c d "c")
N8 U1 b) {6 u9 n# Y# t(command "change" "last" "" "properties" "layer" "defpoints" "")))
! Q. ?, F! e0 @; k5 R% i& } (if (= kho "2")
; G+ P4 l; i1 a+ J) t (progn% _ b0 u. m* }' M6 H5 Y' S
(setq b (polar a 0 (* TL 594)))0 |) i/ R* y6 W6 g9 M* V3 }- O8 f9 Y
(setq c (polar b (/ pi 2) (* TL 420)))
$ P$ _$ m" J( a* }8 d8 ?6 Y (setq d (polar a (/ pi 2) (* TL 420)))/ d u+ g6 P1 f, A( ?$ J- G6 @3 W
(setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))/ k4 i. e* v/ R/ S
(setq f (polar e 0 (- (* TL 594) (* TL 20))))) X: k' M9 `& ~3 n8 g& c2 p
(setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
. w; _7 A! E8 p% p (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))+ ~0 v' P: J$ U9 U* a
(command "Pline" e f g h "c") , f% ]1 R, T, A H) c7 W
(command "change" "last" "" "properties" "layer" "0" "")
1 l: x8 R1 Q" `" R( k. r) s(setvar "cecolor" "4")
% ]6 M2 S/ I1 Q. d- |3 _* Q3 z, g (command "Pline" a b c d "c")
' n3 f* T7 x4 ^& P0 K(command "change" "last" "" "properties" "layer" "defpoints" "")))7 _) \/ a7 l5 g
(if (= kho "3")& f) J) |4 x0 g6 \3 G5 O* G% m8 [
(progn" q$ ?8 q" `5 G' l
(setq b (polar a 0 (* tl 420)))7 n: }- g% P2 r4 i" U0 r
(setq c (polar b (/ pi 2) (* TL 297)))- R- L: A; }7 R* o) ]
(setq d (polar a (/ pi 2) (* TL 297)))
7 [0 ~' o( U+ u5 _' y: m- O6 P (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
- @; j4 u! g& {) d( x/ [ W( ^2 ~! k (setq f (polar e 0 (- (* TL 420) (* TL 20))))
4 u1 J" [( q6 g9 Y' Q7 ^ (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
, N( w5 A& g' t f, }$ C (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))5 o. Z4 n& x) f. \. x) B& F
(command "Pline" e f g h "c")
" t2 [# ~% w5 n* t: r6 Q0 Z& U8 j (command "change" "last" "" "properties" "layer" "0" "")7 v$ s. C# d; ~1 u% C2 K
(setvar "cecolor" "4")1 s* p9 L, B! o! S+ l
(command "Pline" a b c d "c")2 d- R* f. p% e
(command "change" "last" "" "properties" "layer" "defpoints" "")))& M; ^* ~- N6 _: }0 M# J! q- \. y
(if (= kho "4")+ K9 Q+ `/ g2 \. k1 q
(progn# X$ v6 I* M: F$ L$ @/ `4 H1 Q; v
(setq b (polar a 0 (* TL 297)))6 l# M1 z! K0 o2 e* C
(setq c (polar b (/ pi 2) (* TL 210)))
' W! q) z& }# K7 [9 } (setq d (polar a (/ pi 2) (* TL 210)))' ^9 Y2 Z# ?; r- N; h4 F
(setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
/ u5 g5 C; a. f& _& @ (setq f (polar e 0 (- (* TL 297) (* TL 18))))) Q9 H7 l2 h0 i- G
(setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
" X; v3 G8 g: a2 s2 t4 d (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))2 U: E+ m# g: y7 a1 O) l% j" I# M
(command "Pline" e f g h "c") ! x5 O& E% G0 V! ]8 \
(command "change" "last" "" "properties" "layer" "0" "")5 z5 f" H# L1 \
(setvar "cecolor" "4")' l" ]: b1 c4 |1 [' [1 O# D
(command "Pline" a b c d "c"), R; l, |8 W4 B5 _8 e+ J' C) j9 D0 H; z5 Z
(command "change" "last" "" "properties" "layer" "defpoints" "")))
# h$ b# v7 d) [- W7 i. i(mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)" y+ t+ j" J5 c
(command "undo" "e")
4 N' e, U" b1 y& r, N6 r9 x5 h(princ))) J! p$ x+ v5 V# z7 b8 u( ^+ ^/ t
;=====================================================================
. L2 ^4 j6 Y3 L" L2 O; o;==================DAT KhoGiay Theo KHO GIAY BAN VE===================! N; Y! @1 i+ I! U& y9 [' G* [
;=====================================================================6 s) Q1 S% [2 e8 F& Y7 L
, z, N. [* @! Z% M;=====================================================================) @3 C( w' J- B
;===================DAT Ti Le Theo KHO GIAY BAN VE====================
/ |! P4 u+ u; @& f;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================% |/ B3 V8 I* t' l- S# C
7 _' J/ k# A% R% L @(DEFUN C:SA6 () (setvar "DIMSCALE" 411.11111)
5 G& @* a' d& A6 }1 l3 w (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
, A3 T- W: w( B6 x) m6 P8 x5 p "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
! P6 w& `% T% W7 o- i "M" "MANH" "C" "9" "" "Lw" "0.1" ""
2 ~1 {( U0 g1 r6 f+ s: `' | "M" "TEXT" "C" "7" "" "Lw" "0.12" ""; H% o$ k+ K* n* Y3 J3 \2 l: f
"M" "DIM" "C" "1" "" "Lw" "0.12" ""
: M' @" i8 @1 n. I6 O5 ^ "M" "THAY" "C" "7" "" "Lw" "0.2" ""+ Q4 M0 U; A9 s8 a( }5 J
"M" "NOITHAT" "C" "60" "" "Lw" "0.12" ""
1 k9 d7 B- x- I "M" "HATCH" "C" "5" "" "Lw" "0.1" ""- s0 v- r3 u6 ~0 F# G6 u
"M" "COT" "C" "1" "" "Lw" "0.3" ""
( R$ D3 |( r* u3 K- Z "M" "Defpoints" "C" "7" "": W+ R4 G; b& e+ a, {+ J
"M" "0" "C" "3" "" "Lw" "0.12" ""
# a8 D0 N8 W+ h. J/ S7 F* e "M" "CUA" "C" "6" "" "Lw" "0.12" ""
2 s, N% D/ k- k/ L/ l "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" """ A# S6 l/ p9 i# F: S4 x; `
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1", m8 {" i+ N; i/ Y* Q
"M" "NETDAM" "C" "4" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1" X( R) H7 a4 h, }: N
"M" "NETTHAY" "C" "255" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
( u$ d- k0 G2 H' c- `4 t, ]3 ^ "M" "NETMANH" "C" "43" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
) Q$ k7 }" l; M5 C6 _% M4 C "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
& O) h$ d: g3 u: `/ G8 m4 k "M" "TEXTTXT" "C" "7" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1") z v7 X+ L$ w% H6 H( e1 X/ h
"M" "TEXTVN" "C" "60" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
6 @, A$ x, S, Q+ @5 C% b& P "M" "TEXTVNi" "C" "60" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
2 c7 c, M. S# `6 }/ X/ m9 F "M" "THEPDAI" "C" "3" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"& v- T; |5 g' M ?$ o
"M" "THEPDOC" "C" "2" "" "Lw" "1.20" "" "LT" "Continuous" "" "" "LTSCALE" "1"
) `- @6 I- L/ C" Z* u" V "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.3" "" "LT" "Continuous" "" "" "LTSCALE" "1"
4 b k- l/ f8 ^( _& g4 y "M" "4-WateR_IN" "C" "4" "" "Lw" "0.4" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"% ]. n% W c& z) `( j( q" Z
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.4" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"/ B U3 _) { v6 f& u! @6 M
"M" "KHUNGTEN" "C" "4" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"6 q5 ~1 K3 i- C
"M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))(princ)+ E5 H. A5 _1 {- t2 r) g7 J
(DEFUN C:SA5 () (setvar "DIMSCALE" 611.11111)& t5 b# c' T7 l: t, v5 l
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
$ u: t- Z2 x% z! {0 o. }3 A" `. M; i "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""/ O2 [5 q. {* L5 T N
"M" "MANH" "C" "9" "" "Lw" "0.12" ""
4 K) J! R! Z2 _1 G7 M# H; k "M" "TEXT" "C" "7" "" "Lw" "0.12" ""& t9 ]1 q1 [9 X# }
"M" "DIM" "C" "1" "" "Lw" "0.2" ""1 M. [. N/ v* J7 b8 q# o
"M" "THAY" "C" "7" "" "Lw" "0.2" ""
$ r9 o8 n, }& s8 k "M" "NOITHAT" "C" "60" "" "Lw" "0.2" ""
6 f1 `6 j# R! x, K "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
0 ~# l: Q. s% z* ~% |1 g2 w "M" "COT" "C" "1" "" "Lw" "0.4" ""7 m6 w( I, }% G* G" t
"M" "Defpoints" "C" "7" ""
- n8 [) q8 o" \* ]0 V "M" "0" "C" "3" "" "Lw" "0.2" ""2 R6 ^ _, n4 O5 L& H
"M" "CUA" "C" "6" "" "Lw" "0.12" ""; F. f" ?* w# c3 }3 [3 h6 r+ x* r
"M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""8 c6 l8 u, S3 |, f% s
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
/ J6 t1 _+ x9 b2 L "M" "NETDAM" "C" "4" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1": w: X) L" p5 u2 Z; {
"M" "NETTHAY" "C" "255" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"! P1 h( w" u z G/ X
"M" "NETMANH" "C" "43" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
; V4 ^' ~' y( ]2 |0 c. K2 e# O "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
- O4 ~8 x6 v/ e+ w `2 U "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
6 Q( {' g' z+ y' r "M" "TEXTVN" "C" "60" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"
: q/ @( @; m, B D1 _' ] "M" "TEXTVNi" "C" "60" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"- H+ I" t. x' E) m( p @' ]
"M" "THEPDAI" "C" "3" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1", G8 S0 N: k. U( Z0 f
"M" "THEPDOC" "C" "2" "" "Lw" "1.40" "" "LT" "Continuous" "" "" "LTSCALE" "1"
) ]1 t. F9 R2 t/ k "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.4" "" "LT" "Continuous" "" "" "LTSCALE" "1"7 {0 u: }( e2 z' a
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.5" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
2 _$ [' d' D& C: b, o8 ? "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.5" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
V) G' _. y1 D- s "M" "KHUNGTEN" "C" "4" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
: |% F" p3 R `4 W "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))(princ)! @4 `6 B: B* C4 M
(DEFUN C:SA4 () (setvar "DIMSCALE" 1411.1111)
7 A9 e/ P( t* ?6 j. h (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""6 ^- t0 E% w0 ]7 l$ _
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
. a$ A& ], l8 O- I3 I+ x3 K "M" "MANH" "C" "9" "" "Lw" "0.2" ""
* x6 j" A5 e4 y( |8 P9 o& Q "M" "TEXT" "C" "7" "" "Lw" "0.2" ""- t. [/ {8 y0 E# x3 {7 W
"M" "DIM" "C" "1" "" "Lw" "0.25" ""
3 i: _- u& h8 B# p+ q9 ]+ n0 k "M" "THAY" "C" "7" "" "Lw" "0.35" ""( K. K$ n0 ]+ @8 I
"M" "NOITHAT" "C" "60" "" "Lw" "0.25" ""
+ \$ j) e6 B1 s "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
% b, X- o2 s& Y$ K ?6 P* p4 l/ B. D "M" "COT" "C" "1" "" "Lw" "0.6" ""; D+ {+ A: O; E# {' F
"M" "Defpoints" "C" "7" ""1 n0 |8 L) l% P* B8 ?
"M" "0" "C" "3" "" "Lw" "0.25" ""
$ K4 c5 Z( m0 b- Q L8 e+ p! H$ ? "M" "CUA" "C" "6" "" "Lw" "0.25" ""
7 Y% t/ P1 h7 s "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""- e5 P I; h/ H3 R2 `5 D, t# L# r
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"9 p) x/ x$ f1 n9 i' p
"M" "NETDAM" "C" "4" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"4 Q6 }0 E( c" Z) W$ Z- |$ x
"M" "NETTHAY" "C" "255" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
" O, i; |3 }, X" ?8 D3 A6 P "M" "NETMANH" "C" "43" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"2 E7 m& R, z; p" x
"M" "ThietBiDIEN" "C" "2" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1". q7 z4 L# e6 ], W
"M" "TEXTTXT" "C" "7" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1", ^, v/ z, c4 s) {$ X, T
"M" "TEXTVN" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
3 l. G/ k3 p0 Y9 b "M" "TEXTVNi" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
, Q6 m2 P3 y$ N( A "M" "THEPDAI" "C" "3" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
2 R6 o; ?" E/ ^7 t1 {" S, V i "M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" "LT" "Continuous" "" "" "LTSCALE" "1"% g* ~6 C( a2 A
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"% v0 E `& N7 c8 K) q s
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"9 d/ y1 ^4 k7 h; r! [
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
( w+ F* s7 q# h "M" "KHUNGTEN" "C" "4" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"% b* M x3 f' k8 n( B( y9 X
"M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))(princ)
, F3 |# Z7 R+ }( L3 \ j. T ( S6 h" N( M1 o7 J5 e O' O7 w+ J' d
(DEFUN C:SA3 () (setvar "DIMSCALE" 1611.1111)4 `" |; }/ X. h9 {+ i
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""5 {) z3 M& x7 Q5 a) D, N
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
' b" n: I" }: [* S "M" "MANH" "C" "9" "" "Lw" "0.25" """ k, e/ J, y$ }" h8 e/ G6 G# i/ B
"M" "TEXT" "C" "7" "" "Lw" "0.2" ""
5 G: r3 {& P& M! m) ` C/ z "M" "DIM" "C" "1" "" "Lw" "0.35" ""7 w1 y! \$ I# ], ?6 o' Z4 [- d1 b
"M" "THAY" "C" "7" "" "Lw" "0.4" ""
6 x8 v; k6 g6 E/ L; { "M" "NOITHAT" "C" "60" "" "Lw" "0.25" ""7 F$ J$ E/ l3 g# y/ ^6 `. q
"M" "HATCH" "C" "5" "" "Lw" "0.2" ""
, o0 q @; M: m7 w' U" F "M" "COT" "C" "1" "" "Lw" "0.7" ""9 N+ O1 |7 w- L& v1 ?- i! [
"M" "Defpoints" "C" "7" ""
) I3 ?( l( |5 i5 C "M" "0" "C" "3" "" "Lw" "0.25" ""7 f8 S! m* I' `" w
"M" "CUA" "C" "6" "" "Lw" "0.35" ""
9 i5 o, j; F& G' j7 o7 G( G "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""+ n0 |9 e+ U' f" [" ]: s: g4 t4 ~
"M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"" x- V8 m6 }' y
"M" "NETDAM" "C" "4" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"1 ]) Y1 q, o3 p# {1 f- l
"M" "NETTHAY" "C" "255" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
: i. [& B! [4 p "M" "NETMANH" "C" "43" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"; ~1 s9 @; T: `1 j1 u
"M" "ThietBiDIEN" "C" "2" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
# F. X! _5 o4 F* J "M" "TEXTTXT" "C" "7" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"! d0 w, I3 |! g. k- I. J
"M" "TEXTVN" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
+ T9 o; G7 w$ y0 H0 R "M" "TEXTVNi" "C" "60" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
( c- a( c7 B* L; Q "M" "THEPDAI" "C" "3" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1") v, x6 f* f4 X& ]0 w, o: h
"M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" "LT" "Continuous" "" "" "LTSCALE" "1"8 ^8 H; r- J* N9 @
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" "" "LT" "Continuous" "" "" "LTSCALE" "1"
' K+ i0 |) v- M2 _( R "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"1 F7 c9 q' l4 x
"M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
+ B$ D- ]6 \) Z2 Y "M" "KHUNGTEN" "C" "4" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1", ?) W) J- j# @* @
"M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(princ)
5 G( C* V9 A9 H7 ~4 H
8 y% b+ e. ~& l6 a(DEFUN C:SA2 () (setvar "DIMSCALE" 4111.1111): L4 t( k* x9 s% h% {0 c% a
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
6 s" y+ M9 A( T6 | "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
# N3 z" q: _ f. [; o "M" "MANH" "C" "9" "" "Lw" "0.25" ""
" m' e2 _5 {; k% a" L- D, A "M" "TEXT" "C" "7" "" "Lw" "0.25" ""2 u( A% K- |) l. z$ z4 n( `7 S0 i
"M" "DIM" "C" "1" "" "Lw" "0.3" ""
% |! P! S) [" c* T "M" "THAY" "C" "7" "" "Lw" "0.4" ""
$ g6 g' F. U# A- I" @ "M" "NOITHAT" "C" "60" "" "Lw" "0.3" """ S$ K8 d! f. K% [8 U' t. @
"M" "HATCH" "C" "5" "" "Lw" "0.2" "" T. I0 z, y/ P4 N0 O( E3 d% E
"M" "COT" "C" "1" "" "Lw" "0.7" ""
; u) u; i; W4 t* Y+ C8 t "M" "Defpoints" "C" "7" ""
d6 A2 o% f! u, G% i8 e9 |, F5 M "M" "0" "C" "3" "" "Lw" "0.35" ""
; t" |) B" D' } "M" "CUA" "C" "6" "" "Lw" "0.35" ""
- L& {5 L2 G V8 v "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
: d" s: l/ ^5 W5 O' i% F "M" "DAY-DIEN" "C" "3" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
% L( U) N `5 H% h* H "M" "NETDAM" "C" "4" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
8 I0 G3 X) l n& D "M" "NETTHAY" "C" "255" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
3 H" f; d+ V/ A4 {8 Y- X4 M* E; B. r "M" "NETMANH" "C" "43" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
8 i8 `7 ]% i7 e6 u- ~2 h( ^# f; B "M" "ThietBiDIEN" "C" "2" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"( e" Y4 C4 |" a7 D5 }( I" o0 q
"M" "TEXTTXT" "C" "7" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"" A; }& t3 s/ o" i6 {
"M" "TEXTVN" "C" "60" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
6 S! u5 s; D# O: | "M" "TEXTVNi" "C" "60" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
" R6 c1 K% F F! ]/ K1 k "M" "THEPDAI" "C" "3" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"1 t1 Y/ Z3 v- m
"M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" "LT" "Continuous" "" "" "LTSCALE" "1"
0 m$ W) b/ p8 O. n" {. { "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.6" "" "LT" "Continuous" "" "" "LTSCALE" "1"
3 G6 ~9 a3 A% I$ P9 u# t f( |, z "M" "4-WateR_IN" "C" "4" "" "Lw" "0.7" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
+ {$ H" h5 Y3 ]% M8 n "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.7" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"
; \/ R6 w: X6 t, ]; s "M" "KHUNGTEN" "C" "4" "" "Lw" "1.20" "" "LT" "Continuous" "" "" "LTSCALE" "1"
* J; k; w, S, a% p6 w) F "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))(princ)! H5 a$ P# D/ _1 k- c7 [
O. w' N) u3 k5 I s
(DEFUN C:SA1 () (setvar "DIMSCALE" 4411.1111)6 ]. O# |6 n. ~
(COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""1 L" s" ], q/ p C% v
"-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" "": h+ w. u" z3 P6 c) F5 Y
"M" "MANH" "C" "9" "" "Lw" "0.35" """ _/ N$ U; \# ~% ~! C. n
"M" "TEXT" "C" "7" "" "Lw" "0.5" """ \5 x1 D5 x3 o+ O2 A. g$ g
"M" "DIM" "C" "1" "" "Lw" "0.35" ""
0 s+ p9 ^9 B" u3 R) M "M" "THAY" "C" "7" "" "Lw" "0.4" ""
/ ^0 L: ^# p9 ?9 `2 Q2 R "M" "NOITHAT" "C" "60" "" "Lw" "0.35" ""
: T' d% f- _+ R* \ d4 c "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
3 d( E! a- b1 U1 \ "M" "COT" "C" "1" "" "Lw" "0.85" ""
; @1 U% |# \: h9 O, v3 M7 H* r "M" "Defpoints" "C" "7" "" w, F: V# R3 x! f- w
"M" "0" "C" "3" "" "Lw" "0.35" ""% Y. n7 C4 k2 `# w- b) i. R
"M" "CUA" "C" "6" "" "Lw" "0.4" """ H* E6 B! o3 `
"M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
3 c5 m: _& r% b3 K* O "M" "DAY-DIEN" "C" "3" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"; {" a7 A4 o6 f2 K
"M" "NETDAM" "C" "4" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
8 t; O$ P* C7 Z4 E "M" "NETTHAY" "C" "255" "" "Lw" "0.9" "" "LT" "Continuous" "" "" "LTSCALE" "1": d8 X) P) R2 z9 }, W
"M" "NETMANH" "C" "43" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
& n: F% X+ N; u "M" "ThietBiDIEN" "C" "2" "" "Lw" "1.0" "" "LT" "Continuous" "" "" "LTSCALE" "1"" `( A2 b& j2 e
"M" "TEXTTXT" "C" "7" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
4 j: h1 h% }4 S3 E! t "M" "TEXTVN" "C" "60" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"4 }* Y3 J) ^6 |
"M" "TEXTVNi" "C" "4" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"
% l& _! G9 W9 z& F2 x& h "M" "THEPDAI" "C" "3" "" "Lw" "0.9" "" "LT" "Continuous" "" "" "LTSCALE" "1"; d- ^' {. `# ~" b' |
"M" "THEPDOC" "C" "2" "" "Lw" "2.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"% `. @% ^% Y6 k5 i A' q
"M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.7" "" "LT" "Continuous" "" "" "LTSCALE" "1"' K+ |$ N. ~: ?7 f" _
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.8" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
+ h9 g6 K9 o9 _% _ "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.8" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2", M7 q, Z X' Q
"M" "KHUNGTEN" "C" "4" "" "Lw" "1.40" "" "LT" "Continuous" "" "" "LTSCALE" "1"/ x+ C( f9 H- ]1 ?9 Y" z: |
"M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))(princ)# J; h3 ~6 @! i, O
& q/ ?# k6 y* k2 v- W# I) l8 g9 X3 V" K(DEFUN C:SA0 () (setvar "DIMSCALE" 6111.1111)
5 H! t, g9 V o; | V. U% ~ (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
% Q* P. I# _2 S9 M& o4 A "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" "". v. G' G8 \0 ]" `1 S
"M" "MANH" "C" "9" "" "Lw" "0.35" ""( f8 a3 Q5 T, D+ }
"M" "TEXT" "C" "7" "" "Lw" "0.5" "": B0 L$ U Z9 r0 {- p% } \% S+ d& z
"M" "DIM" "C" "1" "" "Lw" "0.35" ""
4 Y/ [4 N3 @$ p& q4 m) f "M" "THAY" "C" "7" "" "Lw" "0.5" ""
4 e: k: Z7 ` [9 T |" ?5 S "M" "NOITHAT" "C" "60" "" "Lw" "0.4" ""7 |/ c ~; j3 Z; ]
"M" "HATCH" "C" "5" "" "Lw" "0.35" ""3 C1 D1 j# n( x' U( n. _7 r K3 }
"M" "COT" "C" "1" "" "Lw" "0.1" ""' |1 g9 ^1 S5 d' I, b
"M" "Defpoints" "C" "7" ""
( B; p* k, D. {( ^& {1 l "M" "0" "C" "3" "" "Lw" "0.5" "" `7 ]* N5 ?; z }2 l9 F3 b
"M" "CUA" "C" "6" "" "Lw" "0.5" ""
9 s7 ]. v- J: n5 H/ t7 T "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
* N/ _/ i I3 A9 |: J- s% n "M" "DAY-DIEN" "C" "3" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"& o& I% s _( Q! J# G7 A; }
"M" "NETDAM" "C" "4" "" "Lw" "1" "" "LT" "Continuous" "" "" "LTSCALE" "1"4 T+ F+ X. b8 x$ z& a
"M" "NETTHAY" "C" "255" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"
/ p% N- F1 {; Q4 j# n "M" "NETMANH" "C" "43" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
1 N% R6 F0 k6 T% u& I "M" "ThietBiDIEN" "C" "2" "" "Lw" "1.20" "" "LT" "Continuous" "" "" "LTSCALE" "1"
" P# b7 C, i) x* ~! r! k' b* c "M" "TEXTTXT" "C" "7" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"& |+ l7 p7 a4 O, T2 A0 l
"M" "TEXTVN" "C" "60" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"2 d, l; A' _2 n( ?
"M" "TEXTVNi" "C" "60" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"
2 |2 [6 x% { s) b4 z "M" "THEPDAI" "C" "3" "" "Lw" "1.00" "" "LT" "Continuous" "" "" "LTSCALE" "1"7 v4 |; \* r8 r) N2 E0 \8 ]# D
"M" "THEPDOC" "C" "2" "" "Lw" "2.11" "" "LT" "Continuous" "" "" "LTSCALE" "1"
2 |2 ]5 Q( \- ]3 W5 B( s) ~ "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.8" "" "LT" "Continuous" "" "" "LTSCALE" "1"& F" X: t( O( i7 @9 t6 ~+ [
"M" "4-WateR_IN" "C" "4" "" "Lw" "0.9" "" "LT" "FENCELINE1" "" "" "LTSCALE" "2"
/ C# G2 n# b" |# M& |, A "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.9" "" "LT" "FENCELINE2" "" "" "LTSCALE" "2"9 i4 Z/ R, l* @8 {! k6 X& h
"M" "KHUNGTEN" "C" "4" "" "Lw" "1.40" "" "LT" "Continuous" "" "" "LTSCALE" "1"1 j6 b$ M& B7 Y; d
"M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))(princ)% p, q9 ?# [. h% p4 x
(DEFUN C:O () (COMMAND "OFFSET"))
1 p% a2 k: K+ B) ?% C* k: Y* D(defun c:s1 () (command "surftab1"))
7 `$ d H& e. y6 ]& m5 {+ _) z(defun c:s2 () (command "surftab2"))
I* J( R" f5 q+ n4 h(defun c:ep () (command "explode"))1 c w- y8 w `. r7 ~( y* e$ w
(DEFUN C S () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))0 [' k* W& @' i+ `( M" Z
(DEFUN C V () (COMMAND "QSAVE"))
: _! r: u0 y8 J8 M5 j+ p% ](DEFUN C:S () (COMMAND "STRETCH" "C"))
+ T. b. G; q" X4 M3 y' T" R
^' d f, c( I: J;************************** CAT DIM **************************0 n) _* k( c4 w9 f4 v* S
1 J5 d4 n# L4 o. ^+ ~
(DEFUN C C (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
$ ]* L2 o1 w- m) s8 y PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
# j- D) C# g e. W0 Y$ t% {(SETQ CMD (GETVAR "CMDECHO"))/ D% q; F2 r: m- W
(SETQ OSM (GETVAR "OSMODE"))6 D/ s9 F4 N4 D4 v# |. C* D3 M
(SETQ OLDERR *error*
. ^# x5 {( n! [0 C6 c9 F5 d" U *error* myerror)& o. |9 U. D5 C4 p, R" v
(PRINC "Please select dimension object!")
1 S- l' f; D% a7 O. \3 y(SETQ SS (SSGET))9 |4 E5 D; Z, M$ x; ^0 [0 C
(SETVAR "CMDECHO" 0): U- D: w. Q: s4 y' p; G( K5 O" ]
(SETQ PT (GETPOINT "Point to trim or extend:"))! y% Z( L6 l6 B
(SETQ PT (TRANS PT 1 0))
1 H( u6 x, P" ?& w6 \' }3 |(COMMAND "UCS" "W")
i, m, C; [0 |& ^. H+ i(SETQ LTH (SSLENGTH SS))% e8 V- s$ g" M: k( E
(SETQ DEM 0)' P/ ]! W& X. x- z9 ?
(WHILE (< DEM LTH). g( P s q0 U
(PROGN
. a; K0 L# ?% G g9 J% {- P5 h- G (SETQ DS (ENTGET (SSNAME SS DEM)))/ I$ J# n7 Y1 J( |- i' H! }
(SETQ KDL (CDR (ASSOC 0 DS)))
3 M+ P, G1 _3 k) B4 S, @+ A0 ~. i (IF (= "DIMENSION" KDL)8 U6 d% ^# k4 H, J& G, M
(PROGN6 a0 R& `( S( J3 Z% k; H
(SETQ PT10 (CDR (ASSOC 10 DS)))
- l) Z) w$ R) l$ q. o& g7 } (SETQ PT11 (CDR (ASSOC 11 DS)))
, n: n4 Z1 i$ ^' Y (SETQ PT13 (CDR (ASSOC 13 DS)))
* Y) C7 B& T1 Q: r2 {! e (SETQ PT14 (CDR (ASSOC 14 DS)))
. G' s0 A. z, k& t (SETQ N70 (CDR (ASSOC 70 DS)))& z$ `$ M7 B4 o. B: j2 X
(IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))2 U! P8 C* s0 E3 q6 N9 U1 }
(PROGN
3 G) Q5 O: n* e r$ d. H (SETQ GOCY (ANGLE PT10 PT14))
" f3 _0 w+ D1 U5 X (SETQ GOCX (+ GOCY (/ PI 2))): q; T3 s8 l% ?" j
)- b* c. m2 ?+ G/ ^( P( k
)
2 z8 `" \; P1 i+ n: ?0 P' {4 k (SETVAR "OSMODE" 0)
* p' Y" j- u: l: F# I' Y, i) n! ]( `) v (SETQ PTI (POLAR PT GOCX 2))/ T( [# t. ?( Y7 v' a" }
(SETQ PT13I (POLAR PT13 GOCY 2))& |- d9 P1 b$ g
(SETQ PT14I (POLAR PT14 GOCY 2))2 \6 W. f5 W1 p2 w) y! n/ ?2 l
(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))4 e0 l$ ]3 p; Z3 T
(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))6 k! h, |! _: H; w/ f
(SETQ O13 (ASSOC 13 DS))/ F7 s: e& l+ O5 y
(SETQ O14 (ASSOC 14 DS))+ ~- d; w" `: i+ x# C5 D% k
(SETQ N13 (CONS 13 PT13N))
1 T4 j7 _, |! \- ?7 J4 e( | (SETQ N14 (CONS 14 PT14N))6 V; _* X9 j( j- X7 U/ }# j/ J
(SETQ DS (SUBST N13 O13 DS))
+ }5 `% X3 _+ x4 ]) U (SETQ DS (SUBST N14 O14 DS))/ ?: R( p6 `9 ^8 [ x" n$ {
(ENTMOD DS)
% ^3 u& x3 { X3 [/ g& r+ \ )2 t7 }( `9 }- b6 E
)
; g8 B& }, B$ A" }& [ (SETQ DEM (+ DEM 1))1 i4 h* H% k) p4 N9 j. w
)4 s3 G2 k5 i, w2 G( J/ }9 b2 g4 ?
)
/ n$ |% ~) u5 s# G! b(COMMAND "UCS" "P")
C$ [5 g* w3 Y- W K4 F(SETVAR "CMDECHO" CMD)
# @. K: L0 r' t( C/ I; o(SETVAR "OSMODE" OSM)# b* O3 z2 u. U1 q9 M
(setq *error* OLDERR) ; Restore old *error* handler4 c1 Q7 t5 z. [; t( @- j
(PRINC)
0 Q/ |: o2 k7 T+ E% o)
- a/ s) E& }* K2 C b0 s, a: I0 M6 o7 S/ u4 ^- }
(DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI+ Y" p4 ~3 F- J
PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)& G( y( A, W: D' G8 V
(SETQ CMD (GETVAR "CMDECHO"))
( l& x3 C. S, F! q9 K# w(SETQ OSM (GETVAR "OSMODE"))
) \4 \! ?# m: c(SETQ OLDERR *error*8 b7 T5 L' e1 C% m* {* h# T3 ]3 x
*error* myerror): K8 N, @8 e4 a/ Y* \6 k
(PRINC "Please select dimension object!")9 s7 E2 l9 S& L7 I
(SETQ SS (SSGET))
8 |6 ?! T! S+ k" p(SETVAR "CMDECHO" 0)9 ~ c Y3 |4 O
(SETQ PT (GETPOINT "Point to trim or extend:"))& m* Z5 P9 ?3 c; x. ^+ z$ e* r
(SETQ PT (TRANS PT 1 0))
# s5 Z% w* m5 s; Y y- t5 r7 H(COMMAND "UCS" "W")
% G( p1 u* M' O/ r- j(SETQ LTH (SSLENGTH SS))' G9 f2 s8 w2 [5 T
(SETQ DEM 0)& `* E+ \5 z3 X, E3 K2 c
(WHILE (< DEM LTH)6 y9 a( L# x; @7 f
(PROGN1 e$ I4 U& }4 Y9 J$ w0 M* Y
(SETQ DS (ENTGET (SSNAME SS DEM)))! U* P0 F" R7 j2 @! [% M# N5 w; e! T
(SETQ KDL (CDR (ASSOC 0 DS)))( g* G( l2 h' }4 T5 p0 X
(IF (= "DIMENSION" KDL)
" z+ I! `* [ Q+ | (PROGN
6 `# Q" J- a. a% Q! t S2 C (SETQ PT13 (CDR (ASSOC 13 DS))) @0 m2 m3 ~) Y$ Z
(SETQ PT14 (CDR (ASSOC 14 DS)))
' m! W/ `2 q; X% V) `" j( B' z (SETQ PT10 (CDR (ASSOC 10 DS))). ]' @7 W! K8 `5 m$ f) j. @; _) g( ?! [
(SETQ PT11 (CDR (ASSOC 11 DS)))
& [; ]/ F% ~* }) r K/ E (SETQ N70 (CDR (ASSOC 70 DS)))2 d! M- a" p- S! m7 }3 j" }/ s
(IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
0 C) r$ W x: @7 L v5 { (PROGN& ^! C+ u( x6 ~# \2 @
(SETQ GOCY (ANGLE PT10 PT14))
; b$ ~' y* {6 _7 d$ m$ w% N/ s( I (SETQ GOCX (+ GOCY (/ PI 2)))
|5 s% {2 n l )
r8 H! _& E% J) u7 {8 ^' E )& l1 C. ]& i7 N6 e3 b6 m' Y. e: O X
(SETVAR "OSMODE" 0)
3 f% Z' m5 @( ?' D9 T' ]3 Y! `+ [5 X (SETQ PTI (POLAR PT GOCX 2))& N" v8 V5 J: q0 L1 \/ A
(SETQ PT10I (POLAR PT10 GOCY 2))5 ?5 E, D( g0 l+ I% O
(SETQ PT10N (INTERS PT PTI PT10 PT10I NIL)), `- w; U1 D; c3 F m% d; Z3 K5 J
(SETQ KC (DISTANCE PT10 PT10N))% ^6 S! Q" R8 H+ _$ l
(SETQ O10 (ASSOC 10 DS)): K$ j7 }- B. H; G
(SETQ N10 (CONS 10 PT10N))
1 \/ b3 }% ]& Y2 \) B (SETQ DS (SUBST N10 O10 DS))6 y7 [9 t! ^; j+ `0 y! H
(SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
" X9 M! o( E: `8 z7 B (SETQ O11 (ASSOC 11 DS))# g7 O6 D y( k2 P
(SETQ N11 (CONS 11 PT11N))7 C/ H1 ]* }# a1 ]& D) N5 h
(SETQ DS (SUBST N11 O11 DS))
5 U$ K2 k. I# N9 l0 f (ENTMOD DS)$ V1 i" |/ [: ?# Z0 S/ M
)
& X; e2 Y! O/ E6 x8 E )8 _* M2 D, m9 _: e
(SETQ DEM (+ DEM 1))+ v4 t2 u( ~2 j9 O' i2 l3 d
)5 O. ?3 d" x1 R9 C+ s
)6 J& p0 g7 }2 r9 v
(COMMAND "UCS" "P")
% X& d) @* W" f, Z(SETVAR "CMDECHO" CMD)8 Z& X6 q7 n: ~7 X+ G- m* K
(SETVAR "OSMODE" OSM)
" H. M! ?9 H" P3 K$ _6 U, s(setq *error* OLDERR)2 i1 f/ a: m/ ^/ R
(PRINC)$ Z% x. M$ V( j5 P
)1 X( D! C- Z) g3 _
* d+ |/ a8 x( q+ y" {. O
0 F% x4 a8 X- |2 O" o3 N
;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================: Z; w2 v9 n! J- H
3 P& N/ S3 \& T1 a% J) a# {" Y( ^$ z
(defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
- {; D$ @) p( H( G/ @ (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
4 j7 Q F) n5 Z1 Q/ i% y sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt* J+ [8 X' V& W. N: z
(entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
( ^4 n+ z; m& J$ r" x6 U6 e' W" p( G (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")6 u# Y: i% N1 R; t3 N3 W7 ]
(= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
[! B; b3 m+ S* v (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))& e1 o% [% ?& a9 O! x l) E$ c: H
(setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))9 c) b$ t6 u+ |2 V0 ?- A5 A
4 @9 H" r8 z1 \
;;; ================ CHEN COT (TUU) =================# h4 b" R4 a0 P7 x; e" n
* Q5 f4 r U# d: l
(defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
8 M) S* d& H: g# Z5 _/ @8 o (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
. R ?' Q0 r- ]; `% r, i sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt" f) _: A+ ^7 |! e* i
(entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
0 W, u0 @9 S: e: a (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")5 A& |" o/ J7 {) e" g, ]4 ]
(= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
. x& p' ]: x& Q& B( H (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))& C$ ^6 ^ c' I: o! {
(setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)), i) y% y" z5 S- L' D8 `8 H x
, h( S6 y5 T) f3 `6 ^: Y( X
;;; ================ CHEN KY HIEU THEP (TP) =================
2 d/ ^" ]" n6 R2 t5 m( b( V! Y+ G* Z! x2 F$ s- a! r
(defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")/ a7 e/ a, S' B) u2 B
(prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p"): R) o' K( e7 J$ ?4 I" m( i# t
sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt1 c+ T7 t, ?: G
(entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
/ t' t- ?' m @/ T (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
7 M- F. s( A% v' D) ] (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
' @. @: ?; O$ M4 n (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
6 K- J. q8 C' ]. a* t# M$ s6 ^! e (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
% `9 |: t) g; K: b+ S
5 A, h$ x7 t( @8 Y;=========================== TAM TUONG (TAM) =================================
4 \+ r! X( Q# o% I7 p9 K
% a! c4 c! n7 G; @4 E(defun c:tam(/ data_m)
: E, M! P) j9 P% q& U3 B* F" p (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
; P4 S2 i7 e2 X0 M6 t (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
1 R: c5 q( n4 G! G+ Y' z (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)
6 q2 `/ d9 ^$ y$ c8 r i- l (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
# U% w, N) R9 K. ^ (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
; L1 e! t* l- J/ F9 }5 \ (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
) w5 N6 G' t# q. U, _ )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if# \6 e5 v7 A1 ~% u+ V
(< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
: [9 r, |: T9 I0 S q distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
6 C6 {# f$ g- t- C (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
1 m$ }' z! H# g; i. s (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
5 M) o& t1 P, _6 [8 e$ H (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)1 X* P8 w" l4 h" \% r% R8 ~
distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
o9 P8 [3 d8 O$ k) d (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p48 _/ ]- V$ Y; {. G
(list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
# z/ d$ g. q1 K- w6 |/ r (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget/ [9 }# s W% Z+ u) Y
(ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))4 Z+ r) Q& ^- r
(import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))1 e" e; _1 W" c' r
2 Z- y& J6 }4 F! `;============ GHI CHU PHI (T1) ================+ r4 T) r1 k0 }3 ^- Y `4 g
7 c% v. a9 w) ^4 E" y- L+ ]; a(defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
% l. j# O4 Z, Z) \( U (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3: ^ r( j$ w6 c& m/ K, {: f6 z$ x: q3 i
(polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
: n8 t: M E3 n, v* Z9 @* n& K (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
; R0 V( h5 W4 A2 B7 I' r ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1)); b' j3 f' Z5 v' `( R+ y9 W7 b
(setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
0 ]- _2 L2 y, u$ z6 w 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
- A2 [4 g. ]' E, {) E (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )1 f8 V9 l$ R) o0 H) [
(command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
1 H$ |9 Z7 J! Y! g1 V( d (command "ddedit" pause))' _3 Q6 _) A: o: N1 z/ g2 _$ P
0 I4 ^9 c' v9 J5 p4 W;;; ========================== Join (J) =================
: |: x! f( ?3 z2 {! ~9 u* o* `) ^5 h9 E! o4 p) V% S
(defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
0 W! M* ^! ?: Q+ | (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
) }6 k7 i6 ~+ k5 N$ a, k (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)9 Z7 k/ {; d! z u+ Z0 r
))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
: _8 P0 [7 f$ v# d, x (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))' z5 w9 w$ T" \0 H
(COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))6 F) V9 w B* {5 W/ B- ]- y
(progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
9 j8 h j2 s5 H9 c- [ (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))9 L0 P' B0 u i
(setq *error* m:err m:err nil)(princ)) J' K, K9 k1 o) `. C# j
7 Q! X' k7 f- j% |& l. r0 H
;=====================================================================
. O9 b+ @: o& h4 V, {% E! c;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.: i( B/ z) I Z, U
;=====================================================================& U. `+ S& j" e+ I
( [' s5 d _5 u
(defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
, K7 V+ U( L/ o, F, H2 o (setq old (getvar "OSMODE")) 5 e" C9 o `$ [
& I k. s; H2 M6 S& V3 X( Y2 H! u (setq p1 (getpoint "\nStart point:"))6 d2 j6 H. a; `. c
(setq p2 (getpoint p1 "\nEnd point:")). L0 J7 r2 r+ @0 v. p- [4 b, s
(setq side (getpoint p2 "\nOpen side"))
+ Z& F1 W7 r1 {0 h% S
" z' Y; K3 l1 P7 v( w" c7 S (setq dis (distance p1 p2))
: v2 I; i8 Z* I8 ]: m$ J0 ^ (setq ang (angle p1 p2))
3 P: _' G* j$ k# w (if (< ang (angle p1 side))
# ^5 i0 Y$ K/ k1 |" M: z3 T+ c4 ? (setq angside (/ pi 2) )
! ?$ K) z" F4 A0 [4 v/ R (setq angside (- (/ pi 2))); S2 W5 |7 \- ~4 n
)% L/ t* q6 g$ m6 h3 j( T5 V
(if (>= (- (angle p1 side) ang) pi)! }, \6 G1 }$ N' g
(setq angside (- (/ pi 2)))- m4 J1 X* [" ^& X# Z% ?
)
O. \# |* n/ q, x3 s& K$ Z" O! @9 T (if (>= (- ANG (angle p1 side) ) pi)
) Q# W- e/ j* `, c: R4 V (setq angside (/ pi 2))( }3 x& b2 ^! H( q1 F7 i, b, P
)
R8 A9 [) s' ]& V* T) P$ R. `% o
(setq p3 (polar p2 (+ ang angside) dis) )
$ m, Q& ~. |+ D; X- {* d2 [ (setq p4 (polar p1 (+ ang angside) dis) )
7 f2 U: e* V& x5 r* y (setq wid (/ dis 15))
* K' v3 Q' ~, A& a; L! s& V1 S7 ~9 Z' D
`2 F7 Z V2 E9 ] (setvar "OSMODE" 0)" k5 X7 i+ C" ~4 c
6 ~; H( G6 `$ w/ k/ d4 d (command "PLINE" p1 "A" "D" p4 p3 "L" p2 8 K; f8 z5 q" ]% h
(polar p2 (+ ang pi) wid) % z& S* ]3 I# |
(polar p3 (+ ang pi) wid)
6 [1 @- K; D* H' r "")
8 \1 Y; P/ T: `0 G5 d, n# ~2 e! L# t+ @3 @7 b0 S( @
(setvar "OSMODE" old)0 ^, E$ m! \) B$ o$ U: z
(princ)
. T, `/ d4 s8 K# @3 D)% U& _1 {" P% e( {( A# a
3 e0 S$ W: S, i. {
;=====================================================================
8 a! `$ |6 s6 n6 ? S& ?
$ K0 }0 o: b: c4 V- X. L(defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)1 R4 c/ C/ h1 a! ^% N! G; |) y' j f
(defun cua1 (pt1 pt2)$ j9 i' S H0 z- ]) a
(setq p1 pt1
* j+ }- B b! i6 Y9 q p2 pt2)
) r. j- ^7 ]. S" t7 D2 o- W
# S* F" _$ V+ F9 x; [' Y# o$ P (setq ang (angle p1 p2)): f) T2 d& C* P6 e D# H8 x
(if (< ang (angle p1 side))) [: g9 j5 j& g5 f* @; h! W3 x5 [
(setq angside (/ pi 2) )
6 i! u0 V Z* {8 D. f" m (setq angside (- (/ pi 2)))
, ~$ T1 J+ P; P: [* |. j )
6 `: K/ u5 Q) w" L X0 b (if (>= (- (angle p1 side) ang) pi)6 s& s( z% j2 [- Q
(setq angside (- (/ pi 2)))4 F" G4 E& O/ Z! a
)& w! }- v; N. `& C d9 Z9 F
(if (>= (- ANG (angle p1 side) ) pi)7 C* V' C" {; z; L- u
(setq angside (/ pi 2))7 G- r+ o7 J8 e' E1 m I' [
)) N! f( S% _% ?
% G7 \+ b" x, ]3 Y
(setq p3 (polar p2 (+ ang angside) dis) )
" }# ~, Z7 w5 J: @! ^0 \" \ A6 ?- | (setq p4 (polar p1 (+ ang angside) dis) )
) B+ F+ z' h8 M* M0 M# [. R2 _$ @ (setq wid (/ dis 15))
& H: j0 q3 x9 d% m T& W* N w* r$ g$ g
(command "PLINE" p1 "A" "D" p4 p3 "L" p2 # M. K7 T! t) m! x3 L: t p: V. {
(polar p2 (+ ang pi) wid)
% P+ |8 y: g) E (polar p3 (+ ang pi) wid) # Z; o$ O l9 @1 l
"")3 q0 ^, f6 n9 p& b. ~; C- @
)+ q f9 j; k! h4 s
;===================================================================== k! T$ Y4 [ s+ B0 R
(setq old (getvar "OSMODE")) $ z ~0 z5 ]/ a& ]/ s% ?! V& S- k
4 [* T/ s9 L* y' B* S, O5 `/ F
(setq p1 (getpoint "\nStart point:")): ^5 b' h+ J/ [4 z$ Z% N: T
(setq p2 (getpoint p1 "\nEnd point:"))
3 \# t( \8 A7 p) h$ e. _ (setq side (getpoint p2 "\nOpen side"))
" n& y% m8 ^+ Q4 Z7 [/ L: ~1 X1 v' z7 n0 T# D! Q9 w# ?
(setq dis (distance p1 p2))
5 t6 d8 Y0 Z- s3 ] h+ [' {$ k (setq dis (/ dis 2))
( ? E& r3 \3 Y! {3 r# w5 c7 f( t
4 e! p7 f# Q1 ~" e5 B# e, _ (setvar "OSMODE" 0)/ b8 o; g$ L1 e6 \% g
9 O" ?' f4 p: g+ [3 r (setq p1 (polar p1 (angle p1 p2) dis)): W+ l2 m6 c3 K
(cua1 p1 p2) 0 Y4 z+ N* C1 x, ~/ P" _
" l: x o7 E. h G3 T
(setq ang (+ ang pi))
4 P9 I$ P* V0 `' n# |# r4 F! `6 T (setq p2 (polar p1 ang dis))
& |/ N; _: P r; _; (setq side (polar p1 () dis))
% Q, F! E0 i2 @, f- ~2 g (cua1 p1 p2)
3 p0 c+ c& G# W! w9 Q$ V+ N. j0 N4 B6 `0 D- u/ S
(setvar "OSMODE" old)
& A9 U8 E* M' d3 g (princ)8 h# q6 j9 p. v
)2 m! j5 h6 I9 l! W
3 Q m5 x; T5 Z4 w9 n7 w( [;=====================================================================
/ A! l' p$ B8 L4 k4 w;"Glue" text strings. All adopt first's properties.
9 E( F4 t8 W4 A$ Q4 K; Author:. v' R# Z" z# q5 z
; Henry C. Francis
% S3 q4 j, y/ W9 J' T: q; 425 N. Ashe St.
3 S+ p! P4 o6 z7 g5 F+ i- t; k; Southern Pines, NC 28387; ~- w1 h# C& W; o- h. J
; http://www.pinehurst.net/~pfrancis# C9 x- [" r1 n3 x4 F3 t' ]3 P+ h
; e-mail hfrancis@pinehurst.net
7 b+ n, H8 @" r4 \4 p$ \; All rights reserved.& {6 Q5 u/ y( j& v; L; ~' k
(defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)( z9 e' c% q2 B! g5 N H0 L& t
(while
l4 `+ q/ V. Z, n5 G (not
. R& ^9 p+ z( [) K9 S (and
' Q- [4 W" Y0 k% z. Q9 |4 |2 @' ? (setq ename1 (car(entsel "\nSelect first text string to join: ")))' D+ n6 E1 f0 I: h9 o
(setq ent1 (entget ename1))* J8 G, A9 y" B
(eq(cdr(assoc 0 ent1))"TEXT")
9 _5 X6 B# k @$ z# `( h );and5 t* p. f; O6 i7 o% \
);not% i% a/ k, s# m T
);while
$ I* ?0 v6 `0 g" T" _$ o(setq old1 (cdr(assoc 1 ent1)))7 b8 L$ ` S; K
(while. ~6 R6 ]$ _" i
(not) ` M$ X9 U1 G" j
(and
1 J6 d& y, Z" R1 O1 a1 U (setq ename2 (car(entsel "\nSelect second text string to join: ")))
$ ^, Z, Z8 N8 M- I$ m: p0 { (setq ent2 (entget ename2))
9 {" k9 H7 Y; k7 W0 t (eq(cdr(assoc 0 ent2))"TEXT")+ z" C3 V' V2 Y
(not(eq ename1 ename2))" q" `0 Y" o" F7 ?2 u% Q
);and0 t% G! Y, ^! U+ B5 H5 ?5 [
);not
. a& j3 ~+ D) j& N8 [, \/ A* v);while/ f# r# ]1 [ J9 r% t
(setq old2 (cdr(assoc 1 ent2)))2 ~8 w; c. c" B4 J7 J; e4 q8 H
(setq new1 (strcat old1 " " old2)" I% M7 I& G0 L5 z
ent1- E+ k" ?7 p% t1 U# i$ u
(subst (cons 1 new1)9 { d; `9 J: U7 T8 p% w
(assoc 1 ent1)
9 I5 V" c1 P+ g$ q+ o. s0 f% G ent1)
$ r5 Z4 |- j' B. N! ]7 J);setq8 C2 P# c6 l" A! [2 W, F d K
(entmod ent1)! z% m& j. c! N9 z3 `# `
(entdel ename2)6 @: L; B* }9 t4 u
(princ)
; ^* n. z7 ]9 V0 r* Y$ k% R. T);defun
}: X+ A1 h5 R$ ^6 B
! S% t$ s5 Q- u: q8 `+ h;=====================================================================; u. ]5 v2 H$ P0 c% x- X2 @4 U
- N; W, g3 w9 b" }) E(defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)% n+ X8 }8 q% K* [" Q) z
( \9 c( L# ^. P
(defun nterr (s): s8 u; C# G3 E
(command "_.UCS" "" "_.UNDO" "E")
9 E, f1 s" m Z3 \* z+ t/ {7 b& @ (setvar "cmdecho" 1)
) f$ [6 a4 m- A1 @/ F; H (setvar "blipmode" 0)0 @ Q7 d6 x3 _
(setq *error* olderr)
; T% ~% @" }: u$ x* ~ (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil * y8 a6 R& s/ r0 k t) J
nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)# o) f. h5 q7 X3 r. A
(princ)) i) V+ K D. o2 E* ^& ]3 H( ?/ v1 O
)
# H8 U, g0 Z! Y6 R4 i4 g5 c/ C$ O! U( H/ Y5 X) l+ R6 t
(defun tim_in (dt / p01 p02 ktra)2 b+ S' y1 T- s) V6 l; _5 P a! q
(setq p01 (cdr (assoc 10 (entget dt))))
2 |9 ?+ x4 @/ Z3 O# | (setq p02 (cdr (assoc 11 (entget dt))))8 l1 K( b5 D |4 y9 f
(setq ktra T)
6 x; C5 `9 W9 @6 h# K (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
+ O3 {; H* ^5 z9 s (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))8 `& b# H% n( s! d4 Q& g
(setq ktra nil)
7 w# f) Y: W2 `& r2 x* v )
I, K, M; Z' f) o/ n (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
8 P1 @4 l, v* L (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
- W$ Q% Q; x) t" n: q7 }& v (setq ktra nil)
) a1 b, S' ^/ s. } )/ x# N5 a* ^) ?. y# _
ktra( D7 s9 v: g6 ]1 m3 s
): T6 y1 D% ?% n4 D0 Q( H6 _6 R
+ ~/ S1 k% f# ]3 d: W/ L# b; w (defun timdt (dt1 dt2 / p01 p02)9 a% L( i- d" J6 o; }& H
(setq p01 (cdr (assoc 10 (entget dt2))))
* \- R2 S [0 m (setq p02 (cdr (assoc 11 (entget dt2))))
9 N! m& l7 y1 B8 g" ]+ D* Z (setvar "ucsicon" 0)
0 x7 F4 W S$ m8 Y+ p ?- D (command "_.UCS" "E" dt1)2 c _& w q) O4 f+ [9 r! U( H2 Q7 k* a
(setq p01 (trans p01 0 1))8 l5 v- s& l9 Q6 r
(setq p02 (trans p02 0 1)). _% X& x6 V j
(command "_.UCS" "")
' z, S% q, K3 B' y- o. P( M$ A7 C" ] (setvar "ucsicon" 1)9 Y0 q3 y: g( w L
(if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
8 \: y4 X! v6 K T
) k1 ?& O' e7 d: @5 q, { nil1 s1 n- l/ ^+ A4 D
)
; T" H( Z' {3 F- G; m ) ~$ \6 X9 a0 q) z
5 B8 [5 ^9 _$ z: u" i- ^1 {; J
(defun tim_out (dt / p01 p02 kt)* `; d4 @) {& A+ E* L
(setq p01 (cdr (assoc 10 (entget dt))))6 |" P$ Z' a/ K9 F- b
(setq p02 (cdr (assoc 11 (entget dt))))5 e( r* _' Y, z1 v/ h" L# ]# o' A! F
(if (and (> (car p01) (car g1)) (< (car p01) (car g2))
P( x8 Y, k. E2 J5 J( ^ (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
2 |' z( m6 c2 ]0 W# ^, u (setq kt p02)+ f( x8 F+ e) n7 n' H4 R
)
$ i1 d( n- M8 S1 ^2 g& g4 P' Z) T (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
% ?* _5 [0 c* F* P& D3 S/ I4 s4 B (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
" J) c5 I# G$ ?7 U& H& c0 f (setq kt p01)
8 J2 w+ s5 h' e; ~. l: _ )
* c' |& K# H! i kt
1 R8 H/ l$ L0 i )
9 v2 a& I( e; g0 b# d8 @1 d% M g0 F- n3 S; r4 x1 e! \: _
(setvar "cmdecho" 0)
9 V; a* e5 W; G& W n# u1 F& H6 P (setq olderr *error* *error* nterr)
9 |% K7 b: m! O& u0 n6 ~ (command "_.UNDO" "G" "_.UCS" "")
5 ` g4 ]5 J: k (while (null ss1)/ _: i: g! S z# F5 M
(princ "\nChon tuong muon noi...")! }/ U _& K c
(initget 1)6 T _! }2 c4 L, l1 t5 h
(setq g1 (getpoint "\n>Goc thu nhat:"))
: m3 X3 {; ?. g1 _; k* U/ E" s (initget (+ 1 32))
* W+ D4 `2 b& Z2 J6 B3 [/ \! B (setq g2 (getcorner g1 "\n>Goc thu hai:"))
6 J0 @7 u3 q& | (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
6 i+ G2 H4 o- G- d7 x: ` (if (null ss1) (princ "\nKhong tim thay doi tuong!"))1 H) S3 Q0 _0 m9 X
)
: _1 @5 S1 `8 ?
# A% g# D: ]' y8 Z% @4 A, D) f, [/ _# @ (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))0 u" u& O4 F. T3 N6 Z i
g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
, D; o4 s6 w1 T& ? g1 temp)
1 N- P& U! g, M4 o0 y/ [ (setq ss1 (ssget "w" g1 g2))) _& ?5 v# p9 s$ Q8 g
(if ss1 (command "_.ERASE" ss1 ""))3 |1 f% ]& z. B: q
(setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
" W2 u1 N% F# ]+ G8 z2 q5 H3 ]. B6 A% H* u# i( k
(setvar "blipmode" 0)0 v0 c. q1 {1 j5 H( p, r9 H4 M
(setq i 0 l (sslength ss1))
) t5 } I: g# A% U( a% V1 M (while (< i l)- w4 C7 Q2 p% F: ~& Y6 x- h* o
(if (tim_in (ssname ss1 i))
1 \+ e" @! w/ p# L; ~" O! C |, P! } (progn ( G1 x% h, y0 c! X4 x4 m
(ssdel (ssname ss1 i) ss1)
f8 Y7 [4 t' h0 Y (setq i 0 l (1- l))
/ @# [1 E, c- } )
+ x3 E2 _; @# b% g (setq i (1+ i))! o& U; i y% G
)
7 a, b0 }; x+ F3 |* U )
8 m, K4 r7 p9 F% S/ q (setq l (sslength ss1))$ d+ e" B' z6 _$ f
(while (>= l 2)
( G% j. k) X; i" ]0 ]1 C (setq e1 (ssname ss1 0))
! m, K' J+ g% f (ssdel e1 ss1)
/ z3 N q* S2 H2 F (setq e2 nil i 0 l (sslength ss1))
/ \* U- d: ~8 H) ]/ S8 n (while (< i l) ! {3 d" \0 T! U9 M
(if (timdt e1 (ssname ss1 i))- k3 d, `' R( H
(progn5 k/ k! @% R/ D& \
(setq e2 (ssname ss1 i))
6 v4 k* w1 }9 P# f! ^ (setq dd (tim_out e1))) F; j5 v1 _' O% j1 n
(setq dc (tim_out e2))
+ |7 Z+ K& v- E; G( P/ c# C )
y2 _% i8 R: e* R% @ )
1 [4 ^4 o' e; O! d6 h" X- A% L (setq i (1+ i))8 { q: ]5 ]) z s9 r) W$ l6 r
)/ A9 u: |7 F; W! K4 ^6 J5 Y
(if e2 (progn
! X7 F8 F* ~! D3 g (ssdel e2 ss1) 6 X7 y7 D( u. t1 u$ M( Q2 D
(command "_.ERASE" e2 "")! t, }. g0 u ^. q& ^. ]! W
(setq temp (entget e1))% x9 C0 U1 u4 I$ w; d" y2 D
(setq old (assoc 10 temp))* `' l L1 x7 Y. ?) B& y# P- z" T
(setq new (cons 10 dd))
E( i0 N& z/ ]5 N/ T$ N. w7 V' l (setq temp (subst new old temp))
7 ~: O) g% \+ w0 R) F (entmod temp)& I; P t7 P6 E3 }1 x
(setq temp (entget e1))4 G' y) }; |1 o
(setq old (assoc 11 temp)). R9 ?! ^$ I1 v3 v3 Y- r
(setq new (cons 11 dc))
; d" [: P$ r2 [" ^9 n% m (setq temp (subst new old temp))" t, \: x0 R7 I6 y( z0 H& A, s6 ]5 y8 }
(entmod temp)
6 c x, a- Q" P1 H1 }7 ] (redraw e1)
. l! N& a- ?! u& }1 d. \ (setq l (sslength ss1))
7 s7 L# `8 @; a) n( _) Z, _ )7 ~: S P. @. E) [% r- O4 _0 z
), l" @$ W5 r1 h/ K/ E
)2 } a8 n2 G1 f/ N
, f9 L1 T' ^8 _ (command "_.UCS" "" "_.UNDO" "E")2 E; K( E8 d) z. R! {4 C
(setvar "cmdecho" 1)
5 p" V$ c+ p: H# ^ _2 l1 k$ B4 F (setvar "blipmode" 0), E+ ~+ G9 `6 _+ _% `# B
(setq *error* olderr)
: K% z2 A8 z6 Y7 [1 L/ H( Y) D (princ)1 e/ h% `; L; B& F
)& e6 C8 \( @% A3 k
;*********************************************************************6 V7 G3 V/ [8 m1 N# y
(defun ketthuc ()
" S9 r/ q; b* D4 ~( r (setvar "cmdecho" luuecho)% V: \! S! Z' f5 y/ G# @
(setq *error* luu: {) z8 H# f' B
luu nil ) ]/ q+ q4 T4 u; B
luuecho nil; a2 E2 }9 ~ ]# s8 ^3 ?' @" @2 A
);setq
# X1 f3 [2 A5 r, J$ `4 P (princ)
+ u+ o- j+ o$ B4 G, i0 X: _)
- S/ t9 t; O0 [0 I" d$ K;*********************************************************************
8 N' [+ @, ^( M; A7 O(defun modau ()% @6 b; r! ~% C( e# W
(setq luu *error
& m# Q, P/ r7 C( T5 J/ i" Q luuecho (getvar "cmdecho") F% @( ^* u! w7 a4 y$ f" M J0 C
*error (ketthuc)5 [ g1 a3 P2 A$ |8 d
)
8 [7 E _0 q r1 N5 h)
2 E# u* Y8 @+ J4 _9 i;*********************************************************************
: }% L O" ]( D# |(defun xulytext (text / kytu ma sokt luusokt lui )
( q- `6 N* _% w$ l6 R: J(setq kytu (substr text (strlen text))
/ A$ P/ O7 {/ _1 m7 R2 { ma (ascii kytu). z( X9 F" a+ N5 s% j) q0 o
sokt (read kytu)
* n+ R$ k6 a: U$ L) {3 c$ c2 Z lui 1: J7 a r6 {- X; ?
)+ v# \; W: m1 l1 N8 p3 r
(if (numberp sokt)$ m! i" n0 Z# {' q: A
(progn& p0 R% W; u1 v0 p
(setq luusokt (1+ sokt))
! C' |/ N+ |7 e$ Z/ `0 q: n (if (and (numberp sokt) 7 ~# T2 @4 N, ^# N/ t
(> (strlen text) 1)
( E8 Y( T5 X3 Z ) % k, @3 y0 Q$ m3 ?7 \1 i% R2 @
(progn" O. b( `; ~$ u
(setq kytu (substr text (1- (strlen text)))
7 }$ R& ^- O- v9 ^+ y$ i6 q9 r sokt (read kytu) ( x& N+ o% S1 f* U0 W9 L [
)
0 @; O! j1 X7 D: s* j1 ^ (if (numberp sokt)
. y) m& Z' q' Y (setq luusokt (1+ sokt)
8 C2 c+ b' Y- x, r# r! X; \ lui 2& s; `. O2 _! Y& w( b t
" j) L4 ]* ]% ~1 d' n! v; f )
" Z% a. k$ M. l O& e )3 z5 }' Y& K; A0 J
);progn % @, G2 s: Q O) Q* C3 O
)
- z0 U7 G& }) F8 A$ E* d$ Q (if (= luusokt 100) (setq luusokt 0))
/ E3 G/ }9 I9 `" I (setq kytu (rtos luusokt 2 0)
1 V1 v* f4 U; A5 d% Y; P4 D 5 V% O8 ~4 d( l3 N8 y* Z5 |
text (strcat (substr text 1 (- (strlen text) lui)) kytu)
' a+ q5 P( ~# L2 z0 R, f* S )' |6 x$ I' W5 y9 ~# [4 u
);progn
+ _- [* M- L8 S4 v, }: v (if (or (= kytu "z")
0 q& X2 G" E7 n% ~ (= kytu "Z")
/ P* m% z' e4 [$ M ), I. ?9 ~" z: P& _5 f2 p5 H5 |
(setq text (strcat text "0")
+ u! [9 K( b; d+ ?5 I w textxl "0"
( u6 w$ Y! A' n2 O; `9 Y# F ): O: r1 ]# M7 \+ j
(setq ma (1+ ma)
& J7 h! x5 E( M+ `6 _( P8 F$ T text (strcat (substr text 1 (1- (strlen text))) (chr ma))8 V0 v* W9 b" H2 ^7 [
)' m- I" `; F4 [
);if
$ D$ ] t# D1 _9 o* R2 ~);if
B' Q/ }" H \, j1 b3 U$ P8 V)
3 P f1 l! }8 ]; I* P7 z; z% |;*********************************************************************
8 R+ y: m6 ] R(defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)9 u. `' w8 Y& f; [+ P/ w; D
;Neu doi tuong la text thi tiep tuc
0 e9 p) W, M' E(setq doituong (entget tendoituong)) N( F# @7 d3 f7 o3 y1 F/ E
kieu (cdr (assoc 0 doituong))& |5 P) Q+ m* U' {0 g' _% }
canle (cdr (assoc 72 doituong)) y( \, ~; d! n
)
- Y) E, q! w2 m8 z(if (or (= kieu "TEXT")
: Z& i R" X* h" m (= kieu "MTEXT") * E" F4 c' o: _, J
) $ k& ~( J4 B: Q" g2 ]- q) [
(progn
5 U/ J2 a) n' @/ A (setq textxl (xulytext textxl)* N5 e- g s2 r$ {
text (cons 1 textxl)
/ q! [9 K; y7 u$ F0 f# E3 f- M vitri10 (cdr (assoc 10 doituong))* R) s# J. D6 E+ y" O0 {
vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
V+ `4 l! u& M0 J/ M7 \, r vitri10 (cons 10 vitri10)
" g" C- X1 E$ a' H A" @ vitri11 (cdr (assoc 11 doituong))! z# X7 N+ u, {. l; Z) |4 j
vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))- t- F) t$ D8 p* T
vitri11 (cons 11 vitri11)
! Z' k; b) B6 d1 C% g dem 0
) c+ T; V5 _; |' A" ] dsach nil1 V7 j3 D' R o7 }) P( A' A
)
1 x# G* J# Q& H# x7 U7 X (foreach tam doituong, Z7 s$ v! v8 u. V& o$ c
(cond
8 y4 ?' V3 s7 L1 c6 r ((= (car tam) 1) (setq dsach (append dsach (list text))))8 s5 |% Z' S7 _+ V
((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
) p* S* I2 U# E& e# b5 U ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
. ]; Q# X3 a6 s0 _5 I ((setq dsach (append dsach (list tam))))
, t) ^# Z$ x/ K) T" j! U )
9 j3 |) K# Q% A5 J% S! y- o5 `% [ )! N) W |* k- }& z$ p$ e5 k5 X9 [
(entmake dsach)
* \- f6 C9 S! @- y" B! k );progn/ i" o _2 m2 R
);if
" q2 o- }! _: a# R0 b* f( L. ^ );
3 }+ x' D8 K2 U: i" R* x% a;*********************************************************************/ p' D% P3 W$ {6 h% @- u
;sao doi tuong cu sang vi tri moi0 V" l* W8 b" a+ @4 K5 L5 W: `8 T
6 j$ q) Y8 @" A6 z
(defun copy_dt (tendoituong )
3 X- U. `, I/ y2 Y(command "copy" tendoituong "" goc toi )) B- O9 G# D0 `7 G' c+ p* ?
);defun% E0 M- X3 ^. G5 K1 \
, Q5 N$ p& r8 p! d+ }7 Z
;*********************************************************************+ m& O4 N5 n! i; W7 k2 J) ` e
4 }. Z; f' k# F! y% n(defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
0 [' E: C& q& s/ x( W; Khoi dau cua chuong trinh
- t W8 A( K9 t+ b1 i(princ "\nCopy Inteligent...\n")
% t' r1 a+ `) ~0 S7 w' n8 c* r+ j" M(setq luuecho (getvar "cmdecho")
2 u) M) r' d2 D1 b& v3 v, r# K luu *error*$ C1 c( r- q. E* y s5 x) {
*error* ketthuc) |7 L) L1 u6 H, s0 H4 g* \
cumdt (ssget)
2 x! n3 H! G; I3 s# l& m dodai (sslength cumdt)( b: T) K& |; F. o3 {
goc (getpoint "\nSelect base point:")
2 o# h; H5 V2 p$ [ l; d thoat nil
: r- J9 a/ x% M% ^2 J" w dem 0/ y) J5 G" d9 n4 z% h" i/ g
textxl nil) ~6 d5 a% H0 [- ~# Y7 s. P, _
);
6 \7 `/ {3 b4 G% W& w(setvar "cmdecho" 0)1 S5 m7 R9 e7 C
; Loc ra duoc ong text de xu ly
1 j& |2 D, S" T* ?# G- W(while (and (= thoat nil)7 t- z/ w3 a2 D
(< dem dodai)
8 o7 S& A' d* s" R: b/ `- _ )
5 o) z1 s% ^' D# F- u5 `. a' Q (setq ten (ssname cumdt dem)5 {# h; D+ |' R5 F: H
dem (1+ dem)! K9 ]. O. q# r7 X
doituong (entget ten)
- O9 p O4 W# D4 j kieu (cdr (assoc 0 doituong))
/ H. m0 u, R' s )+ V+ L: i+ L1 q- l7 s
) ]. V7 q8 f3 K' v& w$ n2 e
(if (or (= kieu "TEXT")
% [$ f( W8 U% g* Q' G' u (= kieu "MTEXT")
( [2 ^+ x8 Z* u; s7 h" ~ )
! c* w1 a4 c3 F5 E; W9 K. z8 s (setq thoat T
5 Z2 V/ n8 w& Q3 w& ~: B textxl (cdr (assoc 1 doituong))
) H, R$ T. b/ [* }3 n' e )# N C9 u+ u! U" [, E* @
)
' X1 E+ I+ m9 b5 E6 ^: G);
& R2 E0 B' E0 e7 |(while T
9 Z3 q8 i* T1 z' h: [(setq toi (getpoint "\nSelect next point: " goc); V8 Q8 d6 K1 K) F! M
vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))7 \1 b: O0 z/ e2 ~8 {$ A/ f5 _) U0 @
dem 0
9 W# q8 n& C s+ k): q* P+ }% r3 n4 i& w, I
(while (< dem dodai)
% s8 R2 j" k E3 e, { (setq ten (ssname cumdt dem) a5 y) w6 ]# N/ E* k. s9 H
dem (1+ dem)
4 e: O! Q, O( q5 U1 j doituong (entget ten)
. L3 m, u: |) W1 P" Z- D& U+ l4 K kieu (cdr (assoc 0 doituong))
/ i$ y# _1 o- i, s ). F7 W, Z; ?$ [ W3 U6 L; O8 `
5 c6 L5 G$ z/ J! g% D. A
(if (or (= kieu "TEXT")
* }- Z! r' p) L/ T. @, a8 p (= kieu "MTEXT") ; f5 W+ r% L- f* E* K& [) M
)
1 A# _: A. ]+ K: ^& { (doitext ten); M4 Y4 Q; [) z6 f# b
(copy_dt ten)
! q+ B- ~, Q+ g; S* p2 `" m$ {- Q k6 L) V
);if0 P+ J+ p# m* f4 A
)- t7 i' R0 t" _. S
);while
# N2 t/ N: Z( j; B5 x& n' C! D(ketthuc)
' Q; \3 z! O8 U; @);defun2 `0 O0 I3 m* |+ S# T
(princ "Type \"DG\" to start")* {, V a3 N& {# }( A5 a4 G
;Note: bien toan cuc: textxl vitrilech: z# w# j- K$ V
8 L9 X9 J, D v/ g% p" j% g! Q5 S;=====================================================================) ^$ [: K6 g7 \
;;; PLJOINFUZZ.LSP* h5 H) ~1 e: S
;;; Joins lines, arcs and polylines using a fuzz distance
/ y6 K. e v6 |( Z" Q0 J6 R;;; If only one object is selected it tries to join to all objects that are possible
r- |0 a& [" W;;; By Jimmy Bergmark/ t8 r( _, T+ l6 [( [, n5 m
;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved) y% ~2 v) j0 j u
;;; Website: www.jtbworld.com1 i( E8 Y1 F/ r$ m& E$ p, O3 V
;;; E-mail: info@jtbworld.com
4 E: \8 R1 z9 L# y1 f;;; Tested on AutoCAD 2002,2004 and 20050 {, _: l" e* A, e4 L- s
;;; Latest revision made 2004-11-11
2 _9 ]2 h) E; X6 L; g;;; Minor code cosmetic change made 2004-11-13
/ v! K! `* y4 C# G! E; f;;; Bug corrected 2004-12-23
B: }$ K7 F, |/ F* A1 z& K8 G8 j* S* x. @: E
(defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
6 M& w# V+ Q0 `& \(defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)0 v9 ~ N; d2 h* e2 Z) C) p) @" l) x+ ?; a
(setq oldcmdecho (getvar "cmdecho"))
. q* o7 m. z4 z3 \ W4 S9 b; U (setq oldpeditaccept (getvar "PEDITACCEPT"))7 g( v A$ k% R, Y% k7 j7 L
(setvar "cmdecho" 0)
0 O+ p' M6 {( p: I# G (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
8 y c# a3 E4 f8 {' \% \! X4 W (if A2k4 (setvar "PEDITACCEPT" 0))
5 D* |3 y4 {: Q* O (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
' H+ D8 u% f/ h9 ~ (princ "\nSelect object to join: ")
8 b. n& o+ Y6 @6 A6 [/ @ (setq ss1 (ssget okObjects))
! I2 Z; i( s$ U/ E) N9 C' G (setq fuzz (getdist "\nFuzz distance <0>: "))
! x* U" M1 Z, w% n6 D (if (= fuzz nil) (setq fuzz 0))
4 T1 x$ J. c$ W/ d (if (/= ss1 nil)+ A Q5 v8 u! z' ?
(progn) h* S) `) ]% V4 i# [$ b
(setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
' N. G5 h; o! k9 ^5 q: D4 N (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects))); C8 T; w5 n- L9 e
(if (member objType '("LINE" "ARC"))
. D+ q4 k! ]* F8 m6 K- [: {; Q* G+ n (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")- D% h, C' j1 t! N" _
(command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
, p$ L: Y* m& x( r, p6 u# V* w4 R ): Y; N: n( |* e+ y8 R' G
)
8 [+ s& \) m w, M )
0 Q3 l4 B: x+ b* Y* i. T (setvar "cmdecho" oldcmdecho)
! z* u& z0 d! |- R! k (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
: m1 r! j3 r! [ (princ)
4 r& J3 t" d* S* @( W9 M3 C# w6 f)2 ]: F. V j7 h
$ E0 d4 @/ _5 a% ]- Q
;===========================VE CAO TRINH===========================- V7 X, \4 E8 H# I3 [" X
* i6 a% s! Q3 z+ b7 e! W* k( D# N(DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
I, i8 F. S8 |: ^6 f+ Z* ]! j CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
- s( w/ ~' R( W(SETQ OLDERR *error** i. [* I$ L9 \& V8 {
*error* loisb)
" b' `' ^7 N# {2 f, k(command "layer" "m" "dim" "c" "" """")
( J- p9 Z# V; P% |3 {( @(SETQ CMD (GETVAR "CMDECHO"))4 t& {1 f- _1 T* l& x
(SETQ NBC (GETVAR "CLAYER"))! n$ P8 t5 m2 u/ N
(SETQ OSM (GETVAR "OSMODE"))! B7 T# {6 s. @0 Y% u' h* D7 e
(SETVAR "CMDECHO" 0)3 e' r; Z$ B/ L2 K$ o* S* ]
(SETQ PT1 (GETPOINT "\nDiem cao trinh:"))7 p' D$ ]2 V: e2 h
(SETQ TX (GETSTRING "\nCao trinh:"))# @4 j1 t1 Z8 y% [% c) l1 |
(SETQ FCH (SUBSTR TX 1 1))
' f) ^9 x8 }4 m6 I8 i(IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1))))) k h: X9 H! q
(SETQ CRST (GETVAR "TEXTSTYLE"))* B+ I0 [/ h" B; e+ n7 g
(SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))& w% t k' { A$ V# j. }
(SETQ TSIZE (GETVAR "TEXTSIZE"))
; u5 C' K/ T: G- I R! M+ Q(SETQ STR (RTOS TSIZE 2))7 L* s. p0 T7 w! X$ P$ z4 S' P
(SETQ PRMT (STRCAT "\nText height <" STR ">:"))
+ S" r2 n) T# Y) @(IF (= RSIZE 0)0 H8 [( g8 ^3 S
(PROGN
6 |* j# U' _( i J h" n% o; Y (INITGET 4)
. C* ?: v! X7 `6 L/ _5 A (SETQ TSIZE (GETREAL PRMT))
/ S1 F2 }, X# t# }/ H (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
% U$ W4 A- l: A0 d# ^ F$ n; a (SETVAR "TEXTSIZE" TSIZE))7 y. l( F& s7 A) Q' c7 W* g7 ^2 T
)) [3 m1 V; }+ J6 Q7 @, k
)
6 O! y# S4 G$ Q, m(PRINC)& p. m5 S& P: E0 J
(SETQ TL (/ (GETVAR "TEXTSIZE") 2))
2 Y" ?2 v& D) f& x+ \0 W(SETVAR "OSMODE" 0)+ \9 M: t: Y4 R7 ^% a
(SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
/ l! y* n/ ~( c* A) _$ l* P(SETQ NPI (/ PI 2))
6 T9 g. w9 l7 F( o$ x(SETQ PT4 (POLAR PT1 NPI (* 1 TL)))6 S& u$ a; R. o9 G9 H% O) V% [# V% k
(SETQ PT2 (POLAR PT4 PI (* 2 TL)))* h8 ?5 |: H5 \. J
(SETQ PT3 (POLAR PT4 0 (* 2 TL)))7 Q3 B2 b( w/ i/ G
(SETQ PT5 (POLAR PT4 NPI (* 5 TL)))0 C, D R) w. v8 Z4 `7 E5 P
(SETQ PT6 (POLAR PT2 NPI TL))) c& `8 I y/ M4 V5 r: m
(SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
+ y1 \. H( M) g(SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
# _: Y* x8 m# R(SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))$ L' ~; K' v; c/ c F4 H! Z) i. R
(SETQ PT9 (POLAR PT1 pi (* 2 TL)))) {* w, |$ r1 `" j$ p6 Z
(SETQ PT10 (POLAR PT1 0 (* 2 TL)))- Y, j; m( ]4 L* K2 J
(COMMAND "COLOR" "7" "")
9 T3 I% X/ E' j(COMMAND "STYLE" "COTES" "tcvn3italic,vnh.shx" "" "1" "0" "n" "n" "n")( k. t6 n2 F9 x4 v0 X3 Y$ O5 v
(IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
- d# N+ q( l) r(COMMAND "COLOR" "BYLAYER" "")
- [% |" u) v' _4 J$ s(COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
3 a* ]# W' N- d. B, H6 n(COMMAND "COLOR" "BYLAYER" "")3 ^( P2 c2 ^/ o- o, w0 e, H" N/ d p
(COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")& @: i4 b1 q0 e
(SETVAR "CLAYER" "0") F* B/ ?; c) j. D( {
(command "ddedit" pause)3 R n8 @, y& L/ A% o
(COMMAND "COLOR" "BYLAYER" "")0 R5 q2 j& j. J' l0 q0 H x
(SETVAR "CMDECHO" CMD)9 A9 S0 P, x* Q
(SETVAR "CLAYER" NBC)# H6 d5 ~; X1 L+ ^2 ?1 X
(SETVAR "OSMODE" OSM). X- _. G! P3 U7 r2 D K6 D
(PRINC)
4 \/ W1 m' h* R1 j+ y7 t)
, \ I/ f$ `- D2 r* L
- h5 j8 m! K$ L. H# v: @& Y) n7 j;;; =========================== VE NET CAT CHEO (GC) =============================1 T4 j$ G) B2 V2 S1 b" _* Q, z$ _
. [- W0 F. y2 [, N8 R5 a3 T0 x
(Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
3 t1 n6 B2 P. N# N" S# t (setq x (getvar "osmode")): Z6 Z& v' L9 ?6 G
(setq p1 (getpoint "First point : ")% s3 M6 {: F, o: U% _( [+ `1 }
p2 (getpoint p1 "Second point : "))" v; R& T3 b/ E* F
(setq l (distance p1 p2))
+ ]; I4 \5 M8 ]( l# w" Q' J+ d (setq p11 (polar p1 (angle p2 p1) (/ l 5))5 T' t, S* u I5 l" d1 S
p12 (polar p2 (angle p1 p2) (/ l 5)))
! ?/ `( y3 h9 k o' Q# ] (setq ang (angle p1 p2))3 U- X9 z3 }% Y: w# b' f
(setq p3 (polar p1 ang (/ l 2.5)). d c/ K& ]# j% b7 ~! `: b
p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
% h( k# d- G$ s; u# ~5 c% s. P p5 (polar p3 ang (/ l 5))
& r% g) N4 h( b% h. ^, M8 i2 k( j( | p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))+ S' W( \) Y8 T1 G+ u
(setvar "osmode" 0)
0 n w; _- d+ Q# N+ k( y6 l (command "pline" p11 p3 p4 p6 p5 p12 "")4 I, h, d V9 p# T* u' g8 S" r& u
(setvar "osmode" x)( h* d/ f o W* x+ a' C6 `
)
4 z: V0 ~# ^& c0 Q& q+ i;----------------------------------------------------------------------------------& F" _4 d. g3 g( q
(Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
6 {9 }) d/ s Y$ D+ u. P pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))4 y) v4 f3 Y8 Z; N
(setq ps1 (getpoint "\Chon diem thu nhat: "))6 H4 T. `+ w1 D& p
(setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))4 f4 ^" @' R3 I; ?& t
(setq sb 50.0 sh 200.0 se 20.0)
* I T" s1 m9 g$ j$ B" ^& o+ x (setq ang (angle ps1 ps2))' c' v/ Y* g" [) K$ K: V% k4 x2 |
(setq pf1 (polar ps1 ang (- 0.0 se)))
h# K/ Z% f. Y# x0 z (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
! v: E; ]' u( S' U* L* J% K (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))( X5 M/ m. |" P G2 j
(setq pf5 (polar pf2 ang sb))! V8 y+ W3 ?8 j7 ~
(setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
1 O0 }+ Z0 b3 v# `8 m (setq pf6 (polar ps2 ang se))
0 {4 A. x3 L' D. T (setvar "OSMODE" 0)" W" @0 ]( j' U9 _5 f! @. s+ U) f
(setvar "BLIPMODE" 0): @0 z1 t6 j0 d! r) U/ P
(command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
@3 Q# L" `$ h. Y (setvar "OSMODE" 703)9 i5 |% Q) a6 Y8 i$ r$ B
(princ) )
, h! d8 c' d6 w* z( a/ |* Q8 {;----------------------------------------------------------------------------------* w2 l. \$ q# K& h7 \
(Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
6 H# f- ]; Y( M6 R! @9 {% s# \; w pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))) m! p$ u/ M4 ^1 P2 ^$ W# N
(setq ps1 (getpoint "\Chon diem thu nhat: "))# p2 q" t2 N; w3 u6 j: W6 g: v
(setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))3 ?! p0 U& L! W3 _' ?5 @, G
(setq sb 100.0 sh 150.0 se 20.0)2 e$ x# U% ^1 Z7 s9 |7 e! p
(setq ang (angle ps1 ps2))
, k7 @, O5 E* s } E& E: ` (setq pf1 (polar ps1 ang (- 0.0 se)))
+ E& O, b( k$ L3 ^ (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))5 r& f) k. i w1 y" Y7 B; {
(setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
% d& s0 p& M Y (setq pf5 (polar pf2 ang sb))
* k, V. @% P: b" _2 Q) r7 U! j (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))) |: Y5 w, x) ^6 X6 u$ y: L4 R% X8 T
(setq pf6 (polar ps2 ang se)). A7 D7 L6 l. @% y6 _: @* _4 A
(setvar "OSMODE" 0)
2 O! [4 o6 }' b* ]7 x# w (setvar "BLIPMODE" 0)! r1 [& V4 u1 D1 d2 F$ y- ^' B. Y6 V
(command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
0 P, [/ `2 t, T) _1 l4 c+ O (setvar "OSMODE" 703)
; \. ~1 |# c0 V0 c. i (princ) )
6 T, I7 C7 R7 C4 |- N) f) U;----------------------------------------------------------------------------------
. N0 Z7 C9 g2 ?7 Z* l4 N/ E9 c5 H4 A( z(Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
, U# k. D, m6 f1 x$ v pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
7 W4 l a( t7 c9 m" j/ S (setq ps1 (getpoint "\Chon diem thu nhat: "))6 }" ~: J6 r$ I5 ]9 P2 w+ o
(setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
+ s Q4 h: b5 L (setq sb 100.0 sh 250.0 se 20.0)
' N8 N' w2 \. T" v (setq ang (angle ps1 ps2))* X1 [( q x. D( x: J
(setq pf1 (polar ps1 ang (- 0.0 se)))
! b# Q) o9 P! _8 n9 ? (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
( P8 Q6 \: S8 _" g& I- o$ L, p (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))6 O, e$ h" J* W+ v% R% }8 L1 D* q
(setq pf5 (polar pf2 ang sb))' m3 R" @2 g3 u! M+ F, s4 b
(setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
) }/ l, J" I$ x% G, V/ y0 _% Q6 w (setq pf6 (polar ps2 ang se))! O. T7 ?5 j$ p" w
(setvar "OSMODE" 0)
8 q, y1 p$ t3 j: O5 |/ a! s9 k (setvar "BLIPMODE" 0)! ~. f l6 ?5 a4 r! r0 d
(command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
; F9 ~/ M$ O y (setvar "OSMODE" 703)
9 w- r. R M/ l, f (princ) )3 d7 ]. F/ M4 g* I
- O( k4 S `8 a4 }* w* _
;==================================================================================" j/ Q/ Y" `3 n3 W# [: q: R9 b" y
(defun c:ang (/ ent pt1 pt2 ang)& r4 o1 y0 Q- N$ s; P
(setq cmd (getvar "cmdecho"))
2 N$ V0 X. p- B* m (setvar "cmdecho" 1)0 k' x; H6 ]3 x1 Y
(prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
T6 D' K7 e( k; s% O (setq ent (entsel "\nChon duong thang:"))
+ G3 E' {- }: `6 b. | (if ent
7 |3 C! I/ Y7 {# o, j. v (progn
( O& u8 F. @2 y9 \, V6 ^2 ^! L) u (setq ent (entget (car ent))): n) l; V* r* ~$ H8 g4 s" l
(setq pt1 (cdr (assoc 10 ent)))
( j0 T7 z z! R& f (setq pt2 (cdr (assoc 11 ent)))$ H+ j m1 i6 T9 A, w. t5 N
(setq ang (angle pt1 pt2))
) j0 v5 K- j) _' o* ^ (setq ang (/ (* ang 180.0) pi))* ]6 t: M3 F/ B# n) q
(setvar "cmdecho" 0)
& ~' f7 Z j1 t" X' w3 _ (command "setvar" "snapang" ang)& [8 M$ q) d, e |$ k1 j l
(princ "\nGoc cua truc toa do moi : "). n; j- }5 c+ B1 U5 d m
(princ ang)4 S7 | p. N% } P4 G# E2 d- o
)0 T# @- \ Q ~& p" B) E
)
* g7 q, Q+ k6 ^ (setvar "cmdecho" cmd)
$ z& A& d1 A7 j$ z4 R7 |: r (princ)$ A5 |. x6 F/ @7 q- h& U t' V
)
9 X- j: W" Z* [/ L: [;==================================================================================4 n/ v' W9 v* k8 V; x8 G
;============================== KY HIEU DOI XUNG ==============================7 S, G2 d1 I* U {' D$ _7 F9 X
;==================================================================================
' ^) U% d% g7 X2 r5 ]6 d" P( ?- o+ b7 |, Q$ C. W
(DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9$ O5 E9 x! Z/ |
SZ G45 G135 G90 G180 SS loi)
% W) K0 F3 Y$ C& M(defun loi (s)
% j8 R% u ]5 N- V U- I7 D: v: W+ ` (if (= s "Function cancelled")
/ W1 X; C; @3 [1 I/ M: ?; J (princ)
# e9 S& Z5 A6 y: Q2 u (princ (strcat "Error:" s))
+ N+ F4 U* N4 Q0 ]3 `6 T9 B. Q ] )# I) {) j" l2 w3 f1 ]0 Q6 c
(SETVAR "CMDECHO" CMD)
% M& a6 ]' e: ^- q% c4 I2 Q6 I (SETVAR "OSMODE" OSM)6 R# ?( Y6 `! B3 R$ K- w7 g1 c
(SETQ *error* OLDERR)
: C- ^: G# R1 ^4 ~ (PRINC)& b) {+ u6 m+ E- H( r! W
)
. d" }8 ?) h2 O* ~9 H (SETQ CMD (GETVAR "CMDECHO"))
3 |$ e) f; |5 R) [$ t- L! \* X (SETQ OSM (GETVAR "OSMODE"))
! f9 E1 F/ E% C% }# _6 C (SETVAR "CMDECHO" 0)
1 Z% r9 w/ D8 v8 U, P2 } (SETQ OLDERR *error*
2 u+ `0 s6 R# t( p+ ` *error* loi)
3 I3 S1 m' L3 z1 n# e: W# C (SETQ SZ (GETREAL "Size <1>:"))
: d* }( f& N, P6 ^: t# v' L) v (IF (= SZ nil) (SETQ SZ 100))
+ D( A( \) H6 G (SETQ G45 (/ PI 4))% ?5 N0 r6 n, e P. y
(SETQ G135 (* 3 (/ PI 4)))+ r P) V) _# p1 \: [) a0 Q1 }8 {
(SETQ G90 (- G45 (/ PI 2)))
1 e1 _9 i4 B7 I: T2 h (SETQ G180 (+ G135 (/ PI 2)))6 n: _" V: N" I E7 D# e1 u
(SETQ PT1 (GETPOINT "\nDiem doi xung:"))
- E0 K0 Q/ N W' T1 k- p6 E8 m% j (SETVAR "OSMODE" 0)$ f! M, y1 E6 O- U( v
(SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))$ t8 T" M( w6 p5 x B& u# o7 W" H; \
(SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
- m- }7 L. s# L o6 {" G- W (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
9 j2 W0 Z, U0 g2 ~ (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))$ v7 ?& D i. B
(SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
, j, ~8 G M- [" A/ c8 o (SETQ PT7 (POLAR PT1 G135 (* 1 SZ))). T; |6 I7 h- z6 |" p
(SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))1 J) \- V) Q; `
(SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
/ P7 O8 h+ N6 X& A/ G* { (PRINC "\nGoc quay:")9 X& y# H# ^4 K9 D5 P$ p0 h
(SETQ SS (SSADD))
' I: O. ^& P/ L3 p) U(command "layer" "m" "Dim" "c" "" """")
8 i2 n& ?& }0 f, o* Q2 f' f(COMMAND "COLOR" "1" "")1 F0 X5 e$ r# e% s& ~9 R
(COMMAND "LINE" PT8 PT2 "")9 B0 P) Y1 t- R2 n9 d B' y) B/ g
(SETQ SS (SSADD (ENTLAST) SS))( q. r% \4 C/ K6 G4 x8 V
(COMMAND "LINE" PT9 PT5 "")# O5 Q$ z7 Z% L$ ?
(SETQ SS (SSADD (ENTLAST) SS)); g+ E) P7 ^4 K- ]7 \1 x7 r6 F1 S
(COMMAND "COLOR" "1" "")& v* f& @/ S( C1 Y9 Z
(COMMAND "SOLID" PT2 PT3 PT4 "" "")
) P' }* Z }6 E (SETQ SS (SSADD (ENTLAST) SS))+ v& b5 M1 o0 v6 j* ?) ~
(COMMAND "SOLID" PT5 PT6 PT7 "" "")
% f( S/ p/ g3 t" P7 i! W (SETQ SS (SSADD (ENTLAST) SS))* h+ k7 S I6 |6 c
(COMMAND "ROTATE" SS "" PT1 PAUSE), ] {( z) v6 b
(COMMAND "COLOR" "BYLAYER" ""). k- u9 t# r$ z' n
(SETVAR "CMDECHO" CMD)
1 Y1 Q. A- O3 j$ ~/ W/ I( D (SETVAR "OSMODE" OSM); h# l \5 o) h- |. l8 ~
(SETQ *error* OLDERR)
# C) E+ u0 a, s (PRINC); P( ]5 I) W# m) Q* N* n6 @$ b
), U. O) C+ P+ o
8 d% f+ ]" b& @' \( y- b;==================================================================================
; T( Y& z4 I" k" n% }! h1 w;================================= KY HIEU TRUC ===============================
$ S( V' b' t) `8 ^ o1 C' p;==================================================================================
* z8 F8 ^3 n+ _7 V) F
3 Q$ L; S0 \: C, F: e% }9 d$ x- h(defun C:vetruc (). R0 a% A! {2 [- D; \
(setq bk (getvar "USERR3"))
- K v) r! n8 w5 Y(if (= bk 0)
5 L0 W5 Y) s* C. R# X3 q8 ~ (progn
' K4 q+ f4 u* K (setq cont "1")4 l' J1 T0 E. p
(setvar "USERR3" 1)
. z2 {! B, ~, l* i9 M )( S0 E/ Y% [" B* i
(setq cont (rtos bk))
5 B# ?5 I( o2 _3 C1 K. U& F9 K/ C)
0 k4 o; r7 H- U# S9 c4 o8 h4 u(setq pt1 (getpoint "\n Nhap diem dat:"))
1 b1 b! k8 Q0 X6 G4 j# z' R) p(command "layer" "m" "Dim" "c" "" """")
( H% r; W* j% z( \+ S(command "osnap" "")
6 L2 o+ f$ e2 V9 Q(COMMAND "COLOR" "7" "")2 L5 ^2 ^0 j4 m7 c; y& `' f- C" x
(command "circle" pt1 150 "")8 O0 j- b! g2 |1 B) {& R( D7 P
(setq pt2 (polar pt1 0 150))0 g: O' N, F" J/ D
(setq pt3 (polar pt1 (/ pi 1) 150)): H7 d/ u% W/ U2 i5 Q* m7 p. O! \
(setq pt4 (polar pt1 0 300)), q0 G- Y* a4 d2 }+ O
(setq pt5 (polar pt1 (/ pi 1) 300))
8 n7 Z! b4 ?4 F- ]$ R+ m(setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))# N4 G o; S& O2 q
(setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
& B: @( j, R! D' t; G0 r3 X: G(setq pt8 (polar pt1 (/ pi 2) 150))* E3 _2 d( i1 _0 R
(setq pt9 (polar pt1 (/ pi 2) 300))
) M) U9 [0 u. C3 s5 i3 ~(setq pt10 (polar pt1 0 150))
9 x9 g2 J' X" s; x3 b(setq pt11 (polar pt1 (/ pi 4) 150)), Z) j- l, L3 _4 Y
(COMMAND "COLOR" "BYLAYER" "")& i, B% G- m+ q- e' S1 b6 `! E5 I
(command "line" pt2 pt4 "")
5 W; S9 Q. S& q* ?; {- K7 L' d(command "line" pt6 pt7 ""): I7 g" c! L+ Y( f
(command "line" pt3 pt5 "")
& }! m2 C: j0 [" G; R(command "line" pt8 pt9 "")
% K3 S+ A( H3 c( \4 ?2 q. }(setq dk (strcat "\n Size:<"cont">"))0 ?8 A: S! U/ v k
(setq bk (getreal dk))
. |9 b! W- U, q* ?0 f2 `$ H* Y$ Z(if (= bk nil)% V- X }* R) ?4 ]% x, z0 O$ X' {
(progn
$ P% y3 O7 {- e (setq bk (getvar "USERR3"))6 {) h1 q# C: |4 P# H
)
+ D0 l& k! C B5 o (setvar "USERR3" bk)2 G! r5 W2 O) y4 j8 z
)8 K0 U D* Q" x/ d0 K& F" ~" n
(command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")$ V% k' \7 p; p5 S; p
(COMMAND "COLOR" "7" "")
I& e5 K" p/ c! Q$ v8 f- s, k% Z. R7 d(COMMAND "STYLE" "Truc" "impact" "" "" "" "" ""). q. P" q# d4 K# j2 C) o ?
(command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") 4 Z% g+ u, G0 t6 H5 ?
(COMMAND "COLOR" "BYLAYER" "")' _. e3 h+ y. k K( P3 j
)5 w( _+ D G5 k$ _' P4 l, ^
, X+ ~0 s, Y7 v) i( S2 v4 ] Y;=====================================================================
6 l6 Z1 ]( Q: }) N;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.) l3 D3 Z& X! p( f6 c @& b/ M
;
7 N" y) m' Y) e, p;Jeffery P Sanders
# ^" h. P& ^+ D;) i* T2 D+ p, X& ]% j9 H" d
(defun C:CA(/ en enlist tx newtx cnt tp asc note)" \, y- w2 o1 k l& M; S
(setvar "cmdecho" 0)
3 H6 _8 C8 n# O3 w- L1 H; D (if(setq en(entsel))
# C4 ]( i# b t) r+ M# R (progn
2 X Q8 A8 M+ f, ?" y5 c) t' i+ [ (setq enlist(entget(car en)))) r- o" |/ g" Z5 x; v9 I* V _. X" M. y
(if(= "TEXT"(cdr(assoc 0 enlist)))
1 d6 u$ ]+ N0 \6 w( _! d (progn; C; H- B$ T* _" Z
(setq tx(cdr(assoc 1 enlist))
7 Z' |# @1 K8 A% `/ m; z2 e3 J newtx "" cnt(strlen tx)7 b) @0 P2 _ S& U. Y9 f0 X- t5 X# t
note "\n...CASE Reversed. \n "
' v6 O% Q: C. _. P5 S )+ t! j) Y( A; w5 g
(while (> cnt 0)
% l1 t* v n* Y0 r2 O (setq tp(substr tx cnt 1))2 b7 g6 z. [1 Q. p0 x% I# Z
(setq asc(ascii tp))1 |1 q/ s! ~- _9 @0 _
(if (> asc 96)
$ ~. Z0 n6 U* i. R (setq tp(strcase tp))
/ U; t& D2 C, Y+ a1 O$ r (setq tp(strcase tp T))
" X+ {6 S9 I) ^' x) ` )
5 ~% j% I) E; n2 I5 k( B (setq newtx(strcat tp newtx))
( F f: d* T7 z (setq cnt(- cnt 1))
; @& a! _3 G4 e3 p3 e )
* @6 x1 t& b# F (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
( J/ u6 ]1 S0 x2 R7 x+ B { (entmod enlist)
( k+ I; }4 z3 n) k. e3 H$ o3 _ )
8 o) d) Y$ h' l7 o- a (setq note "\n....Text Only Please. \n "). n8 n' A, Z3 Y4 o
)
$ |% q7 A9 c! Q; g3 w& } ). _8 b7 |5 V& |9 `' O! I v
(setq note "\n....Nothing Selected. \n ")$ t8 D6 y0 R2 u5 w z+ e$ `
)
5 I$ y: c1 m, w5 O i (setvar "cmdecho" 1)
4 N& O7 r( n+ |5 C* N (princ note)
; ^* c" {- r8 T0 Q (princ)
. K1 V e5 u( j1 X; F; G" S)# J& A; f# R# @8 m/ x* \
$ N% d8 H! o" {2 c1 q6 T
;===================================================================== p3 e g+ r/ l# o- ?' C$ v
;==================== NEW TEXT STYLE UPDATE ==========================, C$ F' \; ^ g
;=====================================================================
2 {& |! w) _! d$ L+ V* M. U
, E* j/ H2 E9 x- @9 ]' J- [(defun c:nS (/ tdt ssdt sodt index)
% N$ ?/ W$ V% j, X(defun ObjName (ssdt /)
, E- P1 r& \7 L Y: L, E& L(cdr (assoc '0 (entget ssdt)))
4 v4 M6 f5 u; U$ D) k [' D)
( u1 k( o% S; Z0 }% {(defun MoPL (ssdt /)* c- D& R/ m6 z" B9 y5 x! ~9 R, w v
(= (cdr (assoc '70 (entget ssdt))) 0)6 L |% ~$ k) r9 d! \/ n
)9 N/ A, y2 o3 u8 r$ P
(defun NoiPL (ssdt /)$ V3 [% S$ P4 r
(if (MoPL ssdt)
, O0 y" ^. Y+ X T' a) u(command ".PEDIT" ssdt "J" "All" "" "X") w: k: H. ~: _. x0 s
)
! b7 F8 h0 v+ z; T). c- v- X# g! z8 u/ S
(defun NoiLC (ssdt /)
* x& {0 Y* q: U# ^3 \(command ".PEDIT" ssdt "Y" "J" "All" "" "X")
# ]. v! d) o* c! Z# S" y)
4 z: Q% b* o" W% F(setq
( P5 h0 F; o M1 r" z Y$ |- w0 q! Ctdt (ssget)1 }" O- n! k0 M2 H/ _
sodt (sslength tdt)
2 t2 r4 t5 e5 x: M5 windex 0+ h8 l3 h) r; } x- t1 O
)
$ {& N2 M0 L% `' \(repeat sodt2 j; Y5 B& O; M- X( ^( H
(setq6 P" o6 f0 I: y" i: Y! G. t2 {' j* x2 c
ssdt (ssname tdt index)* G2 [$ b, U# D8 d
index (1+ index)" ]( \( L8 P& C- C
)
' i# L+ B o; ^$ G5 i8 L+ X- m5 a(if (or (= (Objname ssdt) "LWPOLYLINE")
' V% y8 u+ w; g; z" ](= (Objname ssdt) "POLYLINE")$ s& c, K4 K V& W# I/ p7 C. u: J
)0 D# `& s7 }+ H/ v. |. E& C! x
(NoiPL ssdt)# I9 W8 S6 Z0 L9 n4 D' Y7 F( C
)
& E1 i! N9 S& u(if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
9 Y0 Y6 y! G# W* v(NoiLC ssdt)
3 y" E, u' M: J! {$ v3 @ t)
5 y# @/ _, U. p2 o)
. V2 N1 i7 n9 |% {(princ)
& M* ?( N B$ x4 L)9 p* X$ s8 p. N5 b1 [( J; Y
' `9 ~, r T$ l! d+ O" Z
;=====================================================================- _, T7 R# F! M
;;; AREAM.LSP: A) K& S `. V! Q T1 }1 d/ z
;;; Function: Calculates the total area of selected objects! p3 @: n5 A& s% T" l
;;; By Jimmy Bergmark. D* u) N! z$ @" G/ \" @
;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved- U: `# U1 f) Q9 @) Z
;;; Tested on AutoCAD 20004 h) g& T; B3 n
4 p+ k7 l+ ?& ^$ d2 d- @5 q5 s(defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)2 e7 \" \! |4 C1 Z. H X* Y- d
(defun errexit (s)
: y7 q$ Y- N8 M$ C7 Q (restore)
' D- @' r( g: E3 D )
! \6 s5 S$ W& g. B' d- G8 r) J. Q. c( a% { _
(defun undox ()
0 c4 h: A& ~* Z' S4 `( ? (command "._undo" "_E"). a% e1 ~9 n, N) l& i) W
(setvar "cmdecho" oldcmdecho)
7 f' j, W1 p# I/ A) W (setq *error* olderr)
" M5 j% ~! x1 p( H2 p1 J (princ)
& l( S1 X" y4 W! q" \- K8 S6 [ )
0 G5 Q) M% z3 Z8 U# H
) O7 _6 m3 F0 o- ^6 z (setq olderr *error*
, ], {5 A, Y+ `6 Z1 B' \1 v6 I( y restore undox
( `+ E7 L% ?4 a$ N+ _ *error* errexit
3 p: B7 z1 y/ c( I/ K, r )
( P8 j, I c; j, h% z (setq oldcmdecho (getvar "cmdecho"))
: c9 V$ `2 [0 x- t) g+ k (setvar "cmdecho" 0)& f9 ^2 j/ T2 w
(command "._UNDO" "_BE")$ h/ h9 q7 j; s4 @3 j& j
(if (setq ss1 (ssget '((-4 . "<OR")
/ t( I# J) d& o$ F, f# E/ r7 V (0 . "POLYLINE"), `' X' }/ v: h* l3 ]& r
(0 . "LWPOLYLINE")" _) M1 K7 n0 s6 g/ c( s
(0 . "CIRCLE")/ X5 o; _' y* K6 K/ U# Q
(0 . "ELLIPSE")! m3 b* m! D: o/ ~
(0 . "SPLINE")7 I/ |3 L" N$ L
(0 . "REGION")
) E+ j) m. ]) x8 m (-4 . "OR>")+ A0 }! P! \- J& n# Q
)$ Q* f3 L' M( N0 [: m) U5 ?; p6 a
)- ]# t; q( a. r% w9 Y8 V
) w% }2 D' F6 c5 z7 q
(progn
! V3 O) ^) ]( b8 }! `& p (setq nr 0)8 u2 e1 C" h( f
(setq tot_area 0.0)
: L) Y k3 ]- j- H5 ^/ O8 } (setq en (ssname ss1 nr))
1 B1 s! ~+ K0 F" T) q6 z" R5 ]# } (while en# \$ T2 [3 c4 i C7 I
(command "._area" "_O" en)& {6 x1 f, a1 Z: H7 g' p- v m4 r
(setq tot_area (+ tot_area (getvar "area")))
# R2 \1 n* t4 M6 R) _7 k (setq nr (1+ nr))/ J2 ?# L7 h' B! V5 f/ A; |/ B5 S; M
(setq en (ssname ss1 nr))" {% o( r; g6 r. q' _
)% [4 L7 D. Z g/ p: c$ t! Q
(princ "\nTotal Area = ")
+ ~3 {' `1 ~6 S% Q4 T* J/ r0 W- a. w (princ tot_area)
0 K' M( R3 ]: O9 C/ g& v6 M4 Z )% @ ]2 t7 q2 s( A/ o( a
)) U# a5 o6 S0 ?
(restore)+ s: H2 ]: H) T7 | u* e& ]3 F8 v H
)
% ]$ G$ y: _- f4 l6 w
# X2 d: y" N) `, R- X;=====================================================================/ N- I; Z- k- `5 t D$ \
;;; By Jimmy Bergmark
; q, S, U. l( Q+ B2 \/ {& @;;; Copyright (C) 2008 JTB World, All Rights Reserved9 Q, v. h+ }& }) T
;;;$ P E! {, d+ f, X
;;; Created: 2008-03-31, D6 E$ U h8 p/ c! l% |
;;; V& f9 ?$ Q% O# D+ o2 A
;;; Convert Attribute definitions to mtext1 U" |$ E# a! l4 o: K
;;;" O$ u: l0 z" Y. J
8 \# d' F' _/ E1 @! D5 g
(defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
$ ?& e" U) v) [/ q' z+ V (setq eset1 (ssget (list (cons 0 "ATTDEF"))) J" n0 @0 N7 E, I& u, U; S$ G
blkcnt 0) k4 n+ Y6 T: j* m8 r
)
" c2 w; f/ ^$ }( V1 O: ~$ I# p! @- Z* Z, D* v0 U+ B' }; X
(if eset1
" u, A5 H! r1 z9 U4 a (while (<= blkcnt (- (sslength eset1) 1))- {9 q3 T1 G4 z; O) o
(setq en (ssname eset1 blkcnt)5 _, U- }+ X! ~$ ^3 s
enlist (entget en)7 c, N- ?4 U8 w, X
ht (cdr (assoc 40 enlist))
9 ^2 v1 M2 }' S; W/ L pnt (assoc 10 enlist)& g# c! U4 _) A* Q" y7 v
pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)& K4 I/ |, v/ e! _" ]+ N
space (cdr (assoc 67 enlist))
0 |% Y; U8 f; {4 \1 Y& ^ )
8 W! A! R# f- @# [; R# o; s (setq vl (list
4 \* `/ I. @$ C# ^* m) [: s (cons 0 "MTEXT")' N8 ]7 t9 Z+ S
(cons 100 "AcDbEntity")
8 x/ d- G. Y& C (cons 100 "AcDbMText")# ^- f5 u0 K2 h, j$ o5 U% F
(assoc 7 enlist)4 ^' v, H. U$ \
(assoc 8 enlist)
# O- w* U) D: G( ] pnt6 Z- S( R5 Z3 o
(assoc 40 enlist)
2 A1 k3 X. P0 [4 J5 |" b! A6 b (cond ((assoc 62 enlist))" R" \* g+ b6 E2 s( J, u
((cons 62 256))
- W( _3 z: T1 ]: P4 p+ r, p )( q- c6 n5 u- S( X+ F, F3 H+ t; p
(cons 1 (cdr (assoc 2 enlist)))
# n* m, G* }' M (if (= space nil)
. s" @$ j5 b# q% f4 H (cons 67 0)9 B# [$ G) l/ ~- U
(cons 67 space)+ a* @( N; }7 ]! V
)
" w& E8 l9 |, l8 } )
( N) u0 {# l/ Q1 {2 p) V) d )
7 a. Y& A7 X3 v4 D8 n (entdel en)! F" I. W4 s7 b w- E" C
(entmake vl)
9 N1 s0 v" _) C (setq blkcnt (1+ blkcnt))2 b2 u" v/ Z Y3 x9 p
)
/ n Y! y3 x- l )
; E7 R* b4 J& g' ]0 o)
. M- |/ t" m2 r! m" X; V. n3 J& Q; U6 P
;=====================================================================
* G% l' U4 C& S/ a/ q) x g' z
& ~% n% U( \) l k! r(defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
; S# p* I2 y' x/ [% { j! ?, ^; Khoi dau cua chuong trinh
/ k! r2 p0 Z9 Q/ }2 ~6 Y(princ "\nCopy Inteligent...\n")
- h9 J4 Z; k9 w/ a( B) R+ H5 k(setq luuecho (getvar "cmdecho")5 f2 F% c) \7 T8 P' m8 `' i& T
luu *error*. {$ q: B5 R, W) t7 [3 n
*error* ketthuc
; W4 \& ~( N( s4 P cumdt (ssget)
/ c S( }$ c! P dodai (sslength cumdt)
8 b* f8 x8 h! n6 | goc (getpoint "\nSelect base point:")' k4 _ K" h9 B
thoat nil$ b2 z L1 Y' U5 a* s
dem 0
G$ X% m8 G' a9 ?0 e, P- x textxl nil
% f/ [& l6 l. v);( k- _5 y5 G; m9 f( a/ {
(setvar "cmdecho" 0)
4 ^9 m' ^1 L7 E2 n2 [2 p$ g: G; Loc ra duoc ong text de xu ly
/ Z: Q* f0 o( P7 u2 ]5 `' e9 {(while (and (= thoat nil)
; X# \5 r& N, K6 v (< dem dodai)2 q& Y8 Y; _9 |2 X. X2 j8 M
)9 q) @9 l; U& K J, m) F3 ]8 X5 \4 J
(setq ten (ssname cumdt dem)/ d$ V: h* \8 t: n+ C
dem (1+ dem)
$ C* D/ S' E9 P; t doituong (entget ten). \4 S3 Q2 N+ C/ Z- m
kieu (cdr (assoc 0 doituong)) / n1 n4 N5 g+ }- q/ u4 v2 Q* L5 ? F
)
! E0 {; ` s# U5 v
4 ?. S9 @6 G3 r' @! ~1 g (if (or (= kieu "TEXT")
. U( e5 P; O* D7 m' y% C& V, | (= kieu "MTEXT")
9 y. R" B3 K4 g4 C2 e" l/ F ). \; B z6 R& ~
(setq thoat T T( X. g" a9 q: `9 B$ E
textxl (cdr (assoc 1 doituong)) $ Y1 f) v$ n# r% b# E" S
)
& c9 z) {: k3 N9 g9 f )
- S* b0 t9 \& U' v/ M; y- t1 {);
. T$ `4 c/ s2 z$ X(while T
0 m0 T% m- ?0 ?6 s(setq toi (getpoint "\nSelect next point: " goc)3 L% Y1 ?) v8 n& M( `" R: R
vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
0 @# e, V" P* G0 z dem 03 u- u% m/ ^( Z$ b- N7 p! J j
)" x2 n1 }/ O; u& D F. [
(while (< dem dodai)* V0 ?; F9 M+ a7 w6 Q p
(setq ten (ssname cumdt dem)" e+ z( `9 d+ Q; S% t: s' ]' ~
dem (1+ dem)
* a% X4 |, ]# j/ X! P# J! c doituong (entget ten)
- m7 i7 e9 y- _+ E* S kieu (cdr (assoc 0 doituong))
# n; l: p$ E4 j- A6 E i" [2 E )# E& ^ a1 ]0 ^3 c5 e m' L
6 F; Y7 ~% x1 d0 h4 o (if (or (= kieu "TEXT")
; c% n, i6 D: T* X (= kieu "MTEXT") 0 O* }3 x7 \( x5 G) b f2 Z% r [
)
0 |7 X8 A2 {6 ^2 b! ?9 O7 c& s (doitext ten)& s% `4 O4 u2 ^% r& S# f4 e7 A
(copy_dt ten)
' g* \/ e, U% O4 H7 f3 K& I( r) }$ A/ u1 z: O) I& p
);if' f I9 n! _) P& N6 `) b
)& e5 D: [& v5 w' x k+ q) F
);while, k- |( U5 i B7 n% @& t8 c' F% A
(ketthuc)
3 C" G5 j; G# n/ v1 c" w);defun
% A8 V0 F5 s, Z5 L" M(princ)
8 q* C6 v% K% @" p1 [7 T4 U0 m2 F( L! G
;=====================================================================
& n- g. B) L: d7 q6 d' Z- B5 D;;; By Jimmy Bergmark
h4 G; }" H" k;;; Copyright (C) 2008 JTB World, All Rights Reserved
5 P0 T1 {' g4 o( \1 s% Z1 g/ }) v$ O9 g;;;
/ I Z( N; k$ y2 t3 q' [;;; Created: 2008-03-31" G6 ^- m; k& P7 u
;;;
( K1 w0 H& q! n6 D;;; Convert Attribute definitions to text
* `; N9 u6 l/ F+ \;;;; R0 f6 L# c- Q- `
5 l* M/ I# j5 a
(defun c:ATT (/ eset1 blkcnt en enlist vl space) V; q; L$ D0 a6 z
(setq eset1 (ssget (list (cons 0 "ATTDEF")))
9 U! ]. ]- J+ z' ^/ M+ p7 h; d blkcnt 0+ {- L0 b. a5 w# l7 P
)6 D+ o9 I% o) Y. F9 A5 }
# \$ U( P- G) S: z; D
(if eset1
" `# x# |2 v+ L f A, T* R" _ (while (<= blkcnt (- (sslength eset1) 1))) e& i8 T% X9 g$ X
(setq en (ssname eset1 blkcnt)4 L: r6 U6 p. R3 ^
enlist (entget en)8 ~. X7 K: C* v2 e
space (cdr (assoc 67 enlist))% A0 L5 P9 L& D) T1 A
)
3 M" I, B. W" `' g9 u0 _. i (setq vl (list) f" ? Y7 [/ X6 W. E. }
(cons 0 "TEXT")
" e b g, r, v+ r, y (cons 100 "AcDbEntity")
) N$ e L3 I1 [ (cons 100 "AcDbText")
5 {7 A" R0 b! K, h4 |6 b1 ? (assoc 7 enlist)
, d! N% p$ P. ~ (assoc 8 enlist)
7 s% [2 R' l5 Z7 P7 ~ (assoc 10 enlist)
9 q0 O( D n0 n- b (assoc 40 enlist)
2 |7 n- w, B6 D( [" j' s! e( d( r (cond ((assoc 62 enlist))$ T4 n: U3 m5 q0 f9 ?
((cons 62 256))( u/ _9 ^" g+ W6 k5 L" \; `) B
)
% K. g. l7 ]0 d* l3 }: }; Z (cons 1 (cdr (assoc 2 enlist)))
" [1 i, t3 f4 Y. C- a+ v; Q (if (= space nil)
9 D9 R* o. V4 u7 W: c8 [$ ^ (cons 67 0)
: ~+ z( T" e0 L/ B (cons 67 space)% ]/ J$ q; @9 p7 M
)1 t- _% ^+ d+ J0 O O
)8 g6 L8 S( M. f; A- Y
)3 G# K5 a' |2 _& W) x k
(entdel en)
, F0 ^! N, h0 j$ ?1 `4 A (entmake vl)
9 g" v+ N/ [* c" H9 i+ ^# u (setq blkcnt (1+ blkcnt))* v5 j0 @( l7 o3 K- E' k3 k
)- v1 o3 I- g" ]. R
)4 D; ~/ I* p5 C& B! U/ V8 L
)* x) q" k9 J* D2 J" @) m1 A- f# J
;=====================================================================
+ {! h: q# U8 [ g7 n- y' T1 H$ F;============================ Doi Truc ===============================
! A- T8 \: A6 k# r3 [, |8 ~;=====================================================================
' J t( `1 B, n: f# Q6 C; ^* S l2 L0 ]& v" `& v
;=====================================================================
) |! P' V" p. d' J7 _# J/ |;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
) T3 }8 k; _6 Y$ n9 a! p+ K;======================== Tran Ngoc Thang ============================
1 h$ a5 N" q' Z0 p u8 P(defun c:ga1 ()
9 c' ]( K( a( m7 P. s(setq a (getpoint "\nChon diem: "))
3 }% _! K5 m R# b(setq b (getpoint a"\nChon diem: "))7 l1 K7 u6 s+ g4 R8 {
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ Q& I2 i2 y, L3 N) ?, B(command ".circle" c a)
3 c. D+ L- b& j2 `! J(command ".line" a c "")
, ?' T2 w0 A- P# I8 h$ ](command ".array" "last" "" "p" c "1" "" "") Y/ R; r$ A. D! `' V
(princ))7 x/ k; s4 z1 t& M/ a! K
" N0 K# [5 X1 X5 c
(defun c:ga3 ()2 K3 w' _9 Z% D4 F! K: ~
(setq a (getpoint "\nChon diem: "))
: {4 F8 _2 P, G# H6 p; V(setq b (getpoint a"\nChon diem: "))
% A! q0 A# t% j8 k# M, t+ H(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: i8 x4 Z# }+ {, e0 B0 c5 a! X(command ".circle" c a)( e# G: N. Y2 r7 v( A# d
(command ".line" a c "")/ P, E0 g9 Y! S- j7 ] m
(command ".array" "last" "" "p" c "3" "" ""); K. ~7 J+ }1 i/ b1 T/ e
(princ))
C4 E" Z$ Z* A% x, M) o1 E# ~
) z: O2 j- k- j* J% F% I(defun c:ga5 ()/ u& Y4 U# B W8 `! g
(setq a (getpoint "\nChon diem: "))
2 Q, E$ B1 I* m( c(setq b (getpoint a"\nChon diem: "))! W& M& J- T) k" q* V: R# Q
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& l$ o" K0 o. m7 m# u$ }6 m1 h(command ".circle" c a) M) R; L6 f4 t, {9 o
(command ".line" a c "")4 ]" K/ o& n, }# `, E% {
(command ".array" "last" "" "p" c "5" "" ""). m( O d( ?& P% L4 M' N# T3 U f
(princ))
, |( s$ {% `$ _6 |1 D! c. y) ^5 B) I4 ]1 m8 }: P( i& v/ f; Y
(defun c:ga7 ()
Q% c/ A. v J(setq a (getpoint "\nChon diem: "))
8 d! M- a6 d" a(setq b (getpoint a"\nChon diem: "))" P, U' B2 K U; o
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( k2 t3 W9 K: f5 Q
(command ".circle" c a)3 O0 v9 O+ t; p# j1 Y
(command ".line" a c "")
; I1 ]% }/ N5 q5 b; J(command ".array" "last" "" "p" c "7" "" "")
9 r8 ^) I. h) G+ d$ q) x& ?. _(princ))' b. x. Q" k6 k: l8 D
) w9 g+ r# F3 t0 W8 j% O9 s
(defun c:ga9 (). k* i( o4 l- P/ G" e# ?
(setq a (getpoint "\nChon diem: "))5 t0 k' z- l3 y. X& X0 ?
(setq b (getpoint a"\nChon diem: "))
& E7 J8 s) Q+ C" I3 P7 d- O0 l(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 j5 j3 g; J) b' f* |" N6 e(command ".circle" c a)
* q6 ~, I* U: r(command ".line" a c "")
6 l9 p" Q4 N4 `(command ".array" "last" "" "p" c "9" "" "")0 E9 o' h0 q2 f- b; e
(princ))2 L# W! U* _: v6 d
& W: m0 b! G) r" F/ Z
(defun c:ga11 ()
! p2 y' }" D( y' V1 B, D6 I$ w' V(setq a (getpoint "\nChon diem: ")): K5 w: L: D# Y) k: j1 z3 f$ A
(setq b (getpoint a"\nChon diem: "))
0 b, I. \) m Y% `( E+ {% C& B, P$ J0 I(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- ]+ V8 c: _& A, V, K! r
(command ".circle" c a)# A/ d9 f+ B, A9 r9 b
(command ".line" a c "")
7 a6 {( g4 u J" v(command ".array" "last" "" "p" c "11" "" "")
8 n$ O- Y; M# H( s; n% Z(princ))
: |; N( O0 I( i5 x" ~+ f# [& m% E/ |9 n
(defun c:ga13 ()
- A" m/ v) ?& X/ w+ Z4 F: `(setq a (getpoint "\nChon diem: "))
4 p# U6 d$ {4 }; Y ~- ]) r4 f(setq b (getpoint a"\nChon diem: "))
6 l+ q6 W& @% x(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 l; V+ A& y% o; y(command ".circle" c a)
2 D+ }( ?/ t2 ^) ^! N% z/ d2 K(command ".line" a c "")2 O: c1 m% _# d1 k' [ i
(command ".array" "last" "" "p" c "13" "" "")
6 g/ E' i9 r. M0 ]9 a(princ))
: t! G* U$ t5 Q1 l8 V
% a/ N: j! X6 T# j, O6 t" [(defun c:ga15 ()6 p" q' w, e9 N) _7 h# S
(setq a (getpoint "\nChon diem: "))+ k# I @3 }3 s7 g; p
(setq b (getpoint a"\nChon diem: "))6 Y0 ?! {/ E+ i( [7 W0 f v
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 ?9 ` p l/ V: i1 e) L2 Y(command ".circle" c a)
/ V6 o+ x0 r* M; o(command ".line" a c "")
* L7 |- D f9 g! W3 ?(command ".array" "last" "" "p" c "15" "" "")
1 o2 P5 h. a2 c6 G; A6 |. ^(princ))
& `: m4 a$ t* Y+ {! Q7 ~ O
% h( U) U$ S8 b4 d(defun c:ga17 ()5 }4 K7 u4 E9 r" @! s
(setq a (getpoint "\nChon diem: "))
( K! g# d* |" W- p(setq b (getpoint a"\nChon diem: ")); S% r( K, c* {5 O4 a% H! j, ~
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 g$ y3 n8 B* q F) v
(command ".circle" c a): x* x. ?: E/ J/ Q0 E' S
(command ".line" a c ""). e. C. ^" }6 ~. J& r5 z
(command ".array" "last" "" "p" c "17" "" ""); t! T5 _$ j2 m0 B- t u
(princ))
: V% w) W/ @; G- q5 x* \/ G7 W3 k% u/ w# Z, I- O/ M$ C. z
(defun c:ga19 ()
7 _% i9 V7 q( ~(setq a (getpoint "\nChon diem: "))
& _. m& p% N& S, k(setq b (getpoint a"\nChon diem: "))4 O7 @; M `: ]; s- }
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: V( |3 j% m) y! `% R(command ".circle" c a)
; t5 J" l0 `! s(command ".line" a c "")
0 O4 u V: A8 ]7 D4 g3 ^4 m(command ".array" "last" "" "p" c "19" "" "")
. ~) M5 i4 A7 s+ O8 u! _(princ))3 U+ I! g8 M9 w _" a5 Y. l
( T* o+ U" s7 q1 S
;=====================================================================0 m8 L3 g" A0 h6 L# n
;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
4 E. ^! z6 k. P6 g" }' y;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================; c# H( ~" C; h$ P. p# N" h# m3 q
(defun c:ga2 ()
" b8 q. x% _ p% }- y(setq a (getpoint "\nChon diem: "))
2 B: s& ]; W, V(setq b (getpoint a"\nChon diem: "))
, G; J3 x" ~/ k1 W7 Y6 F0 c(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" ^1 x6 h8 d# Y6 y4 U* X4 W5 F9 _
(command ".line" a c "")1 d! L! `2 \& B4 L, R% [; i
(command ".array" "last" "" "p" c "2" "" "")/ c& j# O% s, K# `
(command ".circle" c a)) x) v5 L+ K/ V8 ]1 j
(princ))" ?! y% k& @& m1 h- M
* `( X1 ?6 R" V0 n' l- h
(defun c:ga4 ()8 Z% G- S4 |, X; J. H( p4 H
(setq a (getpoint "\nChon diem: "))2 A/ g" T3 K, Z; D
(setq b (getpoint a"\nChon diem: "))
+ w: B* M7 v* l8 z(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 p# m% U+ ~8 Q6 S' I" B3 h(command ".line" a c ""). v8 w& Q7 m/ w3 W' a3 n1 l0 |7 U
(command ".array" "last" "" "p" c "4" "" "")
{# X3 ^5 i8 K9 a8 t4 v(command ".circle" c a)' d& \3 B3 g; I1 e
(princ))
/ Y: i9 T. X0 G
* [; ?6 d0 c; m# o% E(defun c:ga6 ()- f* @5 q$ i8 S5 {2 h7 \! n
(setq a (getpoint "\nChon diem: "))
7 {! k9 s( J+ p& v( |0 Z(setq b (getpoint a"\nChon diem: ")); e7 p1 k- L+ w# P
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) [2 h3 a" N5 d
(command ".line" a c "")
4 p" h% u3 U; V8 x(command ".array" "last" "" "p" c "6" "" "") F2 ]7 A1 p4 i
(command ".circle" c a)
0 N; \+ ]6 V2 {/ j- j0 K& d4 n/ W(princ))
& O# B2 f' y% A! V1 B) O$ |/ P: }3 `+ A1 I: z
(defun c:ga8 ()' l( w+ p- A5 [' r* |6 Z
(setq a (getpoint "\nChon diem: "))% S {" e* S* R. W+ j
(setq b (getpoint a"\nChon diem: "))
. ], F" i; O1 Y0 X* n( X0 v(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: O8 q: L4 @5 d+ ?- [(command ".line" a c "")
3 V+ c# _0 w+ @0 ~' W/ o# @% L(command ".array" "last" "" "p" c "8" "" "")
" g7 H% M& ^& @& |7 X: t, p8 R(command ".circle" c a)% I- g4 }) s2 P; S3 X; t5 n
(princ))
6 L% J. ^ q/ {! Y" [- R5 M9 A' ^+ m9 b2 ~' Y
(defun c:ga10 ()9 f* c& p1 c: u# c; W3 E
(setq a (getpoint "\nChon diem: "))
7 M4 @# B0 J1 r2 V(setq b (getpoint a"\nChon diem: "))8 }9 ]2 h3 L: [; T- a" J" ?; |2 V W
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. P' p1 c; ~6 c(command ".line" a c "")2 ? ~' j2 o# r, w' d0 N5 N9 \
(command ".array" "last" "" "p" c "10" "" "")3 j/ f$ {9 F4 f5 @5 M
(command ".circle" c a)9 C. z& u8 t! d6 T- ]
(princ))
" D( I' Y* D3 v, f4 r2 d( t0 b8 C& J% E
(defun c:ga12 ()
3 M) v: z( b/ F# M( [(setq a (getpoint "\nChon diem: "))
) X( x! |: U3 u, H4 n, p# a/ W(setq b (getpoint a"\nChon diem: "))+ Z6 d O+ o, m
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), m. p/ h% a5 c% z }, b6 M4 B# P
(command ".line" a c ""); l' E K2 ?' K- M" m/ r5 {
(command ".array" "last" "" "p" c "12" "" "")
* h, O. J+ C4 x& V5 i7 o(command ".circle" c a)
- y3 T& S/ {" X% w' {(princ))' {* q* I+ T$ v
: i4 S0 E% R+ C: _# [ K
(defun c:ga14 ()
; t7 e# i) x1 V9 R4 e. D5 p(setq a (getpoint "\nChon diem: "))1 s6 u8 w- j. C; M
(setq b (getpoint a"\nChon diem: "))
. u8 E$ G1 d) G% m+ x(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) t+ b* h/ ~1 N8 e a9 N9 S
(command ".line" a c ""): V' T, j$ W9 u! V
(command ".array" "last" "" "p" c "14" "" "")( Y4 L$ p/ m7 q7 B1 o
(command ".circle" c a)
( n* ]" J0 _' S, x' v3 k$ A(princ))! T) |2 n+ u1 Y* P, I
1 J* c! A. v4 e: U
(defun c:ga16 ()
- ~, Z9 E" E; M* y1 ?4 m& B(setq a (getpoint "\nChon diem: ")); K7 ^* _- m- s- q& f1 c% Y5 |
(setq b (getpoint a"\nChon diem: "))! A( b( q, h/ Q: x
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 ? Z: b/ j r1 I \9 k2 u9 Q7 |(command ".line" a c "")
$ e! \3 H" S" u- N: O(command ".array" "last" "" "p" c "16" "" "")6 @( Z. k0 c6 k+ K
(command ".circle" c a)( q$ A1 X& h, H: Q7 N
(princ))
- l7 B2 F; A( j
+ d& \! C* P: J7 i(defun c:ga18 () P- W9 j* y4 q$ @
(setq a (getpoint "\nChon diem: "))4 e% \# i! n& }2 r; J
(setq b (getpoint a"\nChon diem: "))% M; j# a5 I% F# k8 f/ m! D. W5 E4 I
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 d1 l0 [" }8 q4 z# B! |7 j; J; R(command ".line" a c "") p) P8 f) u/ I
(command ".array" "last" "" "p" c "18" "" "")
& _9 V% R8 J+ F" s8 j2 Q: G(command ".circle" c a)
: y5 o1 v7 g& q& t& j [4 \. N(princ))/ j W* m( n$ |5 t4 d, W! a6 X
2 _8 u! [. V) F5 A9 p5 r5 f5 m. D- n% X
(defun c:ga20 ()
. M2 ?$ @6 b F0 h(setq a (getpoint "\nChon diem: "))7 f3 ~( ^% ^$ o& Q. t7 v' Z$ j8 M7 j
(setq b (getpoint a"\nChon diem: "))& i/ U9 @7 b/ k' ?( X
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 q% }+ D' H: h(command ".line" a c "")
" j0 m6 }: u7 o(command ".array" "last" "" "p" c "20" "" "")
2 V7 V3 B) C; W- ^/ L M(command ".circle" c a)- n2 s, h/ g# P1 }3 } |$ A
(princ))+ }" Q% g" X* @. H, g8 G- k
3 i0 H# Z! I# p$ x( P
( p6 t. Y: _* I! J! r, S C/ [# y' N/ a# P5 M3 ?/ P
;=====================================================================
$ K/ h. f! O( N0 D) N;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============7 T: b! ]! I S; T! F
;========================== 06-11-2016 ~ 18h00 =======================
8 w- h; R, O* b3 R2 k) b7 M;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================; ~, U" m7 S% _& m- O
(defun c:ga ()
- F; B3 e( Q( M+ K% l$ {" x(setq a (getpoint "\nChon diem: "))
; \0 N4 k" Q3 N5 P% d0 R(setq b (getpoint a"\nChon diem: "))
8 v1 N& v9 S* [) ]9 p(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 ?* z" M9 c) e(command ".circle" c a)" @1 T6 w- A: D
(command ".line" a c "")
L3 |/ w5 u t, M' K(command ".array" "last" "" "p" c "NUM" "" "")
9 |& v- e% I& B(princ))* Z" h" g1 Q' `! C, M
1 H4 ~! a. h4 F% r% b: P6 \, A;=====================================================================+ j/ l3 x8 Z- O U
;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
4 i# j, E' w% V# f;========================== 06-11-2016 ~ 18h40 =======================8 ^7 _: P5 ]7 f1 @& g* N) Y
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================0 Z1 M& M0 l: U) a0 `% Z
- U* P. \1 x# }, r(defun c:hoathi ()$ C7 A x" m/ ~2 o+ {3 w
(setq a (getpoint "\nChon diem: "))
6 C& @/ A" p2 D6 U(setq b (getpoint a"\nChon diem: ")) \' w0 Q) @( ]) @% B0 d
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 }$ M, H6 H/ h1 Q: j+ h(command ".line" a c "")
, A: H) `3 o# Y3 D1 f: _(command ".array" "last" "" "p" c "NUM" "" "")) D3 X9 J8 d5 c N7 K7 X* x1 W# |
(princ))
$ W0 F o: y$ N) [* O/ ~' ?: n- D
;=====================================================================
7 r- b' W* \' \( N" c- C;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============4 A7 o$ ^3 @; V! |# ]* e1 s9 a
;========================== 03-11-2024 ~ 19h33 =======================
- I; ?2 j3 k* Z o) N( l;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================' j* P. x$ D" \" Y1 r
! ^1 A$ b, Y7 [! x' L' L1 M) I
(defun c:cung ()
0 R: b0 J0 U) L, X* ^$ `- M- \(setq a (getpoint "\nChon diem: ")). C, w' A& A* Q% l9 P) l' c
(setq b (getpoint a"\nChon diem: "))+ X- b# L% ]) Z& ^# ?" j- L
(setq c (getpoint a"\nChon diem: "))
; F' `/ R+ ~( A; P `* G7 T/ N(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
) }4 P S& X( t) |! v% y4 N( \ K(command ".arc" a b c "")' c. F: Q! W6 o
(command ".array" "last" "" "p" c "NUM" "" "")/ u0 p4 Z) K) e q, J7 C; n4 V
(princ))' U6 j' z* ~" X% `+ }
' B9 c$ R/ A7 {# j;=====================================================================
8 `9 r2 h( u8 k! |5 W. [' L;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
' b5 t) t& R8 F# J3 K* a;========================== 03-11-2024 ~ 20h02 =======================
- K3 T" Z/ M' o4 L3 l;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
* a8 p( ?* D, T7 [: S1 V& I(defun c:hecloic ()3 R$ v7 p* r5 y
(setq a (getpoint "\nChon diem: "))* ~: \3 {* F& F1 \; d7 S
(setq b (getpoint a"\nChon diem: multi "))
# M [+ A- g- D(setq c (getpoint a"\nChon diem: "))(princ)- @8 E; V0 d, O' f+ w
(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) M; u& }+ e$ w3 g3 M$ }
(command ".arc" a b c "")
9 i! s# d Y9 L& U0 V H: q; `(command ".array" "last" "" "p" c "NUM" "" "")
: {& m. d( F6 Z9 n! N(princ))
* Q. q6 H$ Q, c$ T+ s2 l& r/ ^
- u+ W* G, F' j;=====================================================================
L8 ~" j( c) ]/ a& g;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============8 I5 s c, G7 y, ^0 O
;========================== 03-11-2024 ~ 19h38 =======================& {8 m2 a! m+ g9 z7 j
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================
- Z d8 c4 B1 e
% G% N _0 ^1 N* k, a5 C% j2 w$ u(defun c:gay (); ` d) N' m/ |9 u) F# A
(setq a (getpoint "\nChon diem: "))
* S0 E/ Y* n2 W% g+ p% a(setq b (getpoint a"\nChon diem: "))8 [7 O( ?) e) X6 M) M0 V
(setq c (getpoint a"\nChon diem: "))(princ)
9 q7 m$ t2 K+ O2 m9 A$ _ [1 F(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 J% [& D. n3 T: b @1 k- [; z(command ".pline" a b c "")6 j! O- J- Z& j- K# B& `
(command ".array" "last" "" "p" c "NUM" "" "")
1 `, Y& w7 T2 q: \(princ))
7 X, R9 l% H2 v6 w( l, h) {. n' ^+ W+ I/ Y* W7 ?$ i
;=====================================================================7 a% g$ ^5 m5 D' O
;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
! X# c- v8 Z9 N( A" p# q;========================== 03-11-2024 ~ 20h02 =======================6 N4 T; u% D2 g$ L0 e
;;;=============== Tran Ngoc Thang - Sinh 03-05-1976 =================4 w9 J/ N; ~! h, ^; m: Q+ W
4 a, Q2 P; w: j Q( s3 ~7 g
(defun c:hecloit ()
# ^& H/ R7 J$ h! n- i ~4 J(setq a (getpoint "\nChon diem: "))- B. Q. x, ?5 Y9 H" ^
(setq b (getpoint a"\nChon diem: multi "))7 o( } H1 f. h' I* ?
(setq c (getpoint a"\nChon diem: "))(princ)4 W( X3 D4 b' {
(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ {0 `- _2 k( W9 i/ G( @/ V(command ".pline" a b c "")
: |$ C, A) ~3 A. \$ e$ I(command ".array" "last" "" "p" c "NUM" "" "")
* P6 z0 r; s& }(princ))0 Z; T I6 h% ?( O1 A5 }
9 n( L! y# s) \5 W8 Y* n$ O2 r1 a% x" J9 n$ y
;;; ============================ Merge Hatch =============================
1 w0 U$ s6 P9 b1 B, w! U4 d' b2 @, B' U* f2 h
(defun c:mh (/ ss entht sl i dt dtht)
) O( I$ d9 @. f0 Y( T" Q2 y( D) ]/ v
(princ "\nMerge Hatch - free lisp from CADViet.com")
. h) w% d; g/ H: e' X
! r" n' [! q" ]* C% t (setq
3 P+ \6 k, X0 r0 i7 x, u* M3 t ss (ssget '((0 . "HATCH")))$ @3 ^% W+ B' d+ k! M
sl (if ss# k# W, F$ Y [) P+ i
(sslength ss)( f+ v/ a. o, v; S/ A# t
0* N% K4 V/ n6 B0 F
)% _, `+ d5 R+ z7 A |1 a
i 0
3 B6 @2 Z: T1 F: B3 V l 0; B1 u7 a+ ?1 j3 b, {2 {: r& ?. R
)! l+ r( _: l- O4 q' V9 G
$ v$ r* K ^+ ]. F3 G9 R
(repeat sl7 |2 c* G1 G4 E b. C
(setq
0 v1 z; i1 |+ X* o; j- _8 q2 g( ` entht (ssname ss i)
+ }( Q5 s& E- c/ O! W5 I dtht (getbdata entht): C8 \& t( s; C7 S& w: K4 O6 d
dt (append dt dtht)
3 r# {1 T* v" y$ ~+ J l (+ l (cdr (assoc 91 (entget entht))))1 o+ z, C8 Z6 j0 s0 s/ U/ F5 h
i (1+ i)6 n$ U% Y1 L2 A. C0 ^
)6 \ j- T2 \+ _: v) g4 q
)
6 e# b5 b1 d0 P/ D/ b- t" {7 t# C. ?3 G8 Q
(setq ent (ssname ss 0)9 f5 X" r$ z5 T' s C* Z& e
ss (ssdel ent ss)8 s- a }' @ W5 Z6 J" Y
tt (entget ent)" e- a& Z8 I, H7 Z7 Y( |
duoi (member (assoc 75 tt) tt)7 l! P6 q/ `5 ?7 r+ C
dau (reverse (member (assoc 91 tt) (reverse tt)))
$ N/ |2 Y$ s1 _# W% s tt (append dau dt duoi)( n6 G1 z: { o" t% x
tt (subst (cons 91 l) (assoc 91 tt) tt)
+ r, y3 \! u* y, F ~0 [, _" A& Q )
( P5 Z+ p+ p% ]# H$ U (entmod tt)
9 r% Z1 x2 B1 u% y. T4 w5 f7 L& N/ d- C0 r) f2 [! a2 j8 B
(command ".erase" ss "")! w- g. m+ n( Z/ ]: a& G
(princ)% Y/ ] C7 S; k x. `; g# |' @9 A
)/ c' |7 f# u- l% J, {
8 f4 D. z; ?3 m9 h7 Z
(defun getbdata (ent)% s! h) _/ q3 Q$ M' i1 I0 a, M' Y
(setq tt (entget ent)
4 X5 H) H% u4 c2 a& h tt (cdr (member (assoc 75 tt) (reverse tt)))
( C2 d7 T# n* a, P3 g9 H* I% X tt (cdr (member (assoc 91 tt) (reverse tt))), V2 v% p, i$ y
)
w/ ^1 d, n# T0 E7 z# d1 x1 l)
9 h g) n$ g# u. R7 z5 f1 I& r9 `$ l% Z& m3 `
% k |9 b* ]( _. h(princ)( l; m8 T: x- {* K( ^
! Y8 |$ r6 t& U9 C( U;;; =========================== CAC LENH LAYER ==============================; U8 e# I' R& k4 j
;;; =========================== Layer hien hanh =============================7 Q9 g7 @; m* q+ E7 A) |5 \/ k
9 V% Z: O* g" b" J6 ?" }
(defun layset (/ LAY) (setvar "cmdecho" 0)
+ B- L5 Y# G2 }/ x (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
9 ]5 c- f: x, `" W& Q (if LAY (progn $ \- U }0 ]1 U8 M$ f- |; L
(setq LAY (cdr (assoc 8 (entget (car LAY)))))/ ~% k4 ~6 F, q6 ~; w: Z
(command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
- a8 {3 U+ @' }) f0 N5 ?/ B, e; n9 y. n (progn- c, X* C7 ^0 c0 f
(if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) ( U# o6 T0 ]8 ?0 ~8 M) l
(progn
3 H4 t; V3 {% q# D5 N1 O# ` (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )$ J2 n2 u: d8 Y6 k1 m H% X
(defun c LL () (layset))(defun c AYSET () (layset))
9 n) \8 _" m5 ]. d4 x
; I- _7 {. H" V;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
5 N0 p7 C/ w. A: L3 r% K; ~! V; R: ~, M' U
(Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
1 X4 q, @# N7 u (if (not (setq SS (ssget "i")))+ N# O; j. q) `# a; X5 ^1 m
(progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")' J9 ?: t9 C' X( A
(setq SS (ssget)) ) )
, [; S9 ?$ j2 [& ]+ }: N (if SS (progn
2 Q& n" X7 Q8 Z$ l! b9 } (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "")
! z6 x# M% |) A* I+ s4 @. r! p# J (if (> (getvar "cmdactive") 0)
4 r- H3 e6 A5 O- c (progn
/ t# |' E) c$ _- F+ w9 e (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
3 b1 D; x! a( i' U1 Z4 V, H. N* {- J- @" A (setq SS nil) ) (if (> CNT 0)
$ D! L% V! V, D% \6 k5 W m: Y8 c (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
7 d" b3 G* x4 w! E* j (if SS (progn
/ S3 `. n$ R5 y3 U9 O# m2 k* [ (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
# j$ O; t# N1 X2 P: v9 |5 } (if (= (sslength SS) 1)+ l: [2 @0 ]+ u7 x/ i# \
(prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
- J$ y. B6 v: K! {3 ~ (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end2 g/ h& B7 Q* d) A
(defun c AYCUR () (laycur)) (defun c HH () (laycur))( V, p& m& E2 M
/ y- }0 y& W1 X# r9 A' K2 p' a
;;; =========================== Layer Iso ===================================' z/ r. I/ V0 n+ A
) L. f) Z- k7 d: \4 Z8 ~* Z(Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
' J; d. l, C9 X: y3 m (if (not (setq SS (ssget "i"))) (progn- o f# Z( X: o% G5 I/ ]/ @
(prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")4 n. o% ~7 K, [+ m5 r% P# u# w- b% c
(setq SS (ssget)) ) )+ o! }0 l( {% |3 a) f2 q
(if SS (progn (setq CNT 0)* Q) U+ T4 q1 S6 B
(while (setq LAY (ssname SS CNT))! M- K% [$ X; T' p: U% v% ~" ~
(setq LAY (cdr (assoc 8 (entget LAY)))): B& b4 `8 U) J) D
(if (not (member LAY LAYLST))0 f' E4 v+ j) Z8 R, g3 x) ?
(setq LAYLST (cons LAY LAYLST)) )
$ B4 c( u' s: V0 q6 p8 B5 | (setq CNT (1+ CNT)) )" V ?3 {* P1 E* D' P6 G, r3 o
(if (member (getvar "CLAYER") LAYLST)
) ~9 u, W& k8 K: I: L9 [ (setq LAY (getvar "CLAYER"))& r/ {- K8 b4 r5 D% L3 w7 l1 d
(setvar "CLAYER" (setq LAY (last LAYLST))) )3 ?- w9 [; m/ ]/ U+ v$ U( y- T1 n$ m
(command "_.LAYER" "_OFF" "*" "_Y"): h; h. L. b% W; ^' H% \
(foreach VAL LAYLST (command "_ON" VAL))
" e7 I4 ~0 {- n+ r/ ` (command "") (if (= (length LAYLST) 1); G8 F4 s9 ]5 k% u V; J1 K
(prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
3 o1 d$ j: g& p+ r3 h4 { (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
) O8 b3 d2 W: d: a' U7 v" L "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )& V1 i4 {% K; L( U$ g
(defun c AYISO () (layiso)) (defun c I () (layiso))
) @6 q) T+ u( {7 y6 R! r) A V6 z9 j' v6 L6 H. F
;;; ========================= Layer Match ==================================
$ [& w/ Z# Y9 e ?. ]5 L- \9 O/ o( n
(Defun LAYMCH (/ SS CNT LOOP LAY ANS)& Z. u' Y4 e; F- A' G4 Z4 w8 c
(setvar "cmdecho" 0)& u9 ]# E/ _$ T* X; r4 L
(if (not (setq SS (ssget "i"))) (progn
6 s, n: H3 i4 ~9 ? (prompt "\nChon doi tuong muon thay doi Layer : ")$ y' k% ~: W, \8 |$ ]
(setq SS (ssget)) ) ): G" v+ x& o( n3 Y7 I4 h4 R6 Z
(if SS (progn
S: z/ ^5 r& M* E- ] (setq CNT (sslength SS))
( E, U4 k8 h0 e (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") 0 X; e w: B7 g; B
(if (> (getvar "cmdactive") 0) (progn$ n; R a! l5 z0 J8 c
(command "0,0" "0,0") (setq SS (ssget "p"), [: `6 h3 u: T9 {. z. c9 a# t
CNT (- CNT (sslength SS)) ) )- _1 L' O9 S0 g0 w
(setq SS nil) ) (if (> CNT 0)
8 R5 l* N% U* o% K4 j) b+ Z (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )( b6 T0 t$ z1 w) t% x, t+ _8 g
(if SS (progn* O1 b# n A! V* r
(initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
# J7 Q1 Z9 R- e+ C (while LOOP (cond2 T& [7 }4 N0 F. S j0 d
((not LAY)1 I3 |" o6 Z3 X0 d1 z" V# O. S$ Z: W
(prompt "\nKhong chon doi tuong.")" G/ |( u3 V# _6 O0 q
(prompt "\nSu dung layer hien hanh? <Y> "); r5 z U' C1 ]+ C9 j+ d
(setq ANS (strcase (getstring))). @$ h: f" x+ m
(if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
+ J/ F6 H9 s1 D8 F (setq LAY (getvar "clayer") LOOP nil ) ) )
$ A+ C, _" J o _/ d# S: S ((listp LAY) (setq LOOP nil) ); T& H1 k; r" r& h" \
((= LAY "Ten"), U8 R5 P" @4 P' h
(setq LAY (getstring "\n>Nhap ten layer: "))! j+ c2 f4 t7 R/ ]3 f$ H H* g3 f
(cond
* B0 j9 h# [6 y5 U ((tblsearch "LAYER" LAY) (setq LOOP nil) )8 q- B- q7 h3 |# S
((/= LAY "")1 o8 F& r+ w& [4 X" u
(prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")9 T4 e- H {8 r5 i9 w! \/ E
(setq ANS (strcase (getstring)))
0 M; x9 f P7 g8 r ^" s' ^ (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
1 X+ O) p7 m" ? (progn5 p# C E# Q: ?3 g& [: n
(command "_.LAYER" "NEW" LAY "")9 W: V# _8 | s* m- a
(setq LOOP nil) )
3 k+ K2 \! t( U$ Z+ J$ ]0 u) k (prompt "\nLoi ten layer.") ) ) ) ) )' b4 h0 ]$ A( D# p+ {' N
(if LOOP (progn (initget "Ten")- e3 i& S3 [2 f% i% y1 K ?
(setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP4 Z- j# w# h2 B+ r p2 m
(if (listp LAY)
4 I7 \: Q; {6 U$ ]" e) S (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
& Y( F, d! e# b* U3 p0 r; \9 z (command "_.chprop" SS "" "_la" LAY "")
/ p4 d% z9 a2 i' k# @: x8 Z (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )0 j$ m6 `0 R8 y4 g/ E, X/ Z$ o
(if (= LAY (getvar "clayer")). V& K' i1 f0 l4 W2 q5 y* [
(prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
* c% S' T% N: P' H(defun c AYMCH () (laymch)) (defun c:CLL () (laymch))* R7 G O" O, B! i! s6 _
% ^0 N9 I, V; e! n/ B9 p- N% ~" _;;; ============================ Layer OFF =================================& J, r0 _! F6 k# v' l6 ]* e
3 i/ v6 I+ d+ r(DEFUN C J (/ SSET SSL ENT LAY I MODE)
. i4 q! o1 a& ^ D7 t (SETQ SSET (SSGET))4 V# I% j6 n+ q% ]! k, U
(IF (/= NIL SSET)
: \, G* X+ @! G& B5 Y ]1 T (PROGN
' v; Y- q' ~: y1 i+ |5 B* x (SETQ SSL (SSLENGTH SSET))
1 k0 }# y- D) r- L (SETQ LAY "")# J, e+ ~( B2 T8 [. m- F0 X
(SETQ I 0)' r# H$ }! N; n" W" ^
(SETQ MODE 0) 7 G5 r0 v% F4 @/ D; w( G
(WHILE (< I SSL)4 t9 ^8 j' X: o' B% Y
(SETQ ENT (ENTGET (SSNAME SSET I)))
& E4 n2 x6 T: Y9 c (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
/ n+ ?% k: _/ t3 N/ g* f2 i- m4 B (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
6 d8 s- X& T' K1 T8 b( [4 B. l (SETQ I (+ I 1))
" w* M6 ?0 `( ` )" @4 z- i3 {$ `# `5 K* i
(COMMAND "LAYER" "OFF" LAY "")8 Q( d6 M* \$ z+ K
(IF (= MODE 1) (COMMAND "") )( `; c& z$ g2 X L: d F* {
)$ i# v6 S6 }' i2 [# v
)+ k( y! k- A- J6 F$ j& W3 K; O
(PRINC)
' A) g) l4 h+ v5 T3 G; O, x; Q- G)
! V/ R* v8 e# y7 ]+ z& w0 V6 l n; ^ e/ v
;;; ================================ Layer ON ==============================
' R, a: ]( _) ?0 N
3 L5 r; D- Q; o$ u3 {(Defun LAYON () (setvar "cmdecho" 0)4 t' Y- n/ ~. ^* d. R
(setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
f, K: z: K9 X1 {. @$ V (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ)); v1 F4 s1 r, G' t# w4 w ]
(defun c AYON () (layon)) (defun c:LOO () (layon))
9 u; R( H7 J" d( K1 k(Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))/ _8 K% c; E6 H4 g- s% C# [' v
, b, \: o0 W% Q c7 z) U/ d7 V;;; ============================== Layer Freeze ===========================
6 S) W$ _/ [4 |, g! D6 l2 ?1 d! \! v* e( ^* i/ M! I* \
(Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) 8 p' k+ I$ t2 G) B( p3 t
(prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))( @7 j4 ?* f& A; k: `& H
(IF (/= NIL SSET) (PROGN. ~0 L3 O2 G1 x* M+ K6 y; U# D
(SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) - B) i( P" ]+ n" Z! u
(WHILE (< I SSL)
, _" Y+ y5 M2 [) T* e, ^8 h$ V (SETQ ENT (ENTGET (SSNAME SSET I))); ?; q. s; @, e# O
(IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
9 o4 H8 U5 T% G$ H; r/ N (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))7 h! x+ }% y# B
(COMMAND "LAYER" "FREEZE" LAY "")* H3 e+ {' g) O$ t5 }
(IF (= MODE 1) (COMMAND ""))))" b$ r* d$ L2 W9 c: y, _
(setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY); z2 \; y8 G+ Y @3 F& q6 \
(princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
4 ?' {. o' X! }& X) N(defun c:LAYFRZ () (layfrz)) (defun c:LLF () (layfrz))
- g1 j O+ K$ J% c: s. u- a9 \3 k1 k- v$ H2 s3 ]$ n
;;; ============================== Layer Thaw ===============================
) p# `' J/ o: C% B0 V9 \6 j5 q+ f) y% T% @! ^+ g, s
(Defun LAYTHW ()
% c9 W7 N0 n! M( ]2 L, S1 k (setvar "cmdecho" 0) i. y7 N6 H- `* J$ L2 x9 F
(setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
+ A- q7 v8 |1 L! _: U$ }/ _ (Command "_.LAYER" "_THAW" LAY "")
# a* v: C, S% ]1 \5 a (princ (strcat "\n Layer : " LAY " da THAW.")), a7 D* [- f; u n- L
(princ) )
: T, r: m: `% K. j(defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))0 I* w8 R7 ]9 h$ d2 D- K
( j6 J2 s# o6 Z" V; Y: N;;; ============================== Layer Lock ==============================4 g( b5 @, o7 z$ p
2 h* r8 e* `1 T5 z, i* Q4 \(Defun LAYLCK (/ LAY)
# w N+ D6 z8 N# j% x. l4 T5 ~ (setvar "cmdecho" 0)
4 k0 U N, t# `7 l& u0 s (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
6 c' `8 P0 C8 |' T: S (if LAY. i% K& ~9 i6 T- }5 j- ~' _2 p
(progn- O, O% ` V& R( d
(setq LAY (cdr (assoc 8 (entget (car LAY))))); Q \- [. A, V, ~8 o5 v
(Command "_.LAYER" "_LOCK" LAY "")
" x8 ?2 x$ Q' A" b! C5 m1 T. a5 d: x (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )% F2 _+ ^% a8 E7 H8 ]+ H
(defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
2 \2 a/ d) w+ F
* y' H0 ?4 O- a, Z% t1 t2 C% z5 S;;; ============================== Layer UnLock ==============================3 `5 j6 m. N0 T! U D6 C. j
5 F5 |1 _8 y0 r; c, \
(Defun LAYULK (/ LAY)/ H3 _ P6 ^( l3 p6 y
(setvar "cmdecho" 0)& I7 U2 X" R6 L) U. J5 Q
(setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
2 s' | ]) p2 ~, l7 y+ B1 N (if LAY
, y1 E, X: u/ b# K5 t8 @% `8 ]: d (progn) e4 ~% D; |* v! x( b$ C
(setq LAY (cdr (assoc 8 (entget (car LAY))))). W9 Y; [, V) [5 r/ S" [, y/ [* _* c
(Command "_.LAYER" "_UNLOCK" LAY "")
# u$ J) {1 S3 ~" N* n! Y- z# l (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )/ p9 |. I) D# A' }5 J$ Q( L' d. a1 i
(defun c:LAYULK () (layulk)) (defun c:LU () (layulk))) o/ o$ P* l2 B8 K" H. Z
1 p* P$ @8 \5 o" [1 C: p5 t
;;;===================== Delete all objects of Layer ========================/ h }8 e- c7 V7 P1 K7 h1 h. h0 N
: X9 M. x5 x& m/ N- F3 J8 d! w/ q(defun DELAYER (/ ocmd L S) + k: X6 O% P, w" J+ M0 A
(setq ocmd (getvar "CMDECHO"))
; b2 D" Y, k9 p' { (setvar "CMDECHO" 0)
1 ?& R4 P4 \+ i) { (setq L (strcase (getstring "\nLayer(s) to delete: ")))
* s" {& M- d, v' O6 u6 D& W0 y6 b (setq S (ssget "X" (list (cons 8 L)))) ! L1 o" {( |# S- K. \
(if S 6 ]) T- X2 i) G
(command "ERASE" S "")
8 ]- @% U) ]! J+ y6 O& U* C (princ "Layer empty or not a valid layer name.") ) , U. s5 z" S* t0 j( o7 M% Q* @
(setq S nil) - V4 b/ }/ w4 t2 |% h
(setvar "CMDECHO" ocmd)
: q$ M$ [8 Q i4 W! Z, r9 w (princ) )
: U. b" Y0 s+ M$ T9 L2 Q(defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
, L0 Q7 H. H3 o' D2 W4 |
3 q1 A F% v4 b I; ` w& n;;; ========================= HET CAC LENH LAYER ===========================
0 f8 t6 R$ `# a" a# g/ @( \* |( P* h0 J! P
;;;====================== EXTEND NHIEU DOI TUONG ===========================
& C3 d* W" O/ M6 l5 o- r" k) ]; z1 i J5 C$ \6 a2 T* b
(Defun C:EET ()& s- G2 E, L: U& K- s: X/ m8 z. [
(Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
( X- T% B2 z( g B i (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))9 X: ?8 o# ?$ J- v
(Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))4 j( _2 F/ s3 r+ |: [ L
(Setq I -1)
! G/ I" |0 S$ `( n2 t3 n (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")2 Q7 |: G( i" s. _
(Repeat LEN
; S. }5 S$ O# d; o0 X$ |) l& z (Setq I (1+ I))/ n5 V9 S9 ]* L+ W' C: n6 \
(Command (List(SSname SS I) SIDE)) ) (Command "")6 P. J. [- I5 A. ^/ H, }7 @
(Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )" S- L' ]' ~' U& z* I- e+ G* I, Q
% O7 l5 i! D5 {6 g+ A$ n$ u0 P;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============& j4 w' L' B* ]! A6 T, Q) U$ p6 e
/ @$ u, R2 p ^4 i(defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)1 |' u7 F! H+ |
(setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
! M1 \. x( N+ y" h (setvar "osmode" os)5 }7 v e9 i! O
(setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))6 k0 A! D5 b6 f
(command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
/ E% E0 ]# v" D( c4 L
& T3 ]0 ?$ v* A, [# N: ~9 g;; ================ Change width of polylines =========================
+ R4 D2 {4 c: I
9 v9 }! }) V( n(DEFUN wp (/ a b sophantu sodem list1 ha:wid)6 u) v0 I* p5 y- U
(PRINC "\n Chon doi tuong can thay doi do day (Width) !") - }+ i) }! d- E% C
(setq b (ssget))
) z" N& L) ^. h: F8 f (setq sophantu (sslength b))
- _$ X1 q7 ?) N3 V9 x x) |7 P (if (null ha:wid) (setq ha:wid (getvar "tracewid")))& k1 |; A3 O; U8 ? z: N
(princ "\nDo rong polyline <")
9 T( E) Q+ `2 C* \6 c (princ ha:wid)$ T% F( N3 R$ E
(princ ">: ")
7 d p% M, }, w+ ~+ N8 @" K (initget 4)7 c+ j0 _5 t& L7 S* `
(setq ha:wid (getdist))' j h3 G! x$ E2 c9 E+ u) k$ F5 x* E
(if (null ha:wid) (setq ha:wid (getvar "tracewid")))4 h% ?2 S9 w, r0 H% C% w9 D& f
(setvar "tracewid" ha:wid)( Y/ N/ W) M; N* E4 B
(setvar "cmdecho" 0)
. P/ y! l b& \1 j (setq sodem 0)
2 B0 i) V7 b' ?% R2 t (repeat sophantu! \' U! V7 ?2 t9 a! d! q" Y; @
(setq a (ssname b sodem))
6 A# k2 Z( C1 l0 t- ~4 p9 o (setq list1 (assoc 0 (entget a)))
4 {3 u8 D' } w) ?$ i (cond
0 |4 D8 u7 n$ i5 S. q1 }# g ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
% `# x4 a6 Y; q. }' T7 w! Y& W2 T (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) % h" C3 g9 Y' I I2 p
(setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))3 h% Z' K1 ~. k8 Z& B
(defun c:wp () (wp)) (defun c:pw () (wp))
& f5 v5 E a* J/ L, w& G
, H5 t5 @3 ^. [+ s) F% k;; ================ Change radius of circles ==========================
. H9 G9 L( K0 ^) v6 p& L6 a, I) B) {2 x+ d7 S; y6 D
(DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))6 o% x( K" o. U9 g
(IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
) n$ c1 O; A5 ^: }- i' { (IF (/= RD NIL) (PROGN (SETQ I 0)
) r1 g7 b9 j* Y+ p9 s! J (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
% L( t7 O( W3 p( }5 p# G: E; @ (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
: Z2 @- h, P1 |$ x4 {% m (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
" z3 y0 t5 _; g% a9 O$ l1 i( w
* [3 [( ~' i- R/ `3 L- ?2 W;;; ============================== TEXT Hight ===============================. a3 s) h/ e9 Z
8 b$ {* H# o6 j |5 k. {(defun texthght (/ ent hght)' i8 V, {8 t# {! l2 E
(setvar "cmdecho" 1)
0 n# {* M& s/ [; Z. [6 W; l5 E (prompt (strcat"\nSelect text entity with required text height"))* H2 z, C2 D4 d' z% t% O
(prompt (strcat"\n."))* W4 b7 ]0 n" x2 s. H
(setq ent (entget (car (entsel))))( H/ n) b+ {0 H- B v
(setq hght (cdr (assoc 40 ent)))9 D- C) z5 f& e& v4 L! L
(prompt (strcat"\nText height now set at "))(prin1 hght): ^$ k8 x3 a0 V: s H% A, U+ V: P* M
(prompt (strcat"\n.")) ( H9 m! R- F) G2 k. R" G2 f
(setvar "cmdecho" 1)
" x( `4 U0 u& _1 s6 J$ V, C$ j; M (command "DTEXT" PAUSE hght "") )
, O5 C. ^2 k5 o+ k* i(defun c:teh () (texthght)) (defun c:texthght () (texthght))
2 w$ N& `: n* F: O6 U" r6 T7 a
# ?4 D3 l; ]; X3 g0 \;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================" d5 A+ [5 k6 p. J& v3 D/ \
, |) m, J- J& D; c(defun c:tuu () (setvar "cmdecho" 0)! _% V* b* t9 n4 s. I- K
(prompt "\nHay chon dong TEXT can gach chan ")
7 a$ E9 q5 N/ L$ f f (prompt "\nSelect objects: ")
' O5 e- W8 M0 S" w4 Q& R& ] (command "select" "au" pause)6 p2 j: D- L' O5 o, `; T$ O; C
(setq sstxt (ssget "p")
3 s' T& n- X; p- ]' K sslen (sslength sstxt)1 ^/ K4 F6 d2 c* m9 x* Y
ctr 0 )+ ~3 i9 U; Y9 a3 _: }; ~7 p0 s
(command ".undo" "mark")& F* y; q H# @$ ?7 s1 I# o# b
(while (< ctr sslen)3 O! B3 Q6 G$ R+ f" `& T
(setq listxt (entget (ssname sstxt ctr))
: M. i) M: E0 U txttxt (cdr (assoc 1 listxt))
5 v8 z: x; b; K& Q/ v9 D! j$ G$ Y enttxt (cdr (assoc 0 listxt)) )/ @- {1 P9 Z: F" u8 F
(if (= enttxt "TEXT")+ x* T) J; P2 @' v; e6 {" ~9 n
(progn
7 ?/ m, I& j h/ f7 F (setq testxt (substr txttxt 1 3))2 \, X6 A3 V. l# {: Z0 g
(if (or (= testxt "%%u") (= testxt "%%U"))& H, h9 c# ^( y; u
(setq newtxt (substr txttxt 4))
7 Y' D$ n2 Z2 W3 G; }2 c2 }5 ? (setq newtxt (strcat "%%u" txttxt)) )
: N6 ]2 a3 f" k7 n) c (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))' a! B( ^* {: @/ ~7 |& H0 q! C
(entmod listxt) ) )
+ g# ^! C" |6 o% }! \8 C! K (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
% c8 n2 w" H, l4 p( K
$ P/ l+ Y- |, O, }2 ]7 H) _;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
( o: X7 Z6 q+ ~ _
! Q! N$ Y7 y ]5 I(defun c:tob () (setvar "cmdecho" 0)
2 d; U% F: A1 U/ B- e1 h5 N (prompt "\nHay chon dong TEXT can gach tren dau ")) b0 z) F% F, j) G% \3 T$ @2 F
(prompt "\nSelect objects: ") n/ q& ^% m+ b- N; W, P: D( ^
(command "select" "au" pause)
1 V& ?, {* \( E; G! K0 {8 N0 t# \ (setq sstxt (ssget "p")
- q6 ?0 A8 t7 E" l {4 y sslen (sslength sstxt)
" T' T" x! n, V6 [1 | ctr 0 )1 M4 v& Z% i6 E1 @1 C" x( j6 ~0 A
(command ".undo" "mark")+ Z+ y, f5 D5 R9 @/ L7 e5 [/ i
(while (< ctr sslen)& K$ e# j) D) n; \3 ^2 }
(setq listxt (entget (ssname sstxt ctr))% i/ Z! ?( f9 w B% Z* f7 B
txttxt (cdr (assoc 1 listxt))2 |1 W* T$ T6 ]: w
enttxt (cdr (assoc 0 listxt)) )
! B5 ?2 P+ g* D& g (if (= enttxt "TEXT")
% }% Z/ Y$ U y/ q3 W (progn
# ?, Y/ t$ s, n8 G. o (setq testxt (substr txttxt 1 3))
* F* v, F* l O! |9 L (if (or (= testxt "%%o") (= testxt "%%o"))2 M) u% `- z9 j8 p
(setq newtxt (substr txttxt 4))
) @8 J3 U5 e9 {1 Q* `0 h (setq newtxt (strcat "%%o" txttxt)) )% K$ f6 d8 R+ C+ x( }
(setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))4 y( q) A# C$ H9 y1 v9 h5 r
(entmod listxt) ) )3 f; W6 V1 E) y# D; P/ Y5 D# G# A; H
(setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))8 n& D. b% Z2 ], ?
: x- e% X' v: b) A+ Z
;;; ========================== Tim & thay the TEXT ==========================
; g: H" E: I. q7 k: Y/ ]' j& E, H9 D: X
(defun frstring (str search replace / str1 str2 index find)
8 L7 H+ U8 v: S2 r, _( W(setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))" G8 _' v, A Q$ \# m1 N- B y
(setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
$ U8 _. O- c1 K(setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))* w* I9 ?0 O$ y; g" E9 }
(defun hai (/ dial)
# w" p$ c+ ^9 p7 ~; l/ d7 i1 f- x (setq dial (load_dialog "hai.dcl")) ;;goi dialog
, m- }- ?0 h( L (if (not (new_dialog "find" Dial)) (exit)) ;;# M9 T1 N6 B# L/ M) h$ ^" e
(mode_tile "find" 2); Tao dau nhac tai hop thoai) ]( A/ S+ p& \
(action_tile "find" "(hai1)")) t1 ?# B9 K5 S h! H
(action_tile "replace" "(hai2)")3 x! N6 A4 e. ~2 G, I
(action_tile "cancel" "(done_dialog) (exit)")
4 u! U2 ?) b- A+ S6 Y (start_dialog) 6 ~$ {, u; o/ G0 X9 R+ R
(unload_dialog dial))
1 w$ C' T8 o3 j! P(defun hai1 () (SETQ str1 (get_tile "find")))
; f! l# f& [7 {- O; I. K5 E B(defun hai2 () (SETQ str2 (get_tile "replace")))
: d% g. t' P9 U" }" f! @' s, @$ h1 k4 p
(defun c:TTT (/ a str str1 str2 newstr taphop sodem)5 T. w3 X& w5 L* F4 Y
(hai)) q# J" N( w; [7 Y7 }; s% A4 T
(if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
7 N- h/ l$ f( W5 o" v' K (progn
. I9 j, B. y r. o4 s9 C (setq taphop (ssget '((0 . "TEXT"))))
. I$ [4 J- W' L% r0 _ (setq sodem 0)
# ?# v; F' F: {6 |9 @ (if taphop
: R4 n1 v' h9 Y) f. } (progn
$ j, `& G1 w- U9 Q. z; `4 E (Repeat (sslength taphop)
; h: V: p; a g, R" T2 A) o/ Y (setq a (entget (ssname taphop sodem)))
$ Z2 b/ g- k/ g (setq str (cdr (assoc 1 a)))
a. B1 [% D' O D! }. E3 e (setq newstr (frstring str str1 str2))
) I3 x9 |* {2 y7 W. c- I3 F (setq a (subst (cons 1 newstr) (assoc 1 a) a))
; H! ~! Y: s7 T" m7 M- `: Y9 \ (entmod a)5 G2 `8 P& p- S- }) ^
(setq sodem (1+ sodem)) ) )$ X3 d( Z5 @3 M7 g9 p
(princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
# ~- \6 k: x/ [- p# w& _ c* k; |0 b& V" r ~2 ]
;;;============================= CHTEXSTY.LSP =============================
$ Q* Q0 N* C* Z& g: d6 n: R B
' L, R+ A! q! r(Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")9 i' w+ e& [2 G( t6 ]9 q
(Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
6 u7 H0 n- h& M(Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
* Z% M& L+ G$ u& u6 Y; W9 t+ E(Initget 1) (Setq C (Getstring "\nEnter new text style: "))
5 h9 ^7 U. k/ i" r4 K6 [) z(Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))' T3 T- a) V2 r1 ?+ H x( t
(Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
3 [/ [8 y' a8 Q3 \0 p(Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
( Y- e) n' ~% C* W/ Z* h2 c' W(Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
/ s# A* K% ^7 O; L; |(Initget 1) (Setq A (Strcase (Getstring
6 t+ t8 O7 E3 n* Z& C( A"\nEnter text style to change: "))) (Initget 1)4 G7 g" Q. M; @. Z3 o; |
(Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
N* F' I) x( F0 z5 W2 G( C3 C* {5 o* R" l(Extang C) (While D (Princ ".") (Setq E (Entget D)) (If7 N. I1 Y4 r4 j9 @/ B4 r! r
(And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E)))): o2 B' W k) i' y! q% L5 h
(Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))% P. U7 @' j) I0 A8 M7 z( @# A
(Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
" R+ K8 }: W$ F3 c6 @- B6 G2 ?% G(Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
, I$ _* d: T5 I6 l V: l
# ~1 {: u" }! U4 A7 D& ](Defun Extang (A) (Setq A (Tblsearch "STYLE" A))6 \. X$ ]$ W! N& f
(Setq J (Cdr (Assoc 50 A)))). u* w8 Y, e" N+ ^) @( U
# L$ \) Z4 Y% @$ U) ?- l;;; ============================ DRAW CLOUD ============================= a# S; O$ D8 X! G( y) ~) V
8 J% K& b# v" d% A1 Q; A( B% ?
(defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
! i) t9 ]/ I T (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
% _( i+ [; f9 C& X4 U" i0 q8 K (setq la (getvar "clayer"))& p, p7 |% m. W" l
(command "layer" "m" "cloud" "c" "5" "" "")
0 G- F& Z0 T, O* Y w2 f' t4 Z: C (setq pt1 (getpoint "\nEnter first point of Cloud: "))' y3 U+ }5 ^2 m( @$ y
(if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
; R# z6 P9 }# N. f (setq cnt 1 ss (ssadd))7 ^! W& V& B/ ?! g
(while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
% b% F6 b# i5 W (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))$ H0 J- i. c/ L! \0 q) |6 d! `
(if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
3 b9 p w6 U5 c% n (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
/ D' M3 t& x4 Y W+ }* C (command "pedit" arc1 "y" "j" ss "" "x")
& l+ p: N# B# M, u D# J (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)& J3 {6 o7 c8 I
(command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) ) z2 ~% F. ~+ K) N8 M. ~* }' ~; V1 A% {4 s
(DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
& S ~. [5 J5 V" X" G- R' ^5 x% @4 H% G
;;; ================================ Funtion-Dulieu ========================+ l& n& ?2 p& ?
;;; ================================ Funtion-Dulieu ========================
$ s5 v6 B6 ~; J) f;;; ================================ Funtion-Dulieu ========================
9 p! x+ O$ F+ [9 ~0 W
/ Z) }8 i7 {# g. V0 K$ e(defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
: R) |) k$ Q: y% [- a' I" M% I(defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
; Z+ I1 L; Q) q1 Y* D; R- z: |(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)). n0 \5 B0 N- j( c% M; |: \: s
(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) )
/ d; o" s+ p0 c(defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
$ ]* q" }" S# }' f(defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))/ j2 u; ~% X: ]2 I1 M' Q! T
(defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
. b/ g o: R9 a(defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
2 @' Z8 s( p% S' h/ O(defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
9 r, _' O8 j+ o/ O A(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)))
9 u/ a: Y0 Z/ D* x: Y, f8 F/ C(defun dtr (dtr) (* pi (/ dtr 180.0)))
% ~5 t6 c8 O- n7 M+ j+ }0 h* P8 V7 ?8 a(defun rtd (rtd) (* 180.0 (/ rtd pi)))
! Y' l" T7 B! ?2 `6 w% H7 c8 X/ J( V/ m( P6 E
;;;==============================PROGRAME===============================
+ I* n1 r- F5 R6 ]6 [! Z; e5 q;;;=====================EditDiM Hien Hop Thoai Dep======================
% I& W+ _+ {3 @0 P;;;==============================PROGRAME===============================
* j. Z% I9 L4 }. P& d
- J! @% q# L4 g, ~4 k' f2 m;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
0 }; @. X# \% O/ H;;Chay Cung Du Lieu.Lsp & Hai.Dcl
' @2 p, s1 I2 |7 o" `8 X, j+ o(Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)& }' r( T6 h8 ]) O
(Setq Oldlis (Entget (Car Chon))
! @( ~4 p/ |# B! ^& v Pt10 (Cdr (Assoc 10 Oldlis))
+ A2 Z& Q( ^/ s/ U3 D, B1 E Pt13 (Cdr (Assoc 13 Oldlis))9 d/ r/ S! p9 ^* Q4 _
Pt14 (Cdr (Assoc 14 Oldlis))/ I+ j# u+ _7 ?2 M" _
St (Cdr (Assoc 70 Oldlis))" W. ^1 u3 V- P9 f/ e
Dimdefault (Cdr (Assoc 1 Oldlis))
, ^# x$ \6 i" e* H6 a6 n )) h4 O: r4 H, _, G4 z. |% j4 w
(Cond5 N1 T5 x) r; x8 m& d" j9 g' E
((Or (= 32 St)(= 0 St)(= 160 St))
5 o7 M- c( A8 x' C1 j( Y0 r) y y (Progn
" j9 _+ S C+ L$ ~; P, s, a/ a1 t9 i2 b" ? (Setq Ang (Cdr (Assoc 50 Oldlis))! |1 Z# c& H, r% u: Z
Pt (Polar Pt13 Ang 500)
& r5 Z; y6 t3 | Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)/ S* j- R8 ]! p
Dis (Rtos (Distance Pt13 Hc)) f: O' `! h- E+ O" s
). z3 @" G& O m& ?8 t
)
1 x8 G& A/ L. l) D )+ M4 C8 G1 D: w I' a0 u
((Or (= 33 St)(= 1 St))5 a6 A j) V D2 N2 d1 m+ {
(Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
3 E+ s0 J2 c0 ` );;End Cond7 L+ A. A% K$ g
(If (= Dimdefault "") (Setq Dimdefault "<>"))- `0 P& A- A- n4 _$ H
(Setq Dial (Load_Dialog "Hai.Dcl")); i/ D* d6 j- B2 j- v4 ]
(If (Not (New_Dialog "eddim" Dial)) (Exit))
1 Y- f" O0 O' C) F# B8 _& x( m, M (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))7 [3 i+ P+ ]$ x9 {* w1 @8 |! _
(Set_Tile "text" Dis))1 V' q5 V' P S1 O
(Set_Tile "ha:edim" Dimdefault)8 b' K+ h1 H; W8 a
(Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
' e# f. a4 J8 V+ w+ y- Z# ~ (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")0 [! U! {8 F' F
(Setq State (Start_Dialog))(Unload_Dialog Dial)
1 m- U" U9 \ d3 q; x% y (If (And Str (= 3 State))
* j3 _- n9 S0 [! [/ {" n (Progn0 [1 x; L& x! N% [ s8 s& G7 f
(Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis))); j" A1 i0 o$ m
)/ l+ w" e+ W1 R d: Y8 M( u
(Defun C:EH (/ Chon Name )3 a* u0 O. X5 @8 d' P. o0 ~
(Defun *Error* (Msg): Y& L& y" l! b6 v+ P4 j9 z. V
(Princ "\nerror: ")(Princ Msg)(Princ " ")
0 P6 |! V3 N4 b, X& t (Start_Dialog)(Unload_Dialog Dial)
! b4 k6 h) m* z7 e (Setq *Error* Olderr)(Princ)# c j; o1 h5 k/ h: Q" ~! b6 L
)
/ z% v" e' W/ }9 A- z8 Q0 y (Setq Olderr *Error*)
4 n- _3 V0 x6 h0 Y (Setq Chon T)% f! i+ y8 G$ W+ o% L
(While Chon. S) M0 Q4 H$ K! R! q" e
(Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
. W2 j: S3 _5 o% \1 v y (If Chon
* @5 G5 g( ]9 M/ y) h1 c2 D3 i (Progn
8 `: U3 ? G5 I! G* r: y. @ (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
% v5 I B- q% m2 K& ]$ _! g (Cond# b# E# j, |1 w0 O! p
((= Name "INSERT")(Command "Ddatte" Chon))7 b; d5 d9 C) H' v
((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))' g" l4 Q5 S! H6 k
((= Name "DIMENSION") (Hai_Edim Chon))
, U) T+ R4 l: b2 V )
2 R& n# P9 W* f0 p+ H- x7 t );End Cond4 V1 B: \% E" a
);End Progn
( e: g+ G/ S9 T1 e2 E+ S0 a8 R );End While5 ]! r9 p. r, E0 h9 g9 F* n7 G- ~
(Setq Olderr *Error*)(Princ)
3 s; ?* y/ H+ m( j, \2 a7 ^ );End Program
) z3 u& J* l& q; |; ]) V
+ E# W+ z9 b: b( c% E# C+ w1 P;;;====================DDeditDim=====================
& P. Y: a, @3 R3 f% T8 c;;;=====================Hai.DCL======================
, j) |; r- J ]- \;;;====================DDeditDim=====================
( O3 i! p: K+ c Z$ V- a6 F* H3 M: E
;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)9 b8 G* N c2 x) o( s$ D
;;Chay Cung Du Lieu.Lsp & Hai.Dcl
% X+ U9 G" M, ~0 ^(Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
& i, V3 v/ ]# J$ u* f3 F; v) x+ p (Setq Oldlis (Entget (Car Chon)); a6 Y f) W. x; Q, F( G) t
Pt10 (Cdr (Assoc 10 Oldlis))
- Y! G- H: V/ J9 O, }1 a! ` Pt13 (Cdr (Assoc 13 Oldlis))
: J, J6 t7 L7 X; \- ? Pt14 (Cdr (Assoc 14 Oldlis))7 q$ S& w" I7 h" s# t; f
St (Cdr (Assoc 70 Oldlis))
2 p( l& { v1 N Dimdefault (Cdr (Assoc 1 Oldlis))
4 x0 T/ m6 G5 C* a- }: ?# p$ P. i) | )5 P# e* ?, q# I: L
(Cond
* @7 l1 I4 y0 Q ((Or (= 32 St)(= 0 St)(= 160 St))
* a4 c; L. U) |! o7 e1 A+ S4 P (Progn
4 w a1 F" \' i2 l3 X9 T# L' ? (Setq Ang (Cdr (Assoc 50 Oldlis))
4 F6 W. u. b( a, @ V Pt (Polar Pt13 Ang 500) Y. I- Z) H; u
Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
) E) U" z+ ]7 D- u% `2 N m2 P0 o Dis (Rtos (Distance Pt13 Hc))
6 T1 W) F9 Z0 Q" f+ j) c0 D )( l( `, ^3 {2 |8 ~3 B0 p, k' T: `
)3 Y7 K* r% K$ \* Q3 F4 z: L7 |
)2 g$ K3 _1 L' C. V
((Or (= 33 St)(= 1 St))
3 A- X9 G/ k) G$ r `" J (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
3 S' Y# ]$ Q. t9 r( ^ );;End Cond1 u- w, O$ u, u% V- A7 V
(If (= Dimdefault "") (Setq Dimdefault "<>"))
" \( j! \5 w7 |, O5 ^% G T (Setq Dial (Load_Dialog "Hai.Dcl"))" j( z% L" q: I7 f8 d! [
(If (Not (New_Dialog "eddim" Dial)) (Exit))& d5 A* A- M8 p( e$ g, k; J! _
(If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St)), D+ u1 N( n, Q& }
(Set_Tile "text" Dis))
' {/ G6 O9 D7 J0 [( [ (Set_Tile "ha:edim" Dimdefault)# m' L$ V8 j4 f4 p
(Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai4 [; B$ V/ V" ?
(Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")+ F0 t: C+ p3 o- W+ S
(Setq State (Start_Dialog))(Unload_Dialog Dial)
) M7 n3 X% d* w( |* M- n8 |/ q (If (And Str (= 3 State))2 k+ M9 P/ g2 Q% p
(Progn2 {% T/ @; e4 G p1 D, `& T
(Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
1 [" l9 P, H7 n) m* T& O8 H )4 q* g0 _& E& h% T
(Defun C:EH (/ Chon Name )
0 m! D n" a# {# x" {2 T! C6 F1 p3 X6 A! K6 T
;;;********************Du Lieu********************
0 H% j* e3 b# v: o6 k) M
w; @$ B Y; m, \! S(Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))6 h7 y$ k) ^/ Z0 {
(Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)# Q8 g1 l5 b m+ T! q* I$ Y( F& `/ E: O+ r
(If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
0 x" P- g) ~, x+ F7 a, y (Progn
7 e) q k8 ?5 [" m- N5 j% z (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
: K9 r) h( R' ]! M: z8 t, v' y8 B (Setq Chon (Ssget Hacat3))
! w- ~; K! o3 R% u r7 Z8 r5 X (Command "Break" Chon Hacat1 Hacat2)
; L0 l* R3 D$ |3 _4 ^+ R )/ Y+ t6 U4 f* r1 n) x5 R) ]0 W
)- m1 L1 L0 u) c% S+ f! ?5 Q2 ]
(Princ)
9 X0 f0 t( D1 T' T, d, }$ C )
) p9 k2 c3 R5 ?;;
# b" N% Z0 D/ p! ]7 V(Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
, l$ x, g1 F' `;;# P' Y5 W/ m: Y2 x7 Z
(Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
- h" K% W3 P. g3 f;;
! k# r3 `' z1 [; x/ f5 v. X( x(Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))% x; |# i5 g; j
;;
1 ?$ L+ F. G; G+ D) W(Defun Reinit ()(Setvar "Cmdecho" 1))
5 l# G x' _- O9 W; t;;2 S$ ~) \ P4 A9 D7 y$ T, M
(Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
9 a: @! k; k* w @2 i;;
8 ?: _2 x D- ?3 Y* W;;Cho 2 Diem Tinh Ra Vec To Phap
% c& H/ h. @& ?% f# O4 I8 x# F! y+ A(Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
' M1 e: y9 H' ]! `;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
3 z9 G% P& O) S' o p4 J2 C. S;;Da Biet 2 Diem Thuoc Duong Thang
8 w( L4 C8 e+ I(Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)- N. z6 x9 v1 a `
(Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)" E; S4 H7 }" c2 i
Hc (Inters P1 P2 Dc1 Dc2 Nil)))
% l# x9 K. M5 ?: D5 q;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
+ b8 b+ I; t; M* u* |6 H$ R;;Da Biet 2 Diem Thuoc Duong Thang5 Y% {, V( U+ E7 g1 a K; h. [# ]
(Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
9 A. v, F1 p4 V( H (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
. ?1 Q9 s5 {) E E Hc (Inters P1 P2 Dc1 Dc2 Nil)), t2 X& ]: X5 C$ w7 M1 o# C& ]
(Distance Dc1 Hc) k& P: D S" M3 I7 Q9 m/ `0 Z
)
0 N' i; ?4 y1 X/ }. ^0 V(load "nhapcua.lsp")
& \2 m3 R% A7 |. |) ?, K2 z% F4 d( l C9 m (Defun *Error* (Msg)8 c" {2 X* }/ W: \4 p/ x
(Princ "\nerror: ")(Princ Msg)(Princ " ")
; q. { a* o) z* M5 r4 P# \: Y (Start_Dialog)(Unload_Dialog Dial), J4 X$ v$ ?: y) Z: z
(Setq *Error* Olderr)(Princ)1 Z1 t; l3 O' z) Y$ a$ s! V0 f; n
)# V0 X3 b" H* t3 ]6 B2 h
(Setq Olderr *Error*)
- X: E4 k0 R- c! T1 } (Setq Chon T)
3 V, s6 n( Y$ v5 d" r0 v (While Chon
# ~ [' B+ M4 j' c% g (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))+ B& { Z. q! {. G5 H/ [
(If Chon
. I# a5 p4 A6 j& H (Progn- _$ {3 C7 B, S* ]7 t& I( l
(Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
2 e+ r- y" }: F# R: g7 f$ R (Cond2 U+ n: N& L. `
((= Name "INSERT")(Command "Ddatte" Chon))1 }. {1 Z! E/ w& \. t
((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
, ^. c; o {7 L- p- `5 @0 M* B ((= Name "DIMENSION") (Hai_Edim Chon))
# \8 K7 u% E z1 p& w )
, D& D, _5 I8 C- \3 t W; f Y );End Cond" D+ q7 p, t/ ]- `/ s
);End Progn
6 K3 c+ B2 {. ]) O );End While) M' {, N d9 p% D0 Y5 ?8 z
(Setq Olderr *Error*)(Princ)
: y4 ]4 S1 K+ \6 N" A1 j/ V );End Program
0 ?+ L7 Z, g) T3 Q' @8 |
0 x$ z$ l! c$ Y* I
$ F6 ]' _, G( s) \# `0 q. l4 t, r: J+ X
;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
: V' B$ h* Z1 V- y1 D0 N;====================================Nhapcua.LSP====================================. t$ Z1 A) ]4 v% X
;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================+ N# u% B1 u- o3 m
, w# O3 c0 \$ t2 Y+ {2 T
;;; ============================ Ve Hinh chu nhat ==================================
" A7 b: }, \, v2 s(defun HCN (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)" R! j: Z# M9 }; o- I% ?
(setq ocmd (getvar "cmdecho"))& T6 A, J* I& g9 e, D
(setq oblp (getvar "blipmode"))% ^7 r+ { ?, L7 {
(setvar "cmdecho" 0)6 Y9 d& u6 y6 i0 m2 b- @
(initget 1) ;3D point can't be null
) O* v2 g+ ~ _( J (setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
) I, [, s3 ^7 A9 p* t2 k3 t (setvar "ORTHOMODE" 1)7 @" x) e2 l F! y
(initget 7) ;Length can't be 0, neg, or null! @+ e' E" q# S
(setq l (getdist pt1 "\nLength: "))
P6 g) I! O1 l0 _! [ (setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
, N, ]; Y6 N2 M. Z (grdraw pt1 pt2 2)8 a0 G5 Z; A$ ?0 m) y. m6 W- T1 D' P
(initget 7 "Square") ;Width can't be 0, neg, or null! b/ L; r( d8 N5 {
(setq w (getdist pt1 "\nSquare/<Width>: "))
* |( A( m: v6 ` S9 A+ H" N1 k (if (= w "Square") 0 O2 ?: W; Y7 E% g6 M4 d
(setq w l) )" u' O# M4 J: a
(setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2))). H% o) j: v) n6 n6 @) M8 {) T
(setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))0 X7 {3 y' Z0 a) p* h# [* `& m
(grdraw pt2 pt3 2)
$ b/ h. n# [0 C (grdraw pt3 pt4 2)
& w8 j4 \4 a# c7 B# ?; H (grdraw pt4 pt1 2)
+ X ~! q& c: K8 H (setvar "ORTHOMODE" 0)- y I1 X2 x. K8 I( m4 k4 n
(command "pline" pt1 pt2 pt3 pt4 "close")
& T. @8 X8 `+ t: a$ ? (setvar "cmdecho" ocmd): t# z# f) B! d( u Q* p6 j
(setvar "blipmode" oblp) (princ)): a$ l3 H& d, k1 o- y9 Q6 z) ^
(DEFUN C:HCN () (HCN))1 X: B0 j+ c' w) B. h! ], r
5 ]6 L7 V' F- d5 a& L
;*******************;*******************;*******************;*******************
9 [. m- [% U |- c( @) X;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
- q* }8 _$ q3 @) c- m7 s;*******************;*******************;*******************;*******************" O1 e' g* p. Z) s9 ]1 `( Q) k5 t
& M% ?5 m9 U' L5 l; }
;VE HINH BINH HANH2 h$ u% c% s" x$ d
7 k6 n+ q" W% M3 I' D(defun c:binhhanh (/ p1 p2 p3)# \$ I2 @2 m; @% `( n' A6 @
(setq p1 (getpoint "\n Nhap diem thu nhat:"))
) N( m( `1 m. [ (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
) I# Z1 i8 @& }7 A' v3 V0 i(setq om (getvar "osmode"))
% T- ~3 O$ E, Z! ^% f# _(setvar "osmode" 0)
7 }3 G' Q. N: L7 a6 h% l (command "line" p1 p2 "")9 ~" K7 {, Y" B, I
(setvar "osmode" om)
$ M3 n6 i. T" h% C0 U3 R1 H (setq p3 (getpoint p2 "\n Nhap diem thu ba:")) U, X, A* s! V. B
(setq a (angle p2 p1))
$ p* ~5 @3 z' Q% ]8 {) T (setq d (distance p1 p2))
( D6 C' h- |5 j c. _ (setq p4 (polar p3 a d))
* Y# a0 I' w8 r/ m# p (command "OSNAP" "none")
2 p$ l' Z& @5 Q (command "erase" "l" "")
7 e* X2 n9 }0 S1 B (command "pline" p1 p2 p3 p4 p1 ""). Y* n q- Q! O. V& N+ q
(setvar "osmode" om)6 |& y Z/ w; D2 {7 o4 h/ H3 _' }
)& V8 Q6 G( {+ ]( A" ~& }
9 g1 Z! | e9 o, {. C f;VE LUOI COT6 k4 x3 H& g+ T- r( Q1 T
9 q0 W; S( b! _8 s. g(defun c:LuoiCot ()
2 X+ E. a- p A, V4 N) `(setq om (getvar "osmode"))2 T% I3 X, l$ V! v$ d! w& j
(setvar "osmode" 0) n! ?# L" I+ w- ^5 O& D0 Y
(setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
( Y; E: n; C' q6 \: k+ [& ?9 q (setq p0 (getpoint "\n Chon Basic Point:")): V( Z% R3 v- H6 H; W7 W) m- B
(setq nc (getreal "\n Nhap chieu ngang cua cot : "))
0 k; P: s( c" `% U (setq dc (getreal "\n Nhap chieu doc cua cot : ")); G- |3 \' A8 _& k, k
(setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
G5 x! P5 t# B5 ^% o; C" G& Z" t$ S (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
6 R+ l! I* B3 z. Y) Z' I (command "rectang" p1 p2)0 m: U: I( |* u5 L
(command "hatch" "solid" "l" "")
1 I! H( O. A0 }% Y- [$ o, z (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
/ j& Q( a& o7 v1 d) ~; Q6 A/ C (setq nn (getint "\n So buoc cot phuong ngang : "))& |2 [7 v9 Z* h4 j' k, S5 O% g' u
(setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
( d3 b# j2 j! {6 L; V (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
9 G: @$ t3 n/ O3 _. s" ]2 n (command "select" "w" w1 w2 "")
`8 l* d! b( l (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) ), u( F d9 x; |' I/ t0 Y U, a# h& _
(command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
5 h8 Z0 [% B% e3 ] (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
' Z. {$ c+ d7 ] V0 Z" e (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))0 \0 n0 Y' \8 _
(command "zoom" "w" w1 w2)7 E' {0 }; {/ N: m, Y5 h
(command "select" "w" w1 w2 "")
) D0 C/ d' \" w9 `2 t (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
, S( W& S5 g8 w1 N5 \8 n I2 } (setq nd (getint "\n So buoc cot phuong doc : ")); N; I, ?' h- X2 r: ^) m& t* f+ |
(command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
4 ^$ D. Y$ C9 T% d: i- V6 e (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")/ C" X! h' @8 Z8 V1 m! p
(command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )- B0 m: k1 A& @' L* g2 c
(setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
, c: g$ E1 F: T( ?/ Z% R (command "zoom" "w" w1 w2)
2 F: r8 Q6 B, i+ H(setvar "osmode" om) k7 @% \& w: h4 I8 j3 x
)
% X) r+ X* A. ]! f2 O1 ?. u6 F& V
;VE CUA DI" `$ C9 X" r4 t
# w( x. S A x3 {# {(defun c:cuadi ()
, c3 K) f& q0 C O' J! Y9 \(setq om (getvar "osmode"))6 Y9 b, z* _) I( m" \( E4 C1 a1 {
(setvar "osmode" 0)& S# i0 S/ V) |% K# H: F6 K0 B
+ H0 e! ^ Z, S1 \- e8 t! a9 a
(setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))) Q: j/ |! C. s" i
(setq b (getreal "\n Nhap be rong cua : "))! m0 H; g' n6 u! k2 w
(setvar "osmode" om)
+ f' p% B. p8 f( S5 ~(while (< 0 1) E: T8 R* Q" [* l
(progn/ k5 N1 M& z$ B/ j& z
(setq p0 (getpoint "\n Chon Basic Point:"))
( j7 R) m2 ]# m2 j0 d3 }+ j+ C5 t (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:")); ^4 o& E& S( `2 `
(command "osnap" "none"). V0 v9 v% v- `; L z0 Z' |0 F
(setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
; Z* ^9 h8 C% Y; T( |4 H (setq a1 (angle p0 p1))
' S+ i2 @ s: N( E, P) j (setq p1 (polar p0 a1 (/ (* hstl b) tile)))+ O5 G% D6 F9 u, `# a# m
(setq a2 (angle p0 p2))5 j6 L* s; i. }8 ?" t
(if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )) ?$ i& d: t! Z9 K6 h- x' X9 x
(command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
6 \3 l5 P3 \- V1 ? (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))# Y9 P2 p( Y n9 I+ f
(command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) 7 c7 T* B3 w$ r; v4 S: p: u
(setvar "osmode" om)
' e" M/ ]: a) \3 ]))- W/ e+ Q" Q( B% f! p
)
. m" [! j( ^% B+ Q$ B% x( \3 h/ K- S$ f- s/ `2 Z
;VE CUA SO. c6 A" g" U; w) [6 M9 W
/ i# V0 p% k7 Q7 D+ Q(defun c:cuaso ()
: z) q; Z" E- [7 ^, K(setq om (getvar "osmode")): x, v; d( X& F
(setvar "osmode" 0)
( k) y) T+ ~3 F5 n9 G5 H1 d8 R# a5 b4 P
(setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))- ?8 T4 ?! w' f' r
(setvar "osmode" om)8 c. B+ R" Y Y, E1 Z% @
(while (< 0 1)- P0 |6 n8 |$ z! S* U3 B
(progn: M8 n+ ~: e7 [% r" \4 S
(setq p0 (getpoint "\n Chon Basic Point:"))8 b% [$ ^: q' e( _
(setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))& Y, A6 F3 }% S/ p2 `; N
(command "osnap" "none")0 T! O0 i% h8 O% H7 Q7 H0 u
(setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
3 m! n( W/ M9 `8 k (setq b (distance p0 p1))3 U# X) P$ g) N. k7 o- @
(if (< b (/ (* hstl 600) tile)) (setq du 50))% q' |3 f, y% K5 ?* t
(if (> b (/ (* hstl 600) tile)) (setq du 150))
- W) F) }# Y( R/ i% ` (if (> b (/ (* hstl 1800) tile)) (setq du 200))
4 O5 ~; N! g2 y (setq a1 (angle p0 p1))! m# D5 w; h) g$ ]
(setq a2 (angle p0 p2))% \. s3 D1 b0 K3 N0 Z2 B
(if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )' q: S+ O. P8 E7 M2 D+ b: s
(if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )2 f; u6 F+ K3 x y$ C
(if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )7 O3 h+ t7 V! U( `
(command "pline" p0 "w" "0" "0" p1 "")
: Y: q$ ]* d. E c- D7 _- ?5 M; B (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
7 n. s4 V6 R$ H$ y5 y9 X (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
4 b/ ?% s+ _4 V7 ?* f$ H& ] (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) + s7 ]- y- B- W* e, {/ s( b/ u& Q g
(polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")/ _. \- B* _9 f0 k: G& h
(setvar "osmode" om)
9 S. b1 G1 n5 c* o. ]7 d))
/ f# h6 R3 u/ Q# Z" }. G& O)5 N2 O1 ]3 O; C" D- {
! G, q Q" r |6 u" `. Z
;;;=== General Utility Functions ===) p' G3 n! k9 Q: S% E% ?! q- s
! i! v* a9 R/ {/ X; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined 8 y( O* M* i! L3 ?
; ADS function. Now it's a simple AutoLISP function that calls the
! ?7 N6 }! Y! a4 E, s5 W9 E# ^2 ]) B; built-in function (help). It's only purpose is R12 compatibility.
7 o! A( z8 K: ]; If you are calling it for anything else, you should almost certainly
; y& d B: ?2 f; be calling (help) instead. . ^8 }5 |3 E: c* n9 l/ Z" H
1 e; m# l& w `+ ?
(defun acad_helpdlg (helpfile topic)
2 G0 k3 {2 E ^8 j& I3 c (help helpfile topic)
1 y6 F. \4 Y% _+ s& O, ])& k4 i* E5 Q$ S" [2 R
& l: i2 w! A6 _1 y' Y3 E
; f3 z4 x' V8 B(defun *merr* (msg)
+ }) r. j( S+ J (setq *error* m:err m:err nil)
+ `' g6 U9 d' w (princ)3 q4 W" d) W" B5 D3 ^4 C: j
)% q* e; [. m6 e; G
2 ]2 H3 q5 R4 R3 c! U6 b
(defun *merrmsg* (msg)
c/ @% Z0 B H: B (princ msg)
, p' g; M8 n5 `2 Q3 g1 ]+ X/ v (setq *error* m:err m:err nil)! Z' b0 |. |1 B* M- [
(princ)
- X' m2 U: a" E9 d; i2 a)
% M) Z9 v& [( t8 q/ `7 {$ n5 e' \5 |8 b2 q+ w
;; Loads the indicated ARX app if it isn't already loaded
1 B$ d, i- j, F- |: d4 h;; returns nil if no load was necessary, else returns the) j2 g8 a u! t$ _3 d& R
;; app name if a load occurred.
; j2 q& }9 J' A/ T(defun verify_arxapp_loaded (app) ' Q" |+ D5 O8 G& `% n! g" n4 ]7 c
(if (not (loadedp app (arx)))5 }2 p/ T9 k6 o: M) M! d% f
(arxload app f), W) e) o) J& r' d4 @' D* S* o
)
3 @: B; v% i8 g' ~& @)2 U! {6 E0 A0 ~* t h% m- p h
0 i8 L% ^# H8 d* y
;; determines if a given application is loaded...2 A. A9 \! z$ w/ ?% }5 ?9 _
;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....' w2 x; U& d: E5 E6 f% G* J9 [4 Q
;;
0 U" z4 U" |+ r, _; U& d;; app is the filename of the application to check (extension is required)
9 e6 _) U- s& O1 o;; appset is a list of applications, (such as (arx) or (ads)
0 U1 |) ~2 r, R) C d* s1 E;;
8 P# X! S8 Y' w/ o;; returns T or nil, depending on whether app is present in the appset
+ t8 {4 _6 T. w; \;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"/ c; g0 O. D! |. _
;; Also, if appset contains members that contain paths, app will right-match& ? B; b5 u4 i0 F# ?3 S
;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that' n! D# B9 a. w6 E+ F% S" |
;; "bar.arx" will *not* match "c:\\path\\foobar.arx."% j: N# ^5 I1 n# R+ Y( A' g
(defun loadedp (app appset)
, k9 |& R4 l; s5 i' L& s: H (cond (appset (or
* h. `; f6 _, {0 { ;; exactly equal? (ignoring case)
t k4 [' \- U" k: A (= (strcase (car appset))
' b0 m; v- B. }5 D p (strcase app))
) A ~7 f4 l: `2 N/ ? ;; right-matching? (ignoring case, but assuming that
( P8 W& I8 C" m+ E( Z ? ;; it's a complete filename (with a backslash before it)
: s9 u: b* a/ I3 k (and
& O$ s8 ], } ?2 P (> (strlen (car appset)) (strlen app))9 I' o2 N% I0 _6 v
(= (strcase (substr (car appset)
' R6 R3 a& U% I7 Y5 c (- (strlen (car appset)) 1 Y' ?# S% z- H% i! g$ |
(strlen app)
+ K0 ?6 G& e$ e- B7 v: S ) ( u" \( e6 l6 a& r" u; m
)7 U7 q( ]5 _4 ^7 H& z
) 7 w' `& e3 V$ o7 X4 F
(strcase (strcat "\\" app))2 v" v+ Z- U+ ]2 h
)
' \( [; R; s0 e, M( B )2 B5 p6 r, j/ [. [+ x8 Z4 o3 b
;; no match for this entry in appset, try next one....% H9 g( @7 k2 f0 t. X
(loadedp app (cdr appset)) )))
, z( V0 a; ~! s+ Q( H4 P)
2 n) _4 u+ w h" x8 C
8 n6 O6 I& P0 y$ z; ? i' d
( E# n9 ? n% n$ C s/ [' b;;; ===== Single-line MText editor =====7 k" I% V% r `# j4 L: A8 [
(defun LispEd (contents / fname dcl state); ]8 k& w8 t0 H# H
(if (not (setq fname (getvar "program")))/ v, D3 ~3 ^3 J) k; H
(setq fname "acad"), D( H4 q: r/ B% w" S, A& n
)
) U$ M' m T2 T4 h4 S (strcat fname ".dcl")# ?8 H% x4 U& L) c# E5 K9 q R: V
(setq dcl (load_dialog fname))2 G- G- `$ H# l5 x3 Q; L
(if (not (new_dialog "LispEd" dcl)) (exit))4 v. E8 h. z' G/ S. r( T P" Y
(set_tile "contents" contents)
+ w6 y- o( U3 m9 F (mode_tile "contents" 2)
8 \2 |) @' F+ a( A* U (action_tile "contents" "(setq contents $value)")
& d4 o) M3 M+ ]$ [0 J (action_tile "accept" "(done_dialog 1)")
+ x$ Q: g$ _/ C1 s (action_tile "mtexted" "(done_dialog 2)" )
2 c' x% b# ?, W% [3 G' I (setq state (start_dialog))6 A6 a" S, N4 |
(unload_dialog dcl)
3 e+ i9 [1 Q5 F; D& J7 K$ G/ O (cond
* E) ]; {2 M( D& }: B4 n/ g ((= state 1) contents)! |' N* B6 {' E: g
((= state 2) -1): B% c' K3 M0 ]9 m$ X1 }2 |
(t 0)7 J- Q- T" b* a
)# j2 s/ F8 y+ S' W
)3 n4 j. L/ ]- k7 ~4 u2 O
- o7 w' v2 O0 L' r, O
;;; ===== Discontinued commands =====
5 K3 H; M$ x8 z+ K# H(defun c:ddselect(/ cmdecho-save)! u$ k! {6 N U( h5 O. l
(setq cmdecho-save (getvar "CMDECHO"))
4 @; e; X) N, e& e (setvar "CMDECHO" 0)
1 f9 x; {, N. X" t- ^$ G5 S3 A (command "._+options" 7)3 G0 A) N. F' a6 J5 `; s
(setvar "CMDECHO" cmdecho-save)
: T0 S* r7 \- @0 x& r8 C (princ)
( _5 _, Q- J8 ~! V)/ S6 M9 l W( C3 @- @
4 V& O# @+ w- Q1 X6 J, _1 B: j
(defun c:ddgrips(/ cmdecho-save)
8 Z6 t' N& \; u% |8 G6 ?; X$ f' o (setq cmdecho-save (getvar "CMDECHO"))
( d8 z3 N, x( g' U- V (setvar "CMDECHO" 0). g5 [3 [$ J+ p6 M2 a
(command "._+options" 7)
( S3 a2 a9 |( q+ ]+ G8 G8 } (setvar "CMDECHO" cmdecho-save)
3 y& [* G8 _0 a8 I% T% G (princ)
. [( m8 d m4 g' n, X)
/ |& E/ L& p: b2 J# w7 b- N! {- d+ w0 ?: {! J. L2 ?
(defun c:gifin ()5 _0 ~; m1 i+ y3 R1 ] ?0 e! i
(alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
" ~5 s, t6 S9 C: U& W: O2 ~ (princ)
% Y" c/ m, K/ r2 ~6 g3 b$ H; U2 K)
+ ]2 N5 H) q0 h9 }. ~" J- @, s5 I% h6 L& K7 E
(defun c:pcxin ()
- m; ]; V* `( e0 Y (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n"): q/ @* F9 n) `% ~$ r
(princ)
$ R0 o' t% U& L$ @& V3 d. Y: u)
7 U# W! Q$ B) \$ h' C1 k" N. b7 x$ @$ z* G C
(defun c:tiffin ()
; P$ Y1 x% a5 @7 J" f (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
) {: g. {& X; g( H1 T' {! ^ (princ)
# j- \; Y1 L$ [1 r: \/ S$ ])
0 J% G, E2 ?6 ]& B' i
& D4 F8 B, ^+ @6 h/ L* p(defun c:ddemodes(): ^9 O% r' {# e8 }7 N. N
(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.")+ U. ^6 V1 n/ n
(princ)
" h {( g, s* e' _! U)) j1 K' O; a6 _" V: @
8 X7 d M6 [2 W7 c; Q! f(defun c:ddrmodes(/ cmdecho-save)
+ H( d4 n; P1 W8 b" @" j1 p7 y (setq cmdecho-save (getvar "CMDECHO"))
$ }# S R; c. u3 Z, |& g (setvar "CMDECHO" 0)9 O7 X2 X8 H% z+ i+ ]
(command "._+dsettings" 0)* W( Y# F- R5 R3 s8 _4 c
(setvar "CMDECHO" cmdecho-save)
. q/ C9 d2 [. e# `5 x+ C) z (princ)6 R' O* d; A$ y* Z7 J. Y
)
# r* B7 m. S3 S. n4 U8 R
p) Q- b. C1 D$ O2 r- {;; HPCONFIG
! N0 r2 p* s$ X+ T(defun c:hpconfig (/ hlppath)
7 ]- i6 [; b9 W( u0 } (if (not (setq hlppath (findfile "acad.hlp")))
9 [5 Q' }/ Q9 P* T, v1 y (setq hlppath ""))
0 V% r5 `; g. A4 r1 W r2 V2 u' K- w (help hlppath "hpconfig")1 f- R# o, J6 D$ f% K
(princ)' T& O& X; ?- b% J1 Q6 e, U1 z
)0 f0 ^+ U7 T, s4 R V9 v
0 U9 s0 q/ M- d& J" p! c
;; OCECONFIG
1 Z8 e3 c8 S: h9 j. n U3 K0 t(defun c:oceconfig (/ hlppath)' e& P: j0 M9 s
(if (not (setq hlppath (findfile "acad.hlp")))
5 I$ _+ \$ x+ v# W/ S, ^; ^. Q (setq hlppath ""))
8 l$ k3 h7 b$ r- ~7 i9 O3 ^ (help hlppath "oceconfig")
: r$ o! q' [( e) e: b$ a1 [ (princ)& L9 q% d2 F1 y5 `1 G( c: H8 W
)* J! Q; q9 s/ I' D( a) x' \
9 n7 K& d9 N& j( P2 W: p
;; CCONFIG8 A! @+ N8 k6 ^
(defun c:cconfig (/ hlppath)4 _: s5 u" S! u
(if (not (setq hlppath (findfile "acad.hlp")))9 W' Z% Q6 o' D6 v& W0 T
(setq hlppath ""))" Y' X) {0 {$ M8 |7 q8 }8 X
(help hlppath "cconfig"): }9 U" R* M' K$ N# n8 n6 p/ C
(princ)! H) M. F+ ^$ K/ }% t, Y! E
)+ n2 w" K- Y6 r% v! l( ^
. v2 u* A7 i0 {2 Q" y' y( J;;; ===== AutoLoad =====+ @* k$ J$ \! e) w; i5 k1 _9 N
0 w# t/ Y8 i4 U1 q4 D: _- J
;;; Check list of loaded <apptype> applications ("ads" or "arx"), `) F, Z! K! m, ^
;;; for the name of a certain appplication <appname>.
" W; X3 N# j" G;;; Returns T if <appname> is loaded.8 ~5 ? x. M2 H- c. h8 ]
5 L0 m e' ?; k: m(defun ai_AppLoaded (appname apptype)
# P8 Q0 Y/ Y9 B; P# X3 B8 l4 W( C% W (apply 'or, H+ M3 F* ]2 A9 N
(mapcar ( b; m8 N$ q6 ]4 Y W% v0 C
'(lambda (j)
* `) ^- F6 s9 p# L+ [0 d, e4 ^ (wcmatch
4 F! }( _3 K/ Z5 j (strcase j T). ?$ j# V9 n3 A- |/ Z
(strcase (strcat "*" appname "*") T)) p3 O# e, ^! M9 R7 z7 i: e+ v3 k
)
" i1 j: V! r! ^. v8 c )
! I* t" R6 c3 z' Z% N) _4 g0 R ~ (eval (list (read apptype)))4 E0 q. s( n) D" {1 \; }' {) t( t
)
- x. S+ |0 N& f )8 B4 H; ?) Y! j. T; r
)
6 r) {2 V: M3 q4 Q$ v% }2 `* `0 |2 e2 Y# |: ^3 x5 X
;;
5 H f, S) R1 ]/ X8 d( {;; Native Rx commands cannot be called with the "C:" syntax. They must
6 F. l0 M( \6 p' l; e) h;; be called via (command). Therefore they require their own autoload 5 S; A- n9 Z& @4 v- @7 N+ p9 O! m
;; command.; u Q U8 `! Q1 Z: k! p
& N: D, Z3 e- P* f1 R
(defun autonativeload (app cmdliste / qapp)% P* x1 P! Q( M! G& s8 e
(setq qapp (strcat "\"" app "\""))
5 \8 f& y$ n, C7 H1 e, K" o (setq initstring "\nInitializing...")
# p$ D) L) w$ Y7 U* w (mapcar
) D$ M0 ^" q8 y X0 e2 J& e '(lambda (cmd / nom_cmd native_cmd)- D# u/ p" t) P& Q( g5 u
(progn
+ o# a! x7 x3 c! |0 { (setq nom_cmd (strcat "C:" cmd))+ F4 Y9 {! v- S% j$ s
(setq native_cmd (strcat "\"_" cmd "\""))& q" R. w( b9 C
(if (not (eval (read nom_cmd)))
4 A0 w% f* w, {* f+ v. {* `$ e (eval
0 H. K& i5 P& P1 r# z0 c (read (strcat9 L0 u7 i H! ]
"(defun " nom_cmd "()"1 p7 |" n+ {1 T" o3 t) l
"(setq m:err *error* *error* *merrmsg*)". _. ]# Y7 R! f+ I! F& }9 A
"(if (ai_ffile " qapp ")"
$ s( X$ s I) X4 f. R5 R3 m "(progn (princ initstring)"6 c7 k1 j1 C4 V
"(_autoarxload " qapp ") (command " native_cmd "))", I4 \/ s* q& }; T" j8 f
"(ai_nofile " qapp "))"! T- r" V" x: T. n% O
"(setq *error* m:err m:err nil))"0 h) g5 `& U, }
))))))
/ V/ r* K3 r( N B; t- J cmdliste)' X# A6 J# H6 ]8 P
nil7 ?2 h/ {" z) o, W, s
)5 B5 j4 c: z/ B4 T9 f% j
& c9 `: N1 I$ a( Y' y- w
(defun _autoqload (quoi app cmdliste / qapp symnam)
8 B4 V. n% p! C$ c (setq qapp (strcat "\"" app "\""))
T6 a2 p) D. G" u9 W5 G (setq initstring "\nInitializing...")* e) c& }' T. f: g2 r) G1 d7 }, ]$ |
(mapcar& u" A7 k4 R$ k; H+ `
'(lambda (cmd / nom_cmd)6 m0 \4 z: y$ N9 K$ [+ C% @( Y
(progn9 q: L+ d, i/ i. k8 G! k/ r$ H
(setq nom_cmd (strcat "C:" cmd))
9 [8 m7 J2 F) m, y5 ^) P4 Q (if (not (eval (read nom_cmd)))
7 C9 E- I8 c& u( z* p, ? (eval
6 z! |7 q" t" L1 s( w' G2 w5 P (read (strcat) F% V$ U# a' @5 {! J6 U4 Z
"(defun " nom_cmd "( / rtn)"
+ k+ c0 N, n! ^% j; O "(setq m:err *error* *error* *merrmsg*)"
# N6 a7 p0 H* ^" i$ Z! j "(if (ai_ffile " qapp ")"/ J$ ? E- [6 J1 s# {% q0 `! d) f
"(progn (princ initstring)"
) @4 I8 k+ d0 ^* R "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
$ {: q: v$ D k# e "(ai_nofile " qapp "))"4 F, N+ V: ^: R9 x
"(setq *error* m:err m:err nil)", L# w6 i3 G t/ |7 [+ X
"rtn)"! J$ }6 F1 j9 b b( G
))))))
2 f1 Q5 }3 [ U8 @. b cmdliste)
, m. A/ W2 y* T1 h5 y; N& { nil
2 F* g, c; K# v( y5 |% p)
& W% T8 h( Q9 P; v9 X: W5 J
3 R& o# U4 P- D1 D# s4 h1 M3 N3 \(defun autoload (app cmdliste)7 q& a. J+ s4 s) C- [
(_autoqload "" app cmdliste)
- D( J: q) A8 f) y. X3 Z$ U5 B)
* p3 Y/ ^% U2 D) {' C& i4 R' ]$ S. |2 q, B4 }# g2 f7 b% \8 ?
(defun autoarxload (app cmdliste)
* x3 U Y+ N, V0 v I" D6 q (_autoqload "arx" app cmdliste)
: F/ C# y' y; B" [ ?# B# C# r)7 V9 {- v9 X& d
' Y9 Z v: ~. s* w(defun autoarxacedload (app cmdliste / qapp symnam)
; T# Z s: H7 ]0 g, w0 p) V2 J$ j (setq qapp (strcat "\"" app "\""))8 s( z$ J3 ^$ X4 X: t
(setq initstring "\nInitializing...")# i' t# }/ c5 b$ U. e- _! r
(mapcar: w5 v5 Y* u+ v0 m
'(lambda (cmd / nom_cmd)
3 O2 Z$ c! B2 n& j (progn
- `, W9 r+ I2 l) B6 P. Y (setq nom_cmd (strcat "C:" cmd))) }' {8 }. X: L. y' [7 z
(if (not (eval (read nom_cmd)))7 Q, H% v# f/ B/ S9 E% ~
(eval
8 f, Z4 U8 |0 V+ { (read (strcat
8 p+ q! l+ O2 Z7 i$ ^" w# E2 | "(defun " nom_cmd "( / oldcmdecho)"
) K3 f0 _0 R+ s9 y "(setq m:err *error* *error* *merrmsg*)"
6 `9 E: `- [* s "(if (ai_ffile " qapp ")"
* p4 N7 {0 `' V% H n6 b7 m "(progn (princ initstring)"9 L4 P% \# w: c6 p/ h6 j0 W
"(_autoarxload " qapp ")"
* Z% `( p! B, `4 S! f "(setq oldcmdecho (getvar \"CMDECHO\"))"8 O* C9 h8 n# y1 ?1 G1 F& K
"(setvar \"CMDECHO\" 0)" @, y# k. c j3 f
"(command " "\"_" cmd "\"" ")"5 C: v" N! w+ k" B8 h$ {
"(setvar \"CMDECHO\" oldcmdecho))"1 Y9 f' L3 c X3 ]! a2 G7 }
"(ai_nofile " qapp "))"
! y6 R) T9 C: |/ g N6 O "(setq *error* m:err m:err nil)"9 y( j# n$ ?4 j4 Q; k: \/ l8 ^
"(princ))"
2 y! N$ G+ B" Z6 g1 s )))))); i4 S7 o0 g* M( [; D
cmdliste)
9 J' A( V" X ` e" B nil& E9 n' L& Z5 ?
)
5 d0 J& @3 x- @ ~3 \) x# R+ i
; o1 _# e% w5 N9 K: Q6 ?(defun _autoload (app)
0 }. k8 t' q3 J7 G B( D( x; (princ "Auto load ") (princ app) (princ ")") (terpri)7 R5 s, H1 d# X
(load app)6 l0 H* F8 ?0 i; {* R2 c: r' |
)
0 {( ?( q/ U% R2 w n* d7 w
2 ]: l+ d, C* W( Q b4 P6 M(defun _autoarxload (app)
! S; a0 U4 u& O- U) Y! A2 r- I; (princ "Auto arxload ") (princ app) (princ ")") (terpri)& U8 C$ T- @+ F$ P2 r+ a' ^
(arxload app)
( h7 K r2 X# U6 r)
' L) @" L& B0 Z9 s* P4 p8 r) P: ?0 g3 ?1 z% K9 W
(defun ai_ffile (app)
% ^/ ^4 M4 H% X (or (findfile (strcat app ".lsp"))
; \. |* `( e9 T) T+ l* | (findfile (strcat app ".exp"))$ ]& i1 E0 ]' _
(findfile (strcat app ".exe"))2 |1 {+ S( l9 {; Q0 H
(findfile (strcat app ".arx"))
+ s7 ~5 U# ^9 [ (findfile app)
3 v9 r* {% ~/ Y h )$ @, s T. _! V4 ~( i
)
# H5 u' o9 E* [, ^( x1 d
# q, _9 R, o8 V5 n) |(defun ai_nofile (filename)
% B+ V/ Z" B- b- }1 m! A* p (princ
6 _ s3 \: F5 |" D5 o) A) W (strcat "\nThe file "
: N1 Y0 ?6 q9 E; g- h filename
" H# T# Z9 o% r "(.lsp/.exe/.arx) was not found in your search path folders."
" `' o7 w$ @" W )
% b" ~ m, [3 M& S2 j8 O )
4 V& f S# U) W' Z (princ "\nCheck the installation of the support files and try again.")
! V# a$ ?: B& l9 z. m1 A (princ)
( p7 c& t1 ^' i* T)
4 E" C% z, X. b6 u7 j6 ~7 q s/ A1 X, {
( v; W. [+ L# f+ \
;;;===== AutoLoad LISP Applications =====" i: F V) {7 R8 L1 z0 q
; Set help for those apps with a command line interface
7 b2 c( b1 E. [7 U+ E5 ^" D& ~/ v& N |" y9 S
(autoload "edge" '("edge"))4 k0 J+ C/ \& A c$ w9 J
(setfunhelp "C:edge" "" "edge")9 l. i a9 X4 \4 @; ]' c8 r
% p1 k; k+ V3 d# ^9 [(autoload "filter" '("filter " "filter"))4 f& n0 @) C8 I( A/ L
2 p$ Y" K& R) t S3 L' F! K(autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome": s3 v4 h$ ]! |) U: {
"ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
. U4 \6 l# D! F7 G7 B/ r! j)8 j. w" K+ P: n s* C6 [" ]. f
(setfunhelp "C:3d" "" "3d")3 e: I. n# J" J
(setfunhelp "C:ai_box" "" "3d_box")
# e( n U0 K3 B4 Z(setfunhelp "C:ai_pyramid" "" "3d_pyramid")
2 L5 e3 } o5 {# R4 u(setfunhelp "C:ai__wedge" "" "3d_wedge")% Q2 W/ D1 t' ]8 I) M$ P8 G
(setfunhelp "C:ai_dome" "" "3d_dome")* @0 h, c" n3 J+ V- w5 _& u$ _
(setfunhelp "C:ai_mesh" "" "3d_mesh")$ N' ?- c# g6 }+ A3 x) N
(setfunhelp "C:ai_sphere" "" "3d_sphere")2 P. |7 `1 d& n V4 k+ Z# |) [
(setfunhelp "C:ai_cone" "" "3d_cone")
" `" J2 K8 h3 f- d- U7 M9 s& A(setfunhelp "C:ai_torus" "" "3d_torus")
& }" P- s. h8 |, g# V8 O: Z2 o(setfunhelp "C:ai_dish" "" "3d_dish")& ]- o7 g5 W! G
6 y/ X. Z) W* N% A' E
(autoload "3darray" '("3darray"))
8 b* c& A' f3 K(setfunhelp "C:3darray" "" "3darray")
) Q5 i: I. l! z% h- B& k2 ^: J& X$ _# x8 t+ t# t- v2 \
(autoload "ddvpoint" '("ddvpoint")) S% _) r' B. A7 ^
* A; S) H7 t7 i* u(autoload "mvsetup" '("mvsetup"))
3 l' d& a. S" e! X( H; k(setfunhelp "C:mvsetup" "" "mvsetup")0 n" B6 S' o0 \" o9 R
& B6 k3 ^- m* m, M% t(autoload "ddptype" '("ddptype"))
& i# R1 w* _) {4 z1 H' p+ e5 N ]2 m: D3 P/ f
(autoload "attredef" '("attredef"))6 u' C+ E0 C |' ^4 t* o
(setfunhelp "C:attredef" "" "attredef")& I# j V) v# t3 n$ K5 m) d
8 Q- B% Z7 U9 P) B8 v! ?% B
(autoload "xplode" '("xp" "xplode"))" U4 O" ^2 Y+ H# X
(setfunhelp "C:xplode" "" "xplode")
8 {6 M l' [1 y
& t+ L5 J+ y. Q* ^' V" {(autoload "tutorial" '("tutdemo" "tutclear". K- `- v! G7 h
"tutdemo" , ]1 M, Y0 y, D) w5 V
"tutclear"))
+ s9 O. v( a, E7 G% v
7 V. x7 W! u8 y4 {; D6 y9 {8 v;;;===== AutoArxLoad Arx Applications =====
& B. \1 l; r, e# E0 }) p6 G8 A" B2 X3 `7 { ~9 }5 S) J
(autoarxload "geomcal" '("cal" "cal"))
- W0 ^/ h, i# d1 t( g' @" H# v0 P; j8 J
(autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
8 e0 o0 L( h5 `* }3 s9 R! F "mirror3d" "rotate3d" 3 T& M8 T& u% R) H
"align"))
$ Q6 S7 M: k/ D6 B0 g) `. g: t; ^. K! ?6 F
* Y4 A m; {: x;;; ===== Double byte character handling functions =====
8 q; r0 ~! Z5 O5 W5 g9 \* j' d5 T
(defun is_lead_byte(code)
1 f1 P5 B7 E5 `/ j9 e" ? (setq asia_cd (getvar "dwgcodepage"))7 P& T+ N" n/ z+ L6 F
(cond( F; e% y1 T# n( C7 z7 x
( (or (= asia_cd "dos932"); i2 d3 ~+ a' }- P+ d' @) W; W$ @
(= asia_cd "ANSI_932")
8 P7 C) r3 ^2 B }# J )
! D% o7 i5 a* |8 g6 t4 t (or (and (<= 129 code) (<= code 159)); R3 e2 c% w# B6 V( K1 D
(and (<= 224 code) (<= code 252))
' A/ s6 O' z; |9 v o1 d" c$ E )
7 y; X3 h9 e1 E) h )8 l5 P& p2 o/ d" K' h
( (or (= asia_cd "big5"). G0 L8 ^8 q3 I( ?- f
(= asia_cd "ANSI_950")
7 v* F) n( Q& f7 K) M% T )
1 `/ X% y# m t6 k7 E8 p, u (and (<= 129 code) (<= code 254))
6 N( i: z( n0 N. E& V8 O )! l$ y, ]5 e3 l+ s. D9 N
( (or (= asia_cd "gb2312")! l" ^3 |3 a8 S
(= asia_cd "ANSI_936")
. v# W' g8 V* Y, m9 A& M) i )1 b) O) e/ y5 [4 `9 A, }7 ]
(and (<= 161 code) (<= code 254))
. e, M4 S3 P2 p2 ~2 k8 T5 u )4 a8 r/ M0 ]0 B" K! p; ~0 \& R
( (or (= asia_cd "johab")
/ u$ J- F. f! f, O/ `5 P. ^ (= asia_cd "ANSI_1361")$ L6 W9 d( {" s& ]! U9 A# h
)
) E$ D7 d! {, _ (and (<= 132 code) (<= code 211))
. G! q1 s& U$ | )( j& C" a* q4 W
( (or (= asia_cd "ksc5601")
9 J. m. O: l/ R (= asia_cd "ANSI_949")
1 O; Z' i' X! { )8 E4 K8 c& x5 c1 Q& C( q& m# L2 F
(and (<= 129 code) (<= code 254))/ Y! M2 W7 x" e# s* |
)
( ^ Q7 V% O; F3 m% j0 p+ m )
6 M$ ~8 v3 S% O) i6 N# S)
( F: e' b* Y. s7 m: j* C5 u/ |: c
$ |4 E3 i/ D/ A) Y2 e4 |) S;;; ====================================================
- s1 G2 }& F/ U/ J5 s, K1 q& m$ a+ ]" y8 p
( e9 l" F& ~' M" l" }/ a- ^
;;;. m7 O$ b: C' Q, k8 |
;;; FITSTR2LEN8 \' ~* g \! Y% C: Y" b
;;;
" h/ h0 ~$ q0 L! t' z5 H/ H. B* H;;; Truncates the given string to the given length.
7 N \' C% U7 _- ?- H6 P;;; This function should be used to fit symbol table names, that
# |$ y' ?9 u/ T0 ~+ ~;;; may turn into \U+ sequences into a given size to be displayed4 L4 `# ~ c. i! A- q
;;; inside a dialog box." S) \- j% G- Y' x( s
;;;* y9 F$ [3 X, Z/ C
;;; Ex: the following string: 7 u3 q; q; j# j
;;;
8 F1 E( H9 B0 `% i( ^;;; "This is a long string that will not fit into a 32 character static text box."
+ u' n& U5 ~1 A( T }' i% q6 R;;;
/ o4 j3 {7 @6 }, w, v;;; would display as a 32 character long string as follows:
1 k5 N" C9 K; }: [4 |1 e' G# I: x;;;8 C! E! y+ J* S( o
;;; "This is a long...tatic text box.", n$ [+ M+ h1 p: m
;;;
5 D0 L4 Q R9 Y/ D3 A
6 z! h3 _ w6 W: Q# i8 G(defun fitstr2len (str1 maxlen), |" \, `% {4 N( {
) x U' E7 c6 @ ;;; initialize internals5 ^2 e( @6 _* ]7 H* Q
(setq tmpstr str1)7 C! Y8 q3 O _3 `' z5 o
(setq len (strlen tmpstr))
, R0 b4 J3 t& K: n- k: g6 f
4 b% `% W" H% |% i" M( W (if (> len maxlen) 4 o- K, E2 m" g! H3 v7 T4 Q
(progn
+ P$ K( u. e" K, [# P4 Z9 D# o (setq maxlen2 (/ maxlen 2))
) D0 z$ U% s* H5 j (if (> maxlen (* maxlen2 2)), L3 W! |2 Z2 t
(setq maxlen2 (- maxlen2 1)): p, M2 s! H; b/ Q' E) T
)8 E/ E! N/ |6 y
(if (is_lead_byte (substr tmpstr (- maxlen2 2) 1)), N {/ |. U! s$ Y
(setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
1 k. l( ?4 O; i4 F# {" B s (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
! t: b6 ]# x7 L )0 X# s! p) f; O9 o# U& J
(if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
# ?/ j+ P, P9 c) ^; q0 e8 D4 d (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))3 g9 Z& H+ D+ g4 c3 W& _
(setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
: H* R6 n A0 k& k )
2 S9 ~4 L3 {3 ]- n, {7 } (setq str2 (strcat tmpstr1 "..." tmpstr2))
2 M8 j0 Y& V* U9 P0 K* @# e/ O ) ;;; progn9 O4 U4 ~( _* t/ }' `& c( o3 F
(setq str2 (strcat tmpstr))! @, y6 m8 k0 I$ U3 p7 W
) ;;; if$ Q C7 A3 b5 J ?) }/ j
) ;;; defun
# u N. x# r( A" u9 x- v( q% ~' X- Y
% w+ o$ Q. A; G( D& N;;;
# E# `; k+ L2 k# v;;; If the first object in a selection set has an attached URL2 m X' V8 l" q, J2 c) }% h% D4 W
;;; Then launch browser and point to the URL./ F9 R3 a, b! h6 p
;;; Called by the Grips Cursor Menu. Y7 w" x) ~! ~5 S3 o: @
;;;
$ y9 D! f/ `: ?& K) K& h4 C2 ~" I: ?' H! V3 `
(defun C:gotourl ( / ssurl url i)
# _$ ?6 u8 {6 F- u (setq m:err *error* *error* *merrmsg* i 0)
- s) a6 s3 A" h4 y" @8 [4 \0 _' C0 o* }$ q# x ?* \$ |8 ^
; if some objects are not already pickfirst selected, ! a2 W1 v6 z( G1 u- s7 m' D
; then allow objects to be selected
* H+ n* b! S' q! r
: `6 N8 D" e0 W4 F3 {% _( s+ N (if (not (setq ssurl (ssget "_I")))0 l& e P7 [' L/ v! I+ F
(setq ssurl (ssget))7 M! D. y+ A5 l) V
)+ T2 P; S8 z% _8 b& k5 J' V! ^4 {
9 o0 {) \6 n& ~' L; if geturl LISP command not found then load arx application
) }2 m( \, u5 M4 j5 Z8 S- Y3 _ M9 s
(if (/= (type geturl) 'EXRXSUBR)
7 h7 G. C0 n) h2 A- f4 P (arxload "dwfout")0 G3 F1 M8 g: u
) }1 y- E! _0 F( [; P0 \) m) l- t0 a
7 a( v" C0 a0 L3 D- l- [2 t; Search list for first object with an URL
) a/ Z+ u H$ _, F/ G; ^ (while (and (= url nil) (< i (sslength ssurl)))
/ g7 t- r5 w' R1 y' }3 C: O! v (setq url (geturl (ssname ssurl i))
Y, p: l8 C- r( `7 v+ ?# J i (1+ i))
2 R+ j2 K) u2 G" k3 _* s )/ R, ]5 \6 m8 N6 F3 b" [
3 g% D( i2 U7 T+ r) a* V; If an URL has be found, open browser and point to URL
8 s2 A( v! }0 O/ E3 P% Y: z3 J9 y (if (= url nil)' c0 P4 t4 i. b4 b' G7 g8 c
(alert "No Universal Resource Locator associated with the object.")
' A, Z3 b7 ]2 U% @1 K& M; t' D1 Z (command "_.browser" url), X4 E+ m* u7 M: a b" _
)
2 O9 |) G( p+ V' z3 D
( X; h, B: O" z! [ (setq *error* m:err m:err nil)6 a1 A- Z Z2 Z. n" G7 e5 U3 G
(princ) j: b& S- u% Y9 P7 j
+ J. R6 V/ g5 O* v: P; y V
)5 c9 s% d- ]; _
2 J% j' {/ q4 @8 H
;; Used by the import dialog to silently load a 3ds file3 r1 i$ e/ L4 ]! }5 G& C& a
(defun import3ds (filename / filedia_old render)6 N7 W# p4 m; t4 O% q( ?9 t( @
;; Load Render if not loaded
' @! S; g3 o, s" A (setq render (findfile "acRender.arx"))) C; F# |( \9 Y1 n1 o
(if render
# X( |) M( s" m3 ^4 m (verify_arxapp_loaded render)
; m6 D/ m( u( S4 \ (quit)1 N9 n4 m O) a/ H H
)
% y6 q( k9 U0 c0 ?
7 q0 g, n; r. H) V% g ;; Save current filedia & cmdecho setting.
2 p. v! N; I1 y9 z, o (setq filedia-save (getvar "FILEDIA")), a& }% @$ C; @2 ^& e8 f6 N6 U
(setq cmdecho-save (getvar "CMDECHO"))/ S" T/ t* }& c: l
(setvar "FILEDIA" 0)- T+ h5 y8 J4 ]) N T& N
(setvar "CMDECHO" 0)) q& W+ P7 _# l, s% i
: ^* L% S' B8 c! P8 Q
;; Call 3DSIN and pass in filename. R5 b4 [; A% p) {; I+ j
(c:3dsin 1 filename)
! o/ ^ i- b9 u( B* n+ r
5 U0 M# g$ k9 M* b3 n" T ;; Reset filedia & cmdecho+ l" p( f( R% _# O+ t) z
(setvar "FILEDIA" filedia-save)
- O' I7 d# }8 H" s' I (setvar "CMDECHO" cmdecho-save)
B" d+ L& _# F, U- y (princ)
7 v, O% d6 j0 y0 ]( i)
$ I% l i7 M# e% I. V- d3 A- Q8 p2 J! }( X7 w& @/ u: |8 q7 ]
^ w9 k% z, r/ t: }
;;;=== Menu Functions ======================================. y" a2 u8 }% p' A4 U3 N5 ^
5 D) K' W2 [6 g& A/ a9 q& R: z(defun ai_rootmenus ()) Z9 o$ ] q6 P7 R9 y
(setq T_MENU 0) A. D4 [7 T- K3 A; l
(menucmd "S=S")( F7 V% r9 y. H0 T
(menucmd "S=ACAD.S")
6 _% S2 U3 _9 y* v1 O (princ)
7 l7 W& }3 q- r3 h! _); t; v) ]. g( ? _7 F. \' G6 Z; N" ^
. X; i! j; ]# X- o q/ \3 Y, L; ~7 I
(defun c:ai_fms ( / fmsa fmsb)
- A' `2 p' W9 I/ V' f6 s% B0 C (setq m:err *error* *error* *merr*)
: b5 r( S% K p4 ?& d E (ai_undo_push) y3 z% u K7 u9 Q. `5 V
(if (getvar "TILEMODE") (setvar "TILEMODE" 0))
% c& \( Q! {$ D0 y$ \/ o! D# { (setq fmsa (vports) fmsb (nth 0 fmsa))5 y3 L. x! Q7 B7 ?
(if (member 1 fmsb)4 V6 S# c9 f; o3 o g
(if (> (length fmsa) 1)
3 n6 y2 n8 R- l1 T" y (command "_.mspace")
( o) W5 G, f* K6 v; P (progn
+ Y2 _7 z, l+ g: y n9 e (ai_sysvar '("cmdecho" . 1))( K' ^+ D. I( k8 j2 m
(command "_.mview")
; s7 F# Y Y; s. t) R7 v (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
% a0 {& N- Q U' d; Y V& d. e9 k8 n2 [ (command pause)
4 \5 M8 ^; q0 Q( z1 Y )
5 u: u$ B a- \2 i (ai_sysvar NIL)
& D2 ~* r, J5 t* P- S' _4 e (command "_.mspace")3 n5 [" \ G. {% s" O8 Z; b: h) h! b
)
+ R1 T4 l* b. |9 J, X5 j: o )
2 \/ b/ l- I* n- p0 d7 i )
* z9 ^3 l4 m2 j (ai_undo_pop)" A7 W3 g1 U# \5 {* G! z; ]
(setq *error* m:err m:err nil)
9 |+ `2 t7 q v (princ)- b& }* K" M# B
)
; Y( U4 k% u- g" S U
3 X8 E/ z8 |2 `(defun ai_onoff (var)) f2 K% O% ~3 D2 Y: R4 p& f
(setvar var (abs (1- (getvar var))))
$ l Q t* c3 C, E (princ)- ]& s/ b- D# d! j1 H
)
: `: u B! q, i. j& c/ t: Q" v+ w. _- f+ a; V; @: C) }
;;; go to paper space
^4 S/ u' r3 j4 [$ w(defun c:ai_pspace ()6 I* y( `7 x. @0 ~6 J, H! J
(ai_undo_push)
7 ?, F) E( @3 r, I+ A! z* \ p (if (/= 0 (getvar "tilemode"))
# Z# ?- ~; A/ _$ h6 D$ @7 h3 T0 W (command "_.tilemode" 0)( _5 F$ t: z4 ~6 \9 N
)
+ u E% z" s9 Z2 W* l5 F( T$ ? (if (/= 1 (getvar "cvport"))5 |* _; I6 \, T+ Y4 I0 \# }
(command "_.pspace"), X5 B# _# b: _% k9 k
); w! f O L) e5 [
(ai_undo_pop)* g- S% Q# O& ~ \" e! u
(princ)7 [9 ?$ f5 k c+ M# @- g& l9 N7 W0 o
)
! m2 `/ S& K+ _3 n1 B' f# c4 Y( Q/ ^0 k) r5 i+ t: ^
;;; go to tilemode 1
V( l& P# {+ d$ y, e(defun c:ai_tilemode1 ()
, y8 p8 X. }& u' U (ai_undo_push)5 e! A# L; H$ [9 ]7 B3 a+ B' Z$ ~' N
(if (/= 1 (getvar "tilemode"))1 ]% _- d% f' F% x
(command "_.tilemode" 1)
1 t6 E, G' y) |! j# j- ^ )
* }( \! J3 p* {* y5 q# [: P3 W (ai_undo_pop)
$ R$ f9 x% U9 N (princ)
0 g) j. W# u) f8 [6 h; ~- Q& K+ U4 ])
8 X( H) o! ~+ {. W; Z5 K+ L6 H6 ]/ V# i
;;; Pop menu Draw/ Dim/ Align Text/ Centered0 V8 ?" R+ V, p( P
;;; Toolbar Dimensions/ Align Text/ Centered: G8 ]" ^7 i& g8 W
) y8 }' c9 e% \$ _
(defun ai_dim_cen (/ ai_sysvar ai_dim_ss)) \5 u3 u9 S/ ?
(setq ai_sysvar (getvar "cmdecho"))" n; Z+ {/ r( ]) g
(setvar "cmdecho" 0)! ~6 B, j2 w8 \1 r. e3 z
(cond# h# Y! r* p Y+ E; L% K; p' ^
((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))5 t5 f- T/ \, W
(command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" & s+ Q3 z$ W( s0 J5 @
"_.dimtedit" ai_dim_ss "_h")9 p" E0 J2 `. }$ p9 D, _/ B4 _" i
)
/ v# W+ D7 W. F s+ l7 c (T nil)
: i. B4 V8 Y6 H8 F9 [ )
( c0 b! p5 S# H8 y" Z1 G (setvar "cmdecho" ai_sysvar)
" E: P, W. Z6 `2 L) S (princ)9 v+ F/ z* p% i) x) i
)
* F- s, F1 c+ ~/ f1 I# L4 k. m0 |& c1 f1 J' V7 y
;;; Shortcut menu for Dimension Text Above
) t. q& d) @# N. E5 b
' P# F4 b$ F6 a8 ?(defun c:ai_dim_textabove (/ ss)
8 g+ r$ o/ y* E (ai_sysvar '("cmdecho" . 0)). D8 q0 Y. A& l9 ]$ u
(if (setq ss (ssget "_I"))
% F) @, Q/ O) |5 e* D (command "_.dimoverride" "_dimtad" 3 "" ss "")' W* w3 W' o& {- o. x7 u) w
(if (setq ss (ssget))# w, n% S2 I' S+ z
(command "_.dimoverride" "_dimtad" 3 "" ss "") 2 W+ [8 a5 F6 I, W) K$ t3 R
): `, `" g, p( q7 j/ \& c
)- {8 r% {; [( L2 o& J& o- Q( s
(ai_sysvar NIL), R0 L l0 H5 Z& b2 G1 D
(princ)
1 y7 W4 }6 w) y)
: \! e+ F! j0 X% _9 F
) l; {$ z' I8 \4 G* P1 f$ ];;; Shortcut menu for Dimension Text Center ! C9 \4 \9 U' r4 i# ~) S4 e: u
0 K" _1 b' R' R, B0 M(defun c:ai_dim_textcenter (/ ss)
" A0 c/ U' q9 Q2 `5 }7 { (ai_sysvar '("cmdecho" . 0))
4 Q: z( H! m) A; g! ^. a. ^ (if (setq ss (ssget "_I"))
- T& L f% ?, l* M7 t (command "_.dimoverride" "_dimtad" 0 "" ss "")
9 o' h. I E4 y X; T3 O# G (if (setq ss (ssget))
% y3 D* E2 m% X6 f (command "_.dimoverride" "_dimtad" 0 "" ss "")
: q: a( F2 [7 J- x )* e- ]/ }+ m/ X: s5 D( ~
), b2 @9 O3 ]4 V( j- y/ M8 v
(ai_sysvar NIL)
' F* B* I( `* o8 M (princ): o2 o! h% H) E/ M- `
)
6 S& K- Z/ W7 n9 _4 D
' i7 K v2 s( c# d; U- n4 p1 J; ]% ~;;; Shortcut menu for Dimension Text Home % F; p# }1 z/ E. k4 S; S
2 w) ]0 }. ^' z% W8 f" X
(defun c:ai_dim_texthome (/ ss)
9 ?+ X1 w4 Q. M2 X l# V. i- V! F (ai_sysvar '("cmdecho" . 0))+ f8 R1 p" n4 M
(if (setq ss (ssget "_I"))3 z, T$ q9 w, ]" H# ^
(command "_.dimedit" "_h")
$ |$ c# \7 O6 B- g* [0 u5 _, i (if (setq ss (ssget))4 _& w5 Y$ D% Q/ Z& S# c0 d
(command "_.dimedit" "_h" ss)- T. {* v7 ~; L$ \
)
2 i$ y \' w3 C1 N )7 }2 M2 P3 r& s- v$ G! y. o! _
(ai_sysvar NIL)
" D i$ U) e | (princ)
z* M4 y( r$ h* I& {6 _) l)$ i7 w+ S- [* y& y: Q
+ K2 R0 L6 y+ G1 |* X; Q) o
- I( _: b$ i" G1 z: C;;; Screen menu item for CIRCLE TaTaTan option.
2 I! p. X9 [( E;;; first, get points on entities) A& O; R5 n- q" n4 x4 ^# E
(defun ai_circtanstart()+ t4 n3 d, l" W0 `4 P5 @
(setq m:err *error* *error* *merr*), n+ O# q- |7 d# {- @! l/ J# ]
(ai_sysvar
( t, p4 s$ ~* I2 V9 H7 T5 e7 z (list '("cmdecho" . 0)
' i9 g/ R! }$ G* c: u ;; make sure _tan pick for CIRCLE gets same entity" y8 y& F1 B s* n+ V1 G, u
(cons "aperture" (getvar "pickbox"))8 _4 |' K2 f. T- c- N+ a$ p
)
3 q. {2 d9 h+ t$ V0 P0 N/ E )3 R( D) ~' d/ c: s& g4 ^
;; prompts are the same as CIRCLE/TTR command option+ x( d1 }. o9 u/ U
(setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
: _- E3 c( e+ y* A$ J! o4 C- Y7 | (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
% \: s( i( q+ L (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
% ? u @1 w$ t' x)
" U4 e3 D3 ]) O8 `$ X* ^8 I5 S! x! c;;; Command-line version
+ l1 ?5 y* s5 t(defun c:ai_circtan (/ pt1 pt2 pt3)
" n1 q1 J9 u' \: L" N (ai_circtanstart)
6 O W8 m3 S: f" ?! C" x0 N; s% O4 H- |, ]
(ai_sysvar '("osmode" . 256))
@; ~$ ~" _/ r0 u* D( l) k (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
5 d5 n. E: q5 E7 F
c' \- c4 h4 X( r2 K$ ~- @ J. B (ai_sysvar nil)/ Y0 O2 |. @( ?8 O6 I& v
(setq *error* m:err m:err nil)) A$ C4 c$ J* c$ C5 `4 H' C, M6 b6 y
(princ)( y/ {. D9 h' V/ f, j. _+ U- f
)
& Y; h# t5 ?9 _# j+ |+ y;;; Use this if CMDNAMES == CIRCLE) V8 J- L7 \$ L2 ]( ?8 R4 ?% \
(defun ai_circtan (/ pt1 pt2 pt3)/ C* O3 Y. q' s( H8 C8 X1 S
(ai_circtanstart)
9 a8 g) z9 l( l5 f2 \0 v+ i
. G, H& r# y- n4 G" ~/ L (ai_sysvar '("osmode" . 256))
6 }. x |0 P8 r4 M (command "_3p" pt1 pt2 pt3)
1 k% J; F2 U! i9 M; L# V3 j m; `+ O' W9 c6 v \; ^
(ai_sysvar nil)( p, e6 e4 ~. [* ^
(setq *error* m:err m:err nil) Z& c' Y b& T5 i1 i
(princ)
) c3 a: {+ h2 {)# a1 q, R4 d0 t# g4 l$ N
9 u3 `3 w: A0 E
( x# y ~! v8 o0 o/ c- ^& t: f2 {
6 Q: q4 g6 Y# z;;; Shortcut menu Deselect All item.
. Y; {! _1 ^; X: i9 M7 v
3 P) H0 V& A9 {" L* S8 k(defun ai_deselect ()
8 u; r9 H) G& Y4 J: P (if (= (getvar "cmdecho") 0) ;start if/ d v! a# o/ T! N! a, N9 K5 J7 ~
(command "_.select" "_r" "_all" "")% u+ o! ?, J& y/ R5 F+ s
(progn ;start progn for cmdecho 16 c$ Q& A: j6 C! l0 Q( g
(setvar "cmdecho" 0)* a" w8 y# q0 _
(command "_.select" "_r" "_all" "")9 x/ o i- L/ i0 Y: S* y
(setvar "cmdecho" 1)
7 R. N, @% L' Q2 F ) ;end progn for cmdecho 1
8 D3 w$ z+ J$ ?2 F& m ) ;end if* K& J' d1 G/ i6 _, R/ n
(terpri)' A% V5 E1 T4 o( P. ]1 ~, o2 v
(prompt "Everything has been deselected")
2 S. i2 L! b4 v+ _1 S( x5 q (princ)3 Y) V7 W# h% f7 p
)5 R& i0 p% p2 b/ e" Z0 {( {- q0 {; P
; ]7 R( `, d: c/ l2 q9 ?' L
;;; Command version of ai_deselect to be called from the CUI2 w9 j% o+ ]+ \5 B# O% Q
;;; so it gets properly recorded by the Action Recorder
) x9 S% b4 |1 q4 t6 _;;;. z( w/ N0 p7 C3 X
(defun c:ai_deselect ()3 K! R$ G5 w3 L: W$ o
(ai_deselect)
; v- o; Z- s9 ?6 t4 B (princ)
3 x: G9 G1 ~* d! f: D9 Q" G, })
: ~7 ^+ [0 K1 h3 ^% U5 I/ n* p5 O" k+ [5 R! y) s7 P
;;;
% ~* P0 \# v6 o; U; A;;; Enable Draworder to be called from a menu( S4 ~4 i( d; q: e# J
;;; Checks for Pickfirst selected objects
2 @5 ~" M" S* i6 e8 B' @+ };;;/ Z- x5 F& H2 ]! X$ u# Z, k
3 w Q$ f* i, e/ [8 N
(defun ai_draworder (option / ss )
- O% l+ f' z: \$ a* M
1 \8 F* s* c( Z+ a3 q# \+ M (setq m:err *error* *error* *merr*)
( Z5 C2 @% g' {) W& a8 Y (ai_sysvar '("cmdecho" . 0))
, z( ~! Z3 \$ v) [
6 ?1 l6 Z7 l* P' z (if (setq ss (ssget "_I"))
! e6 K: D! q- x* \0 Q (command "_.draworder" option)+ w9 X, c) B' ?3 S4 b( `
(if (setq ss (ssget))& f# i3 C U) k: C5 [, z, R/ ~
(command "_.draworder" ss "" option), K2 w* _$ l) k' w9 o% J
)
6 k! A& W, e8 ~9 r d ); B+ m- a& E& ~+ j
(ai_sysvar NIL)
! m# N8 N' G# Z7 E2 M; k (setq *error* m:err m:err nil)
- y1 W5 m% r; H h/ A/ W; ~( M/ M$ G/ C
(princ)
0 q' u- j3 j7 G, ]" r)
5 Q; g& f1 j4 C) M% m3 P' |8 I3 [8 C) b- ]0 Q8 \- l
;;; Command version of ai_draworder to be called from the CUI7 b5 N3 M& l# u# K
;;; so it gets properly recorded by the Action Recorder- e" w2 `3 d+ @/ {
;;;
+ A% b0 Z! R- a: j- F4 `(defun c:ai_draworder ()( d" D1 J7 W0 F0 X
(initget "Above Under Front Back")9 E! Q" Z8 ~3 E; E* V6 s0 r
(ai_draworder (strcat "_" (getkword)))5 M5 W$ ^9 q& O
(princ)
7 e% J; D* q7 T9 D: P" u)
6 e) a* p) \' r8 m
2 L" _6 k v$ x" U- g(defun c:vlisp ()
8 ~' [* G6 k$ m$ U (if (/= nil c:vlide) (c:vlide))
n; S/ J6 i( [) u! }+ c/ u0 p% ]0 |7 d
3 H1 X2 G9 r% u. H
(princ "loaded.")
* z9 S9 ^( Z5 ?+ C3 V- q2 i2 ]4 f0 S( Z0 i3 B+ q' F
;; Silent load.3 S5 g5 j: Q: ^ F7 v9 ?: A* B: S
(princ)' \: e+ y( v' ~
- G) Q4 |( m" o! A: P2 r
5 r0 S; i% W t }
7 \* s7 L0 y" c5 Z/ t2 I. G
;;;----------------------------------------------------------------------------) E; k5 e W$ R# j; T; i: D6 H% a' W
;;;
' s, O3 p; n0 `;;; DDCHPROP.LSP Version 0.54 Q- b5 f( _( j6 B
;;;
! s \# `# [: p8 [;;; Copyright (C) 1991-1993 by Autodesk, Inc.4 C r8 N2 t' \+ R( X: C* s% p
;;;
7 P( _7 u) s& G3 x% y( a+ m. o;;; Permission to use, copy, modify, and distribute this software# T* ]" K1 s9 n# a2 q
;;; for any purpose and without fee is hereby granted, provided6 \* L/ ~" y1 n( K' w4 P
;;; that the above copyright notice appears in all copies and that1 r$ b- x4 h/ O7 u
;;; both that copyright notice and this permission notice appear in
7 D8 d) {! a. w# `;;; all supporting documentation.- c6 a: e/ I$ k( O
;;;% w2 Y0 [9 s& A+ |9 _. X, K9 x1 q& u
;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
8 x8 b+ r8 i) c' t: V# C6 {;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR7 l5 F" [* D/ `5 I+ q
;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
! c+ o h* f5 F' {;;;
6 s3 }/ e u' f( I;;; 2 February 1992! S5 l8 }" b- _, q
;;;
6 r/ E* Q$ ^1 z9 y; G3 [% C6 E;;;----------------------------------------------------------------------------0 G' _7 D+ G3 V/ K4 n
;;; DESCRIPTION7 _: Q) e. [; R. r
;;;----------------------------------------------------------------------------
! r" J+ y [5 m* G" B' ? E;;; C:DDCHPROP is a dialogue interface for the CHPROP command.. G1 I: `# o" B, E$ y2 e
;;;
+ y. {1 Z5 W% r) X" Y* _;;; The command looks similar to DDEMODES. The main dialogue has an image 8 ?4 K* x1 P! C2 ^2 v
;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
$ j) y4 l: b x( j;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. 0 t8 x. P: u1 @& k% m7 y3 T
;;; The dialogues are all defined in the DDCHPROP.DCL file.
8 {6 C8 p, d- m# ?" U( W;;;5 W0 ] y; c0 u
;;;8 M8 v- s( b0 ?9 b8 k" N
;;;----------------------------------------------------------------------------
1 H) l2 T, ]1 M. I1 `( a;;;----------------------------------------------------------------------------
2 E' t- R2 r0 }. Y3 ^/ v0 ];;; Prefixes in command and keyword strings:
$ s3 J, e" _3 W;;; "." specifies the built-in AutoCAD command in case it has been 4 z2 I Z( L6 W$ b1 y5 A3 U
;;; redefined.+ N" ~- X" t a# o6 O8 ~. ?1 s$ K
;;; "_" denotes an AutoCAD command or keyword in the native language9 b3 d7 @1 p+ @" j1 w- X
;;; version, English.
( ^6 G4 k) |: s, P5 `' S;;;----------------------------------------------------------------------------/ i0 E- }- J7 f3 w; ?7 N4 D; A/ f
;;;' F: l' s: {& v# M9 n
;;;' m; o1 C! U7 K- y# c& D, h/ r
;;; ===========================================================================
5 H3 Q4 k; P" w& p; x8 [0 V;;; ===================== load-time error checking ============================
( V- _4 r$ @$ y3 Y7 v# X;;;
; [) {, x) s+ q7 }; l; `2 D
" ]7 m. ~! Z( F5 _' J: W (defun ai_abort (app msg)
0 d- v4 P6 J: H+ g! c h: w1 { (defun *error* (s)
2 e; I6 g4 V6 Y* Z (if old_error (setq *error* old_error)); C, ^- a2 j6 j! w2 W& @2 {+ A
(princ)7 E2 [* U% } k. m+ |5 G
)
* g4 _! n- ^- R5 W$ M D# B! Y (if msg
3 N" k+ d- h3 j9 X3 B! k (alert (strcat " Application error: "3 Z" O: N$ i8 s' y4 e2 {: t
app
. }# G+ r! ]6 o. { " \n\n "1 F; Q6 Q( z1 y" j/ E# q2 [) j
msg% Z# l. R' K6 b
" \n"
7 t, P' k$ r# z& N/ X# c )
2 S* Y& _' t2 U5 J )
! C5 X. y5 l* J )
( B& J' B3 U3 c7 S, } (exit)5 }; i7 C# w- E- ~0 u# F4 I: v
)& R6 V% T4 h: n/ Z
C+ s# }0 O6 L, \3 r
;;; Check to see if AI_UTILS is loaded, If not, try to find it,
; g3 \/ @ [: p3 D1 J9 I) l4 G6 A;;; and then try to load it.: y9 b4 u7 |# p
;;;. ]/ K X# b* x' @" `3 Z: m
;;; If it can't be found or it can't be loaded, then abort the
7 B) _3 E2 X3 h+ }- X;;; loading of this file immediately, preserving the (autoload)
- f/ i5 W' D" ]1 q; ];;; stub function.
5 s7 p! m$ W+ h& _7 s( ~+ @8 J" E
(cond
3 }5 i: E. S9 }& e: t! M: C ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.* C- X) R {6 n
& }0 E+ ?% R q# S" @% p ( (not (findfile "ai_utils.lsp")) ; find it0 M5 R4 t8 n9 u6 m7 T; B" C" V
(ai_abort "DDCHPROP") p3 m# K9 t- J4 c$ l5 o/ B; H
(strcat "Can't locate file AI_UTILS.LSP."; x: r1 |3 P1 p$ S
"\n Check support directory.")))
$ a. l5 }! e9 c u3 C" d0 k: `9 x, j5 V8 B9 ^9 U
( (eq "failed" (load "ai_utils" "failed")) ; load it
" I$ W% O) O8 R4 @; R (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP")); X' E; p7 v1 _/ Z; k2 Q& ^
)
9 Y5 x7 N. O3 ~* s7 ? l+ s
q: K' N% b6 M' m; Q- P6 v p (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
8 m/ h& x- ]; e (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
0 K3 q$ L7 E) R3 [ ~" `, e" \ ) ; ai_abort's alert box dialog.
# h3 a' \( v7 B) G: ]3 P& }( A' w0 r6 }1 A
;;; ==================== end load-time operations ===========================# c9 a. N. }4 u: _; p. I
4 _/ O. t" x' y% L K' f
;;; Initialize program subroutines and variables.
; N9 h0 a8 c7 s- c7 O6 |8 j8 A' H; r% ^
(defun ddchprop_init ()
7 d) v# H6 h8 i; ]8 b0 f# m
3 w% L/ u/ N0 H. O+ k ;;/ y" h) Q: h' h6 \
;; Define buttons and set values in CHPROP dialogue box 7 _* a3 ~; g# z# T4 m7 |+ q
;;
9 R* X3 u5 s6 |. E! Z/ z& D, [ (defun call_chp ()0 j' Z0 j* `# n8 F& ]
(if (not (new_dialog "ch_prop" dcl_id)) (exit))
, a+ b4 c' V. n (set_tile "error" "")
) f4 f. a$ H: s; B ;; Set initial dialogue tile values2 r8 O8 Y! }; @* G! ~1 ]
(set_col_tile)% @- y' l, h) @/ p
(if (= lay-idx nil)2 k' M- l: d4 s+ }* e. N) p
(set_tile "t_layer" "Varies")/ L! x/ ?1 k1 m5 h/ \8 v
(set_tile "t_layer" (nth lay-idx laynmlst))
- M7 d" |+ l3 b )
' ? g6 H8 `: o/ ?0 `* T (cond 8 _. n* ]2 M. U
((= lt-idx nil)
. D- O, r* r' J( O (set_tile "t_ltype" "Varies")
& r7 ]+ U1 r. M. L% v. B )7 |! r9 W* [: D/ X( s& T7 h
((= lt-idx 0) ; set tile "By layer & layer linetype"
# S0 E) H+ y2 q' [1 R4 a3 O" R1 k7 `0 g (set_tile "t_ltype" (bylayer_lt))
+ ^6 C: Q" I9 t( w% W )
( a' r" J6 C; r7 l* N( ]6 i (T
- y2 R1 l8 [8 r (set_tile "t_ltype" (nth lt-idx ltnmlst))% Q8 ~ q% Y& r ]8 J
)4 { Z: U% p' @% m" d
)% ~* E7 z2 I9 W' y1 S9 q
(if (or (= ethickness nil) (= ethickness "Varies"))( n' a7 f1 v. h0 D2 d- {) w
(set_tile "eb_thickness" "Varies")& u/ a0 o- z$ f4 \+ P' W: @( A
(set_tile "eb_thickness" (rtos ethickness))8 E8 M4 v( e% \( P1 x% a
). d; s! f! K/ h' C) }1 m
;; Define action for tiles- O& U3 u- O$ K) Q: D8 X8 l( K
(action_tile "b_color" "(setq ecolor (getcolor))")
& ^5 Z! u( G+ o (action_tile "show_image" "(setq ecolor (getcolor))")
" F) u3 ?3 O5 }' L5 d& G+ | (action_tile "b_name" "(setq elayer (getlayer))") Q o5 r* z8 [' P% u. D
(action_tile "b_line" "(setq eltype (getltype))")2 T3 g4 z6 u7 f: H3 @
(action_tile "eb_thickness" "(getthickness $value)")3 s! p# q6 L9 l) M( k, _0 D
(action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
! w8 t& G6 \9 o (action_tile "accept" "(test-ok)")
9 ]9 X" \! F- l8 F C* S (if (= (start_dialog) 1)
6 [4 E5 _/ z* [ (progn
2 c* u' y/ }# d (command "_.chprop" ss "")
* ` X/ J% P/ X; D9 E X (if ecolor: i; a2 P9 E: N$ o
(progn
" N0 K V; q1 ^ (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
- x# s% y( s% ^$ } (if (= 256 ecolor ) (setq ecolor "BYLAYER"))
* b; ]$ F' p0 @) P: }+ X2 S (command "_c" ecolor)3 e; L0 r7 C2 L/ b' s
)* Z% Z* s* `2 x0 c1 ]
); m- i4 Y0 F1 Y
(if (and (/= eltype "Varies") lt-idx)
! ^: J K3 K$ d( N9 A7 m (command "_lt" eltype); v" _. D6 M0 R9 C" j. M5 t
)% X2 } n" O) U% U, N+ U
(if (and (/= elayer "Varies") lay-idx)
6 u+ K2 ^% u, A6 B1 S (command "_la" elayer)
" X, v. P, n0 d )
, `& P0 L+ _ Q: `/ k/ s (if (and (/= ethickness "Varies") ethickness)5 ^, O. b% `, [' F% H
(command "_t" ethickness)
% \$ B$ m+ k+ d5 r5 _3 x B )
M5 q( w/ d4 N; R2 ]! V (command "")) l' r" n: g5 w
)# m; T6 q( d2 P, _) H3 n1 I$ _6 i
(princ "\nProperties unchanged")
4 S: @6 u% n( d' Y# h )$ W& k; E I" c3 f3 Y( H+ V
(princ)
" P! t& R' G1 @3 ?0 m- }: l1 R )) @$ I: y. j. k2 ]: p; k4 d9 B3 l
;;
4 c8 h8 O3 C e, I: E4 s5 d5 Q ;; Function to set the Color text tile and swab to the current color value.
5 l& Z( @. N' f" L j ;;! z D5 g, B9 N. d! _
(defun set_col_tile()+ P% s# K, s! q
(cond & J1 K- U. f4 o% Z& Y! C1 P G9 v
((= ecolor nil)
. V2 C6 a) i1 R. E4 S& Y (set_tile "t_color" "Varies")! v/ t4 n: L1 A9 I* g
(col_tile "show_image" 0 nil)5 E' d& z9 r, C% H, W- X$ J/ h y, l
)8 \. G; Z8 \7 r9 P6 _* w
((= ecolor 0)" o' |; L: N3 c' g) e
(set_tile "t_color" "BYBLOCK")
: i/ a4 F: F9 }) o (col_tile "show_image" 0 nil)
c3 k( Z) \$ c3 |- I ); W* m r6 W( n* I. a+ j7 S1 W
((= ecolor 1) l" |: T) ?8 X* |
(set_tile "t_color" "1 red")8 W' |2 B' w, G( k+ k* y" Z
(col_tile "show_image" 1 nil)0 f! S# W9 ]0 Q- L% o
)% E" e# u, W, r# w: w9 V# z
((= ecolor 2)
5 L6 n! _2 R+ Z# n; _ (set_tile "t_color" "2 yellow")0 E6 h8 A, G! w
(col_tile "show_image" 2 nil)
* {# J# h4 m8 M0 Y& R0 ~ )
6 R e- Y C8 ~0 \ ((= ecolor 3). V" a9 F& r7 `9 Y! ~3 S8 t# y
(set_tile "t_color" "3 green"). n- N- A- X6 E4 G6 X
(col_tile "show_image" 3 nil)/ T/ G; q! y h. F7 i
)! y* R# h6 m; t) `# h
((= ecolor 4). K5 p& p0 j& p. M* k0 j# |0 _
(set_tile "t_color" "4 cyan"); o! R6 i: s- A# F( g* u" U" o
(col_tile "show_image" 4 nil)) O- s$ B2 G$ f( o- \; q1 W
)
. l2 `( R7 W8 n+ h ((= ecolor 5) Y" {0 V6 z0 L! p* {
(set_tile "t_color" "5 blue")8 N. c- E$ {+ h+ h
(col_tile "show_image" 5 nil)5 U9 F; v) x9 d5 R
)
1 p1 b5 B7 g4 |+ Z+ o1 R y ((= ecolor 6)
F" G# V4 u( D+ m (set_tile "t_color" "6 magenta")
1 ^7 b. ?) e8 P- n% N& z) R! F( ` (col_tile "show_image" 6 nil)
% i% t/ N8 o/ H4 c) o; m )
: m' F2 x4 m7 ~$ c7 e ((= ecolor 7), @) f6 a- Y/ V. h- I( {0 p6 [8 ?
(set_tile "t_color" "7 white")$ R. I4 X! E2 S2 ]2 R+ X
(col_tile "show_image" 7 nil)
6 {* N) x/ d! C5 W0 o" h$ p' ? )9 X* P; |9 B9 [! W
;; If the color is "BYLAYER", then set the tile to6 l0 g1 R6 B1 g" z; M
;; show it's set By layer, but also indicate the
1 M3 @- ]0 A ^7 g+ A4 }6 z ;; color of the layer - i.e. By layer (red)
5 G+ m' a: @/ k& z8 j4 \2 N ((= ecolor 256)
$ \7 b; x! n) W; l. h8 b- n( y. c (set_tile "t_color" (bylayer_col))
/ l+ r( d) d: F% u" l: `0 L, G: G: ^ (col_tile "show_image" cn nil)8 ?# V& `6 b# @) t% h
)# {0 z% R9 r( G7 g! z3 I1 a5 r
(T ; A8 Z5 e9 H. y" H1 n
(set_tile "t_color" (itoa ecolor)). n' J6 ~& b- k2 [
(col_tile "show_image" ecolor nil)' p. K) ^: d; [ X
)
4 }8 V, \( w0 k+ ^ )9 {, `# ~$ E" ^
)9 @8 B+ `! o! d$ d6 P4 Y4 u8 \: g
;;2 @- b- l: Y' j1 ^; X7 {
;; Function to put up the standard color dialogue.
- W3 j: `$ l$ w ;;: u7 g" V0 w& K$ `' |. \5 Y3 G. u
(defun getcolor(/ col_def lay_clr temp_color)
' A/ g" f( T; U/ c2 i# z ;; col_def is the default color used when rq_color is called. If ecolor
1 `: `. t# b: u; ^9 q ;; is nil (varies) then set it to 1, else use the value of ecolor.
; ^( c9 m, ^4 K% J3 A' J; J (if ecolor- L5 s, e9 V( D6 d5 H
(setq col_def ecolor)# T( u( u9 x. s! _
(setq col_def 1)
9 z7 @8 I1 d4 U) |* ?& \( T )
" _3 @* s+ T) X$ c7 l+ ?
- I' W0 g, u2 K ;; If we're working with a single layer, get its color% W0 O! o3 y9 m8 `
;; for use in the color swatch if the user selects color BYLAYER.
+ o7 d5 Y9 N' o. B (if (/= elayer "Varies")% ^+ X: a! l% B! b& I9 [3 m3 q1 t
(setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
! n. x( \. ?6 h (setq lay_clr 0)$ ]8 _- S0 f+ j0 E2 {6 h
)
4 E8 \5 x7 W1 q (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
8 K& E3 ^& s# {, F! ? (progn; p( D, S* I j; F/ w" m# H( l
(setq ecolor temp_color)
! m# m; H4 x# O" y (set_col_tile)
/ |$ ^/ B) i& W: O( O ecolor8 w: h. N$ o# d; S: _
)4 y/ o' `4 K {7 [
ecolor1 P' [9 E# ~3 t
) . b. s$ A# g' y% w
)$ k, [& Z# B2 |
;;5 J# L. V$ l* [) r( F
;; This function pops a dialogue box consisting of a list box, image tile, # J9 n- X6 e7 J! L; W8 {
;; and edit box to allow the user to select or type a linetype. It returns 8 v' I4 F2 ~" m) {# b7 ]4 K
;; the linetype selected.
6 _ I! }2 c% ~: g ;;4 W% Q8 p* d' L( C. x1 \2 J
(defun getltype (/ old-idx ltname)
' P c7 ~" A" T& d ;; Initialize a dialogue from dialogue file4 p/ w% J8 ^* d; v7 X/ b' l( q
(if (not (new_dialog "setltype" dcl_id)) (exit))
5 E! c0 P! Y! q$ l% d (start_list "list_lt")5 ^8 E( Z* V/ _5 I$ x; c) z
(mapcar 'add_list ltnmlst) ; initialize list box6 ]2 C: _. F i' G- c( o* u
(end_list)
/ t( v% D5 S) W: @ (setq old-idx lt-idx)
/ ]0 c2 C: K' d$ G2 ^0 p ;; Show initial ltype in image tile, list box, and edit box
3 |( {8 T7 U# H( l7 s (if (/= lt-idx nil)1 k( P2 A/ q/ _$ f, n ]3 v
(ltlist_act (itoa lt-idx))
O7 [, [/ W) z3 \* M9 `- u' [ (progn
; ^3 s1 o6 _2 c& L1 F1 _# S (set_tile "edit_lt" "Varies")
( x/ T, |! i6 J" B1 h" t4 f (col_tile "show_image" 0 nil)
$ B x% s) N/ \+ _5 [ [0 H2 a )
( G6 ~; l, a' m8 j7 r )4 z( b; c- L* ~
(action_tile "list_lt" "(ltlist_act $value)")
. x$ [: M9 D, }6 S+ X& F (action_tile "edit_lt" "(ltedit_act $value)")- C+ c+ k/ `1 t0 q
(action_tile "accept" "(test-ok)"); k* o! N5 z* S5 {/ \5 K) H
(action_tile "cancel" "(reset-lt)")5 p8 ^2 ?& M& g8 c/ ^
(if (= (start_dialog) 1) ; User pressed OK
8 f- j$ k6 ?/ b2 g (cond
" C3 D7 @1 K* Y! M7 M% a" h# D ((= lt-idx nil)( ?- `' [: |! u0 h4 I
(set_tile "t_ltype" "Varies")2 T) j( E* t: o4 o: v/ J* t
"Varies"
_7 @! ^0 H/ q+ V! k. Z )* k3 T) M# k2 L/ R B; v
((= lt-idx 0)1 N, Y! J& y6 l5 S6 Q9 s& ^: l& ~
(set_tile "t_ltype" (bylayer_lt))
2 t1 |% d! p: C U* o$ e7 M) _9 O "BYLAYER"
) c2 g1 {- W7 h( W )$ c# H" {9 _; D) N# C/ M$ w1 P% r
((= lt-idx 1)
3 i) R, a7 _/ G; F1 a$ d" H/ s% n (set_tile "t_ltype" "BYBLOCK")
8 X7 R4 d5 U" l1 |* Z! {1 z9 C" u "BYBLOCK"
' Y1 z% L. D* i, X7 W u6 [. Y )$ `9 R4 \5 z3 `
(T
) y' s9 |* U6 z6 l( E (set_tile "t_ltype" ltname) y4 Y$ V" |) \3 M
ltname6 Q# e/ @8 s/ p: h
)
3 k& d. H* h* I" g. r )& ` i, g3 W) W# l5 k
eltype
; W q) I+ T' h1 N3 h% p )
4 Q" G/ T2 J4 R2 k ): P2 `) t9 t: j; f1 ~" C9 P
;;
' m" m1 N3 Y' Z# V: y2 o2 M ;; Edit box entries end up here
, _ z4 {4 u2 X; I5 q' u ;;
6 G7 W A. |5 d2 K( @3 O (defun ltedit_act (ltvalue)
4 P+ F) b4 [1 d+ z4 l& Y ;; If linetype name,is valid, then clear error string,
/ L5 T7 C% V9 }- Y0 P ;; call ltlist_act function, and change focus to list box., `$ W/ Z5 P6 q/ P: k5 P( r. c: s
;; Else print error message.2 S& [( T- Q4 o! ~7 W7 k* z
(setq ltvalue (strcase ltvalue))
! q7 G; H, p' _# c7 ?) f (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
- n- C7 ^" }& W# _4 A; z/ w$ ~ (setq ltvalue "BYLAYER")0 q9 D7 _5 l) o, ?
)$ i+ n* v# G7 M5 }5 N5 F
(if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
+ a8 M1 c, j' s (setq ltvalue "BYBLOCK")
: t+ c% M. a* {. E )
; J3 p) H: G/ ^; u$ K0 D (if (setq lt-idx (getindex ltvalue ltnmlst))
- b& t% O8 ~6 c( S2 h7 G- u8 ^ J (progn
( J. _) j) ~. i/ S (set_tile "error" "")
6 g: ]3 p6 m' R, m0 V2 f4 M (ltlist_act (itoa lt-idx))6 B" C9 J; l/ c1 P
(mode_tile "list_lt" 2)
9 E+ _/ s* S% Q9 e: T. { )
0 j$ o8 z; F# f6 y0 v% Q" i (progn
& |$ `. d3 K6 e& V7 g( r (if (/= ltvalue "VARIES")/ F; A* W) ]( S/ j" C% E
(set_tile "error" "Invalid linetype.")" Y% J% f! E) _! ^0 B
)
+ S( K3 a) a9 H: D& u, i1 U (setq lt-idx old-idx)' z% R, A8 U( w5 \. ^: z/ N
) 4 X' X$ @$ @0 G$ V8 c
)8 p3 l- u2 _$ o) Y0 g
)
; s$ [9 e# t% O0 e% a* m9 a ;;% M# }& g% {: c& T6 }( Q
;; List selections end up here
+ K. z2 o# \# l. d) A( u: |* }/ W ;;1 p8 |8 E% J% {: g7 E" G
(defun ltlist_act (index / dashdata)
2 Y9 P$ F. Z5 j9 H | ;; Update the list box, edit box, and color tile
, ?0 z* R* w8 P. d' Q! v (set_tile "error" ""): H8 K0 M: i! c
(setq lt-idx (atoi index))- E8 v0 C5 j# D3 R
(setq ltname (nth lt-idx ltnmlst))
1 q2 u( p0 k9 V7 c t( R (setq dashdata (nth lt-idx mdashlist)), b& L0 L4 t% b4 z
(col_tile "show_image" 0 dashdata)
/ G* [0 \7 Z" C! _# b (set_tile "list_lt" (itoa lt-idx))- \& `0 E3 e3 l+ f2 U
(set_tile "edit_lt" ltname)
+ _- ]7 s2 Y2 g0 q# @1 i/ G )
$ \1 l; q( k( U" m- @6 k+ b# Y2 |6 a ;;
0 ~: F( x2 P& `( O; y2 L ;; Reset to original linetype when cancel it selected2 Y7 m( T6 n3 _9 A5 o
;;
6 v" N' e( I1 P6 ^( Q (defun reset-lt ()
1 ~* y7 n. Z" ?" y (setq lt-idx old-idx)
- w) j1 ~' H. |& M. l3 U \ (done_dialog 0)
/ s4 E3 s9 x4 w: b3 P: i- Q7 ` )
0 \% w8 o' G5 L# a, ] ;;# S# r6 X1 w" p0 d
;; This function pops a dialogue box consisting of a list box and edit box to 7 m' q: O1 `( C5 }
;; allow the user to select or type a layer name. It returns the layer name
- \/ z2 p& u+ r' N ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the P, u( {; x+ T2 v4 y* d/ U( l
;; drawing.
/ t/ v4 d& b- R4 x O s* i ;;
6 C6 O! `$ N7 B9 G& J4 z" p (defun getlayer (/ old-idx layname on off frozth linetype colname)) I/ {, ^# N# }& c1 W# L+ h; z
;; Load a dialogue from dialogue file
. ]% q% u# x; }5 a2 ^ (if (not (new_dialog "setlayer" dcl_id)) (exit)), d s- q* o# g) v, O. Y+ Y" j. l; R
(start_list "list_lay")
2 Z& o4 W( L* p$ b. U (mapcar 'add_list longlist) ; initialize list box
- X3 o: L% Q# R1 L9 N8 K (end_list)
. s, e5 ~; Q9 } ;; Display current layer, show initial layer name in edit + P( R3 R' e' Q }# V: ]/ h- X* }
;; box, and highlight list box.
- L4 ~8 X# `0 N# C' J0 s1 M1 N& N( l (setq old-idx lay-idx)
# L: r' Y# ]" z5 C/ N (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))7 }" m/ O) k. P( W0 z( S, B3 _
(set_tile "cur_layer" (getvar "clayer"))
. k) j7 V* x E (action_tile "list_lay" "(laylist_act $value)")
: a' y/ z3 t# W& R4 E$ o& U (action_tile "edit_lay" "(layedit_act $value)")
% [2 F) Z" c- d+ F, z (action_tile "accept" "(test-ok)")
% c) F+ A4 ?0 G, {3 x (action_tile "cancel" "(reset-lay)")
- x0 E* u5 R. F) ^; I6 { (if (= (start_dialog) 1) ; User pressed OK+ W* d/ W# @; @( e1 @) }% x
(progn1 W$ A+ z5 Q0 o ]8 c& w4 M
(if (= lay-idx nil) (setq layname "Varies"))
* O, A; t9 K$ {) C! n" \ (set_tile "t_layer" layname)
! U+ `! s, c4 [# l3 j ; If layer or ltype equals bylayer reset their tiles
. Y( [' K; u# W) H' q' s& Y ] (if (= lt-idx 0)0 w! V7 |6 Y2 K) N
(set_tile "t_ltype" (bylayer_lt))
( {" t1 w/ N6 o0 w/ r) C )
4 \8 f5 T5 c5 J# B (if (= ecolor 256); m |8 {9 w/ p" o" Z. J- W
(progn* i U% V6 r2 H5 d6 A( w4 L5 t
(set_tile "t_color" (bylayer_col))
6 H$ f, p9 D' i: r- S (col_tile "show_image" cn nil) t$ ~7 y8 w" k# m+ r
): o: T5 Z" T) ^( n9 @
)$ n# j4 G' [" w% f/ e
layname. A$ L0 H6 r7 c& N7 R( ~
), p' ~! ?/ B) |! u, }8 {
elayer
8 d) X6 A& x1 h/ m) n1 j8 N )
' x+ ~) ?0 ]; o5 f$ M& r )0 [: _) z# l( K. H" m0 V
;;+ b# `5 x0 e+ z) J5 P
;; Edit box selections end up here9 ?3 q; U; x! e. \
;;
5 m* I, v8 C: m+ ] (defun layedit_act (layvalue)
& e$ \. g! m, i ;; Convert layer entry to upper case. If layer name is% T# l I# s3 ]6 r4 C# e
;; valid, clear error string, call (laylist_act) function,
7 m4 |% h* ^- g# y+ s5 Q, v5 Q ;; and change focus to list box. Else print error message.8 v6 k' t _; G4 c$ Z
(setq layvalue (strcase layvalue))% ^ y; D# t& P1 B5 I( g, w; d
(if (setq lay-idx (getindex layvalue laynmlst))
h' P. z4 ?( [/ |3 @ (progn/ |4 D! k8 h9 ]
(set_tile "error" "")
5 x# v* M7 B2 [4 w. ? (laylist_act (itoa lay-idx)) N$ }7 A' u" G& n2 Q8 i; S
)
% u( @0 _6 ]9 G6 B5 r (progn) Y9 \1 q8 n3 L# {
(set_tile "error" "Invalid layer name.")
' d4 F2 W8 q; k3 k A5 z4 ^3 y8 Y (setq lay-idx old-idx)0 @* i" H- r" @; K' V
)
* k$ a- I% a- [7 X7 ^ )
8 f. S; C# J" r! F )
2 e" V2 c, X2 ~+ D ;;
" y6 N1 y. [0 s, T, x6 ` ;; List entry selections end up here
' d$ y0 O# g6 v& \ ;;* `- a& [; ]+ X" S
(defun laylist_act (index / layinfo color dashdata)
- L& u/ Z( t! m% _% [3 A ;; Update the list box, edit box, and color tile# L5 `- ]6 m1 @# @3 c2 C/ n
(set_tile "error" "")1 G% R3 {1 {) A' `
(setq lay-idx (atoi index))3 i, \3 s: x; w# }% t" b- N H. t) e
(setq layname (nth lay-idx laynmlst))
% U4 h9 J2 W0 N4 @+ B8 i$ ] (setq layinfo (tblsearch "layer" layname))0 s- s6 K0 g7 @3 Q
(if (= (logand (cdr (assoc 70 layinfo)) 4) 4)! i9 C/ [( J8 S
(set_tile "error" "Cannot change entity to locked layer.")' Z% n% r/ r* y3 U6 h! R0 m
(progn
3 Z) {5 L4 Q* q1 x (setq color (cdr (assoc 62 layinfo))); B' W- v0 P, U7 F* R" f# q) D. J
(setq color (abs color))
8 e" S7 l* W4 W( r4 e* n2 y- X (setq colname (colorname color))
/ j% l& ^8 O$ H, ~* T n' A (set_tile "list_lay" (itoa lay-idx))
8 W! J; T0 d$ m5 f (set_tile "edit_lay" layname). s& d& p4 s- |, Z* X& T2 W
(mode_tile "list_lay" 2)
! U4 u8 z) a7 I3 C- q: V )
/ {7 j! a+ V; ^/ f# D+ ` )
2 I0 R% v" D& d; n0 w1 ` )
7 t" D D5 ~- B: r+ b7 I ;;
" G' ^0 a7 Z( l! c* l% K5 I ;; Reset to original layer when cancel is selected0 O; F- J+ K, x
;;
6 p% V( N1 [' G, j( e (defun reset-lay ()
; u0 D& F6 h2 c( E5 r7 l (setq lay-idx old-idx)
& b# [# Z( S5 c1 S" f. Z) y0 B2 N (done_dialog 0)
+ U, c" t' J5 g! a )+ k' C5 z1 W" }
;;+ c- M! V6 S: k! g9 S- H* t
;; Checks validity of thickness from edit box. Since (atof) returns 0 when a " a; l" L- [1 e" q, s k% ]: f9 \2 |
;; string can't be converted to a real, this routine checks if the first
* T7 ^2 V" v' u% T ;; character is "0". It also checks to see if the value equals "Varies".0 D# g" K7 }: v7 W4 Q" k
;;5 c$ s7 W+ V: m" v/ m( ]" i/ {
(defun getthickness (value)
3 y, i! o, S6 o |, v (setq value (strcase value))- s4 h. o& W1 d- A6 K/ ~
(if (or (= value "VARIES")
; s( B5 @4 g7 n" {- r- [- L (distof value)4 [, z) d; A0 s
)
/ T; y Z U( j! O7 j( V" |0 ~ (progn
* n. {" b0 _+ d0 v, a8 L (set_tile "error" "")
' k$ J$ `7 Q5 H8 g (if (= value "VARIES")
* v2 V% e4 @1 o (progn
+ p& U2 ^7 ?+ ~' q (set_tile "eb_thickness" "Varies")8 O* K3 y. h* u, S3 ~7 o3 V
(setq ethickness nil)5 q/ a* s( C7 ^7 [
)
4 m! ?) e/ f6 [9 R5 m/ \8 k+ f (progn
. C$ J+ _ h: G7 N! G0 j (setq ethickness (distof value))
, _2 T$ C& O! ] (set_tile "eb_thickness" (rtos ethickness))5 Y6 P1 }( L7 a5 f3 q2 t7 Y, J
ethickness
) |. R0 r/ R* W3 x) g )( k/ D1 e& P) y9 a
)$ Z: {8 c5 y+ P6 k0 t. Z' N% v
)* Q$ n5 e0 m) U$ }
(progn
+ k; h; `3 U9 d+ P( C& @( a. z% x (set_tile "error" "Invalid thickness.")+ x) [- k# o0 ^- Z
nil% l1 L# \1 r! f! l+ K
)
/ O3 O9 P" K1 e+ x, ~" Q1 R )( c! |* @1 Q m. N) F
): E3 b- F: X6 q
;;
6 |, {8 M: S2 h5 M( `+ U ;; This function make a list called laynmlst which consists of all the layer
- }" c7 i$ n6 d' a# [: l8 f ;; names in the drawing. It also creates a list called longlist which 6 `$ a3 h2 s& z6 I2 z
;; consists of strings which contain the layer name, color, linetype, etc.
+ Z" G. G# W; b. c' ?: c ;; Longlist is later mapped into the layer listbox. Both are ordered the
( _4 D; T/ f6 Y8 I7 H3 {/ l ;; same.0 x, `' c% l' I3 Z
;;
* F; H6 I& m/ j; k (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname 9 I4 D4 @' o' Z9 o: D! u5 M# }1 S
xdlist vpldata sortlist name templist bit-70
9 d( K4 [* c: }: E4 l2 Z )
7 p1 {( a: s; S% j& y) R (if (= (setq tilemode (getvar "tilemode")) 0)9 |2 c, o* d! c( k& k- v0 L
(progn
% n9 X3 b% U; G) T9 L h+ I (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
5 D/ a1 K6 n* g& V+ k% c- { (cons 69 (getvar "CVPORT"))4 l/ j t6 f! j" Y
)
7 v# _3 y/ c# c6 w5 k* U$ W )/ O$ L* V- J* k ]8 A$ S
) 9 o6 A5 u& C2 e$ |( w3 H
(setq cvpname (ssname ss 0))8 ~2 @/ i6 u* l" n; U9 I
(setq xdlist (assoc -3 (entget cvpname '("acad"))))
: L# t1 J0 Q2 W* b6 G& L (setq vpldata (cdadr xdlist))8 q" O0 T: v( Y- Y9 |% b- |+ X
): Q% D" ~1 r& k: j7 T" p. h
)
z" x) k7 [4 w B$ S (setq sortlist nil)% F5 A# V) ~# B) n7 O
(setq templist (tblnext "LAYER" T))+ l7 r% {* U* r6 I5 N& H g
(while templist
) }: ~, I0 _) ? (setq name (cdr (assoc 2 templist)))
. h! c- L1 a: {; [ (setq sortlist (cons name sortlist))
, c/ J7 t3 i/ e4 s l% l- e (setq templist (tblnext "LAYER"))
. s1 o. [, ^9 o, O; V7 f/ o9 v3 r ) : I' i/ F+ N9 s( n5 c; ]8 f" }
(if (>= (getvar "maxsort") (length sortlist))9 x: J7 ^3 q) y* V
(setq sortlist (acad_strlsort sortlist))5 Y. m9 {& T1 Y
(setq sortlist (reverse sortlist))
9 z) t2 Y, u3 x* _$ B) L )
6 u9 | [6 `; r3 B (setq laynmlst sortlist)8 |9 m- a( L( a4 m" \
(setq longlist nil)
" Z: e [9 m. [6 h (setq layname (car sortlist))
/ a. Z* ^) e% d9 v3 b$ ` (while layname
3 h; A' T; M1 ?$ u( }. L& ^) f (setq laylist (tblsearch "LAYER" layname))
3 p- O, e; P, h0 @; v5 A; k% u1 x) r7 k8 } (setq color (cdr (assoc 62 laylist)))
0 K8 V' Z6 k* G: F* n7 a: K (if (minusp color)( d2 Q; m6 V, ]/ \$ d4 [
(setq onoff ".")
3 S* w- L$ A4 G (setq onoff "On")
! b, Y/ F9 b2 a9 y )
! K0 ?# L* A' m* B ? (setq color (abs color))
" j0 }' P; \0 W4 P0 Y& x; d$ J/ \ (setq colname (colorname color))9 f' X1 J0 S) I
(setq bit-70 (cdr (assoc 70 laylist)))
: k9 n/ U+ T* ?; n3 ]8 Y3 r$ i (if (= (logand bit-70 1) 1)
$ {* A9 K7 Q* R: y (setq frozth "F" fchk laylist)$ ?/ z/ e0 Y0 c
(setq frozth ".")
" k; |9 ?0 }) y2 z6 p. i )/ [, g* b2 Z+ P: d% F1 `# g: a5 a2 I
(if (= (logand bit-70 2) 2)
; A' V) I$ q/ G2 d+ Z (setq vpn "N")
8 n1 M4 M# ^1 z9 {, u' [8 _ (setq vpn ".")
?! D) `) |* E+ l2 X )& C! x9 E" H' Z `
(if (= (logand bit-70 4) 4)
3 [. x+ |7 Q$ h1 q; H% O: b C (setq lock "L")
/ h6 _ I% Q; {- z, L (setq lock ".")
0 `/ @+ c- O: e: _ )
' W' w9 {9 U0 l* P2 D' c& `) h1 G0 Z (setq linetype (cdr (assoc 6 laylist)))
+ C0 R; s& j% ], r! h0 I (setq layname (substr layname 1 31))3 E* N4 F3 t% | ]& X8 p
(if (= tilemode 0); S4 q9 ]/ k( q* `$ M+ Z0 v
(progn" J4 r2 D8 K ]
(if (member (cons 1003 layname) vpldata)6 G" C! w! c9 P: ]1 Y) B! J3 K, G
(setq vpf "C")5 a* m- k |$ b6 N. @
(setq vpf ".")6 [4 B9 o4 P6 b$ v
)
; r6 u0 X5 P3 ?2 g7 r- u& u3 B# u% } )- P1 m5 J3 Z* z5 c
(setq vpf ".")
9 \" ]" R: S: v )
! N8 w* F! U. s- ~% v* [ (setq ltabstr (strcat layname "\t"
7 y% |+ p" V9 q4 }8 v8 b: j onoff "\t": U8 A" u( u* \$ }! o5 K% [5 c
frozth "\t", J/ B8 w6 ]# [! u f9 U
lock "\t"
7 u0 E. N: ]8 J vpf "\t"
8 ?1 Y4 a S3 F) }. y vpn "\t"
0 J9 y3 {' n' G' t: ? colname "\t"0 z7 g8 k* z% L* w. a
linetype
. S; u" ^/ x5 q. z+ ~ )9 c& h8 h0 f7 z6 M: I' p
)
4 j7 b4 B6 s1 f- k& ?$ Q* E (setq longlist (append longlist (list ltabstr)))
8 b0 R! Q4 }5 _( P+ U (setq sortlist (cdr sortlist))
* G5 A- e! ^ f; d, M% j (setq layname (car sortlist))' Q4 z' D) J9 j' s8 T
)( b$ {: p* D& _. z7 f! L
)8 W* A7 \: J) E# q H i* N
;;
9 p1 c: C, J& k% c* u ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
5 C- Z$ v" u3 [ ;; linetype names read from the symbol table. Mdashlist is list consisting . b5 G$ d2 v; T0 V, B2 r% N- y
;; of lists which define the linetype pattern - numbers that indicate dots,
# `) p4 z! U' B! V2 B$ t7 ] ;; dashes, and spaces taken from group code 49. The list corresponds to the
! s" Y- T" Y$ t/ ^8 i9 M1 Q ;; order of names in ltnmlst.( E k+ C5 N" H
;;( J' d7 D2 A, M6 O" e) X
(defun makeltlists (/ ltlist ltname)
/ T7 e! ~3 B$ u$ l s' K @/ j9 X (setq mdashlist nil)0 h7 n- l! @- u$ x3 S1 v
(setq ltlist (tblnext "LTYPE" T))- v8 u! ]" S+ Y* ^& C$ K% u
(setq ltname (cdr (assoc 2 ltlist)))# w4 D$ W. ?' A% w# Y, Z
(setq ltnmlst (list ltname))
/ W- ]7 n6 W9 _7 X5 @& e- V2 L; A+ O( F( f7 i W7 j5 P
(if (= ltname "CONTINUOUS")
% V& L' n) e7 ^ (setq mdashlist (list "CONT"))/ n* A+ t5 I- ~ d8 u/ H5 f! o" K
(setq mdashlist ' k" W/ R. z+ p; d% ]5 e
(append mdashlist (list (add-mdash ltlist)))
1 E- s* O( f& q" h" Z' }# H )
& Y7 [1 @' `" H7 a )
* P# k: m3 b1 _5 N. S* Y (while (setq ltlist (tblnext "LTYPE"))* X" U' D2 L U _
(setq ltname (cdr (assoc 2 ltlist)))- j% N- l0 K6 Y7 ^6 S! e
(setq ltnmlst (append ltnmlst (list ltname)))7 v+ l ~4 M( Q4 b H9 f
(setq mdashlist + h. o7 ^* k4 P7 J6 p2 D) M3 ]" \
(append mdashlist (list (add-mdash ltlist)))
# Y, I0 r! f }0 ~+ ?6 c )
) M$ q8 h, r( x1 H )
9 G$ ?! [0 e, d( h6 _, ] (setq ltnmlst (cons "BYBLOCK" ltnmlst))0 s; R/ P$ I: K2 L) t: ^4 d7 B6 ?
(setq mdashlist (cons nil mdashlist))
5 {6 v% E6 M9 s4 c1 F: \+ Q) } (setq ltnmlst (cons "BYLAYER" ltnmlst))9 C. s A T$ Z0 ^" B/ X& k/ s
(setq mdashlist (cons nil mdashlist))
8 K; L# p1 I- q( i; A )
2 T* w* N8 C! c/ s( G& u ;;1 q7 c3 q# }0 q: \$ Z! o
;; Get all the group code 49 values for a linetype and put them in a list ' |5 i d7 E! b
;; (pen-up, pen-down info)# o9 A: T& o$ f1 O& |1 K
;;- S9 R D& `+ D% n! W6 e
(defun add-mdash (ltlist1 / dashlist assoclist dashsize)
$ z M% ~, W/ u (setq dashlist nil)) X' }& V* Y- H' _2 E& i
(while (setq assoclist (car ltlist1))
4 c; s1 i% Z, f' u& @ (if (= (car assoclist) 49)
% n4 Z8 T' J3 `' Z" r1 R (progn
- ^: b: u9 y c; ~3 I (setq dashsize (cdr assoclist))7 b6 `$ G) X6 Q( S; @: F
(setq dashlist (cons dashsize dashlist))+ e4 w- W& r3 j: e: o
)
, n2 B8 X# b" i. I, R+ I )/ L& V, c2 G, E! _2 c
(setq ltlist1 (cdr ltlist1))# D/ S/ t6 a2 a& p" Q2 I: d! b
)
8 D l- ]! F; O4 f (setq dashlist (reverse dashlist))
1 B" e/ w0 j5 B' u3 _# E )! t8 z# t( ^! S, W
;; C5 s- a2 R* f2 S/ @. e
;; Color a tile, draw linetype, and draw a border around it" w& N) a. {* A. |) i. y( T
;;
$ [1 q4 ~7 L: E$ m! T (defun col_tile (tile color patlist / x y)
6 K' y4 e3 x0 Z (setq x (dimx_tile tile))
" g% V. b, l2 K* Z( f5 i (setq y (dimy_tile tile))
4 a3 I- o8 w; }0 C2 g2 D (start_image tile)
" F5 T y/ y5 K9 `3 ] (fill_image 0 0 x y color)3 \ v$ @2 V8 B8 |
(if (= color 7)
: j$ P* X, @) ?) p! G (progn1 Y8 i) R5 c# t
(if patlist (drawpattern x (/ y 2) patlist 0)). v( \( d0 y# r3 f
(tile_rect 0 0 x y 0). r1 G* H2 n+ C2 Z w+ N
)6 d) \7 t( f5 W- d/ v4 \
(progn
- W) ` }# q* ?6 b4 Y3 ` (if patlist (drawpattern x (/ y 2) patlist 7))
9 J0 O! i7 R# W0 s( j7 `& V8 M) h (tile_rect 0 0 x y 7)4 ~5 e& B, _+ P9 V
)
4 q Q' d% V9 V- m9 y5 B )
/ ?4 v% k- c+ G1 s (end_image)
. t% R, d- K4 B3 O )
. s! \' C# Q/ s, v3 @ ;;( r0 t' ^4 L% ^3 m
;; Draw a border around a tile
( d' X* ^4 s) I ;;7 B* o, i% ]* \. g
(defun tile_rect (x1 y1 x2 y2 color)
! b! Z8 ^4 D$ p; L& ?2 C% F+ c v (setq x2 (- x2 1))% w) s, @/ n. m, W `4 Y/ n# O. Z
(setq y2 (- y2 1))8 e1 N* q( O( `5 C) d/ w0 M( I; k) s
(vector_image x1 y1 x2 y1 color)8 k8 U6 V6 {! f
(vector_image x2 y1 x2 y2 color)
& e. o8 k# R# f; ]% T; Q- X5 @$ P (vector_image x2 y2 x1 y2 color)5 o& T t2 P% P, t
(vector_image x1 y2 x1 y1 color)! M* O" a( L/ a4 n; c( X
)
+ o% f6 S1 Y) M+ n+ I# |6 b: c" w# N ;;
. D9 m* d6 m& S6 c2 H: B ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
4 c& u4 Y3 W4 W7 n+ g$ ?8 ~0 H. i ;; tile, y2 is the midpoint of the height of the image tile, pattern is a / I' E- S( I1 i0 [1 o1 {
;; list of numbers that define the linetype, and color is the color of the
! V; c) j$ t8 Z ;; tile.- f- f; ]3 y* D. a7 r" ]+ f
;;% ]- Q/ \& m8 O. ~5 S# w: z
(defun drawpattern (boxlength y2 pattern color / x1 x21 o3 M& [- B7 O! H1 ]1 N% a+ \
patlist dash)
5 O2 f; t$ p- e) `$ i3 U4 H (setq x1 0 x2 0)
0 R: g7 `2 `/ m+ _ (setq patlist pattern)$ j- u S. l1 e& n& `
(if (= patlist "CONT")
# Z# N. w. Y) L* S5 R4 ^9 [ (progn
% T: X, ]4 n( g: J$ i5 b G. s7 f2 a (setq dash boxlength)
. I' v7 m/ ^9 S% x (vi)
. l& I9 m; o$ i9 k (setq x1 boxlength)
" X. M0 m( _3 {# b7 l; p$ q0 J( C )
( K8 z! t+ g) l6 }7 x: N6 Z1 R1 G )3 q7 [: R# a9 {- }
(while (< x1 boxlength)
. K( ^+ U* ^+ l9 k9 E) O" \ (if (setq dash (car patlist))
. e# W% v6 W6 O9 N0 I9 X) } (progn
$ i( ~# h2 w# {6 W7 | (setq dash (fix (* 30 dash)))) O( m3 |2 m- A7 }# Q
(cond
D# h1 R" z# X6 i3 i ((= dash 0)
* `( g4 h Y2 T: ^7 X7 [ (setq dash 1) $ s: z. C, ?9 \) Y0 h) C
(vi)$ s* ]8 H2 e5 r1 P% b1 T4 b' c
)) T, K1 w/ ^/ q2 l/ y
((> dash 0)
; Z+ J$ t' y9 {. U# n0 O& w (vi)0 L; u; S: A- C2 X* _
)
& T0 \2 l" n/ X0 P (T + w( g, X2 |* K$ `
(if (< (abs dash) 2) (setq dash 2))! _( P1 ?- q5 J" K) j; }) u
(setq x2 (+ x2 (abs dash)))) A0 _& w; u: k* z. s
)6 j0 ~( }* N& y. G
)
% U" M& u0 }( d2 Q (setq patlist (cdr patlist)); X! T$ W: I/ X, F
(setq x1 x2); d. l( a/ B9 ^* S2 c7 {8 F. T( X2 @
)
& V$ }4 C) G) f! ^: d' M& W1 a+ z; R (setq patlist pattern)% u8 V/ w: G# p/ v K
), j( v5 |' V( p, s2 Y
)
0 _- n' b( V8 ] ); K% `' {2 j* V" r4 m1 R
;;6 S! s: w/ M9 }& ?2 R* [6 W3 m
;; Draw a dash or dot in image tile
/ n2 a' u& \. k ;;
$ b7 F- _7 {" p2 @% o (defun vi ()8 x2 i0 v' w8 G. o J
(setq x2 (+ x2 dash))
% Q! b3 s" }4 \ d' D. A (vector_image x1 y2 x2 y2 color)+ m( \/ f8 T% x t
)
+ K7 v/ d+ h- Y8 S6 r ;;9 s7 O: w' R8 _. s; s& @
;; This function takes a selection and returns a list of the color, linetype,
0 v7 z8 F& _! J+ E2 K ;; layer, and thickness properties that are common to every entities in the
& L6 Z. G; t& F, c2 r ;; selection set - (color linetype layer thickness). If all entities do not , J, h1 g( y1 J9 d
;; share the same property value it returns "Varies" in place of the " a9 V+ v' t E9 y& g( U
;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)7 }' h0 U6 X8 x7 G
;;
9 [2 Y( h% G4 G% I9 { (defun getprops (selset / sslen elist color ltype layer
: w3 W# o* q, o thickness go chk-col chk-lt chk-lay chk-th ctr): `, h! j8 R _
(setq sslen (sslength selset))
8 }- L) _8 i* X4 x3 k4 R" X9 `) g (setq elist (entget (ssname selset 0)))
2 X: ]4 J9 `$ p i5 r$ V (setq color (cdr (assoc 62 elist)))
9 B/ [7 Z2 b% `. r (if (not color) (setq color 256))8 ?- y+ {- ?, W# A4 P; ~
(setq ltype (cdr (assoc 6 elist)))
1 C% ?: P W/ G+ l6 L1 ~ (if (not ltype) (setq ltype "BYLAYER"))
X1 S" D! J& K3 e (setq layer (cdr (assoc 8 elist)))/ T. r: B' s8 B! t6 v5 `9 k" \5 d
(setq thickness (cdr (assoc 39 elist))). y9 F! A! ]% F0 F- k
(if (not thickness) (setq thickness 0))3 V$ k' u7 E% i/ W
(setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)4 r- ^) \5 z4 W7 M7 K% r
& ~# F: @$ }- w9 ~
;; Page through the selection set. When a property8 R5 V8 ]* e2 Z6 D+ \" N" S: R8 {
;; does not match, stop checking for that property.! a" |$ T1 M2 ~+ N, N. U3 K
;; If all properties vary, stop paging.
6 j" o* @. E7 R! q8 H
' \- z2 q9 M- J9 I5 v$ ~+ @. f (while (and (> sslen ctr) go)
9 L; F8 O5 G; c& m (setq elist (entget (setq en (ssname selset ctr))))# ?0 S/ ]5 Q+ T" x' C7 ?, d- i) O% W
(if chk-col (match-col))3 l# K2 Z9 h5 P. F6 I P
(if chk-lt (match-lt))8 h$ C* b7 s# T
(if chk-lay (match-lay))
/ p1 d2 H3 k, `, j) W (if chk-th (match-th))
* }4 p. X& {, U0 V: i3 |, L (setq ctr (1+ ctr))
- U f8 b+ w S7 ~! N& T/ T! N3 O2 e (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
. E$ F0 H- K0 G/ f, n, N6 ?! l% R (setq go nil)5 |4 q; g3 b, a
)
* S5 \8 C# i5 I" Z" K m. s4 g )
1 p& l& \* \( Y6 _& ]7 J4 V% | (list color ltype layer thickness)* a. ]9 K) T- p2 o9 r( I2 C
); p B1 J$ @/ N/ ^6 [& q" f: t
: k7 t6 [4 `; @# N( I7 c! T (defun match-col (/ ncolor)
; f( v+ n' J0 j) S# \ ? (setq ncolor (cdr (assoc 62 elist)))
) C! ^0 }7 v4 i6 A/ T (if (not ncolor) (setq ncolor 256))2 `& M! A. ^3 o+ A6 O" |$ d5 n
(if (/= color ncolor)
, t4 t( m+ z: W+ a (progn; |8 d8 { n1 o+ b
(setq chk-col nil)
$ n d. e0 q6 p! W8 b1 ?5 x9 Y M (setq color nil)8 Z' J& q5 X/ @3 b Y |2 G1 Q
)5 i; B5 n" W: T6 F9 b2 L
)" W& e5 X0 _/ p! `7 @4 f) {$ B1 _
)
' ^% T1 M" O8 U2 [( T3 U1 G; s' j
% V$ X: z! L2 R/ T8 w" I (defun match-lt (/ nltype), f! v9 N% i# j1 e
(setq nltype (cdr (assoc 6 elist)))
9 |9 c% \8 c. _3 w( j" t) s (if (not nltype) (setq nltype "BYLAYER"))$ v! H- B( [4 D3 `8 x2 m- U, F5 c
(if (/= ltype nltype)' n+ m! u1 D9 }- l0 R2 m$ S
(progn
4 X4 w) ]- `! E: h (setq chk-lt nil)
4 @; {" ~) }2 Q, I (setq ltype "Varies")9 @2 K) L3 D+ Y
)9 p: l- H) n) i7 H! G2 O
)
0 E x/ \& X! R* s; ~5 }' k )
5 S! X+ b- c! |' Q9 _0 v
{) Q, Z; F' j' Z: D (defun match-lay (/ nlayer)
& k/ J7 v3 V) p! @! ?% i9 I (setq nlayer (cdr (assoc 8 elist)))1 R' [7 J6 p/ M# o
(if (/= layer nlayer)
, Z1 q- q; B# m- h0 a6 `3 ]( Z8 ` (progn
8 k5 g6 k/ `" ~ (setq chk-lay nil)3 Y: _5 e0 V4 M8 k
(setq layer "Varies")( o3 p6 {7 a+ i+ T. R
)6 ^7 p) O( e7 v: [
)
+ m. g( v. N, w4 b0 ]' Q )
" j9 ~5 {/ i% V4 g' K: D. v
9 _( E& n0 E8 ` (defun match-th (/ nthickness)' Z) ?& n9 I: y, A' R
(setq nthickness (cdr (assoc 39 elist)))/ L! {; Z) A+ X8 V4 K5 f1 p
(if (not nthickness) (setq nthickness 0))
* y2 T" t/ ^( H* a (if (/= thickness nthickness)$ m. n. B0 _! f9 S) T
(progn% O+ G8 |& ?7 M3 u
(setq chk-th nil)+ M, ~1 t! {( i" s' l* r
(setq thickness "Varies")1 c3 O7 p: v- L7 j2 j7 w
)2 h( t3 z6 M- ]5 i7 y
): P, @4 r. N) U& [9 G; j9 i" a& H) f
)* N0 Q* @0 X6 p( Z$ U9 \
7 U9 Z2 r8 G" J; [; Y! z
;;
0 o1 w+ L% r9 q0 g" t" b; f0 n ;; If an item is a member of the list, then return its index number, else
D& r; y3 T$ j5 u; \ ;; return nil.
7 _2 b- O8 v) Z. P! j* t7 x ;;
2 ~. I+ m: U7 N" R6 c7 o d (defun getindex (item itemlist / m n)
* P5 p; m0 j$ H& R8 ? (setq n (length itemlist)): V) R0 L( a- Q( @; F6 a& b& W/ u
(if (> (setq m (length (member item itemlist))) 0)
" ], X5 \/ @) M: A (- n m)
+ b- D/ ~$ z" D; \1 y nil
0 ~. U: B- i. f- Q: s )' I! w* n- J1 Q0 {
)( _' i. z- U5 [) t8 B
;;
/ ]9 h9 V! a3 U7 I% o1 ~7 v# ^ ;; This function is called if the linetype is set "BYLAYER". It finds the
1 @( ^- Y$ e7 P- k# Z ;; ltype of the layer so it can be displayed beside the linetype button.
1 Q8 k' m& J* F+ w ;;
9 K3 t {" f, O1 x1 z( v4 a9 ^ (defun bylayer_lt (/ layname layinfo ltype)7 b- Y' C& j+ d" N9 _( f
(if lay-idx
* R( v" p/ I/ p9 k q* h (progn
& G+ M$ x0 X e% a* @; T (setq layname (nth lay-idx laynmlst))8 H# ^, h- p5 {7 ?7 c) b0 Z$ v* R
(setq layinfo (tblsearch "layer" layname))7 o/ b" e: k2 u0 G6 h
(setq ltype (cdr (assoc 6 layinfo)))
1 J3 S0 t* H1 y' r (strcat "BYLAYER (" ltype ")")
% i, Q% L9 j" a5 _ h7 A2 W# ? )7 @# m8 A9 r6 g
"BYLAYER"& ~9 h& A! u7 V N& ~1 f* c5 y
); B' A1 Y. |! d6 f+ I
)* ^3 Z6 |+ l% y* X. n: g
;; M/ \+ ?% _# S, k8 F
;; This function is called if the color is set "BYLAYER". It finds the # q$ u G# u& p9 S) z: j: O
;; color of the layer so it can be displayed beside the color button.) K( `" r7 K) T! X& N0 h. D" y
;;
3 y# }9 o R) P2 j (defun bylayer_col (/ layname layinfo color)
" p9 { D. v; C0 g( L; l7 V5 n" }, ~/ k (if lay-idx
7 C' o% b2 j0 r (progn% T+ E! z& g2 x. R
(setq layname (nth lay-idx laynmlst))
% e/ L% d1 w$ A (setq layinfo (tblsearch "layer" layname))$ ^# l% S8 ^/ g9 b7 t$ _5 H
(setq color (abs (cdr (assoc 62 layinfo))))/ W# m' Q4 _% |3 h+ z
(setq cn color)
9 N+ j% H& T- E5 A0 y (strcat "BYLAYER (" (colorname color) ")")+ C3 k; R" K, i
)
: U+ T8 Q4 p1 M7 ]3 E2 b3 v Z (progn5 J, h' G5 ]3 S! T0 n! Y7 s- b
(setq cn 0)! g4 j- J" h& Y+ k1 F
"BYLAYER"- F |9 A; @/ I
)/ K( e; p# J! E1 |
)
4 X; S( z% r( M C )2 W; J6 A. U- x z- c
;;
" ]5 U- N$ U; t7 ?+ |, m ;; If there is no error message, then close the dialogue
( q7 G2 Z$ a) F: m ;;
, s& O' p3 |6 S ;; If there is an error message, then set focus to the tile5 |4 ~# j8 m0 w. A ?
;; that's associated with the error message.
! b. j# k) ]+ p0 Q0 ?+ S2 h; E ;;
' U' J5 |! |9 @" m, x% u: ^ (defun test-ok ( / errtile)6 y2 c$ l! j9 H/ B5 T
(setq errtile (get_tile "error"))
% ~4 U( ^5 A+ |0 Z (cond
9 [0 s" ?$ W: }& {, L* | ( (= errtile "")
3 E- _4 }0 ]% ~7 g! p9 T! y0 a (done_dialog 1))
" D. r+ e. s) x8 P- q" ? ( (= errtile "Invalid thickness.")
: `. ~; D$ @$ o. n (mode_tile "eb_thickness" 2))
9 A. k( w" G8 H. ^, R )) ?% K6 D* p4 @1 C$ _* a4 K
)
% o4 T: s: }1 ~) f ;;
4 T7 X5 K! N, a$ G% Z9 w9 g ;; A color function used by getlayer.
" L$ ~: O& d5 | L X ;;2 a- J3 z8 B* g2 l
(defun colorname (colnum)
0 Z: E3 H/ I9 |! b( b3 Q (setq cn (abs colnum))% L4 F+ b" {- I& q: W
(cond ((= cn 1) "red")
8 }+ G) K8 g& v( P. r ((= cn 2) "yellow")
; X( ^/ _( t% A: L" {# N, i ((= cn 3) "green")
+ p# l. |4 _) q* x$ S ((= cn 4) "cyan")5 R4 h0 @7 D4 Y+ f5 u2 T) }
((= cn 5) "blue")2 y c( o9 y; p& H& I# Q1 Y: D! S
((= cn 6) "magenta")
# J# r0 E0 Y b( E% j ((= cn 7) "white")5 J" V! e- f2 n$ l
(T (itoa cn))- ?1 U: n! r) j4 w2 R8 M
)6 f/ `5 s7 G* L0 B- c8 |; n
)& z, @* g% [/ y( Q
( {$ s: r' s, Q- s2 R;;; Construct layer and ltype lists and initialize all
* W+ |3 {- Z( J- s+ i;;; program variables:
2 i/ u" A+ p- }- c0 u4 P4 L4 B
' j5 j& M3 A: R2 E+ W; B (makelaylists) ; layer list - laynmlst, e# @1 X9 `# V6 d
(makeltlists) ; linetype lists - ltnmlst, mdashlist* g2 H: A: \ |/ q$ O5 k4 R4 ?" h% P
;; Find the property values of the selection set.
3 G2 ~" E8 I+ g8 y ;; (getprops ss) returns a list of properties from- S/ y5 m! F" P: O/ h3 }' G+ y
;; a selection set - (color ltype layer thickness).
+ Z- B5 R4 M2 N% \7 Y (setq proplist (getprops ss)): ?# a, A# ?. U9 I4 q, a }, ]
(setq ecolor (car proplist))
1 J; E; d* q& P- P2 N (setq eltype (cadr proplist))4 ^: p. @9 K" x$ r( M/ ~
(setq elayer (caddr proplist))' d" x/ ^, Q7 n( \* Z
(setq ethickness (cadddr proplist))& P$ S; L$ W5 b
;; Find index of linetype, and layer lists
k$ f! T. `2 L+ r% b (cond: H; R% E) c7 q8 K2 r
((= eltype "Varies") (setq lt-idx nil))* P! \ \9 D% z
; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
. o, _! a: x1 R8 [; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))+ M0 @9 _, t. X3 L$ H4 s
(T (setq lt-idx (getindex eltype ltnmlst)))
" O8 O; ]1 Y" J2 ?5 y B )
7 {7 g* B& [' j/ K6 J( x" S (if (= elayer "Varies")
$ V2 Z2 v; u0 ]$ }$ d (setq lay-idx nil)7 y0 ]- \# ^. ^. ?
(setq lay-idx (getindex elayer laynmlst))
7 ]2 {( H' F6 I' ^% { )
, \+ j& {' u+ `* Y/ }$ s% b (if (= ethickness "Varies")
; O# Y! A* H0 K, J& Y: |' w. d3 F (setq ethickness nil)! \! n: N7 f9 r+ t
)
8 a9 B6 w! R+ O$ r/ I- Z) a* `4 a8 ?* G
) ; end (ddchprop_init)' o% `5 v" {0 ~% ~& h' q
, T7 v- m& {2 ~: d" H6 {;;; (ddchprop_select)
& T. e* V' i- d6 f4 U, w" [ b;;;/ f2 h$ q1 d" r% b0 X
;;; Aquires selection set for DDCHPROP, in one of three ways:9 [. i" p0 v- E# Z
;;;! R1 `+ L% J. D# v4 X P5 l
;;; 1 - Autoselected.1 |& j; w. J% _1 p/ D
;;; 2 - Prompted for.
. N$ m& _& i- H1 G. ~;;; 3 - Passed as an argument in a call to (ddchprop <ss> ). W, t- K& P2 ^
;;;' f) \! k" q U; L0 E
;;; The (ddchprop_select) function also sets the value of the+ [9 @/ y$ ^% X9 r. o& i$ a
;;; global symbol AI_SELTYPE to one of the above three values to" n4 r H4 Q# q# [6 m6 k' U% j
;;; indicate the method thru which the entity was aquired.
% x. y: s* A; U% Q% \/ ~2 M9 c+ A& B- Q3 Y9 m& o/ ] }2 O: F5 \4 B
; Q/ @. b- e# u' j9 L(defun ddchprop_select ()
3 }- }) ?; }: ]" ?' d (cond
, U0 ? h6 e8 U7 Q! P) u9 P ( (and ss (eq (type ss) 'pickset)) ; selection set passed to9 k% [- C* L h3 p+ y! {# I
(cond ; (ddchprop) as argument. O0 C5 d, V2 ]( ~! K
( (not (zerop (sslength ss))) ; If not empty, then; \5 B/ X o) w' n" Q+ X0 A( m
(setq ai_seltype 3) ; then return pickset.: \; I% U% m+ Q4 N$ M" n9 {2 x K
(ai_return ss))))5 b) l3 Q; r& ]; O j" j( A, C
, ?2 X" f! [# e4 P ( (ai_aselect)) ; Use current selection3 F8 L4 \, v+ H: k9 z2 U
; set or prompt for objects
( l" |4 G. p( S/ K+ G
/ c6 j" b' Z- f, S0 F8 { h (t (princ "\nNothing selected.")
9 [/ _5 m7 ?8 c( O3 V% e (ai_return nil))
5 l" r: t' i/ |( d6 O )
/ V/ L, F& r; y& L& W)( U/ g* Q U8 |9 E' `- j7 M
. h, S; a* s2 W2 [2 e0 e* Z3 Z! S; k;;; Define command function.
U; b$ X8 Z# ~, k7 N6 O. j; ], x) P1 H m3 L) i
(defun C:CH ()
) r/ @% x% P' X w' C/ X' Z' l (ddchprop nil)- g( I6 T! k- h& |, k
(princ)* |) f: H% ]4 R/ `3 d" q
)
) T+ |, k/ E% q1 {) u1 r0 E% [* x" q' A: m% O- A
( o, _" Z! L6 @
;;; Main program function - callable as a subroutine.: ]6 F5 b$ Q& \9 l) W$ q
;;;& Z5 o3 @4 r6 U5 n: x
;;; (ddchprop <pickset> )0 o# O" ]3 h# d9 P4 I/ n9 Z; |
;;;
' F6 \. \- b. Z/ U3 j- H;;; <pickset> is the selection set of objects to be changed.
$ Y0 C/ _# `' o7 T% a$ P8 ];;;
" E2 \# f0 Q4 @% j;;; If <pickset> is nil, then the current selection set is
0 c" R; e n( A- u# K- l7 ]& R;;; aquired, if one exists. Otherwise, the user is prompted4 s2 a% H5 c) r( l
;;; to select the objects to be changed.
" P( T( }7 R) u0 R. ~;;;* j6 L) d u0 b+ K
;;; Before (ddchprop) can be called as a subroutine, it must o1 ^4 E( y+ b0 `4 `+ ^& F
;;; be loaded first. It is up to the calling application to
3 D/ @' r P1 ]( j; u;;; first determine this, and load it if necessary.
1 m* }. _6 P6 f V( d, M& I7 ~& R- x) C/ H5 W
(defun ddchprop (ss /
3 t& [- i6 S s9 X
$ x$ ?: m2 A+ ^, J% m& e: U3 W add-mdash ecolor ltedit_act s0 S1 \# r6 Z8 T2 I! y
assoclist elayer ltidx selset6 Z- h6 Q p7 S6 n/ y) ?+ `# a
bit-70 elist ltlist set_col_tile
* e/ g) K4 T9 ~" v9 I; o boxlength eltype ltlist1' K+ z% Z' V( f
bylayer-lt en ltlist_act sortlist% ~6 u. P& O* @% g
bylayer_col ethickness ltname
, d8 l+ Q8 n7 Q' z/ ]/ M bylayer_lt fchk ltnmlst sslen4 K- M) ]$ {6 u. N4 |3 j0 ?
call_chp frozth ltvalue templist! H2 z5 F" Q( q0 c/ F% f0 e( K' N
chk-col getcolor ltype temp_color
% e$ B3 k! G5 V; A$ @( S6 Q chk-lay getindex m test-ok
4 p8 e! T3 j4 E1 u) C$ ^) F chk-lt getlayer makelaylists testidx8 e) u+ i; ~) ~$ Q& u# @
chk-th getltype makeltlists testlay1 a) k; s' B9 @' Z1 D( n. D I
cmd getprops match-col th-value: A& n2 F9 y) C5 j& H
cmdecho getthickness match-in thickness
' v8 L7 n& T# F7 C0 J cn globals match-lay tile8 `/ w" d C& C" a0 F! a3 ]$ x
cnum go match-lt tilemode! _) X3 s4 K/ }) K
col-idx index match-th tile_rect
6 j0 H [! |; Z5 [7 E# H colname item match_col vi$ v! v0 b: U8 @4 U: \) m# ~
colnum item1 mdashlist vpf. c, y2 Q, }3 M; n9 Y1 e9 D
color item2 n vpldata
# b+ V/ ?1 Y/ L. B, |; O3 g s colorname itemlist name vpn
, ?% d: ]) x/ ? col_def lay-idx ncolor x
4 @ Q( g7 {/ H/ Y; M; w9 Q/ t" n col_tile layedit_act nlayer x1
+ }/ M3 t* T9 l$ F2 a ctr layer nltype x2
8 B0 C2 r7 W; [1 f/ \" a( u B8 i! x1 r cvpname layinfo nthickness xdlist; e# Y# T8 J5 s; g
dash laylist off y) t$ ?0 I6 W: N, ~( O2 Q3 R
dashdata laylist_act old-idx y12 v9 V& m C7 J) k, m6 ]" }1 Y
dashlist layname olderr y2( m. I8 Y9 \1 S0 Y
dashsize laynmlst on undo_init
9 m# ?6 |1 [. N( B2 F9 m1 n2 X* H dcl_id layvalue onoff7 W6 Z8 Q7 N- c+ H8 _# A
linetype patlist
( [6 I' {+ q& ^- k& s ddchprop-err list1 pattern1 v3 `4 a) ~8 C7 s$ l. R
longlist proplist/ t' v2 y$ ?' W
lt-idx reset-lay- D1 V* w# y3 D- O, r
drawpattern ltabstr reset-lt
7 x: k, s' K, R3 c( p )1 T1 `5 k! W& _
5 t) R$ w; d/ _! e (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho& A9 Q6 X1 K! M) w3 K1 t( i
old_error *error* ; save current error function- T2 c, r9 t- A
*error* ai_error ; new error function) Y2 u! z& `0 [$ k0 v( _* Q8 V
)+ f3 i, o* i" b
, D. w) f, I! Q) A6 T4 j& X8 S1 X* F (setvar "cmdecho" 0)
+ H( N1 R- w7 ]9 H0 ?( J$ d/ B
- a) t1 o$ x) C+ F% @& F (cond& P* g8 m. D" U# q
( (not (ai_notrans))) ; Not transparent?
& C; D' I3 M' d& M. P7 e7 _/ _3 H ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?; N9 p% J/ t+ f7 H
( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?9 T; F. |1 K7 x6 E$ _. X
( (not (setq ss (ddchprop_select)))) ; objects to modify?3 H# c8 [4 x, ?
& b* ]/ D& K& u/ S! ^4 ~( c! i8 M (t (ai_undo_push)' e8 g/ r! M0 m
(ddchprop_init) ; Everything's cool,, R b: D; @7 [% Y+ E8 c4 [
(call_chp) ; so proceed!
" g, ?; @: J: ?! x2 A5 d (ai_undo_pop)
1 S: A7 n- m ]: t )
; m& Z" f# c- F3 r& Z )
7 r/ d6 C5 Z8 J+ ]' R0 N/ G. Q6 t% w; J1 E7 e& R8 V* X4 s
(setq *error* old_error)
/ L% u/ d I0 O: i2 a (setvar "cmdecho" old_cmd)
- L, Q7 _3 r d/ U/ H' z' i (princ)3 g+ {1 s7 y( G
)
! M6 q/ d' K/ i# {3 C X7 v" o J2 i0 r' x
;;;----------------------------------------------------------------------------2 M/ \5 Y' P4 m6 c
, b- m0 t+ w- F! h7 y- A(princ " DDCHPROP loaded.")! @" z" M4 b, ^- X. `' u
(princ)
( u1 V. l# g2 N1 ^
7 Y- @. {2 }! ] ^/ ~;;;---------------------------------------------------------------------------- l/ Z7 C m" g" Y. ~' p1 k
" y2 D: w! |9 S& T" j' ]' g;--------------------------------ddmodify.lsp---------------------------------- ?7 t. b0 f5 I8 g& y: d
; Next available MSG number is 111$ H! s2 x+ Z/ u6 ]! v1 g! z8 h
; MODULE_ID DDMODIFY_LSP_
4 D( g6 F; `) I1 g# R0 A; y;;;----------------------------------------------------------------------------( K+ W4 Y4 ^7 Q2 k$ k1 f* S4 c# _
;;; DDMODIFY.LSP
2 G# X; e: }: b9 J;;;% ?( O: c; d' P8 {: t( x
;;; Copyright 1997 by Autodesk, Inc.
" h7 a+ i2 a3 D' H$ E$ j5 A;;;# S! J, Z/ c. `: `+ U
;;; Permission to use, copy, modify, and distribute this software6 W7 D% N( y! b3 y2 ^
;;; for any purpose and without fee is hereby granted, provided
, B* b9 y+ i+ h8 a;;; that the above copyright notice appears in all copies and& u8 o; p F! A- b) \* b2 |
;;; that both that copyright notice and the limited warranty and7 F4 l- F% }/ j# G" d* E' |
;;; restricted rights notice below appear in all supporting
9 ~, Q! f5 m3 M: T2 w2 } _0 s;;; documentation.
6 t5 U, T; z( t8 M0 x+ P;;;' y& h: | x, r6 f
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
' ?( A) f8 p1 E; D6 | [;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
8 D% x. C- K) G0 P. m3 c8 e;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.8 \6 B$ a0 }% t6 H# z
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE" I6 w' b b% u- ~2 N
;;; UNINTERRUPTED OR ERROR FREE.4 W) M& ?0 s3 i8 X
;;;
% V9 l4 w/ L% y8 \( T;;; Use, duplication, or disclosure by the U.S. Government is subject to( S7 z. G/ W A
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
# R& ?4 {% ~# k8 R2 X9 G;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)* D8 J5 H; u3 ~' x5 w5 r+ Z
;;; (Rights in Technical Data and Computer Software), as applicable.6 A e7 ~! {8 g
;;;, Z/ g/ s, M+ \) X
;;;.2 S6 R2 M, y& i. s+ J7 N
;;;. D# e, B! B" E. r! Z
;;;----------------------------------------------------------------------------" b4 @; y: ~1 p* p4 u1 m
;;; DESCRIPTION: {+ s% a. X9 F4 B$ O7 `
;;;3 q/ s% s' H; ~" g) ^6 R: ^
;;; This function allows the user to get a listing comparable to the LIST
' H5 V _' ?; ^; W;;; command for most objects. In addition, most object fields in the" y, w/ ?1 y, n8 n; Y
;;; dialogue box are editable. Points can be specified dynamically by
p- D1 ?+ V5 C1 q;;; temporarily dismissing the dialogue box. Each object has a unique
+ X7 r V0 M, [. K0 K) U( z;;; dialogue.* v5 |' T i5 v0 F) U9 l1 U- |
;;;' u6 ]; D; {' ?2 z- ^+ [1 b7 D& @
;;; Naming conventions0 W! g/ `7 F0 ?! Y8 Z& M1 C8 v
;;; Long function and widget names may use an underscore "_"
, v0 E* ]4 e& g- M4 g;;; in their names to make them easier to read, long variable5 H' c/ L% ^9 W$ P6 \, X3 u* Q/ `$ Z. K
;;; names use a dash "-".! _6 @# @* [2 k2 ?( a
;;;----------------------------------------------------------------------------; @' a3 M2 E$ h: v8 h, _% j) B
;;;----------------------------------------------------------------------------
* }; {, T# S, F;;; Prefixes in command and keyword strings:
1 Z7 A4 a( T3 h6 @;;; "." specifies the built-in AutoCAD command in case it has been
2 K& a8 |+ j) m1 J% \;;; redefined.- d$ t- H4 d; L
;;; "_" denotes an AutoCAD command or keyword in the native language2 a3 L! z9 e# I8 l; N: O2 {
;;; version, English.
$ X* U6 K& J9 n. n, K. `7 E5 z$ Y2 T! b* D;;;----------------------------------------------------------------------------
* M8 U- p/ z) Q$ \! [$ |2 w- T;;;
; s) ^/ m* c# y; k0 D; k;;; Avoid (gc)s on load to improve load time.8 Z/ y- s: E; P- d* r( ]
;;;
% R$ S; u' S/ \% N I" d(defun do_alloc (/ old_allod new_alloc). y* C. [. h& |1 c# ^& r
(setq old_alloc (alloc 2000) new_alloc (alloc 2000))
8 a$ j# y" p9 \0 O# v& W# P* ^ (expand (1+ (/ 17000 new_alloc))): o8 s, C8 q5 S% C& W
(alloc old_alloc)
5 ]" t' {/ s8 G" ]5 a* H)
7 C" x3 n0 x1 Z3 r(do_alloc)
3 ^4 M B4 S3 @% y7 w(setq do_alloc nil)0 V) I2 i4 l$ O
- \1 }0 Y* C% p' G) M; `
;;;
" Z7 Y' ~# F; D N. R9 j# A;;;# `2 }* `/ ]6 ~& `# {
;;; ===========================================================================
/ S* ^6 o! E/ s1 P; o5 g6 q;;; ===================== load-time error checking ============================( e5 {! B: H" @ D1 S p W& ^
' f) y/ V" |4 b0 O (defun ai_abort (app msg)1 c) `# l% {4 T) O+ b% m( `4 n
(defun *error* (s)
- J2 P- M# K; ~! ] (if old_error (setq *error* old_error))
" ]) w" w4 R- s) L. L, B (princ)
5 ^# V( K) G0 w$ z: }3 k8 U )6 d- ?9 q! C" P% ^6 L
(if msg$ `" Z& W3 F) A5 K. |+ u* @' a
(alert (strcat " Application error: "
$ P) H; H& u8 O app/ j2 M6 J7 w7 u7 F* c( M
" \n\n "
4 X' G4 Q* K* w5 {) f* T msg/ F8 Z1 d+ r5 O
" \n"( d7 {; f2 k, p7 ^, X5 c
)
; H# s; @' K: y, k/ d, i& Q" l )( ?9 @0 O9 S8 W
)( N1 t7 T6 I7 ]- l2 }7 y
(exit)
7 h* k$ e \! U; @8 C. A, r& E )9 h; p' d7 G4 A; F
5 H' A) N$ V' b/ _
;;; Check to see if AI_UTILS is loaded, If not, try to find it,4 v& p. z6 T% ?" d) w
;;; and then try to load it. If it can't be found or can't be" x' o) p# v* g
;;; loaded, then abort the loading of this file immediately.3 h# f3 m- }; ~4 S# y! Q9 K& U
& r" I1 L- t, l (cond6 `1 d2 G& N- s4 k
( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
" Y/ I/ q ?9 u g. s; y. |0 J2 L8 f4 W5 \- Q- C. S. j. v3 @- \
( (not (findfile "ai_utils.lsp")) ; find it
/ A, x7 q% z. O* \1 ]& [ (ai_abort "DDMODIFY"( @# c5 ~5 t) w" W7 Y2 Z+ g$ p
(strcat "Can't locate file AI_UTILS.LSP."& U! _* ~. @9 E1 n
"\n Check support directory.")))5 U8 a ~* l3 S; D2 G5 f
, j. G7 j( q" s ( (eq "failed" (load "ai_utils" "failed")) ; load it
0 x6 j2 O1 U9 _) |" B# G8 G0 ?$ u (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))0 E P; E7 G$ Q% u) _& k. _% C
)4 K- @ ?8 {" J& m7 }
$ [. v- d7 {% O9 J
;;; If we get this far, then AI_UTILS.LSP is loaded and it can5 G3 {" ?7 c) S. K3 N4 Y# M9 N! T
;;; be assumed that all functions defined therein are available.% @. A' M, G! d ~
4 ^2 B2 k' }- d6 r;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
+ b3 \% W {9 H0 E8 t D+ @4 P;;; if the file can't be found or xloaded. Note that AI_ACADAPP" q, }1 S/ }. {% g6 A3 m, f) E0 x
;;; does not abort the running application itself (so that it can: q' h" `6 g# N2 M6 a0 P7 ]" @5 E8 e
;;; also be called from within the command without also stopping6 e/ T M0 w4 y1 @. p
;;; an AutoCAD command currently in progress).
% Z& _3 H' x# h) p1 \- k4 H. E
& a- e* u8 Z/ ~- L D8 l" \8 ^ (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP$ Q; ^5 N4 W' M1 B1 l
(ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
1 S2 w* E: @" M7 P" | ) ; ai_abort's alert box dialog.
# c1 S1 \" e' J, e5 Z6 m
8 ]3 H" @1 G* }9 ]9 j7 x0 g3 E8 };;; ==================== end load-time operations ===========================9 q% J. U- {0 z0 ]: @7 q
# O; L$ h" @* O3 i;;; global variables
8 q4 \ l h2 W7 U/ ~' g
8 U& m, Z9 o) @+ T. w(setq hatch-elist nil)7 A( I# l* {7 S5 m5 n
, M# E6 P$ N% n" H5 W' e;;; If we get this far, both ai_utils.lsp and acadapp.exp are2 I* o/ @, x; z6 t
;;; assumed to be available.
! i+ B& A: Q" ?7 \& n+ L+ Q7 y6 n$ O9 N- k; ~, E/ F6 h
;;; Define and encapsulate all subroutines that are declared
0 ]! @2 q9 q5 x;;; locals of the (ddmodify) function.) g9 ]$ ^, @0 d2 O; f: q1 {, e% {: L
: G( {0 _; O: Q3 T; o
(defun ddmodify_init ()9 V( }5 z% A4 ]7 E
;;4 z2 h6 q; R0 H" @
;; These three functions modify the enitity list for common properties. Since% @, L8 \1 s! n: K$ T1 I6 w" t
;; color, ltype, and thickness are absent from the object list when they are& z' r. X1 ?, z; R8 i! m. F( R
;; set to their defaults (i.e. color = bylayer), a simple substitution using
! l8 J" R S" L1 y7 i ;; SUBST is not possible.
0 Z* B; U q# g ;;) l: G- R) M7 h3 g
(defun modify_properties ()
7 ]' S& v5 ]. [3 t$ l (emod ecolor 62)
3 Z9 u$ o& Y3 U0 a% ^4 m3 w7 O, N (emod eltype 6)1 ]9 ]; `6 k% X+ j, l! i9 m; x
(emod ethickness 39)* Z7 g; [, \1 I+ ^2 ^$ d: k
(emod eltscale 48)4 J9 `% L1 j' \& z V
(tempmod elayer 8 nil)
. p b( ?- F2 ?5 {6 j6 w0 ? )
. l- V8 m6 I+ N ;;% t7 c6 U9 [. n* G" r
;; This function is used for modifying common properties of the ACIS) g9 G& z: }- R
;; based geometry objects. Thickness is not valid for these objects( ~7 d) n+ O3 g3 U. P
;; so it is left out.# }; q: w& o. B9 h& J/ B1 A% i9 Q
;;# ~: d* T2 r" r
(defun modify_prop_geom ()
Z# [! O q# V. F6 f (emod ecolor 62)1 s9 {, M' a7 K4 ?
(emod eltype 6)
; @! U+ b. |! V& \$ H3 ?0 r (emod eltscale 48)
% m* t. E2 l/ M! k( c7 U (tempmod elayer 8 nil)
6 a' G# S1 V0 A& g& C ). `3 q/ c- g/ X$ Q" f7 n- k* \9 B
2 L% y: x4 M/ i6 L* ^" a- B
(defun emod (value bit)
3 F: X5 @+ O2 |9 W; w$ M/ R (if (= bit 62)& r. ]8 k, A7 l$ t' ?
(progn
/ ^5 c$ H6 _' d, u/ ` W. @ (if (or (= value "BYLAYER")
6 G1 w; l" r# n) ? (= value "BYLAYER")) (setq value 256))$ t, Z- t# y R% d$ k
(if (or (= value "BYBLOCK")
# t; P0 Z% h I) [ (= value "BYBLOCK")) (setq value 0))) i$ c5 \7 o% V+ k9 a
)
$ M9 i+ ?, ]/ M* a# g )
: J# p7 Y# N4 H Z (if (setq oldlist (cdr (assoc bit elist)))
" W# A- a% p$ Q! N. S: [ (tempmod value bit nil)9 |4 K! m& o2 ]2 l
(setq elist (append elist (list (cons bit value))))
# x! j( y2 S" P ), S8 L7 x# p3 Q3 O/ d& @! b0 [- `2 i' L
)
- C4 x0 u" w4 s) G3 t ;;
^# V: E9 L) {) N$ G ;; Resets object list to original values. Called when the dialogue or
& g8 y4 x- o5 D2 a; {" v3 i ;; function is cancelled.5 J) T7 m4 ?/ ~* q5 V) A
;;- Q9 H, q( u5 b. |
(defun reset ()
2 _6 C! Y1 i6 v7 m' [1 x: N (setq elist old-elist
, m6 V6 h# V3 b9 ~3 q ecolor (cdr (assoc 62 old-elist))4 D& H, Z4 R% R
ethickness (cdr (assoc 39 old-elist)) m: K) Z" [0 a
eltype (cdr (assoc 6 old-elist))
K3 ~: Y1 y1 X6 d3 a7 E* e. k elayer (cdr (assoc 8 old-elist)). a- m! `# x3 g6 ~/ X
eltscale (cdr (assoc 48 old-elist))( m# B# C+ Q; q2 d- t: i
)- k4 k0 c; q3 ?7 M% S
(if (not ecolor) (setq ecolor "BYLAYER"))
- M7 n5 G3 q0 g+ s" S, |0 |, h8 L (if (not eltype) (setq eltype "BYLAYER"))0 M) e# u# u1 [. Q4 C
(if (not ethickness) (setq ethickness 0))2 J* y3 G1 C9 a+ v! o0 E8 J4 k
(if (not eltscale) (setq eltscale 1))
) R K1 b1 n. y$ q& \8 Q1 ?1 i (modify_properties)% H9 @& t$ Q A' O( m" t" q3 D
(setq reset_flag t)2 @; o, G2 |1 E/ ^8 k
(entmod elist). G% i; S" P4 W+ X! ]) A/ r* M. p
)' s0 r( _# a9 z, T- l) b' s$ E2 U" e
;;' C. ~& _3 g7 r# e4 R9 f
;; Modify object when dialogue is temporarily dismissed to reflect latest
5 O5 R! [6 {3 n) Z$ d* v ;; settings of dialogue. It converts the point from current UCS coordinates to B& O* C! }0 P* v, M. [
;; the proper object coordinates (world or object).2 d; t2 y, J/ t; ]
;;) _) s( L1 W3 h
;; Arguments: value - in current UCS coordinates
7 d! t- W( Q6 o; a- l ;; bit - object code (i.e. 10 for start point)9 S# ]3 s/ T2 _3 m& V$ N
;; ptype - point type 0=world 1=planar
% d4 x' a4 H. r" |) D% h0 R ;;9 U, w1 i3 w& ^9 I5 t4 f
(defun tempmod (value bit ptype / newpoint), g# n) h+ p. p! a" j
(cond
& r+ `9 N$ c, L8 s ((= ptype 1) (setq value (trans value 1 ename)))# I( r* W4 c8 K V
((= ptype 0) (setq value (trans value 1 0)))+ z f* s. @9 n- R: v' b
)9 G4 Q; T0 @6 |, y: `% H
(setq elist (subst (cons bit value)
0 i( ` ^2 P8 r# @* f/ Z, ^2 n (assoc bit elist)
- y+ O' g+ e* J elist
6 X' h, V' V* v7 V7 t D& | )
8 R7 t+ s; J/ U' [) q( u )' Z5 q# |6 T4 }) X$ O
)2 j$ Y0 D$ i. { }
;;
9 W5 Q- I3 _. [) b7 `7 m9 ] ;; The following functions are called after a dialogue has been temporarily
) }4 E$ ?4 F$ m/ k% u! V) S$ k! m ;; dismissed and the user is selecting a point. If a point is selected the( A& K3 N |* n0 I0 T) Z/ G
;; object list is modified and new X,Y,Z values set. If no point is selected
" E# K' t6 m9 Y; \% D. D/ R ;; (null response), then the point is reset back to its previous values.% R9 X, i0 v" T, W! M5 o
;;' i9 s/ n! U0 n2 Q4 W
(defun ver_pt1 (ptype)
( l& B' q, e/ A P0 e/ N (if pt1
0 C3 u& Z$ h. w (progn# x L9 s( O8 n. _2 }. z
(tempmod pt1 10 ptype)
( U- N1 j5 n, S) l( } (entmod elist)
1 H0 d# b. f2 D. I ), n3 I# g: b; ?- h7 o
(setq pt1 (list x1 y1 z1))
8 l2 C1 J" u+ h* ~. k3 r. a% H ); D u/ z: v' p/ P8 Z+ n' D S
)2 s g7 Z& J% t# N$ f9 s! e
5 o h: ~( {' T: v x! G" L9 X ; (move_pt1 <ptype> )
6 L4 a+ Q* M- f+ z7 S6 N% n ;
! _7 O0 k# @5 }# j" w6 l ; Called in liew of (ver_pt1) to translate block insertions which
8 p' ^ m: R6 W, J0 r& Q ; might have variable attributes attached to them. If the distance
2 j8 {- A1 \! L- [- @6 N9 [5 e4 o ; the block is to be moved is < 1e-6, the move is deferred. Z! ^9 n& h+ p! }( Z) P, S
2 _/ E; z) q+ C$ \ D( D; i (defun move_pt1 (ptype / basept hi)/ O% {! E+ m, l' K3 a/ H4 o
(setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
6 c. ?1 ]- y* H( @" h (cond
# v, O7 Y# a/ J% j0 k ( (not pt1)
: m6 Y% w5 ]+ Z0 u! } (setq pt1 (list x1 y1 z1)))
8 B/ Q. M. l* A4 Q7 L' {7 ?1 c k' S
' i0 Q3 { x) t0 F, F ( (> 1e-6 (distance pt1 basept)))
2 x# i! L: C' M5 X* B% h+ u2 S# \ c# |
(t (tempmod pt1 10 ptype)! P0 q1 [! s ~! y, R
(setq hi (getvar "highlight"))
$ N, R( j( {" [/ P4 g5 ^* y (setvar "highlight" 0)' }. D& |5 r, f) S1 H6 f/ c! y
(command "._move" ename "" basept pt1)" B; k3 b, B% @( A+ N0 z l
(setvar "highlight" hi))$ j3 ]- E* O# c
)
2 `" }7 e4 h! J7 ^3 { )
2 C j( x, `: v3 W* g9 J5 M
: C: ~2 c* Y2 u+ g# I (defun ver_pt2 (ptype)
. w, {2 y: ]/ q, g, k$ e! S" x (if pt2
7 f4 u6 V& J4 _ (progn
. R1 _/ S6 i7 U3 G! [ (tempmod pt2 11 ptype)
6 V! n/ z J0 O& k9 B (entmod elist)
" b( @! @/ ~, d )
5 ^0 r& P) y& g+ A (setq pt2 (list x2 y2 z2))( d, X! y8 o0 l) s6 U" ~- `
). A) ?; p0 c8 S
)$ p: `( V- J l# N0 X
( t$ F' n6 @8 g' V/ e7 @
(defun ver_pt3 (ptype); g4 Q9 Y) {4 x5 |( b! u' {
(if pt3+ m. u- e2 e. L
(progn
! n( m a% I7 y1 _/ Q) `' V (tempmod pt3 12 ptype)" k5 R& x. l9 [2 t
(entmod elist)
( i" ]$ T4 Q$ m, P3 O8 v7 d )1 y/ }1 r- p. ^/ m, o
(setq pt3 (list x3 y3 z3))
" X0 a) v3 v) ~6 D& w4 u )
" X) T1 h0 z0 i* b# ?: R )
3 U' I. |. l9 G) {0 f2 G8 f8 p; x. z% B4 Y
(defun ver_pt4 (ptype)% L8 f/ \* u* l( a8 v6 B5 h/ N
(if pt4$ r% Z& R' p; \* h
(progn
% Z( n3 `3 e% z9 o5 H0 B- l$ o4 ^ (tempmod pt4 13 ptype)3 s2 J z! z( {" O
(entmod elist)0 V+ A3 U9 V! {
), e; |, R1 S* b( e/ W
(setq pt4 (list x4 y4 z4))
4 t- c! A- _! f' U: t4 f N )4 Y4 o8 E% E' w8 w3 E; y4 L E% t
)
$ k7 L8 e# O! p) I$ h( ^) u/ x+ H ;; Xline/Ray x t8 Q: ]7 k' |1 N% _3 H- L
(defun ver_xline_pt1()3 {0 G+ @; v1 p
(if xline_pt1
2 S* h" g; z5 D0 U (progn
, _- d% A2 A) i& j9 _ ;; convert to WCS.( L6 U; g0 J- w# Y# X* ~+ K$ t- s
(setq value (trans xline_pt1 1 0))
( }" h0 n: z9 K (setq elist (subst (cons 10 value)) J: }8 J4 r2 h0 W
(assoc 10 elist); D3 ~8 |, x8 `8 g
elist7 B5 K9 ~" v. n. w! D& [7 w- Z
)' y# i- j* T0 @* {' A' }6 `
)
" p5 J& t, o' g3 u4 X$ ^ ). F0 t: l+ e/ x/ b: H4 n
(setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
}& ^) @ n1 `- p2 i )6 K6 U/ V2 U) L7 c" I9 N2 ]; h
)9 @$ e7 R7 P: M; k6 J
( a6 x! [8 a* c. b (defun ver_xline_pt2()
1 p# L8 b3 Y& B (if xline_pt2
% d/ y' v d6 ^5 ?% k& D( K. N (progn
+ F; m6 n/ x. K+ o- `( M- D8 l ;;
: L. G1 R! e* U$ M ;; Calculate new Direction Vector WCS6 z, ]: \5 b9 f Q, H1 _
;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))# q" k& v! U/ `/ s& j
(setq temp_dir (trans xline_pt2 1 0))
; U4 A% J ]' C (setq temp_dir_x (car temp_dir))+ U3 b6 ~, K: n; B$ R& q1 L
(setq temp_dir_y (cadr temp_dir))
, ?4 V% ^7 I- J% N: ?# R; W (setq temp_dir_z (caddr temp_dir))
/ M) }5 Q8 p, w- }! h/ _; W% {- E
* n1 J5 m5 |0 K (setq temp_xline_pt1 (trans xline_pt1 1 0))
- r7 R! e( d2 \' `- v (setq temp_xline_x1 (car temp_xline_pt1))
9 H- H. ]" k* E8 B- o6 b+ h (setq temp_xline_y1 (cadr temp_xline_pt1))
9 a' s+ W+ d3 F (setq temp_xline_z1 (caddr temp_xline_pt1))9 M( u O1 s! J' s
* C g) m; z, b% N A& \6 x (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)! T: Q9 i8 b9 m, w0 R1 A; R$ b- R
(expt (- temp_dir_y temp_xline_y1) 2)
/ V2 ^& A' d% v* Q/ z (expt (- temp_dir_z temp_xline_z1) 2)+ H2 V" ^+ [) i' q
))); F" e( b8 v# h$ `+ Q1 O' k2 L
(setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
& v- F7 T6 {! V p* V (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
, K- g u9 {% v3 l9 f* G (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
4 @# ?8 N' ^! L6 p1 X" A (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))& K9 j9 ?) j/ V" s
(assoc 11 elist)5 n0 g5 U! n( v# v S% A
elist
2 n7 q) D' Q3 k) d6 y. i )
9 F, u* o( e6 c+ U )3 [ S- a$ B' j. q7 y
(entmod elist)
6 k% ^9 O6 @: E! [% ^9 H8 o, ] (setq xline_x2 (car xline_pt2))- w- ]) w+ x% h f" F, E+ f6 ^2 Y' Z
(setq xline_y2 (cadr xline_pt2))
; n4 T! Z. N; O& k& l2 w3 D0 D (setq xline_z2 (caddr xline_pt2))
4 \& i& o8 {5 Z$ M5 f2 n `; l M9 m$ `
; P! g+ l$ U6 j2 w2 A5 S
: y' ^; }, u( C( i% l )
Q; e" ]/ _7 p8 Z0 x (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))1 T: q! x& l0 G6 {5 a2 e: N* H
)
+ q9 \, e* i$ ~ )
6 F7 y8 C+ N$ Z/ b6 k$ C/ L" ~' n
1 \& H+ H, k. r, Z& j9 q! ^ P ;;
3 ]7 d a' {& g, m+ V( k# z, e& D ;; Common properties for all objects" G0 s6 z9 A k+ z& V
;;7 ^3 E) [* {4 N8 @% P
(defun set_tile_props ()6 ^5 j( Q! B1 j: h6 m
(set_tile "error" "")' n: A2 Y6 B! s0 f% b( o8 \) \
(setcolor). W/ D$ J5 o: _+ o1 G
(cond
2 m' l3 h# K3 V ((= eltype "BYLAYER")
2 D0 m7 e- O) s+ o (set_tile "t_ltype" (bylayer_lt)))
( U7 k1 B* R1 b8 d, g, f ((= eltype "BYBLOCK")& u+ N% f: I% m# K
(set_tile "t_ltype" "BYBLOCK"))
& M6 {! j8 I7 x4 v1 T1 N @' r (T (set_tile "t_ltype" eltype))
7 [& Z$ `# m1 ]* ` ), H2 e8 z/ R0 ?2 o& j4 P
(set_tile "t_layer" elayer)
0 _3 p- F! T2 g (set_tile "eb_thickness" (ai_rtos ethickness))0 [* w3 s+ D- i+ `& @: Q
(set_tile "eb_ltscale" (ai_rtos eltscale)) a! d2 V1 h; s
(setq which_tiles (ai_common_state etype))
* l" x/ z, z" d, ^: e ;; Disable tiles if need be...; O; w; Y' B; w7 ? q) k$ n
" V1 U$ E& y+ r- u) [2 b. W ;; Layer Button and Text Field' f4 z ]' A |3 x$ k. Q
(if (/= 1 (logand 1 which_tiles))! o3 H9 V3 j8 z, S: t: i
(progn8 G/ d$ ^# y, A/ M) k# ]
(mode_tile "t_layer" 1)' q' T9 |/ a( Y3 \5 X0 ~
(mode_tile "b_name" 1)
2 k n9 b: I4 ^% _ )3 L3 h; Q! l) t1 k) i' v% A
)
6 A% A3 [9 K' [ ;; Color Button and Text Field
+ F" q% C- q$ f% g: D1 Z" M/ t (if (/= 2 (logand 2 which_tiles))
; q- u; h- _6 _3 P% ^1 C (progn
# P" d+ H9 V: w2 i (mode_tile "t_color" 1)
5 z- X U+ u' u# N+ J. i9 x (mode_tile "b_color" 1)
7 q6 H4 W* r* H0 @1 b (mode_tile "show_image" 1)
; p0 ^. ]9 U; x! `% ?+ w )+ ]) I( f# h0 {' ]1 Z
)
! S& \$ R+ `0 `! M$ U5 [ c* h( w ;; Linetype Button and Text Field1 ?$ E2 K6 }! q, d6 R9 f: h0 f% V% O; Y8 P
(if (/= 4 (logand 4 which_tiles))
9 p$ q9 G$ x9 d& I2 } y+ ] (progn, ]. k) F) S0 L" [4 G
(mode_tile "t_ltype" 1)+ ^$ F, o# R# a5 @ _- x
(mode_tile "b_line" 1)" _; w, [- H3 L' i2 X2 g- L# Z% e& [! n. E
)/ c) l( J6 Y' q) [
)
. j I' ~4 B5 ]/ ^! |6 J# w ;; Linetype Scale Edit Field
2 e8 ], r' ]; D e; N (if (/= 8 (logand 8 which_tiles))
1 v- o9 k' Q8 O0 ^: M (progn
9 d/ B! E! |3 e (mode_tile "eb_ltscale" 1)
; J/ Y1 |! l3 _" H7 q% ^ )
7 m7 d, r6 Y7 F! c& Y )- y- z v4 X3 e4 Z4 G8 ]: ]
;; Thickness Edit Field.
6 i7 }( k6 K. U% d7 ] (if (/= 16 (logand 16 which_tiles))5 I- e% a5 N1 g
(progn* w0 N. p: r) {" t- P+ u
(mode_tile "eb_thickness" 1)
4 }0 p$ O: }5 I4 R8 t# ~, X )
. O5 e! Z9 z5 U- t )- d* q2 ]3 a% T$ w
)
8 _/ x l7 F5 H. O- U$ m) C$ ` ;;
3 W* {# c: }7 X& D0 Q% [ ;; XYZ Point values for all enitites
' D' v3 S2 l8 \ t7 z& y ;;
- _" x' g- |# Y/ V4 C (defun set_tile_pt1 (ptype)
. L w, y- `! \9 _! C& {* [$ h (if (= ptype 0)) ~/ ]4 @& T0 r. J I
(setq pt1 (trans (cdr (assoc 10 elist)) 0 1)); m; U; m1 |) \1 L' Y
(setq pt1 (trans (cdr (assoc 10 elist)) ename 1))3 k7 o9 v% ~; Y4 h( o- D& Q' c5 S
)& p0 u% L; l4 d& M$ N9 w
(set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))- A4 ^' ^% h# e( w) q, q
(set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))
/ u- z$ x) f) X0 C1 M0 } (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
* L! r. `" Q2 R# d6 K )" E3 @0 P! H3 S4 Q* w: J" ]; y D
(defun set_tile_pt2 (ptype)9 R1 R7 N8 @, M( I
(if (= ptype 0)0 g% J' d" {! o9 K+ p& S, d; ]4 P
(setq pt2 (trans (cdr (assoc 11 elist)) 0 1))# H- H# s. k, `- ~* d. p
(setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
2 O z4 {) B% F. W6 x )
0 \$ o) c0 ^6 n% K (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))4 h$ K' k! R+ p A4 c# |4 c. ^
(set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
3 j0 L9 K4 d X% @% \4 a* U% m (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
5 a* Z* e! {. V& w )& C+ u; ]8 L1 t1 u0 K7 [
(defun set_tile_pt3 (ptype)
8 d( O3 ~& p3 q2 Q6 y% E (if (= ptype 0)
9 j% F! b6 M, { q (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
R% p4 L; y5 A2 o (setq pt3 (trans (cdr (assoc 12 elist)) ename 1)): N( _$ @) p6 k4 I5 j4 t; v
). N7 d$ f/ G7 ~$ i$ { Y1 R
(set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))/ }2 q! G( e; X6 ]- s
(set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))0 O# p9 V7 |. b" n
(set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
8 P) q: ~' r% ]% W) c )3 i/ Z: w+ g( l4 m: a; \
(defun set_tile_pt4 (ptype)
, P6 z9 V) [" t# W: t (if (= ptype 0)
( @4 z2 b7 d1 P s5 s% I, B (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
& _+ }7 z% ?6 f i) V2 h (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
2 Q# l) S+ h1 k8 M! A6 w ): m( t3 R' ]$ I$ |' R; `, J$ ~
(set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))0 J- E7 d1 l4 {' H. D
(set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))( E' W3 }0 O; Z
(set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))" m* a* N* n/ L6 ^% i! B7 ]! u; C
)
! q8 s& m3 [7 [2 s( g ;;
! b9 L+ r3 B& h" W" l ;; Xline/Ray( {, C$ }3 r: b( k6 {- G
;; b2 \* [4 P. {6 l% M
(defun set_tile_xline_pt1 ()- K! T& |4 ^" A/ \6 B* m! V
' z$ N/ A$ Y) E6 s/ ] (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))- v9 T& S( [% G
4 b2 m5 X. l. K' Y1 f, C% F( G
(set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))0 _: t; Y4 q2 X: y/ r- Z4 B8 s
(set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))0 e; a1 o9 b0 I: k: r& h" z* ^
(set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
& H* l& e$ T4 X3 H) I )
' m+ p& t% j9 t' H (defun set_tile_dirv ()9 v+ C2 H, e7 X$ l* X j, u
;; Convert 11 group to local UCS (displacement)
7 V3 c2 _3 {8 u8 L (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
7 C9 y: @. \8 g) i: U) z, D
i4 F0 R/ J/ m! J2 Y% G; b8 K- h (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
% V% t& k% i! G8 p (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))
1 ~, R9 N0 |. p (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
0 T# }; N# a& _. B: ]; w )
) w9 B0 y; x7 ]5 m3 { (defun set_tile_xline_pt2 ()
! V4 @; ]0 a5 c# y1 u (if (not xline_pt2)" I8 }0 s/ b2 N
;; Initial second point is Root Point + Direction Vector
- L# p) h6 F3 X (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt)), N$ U; x$ Z7 @! G3 N. G
)
) P. K' x) Y9 `1 c% R. ^6 g3 V (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
1 W- s: W# _1 z8 ~ (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))' p9 H u8 ]6 A- }" w4 }
(set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
- o) u# S8 w/ f7 Y )
$ `+ H. x; _* u& q( A3 A/ p$ F# Q! j( R5 d/ z% [
;;
2 [* C1 O8 C: u) w5 ~7 F& S ;; Handle for all objects
3 ], t- a1 a! q/ B5 J( ? ;;
; E% H0 b3 c3 r: P( F8 A$ \ (defun set_tile_handle ()
8 }6 O, S. F5 g# V) w; b/ r2 B (if (setq hand (cdr (assoc 5 elist)))
. s$ ]. W) ?, Y) n& Y9 a( f& t9 ]& T (set_tile "Handle" hand)
2 y0 q n( q. F' u; _6 i% p (set_tile "Handle" "None")3 v# c! q6 S9 q
)
A: c( k5 v7 y5 C* H# Y2 x6 r) d )
! u! h$ Z4 l: a. N4 j1 L/ l/ U. T ;;( @. x6 R# Y" e0 Y
;; Radius for ARC and CIRCLE3 L8 B2 W/ t+ [3 g5 J7 ~' p) x
;;; S0 t! Q- R2 a; B! |8 a
(defun set_tile_rad ()
& o, Z5 c$ U' `2 s h (setq radius (cdr (assoc 40 elist)))
5 X9 B$ `6 D2 X l% x (set_tile "radius" (ai_rtos radius))
- Y, G5 K, [) A- B# S* A: z0 n )0 }" {4 h7 C8 U, d
;;3 j! `2 u4 D& z2 p
;; Start angle for ARC
$ _% H3 r; _4 k ;;; e! I! |! u0 x9 T3 C
(defun set_tile_stang ()0 h9 x) a) a) H- c9 Q4 @, i
(setq st_ang (cdr (assoc 50 elist))), `9 [4 }& D1 R+ `- W
(set_tile "st_ang" (ai_angtos st_ang))
; W; w5 l7 @+ ?9 O( Q% D )- e, f. @" ^( j& H+ \) P, o
;;- Z: o( t: f% D% D+ z
;; End angle for ARC
% p" _+ |8 b# h* C% c ;;/ s% e" \1 o) d9 s$ ]8 R! N$ S l
(defun set_tile_endang ()
4 z( u8 _. e4 d# a ]3 Y) A5 \8 X (setq end_ang (cdr (assoc 51 elist)))6 x) E5 r* D5 D* w# `0 w6 F1 o
(set_tile "end_ang" (ai_angtos end_ang))
( j! C' I: h' s* q )
1 h0 h3 @! z5 e8 K# h2 h6 x ;;
, F# e. w! i2 @- { ;; Rotation Angle - Text, Attributes, Block insertions and Shapes- Y* Q4 [ {" P3 m# U) g, r0 d
;;1 t- S* [; M2 i9 X8 ?
(defun set_tile_rot ()
6 ^+ `5 d3 O# Y& j9 N (setq rot (cdr (assoc 50 elist)))
0 X3 |2 g2 E7 j7 [ (set_tile "rot" (ai_angtos rot))
9 {3 @" M8 @8 \+ z2 L1 q )( R$ x# e3 U# A" N- W6 v
;;
0 V, @( J+ `: P* X R ;; Height - Text, Attributes and Shapes
# I! _' w1 p/ x ;;
7 x( y8 Q6 a& C% _" D$ E (defun set_tile_hght (): h) n+ k1 [( `3 ^4 s1 K
(setq hght (cdr (assoc 40 elist)))0 c2 X6 W U" ?5 d0 e
(set_tile "hght" (ai_rtos hght))
9 p6 Q+ ]* d$ g' e9 W )9 ~$ L6 o$ w- Q# e" _2 |
;;
7 ^# S% s4 N, X: r$ c4 f ;; Width Factor - Text, Attributes and Shapes
8 @1 h6 f; [5 G: k" ~/ o/ t! M ;;2 q8 c+ M5 ^+ H) O' @. X3 Q+ O
(defun set_tile_wid ()
) I' U$ A8 P: }% [ (setq wid (cdr (assoc 41 elist)))
, Y7 ?! H; ?% w (set_tile "wid" (ai_rtos wid))" z9 E' O: O" l! T8 D# ]' y) ^
)
+ i. E" T( |% W: D/ h ;;5 T9 f; E& y' q' W/ u
;; Obliquing Angle - Text, Attributes and Shapes
6 a4 Y# K1 z( h. b0 C ;; [* s$ s3 T) _& W* x
(defun set_tile_obl ()9 @0 J( n' m- J. o) P
(setq obl (cdr (assoc 51 elist)))
% E0 I- J! ]% I$ q' a (set_tile "obl" (ai_angtos obl))$ ^- d v' `& U3 d. s$ ^
)- j' R% y# P& a0 `
;;6 M6 ~% |7 N5 A* h2 L& C
;; Text string7 }2 Z1 H9 C2 K3 h/ I
;;8 y. w, o; c& |: _1 H
(defun set_tile_text ()' Y# _3 Q' ]) h' L
(setq text (cdr (assoc 1 elist)))2 [: q1 `1 j. U8 v
(set_tile "t_string" text)/ N* M4 C2 T7 p- K( D
)1 E6 k' u6 `6 j) u6 q! j
;;- O; s. n+ w' O3 H- r7 B
;; Attribute Tag' n0 @/ _8 Y1 i& Q8 j* h
;;
/ {0 r' o0 O# K3 g (defun set_tile_tag ()2 B( I( T2 _/ G0 K( A
(if (= etype "ATTDEF")2 E% y& k7 o8 T P1 P4 }* n& U
(progn" g- L4 o+ w7 }+ f; V( l
(setq attag (cdr (assoc 2 elist)))
' X+ I" z8 r) R4 G w# s. H9 E T! Z (set_tile "tag" attag)" y* m- z' r* `2 P, v
), I/ R& E- C/ E6 N5 ]
)
]4 U1 p, f2 H9 Y" Q )
% [4 q' W- F9 @/ H" j ;;3 R$ z% z" r" A% E7 E q
;; Attribute Definition
6 G5 \" S3 s0 J3 r5 b ;;
$ _% I2 S* J& J5 Z% c9 b1 C. D (defun set_tile_prompt ()3 Q/ ^. C' q k( z; j+ J$ f7 d
(if (= etype "ATTDEF")
) M1 o; A7 G& e0 Y! F+ Y (progn+ @8 H p( R4 X- t. [
(setq atprompt (cdr (assoc 3 elist)))
# V* P4 v4 u8 P8 h6 o" R (set_tile "prompt" atprompt)
* m( h2 {4 d+ u0 H4 X% J- G3 s' _ )
4 B: x6 f& |: ^/ Y/ I )$ J: l# x" Y2 f5 c! m( J! n
)
8 b" F6 C) |. ^& t( Z ;;* F5 C$ p6 b. ]3 W$ ~8 o
;; Justification setting for Attributes and Text. Initializes+ r. F9 z+ g0 @; x' _* B( G4 A) T
;; popup list box
+ Z# b' I7 s$ e5 S0 l ;;
5 f* C. S2 b1 g2 m* T7 ^/ Z (defun set_tile_just ()2 Y# C2 G) `5 R3 Y9 W+ B2 p, X
(setq ha (cdr (assoc 72 elist))) ; horizontal alignment
# S/ n2 J7 w2 w' a (setq va (cdr (assoc 73 elist))) ; vertical alignment4 f( T M5 z* W) s- B
(setq ha-prev ha)
6 L7 y; r% N& O4 { (if (= etype "ATTDEF")
: z7 }9 K3 I# K" g9 L8 | (setq va (cdr (assoc 74 elist))) ; vertical alignment
" @ i5 ^5 G+ Q )# z% V" l, X' K3 r0 j& J! i
(setq jlist
/ x4 N3 g3 A# e5 T- Z; K/ N. j (list "Left" "Center" "Right"
1 ]6 b8 s( L e5 w "Aligned" "Middle" "Fit"5 E6 B$ F" G) f
"Top left" "Top center" "Top right"0 N7 u. }7 ^( M7 E" v) L
"Middle left" "Middle center" "Middle right"& Q* j) f& i7 J7 T0 ?: p- u
"Bottom left" "Bottom center" "Bottom right"
9 U. j" T* V8 `7 |# v5 P )
+ E( ]- g3 I! B; g4 Q, _; ` )6 L: h9 A6 r2 ^ p
(start_list "popup_just"). o+ f. b5 G; ?$ Q8 k
(mapcar 'add_list jlist)
+ B$ ?: T$ P8 j (end_list)0 |( ~% u0 `; O- ] B8 l- I7 R7 {
(set_just_idx)
8 |( q' D, {3 _5 ]8 z3 E (set_tile "popup_just" (jlist_act just-idx))$ S. A! s! w; a
)2 T. I; l9 K" _( A0 Q- j, {
;;
i2 k2 i }2 A. H3 W: r, x ;; Style setting for Attributes and Text. Reads symbol table for popup list, X$ a# F- o; G) [& V
;; box.7 X" [0 ]6 ~- T) |) A
;;) y" o# j0 n1 @
(defun set_tile_style (/ sname style-idx tlist)' F9 V, ]$ P: J
(setq tlist (tblnext "STYLE" T)1 g. [# A5 r9 m- @
slist nil)5 G' ^3 n( F5 X! g" W$ D
(while tlist. Y7 e3 t5 b8 l- v$ I5 o- x
(setq sname (cdr (assoc 2 tlist)))4 w3 O! S1 v; I0 Q4 h
(if (and (/= sname "")
0 G7 g9 P+ J5 M c (/= (logand 16 (cdr (assoc 70 tlist))) 16))' ^3 B1 c7 I$ Y% x5 _" j5 J( o3 N
(setq slist (cons sname slist)))
5 e+ o# z8 X* h1 T# B (setq tlist (tblnext "STYLE")))
" U7 `* }" Y1 f5 V, H' E" \, I1 Q (if (>= (getvar "maxsort") (length slist))8 v1 |7 S& J% M0 F
(setq slist (acad_strlsort slist)) ; alphabetize style list
3 N4 H) ~. G0 m2 j (setq slist (reverse slist))) ; or reverse it to put it in DB order
6 _' H0 @) q9 U; w& F) _+ m4 F/ w5 u
(start_list "style")
9 \) B( P. g4 x (mapcar 'add_list slist)4 H5 W1 H1 R/ N3 q* j5 S+ J
(end_list)0 c) K5 n% ^3 Z
(setq tstyle (cdr (assoc 7 elist)))" l+ m/ c$ s3 C4 ]1 g6 O; x
(setq style-idx (getindex tstyle slist))) T) X; {, W1 B9 R
(set_tile "style" (itoa style-idx))
' P" e9 G3 b, _% O, R )# y: l0 j4 d% y* K" m( g2 X( T
;;% R/ Y8 A5 z; Y( M! \
;; Text and Attribute setting - upside-down, backwards- O/ T5 g/ ]) F* ^
;;6 e; b$ g2 ^4 v5 D2 h# a
(defun set_tile_bk-up ()+ x& }; L. g. W
(setq bk-up (cdr (assoc 71 elist)))$ |' a$ D. `, w# ~, T0 A2 w" I
(if (= (logand bk-up 2) 2)
8 m1 z2 v4 F+ B, L (set_tile "bkwd" (itoa (setq bkwd 1)))4 ~# f' Y' B- k- Y/ K+ c
(set_tile "bkwd" (itoa (setq bkwd 0)))
# V8 f' w3 ?. u1 n! C& B) d ); Y$ p: t2 I' @/ G( D. l+ |
(if (= (logand bk-up 4) 4)
0 G4 i2 D. b9 A q& L4 y- h# ]. _ (set_tile "upsd" (itoa (setq upsd 1)))& J4 E# c+ F4 D/ r4 _
(set_tile "upsd" (itoa (setq upsd 0)))
# d7 _3 v" f( f' k. n f4 p/ g )
4 T) ~2 T V+ k; v" ? )& A) \5 S& @; ^
;;3 s/ m! O |. `4 I9 t, Z# f
;; Attribute setting - invisible, constant, verify, preset7 y4 ], m8 g7 b; Y* G
;;: Q9 |; h4 j6 ]1 T& b7 J6 \' b3 e
(defun set_tile_icvp ()
1 _& Q z5 p9 T; [6 j (if (not (setq icvp (cdr (assoc 70 elist))))4 L8 @6 r& P9 H! L
(setq icvp 0)" X- i+ W6 |' I8 D
)6 `3 a$ k; K3 Q# M
(if (= (logand icvp 1) 1)& y, k5 q+ i) p9 S2 F
(set_tile "inv" (itoa (setq inv 1)))
8 g9 @/ q+ w0 t6 k& ?) { (set_tile "inv" (itoa (setq inv 0)))! K/ R2 X$ e1 M4 w; u" E% D2 N% A0 A( }
)
& C c6 E1 Z9 Q, [9 b; ?+ } (if (= (logand icvp 2) 2), I a1 V4 P6 A3 Y# {5 i1 ^' [8 q
(set_tile "con" (itoa (setq con 1)))
) T% x# C( m/ B (set_tile "con" (itoa (setq con 0)))- H4 F3 A2 d& z; Q+ t- Q
)
, z9 P9 S0 }- J0 k4 g( ? (if (= (logand icvp 4) 4)
8 Y" J- ~* |) C% E (set_tile "ver" (itoa (setq vfy 1)))
( ^( }& W! G& ~' R4 C& d (set_tile "ver" (itoa (setq vfy 0)))
% q/ G6 `3 S/ W- Z7 P, P )1 q8 |0 }0 ~& H3 m
(if (= (logand icvp 8) 8)
) k. M5 Q+ f" y( R/ j4 |3 D1 } (set_tile "pre" (itoa (setq pre 1)))
5 z$ \2 q- G( _1 ^8 q8 L& ? (set_tile "pre" (itoa (setq pre 0)))
- w3 w2 n$ G" M4 [4 l8 V )
4 H, R3 U: J R* N% Q )6 p: o/ J& x- B7 Y9 P, a4 h
;;* E! B8 k m4 `6 j5 X5 P( t8 |
;; Scale factors for block insertions
( B6 {" l& y g. p" q1 S ;;! |7 B! |! h; O5 j
(defun set_tile_scale (/ temp)- O1 n3 r9 f; X* X$ f9 i9 R7 o
(setq temp (getvar "LUNITS"))/ d- ~. U0 Z8 M2 h+ y# u
(setvar "LUNITS" 2)
! ~6 l) {! D; e* u* S (setq xscale (cdr (assoc 41 elist)))1 V4 W; s2 T- \4 p
(set_tile "xscale" (ai_rtos xscale)): H: ^$ K+ G' r" ^2 V) \
(setq yscale (cdr (assoc 42 elist)))
9 E4 d- ]2 E: v: |- K# n (set_tile "yscale" (ai_rtos yscale))
: |; t$ n+ Q! M% ~% Z (setq zscale (cdr (assoc 43 elist)))
: D" L' W* n1 X* P/ q+ u# A) ^ f (set_tile "zscale" (ai_rtos zscale))
8 _# Q/ U: y N) v (setvar "LUNITS" temp)
6 ]( W4 n* ? E* }1 u ~- I/ _ )
3 |3 z7 a" ^* q- o; s ;;
/ X0 {- `5 L& X9 T) k ;; Rows and columns for block insertions/ D, g/ X3 h; J) d" A! J
;;
" W# `1 ^# k8 u0 k (defun set_tile_rc (): N5 p- W/ B' a
(setq columns (cdr (assoc 70 elist)))
2 \- r8 G1 s7 [4 ?$ ^9 `( |; r& e (set_tile "columns" (itoa columns ))
* i, I) a, V% i. A6 Z& Y4 t' e (setq rows (cdr (assoc 71 elist)))
: ]7 h6 o0 G+ ?" M! M0 y1 l/ M (set_tile "rows" (itoa rows))" `) p" D9 g* I; u1 k
(setq col-sp (cdr (assoc 44 elist)))2 h2 U* b& u" {
(set_tile "col_sp" (ai_rtos col-sp))
. t& |5 V" F: A1 N0 W (setq row-sp (cdr (assoc 45 elist))) J9 R+ G" }7 T- T
(set_tile "row_sp" (ai_rtos row-sp))
; G& ]1 r$ ]6 I2 o. G6 ?6 t) p (if (/= hasclip T)
$ t3 n7 A" [! d6 J% y (mode_tile "xcliponoff" 1)
" B# G4 P) Q. q (set_tile "xcliponoff" (itoa xcliponoff))
$ u7 T- C. {0 }0 B: u )9 T- j) }$ z9 R% x2 y0 |8 b( M
)
- }+ A. u: ?- h1 t" r8 f: {) d8 @ ;; \6 c* M+ q' ]* s, R M# r
;; Invisible edges for 3DFACE
6 c/ B8 k% H- }* z: } ;;2 }4 a; Y# s* T- N! d8 y
(defun set_tile_edges ()9 k) y5 H9 ~: @8 K
(setq f-vis (cdr (assoc 70 elist)))
" I9 n; p; @3 X (if (= (logand f-vis 1) 1)
% F$ \7 z0 E2 { N m3 [ (set_tile "edge_1" (setq edge1 "0"))) d0 w" x7 v. H- E& `! ], l
(set_tile "edge_1" (setq edge1 "1"))
( Z5 G! N# |8 f( n i5 y ) Z6 ^5 X# l/ K+ C- n9 ~
(if (= (logand f-vis 2) 2)
' f$ d$ h9 B9 \& Z (set_tile "edge_2" (setq edge2 "0"))7 Y/ m5 m+ T% b; }% Q9 J9 Z& |
(set_tile "edge_2" (setq edge2 "1"))5 g6 |& Z2 W$ q( |% B' j: P% N# j* v
)
. t# n k7 T8 L% I9 K- f* l" n (if (= (logand f-vis 4) 4)6 f! L( q4 O' {# B& c
(set_tile "edge_3" (setq edge3 "0"))4 g4 m# U h3 G+ N% H! B
(set_tile "edge_3" (setq edge3 "1")); I5 F: E. C, O0 J3 h, \
)
9 B- j* I6 f- I (if (= (logand f-vis 8) 8)# o! w/ G! ^; h- e: J- F' ?6 H0 o
(set_tile "edge_4" (setq edge4 "0"))0 C' T, e' A; t& _ b" T
(set_tile "edge_4" (setq edge4 "1"))# |6 F B2 N% b2 C
)0 U i, X" {1 {8 u4 l
)+ ^2 Q8 Z3 @& g S4 \1 g, |
;;7 T8 y1 a) K5 c) }
;; XYZ Point values for polyline vertex8 l1 T1 D; Q* L8 i
;;& g8 R; n0 P- T3 z l" O$ J
(defun set_tile_vpt (ptype)
# ^ E9 K( h% F4 |7 { (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE"); @/ k0 b* l8 A5 I/ S. B; @+ _2 r8 d
(progn8 l- @6 q: v" [# d/ l8 y: M5 K
;; ctr is 1 based, vertices are zero based.
* U& g9 }7 C4 I8 s) B' \: n1 Y (setq vpt (cdr (getLwVert (- ctr 1))))$ W+ R: _3 e+ z
(set_tile "xtext" (rtos (setq x1 (car vpt))))# `. p& x. l% P I
(set_tile "ytext" (rtos (setq y1 (cadr vpt))))8 w' y' e8 c9 ^* l* F! o
(set_tile "ztext" (rtos (setq z1 (caddr vpt))))* N5 y+ v* d* r' Z
)
4 R. ~8 L O- @" e6 t (progn1 e5 l9 ?5 _" p6 I [
(if (= ptype 0)
3 z) f, J. ~; U) y' Q4 B% R ^ (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
0 f( F* Y K8 C; v5 G: ] (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))& Y# f5 C. e- D
)# `3 u; q; c' v5 H" y
3 M- ?) e, W: s. {- \ (set_tile "xtext" (rtos (setq x1 (car vpt))))
' T; e/ H. \; _+ F) m" W; q (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
; W6 t6 Z2 @7 T- u, r (set_tile "ztext" (rtos (setq z1 (caddr vpt))))0 l+ |* s3 r; D% g. M9 m/ B
)
# ~3 h$ E+ P, a' o7 Q )
& {+ L% I/ ]5 F& i& G$ e P4 y& P( ^7 Z9 f6 F
)5 Q/ u0 A! w( u, F1 x! q
;; This is the equivalent to doing an entnext on the heavy weight
) Z4 a0 D9 T1 T( G0 z' s ;; polylines. The hard coded '4' below allow stepping over the: [! g) H/ T! J1 n5 E3 x
;; 40 41 and 42 group code information. The while loop finds the
- \6 A0 Z: q# w ;; first vertex which will be used as the starting assoc in the
# [) D4 E# q% D3 ~; ?9 P; f# ] ;; call to nth.9 B: A/ A; X$ c, o7 R
;;8 y% X& U0 \9 c+ w# O
(defun getLwVert (tmpctr / count tmp): {/ Z, Q2 E; M* ?; E% b
(setq count 0) s" y A' G( }5 o; ]9 q
(while (/= (car (nth count vlist)) 10)/ f* |0 G, D5 @ j
(setq count (+ count 1))
, y) s: `7 @, B7 Q, J2 S$ G/ T )) y) y- l$ m6 J
;; If the counter reaches the number of vertices,
8 B$ |7 e+ Z4 o& R ;; reset ctr and tmpctr to zero again.% Z& ~" p' ]; z% r
(if (= tmpctr (cdr (assoc 90 vlist)))
2 n& f! f3 n8 i a (progn
8 u# m) Z; M4 N) l (setq ctr 0)
7 E: Y5 F4 B+ |; Q! j (setq tmpctr 0). X: ?) ~1 O2 ~( N9 j
)
) ?0 K7 T- o1 ^& ~$ ?9 n ): t4 y7 m8 o) x
(setq tmp (nth (+ count (* tmpctr 4)) vlist))& k2 o/ M& E1 _. Q0 J/ q$ ~
(setq tmp (append tmp (list(cdr (assoc 38 vlist))))) x2 j! n( Y9 f. Z" E
(setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
) d3 ?* X) S4 T0 T( ` (setq tmp (cons 10 pt1))
3 P( Y3 n# a: a7 n: A (setq tmp tmp)9 A, [ @7 I" i& g$ f
)
1 C" t/ g! C5 D* e1 z* T' a- j ;;
) ]7 K; V$ B, @9 B f1 ^8 } ;; Set tiles for Spline properties. If the spline is rational then we# Z1 \0 c! w5 g
;; need to display the weight values of the control points, so set
5 l, C5 G" p7 P ;; flag to 1.8 Z; c* D: S1 v8 ^- u' Q1 {
;; 1 = rational spline
0 |. D- B0 s0 \( @2 t, S0 F ;; 0 = non-rational spline: K! F( D& d% P- g3 m" o
;;
0 `0 j Y4 d" ? F+ l (defun set_tile_spline_props ()7 A; y, Y( A! B- b( i0 W
(setq rational_spl_flag 0) ;; initialize rational spline flag9 u* Q( s* S2 H& e
(set_tile "Degree" (itoa (cdr (assoc 71 elist))))( n1 q, V& ], V j
(setq bit70 (cdr (assoc 70 elist)))9 a6 F" |7 R3 i- j
(if (= (logand bit70 1) 1)
; k* ]3 U6 l" z7 h2 y (set_tile "SpProp4" "Closed") g& X+ H/ I T+ Z/ h
(set_tile "SpProp4" " ")9 t; l' |* L( b0 A
)
7 i$ V: t% w7 T* g (if (= (logand bit70 2) 2)
) b; s$ s% u) w3 i8 B (set_tile "SpProp3" "Periodic")" L2 |" I$ P s& u2 f; c7 }- s
(set_tile "SpProp3" "Non-Periodic")
# ^/ m; D7 R9 r u ) r% O$ _' N- |# f1 a) x! _" U
(if (= (logand bit70 4) 4)# g0 f" V' T3 z( n3 U6 d6 k
(progn
5 u6 U7 k2 k3 X (set_tile "SpProp2" "Rational")
! f) V; C! ^: A; D) c6 d: a (setq rational_spl_flag 1) ;; this is a rational spline
# d7 q3 M$ N1 L! ~$ e )/ |5 u' Y( g, [% x8 ] H% @
(set_tile "SpProp2" "Non-Rational")
# N0 }% H+ J, ^$ c+ s )( Z+ ]8 r0 D9 S1 U9 P
(if (= (logand bit70 8) 8)
9 t$ Z5 z. B1 c4 W( G- d (set_tile "SpProp1" "Planar")
* }4 f* }- x; g8 W (set_tile "SpProp1" "Non-Planar")
8 a* _0 R& n: V% F) n5 F )
% j/ W8 m" B5 L* l6 [ (if (= (logand bit70 16) 16)
) f* A% ]' V S6 z' L3 l: ` (set_tile "SpProp5" "Linear")$ Y' s9 h0 \ G: J
(set_tile "SpProp5" " ")
% j6 |1 I9 d3 ^5 B )
8 d" `7 l# c; j% | )
5 O( R3 J2 k" A5 d ;;
: J+ r. O% {' \* W' d% X+ z7 M ;; XYZ Point values for spline points+ k" k. D0 {3 y' j9 v
;; Need to account for WCS/UCS
) @- a! R- G* _% D7 G. D Q$ s ;;
, i3 v+ M# _+ a" L1 c* P: r (defun set_tile_cntl_pt ()8 x8 r0 Q9 C, J& P3 Z3 e6 `% ?! M
(setq cntl-pt (cdr (assoc 10 elist)))3 U( Y7 m {2 `0 I1 f+ v" M& }
(set_tile "xtext" (rtos (setq x1 (car cntl-pt))))' e, \$ b9 S3 x; b
(set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
- e% C& m( X" o) R. } (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
0 i: A8 {- m. [4 U& E) A (if (= rational_spl_flag 1) ;; if rational spline6 o0 @- @( m; {
(progn ;; show weight% N9 f2 } @1 Y8 V5 U: B
(setq weight (cdr (assoc 41 elist)))- y$ ?5 R7 P$ l9 L" G+ }
(set_tile "weight" (rtos weight))8 ~; S/ h* D' i2 f* [$ f
) ;; else
+ N: Z; S7 Z) P, H5 n) C# ]( s7 h (mode_tile "weight_text" 1) ;; disable weight field
9 O8 t8 k) Z5 S- b( n }, C! n ), g* J4 Q' J. r: W8 Y* H
)
7 J( ?2 g0 H) m2 i, l ;;3 t J) o: c& q' { _2 i
;; XYZ Point values for spline points
# t0 d7 q3 e F ;; Need to account for WCS/UCS! Y+ z) W/ K- n+ m7 ~
;;
. h! @" p: A% V- l+ A (defun set_tile_data_pt ()
" H0 z1 Q8 C- _" A1 B (if (not (assoc 11 elist))
; o* k7 a6 C g* k7 g (mode_tile "data_pts" 1)
5 X6 `" d! M/ l9 R. {. h (progn
1 q- ^/ L- b( O5 N) b7 K. [' s$ ` (setq data-pt (cdr (assoc 11 elist)))* j( i. k" m6 G& x+ G0 J/ {4 X
;; display points with current precision.
$ ] o3 d0 h, e& b (set_tile "dxtext" (rtos (setq x1 (car data-pt))))0 m6 w# g$ z& I; i
(set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
5 t% Y3 L; |' G, v% i; c( r/ i" y (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
2 R- r8 `2 y! L! B5 X0 X% F* c. R )7 X5 y% c) k+ P8 y* W W, ]) e% X
)/ x. V$ V: J$ S% j' m
)# [7 `: C* A# ^2 n& ?
;;4 h8 R8 E. K9 L+ y& k- a& o
;; Fit curve, fit spline, or smooth spline surface setting, D4 `" T& E& ^% d% j
;;5 l2 L# R7 b9 u m$ _" T5 z
(defun set_tile_fitsmooth ()5 h% w. J4 ?0 K2 Z4 w- Z8 e
(cond1 {- O- a# t4 g* b I& U
((= (cdr (assoc 0 elist)) "LWPOLYLINE")- y$ v/ q3 {# o. n* E
(set_tile "none" "1")& e& {3 Y) W5 g8 W
)0 }. ?( `# F+ p
((= (logand bit70 4) 4)5 l% O, }4 B" |9 s, U+ d7 b
(cond
7 e1 R& @2 W2 V ((= bit75 0)
' z; p/ l3 Y: }) l (set_tile "none" "1")
' M! v4 r/ F$ G! G4 s% l0 ?, X (setq spltype 0); e, f! D& S' y& f0 Z2 e
)
$ O# j( v- c9 _. }3 _9 N ((= bit75 5)1 U: U0 u2 c: ~; n
(set_tile "quad" "1")
, i7 o# o( Q2 |3 v5 l" W1 b0 W5 s9 y (setq spltype 5)* t7 |+ ?7 j3 c$ j+ `
)
! B; C" }. { x* P ((= bit75 6)
5 f9 ~1 M) W# j1 q2 i2 G, n; e/ c (set_tile "cubic" "1")
& s0 K6 y$ o( h+ G6 A! v! q (setq spltype 6) ~) Q. ?$ C4 m5 Z; G
)3 \4 y: X; v/ d8 x: `! R" z5 ^/ ?* q
((= bit75 8)- H/ F( \/ }# n3 d+ P" F1 k. y
(set_tile "bezier" "1")
( { ]4 g9 j- t9 V (setq spltype 8)( }! ]% @1 |$ x; ]) V. I
)
) s5 p r0 a" E$ F7 x, w% S ); H3 Z6 _5 ~- V. ? C" i
)! c( m8 \% E7 U5 @
((= (logand bit70 2) 2)6 o- j7 d& {7 w/ Z) d$ X/ R
(set_tile "fit" "1"); F3 T: G, J* r# E
(setq spltype 1)3 {( i, u; T' E1 C7 J
)
6 K! B8 q# d F8 p9 L% v7 \ (T (set_tile "none" "1"))
) C) W t. m$ x, |5 L' z )
$ N4 |6 \& o: b* e" }/ A )- A/ v/ T0 \2 U
;;
0 Y- B% b9 N2 r- D$ _: e7 v% t% l6 F' Z ;; Closed or Open mesh and polyline setting0 p, _5 A, p5 S0 G! }1 P y
;;
+ l* \5 _2 r& f9 Z* o" R- t* x (defun set_tile_closed ()/ E1 [4 z | ^# I. @0 K3 X
(if (= pltype "3D mesh")
! a1 E* h; _6 Y! [- c) N (progn
+ t6 M$ i5 O' D. K6 X2 k (if (= (logand bit70 32) 32)
" X. ^ H5 [& h2 \4 a3 v$ { (set_tile "closedn" (setq closedn "1"))3 ~. w/ b) [1 m) f) G3 V/ \
(set_tile "closedn" (setq closedn "0"))
2 h$ `4 B! Y# Q4 P/ V5 Q( [ )
. \9 h" u* o# T# L; J7 I (if (= (logand bit70 1) 1)+ N9 V( x" U1 C0 {
(set_tile "closedm" (setq closed "1"))
& p* _0 k, @0 Y: g4 U& Q (set_tile "closedm" (setq closed "0"))
( A% y! i: h+ @, U- \ )6 \! p, X6 M1 w
(setq old-closedm closedm old-closedn closedn)0 ^- C- ^8 u4 ?
)& ]2 H( ?4 a" m: J. ^, `* d* u
)$ f* s# J$ K$ q: P/ [7 U+ w) j
(if (or (= pltype "2D polyline")
v% V' I. c( F0 j+ l: a5 t0 u (= pltype "3D polyline")* s! q7 a7 j4 [5 ?
)
: b5 l5 B; \6 w7 J, a (progn0 [, X( T" v' r& s7 L" A( z
(if (= (logand bit70 1) 1)9 J0 u, o6 Q+ p& {; G- W
(set_tile "closed" (setq closed "1"))3 k" {" b1 k& D' `- ~2 B
(set_tile "closed" (setq closed "0")), I7 J& q4 I% `7 {# ~3 i5 a
)
+ E# `$ W: q& ^) \ (setq old-closed closed)
/ V* Q0 x; v; c0 ]* t i' k/ n )
9 u& d0 H. a( G2 V- H1 h )
2 I) n9 |# h. c+ U! v/ [" R1 h: y5 U ) r1 k) O1 q* H3 X! W- v
;; Set common action tiles2 V3 M- s, C% j2 q1 t0 P
;;
$ u5 L9 t# @# j4 C$ P ;; Defines action to be taken when pressing various widgets. It is called6 A% N% Q* [' Y. S; I/ i
;; for every object dialogue. Not all widgets exist for each object dialogue,
. ^" }' j# \6 g* L! t3 M! @ ;; but defining an action for a non-existent widget does no harm.
; x+ A6 V( v# k f (defun set_action_tiles ()9 m9 L: @* ?1 l9 P% x# }0 T8 P$ J$ y
(action_tile "cancel" "(dismiss_dialog 0)")
9 H, J7 X" w- n: @; f8 U (action_tile "accept" "(dismiss_dialog 1)")9 S- \; ?: R8 {) W \0 \5 T1 F
(action_tile "help" "(help \"\" help_entry)")4 e- z! G7 v2 `. E% Y2 h
(action_tile "b_color" "(getcolor)")
7 F0 ~3 W: ~, H+ U0 I2 V (action_tile "show_image" "(getcolor)")
5 `+ f! t& i8 x4 H5 ^" Y; s# V5 ] (action_tile "b_name" "(setq elayer (getlayer))")
2 o P6 `& ` y: y! n4 p- D4 h, M (action_tile "b_line" "(setq eltype (getltype))")9 {. u! \- v+ T$ h, W$ B% q. s
(action_tile "eb_thickness" "(getthickness $value)")
! ]- z% d! f4 p( {+ _+ G (action_tile "eb_ltscale" "(getltscale $value)")
; T1 |0 w: t3 l. t" Y
: g# {7 \. a6 I* i) J, S* N+ p+ Z (action_tile "pick_1" "(dismiss_dialog 3)")
2 \ U) Z& l. N& E' o* {1 _( s (action_tile "pick_2" "(dismiss_dialog 4)")
& a6 q* j& r9 @: E& L (action_tile "pick_3" "(dismiss_dialog 5)") i2 Z# B& z/ G- W
(action_tile "pick_4" "(dismiss_dialog 6)")+ c7 r+ _& E( V" ]1 C
(action_tile "x1_pt" "(ver_x1 $value)")
1 |2 ~( q) @9 x6 A# k (action_tile "y1_pt" "(ver_y1 $value)")% i! p3 T. N- U
(action_tile "z1_pt" "(ver_z1 $value)")) L% e* @" h# P4 \) ~8 _- N
(action_tile "x2_pt" "(ver_x2 $value)")6 X+ \% q8 O# _- K! _ |& O2 ?
(action_tile "y2_pt" "(ver_y2 $value)") h, S; e p, f- P' c
(action_tile "z2_pt" "(ver_z2 $value)")/ @9 t. v- I$ B/ e2 z7 b7 K2 r
(action_tile "x3_pt" "(ver_x3 $value)")
! e6 Q7 t( V. _ (action_tile "y3_pt" "(ver_y3 $value)")8 V, c4 t- M9 r4 l. M# g0 E: G
(action_tile "z3_pt" "(ver_z3 $value)")# P, I4 x& |- [! ~' G
(action_tile "x4_pt" "(ver_x4 $value)")/ M6 Y$ D/ y. M7 ]4 n
(action_tile "y4_pt" "(ver_y4 $value)")
1 r6 u% N1 B( {: I, P0 j# O (action_tile "z4_pt" "(ver_4 $value)")9 K9 L4 H# A8 O V
$ J& I" g" c2 Z! O ;; Action tiles for Xline & Ray' x$ r0 F' s( h' G4 l
(action_tile "xline_x1" "(ver_xline_x1 $value)")% ?/ I1 W' O& a
(action_tile "xline_y1" "(ver_xline_y1 $value)")5 C" t9 Q" {% z, D/ `) N6 N4 {& j" y8 G
(action_tile "xline_z1" "(ver_xline_z1 $value)")& G! g' G1 J2 \3 J
(action_tile "xline_x2" "(ver_xline_x2 $value)"), {- `8 c% h" `' t: P4 e
(action_tile "xline_y2" "(ver_xline_y2 $value)")- t: H+ Y# n+ b* Y+ F
(action_tile "xline_z2" "(ver_xline_z2 $value)")# A7 r$ h% ]6 e3 j
+ G+ }/ T$ ~9 {/ `& \% h* W6 {( q& X. P
(action_tile "edge_1" "(setq edge1 $value)")
7 f2 s& A* x% X) a8 Y v; L (action_tile "edge_2" "(setq edge2 $value)")
2 Z- u1 B# s/ A) n (action_tile "edge_3" "(setq edge3 $value)")2 Z. Y- W3 `' b* \) E: e
(action_tile "edge_4" "(setq edge4 $value)")
6 ]4 m/ Z/ V3 I6 C: Y& Y3 J
4 K5 f r# B/ H. x2 `$ R0 q (action_tile "radius" "(ver_rad $value)")1 Q7 l: T. ?& Z8 O" U$ U, A
(action_tile "st_ang" "(ver_ang1 $value)")
- l: L0 A8 `7 y* ~" C (action_tile "end_ang" "(ver_ang2 $value)")
1 e& y, _) H$ M' u" ~/ x (action_tile "end_eang" "(ver_eang $value)")1 w1 ~/ j3 ~* k
(action_tile "minrad" "(ver_minrad $value)")
( N# I; T" ]4 ^ T (action_tile "majrad" "(ver_majrad $value)") d Y% j5 M: l4 a$ Z! n
x; J0 ]: S8 f4 N
(action_tile "xscale" "(ver_xscl $value)")
" H2 v4 o$ @: [; D9 U& L9 F9 E7 d (action_tile "yscale" "(ver_yscl $value)")3 x/ `; D* ]9 |; e1 o' Y
(action_tile "zscale" "(ver_zscl $value)")& K+ F! }; \. D6 g: j
(action_tile "rot" "(ver_rot $value)")
8 Z( V. | T5 ?$ R7 g+ P9 `2 h (action_tile "columns" "(ver_col $value)")
* S9 U2 B- m/ f$ a, ]5 i (action_tile "rows" "(ver_row $value)")7 E3 ^& D4 G0 x! I7 N$ M$ n+ u O
(action_tile "col_sp" "(ver_colsp $value)")6 [8 H( ~6 E3 H) H N
(action_tile "row_sp" "(ver_rowsp $value)")
4 u) x9 f" B6 l0 P8 R+ ?4 E* g- S+ r
(action_tile "hght" "(ver_hght $value)")
' t e( z J0 M0 L; M (action_tile "wid" "(ver_wid $value)")
+ \8 b; P' q0 V (action_tile "obl" "(ver_obl $value)")* n( u: \9 ~- z. V
(action_tile "style" "(style_act $value)")
2 v0 ?2 F! X K% [
7 e9 m9 o1 }, y3 X/ T (action_tile "t_string" "(ddgettext)")2 a' k; x$ \4 g; ?0 z
(action_tile "tag" "(ver_tag)")$ `3 J4 o# x0 v; |# i+ W) f
(action_tile "prompt" "(ddgetprompt)")
+ R9 S% N2 ~' b0 i, a8 v- } (action_tile "bkwd" "(setq bkwd (atoi $value))")
# N2 P" d* ]1 D. d3 K: B$ q (action_tile "upsd" "(setq upsd (atoi $value))") H( Q _! @% d
(action_tile "inv" "(setq inv (atoi $value))")
* ]: v! @2 N( ~1 s/ d; ^$ p4 j (action_tile "con" "(setq con (atoi $value))")
# k$ N- T1 ?0 r W, H4 X6 X (action_tile "ver" "(setq vfy (atoi $value))")% m I, U# D! E+ l* h8 }$ ]
(action_tile "pre" "(setq pre (atoi $value))") h3 ?! @ [, {# A5 R, [ {
(action_tile "popup_just" "(jlist_act $value)"). n/ L4 F4 W' u) S" l8 C
0 X- P1 r- e5 N" K- k (action_tile "closed" "(setq closed $value)")& z' ?% \9 L" W" X& B& o# H+ V
(action_tile "ltgen" "(setq ltgen $value)")
) N# W+ W7 I- o: b/ h: S (action_tile "closedm" "(setq closedm $value)")
8 J4 Z( U F" f- k1 ` (action_tile "closedn" "(setq closedn $value)")8 n4 c, ?8 ^: V' C! t# H3 s
(action_tile "next_v" "(next_vertex)")) b% c3 ^( M' T; S
(action_tile "xcliponoff" "(setq xcliponoff $value)")5 e: g! l; g* y4 }7 V
3 h3 ?+ g0 c4 F9 ]& {4 C: m$ I
(action_tile "next_cntlpt" "(next_cntl_pt)")! j( E1 F: A5 d( {3 @
(action_tile "next_datapt" "(next_data_pt)")
* u$ k) X0 T& ]6 x% X, |6 q/ T* Y% G* _; ^0 T! l. m" T
(action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")1 P- V% \& ^& X2 ?$ J0 b8 s
(action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")( `, u" |+ t5 r: a) ?' E4 P, C
(action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
$ }$ d, b9 [- m' t8 _ (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")+ }5 t$ ?' @9 A% A2 L' _
(action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
: y* O/ Q1 a1 }. w
4 E9 D7 S! c5 s" Z (action_tile "u" "(ver_u $value)")/ z& b1 k2 z* R* J/ M
(action_tile "v" "(ver_v $value)")
. C7 ?% @/ ]& F5 c! P& o )& a2 }( |# }; M2 K* e2 p$ |
4 T; n% m1 ^' i1 q9 Q (defun ddgettext()% Q( A( k) N4 s( a) s0 c9 A* |4 v% @
(setq text (get_tile "t_string"))3 @2 K- \$ x3 [% x
)
* T1 v3 m" u, \- }' H+ U* a
# N7 R* s+ Z# {! J% |( J- ] O (defun ddgetprompt()
4 [+ U4 G9 s2 i/ V7 r5 y _/ a (setq atprompt (get_tile "prompt"))
4 N2 g7 o, H1 | )3 n, I R0 D: @3 W3 |
+ m, e( g9 m ^ ;; As OW doesn't support disabling of individual radio buttons within
T; e- M9 ]6 d ;; clusters, a check must be performed as to the legitimacy of the
7 H9 |( P" i5 y, a. y2 c ;; button pushed and reset if necessary.
) |& |; F8 D! ]' J ~. Y7 _ (defun radio_gaga (pushed)
5 u/ r) S% J0 H. i* M+ V (cond* W! W" G7 w) E" N; ~
((and (= pltype "3D polyline")
3 p) @; r3 t3 C (or (= pushed "fit")
/ M; T! J" J7 C (= pushed "bezier") e7 C* `/ H, N$ d& ?
)
( Z# }5 l8 T4 q" O/ t, x# W )
- i3 `- [% }3 G, `; ` (set_tile "none" "1")
, R2 ?: y" @" w nil K2 s6 V; _1 \* u. ?$ S
)
7 L- F5 K: l6 C7 T% S( z J ((and (= pltype "3D mesh")
2 h+ T( H( D' a ^3 ?- l# W" g4 R (= "fit" pushed)* A8 J( m( _9 a7 `, Y3 Q
)
# a# L1 b: B' A3 ^- ]5 N$ G (set_tile "none" "1")7 |* |; @0 K! W" P! X& Z! V
nil
( N( [0 i( [ k3 y/ i) }& k) O )
( l5 F9 D0 S: @/ b, U ((= pltype "Polyface mesh"). M/ E' P; n( Z1 ^
(set_tile "none" "1")! m, o; x0 a# f4 [
nil
; _1 S5 ^9 B/ i* e9 `- Z1 L. T! T )
l! V& m0 p7 ]% T ((and (= pltype "2D polyline")
! P5 |. _4 M' S! ]& S9 T, L (= "bezier" pushed)
8 J8 G" b3 p0 n! W )
$ S" X! W8 e% B d* T8 | (set_tile "none" "1")
8 y2 y* n6 Y4 e. L7 X3 U7 I, Y5 U nil
& S- N9 L% ?1 a# y )
2 R+ j- Z) ^2 v+ R1 Z" u; g1 y (T)& w2 x6 t* ~! o3 C) v( h
)5 P/ L% _$ F0 C
)
: V% m& f! P2 ?7 c4 F ;;- F$ }0 p/ ]! r
(defun set_uv (type_n)
$ G; D+ c" ^9 [" d) |0 a# A6 ?& n (setq spltype type_n)
5 z, {( ~& T* u; ? x+ ~$ v (if (= pltype "3D mesh")
; Q& O* ^- m2 q1 n+ t- i (if (= spltype 0)) x% D* C* r2 Q, m1 b
(progn
1 d; i r/ b6 P9 M R, S9 R; z (set_tile "u" (itoa (setq u 0)))! M3 z3 B9 s5 q7 s( U
(set_tile "v" (itoa (setq v 0)))
5 P* F$ M6 a. c, r7 r )0 v& Q5 b& i: U/ o
(progn4 f* f1 w& e% K
(if (= u 0)
^, K" X; I% o- q8 P. U- i (set_tile "u" (itoa (setq u (getvar "surfu"))))1 F" `$ b! {$ `" y. L# Y
), Q0 r, D' r9 s, i, r P+ k: f( h
(if (= v 0)+ O/ p: }) v5 R
(set_tile "v" (itoa (setq v (getvar "surfv"))))* b5 P" l: Q4 X ?
)
+ [2 j' B( @) L) g1 a )
5 i! { q2 W. J. e+ T- H ): ~; X+ v; \$ n
). W9 k. ^; h9 B6 b9 J8 `
)
9 h- a! p; j( u9 ~
2 j7 v: u4 G/ s$ c% z
& W1 F9 a3 |* ?/ w ;;) n. h- w- U9 j9 p2 v6 W
;; Verification functions
, }5 _2 d# s8 O! H% c; R* \ ;;
+ l: k1 @5 R3 b ;; Verify distance function. This takes a new X, Y, or Z coordinate or
4 a. ^* Z/ S3 v* t ;; distance value, the tile name, and the previous value as arguments.
+ N* q5 Z, z9 ]7 \3 @( Q% E9 R ;; If the distance is valid, it returns the distance and resets the tile.6 V$ _* M1 T7 ? d$ o
;; Otherwise, it returns the previous value, sets the error tile and keeps! h X: d! y% ~- R# V& R/ L+ C( u7 B
;; focus on the tile. Shifting focus to the tile with invalid value can
7 z9 O7 Q# z, `% v1 [$ t ;; trigger a callback from another tile whose value is valid. In order( S+ a2 a7 N0 |% `* w. F" m
;; to keep the error message from being cleared by this secondary callback,/ X* A& X; j( J: H" h: o) a
;; the variable errchk is set and checked. The last-tile variable is set
4 I" N# w/ a" b4 {8 J$ I: O ;; and checked to ensure the error message is properly cleared when the' f8 w+ L' j: U' [1 F
;; user corrects the value and hits return.
9 ?3 M% ?) m/ w0 ?$ a( z ;;
9 D4 r- f+ o/ b& I' Z (defun verify_d (tile value old-value / coord valid errmsg)
! Z( B* b- e5 ^' ? (setq valid nil errmsg "Invalid input value."), ~2 ^- m; f+ Y( W0 s
(if (setq coord (distof value))
8 m8 G- H9 ]8 `. P/ w9 f (progn+ Q0 W( S, N! ~7 i* J7 Z
(cond( O7 ^7 }) n% O
((or (= tile "radius")8 O( v, ^6 S4 i3 R
(= tile "hght")
l3 L, ^9 R" J. y p (= tile "wid")
5 M9 s0 p* {7 l( p (= tile "majrad")
1 @' t! n, K& C) A# P (= tile "minrad")
* Y1 m! g/ l- N7 d (= tile "eb_ltscale")
/ v+ L1 ^0 }$ u2 f5 t )% n* T" p: G5 _6 E
(if (> coord 0)
- h( B S& Z( p5 V; r2 h: ` (setq valid T)& p& n) d8 J# G; v/ L
(setq errmsg "Value must be positive and nonzero.")$ u" k9 g+ B$ ^ ~1 E. b$ {6 {* e
)9 i- y$ r+ f4 x- g- |
)# A z* ]/ z3 `6 E
((or (= tile "xscale")2 v' ]. \, F* g S! k
(= tile "yscale")8 ]/ h( ~, X" J6 d% P& S7 ~
(= tile "zscale")" P3 l" z3 I& B5 z. a! ?- h
)! _5 Y6 m# H, I. N
(if (/= coord 0)
: D$ ^9 m2 {3 e6 [6 M! I3 Z (setq valid T)/ e) r, N8 `1 V' u' D6 T& H3 W
(setq errmsg "Value must be nonzero.")
& ?' y3 w; l& n, [* Y )) X% c' D5 t* C0 ~) I7 y8 o
)/ d9 L5 Q3 g* `; r7 A9 W2 C, g
(T (setq valid T))% R) `5 k# Z6 G7 ]& }+ J
)
/ D' E2 N) x" u0 j, _! [/ | ): r9 @- g. `' u. @
(setq valid nil)
/ d( w6 V. f4 U7 X )' K8 x' U, k% b3 `7 G+ h+ ~
(if valid
' Y e) D2 O& p+ F5 S. z' F6 J (progn
) b5 K7 x$ j) O# Z h (if (or (= errchk 0) (= tile last-tile)). j0 x% f) N) I: S4 ]0 D. {
(set_tile "error" "")
; ^# R4 i- h0 I+ H$ S )4 N7 m z- ~0 a; K
(set_tile tile (ai_rtos coord))
' _* g3 ?- w; U& N" H0 `- e! x P& V (setq errchk 0)
. a% U/ a5 e1 [- `( s (setq last-tile tile) U- q% C& s+ {( d0 i
coord
% ]( n2 p9 t' N7 |& j3 G; ~ )
& I, { `3 n9 \ (progn
* z3 Y0 r L. w1 Z% h7 ?2 O9 j (mode_tile tile 2) ; Move focus to offending field+ H+ \9 l5 D6 Y! U
(mode_tile tile 3) ; Select offending text
) v4 h' ^ u2 a( | (set_tile "error" errmsg)
, A5 z/ q! y$ @. W5 C8 e( Q# h; l (setq errchk 1)5 c3 v9 h. `* B* u/ s/ U
(setq last-tile tile)9 i4 B1 h) E( v- ^) Z9 t$ e
old-value
6 w) \/ y2 w4 r2 z2 V( C. X* [ )
% C" K# h' Z- ^+ s+ X# z ), L% U/ ~, a, T9 G5 m% r. r2 g5 G
)
# F$ e. s* K* j ;; Function for Xline coord edit box checking.
( s# W% S7 k# v (defun verify_xline (tile value old-value / coord valid errmsg)
* L! {4 v$ o& w( \" V Q- |6 S (setq valid nil errmsg "Invalid input value.")
! Q5 ]0 `3 ^! S7 G0 f, ?5 u (if (setq coord (distof value))
$ P$ i( k- ]7 G (setq valid T)( L2 |7 \9 }* m1 Z: m
(setq valid nil)
8 s: M; H9 o" j% N+ C" C )
5 C0 B2 }7 U! F0 t' a7 ~! }9 b (if (and coord
3 @! z) s; ?! D. P (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )4 S* W$ ?# N. S7 b" X
(= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
; s9 n( f- C) d9 l+ D8 G2 ] (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) ) J, ]- Y2 a, o$ y
)5 V4 P5 X+ K- f
) a1 q4 d% ^$ s* Z
(progn- ]$ \( a% w0 T% f, I2 h# l3 _6 Z7 x
(setq errmsg I/ c( G" | B9 ^2 w8 o- F `
"The Root point and the Second point cannot be equal.")
# ]3 a$ R7 O( g2 U% R (setq valid nil)5 @7 v$ L7 Z/ P2 f9 g
)* ], J O8 ~# W' b6 L
)
7 P: e+ `8 j" P+ ?1 ~ (if valid4 d5 `* ^8 p7 F4 `& _6 I) c. h
(progn
1 E( l, Z, ^' N' L, F" W9 x (if (or (= errchk 0) (= tile last-tile))
/ N8 ~# ^0 l& L" v* x (set_tile "error" "")
6 p o1 e1 ~6 S* B8 t )4 J2 I+ C# n% v6 k Q$ n% j* D
(set_tile tile (ai_rtos coord))
1 U2 S8 N: V5 H8 X* F: N6 H/ S (setq errchk 0)- |! J/ R6 s6 X4 Y/ H
(setq last-tile tile)
) z0 g6 v$ N( R coord
3 B0 c D. `/ j )
$ m6 j" V% }# _ (progn% L: y+ @- c, G3 e9 W
(mode_tile tile 2) ; Move focus to offending field5 K$ O* N8 W! n8 z: E
(mode_tile tile 3) ; Select offending text
! x/ {. ^& B0 |! L% g (set_tile "error" errmsg)$ p# @9 y3 f, y* c7 D. R+ r
(setq errchk 1), g% M# Y5 J+ t& q: H8 q! g2 Y
(setq last-tile tile)
5 I* i" x0 S3 t, ]1 c4 A3 C old-value9 Y s3 i4 e Y3 \7 d# S6 H6 ~
), \* q$ a: e0 f& a8 N2 ?, W
)
6 ` ~% S/ Z) U0 P" h )* ]) `3 L. d8 R" T7 T5 k
) {: `9 |5 b' J( O! z- |3 m9 v% a ;;. l5 {. L2 m" V6 K
;; Verify angle function. This takes an angle and a tile name as arguments.
4 X- L$ W4 T9 f/ z ;; If the angle is valid, it returns the angle and resets the tile.% R6 e; R6 w. W7 z% D
;; Otherwise, it sets the error tile and keeps focus on the tile.
! z/ h( K& J; p X& ~5 G ;;
- \) D( o2 c8 a$ d& S- [6 f5 } (defun verify_a (tile value old-value / ang valid errmsg oblqmax)$ ], r. q4 y: n" s) I, x
(setq valid nil3 M/ H% n) v& q6 y
errmsg "Illegal input value."
. b) o! u5 A2 G( x! ~ ), D; k1 J- S+ R* L! w
(if (setq ang (angtof value))
+ `* P) Z, d/ q$ w6 ]2 j (cond
# N. C: r. G! W% c' E ((= tile "obl") ; Restrict obliquing angle
" r2 j' O6 A+ w0 O: M! m (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))0 o0 l; P1 x9 T1 v% e
(if (or (<= ang oblqmax)" U, h* h" b7 c' _
(>= ang (- (* 2.0 PI) oblqmax))
( J9 T j+ h* v1 B3 s )
* X5 E# O4 F) `, ~8 v0 j (setq valid T)
+ Q8 D# Z3 W; N, T9 k& _ (setq errmsg0 u6 N6 _% |" ]
"Value must be between -85 and +85 degrees.")- s/ g; }! O+ X( L( z$ M; K
)+ C8 L- o5 W9 j* x# [
)5 _" F- |( k+ X
(T (setq valid T)) ; Other angles not restricted
3 }2 }5 B0 s ]5 S ): ?7 u g4 S4 j
(setq valid nil) ; Invalid angle input
& l: q( V3 h5 n; y6 b' H )1 q7 \4 l* L$ K7 v" Q
(if valid
2 ?! R. i! e% A; C, ~ (progn7 I; r x) t4 o" Z
(if (or (= errchk 0) (= tile last-tile))
) g- s6 k g) G5 p7 D4 @ (set_tile "error" ""), K3 @8 m) ?# P6 r" [/ t m) h/ c
). m* d6 b) z+ n! {0 x7 N
(set_tile tile (ai_angtos ang))3 ^8 X( Z0 l7 W4 v+ G) S* i( V
(setq errchk 0)
! t( F1 C, W+ b1 s3 v$ j (setq last-tile tile)
% N+ [9 f% e! H9 a5 W+ J* L ang9 k: }" m& ]) U9 K
)/ M5 R3 q+ Y+ X4 v" R
(progn
+ u" f- [: h" t7 R (mode_tile tile 2) ; Move focus to offending field& s# B1 U+ X- v) J. Y
(mode_tile tile 3) ; Select offending text5 e) Q3 Z! S- C
(setq last-tile tile)
; v4 s7 p/ r9 d' ?1 N/ u# c9 A% o (setq errchk 1)( K% J1 k0 a, t- v* |. G" P9 ^6 Z+ _5 N
(set_tile "error" errmsg) p2 L' J' B5 H, ^
old-value
# z2 F' ?, G( R3 a# D' w )6 K [ I# C9 C- P5 N5 V# F0 G
)
4 f2 @6 \- n' n F# C# e, \ )
( S& _+ p& _9 K0 O ;;
9 d! @' `+ m3 E8 K+ C ;; Verify angle function. This takes an angle and a tile name as arguments.2 A$ s" P' h: y* Y. u q
;; If the angle is valid, it returns the angle and resets the tile./ F! S1 V, @$ Q* a1 {5 b
;; Otherwise, it sets the error tile and keeps focus on the tile.
- u8 ^! A$ X h% ^! v ;; This function is specifically for the end angle of the ellipse object. If
" r, N4 B6 M- @- w$ C ;; the end angle resolves to zero then we want to display it as 360.
1 C8 h3 E- \: h ;;
% @% t0 ^) ?: C; H (defun verify_ae (tile value old-value / ang tempend)
* f9 Q; O. b6 ^) |; I1 f" K (if (setq ang (angtof value))
0 R! V1 V* S2 s (progn
6 q$ K1 O- A+ o; Q- R1 \1 T& i9 a (if (or (= errchk 0) (= tile last-tile))
) R* w* U( ~3 _# C) g* Y6 T (set_tile "error" "")9 u! |: D* @) g2 { L- w
)
6 K$ ]& a9 ]; s& Q (setq tempend (ai_angtos ang))1 G4 X4 Q3 s# @; e3 b" l8 P
(if (= tempend "0")+ a! U$ g5 w( D& _) Z
(set_tile tile "360")
( H8 ^5 X2 h2 N8 h& p (set_tile tile tempend)
: r" s5 n" [9 v! u C, ^/ W )
3 n5 W; C& F" k& N (setq errchk 0)
$ O$ b. `& z8 T9 k1 g# `* [ (setq last-tile tile), Q& Q1 s) N. F8 X
ang
- ~) K. }/ Y( F& L& p )
, A* Z( j$ @4 D" i; E* U8 g (progn
: |% b6 B6 L% a' T/ E* _" @, h) q (mode_tile tile 2) ; Move focus to offending field
; L# R; y" S: `& Y& I' d# ^+ L" m (mode_tile tile 3) ; Select offending text- {( n8 C6 [$ b6 w6 W
(setq last-tile tile), \% r. s$ E, n" G0 R8 m
(setq errchk 1)
" E& M+ o- h6 J. P$ Z (set_tile "error" "Illegal input value."). `5 m/ s! p6 R6 N$ M
old-value
) h+ w1 f2 m% e ), K4 z; g* v: A! j6 j2 E9 V
)
$ v7 q2 e$ v' d5 {) a: d )3 j* E' b2 {5 f7 `% q
;;" k1 O b8 {% ~' m; X3 ]: Q
;; Verify integer function. This takes an integer and a tile name as
8 p+ ^6 R6 c1 R ;; arguments. If the integer is valid, it returns the integer and resets the( a1 f: u' S. u9 W
;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
+ ~$ A6 ]# V- A3 B ;;# F) N2 d3 @, R( h7 ^! R8 N
(defun verify_i (tile value old-value / int valid errmsg)- j4 x* i, |* `# A6 R
(setq valid nil)4 L6 w: A" q4 x ~
(setq errmsg "Value must be an integer.")! ^8 k% D6 O/ m5 O! C/ u! i1 Q
(setq int (atoi value))
3 I7 l+ ^' y: n8 l. t (if (setq intchk (distof value))+ f( i+ h# [* g
(cond. v4 Q+ a- z, g% _! |
((or (= tile "columns") (= tile "rows"))& p5 R& n% J+ L' b5 t
(if (and (= int intchk)
% i2 @: b5 A1 \1 g8 u (>= int 0)
8 b9 h' ^, O8 X (<= int 32767)
3 c+ F7 U' w. j$ T )
- y& D4 ]1 D' ?$ ^2 h (setq valid T); ^7 \! w' X3 p+ ~) n
(setq errmsg "Value must be an integer between 0 and 32767.")+ j7 S- R, l1 F' l; t) X3 I
)
; e" q# B7 T+ I: Z# o* \ )
# ]; q3 s' r3 Q5 R4 A; @# | ((and (or (= tile "u") (= tile "v")))/ L( i3 O& T$ V' W( a. `/ r4 Q9 P
(if (and (= int intchk)
0 }4 B% F+ M+ \+ z (>= int 0)
+ B5 U1 ]1 F8 P3 E9 @% O8 [5 P (< int 201)1 B7 |$ V! m* z) U2 w5 [: o
), F3 A; ?4 S( [ ^9 r8 r
(setq valid T)
+ i; L3 E$ g3 i9 j (setq errmsg "Value must be an integer between 0 and 200.")% A; u1 F% A5 q3 o/ p0 l' Y
)% t9 t# b3 e! C; |' l
)
$ Q' N5 R3 _5 I. w. d/ F )
( p% _: g9 S! H- e+ Y% e) M )
, m- Y: |: [0 l/ M7 y: S, u7 H (if valid
2 q5 J c4 O& t# t2 Q! ^ (progn
' h+ Q3 d" N! t H" e9 o+ u( h2 ` (if (or (= errchk 0) (= tile last-tile))9 ^' y9 A7 _# P3 ?+ I" e' M: y k
(set_tile "error" "")& |0 e$ o' f6 w1 g% R- K0 o
)6 b7 J/ n8 }) m: L4 N& _8 K
(set_tile tile (itoa int))1 ^8 x# W. {1 n- B) x `$ J
(setq errchk 0)
1 F) T2 j) O5 k- h& |) d (setq last-tile tile)
0 w5 y( t7 w0 X int
1 ?2 ~$ }: C7 X( k. ~$ a* q \4 Q; M0 a )
6 B4 B* r) G/ W, F; ~. ?1 J( k$ M (progn
7 ^( W- i9 o4 K: {8 c/ t3 ]2 ~8 I (mode_tile tile 2) ; Move focus to offending field
4 u4 F. { S' t2 I (mode_tile tile 3) ; Select offending text4 j5 J* Q5 Q; n( a- v
(set_tile "error" errmsg)
, G$ z, v/ O+ B4 J (setq errchk 1)
- g- m6 S- A5 ?& m8 Q% f! ^8 @/ P (setq last-tile tile)
. q* g4 L T; A2 A* V7 z" }: [4 S old-value
( J* @# N A8 o4 i/ i2 z: Z7 ^ )
# e* Z2 D2 H5 I) p U9 _ )* V4 ]' j8 w+ Q# I% k; O
); d, z1 V$ ^# U. b5 F b
;; w" N" K5 G n9 g: ?
;; Functions that verify tile values for integers0 D6 y0 Q5 p, d1 J+ M/ K
;;; \. R9 ]; Q0 Y0 Z' c* Q! O
(defun ver_col (value)- u. D& t' m1 r2 k" T
(setq columns (verify_i "columns" value columns))
/ K! u4 ^1 A# j* u% Y- k8 D )
# p9 d- L5 F. o2 x: w3 R9 Y0 E (defun ver_row (value)
; V& Z4 e7 ^( n7 Q, ~) m, m: ` (setq rows (verify_i "rows" value rows))6 ?: {) q% t5 ] s. @
)
& n& K1 B1 i2 h) \3 j (defun ver_u (value), c" J) K; k9 C4 ?! i8 J3 q( b* a
(setq u (verify_i "u" value u))
& i. ?: r; y7 _0 g )& f O1 `! `3 @0 P
(defun ver_v (value)
. [+ g4 N+ \$ z; `+ x (setq v (verify_i "v" value v))
' t5 G& y7 ^: \6 J )5 M3 s6 u3 p8 B# F
;;7 |% [7 ^, x3 _! Q( R/ O) X
;; Functions that verify tile values for reals- T X9 n' \; U! S
;;. r4 b& l2 H4 W! g: ]( u
(defun ver_x1 (value), \* ] R' T4 |- |- v
(if (setq x1 (verify_d "x1_pt" value x1)) (calc))# n" [5 q* G) Y
)+ O5 U# b+ ^' y
(defun ver_y1 (value)
/ N: Y z+ u6 t: {. a- L (if (setq y1 (verify_d "y1_pt" value y1)) (calc))! g7 Q ^- ]0 L o1 s" F5 Q- P$ [
): n' V ]0 a! g: M0 k. d
(defun ver_z1 (value)
, F; ]: E/ M8 I7 i (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
7 \: B0 g2 i4 a, k% s N' c$ | )
: w# ]* I' l* J; K/ | (defun ver_x2 (value)
% K" w6 |7 e' M' O1 l, x (if (setq x2 (verify_d "x2_pt" value x2)) (calc))
! R" [! L1 `* y1 \8 ? )
0 Q, ~' ]3 K+ P O+ ]- O (defun ver_y2 (value)
F/ Q. O! l- q# k$ L; U6 z (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
2 O/ |$ c- q0 x. W )
3 Z7 I# G* x/ E (defun ver_z2 (value)2 h Z, S- o! x; r% I2 t5 J
(if (setq z2 (verify_d "z2_pt" value z2)) (calc))
! R) k( i, |* S d& ? )& K* p; v; v7 ~5 t' U/ N
(defun ver_x3 (value)
8 n+ i! F3 @0 \$ |8 l8 O7 G; n (setq x3 (verify_d "x3_pt" value x3))
" E: T( v2 S" J+ U1 F t ) J8 H9 J& h9 i; l+ X
(defun ver_y3 (value)
7 M& D0 z7 b$ y9 L (setq y3 (verify_d "y3_pt" value y3))
) f+ y0 x/ X; \/ _1 K )- @! C5 x9 }6 V( ~# i/ Z
(defun ver_z3 (value), p9 z+ w- o! @) L. H+ c
(setq z3 (verify_d "z3_pt" value z3))
$ o0 k$ ^3 \$ _5 H A% a+ R )8 A+ B) b( z: w; A i+ w' ?2 C4 [# {
(defun ver_x4 (value)
, o0 g3 g5 w, O" U: G (setq x4 (verify_d "x4_pt" value x4))
7 g- {5 S3 _0 } )
; q1 o, h1 e; f: `, E3 F (defun ver_y4 (value)
8 T# }9 @ W6 T: @ (setq y4 (verify_d "y4_pt" value y4))1 P6 Z" h; C8 {3 K
)
; t8 `! M! V9 I2 B7 d& o (defun ver_4 (value)
( f+ K. R- u( n (setq z4 (verify_d "z4_pt" value z4))
8 R8 c0 Y2 ] z* \- R )- |& f/ a6 M6 L# K: p" R
(defun ver_xscl (value)- u- h4 T, j; X- r* H2 C
(setq xscale (verify_d "xscale" value xscale))# K3 ~& m- b0 a8 P
)! A4 w* w% {! Z+ A, m( X
(defun ver_yscl (value)7 c* U: W, n6 m' D7 p' h
(setq yscale (verify_d "yscale" value yscale))
$ z" R9 o1 P5 j# ?1 ^ )0 s5 X- U5 Y% }8 P8 d9 |9 P
(defun ver_zscl (value)) e' t- {* l7 J, g Y* K e$ s
(setq zscale (verify_d "zscale" value zscale))" a' a, G9 @5 r' j* I/ M
)
4 Q6 O! ?" T% H# H9 |" g (defun ver_colsp (value)# R. A# p: Y @4 T' L
(setq col-sp (verify_d "col_sp" value col-sp))" V5 Z ~. c* R4 g
)
1 M/ t3 \: \2 `% D$ E1 _ (defun ver_rowsp (value)$ b+ C2 A5 S6 G9 N% r6 L. L! R
(setq row-sp (verify_d "row_sp" value row-sp))
1 L7 I b, u6 s/ a! @* O7 g& X- l )$ G' e2 {& g' H6 m9 w" H& J
(defun xclip ()
0 T- R7 ^* ]6 w# ^( v (setq xclipmode t); p4 N& [, S5 F$ F
(if (= xcliponoff "1")
6 @9 s$ X U" ~. G1 C: U5 C. F1 g1 w (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")# a3 ^) ]9 d6 T1 H, i; e
(command "_.xclip" (cdr(assoc -1 elist)) "" "_off")
|2 E. p+ w. P )0 V, y3 @4 E6 h7 u+ S& n
)) {& Y4 j8 I! e B5 s* X
(defun ver_rad (value)
# i6 N" x8 c0 ]1 F' f6 ` (if (setq radius (verify_d "radius" value radius))
# A. i. V- o. w (calc)' g. O: \* F' ~
)
& O/ c, w; U& ^* L' p4 L' t )9 ?- N9 _/ K$ e' ^: M" c; I" H
(defun ver_majrad (value)4 ^7 E3 \ |. ^# }# }
(if (setq majrad (verify_d "majrad" value majrad))2 a* h0 x n/ B8 q0 r1 x) n
(ell_calc_newval "majrad")
: R9 R2 _. v# c) a( C )
0 [" \! S, A2 W- e6 ^+ P )7 b( P. S* T3 [0 t% s; q
(defun ver_minrad (value)
- p! Q7 W) b* Q2 e2 r0 t (if (setq minrad (verify_d "minrad" value minrad))
$ G" q& B6 m5 T/ r9 t (ell_calc_newval "minrad")! D |; O) y6 ~( A8 F
)6 S8 w! ]+ H$ p* O) ?/ m; _ U4 K
)
8 H# h! V9 ^3 q (defun ver_hght (value)* Q V+ {, G0 _* U
(setq hght (verify_d "hght" value hght))1 h7 o( D5 h' V7 k- Y" {# S
)
& i9 M6 o1 d" X+ _ (defun ver_wid (value)
+ e2 U( H6 L3 H$ h$ T' x! E/ [ (setq wid (verify_d "wid" value wid))0 |# J5 P2 c# g6 o
)5 B& y; H4 Q! z# p" n( M
(defun ver_xline_x1 (value / temp) c/ E2 Q; n, [% ?4 `# `
(setq temp xline_x1): V4 F7 ?6 u; ~' V, D
(setq xline_x1 (verify_xline "xline_x1" value xline_x1))
! X' S: ?0 ^" ?$ j) b (if (/= temp xline_x1)6 R. T- P6 ~4 e; D% Y4 h1 ~0 b) J0 c1 D
(progn (modify_xline 0) (set_tile_dirv) )
4 m2 y4 H( ~; \. {# V# a( q )
3 D7 k& S$ W9 C9 j, V; b- M ): ?& h$ U+ z4 i5 {3 v$ R4 A
(defun ver_xline_y1 (value / temp)
; _% C0 H" V8 c" ] (setq temp xline_y1)
5 n+ ^5 q' U/ ^0 u (setq xline_y1 (verify_xline "xline_y1" value xline_y1)): m( z$ @, m3 y+ Q& Q4 d. O5 O
(if (/= temp xline_y1)
4 ?9 Q; {+ {; b1 l3 a; \4 b: n (progn (modify_xline 0) (set_tile_dirv) )* \% }- R/ Z q3 `; t$ z: K
)
6 t; N5 C0 ^" _* ^1 K0 x )
8 l' x3 O( O1 I; P, g* g* w; [ (defun ver_xline_z1 (value / temp)- _. V/ e$ v& |8 ^3 K
(setq temp xline_z1)
0 ~' t0 g$ r, o (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
/ u) Y; i, V4 i8 B1 Z (if (/= temp xline_z1)
- B$ E# P0 p/ p1 e1 Q, X; g, \ (progn (modify_xline 0) (set_tile_dirv) )! _2 Y4 y7 r A% w; c
)
w9 n1 r5 f4 W0 y5 F9 { )
1 i( Y/ o7 Q. ^" o0 J% j (defun ver_xline_x2 (value / temp)
/ L: X4 d) F% P9 p* m& c( f& J (setq temp xline_x2)
: a/ Y6 T9 I. C/ F2 A8 {7 D) c (setq xline_x2 (verify_xline "xline_x2" value xline_x2))/ b( P% G8 N4 p+ K
(if (/= temp xline_x2)
3 o/ I9 r+ _8 f7 I/ X( ? (progn (modify_xline 0) (set_tile_dirv))
, m& G( C1 j4 B- v ); p1 x, ^& t0 [. m
): l1 m# `5 P7 Z2 q2 R
(defun ver_xline_y2 (value / temp)& J* n4 u% ?, d! n6 @
(setq temp xline_y2), E# q r( a8 f) \8 ^2 S
(setq xline_y2 (verify_xline "xline_y2" value xline_y2))/ c0 [0 q* e; P6 @- C! `( I0 Y
(if (/= temp xline_y2)7 P- I6 L, u7 l6 t o6 Y
(progn (modify_xline 0) (set_tile_dirv) )
8 `, {; O* P9 }4 ]' {2 I )
+ S$ {" C/ T0 u' I6 I" g1 K( s9 @& } )
@5 E( c, e# a$ ~* P$ }/ H (defun ver_xline_z2 (value / temp)1 i; Q7 K- {2 Q- N5 {5 Y7 s7 u
(setq temp xline_z2)+ s& q5 G5 L G' d
(setq xline_z2 (verify_xline "xline_z2" value xline_z2))
& ^) m. t& w' V" } C4 k (if (/= temp xline_z2)
. v; C% G1 V: [9 K H (progn (modify_xline 0) (set_tile_dirv) )
2 k3 u- T$ _& E/ e7 y P7 [0 L2 T ); A( Z9 W9 K5 Z# C% o
); R7 @4 i( w" ^# c/ F6 _
;;
' g7 O. r3 J0 Y6 n6 b; h ;; Functions that verify tile values for angles0 Q; z# Z5 w# Y; f
;;
) y; [+ F# E C1 | (defun ver_ang1 (value)
$ r* `, i1 d% l, }: K (if (setq st_ang (verify_a "st_ang" value st_ang))
* S% }9 u$ w9 B: K& [ (calc)
2 ]$ E$ n; h, w. y# B0 _ ), O: `( {1 {% X' c- f% Z% f, ^
)" K( d, G; C+ Q3 V# X/ [5 X
(defun ver_ang2 (value)5 l- l1 v& n R; g: _
(if (setq end_ang (verify_a "end_ang" value end_ang))8 U' n2 T+ T8 r4 y3 H3 n
(calc)
- g8 S3 L( F2 k0 ^& L! E. \ )
! n# f. p, G6 Z- V' Q9 H- q )9 w, Q1 J" i* V3 B# F
;;3 j+ @2 B1 c/ x' ~8 ^
;; Verify tile value for ellipse end angle. Handled slightly
1 I# L3 K& O1 W; { ;; differently than the other angles.
6 [, @; }5 _: W5 t ;;
3 y9 n8 H3 N; ^8 h9 T& |# w (defun ver_eang (value)
& P; V1 `# s: K3 ^ (setq end_eang (verify_ae "end_eang" value end_eang))1 {$ ~6 d' Z5 n# ?9 @
)0 h3 T- N4 C/ k% ?" f- x$ F
(defun ver_rot (value)
" ~4 P( J. z# ]# M1 A8 E (setq rot (verify_a "rot" value rot))3 \7 m$ J6 {5 h9 L6 a
)
2 t# K+ x1 [- G4 ^1 f/ n& N (defun ver_obl (value)
8 O( D) q0 t+ ]; `" f3 e" c& S (setq obl (verify_a "obl" value obl)) A. ?( X3 `/ m7 b
)- i8 p1 s( O/ V, ]+ ^/ F" r
;;. a2 D1 |5 X2 w Z7 H2 z
;; Function that verifies attribute tag field for null string,7 {9 b/ \& `: R# r# F# g
;; or a string that contains one or more spaces. Tile value: A) J3 X* I8 D: d
;; is also converted to upper-case as well.
) \5 s4 r! d/ ~# |, H ;;2 H: Y2 E1 z$ B8 H* B
;;" T& z3 [2 e9 e" d" n/ I* t" e
(defun ver_tag ( / tval)
3 S/ k! H0 c9 n) D( s: G (setq tagval (get_tile "tag")); f* Y# \% P9 P9 K5 c5 l1 J7 m
(set_tile "error" "")
# w# L/ g- [! X9 r& b/ \ (cond
6 k7 P4 O y7 D$ S/ t ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))& W ~, H9 ^0 N S2 n
(wcmatch tval "* *"))
4 X4 t: r, O, n3 ^6 f. [6 d% b3 W (set_tile "error" "Invalid attribute tag.")
# G6 q) K8 ], A' { (mode_tile "tag" 2)
6 c# I/ X% k& ? (mode_tile "tag" 3))
; M! }- n( v! I (t (set_tile "error" "")/ u; U4 M2 H0 Q
(set_tile "tag" tval)
9 B" A5 y A- m% L! S- X (setq attag tval)))
1 S0 l& @' Z$ L) S )7 G9 Z, u9 \7 `
;;$ G& x" \6 u% P
;; Calculation functions
# B" l7 F! ]. e# k8 z, Q/ } ;;' D! S, d: ^% o1 X( l8 b+ b% y/ l
(defun calc () P& t- X- y/ K1 D1 H7 b) L4 d" R
(if (= etype "LINE") (line_calc))/ \/ ~. C% ?. c4 f
(if (= etype "ARC") (arc_calc))
# R- u: C7 {6 P5 Q0 [) q (if (= etype "CIRCLE") (cir_calc))" a3 \( ]2 F4 P1 n4 V
)
5 x2 z. j% W: v6 a6 G! b1 K8 q ;;
6 c. Z: M" f1 a( L, { ;; Calculation functions for lines, arcs, and circles
( e5 Q4 O$ F/ |! o+ J, z9 k ;;) @+ N! ], s+ r2 p }% M
(defun line_calc ()! }; ?. j6 H/ `% \- F( s/ Z
(setq stpt (list x1 y1 z1))
1 w" Q2 `: v/ m (setq endpt (list x2 y2 z2))& D$ N% |# B8 t- B3 G
(set_tile "delta_x" (rtos (- x2 x1)))
% E; ]% r0 m/ g+ {4 |' n (set_tile "delta_y" (rtos (- y2 y1)))+ D, I0 ?- b" | }
(set_tile "delta_z" (rtos (- z2 z1)))
" a# h: j8 }' j; U (set_tile "l_length" (rtos (distance stpt endpt)))
- W% L0 O7 \. b (set_tile "l_angle" (angtos (angle stpt endpt)))% g L$ c5 L8 N
)
7 z5 `; T4 `" H) P( C
: W$ Q% o! C# r7 d (defun cir_calc ( / area units)
8 D" @$ `; x$ k# t: Z, G F. q8 B (setq radtest radius)! u# c/ U6 A, K( |
(set_tile "Dia" (rtos (* 2 radius))) v x$ n' N# |1 u
(set_tile "Circum" (rtos (* 2 pi radius)))
6 T [+ e. D u (setq area (* pi (* radius radius)))
8 }9 ^* n! \" _/ Y (setq units (getvar "LUNITS"))
7 q# u% f9 B. L5 z# A3 c( A (if (or (= units 3) (= units 4))$ H( s) A/ G S
(progn
- `" t- }9 x7 H+ M1 F (setq area (/ area 144.0))
' u$ e' G: ^+ v" D: F (set_tile "Area" (strcat (rtos area 2) " square ft"))7 \& T; H( o6 W, A2 J* z
)
; F% m/ C. s0 U- [. [$ f (set_tile "Area" (rtos area))
( F8 ?9 u1 p) F6 K) L6 x J: G ) N: N' h$ A! b! Z
)8 L" \8 m% ^/ x4 E
+ I9 z4 R6 x, R5 L7 a, J. T2 Z
(defun arc_calc ()9 {1 r% K: |! F$ E r
(setq totang (- end_ang st_ang))
$ X& ]6 {0 w. D; x (while (< totang 0) f0 B r& ]6 ]! v/ |
(setq totang (+ totang (* 2 pi)))
7 ?' } j+ Y, J7 M )9 I+ _' t& w5 |0 A7 f0 w5 f/ O; m6 u
(while (> totang (* 2 pi))
- d* Y) x* T) M (setq totang (- totang (* 2 pi)))
& i a6 @* ^4 L2 c8 u7 D% O h )
. {4 |% h: X: L; a* x- S* \ (set_tile "tot_angle" (angtos totang))5 m9 b! z7 y* S1 c: o7 [
(setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))( J7 A$ Q* S9 x N" @. c
(set_tile "arclen" (rtos arclen))
, U2 z/ S8 q; N( O! [( j: F )
" L. ?" X6 A, e5 t! W& ~ ;;% t6 ^& `+ N C- a0 M
;; Calculate the major radius, minor radius, major axis direction." z0 _! t8 L. }9 F1 I: |) h
;; Get radius ratio. Convert Start, end parameters to start and end
/ m: B" v, u: N+ M- `% d ;; angles. Save Major Radius value in "old_majrad" in case the user9 X9 D; i3 a% F/ y- f5 I
;; chooses to input a new Major Radius value later. It's needed to
0 ^/ w! i7 G/ E ;; calculate a new Major Axis Vector value.5 ` G4 J7 r9 V. L0 R6 O A
;;( H% h! {6 H* _; _' g2 _
(defun ell_calc ()
' ?& f4 X0 M" d' X/ x ;; Get major radius from the major axis vector.& ]3 `$ R+ C' k. r, Y! ~/ q
(setq majaxis (cdr (assoc 11 elist)))
- E9 T0 g# M% ]7 k (setq xx (car majaxis)): I' M) P8 O, E$ l* V V
(setq yy (cadr majaxis))
5 d1 U8 M0 f* d9 Q' E7 m5 U (setq zz (caddr majaxis))
! H4 V2 I1 c0 a2 _7 K: M' n" g (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))& s$ l) t3 c- G) G! J5 ?, |
(set_tile "majrad" (ai_rtos majrad)) K. ]$ {: K& v; u
(setq old_majrad majrad), C; V; L# f- j( l5 H3 V
;; Get radius ratio- N- R1 l- L1 {3 u; [
(setq rrat (cdr (assoc 40 elist))); x4 _9 k) Y4 m$ B; _# Q
(set_tile "rratio" (rtos rrat))
! ?* f: Z* T5 u1 h* x% V6 n# X ;; Calculate minor radius Z' n" R9 N( A
(setq minrad (* majrad rrat))
8 c: i0 F7 O0 l( m9 k, V (set_tile "minrad" (ai_rtos minrad))7 h! _ x3 Q+ ]9 Y+ `
;; display major axis vector% ~' Y7 U" Z& w) e/ b0 a6 g5 ]
(set_tile "Majraddirx" (rtos xx))* |2 u v2 \# Q
(set_tile "Majraddiry" (rtos yy))
6 W3 Y4 Z: K+ {7 V2 H& O (set_tile "Majraddirz" (rtos zz))* h3 U/ G* n0 o# n/ _+ J
' H$ w+ U7 K8 E5 o% h- F, N, }
;; Convert start parm to start angle: Y2 w% m; ^6 ^! ]) U0 C! X7 F8 R
(setq stparm (cdr (assoc 41 elist)))
+ ]( F; t4 @' u' r( N* f3 N: H (setq vecx (cos stparm))
# b& d, C: j' I+ K, d (setq vecy (sin stparm))$ q3 N# _% I8 R: u# h
(setq st_ang (atan (* rrat vecy) vecx)); b* i1 k- _$ K: I9 d( f. `
(setq tempst_ang (ai_angtos st_ang))4 Z& t& a; \! R% f' j
(set_tile "st_ang" tempst_ang)
3 \% _ x7 g3 @! ^8 v2 }# D ;; Convert end parm to end angle. If end angle evaluates to 04 p$ a8 f; J, r
;; degrees then display it as 360 degrees.
: b( j a! M% \" j) g1 N0 `) `5 } (setq endparm (cdr (assoc 42 elist)))6 S% J g6 B. t0 P* o
(setq evecx (cos endparm))7 k2 S! Z' G! P
(setq evecy (sin endparm))
9 o, N" K% K2 x2 L! k. Z; \ (setq end_eang (atan (* rrat evecy) evecx))
* d& H; L# t" i) {% S (setq tempend_eang (ai_angtos end_eang))
$ N i0 L7 T! T- o3 d$ Z$ v2 H+ M (if (= tempend_eang "0")4 a; j( r' o( L4 R
(set_tile "end_eang" "360")7 o8 k; A% N7 E. H4 X
(set_tile "end_eang" tempend_eang)
6 B+ z% ^, T- P) K2 m$ j3 J )
V7 ]( k9 _7 A# O) A2 W ;; Get area of the ellipse.
( d$ T( A& ?5 x5 D# [* l (ell_calc_area); t; t* {4 W; Y
). H8 |- [: E! @1 A7 a) S
;; Calculate area of ellipse. If it is an arc then
( p& [" L& L9 P ;; grey out area display.
$ s4 d7 |+ y+ K# R$ \9 B6 N ;;+ a( T9 v* V H$ H3 c% `
(defun ell_calc_area ( / area units)
) l' e4 e# m9 t" {, \ (if (and (= tempst_ang "0") (= tempend_eang "0"))3 r( b& s1 w* d3 S& p
(progn
: n: |2 H- H i6 i6 [( x (setq area (* pi majrad minrad))9 h( [2 _) Q& q) ~/ q3 I) f
(setq units (getvar "LUNITS"))
3 |; ?4 r* I b3 f9 w) T (if (or (= units 3) (= units 4))1 e6 A& _3 e. I7 m! T2 |- x' D
(progn
; U* c; z- r. k2 \$ Y+ [ (setq area (/ area 144.0))
+ y* t( v- \" ]0 h$ c (set_tile "Area" (strcat (rtos area 2)" square ft"))
: L0 Y8 p( ]/ c+ p5 [ )& D: u ^: }7 S! z' g
(set_tile "Area" (rtos area))
8 }% d5 _& C7 R: _ )
5 b( e( a$ d% n0 I& O$ d )6 k" a" @) Q3 d w1 d. z
(mode_tile "Area_text" 1)
9 ?5 n9 E+ @) ?- d9 I+ V )
' R; ?' e7 Q6 x2 @ )
; F8 Z w9 h8 B/ e# k ;;
4 q+ h+ l: s+ a/ \9 T5 u ;; Calculate new values for ELLIPSE
" _, `5 ]/ s( b, O ;; Minor Radius, Area
0 S" K0 A8 X+ L ;;
- T# E( ?$ g/ ~. h1 `# D$ \ J (defun ell_calc_newval (ell_tile)+ A; [1 Q v( v% U" Y
(if (= ell_tile "majrad")" b: c# g4 D6 @- m
(progn
1 n# o! L" N0 ? o5 w% Z (setq rrat (/ minrad majrad))* z F( g T2 c: {3 s0 a2 u4 c0 }3 m
(set_tile "rratio" (rtos rrat))4 A! ^+ b' H5 ?' w
(ell_calc_area)" _6 t$ A3 A' r- V( B4 I
)
( |7 R ^" @! o" H )* @. \" E: k$ E! y: L
(if (= ell_tile "minrad"). e. d3 j' I, m1 t9 N
(progn; `; T; Z" k6 U9 s" ]4 D: e5 h
(setq rrat (/ minrad majrad))
6 M- v8 U. F5 |* [# u u3 u8 B ]3 ` (set_tile "rratio" (rtos rrat))
7 A ]- ?! m7 J0 e3 T/ s (ell_calc_area)
; {8 [! X1 D: S3 \) Y4 @ )
" ]- e4 [8 ~' \2 k )$ d4 E5 T$ s B
)8 P' P; p F2 x& y* X+ C! I7 A G. J
{* c. v& W6 ]5 ^ P
(defun set_dimen_props (/ loop a stl txstyname)
6 P/ X# D) K/ ~- E
3 b* q; ^" s/ v @# G3 B8 t a (setq stname (cdr (assoc 3 elist)) ; get style name
. o& L& s$ D& L+ ~ stl (tblnext "DIMSTYLE" T)
* d- h9 S0 |+ ]6 S7 G" _/ ~ stlist nil)
9 ?5 C9 z) A0 A8 E, J" e ;; Get all style names and list them in alphabetical order
3 a+ L& c/ \& y9 l6 b (while stl3 i9 a. H5 T( K; G$ l( Q# [7 Q
(setq sname (cdr (assoc 2 stl)))
6 U7 r5 R; a5 d% H2 V+ {5 R1 R5 B (if (/= (logand 16 (cdr (assoc 70 stl))) 16)- y2 Z8 O9 R0 \* j0 u
(setq stlist (cons sname stlist)))% X H D0 K$ H
(setq stl (tblnext "DIMSTYLE")))
8 G4 b9 J# o! Z' Q8 ]( F# {/ `/ f* z/ H" n4 j
(setq len (length stlist)
& Q& n0 [* W" _ ?- E4 c loop 0# H: y6 N) ?7 X" a0 x4 T1 u P/ O
dimsty stname
. {4 U0 F5 G6 _8 l; X, I8 S, J) O )( H! Q, \, d1 G, P: j" Y* m+ V* U8 m
, Y6 v# n' H, B' F O9 F7 y
;; alphabetize style list, depending on maxsort! h% M7 n/ {; B: J9 H
(if (>= (getvar "maxsort") len)9 |" F: U& @2 F
(setq stlist (acad_strlsort stlist))3 W3 l) t! P3 O7 |
(setq stlist (reverse stlist))) k' q( M; }0 _, ^, K J
: `9 Y' N2 |4 h2 X+ X3 C
; *UNNAMED style (dimsty = nil at this point) is replaced with
2 |2 } L- N' E+ P ; the current style. After R13, we require dimensiosn to have a
* m3 w' Y! Z9 v8 R' r* q( l ; dimstyle, so we plug any holes where we find them.) ?1 E5 ^3 h. y) N7 I
(if (null dimsty)
; u- E- }; V8 r1 Q (setq dimsty (getvar "dimstyle"))
8 `! d4 v2 ?- @; }, K9 P )) q' s7 E0 m: c& ]1 X
; Show the styles in combo box
6 h* w3 G6 K4 g7 K+ Y" t- x (start_list "mod_style" 2)
/ x2 Q, H9 @2 m% E% {! h (while (< loop len)
: H' f1 {/ R. p% d) e (add_list (nth loop stlist)): _; l( q) I' ]' @( \" U( I' C( h
(setq loop (1+ loop))
7 Q0 h' l5 O9 {- H' Q )
4 c$ `" P; Y0 _. @* O$ b0 \* ~' Y n
(end_list)
, S; E0 X5 \! z) Z- m ]. Z2 i S
; Hilight the style name of the selected entity& @" A7 s& \, I7 e9 Z2 n8 U
(while (and (< 0 loop) (/= dimsty (nth loop stlist)))# i/ e7 G% G( J& T) h! n
(setq loop (1- loop))3 E7 ~2 B. a& ~$ B; l% W
)
- t( o( u& E: e2 S$ c8 W (set_tile "mod_style" (itoa loop))
6 J2 o6 u' W8 m3 Y. s5 |. E1 Z* l. j; a* Z4 t o* _; T4 H$ Y
; The following is the list dimvars. It must be sorted in the same
7 r# V; B$ ^4 R. e* Z+ k/ a! E: ? ; order as the resfub returned from DDIM (ADS module).
# |, w' t7 j. E* F- j) S
! S0 _7 K" s/ J9 \8 `$ E! t (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"3 @% ^3 T m3 n) U+ V! J
"dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"+ p8 a% j- }0 F& T5 U
"dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
- ~ |$ s0 @, I) Y0 I. ?* e "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
- F5 p0 z' y' B: c+ k* p "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"# T4 A9 d7 C( z- }* p1 e) A) c5 N
"dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"; q9 a7 K' R* A) v0 }& n; F& Q
"dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
( _) }; ?) j; ^9 H$ V) S "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"* w. e0 ]5 P4 \! T/ A3 {. ^
"dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"2 ?6 g7 S1 R7 P1 ] Z
"dimdec" "dimtdec" "dimaltu" "dimalttd"
& O6 j; `* m/ |+ y2 l& {5 m "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
0 J0 d, ~6 L- \6 v "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"% ^+ o5 m( C. ^5 s$ `9 j
"dimtxsty"
( Q1 n7 U5 b. A4 X ))! h7 W& Q( D2 I$ K% f6 l1 A" ~3 X
(progn6 P* k" q( s, l4 z2 h! o
(setq sv_dvlist (ddimen_getostate dimsty): O* L L! |, i3 m
txstyname (assoc 340 sv_dvlist), a" t/ N' H6 P5 f" G# w
sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))# D! d8 @" ^) |, |7 b3 s8 ?" c* q
txstyname sv_dvlist)
2 L0 T2 p5 I; E& | dimlist sv_dvlist
1 n$ E2 R- J8 ] )( W& U$ \7 v: X4 b. Y0 z) N
)" k+ d2 m/ ` S! |" m
(if (= dimtype "DDLEADER")0 j$ p% j; q, w' K5 f1 T
(mode_tile "mod_format" 1); o; r2 s) w0 A; b
). e( K& Y% q5 _1 z
(action_tile "mod_style" "(setq dimsty (ddimen_style))")
9 `& t- F* b/ U (action_tile "mod_text" "(done_dialog 4)")$ q8 M/ ~3 ~6 M
(action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
' B6 d5 z, J$ O3 E3 a% V: { (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
8 m. S; Q$ C7 e. O( @0 v& j (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
8 g# O- \' G0 |. R, B( [ (action_tile "accept" "(done_dialog 1)")
: I, _$ B/ @* g! b4 b9 n )7 @ M! }* |2 B) ~* X; Y
;;
5 j: G/ O' W( B+ _6 G, ` ;; Get dimvars that have been restored.
0 V6 T1 s: V( `* V$ w$ R; a: e ;;
B6 r6 I6 B3 y$ l4 ^ (defun ddimen_getvars (/ elm dvlist dv i)7 X3 D! J9 C8 v$ r: p
(setq i 36 v6 a" c# |6 ]" Q2 U
dvlist (list (cons 0 "DIMSTYLE"). d+ y9 U n( G! }: o/ J- f
(cons 2 (getvar "dimstyle")) (cons 70 0))9 g; [" X d- }9 J
)
/ `+ h; s j% H: h& x! q (while (setq dv (nth i dimtbl))8 X7 a4 _+ N& i% d+ ?9 W
(setq elm (getvar dv)& W. t1 g5 K- U' o! v: X
dvlist (append dvlist (list (cons dv elm)))
6 a& |3 w {0 W i (1+ i). h1 y) S6 M k% H
)# q& t* G: k- V* `+ n& x, F
)4 a' u7 o B1 {: v8 u! K8 F
dvlist
: D! _% y, s; @- Q% o4 b' } )! r9 v2 P: [8 L0 u
$ x- {0 M! \9 q: }3 }! R6 G3 W u ;;
0 `; E+ X9 \* Z2 Z. R0 j1 r% [$ P; N; k ;; Get the original states of dimvars. This is for DIMENSION entities.
1 j# r% I/ m7 Q: S ;;4 H& K; Y2 H) J' Y% W) [
(defun ddimen_getostate (dimsty / dvlist elm i dvvars)3 c. v# f1 { v
(setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
0 {: i8 |' t& A6 y) `. K) V1 W dvvars (ddimen_getvars) ; Get dimvars for that entity2 o) G) I7 e+ {/ A/ I
i 1
# y: D; d: ]2 z/ K! P ), X/ }0 m1 @& y
; S, g$ Y: S- o
; Create a list that contains values of the selected entity.. _ s3 z9 t" T8 o
; ~/ ~, ?# A5 F (while (setq elm (nth i dvlist))
~9 m8 J, u0 E7 e2 u0 e3 ? (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
7 s; Z% G% C& i i (1+ i)
' i) K; R1 g& q- } )
8 A' V: {+ V& I& G4 G )
8 Y- E$ C" c) B6 g) ^ dvlist% n& J2 e# J; I- \4 T2 w
)" ?3 F4 j; t3 ^! N6 i
- m! ^8 I- T S p. c3 b5 r9 s+ B" V
;;. h' x/ `9 p8 i) n( p
;; Restores dimvars of the selected enity.
% I$ k b2 j* D5 z) f: A' [ ;;
1 l# H( w+ G4 I (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en). j3 r; d; M( n! w* d0 M$ N
(setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"8 r/ i8 h4 x- g, S
"dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"2 G; H* V% U- F7 c5 k( J
"dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
B' l- c* A) b2 R, U2 { {5 l X "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
( n: o2 z. G$ ]3 ~7 N& w& ]+ h "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
, u( u) q% R+ J8 v/ e# h, V "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"* r% h6 j: n6 U2 k4 ?3 l' u: D
"dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
6 k& s$ o' Y: p6 c a) ]- i "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"/ N1 {6 X" k1 p
"dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
0 h& Q0 p% O8 M6 N$ E5 Q: T "dimdec" "dimtdec" "dimaltu" "dimalttd"
+ F% K3 e3 n9 ]5 @( S& W. Y "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"% k5 p- ^& J: F8 Z( K7 O% ^
"dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"( C+ N3 {! f$ B# C% B9 {6 C
"dimtxsty"
% {$ n7 y4 L M+ F ))" H, v% |& ^7 ~- n; ?/ I2 O
(setq dimsvcurset (ddimen_getvars)) ; Save current variable settings+ A) |9 S9 B1 O
(progn
$ R) Q2 P% c6 _! G (setq en (cdr (assoc -1 elist)))) d& {6 n2 L _3 s
(command "_.dimstyle" "" "" en)0 U' v/ G- `: L3 c3 q
)
3 _4 F7 [ t# C- ~2 s% y, o dimsvcurset
1 q2 G" V* l. Q5 U) j3 `5 e3 _" [. C# L )* E; H8 ~8 p1 }" k& U
;;
! P1 M% k" T/ k* i* J; e ;; Modify Leader# |( c% v+ v6 Q' d
;;
! W* P( q b( B) v. Q+ x' T (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
! o2 m# a! X X dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
, T1 d* R0 `5 h4 ~' [ dimtype dimsvcurset). w5 ?2 K* Y: W% T" y2 t5 b" ]
(setq dimtype "DDLEADER"/ |8 z6 i& O' x# b# S9 L
dimsvcurset (ddimen_dimsty_restore)
0 G# }' g1 W! }: ?) X )
, u! {! `9 h V# X/ Z0 b% A9 ]' w (if (not (new_dialog "ddleader" dcl_id)) (exit))1 |/ Y7 h! ^' G+ h
;; Set initial tile values
4 t" ]" o0 \7 E (set_tile_props)
) `1 A* R, f' X$ u& I (set_dimen_props)
; \; G0 Q( x0 p; a (set_tile_handle)
; V, j/ W8 c2 U" U k l S# f ;; Define action for tiles
8 s4 ?% s U( F6 i! B( p1 g (set_action_tiles)2 ]; A' W- ]" _7 `1 K U. Z% D
(mode_tile "mod_text" 1)
2 @! \" L A+ g" x3 B3 i1 S. Z4 d5 P3 [
(action_tile "mod_style" "(setq dimsty (ddimen_style))")$ m$ x- U( {8 J; U5 g- h% E
(action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)"): F7 y5 F, O n' y! r9 U6 u3 t" Y: Q
;; Get ARROW and TYPE.' H% g* N* _5 E0 U# {7 V
(if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))6 y5 ]5 c( E8 H
(if (= 1 (logand (cdr (assoc '72 elist))))
( M9 B- u, f; o T1 N$ h (set_tile "s-s" "spline")3 ]* {; s$ e6 R, z
(set_tile "s-s" "straight")
& V+ h6 ?% e8 d2 \* ]0 B1 h )
A; L5 h$ j) ~, F% b6 U1 w ;; Start the dialogue.+ ?9 r3 B% D5 h% f J
(setq dialog-state (start_dialog)) o. b- h& k- I, Q2 i; F" A
(if (= dialog-state 1)0 }4 Q( I" h" h8 Z
(progn
" P3 [. k. B, P& w( `* a0 X* T/ Y ;; update the style
6 d0 |4 D) ]1 U, ~0 Q, p, f (if (/= dimsty stname)- [* C) R9 z) ]3 R
(progn/ O5 j) c$ i9 x! j5 F
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case6 ~0 Q6 ]" s7 c! I
; doesn't have it.& a7 d) K1 ?) X' x# A
(if (null (assoc 3 elist)), \3 K4 ^( {) p( E/ x y, q
(setq elist (append elist (list (cons 3 dimsty))))$ A# A' |( q* y! |- R
; else just replace it.
7 x% p, U. U* v5 W (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
& _' R0 j0 a, [ q1 F/ ] )
2 ?( G0 p! t+ V: b7 l ; refresh sv_dvlist with new dimstyle.3 ?8 X3 C$ U) D! k
(setq sv_dvlist (tblsearch "dimstyle" dimsty))
4 p. g$ T! a" X |( [( e2 c2 @1 w )
" x; t c% z U' o5 s! z" E/ k& ~ )
$ N; O4 \$ c g- C$ T3 F' { (if (not (null dimlist)) ; attempted to change dimvars' o8 |4 \$ d* y( j) [2 h) s z
(ddimen_complist sv_dvlist dimlist dimtbl)
( G: U9 o/ _* Y7 Q2 d5 G& @" x; w3 n )3 M7 {' [+ C$ c- v7 i0 c- _1 X
;; update for ARROW.2 E% V) J: x: J9 q
(if (= "1" arrow)
0 d& ~8 R( K- V, i3 }3 R (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
; x* L: i. J5 r, k (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
) E! V; G) P1 l$ e G )9 F9 E0 t' i+ W
;; update the TYPE.
% Z" |3 w+ K" K9 i, Y (if (= "spline" leadtype)- c5 i1 N( I! r* ]) D* Y
(setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))5 V( W/ t" ^9 c" i4 S
(setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))& o; F3 S7 `' t
)1 Y; i: n* _7 M/ ?2 Y$ L4 Y, B
(modify_prop_geom)2 v, a; ]3 T; x4 S/ [8 x( B9 i ~4 k' @
;; update the Color0 r8 Q" E+ n" _
(setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))+ ?/ k, r4 V+ ^" |% m
(entmod elist)+ R5 B& z* |. y2 O
)
R% q# Y* v l8 y: x5 q )- u! l8 @0 N' r
(ddimen_setvars dimsvcurset) ; Prepare to exit$ i# P5 D! X/ c% M& M
)0 p6 h0 N) j% o2 O
' N+ x3 z0 p) q/ [: T8 A ;;
) a. ]! h0 G# h& J ;; Get dimvars of a dimstyle with overrides.. l0 b8 T, W" h) p- u- s/ U4 w
;;. O2 d! z/ P0 {8 f* O
) r, v9 i I% M5 H$ z: h (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i): [9 x+ e' l4 S
! u1 [; s% o; |; u( Y% z ;; Get override information for the specified entity." L w. g' Z) i8 m, I5 d% c
;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
, y# L. v7 e, s2 b( D! ?3 G0 u ;; must obtain override information through this tedious operation. W% ?$ B$ d/ z. p+ g! l/ C
(setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))8 t7 I( a3 ~. B, U R3 [
dvlist (tblsearch "dimstyle" dimsty), m I* K2 u4 Y; C3 b
i 2
6 W4 `: g1 R `. ]4 Q# A )8 a2 U, @, B2 {+ A6 o$ _
Q3 u z- K( C. E8 F9 y
; Update the list with overrides if overrides exist. X4 W+ H4 d8 ], Y
* j0 i7 b+ B: H( ]1 T" ]/ R. U3 o (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))6 N. ^* V. K5 d/ l# m; d2 g2 h
(progn
$ E& V1 F+ X# O (while (setq elm (cdr (nth i dimovr)))
. {8 T, O" m. l- d; t+ T) x7 u (progn6 C$ C! _6 \7 [- `3 |# v
(if (or (= elm "{") (= elm "}"))
7 C0 {- j$ L( A% x- K1 M) T( k (setq i (1+ i))
1 W4 |+ Z1 g$ a$ \2 v" q3 } (progn
7 |& j, f. c7 ^0 k& T (if (or (and (< 180 elm), I; D+ U- k" p! O
(< elm 190)* R+ r2 d( ~6 {' ~
)
, h t, O- H/ g! I8 o8 w (and (< 80 elm)) h1 @7 a U2 _0 L
(< elm 90)
, `: L8 ~" j7 i* ~7 D )! X" F& L# N9 z& ^2 }! ]
)
. `. }( `$ v5 E0 B" M4 `9 j (setq elm (- elm 10))
" t( o: z0 g. t- p% i )' X: i. I" S/ j- D3 p: u0 \
(setq i (1+ i)6 p% Z$ t7 S9 s5 {7 P: i1 c
elm (cons elm (cdr (nth i dimovr)))# J2 r/ I6 O; o$ `) b. i
dvlist (subst elm (assoc (car elm) dvlist) dvlist)3 A: P: G& x" C+ {1 |" v
i (1+ i)# B% w6 D) C; b2 t/ |" e7 c# x
): L8 l, Y( T# b2 H. H; L
)
3 m' O0 R4 U( O' w5 X- ` ), }0 N( v* k4 @! R
)1 O; x- _# Z/ N% M( l$ m0 B2 j
)' N! m, X/ d/ [) c5 {8 {8 d' e
)1 Y; R* ~6 L/ s
)0 j5 ]7 x* ?: [4 a1 `( J
dvlist# P5 O: `, K9 ~1 o6 \( a9 O! q
)
) E K3 \. j& W1 u- h( Y. i) B. Q, f. W% I5 M6 q( o
;;3 f0 g/ O3 J# N0 i
;; Modify POINT
, C- F9 B, }7 h: x: @# t ;;3 T9 v: v& F5 v1 o- i; Q; {/ C
(defun modify_point ()# U% l$ g9 y. B; l. U4 M
(modify_properties)/ E+ R, H5 T! C6 P0 j; u
(setq pt1 (list x1 y1 z1))
7 i- f4 e8 g0 B5 j" \( W8 O! ~ (tempmod pt1 10 0)
$ w, V$ ]9 X% R (entmod elist)% }# f4 v; E% ^. ~: q9 |$ v) T
)9 f; G, F3 y9 B& h, a
2 e4 T, I4 K/ h+ [5 r3 s8 Z: J
(defun ddpoint ()
; x6 A( N7 `( Y3 Z (if (not (new_dialog "ddpoint" dcl_id)) (exit))
- g+ O" ?: l' u; E, W7 T- T% R5 y, B ;; Set initial tile values
" I U9 j# d( V/ N: B5 t (set_tile_props)
' j7 f# y- h: \+ _ (set_tile_handle)
* w% N& t& H7 N! F; I (set_tile_pt1 0)! N6 Y* y5 L: |+ K
;; Define action for tiles1 k: R* U2 d3 |+ ] S$ v- \
(set_action_tiles): B- k) A* M1 ]
(setq dialog-state (start_dialog))
" t/ J0 V! _$ H L2 o" s# e4 W (if (= dialog-state 0)5 I: ?+ T A+ ]. N0 w# ^
(reset), d) r6 y% D1 u" Q: e/ |
)6 o4 |$ C, M2 B2 \8 N' `+ u
(if (= dialog-state 3)3 _. f: `; G4 N0 y7 I
(progn U5 a9 r9 ]' v- M
(modify_point)
0 j2 I% P0 p7 w& c; J (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
/ e0 N# F+ Q9 D1 p& _7 r6 T: ^ (ver_pt1 0)
4 h* t4 v& t1 y (ddpoint)
/ \3 M) t8 j; U/ x" R/ P p )
" B. O8 W6 d7 \ )
! Z7 L( K p5 v! A# g) q (if (= dialog-state 1)
5 a! L q8 i3 M! V (modify_point)) y' w' _- x) x/ ~! J
)+ {; q" ]4 ~, a
)7 K8 G( U- b5 x3 X% v6 f8 x
;;0 E& Y7 R+ `/ }2 S
;; Modify LINE: x! R- G# `8 p' _
;;
" h/ Z/ e4 v7 {; y (defun modify_line (); p$ f( v4 S! P3 y0 F p6 |( I
(modify_properties)
6 ~+ L" u" o/ X7 O+ b" I4 j2 K0 n (setq pt1 (list x1 y1 z1))
7 g' P0 y, D0 H f7 X (setq pt2 (list x2 y2 z2))
6 G, d' {$ p3 g) b (tempmod pt1 10 0)6 V3 L: k/ h/ O+ e
(tempmod pt2 11 0)9 t! n3 ^9 L1 Q
(entmod elist)
/ b3 U7 @8 C$ `8 M3 `5 a )0 a% b: z* u; L; f6 ^0 l s8 T
(defun ddline ()' @5 `. A' |% H- c- w% f0 e# l5 K! \
(if (not (new_dialog "ddline" dcl_id)) (exit))+ `- u; W! ?* W2 I% f
;; Set initial tile values: U4 j! q4 A; n- M0 g. Y
(set_tile_props)
& E) u6 u3 Y* S (set_tile_handle)3 }" B. ?. W4 ?: V
(set_tile_pt1 0); e1 n# _* r& I$ ]
(set_tile_pt2 0)# a8 L% h6 x* j. k0 [
(line_calc)2 Z. [8 R. o2 \# c: j
;; Define action for tiles( |6 I& ^+ s* p4 ?/ u
(set_action_tiles): }. n" A6 b( q" q
(setq dialog-state (start_dialog))
0 {8 e/ q( W! i (if (= dialog-state 0), {) m9 l6 y9 i9 b1 o
(reset)8 a- R/ D. P. N8 K/ x% `# K
)# T' Q3 S/ H1 w$ K
(if (= dialog-state 3)! K! ]2 v/ P5 y- B e6 p3 i+ h
(progn9 U- y3 L9 d# P: w7 r
(modify_line)# @( m) p) L1 O5 N/ s/ d
(setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
# m' A6 Z& K: b (ver_pt1 0)
& ^0 y6 m& ~8 c (ddline)5 U3 x5 t% q! o! j. s
)' D, R* |8 ?; ^, _, j0 M
)7 R- z& J. i1 h% q3 K
(if (= dialog-state 4)
: k+ H, b# z! j+ a) ]: z* K7 n (progn: L& p3 k/ `6 c I& P* z
(modify_line)
( q2 R( p D+ E0 k7 E- P+ ~% B' n (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
- J& F# }$ V/ k9 i6 b7 Z- D5 U (ver_pt2 0)
4 q/ b: V% T1 w9 @ (ddline)8 B3 h+ G+ H% Y
)0 @0 @* f) n! A6 c" F, I c2 R, }
)( [/ Q, O9 x% X v+ n0 G/ P8 i( ?
(if (= dialog-state 1)
( p2 K1 A z' e: Y2 I (modify_line)5 _8 B% k- X. a! Q1 b0 i% N d
)
. h$ y6 W! `; a2 |2 X$ m )
% J3 z' _+ z. i" ~, p- ^/ s ;;
, ? v0 J& j5 e. C/ k/ o' D ;; Modify MLine
, W7 {6 x6 p, F4 L ;;8 m) m8 |( j& z$ L' I9 D; P
(defun modify_mline ()
) |$ E6 q1 c e& f6 y (modify_properties)
6 e4 S" \# |! \( V4 F (entmod elist)3 [3 i, L: i4 F( A! _4 U
)/ R+ s( L2 O. v6 B
(defun ddmline ()
) m$ | s/ e* l: F (if (not (new_dialog "ddmline" dcl_id)) (exit))
; I# Q _& v! M9 w ;; Set initial tile values- Y8 h7 l0 N" |; n* F
(set_tile_props)
/ {% U$ Q- _5 Z* v+ C (set_tile_handle)8 k3 u$ I$ d8 K3 l% O
;; Set mline style text field.
# w+ W' O( P/ m+ h1 ?/ { (set_tile "ml_style" (cdr (assoc '2 elist)))
0 t+ Q4 s& [. K
- K* k) I& v5 H* Y8 B3 Z ;; Define action for tiles
/ c/ z5 E- Y0 |+ j (set_action_tiles)& u* ?# \6 v5 B: o
(action_tile "ml_edit" "(done_dialog 3)")0 C8 h; _6 I g: w
(setq dialog-state (start_dialog))
0 X3 v7 R1 p! u0 \( P1 L8 j7 w ;; Dialog cancelled, reset to original values.: A" M% |* q- n/ Y, g. D' L
(if (= dialog-state 0)" _# W& Y" u3 z9 U7 r
(reset)5 j: t" a* }, n0 Y
). ^; l2 l/ o0 j y
;; Dialog OKed, update the mline.
: k. X5 W5 T' {1 Q) Z (if (= dialog-state 1)
- ^" ]- T. \; }. s3 q7 @ (modify_mline)4 ]5 t" W l7 j/ }
)2 B! j1 T+ s" Z1 W. O A
;; Edit Mline, call MLEDIT.
3 y3 x4 n) v' _# b( t" R (if (= dialog-state 3)
4 i6 r: o4 { M/ e/ U, a (progn. ~6 s7 P; K. q- @
(modify_mline)' {, @ }; R/ M k- k T% V
(command "_mledit")6 k6 r6 m2 ~: O: Q! \
(ddmline)
6 v1 F1 G( M* t' J6 F )
# d M. Z+ q& W) j: z2 D )5 P: E* `- T7 F; ?: L
)2 o8 w. z6 O1 V$ r
;;" K4 c! S1 H9 O$ K4 E" { C; W) r
;; Modify Xline
; A' v" {$ R! o0 f. J) Z/ I ;;
3 I, T% u @1 ?% I7 w2 a (defun modify_xline (flag)
' A) E( ~1 q, q5 V- E2 [$ ~ (modify_prop_geom)
9 l6 C" B- P# E( U7 W4 L (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))# ^* |+ R1 G3 ^: ~( [2 V D$ c
(setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
/ y9 a+ G& \2 ]7 a ;; Update the Root point." `. Q7 @1 N3 _) C% a& J3 x1 E
(setq elist (subst (cons 10 (trans xline_pt1 1 0))
+ T& k/ A- h' [" ?! u (assoc 10 elist)
( M; ~ L* ?- V+ r5 |+ f elist
; [4 M, a8 J. }. F* @0 f, [, z )
' L. t/ I0 j3 D1 Q )
/ i; w0 V* J. @* ^. w/ w ;;
$ `; f7 q: G* `# [ ;; Calculate new Direction Vector WCS
5 F' A$ q# U3 H& c# k. k- |$ w! J& k ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
$ F! M5 a7 Q8 N7 a$ b" G1 Z, i9 m1 ?3 l, Z0 ?
(setq temp_dir (trans xline_pt2 1 0))
U. S. j' W4 k (setq temp_dir_x (car temp_dir))" |' t& f! v- e- l; d5 ~
(setq temp_dir_y (cadr temp_dir))
9 A9 b9 o; D5 t. M8 Z( a (setq temp_dir_z (caddr temp_dir))6 _( J- \) ^/ X! ~' n! _
+ c2 P7 l. ]6 k5 Q* W8 l (setq temp_xline_pt1 (trans xline_pt1 1 0))
( p; e$ A" m$ S* N' o, W6 D (setq temp_xline_x1 (car temp_xline_pt1))
2 L+ ^2 t4 b+ _ z( i: b (setq temp_xline_y1 (cadr temp_xline_pt1))( G; q/ R& v$ z* I# n, |
(setq temp_xline_z1 (caddr temp_xline_pt1))
6 D' B# T' F( R2 U* V2 k; t. i+ U( O0 i2 P) G1 t' x4 d0 v! V
(setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2): p3 P2 E4 X; H% ^+ p
(expt (- temp_dir_y temp_xline_y1) 2)
* z3 ^0 ]& g9 M; A4 g, S (expt (- temp_dir_z temp_xline_z1) 2). F1 I# n4 k8 W5 Q- w
)))
/ Q: u- O! A p" x& i (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
6 X; Z5 B1 Y6 k( ^ (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom)): P2 o. Q6 s4 ^8 l3 c0 p" f; e
(setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))' h0 U- ?! e; J7 o* _. c4 k
(setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))& @2 J. O. k0 ^, ?. [7 F" `
(assoc 11 elist)
4 B: F$ o0 z! a* x& K: E: ]! ~ elist
D! M5 m) V6 i3 r2 @* I )
9 [4 D2 B) x0 N, o) g, x )
1 d; `4 @, Y+ d (if (= 1 flag)
' a' n& }3 T7 h8 b (entmod elist)
; d# m! H* J* B) x* ]6 x$ | ). ^; `. U y2 S2 `8 w8 S
)
& m( M' Z6 o# G$ b
- v4 l( N# b8 w3 W4 ` (defun ddxline ()
K8 A; f! Q. e (if (= etype "XLINE")
) G, {* q9 ?% N0 u (if (not (new_dialog "ddxline" dcl_id)) (exit))3 p8 [, R3 B3 X1 T$ ^" M
(if (not (new_dialog "ddray" dcl_id)) (exit))
1 {' L' Z; F, [. L- J! N0 z3 x )2 D- c4 D, X$ V- ]% S, Z3 V8 F
;; Set initial tile values4 @! r2 O9 e( G0 Q9 I
(set_tile_props)
d3 z/ h( q; h, ?7 s8 P( D) i. C (set_tile_handle) F6 T4 L9 P0 Q1 e! X# m7 K$ ?9 t
(set_tile_xline_pt1)
% ^" t3 A6 R; H6 `0 H ;; Convert to UCS and post Direction vector.
; Q; g3 c2 u; N N (set_tile_dirv)
! r0 r/ z8 ]8 H4 B" e ;; Calculate second point by adding Root Point + Direction Vector.
* t1 Y& g* N; r* Y% \ (set_tile_xline_pt2)
: N' D% ~% S$ N" t0 k5 Z) s h ;; Define action for tiles1 w) r6 t! |, T, Q$ j" e" o: q
(set_action_tiles)
1 q6 d/ ]& ^' J- }" }/ q, p (setq dialog-state (start_dialog))* |1 N* b; U( a( e; J; q
(if (= dialog-state 0)
4 D4 [* S+ m v (reset)8 n* {: B. V: R2 x3 H$ Z
)+ d+ L: v4 P: Y: ~! A
(if (= dialog-state 3)
9 `5 {$ A% y0 d% k+ ` (progn9 F7 W$ P7 P* X3 D
(modify_xline 1)# V6 B. c/ p3 G5 _6 I3 ~ m
(while (equal xline_pt2/ n M, K) M: [4 w
(setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
: e) o& n* l! U: O+ T5 p: X (princ "The Root point cannot equal the Second point.")! o" k$ C* A6 m- T3 |
)
" o! D7 k6 R! b: {0 | (ver_xline_pt1), [- K6 Y/ C4 I; M0 d* A
(ver_xline_pt2)
2 L, ^' ?' F6 K& [) ]. w(princ)4 i7 d- o& n- a" t' G
(ddxline)) h# w: ^! T* h7 V# ]4 S6 B
)& w; [5 }& y5 [$ b' v9 g7 s
)
: H; G5 }& U8 P5 M* f (if (= dialog-state 4)
9 D: P( \; Y! Y K (progn: C! k- f9 F: f. t3 v" H
(modify_xline 1)
" n1 ]5 n' v. f+ ` (while (equal xline_pt1+ l% S" [+ V0 X7 `% {% D; p2 u
(setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)6 ]9 A7 o. g' N/ g% C3 c
(princ "The Second point cannot equal the Root point.")8 G) E7 x- V( }' v, V
)+ }9 v) u6 ^1 u9 n* B9 E9 F2 k6 y
(ver_xline_pt2)
9 h- h& y7 j% [(princ)& t' V; b3 k7 u5 c) v3 e# w
(ddxline). z+ ~+ G0 X, {/ G) q7 y* F! r. u
)
0 J7 z- j' q, u. ]5 [0 Y )2 J' F9 l1 W4 R% W
(if (= dialog-state 1)
$ Z5 A3 @6 ~9 }. x1 ?9 G0 P (modify_xline 1)) b, n# O, d& m. u, [% M3 M% s
)
( h6 n. c4 D( C( @6 t7 g2 b' [3 T )
0 L7 E4 L. ~% a0 z% U ;;/ w" O# _+ r# ^' k) |( f
;; Modify ELLIPSE
+ z2 }2 ]3 C* Q, e3 x t9 k- u* U ;;
3 O) M. \) e: X4 N) _2 }$ b (defun modify_ellipse ()
1 r) N7 a" M) C ? e (modify_prop_geom), |; A. A5 ^) V- {% ?: m2 d' }+ s. i
;; Update Ellipse Center Point value.4 c- y/ r5 y+ |) h6 C; E% O8 r) {, b% z
(setq pt1 (list x1 y1 z1))% m9 G6 }- W: D7 ]8 \3 U
(tempmod pt1 10 1)
, F; e, P/ D1 o9 j6 m/ {: M9 E, F ;; Update Start Parameter value.! D, U: a; i+ H$ Q: Y {
(setq y_val (sin st_ang))
- ~; c' U; R( G( f. N/ H# f (setq x_val (* rrat (cos st_ang)))- N7 S: C- H: r/ r) o B
(setq stparm (atan y_val x_val))
, U" l% z& w* F1 X8 i0 [ (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
% |% }+ Y3 E% M6 t4 R ;; Update End Parameter value. Normalize it, if it's less than
i2 d, \/ I! a4 o0 c* W! s ;; the start parameter.' U2 F% s6 d9 f' s4 _: J. q
(setq y_eval (sin end_eang))
$ t' ~5 u" z5 Q (setq x_eval (* rrat (cos end_eang))). X2 p5 j) {- Y
(setq endparm (atan y_eval x_eval))# T4 N2 j' U8 ^$ y8 J. r3 B+ F: S
(setq diffparm (- endparm stparm))
8 M7 ^/ W# |! L) J: ]" @: I9 h ;; Epsilon of 1.0e-6 radians for checking a zero length arc.! o: O; b. K6 g5 y8 `$ K
;; Since zero length arcs are not allowed - construct the full4 B! z) ^4 S8 B* n
;; ellipse in this case.3 Y) ?5 t" m8 R
(if (<= (* diffparm diffparm) 1.0e-12)) }1 v! k/ V! s- t4 j
(setq endparm (+ stparm (* 2 pi)))
$ a( M3 k/ T8 Z$ h! r )
' ^& z3 F" `$ c5 l8 a6 j (if (<= endparm stparm); }3 q% R( x8 y( o; }& ^) f
(setq endparm (+ endparm (* 2 pi)))
% m k4 N/ _$ N6 m0 B ). N( b9 n3 |) J; y
(setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
* b$ s3 D* w9 S9 x. P: X ;; Calculate the Major Axis Vector by first calculating
- {2 Z# Y8 M$ {8 ~3 w7 V ;; a unit vector using the old Major Radius value. Then7 M) E, ]1 \/ Y y2 Y+ O6 i& z
;; Multiplying that by the (possibly) new Major Radius
3 `) @- G2 w! Q9 }+ h0 O ;; value to get the new Major Axis Vector value.2 h' G! q8 n6 R* ]% x/ D5 O
(setq unitxx (/ xx old_majrad))
2 D% Z+ {, C( y* ` (setq unityy (/ yy old_majrad))
& B0 z0 n" v8 ~0 L. B (setq unitzz (/ zz old_majrad))
8 }8 j% l! w9 m (setq newvecxx (* unitxx majrad))
" |7 A/ ^* l6 s; H/ G5 S! ~ (setq newvecyy (* unityy majrad))7 O; E) L. W0 M/ D
(setq newveczz (* unitzz majrad))
; ^4 u6 N) Q& f; S4 S) G. | (setq newmajaxis (list newvecxx newvecyy newveczz))& Q& b% \& b$ r0 }& d2 b
;; Update Major Axis Vector value
& X0 u- ^, g) y& s/ z7 ` (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
: ~0 }! B2 e/ q; u ;; Update Radius Ratio value# y, o% O2 C1 ]
(setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
0 j+ {1 O% H& W9 N7 V* q (entmod elist)
* J% e1 Q2 Y k1 x )
( Y5 c& M9 ?5 r) @- V! R+ t4 w% L. z& d
(defun ddellipse ()
; x+ v8 F$ }& H; p% G (if (not (new_dialog "ddellipse" dcl_id)) (exit))
& d3 K) y+ j, T6 Y7 E6 j ;; Set initial tile values
, a6 ~: y* b! w# Z! L+ h8 t (set_tile_props)# i; `9 S; f) G- ~' C
(set_tile_handle)' `: b, O9 C4 G) Z9 v9 L
(set_tile_pt1 1)
& p$ V+ m! U& W) v4 d. B& l {. K (ell_calc)- d5 N7 D4 y. c( U3 v: Z) m+ J
;; Define action for tiles
: |6 A* Z$ ~- x! D, |7 B$ V6 v! \ (set_action_tiles)
( X2 j$ X% B- R (setq dialog-state (start_dialog))
3 s& s$ T0 m1 H; A (if (= dialog-state 0)! N9 y7 N: `4 n" F; d* X8 o
(reset)
, c+ D9 ^2 T& Q )
5 W; P8 Q, Y: f (if (= dialog-state 1)! s5 Q' v9 `9 N; D8 b) V. I
(modify_ellipse)
' @2 I( ~" a+ V- w0 m )5 m7 D$ h0 G$ x/ Y8 R9 [7 G
(if (= dialog-state 3); s2 \, |6 o, f A
(progn
4 v. {; g% o7 }7 F6 L (modify_ellipse)) K9 Y- p0 q9 F8 }5 _* c
(setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
3 K+ B1 A" E' T( R% ` (ver_pt1 1)
% l! l$ S0 g) r( H3 ~ (ddellipse)
; }8 M5 u) p, {4 I: x$ L )% J9 B6 H7 r) R, q
)* b- q) w- Z# c$ D- f. v Q* r: V
). }# _+ K: u# R, ]4 {) {
;;
+ ]: Z* d+ s+ L0 @. `1 L ;; Modify REGION
' {& R/ k: ]2 l& c3 a- _) {4 R/ L8 u ;;
/ k, u, x- y/ y9 I* E8 i: \. t (defun modify_region ()
% t+ a9 Z; D& T, g) J6 e+ L6 x+ c (modify_prop_geom)2 o$ C% V+ S% N: M: @) y/ A3 p2 {
(entmod elist)
. [' W! ]4 Y0 i* D% J$ F* b )
2 [5 ^4 k, y6 d6 n0 ~# c* v# ?8 |3 A! z' B8 ?% H
(defun ddregion ()
7 m+ @6 B! I) B% U# F (if (not (new_dialog "ddregion" dcl_id)) (exit))
5 Z ~$ u4 i: S5 Y' v ;; Set initial tile values$ I6 }4 e/ x* F6 b" J9 T. s
(set_tile_props)
& o9 b. U7 H2 u& X (set_tile_handle)
' u4 A2 `9 ^8 S( |/ {0 e) Z L7 `5 k ;; Define action for tiles9 O# V( b6 x* G: F7 X( z/ \7 j
(set_action_tiles)
- f- M- ^' ^% Q& t# k (setq dialog-state (start_dialog))6 ?* a7 D. W. a0 x! e
(if (= dialog-state 0) v4 n0 h T1 M" i; C& ^/ t5 n2 w6 L
(reset)$ X$ X4 G( g' O) e" r
)0 s: l- F2 } S% |6 |
(if (= dialog-state 1)
3 O* b" X. E. r! p: E: i# f5 J. W2 s (modify_region), r$ o& b. \# E: w: q& d, u
)
' I1 v2 s; u6 O9 Y% S )
# X, Z% E1 b2 V: A! c ;;
0 U* ?! _6 r& n' M6 R ;; Modify 3DSOLID$ i' Q& Y8 _( b0 ^* [" _
;;8 m }! E- p; t6 r
(defun modify_3dsolid ()! z; ~3 d: \. A n1 d" F
(modify_prop_geom)
/ K! C6 A! F2 w. p (entmod elist)
- t$ l/ m, H2 ] V( z5 v$ @ )1 b; w, b$ J# k6 I4 s" t
' p9 ~2 U; H. q: ^. m1 F9 t (defun dd3dsolid ()8 d% g x0 Q. d" F. N
(if (not (new_dialog "dd3dsolid" dcl_id)) (exit)); e3 Z* w4 S+ G5 A
;; Set initial tile values
# m6 {9 v- H& s9 { (set_tile_props)$ M9 V. ^9 b- ~1 j3 k) c
(set_tile_handle)
/ `4 |: O7 y* @ ;; Define action for tiles% }- m( V) ?, ?% z
(set_action_tiles)+ j V6 n9 b7 ?2 q6 l/ e! a+ T9 O
(setq dialog-state (start_dialog)); G* @. P) L; }- }8 S+ Z: \- E
(if (= dialog-state 0)
- P- }0 U% B& x (reset)
& ^" I6 Y/ j# ^9 {+ {, o( S )
$ @, G3 P4 d$ s7 c (if (= dialog-state 1)
( h2 \+ G; q, M5 u- H7 n (modify_3dsolid)5 M4 @+ L5 u( f# T8 Q0 Z
)
" e; N/ x! @" N5 Q5 \" i )$ {2 ?% Q9 ^+ ^# H3 e: ]
;;" ]" P; Y8 L! s' m+ ~! ]
;; Modify AcDbHatch
6 E( c: N" g1 c. j! s ;;/ y w% r- P; n
(defun modify_hatch ()
1 A+ C# ]# Q9 V& r( R$ c3 z$ o9 y (modify_prop_geom)( r) l" d% E. y1 m$ n7 |
(entmod elist)
7 j" w. N2 }3 u5 d, _8 ]$ c )8 [% N3 E7 j ^ p0 P U" R
' C, d3 C& Y4 G1 W% B (defun ddnewhatch ()
0 K# ]1 l5 Z- ~0 V5 \; g: J (if (equal hatch-elist nil)
2 k% P7 q" M6 F# k1 c. b4 Y) D (setq hatch-elist old-elist)% Y6 w5 x% y, }8 U+ V2 o1 O6 u" A
)
% S) ^, W* ^: D1 }2 E; o+ k; o4 D/ [
(if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
- H. n/ ^5 _+ ?5 g: T8 }# D* N1 b* ^! S) ^/ \/ w! `7 J
;; disable the thickness tile
: n' H7 O9 x; q- E2 Q/ o7 R R" | (mode_tile "eb_thickness" 1)
1 g' ~+ o' Y6 _ (mode_tile "e_thickness" 1)
" I" K$ K& E6 W1 K2 y7 O1 X) ?: N+ r3 r' G' v1 A
(setq help_entry "modify_associative_hatch_dialog")
! \' O' ]9 ]! R; z: f+ ? (set_tile_props)
' U; m6 I; Z; F7 R! E2 _) H (set_tile_handle)
$ K' u# s8 P4 o/ [1 e% B* q2 q X* o# [! Q
;; Define action for tiles w2 N3 z# q& [7 x- h2 q
(set_action_tiles)
# @" r* s: O" z: }$ X4 O2 A/ T; d# O (action_tile "b_hatch" "(done_dialog 2)")
, i+ ` N; I7 D (setq dialog-state (start_dialog))2 j/ E% L, g$ O$ b9 D) \
(cond
' k" d0 M- u+ i1 @8 Y x ( (eq dialog-state 0)3 a' v) m7 w8 r! f4 S) W
(setq old-elist hatch-elist)
5 P: P/ ^' h6 Y (setq hatch-elist nil)
4 r! J# Z/ U! m( A& c9 n& ^4 w (if (= (checkforlockedlayer ename) nil)
! F3 ^0 o( x7 X5 M+ y (reset)7 H% Z2 j3 @. Q0 a
(progn ;;; special handling for locked layer reset [4 Q) ^4 K O1 `. t! ~/ p) ~5 T
;; unlock the layer1 K+ `# s' }- L1 S
(setq layername (cdr (assoc 8 (cdr (entget ename)))))
: M! K1 A) e( T$ g1 P (command "_.-LAYER" "_Unlock" layername "")9 T* H' \4 `6 i- t5 \ l/ M
;; reset modifiction! p" q0 @$ V# \4 y e4 D( l' z
(reset)
( T) S& [; w* r+ |. Z' W ;; lock the layer again
) e: X% \! m; Q, B, A' n4 u. A (command "_.-LAYER" "_Lock" layername "")7 {: N* [5 F8 o: _
)5 E3 W2 d. ^1 ^( f$ i
)
+ [ `' |. }# [. o& R1 `2 r9 O nil ;;; makes (ddnewhatch) return nil for Cancel+ J: U9 C6 C4 A' Z" g; n& q* L
)
6 K# ]2 ^8 n& Q" Y- B3 B, \) h ( (eq dialog-state 1). ]) C' }# h. p6 b, o4 g! n6 f0 G
(setq hatch-elist nil)- o- {9 H' f# E+ y
(modify_hatch)
+ M6 N1 G& D8 U! E1 @% ] m T ;;; makes (ddnewhatch) return T for Ok5 Q2 K0 k* q |5 Z, V+ U
), r5 N/ t- M r1 m) ?5 M
( (eq dialog-state 2)
* S, i# a; ^& w- U! z; \" o2 D7 V, P$ t1 E6 f. q
(if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
0 H: S1 N! W5 v: P& B f 46 X7 S0 ?: {) W
) 4 U/ o& G! o/ s
;;; new selected layer is on a locked layer
% G5 Q7 `' n* P$ D+ ]3 d; @ ;;; we can simply modify the hatch properties
" J6 {2 i( i8 O& ]. [ (modify_hatch)7 s# H4 M$ F5 p0 w# x
(progn, s2 G( s" z, e4 t$ ^$ M
(if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))/ ^# _0 \. E% Z% W+ e
4
' @( ^" j, a( U- r5 C. M5 k1 P ) + W5 N( U. k8 C8 \4 w
;;; We changed the layer previously and now the hatch lies on a locked layer.8 Z5 q# B5 ^# F: K3 }
;;; We have to unlock the layer forethat we can update the hatch properties.$ W: k6 V: R5 S3 Z% }
;;; If we don't do that (entmod) fails to update to the new layer.! x: B @5 h5 e6 e
(progn
! A- c( E+ I3 n- F (setq layername (cdr (assoc 8 (cdr elist)))), ]3 g1 u' i' C/ h( s
(command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
# w8 A- Y# ?3 J (modify_hatch) ;;; update the properties
1 k: O8 |3 @- a, b }! l6 @4 Q; J (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
8 A# n, R4 U1 D0 a% J )
) }; m, A1 @: }2 _) A* W3 g; ^8 B ;;; All other cases we simply update the properties
; D G1 I3 q" e9 l2 ^! m% a, w( d0 `, v! s (modify_hatch)' ]0 v: y- U3 H: O/ W) G2 ^0 k+ R' C* T$ p
)
! _1 h% l! m. s* O" ~" | )
. Y4 l. d8 z) p ) , n O: n9 z5 `1 y2 r) R Y
(if (= (checkforlockedlayer ename) nil)
9 c% |- Z6 U' \3 m* v (command "_hatchedit" ename)- j1 \, `2 b5 N1 o+ |; E6 n% T7 c$ R9 X
(alert ;|MSG111|;"The hatch object is on a locked layer.")4 g: P5 K4 |0 D
)
2 K" K2 q1 V9 X3 c! h9 ?) t6 z (ddmodify ename)
5 Q' |* `/ P+ G6 h9 [2 V )4 q* u7 f U+ \8 v- B( Y# z
)
# o* w, H1 _: \3 i )
1 ?( M8 @: S9 L( I4 m2 d9 c: O" n ;;
) s( s0 I, o3 | i' t, W0 _ ;; Modify BODY! S$ t, P" \& ~0 g6 ~
;;
0 }1 ~& |6 w; ?5 n# _7 e5 f0 d9 J+ t (defun modify_body ()
3 ~) \) G( }9 t8 G; C (modify_prop_geom)* S/ M# u, l: r6 F) {- b+ P* d
(entmod elist)
4 b; S" L+ ?& q" i$ f- d )& S( b# s+ N9 Y9 `4 G
1 n, z4 U* \# S- r (defun ddbody ()
8 o E9 j4 A% q0 h (if (not (new_dialog "ddbody" dcl_id)) (exit))6 M$ ?, c* b+ L1 m5 f
;; Set initial tile values9 ?* U' g; w; E8 \
(set_tile_props)
- }7 M+ t- Q# [/ {' {7 H. ^ (set_tile_handle)8 L& V" ~- c8 {' ^' A, q, U4 D
;; Define action for tiles
2 j3 u3 D: m. E, w" `- @ (set_action_tiles)
( c8 \% z! g+ M- _- ^6 X9 R (setq dialog-state (start_dialog)); z1 b- u" ^# c" d4 v* b
(if (= dialog-state 0)
/ s7 O7 k- I. a* ^; F1 A (reset)
; N5 r" n3 |2 R6 o5 M )$ o7 x9 y; P+ t% W+ Z* v; t
(if (= dialog-state 1)
! N: d* q! O& N6 O0 b, P D (modify_body)
) ]8 @5 A0 i! y, E9 [% p, m ), ~+ d4 L x Q* E
)4 o6 U1 s! I# c8 i$ U7 x
;;
. `/ c8 m) h( F0 e) c ;; Modify CIRCLE3 O" l1 _( Q4 B
;;: w8 X% s% L. [' u
(defun modify_circle (); F+ X- b8 l5 {6 r8 ]- G
(modify_properties)
* a8 d* m5 Z, `" E8 a. q (setq pt1 (list x1 y1 z1))
/ X( @- o" p7 X% k+ ^7 [: _ (tempmod pt1 10 1)
3 D: Z/ E% I/ I9 c (tempmod radius 40 nil)
! Z* T6 h3 r+ ?4 l- b6 g (entmod elist)
/ k) A* B& t0 w. ^* P* w )
( m5 G4 \% w3 p
& F+ p, a: a2 y! n; Z' C1 U& a (defun ddcircle ()
6 J) q( a# ]: q (if (not (new_dialog "ddcircle" dcl_id)) (exit))9 I4 ^* t |' X; t4 T6 N
;; Set initial tile values
/ M5 i1 H8 L6 s, j4 j* T (set_tile_props)
1 N. `6 c h+ K+ y; s9 X2 k (set_tile_handle)
7 h0 f" l3 t4 D (set_tile_pt1 1)7 x4 U3 R" s! H/ U) L9 o0 E
(set_tile_rad)
8 ]5 S2 k7 ? M0 V" P. V! n (cir_calc)
6 W8 T h, a. h+ m) g ;; Define action for tiles' i2 [# s6 z7 A. S
(set_action_tiles)0 r" f7 v2 T# Z+ O7 L
(set_tile_pt1 1)9 t- N5 K, P1 d, X( l. u
(setq dialog-state (start_dialog))
* j6 E- w+ G( _ (if (= dialog-state 0)& A; R/ A1 Z8 R# Z
(reset)) m9 s7 n) @2 a3 T# y
)7 x0 ^* |: P: D+ L9 J
(if (= dialog-state 1)
( ?0 W9 m+ m4 D4 t+ O! b& ?$ n (modify_circle)
1 r6 N3 d/ O5 t; `1 n% z1 [ )
- Z \) M$ b9 _% B8 m, e8 S (if (= dialog-state 3)
7 S' h4 ]# J# }! R$ o) } (progn
0 C w9 N6 \& E p( J (modify_circle)% w2 l4 A) E7 M8 U0 B" i
(setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))' U* Q# F* Z+ ]; X
(ver_pt1 1)
: Q2 o* n w* O, {$ A (ddcircle)
8 n6 `+ A4 N0 O t, W5 G )0 }+ y; K' c2 U) ~2 w
)
L- r( g: V, R% Z' ` )
5 Y# J+ m# [7 J( r9 s ;;
+ e. v2 S. c& ^( V- ^' l, l ;; Modify ARC! Q0 }5 _4 ?8 A: C
;;
; _( @" d4 i+ r (defun modify_arc ()! p5 @& f! k) h
(modify_properties)
: l1 H! [/ U# d6 C (setq pt1 (list x1 y1 z1))
* L1 u, N& U5 D& r (tempmod pt1 10 1)2 N2 U% U5 D7 @) q
(tempmod radius 40 nil)
% B9 O1 q4 w6 q (tempmod st_ang 50 nil)
1 j; q9 x7 x' A0 S; b; V6 e (tempmod end_ang 51 nil)
+ Q4 x- @$ T% x& C$ e! Y( y (entmod elist)
x2 Z6 T8 {/ ~1 K/ L; r: i )7 w1 R8 C# k' I7 ]) N3 s% |
(defun ddarc ()9 ]; p# T5 m5 L2 J+ p' @8 B
(if (not (new_dialog "ddarc" dcl_id)) (exit))' k% i% L" W# w
;; Set initial tile values6 r: L/ v. w# u
(set_tile_props)2 ^) d$ r: F; P- h) G
(set_tile_handle)) T: {& L" x1 P5 T6 w$ H- d
(set_tile_pt1 1)' Z. \4 V p7 |4 N( n9 @
(set_tile_rad)
2 t! P6 n* F2 X/ h (set_tile_stang)1 ]; Q% B0 H0 }: p
(set_tile_endang)( ^$ I/ M+ b* {2 w G7 `4 I
(arc_calc)
; k! z! P9 f9 T+ ` ;; Define action for tiles
. @6 p5 o: k# {! G7 F# I1 N (set_action_tiles)
" a4 J/ h8 u; l- J: o* P/ x (setq dialog-state (start_dialog))0 b) n* W! |) Y( h4 V+ z
(if (= dialog-state 0)
, ^4 N% `6 {6 E) G4 n" S6 L (reset)& D: E4 W$ ]- [( g* o5 h
)! y. c9 D$ r4 _; b
(if (= dialog-state 1)9 s8 U Y7 D! Z% r# r* g. X
(modify_arc)
. G6 E- s0 P. ~/ ? )
1 v ]+ Y }+ o, ~4 I3 J, L, @ (if (= dialog-state 3)
) }6 h# e& r; m' p3 b (progn
/ u* M- y0 H0 A (modify_arc)
4 u) h- L, S' | (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
3 B, q/ Y& k3 L (ver_pt1 1)+ O3 d) A: ?% k& W5 D! F$ e
(ddarc)7 i; j% N/ E% B) j
)
9 `3 K$ G& a) H6 h ) J3 [' a- a' g- R l% ?
)
& s3 {9 W( {1 |- x" [ ;;
& y1 h0 }" u; e ;; Modify SOLID or TRACE
5 u1 l1 x0 x; U/ \ ;; Note the Z value of the object is determined by the Z value of the fourth
3 M3 l3 j$ o/ A' [; a, O$ z ;; point - code 13. Changing the point values of a solid or trace from a UCS3 D, C: ~) F# P: k# g1 x
;; that is nonplanar to the UCS the object was created may confuse the user.6 ]( u- v0 i2 b0 V/ O
(defun modify_solid ()
) l% q) ^# \4 O) r8 O6 g/ F (modify_properties)
! z/ u `9 L5 x# I6 E! { (setq pt1 (list x1 y1 z4))4 L( k' J( _9 E+ _: A! z9 K( ]
(setq pt2 (list x2 y2 z4))
, n; i: X3 F* W4 n/ P! [ (setq pt3 (list x3 y3 z4))- s8 E" u: k+ Y
(setq pt4 (list x4 y4 z4))6 p- O. K2 F' m q( s
(tempmod pt1 10 1)
2 T- o! h; I) s (tempmod pt2 11 1)
& q3 `) I1 s- H9 k7 {: i! M (tempmod pt3 12 1)+ L k* s$ h7 L v
(tempmod pt4 13 1)- m; v, C# d3 G0 _- Z
(entmod elist)& t: D1 e- ^0 A; A5 n, x
)
5 M. i9 e# V, k }* H8 S# k W4 D4 z' x, \$ a8 P2 @
(defun ddsolid ()
# Y4 | V' ?2 A$ Q8 z3 b4 V (if (= etype "SOLID")
4 K0 V& w2 r& Q7 q- y' S* u (if (not (new_dialog "ddsolid" dcl_id)) (exit))7 d8 M/ f' y( L0 }5 j
(if (not (new_dialog "ddtrace" dcl_id)) (exit))7 u) l; u- z2 ]
); ~. m5 e6 S/ V6 ~. P' G: E
;; Set initial tile values1 W9 k' g! u( b1 @# Q+ p; h1 L
(set_tile_props)
. P! c5 N: D }; A& J0 [% P (set_tile_handle)- j, ^6 X$ g o
(set_tile_pt1 1)
! {3 n, J- z' D6 b8 B. i/ } (set_tile_pt2 1)
* q$ C* E0 s6 v' f (set_tile_pt3 1)
2 s& K0 A8 k5 E, Q4 @ (set_tile_pt4 1)( b9 V" ]& L2 u
;; Define action for tiles4 l, ~) O, W3 `7 q5 p/ C
(set_action_tiles)
- D2 L! M0 n) H. Z( R" ^8 i8 k9 Y (setq dialog-state (start_dialog))" ?" I1 i* |3 l7 j) Q$ k
(if (= dialog-state 0)$ ?! u3 a. |! O
(reset)
/ F- g2 L* Q8 {3 t* p" `& k )
; P' g# s, p7 Q y (if (= dialog-state 1)2 i! S% f9 F$ ], b
(modify_solid)( a7 i) ~. P4 @2 L& a2 R+ x
)6 f9 B4 I$ d9 q( c/ N
(if (= dialog-state 3) u/ v; c% k n2 U: z: {/ s
(progn
9 V) R2 A& p' _) @% p6 U (modify_solid)
. x9 X% E% V/ r* q (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: ")), [8 x6 k2 [: k9 d" |' R
(ver_pt1 1): G1 N9 T5 T C$ @
(ddsolid)
$ I7 H5 G: c& p )/ U" a3 o) m. w: T; F3 y
)1 I8 N5 m& Q. T4 g
(if (= dialog-state 4)
: E* O- }3 K# Q9 { (progn7 b2 D2 p9 |# O. T/ s* q, H
(modify_solid)
/ K, |; A/ o1 i2 L (entmod elist)
/ ?! h N" @- m3 Z; J0 |. I (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))6 }- P" r. C5 H5 \
(ver_pt2 1)# X7 U7 t/ i5 M, y' x0 V7 }
(ddsolid)% ~+ x9 o6 W7 A* }% C/ Z: T
)
' C7 r' r% P0 [: ` )
0 L7 K$ ^( K T6 A (if (= dialog-state 5)
7 }6 n V' H* T* N0 } (progn
6 \$ h/ c. f" M. o+ R, i7 r% y3 H (modify_solid)
2 Z& N3 S1 F' m" ~$ @ (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
+ m+ x" p6 }; L7 O" R7 [ (ver_pt3 1): U# N, v2 [7 F! |$ p/ n" y
(ddsolid)
4 J& |; D: g* M0 [ )
* v6 m" \ d' u; [+ n0 m6 } )
0 S+ y+ J. f1 h2 U# k3 h (if (= dialog-state 6)7 D+ h4 t/ X8 b/ h6 T5 L7 a
(progn
. k' ^9 t0 q7 o( j- z (modify_solid)% k# Q3 @2 E+ d! D9 |
(setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
, }' r2 |/ C* A; ]$ n2 ]+ H- M (ver_pt4 1)" i9 S5 ?& ?1 ~( i
(ddsolid)
6 E) C$ u$ C" |1 _ )
' x' b' H! x3 n# z ), e" d/ ?' t3 Y) ]$ A
)
* A* ]$ X8 p. i, h3 U ;;
m) _/ c( }' C2 N$ f, E: U1 l ;; Modify 3DFACE- e, f7 w2 e! b: m# V6 U. A
;;/ H: N/ U; @+ H& K+ X) Z0 \3 j: \2 w
;; Check visibility of edges
% h( \* k: Z2 }$ d ;;0 n! Y( L3 h4 z& o+ U/ ^
(defun edgetest (/ bit1 bit2 bit3 bit4)2 c) B) x( ~! E0 _. v5 L9 g
(if (= edge1 "1") (setq bit1 0) (setq bit1 1))
7 S! t# H! G/ {) [ (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
* i5 ]( {' Y" `5 D5 o' m9 g (if (= edge3 "1") (setq bit3 0) (setq bit3 4))' v2 ~9 V$ Q6 @! X$ |& _+ g
(if (= edge4 "1") (setq bit4 0) (setq bit4 8))
1 W, t2 w k5 u8 L/ L- U (+ bit1 bit2 bit3 bit4)
; X* k0 ^$ A% |$ j9 F- @ )9 Q" ]/ h( Z; b1 h( f6 H
w' E4 Y# F7 y! Q$ c (defun modify_3dface ()
5 h( d/ M# Y0 U (modify_properties)( }: S" U2 `# H6 P$ n, U% B5 Z
(setq pt1 (list x1 y1 z1))$ [8 _ L4 b- @8 l
(setq pt2 (list x2 y2 z2)). v- o& O4 L" w6 u. C( D6 p
(setq pt3 (list x3 y3 z3))
3 E" e/ i3 m& H1 g (setq pt4 (list x4 y4 z4))' f; Q5 @* V* }! K0 K
(tempmod pt1 10 0). N* p: ~/ y/ i# v
(tempmod pt2 11 0). D/ r- ?3 ^( u, b5 o
(tempmod pt3 12 0)9 C! f! x) ?5 M7 W5 k& |: ~7 Y f. B- s
(tempmod pt4 13 0)
( Y, h: H2 q' `, h9 C* S% ?" _ p5 Z (tempmod (edgetest) 70 nil)+ O! @" X! Q+ C8 s
(entmod elist)# V( N2 n8 g: q' D, e8 D; Q i
)$ X2 M% w& Y |7 W1 A5 \, L
0 C3 h9 e: R4 |3 U
(defun dd3dface ()
7 e) F" p# p8 `; y7 N1 F (if (not (new_dialog "dd3dface" dcl_id)) (exit))! h; O6 N8 \" S: l: C z4 E3 W- Z
(set_tile_props)$ d6 p" w2 v: S* m
(set_tile_handle)
, k0 O$ }& D, G1 p (set_tile_pt1 0)( t. |# f* ?6 k, Q: \4 K
(set_tile_pt2 0)& k: a) x/ N4 S# L) Y1 r2 t1 g/ F
(set_tile_pt3 0)
T" l! _, g8 Y0 E (set_tile_pt4 0)# L1 D* Y) N! t! u3 H' ?
(set_tile_edges)5 v% z" p: a' [) [ M/ I. w
;; Define action for tiles) I( P! {( q; _' V3 M3 t( j
(set_action_tiles)0 f A+ ]: B( e: J
(setq dialog-state (start_dialog))
1 R4 B2 C: ^3 k1 ~6 e- j (if (= dialog-state 0)
' V$ H# G/ w" s* v+ @! R (reset)0 Y1 A( O5 B( Z; e( j- d
)
; S* d4 y7 v& b* S; e' r (if (= dialog-state 1)
( Z0 x$ ~( `3 z, V" F (modify_3dface): @( p1 i! P ?' i
)4 Z# S! U. H5 o* H
(if (= dialog-state 3)
: u' p% z/ z' f (progn1 s e6 B% O/ u% `
(modify_3dface)
% g+ d1 h! s+ c4 | (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: ")): }, c3 ?4 x) z7 Y
(ver_pt1 0)0 E4 S9 H ?9 N1 E6 L" ]6 d
(dd3dface)5 h9 J5 D1 `; X* q0 |$ e% Q/ J8 N2 {/ s
) r' g9 d0 g# y1 J6 A r6 Y
)
) }. G* U4 P h% c/ I: S (if (= dialog-state 4)" V4 U; n. s) D8 K
(progn
5 J4 C0 v4 Y! P* m# j (modify_3dface)* d4 U: y$ R0 q! m
(setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))( I$ u4 B; |$ Z5 e/ L2 S* V
(ver_pt2 0)
) y3 ~! W7 b, {$ m* \ (dd3dface)2 B5 H4 U( j8 \* j3 X
)& w- c ~6 A$ }0 X2 p5 F6 M' |' c2 G
)
- Q; B1 D2 e- X* _ (if (= dialog-state 5)* {0 J7 |. B/ f: x$ Q. O
(progn
+ m% i& O. C* L% l2 `1 I7 P8 h% g (modify_3dface)
# Z' A7 _/ q& r& l; N# W0 m3 {* v4 z. D0 y (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))8 F# n8 T% ?# I0 Z Z) d
(ver_pt3 0)0 i3 q a6 j0 m
(dd3dface)
% H$ g% w4 O" E2 { j )5 y/ ?: D5 Z4 _: `; ]; T' H: E+ E
) A' m1 h. P2 F: s# q5 f3 q
(if (= dialog-state 6)7 I H9 y% n- K1 ^+ _
(progn
2 c$ q* Z2 c" w/ E7 G% y+ A5 y3 C (modify_3dface)
, S% }2 i/ E, M3 p; p6 g. s: o (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
e) n: }7 w' f/ h/ R* c& v; R8 S (ver_pt4 0)
. k/ G6 a4 Q7 Q (dd3dface). W5 w' h; r, U
)3 Z: x4 i0 _& J* D9 R$ _7 E9 E# b
)# f9 U" J4 y6 ?1 {+ L/ P9 o0 t
)
9 d! F5 [4 E% N r5 O
* _2 S+ W8 H! d* ]2 t+ n. R ;;
2 [9 V* d" a7 A; j ;; Image functions& E9 i: U: J y- w- {8 w0 Q
;;
) J& k. Z+ i; K (defun image_scale (/ upixel en n userscale temp)
7 B& h' z) M1 f q ;; Calculate the size of an image pixel in AutoCAD units
# d L: D; U5 H8 }: W (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))1 d( l2 N" V5 ~0 X2 d* y
& L. c" t: W3 V
;; Retrieve the user scale2 U1 b- f/ v: W$ F& ]0 ~ F& R" ?
(setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))" A0 {- F% s, X/ J# M
! F+ S, v0 n; H: Y9 s! z" _ ;; Next, extract the image units and pixel resolution
: D4 {5 b2 S7 L6 M% R$ q! S (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))2 S5 v- h% Y' @$ \2 m
(setq image:scale (* (cadr (assoc 13 elist)) upixel))
" c$ O8 C9 A$ t6 g3 [+ ^$ Z (progn
2 z* B Q% g7 Z8 s6 _ ;; Convert the user scale to the proper word
1 y. d y) @- |1 R; ^ (setq n (cdr (assoc 72 en)))7 W ]- |3 |4 k7 l& K' \
(setq temp (getvar "LUNITS"))2 S+ v4 U" i$ v2 T- o# p) o8 [+ {
(if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))7 `9 U/ X4 @# ~2 l. \/ l( _
(if (= n 1) (setq userscale "Millimeter"))& Y8 E9 H: {0 N4 O- L
(if (= n 2) (setq userscale "Centimeter"))
0 [' T9 ]* b9 Q2 R5 G5 J M. [ (if (= n 3) (setq userscale "Meter")) \7 m) J& ?1 G8 b/ {3 {# x6 y
(if (= n 4) (setq userscale "Kilometer"))
. [1 Y5 p" m. B' L! z: S3 t (if (= n 5) (setq userscale "Inch"))2 ` f& i7 N, K" ?( X; J
(if (= n 6) (setq userscale "Foot"))$ C. `! s9 u2 J5 K' R1 t Q. P# e2 n
(if (= n 7) (setq userscale "Yard"))
0 A5 u* l. R8 B k& c, l: d (if (= n 8) (setq userscale "Mile"))8 Y: G* l6 V1 B' [. |+ ]
(setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
7 q8 q, o3 y- s. d- v( O. K3 _ )
+ A( i. G2 b' ^, p' j) l/ F0 D: |. b- _ )4 _& [! e$ P5 L5 ~/ l2 _
)0 P. K/ s9 R3 ]5 M1 o" k
( i) B b$ h* a$ l; l0 L$ d0 ^ ;;
3 P. U, B- c8 ]$ S/ L1 D ;; Scale factors for block insertions) i* I4 v0 ]) i1 s
;;" e) J1 w) h8 g1 X/ Y$ F+ s1 i3 \
(defun image_set_tile_scale (/ temp)' J5 ]2 {9 c0 R, v( I
(setq temp (getvar "LUNITS"))
( w; m, ]* S* w( F (setvar "LUNITS" 2); z1 t$ p t$ C& w
(set_tile "xscale" (ai_rtos (* image:scale image:mult)))
' b/ Q. p2 R; D4 B (set_tile "wid" (ai_rtos (* image:width image:mult)))
9 A& ?3 F |1 o* Z2 {$ }2 T (set_tile "hght" (ai_rtos (* image:height image:mult)))
" h2 r2 ~! [5 L1 A. Y: {; U (setvar "LUNITS" temp)
9 D2 H+ x0 v3 t9 E/ f )
2 B" J/ J) S5 t" B4 ~2 |. r
. Q& S `, ?! L/ x1 h) _ ;;
w. b& h7 e. _% g ;; Set the scale, width and height values appropriately.1 }# F6 @4 z* }" u& }! U9 |
;;
1 h4 x9 v' o% p9 i* n (defun image_update (field value / orig_value new_value mult)
7 {& f6 @ q0 w. Q; p9 ^/ T* r (if (= field "xscale") H4 N8 \5 G; p6 Z A' ]* V( _$ V. x
(setq orig_value image:scale)
( o4 H& N& b' E9 [! s7 T: Z )
4 |9 J2 q' M9 I9 o5 Y4 }" h (if (= field "wid")
( P, l% g# a; X/ x. }( `0 R (setq orig_value image:width)' N1 c4 a/ G0 F" W9 Y% f
)
( N8 \4 l% R/ h! u (if (= field "hght")
. q- M% B. c9 @/ c2 m, t (setq orig_value image:height)
& e% l; P! h) ~ )
9 t( g& M0 v. \ (setq new_value (verify_d field value (* image:mult orig_value)))) I, [, G+ O4 N# v
(if (/= new_value old_value): L+ j: P. W5 r4 `% z# T$ [2 r, Y
;; Make sure the user has entered a sufficiently large value9 X5 }& B" j# \
(if new_value' g: u7 s% G! Y8 h( I. R
(progn. ?# u: c5 Q1 [% T, z
(if (< new_value 1e-8)" U$ K% u; d/ w2 k5 n9 ^& F' C, P. E# ]
(setq mult image:mult)/ s8 q! d x% D j' C
(setq mult (/ new_value orig_value))% v6 H% v% X8 @% ^/ N N
)
! W" X& A1 I9 `9 m. h- f5 [+ a; c1 o (setq image:mult mult), N$ F. A- l, v8 q' w6 j
(image_set_tile_scale)
@9 ~; I2 N. i. \* [8 S- y! k ] )
! B6 A4 w' b4 Y2 B )& J3 s3 X1 A o9 Z2 ~* H
)
/ q( } h, Q# M* u( F ). v; L F4 R, U3 f! X: e3 N! S) j6 x
d2 l/ u6 l1 A+ N
(defun image_disp_opt (bit)
2 X4 y9 S8 z2 ~! U, q (setq image:options (Boole 6 image:options bit))4 P. @# d" l, e
)! J S" v/ u# x# G
- V) x4 K3 [% D; o8 l$ D+ | (defun image_modify (): _3 i3 u' a( z! [
(modify_properties)( H" j* V9 m4 T5 c4 U5 H
(setq pt1 (list x1 y1 z1))
5 ?' \! s6 U( e+ a/ W" k8 S% ] (tempmod pt1 10 0)
$ F/ v. D, p5 q8 g6 e4 ~+ @2 r1 { (entmod elist)
5 B, y' O+ c7 Y5 n& L1 e )
; \ ~: O4 p* _9 A7 v5 \# @) Q5 S* x8 A, v* B; G: {
(defun image_clean_variables ()
8 z3 T0 W0 U) s. s ;; Clean up global variables used here9 z% h* v4 H' a' s. p! ?0 R/ G1 H5 p8 d
(setq image:scale nil)' }( y1 r/ g( ?
(setq image:angle nil)! f* q6 b* Y( t, s2 l" v0 {
(setq image:width nil)1 N' B/ K& j4 C
(setq image:height nil): U4 M+ R6 ]$ c: R! f; E
(setq image:options nil)
% L7 i6 ~* Y* m: s" a (setq image:oname nil)* _5 J, Z: A+ w5 ^! }
(setq image:olist nil)
* j2 f- n1 T2 ^9 Y (setq image:mult nil)7 E6 k& b* F7 a" k3 W2 y" A2 _$ a/ G
(setq st_ang nil)
' u# U- u c3 U8 n' S/ {4 K+ B( R" L )
; H9 `* R! x4 T2 Z5 Q+ g& h& ?2 f8 _
" F' I; M8 q, {* L1 f* N (defun image_scale_vector (v1 value)0 B- b+ z9 B; p) L2 V
(list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))9 o+ j' _' r. v/ ?4 D! ]* F
)3 w4 e$ K3 d$ Q2 L
+ K8 S4 }! r! y. O5 v7 B B
(defun image_cross_product (v1 v2 / vx vy vz)
6 u7 X# K. h6 }9 r$ t. @ (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))9 t }) t& g# S3 K4 P8 R4 G$ r# h
(setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
& n2 d8 p& E, l4 Y (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
5 s- V6 A9 o- ~7 O$ W (list vx vy vz)2 r! W' G( B, ~0 u
)+ m4 q4 L: R( v0 Y5 C+ [& F
) p" |+ m- Q; h: R# o' u% n' V (defun image_dot_product (v1 v2)
0 a: S8 k( H+ f& r, K (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))$ q: j4 K* g; O0 q; { F
)
( s9 }4 ~7 T f. S0 z
[5 b. P8 `" T; {) a# F+ i+ Y, q; c (defun image_add_vector (v1 v2)
# B! S- V8 G/ J5 T0 ~ (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
5 Z; P7 ~( E/ ?7 U )
6 p% m+ I; b \- U8 }! f
6 h w0 G* _& N (defun image_subtract_vector (v1 v2)9 |+ S5 g, D% D0 u1 b" ]
(list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))7 b/ D- o, N$ b
)
7 w4 s8 k4 u4 V6 o' a+ ^4 X* @; r" Z) P1 h8 i
(defun image_normalize_vector (v1)! e ^- W5 u4 Q5 l
(image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
2 }6 C* o! H) v )
7 v* e4 B4 R$ M
& o' G) w8 m; P" l0 n (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
2 R$ D! T9 k3 S7 e2 {0 K# K ;; Normalize the axis
) d9 `* a, t% L( P: ?+ b (setq axis (image_normalize_vector axis))
/ G1 }5 k, j% q$ x ] (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))2 o- h- d2 C, ?3 q$ ~
(setq axis_x_in_rot_plane (image_subtract_vector vector along_axis)): P8 G7 Y3 z+ I! s4 i
(setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))4 n& R' u% ?' i
(setq in_rot_plane
( q4 [2 Z' x% }. W1 U; T! F (image_add_vector
! v' i. X& P: B; s) }) S1 Z( R& s3 s (image_scale_vector axis_x_in_rot_plane (cos angle))
( ~1 i* }0 A" Y$ F$ | (image_scale_vector axis_y_in_rot_plane (sin angle))
1 J$ P1 ?) _6 T# ?/ i) r )
1 w5 q( C8 \% ^5 Y+ g )
6 B" I* X' q3 ]3 k& J2 ^ (image_add_vector along_axis in_rot_plane)
8 m4 j2 B& m: V$ X" H )
3 d( R1 F- J2 [8 @9 w
4 ]! k) X8 x$ j+ Y; K ;;
, j+ Z2 z+ U" S$ ^' s ;; Calculate current rotation angle if appropriate.8 s5 Q( T7 k- A R
;; If not, grey out the rotation field.0 p. x& N+ j6 J. X' j
;;5 g* a& |$ U" I" I& p6 V3 ~
(defun image_rotation (/ normal rlength zlength sqrt_tolerance)& B( m8 A7 \% u# S% Y. t7 L
;; Determine if image normal is codirectional with
# @0 T# {" B# D* ?) c( M* F ;; the current UCS Z-vector.
. T7 _8 z _1 q' c1 Y ;;- r: @# z9 N' \' b& h
(setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))4 T( u- m" t; d" Y! @) C
(setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal)))): _, i' } E. C# R! G
(setq zlength (* (last normal) (last normal)))7 X" X4 g* M3 G% A) b1 A
;; Note that the value .0001 in the radians is approximately 0.0057 degrees.# T! j" i+ i4 k3 h# }! \
;;$ a# w4 m$ h0 w) _) [3 r" f9 n
;; cos(.0001)^2) u) }: ~" F5 {/ k X
;; Tolerance = --------------- n% E( _+ e, S; P: Q( S3 |
;; sin(.0001)^2
* M7 e( ]7 j- \, r, z7 H ;;
@2 D! k8 s+ Q' A" r/ a- }2 F2 q (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
+ z5 W. h! v+ F' r (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
3 a: p; H5 N' @5 A) Y; X7 | E1 T (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))! Z1 ^, x1 g0 c0 D* h9 u2 A/ [
(progn
8 K2 `7 X& b" Y) S( C' G. [9 E" e- S# d (mode_tile "st_ang" 1)( s+ N& Q+ }; ~3 S& q
(setq image:angle 0)
* E5 J3 w) M- X )# y# }/ }! t, q4 k( Z! F. y% d' \4 h
)) w, P0 [$ O& E
)
! r: M l, Q$ p. y# ?4 o
2 Q/ \0 A3 p$ X( B' n2 s ;;
* b. W- g Y9 y% M4 h ;; Modify Image
. g" a. s I4 K7 X4 R ;;/ }% E; d1 ?# ?
(defun modify_image (/ u_vector v_vector z_vector)
9 s P5 F) L( }* Z# k' f( {9 Y (modify_properties)
- }7 m2 T* q' J$ Y& p/ S6 g* f (setq pt1 (list x1 y1 z1))- r1 K6 t5 M7 {
(tempmod pt1 10 0)/ j( B/ ?) N' `0 w, M0 G" q
;; Make display option changes to image% N* D% r% w+ ]1 z
(emod image:options 70)
( N$ N9 D2 A7 J ;; Get the u and v vectors
f' Z& A5 b" |. {5 u, p (setq u_vector (cdr (assoc 11 elist)))
. H! s5 d! I# e8 J8 }) F; v7 A (setq v_vector (cdr (assoc 12 elist)))
f4 t' o5 Y) |7 P% N5 U8 \ t' L B3 i5 E" ]; j
;; Make scale changes to the vectors
/ P" U; M" |( J0 j: f( w (if (/= image:mult 1)$ [' X; U0 i2 f0 S$ u& P: U
(progn
" K6 Y! T# k! ]/ v (setq u_vector (image_scale_vector u_vector image:mult)) r! J% P" S& S, G7 e1 Z0 k" N
(setq v_vector (image_scale_vector v_vector image:mult))
+ A# E! h! |! ?; |- V1 l: @ )
# `" ] R4 O) y" g! a7 C )
# T6 |9 T" x6 ]5 T) ~* z3 y! V, L ;; Rotate the vectors; I6 e/ U% a/ z$ J: g7 g- G
(setq st_ang (- st_ang image:angle))
0 y) H! r4 V; e6 z" ` (if (/= st_ang 0); t: P7 T" I, i% H2 F0 X) M2 ~
(progn
- j4 s8 M% y ~3 W; m: h$ A (setq z_vector
8 W6 F0 Z" F2 m (image_cross_product( L+ h( y& Z, l( w" ?
(image_normalize_vector u_vector)
) k# D! R, d0 b( a6 j" p, |( I" `9 T f (image_normalize_vector v_vector)
* j1 O D( b) o6 _7 a$ @( h+ Y+ s )7 @1 N/ U0 q" h9 |: S
)
, U8 M$ H; S2 [ (setq u_vector (image_rotate_vector u_vector st_ang z_vector))
$ T# m; g! n* q: q$ A) q (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
1 T) B+ ~2 J) X4 O6 ~+ u7 F, D )
! u. W9 h% V- h# \& ] )
- o" \! w8 x3 H) {8 n) o) h (emod u_vector 11)
3 l" v* i8 e8 [' f% x) U (emod v_vector 12)
, P: f x* q8 K( j9 T (entmod elist)
+ @* H! t% J4 W )
7 V* B2 H% l; \# a7 Z, N8 b! e: _$ `8 g! r0 V" }/ ^
;;
. c5 p+ F: X3 U3 x% O ;; Run imageadjust on given entity, working around possible
+ n1 D7 ^1 {! c! d. S8 `; o% D; V ;; re-entrancy problems0 n% W) w: C1 ?
;;
- R% K3 y* k' Y* \8 B1 T( e9 N (defun image_adjust (ename)0 ?; n+ W8 U8 ?
(verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...& C' ?" J; t5 F- k* s( m9 b4 k
(imageadjust ename)
2 [& s, e( q; |+ R( f9 N% m) Z )
# x( q! q: p$ _, l# t
+ R9 `: `; Q7 B `% m- k5 D, S (defun ddimage ()! @9 L s( U; |, U) {7 x" G9 ] Z4 B
(if (not (new_dialog "ddimage" dcl_id)) (exit)) h* k+ |( W7 x" K* ]+ R
7 ~ F" }8 y9 Y
;; Grey out the thickness field.* `5 e1 K, V3 w6 N- h- T/ z
(mode_tile "b_thickness" 1)
& s5 _' i; x$ t$ E (mode_tile "eb_thickness" 1)5 D2 Y2 B! [" V: ]
/ w, o6 T) u* s7 S ;; Get the associated def object.
2 H1 \. i8 [& @5 V1 r. z (setq image:oname (cdr (assoc 340 elist)))5 n+ ?1 y9 ~7 z* O) N
(setq image:olist (entget image:oname))+ o7 x0 G. v3 S4 e* M4 w
, Z' K" Y* \$ l9 n" w
;; Set initial tile values
$ u/ A- X2 [& I# a" o; l! |: B8 \+ F (set_tile_props)
6 {! C* g2 R! ^ U (set_tile_handle)- T2 Z& d6 J3 b0 X2 K ~
(set_tile_pt1 0)
* E$ U. k/ b9 ? (setq image:scale (image_scale))2 D& E! B9 r1 I6 b3 X
(setq st_ang (image_rotation))" a p: o9 g$ ^1 q& Q
(setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))! k0 ]+ {2 R$ N5 d+ b
(setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
: y' F# W7 L- J; z( R; n (setq image:options (cdr (assoc 70 elist)))/ f4 M- c1 C3 g% ?
i0 k' A; @ q1 S
;; Record the last multiplier for use in image_update function
" [8 N; }! T$ f (setq image:mult 1)
7 B: r; }& h# w' s/ F8 ^( P* A& c
1 |* s2 K7 B, Q+ d0 {# V ;; Retrieve the image name
. O* U! R o- K2 }6 F; J P3 P- o. [ (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))
6 a. L% I% I% K4 B/ b/ } (setq flag 0)/ D- V9 D& f; V! I/ V
(foreach n fn7 m& n! z \8 `; u* E
(if (= flag 1)
# T. z: b! f" N (progn. l! B3 `# x- e9 [
;; Display the image name
% e* T5 }3 K8 _3 P: n" i" R$ P; h (set_tile "image_name" (cdr n))' [2 _2 Q& P) _
(setq flag 2)# r; R1 Q& p9 C& p6 N5 P; B
)
$ p6 @! [9 }" ?1 c+ {8 V9 t) [7 W )* @6 p+ h5 h/ w
(if (= flag 0)
- `* I# a H4 m6 t (if (equal (cdr n) image:oname) (setq flag 1))
" {7 J4 E$ S0 q; u9 s( e9 C )
' h9 m; _: W* L6 z2 C' A/ }% R) { )1 {9 {/ {# Y6 A' a/ y, g
4 E5 N% s* _' w (set_tile "image_path" (cdr (assoc 1 image:olist)))
" Z7 t% `* _& F4 ^, g1 [ (set_tile "st_ang" (ai_angtos image:angle))9 K: x* i6 f7 ]& t* F$ q
(image_set_tile_scale)( x# o* q& h7 M ^% V' n
) ?4 }' w* ?% x0 t2 R; Y ;; Check the appropriate boxes" y( K, |% s( H3 t* x9 y
(if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
6 w7 k3 M9 L* p" O (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
* c2 `& v( j4 E* _+ M (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))% U7 E/ F; E( k5 w6 e
(if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1")). ~0 S+ u, e) S! v1 E' K# J8 ^3 }
! G1 o ~& Y9 I8 X% X! @) t7 ]7 X ;; Define action for tiles
0 k2 t$ n& l9 R0 s, |" E (set_action_tiles)
; ]8 E m( k' N- |& x/ k9 V$ b4 Y (action_tile "xscale" "(image_update \"xscale\" $value)")
3 W& }* R- L3 W (action_tile "st_ang" "(ver_ang1 $value)")
# b0 s/ V! l/ N$ M6 K (action_tile "wid" "(image_update \"wid\" $value)")/ S4 m7 t2 Y; p- \, s
(action_tile "hght" "(image_update \"hght\" $value)")
9 X" P9 F7 `3 V g (action_tile "image_show" "(image_disp_opt 1)")4 }: t; Z2 o' Y$ l) d. A
(action_tile "image_non_ortho" "(image_disp_opt 2)")
2 q+ a) S8 ^3 H$ V (action_tile "image_clipped" "(image_disp_opt 4)")
% G3 Y0 Q" ]6 P$ C) Y- D5 K (action_tile "image_transparency" "(image_disp_opt 8)")
7 d* b: W% R! j* x7 ^9 ` (action_tile "image_adjust" "(done_dialog 4)")$ }8 R& c# z# w1 j6 H
) i7 I1 x3 T$ h k (setq dialog-state (start_dialog))
- S, D6 R, q' ]& o (if (= dialog-state 0)
7 \4 e7 G3 y/ R5 O1 f (progn5 { N" d0 ` x8 v2 z* x7 T4 p- q. B
(reset)
. P" X- _& {& b: d* c, f( z (image_clean_variables)
% @4 @7 p$ [% Z- } )7 I+ ?$ E3 ?9 v4 O1 ^) f0 @ I2 F
)
0 @% Z3 m2 D; E+ R) Q (if (= dialog-state 1). M4 N; @% P- F% W( n4 X
(progn0 E6 w) e3 q% t# ?) x5 h
(modify_image)
1 X, M2 z3 k( v2 E' y' G2 g (image_clean_variables) Y1 P+ \3 R8 U' x e3 P& U
)
5 B9 n$ V: h! R" U v5 f, { )
/ @3 d: e4 b: ~# b5 M (if (= dialog-state 3): A7 n1 x6 |) J: r6 n& r( N
(progn
; I1 q" O0 T6 {3 t4 R+ T, `# E! A (modify_image)& H) G, j7 H7 [6 L+ R
(image_clean_variables)8 }# W' f3 F# D+ y2 J0 p" O) c; q5 L
(setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
) c' T4 s5 e' A( i9 O (ver_pt1 0)
% o4 u4 g# F$ S- r3 ^& t: x7 V (ddimage)% m5 Z0 N* f0 ~+ c3 t$ ^
)
: \& }" I( m. \ )
+ {( b' x5 G: r5 o$ n+ Q (if (= dialog-state 4)
: D# [) _1 U* Y2 E6 O: y1 v (progn* U$ e3 n7 t% |5 A' t
(modify_image)
0 Z8 g' Z3 F! ?: F; S" o- { (image_adjust ename) z7 f3 E7 U9 v" ?, a+ u
(setq elist (entget ename))
; Q$ g1 Y$ G$ {" Q: }* D% {) T (ddimage)$ e5 z4 q6 D9 I. u1 R; p" @$ f% E
)
% ^2 A0 f7 m+ `8 r7 c )1 h1 q$ p' h7 b
), T0 `5 Y' y' O% e. j: I. T
- {; ?$ I1 f: [$ b+ H2 ~ ;;
; c* L% S# J' F3 ` ;; Modify BLOCK (and its Attributes, if any)
" |$ k3 @& }! x- D# C! L8 A6 F ;;
7 |1 D8 V- w$ O- M (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
( `& Y: f6 ?- I( I' n# d, C% M7 L new_wid old_wid old_rot scaling old_scale+ w. s4 P$ V# L9 {" }5 L
xdelta ydelta zdelta xbase ybase zbase ipos)3 w* [8 ~- a, o
(modify_properties)
8 N/ ]1 y* ]3 g" Z; T B7 p! s7 r4 Z) u& |: S( J. ^$ x) r5 I
;; First, translate and scale the Attributes, if there are any.
" f l8 a; m( K8 ?" R: ] (setq old_rot (cdr (assoc 50 elist))% j, N5 \, R! t- |: V5 g; D
old_scale (list (cdr (assoc 41 elist))2 y0 W6 t; V3 ~0 y# Q9 q
(cdr (assoc 42 elist))
+ M% ]( {3 x# F! Q% x9 P3 J (cdr (assoc 43 elist))+ B$ m" Q5 G$ s* q' C! S, z u+ v
)
0 Q3 J7 Y( M0 s3 u5 D9 @# v5 j# @ scaling (or (/= xscale (car old_scale))
; J. Z9 N: z J (/= yscale (cadr old_scale))' M: t" \$ Z; I" d+ x
(/= zscale (caddr old_scale))
. h: Y E& K( ^9 } )
# F. T- r1 l: V7 M- I7 W; ^ attr nil ; No Attributes modified yet* ^0 i* [- E* c$ g
)
6 E% R7 \) e0 \) `* h, f (if scaling
( o. E! T$ [% G5 g (progn+ j+ n1 w( A; I! q- a6 D3 M
(setq xdelta (/ xscale (car old_scale))
& g0 D& S- Z; a \ ydelta (/ yscale (cadr old_scale))
9 _, b/ V3 F8 l3 Y2 E zdelta (/ zscale (caddr old_scale))+ ]$ p4 T2 w; B9 c) U) _# p
ipos (cdr (assoc 10 elist))# O! ]' F3 V& h; K( N- Z1 q
xbase (car ipos)
4 m' g/ J( Z$ `& P( n5 L* F9 I& d ybase (cadr ipos)7 w1 o: @6 K8 k, p. |/ w
zbase (caddr ipos)
4 b4 W' @/ N+ Q en2 (entnext ename) ; First Attribute% S% V T/ A g) _% e; y- `4 { l" s
)* l1 k$ g d: d3 q* C% z3 j
& I0 ~% H# H, p. V: e6 ~
; If the Block is rotated, temporarily un-rotate it, along
5 ~/ N6 S9 p9 O$ K2 M( h ; with all its Attributes, so the scaling/translation of the
; \& V/ {: r4 D& `) q ; Attributes won't have to take the Block rotation into account.
. [0 k+ w/ i* [6 _( T# s" \ (if (/= old_rot 0.0)
, k& b. g0 M# B1 k% Q+ Q. E (progn) X4 b+ y9 q- I2 o2 Q/ B# E8 v
(command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))# s0 u0 H: m1 Q; |: [2 A
(setq old_rot 0.04 b1 @$ q4 @+ e# y6 @2 j
elist (subst (cons 50 0.0) (assoc 50 elist) elist)6 M9 s+ j- S. V: N: _& p+ U4 Z
)5 a0 X; q! R B+ {- m( p
)& G0 f5 U& M( f( w: j
)
4 t1 |; `% o0 A- n; y6 S, x/ a6 o/ n0 a) F: I8 R# m
(while en2" a Z$ W2 ~" }9 q
(setq el (entget en2))' q. N: v3 ?! h& B/ ?: h# W& Q
(if (= (cdr (assoc 0 el)) "ATTRIB")
1 @1 x2 V" ?- I) _( c! D (progn5 G7 T+ j9 }% f! r% ?: z
(setq old_hgt (cdr (assoc 40 el)) ; Height- ?$ b7 i9 \: I- ^0 j- D
old_wid (cdr (assoc 41 el)) ; Width-factor
/ I" \/ R+ [; w C oldp1 (cdr (assoc 10 el)) ; Generation start point
! ^) X1 Z+ h3 Y5 Z oldp2 (cdr (assoc 11 el)) ; Optional alignment pt" A6 M: `3 {. F7 ^: n6 i! W$ D
ha (cdr (assoc 72 el)) ; Horizontal alignment( o- s4 q0 z6 {/ [
va (cdr (assoc 74 el)) ; Vertical alignment+ p/ c9 S! ?& o' z2 k) y
( D W- ?5 [6 L" Z9 |0 n7 i3 i& C
; Translate gen. start point6 ^* b2 V4 i' l% Y, ^1 e; c0 ?
p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
3 s0 |; M6 e4 J! d% }* a4 w$ } (+ ybase (* ydelta (- (cadr oldp1) ybase)))$ G- H$ U' O8 u5 K
(+ zbase (* zdelta (- (caddr oldp1) zbase)))& E/ {: x0 j6 @" {$ ^) w+ {
)
0 S; i3 P& g! H+ K2 v el (subst (cons 10 p1) (assoc 10 el) el)
; c9 B9 e5 i2 K, Y )
( ^1 f5 C' A/ K& |1 F7 h$ M9 z: E" ?, C9 h
; Translate alignment pt similarly, if present and applicable& l* G# ~8 n0 [3 n1 `2 o$ g5 t
(if (and oldp2 (or (/= ha 0)' S# d% q. P0 X1 a: A
(/= va 0)/ d8 x7 Q" d4 R1 }; d
)
; @8 i8 N. n, G5 l1 O )
. b5 ]( y5 D) L: j2 b: g (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))0 s8 c) o8 S0 e* e5 A
(+ ybase (* ydelta (- (cadr oldp2) ybase)))
. z7 r" D" D% G6 f5 z (+ zbase (* zdelta (- (caddr oldp2) zbase)))1 I: A N' J" _
)- F0 C- @' q7 ?
el (subst (cons 11 p2) (assoc 11 el) el)6 {% Q2 N/ ^; {" d- v; K
)
2 n9 `% ~4 z9 f( X$ F+ k )
$ D1 E, l" V7 ^% J6 z+ {
0 W9 E' ^$ M7 y' e2 J: e% L% P7 l! @ ; Each Attribute's height and width-factor were computed
& [8 ]8 d$ v9 u7 e( U2 Y ; based on the Block's scale factors. Adjust them now,8 d* Q: e* @3 Y. Q+ u
; by first reducing to values for 1x1 scale...
0 M6 t5 K% C6 x (setq new_hgt (/ old_hgt (cadr old_scale))
7 f6 G" C( r# K& u new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))! `( w; o; [5 h5 M
)
. {1 m7 d. }2 H2 j2 y ; ...and then rescaling.# n. I( s# z' k. }% w: l& Q
(setq new_hgt (* new_hgt yscale): z7 M9 N. { x8 C. i
new_wid (* new_wid (/ xscale yscale))
1 M+ _1 l1 b" b+ Z )- ] H& [# Y, t8 r7 j$ D
(if (/= new_hgt old_hgt) X2 @; q: E+ X% _; v2 j) o
(setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
+ ]( K5 W$ b, x! R6 h7 F6 a* r; E9 H )
& a1 w! V! O7 s3 k (if (/= new_wid old_wid)
$ W/ r4 x9 _$ H( W (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
1 e( N1 T' `) [- Z. f! o )$ F' ^# X# v5 D3 i3 `/ A: M' P' u) t
(entmod el)3 W! U; r* q& G% ~
(setq attr T ; At least one Attribute modified
: Y! w, e, W8 ?% | en2 (entnext en2) ; Next Attribute8 d0 y, m( w. @
)2 W. e2 e' N7 b0 a2 q. }
)
?8 V, C* H; v0 x (setq en2 nil) ; No more attributes
! B5 [- z4 n- @% A6 U! t )/ C& _1 W- a* \2 O4 y+ B
)& H! ^& C- f" w* H) i# I3 V* `* h
)4 s* [# E+ |/ [, y$ B; c' E
)' T; Y' T" W6 W4 Z% [, J: v/ H2 i8 \' M
9 ]$ F* Q2 P/ U# L9 i (setq pt1 (list x1 y1 z1))
: I! R' b1 E# J( @( E (tempmod xscale 41 nil)
, U/ x3 P, `! \ (tempmod yscale 42 nil)8 @+ e) H% f6 f$ P
(tempmod zscale 43 nil)
3 I( w( o, w+ T3 R6 k (tempmod col-sp 44 nil)# M% _; W1 H. W0 N; [9 a; s
(tempmod row-sp 45 nil)$ p/ G* [# q7 U( A: D1 x; X( T
(tempmod columns 70 nil)
+ w1 R2 a' ^' b' u1 z2 r (tempmod rows 71 nil)
; G! Y& M8 V% Y; i2 k2 V6 P8 Z (if (= xclipmode nil)
4 z4 y. n+ ?( o) H! r (entmod elist)2 m* k+ \$ U* x5 {# |0 l9 O" p
(setq xclipmode nil) k" F( Q3 q. k7 F0 H) U; D$ K( b
)
2 B5 J/ y# f5 x (move_pt1 1)% ~( f+ K" |: l
2 N8 W! d, r1 X7 U& h ;; Now do the rotation with the ROTATE command.8 O8 K1 ^9 h. d1 z
(if (/= old_rot rot)+ w: n! I' `3 L* a) e% K0 \
(command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))6 ^, m' p- R5 O% g( U; N& e
(if attr ; Else, if attributes were modified," P6 v7 m; F m: X8 Y
(entupd ename) ; just regen to force attrib display
. l3 L! x4 Y I" p+ M# n% | )7 b6 R5 o: \* _
)0 T" d3 M& O& U0 M
(setq elist (entget ename))3 o. E6 _' Q0 z8 ~9 M, Z+ K' l
)
N7 T3 s* o2 [5 K5 B! { (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
j8 u" ~4 T& B. @0 f/ ] (setq newhatch 0)
6 v; e5 @2 L; ?* n* c( L# S7 ^ (setq blkname (cdr (assoc 2 elist)))
W+ P! U3 z9 [1 z' q- E (setq blklist (tblsearch "block" blkname))
" X" m% C; r. d9 } (setq blktype (cdr (assoc 70 blklist)))/ ^4 c- Y" ^' y
(setq xcliponoff 0); Y' E' i0 `, y2 Y
(if (or (= blktype 0)(= blktype 36)); A; f4 J1 i/ A( D4 B5 u
(progn
9 ?; M G$ F( e& l& k) u+ L (setq xcliponoff (xclipon elist))
' @% _ P6 h8 F$ t7 o& v (setq temp_xclip xcliponoff)
% C+ C1 k( b5 `( C( C- P )
* }9 ]( A" j( N( W )! A* y9 Z: R7 Q6 j8 g+ D+ U+ h2 Z
(if (= (logand blktype 4) 4)" x) q" z6 l- A+ t
(progn" x" N; L9 B. i, {4 T* R; I
(setq xrefpath (cdr (assoc 1 blklist)))
7 G! } }% D$ k. P; Y' m. U (setq help_entry "modify_External_Reference_dialog")0 J* P+ _6 n+ i8 w% C/ q
(if (not (new_dialog "ddxref" dcl_id)) (exit))4 y1 d4 z% d! m! |
(set_tile "Bl_name" blkname)
- T$ n2 D& e: m+ |* `) n, |! v- Y, P (set_tile "path" xrefpath)
& v0 Q+ D: D; U )
- X) X/ V5 C2 h1 b( f (progn0 {( R* J1 x8 x% J; _5 a
;; Get program name for use as Xdata app name9 w6 g7 L% s/ L: ] @7 @
(if (not (setq program (getvar "program")))1 N" K& F8 \7 f, k8 r
(setq program "acad")
' U# D2 ]3 W* L- s' J+ e )
* b$ s) ~4 N/ R+ Z( u (if (and (setq temp (assoc -3 (entget ename (list program))))
3 T% q$ z. z; B (= (cdr (assoc 1000 (cdadr temp))) "HATCH")& q4 `' t" C; A! J) o+ V
(assoc 1005 (cdadr temp))# V. f7 `$ \/ f1 M. C" Q4 J
)& l+ e/ x6 E( K; H% H' C
(progn
& I! o4 ]# U" H0 V3 E6 I% {" |9 | (setq newhatch 1)8 ?: C. r3 D: P' ~) D( [
(setq help_entry "modify_Hatch_dialog")
3 C8 H& E7 a1 [: \3 V: r# ?8 D ;;; convert the object into a new hatch" {5 s* z' @- V: `) \
(ai_undo_on) ;; enable undo3 d- X4 V4 G) w0 @0 q
(COMMAND "_.UNDO" "_Mark")# O" u8 Q) u1 ~- Z# `
(COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")$ A; r8 W* b5 M0 u! w9 r, a% b+ c+ d
;;; suppress nasty message from convert command, z) ~5 r1 e# m6 {0 Q- C
(princ "\r \r")
0 \0 }+ I* n% N! X0 ^. f# u- o8 }& ~ (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
" |5 \; k5 S3 E: o" O! g* G/ o (setq old-elist elist)
* C! @0 _; s' g" u. `/ J+ a/ S ;;; If we have cancelled ddmodify5 f* d. ]! s; R. |: |: q
(if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok- u& B7 g* T* a9 O& L3 b
(command "_.UNDO" "_Back")8 R8 A: Y. [+ o
)
% B3 V4 m0 f" X3 {; P: X (ai_undo_off) ;; restore undo state- H3 z# z: y! z3 \$ @$ a z
)
+ J0 q3 B6 z) }4 } (progn
* E4 Q. f9 `3 K1 {$ t+ M* { (if (not (new_dialog "ddblock" dcl_id)) (exit))
( i8 Q. S9 n/ k2 `! ~; ~7 b (if ( = "*" (substr blkname 1 1)): b1 U* u* F9 S
(set_tile "Bl_name" (strcat blkname " - Anonymous block"))4 D/ q" _ z j# Z
(set_tile "Bl_name" blkname)
) P, Q/ @. k# N )
3 R4 Z1 {1 Z7 P (setq help_entry "modify_Block_Insertion_dialog")6 {- ^- u0 S. O9 S, W
)
% R1 b7 G% p0 f. O/ s9 C1 `2 v' H )' V1 m4 y$ M2 ]- V4 O* h( Y
)! s) D# V: g6 ^: s7 _& M- D
)5 h. F/ _/ f7 {4 l) G9 V0 ?: \
(if (= newhatch 0)
( w' j0 y! E% }$ s, j (progn7 m; l8 Q8 i, ~
(set_tile_props)) T) ^0 h/ t4 D8 I# c$ M$ g- v
(set_tile_handle)0 k& ^3 p& z) x( q y2 L E
(set_tile_pt1 1)6 n6 s; f) E5 _: p ]) p5 ]! W
(set_tile_rot)1 d7 J6 h% ?2 @7 p+ K' s
(set_tile_scale)* r$ @" V2 ~* P/ @4 C: L
(set_tile_rc), H) J5 A7 b) @& A
(if (= (logand blktype 1) 1)
# f: Z0 \& f) v) h (progn5 H1 q/ S0 B% X, W0 W, s
(mode_tile "xscale" 1)
9 e$ r. \, g" J$ C, [& e( i (mode_tile "yscale" 1)
5 L, x, P, f8 T; X- q3 m' C (mode_tile "zscale" 1)# q; C/ h! n# l
(mode_tile "rot" 1)# L; ^# X! u* p+ `1 x: g, I
(mode_tile "columns" 1)
9 t q+ e \1 H! ` (mode_tile "rows" 1)& m3 c9 P9 a2 J+ {3 ~
(mode_tile "col_sp" 1)
+ D9 T$ Z! T0 @6 E7 F (mode_tile "row_sp" 1)
. Q2 C# k2 w5 E: ^* h ) X8 l/ |, e9 b3 l. `/ P. P
)
) j! M3 m P% R6 ]$ e ;; Define action for tiles B; C5 G+ K; X
(set_action_tiles)
- \& @1 m; c" [) R& A. }0 b: f (setq dialog-state (start_dialog))
s2 U0 g& ?; ]" A0 M! M (cond
% I6 j6 \8 W( G/ r3 J5 r3 I' p: h ( (eq dialog-state 0)
- K4 T& O- {/ Q( Z' R4 V5 r (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))9 T& e' X7 o* S8 I* p" r
(move_pt1 1); i7 j4 r" O, V0 }3 {0 u
(reset))# }" O; r; D9 H. C ^/ V6 k
( (eq dialog-state 1)( f" i5 C a' R8 }% n
(if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))4 [( z) }0 @' Q; K( G6 L
(xclip)
: t2 y- _$ O/ B1 e& b )
& o, B" h' g& ^7 u( L& m; M (modify_block))1 I" k- C* c L" I+ S) c B
( (eq dialog-state 3)
4 e. U) Q8 m3 J! x3 B# x (modify_block)% ~0 q2 b9 M% ]
(setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))& d1 l) ~, f$ T& v' |: u
(move_pt1 1). a, v6 Y D* I+ Q. h* e5 h4 @2 t
(ddblock))
3 h; Y1 f, x0 @ ( (eq dialog-state 4)8 v& B; G( K1 |7 z' S( ~9 V
(modify_block)$ S. W" s( r: u% H8 }: R4 g, y) E
;; Get current handle.
! w% [" p$ D2 {/ n (setq hand (cdr (assoc 5 elist)))+ A2 M& j! L/ H$ K1 n5 z3 ^5 p7 K
(command "_hatchedit" ename)+ Q7 w! T y7 ?8 T6 p( t
;; If OK in hatchedit, a *new* entity is created and the old one
+ k4 R9 E% b7 Z ;; is deleted. So if the old one exists, it must have been a K X3 t; r5 i
;; so rest the entity.8 z" x, V& i$ S3 n: [# P# [
(if (entget (handent hand)) (reset))
9 N# b* T' t- u# j- B )
' z6 b) J9 a5 f K; } )2 [4 M5 G7 F0 b X
)
- R6 h+ S# C: O) c; Z )/ E& l" }. f! \5 |5 s
)/ s7 o9 Z/ {$ e& A" p
;;
- M p. d0 @3 G$ { ;; Modify SHAPE
6 U) v0 m8 l0 Z& X7 A) p8 |6 j ;;
8 X; J# f3 a, J& r' r- n (defun modify_shape ()
@4 p" H$ _1 d: H0 L, X. e1 w$ { (modify_properties)
. ?1 g! |$ ~4 g: v (setq pt1 (list x1 y1 z1))
# {0 d8 N+ U# C) k6 ~. b (tempmod pt1 10 1)
6 x! C. Q( X) T7 c) ~' I2 y8 r (tempmod hght 40 nil)/ r0 {. H+ N- `- Q/ C5 [& |# ]9 W
(tempmod wid 41 nil)
# o; }; Y- j5 G, d2 Y (tempmod rot 50 nil)" n3 W. l, R5 y3 W/ C% {
(tempmod obl 51 nil)
( d: ]! ?, U, X4 M2 x5 ]) l/ p8 o, J (entmod elist)# s% |" w) _& T" R4 s9 ]/ F! ]4 b
): {/ E" q$ y% c% @
0 v8 ?5 r. N0 Z& E" i4 o' o% B
(defun ddshape ()
: s; a8 T* R0 W (if (not (new_dialog "ddshape" dcl_id)) (exit))% x' D' d* h t$ S8 x$ Z, y
(set_tile_props)% R e8 `: `" M1 b) w9 a- V
(set_tile_handle)9 f: l& F$ v; h; m0 R k4 F
(set_tile_pt1 1)
& D6 B; B5 A9 h! y& f. Y (set_tile_rot)+ K8 [0 f, o0 m: E+ m
(set_tile_hght)1 B0 L3 u6 T/ t
(set_tile_wid)5 U2 a# n6 A v6 |6 ?+ g0 {( |
(set_tile_obl)
* O9 P- t& C6 D' |$ l (set_tile "sh_name" (cdr (assoc 2 elist)))
9 T# K. C- z3 G9 q1 y5 _4 { ;; Define action for tiles2 m6 |8 A8 Q& l3 d9 U# u$ r
(set_action_tiles)( F3 o+ ^/ ~! V1 f/ x, j
(setq dialog-state (start_dialog))" b8 L( R" h8 a6 }& l* {5 h
(if (= dialog-state 0); Z5 T! A4 _1 i! Y6 g5 C. y1 [
(reset)2 R8 A& n9 u6 M7 l: t" N
)! N7 {* m* S7 r0 W1 Q6 ^5 \
(if (= dialog-state 1)
' h( {$ t, u1 H8 n8 _- t( O5 ^( ~ (modify_shape)
, x& G s5 ]9 F; R/ I. P% I! K )
5 S" x/ A" R% C& L* @ (if (= dialog-state 3)
& \4 @$ i# z- L4 d. f, } (progn$ |$ ?6 d( [# v
(modify_shape)
+ e( h. ~" s* ?; \ (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
- m1 C' h% ~6 Q+ D) ?6 I( ` (ver_pt1 1)# J# r# e* d D) W8 Q
(ddshape)
7 y1 W" A. E% q0 v )
% P4 o/ q0 ]" T& G6 N1 C )
G( ~9 Q+ w# V+ u )) y' n9 d6 I1 q
;;( w+ M' u0 ]; Y l( Q: q2 Z
;; Modify TEXT or ATTDEF
7 g7 S' I4 I- A9 J$ X ;;. _0 l7 k+ _- e4 E
;; Set bit code for upside-down and backwards setting6 @5 i& k7 t4 S `$ E, r. I. v
;;
$ ]7 v1 ~+ s% |8 T$ ^; l (defun code_71 ()) B0 r. G( }# @+ }4 @% w" l
(cond ((and (= bkwd "0") (= upsd "0")) 0) l6 x. Y; [: p7 B" J( K5 b* G
((and (= bkwd "1") (= upsd "0")) 2)$ C9 r7 j9 ^7 ?3 I* d
((and (= bkwd "0") (= upsd "1")) 4)
% p; I4 v7 Z# r3 ]4 h ((and (= bkwd "1") (= upsd "1")) 6)
# _% C" h) X; T, T. v )
$ e. }. d5 C. A ); W: L3 `. ?# ?7 n+ ]9 e4 n
;;6 {9 M" F5 J; Z2 n
;; Style action. Reset widget values to style defaults
- Q/ \" P2 n2 [7 x ;;7 c3 w& u/ g+ P3 t4 Y
(defun style_act (index / style-list)
/ o i$ B- P, M3 H5 h (setq style-idx (atoi index))
! d$ v0 L; O' t6 L4 x$ ~, X (setq tstyle (nth style-idx slist)). s8 z7 x! [3 Y4 x" N; k. o
(setq style-idx (itoa style-idx))
; b3 @5 I5 t2 ?; R* ] (set_tile "style" style-idx)
8 @$ K- Z4 h: b4 ?& K (setq style-list (tblsearch "style" tstyle))
' f4 t9 ~: {) S# |1 l (setq shght (cdr (assoc 40 style-list)))
4 u; C) ^" Q4 y. j F6 H& L (if (/= shght 0)5 ?% u' w2 G# g
(progn- g n/ P6 {& a$ A+ D
(setq hght shght)
3 E3 H* y8 B$ W0 b4 R9 B& u& x3 Q) K (set_tile "hght" (ai_rtos hght))( b/ g9 h* c# r* x! g+ I6 {
)
$ w- w& y0 o( D0 F0 |* S3 J% y )
5 @- T0 K7 f! X4 j (setq wid (cdr (assoc 41 style-list)))
) k" ?6 S2 T' q$ L0 I (set_tile "wid" (ai_rtos wid))
# z3 X, j0 V8 N0 A* _ (setq obl (cdr (assoc 50 style-list)))
1 l& n' p, m- A, n% D; q (set_tile "obl" (ai_angtos obl))/ t' t$ B% I3 S
(setq bk-up (cdr (assoc 71 style-list)))9 {2 `+ n" t* Z; b9 w/ U3 R
(if (= (logand bk-up 2) 2)
0 j: G9 N( p6 `! f% ^6 ]# ?2 w (set_tile "bkwd" (itoa (setq bkwd 1)))5 _# k% W. h4 @! E4 M3 v! f
(set_tile "bkwd" (itoa (setq bkwd 0)))
6 p- U9 v" j( }, P) d )
$ M8 P& \+ _' N2 w (if (= (logand bk-up 4) 4)
. {5 k( m% j; X! r" c7 j0 Z% u: A( V$ c (set_tile "upsd" (itoa (setq upsd 1)))
( i9 W( N _4 y. D; w (set_tile "upsd" (itoa (setq upsd 0)))+ w y( b9 f7 F. H8 ~( p+ G5 G- p% f N4 [
): \. N$ W. u) ?/ v, `- E
)
: ]# ~# N& x! p0 z5 d5 Q* J ;;5 [0 E. w6 s' Y: t( s4 }1 S
;; Justification action. Set vertical and horizontal alignment variables,
( i- M- O' e$ H5 q ^0 m5 ^ ;; grey out rotation and height if alignment = "aligned", grey out rotation
; ?: S e2 q- f ;; if alignment = "fit".
* P7 w9 [! c3 ]+ |7 m. r7 k6 ] ;;2 }* U, \# U$ E; p+ @- g4 |
(defun jlist_act (index / templist): R% J$ [) m% K- u) t
(setq just-idx (atoi index))
2 b2 D" j5 D8 ^/ E (cond8 W7 Z. `# O) r
((= just-idx 0) (setq va 0 ha 0))3 h# o" J' F1 b5 L+ x) p
((= just-idx 1) (setq va 0 ha 1))0 B1 H' ]% M9 |; b7 I" J+ ?8 J
((= just-idx 2) (setq va 0 ha 2))6 s. d7 V& r3 F# Z
((= just-idx 3) (setq va 0 ha 3))2 g% x5 f j! y4 G2 `9 d; {
((= just-idx 4) (setq va 0 ha 4))
4 \5 I# r6 o1 @/ m+ ], [ ((= just-idx 5) (setq va 0 ha 5))) R# p% }. s' N# i
((= just-idx 6) (setq va 3 ha 0))
m$ t% B, B4 S. f% E; \ ((= just-idx 7) (setq va 3 ha 1))# W8 ~3 E. ~. t3 a: i
((= just-idx 8) (setq va 3 ha 2))0 c+ ~" R( r- S
((= just-idx 9) (setq va 2 ha 0))
: _! A$ L0 V ]$ [3 o ((= just-idx 10) (setq va 2 ha 1)); ?* g+ O$ c8 L
((= just-idx 11) (setq va 2 ha 2))
$ i0 U9 T7 l4 y8 ^ ((= just-idx 12) (setq va 1 ha 0))6 Y6 f3 G; ?' N1 T5 H: d
((= just-idx 13) (setq va 1 ha 1))
, g! T' A9 O* f7 a ((= just-idx 14) (setq va 1 ha 2))
/ k. w" J8 S9 y$ ]* U7 q )9 g" O' a% Z2 A- j% x
(if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text$ w* ?: n% O9 M2 a1 R
(mode_tile "rot" 1)8 Q1 H8 ]3 Y0 \. b: @% i+ _" i
(mode_tile "rot" 0)
4 @0 f* x L8 p ). z$ P4 ]7 \) e
(if (= ha 3) ; If Aligned text
! _! m" x' n3 J% M6 Q (mode_tile "hght" 1)6 W, @& _! G V8 K% J
(mode_tile "hght" 0)* v" ^/ h [( ]/ h7 f3 p
)
" R8 W0 J! m9 a1 S1 r, P3 e (if (= ha 5) ; If Fit text
0 ?0 n0 R5 L$ Z' y/ o (mode_tile "wid" 1)+ y* A$ Y6 O# ^' k0 Z; T$ t
(mode_tile "wid" 0)
$ ?" V' W2 s4 ~5 E3 X- M )
F% c$ ]: a7 E" T! e5 J; @ ;; Reset rotation and height if changing from aligned.
9 ~4 P+ n4 j" j; V$ | (if (and (= ha-prev 3) (/= ha 3))
) k2 r* V& s1 b. h0 z9 V" Z3 y! u (progn
8 d* t7 ]' U0 M, u0 S (set_tile "rot" (ai_angtos (setq rot 0.0)))* i4 h2 X# K v o
(set_tile "hght" (ai_rtos (setq hght 1.0)))
7 ?1 D9 j' [! d0 K5 H )
) B) J4 K$ R" Z, g8 |& E )
" Q3 _! u9 g* R ]9 I) o
: p; c0 T X0 I& q# } ;; Reset rotation and width if changing from fit.
' T5 O j" Y# ^% \8 W- ? (if (and (= ha-prev 5) (/= ha 5))
$ r. q0 V) e4 V0 x( e; r (progn
& v) N2 I7 Y: `+ N/ n (set_tile "rot" (ai_angtos (setq rot 0.0)))% q9 ~" V. P- ~( M6 U! Q$ Z) o
(set_tile "wid" (ai_rtos (setq wid 1.0)))# A$ e' R! C! x) A/ z
)
4 q6 Z8 Q$ [0 H+ D% d )
8 Y# s! h- T9 F, k* R9 X4 Z9 T. [/ @( }2 p9 s) y: \2 Q
(setq ha-prev ha) ; update ha-prev for next time% \6 i' n' `. L/ w
(setq just-idx (itoa just-idx))
3 u( r1 R# Z& ] )
8 M. y- q# f' f. U, K# ~; Y ;;8 N8 |5 E+ ]2 ^' D: \9 f
;; Set intitial alignment setting based on vertical and horizontal alignment
; N7 p2 x* a* w u5 p' i) l ;; bit codes.
4 s3 l+ ]: K7 @; z3 M6 m d ;;
# m! _7 P! R+ K* j9 T! E (defun set_just_idx ()7 M7 H' j' a7 _" n1 d9 F# x, Z
(cond3 n: d E" k6 v
((= ha 0) ; Horiz alignment = Left
7 ~2 M4 W! j$ F1 D" B (cond9 ^% Z9 j: F+ N4 o& t& c; y% v, z
((= va 0) (setq just-idx "0"))1 P6 b8 @9 Z4 v) q* C
((= va 1) (setq just-idx "12"))2 r6 ~$ H6 U" d
((= va 2) (setq just-idx "9"))
1 N$ J( N u R) f3 K; d ((= va 3) (setq just-idx "6"))) W; a2 O9 O5 C6 s) M" d
)
) g7 |4 p4 Z7 o7 l2 Q2 x; I4 N3 ^4 f8 O )
4 C' P+ e+ @5 D- d" T+ N# B ((= ha 1) ; Horiz alignment = Center
' A5 a0 ~1 m1 m8 j2 u (cond
% h: t: ]4 @6 b ((= va 0) (setq just-idx "1"))
1 D8 b. C2 q$ o" X; h ((= va 1) (setq just-idx "13")), } @( C( e1 ^* q+ S, r
((= va 2) (setq just-idx "10"))
% B8 u* ]! I0 h! i* h; C ((= va 3) (setq just-idx "7"))
' |- H. T2 F$ _" m6 ~ )
; o A0 U* \, D- d- K% {9 s, R, M )
- m4 a# G+ z+ S( h ((= ha 2) ; Horiz alignment = Right; m8 c+ `# w0 e& u
(cond
0 \6 z" n8 `1 @) x( ? ((= va 0) (setq just-idx "2"))2 w D* j: V2 d7 ~- K M
((= va 1) (setq just-idx "14"))
+ p8 S% Z5 x2 s8 ^$ \ ((= va 2) (setq just-idx "11"))
$ ?9 h9 Y4 t' X/ Y/ Q$ ]% l: s& \ ((= va 3) (setq just-idx "8")): }& _+ o* ^. ^3 f# @, f8 _9 }
)
& e" h$ [1 {7 z$ Q8 j )
/ d7 l' }" T8 [: E. [. o- M/ M ((= ha 3) (setq just-idx "3")) ; Aligned2 _9 V* ~* z9 r7 }+ a
((= ha 4) (setq just-idx "4")) ; Middle2 V/ s' s( W5 b# Q! p# v
((= ha 5) (setq just-idx "5")) ; Fit# a0 v8 b: k- a+ c8 O0 T
(T (setq just-idx "0"))5 ]% U* Q9 I$ }0 b
)1 Z0 V. a$ g6 q: A9 O
just-idx+ }# \. G7 b) b9 V
)! p/ h! r+ M/ o+ i8 L9 l
+ Q: p! v0 |/ l (defun modify_text (). B3 w: X2 @* }' A" \! t! w
;; insertion point! E6 C+ N- R2 M. v% @/ j
(setq showpt (list x1 y1 z1))4 G- m. @( [5 W
(setq bit-10 (trans showpt 1 ename))
/ s) G; D: N0 H! m5 d ;; alignment point9 q" x- V& M* _7 p
;; for 'Aligned' or 'Fit', alignment point must be different" j6 [4 |" J$ \* C
;; for all others, use insertion point
! k, }3 }! c9 y9 e/ l ;; (ACAD will recompute insertion point)
/ {; A% `! G% A% _7 v (if (or (= ha 3) (= ha 5))
: s- N7 D/ K% l7 p' C9 S (progn3 t( S. Y8 Z! J, t. E* }" G, a
;; if no alignment point, fabricate one3 {, d: \% h& |6 _& m2 n0 i* e
(if (not alipt)! |& `0 ?1 D. _2 g
;; add text width to insertion point) P# \! n3 ^5 z& U
(setq alipt2 O! T+ ~$ X; v* O9 a
(list (+ (car showpt) (car (cadr (textbox elist))))% d9 c3 n2 p. ^9 ?* t/ h
(cadr showpt)
4 M; D) ] G( f6 U8 u+ Y% l% L (caddr showpt)
4 {7 e( |; V$ ]8 g" j/ E& N. L )
) J% q7 A' z! z4 h) j )
* b) A$ X" W. z- x$ x" S )
7 j3 L' J0 }4 Z- Q1 q (setq bit-11 (trans alipt 1 ename))
) M8 E- a! g4 z4 Q/ g0 w: V. e" g )
A" n9 }9 r6 o/ ?! @ (setq bit-11 bit-10)
' i5 S: c* {' E% v0 B, E( ]( _ )3 C/ l/ z" l) S0 _
(modify_properties)
; j& M6 p* [. `4 e4 E; e) O/ e1 Y! Y (tempmod tstyle 7 nil)
$ J( W3 f6 [: K E4 F) W (tempmod bit-10 10 nil)
: @# G1 [# F" h9 T) ] (tempmod bit-11 11 nil)( P6 v$ o# N3 F
(tempmod text 1 nil); }0 d0 T5 L1 r( U+ w. R: D
(tempmod hght 40 nil)* n- d4 i$ D9 E; N( ~
(tempmod wid 41 nil)
$ i+ A+ f7 j9 F5 D8 H& Q (tempmod rot 50 nil)
3 Z, x+ e: A' E* N5 d# ^ (tempmod obl 51 nil)( ~5 ]# U: j. a, E s g5 L1 ?+ \: S
(setq bk-up (+ (* bkwd 2) (* upsd 4)))
# _' m4 h) {; ]/ K& h9 ]1 T R% S (tempmod bk-up 71 nil)" K# o+ {3 c3 k$ r8 a: C* ?
(tempmod ha 72 nil)1 e0 [& @, z9 ^( b
;; Attdefs use 74, text 73& N9 H3 H4 e1 [& x; f2 V' j# Z
(if (= etype "ATTDEF")
) z) G9 R' E7 K+ v8 e! x/ s (progn8 J1 C& f6 \* C& H- Z
(tempmod attag 2 nil)+ s, v) h3 @ G
(tempmod atprompt 3 nil)6 }* X$ t$ F! b* x- d' i" b1 c4 j2 Q
(setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
4 |, [) Q P) c$ G/ V (tempmod icvp 70 nil)
* I- _: X, s- t (tempmod va 74 nil)
& `9 Z% P1 R m3 a )1 L+ L4 M: c# t6 H& @
(tempmod va 73 nil)0 H7 b# U% ~- l" b+ t
). S0 o& E8 \! y7 H; W9 ?' g- V
(entmod elist)5 D( i( T$ @$ |8 S' c
)! o: Y7 I2 B8 y+ a+ A4 w2 t
+ L& P* e8 x* S; e
(defun ddtext (/ 2ndpt slist i): g# g$ q& h6 J; `/ ]
(if (= etype "TEXT"): d) P& J0 [ D- I
(if (not (new_dialog "ddtext" dcl_id)) (exit))
9 I/ \4 x, T6 ~% `$ r7 I (if (not (new_dialog "ddattdef" dcl_id)) (exit))# ?% N- h* y( ~ j
)
% H9 x5 v+ V0 w: M5 ]5 U/ u (set_tile_props)
% F% G9 i( _( {9 P (set_tile_handle)
1 E5 |1 N% ]# w" ?9 C+ g+ U (set_tile_text)
! _/ a1 R9 a2 r! Z, A: O' \+ [& X" S (set_tile_tag)! E1 }6 V9 O+ I- u1 f/ j- P# r" {
(set_tile_prompt)
: ~% ~5 }3 f8 a& v" `' ?: G6 u0 I (set_tile_hght)% {& m8 @& M! w
(set_tile_wid)
) Z& s, D' M1 L, i4 Z( D1 E6 N; a (set_tile_rot)
" u/ q: T) x5 S% a (set_tile_obl)
- M% g$ c& F1 B. U) ^8 p* ? (set_tile_bk-up)7 q! a* l3 K, |/ |
(set_tile_icvp)
# G/ z# S6 I" r! q8 ] (set_tile_style)
. J, k6 W- v" b7 d (set_tile_just)
: m; e/ w9 E) R (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
" `. j* ^/ g/ X6 H (if (not (assoc 11 elist))
- A" X$ n8 R- m! w& c" j (progn (setq pt2 pt1)
1 f, f/ L k7 n# E3 V (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))/ E2 q& L7 i6 ~1 r9 V7 q; |$ q
)
: u/ w; J4 `3 a! t; P;;(trans '(0.0 0.0 0.0) ename 1))
; h5 y" `) F4 M6 V* X v! [ (setq pt2 (trans (cdr (assoc 11 elist)) ename 1)). l" k1 u" l$ v) L6 A+ p. n& W
), t( c: X* q( o- i/ T2 j
(if (or (and (= ha 0) (= va 0))/ H$ s4 ~# A! |, _) H) i
(= ha 3)/ y9 s; C* s4 R. D
(= ha 5)# J4 O+ Q; {$ R2 S8 T4 w
)% e8 g8 s3 R/ {# N" B
(setq showpt pt1)
8 l4 g! H# Z1 q( U6 k$ J4 l (setq showpt pt2)/ e' Q, r0 \' k3 \, E1 o; w4 p
)
: T7 o6 a) z6 j6 k7 `% z (if (or (= ha 3) (= ha 5))
/ n; O( B j2 R; Q (setq alipt pt2)- ?+ O: b T3 D% B. i$ S9 q
(setq alipt nil)
. B) i; W: W1 Y) t )
: w7 F' [& F( ]" [7 K5 o/ f' h$ Y5 B. d0 b' W! a: L4 z
(set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))- {) e& A/ j9 J' [8 V1 r3 b
(set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
; s5 o+ ?" w9 U" Y5 O' p9 F- W( J! P8 H (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt)))). J9 H, F7 j8 L/ y' H% t; D
; X5 J. g% E- p9 D0 _
;; Define action for tiles% H9 P2 ~4 ?) e/ b: ?
(set_action_tiles)
# a( B" C8 R- j" n ;; Set focus initially to the text edit box./ q) `8 E9 Q3 m/ W1 |! v, x
(if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
{+ O2 n4 o+ ?$ E- G- ] (setq dialog-state (start_dialog))' ]+ H) l1 C! R& _ @
(if (= dialog-state 0)
: j/ A! o. F2 w/ ]$ X (reset)2 X" ?2 @1 d& N' P3 Y% T
)
) l: n- ]/ i# i+ I% I4 Z (if (= dialog-state 1)
# f% o2 m: }6 ] (modify_text)
9 z# t; R: u" j/ e ): P3 {; X }5 J% G
(if (= dialog-state 3)* h1 A3 Z8 q! v4 ^' G, h
(progn
2 F- E3 ]& U) H+ {7 d (modify_text)
0 f2 R. W: y' I) K (if (or (= ha 3) (= ha 5))- c- N7 s( O9 b5 f3 s
(progn! A6 Q/ B1 y; u) a O/ `7 _
(setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
2 L% M! a) O* U5 E2 u. H: q% { (if (not showpt), q, Q# p* g- ]& `- X
(setq showpt (list x1 y1 z1))
/ X- P1 W& b% X9 y )
/ o/ Y1 z* i3 w$ c (setq 2ndpt (getpoint showpt "\nSecond point: ")) k. I7 c7 \' ~0 t7 I
(if 2ndpt
2 [" B$ k) y) b% B- G1 o! O5 o (progn
. n4 x3 K& f) F) H5 @ (setq alipt 2ndpt)
' J6 w* G5 A! t+ o0 X+ L6 { (tempmod showpt 10 1)
3 g; P9 y X8 ]4 W (tempmod alipt 11 1)
5 o* _; C+ ?+ J3 h3 B& Y (entmod elist)- Q! U2 R: C9 c ]
)
5 S: ~* h& o4 o* Q )
3 j# g9 d$ i( j& s) ^. k9 G0 | (setq elist (entget ename))$ h7 X' w- _; U8 m# O( \" R/ x# ~
)
1 @1 Z0 _% @) b" b" e: x2 Q (progn* Q( i* F( |$ Q+ |, I
(setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))* r! g& a* O& O) `* C: z& y+ h2 F! U
(if showpt
# g% x6 S8 T$ n3 a8 u+ ?2 L (progn
" w0 B' Z' h5 M- i (if (and (= ha 0) (= va 0))0 M/ `+ F4 t- ~8 i# |# }) i
(tempmod showpt 10 1)
5 f' R0 B0 F% ^7 X# Q$ |( L (tempmod showpt 11 1)
, l7 W, M- _: V% C/ M2 I+ I, w )
+ f2 ?) S" o) }6 L/ w% l& T5 M4 c (entmod elist)
" u7 i- i: Q# U/ T% h& L5 U )
- Y9 R, f% G+ {; F5 f (setq showpt (list x1 y1 z1))9 n* L* y* u$ p& J' z2 B
)
2 g7 k# V, i8 Y( @) f. w )
' E& p8 P6 v/ k& p- W* J# H- _ )' c2 T$ _6 a- Q) r( r N
(ddtext)
! Y4 n6 ]7 {$ a* c )# {6 j% N4 `$ s. K1 b
)
/ ?8 B* N" g) o4 @- j' P )
2 T) c0 b. |( j; u* @* _" T# U' F0 R8 U
;;
" Z0 t8 Z8 V2 G' N ;; Modify MTEXT
% m" ?8 ]" K o/ i4 n) z ;;
' q- ^3 A4 ?; b& s$ ]9 \ (defun modify_mtext ()
: A+ |7 a: K! d' r9 L9 C2 i (modify_properties)
* L0 b$ _9 g: C/ N. G# L (setq pt1 (list x1 y1 z1))
8 ?# g0 o+ f" p/ j" M6 o (tempmod pt1 10 0). u& V) m* o& ?* l+ t
(tempmod text 1 nil)) w$ D6 l- \! u
(tempmod tstyle 7 nil)
$ a) s+ k5 x8 |; K (tempmod just-idx 71 nil)
$ k$ k. D5 h! V& u6 ~& B3 ^) W& a (cond
5 Q% z7 ~5 l _: h! `! ~ ((= dir-idx 0) (setq dir-idx 1))
# M9 N# A: n: M ((= dir-idx 1) (setq dir-idx 3))+ B7 H9 W( q) M2 G" f: V
((= dir-idx 2) (setq dir-idx 5))
, M* {7 j7 x/ o (T (setq dir-idx 1))
# z% Z; d' l1 o) O$ K ). `+ W4 N; h8 w2 N" a0 g
(tempmod dir-idx 72 nil)
3 |0 l! N' Q1 w0 h7 q. a# \# G (tempmod hght 40 nil)
9 j! s( i8 L) V( i, X0 @# d8 C (tempmod wid 41 nil)2 Z! @% D5 ?/ M: _! \
(tempmod rot 50 nil)$ m9 M4 L3 ^6 M }/ |' j4 z; q! p
(entmod elist): b& | O: g$ |' N, w: x" N; F- u
)
3 e) R* J2 L- X& @- F1 F1 s* S$ r% D2 {, F- ]% M h+ v. L
;; Set MText text style5 y" ~, x* t- D0 f* R) @; B
(defun MText_style (index / style-list)
. `& [' A6 u, D; B (setq style-idx (atoi index))
" K& G9 ?9 {& s8 x7 o7 m (setq tstyle (nth style-idx slist))% D! k* o- r1 d! K4 c s- ^4 q7 A1 f0 t
(setq style-idx (itoa style-idx))
4 q* q" ]' e% ?2 I' c# X1 o (set_tile "style" style-idx)
3 g) P- k9 ?" g" S; j2 r (setq style-list (tblsearch "style" tstyle))) q# [" d+ `7 R9 l" f9 B% P
(setq shght (cdr (assoc 40 style-list)))
6 u% C( p% L4 l, \ (if (/= shght 0)- i5 ]" ?( D+ T) w
(progn
* [+ C) L2 y3 l Z (setq hght shght)
/ L$ |. F S: [5 G& x( b0 h (set_tile "hght" (ai_rtos hght))
9 A0 b' Q# O, f K( v0 f )
: o% B* ~; ?+ c0 X6 {- Q4 }( F. D )! f z7 D! q* J
)
8 M, J+ Z! p) Z3 m) m. A4 Y* H5 J/ f2 n3 B/ n
;; Run DDEDIT on given entity, working around possible re-entrancy
; ~+ Z4 A8 V' R+ T; l+ R ;; problems with MTEXTED6 b' F4 i. `/ `3 K# N
(defun safe_ddedit (ename / orgMTextEd work)) F) a/ j; K( Z# h' L
(setq orgMTextEd (getvar "MTEXTED"))
9 X* m3 X+ r# n (setq work orgMTextEd)
$ }2 h& n# |( Q- ?: R" v (if (= ":" (substr work 1 1))
/ w, f! H! z [! @0 G' p- Z" G* ` (progn c% d( N" L, V6 O" v) Z, I! ]9 W* n
(while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
3 K+ w- L$ z: \# y' r0 V (setq work (substr work 2))8 f d( ~- N* P c l
)
: U Q9 s# W3 D2 Y; H, p (if (= "#" (substr work 1 1)) `) Q2 `, S1 h; A( O+ T3 n
(setq work (substr work 2))
?8 z! ^$ T( Y, h5 A )5 W8 V% I+ k g7 }, o4 `/ F; e) r
(setvar "MTEXTED" work)
( \& g% e/ V3 }/ C )
- }4 a$ G2 i2 e0 A% }" ` ); h' s( ^5 p% i) o/ ^ B; A
(verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...( y, c$ G- c: d( F
(command "_DDEDIT" ename "")
5 O5 ^; x" \5 ? (setvar "MTEXTED" orgMTextEd)% g: _! A. _0 D6 p. F$ Y
)% L+ U8 F) P& P' @: Y% t l* a
& ?% c; M$ y6 R" ]1 w N
;; Verify MText object width- f4 c8 @3 K$ y2 b2 ]$ H9 L0 z
(defun ver_MtextWidth (value)
; T6 r; ^/ t" ^9 ^7 a @6 l$ r3 | (setq value (distof value))
; j9 |2 }3 ^8 o! h (set_tile "MTextWidth" (ai_rtos value))
9 S6 b( v! e b$ C' n (set_tile "error" "")- y" W1 F4 k+ A: g2 J
(if (< value 0.0)
. g) }8 _/ {- i: n2 ^( D (set_tile "error" "Value must be zero or positive.")3 e( f# h. z' L3 ^/ y. O
(setq wid value)& s5 k* o( m2 Z8 S0 S" g. c
)
. ]" {0 h+ K H! w )
0 U- V4 I8 K9 `. J7 Q
9 c8 e! \' G8 Z: a (defun ddmtext ( / gc3); a% D6 L. y0 F* I3 I* J& R
;; Get dialog
; M0 G i# O' F# H/ \7 z (if (not (new_dialog "ddmtext" dcl_id)) (exit))
$ E7 b) }* d# c
1 u$ D( @/ V8 [ ;; Load list boxes
* b/ o0 I! ^- E9 Q; ~5 b) @& R+ H3 ~ (start_list "MTextJustify")
; z! X! Z( |4 n( z7 k2 ` (mapcar 'add_list '(, K7 G% y; ]0 s7 Z, J
"Top Left"
' j' f$ D, W. m" | "Top Center"
( c6 i- W4 v: Y; R "Top Right"9 X, P8 s- j3 g7 `5 w
"Middle Left"
' D( w3 Z' y, |1 M "Middle Center"
9 O8 Z$ L- j' Q: A9 O "Middle Right"
$ U* u+ t" g0 h# i2 h: y) z "Bottom Left"8 p* x; c* k* V3 D: U1 s
"Bottom Center"
: k. r4 j" w: A: Q6 o* y "Bottom Right" |! p2 k/ ^2 j$ `6 y3 z- g
)
: P! v/ H) {2 \$ u* p4 R )
+ q" F; H% I$ s (end_list)/ X5 c. M& G( I( g5 x
* Q2 @* D( U4 p6 o
(start_list "MTextDirection")
$ G( B6 i) n& ]! ^1 R (mapcar 'add_list '(
m! k% G/ x9 k "Horizontal"
2 W; n- n8 y ~ "Vertical"; \4 Q' ^( P9 f
"By Style"2 b4 o m0 S# H, n& _4 ~6 }3 p- ~
)
% _( u5 j, g& }; ^8 |, @3 [& y h )
* f* o- j9 [: N: d5 Y% ~% s( j% G0 f (end_list)( j+ ~' Y5 J3 B; V4 y
s! I/ c. h$ W- V; i4 e! l ;; Set initial tile values' l0 }. J0 I' g+ s* N, `5 ]
(set_tile_props)
1 z- a/ G; \# ^1 `6 P3 Y9 J (set_tile_handle)0 @7 e: @! ^) X# O
(set_tile_pt1 0)0 v- r. J! b1 g; ~% i$ k l
(set_tile_style)
7 x. \/ m7 m# R8 S* T (setq just-idx (cdr (assoc 71 elist)))
; N" r4 t/ O* z/ Q (set_tile "MTextJustify" (itoa (1- just-idx)))
5 F# \+ k1 K9 l9 f. ^/ l& ~( X (setq dir-idx (cdr (assoc 72 elist)))
) u( {7 |2 K7 B% W* ^% e4 a" Y (cond
$ n% [3 D/ Z2 {) ^ m ((= dir-idx 1) (setq dir-idx 0))
% J v: F8 U; T% x7 h7 \ q4 `# Y6 r ((= dir-idx 2) (setq dir-idx 0))
' Y! Q2 G& T+ @& ] ((= dir-idx 3) (setq dir-idx 1))6 ~$ O1 p* P* k/ }$ X: v J
((= dir-idx 4) (setq dir-idx 1))
8 h3 y+ r) t0 x( Y2 z, X ((= dir-idx 5) (setq dir-idx 2))4 f" W$ L# A! l0 b% \2 ~
(T (setq dir-idx 0))
/ X3 l( m/ t# B4 d; }% f- I' e )7 B& r9 k) ~ _6 }
(set_tile "MTextDirection" (itoa dir-idx))+ U: r) t, E( d) g
(set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))! b1 ?/ x! s: L R" M3 \ j
(set_tile_hght)/ j& p. z6 U( p3 E; B
(set_tile_rot)4 V$ ]; N* a6 N* |% o& _: `
* u! O/ i: ?, p: [8 j
;; Set edit box, disable if too long! l# ]7 ?! g, n3 B9 e& [9 G
(setq gc3 (cdr (assoc 3 elist))% N' q) X6 a& O, b
text (cdr (assoc 1 elist)))0 f9 y" |+ R3 ~1 v' O8 N: s9 t6 F; n
(if gc3
9 l1 K* e3 U$ \) X: U4 y (progn ;; Text is over 250 chars, disable edit tile
& ~ D3 Z+ a3 r& `6 N (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
" c7 j: h" s N4 r7 i (mode_tile "t_string" 1)6 U$ Q" e6 h: x& q" d2 Q
)
# n! D! h0 ~% ]/ X0 ]# x (if (> (strlen text) 80)
# c! O& u, m8 G (progn ;; Still too big
+ c7 e( B9 M! u" O) R! v u (set_tile "t_string" (strcat (substr text 1 25) " ..."))! Y; d* H8 u U* N2 ]- ^8 V6 G& N
(mode_tile "t_string" 1)
5 O" }6 B8 f t; U( y. K) ~ )
, _7 J- U* A K- n5 G8 m (set_tile "t_string" text)
+ b, Z# M5 S1 ~: J0 R' W( K6 P )% u$ c# ?2 a* F2 {) b
)2 o3 J( t: |6 _6 y. `+ j; K% F
( I- S. ]2 O; P1 k4 G8 e* j+ |6 d' k
;; Define action for tiles; P. ^. z% h6 Z- g
(set_action_tiles)
0 O' c t) C4 n/ N (action_tile "style" "(MText_style $value)")
9 |# V3 }! n2 m0 m: R/ F( a: e) H8 F (action_tile "MTextWidth" "(ver_MtextWidth $value)")
, l7 y5 ~4 f* Q2 C (action_tile "MTextEdit" "(done_dialog 4)")
( C. P4 ?: d( c4 F* o (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")/ h7 C" ?( u/ K
(action_tile "MTextDirection" "(setq dir-idx (atoi $value))"). u1 |, U, Z! Z6 o. ]. X" o
5 _0 t3 E) k/ V ;; Set initial focus to text edit box.
* H* R% @ Y9 H4 ~& Y9 e& x (mode_tile "t_string" 2)
% \8 {3 n% _% B" X9 _$ b c5 |2 @% c7 f
;; Run the dialog
, ?# C* I' S! c' i2 E \ (setq dialog-state (start_dialog))
' |& k! \4 ]1 m7 K/ u' m (cond
- j1 P: e8 b; T4 {6 c* w, t ;; Cancelled - restore saved data
- q+ H: N: l9 w$ }! ]" r. U% ^ ((= dialog-state 0) (reset))
# t2 X. K$ R/ y6 a ;; OK - save new data& r( z1 P; V; }8 z- z6 r1 ?0 b
((= dialog-state 1) (modify_mtext))
" k5 M0 t0 R# y ;; Pick new insertion point
# \0 k' V6 [# } |, B7 r ((= dialog-state 3)) d5 q) [8 z9 q: _, I$ |! L$ ?
(modify_mtext)% _8 ]6 `: H9 m2 d) R
(setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
6 V" c' Z8 s1 e' T) D; M (ver_pt1 0)
4 |/ Y4 W3 V. t% l (ddmtext)
3 {0 H/ R- [ _: x7 { )) C' q# F4 r2 z
;; Run full editor& B7 ~5 j7 @+ k! T/ Z r; P
((= dialog-state 4)# _ C, d$ _6 y7 ?3 P; D" E" a
(modify_mtext)
0 i7 x. I' U2 L7 z9 n, f2 G$ r (safe_ddedit ename)/ ]- g& d9 |5 B* n" ?9 \, ^
(setq elist (entget ename))2 X* f6 M2 I) J) Y* Z
(ddmtext)
' `0 X- w" \; F; z( M )
- n3 z" o9 r' [# b$ [5 g9 |1 b (T nil)
* z. S) u% s. i# j( }8 I ). ~: h7 c! A$ m9 `9 p6 }
)- o$ n3 W5 C) I4 p
1 H8 n) S( W( i2 F ;;
( u+ n* k6 Z5 |5 B. Y8 e2 f$ y' i ;; Modify VIEWPORT
; H* G! x R8 f4 q7 x, T" m; ~- c ;;' S& s8 W: [2 E) h4 ^- E5 g
" R6 F* h$ z" x4 h. S
(defun ddvport ()5 l X, d7 R5 U, S# P
(if (not (new_dialog "ddvport" dcl_id)) (exit))
) c. |" ~# R/ E/ }; S+ A @: g (set_tile_props)) w5 S5 ` G3 P0 n& J7 ~& R
(set_tile_handle)
" z6 ~( ]0 n8 l; T8 ` (setq vpt (cdr (assoc 10 elist)))) ?" `" s6 N5 B; t7 X; J# d
(set_tile "xtext" (rtos (setq x1 (car vpt))))" N% T' J0 m. f
(set_tile "ytext" (rtos (setq y1 (cadr vpt))))0 x& c& e9 V; E4 [$ z: d2 @
(set_tile "ztext" (rtos (setq z1 (caddr vpt)))); M, c* D! Z& o: Q3 M7 u
(setq wid (cdr (assoc 40 elist))): Q; E8 ~* O+ \% v; D/ I
(set_tile "wid" (rtos wid)): ^+ V& y3 f8 n" X/ a; |
(setq hght (cdr (assoc 41 elist)))/ C. J- _- |1 o+ E8 F5 Y
(set_tile "hght" (rtos hght))
+ N i1 Y- O" h8 j# F8 d (setq vpid (cdr (assoc 69 elist))). W9 l& s2 @9 m1 Z% L- U" |$ l# i
(set_tile "vpid" (itoa vpid))
9 Q4 h/ c& B. R' ]0 v, G+ |4 T$ V (setq on-off (cdr (assoc 68 elist)))
' [6 s2 n/ |) G. N (cond
8 u3 L' g& g6 ^8 X7 a ((= on-off 0) (set_tile "on-off" "OFF"))
2 y' X3 p5 M# m9 q# R ((> on-off 0) (set_tile "on-off" "ON and Active"))2 t( l- ?% @' O: J
(T (set_tile "on-off" "ON and Inactive"))
& l. H0 V1 f( j- l5 y )( o! O6 r9 |% B: B- B+ y5 T& ]$ E
& t: f' U; ]+ x6 s- i: X$ u+ T ;; Define action for tiles
3 a! _# Q" P+ R6 x4 R" E. B! @" i (set_action_tiles)
! Y. H% Z" S2 Q1 G$ \0 e C: |. d
(setq dialog-state (start_dialog))' x8 d+ O2 l! d/ `( q* W/ j
(if (= dialog-state 0). K/ K$ J" O" A# N5 G) e* |
(reset); D' x7 ^( t1 h
)
2 L E4 u/ E0 I( I' ]9 |8 p (if (= dialog-state 1)
+ i R6 T1 G, k (progn+ R- h! H' p5 h. Q* Q* T
(if (= ecolor 0) (setq ecolor "BYBLOCK"))% @4 x y9 l. d0 f* w i# s4 U
(if (= ecolor 256) (setq ecolor "BYLAYER"))
2 U7 @- L9 @0 J; B (command "_.chprop" ename ""
7 X; o# L c' A' x) T "_la" elayer
: R; P, R" m% g q+ r# R3 \ "_c" ecolor ""
+ w2 g- t9 G( L3 b# m% X) b2 L* z1 ]# U )5 G) {1 ]% p9 A) p
)
; r& V; m4 y) |* @6 G0 m+ Y) f )2 O" N: k9 _: }" d7 L' H7 x k: B
)
. v- }8 K8 q7 M, U- h ;;
% Z9 }0 ^! _! S9 P' `$ o% R$ A/ ^ ;; Modify POLYLINE, {: _0 r8 l: x& S8 C1 `" t
;;
- K- i. ]/ y! f6 \, I (defun modify_polyline ()
* d) ^4 n4 Y0 c+ }7 [ y6 @# N) P. w (modify_properties)
! c+ z' @' _8 Z' V% N1 R( r5 v (if (= ltgen "1")
1 x5 V' A; q& U* g% ~2 F8 y (if (/= (logand bit70 128) 128)
3 Y0 V4 o/ J: n S( G( U l (setq bit70 (+ bit70 128))) s0 ?$ ~. x. W: C
)* B, q: ]' E* m- \% Z
)
, T! r$ B. L$ T6 x5 D (if (= ltgen "0")7 }& O% F) T8 x
(if (= (logand bit70 128) 128)3 k( e+ ]+ i2 C' G$ C$ @
(setq bit70 (- bit70 128))
# n1 ~4 @1 {( n( p ) v' l! E- W7 f0 ?- Y4 x
)! t, @+ G5 j: C% }8 e O
(setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
; L* \; N) Z g (entmod elist)
+ m9 Y- B& l2 o ;; Added to take care of updating Vertex information for color
5 M) }1 Y# ]2 u& w- n ;; and linetype./ ~/ w' J& E6 i+ n
(setq save-ename ename save-elist elist)
p. _8 i. W) _) E (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")3 \, r3 C6 q7 d! `3 |" ^
(progn3 c- X( o) _( \; n2 D0 T* J; ~
(emod ecolor 62)+ v# g8 P. g' L& y# l1 {
(emod eltype 6), | U# E2 m0 i8 c0 p/ w: O
(emod eltscale 48)
. O& v- r; s' ]0 a (entmod elist)
5 B* f1 u5 a! f9 ?( j )
; W/ }7 m2 y; h8 H; r+ g) ? (progn# ]" m, }* f3 j" s9 q+ r
(setq ename (entnext save-ename))
6 C' s8 D2 _6 W* } F1 B (setq elist (entget ename))0 B6 w1 Z3 I% n5 k
]9 ?7 }2 w/ A8 |6 h (while (not (= (cdr (assoc 0 elist)) "SEQEND"))& {' j+ W+ g. `6 q5 p
(emod ecolor 62)1 T( H! o5 k2 A8 ~7 R
(emod eltype 6)1 }2 }/ e6 g" p N4 u
(emod eltscale 48)1 C; L+ U6 l3 r1 R% y. t3 U
(entmod elist). f% p7 @; a/ |5 m
(setq ename (entnext ename))7 [0 c& h/ I0 L& _0 a
(setq elist (entget ename))
$ s8 H2 H# N* U' V* e6 L) x2 x )' n! E3 q. [! |+ m3 d
)6 u7 u- K7 `/ s8 M& {. m
)
: }. r& N, G) J9 h ;; Update the SEQEND- J+ W' o; u. F, n: x# n7 e
(if (= (cdr (assoc 0 elist)) "SEQEND")( B. \! q% q1 f% L
(progn8 h: W" y& g3 O
(emod ecolor 62)
, z" Y. S7 q- \* O, O2 _/ S( o (emod eltype 6)5 t. G, h* p) ^1 W3 i3 F% s$ s
(emod eltscale 48)2 ~6 T" J) Z1 A0 b1 C) N5 X) P
(entmod elist)
& X7 A6 S( a4 t" V- g( M0 C )9 l. ?0 L$ V! m: e! j; s
)
0 q% K4 [- e6 L {0 w ;; Go back to header.+ p4 M6 Z6 k* O4 r' O. J9 D& C
(setq ename save-ename elist save-elist)1 P% P' F' V) X+ \5 t# H
0 Y) m. }3 i; [& F9 ]$ c
(entupd ename)1 O% l8 t* y: k; Z0 D+ W
)2 I/ b- @7 | h- ]( M1 i0 t, A n
2 E, \1 K' l5 `) K
;; Increment vertex. Set tile values to next vertex
& n% m+ K- Y2 Z+ g. d9 Q- B ;;
6 Z: K6 {5 l5 K/ A (defun next_vertex ()+ { R# _4 |( J3 \- g
(if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
$ ]8 \# G# t/ O4 U4 w; D (progn0 k; C2 R0 O' D0 k: w# e
;; If the counter reaches the number of vertices,
9 i8 ^+ v0 a& [& X+ s9 { ;; roll it over to zero again.
( @3 y: a: I/ X; ~ (if (= ctr (cdr (assoc 90 vlist)))( \5 i: Z s$ z8 w; R R2 T/ q
(setq ctr 0)
( W' h) ^4 [/ I6 z9 o )$ L _/ m' y" U: ]$ @
(set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))" v6 Z' s1 j8 ~8 X; w0 \% r
(set_tile_vpt pointype)* E' j! A; |. X* f4 M
)8 B( [5 E' C1 L' A3 i$ U
(progn
* p2 O( K' F! Z (setq vname (entnext vname))4 T: r E: {7 k: v, @
(setq vlist (entget vname))
# \( t( e! v7 `9 C, q' w (if (= (cdr (assoc 0 vlist)) "VERTEX")% P q+ }2 W" R. N( ?% f
(progn: d4 z% N# R f4 }
(set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
; @2 |1 l0 ], h& t7 a& u (set_tile_vpt pointype)) D1 h$ U( m9 q
); P6 n' n$ e7 `2 i2 t) `
(progn. v3 R! Z$ _+ {' F- l' L
(setq vname (entnext ename))5 l' J3 F. O7 r6 y6 Y, W. i d
(setq vlist (entget vname))$ g% S% }7 H y, U: b: [! O) v. Z5 N" u
(set_tile_vpt pointype)5 @. p7 v: N+ V- N0 T1 P ^" G/ g
(set_tile "ctr" (itoa (setq ctr 1)))
- ]; z0 Y8 n, x' L! k )
: V9 u {5 `* x: V# q )
, @* O2 m; y: I )4 I) C* H6 E) u- A
)# ?3 H3 j- R- T F" [2 W: B- r, X; {5 z
)% m8 T1 \5 {) @7 e; I
8 ?9 N" y1 o; x) B6 d2 w; P (defun ddpline (/ oldecho)
& D7 f% K/ O' K' t, w (if (not (new_dialog "ddpline" dcl_id)) (exit))
8 Q3 g) Q+ E; e- y# D. w (set_tile_props)
% g l- ~. u. L4 s9 V (set_tile_handle)
, ^& i& s6 k; F* s8 | (setq bit70 (cdr (assoc 70 elist)))
4 |+ N/ q, |* U' d/ q (setq bit75 (cdr (assoc 75 elist)))
$ s# j) t; I: S }4 |3 i (cond
) y( n0 \3 D- D. {) Y- S ((= (logand bit70 8) 8) ; 3DPOLY* W; t/ L0 @# A
(set_tile "ptype" (setq pltype "3D polyline"))
' Q- h9 O) c. v6 ~1 D1 v (setq pointype 0) ; WCS or ECS point values
4 c' r6 a. S( v5 W9 Z (mode_tile "fit" 1)2 D; e4 u. o! B0 c' G9 Z
(mode_tile "mesh" 1)4 w+ g# v5 U Q
(mode_tile "bezier" 1)+ Q6 M9 ]% @+ U1 q
(mode_tile "ltgen" 1)
/ \8 F) [2 N! k" x (set_tile "none" "1")( e% L9 e, T8 M' Y5 H/ c
(set_tile_closed)# ?) m1 ^, L( x" S0 t
(set_tile_fitsmooth)- v( j. n/ Q. [& S) F# Q+ Q0 `5 L
)
: q4 f* M: ~' Q) v ((= (logand bit70 16) 16) ; 3DMESH
0 A7 ^/ M/ [& P3 B6 Z7 ~1 O (set_tile "ptype" (setq pltype "3D mesh"))
: E& ?- C, b9 X' s (setq pointype 0)
+ S! Q/ o; B+ Q# w" U (mode_tile "pline" 1)
& Z! U2 V! T) j1 G9 ~7 e (mode_tile "fit" 1)
7 Z, [5 E( ^% ~' W( b$ J: b, W (mode_tile "ltgen" 1); p5 }4 J. s( E. z9 ^, V Y4 l
(setq m (1- (cdr (assoc 71 elist))))
! D _. y# L# l2 j! x (setq n (1-(cdr (assoc 72 elist))))
3 Q7 \9 r+ C0 l( x- E# b (setq u (1- (cdr (assoc 73 elist))))
9 \( Y- U9 R& |0 c. m y% x (if (< u 0) (setq u 0))- M1 y9 d( r; [/ ~7 u2 f; x. G
(setq v (1- (cdr (assoc 74 elist))))- U- a/ }+ S7 X. ]+ h
(if (< v 0) (setq v 0)) }9 R# ^( v( u3 M: \$ d, ]
(set_tile "m" (itoa m))
) w/ h0 O# B2 Z (set_tile "n" (itoa n))
5 g+ b L) Q: N1 J (set_tile "u" (itoa u))% G. ]+ u% A* G9 t# U0 G
(set_tile "v" (itoa v)); \! ^5 p) t8 ^9 F& P
(set_tile_closed)
. e) K2 f" t% h' s+ ^: h8 H (set_tile_fitsmooth)
. K& X9 X" G( f6 S6 ^ )
, _- x* d) t2 H ((= (logand bit70 64) 64) ; POLYFACE MESH7 N+ c- D% x- L/ V$ R6 O
(set_tile "ptype" (setq pltype "Polyface mesh"))
# P/ H, s, k. G$ c8 w$ E (setq pointype 0)4 x3 k, k. ^. i8 O
(mode_tile "f-s" 1)/ P9 G( @8 \' F! }0 Y4 T! W
(mode_tile "mesh" 1)
8 D* e1 t" l7 e; L (mode_tile "pline" 1)/ g% P4 B4 Y# S" C0 u- `
)5 @/ r0 V# P2 z( f, ]
(T ; 2D POLYLINE! r K& S5 M; W5 g# V/ }; {1 G
(set_tile "ptype" (setq pltype "2D polyline"))! s0 y3 k6 ]$ V3 h2 B0 H
(setq pointype 1)6 }# O1 n: p0 V2 a2 l, W
(mode_tile "bezier" 1)
3 l. a+ i* L: d' T (mode_tile "mesh" 1)* A7 F5 v3 m) K. c2 X+ @& C4 Z/ h
(if (= (logand bit70 128) 128)
: p8 |; x/ T9 i& @4 {) ?8 X (set_tile "ltgen" (setq ltgen "1"))+ m& O" P* l) c9 @
)
5 L" u( d! F/ E/ v: O (set_tile_closed)
& O ~! l6 {6 o: b (set_tile_fitsmooth)
. V& l: F: o& W- |8 M i% ~ )
* s) X! }, y' f6 j' u3 p; n )
P; X- T+ f$ V3 O- X: o* N1 P, n
; H" z, k6 q( @3 Z/ O% L (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
" K: {/ }1 L! S7 \7 M: p (progn
6 L$ u" A! U9 t (if (not next) (setq vname ename))
- V" q* t1 u! u5 a& r9 W (setq next T)
* k- ?: Z. F) l/ Z* l. [8 D% i (set_tile "ctr" (itoa (setq ctr 1))), J1 I# U8 f) s J0 i
(setq vlist (entget ename))
' x! Y+ d/ t6 \, O$ f3 C )- [. l2 k5 ^6 \8 S5 h
(progn
7 H/ M+ U7 n B' V (if (not next) (setq vname (entnext ename))): l, K4 d) @! C. z# B
(setq next T)6 h% a! y) J4 N# y3 @
(set_tile "ctr" (itoa (setq ctr 1)))1 `" C; E) y T6 Z& \# f
(setq vlist (entget vname))6 m% A. ]. z2 V7 ]6 R9 e0 @
): @0 @, h/ g( s9 {5 V+ d5 l4 V7 h
)
( {9 B% _5 @0 Z! D7 W' _ (set_tile_vpt pointype)
$ Z+ n* s$ p: a9 T1 ? ;; Define action for tiles2 f, X' `/ W3 `# b w3 w! \+ ] R
(set_action_tiles)
9 y1 m% Z# F. ^$ B. M1 {0 | (setq dialog-state (start_dialog))
/ l4 E* V+ j1 M( J9 d& J# o. n& W
, j4 {' ~# D" Y (if (= dialog-state 0)
, i5 z: p0 r( {) G, l6 U/ e (reset)7 q/ E% d( i/ q4 P' o+ ^
)
8 T2 A- i# E' C1 f+ h: g (if (= dialog-state 1)
* Y' G( G1 p2 F6 g (progn
5 d4 ^6 }8 S' V) l (modify_polyline)
, n/ w9 c8 r G, m& j- E; ~ (if (or (= pltype "2D polyline")$ I* p7 R' _/ b8 ?6 s
(= pltype "3D polyline")7 B( ?2 D6 A9 h$ p1 f! S
)
" ?* j* \7 t, e, `5 d8 H( K! }. N; ] (progn+ y, c8 L- l1 \& P! T% U
(command "_.pedit" ename)4 | \, _% R" _. c+ b B
(if (= spltype 0) (command "_d"))
" W: Y* C# Q. S0 V/ l* z! `3 m8 E8 a (if (= spltype 1) (command "_f"))6 s- a4 V# M! P
(if (or (= spltype 5)
8 o( v8 _' C8 N- _+ Z+ u% g" e (= spltype 6): F( b: M2 F0 a5 Q- J/ J
)4 q$ N x) A& k* \0 N6 ?( f$ m
(progn
( l/ y( L; u H! p; x, N' _; K. m (setvar "splinetype" spltype)
- M$ N" e9 j7 F# l (command "_s")
: Z, o, s+ M1 O e$ H/ n2 N4 ? )4 }$ x9 _1 p* ~9 Z" Q
)
* f( `/ W( Y/ m (if (= closed "0")$ y( l1 x- u2 {1 j9 Q# M9 P
(command "_o")
! F: J3 v% S6 n6 l, d+ m (command "_c")
* m4 H/ e* B; T1 m )! T% A! N2 v# @, O
(command "")
+ |3 L3 C1 y1 n# A9 |* u/ X. o6 G4 _
(if (= spltype 0)
9 i3 E9 H! r, u O, P9 y/ I (progn# c& \; _: t1 K0 e1 J5 R
(setq oldecho (getvar "cmdecho"))
, L- P" V! q0 |0 k C (command "_cmdecho" 0)
+ B' {! @: R. m (command "_convertpoly" "_light" ename "")
5 J8 ?" ]5 y( T% p! p (command "_cmdecho" oldecho)
O) }4 C# I7 u7 T2 J )
7 v" a, {( P8 M; f) D/ c( p! F+ s )5 X2 N; h$ h H7 @. \
)0 o/ A4 N; m1 ?' Z9 e) j* ?
)/ O$ \+ f ~* d
(if (= pltype "3D mesh")- M% V1 Z* V7 y {
(progn, j) O. j) U& Q: i* U
(command "_.pedit" ename)% @ }" X! u' x$ J
(if (= spltype 0) (command "_d"))
5 |# |5 x- J6 x% F (if (or (= spltype 5)) [% i/ z+ w2 O, \
(= spltype 6)
2 E+ l/ e- s& @7 K8 c3 Q- L (= spltype 8)
9 E/ X6 B5 X' } )
( ]5 a2 W: h0 s( w (progn) L1 ]" _ X: |+ q" V
(setvar "surftype" spltype)
- H! _; I" D4 x. R (setvar "surfu" u)
; l1 Q+ t8 O3 F* H% ]3 C$ z5 q (setvar "surfv" v)0 ^$ K/ r" j- l- a0 e
(command "_s")
5 c/ d4 A9 H: x; S )
8 \* a0 X S/ J )
& J- f! S0 e* v. j (if (/= closedm old-closedm)! V7 T1 p- `( G% K2 W/ b
(command "_m")/ H) W; A8 `# Z: }& N
)
, J8 M1 E( Q+ _5 @ (if (/= closedn old-closedn)0 n; a9 a/ H% W, ?* c' ^
(command "_n")1 |7 X+ k2 [+ O; Z$ t E, b5 f
)
4 F3 Z; W# u5 `: V' D! G) X/ A (command "")
1 l4 ^, a; g$ {! ], @) ^) u6 o )' s2 h8 W9 [1 u
)( Y& E; W1 g- L- U5 ?* T4 h
)
4 a3 f# p' i7 ?" ? )0 l9 a. _) s1 b1 h9 v
) h n$ C1 t% K4 `" [) ~$ M
;;
- w' y: A1 \- A5 j ;; All the spline data is contained in a single elist. We must do some
# W! H. q' I2 n/ R ;; tricky list processing to loop through the elist in order to display" f( }/ H. J. S
;; all of the control points.0 u' ]6 T5 A8 ~: ^/ m. f9 T8 H
;;6 |7 W- r9 y% Q8 b5 Z6 T
;; The structure of the elist is different for rational and non-rational( G! S7 u" F/ j' \. U2 H
;; splines. Therefore, we check the rational spline flag.
3 q8 y7 N5 Y8 G; D8 z; L' D5 b ;;4 a" o! x# [5 o$ s
(defun next_cntl_pt ()
+ c# X" \0 e; `3 M# Q4 e2 c/ n (setq elem-no 0) ;; elem-no = element counter
! G& o p5 ?! d6 z1 R9 ?5 A (if (= first-10-time 1) ;; If first time, find location of first
! w) e+ F I, p3 @* I1 K' y (foreach list_item elist ;; cntl point element in elist
7 x) @ L& O! w) C4 Q (progn
' L& O" _% f" D( K (setq elem-no (+ 1 elem-no))
/ W& u+ N* R+ H) d8 B8 s (if (= (car list_item) 10)
1 Q+ q: H/ L4 L1 G U (progn" L# I" w) u$ p( P
(if (= first-10-time 1)
0 I( E/ E6 H6 m( i7 I+ d (progn
1 Q E3 {" S% \/ I$ j% H/ f4 E* B (setq first-10-rec (- elem-no 1))" U$ A" F$ B/ Y& C; J) X
(setq first-10-time 0)
% l5 n0 ]0 F u) W/ G& H# ] (if (= rational_spl_flag 1) ;; if rational
! \, \# ?& d7 V! a4 m8 a6 z (setq cur-10-rec (+ elem-no 1))9 {/ o5 q; \0 I7 Z# n4 g$ \
(setq cur-10-rec elem-no)
, c6 B' J7 Q& r* ? )1 A5 F8 a5 l2 z. k7 ~8 O
)0 W! y3 ^# k6 B$ \+ E
)
$ q" H6 _$ {' M5 `, ~ )
) d; h+ m5 F4 [+ r, v )
/ w6 q6 e" E7 I7 ~- ]& X; ^ )
$ b9 q' v- e; N1 A )/ U5 U* m/ E2 b( H) q! v
)
7 A, }2 T' s* B2 s# b$ ?' ? ;; Now we know the location of the first "10" record; it's stored
* B2 Z/ f$ j6 @8 i- |9 `3 C$ h ;; in first-10-rec. The first 10 record was already displayed when
+ w% q9 t, ^5 R+ n# b7 ^ @( Z; H ;; the dialog first came up so let's display the second one when
+ o8 w. U; T# e! B ;; the user presses the "next" button (the first time through).
! L2 @6 V( _$ c3 _* b8 h% P ;;
5 I( ?8 y$ ~0 T) {# U (setq temprec (nth cur-10-rec elist))' u$ S2 u4 l/ U4 \
;;
( D! L& X4 }: v( W, F0 o (if (= (car temprec) 10) ;; if 10 record
$ c- e, x; b/ M4 s4 o (progn( m0 Z4 O: q: U' A- p( T) T7 j
(if (= rational_spl_flag 1) ;; if rational spline
: F, Z# A$ a2 C E6 h- L. r! \/ t (progn2 T$ T+ u$ @# o: _7 {) c
(setq tempweight (nth (+ cur-10-rec 1) elist))1 M1 Q2 E# j6 }; d
(setq cur-10-rec (+ 2 cur-10-rec))) A( Y4 T- t$ e$ c- x
)
: U, s1 v4 d$ }# h (progn ;; else b2 M, n3 K q3 B
(setq cur-10-rec (+ 1 cur-10-rec)); G! y7 E* P S& X/ k
)
& s' p9 e, e7 x) X* c3 A )& ~9 b. X9 U* G; v7 R
) ;; end if rational spline
& L/ E6 b4 k5 m$ j# ^# v: i (progn ;; else reset counters
. C" @) T' m9 U; \/ t- g (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec( T5 w& K) c( v+ _7 A( O# g
(setq tempweight (nth (+ first-10-rec 1) elist))
: |$ F0 I' j( O# i* I (setq cntl-pt-indicator 0)4 K* A& G. S8 A
(if (= rational_spl_flag 1) ;; if rational
V- g) O/ o$ i/ q: u: ^" o (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec3 |0 G( D: f8 e$ i5 H9 x; n
(setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec, k1 Z5 T% R" P3 x1 n5 S* p
)5 x) ^, B& D ~& `5 n& v$ ~: p9 X
)
) g }1 X0 }6 s2 l) E B5 } ) ;; end if 10 record X) T, H8 s, ~
i" `$ Y, M- v! O" E ;; Display cntl point, weight and ctr. Increment ctr.
% o$ {: v8 E9 O; O ] (setq cntl-pt (cdr temprec))
6 E( i9 H0 P' O! ` (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))7 W" e) Z- Q, v; k) |. v+ T
(set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
/ ?8 C% D$ Z) U (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))) M/ N) c. \( y7 K
(setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
8 z6 C4 o, d7 l8 Z' x8 x4 { (set_tile "cntl_ctr" (itoa cntl-pt-indicator))! _5 S# w3 N$ V: k. p
(if (= rational_spl_flag 1) ;; if rational
6 E9 @* T1 b" u (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght# _6 e7 s1 c! ^4 q9 s6 ]
(mode_tile "weight_text" 1) ;; disable wght& P% k6 W. g: g, V2 F2 _8 ? f
)
- @2 a- |: K5 \- z) h3 S( n )
7 U* E& g4 o2 t9 R ;;3 M4 b. c \% W
;; All the spline info is contained in a single elist. We must do some
5 {. l4 d# c8 }. W. Z" W ;; tricky list processing to loop through the elist in order to display
q& y; n; i+ N6 l# H8 a ;; all of the user data points.
( @9 j ]) [ N8 o# o+ W ;;1 U& H, C* a+ a2 W
(defun next_data_pt ()7 a r$ h0 `$ j6 S$ z
(setq elem-no 0) ;; elem-no = element counter
/ F+ l5 V+ A. ^1 J9 y (if (= first-11-time 1) ;; If first time, find location of first0 Z5 T# t4 X; K* E, a, H( x
(foreach list_item elist ;; data point element in elist3 }/ I) P8 o8 n% D& w. g9 k
(progn
0 U2 |( ]1 F: r8 J$ _ (setq elem-no (+ 1 elem-no))
% C* _' r/ N+ r (if (= (car list_item) 11)
# T' {; n* {4 L) z9 D (progn J0 f+ v7 S. |% Z# h* r
(if (= first-11-time 1)
/ L4 F" r9 u% n3 z/ ]% @5 ?3 A (progn
8 n% a# f+ d: E+ ?% O, \ (setq first-11-rec (- elem-no 1))+ L0 h+ y) F/ |! N8 X/ Y5 O
(setq cur-11-rec elem-no)
: @! J8 ~; M* t (setq first-11-time 0): ?3 s1 j% S# J) _* e
). e6 v: Q7 {0 O. n
)
# T7 J$ Z( m5 w# Z0 R )8 Y; k( o8 q7 e! z
) n+ f" N4 S% g! R1 q, ^
)
4 A' ]1 X# j% S9 c3 U6 E )6 u8 O; n6 k3 C1 i' m. j
)
$ N+ x& v( i/ d3 S6 p) S* |1 V$ h (setq temprec (nth cur-11-rec elist))# a/ f% \! |' g) X( z/ x" \
;; If it's not a DXF "11" element then we've gone past the last
5 y" Q% E/ L3 l* `" N4 ?& q ;; "11" element. Go back to first "11" element. Reset counters.
' ^% X' a* f' v/ J9 A& n& n (if (= (car temprec) 11)
7 I+ D# c. Z" Y2 g (setq data-pt (cdr temprec)), O4 S6 Q1 m/ F
(progn ;; else' W2 C0 u, w9 M! a. @0 {
(setq data-pt (cdr (nth first-11-rec elist)))) u1 l$ C: `/ B' ^6 ?1 B- U0 f; y
(setq cur-11-rec first-11-rec)* q' l6 |0 |9 D" V, O( {
(setq data-pt-indicator 0)" \9 k5 i8 x4 K& V# J; G$ C8 D
)3 I3 ~ @1 a: N, d2 o5 j
)
0 b* k: F0 s, X" p ;; Display data point and ctr. Increment counters.9 Z7 ]6 I @- ?
(set_tile "dxtext" (rtos (setq x1 (car data-pt))))9 V9 N0 @3 r9 v# i+ l
(set_tile "dytext" (rtos (setq y1 (cadr data-pt))))$ |: T/ z& ^0 f0 `8 ^ j* f0 h" _
(set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
2 Y" K# n" O) I v (setq data-pt-indicator (+ 1 data-pt-indicator))+ M$ I; B: q" ~; n( l$ m
(set_tile "data_ctr" (itoa data-pt-indicator)); I) `. X% S, g
(setq cur-11-rec (+ 1 cur-11-rec))7 [, Q( m6 {6 J. n& X- Z
): k6 C5 {2 W, j, y0 @5 U% j3 e0 }* v
;;7 [- z) k5 Q4 v# Z$ Q. _( w h
;; Modify SPLINE
& C: m3 h5 ]- [, N: n& g ;;
8 E5 ^, y6 J+ r& U$ e/ J$ q (defun modify_spline ()
! r9 j9 b2 ?; r- b# g6 O* N, g (modify_prop_geom)
- S5 Q+ ]+ Y' ` (entmod elist), _0 }8 O8 z4 ?( F% V ~
)8 ? `/ {4 p0 F+ r. m
' i* m! W! X/ p5 c5 t1 d
(defun ddspline ()
* d7 |- i" I- F2 n& ?. l2 c% Y4 i- ? B2 f& B (if (not (new_dialog "ddspline" dcl_id)) (exit))
; |( ^. G. F+ w4 J (set_tile_props)
9 c7 l8 ^5 F* z, ? (set_tile_handle)
: E7 }- o( I% i/ } (set_tile_spline_props)
6 v2 C2 h _% z6 d- A7 g) [: @ ;; Display first control point4 s1 p2 b% U- t( a# W1 Z1 w4 k& B
(set_tile_cntl_pt)
8 w, }, B/ u% h" E( ?9 g- e# R ;; Display first data point
8 f% ?( s4 [' U( X2 s/ I/ @: H (set_tile_data_pt); R m6 ?. }0 m0 o
+ R" U" G+ N$ r ;; Initialize flags to indicate first time through the dialog.. f. X2 }3 G; L- \" F
;; For control points and user data points the "next" buttons* N) Y7 e1 O# Z9 d8 b. D, H. x, T
;; in the dialog call the appropriate functions.6 k/ E( G$ I1 n5 H
(setq first-10-time 1)
: }2 |8 F/ X( I8 b( k! E (setq first-11-time 1)
* ]# G; `* z7 E9 }% D/ |4 S ;; initialize control point number counter7 f! [9 {- R4 X% N8 @
(setq cntl-pt-indicator 1)& S5 G/ s9 M* g
(setq data-pt-indicator 1). k1 [. U/ m4 A" `8 F
(set_tile "cntl_ctr" (itoa cntl-pt-indicator))! x4 `7 a/ n: v0 C M
(set_tile "data_ctr" (itoa data-pt-indicator))9 q: u8 T% k& X! K. w
(set_action_tiles)# [6 ~# }/ p U, k. c
(setq dialog-state (start_dialog))
+ e* b7 e) p; @: _- t; [$ Q, u) t% n# q: F: P
(if (= dialog-state 0)
4 V' w1 `1 l P) f2 R (reset)
& ^2 u3 m+ v! |" P( O$ p/ ?* i" b ): M: [/ I# N8 x) {' t J- {
(if (= dialog-state 1)
# z, Q+ j1 l, |* B! `( z, g (modify_spline)
! R7 K u" l+ P; J )
) j" s) O5 g5 t1 f" t, e" _; l )) M+ a% r3 k$ r$ v
9 i: ]6 }" L. h. N0 [1 ~
* I8 F. s2 @ c" f1 e/ e6 k; i( u' {0 q
;;
3 w4 W N% b: |0 ]- V9 y3 q; b: a ;; Modify DIMENSION' u% Y) q# C o9 j5 e O+ p
;;4 }3 M2 t; {1 p9 s( O
(defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl$ t" n+ R0 W( o' X" A8 @. e2 ^; l
dimsty dimlist dimtext svtext dimovr sv_dvlist stlist5 i- B( R6 B# d9 y8 y5 @
dimtype dimsvcurset)/ z* `" `/ T( E2 D9 B( e
(setq dimtype "DDIMEN"+ d5 c6 F( ]8 c6 n; B9 O
dimsvcurset (ddimen_dimsty_restore)1 Y( u- |$ j, D0 t. y" g4 Y% ?
)$ K. c3 {+ `6 x1 X: s3 d
(if (not (new_dialog "ddimen" dcl_id)) (exit))
% R* s, }2 U+ y- o: B" b* u (set_tile_props)
# T$ C1 ]9 f5 k# z (set_dimen_props)4 |% ]0 `$ q6 k6 r% K
(setq dimtext (cdr (assoc 1 elist)))
1 N& X8 d0 F. L) z C% Y (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))
9 Y7 y4 x2 L9 _ (set_tile_handle). B2 Y4 T; n7 m
;; Define action for tiles
# U" ^8 t) j- _, a7 \* c (set_action_tiles)
) u6 j: X$ [( F' Q. d7 P5 T" \# f* m* ?( p) c) v: i
;; Set initial focus to text edit box." i) f8 [/ j. `9 q8 e- k
(mode_tile "t_string" 2)6 ~: i$ y P+ e7 S! \
0 G2 @% R& P$ p7 Q" m: V$ X
(setq dialog-state (start_dialog))1 T5 U' U4 m& g6 x# M2 q# z
(if (= dialog-state 0), m: |% z H+ n& c
(if (= ddimmt 1)
/ m8 U+ A$ D' c* Z( v( K% n (reset)3 b3 F% p: E% k
)
9 K8 A8 n* T5 q- ` )- `6 T: r) e3 b. {& f5 d
(if (= dialog-state 1)
8 L( ]! R* g9 P4 c (progn
$ H/ P( z: y" H; B0 m, Z (if (/= dimsty stname)# L9 g6 v5 }2 V5 _& {' S
(progn9 M5 `# P3 u/ L4 ?9 u! t
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case3 E$ w2 C9 a; ?8 _
; doesn't have it.: n4 w3 ^9 w( F1 o
(if (null (assoc 3 elist))
0 N* g( b+ o) L$ z2 M3 P) \% z (setq elist (append elist (list (cons 3 dimsty))))
' h. f1 ]+ s1 t: B- g6 j' U5 X ; else just replace it.+ E9 f2 X: Y4 P5 D( {2 F' K
(setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))- M4 b* X6 H' X- V: R
)
; w& T/ [5 [( b( M" H ; refresh sv_dvlist with new dimstyle.2 e+ f$ `( m5 B/ Q6 f; J
(setq sv_dvlist (tblsearch "dimstyle" dimsty))6 d$ E0 a( ~9 M, h# p: E
)
{1 ]! c' Q, q6 O )
3 J1 f9 O. ]% X( Q: s p5 P (if (not (null dimlist)) ; attempted to change dimvars
+ L/ o& U) ^* F5 Z (ddimen_complist sv_dvlist dimlist dimtbl)
0 P9 y v& T4 `! q$ E4 ^# c9 [ )# Y; z9 i1 e7 T$ y; ]! y; R
; Modify dimension text
) P7 d$ i' J1 c1 q (if (/= dimtext text)) y3 ]4 i( U7 n4 E# Y
(progn" G- \' C) k% |( a+ `7 W
(setq dimtext (if (= text "<>") "" text))
; O7 w$ S' i& e0 J1 Z$ K* } (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
9 ^' e& {! [$ E) R6 V2 J) V t( ^ )
* [1 v" G6 Y( D! n7 r) p* d; N5 M( ?3 s ). z# Z" S2 ^+ F5 K+ S' ]
(modify_properties)
3 |- l" u7 [% p7 c (entmod elist)* e7 G* v" x& t! B
)
/ s2 P, t* U3 V' t* O )) H8 a r, a9 N+ m! K: x: E
(if (= dialog-state 4)6 f& u( m/ Z# o) W& e
(progn# r4 z- a8 ]% J0 z" m2 x3 x8 |
(setq ddimmt 1)! M, s5 f4 }5 ^- a
(if (/= dimsty stname)$ t" s/ P$ X- e- r
(progn7 k9 c1 A* z: |* _* H g
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
: A6 E8 B" ~8 k5 J3 y9 A ; doesn't have it.
- f! t% }) V% l, z% x% A2 W7 w { (if (null (assoc 3 elist))
8 ^% {$ g6 y, x; @1 u7 }9 S, } (setq elist (append elist (list (cons 3 dimsty))))
3 m, ^7 B$ E, Y# L9 o3 j ; else just replace it.
& j. C* D' w; i3 P2 _8 l! n3 ] (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
) a3 y/ h# c9 z0 G: w )
! `3 a* z- |7 l, l8 @ ; refresh sv_dvlist with new dimstyle.9 X' _2 g- p4 W/ {
(setq sv_dvlist (tblsearch "dimstyle" dimsty))
) D. G* [% v: _- F. p2 A6 M5 B )4 d' d+ B ?3 H9 d
)
1 P( K! n! d0 k" Q& n, V1 S! X (if (not (null dimlist)) ; attempted to change dimvars" b! R1 o3 G8 O9 h7 K
(ddimen_complist sv_dvlist dimlist dimtbl). W4 m+ L9 W* _
)/ k0 m( J7 X7 t* g1 B2 y) @
; Modify dimension text
: j- l$ M( B8 \ (if (/= dimtext text)
6 R2 s2 |: N; a# v" ~! R# t' w (progn' `( a6 G% }* X0 e! S7 o
(setq dimtext (if (= text "<>") "" text))8 v7 D4 N" l g* K+ e1 g! @
(setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))9 e* A; L4 e4 j1 R
)5 t2 u6 [' _* E3 X+ E" u( D
)" g0 e3 g+ E i& Z
(modify_properties)
& M" y8 F/ x6 I5 E& G9 X' l- `; s# I (entmod elist)
0 k/ I, a* a2 F. y' i (safe_ddedit ename)
) x5 s/ Q- S3 Z" ?! V& H (setq elist (entget ename))5 A+ [9 R/ `( I- x K6 w( @
(ddimen)+ A+ |0 z" z; P3 G' \( k- [( H: j
)6 Y, k! H- ~# v- R3 F' n
)
3 G8 |* k. _& I: v& w (ddimen_setvars dimsvcurset) ; Prepare to exit
- x3 W2 ?- y2 `. G )5 c3 q3 f/ {" l" m5 d
3 D3 B5 C1 p/ k( Z ;;0 s) d) N9 @7 z3 S
;; Modify TOLERANCE N3 ~# e$ C4 v) _* w6 _9 F5 L
;;
: ^$ a, I4 [9 k: a+ U (defun ddtolerance (/ a stname n dimtbl
0 X9 t8 B# }. J; d, F* ?. p( T dimsty dimlist dimovr sv_dvlist stlist dimtype
4 Z8 u% n' s' j/ A) @ dimsvcurset)9 z! j' i# s+ f, i7 K
(setq dimtype "DDTOLERANCE"
- l( x: A5 c" R6 J4 D dimsvcurset (ddimen_dimsty_restore)
0 b1 v' ^0 `2 v3 u )
; n2 t1 T; i& y% ]5 A, j3 Y7 E (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
; { M8 o" W1 }0 f' ]* [( j (set_tile_props)
5 Y+ ?& J. e1 N* Q (set_dimen_props)
0 g! T. {! |- i F! j (set_tile_handle), u9 R6 U" R% D4 w4 v( {, J: A6 D
(set_action_tiles)
& A- e. H$ o5 [) W (setq dialog-state (start_dialog))
& t3 D, \ \0 z0 ]7 } (if (= dialog-state 0)
" t( S1 h+ f* K. y0 U+ l (if (= ddimmt 1)
* s, {, W6 w& v% C% h8 I# ? (reset)
+ z8 s8 c) M: a ); p4 \* }4 H" o
)
' z: V8 H; l1 U5 b$ p4 r H (if (= dialog-state 1)
* ]! S9 @8 d% Q, O) Y+ u (progn2 g0 a+ c: A2 q
(if (/= dimsty stname)
$ L* o/ Q# j6 s (progn, B' I) R9 P3 ?& j
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case5 b) o& m, ^! a% D0 E% X
; doesn't have it.
, x9 Y/ L9 U& Q c (if (null (assoc 3 elist))
+ j, p- F l$ ]/ h+ h) y& d! w) G& ] (setq elist (append elist (list (cons 3 dimsty))))
, `8 }7 N. {3 E# k/ D ; else just replace it.1 P" p0 G" X* E
(setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))4 u) J& @! x9 R/ `+ D9 y' h1 X
)3 k0 e/ s0 W" L7 W% `0 o
; refresh sv_dvlist with new dimstyle.
+ b: _# V" {! i, U' V (setq sv_dvlist (tblsearch "dimstyle" dimsty))# O/ g( _# B/ u
): x/ S L3 C) @
)! `/ g( W* m6 K* F
(if (not (null dimlist)) ; attempted to change dimvars
) Z" I) l% s8 o+ m/ b2 Y& ~4 I; o (ddimen_complist sv_dvlist dimlist dimtbl)
/ H& m9 L. _0 ]0 e' y1 w0 h- T )
/ H1 ?+ ?& S d5 Q) ? p9 G (modify_prop_geom)/ ~0 h8 X) X. d: F' d
(entmod elist)
. v. V- W5 v. ]4 v5 S )
8 B) v3 I- I9 d+ _+ ` )
/ D5 K! H3 \9 i" h9 J9 { (if (= dialog-state 4)+ U7 Q) d/ m. q) q- O
(progn) v4 y/ v8 M1 t$ w
(setq ddimmt 1)
& W r& `: q" V5 Z1 k5 u+ | (if (/= dimsty stname)
P' ?7 d( d: o! [0 g3 I3 I (progn8 H7 l4 u; }7 y) }7 X+ W0 j
; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
( p- }$ i. p& }# l' P" x- J ; doesn't have it.
' G% K5 _) v) Y& P3 E7 Z (if (null (assoc 3 elist))
' _# g# c- ]% ?# n (setq elist (append elist (list (cons 3 dimsty))))
- t, q+ R9 E6 V; R ; else just replace it.% ]6 X4 A. H% X3 \- r
(setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))3 A, R: H' v9 h, ]! X
)7 p( V2 Y* l5 }* y
; refresh sv_dvlist with new dimstyle.4 | Q. W4 u( d9 O0 q' e
(setq sv_dvlist (tblsearch "dimstyle" dimsty))
" [4 U' U; \: z" { \. D1 A )
" C% H) y1 A3 _2 k )
+ y- e' j; f0 a! S+ n (if (not (null dimlist)) ; attempted to change dimvars
?1 S% E* Y+ t (ddimen_complist sv_dvlist dimlist dimtbl): ]4 C% o5 E5 R/ p1 _% G' p! F5 Q
)
, O% m3 X! }/ S- \# o (modify_properties)
8 _ e- F- x- v& S (entmod elist)
- T. D: \. ]% A (safe_ddedit ename)
2 I! `7 H' V( v" r3 x (setq elist (entget ename)), P# u3 ]" R% B @8 b5 t" F* _
(ddtolerance)
% k5 H1 b, j: ~ )
1 ?1 A ?/ n% q2 r a" u )
: Q% x- M) B. l& C (ddimen_setvars dimsvcurset) ; Prepare to exit. G1 @: X" W/ ]. o, N! k5 E4 o' j8 [+ N
)" |' ?, ~3 a$ G' l8 Q
2 o7 v- ` D8 t3 w ;;+ Z0 M i% O- W. ]' i6 R
;; ddimen_dlg - jump to ADS ddim module$ f1 h4 c* E2 {6 q0 r- w5 ^% ^
;;9 Y- x% f& I: k' |. z3 |0 u
# h3 w4 q/ j8 v" S! i5 D3 L1 w
(defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)3 M5 U$ @$ {# k' e
- Y; P8 U( e$ l6 k ; Jump to DDIM with overrides if any.
& M& \% S5 n8 a7 d( V9 a! N0 d) g8 h (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
) x( [; d2 g1 J2 D ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
4 P$ f0 G3 S) R ^7 |5 }/ s ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation+ a" I5 e4 C2 a7 v5 B# O$ t
)
( L# K" r5 q$ A/ D; X) F1 i1 h1 {( j )
! n) l# t' V$ m2 f
- J4 H" }& z: m p" [ ;;
+ q/ h( X3 ~: }! u- a9 Z& V ;; Dimension variables updated are stored as overrides., Z( X' p" g" k" P
;;
. b2 ^, H) I' |8 B$ i; [9 F I2 d$ B
(defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar6 P+ h U7 {9 G
dv dime commandIssued)
. y4 ^5 v. |& s! [( S5 t2 Y9 A& t% N- P1 `3 x
; Here we skip the following first three items:
1 k, h# J V7 y5 |) m ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
! J. p2 v8 l, { ;. S, A, y, P9 ~6 g+ m8 P& t3 s# g
; The list comparison immediately begins with dimvar.+ K5 |$ ~$ {: y- S
;
8 ^2 s9 j8 Q7 `: X* { ; dimolist - original states of dimvars
* f. u' U; n8 D ; dimnlist - new dimvar list which is of the resbuf's
$ X& m9 M5 L0 J2 ? ; dime - entity name for the dimension
7 ?- _5 s/ Y& k- J- Y. {/ S# } ; odvar - value of dimvar for the dimolist. F7 s: U/ v- v5 ~' b
; ndvar - value of dimvar for the dimnlist
$ }2 W% o0 l$ R2 `# ?! [* s
+ m% |( W9 r% G* y% I) B- p8 {. U (setq i 3
" n* R* k% Q( h5 [9 W dime (cdr (assoc -1 elist)): A6 R; K- ^) L3 n
)
$ |3 L' t. M2 {* c+ ` (while (setq odvar (cdr (nth i dimolist)))
1 B y% r9 f6 Y% ^ (progn
5 g' o! W& U8 k, R; \! S (setq ndvar (cdr (nth i dimnlist)))1 E9 O* t8 g1 f
(setq dv (nth i dimtbl))
2 i' E- W. a( }; f" x; @ (if (eq dv "dimtxsty")
- K6 i+ a" V+ } @- O6 a# i; T4 m6 z (setq odvar (cdr (assoc 2 (entget odvar)))! b& _- B. s+ ]4 t6 v2 @: F
ndvar (cdr (assoc 2 (entget ndvar)))' K$ O/ y, P; N- G" _' ?: |6 ~+ K
)
4 H+ b) m+ ^, |" j f )
9 z$ x+ D) D$ Z' G- X* a% j; [ I8 O( f
;$ f6 d* G. l" G' n; H' c3 P7 L
; In order for DIMOVERRRIDE to operate correctly with string$ U! K: O) ^' R
; based dimvars, we must pass "." versus NULL strings.
- s8 ] K) b, X3 p ; In this case ndvar is the new dimvar value the user wishes) _; r. m( I0 O( w! }
; to update on selected dimensions., X0 \1 ?6 w9 ~' t/ h
;6 o& F/ B& D0 {. ~- t
(if (/= ndvar odvar)% B1 E; @9 T4 ] ^ R
(if (= 'STR (type ndvar))) i" {. a- f# n8 ] M6 h7 M8 D' ^
(if (= ndvar "")' b* ]. [2 n. F% M& R
(setq ndvar "."))))
1 E0 N2 P! w' D( G% G
" Y# O! k3 |# I3 r (if (/= ndvar odvar)
# {' Y/ o) q v" s8 |) w. J (progn
. W( e3 N! W* s7 j (setq dv (strcat "_" dv))
! a- `' h8 t( [ X- [ ;
% y# K* C$ w) g ; Start the dimoverride command. B/ X9 a2 H( F$ A" A3 {
;
* M" Z, O- A: _! \ (if (not commandIssued). m1 e0 H% O( W% @8 ]3 q" y
(progn" N0 o6 p: ?# r: a
(command "_.dimoverride")# b3 b& j9 V" i* d h& o# o
(setq commandIssued "T")
& s* \6 R2 v+ v { ) C) s o0 X0 ]0 U) _3 t
)% C' E! I8 r: p5 V3 u( t( V
;
, w& t2 P! k# j; Z ; Issue dim overrides7 v# E4 E; @' Z% N
;
& h! q) L; P/ |$ @1 `1 g7 D (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))( M( f* }- a% N1 _& m& d& \8 ^
(or (= ndvar 0) (= ndvar 256))
) g7 _/ `! G9 z# T6 U) T; } ); x5 U4 O) h7 D: T
(progn4 z' d4 D2 z) R U$ T" I9 a# ^
(if (= 0 ndvar) (command dv "BYBLOCK"))8 F! _- E- n! ]) y% v2 v
(if (= 256 ndvar) (command dv "BYLAYER"))' Q5 p @+ n& I3 j
)7 u3 s6 g) S% H U
(command dv ndvar)
5 m0 ]0 A. b2 a7 Y2 Q! D' ^, B, b ). x. S% m# D7 }7 Y
)( u) S1 m6 f q7 ^& ^
)9 f, |3 {7 N; |! t# V( K+ w3 f
(setq i (1+ i))" j9 u# Z: o8 W% \3 Q
)2 a* k) |6 G8 W0 r% w3 U
) I2 W1 t/ s. ~9 c2 y- x
;
; E0 P4 K8 |3 N2 I2 Z ; Select Entity and terminate command! t) R/ Q9 M2 s) }
;; a+ Z, @6 ^6 h4 ~- Q: X2 M
(if commandIssued Q. n0 o& U' Y4 ], h& _: j
(command "" dime "")
& e/ ^/ S" C# V9 M6 R )
7 R# a1 J+ a$ u& \$ ]6 X5 c )
+ M( [) g* V* Q _: X* u z F" S) z/ _; g" b' M6 A
;;
3 ]$ n: K2 F2 h9 w7 W# p; ?' ~ ;; Get style name currently selected style name.' ~4 P, P& c" M
;;
) [/ H5 i7 R; r# f1 R' l P
2 r- s" Z2 u. L (defun ddimen_style (/ dimsty)
. Q3 H5 L+ Q G4 p, g) F (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
# ^, k( e# ]4 w/ Z T dimlist (ddimen_getdimvars dimsty)' j$ y2 V- R$ U q3 P
)
% ]7 C$ o9 b& X' D dimsty+ r8 B( Z8 C) O/ D. I; H2 G4 x
)
% ~" ~2 N+ r8 x* I6 _2 [* O/ w; @5 ^. D( x: O& ~' h
;;
6 {+ @) `# k0 g, a9 O8 | e( f ;; Set dimvars8 ?( {, a2 ?/ I! t i
;;
, y* y$ d& u. H5 B* E (defun ddimen_setvars (dimsvcurset / dv i)
9 R) q9 y- h1 D) J# b (setq dv (cdr (nth 1 dimsvcurset)))
3 u/ y, ]- P" V: E+ ?3 i (command "_.dimstyle" "" dv)
: \: A! O' n/ N/ E' o/ M. Q1 J" p (setq i 3)8 @" [0 |- a9 s% |- t8 t
(while (setq dv (nth i dimsvcurset))+ ~' D/ h! O; f$ U" W
(progn. H y7 a2 |+ t: Y0 D7 K; |
(setvar (car dv) (cdr dv))
2 C" b9 M2 i+ b' [3 K (setq i (1+ i))
9 X' y4 R/ I9 n) y: | )
: W/ L* O1 |5 H5 ~& q )+ H& I$ w. V1 T u- X' j
)( q- L; B, ~% ~- n* Y+ ^4 A' L
;;
" d( B! F' V/ x' ^, R: u+ L ;; End-of-dimension& K2 e' P0 K! ?1 }6 W& E
;; ==================' |; T3 I: ]+ I A& {
' U! U! Z8 r: a1 G# x ;;3 m0 v5 }0 B- |/ U- z# @
;; Sub-dialogues for properties. Common to all object dialogues
8 ~# e T" C" ^- J' D$ X, @3 v ;;
& k" M9 e& Q* l% @ ;; This function pops a dialogue box consisting of a list box,image tile, and
$ B( m( `; P$ T5 o* r. [ ;; edit box to allow the user to select or type a color number. It returns) ~& s- Q o3 O6 L3 m/ X8 {
;; the color number selected.
3 K) [2 P& \3 j8 A. p" n5 q5 @0 v/ Q* l (defun getcolor (/ old-idx colorno cname lay_clr)6 U* I; K- j6 f, p/ `8 F1 a( d
(if (= (get_tile "error") "")0 p' n/ z. I( {
(progn
' [: Z% t0 _1 O; W ;; Get the color associated with this object's layer, for use/ X; L! e; A4 O' U
;; in the color swatch if the user selects color BYLAYER.( C8 N0 N6 l/ P2 G, w) j
(setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
8 L8 H% o f% \/ k( } (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr))). X4 i. G: r/ c) B5 W* X5 x- O; P
(progn. ~$ M: ]4 M1 F3 a8 e& C
(setq ecolor temp_color)4 S& X/ M" C, n7 b
(setcolor)0 n3 u- G5 Y7 s( }0 T
)3 L7 S3 }5 Z( P# g$ e$ j; o4 o G
(setq testcolor temp_color)! B+ E) {) w m" d, Q; N
)
2 m: ?1 s! ^1 D" A; k )
: e* @* c& m: f6 ?9 k )
c5 W/ Y" @& t v, g( [5 } ecolor( }6 ]5 k/ ], E* K0 y
)3 f- b8 E+ S4 T/ {, ]" A) s
;;1 l0 D0 ~( @1 V" L0 o3 ~' y
;; Function to set the color tiles./ z2 d4 t7 u; ^1 [9 Y2 v! J
(defun setcolor()1 a0 _( ]9 V E) \
(cond1 ?- d# G0 u9 R: U- H% Q2 b
((= 0 ecolor)# i+ h! T+ Z M" q$ Q) M" k0 }
(set_tile "t_color" "BYBLOCK")
8 u4 Q3 _8 C% T9 _ (col_tile "show_image" 7 nil) ; show BYBLOCK as white
" B% y7 }" O* k5 \8 c )
5 R8 f+ w. s3 e+ _! N5 k ((= 1 ecolor)( a! [/ t! R& y6 ` Q% p
(set_tile "t_color" "1 red")
% X# R* G: N; T9 ] (col_tile "show_image" 1 nil)8 T+ d+ P' z. P; D) J
)% P" H2 c B, b/ X5 L/ r4 {, L
((= 2 ecolor)
9 I0 B* [5 `4 z* w: F! h1 E (set_tile "t_color" "2 yellow")* n$ L, g# G: n9 }! O7 A! S( _
(col_tile "show_image" 2 nil), k$ a |- Q6 I
), N- k5 b* @; {4 S1 W: E
((= 3 ecolor)
/ D, r( \4 S; O8 z- C (set_tile "t_color" "3 green")/ V0 p5 ~* G* R% P T
(col_tile "show_image" 3 nil)
; t' D/ G* U8 U+ C8 L. S5 W9 Q )% U% ^$ S5 U7 T# q& f5 f
((= 4 ecolor)9 H' M( n* z8 a) G `- d! @" `
(set_tile "t_color" "4 cyan")3 ?) R- F8 |/ T K) v- V
(col_tile "show_image" 4 nil)
4 Q- C0 p' i! m U* k6 Q )3 z0 R! [0 g T4 ]/ }1 b
((= 5 ecolor)
8 |7 P- s8 i+ N! _! E& L (set_tile "t_color" "5 blue")8 a% F0 a' ?8 o0 Z
(col_tile "show_image" 5 nil)
% ]% r$ I2 U: L- Q, W0 w )# A% A' V K* t
((= 6 ecolor)
3 I- @; y( ]5 v0 J% B (set_tile "t_color" "6 magenta")
5 c; V. Y4 W2 m8 \0 s8 J (col_tile "show_image" 6 nil)$ C, Z" B2 [. i4 v- v @1 u1 V
)
7 v5 u: X! Q0 O ((= 7 ecolor)
* s. g% j. F; W% M4 ]( @4 [ (set_tile "t_color" "7 white")
/ \9 V! \! }, S. ?8 C (col_tile "show_image" 7 nil)) d1 u: C( c n6 Q3 h$ [
)
6 f% x% ]0 r7 e9 b+ }; v ((= 256 ecolor)
/ A* a# i. l/ m* U# y (set_tile "t_color" "BYLAYER")" s# C( s' |+ O) A/ [
(col_tile "show_image" (bylayer_col) nil)
/ a% Z/ I4 M: i% L" f )/ `9 q' A) v! Z- A% {
(T/ @& J0 a2 V' `& O; d4 O
(set_tile "t_color" (itoa ecolor))
3 s$ M3 z- S4 }7 u1 _, L- y (col_tile "show_image" ecolor nil)
( H/ h( v. ~2 a: j+ r ): R8 h7 k0 c* v8 Q0 Z5 X C
)& v) D+ x6 }: `, o
)
: n0 A1 i2 E7 Q4 F ;;, I& _* f' k2 [4 R
;; This function pops a dialogue box consisting of a list box, image tile, and4 |3 f- W8 j y' Y$ a' H4 x" v- @
;; edit box to allow the user to select or type a linetype. It returns the
6 E; e5 E& x, c ;; linetype selected.
2 ~/ q) F# b- J% o* H* L4 h0 y! @ ;;
: D l' o1 U2 f! H (defun getltype (/ old-idx ltname)
2 q2 t5 A9 T+ w% j/ k3 w! m, } (if (not lt-idx)
* c6 W& A. ~+ n# a: q% C+ o0 ` (progn
: M% E0 Y) u3 b. U* ~ N (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
8 R8 v/ F; G2 x; I2 h (cond
/ V: F/ H1 K( f" P ((= eltype "BYLAYER")! m, Q1 u: p2 e& H. H" W( f
(setq lt-idx (getindex "BYLAYER" ltnmlst)))% X$ V- B* _7 i' k: w" C
((= eltype "BYBLOCK")# A% t6 z. g: ]
(setq lt-idx (getindex "BYBLOCK" ltnmlst)))4 y, [' n9 D' X' Q2 \
(T (setq lt-idx (getindex eltype ltnmlst)))( ?0 l9 n% w' U9 A2 t: Z3 p
)
* L( c0 D6 V( q3 |! t7 Z: o )
0 i' A( P* B, s4 N ) }: i/ R" B; f9 V1 A, b( L
$ P6 I) Y, K9 I' h+ u w
(if (= (get_tile "error") "")
% v* ` C1 g6 |0 K (progn
8 ^3 {+ z$ D, ^0 j (if (not (new_dialog "setltype" dcl_id)) (exit))
* m3 x- z: k; o' o+ E) V: M+ a (start_list "list_lt")
6 r! t: w) r# F& V- W (mapcar 'add_list ltnmlst) ; initialize list box
5 {( t, w& e& D; z) P (end_list)) B1 `$ P$ ?! D2 p
(setq old-idx lt-idx), x: A/ n+ L) `- F% D' N9 W
(ltlist_act (itoa lt-idx))/ x& p0 ]0 O% ?. t/ u# I
% y( l) x- ?" h9 P5 F" C
(action_tile "list_lt" "(ltlist_act $value)")
+ A6 q& B: L1 Q9 Q (action_tile "edit_lt" "(ltedit_act $value)"), g9 ]1 ]1 j4 g8 c( y6 v& b, L
(action_tile "accept" "(test_ok)")6 V# ~3 C N2 y- q
(action_tile "cancel" "(reset_lt)") r4 s3 ^$ u3 E8 ^0 _
3 I9 g5 o- y0 ~+ Q/ \9 ? (if (= (start_dialog) 1) ; User pressed OK& ~! h6 K. h, w: `# X
(cond
1 C9 R& J$ B6 E" p3 U9 |, D' z ((= lt-idx 0)- I! J0 u& [8 y
(set_tile "t_ltype" (bylayer_lt))
- f* w8 W- _( R! S% h) |7 y7 L" q# B "BYLAYER"9 G, L. j6 N7 `* I) [$ h* m
)
' z. `) }* B* d) Y* s" t ((= lt-idx 1)
u2 Y& c9 n' a. P& ?% x4 x (set_tile "t_ltype" "BYBLOCK") Q' _4 z) b: h
"BYBLOCK"+ K4 g- L9 w0 s* S
)/ y, @; i1 Y6 T: [
(T (set_tile "t_ltype" ltname) ltname)
3 ^ m7 A' f. `1 u: h )* g( I: ~* {. w* ]' w/ ?
eltype
7 x0 a. ?; f- [; T1 l )
" z9 ]" ]' u1 t3 w( l' i )
8 \) X6 R* W" `: O eltype' r; p) d A3 t/ m, }2 i
)
3 ]( p9 @2 F5 i( E )
" x7 Z1 m+ [" I) Q8 r- D4 m# K ;;
! r/ a- H; v2 {* A, p ;; Edit box entries end up here
. F% I+ a- {! H# m: @" V, K0 x8 H (defun ltedit_act (ltvalue)
4 H; B! B' s1 a3 X) q) E (setq ltvalue (xstrcase ltvalue))6 o2 y7 ~, C: \2 F
(if (or (= ltvalue "BYLAYER")
9 w F; W/ N6 d3 I0 r7 p/ b (= ltvalue "BY LAYER")). i4 h5 [! d3 `, h
(setq ltvalue "BYLAYER")
5 z% s+ k) U4 V# K3 ^ )7 [) k; c3 V! y: w+ H1 q9 A
(if (or (= ltvalue "BYBLOCK"); c. H0 K t i3 H) g! f* H* z
(= ltvalue "BY BLOCK"))
9 a# l2 m1 S6 r/ ^ (setq ltvalue "BYBLOCK")
' b$ U* @" b# l' a ). G: I& [ J2 h8 H
(if (setq lt-idx (getindex ltvalue ltnmlst))
. E; I. a1 r3 K, k, E (progn
m6 u" N" @$ p5 ~& G7 [2 V! ] (set_tile "error" "")
8 ?1 Q( a3 ^& W, G: V' q (ltlist_act (itoa lt-idx))
9 T0 E5 U7 W2 ?% b/ [& m. L )
3 I! T+ q+ }. u( a (progn
5 |7 j: F- b) ?! q/ ?8 u& a; g (set_tile "error" "Invalid linetype.")
% `3 I$ \" D! P2 s& ^# G: G (setq lt-idx old-idx)
% |+ J- ]# T. Z2 u! };; (mode_tile "edit_lt" 2)4 j4 u0 P: l b. q0 H/ f: O4 O# X
;; (mode_tile "edit_lt" 3)
8 G. T( [6 m0 k2 \1 ]2 A$ Y )
" w% U+ e$ e0 m )
- M) Q0 o+ _4 P3 F# R )& T7 k( O" ^# U! x+ I, G
;;7 k' Y) w0 M+ I' K: B
;; List selections end up here. Update the list box, edit box, and color0 t! d5 B: D" l D( \ o$ j1 A
;; tile.
+ n# d& s* P% w" T9 x/ J ;;
2 h3 K& h) C1 z+ O& ? (defun ltlist_act (index / dashdata)# S8 E9 p. q9 `
(set_tile "error" "")0 @8 l: l8 c) @, T0 U. D( H
(setq lt-idx (atoi index))
0 J7 }6 w7 c4 T! `7 H( K9 f0 N (setq ltname (nth lt-idx ltnmlst))
3 C, _2 E0 g* G) X7 Z (setq dashdata (nth lt-idx mdashlist))
! R* _# x0 a% X$ P (col_tile "show_image" 0 dashdata)9 |8 W# j9 q& m1 f5 j
(set_tile "list_lt" (itoa lt-idx))
% x. \3 ~$ @' r4 b8 h6 ] (set_tile "edit_lt" ltname)
k/ M: i3 d2 K! V )
+ o$ T" o5 ]' F# h ;;" B- i' R. F. z/ @( R3 X
;; Reset to original linetype when cancel it selected3 h' s% C8 ]2 n; J' F6 G
;;
7 b3 b0 j; o* a+ [% u) | (defun reset_lt ()" H/ ^* f; U2 N
(setq lt-idx old-idx)
+ Y. K' d# e; i( `8 J (done_dialog 0)7 X( P+ [% Q5 q$ o M( U7 X
)
. L/ L8 G$ s, X1 u) s1 k ;;
3 x+ O& D) H5 w' B$ U- W I! r ;; This function pops a dialogue box consisting of a list box,image tile, and
" A; _: Q& {% e ;; edit box to allow the user to select or type a layer name. It returns the
- w9 X& j& S& s- Q. I, C% [9 [ ;; layer name selected. It also has a button to find the status (On, Off,
+ @5 h% Y5 Q; k+ ~- F; q& R1 s ;; Frozen, etc.) of any layer selected. y4 d6 f2 R9 C# B
;;# H+ m2 M3 V" g( J- @
(defun getlayer (/ old-idx layname on off frozth linetype)9 m3 U- N( K; ~
;; Create layer list the first time the layer, V3 ^0 U; T9 _0 q# q2 |
;; dialogue is called.( I* g9 s' v+ m9 G0 ]( J
(if (not lay-idx)6 C4 |1 A6 @# L! n, C! ?
(progn
' u! m6 J: }8 U3 K8 R7 \/ w (make_lay_lists)3 v: n9 _6 }6 k' L2 c+ P) Y' k5 G
(setq lay-idx (getindex elayer laynmlst))) B1 u7 P9 G8 V' B6 P' N
)
5 a% B; @* C, E/ h# {. d )
0 P7 g; ~7 {; c; V& ^- [$ s
' Z! E! z- Q P (if (= (get_tile "error") "")8 e- x: ~8 E' `) f0 Z% {8 G6 b
(progn+ L( l* i, _# t0 n; \4 B( s& D
(if (not (new_dialog "setlayer" dcl_id)) (exit))
- ~6 c$ [, f) ` E4 e; ?2 e8 E (set_tile "cur_layer" (getvar "clayer"))8 {3 ]3 M7 l) V, ?8 @$ q3 l9 ?
(start_list "list_lay")
2 T) Z3 V& X; z1 a2 G! B: d) @ (mapcar 'add_list laynmlst) ; initialize list box
' V( Z8 \, C1 `; b* N (end_list)
) [2 j: H% |! |7 _7 y" o- v5 j (setq old-idx lay-idx)
0 p( k2 T1 C1 Y/ ? (laylist_act (itoa lay-idx))" C J1 s$ }2 p4 D+ P
(action_tile "list_lay" "(laylist_act $value)")0 h" [. H1 r/ Z% e E
(action_tile "edit_lay" "(layedit_act $value)")9 ] O& _ X) [- ~9 Q1 s
(action_tile "accept" "(test_ok)")9 `& r6 V/ m6 l# m" i/ w, q0 F7 y0 n
(action_tile "cancel" "(reset_lay)")
, l: K4 R; f8 A+ F (if (= (start_dialog) 1) ; User pressed OK7 L- v- G) ` t6 X9 b! x; J
(progn& B# E5 @" [0 z5 X
(set_tile "t_layer" layname)' L, g5 `% m3 D" x
(setq elayer layname)) i8 Q; o" J/ w$ P; o6 B
;; If layer equals bylayer reset color tile- q* @8 p z M1 R& b6 v
(if (= ecolor 256)
" @4 z0 ^# x. b- U7 p- \( D5 a (col_tile "show_image" (bylayer_col) nil)4 \0 G. m* ?9 B( p+ `
)
6 j% o5 p$ E9 q( ^8 r0 F9 T" ^ layname
6 `0 n+ L* K4 \0 l( B- z9 Q( E )/ e6 _! a) j9 l7 K5 ~# O e* M/ U
elayer) `( ?6 \0 C0 }9 r# _& X! U
)) h* G6 T4 `5 j6 e
)1 O8 S ?/ T" s! d0 [% F/ [
elayer" Z1 t6 j) {7 w
), I8 J# e5 y. ?0 U5 [
)
4 s9 \/ Z' Z; A# _' P ;;, v: a0 {7 |6 ], c2 V: [
;; Edit box selections end up here. Convert layer entry to upper case. If
T- ~% l& q' |0 z ;; layer name is valid, clear error string, call (laylist_act) function.
. c8 q$ f) m! y- K. p' f1 O' m ;; Else print error message.
" Q W+ i* d: Z& s2 y/ B4 S ;;
3 a5 v! V, p# Q. d (defun layedit_act (layvalue): x* z3 b2 F2 H! C4 \
(setq layvalue (xstrcase layvalue))7 }/ l0 z; L/ R, x3 x0 d+ [% e( T& s% g$ N
(if (setq lay-idx (getindex layvalue laynmlst))/ s3 e" F' W& }9 h1 z* W
(progn
; U1 q( r- Y# D# m+ h) R7 L (set_tile "error" "")& W% X+ W( t# W9 w0 H) P
(laylist_act (itoa lay-idx)), F4 d+ p2 t+ b- v$ V/ n
)1 s7 w \9 |7 O
(progn
, |% s7 t3 ]8 N( ^" n9 w' c3 M" s (set_tile "error" "Invalid layer name.")* l& }$ W- W O# v% |
;; (mode_tile "edit_lay" 2)
4 u) ?4 f/ c( b; _8 i/ w;; (mode_tile "edit_lay" 3)! {2 j: {# e# f! `
(setq lay-idx old-idx): a6 ]2 p3 P5 V% w! m
)
: W1 [- \3 @' U9 a" t; { )! m2 p% e6 I( N3 N3 ^ V0 Q+ U* H) t
)# S+ O% E* V* @! \( u' B0 }" d+ Q9 a
;;
/ Y: G t F* `% l9 d ;; List entry selections end up here.8 }' M3 r4 L6 z7 a a
;;
0 s- e6 X' P' W0 ^* X (defun laylist_act (index / layinfo color dashdata)% ~. x' K4 }! N c6 c6 j, r
;; Update the list box, edit box, and color tile.
( ^& j4 G2 p N (set_tile "error" "")
1 C- S0 y4 |# B {2 H (setq lay-idx (atoi index))
0 z* J& n: o# x& E (setq layname (nth lay-idx laynmlst))0 f6 |+ v1 g* X
(setq layinfo (tblsearch "layer" layname))
" s; O- U2 E+ b1 I' [ (setq color (cdr (assoc 62 layinfo)))
+ A% x9 L4 o& G4 ] (setq color (abs color))# M2 O# o6 Q1 k+ j1 Z& P) O! Q" D
(setq colname (colorname color))5 [' G8 _0 T; X6 {, }
(set_tile "list_lay" (itoa lay-idx))1 P* P* R( o/ M, \" g! p, X3 W$ i
(set_tile "edit_lay" layname)4 M/ o7 u& o/ T b, d+ V; g! Y1 ^
) D8 q) |# _/ W
;;/ r" ~- ^# }% b. R8 @
;; Reset to original layer when cancel is selected.# _- X0 `9 v- P& a6 l' M* @
;;$ F: E, P" {8 @& C, K
(defun reset_lay ()
- x; Q6 p: w5 }9 P, z7 Q: r (setq lay-idx old-idx)# F& j9 C. E- y) u+ W
(done_dialog 0) \8 i k* c8 p2 {1 p' B& {
)! l* O" U, X- |3 q" p" ]0 {
;;
1 f8 K% X" ?; Y2 ?6 n& K* n2 N ;; Checks validity of thickness from edit box.
4 j5 Y& X6 O9 a1 B (defun getthickness (value)
0 Q$ B0 |; C0 F# k) T8 e (setq ethickness (verify_d "eb_thickness" value ethickness)). _5 \! B: z& O3 U7 j+ L; q
)7 W4 A9 W2 h+ u/ e3 P) W
;;( V) K; H t& }# j: \0 a
;; Copy of (getthickness) for ltscale. If more, make this function+ z4 C) t p% ]6 X3 c
;; generic.
$ S6 ]0 j: n$ ^# ?+ r/ @ (defun getltscale (value)
" c7 `( L: Q/ x (setq eltscale (verify_d "eb_ltscale" value eltscale))* ?2 b8 W2 o1 s
)& M1 [& H! w7 Q6 M. j. I% z) l8 L
;;
( k' D- @' `4 a2 Z& X! d' y3 n9 v ;; This function makes a list called laynmlst which consists of all the layer
( i; q0 t+ x8 a O' ]- T: f ;; names in the drawing. It also creates a list called longlist which
. f/ r* g0 T/ Q# p ;; consists of strings which contain the layer name, color, linetype, etc.
8 |# i7 V& D; P, o, ?+ H, Y ;; Longlist is later mapped into the layer listbox. Both are ordered the. N1 a O# X$ o& P6 }
;; same.* l5 B( p$ E% ~! S
;;
. B* n3 b% N/ _3 U; N c, Z9 Q (defun make_lay_lists (/ layname sortlist name templist layer_number)
) J3 {- w6 m, J* E (setq sortlist nil)) \) ^! Z6 I y$ S$ U# s! z* a
(setq templist (tblnext "LAYER" T)): D# T, P/ v! J# }: X
(setq layer_number 1)
3 A5 L2 U* k; R& i" Q8 P (while templist
" M0 `3 X! q, ]6 C ;; No xref dependent layers, please.
" A E! b: E' T7 ~2 W) E (if (/= (logand 16 (cdr (assoc 70 templist))) 16): v* _, C$ V9 ~' w4 m
(progn
. } a6 M" D) Y v% a8 L (setq name (cdr (assoc 2 templist)))% G) E% M6 U% y4 T0 S7 C
(setq sortlist (cons name sortlist))8 M! b8 p) g3 e! ~
)
) s0 N1 N$ t6 e' I c )
7 l. i+ m2 ]; m1 O9 L1 W ; Get the next layer.7 ]4 T! ]- s: D5 h1 W
(setq templist (tblnext "LAYER"))( z$ q" I! E K- ]1 c5 \
;; Not dead message...
+ F" t6 r8 i8 { (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))8 N3 l {& F9 m5 v; k
(set_tile "error" (strcat "Collecting..." (itoa layer_number)))* Y! O% ~6 [# J+ U% H
)
6 ~; s# p8 F' Y (setq layer_number (1+ layer_number))5 K& B: Z6 `. R+ d: g( I4 t# p
)
1 `7 x: B# ~, Z- N; w6 D: o (set_tile "error" "") y9 e9 W: w; t4 D: b- V& B* `$ S
(if (>= (getvar "maxsort") (length sortlist))
; j; Y8 X" S# S (progn
. k2 k& f/ c0 N5 y (if (> layer_number 50)% n! \. p. \% I. J
(set_tile "error" "Sorting...")
5 ^, o; k/ r2 Z7 n* J* `; T1 D )
2 S4 R6 m6 A+ C8 [8 Z (setq sortlist (acad_strlsort sortlist))
5 U! R: c1 g, z6 e' E [4 ^5 C )1 b" @# ]. g; z. O& G4 P8 a5 {
(setq sortlist (reverse sortlist))
3 m+ t7 v' y# R: U( g )" w9 I% M# o9 q6 {
(set_tile "error" "")( K6 r5 l) u6 |: h% L0 @6 Z9 A9 _4 G
(setq laynmlst sortlist), T6 [4 D7 q( Z/ g; ~7 M$ n
)/ M; l8 e v1 N5 J2 I( {
;;( z( y. ] m, r; l9 [
;; This function makes 2 list - ltnmlst & mdashlist.4 t3 s6 G+ R& q$ U+ B
;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist1 f* `9 x2 @4 ?: z( f3 Y+ P
;; is list consisting of lists which define the linetype pattern - numbers4 E3 K6 U# W9 e/ I' Q( m! I* c
;; that indicate dots, dashes, and spaces taken from group code 49. The list
7 n4 K* Z0 d8 u: _ ;; corresponds to the order of names in ltnmlst.
5 y% H0 B6 v* ~ ;;) A! ]4 ?% Y* i
(defun make_lt_lists (/ ltlist ltname)4 X0 O* X4 c4 |: p
(setq mdashlist nil)
3 G, \- }' L! ] (setq sortlist nil)$ K2 G! u/ A9 _ r! x( l* p: A6 Y
(setq ltype_number 1)
: o' O6 [5 _4 Q$ k& Q9 L3 Y (setq ltlist (tblnext "LTYPE" T))/ d6 e) y0 F- H/ \& m. e
;;(setq ltname (cdr (assoc 2 ltlist)))1 ]; b% I" u7 @
;;(setq ltnmlst (list ltname))& h8 z) r: b" _
(while ltlist5 H7 J2 r) w# w( y
;; No xref dependent linetypes, please.' X' b0 E& [# w, I$ t6 _ h/ [
(if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)7 ^8 A6 I7 u! d) W$ ~% g: R
(progn c, G/ O& a4 X8 b. k/ S
(setq ltname (cdr (assoc 2 ltlist)))5 K' V+ v7 {8 o( j6 {
(setq sortlist (cons ltname sortlist))
& ?2 w. i1 y" C6 u1 b7 F )
/ V4 ~' ?% E% D1 Y- U )" w+ I- b3 Y2 S. @" U% s
;; Get the next linetype.. w+ N, z9 j E6 h% x+ o1 F
(setq ltlist (tblnext "LTYPE"))
. q. n$ j/ x9 s- {8 g& o3 a7 J* x; b1 }9 l
;; Not dead message...' W: E- N9 q. H N; E" ^" F% j
(if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
5 _* r( L* F N) ]8 D) l6 z (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
# D5 L8 m" \3 S9 E9 g% @/ Q )
5 r6 z7 n0 Z6 u b7 c0 k (setq ltype_number (1+ ltype_number))
) j0 o" A# s% G/ [( @* D
: Z, @. a1 r; e+ U; b )
) x0 M6 V8 ?: T+ h& F3 V! |# d6 G4 S& C, P, G6 j
;; Remove Collecting message.+ C$ L" [# ?$ h4 `2 M4 `" _1 M
(set_tile "error" "")* N9 F6 T q# V& J0 Z
' q8 U! b( A" p" u6 [7 l) {) `
;; Sort based on maxsort.# m# {4 F8 e7 t1 ]. j/ k/ ?1 M
(if (>= (getvar "maxsort") (length sortlist))
1 Z4 Q3 r9 `5 V+ k+ g (progn/ H" E* S% J8 e P! c c
(if (> ltype_number 50)% w% s+ b F0 Y3 a {+ @. X4 ~9 ~
(set_tile "error" "Sorting...")6 n: R- p7 q2 g4 m$ q2 r
)/ d7 Y6 ?1 Y3 ]$ H+ @* a) r
(setq sortlist (acad_strlsort sortlist))
8 V" B0 i% m! v7 |/ j( n+ [ )
2 ~' u9 B5 F, e% X6 l (setq sortlist (reverse sortlist))
/ t4 }- p0 n; K )$ E |" |8 U/ r$ L& {% K; G2 p
(set_tile "error" "")/ ?7 O. h' }" I, Z- i+ N
(setq ltnmlst sortlist)
2 A; h, @7 C9 u& l4 _( B1 y$ \) F/ z3 \2 L0 M
(foreach ltname ltnmlst
" d0 a. r/ [; T. c (setq ltlist (tblsearch "LTYPE" ltname))# s: v7 [7 V) X% y/ q
(if (= ltname "CONTINUOUS")
- N3 I# @# @& l d) I5 T, e! r; H& a% _ (setq mdashlist (append mdashlist (list "CONT")))- D2 W* l7 R' j+ I2 D/ A
(setq mdashlist+ o1 t# _2 Q3 i) k- x
(append mdashlist (list (add_mdash ltlist)))
6 ^9 u% j* e0 R )
& D' n# e0 @% F- Q ), [7 l9 p& N" c; Y t0 w
)
" K; q* J" J: Y, D (setq ltnmlst (cons "BYBLOCK" ltnmlst))+ G( J7 n/ x; r0 ?7 h, X
(setq mdashlist (cons nil mdashlist))6 D2 d1 z2 P# D. e" Q( e
(setq ltnmlst (cons "BYLAYER" ltnmlst))
5 S6 m& r+ u3 Z! n* Q4 i (setq mdashlist (cons nil mdashlist))
/ a3 L% k0 I; Q, i* A7 `4 } )$ W8 h. O# e* P7 `0 a
;;2 c: N7 B( H0 n! c& A4 d: Q
;; Get all the group code 49 values for a linetype and put them in a list3 ]% T- o- v4 v- `
;; (pen-up, pen-down info).
4 v$ i& O. a' C ;;+ c* ~ @9 g0 t6 F5 j
(defun add_mdash (ltlist1 / dashlist assoclist dashsize)
6 I1 B0 ~; z' M$ c, C1 ~& g (setq dashlist nil)
. F, P" P& k7 g4 M (while (setq assoclist (car ltlist1))
- g, X. Y3 \) h2 n (if (= (car assoclist) 49)3 l) N% W; b% E I
(progn
5 ?2 Y' {: Q% R- r4 n) x$ N (setq dashsize (cdr assoclist))
1 u) B2 j; ]: x; W6 F (setq dashlist (cons dashsize dashlist))* Y9 f2 h: {7 q3 M T7 n
)4 w/ }8 O; Y3 L; O8 j
)7 \8 `! D U. R) }5 y! E: u
(setq ltlist1 (cdr ltlist1))$ D E5 {( }; r$ `1 S: x
)
! M/ B- t# O% q$ i! q# Q (setq dashlist (reverse dashlist))
/ w- E: I$ s# Y% V: h )
( B- g2 g" f( ?4 K ;;
0 B. f) f# O8 i ;; Color a tile, draw linetype, and draw a border around it6 w% d6 O/ R6 e6 O, f
;;; p2 a& _* G5 r% ?1 x
(defun col_tile (tile color patlist / x y)
: h4 j0 h4 j1 E" f$ D1 k (setq x (dimx_tile tile))6 T6 U9 J" B( o: v; d
(setq y (dimy_tile tile))
! E6 K S4 p$ G! G+ t" y (start_image tile)
7 [. I. _6 x. t7 A% k8 c: W! N) o! ?8 N (fill_image 0 0 x y color)
$ y7 ^+ ?: t+ }7 {# c c (if (= color 7)
+ J9 ~ `4 q6 O2 b% q (progn
" G' d* M5 F- Y* F; }" A; f (if patlist (drawpattern x (/ y 2) patlist 0)), I f; @0 o4 |7 q, c$ ]5 h
(tile_rect 0 0 x y 0)
& D2 V x; w! x# a# C )
8 v8 E/ P% |# W8 V6 Q f* f1 w (progn
6 S N1 o( R6 d2 L8 r (if patlist (drawpattern x (/ y 2) patlist 7))$ i# C& n# h7 k; y
(tile_rect 0 0 x y 7)9 B! |$ \, A) e- ^8 i J: b
)/ Y8 w0 P. r5 g |7 _
)0 t# i. q5 `# [5 q* X+ b
(end_image)/ [% M( j: e7 Q3 F: r) b
)# t0 F5 v" e4 H( R- f" Z; Q1 N
;;. r Q# J! E! y
;; Draw a border around a tile4 ]6 ~! {2 K4 A# R: \( L, {
;;
7 g8 G$ k0 [- v3 { (defun tile_rect (x1 y1 x2 y2 color)7 \* j' t+ N% h- Y$ S4 k4 G) s2 w- W2 G
(setq x2 (- x2 1))' |# D: J0 _- h+ `& X3 ^
(setq y2 (- y2 1))4 y8 O! L, t9 l0 B/ {0 N0 D
(vector_image x1 y1 x2 y1 color). Y8 f+ r* a; I2 n# m
(vector_image x2 y1 x2 y2 color)
$ \6 [5 i# {1 f: u (vector_image x2 y2 x1 y2 color)
) v9 ~4 }6 B7 A7 Z' L! W (vector_image x1 y2 x1 y1 color)8 J0 ~9 Q! J8 J# J3 ?/ z- V
)
+ C6 f w0 x7 F6 k ;;& v+ D, E4 Q' ~! E/ S
;; Draw the linetype pattern in a tile. Boxlength is the length of the image, \4 A/ G+ O+ V5 G% m' w1 g# x' |
;; tile, y2 is the midpoint of the height of the image tile, pattern is a
: u5 N) H4 B( s ;; list of numbers that define the linetype, and color is the color of the
. b3 R/ S! m+ f8 @! c( o. s ;; tile." }6 f5 ^- a) I- K8 I# k
;;
4 T& A4 P9 C* {$ e) J$ a% S (defun drawpattern (boxlength y2 pattern color / x1 x2
' i( }7 J6 k; C3 ~. X. V! s9 @. { patlist dash)2 K% P3 B7 p9 q# a3 ~# t) ~
(setq x1 0 x2 0)! {7 L- q% M: @% G6 l
(setq patlist pattern) S- D* a5 e! ~* v/ j/ e
(setq fx 30)
' D- T( @' ]+ H7 D# A/ C1 s( b (if (= patlist "CONT")0 l9 m4 e% G3 p% Q
(progn (setq dash boxlength); }/ d3 r8 _. y$ h4 f* w( g$ j
(vi)
# G" }3 \' P# W, O) M4 B* s2 T+ ~ (setq x1 boxlength)
1 s; B/ [" [+ O% \+ y2 ^- i )
5 h$ P# i7 S; f* [: R (foreach dash patlist( `6 x/ J+ P' w# Z G+ c _6 q% R9 R
(if (> (abs dash) 2.5)
, e, h& F1 z! B9 ] o7 ^" v (setq fx 2)
. L) X% E7 L0 S1 h; f, { )+ S+ R9 S, w- c2 N
)
. b9 `5 K3 T5 z. ]1 v# Z# V( k* ? )
& [' k6 { u; A6 C (while (< x1 boxlength)
+ M- C' F6 ^8 h- V+ w (if (setq dash (car patlist))
" t9 C$ m: ~% L (progn0 T4 S6 B. z/ I! q
(setq dash (fix (* fx dash))); {, u5 |4 l% T+ L% c; G3 g/ r# @
(cond1 H u: q. F& u: l# }
((= dash 0) (setq dash 1) (vi))
9 v) B8 P- v) h+ e0 R ((> dash 0) (vi))& o5 \" M5 f5 w4 T$ b
(T
& I o/ u2 K* |! ~/ }# W (if (< (abs dash) 2)7 A( v9 I& |3 c% S; O4 p. y+ T
(setq dash 2)2 S" x. R5 y7 T0 z8 T0 a5 e
) t8 u b: D K/ D* @3 w6 h+ z
(setq x2 (+ x2 (abs dash)))1 F6 ~, p) N9 M5 Y
)" N* j Z8 ^. I. F( \
)
! k; m, I y' ] l- p) A (setq patlist (cdr patlist))6 a2 e# u2 s* u1 y; ~
(setq x1 x2)# D, h) Z9 q$ @1 X5 A
)" F, Q6 z* E( H: Q$ ~+ ?
(setq patlist pattern)* B L" ?& O' C0 {6 i+ a
)' w7 ~) C8 _; H$ m
)
6 u+ t; A { T3 q+ _5 |$ p- I2 ] )
/ N& K9 T( W' L/ n R9 e- s ;;
, E/ Y% @& |) c( k5 P ;; Determain state of xclip! s# \+ A6 ]. \2 P! X* a o
;; Returns the group 71 value of the spacial filter dictionary.+ }* Q1 Y- o% Z% x
;; If the entity doesn't have a spacial filter dictionary, this
. ?' O( ?5 a* s- ^ ;; returns 0. If it does it will return 0 or 1 depending on the
0 Z& b# J; e0 F% z6 y ;; current setting of the state of the clipping visibility.; x# \( V6 d# @4 ^$ W% U& h( K
;;
: d% R. s3 g/ v, U# p (defun xclipon(elist)
+ O4 x8 z& o, J6 w7 ?4 \" e- O (setq hasclip T)
$ N$ g# h" N+ S/ t: ~7 W (if (/= (assoc 360 elist) nil)
1 H" m& |! d5 z, X9 i3 T (progn
% X3 s& z1 S) v: |. \5 o (setq tmp (entget(cdr(assoc 360 elist))))$ e: t9 U; }' v# ?, f3 n
(if (/= nil (assoc 360 tmp))
& [7 F% ~1 A" x B8 p T2 v (progn/ k2 m6 q4 b1 j) G2 m1 B
(setq tmp (entget(cdr(assoc 360 tmp))))8 u4 x& Q, w* w9 l
(if (/= nil (assoc 360 tmp))
* W* B r1 {# L, L' c (progn! }+ A1 w1 k- @% R+ w# ?3 T, g. B) T
(setq tmp (entget(cdr(assoc 360 tmp)))): ?5 V3 g- G$ B5 v
(if (/= nil (assoc 71 tmp))
- A1 o9 q) l8 }# H+ G (cdr(assoc 71 tmp))! Q1 E8 ]: N2 \5 z( d6 ^
(progn " d" K* L: q t Y
(setq hasclip nil)
4 p" b7 `5 V3 o. g. b (eval 0)
& Z6 b7 _3 g( i* L( U )
' v9 Z& u# w0 Y+ H )+ k) L4 R: K$ }6 ?, }% z; E' C
)* u% i) \* H$ ?2 K$ [) ]' h1 A9 S
(progn
7 T+ _3 X* f8 t2 ~8 }1 e (setq hasclip nil)
. E8 E& ?; q; l* j! S: i (eval 0)
6 y( o; a; t, ] d: M& o ); p3 p' i' ?$ m, p
)
8 C6 _1 ], v/ D) x" d7 R8 y )
! H8 \' r$ u" S5 W& E2 b U4 X+ v (progn / R' d9 \4 r$ y# u# Q$ _( ]; a" b
(setq hasclip nil)
+ u4 {% s0 j4 z+ H" s (eval 0)
1 Q0 \% |7 Q4 ^; [ )
9 q3 b6 D$ B t )
6 \+ X2 h1 E7 O$ n. o' @ )
# Q/ F8 w* k3 a5 i. i5 z (progn 9 v: u1 T+ z, u
(setq hasclip nil)+ c$ A {/ V: s$ N
(eval 0)
& B, i: E/ B; H6 ~ )
' o7 w* q# d, n: R/ e( j )7 T9 j7 O& P; R. ?
)
/ o9 H! I& H: N- {6 }6 a ;;
' l& c& G8 }5 |- ] ;; Draw a dash or dot in image tile
/ ]" W$ H7 S2 I" t ;;
1 J8 h* M- n0 P (defun vi ()
H& m8 ] d" ~; V% b3 i8 f (setq x2 (+ x2 dash))
: _- p% Y! Y+ o- M; Z (vector_image x1 y2 x2 y2 color)% [5 c% z& T: C) b: A {% z# J
)0 d& Z( o/ q7 M P
;;
# [+ K d' V% p; U4 N+ u ;; If an item is a member of the list, then return its index number, else
$ V+ K; {& z# O- J3 g5 l ;; return nil.
$ A! p7 o: t1 f3 j" E: n ;;
! T4 Y* ?" W- X+ b (defun getindex (item itemlist / m n)4 m8 i4 c. A& Y+ G
(setq n (length itemlist))
' J! M- G2 t5 e3 S$ ? (if (> (setq m (length (member item itemlist))) 0)
! n- X1 w. P! {" D, ?9 c4 ^ (- n m)
2 z$ i6 i) u$ j' y: r nil; Q! x0 M) Y* x- F2 S
)3 o* v% a/ H( ~2 {+ ~' j5 ?* p
)
2 j B( x. P& ^1 T ;;
" L5 q& T/ Z% U( I8 m% J ;; This function is called if the linetype is set "BYLAYER". It finds the( W( I+ O2 s @
;; ltype of the layer so it can be displayed beside the linetype button.
9 U1 B) P% X: H( y5 z$ P R; A ;;$ ?1 g/ k) b1 o- t2 V: a2 ^2 A" }# G
(defun bylayer_lt (/ layname layinfo ltype)
; a# Z; d6 R Z8 ^/ C (if lay-idx
; f2 ]& Q" u* G( m (progn) r, ~. u( v) [# L6 G
(setq layname (nth lay-idx laynmlst))) V6 C" g7 q8 S1 ]
(setq layinfo (tblsearch "layer" layname))
, K5 f0 m& H, _! a4 ] (setq ltype (cdr (assoc 6 layinfo)))
; e+ J0 P7 M# U2 h { "BYLAYER". n1 j% |; f% A6 J$ T0 M
)2 Z6 v0 I. R8 H+ ^# o
"BYLAYER"% N; E' R ~0 q" I1 |
)9 m% t2 i1 b0 R$ n8 T
)& r, y9 d/ ^! c; T7 Y
;;
- b3 ^% |6 {1 y7 K. H) e* ~ ;; This function is called if the color is set "BYLAYER". It finds the color8 ?8 v2 ?4 g9 ]
;; of the layer so it can be displayed beside the color button.2 t: w' i( `/ M- h
;;9 ^; T# w2 d l' }
(defun bylayer_col (/ layname layinfo color)1 p9 U f) W& M# L4 R A
(setq layinfo (tblsearch "layer" elayer))
) p% G3 I. E% K1 M5 W (setq color (abs (cdr (assoc 62 layinfo))))
9 i5 Q" K+ M& ^0 \( q )
2 p* I" r: x9 \$ N" \1 T! ~ ;;* W( j* E6 P! r" w
;; Used to set the color name in layer subdialogue.
; t/ t. z! S- ]7 h% b ;;
3 \5 a" U2 k, G p8 D) \4 m& y (defun colorname (colnum / cn)) Y; ~8 {$ J5 t8 \
(setq cn (abs colnum))9 o; J: t1 _) J% w0 o2 L
(cond ((= cn 1) "red")+ s9 [3 q- B [! F
((= cn 2) "yellow")
7 b' f, M5 k9 Q! K* ]4 D ((= cn 3) "green")
" x- e' g% N& Q+ Y2 L5 Y0 ? ((= cn 4) "cyan")
( P) c4 R6 o/ Y( v5 R ((= cn 5) "blue")
! {3 `5 V9 A: y: [ ((= cn 6) "magenta")
# O9 s) t! W# V* c ((= cn 7) "white")
4 _, X8 t' A: A2 x' f (T (itoa cn))+ z+ w& O( a" X7 H# b- _
)
: e# b- I. `+ N; |) E d! L )( Y! D3 t7 U$ I1 [! w6 K+ a0 t- y
;;# S! P% q7 o, \6 [# D6 F, v5 P, ], @
;; If their is no error message, then close the dialogue. w' M4 o7 C' Y- `
;;
$ f* s1 g) [8 q, z' j* K7 c (defun dismiss_dialog (action)
. O$ C" T% I" r+ S. N; O0 N+ M (if (= action 0)
! x+ J3 ~3 x1 w+ ] (done_dialog 0); h, ^: I% q) l6 \- H& P
(if (= (get_tile "error") "")0 g5 q! ]6 W6 f& ~& a* d0 x: \+ X
(done_dialog action)1 g0 L/ |+ q% f" ~# K6 \
)# V8 a( G' s2 f/ ?0 f- p2 T( S
)" c3 s2 L4 i" d2 r7 I9 j+ J8 L
)
3 `4 ^( _# m0 q( F% }6 N$ y" y) Y3 B$ q4 o" }. k+ U
(defun test_ok ()% R1 p. R. ^/ j
(if (= (get_tile "error") "")
5 b# B$ ^! }! c- j( U' C (done_dialog 1)
, m5 `! w! x& A7 s7 h/ M& x )
# Y) r" H' J/ ` )
$ c$ g& `: G- O, v9 _5 m/ n( c; S1 z4 F2 r$ ?9 c
(defun cancel ()
3 _2 S5 L- h1 ~& a" T (done_dialog 0)
) g) C4 D1 E) D; c0 c )0 E) s3 f O# b# G3 V4 V
8 V9 d8 U! _! }2 v- D5 h# ~
;;; =======================================================================
5 _; b4 X+ k) v+ G;;; SETUP layer and linetype lists for application, and initialize all
& P6 d" k& B6 _5 @3 L;;; program variables.
& E1 ^; ?: d" f
' p; `5 ?: t' j5 E/ @) j# P (setq elist (entget ename)
7 {- Y" b7 c1 q8 n* {! | old-elist elist7 P" y/ l8 a1 T7 r8 s
modlist elist g/ O+ P! [$ o8 u# H
etype (strcase (cdr (assoc 0 elist)))& D4 ]! T) N/ V: P+ x/ A
ecolor (cdr (assoc 62 elist))$ d- z/ R8 @% O2 O
elayer (cdr (assoc 8 elist))
9 P \% m; z5 u0 R- k eltscale (cdr (assoc 48 elist))8 G* Z. g/ W! b& @+ J" P6 U
ethickness (cdr (assoc 39 elist)) u6 t- s! x) W
eltype (cdr (assoc 6 elist))
' L" {' `3 X, c: l: g. [: U( F# L )
{) E! ]& H( d1 K. a0 M (if (= (assoc 210 elist) nil)
. B4 W+ t" f( S" ]; @, T; M (setq extru (list 0.0 0.0 1.0)) }( U6 K: m, J2 s& ~ C
(setq extru (cdr (assoc 210 elist)))
. e/ R8 a& k' i8 F1 C$ O& S+ b )
9 o8 V" l) a! _, l% A8 ]8 y0 M ^1 X
% h# f; h6 S7 S o% W (if (not ecolor) (setq ecolor 256))7 W! O1 d! F2 O4 B" q4 j+ U% P; U
(if (not eltype) (setq eltype "BYLAYER"))
! a) Z( K0 Z0 h, { E0 b( h (if (not ethickness) (setq ethickness 0))
. b+ U+ Z5 a1 m1 _ (if (not eltscale) (setq eltscale 1)) f& s: f0 Y9 P! \9 l6 z* {6 o
) ; end ddmodify_init% G" V2 P/ c1 u# v+ A
5 I- Y2 J( s. O! L2 @* O6 K; z" X;;; --------------------------------------------------------------------------
: P4 Q% ^# r) @) b/ @( d;;; Function: DDMODIFY_SELECT- A, t) P+ X8 ~' |+ ]1 V
;;;( {) c! I2 D' E [: W0 t" R
;;; Object aquisition function.* M) s; D$ H$ R; [
;;;
! n0 R+ Y3 Q: M! l;;; (ddmodify_select)
) y$ z: g: p# |0 a;;;
9 H2 ^. n5 k. s6 C) t1 R;;; Obtains object to be modified, in one of three ways:4 j# R% T1 _1 G& P7 k
;;;
7 [) @7 h5 h2 G: q5 Q;;; 1 - Autoselected.9 L" }7 h4 Z: W3 ~
;;; 2 - Prompted for.- x/ E- l8 n! V* K8 l) Y4 ?
;;; 3 - Passed as an argument in a call to (ddmodify <ename> )5 ^+ n1 R* q0 s: x
;;;
/ G% o1 S4 x# y. R5 t( s;;; The (ddmodify_select) function also sets the value of the2 [' k% J7 I1 x
;;; global symbol AI_SELTYPE to one of the above three values to+ F: t- m8 v8 Z. v, k
;;; indicate the method thru which the object was aquired.
O$ q" A. S3 q% t0 V; R+ D;;;
, w* K8 x$ ]6 l0 k5 h;;; This value can be useful to applications that want to RESTORE
$ X8 S$ B2 j# `;;; an object that was autoselected to its previous selected state; ~4 @! w& b8 I7 c
;;; when they terminate, although there doesn't appear to be any
8 [( {# N1 j) {;;; way to do this right now.1 E" l4 [' S. j8 k8 i1 F
& w2 O; ?* j+ Q1 h& U7 P(defun ddmodify_select ()
+ A; R9 J& e6 Y+ G (cond
( L+ H8 d3 i- K7 U( M) e) s ( ename ; (ddmodify) was called" v1 X7 R! _3 m. \: b
(cond ; with an <ename> argument$ w) @, U$ ?2 u% t9 `: D
( (entget ename) ; If object is non-deleted7 c0 w6 Q, v- n& G* p; J
(setq ai_seltype 3) ; then return its ename.
/ Q* Q6 g" I. [8 \, ] (ai_return ename))))
( |2 S! a& p5 j0 q4 _& U$ x
' V9 ?% h( Z3 g* G+ ] ;; return auto-selected , see ai_utils.lsp( k% @ P' n0 n1 j$ `& U) g/ N( Q
( (ai_autossget1 "\nSelect one object to modify: "))
C9 W7 S: z& y+ d; T! H9 f
) P6 H, Q7 Y4 T6 B8 x9 { (t (princ "\nNothing selected.")
8 e. R4 c& e# R$ ~ (ai_return nil))
( z( _# z R, J# s )
2 m7 M3 ^1 M& M A8 \9 x)
/ S% y- x& Q1 ?! @
. ]0 @0 P: F! u5 G5 Z;;; ============= Command line interface function =======================9 {! Z3 L0 h* Q5 S
/ K `# L# ?7 g$ `" x& B- N3 A, @2 P
(defun C:MMO ()* \; A& `" U3 ~
(ddmodify nil)1 c/ _8 u+ I9 `# }
(princ)" B! d2 e' F' d* n) r
)3 _' \: U# R% E8 R- Q
+ A' S# ]! P' u3 s0 Q- u' k- N;;; ================== (ddmodify) - Main program ========================
% k: P" s; t: }; J5 e- {;;;
6 d5 B$ K$ |' }* X;;; (ddmodify <ename> )2 e* k9 i3 y g$ N4 A- \1 N# m7 B+ I
;;;# ?7 P3 o* r# }* K3 G4 g
;;; Main program function, callable as a subroutine.
$ U+ @; c& r' o; g" x l) Z;;;
: | z) H5 t! c- v& d- V! j;;; <ename> = object name of the object to modify.
7 J4 e, U7 w' r0 ~* z;;;
& d1 S( w# m* p: \' Y;;; If <ename> is nil, then user is prompted to select
u# w' W B# H0 G;;; the object interactively.
( p9 D0 w0 H) u2 V6 P;;;
3 F1 q- V' Y3 Z# h- W, Y;;; Before (ddmodify) can be called as a subroutine, it must
& r* V6 @7 ]1 N; f;;; be loaded first. It is up to the calling application to$ t! U, V. J* r! c% a
;;; first determine this, and load it if necessary.
6 c' M3 N9 S+ Q, t
& |% L& [ n% R w% \ b5 z! B" V5 M3 J4 ^. s
(defun ddmodify (ename /. ]- L9 N1 \2 D4 ?8 M
2ndpt ell_calc_area move_pt1 templist6 `& S" j# {" X7 G& V# W
add_mdash ell_tile n tempmod5 E7 k) a& F" b$ V+ N! U( e! }
alipt eltscale name tempst_ang7 H. p) ^8 E- f3 ~9 @0 t
ang eltype newpoint test_ok! {7 K3 [5 I/ E1 B) j
arc_calc emod next text
) y9 t0 }! Z4 k4 g7 |8 iarclen end_ang next_vertex th-value
- \7 T# d4 {1 C0 Y G" ?assoclist endpt obl tile
6 X+ q6 m8 E4 Batprompt errchk off tile_rect1 s5 a9 e- @6 H% p! J
attag ethickness old_majrad tilemode# {0 u' [9 d1 L! X4 K
attprompt etype old-closed totang
7 X2 `0 g' j: O. Mbit extru old-closedm tstyle. w8 Y! T& K( `+ U
bit1 fchk old-closedn u% I5 w: |5 ]7 _$ D4 \+ p8 k
bit-10 first-10-rec old-elist undo_init5 z4 `3 [2 n4 T0 S; ^5 K) _
bit-11 first-10-time olderr upsd
$ ?/ }. o. ]6 s1 b. M8 |0 ]bit2 first-11-rec old-fit v
. _6 n5 w$ X. R7 R2 U1 ibit3 first-11-time old-idx va
5 f% G( W% j' w; _) \2 [" g7 Gbit4 fit oldlist value: d4 k" n( e! f: K
bit70 frozth old-spltype ver_4
0 h# [- ^% i. Z0 m5 hbit-70 f-vis old-u ver_ang1" g# \6 [/ v8 i, u1 k5 p
bit75 fx old-v ver_ang29 J" B# f. w/ g6 L B- K b D
bk-up get_color on ver_col
' h! p% G2 s2 C% `7 qbkwd getcolor onoff ver_colsp4 T% {+ y1 p& F, v: g
boxlength getindex on-off ver_eangle7 n2 f; q! ~. H
bylayer_col getlayer patlist ver_hght8 ~ }$ U2 }; R
bylayer_lt getltype pattern ver_majrad
- b7 @, R" A4 V- Wcalc getthickness pltype ver_obl/ }) p+ O1 o4 w# ^0 ?% V& K7 e, o2 U; F
cancel globals polytype ver_pt1# @, g" f; F- D5 T7 {( o
cir_calc ha pre ver_pt2( ?. d6 Z* N* C5 j- m. F4 z
closed ha-prev proplist ver_pt3
3 H& ~) s3 x" kclosedm help_entry pt ver_pt4
- p$ J8 }6 _9 T8 u* i" [6 F Gclosedn hght pt1 ver_rad+ J0 B# [: u$ w8 n0 D) Y4 n. L
cmd icvp pt1_eq_pt2 ver_rot$ b# Q% N* |" f; \6 V
cn image_add_vector pt2 ver_row1 }" ]0 U3 A- D6 l. s& K8 F; d
cname image_clean_variables pt3 ver_rowsp+ [. ~, N' W/ K9 }0 Q+ B$ X0 L
cntl-pt-indicator image_cross_product pt4 ver_tag/ N+ x, h k1 L. B$ p
code_71 image_disp_opt ptype ver_u# Y* `, N+ p" U* Q# M- C' b
col_tile image_dot_product radius ver_v
" O3 _% T3 y- j( f1 F0 W8 O0 {( gcol-idx image_normalize_vector rational_spl_flag ver_wid
0 x$ a& v5 }$ _# A. b/ w" rcolname image_rotate_vector reset ver_x15 V, |+ h1 P/ a% u4 `
colnmlst image_scale reset_flag ver_x2
; D/ }. {$ {- V6 i" i! b8 mcolnolst image_scale_vector reset_lay ver_x3* H% h. D7 ]) Z+ V
colnum image_update reset_lt ver_x4
: ?! V/ Z; p' b" Acolor index reset_uv ver_xline_pt1
8 d. Z, ~* H9 b/ _9 q6 K* z/ k6 ~$ N! icolorname inv rot ver_xline_pt2
' L; m% g5 Y' hcolorno item rows ver_xline_x18 q/ d- q& ?2 n7 a' k& H! Q
col-sp item1 row-sp ver_xline_x2
9 ~8 E6 ^, E" ?4 Kcolumns item2 rrat ver_xline_y1- G7 v* D7 J# ^1 \* L x
con itemlist s ver_xline_y2
: n2 i. y- s$ _8 h2 Dcoord jlist set_action_tiles ver_xline_z1
% e, h+ V$ u) n7 tctr jlist_act set_just_idx ver_xline_z2 k/ E8 k' q1 C$ X% y' F! \6 J
cur-10-rec just-idx set_tile_bk-up ver_xscl
, u9 s* l% \( q6 H: k& H" Pcur-11-rec layedit_act set_tile_cntl_pt ver_y14 a$ {5 [, t3 \0 h3 O0 H0 {- h
cvpname lay-idx set_tile_data_pt ver_y2- d) R/ w: T& q3 |0 W
dash layinfo set_tile_dirv ver_y3
! r, U4 m, _/ W" [0 v# Jdashdata laylist set_tile_edges ver_y4
2 z$ b" ?( d$ C0 l$ Kdashlist laylist_act set_tile_endang ver_yscl( C p N, i+ _8 h0 F/ [! h6 `
dashsize layname set_tile_hght ver_z1
$ E# K' z2 K0 M+ _data-pt-indicator laynmlst set_tile_icvp ver_z2/ i, ^( r; Z; `
dcl_id layvalue set_tile_just ver_z3
& C+ L% u) L2 I, t$ S0 Mdd3dface line_calc set_tile_obl ver_zscl
: d3 N1 I) w2 z8 ^0 C+ U" H; h* @dd3dsolid linetype set_tile_prompt verify_a
6 T- K' y5 B* d6 _( \ddarc list1 set_tile_props verify_d
9 a* _# X1 I0 X, S3 Y$ mddblock longlist set_tile_pt1 verify_i
1 k" {7 \+ R3 Uddbody ltabstr set_tile_pt2 verify_xline
9 r! t* {: r& @ddcircle ltedit_act set_tile_pt3 vfy
4 Q7 S* }3 ]6 ^/ m3 Iddellipse ltidx set_tile_pt4 vi
8 t7 V( f2 m+ C1 tddgetprompt lt-idx set_tile_rad vlist
: P& J4 U: {6 k1 |9 E4 Uddgettext ltlist set_tile_rc vname
+ @# e7 p: K5 s) I, iddimage ltlist_act set_tile_rot vpf+ g% E6 H" V2 i% M7 A
ddimen ltlist1 set_tile_scale vpid
$ o2 h. z9 h: o# T' s- tddleader ltname set_tile_spline_props vpldata
/ @& E0 Q) m1 ]8 @7 H' iddline ltnmlst set_tile_stang vpn
! f) F; G! s( g( u$ d: C4 addlist ltvalue set_tile_style vpt
1 l1 j0 m+ O5 Xddmline ltype set_tile_tag which_tiles
/ T* c# c2 s& C S/ h- l9 R3 n9 O! g9 fddmodify_err m set_tile_text wid$ f$ C! X/ o3 G. F
ddmtext majrad set_tile_vpt x. V7 A$ O8 s- _8 E- z( {
ddpline make_lay_lists set_tile_wid x1
6 Q# \ S9 A8 F1 yddpoint make_lt_lists set_tile_xline_pt1 x2
! d" U" _2 t9 W) mddray mdashlist set_tile_xline_pt2 x30 S* @2 i. R5 K
ddregion minrad setcolor x4# @% z) |- Q! H. s" d- \
ddshape modify_3dface shght xdlist$ T |6 F% O4 \
ddsolid modify_3dsolid showpt xline_pt1$ Z1 b% d7 Z+ ]2 S7 p& m
ddspline modify_arc size xline_pt2" s! r" O8 {3 m
ddtext modify_block slist xline_x1; J2 b8 _# N/ N' Q. o
ddvport modify_body sname xline_x2, ^2 V0 p2 r8 S. S
ddxline modify_circle sortlist xline_y15 c- p6 G g2 P: w. z# w' X0 A
denom modify_ellipse spltype xline_y2) K3 U: B# b) ]: Z& M$ s; ~
dialog-state modify_image ss xline_z1
+ u! ]- W q7 R1 N) {5 d8 i7 mdir_pt modify_line st_ang xline_z2
+ c1 k P x; d1 W# ]+ K+ D* xdir_ptx modify_mline stpt xscale+ {" ^+ e7 k% A9 x* h* X2 N% F( R
dir_pty modify_mtext style_act xx# t) ?6 T2 \, c: x2 T( {' A9 t
dir_ptz modify_point style-idx y. b1 L0 `- s+ w' [
dismiss_dialog modify_polyline style-list y1! D( z- O/ o I4 u; L3 K3 \& V$ Y
drawpattern modify_prop_geom tagval y29 G( d) i% g) d( x& Q. Y; C5 z: q; y
echo modify_properties temp y3
3 y% _6 n+ |! A9 E( q/ }) F0 V' zecolor modify_ray temp_color y4 E$ o0 i8 h3 O# {
edge1 modify_region temp_dir_x yscale
, V0 E- m8 k x/ H w. U5 ledge2 modify_shape temp_dir_y yy
4 ]4 a0 o) n6 G5 N+ x" ]# L$ U1 ]9 ?- Xedge3 modify_solid temp_dir_z z1
/ }) s+ z5 z! sedge4 modify_spline temp_xline_pt1 z2
0 U- K% m3 X2 P7 I. ~9 Gedgetest modify_text temp_xline_x1 z3' z7 V+ [! M& F- ~ I
elayer modify_vport temp_xline_y1 z4$ u" h5 Q& f* w6 x) e! Z
elist modify_xline temp_xline_z1 zscale; E: v6 ^" X3 V- S C8 ^& n% C- z
ell_calc modlist tempend_eang zz% P |! J" c( K# T' C
dir-idx safe_ddedit ver_MtextWidth xcliponoff
9 u L0 s- q! C! \MText_style
0 y9 ], g9 E3 n+ u$ ]/ v/ f ): J3 L; J$ p2 L* d* P
1 R' W1 Y3 j6 m& T* B% S. L (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho) w: z, w/ B) g! T
old_error *error* ; save current error function
+ j A7 j- K. s' B *error* ai_error ; new error function
/ o5 h B. n$ b5 E9 Z- E0 p! z6 u )3 i$ @4 [- l2 N. r
, U x9 L( g" Y; F
(setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
0 c( V) y: f; M2 j+ A& s: G0 C (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
& H2 F( N& o0 D (setvar "pickstyle" new_pickstyle) ; bit and set to new value
5 Q f& V- N' W! Y
, e8 S; X* w! u; J( v+ a9 e (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)5 F3 E# a( ?0 i
(t 1)))
" ]& z+ P6 g3 p. L (cond
" `6 k& y5 k+ `& n2 q. E6 J ( (not (ai_notrans))) ; Not transparent?8 b* v9 b2 c! Y \
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
" I. D+ x% E `& M1 C& R% T1 T ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?) N% G5 g t$ `" F
( (not (setq ename (ddmodify_select)))) ; object to modify?
3 ^4 R+ Z) _: i3 G
+ D0 d9 {, n3 ~9 `$ w2 ]) H: m (t (ai_undo_push)3 I' j2 i6 M3 {4 I/ o
(ddmodify_init) ; everything okay, proceed.
% D4 B) Z0 k: H' [, o' U2 @1 L (cond- M: }% v, z4 a& [) ?+ ]
((= etype "LEADER"); G: a- @# l; p5 \1 s5 Z& s1 ]* R
(setq help_entry "modify_Leader_dialog")
% z" B, G+ h, Z' n (ddleader)0 J4 m( ?! O8 o, e2 J- q3 N
)$ Z1 r5 X8 a: g$ @' J
((= etype "ARC")! N$ f1 Z% F7 M4 X( b
(setq help_entry "modify_Arc_dialog"). ^5 Y1 T# ]) u7 @
(ddarc)' _- b5 H/ d* J7 a# b
)3 K, _ E& i( y- J3 M9 C
((= etype "ATTDEF")
. [* C* n0 S- u (setq help_entry "modify_Attribute_Definition_dialog")
* j; u! |# a! {% n) R" l (ddtext)% I% d j* R1 U) x7 R5 U
)
) P. i2 {5 e& x) u ((= etype "CIRCLE")
0 W* Z w' A2 B8 W% o (setq help_entry "modify_Circle_dialog")
1 q. F# J( s$ ?5 c0 G (ddcircle)
/ q8 I) E5 K: O )# y! s1 @; F5 W
((= etype "ELLIPSE")
; D7 O: @3 C/ k (setq help_entry "modify_Ellipse_dialog")
' e! V ]7 h/ a5 w; ~ (ddellipse): r Q) i* f! h
)
- f0 k8 I5 q& ?9 E ((= etype "3DSOLID")( g' _2 C2 Q w; ^
(setq help_entry "modify_3d_Solid_dialog")
! v n0 a! _6 t! F (dd3dsolid)
3 {1 Z, q. f3 H )% `+ |& v! h6 k& x' ` z0 ~
((= etype "BODY")! C. b+ G3 q+ d/ o
(setq help_entry "modify_Body_dialog")
i V @9 `# J: c (ddbody)
0 E# L+ T' D \( I )
7 }% W1 K1 n( i7 G8 k" T ((= etype "REGION")
9 u% d9 U: H+ K0 D" [6 S (setq help_entry "modify_Region_dialog")' R F6 k0 |1 G: q% }
(ddregion)" C4 R( J8 b q* g" w8 `
)
" B, I' r0 W" p/ g2 k% `/ B ((= etype "HATCH")
7 Q0 | ~2 i8 ~ (setq help_entry "modify_Hatch_dialog")
. d# @, t5 p% {: m. v) ?* v (ddnewhatch)
8 b2 s# z+ C7 w7 R/ ^( p0 |4 t* z )# {. ?! Y6 h- `
((= etype "SPLINE")
2 S! {2 X+ R* J6 _1 I1 P7 p (setq help_entry "modify_Spline_dialog")8 T+ X3 O' C: s; v8 b2 N8 _' ]+ M$ m
(ddspline)
* P( g. p+ n+ B+ {' `% R7 G: r )( c0 [* D' T3 H( p4 G
((= etype "INSERT") ; see ddblock for help_entry
+ L) i, D- v1 i( M2 H1 ^/ k (ddblock)
t2 K( N% O6 @9 U% C )
& a/ P0 {' G9 }& ~# f' L/ [* W ((= etype "LINE")
4 E- v/ q, P$ B! T (setq help_entry "modify_Line_dialog")
0 @7 i+ V* K& R (ddline)
; _: r, o: L" ] y) f: ?5 s )+ |! D. Q6 `, {! d
((= etype "MLINE")
1 G2 L4 h- W+ M0 W3 d2 x (setq help_entry "modify_multiLine_dialog")
1 p% X2 l$ U. V8 i3 E (ddmline)
6 q2 W. L2 q- R* F )
5 e- D3 a! g3 R: `6 C' A ((= etype "RAY")
+ F3 r5 b) V3 Z8 ~% O (setq help_entry "modify_Ray_dialog")* O5 T% j+ G* @* m3 n: I) n* b
(ddxline)
. x c" q# Z5 J( t )8 M8 U7 s3 J8 j) c# f2 W
((= etype "XLINE")$ ?# S% v: X. w
(setq help_entry "modify_Xline_dialog")
# k$ h V% ?* E# x0 x) k (ddxline)3 s1 ~. C1 M' D& U W, q, u: U
)
( ^2 D% K4 P1 ~6 T/ R: k ((= etype "POINT")! N: R" o( R" |3 e2 K: u- y# ~& {
(setq help_entry "modify_Point_dialog")
# w, P v2 K5 Q( K( Q. \8 [ (ddpoint)4 b- \. Q. }3 ^3 r) ^* S4 _5 M
)
+ v d( L2 r9 Q1 v7 B, s1 e4 f ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))% U% Y0 p$ m/ g! c
(setq help_entry "modify_Polyline_dialog")6 v6 [1 o; B5 w
;; If a 2D pline, check to see if it is planar to the current9 c' G; {& z! X3 x
;; UCS, reject if not. To see if the pline is parallel,4 D `! M' o: A, b$ u
;; the 210 group (WCS) is added to the current UCS origin (WCS)
( b1 R5 O- V6 a0 [/ b ;; and then converted to the current UCS and checked to see if- n& Z; m. w/ M/ `/ U
;; it is equal to (0,0,1).
" }/ }6 H ^2 }0 H. k( g
- s1 q" M: k, e& ?5 A; f ;; Incase the 210 is default and not in the dxf list. i0 I/ A, f$ Y( T4 |/ k
(if (= (assoc 210 (entget ename)) nil)
# B6 U$ L4 }$ h0 P8 j4 H# u (ddpline)% @, @# K* m9 K: U/ ?/ c& b
(progn
: S: F/ D" u) f7 {% X3 q7 V% [ (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
6 {, C2 E* N' \' z. Q2 | (not (equal '(0.0 0.0 1.0)+ L6 r/ @ s) x) ?4 M, z
(trans (mapcar '+3 [9 k5 a1 a1 @+ w* E9 q3 K) r: v
(cdr (assoc 210 (entget ename)))
! t; i) f2 E+ o5 V6 \7 m1 d( N& A (trans '(0.0 0.0 0.0) 1 0)
3 @. i: @! W2 U) o8 T* N3 Q )1 Z2 r4 N5 k) Z- g/ Y! p% |
0 16 a9 p: e- o: A* {, {( p
)
3 C* P/ b7 \+ u3 g: a 0.0000000001 ; fuzz; M, E B6 v% v% `$ Q
)1 Y+ d! U! o: G) L; X5 Y
)
' m. t }- J8 ^ )
" @7 u8 Q9 Q2 O+ @ (princ "\nThe 2D Polyline is not parallel to the current UCS.")
* b& E! T1 h9 Z; w* X% K$ W G (ddpline)9 V" k, [& n4 V
)
7 L4 f! x3 L5 \; G8 e )5 c1 t$ }) v3 Q0 }: i) h7 ]2 ]. Q
)
: h' Z5 w* `6 Z# f )1 C9 O$ w3 ^; K% k# O
$ X6 r+ n) I9 J$ q ((= etype "SHAPE")( x" w+ h- N4 c4 w. }
(setq help_entry "modify_Shape_dialog")% H+ \6 l5 `( ~
(ddshape)
" A/ k& c1 B- U1 S8 D )9 J% q& s8 U) ?+ P0 W& ?0 b# x
((= etype "SOLID")
# b2 z1 B3 d4 ?7 }8 Y: _4 i* _ (setq help_entry "modify_Solid_dialog")
5 l P Y& i' P8 a+ H) j (ddsolid)
3 l3 U7 V0 L+ [2 T )$ }. E# x; w0 M2 @1 ^* ^
((= etype "TEXT")2 n" q$ x( @' v* H7 q
(setq help_entry "modify_Text_dialog")* T+ \! Q# j: g/ V, u; U
(ddtext)6 U0 O4 L8 B( P. t
)6 ~* b8 |# D, {" J2 `6 @) r, J
((= etype "MTEXT")
: s5 G/ V: d3 E$ W- T/ w9 p (setq help_entry "modify_MText_dialog")& _, E+ Y3 `$ H/ _, q) J6 ~6 z
(ddmtext)
. l0 d& |* e8 v )
% C8 T. w e6 T" b' @* q/ _, f ((= etype "TRACE")
. k6 C( M4 C4 Y5 v (setq help_entry "modify_Trace_dialog")
6 L( u8 m. ]) B+ U T) g (ddsolid)
$ B' }5 m7 n# ^7 |* T6 R ) T) h$ Y$ b- z$ [: L7 f
((= etype "VIEWPORT")& }; T4 r! h' D5 g" l/ U* C
(setq help_entry "modify_Viewport_dialog")1 `8 b4 f: W/ L
(ddvport)7 R7 `% M |2 _: Z
)* f) s& J8 ]; b2 _
((= etype "IMAGE")6 _7 U6 U8 g1 [, c# e% s2 f2 V6 D
(setq help_entry "modify_Image_dialog")
0 L% b0 d+ o6 k% O1 P (ddimage)
1 {" T: L4 [. k: w& t5 @7 a* E. F) Y )) q6 i' I$ K' p; Q: \1 I
((= etype "3DFACE")/ w3 k0 r7 Y" [. c l
(setq help_entry "modify_3D_Face_dialog"); u3 v5 J- ?! ^* N% v
(dd3dface)# z2 f! {1 g& O u: ~
)
" f/ u: d0 q4 g% C8 |9 ~" w ((= etype "DIMENSION")
0 K8 r' f- R# u (setq help_entry "modify_Dimension_dialog")2 `- u+ ~8 g( ^4 B: g/ m+ ]
(ddimen)
" }3 N+ t3 n: X1 S; n) g9 D% X )7 L l( _) y9 K% Q) A
((= etype "TOLERANCE")
' g& E z$ c5 [' r | (setq help_entry "modify_Tolerance_dialog"), y6 y4 A* ]( y# [6 a& J( L
(ddtolerance)
7 E! }, Y8 D2 P( q )' U9 P& q8 i5 G3 t3 z4 E _
;; Fall-through condition changed by MCAD for MDT 1.1 release.
& j0 o$ G$ G% K. Z5 W2 l& i* D" ~;; This allows DDMODIFY to work on any custom object or any new object type1 z+ K1 d0 I- `: v' C7 [+ P
;; that isn't specifically handled above by calling the more generic DDCHPROP.
" S' I% ^1 c- r7 O4 e( M (t
: I' W( |- T9 ~" `8 C (if (and (not ddchprop) (not (load "ddchprop" nil)))7 A. j" x7 H* x6 f
(princ (strcat "No dialog support for object type: " etype ".")))
0 q8 k9 x4 K q+ T! g% u8 @ (progn
7 g% S% h4 u/ Z* W (setq tempss (ssadd ename))4 U, Z. v: l9 T: {6 Y |4 N
(ddchprop tempss)
- I/ K- F- F; I& u (setq tempss nil): z% U; l C, U. E1 Y$ B! d
)5 P9 }1 C8 C) A1 C; S4 ~
)
. u- c; D( ~5 P% |% q )
! k; g+ r& E) B, @: o1 K4 w9 y;; Previous fall-through condition.
/ I2 m6 X W' `2 Y( v9 G;; (t (princ (strcat "No dialog support for object type: "
; {6 n) j9 W. D1 p$ E;; etype "."
, B) d1 k* D; @8 T1 ]* F5 l;; )8 b' H P U6 X3 a W' _& O8 I
;; )
- V! K2 H/ l# Y* q* n;; ): F; Q$ i# ~: b" d0 W! e# E& z" N* }
;; )
( u# S# O2 U5 |1 E) E s2 W (ai_undo_pop)
! k% \% |' w" \/ p3 e& l )
) R% z3 P3 @0 K: d4 F+ M* S )7 r6 ^# H) ~- X" v" b
3 k- ~ ?1 f8 d: J
(if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle
0 a! M. x9 S6 o1 M% Q (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
! c. Y5 L- `! y( N% P4 a ) ; to what we started with. t1 \$ }; _: Y" w ~4 L3 {% L5 a3 n
- f \3 u7 b2 F8 ]6 m
(setq *error* old_error)% ^2 J) w( t, e8 I5 l7 I+ ?
(setvar "cmdecho" old_cmd)) K& j* f) @/ ?
(if (not reset_flag) ; if object was modified, then* Q4 [/ ^- c' h; M" W
(ai_return ename) ; return it's ename to caller; ~; c2 `, {7 m5 @% A) N
)
. k; Z+ ~* K2 ?6 m)+ {: [9 q; N q
0 V+ z! S( Y- j7 \0 U5 @6 @; q; h# L
(defun checkForLockedLayer (ename)! @5 s% x* y3 u. C; k' z1 L
(setq layername (cdr (assoc 8 (cdr (entget ename)))))9 \* X, T9 s9 ]" L, \
(setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
; D2 d. y& o" Y& z) s/ } \- T (if (= layerflag 4)0 K8 A% a+ j4 b) A" ^4 @
T% s' d) T3 s3 J' {
nil
7 b5 I- D4 w5 |5 L6 n )
7 {0 Y5 N4 e7 a+ g' b)! c3 ?7 m3 D4 D
+ f" J# v! I9 b
(princ " DDMODIFY loaded. ")
5 x( s- ^" K3 L7 u; _(princ)
0 L7 P/ @0 C3 k3 Y/ D* l5 Q;;;???;;;---------------------------------------------------------------------------------------. L) t6 W3 {$ b4 R; V. l, F6 O
, A" s' V- P; Z' L) _
; Next available MSG number is 8 7 ~* R% L8 Y4 K6 ]( i3 b, G6 X+ e1 t( m
; MODULE_ID DDUCSP_LSP_
4 J* z$ J, w$ K* N2 h5 S I;;;2 P& o h: U1 M; W7 P
;;; dducsp.lsp
# x! `, b9 U8 V: M/ R; P;;;
/ ^! i2 {6 n/ d6 t;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.* o( u9 S+ ?; `9 u
;;;
4 B v$ K8 Q# G. _1 [6 n7 \( c;;; Permission to use, copy, modify, and distribute this software
/ K4 q) z2 q: [, U; T;;; for any purpose and without fee is hereby granted, provided
8 R9 M3 r5 Y2 p5 q: B;;; that the above copyright notice appears in all copies and
! v( k6 z6 B# S& |9 \* W;;; that both that copyright notice and the limited warranty and
1 n) Z, s( \+ @$ V6 r- M;;; restricted rights notice below appear in all supporting
: R! Q2 B2 Q: J& m5 \" J. t6 A;;; documentation.
1 Q3 u8 z6 r# [6 i+ ?% i: t;;;
' y' \8 _. k5 i1 [$ y;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. [" j9 X& b( p) R+ ?/ v8 ]+ E8 p
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF+ k* Y: q- B. M. l
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
6 C+ D; k: v1 l9 ^- s. ^;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE4 o- B' P6 K1 F. ?9 x
;;; UNINTERRUPTED OR ERROR FREE.
`. V4 X1 n7 l- s" ];;;0 V9 r9 ~8 b" r
;;; Use, duplication, or disclosure by the U.S. Government is subject to
3 m( t, g6 F4 M3 {4 n- G" o;;; restrictions set forth in FAR 52.227-19 (Commercial Computer/ M+ v9 m( }) j' G& P R2 |
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) " y& R% w+ W6 a$ D- b
;;; (Rights in Technical Data and Computer Software), as applicable.! M$ I# A6 B' l- i
;;;
; g& s3 I4 ^$ s9 D$ S;;;.& i0 o* t L0 S
;;; C:DDUCSP - User Coordinate System presets dialogue.
* d5 h) L; L- |;;; 7 j* }: \. i1 O- I; a* Y+ W
;;; Uses DDUCSP.DCL for the dialogue definition. The9 C% @" L; p+ L; x
;;; slide images are in ACAD.SLB.
D8 ^$ v# V. w. i( E9 B;;;
: a1 h$ z! m4 ?5 M) y# V( Y+ I;;; ===========================================================================9 O# W2 l0 @0 ?" v# x+ |* U
;;; ===================== load-time error checking ============================
3 l+ }! ]" u" e* Z;;;5 w6 _ I" ^8 f$ v2 i$ S K
- ^; l" M+ h/ J4 B1 O# c9 S* n (defun ai_abort (app msg)& }: W/ U$ }5 x X) b6 x, Z
(defun *error* (s): V( F% V) D8 i$ p& }2 `
(if old_error (setq *error* old_error))* P0 }, B; ~( M
(princ)
% C# B3 d2 l* L0 Q$ B )
3 M" B6 x$ B) D; |/ m4 ] (if msg R8 j+ p7 N" s2 o# `9 O& j: B/ I
(alert (strcat " Application error: "
) o B1 e o, a' u app: U' d$ U0 l* V1 t; p
" \n\n "
z5 M0 O: x* Y6 j; r1 Y msg
2 s% D% V9 k5 E. ~4 j " \n"' X/ f' ]. i* A+ l& `! b
)7 V t% C: P- |0 K
)
0 J3 I# k' \5 t- v. D& D ), I7 t$ x1 u) G. J9 r! }4 R) f
(exit)0 `8 }! C% F5 A6 v
)
% s6 v9 M) J- V+ Y/ ?& \5 s2 k0 p" R5 I# y
;;; Check to see if AI_UTILS is loaded, If not, try to find it,0 [6 F2 w8 R" ]% [
;;; and then try to load it.4 s$ ^, X! f" t' E- C
;;;" h& Z4 |2 x( D" j
;;; If it can't be found or it can't be loaded, then abort the
; P! ]0 G+ }% S- w6 };;; loading of this file immediately, preserving the (autoload)
5 D; r0 s* A7 ?3 s5 @; E! F) W;;; stub function.1 e& V$ f* e, T2 X
) ]$ X M) X# e _+ ?; v (cond
$ W2 S' ^9 v( w/ H& T C2 F# w ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
. S; e: d3 X9 Q8 O2 Y; W* m$ {/ N' x/ _+ W7 N+ \7 B0 B) c' G
( (not (findfile "ai_utils.lsp")) ; find it/ @$ D4 R: [4 C$ j, C* }9 J; T& V
(ai_abort "DDUCSP"
+ d" }9 V' E! } A0 x: @1 F (strcat "Can't locate file AI_UTILS.LSP."1 C) `1 R; J: y4 }9 F( L6 F
"\n Check support directory.")))
8 ?4 s; B2 ^) A1 R& C( G$ c# b: V! h! o% u
( (eq "failed" (load "ai_utils" "failed")) ; load it! t" H& X) X @3 b, [1 A) ]
(ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))2 y0 c2 z4 k! a$ ^" s+ C- S! N
)
; |7 Q C% ?* v# O& R T$ T) {- ]2 F! [9 x! L) ^- m+ n
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
! U' ?+ q& D& W1 @8 p- H7 K( m. h (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
0 f$ s, \/ M3 K ) ; ai_abort's alert box dialog.
+ U% E0 A! I$ k8 P. D9 H6 ~
" @) H* N$ W* k. Y;;; ==================== end load-time operations ===========================8 [4 u C9 S/ j9 m5 `/ _3 @4 _
) Q5 ~2 c% Z* e' Z(defun ai_ucsp_start ( / program)+ o" h: Y9 n0 C% m
;; Get program name
2 l2 p) X3 J6 x5 M) }0 m (if (not (setq program (getvar "program")))
3 {; S( k) S( q2 h$ A3 j (setq program "acad")! e N3 e5 \4 ]" a4 l& j0 H
)
" r: g- a. t1 M$ p! ` (foreach v0 '("world" "left" "cview" "top" "front" 6 w- p: y W: {* ? q) E( H2 Z
"bottom" "back" "right" "prev")
* M: E- M6 ~) A5 ]# ` (start_image (strcat "ucsp_" v0))5 H) c+ ~& W/ K; |% h
(slide_image1 I( J( V5 ^6 T# N. u3 o' G
0 01 H- X2 |* C; d5 q
(- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)1 o" n" y. ~7 {& n8 ^- _
(strcat program "(u-" v0 ")")$ Y# I' j* L8 t% {" y& D
)
j4 _6 X$ D6 h9 }* u (end_image)
, }% w& p$ K# _ )
8 @$ @, b8 t; r6 {)
3 C, d4 d! X0 N3 _! b$ R- ~3 k0 a: T, c$ L2 S% Y: F$ s* r9 [
(defun ai_ucsp_set ()+ H" [: V$ U( v2 ^1 i2 u8 j
(if ai_ucsp_sv+ h* Y( T/ ^8 z4 n. B
(command "_.UCS" "_V"), z, G8 Y/ ~- O
(if ai_ucsp_prevs
# d( ~9 s" [4 C7 g5 y. t (command "_.UCS" "_P")
# M& }1 {" x& a$ C6 b( _ (if ai_ucsp_chg1 ~6 H3 A. E+ n H6 ?* I/ j
(progn
& ^& G! v& L2 P (if (/= ai_ucsp_a "*")9 v- F3 X _; J# @* e: S4 M
(setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))- ^0 t1 T5 ]" Y K5 Q
)
+ y- A' \ r f2 q: C (if (< ai_ucsp_pick 6)
& o z* S/ w% w# x/ O$ u* Q (setq ai_ucsp_set0 "@")
/ n: x+ x. x0 X6 q; a (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*"), p( s1 E6 M8 P
)$ L! P8 i7 i: Z, f+ G+ J8 b
(cond ((= ai_ucsp_pick 0) I( @3 Y8 i1 }1 Z
(setq ai_ucsp_set1 "0,-1,0"3 m4 [ f+ ?. G
ai_ucsp_set2 "0,0,1"; X. ]. O8 `. c) `$ C) u( H) M: ?
)
+ I/ _, ^' O1 |5 l% i" a, W )! q% F' X( c' J+ L
((= ai_ucsp_pick 2)
2 d i6 b( @3 t; G4 u5 J& q! D (setq ai_ucsp_set1 "1,0,0"
+ e- T0 k* ?+ Q, R ai_ucsp_set2 "0,0,1"
7 Y B; m: U0 q4 e )
, f# s+ w; o1 w# |$ _ )3 S! K4 i/ w/ A% @
((= ai_ucsp_pick 3)3 l' G1 c+ g- [9 c) A
(setq ai_ucsp_set1 "1,0,0"
9 d% q$ c1 |1 E, R2 {# M3 T9 z ai_ucsp_set2 "0,-1,0"+ W! d5 j+ g6 M+ N
)
. {4 J1 |( L0 t8 G/ V; m+ Z* y )$ {! O6 g- E: ~
((= ai_ucsp_pick 4)* |/ P% C2 ? h- h( O$ f3 l
(setq ai_ucsp_set1 "-1,0,0"
1 L/ j; {. `7 d" z+ { ai_ucsp_set2 "0,0,1"; `7 j, C/ |0 [. S# `. f
)
" E5 y9 e! N I# x: W6 a$ a )7 u9 `0 M z+ h P4 m
((= ai_ucsp_pick 5)
, M: b* B* E3 e: U; C/ R (setq ai_ucsp_set1 "0,1,0"
) E* U$ T6 i# _4 v: w ai_ucsp_set2 "0,0,1"
, e s; Y1 C8 o4 N2 q: c8 n2 m3 o )
+ i0 H, I& C. `; L3 S& i. }: K ), n/ y. M, X* N# k( t
(T
`4 }- {, w4 m' M, p( S6 a (setq ai_ucsp_set1 "1,0,0"- {( Q8 E$ }$ r; G9 j$ Q. G
ai_ucsp_set2 "0,1,0", o7 a) a( L: U/ j+ y1 a% S
)
4 o; {8 q- g1 R' w )
# m2 B6 W9 Q5 [. y: U! I )
/ b8 B% R H! P0 h! p, l; P (command "_.UCS" "_3P" ai_ucsp_set0 : G& E- n. f, q- y
(strcat ai_ucsp_a ai_ucsp_set1)
7 ^! p4 d( m I2 l9 M (strcat ai_ucsp_a ai_ucsp_set2), g! n+ h! z# |% X
) 2 P+ g3 [) V- O+ r) t
)
& i4 P% ]$ _, O( N0 e )2 N/ [% x7 W1 x. }7 t* x
)
8 l' @ _0 ?, w4 t" x )
# R K" B; q+ q)
; n/ y2 W4 |7 P* N) v5 s2 _& \! L' R4 I6 B7 e
(defun ai_ucsp_p (val currtile)% \' x( \5 U1 I6 V: ^! E- c# `
(mode_tile ai_ucsp_currtile 4)
/ {7 w U) K0 y( v (setq ai_ucsp_pick val
" p1 C5 d |( W) [$ u( K1 y ai_ucsp_sv nil; }7 ?3 L- l3 ~/ h
ai_ucsp_currtile currtile( ?& s4 [* K2 e: j* g" z' u" S$ ?
) a" x3 i& E4 e) w1 R. J: ?. g! } P
(if (/= val 1)
# I1 T3 Z, e: V# T# r (setq ai_ucsp_chg T)* N' J9 f" x' B
)5 U) `0 g$ @, X7 i% o
(mode_tile ai_ucsp_currtile 4)* \5 b: s2 H3 `4 Z+ t- C2 g
)7 k) p9 t% O" y8 ^
5 s2 O" c; @- R0 O# _
(defun ai_ucsp_swcs ()0 G' N/ U, _- Z+ n* `
(mode_tile ai_ucsp_currtile 4)
7 F) z, w7 w2 S (set_tile "ucsp_a_wcs" "1")
4 d, G9 P+ L' u0 ]$ K4 o$ Z (setq ai_ucsp_pick 67 [1 R8 _+ m7 m+ d* a* {8 N2 w: L
ai_ucsp_sv nil- E8 {2 L/ |/ u7 \; H' o) H. i
ai_ucsp_currtile "ucsp_world"
5 _' z8 v! _# F+ ^6 h2 I6 g ). h1 l, L0 C" N3 Y
(if (/= 1 (getvar "WORLDUCS"))% f, V$ U, ]9 [
(setq ai_ucsp_chg T)
$ h4 p3 G0 f- h" A3 E3 x (setq ai_ucsp_chg nil)
* K4 x& ^* ]! B: R4 f2 s) _2 C )
/ \1 |5 {. J( b0 g: Z# m1 P9 g A (mode_tile ai_ucsp_currtile 4); o2 f! ^; Q; `. X8 v
)1 z! k- b* [( l( B
5 T; N# m7 o5 a0 ?- c(defun ai_ucsp_cview ()
& o8 P) G. O7 N: j* t/ h (mode_tile ai_ucsp_currtile 4)8 V5 L; {- q3 a( O8 e( O) @
(setq ai_ucsp_sv T # l5 i: N, `# \* Q+ E
ai_ucsp_chg nil0 r9 s! l7 o- O0 o
ai_ucsp_currtile "ucsp_cview"
5 p4 y- k$ x3 ]4 U# g ). T; X4 K6 J8 }8 E* [, Z
(set_tile "ucsp_a_wcs" "1")
! a* M0 W P- P. {' j (mode_tile ai_ucsp_currtile 4)" P* @6 c+ O! x* u( Z: B
)
$ T3 O! v4 j4 K: w, \8 N
8 t; S8 P8 A& a$ ^(defun ai_ucsp_rucs (typ)
; l/ [. E( F9 L (setq ai_ucsp_a typ)
# ]/ r8 j! D# r, I (mode_tile ai_ucsp_currtile 2)" x7 P3 j/ j: R* e
)
" M4 h1 N, M b# \; H# P; O$ Y- S- W# D' C" J# |5 w; @% k
(defun ai_ucsp_prev ()
5 W% e$ `4 Z% ^3 a8 ]2 R% j (mode_tile ai_ucsp_currtile 4)" O5 E* G4 q0 P+ ]5 j4 j8 R9 J
(setq ai_ucsp_prevs T L8 c3 a" Z4 v3 ]/ z# K
ai_ucsp_currtile "ucsp_prev"
- N* N& ?% Q; {4 X/ Q )' i8 h) g( y$ ?5 `+ ]- Q m2 |5 C
(mode_tile ai_ucsp_currtile 4)
7 `' j9 M& c* Y# t8 S5 @. t)
/ d4 B4 F1 U( Z$ \, i% Q% S3 g' C4 Z- E+ J& r
(defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)% g6 `: m6 t5 z5 ]' [$ V; U
(if (not (new_dialog "dducsp" dcl_id))
. {. a. d0 d# D) d7 ` (exit)
4 N" |1 u& f( v; {: P$ l R3 A )! J! c# B/ Z/ J
1 K3 }: g2 _* B. |$ s! } (ai_ucsp_start)
. M6 G% W* W! {8 y5 H- f& q (setq ai_ucsp_a "@" - e" v3 J, ]/ N) F; @+ ^% M
ai_ucsp_pick 2
, j/ S/ v j% G& R" m ai_ucsp_currtile "ucsp_top"
" A& q: _4 G# R P! i! I )2 g. X% y( u$ M+ [
(if (= 1 (getvar "WORLDUCS")) Y5 r* z( G% i
(progn8 l9 g, ^9 {$ k# W( n* f! V5 M
(set_tile "ucsp_a_wcs" "1")
5 b0 U2 ^4 F5 q+ D7 L! I; ]7 J (setq ai_ucsp_currtile "ucsp_world")
h+ N2 O: N+ R5 J( c/ _$ M )3 e/ d- H) _' _( ]: r) V
(set_tile "ucsp_r_ucs" "1")! O, g% ^& Z0 B) S7 M: L
)/ X8 J8 u( L5 x0 q( d1 H* ?8 z
(mode_tile ai_ucsp_currtile 2)1 h" e$ \( a& x1 j' ^ c
(mode_tile ai_ucsp_currtile 4)4 W5 ~% f6 `- R* [% j* F' N
(action_tile "ucsp_world" "(ai_ucsp_swcs)")
2 H/ u4 L4 b ~+ B8 U (action_tile "ucsp_cview" "(ai_ucsp_cview)"): M, |5 J! q, u! _4 [8 z7 _: d
(action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
$ \* y0 [* N4 h/ t( V9 u! B (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
X N0 ?2 e5 s7 G/ ^1 \; ` (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")" w, C& |( g) O( Z
(action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")# k6 r+ q5 Y( F+ ]( }' c7 t
(action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
* H7 d5 ^7 C8 e$ ]! H1 u8 ~- N (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")! a# `. V' H! c- v* W1 k. c
(action_tile "ucsp_prev" "(ai_ucsp_prev)")1 m5 _8 P- t& t x' x3 T* Q
(action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
& ~# T% m1 N- O5 G (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")"). J2 c) Q/ a# y" a% Z( h [
(action_tile "accept" "(done_dialog 1)")( E9 b% c' ?+ v- w) N: f
(action_tile "cancel" "(done_dialog 0)")1 i* b8 w' ?4 s" c; h2 R6 @4 v
(action_tile "help" "(help \"\" \"DDUCSP\")")$ V! x/ v. t3 M" [4 c n6 n3 I; O! |
(if (= (start_dialog) 1)3 B1 m# w" |( v
(ai_ucsp_set)
9 B. x' f1 O6 w7 J+ V$ e5 E# L4 ~ )
8 c" c$ x5 K- m. b @" [2 {)
' s5 \+ Q( l+ l( \5 Q5 n# p' V9 p9 A
(defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
8 T* S" t6 x3 j' }# F) @) b ai_ucsp_sw undo_init). N8 Z# D. w8 W: J B8 N3 }
2 Y$ K7 T9 }# V3 N$ | ;; Set up error function.
! x+ U1 ~4 ~% a (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho$ M; |% l- E& C/ \6 R0 P
old_error *error* ; save current error function6 j) n' l( }5 f8 Q9 s" _; u
*error* ai_error ; new error function$ i, ^, W5 E8 L: f d
old_osmode (getvar "OSMODE") ; disable OSNAP for duration' ?$ V' L) q3 X; S- c
)! x7 t: h2 e& q$ N9 B
; C5 }: A; Y( b. L' s' \5 e( x) j (setvar "CMDECHO" 0)8 Y( g/ e8 V! ` o3 E* C* O* U
5 h, d m& j9 X3 c+ ?( f" G# {4 X (cond
. l8 x: F7 [, q b3 ~+ r! Z ( (not (ai_notrans))) ; transparent not OK
6 p1 e5 a% i$ Q" d ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?& f/ t9 T; Y' `3 Q7 `" @
( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?' J: o& l# a: n
(T (ai_undo_push)# C# Y) J- a) m
(setvar "OSMODE" 0)
& b4 a" y; H- J, V' N (ai_ucsp_main); g/ j5 ^5 |0 v) G: l
(setvar "OSMODE" old_osmode)
) V+ D X! ?, D (ai_undo_pop)# ~- J/ r3 o) P3 K; k$ ~3 i$ g
)
4 p p. k+ v4 m# y# r8 ]; D )9 ?+ [. H) K$ H1 _( X
1 w! Q" @# ]7 q N/ n9 f1 `5 K a+ H (setq *error* old_error)
2 P" Z8 C, H$ N, v (setvar "cmdecho" old_cmd)
# y/ p+ g; M3 Z" N8 [0 [* {; b: @+ n) ?1 B; S) h
(princ)
+ i4 }/ ]! T D: h! k" ?/ R6 t. P& J' e2 h): E8 \ b! U8 E; M; z* o
3 U7 O( ]0 _% R(princ " DDUCSP loaded. ")
. O0 I/ ^/ g2 L) c8 |$ ?+ l8 R(princ)' Y% a: e7 H8 f$ C
; S1 y$ K# j& \4 d) s. s
;;;???;;;---------------------------------------------------------------------------------------
1 @" P& G: J+ s
/ p; R% |0 H, M; h, C;;;----------------------------------------------------------------------------
% M9 |% C5 F! A1 ~/ |3 [9 V$ U;;;
& g3 g% w* J7 u& S$ J6 o9 v2 V;;; EXCHPROP.LSP
: W/ a* u2 b0 e% n;;; Polyline and text modification capabilities added by 8 ~+ R- J! ?( W% M6 d
;;; Randy Kintzley ( Q" O+ U6 ?; A* i1 J/ L
;;;
3 ?, G7 `+ R) E7 k+ {3 u7 J y;;; Copyright (C) 1997 by Autodesk, Inc.& r4 V( X. B6 p, G( s' f
;;;
) B+ t" b, G; W- _) k;;; Permission to use, copy, modify, and distribute this software: h- W# j- f2 I0 @$ b- @
;;; for any purpose and without fee is hereby granted, provided
, ~7 S) R8 a5 `4 O: x6 q z;;; that the above copyright notice appears in all copies and# c, @( M$ l4 h5 \' [, u& B
;;; that both that copyright notice and the limited warranty and) ~: t) F. E! ^* a3 l) J: D Z
;;; restricted rights notice below appear in all supporting
( ?4 n3 i7 W; o: O; G;;; documentation.
: g/ O- `2 v! c2 a( ]3 L;;;
5 u5 u7 @- d4 f; Z. k# j: J;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
# F6 b$ V5 |4 ?: J6 Y;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF# U( a$ ?! u: I* d
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.3 a7 l* x3 i- F/ y* N8 M
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
4 k# e, Q9 q5 C7 J' _;;; UNINTERRUPTED OR ERROR FREE.) l+ X! G6 o2 d9 m* B# z5 |. w
;;;3 X2 Z: j4 \- n& g/ J* e& ^
;;; Use, duplication, or disclosure by the U.S. Government is subject to, i* m/ u: a( H Y/ V2 _- K, i: _
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
" d& _. W0 m2 I;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii). Y+ n* b/ h9 q$ _: R k
;;; (Rights in Technical Data and Computer Software), as applicable./ ^9 ~5 m2 E! d
;;;
7 @2 Z& [( G/ k+ y;;;.
# Z+ j; }7 |+ o" u* k, c;;; 28 February 19979 h! Q0 D% [+ o- ]
;;;
+ a V' v+ i4 v2 A. F;;;
0 C" S4 N1 l- z5 B+ s5 s;;;----------------------------------------------------------------------------
& P$ }# O$ X- @9 `;;; DESCRIPTION1 r' L( b- w3 E0 e$ g. k
;;;----------------------------------------------------------------------------
" M, x( G( ? k u% ];;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
/ c: n j# f/ V% c1 t9 P. e/ z;;; command gives the user the abilitie to change several characteristics
% \& _7 ~. f& S- O8 s;;; of selected polyline and text objects.
$ F1 C! `9 v) u5 W4 V6 P;;; The style and height of selectected text objects can be modified / q. S4 R7 D6 f1 u
;;; (including text, mtext and attribute definitions) as well as, width and
! F1 k# g9 K8 [! ?5 k4 s6 R;;; elevation characteristics of selected polylines (includes lightweight and 9 ~2 T2 h3 w1 P) f+ s
;;; traditional polylines.)
! }/ F2 X, t# F" Q;;;----------------------------------------------------------------------------
7 y/ Z0 W$ i- S) n1 E% ^/ e;;;----------------------------------------------------------------------------
3 n" Y# T* o2 I8 e. b! f1 E6 I) y;;; Prefixes in command and keyword strings:* J' d( d _ ?( g
;;; "." specifies the built-in AutoCAD command in case it has been
6 a' d6 A9 D+ m* X. |* F;;; redefined.
; y; R3 R* u) F6 m* Y% w;;; "_" denotes an AutoCAD command or keyword in the native language6 d: \ e: Z6 X
;;; version, English.
" f! M/ G2 N8 c9 m3 ?2 W;;;----------------------------------------------------------------------------
" Q) r6 u( |) |' }* I; ];;;5 F% z: l7 @* Z3 E1 i
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
% e+ `5 x0 ?- D% V' v# X;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7 Y- `& l5 ~% ?;Functions created as result of loading file: exchprop.lsp. ]0 u# G% h! V3 V
; DDCHPROP29 E4 x( k8 ~$ \7 Y" v p. I! k. ]
; DDCHPROP2_INIT
) k# S0 ]0 V- H# S. l4 }2 w4 ]$ _5 d; DDCHPROP2_SELECT
t4 d4 X; f, G- P0 U- r;2 V2 b' N9 B$ l1 K
;Variables created as result of loading file: exchprop.lsp9 U: n- j3 n ~; ]: K' @8 E
; OLD_ALLOC2 i2 s9 D+ R; b
;8 a. `, _' e0 E: K
;Functions created as a result of executing the commands in: exchprop.lsp) T/ A2 j; n1 J! R9 G4 r
;/ Q3 F6 @5 E6 ?5 e- @1 o/ L$ L
;Variables created as a result of executing the commands in: exchprop.lsp0 Q1 D9 T; ` c' |4 |
; AI_SELTYPE
1 W- ]/ ~% m/ K4 m( r; BONUS_ALIVE3 o5 p! C9 ^% g. n# C" d
; BONUS_OLD_ERROR
& b. i/ g# E7 y" |! {;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5 R2 L9 {$ B% _) _# s
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;- Q* c) d/ w6 K+ s; B* I9 L
) x2 M3 u( y6 x, L; `0 \' {( t
;;;
! \- v" \: |% w# h; N;;; Avoid (gc)s on load to improve load time.
. _% c8 C# J" y$ z' u;;;
$ E; q$ i' I6 Y(defun do_alloc (/ old_allod new_alloc) P& k' q) ]( r, b, L! C0 k' _
(setq old_alloc (alloc 2000) new_alloc (alloc 2000))$ t1 {3 t6 k+ n3 }3 E
(expand (1+ (/ 4750 new_alloc)))0 {7 x9 F4 G( s8 t) @/ [4 g3 Z
(alloc old_alloc)
& v% N* g' d* o- G* d' O' I% G);defun
9 W- w3 ]0 S0 C: V- n
; x% @% V" A1 k- W, @" W9 e;runs at load time - rk
) \0 g8 E% B/ I, ^(do_alloc)
+ p" R7 b" w. |$ z(setq do_alloc nil); v3 t- u0 z: m" Z
;;;! H' u6 l9 k/ d6 c0 v. P1 s1 E
;;; ===========================================================================
! n# ^: b, D1 x6 Z3 @;;; ===================== load-time error checking ============================
$ n/ O3 E& y$ x5 w5 r; H" I;;;
8 A4 R/ E! x% k2 [5 n' v5 I9 k1 N$ V, H1 i4 e! D
(defun ai_abort (app msg) 3 o1 _" z0 l+ y4 F7 d/ [* ]
(defun *error* (s)" v8 D, z" i* e' j
(if old_error (setq *error* old_error))" E5 H: e" o7 P! Q/ y& [2 S
(princ)
R3 i/ C0 k+ U9 c' ?% `) n );defun
. R9 Z" @+ C2 f0 S (if msg
6 D& A l8 J" { (alert (strcat " Application error: "
9 A; o1 _3 f/ I/ A1 H: y app; y/ O2 x5 Q' `, i
" \n\n "
" a: z" ?' i* ` msg
5 T) k' H- @1 F! q L2 D " \n"" ^# ~$ Q8 j' i6 j6 c! I) R9 s
)6 |- Q: E0 W7 [
);alert/ T; J6 ^0 ^' b
);if
4 g, s& T! ?% I$ F- b K$ ] ;(*error* msg)3 z% ]( }5 ^7 t9 Z# ~: Z% ~
(exit)
; N2 Y% \0 p& L );defun ai_abort' n8 Z* ?$ K5 l. ]8 }
# o7 E8 \( w5 W: o! k# ^
;runs at load time - rk
8 f2 F( R" `2 L' E. c;(if (and *error* ;added the if wrapper around this - rk. U; m; X3 I4 t& q: [8 G, @
; (not old_error) # U9 h+ H- u8 j. w0 e
; );and 8 ?# L% ]* K- e8 V Q5 d. c
; (setq old_error *error*);setq" p/ j0 X* r0 l% _
;);if" Y2 k6 s) o- Z4 o6 T/ S7 v
% Z0 ^) q/ I; A ~0 o! G, G
: P1 o, G' V6 p8 k$ M
;;; Check to see if AI_UTILS is loaded, If not, try to find it,) A: z' S+ ]& x
;;; and then try to load it.
" q6 j1 m* l, F7 |! p1 n;;;
* |" F9 g5 J4 l3 `/ h' Z6 C% Q;;; If it can't be found or it can't be loaded, then abort the
$ ^: S1 x) ], g' H6 o;;; loading of this file immediately, preserving the (autoload)# y2 r: S; J) i$ a4 g# ~
;;; stub function./ r G8 `, Z. R; S0 Z1 Q
6 b6 o1 s h2 T;runs at load time - rk.
, }. ]. n I. _: f# @! j% \(cond
! G$ x5 G# X5 y" A* N2 Q5 d ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
J) N6 ?; p! K# U ( (not (findfile "ai_utils.lsp")) ; find it
$ p8 z5 }. [) K. S (ai_abort "EXCHPROP"
8 Y. B4 X* G/ p. o: o1 I (strcat "Can't locate file AI_UTILS.LSP."- P% C* [; I J6 u9 B" z( X
"\n Check support directory.")/ O& J9 { ^+ L. T' }" l/ `
);ai_abort
7 y2 W- j- i7 H1 f )) j" n) b- w6 e W
( (eq "failed" (load "ai_utils" "failed")) ; load it
5 |) F7 a H# N/ W' b (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
2 }1 G9 m) A' T5 A( z% k5 o )5 o% n5 k0 v; W* A
);cond close
$ Z- B& u$ `( ~5 K
) }; K8 x! W+ a& Q1 N/ z& E(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP, _( t! j% m6 l4 k: K
(ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
* e' N' T3 U& B" }( H" M5 d);if ; ai_abort's alert box dialog.0 z$ [. `' v5 U' X4 \8 T) h
/ B) _% E4 t8 ?) M/ L
;;; ==================== end load-time operations ===========================
& ]9 {; G x3 l3 \* F+ H3 z2 Z
/ W) q6 M# R. | n8 K;;; Initialize program subroutines and variables./ W2 e: t9 W$ n$ D: Q$ M
0 [. f7 W$ X5 O# Y(defun ddchprop2_init(); c% S3 {2 n0 @2 G* {
5 z6 v+ n* P4 P; e
' F7 U# K6 e+ X6 ^" J- h
& x8 |; W6 \* H0 F/ i- x8 I8 k3 W! T3 I! U ;;
" F- @) {3 M% ]0 v! c) R ;; Define buttons and set values in CHPROP dialogue box* x& v; Y8 M! f$ r2 k
;;
& l; B, N% p* Z (defun call_chp2 (/ cmdact p1 p2)
# G( K- T. ?3 D" P/ M5 {/ f3 L. U6 f( ^: d$ y& @
(if (not (new_dialog "ch_prop" dcl_id))
0 Q+ N# ?5 ]- Y- F0 c; q2 \) @ (exit)
$ G5 G# R( ?- H& d! Z )
( _, z6 d! |* _4 t/ f7 I1 }7 _+ U o2 f7 ]
(set_tile "error" "")/ S4 c/ Y; p/ ^3 x" _- ]+ K
;; Set initial dialogue tile values
. g# S* ^, G9 X (set_col_tile)) i6 }. L1 M8 y9 W/ L2 _
(set_tile "t_layer" elayer)! y- u2 Z6 p) D# t1 K" d- x5 t
5 B* Y7 |6 P& s0 x: E (cond6 d! V, |& M; I; \4 ]% L2 A/ `
((= lt-idx nil)
) u, v& T4 C9 `* s7 M' w (set_tile "t_ltype" "Varies")
& P$ y M! R3 I )6 j3 v5 X0 C$ U
((= lt-idx 0) ; set tile "By layer & layer linetype") W1 r5 H, m4 B# L* h
(set_tile "t_ltype" (bylayer_lt))$ y. z/ f4 h( W4 ] }
)
: r7 |- e! f4 Y7 R (T
/ T* X; g, p7 {+ n! ^5 ^) p (set_tile "t_ltype" (nth lt-idx ltnmlst))' w+ Q0 L; V# J* q9 s4 \2 N5 R# [
)/ Y, e" N; H( ^
). ]; ~' }$ G* V- X ~
6 J- t) V2 l/ f Y+ L L ~ G0 U1 m
(if (or (= ethickness nil)2 f# H) `0 s) a8 p, \
(= ethickness "")
5 m4 G% c Y, t7 h) ^ (= ethickness "Varies") " g7 Y: q3 V0 ?+ j7 c4 C$ H+ u
);or
5 E3 {! c6 e7 h1 ?# |6 R3 B: n (set_tile "eb_thickness" "")
1 V; c0 l: t( i$ x% p4 p" V4 ~6 c (set_tile "eb_thickness" (ai_rtos ethickness)), Z' i$ T# n2 @+ ?! k U
);if
9 Y' q% @8 Z2 U* ^% ` (if (or (= eltscale nil)
$ a3 k( p+ `4 T (= eltscale "")) s% f. x3 \6 r& b( v
(= eltscale "Varies")
: ^) X: y3 _! t2 a3 v3 Y4 N6 D0 w, ?$ L. r
)
i; b1 N3 g0 _5 u* F9 [ (set_tile "eb_ltscale" ""). R5 ]$ s1 x) M; P2 h S; N6 d
(set_tile "eb_ltscale" (ai_rtos eltscale))- P# i9 C% m! D- C
)
3 ^: I; d: t1 ^# v: G: } (if( }% q: b0 N! L' j0 C4 ^
(numberp ewidth)% t- Z+ ~3 |6 a9 q$ o" {
(set_tile "poly_wid" (ai_rtos ewidth))
/ I7 F& T S! c8 ^; M7 @1 t (set_tile "poly_wid" ewidth)
0 v, @+ y( k9 ~ )
5 d `% n C N% F8 d; ]6 R (if
) e4 Y, m- h5 w6 k0 H. L/ \! y0 P (numberp eelevation)6 E' {5 `% \4 I9 Q' }# K4 b
(set_tile "poly_elev" (ai_rtos eelevation)), `% P+ X! e* ]+ u, b7 b& d
(set_tile "poly_elev" eelevation): B2 h6 _ O+ l
)& @0 _6 T# |$ ~8 v+ o
(if# r8 ]0 I* G" c7 f
(numberp eheight)' o8 r* b h0 U/ V' }! S+ a
(set_tile "text_hgt" (ai_rtos eheight))
0 p3 k* ` B3 n% |% @* ] (set_tile "text_hgt" eheight)! E* f# R5 @) A) e [) P
)( O# q0 X, A& L& X9 U, R
(if (not estyle)
; f! T# i6 B( u# k* D; b) j (setq estyle "")
6 I" l9 v8 C! O" g );if & L, n5 e' K+ J. d: T
(setq hair_style_list (tnlist '("style" 16)));setq
) D4 I; R1 ]" {' m2 h (if (not (member estyle hair_style_list))
. H/ H" m/ _, \; `3 m (setq hair_style_list (append hair_style_list (list estyle)));setq: g2 f* P9 s! h+ x6 z
);if
4 d" z6 l/ e* g! z/ Y- {% o6 u5 ~% z6 ?& r
$ {9 N j: b% t! X0 Y* m0 h7 z) g (setq hair_style_list (acad_strlsort hair_style_list));setq
: x7 n% \" }1 q (mpoplst "text_style" hair_style_list)
' Y9 ?2 s7 J1 x3 z" l9 a0 b (set_tile "text_style" . c$ ^8 Q, o% t% ~7 h- Q I
(itoa (position estyle hair_style_list))
' P) d# J# z; z0 M* {6 Q) d3 l );set_tile
U4 ~/ |0 T: u" S- v& d
( u7 t# f" D8 C/ R ;; Disable tiles if need be... ;@RK- @6 H, w# L1 E3 h1 F# ]3 A
(setq a 0)
& V6 }2 I: t( A7 H. Z# ]# o: W (while ( < a (sslength ss))
8 J2 K5 Q7 R- R8 j* X) F7 E (setq which_tiles
+ d% A7 q8 G6 i( `8 S+ N" d (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))6 k5 \" r" x; f) j" H) R- m2 F
- w/ r2 \# @; h1 g+ J; j
;; If all fields are enabled, don't bother checking anymore.. U- s; S0 u5 u j7 Q: P8 Q7 T
(if (/= which_tiles (logior 1 2 4 8 16))
7 g W2 T6 w1 p$ V4 T (setq a (1+ a)). _+ M# h6 S: Y# b$ {2 A
(setq a (sslength ss))
5 h' y4 k0 R) v6 N: P/ F j ); t) t$ a1 G9 K- o, e2 U
)
6 C8 w, G, R; e$ R ;; Layer Button and Text Field1 E% \/ Q4 y7 Q
3 `1 f& c6 U% [# D5 Q3 a5 d
(if (/= 1 (logand 1 which_tiles))% F$ W/ H* }. o* m( q4 V
(progn0 e$ j9 v1 [, L! G% p! V) Z3 d5 U, d
(mode_tile "t_layer" 1)
: ~9 w# u" A; [* f7 D5 E2 M4 O (mode_tile "b_name" 1); e) p' g7 C6 x5 M+ i
)+ p* ^1 ~2 ?; _% b8 I3 ^, e
)
5 k3 H( l3 o* F" s3 K- Q& a1 C& L8 _. N- l1 J5 l
;; Color Button and Text Field
; P7 I c: B9 n O& v ^ q. b (if (/= 2 (logand 2 which_tiles))2 t0 U5 ~, F% g8 n" g' {
(progn
U2 E& Z8 m0 K' ]4 K0 i (mode_tile "t_color" 1)
# Z5 @& j9 e) d. L (mode_tile "b_color" 1)- P& V% Q% r k8 F4 Z2 r2 A# Y" Z
(mode_tile "show_image" 1)
& n. E3 z8 Q4 o2 l6 l9 W/ p+ \ )( x5 ~- Z: W. q* Q# Y: Q
)6 ^3 r9 w, S9 y" O1 V
;; Linetype Button and Text Field
3 l D: {1 ]2 p1 M% f2 Z# r o; r (if (/= 4 (logand 4 which_tiles))8 y, T5 K, a) B
(progn, {! U0 I) c3 E0 @: J c' w/ i
(mode_tile "t_ltype" 1)
1 S/ p: i. j8 a8 n. I# W (mode_tile "b_line" 1)$ }6 Y9 q! N. z5 ]3 e% o
)' H" B- d! _) ^" y# K8 h
)
, f$ R3 }2 X; e6 L ;; Linetype Scale Edit Field, |- o$ H& @; }: O r6 t
(if (/= 8 (logand 8 which_tiles)): @& C+ i- d0 t. k$ J- |; r
(progn2 o3 j* O9 ]+ e/ J( u( ^7 R7 S0 y
(mode_tile "eb_ltscale" 1)
2 O4 ~9 Q! z5 `' h7 b4 `, l- T )5 g7 Z8 K3 ]0 {, p: U* ~5 `8 [' Z
): D" R" Z& O) |, \3 }
;; Thickness Edit Field.6 V4 Y9 K) n2 [& x1 v& M
(if (/= 16 (logand 16 which_tiles))
2 j, K/ q- c( w% b3 b (progn; I$ S' [0 O" c; H# X/ D* J6 J4 @ @
(mode_tile "eb_thickness" 1)
# \: h5 `( G! i9 i/ `( R) N N$ D% H )
, C7 N6 W8 F* A) M) m4 C) c ). W+ O4 x4 g5 e* t, J1 d+ `7 V
) Y4 {$ ~1 {, x9 }+ ~* v
;; Polyline box and tiles @rk 10:05 AM 1/30/97
3 z7 {! ]7 x4 _+ H1 b' K Y (if (not (= 2 (logand 2 eflag)))$ L( o; L( |7 R' B4 O
(progn
3 W3 q- X- J# j0 a# o5 j (mode_tile "text_hgt" 1)
, l* l, t, A4 B5 g( T. w% o, O9 P (mode_tile "text_style" 1). h+ J5 P% n4 ~$ o
);progn( b! z5 g8 [6 f- u- X8 c
);if
9 [, G, B3 h5 n7 ~) w (if (not (= 1 (logand 1 eflag))) O; e/ _1 z( o: \- m/ E3 m
(progn # q# i7 e% A. J3 [! Y
(mode_tile "poly_wid" 1)5 L# W& |2 d; y0 n# ?
(mode_tile "poly_elev" 1)# Q& q7 ?* v) F1 R& D! A. u7 T; d7 h
);progn then disable polyline fields- k- R0 X" v4 |2 n; `( D1 u
);if* F- n# G' i* V7 J# N+ ]& U
7 Q$ g) h" c8 _$ H; X+ y; G ;; Define action for tiles
6 r1 T: [; \& D* i; U2 e (action_tile "b_color" "(setq ecolor (getcolor))")
8 o9 T! T( o/ V& d- E: ] (action_tile "show_image" "(setq ecolor (getcolor))")
) D! y$ q( { b, U (action_tile "b_name" "(setq elayer (getlayer))")
. T- R% s" w3 C4 c) k: S# I% Q. I (action_tile "b_line" "(setq eltype (getltype))"), b6 Q4 Y$ t* `, S
(action_tile "eb_ltscale" "(getscale $value)")+ H' k! x2 t: l$ f( G
(action_tile "eb_thickness" "(getthickness $value)")6 G0 {) A& }* i9 s0 s! ?; m- O" L
(action_tile "poly_wid" "(getwidth $value)")6 Q: R f! m, v" @/ `4 w* i
(action_tile "poly_elev" "(getelevation $value)")4 I: O7 z6 x. x" I4 J; h+ U! @
(action_tile "text_hgt" "(getheight $value)")
$ L- z7 I, u3 o" R1 F$ ^ (action_tile "text_style" "(getstyle $value hair_style_list)")
+ I. A, j7 r3 l. I (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
1 u$ K8 U5 a# T j/ D( Z (action_tile "accept" "(test-main-ok)")
, H& p2 n# P0 i7 x
$ @- _8 L! ?+ U0 O (if (= (start_dialog) 1)
/ k. F- ~! X/ j; c (progn
0 U' F; l' I. R0 Y# e ; Update special properties for polyline and text selection-sets.3 R( j- r' T# M( n4 h
' J' `& A+ M% A# I (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
* ~8 ^$ n# ~2 u (or ewidth
; v( I k1 h" B! E- O eelevation
. D J) E1 l3 C' C t );or
& `$ ?$ v5 x# }/ M- I# x3 V& A' |/ f );and! \) t8 S( I& d- R
(progn
% U0 i( z* ^8 U+ O1 s9 H (setq ss-index 0
A6 }; J) V! K ss-length (sslength poly_ss); i3 D7 l& i& s0 @. A4 w$ i) ]
);setq
W8 ~4 ]8 W' H5 Q, _ (while (< ss-index ss-length)5 f4 t: c( `$ Q q6 z
(setq ename (ssname poly_ss ss-index)' T9 B: R, R, w; X% g0 f
elist (entget ename)
8 \- j2 a4 Q, f8 t );setq
' d$ P( ?3 u5 Z2 l- L, N (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp: H- x- j. z: Q( |
(if ewidth : N' F& z, Q* y( s! c
(command "_.pedit" ename "_W" ewidth "_x")
2 v3 a( d! t. j/ \; e. b) h );if - R' s- c+ Q' B3 a, a- i. f
(if eelevation 6 A: \8 A( C! t4 u# ]
(progn
0 @$ ?5 _: v8 X1 A (setq p2 (list 0.0 0.0 eelevation));setq
5 U$ P5 u1 D: _# ?% V1 d (if (equal (cdr (assoc 0 elist)) "POLYLINE")- l+ Q% W- ^/ g3 E
(setq p1 (list 0.0 0.0
6 G" b5 v8 |) l (caddr (cdr (assoc 10 elist)))& l; i5 w L8 M- q
);list& I3 h- b& b- [8 N6 Y1 W
);setq
5 t6 o- l$ s$ O. Z6 n+ ^$ c (progn: p" H z! W o3 ~
(if (assoc 38 elist)
& F% s2 @. K4 ?2 {. e (setq p1 (list 0.0 0.00 w( t; P. p. _( o- f! P9 e
(cdr (assoc 38 elist))* f1 U0 s: l. }1 s" r
);list2 E4 B, ~2 e3 m' J4 t" J. y% I: D
);setq9 t6 r. w8 J; Q
(setq p1 '(0.0 0.0 0.0))
7 A7 a8 O+ \1 m );if
2 r/ a& Q3 X' b# v9 e+ g );progn
- p' Q' s1 L+ E0 D8 j8 N2 U );if3 D& c) Z, {, u7 q4 h
(command "_.move" ename "" p1 p2)2 ^9 j# c+ C( H
);progn then change the elevation of the polyline
* s0 M2 ]8 y. q0 A );if
4 k- ]5 j3 o! h% b( N: B" u (command "_.ucs" "_p")" f) k) _: C2 [4 i( w* L3 @
(setq ss-index (1+ ss-index))
3 y8 N9 e) t- Z) x$ W( W );while9 _! j$ S' j* ]
);progn then polylines are in the selset
2 |# e# j7 C& W1 y; A" ]1 A: v );if
( v" n5 i' b% ]4 r (if (and (= 2 (logand 2 eflag)) ; text* [* E0 y7 ~% g( w, r
(or eheight
, n7 G3 W4 Z3 A) {- w8 D estyle
: \& ]# }6 a6 }' v# U* ?- y );or
" J$ d$ Q$ g$ n8 ^1 S );and4 o" X' r z) V# [ x9 ^9 T% x: K
(progn" t# `$ m& ?/ Q
(setq ss-index 0 ss-length (sslength txt_ss))6 P- T) |3 g1 T: v) t; O
(while
; D7 T4 M3 X9 K (< ss-index ss-length)
1 w9 t1 |7 h! ~6 F! S( ]$ |2 v (setq elist (entget (setq ename (ssname txt_ss ss-index))))
' t6 e* ^' R) N+ j (if (numberp eheight). K9 p5 X; i8 n. I& F
(setq elist (subst (cons 40 eheight)
' G/ @9 S- b D. k( B: k2 B$ u (assoc 40 elist)
S7 m" @# M6 M' n0 J" [ elist+ Y' L. f' g9 w+ z2 S2 ^; R- l
);subst
! m) u: @+ E: S) c$ F& X );setq
3 r, O8 k S" m9 J );if
}8 v- H: b, A2 Y( y7 f (if (and estyle ;(not (equal estyle ""))
8 |3 Q1 D! U1 Y% g. F (not (equal estyle (cdr (assoc 7 elist))))7 m$ P* W0 s2 E( _) \
);and# w' b& g# p7 ]
(progn % w- H& _4 |& |
;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
, q* s7 E4 `- v) R+ P" u9 W ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
. C) p: B0 U: S3 L ; (setq elist (fix_mtext_fonts estyle - B" |3 |" r2 k* S" b1 `* c
; elist& M+ \1 B$ J, `& M* i; Z5 {7 s/ \
; )! g3 p+ E% h- K( U
; );setq then2 ]- o. f/ E7 v/ P
(setq elist (subst (cons 7 estyle)
, |& Y0 k7 g1 f, m- P (assoc 7 elist)
+ o, T0 V2 J) S& U O9 P elist
4 ]0 H, ~+ V, V4 g* g );subst
2 u1 \' A _9 L( T% O9 N7 l n );setq else
N: }, ~% V6 T& J N ;);if
5 y3 _/ S! \. E: | );progn, X& K" Z/ q1 W- g" t. ^
);if
5 u1 a e u/ \; j! C+ [ (entmod elist)( ~/ a! u' H8 e3 H" q9 T& P0 ~ f
(setq ss-index (1+ ss-index))6 q7 o8 h' n( u
);while
- Q- J1 i, Z6 Z6 {- }2 Z! g6 n$ S );progn then1 F% R1 Q7 F8 _! y
);if$ ]0 U. h/ o4 r Z7 N
# o% M! k$ s9 T
(setq cmdact (getvar "cmdactive"))( t" k2 ?) J) Q" @. P! a: L
(command "_.chprop" ss "")/ r# F" W4 y2 ^
(if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?1 T% B7 x$ _- R+ b$ N: Q0 F O
(progn% R8 |7 a, O& O# a8 i
(if ecolor, T' W# c2 d4 m3 B% ~) H) k
(progn1 K4 o% S* o) m1 m% G
(if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK")): y$ ]! z2 D- V
(if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))7 S* Q0 l+ _* H
(command "_c" ecolor)
! R Q6 X6 I _9 j- ^7 Z7 W4 ~ );progn then+ u5 v. `1 A" L# v0 i
)- D* U9 s* B- N$ i; j1 I
(if (and lt-idx- \& Y/ p; ~' W" {- u
(/= eltype ;|MSG0|;"Varies"); ~. Y9 J* I: K4 J; ^! V& I' D
): j2 o& F4 g2 c7 P
(command "_lt" eltype)2 e! F- J: U$ u
)
$ U, b) V& l6 Y+ M" \) O (if (and lay-idx
% T! U% |7 r5 }) J (/= elayer ;|MSG0|;"Varies"); S- n3 s& [1 r0 h* \2 L
)2 q' ^6 ^; H) f5 Z. c
(command "_la" elayer)
! U- i1 ]" _% t' c( _ )4 e2 y: _4 _' X; l1 G
(if (and ethickness
- D# {8 D9 I" o$ c2 d (/= ethickness ""). c; c4 r2 [: O6 B
(/= ethickness "Varies") # [' W% @# q" v8 |* A( C
)
0 l2 e6 T7 e* ^7 c( U. W (command "_t" ethickness)
# g; z. f5 c: o5 v9 i3 X( f )/ @' X$ K4 \3 n2 R
(if (and eltscale (/= eltscale ""))/ R, h) J2 j1 @; j* o! X' ~3 D
(command "_lts" eltscale)! F. f% q% D5 O5 j, v
);if: F3 a: V$ M' p* w
(command "")
: R, \: b* }, c3 Y: R m )
! C3 y' I; p" U! y: c! ` (princ "\nProperties unchanged") ; CHPROP didn't like our SS set8 i3 J1 {; o8 ^9 k
)) ?2 L2 V2 v2 ^$ D
2 A/ j7 ~1 ?0 w! `# E) L );progn then OK was picked in the dialog.1 W5 A- C4 _4 a5 g; i5 q0 I
8 W; Q% T: X& V$ w, M/ H8 C0 ]- L
;; Fred GERBER - 25-AUG-94
3 q9 X$ o/ y# d! W" r ;; Don't print the "Properties unchanged" message when the user cancels
& x" N: _$ @, J$ R7 E ;; the dialog because he knows that already (otherwise he would have! p0 A8 {7 z: N1 f
;; hit the "OK" button). Display the message only if CHPROP fails for
- E! h0 I/ E' E9 Q1 H! r! ^ ;; some reason, because it is not the expected behavior of the command.% I }+ e& _0 Q' J8 i
;;( \ y; M& y7 S9 ^3 o
;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged"), q& E, F- m. [1 P0 V' k
);if. D$ l- m6 V7 p8 w E0 I$ t. N) I
(princ)
% d0 E5 _& S/ h% T2 k V- N2 d6 w );defun call_chp23 o, t/ _0 r8 A& O" N
;;8 p. B/ R" f$ m1 b2 V
;; Function to set the Color text tile and swab to the current color value.
' m" y- Y! h0 o8 J, J ;;
/ [' b: [ d: r* O (defun set_col_tile()" E5 M5 w4 `% r* d
(cond
) f6 s% _+ p* X8 `5 o ((= ecolor nil)
0 R6 J9 |& F2 X. T7 } (set_tile "t_color" "Varies")
6 P8 @$ l: k% u1 j (col_tile "show_image" 0 nil)
% z- C" P2 z8 G )0 c8 {7 O! R, s$ {0 [
((= ecolor 0)
# Y* i1 _& B2 V1 t k1 Q8 f/ H (set_tile "t_color" "BYBLOCK")' B9 N/ B9 j9 P0 Q
(col_tile "show_image" 7 nil) ; show BYBLOCK as white
. y% c% d) Q/ x2 f2 l )
; l& ^) l1 N8 D+ Q& H9 T ((= ecolor 1)
8 b. N' y4 X2 |& }; `: L5 G (set_tile "t_color" "1 red")2 D* L* c1 L! X- I. t
(col_tile "show_image" 1 nil). r5 g3 |+ ^$ N
)
5 U# { c2 K7 ~* c% b$ u9 c! Z ((= ecolor 2)
1 z$ U2 G H0 d$ H5 ^( @ (set_tile "t_color" "2 yellow")+ O% \' O+ Y& f8 O- t. s
(col_tile "show_image" 2 nil)
8 m/ _( f) q6 D1 M$ @ )
1 m/ Z2 G M8 } ((= ecolor 3)/ a8 j9 m A- ?& v' a- }( `* K
(set_tile "t_color" "3 green")3 }8 K" j5 w* ^& D
(col_tile "show_image" 3 nil)
: B+ h' t+ I6 [& \, A )# L6 D0 A( L; k) S, ?
((= ecolor 4)
& d! c% x T U0 y* u# w+ G (set_tile "t_color" "4 cyan"), }3 N5 [+ R6 l5 o
(col_tile "show_image" 4 nil)2 K) h8 T5 h- n3 r' j
)
8 y0 ]" P, j% D3 J \ ((= ecolor 5)# E- S9 P, Q- _3 e) z
(set_tile "t_color" "5 blue")4 S/ l7 @3 \+ L( B2 A
(col_tile "show_image" 5 nil). `( D4 B1 f4 K/ k( e; J/ |
)% Y2 O6 s3 I! c
((= ecolor 6)4 x: i, B. q5 F
(set_tile "t_color" "6 magenta")
- N. z0 V+ r( n* K9 f1 e5 E (col_tile "show_image" 6 nil)2 {+ H7 d) _9 M9 l8 f7 d6 n3 H
)2 q5 s! x' |1 G% O! c5 I3 |+ c8 o% Y
((= ecolor 7)' g& q7 r) Y) [# d' Z
(set_tile "t_color" "7 white")
2 Y$ d* {( d* e% S- B. E3 A2 W* x (col_tile "show_image" 7 nil)
+ D& S$ C! q& V1 e6 h )
. q% R# ~6 W+ p) y3 K& W# N' K' o ;; If the color is "BYLAYER", then set the tile to W# I6 K8 }: s. s2 I
;; show it's set By layer, but also indicate the
5 d4 H) Q( J0 P7 e$ h! j ;; color of the layer - i.e. By layer (red)
6 @7 |: L5 R( h' E' `* b8 d ((= ecolor 256)
/ y8 g8 ~$ t2 C& o' `5 c (set_tile "t_color" (bylayer_col))
1 _) t* y# {! b, q; [ (col_tile "show_image" cn nil)
* L) Y* a! k) x1 s( I% D1 M" @. h3 Z )* |9 _7 n4 p5 G; L" g* y6 X# p
(T9 c* B5 t1 n6 z% g$ m( V1 H; A
(set_tile "t_color" (itoa ecolor))
) Q6 j7 Z4 }4 E$ ] (col_tile "show_image" ecolor nil)
( i% j5 ^5 `1 s! W J3 G" a2 ?$ ] ), T+ s8 K) q# v" t1 T* s
)
$ ^% n8 L2 p; {! |: q% C" } )
- x+ t9 E" j+ C- M" V3 K; O W3 {" ] ;;
4 h2 q' ~9 _' Y; P' |. S2 a( V ;; Function to put up the standard color dialogue.' C" `# i V9 F! N% \& }: u9 s5 W3 Z
;;
) `: q/ Q4 w! D4 }# D (defun getcolor(/ col_def lay_clr temp_color)/ t5 m- X* y$ K4 _( M, [: ]. I9 C
;; col_def is the default color used when rq_color is called. If ecolor
2 `; V( ]& x% A$ @) T3 V ;; is nil (varies) then set it to 1, else use the value of ecolor.9 @8 q# `6 t( b( m5 n
(if ecolor( M& b7 p/ f1 M
(setq col_def ecolor)5 p9 \9 N2 m9 _7 w4 n
(setq col_def 1)
2 d6 Y {8 Z) n8 K )
( D: B( p5 n: ]. x7 c! K1 @& S; z# S$ \) F$ n! U6 T3 o( l
;; If we're working with a single layer, get its color
) ?0 D8 q: F8 E6 u( X' T5 P9 G9 X4 u ;; for use in the color swatch if the user selects color BYLAYER.
, m; x/ ] L( k+ x+ E/ W6 i6 ] (if (/= elayer ;|MSG0|;"Varies")
6 e& S i; p; M: o$ |( H (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
7 n# y: e3 ~. o3 [: O (setq lay_clr 0). W6 {8 ?; y2 {5 h* W
)
# U3 h2 s4 [! }2 g (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
6 Z" e: q. G! a& d (progn
4 x) k Y) m' [9 z (setq ecolor temp_color)( Y+ ]5 ]0 K5 Y8 F4 v$ P( w
(set_col_tile)1 X8 f* B9 Z/ R
ecolor
1 n9 a/ i+ ^, e9 o \ )7 [7 k. z- g8 T7 S. l1 T! U% _
ecolor5 ?" x( g8 W( G9 |6 a3 ^6 @& e$ k
)
" `( \- W( k9 R )3 d8 v" d: z/ a* A
;;
3 A `. K8 i3 T% q ;; This function pops a dialogue box consisting of a list box, image tile,) m# P+ L& r+ W: ?+ h8 C4 O# X
;; and edit box to allow the user to select or type a linetype. It returns
5 W2 s0 W, W4 Q/ g ;; the linetype selected.
7 ~3 l5 H! K' K, o3 C7 d ;;0 U1 M5 N( y5 h4 Z" L* f" Z6 a
(defun getltype (/ old-idx ltname)5 U5 V& [ R; N, x
;; Initialize a dialogue from dialogue file. K5 v _1 }8 O+ v$ P
(if (not (new_dialog "setltype" dcl_id)) (exit))
( l' G, h3 _/ f9 P8 L (start_list "list_lt")
5 X2 i% J' H& w8 k% P6 u0 D (mapcar 'add_list ltnmlst) ; initialize list box
: h9 x1 T* n# q5 ~; e (end_list)" P5 W! p- t4 c1 X7 r; `0 k, G5 H# R
(setq old-idx lt-idx)' o9 x, G, R. P
;; Show initial ltype in image tile, list box, and edit box) }5 \* s/ ?4 W5 y, y4 i
(if (/= lt-idx nil): R& B# i! ^1 n3 x
(ltlist_act (itoa lt-idx))" M' ^: Z3 l# T' I6 d' @
(progn
2 @0 a- @; u; T& N) t5 n6 C (set_tile "edit_lt" "")
- }) q# K4 G# s0 w6 T (col_tile "show_image" 0 nil)
: v& a t2 \) ?% t' K );progn else
0 C% ^! Z2 _; z+ q );if
1 z- _* f8 h! Z) _: Y) I3 [5 G2 D (action_tile "list_lt" "(ltlist_act $value)")
+ W# Q8 m9 _& V (action_tile "edit_lt" "(ltedit_act)")( s n& |% T# y; N
(action_tile "accept" "(test-ok)")2 g( t3 S) g' @
(action_tile "cancel" "(reset-lt)"); p0 `' s; a3 t8 a1 Z9 F
(if (= (start_dialog) 1) ; User pressed OK/ J) x- g) e! r. T- S
(cond
V$ |% g, S" x9 N& q1 t) f ((or (= lt-idx nil)
! s( n3 N1 |1 }# W6 M6 U' @ (= lt-idx (1- (length ltnmlst)))
; u) h% [$ U% `: j. k3 F );or
. P/ P2 g* I8 Z ~4 P9 x (set_tile "t_ltype" "Varies")! h% ^* c* C" m
;|MSG0|;"Varies"
5 W9 t- M1 J. S4 Y0 X- w) W% a ) ^1 N" @+ _1 [$ `# a7 h
((= lt-idx 0)* x% l* V& ~& c5 J
(set_tile "t_ltype" (bylayer_lt))
6 X8 d2 q, `. t ;|MSG0|;"BYLAYER"& J( E: K) [. M
)* U, [) T$ B n' y k1 f
((= lt-idx 1)
) R8 e; X) U. n, T+ t ] (set_tile "t_ltype" "BYBLOCK")4 S# u) K# \; q2 ?8 }
;|MSG0|;"BYBLOCK"
- u$ M* k$ p3 t3 t' ~ ): `" F- b* b# A4 _
(T
8 a: f. S5 L" _) @0 o (set_tile "t_ltype" ltname)0 K! O9 N* u9 y8 j
ltname
8 d u! }. w2 i6 j( { )
# X) [ ~- S0 S2 E; b# g );cond then1 a' Y( J" H3 R
eltype! k8 \+ e6 Z- c1 z6 G! w
);if" O% }& ?7 A9 k& A, k8 w
);defun* K3 C4 H+ D y) Q! Y
;;* M. y* c: a' C+ q
;; Edit box entries end up here4 Y2 o! l2 ]( I" N0 ^) X) Q K$ x( ]
;;
9 O$ E3 ]$ `+ E8 u# j7 H; b (defun ltedit_act ( / flag)
' V* f3 s2 S9 I+ O* q1 {& O ;; If linetype name,is valid, then clear error string,5 P2 v7 g a4 l* ~0 i
;; call ltlist_act function, and change focus to list box.
( Q6 |5 F. k5 e ;; Else print error message.# d% O& V- ^) d# [# J5 G& ^# A
- [) o! m( S1 V1 c( V (setq ltvalue (xstrcase (get_tile "edit_lt")))& T% H0 Z% K m( ~! u7 L
(if (or (= ltvalue ;|MSG0|;"BYLAYER")
* c9 T# H: T' Y. Z (= ltvalue "BY LAYER")
8 w2 J a* p" R5 s/ W; d5 i9 P )1 w7 w+ b2 M6 Q! {
(setq ltvalue "BYLAYER")4 Z* A1 \$ P% V' N
)
! D! n" T* _' X9 B0 Y# ~6 [1 a3 d/ ] (if (or (= ltvalue ;|MSG0|;"BYBLOCK")" V. \4 j7 \4 Z& Q6 }
(= ltvalue "BY BLOCK"), U9 c$ t) m! I' D9 R3 n* |: r# D
)% }* @* }6 q" q4 Q) |6 ^
(setq ltvalue "BYBLOCK")/ O8 b+ s" T5 w
)
. O- v7 Q- K1 w1 ] (if (setq lt-idx (getindex ltvalue ltnmlst))
: `0 Q1 ?+ A: ~6 M k/ K0 p (progn% a+ Q z3 \! C# J+ p( H2 ]
(set_tile "error" ""). e7 I4 a0 R( q, `
(ltlist_act (itoa lt-idx))7 ` V. \! a( s/ L3 u8 P D- Y
;(mode_tile "list_lt" 2)* }8 h8 M7 F E9 z5 B
);progn then7 P% |" q& C& ?' j( s6 f9 G
(progn
! a4 Y; k& s0 s, ^/ C$ L (if (/= ltvalue "")
& [- w% C* Z2 F* A; r8 ]8 ` (progn
" }& w! y6 r/ c5 N (set_tile "error" "Invalid linetype.")
& ~8 ]0 l" o1 M6 {" M7 g. d (setq flag T)- v( ]+ n$ ]- X# a1 j' X9 h
);progn
2 K- m |4 {$ s" l+ t# M% U+ n )
1 O6 y4 P3 D3 r8 {( @ (setq lt-idx old-idx)
0 K% v& o" s* N; V6 T: _; |9 B );progn else
Q0 }! O, \! C, e2 A- W. i8 i );if8 Z" o& T2 `0 M
(if (and (not flag) ;added so a return will take you out of the dialog.3 J7 {) `( k" B& M# ]* @7 ^
(= $reason 1)
2 [/ A- ~% O7 c7 p6 h# f );and
& P9 T& L9 W' h8 g3 X (done_dialog 1) 8 ]$ t1 c5 c& M) ^+ E
);if 8 b) Y2 N" g5 A2 ^7 k2 [- u9 D: e4 ]# Q: \
);defun ltedit_act2 s R3 J! D* A: T, Y7 t) E
;;4 y0 @; ?0 j/ t- E4 i
;; List selections end up here
8 r N5 M1 z, [' ~. E/ }2 s ;;1 v5 l6 F" @# `. l; Z7 G% c
(defun ltlist_act (index / dashdata)$ `3 x Z% p' y3 ?0 M) I8 ~
;; Update the list box, edit box, and color tile& K, {7 a! G6 }
(set_tile "error" "")3 e' A: C) B6 Y7 c+ C* K$ B
(setq lt-idx (atoi index))
; V/ `9 A9 [$ V; ? (setq ltname (nth lt-idx ltnmlst))- }" u/ G4 j# [& i
(setq dashdata (nth lt-idx mdashlist)), y( m4 G2 R, u# L* c! f
(col_tile "show_image" 0 dashdata)
! M3 T8 ^& ]6 l (set_tile "list_lt" (itoa lt-idx))
" B& t3 u6 `5 P6 x (set_tile "edit_lt" ltname)
6 K# ^7 O1 \0 n+ [6 X9 c+ m, \ )8 s( \# N% N! z/ e3 ~
;;
/ R/ a" h( x K: Z0 C; n( ]- D9 Q% [ ;; Reset to original linetype when cancel it selected
; |3 w3 [6 K$ u* H! x2 O ;;
' V9 ?) X" [ ?2 P% | (defun reset-lt ()
( C' g" b! n$ R9 f- L$ N" x1 ]# D (setq lt-idx old-idx)" ? Q/ S. E& y0 S+ W# o( w
(done_dialog 0)
8 w* l1 F% ~ [ ^" o: e% r/ R ). v' @3 s k D/ _, g+ r
;;) w9 V1 f' @( x
;; This function pops a dialogue box consisting of a list box and edit box to
6 ~/ k/ p7 l1 n' V0 P ;; allow the user to select or type a layer name. It returns the layer name
8 I! V& {- K# } ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the$ @' b; E" [; N9 w! |
;; drawing.
# B: D6 l3 g- _, M ;;
0 h, Q* J" u: U (defun getlayer (/ old-idx layname on off frozth linetype colname)
6 v) K! t1 W. L8 I/ W ;; Create layer list the first time the layer4 F" a7 g+ _' w4 I/ g' ]
;; dialogue is called.: j. {9 k0 q% g+ q5 `8 U
(if (not lay-idx)
: C& ~* c/ e% v! {( x (progn3 l8 y9 o* Z5 x) a( x# o
(makelaylists) ; layer list - laynmlst# t7 u- y3 Q' N
;rk
6 }! u, y$ i; i# u. E D W (setq lay-idx (getindex elayer laynmlst))
0 x9 v9 w; z7 m2 z8 } );progn( s+ Z% H5 ?. y- G
);if
3 T( Q" U E" Y. r( [- g; Q5 E6 Q9 f! n; Z2 g* E& z: X; `' P, R
;; Load a dialogue from dialogue file7 q5 K' M' O3 S' t: {, `" _
(if (not (new_dialog "setlayer" dcl_id)) (exit))3 Z* p) k5 ~; j; E
(start_list "list_lay"), x% Q# K: b" s3 K5 B1 j# [$ Z" Z
(mapcar 'add_list longlist) ; initialize list box
2 q$ A0 K# {* {9 T, Z" W( r2 l (end_list)$ l; z6 D' [( W$ s) O
;; Display current layer, show initial layer name in edit1 |7 R+ I/ [) q
;; box, and highlight list box.
% S$ n+ p y- k( n$ b: V (setq old-idx lay-idx)* j+ ^, e; W; n r2 c
(if (/= lay-idx nil) (laylist_act (itoa lay-idx))); Q5 L( p3 r4 t+ }
(set_tile "cur_layer" (getvar "clayer"))
+ ^# y8 ~6 @5 p) C (action_tile "list_lay" "(laylist_act $value)")
. ~: H$ D- v& o. ~) s* Z (action_tile "edit_lay" "(layedit_act)")5 B3 J9 S |/ ^" E/ n9 r; o
(action_tile "accept" "(test-ok)")
: c! K. p) x9 ~, @8 H (action_tile "cancel" "(reset-lay)"). A8 ?0 L) k0 l; g! B- I
(if (= (start_dialog) 1) ; User pressed OK
6 c5 s' U( J! W0 n. ] (progn
, I( R; i. `$ X; }, l4 D (if (or (= lay-idx nil)% E% n0 i8 s. j' S% I( x
(= lay-idx (1- (length laynmlst)))
; C* e. {3 R! Z) T/ c );or
0 t) e1 l8 d# N/ U- V7 T (progn* @; N- a$ G6 o% p4 G/ ^
(setq lay-idx nil) 0 s" _; c0 ~4 q% ~8 @: a$ h
(setq layname ;|MSG0|;"VARIES")
4 j9 V. x, r/ V. C7 k (set_tile "t_layer" "Varies")) t' g+ H5 K9 o- U; J0 Y; C! v
(setq layname "")
/ G9 N: [3 E8 |, F& a. M );progn
# ~2 S# L( E5 y$ `1 G! a (set_tile "t_layer" layname)6 C% f9 d a- c4 ` a) H9 [# b( B+ k
);if
% o* @4 B5 n; v ; If layer or ltype equals bylayer reset their tiles% z' ^ y7 z6 k# Q3 H& r
(if (= lt-idx 0)
. D( z4 B. f1 w8 e (set_tile "t_ltype" (bylayer_lt))8 ]0 \5 O( i# E1 h; r; u
);if- L4 d* A9 W- P7 L
(if (= ecolor 256). {& B1 N7 G/ Y6 K7 U
(progn
2 p2 e3 z! E/ J( l) l) a! X (set_tile "t_color" (bylayer_col)). f% k& ]# i; D- `5 ?, ?
(col_tile "show_image" cn nil)
1 f" j I5 G3 y )
- e% S) X% x$ l/ L2 y3 K1 t );if
* t; m: I: ^+ Y3 C layname0 c! w1 b2 U5 E0 I" r D% ]. F
);progn' l: V4 h# h! n+ N8 x5 A
elayer
- |: Y! x6 y1 H9 T4 M/ T );if( m7 `! G9 b" l7 }0 ~$ @
)
: w- B$ N* ?* H/ R. _5 ] ;;
% i$ C; e" A1 x; j ;; Edit box selections end up here" l( q% d6 J/ y1 s' o* w
;;8 K3 ]7 u! p# H3 E1 s) T( ?3 \" n
(defun layedit_act()
! }& c5 } w/ v! S8 l, ? ;; Convert layer entry to upper case. If layer name is
! K8 Z& _) f* V4 ?5 S ;; valid, clear error string, call (laylist_act) function,
& E6 V) Y4 x% T* S ;; and change focus to list box. Else print error message.# T$ v, ?; [2 L F# ^# I' `
(setq layvalue (xstrcase (get_tile "edit_lay")))! k P, M8 n5 |" f+ ~& i
(if (setq lay-idx (getindex layvalue laynmlst))
3 b5 o3 `2 P+ G1 R (progn- k6 C0 l' d- \9 O
(set_tile "error" "")
# F g8 ]9 g5 Q! C (laylist_act (itoa lay-idx)); v/ U0 }$ Q5 a' V: e
)
2 A7 I* x9 U( O/ m) A (progn
9 o! d' J/ H7 D3 e2 R3 k$ q* G5 l (set_tile "error" "Invalid layer name.")+ m+ B* B/ i' \
(mode_tile "edit_lay" 2)/ C+ Y0 N9 \' o' n7 e
(setq lay-idx old-idx)4 Y1 ?7 N8 |9 i" M5 M$ I% A; {8 k
)6 u; R4 M5 K0 T$ Y. G1 y
);if) r Z0 ^8 i0 F' d. n3 u0 F& d F
);defun
, Q6 v V) f: n# L& x9 ~5 x ;;$ S0 g6 u1 I7 N: ^; [
;; List entry selections end up here
2 `, a5 |8 I) i ;;
% @4 P' s- v3 Z8 p' c7 N (defun laylist_act (index / layinfo color dashdata)
$ F& p! y3 z* _3 t' G# X3 s9 w: o ;; Update the list box, edit box, and color tile
/ P x) s* L8 I. Y1 ~" H (set_tile "error" "")
( X) o1 |3 w2 s: h: u' p5 V" y d (setq lay-idx (atoi index))% q" ?1 ~9 t I* v* y: X% J
(if (not (equal lay-idx (1- (length laynmlst))))$ b3 X* `4 B F% ~6 Y
(progn # Z9 v/ D! y: p6 |8 y6 ~
(setq layname (nth lay-idx laynmlst))
4 X( Y, s9 ?) m, K0 X (setq layinfo (tblsearch "layer" layname))( f% a7 Z) r7 x7 T
(setq color (cdr (assoc 62 layinfo)))! ^& m( _$ _0 p4 S; ^
(setq color (abs color))
. X1 s9 H6 m9 `7 G- z8 O (setq colname (colorname color)). S# D* F. K/ U O
(set_tile "list_lay" (itoa lay-idx))
, j& w7 P s: e (set_tile "edit_lay" layname)) a# O1 o& s6 y% g
;(mode_tile "list_lay" 2)1 c% z0 ~% C# f7 _( v3 g' G
);progn then : s- T5 X6 E0 g, i4 F: \! }
(set_tile "edit_lay" "") 7 | T* c$ L h6 [( [5 X
);if 3 w G) C5 \9 S8 b9 c) Z$ f
);defun laylist_act2 g5 e3 s+ h) L7 p9 {
;;7 [: G$ ]: E' c5 \% o
;; Reset to original layer when cancel is selected
3 p+ f/ ~# Z; i3 E+ N$ c' i G% B ;;
% d( e3 d! P9 C (defun reset-lay ()
$ r4 Y% u4 h4 t" A7 g (setq lay-idx old-idx)! e! S; Z/ O) j
(done_dialog 0)
2 x t, e+ b4 l6 Z7 G5 \ j, j )
( _/ ^% i8 }7 W& U' G. t" e% Y, J: v8 R o/ ?2 Z7 G+ ~3 F, y) R% C
;; Checks validity of linetype scale from edit box. It checks to9 F! g5 m2 ~3 @- d! w. F0 d* P
;; see if the value equals "Varies".
3 i& u* H G2 U3 E# j! V. i v$ \$ l5 x* }! K, {6 v0 j
(defun getscale (value / rval)
2 f8 M* E3 k3 W0 U5 ` (setq value (strcase value)
" ?8 U* |9 L! t( H rval (distof value)# B% J* H. _7 o) B& D/ x9 E
);setq) m( Q1 l6 M1 s. n8 v1 ~/ L
(if (or (= value "")
6 v* q" o4 j+ P+ D/ | (> rval 0.0)# M9 c9 v5 I+ u; h# h" m6 l2 R e
)9 ^1 a! `" Y, @) `5 B1 Q. H
(progn
6 S3 A+ ~% g$ C5 h+ o, x r9 t3 \ (set_tile "error" "")
; d$ g( I1 }5 s (if (= value "")6 n6 w1 G" [8 n2 U5 f$ a: m& r4 z. G
(progn& W5 e% `9 v: S9 u; n
(set_tile "eb_ltscale" "")$ u/ k6 |) f& h6 T' a
(setq eltscale nil)- T8 i! h+ |+ a! i2 m- R6 v9 H$ c
);progn then
7 P2 o3 v( S- b4 u& G6 \ (progn; f6 x' ^4 D) _7 X' Z$ g
(setq eltscale (distof value))4 k* z' y+ t' Q+ `$ k, f& p6 d
(set_tile "eb_ltscale" (ai_rtos eltscale))
. }) I* J' u: V+ ~ X, s1 X eltscale. \" I' i9 O& E) |3 M
);progn else
. p8 P* W8 \* h9 M6 P! Y& m) m );if
4 z# @9 _, d6 l: _3 k+ n% k );progn$ g: B) [/ `7 @/ @* w1 Y. b
(progn
2 V! |& F9 n5 V (set_tile "error" "Invalid ltscale.")/ g% W7 N; f: D5 s" u
nil
0 U4 @1 m1 C" O$ z );progn else
- D6 Y) x* i6 W% u2 Y3 K$ q; b );if3 I, I V4 i2 ]
);defun
/ K' N# A: k& }' S: _ ;;
* R2 S7 ~# e, A ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
x, f t( f+ D: z9 d3 v$ R2 k ;; string can't be converted to a real, this routine checks if the first
' D2 Q* ~& r& |: n ;; character is "0". It also checks to see if the value equals "Varies".
( Q- j% p, |6 `* m ?' G ;;
7 `% t& d" V: T (defun getthickness (value)
' M0 h/ T4 `8 D4 g3 j+ { (setq value (strcase value))
; z2 i7 h; e: k$ A (if (or (= value "")5 x9 O; C/ a! s0 p5 Q3 ~
(distof value)7 J3 {, f! Q, [* N) m* {
);or+ Z+ A# W7 T" {, m
(progn% m4 g, F/ |# e4 H ~3 I; A
(set_tile "error" "")
$ g- P8 d3 |) v2 F( ^# I5 x (if (= value "")# a) r( z! Z; s4 a' P# m
(progn0 n, H+ T, R8 b& ]8 q2 M
(set_tile "eb_thickness" "")
/ }! O8 J( v% n6 ^, P2 O" Q (setq ethickness nil)
l# \0 k( o4 ^& w) J7 s( e+ d! l) ^ );progn
% K; y% w& J' ~, n (progn$ T/ ^0 n) ]$ X. Z* O
(setq ethickness (distof value))5 D% P( a4 \. O0 _" u' ?
(set_tile "eb_thickness" (ai_rtos ethickness)); E. E0 x& x8 Y' n! x
ethickness6 c$ V( ]7 v. r8 ~& |
);progn
! @9 `# D: s* V9 P( o );if* f& X# _5 |, _3 @) i
);progn
- T4 u7 w9 r. B (progn
- M% y" I5 ]" o, Z+ g6 O6 G8 ~2 I (set_tile "error" "Invalid thickness.")! ]9 y- W% l6 L( {1 B
nil
# ?6 K1 s2 H- U1 j, \+ t: g: w );progn
' d1 g y9 P0 K: Q: t/ }0 w3 V0 z );if
4 E0 X# p2 \- |1 U; g5 a* H );defun
) h$ q* V. Q( |) g% h# L' K' e9 \ x$ q ;;
: r% Y" q3 \# I2 o! s ;; Checks validity of polyline elevation from edit box./ p8 m# j% `4 r/ L' u% J; X+ ^
;;9 v% T3 V G- O2 ]9 P4 q
(defun getelevation (value)8 U- ^) z/ V1 I. a# P
(setq value (strcase value))
- [0 D; u/ D% B; d K6 @ (if (or (= value "")
, g9 N& `9 ~ v4 y. X& T; a (distof value)# E. y' o, K8 ^# o' z. N
)
; \* j; f p7 @! v6 q- l+ @, F. S (progn e9 g$ I ?/ C) \+ w2 p
(set_tile "error" "")
& L9 \" Y2 p0 d' m7 j- q! e5 ?; l (if (= value "")
; s% P3 O/ y( z1 N2 K (progn: k+ H* P7 y5 C) u. d Z
(set_tile "poly_elev" "")
8 l0 R1 |% C3 x (setq eelevation nil)
! ?; U& C# T. V: H );progn
2 h7 f4 m) J. k) V- O4 V' R (progn# O/ e9 F$ ~3 F5 Y2 t0 Y3 X
(setq eelevation (distof value))
# w/ S0 f( B5 @# T7 X3 z, k5 k0 m (set_tile "poly_elev" (ai_rtos eelevation)); T6 Z: q o) ]1 N* l
eelevation0 m7 h- z6 n7 g+ G. X, }
);progn
' @1 m: H- C- ~% A8 X0 C% m );if' k3 H5 k/ m7 X5 z4 V- l% l4 s
);progn& k2 s! _5 {4 N$ `7 Z
(progn, q2 o$ C) [2 L/ @! C7 p9 r
(set_tile "error" "Invalid elevation.")
, ~' Z4 L$ ~; r1 C6 y nil
5 |7 k& L; {4 \9 n' J );progn
& d; ?; k: p( { );if9 ?* f6 W, K/ F# I) S7 v
);defun) N" @4 @' k" v) q, T, Z
;;
2 ^+ E8 e- l' w3 i ;; Checks validity of polyline width from edit box.
3 x5 T9 `8 o) z/ t' V6 u ;;8 Z& y3 ]/ h9 ~% d" V8 I6 {9 O4 }
(defun getwidth (value / rval) S! O* {7 d. s4 n x% d
(setq value (strcase value)
# `$ p. C2 k4 R& S$ E2 H+ z1 t rval (distof value)
P$ X& ~$ P+ m. g6 |( } )
4 ?6 \5 `7 K4 O$ D (if (or (= value "")
* B; f* W, u' {7 O: Q5 K (>= rval 0.0) N9 d4 w) U# f2 U; T
)
3 P8 [' l& {" N (progn
/ P- G! c( m" S8 [6 l6 b (set_tile "error" "")
( i+ e' ]& m6 |) k (if (= value ""). v% J5 H2 r( y" A* P4 {
(progn
+ U( i8 F, B( `/ r# I" S7 k (set_tile "poly_wid" "")0 V$ Y5 Y) F0 T( S* \$ z+ [
(setq ewidth nil)
7 S$ C0 V2 O4 _, @8 X );progn) \8 _8 }! K7 w' `* u, ~$ U) u3 H
(progn
; P. L* G) o; _ (setq ewidth (distof value))
/ l1 Z8 c( O; [$ L, |- B (set_tile "poly_wid" (ai_rtos ewidth))6 {) o. ?. p, V- G$ a
;width/ C& C5 F* t) r) i# i; x8 ^/ G
);progn
3 L" c6 s* ]& T9 u* ] );if7 {: T7 |, D& {; h7 ~( }
);progn" X9 e8 H u( L6 f |# ~
(progn& G! c3 J4 s2 r
(set_tile "error" "Invalid width.")5 X: ?& X4 {2 _3 h) F
;(setq ewidth nil)8 N+ J/ f7 B( I( ]( m
nil
% J/ U, y/ K% _7 h4 f );progn, F1 E: f, |' z
);if
. l2 s4 u8 @, P% ~/ { );defun
, d2 ?5 L8 f! ]* q1 e ;;
( Z/ F- t& J- f ;; Checks validity of text height from edit box.% v: j' ]# j# a! Q
;;
% \# m! e7 K' Q$ K (defun getheight (value / rval)
' N. y& J0 ]- B1 a5 Q (setq value (strcase value)
4 V8 m- x: L% {& u4 R0 f! ?5 m5 ? rval (distof value), C T# `' W) G2 M- M) S
)
9 K5 g( Z) M; X' r (if (or (= value "")6 K& m* m& i* K) b9 u1 T8 z
(> rval 0.0)
) T, R% D. H' s" M! @ )
+ Q* T$ E& Z! C! a& e# u7 w2 ]' ` (progn% |* D: t' }: Y4 i! ]' R
(set_tile "error" "")
: ~' t# ^+ D# ^; i6 H (if (= value "")
& ]' m; x& }* }- z$ X$ Q2 p7 n (progn! h$ H. e' t$ U( j
(set_tile "text_hgt" "")
A8 q. q) [- J) a; a (setq eheight nil)
% b# G3 t2 A1 s1 R. k3 Y$ z4 P );progn+ J4 _" r2 q. k* D. ^6 W* X
(progn7 Z7 y) |- e1 r/ _
(setq eheight (distof value))
6 `+ u2 l l( s9 W2 w+ D (set_tile "text_hgt" (ai_rtos eheight))
* L" x" k9 @' k+ f8 ~0 g% y, ^0 \, D+ U5 T eheight
7 B# |' e5 G3 @* v J7 p );progn
' @( C3 ^- P5 c) z3 h2 F& |1 w );if" X0 T! ^) J0 c3 s. U# w r, G( u0 K
);progn
6 t9 [8 k1 b2 ?: J+ Y: } N3 x (progn6 y7 C- T5 K5 w/ h: M
(set_tile "error" "Invalid height.")& V3 J& W/ V; t1 Z7 S
nil! T0 i! _9 r' }" e' F; p& p. ]
);progn
8 P0 S3 J! s! h1 b# G: N( b% t7 C4 \ );if& Q7 _1 d0 ^5 v
);defun: c7 }0 P* z( I: x
- w8 L3 R1 y+ s% P7 Z
(defun getstyle (value lst / rval)" j8 w! f) b6 F8 x/ h2 O
;(setq value (strcase value))
1 O6 R( P( Y8 @7 m (set_tile "error" "")
# Y6 w6 c. ^: [ (setq estyle (nth (atoi value) lst))
" k; T7 C( a7 v/ a, j+ W2 O* X (if (equal estyle "")9 Y8 C+ c9 v) }7 v; Y* g
(setq estyle nil)
1 d6 x1 Y; W7 y/ {7 p; {$ g! X3 V );if
& c: `8 G5 R7 }) e$ N/ ~, {( w0 n# d/ k8 y! @; W2 `1 c
);defun getstyle
" L7 C# d) |+ R3 Y
% _# [5 @" b w$ {6 o ;;8 X1 I, d9 i( Y u& `! D3 ]6 C
;; This function make a list called laynmlst which consists of all the layer& Y4 R" `' p! A! U1 E% k
;; names in the drawing. It also creates a list called longlist which
0 p, B& l5 N( k ;; consists of strings which contain the layer name, color, linetype, etc.
# H, M a2 K# u! s" O ;; Longlist is later mapped into the layer listbox. Both are ordered the
5 l8 C8 E5 n- u2 I( z ;; same." g: X8 V8 n9 N( F o! x+ B4 a( Z
;;
/ e: i+ A# D' U( E (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
+ ?# [6 i, s) ]2 P3 B+ N xdlist vpldata sortlist name templist bit-70
2 c2 T4 h0 b- B/ ]: y4 ~( t layer_number
& } v( ^; V+ F% d6 p )! N, ]1 U; Y9 N7 Y: H
(if (= (setq tilemode (getvar "tilemode")) 0)
! k' p4 x* W) T$ b0 _, R$ z! Z (progn
0 R4 o" \8 }" M9 ? (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")' B- i) O, D0 c7 N
(cons 69 (getvar "CVPORT"))3 U# T: K5 y. r1 _9 @. Z( P
)
2 a, }3 m; k6 J. P )
+ ]* _% ^" I3 Y' v$ B- u ), i* w5 D8 j/ a7 {1 s$ G
(setq cvpname (ssname ss 0))) Y$ D5 G, N$ p* i* H; b3 e. {* E
(setq xdlist (assoc -3 (entget cvpname '("acad"))))
) a5 `; C6 m4 ?; X z | (setq vpldata (cdadr xdlist))
/ J% R6 `$ \* \5 f. q ? ). X' Z( ^, \0 O! J P. F
)9 y1 F5 L2 k$ y
(setq sortlist nil)8 d; B5 [% ?( K L4 w/ T
(setq templist (tblnext "LAYER" T))
/ r- ~% A' ~6 ~- R (setq layer_number 1)
, \8 R' | K6 i& y r z (while templist
) U) T$ z1 n) V8 a (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
# C$ W1 d+ s. k6 M* x3 Y- v (progn ( P! ~ c# t0 R/ l
(setq name (cdr (assoc 2 templist)))
1 e0 P: ]7 W$ o) o% C$ B! o( } (setq sortlist (cons name sortlist))
" S. X1 N3 M0 ~! q ;; Not dead message...& K5 I) J z+ P
(setq layer_number (1+ layer_number))% Z2 z2 e7 U7 \: _5 L4 y8 ]4 y- i; O
);progn/ P! L- q/ D5 l C
);if4 I9 |( O& R- W
(setq templist (tblnext "LAYER"))" n, @" U( h7 f% E& k
(if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))8 n. V( u- v i7 G8 F' F1 `( b. \
(set_tile "error" (strcat "Collecting..." (itoa layer_number)))5 t5 U }- J2 \6 T. l/ ?
);if) E/ |' ]) }/ G, l3 u/ u, ?
)8 B8 P6 \5 r: n# N4 i" ^/ [
(set_tile "error" "")$ p4 d! M* B3 a( m9 U' X) E( r
(if (>= (getvar "maxsort") (length sortlist))% p& R0 w/ z7 Y" s- e' b
(progn6 u' `3 s3 U3 W, J9 L1 A
(if (> layer_number 50)
: ~3 |4 V3 q1 h, z (set_tile "error" "Sorting...")7 F/ o% t0 r8 c7 i
)% f; o) N3 s$ w, e! L
(setq sortlist (acad_strlsort sortlist))
( N; i# Q3 |/ s/ D' P )
1 G. x1 v: x2 z: j3 t9 K (setq sortlist (reverse sortlist))/ h1 d8 x# O1 p, V4 w; h
)
# ~8 E# N- W+ q1 a" W G (set_tile "error" "")* l, V, Y& z* c# ^! [+ q
(setq laynmlst sortlist)# L( w7 K k6 ~5 C+ ]
;rk 0 o0 e- U9 l- J6 K3 w
(setq laynmlst (append laynmlst (list "")))
( I7 Y, P( Y# K4 Q# n& y2 m1 k6 j, p
(setq longlist nil)
% m; x6 S" B) b; E. c r" H) T (setq layname (car sortlist))' @5 ?2 ~7 w! F- u0 _ `
(setq layer_number 1)) ]! g( o9 d: w M
(while layname
% l" S7 D) r+ o5 |/ i (if (= (/ layer_number 50.0) 8 c# j, Z8 K- }% ~7 j1 S3 v# b
(fix (/ layer_number 50.0))6 n. [( D) O a# m1 c
)
# H* p3 X* P6 B2 t6 q2 b% [ (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
2 M% [" E) \9 ? );if
6 O6 ?" U/ c; R (setq layer_number (1+ layer_number))0 O/ t3 @. [4 F% S
(setq laylist (tblsearch "LAYER" layname))
' g. @& n$ E v' g. l (setq color (cdr (assoc 62 laylist)))
) I# C8 ~5 b' H6 g. H' { (if (minusp color)8 i$ |6 d z g
(setq onoff ".")
7 t: S7 n% \0 `& {# G8 V" H8 U (setq onoff "On")1 u7 d+ A F, |9 n/ Z) Z i U; \
)
% N' |) [" r1 x6 L0 L: P: b; P% g (setq color (abs color))5 m' n' ~2 y, R# }8 J6 j! s
(setq colname (colorname color))' g* Z# B8 T8 h8 L7 l
(setq bit-70 (cdr (assoc 70 laylist)))
+ h! o3 Z; ^% H& H/ c8 q (if (= (logand bit-70 1) 1)
/ P! y6 h! A0 l( _& v5 O5 } (setq frozth "F" fchk laylist)+ u5 o3 t- N2 N' W
(setq frozth ".")( ~# p( m- @( F, {: N" e$ J" |& S! H
)5 V; w; p4 F8 R9 f1 T- ]
(if (= (logand bit-70 2) 2)
- U, n; Z6 |- g9 U (setq vpn "N")/ m& D8 d$ e0 D* f7 S! S' Z
(setq vpn ".")
8 b; P: T5 s2 l1 W )
5 Y0 v7 v0 b' v. _1 E (if (= (logand bit-70 4) 4)
( X- ]) r# [4 d. Y; R/ ]+ C0 d! W (setq lock "L")& W/ V( m% S: L3 L' V
(setq lock ".")2 D; }( r3 Q p3 \( C9 U' [
)
2 o) l! [$ _* q- } (setq linetype (cdr (assoc 6 laylist)))
% E- ~* ]0 v4 c# A! `& f, E6 K" }! C (setq layname (substr layname 1 31))7 @: s* j7 M( T# I
(if (= tilemode 0)% B, I! n8 {& d+ C n
(progn4 k4 O3 ^, l; ]9 g9 T) |5 v+ T
(if (member (cons 1003 layname) vpldata)
" H" q8 K% ?3 S7 l9 q' |5 ? (setq vpf "C")
4 W5 T0 k6 T& V& G2 c (setq vpf ".")
" Z- E2 }! M. w9 W% o; j )
* x! v# C# T) z! N1 o. w )
7 @% \0 r, O/ l (setq vpf ".")3 y) o6 E( |# |/ ~/ q. D( z
)
, Z2 Y: ^4 _$ T O: { (setq ltabstr (strcat layname "\t"
/ R, q; _) r8 S onoff "\t"
1 J" ]9 M+ \( k1 b; _8 v! ?9 o frozth "\t"
S. f4 V8 x; D- Y( i7 G2 y& }. ~ lock "\t"
! I; f1 r' y" [( h k* L vpf "\t"9 E/ [+ ]4 W( C, i% j2 V
vpn "\t"3 ^, }5 C" y& ~& E0 M+ a0 ] j
colname "\t"$ u, v* m6 Z! b/ k7 t2 {! ^; {: o
linetype
" y6 s) @7 e( l& ] )9 f# h* h# ]$ @/ y$ n# W. D
)( Q% l' r! y/ o% V9 U, l5 x
(setq longlist (append longlist (list ltabstr)))
$ d' G2 Z& V0 t; [, y2 P (setq sortlist (cdr sortlist))
& z; G6 ^5 x1 ^# U, ?8 A (setq layname (car sortlist))
$ g/ F9 g+ P: t, f, a );while
* X$ a% R5 L$ j& Z+ G6 [ (setq longlist (append longlist (list "")))
9 ?; W! J8 l9 q (set_tile "error" "")
/ `$ G1 z* S, F P6 i4 r- O )
+ z& Q! ]% z: k3 |9 T% M: Y ;;* w) n$ i m' x1 y
;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of: D3 A8 [0 g! L7 ^4 y- l Z
;; linetype names read from the symbol table. Mdashlist is list consisting
' O; Y* g5 M- q" O- k ;; of lists which define the linetype pattern - numbers that indicate dots," S# |5 N5 R- J* N5 B( ~
;; dashes, and spaces taken from group code 49. The list corresponds to the
' H8 w5 R: E' _! J+ Q& }8 Z ;; order of names in ltnmlst.
$ b+ z4 ?, v; g9 ?# ]/ \4 s Y2 W ;;
/ b: l( T! K0 a' Q6 w (defun makeltlists (/ ltlist ltname)
0 ~, ?! r* \+ E ~! I( E (setq mdashlist nil)- i: T% S, V" `" C" Q7 a
(setq ltlist (tblnext "LTYPE" T))& H" `0 W8 S& d2 Y% y+ ]$ D9 u. }! ^7 C
(setq ltname (cdr (assoc 2 ltlist)))! w. G9 F- g2 j
(setq ltnmlst (list ltname))
k7 G8 B4 P% c Z( [5 D h (while (setq ltlist (tblnext "LTYPE")): ~$ [) G( C1 O9 M, }, b
(if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
% f$ i9 o% ?; e1 @3 d* K* w, l6 a (progn
" ^/ v$ D0 I% P1 D' p7 D+ R+ l (setq ltname (cdr (assoc 2 ltlist))), K6 R+ s ~7 h( X# [2 v* @
(setq ltnmlst (append ltnmlst (list ltname)))" P# R; K" g2 M
);progn
+ m |# O: `) M6 F3 M6 @ );if / E' a" K4 n' J% `1 q- e1 S `& R
);while
% |% }4 ?3 v c6 ?/ M& Q$ O2 C (setq ltnmlst (acad_strlsort ltnmlst))/ ?) m+ N0 d6 T& I: I7 z
(setq ltnmlst (append ltnmlst (list "")));add by rk E6 N1 t; W y* t, V. e: u
(foreach ltname ltnmlst: o9 I& f, o0 F5 A! U$ t6 V( N
(setq ltlist (tblsearch "LTYPE" ltname))' X9 d6 R) T! }
(if (= ltname "CONTINUOUS")
* f2 `( n$ A/ K6 e5 t; { (setq mdashlist (append mdashlist (list "CONT")))& [. z: j D" ^& u, z9 H. q
(setq mdashlist
$ O( x4 \- t* D9 @& C' s) h1 I! a: B' ^ (append mdashlist (list (add-mdash ltlist)))
4 c$ b8 b# H1 B' t( }9 ~1 K$ e )- N6 X, b r9 V; |5 Q3 F
)% j7 S, W, E* u1 d/ Q0 F
)
% `. ~. e. S- M& R: e+ ?+ ` (setq ltnmlst (cons "BYBLOCK" ltnmlst))% d* M* Z; {# Z/ b
(setq mdashlist (cons nil mdashlist))! m0 d7 h. ^% {# q
(setq ltnmlst (cons "BYLAYER" ltnmlst))
* \4 W+ f" w K! g (setq mdashlist (cons nil mdashlist))! G8 X3 g/ {- Q8 `; T6 Z
)
7 _0 c% Q$ g$ i ;;, u4 m* a, i* a
;; Get all the group code 49 values for a linetype and put them in a list
) m( g4 A: Q+ L5 v% p ;; (pen-up, pen-down info); l' I( h. ~) a0 e4 ?
;;
" q3 H$ T" E; Q7 l& F4 @! v (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
3 D ~0 S/ L! x5 L, v0 ^ (setq dashlist nil)
- \! }7 E+ Z1 h8 T5 F# w, G (while (setq assoclist (car ltlist1))
& I( \5 }: M7 G2 t3 F; x (if (= (car assoclist) 49)
0 Z& ]- |+ l, N5 @ U/ m (progn. H; o% o" o! o
(setq dashsize (cdr assoclist))& |0 {+ ?! y* B4 y* j3 R$ B$ P# j
(setq dashlist (cons dashsize dashlist)) X2 @+ [" i6 \6 \
)8 k* K* z1 o! P% \' j9 P
)
1 u5 c" O" T& V! E" T3 l (setq ltlist1 (cdr ltlist1))
1 }0 k, J' H& [8 e )
) c( I5 h; h! k, _9 @ (setq dashlist (reverse dashlist))5 @4 E1 m5 i( `3 r$ [/ Z& w
)
6 w* u; C' Z* F0 x6 y; w ;;3 e2 L0 i' a( G, {0 ^4 [* X3 Q9 E
;; Color a tile, draw linetype, and draw a border around it
7 D0 G( h* R6 m3 B9 W6 l( ?5 g: Q ;;
# X0 H4 @% T4 s2 k4 g9 d1 K (defun col_tile (tile color patlist / x y), _$ z6 p' j8 ~
(setq x (dimx_tile tile)); R/ W3 P! } C# ?
(setq y (dimy_tile tile))
* j8 {/ H5 I" g& T' O/ R* t, G (start_image tile)5 ?- O5 T8 G. ? M) ^* `* d
(fill_image 0 0 x y color)
' s' q# ^5 |( N. r8 u( | (if (= color 7)
3 `9 Z, _4 {& `$ S" C (progn) Y3 e+ @& u1 v6 q5 o
(if patlist (drawpattern x (/ y 2) patlist 0))& l2 T' G; u# ?1 A
(tile_rect 0 0 x y 0)
- d- ~$ ?4 n" a9 { )
; }$ h% [$ O6 L s* h (progn5 G' \' p$ p; l7 M: Z2 V8 l& P0 _
(if patlist (drawpattern x (/ y 2) patlist 7))
% {/ j8 a- ?! M; z* M$ {# R5 y (tile_rect 0 0 x y 7)
$ ]& _; h n' Y E9 A )
- {, w6 o: T% \# N( p; E: V: Y6 y ~ )2 o- B& D. |) Y
(end_image)
7 J: \# Q) F" t! M0 ^( b )
" p: G4 r& \/ N: e8 G& { ;;# N' i0 _; a \
;; Draw a border around a tile
$ t& q( j1 f' q: @# D# f ;;! `& _7 G# Q( q( S
(defun tile_rect (x1 y1 x2 y2 color)
" ^5 N h/ d) O$ \2 U( N; v5 Q9 y (setq x2 (- x2 1))3 a" v/ X; M8 X M6 w0 S
(setq y2 (- y2 1))
9 c( h0 |3 b4 T- N# Y (vector_image x1 y1 x2 y1 color)! K0 O* C, O" X+ y: Q
(vector_image x2 y1 x2 y2 color)
* B, |. a: n p* [! V0 Z (vector_image x2 y2 x1 y2 color)
# q5 Z2 U0 W$ j (vector_image x1 y2 x1 y1 color): f9 t0 O6 _) x6 z
). R" e$ A# a/ N1 p% u9 r
;;
/ u5 h! G1 z4 E ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
- `% G$ |+ \3 c ;; tile, y2 is the midpoint of the height of the image tile, pattern is a- N( o7 C2 } q; r- Q$ D
;; list of numbers that define the linetype, and color is the color of the- L3 u4 w2 x7 d1 e- v
;; tile.4 n) z* m$ ^( B. K1 {
;;
# B$ s R& ]' _! T0 B! Z (defun drawpattern (boxlength y2 pattern color / x1 x20 f9 f4 o, M' X7 W
patlist dash)
: S# o6 F+ C6 f: h) N, Y (setq x1 0 x2 0)( N7 N0 {: Z" s
(setq patlist pattern)3 n1 J3 W7 w8 ~ }: r h
(setq fx 30)6 d( @- v6 d0 { E* m6 _7 o
(if (= patlist "CONT")" p' l" [' s5 @0 F
(progn0 |! o9 X! W# k0 q4 H8 u5 _
(setq dash boxlength)+ m( {0 v o4 T. W2 \
(vi)
' Z0 a8 ?6 C8 K6 X9 z9 z& w (setq x1 boxlength)
0 W5 |5 z' E0 Z9 v8 G )$ z9 h. p B6 r) {
(foreach dash patlist& @! E& u! x; p! o; p
(if (> (abs dash) 2.5), ^1 m2 h x8 T' d
(setq fx 2)1 V d! |3 q! v- I# `( c$ j4 T
)
: \0 R5 P; V( l6 t )0 G( s6 q. O0 i' Q
)7 X7 [, w3 u9 S7 d6 H0 K
(while (< x1 boxlength)
, {) o' `" n0 Q (if (setq dash (car patlist))
4 F# O1 \+ ^9 l. K- P9 { (progn0 K7 h2 J- p; l9 t2 P& J) p6 K
(setq dash (fix (* fx dash)))) O1 h# _/ n8 r
(cond
9 A& _) S8 A, U ((= dash 0)6 W- R, P$ d$ u7 j& I& b$ k
(setq dash 1)/ k H/ o+ a7 y$ V$ v! o
(vi)
# f& d, A/ T& g. d; g% s+ }# i6 G )
8 D) m4 Y; R% F: O ((> dash 0)% e I1 E' O$ Z% g/ p0 F; `, E' Z8 d+ i
(vi)* s3 w8 {) |. ]# X: B
)
7 |1 @- Q- U1 ]% g4 b, x& l8 x0 I (T
2 k) C3 w2 [- S% C (if (< (abs dash) 2) (setq dash 2))% w6 d) F) g8 E; c2 e- a" }
(setq x2 (+ x2 (abs dash)))/ ~: r7 q) W/ s1 J6 c
)
6 v E! b, b" ]/ G3 g )
& \. h0 |6 v9 j6 i4 A; S! v (setq patlist (cdr patlist))$ X( |0 e: V& C0 o
(setq x1 x2)
# p% a3 K" W/ Q4 |4 O% b2 Z )
! W. N8 i2 q; z- ?! ~4 m& {2 A (setq patlist pattern)
1 ^% e' c! c% ]1 c3 r6 x, c )
: L$ h$ F7 m) t' E- |- D" j )% _5 Z; m# P, Z& ^( c: |
)% z# ]. h' O. I; u' `2 L4 ?# Y
;;, M" \$ H( f, }3 }
;; Draw a dash or dot in image tile! c$ Y0 O9 M2 p. D5 j
;;
/ y: D( n/ z y8 L (defun vi ()0 x; z+ ~3 Q7 Z: c6 n5 _9 J
(setq x2 (+ x2 dash))
8 ]# w. t# K$ |" Q; Z! W! j _ (vector_image x1 y2 x2 y2 color)
/ z5 o% S+ X( ^# t: m ). |0 r) K* ^9 j& J0 [! g
9 q" N7 S- W; n2 f5 h& y# T ;; This function takes a selection and returns a list of the color,) z, G. Z7 \1 [/ t, [6 e" W+ ^" n
;; linetype, layer, linetype scale, and thickness properties that
]% F/ T; n$ ^$ W ;; are common to every entities in the selection set - (color
; S' u k/ Z5 E: Q4 `3 J- }9 d \% s ;; linetype layer thickness). If all entities do not share the same
9 ~5 _: L6 q' h+ O; @6 B9 L5 z ;; property value it returns "Varies" in place of the property
' g4 G1 \1 z/ }: z ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)9 Y9 \( c1 ^6 p% e* [% ?3 |
;; The last item in the return list is an integer flag for the$ `% e- F! k+ c9 g; @1 C+ ^
;; homegenity of the selection-set object types.- }" y; G. U. T ]% a4 ], `
;; 1 = All polylines& p# \0 v) r6 ^% J" L t' x: g% K, H
;; 2 = All text or mtext or attdef, or a combination of the three
2 {' \ F$ ?1 q ;; -1 = Any other mix of objects/ }9 H) `! J- S/ y9 e* z* R3 S
% j: z+ z+ V6 q6 u (defun getprops (selset / sslen elist color ltype layer ltscale thickness: T* I( B8 I n) g
width elevation height go ctr
6 Z' Y" s: o$ l9 J eflag * K$ P6 o$ M3 `, Y
etype temp 0 j7 a/ F5 |6 C& g/ z6 i0 j
txt_ss ;;;;rk 11:24 AM 1/30/97
+ h& L6 K8 ]# Q! {" i tmp T0 X2 e2 L% Z- \. C4 `& X4 M
poly_ss
( {" u; b3 o5 T style% `- O7 i1 i" c# |2 u7 x
)
) k$ G e4 F5 N: Q; }) B
2 |2 {9 f8 r0 _8 P0 z* _ u* R
. J# Y8 S! m/ t (setq sslen (sslength selset)9 N, O: |5 F" }6 i: T2 l
elist (entget (ssname selset 0))
- _# ^( M, O% f! C: X) h' f etype (strcase (cdr (assoc 0 elist)))$ \9 _: V/ S# L' e/ L% x
color (cdr (assoc 62 elist)) h& l/ \' i0 I/ f
ltype (cdr (assoc 6 elist))& e- @# W5 a( u
layer (cdr (assoc 8 elist))# R. T3 J. O$ a3 |, X- Z
thickness (cdr (assoc 39 elist)): w) d/ v5 a! Z! p" j
ltscale (cdr (assoc 48 elist))
8 l9 n2 y1 z$ I& B );setq& h- M$ [* i' z4 S- z* \4 d
1 i5 m7 o6 p( {% n (if (not color) (setq color 256)) F4 i6 ~ h1 `8 w8 p: e
(if (not ltype) (setq ltype "BYLAYER"))
" b7 J9 _: e% _2 }" d (if (not thickness) (setq thickness 0))6 A% V4 I8 O W& p0 Y- \4 T, M
(if (not ltscale) (setq ltscale 1)) K) |* X+ c/ s& o
% M: ^6 y: r" c6 t; Y# I) |9 G (if (not width) (setq width ""))
& A( E l2 K- J4 I1 T% V (if (not elevation) (setq elevation ""))
. j+ ~: g3 {& n" E. C# q (if (not height) (setq height ""))
5 z8 e$ P- K% F) ~8 }3 @
) d2 i( Q3 ? S4 g" P0 K (setq go T $ u& @' Y- u3 l8 h2 X, {
chk-col T
* e. s9 H3 z# W% S5 G: h% M4 j- j$ q chk-lt T 6 @7 Z. L4 J! ^6 E
chk-lay T ) ^$ p: L& ]0 |1 ^" t( L
chk-lts T 9 b; t: `' h: D' _. f
chk-th T ' S. B+ k: V) G6 ^7 i0 m
ctr 0
; L$ A& p( {# ~1 R );setq. Y4 Y3 d) G( X' V: L
/ f/ C, e, c- x- D
;; Page through the selection set. When a property, G5 z, W* L* M7 d S! ~2 [
;; does not match, stop checking for that property.# O6 d$ r7 \* ^, O( |
;; When the selection set is not homogenous, stop checking.
) f9 j# I# J' M ;; If all properties vary and the set is not a type 1# F+ p5 D8 |7 _' C* [' v [
;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.
, J$ v4 A7 o+ k3 b6 } }7 a: f
8 ^* L. p) e7 s2 O6 x% N ;Lets set the eflag so we know if the selection set includes any 1 V+ w/ c8 Q Z9 L& J- ^
;combination of polylines, lwpolylines, text, mtext or attdefs.1 X! a7 w. H2 j& N
. Z* f5 Q9 j7 o$ R2 p! ^
;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/970 c* A/ Y6 p5 \
(setq eflag 0)
& E/ C0 z# u' r4 ^' V1 R (if (setq poly_ss
8 O# h+ X; u) \: } (ssget "P" (list '(0 . "*POLYLINE")0 L6 a% |( H% v
'(-4 . "<AND") 1 Z. a$ G$ H6 N6 G% ~) O3 a% V3 Z
'(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
6 N; F2 L. f+ C9 K- j% Y! y( d4 b '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")1 Q* Q$ l$ r0 g; H. e0 V
'(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>"). j* O' L2 o# D. R0 _+ o, `
'(-4 . "AND>") ( B1 N3 s) m1 {
);list5 q! w+ P7 [9 L+ P0 F, u% r
);ssget get 2d polylines (legacy and lw)9 U9 c, ~* l0 D, a$ |# m
);setq
" H( a6 e/ U5 L) j (progn8 T! t2 S4 R# @$ r0 W9 @+ k
(setq eflag (+ eflag 1))& l) @; B9 I- ?) l7 C o p
$ i$ H8 V$ ]3 {3 ?, R3 x1 S (setq tmp (entget (ssname poly_ss 0)));setq
$ d2 r( }! |. |) o. T8 [9 _8 _
(if (equal "POLYLINE" (cdr (assoc 0 tmp)))
) L% ]4 f2 J' J1 h% ~9 \ (setq elevation (last (cdr (assoc 10 tmp))))
3 Y; T' @+ ~1 m2 a' m$ j( ^ (setq elevation (cdr (assoc 38 tmp)))
$ X4 b# d1 f/ g4 G6 G );if3 V7 I# D* h9 N
(if (not elevation)
% y5 d" s L) E! K: L (setq elevation 0.0);setq
: K3 t% D ^$ W5 {* H% T, g) U& ?! @ );if# W( z& X& I) N$ E
7 s9 }% w3 ^. _, t+ q' U: z
(setq tmp (ssget "P" ) c5 P) y+ E$ g P
(list & J6 }6 W. s% W/ |
'(-4 . "<OR")
5 D4 s1 _! H M7 ^ '(-4 . "<AND")
6 y) k' M2 @. y9 F- s. u4 F '(0 . "LWPOLYLINE")
& a3 x9 L/ }8 Y- L8 I2 J (cons 38 elevation)8 J4 z7 F7 ~/ |: {
'(-4 . "AND>")8 h" Q, R2 R9 M" Y) a8 a+ i! n! b6 B* ~
'(-4 . "<AND"), H7 m. D# Q) F' p
'(0 . "POLYLINE")
: j, ~& y9 i* Z2 G '(-4 . "*,*,=")
3 E+ D* \1 ]) d5 @4 j3 M2 n/ P (cons 10 (list 1.0 1.0 elevation))8 f X Q- O# E, R
'(-4 . "AND>") 5 ^6 o4 d. i5 P# ?' O4 k
'(-4 . "OR>")
5 U+ r1 u7 `8 u );list& m! Z- d. { m! F* h/ m0 B
);ssget
0 }5 Y9 b: D/ G- P* d' H );setq- j. `" H+ o/ y; `7 L
" K! o6 ?4 ?* y# A3 _) P$ @
(if (and tmp / S' D5 Y0 \! @0 B# }% p/ {! o: s( M
(equal (sslength tmp) (sslength poly_ss))
1 Q6 f( t" L3 [0 d );and* p0 k8 \6 O' M
(setq elevation (ai_rtos elevation));setq
& a( S% E( Y/ P* @# y (setq elevation "")! e w) R5 P2 a+ U; T4 T$ T
);if; c! W* E4 ^9 K
4 f" {% f, r2 L; }6 y. X, z) X (setq width (pl_width_getter poly_ss));setq/ j/ ?* f! _ c: c9 t; P2 v
6 E+ A* h4 B, A2 P9 b0 y% ] );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
/ O/ f! @0 ~: y" n' j );if/ O2 k) a: b, i3 q2 ^0 e
(command "_.select" selset "")/ q) C/ G8 A* U- I
6 N) U+ v& H3 J (if (setq txt_ss
, h" c( B8 g: a' w9 Y# i8 o (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") 0 e9 [* g/ |( u4 B: [% T/ V
(0 . "ATTDEF") (-4 . "OR>"))) ]# w* q) P/ n7 m, [( _
)
8 x Q' N8 L; O. U1 y- Q2 d* N );setq
0 z* D: Q2 M+ O$ W- b; R9 T (progn
0 O' E; k. _+ w7 I$ e. l (setq eflag (+ eflag 2))8 v8 a* \" w! i! x. s
(setq height (cdr (assoc 40 (entget (ssname txt_ss 0)))) F3 `2 v3 Q+ O) R
tmp (ssget "P" (list (cons 40 height))) ; W; V L2 K3 ?$ |8 z8 y$ A8 ^
);setq * E2 T: H9 X. l5 R* L* ?
(if (and tmp
# ~9 Y5 [# e* B (equal (sslength txt_ss) (sslength tmp)) ) d( j' v5 D4 s- {
);and3 U, x1 a" T2 R$ j1 v$ g7 J; n
(setq height (ai_rtos height));setq ;@rk need to translate from float : Z }9 J* q6 A' }$ ]
;to string and back again easily* {. n2 A3 p' O" B0 l. M& W0 ~' X
(setq height "");setq else the height varies
! E8 z/ B1 Y2 U# T& V% ?7 v, t2 E );if% P4 I' m2 ^ t/ m/ {+ d
(command "_.select" txt_ss "") ( E) }9 A7 w0 P3 Z. t- {
(setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))4 j* u8 r1 _; t) N5 {
tmp (ssget "P" (list (cons 7 style))) K& S: n1 P M# }! L9 Z
);setq
/ n/ U0 `; @% S: C( j( p (if (not (and tmp
% `/ A" p: Y# _4 ~ (equal (sslength txt_ss) (sslength tmp))
) M, T: w. w% `. |8 d );and3 H( B0 _( o" C; a+ a4 N1 g
);not9 |8 ~0 ~2 @4 z' u' d
(setq style "");setq then the style varies
2 M# E: b! I: U9 n );if/ K9 T% M1 z) W
);progn the text type objects are in the selection set: e6 Z( d: l2 a: }6 D9 L( A
);if
# B0 O w7 p1 m% }, K! Y (command "_.select" selset "")
$ f! r, }7 t0 a3 y- [6 i8 V1 S
: ]& y0 z3 @- F (while (and (> sslen ctr)
" S, ^) P) w' R8 I$ j# C go) \& C/ |# x7 }( z+ G6 m# o
);and
, \: l0 Y7 y& c" ?, W+ E$ U* ^ (setq elist (entget (setq en (ssname selset ctr))))* u$ M/ I1 V7 Q) E4 l0 I+ ~
/ `2 S2 y' L3 Z. J% l1 R! o (if chk-col (match-col))/ j1 S. w+ k: _& b8 w2 O
(if chk-lt (match-lt))
4 J; U5 G: v M8 b8 Y (if chk-lay (match-lay))7 L4 G! J6 v2 F: }
(if chk-lts (match-lts))" s9 Q3 \9 \ v3 Z( U' j6 z
(if chk-th (match-th))
3 ?: n* J6 x0 [9 g+ p, v2 {1 _2 |2 W
" C+ p3 z1 Y; X8 `: O$ C# D; ~5 T ;(if chk-etype (match-etype))
+ ^- |& P/ j/ a" d1 A6 _$ W2 M0 x# w3 ` `% \$ `5 l4 T3 s
(setq ctr (1+ ctr))
% I- ^' j6 |7 g8 O3 ] (if (and (not chk-col)
+ z1 v. y5 o" J (not chk-lt)" j! ]& {0 w, B) W7 B
(not chk-lay)
& Q& [ @3 o& y* I& G ^ (not chk-lts)
; F( }" i; i+ [* k (not chk-th)3 y6 |' r5 }' W4 M8 J
;(not chk-etype)
; A3 O8 N& C$ J0 Z( C9 L. l );and
: b$ E4 O* V+ d) z: m6 j (setq go nil)
& |1 w* N$ @: P' J );if
; [. g) A& g3 u* l* G( | );while
5 j v" |, J& |: ^$ j, u1 a2 m& w9 p( o- e
(list color ltype layer thickness ltscale$ t0 R* [% E7 M/ H
width elevation height eflag
a7 J; ]1 w9 [9 D7 q( M style poly_ss txt_ss7 C4 m: V2 U3 T+ |$ K' l' z
)
8 H; V9 T5 V1 `) Q+ Q2 Y! U );defun getprops
4 d, x) ~" j& `* }; I, ?% ?) n$ R
; This is a speedy little routine to tell whether the polylines in
( b9 n+ ?/ f; b+ ~" b" ` ;the selection set argument are of varying width or a constant value.
+ Z9 x0 r8 W+ p ;Looping through the vertex's has to be done for old polylines when
. g$ W& b8 n! S& ^ ;the polyline header has width values of 0.0. Basically, in this case,
$ O6 W' S* H+ Q" x* v# W+ R ;information in the polyline entity header is abmiguous. Width values 6 ^: ?: N/ _) V9 a0 G. a: C
;of 0.0 in the header entity could mean the polyline has a constant
8 Y0 _0 X) D* o% f! Z ]+ B ;width of 0.0 or it could mean that the polyline has vertex's of varying
' v- t( w: R1 \* S; }* a ;width.
+ w; }' s. A# w* L1 f ;
3 ~+ A2 _ y# D G, t. z5 ?& V ; It's all in wrist. Err a.., I mean it's all in the 'if'" }9 k6 t9 A, z( Y& |
;;/ Y' q2 I3 c& {' z& x! ?' k
(defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)# x) G% Z: e4 }( L5 L/ n& u
8 L. D' s1 W1 p/ p) s9 f (if ss ' l( J4 A: {9 R# ~0 w% ?7 U* b- r
(command "_.select" ss "")/ f! p! v5 z$ J& X, Q
);if' c) i) d$ ~7 Y! N
(setq width ""
# O! }% Z T4 @9 {0 w% W2 f3 O2 J flag nil; ?& f0 ^' S- H! O H0 o: b- X
flag2 nil1 h/ C; C' S+ S* N
);setq
- ?2 d% a" i! { (if (not
% O8 C% E2 T, A% F( X# l8 [6 n (and ss* u$ Z0 H6 X9 J1 k) ]2 ^
(setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
; {. Y1 q, j4 d6 V" I, ` (setq na (ssname ss2 0)
/ [8 R/ j `2 G1 Q0 L width (cdr (assoc 43 (entget na)))
& i2 p5 |, t7 W( w4 {5 F+ w );setq
$ Z& k2 j8 m- r- X! [+ [ (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
* }3 f/ u+ S/ t& h5 p (cons 43 width)
2 y( f. ?& U. q" F; s( Y );list# m+ d0 \3 l; U; ~. S
);ssget
8 G+ A8 `$ |- F );setq1 s5 U x0 P$ x: Q
(setq flag T)
9 b1 Y p/ _* v (equal (sslength ss2) (sslength ss3))4 c* `. v2 S4 c Q7 r
);and" B# K+ k$ z, x% z7 j7 v) o
);not
0 N0 N, H5 Z1 f0 N* d9 V (progn
+ _, [7 {; b2 G" ^ (if flag
% q2 k e, r9 q9 n: }6 P! f (setq width nil)
3 v" x& N/ X3 Z! g& e* m );if
9 T& H$ R* u& y5 J1 ~7 u );progn
# q. s, V6 J: M9 q );if ) n% h8 e8 W8 U
9 ?: z ~$ C2 C
(if (not . r4 I0 B8 s# t" Y3 a/ M: e' {- _
(and ) H& s, O2 t' t" _2 Z
ss" r3 s8 W. W$ U, g/ S5 o( }2 S
(progn (command "_.select" ss "")
: ]4 ?6 W- p( a E) K- u" E (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
2 u# K: y# a6 H% x )
: a: H2 c# ?# M (setq na (ssname ss2 0)
1 C3 b) v' M8 Y8 j e1 (entget na)7 K' L( q, H6 N+ U1 Z
width_a (cdr (assoc 40 e1)); r7 G! C# i4 b9 \& p
width_b (cdr (assoc 41 e1))
6 g; x2 _. q6 Q );setq) x& R* J' {) ~# s3 ?( t
(equal width_a width_b)
) I! ~% B' c4 ~# e8 w+ \! s0 U0 | (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
3 w0 | L1 t }5 g) n$ o$ C (cons 40 width_a)
0 @2 C0 O6 ~7 R' \6 K: P- e1 @8 r (cons 41 width_b)
`" R/ R0 L1 H2 |; R0 P' |. } );list
$ G! v0 k2 \7 e+ _8 m0 F9 _ );ssget4 }5 R# H h( s# p( w
);setq3 s: D' F8 _8 i) O5 q& |
(setq flag2 T)
& g0 z3 Y# t8 ~ (equal (sslength ss2) (sslength ss3))/ e- Z3 p+ p$ _& a+ M# l/ }% M
);and
6 F: p) V5 ~/ V );not
" V# R4 T. x5 _! M9 j6 | (progn& L# g( T& ?, K' ]
(if flag2
! p0 H2 q+ d9 g0 b7 P3 N$ s. s; z6 w4 q (setq width nil);setq
; b4 M: s; D5 F, g+ d1 o7 q) Q );if
* q9 r/ l, d# G+ @, S );progn then
3 g5 I! a8 Y$ [+ F( N, [$ A' k (progn
4 l! y+ ]5 u4 \+ ^4 d (if (or (equal width "")
3 ]+ ] \& P: `/ f' p$ F (not flag)
- b7 j6 F: ^+ a2 C n );or1 G0 @0 Y' e4 h
(setq width width_a)
/ q4 a0 T& p' g8 Z- c (progn
/ B" ~2 R9 ^: B; z& M! Z3 ?6 J2 |+ W (if (not (equal width width_a)). f+ r1 y+ d6 p
(setq width "")2 Q/ y8 h9 }$ ~* X2 j! k
);if
, _2 N8 u7 W7 h5 @ );progn: R7 p5 }/ p+ L( h) j2 Z2 W1 o
);if
: R8 y& b' ?! v% w4 p) M$ ` );progn5 n8 M0 I0 |: {% a7 d" d B' p
);if
5 X% z: q% H/ u& |% i7 Z) L+ h
, U6 A* Q& N1 V9 \! |: U. e- C# l3 ?, t: H/ K7 V: ^
;now for the special handling for old polylines3 a: q9 K2 p8 w% Y* [4 T
(if (and width
" P- `) |4 o& e1 x9 Z+ E (equal width 0.0)
3 O" s3 e% i: l: y' t( C; v flag2
. W' f9 ?- \7 A );and 7 n! `+ Q! R3 V9 M I
(progn
, }& r: K' T' \. K2 [
& s/ k% N( Q P1 D% V; K, g (setq n 0);setq; i/ L5 @! R$ n1 l: X1 C9 @
(while (and (equal width 0.0)- j' H3 M3 g6 K( K3 Z- [4 `
(< n (sslength ss3)) i+ }$ U7 ]% x3 e$ q# H, b
);and
# R2 R9 H( b+ `) G! p (setq flag nil( O" u! c8 V, Q+ A) a( |
na (ssname ss3 n)
1 I U9 M4 ]9 t4 f( q9 V. v$ e na (entnext na)* U6 f- d) m& C: o
e1 (entget na)
0 ]+ {: z, X' G );setq2 L7 }! l6 v2 Q0 K* j
(while (not flag)
2 t/ }, \. @# s4 K) ]8 B5 z+ T (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
- v, l p! a% f; Y5 O! a9 d8 o$ a$ ] (not (equal (cdr (assoc 40 e1)) 0.0)) I& ]2 J0 @& a- ]5 `8 d
(not (equal (cdr (assoc 41 e1)) 0.0))
% ^. x9 v2 `3 V3 ~& v, ] );or
. \) V! j1 J0 E' _" i4 ? (progn; g) [) Z" }# ~' v' [
(setq flag T);
( r" R* w1 f, P3 }( S (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))% R$ ~( L& u% v- R
(setq width nil)
0 v0 @; N9 D9 ? M$ C. P );if J3 k7 D: p: m$ z6 S
);progn then jump out of the loop
4 _; M6 r0 _$ {, p (setq na (entnext na)) v) v* K* l9 F
e1 (entget na)
. c, @! G# j {. ~; Y2 \# j );setq
! w, { N1 L& A7 J X1 i );if & Y, z5 j4 N( G9 V+ P2 d' ~ r
);while
# P1 X- B* S1 H | (setq n (+ n 1));setq 3 F# A4 f% E' E9 O# U
);while
# e. C/ v* [- c3 q T
; I# R8 m& H# K) \9 d8 {6 a );progn then it's a legacy * @0 l3 _6 F/ ^2 v( H
);if ;legacy polylines that may have varying widths & K# f$ j7 ?5 ^( G0 M
7 ?* y+ |" ^9 }' A (if (not width), F# i$ b: @! T% G1 h) X
(setq width "");setq
% n( Y6 c- b9 i* y: o% r% X" ` );if
6 J4 Y F3 H- p6 C0 e V (if (not (equal 'STR (type width)))7 ?+ c' D/ O% P/ _
(setq width (ai_rtos width));setq
( {9 T) U5 w0 C4 l );if T8 q/ P& C% p& e/ B) S" U
0 Z% k2 V5 e8 x0 j, G2 N width
" R; K$ x3 w3 y* C7 z3 u: n );defun pl_width_getter
! B: U1 }, g, o/ C! q. H: P+ _( {5 _0 ~" P" o
7 t7 U, h+ s7 G, H
(defun match-col (/ ncolor)" E! V- Y w, I+ n
(setq ncolor (cdr (assoc 62 elist))); l) \& i( o: q6 H( N
(if (not ncolor) (setq ncolor 256))! | P# O% p: l( a0 s! P/ V
(if (/= color ncolor)
5 A, P/ {7 _( H0 I; d# j! M (progn
$ |% d/ n/ ~8 W3 i2 a (setq chk-col nil)
1 c' M/ Y: L6 V/ A% L9 t (setq color nil)
( e2 y8 x' Z6 y0 W )3 j) _- ]* z; F6 K) i' y3 ~
)% ~! W2 [3 \" V D# @& g$ p! w
)
- {+ @, l- ~% C Q
0 S9 E. U+ e8 t, o (defun match-lt (/ nltype), p H$ i4 G) T2 j0 l
(setq nltype (cdr (assoc 6 elist)))0 |7 W, J2 a+ H- m) r2 A' T
(if (not nltype) (setq nltype "BYLAYER"))7 S5 e+ x0 M1 ^- X. P
(if (/= ltype nltype)+ y; g6 t7 S x+ Q
(progn
4 L9 S0 C: ]$ z1 y (setq chk-lt nil)
% x0 t1 L6 n0 o9 c/ M (setq ltype ;|MSG0|;"Varies")
, A$ h1 @6 V& ^0 s )
: e" T h) L% @ o7 G( v) _2 F )6 z% Q0 I/ x& e% X q P
)
! R# S) S" T, W7 h% q% B, m# U
4 Y* i1 @$ [- K! n) ]6 n (defun match-lay (/ nlayer)$ Z z- Y' s# v) {
(setq nlayer (cdr (assoc 8 elist)))
: y$ c% o6 a4 n ~6 p; Q0 c: I6 R (if (/= layer nlayer)( r+ c$ q7 d- l5 s1 b! t
(progn/ [0 ^: c# r# n1 L8 m6 t: A a
(setq chk-lay nil)
" m, Q) p( ?$ A2 j2 V (setq layer ;|MSG0|;"Varies")
1 M6 M1 P( p/ P& `* ]& |6 i+ i )& {6 N- q& V8 K# l
)0 M: C5 y6 h+ O+ o1 I3 r. d4 A" ~3 Q
)
+ |1 c/ D& J& ] J- r
6 d4 Y) a! ]- L# a! N: M (defun match-th (/ nthickness): q: _0 H |( d, M: \* b+ t! @2 t
(setq nthickness (cdr (assoc 39 elist)))' S1 f2 `; g4 E- X8 ^$ H( S
(if (not nthickness) (setq nthickness 0))
* m. L9 Y+ l/ m, k& O (if (/= thickness nthickness)- G& b" B4 w& ]' W
(progn
9 y/ }6 ^& R7 m! ?' _2 h (setq chk-th nil)
9 W. {! S" z6 s+ |8 M0 s' S: y (setq thickness ;|MSG0|;"Varies")
% t- v* I8 ^- @ ^7 w5 P )
6 \. {+ q* q; W* R8 P* T ): o$ E0 T, E3 i2 i' C7 J$ U `
)
- ?; |" J- ^0 U s9 c& f& U7 x
+ h9 Q/ O8 c: [ o, d (defun match-lts (/ nltscale)9 Z3 E0 c: f& }; x! d6 W$ F
(setq nltscale (cdr (assoc 48 elist)))
8 H8 N; B9 _1 X7 D: v: S2 n) P* h+ A (if (not nltscale) (setq nltscale 1))
" E% t* w! T" o+ T- i, G T" } (if (/= ltscale nltscale)
* l8 _# J) D; ~8 y2 B (progn- q @+ ?( ]# v8 {
(setq chk-lts nil)' p* o* {& g9 {: n* c5 H, F9 V
(setq ltscale ;|MSG0|;"Varies")
* f6 {/ f' f9 M& O( Q% V' K. N ): _0 M3 ^' a' d8 {* O3 d
)! t- n0 F# p$ [ Z
)0 X7 _# g% x( Z8 W+ }% [
! ?3 `/ R& _9 o* U. m) d4 d
;;( |/ C: j6 m3 L5 K
;; If an item is a member of the list, then return its index number, else9 u4 Z& L8 @/ ]9 F) a, Z: @
;; return nil.7 u9 j" O. e& d% k# I# F. p
;;
- P! k& I& e) Z+ u5 A0 v6 \3 K, t (defun getindex (item itemlist / m n), N8 J# w+ R5 e- y! p% R
(setq n (length itemlist))
+ r6 Q# `( c$ h9 }' f* n (if (> (setq m (length (member item itemlist))) 0)
3 m; D3 n& g( D2 Q8 J+ q8 W (- n m)
/ ?0 L+ \( U0 R |" @! n nil
$ u, C4 `. V2 n0 V7 |: N )
$ c7 @ G; Z3 b N+ [1 l$ r! a )# i/ Q3 A1 J" h& B/ i3 a% |
;;) t% |0 X& \* V/ O( g2 L6 j9 e
;; This function is called if the linetype is set "BYLAYER". It finds the
+ Q" F* s% C& A' y+ ^7 n ;; ltype of the layer so it can be displayed beside the linetype button.0 [7 ]& X1 c( h/ s3 F' V
;;
N2 f: V) b* N1 f5 P4 U$ w( R1 A8 [ (defun bylayer_lt (/ layname layinfo ltype)3 V) i. [1 z G8 r8 ~3 K7 ]) n
(if lay-idx+ w4 X5 ^9 j/ Q" P
(progn7 p" L8 x. }9 I/ W; p4 [
(setq layname (nth lay-idx laynmlst))+ m; M: n. y7 Z1 r" E1 Q$ H: w6 ?
(setq layinfo (tblsearch "layer" layname))$ N7 c |2 J" d7 K
(setq ltype (cdr (assoc 6 layinfo)))
& }1 H, g2 U/ E4 c! k/ j (strcat "BYLAYER" " (" ltype ")")
, X1 |9 z5 `6 u2 S# c' X# D7 @ )
( M2 C) e& @$ X# v "BYLAYER". w+ L" D3 c+ R9 D
)
% @4 g8 P" h E6 \ )( z# y# n. O6 F3 q& D4 a
;;
+ @ Z! Q9 y( T! E$ m5 \6 L ;; This function is called if the color is set "BYLAYER". It finds the
9 u+ y% Y; ~! O. _* M ;; color of the layer so it can be displayed beside the color button.
; V% [4 O" s) V+ W3 ~" c* i# N ;;) y1 s/ R( c R& b/ y7 p
(defun bylayer_col (/ layname layinfo color)
% m; C2 R" s" _! m) ` W) a (if lay-idx) S+ m2 @: Q" _1 `2 z" U
(progn
2 z4 r0 A/ p4 f3 {! r (setq layname (nth lay-idx laynmlst))
1 L3 V: y6 | Z- x& P. [ (setq layinfo (tblsearch "layer" layname))/ r& r& G7 B8 i+ h' b
(setq color (abs (cdr (assoc 62 layinfo)))), E- z0 G) W; e4 }
(setq cn color)' y0 M0 h8 b) V. ]" \( j. c+ L" N
(strcat "BYLAYER" " (" (colorname color) ")")) D! l( o6 n, X' w
)
{, \, Y! ~& P2 W# h$ H (progn
2 J; y7 K' G! R# s) b9 _$ M (setq layname elayer)
% r5 v7 C' L! q! [! h/ k: Q (if (and (/= elayer "")' x1 g5 |( T3 L( l4 \
(/= elayer "Varies")# {/ L) }) [1 C" A' @
);and% o! r+ s6 Q% g. `- \' |
(progn' t8 G$ G2 D8 U; A0 K9 E( A0 R/ R
(setq layinfo (tblsearch "layer" elayer))
$ x* D) m, o- e (setq color (abs (cdr (assoc 62 layinfo))))
6 M/ i# n; B( {: }0 a# a8 I' v' L; X (setq cn color)- Q, y* D# u1 n( o* O) q; ^
(strcat "BYLAYER" " (" (colorname color) ")") L. n: V# y2 Z/ G% P
)
/ K7 Q' V# L4 W8 j: f (progn
5 g2 u' [# M+ `$ g8 o (setq cn 0)! V8 n* P3 n1 _1 l! T% i# r6 U& n+ [
"BYLAYER"
& x% f) @! F" K5 E$ m& _$ b4 [* c )- K: {" E4 _' j5 I
);if! C5 }/ d, A; p s$ v
);progn/ v8 E. N2 i6 [0 y$ ?2 q
);if* Y# p1 U8 @; Q% v
)
1 T# M6 Q- N1 v& V4 c6 E5 s ;;
! h5 b5 k9 m5 o9 f5 S. @0 Q ;; If there is no error message, then close the dialogue
4 _: u2 ~' K3 ^5 \ y ;;# C( V* x4 v8 I/ d/ z3 I, m
;; If there is an error message, then set focus to the tile
( I; X0 ~2 U+ O; O ;; that's associated with the error message.& V, y" S9 I- R# Z9 J
;;8 Q$ k. d6 H- f0 \
(defun test-ok ( / errtile)" u* g9 ?4 `6 O
(setq errtile (get_tile "error"))
$ x/ ?* s/ a9 }* s( D; b (cond
+ ^0 g% S, _: D ( (= errtile "")' N# \( g0 ]& n* L" E( ?! i
(done_dialog 1))
) W+ u0 o* [+ i ( (= errtile "Invalid thickness.")( ]2 h' E# i x8 S; p6 a, ]
(mode_tile "eb_thickness" 2))! Z% \% r/ A/ D
)
) e& t; _0 `3 B- z )
& A5 P% u* L7 s% h5 i3 A9 b% ~4 F ;;
- [' L; h# G. \: ^5 s9 C: t# S6 E ;; OK in main dialogue.
9 e, a4 u8 ^% y9 M, f7 B9 ` u ;;
+ h& ^3 I. }/ b7 v6 |; ~9 P (defun test-main-ok ( / flag)% B2 X7 o- T0 H& Q: z
(setq flag T)
! _, f& U& E8 \% p6 u (if (not (or (distof (get_tile "eb_thickness"))1 m# P. X% w! p' I+ f
(= "" (get_tile "eb_thickness"))
7 Z* f3 P2 s, T6 h, j* S8 H A );or
1 L6 p% `3 W# z3 X; p r );not
' s$ _. ~# L9 k7 y2 g" O% Q (progn2 G) ?/ s4 F: t% I
(set_tile "error" "Invalid thickness."), [& A+ G; `9 n0 [/ t/ ^/ n
(mode_tile "eb_thickness" 2)
- j7 u- T* p. X8 L) h9 p (setq flag nil);setq
: Z! l3 l) K. |7 {0 `$ x0 ^ );progn3 W- [* @) ^1 P- z0 r8 f
);if
% [% f: b3 a; { (if (and flag/ _1 u* s& _' z
(not (or (< 0 (distof (get_tile "eb_ltscale")))
, I" |; v* Y1 V9 u/ c# l" k (= "" (get_tile "eb_ltscale"))
) y) C3 }$ s5 U1 C& I* n );or
: U' l9 M6 ?! L3 v# e: _ );not: r( d1 E. i# j( ~8 e* Z
);and
1 O0 Y3 f$ e3 x (progn% i" Y8 h; d- l, Q
(set_tile "error" "Invalid ltscale.")
& I' l+ n& U0 x/ H+ m (mode_tile "eb_ltscale" 2)
' }$ m4 p. M# V' O: [ (setq flag nil); 2 `" O# I/ f' e& o+ F1 L
);progn then4 n; t+ m# P, D
);if4 |! L' p2 J4 w& ^, v0 R* w; u: G
(if (and flag% @( V. x7 f9 L; ?0 s
; Don't test the tile's value unless it's enabled.+ n: i% P8 ~' w3 D: p
; We're not set up for the display-only value5 m5 a0 r7 w- o- }4 T& d0 U$ W) S- e
; of "" here in the error handler.( L/ I& L q2 R# {
(= 2 (logand 2 eflag))
2 a0 R* n5 j# `& S (not (or (< 0 (distof (get_tile "text_hgt")))
' Q' d- h, C; ^+ F) y: f (= "" (get_tile "text_hgt"))
. G$ v' w. R! Y );or
+ e& ]# r! k) U2 I# Q );not( p2 H; T( g" C
);and
1 @9 B# t9 E, `/ R (progn
& r5 v K; k1 h0 M7 `; {/ d (set_tile "error" "Invalid height.")3 I, S% K( M+ W' L& q' C* y
(mode_tile "text_hgt" 2)
; ~5 g! L7 g# G% ?' D4 _* w (setq flag nil);9 j, Z8 D8 c4 q$ p1 B: ]4 H, n
);progn then
/ I6 g9 e9 ?7 f) N, B; r! C );if7 Y }8 p- p9 _" \
(if (and flag
) X/ q* J4 H4 E/ ] (= 1 (logand 1 eflag))) F/ E3 H, b( ~1 ~$ w8 R$ K7 M
(not (or (<= 0 (distof (get_tile "poly_wid")))0 x. f' n- `$ J; f0 u7 G
(= "" (get_tile "poly_wid"))
0 |2 ]' t# l7 i% a );or) } k/ Z2 y) j3 |
);not2 w- Y4 N8 o, n- N/ P5 s+ H1 L( _
);and
4 O# v* A1 X7 T* Z% r (progn
1 O& U" d# |) h9 m3 D (set_tile "error" "Invalid width.")
+ N4 d% R7 R. J% D$ b/ K (mode_tile "poly_wid" 2)
2 X5 W9 N7 c) @, K: s# n/ N" [ (setq flag nil)4 }& |6 v' I# i( I1 y
);progn then3 P+ z3 m4 O) B2 C7 ^8 R: a
);if ( [7 ]" a: s' l9 `2 j* S
(if (and flag
+ s# I9 D% U- q% q (= 1 (logand 1 eflag))
g# `; Q. Z! x* }8 Q (not (or (distof (get_tile "poly_elev"))
1 ^4 N- q4 s" M$ e& J (= "" (get_tile "poly_elev"))
- A9 W; T) N7 Y );or
7 H+ |! b7 p1 I) q- T$ u# ~ );not( f: R5 N2 r9 l. F" o
);and
- t5 b# y2 b5 l0 A6 s, ^( n (progn& Z$ R- i8 u3 T' n. p: f, L
(set_tile "error" "Invalid elevation.")) O2 T1 w4 p2 V" j+ a7 S
(mode_tile "poly_elev" 2)# h3 O8 |- L- A, \% N. a# n4 E
(setq flag nil) W; p& O: _6 y& ?
);progn then! i1 h, C. K- }
);if
! M" u! T0 ~, T (if flag 0 U$ N4 k+ f) W' g
(done_dialog 1)* e7 M" v; L5 a9 S/ G4 ]% g: l
);if
; D6 H' ^* p3 f2 t' V, ]7 n7 i );defun test-main-ok
! l2 s5 o) q+ O
/ {7 |. L7 T8 \! b l: _ ;;8 [( \# V% Q( p5 q2 s+ m# f
;; A color function used by getlayer.
1 Y# ? g. v" [# m; S: q3 E4 { ;;
. S& Q" p. _5 h \1 S4 B' ^, A8 Y (defun colorname (colnum)) r9 Q' s; C( W7 R$ `3 z
(setq cn (abs colnum))
9 y r' N8 A4 o- _+ g9 [, w- ~ (cond ((= cn 1) "red")' f! k9 d# K1 u0 n) \: D* j; T7 `
((= cn 2) "yellow")
9 Z- h- S0 _; u' o ((= cn 3) "green")8 l# I1 X; p; M6 V
((= cn 4) "cyan")
6 s" g9 N* [1 e$ ?2 F7 E ((= cn 5) "blue")
1 V/ r1 C: L7 k- c. a2 k U ((= cn 6) "magenta")
1 \. o/ l) R: T' c& a ((= cn 7) "white")
( q7 ^+ n- s# { B9 V: ] (T (itoa cn))3 c6 J5 A, Z/ f3 |/ Y( _" E
), C4 U+ Z8 U b3 ^5 v( @8 g
);defun) h: h1 |, T6 R# s* O% u8 w
" \1 a% P+ Q+ G) _;;; Construct layer and ltype lists and initialize all
: Q c/ d g' d/ c( I) c;;; program variables:- l- ~$ b L; G
8 q: |$ P. a+ _3 W4 Z' Q
; (makelaylists) ; layer list - laynmlst
/ R! D) b, `9 C" K, ~( Z5 Y, q7 A, F! V) h1 v- ^. l
8 w! }) |) @# c (makeltlists) ; linetype lists - ltnmlst, mdashlist
% A. `5 D0 s! ]0 ^9 z" C, F' D+ M' x8 f$ W6 m) H) I
;; Find the property values of the selection set., a! f) k# R0 ?1 l
;; (getprops ss) returns a list of properties from% P# o7 P h# y4 K% \1 A, f
;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).- ]- _8 A+ d0 j7 B6 E. D
( S! L* r: p& O" \) H
(setq proplist (getprops ss));@rk interesting things happen here; P2 y: U- l! g3 E, J9 A
. ~8 ] Z) N3 G! W. N& v, C (setq7 e& O5 J5 v; }# G0 J
ecolor (car proplist)( F6 ?# n" ~5 ^1 w+ P5 z
eltype (nth 1 proplist)6 h1 y6 ?! W5 t* ^ H1 c
elayer (nth 2 proplist)+ H+ w. P5 B, p0 M1 p0 O4 M
ethickness (nth 3 proplist). {6 b1 ~) P p$ G) h' R( [, C
eltscale (nth 4 proplist)
- {. _( g+ Z3 @2 ]' d" [* h ewidth (nth 5 proplist)
) r. O/ ~# Y7 e% g# ]6 z7 x eelevation (nth 6 proplist): b# i5 o/ T# i
eheight (nth 7 proplist)8 |" Y* V+ x, g$ _. V# d8 V
;etype (nth 8 proplist);commented out and replaced with the line below. RK.- k1 I, Z" f, p* D4 m( R' ]
eflag (nth 8 proplist)2 ?# F4 @/ n! q z1 H+ L3 `
estyle (nth 9 proplist)& ^/ n5 l$ {3 v# a, y$ ^
poly_ss (nth 10 proplist)
" z+ ~, [1 t% i, }& e/ a+ @ v9 r txt_ss (nth 11 proplist)) L1 J$ Q6 _4 i, V- [0 H
);setq8 `& V& N- p; A# Q4 i
6 l# I: F0 Y3 V3 ?+ m4 U7 X8 E
;; Find index of linetype, and layer lists; {: o. q6 E+ {! r! P' Z) x
(cond1 d- d7 x8 s$ I" v
((= eltype "Varies") (setq lt-idx nil))$ W' D5 O" w- U% P" ]2 {
((= eltype "BYLAYER")" u% L3 O3 @( R1 l
(setq lt-idx (getindex "BYLAYER" ltnmlst)))! B+ ^4 U2 b3 H6 {. d9 K- l, o
((= eltype "BYBLOCK")
% o( J0 D0 H5 g* ?$ T3 x* S (setq lt-idx (getindex "BYBLOCK" ltnmlst))); Q/ e; h# y" j- f
(T (setq lt-idx (getindex eltype ltnmlst)))! k" r9 L" c% v' ?. F! H0 Z
)
4 P+ z& W0 B! [6 p, K" r (if (= elayer "Varies")/ q; z: ~% w, M2 ^. L- P# d1 u
(setq lay-idx nil)2 E- p( i% G9 U+ k; q7 |% |; M, C
(setq lay-idx (getindex elayer laynmlst))5 S2 U {1 @ n' l9 m t
);if
- v3 b* | W* ?6 W1 v7 G6 ? (if (= ethickness ""); e' Y! `8 O' T) L2 x; V' }# x& V
(setq ethickness nil)- c n' n6 ]) u X8 c. c
);if4 L( n/ ?: }+ \" T- x
(if (= eltscale "")
* H7 F; _; E1 B" ?+ {# q+ m6 E (setq eltscale nil); ]$ Y* H& B8 N' U" i8 ?
);if, |6 g# \: e0 ^ t7 T) L* U
) C4 {' J, m/ Z+ f- ?" f
);defun ddchprop2_init ; end (ddchprop2_init)' V8 q) g) \, D! t
* _9 ]. N7 e; r. o. e% M# b& m2 A
;;; (ddchprop2_select)- v; ~! _! j, x) b% J
;;;- M {! m7 X7 d' o- q
;;; Aquires selection set for DDCHPROP2, in one of three ways:0 {; m& ~" I7 X3 }9 v
;;;0 Y' O6 D; E$ v+ T0 S8 @
;;; 1 - Autoselected.5 y3 D C5 q1 E% h+ s2 G5 O# ~& `
;;; 2 - Prompted for.
& Z% W+ l& j3 ^; w6 e T: G* q;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
5 _1 e5 c; y& k, D7 A5 |;;;' c% H! S& E4 m+ k( e8 ]
;;; The (ddchprop2_select) function also sets the value of the1 R: s' ^5 p) Z9 {, G" _. _
;;; global symbol AI_SELTYPE to one of the above three values to
7 \' B9 X3 i/ u;;; indicate the method thru which the entity was aquired./ p/ j# X' N# X
( F7 b: u' R& T7 X' x' ]0 I3 ]4 p4 a/ n7 E
(defun ddchprop2_select ( / )
- S! E$ N8 H+ c. L: Z8 d5 @
0 X5 z7 v' [2 s7 a# {( B
0 B) ?1 ]* @; f. s$ x7 d9 x" _;returns only entities in ss that are in the current space. 6 F- K) U& T% I4 J
(defun ss_in_current_space ( ss / a cur_space ss2)% d: n! j* p% |
) V$ @) t5 R3 T: E, \ (if ss
, t* W: H- u4 ^5 a9 g& L (progn
' ?* i# L) |/ c5 ]6 N (if (and (equal (getvar "tilemode") 0)
0 \# C; O6 P6 {, m9 X( S (equal (getvar "cvport") 1)
' W5 ]2 }$ N' D& K( W/ Q: O );and
5 ] C0 B( d5 H: B1 g" \ (setq cur_space 1);then paper space is where we are./ K" Q' B# V2 `/ I3 J' J2 [& Y, O" G
(setq cur_space 0);else model space.
/ m: Z$ L: }6 a# h r );if0 e( ~. l8 l0 l, \+ T2 x
(command "_.select" ss "")
9 c5 Y3 f: d/ c5 t' Q+ F4 s9 A (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq& ]' W# t5 ~' r% e% i
(cond ;;;;;tell the user what's going on.9 @) b7 K% z1 R- ^; s7 w: T. Z
((not ss2) (princ "\nNo objects found in current space."))
7 S% z8 j& F( J' H$ ]. a ((not (equal (sslength ss) (sslength ss2))) a3 l& [- f' {! A
(princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))7 L( d4 p3 c% i* v, }! b7 L0 k
" object(s) were not in current space."
& j$ S! u: C0 P: Q* f0 X2 S6 I ): m5 Y# ?) ^+ t" K2 \/ Y: [
)
) I0 q9 _4 b4 H3 p/ q6 K9 Y )
- m2 t0 [: @5 f: ]5 P6 M );cond * c& [6 b* r3 ?
);progn then
1 ~1 z* D- b5 ^2 F: O: T );if ) F8 ^. T/ z. @ x" p ^/ e
ss21 O8 N/ I/ e# ?* }
);defun ss_in_current_space3 \( M2 I: L+ g1 o% C$ ~" G
$ R" Y/ a9 p! X" l- B2 [& @$ b$ m8 y6 `5 U4 x( u9 s: C
;;;begin the work of ddchprop2_select
# e6 p+ c1 i8 ~2 A* B V! \& O s! j
;; temporarily restore original highlight setting.
& z% S F2 I1 U2 u (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
% l; S. m" Z. m% { (cond
7 Y( i" }. g+ U( v ((and ss - T0 _+ D- y& p! i3 u0 ?
(eq (type ss) 'pickset); z- H" w, t+ q% ~3 \5 ^
) ; selection set passed to
% z7 T' o5 u* E6 J3 t (cond ; (ddchprop2) as argument+ b0 c; T6 T6 d
((not (zerop (sslength ss))) ; If not empty, then
h2 I& a ~7 a! D$ M& v9 ~ (setq ai_seltype 3) ; then return pickset.
5 d3 c; q8 j& L% Y (ai_return ss)
( I; S- d, i4 \9 q5 p$ C7 |: T )% u# g% @& D" |1 b8 o5 L
);cond close
: k1 w0 m; Q& s5 Z) b );cond #1
. A( M+ Q% m! m4 e% f1 u ((setq ss (ai_aselect))) ; Use current selection' Z- ]1 R7 ]+ U, I
; set or prompt for objects% i) F% B; g, t8 w S
(T (princ "\nNothing selected.")# u0 H, x. ?3 ]8 F0 r2 I* n
(ai_return nil)5 h d1 X- ?, @( s
)2 W" D5 |& ?! P w& ?
);cond close* h3 `, T8 ^7 G
(b_restore_sysvars)
2 ]' |: ~) q; O7 {
$ g# c( ~6 ~& V ;(if ss
5 A, { J6 S: w2 T2 E0 g ; (setq ss (ss_remove_locked ss)) 8 [ J7 |, O) a8 `& l" G
;);if( d; U( N/ Y0 C8 ?8 I/ L: Z. i4 q
(if ss
, C) }0 }+ a# r1 n4 ]& a& ^ (setq ss (ss_in_current_space ss))
6 p$ A2 G. D' f6 i0 B w+ u- l );if
* ]0 {. t3 f$ s1 H% {9 R
; \/ ?4 B/ K' i1 H' m1 v( B& y3 q ss
8 C/ J3 s5 |6 Z3 Z' P" N);defun ddchprop2_select' d/ g; N$ v% G+ r
0 O' S, K; I( W& d' p, p1 k9 H# q; k8 Q6 K; N% b# n$ ^9 Y
;;; Define command function.
3 z1 V0 P7 Y8 u+ B% F(defun C:CCH ()- x. R; T. P8 j9 ^ x9 z
(ddchprop2 nil)
5 i O: ^6 p4 y# x$ X# I (princ)
) K4 }5 Y0 ?/ f);defun
, T- v! y l! j& g; I3 V
9 B- o' B* h. x4 f8 i9 X
/ @( ~& z2 |+ n$ z, | O F; i;;; Main program function - callable as a subroutine.9 q3 z& o4 J8 K) Q
;;;8 V3 b& z& T( v' @, z8 q& R2 U9 {0 I
;;; (ddchprop2 <pickset> )
6 K, K; A, i' f- W;;;
( L" _0 u" i) \, G8 ~! @ `;;; <pickset> is the selection set of objects to be changed.* D7 n$ _$ }( \
;;;0 z! _( n# |; c1 H ~! A
;;; If <pickset> is nil, then the current selection set is
* t9 B2 ~( ?8 ~;;; aquired, if one exists. Otherwise, the user is prompted: o0 G. V) z4 ~
;;; to select the objects to be changed.
! g$ `/ q5 @6 W) L;;;
, a" }2 @1 B" [0 m+ v;;; Before (ddchprop2) can be called as a subroutine, it must
% Q+ Z* I/ F4 |8 o5 N;;; be loaded first. It is up to the calling application to
/ `$ v7 Z* P) d1 ];;; first determine this, and load it if necessary.
1 O4 z9 B. }, g: m- w
1 j6 N/ B/ k( `. ^$ X X(defun ddchprop2 (ss /: a' w3 e" U' }( K/ b* r9 S0 n
" x/ X# n! [; u! ^; s, w" i4 W' L
a
8 J, L* H+ Y8 \- F add-mdash& \7 e/ m; _. p: t% \ b
assoclist; V/ L( G+ N9 a @: l/ a8 y
bit-70
9 t* k1 e: }- U4 A i boxlength9 j' J* y$ f2 I, _5 k
bylayer-lt# D# X- Q4 P1 m! f) o3 `
bylayer_col
) Y7 z6 _6 ]" h8 w bylayer_lt% t0 Z8 B2 G! x8 a% {5 K
call_chp2" }$ L. i8 f$ G* }4 F
chk-col8 O' w* y& t0 T' u' z6 _) x
;chk-etype ;var removed by rk
/ c- \2 q, n; {" p5 S chk-lay ( x9 q5 A" N& \8 j3 j1 N, r S
chk-lt3 K; g: \3 v) \, p) a6 \
chk-lts ;var added by rk + d& L9 l" Z1 h
chk-th
8 C. y' L, ~4 C% P cmd
/ n& K% u4 y: {6 a cmdecho
& d- K1 T2 { C, X- D+ d( n" w cn
* t4 [: k" g, ]; t$ ?4 X cnum
4 G( J" o5 w8 P7 T9 K5 P col-idx
. o \* y& d+ h6 e: c" v- u col_def; s; c6 N+ O) Y0 f0 t
col_tile2 e0 k" A6 D8 u7 h, s, f
colname, a1 ~, B F1 O/ h2 {
colnum
. u5 S9 }' b$ |" u5 l6 d% m color
2 S6 |5 v( E& X" T" y: L8 d+ j+ z colorname
! A+ [; c5 g+ Q3 R* @( g3 g cvpname! X* G% |, Q! |; }
dash
2 p8 M w Z2 V* ~) v( c dashdata7 R0 h8 Z7 A- y4 x P2 I: U( h
dashlist
! n/ l3 F [3 A& J9 y$ P dashsize( ?- B, \0 }2 s' q9 w# D- W
dcl_id) H/ q$ S& G. p5 C( v# Q5 w) f
ddchprop-err
( C) Y ?3 t' F! @, x U( o drawpattern1 Q: `' `4 n4 h( a7 j0 \; K# L
ecolor; Q0 Q0 |0 \% |5 S9 {7 V
eelevation
+ @: R+ I- e, r5 P1 f eflag
7 \( T9 b3 p) Z$ q! i+ `' A" T eheight
/ e, b. h1 o2 g( T! m: e elayer7 d7 N( _. ~( j1 Z5 J$ @% ^3 Q
elevation
; ^( o) o8 y; m; G! V elist& Z1 K) u, h& N' i9 B" @% J' d a
eltscale
6 { [! m! b4 ^- c: Q1 k! u8 U eltype4 s! Z# u1 U% x0 D& n
en, ~, \3 m& ^; f1 y
ename' e2 Q3 n* g; |
ESTYLE ;var added by rk- C/ i h0 C; ~: K: [: K7 j% a
ethickness$ r2 w3 D2 @3 _
;etype ;var removed by rk
3 |) e" \2 j" Y H9 ?5 K$ h ewidth: e" m3 H3 U# B* g" _
fchk
$ @4 n6 N6 L# \+ F frozth
$ u* w; i1 J# i1 u- Y/ U fx
0 r, P7 t& n j, x) P& n getcolor. ^! _8 n1 r* n2 ^: p5 ^
GETELEVATION ;function added by rk0 E2 ]' P" z, K4 Z2 V7 ~+ L* T, f
GETHEIGHT ;function added by rk
2 f4 |% C: {7 F$ {! w getindex
7 p6 Q" C: Y! J1 w" T getlayer! s# f' i6 _2 D4 c+ k
;get_locked_layers ;function added and then removed by rk
9 e7 J1 C1 O& A1 n7 f) } getltype
5 X3 N3 O" C# s0 C" k getprops/ D' n# F, H4 G" {9 u" y
getscale ;function added by rk
6 o5 `. e% }' F3 p$ K0 k, W g GETSTYLE ;function added by rk& |% _1 e/ V- U5 Q% S
getthickness
: j2 x! q/ q! [- l0 S6 V4 t GETWIDTH ;function added by rk6 F5 p0 U( }+ w
globals
8 K ~( f, D- c1 K8 }2 u3 N3 ? U HAIR_STYLE_LIST ;var added by rk
) Z0 K' y/ q# p+ C6 F+ E i height
$ u0 `# k; b- U: E J index
3 B5 C: C( ?0 J' `% z9 d item
# U% D% I5 D- ~* [0 c2 L4 S item1 J l+ k ?) A9 c' O
item20 e& S) y! { e/ L! z# Z
itemlist6 S7 w8 E- y' K# z X
lay-idx0 l+ G1 ^: r: u
layedit_act, j+ f2 S) ?# Y4 D" V! H( i
layer
* h: Z4 t2 Y& h+ U0 ^+ i layinfo
0 J# \, Y! Y$ A; {5 Q" a laylist$ J8 [* P1 R; L3 w! y9 H- u$ G
laylist_act
7 c3 v0 O! J; f. B: @; W layname
. D3 c: @2 X% l/ z laynmlst4 \" G$ m" c5 r2 G- a( b- P
layvalue
1 I7 V: x$ x) y l. X G4 K3 { linetype# v6 v( A+ g, L% j- o$ p
list1 f2 ~+ D6 [' z$ y! [ I, E
longlist
# F4 h) T. y) k, ?$ Z/ |! z/ B% D" _ lt-idx
# g7 x9 S2 s1 t# z3 k9 `5 x: k ltabstr
) a/ V9 S/ c' s" E ltedit_act- W" k' d/ s% f& y% _9 q
ltidx
4 u, K4 U1 @$ H ltlist; E; H/ G" T. a
ltlist11 H3 S- D M7 \& S1 @# O4 U
ltlist_act+ ~- ~% f* R$ N6 B3 r% V- |3 g _5 A n
ltname0 n: o$ ~: \2 ~3 V7 Y V
ltnmlst* b* r% _+ e6 z& n$ \0 u
ltvalue. r8 q! S1 r0 I# [* x1 Q
ltype. P! _; w1 u. f: y3 ] v
m* j' O4 e8 [, e9 J# l" t' M
makelaylists- e" x8 `' k ~9 [/ o3 ]
makeltlists+ ?8 P5 z3 I, o' a# I4 Y
match-col
$ F X8 f% v6 p; r: X' ? ;match-etype ;function removed by rk
* I8 B$ E3 `' M9 d3 v& F match-in
4 w7 a: l; I4 ]" v match-lay+ @) i- I9 L! d" O5 e
match-lt6 U L- l. k3 k1 I6 i9 A5 }# U
match-lts; p5 l: i7 X( S
match-th
( W% B" m, m9 N0 a% z match_col* U- S, Y: T. u* m; n
mdashlist7 {$ W! U0 K7 @8 v2 l. T2 J* o
;MPOPLST ;function added and then move to ac_bonus.lsp by rk1 `4 v& p+ u; f
n
9 ^5 ^9 ?6 ~, G* ~9 g! F) [8 P: e name; S, f1 {: F) }, K+ @
ncolor
7 L" p+ d& Z4 |4 o2 B nlayer8 v; J+ u" d; j& p, e7 {+ \$ J8 `
nltype
$ j x }5 P/ p; b6 E nthickness; r, j% o {" m
off! W' y# j' y! t: E- p! y
old-idx
y; \; p% o, |, x7 Y olderr* C3 D7 I% v2 s6 \
on
# r6 ?7 r N" O! i1 Y; J2 I onoff7 l2 Z }3 l: ]$ p: y
patlist
, P8 t1 @( X2 P" n pattern3 w7 i$ g! m) P
PL_WIDTH_GETTER ;function added by rk
4 O4 l: S6 b. `! J1 ?/ H POLY_SS ;var added by rk I K$ ]' ]5 n3 W2 S" M- h* h- B5 w
;POSITION ;function added by rk and then moved to ac_bonus.lsp- `; ^5 l$ V9 N; `7 x: u
proplist M/ e0 f! p% }9 u8 ^' G
reset-lay4 e( ^( K9 S2 M
reset-lt
. U- z4 B& @- B% \8 H; i, w. S G. ] s) b1 [+ i( _5 ~
selset
+ A0 l; B3 r/ Q0 M# Y5 p" F set_col_tile7 u) Y! b' u0 F, ?) \, L
sortlist
0 Z8 S. |0 j' O [ ss
7 t' ?, j/ b8 n6 Z ss_in_current_space ;function add by rk.
* l; p% m& n" t% o# O5 s% H0 R ss-index8 @& w; j* ]) B3 O: u
ss-length
( B. P0 A( F9 J" f4 E4 a9 S ;ss_remove_locked ;function added and then removed by rk.
( ?; D1 F: a( ]6 |/ f% U9 a8 f( n sslen/ B" y! y- ?6 d5 X' b- l
temp_color- T {' I# m/ D! J7 f- h
templist
: Q* u. q' v$ [0 \7 M9 D4 M test-main-ok( w! t3 A+ Y& i* ^! h
test-ok2 o# `4 E. X. u1 P$ r6 n
testidx( \# W, o- n2 @3 P( O8 s o/ u) U
testlay
n5 i: O) \- r. D' v) M th-value
, A9 ^/ M y, B* a thickness
0 `* L1 X! d. H( | tile
6 z1 L1 ^. L+ U3 e# \9 H- N tile_rect
5 B1 ^' j; V% ]7 }4 n( ~* i tilemode
/ Z- v- j1 l4 T ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
8 Y1 G1 v6 f1 l8 d' n TXT_SS ;var added by rk
) @; W J5 q( r t ;undo_init ;removed by rk.# y, v7 G+ X0 ^' @) x5 B
vi
* }1 C2 [/ ]& T7 h vpf9 ?# i2 j4 C6 P/ m5 ^
vpldata
% a. Y: M( p3 ^ vpn7 }, e" K5 l4 H- Z! w3 i
which_tiles( b' D$ r5 \2 s* O
width
& C" E, v0 U7 o/ Z' f2 U( I# w x6 ?+ F% l$ d z6 L! L" T
x1
; G7 T+ J$ \3 Z/ Y F& q x2; ^4 }: Z$ A1 r
xdlist
: ^: |+ i6 B+ O: _( K y0 q4 ^0 L0 X/ B, |9 ] Z" `3 d
y1/ E# Y, E; M, S
y2
N H+ m( J1 \- m ) I/ F$ G/ _4 y F# B, g$ |
% a# l# G d9 [* L+ `; |" ~
(if (and (not init_bonus_error)
8 c: T+ X6 q; U/ r5 a (equal -1 (load "ac_bonus.lsp" -1))
2 B9 f& [' ^ ?; Y+ p! z$ ` );and3 k j6 e+ M4 D' B5 P; s0 F4 p- \# [
(progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))6 d" F" R' N+ Z0 K
);if
% j: g6 t2 G7 j3 U" V# Q- e7 ?6 D (init_bonus_error (list8 f# Y$ z/ O1 y) h6 D- n
(list "cmdecho" 0 2 I, P4 |6 l' X. B7 K; x
"highlight" 07 }7 W4 x* h' P2 `% G r3 s
"regenmode" 1
+ ~0 D6 W9 j9 Y6 \ "ucsicon" 0& G% k, y$ |# x1 \/ r
)
1 q% ?" J, B. ]% s T ;flag. True means use undo for error clean up.
- A' H8 I; a$ t! ^9 @5 O% \1 T9 z );list
9 S/ x$ Y) ]- J/ P6 H( Y );init_bonus_error/ h6 _: `5 R7 z, m* b+ |3 |6 v
2 L& s# g H# I q (cond
& ]8 P u( ]" { ( (not (ai_notrans))) ; Not transparent?$ T7 ?& L' x+ \9 {; |7 k2 e
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?) k8 H; x a5 _! O- v) G8 f3 f
( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
6 C/ r/ f1 @. S4 ~. a ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
: Y) G5 A/ h% m: j# E0 Y9 W (t # |0 _: g, N/ o3 d8 }5 s8 H
;(ai_undo_push)( ^/ g0 p; \( w4 ~. B
(ddchprop2_init) ; Everything's cool,1 u1 X( _$ F8 Q# K/ q$ S
(call_chp2) ; so proceed! F6 q! g/ \& z5 i, V* y
;(ai_undo_pop)
6 q8 T+ u( v6 g! u0 Q7 l9 Y5 O )
) s& d' F7 S3 S );cond close
B# C) ~4 Y5 B0 m9 ~
1 C. i$ R6 ~, I- c (restore_old_error)
: j2 B" _/ B; d! F! S2 X, A" E
3 T( N9 a2 C9 {! \6 g) M2 |" e (princ)* ]3 `+ |0 Q* M& k1 ~! Z+ G8 `
);defun ddchprop2- z. @/ {' p5 Q# ]! F8 F1 P
- e6 a W4 W0 s;;;----------------------------------------------------------------------------0 \( E( V3 G; Y. M3 l, g7 U
3 L X3 n: X" R$ i1 e* \(princ " EXCHPROP loaded.") P- | G1 l, A4 Y2 I4 w' X
(princ)
9 {# L, E8 V% S/ J! ]- ]+ m$ l( U+ Y* X' ]/ W: H
;;;----------------------------------------------------------------------------6 F5 L$ q+ X& D# t* b
;;;---------------------------------DDCOLOR_LSP--------------------------------
& D( ?0 Z$ C/ Q) t: n;;;----------------------------------------------------------------------------2 `9 I9 a* r a$ x# b$ `0 ?
% p4 a9 H9 B9 q" E
; Next available MSG number is 24 3 _- k& d& e8 T+ p2 b S% V1 x" L
; MODULE_ID DDCOLOR_LSP_
$ u! d+ i9 o$ V- v* m;;;3 f2 X& l' R0 x4 D8 h
;;; ddcolor.lsp
2 d; F5 q7 V& d. t# q;;;
& }$ x0 ~8 }2 a: }. m( U* i+ m8 \;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
% d; b+ `" Z' e3 A6 O;;;) `# h- R; M% J# F" r+ a
;;; Permission to use, copy, modify, and distribute this software
9 U8 A7 y4 [ ]5 M% T1 S;;; for any purpose and without fee is hereby granted, provided% F B- r9 l( l3 Y* i7 @0 J
;;; that the above copyright notice appears in all copies and
6 W9 t% ?1 f0 V. | x W;;; that both that copyright notice and the limited warranty and& z; a; Y. V1 y( Q
;;; restricted rights notice below appear in all supporting- p8 S4 K# ]1 N# ^9 n% b# h
;;; documentation.2 V+ U# d5 r1 }* O4 }
;;;
T4 x4 L& B& w+ D2 t: h* Y7 K" O;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
6 N4 p4 r/ R0 v K* ` l. h( X;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF, p; O l# B# C5 c5 D1 \) _7 T
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
# G# z. V u _; c+ E" L, L0 v;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
7 g F& F4 ~" |1 |;;; UNINTERRUPTED OR ERROR FREE.) _& W( K; m; U% c
;;;8 z6 e( X! |3 c- V! X& y+ u2 B
;;; Use, duplication, or disclosure by the U.S. Government is subject to
+ Y, V$ t, [+ v' l: l1 p;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
, c) q4 g" y6 o$ D. i0 I$ z6 M;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
/ ]* D' i0 K% S: v7 l3 A;;; (Rights in Technical Data and Computer Software), as applicable.# M- T; ]7 g0 W# ?5 v2 J
;;;
$ ?% F8 \9 x7 C# ^* _8 z; n e( };;;.
6 [: S$ {' V7 I: F0 N& i# Q' ?- w;;;+ M5 A2 g' ^* A6 u1 }6 ]$ \
;;;----------------------------------------------------------------------------
8 O- z. n/ H' f( `. b;;; DESCRIPTION. [ u$ {, }1 c Z/ q+ ]0 g, Y# p
;;; $ c$ X! R: x7 {
;;; Chromatic Pallete style color selection dialog.6 s3 _, g* x# h
;;;
: h) e, J8 ~2 } [;;; Globals:: j+ D' e4 ], c2 H; c
;;; 2 [0 C' B/ F' |" u+ ^
;;; chroma_color - Integer color index. The last value selected
! d) c3 ?$ h' H' X# g: y% C;;; by the user in chroma dialog. It is not cleared or reset7 k- T( i5 j7 i i( O
;;; by a cancel. Only used for communication between callback4 `$ a, A$ a1 p7 x* [: v
;;; functions and the (chroma) funciton.
" ^2 F8 u( i. X# M/ _;;;
. ?# i/ [4 D ?; i;;; Depends on the definitions for the dialog provided in chroma.dcl.
" W* L& y, a- |( u+ H8 q) N5 i+ ?;;;
' u3 r& G, x6 T A5 u;;;
9 r; w* G1 J& t8 b9 v. k$ q. h9 O;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma H; |1 W* n( o% T' a
;;; pallete style color selector.$ u7 ?" @5 I+ L
;;;
# W! R* ^; Q) r' f }, X;;; ===========================================================================
& I6 v' J9 |& L5 W;;; ===================== load-time error checking ============================0 Z* m( z+ Y1 n# J2 I
;;;
$ V r( V7 S0 R. _5 r# Z" ]
* ?: w% z9 R" r+ Q" ~: B; z5 Q (defun ai_abort (app msg)$ ]; [% S' Y" ^+ d. l- O
(defun *error* (s)5 E( k+ w. }; A, n$ v% x% {( |
(if old_error (setq *error* old_error))% V# V R' ~, E0 y& [+ [
(princ)
% e* u+ J. e S$ q )
. C* y4 W, {& K (if msg
3 _' O. Y- u+ u. F6 R# ^, q (alert (strcat " Application error: "
0 x) q8 A, D* K1 O( ~; i% K; W app
( H* s2 O9 E4 }2 N1 \9 \$ W& e " \n\n "/ h7 ]! S) t$ u# [
msg( C7 X V/ Y! N+ k
" \n"
1 D0 ]& F. u. ]) X )
9 x& z. i7 @% n4 _9 k4 U )6 \4 n: |; B9 k+ E! |
)
; m( _0 A( O0 b5 V$ i& U (exit)
- ?- P- q* Q' z )8 x8 o# d# K& @* C
$ g0 `1 P3 Q5 Q3 E) Y F% H;;; Check to see if AI_UTILS is loaded, If not, try to find it,5 K8 W+ S: a$ Q5 A& P! M- C
;;; and then try to load it.
, S, z! A2 |$ {# \5 y; Y9 l c;;; R! d" f3 ] P+ ]1 X0 F ^
;;; If it can't be found or it can't be loaded, then abort the7 l) M9 e8 B- |0 w
;;; loading of this file immediately, preserving the (autoload)
. m3 \2 n& c% [+ r% g;;; stub function.
~ _2 c% S0 s2 ^- v! ~
9 Y) P2 m* b1 S* C S9 p2 F (cond
3 I5 ~, v! E# e0 s& [: |1 | ( (and ai_dcl (listp ai_dcl))) ; it's already loaded., y: x1 j. A2 @1 p, u
' U, y9 [5 n7 j3 D: s4 ^) b
( (not (findfile "ai_utils.lsp")) ; find it
: q' i" L6 k' ~4 ~ (ai_abort "DDCOLOR"
5 ?1 t" l7 P% r2 ]- B6 ^ (strcat "Can't locate file AI_UTILS.LSP."1 O# N1 ]7 {+ i2 ?, l1 g0 A, _
"\n Check support directory.")))
% ~$ N. j# ?& Z/ R$ O$ E# m3 u& @: M2 ]& d6 {3 @
( (eq "failed" (load "ai_utils" "failed")) ; load it+ H4 t# ~8 u3 g3 b1 ]7 C) t# g
(ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))& v/ a5 e% o9 O
); V7 i/ H+ C8 b+ }, t2 K# J1 ?
) C6 y+ l* V) }& i (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
4 x5 t$ i3 }7 {# r3 V/ Y0 k( J (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
* J0 b/ Y9 W6 |' T ) ; ai_abort's alert box dialog.
: @, }, A3 Z7 u' a. Y% U( u
% O/ [ l* l" ]9 b3 j8 o P9 A;;; ==================== end load-time operations ===========================
# @( Y; x2 \! c+ |4 |6 P) f
4 L( x$ O% Z) q; ~0 ]9 L* Z$ E(defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)! N2 C I+ k! @; w. m
0 |3 q$ I) G3 v( i0 {+ ^ ;; Main Color function, called by setup code.
7 H6 O$ y) D- \! u0 d T, Z (defun ddcolor_main()
$ ]1 s8 L/ c/ s7 X6 J5 a2 b9 N. B7 s# H: V
(graphscr)
* n$ W# z* G% s8 v, W* E8 b) H7 Q
/ A7 }3 b( i1 f7 z. _: n ;; Get the color of the current layer, for possible BYLAYER color swatch.2 S! g1 d6 F1 P, M* J3 h! d% G
(setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
( C6 S, r1 h( C9 _8 K# b9 L# Z- ^$ k' I2 p3 H7 Z1 ~) y" `1 A
;; Call the dialog here...
1 h* g4 x- [1 n. L- P% W (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr)); z+ _! v8 G6 w# i
0 U r4 F8 r2 t (if clr
0 P1 }0 g" Y2 W9 l1 U* ~# F (setvar "CECOLOR" (citocs clr)))
5 k" Z) k9 t3 I8 ^ ): A7 q* K8 m; \% O; A! j
2 G& }) [' s# ~8 q) k ;;;
" s8 x( x# B4 k ;;; CSTOCI -- Color string to color index
4 C( `! C. A# h5 o8 T- y7 p8 w ;;; Convert an arbitrary case string into a color index.
& f& k& p7 `$ Y* T8 | ;;; Returns nil if string is not a valid color.
3 J) }' }' J: w, W ;;;9 m. s8 k9 M3 N6 j/ b3 p
(defun cstoci (str)$ x5 G* f& @4 O
(setq str (strcase str))6 C: y' m! i3 o) T7 u7 e
(cond4 X' a! D/ K3 s# I9 |) ?
((= str "RED") 1)
! P* B% J) o( s ((= str "YELLOW") 2)
$ h u7 e* T% `* j0 ` ((= str "GREEN") 3)
) g' u4 b* [; h+ |8 r g$ v, a I ((= str "CYAN") 4)" v2 M" G: m- k7 z6 ^5 x
((= str "BLUE") 5), V1 |8 O; g! k8 z
((= str "MAGENTA") 6)
$ r4 r4 x9 N) T# m" S% Q ((= str "WHITE") 7)& O+ f9 m* {# H
((= str "BYLAYER") 256)
; _0 `* {1 g# B& J; R ((= str "BYBLOCK") 0)7 k+ o' }5 b7 S
((= str "BY LAYER") 256)5 }5 {1 \+ E! O; Y% T' N
((= str "BY BLOCK") 0); o- c% q, L; C+ b- v
((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
/ X% M6 T+ H) z4 K' h1 n (nil)) ] n8 `6 o& R& ?6 v
); ]4 `9 Z$ I& j5 L/ F
, N3 t- ^% Z. B( K5 g2 k J
2 j, ~- ]+ L# S, d8 W ;;;7 X- I8 @9 A* } F2 G$ C C- f
;;; CITOCS -- Convert color index into standard color name.1 J3 }0 f7 \' X8 i- Y- Q
;;; Will return the standard and logical color names as text( u6 w! x/ @" _' [6 F0 T
;;; strings. Returns nil for out-of-range color indicies.0 @! ]9 t2 D( E' u
;;;7 Z" |, L4 I2 S/ S
(defun citocs(i)
7 ]) Y0 ]3 u5 E% x* U. ^' J (cond
/ u4 J2 H, b5 ~8 R5 d' Q( ^; b3 K ((= i 0) "BYBLOCK")
; E: M# q$ [1 Z7 Q ((= i 1) "red")/ p7 F4 S" v. v" n9 _- F$ k
((= i 2) "yellow")8 k3 C* x: _9 @+ X' m1 J$ V" c
((= i 3) "green")
8 t# V6 I9 s* n1 U1 |1 t7 h6 h2 t t6 M ((= i 4) "cyan")3 m* H9 I. M% G; ^& H
((= i 5) "blue")' F: L5 j9 L o! ~$ j
((= i 6) "magenta")+ f) D5 L& v% U6 [/ B" O/ v# C+ G9 g
((= i 7) "white")# q2 f2 |# v. G$ D9 [+ [
((= i 256) "BYLAYER")
; ?- m* E' r* Y9 P1 k. \3 t5 Q4 r ((and (< 0 i) (> 256 i)) (itoa i))
/ A6 A% ]( @) ]1 c l$ j (nil))
& ^) J8 I, U4 u% w' J; h- v* e ), k0 T1 [1 g& Q' a, m# K5 [2 U5 G& w1 z
" y- j2 E4 F& ~. U0 y ;; Start of ddcolor% \7 ]& m$ ~" o/ {3 d$ A# e5 Q
(setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho+ l* O' V4 @. r3 j: Q
old_error *error* ; save current error function
0 p; N4 h/ U6 t+ s+ Y3 I. D *error* ai_error ; new error function
% d& Y/ ?' N9 u3 g )
0 J3 J2 q- E$ S4 A7 X6 z& c
) S5 c: n1 _9 }" ]( R (setvar "cmdecho" 0)
5 x5 `9 ?( o$ ^) l' c& |7 l: |
% ]/ j" E6 X( n C3 @, Y (cond% g- q4 G& Y0 d7 D1 a8 u# a
( (not (ai_trans))) ; transparent OK2 H& @4 X" x, U& F
( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?6 p' ~# o2 ~$ j, X' f) Z& A
4 ]: j+ l' N; w4 d" D! l (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))2 K6 T( n4 k l/ c' p# F
(/= 8 (logand 8 (getvar "cmdactive")))$ d" g5 N5 Q2 F2 i( |6 }- k
)
* z$ V1 N. e# P, M% t7 N# L3 ~- Q$ a (ai_undo_push)9 E1 B% z1 ]% r e0 }1 I
)
( F3 i5 d W- {* W* V8 W' f* F; Q# E& v' q9 c& Z$ `
(ddcolor_main) ; proceed!
2 V: Y/ I( s3 }- L0 A5 e
$ [, y4 b) c6 @4 Y6 B( V" r (if (and (/= 1 (logand 1 (getvar "cmdactive")))
& J! ?, B5 _3 p4 e5 P (/= 8 (logand 8 (getvar "cmdactive")))
+ Q* Y/ U( b2 C$ \7 ` U )) v" I" z- a1 c9 H( H' L
(ai_undo_pop)* L3 ?) ^7 m2 F$ F3 M! y( I/ r; |
)$ F# p3 d% }. n! s. E' G
)& i9 h+ K! Z$ n6 H. V+ J5 u
)+ X" y1 q4 Z/ |3 @" y" J
/ a* y, w" U1 [0 v+ r! v8 m* B (setq *error* old_error)
h4 Z) d. @: k. j( k3 F (setvar "cmdecho" old_cmd)5 [5 q* F9 f9 C" U6 X
(princ)
3 ^# q( ]$ X. `" J4 E; x/ k$ V3 @2 n( x& ~$ L* v
)
9 i2 C: F* b% B6 y: V& ` j2 _, x3 v" w
;;;----------------------------------------------------------------------------2 Q/ U2 E$ y# c( D! U+ @
9 y* J Y5 h" L: R; @
(princ " DDCOLOR loaded. ")" H1 p6 q) L# J2 L3 r
(princ)
% F. Q$ Y0 g$ P) {- z
; ?1 Q; J1 S+ S- Z;;;--------------------------------------------------------------------------;9 H7 x$ l, m$ ^( \
;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
" c$ M I$ m+ I0 N% q9 F4 C;;;--------------------------------------------------------------------------; ~# Z) G+ P k5 B( Q$ A+ \
;;; ssx.lsp) r1 r1 K( x; C9 C
;;; Copyright (C) 1990 by Autodesk, Inc./ c" }( `+ X& x5 M3 U( a% W
;;; Copyright (C) 1991 by Control Systems, Inc.
6 T. k: f q' X# r2 `;;;
* o$ x6 _3 T0 O7 \* j& X7 p; e;;; Permission to use, copy, modify, and distribute this software and its
! Z% o. y5 a6 Q3 ~7 H$ |) q;;; documentation for any purpose and without fee is hereby granted.
; b; b& p# o, M) |; w ?;;;+ V4 d8 D5 t+ g+ ?
;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
* S4 s$ V: n/ z, Q; R6 B;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
7 g" H& r" s5 L5 D: f# j;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
6 o, q; }4 j1 }, B;;;
: h/ d6 V" `1 G9 C5 X, P! O;;; Larry Knott Version 2.0 7/18/88; R1 N0 A- [, V' G
;;; Carl Bethea & Jan S. Yoder Version 3.0
0 {$ {* V' q7 b/ \, x;;; Enhancements to (ssx).. F F y2 k6 ^9 p" }
;;; 15 March 1990 1 C# f! f+ S4 D) H' d, X
;;;: q) _! l) K* c$ G
;;; ARTIST Software, Inc Version 4.0 December 1991
4 x5 n+ p3 C" {0 e$ S;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,* P+ {( C5 J8 ~8 A5 \
;;; use Flexicon menus
# V- W& c! H, K; k" ?+ M8 U' e, ^;;;+ D0 V8 c# i. O9 X) i/ s
;;;--------------------------------------------------------------------------;) U- N8 @# Z8 P2 O D
;;; DESCRIPTION
* E$ D2 ^; S7 \;;; SSX.LSP , }+ j+ ~$ o/ n" _6 U/ @8 F- k! \) B. w
;;;
, l; t* }1 r; I5 g0 s;;; "(SSX)" - Easy SSGET filter routine.
% f& G" M' a/ m+ E. f$ [;;; * _- m3 j, d! f) S4 n: ]; L
;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
# H: |& W9 s8 Q, O' n6 \;;; to create a "previous" selection set or type "(SSX)" in response to
( m; o* V# s1 V- L8 f) m- p;;; any "Select objects:" prompt. You may use the functions "(A)" to add 1 Z4 ^- M# f% p9 i+ H- x
;;; entities and "(R)" to remove entities from a selection set during # I6 a. o, ?8 k" |1 A* H- x
;;; object selection. More than one filter criteria can be used at a
% ]% v* W/ ~6 ]1 u;;; time.
. [2 ~" q, M( u0 ~9 c;;; 2 |' T3 [# S3 d. f W
;;; SSX returns a selection set either exactly like a selected
. G9 H! d+ Z* `) Q$ o q;;; entity or, by adjusting the filter list, similar to it.
+ Y' s: s2 y6 n;;;
4 r2 t4 C3 e! P6 }% f/ m;;; The initial prompt is this:5 O# W8 Q6 ^1 x m6 n6 w! B
;;;
$ Z& ?5 g/ I* Y;;; Command: ssx
; ?/ t7 z7 A# r3 n+ v( u' L;;; Select object/<None>: (RETURN)
9 j; d* F. U5 A, s" x% H% k;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 5 S4 F4 P) i& W3 w3 x8 m3 e, a2 |4 Q
;;; 1 s( I' U- V5 }. k' A; I; d
;;; Pressing RETURN at the initial prompt gives you a null selection % r# }2 E+ f1 Y( z4 d7 {
;;; mechanism just as (ssx) did in Release 10, but you may select an , } P3 I1 c. O( h' H
;;; entity if you desire. If you do so, then the list of valid types : X! B4 Z& N: W
;;; allowed by (ssget "x") are presented on the command line.; `( W4 Z$ n& N& c! ?% G# ]
;;; 0 g. N7 v/ X+ R2 E
;;; Select object/<None>: (a LINE selected)9 @* t$ Z5 ^9 V4 R
;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) 4 F! ~- ?2 _6 Y1 s9 K _$ f+ W
;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ) U8 b* s6 n2 h# c4 q. M
;;;
; m$ x! I2 }* s. d, } r% I* y;;; At this point any of these filters may be removed by selecting the ( m6 R2 P* k2 g7 D7 O% `+ |. f1 h
;;; option keyword, then pressing RETURN.
) f/ w, q2 F, I! h" x) b- k4 y;;; ( R( ?* R4 C3 k2 y3 c1 e0 ^2 q
;;; >>Layer name to add/<RETURN to remove>: (RETURN): i9 r- t* e# G8 N" K1 p# a: h. k
;;; & | P- e/ J3 B, O0 s
;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
; I% n; P& V3 \, g' [$ N0 ^;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: , f& F; W9 o; |0 L2 G
;;; ; c. [' q& Q! z6 i3 J2 F. s
;;; If an item exists in the filter list and you elect to add a new item, : `+ H2 ?8 y: K6 q
;;; the old value is overwritten by the new value, as you can have only ( `; O& R. t* P- L5 M: [/ |6 e* ^; [
;;; one of each type in a single (ssget "x") call.
1 K2 u" k$ _3 ?$ v5 u( _5 c;;;5 K; Q# }' ?2 E9 ^* C% J: E0 v
;;;--------------------------------------------------------------------------;& [5 q& [( |8 X: L& ~; E1 m0 g
;;;. S' i# A( ?4 t# e: [
;;; Find the dotted pairs that are valid filters for ssget
7 a' ]/ ]9 d; j N;;; in entity named "ent".
4 V7 ~! h8 B' }: R;;;
3 ?# ~& p1 f" ?;;; ssx_fe == SSX_Find_Entity8 p( M( o. i- j4 p) {7 x
;;;1 I7 _% g4 e! i/ Y; f# f
(defun ssx_fe (/ x data fltr ent)
! S- N* V: t4 x! i. m8 g8 d (if (and (= flexvar 1)(/= t2 "Pick"))
( R& g1 `2 c7 i8 {) n, n8 Z (setq ent nil)
5 A* C4 U) J! F) }; e8 n& p( Y (setq ent (car (entsel "\nSelect object/<None>: ")))9 p! t. J+ x/ N1 A
)! }- }( O2 c( M0 B1 d3 }/ F
(if ent
& y0 ^% j0 n+ H% O (progn
9 f1 W4 m* y2 {- l& @5 A m( I (setq data (entget ent))
6 ~5 t+ r l* @2 S* o' C- G (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38: U4 N% R7 R8 F$ o# o3 L5 K
(if (assoc x data)& r) ]0 |7 u7 M. y8 a* [5 G
(setq fltr
J, y. l0 b Q8 ~ (cons (assoc x data) fltr)
% x# @, u: m% W )8 j. R! x2 i2 p }( p! X( F W
)
% E$ K- ]3 R; S8 r, p )
5 c- q6 e; [, M+ n9 E7 d& a (reverse fltr)
/ i; V: ?% ~: u )
0 n+ Z' s- G/ D4 c5 B )
$ X3 N, ?$ ~2 @6 b/ u0 H* U; T)8 @, t; L: L+ p3 K- M
;;;
0 P8 z& f' h [! n! e# W1 S& b% g;;; Remove "element" from "alist".7 f1 ~6 T+ ?; f1 _
;;;
6 k. q+ }. I4 O, n6 ~;;; ssx_re == SSX_Remove_Element
& F2 I6 K& n5 o( }, [! {;;;
/ t }& M; A; B1 J! q1 h5 [( j(defun ssx_re (element alist)
3 A5 Z/ x& _8 i% w' l (append2 S! ~2 @' ]- c: }4 R
(reverse (cdr (member element (reverse alist))))
& `' i! Y1 `) M* U- R2 E (cdr (member element alist)) 0 H: O1 w2 z$ ^' q0 f( c
): D r4 s! D' j
)
* C, q: f6 J2 I+ o;;;
$ V/ k+ ], o9 i( b9 x" \+ e1 G;;; INTERNAL ERROR HANDLER
! p3 v8 o9 @) l. O3 o1 \5 m X;;;
1 Y6 B5 s6 p% t9 Y(defun ssx_er (s) ; If an error (such as CTRL-C) occurs9 a" i9 K# n& I* j' V S& x5 S
; while this command is active...
- l$ T' _8 b) E; T- H) c (if (/= s "Function cancelled")
n5 y4 C. V) V& ? A (princ (strcat "\nError: " s))
$ j, d% B( y: \+ f8 Z )
* ~/ t2 a, u+ z }2 j' i* N: j (if olderr (setq *error* olderr)) ; Restore old *error* handler1 n: t k7 N d5 ?. ]% `; x, X
(setq flexvar 0)* N# j( d- s3 V, K! Q, z: q
(princ)4 S( q( e G8 v; D. H U8 W
)! o5 A; j, e4 ~' z
;;;4 e3 u% U& S& w1 ?5 x8 d5 d
;;; Flexicon call routine
+ H+ K4 |/ q. Z* `4 J8 V;;;0 M$ r% H; O1 p0 [4 J
(defun flexmnu (a)8 H$ V! w$ [$ m: u" ?/ w
(if (= flexvar 1)- s3 Q3 j5 ]2 e. z: H+ M6 N" @
(command "FLEXICON" (strcat "FLEX" a))) w) k) w1 C$ ~" D9 j J
)
9 T! R! ^5 n5 Y: q3 {)
- Y/ f _7 a% H3 c2 o, Q+ a7 V) K$ l9 e3 N' b0 @. d
;;; ; Q' x3 U7 C" f+ k
;;; Get the filtered sel-set.7 d8 G @' o. F' H& Z; c+ M
;;;( l2 K- Y/ x+ w" i1 w+ j, T+ V& [3 J
;;;
2 U! Q5 k' e" k' m X* Q9 c4 K( D(defun ssx (/ olderr)
+ D# Z5 G: G7 r0 K7 m; f& g (gc) ; close any sel-sets
9 b2 W! q% v; q (setq olderr *error*
3 |1 }+ j- E4 r0 c6 b9 O0 N *error* ssx_er 9 z) ?" S( H4 h; Y
) g2 S3 n7 G' n' s$ X/ i) H
(setq fltr (ssx_fe)) , F, c8 R' C" l
(ssx_gf fltr) 4 e; T4 o% l. e* ?" a t. ^! _
(if (= flexvar 1)& }2 O2 d" `; _0 C% m% c4 W& A$ C6 m
(progn
7 j5 B- c- U/ ]. q5 [- {- y( T1 a (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
4 U I: A7 l3 F (flexmnu "EDIT"). f6 x }; U+ u1 |, U. N
) C* u, S7 V$ v2 h' T9 J0 b
(command "p")
& v5 t8 m8 O: @, ~ )7 I6 n5 l4 k' h: I
(princ)7 U2 y! }* ]) l
)
+ J" _8 `3 {3 A# B. T7 b2 L5 a m, h;;;
1 w" z2 J/ ~6 f( N" p;;; Build the filter list up by picking, selecting an item to add,
3 J7 Y* C& S1 f9 w6 C3 o;;; or remove an item from the list by selecting it and pressing RETURN./ P; n4 G. _1 s2 Q; `0 ?
;;;
, C/ r/ l( Z/ v$ f- Z/ c u4 ];;; ssx_gf == SSX_Get_Filters3 A. A% u+ s3 m' P0 z% g& L: l
;;;
: T3 [" B v8 S( } R$ }(defun ssx_gf (f1 / t1 t2 t3 f1 f2)
, \3 o7 p$ J# J" \% { (while
% j5 z% Q* X3 R7 u5 S [ (progn
, n& m# T: g: M8 Y r3 `' }7 j (flexmnu "SSX")5 d& P7 X# t6 n7 E/ \
(cond (f1 (prompt "\nFilter: ") (prin1 f1)))% Z5 [" h/ P4 g" g: n: C
(initget 9 C! T4 R6 V, u; h
"Block Color Entity Flag LAyer LType Pick Style Thickness Vector")/ g7 u4 R" W ~/ l% @
(setq t1 (getkword (strcat
: h6 a" M/ \7 g6 W8 Y "\n>>Block name/Color/Entity/Flag/"- e. s p/ J: ]+ j( P; F, e
"LAyer/LType/Pick/Style/Thickness/Vector: ")))
* N& g/ G6 c& B" R; L# c3 s )
E- O2 E% D! a N9 V7 [ (setq t2
6 U* V) [4 d5 j (cond
9 M6 P& A8 ~& _* i7 r ((eq t1 "Block") 2) ((eq t1 "Color") 62)
& K9 J" W& i, r$ H, E2 V& W; N2 z$ g) M ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
7 g1 t2 y7 ~3 }1 i' i& } ((eq t1 "LType") 6) ((eq t1 "Style") 7)
D& Q# Z( O+ y2 W ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66), w: e* Q: O4 l: S8 F
((eq t1 "Vector") 210)6 i3 D1 F3 e7 s( h7 t
(T t1)
S0 `8 A. p( c0 C: s, R )
4 t$ U+ k& K$ ~ )
* i* {$ I" l q' r8 v0 P- k (setq t3! a7 V i# N2 N d! `0 G2 K
(cond
+ r7 c5 `9 \* x# _# ^9 J ((= t2 2)
2 ^" d: w0 \& g (if (= flexvar gtads 1)5 C2 B7 V/ Q* ^. }. r- a, x
(progn6 B5 O7 a4 p! U& g( [
(prompt "\n>>Block name to add/<RETURN to remove>: ")
) g8 q9 p4 J( a& t& a (gttable "BLOCK")7 X# h! ?; M: ^) L1 J( D
); ?! t$ t! g- u0 _+ I' H- j. `
(getstring "\n>>Block name to add/<RETURN to remove>: ")
3 J, T. A9 Z) `# }; |) ~ )
0 E, t( e+ q' K0 z% I4 q( X$ s )/ v$ N+ ^5 {; b' O! Y
((= t2 62) (initget 4 "?")
- s8 S& w- [( J P" c. C' V (cond6 @% h% E0 t, e# ?; T) o4 r
((or (eq (setq t3 (getint ) ~5 C+ i6 u" x$ `- a
"\n>>Color number to add/?/<RETURN to remove>: ")) "?")
( s: U6 {6 ~( c" f (> t3 256))
3 k* p) i# q0 ^! o1 E2 c. T (ssx_pc) ; Print color values.- C2 R6 Q, S0 J; h6 ]3 y* R9 I( u* U
nil# p N- W9 ~* ^
)
+ b2 `* j0 y) O E (T3 {# s4 {" D$ s a; y
t3 ; Return t3.8 r" Z, z# Q& A- s5 e* [
)# A z! Y- e6 f
)
% Z0 a2 Q# ?# @2 ~: k5 E )
' O. D0 E/ @* X' \ ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))$ I ?, W8 |- X5 c- C% O, E- h/ D" h" ?
((= t2 8)
/ V6 L5 K( r) a4 q+ Q (if (= flexvar gtads 1)
: s$ ^- x0 f( N, |" R* j (progn
& F2 e" k7 `. `6 o: d- j (prompt "\n>>Layer name to add/<RETURN to remove>: ")4 O+ n, F2 j" s
(gttable "LAYER")
$ j& ~, `- H: n )
; c" O% b' E0 L9 X (getstring "\n>>Layer name to add/<RETURN to remove>: ")* Y* f7 i0 ]* f* Z z& L' O. U
)7 _! P+ D$ t6 s( o! v& I+ j3 `6 u
)- \' y! i3 e0 C- L( S i
((= t2 6) 1 }% @* S9 L) ^3 B7 G) j- h% p( O4 P
(if (= flexvar gtads 1)/ s- q. W% O. q& e* x$ l
(progn
4 |& K! E5 q8 f$ {0 r7 X+ F- l2 F' D (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
! Q3 n9 o* i6 ]) m; P. i( B (gttable "LTYPE")# Y- a. L: o; {$ h& Z
), O- j, y7 P7 f3 W1 W0 E" I! j& I
(getstring "\n>>Linetype name to add/<RETURN to remove>: ")& M& B* G! j. K* g( `* h
)
- J5 `) r2 E8 [& j! j o )& N) K& R5 \# |' |; B
((= t2 7) 2 A/ c5 z: m* I4 i; H) B
(if (= flexvar gtads 1)
1 p5 L) }4 h/ ?4 m9 t7 S, X (progn3 b$ ^) m; t4 H, B0 i- Z+ ^
(prompt "\n>>Text style name to add/<RETURN to remove>: ")! F& Y o0 ]0 Q
(gttable "STYLE")
5 S/ `6 |4 r( J1 C; z )
1 n T6 x5 `" k" F0 c (getstring "\n>>Text style name to add/<RETURN to remove>: ")
/ a$ N3 ^) R% f( u: b8 V) r+ O+ _8 ] )0 w" _" C: i9 s, V- \6 |* P
), H* N9 R! X1 X# ~
((= t2 39)6 A' C6 z ~2 X7 \/ I, s7 l7 b
(prompt "\n>>Thickness to add/<RETURN to remove>: ")
9 Q- Z, U9 n, V/ \# u (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
" [$ Y3 g" f: A' c2 G ) L) C: \) d+ k: |1 y: c8 F2 J
((= t2 66) (if (assoc 66 f1) nil 1))
/ K1 E. O, M# y/ p ((= t2 210)
, O5 R. _+ @) b$ ], u v5 c" K (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")+ f7 `8 T, e) ]1 `- U6 Y9 R
)& B6 y" e& H) v) z7 z( I1 e
(T nil)
. a V6 \, _8 A )
2 d- V2 W4 q# e )
( \/ f7 m6 Q! X. k, P5 s: ^ (cond+ }6 D/ Q; R. a* ?, Y5 p n
((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
4 n {$ H1 S( o) z ((and f1 (assoc t2 f1)) ; already in the list
1 q( L; j. B& b$ F3 I' `+ l (if (and t3 (/= t3 ""))1 k7 O8 |' E. V4 F9 ?8 `
;; Replace with a new value... & y5 R3 y; v8 M0 f# Q
(setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) $ U, \/ B) t/ p
;; Remove it from filter list...2 {6 u' M) n0 ]4 a0 Y* L* d @! F
(setq f1 (ssx_re (assoc t2 f1) f1)) . [# T8 ]9 q( i9 {
) ; W+ g0 e% i/ p5 a0 M# P1 Y
)
- z l4 y M4 _; ?" {7 q ((and t3 (/= t3 ""))
1 @4 _/ E# y' X- [1 E8 _- x2 x (setq f1 (cons (cons t2 t3) f1)) O+ b/ `2 Y* F8 @
) [8 n0 B5 g, f" n' Z) \/ U3 o
(T nil)
* m" n7 S3 E, b" A/ N' R6 r) B )3 a9 g8 d" |' r- l
)
F8 Y$ a% x8 C9 i2 L3 z0 U/ c* E7 p (if f1 (setq f2 (ssget "x" f1)))3 P4 O x* i+ h& R' f7 ~
(setq *error* olderr)
3 p) { L1 R: @" s5 V' R& ` (if (and f1 f2)
3 w: a! R8 s. r# v$ A (progn ^/ ^! o0 [% `0 y4 d" f
(princ (strcat "\n" (itoa (sslength f2)) " found. "))
; }- {+ I) m# i- @; m+ M f2 & f) R" ?3 J& {5 ^ d
)
b( a7 z2 X X: @5 ], K- _ (progn (princ "\n0 found.") (prin1))
7 ~) f" h% d( R. R# A: q( y3 Z )1 {8 }, ?9 F. |4 S5 m" a
). Z, v. W4 K" j6 {' u4 B$ v
;;;, v: i3 \5 h$ Y% t! k/ u
;;; Print the standard color assignments.
! A0 z9 j- D5 ]! h' ?+ R;;;
* c3 Y: Q1 q/ ^. o5 g& ~' D;;;4 b+ i0 g- n- i+ `. z: {
(defun ssx_pc ()
3 Y- {- L4 B& W ?+ i3 q (if textpage (textpage) (textscr)). b! J& @- G6 [
(princ "\n ")
; D* U2 n; E, U. O2 p (princ "\n Color number | Standard meaning ")
1 [! o; K, B4 j4 G: U# W (princ "\n ________________|____________________")
; F! r- ` k$ G9 b( T, f (princ "\n | ")# w& F8 m- Q; a' a
(princ "\n 0 | <BYBLOCK> ")
s. e+ |6 t% c c# i2 N7 Q (princ "\n 1 | Red ")/ C3 g7 m. V8 g0 G' {
(princ "\n 2 | Yellow ")5 E0 q) f4 d1 I! _/ K8 B& t
(princ "\n 3 | Green ")
/ y" D# {8 i! A: Y+ R (princ "\n 4 | Cyan ")
* g" ]/ ]7 R k; q7 ^0 S (princ "\n 5 | Blue ")
: {0 q# N1 u! `0 E* u (princ "\n 6 | Magenta ")' Z5 t0 x/ R9 h7 W9 N
(princ "\n 7 | White ")
% S& F' @' [+ T* o& S- \ (princ "\n 8...255 | -Varies- "). Q6 M7 F8 ` a
(princ "\n 256 | <BYLAYER> ")- h4 y0 V1 B5 o( L t: T5 S
(princ "\n \n\n\n")" J' k5 C& N: T; g8 X+ { {
)7 x- \% P- R# ~* R$ h
;;;$ z5 d. C1 |" y' g7 K+ D
;;; C: function definition.
6 [$ _! K1 g( j5 ?5 B% n;;;3 a3 ]- c$ _ s: T2 i$ ^8 A! C% h5 q
(defun c:ssx () (ssx)(princ))& [! Y. F4 O' N
(princ "\n\tType \"ssx\" at a Command: prompt or ")
: Z* ]# c2 | v# Y8 q(princ "\n\t(ssx) at any object selection prompt. ")/ W- Y& F* v6 w1 W
(princ)6 K8 c2 w- R' W
6 U, R' q) L8 m" @;;;--------------------------------------------------------------------------;
! \2 k2 h: D4 Q* k5 n* c& N;;;--------------------------------------------------------------------------;& T: j% `. [* m- T! k1 J9 E
;;;--------------------------------------------------------------------------;
6 U% a: U/ K' @0 e. _2 z(defun S::STARTUP ()
/ B' ~# t5 [! z7 |, h(setvar "cmdecho" 0)( P% |* V- ~2 b4 w- b
(setvar "cmdecho" 1)) L6 i5 M2 c+ S7 d" x+ c9 u/ M' I$ G
(setvar "LTSCALE" 10); O- o. D1 Y u
, N0 V" X% p i1 R. m9 E K
! m6 b' e) X6 H" ?( O;(command "_load" "chenKH.fas"), E( d, I$ o- U& r
;(command "_load" "ctcot.fas")0 n+ I& U0 o T; E. }
;(command "_load" "damdoc.fas"); g/ d9 r1 A) T+ _, u- O
;(command "_load" "ghichu.fas")9 c. P( F0 f, M' u( C$ g
;(command "_load" "hamtutao.lsp"). _ V+ j& m; H% L: i% P9 {% U/ q7 t
;(command "_load" "KHOITAO.fas")
% s# L5 x6 g& \;(command "_load" "KHthep.fas"): I' O( R6 o7 O/ P/ f0 z6 p o
;(command "_load" "mbmong.dcl")
, r7 I7 R( h& I2 d/ X+ N;(command "_load" "mbmong.fas")1 e' e2 n0 b E5 r0 h2 M
;(command "_load" "mccot.fas")
% k; [6 u2 Z. D: B, J+ y8 v+ S) _;(command "_load" "mcdam.fas")
$ y' y9 R* j7 x2 U& {7 E;(command "_load" "mcmong1.dcl")
1 b8 r$ j" d7 L4 b* {& H;(command "_load" "mcmong1.fas")0 T! w& Y. ?; Z5 v! R O' c/ D
;(command "_load" "mcmong2.dcl")
7 x: g" |+ `2 d5 s;(command "_load" "mcmong2.fas")& O* v) N) h7 T+ g: ]
;(command "_load" "mcmong3.dcl")
3 R' E2 `; S$ R) w y" N;(command "_load" "mcmong3.fas")
9 O/ S* f; E+ w/ ]' D- f;(command "_load" "mcsan.fas")
, W0 o5 r' b# F o; I;(command "_load" "thepdai.fas"), J i6 g _! X7 i* h
;(command "_load" "thepdoc.fas")
q0 n: @8 S$ N9 N;(command "_load" "thepmb.fas")
! G X2 j- m7 a! r( j" V;(command "_load" "thepphbo.fas"); L6 P \$ R6 f7 R/ d% `
(command "_script" "thongso.scr")
6 ^- P; @, q" `$ f4 a9 {' s;(command "_load" "thongso1.dcl")9 _: f6 \: y W3 V0 S! ~9 F) E" u
;(command "_load" "thongso1.fas")
% |& g1 W0 h- @6 B5 D8 J" B' G;(command "_load" "thongso2.dcl")
) a ]$ l% ]; A6 I;(command "_load" "thongso2.fas")
3 o, ~# h, M1 H" M! k* O;(command "_load" "tietdien.fas")
/ S6 a8 |2 N2 |1 h;(command "_load" "vehan.fas"). i% Y/ ^9 j7 V+ F
(command "_load" "phamduy782006htd.dcl")
! W2 J: f* g" Y) S3 ^(command "_load" "DDCHPROP.dcl")
( X( b; z1 P0 m! ^5 R: v(command "_load" "EXCHPROP.dcl")
6 [: i; v" y5 ~5 g0 V0 j(command "_load" "DDMODIDY.dcl")
+ ?7 a: e; _& i" E, X(command "_load" "TK.dcl")
. B. I& g# z9 |(command "_load" "TK_LIB.dcl")
8 Q! M! L( M+ k) i) M4 m+ S0 Q1 b) x(princ)3 D+ F, E) c) A
) N! \; ?4 b# l' e0 n( w# {
: \) O) ~; x+ m5 w+ w6 A! j
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\DDCHPROP.LSP")
4 K; D; v7 r: D M% U; F: [
* ]- L' m( T7 D! X5 l2 j(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\SSX.LSP")
7 f+ p2 o. j' R
2 } q$ T1 p0 Q. ^;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\phamDuy782006_TKT_VNI.LSP")
6 K, C% z7 m4 g+ |0 n* P+ P8 A;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\phamduy782006ganhtd.LSP")7 a L3 B8 d7 }
;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\phamduy782006ganhtds.LSP")
3 O+ Z1 K& V) H) m; R
% i$ t3 g1 o# Z8 ^) A5 M(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\THONGKE-THEP\\TK_EXP.LSP")5 p, H. h0 g' L/ j d- I' D& U
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\THONGKE-THEP\\TKN.LSP")+ I. x) F, O3 R1 S R/ {, e
4 d+ b# d2 d1 V% ~4 z- W
;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\ACAD iit insertTEXT - iiT.LSP")! \8 d% Q4 c, H+ {
3 q3 ~9 h( w3 E" e) e: M0 t;(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\ACAD iit insertTEXT - iPT.LSP")
8 Y4 o- r* ]7 t9 a p7 K& b7 I% Q( c' {# a+ A0 c
(load "D:\\S E T U P Thuong Xuyen\\1st OFFICE\\0st RUN-2000\\ACAD insertPOINT - PTA4.LSP")
) l! U1 L* d' A% v0 A) Y
F0 o5 d4 u1 N) J+ S" I;; Silent load.
( b4 s! U& r9 @! M7 N3 W* c6 s: h(princ)
5 B( z: ~1 O2 ^3 r ?' \9 \4 v6 Y* {# r/ y# i; ]
! m4 [: m! X8 M* V$ B$ M: G# }8 w;; Silent load for the Express Tools.
3 J7 Y9 `( y( a `. u3 y;; Altering this line will affect Express Tools functionality: h# V( b7 T6 X) b; Q; g4 ]
(load "acettest.fas" (princ))
5 i) V) |9 y% C: F7 \6 Y: k( g6 I
+ h( ` \% Q" v" T$ B1 i5 h;------BLOCK NAME Put The End because ERROR other LISP-------. B% B! M. s$ l
;------------------------BODER HATCH-------------------------
3 ?. h) u& N8 A2 q: e( U& v7 y9 X; N' b9 D1 N
;;; HATCHB.LSP ver 2.5
4 I1 H, [+ t% V; ]7 p; |;;; Recreates hatch boundary by selecting a hatch" b2 H4 ]9 |4 r0 t: k3 X
;;; Known problem with some elipses and splines) f" S0 ]: ~' r+ d
;;; By Jimmy Bergmark
: e7 I) C3 Y: [;;; Copyright (C) 1997-2008 JTB World, All Rights Reserved
' }- {( r0 G0 I% k" a;;; Website: www.jtbworld.com
# p4 J: z. Q2 ?5 k8 L;;; E-mail: info@jtbworld.com n; R, ]9 u7 h! V9 F0 O. A
;;; 2000-02-12 - First release
$ f# G! L4 q9 H; i1 }' d# L% z;;; 2000-03-27 - Counterclockwise arcs and ellipses fixed
- |7 T' y- K+ N# \, G- `8 w;;; Objects created joined to lwpolyline if possible
. [; o( f1 N# R. t; E;;; Error-handling, undo of command
) C! I9 w- B2 D$ L$ C: z( c0 };;; Can handle PLINETYPE = 0,1,2
' d4 _3 y' d% j- \;;; 2000-03-30 - Integrating hatchb and hatchb141 a/ \2 \' _( i n# `
;;; Selection of many hatches" X" P+ s; N' {
;;; Splines supported if closed.3 n0 f( c; p# f# ]. J6 P" q
;;; 2001-04-02 - Fixed bug with entmake of line with no Z for r14
) A# Y5 |# b. s& `5 }5 m;;; 2001-07-31 - Removed an irritating semicolon to enable polylines to be created.
( [9 i5 n9 ]7 g. u& `; l! Y;;; 2001-10-04 - Changed mail and homepage so it's easy to find when new versions comes up.
# ?% j6 j) k( F;;; 2003-02-06 - Minor fix6 u0 s- Q% G# \2 U8 f( _: H
;;; 2003-02-17 - Area returned if no islands is found since it's not consistant1 C0 h! l- W( j* Z, K
;;; 2003-05-19 - Fix to take PEDITACCEPT variable used in AutoCAD 2004 into account, L: W6 j: N, P
;;; 2004-11-05 - Minor bugs fixed. c+ E+ s; D* U9 [4 y: v, A
;;; 2006-03-18 - Nothing changed from 2.1 other that it's been confirmed to work with AutoCAD 2007
V2 _6 `( f: h; T& H( L3 Z& F;;; 2006-05-13 - Create the boundary on the same layer as the hatch using the hbl command and! }5 V/ r0 U. h+ K. v2 x& N+ ^7 C
;;; on current layer/color/linetype using the hb or hatchb command7 M2 H/ W) A0 a
;;; 2007-02-08 - Fixed a bug with the hbl command: h8 W9 f$ F4 d) D; o' |
;;; 2008-02-29 - Support for hatches in non WCS thanks to xiaocai4 a) s9 [- U1 z( ~
;;; Tested on AutoCAD r14, 2000, 2000i, 2002, 2004, 2005, 2006, 2007, 2008, 20092 I9 O$ Q) Z9 a x
;;; should be working on older versions too.: A: z0 ^: ?& o+ @' l6 g3 T) k
7 {( s6 U% Q5 L(defun c:hb () (hatchb nil)) ; this line can be commented out if there is an existing command called hb8 y! g" ~ f) ^
(defun c:hbl () (hatchb T)) ; this line can be commented out if there is an existing command called hbl
. V4 Q! x2 V- d8 i3 T# w(defun c:hatchb () (hatchb nil)), q3 r' b$ b5 t# {% l& b3 ~
(defun hatchb (hl / es blay ed1 ed2 loops1 bptf part
& }3 |: W' c" ^7 @9 t et noe plist ic bul nr ang1 ang2 obj *ModelSpace* *PaperSpace*
9 {9 M+ J4 Q! O+ a0 ?/ F space cw errexit undox olderr oldcmdecho ss1 lastent en1 en2 ss lwp
0 g% s; b# Z1 E* b list->variantArray 3dPoint->2dPoint A2k ent i ss2
' V. z5 L+ e, C; C knot-list controlpoint-list kn cn pos xv bot area hst noarea
0 U( S, U+ S. ~1 `6 x( g )
" {2 S$ U0 W4 m. P7 X8 G, y (setq A2k (>= (substr (getvar "ACADVER") 1 2) "15"))
* e- Y5 w- D- b- j- N (if A2k
! X: c( W& P" Z- t( X5 W (progn j) W" P& j8 S$ ]$ e ]& S
(defun list->variantArray (ptsList / arraySpace sArray)- O4 B6 c @; N- r5 f8 k; r
(setq arraySpace9 ^) Q# s3 {+ J
(vlax-make-safearray
5 I( P' z u: U5 J; }/ h vlax-vbdouble3 A- W- Y% Q) c ~- G9 s- x
(cons 0 (- (length ptsList) 1))( E8 S4 l1 b) S T5 d8 h* K
)$ G7 x+ i5 l W! x( g
)
# j7 _+ i4 k9 @- ~# q# f (setq sArray (vlax-safearray-fill arraySpace ptsList)) m* e0 `7 y; R) }
(vlax-make-variant sArray)# E9 f _4 N, E5 `9 k, K. T
)
5 J% {5 g1 `( S3 m (defun areaOfObject (en / curve area)
2 Z) N- W4 Y+ {5 M (if en
. \( ]: J6 y; `4 x2 G6 G8 e: N (if A2k
$ t8 t5 [3 K: N% B! M: v0 e (progn
3 o+ ^& U( X9 D" z+ ?. z (setq curve (vlax-ename->vla-object en))
$ `1 n( \" b; D0 |1 g9 x (if1 y; @/ J# L6 k! b5 k$ R! g
(vl-catch-all-error-p
) K R! b9 y1 p) S1 w4 [ (setq3 f K) w9 G! l5 V9 n3 B& s2 K
area
/ h6 T8 I) W+ g/ |$ l [& c5 _ (vl-catch-all-apply 'vlax-curve-getArea (list curve))' A! |1 @" W3 k) u, `
)2 [% n3 o) k' r
)
8 v: J- z) w- `5 ]6 q nil6 c5 |. k. o' u" W: s
area
" D2 v/ I* j5 ~+ s* `2 X )
4 C) X* A; V+ r )8 D- {7 p: ^. g
(progn
( g# l: A% B9 I; V (command "._area" "_O" en)
0 H" [( |0 Z6 x+ J* L (getvar "area")* l! U% S/ Y+ E* {; H
)5 M8 A! w2 @% G- s6 a2 e& [$ s# o
)
6 ~5 a) t q1 k4 g( i$ n )
8 I0 \2 M( {0 B )7 s$ h% v' j, u' z/ w3 ^ T
)" N8 Q- I9 n9 _! Z/ p
)
5 s& I1 V: g1 y w# e, a0 m (if A2k
2 z/ e' s9 I1 c) A (defun 3dPoint->2dPoint (3dpt)
7 E9 P7 n% T& K0 a2 U' |# L* h5 q (list (float (car 3dpt)) (float (cadr 3dpt)))( }9 N! J N$ a+ A
)! E0 t) n/ O) h
)
Z' ^. @! q2 c" l2 o, J7 A9 n8 m: z: I8 c4 h
(defun errexit (s), l* k1 n2 j2 L% o0 T6 N
(princ "\nError: ")
) m1 W. {7 |0 w (princ s)
5 D: K% G9 t6 O, G+ Q& `3 k3 [ (restore)( y4 I6 `5 S3 D: Y1 q
)' \1 A1 J3 R, _" W" f
2 g, F9 v" Q% s# ?$ l
(defun undox ()
8 j& \' S, C: L% @% P0 Y1 h- e (command "._ucs" "_p")- v) m7 d c9 L9 t, D0 P1 x3 Z
(command "._undo" "_E")
9 _, X$ ^; K. l9 g3 N5 m (setvar "cmdecho" oldcmdecho)0 \! I, F, l6 ?* I" H
(setq *error* olderr)
2 u6 t( j5 ]+ I S (princ); b& k6 |1 z% I9 v1 f' Q0 ~
)5 c$ a, p& M4 A" j& M4 q, @
! C9 \0 _! i. w: D% |" F1 F0 [- l (setq olderr *error*4 h9 j+ p' m% z1 M% s0 l; g5 t
restore undox
: \% L3 l: K, s' ?9 ] *error* errexit
; O m' [ I# H2 d( L0 G4 S )
" i" x6 y% h' m (setq oldcmdecho (getvar "cmdecho"))
: J& \3 A$ K/ Z) ^ (setvar "cmdecho" 0)
: _/ i0 a& q' |# Q: u (command "._UNDO" "_BE")/ W4 R, S; a+ u: l
(if A2k (progn. P* U5 i: b1 F
(vl-load-com)
8 l% p# w4 A" r. E2 I2 _ (setq *ModelSpace* (vla-get-ModelSpace/ J0 y4 p5 b8 e8 o: T
(vla-get-ActiveDocument (vlax-get-acad-object))% Y2 g5 e3 @5 I7 }" T7 `- l
)* S6 H( y* R+ ^: ] P6 l
*PaperSpace* (vla-get-PaperSpace
2 z7 i& _/ g$ m1 R% N (vla-get-ActiveDocument (vlax-get-acad-object))( N; ^ C T5 ?8 o3 H
)4 L8 ]. e: F6 v- @6 Z8 X6 {' p5 S
))" M2 s' y5 g( ^. [
)
+ u7 |8 K9 O4 i2 v9 Z. x$ e% `+ ^% I9 h9 h; n. {! f
/ S7 ~. E, Y. J1 |; Remove for testing purpose
, @# @* F8 u% n( z+ r9 a$ v; (setq A2k nil)' |4 |% s: U/ b8 j- W
a* e% n; O A2 @. Z (if (/= (setq ss2 (ssget '((0 . "HATCH")))) nil)& x( W% X2 Z/ G
(progn
5 L# P" s, X- n9 s (setq i 0)
' C# O3 \( [6 V1 w (setq area 0)
1 m3 Q( G/ P' ] (setq bMoreLoops nil)8 d$ U% K7 Y9 P1 h
(while (setq ent (ssname ss2 i))
2 D e7 S" x4 @: n9 x& {: y (setq noarea nil)
, a1 u: W- M. E( f' r l (setq ed1 (entget ent))
7 g; q8 h# t2 c. ]( i( r% W) c) r; ] (setq layer (cdr (assoc 8 ed1)))$ C% u8 \! W7 J
; (if (not (equal (assoc 210 ed1) '(210 0.0 0.0 1.0))) (princ "\nHatch not in WCS!")) ;modified by xiaocai
9 h* e4 Y6 g, X/ y ; (setq xv (cdr (assoc 210 ed1))) ;modified by xiaocai
. [) {8 b, c6 K (command "._ucs" "_w")
/ w3 C( C# f3 I* O4 T2 _ (setq loops1 (cdr (assoc 91 ed1))) ; number of boundary paths (loops)" \# Y2 `; ]' v% \- Y5 m
(if (and A2k (= (strcase (cdr (assoc 410 ed1))) "MODEL"))' e( |9 h0 O' P6 h+ N$ D4 E
(setq space *ModelSpace*)
2 i0 `! R- A ~' M; g (setq space *PaperSpace*)
! P# u6 U N+ p6 b )
5 w" Q9 T0 T7 [1 M4 n (repeat loops15 ] W3 R- C2 ] X, |
(setq ed1 (member (assoc 92 ed1) ed1))
1 x$ z0 Q8 P; C! {# u/ z (setq bptf (cdr (car ed1))) ; boundary path type flag
2 v+ y& n* V' L (setq ic (cdr (assoc 73 ed1))) ; is closed
1 c! i5 u- o8 n4 s# m (setq noe (cdr (assoc 93 ed1))) ; number of edges6 h, ?: v) \" l: g6 L4 @
(setq bot (cdr (assoc 92 ed1))) ; boundary type# d' o; k+ ^( [. b" [- }
(setq hst (cdr (assoc 75 ed1))) ; hatch style
A% Y1 k5 x& {( k/ O (setq ed1 (member (assoc 72 ed1) ed1)); \- a2 p2 t% A) u4 f3 v
(setq bul (cdr (car ed1))) ; bulge
% a; M( ^! E5 r s; M6 ~* r+ y0 ?2 ~ (setq plist nil), |* j* } W8 D. Z7 P& c
(setq blist nil)
& I" H7 S( f1 K) H7 x, S# O5 z (cond3 i; v" s$ C$ Q% O1 r
((> (boole 1 bptf 2) 0) ; polyline' x+ R5 h0 |* f! e m; ^- B
(repeat noe
) D2 u6 i8 m' u) i (setq ed1 (member (assoc 10 (cdr ed1)) ed1))5 }- V# z2 L7 y
(setq plist (append plist (list (trans (cdr (assoc 10 ed1)) ent 0) ))) ;;add trans by xiaocai3 ~3 N% B# H+ M1 g
(setq blist (append blist
* k+ z2 q- J0 Q+ m (if (> bul 0)
# H: l2 P! {. c9 s/ J+ N (list (cdr (assoc 42 ed1)))
+ c0 C) B6 d1 ~2 ]' q nil
4 L/ P3 T/ ]1 s8 H# U )+ w2 d" a8 \ p8 y, X: z9 _1 D
)7 g( D( f$ E: T6 Z/ E/ x8 z
)7 t7 m' i6 D/ u0 T. D) Z3 p
)- {" t0 o: F" f% ]9 w; o( H9 d
(if A2k (progn
6 G" m$ P/ l8 F! }0 @0 z: o- l' N (setq polypoints
# i; O: p. L9 Q: a (apply 'append$ j8 b9 [# p& d! H1 H
(mapcar '3dPoint->2dPoint plist)
; E# O, R* g: M" I )
( l' Z7 F$ H# C8 f# M @ )
$ h, U1 I, H5 d8 n; E2 G (setq VLADataPts (list->variantArray polypoints))
& P. p' S1 `7 j5 i (setq obj (vla-addLightweightPolyline space VLADataPts))
# @4 T2 z/ ?- `+ d7 p Y1 x0 z% A+ S- a (setq nr 0). N" N/ c2 H3 m+ y7 G, n5 { `5 p
(repeat (length blist)5 s8 X3 ?, \9 ~2 m
(if (/= (nth nr blist) 0)' M# a* J y. W& _0 Z
(vla-setBulge obj nr (nth nr blist))
9 u7 j2 e8 }3 d4 H3 n' J )
; |/ @' o( Y/ H* m' { (setq nr (1+ nr))
% S! B- t9 ]0 A+ Q, S n )
" S, I( H8 k4 k' V6 I) f9 C. V (if (= ic 1)" [$ X- |6 o. `5 `& f5 i5 V4 _
(vla-put-closed obj T)6 m4 G, n$ w! |, I$ s& J, E
)" O& W. C: k. f. v: W
(if hl (vla-put-layer obj layer))
5 X. \4 H3 s" m )1 w8 D& z( |$ \) ]( J2 u+ F
(progn
3 [3 `6 |* r0 l; e (setq ne (append (list '(0 . "POLYLINE")) (list (cons 66 1))))
4 v5 U; B d% F1 K. L: k% d0 ^ (if (= ic 1) (setq ne (append ne (list (cons 70 1)))))
' d6 ^0 S4 b1 b5 \4 N( g8 z8 r (if hl (setq ne (append ne (list (cons 8 layer)))))+ S0 v- D+ c2 }6 F7 g0 r
(entmake ne)
8 o4 e8 G' _& X5 E (setq nr 0)
5 Y% Y% \% b* { (repeat (length plist)
' s3 f9 O: u- W# p9 k v: @ (if (= bul 0)- U5 Z4 ]0 E$ X' J- k
(entmake (list (cons 0 "VERTEX") B' r; o8 _4 P6 B
(cons 10 (trans (nth nr plist) ent 0) );;add trans by xiaocai
g# f. ~0 j. y4 n( F# ?7 P6 Y9 o )
! J9 w( \* x- ? )
9 C! ?7 ~8 X, n5 R3 S; m (entmake (list (cons 0 "VERTEX")0 O# n) a- m% r+ T, x
(cons 10 (trans (nth nr plist) ent 0) );;add trans by xiaocai, H# K" q2 B4 [1 z" v: {. `' G5 W3 @
(cons 42 (nth nr blist))4 X/ t9 F! ^ @* |! Y4 G8 L
)' P4 s+ n+ c2 P( | e. l+ I" Y
)) z z* ^2 n6 B& u. E" J
)- M2 |6 S% B- J' V
(setq nr (1+ nr))
# h; u/ T7 V2 P; g5 g )
F+ D4 O8 z" i# T* X (entmake '((0 . "SEQEND")))* `2 B2 o/ a7 y+ N$ ^
)& a' M$ x! m" q3 ^) i
)- p$ A+ G/ v7 t1 E1 v3 l+ k
). S, w" j: k" a
(t ; not polyline
& [$ k }7 m4 n( O0 K (setq lastent (entlast))" x+ u/ L! i! Z( ?0 }
(setq lwp T)0 e" q# S8 E! }' m4 g/ W% }+ t% i
(repeat noe
7 t# e* `/ J0 ~ (setq et (cdr (assoc 72 ed1)))+ \ T6 C# ]. S* L/ j5 u/ a1 z
(cond, ^1 @/ d) C3 |/ d* t( |
((= et 1) ; line
# z+ g L# u7 U2 `' J+ X: z% k (setq ed1 (member (assoc 10 (cdr ed1)) ed1))
# S- a* B( L1 k3 _; r; q* f( `) | (if A2k
% q4 ~" l9 b9 W. a/ r' u) Y; r) A (progn
3 \ o# X _# h* M4 c4 T (setq obj (vla-AddLine
6 y8 @; v C, G x! A# l! C" [7 A space" X( t6 I& i9 E. [% K; J3 ~4 K, c- {5 Y
(vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) ) ;;add trans by xiaocai( m l6 M) v6 [) P+ F [
(vlax-3d-point (trans (cdr (assoc 11 ed1)) ent 0) ) ;;add trans by xiaocai" Y/ p# y0 w. Z% `) t* F) T9 B) \
))
# e3 v8 g- ], R: ^' X' L0 M (if hl (vla-put-layer obj layer))
/ |$ v; {9 C/ F- g$ F5 o3 b- H3 [0 s )
( O; B7 O1 Y% t, `+ ~' {' t (progn
. r0 G) v' _3 J3 ] (setq ne (append (list (cons 0 "LINE"))0 X% E- P3 h! ^* O
(list (list 10 (car (trans (cdr (assoc 10 ed1)) ent 0) ) (cadr (trans (cdr (assoc 10 & g, M5 ~6 g* E
3 _- o+ c* B5 W- g1 X: g. M
ed1)) ent 0)) 0)) ;;add trans by xiaocai
* G6 U2 ~2 _8 J+ E: |/ r (list (list 11 (car (trans (cdr (assoc 11 ed1)) ent 0) ) (cadr (trans (cdr (assoc 11
; s" w" K* k' e
: q7 q4 Q9 `. \6 q( }4 H( @ed1)) ent 0)) 0)) ;;add trans by xiaocai5 U; K$ ^6 W" w# u
;(cons 210 xv)6 f0 e+ e; x8 z- `9 K/ C0 C
)
! H* o; v' H1 x0 x2 r )5 {* w0 C5 c4 |2 m2 o
(if hl (setq ne (append ne (list (cons 8 layer)))))
: X0 m) m; P2 z; p$ s0 K/ M (entmake ne)
) W) ]% }: P) J2 ] )
# ]; d1 ?# ^' }, k& N2 N4 u )$ i& M- S; T- A2 p
(setq ed1 (cddr ed1))
! `$ i b) t2 D9 E )* {. l+ d( h+ Y
((= et 2) ; circular arc v7 `) X9 j: [. J1 G
(setq ed1 (member (assoc 10 (cdr ed1)) ed1))! h3 ?, k" H" }) Q9 g% X! `9 d
(setq ang1 (cdr (assoc 50 ed1)))8 b& S- R1 {2 N5 Z
(setq ang2 (cdr (assoc 51 ed1)))
8 q3 q; B$ Q& l( Y9 O% G+ |& x (setq cw (cdr (assoc 73 ed1)))/ B4 \- } `$ i, e' }
(if (and (equal ang1 0 0.00001) (equal ang2 6.28319 0.00001))
( D: }5 L' h, m J (progn& G1 ~6 A' S. O! q% n
(if A2k6 K# u2 c+ f5 a/ J2 ^- i* j( A
(progn+ ]5 J8 x' l" u) z! e9 O
(setq obj (vla-AddCircle
# s: F3 ^; ]0 {& j space
. Y" @. e4 S% X' c/ ?( c1 C9 ? (vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) )$ ]$ V5 {9 n7 t3 k8 y( n
(cdr (assoc 40 ed1))$ h% S; p6 p- M: o) j
))
$ P3 s+ ?$ \1 Y (if hl (vla-put-layer obj layer))+ M U8 ^) } `" c* M
)& J1 ]/ j/ P$ d/ @. {( k$ a' u; A
(progn- R4 y- a$ n; K9 D' i6 E
(setq ne (append0 r. o) g3 ~' V) g8 U
(list (cons 0 "CIRCLE"))
% K+ S5 t- A# q, M* w (list (cons 8 layer))0 A% }! o n, z
(list (cons 10 (trans (cdr (assoc 10 ed1)) ent 0)));;;add trans by xiaocai
8 b, ] n% P0 n7 [% i3 j0 d; f. ] (list (assoc 40 ed1))
; J/ n% M3 t9 N3 ?; p+ h' T )2 o v. J' @6 l5 D& W
)
. r/ B- y& g. l% M; X, l" R (if hl (setq ne (append ne (list (cons 8 layer)))))
! J+ R2 r0 Q8 o (entmake ne)
! o9 c! G) z& C! s7 {% ] )
& x& q3 V4 q. g' _6 [ )
, H3 ?% J y+ s \( p% @ (setq lwp nil)4 M6 d2 o9 ~( w( r
)
/ r7 S3 I4 u& _- {9 V. d6 O$ k- E (if A2k& g" W' g& [% J0 @: U8 i k
(progn b; T: e% U: @7 X0 |( |
(setq obj (vla-AddArc; X% S8 G; o5 r
space
5 g9 q; X5 v: P) _1 P1 L: f+ N (vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) );;;add trans by xiaocai- [& |1 s3 G; n6 @) A
(cdr (assoc 40 ed1)). d% z& K! ?" g+ d; D8 G: r
(if (= cw 0)
- ]! r) z4 a6 h8 L9 a% C (- 0 ang2)6 h p7 J9 M5 D
ang1
7 y8 G! x# z# N8 x# R8 s& E" ^ )$ U7 _% s5 _0 K
(if (= cw 0) O( s8 v6 F5 `% Z
(- 0 ang1)1 Y, s( {% f' Z X' C% }
ang27 T9 n2 l \3 _5 m
)6 v4 t) M- d Y8 H
))9 t! H; b# s1 r; W+ b2 }, r
(if hl (vla-put-layer obj layer)), F8 T9 i* ? m# M; T" t' e
)2 K0 n5 ?: u: V+ M Q, E: d
(progn& J0 @2 b! h* ~8 X, a5 H. @7 |$ W8 C' W
(setq ne (append (list (cons 0 "ARC"))
# R& E* _/ J4 |. h6 B (list (cons 10 (trans (cdr (assoc 10 ed1)) ent 0) ));;add trans by xiaocai2 B7 ^% p- h9 E" H
(list (assoc 40 ed1))
/ O: P8 r) |. C (list (cons 50
5 g" Q: M% h% N2 z) j (if (= cw 0)
! j$ z+ h2 x+ t }7 Q7 Q (- 0 ang2)% O6 h: N$ y; i
ang1& g' W$ I a/ k) ^
). c5 v" S4 W) X
))0 l8 c: s; r% L1 _* t. E9 u
(list (cons 51
6 I/ ^; M' ~% z& i1 c7 ` (if (= cw 0): P8 ^$ g/ V4 c f) A0 }) K
(- 0 ang1)
9 b0 A( ^" t7 l2 v/ g& M& a9 W ang2. m0 l/ I3 X% f/ t- W- ^" K
)
% m, G& h# n3 F/ ]) I$ H' g ))4 N1 m# M' j2 E. J* a8 O2 w
)% F3 `0 z+ {& b) Q4 u2 Y3 x
)$ n. T) P& H0 l& i4 M2 |' m% I
(if hl (setq ne (append ne (list (cons 8 layer)))))/ ]) B- Z4 a; p: C& m
(entmake ne)9 w/ P& B) ?* L9 G7 Q) i
)
' w- O6 M6 D% Z2 z )) [$ N7 |! j# i" @# W h4 w- l
); X- V0 }" U. L u- o4 _
(setq ed1 (cddddr ed1))4 _" P. V9 D; j$ W( N9 |( S; c9 W
)
) q5 v& X! J L E# ?9 M% n ((= et 3) ; elliptic arc# o4 ~1 t6 n- y/ x% E4 }. B2 x4 x+ {0 Q
(setq ed1 (member (assoc 10 (cdr ed1)) ed1))
( f, T! x4 M0 x6 o (setq ang1 (cdr (assoc 50 ed1)))
, Y; g. H" J5 ^' w4 D5 g (setq ang2 (cdr (assoc 51 ed1)))- V1 V: ?% e5 L; K$ X B
(setq cw (cdr (assoc 73 ed1))) q' E5 R. s8 n8 Y& J6 p5 O
(if A2k (progn1 l6 Q! E, B+ S9 Q7 J, d; V
(setq obj (vla-AddEllipse
2 o4 V0 p& }6 i& x) B5 d+ P space
/ Z/ f; C% j' F4 k1 I0 d) k: N (vlax-3d-point (trans (cdr (assoc 10 ed1)) ent 0) )
/ S* X; c3 o9 f# g1 q (vlax-3d-point (trans (cdr (assoc 11 ed1)) ent 0) );;add trans by xiaocai
4 w4 _6 B6 ]" g (cdr (assoc 40 ed1))
$ t% U% S8 d- ^3 |/ c8 K )# }; {6 }; D; X
). D5 \' K+ S8 W
(vla-put-startangle obj (if (= cw 0) (- 0 ang2) ang1))# N% G ~: _+ t$ ]7 V
(vla-put-endangle obj (if (= cw 0) (- 0 ang1) ang2))" @; s, d) v( I, A4 h1 Y
(if hl (vla-put-layer obj layer))
. z, d9 w Z/ f )
5 z5 K: B2 W: y (progn
. K4 V: S8 Q! Z6 p) [! k6 g (princ "\nElliptic arc not supported!")
z3 M8 A" I% c2 ]) @6 B6 u (setq noarea T)3 t( w$ G! H. v( [* u
)
# E! w! j# L/ W8 t! @' u3 n; c )2 N+ }7 q- L, U _) g
(setq lwp nil)+ n) I9 ~8 ^' {- g
)
, `! B0 ^2 w) T7 ^/ c' } ((= et 4) ; spline" M6 Z2 O) B# [4 g' ^- r
(setq ed1 (member (assoc 94 (cdr ed1)) ed1))5 o! L( W% a! i* v, [3 n
(setq knot-list nil)
9 w3 b3 U! |! G d1 J& ^+ f- E* i (setq controlpoint-list nil)' x; E4 b7 w4 r0 x( d: Q
(setq kn (cdr (assoc 95 ed1)))
9 J% w8 @- ^) k0 Y! i6 i (setq cn (cdr (assoc 96 ed1)))
/ O6 f3 o+ f" ?" l (setq pos (vl-position (assoc 40 ed1) ed1))
# U* R, `' t9 E% J2 y U/ i (repeat kn5 I( X: i; J: F3 |! w" F8 x
(setq knot-list (cons (cons 40 (cdr (nth pos ed1))) knot-list))% g: ]/ h6 u. {7 J( U0 n. H
(setq pos (1+ pos)). K6 c$ J( ~/ Y/ ]8 S4 ]2 @3 |
)9 C- c# b9 Z6 U% F9 `1 [$ g
(setq pos (vl-position (assoc 10 ed1) ed1))) R( E* ]! K5 Y
(repeat cn% K! u8 g, u+ R; p" z8 H% S
(setq controlpoint-list (cons (cons 10 (trans (cdr (nth pos ed1)) ent 0) ) controlpoint-( R4 s; g# c6 S0 p8 g
( M3 P- p9 N4 T" c( u llist));;add trans by xiaocai
5 g Z3 ?4 c0 h) i/ R+ U8 I7 S (setq pos (1+ pos))0 P5 J$ U9 E- d" g& {! E% O
)
7 y' W/ U9 y6 }+ @ (setq knot-list (reverse knot-list)). y" S* x& J0 M) S' d% u7 r
(setq controlpoint-list (reverse controlpoint-list))' l! G! m" z$ m+ [" d! u. B
(setq ne (append
2 E/ E* s- W$ ?( q0 y+ ?) W3 _ (list '(0 . "SPLINE"))3 E, f. q9 x' R( y- a% z+ j) X
(list (cons 100 "AcDbEntity"))! D& D. c _5 f/ x: @
(list (cons 100 "AcDbSpline"))
# F' [2 Z3 G% D+ m0 }3 N+ n: B (list (cons 70 (+ 1 8 (* 2 (cdr (assoc 74 ed1))) (* 4 (cdr (assoc 73 ed1))))))3 R+ g, ]! X$ H
(list (cons 71 (cdr (assoc 94 ed1))))
0 \5 e6 v0 }$ Q (list (cons 72 kn))
: `$ n4 @0 v2 h [* B& w; M (list (cons 73 cn))
. ^6 Q9 U* m! K' Y/ \9 @& _( Y knot-list
5 }3 X2 f7 |' W controlpoint-list
/ h% g# A. @9 }4 }" l )" T, r3 ?5 m0 q7 R5 G
)+ |7 [5 l) N# p7 ?, _! r1 ]4 a
(if hl (setq ne (append ne (cons 8 layer))))
: K4 S7 O( v5 _4 l (entmake ne) H M$ x; e3 t1 c1 [/ `# R5 u
(setq ed1 (member (assoc 10 ed1) ed1))% Y* R! X/ ]! l/ m9 z2 R7 t
(setq lwp nil)
, |# k5 ~0 T: j7 N2 i, D/ \) ^2 i )$ k5 u$ R8 m5 B; J3 u
) ; end cond
9 {- M6 ~ L! r: z6 K' {! Z ) ; end repeat noe- b* |8 r1 s# c% f% _' m9 K
(if lwp (progn
% P, B% ]4 D* e( `9 {$ o (setq en1 (entnext lastent))7 F$ M& U/ c: I9 X& M3 k! j' u
(setq ss (ssadd))
4 N4 B7 l D/ d9 c0 Z (ssadd en1 ss)
5 ~# H2 p+ p; g4 r4 S7 z. I8 _! x: ~ (while (setq en2 (entnext en1))$ F, Q" o' k# M9 F( U p! p: r# B
(ssadd en2 ss)
2 G4 ?# ]/ ~" r6 j( Y (setq en1 en2)
; u1 T5 d$ k9 K) v- i& m4 S )# i8 p8 Z- p7 O5 o
(if (= (getvar "peditaccept") 1): T3 u4 T9 b# w6 Q# @$ U
(command "_.pedit" (entlast) "_J" ss "" "")
" n% Z8 v8 m( ]; M& f (command "_.pedit" (entlast) "_Y" "_J" ss "" "")0 S( N) x6 [5 ~4 b$ s# K' j
)
/ @# y- T* e; w1 Q! o, Z- R ))
: _6 Y8 p0 H7 f3 O; V' u
8 S& f! y( |0 _2 c% d5 m ) ; end t
4 Q# J- ~8 A8 R# q# o( W ) ; end cond
! `* v1 a7 _ u; Tries to get the area on islands but it's not clear how to know if an island is filled or not
, h. g; E" j7 q; and if it should be substracted or added to the total area.
- R6 g/ Q) G2 g" ?0 @. f* ^; (if (or (= bot 0) (= (boole 1 bot 1) 1)) (setq area (+ area (areaOfObject (entlast)))))5 z5 G5 o! n- O8 C9 p
; (if (and (/= hst 1) (/= bot 0) (= (boole 1 bot 1) 0)) (setq area (- area (areaOfObject (entlast)))))9 u8 L! K' E1 g6 v
; (princ "\n") (princ bot) (princ "\n") (princ hst) (princ "\n")
" L4 [. p6 R! G8 Y* D; (princ (areaOfObject (entlast)))3 J2 V$ l$ I5 m
) ; end repeat loops1
5 `( V- z* W, `- r% l. x (if (and (= noarea nil) (= loops1 1)) (setq area (+ area (areaOfObject (entlast)))) (setq bMoreLoops T)) [) ]5 w: f0 g
(setq i (1+ i))
/ f$ Y8 g, s5 D9 S% O5 {0 z; w )3 |9 r) d$ F: }$ |$ u
)
- X7 T0 z! L! h$ ^' V; I, m ) F4 V! T! l( ?$ q4 A
(setq ss2 nil)1 Q, ~: s1 U" z( w
(if (and area (not bMoreLoops)) (progn
+ U- f; D# E5 T8 D7 i8 ] (princ "\nTotal Area = ")6 o( M6 A- ~3 O$ t7 r$ s
(princ area). B0 H2 a: R! y |" l
))' e% s8 L% l1 W' Y \# g8 r. q
(restore), y$ z6 G: T- g9 P9 i7 _
(princ)6 f5 O, c- w) c K0 K
){\rtf1}
0 O' A7 c- Q! Z" } s6 @. t1 L3 v: ?) A% `( C6 W, U
(defun C:BN ()
! z# N& W9 ^ ~2 e6 g/ N; M p8 a (princ "\nAdd block name to drawing.")3 H- B, C' e# O4 M3 m' g( l" ?) b
(setq pt(cadr(entsel"\nSelect Block:")))
# Z! t5 t, ]" ]* y (setq e1(ssget pt))
7 D" o% G9 {1 j- a, ^4 {, @ (setq e2 (entget (ssname e1 0)))# P+ A+ G F$ V/ k- f
(setq blname (cdr(assoc 2 e2)))+ b9 w; O# F! n+ `
(setq pt1 (getpoint"\nSelect point for block title:"))
. I s$ e" P7 S/ Q C: }8 c/ { (command "text" "c" pt1 "" blname))
; x, k: m0 Y8 Q; o7 {0 [& D(princ "\nType BN to execute)) a+ S. V1 b$ K$ l
�327 b! _6 O- ?( M% I+ r2 I3 g
$ d4 V6 H) J( G. a
2 q+ w- Z; ?+ [, w1 ^4 I) }5 t
|
-
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
|