|
|
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 |
- ********************************************************************************
2 P5 H7 k$ h: I0 v+ B0 n& { - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *0 D2 Z" v0 `8 q( B) `9 a* ^: M
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *; \1 H; g+ u$ Y/ i
- * Suu tam & Soan *
/ W4 r, N' Q$ w6 f - ********************************************************************************! X: {. C. V* B3 ?& X( [8 z0 L( w
! i/ h* w& z! x' y0 L- ; Next available MSG number is 1045 J& Y) H$ a& Q* Y1 Q) R2 a/ V
- ; MODULE_ID ACAD2000doc_LSP_
4 Y+ h- J; i7 d( [# H5 I P - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
# B B3 E& @1 L# ], `/ c - ;;;- d0 x: |3 g: i6 ~0 y( T( }# R& f
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.
& }, z8 t6 B0 { h! g1 g - ;;;
) S% b. \9 U( D. \' w - ;;; Permission to use, copy, modify, and distribute this software7 x) F& M& {/ A, ^! o1 K
- ;;; for any purpose and without fee is hereby granted, provided j) I0 c9 b* S8 T6 t4 q! Z
- ;;; that the above copyright notice appears in all copies and7 ~; t: Y$ }1 ~6 T3 L
- ;;; that both that copyright notice and the limited warranty and
7 y# [" e2 B( Q' t - ;;; restricted rights notice below appear in all supporting
& t4 T. o, N" w0 ]& W - ;;; documentation.
! C+ R" a' F" T - ;;;7 E0 s# [1 C! A* f; @9 S$ |
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS." \2 H5 D4 Y, ? x) }& b5 r
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF4 j- c% l7 p0 }8 _# R
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.0 N; P/ Y4 Y0 E3 V6 M# a. \7 y% m! [8 z
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE) z, x+ d4 y' q2 y& ?
- ;;; UNINTERRUPTED OR ERROR FREE.# l2 _9 P! S! G+ e' o
- ;;;* E/ z/ G6 l" _8 W( A
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
( R$ [6 C, I9 N$ v5 b - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer- d/ \; K2 |. c. ]
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
7 Q1 `2 X6 r# D) {& `1 u( Q - ;;; (Rights in Technical Data and Computer Software), as applicable.0 j2 {* `+ C6 v8 V. W4 D) t' M
- ;;;
: S$ _# S" T) ^; _9 m0 E - ;;;.
0 D" U# g+ E- c1 j" ~( b3 w - ;;;
! d* k+ d7 t8 M& s2 E# ? - ;;; Note:4 U0 H5 U9 k6 w! h
- ;;; This file is loaded automatically by AutoCAD every time
9 v$ A7 M( P" _4 E- n o, r - ;;; a drawing is opened. It establishes an autoloader and
) T$ H: i- N; { - ;;; other utility functions.
% w" ?. j! W2 K, {9 u - ;;;2 C4 H, T, e H, O/ g& I
- ;;; Globalization Note: , \$ }' P7 @/ \0 P/ z
- ;;; We do not support autoloading applications by the native 3 Z9 `- t4 v% W1 C; |5 ?
- ;;; language command call (e.g. with the leading underscore: P1 S9 t8 o! W
- ;;; mechanism.)
1 M) S& U% C' I$ Y5 D - ' P) O2 _4 b& k4 H8 m) }
+ q' {, ?$ e* n7 K3 r/ N; ^' A- ;;;===== Raster Image Support for Clipboard Paste Special =====4 p z8 n: i, }, x
- ;;
8 E2 ?' a: V1 [! ~4 Y3 }4 y - ;; IMAGEFILE
: d: M% \# P2 T: [5 J5 T( h - ;;
, ?6 c* `" X0 U' W4 L0 Y - ;; Allow the IMAGE command to accept an image file name without0 B& N! [$ r1 @- M4 W3 A
- ;; presenting the file dialog, even if filedia is on.4 t3 i" R& H% n4 u$ [& N
- ;; Example: (imagefile "c:/images/house.bmp")
$ G2 X7 |9 U, u6 V: C - ;;
0 x% {' ~& N* x& s5 I3 ] - (defun imagefile (filename / filedia-save cmdecho-save); [4 |/ D G& u, G
- (setq filedia-save (getvar "FILEDIA")) I2 a' v6 P. Q3 I& F G0 {
- (setq cmdecho-save (getvar "CMDECHO"))( N1 O: B' i0 |- E$ X- o% a
- (setvar "FILEDIA" 0)
! R2 B) v& c3 w2 L: k5 ~3 c - (setvar "CMDECHO" 0)
/ M' F" U% Z& T s2 m - (command "_.-image" "_attach" filename). q v. r1 v) o' V
- (setvar "FILEDIA" filedia-save)
7 w$ o, q' J: r: I. ?9 M - (setvar "CMDECHO" cmdecho-save): V7 Q( [0 W' ]2 t$ c5 l; D, h
- (princ)
- ?- ?( r& B; g4 e3 C - )/ r$ U2 l% }: E* E I$ v N/ e. R) m/ f
- * j6 _0 f: ?; T* B$ B* k
- (defun c:zx () (command "zoom" ".5x"))% h7 T- i' f, V; ]
- (defun c:zz () (command "zoom" "p")): ^5 X7 I' ]" {: V& ~
- (defun c:za () (command "zoom" "a"))
3 o$ m$ Y1 ~7 z5 u) J - (defun c:zd () (command "zoom" "d")). C$ ]' C- n" f1 O+ x
- (defun c:ze () (command "zoom" "e")) `8 N" a( g5 r2 b
- (defun c:zr () (command "zoom" "" ""))3 r) o- F! @5 @. ?; g R) w/ v
- (defun c:vv () (command "ucs" "v"))) ?5 _4 k* L7 V( [! p
- (defun c:co () (ssget) (command "copy" "p" "" "m"))
( w0 J# a, Q1 [ - (defun c:c () (command "circle"))7 g/ W7 Z# s# j( {* v, a" c
- (defun c:rt () (command "rotate"))
1 K- m* d- i* ^* w, [ - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
% t! o; m. b) o! G6 n9 x, }7 x - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))+ l6 b, | L% u9 ?( g3 t$ j
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
: ^/ a% ?9 a6 V+ U. o - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
1 D+ v4 ?9 F$ o3 {; z0 u - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))$ q- q; _) x4 l
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
" B8 k- \$ Z8 I+ ?4 Q4 x - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
, k- O1 B1 r* W, t; u4 z8 W" p2 K - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))8 J" P7 D; S; R2 J# C
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))7 T3 e; b) |6 Q+ Z Q
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
' t/ `, H6 @2 U/ u# c/ K( M - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))' m- Z7 E+ k |$ i( Y6 `
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y")): s) o R2 R) T
- (defun c:fd () (command "find" "p" "" )(princ))(princ)
7 U% d0 A, `7 d2 L9 o
# R C, `6 D9 R- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)( H$ u8 d0 X1 c9 D/ e5 P
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
) I% ^7 ~, \& r/ t - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
( T* H9 N$ b1 d' O4 ^$ X - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)' Y; `, v/ v# {
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))1 ]; g! r) F0 Z& R7 s
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
, t4 X9 l% A! f+ I/ u - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
- i: W' _+ I/ r. f' [! j - . |; L+ r8 B8 ~
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))' h* _3 n$ Z R% p" E+ M
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
$ |/ J' Y* G7 |7 v/ P, ^ - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))% v0 V; ?; c) u. i/ L+ B
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n")), r3 P4 v9 Y) X% k8 P
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))8 W4 ^0 C7 C, W; c5 t6 F" y. ^5 C
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))# T3 G; D' B) W0 T
9 L8 u, m5 {, v! g$ N- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
- v5 U7 F' R" n$ r: h - 3 t4 U# v& o1 \
- ;free lisp by cadviet,cd2k448 r8 p8 c( r# ~2 u( g. N* D; h R' z
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
; m* q" L7 K" O2 m' r) K1 |% o - (defun c:FTEXT (/ ent tstyle )
/ i+ R4 U6 }- ^) J2 D8 K7 ? - (command "undo" "be")
+ c* G8 a. e' D; ?# S9 X - (setq ent (entsel "\n Pick text :"))
7 D+ X+ F6 q: |) @, e9 l* d7 ~. a - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))& ~0 ?$ u1 g* Z8 {: j
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")* y9 e9 i- z/ B
- (setvar "TEXTSTYLE" Tstyle)
- c. ^9 [. O# x2 i, D! |$ G - (command "undo" "end") ?, e0 `3 E1 y& ]
- )
* ]/ r' }/ b+ l9 Z* o - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
, m8 K: K0 a: e; X2 b1 n* A$ ?' X - 6 T0 Y' W$ ~4 b$ J; J/ `
- ;free lisp by cadviet,cd2k443 c" L( @1 ~ |8 N2 \- [- V
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
0 W3 r& ]' c. m - (defun c:Fvnh (/ ent tstyle )
; }& m. V+ u7 h+ `" E) Z8 q/ d - (command "undo" "be")7 c; |5 {. t3 z9 O0 U% m
- (setq ent (entsel "\n Pick text :"))
- c- O1 ]2 R a* B- T1 L2 X7 Z - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
4 k. |- Z& [5 K, @% D8 v: o - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
z( N F" L) b, ^ - (setvar "TEXTSTYLE" Tstyle)1 N; ^8 j$ F' q( @
- (command "undo" "end")
' o! R" b1 {1 u8 | - )
: W4 ?- Q3 @) K4 D% n - 6 M( x, y) ?0 K
- ;free lisp by cadviet,cd2k443 C, c, g5 d& Z* t6 R. d+ s
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
( L: i; ^, P+ j1 r6 g( o - (defun c:Chbg (/ ent tstyle )6 a9 [8 R5 {$ K; J# U. t
- (command "undo" "be")( f1 t+ O8 j; G" S8 j
- (setq ent (entsel "\n Pick text :"))
7 w h3 @6 g: I; j( g4 N - (setq TSTYLE (cdr (assoc 7 (entget (car ent))))); g: j) \: v8 e- \
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
! E" V% L- M% ]# q) x6 g: N - (setvar "TEXTSTYLE" Tstyle)
- K( ^0 s5 H% z+ w) Q - (command "undo" "end")
0 b' X7 N; R; ^6 q5 V& r/ \ - )
% L+ I6 R V* w
/ h4 A3 A, t) E& h- ;free lisp by cadviet,cd2k44
- `* d/ C; D R - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
6 p8 I4 D- N( _- t+ @" |- h$ b% U( F - (defun c:Chsm (/ ent tstyle )/ w) F! i' ~/ X5 k0 c5 R! x1 \2 g- j
- (command "undo" "be"), O! c9 m# | L- ?
- (setq ent (entsel "\n Pick text :"))1 w& }: W$ I% q* ]- U v8 e# `
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
, E8 D/ b' T* @) r2 L! l - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
, N, h& H" Z" F7 v2 W3 d7 ^+ t$ S - (setvar "TEXTSTYLE" Tstyle)7 S) z0 C4 K5 k7 U/ s1 C/ B
- (command "undo" "end")! o4 @3 M2 \- e: ^" O! B
- )
7 A7 D( Q* J7 r; b! k, D( L) n - 0 f9 G! L) ]) C# m
- ;free lisp by cadviet,cd2k44* s Z2 ?0 }, U
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
; U8 i8 q( g4 L0 V/ ~. N h4 M - (defun c:Fttf (/ ent tstyle )
/ _' o0 Z j5 Z: [( M! b" u - (command "undo" "be")
4 Z0 d: [! j2 F6 d( A; p - (setq ent (entsel "\n Pick text :"))
/ g% ?' A2 [& w: [! U - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))0 x% p' h$ U6 k& {. _
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
7 U# C* |7 ]" W3 t; H; \ - (setvar "TEXTSTYLE" Tstyle)
" {8 q+ ]7 t& b5 q9 y - (command "undo" "end")% z4 q9 S* r- D
- )
# n+ I& c) H( K1 s- C6 G$ F- d
1 |1 Y$ X! ?/ ]. j! v- ;;; ============================================6 `/ }* i/ `; Z1 K: w) m
- ;;;, d; n/ Z* O& X/ [" p' S( F
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000
6 D9 J' C- b4 b9 t) U" L& U: T - ;;;
/ a. t, W( A2 ^ - ;;; ============================================
/ m0 W) w/ f7 _5 i
% c8 _) y; F! B: t9 {- ;;; ============================================& f8 Y) T5 J3 L
- ;;;6 C1 ^- V# h$ W
- ;;; CREATING FROM AUTOCAD2000$ p6 c& O( q# W& U8 R
- ;;;- }) t& H1 i! M3 a# {
- ;;; ============================================; j2 B8 M2 X4 @! }$ ]$ P/ [
- / s m- u6 e, K) Y9 j' _* \
- (setvar "INSUNITS"4)
: n$ j$ _, s1 Y6 \" |! V - (setvar "ANGBASE"0)3 k$ |. a$ S( i
- (setvar "ANGDIR"0)$ W! A/ U4 G! m( r: @8 a7 N
- (setvar "AUNITS"0)$ q, ~9 O u' n5 l( v! h
- (setvar "AUPREC"8)
! \$ v) c. d9 L) I - (setvar "LUNITS"2). U, }$ [1 d, K# w; K6 R/ f
- (setvar "LUPREC"8)
. U) q# |, |+ E3 Z( d4 T/ h - (setvar "ACADLSPASDOC"1)
( v; |6 k4 g, m9 B- B, B' y% \+ t* H - (setvar "pickbox"5)
/ t" W# ?% T+ n, J# o - (setvar "blipmode"0)( D+ O/ A& a5 U1 E. ]1 J" a
- (setvar "mirrtext"0)9 F) Z+ S- [3 B, p( u l
- (setvar "cursorsize"100)% p0 s2 ~# H; A& k1 r
- (setvar "ZOOMFACTOR"75)
+ i/ f4 r/ q& `0 R4 ~ m - (setvar "LTSCALE" 10)9 \1 t2 e5 ]% i0 |% C" K9 C
- (setvar "lwunits"1)
+ l7 }% X8 f4 H9 c - (setvar "DIMBLK" "Closed")" m) ?. M; U0 `' n2 a u
- (setvar "DIMGAP"0.0693)
$ `5 d- @! |: N1 _* f1 G# \: a3 ~ - (setvar "DIMASZ"0.20)9 k+ |. i3 c- S& y2 ~% f
- (setvar "DIMCEN"0.2)! H( Y( n" I. ~( g8 W- M6 ^
- (setvar "DIMDLI"0.1)
- X# a. z2 G' ]+ b( l$ N* A - (setvar "DIMEXE"0.0693)7 |7 H2 g& N) r7 A' Z9 [
- (setvar "DIMEXO"0.25)6 \$ t1 g: T; @% X! o9 @& e
- (setvar "DIMDEC"0)
4 s' }% i8 i/ g0 l, v+ r - (setvar "DIMTIX" 1)* G6 k0 X1 V% c. g# z' K+ M; N
- (setvar "DIMTXT" 0.099)
, ^, E& i/ G! |% M7 r - (setvar "DIMCLRT" 7); |2 ~3 g1 f8 I1 r4 t
- (setvar "DIMTVP" 1). t/ M0 u- i, d3 {0 K3 b
- (setvar "DIMJUST" 0)
' c$ H7 g- P9 b' X - (setvar "DIMTIH" 0)
0 D$ J$ y+ Y8 x1 ^ M - (setvar "DIMTOFL" 1)4 t% @3 @4 y' r% h7 a3 ~
- (setvar "DIMSCALE" 1111.1111). o D! t' N* l; }: N$ ?1 [
- 0 G; c' T+ A/ S7 f& q6 \5 C
- 6 j# }& W8 P. u) _& B
/ J" m# T( O) {- (defun c:zp () (command "'.zoom" "p"))6 X2 _% O9 {1 \
- (defun c:zz () (command "'.zoom" "p"))8 c) F& m5 z) Q1 V. S7 |- `
- (defun c:ze () (command "'.zoom" "e"))4 G9 @; `; X0 ]5 b$ I# C( f
- (defun c:za () (command "'.zoom" "a"))
- V; c6 Z( C. U* _" b0 \% F! u( z - (defun c:zd () (command "'.zoom" "d"))" C0 ?0 t! T9 A; t
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))/ J Q4 E: \2 W( y' Z6 t, P* M Z- S
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))% V- Q0 t- s7 k2 E/ J
- (defun c:de () (command "ddedit")(princ))
% M& ?+ T7 b1 u7 d7 G - (defun c:dda () (command "Dimaligned"))
" e. X- t9 S7 G- R - (defun c:ddb () (command "Dimabaseline"))% Y6 n) X' N+ i9 i2 f0 X3 @/ b
- (defun c:ddc () (command "Dimcontinue"))4 T r( _0 [; T& [
- (defun c:dde () (command "Dimtedit"))- i- W* |% p) J1 h8 H% h; c6 b
- (defun c:ddf () (command "Ddattdef"))6 x, B7 c+ }% F, F: g" x# u& u- J
- (defun c:ddi () (command "Dimdiameter")). m8 R5 M$ y1 k0 P! c) s
- (defun c:ddl () (command "Dimlinear"))
. D2 V V% x4 }% f# q/ g - (defun c:ddn () (command "Dimangular"))
) q, O { x- A- Z4 ` - (defun c:ddo () (command "Dimordinate"))8 I1 F9 m. }+ g3 g. V
- (defun c:ddr () (command "Dimradius"))
' ]$ S. R8 A6 } - (defun c:dds () (command "Dimstyle"))
! m9 `) b, y3 n. K+ F - 5 q' @* L2 z+ |
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ) e# G; C" [) j( f+ u
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
) W% L$ @% V4 @: K4 m) E4 e8 q# f - (defun c:UU () (command "dim1""update""all"))
3 C3 o; a6 A+ K$ b: j q) T# [ - (defun c:ded() (command "dim1""tedit"))
6 o- y" ]7 C7 E3 V7 C - (defun c:da () (command "dim1""ali"))
8 _. d6 k8 j' N9 ] - (defun c:dll() (command "dim1""l"))
1 ~& S' T \* \0 m0 X l - (defun c:dan() (command "dim1""an")), P# \7 E! B, e% v( U5 V/ s
- (defun c:d1 () (command "dim1""ra"))
4 y; T X |9 N2 X8 Q: A: B9 r - (defun c:n () (command "dim1""new"))) ]8 c+ X# [0 U/ r" E, |
& N- B, z, ~5 E" U8 x- (DEFUN C:PE () (COMMAND "PEDIT"))! G/ J8 a6 m) u: F: f
- (DEFUN C:PL () (COMMAND "PLINE"))) x% _$ l9 }: o, F* y* q
- (defun c:dd () (command "dist")(princ))
4 q4 H' S. b1 _( E; @( a - (defun c:w () (command "pedit" pause "w" "au")(princ))
# R1 y6 q h& f1 ] - (defun c:pg () (command "polygon" "polygon"))
+ }! ?! T. x+ a( k/ j - (defun c:el () (command "ellipse")): v" \: l. H9 w* a" m
- (defun c:xe () (command "explode"))2 c) m. T! W- k6 v# p% a
- (defun c:eex () (command "extrude"))
1 i. Y6 J! S: G3 [( j - (defun c:xg () (command "xline""a"))
" K2 E( ]! a' g9 E! a6 ^# k - (defun c:xh () (command "xline""h"))
1 M2 ~3 D$ e1 u3 d) u* O4 o4 b - (defun c:xv () (command "xline""v"))2 ~# q% q# s+ s7 A p4 Z7 ?: G
- % z& ~0 R4 H( c, @0 u
- (defun c:oc () (command "osnap""cen"))
* F5 P; p L5 F+ J3 U0 ] - (defun c:od () (command "osnap""nod")), z, T' a0 o$ U) q9 w4 m& k
- (defun c:oe () (command "osnap""end"))
8 v. b# K" c' m3 M - (defun c:oi () (command "osnap""int"))
k* x; K, x6 r# K1 C% ] - (defun c:or () (command "osnap""per"))
4 d7 J! w; N4 V' B& T( _7 J - (defun c:on () (command "osnap""none"))
D8 M& l; y& K, I0 u+ n( `' ^ - (defun c:oq () (command "osnap""qua"))2 b# x% a8 n7 C' w; R3 |
- (defun c:om () (command "osnap""mid"))) `4 L0 e* Q2 ~- r8 E" x5 H/ S
- (defun c:ot () (command "osnap""tan"))( B: }. f% C& v3 M. k" E X
- (defun c:oin () (command "osnap""ins"))
' b7 X1 L) a% Y/ R- O% f3 h( M - (defun c:oa () (command "osnap""nea"))1 _6 a+ G, _" s2 z: N* e
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
, \) x* v5 F! p o - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))0 z, |) w& u/ i( g
- ;(defun c:nn () (command "new" "y" ))
0 X$ q0 K( _) B) r) V. Z
* T8 s4 G3 t( Q2 O- (defun c:/ () (command "limits"))# s9 f. x: _/ i3 w- C
- (defun c:`1 () (command "region"))
1 z) n# D, Y' i) P9 C2 F - (defun c:`2 () (command "subtract")): U) [& M- m" b4 t% A
- (defun c:`3 () (command "union"))5 c3 A$ }+ p, g: ]
- (defun c:`4 () (command "intersect"))
& ~% m/ i: \' ?0 p; b - (defun c:`c () (command "cal"))0 ^( c1 G! c5 ]
- (defun c:`g () (command "Polygon"))/ } R/ c/ g" ]. P. |
- 4 \6 G; U4 t0 `8 Q
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))# @; u: G2 }5 ^$ B" H* X5 r
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))' m0 n; {, U/ T$ F6 {
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)! y% i) b, a6 V1 c
- - K; @' {8 @0 g* o1 J% p
- (defun c:ddm () (command "ddlmodes" pause)). Z) s a) K! X {; f" T
- 0 f8 ^! Y6 Y. l
- (defun c:sha () (command "shade" pause))
1 E2 E& }; [4 C# e, g5 A: d" T
4 q4 v/ M% W$ I7 u- (defun c:sr1 () (command "surftab1" "p" "" pause))
E2 e6 J7 j; u0 j. W3 @7 o/ S - (defun c:sr2 () (command "surftab2" "p" "" pause))- [5 `% Q8 o7 M6 q) W' A9 A
- 6 Z. |7 ~0 c( _8 D0 b
- (defun c:ad () (command "audit""y"))
6 T7 P* z+ i: U" _6 m U, K X. _+ h - (defun c:q () (command "quit"))
; U8 o- [6 ~8 M. N! \- f% L
! U9 z; W$ w- @ W0 h2 r# n- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
6 @7 H" i/ \& Z! |* w! S1 ? - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
( x, g" j. _* K1 |, p# e - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))3 u, C A( I' A" |$ S- |
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
! z: R# N4 p" V+ M" t7 M+ M - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))( h5 U, I! Y$ k4 A: O" G
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))& f% u! I( E" Z+ }) e0 S/ x
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))7 p6 {3 P. S- P& @7 n5 z& A1 p
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
* J7 j& n# b' d/ t - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180")). x9 X$ i# R y. {! m8 H7 s
- : @/ L) B4 B% c
- (defun c:u3 () (command "ucs""3")). f& C! l1 s* e d, n
- (defun c:ue () (command "ucs""o""end"))3 X6 d3 M! d, l1 m
- (defun c:ui () (command "ucs""o""int"))' R8 X9 C& ]& k$ r: w4 a, b
- (defun c:um () (command "ucs""o""mid"))
- t1 S. m' H, ?) m - (defun c:uc () (command "ucs""o""cen"))
. l2 q; x4 H5 o" r3 \ - (defun c:uq () (command "ucs""o""qua"))0 h0 b/ |& J3 Z5 L7 c% d
- (defun c:3s () (command "ucs""3"))9 H# |7 R/ }8 j5 H
- (defun c:sx () (command "ucs""s"))4 v: d7 Z% e- s+ q3 k
- (defun c:sf () (command "ucs""o"))
) y# f0 p' G% ~3 @ - (defun c:sz () (command "ucs""p"))
( \. {; j4 z( J0 f5 W - (defun c:sr () (command "ucs""r"))
3 \4 t3 A s$ M9 x3 ? - (defun c:sw () (command "ucs""w"))% u0 \ A$ }5 _9 T+ x6 r+ X
- (defun c:fv () (command "ucs""v")) }+ B5 [- b+ q, @% e
- (defun c:ux () (command "ucs""x"))0 c3 J+ D' D: d6 Y! J( g
- (defun c:uux () (command "ucs""x""90"))& ]! |- [+ \3 h7 P* l+ k* c, ^& Y
- (defun c:xxu () (command "ucs""x""-90"))
4 j6 V c& \9 h, }; Z8 H0 f) n - (defun c:uy () (command "ucs""y"))
|2 [3 s9 F5 J - (defun c:uuy () (command "ucs""y""90"))7 @& c2 m; M+ P& }
- (defun c:yyu () (command "ucs""y""-90"))
$ v* }; I& M) D4 t( i. m+ Y - (defun c:uz () (command "ucs""z"))
7 o5 n- G+ J6 J; v - (defun c:uuz () (command "ucs""z""90"))
3 `; i) J$ ?0 y - (defun c:zzu () (command "ucs""z""-90"))1 z% M9 B+ P( Q' w8 a2 S
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)* ~$ `1 m. `5 |, ^0 r/ s
- (defun c:ucm () (command "ucsman" ))(princ)
5 l& m2 e, O- a2 c# X' K - $ Q3 L" n7 n5 `. q& J% y9 P
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))' U. F. P5 o+ S( p& |( K( M, F
- (defun c:sd () (command "vpoint""_non""1,-1,1"))
3 [( |" v$ U/ ` - (defun c:se () (command "vpoint""_non""1,1,1"))
9 o/ [, _! o( q* M - (defun c:sq () (command "vpoint""_non""-1,1,1"))
& T/ i& L/ n1 b3 d g" j - (defun c:vc () (command "plan"""))
: t# }8 f& o) n2 ]7 I - (defun c:vd () (command "dview""all"))3 {& j# S6 U/ ^1 X' I4 @; R, O Z
- 4 s3 @1 b3 H( O8 H- V
- (defun c:TT0 () (command "tilemode""0"))' C% H5 j. M7 v. K' N
- (defun c:TT1 () (command "tilemode""1"))
1 Q4 f4 {; E+ q1 l3 v) j
8 }9 ^* T; m# d# o, Y/ ?, Z' \6 w- (defun c:vt () (command "vpoint""_non""0,0,1"))- U/ w, N. e/ j
- (defun c:vb () (command "vpoint""_non""0,0,-1"))6 D, O9 g1 p4 O, I# f" Y0 @
- (defun c:vl () (command "vpoint""_non""-1,0,0"))
' i# ]+ A9 K5 Y' W - (defun c:vr () (command "vpoint""_non""1,0,0"))" V: u5 s' W2 `+ t/ U# r1 g0 C8 G
- (defun c:vf () (command "vpoint""_non""0,-1,0"))
" m5 R) Y& X# g8 o" S" _ q) ~ - (defun c:vk () (command "vpoint""_non""0,1,0"))
# u$ p! c* k3 u! {' c0 U+ q
) x9 q/ a" l: s& G( ], v- (DEFUN C:MM () (COMMAND "MIRROR"))( h0 w+ u: q, T0 d& m& X
- (DEFUN C:MP () (COMMAND "MOVE" "P"))
3 F& _, t# B; T5 P1 b) M' u/ D - 2 l5 h& L/ K3 W& f: [0 b) R5 |
- (defun c:mee (/ a)
& Z0 o. U! t! n& X, I7 b# g - (setq a (ssget))(command "move"a"""end"pause"end"))8 T( A2 l1 I |8 y$ N3 @. I
- (defun c:mc (/ a)5 p/ D) g2 y( M- c( W5 ~9 @8 L
- (setq a (ssget))(command "move"a"""cen"pause"cen"))
R6 ?. p( t g/ ? - (defun c:cc (/ a)
# D; a, b+ ?- [! \( v. K - (setq a (ssget))(command "copy"a"""m"))# I3 N) G7 T ^+ y0 q
- (defun c:ce (/ a)
|5 k+ K! H9 {3 y* Q- D$ i' U - (setq a (ssget))(command "copy"a"""m""end"pause"end"))
: i- q% M8 d! h6 R% J5 h - (defun c:cn (/ a)2 A, s1 R$ C$ @1 z& ^( N7 c* g
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))7 J ^2 _1 M Q! t) ~9 Q
- (defun c:tl ()(command "trim""l"""))0 _% w9 R. H: k5 z0 x5 A
- (defun c:tf (/ a)( J! w6 B" I/ o* k- h; }
- (setq a (ssget))(command "trim"a"""f"))5 ?: a4 B1 S' {7 R( s( y, K' b! i H( l# U
- (defun c:el ()(command "extend""l"""))3 l5 [8 w+ H q0 Q8 R, U2 Y
- (defun c:ef (/ a)
1 `4 s3 u3 o. s7 o; e8 X - (setq a (ssget))(command "extend"a"""f"))8 g, [3 p& }3 V- K! p6 N U
- 5 b+ E) W. b- @; p; b& d3 G- L
- 2 U2 X7 _4 j- t, e3 J6 S" h' n
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
' t& r) T. {# [+ j" Y F - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))9 j' _; Y( S4 x
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
' C- V/ W2 h4 e C. Y' T* Z: A - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
" [& `5 T4 ` T8 f5 b# \ - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))1 P4 a. e3 l4 ~3 g- R! i
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))+ U5 c4 G: s4 G
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))4 ^8 Y7 ]# M9 A* m' R- T) r8 ~3 w
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
" ?3 q& s' D! {9 @ - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
# |/ T/ j+ V) d7 C3 \7 I3 N" V - (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))8 z7 i7 I. q2 S$ ?, Z: C6 g
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
3 \8 K9 [: @3 ]1 r% w2 [ - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))3 f. `$ W4 r' E2 p
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400")): R w- \7 m2 ?
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
0 D/ C: V9 y, v# \, x6 X* h! j, W7 } - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))* v4 P( X- M3 h. V2 X6 s' S1 n
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200")): i% V4 X8 t3 R$ A; {3 F
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
4 w$ ?1 |% B& V+ k$ R' e% I b" W
7 K$ f6 k$ Z' d) Y: [- (defun c:mla () (command "-mledit""av"))0 L8 X6 K8 r( \
- (defun c:mlc () (command "-mledit""mc"))
# H5 e8 z# g9 b8 p& `' o8 e* ~: n - (defun c:mld () (command "-mledit""dv"))' |* t+ \" t7 J' _; E( F/ N
- (defun c:mle () (command "mline""end"pause"end"))5 C, E6 s, X6 @! \' \% e7 [, E" y/ O
- (defun c:mli () (command "-mledit""ca""int"pause"int"))7 I/ i7 d6 ~0 f$ s& m5 }# r, F) X
- (defun c:mlj () (command "-mledit""cj"))$ l: |1 ]- k% A C# A9 l
- (defun c:mlt () (command "-mledit""mt"))1 M. A- \/ r- P2 S4 x
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))9 J7 y8 ?4 h- _" D Y0 q
- (defun c:mlw () (command "-mledit""wa"))
" t6 x5 L! t/ J/ C) Z - ! M4 x" b* P% |
- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))* Y( H- w# r7 y
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))8 f$ \$ R# D8 k% [
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))2 k% [) I( Z8 U; d5 z" r, z
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
; k7 F1 Q4 H* U - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
, i* }$ M' @* M
2 I7 T' S1 S- k* y- (defun c:p0 () (command "pline""""w""0""0"))
2 ^- k) }0 N# R5 A4 P, Y - (defun c:ot () (command "offset""t"))
. ?" G. i5 y5 o& X$ T# O - (defun c:t () (command "mtext"pause"j""bl""h"pause))
: A7 Z! R! ?0 N7 m O F9 a - (defun c:uo () (command "ucs""ob"pause))
4 p6 F9 {0 k0 S, P- `8 E* X - (defun c:f0 () (command "fillet""r""0")) \1 \% `5 U! _2 b c! q0 ]
- (defun c:fr () (command "fillet""r"))
$ M% H1 n/ s5 ~ [ - $ K; h, \9 W4 t1 b
- ;CHAMFER
9 b# c. k6 v: U M - (defun c:cf () (command "chamfer"))/ k4 [- f! U5 v6 `. ]
- (defun c:cfd () (command "chamfer" "d"))
$ r/ t: z: O# Q; w9 r6 X" V# m% M - (defun c:cf0 () (command "chamfer" "d" "0" ""))! X+ P' n4 j4 R3 L9 m2 f+ ^9 D
6 v$ E& |* @8 s6 {- ;FILLET
$ O% I/ @0 K( o" k! ~0 Z - (defun c:f () (command "fillet"))
, {. a+ s" V9 `5 f$ T0 g1 S$ ~ - (defun c:fr () (command "fillet" "r"))9 M; k; m& W. e% O
- (defun c:f0 () (command "fillet" "r" "0"))
/ H& x, j" H. g% w% ~
% x7 v/ }# H$ q) n$ t9 ^( n2 o- (defun c:OO () (command "oops")). X: }$ q1 O8 J! r
- (defun c:dln () (command "dimlinear"))
0 _2 Q; z+ X# {3 n& w5 ]& Z6 ] - (defun c:dan () (command "dimaligned")): E- x I& `; t* A
- (defun c:ddc () (command "dimcontinue"))
" B6 c/ D& T( x8 ?/ q% [ - ! s6 [+ @* n. x
- (defun c:sc () (command "scale" "auto"))) j1 d+ x. {" q8 K
- (DEFUN C:XO () (COMMAND "snapang"))
/ B/ f1 P+ s6 A$ ^! ? - (defun c:cc (/ a)3 v6 q8 \3 g! V6 \
- (setq a (ssget))(command "copy"a"""m"))! L8 [) O, g6 y4 o
- 5 V6 o1 ^$ C# G E
- (defun c:PJ (/ a)
C, f0 t/ }8 o+ {3 n/ U - (setq a (ssget))(command "pedit"a"""j""all""y"))
1 T9 N- J6 O' P; k4 `+ K - (defun c:JJ (/ a)
* `; o1 c' Q! c6 Y) v - (setq a (ssget))(command "pedit"a"""j""y"))
. t- _3 |) |$ S0 k1 `7 H* C+ o - (defun c:TN (/ a)! f9 m" P. H/ U/ P
- (setq a (ssget))(command "change"a"""p""T"))
8 |; w# j$ T* K9 W2 f. Z - 2 L, f, |. C/ F! i; u4 U: R$ X
- Q, R" p$ {1 j1 Y# b8 s% ^
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
1 T. f8 A, }: n% m& S
- y0 b! M' F# a' ?! w- (defun C:IB ()(setvar"cmdecho"1)
- {! P) S! t1 O9 j+ U - (setq pt(cadr(entsel"\nSelect Block:")))
7 `' V+ x# q+ s& Y; l, D - (setq e1(ssget pt))
3 t2 H+ t2 V# k* @1 [2 j$ |4 X% o - (setq e2 (entget (ssname e1 0)))
4 s0 X/ i/ j8 k& v) ~$ ^+ W" p - (setq blname (cdr(assoc 2 e2)))
9 @; D# |( U# Z X5 T' p n - (setq oer *error* *error* err2)(command ".insert" blname))
% A. m! G8 J6 `: W( e - * F6 H1 K2 a" ]9 T/ \$ H
- (defun c:II ()7 u6 J9 T; x6 t! R
- (setvar "cmdecho" 0)
5 ?2 \# B, }7 q4 b2 e - (setq olderr *error* *error* myerror)2 t, Y j" g9 ]: w3 o- |$ j: s
- (prompt "\nSelect objects: "); r! K* H R2 W# ]8 K; W/ |8 [
- (command "select" "au" pause)
4 `8 m) z$ Q$ L1 X8 ]1 U( e. h$ G+ j - (setq sstxt (ssget "p")7 i( h& w& f0 z! }1 p& i/ K. a
- sslen (sslength sstxt)$ Y4 I) e" ?, }/ \% ?
- ctr 0, h# F% A5 c6 T6 [, z7 B& Y
- )) H; X8 P2 Y7 j/ {- C/ @0 q% G" r
- (command ".undo" "mark"); M4 [% j: ]# E4 E$ z, C
- (while (< ctr sslen)
( \- k& v; C& T# ^( I. P5 V$ s/ u0 t/ g - (setq listxt (entget (ssname sstxt ctr)); M1 I& m% x. |5 p
- txttxt (cdr (assoc 1 listxt))
6 R! f R) B! c, H# ^. {) v$ a& T2 f8 Q7 ^ - enttxt (cdr (assoc 0 listxt))! n3 @- Q: h) V* }. X
- )
/ K* }2 q/ C" U, w6 ~8 S - (if (= enttxt "TEXT"), Q/ c6 e2 r" m8 j( t
- (progn
' B+ O" s" d% X1 z3 K" } - (setq testxt (substr txttxt 1 3))9 n# |5 m5 o) n+ t
- (if (or (= testxt "%%C") (= testxt "%%C"))
' s3 \# S' j& |+ ]5 D - (setq newtxt (substr txttxt 4)); _" |- N M' I/ V3 I2 u
- (setq newtxt (strcat "%%C" txttxt))
5 z+ @: q/ q$ B1 ^+ H - )+ z" j, s$ `, V* u2 \0 D8 S
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
2 z1 n1 X0 t0 I: ]; O - (entmod listxt)
) b ?" [; z( u0 s" I3 F - ): u; B) [1 {! P5 u8 Z/ [
- )
- r1 s4 \+ i: \ - (setq ctr (1+ ctr))9 i! M/ J9 [ Y6 p3 w L4 Y T) E
- )" i# a5 s3 R! X& `* m
- (setq *error* olderr)) }( ~5 M8 Y6 L2 C9 _# E
- (setvar "cmdecho" 1)' J: `6 y& m( {* r p) m
- (princ)+ V+ Y' `$ `/ ?4 o$ A4 T4 c
- )
2 U% X& Y: u$ ~$ W - ; W/ Z4 I2 {7 v. y) D
- (defun c:DG ()
, {" I4 d) `* w - (setvar "cmdecho" 0)
8 g2 o) p+ {4 [4 b4 a - (setq olderr *error* *error* myerror)
5 F+ R+ r8 p i( Z% M0 O, o2 v - (prompt "\nSelect objects: ")
! s& Y v+ {& m - (command "select" "au" pause)
& b. Z# n9 D$ M8 n - (setq sstxt (ssget "p")6 Q4 M! j+ O U. W6 p" Z; `
- sslen (sslength sstxt)2 [5 G! j9 x6 _: t0 }: y) W+ S
- ctr 05 L z* L* y4 u0 n( ~! F H1 E
- )
: h! ^; E1 R5 x- O - (command ".undo" "mark")+ {0 D. {' U. N$ Q$ ^' C
- (while (< ctr sslen)% v# g; U1 t+ \: c# N7 N4 O, B
- (setq listxt (entget (ssname sstxt ctr))+ A+ T6 m: M$ O8 q9 D. K
- txttxt (cdr (assoc 1 listxt))9 N* i) s* @, L+ S9 d/ s. x
- enttxt (cdr (assoc 0 listxt))
6 U; n6 k0 F& n' G9 O' q - )
3 I/ F/ @" M$ t' u# y; c( k - (if (= enttxt "TEXT")* z6 K; V! K6 z$ o
- (progn1 J1 m& `; D2 S# ~+ }: N
- (setq testxt (substr txttxt 1 3))
+ r V& }5 h% m& o3 L/ e - (if (or (= testxt "%%d") (= testxt "%%d"))
1 w9 [5 o( J+ Z' F - (setq newtxt (substr txttxt 4))
' ]. y9 {: S9 m- z: y2 L4 M - (setq newtxt (strcat txttxt "%%dC" ))
~& @8 T+ ~, { - )% D9 u7 t9 D! S% u
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
3 L/ y8 L) q" i: o; { - (entmod listxt): \* e0 z( m, q0 z. I
- )6 X# J' }/ d1 L. V6 f* _9 i6 \
- )
) X% z0 m$ x5 T T; ` - (setq ctr (1+ ctr))
9 a" Y- x4 y. G0 ~9 X - )9 \& g8 `: p. X: i* x0 W
- (setq *error* olderr)
7 ^1 E, {! W( X$ j. p3 m - (setvar "cmdecho" 1)& k' Y7 i- B% W8 a3 D
- (princ) J! m- k7 i6 W* Z8 j
- )
% x- u5 w8 M7 u2 M# R1 E" r - 1 M9 H% Z1 b$ \! F3 G, T0 `
- (defun c:PI ()6 t* Y$ P9 _4 V; P5 K9 \, E
- (setvar "cmdecho" 0)+ }$ C( R2 k+ v6 p9 i- ^
- (setq olderr *error* *error* myerror)" j. L3 m! M) M5 g
- (prompt "\nSelect objects: ")* g7 r+ R0 ?! L
- (command "select" "au" pause); y8 \$ t" B8 L b* m
- (setq sstxt (ssget "p")
. O) L8 n) C* C, s - sslen (sslength sstxt)
, O: k: `* S7 ~5 l5 H - ctr 07 P! O. d; G) j! Q8 _; }
- )1 c3 o+ W6 Z' O) D( x: W, X0 `. S
- (command ".undo" "mark")
* }2 W# q9 F! S$ Y' S - (while (< ctr sslen): z# G4 K7 F v0 U- }* f. C$ t, z
- (setq listxt (entget (ssname sstxt ctr)). A% d7 Y* d: q: k
- txttxt (cdr (assoc 1 listxt))( X! r- c; x6 r
- enttxt (cdr (assoc 0 listxt))
/ K2 p2 k7 a) O6 ?+ I3 S1 W& h - )
% b4 X, n2 x7 A9 a4 w - (if (= enttxt "TEXT")
; O* y& q- _. q5 P - (progn3 o& i8 i3 M8 s/ z& {2 `. U
- (setq testxt (substr txttxt 1 3))
1 K, @: o7 _6 T8 Y8 M0 m/ B - (if (or (= testxt "%%p") (= testxt "%%p"))$ A! T- z3 r. X: ~
- (setq newtxt (substr txttxt 4))
, j- m* q, U' Y% c* }8 E% N - (setq newtxt (strcat "%%p" txttxt))3 G l* L7 c' w/ \
- )
/ p" N8 G8 w* k) G2 J- A - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))1 I A q3 }. ^9 C3 y
- (entmod listxt)
0 N& W' C8 _6 O5 i" k# ? - )
1 N" _% p/ L: L: p: Y - )
, }3 h% L' R$ ^0 Z& q+ m2 w - (setq ctr (1+ ctr))% M6 u0 \% l/ {1 B" V
- )
( k b/ Z: g+ ]% e, Z - (setq *error* olderr)5 y' q( G4 z2 @ y R5 ~
- (setvar "cmdecho" 1)0 D: R9 }6 n# E- g% p! s
- (princ)
. Q1 v0 T- ~* I& i' v" Z - ): e9 E) j, s5 J; |7 {& c; u" n
! b, M3 R( k& f* ] G- (Defun c:CB (/ a)3 v0 N- T$ t6 l# q( s- ~* W! N
- (setq olderr *error* *error* myerror)
1 i+ J2 t3 g4 G1 S/ a - (setq ocmd (getvar "cmdecho"))% Y) o$ ~0 s$ x
- (setq oblp (getvar "blipmode")). j x+ _4 F# I
- (setvar "cmdecho" 0): H4 ]3 |2 U4 E' d: V, z- J
- (setq a (ssget))
( `5 K) i; O) N - (command "CHPROP" a "" "C" "bylayer" ""). r4 p; l( D$ }2 `4 S
- (setvar "cmdecho" ocmd)+ K# m9 G+ T$ @0 B5 ^: C& u+ K
- (setvar "blipmode" oblp)5 Z- d4 s1 M! K0 m4 \$ V
- (setq *error* olderr)$ [; D0 u( t2 j
- (princ)
4 t4 p7 s: X2 A; W& ]0 W. ^4 z* V - )" ^# m5 K7 C5 ^* ~# Q7 e' t8 o
8 [1 x4 I$ E- [9 L& v$ h, P4 O, o- (defun c:LCC (/ co43 obj23 la23)! \- _3 q: S% O: f
- (setvar "cmdecho" 0)
9 Z9 Y% b* Y E/ y9 M - (setq co43 (getstring "\nNew color : "))
x7 y8 H. D2 [# T - (setq obj23 (car (entsel "\nPick object on desired layer: ")))
5 H- ~1 R: ?- l8 Z+ W( B - (if obj23 (progn
; g# ] K! Y c+ a+ U3 r9 | - (setq obj23 (entget obj23))
$ Y$ n! n ?/ I3 l( F: n - (setq la23 (cdr (assoc 8 obj23)))* H6 x I) M7 D l/ `2 k
- (command "layer" "c" co43 la23 "")2 k% U1 t5 T$ f5 Z
- )
( [3 k( y: N; C5 Q7 r - )$ ?) L0 ?: H& _
- (prompt (strcat "\nLayer has changed..." la23)): F, K5 x+ t P L* W/ B5 t" F
- (setvar "cmdecho" 1)
1 w# d) A9 O. h. _0 \; R. v - (princ)
& U j0 H; X! k6 ~8 @ - )
/ P6 J% z, t n. m - H! V& A7 ]4 ?. V; K
- (Defun c:RP (/ a)4 s' [1 F- n6 r9 ?. F
- (setq olderr *error* *error* myerror)
6 R l( ~4 O. h& h( S. k: j" P1 Y - (setq ocmd (getvar "cmdecho"))
& @5 r5 w, K2 _/ r1 K" I - (setq oblp (getvar "blipmode"))+ \# P: _! u; K+ B/ Q6 M9 r1 X- a
- (setvar "cmdecho" 0)
2 W6 E& E7 H8 \& Z$ ~ - (prompt (strcat "\nUSE: Delete object(s) belonging to"9 P* ^6 V. Y5 g3 }
- " the layer of the entity picked...!"))
. H' ?8 k6 e5 |% g$ k% }9 m1 v - (setq a (entsel "\nPick the entity with the desired layer to delete: "))
3 v2 d7 C, e1 _- y7 D - (if (/= a nil)
h7 `+ a3 r- E - (progn (setq a (cdr (assoc 8 (entget (car a )))))" h( D+ e" _7 d. x8 u$ p7 p
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
4 W* i- s- C5 q2 b; m - (prompt "\nNo entity selected!"))
5 ]$ R' ]) v" O7 f* }0 r' _! g9 G) l2 x - (setvar "cmdecho" ocmd)
; g5 d2 F6 A: t, C4 s+ \, B - (setvar "blipmode" oblp)8 m8 ] U( P' Y, G; m& c: `
- (setq *error* olderr)9 o4 j3 @ `+ n8 D
- (princ)
3 O1 u* b7 X4 j- d) m3 @6 V - )
9 ]# y. O; a2 [ - - o4 F+ U" g5 |$ p; I4 Y
- (DEFUN C:WL(/ SSET NET SSL M)( z! ]) S, a8 b1 i& i/ E
- (PRINC "\nSelect lines :")
) a/ z/ g# n( C6 b; s - (SETQ SSET (SSGET))
, N! V& V6 w8 f/ {" o7 @ - (IF (/= NIL SSET) (PROGN, }2 |7 }" V. [! w2 ?! D0 |* v: v$ g
- (SETQ SSL (SSLENGTH SSET))& `$ Y* p4 R @
- (INITGET 4)4 M- z! a0 `. J$ _1 L4 I
- (SETQ NET (GETREAL "New width : "))7 o+ O4 H7 W5 J
- (IF (/= NIL NET)0 ?/ s% c b: M" C8 e8 r! N, Z& H! V
- (WHILE (> SSL 0)) A e9 \8 [" n2 s0 }
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))6 m, K9 {# \+ E3 y: D5 X
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") ( {8 ?5 M" \8 A3 K. s
- (COMMAND "PEDIT" M "Y" "W" NET "") ; z7 B' ]! \* Y0 k" ^) R! Q) F
- ) # G0 F5 R* p5 [0 L
- ) . C1 F) P' q4 @0 m. Y
- )))& X5 b) G2 `% g0 J
- (PRINC)3 x/ }+ L* Z4 Q3 C
- )
* v) T2 X3 E. X
# ^# e# ^+ i$ E2 z1 ^0 R- (defun C:MML ()3 k# r) ?/ x$ |* Q2 s
- (princ "\nSelect objects to move to another Layer.")8 J5 T+ J0 O1 O5 r0 q
- (setq ss (ssget))) t. `2 m7 g2 \8 V# Z
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))2 l& B* Y3 Q F+ A
- (setq counter 0); z: H- }% ^! b! e% H
- (prompt "Moving to layer.....")(princ ul1)
- I1 D9 h6 B3 v - (setq e (ssname ss counter))' F, M; v0 p$ X1 y& }
- (setq l (cdr (assoc 8 (entget e))))
( g( d0 F6 w9 Q5 g - (setq S (ssget "X" (list (cons 8 l))))
6 N! i; |8 e/ B" W& a5 m8 r* o - (command "CHANGE" ss "" "P" "LA" UL1 "")( U) ]7 Z1 K9 i' \9 X' p
- (setq counter (+ counter 1))* o! s5 S; ]- c3 @
- (princ)& X+ H$ i% ?9 e+ O9 m! A' Q) \
- )
|: ^- Y4 \' d. y/ m$ e. s
. b9 }# ^: i5 G% L7 e- d% s/ \- ;;; ================================ GHI CHU ============================; K' Y: q% F8 X' A$ l
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========6 n' w& @6 }: E; t) W" ?! Y
- ;;; =======================Thuong Dung Font Romant.vnh===================5 Z4 ?6 M7 H$ v0 ]1 B# w
- + H6 n- {2 c8 j
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
. h- }( T" {0 j: @, | - (setq oer *error* *error* err2)/ j1 g9 F( w! K# |
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")2 H4 }$ k0 q R* J$ ?% V0 @
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
L/ c' Z" N- Y/ p; z! |: ` - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))
8 \3 j0 c7 h: [/ Z8 t2 c* t/ ^ - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
; a2 S! j, g1 e - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))! K& g. b% s3 \- t: ^
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))
6 J0 Q2 d* b+ m8 l5 ^ - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
- P0 L, z, l/ J- K - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))6 w1 O! s. {" w7 L/ c% U
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))/ S8 B: y3 K1 `0 g9 Z
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`")); h; U4 k0 w. \" t6 F
- 8 w9 d) [; v! L
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
# f: b3 n/ @; R' ^; y& {5 _) { - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
' c" ]. M# [ S. C8 Y4 A - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
1 u: g, Z7 @% q4 _+ Z6 ` - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
# ?* X! d( `! t5 |4 i/ l6 _- \ - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
/ s, ]- t& B+ N7 V% U, i& ?2 ]& G - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))) q& z! d) Z; |
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
" L6 q6 R8 }1 X1 _3 F- l# D0 k+ F - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
2 ~8 u. C, o; V -
g! |& B0 ]0 ^0 c" q7 q - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
4 i/ l+ c) p3 s - (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
" E% c5 N2 a ` - (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))( M% L' r, Z/ c
- (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
; z# n5 t H4 R" \2 m3 w& A - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))+ y6 |8 T. g7 {$ a5 e% W2 h
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
( A( `( h6 m5 z& ]3 O! [1 c" Y - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))9 J2 E. ~4 q' Y
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))" f4 a3 J) d: D
- (setq pta (getpoint1 u8 g( T4 r% Q5 A
- "\nPick first corner. : "))
; k8 i$ s# b% e6 G$ x0 f - (setq ptb (getcorner pta
! n5 {# m5 ~3 J5 `! J) B: W: n! X% ? - "\nPick second corner. : "))
# Z$ B2 q4 l! R - (setq ptc (list (car ptb)(cadr pta)))
$ d0 W K6 A7 J$ R# d - (setq ptd (list (car pta)(cadr ptb)))
: Q+ }1 e0 A' U3 A5 | - (setq ang (angle pta ptb))
9 i0 i3 f) J8 q - (setq d1 (/(distance pta ptb) 2))# ], ]7 J3 k& I: X- c- E. n$ d
- (setq cp (polar pta (- ang (dtr 0)) d1))- s# S$ O3 ?9 F
- (setq X (distance pta ptc)): e8 m( j6 j7 o& O* |
- (setq Y (distance pta ptd))
' z$ L: X3 g2 C4 u% S% y6 h - (setq X1 (rtos x 2 1))2 e+ Y. b* U2 s p4 v. p# c
- (setq Y1 (rtos y 2 1))/ m; D% K! M6 J* T* T- H
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))' N4 F4 R3 q" Y) M# h
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
- f' d# ?4 x* O& `4 R - (defun dtr (angg)+ z# U" J9 h4 q
- (* pi (/ angg 180.0)))& W, z4 _! E$ c% ~+ [$ V \
% R9 r2 Y9 a, z3 O6 l- (defun c:WS (/ pta ptb rmsz pl1)3 e" N" f% K; g: n( r! L ?
- (setq oer *error* *error* err2)+ `! Q4 ]) D4 P' M _ z
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")# _+ I8 z5 }# X! a
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))5 F0 L# H) g7 x* g7 u# k) _
- 2 b7 C3 T. r, P& O' r- B$ a2 X
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))9 v9 g( r* }# e4 K- Y
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
2 ? q& H! f) i- F - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
; H/ T, z7 ~( W) L0 K/ m' R - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
1 y/ }& Z0 n8 { j - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))' Q. ]) w, o# g# _/ T
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))6 f$ K. b" D% m$ }' t
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
0 }6 Q; F1 P8 Q* u2 f
/ D) D3 y- I- d0 s- (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"))
" L/ O& k6 X- M/ ~( @ - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100")), } ?" W6 E1 x& O
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
, D9 q8 U3 b1 J% z5 I: c4 ], g - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
- `6 @" t4 i D1 v - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
5 R. ~3 M; i" ?: s2 r9 ] - (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"))5 D: J. A5 d5 i, w! }
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
' H" M1 R9 w/ C4 t7 ?4 B# F - (setq pta (getpoint
5 d9 X( T( n% k p$ I0 x P - "\nPick first corner. : "))( m3 `/ ^# M0 {4 q8 }4 z% H: A
- (setq ptb (getcorner pta
8 o3 E7 P, k. t* h8 S - "\nPick second corner. : "))5 y; W* `& ?* W$ w' k1 e
- (setq ptc (list (car ptb)(cadr pta)))
2 \" l* \& p. t5 [4 } - (setq ptd (list (car pta)(cadr ptb)))
( M( A ^* t7 o0 W% U - (setq ang (angle pta ptb))
; |3 y4 S/ a' [, m! ~- Y( R - (setq d1 (/(distance pta ptb) 2))' g$ z2 y" t& P: T8 h. T6 Q
- (setq cp (polar pta (- ang (dtr 0)) d1))
, F3 k; J3 A4 X( k - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
# A* i4 w( j7 S" m* Y4 _ - (defun dtr (angg)- e3 z. ~; t5 X7 E" r. j$ o
- (* pi (/ angg 180.0)))
8 _6 V& P$ @1 n( r0 N) W. g& f' W5 Z4 p - , g. A5 Y$ x. g* t; t B
- ;;; ================================ GHI CHU ============================
) T. A7 B4 k8 ]" v) z5 s4 k - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========5 f" i, D+ \" l9 Q8 v3 R
- ;;; =======================Thuong Dung Font Romant.vnh===================
4 O/ j* E7 T9 e7 o
) s; I+ G- | B9 |0 m) c0 p- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
- | |3 M7 L. y, u - (setq oer *error* *error* err2)$ {! v3 D, h. i9 z1 U* y
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")3 V1 Z V/ b6 K; F/ z
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))) Y: {/ Z9 `% v% E
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p")); q, p6 ]5 }& l" }
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))- V- k7 U2 ^0 m. Z9 m8 T, G
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))% d4 L) ?# U4 Z; u; o7 m
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))$ |7 ?& W# j; j1 k8 v5 f
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
) E3 h" G/ f# P2 ?* R - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
& U# ?' s3 h# I0 Y$ Q, U - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))% G2 g" ~, Y+ i( {4 Q
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
" V4 H y- R' _) a - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))4 p3 F0 d) J! v( f
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
+ c6 z; } [5 T" o - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
* `) A* a E* p% y: o* ~- n5 |' c - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
# [+ ^8 t( u; k; n$ I. L1 o: g1 W - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))5 f2 d/ B) A! ]3 d. g. H. \
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))0 {6 f7 @+ ?5 ]! b9 y- W( i# @
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))) s3 o, s! Y$ w" F: y
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
! `1 h; I" \" ?2 B - (setq pta (getpoint ~# | l6 e7 S& a V2 t
- "\nPick first corner. : "))
8 D) E# X: _4 [/ j8 a$ u - (setq ptb (getcorner pta9 o1 }6 N' ?- j( p7 b; n' R
- "\nPick second corner. : ")); S4 d2 b6 y0 z& r# f6 J
- (setq ptc (list (car ptb)(cadr pta)))9 A# a$ q; Q& f2 Q0 A
- (setq ptd (list (car pta)(cadr ptb)))
1 f% s+ V: C9 j" V% `( L5 z - (setq ang (angle pta ptb))
3 i' C/ o2 Q2 y5 R% s - (setq d1 (/(distance pta ptb) 2))! f* t' @' W# B- H
- (setq cp (polar pta (- ang (dtr 0)) d1))
$ ] T, }$ I% a, w8 O: o - (setq X (distance pta ptc))2 D2 w' L( E; Y: b' X( C' l
- (setq Y (distance pta ptd))' d" y# J$ A8 _' k
- (setq X1 (rtos x 2 1))
1 N& O9 c0 O/ ]* }) p - (setq Y1 (rtos y 2 1))
4 q& Y" Y% m, y* ?" k- z - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
3 R) @" E4 v2 h \ - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
8 k! O9 ~/ q- G! _( z% Q1 s% T8 I9 @ - (defun dtr (angg), D9 }( U* H7 K8 u% Y4 o) D
- (* pi (/ angg 180.0)))
5 ^! h# D) X/ S7 |
7 u; c# Z( y0 ~- ;;; ================================ GHI CHU ============================: d" z* @& {0 |
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========# b# I. e7 \8 L5 n2 S* ~+ G
- ;;; =======================Thuong Dung Font Romant.vnh===================9 x& g) j8 n. n, n' O
5 B1 l) f" \) h) R/ B- (defun c:GS (/ a b c d)
4 Y# x. v2 `( C/ l$ m4 @) P# H1 g - (graphscr)
7 d S: T `$ a. R* T2 h0 t. f# C - (prompt "\nSelect text to set style....")
- O* t+ `! J, w1 g - (setq a (entsel))
- e2 F9 G6 i' o9 X6 n! N6 p s9 x4 b - (setq b (entget (car a)))
, ]4 d. t6 l9 w" u% o/ y) p' Y - (setq c (cdr (assoc 7 b)))
. J1 Y/ J. s; Z* V K' n$ a) | - (setq d (cdr (assoc 40 b)))1 s& @+ i/ E1 N) r( i$ g- J
- (command "style" c "" d "" "" "" ""))3 T$ w& g$ t+ l: _
- (princ "\nType GS to set text style.")
/ V2 m3 ^' B3 @. M, N+ V2 i H - , v* y; P3 {" d1 d: s
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
; l/ V/ ]( ]/ O" @% X - (setq olderr *error* *error* myerror)
, A' ?) m' _/ a7 | - (setq ocmd (getvar "cmdecho"))
1 Y7 \; f$ T3 x% Z - (setq oblp (getvar "blipmode"))
8 a$ C4 I3 c1 e, Y - (setvar "cmdecho" 0)
% l4 z& @. t5 n4 r( x - (initget 1) ;3D point can't be null
1 Q& C; o# f6 ]8 N - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
* Z; n3 x* A& E+ s: n" d4 C - (setvar "ORTHOMODE" 1) z; p: D& U, V H9 T! P" D
- (initget 7) ;Length can't be 0, neg, or null' p! _) G d! p x( h
- (Setq l (getdist pt1 "\nLength: "))$ `) W- J4 O: h# v8 M' p
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
% |: X! c& e* m; h0 R/ I. o - (grdraw pt1 pt2 2)2 o' Z# | f2 @3 x) |: Q- O1 L
- (initget 7 "Square") ;Width can't be 0, neg, or null6 M4 d; T) Q `0 i
- (setq w (getdist pt1 "\nSquare/<Width>: "))
8 g- Y0 Q0 L8 g, e$ n - (if (= w "Square") ! c! ?. U' ]2 y; A4 b
- (setq w l)
3 `9 g- P$ U9 _: F% |" T& X' X - )
' O& k) x+ U5 [: R! H! ~% Y - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))- t! @% ~5 f- q
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))$ Q' X, M7 V& e O- U# t
- (grdraw pt2 pt3 2)
7 G! @7 B, n8 R3 E8 E% ?0 S) S8 I - (grdraw pt3 pt4 2)
6 C9 S p) k1 Y - (grdraw pt4 pt1 2)
( C# }$ Z; k' _6 l+ d) l/ i - (setvar "ORTHOMODE" 0)
( o7 d& \% @/ S6 O - (command "pline" pt1 pt2 pt3 pt4 "close")
2 [! I2 O w. N, F/ } i- J- Y- x& b - (setvar "cmdecho" ocmd)
% Z( x) R, n T - (setvar "blipmode" oblp)
2 R% ]) H% _! x9 e7 ] - (setq *error* olderr) ; Restore old *error* handler
( h! l2 ~9 |! @- Y+ s! r9 ] - (princ)( J% i! k8 P% m0 J
- )
& O+ w- O. [/ W, P" R( M4 D
I& `$ B6 ?! L. h7 c# p/ y; ~/ O- (defun c:SG (/ ent pt1 pt2 ang)% a" L( D6 [: b- m8 l8 z
- (setq cmd (getvar "cmdecho"))
- c% R3 u7 f$ o# R6 h - (setvar "cmdecho" 1)
- p' E: R S% s. o, Y - (prompt (strcat"\nSnap angle will be set to angle of line"))3 x6 {; Q" K8 a: j( N+ x
- (setq ent (entget (car (entsel))))
9 a& j( H& I+ a8 ~ - (setq pt1 (cdr (assoc 10 ent)))
. i' E l7 n p: z! @* P4 I - (setq pt2 (cdr (assoc 11 ent)))
, c! j- r; ^ T+ X$ ~! I/ H m3 W. [$ r - (setq ang (angle pt1 pt2))
$ _+ B# w' A! c% d* T& O - (setq ang (/ (* ang 180.0) pi))
0 I, N3 V6 u" m- D - (setvar "cmdecho" 0)
- a( N, l4 |0 | ], N* n - (command "setvar" "snapang" ang)
1 u/ W: S2 F$ `$ x* ~& r - (setvar "cmdecho" cmd)6 t! w& N7 p8 j: Q% ~3 c
- )
* ~+ N+ k8 c' h5 m1 G! \% Y, q - 5 r5 l* L: N/ u! k2 J( }
- (defun C:TG ()
( G* p3 V- O6 ]. _ - (initget "Increase New")
) D s. j/ v5 o+ u1 I7 \ - (setq ans (getkword "Increase/<New>: "))
* w$ v4 y- a! u0 N8 l2 H$ m0 E - (modang)
8 @6 b4 T9 o( k% ?$ h - )
; ]) I6 f) u; a3 S - (defun modang (/ ang ss ca e na ssl)8 e% H( g Y9 A# h/ h8 u6 z
- (if (= ans "Increase")
" m! \ E5 y `3 U6 O+ X6 z - (princ "\nIncrease angle for text by: ")
! I3 w# y. | w7 ` u& [1 V - (princ "\nNew angle for text: ")9 l- [5 D; m/ ]3 k/ U. q
- )5 J& G! z- O% U T( P
- (setq ang (getreal))
1 h. o$ ^! T( }' U3 s+ K1 m F - (setq ang (* (/ ang 180) pi))
& z% I1 d Z1 H4 d3 T7 o f; l - (setq ss (ssget))
- F/ N1 Q1 o5 }, U8 m7 Y9 b - (setq ca 0 ssl (sslength ss))
( h' I2 I: d" ?0 Z! g" _! r9 z - (while (< ca ssl)% @; Z8 n/ z9 ^
- (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
: t Y7 ^6 z* j# I. |7 Y5 ^# f - (progn
$ \, }8 D# X4 ^) {& b5 H - (if (= ans "Increase")
2 g& ~+ g, v5 t" z- T - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
8 P/ N9 r8 j& P3 J% F* F6 s" j# t! N - (setq na (cons 50 ang))! s! g. F% e9 h |
- )9 }9 ^) S3 j! Z& ` Z3 s
- (setq e (subst na (assoc 50 e) e))
# A c | p* f) F, f4 i' y/ O - (entmod e)
6 W7 U# E; Y: F/ G7 I& n - (setq ca (1+ ca))
9 Q q% t5 M q - ); b+ w; t- M! |( e, M8 I
- )
4 ]' U( t1 E& k. P+ t( j - )
! y9 k! l5 F7 U) |# D" Y1 B - (terpri)) N1 L3 G% R7 g" }" g" ^
- ): e" q( j+ ~4 D" S
- 9 R0 `8 }' y8 C1 d6 G
- " Z, W$ \. R" Y; G |7 a, q
- (defun c:WL ()
, j) ~( v3 o+ @6 O2 k- c - (setvar "cmdecho" 0)2 o- v4 F! I5 O9 q- o5 ]1 q
- (setq a 1); _& S2 E( h& y3 u% x+ z8 a
- (prompt "\nSelect Polylines to change: ")
0 l5 l6 M) K: A$ c2 L J - (while (/= a nil)4 \4 h# a/ J7 P% U1 p
- (progn
5 s) }5 O0 Z& o& z# ^ - (setq a (entsel))
S; s0 |& V j0 S% ~ - (if (/= a nil)
- N9 l$ |7 M3 V1 @4 ?- H8 d$ c$ E - (progn2 C+ k- r* ?; F
- (setq b (entget (car a)))
" B' ]% L0 m+ y( M4 R - (setq c (cdr (assoc 40 b)))9 G0 [9 Z2 s. ~; b: j+ ?9 p/ [
- (princ c)" U$ T$ e/ d8 z3 J$ R
- (command "pedit"a"w""lw""")5 h* E- ^3 k* V9 {/ n' D. \7 H
- ))))
" M3 O7 [- W0 }8 j - (princ)" ^! m, b( R0 [- m
- )- P5 ~6 m/ j' u( ]
- 0 c) B, h2 |2 V( S
- ;;; ================================ TEXT FIT ============================0 ~9 w( E7 _& a; l6 p! l
& }! z3 L& k, k- ^; P* K" U: R- (Defun c:FT ( ): P4 S6 }; J* Z+ \, u+ ^8 s
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
0 j! |8 Y% t4 \' l - (Defun LL-xyz (arg) (CAR (TextBox arg)) )9 t8 A: v1 O% A9 i
- (Defun UR-x (arg) (CAADR (TextBox arg)) )
G3 f) s" i- _5 z2 O8 H( @ - (Defun LL-y (arg) (CADAR (TextBox arg)) )
9 e( ~3 j* S w4 F- l5 p) t - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )* j- d6 ]! D+ N# S+ @* W5 i
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )% b8 {/ k5 w1 r( h6 f1 Y9 F! k4 \# s
- Textent (If ename (EntGet ename)) ) 2 g) D# S$ h, J- _
- (If (= (CDR (Assoc 0 textent)) "TEXT"): ]1 Q0 ?6 s4 a7 f; D# k( N* H
- (Progn (initget 0 "Start")
3 T& u9 |3 e1 H8 h - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )' L, |2 u2 W ]- S& f
- (setsnapang Textent) ;set snap along text entity) _1 v f* z# [7 o" d0 y8 m# E
- (setvar "ORTHOMODE" 1) ;drag along the text+ u. `8 D3 m0 d; W. p
- (setq
% G) u$ j, x& a+ R0 ~. @& E7 k - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") ) v' g3 R8 r: ?( L, d
- (setvar "snapang" 0)
2 W$ w/ z/ d; o5 P4 C9 f& [5 _0 V1 u - (cond
) u8 _, M5 N& b - ((= (type TMP) 'STR) ;;new starting point to be selected
8 R. X3 N. J r& u- @/ b/ t8 V* A - (setq Start (getpoint "\nPick new starting point: "))
4 u* x* s+ z; }- d7 ? - (if Start (progn
" f1 ~9 a( i3 Q+ \/ m! v8 E - (command "_UCS" "_E" (cdr (assoc -1 textent)))
, P( c# X1 z- I. q& m1 K* H. C - (setvar "ORTHOMODE" 1)
, E2 y% W+ h( F) Q- D: V" q1 _ - (setq NewPt
% P% D- I9 v) ^ - (if Start
# k- W" ~" W2 l! \ - (getpoint (trans Start 0 1) " ending point: ") nil ) )6 \, \8 h; K% I( g) ?$ Q6 w
- (if NewPt (setq NewPt (trans NewPt 1 0)))) j: K, R% F8 Z* ^! f
- (setvar "ORTHOMODE" 0)8 J# F8 m$ J+ [6 ^; f6 y
- (command "_UCS" "_W") ) ) )
* n5 v w. E0 u& L# Y* | - ((not (null TMP)) ;;new ending point selected
+ S; [6 Q0 |' ]/ c8 S0 v - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
( i) k0 I. f [6 A" X% C - (t (setq Start nil NewPt nil) ) )5 U4 Z M2 X [" V0 G, D
- (if (and Start NewPt) (progn
6 q/ T6 Q! J' c9 L - (setq Val (Assoc 41 Textent) ;;current width factor
/ L5 E ?- k" X - Val (if Val (cdr Val) 1.0) LTC_% ( d; H& u9 Y; H( V) q. F0 X
- (* (/ (Distance Start NewPt) NewEnd ) Val )/ J+ \" ~- k6 A" R- r( r1 b/ r
- textent (Subst (cons 41 LTC_%)7 V; Q! }5 e& P% b. e$ w, L
- (assoc 41 textent) textent). Y2 E. I% C9 r: @
- textent (subst (cons 10 Start) (assoc 10 textent) textent)
' K8 e; L1 T( }, W) D/ O0 B - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )( L" A9 T$ P6 q( I
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
7 i l, q D1 T( u7 {
4 g0 a* ]/ V" r: h! L% ~- ;=====================================================================6 ? N7 s* ~0 [+ @* {& R
- ;=========================COPY + ROTATE ==============================
3 [- b( W/ Y7 a - ;=====================================================================
7 e m- _; ]' b8 u- [' ^- i# U - & O+ q2 [7 K6 P+ V
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)2 N+ |$ d$ }. [. e8 i4 C" s
- (setq olderr *error*
. G7 Z3 S" v5 [$ D) D* T - *error* croerr)& [9 J" D+ J6 m
- (setq cm (getvar "cmdecho"))
7 g o5 m* M' x8 G2 Z: ?* g - (setvar "cmdecho" 0)8 j) D- c ?" x2 g+ u' p, G
- (setq loop t)5 x |" B6 Q- F3 H" a
- (while (not (setq ss1 (ssget))))! \4 n& @& u4 I3 y" L
- (initget 1 "Multiple")2 w2 R: K4 }' ^! ^! }' ]+ y
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
5 e+ D! K- T* f - (if (= bp "Multiple")2 S9 N: }4 |. F" ]' a! L6 I" G- F
- (progn- z# \+ ]3 n( J( N
- (setq bp (getpoint "\nBase point: "))
) J& K5 N$ r! V$ q- P* Q! @& b( G - (setq mult t)
4 w- j o; Z* \ - )4 Q$ O5 [. N6 q% @, n
- )9 z1 {( s% }- z
- (while loop
: f) f- q9 @9 P3 u - (setq loop mult)- Q* K, \# n3 S" |- H6 \2 ]
- (setq lent (lastent))
7 D4 l* `0 {: e/ X4 Y - (command ".copy" ss1 "" bp bp)
& v2 T( q4 j5 @8 V5 G' } - (setq ss2 (lss lent))
3 s; b. b7 o0 k6 y, ^" K7 D; q - (setq lp1 (getvar "lastpoint")): V6 `9 I) w5 y, c
- (prompt "\nSecond point of displacement: ")9 O! }4 s# G' m2 s6 O
- (command ".move" ss2 "" bp pause)
, d! e$ R; J+ ~- x - (setq lp2 (getvar "lastpoint"))
+ v2 @' r Z# F3 x - (redss ss1)
0 f- Q1 `) J& p3 X) ~: j! A# z - (if (and (not mult)
0 h& P! L P: c% T7 V; P - (= (distance lp1 lp2) 0)
5 R1 u2 Y' D# s4 a! [" \* L - ): [. a/ r# J3 F9 `" w
- (setq lp2 (getpoint "\nRotation Point: "))* M0 g- M9 J, N) N# W1 H
- )
. Y* G! ?6 o D/ C - (if mult1 c( T* F6 R9 y5 Q; p$ a
- (prompt "\nRotation angle ")/ u: I d$ c% ^* D$ a
- (prompt "\nReference/<Rotation angle>: ")+ Y" D6 K8 z& r1 M5 n6 l; O3 l
- )
3 ?6 ?7 ?' R" W. j# ^: ` - (command ".rotate" ss2 "" lp2 pause)" E0 V$ S; P) `( t$ i
- )! B2 m4 D- t( s$ \5 q; f. e0 T
- (setvar "CMDECHO" cm)
7 W' g4 q8 I6 ]' a3 k7 h+ V - (setq *error* olderr)( h! L) T, `2 P7 e- G9 v
- (princ), j! ]8 j' }4 C* H* t9 W0 U
- )
4 @1 B4 k# o ]6 X, Z- R' B# o - (princ)
$ h6 Q& w i; q - (defun croerr (s)
( T7 x/ G! J3 P8 c. Q9 X - (if (/= s "Function cancelled") + _8 E6 ` R, {6 ?
- (princ (strcat "\nError: " s))# c% W# q* E, u) P# `3 B4 @- e
- )
* s" u8 \: d6 @ - (setq S nil)$ u3 I' Y& n4 F. `: B$ u
- (setvar "CMDECHO" cm)4 Y. g% X" t# J) q7 `
- (setq *error* olderr)
, ~/ X t* s5 ^& F. m: W( T$ t - (princ)
/ ^! }; i* w: P5 a - )
: |" \8 n& R; h7 |( M V Q$ a - (defun lastent (/ a b)( H1 n5 [% I, U6 O k) f/ ^! p
- (if (setq a (entlast))# b% T4 z6 k; s4 Q( I C' I5 F
- (while (setq b (entnext a))! J9 Q$ o$ d" {2 X# n& N$ K+ G1 n
- (setq a b)
8 m' i. U# d0 K - )
9 D4 I3 R+ `* _) k - )
, t3 _6 h4 A5 g* i" M - a
4 d8 m, R# P! Y2 {4 h. P) h - )' \* @ h# y o# a% U
- (defun redss (ss / en i)
1 q8 k8 d( u1 h" l. R5 a W- } - (setq i 0)& O% S7 r/ d: A, |
- (while (setq en (ssname ss i))
% W1 p) ?3 A% j9 H& ~ - (redraw en 1)
5 v8 ~9 k. d9 P - (setq i (1+ i))$ a: v; d! v6 P; u2 V0 f- {
- )- x$ A! e# [+ J$ \$ ~
- )
9 r/ Y' g0 |* Y - (defun lss (en / sels ed)# x, q) l* P. X9 W+ b9 u
- (setq sels (ssadd))
2 x. t- F' d+ H4 ? - (while (/= en nil)7 L) v2 u; K/ v `! o! {( I
- (if (setq en (entnext en)) (setq ed (entget en)))" g& O( B/ ]3 O, e- }) p' N; s
- (if (/= en nil) (setq sels (ssadd en sels)))
7 D7 p7 A4 S* G; z. E - (if (or (= (cdr (assoc 0 ed)) "Polyline")1 H( {4 c! y! h
- (= (cdr (assoc 0 ed)) "Insert")
) {# X& O$ `+ W - )
: c, [/ n& @6 H8 g0 Q | - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
0 C5 l$ P% x9 k8 i - )
9 F& C! y2 I4 J/ M* [# M5 @$ s - )
* V$ B% P2 @; e - sels
/ y" K" j' K# q/ Z4 ?3 R: w3 Q: v - )9 \; i' y( s& H4 E, b# A
- - J: k# t1 U: U6 n: f: F7 U
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
, m! ]( e- G }7 {- l% e( t - 9 N6 V- l! ]; R
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
. z' B+ {" O* J4 K+ e - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
4 k+ ?- T" |( Q8 G, }. B$ z - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
$ b6 |) g+ K: b3 Z( r - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
9 Q! M3 c5 O0 F - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))0 N! |/ E6 T V0 h8 o" c8 j5 B6 m
- (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
# a* L$ F3 L1 I& }5 |3 W( t - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" "")) W- L4 b& z6 V; ]' U2 a! P
- (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
+ \' G: I# I0 H - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))+ T' H( h; ?1 Z9 y* i/ D* M6 Q7 N
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))' b* u0 T; H3 p, |# O
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
1 z) X1 Y) c& W5 w7 H+ w0 { - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))$ S5 e1 a4 @5 i x! I
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))2 D' q! K/ g: }7 h3 f2 [! Q. K4 N+ x9 t
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))8 H2 j/ E, t, U0 W( H1 G
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
; x( o7 r2 c- r$ [0 N' ? - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))) s1 R8 |, c* D/ u' D# @ U
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
8 W: e/ ~, L$ G0 I - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))% H2 v4 Y9 I$ q( V& P1 G* W
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
" S+ F' _+ Q! t F
0 x9 L% b6 r8 q- u! k- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============7 u. \8 g* P% @, U5 a
) f, `, k, D: g7 z& `/ |9 ~& O- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============- c& @2 j! ?: q9 q8 i. R
0 J9 r+ _$ W t4 O$ q' ~- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")& E: M; r4 N1 j3 y# R6 z% ^
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
7 ?) p& Q b' Z
7 H' v0 }' u" x3 [* f/ q* t- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
" G; s! o! i; ^; @& _% o - 4 H3 x: z+ e3 N/ D9 y, |% x- S
- ;(DEFUN C:netxuatanh ()
, ^/ P5 P) |$ v6 J& u0 i - (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""5 G2 ]) p8 l; ~; W
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
0 Q( u1 q# w6 w. u& q! d0 B1 L - "M" "MANH" "C" "9" "" "Lw" "0.5" ""% H9 q/ a& B, X \
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
, V) i( F0 L' |" t& D& Q0 l! `/ w, d; c5 { - "M" "DIM" "C" "1" "" "Lw" "0.6" ""/ b$ t9 }: D" d. {# U
- "M" "THAY" "C" "7" "" "Lw" "0.7" ""
3 ` H; U( p0 W6 K - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""- s' F7 b8 F# e1 s' p' f! _
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
& {8 [/ c5 k5 w9 m# ~+ Q - "M" "COT" "C" "2" "" "Lw" "2" ""
2 a/ m" J1 z/ d* @7 T - "M" "Defpoints" "C" "7" ""
* E, O: m$ Z# x8 e; i. Z8 L - "M" "0" "C" "3" "" "Lw" "0.5" ""& m; g7 g* N% }7 N. ]! h
- ; "M" "1" "C" "1" "" "Lw" "0.5" ""
# D; |5 @$ n: Q) x - ; "M" "2" "C" "31" "" "Lw" "0.5" "", I P) e% m6 P$ B A
- ; "M" "3" "C" "8" "" "Lw" "0.35" "", u- A! C& O! |
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""% L4 d5 Q a% U1 {. V e7 Y9 n5 K( w7 j
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""; s5 |! F' G& C7 i8 _1 Z
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""
" _) r0 Z: m9 }5 n- V( f. P - ; "M" "8" "C" "8" "" "Lw" "0.35" "") A% M% B0 ]6 @; ]1 f
- "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
# W- q" o, E; W& Z$ T y - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""; ]6 @( x% s Y" z
- "M" "KE" "C" "8" "" "Lw" "0.3" "") b) f) p1 f3 g* U, E
- "M" "KT" "C" "9" "" "Lw" "0.35" "", L5 V3 P# w' q
- "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""5 s' J0 g2 n8 ]6 c9 l* o
- "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""# h9 K) c, L* y Z3 V
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""+ w7 T; ]4 {. J/ C" m
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""
! s3 u# W" x$ p$ n2 \ - "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""3 j5 C$ T" h- @
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
" M6 l& q) ], s9 l$ A( k" | - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
- s! z* U4 I4 _7 D - "M" "CUA" "C" "6" "" "Lw" "0.5" ""! v& r- ~# Y" k( L4 [9 [8 I
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
) Y% ?+ }' n4 `( I
" j0 J* h7 S) Q4 a9 p- Q; b! T- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===$ d) E8 r/ [* K1 Y# Z
- 9 ~: F# A# N! @6 \! c3 u5 H
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
) p4 y8 D* C; r9 {) D - "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
8 D3 X3 V& ^- F3 z - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""% s/ c6 G' S; G- i4 A3 k2 ?
- ; "M" "250" "C" "250" "" "Lw" "0.35" "") P0 g) i; H4 k7 q
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
: d+ s$ S R: C0 a9 x. @" [% G - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
; c5 g0 p0 X6 b, {# Y - 8 [. H1 H; z- }
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
# }4 r6 M7 A' n3 u3 T- D# w - ;===================================30|04|2024==============================% n l) s8 H) m7 O j
- ' D7 a6 O! _+ n& \2 H8 X
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )8 |$ F6 e/ i9 _9 o* W
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )3 I1 Z" H, _: a$ X J. R7 k1 g* {1 ^
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )0 c- f2 _+ s8 M, Q- k
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
! t5 R. ] ?8 Y' x - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
, c9 p2 m6 t$ R9 y* ? - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )8 T9 R# L. I s s4 r/ n" e
- (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
. N% n& ^) D4 n( H - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )5 x" c8 |! [9 h4 _" Q+ g& |
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
$ N( ?7 D( P1 |9 W - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
8 o0 K5 ~# {! F4 Y
- k" m! [; w8 _' x9 F- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
# S) t' T0 {! R8 t! B& x8 T - ;===================================17|10|2024===================================
( {. q/ x' ]8 r- A/ c# u - + c9 j: K( W* V& S% x" l
- (Command "DIMTXSTY" "ROMANT-DIM" )! t" e; N* }6 ?0 z8 u( q2 {
- (Command "DIMBLK" "" "Closed" )
" ]$ g: p: G B* J3 G: ~
; c# o4 ~8 ?8 e$ T7 I" i- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=9 V9 O3 }% Z) c. ^, Y( F
- ;===================================17|10|2024===================================/ K6 M1 z: B5 S% E4 p! Y
2 _4 A3 e* Y% ]+ E9 S0 ^& z+ H- ;(Command "-units" "2" "8" "1" "8" "" "N")2 j* d( k7 B4 q6 E. s2 Z
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ) V4 o5 S% H7 W' X' Y0 r( l/ b4 y
2 }& R# d# P3 g- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
8 Z" b$ h6 P7 X* e& F2 @ - ;===================================17|10|2024===================================
- j9 R& F. D5 U5 m
4 ?- U7 d5 X. u1 x- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====/ r! ~0 T/ K _7 r
! \8 g' L- ^# r- ~- ^- ;======================== DAT NET IN & TI LE BAN VE =============================" p) M; U; p$ _$ G, h) l
- 3 m; g6 N% P: H5 ~! W, T
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================% v# j- _! i7 b
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
2 D! O% }7 ?) Y, I* {0 W+ a - ;=============================11|07|2025==============================" s/ c; ?& h% u2 @; C. [2 a5 x1 U
- ;Ti Le Ban Ve - 1 : 100' _, E5 |- |( j: ]! a7 C3 T$ K
- (Defun c:kta4 ()
+ f* m4 ]3 [ H0 _: d4 t O2 G' ? - (setq mv_sc 100);Ti le ban ve# ^, s/ e8 I$ u
- (setq x4 297)* B) k0 I" p% _2 b& q( E
- (setq y4 210)2 g1 O( a% ~4 ^& _* [9 P
- (setq x4 (* mv_sc x4) - F4 T; n( F* O8 M3 B0 E" w
- y4 (* mv_sc y4) )
9 A+ A6 @! S' F1 w0 H! [9 U+ [ - (command
0 ~0 T4 B. @0 L. B2 H3 x5 a - "LIMITS" "0,0" (list x4 y4)
, m8 I% w/ w8 b3 f - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
4 j- F a; \/ J# H; ^ - ;Khung CHU NHAT Chinh
: H! D8 i: M! c" a( a2 w - "RECTANG" "500,500" "@28700,20000"2 p b' k# C/ \/ `4 R: a$ A% m0 p
- "RECTANG" "700,700" "@28300,19600"
) h! P: j6 {5 `) i& Y - ;Khung Ten Chung& z/ l9 c" L. U- i
- "RECTANG" "700,700" "@8000,1250"4 D5 d/ m8 |: L+ ]9 I5 O
- "RECTANG" "700,700" "@17300,2500"5 ?* u) X) b4 w
- ;Ten Ban Ve+ N' J2 g7 M5 ]+ p$ w( z+ M3 y
- "RECTANG" "18000,700" "@11000,1250"' x$ O6 m( A$ \. a) {+ ?! Q" x2 z
- "RECTANG" "18000,700" "@11000,2500"
9 }; \5 d. V; E; G; a+ Q - ;Khung Ti Le + Ngay Thang Nam- f2 r& a0 X) ]( {! L3 V
- "RECTANG" "22500,700" "@2000,2500"8 M& a# a# T; b( b$ |3 M' Z
- ;Khung CHU TRI6 c+ K. G3 O) D( j" J
- "RECTANG" "8700,700" "@3800,2500"
2 v- v) ^: G! F7 R5 R - "ZOOM" "_a" ))$ p$ S- [: v Q! p. v) g0 c
- ;=====================================================================7 n6 k; y% _6 r# m# N4 H. p5 s
- ;Ti Le Ban Ve - 1 : 100
7 x# ]. s7 f( z& n0 k7 G% m- s: | - (Defun c:kt4a ()
; S" r4 J& j) ` - (setq mv_sc 100);Ti le ban ve- c: ?. X/ v8 I3 p. M9 H# S* ^' d
- (setq x4 297)1 p1 |+ D; K& G' e) V) x
- (setq y4 210) ?2 M5 ]& M' {* M8 F3 Y l
- (setq x4 (* mv_sc x4)
2 A+ H* \% k9 Q! ? - y4 (* mv_sc y4) )
, y, R8 w; F! B - (command
& N2 d' o5 e; G& x8 N: z- B6 k - "LIMITS" "0,0" (list x4 y4)! ^' c3 v; v4 D* e
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"" O) }' I- V, u$ w$ ~$ U: \) X1 M
- ;Khung CHU NHAT Chinh
$ }. n9 x* Z0 {* ` - "RECTANG" "2000,500" "@27200,20000"( b( G E4 [" ?! J
- "RECTANG" "2200,700" "@26800,19600"5 E+ S; Y! `- [ e8 k7 x0 o
- ;Khung Ten Chung
& e7 a6 z/ [, ]& ? - "RECTANG" "2200,700" "@6500,1250"1 G2 p" ^* z3 ~6 g1 a/ L4 N: p8 {
- "RECTANG" "2200,700" "@15800,2500"+ I- ?) ?7 Q, P0 K: x% M; f% j! a% R
- ;Ten Ban Ve9 v& g" R4 r2 Z: \% C
- "RECTANG" "18000,700" "@11000,1250"
9 ~: K" ~/ U( W" v! b2 i - "RECTANG" "18000,700" "@11000,2500"
7 u( V4 j% {; N; c7 h, o# r$ e - ;Khung Ti Le + Ngay Thang Nam- `+ Y: y( W' g4 F# G: M9 p
- "RECTANG" "22500,700" "@2000,2500" I$ |; A; }' V! S) r" b" |# @7 }
- ;Khung CHU TRI
2 c4 ~4 c0 H, i W$ S - "RECTANG" "8700,700" "@3800,2500"
1 S' a6 T' D! t* ]( d! X# d- h - "ZOOM" "_a" ))
# V5 N& D1 \3 O, _6 T7 e/ D* d
8 M; |6 b$ y o; G! F- ;;; ============================GHI CHU Khung Ten========================
9 v Q% a% }: ]3 g - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
! Q6 M+ W; k2 X8 B. Q$ ]) M1 @ - ;;; =======================Thuong Dung Font Romant.vnh===================; `0 P7 ], F( C1 l
; w9 Y7 N. w" `, ^- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)5 o% E4 o' F0 p
- (setq oer *error* *error* err2)
2 x5 j: V0 d" N1 } - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
8 d1 ^/ b y' ?$ ~; p2 A% c - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
' i: C1 w* I% b" c, F - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :")). N6 _% R/ q; S! a, P3 N/ E
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))/ o5 c/ ~( V! J, q7 q3 c2 v# K3 j
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))- [8 R0 k) Y1 Y& t- U$ c' s0 i
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
) L( ~9 s. @ `! s& \, l9 D2 J - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
1 K; `' t- T' c2 |& ^ i9 ?2 }, I - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))( R. ` p }- c1 K( n: X
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
+ q6 V5 p6 l" D) q - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
! I @# g7 x3 Y3 G6 L1 B - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
% M! |: O( q! e9 Z" z& `$ W - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
: u9 P% _& h9 `. A- p - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
3 [" d8 r7 A* d! T2 {5 W! O3 R - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
; e1 I* B8 [5 d1 o0 [ - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
& q* K7 l6 ]7 G0 V& n, l - (setq pta (getpoint
/ w6 `; y# d: [- @ - "\nPick first corner. : "))
+ N! i# j( Y+ k" v' u - (setq ptb (getcorner pta C7 q% Y, \- _3 s0 y
- "\nPick second corner. : "))
* G& d, B9 M# p0 ? - (setq ptc (list (car ptb)(cadr pta)))& H6 G! p- ?# D4 D
- (setq ptd (list (car pta)(cadr ptb)))
5 n" E5 {$ \) s1 E% ]+ Z - (setq ang (angle pta ptb))# a, H% {$ i+ L3 U' I+ f
- (setq d1 (/(distance pta ptb) 2))/ U% t9 T4 f4 `2 f6 j
- (setq cp (polar pta (- ang (dtr 0)) d1))
- L( z' c+ A$ g3 y - (setq X (distance pta ptc)), ~* d- J3 e+ @6 f& d* M7 B% T
- (setq Y (distance pta ptd))8 y& }$ V6 ]" f/ H6 l
- (setq X1 (rtos x 2 1))
9 O/ `9 A+ R6 K" O: a - (setq Y1 (rtos y 2 1)), a" k$ x% T% [- O
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
3 X1 Z) t6 g# E9 D - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
0 W/ i. G) z. l% v, z6 ~4 q - (defun dtr (angg)
- R4 K: s4 @3 e: }6 x - (* pi (/ angg 180.0)))6 A( [# t9 O& H3 u" G/ y
- ! _ v# b. m0 b p w7 }
- ;=====================================================================
8 o$ I9 E* P7 j- I" Y+ [ - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
. K' J# t" @. u: M - ;=====================================================================
1 X6 c" [8 U6 A, z+ q - 3 D7 }+ j, h+ `# z. U- N4 C- H+ {
- (Defun c:a6 ()! S. ~, v+ b1 h/ P1 Z
- (setq mv_sc 100);Ti le ban ve3 t& A: J2 S2 l8 `* X- R
- (setq x4 74.25)
^, D; S0 c- @" S w, ~5 z* e - (setq y4 52.5), o% m" U7 E1 c; Z# S$ @
- (setq x4 (* mv_sc x4)
8 ?1 u/ b$ Z# `+ U2 ?# |+ f - y4 (* mv_sc y4) )$ |: f! B! b( B( L2 H& M
- (command $ B! r) x) l/ G. r8 Q9 y
- "LIMITS" "0,0" (list x4 y4)
& n, q! V/ b: k - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C". P. C5 q/ l. G6 m% M
- "RECTANG" "125,125" "@7175,5000", C ]1 M8 t! J2 R
- "RECTANG" "175,175" "@7075,4900"8 {) Z M& |9 ~+ G
- "ZOOM" "_a" ))
9 _( @5 y* B8 q - ;=====================================================================
, V' H* n( r$ w$ n6 ^. E! s - (Defun c:a5 ()5 |! a1 D: ^3 U7 _
- (setq mv_sc 100);Ti le ban ve
# [5 l2 B6 U; a" _ V3 E - (setq x4 147.5)1 ?4 f6 y) j8 t( S9 g& u/ @
- (setq y4 104)9 O2 `2 ^ \% B
- (setq x4 (* mv_sc x4)
+ E, w2 D3 d1 t4 @ - y4 (* mv_sc y4) )
% _* B5 W b/ G8 q! } - (command
/ ]. k( [3 w% j3 N/ A - "LIMITS" "0,0" (list x4 y4)# O1 o/ R0 Q# v) v5 `& O; f2 ]; r
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"+ O9 r" N" j1 q0 }' ^
- "RECTANG" "250,250" "@14350,10000"7 @3 y' d, w' w( v* j' O& d. H f6 i
- "RECTANG" "350,350" "@14150,9800"1 ~8 ^7 e7 G! B z+ O& q
- "ZOOM" "_a" ))$ x$ h$ x1 M! [+ o4 e8 i
- ;=====================================================================
1 W( ]) V! P5 L% ~ - (Defun c:a4 ()" ^- w) i$ Z) V8 L2 x
- (setq mv_sc 100);Ti le ban ve- \! W3 v H- @
- (setq x4 297)& F% ]$ X/ d* Q3 R' g' i) r
- (setq y4 210)
; v6 x. |* P& S$ J4 l - (setq x4 (* mv_sc x4) c0 [7 b: r5 j1 t) s0 h' n2 `
- y4 (* mv_sc y4) ) t0 P( K- z* j5 Z% M! k# W- \ |
- (command 7 q# F5 g5 O) o9 Z/ J7 g
- "LIMITS" "0,0" (list x4 y4)
( s* l j% Q: Z5 m0 `' b! |8 x - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"; Q) l8 @8 X3 Y0 A' ^: k: O1 m
- "RECTANG" "500,500" "@28700,20000"
1 K G" D I( U4 e1 [, e! T# f - "RECTANG" "700,700" "@28300,19600"" L! D2 R3 O+ c1 R: q d
- "ZOOM" "_a" ))
% L4 V' Z* t- M, l, q5 D/ q6 {3 S/ ` - ;=====================================================================$ W) a/ P; }+ W9 @* c* o: g
- (Defun c:a3 ()( }3 ?1 T7 t5 [
- (setq mv_sc 100)6 e- ~1 j w5 ?
- (setq x3 420)
1 P$ l( H1 _1 x! [7 {2 x" K - (setq y3 297)
& k; S0 G% t# d# [) |: t - (setq x3 (* mv_sc x3) ) R; y1 D' A* r9 @5 l5 ]2 k& R
- y3 (* mv_sc y3) )' C$ Y" O# S( H: ? i4 |5 g+ W
- (command
' L& E' p- p$ U0 S' q$ @. o0 Z# W - "LIMITS" "0,0" (list x3 y3)
0 P5 k7 J% z4 I7 t1 j: G - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
2 N. o* F: }& k7 ?/ E - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
| P0 f! d8 Y7 ?% f - "RECTANG" "990,990" "@40024.28571429,27720"# O3 D. s6 t( f% y6 q, n
- "ZOOM" "_a" ))
8 S4 L& L: H% t. Y- W5 | - ;=====================================================================
5 w: ]1 w' L3 s' c4 h4 | - (Defun c:a2 ()/ T' G" L; }, a% ?! i V" p% Q
- (setq mv_sc 100)* E( E" R; U% s
- (setq x2 594); Q+ O5 W4 }3 Q( ~' Y3 N# o' e
- (setq y2 420): }7 k2 c, E- L5 s" w
- (setq x2 (* mv_sc x2) ' W5 Q: [& C! s" }# _
- y2 (* mv_sc y2) ), A- [; x$ W% M- O: J) r
- (command * P( C0 n5 ~1 m' Y( E( n3 Y
- "LIMITS" "0,0" (list x2 y2)
$ A$ l! [3 W3 b1 Z3 O! F+ o - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"/ X/ h) I3 ?8 ]7 V; h& h
- "RECTANG" "1000,1000" "@57400,40000"1 q/ f* T6 P. u* a) S
- "RECTANG" "1400,1400" "@56600,39200"& i G/ g2 I0 E- p! b$ z/ V
- "ZOOM" "_a" )), H+ ?5 F O& O1 v& i' |
- ;=====================================================================+ y) U' m" ^* P3 b# |
- (Defun c:a1 ()
% ]5 F! l5 R3 P - (setq mv_sc 100)4 G# ]# k7 ?0 h6 m s0 S. T! ^
- (setq x1 840)2 Z9 \ y& @/ L# U3 p& m0 [
- (setq y1 594)
7 d$ u) }5 d* U& G+ ]* }: Y& ^; L - (setq x1 (* mv_sc x1)
9 k- F7 m9 B; |& O0 p - y1 (* mv_sc y1) )+ j% h1 ?& |/ R7 U& O- p$ d/ o3 K
- (command
' m& {" A7 B/ I) X- ?: O/ Q$ ?) _ - "LIMITS" "0,0" (list x1 y1)
2 v3 n# q- K8 m- t' Y3 J - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"6 ~# ^8 y5 h/ N9 b! t
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
& f# d$ Q: k& S- X0 Z' _4 L - "RECTANG" "1980,1980" "@80048.57142857,55440"
0 q+ g7 Y) y! B4 [9 J8 A1 [4 x - "ZOOM" "_a" ))1 z8 E7 u% d6 u
- ;=====================================================================
3 f7 N/ w2 f5 ] - (Defun c:a0 ()
' U- C# v0 S: k3 Y# i - (setq mv_sc 100)
4 ^# D" n+ ]" G7 Z9 v+ D - (setq x0 1188)
' b* c" A* Q! J# H' \ - (setq y0 840)
/ d# f) j, p1 s - (setq x0 (* mv_sc x0) . \+ Y0 H3 E* I1 h4 B+ k" G7 m
- y0 (* mv_sc y0) )0 \8 d% Z- g! q1 R7 f
- (command 1 L/ B1 q% T$ n% [" ?+ W7 z
- "LIMITS" "0,0" (list x0 y0)& o' v: M. p' X! O
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"3 I7 c! @: T- e& g: u8 T- H
- "RECTANG" "2000,2000" "@114800,80000"# F' M* L6 J* k' D% B3 j
- "RECTANG" "2800,2800" "@113200,78400"
4 F2 y, K+ l: Y+ Y3 L - "ZOOM" "_a" ))% T: p, Z" R6 W: d( E
- - d, ]% a2 d4 P2 O9 X1 R+ Q: `
- ;=====================================================================
) o& S& }8 t5 ?, l% L( V - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
0 p+ T; R8 d# k0 B$ T- C - ;=====================================================================6 B, }4 P2 q7 c3 ~
- 7 b0 q T& h5 g6 V
- (Defun c:6a ()
: l0 f6 G' w/ A3 Z - (setq mv_sc 100);Ti le ban ve
& C) T `2 j9 N5 x- f A8 f' _ - (setq x4 74.25)! H* r; Y# E h- p6 p4 M8 T% {
- (setq y4 52.5)
9 r% {, U7 n2 i. O1 J' n0 p - (setq x4 (* mv_sc x4) . B0 q b1 I6 v- w8 v
- y4 (* mv_sc y4) )
4 D$ |$ G, S3 Z" W! e+ a1 K& G - (command
2 f i. ^1 |' g! s% r& x: u - "LIMITS" "0,0" (list x4 y4)
1 c+ e/ I. G( n1 L! U - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
6 G8 d( F! m S - "RECTANG" "505,125" "@6800,5000"6 m6 y8 \: F9 @
- "RECTANG" "555,175" "@6700,4900"
( t& C# M: p! u# J, C# Q* K# j5 { - "ZOOM" "_a" ))
& R, i5 e, ]& [+ m - ;=====================================================================
* _. N- X o4 A0 [; [" L( \ z- ~ - (Defun c:5a ()% l |& h& h |* Q/ v9 `0 F4 r
- (setq mv_sc 100);Ti le ban ve; T: D6 S8 s, @% l! c. I) r- \1 X
- (setq x4 148.5) e) C+ `9 M7 b+ x
- (setq y4 105)) t. ^0 I3 V+ w' _6 R8 x5 |
- (setq x4 (* mv_sc x4) ! s [) M6 n1 Q, }+ `9 s
- y4 (* mv_sc y4) )6 `5 g1 o* r& l; L2 m
- (command
1 R5 u5 e9 X& y; S2 @% N0 B - "LIMITS" "0,0" (list x4 y4)
2 S9 o: w- ^& k" c, Z6 N! M* e% A - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"% {7 X; `& d i$ L/ a) O
- "RECTANG" "1000,250" "@13600,10000"
4 j# d, S5 v) ^, q# c - "RECTANG" "1100,350" "@13400,9800"
K2 r( N6 |+ I9 \- V' ] - "ZOOM" "_a" ))
& e6 ?9 f* o4 r" j ] - ;=====================================================================
$ s# f$ h$ b. L1 \ - (Defun c:4a ()
/ \+ @' H4 @6 Q" \5 C% d - (setq mv_sc 100);Ti le ban ve& n# l" ^& z/ ~+ n) S' {
- (setq x4 297), O$ ?- { ]) ?/ b: s3 U2 o$ c
- (setq y4 210)" C6 d( X0 }! i) _) f* W" ?
- (setq x4 (* mv_sc x4) 6 \ y4 |' ~0 I# c" s2 U4 M5 g
- y4 (* mv_sc y4) )( w2 W: n0 ]% b4 ]
- (command
. Q+ }. |! l) h2 x1 i5 x7 m - "LIMITS" "0,0" (list x4 y4)$ b& V; ~% @2 E+ [$ W" z/ Q
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
2 B# ~- ?- Q" ]1 x - "RECTANG" "2000,500" "@27200,20000"
0 b* d4 i. ?) C4 h" M. W - "RECTANG" "2200,700" "@26800,19600", g) {" t O; N0 S
- "ZOOM" "_a" ))' P9 L8 v, e" r+ w% k- l. C8 G
- ;=====================================================================6 Q' W. ?+ t; Y4 A! W
- (Defun c:3a ()$ O& A$ }0 ~7 D' x- @
- (setq mv_sc 100)
# Z# r. Q% I8 q) M* [! X - (setq x3 420.0428571429)
/ ~( q8 g# Z& w6 ?8 D. Z - (setq y3 297)
* p0 M* Z* D3 }: h, D5 A - (setq x3 (* mv_sc x3)
; d5 [: p' \; c5 K, @# [& }5 ?; D - y3 (* mv_sc y3) )
( s. a) X0 `: M - (command : q% T% a" C {* j4 Z! e2 Y7 `. h
- "LIMITS" "0,0" (list x3 y3)
4 ]1 w" T! J# a! _& B: o: i* [: K - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
9 I, Y2 U- S" M$ R - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
?1 W1 }9 z' v - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"+ J5 J5 C1 {+ F' A, D. ~
- "ZOOM" "_a" ))
7 |: C2 q6 m0 h - ;=====================================================================
) c; K8 Q+ @4 z! l! Z - (Defun c:2a ()2 ?+ v% h! v4 @# `% r) V
- (setq mv_sc 100)
8 P0 u! w9 |7 J - (setq x2 594)
) T7 o ~4 u' L! f - (setq y2 420)4 ^ l6 Q$ o, e$ m. i+ @, c
- (setq x2 (* mv_sc x2) " t+ M, P0 z# G7 B, |
- y2 (* mv_sc y2) )
$ H. q2 c6 i8 L- _* l1 M" }3 L7 E6 p- n - (command
& X4 Z" ]$ o4 F2 @ - "LIMITS" "0,0" (list x2 y2)
; ~9 R7 N! I8 u. @: i7 x - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"7 h$ [8 q- T( v4 v
- "RECTANG" "4000,1000" "@54400,40000"* L: ]' D0 l$ Q0 p
- "RECTANG" "4400,1400" "@53600,39200"* x0 ^0 B# g6 s h6 }
- "ZOOM" "_a" ))8 D* T8 s8 v: S! R+ u/ H
- ;=====================================================================
. x/ i( k4 M7 d8 @6 y: Q: o - (Defun c:1a ()# d* V% _$ E" [
- (setq mv_sc 100)
- t& s' b8 A& X7 k$ U- F. K - (setq x1 840.0857142857)2 b" k7 }0 j; {7 Q4 v: l
- (setq y1 594). `( R2 H t) o! G0 T
- (setq x1 (* mv_sc x1)
( x+ R4 }$ G- i, g- @7 ~ - y1 (* mv_sc y1) )$ M V" m! z7 H A, |
- (command
. X2 L2 \3 W6 r6 V& \) y2 O. k* F; X - "LIMITS" "0,0" (list x1 y1)
# v: F5 C( F% e" N9 K6 e - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
4 E1 B) e8 c% X4 x, G- S7 c - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"* N9 _& o5 Z1 N" n, V5 ^
- "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"* |, [' T; C- b- W6 W( y3 t" F/ K
- "ZOOM" "_a" ))7 K1 I* f4 [) \6 s0 g5 h
- ;=====================================================================! p0 [# H1 m+ l1 n3 i E3 ^
- (Defun c:0a ()
. O, s) H. B9 `# ~ - (setq mv_sc 100) ^1 X! z7 M% f/ o' I5 K$ b
- (setq x0 1188)% A* Z3 Z: |, x: b
- (setq y0 840)
& @' z" s' _ [/ |% Y: p3 R - (setq x0 (* mv_sc x0)
" k) b- V2 [. e" ~1 ?, B - y0 (* mv_sc y0) )5 B6 N/ S ]) A7 z
- (command
$ b T' P8 I- p - "LIMITS" "0,0" (list x0 y0)
1 k. [9 S1 F) B6 l - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C") d# K' p* X; }2 I
- "RECTANG" "8000,2000" "@108800,80000"& ]9 @' L" R8 B6 o" m
- "RECTANG" "8800,2800" "@107200,78400"& `5 v$ V/ n# A3 B0 ~
- "ZOOM" "_a" ))$ s& s% _, N N7 \6 B6 l
: Q% ~! ]# u- S; e1 M- ;=====================================================================
. K. t) J: `* A" F0 |& p+ T - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================7 g/ d& o& _5 ]+ O
- ;=====================================================================- z6 m$ u* r, |. O/ [
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)' k/ X6 \( Y5 l4 b, W# x7 i
- (command "undo" "be")
- d; t0 g6 f \& C2 [3 j - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
! H3 ^" L. @$ n' z) Q! S$ c - (setvar "CMDECHO" 0)+ m. }5 l) V3 q6 u8 M' I2 v& k
- (setq a (getpoint "\n chon diem chen :"))# [3 ^/ B& }! W. u
- (if (not TL) (setq TL 1.00))2 p# J( g4 G2 @6 I. S
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))- C9 p; @; S9 ]: C
- (if TL1 (setq TL TL1))
: r, I3 @* @' D0 t( }. C% Y - (setvar "osmode" 0)7 Y/ W" T/ X+ C9 @0 o
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))+ p+ ^* H1 g: u6 r1 P+ R% _3 m
- (initget "0 1 2 3 4"). W; M( V |- v$ \) b' Y
- (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
& A* N9 x- W6 S0 o, ]4 D - (if (= kho "0")
5 i( ]6 M" M5 w" e* p1 r* d- U# x7 d+ A$ C - (progn
9 U3 U9 c. c) z - (setq b (polar a 0 (* TL 1189)))
; P, o3 `( q; Q) j5 F6 q4 t7 f3 j# v - (setq c (polar b (/ pi 2) (* TL 841))), ~2 k7 C9 E# n6 V- V. p) s! b
- (setq d (polar a (/ pi 2) (* TL 841)))! v0 |$ B6 I, i0 o& A: s9 O5 ^
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12))))). k) C: f$ G6 m. R
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))) X# Z- ^* D, K( O. T: |
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
/ Q2 l4 G4 W; K( H - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
7 z; C4 D: B& D, O - (command "Pline" e f g h "c") ' f: f" v3 c# J/ e; ^+ c0 p
- (command "change" "last" "" "properties" "layer" "0" "") ^; v% x: r6 y N' @4 _0 n+ \
- (setvar "cecolor" "4")
+ ~: d; W" }& F* E d# l7 ~ - (command "Pline" a b c d "c")) k2 Z+ \% w0 F0 X& |( B
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
, A2 m; s' [! r- Y - (if (= kho "1"). {1 H, F0 Z* ^
- (progn. E: ?9 g. k9 Z' I' ^$ b1 V' c
- (setq b (polar a 0 (* TL 841)))+ q* ?. n* h) K4 x5 }# P# M
- (setq c (polar b (/ pi 2) (* TL 594)))
1 d8 p9 h0 b4 _0 j4 S' J) _ - (setq d (polar a (/ pi 2) (* TL 594)))5 }. y, }; O) n. R9 y
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
* R3 y6 q8 k# S" i/ k" K - (setq f (polar e 0 (- (* TL 841) (* TL 24))))0 v2 n3 w; C3 w
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
8 |. |& @# G& U8 \" ]2 z9 J - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))5 g) [* A8 `* n$ E' \. @" q/ e
- (command "Pline" e f g h "c")
; V' h4 ^5 z0 G d. T# r- v5 v- R3 V - (command "change" "last" "" "properties" "layer" "0" "")# D" G6 ~5 l. T9 C" b) ?5 U7 a1 L
- (setvar "cecolor" "4")# I: g! l& Q! E5 H! K: W" Z
- (command "Pline" a b c d "c")
1 `9 c9 [# S' i! _% t: J0 V - (command "change" "last" "" "properties" "layer" "defpoints" "")))6 `4 i7 @+ u0 V; U0 O
- (if (= kho "2")
3 K: M( m% G3 [7 Q - (progn8 G( V0 E# y* Z9 l9 ?
- (setq b (polar a 0 (* TL 594)))
2 Z( h% X3 F% e$ a - (setq c (polar b (/ pi 2) (* TL 420))) b/ X" N" u! X6 N; c" C! t' U
- (setq d (polar a (/ pi 2) (* TL 420)))7 o5 J2 m0 d8 j! l( s
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))4 E5 f8 j9 ?! R
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))9 Q# i( e ^ x" {
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
) ~7 Z/ u5 N: k+ Q1 _, ^* W - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20)))): s' ~3 |2 y+ z |, E
- (command "Pline" e f g h "c")
8 v9 p$ k+ z& W$ l; U6 c- w - (command "change" "last" "" "properties" "layer" "0" "")9 D* \. P' j' X) h" G% C- c! w
- (setvar "cecolor" "4")1 i7 L8 v9 k0 \' e$ k/ v; i( H
- (command "Pline" a b c d "c")
, N& z8 W% V$ t - (command "change" "last" "" "properties" "layer" "defpoints" "")))
3 L) z: R6 h* U - (if (= kho "3")0 E: d( p) D) d+ A: h5 @3 d
- (progn
# J$ _+ q. U# i- r# N* I' O - (setq b (polar a 0 (* tl 420)))
9 |+ L, Y+ p/ I) b8 _4 v' ^, z - (setq c (polar b (/ pi 2) (* TL 297)))
; C$ t/ q( a2 q0 M* j - (setq d (polar a (/ pi 2) (* TL 297)))8 X0 u, s4 \- A `8 Z: Q( n9 d
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
* f) { o/ ?; A$ D/ N8 @+ E" { - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
- O b7 R$ W3 V$ h& ` y+ R9 B - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
4 r9 q- D7 A5 K/ w# M - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
# s4 L# R1 h0 V3 y0 ?: [ - (command "Pline" e f g h "c")
# N+ j7 H. _" D; o% J3 m7 a - (command "change" "last" "" "properties" "layer" "0" ""); w' m! Q/ _% {/ p1 J; A
- (setvar "cecolor" "4")8 k; x. i( p, l8 F4 c
- (command "Pline" a b c d "c")
( \: S( u) s. K - (command "change" "last" "" "properties" "layer" "defpoints" "")))( N$ f2 B7 A3 D+ V
- (if (= kho "4")8 V, E5 y F! _/ `
- (progn: T* @2 m2 D( Y# H3 \1 d' i' `
- (setq b (polar a 0 (* TL 297)))
p$ ^9 z: g$ G9 ~" R - (setq c (polar b (/ pi 2) (* TL 210)))
5 k- X% ~' }' m - (setq d (polar a (/ pi 2) (* TL 210)))
1 O' X2 K6 r, |. A2 u - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))$ ?) l9 J$ d* R6 w# g$ A
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))- o+ G: o$ _% L8 J1 ]. }, O$ b9 S
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
3 W, d; ]' S. d - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
8 n1 W' P" e [( |, l - (command "Pline" e f g h "c")
8 ]: g6 P' n. }9 t% b" d$ }4 o - (command "change" "last" "" "properties" "layer" "0" "")! g5 J7 ^. n9 k& m0 [% F
- (setvar "cecolor" "4"), J2 [6 u& w& |% B/ ?& d0 f
- (command "Pline" a b c d "c")! _+ x9 S: y, U$ c0 Z' ~5 D# ^7 Q, d9 a
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
7 `* n0 r/ L$ r* i* l" w - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst), J# o; G# H1 X- p
- (command "undo" "e")% G8 K N$ Q6 R! n, ~
- (princ))5 w+ l: H2 ~) _$ a3 B- f" J
- ;=====================================================================
" L$ F( u6 h4 j6 Q# G - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================3 E {3 O. ?8 p9 t
- ;=====================================================================$ o; J. S! i1 M# h2 x
- " s" e0 O+ R, C6 I: {+ B7 B
- ;=====================================================================/ s( C6 j3 T0 F6 X' S- o$ d
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================
5 q) E, |2 R ]2 Q, S) t8 a j/ ^ - ;=====================================================================8 I4 g5 W" ]6 G9 d
" @9 a. ~9 [, @. q8 {3 b% `( P- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" "". v, k( `' x5 z% ~# `# o
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""# e" [3 ^8 L$ k5 y5 r8 Z
- "M" "MANH" "C" "9" "" "Lw" "0.1" ""- t& g! H( [3 B0 F: X
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
% S& b% r$ d3 O1 {: W - "M" "DIM" "C" "1" "" "Lw" "0.12" ""
$ ~9 y4 W) R6 n) ]+ f - "M" "THAY" "C" "7" "" "Lw" "0.2" ""% X. d; y! A' w% T& v) y
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" "". {2 w2 M @0 a1 K& `
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""8 s* y- u5 _2 K# @) N8 Y$ v
- "M" "COT" "C" "1" "" "Lw" "0.3" ""
6 P z0 m5 F* M' w1 }8 }3 W8 y - "M" "Defpoints" "C" "7" ""+ {3 {, V9 i0 K# v1 c% c
- "M" "0" "C" "3" "" "Lw" "0.12" ""
; T$ {: O' S, J }3 V, ~$ K# a - "M" "CUA" "C" "6" "" "Lw" "0.12" ""! X8 L, y" D# s' g
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""% `/ J& K7 O8 E+ P* M' ]
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" "")) w o- g/ u9 {% I
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""2 D' O" }! O: a0 x1 k! T
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""# Q+ k x$ }' n2 N
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""% g8 ?, @. K3 Q$ e
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""' X9 n) @' i, P
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""
; _+ i& _, W0 `. t: K - "M" "THAY" "C" "7" "" "Lw" "0.2" ""4 [0 x) C. y* }+ P1 H' V2 |* m7 h" [# w
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""$ Z2 X$ c5 p9 e P" f
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""5 ^, }) \' R# s& R; r7 d
- "M" "COT" "C" "1" "" "Lw" "0.4" ""
! ^: w' x& f7 K! Z! o - "M" "Defpoints" "C" "7" ""
1 w/ |. ^+ f$ X9 [) {! ]$ t# u - "M" "0" "C" "3" "" "Lw" "0.2" ""
# z! u6 I+ O% \ - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
- N9 V# P! }2 Z - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
$ w" x! P' o v; w& d - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
y: W4 W* V/ }0 m0 M - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
$ n' S$ z+ T& b - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
5 G& r& _( M# [: P0 l - "M" "MANH" "C" "9" "" "Lw" "0.2" ""
2 T0 D5 D) k/ @& ~ - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
- l l" d4 t# E% l: ^# Y - "M" "DIM" "C" "1" "" "Lw" "0.25" ""
* @8 J2 O* q8 k& B1 [ - "M" "THAY" "C" "7" "" "Lw" "0.35" ""
4 q. e. y5 [' H- [2 j8 w% Q) H - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
1 U/ ^( u v! [' T& x1 z8 g - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""5 E& x4 C6 l0 R
- "M" "COT" "C" "1" "" "Lw" "0.6" ""
2 A! w. L+ D! d& m4 ~# W - "M" "Defpoints" "C" "7" ""
' t8 l& n9 `% p7 ~1 y0 V - "M" "0" "C" "3" "" "Lw" "0.25" ""
8 K8 O T: r& g6 d) D; s# U, H - "M" "CUA" "C" "6" "" "Lw" "0.25" "" r3 d4 C- S+ g/ Q- G7 h
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" "". E/ \7 C2 b; E6 D3 T/ z
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))9 e! Z8 m' M, n5 I( z; b& R* }
-
0 c4 a8 r$ q5 T# f. U, R - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
! s0 z& G% t/ a% O; q2 ^/ l; n! M - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" "" f7 g# @) X- `$ q% P8 F. _4 ]
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
1 \% X5 a+ s0 j4 J - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""- ~- Y$ K9 x' m6 {
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""; L! M6 t* S* N* R: U
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""1 l6 H1 X) g" \) p/ n
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
. a$ a/ f* Q1 g6 W - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""4 A# F6 z/ X6 I$ e0 X# X
- "M" "COT" "C" "1" "" "Lw" "0.7" ""( ]) M7 b2 J. O' K3 R6 d
- "M" "Defpoints" "C" "7" "", g; p( Z$ W f3 ^' v- @
- "M" "0" "C" "3" "" "Lw" "0.25" ""
* w5 T/ m6 d0 H. E! C$ T* Q) u! G - "M" "CUA" "C" "6" "" "Lw" "0.35" ""
/ k: r$ t! z; O6 J - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""0 @% p8 k% h% g
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
" y7 Z8 |( ^. X1 o5 R! D
' R$ }; ]/ Y. j* x* S- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
, l2 a! ^' Q0 i. Z; s% t" }( i) n6 k - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""+ A6 H! a; Y/ B$ V
- "M" "MANH" "C" "9" "" "Lw" "0.25" "", i, d% d. H, t9 y
- "M" "TEXT" "C" "7" "" "Lw" "0.25" ""
r# s2 W6 ~9 ]+ M3 L0 C - "M" "DIM" "C" "1" "" "Lw" "0.3" ""# `$ d# z# w; {+ b' r3 O' f3 l
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""# j- G9 B5 i7 }6 a' g% Q
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
# l0 j5 u7 L) O- o( h7 u/ Y8 s - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
0 \* S8 e! l! j; a- r9 y' U - "M" "COT" "C" "1" "" "Lw" "0.7" ""% V/ V% A P: ?% j+ |: I5 P$ a1 F
- "M" "Defpoints" "C" "7" ""9 ]1 |8 ~ S; M% C+ ~' h3 A
- "M" "0" "C" "3" "" "Lw" "0.35" ""
5 k3 J. i1 ]$ y( s3 j - "M" "CUA" "C" "6" "" "Lw" "0.35" "", p) y% U1 p5 M2 |
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
0 f- F/ @2 @& y - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
! n1 v) s) }( W- X6 l+ a" X4 S - 7 D R, J6 [+ |/ w t) n
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
7 f; _8 a7 p2 c3 k8 @: p9 x7 F# d5 f - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
2 J1 _; Q) m2 p9 }: o. g9 Q - "M" "MANH" "C" "9" "" "Lw" "0.35" ""
* q/ M9 Z9 v# r9 A$ d4 u - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""* t/ y) i) Y+ y2 c* f
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""1 o5 Y a- _0 W
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""8 z+ l9 `! ]' _2 f% ^
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""3 |- y9 o! w# l$ e
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
: l$ v5 Y' W" C' D2 {9 `1 A/ E) h - "M" "COT" "C" "1" "" "Lw" "0.85" ""
/ p) |6 v. B2 ~0 D; v7 r - "M" "Defpoints" "C" "7" ""
$ ?3 J9 n1 M7 |& h( U. ~2 h) Q - "M" "0" "C" "3" "" "Lw" "0.35" ""& n" r+ P2 V i
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""
9 U7 M( @. P8 T7 V4 s - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
- K+ @- \+ y( E. Q - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
5 S3 }2 B! h" D. S& D -
# d- C/ {2 G! T) E: N - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""/ j+ H2 M4 m% t8 z" ]5 ]
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""3 G& l, D( R$ }% v+ G9 E6 H
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""0 c) V+ A% T8 O5 D% V# R
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
2 i0 X% A# D# S' y9 `6 _0 a - "M" "DIM" "C" "1" "" "Lw" "0.35" ""( v. p1 v$ n# T# _' M
- "M" "THAY" "C" "7" "" "Lw" "0.5" """ m+ ?+ U2 w6 G. ~1 N+ ~4 Y' z
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""- B# ~' y7 `) g* u* S3 N v3 {
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""$ w6 B \+ j w' v' z' n& F
- "M" "COT" "C" "1" "" "Lw" "0.1" ""
# _* \: }5 P) a% K - "M" "Defpoints" "C" "7" ""
: Z4 `5 D5 j6 o* X, ? - "M" "0" "C" "3" "" "Lw" "0.5" ""
$ f! |, @, g# P# p - "M" "CUA" "C" "6" "" "Lw" "0.5" ""4 u2 k4 P: x' y) }
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
% r" p- K9 M& [1 [7 [ Z - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))3 m( L9 V! ^* @. p) S
- (DEFUN C:O () (COMMAND "OFFSET"))
0 [: m# V! W7 ?3 c" d - (defun c:s1 () (command "surftab1"))
# V" E# j& ~) M1 M! r3 ~- d - (defun c:s2 () (command "surftab2"))" e5 G5 ~, B m# [
- (defun c:ep () (command "explode"))& n1 f6 l& D" _% @& K- g
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
& R( G' Q0 @4 a - (DEFUN C:QV () (COMMAND "QSAVE"))
9 \/ Y6 h3 `7 X, V& E# ^* m5 u - (DEFUN C:S () (COMMAND "STRETCH" "C"))/ A0 k5 ?' \" y8 N( C, m; n9 J
- % ] W& c: j: E+ e
- ;************************** CAT DIM **************************
4 g- |- w+ S1 X9 ?; Y - $ d0 H' d. O, A0 ?' _
- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I8 e5 w% @: D# I% g* W" X
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
" y2 H) P1 P& n. ] - (SETQ CMD (GETVAR "CMDECHO")) T( C5 ^, P5 _3 x& l
- (SETQ OSM (GETVAR "OSMODE"))8 K% N% J; U( P
- (SETQ OLDERR *error*
5 A2 Z: l! Z" D7 \4 U& G- l( ? - *error* myerror)% B0 W t& P5 a/ `
- (PRINC "Please select dimension object!")' W0 s0 r. d3 c+ H) B
- (SETQ SS (SSGET))
, l7 _+ G2 o5 b$ y+ t b3 _5 P - (SETVAR "CMDECHO" 0)
7 t. l$ i) K; Y, p' _; ? - (SETQ PT (GETPOINT "Point to trim or extend:"))
5 S. \6 O) @% L5 t2 f/ P# c/ T/ E - (SETQ PT (TRANS PT 1 0))
& u0 `2 e: A( U o" m2 W - (COMMAND "UCS" "W")
5 z+ n; z+ _! u& I/ Y8 c - (SETQ LTH (SSLENGTH SS))7 r" |4 [! Y0 g0 q5 F, V
- (SETQ DEM 0)5 U! x4 ?% N5 v& i* e; y3 q
- (WHILE (< DEM LTH)3 I$ X8 _; Z' S) F
- (PROGN
: H5 Y$ n3 }& ~: [. q0 f - (SETQ DS (ENTGET (SSNAME SS DEM))) T1 D1 t* m L5 h$ O2 F9 B
- (SETQ KDL (CDR (ASSOC 0 DS)))! F8 j) y, ]0 U$ ]
- (IF (= "DIMENSION" KDL)
1 t2 r# |, n9 I4 ^9 F - (PROGN
. C" Z8 H& V4 M( `2 e - (SETQ PT10 (CDR (ASSOC 10 DS)))9 A! |# O" j4 k8 T ~1 \$ S
- (SETQ PT11 (CDR (ASSOC 11 DS)))6 ^. s. }) L# R& y- h6 N
- (SETQ PT13 (CDR (ASSOC 13 DS)))( b% x3 f7 W" [
- (SETQ PT14 (CDR (ASSOC 14 DS)))! S& d: Y( D8 e, {, f
- (SETQ N70 (CDR (ASSOC 70 DS)))
6 P9 s( a/ j+ Q5 _ - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
4 _8 G& [' U. b' e& l1 n - (PROGN2 X i# ?# d" O/ l3 V* t. L
- (SETQ GOCY (ANGLE PT10 PT14))
' z* s! a+ H& v3 P( b" H - (SETQ GOCX (+ GOCY (/ PI 2)))- L! n' T1 `# O
- )
# t5 X) E H& w0 W9 X - )
' j: S% m. |/ m. x4 {1 b - (SETVAR "OSMODE" 0)) v( g$ o% Q2 X( `, o
- (SETQ PTI (POLAR PT GOCX 2))
! S/ O/ n; _9 C8 U( y - (SETQ PT13I (POLAR PT13 GOCY 2))
# F ?; I+ e3 f4 d! o; {4 S - (SETQ PT14I (POLAR PT14 GOCY 2))- N1 k: `' h, q, V& g& k# |/ t- ?
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
O6 f# V7 d. L# G: x9 Z - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))2 r7 j7 u5 L9 Y F, R; v! ~
- (SETQ O13 (ASSOC 13 DS))
5 O/ b0 O$ u7 K* f( C$ G, J" k - (SETQ O14 (ASSOC 14 DS))
% Y0 k% }* O7 g4 Z3 l - (SETQ N13 (CONS 13 PT13N))
, E' c# f- {" V- Q2 i$ b - (SETQ N14 (CONS 14 PT14N))
: n1 z9 \& G! t9 h; \5 \ - (SETQ DS (SUBST N13 O13 DS))
- f% v* c8 k- [9 l7 r - (SETQ DS (SUBST N14 O14 DS))2 u5 k" H2 `% c$ t9 `; Y; o: M
- (ENTMOD DS)
* N7 m8 E7 _8 r6 C% c' @3 ? - )% T8 G5 n7 R+ u
- )( `) u3 t1 l6 J) ^5 b% X& D/ i
- (SETQ DEM (+ DEM 1))- @9 ?4 [3 T/ z" {1 ]5 q
- )1 w1 P4 w4 c" Q5 |
- )
! |( ^0 f# M4 ~% [9 Q2 Z& B - (COMMAND "UCS" "P")
/ `, }! t2 O- n+ e6 s - (SETVAR "CMDECHO" CMD)
- N( ~; F( F4 D4 _* \" y& R, r - (SETVAR "OSMODE" OSM). e( D# r+ u7 N' w
- (setq *error* OLDERR) ; Restore old *error* handler
' L/ T2 _) [8 N# c& E4 y* s - (PRINC)4 O4 X% H& _4 z
- )
4 s- u; C7 U$ ?/ H8 ?3 }& R5 U - " A( k/ O9 q" a4 L& N3 K" x
- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI9 r% G& ~/ S9 s9 A ~9 ?
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)- F! x) R! A1 p+ X, I
- (SETQ CMD (GETVAR "CMDECHO"))
' j" J, B5 `) H: |% C; d - (SETQ OSM (GETVAR "OSMODE")), n* T- t+ h; z# z5 R% s3 Z
- (SETQ OLDERR *error*
+ B! V2 @( A3 y4 a6 I# W - *error* myerror)
% F+ d b& R3 p& n: T - (PRINC "Please select dimension object!")
! X" ~7 B3 ? A& A - (SETQ SS (SSGET))! z! ] K y1 |& s' {+ g( C- }) l+ n
- (SETVAR "CMDECHO" 0)
) h6 H; |+ P h5 r. s - (SETQ PT (GETPOINT "Point to trim or extend:"))
0 z, L0 c1 y4 H# d! d0 E: P1 K8 T - (SETQ PT (TRANS PT 1 0))
" X! a" `) O1 T+ G8 n1 V - (COMMAND "UCS" "W")5 H# Z5 `( h& m3 m# G( J/ W
- (SETQ LTH (SSLENGTH SS))
' W1 s, X, W1 ]4 q - (SETQ DEM 0)
f. v( \( {7 V2 }" e: S& O - (WHILE (< DEM LTH)
, A9 q' Y( w2 L5 j, ~7 d - (PROGN
- Y: ~# {. t% z: v - (SETQ DS (ENTGET (SSNAME SS DEM)))
! ]9 n2 E+ {+ L& G - (SETQ KDL (CDR (ASSOC 0 DS)))* R8 D$ `- M" G. h9 t3 u( }
- (IF (= "DIMENSION" KDL)% D# b2 M$ H4 B4 U- [0 y3 @/ I
- (PROGN# z0 u6 `% K4 L# c5 [- E
- (SETQ PT13 (CDR (ASSOC 13 DS)))
% H6 w9 `6 o- B- ]: P) x3 @$ E - (SETQ PT14 (CDR (ASSOC 14 DS)))
6 T4 m; V( Z8 |/ a - (SETQ PT10 (CDR (ASSOC 10 DS)))+ w( Q* G `" L9 Z) b
- (SETQ PT11 (CDR (ASSOC 11 DS)))
4 ]1 k2 _' M; l1 L: U1 G. q - (SETQ N70 (CDR (ASSOC 70 DS)))
7 s x9 a; D8 V7 F c" o; Z7 a- F) E - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))- u: R) z5 o& K1 `, ^& O
- (PROGN
+ J0 R( b a1 a+ S! M - (SETQ GOCY (ANGLE PT10 PT14))
4 Q6 U! b/ T/ g5 W$ M( q. q' d - (SETQ GOCX (+ GOCY (/ PI 2)))
+ O8 @" j$ X/ U - ). U* S; p7 e- D. O& n) `) q
- )
, r' ?; |* K% m - (SETVAR "OSMODE" 0); T( Z! z4 k4 j$ o" D
- (SETQ PTI (POLAR PT GOCX 2))4 `; ?. V6 m5 d! D A$ Z
- (SETQ PT10I (POLAR PT10 GOCY 2))
2 s1 k- K r% n6 a7 Z/ n% E: c# q - (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))8 l. t) A0 u+ Y' s
- (SETQ KC (DISTANCE PT10 PT10N))2 x2 g1 D6 z" h# |) e8 e
- (SETQ O10 (ASSOC 10 DS))
. A2 f% \) [$ p. h9 b - (SETQ N10 (CONS 10 PT10N))
% V4 G# A7 w1 D7 q+ R. _. W - (SETQ DS (SUBST N10 O10 DS))
$ r5 J9 u# M" { - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
5 S# J `9 j. G* I - (SETQ O11 (ASSOC 11 DS))$ V3 C: F% _' ]+ n4 i8 ?5 n; g4 O D
- (SETQ N11 (CONS 11 PT11N))( k& X" S1 s" l- p) t7 y) f [
- (SETQ DS (SUBST N11 O11 DS))- `: }# U+ t; H% R
- (ENTMOD DS)0 } A, c5 c9 W4 ~% R2 l
- )- Y- ~0 t6 p8 j. W. b% a$ ?
- )
! M7 J8 g1 J" { j& o - (SETQ DEM (+ DEM 1))/ K8 U1 g5 L. U6 P. n5 {
- )1 @* y& y8 ?7 `( I
- )
5 K4 ?2 f, N2 {3 U) o0 J+ B& x - (COMMAND "UCS" "P")0 h: _7 j! S' p8 S5 q
- (SETVAR "CMDECHO" CMD)
( ?4 R8 l3 q9 m `" L - (SETVAR "OSMODE" OSM); [; N: j2 N$ c
- (setq *error* OLDERR)) x6 f& P. [5 i' u
- (PRINC)
. s- k) O' F) M, K: D - )
+ ~, K( i8 p% G! Q$ M - 0 X# O. ] K3 P
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
* E2 Y$ O- ~8 o% Q7 E* g7 e2 a; ^
" v8 i3 ]2 R C9 K- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")" m2 q+ U4 i1 H2 b4 P
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
+ J, p5 C( ^9 J6 V$ t& O. Y - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt2 q1 F3 s$ I$ T- d) W
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))' s }/ m) e4 D; \5 H/ C8 M4 P5 w
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
7 @ n3 ?4 j. K0 _, Z - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))+ \0 H# u, M& Q5 }5 a
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))5 Z% x% H2 J$ l$ _1 n. q
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
$ M2 z' {* \' O3 g+ O) y7 X3 n
, t- }2 W9 X+ q7 b6 O) ~- ;;; ================ CHEN COT (TUU) =================! l" q o; p; N
- 3 i; j5 r$ f4 s6 c% |4 i, ~/ K
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
" L e5 X8 M! n8 Q - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
# G& a! Q0 a k# q - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
8 T+ c8 z: h! E- Y% E - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
% |' L# ]2 e" S; Y7 b0 X - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")
3 k8 D5 v7 c- w: | - (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
1 s, Q% }! {# Z& H7 [+ M - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))- s3 w2 k# j6 B* n2 k$ C( C
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
7 ~- b, i9 q1 |' p6 B - * _, j( ~( R/ ^+ a$ e( i& x5 |! B' N7 K
- ;;; ================ CHEN KY HIEU THEP (TP) =================) w- `& b7 E' e5 y2 Y: J! Y' ]3 F
6 ^. ~; N7 G9 ~3 `9 _) ?5 Y- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")8 L# k: _1 a* I7 e% l0 b
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")+ D3 G1 [/ f7 R) j, s+ j. {- x
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt# ]. [* G C7 b- g8 ]3 b+ u
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt))) A: v: f" y9 o8 f3 f9 v
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
( k3 u/ S" v4 X, K% u3 |; \2 Z! \ - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))6 J4 c2 y! S9 I+ ^8 P5 }- r
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))0 W/ e) `/ G/ _2 X
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))' R# q: {- s2 \
- s, _% S7 N( M! }6 K; b- ;=========================== TAM TUONG (TAM) =================================" f. u2 U' O+ J* I* x% G
: W/ b1 H) v' N- (defun c:tam(/ data_m)
% r8 t7 p7 p! ?: ]7 `- O! }) Z0 w - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))% ~; ?# f: m! m: S2 q" T
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
) |6 P# u' R9 p' C8 {* ? - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)
4 n/ F; r$ d7 V4 j$ {. [ - (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
- B' |. @0 }$ m6 K8 Y - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr8 K4 D* }% d" Y$ w7 |7 @" U* C
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
2 ~# m( q$ } S$ i8 f* B) H - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if8 a1 E6 x" [* _" { y
- (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
* y1 m: y1 k: o - distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
; {% F& T, q4 X - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))2 X. r# H/ d0 J. |, m+ w# g
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<8 Y! p8 N. s& k" N# {! x
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)8 O+ m4 T: p+ O& ?6 P3 g
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))2 l1 }, {! U8 e( _, r+ g
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4" d! P- |( R- G" I
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
' {" ?: S# R3 c5 m" g7 o - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
/ I! k; v6 C" A! I; F, M' s - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
) a3 {- l9 _& h! Q* Y" e. V7 N9 X - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))4 \) U4 m9 Y1 Z9 K; E; `. e1 C
- " @( f, v" j# c
- ;============ GHI CHU PHI (T1) ================
\% c' W8 D, a2 c$ b$ `8 D - / g7 w& j/ V8 y( N( t- n
- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
2 i$ j7 q, v: S6 `$ ]3 ?3 S8 ? - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
1 J2 V+ `! ?/ m5 L7 G/ N9 V8 i0 l - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2), ~: D1 i x6 ~5 k! d
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
; e. L1 i, a; l: _/ l) w; L& t - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1)) n! @) ~" N, N, R0 [- X
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)5 r! ~) G4 }7 d# u7 q$ Q' u
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1). F5 c. |" m8 H1 B8 o" x
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )$ R: U: |( `8 p+ y) ]$ b
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")4 X' Q- L7 V9 }& R
- (command "ddedit" pause))# s1 l0 l2 [. k" n+ A
5 G; u9 _1 c+ s. e: b3 X. j- ;;; ========================== Join (J) =================' r0 ~; E0 H/ N+ ^3 I. u
& ]# Y* z C9 ~& i" x- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))+ M, V$ \- b( F9 n% T4 c) v
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? ")). ?+ i) s: u K$ x0 {
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
/ Z7 {8 W+ ~: X, ]: O# J' D - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
% _ l, d. u. d) ~6 S - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC")): c2 r+ h6 U; ?2 o% Z6 z0 Y
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt "")). A3 R e# w2 V, t. J V t2 ^" s
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) 1 R2 D6 G, B6 {5 D
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))+ c9 U; D, a, q
- (setq *error* m:err m:err nil)(princ)): j$ r. E, T7 u7 e* u' g$ K$ T
' ?2 C6 A9 E) P) _- ;=====================================================================
! b3 E6 @1 S: I$ I - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.) U5 u! v' J, a" s$ N9 U( H+ q9 _3 k
- ;=====================================================================
; ^. e8 D, X2 G; a" U- c' w# Q: Y
% r& d" }; P. r$ Q1 Q- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
0 h& J, V2 @" Z5 m1 F2 ^ - (setq old (getvar "OSMODE")) $ {- B7 V1 M' d& w% ~& K
7 b& T+ d, ~2 n3 |% @$ g- D5 S- (setq p1 (getpoint "\nStart point:"))* G& B! i" a$ l" \8 w6 E
- (setq p2 (getpoint p1 "\nEnd point:"))
3 s8 `. U2 M0 C! d8 u9 ]1 M - (setq side (getpoint p2 "\nOpen side"))& g" C. t2 V& j% L, G& ^# {' t7 R
/ M+ }( X5 B9 \- (setq dis (distance p1 p2))
- a2 `" h5 Z0 g4 M4 Z% X* z7 ? - (setq ang (angle p1 p2))
* W5 D8 {+ ]/ {7 g - (if (< ang (angle p1 side))) \5 I" t% O3 p4 `) c7 u
- (setq angside (/ pi 2) )- O- b$ [8 O, k& C* r
- (setq angside (- (/ pi 2)))3 I9 m+ P) f# i& U
- )6 e. K' I6 d; j- l! d
- (if (>= (- (angle p1 side) ang) pi)
( `! x% w7 }* q4 b' ]3 q$ K7 v; ~- H - (setq angside (- (/ pi 2)))
* P8 b. Z2 r, h2 l+ N7 p5 _ - )
" H: p1 a8 H! f - (if (>= (- ANG (angle p1 side) ) pi)
7 X4 ^9 _ p7 g! _ - (setq angside (/ pi 2))8 U' ^* T' u+ w/ P% G: k
- )) q0 X# G) e2 i( Z& J* I: p
7 Q q/ g: V0 W- (setq p3 (polar p2 (+ ang angside) dis) )
! Y- {# N& J) @* E) V8 g1 `! ~ - (setq p4 (polar p1 (+ ang angside) dis) )& |! C( L0 F" ?9 m- j! d
- (setq wid (/ dis 15))
8 H* K6 D# M9 T# C* |- \" H2 o j2 G
. A, i _" A6 J6 E- (setvar "OSMODE" 0), v( b& ]8 R6 o) r4 p/ G% t5 \4 _
- 0 G& c* V- {/ V& Z0 A- i8 F0 V3 {
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 8 ^1 E; |# M: \1 w4 ?8 E# Z$ {
- (polar p2 (+ ang pi) wid)
/ f! }; L/ N. m4 p+ G - (polar p3 (+ ang pi) wid) : ~" p9 h8 ~1 W5 B
- "")
/ C# j4 s' X' R- y$ H1 I - 3 J7 h6 t1 r7 o. h; W. {6 S' t
- (setvar "OSMODE" old)
1 g# j+ ~. \6 Q$ j) U - (princ)
* |# B3 U- F# p* x9 o2 _' Y - )
7 B6 Y- T9 @/ ?, \9 [+ \! g, J% n/ Q - 4 W, [% H5 f4 M) g
- ;=====================================================================
# ]4 J3 C$ k1 \! D% F8 q6 X& _2 Q. D - 3 w! n+ B; M* ]; W# t @; q
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)2 ?0 I# Q# U# @5 t- f' i
- (defun cua1 (pt1 pt2)9 [0 W/ f$ _- D+ h5 b0 W# X7 V1 Y6 x# _
- (setq p1 pt1! {$ k3 J1 E1 t( A- q
- p2 pt2)% Y; |; s) `1 {4 J; O
- 9 x s$ |" h- H9 U4 r# S2 T6 L
- (setq ang (angle p1 p2))
. B9 W0 y* I$ F% Z - (if (< ang (angle p1 side))
" ]! B+ B( l w- i& B$ u - (setq angside (/ pi 2) )
: Y+ a$ W; }1 C - (setq angside (- (/ pi 2)))& G4 I9 W5 V$ \+ Q
- )
9 j8 G- ]! z% s3 H7 Q - (if (>= (- (angle p1 side) ang) pi)* ^$ K+ s t/ r4 _) n/ G
- (setq angside (- (/ pi 2)))+ W) t- B; \9 J6 V- d/ T
- )3 u- A/ t8 T% v
- (if (>= (- ANG (angle p1 side) ) pi)( m) ~ P# d9 n) K: A( Q5 s5 r* h
- (setq angside (/ pi 2))( h. z% X% a2 w% V6 q' s
- ), y7 c/ u- R2 s5 Y4 c' C
: |9 Q8 D- D% p8 ]1 s- (setq p3 (polar p2 (+ ang angside) dis) )1 \9 I; o& H8 z5 w8 x' L
- (setq p4 (polar p1 (+ ang angside) dis) )
" {) @" T, r* u$ X( @- ` - (setq wid (/ dis 15))
# F2 A9 e9 `! ?
* d9 t+ m% l3 Z& d! j- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 6 M' k9 n+ T( ]/ K
- (polar p2 (+ ang pi) wid)
2 |# s- I! {1 n4 S" ~, j% ^/ f - (polar p3 (+ ang pi) wid)
) _7 u' t ?; V" n; K1 C: U- A - "")
+ V$ k* \, E9 ^) B' t9 D - ): @/ a* U1 S- w" z5 f* ?
- ;=====================================================================7 T( Q0 S3 o: w
- (setq old (getvar "OSMODE"))
( `+ H c r0 ^6 O+ I! v2 I7 O - ! J$ N' `* B* ~" I0 P, E& z
- (setq p1 (getpoint "\nStart point:"))
: ]+ K7 Q' \2 Z+ H5 @ - (setq p2 (getpoint p1 "\nEnd point:"))* Y) k+ D8 j/ \1 }3 h
- (setq side (getpoint p2 "\nOpen side"))
) l5 \* i( }3 H, X8 w: n4 d
' c( @) s, y0 x% G- (setq dis (distance p1 p2))
( b9 w4 \5 x0 C& P - (setq dis (/ dis 2))
, s3 i! @7 x4 Z' r3 S# E, j, \; y
" k- Z* m0 L# t$ u1 f9 L3 k# f# o2 g) f! ?- (setvar "OSMODE" 0)+ M& ]# V1 H6 L
+ W; p, L# h9 V- (setq p1 (polar p1 (angle p1 p2) dis))+ s- ?0 _( W" O& E- B
- (cua1 p1 p2)
6 t! f8 \' e5 Z' C! } - # {, a. z5 }. `4 G+ v- D
- (setq ang (+ ang pi))
0 S. D e& A1 A$ L% A$ W: s - (setq p2 (polar p1 ang dis))5 h0 F7 T( b9 R H4 a2 [
- ; (setq side (polar p1 () dis))+ z6 k; b; K2 p; r
- (cua1 p1 p2)
! ?. w8 e) f: e9 T: D) f - + }9 W1 a. W! |' m4 ?/ x
- (setvar "OSMODE" old)
. }; {' Q, V. ~0 l' U - (princ); r1 X) J' G" j+ b" q. b8 ]9 J
- )
& |* `6 u' k- B: l( ?
6 ?: P+ N* s5 }$ x- ;=====================================================================
3 z6 Y9 H5 ]( w - ;"Glue" text strings. All adopt first's properties.
& y& `& Y/ A' T1 O& @ - ; Author:$ c c; i: \# \+ S" s
- ; Henry C. Francis
1 O( B0 d) T' Z* B - ; 425 N. Ashe St.+ |( `& }! E, O0 W. V. W
- ; Southern Pines, NC 28387
: B" `) K `& F+ I% K - ; http://www.pinehurst.net/~pfrancis
! h; C) F8 X9 l# k' U0 C - ; e-mail hfrancis@pinehurst.net
! `* H. _* P5 [5 Q' W, x% R - ; All rights reserved.# f. b* B; S$ E2 G/ D' B- R! a- w
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)
1 g$ i1 f. k( Q n7 U8 v - (while
5 e6 q7 ~$ D" R, e% g; ?& _ - (not( c9 N8 r/ z p; C6 ^: t( k; Z8 u8 }
- (and
# ~4 o& S' b* L4 K - (setq ename1 (car(entsel "\nSelect first text string to join: ")))
) S% d+ c1 ^; N) a0 i( C - (setq ent1 (entget ename1))
; R' X5 o' j: X - (eq(cdr(assoc 0 ent1))"TEXT")- S f+ r3 n E5 ^) U7 O; d
- );and
1 T2 l" k" B4 M( R( _+ E - );not
! e! ?4 u' H: U1 q# h6 ? - );while/ ^; g2 ^) K. s# x( `# n* @3 s2 e8 C
- (setq old1 (cdr(assoc 1 ent1)))
+ o' ?! D1 @6 f( T6 t/ k - (while
; d; l4 `' |! j) Q( l - (not2 \/ y6 s. j" G+ d* S9 S
- (and
) x8 j- q: D* X2 ?( K# v L* d - (setq ename2 (car(entsel "\nSelect second text string to join: ")))% L, C) U( L8 _
- (setq ent2 (entget ename2))$ ~. g- h$ [4 D! o
- (eq(cdr(assoc 0 ent2))"TEXT")
2 v. z5 y# H% z8 s5 z/ r - (not(eq ename1 ename2))/ m. z6 p, U9 m. K
- );and( ]$ } F3 q* c0 K: k8 F
- );not! s; w0 m3 Q) @* I
- );while* w# h% K! R1 k$ t
- (setq old2 (cdr(assoc 1 ent2)))
* f7 s( W7 [! W - (setq new1 (strcat old1 " " old2)% D0 t9 O8 z: X' A
- ent1$ F4 I" V- n% w+ U" c3 u% [7 L+ l
- (subst (cons 1 new1)
; G: _8 \- Z8 d( z, u1 P- k5 a8 T - (assoc 1 ent1)
1 g% |! ~: N( d - ent1); l7 ?, e% E. i* {2 {: r
- );setq+ j% S/ t& N8 L+ T8 b) P8 X( c
- (entmod ent1)3 h r0 x2 U) v1 T, q
- (entdel ename2)3 }/ U5 {7 K6 f) S
- (princ)' ^, y! M# _3 H# O9 i
- );defun
- y+ @- K; d* u/ ~; Q6 k* f
: n& Z# @/ H+ h2 S6 p- ;=====================================================================7 _/ B4 e( D- l* }" s' J
- 6 R) `, c) ?' C+ d
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)" o2 J _$ D& ?0 J
9 S, `2 N' Q2 ]/ e3 C- (defun nterr (s)
& s( f o; }1 w+ c9 W - (command "_.UCS" "" "_.UNDO" "E")
1 r |0 Y& u" ^4 } - (setvar "cmdecho" 1)% }% z3 B8 `& e, |8 l
- (setvar "blipmode" 0)8 K% }4 L5 G0 m; H# ^1 }
- (setq *error* olderr)
7 M: [ ^- y' Y, n - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil + Z& b: {/ `. r& ^) o
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)7 c9 a; p- @: E' U# P, \
- (princ)
1 k. ?& }, }, ]" w - )6 H* a! z, m# R& A/ _
- # w7 M0 k$ h+ ?* m1 ~" {) G! ?
- (defun tim_in (dt / p01 p02 ktra)' i! P3 J# { o" O8 z6 E
- (setq p01 (cdr (assoc 10 (entget dt)))): U3 Q- h3 [' H% o2 {; p
- (setq p02 (cdr (assoc 11 (entget dt))))
3 D$ f( G; N2 U7 I - (setq ktra T)
2 h* u; x/ L# l7 B7 J - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
8 _; D+ h* N J& ~( E - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2))). H$ z4 @" ?6 U! `1 t
- (setq ktra nil)$ s9 w& {5 l! W, C& B8 B6 t/ B
- )7 I, |4 H, `% p/ q
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) - b. v9 Q* F; ~) ~' q& X
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
3 _5 o! W' o. g - (setq ktra nil)( h5 T- h' `) B& R2 R) X) X" ~
- )
7 l y5 V3 a8 U( \9 D& y - ktra7 \1 P; O0 ?7 i4 a8 j# X; D1 Z3 e
- )9 ^0 J8 W# d4 u9 ~$ `" \* a
+ G9 F" [; T0 ~- }, G- @- (defun timdt (dt1 dt2 / p01 p02)
% B$ u4 v% Q: B+ \6 x1 ]/ ^ - (setq p01 (cdr (assoc 10 (entget dt2))))
E: N$ R* p! p$ W+ F - (setq p02 (cdr (assoc 11 (entget dt2))))
3 A& ]6 V5 a: D9 o+ @7 j - (setvar "ucsicon" 0)
: q9 _. b; l1 H) g0 a. u p - (command "_.UCS" "E" dt1)$ }# H) l% W% _( W
- (setq p01 (trans p01 0 1))- X! }, t" m- y+ H
- (setq p02 (trans p02 0 1))( t3 b4 X# |. h) v* e& }
- (command "_.UCS" "")
+ G2 p4 n4 X2 e+ ` - (setvar "ucsicon" 1); \; V" Y6 U! O3 K4 b$ Q: H
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
+ z0 [/ j; L8 q3 K% x; Z1 [/ r - T8 v4 y) V! R8 k8 q X# E2 F
- nil
l! l# i1 T" L. Z, K7 v# S - )
" s+ T: P2 O9 W+ X; W4 k: N - )
* T3 z/ `5 L! r& m/ e/ u
5 ?: C! S, u! o; l' l- (defun tim_out (dt / p01 p02 kt)# G+ T9 N7 C9 T
- (setq p01 (cdr (assoc 10 (entget dt))))
: m+ t3 \& l! a0 h7 H6 ]) q2 b - (setq p02 (cdr (assoc 11 (entget dt))))
) D4 y7 `! L; a; Z" E/ C f - (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) + Z2 Y) U b4 w% Z* `3 {% h
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2))): R% x( e; S; L; j9 K) ~/ q7 ]5 F
- (setq kt p02)
: T. L0 L R$ Q9 J& z - )
7 w5 R9 ]8 D! B: q( V - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
/ o7 }- o3 E7 B- g - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))) X' k. G# O7 L
- (setq kt p01), C7 \. N9 R8 n3 Z
- )
7 b, x0 @% G5 P& ~, Y - kt
" `8 b: _$ @6 K8 j3 e2 h - )/ h6 t; R: V6 x7 t; y' _- q
8 S/ p* ]2 `; y. P) ^/ @- (setvar "cmdecho" 0)
2 V/ W. l. [, ~: K7 a! I4 l - (setq olderr *error* *error* nterr)5 |, k. s0 v0 A/ x, E* m8 T
- (command "_.UNDO" "G" "_.UCS" "")( r4 c4 F" r: N; X4 W( y
- (while (null ss1)
9 Q9 c/ d, @. R/ G3 E3 e0 W - (princ "\nChon tuong muon noi...")
1 ?0 i) j! O$ B0 Y( A2 T, K - (initget 1) v( [2 N9 r, x/ Q1 c+ e- a
- (setq g1 (getpoint "\n>Goc thu nhat:"))
: E) e- _0 D8 N/ _ - (initget (+ 1 32))
: B1 V) [& q; ?: h. M - (setq g2 (getcorner g1 "\n>Goc thu hai:"))% D$ q9 M, O, v u E' ?9 U
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
/ x2 C+ X% ^+ K5 R9 y - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))9 B. {- d) B/ ^$ F& |# ~
- )
o* ]+ f* K8 ~% e$ I5 Z - " {9 L& X7 ]: f
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
: y1 O% n0 m' B7 D3 j9 r% {, U - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
+ W% I& [! x8 [- p' b; w- o0 q - g1 temp)7 ~: u: O" j8 e
- (setq ss1 (ssget "w" g1 g2))
& V1 \0 J v6 y, l1 [ - (if ss1 (command "_.ERASE" ss1 ""))4 J M- r6 K/ A2 ^3 ~
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
* `4 f3 R9 ?8 v; h -
2 D8 ?. m' h6 c/ K- u - (setvar "blipmode" 0)* j A6 n4 l7 j; n& Z! W! g! B; a
- (setq i 0 l (sslength ss1))
/ s( O: N0 K7 ~+ n8 e5 P - (while (< i l)+ P# @% `5 m7 I/ T7 Q* P9 [, k
- (if (tim_in (ssname ss1 i))
$ x, l, K" j8 S" b- | c- k - (progn
% M% M, m- a, d U4 m - (ssdel (ssname ss1 i) ss1)2 Z7 w1 D5 U- |" @. N# T
- (setq i 0 l (1- l))
4 V- f4 o1 f$ {& |( _2 ]- h. ~/ m9 Z - )
4 @+ `8 D0 c2 L. T7 C& M$ m - (setq i (1+ i))
- r; J4 y' N) E) i* u: z6 b9 I - )% ]. U% `5 L* f1 A/ S
- )6 H, r$ [( W$ c5 Z/ q3 ^
- (setq l (sslength ss1))( @! s% s; V* {3 M
- (while (>= l 2)
; z; Z+ f8 `* }: D8 n - (setq e1 (ssname ss1 0))
& |7 j8 a( R! ?, s* F" g6 [ - (ssdel e1 ss1)- G: o' V# l% s( J/ X5 F
- (setq e2 nil i 0 l (sslength ss1))
- S9 p* U$ `0 R) W+ u - (while (< i l) , ?! z. W0 P9 P% o4 h" ]
- (if (timdt e1 (ssname ss1 i))0 X) u8 U; f L2 z- _/ M9 W
- (progn
+ ?$ S/ J( U5 v% K6 X" Y* T R - (setq e2 (ssname ss1 i)): I5 C/ L* O, Q7 P
- (setq dd (tim_out e1))7 V+ |3 e1 z) b4 v0 S
- (setq dc (tim_out e2))% e+ {+ T! ~. V! P/ K9 R( ]
- )# w9 {# h- J2 C' e! m
- )
2 ?3 y5 \0 n2 ^/ ?( \. N - (setq i (1+ i))
, s4 B+ H& @9 I2 O& k - )
, H8 Q! A9 f0 \4 s, u - (if e2 (progn7 Y; y! T. }1 w/ c
- (ssdel e2 ss1)
$ h- n- I7 g8 `! E - (command "_.ERASE" e2 "")
* n* X8 U5 o8 R7 h- B# z: `( [0 { - (setq temp (entget e1))
+ G% P9 u" n; H2 X - (setq old (assoc 10 temp)) x5 p/ X5 n8 [1 z6 h4 w
- (setq new (cons 10 dd))
/ F) F0 t: A2 ?9 F/ g - (setq temp (subst new old temp))
7 y, s' ]+ \0 y2 }- N - (entmod temp)
. o2 z; l9 c9 B6 h - (setq temp (entget e1))5 n7 J0 ]1 ^0 N' ~3 l/ h
- (setq old (assoc 11 temp))" l5 n9 m; }& f/ v$ x+ a
- (setq new (cons 11 dc))
+ \0 p2 ~" @4 Y& c - (setq temp (subst new old temp))3 E8 a5 m1 e# I1 Y# T) ^5 b& K" i
- (entmod temp)- ?3 T C* C' Z; Y& j
- (redraw e1)* m* b1 e5 o# D/ B( h( q- ?
- (setq l (sslength ss1))' U! `( t$ n3 V% c- M% |7 |
- )
: ~5 Y3 Y' J" e7 v, J+ ?2 n - )
8 D" n+ _" L& G9 r0 L% ?$ V - ); M5 J/ t' M. x- a; @& k) z s, i
- 1 y6 b9 M* {5 \) n
- (command "_.UCS" "" "_.UNDO" "E")$ m' s+ c# Z0 s; q
- (setvar "cmdecho" 1)
* u+ `* r- H0 z2 b' L( t - (setvar "blipmode" 0)0 p; p9 i i: h0 p
- (setq *error* olderr)$ B2 s' s/ v& [% G1 s. N$ T
- (princ)
- _& R! c% I9 h - )5 M, C' J' {8 Z% Z4 Z O
- ;*********************************************************************5 a, S# `( {6 A. v! z
- (defun ketthuc ()) ?- S* ?3 b. ~$ H0 l9 ?- S ]6 n. N
- (setvar "cmdecho" luuecho)
Q- C% ^. c1 ]) c5 r9 }4 y - (setq *error* luu) d+ W0 D: o3 T
- luu nil
' L6 e* A! Y# ] - luuecho nil2 Q* _4 |# Q% [% L
- );setq
9 R) A% _2 b% l5 { - (princ)) _' X3 e o% ^) W! m0 g7 P/ M
- ) , X' c5 Y. p/ d; @/ J
- ;*********************************************************************! c2 ?) K6 r' u& S) I/ C
- (defun modau ()! d5 w0 k6 g2 {5 U' w( {4 f3 `' E
- (setq luu *error
9 {" v% k# h$ X - luuecho (getvar "cmdecho")
2 l0 }/ C y' ?" Q8 p - *error (ketthuc)- q9 C; i, v% v) p
- )! o3 x! j" x! K8 ?8 G3 K4 O9 \
- ), o! F% m$ V r3 y; {9 c0 O U
- ;*********************************************************************
* ?) g7 _/ U! J _' z0 Y - (defun xulytext (text / kytu ma sokt luusokt lui )% H2 D9 V/ R9 T* H
- (setq kytu (substr text (strlen text))4 C1 {2 q9 m5 Z
- ma (ascii kytu)- \9 o3 V3 ?* s* d
- sokt (read kytu)
0 l" r- O* i/ Q, a# L+ f/ d/ T - lui 1
' _7 G) l5 r Z( l) g$ ~9 h - )- r0 H+ s' }& [- \% Q# @3 C
- (if (numberp sokt)
: |" W' S3 `/ V* t+ p) _5 f- j - (progn! \) F6 F/ B6 d, X; G5 e; R
- (setq luusokt (1+ sokt))
7 T* o- G5 S {3 ^5 r3 S2 { - (if (and (numberp sokt) ( y. w! O) }6 _5 ]/ I9 I
- (> (strlen text) 1); Y$ b8 d# {* B2 s: B
- ) % M7 U: i5 N, Y0 z; w( Q. c
- (progn
% o1 k+ ]6 n; n, _) |) @: ]9 ~ - (setq kytu (substr text (1- (strlen text))); C" x) U0 J1 R% _
- sokt (read kytu)
' Y5 Q q7 k' o - )
% ^# }& ~. Y* {2 ~ N - (if (numberp sokt)
8 O9 s$ y: ] B* x9 t - (setq luusokt (1+ sokt); a0 y- e3 X( X# U% d7 D+ j
- lui 20 x+ u _, I _9 p0 z
, h) p" N* o5 W3 O( b- )* _" x, Y; E" A
- )
( y& S" D; J$ a - );progn 3 H' v: J, e& U) }( I" u" [- c
- )
! a# I8 z7 o2 G1 n1 V - (if (= luusokt 100) (setq luusokt 0))
0 E. ~2 b! f4 i. z - (setq kytu (rtos luusokt 2 0)" I: d* l% G( O
-
9 w6 |: N" C6 v5 R+ H9 x - text (strcat (substr text 1 (- (strlen text) lui)) kytu)
. d# S: o9 ]9 C5 H# T - )
+ n+ s' F: O: i; b7 s% } - );progn # Z+ c- x8 A( C% ^$ U; e5 J
- (if (or (= kytu "z")( g( H; _" ^& ~# h/ {% \
- (= kytu "Z")
2 s" Q+ B% R' D/ u8 A0 c$ _ - )
% n1 P$ K, N8 H' ]2 Y2 ? - (setq text (strcat text "0")
7 ]% ^& F6 _& K1 \ - textxl "0"+ P0 i$ u$ ]# G) d
- )% T) v- `8 O5 ^* u* t% H
- (setq ma (1+ ma)
7 o8 o& T6 x4 u, M0 H9 N1 e w - text (strcat (substr text 1 (1- (strlen text))) (chr ma))3 i/ N. A: |2 s6 B6 v
- ), G) A7 A. i0 x3 b) Y
- );if
; E( V/ y1 ]9 @6 R' h; b# d) H - );if
, z- U8 j- W4 A$ g - )5 D2 ?+ d% g0 _( s, H) s# I
- ;*********************************************************************; f( K4 a& u+ F" W7 v# z
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)9 f( }9 S- H+ p; a Y+ U
- ;Neu doi tuong la text thi tiep tuc
. ]) P8 S. P1 @7 i: S a - (setq doituong (entget tendoituong)
; Q- s$ F& C5 A7 G0 R2 F - kieu (cdr (assoc 0 doituong)) q! A: s1 s6 U( w, h
- canle (cdr (assoc 72 doituong))4 n8 v; k8 \1 Y# u2 Z, E6 ~( a
- )
1 u/ {& ^, Z) u! C# V$ L% ] V3 Q7 e& w - (if (or (= kieu "TEXT")
" W$ F; P. T0 \) [ - (= kieu "MTEXT")
; T* L1 h) p# X! o$ l - ) 3 L1 I8 w( ~$ Z
- (progn2 i1 n, J- g; B V7 H
- (setq textxl (xulytext textxl)& N; I3 p$ [' W0 L
- text (cons 1 textxl)% r* V7 s" _- ^. {/ F) e$ z
- vitri10 (cdr (assoc 10 doituong))
; K4 y. |' y+ ~- C$ P, _0 a - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))6 u& y. k* A9 M8 X
- vitri10 (cons 10 vitri10)6 ~" K) _! ?+ ?! _6 B
- vitri11 (cdr (assoc 11 doituong))2 f3 k. N( S' g( d. C% b" T/ v
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))8 |/ y; o5 d8 B3 u4 I' O/ p" q
- vitri11 (cons 11 vitri11)
2 C i7 U3 M1 Q3 G* ^ - dem 0 Z# f7 X! C7 N- k3 G+ @! O
- dsach nil5 Q8 y1 j& Q" ]1 e$ p$ }" I
- )
. ~ G/ M" F2 h& O* t% \ - (foreach tam doituong5 P' ~5 n: p+ n& j" V9 q; t
- (cond
3 s; o: O2 w2 E" ?" e - ((= (car tam) 1) (setq dsach (append dsach (list text))))
( v. f' V, | a3 R% {- N9 E+ T - ((= (car tam) 10) (setq dsach (append dsach (list vitri10)))); a8 b0 a/ x( X0 V4 P
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
9 ~* i( U5 f/ z - ((setq dsach (append dsach (list tam))))6 K: S$ `# g2 d; t! z8 b* b( P
- )
2 E+ H ?2 ?, R( q - )
, ^9 s+ B$ D2 E, u, v - (entmake dsach)- f4 ?% k: t1 i0 _
- );progn. I4 E) r1 T; V9 a' r0 e! ^ t
- );if8 _" m$ U" t8 O- I1 Z' j; |0 P
- );
& {3 p8 z+ \4 O. u+ _8 z- u - ;*********************************************************************
0 U0 j, w! v; m' W" K* ` - ;sao doi tuong cu sang vi tri moi8 }2 w& G: u* }, `! f# `
- $ r/ X& m# l! X
- (defun copy_dt (tendoituong )" L; o) z0 G, j4 ]) u O
- (command "copy" tendoituong "" goc toi ): L" u/ c* R% N0 e
- );defun, D$ t7 I1 Z% N/ L
- ( _+ E) x% Q# v3 P' O
- ;*********************************************************************% r3 d/ ^$ l8 G9 P& o. T$ r
& Q3 _4 `0 u# j) _- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
! ~# z$ t9 g/ W6 M) }. R - ; Khoi dau cua chuong trinh
R4 s) T6 r( w" F - (princ "\nCopy Inteligent...\n")% e& r% B0 \+ o' W% a& J3 @
- (setq luuecho (getvar "cmdecho")
& E8 A& {2 i6 X9 E8 z - luu *error*
. w# ], l2 ^" }7 C1 y, C5 D9 P - *error* ketthuc. N- a( O. X: t. O7 j8 }3 j7 s
- cumdt (ssget)
( W" R. c5 e8 ?0 F0 O. X ? - dodai (sslength cumdt)
_; X `4 V) Z) f - goc (getpoint "\nSelect base point:")9 H! P4 {( H; \- O# ?
- thoat nil/ h/ y6 k# a! r. `
- dem 0
8 W, B5 G- o8 m) H3 N - textxl nil
. R: G) ?, n0 k/ J# ] - );5 ?# Q% ?- l* Z
- (setvar "cmdecho" 0)
) V1 o* `0 R3 d* {$ G - ; Loc ra duoc ong text de xu ly
7 j# m: z# m; L" y( V! U8 Z - (while (and (= thoat nil)
) u& X- F9 x& q6 L8 f) W - (< dem dodai)
" U. J, O* l+ ]4 C$ S3 y+ u - )( x3 P& Q) P% f5 w( X" Y
- (setq ten (ssname cumdt dem)
1 d8 V1 d% r/ l) J& ~/ @ - dem (1+ dem)
; W$ d; h9 F) V - doituong (entget ten)
0 K# b; E+ t3 h6 X - kieu (cdr (assoc 0 doituong))
9 r2 J! u% j( @3 l! d - )
X& P1 T) U: l( D; Z -
8 z3 r2 X5 T7 B) K% h: L - (if (or (= kieu "TEXT")
( f; o! |: ]4 O( S7 ~2 e O: [ }+ j - (= kieu "MTEXT")
& z5 }, O, i, W3 s - ). B/ i6 J0 T0 ^! s3 F
- (setq thoat T& b- @0 Y* [+ L' X, x1 U# p; q
- textxl (cdr (assoc 1 doituong)) ) G" \" g, ^0 c- \1 t0 e5 t
- )
$ R7 v) w9 j1 l - ), o7 u" H0 ~9 x, S4 u" _
- );/ ]7 @6 R, g9 P8 n9 T
- (while T : ^- u7 n2 ?* R) Z: t W
- (setq toi (getpoint "\nSelect next point: " goc)
( q% i; O- Z. V9 ~$ Q3 O, J0 e - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
' p$ D6 b* u9 h3 Z: `; Y - dem 04 z" n0 b8 {5 k+ X+ ]( [
- )6 ?8 X$ w' @- `1 Z0 w
- (while (< dem dodai)
0 \1 T/ J+ Q7 x) y. B, o - (setq ten (ssname cumdt dem)
1 [7 {9 E" T# g& t! l3 @4 O, k - dem (1+ dem)' J8 q/ A! I, [/ E/ \# h
- doituong (entget ten)9 g& p* {! J5 E! o. Q! c
- kieu (cdr (assoc 0 doituong)) " Y) p: E4 x3 `# a+ i
- )
/ r, O: j& S+ {6 I5 o6 N1 T( D; G( h
+ D* k' G0 V( q' Z$ z4 Y) Z- (if (or (= kieu "TEXT")
7 I* ^. B4 y3 [( h* ? - (= kieu "MTEXT")
. ?) l+ Y% o; ^9 p7 i; O$ C; E9 t - )7 W3 r6 x( @' ] M* Z6 v7 o
- (doitext ten)
) f [- B. M9 g) b& g) Q - (copy_dt ten), U- S3 p3 w% E; w" d+ W3 c
( H A% E) D0 u& C \' d- );if( ^1 `( z! D" ]8 ?8 ~0 n
- )
( ^' \, \! E7 F0 J! b - );while
: A' M% L6 I* q" `: k1 Z- x$ @ - (ketthuc)% L# g) u% P$ g% a
- );defun
9 U" R0 K$ I' ]2 l) ^7 ?( { G9 J5 k - (princ "Type \"DG\" to start")3 K0 ^, p( H6 g0 Y; T
- ;Note: bien toan cuc: textxl vitrilech
: m t, Q- k# b2 S1 z: ^
' P! [* r1 ~$ v/ l, }' R8 R- ;=====================================================================
1 C' C; n' v/ E - ;;; PLJOINFUZZ.LSP
0 n- A( a, G4 ^7 H, S6 I1 Z) I - ;;; Joins lines, arcs and polylines using a fuzz distance6 q. s W+ [: ?- X) P" k9 `6 t
- ;;; If only one object is selected it tries to join to all objects that are possible6 ^ T4 Y3 h" c( v
- ;;; By Jimmy Bergmark
( \' x1 }$ K3 y* Q1 w - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved- [- P+ o ]# w8 r, ^. s1 F$ \% ~
- ;;; Website: www.jtbworld.com6 W: @- R# m( A$ \+ O# ]; S( J0 ^6 _
- ;;; E-mail: info@jtbworld.com
0 Z& O% Z3 a! c, W - ;;; Tested on AutoCAD 2002,2004 and 2005
- {& V, D5 s/ D2 c$ D - ;;; Latest revision made 2004-11-119 }4 z! t$ m6 v8 [
- ;;; Minor code cosmetic change made 2004-11-13, |; K: R$ u: o* a4 _0 J9 d
- ;;; Bug corrected 2004-12-232 H, b: m% @+ q' o) V M# I" ^- j
3 ?. o9 J& n8 |% x) B4 X4 u- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf4 L" H, g% B* ~( @/ i# b
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
# I, X, i6 g& ~6 Q# U - (setq oldcmdecho (getvar "cmdecho"))
2 n9 ^7 p4 X% _6 U! y4 G$ r - (setq oldpeditaccept (getvar "PEDITACCEPT"))
0 C0 V6 Q' L D, Z+ c - (setvar "cmdecho" 0)
/ l# ^# g* c1 M7 y3 X# P* ~ - (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
( c% D9 ?& i, ~ - (if A2k4 (setvar "PEDITACCEPT" 0))
7 t. n" j, A) K1 c i A - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))9 B! a/ P7 R. V
- (princ "\nSelect object to join: ")
( b. X6 ?# x6 b' w - (setq ss1 (ssget okObjects)). S( F# n; S- A6 j
- (setq fuzz (getdist "\nFuzz distance <0>: "))% A W3 V Z- b4 [( I
- (if (= fuzz nil) (setq fuzz 0))9 O( E9 J' Z! {( h8 f) D
- (if (/= ss1 nil)
; o$ l0 [4 d5 y# }+ t$ j n" E- s - (progn
2 J% Q4 L* z: H2 |4 F' C. H - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))1 V. P# o2 |/ s. f% n
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))! O1 W. X) `* @
- (if (member objType '("LINE" "ARC"))
7 n' t0 Y0 ~5 }/ K7 I$ F - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
0 x* L0 Y8 S A, f* { R - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
; a1 `/ G6 y' O, I0 J3 r - )4 s# H/ n p6 K/ G8 j( }
- ): V2 Z& }1 y& o5 G
- )5 v* P. d8 d/ S5 U' [
- (setvar "cmdecho" oldcmdecho): ~. Y4 G' _! q+ c- g3 }
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
d' n: W: c9 A" J- u - (princ)$ r$ U; A/ o" D0 j6 I
- )1 O* Q$ ~* n6 R! S8 R
: h! t4 v: C+ q' M m- ;===========================VE CAO TRINH===========================/ G- @% B n6 E4 p
8 [7 X! Z0 a; |# o0 |- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL* A9 K3 f% h. V2 n" L" k( P
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)8 q" q& I* v" K4 D% Z3 [
- (SETQ OLDERR *error*+ a) @% K! N+ I
- *error* loisb), M5 c# i6 q: b+ h3 g+ h5 _" z
- (command "layer" "m" "dim" "c" "" """")
- ~2 g- {3 b: t8 j- _% q) [ Y# m - (SETQ CMD (GETVAR "CMDECHO"))
: _9 N+ a. P4 G z* w2 c - (SETQ NBC (GETVAR "CLAYER"))
% a: D7 p* D6 w - (SETQ OSM (GETVAR "OSMODE"))* u- u9 N+ q4 x
- (SETVAR "CMDECHO" 0)
1 M) g) g4 i7 o3 b6 [1 ] - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))4 @" y- }1 W% s7 k1 v. Q
- (SETQ TX (GETSTRING "\nCao trinh:"))( q7 t- E; I, C, e6 l( q
- (SETQ FCH (SUBSTR TX 1 1))
7 f7 `. o; B4 h0 ~$ {9 [- j5 Q8 G7 D. Z - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
: Y' R! {0 U* F# N$ v - (SETQ CRST (GETVAR "TEXTSTYLE"))
5 f0 e. ^7 b' |0 ~* N/ F - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))* J; x, ~4 H/ L; u% M5 l
- (SETQ TSIZE (GETVAR "TEXTSIZE"))
1 C7 t) K* }3 N, m2 r - (SETQ STR (RTOS TSIZE 2))! e( c. M9 ~0 m8 |. i/ u t
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))& w0 |, @9 f( h% u: B
- (IF (= RSIZE 0)
3 |' g7 F1 q0 S5 E! y' E; s - (PROGN
; B" Z2 y, L" x! q" W - (INITGET 4)1 B4 C) E; F! v+ w
- (SETQ TSIZE (GETREAL PRMT))
0 d: b0 [* O+ @) M x" g5 _8 { - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
* q; @0 ^# D. e - (SETVAR "TEXTSIZE" TSIZE))+ N. A f, v: S6 R# D' y- l9 G: E" N
- )
5 r, o% @% {" s7 d! K+ s8 C; C! g - )4 x0 R) e. W) g
- (PRINC). \+ K% o; a X) z. {2 ?
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
0 |- s% t9 W3 i" l+ B3 o( c - (SETVAR "OSMODE" 0)( o; s/ \) ]9 ?4 K
- (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
8 ]- x6 @9 p8 s( C6 h - (SETQ NPI (/ PI 2))7 F1 T8 Q9 j* O
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))" K4 _" n( u& x E& E% g2 U" ~
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
! ~$ d& e! N6 B) a0 N. C8 r8 N - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))3 F% U, y& S) [% j
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
" Y' c$ @+ Z- i; z S! T, \ - (SETQ PT6 (POLAR PT2 NPI TL))4 g2 u, }3 n- Q0 p1 ~
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))% |$ M4 W$ |% p4 n' _. F6 x
- (SETQ PT8 (POLAR PT6 NPI (* 1 TL))): ]! J2 @: M( `
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
1 r- l+ W6 h+ u i - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))' G4 w9 Q" Y k4 Z' J3 v6 t
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))6 \( o1 h6 ~! D- D6 U+ A6 s" M7 |
- (COMMAND "COLOR" "7" "")
F3 O$ p' B# @9 l2 T - (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")! h: D) q- h: t- A$ I. |) q. y5 ~
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
( T: j0 i7 o: o. V9 u) w' r - (COMMAND "COLOR" "BYLAYER" "")
' z1 \0 T. t9 r8 `) t: { - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
2 M/ m2 G$ g0 t( B6 O( x" k - (COMMAND "COLOR" "BYLAYER" "")' i3 d5 p6 t* {, s
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
' _( f$ Y6 D3 Z5 ~ - (SETVAR "CLAYER" "0"), m! F7 E- q9 ]. ~
- (command "ddedit" pause)
6 m; ]$ A# c/ c/ N - (COMMAND "COLOR" "BYLAYER" "")
) ^/ ?, y, u* m# a8 m( f - (SETVAR "CMDECHO" CMD)& }8 [3 G8 C" \9 c, `: u
- (SETVAR "CLAYER" NBC)
" p' Y, B, a2 Q1 d' i& l - (SETVAR "OSMODE" OSM)2 L8 y$ Y1 ?+ @* f1 _9 g
- (PRINC)% x# d- K7 [% M. a) a# n
- )
( f! T) |, S& P - , }% f m2 o. \% r3 ?
- ;;; =========================== VE NET CAT CHEO (GC) =============================
4 F- q! W2 y a0 e6 m: A -
! Y) w+ l& h. _ - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang): R3 t$ i8 M# Q0 R: b
- (setq x (getvar "osmode"))
% i- W5 E. F# c/ d( J& t2 ~+ F - (setq p1 (getpoint "First point : ")
& T' S, Y! w R+ K' w - p2 (getpoint p1 "Second point : ")). @, l, J7 M h" G5 b6 F3 }
- (setq l (distance p1 p2))8 [ O& j' e/ @7 W
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))9 H$ d8 K1 @( [2 e
- p12 (polar p2 (angle p1 p2) (/ l 5)))
; Q# q+ H7 G( B! E - (setq ang (angle p1 p2))/ @- {+ L$ O: e' J
- (setq p3 (polar p1 ang (/ l 2.5))
, Q: g0 x/ u2 h- V - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))8 ?9 x; ^6 j0 O0 w- C
- p5 (polar p3 ang (/ l 5))5 ~- c1 r7 |9 a P
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))/ w; U2 j: t' F2 |3 s) Z
- (setvar "osmode" 0)
0 Z$ P B" D' Y" C: p: u: V# Y+ r - (command "pline" p11 p3 p4 p6 p5 p12 "")$ \6 ?; f/ \/ r. a. h
- (setvar "osmode" x)
3 w q$ _( h- h0 ^% A3 ?% I8 s; G - ); t8 \; G% P5 X
- ;----------------------------------------------------------------------------------
4 S$ I% b. O8 Y/ ]8 f - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6, g0 h8 z: M0 p6 b* p
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))8 i5 f$ R6 ~3 Z+ e. R8 ~ t* T
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
6 h! ]" Z& X1 a5 N - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
/ q$ X+ H) H* T' h N1 O! |7 j6 [ - (setq sb 50.0 sh 200.0 se 20.0). i, }8 H8 T* Q& p0 g
- (setq ang (angle ps1 ps2))* j; ]; ?2 {4 ]
- (setq pf1 (polar ps1 ang (- 0.0 se)))
+ s" @' e& B) q7 q' Z- ~8 R H - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))/ O; E4 v2 i; G) ~* ~* B
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
8 W- P1 g2 S7 ` J - (setq pf5 (polar pf2 ang sb))
& @! M6 D9 k7 m9 ]1 L& p C( w/ B. V - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
4 L: H' X; n; J4 u* ?) l# {$ m - (setq pf6 (polar ps2 ang se))/ e5 I$ ]4 n0 x; E6 [. m8 @2 I, T. y
- (setvar "OSMODE" 0)0 g6 k2 I5 n. Z& R) @
- (setvar "BLIPMODE" 0)% V( ^7 y1 |3 p0 Z9 G" z' x6 ? Q
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")5 N. m, U4 G% ^" }9 ]# n5 ?
- (setvar "OSMODE" 703)0 {9 c/ O* l# d K, o
- (princ) )$ U" U; l% Q9 \: O# k! u0 W2 x
- ;----------------------------------------------------------------------------------
# T/ f; h% @0 Q9 z2 }" R$ G T - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
1 Y" g$ h2 O" s2 s - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))+ n. \7 h4 [; W
- (setq ps1 (getpoint "\Chon diem thu nhat: "))! p4 s+ M2 M" M- J2 Y$ |# t7 n; R
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
- W, D1 ^0 M' ` - (setq sb 100.0 sh 150.0 se 20.0)
8 @* k" B8 L& u" y2 c2 R2 w - (setq ang (angle ps1 ps2))* A+ r! i7 b, |3 s5 [8 r; J7 B, e! U% U
- (setq pf1 (polar ps1 ang (- 0.0 se)))+ ~3 B; G" D; _0 o
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))6 L5 ?2 b. `6 H* {0 x# k
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))# x/ \: J( D* H* X6 X3 C
- (setq pf5 (polar pf2 ang sb))
7 z4 {3 Q( r& ^9 _ w - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
& V6 B. W: d' o8 B' n6 I - (setq pf6 (polar ps2 ang se))
( P; S5 f" U: H9 f - (setvar "OSMODE" 0)/ S2 f z. t$ ~: r* Y
- (setvar "BLIPMODE" 0)
1 L/ C |( c9 |( u4 z0 ` - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")9 z2 p ^: Q. N2 o% \
- (setvar "OSMODE" 703)7 ]0 {; ^ L: z0 o
- (princ) )
0 p+ S) ]) K9 }$ G+ c8 l* l' j - ;----------------------------------------------------------------------------------/ l |6 c# n9 S6 \2 V
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6. |* s* ?; h0 u" ]% n# h4 I
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))6 l) o2 T& g0 h* y, i1 V
- (setq ps1 (getpoint "\Chon diem thu nhat: ")), v2 b: C: j/ X( P/ u# C
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))2 C/ j7 u' Y9 c3 N8 x/ D
- (setq sb 100.0 sh 250.0 se 20.0), a _$ e y( l2 @& f* r2 L. ^
- (setq ang (angle ps1 ps2))
/ w6 @, ^( C9 R8 J! @3 s- j - (setq pf1 (polar ps1 ang (- 0.0 se)))
& I3 O$ V1 B+ ^: |" ~; {! ^8 T - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))* V# z' n- j! G; ~0 V: r, u
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
. ^- t" y l/ }' [: A+ S - (setq pf5 (polar pf2 ang sb)); {' i- ^7 A! ~5 M" J0 w, i
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))1 {( t( }4 J& A2 e' a
- (setq pf6 (polar ps2 ang se))0 j# n. e% `1 G9 e( G
- (setvar "OSMODE" 0)
/ @+ N6 Z! ^7 D; q2 N - (setvar "BLIPMODE" 0)0 ?1 m* m4 C8 v, x+ s9 h
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")% G; ]4 g( c! Z0 F. w% F! }
- (setvar "OSMODE" 703)0 j9 q) \! j3 c$ f2 b- I
- (princ) )& E" }" `& d, e
0 f! Z/ G! J: M1 y1 }. V5 {& L( m# r0 h- ;==================================================================================
% }9 G! B6 }2 t# a5 q1 T+ ~' Y - (defun c:ang (/ ent pt1 pt2 ang)/ k' R! H; z/ s% |/ T1 c
- (setq cmd (getvar "cmdecho"))9 y* M& K u, W' v) w' K# H
- (setvar "cmdecho" 1)# D4 n8 l0 s$ p8 Z- P6 O5 x
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc")): a; J7 {* P3 o$ _* `
- (setq ent (entsel "\nChon duong thang:"))
, N. J6 J3 |8 k. U/ {+ L - (if ent ' T+ c. _* s9 u1 f) s4 |8 ?) n k; }
- (progn
* a* c5 ~: y# Q8 U - (setq ent (entget (car ent)))0 G/ |2 Q& K) G( \. C' Y% L) y& {3 E" W
- (setq pt1 (cdr (assoc 10 ent)))
4 _$ u6 [0 Z& O! Y- r, Y+ y6 O - (setq pt2 (cdr (assoc 11 ent)))
; ]! `- _/ @: v2 h( t2 W6 r6 W - (setq ang (angle pt1 pt2))) P9 f: ~0 V% U
- (setq ang (/ (* ang 180.0) pi))
; f) ?8 W) D& F' ~" ?6 U - (setvar "cmdecho" 0)
6 F- ]- F) E1 z! B, O N9 g - (command "setvar" "snapang" ang) q1 h0 `* o6 [' }
- (princ "\nGoc cua truc toa do moi : ")
0 N; c& K& d; J: { - (princ ang)
! l0 f, i: y) D; e - )
$ f5 n! O" c2 E+ o: s2 O - )
5 T* E( w. J" \' I6 W* P3 T - (setvar "cmdecho" cmd)
% j9 a1 Q1 |" G: ^$ P( T' e3 t - (princ)
; z1 z# Q8 h! G1 b6 M+ v# r - )( m: a- p7 g! Z) o3 v
- ;==================================================================================7 W ?& H" z8 F% D$ n' e
- ;============================== KY HIEU DOI XUNG ==============================0 Q/ I9 L3 T; O
- ;==================================================================================$ f c6 \' T1 d5 n: Q
& n6 E; ?. J# a w& i% T- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9
' B( [+ o7 O; |, u1 i) Z$ P2 _) e% a - SZ G45 G135 G90 G180 SS loi): r# c! X6 Q7 _. ~& h9 v
- (defun loi (s)' \! p. ~+ q! \: k7 a1 z
- (if (= s "Function cancelled")
+ r: k: ~9 m0 n0 g! h - (princ) Z; n' X& S" `
- (princ (strcat "Error:" s))4 M, O- G- R$ u& X% S/ H
- )/ L1 D) e9 d8 y1 K
- (SETVAR "CMDECHO" CMD)
$ N% t( _" ^0 n4 w( I: M. i1 \ - (SETVAR "OSMODE" OSM)
9 z' i+ y: Q+ y: X) {4 D - (SETQ *error* OLDERR)
0 K# o5 w; d# h3 F - (PRINC)% L, D0 I& [3 w5 \8 L
- ), L$ |. {' h7 k# X
- (SETQ CMD (GETVAR "CMDECHO"))
* z8 O2 y# j" d) F# L - (SETQ OSM (GETVAR "OSMODE"))% T/ M' ] u+ G$ n% p4 B% j
- (SETVAR "CMDECHO" 0)) R( D: J! p( i& y+ Y
- (SETQ OLDERR *error*% h; E6 Q3 F. [* J
- *error* loi)
e# \! p2 t# y+ f: e* V - (SETQ SZ (GETREAL "Size <1>:"))
1 I; \4 n! R) p: G/ ?" i - (IF (= SZ nil) (SETQ SZ 100))/ p0 p: E4 @& D5 n5 d' E! `
- (SETQ G45 (/ PI 4))
3 ~! R4 [2 y2 Z7 | - (SETQ G135 (* 3 (/ PI 4)))$ r+ h4 k" c+ ^+ o
- (SETQ G90 (- G45 (/ PI 2)))
9 u1 b9 x5 m+ {4 G* @ - (SETQ G180 (+ G135 (/ PI 2)))# @9 a% _+ z! f& |; x
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
, y3 J; {# o6 c# A" s( ^ - (SETVAR "OSMODE" 0)
1 ]' `/ k5 X3 ~& A9 @: V - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ))) D$ Y4 s6 k. b/ n( ?$ H3 c. A
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
8 @0 W) z! A8 Q6 p0 p( |- J5 H) S: G5 I - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
5 i3 {6 k* Y% A# e1 K3 ~; _( ^0 b - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))* |. }- E$ c$ z% t4 z/ }) G+ Q
- (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))% _! y0 R+ e* Y
- (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))& E4 g# A% y( _; b
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))! ~2 ]( |. k* O! X
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ))). k, s, W: [( c( H/ J' o$ q
- (PRINC "\nGoc quay:")
* c) L5 c [ R: k: U: Q - (SETQ SS (SSADD))
0 c* n7 @' l$ x - (command "layer" "m" "Dim" "c" "" """")( R- p8 ]8 Q# K4 l0 G- _
- (COMMAND "COLOR" "1" "")
/ f0 _$ k4 x; c - (COMMAND "LINE" PT8 PT2 "")
) l5 L9 u% L5 u/ l4 F8 ^ - (SETQ SS (SSADD (ENTLAST) SS))
6 `' M H. W) N$ i, | - (COMMAND "LINE" PT9 PT5 "")
! p( d. p! z2 \/ Q# ^8 z3 \ s - (SETQ SS (SSADD (ENTLAST) SS))3 ]5 C! a6 I, g# @$ S7 S
- (COMMAND "COLOR" "1" "")
; I' d4 y& C7 M5 E0 Q0 Z ? - (COMMAND "SOLID" PT2 PT3 PT4 "" "")
& w1 f: v! o L( A: j( s2 x- P - (SETQ SS (SSADD (ENTLAST) SS))0 t! I% Y; z/ J, @' r% Z, t9 k& u
- (COMMAND "SOLID" PT5 PT6 PT7 "" "")
$ s+ I1 y% \* [ Y2 Z' c& W6 B" b! m - (SETQ SS (SSADD (ENTLAST) SS))
, A, l1 P! ?. \6 Z - (COMMAND "ROTATE" SS "" PT1 PAUSE)
- Y0 \. ~3 ~- T - (COMMAND "COLOR" "BYLAYER" "")
- ?! }% W F" M - (SETVAR "CMDECHO" CMD): g) E3 j& _. \
- (SETVAR "OSMODE" OSM)& P; ]: u' l3 J% R3 b
- (SETQ *error* OLDERR)" L- u# N0 p# F+ s0 ?" w. ?
- (PRINC)
0 O% i! v, s% l% ]% Q - )
$ ?" ]0 W* {8 Z' B" @5 ^1 d
+ Y2 f" S! E, m3 @% C: u7 D- ;==================================================================================
( }/ B s4 B5 G% Q' o$ w - ;================================= KY HIEU TRUC ===============================; E4 r# Q4 [" U- O4 U$ `
- ;==================================================================================
/ [) A( W# W* [+ b- O1 Y1 ^
4 p c# E4 w% Y6 ?3 u9 H& Y- (defun C:vetruc ()
% U0 e& k& i2 E; w/ k0 `7 d3 | - (setq bk (getvar "USERR3"))3 `4 ?# X1 f* E; j4 x# I
- (if (= bk 0)
( N6 W/ {# D8 b - (progn& u( [. g0 b6 d) v' c
- (setq cont "1")
- w2 [8 X/ t0 |7 Z - (setvar "USERR3" 1)
' \: f0 Y m+ ^ - )- n: D4 M% q) P5 q! A
- (setq cont (rtos bk))8 [$ K* P6 Y, o% Y; g: h
- )( G5 C6 @6 d% i. D8 _
- (setq pt1 (getpoint "\n Nhap diem dat:"))6 y; f1 T1 F, W$ ^6 q
- (command "layer" "m" "Dim" "c" "" """")
; {) Q( v' v9 T' }1 |4 r - (command "osnap" "")
6 C4 j# ^1 Y* l8 _2 N - (COMMAND "COLOR" "7" "")9 c: Y* o7 S% Q# O
- (command "circle" pt1 150 "")
% `' d( Q v; n& d5 p. H/ j - (setq pt2 (polar pt1 0 150))* N; y0 `/ E8 ^) \6 h( M$ M) V
- (setq pt3 (polar pt1 (/ pi 1) 150))
G7 D9 m6 }2 Z& P0 h5 d/ W. _! V - (setq pt4 (polar pt1 0 300))/ e8 V2 m5 \- o8 g) a! v/ i- ^" Z
- (setq pt5 (polar pt1 (/ pi 1) 300))5 |. Q# M2 S8 g C& M
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))$ f7 c1 E2 h9 J
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))- Y. u! t, R9 ^5 H- z. D
- (setq pt8 (polar pt1 (/ pi 2) 150))
0 F% \1 K& z, V4 R" N+ V7 k - (setq pt9 (polar pt1 (/ pi 2) 300))6 f4 ?/ h; ?* d
- (setq pt10 (polar pt1 0 150))) l4 V7 |5 p6 q6 K9 U" [$ ]
- (setq pt11 (polar pt1 (/ pi 4) 150))
! N/ m1 V1 F) G* h - (COMMAND "COLOR" "BYLAYER" "")
! U/ ~6 ?6 y) Q; U0 E' K - (command "line" pt2 pt4 ""), V5 I h @# L* Y P2 e
- (command "line" pt6 pt7 "")
, Y2 P4 t% a" D; O$ V5 X; K - (command "line" pt3 pt5 "")" d" T- J# j1 Q6 H0 G8 T
- (command "line" pt8 pt9 "")
, {2 N5 j0 K# Z9 k% p9 ~6 z5 ]# x - (setq dk (strcat "\n Size:<"cont">"))1 r$ E V) a+ E6 n) l- ^
- (setq bk (getreal dk))) ? i* H }' W7 J
- (if (= bk nil)2 X$ q7 t0 Z @5 {
- (progn
6 e7 g$ H) L* A8 G5 l - (setq bk (getvar "USERR3"))5 X1 _) c$ P% ]- s3 v+ E
- )0 X5 J9 z( K" \/ w0 K
- (setvar "USERR3" bk)
( N2 R' Q5 X8 N: h4 \4 \ - )
" h0 J# H8 t o3 _0 p/ F - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")7 N$ a0 f7 q `+ J' @# ^, e
- (COMMAND "COLOR" "7" "")5 j$ N! c/ Q8 d7 N
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
" r# ~6 E* Z1 l+ c$ r - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
3 |/ _# E. @7 w: R* M8 o - (COMMAND "COLOR" "BYLAYER" ""). F+ A2 Y& r4 u! k% j: s
- )! M; y1 l7 G% p ]$ t
% p- B2 ~2 C2 Y* q5 G! u- ;=====================================================================
( m! u" Y, p8 t& E- M, x% ^2 j' D% k - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
9 k$ m) e; f Y% o8 B8 i, { - ;
( V& D0 W0 g. ~( _ - ;Jeffery P Sanders
; J8 `3 O; e+ C - ;8 \( t* a9 V" T2 E q( l( ?
- (defun C:CA(/ en enlist tx newtx cnt tp asc note)0 Q* v: [& O7 j! d$ P
- (setvar "cmdecho" 0)9 q: H4 {0 E) O
- (if(setq en(entsel))
+ c" c' ?2 u' M4 q$ [ - (progn; k4 @- g! l% c7 M5 ]# o
- (setq enlist(entget(car en)))
* J! t4 @7 [/ k$ [1 [ - (if(= "TEXT"(cdr(assoc 0 enlist))). [. C: N% z' L/ a
- (progn8 p' i+ }4 i9 C9 H
- (setq tx(cdr(assoc 1 enlist))7 E0 d6 {7 P3 t) ?
- newtx "" cnt(strlen tx)
2 f, t! d6 ~- X# x - note "\n...CASE Reversed. \n "
$ Y A' W+ m$ e1 m4 V - )" v' e7 T; k2 D. v, ?- |% }! u" m1 Y
- (while (> cnt 0)9 g! m3 [& I- q
- (setq tp(substr tx cnt 1))
6 @- J3 i% G, l# Z$ F8 G$ c" ]1 W - (setq asc(ascii tp))
- t; [; `- m1 e - (if (> asc 96)- F+ u, a. R; q0 |9 B( f
- (setq tp(strcase tp)), \ l) @ X. t$ v
- (setq tp(strcase tp T))
7 C2 o8 L2 Z- E! N8 H# P$ J - ), P- X) B K4 w
- (setq newtx(strcat tp newtx))4 U2 o# s( n* h9 u! e. T
- (setq cnt(- cnt 1))$ x( a/ ^5 y- I
- )
1 j5 J0 w$ w+ r& `, R# E: M - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
, h' W2 e1 L1 p( g+ z - (entmod enlist)
6 b+ J( q% a( q5 T4 R& y - )/ ]/ f) l$ f( S+ G" s0 X8 {
- (setq note "\n....Text Only Please. \n ")& G9 ?3 ?3 K/ O# C; \
- )
4 n2 l6 t; ~5 V# S - )9 k% A; l1 i2 _6 ?
- (setq note "\n....Nothing Selected. \n ")
3 G! w t6 N( |2 U% ^ - )
. z0 \" Q$ J) |7 K) O1 A2 ^ - (setvar "cmdecho" 1)
, y( j1 g+ B [* W# }- ^, c - (princ note)
. S+ ]% `; v# X. m/ P4 Y$ V* a - (princ)2 h0 S* F; G- o; ] w* p
- ); F3 k; ]4 f6 u! `$ t
- , a+ b( Q$ a# k
- ;=====================================================================
7 ?& u: L9 _+ m# l' o6 Z" F - ;==================== NEW TEXT STYLE UPDATE ==========================& C- P1 E( x' `2 g, E1 n
- ;=====================================================================4 P b9 `9 n& m7 D( x
, {$ ^9 ?" `( `/ |$ O; ?- (defun c:nS (/ tdt ssdt sodt index)) r" a m# @6 H* \3 n
- (defun ObjName (ssdt /)
" l T( C3 x. d' o* A. _# b - (cdr (assoc '0 (entget ssdt)))
2 r# g% G3 e7 K - )5 u) g. b6 @; I
- (defun MoPL (ssdt /)# ^+ r! F& w8 ]2 u5 x' G# t
- (= (cdr (assoc '70 (entget ssdt))) 0). D$ B9 a9 Y) D: ?
- ); z g6 y3 R7 S( w, d) E
- (defun NoiPL (ssdt /)
- K; }6 j* D+ P6 t1 | - (if (MoPL ssdt)
& L2 |8 ]4 w4 n: V, c/ r - (command ".PEDIT" ssdt "J" "All" "" "X")
! Q% ]9 G) ~$ Z* y& l - )
7 r, m$ Q- s; ^% L5 c7 ]# G - )' Q0 p7 ]2 e/ r5 t. I
- (defun NoiLC (ssdt /)
4 p- a6 p9 q1 @* g' v5 w' n1 M, x: Q - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
% b" M' w& J& N* J. N - )5 e! Y/ P# P8 Q
- (setq
2 A& @9 c3 C; y$ | - tdt (ssget)1 w" n! j* \8 @! f [
- sodt (sslength tdt)4 T1 T+ q4 |2 X3 d' s3 I4 m
- index 04 X/ i) H" J2 `" S
- )
) s0 ]$ z% E2 H- l. P0 S - (repeat sodt
B9 [4 [" c" J' w7 ^ - (setq/ @% e6 g: r' Q- s% m. p& ?
- ssdt (ssname tdt index)- x4 e* U; F8 G- f9 c2 j8 o
- index (1+ index)4 g# \4 _8 D' d% i' H5 _
- )
$ v" S- O# _; O0 { - (if (or (= (Objname ssdt) "LWPOLYLINE")8 n' M8 H8 L. Z% ~
- (= (Objname ssdt) "POLYLINE")# Z1 c7 @1 d% H9 X& d8 g
- )& \4 d0 L% T0 ]6 J- ?$ n3 x) q- c8 `) Q
- (NoiPL ssdt)5 s2 |/ M2 l6 Z+ v/ [
- )
, P7 U5 ]4 w1 c0 i* o: g+ R - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))( z' A3 w+ B' Y- @2 s. W4 ]) c% z$ a: ?
- (NoiLC ssdt): Y u! l3 v6 z9 a% ?6 @
- )& h1 j- O1 e9 E! F! m2 D8 D) n6 R
- ) W. J0 J# {+ J6 K0 |; o* G
- (princ)9 \8 ^* b+ q1 |( Y( {+ a( c& [
- )
+ p- j9 W9 E3 d+ [ - : T. L9 e- E# c$ ^5 |; \
- ;=====================================================================7 M9 Q" x' B! _( e$ z' O$ e
- ;;; AREAM.LSP# _, S9 v$ @3 W+ n. t* ~% d
- ;;; Function: Calculates the total area of selected objects0 X4 l0 z# C {8 k# I
- ;;; By Jimmy Bergmark% ]5 U& X4 L2 P1 D! I
- ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved2 ]" X( Y+ I# t* {8 D. e+ S
- ;;; Tested on AutoCAD 2000
. x* s( u) @ D9 F( n1 ~% f: x7 _+ P
' M: d, g$ a' ^- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)) g3 J6 X) g( y x3 M& I
- (defun errexit (s)
/ a4 `( a* p! {4 A3 E3 o - (restore)
8 s, u4 B& F2 S - )% M# K ]: X& Y
0 g l; g2 s! c& t9 |: @- (defun undox ()
3 V! p/ l2 s( k. s - (command "._undo" "_E")
" T2 Z7 t' G6 C. I- u! o - (setvar "cmdecho" oldcmdecho)
& t# e2 ]6 {7 Z0 ]- C9 N- V - (setq *error* olderr)9 w4 ~* a( H* w+ ^6 [2 T7 D0 N
- (princ)4 g% z4 @* D- H+ ^5 y
- )0 ?; E9 A3 Z" V' z% e
, b U% b) L1 v% S5 h- (setq olderr *error*
4 M+ N8 Q, A2 b2 J5 I% y - restore undox% ]4 o/ |/ g( Q1 ^4 K9 y* ~7 a
- *error* errexit
! K" E7 V# F8 s+ D) f - )9 K: W! J* ~( i1 Y9 e0 m$ K0 n9 M
- (setq oldcmdecho (getvar "cmdecho"))
* I7 S/ k) g5 u) Q - (setvar "cmdecho" 0)0 e6 u& F; s2 m2 q& ?
- (command "._UNDO" "_BE")1 v0 l6 |* {2 y# O$ ~
- (if (setq ss1 (ssget '((-4 . "<OR")5 o) U- d! t% B
- (0 . "POLYLINE")% Q8 y2 o4 l/ c- b/ ]& y0 ^
- (0 . "LWPOLYLINE")' V$ X* S3 }, N- s0 a! g
- (0 . "CIRCLE"), T+ \$ Y6 d9 b! p
- (0 . "ELLIPSE")
: z3 o. g& M, M" |& W - (0 . "SPLINE")
% W/ U9 `$ G% D( I8 W( y' E. U - (0 . "REGION")
8 Y) k) A# r. q/ I8 l% d0 M4 `# u) A - (-4 . "OR>")
! j8 I. n2 \% ^8 F8 C - )% D- v6 G) T' @0 t6 Z
- )1 O" M/ z9 H( y# G8 C
- )
6 D2 B& X5 J. T2 l3 x - (progn/ q7 _( J6 G$ l8 k3 x! L" c
- (setq nr 0)
. E# X! u4 G0 b - (setq tot_area 0.0)
" A. I- G" [5 C6 n/ A - (setq en (ssname ss1 nr))% h* q# m/ {2 Z m O
- (while en
4 m7 }9 h" u" r6 F& j& e - (command "._area" "_O" en)
: P6 b( e6 V5 s7 U, C - (setq tot_area (+ tot_area (getvar "area")))
5 s9 t' n. U+ z1 J/ W8 q - (setq nr (1+ nr)): T6 p7 D0 q- f. n: e: K
- (setq en (ssname ss1 nr))
Y4 x+ z$ N3 f/ \ - ), p8 I( J3 R6 | y! M" }6 b% q3 b
- (princ "\nTotal Area = ")6 J) q* c0 g$ c+ a y
- (princ tot_area)
, D/ X H, X2 T. C' ~( L1 Q% X - )
' R: f5 m+ T) q+ K - )
9 n5 S, d/ X! O/ I2 u - (restore)
* a4 v" h: c) S+ } - )
. g& ~) x- J$ G/ o8 V! A& U( @% j
( K. W. O. J4 _( l+ e- ;=====================================================================
5 f/ u. O- ~1 P! {+ k/ x1 ~* r3 x - ;;; By Jimmy Bergmark, ]- j% y+ k* M
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved$ F4 [4 ]9 j) T9 U$ G
- ;;; ]3 z; I6 H% A1 M) n4 V0 n9 M
- ;;; Created: 2008-03-31* c9 ?( K4 E1 e3 R8 J
- ;;;
' R; b* g% U% w% [8 h - ;;; Convert Attribute definitions to mtext
0 f) O3 X* Z/ [" W2 D2 D - ;;;( j9 F/ o) U4 N- H! v
- # Y# {' P5 u( p, T5 F l
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
# E0 t! T5 h* ?% a2 N6 ~ - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
4 f# z) j4 [" E! y+ T% Q' {- a - blkcnt 0, |8 T( h @( H8 `+ R3 g& W
- )2 |: ]$ @& T7 [
2 O9 @$ d3 H' A( O8 F: A- (if eset1
* f$ T' D/ @% P - (while (<= blkcnt (- (sslength eset1) 1))7 o O6 f3 R: M/ f2 r
- (setq en (ssname eset1 blkcnt)
& D5 @+ w% l2 H - enlist (entget en)
4 U3 B" }9 M0 Y - ht (cdr (assoc 40 enlist))
6 i7 t8 M, M; U8 T# S - pnt (assoc 10 enlist)
" B# E1 x) _# x# \ c6 i" Y3 ^ - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)7 B# T! {9 P* K
- space (cdr (assoc 67 enlist))
1 j' w: ?" u7 O( B. Q - )
. L% ^- S' }( @4 ` p/ _ - (setq vl (list1 O/ j$ s2 p4 w5 u
- (cons 0 "MTEXT")- w1 @! U( [1 o+ _" u. G
- (cons 100 "AcDbEntity")9 e5 n& D+ Y8 d) _8 J- e( C \
- (cons 100 "AcDbMText")
/ A& W/ Z* M( O, \2 q - (assoc 7 enlist)
! ~! _5 P8 p3 K$ K$ ~ - (assoc 8 enlist)
. {& Q7 a# g) V5 P1 [0 x. a ] - pnt
, L# z$ _" ~/ c - (assoc 40 enlist)
. v9 v5 X( a8 g - (cond ((assoc 62 enlist))
- Z3 r# K+ O& a) W) Z* C7 z - ((cons 62 256))
$ e/ g/ r0 t: d9 H, _! K* V5 [ - )
$ {: ]) f% e* j - (cons 1 (cdr (assoc 2 enlist)))7 U2 o/ b: Q' o P( _8 W$ h
- (if (= space nil)" Z) }/ v$ G" B0 K0 L" g
- (cons 67 0)
( l) H8 b6 O9 G! O/ X - (cons 67 space)
3 B& G8 E/ j) B( J& z8 f - )
( U/ ^6 v* q' |) A - )
w4 ?0 {3 i- H - )
5 H; p$ s" G& N# R. d8 I - (entdel en)3 H8 Z+ ^7 S% x v; H
- (entmake vl)
3 M* c; G3 C+ Z* b3 W9 T - (setq blkcnt (1+ blkcnt))
8 F$ |6 K6 z" [* V8 O2 [, H! Z - )4 J: ?& F1 O5 j# B5 ~
- )& _' I, c7 N9 L0 Q' x/ _: j
- )
9 l" P. q" i: S9 u& M: M1 j( f' G
6 b: p$ i, M- B9 @- ;=====================================================================
: _7 g! u9 ^$ b: H' [
+ l4 y' D& h5 e; ]( o' f- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)5 U: s' R8 Q8 P: Y: U* Z
- ; Khoi dau cua chuong trinh/ L. ?! r( a$ o( y9 v7 ^6 o
- (princ "\nCopy Inteligent...\n")
% x* T0 i- M: |' c - (setq luuecho (getvar "cmdecho")/ |( Z4 O" ]( Q8 K3 W
- luu *error*# T/ X# D/ x6 e* k4 x1 x6 ?4 q
- *error* ketthuc
8 H$ W: f1 x- X- ]2 f - cumdt (ssget)- y& X0 n' h. W5 I* O
- dodai (sslength cumdt)) ` T1 D% M2 X+ \0 T7 p6 ?: W8 z
- goc (getpoint "\nSelect base point:")3 U* h" \2 y5 |2 E6 C+ f! K8 K
- thoat nil
* I0 w7 T6 s! w) H4 E( Q! p - dem 0
- d# y7 {, g5 H7 ^ - textxl nil! [$ ]' E2 K4 ~* C( ]* O1 G7 e
- );
) e: D1 k7 r$ `5 A. @ u' K; L# o0 i5 K - (setvar "cmdecho" 0)
8 s; P% ?: b$ ?- }2 d( L+ f: f6 c - ; Loc ra duoc ong text de xu ly2 q2 B+ [* I. P* s6 G( q5 M
- (while (and (= thoat nil)
; F9 q" z' E8 ~ - (< dem dodai)& |* I4 R! K9 J' h4 [9 _% m) T$ g/ a
- )
; W- @7 J( S. h* B6 q; p y - (setq ten (ssname cumdt dem)% C3 P/ z" ~( _& f& a+ m/ A
- dem (1+ dem)4 E2 h. S: z7 ~ W6 q
- doituong (entget ten)
, C, d9 L: w0 Q5 l- [5 w - kieu (cdr (assoc 0 doituong)) 8 X! @# h& B% _. q( t
- )
/ R& u6 `/ z$ P) d. _9 ?3 P5 t5 @ -
( X w. V2 V$ K5 E) O! W - (if (or (= kieu "TEXT")
, [# [1 D' A% e1 J; c' K - (= kieu "MTEXT")
' n) I4 E" ^$ C4 ]2 ^, {+ _ - )
& i+ U. F# |2 N6 ? l9 o. z& A - (setq thoat T
1 e. ?% c f. t* w% d5 E - textxl (cdr (assoc 1 doituong))
, T" F8 r' X0 }7 S4 T y - )3 _$ M9 Z- |6 K5 k5 l) U) y
- )
7 O; I, N4 W+ I+ R% d& s - );
! O5 `7 g. N( @1 Z - (while T ( V) G: D0 _9 z- c7 x
- (setq toi (getpoint "\nSelect next point: " goc)
: d$ u4 b4 W: T0 S$ t: B; o: w. i% X - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
4 {. Z, _* S- W6 U5 ]1 o8 T. ] - dem 0
0 c; J3 J' K5 } - )- G" H7 t; I; Q5 a* u
- (while (< dem dodai)
$ s& X4 G, A9 T, {2 i# B3 o - (setq ten (ssname cumdt dem), u, n, z: C- x2 }
- dem (1+ dem)# B1 i) o1 j/ h2 L3 C7 X
- doituong (entget ten)3 ]) V4 [& Q1 K" f" y9 [& l* J3 G" r$ s
- kieu (cdr (assoc 0 doituong))
* S% x: n }; ?. a U - )
( P5 x: r* r8 s( O- J2 f/ j1 H
* T3 m8 l( w7 f- (if (or (= kieu "TEXT")
3 n; i1 C J' S, l - (= kieu "MTEXT")
" [" i G# _' n0 B# A0 I - )0 a/ A3 q. F- k3 x
- (doitext ten)% ]6 }; |, y+ L! O
- (copy_dt ten)# }7 H W$ G5 a) J) D
0 I% x4 O& X6 E9 I$ W% f" S- );if/ `. h5 ]6 \+ M7 H: c
- )9 J( K9 C" p; L$ q8 z
- );while- {( [' F" r X7 I+ }
- (ketthuc)
. q& E: J9 J5 u - );defun
- M9 s5 v- s( n6 s8 ?2 H, |) z9 r - (princ)
: z: w) T* E% l0 I% E: `- N
! i$ Q- @9 W0 x% A2 G* g% ~ R- ;=====================================================================& S# l9 n0 a% P
- ;;; By Jimmy Bergmark# f; w" X. F. Y6 [5 X. W& j; k
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved4 E: j' B' B* K- O; X
- ;;;
: Q/ a; V: Z) C) l3 G - ;;; Created: 2008-03-31, e6 w/ X6 K( r% a5 ?: ^
- ;;;; U2 _+ h E$ Z* p
- ;;; Convert Attribute definitions to text0 B4 ? O# B% a8 C9 P
- ;;;
) A( v2 ~$ {3 E4 {8 u! ^+ j - ! {, ~2 G8 E3 [6 @! _
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
7 h) s- T! Z/ {' }; t8 P - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
6 r1 o# M5 j4 P' O! a4 B: ~ - blkcnt 0
6 [# n y" T+ W M8 S" c" a5 u2 P - )
3 o% H1 B1 G8 n( J
[7 O2 ^+ Y+ C- (if eset1- q; c8 d1 }( w, i
- (while (<= blkcnt (- (sslength eset1) 1))( g/ l1 r3 a5 J
- (setq en (ssname eset1 blkcnt)5 I2 A& ]+ ?% P4 K( Q$ _
- enlist (entget en)8 y! F* L: w5 D
- space (cdr (assoc 67 enlist))
! e- d. w6 \! {. a" r% ~9 t0 l! @ - ). w4 Q- h y) a
- (setq vl (list/ u9 e: k2 l+ @! e5 x
- (cons 0 "TEXT")3 K7 `+ X4 A! R' r6 d/ A' Y
- (cons 100 "AcDbEntity")
- E! l$ U4 ?. e4 z - (cons 100 "AcDbText")
0 ^, z+ a0 u3 B0 T - (assoc 7 enlist)
/ M& X+ w Q- { - (assoc 8 enlist)4 z; \" @- t! `( R, H6 G
- (assoc 10 enlist)6 c; f; i0 q: K
- (assoc 40 enlist)! O4 g- a0 _) E1 l1 r; Z, c! x
- (cond ((assoc 62 enlist))
8 h. Z' W8 A+ m2 r i) s( ^ - ((cons 62 256))
- ^$ C# K9 ~4 G/ ~; m+ Z. b- ^ - )2 G* z" r* P5 K* a3 l
- (cons 1 (cdr (assoc 2 enlist)))
0 j7 F6 D3 M5 W6 M6 g: j2 h - (if (= space nil)" v$ g1 v" h* J! H
- (cons 67 0)
5 T5 d9 l, A: F! B& f0 e - (cons 67 space)
$ ?) K+ G( M3 Q4 I - )& G0 a* U. O" Z; s# z
- )
# N _9 _) e8 S0 { - )
( T" R w: r, J$ t9 M, n2 H - (entdel en)
: Z' \; w( Q, M; |0 u4 Q V1 {0 T - (entmake vl)
6 Q# P' q& G5 [4 g7 K& q - (setq blkcnt (1+ blkcnt))
& I; B7 \& ]* t7 E7 W - )
! q% _6 x5 k5 t2 ?/ ^3 n - )
$ v/ K( R+ w4 k3 N5 ^ - )
. T& {- {, M6 U1 [$ r4 H2 @ - ;=====================================================================* R. k* G4 W" ]0 c5 c& \2 F+ y
- ;============================ Doi Truc ===============================
8 @0 r1 X8 s% t - ;=====================================================================
5 s" c- v5 B* _/ _9 O; Z& k - " J) j8 V! H' ?' H% t
- ;=====================================================================
0 v! D- Y% q6 S& L6 g - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============* i8 | k% T+ ^- @" U1 X& u, G
- ;=====================================================================
0 J! u' h! H0 w$ G/ d* o - (defun c:ga1 ()# s% b% V+ H( X/ h0 u
- (setq a (getpoint "\nChon diem: "))! e: D; A9 O0 r2 |' L4 U( ]- l2 u3 `
- (setq b (getpoint a"\nChon diem: "))
+ }$ @- s# x) W% D - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ p9 X1 h' Z) @$ Z. p% N
- (command ".circle" c a)
" ?9 I, j* m2 I# R - (command ".line" a c "")4 u( a9 A; h1 |9 a
- (command ".array" "last" "" "p" c "1" "" "")
+ r Z8 }" [/ a% H - (princ))# o( s8 R. q( g6 y
5 H, l5 H2 R; A& i. G2 M- (defun c:ga3 ()4 R; X4 ], |! _8 ~' F; C# k
- (setq a (getpoint "\nChon diem: ")) y, n* W5 z9 Y+ @
- (setq b (getpoint a"\nChon diem: "))9 v5 C) C+ l8 o' D8 F- V( s
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( b+ q/ X; h6 k1 L
- (command ".circle" c a)
6 a+ p' h; W" v) T - (command ".line" a c "")
+ ] R8 {8 h; b8 X - (command ".array" "last" "" "p" c "3" "" "")
8 x/ h, ]* s, H8 C - (princ))
% A- x* I# f4 N/ M- W8 o( ? - 2 @ J' F3 d9 b; x8 P/ W1 k2 v
- (defun c:ga5 ()0 K9 `( j( }1 b4 w( M9 f, r
- (setq a (getpoint "\nChon diem: "))6 A5 E; ~6 [* H2 }3 w
- (setq b (getpoint a"\nChon diem: "))
/ U7 O. m+ {/ ^0 U1 o1 @ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). h4 @3 V8 m& a6 z8 r
- (command ".circle" c a)
6 Z" V; K% D0 q% C3 w - (command ".line" a c "")
9 S1 ~/ }- G" b. W2 R - (command ".array" "last" "" "p" c "5" "" "")6 \2 X+ L9 [3 V1 d
- (princ))
, @* M6 h: ?! G5 w - - n( q4 t: e3 o* }' O
- (defun c:ga7 ()
& ]" }% q3 ]: q8 L( X - (setq a (getpoint "\nChon diem: "))! e3 b# r9 [- M/ [ ?* L
- (setq b (getpoint a"\nChon diem: "))% u1 g6 j1 a& a V2 x+ p
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 j1 ` x i) w: S3 o. j - (command ".circle" c a)/ x6 {3 V, W0 q, P6 ^: x8 v
- (command ".line" a c "")" z. G% M3 a2 i1 J/ N. I
- (command ".array" "last" "" "p" c "7" "" "")
; ]+ G% i1 I8 k( j" K Z$ H. P. {3 T - (princ))
( g* Y, A( R* \# [( P - % G: u) A9 ?0 w# c, J& S' z {
- (defun c:ga9 ()
& N& V1 | ?- r7 ^ D$ D0 j - (setq a (getpoint "\nChon diem: "))
! B- L7 }1 T" d `0 D& A - (setq b (getpoint a"\nChon diem: "))9 j# c, a/ F( G- q6 D
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- m) o0 f" `7 O" @1 c: y - (command ".circle" c a)
7 d6 v/ t7 V% L [ - (command ".line" a c "")/ `; j' F: O! ]9 U( X% J
- (command ".array" "last" "" "p" c "9" "" "")" H0 i( }8 }% b! |0 v/ |7 @
- (princ))
8 Z: b4 ^+ B" @( W! g/ B
# r5 a4 m$ a: k- (defun c:ga11 ()/ e, l F. M9 F% h8 o5 K
- (setq a (getpoint "\nChon diem: ")); X: ?4 i0 p F' p$ H
- (setq b (getpoint a"\nChon diem: ")); z4 G0 J: `" _( x
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
; G) X/ u9 G% B9 p" q - (command ".circle" c a)% Y* `$ H9 s5 D$ } v/ j6 {! u0 T
- (command ".line" a c "")
# K# W1 X" Z! I9 U2 R$ m - (command ".array" "last" "" "p" c "11" "" "")) S+ P+ ]; `5 ]3 u; B. p
- (princ)). o' _1 V$ Q* S* d! a
- 2 w+ Y# k2 u( ]
- (defun c:ga13 ()
# v: s% `- Z1 o* |; W - (setq a (getpoint "\nChon diem: "))
1 u4 E: V0 Z) s, P - (setq b (getpoint a"\nChon diem: "))
" n6 J, x1 Z% ?! t - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% C3 L# n& \3 O - (command ".circle" c a)1 \) f4 {! e: P( i% [3 j
- (command ".line" a c "")
9 F/ W$ |3 L6 Z6 @$ X8 ~/ B" O2 @ - (command ".array" "last" "" "p" c "13" "" "")6 r, W. S, ~3 J" m
- (princ))
2 ~% q' H& b }3 Y! R$ o% B - 7 j% w& W( r0 A H( O
- (defun c:ga15 ()
$ o0 ?, c" M: }+ u& q - (setq a (getpoint "\nChon diem: "))
# p) F) g7 t2 W& M9 d - (setq b (getpoint a"\nChon diem: "))
9 o7 R9 S# j7 ~' \' w- z8 n - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 _+ M/ ?& J: \. }% d' l M4 ?3 S
- (command ".circle" c a)9 e9 W) d8 c9 t) d( o1 [
- (command ".line" a c "")6 M/ B5 H1 h, Y* S5 `+ @# r
- (command ".array" "last" "" "p" c "15" "" "")
: |2 d7 D" J) g) C1 t0 V% g8 j$ ` - (princ))
' Q, f! v; `2 ?9 z K4 { - , C$ g- b' Z5 v2 L- v
- (defun c:ga17 ()
) o# ?4 Q \( H. ?0 F. O! U/ J7 l - (setq a (getpoint "\nChon diem: ")): s6 F; ?/ Z& s1 z9 y
- (setq b (getpoint a"\nChon diem: "))8 [! j. b7 a' m) N7 }) N
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' A+ [# s1 T: i8 q0 X
- (command ".circle" c a)( M( h) s2 U# W7 p
- (command ".line" a c "")
1 S! k' `7 E' u. T" h9 y- J - (command ".array" "last" "" "p" c "17" "" "")5 @- k5 a B, n7 G& m
- (princ))
. h" Y3 Z/ d/ I: ` - ( r8 `9 g$ I" x
- (defun c:ga19 ()1 D! v4 U: P z/ C9 y7 U
- (setq a (getpoint "\nChon diem: "))
" O2 M, [4 p3 ?% |: [# G; h! R - (setq b (getpoint a"\nChon diem: "))
3 N, h# Z& [5 A3 D6 b* z/ [; O, Z% [ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): X% a% S% p0 U. V
- (command ".circle" c a)- P8 L; s# t. ~0 J
- (command ".line" a c "")
- |3 r( j) _3 {( Q" O6 |$ { - (command ".array" "last" "" "p" c "19" "" "")) d) _6 {& G! z7 z/ P0 a
- (princ))
z; k: ?5 H6 B. V/ y8 O5 v4 ~. E, L - 1 A" W! V7 r* u
- ;=====================================================================9 S# N9 }/ H1 M, o$ i
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
+ X, U8 V9 T6 T: c4 Y7 b1 M - ;=====================================================================3 S' s$ i7 f. @2 |
- (defun c:ga2 ()
/ n+ [" D: u0 l# F- O$ \% I2 D5 B - (setq a (getpoint "\nChon diem: "))
1 J0 `9 T# ^0 L9 f - (setq b (getpoint a"\nChon diem: "))% P" J- p' C. F, C6 W
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 n+ G* @) ^/ H! O5 p5 j" @8 {3 Y! g
- (command ".line" a c "")
c' D! m D$ i! h' f2 R3 j - (command ".array" "last" "" "p" c "2" "" "")
7 f' D6 ~! u( s' T* u6 i - (command ".circle" c a)( Z. g, s, u; K
- (princ))! A+ P4 m; f$ w; D; J0 _" `; b
- " D" m8 F$ |- y& F
- (defun c:ga4 (). o* Z8 {4 H+ ^3 M' `, o
- (setq a (getpoint "\nChon diem: "))
$ X8 c* M! X* I/ k8 ?! [3 a3 c& D5 U - (setq b (getpoint a"\nChon diem: ")): Z P2 X, x8 y) ~$ u8 k
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); U- Z0 Y: N5 |
- (command ".line" a c "")
5 X; A& k& u- e+ d' [ - (command ".array" "last" "" "p" c "4" "" "")2 c- [7 `. e% z* `( u
- (command ".circle" c a)6 }7 {+ ^0 B/ f/ _" W5 w
- (princ))
% s8 m( ]* H/ e* s, N s; [8 {! x: v
/ z2 M2 r( K5 u3 |; Y- (defun c:ga6 ()8 i% \$ v5 O% s
- (setq a (getpoint "\nChon diem: "))
: z% B) n' n4 ]: G - (setq b (getpoint a"\nChon diem: "))8 G5 t* @7 i- f2 M3 I9 x( R
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 j; q/ J. w; X1 a! Q$ f - (command ".line" a c "")
8 I) h+ H* R5 R0 e- x+ `' n1 v/ N - (command ".array" "last" "" "p" c "6" "" "") u o: w$ y7 m2 x( d! h1 u( e
- (command ".circle" c a). F( [6 A* m9 x4 y
- (princ))
\# g7 F* P4 E5 f% K. @ - " j/ H |' ]& A( K1 @* _
- (defun c:ga8 ()
! {# v: K7 s$ W8 l$ r: T - (setq a (getpoint "\nChon diem: "))
: _; c& c' q9 V. | - (setq b (getpoint a"\nChon diem: "))! f! J/ o9 ~9 p% J4 y) j1 o7 ?
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, a. Q* H7 n2 q: P - (command ".line" a c "")
/ x, @* q6 ~5 _ - (command ".array" "last" "" "p" c "8" "" "")1 F' w) B$ a c8 M3 o& X
- (command ".circle" c a)
7 y B2 ?+ \' S! [ - (princ))
% R/ \) X" m7 Z+ ~7 p9 g: M3 H7 D
7 v; I8 W% C( B) N0 \$ n- (defun c:ga10 ()# a/ x3 j5 g% E5 C9 f6 s0 ^
- (setq a (getpoint "\nChon diem: "))
% l0 _5 I3 l- E8 M, ^( O - (setq b (getpoint a"\nChon diem: "))8 p+ C+ p6 z2 M- y4 R* t( J' l2 [
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))8 s% |/ [' V0 U% h6 a5 s& S
- (command ".line" a c "")+ |5 S7 h: ?# N4 c7 Q/ ~0 H. L% p
- (command ".array" "last" "" "p" c "10" "" "")4 A; `. q: e @
- (command ".circle" c a)
( V% \ J3 T( X9 e- z' l! S- p - (princ))
0 Z& E0 s5 l! _0 F. o) r: s( t - 9 _& }% D' C$ M/ n n
- (defun c:ga12 ()4 j" P S- f( v
- (setq a (getpoint "\nChon diem: "))% R$ ~5 C4 q2 H# i" ~+ Q: U
- (setq b (getpoint a"\nChon diem: "))
6 g% y6 J, O6 |7 ]+ F - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 J" K3 J |3 z* D2 ^4 F0 l
- (command ".line" a c "")3 x/ E! u7 i5 R3 {* _8 L9 n
- (command ".array" "last" "" "p" c "12" "" "")1 n' B9 _# g) g* W5 `
- (command ".circle" c a)6 m$ m! Z% t7 v. {
- (princ))
9 Y( p5 E' Z, D3 j
" ^# n5 n1 H+ g# F. j- (defun c:ga14 ()
5 j+ M$ R# t }6 [3 H5 N - (setq a (getpoint "\nChon diem: "))8 G/ L1 L: u8 Q3 a9 p1 t
- (setq b (getpoint a"\nChon diem: ")): V0 b1 x; K4 e* h/ d5 R
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))6 [2 Z: @ }$ q2 n F
- (command ".line" a c "")
9 E& i) Q6 `+ Z - (command ".array" "last" "" "p" c "14" "" "")6 h. t( N. v, {5 @6 Y' m* ^/ W
- (command ".circle" c a)$ F7 |7 b7 O% I8 N
- (princ))
5 c2 ^: J& s1 F, \4 H6 d |7 w
# D6 {1 w2 [5 O% p' ^& a- (defun c:ga16 ()7 A& C# C7 \+ [
- (setq a (getpoint "\nChon diem: "))
# U9 T7 }1 v# k/ }* X* ~9 B - (setq b (getpoint a"\nChon diem: "))1 E! R6 Y0 p$ F' \ ^" p
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
* ?* A5 O* U0 _) V - (command ".line" a c ""): x, T. _$ y, ]0 _! |
- (command ".array" "last" "" "p" c "16" "" "")
9 I6 M: s2 G7 t# e - (command ".circle" c a)
[- B' V4 V m - (princ))4 i1 z8 |7 t% I
- 4 z) Z% m4 f5 F3 k# v' r
- (defun c:ga18 ()2 x9 E3 Z# T' q! r. r
- (setq a (getpoint "\nChon diem: "))
" M; o2 W* M7 A; ^0 B6 _ - (setq b (getpoint a"\nChon diem: "))9 B, O4 D" ^! S! N2 `, g
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& b: L7 t0 o- I5 N5 D3 y/ W0 H% c' A - (command ".line" a c "")
& W2 Q2 H1 ~5 y' h/ c - (command ".array" "last" "" "p" c "18" "" "")- R4 [5 K* r. n$ F
- (command ".circle" c a)
: v; r X" X3 U+ M L3 s& g - (princ)) E1 M) e, e2 t4 x: f
. k$ [ w' T% K& I" Z1 z- (defun c:ga20 ()1 ]: T; K$ D" E4 Z5 S4 s4 {/ |* Z
- (setq a (getpoint "\nChon diem: "))
, H4 M2 S: F0 H2 A- ~* O. C# ?2 s* F. ^ - (setq b (getpoint a"\nChon diem: "))0 K: q7 R2 c& O7 E% `' H
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 g( k' `; A2 e* f B7 }
- (command ".line" a c "")
* W9 `: R8 v+ n3 y3 a! `. l - (command ".array" "last" "" "p" c "20" "" "")
( M1 B! I" D" |# v1 `! J - (command ".circle" c a)
" m6 d& C0 O) X1 T* E - (princ))
( X0 S# y0 l0 g+ r. x9 J( } - 0 Y# I$ B3 j7 |" [" A' S; d- j' K
- ;=====================================================================8 ~! o& D B: N$ f) H A
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============! K! K! u6 C; i4 m* U# _. {
- ;========================== 06-11-2016 ~ 18h00 =======================
- K! Q; Y! l5 ?. l6 C; D1 s - ;=====================================================================9 D& g, s! M$ O# t2 H+ B# ]
- (defun c:ga ()2 p: l+ _0 R8 t6 E+ U
- (setq a (getpoint "\nChon diem: "))
8 a+ a8 J9 @) N - (setq b (getpoint a"\nChon diem: "))5 G7 `4 e* K5 m! g0 |
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
}( l1 _" G% \ c5 x& Q9 l - (command ".circle" c a)
9 Q* x" Y/ w' o' u& O' o - (command ".line" a c "")
! a, O/ |) G! Q5 l& d# ` - (command ".array" "last" "" "p" c "NUM" "" "")
1 L% H- L8 l% N! f7 i4 ] - (princ))
% _' j9 Z/ _ i" H# c# J
, L ?! ?! p& _2 X. b- ;=====================================================================
- W6 I: p T: M - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
) u1 h8 } ^5 r2 z2 ? - ;========================== 06-11-2016 ~ 18h40 =======================
7 `1 [) G/ G" m" e" ]$ x( { - ;=====================================================================: A% i/ Z& `: N% M& d
- # K+ `6 x0 v h& D# ^
- (defun c:hoathi ()+ ~2 W$ F! e1 {; O' M
- (setq a (getpoint "\nChon diem: "))# T' [% G0 v1 e' }
- (setq b (getpoint a"\nChon diem: "))
t! z/ V1 n2 N( G# O$ X* T - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): D6 |, G: I# I6 q9 |
- (command ".line" a c "")
8 p: ^" Z$ E; d5 S6 L5 J - (command ".array" "last" "" "p" c "NUM" "" "")
) X6 y# C4 Z* ?$ r - (princ))- d$ R* `9 b$ b+ e) c8 A
- ! u# B% I+ J# @. ~! c
- ;=====================================================================3 ]" b- S# ~3 L% D3 N. v
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
. s$ R& [% r% }4 [ T. ~, q - ;========================== 03-11-2024 ~ 19h33 =======================
1 C+ \1 F. Z3 w. Y3 l3 x8 N0 H/ j - ;=====================================================================
5 D* O" Q" i7 q9 P, x5 e% T9 o" A' e - 1 ]! v* B* h; g( W! g$ ~ l9 y% v; A, V
- (defun c:cung ()
+ G6 S+ r1 O K$ W3 [ - (setq a (getpoint "\nChon diem: "))% X+ V/ {) s/ }7 O4 o+ ] y) b
- (setq b (getpoint a"\nChon diem: "))7 \. |6 i! @4 `2 |4 C+ N6 N
- (setq c (getpoint a"\nChon diem: "))
+ }3 ~: ?1 Z$ x2 W% [0 ^ - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: a4 ?+ L6 I8 m E - (command ".arc" a b c "")
5 y9 p9 a# Y8 c# z+ L - (command ".array" "last" "" "p" c "NUM" "" "")
( `) Y" C1 B) N - (princ))4 H0 q" B. X( D
6 \3 ?* ^5 S. ?. e4 b- ;=====================================================================9 o* n' ]: v" o) y. m. i
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
- G5 g9 ~: L7 b, F! s( Q - ;========================== 03-11-2024 ~ 20h02 =======================
* E/ U: C4 G9 U4 l+ y0 g) j - ;=====================================================================
' U; _9 C8 j5 J5 h# | N
! J5 a2 V( j( I7 w5 Z! H- t" E) @# V- (defun c:hecloic (); v4 W/ b' N1 n) m4 ^ c: ]
- (setq a (getpoint "\nChon diem: "))
) ~/ J( p) T) H* o# c" d* \ - (setq b (getpoint a"\nChon diem: multi "))! k* q* |' N# [
- (setq c (getpoint a"\nChon diem: "))(princ)* x- W8 M f, H- p$ D
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ O; c+ D. j5 s P3 n6 ^9 t - (command ".arc" a b c "")
f2 K! K! `# e1 [5 E - (command ".array" "last" "" "p" c "NUM" "" "")
. O7 V. O! E4 S- E: t8 Y' b* n - (princ))6 U/ L5 K5 f3 D5 O
4 [& z7 C* ], c" q% @$ [- ;=====================================================================
# t* w3 F% \, z6 C3 k - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
: L/ `! K: j! l& @0 f2 x - ;========================== 03-11-2024 ~ 19h38 =======================
& l+ |- }5 W0 R3 ~$ ]: g - ;=====================================================================
" q) V/ u( l" \$ ?" w - ' f8 j. ]# s, I, ~
- (defun c:gay (). p' V, B" `( n4 u% N* Y
- (setq a (getpoint "\nChon diem: "))
" y- U( w" s: L - (setq b (getpoint a"\nChon diem: "))" @ q/ }, V$ R4 l( I
- (setq c (getpoint a"\nChon diem: "))(princ)1 ?+ k- f$ i5 E( N$ d. U5 e% U7 \
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). a4 r7 ?* {5 {0 d4 b5 Q# S/ G1 N2 N
- (command ".pline" a b c "")( Z5 V' V# p) D1 Z% i
- (command ".array" "last" "" "p" c "NUM" "" "")2 ^' a& u9 O* _
- (princ))
8 S1 P" E9 c$ O- b6 U - - t: p8 m# X& f3 ^7 q- l2 \2 p
- ;=====================================================================" z1 Y: E9 k% f7 h0 r3 s
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============ ]. n# Q+ X' a
- ;========================== 03-11-2024 ~ 20h02 =======================7 L% Q. i: [4 h# i, _" r: @
- ;=====================================================================/ ^, f; @" R2 s- c) a4 E/ R: `$ @' w: H
! R9 A3 `. |- [- (defun c:hecloit ()
) J; A9 z; d' N& P: O - (setq a (getpoint "\nChon diem: "))
r' \3 w) k- ?9 M6 `, m - (setq b (getpoint a"\nChon diem: multi "))
: M2 Y' u2 P" x1 d7 U6 v - (setq c (getpoint a"\nChon diem: "))(princ). e/ i, T& \& E
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
W1 x8 C ~' ~1 D. ?! g$ i - (command ".pline" a b c "")# D( E/ g3 ~( [% [" V/ V
- (command ".array" "last" "" "p" c "NUM" "" ""); @ x) K& q4 m9 ?, \% ~
- (princ))( e+ I) S j- ?+ u, U" |
- 2 Q8 ?3 ?, [# j0 S0 `$ x
9 V/ i# T3 D: y+ [6 i, ]* @0 A- ;;; ============================ Merge Hatch =============================9 Q& l$ G, y; s7 N! o
- : i' k$ t$ B7 A5 V% t, A
- (defun c:mh (/ ss entht sl i dt dtht)
0 g$ ?8 Y0 B& f! ? - ) ]7 E) j% q* v& r, _8 L( T9 w
- (princ "\nMerge Hatch - free lisp from CADViet.com")4 R a: N. {( m- y k
6 ^# L: E6 H% E6 K- (setq
3 e! }/ l2 S0 U* K7 ~% {( @0 [ r - ss (ssget '((0 . "HATCH")))
+ f7 V1 R, E+ F% c7 Y3 [ - sl (if ss
6 p" z8 a& } i; o - (sslength ss)6 W8 j' [# p# [6 T; o+ g
- 0! P1 f. V& Q: x: y& E$ |& }; N c- u7 n
- )6 A$ g- b. A; @" Q. `' |
- i 0) B* G+ K- A/ u- k( N" _% f$ [
- l 0
2 h) O0 t! s9 }2 H* F8 e - )
! U$ z |7 P5 G
, [7 C$ P4 ]5 U- (repeat sl
0 ~4 `* c8 L' m/ m) j' l - (setq% S" W! ^* R2 q# R& u
- entht (ssname ss i)
# C# z7 f# Z! S - dtht (getbdata entht)
5 H8 [% u x; G6 U" P( z, L3 k! h - dt (append dt dtht). y4 {3 j n7 C& w
- l (+ l (cdr (assoc 91 (entget entht))))
4 \8 i2 J5 V& {$ ?" f6 `/ h - i (1+ i)
# V3 s) n! R( V' ]" y+ A - )
3 @- b7 \* w/ i; ^ - )
! S. b `7 V' {7 l' I! t
S2 l6 r. p7 p- (setq ent (ssname ss 0)# |3 l2 w. k/ [
- ss (ssdel ent ss)
: f" w$ K' m; p5 h - tt (entget ent)0 s& {$ x. P" a8 ~) b8 @2 S+ i
- duoi (member (assoc 75 tt) tt)
0 {! J& G; Q' j# J4 O2 r - dau (reverse (member (assoc 91 tt) (reverse tt)))/ L& Q3 C+ J" Q3 D- F% C
- tt (append dau dt duoi)
. P* Q+ h5 O" H) I2 q6 v2 \" |4 _ - tt (subst (cons 91 l) (assoc 91 tt) tt)4 v- J9 d3 f# |; p
- )
3 `. X4 ]' d( Y# x) m( o$ \+ _ - (entmod tt)
; X3 p3 [; W" N! t
+ q2 G/ x. Q0 N/ S4 i. f( M- d- (command ".erase" ss "")
1 ?) C: e# \5 ~- ?$ j3 C - (princ)
* o" _" ^ f! C; p6 {! S* ]$ P - )$ {- O/ T h% L6 A& Q9 v
- 5 K. l( ]" ] \: C" X7 h+ c& r
- (defun getbdata (ent)8 o$ H; k! _$ L% Z7 C
- (setq tt (entget ent)
1 Q4 r9 {* A+ j0 Y; O6 |" | - tt (cdr (member (assoc 75 tt) (reverse tt)))
* R3 \; O3 S8 p# E. B& X. @$ d - tt (cdr (member (assoc 91 tt) (reverse tt)))- O- d& C4 T8 t* q8 H
- )/ m: E' G$ E. i, \
- )3 C2 V# l* V9 U: g& O
- 6 E& W8 U9 Y" z0 |
) D* E {' _) \- (princ), o' b( ]2 x& Z6 s; k) T7 t5 d1 m
- z/ T) |5 }5 c
- ;;; =========================== CAC LENH LAYER ==============================
0 A" X7 ?% h/ W/ P3 p - ;;; =========================== Layer hien hanh =============================
( o$ j9 g" }# m, ^ - ! V- F8 \! P u
- (defun layset (/ LAY) (setvar "cmdecho" 0)
) Z9 F& o) Z/ [) P v* A) t - (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
0 L7 g, @1 \; y. h' K - (if LAY (progn / U, Y: C0 h7 t) p4 \! `
- (setq LAY (cdr (assoc 8 (entget (car LAY))))). [: g7 Y% N( G/ M3 S
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ). m) n" U6 ?5 s& U4 H" b
- (progn5 i0 G# e$ K# X3 }
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) 5 w6 d: g' v. b7 f9 r0 C0 A
- (progn
! }! @5 T. @5 V5 C1 h/ _ - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )+ f9 `$ s8 o: B7 v* `3 d# v2 k
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))
0 G) U {" D0 L5 B% a2 L - . z4 l5 D% a) o9 C1 b3 @: I+ X3 H
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
) ?6 h; F5 e' }9 V0 L - ; @$ s% N3 O% W2 h6 x0 ~- c( k3 e
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)0 s H) w1 J" t- T! L
- (if (not (setq SS (ssget "i")))* G4 ]6 U! ~9 k' |7 Y8 a3 ~/ X
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
1 `* l' ~* p8 T - (setq SS (ssget)) ) )! j) k5 [ s; D* c$ `
- (if SS (progn% [+ t5 F* q% @% I% |) p2 _6 n
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") & c- o5 @2 D0 J! o
- (if (> (getvar "cmdactive") 0) ! A$ b+ j* s& w0 k1 ]
- (progn
3 C) Z# }: b7 b" }: l - (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )! w1 l& o" |, ]* U8 k4 n- V
- (setq SS nil) ) (if (> CNT 0)
# a5 p2 s* A7 Q6 {$ m" R' N - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
0 c9 ?+ p* q1 t1 h( a - (if SS (progn
9 C- W0 H, C% _5 R - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
4 g/ _: A/ k" i0 W3 {' \' u - (if (= (sslength SS) 1)
8 [: c& F8 {1 Z( u* q& d - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
' r. }. B, c; h2 Z% R1 C" \ - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
1 S: d) }0 G0 l" z. l5 m% c4 _ - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
' o& t6 r- N& O - , [; r% ^1 d* y$ v* E- f5 P
- ;;; =========================== Layer Iso ===================================
6 Z' i" }& c$ U
: ~9 a% \1 Y$ `9 x9 z3 v- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)% F, V- z7 r3 ^. n7 \ b& K) {( X
- (if (not (setq SS (ssget "i"))) (progn( N7 C: Y6 C9 U: N- j( j# J
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
2 A' E. u" i1 g+ @ - (setq SS (ssget)) ) )
! Y6 A, c5 _ [# T3 f - (if SS (progn (setq CNT 0)2 j( }5 D9 s3 m; O ~
- (while (setq LAY (ssname SS CNT))$ q6 @8 J. _ P1 A- o- [$ M
- (setq LAY (cdr (assoc 8 (entget LAY))))
6 Q: O4 X1 `& m, B; P1 }) M0 I - (if (not (member LAY LAYLST))9 B- V2 _5 ]3 M- T* k* T
- (setq LAYLST (cons LAY LAYLST)) )
9 @- l* m7 w+ S. y* d5 Z9 d3 z' G: h - (setq CNT (1+ CNT)) )$ d/ f, r7 R* S6 @( P
- (if (member (getvar "CLAYER") LAYLST)
' |, j: Y" t8 c+ P: }. f - (setq LAY (getvar "CLAYER"))
3 s" W3 X; F% o8 w- `! ]' `- V% V - (setvar "CLAYER" (setq LAY (last LAYLST))) )( g2 R1 J' o ?4 E" o/ q' y$ U' M
- (command "_.LAYER" "_OFF" "*" "_Y")) z- z' ~5 Y! q* M) A' `
- (foreach VAL LAYLST (command "_ON" VAL))3 J" _1 C( ]9 ]5 b4 q7 w$ ~# g9 J0 C
- (command "") (if (= (length LAYLST) 1)5 v: E% @. r$ h/ X7 K) ]4 P
- (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
7 e0 [% [ V# Y7 J* _2 D - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
6 g2 C! t2 m4 R5 s - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
: e7 n5 S; @! V. r+ J0 V$ B# ] - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))
# P5 J" j9 I# ?/ |# T - $ ]+ W, |) w8 Q; A
- ;;; ========================= Layer Match ==================================
/ J0 J7 ^9 n$ d7 R
$ \2 `6 y, z$ c4 M& v- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)& P3 w! B" S7 t s; F
- (setvar "cmdecho" 0)
. h5 C* v B7 u8 c! W - (if (not (setq SS (ssget "i"))) (progn
, ~. Q5 h. t. p; ]& w4 n; f! ~8 } - (prompt "\nChon doi tuong muon thay doi Layer : ") P1 Z/ k# c* y# f# a1 M- @- m
- (setq SS (ssget)) ) )
# h- q. w3 g+ T - (if SS (progn
1 b7 x0 X' y8 J5 Z+ g6 i - (setq CNT (sslength SS))
" M" s1 T5 X8 `* V9 K6 p - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "")
* P# H" @% U8 R' R4 f5 G - (if (> (getvar "cmdactive") 0) (progn
9 R; b7 z3 ~; t# k/ o - (command "0,0" "0,0") (setq SS (ssget "p")
0 x, ^: {% \6 g# a - CNT (- CNT (sslength SS)) ) )" U8 B) ~- d5 K9 o
- (setq SS nil) ) (if (> CNT 0) ! H$ W/ P- J" a" H1 p
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
/ t, m% _% m% d% z) Z - (if SS (progn+ n. P( @! J+ \: q' r
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
0 @+ h0 B6 y/ k8 U" C( t* H - (while LOOP (cond
# N) q! Q! Z( y5 `. ^ - ((not LAY)5 l5 B9 P# }# s+ q
- (prompt "\nKhong chon doi tuong.")
- {) r! E4 I9 l& n) k) c) t - (prompt "\nSu dung layer hien hanh? <Y> ")9 n7 u5 r* u. E% ?
- (setq ANS (strcase (getstring)))
5 O a+ [1 T1 h. T% [5 }, f. e - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
5 A/ B1 f1 F7 c5 d8 P" A - (setq LAY (getvar "clayer") LOOP nil ) ) )
; ^. V( y0 C' i/ S# F! @1 X - ((listp LAY) (setq LOOP nil) )
, T) n/ g, g5 ~& ? - ((= LAY "Ten")
: N+ y I/ m+ F/ p4 Y# B7 D - (setq LAY (getstring "\n>Nhap ten layer: "))- x2 q4 f8 J8 Q% t" C
- (cond
- W8 Q e4 }5 m. l0 { - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
4 w& x1 W) ~* b! g/ } - ((/= LAY "")
* F- R2 }8 @$ R1 {7 v* \# V - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
- |! U7 _, b+ Z f. G" r' L& v - (setq ANS (strcase (getstring))) i+ }! q9 ~9 ^, u
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))9 Q4 _, T2 K$ @5 J3 ]) s
- (progn2 e% h, Z0 ~1 k5 ^& x4 G% _3 v- a
- (command "_.LAYER" "NEW" LAY "")8 B1 o& `( |: b6 D
- (setq LOOP nil) )
4 Q0 M. Q( d8 W; l" B - (prompt "\nLoi ten layer.") ) ) ) ) )
1 u& O( R7 j8 f/ A6 o - (if LOOP (progn (initget "Ten")+ p* z1 Z: z( Z) E9 K( r
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP q( N# `# u! v9 |" H% J$ ]4 @9 K
- (if (listp LAY); h2 U3 N/ j$ N
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
. r4 h4 R- U9 Z' _: o# }- ] - (command "_.chprop" SS "" "_la" LAY "")' h! w3 S5 F, i- o# E/ L
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )8 T, C6 T$ j) g+ [( v6 D W& b. O
- (if (= LAY (getvar "clayer"))6 J8 Z4 c1 L& Z
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) ): f6 u9 Y+ E7 M1 \, A$ d" E% K
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))% h3 X- J; a6 z `* ]
. {$ r( I7 p/ c0 s% I4 W- ;;; ============================ Layer OFF =================================
" U) H6 @" n9 R) z7 |9 `, G+ `" [
& U9 O3 v) I5 J2 C0 X- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)& V% m$ Y p+ s
- (SETQ SSET (SSGET))3 `4 z: H7 _. V7 e$ S
- (IF (/= NIL SSET) : ?) D. f9 f4 p. Z4 n$ ~6 |
- (PROGN
5 g+ x' r8 V. R* z5 y8 C0 q2 g - (SETQ SSL (SSLENGTH SSET))
" P1 W. [# z! J5 J- F0 J2 C* w% H - (SETQ LAY "")* h) K) i/ `) M5 @. p
- (SETQ I 0)) |, p. W% y4 T% L# G, R
- (SETQ MODE 0)
8 k# Z* P1 p, ]' M1 X+ X - (WHILE (< I SSL)5 k4 A/ ^+ R9 w! |% `5 {
- (SETQ ENT (ENTGET (SSNAME SSET I)))
$ q8 [& H0 J& l1 ~ - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
2 `" b U% _1 ? h" q - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))7 t% o; C# T! R# C
- (SETQ I (+ I 1))# M' w6 G) [# Z6 o9 i e9 }
- )( h: M' b2 `4 U6 u# {: \
- (COMMAND "LAYER" "OFF" LAY "")' C3 T7 j8 ~4 {: s/ f x- R e
- (IF (= MODE 1) (COMMAND "") )! q: J- m/ I Q8 O e0 }* z
- )
7 o: \3 C8 ~% t$ `8 K4 I, l5 X - )
5 [# }& A: u2 V0 e5 z - (PRINC): j) Q! S2 B$ l7 \5 i
- )
* ]1 U3 X8 a% B& O - 9 V/ k% d8 S' K$ r
- ;;; ================================ Layer ON ==============================2 p$ l: B: f0 @1 G6 ?
- , f/ {" z6 [. ]7 P! _8 I# O7 ?
- (Defun LAYON () (setvar "cmdecho" 0)) ]( P8 B4 l" k6 M& b7 [: G
- (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
2 q: w! F( S! q8 b# H% l - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
% F" N1 E6 v% P, k& } - (defun c:LAYON () (layon)) (defun c:LOO () (layon))
! `: q: \' Y o4 _; F - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
& M# r) a' M8 z5 @# z - % y' y3 ?) H6 T6 X: `0 s/ v$ R
- ;;; ============================== Layer Freeze ===========================
2 D! A. B) ^* F
8 A" O% k5 J) m- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) 7 f0 L) `+ }4 |% F8 K7 j- F2 h
- (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
( V5 s( p. R2 p - (IF (/= NIL SSET) (PROGN4 P. j Q# X) ]) l$ d4 M2 N
- (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
, m/ f( ^( K8 l* V7 N) l+ L: a - (WHILE (< I SSL)
: q6 Y. }8 n% G% X+ A# H6 X! I - (SETQ ENT (ENTGET (SSNAME SSET I)))
+ A t# i. ?! k7 J3 z8 v - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
6 v E% b, b* r& _ - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1))); S- z7 H2 ]4 r' v6 S% u* A( N
- (COMMAND "LAYER" "FREEZE" LAY "")
1 l0 K" [" [0 g- a3 g- K - (IF (= MODE 1) (COMMAND ""))))4 j* {+ v$ w( K4 B2 q, Q1 `
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
" u( S8 R8 W. f, w: y+ ? - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
8 ^% a4 j# c- T6 r% k - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))9 T3 o \" Z9 L
- 2 s- |5 I- l2 @, h2 C" J
- ;;; ============================== Layer Thaw ===============================( V, h! s' ]. ] Y/ Z5 q3 S- m4 ~
, u6 Z6 Z" k h0 y* ?/ @% t- (Defun LAYTHW ()
7 _5 l" B2 o3 V1 e6 X - (setvar "cmdecho" 0)
. _3 P' G) f( p" P - (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
' p, A, Z5 T+ a6 T9 \5 I - (Command "_.LAYER" "_THAW" LAY "")
0 K) N! z- I4 ~ - (princ (strcat "\n Layer : " LAY " da THAW."))* i7 R7 b: e3 ~! x, Z
- (princ) )
7 v0 K+ e/ \: l/ ~1 f - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))# J% x8 X# C; B, L( [
- 6 X* x( s1 l; v
- ;;; ============================== Layer Lock ==============================; Q0 |; F; F, `
0 c9 O( @" s: _+ s1 B- (Defun LAYLCK (/ LAY)* K: q8 r$ w0 O
- (setvar "cmdecho" 0)' q1 ~. E7 T. D @- t# \
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
/ Y. [0 u$ h @1 L6 U - (if LAY
# z' A9 B& X5 U - (progn! H& N3 t$ ], K6 D: s, p' I* }
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))& u( [/ C4 k; o3 z( ^8 _7 @1 s
- (Command "_.LAYER" "_LOCK" LAY "")
! A2 J- i8 R' F( B/ V0 P - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )* j( i! E3 l$ w: L" j9 T0 N# V8 a
- (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
, n; F) [" f2 I# h y4 R* I# r; \ - ( P/ @; z `1 W: u0 i9 |' B9 P
- ;;; ============================== Layer UnLock ==============================
1 @- M- @* Y5 d - 8 ?6 v# Q; P9 B a
- (Defun LAYULK (/ LAY)) h8 Z' q5 N' \# `
- (setvar "cmdecho" 0)2 ^- `: F, y# L' I: ^! M) B
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
D* [) C6 }% c8 T# _. x0 ~ ] - (if LAY
( N3 P1 c6 n) Y - (progn2 o0 }6 @) O: \
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
$ t) z( }1 Q" m+ r7 s' } - (Command "_.LAYER" "_UNLOCK" LAY "")
0 J. C6 e% ]1 H# e& z - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) ), j1 a# Q1 \; G
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))
( y/ L. q$ k3 |/ u0 ?6 U4 L - ! r! E5 a4 g: \: l9 ^; B
- ;;;===================== Delete all objects of Layer ========================7 E7 z7 F5 Z. q6 M
6 y' W- Y" Z. y A' i6 r5 ^- (defun DELAYER (/ ocmd L S) 6 [! ]# t! x! K4 i) E: b; y
- (setq ocmd (getvar "CMDECHO")). V% P* d& `2 X0 x" }) O2 f
- (setvar "CMDECHO" 0)
9 M. l. P) D; l7 M% [ - (setq L (strcase (getstring "\nLayer(s) to delete: ")))& l, W) J2 l, H
- (setq S (ssget "X" (list (cons 8 L)))) 5 @1 F* I! u+ `' I- P
- (if S 2 Q( ^1 U5 F5 z% ]
- (command "ERASE" S "")
; M2 N) y" E5 b- V% l% G) u5 W - (princ "Layer empty or not a valid layer name.") ) 3 [- A( @; V f7 [
- (setq S nil)
: P' _7 ]# ^4 A/ }* i$ ~& [5 I - (setvar "CMDECHO" ocmd) 2 e$ j2 I; d; h) @0 B$ t9 r4 L
- (princ) ) " W+ r/ J, ~( i. h0 T4 ]( _
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))0 @% F1 D2 N2 Y6 q
, u0 G) V( K- b) O; g4 V$ |- ;;; ========================= HET CAC LENH LAYER ===========================. ?8 S6 r5 ], t% D% m* J
6 u' E9 x9 x8 P2 O- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
! Q. g. o C# X J! D
7 `+ N6 f2 k2 q9 u0 {& K+ e- (Defun C:EET ()( W) Z3 r' E9 Y& s6 m
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
* c+ [% E7 W/ p - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))# D; Y5 v4 ^" U' _; j) b* i
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))6 t' X- B* K2 ^7 ?* h4 [
- (Setq I -1)6 a& Q/ O0 @" O% c8 [5 E
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG ""). }- e3 A" ^. [' ^
- (Repeat LEN
% O( t& ` T9 _0 | - (Setq I (1+ I))
7 o$ R; U1 Q4 l% s, }, T - (Command (List(SSname SS I) SIDE)) ) (Command "")
$ z. W! v3 R+ T2 n9 J; d5 I1 a - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )! ?. \& F6 h" R/ }& H1 y
+ _8 J& T( s" q$ J$ \9 l- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
7 {! m+ h, e3 m& b {2 i
( X0 h8 A- n1 p. O+ S- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
% j9 s: p5 g9 \- ?; w* Q/ g - (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))5 _' j1 g4 F/ y
- (setvar "osmode" os)
7 i1 W9 L; P- m9 V4 W" C; `( K. r - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
, W0 {( g2 R* G4 o7 N - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
$ v" c8 [# {3 V& z+ E# \* X$ f - 7 @# _/ e! T% T) ?( b9 P
- ;; ================ Change width of polylines =========================
8 h. V& Z7 k% }: [& m
, B( ], s/ }. }) U5 ~5 U0 ^- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
- e+ S- b5 U( Y7 J p - (PRINC "\n Chon doi tuong can thay doi do day (Width) !") # F( E+ U% u8 Q
- (setq b (ssget)) ( F: W3 |$ C' U7 h% C v0 x
- (setq sophantu (sslength b))
; h, V+ A) m9 g - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))0 t, p) Q+ E) P
- (princ "\nDo rong polyline <")+ ?2 B; M# A! Y$ D
- (princ ha:wid)
P0 ]2 W8 y! U - (princ ">: ")
& g5 Q) E% \/ q. k - (initget 4)1 A& I( [) C1 K( ?! e# N. f5 l, i
- (setq ha:wid (getdist))' U" p2 H+ ?- r3 r/ B4 C @/ F' d
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
8 Y, ~. H! M3 Q" p" W - (setvar "tracewid" ha:wid)
5 k+ ~8 ^0 p3 }2 b - (setvar "cmdecho" 0)
# F% G9 A( A( f: N - (setq sodem 0) : \/ W% M$ M- k
- (repeat sophantu3 N% I7 f0 d7 G
- (setq a (ssname b sodem))
0 a- j0 g3 B( M - (setq list1 (assoc 0 (entget a)))# U4 G$ o8 D+ |* A$ C
- (cond0 D4 a5 X6 ?% s: M/ `
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))7 ?* T1 B) a- x. t/ X0 f
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
9 f) Z1 I8 A3 U - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))7 N# V$ [; i5 r# P, N- }4 ?
- (defun c:wp () (wp)) (defun c:pw () (wp))6 E( c6 g9 Y/ b3 q
" D/ Z" W$ J: E' r, ~- ;; ================ Change radius of circles ==========================3 \$ u; ?1 c) k
- / d1 ]+ y$ Z" J* G
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))* a4 Y, f' n* O4 o5 s" a* R
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
7 Y% Y" E+ ?6 k8 g# O - (IF (/= RD NIL) (PROGN (SETQ I 0)
6 x1 C7 p4 Y, R0 v( ~$ t# C* j - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
6 V- z# C1 @$ v/ H - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
2 k- w1 m' G8 Y6 ~7 ? - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )8 X5 G6 u9 @9 w( k7 x( f
* _% h: L& i6 B0 N$ ?8 y+ n6 o- ;;; ============================== TEXT Hight ===============================1 H" k( c+ b0 ]! F1 a: Y
7 d8 m5 r2 X) [: e& ]! r- (defun texthght (/ ent hght)
# E2 K5 \, }6 Q$ C7 i1 ~, o' G# w - (setvar "cmdecho" 1)
/ ^% D/ l# }0 E. G9 B# \ - (prompt (strcat"\nSelect text entity with required text height"))% o; X/ X; `. s( x& N
- (prompt (strcat"\n."))
, Y2 M; h$ b. j0 N' p - (setq ent (entget (car (entsel))))
5 U3 _) P( K" O& p$ a - (setq hght (cdr (assoc 40 ent)))/ H; x. Y1 V4 A2 ]6 L* n6 b
- (prompt (strcat"\nText height now set at "))(prin1 hght)
/ G+ B8 J4 q& |$ ~ - (prompt (strcat"\n."))
1 M3 ~( s2 a7 y/ i4 X0 J: \ - (setvar "cmdecho" 1)& e( ]+ u5 v+ u$ p9 W
- (command "DTEXT" PAUSE hght "") ): e* @, `0 I. \ k$ E: }
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))* m l( w. M4 h! o- N5 o
! |8 }- Z# L9 S) u, k8 m- n- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================. q2 E |7 \7 z8 q/ S2 U
- * ]% b/ ~% f/ `% m3 u$ S- y
- (defun c:tuu () (setvar "cmdecho" 0)
* ~' u# \9 l; S& L: d - (prompt "\nHay chon dong TEXT can gach chan ")& ~; i( f9 e- j( O) F
- (prompt "\nSelect objects: ")
7 @0 y- n( ^$ Q - (command "select" "au" pause)
" o4 W. N# u/ J - (setq sstxt (ssget "p")% _# S& w- S% [9 }0 J* l% ]- X# K# z% O
- sslen (sslength sstxt)9 ~2 n# Y8 ]' q; t# @# P# H
- ctr 0 )
8 O! y, L) t6 v/ s - (command ".undo" "mark")7 K$ k0 H/ d/ R+ h- F
- (while (< ctr sslen)
$ G0 c$ Q4 g* \6 Y! C2 S: Z- w* k - (setq listxt (entget (ssname sstxt ctr))
7 U; r- ^( Y/ I9 D9 c4 i* V - txttxt (cdr (assoc 1 listxt))7 b3 o: _/ b: Y9 {5 d* R( Z
- enttxt (cdr (assoc 0 listxt)) )
( S3 M* U5 x& U, U" B# ` - (if (= enttxt "TEXT")$ ~0 c6 @4 X. W- A3 A5 ^ M
- (progn
. U2 I+ E7 b% _ ]0 }7 S* v7 h - (setq testxt (substr txttxt 1 3))% V0 g( D8 Q5 g
- (if (or (= testxt "%%u") (= testxt "%%U")) k. s) R6 L/ W) N! t) M; n6 S
- (setq newtxt (substr txttxt 4))
- p1 V2 w: E6 P! y4 T$ Y - (setq newtxt (strcat "%%u" txttxt)) )
# }# t) c/ ~1 h% \& I - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
5 E0 X7 |' S {; f+ y% C1 Y - (entmod listxt) ) ) \! A% o7 u8 T
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))( h7 f; c) a* u+ x
- ' P; ?$ c4 c1 y& y; Q
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================) V) f4 A) ~0 @% a! O( |
- ' R/ p& R$ F; S7 R
- (defun c:tob () (setvar "cmdecho" 0); Z* Z% c, p2 A+ b! l8 \ ^
- (prompt "\nHay chon dong TEXT can gach tren dau ")" u) ]4 [8 m, N& e$ ]9 E+ a
- (prompt "\nSelect objects: ")& D8 d" y1 v* ?- m, V( Q
- (command "select" "au" pause). _! u1 f$ P; w
- (setq sstxt (ssget "p")
9 e! L3 }7 Y7 F- R0 ^ ?6 @. Y7 V8 r# l( ~ - sslen (sslength sstxt)
* n5 L* E" q$ o/ z- k" ?6 {; P7 p - ctr 0 ): G" B3 P' m: D. \( Y
- (command ".undo" "mark")
4 J& o9 t7 I O9 f& o) F - (while (< ctr sslen)
! K; q$ s$ V6 h) v# m - (setq listxt (entget (ssname sstxt ctr))2 B1 S# s8 ?3 [+ I, n
- txttxt (cdr (assoc 1 listxt))
8 q3 c0 F; j) q; W- T# C3 D( @ - enttxt (cdr (assoc 0 listxt)) )- d3 _: w; q* v; V- ]$ C; H3 {, d2 v
- (if (= enttxt "TEXT")
: e* S: i3 e3 z3 o! x1 i - (progn- |- Q9 T* h: F: B4 \0 }
- (setq testxt (substr txttxt 1 3))
5 Q( A* ?3 b9 k) T& q: a - (if (or (= testxt "%%o") (= testxt "%%o"))' o% D$ }# N8 R
- (setq newtxt (substr txttxt 4))' W0 q* R) L, a
- (setq newtxt (strcat "%%o" txttxt)) )
6 q% U/ Y8 d! [ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
6 w! r W& F( g - (entmod listxt) ) )
2 Q9 M' H: {5 t3 y - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))( g& J- v/ K- A; N
/ {' T. _/ B6 f+ @! w; ?- ;;; ========================== Tim & thay the TEXT ==========================
" U w, e4 C o
: _, {$ p( V1 O7 E8 `) z/ f8 h- (defun frstring (str search replace / str1 str2 index find)# ?" v( \: q- c; e% X! d* ?
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))- s5 f& C. _2 S
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
: E. L5 u1 m; Q7 l+ y- b - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
+ M% O% m5 R6 m+ j - (defun hai (/ dial)
1 S, m8 }' v+ s/ Y2 l( o - (setq dial (load_dialog "hai.dcl")) ;;goi dialog
" @: |- c. Z* Y( ~- H - (if (not (new_dialog "find" Dial)) (exit)) ;;: h3 k$ p, ?8 `, R! v: t8 K. d
- (mode_tile "find" 2); Tao dau nhac tai hop thoai7 ~; U$ K' V' ]* W
- (action_tile "find" "(hai1)")# z; Q$ P( y+ ^3 b' l* K6 v
- (action_tile "replace" "(hai2)")5 s5 F7 k% x" q; T' b3 `$ i4 G
- (action_tile "cancel" "(done_dialog) (exit)")
# S: O; k* p5 @1 l+ t - (start_dialog)
" U x0 M1 h" d3 W% A Q, ]$ W5 t - (unload_dialog dial))4 X+ U* G' P2 q& }+ I% P h2 n
- (defun hai1 () (SETQ str1 (get_tile "find")))4 O3 Y5 h7 f- E# n5 \: j
- (defun hai2 () (SETQ str2 (get_tile "replace")))) F+ e/ t# [9 G$ [2 ~6 J/ N- s) f
0 }( b# w9 S& A, ^- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
6 l7 e: w7 T' e* E8 f/ U- V, }6 m - (hai); K" ^% [/ r3 S! n2 K3 d5 }/ R
- (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
' W' B0 c/ N# a* V9 T2 j - (progn
4 v7 H$ h! H: j; D: L& j- N - (setq taphop (ssget '((0 . "TEXT"))))( A2 l3 @6 @; D$ g* M
- (setq sodem 0) a. r9 P9 [9 H% Z
- (if taphop7 x& `9 a; j. ^% K3 ^7 Y3 Q1 A
- (progn! N$ v3 |9 A8 f; {
- (Repeat (sslength taphop)3 Y3 b& _* ~4 p6 r5 U% V
- (setq a (entget (ssname taphop sodem)))3 r/ B* n: V8 o' R
- (setq str (cdr (assoc 1 a)))
1 N! g! K! g) g2 R$ S2 ?. {' [3 q - (setq newstr (frstring str str1 str2))6 `: x/ `7 z3 V8 [8 R
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))
+ F# V9 n' i" i4 \! } - (entmod a)
( X1 t2 x3 N2 T4 V5 j1 d - (setq sodem (1+ sodem)) ) )/ B- x% ~/ i/ a$ Q* X! V
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))( C! _/ ?. {1 o4 v% U
- 4 g' ] i# `+ X& Y" }- T- @% N
- ;;;============================= CHTEXSTY.LSP =============================
) d' O/ b. R8 t! c - 5 K% d! A" [: ?" j
- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
6 [, `! Y' L- c/ j% j9 B) S - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))) \' z) c8 y4 h+ F8 c$ U* H
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))8 T! O% D& F" v' y# H+ f, _
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))- Y. ~5 ?# v1 o7 [! H& k
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))8 H. t7 R7 C9 r6 l1 q
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
# u5 w, H9 z9 I. s! L( }: h, i9 s - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
r! e# P9 W |' T( A; [: u+ o3 Q - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))1 G" Q) R' k# W, a1 N h; _
- (Initget 1) (Setq A (Strcase (Getstring
; p' t/ m( D* \6 s - "\nEnter text style to change: "))) (Initget 1)/ p' d% P; l; }8 E" h# D6 Q) K
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
: z' B4 i7 v# H, S s - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
8 f e7 ]5 V" J - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))8 _: p4 \. ]2 ~" H1 R
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
: A/ q6 A4 P( z5 {3 c% F+ {; o/ P7 i - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
, N: w: ^ M( `: D" n9 t - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
- M4 ^% V- `( Y* c- S; S - ) z* G1 z" V, R* A& Y4 K( M6 ~
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))5 p9 M0 \, O- [! E' S+ r
- (Setq J (Cdr (Assoc 50 A))))- j( `+ I M7 x) a3 Z7 N* u1 X) Y
- 3 L! v" @9 X+ e @3 O
- ;;; ============================ DRAW CLOUD =============================
6 {+ q7 ]) c0 ~# a8 E$ U# G% Y) Q. ? - ( s9 s: F9 A; h# O% v& T0 C" Y
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
7 R S( l& {' _/ I5 v2 ` - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
9 N8 u/ Q& C+ T7 ^0 g - (setq la (getvar "clayer"))1 Z- G% s4 o; q9 V' d/ j# C
- (command "layer" "m" "cloud" "c" "5" "" "")
1 w @# ^; K9 i4 {! d& W - (setq pt1 (getpoint "\nEnter first point of Cloud: "))" G0 N- l7 X: `) s/ a
- (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))/ z: F1 Q3 W& ~( P6 R0 M
- (setq cnt 1 ss (ssadd))
5 W' q; F D, W l( ` - (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
$ ^& b! w# L" q! e ?+ D - (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
9 |, }7 u1 j, _( s, T$ H" K: _ - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) )) K3 D$ C; M ^( d
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)! `/ ^; B/ Y, S& \
- (command "pedit" arc1 "y" "j" ss "" "x")
% D8 C2 I& d% k; w6 R, p$ E- y - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
% v4 f$ @/ ^4 M% T" u, z - (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) ; e- j( W3 {; }1 O+ R" K' L. A
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
+ z6 K% l7 I8 }& `6 O/ R - # `8 d+ U. Z2 N4 }6 C8 }
- ;;; ================================ Funtion-Dulieu ========================
0 X3 H7 C; V- _1 P# `" h/ P - ;;; ================================ Funtion-Dulieu ========================
6 `' Q& V7 g2 m( @& D- S1 K, _ - ;;; ================================ Funtion-Dulieu ========================
4 p* v3 y/ F( T# X. ~
! T( H* D# X" {3 c/ @- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
+ |4 R- u" w' e0 c0 Z0 c - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))2 f) \! T$ L" @
- (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))
Y( C2 s6 p! ^. m - (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) )' z; x3 {9 q8 |6 U' K N% e
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
4 _. r7 @* S" X) w3 T& O& { - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))7 f: r% E# r! _# a7 n
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))$ i/ i6 b$ j/ p( G) s& i+ P
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
" J+ H) [+ u! p) X- f - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
1 Q* `. J6 L1 B6 z - (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)))
1 l" j' R! C% o4 v8 I - (defun dtr (dtr) (* pi (/ dtr 180.0)))
" ]& _- c# G; r+ O9 Q8 a; @ - (defun rtd (rtd) (* 180.0 (/ rtd pi)))' r6 W$ d( y% S+ V! p2 U0 h
- G: ?' M) j, P; l; b- ;;;==============================PROGRAME===============================4 W9 G/ C7 r+ s
- ;;;=====================EditDiM Hien Hop Thoai Dep======================' V( E9 y+ N: J
- ;;;==============================PROGRAME===============================# y% a% L( J! ^$ t6 C2 J3 a9 W
- 1 w/ e7 n# x5 @
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)% m& }' } p- X- p9 U0 S
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
1 d( h% F% b' _! R7 | - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
7 f& ^% w1 d" w1 t" p - (Setq Oldlis (Entget (Car Chon))
- q! g+ }2 O2 q; l7 L% k - Pt10 (Cdr (Assoc 10 Oldlis))0 `2 @* P# d, m
- Pt13 (Cdr (Assoc 13 Oldlis))( b3 ]. J2 A: w q5 j4 q% d
- Pt14 (Cdr (Assoc 14 Oldlis))+ X1 g; m. k5 o* O
- St (Cdr (Assoc 70 Oldlis))
0 ?3 w3 j. t" l* s( t* J# f, R - Dimdefault (Cdr (Assoc 1 Oldlis))
8 w* b7 b8 s9 t4 j - )! ^( P9 G3 ^0 n) F( o' p
- (Cond
% p6 [1 j$ e- C! Y, a0 ] - ((Or (= 32 St)(= 0 St)(= 160 St))
9 _) H- O+ J0 c9 K1 T - (Progn
) h; e# t& v1 |$ k - (Setq Ang (Cdr (Assoc 50 Oldlis))
+ F7 \ D( m5 J3 d - Pt (Polar Pt13 Ang 500)
9 U) X3 P V2 Z4 S2 @: V; k - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
( l( ^4 H3 m; t- F F7 l3 V - Dis (Rtos (Distance Pt13 Hc))/ ^9 `3 \: l' u) U# d
- )
" p: N& w& I; ^; \- [4 Q( O - )/ `4 Z: _$ n" i# ~
- )% b' m+ P6 |7 @9 [0 G
- ((Or (= 33 St)(= 1 St)); V) Q( c7 |$ O; K1 [6 |+ [5 L( j# z
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
5 ?# f) W/ g/ O* \/ g - );;End Cond Q3 ?% T6 l C$ C) |8 i$ T
- (If (= Dimdefault "") (Setq Dimdefault "<>"))" N; A1 B/ ~3 K1 ^$ n7 U
- (Setq Dial (Load_Dialog "Hai.Dcl"))4 [9 ?1 L6 k j% z6 t% w
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
( a; F: |9 C x; z, i! D - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St)), ?. ^9 f4 F/ W7 E
- (Set_Tile "text" Dis))
2 W/ r6 k% A9 S8 J& N - (Set_Tile "ha:edim" Dimdefault)
* S; }$ X* z+ a6 z0 k - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
9 X5 P5 y$ B# H7 v- q6 H8 f - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
9 ]7 d# J/ B% G6 O$ A - (Setq State (Start_Dialog))(Unload_Dialog Dial). Z6 `/ g+ c2 S3 C
- (If (And Str (= 3 State))( Z0 V+ f5 _% [7 S6 p2 ]; T9 x& G, B
- (Progn
8 w( x$ B& h4 H" t" U0 { - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))+ q5 S- X- c9 t$ @! a
- )! X5 j4 p1 l, l t) e
- (Defun C:EH (/ Chon Name )
) ? Z& B- @5 {9 A - (Defun *Error* (Msg)$ H. M7 M; Y7 U7 m t/ y$ k
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
% i( A. d8 R6 C) U9 P5 O - (Start_Dialog)(Unload_Dialog Dial)
+ s# ^7 W$ I# D2 k- H. V - (Setq *Error* Olderr)(Princ)
* |+ |" F1 \. ?, [ - )
+ ?. F5 m5 x) L0 K$ a0 }! G) v- B& N - (Setq Olderr *Error*)# P. E! i* O7 D/ t$ F6 w. }
- (Setq Chon T)
, U$ ]% D) U( H - (While Chon9 Z" U) A2 O6 m, |2 u8 j0 C5 P
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
4 k) ? s8 F8 A) P - (If Chon5 t0 i5 j x' B8 E) g- F' s V
- (Progn; w* ?: D9 z, Q
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
9 Z- q" s7 W! O - (Cond+ \! |% m6 N# o7 _5 F
- ((= Name "INSERT")(Command "Ddatte" Chon))5 Q$ d# u9 c0 U0 ?$ Z" S7 M2 ]3 i$ y
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))$ `% l$ {. c8 G/ r7 P/ g
- ((= Name "DIMENSION") (Hai_Edim Chon))4 H3 q9 X0 V0 I9 m" V4 G
- )
6 L5 v8 X5 x, j$ m - );End Cond
" j1 R% F" o, |, R9 [" O, z - );End Progn
1 E4 J& Y8 B) ^! B) A. ^ - );End While7 i$ M& O/ j6 [
- (Setq Olderr *Error*)(Princ)5 j" e- l( S% W8 A
- );End Program. L u9 d, x) ]3 S, g0 n& |
4 G0 y4 _# _0 ~0 x- ;;;====================DDeditDim=====================
% p! X8 a I9 @" j) D: n - ;;;=====================Hai.DCL======================1 \1 i& k I0 e9 {
- ;;;====================DDeditDim=====================
& K3 J* Q) [9 v+ o+ I( R - ) M. I& C$ Z E% j
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)' M# v+ d) N1 }- f
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
/ s8 B6 k: M8 R7 @2 x - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
; C( K( N. S% N, d% S( \ - (Setq Oldlis (Entget (Car Chon))
# j$ m8 m9 _2 n; o - Pt10 (Cdr (Assoc 10 Oldlis))) v, a5 @) C9 P7 j% S
- Pt13 (Cdr (Assoc 13 Oldlis))1 h& Z9 y9 _! e- T0 k" D, E) B
- Pt14 (Cdr (Assoc 14 Oldlis))2 T+ L9 b4 Q# ?2 X
- St (Cdr (Assoc 70 Oldlis))7 J' c) X0 r9 H- O2 P8 u! b9 I
- Dimdefault (Cdr (Assoc 1 Oldlis))$ O. h- O% } m2 V/ m+ U
- )0 W. b4 _& B8 r7 j- B9 ]; r, y
- (Cond' s/ j' t( ~5 U, ^3 \
- ((Or (= 32 St)(= 0 St)(= 160 St))
/ `0 X7 x6 Y3 T& g( f0 f - (Progn* y; @9 Y8 R, e* y$ J0 f
- (Setq Ang (Cdr (Assoc 50 Oldlis))
+ I; u; x g& L% P2 | - Pt (Polar Pt13 Ang 500)
( |. d- `- ^$ ^& p2 L - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt); k5 o* q0 h& [& B
- Dis (Rtos (Distance Pt13 Hc))
0 k# g4 o5 {: v" c" k. O3 s - ), |3 f: A& ]3 c* X: O# |5 q
- )" ?8 o$ |' t# b$ P) a0 y4 b
- )( M. `# D0 f+ \' C( p. M
- ((Or (= 33 St)(= 1 St))6 a2 Z' q* b) W5 f M# U
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))$ j* \5 v" \( E+ c( p. p5 K1 Q
- );;End Cond/ }, P+ C9 D" t
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
$ Y! U+ ^8 ?& w/ |. \; c - (Setq Dial (Load_Dialog "Hai.Dcl"))
7 e- _0 |% Z9 M - (If (Not (New_Dialog "eddim" Dial)) (Exit))# b2 R, e& C, B4 o; a( q
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))$ ^. [0 C$ i p6 B$ Q6 x
- (Set_Tile "text" Dis))% \4 C5 a- i6 @) N( }
- (Set_Tile "ha:edim" Dimdefault)5 t3 d$ V; H: B9 j0 R3 u
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai+ p0 S( K# `: u& R- F6 U9 I
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")2 X: w& o7 |4 l- U
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
\" `1 _0 n) h! c5 `8 M2 Q - (If (And Str (= 3 State))
1 L! e; S: c7 ~6 }. D+ J& z4 l - (Progn; n; A7 Z$ p! t, V& P
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
1 Q2 q) n1 h: e: b - )
& T2 [. u! G" x8 G9 Z - (Defun C:EH (/ Chon Name )5 C% L( s* ^) I! y8 t
( i" j. B( l/ j2 ]" d; g v- ;;;********************Du Lieu********************8 p7 g! |4 c/ f+ j* B
8 t. I* l# @- u X% [- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))2 T1 |* i0 }& T; o% B
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
% I2 b4 I( j, `2 e - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))6 C- S' ~, D! H/ ~
- (Progn
5 s. O, |- ~: B" x. q) m! I - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))+ B+ N4 W3 o5 R; H- R. y! t
- (Setq Chon (Ssget Hacat3))1 n" g. g* P% O) E
- (Command "Break" Chon Hacat1 Hacat2)! F/ |) s+ W* X4 Z% D
- )
) ^- ~; T- S8 J5 |4 } - )7 J$ U& v1 V0 t7 _: `) ^& [- {
- (Princ)4 }: H& D, `9 y7 v$ K+ f
- )
. r% v2 B! o$ S/ o% @- }# s - ;;# J: l" k+ Q2 g( E$ f @. m
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))& o" h0 w! \' O* [7 p. r
- ;;5 d; T' [$ }* u. q4 r
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))# s. o, c+ }; t9 o; t4 _% |
- ;;
3 G8 @/ I W5 C3 z: M( Z. O - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0)): h% _& _0 ~0 |+ |- ]; ^
- ;;
: r/ n/ J3 r4 r' n - (Defun Reinit ()(Setvar "Cmdecho" 1))
2 o% t+ q# m- X M% Q - ;;
7 p- C: j/ x4 I - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))& l- l/ v R' C/ M! |, ?
- ;;
) `6 t4 N j* z! s, Q0 T9 c1 f- Y - ;;Cho 2 Diem Tinh Ra Vec To Phap! f) S) K I, _0 u6 O
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))- ?2 h0 K! S, K, i% d7 {$ n* g
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
7 e! @4 b/ u! j - ;;Da Biet 2 Diem Thuoc Duong Thang- P0 n7 I& Y- Q" u: S! v. k; j3 |
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)2 a+ k+ u) k8 z& `& l# I, X5 S
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)) X B/ A; z5 m3 L$ y3 G
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))% b) o- D& _6 P$ s {
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang _# H7 [. Y- [. {+ V1 A
- ;;Da Biet 2 Diem Thuoc Duong Thang
, i$ {- p# Z2 C+ k' T/ U - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
+ P( C g& s! j: [ - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
- {4 y" B- Z m S* I$ r. C - Hc (Inters P1 P2 Dc1 Dc2 Nil))- ~: B' C7 u, }& `' S
- (Distance Dc1 Hc)9 m) x( k3 h# B q
- )
- f. u( ^( E, @9 v, { - (load "nhapcua.lsp"), e+ Y3 J" [! @ g% J& Q
- (Defun *Error* (Msg)9 S3 x, s$ ]% r% ]( s# |- q6 q
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
; j" O" O. y+ f' s8 c/ d - (Start_Dialog)(Unload_Dialog Dial)( {6 n! {7 Q/ i" n5 [ L# q
- (Setq *Error* Olderr)(Princ)
4 e: b d! K" p' }! f+ H - )
- t# C0 I& V( n. d4 q - (Setq Olderr *Error*); a. R, T8 d H; `, y4 _
- (Setq Chon T)
2 {6 R. g3 C" h+ i7 V { - (While Chon. ~) A5 p. i+ e' w( t/ x
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
0 a- u; b/ v, |2 H2 p: f - (If Chon' n6 f0 S- I0 m5 K
- (Progn
* O+ w( Z# G/ Q& c# G; o - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))) ~- M2 L$ A% X( U5 `: F
- (Cond$ a" ]0 T r7 z! {+ r: }8 W: x
- ((= Name "INSERT")(Command "Ddatte" Chon))
) e# d* R2 A0 f4 ~- g6 C h - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
! N/ A: ]9 z+ n, q8 E, L - ((= Name "DIMENSION") (Hai_Edim Chon))
* b) Y* h: E3 b7 h' ~ ^& `/ ]8 D - )7 T& }5 Z+ t( S" ?2 z! s# \4 F
- );End Cond
. }! ]7 g- }: ^ - );End Progn9 f- B6 \ c2 j2 d( l! w
- );End While
+ ^1 ]0 }6 w+ L* w - (Setq Olderr *Error*)(Princ)" n# h- i3 ?2 B$ l
- );End Program' Z5 v G5 A3 H4 w3 f( w
3 u7 ^6 k5 t0 t! A/ ~ y% {- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================2 |3 U- Q$ {" V# \ E9 M% t' m" p
- ;====================================Nhapcua.LSP====================================4 v" y, B: b7 F g9 I- `9 K
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================+ s- R5 s' W4 ~4 S
- ( @/ R" y% n! [3 S5 x2 [
- 4 x2 q& o( y S8 N2 D
- & Z! b0 E6 j+ `0 m3 c/ B: N, w0 Q( K
- ;*******************;*******************;*******************;*******************
x1 T5 e( K- S* Q, g - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
$ s# a g+ I; F! k) Q$ g5 b - ;*******************;*******************;*******************;*******************
+ F1 E) V% s% Y* O- {' `4 c! ~
; ^1 }7 V, l! v- ;VE HINH BINH HANH4 Z8 l# j; s2 z( i7 }+ [( I! |2 j! B
2 r X/ A4 b. A% L3 B+ l' Y- (defun c:binhhanh (/ p1 p2 p3)
- L, N7 a5 P* l# A" Q6 J - (setq p1 (getpoint "\n Nhap diem thu nhat:"))
. w- S7 J; b# B4 W* F - (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))& A5 ]' j7 f; `* f# G
- (setq om (getvar "osmode"))
, n% l- ~# h; a1 J - (setvar "osmode" 0)
# E8 c% O; l+ O2 V" m - (command "line" p1 p2 "")
7 J/ \/ j9 [, d, N - (setvar "osmode" om)
9 N ?3 {. X& f% { - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
3 G; w( l) U) h) h8 W& e - (setq a (angle p2 p1)) K ~1 U. O9 l$ x' G9 N, g g, ?
- (setq d (distance p1 p2))
; j y5 z9 l5 V1 t - (setq p4 (polar p3 a d))
5 ^+ ^$ Q$ i/ M( J# h3 B' Z - (command "OSNAP" "none")2 s' X* r2 _4 G0 n( u" h
- (command "erase" "l" "")4 f7 Y) L2 g8 E2 g
- (command "pline" p1 p2 p3 p4 p1 "")1 w, O e O7 F+ J, _: }& ?' C0 J
- (setvar "osmode" om). d5 B: c4 I! ]0 [! H
- )- V8 m! j! Y- ^, w+ z% r; x- k
9 `* `, v4 s J; ^- ;VE LUOI COT
8 F, Z; H E8 c7 g4 @0 p$ C - `1 }7 g4 a7 g
- (defun c:LuoiCot ()
7 H4 ~3 w: U7 d3 j: X - (setq om (getvar "osmode"))
* x, _( r% g1 n: S- Z0 m8 l' W - (setvar "osmode" 0)
0 m# C2 a w* M( u/ Q, P9 F/ v - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))8 E: B! t# K0 T9 K( [
- (setq p0 (getpoint "\n Chon Basic Point:"))! I$ ~: ~4 j; K; b, f
- (setq nc (getreal "\n Nhap chieu ngang cua cot : ")). l4 D9 p) P) J' ^+ I, N/ ?8 s
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))% T. _* F! r4 s$ j, l$ t
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )5 A6 [% s& ]' R: g5 o6 ]4 [( Z+ H
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
7 d6 O! T* ?! H/ D% D# |$ W - (command "rectang" p1 p2)
# ~8 `/ }/ B" U( o3 W( S - (command "hatch" "solid" "l" "")# Q0 g) E% Y% [
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))4 Y1 \% U- E4 B" K5 b0 a
- (setq nn (getint "\n So buoc cot phuong ngang : "))
% U$ R p2 {% c/ _! u5 v$ H - (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
- H4 j3 A7 G3 W1 G2 Q - (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )5 L+ H$ m. ~7 i9 { J( a0 r
- (command "select" "w" w1 w2 "")
7 {% i- C8 ~. H3 I: s - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )' z( }, }8 x( K. c2 T8 t
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
1 p2 L: @2 U2 _) a - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
* t! e5 M/ g- O+ E - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
) s3 R7 ]' |& l" b+ `+ { - (command "zoom" "w" w1 w2)$ b! p: H Q' [' J( H/ `8 v
- (command "select" "w" w1 w2 "")
/ a6 j: X7 @9 R' U7 m% D - (setq bcd (getreal "\n Buoc cot theo phuong doc : ")). `" k" j: Q" ]0 S
- (setq nd (getint "\n So buoc cot phuong doc : "))1 {; K$ P( T2 q
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )# j' y: e+ A; M( l
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")6 V; `4 J- N; [ x' Z7 I
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )0 f7 D! {7 a) N3 w8 F. D
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) ) L- k$ _5 W' n* k$ {
- (command "zoom" "w" w1 w2)
9 u7 E9 Y9 V4 p$ a4 ? a# l- y9 M - (setvar "osmode" om)
' m t% t2 A1 b B1 S7 [4 p2 ?$ | - )
3 b. @' ?7 [; @- y( ^ - 2 L! c9 U8 M+ z# [& T" k
- ;VE CUA DI/ T7 Y" f1 a& Z% _( h# l
: e, j8 H9 `% t( @( k- (defun c:cuadi ()
& M9 D$ k* O" B' b$ S k7 {0 }# Q - (setq om (getvar "osmode"))3 m1 K4 ?# E* z
- (setvar "osmode" 0)/ G4 @! Q; T8 [
" d4 x) B; F4 }0 d7 }4 M- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
9 ]* Z5 g" e- `; d - (setq b (getreal "\n Nhap be rong cua : "))
& T- V3 j" r3 n0 L - (setvar "osmode" om)
3 n2 @( E5 O9 C* o) b( p - (while (< 0 1)' D5 x8 O, W6 E! n2 ~# G
- (progn
& n/ O5 U; y, V - (setq p0 (getpoint "\n Chon Basic Point:"))3 j/ Q# l7 |) _# X; X
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))- x- u2 d; ?1 _/ G; e, {
- (command "osnap" "none")
: p; X/ z8 a7 j; M3 U! W5 N8 e - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
- A) Q- z. @- E8 x - (setq a1 (angle p0 p1))4 d4 N, D7 ^( Q" @' K; v& a3 w I) [
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))8 I7 E4 y& A) m5 L2 E2 A
- (setq a2 (angle p0 p2))2 y' ?* o' M& B3 b5 c
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )* {; v& k0 [+ m# m) g' d
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")/ x$ q- I& x5 X1 ^6 j
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
2 g; }0 T4 [, W4 Q* a" P - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
2 I: x, ^8 \$ p - (setvar "osmode" om)0 w& v6 W0 D& q4 v, c) I
- ))2 W: ]( J/ H) U; K# b
- )
+ f) L( @ E7 n! A8 R0 o2 s, | - ; u6 V& [3 M+ z
- ;VE CUA SO9 ?8 i$ a; M/ d& e
- ' H' B. i+ _$ C( C3 W
- (defun c:cuaso ()
7 W. d3 u6 t( O* M( Z1 Z - (setq om (getvar "osmode"))
0 U! L$ g7 j+ R - (setvar "osmode" 0). n/ @( y2 H! k/ _; w& I
- $ C6 @: [" C' L' a
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
) M" f& N9 {" K) ? - (setvar "osmode" om)" k3 F: X/ ?) H2 R+ T! @' V0 R
- (while (< 0 1)0 s1 w* o& o8 h
- (progn
( s7 V' B8 C) T' N- w - (setq p0 (getpoint "\n Chon Basic Point:"))
6 L ?8 \1 C, j! m5 S+ O' Z- W - (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
0 |% A' ` m/ m; r - (command "osnap" "none")! W" Z. _/ ]* A2 O9 `$ w+ x. k
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
' g; l5 [3 }4 H2 i - (setq b (distance p0 p1))
- r& q) ` A! R% L7 |" y$ P- U - (if (< b (/ (* hstl 600) tile)) (setq du 50))
4 ]. V5 C5 N% h - (if (> b (/ (* hstl 600) tile)) (setq du 150))3 x) T+ U: c( d+ Z- O
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))" l3 m* v; T, p" z/ H
- (setq a1 (angle p0 p1))6 ? b8 N9 s* P4 h" N* u" l/ U6 e, ?
- (setq a2 (angle p0 p2))
]" u& u+ f. S |& j1 n - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )# d3 K8 z6 {( X; T" U
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )$ i7 |, p' Z2 r: Z. c! w; k t( ]9 {
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
3 |( r4 g8 x" f) T4 p j, T' u! N, c3 Z - (command "pline" p0 "w" "0" "0" p1 "")9 I9 E# y' B3 X3 o% w8 o
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
5 j* T* Q" {" q" v - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")2 y8 e! \% F/ h1 u! C! n4 u
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
7 E# [+ d4 l4 g- r, s - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) ""), J# m, D# v& n M6 r/ z
- (setvar "osmode" om)5 p: ]. u# D# b9 o0 ~
- ))0 }! z! B& ` W
- )
S. q" T4 V/ E+ L5 z3 E - . L: Y# w1 N5 W3 @+ [
- ;;;=== General Utility Functions ===
9 O# c: w3 o+ y1 b9 T - 1 h0 l' R8 c/ P% Y: Q# h/ M7 A5 [: v
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined - s: v2 l! e* w/ G
- ; ADS function. Now it's a simple AutoLISP function that calls the
i$ z `* S" t* {- { - ; built-in function (help). It's only purpose is R12 compatibility.
+ u/ f5 z' } R% {; N - ; If you are calling it for anything else, you should almost certainly # z$ |2 F% z+ t) _% _$ q
- ; be calling (help) instead. . h# f# Y. b1 n# C$ M6 {* |
-
. d, B( i9 T" M/ W5 p - (defun acad_helpdlg (helpfile topic)
2 r' N+ o) l& t6 Z* C5 s - (help helpfile topic)
9 t! @2 s3 k$ I: z; q x - )
) `2 m6 B: e; ?% z
$ P4 F8 }: A% Z k+ Y
' d4 y1 @8 \! R) j; F, h3 \$ X- (defun *merr* (msg)
# y8 G: {9 `1 J; v2 z - (setq *error* m:err m:err nil)9 a3 N% f: m: ?6 }) Q
- (princ)
6 P' Z" i' E7 N - )9 v: n; e6 r$ Y! S6 f, K& D) X
- / d1 a5 ~* \4 I8 n! ~, T. [
- (defun *merrmsg* (msg)3 N8 _. D# f" D l3 k
- (princ msg)! r7 {) m; l9 O: d
- (setq *error* m:err m:err nil)
. c- y% W: Y3 ~; M - (princ)
$ r3 f) P3 @2 C# a4 w$ H" G$ \: Z - ). c1 i7 |/ X9 W. W/ T3 ]
( b$ U: R6 o2 O% i- ;; Loads the indicated ARX app if it isn't already loaded" U0 d: J9 k) B& x$ y
- ;; returns nil if no load was necessary, else returns the" [$ t9 c) l& V3 t* ~3 R
- ;; app name if a load occurred.
. \) n+ F% P0 P2 k z - (defun verify_arxapp_loaded (app) 3 K6 ]. I d$ c
- (if (not (loadedp app (arx)))5 A3 G/ H( T/ M% w' k( F4 s
- (arxload app f)
* U+ K3 H1 g# A6 m7 e - )
7 \. j1 F( O0 W4 |, o2 D: S - )# ]5 f2 S' C# a, F
- ; Q+ h$ o$ e) [1 e) F& q* E$ e
- ;; determines if a given application is loaded...+ q" H# d5 R8 k0 y0 A0 w
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
`3 r0 q5 W& v - ;;
( o; f% R0 i4 P4 T1 u: @ q } - ;; app is the filename of the application to check (extension is required)
7 P, A/ \( [, ^: ]/ h+ U6 }9 z - ;; appset is a list of applications, (such as (arx) or (ads)
; i p% a4 I1 p R6 C7 p, F3 Q - ;;
: g6 e3 i7 u; @7 o - ;; returns T or nil, depending on whether app is present in the appset
9 y& f: V3 T w9 A: D - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
5 Q' ^0 y' Q6 Y0 i5 H, T: t - ;; Also, if appset contains members that contain paths, app will right-match
( M/ n1 U* ?$ a5 R# b - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
& f1 [/ V6 J9 L- F! Q6 j$ C - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."0 j0 o' _7 i q# g
- (defun loadedp (app appset)
' S Y! i2 \. x2 V- m6 C - (cond (appset (or 7 f8 k- U7 U3 P# g, i9 ]
- ;; exactly equal? (ignoring case)
% Z7 V# N4 b' s9 m# Y8 m - (= (strcase (car appset))+ I% _# c$ }' \1 H \* {5 ]4 s
- (strcase app))
8 s9 v" |# A5 Z) W( b% u - ;; right-matching? (ignoring case, but assuming that
) z) x7 n U& a! a e6 E8 w - ;; it's a complete filename (with a backslash before it)! Y6 I; W( F3 U; ?: b) h0 r
- (and
* N2 K9 q# M9 m/ q - (> (strlen (car appset)) (strlen app))1 W2 ?. U4 }. Y
- (= (strcase (substr (car appset)
+ L6 U( v' V6 v3 g - (- (strlen (car appset))
" V& X/ H0 f1 C+ x - (strlen app) 0 R7 ~* W4 J/ L' t6 T6 n
- )
, C3 m, f8 b* R) O6 ?' n - )
9 C/ m! r$ D; H/ I; ` x7 \ - )
9 h0 k: \4 W; p% P4 W$ j - (strcase (strcat "\\" app))
0 x2 a4 T* L5 V+ b0 j - )4 `' a0 A) h1 Z0 S% C- E- W' a
- )0 u3 y+ {1 R7 w+ Z3 A3 r
- ;; no match for this entry in appset, try next one....
{* Y( H% Y/ A1 F6 ]3 ]( A - (loadedp app (cdr appset)) )))
2 O9 S( z" P3 S0 t: ] - )% O( u/ C2 G5 U2 D+ ~
- 6 C" [3 P& `6 }* P/ Y, Q
1 x. u1 {4 f' m% U7 F; O% q' j- ;;; ===== Single-line MText editor =====' g9 y' y+ m) \2 R3 ~8 M& {! k
- (defun LispEd (contents / fname dcl state)
6 w& U) v4 g! C - (if (not (setq fname (getvar "program")))
) v- J5 ^/ H3 G2 U1 h; u( p- k - (setq fname "acad")* _# d8 h" b7 j, b# `0 ? C
- )
7 Z8 y1 h' {1 a, y- f - (strcat fname ".dcl")
% C3 P( ~7 _/ T/ P% ] - (setq dcl (load_dialog fname))
. O; Y @: k$ ?0 @8 S - (if (not (new_dialog "LispEd" dcl)) (exit)): f/ \' |/ w6 u. s, g
- (set_tile "contents" contents)/ \& \9 y, ^$ G$ w$ l3 ]. a
- (mode_tile "contents" 2)
* ^8 M+ g6 _9 j) y - (action_tile "contents" "(setq contents $value)")) J+ N0 r# X$ H. A3 a
- (action_tile "accept" "(done_dialog 1)")# U0 V! S! L8 I) s
- (action_tile "mtexted" "(done_dialog 2)" ), \) e4 J7 Q' _' i0 d: N' `9 \
- (setq state (start_dialog))+ R0 t( v y/ P% Z3 F& ^5 I
- (unload_dialog dcl)
U* I5 u0 {# R+ p4 h3 i: m - (cond3 C) z! \ ?5 l9 V: w. O1 P
- ((= state 1) contents)
( ?3 k, V" M2 H' e& j7 r+ m - ((= state 2) -1)2 u, a% K% R* L, Y& y, e, ~
- (t 0); F3 v, J4 ^, @. c2 e
- )
; j+ |1 u, z3 s - )
0 P" O* J y* z: ~ - ) K7 A& F* [ T' b- s4 k9 s, o
- ;;; ===== Discontinued commands =====
6 ?5 _" b9 s7 X4 V7 r* B - (defun c:ddselect(/ cmdecho-save)/ n" X o1 P+ C/ V! C. p5 ]
- (setq cmdecho-save (getvar "CMDECHO"))
4 T5 ~1 r* g% G# I6 J" r$ Z) X - (setvar "CMDECHO" 0)' d$ U$ @+ T" U9 P4 @# \
- (command "._+options" 7)
1 U' p0 g4 n! b9 m; L$ h - (setvar "CMDECHO" cmdecho-save)9 B8 ^" g: \# s6 f1 ?
- (princ)
! |/ B1 x. M' o& W. J - )
5 I- @1 h1 S( H0 ]' F; @% ? - * J$ U4 S4 ^8 r+ C1 q# p
- (defun c:ddgrips(/ cmdecho-save)1 f$ d! ?! l5 M' Q
- (setq cmdecho-save (getvar "CMDECHO"))7 O' ~, N4 R+ Z5 D1 L# \
- (setvar "CMDECHO" 0); ]: Y& J1 P( U
- (command "._+options" 7)
7 c+ a& c! p% ]! } - (setvar "CMDECHO" cmdecho-save)/ t3 g( C; b, Q7 t
- (princ)
) j2 \0 b9 P/ H1 X6 F. x6 Z: G - )
: H% e' P/ t1 ~$ Q& G - 7 B# H' x9 Q* {; K/ H, P9 g; E
- (defun c:gifin ()1 f$ i4 ^1 k. c# Q. J/ y
- (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")$ R6 V" l# l/ {/ g; m) ^
- (princ)
* }2 A9 X1 x% s4 F; n - )" E9 C, L, l; z ]! W6 n
- 0 `! y& I7 C, x* A" j, |8 Y3 F D
- (defun c:pcxin ()
: w( L7 `+ H7 s9 b$ E, W: ] - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
l/ |# X: k5 S - (princ)$ L) B2 ?/ L" E D# G
- ); n5 F$ i5 K; C7 q8 t/ D
5 H2 k" \; }, E& B5 p b- (defun c:tiffin ()
; D& q' x* L, J" n% T. N - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
/ `% y7 { |3 _% _. z; @0 k - (princ)1 U2 J4 l" `% s* N* [. S7 _
- )3 e" W, d% X1 r* P7 j- g
- 8 b% N+ }# A$ w2 R) ^
- (defun c:ddemodes(), C& V: I) z& V h" o3 v$ I
- (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.")5 q: ]! v% _) B7 j: G
- (princ)- B' L' B- B3 G* J' {# B9 ^
- )
( G1 g! v# v5 D" B! h
% N# c! Z) B' i/ e L, z( S- I+ \- (defun c:ddrmodes(/ cmdecho-save)
, l( i, y6 l! v; c - (setq cmdecho-save (getvar "CMDECHO")). r# m7 Z6 S7 m& v v& b, w
- (setvar "CMDECHO" 0)8 v4 F) S3 f: L, X
- (command "._+dsettings" 0)
& |% o& q. R- J8 N7 \; P) A - (setvar "CMDECHO" cmdecho-save)/ h$ j2 A& t; K, m1 k
- (princ); [7 A4 F' k/ p" C9 c- ?+ j
- )
) Y9 E5 F: W2 h/ l - ; Y) F; _/ a3 l% O
- ;; HPCONFIG
6 ]3 a$ p' X- f6 V$ @5 I I - (defun c:hpconfig (/ hlppath)+ J6 J2 p4 }# d7 G
- (if (not (setq hlppath (findfile "acad.hlp")))
2 e7 G( g# `, d: D; e - (setq hlppath ""))% L+ w# H& P3 }4 B" ]+ j2 v
- (help hlppath "hpconfig")
: e7 |1 h( F& |: n0 W$ f/ |7 I; { - (princ)" ~2 y$ `0 X6 U* D4 ]& Y Y* C
- )
4 {; D" j3 ?' k
* H- D- V: J; M& p; E# A- ;; OCECONFIG
+ i8 L! h+ W* |. u" w - (defun c:oceconfig (/ hlppath)9 e+ c( l; |) S% D# C' d4 @
- (if (not (setq hlppath (findfile "acad.hlp")))
, d9 B' j( S" e$ R- ` - (setq hlppath ""))
4 } W) ^5 K5 ^' M2 k - (help hlppath "oceconfig")
; w5 R5 }, D5 Z - (princ)5 K3 R, Z: H& N* U' U6 v7 D+ {
- )
9 I+ l3 n4 l/ U( H! K. B6 u7 r5 h - % Y" R4 u2 v6 |
- ;; CCONFIG9 N7 q& F! A) x
- (defun c:cconfig (/ hlppath)
0 Q' j9 v) r! w6 M9 Z- R - (if (not (setq hlppath (findfile "acad.hlp")))
- d. r2 a0 `! \8 |- b - (setq hlppath "")). Y4 H, }, E3 b8 p0 Z$ y& P" P& W
- (help hlppath "cconfig"): h* F5 N0 D2 y8 c5 p- v
- (princ)2 f: m4 H8 i0 T7 y8 ^2 ^; F: w0 O7 M6 g* r
- )
) Y# o9 ~2 |" {. O: d+ _ - & ^: K* N2 g `% [
- ;;; ===== AutoLoad =====5 E" a4 B3 g! i8 C: D. k
4 Q5 q/ e3 V$ ]! j q! ^- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
/ X! }+ C3 t4 A& d1 _% j5 F - ;;; for the name of a certain appplication <appname>.
2 k N; O" j8 I - ;;; Returns T if <appname> is loaded.' s) y! y; A# P6 ]$ [
- ! x. i% ^0 a( M# h* {, B8 w
- (defun ai_AppLoaded (appname apptype)1 N; s* p" h' z9 B4 B. B0 u9 X" \
- (apply 'or: c' I5 E3 M& `$ Y; S J
- (mapcar ! T" M" o# Q2 w
- '(lambda (j); r7 B( R& ?1 w! W# E$ y# Q8 G& d4 v
- (wcmatch
2 Z! r6 F2 K3 Y5 @ - (strcase j T)
$ E& e7 o. @7 e1 G - (strcase (strcat "*" appname "*") T)
; _* F6 t% g( @+ |1 C" ? - ) ) i& b! E/ |0 b b* Z1 N! @# h
- )
$ f; h1 h) U" A* q& ^ - (eval (list (read apptype)))' y6 O4 _- [$ ?3 p
- )
- ^; {3 j0 B* s3 h! D2 J4 ~ - )
( \, R$ I* Z3 o* ~9 n% H - ). V& x i- j9 O& F
2 O8 E: j; ?. K7 q( Q" ]- A( O- ;;
: _% ^ K. O- C2 R - ;; Native Rx commands cannot be called with the "C:" syntax. They must
% S/ f z4 k# @2 G& s - ;; be called via (command). Therefore they require their own autoload
4 l2 P; b3 h! A* @7 v - ;; command.
- l7 }1 |/ w. \8 e* g0 q - . h( M3 G- S+ g/ W5 J$ Z
- (defun autonativeload (app cmdliste / qapp)
2 x5 I; x% Q) A$ Y6 x$ d5 c, r# Z - (setq qapp (strcat "\"" app "\""))
' b) x& s6 z4 }, o$ Q - (setq initstring "\nInitializing...")
( E" O+ O6 u1 j I' q1 r% z. @# H5 C - (mapcar
2 g$ }& U8 ~* A. A. ~ - '(lambda (cmd / nom_cmd native_cmd)
! i) N8 B: `7 h$ ]! J7 C - (progn& H8 a2 g8 v. J4 S* N0 C) i
- (setq nom_cmd (strcat "C:" cmd))% [7 h% W! k4 x: M6 f
- (setq native_cmd (strcat "\"_" cmd "\""))
! t; `' K& G% R/ q) y - (if (not (eval (read nom_cmd)))
9 }2 L8 ~4 L! r$ s5 S - (eval* n' T% p1 _8 T8 l
- (read (strcat) y- E3 X9 X; o- `: L0 [. H
- "(defun " nom_cmd "()") }- c& [* a9 h. H* Z# }4 L0 A
- "(setq m:err *error* *error* *merrmsg*)"
& b4 z) C$ r' p4 Z - "(if (ai_ffile " qapp ")"& Q5 C6 S* L L: z- \ t# E* P
- "(progn (princ initstring)"5 f9 J0 M9 o# n/ s9 \3 y( o
- "(_autoarxload " qapp ") (command " native_cmd "))"' | m0 v. a- @8 P! a
- "(ai_nofile " qapp "))"+ W. L( f% } J' U3 y. H) V0 t! I
- "(setq *error* m:err m:err nil))"; D( `4 D4 A6 U, K
- ))))))- [6 }4 o. L/ E$ F
- cmdliste)! C6 {1 u; P% a$ f5 N
- nil
8 g1 q$ _2 V5 y; U - )
3 M0 z! K, [0 g1 i# B+ d9 O( }2 j
$ t: x$ T3 W6 j- (defun _autoqload (quoi app cmdliste / qapp symnam)5 h9 B( B7 e4 P- }2 ]/ j6 R
- (setq qapp (strcat "\"" app "\""))
; _8 U1 _/ p/ M6 v7 x - (setq initstring "\nInitializing...")7 l7 _+ v5 s: i+ V1 g* n; p& F. M* B
- (mapcar" I2 n L- D( M& ?5 q+ T, C' p( e
- '(lambda (cmd / nom_cmd)
6 J1 H# C/ h# u( r6 l( p3 d4 R2 c( [ - (progn
% D5 O* r# `4 f - (setq nom_cmd (strcat "C:" cmd))' Q% O5 t4 M8 q8 n& F2 \5 G
- (if (not (eval (read nom_cmd)))
; b p$ y! I+ v. ?/ f - (eval1 l! e" H& R( b7 j5 |% F
- (read (strcat
" ?6 R& Y- b2 {! Y5 l - "(defun " nom_cmd "( / rtn)"/ k9 @4 P/ I0 q3 b8 \& F
- "(setq m:err *error* *error* *merrmsg*)"( q) Z1 L& V3 C: t- s# [
- "(if (ai_ffile " qapp ")"
1 k- ^& [$ H% {# W8 P6 D - "(progn (princ initstring)"/ c# z6 D. i/ I( Z6 b
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
" Q' W, K- d& M+ G% ?. c - "(ai_nofile " qapp "))"4 @1 c9 Z1 m3 H( V4 |9 v
- "(setq *error* m:err m:err nil)"
$ f: N* e! f+ g - "rtn)"7 M' o: K0 g- K0 W4 x X8 X
- ))))))8 |" G1 l4 [8 e/ H) Y
- cmdliste)$ g$ W8 t! x5 ], d2 Q! t( b
- nil
$ |! {" M# l' [ f" J1 E5 c - )
: H# T B% C4 y# H6 I5 B
7 `! U9 }% c7 t- (defun autoload (app cmdliste) q+ a& w5 e+ S5 j6 T3 b _5 R
- (_autoqload "" app cmdliste)
g. M D# Y: \* }+ { - ); x5 v3 `% R, c) S- R
# u, s1 {$ Y E6 E8 y2 B2 e- (defun autoarxload (app cmdliste)7 z2 h8 g/ ?: k6 U9 b/ s
- (_autoqload "arx" app cmdliste)% {( Y6 `# U( z& o/ d0 a! t
- )* d+ B) `- h P6 j- v
& F8 C7 Q" R% k- (defun autoarxacedload (app cmdliste / qapp symnam)9 _0 y# X: [% {) @
- (setq qapp (strcat "\"" app "\""))7 r/ c* Z9 ?# l" z# |$ t- r' @0 A
- (setq initstring "\nInitializing...")& ]1 N- O5 E; I6 C& H7 N. w2 @
- (mapcar( J& |9 ^8 H/ A
- '(lambda (cmd / nom_cmd)
5 [3 O5 J4 G1 U - (progn. {2 ~9 H) i) ~
- (setq nom_cmd (strcat "C:" cmd))( W: j/ ~; W$ G& Z9 h5 B7 G! k
- (if (not (eval (read nom_cmd)))
/ E* w) i! k+ V/ H: x8 | - (eval5 ^/ c c, r a. N3 V* X* w% o$ o
- (read (strcat$ a# B" Q3 c8 T$ E+ a
- "(defun " nom_cmd "( / oldcmdecho)"
. K3 F3 s+ C$ `. s* Z - "(setq m:err *error* *error* *merrmsg*)"( B6 K5 @4 B( D0 Z2 m7 o
- "(if (ai_ffile " qapp ")"- R1 t1 F3 j" P0 t- c" E
- "(progn (princ initstring)"
' n1 G7 Z2 k4 M& ?/ C - "(_autoarxload " qapp ")"
8 E% p8 a2 P& M4 j! N - "(setq oldcmdecho (getvar \"CMDECHO\"))"
2 ] `% M# c/ ^& {9 F - "(setvar \"CMDECHO\" 0)"
( N$ ?. m% C/ _ - "(command " "\"_" cmd "\"" ")"% g/ W% z0 z& f3 N1 C* B- q
- "(setvar \"CMDECHO\" oldcmdecho))"
" g5 H$ M w$ W7 e - "(ai_nofile " qapp "))"
3 x! y$ W7 ^) D2 k: R7 A5 q; f - "(setq *error* m:err m:err nil)"( d, u4 Q0 g H, h
- "(princ))"
* h! }& {; w2 ] - ))))))
% B2 G4 Z& }* H$ B: v - cmdliste)
7 y; J" L* q) l* p - nil
. I; ~/ \; s- x( y - )
* m E- _; ~! d8 E9 z, } - / ]+ T4 ]; U5 [5 x
- (defun _autoload (app)
; ^ P3 h& f2 Z# b - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)( |0 I8 N* X# Z2 A+ E% S3 D. G
- (load app)5 ^7 \3 t0 a9 J+ k& ^8 T C
- )/ `7 j% Q& ?( {8 J/ \' Q
4 R8 v5 c+ j* Q; x: T$ T- (defun _autoarxload (app)- L8 y5 N8 b, Q z' e
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri); c* L! v- A/ }# d% b* F( Q/ l- J
- (arxload app)
& w- `+ q- U u# o, H - )
, f) p9 [$ N& M+ ^
- M7 g2 Z: ]1 Y! Z0 z- (defun ai_ffile (app)
( x$ K- t1 U' R7 C; l- ^ - (or (findfile (strcat app ".lsp"))
5 p6 Q% h" x9 n. _! b" S# L# s - (findfile (strcat app ".exp"))( X7 f$ T, S' I. D
- (findfile (strcat app ".exe"))
9 n/ [2 L5 y/ C6 W - (findfile (strcat app ".arx"))
/ E2 z3 S6 w% ?% Z( t1 U - (findfile app)# Z) S0 B3 s" X3 |" i
- ), T" m. L8 u7 ?$ U$ J! Y
- )
& v' E; V7 E% Y. P" G - ' q% v% z% J& c$ N8 j
- (defun ai_nofile (filename)
+ U8 E4 Y- G' l# |, ? - (princ
- d1 _4 R# v8 E" p2 p5 w - (strcat "\nThe file "
$ Z* r, w( h$ H - filename+ o& Q& _2 p' u* q8 J% p# u
- "(.lsp/.exe/.arx) was not found in your search path folders."
: s; a5 i7 L* Y& i - )
! d# I/ q$ e' Q# G3 J# ` - )
/ Q" U. ?* v4 i3 U - (princ "\nCheck the installation of the support files and try again.")
' K) x+ q3 p% n7 b9 B0 L O - (princ)
0 s# W; n6 x2 U+ z* J- @& ]5 ~ - )
% m3 W3 E% Q& I, k: }
+ f3 s8 \; E! G2 d! Y( t' F( \3 W- * v) b$ r4 l' b$ u
- ;;;===== AutoLoad LISP Applications =====
( y; n5 i2 z, _* o# i - ; Set help for those apps with a command line interface! N+ d M. W: h+ Z0 O+ \
/ @# g$ r O1 n; J, o. L- (autoload "edge" '("edge"))1 l9 @3 s& B# |+ h
- (setfunhelp "C:edge" "" "edge")7 R: J% b9 C8 i% x! Z
+ o( |7 e! M: o0 e) M9 @7 J- (autoload "filter" '("filter " "filter"))# e4 d) ?) Q4 C I. \& f, n" e1 l
T$ e, o1 J a1 n' ^0 u$ C* @- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
2 W5 a2 F5 r" d7 o B3 i4 I7 W - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")2 G5 W1 H. y' [% ]6 `
- )
: E& Q% r1 X2 t( t9 B - (setfunhelp "C:3d" "" "3d"). b! t+ `+ h/ ^: W4 E1 i: E5 f+ H
- (setfunhelp "C:ai_box" "" "3d_box")3 Z& ^% p/ H( O/ d
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
. ` c; T z. { - (setfunhelp "C:ai__wedge" "" "3d_wedge")
# m1 S& T( M' w( B - (setfunhelp "C:ai_dome" "" "3d_dome")/ K7 D, x1 h& {& R. i. y* [6 u
- (setfunhelp "C:ai_mesh" "" "3d_mesh")0 J) M: v1 l: K4 u
- (setfunhelp "C:ai_sphere" "" "3d_sphere")
" @2 W0 [' V1 j' f - (setfunhelp "C:ai_cone" "" "3d_cone")# {7 ]/ V, `8 @5 m+ M$ N9 k
- (setfunhelp "C:ai_torus" "" "3d_torus")3 y& E5 |, Q, v6 y
- (setfunhelp "C:ai_dish" "" "3d_dish")) _3 }5 T1 x0 N8 E
3 R) {7 ]( ~ q* J6 w+ C6 y: B- (autoload "3darray" '("3darray"))
$ A a' z' y; V) v A - (setfunhelp "C:3darray" "" "3darray")
9 U) i B9 ?/ ^6 H# O% C - / ]: _. C) S6 m& a
- (autoload "ddvpoint" '("ddvpoint"))1 t. `& y0 A0 g4 O1 Z2 [/ I
- , b$ H1 B7 o1 x% o% W" K
- (autoload "mvsetup" '("mvsetup"))
# P0 H7 s. X! R$ I. [7 m - (setfunhelp "C:mvsetup" "" "mvsetup")+ W( o- Y! J! G* F% c+ C5 u8 S
- " ^; Q7 l. l: n* O- ?9 Y
- (autoload "ddptype" '("ddptype"))
& `: X7 t% H; c# n - 1 M$ K, S3 e- a* D0 h/ E0 C8 ^
- (autoload "attredef" '("attredef"))
( @( s6 q3 m8 }2 h$ Z7 I - (setfunhelp "C:attredef" "" "attredef"), ?1 u6 o+ [; `8 Y- G6 @
' Y9 K7 ~% r; Q6 Q3 ?/ d- (autoload "xplode" '("xp" "xplode"))
, P+ {# ]. Y, N/ v - (setfunhelp "C:xplode" "" "xplode")1 X1 r, I/ |: N I+ g" c! i& g
- 0 J5 O# u3 k0 x2 Y
- (autoload "tutorial" '("tutdemo" "tutclear"+ K7 v/ E: {: Z
- "tutdemo" 2 u; f( D+ z- j& Q# s
- "tutclear"))! w+ `' F0 [4 Y2 d+ k
' ]" Y9 v( {9 S' P1 J6 o" o- ;;;===== AutoArxLoad Arx Applications =====
# H+ _2 P# v" f. S+ n7 E/ Z
- {+ c) X1 B+ v5 g; M$ x- (autoarxload "geomcal" '("cal" "cal"))# t" m8 `; e$ u5 B/ L7 q
6 w( G3 t. |$ H$ U- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
4 x! `' e% a5 |9 ^4 h7 u _$ C - "mirror3d" "rotate3d"
$ M# [% `( f! h+ a8 F5 y9 r. I - "align"))2 h5 o1 n% ?! _% k8 Q
- ; S& \% ^# M9 G" M
3 p* ~% E: p3 _4 Q$ W' }4 g- ;;; ===== Double byte character handling functions =====! _; {) ?( R9 ?' H: {; ?) ^# B
+ s7 z5 n6 ?+ v- G6 E- (defun is_lead_byte(code)
7 @( K% J( j% n - (setq asia_cd (getvar "dwgcodepage"))
5 c& j5 Z# _3 `4 W; W3 n. J - (cond! t r# h2 q' i$ z
- ( (or (= asia_cd "dos932")
- \" D }" s1 `2 v+ M - (= asia_cd "ANSI_932")
$ w# z" o, p8 W: _2 W - )- _9 c8 q2 o6 H! V6 ]# o
- (or (and (<= 129 code) (<= code 159))
6 S! n; H) P5 d" [: F' b1 T7 j - (and (<= 224 code) (<= code 252))
% p) c' N" N0 a. h4 A0 {. O - )) A; w! y7 s8 M: E
- )* s3 g" o2 P+ t" o
- ( (or (= asia_cd "big5")
# ~( U6 f, s4 H8 t - (= asia_cd "ANSI_950")
6 c5 n" B6 h1 r% T - )1 |, v4 h5 J1 T: M% @" H
- (and (<= 129 code) (<= code 254))
4 m6 @% ^$ Z- e; t+ z - )
$ {- R" A% O/ n1 B3 B% r - ( (or (= asia_cd "gb2312")+ e7 Z, y V2 C+ Q
- (= asia_cd "ANSI_936"): d# \4 T& j& q; l+ _
- )8 j1 A3 b& s7 Z R
- (and (<= 161 code) (<= code 254)); L+ q( |4 u9 e
- )
) e R: x. O' N# V$ i, m; J( g" r - ( (or (= asia_cd "johab")
/ K6 u) [; i* `6 o6 s4 g - (= asia_cd "ANSI_1361")
$ u9 d' ^8 G" Q$ Z. l) M. [* s5 {4 C - )& h( A- j6 ]& e9 t
- (and (<= 132 code) (<= code 211))2 { ~! @6 c$ E; y8 u* T3 {4 r
- )
, n$ D7 `" k* P8 [3 y3 F( j! V - ( (or (= asia_cd "ksc5601")
# E* d, _5 V: u+ G" v! ]9 A - (= asia_cd "ANSI_949")
" Q8 x3 G( u! ]* h# u, T) O - )
: h& Y8 z% _$ J4 ?4 a - (and (<= 129 code) (<= code 254))
% [* c0 g8 a3 n+ C8 X; t3 P4 F" A - )8 a3 _. x8 Z# O
- )
% A7 M! K6 [4 O& e - )$ b- Z1 l" I5 S9 h- a
; u0 k( a; i7 h/ R' I2 }- ;;; ==================================================== `% [3 E& x0 ^
+ \ V! G. \: [: I7 r# N
2 ~, |3 }1 e# D: \/ @# C, N- ;;;
6 |/ A9 V+ i8 m% E - ;;; FITSTR2LEN
; k [' D. T& G f; F6 b - ;;;9 j: K5 G R% r! h# f% M; U
- ;;; Truncates the given string to the given length.
) |$ d C5 N% r7 B - ;;; This function should be used to fit symbol table names, that5 G/ i8 j* X6 O% V8 i' G. L
- ;;; may turn into \U+ sequences into a given size to be displayed
$ L( u7 t/ M" L' H& N - ;;; inside a dialog box.0 Y& T# V2 |. [% {/ F2 C# i) ?
- ;;;
; P. Z7 I8 X! N1 W1 Y8 a3 ^3 d- J - ;;; Ex: the following string: " o9 }. Z8 {6 Z( i5 w' T% Y0 X! @
- ;;;
6 f4 b& X. a& D. f - ;;; "This is a long string that will not fit into a 32 character static text box."
+ f @3 V/ y* c - ;;;
) B9 N& e, u* y% h - ;;; would display as a 32 character long string as follows:
% y) d* j: p- w1 y; B - ;;;
) E3 D9 F2 S2 q8 m+ z+ u1 _- ` - ;;; "This is a long...tatic text box."6 ~9 w% o: v' ^1 ?% C' \+ G
- ;;;- t1 T/ ^3 [/ k, o0 y8 d
* U; l' ]( x+ L" I: G- (defun fitstr2len (str1 maxlen)
5 c5 w; [) l7 I7 O
1 r/ U6 e: d* y+ q& o- ;;; initialize internals
) T0 B. X3 O$ Y - (setq tmpstr str1)
2 r6 ~9 b) C: k" y - (setq len (strlen tmpstr))
$ L# e7 m! }* @) P: ~+ H - % j0 G D- {: n5 I
- (if (> len maxlen)
. e; o. r, E7 h! U - (progn4 Y5 u! @& ]% K( b- Z; G C* I6 K7 N# l
- (setq maxlen2 (/ maxlen 2))
% n/ B& W2 C i3 U1 p) B - (if (> maxlen (* maxlen2 2)), t$ _- w# U1 H
- (setq maxlen2 (- maxlen2 1))
. B& K- q4 O1 g+ z - )0 `/ x8 r, T8 v# `5 L
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1)); m/ [8 R j W
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))% u6 S9 L/ n |1 s' @" C
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))8 c* Y7 t: H# \! _5 x) S# @7 R4 N
- )2 K! x' D+ z0 z5 b& k5 L; F
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
' U# |8 A0 ]6 w$ C9 `9 l! z - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
) s: g, N2 J1 `2 C - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
% c0 s' a) ]+ X' s. u1 n4 t' |4 d( h - )
% k- n# B5 }) q2 d8 f - (setq str2 (strcat tmpstr1 "..." tmpstr2))
+ [- m8 D6 {* C. ?; \, O - ) ;;; progn
) r6 m+ D- _, d7 R) w1 A$ k3 H - (setq str2 (strcat tmpstr))0 l) o1 |' D7 D, K
- ) ;;; if4 g$ J) `$ I- }/ b* z# `5 y
- ) ;;; defun8 p7 ^7 |' V: ?3 c
- 1 N Q. a' T0 m/ \
- ' m5 k4 o, p0 q' h4 b, k
- ;;;: T0 K/ \" y5 A5 B- _
- ;;; If the first object in a selection set has an attached URL
; w4 ~: B. o! F, y! x: ] - ;;; Then launch browser and point to the URL.
; E2 ~, t2 w6 {; r" y# R - ;;; Called by the Grips Cursor Menu
4 p3 A) R, w8 j) `& T - ;;;
1 h# U) f9 L# O% k
. U: R8 T6 h0 x8 u- (defun C:gotourl ( / ssurl url i)
! [0 h# U; q" a8 z5 p - (setq m:err *error* *error* *merrmsg* i 0)/ \1 t* ^) w4 E8 l( h
5 E& r1 T% L# S5 V# U! k) _# Q- ; if some objects are not already pickfirst selected,
+ O) Q. m+ }* o' F: |: q, Z - ; then allow objects to be selected/ e7 `/ j+ t3 r, Y3 H
# F6 n) Y: }7 k% G3 ~" H4 X4 q- (if (not (setq ssurl (ssget "_I")))2 P" Z5 S; b* D$ V5 Q
- (setq ssurl (ssget))
( `4 }- C# O" F w, j2 p7 @3 I - )9 Z* X: \8 _- ?' j7 a
- 8 K9 Y! s4 W& ^" u8 G
- ; if geturl LISP command not found then load arx application
5 P7 J. b/ O5 r7 C) {7 n# T) }
% [: B' N+ b$ B! D8 m- (if (/= (type geturl) 'EXRXSUBR)
& r6 y' q% ~# j. |# P8 g - (arxload "dwfout")# G- a2 K u1 D' s8 B- L2 l6 Q9 e
- )
8 z7 u( \4 u" S6 |$ \1 \5 U0 Y -
9 h$ h! O- c; ?% X/ z6 c3 y - ; Search list for first object with an URL6 x* T( \2 o% k0 ~5 ?3 R7 F+ k. L
- (while (and (= url nil) (< i (sslength ssurl)))
; u% i$ e0 t9 y* V - (setq url (geturl (ssname ssurl i))& H+ [" L, o9 g! M7 J' J" V
- i (1+ i))
: M6 D9 l5 N4 p% I! h1 I7 R5 G - )
, J" B6 u* g% _3 \! s2 d6 }
* a$ {( m" M! k/ S- ; If an URL has be found, open browser and point to URL( |( {+ b! y- Y6 h* }2 a6 A
- (if (= url nil)
8 Z; a/ u4 R7 d2 ?6 M - (alert "No Universal Resource Locator associated with the object.")5 C: {) e7 D, Q( N
- (command "_.browser" url), L/ a& P& o- v" D
- )
5 s+ \" h4 E# v& u- O( o4 ] - 8 s l) o" a, U/ H0 ]
- (setq *error* m:err m:err nil)3 X$ J5 K7 a, R8 G
- (princ)
+ w9 n4 C1 E. b$ v8 t
* S/ A& I- b. v- )- m# C; W( k/ m$ ]
- ' ~& |' M. j1 E
- ;; Used by the import dialog to silently load a 3ds file5 J7 I2 j$ o3 w- O0 q/ e c
- (defun import3ds (filename / filedia_old render)" \- E/ Z0 I' P/ |' Z
- ;; Load Render if not loaded8 w( ]- ^& j8 S' z
- (setq render (findfile "acRender.arx"))' x, Z; W, |0 a$ L. T! r
- (if render% f. P- O$ N/ d- w9 u& E d- W
- (verify_arxapp_loaded render) $ j3 M6 b' w+ l& q
- (quit)# Y5 o9 {3 i+ o
- )
' X' K3 H) Z' z$ y% h - 0 D) s$ t" k! ~. ]- o1 f! H
- ;; Save current filedia & cmdecho setting.* F: `, |2 M* i- D3 A$ ?
- (setq filedia-save (getvar "FILEDIA"))
' M% a! L& U* m) | - (setq cmdecho-save (getvar "CMDECHO"))
! ^: d: N" V: k4 r6 W& }5 A - (setvar "FILEDIA" 0)+ \. ?8 E2 Q7 b' ~
- (setvar "CMDECHO" 0)$ }, g3 Y& |; B" ?0 l7 E
- \, ~" ?' z" ?# Z- ;; Call 3DSIN and pass in filename. O3 p. U4 R8 |% J
- (c:3dsin 1 filename)
C7 K2 _ Q$ d& Z4 e8 C" _# P - * F7 ~ R; ^; W) Z
- ;; Reset filedia & cmdecho3 C I, W. R% F" l% r: k0 r
- (setvar "FILEDIA" filedia-save)8 E; ]/ g9 \, t. m
- (setvar "CMDECHO" cmdecho-save), e/ A! \/ `3 R2 Y z8 h' w
- (princ)
1 d! n" h/ l6 x+ S( I- V0 a5 B5 x' I - )9 d9 p- ]7 G+ K/ B) T1 {" L
' u! p$ `+ F/ c3 X' K- C/ k
% [3 U' \& U" E$ a: x( k/ m- ;;;=== Menu Functions ======================================8 A$ t8 o7 v, M& s9 v
/ q3 v) p; w1 W6 `- (defun ai_rootmenus ()
" k2 a, ^3 M1 M! c - (setq T_MENU 0)
6 P% `) Y, \6 c, z6 z. ^2 Q - (menucmd "S=S")5 N% a _0 P: y4 d9 ~; N3 ?5 N
- (menucmd "S=ACAD.S")
7 ^* a, {6 T3 ^) e1 `* n - (princ)
/ l9 m/ A$ z% Q1 v - )
+ l! `0 v$ Z; G, @4 `! c! z
% T' ^! a" o F* F: O8 r) u2 l- (defun c:ai_fms ( / fmsa fmsb)2 ^) |( x& w$ ]8 k
- (setq m:err *error* *error* *merr*)! z1 z: g/ _/ `2 e! i# u# l: x
- (ai_undo_push)
7 ~( K/ x. O; ]# ?3 X. }& ~" N - (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
0 N2 |, N, I8 v8 b - (setq fmsa (vports) fmsb (nth 0 fmsa))2 s I9 [; J/ t6 J- w
- (if (member 1 fmsb)' H5 K# K. X w7 i' F, }0 `
- (if (> (length fmsa) 1)
?3 \& \* ^0 E5 r% x3 F8 c - (command "_.mspace")' T/ Y+ K: L4 n! t
- (progn
9 v. C- E- S& m. I - (ai_sysvar '("cmdecho" . 1))5 h* f* L) t5 _: ]
- (command "_.mview")5 ?) X3 Q+ E% a% {6 l7 j' J
- (while (eq 1 (logand 1 (getvar "CMDACTIVE")))/ _+ Z& y3 |, n9 G6 W2 u
- (command pause)
9 H, z6 _4 X- l+ ^- { - )
# f. O! m5 s7 q8 c3 r! f4 X$ \ - (ai_sysvar NIL)
' h' K! }: M$ V0 o3 r' T8 c' A0 O - (command "_.mspace")
5 l1 X, b7 _5 d5 e, g - )
& `- x- q- x7 f r; V, h) E& [ - ) T8 c5 k% V/ l% s% a! G/ C
- )8 E+ ^2 U& d! s! z+ f; }. c5 k4 }+ K/ m
- (ai_undo_pop)5 D5 d' X) R; }# l9 _* N( S+ M3 W
- (setq *error* m:err m:err nil). M1 y: e- i: P8 G) C9 w
- (princ)
5 u6 Y- h, K6 u6 { | - )
# b) H9 h+ L. r$ q) A% U K4 N
c5 ]' y5 `' `' a3 f* A- (defun ai_onoff (var)$ c* j: S3 C; q, b
- (setvar var (abs (1- (getvar var))))
, f7 A6 _0 a/ I1 L5 M' |9 S8 M - (princ)" @4 J% W. {+ {. C/ g- O3 e
- )
+ N& F q$ r/ c# l0 y8 G/ A9 { - 5 ?1 c' B* D3 J+ |
- ;;; go to paper space
9 ]. q( S6 j: q - (defun c:ai_pspace ()
( O7 U) J& m& ?1 r: a% G$ o8 v - (ai_undo_push)
( `1 [: y" L6 ~' s: q! q3 m { - (if (/= 0 (getvar "tilemode")): ~) ` P, l8 k
- (command "_.tilemode" 0)
4 }7 z: @: d3 m - )+ A5 Z0 j6 ?9 E
- (if (/= 1 (getvar "cvport"))9 G6 Z4 J* s7 w/ y. E
- (command "_.pspace")# i3 }& _$ e2 g2 Y
- )
E- F: v2 p1 F1 K& n0 w) @; N - (ai_undo_pop). w3 u5 H( ^) t
- (princ)4 L. k6 h" o0 H4 w, p
- )7 O; i; ~4 g8 {4 g& l; }
- # ^ J. ]4 g+ r0 h' O% M! J
- ;;; go to tilemode 1& ?/ U# @/ E5 o
- (defun c:ai_tilemode1 ()5 s: S. z9 `3 N: C' G
- (ai_undo_push). M6 W( n' N% v7 U' g
- (if (/= 1 (getvar "tilemode")). [% I3 P/ u9 N, b8 v. ]' o1 ?
- (command "_.tilemode" 1)
, g+ p( M0 x, j( s- j) ^$ X. f3 E- ^ - )- p* P+ Z$ D6 t. C( ?2 `5 ]. n6 {
- (ai_undo_pop)1 r# O- Y" c) D% }, T
- (princ)
; q4 Q6 k M" b6 c8 G" {7 }2 k - )' ~, {# j( d8 u: i
& k0 J+ g" p) Z! P" N0 J% E- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
3 K' p- K( p4 w( r3 u - ;;; Toolbar Dimensions/ Align Text/ Centered
3 Y/ t7 d) C1 `2 ?7 V' U `# Y
% j% c" r- _: D I4 K0 D8 K- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
" M! Q6 g0 W X* q- F9 w - (setq ai_sysvar (getvar "cmdecho"))
; a- {! W' j/ Y# |- [ - (setvar "cmdecho" 0)
8 i- I% X' W" A7 s, l' j - (cond
- |% m1 @, `; @/ a2 i) |: ^9 e! M" [! ] - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
$ O: x% D6 I( ^$ ] - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
2 q8 j5 s" }: Z - "_.dimtedit" ai_dim_ss "_h")) Y: d- C/ G3 i* h$ e
- )% {, ]- s" z/ ?
- (T nil)
& m9 I. |3 e: v1 H& Y. t5 c - )
6 R6 D$ X; z" W% [ m0 [* V - (setvar "cmdecho" ai_sysvar), P. C9 ~) `8 w! m0 x) Q
- (princ)' W- x+ x2 X+ H# N) C% q) w0 Q2 F
- )0 Z: E# R) H) }
- 8 N- a. p0 w% R- w: e2 e! N% F% I. O
- ;;; Shortcut menu for Dimension Text Above
: W0 ], O# U7 I4 ~5 [! X
' M V5 h8 j3 v0 y, c9 @0 F- (defun c:ai_dim_textabove (/ ss)2 ?# j- h5 J# \& W
- (ai_sysvar '("cmdecho" . 0))9 f- @. Q! e! d9 \$ S
- (if (setq ss (ssget "_I")). k" k. Q& P2 W' ]8 Z+ a5 \) X: a
- (command "_.dimoverride" "_dimtad" 3 "" ss "")4 y: E+ m2 k7 ^+ S1 x0 W
- (if (setq ss (ssget))3 l3 H( G L6 f Y: l
- (command "_.dimoverride" "_dimtad" 3 "" ss "")
. Y; H& T; \1 t9 y - )0 v2 Q1 e3 A, L
- )- Z/ F! Q, z% e3 a* L
- (ai_sysvar NIL): k) h4 d4 j k8 |2 x+ w4 w) k
- (princ)- q& s: B1 T( @
- )5 L& ~9 Y" K* D4 Z+ ?2 I, B
7 X! A) O, ^. ~) p9 z4 ]- ;;; Shortcut menu for Dimension Text Center
( C/ t* e2 l% U T* B - + Y" _/ U% j0 e7 r
- (defun c:ai_dim_textcenter (/ ss)- X, u" z% Q+ L9 n& Z( ~8 t
- (ai_sysvar '("cmdecho" . 0))8 j% V# d* Q. M/ w+ N1 E' _7 S; z
- (if (setq ss (ssget "_I"))
. g) y* S( Z& n5 {# G - (command "_.dimoverride" "_dimtad" 0 "" ss ""). e+ i% d; o* o/ l
- (if (setq ss (ssget))
: A( O1 r1 N& ? J: \ - (command "_.dimoverride" "_dimtad" 0 "" ss "")
9 X* v& W$ @' q' A0 A. [" B) t - )
! e9 H3 _' s' K$ \' f - ): s% e. ]9 G! {! h) q
- (ai_sysvar NIL)
* x5 p# j, _" T K" Z( d - (princ)* I. Q8 a! D" ^
- )
# g7 n- w: [$ O0 s$ d& B& i3 } - : ^) `: G: \/ ]! K2 E( d' V
- ;;; Shortcut menu for Dimension Text Home
# k% X/ O/ @0 D
) ^- |7 i) Q, m8 V6 e. d6 D6 N- (defun c:ai_dim_texthome (/ ss)
0 F9 G7 i1 ^" u$ Q4 P' O! A - (ai_sysvar '("cmdecho" . 0))7 _( G& e: ?" g7 L
- (if (setq ss (ssget "_I"))" A7 V; Q" O' K" i1 L: u
- (command "_.dimedit" "_h")
( S: y* F9 L# Z - (if (setq ss (ssget))+ o. N" C$ c- s) x, ]% Q
- (command "_.dimedit" "_h" ss)* M H! p9 [9 _/ w+ X
- )
" K. G, m) i# I' n. I! G, d - )/ b7 @0 f5 e N6 r4 k1 M
- (ai_sysvar NIL)9 [* g( f N' w( `9 o) y9 c8 G
- (princ)% ^. ?3 Y/ k; R- f- v( r; I
- )
% ^0 S# Q. [/ ~) o1 M( p$ M - ) Y8 Q) U. X- f
" G7 R, m. w$ n( {- ;;; Screen menu item for CIRCLE TaTaTan option.
. Y' T( j% g' m# m$ }9 q$ ? - ;;; first, get points on entities; Y2 B3 Q# J: T- c4 A3 K+ z
- (defun ai_circtanstart()
( I u2 H0 p+ v+ M - (setq m:err *error* *error* *merr*)8 l% {9 V: m5 V. S% ?
- (ai_sysvar . _4 Q: \$ u0 y4 `
- (list '("cmdecho" . 0)6 T! m9 A7 ]# Y2 |! Y- {) e
- ;; make sure _tan pick for CIRCLE gets same entity6 r/ e9 G- Z e9 k2 X0 }
- (cons "aperture" (getvar "pickbox"))
R0 N: ~0 }$ h - )7 r( B! ]# j0 j2 l
- )1 I1 Z# z2 C7 t7 z2 e; v4 d
- ;; prompts are the same as CIRCLE/TTR command option
/ \+ i2 O* C% m - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))" }6 F8 }8 R" c5 B; [+ T, i5 s
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))8 e0 P! r" U9 _9 o
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
8 ]# R. b: X1 L& s - )9 h& b- H: W7 z; o( W; G
- ;;; Command-line version
$ T: d4 ?/ t [ - (defun c:ai_circtan (/ pt1 pt2 pt3)
2 @0 X/ V; o" O- c8 X9 x) Y8 x, ? - (ai_circtanstart)7 d- \0 S5 b% v. E$ Y( T
- % ]7 o" _; I1 T
- (ai_sysvar '("osmode" . 256))) |. Q( o0 s5 J. u9 W7 w& a& V4 y
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)( W7 l; i( w' w6 `4 H( Q1 L
- ) R a) D0 H2 Z8 Q; C
- (ai_sysvar nil)8 w6 v2 W* x8 h2 o' m; I
- (setq *error* m:err m:err nil)
$ e) H% M8 b7 e1 q- a2 C - (princ)
3 { U5 A D, Z' I( }: L, \8 u - )
% L) a4 [3 m' Z( B; k - ;;; Use this if CMDNAMES == CIRCLE
" j5 ~9 U4 c( |: q - (defun ai_circtan (/ pt1 pt2 pt3)
/ c" t* }. x+ s1 a3 T - (ai_circtanstart)& I! d7 {' m/ u0 V4 U# {* K: @
- / p! x3 Q+ g2 k% b
- (ai_sysvar '("osmode" . 256))
; I( y/ f8 T! H: m5 s - (command "_3p" pt1 pt2 pt3)2 D% o% T9 ^! p J6 p1 |. E
- 7 [- f p( \# Q/ F; j
- (ai_sysvar nil)
9 m6 o$ B9 b* L3 I8 b" E+ e - (setq *error* m:err m:err nil)
% I, [- P' V' R0 O* M C3 _$ l - (princ)
& s S6 X: `' Q) X. r - )
( \4 z: a' W, p# D7 _( W% A3 q - ( T! n+ D/ r$ f7 V
- 4 f9 h" Z# X# t6 t$ G9 m0 |
- o. W: Y1 B% ~! x
- ;;; Shortcut menu Deselect All item.
- [4 R; [* \' |; t% z/ }" f
; `. s6 y7 W) U7 a- (defun ai_deselect ()$ C4 }) b1 j- M9 r
- (if (= (getvar "cmdecho") 0) ;start if: q& J5 o% @0 ?& Z. L& f
- (command "_.select" "_r" "_all" "")
# b% T! P3 Q% R; v9 w - (progn ;start progn for cmdecho 19 G2 q2 E/ a# A9 x( Z) Z4 {
- (setvar "cmdecho" 0); i' v1 q0 X$ r+ n: \
- (command "_.select" "_r" "_all" "")
H( f( _+ n* D" L4 v - (setvar "cmdecho" 1)0 {- p# R6 Q, D8 J# k
- ) ;end progn for cmdecho 1. f/ a' q, K/ D) ]7 R$ e
- ) ;end if
# w4 Q7 Z0 x/ a |/ d+ ^& ]; j - (terpri)
% s3 M i* p* C - (prompt "Everything has been deselected")
5 U' }* A3 l3 J" t% U/ \* w. J - (princ)( u3 }" A( A' M9 H
- )
; Q: k- @ K1 T, C" B. q - 2 G# X$ j( _/ Q H; Y$ C, k
- ;;; Command version of ai_deselect to be called from the CUI
* W8 W# q6 W( B, E - ;;; so it gets properly recorded by the Action Recorder
" W- E( v: ~% N - ;;;: I9 \" G: h& ?% k+ }' b
- (defun c:ai_deselect (); q5 |! P% }% V4 b' i% E) B
- (ai_deselect)
& K; Y+ I% U9 b! ?0 F! i - (princ), e# C9 W% X: e5 U; F7 U2 ~
- )
) p1 F4 m/ H8 a6 h- Z - 4 C5 T, M' m: T) x. B# {
- ;;;
. M% ^1 ^+ a! W4 l - ;;; Enable Draworder to be called from a menu: T$ u( S3 [7 V% P$ @" l5 G
- ;;; Checks for Pickfirst selected objects
& |1 `: v5 {$ a) G - ;;;$ s9 H2 I5 [& {; @
+ U6 g2 V+ ^! A# Q2 W6 J- (defun ai_draworder (option / ss )
8 v' t: ^2 n% @4 {4 w
3 U% s3 {/ V/ u( w. _- @6 m- (setq m:err *error* *error* *merr*)* C3 S6 F9 r f* ?: m% Y
- (ai_sysvar '("cmdecho" . 0))" I1 g4 e: f/ g4 }- a
- ! D* a6 c' K4 t, k+ _
- (if (setq ss (ssget "_I"))
1 w* k) }; C4 R2 y0 l' q - (command "_.draworder" option)
0 Y4 P3 T: Q( l y& i( K+ T( v# x - (if (setq ss (ssget))
: M# n0 q3 }/ w/ q6 W - (command "_.draworder" ss "" option)
+ i/ Z$ I- z* v2 B' e* X - )8 H4 u8 z$ g5 ~5 V, }1 j w$ I
- )7 }0 \# i* C `8 F/ b. B; q4 R. Y
- (ai_sysvar NIL)' U# H& l3 U( Y0 W6 A' F% J
- (setq *error* m:err m:err nil)
4 t4 @5 _' i# A: e2 v
, m7 f8 S, ]5 t6 ?- (princ)
4 G9 O6 Q6 }4 c: Z a - )
* N" O% \8 Z4 F* I/ _ - ' P t# l. v. v! j& N) ]. B7 l# m
- ;;; Command version of ai_draworder to be called from the CUI
. M% p3 a7 h+ d( v7 k5 N% s; j - ;;; so it gets properly recorded by the Action Recorder; j! d, |* j7 N8 y% U' S/ i5 O
- ;;;
9 K+ [) @' l0 y* N3 ^9 ~8 I8 [ - (defun c:ai_draworder ()
3 i0 ]. z) c* Y: i/ f3 z* R" r) \5 S - (initget "Above Under Front Back")
; `& D! _' V$ ^, d! Q* _! E, ` - (ai_draworder (strcat "_" (getkword)))2 F' ^$ [. Q0 x5 z) P( a9 w
- (princ)' b8 ~7 B7 }+ A) _. Q5 E
- )) {# ~/ ~8 Y$ e9 L4 x( J* a$ T5 q
1 c6 N- r+ {! x+ b) N }- (defun c:vlisp (). t$ y1 Q, x, M$ [+ k
- (if (/= nil c:vlide) (c:vlide))
- `3 s/ ~1 j' U( v/ v* G- x" T3 _ - )# { ?0 o# a/ c4 K# ~9 K
, a/ Y( Q- z7 |: T, t- (princ "loaded.")6 G$ \, o) G% F. I6 R
- 9 e9 a. _# d$ G2 E! y& J' z
- ;; Silent load.% ]6 ^: T* j* h1 l9 V
- (princ)& d' S2 a- g3 L; ~
- 5 J2 H9 j. H( V2 q: q5 }5 y; P
- ;;;----------------------------------------------------------------------------
' C; w' ^0 t2 y! G8 b/ n a - ;;;& Z& d+ L- K4 m9 }) k1 d: [# L( C
- ;;; DDCHPROP.LSP Version 0.5( [8 f: i0 |% B- Q1 @# d: l
- ;;;
6 F, e# F3 K- E1 ]# E# O$ Z - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.; K j) F( i, N8 I
- ;;;( g4 d; o2 [ t' d9 g
- ;;; Permission to use, copy, modify, and distribute this software( b, D) l) z0 J$ ^0 Z4 R, J- ]" J! G) ~
- ;;; for any purpose and without fee is hereby granted, provided
$ a: L, `" a" T( y4 X0 G' P - ;;; that the above copyright notice appears in all copies and that
* I' M9 H3 D' |4 X2 K; O - ;;; both that copyright notice and this permission notice appear in. y, p0 ]/ ~5 j
- ;;; all supporting documentation.
" ]1 I9 @4 N- E& V: k - ;;;* N( [5 i4 s/ l: E+ R$ f7 U" S4 p
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
& N4 I- W( `5 A& c - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR0 Z7 e5 y, s( o' k$ @% p+ S* u
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
! Z6 i2 c& q, W% h& b" q - ;;;
4 \* P3 o' m" u# j# L - ;;; 2 February 19920 M8 g% _( B/ T& n/ M
- ;;; - G; n( p. i$ ^# x0 S9 ^3 v
- ;;;----------------------------------------------------------------------------
5 H7 a) k5 `- L2 R8 N7 }" N - ;;; DESCRIPTION: S$ T ^; p# W% p
- ;;;----------------------------------------------------------------------------
" L/ A! a2 c; l - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
! O( m8 J/ H6 M: W) G/ E* k - ;;;
0 Y4 h# I& v4 _ - ;;; The command looks similar to DDEMODES. The main dialogue has an image
, g; _) A" Z# @1 e$ J- N6 \. k0 w - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). 5 {* c* S1 ]3 e6 N* b# y
- ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. # x' u- m/ {( I8 j
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.
) D8 R7 C) N7 |9 Z& ? - ;;;1 h3 b- }, Y7 u) o) E. x
- ;;;' }: n' C7 V4 Z, }
- ;;;----------------------------------------------------------------------------0 {* N4 ?3 f! v9 D) S3 F
- ;;;----------------------------------------------------------------------------
0 v M7 w" | Z# d - ;;; Prefixes in command and keyword strings:
. A; [* }8 c8 { - ;;; "." specifies the built-in AutoCAD command in case it has been $ B+ u1 @( S$ {* U! g2 e, }
- ;;; redefined.
3 _6 O* q* s' M8 A% Q# b# R+ A0 \ - ;;; "_" denotes an AutoCAD command or keyword in the native language' T8 ^& t1 f9 [ u6 Y3 |
- ;;; version, English.+ |3 m- s7 P2 M7 N. \
- ;;;----------------------------------------------------------------------------
4 G0 F) r" w9 Y1 [. A: O$ }4 E - ;;;% G8 k& D4 W' B8 k0 b+ b/ q
- ;;;
) o( _/ Z8 \, [5 O k i' ` - ;;; ===========================================================================/ Z/ f% }/ C0 W" K; e# `! T
- ;;; ===================== load-time error checking ============================
/ k$ O5 d7 l f1 k9 P - ;;;0 O6 l- W( e1 I; D) \' v
- t7 U7 o' J$ f- (defun ai_abort (app msg)
5 p- N. j1 v0 R7 N; V& j - (defun *error* (s); ~+ U: ?8 B# H1 ?( m y( y( B4 m
- (if old_error (setq *error* old_error))9 B, v9 w- \8 R% N
- (princ)
/ e$ ]7 f) s$ O3 Q" H - )
7 m2 g9 \7 s: ]! h - (if msg: L& G" c5 e+ v) V& C
- (alert (strcat " Application error: "
$ W0 n0 T u5 f( ~% V# s - app
% P+ t8 `; s' p/ ?+ G - " \n\n "9 c) Z5 U+ Z7 j* M0 f0 z0 o! ` J
- msg" X+ ~ f5 {* g5 o
- " \n"
. S3 }4 Q7 u8 y, m1 R - )
4 r% s( {; g" A- [ - ); d8 k1 E [0 R& s0 ^& d, B. b
- )
7 O) R" B* K7 m% ]8 N' G - (exit)
3 Y! l; i% D9 B: ?8 K, X" L - ) ?( b+ o) C$ j/ u) ]% @( p
- 6 o( I( C" X/ r; V4 W j
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,# B1 n* D" l; w/ ]. d7 B
- ;;; and then try to load it.( v3 _5 {, e. B1 ?0 e8 ^# w4 n
- ;;;
. m4 ? A) x- H) l: \- i$ ] - ;;; If it can't be found or it can't be loaded, then abort the
: D- Q0 K0 q0 X V8 v! X) ` L - ;;; loading of this file immediately, preserving the (autoload)1 E* p/ J( J3 n$ w$ y+ R5 J" N( v
- ;;; stub function.1 R' z9 ]" u! s j" d5 l8 B
$ {. k& g0 r9 _& c! i q7 [; \- (cond+ d# e. S! x D* ^$ q- h
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.: A' d, }0 s4 U! t' B1 z* B5 j
- ' v, S; c o# @
- ( (not (findfile "ai_utils.lsp")) ; find it
3 |1 P" |& f$ P0 n9 f* i - (ai_abort "DDCHPROP"
1 q6 f) X' O' x. Y - (strcat "Can't locate file AI_UTILS.LSP."
* ~$ m E1 N% T) h& e; f - "\n Check support directory."))): k' N$ {0 Q0 |/ J. J/ x1 u
; z8 X, V y3 ~6 y7 g Y4 h% \, Y- ( (eq "failed" (load "ai_utils" "failed")) ; load it
9 r0 j* d2 L7 r! ^. k - (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))3 N9 M) ~; C9 @, g6 O: ^
- )2 p0 f( A0 ], p0 d& y- }0 B
) t$ x5 b3 d5 n+ C) T7 ~ Q* Q- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP/ d; }7 i) k6 F& Q m* o
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
& }; [5 ^7 Q" W. S' d) W - ) ; ai_abort's alert box dialog.3 p% f+ v4 p7 X$ C
7 \" _" b4 J: t, F7 x- ;;; ==================== end load-time operations ===========================
7 b- g/ E, r4 T' o8 U
; `# U9 f4 ^7 r" M7 u6 I* {$ F- ;;; Initialize program subroutines and variables.
- O" Q; g$ q+ y0 p% f
, F6 n6 T! g6 j2 }" S% {! Z- (defun ddchprop_init ()9 H) t) l3 @! Q% ?, ?* S5 e
- % g$ a6 Q0 v( L: q- ^
- ;;' v! g1 O+ w( ], S1 x
- ;; Define buttons and set values in CHPROP dialogue box
- @& N, p0 L0 Q# U# ]3 b( q) ^ - ;;2 r. d$ s& o# l1 S/ K
- (defun call_chp ()+ E! O' `- K; Y
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))
) T7 `: d* a% I" c - (set_tile "error" "")
9 @( T7 w2 Z; ^% Z( B+ S - ;; Set initial dialogue tile values
" L1 M% L6 @" x7 ]- a5 t - (set_col_tile)! v% ~* }) ^& ?. V/ n. e. ~
- (if (= lay-idx nil)
# ~8 t1 w8 l5 k1 n6 L - (set_tile "t_layer" "Varies")* p! t- k1 {2 V( H; j1 ^# t
- (set_tile "t_layer" (nth lay-idx laynmlst))
9 }$ j/ C" w. A) ] - )5 O* D, @+ y9 A* g( k, K
- (cond
/ y5 O6 f1 `5 l4 m( C5 j - ((= lt-idx nil)
: q6 @% }2 g4 g) @) ?$ p% E - (set_tile "t_ltype" "Varies")
1 \$ j+ O# I7 e/ w! B1 p/ D - )1 w( p v" R! V* {: y6 z
- ((= lt-idx 0) ; set tile "By layer & layer linetype"1 _; y- G/ ^- d- ]" j; ^2 C1 m' E% h
- (set_tile "t_ltype" (bylayer_lt))
4 ]! N/ x0 F: {; J) {- P - )
- J" W. W* e. F. a9 \+ g' P - (T
, B$ B) }! c' p& G1 n - (set_tile "t_ltype" (nth lt-idx ltnmlst))
' t7 ]4 y6 q/ ~+ Q - )4 V# K" l/ v6 X8 e
- )1 r0 w, f; n) i9 v6 c! U0 t
- (if (or (= ethickness nil) (= ethickness "Varies"))
+ n0 I2 e' e# r1 K5 K3 w% B - (set_tile "eb_thickness" "Varies")& t x! [" z+ f4 P
- (set_tile "eb_thickness" (rtos ethickness))$ z. C% t, S) c w5 n ]
- )6 o5 L" V( f( X
- ;; Define action for tiles
% F5 O) C" w5 e" X# t- B - (action_tile "b_color" "(setq ecolor (getcolor))")8 w# F% B+ l1 K' c2 i$ Z) Y2 D
- (action_tile "show_image" "(setq ecolor (getcolor))")( `; i k+ O- o) C7 n9 ^ G' T1 R
- (action_tile "b_name" "(setq elayer (getlayer))")
2 Y/ A# G* a# ?( H - (action_tile "b_line" "(setq eltype (getltype))")5 u& r* l2 N' I8 r) g3 m
- (action_tile "eb_thickness" "(getthickness $value)")
" l: g' }7 U& h( e3 x7 j: \ - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
+ a" M% [! w3 a! l9 f, | - (action_tile "accept" "(test-ok)")
% A! W- Q; D; C7 K* i( y - (if (= (start_dialog) 1)
( k/ t. Y& _0 L8 t+ K2 B+ b - (progn
# V. I! b7 B' r. A5 _ - (command "_.chprop" ss "")8 k& ^" y" N ^/ f% V
- (if ecolor2 [4 w+ N1 b4 B7 J4 H; r0 J
- (progn
1 s$ u5 H2 x+ R, ~4 ` - (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
' z8 T( B0 g; Y5 d: z- i# _ - (if (= 256 ecolor ) (setq ecolor "BYLAYER"))" Q& S2 q3 e0 P8 T) R: L
- (command "_c" ecolor)& s& |! u2 R8 U( z& i
- )" h" V* _9 o) I
- )) Q# [0 H$ R2 N5 X% ?$ _5 R( b( Z7 \
- (if (and (/= eltype "Varies") lt-idx)1 `5 o$ M% m$ I0 G* ]$ D9 d
- (command "_lt" eltype)" z! r' p1 \ G A
- )
& l8 ~$ ?: t4 d - (if (and (/= elayer "Varies") lay-idx)
. d/ @5 V8 C! @) x - (command "_la" elayer)! w! \6 |/ T* L! s& X
- )
5 n( C! x8 U, {( r4 e* ^) J7 A - (if (and (/= ethickness "Varies") ethickness)
; {! i5 O, L1 w- {/ ~+ q: N - (command "_t" ethickness)
& W, A- N& Q' ~- W - )
7 V. x" P9 J3 [$ _3 T - (command ""); N: j! Z* F7 \
- )- M& j# X+ b+ d- |
- (princ "\nProperties unchanged")- i/ B( e; d/ q& F5 O6 Z
- ): ~6 I4 l4 C7 H0 s
- (princ)8 {7 R, x% S' ^& O
- )- H& B8 Z+ s5 ]7 E* ~8 u% @; F
- ;;
5 T; N; e+ v: t: H2 J/ c - ;; Function to set the Color text tile and swab to the current color value.0 t- T- `/ _% T6 r3 o1 @
- ;;8 y& N" [% v' W5 Z
- (defun set_col_tile()
5 l# P* C$ c. r" ~ L - (cond 8 `/ V- b) A( j4 M8 W
- ((= ecolor nil)
a, K! C4 u' h0 y: L* m% f - (set_tile "t_color" "Varies")
: R# H! Y( ?9 \ - (col_tile "show_image" 0 nil)
& z% w3 d: p3 M% {9 V! l" [; e - ) i+ l, m. h; Z6 a& G; S4 g H
- ((= ecolor 0)
3 Y2 h) A) D" o - (set_tile "t_color" "BYBLOCK")
/ B# b ^1 ^$ U# R - (col_tile "show_image" 0 nil)3 |( F: c/ @2 a$ K( u
- )" O/ |2 i% A" m& ?! }
- ((= ecolor 1)+ ]& N1 O! K3 d1 k4 W% ^
- (set_tile "t_color" "1 red")
- i ?3 V8 j: A$ H - (col_tile "show_image" 1 nil)
- h" y# E, A' O0 q/ N8 p* R - )
* X& W$ F. g# W4 P - ((= ecolor 2)
) V" V/ ^7 X7 p6 K7 M% Z) m - (set_tile "t_color" "2 yellow")
# s2 @" g7 x6 \ - (col_tile "show_image" 2 nil)
4 ?! ^0 @; ? B4 E Y/ X - )
, b$ H$ r! E. r( M. n - ((= ecolor 3)
) w4 [. r* A4 p' l# i - (set_tile "t_color" "3 green")( p1 u" Q7 o, D" @8 D: `0 j
- (col_tile "show_image" 3 nil)
9 b* a& J0 w. n3 B - )
6 o! w) e+ Z7 A9 {6 @ - ((= ecolor 4)
; A' V: c9 n1 ?5 i - (set_tile "t_color" "4 cyan"); f8 D) k% d" `5 F+ L5 @. {0 G
- (col_tile "show_image" 4 nil)
0 U; H2 V! m' N: f - )# V5 `# T; ]1 `9 N4 o/ W. x
- ((= ecolor 5). g* j: A/ t4 D2 `0 ?
- (set_tile "t_color" "5 blue")
, W2 R C9 g. M2 s( z# m. q! G - (col_tile "show_image" 5 nil)
# S% B8 L; ^3 ~) j - )
4 j) {6 j8 t8 | - ((= ecolor 6)
0 Q. v. p* C$ f! M1 Q - (set_tile "t_color" "6 magenta")
9 ^$ D1 {- U" _% Z - (col_tile "show_image" 6 nil)
# ^# ]$ n" ?2 F2 y, o( j - )! R6 X4 l) O+ J* K7 v
- ((= ecolor 7)
0 S; P) g4 z/ S+ `* K - (set_tile "t_color" "7 white")
! _7 R, o+ [4 \; f+ N - (col_tile "show_image" 7 nil)
6 L c2 u& q8 T - )0 S' D/ x: P1 ~3 G9 O# S% N$ E3 x
- ;; If the color is "BYLAYER", then set the tile to
) a1 M8 j( b {7 d* I9 I - ;; show it's set By layer, but also indicate the: w3 E4 G# `! b
- ;; color of the layer - i.e. By layer (red)) K, k% d. {; v7 ~2 W
- ((= ecolor 256)
, V0 v( o+ E# @& ?; v% | - (set_tile "t_color" (bylayer_col))" g+ s3 G- \/ j8 }* R# s; d
- (col_tile "show_image" cn nil), H% a$ l+ n) P5 W1 y, e& |
- )
' c" C* `4 I0 y5 w - (T
$ |0 R! v3 N+ f4 P! i - (set_tile "t_color" (itoa ecolor))
4 X# D9 z: b3 Q5 { s% J - (col_tile "show_image" ecolor nil)
+ a& N3 ]( G+ s9 Q8 u - )
7 w* K1 N5 S/ g) f) q% a - )& I, {& I& q) d. j' j' f- r u/ E
- )" a' x1 k2 a1 [
- ;;4 ^0 ^ A4 s2 X
- ;; Function to put up the standard color dialogue.2 K: J9 ]" K( u- P; B
- ;;
6 F: D+ W0 N- v% V7 w* M - (defun getcolor(/ col_def lay_clr temp_color)# f4 W4 u# u' w" i( h- r& ~
- ;; col_def is the default color used when rq_color is called. If ecolor # z: _: D/ p" {2 W% L2 S& c
- ;; is nil (varies) then set it to 1, else use the value of ecolor.$ v( l0 B( P6 A& K
- (if ecolor* N' L" P. I: T( L! t8 ~
- (setq col_def ecolor)3 f4 U6 u+ Y" M& }) E; P
- (setq col_def 1)7 ~5 l2 v3 T2 O# [3 J3 S, l
- )
9 x- `- [3 n. U# W, w - % O- ?3 |$ e# c( @9 e+ X# Y; r: V
- ;; If we're working with a single layer, get its color/ {! \6 R7 F' C" a7 m
- ;; for use in the color swatch if the user selects color BYLAYER.% O; |$ N2 z% R* S# o0 _1 W
- (if (/= elayer "Varies")' O6 J1 v% B( Q
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))) y9 y/ H% o) }/ m' { |3 n
- (setq lay_clr 0); n) I3 x9 T" R* D( ?" r4 J
- )
% s( I+ e; h! V9 k( z2 I1 ^ H - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
0 O. Q0 T8 z* z6 ] - (progn
" k; ~" Y1 C9 w4 O1 } } - (setq ecolor temp_color)# Z) y0 L* O% _( |$ X
- (set_col_tile)
3 W8 B/ _8 E) ~$ H- {6 w- u4 W, c7 I - ecolor- `$ |' A/ }5 v! \
- )$ t, W1 q- h8 `7 ^
- ecolor
: M/ Z y7 w9 D* v - )
@$ o; ^" L' E( q+ w - )# j; J+ T( e p& J
- ;;1 O' c1 t, j7 k! b
- ;; This function pops a dialogue box consisting of a list box, image tile,
) W% U* N+ I2 ]! I% a/ v$ Q+ ]4 a; W - ;; and edit box to allow the user to select or type a linetype. It returns
1 J9 u3 u3 u, {* G - ;; the linetype selected.
: b. E8 z9 P: B - ;;
/ M* F9 g: `# s8 j+ w/ p3 K - (defun getltype (/ old-idx ltname)8 J9 |/ [# q1 V2 S6 ~
- ;; Initialize a dialogue from dialogue file7 T; p; U- `$ U I# A, K n
- (if (not (new_dialog "setltype" dcl_id)) (exit))
4 ^+ I5 U9 r5 X* }. S V. `1 j - (start_list "list_lt")& }: j* A i3 l9 L" b3 l
- (mapcar 'add_list ltnmlst) ; initialize list box" S7 _. l6 V- O1 W
- (end_list)8 \( O1 \0 A( N4 q
- (setq old-idx lt-idx)# n0 a% \3 A7 j5 C
- ;; Show initial ltype in image tile, list box, and edit box
3 L3 p3 a, \ T4 V3 _ - (if (/= lt-idx nil)
% P, m3 a! l- } - (ltlist_act (itoa lt-idx))
* h e- y+ ]$ ~4 ~5 D& d - (progn
/ H) b) g8 r7 N; w$ `. a3 V# M - (set_tile "edit_lt" "Varies")
8 f& {0 L4 r7 M3 b - (col_tile "show_image" 0 nil)
5 j1 L" K( t$ W+ A) \0 A; n - )
- ^2 G2 C; ]" Z+ t - ) {: I% X. X% Y; q2 O) `& J
- (action_tile "list_lt" "(ltlist_act $value)")2 T& X7 ]' ]% C* t8 k o5 F5 R8 }0 `
- (action_tile "edit_lt" "(ltedit_act $value)")
% H4 a) q9 z/ A. u5 S1 f - (action_tile "accept" "(test-ok)")
7 y# ?. a! H$ }) }# G1 t Q - (action_tile "cancel" "(reset-lt)")
# b; ~7 z# _8 {! { - (if (= (start_dialog) 1) ; User pressed OK- {; D. E% L& A& H. O* r
- (cond * T# k1 N* N# f9 n: ^" n2 F
- ((= lt-idx nil)0 a; I$ y* w, W# D v
- (set_tile "t_ltype" "Varies")
- A, n7 K' ]' } - "Varies"
4 J5 c! Z; _$ J4 D1 K - ); e4 W! ^ e. n0 g, ]: W
- ((= lt-idx 0)
8 B7 T9 r" U/ I) A, e" u" Q - (set_tile "t_ltype" (bylayer_lt))! a/ Q) q1 l$ \" K- F7 v2 R
- "BYLAYER"
( a9 S2 d' P# M: l) ] - )4 V D- K5 |5 Z) B( e
- ((= lt-idx 1)- Q' v% v' A6 O$ `1 R$ {
- (set_tile "t_ltype" "BYBLOCK")5 S4 C! j% t* d* M( O H
- "BYBLOCK"" {9 C1 k# o2 l/ F0 |
- )- u ^3 x3 R. l$ F% N9 i
- (T 2 P+ s7 H4 Y+ E
- (set_tile "t_ltype" ltname)
$ i2 {3 a( s/ l - ltname+ e$ H0 C7 f1 X
- )
) p/ r3 N+ @. \1 Y: [6 [* b - )$ `. n. ?5 {8 s/ ~: D! K; [
- eltype C# c% a4 k0 B* {* I o8 _1 g
- )
. t% P: f4 Z# R& r$ W! h - )
. v8 i3 O& C) \% H1 k - ;;+ f- y! e: E( S+ Q+ Q
- ;; Edit box entries end up here6 [2 B! j6 S* y8 C; I
- ;;) O9 A9 D+ d3 R* z: }9 \8 \
- (defun ltedit_act (ltvalue); C/ `" M6 c3 @; V- I
- ;; If linetype name,is valid, then clear error string, , f# p/ y0 I; N4 M( e5 x. F2 F9 {
- ;; call ltlist_act function, and change focus to list box." S% J7 R& ?' T* d, {
- ;; Else print error message.0 p4 j# B- Q O; n& \3 b, @
- (setq ltvalue (strcase ltvalue))
8 r# Y1 q8 c+ v0 C - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
' L. x6 R! g+ p8 }. k, v% c - (setq ltvalue "BYLAYER")' |: l/ s2 x8 I+ t7 y& o
- )
- }+ M& ]+ O& K/ y+ H5 _ - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))( A) M+ c7 _/ J
- (setq ltvalue "BYBLOCK")
( i; f" b: ^7 J$ h9 _* h4 ^% \; S - ), V* p* K1 n2 Z# J
- (if (setq lt-idx (getindex ltvalue ltnmlst))7 h; l, {/ `; ^' L9 R6 i! I
- (progn
. [9 i, v, _- V9 u! F/ ]2 J - (set_tile "error" "")
$ }0 D3 N. o+ B( i - (ltlist_act (itoa lt-idx))
# d& [2 J) U. {; _1 x - (mode_tile "list_lt" 2)
: P2 ^1 f1 ~; D" Y# y - )
; y+ z5 u3 {* j/ T8 p6 X - (progn
% }% A" E+ m1 `1 e - (if (/= ltvalue "VARIES")/ ^* g6 k( m0 x1 T! p3 R
- (set_tile "error" "Invalid linetype.")
# X# U" v5 b. z# y7 Q! U% p - )
. U3 e6 a7 X# {/ L - (setq lt-idx old-idx)
& A+ `! M% E9 [: l5 P8 O - )
, b2 @' p" l) C' `8 J - )4 X8 ?; n& g4 V: x
- )* N9 ]2 h7 }* J: j( {! W8 b
- ;;
+ t, Z, v! b0 _, w - ;; List selections end up here, _, G2 t( \! [9 w1 O ~
- ;;& M# F+ p7 G1 t
- (defun ltlist_act (index / dashdata)
1 R" J) f; `6 ~7 p( O - ;; Update the list box, edit box, and color tile/ n& `+ [8 x# i" d
- (set_tile "error" "")7 l# q1 |: ]2 |& g- Y
- (setq lt-idx (atoi index))3 @) o( D. `. z; n1 ~* G
- (setq ltname (nth lt-idx ltnmlst))
/ z0 p. _4 p$ w. `1 @; Q& u, M8 \ G3 a - (setq dashdata (nth lt-idx mdashlist))
& n$ [- |" f# U: S - (col_tile "show_image" 0 dashdata)+ D$ ^9 ]$ ^5 o6 a) w
- (set_tile "list_lt" (itoa lt-idx))
7 ]$ J. n' u0 @/ R - (set_tile "edit_lt" ltname)
+ p7 N! R9 [9 Z4 e, Q4 p; r - )
6 ^2 k; r2 Z" {1 s" m - ;;( l+ D* I" D3 Z5 S }
- ;; Reset to original linetype when cancel it selected$ I6 N* {# z9 V; j( n H% `
- ;;
% J8 ^ T! q; r1 @9 r - (defun reset-lt ()
8 O0 Y' Z* c/ G7 j8 m - (setq lt-idx old-idx)
. G3 e$ k* {8 X; X8 V8 f4 { - (done_dialog 0)
/ k& |1 f) s1 G( B, q5 l: F - )
+ W+ y) p8 x5 C) S - ;;
: I! ^# ]& L, K - ;; This function pops a dialogue box consisting of a list box and edit box to
% ~/ ^1 R0 @3 b, o - ;; allow the user to select or type a layer name. It returns the layer name + j- `# j6 e( ?( V" b- @
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the . A# F0 M# V" Z" U, k* ]
- ;; drawing.
. c5 ]* p L, e% s; ` - ;;
% N* c2 m; t/ X, R4 n0 s1 f* l - (defun getlayer (/ old-idx layname on off frozth linetype colname)
9 r4 {8 E) b2 b0 C - ;; Load a dialogue from dialogue file8 Y0 u4 f: D$ ?4 N1 y0 [' v
- (if (not (new_dialog "setlayer" dcl_id)) (exit))- V' N4 [" u; W( k! U, l7 H
- (start_list "list_lay")
9 ]3 {% J, Q& K$ a# C. f1 m3 C - (mapcar 'add_list longlist) ; initialize list box
0 R: a7 k1 l% D" X" O - (end_list)1 h3 O( G F) T$ n
- ;; Display current layer, show initial layer name in edit
8 ^. d/ D# }0 S0 J* u; P4 V - ;; box, and highlight list box.: v9 N" ?4 P/ C+ O& S1 L
- (setq old-idx lay-idx)8 h; F' z: C+ q5 w+ A
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
0 T0 \& a! L5 E7 j6 |6 S - (set_tile "cur_layer" (getvar "clayer"))/ `/ d, j9 E6 z
- (action_tile "list_lay" "(laylist_act $value)")
, |( |2 ^ ^. B m7 Y0 \) R' y- o) | - (action_tile "edit_lay" "(layedit_act $value)")
% N" z, S4 S; ~' ^ - (action_tile "accept" "(test-ok)")9 J: i& J6 N2 p' L7 t
- (action_tile "cancel" "(reset-lay)")/ s) F) i+ _1 p/ C7 o* W3 \
- (if (= (start_dialog) 1) ; User pressed OK
' t% c2 o6 `: E - (progn
- \6 Y) z6 A3 H0 j8 e: g* d - (if (= lay-idx nil) (setq layname "Varies"))" k8 Z* [% r2 I- X
- (set_tile "t_layer" layname)
& X1 G0 c) G2 r! D9 z) C5 V - ; If layer or ltype equals bylayer reset their tiles# z2 Q$ F3 ^0 `& m1 N- z
- (if (= lt-idx 0)
1 b1 r7 B: n' K - (set_tile "t_ltype" (bylayer_lt))) a) G5 C1 Z0 h! _
- )& p9 G& g# g6 Y# v( \8 \) ]! r
- (if (= ecolor 256)2 t( k D; a, c7 X
- (progn# f- T5 Y( C- `1 w! \
- (set_tile "t_color" (bylayer_col))8 l: |7 Z7 S9 s8 O, A
- (col_tile "show_image" cn nil)0 {, W& ^9 }- b- ~; B/ X
- )+ z8 `. P% i( ?# |
- )
+ F! u" {- G3 z$ \3 z6 t - layname- F; p% K3 f. ^/ z7 G
- )
; n8 ~$ R7 u! R: [; w. ? - elayer1 _ w+ `3 D+ b7 D
- )
Z( M/ l" P2 S+ J - )) P7 q, \% ^, K- E7 t) A! Q
- ;;
' O6 }; m& \+ w9 m* Z J - ;; Edit box selections end up here
, r5 n! N" x" K0 Y" p S* W - ;;
: ~$ R! `$ Y+ ~$ J1 N - (defun layedit_act (layvalue)7 |/ z3 w& J8 d7 y6 C ~
- ;; Convert layer entry to upper case. If layer name is
$ W6 g- n) t1 w - ;; valid, clear error string, call (laylist_act) function,1 G w' J4 Z/ q$ R
- ;; and change focus to list box. Else print error message.
, @) R( y0 c# \/ u- Y2 v; o! c - (setq layvalue (strcase layvalue))
0 F: `! t T( g( G1 z# h' a - (if (setq lay-idx (getindex layvalue laynmlst))
" Z: }1 m. n q$ c; U9 o! A - (progn
: M4 Y3 e# {% V" {9 b! ]8 P. K4 [ - (set_tile "error" "")
/ i4 h+ G( _* I: m# n3 u, a6 ?/ ? - (laylist_act (itoa lay-idx)): _9 c( R! @! b( V
- )8 Y1 z# U& O) S8 x9 q% v1 t
- (progn# h' J( X+ F$ R
- (set_tile "error" "Invalid layer name.")# w: v1 P9 f/ G
- (setq lay-idx old-idx). {5 M( |! c0 b& l+ d! i! g
- )
6 ~( n+ o# T: Q8 Y( c - )
; Z, k) ]" L" I& ^ - )
: t7 L& J9 U- A( a0 b* B; w - ;;9 I6 V! Y, b8 K
- ;; List entry selections end up here" z) e1 d' X' g9 D% B( @
- ;;
8 n8 j3 _5 _1 k: f - (defun laylist_act (index / layinfo color dashdata)
$ w9 e! o! S4 M; Q; ~ - ;; Update the list box, edit box, and color tile
2 j5 t0 g+ c* M4 [/ p0 {" `# S4 j0 f - (set_tile "error" "")' w, C3 q, w& y, K& L
- (setq lay-idx (atoi index))! o- p5 A; T6 a8 |6 U
- (setq layname (nth lay-idx laynmlst))
: t! ?& ]6 V5 m) `( \ - (setq layinfo (tblsearch "layer" layname))
% L. P& u1 y7 d: x' [ - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
% j$ q* [& d1 v- H% F5 k8 \0 O+ O - (set_tile "error" "Cannot change entity to locked layer.") T: p+ L; t5 s' d1 `" _
- (progn! Q7 S: F: P1 Z! A
- (setq color (cdr (assoc 62 layinfo)))
2 _! A0 U3 j; v9 d3 t' Q" R - (setq color (abs color))
}. Z9 |* l3 d* C* g - (setq colname (colorname color))
% r% _/ y2 n. v3 \, m - (set_tile "list_lay" (itoa lay-idx))/ {0 F# W1 x4 F2 L% ]: v
- (set_tile "edit_lay" layname)4 l2 @1 ]' s8 L& L) C
- (mode_tile "list_lay" 2)
1 n7 \& I$ r' s* n - )
( P- e. p+ P" N* E- Z4 { - )+ ~( q9 z# E6 E) w, k8 W
- ): i: {. w! a1 h* U1 q
- ;;7 D' @4 x% ~! B+ ]" _
- ;; Reset to original layer when cancel is selected
% n4 h6 {5 T4 ^2 s5 B0 h - ;;3 ~9 E- r9 m+ B& B5 n# N6 V
- (defun reset-lay ()
8 ^( h0 |. I2 H8 m0 r6 |9 @ - (setq lay-idx old-idx)) j3 J; z B$ J: S
- (done_dialog 0)
0 Y$ a: Z! i6 F [ - )3 ?5 H) `& q( U0 X8 g& P: T
- ;;/ z4 M) i) K! t. }: u1 L
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
# C( Q6 G( q/ p. I% p9 F" D& z2 A; j - ;; string can't be converted to a real, this routine checks if the first
2 Q2 F7 a2 F3 j+ s4 n& N t - ;; character is "0". It also checks to see if the value equals "Varies".
5 J, a* u+ c6 m) R8 i4 n3 Q% d5 w( q - ;;
# {* b, b! h$ D0 K - (defun getthickness (value)5 g/ D0 A9 ]2 ^% i
- (setq value (strcase value)) g5 |4 W& ?" x6 t: z: c
- (if (or (= value "VARIES")) V/ d7 w, |' D) y1 K8 V
- (distof value)2 I5 |" i3 ^3 N; x% x
- )
6 M. I" G$ c! {# L6 R% a! t" T - (progn9 d- b) ~1 I1 o5 `* \/ T7 w+ ]
- (set_tile "error" "")3 F8 D9 C4 u- r4 a
- (if (= value "VARIES")( w8 f7 w' S. N% j9 P
- (progn
6 n7 i, A7 Y2 u9 G) i6 m - (set_tile "eb_thickness" "Varies")8 G5 v: y; g( i
- (setq ethickness nil)
- N2 V) H4 s$ U, Y/ o0 `3 [ - )5 r% ?5 I2 W( d6 G4 D
- (progn
# Q# C4 U; W) w# P3 l2 a - (setq ethickness (distof value))% m0 N2 j: E+ X0 y+ Y+ J
- (set_tile "eb_thickness" (rtos ethickness))
2 n. L0 d7 ~- @! O6 t( G- ^- W - ethickness! C5 T0 s, {; Q# s2 B0 {$ T* j
- )
8 F- F9 y# S) U: G3 Z' U - )
& p( ]9 P4 }, F( m. u8 \ - )
' {% \1 F* }# |& M - (progn6 L8 G2 ?+ p' d' t* V
- (set_tile "error" "Invalid thickness.")6 H D) }* d7 H ?( I
- nil9 |" ~$ z$ O1 _1 w
- ) F$ ]+ I6 u9 e" V' `' N
- )
0 |" N+ r( K, u7 f1 O4 d$ m5 K - )7 j @- c& X% O
- ;;
: z7 A( @6 m0 C& o6 s - ;; This function make a list called laynmlst which consists of all the layer ' ]5 m/ M/ r* ]$ c9 P4 j; c' e
- ;; names in the drawing. It also creates a list called longlist which
5 y. P% Z7 I x9 Z - ;; consists of strings which contain the layer name, color, linetype, etc. 0 u9 A% z2 P% \' r8 o' i3 y. P
- ;; Longlist is later mapped into the layer listbox. Both are ordered the ! S+ Y P/ w4 @! `9 H8 X
- ;; same.
2 f( K4 x# c f: O8 X! `: C - ;;
% ?- p4 K/ m5 d - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
$ S" v8 c; s6 I) T- Q, V - xdlist vpldata sortlist name templist bit-70
N2 r/ b1 K4 A9 J* M/ v7 Y - )
- T- l* x! V N! q0 X/ g# t+ y - (if (= (setq tilemode (getvar "tilemode")) 0)
4 N9 J# ]6 a0 h! R - (progn; W7 |) P. p, @3 [+ h" r5 g
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
6 R# i% D1 ]+ d5 _3 I& Y; q - (cons 69 (getvar "CVPORT"))5 m! N; ^# D9 \: }) k y& ]9 {
- )
8 L- q4 N# f% { - )
, P- G ?/ p& V - )
/ d7 J4 b, l# {0 `4 V - (setq cvpname (ssname ss 0))
/ H4 S6 Q! O u$ R8 o - (setq xdlist (assoc -3 (entget cvpname '("acad"))))
5 a8 X: b1 V1 { - (setq vpldata (cdadr xdlist)), H6 {- m3 ?- n
- )+ t/ l" Q& T O$ N* Q4 f
- )3 y# E' e9 K/ g) \' \( D
- (setq sortlist nil)
/ [ L* O; }7 D; D1 q- V - (setq templist (tblnext "LAYER" T))
: l; c( L: O4 H; } - (while templist
+ L/ L! r3 p& V" `! N3 t - (setq name (cdr (assoc 2 templist))): r$ Y, C+ M5 _
- (setq sortlist (cons name sortlist))8 _! }, _5 r% i0 |1 s1 A
- (setq templist (tblnext "LAYER")). i) r n3 m, y9 v# \
- ) p5 U: l1 E2 M3 o1 O
- (if (>= (getvar "maxsort") (length sortlist))
/ B* @! C: g/ l5 `0 _ - (setq sortlist (acad_strlsort sortlist))
2 }% `3 C/ S4 \+ g. Q - (setq sortlist (reverse sortlist))
2 I$ K/ g2 Y$ _1 P- U' G - )
9 K' {) a( a/ E/ S - (setq laynmlst sortlist)9 f# h: q& |5 }( e7 A
- (setq longlist nil)
5 s3 Z6 F/ Z P! T - (setq layname (car sortlist)) i7 p5 M s% q. }7 U0 T
- (while layname. T: i6 g2 n5 m5 M/ I) ]
- (setq laylist (tblsearch "LAYER" layname))
) M5 K+ v, R+ c6 h: l - (setq color (cdr (assoc 62 laylist)))
: J V+ @9 y2 M3 K( B - (if (minusp color)
* [" Y: \( F! x - (setq onoff ".")! m4 h- D, y& t) O
- (setq onoff "On")7 ]! ?, }! b* |2 {% `& v5 T5 K
- )9 E8 m5 `! T- c c; o3 u; E
- (setq color (abs color))
4 l( G% S1 }; A, i$ L/ P - (setq colname (colorname color))
7 }: U. q# f* b* m9 J0 Y - (setq bit-70 (cdr (assoc 70 laylist)))+ }" _+ H# [' w9 t2 Z( U
- (if (= (logand bit-70 1) 1)* G- S7 h9 F% B( U4 S8 P+ ]3 L
- (setq frozth "F" fchk laylist), n( |7 o: B7 _ Y, X0 c
- (setq frozth "."); d; }$ z$ X- e
- )" E+ e- ?2 n3 _5 d
- (if (= (logand bit-70 2) 2)5 n( q& R, r, `
- (setq vpn "N")* Y% Y. {/ |( N! d: m& F4 N
- (setq vpn ".")5 x8 ?2 [" h/ K% [ i R2 w3 {5 m! E
- )8 e& q# A& Y9 X# S7 }! L
- (if (= (logand bit-70 4) 4)
# _& V9 I. J2 r6 z0 ~7 Q - (setq lock "L")( u3 a, {4 t/ H% ]: U$ t
- (setq lock ".")
4 i9 m) y1 x) Y6 g7 w - )
. c2 m7 ^9 w& a& p0 p - (setq linetype (cdr (assoc 6 laylist)))
' E0 w: |3 \9 ?9 u - (setq layname (substr layname 1 31))
# ?; H+ B' d! ?, h4 b! W - (if (= tilemode 0)
8 K' y2 g. \# U, j# P# A - (progn
" \; m |6 X% v+ q - (if (member (cons 1003 layname) vpldata)
. w! ~" o# T5 x" C N2 e& s* F - (setq vpf "C")
* |- x- G$ V7 h. r( _% ^% L - (setq vpf ".")4 k! |7 W/ ^" c: ?, E+ u$ P
- )
$ H5 E- {% o+ x1 ~ - )
7 y9 r- G4 G! a6 D - (setq vpf ".")2 I: J( b. c2 Y# @1 \
- )
# U- w3 S. M7 {$ M- E - (setq ltabstr (strcat layname "\t"
: K' L1 o5 C1 g+ z# K - onoff "\t"
! j9 Q* j+ B3 h$ j - frozth "\t"
$ x) n. f. W+ Q: { - lock "\t"4 J a: c, a$ r( z1 ^- r! j
- vpf "\t"! y; W9 a4 ]$ ^$ G, t1 ^8 P
- vpn "\t"
8 z8 v& F' R9 D3 M+ m - colname "\t"
. B4 j- g( [) B$ q - linetype
5 B! d7 O) o- O$ T: S/ \5 B - )
2 ?* R& L) x% `1 `8 X* v - )
2 A/ W2 v; b) J* T# r' a6 C - (setq longlist (append longlist (list ltabstr)))
( f2 i) M/ @ Y3 C - (setq sortlist (cdr sortlist))' m4 U/ \5 R) V2 u! h: \
- (setq layname (car sortlist))
8 L% e) W! i$ G% d0 v: G! K8 B. ^ - ), { Y7 w$ u3 C
- )2 C& u! A Z6 J4 Y8 g
- ;;: @. c/ d2 Z/ M* \$ R5 v1 U6 l S
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of I, K7 w" u$ x8 ]7 P" {+ Y7 v
- ;; linetype names read from the symbol table. Mdashlist is list consisting ) \% J6 `3 P0 a0 ~! @# {
- ;; of lists which define the linetype pattern - numbers that indicate dots,
4 k0 C4 i) P$ R/ E - ;; dashes, and spaces taken from group code 49. The list corresponds to the 6 y$ ~2 J+ X: {" n
- ;; order of names in ltnmlst.4 H1 j9 Y" K$ y1 K- r1 ^5 H
- ;;2 [8 U7 ]+ `5 V9 h) J
- (defun makeltlists (/ ltlist ltname)
/ U& _6 \& Q6 v: B" _9 E: w - (setq mdashlist nil)
4 B& | f; X" T, W/ V5 F) n7 ~ - (setq ltlist (tblnext "LTYPE" T))
4 k F8 X" B0 s# ~2 R) v - (setq ltname (cdr (assoc 2 ltlist)))
6 |) ^* A0 t. t$ i" [, ] - (setq ltnmlst (list ltname))
c7 c; K, S) M& i. o* e
& M: u y3 a+ U( s: J: t' F- (if (= ltname "CONTINUOUS")" U; R* q9 D: J! ]
- (setq mdashlist (list "CONT"))6 I# o# Y0 o. J: k' I
- (setq mdashlist
, l7 Q) q/ A* N' I+ p" D5 N - (append mdashlist (list (add-mdash ltlist)))3 f& x7 r+ ^6 d/ G* D, D
- )- D4 y( ~+ A$ o
- )
: e% \3 w$ b8 B4 V* q3 F% ] - (while (setq ltlist (tblnext "LTYPE"))
' b4 B4 a* O7 e% J$ l+ r - (setq ltname (cdr (assoc 2 ltlist)))
$ n0 D2 d: @4 |2 r, a( M3 T) \ - (setq ltnmlst (append ltnmlst (list ltname)))$ m% v% U9 E; p4 ? n M
- (setq mdashlist
3 b& r% q% n$ T - (append mdashlist (list (add-mdash ltlist)))0 J/ a: l l. O% X# c3 O1 c! a
- )" @( p/ c4 f8 n1 n5 {, l
- )
% ]/ _* P+ f4 a% _! Q: m/ M - (setq ltnmlst (cons "BYBLOCK" ltnmlst))8 g0 v. W# F5 ~& i' m
- (setq mdashlist (cons nil mdashlist))3 k7 d+ X! U9 l! i7 T+ I9 Z
- (setq ltnmlst (cons "BYLAYER" ltnmlst))3 j5 j: d' H" o
- (setq mdashlist (cons nil mdashlist))
" w/ K+ y8 Y1 m' y/ w/ Q3 i - )
* {$ ^- r$ j2 S& j$ L0 G6 k' A - ;;; T" m8 R C3 z/ ?) p4 K4 D2 E
- ;; Get all the group code 49 values for a linetype and put them in a list ' @9 }- r8 V/ `2 u4 h# D$ ^1 f
- ;; (pen-up, pen-down info)
$ c I1 ^9 ]' [; w0 D - ;;
9 q3 A d' C/ G) q. A0 q - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)6 E. J8 r$ S, f: w9 A" l& J$ R
- (setq dashlist nil)
6 e4 i7 L' @3 l5 r3 R& l5 G - (while (setq assoclist (car ltlist1))
5 x- D- R8 e/ o - (if (= (car assoclist) 49)
1 q# L, |+ x9 {5 [ - (progn
& C* J6 u3 M. C' I6 X2 m% X - (setq dashsize (cdr assoclist))
. _# x5 j" `& R - (setq dashlist (cons dashsize dashlist))
$ A& V; X! ?- \ - )
5 b9 U$ n4 m. ^ - )( ]) k4 C" J4 F X
- (setq ltlist1 (cdr ltlist1))5 O" |3 @* _0 V3 [; W
- ). Y# b# }$ S6 @, k) A7 K
- (setq dashlist (reverse dashlist))
; Y! M7 g) U/ @4 e% ~* U1 a - ): b3 S+ a' T) h8 @; x
- ;;
2 l( P* a: G$ k- Y4 c4 Z - ;; Color a tile, draw linetype, and draw a border around it& A( o& |3 s, F. u5 g
- ;;' l" c ^7 S7 K- T* @
- (defun col_tile (tile color patlist / x y). |9 l5 Z8 |+ Y
- (setq x (dimx_tile tile))* N# R5 u" h& {: A* N( t
- (setq y (dimy_tile tile))
7 @1 p* d6 ^9 n9 E) @& w% C7 z$ a - (start_image tile)( z1 Z! B% J0 n; f0 ~+ E# s
- (fill_image 0 0 x y color)
: w& Z+ \. z6 z9 ?& @% r8 P, g# x; I - (if (= color 7)
/ o3 e7 `: |6 @# z0 ]; G - (progn/ K+ B2 g. V$ Z8 y. V
- (if patlist (drawpattern x (/ y 2) patlist 0)), G8 T& R+ S4 G a8 ]. H
- (tile_rect 0 0 x y 0)
' `! C& }7 C+ j- K7 m: K - )
, P# R) d! y0 t9 y - (progn$ X c. r; }7 ^5 ]+ V
- (if patlist (drawpattern x (/ y 2) patlist 7))2 F% e- s% L9 D8 O; [
- (tile_rect 0 0 x y 7)/ @+ J; I Q. P [9 T
- )
; i- P1 Z) J: G" p - )+ O5 T3 K; A: y& m' `4 J" o
- (end_image)
$ q' A; R% }5 a; u9 Q - )9 G' x! T3 f2 Q: l# m7 A
- ;;! Z6 p- M p6 l) Y
- ;; Draw a border around a tile
$ \' ]2 l% H0 N) I - ;;3 |0 h' m9 i& S$ }, C$ W4 W' J2 d1 N
- (defun tile_rect (x1 y1 x2 y2 color)
( R/ S4 ^) W. W8 j' m - (setq x2 (- x2 1))6 v1 O5 o1 b1 K
- (setq y2 (- y2 1)), r6 i. |+ o; i% N* x
- (vector_image x1 y1 x2 y1 color)
# f6 ^6 U; c. R4 V - (vector_image x2 y1 x2 y2 color)* A$ b) ]7 J3 N% d/ [
- (vector_image x2 y2 x1 y2 color)
6 S! ]) q0 [$ s; C4 ~9 f6 g/ C - (vector_image x1 y2 x1 y1 color)
6 x$ j- X7 R a4 A - )" h6 o. I+ c* X
- ;;
' u2 p8 f6 T* ?5 }7 e - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image ! d+ u7 {! T, L. M @: [ \) r
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a ' a' S! V2 n) Q/ d2 G
- ;; list of numbers that define the linetype, and color is the color of the
& ^9 V0 J) M% \$ Y- Q- a% k. y - ;; tile.
7 T6 ?) W9 d$ w6 K5 P* |2 }0 V - ;;
1 X& t! R" u' G, @7 x - (defun drawpattern (boxlength y2 pattern color / x1 x25 N( w: P: y7 O2 i" ?! X& A9 c
- patlist dash)% w1 s! z4 \+ Y/ F. S. N/ M
- (setq x1 0 x2 0)* G& h7 d+ ]1 ]* x
- (setq patlist pattern)
- Z5 c' ?1 z+ y( E( [ - (if (= patlist "CONT"): W, v D3 }& G5 E8 T
- (progn / J3 t, }# w& ~! K/ @
- (setq dash boxlength)
; V6 L( @1 t8 _0 E - (vi)! Q Y! l: e: F
- (setq x1 boxlength)
- T$ @) Y8 [, T- }, V - )
1 J" k' e! A4 i3 F" p' n - )7 e2 O8 @, e& B$ y. l$ D
- (while (< x1 boxlength)
! Q$ Q0 ?! U8 a( `) L: o- l - (if (setq dash (car patlist))( k3 X o3 n& d/ U6 }
- (progn, ^8 @0 D+ v! n4 A
- (setq dash (fix (* 30 dash))), p9 H) _1 A$ e4 E9 v& ~
- (cond 0 `) b! [3 U* T9 N0 A8 f
- ((= dash 0) 3 ~ H% k0 b; l9 S# A/ C
- (setq dash 1)
! ?/ i4 h7 O5 ]! q% X - (vi)
: h7 N9 o! K/ S/ Q% a) {) L( L) f" i - )
3 X3 I5 I2 `4 z - ((> dash 0) ( \7 V7 G6 X/ ~4 B" o$ a
- (vi)
: N: j2 n7 g8 K7 [2 S3 Q: N0 {& t - )
( |; B' B% S! V4 J - (T
: [9 ^8 J# q1 t. g6 I7 `, J3 y, U - (if (< (abs dash) 2) (setq dash 2))
/ V1 d. Q5 y, k% P( W) T - (setq x2 (+ x2 (abs dash)))9 b- E2 x& ?# h) [- Z. t
- )
3 u1 L% A% j$ c- h5 v& E - )
P9 J* M3 }0 J9 n0 x6 \1 d8 u - (setq patlist (cdr patlist))) H6 U- l4 i$ _/ O! V k4 Z
- (setq x1 x2): F, p0 h: N, y1 L7 j5 f
- )) v' e( ^1 L9 R, l: k
- (setq patlist pattern)
- e' b3 v, E8 A: [% ^) d5 v - )8 E) Y- h8 y9 L# K# n4 ^0 i
- )
! f8 l2 R( P& d9 s - )
5 J6 O; R6 }! e - ;;
2 x; B. v: G: T/ { - ;; Draw a dash or dot in image tile& i* R3 L( Y# V k
- ;;
1 O, z7 \1 R& E# z/ D - (defun vi ()
v+ u9 F/ x; [8 i1 C% S$ }4 E - (setq x2 (+ x2 dash))
5 Z( d `! t* U4 Z8 z$ S9 u - (vector_image x1 y2 x2 y2 color)
" |1 E0 G* t9 w5 B- ~+ k% f0 O1 } - )9 J3 {% S9 Z& [" n- t9 I6 N, L
- ;;
; Y$ E1 I) @: l: z - ;; This function takes a selection and returns a list of the color, linetype,
" [5 \3 N- @( o. L - ;; layer, and thickness properties that are common to every entities in the3 C0 R& Q7 S4 H, Z, o# L
- ;; selection set - (color linetype layer thickness). If all entities do not 1 U! i6 u& C9 {' ?" C$ B& B: E) I
- ;; share the same property value it returns "Varies" in place of the 6 e3 }' K G6 V1 y% s3 D" x
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
8 \ O. x- M3 B - ;;$ I2 A) @6 w, f! J" v
- (defun getprops (selset / sslen elist color ltype layer
/ Z3 ?- a4 y" u+ X: E' c - thickness go chk-col chk-lt chk-lay chk-th ctr)
1 i, S/ S$ v! y2 d - (setq sslen (sslength selset))$ c# [' T$ h" m0 @; _
- (setq elist (entget (ssname selset 0)))
$ |5 c1 \3 b* ~5 B# C - (setq color (cdr (assoc 62 elist)))* X/ ^* Y% R( k. ^, d) v N2 S, t2 e
- (if (not color) (setq color 256))
% c. S# o" A8 e/ A - (setq ltype (cdr (assoc 6 elist)))
6 P2 `5 c% x; ~1 u( B [ - (if (not ltype) (setq ltype "BYLAYER")). L: J4 K2 |, m3 B& G6 A
- (setq layer (cdr (assoc 8 elist)))
( T0 f5 R$ k2 s2 u - (setq thickness (cdr (assoc 39 elist)))8 Y5 R4 q* Q* l/ C. r7 ?) i
- (if (not thickness) (setq thickness 0)) P' W9 w) U+ Y( o0 ^
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
* Q& G( `& g) c& ~9 r# o* X - 2 S& n8 V. @: f) E6 t- J
- ;; Page through the selection set. When a property
1 D7 k m! O% z; ]; b - ;; does not match, stop checking for that property.
; w1 ]. u: O' Y* _ y1 o% k0 { - ;; If all properties vary, stop paging.3 ?& d8 F. L Y& {: M3 W
$ K2 u* \ v1 f0 K$ A. l- (while (and (> sslen ctr) go)6 z+ e7 H4 G5 i, p; V4 k: r
- (setq elist (entget (setq en (ssname selset ctr))))
% @ w# L* \' o$ d - (if chk-col (match-col))" V$ j7 e! @2 H9 e$ I/ h! P1 ^
- (if chk-lt (match-lt))- I( `# q* M! ~' n9 \
- (if chk-lay (match-lay))
+ D: w3 @% D' e2 ~ - (if chk-th (match-th))3 b$ z6 m& }) v& U7 B9 Q0 y
- (setq ctr (1+ ctr)); E$ ~9 j7 i6 f2 j/ V" E
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
5 O F& f' F* T# k; c - (setq go nil)
9 D# I/ N5 H8 w1 Y7 ~) C# T - )% ^. N3 P9 k/ I, `
- )
, d/ X! L- Y- U - (list color ltype layer thickness)
8 r' k* {; ^* `. B! J! }; K, L" C - )$ E1 | g+ r$ J! q
- # L9 W B# h6 L( t* H3 S
- (defun match-col (/ ncolor)$ B, y) H2 J! s" c" E
- (setq ncolor (cdr (assoc 62 elist)))& X! }+ ]" x3 p* f
- (if (not ncolor) (setq ncolor 256))7 y2 f- y: Z6 V" n/ s7 j$ y! [% a. a
- (if (/= color ncolor)
$ A( H; g4 I- j+ Y+ _9 _ - (progn
# V- {, \) n/ f. ^: p, `% p - (setq chk-col nil)- C3 |. R. k5 C, z
- (setq color nil)
4 l( G2 y8 j6 D$ g - )& ~6 K- o2 _* z- f! _- W
- )
) G: C/ K) c) }$ R& h I - )
0 D) \; J& m* d5 e2 ]
1 L' C5 m! I5 b6 \" H& \- (defun match-lt (/ nltype)
/ K$ X. ~ n+ B/ r% K7 ? - (setq nltype (cdr (assoc 6 elist)))7 J1 m! |" Y# b1 E# X
- (if (not nltype) (setq nltype "BYLAYER"))! G& w2 J/ e) W8 n: Z
- (if (/= ltype nltype)
' X- E1 {. S/ g- W( W1 @ - (progn9 ~% s: D6 m9 D3 {3 y/ H- J4 x
- (setq chk-lt nil)2 h" t! Y! }8 m& J6 s9 U/ O$ M
- (setq ltype "Varies")6 r; S) T+ i0 b" C W
- )2 D2 Y4 _3 Z1 X5 k# ~- F
- )
t3 j: b4 \: [ ^4 x2 D) g - )
' x0 _, H- n2 E% G' q - * X: |( u& p8 h% A2 Q8 {
- (defun match-lay (/ nlayer)0 f, k0 q0 H b. _ q6 T
- (setq nlayer (cdr (assoc 8 elist)))/ R: U4 t* S; H0 P( F; G
- (if (/= layer nlayer)
\, g) g1 ^: O% r a' W: p - (progn
; s3 D0 p2 |$ J$ P# ]: e - (setq chk-lay nil)( m2 o. M8 c3 s1 K
- (setq layer "Varies")) D* g% q7 n) P# D# X7 B
- )
% [* |* d$ G) ~8 L- } - )9 u8 K9 B# L5 e8 j/ A7 H# I
- )
4 b( r, u) L. w( N- i+ Z4 n) q
: G' A8 R: t' [6 Q# P4 d9 a- (defun match-th (/ nthickness)" @3 `% i3 w ?& W+ j3 _7 X; ~& e% Q
- (setq nthickness (cdr (assoc 39 elist)))
m9 E3 c% k# d2 C8 X! c9 S, E - (if (not nthickness) (setq nthickness 0))/ E& _: @* t! L f: d
- (if (/= thickness nthickness)+ O8 k/ M& n* c$ E
- (progn g1 P# ~7 P! `7 j- y/ Z2 U
- (setq chk-th nil)
8 ~( E% _2 @8 u; M! G Q$ {1 D - (setq thickness "Varies")' q) ~; C) C; x7 F; G
- )
$ g# s7 ]: x6 _* w d - )
% D" h( U* W: s4 g - )
2 W* u2 m" N. q9 E4 {4 x$ _/ ~
- l& c' N8 D. f9 \5 ^' d! h- ;;
* V: x8 u# N9 x - ;; If an item is a member of the list, then return its index number, else
- y0 a) O1 Z, k9 f( I. D! _% D& o - ;; return nil., B3 c* {$ V# `. s
- ;;* ^( V( [ o O, f" w; p
- (defun getindex (item itemlist / m n)/ b6 D2 u: X9 I5 k4 w" _1 c
- (setq n (length itemlist))
1 r( H( O+ r4 T m - (if (> (setq m (length (member item itemlist))) 0)8 a8 S- V* k0 p! d" g7 p" u$ X' H7 Y
- (- n m)* y( ^6 ?, z$ k6 |$ O+ j! J
- nil
9 z3 K+ ~& s7 E V* C' j - )
! {$ v+ _+ k8 _# o0 A! h# Y/ y - )
z5 D" v# G3 z3 } - ;;+ A5 D8 i& K! N4 ^8 n
- ;; This function is called if the linetype is set "BYLAYER". It finds the
3 ]+ ~- h7 l$ V# O: Z - ;; ltype of the layer so it can be displayed beside the linetype button.2 V* T2 G8 P- s, I8 D
- ;;
7 Z1 ?; d j ^& s$ U - (defun bylayer_lt (/ layname layinfo ltype)3 p U1 L5 m2 U3 h" H" _+ U% {0 K" h
- (if lay-idx! {2 p% P6 r: C9 H% ~! L
- (progn
# ~1 R: Y; K, T0 [$ A( ^+ a+ q - (setq layname (nth lay-idx laynmlst))
( S" ^# N% J: g" r - (setq layinfo (tblsearch "layer" layname))
! l2 _1 M2 r/ r# d# r6 G2 o" k9 | - (setq ltype (cdr (assoc 6 layinfo)))
$ c. [7 m+ U8 @7 C+ `' J - (strcat "BYLAYER (" ltype ")")
. B+ F6 Z) ^+ v8 Z - )4 m! B8 L6 j% a- S: c5 P( \! \. M& m1 j
- "BYLAYER") ?' [3 c2 k7 _ V, E
- )
! b. M5 [$ g1 b' \ ^' r. \ - ); S) X4 J' H9 m9 j( J
- ;;6 e- |$ c% ~0 c
- ;; This function is called if the color is set "BYLAYER". It finds the ) x+ R' j+ ^2 R0 U) T) \% R" f- x( @
- ;; color of the layer so it can be displayed beside the color button.- ?- `1 N- J5 c1 R
- ;;0 w, w# S; N) B( N# n, `5 Y' i
- (defun bylayer_col (/ layname layinfo color)
8 j) x# d- [' ~5 o1 J. y; } - (if lay-idx% F. ~& ?6 o. j u: u+ f9 O
- (progn
2 N0 _4 K5 n O9 g9 x - (setq layname (nth lay-idx laynmlst))
2 o% ?3 Z7 R5 r) A) r - (setq layinfo (tblsearch "layer" layname))
4 b1 T; @. t; f( r. n. y- s - (setq color (abs (cdr (assoc 62 layinfo))))+ J5 Y7 t* N$ @
- (setq cn color)
$ }# X3 N6 ]# d' z h( x: A - (strcat "BYLAYER (" (colorname color) ")")9 D# Z8 F! L H7 A5 z4 |: X
- )9 S' i4 _2 A! ? G6 w
- (progn
/ F9 r- @5 ]" b - (setq cn 0)
8 u% V, h M/ ~7 d7 i& ]& m - "BYLAYER"
' |; u" [* R4 O6 E - )
& _3 I! C. U% k; P. y; F - )
: c; G& q/ I& x ^" T6 Y7 G - )
- q9 I0 W: U+ H/ C* n2 ? - ;;5 j9 N9 ]9 Q0 N/ f
- ;; If there is no error message, then close the dialogue
* l* S0 F) R) _9 s, e - ;;
8 n( i0 {( w0 n3 l, t9 k- p& B8 c, N - ;; If there is an error message, then set focus to the tile
2 A% B3 y1 O9 v0 x - ;; that's associated with the error message., r5 X+ C8 g9 Q- S9 D8 r
- ;;
! l' ]5 L5 i& o0 } - (defun test-ok ( / errtile)
( W* [ O$ W, i: }3 _3 E - (setq errtile (get_tile "error"))
, [+ g/ K/ g `0 s - (cond! d! t# `( W& a# `
- ( (= errtile "")$ C K, i( {5 S# T
- (done_dialog 1))/ M7 M, R3 D) x" r0 t
- ( (= errtile "Invalid thickness.")
* T) J$ k2 {, w5 f - (mode_tile "eb_thickness" 2))# E0 @2 Z6 o+ J
- )
0 o) a. r, a* U2 N' d" q - )
: F3 j% h3 D) h h. _ - ;;
9 y, S2 o' |+ \2 ~( d+ G$ h. I - ;; A color function used by getlayer.! s: F/ ~. ~3 N
- ;;! D7 `3 t1 h& m6 E
- (defun colorname (colnum)6 m* c& a( X9 w8 P) d
- (setq cn (abs colnum))
' |. I- s$ i8 w - (cond ((= cn 1) "red")
. I* ~1 H5 n6 g& t; l5 j) T. f - ((= cn 2) "yellow")4 P% Z& q1 {1 l0 @
- ((= cn 3) "green")
. {" U( O! G0 r' I - ((= cn 4) "cyan"), f8 @2 l- E4 L9 x
- ((= cn 5) "blue")4 p) k' b: G) p* B z+ F$ U
- ((= cn 6) "magenta")) w' W2 d c% d3 h- Q
- ((= cn 7) "white")
; |' f% W! j. |9 j9 ], O - (T (itoa cn))2 t0 V: w$ M7 H& @' f) ?
- )- }9 F! ?9 N+ M; ^. j4 v1 j
- )
' `/ W) L5 H* _5 ^, v; z. } - " J3 n9 ~& M( J
- ;;; Construct layer and ltype lists and initialize all, i) u$ ?7 e& F C, x0 `# W" J) ?
- ;;; program variables:& M# J) c, N8 E( l
- 1 w& J3 G8 B' ?) Y# N" s' W5 m
- (makelaylists) ; layer list - laynmlst
j$ A9 P) R2 s6 R# D; Y - (makeltlists) ; linetype lists - ltnmlst, mdashlist9 `# h; X* R. s( w2 w3 _9 y
- ;; Find the property values of the selection set.2 A: {* F: O6 k4 e6 [, t
- ;; (getprops ss) returns a list of properties from; I! U; g) T9 P5 p% G
- ;; a selection set - (color ltype layer thickness).) I, w) Y- u! q2 j8 _- R0 t. n
- (setq proplist (getprops ss))7 y/ M% n, T2 L E+ s7 C& A
- (setq ecolor (car proplist))3 \; T9 G, U+ s" y) |' q
- (setq eltype (cadr proplist))& L' y) _3 a8 E( e6 p2 q
- (setq elayer (caddr proplist))
( V% R7 A1 {% ~. m" V( h7 R - (setq ethickness (cadddr proplist))
$ `2 U6 y' g6 h2 d S* M - ;; Find index of linetype, and layer lists" S1 ]( t- z; N' D0 K4 F* n+ `0 x- v
- (cond' r, n4 A! ?# [' R5 u2 [
- ((= eltype "Varies") (setq lt-idx nil))& l! n4 A! J8 n. y- X8 p
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
$ |" F& l- `/ t% B+ w( i - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst))) y. D( ^6 h" e1 T
- (T (setq lt-idx (getindex eltype ltnmlst)))( q% M3 K1 P6 m/ D. A: w1 P- @
- )9 ]) v l- t6 m
- (if (= elayer "Varies")
U Z8 \( s* d - (setq lay-idx nil)
* s/ V4 {) h# A4 j: s4 O - (setq lay-idx (getindex elayer laynmlst))2 l7 @5 W- n# Z S3 |: x2 m' R0 l
- )4 h! `7 V- r# w
- (if (= ethickness "Varies")
9 s# t* {6 ~. A4 R - (setq ethickness nil)' ]9 ?/ C$ [6 y7 |
- )
% G0 ?$ P5 {" z: ?) K' {( w
, K7 Z) K9 ]: C5 r- ) ; end (ddchprop_init)
) T$ M- j, J# Q
: I J( t- |, W0 {- ;;; (ddchprop_select)
% O2 y: s- O8 M# U, ` c; | - ;;;
& x4 K4 p6 S' c# \' o: v - ;;; Aquires selection set for DDCHPROP, in one of three ways:, J% C) M2 E1 u+ E* `
- ;;;# b" M- y1 o& c, A* h
- ;;; 1 - Autoselected.
; I; M6 V* q) p; V6 A - ;;; 2 - Prompted for.& R, p3 F$ i! S
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )1 |+ X) K3 a5 c8 _- b) M0 R
- ;;; \6 j; }( F/ ] e8 J
- ;;; The (ddchprop_select) function also sets the value of the
( V# R9 e0 X/ E) u+ y - ;;; global symbol AI_SELTYPE to one of the above three values to
( N7 T5 X0 Q' q: _ - ;;; indicate the method thru which the entity was aquired.# F1 U+ ~1 ], Z5 e
- 4 V$ H6 B3 `3 N& y! ]! t$ q
/ p0 U5 o; W" K% K2 _- (defun ddchprop_select ()) k! M. g* ]( @# k0 t8 E
- (cond, v1 j1 H: y1 E5 l0 O, z
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
$ S1 j$ d6 a" a" ~ - (cond ; (ddchprop) as argument! T7 p; Z( o* I8 v
- ( (not (zerop (sslength ss))) ; If not empty, then/ x$ M2 @; y6 X. q/ b& K
- (setq ai_seltype 3) ; then return pickset.1 D% D r2 T9 s/ V; Q$ }
- (ai_return ss))))
5 k& q; x1 V. D2 e4 R, g - $ E% J# ~3 c$ d5 T
- ( (ai_aselect)) ; Use current selection
4 X' v0 X# N! t3 r: T8 l - ; set or prompt for objects! i3 a; q4 b! Z% j9 J+ d5 V
- * R( ^/ q& P" D, ^
- (t (princ "\nNothing selected.")
5 q: a4 [# \$ ^+ X' c - (ai_return nil))% C" M( G% p, g! I; E" D
- )
" E% W! ? M$ M- g% N/ B - )% H4 M1 o% z* S& [& i
* e3 E8 y; g- Y/ |+ P: a- ;;; Define command function.& f3 A1 x1 w: V
- / J" x$ s, u6 ]# V
- (defun C:CH ()# ?- c1 o/ n B
- (ddchprop nil)
% z; f4 y8 k: g$ o - (princ) @8 t3 P2 f& Y* [
- )9 f6 r4 O9 c$ P: h" q: R4 {
. r4 |$ M/ ]$ L
3 L) y% [& p* A6 P0 ~- ;;; Main program function - callable as a subroutine.
& G3 \! [& h, u+ h - ;;;
+ U9 B' X1 q' r1 V0 s. P* ^ - ;;; (ddchprop <pickset> )
# C8 Q3 T2 J6 r0 V/ V! W& Y5 J - ;;;
' F4 ]3 c o2 a: n- T8 H - ;;; <pickset> is the selection set of objects to be changed.
6 Z1 `! E1 @4 l& n* V: u' I f, u - ;;;; l7 l/ p5 Y; d8 q
- ;;; If <pickset> is nil, then the current selection set is2 P9 j! G$ {+ f% T4 n. N- F* N: l
- ;;; aquired, if one exists. Otherwise, the user is prompted# ^1 d) f7 G7 [+ o0 T
- ;;; to select the objects to be changed.
6 m0 Q- M% m- C - ;;;. x+ i! d2 Y6 Y- Z0 L
- ;;; Before (ddchprop) can be called as a subroutine, it must
( v) n$ ~& V8 n* L0 b5 ]5 j0 i - ;;; be loaded first. It is up to the calling application to
2 b2 ]/ S4 ]: B/ N' W7 L - ;;; first determine this, and load it if necessary.
- Y; r8 f6 k8 a - % G0 V( Z, ]0 w' g$ _4 l
- (defun ddchprop (ss /4 K1 _0 a, S/ q$ S) J" x% ^9 q+ W
- ! [1 m. G7 A6 U6 _1 M- w: [) F5 X
- add-mdash ecolor ltedit_act s/ d. }0 _( C5 r9 ~/ O
- assoclist elayer ltidx selset/ ]' c( Z2 ^8 p7 k7 D, k* q! W: |0 I
- bit-70 elist ltlist set_col_tile
0 w8 T, z* L5 S N- P" E3 l - boxlength eltype ltlist1( I4 h3 \+ A* p+ x( b, p( B
- bylayer-lt en ltlist_act sortlist
" Q% \; _6 @5 @$ _* n F. r: Z - bylayer_col ethickness ltname+ i( E+ {9 x e( y" e
- bylayer_lt fchk ltnmlst sslen2 G' e- x6 X: p' A4 e- x+ ?
- call_chp frozth ltvalue templist/ n; a5 Z7 h: s9 ?3 P! t9 a
- chk-col getcolor ltype temp_color9 J( s: Z+ g- f! o
- chk-lay getindex m test-ok
. G* w- D2 M5 q+ k0 B: G - chk-lt getlayer makelaylists testidx
4 E3 g! S% A& w# M" o& u - chk-th getltype makeltlists testlay, _& e) Q! O, u% H# w7 G& ~+ E
- cmd getprops match-col th-value" P: {: `# w) X/ Q
- cmdecho getthickness match-in thickness
0 k2 [& p* g; m) c - cn globals match-lay tile8 I: D9 A, k4 U5 J% T4 i x
- cnum go match-lt tilemode6 q7 B, R; {. _' e$ Q( H( M ^
- col-idx index match-th tile_rect" q, h; V0 p& _/ _
- colname item match_col vi6 a9 {) `; L$ a( Z; m3 u! T
- colnum item1 mdashlist vpf
7 U- k, a+ D7 t: W& i2 z - color item2 n vpldata
! c& N& n. f# a, y+ w - colorname itemlist name vpn0 H3 H. v( ?: n) E3 g9 L
- col_def lay-idx ncolor x
. Y8 q0 j. @" H& j1 W8 b+ x0 ] - col_tile layedit_act nlayer x1; R! a5 m8 I" y! Z& O
- ctr layer nltype x2
: }6 Y1 { T2 g+ |! ]0 j2 x- N7 c - cvpname layinfo nthickness xdlist
- Z$ \7 J+ _+ M" m+ } - dash laylist off y1 H' H7 d6 p. n7 R+ |- Q
- dashdata laylist_act old-idx y1
: k+ _1 i. }2 f1 H0 B - dashlist layname olderr y2! ^6 d! H; r% {" o! s$ a' e$ e
- dashsize laynmlst on undo_init
# s5 v6 t# b* b! R - dcl_id layvalue onoff
( p ?1 C+ T6 H. J- w! u) z/ t - linetype patlist
# j6 Q! k) z7 c, V5 W1 `) k3 g - ddchprop-err list1 pattern; m' h4 c5 g! {# O
- longlist proplist
/ ~6 q) W, B8 Z) Q; |* S, S - lt-idx reset-lay! M; ]' j+ r& }/ E% V$ w2 ^$ f
- drawpattern ltabstr reset-lt7 k4 p# L- L, Y4 ^# u; h" z
- )
1 \/ t# Z1 N. J- f( r9 T) p - 4 H& |3 `- g( @
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho" F8 o8 `8 n- s/ l }
- old_error *error* ; save current error function3 T) \0 M" C9 Q- O& i! V2 U8 }
- *error* ai_error ; new error function
. c& }4 T! E) V# h! o0 q# k - )! T9 P2 I: ^4 ?( R, P C/ d7 v
- 6 @5 `5 x: K3 R$ T1 p
- (setvar "cmdecho" 0)% w4 Y( h0 i2 r v" E
- * I8 U" L1 M, z* n- f5 j; _* D) J
- (cond
! P8 x* A+ g% R2 L" I% x. P - ( (not (ai_notrans))) ; Not transparent?/ c r) }" X4 [* P; ^
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
4 a, h: H9 S; i - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?
) k" I* `! ?. t5 n - ( (not (setq ss (ddchprop_select)))) ; objects to modify?$ o y7 d1 j5 V! p8 [2 x: I. s
- & U/ E1 Z& q w, O* R7 I3 V
- (t (ai_undo_push)
) B* I) E9 K* @, ~ K. s. v7 X$ g" r - (ddchprop_init) ; Everything's cool,' U+ g) C+ g/ d4 K3 d. u
- (call_chp) ; so proceed!) d3 M+ k0 {# |7 {
- (ai_undo_pop)
3 j/ k$ E9 D" r! K: w/ I; a - )
" S7 o5 J+ {, b - )
# H% u1 G1 G+ I -
: X* A6 `) ~7 S9 B, O - (setq *error* old_error)
+ [! R7 H6 Y Y - (setvar "cmdecho" old_cmd)
3 |1 y% s8 H4 |: @2 B - (princ)
5 d% J; E0 L5 K. f6 L - )5 P; M; p! _# R3 I
. C2 g9 y; c* Z" q# a6 k' A! G- ;;;----------------------------------------------------------------------------. R6 i8 I' P) m2 O
6 @: C3 U @, H( W' Q2 _- (princ " DDCHPROP loaded.")- d1 {1 C W+ O
- (princ)! R5 M8 a, g7 E! R0 o1 W
% s2 R% C% u( a2 x$ p3 N Q- ;;;----------------------------------------------------------------------------7 L5 K" k4 k2 b* U+ }: J" K
" c) X1 `: b4 h* f0 f7 ?4 {& ^- ;--------------------------------ddmodify.lsp----------------------------------
+ B( X. R; W! T - ; Next available MSG number is 111! ^/ p; U8 @ r" K% t [
- ; MODULE_ID DDMODIFY_LSP_
/ \3 v' R9 U' C8 x+ D9 M/ V0 w' A, C - ;;;----------------------------------------------------------------------------
" p3 h; B/ Y( C6 W5 o - ;;; DDMODIFY.LSP
' K8 Z/ Q) t6 g* q2 o - ;;;
5 s9 @1 w7 n( o \ - ;;; Copyright 1997 by Autodesk, Inc.
, b5 K6 h1 e1 \/ I8 } - ;;;
U. [& }% T1 A- `: } - ;;; Permission to use, copy, modify, and distribute this software% Y* |7 Z! d% h) c
- ;;; for any purpose and without fee is hereby granted, provided
. H i! o3 G( n- Z( ]! q - ;;; that the above copyright notice appears in all copies and
% Q3 ^% x. X" {3 n2 i% }! m0 Z/ d - ;;; that both that copyright notice and the limited warranty and
# ^8 m' v+ w T. i - ;;; restricted rights notice below appear in all supporting
: d3 e2 }1 @, H. V6 c$ V, |! g - ;;; documentation.
" F4 O5 Q: {- V - ;;;
7 y. w) |$ i# g2 Z& Z! C - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
4 r. Z3 \7 Q, G' Y5 E/ w% X' h0 V% B - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF3 Y2 s% B4 J; c8 I) z3 I, \
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
\% F7 K! i- z+ A - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE. {2 M2 Z4 l8 B" X
- ;;; UNINTERRUPTED OR ERROR FREE.1 m) t0 L, H) a1 E/ q* M( G
- ;;;
! k! N$ Y0 M, H2 i' b1 r1 v - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
/ }* ?4 M# U5 f" z; {0 Z; w7 t - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
) h2 S* Z3 `+ O, A \& U9 D2 [0 t - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
2 l) I$ p& B& ~, { J0 O- @/ h4 u - ;;; (Rights in Technical Data and Computer Software), as applicable.& B% U5 U- D8 b0 j, V( A. O0 h
- ;;;
! N- ]5 g" \3 x$ ~; \& i I/ Y3 K - ;;;.! ^" J3 d: H0 N9 U& D1 E/ J" k
- ;;;
- w; w+ T5 {8 R$ \ - ;;;----------------------------------------------------------------------------
. i! f6 S7 b! G% s8 [7 b% h7 Y - ;;; DESCRIPTION
I& U' j! c( R" l- _! B6 M) ? - ;;;$ S$ a3 e: _8 I) w' h/ B
- ;;; This function allows the user to get a listing comparable to the LIST
& a( d3 @: ]) o }+ k - ;;; command for most objects. In addition, most object fields in the
2 c, c/ G7 h; ~7 P( g9 U) B8 @3 U - ;;; dialogue box are editable. Points can be specified dynamically by1 ?1 ?1 @6 O$ U. E; X* g4 M/ w
- ;;; temporarily dismissing the dialogue box. Each object has a unique
# ]) d# s6 S. l6 Z+ T$ \% C( r( W - ;;; dialogue.
$ i' @3 A4 G% J6 f2 T% v. t! J - ;;;
9 Y/ N/ h- g$ ~! x8 J7 a, Y - ;;; Naming conventions: u0 r; m6 P: W% s$ P1 x/ C
- ;;; Long function and widget names may use an underscore "_"
& U B" l8 S" c; n- |+ c - ;;; in their names to make them easier to read, long variable
p* G, ^1 o* W8 _6 Z - ;;; names use a dash "-". [9 Y* o# J' R1 |% U5 o
- ;;;----------------------------------------------------------------------------
/ s+ a1 S7 E s% t' N5 r - ;;;----------------------------------------------------------------------------
* c5 c$ l& k( l) Q+ y' o6 L8 Y, j - ;;; Prefixes in command and keyword strings:$ L% P5 Y5 }2 q
- ;;; "." specifies the built-in AutoCAD command in case it has been: `% [' R3 @% H0 R/ x* D
- ;;; redefined.
6 F, R& g! b6 [& M @. L - ;;; "_" denotes an AutoCAD command or keyword in the native language
7 u# K% n* T7 a; ?6 e y% w' K" t) e - ;;; version, English.' f' i( {( P9 L/ E4 e* C, { o
- ;;;----------------------------------------------------------------------------
6 P: w5 H" H. X4 }) e! f% [8 z5 Z - ;;;
0 ^: G) P; F& G* ~" f6 u3 y - ;;; Avoid (gc)s on load to improve load time.
; i. P/ L" a% T. q+ t& N - ;;;
+ G& o; j) B; ~/ ?. s0 W - (defun do_alloc (/ old_allod new_alloc)
' n U' K M+ g - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))) L) u; I2 E# Y
- (expand (1+ (/ 17000 new_alloc)))5 n) A* d/ Y' L; L- s1 H
- (alloc old_alloc)% v8 u, [& \2 w1 M8 u4 x
- )* P; l! w2 I5 z' F9 C; o, {# }- t1 H
- (do_alloc)
6 K- |1 U% `" M: c/ }$ Q - (setq do_alloc nil)8 `! z) m# J- _' G; x( Q8 {
- - |. O* y- x; D4 F
- ;;;
" ~, K4 ~* E1 g& Q% Q$ y" X+ h/ s/ ^ - ;;;
( r# ^! M+ o* i/ x: T/ X - ;;; ===========================================================================
$ A, B( C! I; n- T; a - ;;; ===================== load-time error checking ============================
( a+ s4 r- C+ X9 F6 y - + ^; `- L+ Y4 {) A, K6 H$ s
- (defun ai_abort (app msg)
+ N- ?: y1 |8 [2 s# F4 h - (defun *error* (s)
2 A# ~0 g' D0 ]! }5 b2 J- R& A - (if old_error (setq *error* old_error))& `" N# `( L: r6 f
- (princ)# T) s% x) b7 h9 u$ L0 u
- )! R( q4 d5 `6 l3 J2 W
- (if msg
- X. q( G2 r) N6 m! g# n - (alert (strcat " Application error: "
% X% [8 y" p$ D$ \; q - app
z5 I& f$ f/ W" \$ V- c1 z7 D - " \n\n ": r5 S% j9 U, N) L* T
- msg
& ` [, f+ m" @8 }1 \ - " \n"
5 g: U: S) m, y8 x. v- ?9 T9 E+ _ - )
( P m) L* H$ _4 P- e' a& O3 R - )- ~9 }0 g" o. G4 b+ H
- )
! Z* }: e& Q1 h% r& v K! g - (exit)) W" q5 v+ P4 g
- )1 b# a3 _$ q' e S0 u
- 7 m h; n; o5 ~/ q0 \6 ^9 E
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,& h' s' ?7 r* z: O
- ;;; and then try to load it. If it can't be found or can't be/ e. X9 H1 t$ R, g! A
- ;;; loaded, then abort the loading of this file immediately.
; g8 i# V( I+ c# n* k9 a. q - - L5 l% Z! V% Z; O4 m6 q7 F
- (cond) L3 y4 O. d: T! ^& S) d
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.- w+ a8 d! C6 Y4 s s
' [$ Z5 R( v$ |4 \- ( (not (findfile "ai_utils.lsp")) ; find it* m) P5 R" y5 c9 }# _
- (ai_abort "DDMODIFY"
/ ~' ?# c/ A, ~. k8 ~ - (strcat "Can't locate file AI_UTILS.LSP."* X2 b ]% w1 g- e& E% g
- "\n Check support directory.")))" U& }$ C9 u+ M
t, H* ^$ z+ F0 |- ( (eq "failed" (load "ai_utils" "failed")) ; load it2 L' {% o' B: E" |1 O+ S9 w& a$ w
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
- y5 L* ^. W; l# [5 V2 h' L - )7 ^. k, [- J0 C& W0 u7 }
- ( ]' ]# Q$ F6 K1 P2 N
- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can! ?+ O. b% f/ h! V
- ;;; be assumed that all functions defined therein are available.
6 X1 C% S) e6 d5 Q; B - 5 q& m+ {: i/ l9 `" a8 S. E2 s
- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
& P1 V, {) C+ j: w - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
, h/ \) H% F& J8 o6 O- ? - ;;; does not abort the running application itself (so that it can, o3 Y5 D- L! V
- ;;; also be called from within the command without also stopping
( w6 t; s* o! q# v' ] - ;;; an AutoCAD command currently in progress).8 c. v* F* x8 {; ]
- ! g* ~4 z5 T1 i& |& n
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
2 s" `1 f1 G. p, j* @ - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses0 t& ?. j; u* x5 V
- ) ; ai_abort's alert box dialog.6 r' U, U. I' I
' I$ j- s! P" O5 @, n- ;;; ==================== end load-time operations ===========================5 A, A* i+ Z+ Q0 W; }
N0 D* ]+ z* l' Z) G N7 b- ;;; global variables
, H7 T- r( _: F! [+ R& M1 x
5 M6 L3 U. H9 W% M! F- (setq hatch-elist nil)* a! l- I, d! J# F8 i) Q4 V+ Z& V
! b( F, E* O2 \0 Y+ `9 E/ Y- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
6 G0 C' i4 \9 h, k& M; ]/ _8 y6 n: s - ;;; assumed to be available.3 @+ [1 K* }# I/ e/ v; t
5 q& S9 A8 q, \- ;;; Define and encapsulate all subroutines that are declared- V' d/ C. M4 l1 |9 a0 o
- ;;; locals of the (ddmodify) function.2 o) q* |+ x a5 F5 r
2 w- I5 [; d2 g- (defun ddmodify_init ()# a2 u0 N6 @4 A, `/ {! {" |: e
- ;;
# C8 h& L/ V: W/ | - ;; These three functions modify the enitity list for common properties. Since
) r& w$ R r" ]0 j - ;; color, ltype, and thickness are absent from the object list when they are" c! _0 t! E/ e' p, [' A: S
- ;; set to their defaults (i.e. color = bylayer), a simple substitution using
& z: z# B) C+ b( P& i/ N0 x' D/ m - ;; SUBST is not possible." h; O/ n7 d5 q- O' a' _
- ;;2 g1 I I" k3 _! ~ x' t
- (defun modify_properties (), K- B: b3 G% v) t; A: ~
- (emod ecolor 62)( Q6 m" n( R* w
- (emod eltype 6)
* v: `2 O% k9 t1 F ` - (emod ethickness 39)
- l0 z8 N+ F) T: d) D ~2 N# V - (emod eltscale 48)7 o6 x, H: I+ |- F0 Q
- (tempmod elayer 8 nil)
0 I- p0 n0 I5 L& ] - )
2 g# Z8 k: v4 V$ j) `# o - ;;" @! z/ z5 X' z
- ;; This function is used for modifying common properties of the ACIS/ [. n5 c1 ~: x3 t& ~
- ;; based geometry objects. Thickness is not valid for these objects" h9 Q& `! P% k0 J4 P9 O
- ;; so it is left out.+ ^, a3 k4 l- e8 [# H
- ;;
4 U/ E. S2 ?2 g - (defun modify_prop_geom ()
7 w3 a$ y8 i) D9 b2 i - (emod ecolor 62)
- S. A7 I+ l% s) {' n( v" Q3 p$ i6 U - (emod eltype 6)" v/ M9 D% a9 j* N
- (emod eltscale 48)! b! o7 G) a& F& E& N1 f8 _
- (tempmod elayer 8 nil)) v8 w. ^3 D5 p" i
- )* H; Y8 I" j0 v( x/ B( l, s* A
- : u. ]& c! E& g9 }3 x5 h/ F
- (defun emod (value bit)
- g3 X% a" j$ U* o& ` e - (if (= bit 62)! Y6 M3 G( @' q3 L! n. o& D
- (progn
2 Q/ A* \* e( m - (if (or (= value "BYLAYER")
8 U. H2 P* H+ L: n5 L2 t - (= value "BYLAYER")) (setq value 256))
9 l0 r/ P! V7 i: M$ ~ - (if (or (= value "BYBLOCK")
& z3 G5 p: v, H8 R - (= value "BYBLOCK")) (setq value 0))
* s# F7 Q; L' c k - )
6 X7 L b, q! N% k! ]# D/ X: N; ^ - )0 x" [$ t/ P) Y
- (if (setq oldlist (cdr (assoc bit elist)))3 E7 G# C, {1 X q, m n
- (tempmod value bit nil)
) b7 I- d' ?2 n4 I2 f) {9 f& V - (setq elist (append elist (list (cons bit value))))8 o; B4 e3 S; `
- )
) y( M4 ~7 c0 u- u" [5 L5 s - )0 W6 a! `4 x& _3 e( V/ L+ x- x b
- ;;2 z$ s4 q( e& ?/ F8 j
- ;; Resets object list to original values. Called when the dialogue or) ?6 b& H! [/ m4 l# d
- ;; function is cancelled.2 v' m4 p2 N; E" g$ D/ B4 Y, b
- ;;
+ P; p7 X# \, j* J; j - (defun reset ()
7 D4 y s: h; t, z; U: M - (setq elist old-elist" Z! G/ Z! n9 p$ G9 M5 a8 S
- ecolor (cdr (assoc 62 old-elist))/ C4 \0 {# S2 d4 P; J# M$ w' M
- ethickness (cdr (assoc 39 old-elist))
9 o5 d1 t7 Q! D# i6 m' r. e- t3 u - eltype (cdr (assoc 6 old-elist))
5 W! v+ l( u( l4 G! m4 b: O7 w5 b" d - elayer (cdr (assoc 8 old-elist))
3 G A5 r3 U- n) Y - eltscale (cdr (assoc 48 old-elist))
+ F4 I8 k/ E9 r* f' j* P. c - )
0 t1 e m# D$ I! [' c, A. P# N - (if (not ecolor) (setq ecolor "BYLAYER"))
9 k. q0 z/ X4 ?# B! F - (if (not eltype) (setq eltype "BYLAYER")): D l2 A0 {# g# E0 Z( P
- (if (not ethickness) (setq ethickness 0))" S9 M0 t. |- M+ Z
- (if (not eltscale) (setq eltscale 1))+ j6 k& f, ~6 E
- (modify_properties)
& r) U$ {' U/ e; E; l* r - (setq reset_flag t)3 M0 J) l) f9 Q- v t8 I
- (entmod elist)0 M. _- K3 n2 c+ I' f8 H
- )$ r/ L/ F, A, o
- ;;8 V# C- S% |( S* Y; ^8 t+ Q
- ;; Modify object when dialogue is temporarily dismissed to reflect latest& j+ `% p2 k& ^4 A
- ;; settings of dialogue. It converts the point from current UCS coordinates to
* c! l8 B+ N0 O; { - ;; the proper object coordinates (world or object).
" u# r3 E% [0 G( e, }& b ^ - ;;, C ~, n+ ^ ^5 U" y
- ;; Arguments: value - in current UCS coordinates
1 z5 f0 W3 w2 j* E - ;; bit - object code (i.e. 10 for start point)1 m7 _. p2 r/ m5 u& G L* A
- ;; ptype - point type 0=world 1=planar
! j- w1 S J# o- A - ;;- s: ~# l4 a3 e( \
- (defun tempmod (value bit ptype / newpoint): D0 k' ^( P: x
- (cond2 r* i& N% \3 t2 B$ Y2 ^( d4 d
- ((= ptype 1) (setq value (trans value 1 ename)))
2 b( t% [: e' o/ ^/ ^0 N D; V - ((= ptype 0) (setq value (trans value 1 0)))
0 q/ r5 J+ G5 _3 M" P - )
: h4 ^& |( l) p. l- r) j4 @ - (setq elist (subst (cons bit value)
) Y4 J) P. U( N& i) n! o% t$ J - (assoc bit elist)
9 A: P4 f/ Z! ?7 n" j4 ^ - elist
/ K/ L8 i0 B! _0 k. [1 M% Z) A - )/ U3 R6 s/ m _: P
- )
7 T2 R4 a' Q2 U7 f. D - )
9 }. p1 x- b+ C/ Q) u$ L - ;;
+ _* J3 ^' x1 u* A, @; @ - ;; The following functions are called after a dialogue has been temporarily- E/ o; E$ ~, ]" S
- ;; dismissed and the user is selecting a point. If a point is selected the
% E1 @' w! ]7 `9 ^ - ;; object list is modified and new X,Y,Z values set. If no point is selected! O6 E# o! |& b( X- ^
- ;; (null response), then the point is reset back to its previous values.
3 G* @( A* ?. o7 x - ;;
8 c6 @) U* N- d0 _/ t6 }0 k+ ~6 a - (defun ver_pt1 (ptype)
! F* Y2 |4 ?. N7 T3 b7 Q) a - (if pt1: }5 S( p. O% I" q* t/ e" K! x$ f
- (progn8 Z& R/ t1 ~, H4 }1 `0 o
- (tempmod pt1 10 ptype)5 ^$ I7 ^" L, b1 t8 [
- (entmod elist)
# X1 t. G" r% o2 g9 l! M( f - )
' Z/ C' R, b6 f, [4 ]1 q - (setq pt1 (list x1 y1 z1))
% g y7 ]8 V) i8 @5 k, h! x. d - )
# z. c3 o( m$ c: V - ) ~3 t1 q8 H' Z& r/ e2 f. Y* W
5 D: Q$ f7 v W3 a" I0 \! p- ; (move_pt1 <ptype> )4 T( q1 x" K6 `# y8 s: m
- ;5 {7 l2 l2 V/ h) |- `
- ; Called in liew of (ver_pt1) to translate block insertions which- d% D1 h% U0 ?+ W( a5 m* a
- ; might have variable attributes attached to them. If the distance
1 ?5 G1 d9 {- [, ]( ~7 d$ x* p - ; the block is to be moved is < 1e-6, the move is deferred.
' g% c/ c' e! e# N/ ?6 M5 R8 C - : a' e! _% Y+ J: G. N
- (defun move_pt1 (ptype / basept hi)
: o8 Q m# Q1 | - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
+ ~6 x5 x5 R5 n! j5 Y6 Z- |: \ - (cond
2 z/ k0 L3 _# _/ ?! P - ( (not pt1)
) i( f; [/ Y3 t - (setq pt1 (list x1 y1 z1)))5 s- q m4 u/ T* o
- 3 h, F) f" V5 Q# Z
- ( (> 1e-6 (distance pt1 basept)))
/ f1 F) {3 g {0 i- D5 K R c
9 R8 n: g" I" [! {/ v- (t (tempmod pt1 10 ptype)
! Y9 c" M1 J; Z( K( ~" f- m' ^ - (setq hi (getvar "highlight")). Y0 w1 W; H) m/ q
- (setvar "highlight" 0)
8 l1 e0 m1 d1 U" S( r3 Y - (command "._move" ename "" basept pt1)( Q1 J# k% O: T6 ~1 C8 _
- (setvar "highlight" hi))
5 n( @9 w4 F7 m/ B9 W - )
6 _- J2 N7 i1 R, F; J# I - )1 s* q& o& F& t7 y0 x
- , z# S+ }+ h. x5 I2 G; L* d0 L: G
- (defun ver_pt2 (ptype)
( z a9 h" Z8 K. q - (if pt2
9 b7 I: @9 T( Y7 R - (progn
1 u0 j5 E, F. ?& l | - (tempmod pt2 11 ptype)7 }" V# u' D' p- R+ z9 f
- (entmod elist)
' U3 s0 P8 A5 s" p2 H% g) ` - )
: O8 \3 v4 I( ^" P3 b6 x - (setq pt2 (list x2 y2 z2)) d% v) E3 p$ F5 [3 C6 X6 U
- )
) e' D% F4 b! G& E, o+ t - )
d5 `4 P& \; z" u' l7 v - / T" j) u# _& C/ N4 J
- (defun ver_pt3 (ptype)
: c: m! `5 U+ `( g3 | - (if pt3
, U+ C6 q+ i+ l N2 I - (progn
' D; D( C0 r3 A4 s" W* o - (tempmod pt3 12 ptype)5 ]( j$ Y6 r* M
- (entmod elist)7 G- w5 b6 Q5 m5 V2 \) p& Q; a
- )
4 H: g; z! C5 ]4 }) s! K; M) S - (setq pt3 (list x3 y3 z3))8 \1 Y2 L( O/ }! _ c
- )
, w8 E2 a% ?% [ - )
: _$ B' ]2 z+ ?( P9 I. E
% p N7 s" A6 ?( p, k* y0 n- (defun ver_pt4 (ptype)9 ~3 o {0 x$ a$ I' d) v! Z" X
- (if pt4 J$ f$ Z! O+ z3 j
- (progn
- i1 p8 D4 R8 n* l4 O; I5 y - (tempmod pt4 13 ptype)
- Q P$ m! q# x& G7 q - (entmod elist)
" c( }5 o. g- n- M# i& N, B, S; U - )
/ y: B+ K! Y/ f: O) t$ Z6 |* F; ^8 s - (setq pt4 (list x4 y4 z4))
5 L3 P$ A! H+ W+ a - )
/ M. c. [; {( p, M3 z8 |9 p% V - )8 p( }2 u' |6 r8 f. u |" j, ]2 h
- ;; Xline/Ray
: w0 `: X6 V I9 D - (defun ver_xline_pt1()6 [6 [# H& l0 s5 G- H
- (if xline_pt1' D/ I+ p1 S1 U" {5 Y' b q+ c
- (progn
7 X$ U) D6 Q- U% B' ~ - ;; convert to WCS.+ v" e0 Y0 v( _! f! p8 Q6 a1 e. W
- (setq value (trans xline_pt1 1 0))
; W9 I1 y+ B& r t2 p M6 t - (setq elist (subst (cons 10 value)
, B' Y" ?2 G! d3 l - (assoc 10 elist)( Z6 w0 G! Q7 I3 a
- elist
4 Y, W1 z' j- ^: A - )
1 H7 N3 q% w2 p3 {7 b3 C0 X - )
4 r$ C: {& E8 E l2 Q" [0 S; E - )& m8 p# g( Q0 Y# l+ P! e
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))( X. @- y5 \+ h( f+ z q& h- ~7 u" S
- ): Q4 J* T* p( k4 X$ r( h
- )7 ^5 {# [; p# n" a; S0 Z0 |+ j
- ) R6 y( ^ e6 }2 ?6 m) a. C
- (defun ver_xline_pt2()7 f" C; k" v2 W+ S4 G
- (if xline_pt2+ u0 _& P1 G+ F% n/ t# y3 H
- (progn
5 v, U3 g7 I$ h# r, e5 P - ;;
$ M7 N. R0 ~; @( \- m2 {( E - ;; Calculate new Direction Vector WCS* P% y* G5 j& L5 j- f
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
! {$ j& S6 U5 f7 U - (setq temp_dir (trans xline_pt2 1 0))
5 U( o; _5 p% u+ e- h - (setq temp_dir_x (car temp_dir))+ X0 Y* x, @7 Q! O! ^8 `
- (setq temp_dir_y (cadr temp_dir))5 Q+ R% e5 J' s6 q: u6 `& C( h
- (setq temp_dir_z (caddr temp_dir))- l$ L, t. h N* `
- x1 b2 l/ |% D1 b& h6 ]% y
- (setq temp_xline_pt1 (trans xline_pt1 1 0))& R5 R+ ?1 u* c% J* l
- (setq temp_xline_x1 (car temp_xline_pt1)) P1 Z- b. D. ~- q: V/ n3 B
- (setq temp_xline_y1 (cadr temp_xline_pt1))8 h! I1 p: r' I
- (setq temp_xline_z1 (caddr temp_xline_pt1))# e* z+ b1 p K9 L- ]
- % W# ?, h: Y6 z5 ?3 P( r# W
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
& h) X3 B( f' Z - (expt (- temp_dir_y temp_xline_y1) 2)
" K& A+ A P0 k - (expt (- temp_dir_z temp_xline_z1) 2)9 e; L/ e- f) U9 j
- )))
0 X, s0 `: l& r* `/ v7 J - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
' Z% y8 X& A: h! z7 I - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
# m$ p" Z8 S- d - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))! a9 q4 D$ {+ K1 ~
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
$ ?) f! \. y L- i - (assoc 11 elist)6 F& Q1 c' @7 e/ \" l, D! y
- elist
. K5 o- D, x. M7 d - )
/ ^& C$ I4 i J2 P - )+ E. E5 e8 @4 C
- (entmod elist)
( {: `% G: Z* z, c2 r+ ] - (setq xline_x2 (car xline_pt2))& ?3 i2 X3 m+ {* Z0 Q" y& q3 L9 d
- (setq xline_y2 (cadr xline_pt2))
7 E4 B7 F; l; X( M0 t5 o# j8 M - (setq xline_z2 (caddr xline_pt2))4 \- k C \; q5 v2 ]$ d
- ' P' Z* I# e4 A4 ^$ ?
8 @7 o/ }1 C. [5 K5 @' N- )! R6 g f* x3 n0 g
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2)) I. s# v% f4 y8 f
- )0 k7 k# v4 ^$ i: R& b
- )7 c$ c% V) c% U& b3 e! m x3 _
, Z( A7 O2 ?8 d- ;;
: P. e. B* m G) V/ I- g9 |( b& z - ;; Common properties for all objects
* e" K9 d* l5 ]( F+ E - ;;
% ?9 }% e+ v8 J$ V! X! J6 a/ r - (defun set_tile_props ()
5 B" s/ p! L4 j - (set_tile "error" "")
/ s7 V. ]& s- `: v8 Q3 U( W+ Y - (setcolor)3 t5 Q2 t p2 A4 E
- (cond
. J" U) G+ J7 A1 s* ? - ((= eltype "BYLAYER")
2 C& l2 u4 l ^# [ - (set_tile "t_ltype" (bylayer_lt))), F$ z3 N- I9 P5 R W* d
- ((= eltype "BYBLOCK")
) F& F4 a! ?0 x% ?* X! A& U" ~: |' p - (set_tile "t_ltype" "BYBLOCK"))
$ i0 H1 P" ^, F) E$ e: Z; Z - (T (set_tile "t_ltype" eltype))
8 a6 V. P1 g, |8 }/ N! S' B1 b" l% e - )6 R$ o3 B# s4 p& t$ W" w, C7 Y
- (set_tile "t_layer" elayer)5 i. Q N$ h5 w# Z9 J
- (set_tile "eb_thickness" (ai_rtos ethickness)), K5 m" d% O% m4 m; G
- (set_tile "eb_ltscale" (ai_rtos eltscale))
T+ [& L b6 p$ T8 U8 R. |8 d - (setq which_tiles (ai_common_state etype))
! M5 M- N' s, b8 V - ;; Disable tiles if need be...# e+ o9 Y0 V& [3 J
- : }' R9 o1 E# ^6 g2 [; W: X
- ;; Layer Button and Text Field
5 u! E) O4 t" \+ c3 E8 U7 Z - (if (/= 1 (logand 1 which_tiles))
4 w- ~: p" W$ _% ` - (progn: T8 b+ | n6 K. E( Y. g; V
- (mode_tile "t_layer" 1)
$ C% l0 j& T7 v8 h - (mode_tile "b_name" 1)1 \4 x, D$ n# N. Q# G S7 t. R
- )
' j9 A& }6 [& V' r& a - )( M/ I& s5 ~: Z, v( n# N1 W
- ;; Color Button and Text Field9 Z1 ?# v1 [2 g) X* c( j6 e
- (if (/= 2 (logand 2 which_tiles)). t G7 Z; r9 V/ G, G8 Z
- (progn
( l6 Z1 d$ o& Z+ S8 { - (mode_tile "t_color" 1)
) T/ Y8 y3 F3 e+ v2 l: R7 G5 d - (mode_tile "b_color" 1)4 V. Z: N2 u8 ?: G( g7 l+ h( @4 b; B
- (mode_tile "show_image" 1)/ O' W) h$ U1 ~/ l5 {% m# x" I
- ). S3 c9 @4 F9 ?
- )
$ Y( k* R u1 [& [3 ` - ;; Linetype Button and Text Field
* O3 G8 t2 r7 `' @ - (if (/= 4 (logand 4 which_tiles))
/ @+ d, z/ K$ o$ ~9 [) e - (progn
6 u+ c# t8 K5 ] - (mode_tile "t_ltype" 1)) u/ R' J) ^; A$ [
- (mode_tile "b_line" 1)* ]3 ^, z( s2 g
- )
& y6 W* x9 h8 T9 i8 \+ |# n1 q' { - )7 v/ Q+ m7 n" u; F0 ]
- ;; Linetype Scale Edit Field
) \+ R" t0 y& G$ c ^* U! \ - (if (/= 8 (logand 8 which_tiles))
- ^& l& K% c7 ?7 s. `9 m - (progn
. g7 \. }4 D2 ^( l- a, w1 q - (mode_tile "eb_ltscale" 1)
& [3 K3 t: h- }7 l6 {" V - )
" G2 s4 ~& @: ?& }; A7 h7 g( W+ b - )% s0 `$ F7 A9 e3 C0 `
- ;; Thickness Edit Field.
. M3 i. [ l, C- \7 Z: }) _" | - (if (/= 16 (logand 16 which_tiles))
8 V0 J9 V( K3 ^+ d - (progn& J4 B7 r t( h
- (mode_tile "eb_thickness" 1)
- a: g/ n' C) ] - )& ~3 M* P# J" w. K
- )7 V3 B: M# ?- {( M
- )
8 N3 i& x2 j# N" k - ;;
2 p+ ^- y3 h6 Y; k/ [% |. M - ;; XYZ Point values for all enitites: C& U& j4 @7 |* s
- ;; ^/ T) ^" ]( }7 x5 r
- (defun set_tile_pt1 (ptype)2 O6 q9 G$ U' C/ o: }5 b& g [0 b
- (if (= ptype 0)- ]+ V% _. e: x
- (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))# ^9 ^: p4 G0 Y; f7 K/ T |
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
7 H. C: v- M, Z4 r5 K6 W1 f2 u/ | - ) U6 m+ Q7 e4 g( b6 v8 t$ j
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))
9 v* ^ [2 z- D9 X; d - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))0 k9 @3 m8 S" w; j+ @" ]
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))! |' U% X* X, }0 c, V6 B
- )
; f3 r8 N" s5 T- E" I4 J% j- d$ U u& } - (defun set_tile_pt2 (ptype)' t/ v! |0 k7 f" D' |: ?8 ^2 E
- (if (= ptype 0)7 L) }7 A$ G# j' H% D! w0 F/ Z
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1)); k0 i% U$ t; ]
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
# a# \* x3 E. _6 @9 L - )
8 C6 f6 F& _/ R; O9 X8 S/ T - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))+ d; z9 d, F% U- o7 b0 U& p
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
! V; u9 Z* G' n& j% | - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
$ m; y, @: }- W. f6 g T( x8 Q - )
% f1 s e: p# h9 s6 c - (defun set_tile_pt3 (ptype)
$ v3 @/ q. s$ m' {( x - (if (= ptype 0)
& \ I$ t4 w( N - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))! e( f$ a4 t+ e- ^( q3 @
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
$ d* w/ b1 J( h8 }" G* Y% I - )
5 ]3 }9 G' Q3 c/ W" K; v - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
, p0 V! e1 R0 z- w, f: n - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))6 f# x+ s3 z1 e" _* a) N& G
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
7 i' D* X+ o5 ?5 ~! W5 P - )
5 a1 F( O: {5 s5 u - (defun set_tile_pt4 (ptype) S# j( W# g* L- v
- (if (= ptype 0)
, n) t" ?# \+ {- D% `/ g$ Y - (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))4 e# x1 V" m4 R6 `' F+ T: m
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
- G' b3 \6 z) C$ b: k - )2 o# t- a% @$ l$ Z O9 i6 Q
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))% [* {' T$ v7 d0 X" J1 b7 X7 L0 u
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))+ n, I( r7 {# Q7 k
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
1 R |) i2 h- W* s4 v4 S- | - )
, N1 I$ E. F0 X. A - ;;; V$ @8 P! P8 f( }- K
- ;; Xline/Ray$ G# E& Q! [; k
- ;;
7 K0 W& I- p9 d7 x7 a# X5 @( x - (defun set_tile_xline_pt1 ()( z" [8 ] X& q" \5 m) C- i8 t: o
- ) `4 a. f0 q. ?% n: @# q# }$ c! u( T
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
! _/ q2 n, C) `$ C/ c5 M% V
3 O( V9 E2 r1 ?: G" V0 a8 h* `- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))% J9 D# r6 O; }2 u2 t- c2 s6 ^+ `% {
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1)))): L, E3 O( [" u8 V
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
( k2 w! N: h1 O# M - )
/ K% n' l) M) `4 `$ a5 o# m5 X. C - (defun set_tile_dirv (): M/ E. C# n# j1 r/ r
- ;; Convert 11 group to local UCS (displacement)# o5 C6 G' y5 [5 r
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1)): i1 V& B8 Z: I1 b3 O
; s9 z/ w( N; C }- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
$ l" f' u- N+ n7 Y. q; ~ - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))
. Q# ?/ w1 D8 A- I. ^8 S9 [ - (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))' w. o4 m2 K' j' a7 g+ n
- )7 k o7 j5 ^1 J
- (defun set_tile_xline_pt2 ()) E% l; c! Q5 P5 S% X) n! L, A
- (if (not xline_pt2)
: t. _0 r; B. s% ~7 ^) ? - ;; Initial second point is Root Point + Direction Vector6 O% C! a+ D3 D! ~, v+ b
- (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
! {2 k1 y- Y# o( j1 Z8 n - )- @& T& [( r$ H) b" K6 ~" P
- (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
" t# \+ L( H; \' ]1 O - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2)))), m% O* A! C9 h6 M3 r7 @
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))1 J* p- F* @+ f5 D2 L, Y5 z9 t
- ). R1 \# s1 P8 Z6 h" w, J/ D* R$ E! s
' N% t% O8 ^ y4 q4 ~- ;; _% _: ~, M, L( \5 K3 |& M
- ;; Handle for all objects; T" {- r- p8 |% Y X
- ;;
$ z7 g# H* ?/ B* r- R; ]3 N ] - (defun set_tile_handle ()
$ |! @; p$ r- P% E% F! l! H1 i5 x - (if (setq hand (cdr (assoc 5 elist)))
0 L A7 ~5 a- I4 d+ d/ \% J - (set_tile "Handle" hand) T6 X& e& k8 {3 ]
- (set_tile "Handle" "None")
& [3 l) I& Q% i) V, u - )
. M; l* O7 _# I/ F - )
9 g- Y( V- G1 i7 `/ T- e/ P$ X6 s0 S - ;;" |# R3 A$ b/ R2 b
- ;; Radius for ARC and CIRCLE
: K* s8 b, k4 M/ o# n - ;;- M( n0 E5 \4 H' y
- (defun set_tile_rad ()5 M0 U r+ i& b k4 q9 c
- (setq radius (cdr (assoc 40 elist)))( ~9 n6 m; `. w5 l, e! i
- (set_tile "radius" (ai_rtos radius))* M7 y/ k) j/ _/ b* {. K0 D
- ). U* m' M4 p% r6 K; R$ g) C9 n
- ;;
! b1 g1 J7 o$ l! M - ;; Start angle for ARC
" V4 U. e8 v9 c& Y( N# o: p( e - ;;, q/ i: ?* I( K6 R9 _
- (defun set_tile_stang ()+ F7 ~/ D. G4 [: v: \
- (setq st_ang (cdr (assoc 50 elist)))
' Q7 n' w" |( w - (set_tile "st_ang" (ai_angtos st_ang))% ]* A: d5 B f1 {
- )
" i% X8 b' F0 Z( |: q1 i - ;;" I' |( T* {' S T, ?0 v( u; d9 g
- ;; End angle for ARC& a& U1 J) w4 m% A& M4 H5 H
- ;;
3 j: y) T4 |7 h# s: i7 z - (defun set_tile_endang ()
) D {# ~7 d) p, K' `8 L - (setq end_ang (cdr (assoc 51 elist)))6 N6 e) g% X$ Y+ T5 B1 p
- (set_tile "end_ang" (ai_angtos end_ang))
, ^, ~$ z/ n9 `9 x! R& i6 r$ @ - )3 R) U& d$ |4 N0 s% u" a z! T
- ;;) X1 T( Y2 I% B! R
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
M2 W' r/ O/ V" S7 x - ;;& s# j4 d" V/ ?! h
- (defun set_tile_rot ()' }" c; U) o9 H0 \; y* E
- (setq rot (cdr (assoc 50 elist)))
0 X4 r/ O% G5 `6 e2 p7 e# p - (set_tile "rot" (ai_angtos rot))
' t3 v" F |7 M' i - )
+ U0 M6 Z6 b7 _! U* G- q - ;;
5 ?& n& U: p6 ~* R8 e5 ~8 Y - ;; Height - Text, Attributes and Shapes
6 @3 E! o6 K5 K' A% m - ;;. f& _1 P* J2 A& W
- (defun set_tile_hght ()
* u9 w+ f0 R/ O7 S) c* K - (setq hght (cdr (assoc 40 elist))); a$ J9 m0 x1 D. w( G
- (set_tile "hght" (ai_rtos hght))" d9 _7 r1 d4 m/ m
- )
$ D/ E* D4 u9 `1 o4 e' @: ]5 b - ;;: Y P+ j7 _, ?' H" V$ k+ w
- ;; Width Factor - Text, Attributes and Shapes4 `6 A5 Q/ A4 I/ q0 ~
- ;;0 c: ]6 ^; W. a. B- K ~
- (defun set_tile_wid ()# [* y0 F" _& `( e! x
- (setq wid (cdr (assoc 41 elist)))5 L& o$ R5 y+ `% M, t
- (set_tile "wid" (ai_rtos wid))2 m) B0 S2 a' e
- )
& u% G) p; `4 O$ Y - ;;6 z+ h6 ]2 X: z) M! Y
- ;; Obliquing Angle - Text, Attributes and Shapes
- p o0 Y9 j7 h O$ i* J5 i0 J& d - ;;
: ^. a6 P) k; G' E+ w6 w. p& ]1 X - (defun set_tile_obl ()0 s) R4 O9 \ o* X1 \
- (setq obl (cdr (assoc 51 elist)))
! m; o$ y9 V( e" V0 I$ h/ j - (set_tile "obl" (ai_angtos obl))
/ d K2 g' s, ]+ c+ j; B - )
( K. ?& ~" J" z5 O - ;;
; p v' i# ~' I! Z0 Y4 o - ;; Text string
+ |. ~7 T$ F/ Z# s. ^6 y1 K; W - ;;* `. v! f7 @0 r& Y' R
- (defun set_tile_text ()
# ?( E* p7 {" ^; Z( | - (setq text (cdr (assoc 1 elist)))+ h4 f7 h% E h. @3 h
- (set_tile "t_string" text)
+ n) D2 o+ k" @# u8 Y$ u2 e$ G6 e - )
; g1 `& F3 G. O) f3 G8 N - ;;
5 I9 o9 K' C! K1 ^' t7 ^ - ;; Attribute Tag; D8 n @- |5 y s
- ;;
1 u9 `: r6 a, ^3 x4 j/ y - (defun set_tile_tag ()
8 S p; D$ e( N - (if (= etype "ATTDEF")- t+ y3 H6 U) M8 I! N# H' b
- (progn! `; D6 g" h+ z( u! V( o
- (setq attag (cdr (assoc 2 elist)))
: B& S( F3 u. f/ N - (set_tile "tag" attag)
( S4 U6 K+ Q# m. A( _ - )) c# J3 L0 X, B
- )/ }) V7 {, K+ u
- )
' |$ g! b* m4 V/ [' Q - ;;
4 ]: v1 r) ]* F; o' e7 ?% G" P' ] - ;; Attribute Definition
( D m0 `7 b( p( [& Z$ r6 s/ K q - ;;
% H3 B5 J# A9 |8 e! L - (defun set_tile_prompt (). R5 Y- F4 h9 d# B3 q
- (if (= etype "ATTDEF")
5 Q( i7 ^0 U- x8 c4 B4 j1 f - (progn# B9 C- m( F# k4 i, t
- (setq atprompt (cdr (assoc 3 elist)))# h6 q, d' ^. S c3 ?+ s! _" b
- (set_tile "prompt" atprompt)- x3 d! X% b% C4 p. Z7 A
- )
6 D9 r0 }; J& a1 {1 X - )
3 \( \6 f3 D4 g) m; `) b, f2 Q* F/ L - )+ F6 c3 Z5 k2 \6 @
- ;;. X& d- J j" L) ^* h
- ;; Justification setting for Attributes and Text. Initializes
" _$ n Q( Q/ x- l* ^( ~" j$ r w - ;; popup list box' A% L9 z$ A' [" b; j7 _4 E! A0 s( e
- ;;
* m" B; w: D/ d$ c6 Y/ }& B; X5 D - (defun set_tile_just ()
8 L8 ^3 P6 K. P( C2 A" H - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment$ s& u2 V9 i; o1 g: l
- (setq va (cdr (assoc 73 elist))) ; vertical alignment
* n h O2 O2 P& ^, p3 Y5 w9 l$ ] - (setq ha-prev ha)
# I: B0 ]% `+ _& v0 A$ q3 r8 N, v - (if (= etype "ATTDEF")) L1 D0 ^% S5 h# }; E5 l9 {& W
- (setq va (cdr (assoc 74 elist))) ; vertical alignment: i4 D' U/ [, q( u6 V/ C9 ^
- )( w# c, k+ u. `$ m6 y: g
- (setq jlist3 x6 i9 w {$ v: @. j
- (list "Left" "Center" "Right", ~0 S- v7 E+ x& M! F8 M5 e
- "Aligned" "Middle" "Fit"
# n% ~9 K8 @! W - "Top left" "Top center" "Top right"
' g1 l& z* n; ]: w, Q+ O - "Middle left" "Middle center" "Middle right"! \5 N5 f( v6 j" l. ^9 F
- "Bottom left" "Bottom center" "Bottom right"
6 d4 c5 L# n- a$ F& C1 m - ), |% x; {, G( l# e$ x
- )
' ]. a# K; b1 _7 ?8 H2 t - (start_list "popup_just")7 m/ D% K$ z/ ^1 x' u% e+ Z
- (mapcar 'add_list jlist)
* _/ X) D s& S - (end_list)
4 R2 E: ^+ f4 J: q+ Y2 w - (set_just_idx) g! h# C: N& ]- p$ G0 Z+ x+ Z( u
- (set_tile "popup_just" (jlist_act just-idx))( |8 W) D$ N8 u+ o7 T
- ) r- z, `4 i) f0 k6 u5 O/ t
- ;;; q6 a, s8 i8 _+ B5 }* G
- ;; Style setting for Attributes and Text. Reads symbol table for popup list4 P/ S- U: e& _$ `& d% V" F0 I$ j
- ;; box.
' X% Y* S+ o8 s. b" K: m) p3 j - ;;
6 _4 k$ ^' v6 U; U& C - (defun set_tile_style (/ sname style-idx tlist)
: o8 h) A6 E. k - (setq tlist (tblnext "STYLE" T): ?/ r9 b) ] L% l' p3 a; E q% j6 N
- slist nil): T9 q3 Q& F" i, t2 Y
- (while tlist
% i d5 o: i- m - (setq sname (cdr (assoc 2 tlist)))
' Q' W7 c) d; o' Q) u - (if (and (/= sname "")
& N/ F8 O% l5 W1 {. J% y - (/= (logand 16 (cdr (assoc 70 tlist))) 16))
! t' O5 S* T! }1 M" e - (setq slist (cons sname slist)))4 T2 E6 r9 F8 G) `5 t. t
- (setq tlist (tblnext "STYLE")))5 J5 e7 P) P8 `( Z
- (if (>= (getvar "maxsort") (length slist))
, F% c0 u6 W$ m4 d- Z - (setq slist (acad_strlsort slist)) ; alphabetize style list" b$ D5 l4 [9 ]% q
- (setq slist (reverse slist))) ; or reverse it to put it in DB order
! M, y- I4 Z* E5 ]9 I
1 \, A# t9 R5 W2 h+ a( f- (start_list "style")
# b9 J, s! j% P9 u4 b4 ]* b/ L - (mapcar 'add_list slist)
& ^0 E) C2 t9 }1 v# Y; i - (end_list)) w1 U1 s& q7 u H( w# R3 x
- (setq tstyle (cdr (assoc 7 elist)))
3 ?) A8 V0 }3 M; z' L, j - (setq style-idx (getindex tstyle slist))) Z) L( D3 ^4 W6 w; e4 O2 Y B
- (set_tile "style" (itoa style-idx))
& s- t. f2 S# t0 M, Z, [+ `$ f - )
% e q ]" _$ G5 Y8 M+ x - ;;4 s. e) y. E. n+ c- t2 ^
- ;; Text and Attribute setting - upside-down, backwards/ ` g1 C/ @' L' `
- ;;
1 Z! i+ S/ B4 H* f' t3 i% e# P: ^ - (defun set_tile_bk-up ()
( E- m1 C% N' |! u& h# u& M. l8 o3 ]2 h - (setq bk-up (cdr (assoc 71 elist)))
& U/ _( W9 [+ x3 F0 K6 v* Z - (if (= (logand bk-up 2) 2)% o( J6 R6 W1 E! d9 o! k( K" `
- (set_tile "bkwd" (itoa (setq bkwd 1)))9 L( m3 x; p" `! B; v$ @
- (set_tile "bkwd" (itoa (setq bkwd 0)))
& i6 z) c2 ]/ ^; w/ S - ). P- d# f* `- @( l- | E( ?' ~
- (if (= (logand bk-up 4) 4): c% U4 c( d. ]6 i" q' k
- (set_tile "upsd" (itoa (setq upsd 1)))0 h" @& D, j( d& D
- (set_tile "upsd" (itoa (setq upsd 0)))
5 E9 }: ~. q; [4 d5 `$ e1 E - )
/ \0 {; D5 `, m0 m - )4 v) u; J- d( H7 L+ u! s- g b
- ;;2 k0 }% |2 z; V2 ?! q7 L6 Q0 [' t
- ;; Attribute setting - invisible, constant, verify, preset
9 M9 Y) t/ Z H/ p8 ]. g% c - ;;! @- V8 H2 u0 M* G: X
- (defun set_tile_icvp ()7 F% D7 Y9 X; i9 X
- (if (not (setq icvp (cdr (assoc 70 elist))))
4 n C( d' }- [' \# y% E - (setq icvp 0)# C5 Y8 }1 f& m9 ]$ `8 r
- )
+ c, ^( }5 K6 y. F+ { - (if (= (logand icvp 1) 1)7 I5 H: d6 { t3 t! M
- (set_tile "inv" (itoa (setq inv 1)))
+ U$ w2 ~) I# ?* } - (set_tile "inv" (itoa (setq inv 0)))
. u+ S2 i. z/ D9 j1 _1 z2 F - )( s$ r' Z+ S, O
- (if (= (logand icvp 2) 2)! F* y u6 q0 P4 m
- (set_tile "con" (itoa (setq con 1))), w- J6 O$ ^, \- i! a
- (set_tile "con" (itoa (setq con 0))). l( c! B% ~5 U$ f" R
- )
( _' X w3 O" h9 x: v9 w/ u - (if (= (logand icvp 4) 4)( }, s- p& m6 h* \2 ]
- (set_tile "ver" (itoa (setq vfy 1)))
1 p4 m: ]: L( T3 K - (set_tile "ver" (itoa (setq vfy 0)))
: n* l- u* p+ x/ h: B1 B - )
0 O4 f Q1 M: t x5 c2 y - (if (= (logand icvp 8) 8)
( g r) V& u' h; Y. b# z - (set_tile "pre" (itoa (setq pre 1)))
4 _8 d( P6 w' G4 q - (set_tile "pre" (itoa (setq pre 0)))# k$ f: u( Q/ c5 F+ p
- )
( O; H' b, _; ` - )) S4 J" t. I' q
- ;;
) _( E1 z) e+ K7 } - ;; Scale factors for block insertions
" W* h. h8 N8 q7 O, b3 y* i4 O! }% p - ;;& R( l( D8 ^, f) @& B4 b
- (defun set_tile_scale (/ temp)
& I) s. M* V, h8 X) u. I2 q8 z - (setq temp (getvar "LUNITS"))% |) G, \9 H/ v; ~! R
- (setvar "LUNITS" 2)
4 p' B# U# X( p5 r+ L8 j - (setq xscale (cdr (assoc 41 elist)))
3 v" O: a u3 n' ^ - (set_tile "xscale" (ai_rtos xscale))
1 F" H' ] d1 u9 e - (setq yscale (cdr (assoc 42 elist)))8 f1 s2 |) q% j0 } \
- (set_tile "yscale" (ai_rtos yscale))
" w: C& I# ~/ P8 S - (setq zscale (cdr (assoc 43 elist)))# Z( F) q7 K7 P
- (set_tile "zscale" (ai_rtos zscale)) d& u- S5 e8 C- w
- (setvar "LUNITS" temp)8 G" {& j9 R/ v3 a
- )
1 w* s: i2 L7 A - ;;6 ]; p: q, c& z$ F3 C. h# d1 e
- ;; Rows and columns for block insertions: {- b" L4 B6 V; A8 i' O# F
- ;;
! k/ \: {# J. ~! ?8 f6 X, [ - (defun set_tile_rc ()) Q' R. T' p6 a, o
- (setq columns (cdr (assoc 70 elist)))
' k# A5 s! h. l3 y$ O9 [! O - (set_tile "columns" (itoa columns ))4 Z0 e) Z& n" |% Q4 w$ b
- (setq rows (cdr (assoc 71 elist)))
8 A3 y d$ g* N - (set_tile "rows" (itoa rows)): r4 n! l7 o i& t# Z# R
- (setq col-sp (cdr (assoc 44 elist)))
/ D5 {+ p6 ~9 d1 u4 Y0 x6 [ - (set_tile "col_sp" (ai_rtos col-sp))
1 h* z1 e; |% z' z$ W; F/ [ - (setq row-sp (cdr (assoc 45 elist)))" L g( L) N& e
- (set_tile "row_sp" (ai_rtos row-sp))
) {2 g8 T6 c# }. A, t" k - (if (/= hasclip T)' h% D) u) k6 _
- (mode_tile "xcliponoff" 1)1 X+ w: F t/ y
- (set_tile "xcliponoff" (itoa xcliponoff))* `& R) Y7 u" j* O5 M
- )
- j2 d2 U- L' h0 U5 j - )
8 K! U. B7 O/ Y" _* k) @ - ;;& N: [/ r8 {+ Q) i
- ;; Invisible edges for 3DFACE
: Y* T( R* \0 ? - ;;
/ r6 b- L0 o6 z# |. S( X8 c; c - (defun set_tile_edges ()
2 U7 ~" i+ t1 D7 N$ O7 V* ? - (setq f-vis (cdr (assoc 70 elist)))1 i3 X+ r& a& i/ h4 F: D
- (if (= (logand f-vis 1) 1)
* J- f* {/ p7 Y - (set_tile "edge_1" (setq edge1 "0"))
9 x- }4 D. S1 u# w% N - (set_tile "edge_1" (setq edge1 "1"))
3 ~) y) [* z& X& z1 f/ `' b - )( U, A: v( X) N5 j e
- (if (= (logand f-vis 2) 2)
* p5 t3 a- B7 |: _! ~0 B - (set_tile "edge_2" (setq edge2 "0"))% |" U% [" {7 V( w3 P
- (set_tile "edge_2" (setq edge2 "1"))
, [: g. W. M2 Q$ r0 g! m. k9 i4 d - )0 k' |0 t [7 ?* m$ {
- (if (= (logand f-vis 4) 4); k( u& C/ l) [% p1 T- Z: z( Y
- (set_tile "edge_3" (setq edge3 "0"))
. y0 H! Q9 @: k9 g3 v* m8 w- j# d! \ - (set_tile "edge_3" (setq edge3 "1"))7 [) `! p, P8 C" g, M5 p
- )1 F; ^' U2 K p
- (if (= (logand f-vis 8) 8)% R* w( I" r+ M' e* M* \6 x
- (set_tile "edge_4" (setq edge4 "0"))
1 R* j: O- A4 @/ D% N9 R$ d - (set_tile "edge_4" (setq edge4 "1")) S3 u* C, _6 U; }+ R5 r1 m
- )* F7 B7 J; J+ J& P
- )
% G6 j4 f' |! W+ c! u; f( P6 b! y - ;;/ Z( p* i O* S2 b+ A
- ;; XYZ Point values for polyline vertex8 l3 p7 w! J/ B
- ;;
# ^0 R' b0 k+ c - (defun set_tile_vpt (ptype)
3 K; E5 `3 t n, K9 E3 t5 y - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
; Y5 Y( a( L2 e! ^' H1 h, Y - (progn+ N5 P* A3 G+ W" ~
- ;; ctr is 1 based, vertices are zero based.% k8 d, l5 X' B$ }# b) h5 ?9 l$ M2 P
- (setq vpt (cdr (getLwVert (- ctr 1))))
) [- R H: [0 i) Y: a! w - (set_tile "xtext" (rtos (setq x1 (car vpt))))
& D! z: k. H/ c8 p/ b6 Q* M% K - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))8 l5 s/ T7 M& G# l Z! D; m, O
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
* G% E9 e# e3 |& {2 R - )! n8 I3 Q. C/ o9 a- U
- (progn4 ]7 u- w9 @6 x8 h: C9 a, ]3 u4 A
- (if (= ptype 0)
; ~+ U' v% _2 ~! F+ a - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))7 M0 J2 d+ G7 C: @4 ^. a
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
^8 U- ]' z' C8 X# x) s/ B - )
3 e7 v# C. B! V; _ - 3 i8 Y" u4 R5 W. S
- (set_tile "xtext" (rtos (setq x1 (car vpt))))$ m+ v# M+ D: |2 g! o5 W, {
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))4 S* z; M; ?3 ~" Q1 \% J
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))2 K4 \2 F, C5 G8 K
- )
+ j! R( y( [' @9 p D9 O - )9 J' }# y8 I# }, @* C
" ]1 E( D& C5 Q4 K- )
% \9 \5 m1 Q$ q1 M1 w - ;; This is the equivalent to doing an entnext on the heavy weight9 t' T* r0 Z2 q% O8 c+ Q. q" W
- ;; polylines. The hard coded '4' below allow stepping over the
3 j! `# q$ E& w1 B - ;; 40 41 and 42 group code information. The while loop finds the
5 \/ i- h! E3 R8 K& n, l% P0 k0 ~ - ;; first vertex which will be used as the starting assoc in the
$ v F; E& I. N: x; m - ;; call to nth.& n7 V+ ~6 r* T6 p0 [
- ;;
/ ~# h0 v2 K5 B% p& |! b - (defun getLwVert (tmpctr / count tmp)
7 P. U7 K! B1 }' o0 t/ i - (setq count 0)
1 z2 a9 U' H2 N+ l- u - (while (/= (car (nth count vlist)) 10)5 p7 i, {7 \) u2 E, m) t# v! }
- (setq count (+ count 1))& m' e( r7 l; G3 p
- )3 _% _: o2 I& z- b5 ]8 w0 y3 o
- ;; If the counter reaches the number of vertices,
$ a! f1 D+ ~7 ~+ r6 p( N - ;; reset ctr and tmpctr to zero again.
9 |) |9 j( _' ^) @6 v9 } - (if (= tmpctr (cdr (assoc 90 vlist))); t$ x {8 c- ^/ {1 S7 l, ?8 a# X2 p
- (progn- Q3 I& ~$ f" g; h+ E& m8 W
- (setq ctr 0)
, |, Q& o' V, N R - (setq tmpctr 0)0 @/ T3 |7 Z8 x; i# I
- )' p9 f7 [- J' ?+ H
- )
: C$ g2 P- j: k- W1 g% h) G - (setq tmp (nth (+ count (* tmpctr 4)) vlist))
0 T! u' ]% F1 _. T4 Y9 h' l - (setq tmp (append tmp (list(cdr (assoc 38 vlist))))); d1 n) |& y; r2 A+ x2 a; }
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
" f7 c% Z1 U0 v- a# H0 C9 Q8 _ - (setq tmp (cons 10 pt1))! u! L# v7 ?3 J) `9 E: U' {
- (setq tmp tmp)
% h+ F7 S& b8 Z - )7 g# |# D3 v% Y. j
- ;;$ W& `3 r! L O
- ;; Set tiles for Spline properties. If the spline is rational then we
/ Z( Q5 |% o: E: Y - ;; need to display the weight values of the control points, so set
# ^8 Q& q8 l ]2 {! Z. e( @" P1 e - ;; flag to 1.2 D4 z2 P8 q. x
- ;; 1 = rational spline' g5 a- p+ J2 P B" L
- ;; 0 = non-rational spline v' L% a8 S. [9 C, q
- ;;' Y- z2 `9 {1 H3 U1 x- _ H
- (defun set_tile_spline_props ()
' ]. l$ y8 A7 t" ~# G' } - (setq rational_spl_flag 0) ;; initialize rational spline flag) _! S& t! `, N, q
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
. z9 d2 e2 ?0 I( ` - (setq bit70 (cdr (assoc 70 elist)))
3 K* Q* C: x9 m2 g' L6 e" G - (if (= (logand bit70 1) 1)
/ T% K# f3 D+ Z) B) y - (set_tile "SpProp4" "Closed")
; k" d! f1 z1 D8 P( g: j" }! @4 t - (set_tile "SpProp4" " ")9 p y6 n2 B4 E' `/ _7 u
- )% K/ b& q% D6 B$ F+ a# d6 ?3 L" _
- (if (= (logand bit70 2) 2)% V: k `; j0 E+ [( j2 @9 ~1 y
- (set_tile "SpProp3" "Periodic")
" [2 U) v) q( `; | - (set_tile "SpProp3" "Non-Periodic")* A O& Y$ }& ]( ~3 v' X1 U
- )& t6 {( _- ]8 q) e8 G
- (if (= (logand bit70 4) 4)6 B; E; B9 D+ C+ l5 z
- (progn
' o# N6 n) A; X, f - (set_tile "SpProp2" "Rational")* ^7 l0 G% `9 j# t; m0 v0 m# m
- (setq rational_spl_flag 1) ;; this is a rational spline
4 x) _9 G P1 N+ i3 p - )( p* y) R0 _ d! N) e6 w$ r
- (set_tile "SpProp2" "Non-Rational")
0 D7 x( v. N" j - ). d- ?- A, k. w0 S: y
- (if (= (logand bit70 8) 8)4 J2 ^# o6 {) V! G* I
- (set_tile "SpProp1" "Planar")1 J- M0 W3 G% ]& q+ I
- (set_tile "SpProp1" "Non-Planar")) b1 O, Z5 h3 K, \
- )
5 j. D. k/ Q7 l9 h ~ - (if (= (logand bit70 16) 16)7 I; _7 _* D% O: E
- (set_tile "SpProp5" "Linear")- n" F! E0 m T7 V/ O; N7 j- R
- (set_tile "SpProp5" " ")
- f* R# {, I: y - )
' [/ ^6 x/ k T - )
( t( p; N: e5 K - ;;. q( i b/ G& G; M! g
- ;; XYZ Point values for spline points
\$ y: e7 h1 J6 q$ ~7 [8 |5 j$ H - ;; Need to account for WCS/UCS
4 B2 b+ w. o: G( X - ;;
# C* o7 }8 Q6 `6 o6 G! p' ? - (defun set_tile_cntl_pt ()! S/ r6 ^ E+ \5 H3 M h9 n7 ]" j
- (setq cntl-pt (cdr (assoc 10 elist)))/ A- a5 u6 ^" R! U: B
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
* Y5 g, V: B9 z - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
! b& X" M r% t& o/ j! M - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))" g% V2 W% @: _+ s# k
- (if (= rational_spl_flag 1) ;; if rational spline* d( G5 Q: F7 h* K4 }) K% S1 H- i/ L
- (progn ;; show weight' z; ]- J. F$ _" U: J* g
- (setq weight (cdr (assoc 41 elist))) t( m+ n p/ i1 R. s$ `5 m0 `' L
- (set_tile "weight" (rtos weight))
# b: R3 N; g' }6 q4 u. d% ~' @ - ) ;; else
, f j" l5 Y3 _ - (mode_tile "weight_text" 1) ;; disable weight field- c5 h# d( c! J: W
- )$ m1 N9 m- @# |( A+ M
- )" U) p L0 f7 r( C( M: c0 |
- ;;
% b0 Y. w0 @) T0 {) ~ - ;; XYZ Point values for spline points. \+ l6 N2 L- j1 }: F) i
- ;; Need to account for WCS/UCS# s) H+ U5 V( u2 b; \6 K8 w
- ;;
1 h, X0 ^7 z, J, t$ g- [! s - (defun set_tile_data_pt ()
7 C* D* o" p1 j h - (if (not (assoc 11 elist))
# f2 o; {# i0 @, ?# i. G0 O1 K - (mode_tile "data_pts" 1)
9 X- f2 `: Q1 z( t - (progn: W5 w+ L* G5 K$ d" V
- (setq data-pt (cdr (assoc 11 elist))); o) k% T5 Z+ C4 _9 p i# N
- ;; display points with current precision.
; { j! ?7 z5 D. a' m - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))6 I; p8 r# Y6 G
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))/ m. |6 }( O3 V- P3 Z7 |' _
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
5 ^: v7 w1 c9 \# F( N - )
% Z. d9 t8 @. o; u* q& _ - )* w; m3 A1 p1 o# x- [% U
- )4 W( \' [, m- E1 ^4 p$ V
- ;;
# P- X5 r6 P% b, v& ?& r - ;; Fit curve, fit spline, or smooth spline surface setting" _. R* Z/ x7 [# O# f! F
- ;;, H' P4 t( t& M6 |3 F
- (defun set_tile_fitsmooth ()
+ z2 F8 K8 z8 t+ \& a$ i# Q6 H, o - (cond
& ^; h X% L2 s* O/ s/ J - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
, J( R9 I$ }3 J6 ]& _ - (set_tile "none" "1")
1 Z* Q# m- d$ d - )( x( g/ r# I: S9 f$ R+ F+ U8 ?
- ((= (logand bit70 4) 4)6 k8 p! v9 N2 B" L: y0 @. P
- (cond
1 G; u6 X) ?; E2 b; m1 {3 @ - ((= bit75 0)" s% \% A2 k. ?8 \; o, s6 o
- (set_tile "none" "1")0 @( r* M5 a) @$ j8 U6 P
- (setq spltype 0) N/ P( J4 ~* r: O% h
- )# S6 A. P: Z6 n5 S |9 @
- ((= bit75 5)! A1 H, y s' |$ E6 N
- (set_tile "quad" "1")* g7 I; |! [/ n+ v' l7 R2 w
- (setq spltype 5)
\, F- B5 e7 Z2 [$ g3 h2 I. }; v - )
1 Z, q$ C5 E h- ~8 h0 n - ((= bit75 6)
- F4 b8 f( v( p* W; {5 q - (set_tile "cubic" "1")3 R, z9 ~( x5 q j3 ~6 h1 E
- (setq spltype 6)
5 W# Q# m( b" R6 v; R4 i$ N - )
# T* u8 e9 Q2 y; k - ((= bit75 8)
# C W% k: ?% \3 G - (set_tile "bezier" "1")
, X7 l. Y7 h4 b8 H- r1 @ - (setq spltype 8)
" c! S8 v8 p9 d& @* a( A - )
( Q+ ]9 k3 N n2 K K# {5 N4 P - )
; F: L/ h# F8 R - )
- O0 H" S& v4 c - ((= (logand bit70 2) 2)
- G6 x* R" Y% Z( Y3 F - (set_tile "fit" "1")' `3 Z: T7 E( q. c% ^
- (setq spltype 1)
% `4 M3 S* U' O3 _" D$ B; C - )
$ e) g+ X$ ^/ I$ F8 x, b2 s( a" C+ |4 h - (T (set_tile "none" "1"))2 V+ T3 O5 ?0 q# m+ o3 v
- ): ?% J C W+ _" ~# N& q
- ). ~5 D% d8 m& T
- ;;
$ H- p b! W2 u9 N7 u/ a/ O ]& O - ;; Closed or Open mesh and polyline setting
! F/ ]; p \9 ^ - ;;
. D6 V2 X8 [$ n2 E" ^+ b# b - (defun set_tile_closed ()
8 K$ V; {3 L {4 y% I9 J - (if (= pltype "3D mesh")3 y* }8 R; \3 s8 u
- (progn' q! I$ N' r5 t; o' S
- (if (= (logand bit70 32) 32)( d+ T% S7 l) [6 S' P& p
- (set_tile "closedn" (setq closedn "1"))% N$ `8 W( H/ j9 Z2 {) l1 T3 s
- (set_tile "closedn" (setq closedn "0"))
' G+ O, {! V7 V5 a, P - )
3 Q" j7 _1 J, I9 q0 v% | - (if (= (logand bit70 1) 1)5 {# j |. n$ u
- (set_tile "closedm" (setq closed "1"))
# d6 h& |1 V: ^7 X' H9 r4 U; _9 L - (set_tile "closedm" (setq closed "0"))( e7 f3 A' u' t; ?
- )7 j3 `4 h1 b/ }% o0 p. ?
- (setq old-closedm closedm old-closedn closedn)) X3 U: F& l- a
- )* A( |$ _7 o4 v; u' Y
- )/ `8 E, W" M5 Q9 @- I+ m
- (if (or (= pltype "2D polyline")5 Z* Z3 R3 E' k+ t7 ]4 W' v- S
- (= pltype "3D polyline")& L* |- H7 b3 A: W; M
- )9 i5 V- z/ e2 d% s- O. E
- (progn% f/ O# G7 _1 S$ r! [# J
- (if (= (logand bit70 1) 1); b# c Y) `" T F) W
- (set_tile "closed" (setq closed "1"))
$ \& q: }1 \/ M# ~- O2 Z: {1 w' l - (set_tile "closed" (setq closed "0"))$ Y" r9 ?2 k3 G3 Z' k; l0 }2 [
- )& K9 X/ d) K6 u& v" V
- (setq old-closed closed)
* G8 q# B! u. q- p0 X - )0 e7 A: X+ L3 K( f% V! C# {
- ), C5 Z, a3 U# o) {1 o
- )7 }( K! A' d7 G- q
- ;; Set common action tiles' S1 y2 v7 K$ ^3 e- q6 m
- ;;: s" N6 W' _' D3 ]% b
- ;; Defines action to be taken when pressing various widgets. It is called; D* D+ [) {. D+ D" {
- ;; for every object dialogue. Not all widgets exist for each object dialogue,
/ M3 Y+ m- z" V) b; ^ - ;; but defining an action for a non-existent widget does no harm.3 @0 ~8 M8 p- K% {! d" s/ u
- (defun set_action_tiles ()
* k$ c% {$ r Y( P& \. o) B- R - (action_tile "cancel" "(dismiss_dialog 0)")
# P& Q4 X- j* C8 Q. R - (action_tile "accept" "(dismiss_dialog 1)")
- M* e1 {# N' a! C! @ - (action_tile "help" "(help \"\" help_entry)")0 T+ m6 w& t4 y1 m
- (action_tile "b_color" "(getcolor)")( _$ p, y1 c6 u/ E0 F# {3 o% f
- (action_tile "show_image" "(getcolor)")( h( C2 w" m/ \* s( h
- (action_tile "b_name" "(setq elayer (getlayer))")9 \6 W+ A; o% N" v j6 B9 p1 b/ Z
- (action_tile "b_line" "(setq eltype (getltype))"); g9 g" s2 Y( ]7 k1 J) w
- (action_tile "eb_thickness" "(getthickness $value)")
9 J* S3 Z% ], {8 f - (action_tile "eb_ltscale" "(getltscale $value)")7 ]% b9 k2 f( c
- . s) Q' B& m" A; r; A
- (action_tile "pick_1" "(dismiss_dialog 3)")9 r# b0 u( M# B m+ a% h
- (action_tile "pick_2" "(dismiss_dialog 4)"); B$ t) C. R* q" ]) }
- (action_tile "pick_3" "(dismiss_dialog 5)")
/ k) c) ?' j- o3 H, K3 ] - (action_tile "pick_4" "(dismiss_dialog 6)")$ S" q2 g) V C( a, u
- (action_tile "x1_pt" "(ver_x1 $value)")
' e" R4 y6 y2 s' ~8 L% Z# L - (action_tile "y1_pt" "(ver_y1 $value)")% C2 Q+ m# e& T/ E& R
- (action_tile "z1_pt" "(ver_z1 $value)")- E# o- n4 G, X/ S5 ?
- (action_tile "x2_pt" "(ver_x2 $value)")0 T2 S. b( p7 P% U) Y& C4 K! w
- (action_tile "y2_pt" "(ver_y2 $value)")
! M% u) u5 b; P7 m3 h - (action_tile "z2_pt" "(ver_z2 $value)")7 g# M- W& y: i/ W Z4 Z( N& s3 S
- (action_tile "x3_pt" "(ver_x3 $value)")
0 [; X/ x% b- \( V - (action_tile "y3_pt" "(ver_y3 $value)")
( Q0 c# p, G7 U" z; [- o' k4 A% u' A - (action_tile "z3_pt" "(ver_z3 $value)")
* }+ } P! x* i# \ h/ i1 Z4 K6 i - (action_tile "x4_pt" "(ver_x4 $value)")
* k/ U1 D+ b9 q - (action_tile "y4_pt" "(ver_y4 $value)")7 H$ F0 b0 S X9 J2 R
- (action_tile "z4_pt" "(ver_4 $value)")
. i( B9 I5 Y# d6 q' z; x* b
+ {5 q# ~: w! v* ]4 M' ]3 R- ;; Action tiles for Xline & Ray
4 H; Z8 X1 K% b/ ]+ v: G8 k- `' u2 } - (action_tile "xline_x1" "(ver_xline_x1 $value)")
& [% w. v) K' S2 \ - (action_tile "xline_y1" "(ver_xline_y1 $value)")
3 i( b( {) d2 ~9 ]6 o7 k- D" I7 O - (action_tile "xline_z1" "(ver_xline_z1 $value)"); v* G* |0 ~) n9 g* O/ u
- (action_tile "xline_x2" "(ver_xline_x2 $value)")0 ^- W0 o- o( O; V. x
- (action_tile "xline_y2" "(ver_xline_y2 $value)")
/ `' ?& o' O/ @ - (action_tile "xline_z2" "(ver_xline_z2 $value)")4 Q) w7 H1 a8 q% P
$ t0 Z6 v9 s" B* w1 M6 w- (action_tile "edge_1" "(setq edge1 $value)")) {8 K [! U( ]' r3 C
- (action_tile "edge_2" "(setq edge2 $value)") c: L X. U* ^7 |- `* K% T( u! w
- (action_tile "edge_3" "(setq edge3 $value)")/ M; b0 C& P6 u O
- (action_tile "edge_4" "(setq edge4 $value)")
/ p# f" V- o: ^; u: o8 h
7 @, j" g: L' H5 [2 I0 c2 \- (action_tile "radius" "(ver_rad $value)")( u5 o% s2 y: i6 V: Y2 D4 V
- (action_tile "st_ang" "(ver_ang1 $value)")/ @3 W5 H+ y3 X# Q# ^: e. {
- (action_tile "end_ang" "(ver_ang2 $value)")
/ _# L7 Q4 l# ]5 l) I: C - (action_tile "end_eang" "(ver_eang $value)")
Q2 F1 q. K! K - (action_tile "minrad" "(ver_minrad $value)")
; {" O& H( u8 H3 f* w- T - (action_tile "majrad" "(ver_majrad $value)")
$ F* W7 N. P" x - . { r& e* T% w7 p
- (action_tile "xscale" "(ver_xscl $value)")
[* E2 T* d. g% w4 E7 r - (action_tile "yscale" "(ver_yscl $value)"); o& i! c }) A) d; _% N
- (action_tile "zscale" "(ver_zscl $value)")
' ~9 R6 s" b" y8 b% M' s1 z - (action_tile "rot" "(ver_rot $value)")+ A% b f) {" H1 N) G
- (action_tile "columns" "(ver_col $value)")/ s1 x& H0 i9 z2 m6 |
- (action_tile "rows" "(ver_row $value)")/ |1 c- m8 b5 o+ _. L, s. q; f9 L
- (action_tile "col_sp" "(ver_colsp $value)")
7 s, `8 P8 h; S: \ - (action_tile "row_sp" "(ver_rowsp $value)")
7 \% Z; x- D& q) H% G
4 z9 @' ^2 l* H- (action_tile "hght" "(ver_hght $value)")
1 R4 C) F) [+ H# g; u7 C - (action_tile "wid" "(ver_wid $value)")
4 g$ s7 U2 q# o& s2 U% e( H - (action_tile "obl" "(ver_obl $value)")
# n L5 w+ ~, z8 J! m - (action_tile "style" "(style_act $value)")
0 I3 K z: \* p, ?6 M
* x9 D, Z0 O. X0 V2 F. x6 x- (action_tile "t_string" "(ddgettext)")- v+ ~7 B2 Z( Q' N1 f+ x- S) [5 v
- (action_tile "tag" "(ver_tag)")
! {9 Z. Y6 L$ o8 Q5 P - (action_tile "prompt" "(ddgetprompt)")
! J- q& c( h# \0 z5 p+ @; \ - (action_tile "bkwd" "(setq bkwd (atoi $value))")
/ s4 ? E+ [; f - (action_tile "upsd" "(setq upsd (atoi $value))")
5 m% E& R7 i) a- d" i, y# s - (action_tile "inv" "(setq inv (atoi $value))")" j( p8 u! i. K' [: c% i
- (action_tile "con" "(setq con (atoi $value))")
* o6 ]# g% O8 { - (action_tile "ver" "(setq vfy (atoi $value))")! @. ]; F2 U! c7 P9 m9 X
- (action_tile "pre" "(setq pre (atoi $value))"): Z3 V+ I. J: ?# C M) n
- (action_tile "popup_just" "(jlist_act $value)")
! I& c' B$ K v2 f! D4 h2 ^( c* \, ]3 C
9 v$ z6 _3 h, h- \0 K- (action_tile "closed" "(setq closed $value)")
8 `# O% A0 L7 y* E, O9 J+ h - (action_tile "ltgen" "(setq ltgen $value)")
- N$ g" G0 l# |0 H% G - (action_tile "closedm" "(setq closedm $value)")
1 o! g3 ]2 F- p0 T) c. {3 V - (action_tile "closedn" "(setq closedn $value)")' ^# T3 V: F( P4 j
- (action_tile "next_v" "(next_vertex)")9 V: m9 l, z: D7 M3 o
- (action_tile "xcliponoff" "(setq xcliponoff $value)")
( Q" j. p% O9 w
' T, J1 ^- E5 b5 u- (action_tile "next_cntlpt" "(next_cntl_pt)")9 J8 Y) T& r1 k/ x. U( O3 n
- (action_tile "next_datapt" "(next_data_pt)")
' b) J( A5 X) J" b; i7 z* e) |9 G - 3 ?9 W. D, {& {& d* l- S. M' x
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
8 K$ ^6 f7 x, }8 I( h, q' J5 U - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")9 J @, U [1 g6 G; e
- (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
3 @2 j1 v) B% V) j. s - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
' K6 \# c: w* F0 B+ ]5 C - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")+ s& j5 ]" L) P/ h) E' Q. _6 \) G
5 e9 W% n2 f' a+ y0 Y- (action_tile "u" "(ver_u $value)")
( t+ b; p" ~2 Y9 s: S9 _* t - (action_tile "v" "(ver_v $value)")
" d* I- V8 B) E - )1 }8 `& k9 C9 C# V* B& F
- ( P* x0 L. H2 u/ x7 |( r) ~/ m
- (defun ddgettext()
/ C0 ~$ }4 I% A2 H* ?0 X - (setq text (get_tile "t_string")); C9 v' N8 d6 `
- )0 j8 S7 A' l4 c2 ^5 q6 ~2 _: @5 S
5 E7 w. t4 _# d- (defun ddgetprompt()2 O" `. \( f8 Q B' X w$ \
- (setq atprompt (get_tile "prompt"))# N$ I- | `8 ?! V
- )
& y+ }9 `* f3 C# H; [
/ y9 ]/ ?8 ]+ m# {) Y( e- ;; As OW doesn't support disabling of individual radio buttons within
3 a7 V! ~ D3 a9 ] - ;; clusters, a check must be performed as to the legitimacy of the& ~' i8 s) S$ j5 C( j) i" |
- ;; button pushed and reset if necessary.( d1 r. B1 w4 w+ V
- (defun radio_gaga (pushed)3 ]7 P8 B# C2 P8 S; \
- (cond
, N0 o8 F: b/ K1 T m. l - ((and (= pltype "3D polyline")
- j5 I" ` J. V/ L; ^, Y - (or (= pushed "fit")
0 Z% J6 W I% D% a+ @& `+ I) a - (= pushed "bezier")6 w( z3 v) F* T5 ]
- ) U- o& F1 ?6 i0 }: X
- )
& j3 j" L# t9 v5 y. v3 ~4 u - (set_tile "none" "1")& J; t% V$ t: f2 f ~% J
- nil' k& }. p, b O7 Q! b! q; e/ z7 P
- )
$ @' L( t) r8 I7 ]4 K - ((and (= pltype "3D mesh")& [. z ?# T8 O
- (= "fit" pushed)
) I& R* H. L$ \0 v2 h& i' h' w& } - )
# l7 K3 {# K. l- f1 n8 z3 {% N; A - (set_tile "none" "1")$ Q4 [: R* h- G
- nil
* e3 H r' _0 g) F3 j& B2 k - )
+ z1 Z! X7 M4 k" _ - ((= pltype "Polyface mesh")) @; T \9 j- l' X! n" S+ G7 y) G7 x
- (set_tile "none" "1")8 u, v: Q! X* ]5 V- n( p. g
- nil
\* w7 H/ t4 W# k% V( t9 U - )1 N* r$ r' f$ ]: ]% q, x9 Z4 `
- ((and (= pltype "2D polyline")
, h3 e- }4 @. h9 v - (= "bezier" pushed)0 g1 {/ ?9 |: E; b5 G0 C& F0 c; e
- )
4 L3 H4 w, W1 y3 a: b9 E - (set_tile "none" "1")' S+ ~* z# ~8 S6 r% X9 Y; D/ a
- nil
# G4 H$ i$ Q" T( m d! u* J - )
& p0 |/ Z- E3 E1 K3 g1 W$ C! ? - (T)
# W0 {$ Z: q, Z7 a. g - )+ K( ~; `& F% k9 c9 d& T
- )& y) a. i" Y- A! f+ }- a A
- ;;
: ^0 G3 `# k: F) M - (defun set_uv (type_n)" J: ?8 Q8 C+ Z# K! e
- (setq spltype type_n), M: A6 U. L9 Y! O! t" Q, v( O
- (if (= pltype "3D mesh")
1 M5 h _: ~6 u' w - (if (= spltype 0)
0 G5 U* f# t R( s; m4 G3 Z) y - (progn
+ t9 i$ z J0 b, |( A9 E - (set_tile "u" (itoa (setq u 0)))/ V# i9 Q" W0 I
- (set_tile "v" (itoa (setq v 0)))0 b, o" H6 r( D
- )* S d! `( f' n
- (progn
' @2 K& [7 \: H3 h& g0 T - (if (= u 0)8 `' r! c) d* |/ C* \. n
- (set_tile "u" (itoa (setq u (getvar "surfu")))): Q, r6 p$ c+ k/ W) P
- )9 P( b" Z6 L( T. p$ h
- (if (= v 0)9 e9 p/ G* v* }
- (set_tile "v" (itoa (setq v (getvar "surfv"))))
; e0 f& x9 S, Y/ Z! \9 q# L/ f - )
' y. B" A* t- u2 n9 A9 m - )
$ x: B$ [4 n% q+ I* s - ). z" m3 ?2 A' d2 G1 p
- ); @' O. k- H& J6 s0 c4 }
- ), j* @2 B0 A. z0 b
- ! |1 f$ T1 Y" O. n( l4 c1 o
- 9 E( t/ ?# f1 I4 k' T
- ;;
A/ J+ o5 y# l8 a - ;; Verification functions
8 R7 W( R! R2 p) n, J - ;;" ? i* Q" X$ F7 ?8 j$ o1 }- h
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or; w# H" D9 v" r- [" K- \
- ;; distance value, the tile name, and the previous value as arguments.& ? ~; _. N% P* k& W' _
- ;; If the distance is valid, it returns the distance and resets the tile.* L* `% P% @6 K# J: r) V
- ;; Otherwise, it returns the previous value, sets the error tile and keeps
% H" [5 ^% q$ w) c: [/ O - ;; focus on the tile. Shifting focus to the tile with invalid value can3 N# e! `0 [9 T) W2 l! s
- ;; trigger a callback from another tile whose value is valid. In order
% [" ^: ^1 D% |+ n* v+ ^8 ]2 E - ;; to keep the error message from being cleared by this secondary callback, m9 B5 |+ N: @! v3 y2 q h
- ;; the variable errchk is set and checked. The last-tile variable is set% N* e: C# K3 o
- ;; and checked to ensure the error message is properly cleared when the+ @& J& O% z+ d/ `+ q7 q1 ?5 j, W
- ;; user corrects the value and hits return.
, `6 U: O9 @( \0 ~ - ;;) W) T# V5 v) h% }0 X
- (defun verify_d (tile value old-value / coord valid errmsg) Y0 i2 b' z* y5 D9 d
- (setq valid nil errmsg "Invalid input value.")
$ d: @& A: P. j* ^7 P8 } - (if (setq coord (distof value))5 N6 Q6 q! s2 A: J8 a6 i' w3 n
- (progn
/ i$ P5 E) {# b+ P a% [ k - (cond
4 j- b- C- D% D - ((or (= tile "radius")1 X5 A6 ]) C0 b
- (= tile "hght")
7 y* h$ `/ Y4 ? - (= tile "wid")
9 z# ]7 m! C- w8 L2 { - (= tile "majrad")" ]* W8 R+ k% \/ b
- (= tile "minrad")
1 ^: b9 G6 e5 n! I - (= tile "eb_ltscale")
& I& \. R/ o! d - )( I1 `7 P7 [4 z7 r ? w
- (if (> coord 0)
$ _9 F0 v% G/ t, ^7 w' B - (setq valid T)
0 g1 b; d' O4 N% H - (setq errmsg "Value must be positive and nonzero.")+ _9 E) G- m& W; J7 j/ j
- )
2 E8 J5 @- L" w - )
' o3 e, h, Q( R. C6 U3 i - ((or (= tile "xscale")
0 r. T p. I) ?2 G - (= tile "yscale")$ S* J0 t# E& W+ x- c
- (= tile "zscale")$ F* v( r! }9 C# V: j
- )& d2 l' N5 x& b7 W$ d1 _; w$ e
- (if (/= coord 0), _, H* U1 D# d- p' n! g
- (setq valid T)7 V5 w( }5 @: E$ Y; r# Z
- (setq errmsg "Value must be nonzero.")8 _3 |0 ]$ O) _1 F, }, M# n4 h7 f
- )
/ ^% Z1 ]; ~- j - )
! g4 T7 h: O! Q$ F; ? - (T (setq valid T))& r5 H7 ~4 y5 S+ X1 R. [1 p0 X
- )
0 ?1 E/ k( A5 [4 e; p - )4 b0 H8 i3 b8 _; _, A! m
- (setq valid nil)
3 E! [ x y0 x! e8 j% L& f# v2 O - )0 e0 b' a0 V c) p
- (if valid8 N E9 X, [3 X1 q
- (progn
, s1 V, J6 e' Y - (if (or (= errchk 0) (= tile last-tile))
2 n+ `9 N8 e2 x$ \ - (set_tile "error" "")
1 M$ s) v5 O3 \! i4 V - )7 L( V& P9 P4 l0 O
- (set_tile tile (ai_rtos coord))9 P. S" C% w3 Y' ~9 h
- (setq errchk 0)
/ n% o4 P& L& Q3 n7 g - (setq last-tile tile)
3 ^. m# ^& T9 F7 h - coord
. F, _9 \; }; I3 ~9 d0 v# M$ Z2 S - )
, t5 ~8 B# d* Q- x+ C0 |' F, t" ~$ T- m - (progn, G8 P0 H1 e0 k0 U# S' s
- (mode_tile tile 2) ; Move focus to offending field2 k% Q+ \" |6 _3 u7 I( L
- (mode_tile tile 3) ; Select offending text
4 J& U, C' ~0 [/ b - (set_tile "error" errmsg)
5 d+ z. W- u; r" o$ V: ` - (setq errchk 1)
6 o$ [. x: T+ ?* C9 t( o - (setq last-tile tile)1 m+ Q& P K6 S" A
- old-value
$ {- l$ B4 x) \% `2 K7 N7 C - )
4 B5 t2 a" l& q. F# L$ `, a' P - )
% a7 _3 Z Y+ X! ^# C8 N7 U2 o - )$ q- X8 ^3 X$ @& X- u# O$ I0 }7 g
- ;; Function for Xline coord edit box checking.8 \& |- T# F" z2 N
- (defun verify_xline (tile value old-value / coord valid errmsg)# j& L! x- k; U' A
- (setq valid nil errmsg "Invalid input value.")
7 k& ^+ M5 o3 B3 d' B) B - (if (setq coord (distof value))
% M- X; F# q- \' C - (setq valid T)
' q9 {; T- f( a) z - (setq valid nil)
6 c! ~' g8 C* b - )! c; X+ Y' i5 m2 {
- (if (and coord
2 ^$ d7 d8 f; S' l, X - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
4 c1 y# m2 O) ?! u, e3 j4 {! r - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
% R0 }2 n+ G* z% N" u) J - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
8 b. \: W# H: O: R k9 ~ - )
: k- c& P$ U% w8 J+ h - )
/ V! A u1 P" T$ x) W5 h - (progn* ~5 ^) n$ s. D$ a; j
- (setq errmsg. p* a$ @1 x7 t3 v( K/ |
- "The Root point and the Second point cannot be equal.")* ^# L' ?" S9 p/ i0 z
- (setq valid nil)
+ `" G( k, x0 J& O - )
6 R' A, w) u* m2 l9 l& @, y - ), A1 O. S; i1 J, y! q
- (if valid
# ~1 h1 o' @. s; i: s& r - (progn
( [% H0 B% M' g! y/ V5 h - (if (or (= errchk 0) (= tile last-tile))
4 n% |+ N7 F4 O! g# a - (set_tile "error" "")
; O1 \, h& Z$ M7 B! t - )! b2 j. Y9 V: h- r2 w* V. c( \
- (set_tile tile (ai_rtos coord))
2 w* e9 A7 a' N, `. p# V - (setq errchk 0)* w! `/ h6 q9 |5 `4 \/ X
- (setq last-tile tile)
! p( E f) O0 M3 N4 J/ v - coord
4 _; f) ]. [0 S9 c! P. a - )' ]1 B' V4 x* p
- (progn
9 n5 f0 Q. Z4 S. w s5 h - (mode_tile tile 2) ; Move focus to offending field
( @5 }( _( \& b - (mode_tile tile 3) ; Select offending text
2 p% X6 S; U0 T% } - (set_tile "error" errmsg)
6 L8 B) g, D7 j& N - (setq errchk 1): R$ L& g2 N& V4 r
- (setq last-tile tile)7 Y5 K! b8 P, A# u7 \* h/ v
- old-value# a0 d3 S3 m' e% j
- )' H) G; A9 D. s3 }0 o. i. o
- )
/ V3 H4 g$ x1 e3 m - )
7 a. B. S; p) y0 w* a* M9 _ - 9 W4 h+ {% J! e: g7 a) a* Q
- ;;+ B8 Q9 ]/ `( ~" c+ |) m4 ]
- ;; Verify angle function. This takes an angle and a tile name as arguments.
, L" Q; M1 U# u: ?1 Y - ;; If the angle is valid, it returns the angle and resets the tile.
0 j! J' v+ l6 x- @+ q* ? - ;; Otherwise, it sets the error tile and keeps focus on the tile.
) c) s& F/ p, G; c - ;;
4 L" J* I3 K A2 K f4 ^: d - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)' {% u4 b$ S+ Q2 g( |2 \/ M
- (setq valid nil
/ T I) q; A2 e* W4 | - errmsg "Illegal input value."
6 d$ @- @& M/ T4 U1 k& z+ Q - )
$ L% ^. y6 |' N: S - (if (setq ang (angtof value))
# L" p4 r) r$ ^( `% i - (cond
/ w; B% G9 ]6 H7 E; g( R3 ]0 z - ((= tile "obl") ; Restrict obliquing angle
% i k2 M$ F# H9 h7 p3 G - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))" d8 @8 R0 s1 m. G' w, n
- (if (or (<= ang oblqmax): D; [ `8 s" C' u- t3 [% m
- (>= ang (- (* 2.0 PI) oblqmax))
) s0 x9 ]' j! r% m# } - )! K3 Q4 ]; I5 C) x- t
- (setq valid T)% B6 L. I6 L: x0 u
- (setq errmsg' s4 v; ]" I+ B: A7 v2 L1 b
- "Value must be between -85 and +85 degrees.")1 X$ `& G# `. y! W! }2 D
- ) r% |) q6 l9 H3 b
- )& C3 K6 \; Q$ z" ? _
- (T (setq valid T)) ; Other angles not restricted
: a1 C: N4 D$ Q - )
+ y4 D$ ^* ~$ O8 s( n - (setq valid nil) ; Invalid angle input
( m( B; A9 y/ r1 [- ]/ f$ m# R- v - )- i; b9 R5 @, |; |( V
- (if valid
2 \, H6 w2 P# f/ c% \1 V* ?/ e - (progn; S3 Z8 I: N: p/ v' P% U: l
- (if (or (= errchk 0) (= tile last-tile))2 }) J k* z& Z+ E5 q& x1 l) I
- (set_tile "error" "")7 a3 Z3 D$ M5 F5 K" a8 A* b: \
- )
5 V6 J4 K6 j; s# w% o& P7 a, A - (set_tile tile (ai_angtos ang))& B4 p4 J- D& I7 U
- (setq errchk 0)
% I9 K4 y) p, q9 E9 {5 f/ a: d - (setq last-tile tile)
3 R8 V% Z$ [& E4 X8 q) p3 w - ang8 ?" N6 ?5 ~4 g+ q
- )
9 ]) i, \* l/ L$ v! K ?9 D+ _3 z6 P - (progn, |2 z/ n8 i8 E# G
- (mode_tile tile 2) ; Move focus to offending field
1 f$ a8 ~- O# m2 g9 y - (mode_tile tile 3) ; Select offending text$ r+ A8 f) s1 D- \
- (setq last-tile tile)
5 z' Z. t5 a) c# E - (setq errchk 1)/ n! v& V# r6 O/ c* w
- (set_tile "error" errmsg)# K n; h7 h: M& L1 v6 d( I/ R3 p
- old-value
5 c' { N1 R I& E( A! P+ R( r9 T - )
; Q% Z3 F1 l' n6 T# t- v% v c1 Q* w - )
& Q2 h" n# E" \& L$ d - ): _$ w/ x) F: J- g( I
- ;;
4 W5 t' ]; h, g. G - ;; Verify angle function. This takes an angle and a tile name as arguments.
7 d$ g$ U# z+ }8 K% Y - ;; If the angle is valid, it returns the angle and resets the tile.9 `) Q, D" c8 T# q( x! j
- ;; Otherwise, it sets the error tile and keeps focus on the tile.! t0 |- y J/ M$ D* c
- ;; This function is specifically for the end angle of the ellipse object. If: q" I) U e) z! J& P1 _( |
- ;; the end angle resolves to zero then we want to display it as 360.
3 G2 r1 p$ P6 i+ @; U0 t - ;;/ |( M2 ~; ?* c9 b
- (defun verify_ae (tile value old-value / ang tempend)# o% U( p: w+ E2 W0 b7 c
- (if (setq ang (angtof value))
/ B6 i& h$ p1 L" Y& {/ }/ { - (progn: g9 {' k) L: R+ Z2 @* \6 n
- (if (or (= errchk 0) (= tile last-tile))( p! {$ Z9 n8 J5 L! E; n& c
- (set_tile "error" "")% j7 R8 Q, W% D {
- )
' k& {! b$ J- D# ]" J! t - (setq tempend (ai_angtos ang))& a: \* \- y! a: T
- (if (= tempend "0")& G& s9 o) p; Q2 n9 e
- (set_tile tile "360")9 R4 @/ p" ?9 F6 v6 ^ G6 M& i
- (set_tile tile tempend)
- ]* i% C5 D3 `# W - )
0 i4 C3 Z3 O9 Z9 w4 j n - (setq errchk 0)4 {# k8 F1 g7 J, a6 k
- (setq last-tile tile)
( h! W9 V, j+ \' q8 P - ang
4 }. L! _) h- {8 s - )# X& W0 h! I0 E" }/ J- p4 K
- (progn
% r3 V8 [$ k ^% q3 g/ X - (mode_tile tile 2) ; Move focus to offending field! r* y L5 O! V+ V6 T: P; F1 Z% Y
- (mode_tile tile 3) ; Select offending text3 k. e D" j8 ~! y$ ]% H6 a7 g- a- X
- (setq last-tile tile)
4 K m1 D) R4 K$ [ - (setq errchk 1)# |& H# ?- ~$ b; V
- (set_tile "error" "Illegal input value.")
! _7 ~8 G0 J/ v' I! f, z - old-value- H2 t# ^4 j1 u
- )6 X& ]/ Q3 `7 K( j
- )
6 k/ S# |# x/ W, X3 [) W% n% \9 Q3 l% Z - )- d7 p. o5 q) q% d) \5 f) M7 |
- ;;' R% M, m- @! I2 b
- ;; Verify integer function. This takes an integer and a tile name as
$ Z$ K: F( }; w8 u" l [ - ;; arguments. If the integer is valid, it returns the integer and resets the
: l: v& S0 I& g. j' G$ B) Q9 ` - ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
, ]4 D2 M/ ?! v/ M - ;;
b _: h2 I. n3 T# ?* R - (defun verify_i (tile value old-value / int valid errmsg)
3 b& r a' k1 O$ K' q - (setq valid nil)% @1 L9 Z9 L& J( d' W
- (setq errmsg "Value must be an integer.")
3 I6 v" b+ D, Y+ p1 s* [7 l - (setq int (atoi value))" f" [9 ^; F/ {6 W
- (if (setq intchk (distof value))
4 H4 L* b" n8 Z8 m9 U) | - (cond
6 e4 ^1 x0 j$ L* d+ _# p - ((or (= tile "columns") (= tile "rows"))+ Q, W/ Z* c& k! n
- (if (and (= int intchk)
! E7 l/ y5 K$ M/ L" I - (>= int 0)$ |, \, X! m( I j5 W. b: l
- (<= int 32767)
N" w$ A1 h2 V& x- D - )
* ?% R$ }" _4 k4 n; `; F8 F6 m& [ - (setq valid T)- i8 Q8 g; H5 _$ y" `
- (setq errmsg "Value must be an integer between 0 and 32767.")8 ~3 G2 T+ L, k2 k- {. F6 h/ C1 K
- )
3 I- ^& r# v4 X& H - )) i3 Z9 H: d; m5 e
- ((and (or (= tile "u") (= tile "v")))
: W6 ?. a8 z, ~5 u; l9 ?1 l - (if (and (= int intchk)
3 P! X, f2 j' i$ }, R7 a9 [ - (>= int 0)
$ J# t1 g$ B. C. o$ H - (< int 201)8 a$ X$ }! G; N( ]
- ). w5 K* d \) T% K. V5 J
- (setq valid T)/ }. S/ z7 R3 L; `) \* x. T w
- (setq errmsg "Value must be an integer between 0 and 200.")
: G: t- J% e, G3 F6 u! G; i - ): d) U8 B$ w; Q
- )2 l/ E( k% H8 r$ Y8 h" r& o
- )$ N1 _& v' k. b" ?" m
- )
8 C7 d5 ~( w+ @# s& w7 ` - (if valid1 g9 X! K' n# S6 w+ N# S: X) ^
- (progn. a* {* h$ _2 V- J. F6 M4 ~
- (if (or (= errchk 0) (= tile last-tile))
: K4 i3 m" r _ - (set_tile "error" "")
) D* k/ K q% H& o - )% |' P% j( o, V1 o1 I D
- (set_tile tile (itoa int))
8 b4 y/ X3 b) w5 U$ Y+ m; T1 y - (setq errchk 0)7 t5 O$ L5 X; u
- (setq last-tile tile)
$ Z( x: G; F" D( ^( |5 m' K - int
; [ B/ t; q& g O# w - )7 ~: B2 E- h% e3 u8 b2 T% r2 V
- (progn* y* V/ q: n( {. E
- (mode_tile tile 2) ; Move focus to offending field/ M6 [% f- R' u8 c4 E, @
- (mode_tile tile 3) ; Select offending text
& U$ I @+ _" y) T - (set_tile "error" errmsg)
# K7 z' y% K# H6 g; v - (setq errchk 1)
, o+ |) F4 O( I& ^ - (setq last-tile tile)
4 Q# N) U) U) j$ {( N$ g# g - old-value
W9 r1 Q" b W$ `$ p - )
) W1 R2 ?% g/ y - )
9 u5 ^$ h# `' I) V' H$ |2 V - ); P& H2 \2 p1 K# B# [& c. Q4 k
- ;;
" s1 G5 v% o+ B9 f: ^. u - ;; Functions that verify tile values for integers, m4 `+ i p% [( l% X
- ;;
7 ?, z o2 Z$ |6 k) f1 s. Y - (defun ver_col (value)
' D: k9 F8 X$ {0 J+ C- ~ - (setq columns (verify_i "columns" value columns))
, L: Y5 G5 q( c' {& K& s7 P4 j - )
! y- S+ g; ^ ~" w! t - (defun ver_row (value)/ C- k5 A/ P* H7 F
- (setq rows (verify_i "rows" value rows))9 s6 o' }# B2 g. g
- )9 e$ x8 h: x$ C) J' t: f7 C
- (defun ver_u (value)( Y9 R" Q- Q* m( y% | o& w8 f* w
- (setq u (verify_i "u" value u))* o4 H% j5 z" p
- )
: v0 L& K/ U8 V# `- ?6 l7 q5 S - (defun ver_v (value)
6 B8 l7 B. ~; D3 h3 N9 o7 _- V0 { - (setq v (verify_i "v" value v))- D8 U# W: ]; i
- )" t e. m3 {* S7 B# ^( Q; C
- ;;
3 x2 f) A7 q: D- _5 w% j - ;; Functions that verify tile values for reals
. P# O1 I& E2 |; r5 t" ] - ;;# f# I% k5 T2 q
- (defun ver_x1 (value). o# c) e( [! g. }
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
- }; E8 A! b# Z1 t. J - )
9 {# `9 F) D5 Y. P7 l) J - (defun ver_y1 (value), Z' e( E, q: L( I$ {& C* {9 v
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
! _7 ]) s! r& T9 h+ x - )
( j# k- l6 ]0 [6 j5 _ - (defun ver_z1 (value)9 l4 K6 L% X6 K
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc)), F! _7 U2 a: z$ F# \
- )
* n( V4 S, k+ J4 w7 l' B - (defun ver_x2 (value)7 j4 L2 T& |, ~" m! f0 G1 L
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))0 N5 p! g" b* Q* v
- )6 ^0 R* o$ V }8 j1 @
- (defun ver_y2 (value)
! G( c) n* r4 O: A* G - (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
# b4 Q8 Q0 [3 b - )
7 s$ f* b: _! ?1 k% v! A4 U - (defun ver_z2 (value)
/ _' B. p- t' u5 `6 L& { - (if (setq z2 (verify_d "z2_pt" value z2)) (calc))5 x/ T. E6 l T# l* B7 k% j5 o0 N
- )3 e% v7 n- u' }( Z" {" Z
- (defun ver_x3 (value)
- Y0 f& e0 `7 g+ o1 R9 k: E - (setq x3 (verify_d "x3_pt" value x3))3 C8 Q9 j2 w6 ~' r( `* f1 o, D
- ) z8 l/ S# W5 g; f
- (defun ver_y3 (value)$ ~8 y0 Z9 P( z. o
- (setq y3 (verify_d "y3_pt" value y3))
: I5 L* |9 C- U2 K2 y6 L/ B; Y - )
$ O6 I+ A1 D- E; r% h - (defun ver_z3 (value), d7 I9 U! s+ ^' y
- (setq z3 (verify_d "z3_pt" value z3))0 S% L( k' g8 P" E! J5 e
- )
: j. K; F/ `* y. H. w0 ? - (defun ver_x4 (value)( [4 A* K& a7 @9 w4 }! d# w# }
- (setq x4 (verify_d "x4_pt" value x4))
8 X$ v% y: C! N6 ` - )
i& `3 w" S0 h3 t! s; `' [' b( K - (defun ver_y4 (value), E4 f1 ^4 P/ e4 J) m! o
- (setq y4 (verify_d "y4_pt" value y4))
! ^8 G9 l! F, F& L8 L( p) S - )
- N4 R3 l" V7 c D( y$ o( d - (defun ver_4 (value)' Y G. L# N6 X' Q
- (setq z4 (verify_d "z4_pt" value z4))4 G' [+ ]: t) H& K: F3 E! T1 ?
- )+ {# {. t2 V( G- _0 v
- (defun ver_xscl (value)
% t; ^% o4 z5 W# V2 h! W: o0 @5 X - (setq xscale (verify_d "xscale" value xscale))3 i, P" L7 b0 c3 T! i5 e
- )# n o2 b8 o \
- (defun ver_yscl (value)
5 u6 z% v T9 R; a' m2 O - (setq yscale (verify_d "yscale" value yscale))# N5 D5 @" Z) c$ z. Z
- )
% C, s% `! p; p" e$ P( t* d0 f - (defun ver_zscl (value)
2 u2 [) B6 i9 U! ^2 q - (setq zscale (verify_d "zscale" value zscale))
2 Z, `' S$ `/ { - )
' l6 r" I: r: h7 o' E9 v) M - (defun ver_colsp (value)
6 G+ J; h* v1 i- x1 W5 o0 r - (setq col-sp (verify_d "col_sp" value col-sp)) z* o) @& z4 Y$ g' B
- )& q: k6 q. k0 u
- (defun ver_rowsp (value)2 ^- A' J8 a' T8 N6 ? O! P! C
- (setq row-sp (verify_d "row_sp" value row-sp))6 m) I, h% v: c' w2 d
- )
$ v0 T8 `+ m; H+ v6 U( J: W4 O - (defun xclip ()
, H7 \8 _; J/ @ {4 Q* h/ q - (setq xclipmode t)
$ D7 a; L' t+ Q - (if (= xcliponoff "1")
) j9 N; X. d4 E( B3 ~" T - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")# f7 h" P- Y+ [
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")/ A( P6 j) c6 B/ e
- ). \ p3 t% u, `0 F' o5 ~
- )
J( M; c. }3 O - (defun ver_rad (value)' B! V- F& ]( S3 v% ]; Z
- (if (setq radius (verify_d "radius" value radius))9 Z) S9 D" Z4 { _
- (calc)1 i" R! R0 p @% u9 o
- )
( p( {* U+ I; x+ B" j; V- X - ) z7 |; m# N) S. h- W$ n8 ~0 W
- (defun ver_majrad (value)% e c" f# ?( _0 H% l
- (if (setq majrad (verify_d "majrad" value majrad))
( w) i, ?5 x% s9 K" D" s0 n5 s4 U - (ell_calc_newval "majrad")
! u* X K8 n9 v9 p - )! N" a9 E% a8 C: D
- )/ c f/ |4 L: T* g; E9 ~0 h
- (defun ver_minrad (value)
. }1 e+ R7 k6 _/ S- F - (if (setq minrad (verify_d "minrad" value minrad))
" I% ^7 r6 {4 s! E0 n9 U" h - (ell_calc_newval "minrad")
. c6 h6 b D' o6 H! j8 A* T - )
9 h' p3 {( ^3 C3 w - )
6 Y: x4 H0 m" u& g" U6 S" H - (defun ver_hght (value). D/ L4 q5 i* f8 ]' u
- (setq hght (verify_d "hght" value hght))9 w+ X( y c8 f% o; j) v# g
- )
1 M1 U! K' U" e$ h' f3 _ - (defun ver_wid (value)$ R/ V9 f2 o: f% Z. h, A& n2 T0 X
- (setq wid (verify_d "wid" value wid))
& R- t. J- Z/ K5 G1 v5 e- p - )
" E0 e$ k8 ~2 H - (defun ver_xline_x1 (value / temp)
; n& h: p h/ f; B5 h" e- _, c - (setq temp xline_x1)+ X0 M$ {' Q; F+ c
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))* |+ ~- d; }9 L- v( V: R
- (if (/= temp xline_x1)( {8 A7 U3 h, B' U( z. Q
- (progn (modify_xline 0) (set_tile_dirv) )
4 B5 j. f* d, Y6 O' ?1 A8 c - )
9 a5 ]5 |+ X# p+ L - )9 \- E8 Z" |. C+ e0 \' [9 z
- (defun ver_xline_y1 (value / temp)8 E7 p O6 J. i5 O" |: T: p$ h& d
- (setq temp xline_y1)
% S' e$ c$ q) ]2 W9 X- G - (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
0 L7 J4 M9 P8 S7 K1 `( s; O; [ - (if (/= temp xline_y1)
# [) L$ F Y$ J) ` h4 { - (progn (modify_xline 0) (set_tile_dirv) )0 }0 t+ W1 G7 s
- )9 \& P9 @( z: j7 u7 C
- )
+ N2 l% v( W1 ` - (defun ver_xline_z1 (value / temp)
* M6 a, B X5 T$ W" ]" } - (setq temp xline_z1)
5 g( r- U/ f. f% i9 U - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))4 L- M% z, \+ j A6 @
- (if (/= temp xline_z1)
4 f3 {# |" [* q: M- T" U# I( | - (progn (modify_xline 0) (set_tile_dirv) )0 `% p: l+ M2 \. K
- )
j8 Z' ^) R, ]3 c* l: J - )
; M f) P* Q" ] - (defun ver_xline_x2 (value / temp)2 d2 K+ y7 W: b5 c* k
- (setq temp xline_x2)
0 m7 F( e1 J9 r' @- S - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
6 X: q9 U* M, k2 ^2 T - (if (/= temp xline_x2)9 d0 t) }5 L5 C6 K" L' Z
- (progn (modify_xline 0) (set_tile_dirv))
7 f2 \! J6 V O& W1 N - )" W1 U: K* `1 m4 E/ r
- )% q6 L1 r2 s2 K1 D
- (defun ver_xline_y2 (value / temp)" D5 W* h6 ^8 Z: K5 K" C* f
- (setq temp xline_y2)2 }3 e9 T0 n2 |# {$ B: z
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
/ o- O7 V( Y! | y* C# \) a - (if (/= temp xline_y2)( c' d8 `: T8 o$ Y5 a6 P( W+ A. X
- (progn (modify_xline 0) (set_tile_dirv) )* g! }# B. S1 h% E9 ~1 D; y
- )# Y2 t" l2 Z% P8 w7 ~' I8 M/ ]
- )
! S3 f+ A" ^1 A2 W* E5 m - (defun ver_xline_z2 (value / temp)6 G ?5 f1 V/ `+ ]8 _& ^ M% C
- (setq temp xline_z2)
: d @9 ?' m. B. {/ H - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))8 j6 f6 K, k4 n. K' c
- (if (/= temp xline_z2)
3 i4 I& ?% |& A: }& E' _9 q' }( u - (progn (modify_xline 0) (set_tile_dirv) )+ B/ Q. `$ I+ D1 n. m5 R$ ~
- )4 _1 T2 _% `5 S+ S) w q6 u
- )
- z6 j; ?. H! F7 }# ^ - ;;
5 R/ J9 \2 v4 f( j9 Y; _/ h - ;; Functions that verify tile values for angles
# a8 R1 z6 g" G - ;;
$ h, X. l" b( Z& J% l - (defun ver_ang1 (value)5 a6 g% \) j9 G- N4 z D* h$ a
- (if (setq st_ang (verify_a "st_ang" value st_ang))6 Z8 i) i' q- e) ?
- (calc)
* z9 i: L) g( g+ D& s4 o' d2 Z% K - )1 I y2 `/ {0 Q, n. V' L
- )
3 f7 ~ _+ C' O5 k" u, s - (defun ver_ang2 (value)
4 {/ u; y4 T o9 i0 t) J - (if (setq end_ang (verify_a "end_ang" value end_ang))
5 [3 g% g7 h2 F2 b: ^ - (calc)' F; k; i& a4 w! b
- )
" d( E& e' u2 ?2 h - )
* u$ ^; W8 u7 @( t' e( i' V - ;;
, w! J$ t; z6 A7 e' a3 [! L* U - ;; Verify tile value for ellipse end angle. Handled slightly
# n" t8 A4 O- ~$ K9 R8 t1 O - ;; differently than the other angles.8 R: V V8 }2 s8 L! N; @
- ;;( Z, i6 ?: p% R; `
- (defun ver_eang (value)* Z3 w8 H6 X x3 ^# _& B8 q4 A+ H
- (setq end_eang (verify_ae "end_eang" value end_eang))
" e! Y, c* l6 R1 b1 x - )0 L: ?9 P/ c. p& i0 E' U
- (defun ver_rot (value)
2 ?7 I9 { y/ u, s- n3 p" v - (setq rot (verify_a "rot" value rot))6 d8 x S5 o% M- o% Q5 ~
- )4 R8 ?0 f/ d$ N, G1 O C
- (defun ver_obl (value)
! Q' G O0 a7 _& S - (setq obl (verify_a "obl" value obl))' V1 m) o9 j& Z+ u& G3 o9 m; A
- )/ g- \# p6 \! X
- ;;8 d) S, |7 [$ M) x' d/ s
- ;; Function that verifies attribute tag field for null string,
- w3 ^# `6 g4 r+ Q8 f - ;; or a string that contains one or more spaces. Tile value
) o8 I$ _9 C- g- p4 R - ;; is also converted to upper-case as well.
9 U" r1 g/ V+ U5 V6 e5 K - ;;! L3 F8 I3 A& M1 M+ U1 d
- ;;1 { D) n3 t' t9 g: R
- (defun ver_tag ( / tval)) |/ i2 h; a; w4 p$ v, T
- (setq tagval (get_tile "tag"))
! O! J) g/ ~; x& [& ^1 g4 ~ - (set_tile "error" "")
@# H0 b, X e$ l* w - (cond$ N+ ~/ m" b3 q' F g
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
; u& d2 |( ?# h X - (wcmatch tval "* *"))0 c) T' B/ f% w/ ], j2 ]4 j
- (set_tile "error" "Invalid attribute tag.")
% d! V5 ~5 U7 a; i( O5 _5 @: }) j1 a - (mode_tile "tag" 2)
% r( [0 B. _& U' U/ ]+ H - (mode_tile "tag" 3))
4 r/ z& o$ C0 i! U - (t (set_tile "error" "")' ?6 J6 ]5 {4 y/ x: Z
- (set_tile "tag" tval) ]( x4 I, p- W
- (setq attag tval)))
- p# H" y. [! q- A - )! w% m; W5 v" m6 \$ I8 C% ^( h
- ;;+ u' P% `' ^; P0 y% X+ D
- ;; Calculation functions+ o9 n8 P, Z6 Q" W0 x% g9 o, ?
- ;;
) f$ w L8 J8 {8 ?9 B - (defun calc ()
: O2 }& O. q' b* y! n9 b, G3 f - (if (= etype "LINE") (line_calc))
# I0 h7 X0 G* ~ - (if (= etype "ARC") (arc_calc)); Y& y! b+ Z5 ?) Y
- (if (= etype "CIRCLE") (cir_calc))7 t5 N# H6 |$ ^9 U
- )
2 s" Z" p! a& B z$ v - ;;
( j, I Q6 A0 z - ;; Calculation functions for lines, arcs, and circles8 I0 {3 N4 E7 K7 T2 ^* ]; ?
- ;;
& |8 X6 N1 K$ S! o8 C: r& t# m - (defun line_calc ()# @) O+ c% _& I5 Y4 R! v& Z
- (setq stpt (list x1 y1 z1))
- Z) |5 l) Z3 v: g& u2 R - (setq endpt (list x2 y2 z2))% W7 z }" x8 v
- (set_tile "delta_x" (rtos (- x2 x1)))
7 ^7 b) i$ O' S1 R% R1 }* f. Z - (set_tile "delta_y" (rtos (- y2 y1)))- F+ ?4 H! a @! X
- (set_tile "delta_z" (rtos (- z2 z1)))
! G* x% `8 H) f$ I" d, `* T, ` - (set_tile "l_length" (rtos (distance stpt endpt)))5 w+ ?% d' o# j) p/ e
- (set_tile "l_angle" (angtos (angle stpt endpt)))
8 t4 z1 u5 S4 D e+ S; ~ - )
2 ?% E4 R& T8 L( |3 C( p+ _
" [3 g; z1 w& R& q3 \- (defun cir_calc ( / area units)
, M+ H' y; K/ B9 H - (setq radtest radius)
5 u' N8 P: V2 @, M& j2 { - (set_tile "Dia" (rtos (* 2 radius)))$ j% M& L, u; X( f
- (set_tile "Circum" (rtos (* 2 pi radius)))9 ]4 K: N9 s5 G0 h
- (setq area (* pi (* radius radius)))
/ |5 V$ ~2 {9 ?& r6 f2 O. w. N8 z - (setq units (getvar "LUNITS"))
" h3 ^* Q6 U5 P, O' }* e4 H - (if (or (= units 3) (= units 4))* s# N5 i) h6 U$ E1 }
- (progn
( u8 j, q8 U) r. h) K% | - (setq area (/ area 144.0)). a3 ` }+ v( S9 M& ~" {: \
- (set_tile "Area" (strcat (rtos area 2) " square ft"))8 {9 h& {+ }5 e9 R7 O; q7 d
- )/ S% `# P! e* \, d% N, r! }5 A& |
- (set_tile "Area" (rtos area)) p+ A+ B+ V0 i! X( w5 p
- )
8 u: K% ~/ T5 q - )
' j0 S! ^& z3 v/ h+ R$ V) p: C - # I, h' g3 I$ q( x
- (defun arc_calc ()& M1 `% B% a) V$ r
- (setq totang (- end_ang st_ang))3 v- @/ ^0 P, X$ d! K: `
- (while (< totang 0)
8 J3 `7 ^& P& f& B% V. t - (setq totang (+ totang (* 2 pi)))
' {" h& s: {' [- a& R* z - )
- K( @. p( ^' o - (while (> totang (* 2 pi))+ F$ v% M+ D' }) S' ]
- (setq totang (- totang (* 2 pi)))
, r# T) S- c( E( k - ); [" ]2 g3 \% l- I' j; ^: o3 P
- (set_tile "tot_angle" (angtos totang))
+ i( O$ o# n6 S) _; l - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
" h5 C) ^) H$ t2 v5 I - (set_tile "arclen" (rtos arclen))
- S$ B+ D/ F) E& ~0 D# E! \5 F - )* q" a g2 f8 N- u3 O {8 l
- ;;& T# _3 z' L, X: \! t0 {
- ;; Calculate the major radius, minor radius, major axis direction.
' |0 m u6 K! y& m, x - ;; Get radius ratio. Convert Start, end parameters to start and end7 n8 I; v' h7 X2 Y* [
- ;; angles. Save Major Radius value in "old_majrad" in case the user
/ Y+ W3 {! g0 |/ P2 s' Y" ~ - ;; chooses to input a new Major Radius value later. It's needed to
8 p9 A8 r* p( A - ;; calculate a new Major Axis Vector value.
* L' ?$ r" \4 p - ;;
7 L) K; }. c" m" J v - (defun ell_calc ()
" h; j9 }0 L7 [% b% H - ;; Get major radius from the major axis vector.' \0 R" f5 H9 t+ J) {- O7 t( N# j! @: C
- (setq majaxis (cdr (assoc 11 elist)))
7 A+ P+ t u# o - (setq xx (car majaxis))
0 E+ t/ Q' z, G; i% j( W4 `' h) M - (setq yy (cadr majaxis)): @+ I+ ?4 O' G8 G/ `0 N
- (setq zz (caddr majaxis))
! b$ J1 |1 E' b+ T3 P - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
) @% M# X5 `, I! l- S! ^ - (set_tile "majrad" (ai_rtos majrad))* p# H: k& I$ F' d3 E( A
- (setq old_majrad majrad), b3 @& I p( ]4 U; s
- ;; Get radius ratio
5 @' a w* o! k! z - (setq rrat (cdr (assoc 40 elist)))$ X6 R/ \. x8 }4 W
- (set_tile "rratio" (rtos rrat))
( m& c0 ^# }5 }% y - ;; Calculate minor radius
( m) x% Q7 x0 `6 D+ u - (setq minrad (* majrad rrat))6 y$ e) f$ l2 j2 a; H
- (set_tile "minrad" (ai_rtos minrad))1 ^9 {) G# [3 B$ n0 h+ ]$ k
- ;; display major axis vector3 s' W! [1 u" ~+ l5 X( x
- (set_tile "Majraddirx" (rtos xx))
7 R+ J( S3 c u \% z - (set_tile "Majraddiry" (rtos yy))
( W4 A3 ~ j1 H - (set_tile "Majraddirz" (rtos zz))
0 W! I3 b% z" u7 J1 T: [ - 0 R* u/ S* Y$ R% {7 \4 F
- ;; Convert start parm to start angle
7 y% O+ b# @! m, U6 U - (setq stparm (cdr (assoc 41 elist)))
( Q# J" @( ?( I) b3 ]. Z7 A2 f8 q - (setq vecx (cos stparm)); f4 A& P0 V! q* r: ?
- (setq vecy (sin stparm))1 b# W3 ~& e0 _) Z' Y: a2 [, R
- (setq st_ang (atan (* rrat vecy) vecx)): _- L4 y, d, v2 f8 i& A8 ]9 R
- (setq tempst_ang (ai_angtos st_ang))3 K, J* E1 ]. N P5 t, y0 {5 |0 {
- (set_tile "st_ang" tempst_ang)' q& y; {" b7 M7 l
- ;; Convert end parm to end angle. If end angle evaluates to 05 j. r7 s! ^; O9 B8 Q- ]- C
- ;; degrees then display it as 360 degrees.3 W( Y; e( w4 f8 d9 a( b
- (setq endparm (cdr (assoc 42 elist))): o0 |! k7 s1 M9 d, U3 x% u6 O
- (setq evecx (cos endparm))# F, D8 Q6 _ K1 L( F
- (setq evecy (sin endparm)); C- Q/ k9 \8 ^' H+ J( _
- (setq end_eang (atan (* rrat evecy) evecx))
/ Z& G4 q2 D: U; J+ p - (setq tempend_eang (ai_angtos end_eang))
! h5 Z: k9 U) [7 X& @+ @. Y - (if (= tempend_eang "0")
) x+ w2 g" f/ n& M0 x- B - (set_tile "end_eang" "360")
$ y" j7 \1 c' L$ j/ `# k: V - (set_tile "end_eang" tempend_eang)/ U" ~5 k: _( f, x
- )
6 w( e/ a" J7 _ - ;; Get area of the ellipse.+ d+ y! s h6 _6 k2 e a) {
- (ell_calc_area)" u) b1 h6 ^" c6 c
- )
9 _" q( M6 v! @6 s, `& v1 _ - ;; Calculate area of ellipse. If it is an arc then
* {' x, ^ |$ u9 l - ;; grey out area display.3 K0 ?2 I, |9 [/ p- g
- ;;
# J- D( M: _! R3 ]# ] - (defun ell_calc_area ( / area units)$ C3 l: `7 L$ C# ~
- (if (and (= tempst_ang "0") (= tempend_eang "0"))3 b3 r: R1 {" s0 c
- (progn
' A2 R6 r' E* q0 R - (setq area (* pi majrad minrad))7 I" t6 V' T0 E7 X8 ~
- (setq units (getvar "LUNITS"))
, p) M$ _9 ^& i5 c - (if (or (= units 3) (= units 4))( U" i0 Z1 e; v. W5 R
- (progn/ Q; Z" X# b1 D) z1 E9 K3 y- o
- (setq area (/ area 144.0))
% t8 |6 s) B8 ]9 x9 [ - (set_tile "Area" (strcat (rtos area 2)" square ft"))$ K$ G( f- n. ^/ H6 u, c: w/ q* [
- )$ R5 l+ l- P+ b9 ~: q
- (set_tile "Area" (rtos area))
" M1 W9 t4 R, i8 F- \ - )8 ~: {2 c4 |& E0 S) P
- )
' U9 j0 V) l$ U' W3 q - (mode_tile "Area_text" 1)
- J& D: t( a! t, }1 s - )
! ?. B& w9 u @3 z - )- l1 q. X; _3 ?. a' h/ B; N
- ;;$ r6 q# g2 [/ Z3 v
- ;; Calculate new values for ELLIPSE
8 w4 R O" N) Y, U) } ? - ;; Minor Radius, Area3 l# Q% E# D2 I+ M" \# q7 h+ Y7 F% o
- ;;5 K1 A' y* r0 \( |- U
- (defun ell_calc_newval (ell_tile). O9 z! W: P/ F9 H
- (if (= ell_tile "majrad")
$ s' s4 n+ a; ]8 I) v$ p3 f. j L - (progn7 a% s9 h$ z, Q- m4 h& X1 r5 K
- (setq rrat (/ minrad majrad))% N" B, j; _4 _' c- m0 A
- (set_tile "rratio" (rtos rrat))! p/ V$ o5 T: I6 w( c1 j
- (ell_calc_area)5 O: z2 v" ?" Q O3 O
- )
" ]" k$ E6 |& {+ c+ z; t* K! r; G - )
. r( w9 H: N0 e" K4 t$ `( }" | - (if (= ell_tile "minrad")
/ _ j# Y. a* |9 m) N" R# l( C& M - (progn- ~9 Q/ r* ]1 H& R2 ], T6 i
- (setq rrat (/ minrad majrad))& g7 d1 p9 ]9 c' C+ p& |
- (set_tile "rratio" (rtos rrat))
) u% r& _- C9 n; D - (ell_calc_area)* }& w! B, |( k1 w
- )
+ f. W3 K; Z& d- i7 H - )8 H; T0 v) ?+ h, q- }
- )/ \, N1 h: f4 \8 k
- + @% D# U1 j. S X0 r! N; j. u
- (defun set_dimen_props (/ loop a stl txstyname)3 W' ^, p* V. J, f9 A: m0 J# @
5 `4 y B8 d# O3 L9 g" U- (setq stname (cdr (assoc 3 elist)) ; get style name) q3 ^6 r/ ^: q4 D# |) }& d
- stl (tblnext "DIMSTYLE" T)7 Y9 E8 n6 A8 X! K
- stlist nil)
& y$ Z- r' }1 ~, a4 v - ;; Get all style names and list them in alphabetical order* b* m O( ~6 U
- (while stl; o" h' b+ q4 I! d7 W
- (setq sname (cdr (assoc 2 stl)))
& Q. X! r7 m( J, D - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)' U+ {9 r6 p- b" X
- (setq stlist (cons sname stlist))). H7 w2 ^# v& Z; l) q
- (setq stl (tblnext "DIMSTYLE")))
. u: _9 |+ V8 H4 J) s
! F, b6 f/ a6 |2 `7 }2 y- (setq len (length stlist)
3 C% D- g E3 U, h' X# w; w: q3 z9 I& h - loop 0! F0 m; E6 Y( B' \; H
- dimsty stname
1 K2 J* c# P" \# ~: o - )
3 ^& G8 q# k! g4 l7 F4 L
0 ~4 W$ z: c7 J3 Q4 \; N6 E- ;; alphabetize style list, depending on maxsort3 [1 C2 x8 l% p/ A" i% P; l* v. y
- (if (>= (getvar "maxsort") len)5 f8 r T: o1 J0 c
- (setq stlist (acad_strlsort stlist))
4 W; v$ T, w% m - (setq stlist (reverse stlist)))3 J5 z4 L) a) u0 l, ^7 V
* Y! P- W+ a- N# [: g- ; *UNNAMED style (dimsty = nil at this point) is replaced with
9 C; v/ L* U1 G# D G - ; the current style. After R13, we require dimensiosn to have a6 \/ Y8 w: w7 b( m7 X
- ; dimstyle, so we plug any holes where we find them.
& T9 N4 |" v( ?! \* _$ @* q - (if (null dimsty)/ y& A( Y" |* k5 n, z; o
- (setq dimsty (getvar "dimstyle"))
4 V) j* w, [0 U/ z - )9 t" [& Q/ O. \6 W. N9 U6 g
- ; Show the styles in combo box$ |( U3 K. g d) h1 ^+ b% O1 F9 U6 x
- (start_list "mod_style" 2)
" p$ \* O; B0 m0 ~ - (while (< loop len)
. O" |6 y8 k o9 U - (add_list (nth loop stlist))
0 g4 H# F0 v2 @; s# [9 A& p& M - (setq loop (1+ loop))
$ O2 O* b7 S8 y/ f - ). J) @+ }6 X3 w& Y2 Y6 `
- ! o1 @( t9 s( F( X0 v0 u" O
- (end_list)8 r4 r; g. ^4 i }6 L# g( J
- B/ |) H2 j% |) K
- ; Hilight the style name of the selected entity
M3 m$ w6 U- e/ C9 m1 z7 G, s5 z1 g - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))7 O! r8 `/ Y$ ^1 c& M& M9 L
- (setq loop (1- loop))
" j1 a$ J+ z4 S - )
% b# R W0 @6 X* v8 y - (set_tile "mod_style" (itoa loop))
6 K! T, h+ w: P8 L* V; p
* i1 l6 j" _9 `/ s' j2 T- ; The following is the list dimvars. It must be sorted in the same4 D% x! J$ e3 u! a! Q
- ; order as the resfub returned from DDIM (ADS module).6 I5 y; o9 ]) Z! e. B3 X9 q# [4 |0 A& ]
, L7 f$ [( \+ e% [* J- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"" Q) G4 d7 N N( s
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"$ ^& }7 B6 h9 X3 U4 N+ m
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
5 X! }4 t/ ~6 f, B - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"/ f) k: Z+ T {7 }
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"/ i& w9 _" o/ o4 G" u2 H- {) s- A
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"# K- _5 F Y- V& s9 u5 v
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin": m A4 \9 c' E6 r9 h0 s6 q
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"- _- z3 O3 S: D6 @7 E+ J* P
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"3 f1 a, R0 r' \* d% t# N
- "dimdec" "dimtdec" "dimaltu" "dimalttd"7 R9 C1 `5 r0 |1 F4 Z W
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
( e& J/ [+ g$ q( I+ Y; v& X0 T - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"1 L" @# ?# S1 n( T0 p
- "dimtxsty"% @& H2 d4 D# R) ~, L
- ))2 m* E) C6 e9 ?1 O+ l1 L- b1 n
- (progn
+ Y4 M$ r" Q+ ]' h& { - (setq sv_dvlist (ddimen_getostate dimsty)
( }) e- x% ] N - txstyname (assoc 340 sv_dvlist)
8 P/ S( B7 ]- p2 X. W7 X" O - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))8 |) F, a: b6 E2 K# G
- txstyname sv_dvlist)
, E6 b! g1 u) I" v* y4 _ - dimlist sv_dvlist
5 h1 J3 P( N, B$ W* {% M - )
^2 s$ Y+ P7 w' }# R - )
" Q, a. ^6 S! a) r - (if (= dimtype "DDLEADER")1 Y0 D1 W& [% l+ I
- (mode_tile "mod_format" 1)# A% |4 m2 @7 A6 [& @& ^
- )+ X V0 M4 a3 s) ^3 P
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
* q @4 Z5 u8 b! j$ H z, S) q - (action_tile "mod_text" "(done_dialog 4)")1 n k/ [: @) Y# S6 |, m! r* S1 ?
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")9 d9 t6 Q$ R: o& @& }
- (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
4 t, V1 ~/ S Y& U H: n* p - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
# N( e& A& K, `/ y - (action_tile "accept" "(done_dialog 1)")
7 B7 d2 p2 a6 Y5 Y# F: U4 ~ - ), Z H+ \" H1 _1 ^; I, g i. B% H- w
- ;;
* W+ y/ y# c6 @, N+ u, T - ;; Get dimvars that have been restored.$ B6 G0 G, w' |* `' ]) |$ h: b
- ;;
" W2 B4 h3 A5 B4 j% C - (defun ddimen_getvars (/ elm dvlist dv i)8 t& {) U, T" @4 o- D
- (setq i 3# X; }6 h- p9 E3 j
- dvlist (list (cons 0 "DIMSTYLE")5 }8 H" q7 E1 A+ G% B
- (cons 2 (getvar "dimstyle")) (cons 70 0))
$ M: z# U) m0 V9 L9 V. E1 S - )2 E1 Q* o: L5 s p
- (while (setq dv (nth i dimtbl))
# P' O, R( Z9 \5 ~& {3 \( n - (setq elm (getvar dv)
6 J" `4 i$ A0 c: n3 w - dvlist (append dvlist (list (cons dv elm)))5 J# @: R; e' O8 ~6 R5 l8 [
- i (1+ i)
% Z3 x" |! F5 A: k - )) \6 f! s" m) R- d
- )4 C2 J/ e. v5 A V/ B, A. y
- dvlist2 j% y" q. K" J+ w
- ); Z, Z6 t6 F& N4 y* Z4 B
- / Z5 c$ l I$ A# ~ |$ b: I
- ;;4 i# b6 z7 K: ~" A% A8 @9 H! x
- ;; Get the original states of dimvars. This is for DIMENSION entities.( i1 P9 K2 X8 K3 Y
- ;;
% M/ C6 N$ D6 }9 X1 ]7 l! T- ]: R4 h - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
7 P( X- ]3 O" Y* J - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
+ k4 l( N$ ]+ F# }$ `! M5 m - dvvars (ddimen_getvars) ; Get dimvars for that entity
+ \" i. g1 e2 M1 ` - i 1 s6 H' J" z: g& V0 e
- )
9 i) C) }) h( \( { - 8 c# q. A0 l9 d% T
- ; Create a list that contains values of the selected entity.
y+ ~( i4 ]3 F o z7 \ - ) h& @1 }7 d9 W8 m# ]+ \$ R
- (while (setq elm (nth i dvlist))) b( A, E' W7 j- B v% e% N
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
0 R+ e$ M& P3 Q- |1 n - i (1+ i)/ w X5 } V: C# A9 v
- )
6 p! n' `& A9 J+ ^4 A8 _ - )9 ]% A$ C' x: W; g6 F% y
- dvlist
8 O$ k( r2 a, J9 h7 G - )6 a6 I$ P% V1 z' W1 y9 {1 N5 @
- ( o2 W0 M3 B) r/ E9 A0 O4 c: Z
- ;;
9 S* v' F l$ X: ? V8 D - ;; Restores dimvars of the selected enity.8 A- C: g: w) v8 a
- ;;
- R3 P* ~& p S% v6 I - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
- o5 N! u* q9 i) V1 H - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
; P' \; L# l) J. ~, l3 y q9 g6 l5 b - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
9 q; Z" ? k% b, K$ v E! a - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"1 l! L- Y9 X) n" u2 M) l
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
2 s7 Y& U2 N) {; ^6 B - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
' k0 j. s8 v, R* R - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"# ~2 H8 O( I' v+ v
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"1 M* F% ~3 a6 M" Q6 \
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"0 T6 J3 q( s. M8 A3 a/ L
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"* |# h" [" ^5 f7 i D% f& {9 q
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
* V3 }( \5 ?- G4 y# S e& z; Q9 N* Z - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"6 Z% o3 V H/ [
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
2 }# V3 t& y( k2 ]2 q+ n! R - "dimtxsty": d) h- r! ^% X/ l5 z W, c/ d
- )): r+ s7 {$ O8 B6 o( w
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
6 ?+ q/ ~* P9 D1 O8 T/ K - (progn
+ e2 _! N B2 Y; Y7 W. |0 S - (setq en (cdr (assoc -1 elist))), l2 l0 F1 D# T# [% Y
- (command "_.dimstyle" "" "" en)
, e9 Q4 [$ K+ B. A/ k' a - )& T6 O8 d# p8 o
- dimsvcurset
, P, }0 g* R9 j- I% x+ P - )2 g: a, a3 Z2 E
- ;;, c# i5 L! j1 z! }# r* r+ s
- ;; Modify Leader" w( \% _, J4 R4 P) ^
- ;;/ c4 P+ Y! [% ^6 W* h/ }; o+ N
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl: Y/ v+ [" ^2 d5 j9 y
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
. N1 p w7 d: f. S" n - dimtype dimsvcurset)
; N. C' Q, l* m3 ^7 s9 ]) \ - (setq dimtype "DDLEADER"
) E- V& F- J& }; [; P - dimsvcurset (ddimen_dimsty_restore)
9 z! ]# K1 d4 ]+ C0 ~, | - )
6 ?1 c' R! f W U$ U9 |( o: V - (if (not (new_dialog "ddleader" dcl_id)) (exit))
. s/ S3 u s; P# E% f. H6 S( c - ;; Set initial tile values# M( M# R& @) w5 i$ T9 v. C
- (set_tile_props)! |6 @" {" L: ^2 R' q' K& B$ e
- (set_dimen_props): }1 J+ D5 z9 B: R# b @& W
- (set_tile_handle)
N1 a' J5 n+ P - ;; Define action for tiles* l# h) \/ Z9 K0 k1 Z
- (set_action_tiles)
( A% e/ M4 C+ t - (mode_tile "mod_text" 1)* r. F: Q1 }; ~% `: s
+ N6 O1 W% G8 z: V. K' H+ }/ o- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
( ~$ F* [9 r" w" ~# F3 e. b - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
5 S3 B3 A) u. e) s! z - ;; Get ARROW and TYPE. S/ @: ?4 U/ s/ m
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
; `: R+ Q; `/ t, b( {& p - (if (= 1 (logand (cdr (assoc '72 elist))))
9 _* p4 r& i: y( u0 S2 T, ?0 W - (set_tile "s-s" "spline")2 o, Y1 m/ F0 E) o
- (set_tile "s-s" "straight")
& G1 G' r3 J$ o9 @+ L - )$ t5 }1 S+ o9 T
- ;; Start the dialogue.
6 f3 U) B/ a# M, P" ?1 ` - (setq dialog-state (start_dialog))
6 ^. K* K: n- Q7 A- @0 d5 [ - (if (= dialog-state 1)2 K% @0 t# j! ~" j8 I
- (progn# z; j& v, ]) R5 u
- ;; update the style7 K$ ~0 w8 `3 H" ^, n( E# \( `, E! O
- (if (/= dimsty stname)# Y5 f' P7 I" Y6 p! c
- (progn, V5 p/ z: _8 _# g* u3 d
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
- G0 ^4 w, T; u# l5 g8 O4 k1 L: F& u5 j - ; doesn't have it.. n- c( v4 Z- y: t) r
- (if (null (assoc 3 elist)). O4 U2 v& v/ Y9 i0 O7 D
- (setq elist (append elist (list (cons 3 dimsty)))) c/ w1 W, q+ e- a) Z! Q
- ; else just replace it.7 M7 Q9 P) x8 r
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
7 t6 Q9 o* C( h* R8 K - )
; x9 O1 i9 i2 ]/ u+ U - ; refresh sv_dvlist with new dimstyle.* z: S" S& c9 E
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))% K; `5 f* L: m( [! e
- )5 W! P- Y. a2 x5 l
- )
$ V7 e7 j; f- B$ ]0 o i# B% m - (if (not (null dimlist)) ; attempted to change dimvars; O C+ N A: |
- (ddimen_complist sv_dvlist dimlist dimtbl)
. X& E% q7 W* {' T9 u6 {8 U) ~0 N - )
& q. s9 _2 T; B/ N8 g+ r6 ^& I5 T/ Z - ;; update for ARROW.
" T+ V! w4 M% c# Y0 v - (if (= "1" arrow)
7 b3 f. ]. ]4 B( @ - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))1 j! j/ s1 G: G) B" G# q& W
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
( }2 ~1 w9 `1 G+ u9 N/ o ~7 D - )
' S: p- e% ?5 r! a6 {% O. M* g - ;; update the TYPE.
, e7 _& e& a' D; f - (if (= "spline" leadtype)- h: E2 V9 Q$ O% J' `
- (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))2 _; \3 _: Y% h5 b8 A' Y5 i
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
; j& v9 `9 q' G* S - )
* M5 x! p5 `. l4 e8 U$ @ - (modify_prop_geom)
, u; K3 s, G: R7 q* t' I - ;; update the Color
( }6 [4 n- R& w/ K7 E- S6 S( K" u6 G - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
5 S) f5 Q E% ?5 \! V8 ]+ n$ E8 U - (entmod elist)
8 Y4 }5 l1 k% E6 }' l* [ - )
4 [6 N1 w8 [, f1 L, r: W - )
/ t; Q, E$ l1 b! _5 z j9 a5 ]6 S4 J - (ddimen_setvars dimsvcurset) ; Prepare to exit x2 z# a6 E, ^% U: D7 W
- )
" C$ i( ?" s1 m - : u/ {. p8 R4 ?, ~; e) m
- ;;
8 a" U7 B& [! f2 h3 \. J4 l - ;; Get dimvars of a dimstyle with overrides.
/ g, O, R1 D6 D$ t3 O; [ - ;;: K f9 E% y3 ~+ T' I7 R+ l
% d/ x! t; f! B: |$ T' S2 i/ C- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
8 Q( X9 X _& w2 [
7 c" O3 v. T4 t# s5 E9 ^- ;; Get override information for the specified entity.
; k! \, y' p7 i# w1 [, [: c - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we5 h& D& W- J9 E4 o
- ;; must obtain override information through this tedious operation.
9 M( M; A( D' A/ T( | - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))+ \7 }4 N9 g* d @+ K; b
- dvlist (tblsearch "dimstyle" dimsty)+ ?: ?' A2 f% a/ L! K: M
- i 2
- a: \/ O/ n/ k$ n: L3 \2 r! a0 | - )
& z6 I( G8 e5 V8 R" ~; _9 A - 9 f' g% S0 u9 X# Y6 j
- ; Update the list with overrides if overrides exist.
1 ^5 `2 l8 V' Z/ {, z8 B3 `& S - 5 t h; e. w4 O9 d( ?+ `! \
- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))1 k& ~ v+ c: \# w' E; J% G& c
- (progn
! [) M! t# {" c' r3 I - (while (setq elm (cdr (nth i dimovr))), V8 l. Y/ W; {$ \* P+ q
- (progn
& u- F( L2 j" y3 ~ - (if (or (= elm "{") (= elm "}"))6 n2 H7 J o4 q, e/ j
- (setq i (1+ i))! J) O, \1 s# C. i3 j
- (progn
K, |! Q8 O( E: R2 M - (if (or (and (< 180 elm)
1 E' D$ k# K2 ^0 Z - (< elm 190)
" {* k7 t# y; @ - ). y( w& p1 q& Q
- (and (< 80 elm)
- r, U* W- l' o0 i+ D - (< elm 90)9 H' x L7 {* F/ B" k: r+ @( m- Z
- )' O' V" R1 h7 P+ p9 J+ X
- )- T' c1 t7 ]' l4 @
- (setq elm (- elm 10)). m& ~+ s9 j4 o% [4 q0 X- \
- )0 p1 S: N# \: b7 C3 m ?
- (setq i (1+ i)+ C) H, \) ?1 D" [- ]6 _
- elm (cons elm (cdr (nth i dimovr)))
! e: `: @1 H. l( e, ?. \ - dvlist (subst elm (assoc (car elm) dvlist) dvlist): m4 J8 p' I8 T! i
- i (1+ i)% K" b( c. I. }
- )8 h: M: K8 k" i
- )
! W& v& _$ Y$ V2 p2 J - )
" T2 o2 L9 `/ a& _: B - )" u5 c( v( O+ Q" x) Q C3 Q V. i
- )+ k7 f% C! ~8 U% v$ Y0 ^7 _
- )7 G* B* K* ?. y8 Q% L2 Z; ~
- )5 I; Q0 [) X' f$ ~3 r
- dvlist8 Q! o7 A' @& [, X5 J5 a
- )7 ~ }- }0 Y5 m
- : f% v; Q, }% ^5 }4 [
- ;;
i {1 \) Z9 R7 t: W - ;; Modify POINT
3 z: t/ X* I7 ^2 q: z* L - ;;
, E( K& N# Q2 b8 Z; y - (defun modify_point ()
+ w/ e0 z( T: G$ i: i - (modify_properties); I. k0 T0 w6 Y% ]7 n
- (setq pt1 (list x1 y1 z1))$ _% j( Y, X+ G& H" w
- (tempmod pt1 10 0)" W6 v: O& s$ s5 }+ C
- (entmod elist)% @2 o5 M. ?: M. `! `
- )0 [4 X- @7 W# }% w" F
- $ d. @1 l& K# K6 D
- (defun ddpoint (): D, Z" ~1 z8 X: \
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
% W+ H- A9 L$ W' U0 M2 p0 x# ~ - ;; Set initial tile values+ j3 A* u- U! m R* W; q) h0 F! c
- (set_tile_props)
% X- D; s. U6 r. [& { - (set_tile_handle)# Z, D+ u0 L6 `: B
- (set_tile_pt1 0); c+ X" Y6 u$ W6 t& d4 L( c& H
- ;; Define action for tiles
: @9 C) C" Z5 l% |0 u+ z - (set_action_tiles)
$ D7 ~7 L1 s4 v. p, c* {+ C - (setq dialog-state (start_dialog))" n- V$ G# P, J" \8 M$ @
- (if (= dialog-state 0)0 i0 L3 y1 `7 a5 \. l6 s
- (reset)) Q% Y/ H" y+ u, A
- )
) T1 T7 f/ e9 c/ p+ f' n* a, { - (if (= dialog-state 3)$ \2 a2 }. f% J- y# L) \' m
- (progn
# T3 n+ F2 l0 e - (modify_point)
6 N; u* n$ m, e2 o - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
2 K% s! [" ]0 ?$ o$ ` - (ver_pt1 0)5 p4 x1 j! k7 a/ M
- (ddpoint)- G% P, L2 L2 o& V% y
- )
0 D0 I. e. w |' P7 g - )+ p1 [' F( h7 ?3 p) v
- (if (= dialog-state 1)
% Z, c5 ?6 {$ X: [9 T - (modify_point)
- J8 n+ q- y6 _$ H) l/ r1 \1 Z - )6 l2 D$ F. B8 }7 X- z% P
- )( ?8 h* i% o5 ?
- ;;% y9 }9 M! N% B; r2 p* R
- ;; Modify LINE
0 T' F( D2 [1 j, }+ \ - ;;
# G1 r6 s/ q; o6 M - (defun modify_line ()
H1 v9 d* b5 X& @ - (modify_properties): k" W& K; H' f' z4 @5 o, p
- (setq pt1 (list x1 y1 z1))1 I+ n, y( k( h/ H6 ^
- (setq pt2 (list x2 y2 z2))8 X0 g" r1 }4 d. i
- (tempmod pt1 10 0)
) w. N3 l: `1 G# X6 E0 j - (tempmod pt2 11 0)' G$ K6 ^0 S* v& z9 ?! _
- (entmod elist)& a; e$ J/ V# O. x9 g# o
- )- x$ q- j# X. M4 Z
- (defun ddline ()
6 S$ d3 [* t% w - (if (not (new_dialog "ddline" dcl_id)) (exit))
, w! B6 O+ x/ F - ;; Set initial tile values- N! P3 Y5 A" n! v
- (set_tile_props)% @! M6 t7 H X' e: O
- (set_tile_handle)3 `* o* @1 M. N
- (set_tile_pt1 0)
f9 l2 j- d. |( |' x - (set_tile_pt2 0)5 C% [7 {+ d( |! G$ |
- (line_calc)
/ F! [$ a" K- J' m# U - ;; Define action for tiles f( w" u- s. O* h
- (set_action_tiles)
' A3 B. I( _$ T# a - (setq dialog-state (start_dialog))1 I4 E! @! \, Y/ i; u- }
- (if (= dialog-state 0)
7 g [" a6 x' `- W( @ - (reset)
+ x+ H' a$ n4 }/ }1 b( W - )
( K& v# w; z; L- l9 j - (if (= dialog-state 3)
4 Z) [$ B7 w7 s4 x+ Y% C - (progn- x, y" |/ X% ?% K# M1 }: b' h
- (modify_line)) w8 P; y( R H4 u- u1 y! Y4 Y
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))# O: I* W" v" A: |9 r' j+ H
- (ver_pt1 0)$ e! B0 \: x5 }/ q+ \# H9 t
- (ddline)
, S, C% N2 M: U% V" B) G; z - )
, A7 c! }0 o2 Z0 G. S- p( j' i& ?0 K( v - )) M5 L; R- ?3 h3 F' s
- (if (= dialog-state 4)3 X1 ?6 m/ S V/ P. S/ t$ o9 J
- (progn7 ?) w! o# P- ~: r6 |
- (modify_line). c. S. [7 Z; h' y
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
! R9 ], m) w8 f# h+ y# M - (ver_pt2 0)) O" H6 t1 s/ F. c- P# L) w8 F- k# Q& |
- (ddline)# n0 x3 j4 A8 _* Z2 J
- )
! B9 W' |5 h& ~7 D% ~, G6 x7 R- a - )2 y0 K8 Z+ M: |' U# o8 N
- (if (= dialog-state 1)
' M* Q+ q2 L* @ - (modify_line)
5 R+ j8 I8 N6 N4 U - )$ N- r* I3 T# v; w) Y- N/ P
- )( [! {$ B9 [4 ]
- ;;
/ U6 x+ h- E: d1 h - ;; Modify MLine% V" ~: E1 a/ ^ r, u0 s& u
- ;;
: Y- h5 X$ }5 V$ z- y5 d. R; u9 U/ s - (defun modify_mline ()
6 t z. y+ r$ r# B. @/ x8 n$ N - (modify_properties)) Q# X6 ^7 @* b& v9 o6 Q
- (entmod elist)9 q/ z6 B+ Z3 P2 U
- )
; o% n; a/ x5 }4 N- u! D/ r1 b, n - (defun ddmline ()
) S+ u/ M' _+ i" I( z; V9 V - (if (not (new_dialog "ddmline" dcl_id)) (exit))
* b1 D T5 M" r6 L - ;; Set initial tile values$ L$ @& x# @4 S. E7 h# k3 n- |
- (set_tile_props)
+ K; S r3 }; x1 G/ o: P3 `* e) c - (set_tile_handle)
4 M A4 z& @: u& X% Y2 L/ v - ;; Set mline style text field.0 u. J" Q9 V3 g7 A
- (set_tile "ml_style" (cdr (assoc '2 elist)))) f3 B5 [# ~" G' l
. P6 b! P- }$ b- }, @- ;; Define action for tiles w3 ] j0 E% l2 j
- (set_action_tiles)9 {( j: d" a# n$ ~# L
- (action_tile "ml_edit" "(done_dialog 3)"); U8 ~: U# S- d
- (setq dialog-state (start_dialog))8 |7 t% S% @' p j6 L; o1 q g
- ;; Dialog cancelled, reset to original values.
, X1 ]% H% ]: Y* p2 u* z+ e - (if (= dialog-state 0)* ~, H: V; G- K2 ^9 L6 \0 O
- (reset)
- u) u9 L5 y% ] - )# J" h( z8 K$ ?+ z
- ;; Dialog OKed, update the mline.% z8 t7 R! z% @9 j/ B2 Y
- (if (= dialog-state 1)3 E" n- D- D6 [1 [3 E
- (modify_mline)! w) N, o8 L' ?' t4 _
- )" D: n. I [: {/ G/ }9 ]8 d
- ;; Edit Mline, call MLEDIT.3 Z" ]7 T3 M E" }- a- L& i% s7 Y
- (if (= dialog-state 3), |7 J0 {' Y1 z B
- (progn
& y( N3 Y4 X" b6 {' a - (modify_mline); `' o5 _4 `! Y1 n: r! F( p; T
- (command "_mledit")- \3 S% D; Y1 `; |
- (ddmline)2 P x2 T; O& Y* b/ H& W3 V
- )+ i8 A9 I. i' [* N( K1 e
- )
$ X. T! C5 f7 T8 a* B: R - )
" e9 z/ ^% i- {# T, m. E* o - ;;
- m9 \2 I3 _; L a - ;; Modify Xline
. _% E1 H: q( U* x: Q8 d* a - ;;
- A3 e5 ]; Q. E& x; u - (defun modify_xline (flag)
, [ `, x4 V1 Z- X5 O - (modify_prop_geom)
) _. r' \1 Z) `/ _/ C - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
( T* B) |( a# o- x8 w$ F! } - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
, L! N) {* j7 U0 V5 K B - ;; Update the Root point., \! G- o4 }% f- d+ l
- (setq elist (subst (cons 10 (trans xline_pt1 1 0))% f; D) h) m* f2 b7 r+ ^
- (assoc 10 elist)3 I4 ~/ [6 S$ X
- elist
6 E/ x6 \2 m+ K+ G- @ - )0 ?6 m8 C) n* H2 s
- )
# X# \4 n' z" D, L7 w6 M' h# | - ;;
* N+ b) p0 Y/ Z6 y - ;; Calculate new Direction Vector WCS9 W% ~% U$ r1 U9 E# v
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))2 ` p4 _' ?7 l4 O* c! }0 u+ w- G
- 4 X3 a3 P; c0 {& A( T
- (setq temp_dir (trans xline_pt2 1 0))
+ \7 f' N8 j$ q( z5 l' w - (setq temp_dir_x (car temp_dir))3 V$ v9 N/ I1 z4 E) b
- (setq temp_dir_y (cadr temp_dir))6 ~5 G) x& E' c# C# Z$ H
- (setq temp_dir_z (caddr temp_dir))
1 V6 G2 D1 F! r1 W9 J A - . p3 H) c5 B0 \/ H
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
- L- U9 w9 ?8 j& i) R( r - (setq temp_xline_x1 (car temp_xline_pt1))$ p7 S- H7 M. e
- (setq temp_xline_y1 (cadr temp_xline_pt1))
* ]; k& ~( p, @: ~$ F4 ?; V7 i/ Z9 Y - (setq temp_xline_z1 (caddr temp_xline_pt1))! y# V; `! e [' |7 d
- 1 r. ^) C$ p, I2 d9 R
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)& @* B# X9 i2 C3 z" ]3 h4 c* |
- (expt (- temp_dir_y temp_xline_y1) 2)
( z+ ]0 t! \: g" Z7 e% x - (expt (- temp_dir_z temp_xline_z1) 2)# @7 R% \7 Q+ l9 _/ H3 j
- )))% R# M0 z4 o7 D- h! v8 C& ^: Q
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))# N. ?4 E1 ~: [& N
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))7 w" A* X9 Y l, _
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))( S9 w) Q [- M# O5 } d( T
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z)): i% p9 |/ d% |1 r
- (assoc 11 elist), s% ]8 B; D/ a, J, x/ z
- elist* z2 Y$ j. d) q
- )* X0 F0 F/ p* F
- )) ^: x2 c: P5 }$ ~$ w: p' x$ g
- (if (= 1 flag)+ u' M4 c6 {+ N- Q0 f/ b' o, v
- (entmod elist)) e. O+ e, U% |+ [* @7 g/ }$ k
- )
1 ^4 K- f, m9 ^- s- a - )
6 H7 a# {$ o0 h8 g
0 A4 E9 C2 ^; u) l A- (defun ddxline ()4 l$ N0 L* E0 i0 Z9 @
- (if (= etype "XLINE")0 n2 g# V! [) \* D. _: a
- (if (not (new_dialog "ddxline" dcl_id)) (exit))
! b2 \4 ?. ?9 Z4 A t1 ^1 } - (if (not (new_dialog "ddray" dcl_id)) (exit))4 O; D5 p( D0 U6 w. e% r
- )- n# c1 M7 V8 B8 b+ r
- ;; Set initial tile values: m. c9 C+ w1 p: U& \5 q& i
- (set_tile_props)) d6 ]) B3 h7 E) A: s! }
- (set_tile_handle)1 \+ R6 |: Y. X
- (set_tile_xline_pt1)* N& Q! o3 r! O. k
- ;; Convert to UCS and post Direction vector.
0 @' f1 m3 d' m1 `5 Z - (set_tile_dirv)
2 d$ E, s! O, Z# u( d - ;; Calculate second point by adding Root Point + Direction Vector., w- j1 P) J3 Q" v
- (set_tile_xline_pt2)
) t& z/ \4 o5 U5 n3 t9 W+ _7 ? - ;; Define action for tiles+ u! D4 a% z* l' U
- (set_action_tiles)
* w, [. p4 K. L" h% z* ~ - (setq dialog-state (start_dialog))9 h# C# y4 g0 U0 Z$ G* h
- (if (= dialog-state 0)$ `0 x& ?( b+ W) x. w# i) X
- (reset) y6 ]7 r5 f: K4 _" k
- )
. m, A- h: D# U# W - (if (= dialog-state 3)
3 d) w# ^& J/ _& x6 N X) \ - (progn! H) Q* L8 i4 N! @8 _7 @+ _
- (modify_xline 1)
5 p8 z+ g3 d" {- {' ~! z - (while (equal xline_pt2
( A4 L: ]( m8 X+ b/ } - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
a2 `" Q8 O6 o$ x - (princ "The Root point cannot equal the Second point.")
+ I' N7 i& D; Y2 `& F* t - )
" S: j" R8 c8 U5 [- n* J. H - (ver_xline_pt1)
5 j" D* w2 s0 x% t* S; c- B1 ]6 @ - (ver_xline_pt2)8 j3 `- X. `6 ^
- (princ)* u" S$ E* x0 D) e- R* i8 G
- (ddxline)
! G* y; d2 \* Q9 Y - )* v3 C; y m2 o
- )1 l% n! ^7 b6 k
- (if (= dialog-state 4)
& F; N+ R* `) [2 B( N& |' s4 @ - (progn
) u+ ]9 B+ _/ ]$ h5 k0 a4 R - (modify_xline 1)
$ d( c" E3 ]* W" e" Y1 i - (while (equal xline_pt1' ~8 a5 c8 l. a! q# ] y, f
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
0 }" I4 f) x. g Y8 k6 R8 |+ h - (princ "The Second point cannot equal the Root point.")
) r; X! _( W3 t4 ^/ D2 F - )+ n- P2 l0 C* ~5 G; ?( F5 d- w
- (ver_xline_pt2)
1 V* o9 G2 N4 H4 v - (princ)# q. B9 y4 p5 k! u
- (ddxline)
4 k& e/ O: y2 C9 I& k0 h& w - )- v3 U! r8 N' a3 v- q
- )
" Y8 Z# r8 b# G; D - (if (= dialog-state 1)
3 o8 W0 j. A5 R. A+ ?$ N9 W - (modify_xline 1)
. x& r/ V5 O+ a1 t9 ~ - )
+ s3 A- K- h( w6 K* h - )
+ w7 ^, ?2 z6 q. z+ M - ;;6 P D4 G& A9 _3 i* ^' G5 W
- ;; Modify ELLIPSE
' L% ~; p8 l9 P# J6 l$ r - ;;. y0 e+ h" ~# ?
- (defun modify_ellipse ()+ }, w9 f1 B+ W& z$ I& D5 U4 Q
- (modify_prop_geom)- `; R7 _0 ~: \2 H# Q% s' X
- ;; Update Ellipse Center Point value.$ e, E! c: I$ G$ w
- (setq pt1 (list x1 y1 z1))
: V/ D" M2 b. S8 ?! G W - (tempmod pt1 10 1). \) T4 Y* x" J. L7 Q
- ;; Update Start Parameter value.
5 m0 r ^$ X' h, z, d T - (setq y_val (sin st_ang))" a* v% {1 E1 s @# s. ^) z1 r
- (setq x_val (* rrat (cos st_ang))) B0 v0 i$ U* |; k1 M
- (setq stparm (atan y_val x_val))5 u3 E( m. L( W2 r
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))- k" z& j) N5 ~* g0 U
- ;; Update End Parameter value. Normalize it, if it's less than
( e. K' C8 [- N: x1 k" `! f - ;; the start parameter.
; h: W/ C0 w! i8 ^1 ?/ N - (setq y_eval (sin end_eang))4 z" h* Z. r) S. A! g+ ?+ z
- (setq x_eval (* rrat (cos end_eang)))! @% q: N4 w' j# J$ d' O
- (setq endparm (atan y_eval x_eval))
+ q, i- _9 n( L6 e* I$ y5 z - (setq diffparm (- endparm stparm))
6 Z; l: z' T; X2 Y) W& A/ y# Q7 U, v - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
+ q1 o6 j1 v: c& \4 z! o1 p - ;; Since zero length arcs are not allowed - construct the full- L- \. i) ]7 s
- ;; ellipse in this case.# l8 @! U2 Y% h9 J. O- W- p
- (if (<= (* diffparm diffparm) 1.0e-12) l+ @: k( h( H7 F8 Z6 \! `
- (setq endparm (+ stparm (* 2 pi)))
+ m/ b8 `; Z; E$ v4 a" b - )
0 e2 [ W0 b' M2 h - (if (<= endparm stparm); B1 h) }* Z5 L/ s% g1 r1 J
- (setq endparm (+ endparm (* 2 pi)))
! P) J* _8 Z' z - )
3 O( X) s8 ~5 A& q k8 i; n - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))1 R& R9 c# W* B! a2 g4 P
- ;; Calculate the Major Axis Vector by first calculating
0 x& ]" L [0 { - ;; a unit vector using the old Major Radius value. Then
6 ?) P% z5 M# [* X0 ` - ;; Multiplying that by the (possibly) new Major Radius [" d+ ?, h* G# i1 R( U2 g
- ;; value to get the new Major Axis Vector value.
1 u o f/ U/ @: P: @; l* J- U - (setq unitxx (/ xx old_majrad))
/ l' K% s4 f: ^+ e - (setq unityy (/ yy old_majrad))* z* p6 ]9 z5 ~- `8 j
- (setq unitzz (/ zz old_majrad))
% U( g: O1 w. f% U r4 j _5 a - (setq newvecxx (* unitxx majrad))1 }% d" }. f, W% v8 ]+ f
- (setq newvecyy (* unityy majrad))+ }# z1 h3 P0 b8 _" x1 W, ~; Z' u
- (setq newveczz (* unitzz majrad))# p6 L3 [( v8 i j) B$ N( u, k) L
- (setq newmajaxis (list newvecxx newvecyy newveczz))! N, d+ ~) X4 t" }
- ;; Update Major Axis Vector value1 @) a1 z T2 I X& M3 u- b& G
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))& \, z s, B _; ^* o& f
- ;; Update Radius Ratio value4 i: q. w) X( d" s2 a m
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist )) u! E8 _) F' v8 C7 d+ Z; ?2 s
- (entmod elist), H: W: q6 z' ?2 B& t
- )( M0 r2 W5 g$ }4 E' K; q
. ?: Q" F; o7 C( J+ D- (defun ddellipse (): I5 E' U8 e2 S- z H3 ?
- (if (not (new_dialog "ddellipse" dcl_id)) (exit))/ ?! |! j, _* y
- ;; Set initial tile values
& E$ Z9 I7 W! a! U4 K6 i' p% S/ t& e - (set_tile_props): Y9 E5 i l! t7 r. b* ?9 ?
- (set_tile_handle)3 } F3 g0 q, D p# m
- (set_tile_pt1 1)2 N$ w" z) V# A3 `9 }5 J2 g
- (ell_calc)! e g, ?) _ K7 z) t9 g6 ~9 m
- ;; Define action for tiles
' K5 @& j" H/ W# ?6 x" E4 H - (set_action_tiles)8 E' w9 a ?5 L+ l+ N* e
- (setq dialog-state (start_dialog))2 U% m# `; \ S& i: f
- (if (= dialog-state 0)7 q- N4 W" G! c$ t3 r! h0 j2 ]; t& |( P
- (reset): Z' U1 N1 n$ h. ^/ f
- )* c7 P8 K% s6 ~( {* ~
- (if (= dialog-state 1)
! Z5 E: y; G+ k4 V7 e8 [+ n - (modify_ellipse)
9 b2 D2 R0 `: B ~% g8 G9 z - )
/ d q9 E( U8 q$ ?" v+ _ - (if (= dialog-state 3)
9 J& t+ q; L7 z6 R - (progn9 l4 T2 I6 j) C, r7 @
- (modify_ellipse)# u- s* I% d! f0 Q# M& e5 Y
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
, v- B5 V! G" O& U# |$ ~ - (ver_pt1 1)! }" n! J5 w) _: T( V
- (ddellipse)
$ T+ J9 n- v1 r; c1 u* B- \9 l - )$ o' e: I% K* J! w: T, I1 b7 S
- ): c3 q3 p. f0 Q |. E& e% L4 P
- )% p5 U/ Z7 V- G2 E
- ;;" U- D$ B$ G+ r% P8 o
- ;; Modify REGION
0 r2 S5 w. Z$ s7 e% ? - ;;
[0 u3 @+ d: `( f3 }8 k7 e3 E' D - (defun modify_region ()' u" [% T; R: ^% F4 F
- (modify_prop_geom)
2 i- Q" B7 U' K2 M+ [ - (entmod elist)+ d [/ @3 m9 q4 T, i) x- W" G: ^3 S
- )
7 Y0 O: Q& ?4 m
+ ?3 i2 c j8 Y+ x- (defun ddregion ()
) Q/ H8 c5 F# V* t. T: l8 ~ - (if (not (new_dialog "ddregion" dcl_id)) (exit))
; q- m4 V$ x6 v3 \% f- b - ;; Set initial tile values
. E3 J; }; Y" r; ^5 Z - (set_tile_props)0 K; \( x: _6 a- g5 X# _" p" P
- (set_tile_handle)
( X0 K: j" ?. s- \1 { - ;; Define action for tiles7 e+ j6 z* O/ q7 E
- (set_action_tiles)
* h7 x5 a. M# V/ G1 r0 N6 p0 i* M' [2 p - (setq dialog-state (start_dialog)) ]( A J$ T' L1 F0 _% s, S3 o
- (if (= dialog-state 0), m* b V2 a* a, Q2 O
- (reset)
7 j2 U2 Y/ f! ?. | M" z2 ~, } - )
* Z0 g# z- r- w( a4 w( v - (if (= dialog-state 1)
8 ^7 `6 P) [; u3 u2 I" W$ a0 _ - (modify_region)
+ ^& o5 r" F$ |6 B0 z+ p$ @3 L - ); d' D H& E; I/ m2 q* z
- )
; b' {& f; c5 n% V5 M z! G - ;;7 r7 g4 u4 Z, G# @8 \8 P7 }9 Q
- ;; Modify 3DSOLID( d* S' Y, @* E A! {" k
- ;;& ]+ C5 q) E4 `, b! C" K8 y7 X
- (defun modify_3dsolid (): a4 `( o0 O: D
- (modify_prop_geom)
6 E9 g% b$ N2 k! B: ]2 q - (entmod elist)5 d, L; v# K, B& c2 `
- ), H1 R7 d+ |$ s, A1 P/ w
- ! ~. S! x k. ^5 j, o0 m5 W! b
- (defun dd3dsolid ()) H( r H3 k' |8 p! @$ l
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
( t; m n* \: s& j - ;; Set initial tile values
7 z/ I4 M% j! N: u - (set_tile_props)( a' w. f( z0 J: l/ }# n- E
- (set_tile_handle)$ @' k4 M! b6 f7 C
- ;; Define action for tiles
4 q; z- C# O& P0 l3 N( C& h8 o% O - (set_action_tiles). s% X' z0 j3 I, j
- (setq dialog-state (start_dialog))
" X: r @) ~8 P1 \: a - (if (= dialog-state 0)( y; @9 p9 Z6 h* o, Y
- (reset)* ~$ E' {- {% f" o9 \) w" v" i: D
- )
) |% ?3 k( v# C* p5 v6 Z: p - (if (= dialog-state 1)5 P7 Q% o1 I7 ~' o5 P+ H0 y5 T9 Y
- (modify_3dsolid)% g B% d3 \7 A4 W2 A( Z+ c
- )
% `6 {) g7 o2 W' I+ I - )2 ~ p1 C7 J8 V$ N4 ~& J
- ;;' |' {6 p# l* E0 \% W" L
- ;; Modify AcDbHatch
/ t6 a3 [& s) j$ h6 b/ G; e - ;;4 Z+ c/ v" |$ ~% w$ C
- (defun modify_hatch ()
) A2 p5 k6 Z$ j, J9 o8 m - (modify_prop_geom)
8 M* T1 d Z2 C5 i' C# H" \ - (entmod elist)
2 C7 n- v. G+ _" q! p! I9 p - )
, @ C* }+ h! Y5 Z) t- x - 6 `9 G& Z1 t) }4 v! V v; X
- (defun ddnewhatch ()
5 t z: v7 B, x% F! }8 q6 r0 i - (if (equal hatch-elist nil)
* Z5 C# `7 h% V - (setq hatch-elist old-elist)/ o2 O+ w. }9 s% m! d9 `/ g; w, T- I/ q
- )
o1 a2 r1 q" f6 {# | p0 { - ! A, j' B5 k; {7 W# K: |! T% D
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
, G( L. c T( ?. [ H. c: k% r - . F, u0 Z" z, \. p' h. h6 p L6 T# V
- ;; disable the thickness tile
9 n0 d( R( i$ {7 }8 M - (mode_tile "eb_thickness" 1) E" n$ K1 y( C8 i
- (mode_tile "e_thickness" 1)+ a; T) \( g' a* r
7 ]1 k' M; C+ c$ d: v! L; a" \, V$ w& ]- (setq help_entry "modify_associative_hatch_dialog")
4 u; j, l+ C3 p. d - (set_tile_props)
+ v! ]/ L5 y- l! J - (set_tile_handle)
( ] [4 x+ ]2 m* v+ ^6 [ I- L) ] - + T. \% y3 x! m% B0 D* m
- ;; Define action for tiles: } q3 _2 t, W" E
- (set_action_tiles)
" [! M2 O, Q5 o2 y+ u( e - (action_tile "b_hatch" "(done_dialog 2)")& I; T, y, s: { f: Q+ r
- (setq dialog-state (start_dialog))% ]+ k2 p. g6 y/ |+ M& X3 W
- (cond1 k: K9 Y: R; I& n. \
- ( (eq dialog-state 0)6 v) g3 Z" l6 o, z) v( ]5 z
- (setq old-elist hatch-elist)
: O- L% E4 m" _- b8 p8 {" [ - (setq hatch-elist nil)$ w& q7 v! C) } z0 t
- (if (= (checkforlockedlayer ename) nil)8 `! F: O. S& V& V5 _( e' E
- (reset)+ Q L; z0 i$ y q# m Z
- (progn ;;; special handling for locked layer reset
7 `3 ^1 k! O1 z* m* B+ ~ - ;; unlock the layer6 \( f9 k4 A- V1 M! P$ ]1 i
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))# Q a- l8 h! E8 m! M/ x4 j7 s& }* x
- (command "_.-LAYER" "_Unlock" layername "")
$ f7 R0 p5 X7 K! `, j - ;; reset modifiction
5 ] s! s$ f7 a$ w - (reset)
% Y+ N8 G; Z* o9 J$ g, P% d8 y5 f - ;; lock the layer again
8 r2 L- a( Z/ S6 C. |) E" q - (command "_.-LAYER" "_Lock" layername "")
$ y3 h8 b; W& u9 m* f5 N1 J - )3 o3 f4 t5 b) M7 @9 W- V1 M+ Z
- )0 }/ R6 b7 b1 D
- nil ;;; makes (ddnewhatch) return nil for Cancel1 A# p& d0 a, f1 r/ G& }
- )0 f: I5 r! ` R W
- ( (eq dialog-state 1)# H: f Y) c6 B
- (setq hatch-elist nil)2 V0 _7 x' C8 s" j( y
- (modify_hatch)
9 [3 x* b1 S' b1 `" x- [& K; \ - T ;;; makes (ddnewhatch) return T for Ok
5 \1 Q4 R" P- h6 V- H - )) M2 u" n# {, _
- ( (eq dialog-state 2)
% ~6 s6 v5 u: P0 n! Q# W" L. B
9 E$ C* }& [5 }4 E0 i9 ?- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
Z) A8 q5 x2 s2 U, E% s - 4: V/ Y8 u* z0 o" o: ?* @4 ]& q
- ) 0 X8 S. W0 I2 v: K# X$ p2 {% L
- ;;; new selected layer is on a locked layer
& x- x7 j' i1 s& A$ T - ;;; we can simply modify the hatch properties" O/ f" j/ [7 J# u6 v8 o
- (modify_hatch)
9 _! R; c7 L) r; h% A - (progn
6 _! e& g6 H+ `' N* Z7 W4 j - (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
+ r# o$ W+ i# U& R, ?) s0 W - 4, {" j7 c3 [. z, K3 F+ Z |
- ) : T/ p4 C! V7 p0 `& F) ~( |. x& v% U
- ;;; We changed the layer previously and now the hatch lies on a locked layer.
/ w3 q2 `( `/ Z" B/ S - ;;; We have to unlock the layer forethat we can update the hatch properties.
' |5 T' \$ |1 K1 h0 A/ m! | - ;;; If we don't do that (entmod) fails to update to the new layer.
: `5 r7 e1 E2 J - (progn
6 }) I! X, w3 l; z, j - (setq layername (cdr (assoc 8 (cdr elist))))
; X% ]5 A: T* h3 t9 t# ^/ ^ - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
# p0 s' h. A9 \5 t - (modify_hatch) ;;; update the properties' Y7 G) t- i/ E7 _8 [3 @
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
, l7 a& \7 i+ i3 _ - )) ^) _/ X7 n% B2 X8 e# x- ]
- ;;; All other cases we simply update the properties
( l1 p! k8 L5 Y; C; \. p u& S - (modify_hatch)
4 i2 S0 G( h9 o' b - )+ f9 B4 f7 y L: K0 {
- ): R- v8 j4 Z4 E k: B' }0 s' M8 [
- )
7 o1 S$ Y1 L! t9 V. |: I' U% I - (if (= (checkforlockedlayer ename) nil)- o' P# d7 v7 V& ~$ b( ]; ~4 P
- (command "_hatchedit" ename)% Z7 M4 m3 {5 u/ n8 v9 w" T) o
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
/ R8 @7 ?$ T, n# B% t/ _5 p - ) n, M; D% W! s1 f" e( b
- (ddmodify ename)
$ \' h0 w0 X" M6 W8 B0 R - )& N6 B/ y/ j, R( Z
- )
- y& B' z& `6 F! r - )2 q9 c. ^9 V& P
- ;;6 b' y4 S3 O% b' Z
- ;; Modify BODY
8 v% g& k* m# D( C6 x0 y" Z; o4 f - ;;" o; q& v9 g6 u3 d# M
- (defun modify_body ()
* X- C0 ^ |; H/ ^) V9 P - (modify_prop_geom)2 n. S! V2 k. C; P3 l5 a
- (entmod elist)8 j: {9 R6 i4 M8 C' l: l
- )
a" K6 a% U# v, T4 c* A, K - ) a' W2 {9 e8 ? a' i8 q
- (defun ddbody ()
) @1 {) v( h, i# V, B7 S6 c - (if (not (new_dialog "ddbody" dcl_id)) (exit))
9 B5 p' w9 p* F2 h - ;; Set initial tile values+ j% l$ D9 \. c6 G; ?3 d" z
- (set_tile_props)
& f* F; x* O M - (set_tile_handle)" {& o" T6 [! s% U
- ;; Define action for tiles. N$ s* z% }; T
- (set_action_tiles)$ V& J; G8 X' p
- (setq dialog-state (start_dialog))
4 L+ L: Z8 [6 |9 Z4 h - (if (= dialog-state 0)! ]' B4 O4 P; B! O
- (reset)
3 {. g6 r( ~& L& J- [ - )
: {' d6 Q. d2 B# C6 R9 C1 B - (if (= dialog-state 1)$ t' _& F; F( w( ^5 U0 ]; [" k
- (modify_body)
# Y/ z# ~. J D) S - )
" ?+ I& X2 G/ }& {& N - )! N9 s$ G2 U2 T7 h% }" o, I
- ;;5 Z, W( l- N/ b' @, {
- ;; Modify CIRCLE
, }' t, P6 Z# {5 ]7 c7 X8 k6 T- M - ;;* t6 ?( v: Q/ I+ @( r# B5 m' _+ O3 u
- (defun modify_circle ()$ @* ~5 s) E- m( H! ~5 G
- (modify_properties)
9 s1 t: k/ o7 q- O4 e8 `3 n2 { - (setq pt1 (list x1 y1 z1))4 V# s4 l) c9 h4 p0 q/ t4 ?
- (tempmod pt1 10 1)
V. g% t2 B; d/ a - (tempmod radius 40 nil)7 ?' z' Y; ?1 ]! n
- (entmod elist)( P1 \# }* I" n# U9 Z! c
- )4 Q3 t( ^* b3 y8 E+ Y
- / E$ m9 d/ r9 I' q# z9 o# `
- (defun ddcircle ()
O: Y# _7 d$ j5 t/ |7 O) \5 L - (if (not (new_dialog "ddcircle" dcl_id)) (exit))
& A# Z0 \6 c8 h0 u2 B: L9 `- L - ;; Set initial tile values5 @+ [4 U* [2 x' A/ o n
- (set_tile_props)0 ?6 b6 T) U8 H% Y' v
- (set_tile_handle); m, L: H1 X+ W6 M
- (set_tile_pt1 1)
' t/ x$ V3 k/ B5 G+ k+ a - (set_tile_rad)
" i- w- l0 y8 N" q! | - (cir_calc)
. X' z* a- A' ~8 V0 ~; Q% { - ;; Define action for tiles0 P! Z+ R5 L2 W% a! G/ u
- (set_action_tiles)
& h4 n* ?' o- t - (set_tile_pt1 1)
: C) A% p) @2 ~0 x% V0 l" T' \% b - (setq dialog-state (start_dialog))3 |" M8 ^3 X, ~1 K& A
- (if (= dialog-state 0)+ q% M c0 n& _2 i" T
- (reset)0 p1 t8 n3 v% [8 k7 h w
- )) I$ I& z1 b: h" l% J
- (if (= dialog-state 1)
+ f6 I) {: s/ P9 j - (modify_circle)% }! Q9 ~# Q+ c3 \9 X7 i5 n* f
- )
' f/ I! F" i. f6 ?: ~6 Z1 S% { - (if (= dialog-state 3)
7 n& x" Q0 Z7 M( u% _' N - (progn+ {: O9 Q9 s2 p
- (modify_circle)
# d2 @- D! a5 L, q' i: C: q - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))' J+ u% D! g2 D% ~* l8 ]& i
- (ver_pt1 1)
/ n+ L' ]; P. _ K A# p - (ddcircle): ` y* Z$ e6 A. f9 u; h- G7 r3 x- ]
- )
+ y8 F8 H0 J8 M! } - )
+ p5 \4 ~# n. \& C - )* K/ @( u& G+ \9 }) l) l1 M) R
- ;;
3 ?6 w& Y+ w" Y$ ^; x6 e& v - ;; Modify ARC/ | A( D7 ]. u
- ;;& W; d+ g5 _' P4 J, c" Q% }8 ?! W2 r
- (defun modify_arc ()
) {( \6 k9 Z) [1 Z4 m1 {& Z! z/ T - (modify_properties)
9 R# F2 v n$ |, O- x4 D5 `3 D4 p - (setq pt1 (list x1 y1 z1))3 S/ Z, `/ m7 ~; b7 |
- (tempmod pt1 10 1)
& e. n* N% f }: T+ T0 [ - (tempmod radius 40 nil)
4 p V, f8 N3 @* S; w - (tempmod st_ang 50 nil)" i. m% _, Z) v8 ]7 f. D X
- (tempmod end_ang 51 nil): M o% l K! k: |1 E4 Q A0 s% E1 M
- (entmod elist)' b- i9 s! e; E
- )- D: T# h" s2 x, ?
- (defun ddarc ()
- [; ^" W8 P9 j! g1 x% t1 U; p# U - (if (not (new_dialog "ddarc" dcl_id)) (exit))& X2 l& D4 h* ]" }
- ;; Set initial tile values3 [+ t6 m5 g! g, v( ^
- (set_tile_props)
4 ]- }' l8 U: z. U' k$ M$ v. ]0 L6 q - (set_tile_handle)* `) e! z. W2 J2 I0 j5 J
- (set_tile_pt1 1)# J/ n( U/ i; G* \2 y6 w1 s
- (set_tile_rad)2 W h0 F+ R }4 X9 s
- (set_tile_stang)
) f* y# o/ w$ z1 r- L3 \9 t, [ - (set_tile_endang)+ |% u% v6 u+ X) O2 M
- (arc_calc)
$ n9 m4 F% o# B- R - ;; Define action for tiles' Z% {. F8 j* E5 h, h5 ]/ P
- (set_action_tiles)
# F* t$ Y7 Q, A& k. S - (setq dialog-state (start_dialog))
5 }- F5 e5 @% d# z' L - (if (= dialog-state 0)
* [! f. ]9 j5 W0 F - (reset)
) s, F; ^$ k- ?: C% U - )4 v9 W$ u) M2 F* l, f% |/ y
- (if (= dialog-state 1). h( Z& ?1 o% S3 n/ p! x
- (modify_arc)
# H! V x/ z9 b" d - ); v/ F1 c! Y! ^" T% U! Q! [
- (if (= dialog-state 3)
$ }2 {5 A$ o" R8 [- [3 J0 m - (progn+ p! u* ^) \( \7 J+ i# L' x R" _
- (modify_arc)
" ?+ z* V% o% N - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))9 _9 L# m- k' E0 J. _% X$ Z
- (ver_pt1 1)
" f1 ]6 b p. Q - (ddarc)
8 ~5 |& P( B- d- I7 s% B* n K - )
3 x- v5 G9 S* ^0 n" | - )- q5 W3 x& f1 z2 ?
- )
! F+ P( U1 c( k K* S7 _ - ;;
+ b: J$ ^' E4 B# O6 L' J5 D* y - ;; Modify SOLID or TRACE
/ W- Q i- L& }- u6 p- Z. A - ;; Note the Z value of the object is determined by the Z value of the fourth
9 Y V; ]8 M6 q+ x' t8 Z# B5 n - ;; point - code 13. Changing the point values of a solid or trace from a UCS
- {. t v2 V' V. J) c - ;; that is nonplanar to the UCS the object was created may confuse the user.) l% o) B3 U% x$ h
- (defun modify_solid ()3 s( c. V; c- _9 {% ^+ g
- (modify_properties)
* C4 @( ^( C( \7 U+ N. q! b, ~% ? - (setq pt1 (list x1 y1 z4))
?( S( e% q, ~3 K, e; n - (setq pt2 (list x2 y2 z4))
2 V. ?5 ?. K6 N8 a - (setq pt3 (list x3 y3 z4))" y& e0 ^. x( h( }4 _% ?8 {- I' Z
- (setq pt4 (list x4 y4 z4))- s( u# L" d- p J" b! M
- (tempmod pt1 10 1)
# n, `4 O0 L+ r/ p; h6 Q1 ?' Q5 c - (tempmod pt2 11 1)
; I3 `/ u' D3 a3 X& X - (tempmod pt3 12 1)& {6 m. u( q( g. e
- (tempmod pt4 13 1)
6 i4 \( y, x; R - (entmod elist)+ ~- S+ X0 {. M9 m
- )
! ?, L+ l4 H9 z6 _7 Z - 0 L& |+ s: `9 P5 |
- (defun ddsolid ()& g+ Y: l- [9 R& `# d8 _' J& a
- (if (= etype "SOLID")+ @6 Z0 z( Y4 I1 z4 B& N$ ]
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))
, o( N5 V* v) F! m# O8 D - (if (not (new_dialog "ddtrace" dcl_id)) (exit))
. }; g5 q! T& u$ i6 W1 n* {8 H - )
; X9 L2 k ~+ x% i) V- U5 e - ;; Set initial tile values
. R) O7 G( H6 K: @) n( {( M - (set_tile_props)
7 U& r7 W; G/ \ - (set_tile_handle)
- F% Y4 T+ t7 X5 j/ H: r) g - (set_tile_pt1 1)
o0 `) T9 A- d4 s3 ~ - (set_tile_pt2 1)0 M8 A6 o3 n: r' R, Q4 B
- (set_tile_pt3 1)
! w* L4 y# d; J" v - (set_tile_pt4 1)
. `) U9 n: ^ J `5 a - ;; Define action for tiles
: x8 M* }( C: [: | - (set_action_tiles)/ x' }5 Z* i, P
- (setq dialog-state (start_dialog))
7 U7 J6 A" }4 m j6 U - (if (= dialog-state 0)8 j8 R5 M4 j: P6 K: n7 B$ l
- (reset)2 ]& f; p2 j% [4 C5 _0 Y
- )
3 f' k. A$ P L, S - (if (= dialog-state 1)
- @: j# u5 Z' _6 d+ _: n, k - (modify_solid)
; L& w/ R& @. s# r$ n' d( o$ g - )
$ l' V, y& u9 I# B+ ? - (if (= dialog-state 3)
# X+ x/ B9 |7 `6 {+ K, r - (progn2 C/ D! m. a- W, q O! o/ m
- (modify_solid)+ K6 n1 L. x' H/ [, f+ h
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
! ? w5 C8 a+ d5 f# T% T" o! o - (ver_pt1 1)
3 B% u- T4 U1 u& W7 z1 V$ c - (ddsolid)) S% d* ^' U9 d- [
- )* n. y0 }' \& j% U S' T) q; |
- ). k1 H! w1 p. I4 t# L" x( A
- (if (= dialog-state 4)3 w; M7 }5 _- x% w- i1 n5 f0 H
- (progn
! x' D( W) e- ?3 y - (modify_solid)# ?! O5 W$ Y6 W
- (entmod elist)
, |$ C# K1 h& i: c: b5 L - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
/ m+ E5 ]! J6 k+ F5 U% D+ Q5 u - (ver_pt2 1)# J, M7 [& G% k
- (ddsolid)
# H& x4 B7 ^% Y% N- G- U - )
( A9 l R5 t% ?3 _8 E9 P - )6 O# [8 s' b" M# h) \
- (if (= dialog-state 5)
4 g9 l/ N6 C9 w2 B - (progn5 l9 K& g( L' b; w7 p
- (modify_solid)+ a- T# k0 Q0 G- y' \8 t! X; z! @
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: ")); Z2 a m5 J# B8 @! ?0 M* D/ z. X7 Y
- (ver_pt3 1)
' m$ m% X2 m5 { - (ddsolid)
/ u. B' s9 e* g |- Q- c% R - ), ?% R- |7 x7 r8 I# V9 b4 e$ G
- )
2 x- e' j5 S3 L! y5 _5 s$ V - (if (= dialog-state 6)
$ O. u! v/ C7 y7 O9 `0 ? - (progn
p6 a& I% h( R, m - (modify_solid), _4 ~- {2 p; v/ l& v; r
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
* Y* V w4 L0 a/ }' w$ `' u0 a0 I - (ver_pt4 1): n2 k5 O7 k' q5 ^! e
- (ddsolid)$ ^: p2 C) \+ }! u0 F
- )& k2 O! C5 h+ T7 r$ e
- )
5 c" ?8 y. ^4 x2 r- h - )
0 q2 `/ E. r9 t/ z( t% {+ P6 k - ;;: X b1 A0 e. w) ]' |
- ;; Modify 3DFACE
5 p2 J: k' ` T/ s7 X - ;;( l. w/ z x4 x7 V" G; a/ }3 M
- ;; Check visibility of edges+ m; Y' \5 I; {7 S
- ;;/ W4 T Y6 l8 {# V, Z) O1 H
- (defun edgetest (/ bit1 bit2 bit3 bit4)
& k# l8 E6 h- x2 s* l8 Y. L/ a - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
5 I" k9 P! y# b# i/ _' [ - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))5 ^( `- e. }5 _. n; B6 V5 W2 z
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
| v. [" p$ T( _+ P - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))
4 V6 _9 Q/ d$ G y. Y- u4 O - (+ bit1 bit2 bit3 bit4)$ t; d0 \' `% S
- )% \& h5 y4 y. K
- 9 }" ~4 Y5 [# m& Q
- (defun modify_3dface ()6 Q8 l3 A( {; a# j h8 Z
- (modify_properties); `5 m2 a8 \ H5 B3 \
- (setq pt1 (list x1 y1 z1)); c* o$ r" C7 a1 Q V- ?% a
- (setq pt2 (list x2 y2 z2))5 n( o1 o( h5 w; q
- (setq pt3 (list x3 y3 z3))/ R9 K. E# O0 M9 V& \
- (setq pt4 (list x4 y4 z4))
/ y# j$ g5 W1 ~2 N" F/ Q5 w - (tempmod pt1 10 0)
, K5 M* K+ k. E, j9 { - (tempmod pt2 11 0)
# E. b: P7 [# x* t - (tempmod pt3 12 0)5 g) Q' S* n' ?( d% N! c
- (tempmod pt4 13 0)( y u- V1 z* v1 |2 |
- (tempmod (edgetest) 70 nil)2 Y) S0 p) f$ t4 z
- (entmod elist); l2 W. K3 M' ~) e1 t
- )" p8 a0 I2 h+ B/ Z$ [% r8 L
- ( {9 Q! X" G, |( {& T
- (defun dd3dface ()- q) |* x+ y$ n7 j" ]: V
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))( \6 S$ U. H! s- F7 A
- (set_tile_props)9 O- T3 O7 \/ K7 n1 r& _; K
- (set_tile_handle)
; L' a- |' @. j) s, w: x: W. b - (set_tile_pt1 0)- i; O9 H4 x" [; a( ^
- (set_tile_pt2 0)
( G3 Z/ Q% `5 K - (set_tile_pt3 0)
( z2 B$ S: z# V! L& A- ~& O - (set_tile_pt4 0)% }9 t2 I- j( V; M) U9 E
- (set_tile_edges)) V; A7 C7 J7 n5 C) E
- ;; Define action for tiles: ]' P9 }! a* ^( {
- (set_action_tiles)
2 f) u4 Q, _3 l$ U0 x) y, h" P: B+ j5 G - (setq dialog-state (start_dialog))& b! H" B* ]4 U j
- (if (= dialog-state 0)) e0 e2 ]: s- w6 b& _
- (reset)7 i% h+ O3 {$ N, f
- )
6 L! S0 n6 I2 w: l - (if (= dialog-state 1)2 ~/ E% v2 ?7 _8 [9 R8 v3 [" I
- (modify_3dface)
, e( ~2 U( R7 H/ i - )
; L. k- K# Y' _* |# |& N1 p4 l - (if (= dialog-state 3)
( U8 b( m3 X; F0 c% R) {8 l - (progn5 n3 Z7 }6 u; v& l) K0 S& J
- (modify_3dface)
+ [3 U2 ^4 h U - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))8 n+ ~1 x& F/ t
- (ver_pt1 0)8 v: F0 o' B4 z. y# @% ~' f
- (dd3dface)/ q" s$ \$ R6 ~2 T6 ^. A( ~$ d6 w
- )4 U, p8 ?0 t6 d' s9 O1 P, v" b
- )/ I7 F/ P1 R& v% j
- (if (= dialog-state 4). V0 f$ Q- V# {' s8 q
- (progn
* ~) f3 k4 f' f8 F) p - (modify_3dface)! ?1 B p n* p* D9 Z
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
% M) p# y0 Q1 `" S, I. J& P - (ver_pt2 0)
; ~3 g5 x) q( Z8 [$ [ - (dd3dface)
% c$ Q5 ?: l4 q; r' N - )
$ _! b4 S9 G# h8 N: D3 r5 u - )0 w2 Z I s' a7 R
- (if (= dialog-state 5), d+ N" i7 w7 ~# v
- (progn3 e8 k3 C7 o; b' L* N5 U2 y2 D# t7 k
- (modify_3dface); w) L) V4 ~- e; d2 B6 x C' l% G
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
; V0 Q8 a& C% @. O8 M6 R - (ver_pt3 0)2 N, p% @; I* e
- (dd3dface)( R) g: ^, r7 d2 y' a
- )
& ~% _; F8 E. o, S4 X3 ^ - ). F+ M" f4 `+ g V% Y
- (if (= dialog-state 6)
; e- g. i! U; n$ S$ F - (progn
. ~ g/ g: b0 l - (modify_3dface)
6 G' t& A' ^+ B' P6 n1 b$ _6 U - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))& ]6 h& C) a7 j0 \$ a( m2 L& p8 Z5 `
- (ver_pt4 0)2 X/ ~( x5 O% b& \5 B: G+ H
- (dd3dface)
9 A3 M4 u6 z q7 h - )
) Z5 [! i8 Y. z) l* A7 M6 b- a( I - )
+ O! C6 [7 d; \' X - )
, t- L# p% V, D! K; R5 x - . Z1 d/ L3 t$ R, N. w( t
- ;;
3 B( R$ Y$ }# J+ \ - ;; Image functions' c8 e. R& K4 n$ ^7 y6 e" B
- ;;! f& V1 \9 p# ^5 L. }. \
- (defun image_scale (/ upixel en n userscale temp)9 l2 }' R1 [$ @# t
- ;; Calculate the size of an image pixel in AutoCAD units$ ~: L1 q }3 ]( T( B
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
0 d2 u' V7 W v/ g8 P; c - 9 h n5 r$ M% z) k( M7 J
- ;; Retrieve the user scale' m# R- t; h" Y) Y B. o9 \7 i
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
" F4 {% p" ^8 X5 a" S - # E! Q7 m6 A4 I( K
- ;; Next, extract the image units and pixel resolution
$ i; E5 p* m: O - (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en)))); ?6 x/ n' Z& s
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))) z) G4 K9 J0 u2 X* V
- (progn( W3 ]8 ^* S2 n
- ;; Convert the user scale to the proper word. a0 X+ f# [4 X" K
- (setq n (cdr (assoc 72 en))): \4 ^( d5 H8 k8 N6 @
- (setq temp (getvar "LUNITS"))' |' @, f8 H) @* z2 ~9 O9 \4 W5 J. R
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))1 _: {8 M4 ]1 K( X5 M: n
- (if (= n 1) (setq userscale "Millimeter"))3 T z0 t; T: f7 L& L* w H
- (if (= n 2) (setq userscale "Centimeter"))
* ^6 z3 l2 m# B( i/ [ - (if (= n 3) (setq userscale "Meter"))
: J9 u8 s, y4 @6 L6 r/ h: |' r2 p - (if (= n 4) (setq userscale "Kilometer"))
( P& j1 [2 [6 S8 ?1 t j - (if (= n 5) (setq userscale "Inch"))1 g3 m* X0 A& R7 ?& M* r% A
- (if (= n 6) (setq userscale "Foot"))
( P) Y: T+ B9 C - (if (= n 7) (setq userscale "Yard"))- X; Z6 D) L& p: c7 F# K
- (if (= n 8) (setq userscale "Mile"))( y9 z5 }5 S5 d8 k6 n% z' s
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))% [2 C/ J( f2 h0 {9 f
- ): b: T) k* l' G, y- P
- )
, H8 \9 ^5 @6 v! @ - )
" {* R) b! }* d0 `$ S9 U - 6 `. K1 U9 U0 P4 C, V1 a
- ;;! R; ^4 p% F6 y# p* h0 U' Z
- ;; Scale factors for block insertions6 J" f% x) h/ Y7 y
- ;;0 A: G2 s7 c% i0 ]; B2 n! P/ ]
- (defun image_set_tile_scale (/ temp)+ x+ }' e' w3 P
- (setq temp (getvar "LUNITS"))4 c& N% i* b/ ^& K( M$ l
- (setvar "LUNITS" 2)4 \* t2 K, G0 f& { s; _
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))! w8 S, q( E) s
- (set_tile "wid" (ai_rtos (* image:width image:mult)))$ w2 ]8 s. H/ _2 ~! m) O
- (set_tile "hght" (ai_rtos (* image:height image:mult)))
5 u# J- _; f5 D- a0 {9 S - (setvar "LUNITS" temp)6 }; D, _# v& V# u* X
- )
0 Z ` n; u- p - . s# W- k/ L7 A) N0 M- t* L9 e
- ;;
5 J" J2 d/ P1 a, M - ;; Set the scale, width and height values appropriately.- M, B1 K+ F) r' R+ L
- ;;
4 H1 `4 G6 Q, Z7 h6 k - (defun image_update (field value / orig_value new_value mult)
) |& u( W7 @+ T4 A - (if (= field "xscale")
0 L. q- {$ C0 T' ^5 K - (setq orig_value image:scale)9 _3 M2 C6 Q! c$ y
- )
1 s$ d" K: m9 L U2 |) _4 ] - (if (= field "wid")" g' k5 `4 t1 V
- (setq orig_value image:width)
! R! P) k+ h# b9 M+ w) |+ Q - ), Q T; O1 ] H) u
- (if (= field "hght")
$ M( B# L: n% H; o) L- I - (setq orig_value image:height)0 I3 G# n2 F$ ]5 d7 S, ^. ~
- ). r8 m5 |$ C# n2 S e2 @/ b
- (setq new_value (verify_d field value (* image:mult orig_value)))( z7 F: h9 _4 J/ V. L: a
- (if (/= new_value old_value). [0 ] ~4 l6 m! T% @$ w' V
- ;; Make sure the user has entered a sufficiently large value5 b& p [- e$ _) n* T
- (if new_value+ E1 l: X% y, X& E
- (progn. \! [2 c k/ D7 d3 {
- (if (< new_value 1e-8)
; s' X. u+ c/ U8 B- x, v# ^ z+ K - (setq mult image:mult)
# z( E! S% w! w% a: M - (setq mult (/ new_value orig_value))
7 q1 }% ]( |3 ?& {# t+ _5 Y - )
8 a" M' K. P0 y8 v! m - (setq image:mult mult)
* E' {. s' v" V5 x& M/ ? - (image_set_tile_scale)8 N& n/ U, G; C
- )$ E. ~' j. f& K4 Q& C
- ) O" I* ^3 Y* m+ B
- )
) s3 C; S3 X7 ~& j& _3 q. p1 @ - )
" B$ d& _! q: c - & ^9 }& A/ u% m
- (defun image_disp_opt (bit)1 }* p0 W% ] o. r7 p+ `
- (setq image:options (Boole 6 image:options bit))- o7 t/ H& c( O6 ~
- )
# K# `3 f; U2 Z/ }) X3 Z. f: [ - 6 V3 W ? N( N4 V, P
- (defun image_modify ()$ h) b. H9 }8 _5 r& ]/ i7 d% y
- (modify_properties)
: P- Y( y7 f* k o - (setq pt1 (list x1 y1 z1))
" Y1 x2 p) y5 w; }! ^5 T3 X - (tempmod pt1 10 0)
: _6 A- \* M( \3 z* c3 L% T3 P, d - (entmod elist)3 E/ z1 k' U X4 [$ T P/ w8 j
- )1 O4 T P' w3 Q! H( G
- ) K- v: J7 K* I% v3 r1 @$ U; Q2 M
- (defun image_clean_variables ()
0 h0 ~$ p: J+ U7 i ~2 T - ;; Clean up global variables used here7 a' y) P! K' l$ C- |& C
- (setq image:scale nil)
8 y7 q& _4 X- l - (setq image:angle nil): z- {+ e3 f6 `, B* X
- (setq image:width nil)
+ {3 g% _( `5 H* T - (setq image:height nil)7 Y: ?$ R3 P! f# `
- (setq image:options nil)" w+ I1 Z# t7 G. W( X
- (setq image:oname nil)6 r7 Q2 x& R4 N3 e k
- (setq image:olist nil)3 f9 P0 Q9 l+ Q2 [2 \8 W
- (setq image:mult nil)
8 }0 z3 a( x7 \' u! l7 Q) X+ ? - (setq st_ang nil)
8 ]1 s- Y8 E& h) i: b9 q) h - )9 I1 L/ h6 K1 T( [ p6 X
- & V' ?. ^4 [9 y8 W9 {5 x
- (defun image_scale_vector (v1 value)" {+ m# G, u1 I7 T+ a$ N
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
5 J6 r: R' \; B4 z: Q" ^* U - )
5 ^% }" T' m2 F w
( p Q; }7 _2 N! S& Y7 c) r- (defun image_cross_product (v1 v2 / vx vy vz)
- z4 \; P1 F0 E, g, P. y - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
) P3 L- | \0 w# K6 L, H - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2)))), V0 `7 I/ t* q
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
7 L5 N( w1 y; D0 e9 Y; T' y - (list vx vy vz)# l) j1 s' V; n6 q6 h0 L
- )) [5 J) i2 Q$ N9 K
- " J9 {5 i' A6 C. Z+ {( C
- (defun image_dot_product (v1 v2)+ B) @3 W" q& v* U3 N
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))% |# C* f" R% m& v: Q2 Z" V
- )
0 d/ {' f+ @2 @ - g3 R9 o% e: V v; f3 y" g, ?
- (defun image_add_vector (v1 v2)
9 w. k" i, I/ E" R - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
, w- J3 P" u7 Q. R - )! u$ {5 f3 x2 a. f W* @" w) Z
- 5 U. [: [0 [* N* `5 T8 u
- (defun image_subtract_vector (v1 v2)9 L$ s+ M6 u$ {7 x) Y
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
4 D& W7 T& ~- t* E - )# A0 @5 d# ] W' M: M
- + v5 O1 ]* b7 E! V# h7 \/ M' ]$ q% |
- (defun image_normalize_vector (v1)' C; Y% ~( b5 f: k
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
0 y. Q+ F k8 U! t7 S: d7 z' w - )& C; f4 E7 [' b; R# d
- o5 M: A/ v& `; i- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
4 e, k) R7 _, i7 V | - ;; Normalize the axis; R1 a; i7 a$ C* E3 V7 R O% e
- (setq axis (image_normalize_vector axis))
/ v% T( U- U. U W4 v! k+ O - (setq along_axis (image_scale_vector axis (image_dot_product vector axis))), e' N# H3 l0 y0 ]& J2 C2 A
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))4 E. v7 R$ p3 O( a& u
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
P9 W5 o8 b$ i6 d - (setq in_rot_plane n0 a1 F9 J4 F/ F C
- (image_add_vector' }, D7 c4 l$ k# t, R+ w, D0 O. C
- (image_scale_vector axis_x_in_rot_plane (cos angle))
" V% }& x3 y+ U, J* U - (image_scale_vector axis_y_in_rot_plane (sin angle))& l# H4 E# q" f2 I& f
- )
4 R1 L4 A) O0 m* ] - )
# W5 K, q, R9 y( F# Z9 ^ - (image_add_vector along_axis in_rot_plane)
A: s+ ~9 f% z9 F - )
0 b: p" T: t$ s3 } - . R9 Z) @6 d# e- K/ x
- ;;
' E/ S6 V1 u" e) k1 J& v' B - ;; Calculate current rotation angle if appropriate.+ p* ?/ a1 `3 x
- ;; If not, grey out the rotation field.
* n: B" B& n! v& u4 d! I4 d7 x9 x - ;;
0 z$ Z0 T$ V4 E$ ]& u. W - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)8 _2 x9 ^" |. \: q7 L, R# s
- ;; Determine if image normal is codirectional with9 M, ?9 U) \. U# h
- ;; the current UCS Z-vector.! ?. i0 C% d6 f2 w9 \% q
- ;;# e; n/ v, Y1 B4 C
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))( I. _2 I& H" a. I5 H9 [+ u0 h* L
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
; s* a5 k* Z7 F; t' o$ c - (setq zlength (* (last normal) (last normal)))7 o0 K5 q* M( p: O% h! m
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.( B4 f' Z) j" U, U; Y
- ;;$ d ^/ z7 w, {: U
- ;; cos(.0001)^23 r# n5 ~5 G7 c m: [9 h. q
- ;; Tolerance = --------------. W7 i, @) w) s& O: L0 s6 C
- ;; sin(.0001)^2
) }4 n: ~& l1 i4 q) A- o - ;;
6 |( q' j* \# }. y - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))/ T3 T" A9 f" V' W/ V* V
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))3 i8 k, x- l6 @3 o/ P! S! Z L" L
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
0 F) Y+ L; p' Y/ m - (progn- {; l J) a/ J6 w
- (mode_tile "st_ang" 1)
6 x8 i. t6 S7 B) l: F' i - (setq image:angle 0)) Z) K6 c0 y3 p. L" K" R$ e0 J; W
- ) `8 @$ D0 m" c9 w
- )
/ G) n- S5 T& P - )
3 F( M$ x R% K* S - ; ~; a4 Y; S( `' |
- ;;2 }3 Q \/ ?7 r+ H6 @
- ;; Modify Image2 g* M f/ N# b. W
- ;;
/ s7 I: e4 U% e, i" c; \ - (defun modify_image (/ u_vector v_vector z_vector)3 S0 C8 @. n8 o- i1 W- u
- (modify_properties)
* z9 P* u! q1 T1 S7 v @ - (setq pt1 (list x1 y1 z1))4 v. q! E4 K$ z
- (tempmod pt1 10 0)( k% \7 L0 |( n+ F: J9 l; ?+ O# \
- ;; Make display option changes to image
4 V8 c( H W* X8 R# g2 K - (emod image:options 70)/ B1 t6 b2 l6 y( R0 B1 k
- ;; Get the u and v vectors
4 O& }+ h+ I9 l0 V5 \0 V - (setq u_vector (cdr (assoc 11 elist)))2 W5 B5 f! W) j
- (setq v_vector (cdr (assoc 12 elist)))
i5 p! c( P u
9 W% P+ ~, [. ]( {/ Y- \ u5 d6 w- ;; Make scale changes to the vectors
" g8 S- h* l9 N# L( J; l - (if (/= image:mult 1)# E% u" x. o0 K6 p) q1 e( M
- (progn8 J# ~5 M( h. M e3 f9 r
- (setq u_vector (image_scale_vector u_vector image:mult))% X3 r- y: W5 e1 c+ X
- (setq v_vector (image_scale_vector v_vector image:mult))" f1 m; f% _- z8 A: {
- )
2 o8 O( U, k" w" P! i6 w - )- |5 r! P( l4 a6 U) ?$ x- E
- ;; Rotate the vectors9 M/ T# p* F) r, _ K: C$ u
- (setq st_ang (- st_ang image:angle))
. e9 U; I- H! y - (if (/= st_ang 0)
" l* `% o* K" ^ - (progn
, t8 K' h) V" F6 F) d - (setq z_vector* ?8 `4 R0 b4 G9 k
- (image_cross_product
y: h; i# W1 I8 g3 x- ^ - (image_normalize_vector u_vector)
y% b6 R" l4 g( z - (image_normalize_vector v_vector)& m" `9 c' l1 i/ L
- )+ k( o, F* U0 r2 |, k0 C
- )6 n7 _7 D0 Z/ q
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector))8 s, v7 r, F' P" D* ^# f. ~
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
4 O7 s }' y' ?6 v( | - )
* R2 y9 [% v- N- Q7 w+ W0 L - )5 m0 z& @! L7 `5 Q8 l
- (emod u_vector 11)8 z0 }4 D3 e. v m
- (emod v_vector 12)
, n0 l( ?7 t5 i - (entmod elist)
, K) x3 i$ O0 h& j2 W9 z - )
: w/ ^+ ` ~; ?0 A6 I- }
2 w8 t$ D+ M$ d0 q( g7 j8 a, N$ ?- ;; z& W, ^/ \' i
- ;; Run imageadjust on given entity, working around possible
# G+ Z7 m: Q0 }/ J, G - ;; re-entrancy problems
- R$ `0 B G2 C7 j$ F - ;;
8 J2 I9 ?; X: O5 { - (defun image_adjust (ename)
+ n; T6 C+ r6 j% a - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
8 U1 p, G. B3 n p - (imageadjust ename)
. j4 g- @3 O5 t# A# L ` - )
) q& Q& d* e! R8 ~
2 U6 n1 o" D: o/ t0 r- (defun ddimage ()
8 G' k1 R" ^" e+ ~. x$ G - (if (not (new_dialog "ddimage" dcl_id)) (exit)), n1 k8 s# L1 f& k4 ?7 I( H
- 2 `, t9 ~, Q- J9 L7 s' P+ i
- ;; Grey out the thickness field.6 ?- b( `1 @2 g
- (mode_tile "b_thickness" 1)
$ T- _& r6 Y) U' Y. D% F - (mode_tile "eb_thickness" 1); T) ]' I- G+ U+ v$ V
+ c! L( e) x; Q% J- f, ~" u, w" N- ;; Get the associated def object.* f9 F. S+ l! `
- (setq image:oname (cdr (assoc 340 elist)))& C3 y0 Z& r& Y( o
- (setq image:olist (entget image:oname))
0 z" N" Q7 b! R, G5 t o+ q2 @ - ' x6 `* p! m9 y) B8 L
- ;; Set initial tile values5 D1 y5 \' k5 e9 z! m
- (set_tile_props)
' u8 r/ L, n6 K: x2 d' b - (set_tile_handle)
. z4 ^) \& g, |, [& `# c0 |- s! K7 o - (set_tile_pt1 0)
( G- y# \/ o, q& F - (setq image:scale (image_scale))$ p/ T% h. [) X- Y
- (setq st_ang (image_rotation))3 F- K6 J: f' h9 d, k
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))5 Q- e+ J2 \. e" p) p1 n# l
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
/ Q# \) a" X4 _3 ~! \" g, u - (setq image:options (cdr (assoc 70 elist)))
4 j# |8 Z& `1 ?/ f7 Y - $ L9 L$ `+ j' d1 F
- ;; Record the last multiplier for use in image_update function
/ o9 j7 i8 r; Z" K3 k. Q! a5 S" f - (setq image:mult 1)8 c! v! w+ V: I9 m* M- D
- " ]5 H( Y2 C# w. l& f2 \
- ;; Retrieve the image name0 D: [* z: F. A0 h' _2 w& e
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))' K: z7 T* V( X) Q4 |+ `- f
- (setq flag 0)
/ x, @2 N0 x" k# n - (foreach n fn( [* w8 a2 [7 C1 i
- (if (= flag 1)3 V: u1 K+ ]' r9 d
- (progn
( U K2 z3 w) T2 \" |; ^( G$ b( A; |+ ~ - ;; Display the image name+ J# |6 a; [4 [9 Y9 N% i* e
- (set_tile "image_name" (cdr n))' G* r8 {: \. X9 W# D
- (setq flag 2)1 K7 c( l$ C! R0 z; e- x9 ?) F
- )4 |. |# `: b: {/ Y4 ?& p
- )
2 e/ y0 K/ P6 ~" ~ - (if (= flag 0)
3 t9 W4 K4 s6 L" o - (if (equal (cdr n) image:oname) (setq flag 1))$ f7 e Y9 X# I; u' i
- )' y1 ]1 a2 A3 g
- )4 C/ v+ _9 S { S
- / k' g% A H$ Q4 E& k; u
- (set_tile "image_path" (cdr (assoc 1 image:olist)))
! O+ E, o( Y7 t& f6 q7 x% o - (set_tile "st_ang" (ai_angtos image:angle))* o. c* H, S3 f; J
- (image_set_tile_scale)
9 L4 `( G/ F# h- q4 \8 H9 ]
) ]; m- Y$ {$ c7 M8 U8 N- ;; Check the appropriate boxes
1 i2 a3 ~* ?, h; v, a; Y; A4 L - (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
5 h: h! y# f0 T0 w9 @9 ^$ b3 { - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1")), h9 }) q- d! w, |8 R% E; }8 ~
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))) |% A3 R( f8 a) ~* I7 g8 ~' P7 H
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
( k% m0 s$ M# L# ]: M: ~
5 G) B; N' [2 e+ P- ;; Define action for tiles- A1 Q h4 I4 \( _
- (set_action_tiles)+ ^3 p2 @/ }' c& [7 B8 y S
- (action_tile "xscale" "(image_update \"xscale\" $value)") u! n' D: a6 @; \5 b8 n6 a
- (action_tile "st_ang" "(ver_ang1 $value)")' e( }1 E3 J8 M' O; \" v0 L
- (action_tile "wid" "(image_update \"wid\" $value)")
, E# F3 K6 ]6 u# R0 o* r& ` - (action_tile "hght" "(image_update \"hght\" $value)")
/ y9 B. X9 b# k* n" s: {5 f - (action_tile "image_show" "(image_disp_opt 1)")
( f& Z0 C% P6 @0 q - (action_tile "image_non_ortho" "(image_disp_opt 2)")& q0 A" h" g+ Z; H
- (action_tile "image_clipped" "(image_disp_opt 4)")# R# ?& [; o9 z ^2 W! j
- (action_tile "image_transparency" "(image_disp_opt 8)")
, ?* ~7 D* ^7 a3 ~7 \1 |$ Q - (action_tile "image_adjust" "(done_dialog 4)")
L$ P: |) Z4 w E) d# d$ x9 v+ u( f
1 N% n, a) j4 \2 Y! N6 A) H1 X- (setq dialog-state (start_dialog))
K. O. e& e, i* p! K# M- X - (if (= dialog-state 0)7 U% y e7 h6 O% @+ z5 ~# A" c9 z
- (progn9 _1 s! g7 @; N2 U: s
- (reset)
0 L1 A9 {) a( z& Y3 M6 m - (image_clean_variables)
3 P. f' v& y7 @- b, A4 y - )
! D- r" L/ B9 E1 W' b& Z Z - )
7 e7 W2 D) F+ o% c, I - (if (= dialog-state 1)
% Y. A( F4 i8 k! J/ ]0 B1 Y% ^) P - (progn8 s8 q: R0 |7 R" r `3 m
- (modify_image)) M- R9 O. `# }2 k- [% N6 b" x8 e
- (image_clean_variables)
& N; R4 y# m5 ~; w2 A U - )
6 ]. Z. ?; |5 t+ M - )
2 L& |; e% K1 d+ O1 ]' e - (if (= dialog-state 3)0 S) {' H" M" [% M( e
- (progn$ A$ U! W6 t1 s; [" a
- (modify_image)0 b" L9 Z' i0 H* x' X
- (image_clean_variables)
5 J0 w9 J+ S8 o7 J- N - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))/ E' g7 f u; N' l- T
- (ver_pt1 0)
a3 P3 G8 X) M* d- M - (ddimage), D# ~5 w( I: R0 l0 r. \
- )4 Z% }+ r" c, \ ~, G& r
- )0 N4 |0 U/ U3 S& \
- (if (= dialog-state 4)# K4 {" X- m; f) k7 W+ F" |: a( A
- (progn' Z4 ?$ p; D& v5 q [, B
- (modify_image) O/ z# \8 J) U3 O1 R
- (image_adjust ename). w/ z q& n' h" A
- (setq elist (entget ename))
]$ F1 b# [1 q4 w) C - (ddimage)+ J" w) O- c* A6 k& S( @& t( P* Q
- ); `+ Q0 N. ]6 G, p3 w7 H" I
- ): ]. M* ]; J: R) n, c
- )$ ^! G0 x, ^9 Q: _
- % x5 ?% @5 q5 ^( }. Z
- ;;
) v' s8 c, P' A) ] - ;; Modify BLOCK (and its Attributes, if any)& ]4 V% t# D0 e1 x2 ]
- ;;
9 ^* W. O$ O3 `0 ^/ w+ d - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
' p& H- k+ x3 y I& ^ - new_wid old_wid old_rot scaling old_scale5 r% t0 P6 O8 c) p
- xdelta ydelta zdelta xbase ybase zbase ipos)3 \& w0 }% ^$ _. H& I
- (modify_properties)
; W3 \$ H1 p' m4 Z& Q5 t
( Q: G1 x+ F, l5 }- ;; First, translate and scale the Attributes, if there are any.0 G& F7 U$ j; S( g7 s6 X' ?
- (setq old_rot (cdr (assoc 50 elist))
M' {7 n' h9 V. w/ d) a - old_scale (list (cdr (assoc 41 elist))
& ]+ d: e( }8 u2 b8 Z/ X- ~8 L - (cdr (assoc 42 elist))
/ X$ { u3 P4 u3 ]' a4 [9 p - (cdr (assoc 43 elist))
. t) D8 r3 @) w: C - )
% V4 j. |2 |6 a- j/ _, g - scaling (or (/= xscale (car old_scale))" h4 z- c- \" E: ?3 h- ^& v
- (/= yscale (cadr old_scale))7 ?" L( W. d& G0 Y
- (/= zscale (caddr old_scale))
+ @) @5 j( W9 z - )
7 u% \# k% k* k. u1 O - attr nil ; No Attributes modified yet
$ l# D( i$ z$ N! I5 |! Q& q - ). h2 i. E( V3 [7 s
- (if scaling% {) h8 D) P( v3 ]
- (progn8 q* Q0 |! t( p- D- M& v
- (setq xdelta (/ xscale (car old_scale))0 b) F u. [3 L+ ]* D" e
- ydelta (/ yscale (cadr old_scale))
3 N; [/ {$ J/ O6 K; D8 b1 Q, ` - zdelta (/ zscale (caddr old_scale)) ^; g; S [! U8 N9 C {
- ipos (cdr (assoc 10 elist))
2 Z2 u/ Z# C% x' v. x) q - xbase (car ipos)
# n; B; K5 a- @0 K# _ - ybase (cadr ipos)+ r8 ^8 y+ e' ^9 m) w- X
- zbase (caddr ipos): @. b( w+ ~! o0 R; o& B
- en2 (entnext ename) ; First Attribute. \0 l3 o( Q/ |- A7 C& r
- ): Q. ~0 ?3 R$ k7 C: N0 u
- : K; W2 A( @3 j2 k/ @
- ; If the Block is rotated, temporarily un-rotate it, along8 S5 B% N2 y( h& e
- ; with all its Attributes, so the scaling/translation of the
6 H Z" K( P P - ; Attributes won't have to take the Block rotation into account.+ n0 g' Z7 S# l) y
- (if (/= old_rot 0.0)7 F( P( k3 K+ x5 v# J+ n1 q
- (progn
+ l: r6 c0 n0 a7 Z - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot))) D, U5 ^; ?7 _4 ]
- (setq old_rot 0.0
7 _* i7 y: e9 M6 S: ~0 M - elist (subst (cons 50 0.0) (assoc 50 elist) elist). y2 s8 A, s' v
- )
/ g* q: x* l6 J2 F - )" j, w- A2 ]9 o- q
- )) {" I0 i$ g- ?9 D: k3 D) M
6 {2 d+ \4 ]) f* P- (while en27 G. ^7 S! X5 ?7 p- S
- (setq el (entget en2))- Q4 o: x' P" F3 ] b+ ]
- (if (= (cdr (assoc 0 el)) "ATTRIB")
+ Y" b; Q9 M. K' ~ - (progn
7 L* @/ d5 R3 _* j) D" k6 B - (setq old_hgt (cdr (assoc 40 el)) ; Height5 o! M0 \% y: w+ I' m9 K- A
- old_wid (cdr (assoc 41 el)) ; Width-factor
R' z- }+ L8 A$ ]; [1 H5 I - oldp1 (cdr (assoc 10 el)) ; Generation start point
" y' C0 A- ?& Z/ _2 Z) v - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt- [* U( S! n/ I# w: y
- ha (cdr (assoc 72 el)) ; Horizontal alignment$ T1 `' R# W' }% V% A4 H- T; i
- va (cdr (assoc 74 el)) ; Vertical alignment* K0 ?4 U5 {/ Y, F1 `
' a6 ^8 f+ @, x" B8 F- ; Translate gen. start point4 N+ J6 M% ?9 q* u
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
" z' t U7 a" p0 X& }7 } - (+ ybase (* ydelta (- (cadr oldp1) ybase))), I* ]8 D/ T5 {3 b$ [2 J7 V
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))
, Q7 S: C# s- ?2 |3 W; E; n, z9 W - )' v! X8 L/ @: u( R% h9 d& v
- el (subst (cons 10 p1) (assoc 10 el) el)
; q/ e( f' T! v2 m - )
3 L( `6 H& k/ C: t: k/ f9 B5 s$ ]/ ] - . j$ X# x. M# I# O4 m
- ; Translate alignment pt similarly, if present and applicable8 ?; A$ X7 A9 @2 \5 B$ m
- (if (and oldp2 (or (/= ha 0)
; `- @9 d! A+ S7 N) s0 Y - (/= va 0)# b3 h) N6 I1 C& g
- )
8 i8 ]4 i. _ u - )1 A8 J* s& l: X: w( t3 p
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
0 H6 v( w g# D2 ^; P! m- _ - (+ ybase (* ydelta (- (cadr oldp2) ybase)))
' |* T0 j( M' W$ c4 v - (+ zbase (* zdelta (- (caddr oldp2) zbase)))
: o c6 h: U/ k - ); u- J' {. F7 B* o$ ~
- el (subst (cons 11 p2) (assoc 11 el) el)
2 m4 w: t8 w7 l# B M& I$ q - )
- }! A/ m2 V. v, D$ g - )
$ _' _4 p" I6 k% r) A
" U5 o! \! x) w C+ ~ U- ; Each Attribute's height and width-factor were computed
* X- F F, I9 T0 Z& W. Z2 @/ D - ; based on the Block's scale factors. Adjust them now,6 [4 u) U4 A( C2 d% u
- ; by first reducing to values for 1x1 scale...2 W0 J: Y) U& d3 G i7 A1 `
- (setq new_hgt (/ old_hgt (cadr old_scale))
3 v% o* f. R' w! x9 [) P. C( @# ]7 O6 T% c - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
7 B8 t. \- H7 | - )
1 l* D0 n" w- h: n! x - ; ...and then rescaling.5 X+ D; W9 S% N/ Z& m; h
- (setq new_hgt (* new_hgt yscale)
% s! ^: p8 z- p - new_wid (* new_wid (/ xscale yscale))
6 L/ A2 |* B& g' ~9 u" s6 R7 J$ N - )
+ I6 R8 P5 g! O# E+ v - (if (/= new_hgt old_hgt), r! j* k! Y# T" s: l" j
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
! ^; T* O9 u, T4 E9 Y2 i G - )
4 d/ ]- Z8 `5 z- Q8 ~% M' ` - (if (/= new_wid old_wid)
, b; k. ~* [$ v) m+ u - (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
x- G( d+ B p5 ^" Y - )
) X8 [) a: b) b3 n - (entmod el)
+ E4 N0 ^. Q% z3 X - (setq attr T ; At least one Attribute modified
, l6 m- l6 `5 s1 c& m0 L - en2 (entnext en2) ; Next Attribute* s; V% j+ Z# c V+ ~( {0 ]
- )
: m/ i2 J) O; V8 N1 p' ~ - )
0 k3 ~& N. J- ^; H' ]5 o - (setq en2 nil) ; No more attributes
9 R; C; Z/ W3 V! \, }1 _ - )# ]) I6 M! N* U8 I4 f) \6 ` {
- )" K- r+ [- s- X( \
- )$ B7 [& E6 ^/ E8 X) r1 L) L
- )" k) R! M% [( u$ V" A0 M+ w# C* V
- 2 `& u: U, H8 H# w, t
- (setq pt1 (list x1 y1 z1))
6 _' E; i' y- e. W0 M4 P" {3 y - (tempmod xscale 41 nil). _; \1 K" l: p- K
- (tempmod yscale 42 nil)
* L0 {+ Q0 g* \# C. C - (tempmod zscale 43 nil)
5 j7 O' E0 ]6 S @; i6 E* J - (tempmod col-sp 44 nil)* ?. [2 M5 z# A9 z. F
- (tempmod row-sp 45 nil)7 w! _% `! } C2 x, T* p$ f
- (tempmod columns 70 nil)' q1 Q! p( k& N0 ~+ ~5 d: A7 _- Q
- (tempmod rows 71 nil)7 X3 B) G! ^) M$ K! [5 z4 I
- (if (= xclipmode nil): x/ G; y. a6 [ X5 s9 _
- (entmod elist)
( n2 Z- Q" M7 H1 P$ I( Z - (setq xclipmode nil)
0 `& F' l: Z& {* H2 y - )# [0 o% p: Z7 k' U& Y- R. q
- (move_pt1 1)
& h/ T+ H0 T* L
* A. V* y* _# X- ;; Now do the rotation with the ROTATE command.) _6 j: g9 r1 y# @: e ?
- (if (/= old_rot rot) ], W: ~/ A- l3 ~: D
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
' o: s( D, a% `0 K, L6 h% p f5 W- ?2 G - (if attr ; Else, if attributes were modified,1 v5 w! S& z' n+ |6 }4 D- `% u
- (entupd ename) ; just regen to force attrib display/ a6 m6 L4 p9 _) g. l9 B
- )
7 J3 x+ x2 V# d( [! W. ? - )* `, m4 I3 h6 _% j. @* M/ f' c w/ ^
- (setq elist (entget ename))
& X5 i- l0 v; g - )
7 ]9 z7 A9 J2 r, x# @5 V6 ?# | - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
- B; g: |3 {2 U - (setq newhatch 0)+ P$ D. I t. Q5 r/ G( H
- (setq blkname (cdr (assoc 2 elist)))1 S6 G- b2 U5 `- b' D1 ?6 ]& P
- (setq blklist (tblsearch "block" blkname))- O K0 E \7 e7 ~
- (setq blktype (cdr (assoc 70 blklist)))$ v0 ^9 `; r9 X1 s1 J
- (setq xcliponoff 0)
5 t! Y& ?" r* l9 c6 j9 h - (if (or (= blktype 0)(= blktype 36))" ~7 J( w* F: Y m
- (progn
# j1 ^ V, Y1 F - (setq xcliponoff (xclipon elist))( ]& v$ Y6 a: w. K
- (setq temp_xclip xcliponoff)
, k. p/ r$ G2 o* L - )
% v1 c7 Y3 t' n8 q6 g/ c - )! s/ Z" U" D. k) g8 |/ F5 D' T
- (if (= (logand blktype 4) 4) Z& v' @" c5 B3 D3 B7 _6 }$ {
- (progn
8 t7 C4 V9 D5 x% I1 V; H$ [ - (setq xrefpath (cdr (assoc 1 blklist)))- `: ]' }9 g, t% x# `) D: c
- (setq help_entry "modify_External_Reference_dialog")
# ~) L5 r S+ a7 l, c2 p! _8 } - (if (not (new_dialog "ddxref" dcl_id)) (exit))/ o5 x9 x+ z+ b$ f% s5 v
- (set_tile "Bl_name" blkname)
* K, n* ] d- u2 e: j! x - (set_tile "path" xrefpath)7 b# h. D( w- i' D# B5 V+ m
- )
8 Z5 G/ P- e; I - (progn1 I% n' e5 t6 `8 b7 Q+ R
- ;; Get program name for use as Xdata app name
6 O. T: c1 V* o" G) S - (if (not (setq program (getvar "program")))
1 v4 Y: N+ H& ?3 Y- Y: r - (setq program "acad")* u3 Z# n. p S/ _
- )$ x( W: o. ]- c4 I& v
- (if (and (setq temp (assoc -3 (entget ename (list program))))' }( V2 [5 w, F
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")/ f7 Q S$ B, W# ~3 c% S; p; f
- (assoc 1005 (cdadr temp))
3 W- I2 f1 T3 Z5 O/ v) S - )
; N T/ B" v5 [7 K, [, y2 q, V - (progn) I# |# b% `: s- |9 o( `
- (setq newhatch 1)
& d3 n" N& m/ S, X3 f - (setq help_entry "modify_Hatch_dialog")
% t* d# L' N0 h% W, o# Q8 D9 y" P& d - ;;; convert the object into a new hatch
' }& c/ T7 h' t _/ q) o0 g - (ai_undo_on) ;; enable undo# U1 Y6 L9 K1 }- I; I' D
- (COMMAND "_.UNDO" "_Mark")
8 D" @- W8 L, z2 z7 `; e) K6 s - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")
, Y! z2 c/ m* |' O0 l9 p' d2 W$ b# i - ;;; suppress nasty message from convert command' x+ A' S: Y8 p9 g0 f1 H8 r& p
- (princ "\r \r")
1 h6 v2 Z7 Q& ?# z, J( q" U - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))1 A( i" S- L d4 g# k4 i$ \3 [, ]3 q
- (setq old-elist elist)! |$ X8 X$ I+ P% w) ?* @, `! A
- ;;; If we have cancelled ddmodify
0 j6 t; n! C! a% b" M8 E" h" r7 `$ f - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok" ?& L6 m' j6 z+ \
- (command "_.UNDO" "_Back")
) D0 Z0 y, K. l4 U; ^8 X - )
) F, V R2 \2 r! @4 G - (ai_undo_off) ;; restore undo state
* u# B5 k! y6 A! X3 V% u3 u% | - )
% C1 t' C! ~# H" m) j+ r$ l - (progn# i% h$ y) x' T, s( u( Q( U6 s
- (if (not (new_dialog "ddblock" dcl_id)) (exit))7 D8 G0 e, v' f: y2 z" a* @
- (if ( = "*" (substr blkname 1 1))3 u& Q( }5 k( ?8 g8 S9 m
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))" |7 O2 P0 r4 z. f* t8 K o' J
- (set_tile "Bl_name" blkname)
& F+ Y( x4 }) r( L9 M% {# _9 P - )
8 X( T7 G6 ]: i/ g+ ^; O; A' _ - (setq help_entry "modify_Block_Insertion_dialog")
; s% q9 N# o5 m - )
, z+ T5 [; a! ~( o4 n5 Z7 Y& N - )5 N- D1 u7 y2 ^2 O9 T
- )
6 e) R; x+ C" N& e. b+ _/ a - ). W, }+ }' ^) O3 J" D- x; r9 x
- (if (= newhatch 0)
( I! D- f2 ]7 z3 Y- X - (progn
/ q5 d5 ~' V0 @ - (set_tile_props)( T# k& [9 `" Z6 d0 a8 i+ h6 m
- (set_tile_handle)
1 m+ ^2 C# q9 M - (set_tile_pt1 1)
7 C8 t7 Q& X$ c% D ~0 T# P0 H - (set_tile_rot)
( Q- t# S; g0 y- k" P - (set_tile_scale)! w4 C6 Z- H4 R- C- `
- (set_tile_rc)
4 n: x- N2 ~- @ M6 G/ ^0 S. A - (if (= (logand blktype 1) 1)
- D! ]2 X& B9 Y9 H0 I' | - (progn {& _4 y, ^/ F
- (mode_tile "xscale" 1)
* g! W" q& o, t @( ?3 c - (mode_tile "yscale" 1)5 K" v' X, b% q
- (mode_tile "zscale" 1)
5 q$ |/ f# {; @; F; n* J6 n - (mode_tile "rot" 1)& F+ n# [4 K) @
- (mode_tile "columns" 1)
6 ~* e2 G. Y- y! c - (mode_tile "rows" 1)9 w# P: T! C X4 C: ^* C$ \; S% v
- (mode_tile "col_sp" 1)5 r; @1 |3 {, Q
- (mode_tile "row_sp" 1), P% g6 x3 Q' r. n8 D9 T! H
- )1 F: x. a$ C) ~% e6 Y
- )
8 Y3 j. o l0 v G+ l - ;; Define action for tiles
- n+ T R8 c5 c4 z - (set_action_tiles)
0 n5 p3 V) s; K - (setq dialog-state (start_dialog))
& l, X4 P6 _5 e- d8 @- Q0 w - (cond
; V! x: l& u- E! y8 k/ X - ( (eq dialog-state 0)1 T, j; E4 o$ [/ H
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))* t! f2 ~# _8 S+ O* b. x) Y1 Z7 e% h
- (move_pt1 1)% y9 {/ `1 ~! R% G9 F: H
- (reset))
, l7 h7 D9 S! f) B% l' S1 [ - ( (eq dialog-state 1)) O/ G( H" ?& K. n$ K9 W7 g0 s
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
4 Y& w6 [7 P0 q. L, H+ g2 s - (xclip)
: W# F" y0 P: O* A1 G) [ - ); \& v' E% F0 B' s. r+ L7 c
- (modify_block))" E- j$ t7 V9 F. W8 i( u d; k
- ( (eq dialog-state 3)2 c5 j& |' C: {7 \/ ?
- (modify_block)- B% ^* j* ^* H* ]. z! @$ [0 c) s" j9 Y
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
/ W6 G% m+ T- N) M - (move_pt1 1)# X! N+ i$ p ~: z9 o- E9 g
- (ddblock))& H( l1 o6 c" U+ m: U
- ( (eq dialog-state 4)9 q1 ~% M/ Q2 O; G4 ^ P4 l( m& J
- (modify_block)
* N( Y2 G" Q6 C. S6 @* M - ;; Get current handle.
, O! v* A" g. m7 b, ?" x - (setq hand (cdr (assoc 5 elist)))
- ?% m0 j0 i! q# H l4 M/ @ - (command "_hatchedit" ename)
& F/ V" S( F3 h5 M) Y1 G" Z - ;; If OK in hatchedit, a *new* entity is created and the old one
1 b" k4 K. l( B7 F& b( z! @! {) D' e - ;; is deleted. So if the old one exists, it must have been a [0 w/ @' F! L+ _
- ;; so rest the entity. k# E8 i6 [- ]2 n6 A/ _' n: w
- (if (entget (handent hand)) (reset))7 h/ c: J- r) c( ]' j8 \1 e/ D
- )& O* |$ i* P0 P: X, d! _' q' X
- )+ o! q+ \6 `! T. R, k2 V2 u* l
- )
( F r% Y3 Q; x - )
# G0 k. T: |" }7 F5 L/ a, W - )
0 m5 P/ V" H- a. F' l a) N - ;;8 ?; Q0 z/ E& r0 t
- ;; Modify SHAPE
) [+ @8 h5 X1 H4 q% ?$ Z - ;;
, i( D) O$ j( D - (defun modify_shape ()
9 I* A% A' ?- B) c7 q! z - (modify_properties)
% d) ]# ^4 p6 d& D7 I; S3 Q - (setq pt1 (list x1 y1 z1))6 ^) ~! O4 S, a+ ~% d4 M
- (tempmod pt1 10 1), Q, U4 X+ I9 a5 P6 X9 f" F: X
- (tempmod hght 40 nil)
4 M8 g0 f1 h$ [; K0 j" t4 S( B - (tempmod wid 41 nil)& E1 M1 ^" g' u5 C2 X
- (tempmod rot 50 nil)+ Y1 I2 A1 }4 r1 r- j6 H( Y! k
- (tempmod obl 51 nil)
1 ~/ ]$ Z( @" G; d - (entmod elist)
$ M! N6 m/ d0 y8 Y% O3 O9 v - )
% q* R9 q* T6 t, d' o+ R+ W8 d1 H
. s% {; u' a: f. z( j0 U- (defun ddshape ()
6 F2 E4 L6 S/ Z- s - (if (not (new_dialog "ddshape" dcl_id)) (exit))$ [- B5 @+ a" K9 a/ O- s
- (set_tile_props)5 I. ]1 \/ a% g8 k9 A) j* ~
- (set_tile_handle)
$ R5 m, T' U/ n5 S - (set_tile_pt1 1)! B X1 l9 t0 w% Z/ [5 T
- (set_tile_rot)
5 i7 h+ P$ @/ ~( E! N! A - (set_tile_hght)0 K- v* m: ?1 }1 ^% w- W. i
- (set_tile_wid)
4 k. s' e# m8 T - (set_tile_obl)
3 n$ ~$ }: ~2 ~7 z - (set_tile "sh_name" (cdr (assoc 2 elist)))
* Y9 y/ y L9 `3 l. j& t5 \& j - ;; Define action for tiles' U/ f1 X! k& I
- (set_action_tiles)$ s$ G6 [: _0 }7 A& b
- (setq dialog-state (start_dialog))$ n# D" q3 d, j9 g/ v4 X! \4 ]
- (if (= dialog-state 0), H: R1 ~# @: ^% C; h- S
- (reset)
; c9 A! a8 z8 X" s - )1 O2 `4 D2 N5 I3 N
- (if (= dialog-state 1)
4 {" O4 f1 w- E! E; ~1 X$ G% U - (modify_shape)
/ v. t8 x, |; a; W) k - )
$ a) l3 d1 G W9 c2 @- z4 @ - (if (= dialog-state 3)% K k: z' u' T! h# T3 E4 y- v
- (progn
. M% ~5 ?0 z9 i; ?$ d7 ^- H - (modify_shape)8 G% q$ Q$ I9 Y( A
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
4 X7 l& ^0 I9 M) r: H - (ver_pt1 1)
! J4 I. k- M$ L - (ddshape)4 d0 \0 L2 q' g% j, _5 b# s9 O
- )( ]7 M. V( L. ?5 r4 K* R
- )% Z: r+ `9 a, `, s+ j* C5 ~
- )
1 |4 E* Q# w$ [. K4 D1 U" C1 _/ k - ;;2 G1 h/ O9 @* W: _+ V! Y
- ;; Modify TEXT or ATTDEF
: [# }- i$ n) F8 n2 _5 i" U - ;;
. X* x8 `( J8 R, C) B3 M1 g3 c - ;; Set bit code for upside-down and backwards setting
: D# j9 q4 ^9 i+ ]* j8 k1 b - ;;
! g, y, D* I+ _5 j+ ~3 W% L; w o - (defun code_71 ()
- L7 x! h' }+ ?& S1 d& x - (cond ((and (= bkwd "0") (= upsd "0")) 0)
8 H3 s5 W3 W4 b4 T3 L- l" c3 q - ((and (= bkwd "1") (= upsd "0")) 2)
, \( _* M2 @' q! n1 e' J0 v2 n - ((and (= bkwd "0") (= upsd "1")) 4)( a% U! S' }/ ?. I( T: j' ]% Z& j$ z
- ((and (= bkwd "1") (= upsd "1")) 6)
- [" i8 J: \0 N, i$ h - ). J" O' K' W! e: g
- )
, w& c2 H3 Q, W - ;;
# d, k J/ |, o; ]" U0 @ - ;; Style action. Reset widget values to style defaults8 o+ f: x4 F( j0 T$ m7 \3 N
- ;;; ^3 ~% M9 m# q6 r% n( n
- (defun style_act (index / style-list)( I. B* k( t3 W- z2 [
- (setq style-idx (atoi index))
( T% i7 T, {; F3 p* o9 A, N - (setq tstyle (nth style-idx slist))
- m$ {+ o" f! g+ z1 O/ H - (setq style-idx (itoa style-idx))
1 C" w8 Q. d& F' P4 v - (set_tile "style" style-idx)4 X2 `" l- {, _" t) i; S: I
- (setq style-list (tblsearch "style" tstyle))
2 t/ I6 c( M& K7 A ^# _ - (setq shght (cdr (assoc 40 style-list)))% Z. }/ c; M- p
- (if (/= shght 0)
$ C* ~# {8 Z4 n7 R6 \2 H5 F& ~ - (progn" ]4 g0 v3 W f. i
- (setq hght shght)
! K: ^' Y6 |- _1 K3 \( o* ^7 z+ k" q - (set_tile "hght" (ai_rtos hght))
; a0 D3 z4 D0 j9 l - )7 ]4 m$ i. q& K* M( B; x
- )6 Q4 p5 _7 {2 ?# O, e9 G: o
- (setq wid (cdr (assoc 41 style-list)))9 \' W% E) n% Z
- (set_tile "wid" (ai_rtos wid))
& b5 r. v& o8 T I) M - (setq obl (cdr (assoc 50 style-list)))/ m+ c! `- t- j' u
- (set_tile "obl" (ai_angtos obl))- d6 ?8 y) o% v- E
- (setq bk-up (cdr (assoc 71 style-list)))+ |2 A# \4 t5 S S1 f. [
- (if (= (logand bk-up 2) 2)
9 d" _1 q D" y: q6 S - (set_tile "bkwd" (itoa (setq bkwd 1)))
2 u, D( p$ R& f; K) v& p - (set_tile "bkwd" (itoa (setq bkwd 0)))
7 y1 B) ~ L! F' V) ? - ). s# `& A! Q [ c' g, e
- (if (= (logand bk-up 4) 4)/ g0 Y! C' I) T
- (set_tile "upsd" (itoa (setq upsd 1)))# e( R3 P/ I! g( O: X- S
- (set_tile "upsd" (itoa (setq upsd 0)))+ e& n7 V% E& S4 Z( }' o
- )
8 i' ~ k8 p# N$ y! E - )
1 ~+ b5 e9 V: y - ;;; n: ^* U' Y( A! u0 U
- ;; Justification action. Set vertical and horizontal alignment variables,$ I; p9 `! S s# O
- ;; grey out rotation and height if alignment = "aligned", grey out rotation& Z% n# a: }- |; n3 Q! c6 T' C
- ;; if alignment = "fit".$ ^* C) _% C A2 |; f% K5 a
- ;;
0 g' l; b, w+ ~ h# V) ^ - (defun jlist_act (index / templist)
& F2 i! s7 }7 @, H* Z/ i0 n. O2 q - (setq just-idx (atoi index))$ H% v- k3 s$ J# H' X6 x
- (cond0 Z$ T) Z7 P9 k
- ((= just-idx 0) (setq va 0 ha 0))' ]/ b+ U; E6 a9 m0 Q9 ]2 L
- ((= just-idx 1) (setq va 0 ha 1))
' i% j2 D1 z j T; [ - ((= just-idx 2) (setq va 0 ha 2))9 _3 K9 c$ B0 b, V5 D4 Q" x
- ((= just-idx 3) (setq va 0 ha 3))! P$ u* E$ [: ^' C+ H8 C
- ((= just-idx 4) (setq va 0 ha 4))
9 y# \ z9 X4 ^% A# }* D - ((= just-idx 5) (setq va 0 ha 5))* b, X$ J6 L+ S/ \% J3 M7 `& R
- ((= just-idx 6) (setq va 3 ha 0))
6 u' r( x2 j9 f! O, b - ((= just-idx 7) (setq va 3 ha 1))3 e- ^$ Y- ~, s# i$ Y9 d/ z6 l
- ((= just-idx 8) (setq va 3 ha 2))& y2 |. n4 h( b) K* w7 r: w, J$ u
- ((= just-idx 9) (setq va 2 ha 0))9 m |+ V& m* y4 g/ x
- ((= just-idx 10) (setq va 2 ha 1))
I) L- j1 U# A - ((= just-idx 11) (setq va 2 ha 2))
3 a$ U' q7 U* z" n8 B" a/ P2 ] - ((= just-idx 12) (setq va 1 ha 0))
. b) Y$ w8 u$ } - ((= just-idx 13) (setq va 1 ha 1))5 S. J0 T) J& }
- ((= just-idx 14) (setq va 1 ha 2))
5 @% f$ `% ]/ z2 X$ O1 J - )! \- D/ {; I! C) f
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
/ B y* n, @8 U# h+ l L1 R - (mode_tile "rot" 1)) t9 z$ h* R; z
- (mode_tile "rot" 0)/ @$ B' g3 s( l1 K# v! ~/ z" T
- )2 n' C5 j. ]& N% v" q
- (if (= ha 3) ; If Aligned text
& ?# Y$ H$ ~0 H* B" Z - (mode_tile "hght" 1)
' {8 l x5 j/ O. V - (mode_tile "hght" 0)
, U* G$ P: H" a' B - )' q0 {! R: Q, y' A
- (if (= ha 5) ; If Fit text
' |9 E# H* t/ N b - (mode_tile "wid" 1)
; d* a- b& [" M1 [% u8 N - (mode_tile "wid" 0)# `/ H* i* ` G5 w" h3 ~0 O9 k
- ), L' p0 a; n z% U" N" S
- ;; Reset rotation and height if changing from aligned.; `* @2 H5 \5 |; }+ l# f: c- R( K
- (if (and (= ha-prev 3) (/= ha 3))$ X7 w* W3 a# M3 y( ~5 g8 a
- (progn
- Q; O' A( V+ v' x) S - (set_tile "rot" (ai_angtos (setq rot 0.0)))
: W5 {! m* s1 \* m0 Y6 Q: A - (set_tile "hght" (ai_rtos (setq hght 1.0)))
; ]; Q2 M$ h5 S& Y+ ~1 X; V - )
" l0 `, B5 b7 R+ Z( a! q3 D - )
8 e3 Y) o. L! z$ K
/ l' a- K& f: h* ]( j7 d1 z- ;; Reset rotation and width if changing from fit.* J( q( R" L( N( z
- (if (and (= ha-prev 5) (/= ha 5))
& |2 B3 C0 M6 O+ y( D - (progn7 ~+ R& R/ H* c4 I m5 z3 ?
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
& V- S: Y" H' }2 Y - (set_tile "wid" (ai_rtos (setq wid 1.0)))5 v2 F) l/ x4 j; K+ E% ^. {
- )
9 s0 \. {: C# [0 s - )4 U* k, p( Y: e' @+ M
- ' U' X- ?/ ~ G
- (setq ha-prev ha) ; update ha-prev for next time+ e. h" C1 z9 e4 {! _1 F
- (setq just-idx (itoa just-idx))
2 T% _1 P# W* u4 \7 _+ n - )
, q# l5 p! x7 V+ B$ q2 Y' ^$ q - ;;
: w9 S2 ^6 H3 E4 G3 v/ W - ;; Set intitial alignment setting based on vertical and horizontal alignment0 Y5 L3 r* }1 D' Z2 c: O, U0 B
- ;; bit codes.; `* @2 I2 p* Q9 L
- ;;
! p& W- q2 ^' ]4 F* t. m% Z - (defun set_just_idx ()2 p0 p2 k; y5 c! Z" x& L
- (cond' Z [: U( E/ W) d
- ((= ha 0) ; Horiz alignment = Left
5 `/ {: ]+ S% e% x6 v4 S7 M4 Z4 E - (cond
; T" R) v( j- r/ t) `# O - ((= va 0) (setq just-idx "0"))
) T8 f6 s' U$ ]. m! y; O - ((= va 1) (setq just-idx "12"))- X( K8 s7 m; f
- ((= va 2) (setq just-idx "9"))
* z/ q' t/ S4 Q$ u, n - ((= va 3) (setq just-idx "6"))
; w! W1 U6 C8 N7 Q/ p5 i - )0 r6 `9 |, w3 v2 F' [0 Y8 H9 v) p, [
- )
* y1 n' J' L# M* l1 K - ((= ha 1) ; Horiz alignment = Center
- m* ]& W& J' k) S6 Y( I$ o' w - (cond
2 C; C+ L8 f) j( M) n+ j, n - ((= va 0) (setq just-idx "1"))3 k8 w N; }. J1 @" q6 f
- ((= va 1) (setq just-idx "13"))! j( N; \* b/ ^# C. {
- ((= va 2) (setq just-idx "10"))
0 }7 V" r# }4 ]1 u1 P - ((= va 3) (setq just-idx "7"))
2 G) R$ Z$ Z# _; M, Z4 @ - )
: ?1 ]$ T; N$ p, u# M; N7 J# c e& } - ). x/ F& K% R$ e, |' p; P& q( X+ y
- ((= ha 2) ; Horiz alignment = Right
8 E7 `6 C. R5 L4 m - (cond) L. v+ Q- Q U: `
- ((= va 0) (setq just-idx "2"))
' R( C. ^. N' K, A6 C2 B* r o - ((= va 1) (setq just-idx "14"))
, i' Y' _- [# _/ C- }( f0 W - ((= va 2) (setq just-idx "11"))
; |( j2 a; N- V, S- c# H: g - ((= va 3) (setq just-idx "8")) z5 d9 \2 l1 q& Z) S6 u
- )
) [* b% p, V/ }* s - ). Z3 [& x( ?1 o! |# Y
- ((= ha 3) (setq just-idx "3")) ; Aligned
6 j( `! o# j+ u' b0 h H - ((= ha 4) (setq just-idx "4")) ; Middle
# B3 K2 j' l7 I - ((= ha 5) (setq just-idx "5")) ; Fit/ S2 [3 |. ~0 _. d; P/ a
- (T (setq just-idx "0"))6 M5 h( S0 o% S
- )8 Q! i/ a; [9 Y5 W
- just-idx
+ H: w7 Y. V. W% i$ O - )- r" z0 o! i& i4 O, t2 t M
9 |: p( ?& x4 `* @' {7 ~9 @- (defun modify_text ()- t9 i# ^% h& R( K, }
- ;; insertion point1 I' n& i5 _7 F& ?# q) [8 O
- (setq showpt (list x1 y1 z1))- K A" h. _+ ^! o C
- (setq bit-10 (trans showpt 1 ename))8 K3 j1 t+ d2 d' W# B/ {
- ;; alignment point) K% z) S# q: Z5 z
- ;; for 'Aligned' or 'Fit', alignment point must be different1 g, t6 k' ^8 F) M# g, e" @+ T4 L
- ;; for all others, use insertion point
1 m' @. s" O5 g7 Z2 p - ;; (ACAD will recompute insertion point)0 \( O- C- j" H ^
- (if (or (= ha 3) (= ha 5))
9 k; L1 H/ T0 l2 a3 Z6 W& L - (progn; r( X+ ?$ F0 f+ r; o& m# [
- ;; if no alignment point, fabricate one
l, F4 |$ z/ q' x# ~5 Z4 n - (if (not alipt)/ \5 N2 n5 z0 t" \; S5 k) W
- ;; add text width to insertion point# R6 n0 B9 Q) H3 ] n7 ^6 c% O8 W
- (setq alipt
* e6 @, G% i9 \- l$ o - (list (+ (car showpt) (car (cadr (textbox elist))))
, h" L5 I; N$ W" Z) a. t - (cadr showpt). z# }& o$ ~# \ w9 ]' n! ]3 L
- (caddr showpt)7 `1 S' M8 B: }+ t1 ^, L- b7 l
- )) d4 b8 F% \3 d% v/ ~) U# G0 x G2 t
- )6 Z! B9 G" L# J" t$ E: B
- )
' S% [1 ^3 B" A* U# l: w - (setq bit-11 (trans alipt 1 ename)): U2 e1 z1 [; N' J
- )
2 o2 k5 N! [4 z2 ^) f1 ]+ \6 b - (setq bit-11 bit-10)2 P* Q" N2 A" y% S
- )
# h1 {! E; a$ j$ a+ A! ?# E - (modify_properties)
* }) y2 u- w' U6 u; T( K, X% p - (tempmod tstyle 7 nil)
_$ O; e+ b: f5 _ - (tempmod bit-10 10 nil)
; H( k- U. ]% ^) c6 {4 V1 R - (tempmod bit-11 11 nil)
1 j& a6 h+ Y: Y' J1 {- t, C' w - (tempmod text 1 nil)
$ Y$ t8 i9 H: b0 |& K; Z& [. @, E - (tempmod hght 40 nil)5 @3 E* K- d5 m3 F
- (tempmod wid 41 nil). x( g% l5 u# r/ W6 ~
- (tempmod rot 50 nil)% y4 i g1 X- h
- (tempmod obl 51 nil)7 C t% g( A. u% k+ @: T8 K0 R( I x
- (setq bk-up (+ (* bkwd 2) (* upsd 4)))' r& ?3 T' U$ _5 I2 [# o, N
- (tempmod bk-up 71 nil)
2 _, ?) ?. L, P - (tempmod ha 72 nil)! [7 q1 K" a: R3 O( T; ]4 q
- ;; Attdefs use 74, text 734 W z7 Z* A9 ~4 q
- (if (= etype "ATTDEF"). Y5 d" R$ [* y& n" D$ n
- (progn
8 b1 a! Z6 i0 D, A1 x - (tempmod attag 2 nil)+ c+ Y& s) h% q8 y6 Z u) k8 y2 O
- (tempmod atprompt 3 nil)
$ R2 n+ |, u: Y5 n+ A - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))3 G& e- g/ K, }( a" X
- (tempmod icvp 70 nil)
/ G$ }7 v8 ]% m Y5 X7 U. Q% i6 A - (tempmod va 74 nil)
3 r1 D, k2 w& Q* t$ U! P - )* ]! Q% Y% ]2 c7 l. n
- (tempmod va 73 nil)
! r; {' @0 |# V( A7 |1 I - )
# w& B2 k/ L3 V/ e - (entmod elist). t6 o( N# l. v$ |
- )1 e: A- H% o' P5 t& A' |8 `$ K5 I* w# ~
- . `) _7 G$ D0 T
- (defun ddtext (/ 2ndpt slist i)
* T$ A. F0 e& C* z* x - (if (= etype "TEXT")
' U H" h# n# x# j - (if (not (new_dialog "ddtext" dcl_id)) (exit))9 p6 f6 M; F$ |4 D# l/ [, x
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))
2 V3 H9 q# h: Z, e$ P9 {7 d+ R - )
2 p5 ]! P3 z* x0 X; B0 F: R# M - (set_tile_props)
* l0 k6 ~0 x) x9 d) R" n - (set_tile_handle)0 o( j! b+ i0 s6 M( [/ p# U; D
- (set_tile_text) }, f& O! ?1 c r" A
- (set_tile_tag)
0 i1 ?+ X9 V! H# n/ C$ `0 f" c( J - (set_tile_prompt)6 w1 R( X) C! ^: b5 g# r
- (set_tile_hght)4 M- ?4 z; R4 `; c$ X
- (set_tile_wid)2 Y* B: y! X/ N' Q- a
- (set_tile_rot)
. _4 D7 X+ ~# N8 N2 L I - (set_tile_obl)
1 H: u# P N6 S% j) p - (set_tile_bk-up)
+ n/ Q: l' G& n3 Y1 ~ - (set_tile_icvp)
+ I8 `' K) m& X, Q - (set_tile_style)
, _- m* K6 U7 B. l) s- U - (set_tile_just)0 X8 i3 M5 t D% V
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))& U! }4 O/ b) T& z# N+ w) l
- (if (not (assoc 11 elist))
1 _( i6 A7 T. [, ~. ? X - (progn (setq pt2 pt1)
0 c7 e; |& @/ P* ] b! w, S - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))& m1 T' d$ B4 [
- )
9 d d9 V) r* G! N M( r - ;;(trans '(0.0 0.0 0.0) ename 1))
! x6 B( O4 k Y. v - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
3 m5 Z! M( t" o2 |2 h4 Q* S) K% T - )
% Q+ o- |1 w5 \' z$ Y/ o4 j7 T - (if (or (and (= ha 0) (= va 0))9 b- i. Q9 T- ^
- (= ha 3)) {. _ I' M: @- ~+ F
- (= ha 5)
: r1 \. ?0 q( Q" Y5 @( l - )
: I9 s9 t, Y }# U- a' O - (setq showpt pt1)
- Y4 a9 B4 u: p$ A& k - (setq showpt pt2)2 @) p, ~- b) F& N
- )' G: @8 h4 ]. y# }% C+ S
- (if (or (= ha 3) (= ha 5))( B$ S# f! o9 x$ b: y) ]0 U
- (setq alipt pt2)6 E1 C; o/ K- Y! M$ g2 [
- (setq alipt nil)
2 K& b' j* a9 Q% ? - )
y" X+ q3 \7 m% ?. o
# N% j4 d6 T) j8 |, b. \, @- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
+ b4 S" F- D8 O7 [/ P) r - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
6 F: a9 b1 F6 c - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
' G0 s* K* d# X1 `3 v2 u* v
. I+ j" c; ?$ O' O8 h- ;; Define action for tiles6 R0 M" ]9 m) M2 W" o, Q
- (set_action_tiles)
( k1 k( X. x% `( _4 J9 Y6 S - ;; Set focus initially to the text edit box.
8 h7 U: Z% Y1 `5 p' E8 Q; t - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1))), }8 D- N2 \0 `1 [! h; N" }
- (setq dialog-state (start_dialog))! @8 ?9 z. f3 f3 x' n, U+ _
- (if (= dialog-state 0)
5 i2 B$ d: _! F$ u1 g - (reset)
( E' a& Z; Y: c3 C v2 I! p# ^ - )% y* w) g8 U" l; R5 {6 L4 _
- (if (= dialog-state 1)& g) z4 m E2 c8 D) D L4 j
- (modify_text); l' j9 ?1 \! Y
- )3 V- Y' E& E. C5 h; q
- (if (= dialog-state 3)
6 V" G% t& i) X - (progn4 o2 Y, N8 n, M! V' b- B, U
- (modify_text)
. \$ f+ S6 K6 a/ w% t - (if (or (= ha 3) (= ha 5))
9 H s: l5 I& A5 {1 q& |0 O - (progn2 {& D8 S, U! `! o ^. V
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
6 P7 m& A# Q/ `! W! ] - (if (not showpt)% ~7 k$ g5 B/ K9 B- z, s
- (setq showpt (list x1 y1 z1))+ ?# R& ^! G5 z6 {- f; A! ]6 U
- )
2 F# e- V/ l1 P {- y9 L0 O1 P- E% R - (setq 2ndpt (getpoint showpt "\nSecond point: "))* A3 O: B. r/ V. u h* x
- (if 2ndpt
: V& W) J+ ^8 d" A# X - (progn/ \* }8 x/ h% q1 T: k8 A+ R) c
- (setq alipt 2ndpt)/ o' ?# @# @8 ]; Z5 P! s! C/ _
- (tempmod showpt 10 1)
) r, R c2 O* J - (tempmod alipt 11 1)
$ e H: Q+ C4 T* q - (entmod elist)% U* \+ u5 b6 b$ X2 ]
- )
8 C4 w0 w* v4 a+ b - )5 z/ ~( R' e1 n5 F
- (setq elist (entget ename))
+ L3 `4 U' |& k7 n5 r( Z& C: T - )
4 S- ]+ S% [# T% B5 \. B - (progn
: y% {) `8 G* z; ^8 z# | - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
! ?- P' b; ~) N2 D2 m: H: L% M - (if showpt5 z; @5 v& K/ b3 c4 d- c
- (progn ]1 {7 |8 L2 u
- (if (and (= ha 0) (= va 0)). e0 U& X+ U' n
- (tempmod showpt 10 1)
1 i& n: s1 `) N) }8 [+ f4 t: O0 ` - (tempmod showpt 11 1)
1 B, l9 n, ^7 u& P; [% l - )3 f) v- I! @, `6 E1 {
- (entmod elist)6 d/ r0 g# A |
- )
# w# Z+ f2 z* `) R2 l+ N9 f7 p - (setq showpt (list x1 y1 z1))+ {3 w$ a8 _) T
- )
2 F E3 v9 h- H! z/ `/ C6 O - ): H$ [! L6 U0 `8 o9 O: _ ]$ G% b, {: L
- )
, J9 F+ d- h) C- h# k$ T - (ddtext)2 K7 b, V4 k' \4 G1 g$ ]" q
- )
9 K0 i2 ]4 O7 B' S& f - )+ X) U2 ~" p0 R0 K2 X0 J
- )1 d. u0 [) r% ], [. |
- - G$ G7 v! f' D% C; X5 _! _" _
- ;;8 |; v6 w1 k( g/ ~: w6 B
- ;; Modify MTEXT3 s1 [, F' J, x' k9 c' H
- ;;9 h, N+ D0 q8 x
- (defun modify_mtext (), p( Y$ a( C1 z* m( b
- (modify_properties)
1 f% L$ O- I7 Y$ f - (setq pt1 (list x1 y1 z1))
: ~4 G. X# W- [( Y% p. w5 l- B0 j - (tempmod pt1 10 0)
, o# E2 i" k) Y! Z$ f - (tempmod text 1 nil)
' T" x2 P5 \# L( D0 T4 R+ ?8 B4 q2 e - (tempmod tstyle 7 nil)
* h/ P8 s2 \/ r5 h6 C3 F/ Y4 v - (tempmod just-idx 71 nil)" C9 d$ \ c( U% X3 X" ^% j
- (cond
( ?" [3 R2 W8 A4 A - ((= dir-idx 0) (setq dir-idx 1))8 O, T* z/ G2 [6 K0 R
- ((= dir-idx 1) (setq dir-idx 3))
, n9 J7 u K1 O. q- y - ((= dir-idx 2) (setq dir-idx 5))6 O6 b0 \- C3 S+ W
- (T (setq dir-idx 1))+ @" A+ {9 S3 _$ G& N
- )/ U4 W0 y3 P. L( v$ E& h
- (tempmod dir-idx 72 nil)
7 `7 c8 `' w, k% ] O9 U6 E4 T - (tempmod hght 40 nil)
i, ]( `' Q5 V. P1 m6 h - (tempmod wid 41 nil)
9 y2 \6 J& _4 ?# R, F7 C - (tempmod rot 50 nil)& x1 d7 \; }$ y- @7 z$ r
- (entmod elist)
4 O) k2 P8 i p0 o3 ?- B1 }. l8 z - )
6 Y! h' B e# u( }6 v2 e. t: p" ?
6 X0 c5 t1 f8 b+ e9 N- H6 h- ;; Set MText text style: n8 c1 m* P1 k, w$ G4 l8 w
- (defun MText_style (index / style-list)' Z6 M. I& x" F8 ~1 O2 a% n) T7 b
- (setq style-idx (atoi index))
) e2 l) i' G' X; ? - (setq tstyle (nth style-idx slist)). _7 I+ N8 v+ g. ~5 _- M2 k4 K
- (setq style-idx (itoa style-idx))
1 Y$ X B5 v" f& L6 O" m* `1 } - (set_tile "style" style-idx)* ?! @- W! g# T) t& b7 d
- (setq style-list (tblsearch "style" tstyle))
0 y9 D- L1 {9 @" W4 G5 i. r - (setq shght (cdr (assoc 40 style-list)))
* L6 k' b0 \+ l- H6 K2 w2 g - (if (/= shght 0)- ?' w# e2 Z! e5 ]
- (progn" t. H' i/ R7 }$ m% U" V7 S
- (setq hght shght)* i4 f( e/ |, g) E( h
- (set_tile "hght" (ai_rtos hght))* Q8 S) M4 u1 g: O
- )
/ c5 [8 c5 I+ }( x# D# k- w+ P - )
/ K( C, M8 T5 O! i! h0 Y6 r# } - )
7 F6 T* V- @0 r, a7 \% @# p - ! W9 u) {# E( f0 f
- ;; Run DDEDIT on given entity, working around possible re-entrancy; x& F4 X' t+ l e8 b6 u
- ;; problems with MTEXTED
3 o" i1 ]. S: Z7 \2 B8 E% G - (defun safe_ddedit (ename / orgMTextEd work)
6 _4 }% Q" e F* Q7 Z! ?9 e3 E - (setq orgMTextEd (getvar "MTEXTED"))
; U! V! u- |8 g* t) S3 \ - (setq work orgMTextEd)! y* h- x, r' h
- (if (= ":" (substr work 1 1))
4 A, d- ^3 Y7 j - (progn2 B! Z v9 T0 m5 K/ G. M/ a* _
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
2 t4 w+ j+ d: M/ C2 D) `& I - (setq work (substr work 2))
8 x6 x G/ H0 y1 J \ Q - )/ s+ ?, S8 y4 X9 Q
- (if (= "#" (substr work 1 1))
4 {0 w$ q% J7 [: y, T* o - (setq work (substr work 2))8 s7 D |$ o7 V D' f$ [& Q4 _
- )6 E9 T! x, O! I- m2 S' g+ g
- (setvar "MTEXTED" work)
, |0 f+ @1 r/ i) H v2 P. [+ X9 ? - )
2 o0 P2 f i5 ^% w# h$ n4 @ - )5 i& n; ]. g6 P" a
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...0 [' A! N" {1 K7 E& I" D
- (command "_DDEDIT" ename "")9 K9 i8 s% T. G+ A& Q
- (setvar "MTEXTED" orgMTextEd)
" M; w0 R0 j+ [! O& c - )
. x5 c, L Z$ r& Y0 x9 F. C3 K - ' E+ { T2 [% T8 J# w, s
- ;; Verify MText object width
5 E9 _ [9 Z- M3 G, u! x4 B1 n. J - (defun ver_MtextWidth (value)& P+ [) a, D$ P/ ]+ ~% l
- (setq value (distof value)), x0 b5 p1 o3 @0 ], d. [
- (set_tile "MTextWidth" (ai_rtos value))% }; r- J/ O: ~
- (set_tile "error" "")9 u5 w! y3 [4 w
- (if (< value 0.0)
( E" A6 W1 a/ ]) x9 |% Z - (set_tile "error" "Value must be zero or positive.")
8 n& F' [4 ~! a* U) i @ - (setq wid value)
6 T- t% W- M! r5 O6 a# k9 s/ u - )
+ C' m0 A4 w5 U; j( v - )8 Q* `6 M- a1 h) U. T; J8 h+ U
- D# q6 H6 i7 F8 O# l
- (defun ddmtext ( / gc3)/ N6 E4 I: }7 k% L1 v/ t9 q S6 U
- ;; Get dialog
+ W, t$ |* s( [) w* R - (if (not (new_dialog "ddmtext" dcl_id)) (exit))
! ~/ r( g! Q: _; _ - . N/ c" h! L. V L
- ;; Load list boxes- b: H4 n& H% m3 |3 J5 [
- (start_list "MTextJustify")
9 y" Z j, o6 }. Z" A - (mapcar 'add_list '(9 O E( k- V, p
- "Top Left"( H" I( T" r. y3 q+ l
- "Top Center"
! l" P' ~7 W) y% E0 k3 B$ _ - "Top Right"! G) t$ ]# r5 k" a! ?
- "Middle Left"8 ^9 y$ v' K! G" }/ j
- "Middle Center"' v3 b& p- k- W W$ k% B
- "Middle Right"% h& [0 l& }7 r( M
- "Bottom Left"9 T0 o; E! D9 P N4 U
- "Bottom Center": R. Q% L9 T+ j. E0 s; s
- "Bottom Right"' R$ A0 p. }4 @' G% K0 w) T
- )
% c# L4 O% H, [* U( o6 d" l& ~/ U2 G - )% P& c" `' G4 f: W6 k3 f/ o
- (end_list)2 E1 q, |: G: F5 x# E7 n9 n
- ; L. [" z$ E) t1 z
- (start_list "MTextDirection")
) Q( O( ~7 \" K5 l& T - (mapcar 'add_list '(
j3 w1 U1 }/ U4 o2 \ - "Horizontal"
( }8 i* R$ i% A: k$ y! N - "Vertical"
9 M+ q6 m; X5 U - "By Style": Y3 w- e; m$ q4 s- a1 M# n
- )
0 b i: S6 i8 m8 f9 E9 N" n - )
6 o% k. Q/ b( P& a: |. i: | - (end_list)
# h1 l0 c: I% q! E3 ?
* R) y0 B9 [8 R6 [/ ?- ;; Set initial tile values- P7 I/ @8 x* `8 n) j
- (set_tile_props)/ ?' j; P0 T* y% \
- (set_tile_handle)
, o2 \0 D- e) S0 T! E8 B - (set_tile_pt1 0): o9 v6 W/ f# C: a. C9 s8 P$ S" F. u
- (set_tile_style)4 ~ l8 d- I$ a. M! o, x
- (setq just-idx (cdr (assoc 71 elist))) H2 j' N4 K( Q5 M" t8 ?5 j
- (set_tile "MTextJustify" (itoa (1- just-idx)))
& c8 a; J+ K: l' H - (setq dir-idx (cdr (assoc 72 elist))). \8 h7 L" K4 D
- (cond
( m/ T5 F R( q: M* @ V a* \* q - ((= dir-idx 1) (setq dir-idx 0))( e r8 \2 ]( ~$ o) B
- ((= dir-idx 2) (setq dir-idx 0))
( m* g& K4 S+ H - ((= dir-idx 3) (setq dir-idx 1))
3 C, Z) i0 M6 X - ((= dir-idx 4) (setq dir-idx 1))% A: w' x: k6 Q* O, r
- ((= dir-idx 5) (setq dir-idx 2))
* r1 v" [: H. z5 P* \ - (T (setq dir-idx 0))
6 p5 c* O" ^5 k8 s- ? - )
! e* i4 u& _5 A7 C3 { - (set_tile "MTextDirection" (itoa dir-idx))
G3 ]9 L1 H8 K4 y - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
% j: X6 D1 ]$ e - (set_tile_hght)
1 H! H; Y1 m3 \, Y - (set_tile_rot) F4 p) [. ?" ]7 F/ ?+ e
- # _/ f. o, K0 D. F6 G; a. ?1 i
- ;; Set edit box, disable if too long$ x- J( T! g$ a% P& S! l$ z" V
- (setq gc3 (cdr (assoc 3 elist))
' W8 ~9 N9 J! b3 x+ ?: {" A - text (cdr (assoc 1 elist)))$ ]. u0 O$ O% I N+ v) e! I
- (if gc35 T; P. W7 f, C! R- {
- (progn ;; Text is over 250 chars, disable edit tile* b% n5 w( f+ W+ r" Z9 x
- (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))4 H$ @# V( X9 C/ p( @
- (mode_tile "t_string" 1)3 x: b) L. i7 h% t3 {
- )4 L. J" |$ n# A9 f
- (if (> (strlen text) 80)% j+ r1 K8 D: S) P6 Q% M% x& }/ L
- (progn ;; Still too big
; D% K$ ~5 K8 ]% E$ m; W2 c - (set_tile "t_string" (strcat (substr text 1 25) " ..."))- w5 Z7 r& U! j7 Y r
- (mode_tile "t_string" 1)# ^& Y! o* h" ]/ D3 b" |# d
- )
( n- z* a# p8 N m - (set_tile "t_string" text)
& h. w+ [! k- Y) k, z" \ - )2 `# n9 a, Z; b
- ). w/ S% V a) _- \8 b, V! q
/ h* w2 \+ o9 ?0 c7 \- ;; Define action for tiles
$ L6 ~1 O- c6 P5 G8 \& |" M - (set_action_tiles)
+ b; H; P/ Y% t& u% e. v0 A - (action_tile "style" "(MText_style $value)")
; B# N2 V/ g, G* U' }1 f3 @/ S# `3 Y - (action_tile "MTextWidth" "(ver_MtextWidth $value)"). W+ U6 P, w7 p! Q; o
- (action_tile "MTextEdit" "(done_dialog 4)")
; n, C6 \+ G/ d [7 z - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")7 L; V# U6 m+ z' ^3 B8 Q4 b" Z
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
9 m5 s& W3 a7 O2 F1 j - + j) D, ^3 E4 p% Q: v T1 q9 r* U
- ;; Set initial focus to text edit box., C, _+ I6 c7 x U! o# ~: Y$ s
- (mode_tile "t_string" 2), Z3 J/ V. ^/ f) V# \+ X& I
/ z% i# C1 j6 L7 K: ]- ;; Run the dialog
; ^" H3 ]. m6 Q; V5 Q( Z# _ - (setq dialog-state (start_dialog))
! B# U4 @' ?/ ^% o$ r* j - (cond
3 W0 W( A- |( q" g7 |& g' A - ;; Cancelled - restore saved data
2 T8 W R' {* G5 v - ((= dialog-state 0) (reset))
( E7 t8 R K* ~# h! T/ D - ;; OK - save new data8 F* {! @' o" n/ C5 v7 m
- ((= dialog-state 1) (modify_mtext))
: L( \& `: a. W! s - ;; Pick new insertion point
8 ~( n4 _8 r1 L" x) W( ]" s - ((= dialog-state 3)7 S7 n2 A. ?9 q) q |% T
- (modify_mtext)
# Q# J$ n" }. O0 T - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
?; P; _1 |% v - (ver_pt1 0)+ `$ l$ D- z* |: r B" M) W
- (ddmtext)
% Y6 A5 n" G2 n$ U% t$ Q - )# L$ [: A& h) w- n0 x% g+ \4 ]
- ;; Run full editor
7 v6 \) |6 h2 O$ Q0 o& a; b - ((= dialog-state 4)- w) }6 c, ~& [6 ]8 X& T, w
- (modify_mtext). ~' _1 a* Y1 e8 B% F
- (safe_ddedit ename): g3 n5 C5 @7 ?8 }+ L* U
- (setq elist (entget ename))0 ]. [; ~ d! ~/ B# ~! s9 ?" y" D9 k
- (ddmtext)
- w t0 h9 U! F8 V - )" J; d/ |9 k& p Q6 [9 }# r
- (T nil)
: [1 i0 V. E3 D# J5 p. {/ i - )
# l& K" _, K" E - )5 Z$ E+ f; I* S9 N3 H) J
- - Y' T. v* ^5 `5 f; r
- ;;
* m. |9 k( [1 J5 q. w9 | - ;; Modify VIEWPORT8 U0 I& A- M7 n7 w
- ;;
7 M0 I7 z2 B2 L1 h/ v; x - & q5 r: e& R. p
- (defun ddvport (). n$ x1 a/ ]: q' @
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
. w8 q) }% O* u - (set_tile_props); I, }6 F/ s8 E* U
- (set_tile_handle)
' u( Y, c: ]5 J3 k5 x% x( \! ?; W - (setq vpt (cdr (assoc 10 elist)))1 f L; w( u/ [0 u
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
5 z b8 G5 ?8 C - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
* o! G2 } k1 b$ B' R- } - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
. ~7 `6 y5 m3 j9 f; u( D - (setq wid (cdr (assoc 40 elist)))
7 W8 `# v/ u4 A# c/ e) c& c - (set_tile "wid" (rtos wid))
. u! T* A5 O( {( V* H - (setq hght (cdr (assoc 41 elist)))
" r+ p4 i L" ~! v$ x - (set_tile "hght" (rtos hght))
. b0 a0 Z8 E% I$ D7 z4 S9 L9 I - (setq vpid (cdr (assoc 69 elist)))
+ Y" Q# j' A5 ^ - (set_tile "vpid" (itoa vpid)); W) @ b, n- n+ Q( B( w
- (setq on-off (cdr (assoc 68 elist)))
2 J+ J# v s' }* p* _. F4 M - (cond
2 I$ g3 N% `) `$ I* _ - ((= on-off 0) (set_tile "on-off" "OFF"))8 m; R* }6 ]1 X! u
- ((> on-off 0) (set_tile "on-off" "ON and Active"))
+ B" Z& @8 J( j( H9 e5 y- @5 @! \. n - (T (set_tile "on-off" "ON and Inactive"))9 a0 a3 M! O8 b4 d0 }
- )
' Y& j' f/ _) W3 {" { - 9 \8 b9 v' f# V4 R% H5 M
- ;; Define action for tiles6 i+ A: B5 i. x+ c/ i% w
- (set_action_tiles)6 `9 Q2 x7 P# |. |/ { v, Q$ t
- * r$ F# e2 v: Z
- (setq dialog-state (start_dialog))8 ~4 E1 W. h/ a ?. `( t" U
- (if (= dialog-state 0)
. P/ y. k- v4 O/ j2 B( v3 d - (reset)
& p: ^8 L) w" J3 F8 X) [ - ) q7 N1 d1 w; h# q! i
- (if (= dialog-state 1)7 N7 u" p1 K8 x% [
- (progn# e) ] z1 Q) e2 `1 |, E+ L
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))7 ?3 a; Q1 T) W
- (if (= ecolor 256) (setq ecolor "BYLAYER"))% i$ i9 C# l* z; i7 u2 _
- (command "_.chprop" ename ""- f& E( \$ `- g$ K9 U- j
- "_la" elayer5 }( \6 |" Z: x" M$ R( o/ \: N
- "_c" ecolor ""
4 K/ y( L2 S' m6 w' C - )
3 B3 a) H, X& e( p9 `6 B6 }; B - )
; ?- Z& q) n4 x1 F - )
- P: C( b3 h3 o. { - )( k& f# F. D( d# t8 |" a! D# C
- ;;
6 l# R8 ~; p: K6 F5 m - ;; Modify POLYLINE3 m- \+ t1 B, \" C9 M
- ;;
6 f# y4 r1 o! i) g4 J - (defun modify_polyline ()
4 {4 p4 g ~2 Z4 T/ }, z4 r - (modify_properties)
$ J: k/ @- J* N1 }" \ - (if (= ltgen "1")
( j% Q% S6 j+ c( T; { - (if (/= (logand bit70 128) 128)
- o8 P8 c3 Q) p2 C7 e4 l; |# Z - (setq bit70 (+ bit70 128))6 ^3 n$ d+ N3 R" G% O7 T$ Y5 X
- )! X* K7 M3 Z* {- P. e
- )) m9 x; n4 |: R# E i% D* E" i
- (if (= ltgen "0")3 r5 @7 Z# H( }- I3 l1 Q9 r7 e
- (if (= (logand bit70 128) 128)6 v: @9 J/ \1 u8 j2 ^
- (setq bit70 (- bit70 128))& @& N3 L+ G+ t0 A/ b; m
- ). j x. D/ H' d; N* W, a- n6 r
- )
3 U, R; C. y! V4 y/ { - (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
5 G& B: Q; F, w1 M& V - (entmod elist)
/ t$ @2 {7 u: Y- I4 i2 w# Y: ? - ;; Added to take care of updating Vertex information for color0 m' f6 n1 T& ^
- ;; and linetype.$ C: v+ _2 F+ l' j7 i9 B
- (setq save-ename ename save-elist elist)$ B% V3 r9 h. b+ l
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")7 @$ E4 U9 F/ z5 r O7 k
- (progn& z2 W. ^2 p' @ U& Q) ^
- (emod ecolor 62)5 W: w) S/ Z2 T+ d
- (emod eltype 6)& z; r/ \" q* ~" K6 i A$ L
- (emod eltscale 48)
$ [. K- A& g& A7 ^ - (entmod elist)
: |% T: W0 x1 F3 [ - )
6 [4 l5 f$ `( I2 [ - (progn0 X$ v+ q2 K- j2 V5 y% S8 s
- (setq ename (entnext save-ename))) m" _: t! C6 Y x2 C) N+ }/ n
- (setq elist (entget ename))
! k( ~. ?" n+ M
( G( d- t% z$ h- |' b8 i- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))) _9 Q) u& X1 L5 N# C ~
- (emod ecolor 62)" Z2 f1 d4 |$ i
- (emod eltype 6)
& `, V l$ I* H4 ^ - (emod eltscale 48)
" I8 r2 y. C" t& K( J3 W - (entmod elist)+ [8 c' B x" z) y7 U
- (setq ename (entnext ename))' ~! c* V3 S. Q2 y
- (setq elist (entget ename))
6 B1 X/ p* c# X+ O# J - )
T& F6 r" R% K2 M4 m - )
1 V# D3 b7 O1 z7 Z( I" e# X! n( { - )) d" @* u" t4 d% g; k
- ;; Update the SEQEND
: e* X' I' X6 E5 _ Y - (if (= (cdr (assoc 0 elist)) "SEQEND")
5 e! t# b0 T& d& [' u6 c5 w - (progn) F2 K( s; ^( M* Q
- (emod ecolor 62)
, A2 F) z% Z+ @ - (emod eltype 6)
; S- e9 N$ A+ G/ ~+ ? - (emod eltscale 48): Y# V9 Z# x) X" ]# @& o
- (entmod elist)
* Y) O E9 K. ^/ U( L9 z - )
% R( ?/ R+ L e& h6 c& X( ~ - )7 ~0 v$ q4 E9 @) r- @" a
- ;; Go back to header.
: K, Y; n8 }( N0 y7 Q# x3 E - (setq ename save-ename elist save-elist)
8 |/ q9 ^2 ^5 T. z
2 d( S' G$ j2 S! ]: g- A- (entupd ename) Z1 E- _7 ~) b& N4 a1 v
- )8 s6 m' D) f1 Z! b
- ! v( `) l) U1 E( M0 t V% j6 u
- ;; Increment vertex. Set tile values to next vertex8 X& S' Q% I* z7 G
- ;;
9 ?, E6 @) c& I( v; N6 H2 W3 t% L9 m - (defun next_vertex ()
! t- b+ S; ]$ ~$ D - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
9 ?0 ]! z( Z F - (progn
7 m) P% Y6 y" F, B# R - ;; If the counter reaches the number of vertices,
, E/ ~; o4 F/ {: T* } - ;; roll it over to zero again.1 x& s r. O2 p" p M' _% [' p
- (if (= ctr (cdr (assoc 90 vlist)))+ V' ~8 l; S4 [- R8 W
- (setq ctr 0)
9 g5 O" y4 B: L2 ?+ ~" C - )5 r) _0 d0 M! Z9 K. @; I- p- E1 c
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))7 F2 T' ~/ ?4 q
- (set_tile_vpt pointype)
8 G7 f ^6 t9 R& j - )
5 |6 k3 w1 ?8 V0 h - (progn
- p8 t4 u# r$ S' w1 W! G - (setq vname (entnext vname))
; U. e- ?, A0 z7 d; M - (setq vlist (entget vname))8 S9 s8 h: @9 E$ X
- (if (= (cdr (assoc 0 vlist)) "VERTEX")5 C( T- g7 O* f
- (progn* k. s; y( m5 @/ W
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))& z" x$ p0 B% I4 T8 N! z
- (set_tile_vpt pointype)0 V" Z6 j8 b8 n) g- [
- )
# M6 K# u( A6 y# B4 q# f. V4 H; l - (progn) c" \9 O% Y: ~; k
- (setq vname (entnext ename))
9 i4 s' ~ U2 w/ B% g - (setq vlist (entget vname))
( b& @: S! }" g - (set_tile_vpt pointype)1 z0 u% g3 K" `& J2 _+ _9 g
- (set_tile "ctr" (itoa (setq ctr 1))); a; L7 {: Z) N" Q; A0 R6 J7 M
- )
+ C8 S7 W$ j5 K: B. g" o9 P - )7 P5 K, @0 t# s" S. w! \3 O1 `! m
- )2 r' I0 x2 Y+ {. D
- )! u# r) ]; |8 A( b# }; c( O
- )
r: b% R( n2 S0 p - " n5 X* l6 \% S* |1 Y/ [1 s% p
- (defun ddpline (/ oldecho), w3 s- \ S! w' I9 u
- (if (not (new_dialog "ddpline" dcl_id)) (exit))
* }( C: d; v1 R# \) {7 T5 n - (set_tile_props)
6 O0 i$ W9 t5 n, }) ^4 E, V - (set_tile_handle)/ ~; ?% T0 t: a1 W' k$ i( I
- (setq bit70 (cdr (assoc 70 elist)))
' k ]" K! m! t) |$ U; r7 p5 } - (setq bit75 (cdr (assoc 75 elist)))
8 Y) k' O z, q5 j2 Y- D; K - (cond& k) S9 `6 M6 z5 e( C$ l: u$ n
- ((= (logand bit70 8) 8) ; 3DPOLY
( f9 ?) _! \3 X# t, f - (set_tile "ptype" (setq pltype "3D polyline"))
4 i2 k1 o ]3 I2 n2 Y6 Q* t3 h e7 A - (setq pointype 0) ; WCS or ECS point values
& Q& F' ]' o5 x% Q# l0 e - (mode_tile "fit" 1)
6 p( M; V. `5 g; v% r - (mode_tile "mesh" 1) c; P1 Q) J' v' A. Y. F. @( O
- (mode_tile "bezier" 1)
- N7 o; F, M+ [# v$ x" t - (mode_tile "ltgen" 1)
) o' Q5 g& I* T - (set_tile "none" "1")6 d# D- d' H5 k- Q
- (set_tile_closed)( x) q& a. i* d9 l& j
- (set_tile_fitsmooth)
* w0 _3 Z6 `% u5 Q/ y - )8 i0 ]- c4 z0 y [/ X
- ((= (logand bit70 16) 16) ; 3DMESH1 r0 v5 I: a8 ]: R
- (set_tile "ptype" (setq pltype "3D mesh")); s) y( A+ C, ~, T& u5 Z) O; f
- (setq pointype 0)$ \6 `4 u4 u5 Q# w# V
- (mode_tile "pline" 1)
4 _4 H8 v9 Z- j6 Q. c$ t - (mode_tile "fit" 1)
; a9 r! O5 V& T+ i& x( F - (mode_tile "ltgen" 1); a" p) z0 f1 |6 q2 b% G- i8 W
- (setq m (1- (cdr (assoc 71 elist))))
( w5 j" N# M( P. N; Y - (setq n (1-(cdr (assoc 72 elist))))0 ]- H7 ^3 d! ]9 y9 {
- (setq u (1- (cdr (assoc 73 elist))))" k0 r) e) p$ Q/ V0 d3 S: u7 }
- (if (< u 0) (setq u 0)), B. ]& L; W9 F: b: g/ f
- (setq v (1- (cdr (assoc 74 elist))))& J) ?# k' E- ^0 J. M1 p
- (if (< v 0) (setq v 0))
1 G. k0 ^- P- V3 }) C* g - (set_tile "m" (itoa m))
+ N; Y7 N' _' B: {. g - (set_tile "n" (itoa n))
: r. K$ S! _' S! Y7 n4 J - (set_tile "u" (itoa u))8 W0 e" F1 G% E
- (set_tile "v" (itoa v))
* |1 u! D; w& ~) b+ ^1 W - (set_tile_closed)3 V( j4 b* L1 U. M& L% T- s2 w
- (set_tile_fitsmooth)' Z4 H% U+ M1 L2 T9 w; [
- )! E) n' |4 t: J" {/ p
- ((= (logand bit70 64) 64) ; POLYFACE MESH9 `' g0 _7 e# d2 J
- (set_tile "ptype" (setq pltype "Polyface mesh"))" E( g, w( b& B" A$ h# q
- (setq pointype 0)
8 | k. [2 d# E" r ]# v" I7 w0 j - (mode_tile "f-s" 1)* f( t( o1 Y& I( |& W. _
- (mode_tile "mesh" 1)9 `$ p% f0 R+ d2 t
- (mode_tile "pline" 1)- a; F& i! t$ z
- )0 z i8 d0 G$ y% l7 f
- (T ; 2D POLYLINE
$ I1 H9 {" t8 \5 [, ?1 K - (set_tile "ptype" (setq pltype "2D polyline"))
! V- P+ P4 m: p( c; q3 D3 {, J - (setq pointype 1)
2 o' }/ B# c, \# r* t+ M - (mode_tile "bezier" 1)8 k; N0 O% k& D2 r# U1 G, G3 h2 y3 h
- (mode_tile "mesh" 1); \/ N: I1 e0 u a1 K2 V; _! c G
- (if (= (logand bit70 128) 128)8 `2 E; H( r# _5 t
- (set_tile "ltgen" (setq ltgen "1"))5 E1 c( L' K; R/ T& m% S
- )
/ x4 y( V$ L1 t- R2 E. p0 X - (set_tile_closed)5 E+ n; R" o& R: }* ]/ h
- (set_tile_fitsmooth) H# |% G \, Z9 D# F! a9 O
- )4 }' P! t& e) X4 F) z# {
- ). |3 |# s) Z7 Y6 L; c/ N4 e/ x
' r0 T, U) m5 ^! n) j- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")/ X$ {- z! A% Z' Q7 }4 q5 s
- (progn% k; T6 P- d2 a
- (if (not next) (setq vname ename)) J* N+ V1 V/ K6 N& `
- (setq next T)7 O% n8 L$ y2 J* }& O6 K; F3 O
- (set_tile "ctr" (itoa (setq ctr 1))): v b5 C% ^1 E+ J. g( D0 J% O& x& n
- (setq vlist (entget ename))
$ S/ ^: o0 y' ~ - )
$ m: n; ?$ d* w% [ - (progn) m0 z2 {& @8 ^. U- y2 H* E! Y
- (if (not next) (setq vname (entnext ename)))
) E& r7 z, [2 u! H! b# \ - (setq next T)6 v2 l% m3 L3 q$ {: I
- (set_tile "ctr" (itoa (setq ctr 1)))1 s4 `6 k- ?2 m, ?; b
- (setq vlist (entget vname))& E5 j; Y1 G! @. _2 X
- )5 q% f2 B, c8 l
- )$ v1 y6 m V2 D3 I8 X
- (set_tile_vpt pointype)
6 Q s. ~5 w f% P7 c - ;; Define action for tiles2 p. b* Z9 l: {3 \+ P
- (set_action_tiles). h9 u* f x& M2 g
- (setq dialog-state (start_dialog))7 @ _; |8 z9 b- U3 G
3 P8 T9 j2 | z' z- (if (= dialog-state 0)2 @5 G0 R/ g5 K/ s6 g; Q* X
- (reset)
" C; h) y6 K- D7 _2 X/ v - )
( B8 q. ^6 A2 t6 M9 A; r5 L - (if (= dialog-state 1)" M0 z% {0 @7 T" v* d& C( c+ _
- (progn+ q+ A3 c. v" P! K$ S1 C
- (modify_polyline)+ e3 y6 R0 o# y/ B7 a
- (if (or (= pltype "2D polyline")# v7 w) D) ~3 g( J+ C. [
- (= pltype "3D polyline")
) j: W$ E8 u- @ - )
# P; k4 s6 D1 I( o - (progn
+ n: \* Z4 u# R5 f) p3 c _( c - (command "_.pedit" ename)
7 j' n# [# Y& A' P6 f - (if (= spltype 0) (command "_d"))' |1 ]$ j3 M! g7 ?+ {4 K( c+ r0 Y
- (if (= spltype 1) (command "_f"))+ Y4 z3 Q5 R& ?' V' i
- (if (or (= spltype 5)
) e6 b) _6 ~' G8 ~6 D - (= spltype 6)6 o! K$ m7 Q+ u. M" g4 m2 I h& w
- )
' G. m N# K& f6 k2 } - (progn
. m6 |; z& }6 q - (setvar "splinetype" spltype)" B2 g0 _0 C; {& A# N2 Q1 E2 G7 ^6 p
- (command "_s")
! v, F' R- Y; {/ Y$ x; p1 q - )* L# S; Y; u- S( C: L
- )) C9 N6 b( u6 E. e! ?4 n. i
- (if (= closed "0")1 Y$ Z7 N$ e4 c& ?1 u! h s: E- w
- (command "_o")
4 o5 `0 o" o; F4 \: S) U1 m d - (command "_c")8 n9 S* ~9 K2 {+ ]- K6 X
- )
! E, X* H) e0 E! U0 ^7 O- ? - (command "")
- G# b* s. G, N: F" H - - q8 f y9 z# w$ |$ G' `
- (if (= spltype 0)
. ~& U o5 O. P4 [6 K1 P/ M - (progn
3 m9 i7 Q; W5 } - (setq oldecho (getvar "cmdecho"))$ E6 v) t* p% V# D" ^, `2 a; R
- (command "_cmdecho" 0)
, V7 E- s2 w' f, T: u - (command "_convertpoly" "_light" ename "")+ l) V9 A% @' a, H& e ~
- (command "_cmdecho" oldecho)
" \6 I6 f( R. d- H - ), g5 c( D% g/ {
- )
2 \! q& a& V6 R& l9 Z - )
8 W- ?* N3 x- I4 X - )
0 \% i' W4 U& J* `" u$ K9 } - (if (= pltype "3D mesh")
1 ~+ z) q4 H3 r- S9 p9 B! R" B3 T% H - (progn9 @8 f: [* T* U6 i
- (command "_.pedit" ename)
8 F6 Y" ~/ N1 x: A% K8 O% q - (if (= spltype 0) (command "_d"))
1 `6 ?! d$ z+ e8 [" t, s! {! ~ - (if (or (= spltype 5)8 O4 F6 c! N' I) ^
- (= spltype 6)( \# m- ]' \8 ^
- (= spltype 8)
H7 b2 s- f3 B, @- w @# ? - )
6 x; M2 E' f$ t# L5 _# @* M4 ] - (progn
' e* C, F6 T5 ~& Z% y+ v - (setvar "surftype" spltype)& Q: u1 F9 E) P m
- (setvar "surfu" u)& r& y. f! B( G. @8 C' Z" y
- (setvar "surfv" v)
n2 D. v7 M# F7 P! m5 m - (command "_s")
6 N. q& Y0 A1 M - )
7 X' B: Q: z2 i. t: u8 { - )# C+ G: |0 T# ~+ E- c
- (if (/= closedm old-closedm)0 V. M# f; Y6 U. n8 Y
- (command "_m")4 \2 ~# }1 k$ c# z
- )
& x0 |) I4 z6 k: y- W) v& E - (if (/= closedn old-closedn)
9 F1 }0 T: I$ S: Y$ l2 T: P9 Z4 M - (command "_n")
$ ?% Z, X+ y/ f' ~6 k3 d - )
7 t7 M# U, a0 K+ q% e. i - (command "")/ U1 O# R! v+ A/ o
- )
{2 K& B c5 Q' t* A0 K - )
3 Z( A n9 e3 Z I1 Q# x2 o1 O - )
0 \( L( s' u1 z: r; Q& Y/ F* r - )+ R. W5 h8 z! U8 H
- )
- ?7 z0 v/ Z# h/ k, G' {5 W - ;;
2 n$ S5 n% v4 f0 G6 k! l0 K - ;; All the spline data is contained in a single elist. We must do some
. K# ^2 U* ^' V( J - ;; tricky list processing to loop through the elist in order to display& i$ L8 P) X+ c' ^9 m+ v
- ;; all of the control points.# K; l, s8 |) l- L
- ;;
0 P `2 U% ~, m7 ^ - ;; The structure of the elist is different for rational and non-rational
) M* x2 g/ z" m6 ~# W - ;; splines. Therefore, we check the rational spline flag. J/ B4 [1 u' ^& @ I6 S. x% K2 Y
- ;;
6 Y4 B9 F" s" |+ ~6 D( J: u - (defun next_cntl_pt ()
7 y8 n% ]" j; D z1 O$ B - (setq elem-no 0) ;; elem-no = element counter
! f+ I7 d. @) T- O - (if (= first-10-time 1) ;; If first time, find location of first
6 U4 b- z; t R: |+ ?" Q+ i - (foreach list_item elist ;; cntl point element in elist1 U3 l7 Y" F5 ~" C! m
- (progn1 O; q# ~1 q# P
- (setq elem-no (+ 1 elem-no))
% e# |1 m9 G) ]8 N. x% { - (if (= (car list_item) 10)5 n9 {/ U$ Y. G8 B; v9 ]4 S
- (progn( a# c3 h- r; \% H/ _$ b6 [
- (if (= first-10-time 1)+ x( w' [$ Y1 M7 ?
- (progn
! a, H5 i* @0 t- } - (setq first-10-rec (- elem-no 1))
; W1 P9 W$ F0 G; ? - (setq first-10-time 0)
) g- `9 ^( O: H0 [7 H - (if (= rational_spl_flag 1) ;; if rational4 y- z3 D3 e2 B* F5 a: a
- (setq cur-10-rec (+ elem-no 1))
& B0 Q0 G% N/ [2 W - (setq cur-10-rec elem-no)
( C8 W" _3 |) b6 k) w# @$ ^ - )3 ~7 F; J( l2 a* c3 V3 Z+ ^5 A
- )& c& d5 B) X! _8 @; O+ X x
- )
9 z& _6 y7 }" j' K- k1 f - )
0 j+ c, Z% T3 S1 n - )+ u" k, U. x6 v" [3 [+ I' g' ]
- )6 y4 U8 I! j+ a& X5 L* e0 T: _
- )
, F0 S9 E9 J; T+ r; c; l+ B - )# o O# G `2 A+ u" }. ~0 P0 F7 s
- ;; Now we know the location of the first "10" record; it's stored
. `" J0 g& V# H# j- w - ;; in first-10-rec. The first 10 record was already displayed when/ O+ _( i, G i' R' l) P
- ;; the dialog first came up so let's display the second one when4 i% i; p* _, \4 C( |1 a: n
- ;; the user presses the "next" button (the first time through).
# p" D' i9 e0 V! G- X - ;;
& T7 q- B) p4 N! g2 h: W, Q; X6 H6 O$ K - (setq temprec (nth cur-10-rec elist))/ c8 z( g& D8 y
- ;;8 ?, v, c+ r/ r' C$ o% d$ [
- (if (= (car temprec) 10) ;; if 10 record' |6 Y h6 d- |9 w: x. Y. L Y
- (progn! C+ |: W# W( [" h- F3 i
- (if (= rational_spl_flag 1) ;; if rational spline
& |' V0 d: G' `9 a$ g/ _ - (progn
4 e/ [: m0 J k - (setq tempweight (nth (+ cur-10-rec 1) elist))
/ q( c; s0 r0 H. o$ R - (setq cur-10-rec (+ 2 cur-10-rec)). G) y' w- Z2 @- d
- )
0 B& ^7 @2 b* W3 y W2 P - (progn ;; else0 Q4 N7 k* D* r; d& U# X
- (setq cur-10-rec (+ 1 cur-10-rec))' h; J" s2 @7 F @
- )
; D/ Q d3 a4 m' y$ u. c! ` - )" `: H; Y# C/ A. B7 C9 G9 U
- ) ;; end if rational spline
+ y) P1 k2 q. i) S - (progn ;; else reset counters
. q7 F" r( \# c' u( p; @( e1 D - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec7 a( D# D5 Z3 m$ ~7 @
- (setq tempweight (nth (+ first-10-rec 1) elist))) A6 o7 Z$ l$ Y" V
- (setq cntl-pt-indicator 0)
+ z7 D7 h0 J; s; j0 R) T - (if (= rational_spl_flag 1) ;; if rational
' p! u2 v4 D* W( w- X - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec% Q+ L) ]. r8 e. f- ?
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
) @5 L5 U( t) f \) ] - )3 @( q" L' J( t* ]3 _0 j9 X
- )
- Y& F5 H& \7 P: K - ) ;; end if 10 record
/ D" y% x, s) b: i- D- u- U% k4 O - 5 z4 R# Z5 x c+ J8 V
- ;; Display cntl point, weight and ctr. Increment ctr.1 U* f( V% }. R/ E
- (setq cntl-pt (cdr temprec))
3 c8 t5 L, I% ^8 i6 b* z/ c - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
) o& A. u) c! M0 ~8 P - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt)))), n0 o' z( t: R; G \6 n
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
8 a# ]0 F9 V- s/ e' G ^( C - (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
- o, W6 T/ A6 S$ P7 @2 A - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
j# n; F: C1 t6 X - (if (= rational_spl_flag 1) ;; if rational
) T& k0 Y7 Z0 c$ g( k# }: r" | - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
: T7 z8 S6 N& r) o: q3 D - (mode_tile "weight_text" 1) ;; disable wght/ v1 f& U9 J+ h- I, v! r( h( \) q
- )9 Y! n# G0 r* }/ s5 i
- )& [* @* D- g, j3 c$ G$ o9 w5 Z
- ;;1 ~$ Y! l. j% f2 n2 E
- ;; All the spline info is contained in a single elist. We must do some) {2 B4 H$ l( Q
- ;; tricky list processing to loop through the elist in order to display
# k) B9 b& Z0 C3 c: S7 [ - ;; all of the user data points.7 Z# Y4 R: f0 y4 m Y
- ;;
0 W% h* M+ m5 k }; I( w( R1 y - (defun next_data_pt ()0 P' Q- f& Q/ d2 ]; K9 L
- (setq elem-no 0) ;; elem-no = element counter
7 S2 Z* @0 r' C6 R3 H# f; U0 c7 e - (if (= first-11-time 1) ;; If first time, find location of first
* H/ f+ c& n0 y; S6 _ - (foreach list_item elist ;; data point element in elist$ s# W2 }2 m# a5 y
- (progn" Z. t% t b# a, t1 `7 p5 c5 m
- (setq elem-no (+ 1 elem-no)) S" S, i m4 u# C* U" }2 L
- (if (= (car list_item) 11)1 p" B" K& U. S- B& Q, \* }* B
- (progn' T* F4 G2 h. h" O8 a
- (if (= first-11-time 1)$ O# Q- ~3 ^, a2 |' [
- (progn
0 \3 X% z/ R) c. u/ d, f - (setq first-11-rec (- elem-no 1))
& O& k! @0 E w" b, x - (setq cur-11-rec elem-no)
4 X+ N6 N. H9 r, |9 | - (setq first-11-time 0)
+ T$ s" z5 c( z5 b) @ - )
5 o$ ?; @8 C* L" j' [; [, o - )
9 F% K1 j4 n- {/ d- U" h+ I; O N - )- l+ j! Z F# C. [3 R U$ [9 C, q; L m
- )
( S' l' Y# L8 A/ O - )
8 O/ f1 ], ^. y! [" I - )2 u0 y" N; [0 Z8 g5 L6 j
- )
+ a9 v4 e3 x# C% X. e - (setq temprec (nth cur-11-rec elist))
* Q0 K; c2 B' I% r5 p9 f - ;; If it's not a DXF "11" element then we've gone past the last8 o( I1 k6 z( G' L
- ;; "11" element. Go back to first "11" element. Reset counters.
R7 e4 l2 d7 i - (if (= (car temprec) 11)9 q5 B- o m- S: C( X8 f
- (setq data-pt (cdr temprec))
4 W. g W, ?3 r# h$ J6 U$ \ - (progn ;; else; v8 Q- @& r9 y% K3 a
- (setq data-pt (cdr (nth first-11-rec elist)))+ W' _: p! M$ V, `0 ^% G
- (setq cur-11-rec first-11-rec)& [1 h- N8 S" m1 G
- (setq data-pt-indicator 0). M9 P4 |5 Y9 R [! _/ k
- )
2 v; B v8 b- r7 O - )
: S e6 W. r) q R2 f, ~ - ;; Display data point and ctr. Increment counters.
# L0 l! y* x( G - (set_tile "dxtext" (rtos (setq x1 (car data-pt)))), P7 o4 |" U$ `( W! C
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))" m3 k' n, |+ J( Q& S
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt)))): ^( O# m4 x' x+ j/ h1 E
- (setq data-pt-indicator (+ 1 data-pt-indicator))2 x* L. T5 P- ^2 ^. p8 P7 T" t) T
- (set_tile "data_ctr" (itoa data-pt-indicator))
* w/ B3 u; u# G7 W - (setq cur-11-rec (+ 1 cur-11-rec))
[ p* u& u" Z- @8 o& y - )- j M6 O4 f% n |& ~( u
- ;;% R: g/ ~# ?7 c0 R
- ;; Modify SPLINE( b7 p6 w0 v6 B. l6 d# z& F
- ;;8 @$ G, N U) A- n4 q* O) s1 Q; N
- (defun modify_spline ()
( M2 z. z$ p& u Y7 m' J% J - (modify_prop_geom)( E3 Q; P- f, O' W) F
- (entmod elist)
7 D8 t$ |6 M+ E0 m - )
, D: M1 c2 x/ e, d; t7 n
$ C* U( z/ k. h- (defun ddspline ()4 G6 ^" R* @/ d0 Y: y# V2 N: V
- (if (not (new_dialog "ddspline" dcl_id)) (exit))( q! r, P; p Z% W# a/ T8 b; K
- (set_tile_props): `, T9 |: W) {
- (set_tile_handle)
# d8 Z: B- i$ m! ~ - (set_tile_spline_props)
2 h! Y* {1 a+ h - ;; Display first control point. ~# z7 `. @3 k5 t
- (set_tile_cntl_pt)
% s' U0 Z& g7 G m7 U8 K6 w - ;; Display first data point
. K) ~: R' ~" {4 L9 w0 K/ Q- c- K7 X - (set_tile_data_pt)
+ K- t) a* T L- x4 V* c6 v - & ^) y/ a& U3 H. l6 y* }8 ]# ~
- ;; Initialize flags to indicate first time through the dialog.! {( O" g% I, m2 l+ @' n, P8 t
- ;; For control points and user data points the "next" buttons# V$ |& q7 V T+ O
- ;; in the dialog call the appropriate functions.
0 D1 Y, C3 ?( d/ I - (setq first-10-time 1)
) Y6 D1 M' W4 i - (setq first-11-time 1); j3 e# ~) Y7 {; l( W
- ;; initialize control point number counter
& F+ M: j/ y# F- R! R1 K - (setq cntl-pt-indicator 1)
8 |5 M6 O' d+ F8 p0 A - (setq data-pt-indicator 1)
5 @0 ], U$ H: t1 u - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
+ P2 y$ `& A$ Q4 X9 V" r! H - (set_tile "data_ctr" (itoa data-pt-indicator))
3 \9 |8 E, F4 |4 V# D6 { - (set_action_tiles)
+ ^" E$ c4 v( z; _/ y z - (setq dialog-state (start_dialog))
$ g' @# B& f- Y( { P0 g - 9 Q9 ^1 F4 c. |: V, z. P
- (if (= dialog-state 0)4 r/ d2 R1 w- D6 b: e. D8 _* F' G
- (reset)! x: O) g5 n4 C7 o' E3 W
- )0 v+ c2 Z* C S
- (if (= dialog-state 1)2 X6 M9 h; k6 d$ a+ J
- (modify_spline)
! D6 D: V# a. E; t* V# D - )
9 ^4 Q5 n, k3 _& K9 M - )
4 V; f8 Z# s- E) E8 T- V! ^0 P - % r4 ]7 x/ o# C7 L, V
- ;;' }: M/ L- z. s/ h9 B! v7 `3 ^
- ;; Modify DIMENSION
9 Y2 z: s& T- D4 l7 I2 J% V - ;;- e" M$ Q5 s/ h2 ?9 ^# y, p9 x
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
1 Y6 L P8 e7 U. ], R% Q. h: a* h2 T - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist9 U' d/ @* ^8 m) D& U$ i
- dimtype dimsvcurset)
* O+ {; h; G4 Q( z+ `: B - (setq dimtype "DDIMEN"
* k$ A- S3 P* u) ~0 S0 Q - dimsvcurset (ddimen_dimsty_restore); ]; u9 D3 w4 Q) z: H9 ~1 Z
- )
+ o+ R. G8 ~0 u - (if (not (new_dialog "ddimen" dcl_id)) (exit))
, l T L# }0 ]; a - (set_tile_props)
7 ]' J2 U) P; M* L% ]/ m& i - (set_dimen_props)' v# N8 L O# m3 k. r
- (setq dimtext (cdr (assoc 1 elist))); [/ }( r. p { D
- (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))
% J) |3 f) c) N/ }3 l# q7 U - (set_tile_handle)) S1 z/ j( B1 Q
- ;; Define action for tiles
. I0 H4 d8 T5 Y" y; r. [, p2 d; h3 i - (set_action_tiles)
; W% ?! l" u! o - * W8 `9 O% x2 \# D! g
- ;; Set initial focus to text edit box.
[; i) V* J) H) s D - (mode_tile "t_string" 2) _; P. s" [9 p7 s
, I5 f1 O6 H0 y2 F2 i- (setq dialog-state (start_dialog))
3 m$ B# N0 D! \- A" X' S - (if (= dialog-state 0)2 f3 Q' u8 R" \9 T3 P3 j$ `
- (if (= ddimmt 1)2 k1 m" `2 ^# L5 V2 g3 _6 Y
- (reset)
; f( _' H& h! M - ); r: |* w9 {0 X
- )
5 H0 V" H9 @& r' f+ ]8 H; c6 O! M8 Y - (if (= dialog-state 1)
. X$ {) _; [9 R& N - (progn* i% k: i4 }& g5 j$ R
- (if (/= dimsty stname)1 M* r6 ? p H4 r
- (progn+ q) @: h+ `& G7 {) S) `
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
* |7 q, M( F: @2 f& m) a - ; doesn't have it.
! t6 _. F5 U4 c0 F - (if (null (assoc 3 elist))! s/ r1 A8 y, Q+ f1 T
- (setq elist (append elist (list (cons 3 dimsty))))/ \" k: t+ V" K; \
- ; else just replace it.
4 N9 ~: K' s& j" w) I6 H/ `9 Q - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)), o# n, X9 d: S- \: d
- ), h9 p0 W8 \) x2 p% I- c
- ; refresh sv_dvlist with new dimstyle.4 X8 a2 O5 j* k5 \0 f
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))2 D2 [1 B C) `
- )) C* `/ D8 g/ D- Z
- )1 L" w9 i: T+ H! R; ]8 M
- (if (not (null dimlist)) ; attempted to change dimvars
4 [3 N, a l/ ~' Q( p - (ddimen_complist sv_dvlist dimlist dimtbl)4 K1 J* G- s! D/ y% w- F3 U
- )4 |4 F) h$ w8 I0 Y2 O2 O; {
- ; Modify dimension text
, o0 o7 U, V8 [3 m+ W - (if (/= dimtext text)
& s* q$ o9 i& e) @6 h% M1 f - (progn
, o6 m. M! I" F% K: G1 t3 Z - (setq dimtext (if (= text "<>") "" text))
0 d$ Q1 z* E! x8 H( T, a7 f! d - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist)). D& v O! N$ F. r. \: I
- )
9 z4 [2 K/ k, a6 l+ }' O3 j - )+ D2 g4 v, r( h5 G
- (modify_properties)
4 c/ M- z/ d; a - (entmod elist)' n! b' z6 C' b, G3 S/ o- H/ Q" S& Z
- )$ h. Q7 a! h/ a4 g& z9 r
- )
o- L% W O& k# u- s! f- a - (if (= dialog-state 4)3 |0 M3 K. _, A* D/ ^3 u
- (progn/ p( `/ G7 z; Q! X( f
- (setq ddimmt 1)
2 b u* j6 `& ]# f& M% Y - (if (/= dimsty stname)
- J" \7 R1 S; V% ?* b# ] - (progn( U' s W: c9 x1 O2 p
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
4 c* l8 K1 f* [4 y - ; doesn't have it.' i) i# }6 [; _% H& Z+ L
- (if (null (assoc 3 elist))
P z! x" }+ u5 C+ T h ?- w - (setq elist (append elist (list (cons 3 dimsty))))0 \7 g$ k; y) x. ]/ A) q3 t
- ; else just replace it./ a& _- w4 ]5 y" }! |0 T9 l ^
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
& g8 t4 Y" t/ L# W4 o+ X - )
9 L, |+ f+ a& s) @" J, b8 l* q6 o - ; refresh sv_dvlist with new dimstyle.0 h) @2 p$ D( J
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
& x# \: N; y3 Y1 a. H& }( ~ - ); R5 u5 D( v1 s U+ t8 q- M, J, n
- )+ b4 e- I+ c7 w; r! T
- (if (not (null dimlist)) ; attempted to change dimvars) P* A" @2 P& V
- (ddimen_complist sv_dvlist dimlist dimtbl)( ]! V# Q+ O! i+ s
- )+ \8 h- S& y- |. J
- ; Modify dimension text- a2 u4 }' }9 Q5 H% b
- (if (/= dimtext text)
2 N9 X1 v" B; x6 F - (progn* T$ o( B% o Z- Z% P
- (setq dimtext (if (= text "<>") "" text))
: I }6 H4 h) b+ m9 Y - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
4 C/ ?0 h |- Q- z% z - )
- j3 r% f1 t: S - )
7 S' { b* D' t" G) C2 I" g - (modify_properties)
, p0 V; K U8 g4 g' j$ X1 n - (entmod elist)
" O- l# q4 X# w# ~, P7 U* G - (safe_ddedit ename)
+ S3 m2 k: l- `% p: | - (setq elist (entget ename))& Z/ Q4 b- p. h- N
- (ddimen)
) d; x" f* D5 u# \" `* S$ ]' j - )" B# g, C+ }! J: E& @
- )
! m: |3 R t8 l3 M3 ?8 N - (ddimen_setvars dimsvcurset) ; Prepare to exit. L; a) W/ x& Y( m" D+ }& ?
- )! p- z5 `- A6 F5 o8 D8 e6 R
- 9 A8 f" `+ c. ^3 D) A5 K: R
- ;;/ x0 M$ z9 S3 }/ K- b0 J0 Y' m
- ;; Modify TOLERANCE
, O! d2 p1 r& ~8 j* @ - ;;
8 g% i; s% s: w! u& J - (defun ddtolerance (/ a stname n dimtbl" R6 l3 u, m% z
- dimsty dimlist dimovr sv_dvlist stlist dimtype
! \# l" O# t( C$ Q5 K9 v4 T - dimsvcurset)6 y% \( q* I! w: c
- (setq dimtype "DDTOLERANCE"+ A& y, |. n1 [* u
- dimsvcurset (ddimen_dimsty_restore)
# N9 }9 q: x% r: {: a% F( [ - )# v5 N8 D1 L8 Z, Q; M7 v3 z7 {) h
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))1 Z9 i8 ?2 V* O- B. D" k* i
- (set_tile_props)/ K/ C% U; B& y6 Y) Y. D) `# f
- (set_dimen_props)
, b' Y# ]& k8 X - (set_tile_handle)1 z+ A8 m* c8 L
- (set_action_tiles): _8 `5 w: A' d* @( i
- (setq dialog-state (start_dialog))
5 {. M; |' e7 K" A [- Z$ | - (if (= dialog-state 0)
9 x R$ r9 G B2 n - (if (= ddimmt 1)- z* b& v C2 k/ t( H8 S5 s' k
- (reset)
$ C: [0 `: ~( j% h2 g2 S - )
: J8 ]) t2 B2 M( b) j3 `; M1 p - )
. ]8 B) h d+ {/ L" E( G6 I% f - (if (= dialog-state 1)
: F" Y/ }) t! d- D - (progn
1 M4 {, A. |- b0 Z( o l - (if (/= dimsty stname)# _( s2 e2 ^% T* _) E" n3 Y
- (progn
9 T1 e- |" N2 G( T* a% u. m - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case% l% z y) Y# d7 n. s) u' r g
- ; doesn't have it." `7 V- c+ H1 ^2 C
- (if (null (assoc 3 elist))/ H+ ^3 [& _# Q3 Q3 g5 v
- (setq elist (append elist (list (cons 3 dimsty))))# h( |. ?: r- C: A1 c
- ; else just replace it.
$ ? Z4 n8 k( ]6 q8 M8 X - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)), l5 u' R! d3 N7 X' ~
- )
( m4 Y& S! @6 c5 W# H) w0 ] - ; refresh sv_dvlist with new dimstyle.
+ l* o4 t& |' E7 \3 y+ S) g - (setq sv_dvlist (tblsearch "dimstyle" dimsty))5 f9 p! j5 A6 I6 ?4 m7 ^; V
- )0 p6 u6 Z0 k- R5 n G0 `! m* ?6 i4 E
- )
# W* k$ C8 s, \' H+ ?8 c - (if (not (null dimlist)) ; attempted to change dimvars* J+ {/ B0 y: j7 w7 K
- (ddimen_complist sv_dvlist dimlist dimtbl)& ~! p( [% j6 }7 b
- )) d' O: v2 A& i9 j
- (modify_prop_geom)4 K* f# B# u- y$ | D: x/ t9 D
- (entmod elist)
/ _) ~1 c3 c1 U, T& \0 U# o) `3 c - )0 R! b+ H& m8 }
- )
+ r) j" y. E- y6 s1 c/ l - (if (= dialog-state 4)
5 v1 L4 ], {3 n; ]. v1 y" Z/ y; @/ C" P - (progn. n/ D% h( l- z
- (setq ddimmt 1)
" Q3 _3 E( E& l% a5 ? - (if (/= dimsty stname)$ c% g! L, J, v* B' j
- (progn1 S! G. o/ l0 Q) N: ]* `. R
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
1 t( d7 V( h* |& h" E% } - ; doesn't have it.- l* ~/ [4 {3 b
- (if (null (assoc 3 elist))
& H9 g' L3 I; G- O" d' s1 h - (setq elist (append elist (list (cons 3 dimsty)))). U z+ X) O* p" h" r$ j# `' u7 `
- ; else just replace it.
* C2 @8 n: F% ~' h' _ - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
1 g/ W: A; B9 K$ T5 ?. p( t - )
5 N2 m5 u/ S0 e: t3 s - ; refresh sv_dvlist with new dimstyle.$ X! _( `6 E: ]
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
9 d+ _! ^# k5 \- w) o k8 ^! D - ) P6 W/ Q* Z6 }9 p( ~! C
- )
( I1 V" m, c: G# {! }8 L$ u" y - (if (not (null dimlist)) ; attempted to change dimvars& x8 o* O* i, n% y
- (ddimen_complist sv_dvlist dimlist dimtbl)
9 l( a, P# X) i# A6 X2 ^- u - ); u( w3 X* t5 i0 W: U. U, r) Z' x
- (modify_properties)9 a$ o7 _# X. ]* ^5 ]7 a
- (entmod elist)
; D1 y9 O9 A' X. \# y I. \8 X$ a - (safe_ddedit ename)
- S* ?4 w" J* I H+ ] - (setq elist (entget ename))8 E$ \1 s2 `+ e+ ]
- (ddtolerance)0 p# D9 w$ V4 O! x. Y% I
- )! E* ?8 i i4 W1 D
- )
1 B6 E5 p5 O0 s - (ddimen_setvars dimsvcurset) ; Prepare to exit
0 @+ O" W" [- c* p - )
( g% q, g0 b& Q2 I; b0 N: ^" i
! V% V) e6 u, R- ;;9 p8 k; n Q3 g \* t$ G; `
- ;; ddimen_dlg - jump to ADS ddim module
, v7 Y' S0 v& C$ y4 A: I+ x# d - ;;
! s% ^9 m4 B+ F! l% V
3 @: L: v; n7 G) j$ K; ]- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
+ q2 s. K& \' ]3 T& x% s - ! L+ \" S; ~# b* T7 ^
- ; Jump to DDIM with overrides if any.
) [3 o; ~. R% r0 d; ?+ i - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
) n2 [% _# Y% C( p) p1 c! w: } - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format* f% b" u* H) A! h) p7 S, y2 p
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation, b; U6 j9 M; l( V) c! N
- )* ~, r! S& p4 q( N' ?; H
- )
( E6 q8 M; V# _: Q( E/ s( w5 v
8 ^( s" I% W3 q9 F* A& C/ f, D- ;;
0 Z! l m+ N Q4 Y' G0 F - ;; Dimension variables updated are stored as overrides.$ e/ @% G7 {3 @" B
- ;;8 ^( H) D- e- i
- * T- `5 \5 E% J. w8 } W5 I8 y4 H
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar7 d& L" `1 L X5 J" Q' \' m
- dv dime commandIssued)
- |8 b. a# z/ z - / Z6 U4 O2 W6 w; d/ }6 O. P/ N
- ; Here we skip the following first three items:( d% t; D5 b5 i3 { O( O
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)5 X1 f: t& k7 h% ]0 S: @/ W
- ;
* l: F5 t9 @, L$ p! Y - ; The list comparison immediately begins with dimvar.2 s: ?( k8 ?0 j
- ;
9 S0 G/ W" R6 _) H* O' N- S2 s - ; dimolist - original states of dimvars
/ R1 B$ S# x: t1 o8 |3 d - ; dimnlist - new dimvar list which is of the resbuf's
5 ~: A2 J! p, `; [ - ; dime - entity name for the dimension: ^' _- u+ `7 E* p% [
- ; odvar - value of dimvar for the dimolist8 T y* Y& q5 ~* a; R
- ; ndvar - value of dimvar for the dimnlist
1 O7 U1 e9 ^& ? - , B! [$ l4 N6 O* K, O/ s+ k. x
- (setq i 37 I8 x3 D; i6 r. m) R$ V5 L6 A- R0 O
- dime (cdr (assoc -1 elist))
. s' O# D8 m. X; m5 l - )
. V) p+ q( {& G: m7 r - (while (setq odvar (cdr (nth i dimolist)))
& @7 l- \6 ^; ?, T - (progn/ `* e! ^' s. t7 s0 _) a* U
- (setq ndvar (cdr (nth i dimnlist)))
' X9 V- [5 f# n( b: M1 h - (setq dv (nth i dimtbl))
' J' a, ]9 k$ Y! g- x8 e - (if (eq dv "dimtxsty")# P9 g5 @4 x; o% n' Y5 S! c
- (setq odvar (cdr (assoc 2 (entget odvar)))
$ y# h: B1 g4 R4 f* {/ J# q: W - ndvar (cdr (assoc 2 (entget ndvar)))
& Y6 `) t2 g2 L( I; Q - )
4 w$ ?! `& _+ h+ p) b - )' {, H; s! n$ d+ g: n8 @
, a+ H- N% G2 E% ]. {; v: |- ;6 k' a" }0 p' X3 s
- ; In order for DIMOVERRRIDE to operate correctly with string
: k' I- P+ o' [. j7 B - ; based dimvars, we must pass "." versus NULL strings.1 x; e/ |8 {* E. ]: X
- ; In this case ndvar is the new dimvar value the user wishes
% b, V$ j s' B - ; to update on selected dimensions.
$ l! z" d8 I' T! d" B - ;$ d# `. U6 s8 R2 k8 `& c
- (if (/= ndvar odvar)
6 Y/ S2 A- G$ y* M2 R/ d1 t( }3 ^ - (if (= 'STR (type ndvar))
/ y& ^# H% E/ F0 M# l1 { - (if (= ndvar "")! K! c; O# j5 V; v9 w
- (setq ndvar "."))))
5 t; ?2 G) [- {5 G8 r: X
' P( z. V6 {. h0 J3 F- (if (/= ndvar odvar)9 i, A5 d3 n" y4 f
- (progn
7 I* F- D0 z9 ^5 w8 \ - (setq dv (strcat "_" dv))
8 q: P- K e ]& o - ;& @" _' s$ |7 b/ B1 L* I
- ; Start the dimoverride command2 ^: N5 u, o+ Z( I6 r! d/ f* i3 W
- ;, D2 t3 ^8 I4 f3 S
- (if (not commandIssued)
4 s) a) ~9 b F" I9 O0 z5 G' g4 Q - (progn
- j; e" [! N0 f9 t - (command "_.dimoverride")
5 v. t1 P& g9 @& H - (setq commandIssued "T"); x6 W! J9 ^! W$ c2 E0 g
- )
+ K, n% o* Q* D& I( i - )
5 U/ Z" U" |: k2 \7 G6 ]6 R' B) H) X - ;
' `) X& e! [' u* p( b( R - ; Issue dim overrides! o; Q! q# E& q
- ;; s4 I6 i4 K# }. T" S4 S5 W" m# v9 g
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
6 z: k/ Z# h4 ~ - (or (= ndvar 0) (= ndvar 256))
, R+ Z; Q* M& h J - )" G: M4 D7 c1 P9 e+ R
- (progn
6 O0 L: J4 @' W0 q - (if (= 0 ndvar) (command dv "BYBLOCK"))- b6 I2 g) V3 f7 {. x
- (if (= 256 ndvar) (command dv "BYLAYER"))
8 l+ u' ~7 B. a3 l& @ - )
2 l0 I: A2 c# ^ - (command dv ndvar) v" S/ \) W# T* r: L5 Y) `+ p2 _5 ^
- )
- {4 e$ d6 ]6 B - )
: P1 S7 X6 |- ]* Y% x0 a - )4 m# D3 H: n6 R; w9 }" m
- (setq i (1+ i))
+ V$ a6 \9 s; |5 G - )
& L h2 W3 s' E' ^ - )
7 I1 T% L# L5 Q% \3 x z - ;% b' N4 }3 O) x9 J% C
- ; Select Entity and terminate command
+ B3 ?% q* W6 \ - ;
3 Q& i, |4 F5 k6 Q, O - (if commandIssued; P# w0 ^6 c% X$ m7 g$ D
- (command "" dime "")3 M1 y5 t. t1 i g: |
- )
9 v- T7 R$ d! H5 c @+ ]7 k$ n3 A! ^ - )
; W4 f* d# C8 Y: K
8 v8 h/ y% `1 n. G/ |# g H- ;;* D/ j& A3 { M/ R7 C) b; N: R
- ;; Get style name currently selected style name.
2 x+ ]0 j: K" N2 l3 f' N8 B: s - ;;
! M% f* r) l2 G' d - 6 Q$ h8 b4 y) R* y/ z# z8 ^2 n! w
- (defun ddimen_style (/ dimsty)1 I7 u& L9 L2 j/ u5 Q0 I {; h
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
k% h0 t- i$ }- W$ u - dimlist (ddimen_getdimvars dimsty)
& t$ n( {9 o: b { - )
, a/ d$ g' f1 m# M6 N+ w - dimsty4 Q+ _! r/ d8 ^* w9 {
- )- r3 p; \( z& i+ ?1 o2 S& V: g
- B8 H4 {* o# x- ;;
8 }; W# \# S t; V% q; J8 O1 ^ - ;; Set dimvars$ ]% L$ a+ a! s; Y
- ;;
& H* D$ j; U4 }# } - (defun ddimen_setvars (dimsvcurset / dv i)4 z0 ]# c+ B4 s: E4 u
- (setq dv (cdr (nth 1 dimsvcurset))): f' l0 a& m: n% G
- (command "_.dimstyle" "" dv)% Y8 [2 @: `* o l1 I- U! M
- (setq i 3)
# z2 }" t# {+ i/ a! o1 d - (while (setq dv (nth i dimsvcurset))1 Q# N0 `# u4 e( z1 d
- (progn( R' o" [3 u) g- U
- (setvar (car dv) (cdr dv))% ^# Z) V# T9 {8 e
- (setq i (1+ i))
6 N! z! y5 G" e% R - )
" f+ e' z h( a n8 j - ); o: H9 `/ V. A$ w$ l
- )
" ^% x6 D; R0 }3 j; I - ;;
" X' ?& R: f6 P - ;; End-of-dimension
6 p" n. C0 P' L - ;; ==================
. A7 Z. U: Y0 ]% \$ N2 b
5 t# \* k: u1 I9 L- ;;
4 C N* Z9 x X# ~ - ;; Sub-dialogues for properties. Common to all object dialogues$ d F7 z/ {5 {8 q- Y5 G7 a
- ;;
( C. P: d Q S' X& C0 ^ - ;; This function pops a dialogue box consisting of a list box,image tile, and; S C( N4 i" d# I
- ;; edit box to allow the user to select or type a color number. It returns
$ Z! p. t* [' X - ;; the color number selected.% h6 \" r7 t" s6 ~
- (defun getcolor (/ old-idx colorno cname lay_clr)8 Z& q( V) S1 J! `6 M0 s5 E& a
- (if (= (get_tile "error") ""), W) [8 g6 K3 k$ G
- (progn* }4 m# {) g" u* s& e& K
- ;; Get the color associated with this object's layer, for use. A% u! k+ C2 Y- i: K
- ;; in the color swatch if the user selects color BYLAYER.
6 g, j- M' Y) x6 A) h$ L5 N - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))/ e' ^: j8 q& `7 I0 p
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))5 B$ K4 B. g! H$ C4 p
- (progn
6 B# J7 U1 G* E5 t9 |; ^ - (setq ecolor temp_color)5 h" D0 Z1 w1 U
- (setcolor)2 _) H# _7 P% T7 t. y. |# b
- )
. _5 l9 E9 n* ?$ z3 }1 N# N - (setq testcolor temp_color)
! ^6 z O' U% }- U4 g - )
1 J5 b8 l8 E8 ^1 R - )3 ?( d; v% U! B+ Q8 c" m$ }9 V
- )
5 G% e( @& x- H( `/ }- O - ecolor$ c# L5 v! c9 A9 X& y+ i: _
- )
" u0 @9 T+ l: K6 U$ d - ;;6 D/ Z5 v9 Z% r
- ;; Function to set the color tiles.' N4 }8 f% M( N1 y
- (defun setcolor()
: s2 c" b: @7 t- I - (cond" @( R' u% h2 F8 C, M
- ((= 0 ecolor)9 A1 `5 E: L- z, _7 B6 u" ]: t" N
- (set_tile "t_color" "BYBLOCK")1 c. u0 y5 U- u% `$ i1 B1 l
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
: u* r8 [/ U% a) |: U( g' ~ - )7 x1 a& [ m) a. m# h1 q
- ((= 1 ecolor). g# }- M6 O( O: ?' e+ E
- (set_tile "t_color" "1 red")! y$ z5 _* R c: Z$ A
- (col_tile "show_image" 1 nil)! R: i/ q& u. ^. u& }6 ^: x C
- )
# q+ l. U. _: f) U" h& B8 G - ((= 2 ecolor)$ @ z* L5 K& f3 S# y, E1 }% H! }
- (set_tile "t_color" "2 yellow")
6 p" s" U. Q4 k: s: B* D3 H - (col_tile "show_image" 2 nil)
2 |+ Y; r, F1 c - )" d3 k- y6 p1 ?6 o( i0 ^8 J& T5 j
- ((= 3 ecolor)
6 R4 P$ f) g3 S3 z# T - (set_tile "t_color" "3 green")7 ~, n& H8 ?! X8 q% g6 `
- (col_tile "show_image" 3 nil)
9 J; Y7 E- g p: \ - )
2 W9 D! q' H. x% c9 X6 L - ((= 4 ecolor)
& k! E8 R! a1 v9 h - (set_tile "t_color" "4 cyan")5 \. _6 ~3 e0 I% ?, T
- (col_tile "show_image" 4 nil)% F9 m, f' b. J2 a
- )* u8 I) V/ f! c# o: o/ Z& m
- ((= 5 ecolor)
% z9 `2 U% q! Y! E - (set_tile "t_color" "5 blue")3 e* C" V4 y( q0 g, O( N
- (col_tile "show_image" 5 nil)4 B8 K, [, {* B, x% p5 b
- ) J2 [4 {6 q/ ~ m, Q* _
- ((= 6 ecolor)
$ B' H( L$ P' h: T - (set_tile "t_color" "6 magenta")
( Y1 v7 v* c% O7 L, q0 z - (col_tile "show_image" 6 nil)
7 X* u( F7 ~6 B- _/ R - )8 A5 V3 w) F' h1 j# }, h
- ((= 7 ecolor)
3 j2 N% p5 c9 |$ m - (set_tile "t_color" "7 white")7 y. [7 `: E2 V7 c% Q# `# j( C
- (col_tile "show_image" 7 nil)
: {& h8 M# L! o r1 _ - )! N2 F& j2 }$ ]( m& b* t
- ((= 256 ecolor)
. K5 e; G8 B6 b2 N: f/ e - (set_tile "t_color" "BYLAYER")
' B) y( {$ Q) C- J8 C8 w P, p( \ - (col_tile "show_image" (bylayer_col) nil)
7 W- U% F0 @9 Z8 ?2 Y8 ?: O" f - ); \7 R% @, B& t
- (T
& T9 V( o( |" m4 `6 i: O - (set_tile "t_color" (itoa ecolor))
& y8 a0 o" d/ r3 x8 S5 a - (col_tile "show_image" ecolor nil)% W' g0 n3 [& v
- )
) k% g6 G$ m1 b, T# E3 r - )8 X# u7 R' P; ~( U% X6 @# V2 I
- ), q6 o1 I% q0 w
- ;;: G1 y9 _9 Q) C- H* M2 d, h
- ;; This function pops a dialogue box consisting of a list box, image tile, and
, ]$ j: K1 M" N3 i M+ J+ e - ;; edit box to allow the user to select or type a linetype. It returns the, E" d. L* |0 x. ~7 J' r' b* x
- ;; linetype selected.6 s+ v2 n. U( r9 W |( W) X3 h2 U) l
- ;;
' J4 r$ E& M/ v' M+ c0 p - (defun getltype (/ old-idx ltname)" d( P, B* z% u" {5 ~
- (if (not lt-idx)2 E- w- n6 [5 V2 G
- (progn( m% x* Y0 X) E: c
- (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
' S# N# \% A% w; F - (cond7 V- s( Q- K: B0 c% F2 I/ N5 D' p
- ((= eltype "BYLAYER")6 G* Z- z0 }. P# v. W! l9 L* i
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
; u& b. A$ B1 b) h5 w - ((= eltype "BYBLOCK"), ?2 ?# `& z2 S9 b5 t
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))& _% y# N7 N- m* _/ Z
- (T (setq lt-idx (getindex eltype ltnmlst)))- A& {6 k# D; x% X
- )
! g$ g( F# Y# k! b1 H; R - )
, ]5 W$ J- z# R3 e - )( f3 y4 u" ?0 l: h( `/ L
- 2 k( v( T d6 ]8 T( z6 k' R, I
- (if (= (get_tile "error") "")
" }* o8 i% {! [# b& k - (progn
: q+ b0 ?/ u' Y3 N, ?5 z# K% C - (if (not (new_dialog "setltype" dcl_id)) (exit))
# T! k8 Z$ ?! ~ - (start_list "list_lt")
5 b, _ ~# b3 @& ` - (mapcar 'add_list ltnmlst) ; initialize list box$ v9 L) K+ |" g
- (end_list)3 P4 o3 @3 j8 [9 s" p
- (setq old-idx lt-idx)
8 x0 t& k) U% {8 Q" o8 C - (ltlist_act (itoa lt-idx))
; X8 q; |1 P9 `4 p* c0 `
8 J8 T" j; v3 R0 i* r- (action_tile "list_lt" "(ltlist_act $value)")
/ H' m+ I1 f2 k - (action_tile "edit_lt" "(ltedit_act $value)")
1 `0 D. J1 \& [1 m' e% A - (action_tile "accept" "(test_ok)")
2 Y+ U( o; e ^9 l1 u% j; T - (action_tile "cancel" "(reset_lt)")
; p& G" W' d1 e! ?/ x! `
! s8 R3 P3 }% @' q" H+ Y8 T |- (if (= (start_dialog) 1) ; User pressed OK9 q1 `! Q$ S; `, [2 i/ m& Q
- (cond1 W6 b) L" V0 G( L# A. X, k
- ((= lt-idx 0)+ k4 Q/ r) m6 u+ r$ p' _3 ^7 t/ }
- (set_tile "t_ltype" (bylayer_lt))! e; _* U( q$ d& F; O2 _. W: F5 o
- "BYLAYER"" g8 V" y/ T5 y! c. J; W
- )
& u9 |. N- I5 z4 ~5 ]) W& a - ((= lt-idx 1)
: |! t" {7 N1 _$ m3 _/ { - (set_tile "t_ltype" "BYBLOCK")
7 y8 A. F. @% z. G: s8 o! B- h0 U - "BYBLOCK"2 s8 W1 O' b3 v+ l' o: T$ i
- )+ R4 m2 q7 N. W( n# V4 }
- (T (set_tile "t_ltype" ltname) ltname)+ X; T, T! O, g" O4 B- p$ F/ \8 b& O
- ) x4 }% {2 e8 V7 n8 W' a
- eltype/ u/ ?4 i2 C9 \$ v7 ]6 `9 [
- )
3 S Q7 h1 q8 D$ u- ` - )0 g4 m! ^/ a& b0 l, }
- eltype
7 F/ A9 c" f5 I% i4 p - )
( K! B4 q E# M( K6 d i' | - )' Z9 {. Q! E8 B
- ;;" o4 Z7 O! a- V) e" h
- ;; Edit box entries end up here
( v. o9 F; r$ b8 R( S( w1 W% x L - (defun ltedit_act (ltvalue)
4 E% U) H2 @0 [$ l R8 p - (setq ltvalue (xstrcase ltvalue))
8 ^* z/ U3 m! B4 [0 T% P - (if (or (= ltvalue "BYLAYER")# u' P |8 D+ d, Z
- (= ltvalue "BY LAYER")); F, m: B! ]4 ~4 M) f# z
- (setq ltvalue "BYLAYER"). Z0 x2 _" `5 R- k) \% F
- )1 W& q- k) R1 b6 y
- (if (or (= ltvalue "BYBLOCK")+ c6 H+ ]8 s k4 \: W
- (= ltvalue "BY BLOCK"))
5 \4 O6 A U/ \# O5 Z- T# R) N0 H( P: p - (setq ltvalue "BYBLOCK")* Z9 \& P2 Y. q* y
- )( ^, Q+ D: O; q- c9 K) x, h
- (if (setq lt-idx (getindex ltvalue ltnmlst))9 _+ e6 B% w8 V; ?7 m8 I7 b
- (progn" J! D+ c! W* a
- (set_tile "error" "")5 d0 w' |# \7 C8 A/ c$ |
- (ltlist_act (itoa lt-idx))
" W. ]6 |2 e- H+ y - )
' q" ~, `- ^9 E. R2 Y- I( m - (progn9 S" l$ C8 B8 [; `
- (set_tile "error" "Invalid linetype.")
5 o6 K% x* [: r$ O - (setq lt-idx old-idx)
! r0 \1 ^& o* q1 ]3 m" P+ `0 ^ - ;; (mode_tile "edit_lt" 2)) R6 v8 \1 r J z: k& j
- ;; (mode_tile "edit_lt" 3)
# W* X$ |, ^: c4 j! ~- Z9 |- I2 ~ - )9 k! d0 @# {# @8 o: k
- )
9 w( V9 |& K4 h( T/ C4 [ - )7 ?; m' }+ v$ \& h" S, G1 M4 D/ P
- ;;" m, k7 R' s. ^& a, w1 ^' b
- ;; List selections end up here. Update the list box, edit box, and color, L" I4 Y0 W, ^5 P' i o2 e4 C/ q
- ;; tile.
6 X3 k. @2 e# {* S* o8 [* E0 E - ;;6 w* M- L8 ` ]2 t! P
- (defun ltlist_act (index / dashdata)* y/ \6 N$ W( T/ ]2 j
- (set_tile "error" "")
# [% `0 n) Z+ ^! q0 Z7 F - (setq lt-idx (atoi index))
- B+ t) Z, w+ q - (setq ltname (nth lt-idx ltnmlst))
! w3 K- x6 H' z8 V - (setq dashdata (nth lt-idx mdashlist))
3 Z7 l' r3 h/ e) q0 \" o+ I - (col_tile "show_image" 0 dashdata)4 }1 i& T+ Z! S
- (set_tile "list_lt" (itoa lt-idx))
6 y A; F" P' Y) j - (set_tile "edit_lt" ltname)/ t8 ?* q5 T* i( r6 o' P
- )
S1 G/ `0 N3 |; I2 s3 ^8 w - ;;' B: G% l% W7 w0 n% o
- ;; Reset to original linetype when cancel it selected
% ]+ ]7 j& ?2 R% m/ O# d) {: t - ;;
0 v$ ]; F5 E% E" f# K - (defun reset_lt (). N6 x+ k2 g( w: j' h
- (setq lt-idx old-idx)1 O* N( A h8 w" t; W
- (done_dialog 0)2 N$ K5 q# F8 R! i0 {1 I0 z
- )
7 N1 \4 S( ?8 q1 L, A. d - ;;
- y W) }3 ` i - ;; This function pops a dialogue box consisting of a list box,image tile, and
/ |- N( Y P8 h' A - ;; edit box to allow the user to select or type a layer name. It returns the
% O7 Y9 }9 w5 e - ;; layer name selected. It also has a button to find the status (On, Off,: r, h4 }% w3 \
- ;; Frozen, etc.) of any layer selected.
7 j! j! m0 `$ q( I9 O$ T' u - ;;( K2 o! [0 U3 ^, n- |. m) J) t1 b
- (defun getlayer (/ old-idx layname on off frozth linetype)
9 ?, Y( L6 i/ w# R7 c* x- W: F3 H - ;; Create layer list the first time the layer
8 [6 S! p5 x/ F% P/ L" G( _2 s" J; E - ;; dialogue is called.
2 j' P7 a, U& t1 V, w4 E - (if (not lay-idx)
5 v1 F0 o8 D' b9 z1 F) {+ P - (progn9 m) N: k: M e/ [
- (make_lay_lists)
& @0 J& i( j2 l3 {+ R - (setq lay-idx (getindex elayer laynmlst))
( M1 z% `+ v7 t# t+ t( N& ~ - )
0 R/ n! o8 @5 b, u/ e+ a - )
4 n' v3 J2 _" Z# ~% |
0 ?. N, C- }9 M6 f4 @- (if (= (get_tile "error") "")& k) {# T7 ?5 [3 [+ N1 c" Z
- (progn, O4 ]( E9 E/ C5 g6 b4 g. P& A y- r
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
8 X o! H$ d9 O( I, I - (set_tile "cur_layer" (getvar "clayer"))2 ~# L" b: t/ x) t1 x( k6 y
- (start_list "list_lay")
$ z' P/ d2 s7 p! u - (mapcar 'add_list laynmlst) ; initialize list box' |5 y" U% [: [6 G" j9 f5 @/ @
- (end_list)
% _0 @0 z/ c4 t+ n% E - (setq old-idx lay-idx)9 ^3 _( j }+ A3 T) d
- (laylist_act (itoa lay-idx))
! W+ R. T2 d) u9 a - (action_tile "list_lay" "(laylist_act $value)")5 y7 o5 Z5 `2 g* @) ]( p
- (action_tile "edit_lay" "(layedit_act $value)")
1 K/ T2 W& y6 @ - (action_tile "accept" "(test_ok)")
4 R" u1 G# \$ V - (action_tile "cancel" "(reset_lay)")
5 t+ R0 ]1 A* M: X% [! F - (if (= (start_dialog) 1) ; User pressed OK! h& X0 y, f- {: P( `
- (progn
_8 M$ s. a' f2 E - (set_tile "t_layer" layname)
. f* W8 H1 @2 {& i4 h* u0 F - (setq elayer layname)
; f1 K2 t+ c8 W6 z) {3 r - ;; If layer equals bylayer reset color tile7 Z# P8 C7 Q7 W& i$ b, o
- (if (= ecolor 256)
# N c j% g* K - (col_tile "show_image" (bylayer_col) nil)
; |- Z# l* P& X1 s' P' R - )
6 {/ J* O _+ {6 g- x1 x - layname F# O# K: m, }; [, s
- )
]& M9 m. r% A - elayer3 m7 E1 F0 m" A6 N1 z0 {
- )5 m) o- r5 ], i7 a, T4 d
- )
; {( x2 W3 X4 z8 k b - elayer5 P8 M7 X7 g- H! [$ D/ b1 U
- )
6 p: p8 K8 z/ w' L5 y - )
* _+ z' E" n/ d$ R! f - ;;$ A+ F2 ?0 ]+ q# d
- ;; Edit box selections end up here. Convert layer entry to upper case. If5 h" b+ Q3 O" U8 C( g% D
- ;; layer name is valid, clear error string, call (laylist_act) function.
! A9 L' v, Q% ]5 o4 D8 o; W+ k - ;; Else print error message.
) `' s Y5 F: Q3 q& p; q - ;;
& F7 k$ b3 E# [1 l) q# H - (defun layedit_act (layvalue)
( Q. I0 r5 K6 p* C - (setq layvalue (xstrcase layvalue))
! r) {% U( G+ P - (if (setq lay-idx (getindex layvalue laynmlst)). B/ q! j8 y0 R( X; L8 T
- (progn9 v% ^2 X/ I6 a1 T4 E
- (set_tile "error" "")* k2 b4 f6 k6 C- Q1 G
- (laylist_act (itoa lay-idx))1 A8 V- P9 e- c8 G1 l5 F: y
- )
+ }( d9 e6 G7 v7 l( ?( o& o - (progn+ H. K1 G9 {' c7 e, O! W
- (set_tile "error" "Invalid layer name.")! ~9 P$ {. |% g! O8 f0 s2 P! o$ C
- ;; (mode_tile "edit_lay" 2)3 C' H3 f, U" N
- ;; (mode_tile "edit_lay" 3). _ c3 W3 e8 }0 h
- (setq lay-idx old-idx)6 t# ^8 F2 p% ? D( Z& l
- )8 V8 v4 t4 j7 \) k
- )6 J9 S$ p& r4 k1 B" _0 f, g
- )0 P" L7 x; E: \1 H) F
- ;;
0 W2 @& P* H3 y% e# Z+ L0 @ - ;; List entry selections end up here.+ ]' i( `/ d1 l' @
- ;;) O# u6 v/ k3 I$ G8 z$ Z
- (defun laylist_act (index / layinfo color dashdata)
2 G1 t7 H2 T$ I% B - ;; Update the list box, edit box, and color tile.
0 w' h" F, [- g/ q - (set_tile "error" "")6 e2 W2 e3 K' W Q5 R' r0 L
- (setq lay-idx (atoi index))" ^7 |8 ^! m/ V4 v; r
- (setq layname (nth lay-idx laynmlst))& D( s F8 {. f6 o! t9 g8 r; ~5 M
- (setq layinfo (tblsearch "layer" layname))
0 ^; ?' k$ x5 @ - (setq color (cdr (assoc 62 layinfo)))5 f( [- V( M- ^1 }. T2 g4 d
- (setq color (abs color))
3 z5 e5 _' `: b+ a8 M3 d - (setq colname (colorname color))
+ u# V1 s: B4 I# }# X7 G4 l0 B - (set_tile "list_lay" (itoa lay-idx))
. @5 t6 D/ m& K! [$ O8 m - (set_tile "edit_lay" layname)
% M# g% j- N, _ H: ^0 Y - )/ x f5 y* c$ o% _3 z9 Y& p
- ;;
: u- ?$ c. C$ P# }6 L9 g( L& I - ;; Reset to original layer when cancel is selected.+ n' p' ~+ e9 b/ v1 `
- ;;7 J/ z: y* V: y/ M
- (defun reset_lay ()7 @- O$ E2 l) B& F7 H$ r8 B0 J$ |
- (setq lay-idx old-idx)
& |3 q3 q! ^7 E' q - (done_dialog 0)
g# J5 O# X5 b2 k8 y& W0 k7 y5 v - )
3 d6 E/ i6 E1 ^. j1 A6 i* s$ Y - ;;4 s/ S: d' [) I! }4 s" \
- ;; Checks validity of thickness from edit box.
: v' [8 T M! a2 P. g - (defun getthickness (value)" Y8 G0 Y: |) R) L7 C
- (setq ethickness (verify_d "eb_thickness" value ethickness))
4 c; q9 W; o0 B& v8 X2 q - )- b$ x0 `4 D" T. l( @3 i
- ;;
4 [- g7 K! r7 r& s - ;; Copy of (getthickness) for ltscale. If more, make this function
. K, {; y; q: P" ` - ;; generic.5 c5 N2 H" C9 e% _6 N* X
- (defun getltscale (value)
: B- ]. k7 X% T% x. q - (setq eltscale (verify_d "eb_ltscale" value eltscale))3 h1 N+ p* o& V" O8 n8 W
- ) W4 Y/ H* Q$ r( f9 Y7 R
- ;;" v* v% u3 y' d# q2 H, H
- ;; This function makes a list called laynmlst which consists of all the layer
6 B6 \0 \, S) T% v - ;; names in the drawing. It also creates a list called longlist which8 y) d u m2 Q, l
- ;; consists of strings which contain the layer name, color, linetype, etc.3 o, }/ } _, J l: e/ y! H; O! e: D' f
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
?7 p" v0 @: ?; D - ;; same." i* H {8 h7 o3 C
- ;;
& ?- W: C! O* v( D: J - (defun make_lay_lists (/ layname sortlist name templist layer_number). ?/ e6 G: P. U! c: I9 u
- (setq sortlist nil)
" L; K7 a1 P7 V, G/ J$ k; J - (setq templist (tblnext "LAYER" T))
1 n7 O5 }6 o( {! y j1 I5 X - (setq layer_number 1)
7 p! K% f$ ^! G) W4 N - (while templist% e, B; G, J; O! ]9 A
- ;; No xref dependent layers, please.' I* p3 C7 X d# d! ?3 X2 |5 y
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16): b( i& X- \: G$ I; f: a
- (progn
) D! ^5 l& c) G W, o4 H - (setq name (cdr (assoc 2 templist)))# {. F- e5 c' _* Y+ w F# ~! M, j) o
- (setq sortlist (cons name sortlist))
# z! I6 Z$ [& ~% x4 E! F9 y* d - )1 I( B+ r( s6 t5 ^% x2 n ]3 B
- )
* E% S; n* T: d- k8 e. H - ; Get the next layer.
' Q( e# f4 y% o! b0 l$ g0 L - (setq templist (tblnext "LAYER"))
# T+ D2 G" @- f v6 M- o5 M' R - ;; Not dead message...
4 D* R) e5 V$ k1 N# ]! v0 @ - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
' P# d6 F5 P0 C - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))$ s. Y) X4 X6 k, s- G+ @, B
- )
: o! P/ t/ l n" u0 ~3 \ - (setq layer_number (1+ layer_number))
* O% g( B' m2 X - ). I" L# G3 I5 H0 p& H$ f: h
- (set_tile "error" "")
9 H5 m/ Q) M1 X, H# `- ^- O - (if (>= (getvar "maxsort") (length sortlist))
! [! Z2 {2 J: s9 z7 J - (progn
$ M' i3 K% w2 v! x% _ - (if (> layer_number 50)
~; E4 m- t6 K3 G6 E! m - (set_tile "error" "Sorting...")" y9 O2 c/ @ x4 }
- )
k) f, K+ \+ V; ]% j. t2 | - (setq sortlist (acad_strlsort sortlist))( K; @8 n. s9 B3 f
- )
3 h" Q& i' ~( C1 K1 g" v - (setq sortlist (reverse sortlist))
$ m; V) A% p6 V8 w - )' ~& u2 e. M4 v Y. e
- (set_tile "error" "")
a, k- M5 I! P8 t+ B) | - (setq laynmlst sortlist)
! n% J5 @: u! ~ - )
6 F0 Y4 K3 Z' ~9 G' x: |( L' O3 S - ;;. j; z: ^, L( Y/ [ u
- ;; This function makes 2 list - ltnmlst & mdashlist., j8 j9 J0 I& @: I1 z
- ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist4 Q+ i. m" i6 }* q: |- [
- ;; is list consisting of lists which define the linetype pattern - numbers% |- M r: a5 x4 P+ ]" Q
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list# R$ g# O0 ?2 O, | v- w
- ;; corresponds to the order of names in ltnmlst.0 o2 V3 A$ R7 I& p0 ?0 r
- ;;
: I) r1 c, H+ D - (defun make_lt_lists (/ ltlist ltname)
1 G, a8 x) |% ~4 \" Q. f - (setq mdashlist nil)( z. ?: m4 u6 K
- (setq sortlist nil)
/ i9 o0 n/ S, |" ~9 A - (setq ltype_number 1)
1 v, a6 Q$ M( i+ n2 B - (setq ltlist (tblnext "LTYPE" T))4 l8 Y: N6 ?4 U- O# M3 S
- ;;(setq ltname (cdr (assoc 2 ltlist))), m1 I1 U+ }) y3 ?
- ;;(setq ltnmlst (list ltname))8 o$ V! O5 X8 R; V9 R
- (while ltlist
- f6 P# p6 X, z8 ~# i6 n - ;; No xref dependent linetypes, please.
0 `, x9 O: h' t- Q - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)8 p9 W: b/ g. b' P
- (progn+ S' T: f1 Q. e/ z- m* r" ^
- (setq ltname (cdr (assoc 2 ltlist)))
1 U( P) @* P3 z' a7 } - (setq sortlist (cons ltname sortlist))
8 a( U* n2 b6 ? - )
- B5 M& H7 {& `. Z9 |+ C% R/ ~" m - )" W+ J6 t, O: [( Z6 T4 e3 I4 S
- ;; Get the next linetype.
9 w* e' m- ]$ L2 L, ?) \+ y6 A - (setq ltlist (tblnext "LTYPE"))
: E% T6 o& O; K9 D3 y - # u2 `: f3 C6 G e8 e
- ;; Not dead message...
0 G {7 |) v& e4 J2 m( S - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
/ b9 n% ?: H6 r0 m: s- D4 ] - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
+ c o; l- m5 a! [& _ - ): T8 r4 j4 e7 I9 t, W! E1 D+ ~' `8 ]
- (setq ltype_number (1+ ltype_number))
- {, w+ @2 G& z( v: m' {
, i! H+ ~. q. r$ e0 B% W* G- )
4 c. f) _1 c2 ?9 m - E! N1 E: a3 @) H
- ;; Remove Collecting message.9 s: l6 w( E' z7 q& o8 m
- (set_tile "error" "")* O* C0 ]1 W9 y/ O
$ x% u1 K& X* M3 W- ;; Sort based on maxsort.0 e* P" n. S2 N0 L
- (if (>= (getvar "maxsort") (length sortlist))
?) I, k: e. P" a# {: g' F - (progn
) y* b8 i, d( m' l1 l! q - (if (> ltype_number 50)
+ V( s4 c8 p' F" C/ r0 N2 T) D0 m - (set_tile "error" "Sorting...")* J2 G# e; [& ^, p9 T, q
- )+ x) q' q; f! n$ N3 z2 _2 x, E, @
- (setq sortlist (acad_strlsort sortlist))0 D0 q/ s! X9 T7 ~
- )0 }- _' j8 W. q) {1 B* P
- (setq sortlist (reverse sortlist))" m* Y# u) P: }! w3 w8 @' B0 K
- )
1 O* Q0 N$ y/ ]! h - (set_tile "error" "")
" n( q* A; T, f/ U) _ - (setq ltnmlst sortlist)( d/ g/ t* ^* r, U8 Z
8 X7 {2 f" V5 N& a$ g, g- (foreach ltname ltnmlst
1 \7 S* A* G8 q - (setq ltlist (tblsearch "LTYPE" ltname))) Q. {/ E9 N3 e7 n7 l
- (if (= ltname "CONTINUOUS")4 s( r3 f# `! Z, u. |
- (setq mdashlist (append mdashlist (list "CONT")))
) J1 F$ @2 {, G9 d0 t r1 y - (setq mdashlist, H) c Y3 e' i; n
- (append mdashlist (list (add_mdash ltlist)))& G& T) O+ M! g# v* ?
- )! k+ ~: ^0 _; G; P) {- d2 g
- )
7 b% e0 T2 i* o, q# Y1 X! H1 S - )
! M2 @9 E& ^. c- t$ t+ W" ] - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
; z' e( p! a# F& {0 G# T, y G - (setq mdashlist (cons nil mdashlist))9 {8 X( O: N2 B" I7 z+ K1 |: Q
- (setq ltnmlst (cons "BYLAYER" ltnmlst))$ \: z& M5 y& D) i7 R T! {) K
- (setq mdashlist (cons nil mdashlist))
# |" X" ~; P% ]" k* R" d - )2 W b" H4 s0 C
- ;;/ m T8 h W5 H
- ;; Get all the group code 49 values for a linetype and put them in a list7 J$ Z0 o3 d* c& d( G9 M6 C
- ;; (pen-up, pen-down info).# c$ ?" u1 k9 k7 n0 f
- ;;! y9 Z% }8 M6 L* h2 h2 K G5 ?
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
# v- C: R9 N3 j' r - (setq dashlist nil)
% _5 B. e7 A$ z4 j - (while (setq assoclist (car ltlist1))2 _: Y8 u2 _ G8 ]+ n" F
- (if (= (car assoclist) 49)4 R% i- `# l- {+ C; L
- (progn. B! {# `* J+ u0 h! _8 D' K
- (setq dashsize (cdr assoclist))6 ^2 T7 s( l/ X6 I5 H
- (setq dashlist (cons dashsize dashlist))" i5 g! ]$ b1 L: o- G: m) l- z
- )
+ m3 u% s# I1 r( c4 P- N - ): ?( Y$ f% p" c+ P3 d R9 P
- (setq ltlist1 (cdr ltlist1))
' i k3 i) H9 B# D - )
, ~. R: z S6 ]* A - (setq dashlist (reverse dashlist))
$ ^8 S' D! |6 m* B - ); `0 w/ f- V) G' d; z1 O/ u! ^/ g0 e
- ;;
5 z7 z8 d. B# V+ g, C! l - ;; Color a tile, draw linetype, and draw a border around it
6 i5 c6 G8 o% N2 [ a! J - ;;0 x0 K2 K& \& K. w7 I6 o# C
- (defun col_tile (tile color patlist / x y)7 ^7 }2 q( Y- [" X9 n0 I
- (setq x (dimx_tile tile))1 z7 P8 p3 w/ r1 ]
- (setq y (dimy_tile tile))7 h& K! C5 Q' j; [' X- [
- (start_image tile)0 P+ u$ Y: Z8 B# G) ?
- (fill_image 0 0 x y color)
% e: H# Z( b. M" {- a - (if (= color 7)3 p% }! N% Q9 O
- (progn
% W$ U S" h9 ^8 A - (if patlist (drawpattern x (/ y 2) patlist 0))" |, u' ]! e4 X3 \
- (tile_rect 0 0 x y 0)
6 }( M( Y/ l- F8 M, H4 |- U# y - )
7 u% i$ c4 k, v4 k6 g - (progn' j( t$ i C. t
- (if patlist (drawpattern x (/ y 2) patlist 7))
1 t2 v5 \7 y' w4 t - (tile_rect 0 0 x y 7)* g) N) F5 ~- e. U$ {) t, D
- )3 l9 N" F7 [' ~0 _6 @
- )7 S4 |7 [$ M) R7 m# f- a5 \
- (end_image)9 C: q' N" X- z( x& j
- )* x# F' `( u# k+ z
- ;;
2 t3 M1 ?4 Z% W C - ;; Draw a border around a tile
' m# u0 f3 M# n+ E$ F - ;;' g' X S% X/ T/ J
- (defun tile_rect (x1 y1 x2 y2 color)* ]. m; X. C( ]( N! W
- (setq x2 (- x2 1))
) a. D0 |- q: m3 g+ ] - (setq y2 (- y2 1))
- W) ]+ B) \! N5 n6 Q - (vector_image x1 y1 x2 y1 color)
5 b0 A7 n4 V! m @( Q, P4 K8 Q - (vector_image x2 y1 x2 y2 color)
7 u) n) ^' c) a - (vector_image x2 y2 x1 y2 color)& \1 W' S3 @& h+ t
- (vector_image x1 y2 x1 y1 color)
8 b7 }( U @7 e1 M: T - )+ e9 @2 ^- N3 f' }; f
- ;;! v; q7 l/ X2 l* D% W, r2 J3 |4 |
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image- b. u, e7 ]# f4 E+ c" F
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
( ]- q4 W& @4 u1 e1 V9 \: O7 J - ;; list of numbers that define the linetype, and color is the color of the
7 F- ]0 D5 Q+ x* ]; ]5 Y - ;; tile.) ?% _* Q' N; U: C* V0 G* I
- ;;+ C* G% w) \# M# D
- (defun drawpattern (boxlength y2 pattern color / x1 x23 T( C. F. V9 S$ ^& Q, n" P0 a+ v
- patlist dash)5 P1 c- o! ~/ n' k
- (setq x1 0 x2 0)& I6 c! ?, W Q4 M; K$ s- N
- (setq patlist pattern), M9 g" u( ^* t- m+ G
- (setq fx 30)
6 g- |! o }+ Q" o- c1 V - (if (= patlist "CONT")
' y% |1 z/ p- n: s6 @3 X" ]& [; P' V - (progn (setq dash boxlength)' @) S! r, x2 r
- (vi). m: B! h& [. O% ` L' \
- (setq x1 boxlength)
6 ?- Z" ~( \ ` - )
6 y6 z* D; V4 o - (foreach dash patlist. n- }' {& N; q( m+ b
- (if (> (abs dash) 2.5)
% e" l2 a2 m) { h4 a - (setq fx 2)5 w( o3 Q1 F8 r. }; \; L
- )
0 C2 T) [, U( o7 Q; e - )1 y( c6 i# Q. V* r4 g4 ?
- ). B3 J z5 o$ n& R1 r( Q
- (while (< x1 boxlength)- G2 i3 p: G' c5 q
- (if (setq dash (car patlist))& ~: U! j0 l. ?6 |8 J
- (progn" L I5 Z; y) |! a' r9 K/ B5 F
- (setq dash (fix (* fx dash)))
) w7 P0 m" e0 `) Q; Y+ I - (cond
; N1 P1 n' {2 T# h - ((= dash 0) (setq dash 1) (vi))
: p0 v3 `: ^6 i( d) b/ i! R. L6 X - ((> dash 0) (vi))
( U0 b& g5 n- @2 b: e. Z% j3 @$ Q$ v - (T+ _$ O$ C0 ?% ^ n
- (if (< (abs dash) 2)4 m% a0 Y, y7 ~) D0 R8 E/ u1 t3 D5 q- V
- (setq dash 2)
S. ^* C' v |& }# ]2 A - ); ~7 T* t I4 G6 _4 E) g( x: p
- (setq x2 (+ x2 (abs dash))), N6 s8 W2 G2 Y" a2 F9 `
- )
8 ^2 N$ u! _$ j, v - )+ p- v: \* \6 g+ ? r, G" k) r
- (setq patlist (cdr patlist))- x, u4 ~& O* E5 U4 _* i: V
- (setq x1 x2). u( O7 r+ ~& `; j0 m$ a
- )
; {) W, C* g; Q2 t6 h- j; m3 ^7 Q - (setq patlist pattern)2 z6 E$ Y: D. E
- )
4 w' @5 m$ S% u6 Y( H( i% N - )
0 D* Q: r3 t7 m- k4 H - )
3 T2 M3 `! b' r: B x' }3 E) d - ;;. ^8 I! o" k7 j2 F7 [' D2 @. H
- ;; Determain state of xclip# A1 z1 \# ^+ y9 V, d4 A H0 |8 a
- ;; Returns the group 71 value of the spacial filter dictionary.5 R' ~3 g& @4 V5 D4 R
- ;; If the entity doesn't have a spacial filter dictionary, this
9 T" U# f* [/ r - ;; returns 0. If it does it will return 0 or 1 depending on the
" n( K2 Z" k: v - ;; current setting of the state of the clipping visibility./ m1 h5 Z6 b0 r0 q" W
- ;;. R# N2 c$ c1 o$ q( S
- (defun xclipon(elist)
* j- ^2 b9 [. S# v - (setq hasclip T)
9 E% C, \8 `) x7 h* h - (if (/= (assoc 360 elist) nil)
$ C6 [$ J# v, C# R$ X - (progn% Z! d ^9 \+ s+ L% x7 G/ \1 S7 f2 b
- (setq tmp (entget(cdr(assoc 360 elist))))" p! ^+ p0 O. a$ s; `
- (if (/= nil (assoc 360 tmp))
7 D! D$ @) c6 y - (progn; X" j- O2 U. y2 O5 ~' G8 O% E
- (setq tmp (entget(cdr(assoc 360 tmp))))# `. [8 m3 m$ U/ z0 x
- (if (/= nil (assoc 360 tmp))2 E* C; C% D2 I& A8 }) H5 {3 T
- (progn
) `, @6 U& z2 T$ T- l" g0 O - (setq tmp (entget(cdr(assoc 360 tmp))))# r; q4 G9 p9 F( ^8 W0 p
- (if (/= nil (assoc 71 tmp))
1 S- `; D: j* {$ Z# p1 ^" ` - (cdr(assoc 71 tmp)); @2 M# h. c4 L2 M5 A
- (progn
: g8 y. f, Q( }1 o: T, P3 z - (setq hasclip nil)4 ?; g0 @% T7 k2 s
- (eval 0)% ^1 C7 j8 t% k9 o3 u' N4 U
- )
& Z0 x0 `1 A, u& `0 a - )
( l3 V" _/ j, j- h. B: E3 q- a - )5 N/ q4 {& g2 q) ?; J
- (progn
, w' L* H' T2 `( z( O7 A' l - (setq hasclip nil)) H4 o$ q$ C; z9 Z
- (eval 0)
* s- F8 U1 X. O2 c* E7 W9 m - )% q& N( p( j6 H4 I0 X( \
- )
* |, X2 a8 D8 O% F9 O6 B - )
# t \- R, V3 _$ y/ i# H" x0 Y c5 } - (progn ; C5 E+ h7 ]2 ^0 V* l! S
- (setq hasclip nil). K% ]2 ?2 q8 S1 u0 Z+ p
- (eval 0)
5 p+ W+ ?8 W( I- ]$ p. z+ @3 k - )
% {4 x4 P: L5 _0 p7 ^ - )6 a8 {; a8 c: H: `* U; L
- ) j# V* p1 V$ V$ G/ T. O, T
- (progn
5 O. a3 B' L( U# \1 d, |% o. F - (setq hasclip nil)
- d7 U9 i, H- H# S7 t0 ~+ ` - (eval 0)
2 Z6 H7 M0 N9 {2 [5 @ - )
$ U: Y- w% ~5 f: W0 O* g - )1 J" X @1 i( G7 Y' ]
- ): S$ h: e ]* x6 \2 M. r* D
- ;;
7 D" x: x) _+ Y6 `! D+ x$ H - ;; Draw a dash or dot in image tile
7 [3 f! [6 N4 {7 V/ `0 u - ;;
% Z5 J8 e/ |: N( H( r1 \ - (defun vi ()
# I, ~9 f$ \: k$ Y, P% k1 N9 W9 V! ] - (setq x2 (+ x2 dash))
$ S$ q" A: {# T; Y. J9 j. c* `6 s - (vector_image x1 y2 x2 y2 color)5 j7 z/ g4 ^/ P
- )! ], a3 Z7 x6 W8 c' Y
- ;;) b7 k/ Z) a. g6 [
- ;; If an item is a member of the list, then return its index number, else, m# x. ^4 A1 P2 I: ]4 s" Z8 B
- ;; return nil.
: e4 _2 r9 r/ Y9 p9 N5 [, X: F4 R - ;;" W6 |, S: G" R7 Q
- (defun getindex (item itemlist / m n)3 M6 X( E" Y8 z* B1 b$ m
- (setq n (length itemlist))
. A5 c6 [! G6 P8 H+ H0 ^9 P3 ` - (if (> (setq m (length (member item itemlist))) 0)- T- @& X) ~9 G! b: H
- (- n m)
6 c6 |9 ~8 C* o \3 B8 a! f1 i8 s - nil( I" P: L- }! |6 ~: H
- )
4 k7 n0 _' C* A. F- o: _ - )
6 k3 i; `& m* }1 B1 F - ;;
9 U( C, L- _4 v l* c( Z& D - ;; This function is called if the linetype is set "BYLAYER". It finds the
& M6 a# X& M( r6 B - ;; ltype of the layer so it can be displayed beside the linetype button.
/ k7 m J$ D5 x7 w! Q/ @ - ;;5 r! d& K. J6 j( M+ \% q& G- _
- (defun bylayer_lt (/ layname layinfo ltype)
: a1 }0 n6 k, w - (if lay-idx0 t8 J1 C* k" X& H
- (progn# S% w" k9 @- M, P M' [) ^
- (setq layname (nth lay-idx laynmlst))
( m: E2 R5 g6 v. _, @8 D4 V2 P1 b - (setq layinfo (tblsearch "layer" layname))
* ]/ `. d) l' Y" E$ A - (setq ltype (cdr (assoc 6 layinfo)))8 d% i1 _1 z( u8 H
- "BYLAYER"& N. ] G! ]: H; h6 {
- )
9 p, Q% v' d0 n, p* ?, G, [% g - "BYLAYER"
z5 z7 x' H. k9 b: t3 x - )4 T& g0 r' H" ^8 G7 K5 S
- )
" ^% h6 F' D! `8 x1 X9 X0 K2 M1 T: D - ;;3 k# D. O; v1 @( |' m, I
- ;; This function is called if the color is set "BYLAYER". It finds the color
K9 i( U( ~, V- W) b" S - ;; of the layer so it can be displayed beside the color button.
2 [) Q7 ^1 J) ~5 a [% J5 v - ;;6 Z7 i; T9 w: I: n
- (defun bylayer_col (/ layname layinfo color)
6 C, O/ }! a3 x! S. c5 Q1 l9 _ - (setq layinfo (tblsearch "layer" elayer))- i5 E, j/ v- `& o% z! i# m
- (setq color (abs (cdr (assoc 62 layinfo))))! T5 k) S6 z8 Q/ p, ^. V! S! T; ^
- )" N1 c+ ^, u- Y6 N7 _* `
- ;;
& d3 ?& S. ]; I% c3 w4 Q - ;; Used to set the color name in layer subdialogue.$ w+ |7 a) ~9 k4 b7 ~, J
- ;;
! s" {; S2 L" e8 v- ` - (defun colorname (colnum / cn)6 `+ Q S4 {$ N& d; {& q$ s& j
- (setq cn (abs colnum))8 O. `; q4 U- c/ R" W* r4 Q
- (cond ((= cn 1) "red")
& l$ U- h% s5 n0 } } - ((= cn 2) "yellow")
7 e/ L) k4 N J3 c9 ?* f2 f3 I/ K! y Q - ((= cn 3) "green"): L8 I$ G! S7 p: Y) Q+ u
- ((= cn 4) "cyan"); ?6 S- s( I2 B. C% ?
- ((= cn 5) "blue")
: m: G; z& C. C( ` - ((= cn 6) "magenta")! z6 P: e1 k& Y3 r7 ]$ _( n
- ((= cn 7) "white")
u) T8 J" z$ u1 [: F - (T (itoa cn))
7 Q f! x* ^ J% x' \, Z+ w8 { - )# {+ E: Y5 [/ p0 T0 g% k! ^2 ~1 y
- )
D! w# y9 {9 X Y4 t7 ?5 v - ;;
; d# Q% F! [: c - ;; If their is no error message, then close the dialogue.$ a+ @4 @8 R c; Q( K- }7 u
- ;;4 S) d( L. Y6 v1 N7 W# k
- (defun dismiss_dialog (action)4 N; ]1 q0 G1 v- U' p3 B u
- (if (= action 0)
s5 A. O6 G9 w! w, [- v - (done_dialog 0): m; J0 ]7 `2 @2 X* v
- (if (= (get_tile "error") "")! l& r R1 g2 h% C6 z9 i
- (done_dialog action), L# c) U- P0 z# {
- )
: u' `) K. \" D+ ?( l+ r - )4 g' V: }' m6 ?- D* q
- )- y1 U) O4 }; |) v* z
1 w: T7 x/ c* a% [$ x, ~ g4 n- (defun test_ok ()( C" |% B- x% ]
- (if (= (get_tile "error") "") x/ G; m( A1 T9 u$ x
- (done_dialog 1)
! q2 E; V8 F) [% i: q" m - )7 _; }5 f4 |' o8 F
- )3 @9 v3 O9 r& z5 m
. P- e: I' m% a% w- (defun cancel ()
# i B+ o! t9 r* Z - (done_dialog 0)
l& i& {* B n/ C- E( A+ t, f! g7 x - )
: {( ~0 y3 d* X5 s0 i - + L5 U" L; }: s" L" j
- ;;; =======================================================================4 w& o2 T8 j& o/ I
- ;;; SETUP layer and linetype lists for application, and initialize all
' Z* r" m8 o8 x& J8 o3 \ - ;;; program variables.* K0 j1 G# F3 @: I$ \6 Q
! |2 E0 E O6 v- (setq elist (entget ename)
+ V% F1 a; \9 u - old-elist elist
$ W! b+ x1 A$ J7 K; \ i - modlist elist8 u+ u3 R3 ^/ X5 U; y
- etype (strcase (cdr (assoc 0 elist)))
# h; }7 K+ r Z& A# U8 d - ecolor (cdr (assoc 62 elist))
7 p% [# }$ h4 _& H9 A0 X - elayer (cdr (assoc 8 elist))
4 V6 C' H8 X7 I( @$ t3 A - eltscale (cdr (assoc 48 elist)); _0 U# f/ _1 N% u+ A# z$ x
- ethickness (cdr (assoc 39 elist))
- [4 R0 L4 j$ c - eltype (cdr (assoc 6 elist))
/ x# }# S8 r2 n/ p; \4 o Z, b - )
- G; r" J* e! d( B5 |/ V - (if (= (assoc 210 elist) nil)+ i* \9 Q$ M q1 ~. e0 h2 J
- (setq extru (list 0.0 0.0 1.0))
: e8 K0 ~/ _2 l& d& O2 h6 E! `. U - (setq extru (cdr (assoc 210 elist)))
6 b& v1 l0 s! x - )
" }: L4 v5 v B. Q
% {* B& e9 S' t" j v: x( Y; T- (if (not ecolor) (setq ecolor 256))
% {& `* v4 L5 O; Z$ H# X5 P - (if (not eltype) (setq eltype "BYLAYER"))& p# Y- R9 O# N4 ]! ]6 q
- (if (not ethickness) (setq ethickness 0))+ n& `* ? i! `9 N* Q9 e
- (if (not eltscale) (setq eltscale 1)) T, k+ @3 L1 G. w
- ) ; end ddmodify_init
# s/ N' f4 K. v! j - ' P! d4 F0 Y( B }
- ;;; --------------------------------------------------------------------------
% D; {1 a9 r- v - ;;; Function: DDMODIFY_SELECT3 c, G* R# X/ Q$ f$ p/ V
- ;;;' }* G, e) b1 f
- ;;; Object aquisition function.5 l5 b( P4 V5 ]( r; q k, J5 r5 ]! o
- ;;;
9 }) f/ G+ G, }7 V$ ?% j! G - ;;; (ddmodify_select)
0 N% H5 m! @/ [/ }$ Y - ;;;
/ C+ x) i. |; I$ m0 x6 \ - ;;; Obtains object to be modified, in one of three ways:. H! T F. l9 \1 f
- ;;;
8 ]* n) e" X# d1 r( _! S - ;;; 1 - Autoselected.
- U5 M2 W% `$ a- j0 a - ;;; 2 - Prompted for.1 W5 r& }7 O0 s; A' y, m# O
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
3 V2 L# N% R) V& G+ v! y4 I - ;;;& y8 W6 F. v3 R
- ;;; The (ddmodify_select) function also sets the value of the8 f# J) q2 e9 @$ h% S. j- m$ K
- ;;; global symbol AI_SELTYPE to one of the above three values to
) X) r. ~, j. i5 M& b- |* `" [& ^ - ;;; indicate the method thru which the object was aquired.7 g% Q0 g/ c+ ^ U7 h5 C# p( ^
- ;;;
/ l$ r1 {* V6 x8 F - ;;; This value can be useful to applications that want to RESTORE
! e- z( n( B9 j: z0 @' I - ;;; an object that was autoselected to its previous selected state. ]$ e( C# M) r9 A+ k9 e. I i
- ;;; when they terminate, although there doesn't appear to be any
1 }7 @& p- e. S/ \- q - ;;; way to do this right now.
) ]0 x6 r4 w& ?
/ X% `# U: Q- S- (defun ddmodify_select ()
* u9 l' L; r" O - (cond
0 ?4 E& Q+ i2 Y. W: @ - ( ename ; (ddmodify) was called
0 h8 F+ g6 N' d. D4 e - (cond ; with an <ename> argument
M f" D& P2 V s" x - ( (entget ename) ; If object is non-deleted
4 N+ J/ e$ p! S - (setq ai_seltype 3) ; then return its ename.- Q& X( q& j' g4 a& t1 t
- (ai_return ename))))
2 o# Q' n1 ]: Q1 @( X# M - ; C* @* h2 V: Z5 D% a
- ;; return auto-selected , see ai_utils.lsp
2 A" `% p: R0 `3 H - ( (ai_autossget1 "\nSelect one object to modify: "))
: r8 f# ?7 U L8 s1 o! m$ S - e/ ~% `' l% x1 _# e; L: S* _ I% O; u
- (t (princ "\nNothing selected.")
! j2 Y/ ?2 Z9 z8 n1 m! {$ p: H - (ai_return nil)); R. x* B9 _5 y1 g" l1 o( h4 ]( R B
- )# r* F, b t& i! d+ G- ^
- )
! D8 f* l; m4 @( [ - - _3 e) N5 l5 ^/ k4 K; j1 A! G( \4 V) T, }3 k
- ;;; ============= Command line interface function =======================
- E: ^$ m B4 y6 P. Q' e0 D. ~ - $ ^' R7 t: t/ ~ ?+ l
- (defun C:MMO ()
5 N; d/ a4 M6 n' a! d Q+ M! J - (ddmodify nil)$ A7 l5 Q/ j* T( U$ b
- (princ)
$ j) ~5 _$ G% e3 W. f; n - )' }/ q' m3 n4 a
# G) C3 X$ U7 N3 L- ;;; ================== (ddmodify) - Main program ========================
$ G, @; w) g: k1 } - ;;;
, c; h) d9 n4 V5 F - ;;; (ddmodify <ename> ), A7 W5 ]& m7 G' Q
- ;;;
0 q9 y# ^2 `/ _) Y* M& p - ;;; Main program function, callable as a subroutine.
! o. U6 B1 T" W - ;;;1 C% P# G( \6 w* E& @
- ;;; <ename> = object name of the object to modify. t- f% p% C9 }( x$ M0 g& q
- ;;;' `; c5 D4 U: U% L; k
- ;;; If <ename> is nil, then user is prompted to select7 b W) D' v, X) I
- ;;; the object interactively.) z, A- \, b; R6 B9 E" i1 G
- ;;;
: ^2 L; S; v V( F0 @ - ;;; Before (ddmodify) can be called as a subroutine, it must
2 _' |3 k* ^ I8 L$ v& S - ;;; be loaded first. It is up to the calling application to
# }! a# `4 y f# Z0 V7 d8 Q% f% P5 H - ;;; first determine this, and load it if necessary.7 k% w7 l$ Q: V% ~
: s0 s. q3 G1 _' W' b- + H+ i! f5 d2 n; }' c. n4 \3 c: @! K" _
- (defun ddmodify (ename /, n3 V0 g! E% b* x" J- k5 m
- 2ndpt ell_calc_area move_pt1 templist: z! a3 K7 W& A) C% `
- add_mdash ell_tile n tempmod( _0 Q/ d) h# y7 O
- alipt eltscale name tempst_ang4 q( P( j& j2 O2 n9 I+ _! Q5 a/ g
- ang eltype newpoint test_ok
7 ]: w* X; Q+ @( P2 \ - arc_calc emod next text
, t$ W- z6 d: c6 j - arclen end_ang next_vertex th-value
9 z; R6 U2 \! d% j# h% F - assoclist endpt obl tile
0 ^6 [# D7 Q, R; ^2 ` - atprompt errchk off tile_rect
" g( e4 \4 M2 p) Y - attag ethickness old_majrad tilemode8 R, w) ^$ s' c: p. W" ^
- attprompt etype old-closed totang! e6 u* U0 w$ v5 c2 {
- bit extru old-closedm tstyle
6 o) N" N) y0 U9 G0 [ - bit1 fchk old-closedn u
6 h( _) [% H* V: a: R- P6 U" X% S - bit-10 first-10-rec old-elist undo_init* R) M) j' {8 D1 V& e* O8 D" u2 e3 ^
- bit-11 first-10-time olderr upsd9 `2 `9 M" T! T9 z3 |
- bit2 first-11-rec old-fit v) k& O8 Y- V5 J' M$ H& p* B! h$ B
- bit3 first-11-time old-idx va
$ K* _& q2 C7 a6 d9 _( M - bit4 fit oldlist value) B' Q" k9 J8 K# |
- bit70 frozth old-spltype ver_4
& _& E, k4 m/ ^- W' x( U# { - bit-70 f-vis old-u ver_ang1
. h9 E7 ?/ j6 x% v6 R. _ - bit75 fx old-v ver_ang2
" k, j# H. u) B" E; y - bk-up get_color on ver_col9 I4 `+ @! F' c, N H
- bkwd getcolor onoff ver_colsp
0 c; C, o6 I: r5 a+ R - boxlength getindex on-off ver_eangle" Q- t4 {, f% Y& y f7 {9 [7 z
- bylayer_col getlayer patlist ver_hght) M5 @. c& R) s& f
- bylayer_lt getltype pattern ver_majrad( [5 v4 R Q5 ^) K8 b Y
- calc getthickness pltype ver_obl
* }1 |' U3 n3 p4 D1 F/ J - cancel globals polytype ver_pt1, M1 A8 z+ Y1 f& p
- cir_calc ha pre ver_pt2
: u: O# F0 d' Q- Z1 c2 e. J - closed ha-prev proplist ver_pt3
7 u) @5 Q) e6 t& A& F7 F3 h5 } - closedm help_entry pt ver_pt4
3 L/ J4 t/ v9 p2 n3 Y1 g0 Y$ L2 _ - closedn hght pt1 ver_rad
2 f+ ]; P' j4 g' I5 \% L - cmd icvp pt1_eq_pt2 ver_rot
e3 K" j& s7 g% q8 J - cn image_add_vector pt2 ver_row0 |$ a) m% i$ a, T
- cname image_clean_variables pt3 ver_rowsp
1 W; H3 `" L2 {! h. ~4 @- q: s - cntl-pt-indicator image_cross_product pt4 ver_tag
) ^) V8 I) J( s+ ]: J; W+ n' N - code_71 image_disp_opt ptype ver_u
) G/ z9 Z- v y2 v7 o+ Q1 X - col_tile image_dot_product radius ver_v
9 T f6 Q$ l4 ?$ { - col-idx image_normalize_vector rational_spl_flag ver_wid
( k7 o V) N) X - colname image_rotate_vector reset ver_x1) h# A, l9 U! [* Y
- colnmlst image_scale reset_flag ver_x2" Y7 \3 [6 A, z$ A& J" w* }# B
- colnolst image_scale_vector reset_lay ver_x3
8 z' [% h: }+ R! {. [ - colnum image_update reset_lt ver_x4
2 o! e& T& g1 r9 _, u8 y7 T - color index reset_uv ver_xline_pt1: B5 s6 z2 m" |6 g
- colorname inv rot ver_xline_pt2
7 F B+ ~5 c+ v" j; Q @( H - colorno item rows ver_xline_x13 Q) C/ Z2 r6 R( i
- col-sp item1 row-sp ver_xline_x20 d& ?, N; n8 S5 u3 z- Q+ Z
- columns item2 rrat ver_xline_y1; J2 K1 ]: k& P( u5 C+ b/ a$ K
- con itemlist s ver_xline_y2$ U+ C% \8 o* W3 k$ ^) w
- coord jlist set_action_tiles ver_xline_z1
8 {% j9 ^7 Q# E% ?- p - ctr jlist_act set_just_idx ver_xline_z2! C9 i8 C5 I6 ?0 Z' f) L: \$ B
- cur-10-rec just-idx set_tile_bk-up ver_xscl" K7 U. _; |" m. L1 p1 C
- cur-11-rec layedit_act set_tile_cntl_pt ver_y1$ _( r. O5 z( l! K, S# ~8 T
- cvpname lay-idx set_tile_data_pt ver_y2
5 ~7 m6 i0 n2 u0 d0 ?( f* M - dash layinfo set_tile_dirv ver_y3
. O4 R1 C2 _" s4 M3 v8 S. V, X9 [ - dashdata laylist set_tile_edges ver_y4
|0 q0 |# \1 H" Q8 K - dashlist laylist_act set_tile_endang ver_yscl
! q8 q* V3 P4 e; ` - dashsize layname set_tile_hght ver_z1
( i" I# ]2 h! _) ^1 v6 h - data-pt-indicator laynmlst set_tile_icvp ver_z2
/ M& @4 }% Q# w) z+ r! s8 u1 K - dcl_id layvalue set_tile_just ver_z3
& c, e" R' }! B* K- y - dd3dface line_calc set_tile_obl ver_zscl3 Q6 B d- T' \( K/ d! {5 Y
- dd3dsolid linetype set_tile_prompt verify_a
6 S! Z* C/ Y6 \ - ddarc list1 set_tile_props verify_d
3 N4 e1 z0 l' Q) q! i$ Q - ddblock longlist set_tile_pt1 verify_i/ w8 u; v' W% ?6 N. P; F
- ddbody ltabstr set_tile_pt2 verify_xline
+ c6 Y; K4 U2 w8 a - ddcircle ltedit_act set_tile_pt3 vfy
2 A; I! p+ H7 D6 a0 f - ddellipse ltidx set_tile_pt4 vi" L. o* X% l9 R7 N
- ddgetprompt lt-idx set_tile_rad vlist
Y) S. d# P( x - ddgettext ltlist set_tile_rc vname
9 ]2 X, z ?. H& g& y4 h5 Q& n - ddimage ltlist_act set_tile_rot vpf9 g. l L( G9 ^, I0 r6 w
- ddimen ltlist1 set_tile_scale vpid& F( U( d& ?5 I! N
- ddleader ltname set_tile_spline_props vpldata1 ?5 w6 |) f; @. N6 M7 g2 u
- ddline ltnmlst set_tile_stang vpn
; \) J/ m6 R& ]$ h - ddlist ltvalue set_tile_style vpt
9 C- @% N- \4 \1 M( A6 S - ddmline ltype set_tile_tag which_tiles
) S: I! W" W7 Z/ k' A - ddmodify_err m set_tile_text wid
' m1 T( D! d- |+ J* b! X - ddmtext majrad set_tile_vpt x' Q2 R {0 {1 ?& k
- ddpline make_lay_lists set_tile_wid x1
( l+ O2 ]8 u# c! x g" w5 }3 s - ddpoint make_lt_lists set_tile_xline_pt1 x2: }% Z$ y% D" h
- ddray mdashlist set_tile_xline_pt2 x3
" D) @) `) p T8 ~. g9 ]1 ` - ddregion minrad setcolor x4
) o1 t; V& a0 p* R/ o# I5 I. }. O' `- W - ddshape modify_3dface shght xdlist
* }( N I! F; T' d$ i0 M - ddsolid modify_3dsolid showpt xline_pt1
* `1 J* ]0 W. p* @. v - ddspline modify_arc size xline_pt21 X) L. Q& t4 ]3 c4 c
- ddtext modify_block slist xline_x1 E% O) O* P- M; U6 e7 d) I( Q
- ddvport modify_body sname xline_x2. d+ s5 h8 v# D" b# z! N- y
- ddxline modify_circle sortlist xline_y1
5 n, B! |, v) W* q# O4 x( K3 a - denom modify_ellipse spltype xline_y2
g# ]" [9 I5 {1 s- \% G$ I+ Q - dialog-state modify_image ss xline_z1
/ T% ^. @3 u, V - dir_pt modify_line st_ang xline_z2
& ^3 @+ K% w2 U - dir_ptx modify_mline stpt xscale/ e8 r V7 d+ }; B3 J- v6 G" D
- dir_pty modify_mtext style_act xx
( O- l& T# b: {8 o, M0 z( O$ c - dir_ptz modify_point style-idx y
( c2 y( Z6 x; O6 ]1 S( ` - dismiss_dialog modify_polyline style-list y1& U" {3 x2 }* l+ g. L" |
- drawpattern modify_prop_geom tagval y2
# R: e7 m0 v9 I6 `8 c" s( m* r - echo modify_properties temp y3) ]( _' ]$ u$ ~# {; _8 {
- ecolor modify_ray temp_color y4
7 _! F& R# ^' r- C/ [) y! ^! K8 E - edge1 modify_region temp_dir_x yscale
) D1 v7 N1 p+ e/ A& s7 p0 R- b - edge2 modify_shape temp_dir_y yy
t& A. O Q C - edge3 modify_solid temp_dir_z z1& \6 t. ]. }1 G& J2 a0 |% h( I# s- n
- edge4 modify_spline temp_xline_pt1 z2
7 }% U6 k0 }+ X' ? - edgetest modify_text temp_xline_x1 z3
! n3 |& J) }* w7 ]0 \ - elayer modify_vport temp_xline_y1 z46 J. i: |5 x. E: ]
- elist modify_xline temp_xline_z1 zscale
5 }- c" X6 h0 I9 H - ell_calc modlist tempend_eang zz T3 l% b# J$ a2 ^! S6 d* v3 _
- dir-idx safe_ddedit ver_MtextWidth xcliponoff" U$ H, c( [; L7 |
- MText_style6 V. G$ R0 M c7 S) O4 u0 `
- )# Y; l2 @5 `0 P2 ]' V
- ~0 q {! W: P ^) L- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho U3 ?4 _- h: _8 n
- old_error *error* ; save current error function( s( X$ a9 b L1 ^7 i6 ~! A" P4 J
- *error* ai_error ; new error function% S( f# w4 o; w' @
- )
0 [, |8 ]5 [6 ?2 O4 L8 B
' k! t5 N) \0 C9 y" g. ?- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
/ t2 t3 V8 F1 `/ A0 Z6 ^, }" v - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection7 ?7 d% Y6 u+ B0 V+ s
- (setvar "pickstyle" new_pickstyle) ; bit and set to new value6 R+ F6 s/ f+ Q# } G
- K* B0 h" |2 I3 Q# T/ d
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
) f7 z j( I& r$ b& u* ? - (t 1)))
3 E2 p; O& L j/ n6 l6 l, [6 g - (cond( z/ P, F2 T0 U, Y b8 S& Y4 G
- ( (not (ai_notrans))) ; Not transparent?6 E8 b3 ?) c. p
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?% d1 ]! z6 @$ A" B$ @
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
4 n$ y1 S7 }# a* R: E" u - ( (not (setq ename (ddmodify_select)))) ; object to modify?
3 f% z2 `0 u7 Y1 v) g" `+ A7 f - # `: D6 ]& r# f `
- (t (ai_undo_push)
; m/ O6 K% g3 F) ^! L8 r0 j! e - (ddmodify_init) ; everything okay, proceed.% W2 @6 { \* t% h/ F
- (cond5 b4 d4 O: N/ o3 e5 T4 W V \* Z
- ((= etype "LEADER")
0 T: J1 C, |% P" M! e - (setq help_entry "modify_Leader_dialog")# V1 ]# N' X+ y2 j/ _& }
- (ddleader)
; e6 H J! q- M2 A! x - )
6 @" z, l( j- L) k1 A - ((= etype "ARC")1 ^8 p1 L) A: ?. A3 [8 [
- (setq help_entry "modify_Arc_dialog")
" w0 ~/ f+ A+ W. N0 _" Y D - (ddarc)5 V: j8 U+ ~/ u& q5 s. K$ ^, C# R% |
- )' _/ n2 n3 P5 ~3 j1 o' K
- ((= etype "ATTDEF"). V% R/ C/ ^0 g3 r. W [0 j8 i
- (setq help_entry "modify_Attribute_Definition_dialog")
9 E1 e) E1 }# g5 {. z! z! t - (ddtext)
& P% N2 @/ n; z6 \$ Q( T6 | w - )
+ v J; x6 ?& X2 {% | - ((= etype "CIRCLE")
( v( }9 S2 }/ {; w, ^ - (setq help_entry "modify_Circle_dialog")
5 V# j7 |& v& E) Z8 @ - (ddcircle)' \) z! X( b* c$ H, E/ c; w
- )
+ l1 p: s: x) c) i' H! l - ((= etype "ELLIPSE")
2 b8 }3 d8 v( U$ M; _% l" L8 v0 v - (setq help_entry "modify_Ellipse_dialog")- ~1 `5 ]; q- {3 c* C
- (ddellipse)
x3 f n& a0 c0 a* o, L" j - )/ W# b C* D; |! n1 H! B
- ((= etype "3DSOLID")7 I. ~1 ]) X) u* p5 s: v& B) j2 b2 i
- (setq help_entry "modify_3d_Solid_dialog")* @1 `: w% X+ M8 b3 R* }
- (dd3dsolid)
) M; q2 J/ V- r Q6 w$ v - ). B, E. W6 v3 i. K
- ((= etype "BODY")
2 g* O6 [3 k1 p3 T; g8 y( ^4 k - (setq help_entry "modify_Body_dialog")
?- A. i( X8 c. n9 W - (ddbody)
# h# V6 i% G1 y* U1 n - )
8 y' n7 a+ J. S9 G, L - ((= etype "REGION")
% @4 U( A( b5 t6 A! ~ - (setq help_entry "modify_Region_dialog")$ J/ ~7 x; c7 s% w! R2 E5 D9 f
- (ddregion)5 {$ }; r# t1 K( e5 d) \" {4 u
- ) ?# B- q) X# v
- ((= etype "HATCH") E9 N3 a+ C# I
- (setq help_entry "modify_Hatch_dialog")
) H4 r# y" j- l# T - (ddnewhatch): o9 a, \% d& X& E7 ?4 _% O
- )
6 [0 V! Q) v1 p; F3 _ - ((= etype "SPLINE")1 |: }. F! e* M* \" d# S( K3 r
- (setq help_entry "modify_Spline_dialog")
1 j* D v' P6 m) T9 P - (ddspline)
" [4 I( S, o" h6 d/ i: g* p7 a - )
( N# r4 Z$ \# B$ C- a - ((= etype "INSERT") ; see ddblock for help_entry. F4 w* W% s6 N) \3 D$ G
- (ddblock)+ ^% K0 `0 C" k v
- )
+ I+ {: T5 `. h9 {- s - ((= etype "LINE")% `, P ]/ {0 ?% h
- (setq help_entry "modify_Line_dialog")
3 }1 r) L& E) X; N0 ^/ L, B - (ddline)
; G4 v* o; D6 w/ \ - )8 ~- s9 R- q5 e6 I. L# M0 \6 v( c
- ((= etype "MLINE")
: ?$ u) o0 f7 | t8 Q- P6 {) @% \! U - (setq help_entry "modify_multiLine_dialog") P1 W( v% a. W, J' B
- (ddmline)- a9 T5 u f5 q2 R, L
- )
# [- Y# T( M& o6 X7 Q. D; F - ((= etype "RAY")
8 [3 h0 y: B% E5 E9 f - (setq help_entry "modify_Ray_dialog")
0 v! T0 O9 Y1 c H6 {9 O7 H - (ddxline)4 H" j8 ^1 q" C" c" a6 l& \
- )
6 `3 i$ ?: {" \) Q& k/ o - ((= etype "XLINE")1 T g% w8 V: M
- (setq help_entry "modify_Xline_dialog")( M1 P! I; A. V" A$ Z
- (ddxline)
# V/ F3 V# v7 R2 L( \. c1 M1 i - )
! s, m2 S9 g% {' a9 ~& L - ((= etype "POINT")2 Z @$ n6 W% v3 n4 @# z) D
- (setq help_entry "modify_Point_dialog")
# f! x+ o! _9 S- r- E7 L+ G% [3 l - (ddpoint)
9 L/ L7 U" L7 ~7 c _ - )7 W2 K/ A. a2 Y7 {
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))/ i/ B; o. q* L. N0 o$ u* Z! p
- (setq help_entry "modify_Polyline_dialog")
) t, O- x. s% J - ;; If a 2D pline, check to see if it is planar to the current9 Y% |+ Q* q; N- \
- ;; UCS, reject if not. To see if the pline is parallel,9 T3 E: a' q9 r$ M- X$ A: E( o
- ;; the 210 group (WCS) is added to the current UCS origin (WCS)
8 G4 c- I! Y7 O) W- [" q3 W& X8 l+ L- Y - ;; and then converted to the current UCS and checked to see if
* L" M* j* U Q+ f3 D [0 z - ;; it is equal to (0,0,1).+ n) p6 s, E* N6 R8 s+ j
$ M+ o6 ? Q1 ^. _5 w: n- ;; Incase the 210 is default and not in the dxf list.
) j( p# d; @- \/ T' X1 e; |& ` - (if (= (assoc 210 (entget ename)) nil)
5 w3 g2 f% Y, A: t$ N - (ddpline)
! }% W- l9 Y. ~" d9 o' s - (progn1 E$ O$ K2 e( ]+ @( _0 Z6 a
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
1 ~3 C2 Z0 x) a% C: Z7 f - (not (equal '(0.0 0.0 1.0)
4 _4 T! C' q" y& a' x# o: m0 ~ - (trans (mapcar '+
6 F2 Z% F3 Y0 Z! Q5 Y1 Y( q/ ] - (cdr (assoc 210 (entget ename)))/ G- Y' `) s* R! }% j
- (trans '(0.0 0.0 0.0) 1 0)
. F1 o% o6 I1 {% d Z6 [* a - )
1 y8 x0 A5 k* c3 }3 M+ _ - 0 14 R# Q0 \) N6 E: n3 k/ d C! f
- )* u8 k3 N5 S) k9 K; u% y- O
- 0.0000000001 ; fuzz
9 M# r& c0 w; {$ h' Z - )
+ `" m- s8 Y+ V/ p - )
9 {. e+ t9 c4 `3 J - )* M5 F% y4 U2 ^9 Z2 c. f- K: w
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")* E- M6 l7 M8 e/ K1 n! |
- (ddpline)8 |- P( [( T0 |4 n
- )( V" L1 h6 R* Q" M! _" y7 }5 V
- ): L, G0 M. f7 @: r+ z
- )( [* o `1 u) ~3 C
- )# }+ Y9 l- q7 O' g) O. n
3 @2 ^, p8 _& l' M- ((= etype "SHAPE")
/ `% C' o9 O1 e$ N - (setq help_entry "modify_Shape_dialog")
" l/ T1 @' |8 b - (ddshape)
2 A- l1 S o [* A- q - )
# K, {5 c8 o. c3 T9 w6 ]- x - ((= etype "SOLID")
2 G. l: h" |6 J# O - (setq help_entry "modify_Solid_dialog")! o; k/ E1 p* a% z1 [
- (ddsolid)
; ~) O. ^& U" D' u - )' u) c! h8 F" J/ c
- ((= etype "TEXT")) Q5 a; q4 x" ^: g
- (setq help_entry "modify_Text_dialog")
; |3 J+ g0 i0 |. a! m X - (ddtext)
" e% z- { n9 x% N2 [ - )
+ k, p5 e: m- n5 R - ((= etype "MTEXT")
9 H/ |0 z- S1 \/ h - (setq help_entry "modify_MText_dialog")( ?( O9 j& l) P, G5 c1 y* l
- (ddmtext)
% U. k5 |& M0 {. o - )3 X+ W' @+ U: C- F: A9 C
- ((= etype "TRACE")) @/ z. m8 O" F4 l
- (setq help_entry "modify_Trace_dialog")2 {! i! G- l' P D! r* u: @: ~
- (ddsolid)" _; p4 V$ R0 C+ L. P2 a X4 m7 F
- )
' K7 D, ~( D5 i, y - ((= etype "VIEWPORT")$ W1 q+ [1 ~) w8 Y" [$ i: I
- (setq help_entry "modify_Viewport_dialog")( p$ d8 I# a0 ]2 @0 o
- (ddvport)
& W. f* ?' ]$ p1 c5 q# ~* x - )8 G$ }! ?+ M7 o8 X$ H9 N+ s
- ((= etype "IMAGE")
$ s3 R& X8 U6 b2 T0 K - (setq help_entry "modify_Image_dialog")$ g7 d% Y3 d. G7 M! \2 \
- (ddimage)
! P2 X8 F$ }8 C" {% n. [ - )
: j: J0 W& n# W! u9 o - ((= etype "3DFACE")
/ i n4 K6 j7 J \/ H9 d2 i - (setq help_entry "modify_3D_Face_dialog")/ D+ H# b6 ^! v, `
- (dd3dface)& t& c! r: w0 \' L
- )
0 R. Y1 a0 {6 l5 u* G+ o9 K2 c - ((= etype "DIMENSION")4 @) @3 H5 c& {5 P
- (setq help_entry "modify_Dimension_dialog")5 E" P6 b0 w6 X( J* U$ H0 [# n
- (ddimen)
5 F: l$ N, k) E. _9 x3 |8 c, X - )9 G% s2 u1 |4 P- R' a* _2 d
- ((= etype "TOLERANCE"). k' l4 f& [1 t8 g; q
- (setq help_entry "modify_Tolerance_dialog")
. k8 F% p5 O6 u& J - (ddtolerance)
" |1 ?- } D* Y' a5 ^/ i" p+ H - )
% w$ K7 N% f `% |# E - ;; Fall-through condition changed by MCAD for MDT 1.1 release.
$ }$ q; w& E: V6 X' G% v - ;; This allows DDMODIFY to work on any custom object or any new object type
3 ?3 c1 ]7 W% |* B+ U- d - ;; that isn't specifically handled above by calling the more generic DDCHPROP.+ e+ q+ O* w" ^/ U7 [1 Q' j, \) r" Y! X
- (t
& h9 u( l; T8 m F7 m) |1 R: l' j - (if (and (not ddchprop) (not (load "ddchprop" nil))): A; }# A9 B. i; Q7 p) p7 [4 ]3 X
- (princ (strcat "No dialog support for object type: " etype ".")))4 L+ ]+ q7 F5 G
- (progn( ^. z$ J+ J" \( R! `1 @
- (setq tempss (ssadd ename))
: q# A [* n8 e% c" h$ o - (ddchprop tempss)0 f0 t) p4 r5 }
- (setq tempss nil)+ ^( M1 w% X& z7 r. ?/ _. }
- ): h) U# H- p+ ]( M% H. u
- )- R) I' Y% p0 b; S) e: Z. V0 ~
- )
! O( ?& y5 L! L8 E+ ?) ]# j* u - ;; Previous fall-through condition.+ _! |3 {* j/ O! Q. M* Q
- ;; (t (princ (strcat "No dialog support for object type: "3 N! z% P |9 G. g6 A' T8 M% M/ l
- ;; etype "."
7 B7 E# I8 M; m& g e1 j! f* A* c6 U - ;; )
0 w- R0 |" {* s" q+ X# W - ;; )0 e7 X6 ]9 k2 K! C, L8 G, T5 e
- ;; ) }' v+ m% O! A! A* c* {( C
- ;; )
% c+ O! K: V( b - (ai_undo_pop)$ r( d8 @3 K5 e7 ?) k7 z
- )
" h+ x7 z5 I. M$ m - )3 p9 Y3 A; R( d8 w6 `- D
- 2 }8 y4 Y4 X: U
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle6 C# p/ ^* @- V. ^
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back0 X4 _) g7 G' D" R0 g T9 W2 d
- ) ; to what we started with
! `1 x4 [1 o0 V9 g6 a6 u8 R - 8 b3 y( h9 k3 m+ @' V* t
- (setq *error* old_error)! w+ A$ ?5 ^$ O6 o% `6 O' W+ x
- (setvar "cmdecho" old_cmd)
! x8 @- f7 N# M - (if (not reset_flag) ; if object was modified, then3 S1 _- C% J: P O; V! ^
- (ai_return ename) ; return it's ename to caller
5 j! w4 `" `! x5 T0 u/ J - ): A8 d5 f) E1 W7 E7 i
- )7 T% C8 n) P! f3 l3 \
3 q' ?; F$ q4 U( p; e; W' b1 a: L- (defun checkForLockedLayer (ename)
, T& g# n: P, [" h% @0 ] - (setq layername (cdr (assoc 8 (cdr (entget ename)))))8 W* x+ a$ W0 ?0 }# c
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))$ t" c& E1 f6 ?5 g
- (if (= layerflag 4)
9 `7 H- H6 f7 o4 a- K6 p7 b3 ^ - T
5 G( O; h+ S! o# v - nil
- P! f# X* q2 s7 s - )5 u. I2 y" Y+ P' `" V* g4 k0 B
- )* Y S! v; Q7 V O
- & H9 [1 X% n0 |, T( p
- (princ " DDMODIFY loaded. "), u) r! _8 R9 K0 D
- (princ)) T% d. k1 _+ e+ U
- ;;;???;;;---------------------------------------------------------------------------------------* b! O- U' X3 y/ p
- 5 y, p0 \ H% h* r' a
- ; Next available MSG number is 8 1 R; H9 `: Q) M3 w8 ^
- ; MODULE_ID DDUCSP_LSP_! [2 u; s! z) F; |
- ;;;
2 ~, C/ Z8 P+ G0 C- C - ;;; dducsp.lsp4 N' N( l0 V! J' u# J: I1 u( Z+ s4 f
- ;;;- a. L' `8 y- S S5 F( n; c1 U; U8 i
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.! y/ D/ \/ |3 _5 ?% m4 \ Q
- ;;;5 d8 S8 r- B6 {- W$ \5 S0 r
- ;;; Permission to use, copy, modify, and distribute this software& |6 |2 o. I" e: N
- ;;; for any purpose and without fee is hereby granted, provided0 d3 J* H e! }, b0 j% I, g1 `
- ;;; that the above copyright notice appears in all copies and
# r3 ]# G7 V0 E l' y7 B' ? - ;;; that both that copyright notice and the limited warranty and
2 }' F6 c E1 `6 w2 V - ;;; restricted rights notice below appear in all supporting
# f0 J b+ b V3 O t2 j - ;;; documentation.
e# {4 @' q( @# c: B; y - ;;;
3 G2 v5 S8 b9 ^: g' w/ U1 o - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
( |+ n! t) `0 u; Z% z, }* b1 a - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
' e3 ~' P% c2 I( P5 i' i - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.* k$ t. C& t5 \7 P. ?4 D. h4 E
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
1 g# N& k" U6 K2 `$ C4 i3 } - ;;; UNINTERRUPTED OR ERROR FREE.
0 {; @% H, ~8 M1 | - ;;;; ?3 b- K6 u; A
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
7 N/ D! W' S# Q9 h1 e - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer) o' s1 }# D/ W* a# g2 H5 D7 I( Y W
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
6 u) L/ K7 w6 i& Z8 \ - ;;; (Rights in Technical Data and Computer Software), as applicable.
# ^4 \2 N6 U+ P5 n8 k$ ?/ V - ;;;
( \7 T7 M+ |/ l& k. L4 X: w0 n1 B - ;;;.
& ]! D1 S( k! S6 p5 S - ;;; C:DDUCSP - User Coordinate System presets dialogue.
' l' C) p) X+ v6 h9 e( _ - ;;;
% V, S5 W$ H) {& D - ;;; Uses DDUCSP.DCL for the dialogue definition. The; {* I5 l" h- Y" M R+ ^8 A
- ;;; slide images are in ACAD.SLB.3 {6 ^$ Y' ?3 S7 ]8 H+ u0 k L
- ;;;& U9 ^. {/ F6 B/ \! C W
- ;;; ===========================================================================/ D( t! o- k/ }2 U
- ;;; ===================== load-time error checking ============================+ j; X: |9 w2 h7 f* V' q
- ;;;
R4 O9 ~$ Z, Q1 ]7 U3 O1 {8 f7 n
! ^/ ]. d3 V* d, c: f3 ` j- (defun ai_abort (app msg)
' L2 K( f5 j* V' m8 W% P N - (defun *error* (s)
. r3 q5 I( r1 ]4 C9 u3 f - (if old_error (setq *error* old_error)); N" h: P9 o. W% x( r
- (princ)
( v5 v- H9 x; W6 ~' S6 f8 x/ P - )
4 G& `4 O5 Z8 H - (if msg
: G8 p. U' w, |; ~7 r( C4 a - (alert (strcat " Application error: "
# c" a2 Q4 N i, k - app
: y4 z) E p! @3 F W" U U - " \n\n "
; X1 M( k, L' _2 | - msg# H! p$ a* J% r w' @7 p7 c# f/ I
- " \n"" k# z/ ?9 J$ G7 U
- )! }$ Z+ w* l. l; u, p3 N8 q
- )
$ F( E' r# `$ k, s, d! D$ z - )
" r: a3 G) x3 ^* R v# m4 o - (exit)6 l! Q8 F( h! T5 o. ?! T5 w( T
- )) t7 ?( ~2 D1 ?
- 0 H# a! B- A! y
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
6 J5 z9 K. U& M - ;;; and then try to load it.
9 z8 u. c( {+ V' N" r' _2 t - ;;;
, x. ~4 n/ M. R$ ` - ;;; If it can't be found or it can't be loaded, then abort the! K6 n% T* x8 M" w
- ;;; loading of this file immediately, preserving the (autoload)
! Y( w" G7 H$ j: ^" i3 N$ J - ;;; stub function.2 i |. L7 a: X5 p5 Q' B$ A9 L( A
- 0 v6 H* X4 U" M0 H
- (cond
2 z3 `1 ^7 B4 f* s9 d - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
& H, t2 W3 G5 ]' v - " M( T7 W+ q* A
- ( (not (findfile "ai_utils.lsp")) ; find it4 T. R6 ^" s1 n
- (ai_abort "DDUCSP"/ q4 _& S) e& c( e. n
- (strcat "Can't locate file AI_UTILS.LSP."
/ R9 h4 ~) c+ ?7 n - "\n Check support directory.")))
% }- u; F/ g6 w! }6 w& k: ^; ]- C1 e* m1 _
1 M0 V# R* _& v M: w+ b, G4 I- ( (eq "failed" (load "ai_utils" "failed")) ; load it
) {3 @8 m) X- J6 ^, _ - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))6 ]2 H E' ?# B" G) _6 T
- )
5 J, r0 ]7 Y5 l5 A' |
/ @1 B: K: z2 _+ z* A+ {: U# a9 k3 E- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
% ]" P. k! |' `1 n - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses1 M5 y5 h7 B' L; k1 y& |
- ) ; ai_abort's alert box dialog.
7 |5 U$ c: X; b7 [
3 J" n/ X+ v( E3 T0 P0 t- ;;; ==================== end load-time operations ===========================
$ H! L2 A4 L6 P+ H L
+ p6 x6 n' x7 l' D. H- (defun ai_ucsp_start ( / program)
( T9 P* ~* Q1 E. Q$ h! k - ;; Get program name/ C8 m9 A' U; i7 }
- (if (not (setq program (getvar "program")))2 D: g' M& e y. g: L8 E. S2 l
- (setq program "acad")
; D l+ I2 w& n1 b - )2 d8 v0 _. k+ M$ g
- (foreach v0 '("world" "left" "cview" "top" "front"
8 v9 `% s: c6 w/ r" t: W - "bottom" "back" "right" "prev")6 Y/ U2 b$ X0 Y8 b( e+ q# D7 K7 h
- (start_image (strcat "ucsp_" v0))5 y& Z+ p2 C9 h/ [
- (slide_image
3 W, Z5 S7 m7 w6 c! m4 x9 O - 0 0
: O5 u- |! x/ U1 b, c2 F - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
6 L: H6 S% h( ^# B( `( z - (strcat program "(u-" v0 ")")5 ~, g q1 d: _0 o
- )) h4 H2 r& ~5 l/ H; ]" Y
- (end_image)
2 q# D0 I/ E, r$ e4 ] - )
! Q; p% F/ t( N - )1 e7 v2 n4 Q3 N& D8 u2 j
) q7 Y5 Q) z' N: \' w- (defun ai_ucsp_set ()
9 g6 }) F6 b* b% b5 x: [* N8 L - (if ai_ucsp_sv
; J& F* d4 n/ Q - (command "_.UCS" "_V")
% \ A" w$ v3 p/ x - (if ai_ucsp_prevs
# b- j, E# v- t; h5 `2 z: n5 ^5 x+ H - (command "_.UCS" "_P")& {- n+ \5 M0 t6 K+ J- M
- (if ai_ucsp_chg
9 Z, c# w9 z) W& Q9 _ - (progn/ j, P( Q/ V" O0 N4 s5 V h% R6 v
- (if (/= ai_ucsp_a "*")" T" {# N* o9 D9 V7 |
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
5 W& N e8 w; @6 j# I* Z& ]6 H - )
2 f* Q. y2 G' ~: Y0 }# X D4 {' s, j - (if (< ai_ucsp_pick 6)8 |+ A9 b; U5 q* ?
- (setq ai_ucsp_set0 "@")
: f$ }: p' X4 z( ~) h$ ?7 p) ` - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")" |0 a# o* j2 G+ |
- )
7 [( l. O7 s9 }2 D5 i8 e( E6 q, i9 | - (cond ((= ai_ucsp_pick 0)0 y1 Z; }) j; o) C/ _
- (setq ai_ucsp_set1 "0,-1,0") R) d. x+ m9 F/ x/ s9 K+ L
- ai_ucsp_set2 "0,0,1"6 i) d7 s/ k8 w' H
- )
! r+ B0 G5 I0 V% N/ ? - )
/ e/ c2 K' i+ P3 Z |6 } - ((= ai_ucsp_pick 2)
$ M, `+ ^/ V: n6 e- p - (setq ai_ucsp_set1 "1,0,0"1 T0 R B k6 P2 Q) L! O/ P
- ai_ucsp_set2 "0,0,1"
( I; ?: x3 T& u- r( j K9 P" j4 V - )
. [' N. f' k& E% V6 g - )
9 y( ]/ P% a4 A' N - ((= ai_ucsp_pick 3)
( |6 p6 u3 d; y+ [- d# } - (setq ai_ucsp_set1 "1,0,0"
# x' Y1 J8 a1 A% K& t. c& L - ai_ucsp_set2 "0,-1,0"
. j" W' o( Y( I6 G% I$ E" h F - )/ C* Z% M- Q% Y8 M: w
- )% K9 o% i7 W/ \ Z
- ((= ai_ucsp_pick 4)
8 [: Q3 n: G( \- I. M8 l& M - (setq ai_ucsp_set1 "-1,0,0"3 r& g. Q% M2 C0 V( W! D8 {
- ai_ucsp_set2 "0,0,1"
' b; r6 _* N) l; ` - )% S% p$ Z7 S" Q% e/ {
- )
. G( n [; i. i7 h. M - ((= ai_ucsp_pick 5)( w0 j" \( z8 `& b2 h3 ^, {+ l
- (setq ai_ucsp_set1 "0,1,0"1 ?; w, ?- h5 O5 ]
- ai_ucsp_set2 "0,0,1"
) b9 m$ \! D+ Y& d8 s - )
6 [/ o' r3 P+ n - ): F' i2 F* t: ]
- (T$ a1 l( Z% w- _! E
- (setq ai_ucsp_set1 "1,0,0"7 {0 w' k: @" ?& A; m1 }! ]
- ai_ucsp_set2 "0,1,0"/ O$ h0 i: n! K; f) T; Z; C8 @+ d
- )5 L9 J j! K- J$ v1 O
- )0 [" o1 x: T# h
- )) d+ x% U9 Y; \1 i
- (command "_.UCS" "_3P" ai_ucsp_set0 + x* z3 [$ X0 }% e' E1 R6 l
- (strcat ai_ucsp_a ai_ucsp_set1)
: ^: E- R0 r! y- |) w* D - (strcat ai_ucsp_a ai_ucsp_set2)
7 I3 o$ G" ?( A - ) + _# t: m/ v. G) A- T1 X8 m+ @4 P
- )
% e- `- Z: j2 p+ ]- [: z2 ~ - )! G" g3 L! |9 b( E
- )
8 {, i- u/ I( b6 V - )3 t- |4 T* I2 K: t
- )$ l, s/ I! z) _
- 1 ]( k) c% v* Z, a1 |# ~! D! \( U
- (defun ai_ucsp_p (val currtile)
$ {' C& P+ w* X6 Y$ k2 X3 U - (mode_tile ai_ucsp_currtile 4)
4 ?6 n+ _2 e% F; ~; [( v0 k - (setq ai_ucsp_pick val
2 O- a5 K9 T2 } - ai_ucsp_sv nil
r* ?# @' ^0 ?; w - ai_ucsp_currtile currtile
9 E, r) I7 p( i+ R1 J0 ~ - )9 B- ~9 ~- P5 Z3 h
- (if (/= val 1)! _9 w9 R! C" S# G3 m* ~
- (setq ai_ucsp_chg T)
7 R \! R+ N: Q5 H- S6 j( l: u- a - )1 c% @$ H5 \3 b; @2 [, u1 N
- (mode_tile ai_ucsp_currtile 4)$ {! E1 l: \; U, D5 ^
- )
) W. W4 C# }% l- M& ?" \
% n# H& k3 z# i, Z1 c( A( n; w! r- (defun ai_ucsp_swcs ()4 b" K1 w/ u' b( ]. P( R
- (mode_tile ai_ucsp_currtile 4)9 h& c: l0 c2 o/ k3 g
- (set_tile "ucsp_a_wcs" "1")- n3 o/ L' R3 n3 L' H8 b$ l& J, {+ B0 ]
- (setq ai_ucsp_pick 6
9 s% T9 e9 @ }. z( A' C9 U - ai_ucsp_sv nil, ?; z" i# H# a- \
- ai_ucsp_currtile "ucsp_world"6 E t1 @/ {2 e X
- )
' b- v. Q: u/ A8 a- j - (if (/= 1 (getvar "WORLDUCS"))
; V4 L- u7 K; x: }3 @ - (setq ai_ucsp_chg T)- L6 _& h1 m/ N( j# |* V
- (setq ai_ucsp_chg nil): ^' }0 a& R3 l0 [' U- a! b
- ); X: _, d- Z8 `* B$ J; v
- (mode_tile ai_ucsp_currtile 4)# z# D! Y* h* o+ K' O5 ~% w7 c% y3 C
- )+ @1 j* Q7 s2 e) L- ^ S
- 9 f+ L1 d/ z; P- V1 S. b
- (defun ai_ucsp_cview ()
7 h2 G+ {# d. R9 z q# q - (mode_tile ai_ucsp_currtile 4)- s* H5 M0 @- q3 B6 v( N+ O! \8 ^# c
- (setq ai_ucsp_sv T % N8 ~7 e2 ~8 E% l$ [$ K
- ai_ucsp_chg nil
- z# d1 {# v0 t/ m - ai_ucsp_currtile "ucsp_cview"8 e- N/ z$ t: Z8 p, Y
- )
1 Q& { K: ^, F# x( N - (set_tile "ucsp_a_wcs" "1"): J4 K* P% X4 y: e p) [# c
- (mode_tile ai_ucsp_currtile 4)
j' P% X! G3 q. Q - )
. N% i8 `0 m$ r - 6 ?0 e$ i2 [5 b; A3 @5 W
- (defun ai_ucsp_rucs (typ)
% y. L1 P6 j1 G/ f! L& c - (setq ai_ucsp_a typ)
3 s. C. a" t" {4 n) H8 O - (mode_tile ai_ucsp_currtile 2)1 I* ~/ W, h' u; r
- )& ]8 X2 q5 b/ }; {" z; E/ i: v! }: i
- # S0 K1 V$ S3 A- { M
- (defun ai_ucsp_prev ()3 m# w, e, R& w$ {' q2 q: A9 x; ^
- (mode_tile ai_ucsp_currtile 4)
6 n7 p+ d, y1 } - (setq ai_ucsp_prevs T1 k; [' ~' K# A& i# O
- ai_ucsp_currtile "ucsp_prev"
" l5 C% ^" W! V1 b- W4 G/ x2 t8 e - )1 a. x) H/ z. F9 F* U! [" }
- (mode_tile ai_ucsp_currtile 4)
! E9 [$ I- S" N6 p1 c9 a - )4 Z, |) m1 |1 z
9 _5 L# H# N6 d% I1 E4 Q# Y2 r+ R- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)- x2 T1 P/ ~" }3 O* H6 s
- (if (not (new_dialog "dducsp" dcl_id))# o2 @( q& ~7 d' _9 c, Z
- (exit)& C- S! L9 h' Z4 w0 E
- )
- ^' j1 T" k d - 4 B1 R% Y5 v' k' ]
- (ai_ucsp_start)# H; a/ s1 G4 j2 k! E1 R' T
- (setq ai_ucsp_a "@" 4 p. v5 [$ O7 N
- ai_ucsp_pick 20 e+ @! L! t' h2 Y
- ai_ucsp_currtile "ucsp_top"
2 k5 Q4 G! a ?. f! q# v. P; q; m - )
- Z G* i4 \( z; N8 X - (if (= 1 (getvar "WORLDUCS"))' @0 [; l% |, O l
- (progn
3 B! j5 H. f1 d1 k0 W6 F6 L - (set_tile "ucsp_a_wcs" "1"); ~0 t8 a- Y a4 K
- (setq ai_ucsp_currtile "ucsp_world")
5 X0 B( E F! Q7 I7 f4 U - )+ U* }; i& h, V+ f
- (set_tile "ucsp_r_ucs" "1")$ h$ K# S, |* ?1 j# \2 y& S2 a, p
- )
- k8 C' E9 W, k. E* c2 g; b# [ - (mode_tile ai_ucsp_currtile 2)
2 b2 z; b% T9 w, `3 Q( e j: b - (mode_tile ai_ucsp_currtile 4)
' a b$ u! u( M* D$ F6 J - (action_tile "ucsp_world" "(ai_ucsp_swcs)")
7 T1 g! Z0 w: A( g; c9 E3 R - (action_tile "ucsp_cview" "(ai_ucsp_cview)") g# ]' c- ]8 b o( `; z H
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
( q" S9 Z/ a/ ]0 A: H" A - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")3 m# G6 F, X# d. x, N
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
) N4 o5 Q( Y# j" O3 v% W& O* M - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)"), [( U$ H3 |1 h( ^4 ?6 Z- X. r: B
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
8 Y1 B: k( C! |# v0 ]; B - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
9 ]' _& {9 W' L8 [$ m: o0 b - (action_tile "ucsp_prev" "(ai_ucsp_prev)")7 ~7 W7 X- Z* o9 H# ]
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
% \/ |$ f1 E% z5 }. B. w1 { - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")- U6 a- u( L4 @" P$ Z
- (action_tile "accept" "(done_dialog 1)")) G. T H) M% T7 z3 X! z
- (action_tile "cancel" "(done_dialog 0)")
& m6 c) L: R( T+ A - (action_tile "help" "(help \"\" \"DDUCSP\")")
( E" Y. h8 N) m" i& r - (if (= (start_dialog) 1)
1 @/ s) g- G2 O" q3 m - (ai_ucsp_set)( q+ C. C. c7 J: A' [- @6 ?. B
- ). Y# d$ j# T& `, W; H
- ), Y0 N! \/ f* ?2 S
- ! I" _, T$ ?1 ^! V
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs 3 C4 ]! A3 _3 M: u# l7 ^; B
- ai_ucsp_sw undo_init)& P- \4 j) _% l, J. ~
: Z, h) r2 L9 E. }: \- ;; Set up error function.
; w. b: m: j9 u$ F; Y/ |5 x - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho; r7 f! |/ E% n" N& i
- old_error *error* ; save current error function
0 Z8 u( |2 j" M2 J - *error* ai_error ; new error function
- }- `$ ?) V7 f: `$ }, L - old_osmode (getvar "OSMODE") ; disable OSNAP for duration
) x8 R& C+ Z$ U0 m6 t5 H - )6 d6 p# w$ v2 E# T
K" Z& |& F4 D3 g9 K2 N4 R1 W+ F1 ~- (setvar "CMDECHO" 0)0 {( a4 F! f0 E. i9 `# V
- 3 w9 M: |+ I. ^ k6 S9 c: T6 N% z
- (cond2 x1 A! o" @3 d, K1 Z( r' l
- ( (not (ai_notrans))) ; transparent not OK
2 h7 s6 h% S+ k1 P0 e- N/ r$ t1 p7 R - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
/ h* u0 A; }( y. I: C3 z - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?3 }0 ]0 S& F# y8 g8 G, i: J0 Q
- (T (ai_undo_push)
0 P$ W% Q+ C/ d, `5 B- r$ b2 x! o - (setvar "OSMODE" 0)
: L$ x V5 w$ q. W9 K# u - (ai_ucsp_main)
% U' e1 [5 p$ W& ?. B" a- |4 `4 A - (setvar "OSMODE" old_osmode)4 s9 }' m: P- t
- (ai_undo_pop)
) s: z5 |( T2 x( j& ]0 [( m3 x: h - )/ B; U) v/ ?8 ?5 ?0 D Z8 y
- )
/ m1 w* z. r# E' y u - + L4 Q: Y3 o3 G7 O* s2 c$ K
- (setq *error* old_error)
4 a$ {: Z9 j- Y* ?2 s2 f- c - (setvar "cmdecho" old_cmd)
3 g& E$ [& p e - # y3 B ?3 y6 s" m: t
- (princ)
5 [. C6 C( N4 T5 X7 \2 \+ ?$ z - )3 N6 ?3 }) `) V" f3 U( D X
- # y E* n4 d* R' U
- (princ " DDUCSP loaded. ")
+ n! `3 g. Z j6 h: p, S - (princ)$ [& ]% V* z5 e
9 T) U% R) E4 W- ;;;???;;;---------------------------------------------------------------------------------------
9 N- ^& d" M% T8 u# ^3 F& D- B - a4 H" j4 K: B. T- v+ h8 N
- ;;;----------------------------------------------------------------------------
' R+ R5 N& Q3 _ - ;;;
, r$ Z) z P7 m6 c$ v( R& L0 T& q - ;;; EXCHPROP.LSP , a7 `, B! s- F/ y& G4 j8 s
- ;;; Polyline and text modification capabilities added by ' {$ R M6 ?) b3 \
- ;;; Randy Kintzley / Y1 b" W+ K$ k1 |: A9 l
- ;;;
0 _2 a& \; p) q$ A - ;;; Copyright (C) 1997 by Autodesk, Inc.- F9 T( v+ S7 w" d; X8 o
- ;;;
. i8 W- q& `/ H' K$ T - ;;; Permission to use, copy, modify, and distribute this software9 o' T- |& Y) q0 q. T2 `
- ;;; for any purpose and without fee is hereby granted, provided, I' U2 |! p1 _
- ;;; that the above copyright notice appears in all copies and
( X; V& Q8 Q$ T - ;;; that both that copyright notice and the limited warranty and
/ f/ i: Z0 g9 ? - ;;; restricted rights notice below appear in all supporting
! f- K& _* |8 s$ K( D5 w - ;;; documentation.
( q/ ?2 a5 |8 |0 ^ - ;;;) t* [) e0 X C8 }& p
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.: q7 ~5 i) z% j r$ W2 O0 q( n
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
2 v3 O- a: e) G - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
. \! K8 y- Q; r4 ?% W) U8 G3 p* Q - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
0 b% F7 U$ f9 y+ V* W9 H - ;;; UNINTERRUPTED OR ERROR FREE.7 w0 g' }( t7 v- u% G" m
- ;;;5 _0 ?% |$ M$ s+ B
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
# `; B3 F1 U' ?- J7 X% l - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
+ \% l ^% p7 Z - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii). f! N' k% f9 B& p4 O& M2 n5 |9 m
- ;;; (Rights in Technical Data and Computer Software), as applicable.
: L0 B# l% v. \3 s; o - ;;;
; I- K w7 S9 f2 L4 U - ;;;.
# ]: a) M5 `4 P0 z% g/ O) n) A - ;;; 28 February 1997
( q8 O# v0 `8 [4 K ? - ;;;% k3 e& S: J( j. s, y. m9 r) Q
- ;;;4 h" H2 Z, X# D
- ;;;----------------------------------------------------------------------------
7 \+ n, H0 u# U2 N; f3 b - ;;; DESCRIPTION8 b! Z) `1 R3 {' X y9 b
- ;;;----------------------------------------------------------------------------
$ z H0 ]3 g5 G$ B" ?2 D7 v7 k R - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
( q/ m/ D& l$ j$ B) Z - ;;; command gives the user the abilitie to change several characteristics
" a5 k. |" l. @0 a8 q - ;;; of selected polyline and text objects.
- v* X& ^' v# O& @ - ;;; The style and height of selectected text objects can be modified
# q, P' e I8 M5 w - ;;; (including text, mtext and attribute definitions) as well as, width and
7 ~3 l, m+ d7 W9 D* f" C - ;;; elevation characteristics of selected polylines (includes lightweight and 2 U# y$ w+ i( O; s" a* h
- ;;; traditional polylines.)3 v* G a2 M1 F4 D+ [
- ;;;----------------------------------------------------------------------------9 B+ O7 e5 x0 c9 A3 L
- ;;;----------------------------------------------------------------------------
+ q2 }. G. P; w' S" j/ f3 @ - ;;; Prefixes in command and keyword strings:2 {/ a$ z% |4 V$ y7 R2 H
- ;;; "." specifies the built-in AutoCAD command in case it has been
( B4 l2 t* _5 u& E1 L - ;;; redefined.: \8 x9 S( W; g# `- K5 A
- ;;; "_" denotes an AutoCAD command or keyword in the native language% U* t% c4 N/ r
- ;;; version, English.
% M' M2 l: s+ k ~1 ]4 G- z" b - ;;;----------------------------------------------------------------------------, }! `; e$ c2 z" Z G
- ;;;
' \) |4 c( S+ Y! S - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- Q$ l1 m7 A7 s9 c% M - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 J( f/ R5 ^3 B% f: ~% r+ Z* ]6 } - ;Functions created as result of loading file: exchprop.lsp
; g. i3 @/ y5 J - ; DDCHPROP2% C, _; K1 o# [; `
- ; DDCHPROP2_INIT5 i& a- D' P" k+ o5 b
- ; DDCHPROP2_SELECT0 n) x8 E" Y2 m: U' s) O- W+ v1 N
- ;
3 q+ a" N& v7 Y3 X4 J* O' ]# W - ;Variables created as result of loading file: exchprop.lsp( I6 n$ K; H7 H( n. U4 q2 x B1 ~
- ; OLD_ALLOC
, _4 a8 O( c$ n% C! R - ;* Z3 G- u) M7 c9 n% G
- ;Functions created as a result of executing the commands in: exchprop.lsp
0 F! q" y- ]- o4 l - ;$ {2 L4 h* v/ Q) i8 v$ N6 S* h
- ;Variables created as a result of executing the commands in: exchprop.lsp
2 q+ X* Y" w8 j# o - ; AI_SELTYPE
4 ?4 L% ~( D+ a4 X+ y - ; BONUS_ALIVE; m9 n+ t/ v3 p/ l$ p8 E* ~* s
- ; BONUS_OLD_ERROR) E3 w( p- v, H* }5 N0 i
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3 K7 I: c) F u' V
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
, _+ y+ q0 Q9 t3 s - ! p* {1 x5 o3 {: F( ~* p
- ;;;) ^, W+ l3 `- w% `* K; j
- ;;; Avoid (gc)s on load to improve load time.. z) B8 j8 I) N) r( f" R( d+ @
- ;;;8 V& t2 P. i/ [$ @5 O+ Q7 K
- (defun do_alloc (/ old_allod new_alloc)4 w5 L0 X, i* A8 V- o3 d% i, O1 @, c
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
' X8 _! N6 C+ d. ~& A, u0 _ - (expand (1+ (/ 4750 new_alloc)))* y: @, x+ e3 U* O
- (alloc old_alloc)& q) d* K- x8 X' z, |
- );defun
) m U3 O1 p3 {. ]- N. i; E - ! l! o, w8 f. R, m& t
- ;runs at load time - rk$ m+ H5 V. }& G+ K" _9 U! L# M
- (do_alloc)/ |; {7 J$ d/ ^1 s( F5 x
- (setq do_alloc nil)
/ X1 D8 y' S4 {# |2 d( @1 ] - ;;;
& B3 X, D% q0 q4 j$ m: T - ;;; ===========================================================================
& c8 o3 r+ n A6 ~) c# x+ Z6 Q1 O - ;;; ===================== load-time error checking ============================0 p4 m6 P9 o5 t! S9 \
- ;;;, r7 s4 t Z' l1 ?
) j, t. y. C, |) @- (defun ai_abort (app msg)
( c# w0 j( k8 P - (defun *error* (s)# l% J* Q! W1 ^ _- U2 @! `
- (if old_error (setq *error* old_error))
- X# L3 ^8 y0 y `: c- k e7 j; n7 Z4 x - (princ)4 B9 `1 K$ S- r1 x$ q! Z$ M O
- );defun5 i$ J! i4 o' h- ^( Z5 B( J
- (if msg' r4 I# e% p7 z1 C( E' e
- (alert (strcat " Application error: ". f2 [5 l8 V0 q/ N) A+ K. K# U
- app4 H$ U6 M: {) I: \
- " \n\n "- n' H9 f. k" c* q
- msg, o: H1 M( N3 W
- " \n"& k% n" e- M4 I8 B! d/ j' H/ b/ u
- )
: K& \9 q+ b5 T2 z1 l4 q3 |" ` - );alert
8 R# ~( Y& B& X: v - );if# \ V) u( p3 S( A! g( V
- ;(*error* msg)
1 `5 W9 w( i$ V' S: ~$ I - (exit)
# h% n' |7 \3 T" r0 {& T7 J - );defun ai_abort# g0 Z5 N) Y" I$ U2 E& W
) V6 R6 f( p* x. L6 ]! m) n- ;runs at load time - rk
2 v6 p5 ^: h: K( N - ;(if (and *error* ;added the if wrapper around this - rk.
8 Q) f% H0 U5 T' j; |* f; D - ; (not old_error)
7 ?5 H- G `& y. | - ; );and . R9 y9 z; t! p5 r( V
- ; (setq old_error *error*);setq
5 E k, ]& Z5 x' e2 @/ S - ;);if. q6 D _& x' J6 ^" G: U% S* D
- . {$ c8 V0 F. O4 Z4 d8 _4 D
, ?. O M# x0 R& b7 s( |- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
4 z) t9 I0 z7 }" d+ T4 Q- Z$ I! ?. q - ;;; and then try to load it.9 ~0 S5 Q+ _( a1 V
- ;;;1 h4 O+ J; F+ Y6 ?7 y; ?* B
- ;;; If it can't be found or it can't be loaded, then abort the- x. K7 a; A; L# ~% T4 m3 F: ?5 W' ]
- ;;; loading of this file immediately, preserving the (autoload)0 D& t: H, P. h, Y
- ;;; stub function.# c* \; U, M" |& ]4 ]$ i; E
9 j) Z0 l: B. S* [4 ]. }- ;runs at load time - rk.
3 ]2 n7 J: ]" f& { - (cond9 r/ C& O! O- e( J+ U
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.4 `! v+ p. a6 t- M( B
- ( (not (findfile "ai_utils.lsp")) ; find it7 W. u7 u" Z: B, m* j" h
- (ai_abort "EXCHPROP"8 K6 b# t, l! L' @- G
- (strcat "Can't locate file AI_UTILS.LSP."
8 V/ ^) }9 z4 K) [ - "\n Check support directory.")7 r5 Z/ g, _; y5 C
- );ai_abort
* d! ^+ o. G& T' l - )
. ^# k* u1 m( i" c - ( (eq "failed" (load "ai_utils" "failed")) ; load it( k- }- B* o6 a; K$ F/ R/ @
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")8 }4 S6 b6 R7 D& _
- )
$ ?6 K- `1 l) S - );cond close s( q& i* u$ h5 {1 b" k7 @) n+ D
7 a V1 L! A M8 E- l' Y. Y& g+ E- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP& Z; }* x( B* f& g& _8 e
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses! g1 d( A5 l. t7 G, t: y9 E( W* q
- );if ; ai_abort's alert box dialog.
, L8 E# S% ~4 W2 L& e5 r( K! L7 P - / T$ S. l7 O! F- G6 w
- ;;; ==================== end load-time operations ===========================
$ Q U& H; g s+ C - 4 }; q1 f7 D0 p: N& M _
- ;;; Initialize program subroutines and variables.
- N: q7 n! e5 [, ^& K
/ G6 h4 R& j) B$ I: c3 [* S% [- (defun ddchprop2_init()
' V: D$ [+ N% l, R5 {0 y0 r - ; U4 o9 Y/ x, {
" s: `) g5 h& e$ O- ' E* `- q& K! V5 P$ L9 W
- ;;/ K8 M4 w9 S7 ]! A
- ;; Define buttons and set values in CHPROP dialogue box! i* n/ K% L; }' H( d7 L' s- ~
- ;;' Y' C$ S" C8 C. Y
- (defun call_chp2 (/ cmdact p1 p2)7 B. }, f e4 j% y% G7 q
- 1 l8 H1 {! g6 X! z$ B. M
- (if (not (new_dialog "ch_prop" dcl_id)) ; r# U1 P4 W! p% V. K) \
- (exit)! X! T q* d' }
- )
" F/ s# _$ i! h7 \ - # l9 s' R! k; F. ]: T3 C6 ^
- (set_tile "error" "")" `: Y0 K4 H2 N& |
- ;; Set initial dialogue tile values/ Q$ u; T. B2 B1 d
- (set_col_tile)( [7 y, i. i# _+ F8 _1 }
- (set_tile "t_layer" elayer)
0 A! d$ Q% ?9 h
* H! G9 `, _& q2 |, T& `- (cond
8 X/ G" S# [ c7 w) m - ((= lt-idx nil)- N7 C. `: `$ p: n9 f+ y2 N5 L
- (set_tile "t_ltype" "Varies")( o$ u$ r6 A9 S( ~' t
- )
3 @% x! w7 B0 C - ((= lt-idx 0) ; set tile "By layer & layer linetype"
/ f* t S. K3 z9 Y j: x! t+ J - (set_tile "t_ltype" (bylayer_lt))
' x1 y* A% W+ S! }" [: z7 g9 k - )
( z; T! A3 M' E& O) t - (T# C _: s# @1 b! Y A r' {7 Z$ W* W
- (set_tile "t_ltype" (nth lt-idx ltnmlst))
" D8 E/ E' p8 _9 Z: [, @9 H: ^ - )7 o5 K# I, a! [) R( d$ a+ S
- )
6 }8 d/ V1 G! H9 z, y/ w# _) G - 8 I3 J! ?7 c/ `' B9 q, J
- (if (or (= ethickness nil)* W( y# Y- ], q" P
- (= ethickness "")) z( Y) e6 d1 A& h% o( S z0 k
- (= ethickness "Varies")
: E! _1 i% _/ k" r2 ]) u! d4 o4 J - );or6 ]" ]5 R$ K! b
- (set_tile "eb_thickness" "")" v8 |- E7 U, U
- (set_tile "eb_thickness" (ai_rtos ethickness))7 n0 W7 `+ e- w, T/ y0 v3 r5 u- k
- );if- a/ K1 t) o& C% N- W
- (if (or (= eltscale nil)1 ^: Y" u) h( ]3 ]7 _
- (= eltscale "")1 r+ A" [7 L9 F3 K- v) o
- (= eltscale "Varies")' E) ^/ D+ @7 M9 ?8 U
- 0 r0 {* I) q _
- )7 z) f! d0 I7 u( B D
- (set_tile "eb_ltscale" "")5 Z8 J2 l2 V" G! g
- (set_tile "eb_ltscale" (ai_rtos eltscale))# N3 _' ^2 E9 ]
- )* }: w- }: c. z6 P" f' `
- (if7 l5 V: P; q% N4 D
- (numberp ewidth)
3 F9 M: U. q3 }# d6 \ - (set_tile "poly_wid" (ai_rtos ewidth))
$ V3 ~4 R1 Z6 l* A1 @ - (set_tile "poly_wid" ewidth)( ~. W/ K% k& Q& u: g! j# @1 `6 ]4 t# n
- )
, A7 I. a$ N5 v% g9 J! l+ i - (if9 h% C4 p D+ ?$ b( [& a- x8 s! \
- (numberp eelevation)
7 U5 X3 D+ o! M' g$ r" A) R - (set_tile "poly_elev" (ai_rtos eelevation))0 Z7 [4 q: a; Z+ z* r* g H7 V
- (set_tile "poly_elev" eelevation)
" w; |7 p* Z( X( g - )
# r4 K* A: H9 g+ _ - (if# ?6 w8 b9 W3 p; J
- (numberp eheight)& @0 ~/ P0 {+ ~. Q
- (set_tile "text_hgt" (ai_rtos eheight))
" {$ G3 z I9 h, S, I) U4 w* N' D4 o - (set_tile "text_hgt" eheight)
0 u$ Z- _3 C' z5 i - )
' Q' }! m' K4 u) N - (if (not estyle)
, P0 R5 q ?' B( ^4 Y$ A# m k4 m* s - (setq estyle "")3 x" m; U+ [$ p5 n
- );if
5 r$ ]( Z( a' ^ - (setq hair_style_list (tnlist '("style" 16)));setq0 a# E+ i* U( j( P
- (if (not (member estyle hair_style_list))
) I9 O* O! D5 C6 X7 a5 _ - (setq hair_style_list (append hair_style_list (list estyle)));setq
0 S6 ]) @. f8 v - );if
8 a h" p$ G* W8 X7 }
6 i# a& E" E: I& C- (setq hair_style_list (acad_strlsort hair_style_list));setq$ M. ?8 ^0 v/ M0 }/ M
- (mpoplst "text_style" hair_style_list)+ }/ _7 M* A( \+ Q# o! M; l
- (set_tile "text_style"
/ B6 d8 @+ F, ]1 k9 B: | - (itoa (position estyle hair_style_list))
4 U5 e9 C8 B7 l+ _: y# W8 R - );set_tile 4 Q, x8 A% y W5 T. J6 C
- ; K" l4 e7 d/ S2 `% I
- ;; Disable tiles if need be... ;@RK8 j! m z2 C5 m
- (setq a 0)
8 ~) ?: f7 E; T: x# g - (while ( < a (sslength ss))% P8 p+ D$ B; @* I0 `
- (setq which_tiles# p' E8 k: q E% Q' ?
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
0 B6 K' F9 s: z# S -
1 I& d5 O! Z+ a - ;; If all fields are enabled, don't bother checking anymore.
* u& @6 U( h8 | V) K6 m - (if (/= which_tiles (logior 1 2 4 8 16))3 }; F B4 ]; ?! V0 y3 r V1 u
- (setq a (1+ a))' I* n( x: s- y* f3 s- j
- (setq a (sslength ss))
( L2 D o) k& l - )
4 G9 [& t6 |/ w3 Q6 d' N1 Y - )
f8 d, p% d1 Z" D. b+ a L$ U - ;; Layer Button and Text Field
0 I1 a% x( r. V' ~
5 n7 j h, w0 [ F- (if (/= 1 (logand 1 which_tiles))
2 C* [' ], u$ A% F - (progn
: |1 ^$ v1 j% k; i - (mode_tile "t_layer" 1)" A' B- C& V/ |! W* d+ S/ s
- (mode_tile "b_name" 1)
q& u) G8 f9 T, [8 C# u3 g5 B - )3 o; `& A* e: A% ]7 G% V9 [
- )# i( Z u. x- t" ^, j6 q& t" _- \
* H% Y& ?( s& t: Z, \% r* ]# g- ;; Color Button and Text Field
' \" Z2 g9 v. k! t, K/ K - (if (/= 2 (logand 2 which_tiles))% S& |7 j, ^0 v* _' y! Z
- (progn! G- m. S& }2 v/ \# d& u, o1 H
- (mode_tile "t_color" 1)2 w% g) J* E' w) v8 Z
- (mode_tile "b_color" 1)3 _! M& n3 @; p9 Z& x5 n0 o
- (mode_tile "show_image" 1)
f$ |) g% [0 K9 q2 H - )
& j( r7 S. t5 O" R! j - )
3 v: j9 A4 @4 F! j - ;; Linetype Button and Text Field
/ P( M+ @2 L5 [/ ~0 j1 \' A) G4 N - (if (/= 4 (logand 4 which_tiles))
% W) u( c8 _4 x0 A; r" P - (progn! a" g* O2 V& W, z& [- ^
- (mode_tile "t_ltype" 1)8 e; z; A5 z, ]" l6 G
- (mode_tile "b_line" 1)- ?8 b" k# l) ~% P
- )
7 |1 _: a. t: ]% a - )
' f( Q; A; T- t y - ;; Linetype Scale Edit Field; K/ w1 l$ h; Q7 C4 h7 @) L
- (if (/= 8 (logand 8 which_tiles))+ S v& h3 I! R
- (progn
: m' n6 e$ A! N! U; G0 K - (mode_tile "eb_ltscale" 1)5 K3 i8 B6 t' h4 j
- )$ b, x8 L. {& u. C* f, v% o
- )7 s/ t: i3 ]2 r# Q( w
- ;; Thickness Edit Field.
3 m/ t, j$ h" R9 _: a - (if (/= 16 (logand 16 which_tiles))
/ D% F# ]; J4 }8 n - (progn
) {" f- t, W( X5 a( M - (mode_tile "eb_thickness" 1)
! }+ _5 v) K5 a1 C0 F9 M - )" w& E, h7 ?2 R- ]3 }
- )( E, b0 [- X* |; W- h" e( @/ b) _, }
- 1 q6 j, k7 q1 Q, b. ~" [" r7 b
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
* M" [$ H0 D; d: A" u% U7 } - (if (not (= 2 (logand 2 eflag)))
* C* a2 c2 i0 ~( d8 a5 U) a - (progn2 U% |! s( m) k
- (mode_tile "text_hgt" 1)
$ s; {0 h: P# i, u3 t - (mode_tile "text_style" 1)
5 Y4 a: h/ w5 e& S* P! F - );progn9 \* ~8 K" _+ N6 g- T
- );if
/ z$ g9 }( b# O: l - (if (not (= 1 (logand 1 eflag)))
1 Q V$ r7 a' u# m( x - (progn
3 G4 l f* L% w% N6 m1 }: C - (mode_tile "poly_wid" 1)
i+ c7 Y+ k S) m - (mode_tile "poly_elev" 1)
; ~& J2 E: h* G, A4 J - );progn then disable polyline fields
J/ V3 T% ~/ D5 P8 L5 D - );if
1 _+ p2 |. c( O# X: }: F# J- o7 G* G - $ S% t) R9 W" h) c. ^/ \* ]* h
- ;; Define action for tiles
: A( o0 V1 Z' w# D; z' K) ` - (action_tile "b_color" "(setq ecolor (getcolor))")
3 T& z" I* x9 h - (action_tile "show_image" "(setq ecolor (getcolor))")* ~" b& }0 Y8 ?/ G6 K8 s. v
- (action_tile "b_name" "(setq elayer (getlayer))")
" @: Q' E8 A3 A0 P% i - (action_tile "b_line" "(setq eltype (getltype))")
6 H1 o& M: B! k, k3 ~ - (action_tile "eb_ltscale" "(getscale $value)")
- N2 }6 O/ u/ N7 B4 L - (action_tile "eb_thickness" "(getthickness $value)")4 s; T6 U$ U( c$ M0 i( a
- (action_tile "poly_wid" "(getwidth $value)")% T; s; `. c8 E) q& B7 d8 E7 Y
- (action_tile "poly_elev" "(getelevation $value)")
0 q0 H* a5 X$ v4 p N, A - (action_tile "text_hgt" "(getheight $value)")
1 t7 q: v3 ~. R, J - (action_tile "text_style" "(getstyle $value hair_style_list)") 0 ]& `* T6 I0 j. U' y/ j ` ^
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
- @1 d: ~" [7 r* N- z( A7 \ - (action_tile "accept" "(test-main-ok)")
: d2 G R9 ~+ k' v+ W" G: `. `6 ~
: \& i/ {) U* m/ s1 ]9 g- (if (= (start_dialog) 1)
/ r! x! m1 n. B0 G" E. H* q3 A - (progn% g( G% r, O5 T" R
- ; Update special properties for polyline and text selection-sets.
) J/ y0 R" `* U7 J+ _3 E -
4 s' O& o* o/ H0 `; Y4 _! t - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
& u! E2 J: E4 o( m - (or ewidth5 [% w6 S$ H- c5 E" b
- eelevation
3 v, j) v1 T, W. h+ L - );or
0 P+ \- s, W* R4 |' Q3 { - );and
( o4 W( B% I9 G+ u - (progn& g! I! j$ R* {9 g0 ^; Z( }1 c: U
- (setq ss-index 0
8 s4 p) P2 k% t% q5 y - ss-length (sslength poly_ss)
& r+ p( g% W/ \0 A/ R4 e - );setq" ^4 e' r1 k1 m/ P/ {; x7 x
- (while (< ss-index ss-length); j& E5 T; N: O9 S0 n+ y6 i
- (setq ename (ssname poly_ss ss-index)" f$ {- K0 A+ B1 B
- elist (entget ename)
# \1 c* S, ?; B, L% s6 V- _ - );setq$ F6 q r) c. ]% ~6 I. k J7 n: A& |
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp' D$ F* q$ F0 \( ?) s) d, l
- (if ewidth
, ?, U `( Q) I0 t' k - (command "_.pedit" ename "_W" ewidth "_x")
; ]! e4 h' Q1 ]1 P1 u4 G7 L4 q7 h - );if
- R. G% k3 s* M; U7 @4 N$ X - (if eelevation # O% Y# Q$ K- `$ E/ I" g$ p
- (progn/ P1 q2 i; f8 S/ B; B) D
- (setq p2 (list 0.0 0.0 eelevation));setq0 y. Q" `8 C* C% K$ }3 A% ], V _
- (if (equal (cdr (assoc 0 elist)) "POLYLINE")
* ?7 v) W/ {% }, d4 n - (setq p1 (list 0.0 0.0/ t$ a) G4 n8 j" A" S2 J
- (caddr (cdr (assoc 10 elist)))& e& X1 k4 b. _, D+ N$ ?$ W* B
- );list
6 F# |: c3 x- {0 O2 F8 Q/ Z - );setq7 b" S0 j! Q1 {; O |1 y6 i
- (progn
+ F1 S# Z' J* R' K, m+ S - (if (assoc 38 elist)! Y: D9 p! a% ~& o8 k n
- (setq p1 (list 0.0 0.09 A$ i4 I/ b2 \- u8 d) j- f
- (cdr (assoc 38 elist))
) Q0 z/ \* G+ q* P - );list
& e7 K3 f( ?8 u0 M+ J" t, a - );setq
) G; O) x% Q0 h - (setq p1 '(0.0 0.0 0.0))
5 ^9 t" W9 O8 q& Z6 F" y - );if
8 L( E8 ?% u0 x7 c - );progn
; [: n/ B6 J' u4 H6 k& s - );if! U) J9 T4 Y7 L, F+ N
- (command "_.move" ename "" p1 p2)/ I( ~+ ^. o0 i8 Y5 W. b
- );progn then change the elevation of the polyline/ ~ U( [$ I, T, ^* `/ {2 e
- );if. y$ O! z$ q$ e6 x2 a
- (command "_.ucs" "_p")
: H5 i4 s {9 n# {. v7 _ j - (setq ss-index (1+ ss-index)) k$ B& n U" y$ k6 V1 X) \
- );while) C$ [# n" {" [4 B* W
- );progn then polylines are in the selset/ z5 \! v- D4 ?3 {, ~
- );if# _ e3 `. W5 X) U# R" t# D6 }, w: h8 i
- (if (and (= 2 (logand 2 eflag)) ; text) j5 z. M1 ]; Q% ?# v# r4 g
- (or eheight 4 d5 s }% j0 _! v+ M4 U7 a- d
- estyle
. z: s) A' ?! l* Y - );or7 b9 S' G3 r7 J A: B T5 a" L& K
- );and$ s0 Q0 L# T8 E% G- n
- (progn
5 {4 s! R! ?& ]- [ - (setq ss-index 0 ss-length (sslength txt_ss))2 Q: h% T6 C' H9 `. ^
- (while
9 ~7 P! U. R; f2 l# Z - (< ss-index ss-length)
6 T; b8 b: k. J) [* |/ q/ @ - (setq elist (entget (setq ename (ssname txt_ss ss-index))))
5 ^5 {$ j# K! C - (if (numberp eheight)
# E/ s0 F& F# O% h - (setq elist (subst (cons 40 eheight), I) C; M6 K& T& N
- (assoc 40 elist)
1 c* H# C& e7 x% ^0 j0 M5 F - elist
9 k, G+ r' D1 V& i. }5 @ @# X4 X$ Z - );subst
8 _2 i0 m; C" e& ]6 n - );setq& ~1 @; N3 h' ^- m: F$ O
- );if- N$ ?8 L* \! Z6 J5 X
- (if (and estyle ;(not (equal estyle ""))! N2 A: n3 D" K9 k
- (not (equal estyle (cdr (assoc 7 elist)))): c# J# d" `# _+ y8 J) e
- );and/ ~' r) o$ \& O# r
- (progn
. ?2 H$ c8 I, K0 A. Y. z# T2 ^ - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt ! L, B+ O+ z/ z) w8 }8 u3 e; N
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))# N, {# t2 T; F) @5 q9 r
- ; (setq elist (fix_mtext_fonts estyle " t/ s5 y8 w2 @& a- Q
- ; elist
w1 L, V& B2 V0 ]! z6 g. ~ - ; )
8 ^# R* K$ F% H0 _- L7 u% r - ; );setq then% X0 @( p2 h Z* o
- (setq elist (subst (cons 7 estyle)
; Q5 S5 C% r* Z4 B1 y - (assoc 7 elist)
3 o" N% D+ k6 M4 H - elist R5 r$ f9 M: [8 n, H# ^
- );subst; L/ s) I5 U4 Q$ C3 \
- );setq else! Z9 f& G. b7 Q* s/ z" O3 X
- ;);if 0 A. u1 u% i/ P9 B# U( o! F( X& J
- );progn/ W% n9 c/ _7 f, K0 z4 m
- );if
8 J. [, D* {! k7 u7 D7 Q+ m - (entmod elist), y0 e' Z3 O+ D1 U
- (setq ss-index (1+ ss-index))
2 O! B2 {+ {) y% o: \) \' ^ - );while3 A7 I8 U- D7 A( ?6 E+ G+ S$ Z
- );progn then
2 N' d& K+ ~) C; F7 j8 V* r& F - );if
( ~8 N: v6 n9 Z1 ] R, `
0 z0 n0 c8 s* N" n8 I+ e- (setq cmdact (getvar "cmdactive"))
" R. Q% y( N7 P2 h T5 z - (command "_.chprop" ss ""): f: u5 I* V3 T" i- {3 _
- (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?$ |: j! a+ b+ Y3 P
- (progn
, [0 V6 ?( Z# M6 d2 m/ K( K% u - (if ecolor
6 M, P; q7 p4 v" |; g - (progn6 N6 @- l2 \% E' Z! S$ E, b9 h
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
% k2 J% m) I; T: G - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
4 F& B8 ]( Q$ g" p# m- @! ] - (command "_c" ecolor)- F. R7 a# \ P
- );progn then7 i5 t; v; [! B$ i
- )
! x( v: W( e& H) W5 S5 v& l2 X - (if (and lt-idx' _1 n& ~) @; m3 h A& A# v+ d
- (/= eltype ;|MSG0|;"Varies")
" s4 j. `. D9 r6 n _# E4 k - )4 Z h, C- p( _- V* w* E
- (command "_lt" eltype)& r) e* p5 i$ n. }/ N* B
- )
8 d! i/ V/ G1 H' r) v' ]& B5 r! q - (if (and lay-idx
' Z6 I0 T) l: g# _' |1 X - (/= elayer ;|MSG0|;"Varies")
; ~# z3 m; e4 y& a. _ - ); }2 O. h8 n: b" K7 p# a
- (command "_la" elayer)! _7 U9 {2 n) z: l; l5 @
- )7 J) d/ t& \3 Z1 W' e
- (if (and ethickness 0 X; k; J& ?; b B/ H
- (/= ethickness "")% H( a9 E) S5 O7 I/ b
- (/= ethickness "Varies") 9 @2 ]/ ^% _) Z4 x
- )
' z, K/ G! n2 |% l6 K - (command "_t" ethickness)+ ~" L5 T* i# F4 G
- )) @' a( c( @9 x# `5 l" b
- (if (and eltscale (/= eltscale ""))
; b' o) c, [+ ?7 Q5 ~( ?% v1 I - (command "_lts" eltscale)
# `. B! o8 ]) X9 m' o$ n8 F - );if) U4 x2 a' f# t& b
- (command "")5 {+ ^1 h/ P6 \' E* T6 o8 b w
- )
' H4 Y+ _. v! {; B( X' g: r$ P - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set. w7 r8 x; I+ Y: F7 |# o- f* s
- )" f7 M% O8 N; ?* H% V
- ) R/ }- o7 k8 ?
- );progn then OK was picked in the dialog.4 U2 s# A2 j& |5 O7 c1 a8 u% ^% x- @
- 5 v5 M6 W' ^. ~8 Z6 O
- ;; Fred GERBER - 25-AUG-94* \. @' E2 O3 }2 G
- ;; Don't print the "Properties unchanged" message when the user cancels& j5 U1 d( O2 _* w- P# ~! l: L
- ;; the dialog because he knows that already (otherwise he would have
+ |& C% R2 }0 `3 Q - ;; hit the "OK" button). Display the message only if CHPROP fails for
- e# Z$ b+ v7 K% P - ;; some reason, because it is not the expected behavior of the command./ b. Q# o( k( M( ?- G! O* E
- ;;" p3 z) M+ n% w4 F9 w% H& ^
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
! o6 }+ V q2 O( m& o ?1 { - );if
; i' D6 ]/ _! K( c4 _! B - (princ)
4 s; M K& F1 } - );defun call_chp2. |4 W4 p- Q) H' I
- ;;0 E+ O- Z3 E9 Q7 P! u
- ;; Function to set the Color text tile and swab to the current color value.
7 m. b5 {4 Q' k- b9 Z! ]' x - ;;
, G% J; u4 A/ ~. B4 k - (defun set_col_tile(). R' H# w. v9 f" k# A
- (cond+ n5 ?5 x" n' f; Z
- ((= ecolor nil)
3 b3 ^! b @- l7 U- e3 Q - (set_tile "t_color" "Varies")5 D3 ~0 B3 x5 L% ] m
- (col_tile "show_image" 0 nil)
5 F' R, t7 X" j4 I4 M - )2 V) [$ f9 K4 e" q9 E
- ((= ecolor 0)# [; l9 [6 w* u9 t
- (set_tile "t_color" "BYBLOCK")
, m! e6 v' J( M. @+ D$ V - (col_tile "show_image" 7 nil) ; show BYBLOCK as white
, o% E! p/ a j6 y - )
( Z# U4 ^" C$ }% C$ e - ((= ecolor 1)
- x Q" I( P) S - (set_tile "t_color" "1 red")
& a- t6 L) a. H0 Z - (col_tile "show_image" 1 nil)
; ?. h( p0 t+ H+ O* h2 w - )
2 p5 Y; y2 |: i H$ V$ t3 d' E - ((= ecolor 2)" D. T% E2 F! f; \$ n, N
- (set_tile "t_color" "2 yellow")
' n9 A$ a* s6 f! L& `' B+ }; p - (col_tile "show_image" 2 nil)
+ _: `( L0 w4 O' P) |+ _0 \ - )
: X0 s. W/ H4 y; a G$ Q - ((= ecolor 3)
! D; n, |# g; ` m6 T* t2 S3 c" _ - (set_tile "t_color" "3 green")
$ _3 H* z$ F' n/ q - (col_tile "show_image" 3 nil)" I0 r L$ c& R: G$ O4 J9 t) |
- )
7 g) O7 ?3 O$ I* d# N - ((= ecolor 4)
2 B: C' A! \( J! `8 n7 k# j - (set_tile "t_color" "4 cyan")+ F. m5 j, t2 U# N0 o
- (col_tile "show_image" 4 nil)" ~; i0 g& L; J P
- )
# z! P! _. F, R, }" C* N - ((= ecolor 5)# \- l! S, {0 {, S6 I* ?4 Q
- (set_tile "t_color" "5 blue")
' t( o- l y2 ]: e5 A) Z - (col_tile "show_image" 5 nil); W- c4 A( @3 [+ t; I) q3 T/ m# j
- )$ ?6 \1 ?8 Z7 j6 ` @
- ((= ecolor 6)4 @2 j/ |* x5 ]/ N
- (set_tile "t_color" "6 magenta")0 m' {- s6 f2 U% F' q
- (col_tile "show_image" 6 nil)
7 R* b: M" ~$ A# }) i7 \' k - )8 o4 O& o4 i8 [1 m
- ((= ecolor 7)0 p& S0 Q" M' I+ \
- (set_tile "t_color" "7 white")
+ F0 G+ O5 g/ C+ Z- n: B - (col_tile "show_image" 7 nil)
) X5 J; q5 E: y ?& C* j' T - )
. g' q5 c# q8 a7 O' k - ;; If the color is "BYLAYER", then set the tile to
9 g* T& ^+ i3 Y - ;; show it's set By layer, but also indicate the
3 a9 E% E! q2 K" o4 v - ;; color of the layer - i.e. By layer (red)
* J% s1 W0 C8 z# Y, o' r1 o) z4 g - ((= ecolor 256)$ B$ o) }2 m0 \$ L
- (set_tile "t_color" (bylayer_col))
1 @3 h# S( V( q0 e0 E- _( M# _) m1 ~ - (col_tile "show_image" cn nil)
* J Q/ H4 w9 W2 b - )$ d, k1 Z# k' y9 @* N$ p
- (T# K2 I4 [$ K* ^! }& c% o \8 V1 v
- (set_tile "t_color" (itoa ecolor))
4 h) v0 L, Z5 Q8 O" v( } - (col_tile "show_image" ecolor nil)
+ t6 C: |3 f8 F6 r - )! F6 _- l3 P6 j$ ^
- )
' B0 N( l1 j8 Q6 r; A+ b' P1 C - )
* b) r- A6 R# k - ;;
% u" I" O8 Z% Y& h( q" t) b - ;; Function to put up the standard color dialogue.
' B# K) l8 l- W4 u8 d. m$ h - ;;+ b$ C) G' ~! X0 U, g
- (defun getcolor(/ col_def lay_clr temp_color) m! a9 ]& g8 l' t" e
- ;; col_def is the default color used when rq_color is called. If ecolor- s! j7 `8 b# h: c) s
- ;; is nil (varies) then set it to 1, else use the value of ecolor.; x2 O5 D! p! ]. }1 S- z: o& f
- (if ecolor
' m% c% b5 X" K3 e& G; i& k* w4 N - (setq col_def ecolor)& U! A# D2 t8 h) t" d8 C/ M
- (setq col_def 1)
% K3 D' b: H, ^, b0 _: T& S, b- E# \ - )
6 o& ]4 m' f v% c - 3 G( I. f/ l% F& l
- ;; If we're working with a single layer, get its color+ H8 L p* R% m9 E- X
- ;; for use in the color swatch if the user selects color BYLAYER.. U3 L% g0 y) c
- (if (/= elayer ;|MSG0|;"Varies")
2 Y5 n* I. z; X: u; I2 G/ {( c9 A - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
G8 x) A( j; d% O" Q - (setq lay_clr 0), N& |- `. ~$ m6 Y N( P' _
- )
0 A0 Z% V( }" w; H7 e - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))7 k, D' ]; f1 H7 P' {
- (progn) u/ O+ [$ ], H3 u8 v, P
- (setq ecolor temp_color)9 F5 b# x+ o$ v! v2 y: V0 R( i
- (set_col_tile) r# _% f! R# R% j' t* E; M7 q
- ecolor
* ^9 p, B# t/ T& @% {) R9 ?. U; s - )" O3 B G5 ]2 s
- ecolor
! I2 m4 V: R3 Z3 R: f6 D2 [, g - )
) q* j, Z" P& ?$ F( n! ] - )
/ R" @% L& q% B' g0 Q' H2 \- Z - ;;
1 [5 [: d- a1 t$ m7 @% h - ;; This function pops a dialogue box consisting of a list box, image tile,
3 {' q! Z+ o0 K - ;; and edit box to allow the user to select or type a linetype. It returns
Q% H8 n7 j4 @* W" ~ - ;; the linetype selected., r9 Y5 K; o; U7 i
- ;;$ Z: i+ Y* [1 w" ^, z! L; w- U
- (defun getltype (/ old-idx ltname)
/ L) u' j: ~5 h! n- x - ;; Initialize a dialogue from dialogue file
3 r$ i' g$ g9 E, s9 [/ A' m - (if (not (new_dialog "setltype" dcl_id)) (exit))
( p, X, _. o/ g O' \! u! s6 g, p& J - (start_list "list_lt")" ?3 v% j6 M) C
- (mapcar 'add_list ltnmlst) ; initialize list box) y. e1 k& x& ?4 l$ ~
- (end_list). u3 C' x* n1 Q+ g3 A* f
- (setq old-idx lt-idx)2 c2 B2 w& G8 S
- ;; Show initial ltype in image tile, list box, and edit box
0 B( z" v7 {- E8 P. b% p6 z - (if (/= lt-idx nil)! d" |; A8 ?- @. D* t
- (ltlist_act (itoa lt-idx))
2 }4 [: k; G: L# A6 h - (progn( i1 l! Y4 ?0 ^, C+ c' v: C' f5 T
- (set_tile "edit_lt" "")
" z; k( s0 Y$ r% K; i - (col_tile "show_image" 0 nil)2 ^) N7 e3 r" i- P8 a+ L3 n; ]" ?) l
- );progn else m- w; |9 }/ G W: O9 I# e
- );if
$ r# X+ ~5 f# w3 |! p - (action_tile "list_lt" "(ltlist_act $value)")
: ?' m* T" i8 P, C! E( `8 r! |, d - (action_tile "edit_lt" "(ltedit_act)")
, p1 }0 C9 d1 H% x - (action_tile "accept" "(test-ok)")" f7 q0 o+ K4 ~3 ~! K/ f+ f. P' A
- (action_tile "cancel" "(reset-lt)")) }$ `. `5 q! l2 M. ~9 z* {9 c
- (if (= (start_dialog) 1) ; User pressed OK
( K2 ~$ Z% m3 V: s$ Y0 \ - (cond
1 V, x. ?. r9 _7 N; T, m) D% W - ((or (= lt-idx nil)
. H6 l5 ^0 x, Y( m; W - (= lt-idx (1- (length ltnmlst)))
* w/ |4 T) J8 W - );or# Y J; G9 g; ~9 l: Z. h
- (set_tile "t_ltype" "Varies")
1 s2 h9 ^+ @2 k+ K! G, ^4 ] - ;|MSG0|;"Varies". X' q C- H3 E) Y9 i
- )
! |" Q4 `& l: } G - ((= lt-idx 0)9 a# B* L5 N" }* |8 E
- (set_tile "t_ltype" (bylayer_lt))
( k7 x2 N) L7 ]5 U' N - ;|MSG0|;"BYLAYER"! f& R/ g9 V+ c& Z$ Q# Q+ P
- )! C! }: X! y; c( f
- ((= lt-idx 1)9 t6 A. D# k5 v/ x/ U" E
- (set_tile "t_ltype" "BYBLOCK")! {) p, K* D9 R4 p
- ;|MSG0|;"BYBLOCK"& j) I3 L* ? O3 [
- )* C+ U! l4 Z. r( `# w% t
- (T& O4 y3 z; s& q9 ?/ ~4 ` ~/ A
- (set_tile "t_ltype" ltname)
# S0 \) `: [! i% L: a- b1 \ - ltname/ v, {2 q0 z4 ]; i
- )/ K% i* h% G3 E$ ? L, z7 ~+ G
- );cond then7 w" g4 W4 N: x( i! @
- eltype4 q/ g, Q! x; q
- );if' H/ F/ [. z. ^% n
- );defun" t8 P3 ?9 D% ^4 _' Z
- ;;
9 o1 {: V$ q* u - ;; Edit box entries end up here
- S8 z" a) ?6 A1 ?+ P% H - ;;
! u3 T( @ s* @8 c" {; _' r. U$ h' e1 e - (defun ltedit_act ( / flag)
) n% \4 j1 i$ @, @# l/ @( H - ;; If linetype name,is valid, then clear error string,1 |( |& j& m( p" j
- ;; call ltlist_act function, and change focus to list box.) o4 c; P* H9 ^ f' ]
- ;; Else print error message.! B1 c; X8 s# O, b" [$ u
-
6 u x: Q4 ^9 B# n0 a# { - (setq ltvalue (xstrcase (get_tile "edit_lt")))
. g& z: |7 V! K6 n6 t5 L - (if (or (= ltvalue ;|MSG0|;"BYLAYER")
' c: ]! M' D: U3 ~/ i - (= ltvalue "BY LAYER")
: j% n1 x+ k+ P4 j* N4 T& ` - )
" W! s- _: B8 Q3 r# \: v: x# l - (setq ltvalue "BYLAYER")
6 w! G! P7 }2 `' A9 @ - )2 p& X |5 E5 z5 _9 t" |; n& `/ J
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
+ D' R G% L: \4 C0 w - (= ltvalue "BY BLOCK")
1 r8 |: b7 a( j2 ~/ f* d( U& q9 Y0 g$ j - )# p# I. s" s9 W8 c' P$ ~, G
- (setq ltvalue "BYBLOCK")
4 L8 b7 }0 K1 p9 c$ S" e4 x - )8 q" D5 @% I1 q( R' V, k* @( k
- (if (setq lt-idx (getindex ltvalue ltnmlst)): G& g* X* S: K% A
- (progn
" N; Q" [! @, a - (set_tile "error" "")/ B ^# t( Y% W4 `. `6 H# J
- (ltlist_act (itoa lt-idx)) Z1 L1 j2 i# h' ^- K. u
- ;(mode_tile "list_lt" 2)
2 ?$ x3 X! P5 O G# y& t% I. \ - );progn then0 s$ L) C" s, o( [: P7 `
- (progn
, ~, {2 h! S( S2 a. k, G - (if (/= ltvalue "")
$ X1 T) V, _( C5 } - (progn
8 _0 N5 v* d& s4 N) n - (set_tile "error" "Invalid linetype.")
9 N: N' N' E6 Q4 x. E8 o/ [& S3 H7 C - (setq flag T)
% ]1 A! z; Y ~/ }% S# G - );progn. b5 a; x, x+ ~
- )
; [) _1 ]5 m1 L% V - (setq lt-idx old-idx)
' l U" A$ q3 g1 z* ~ - );progn else
! D' n: x4 Y* Z - );if
0 X. i5 G' r0 i5 F. C( a) x* a) W - (if (and (not flag) ;added so a return will take you out of the dialog.
- |$ l/ ?( g% E' b" D. s - (= $reason 1)
1 L: L4 I- a' B- O - );and# E8 Q6 ]& o4 Y3 m0 d7 P
- (done_dialog 1) 3 N9 Y: Z9 }! B! }
- );if
5 X! P. ?0 e7 ?: `$ i9 v - );defun ltedit_act% R' P4 E$ W. s- J0 F5 O
- ;;5 S3 k ^* k2 X+ a: U
- ;; List selections end up here k; E$ v: b% J, w' ~) J8 [, L
- ;;
. {' y# z1 ^. P6 Q/ @; V8 L - (defun ltlist_act (index / dashdata)
8 y4 F# D/ R$ }* W( R - ;; Update the list box, edit box, and color tile, d! I0 P9 h) {( J- ^
- (set_tile "error" "")
' T, s4 V. U& p* h' V: A$ | - (setq lt-idx (atoi index))
5 Y% p& Y" |" T8 U3 C - (setq ltname (nth lt-idx ltnmlst))4 G* M3 C. v, [8 t6 q
- (setq dashdata (nth lt-idx mdashlist))
/ z8 z" _* m* S5 H0 h - (col_tile "show_image" 0 dashdata)
' X7 l6 u' m% L2 ^. x& Q- P, c - (set_tile "list_lt" (itoa lt-idx))/ p. [" W$ d5 V
- (set_tile "edit_lt" ltname)
" ~) n: [ d2 h; I" |" a - )
9 X& _- s" @$ ] - ;;! x8 i4 L5 ]" `' v3 ^) _) L; z
- ;; Reset to original linetype when cancel it selected8 _2 E* x C/ N$ r! a7 G
- ;;
% A% z: {2 e% j& X - (defun reset-lt ()! u2 k; ^3 O. e& d! h& F
- (setq lt-idx old-idx)2 B- ]8 K0 K4 h. C ]& n; C
- (done_dialog 0)! w; t4 D8 ~& ^+ p+ a$ x8 c5 H
- )) Q/ D" R; h6 t7 P! Y$ N8 u }
- ;;
' M0 [2 A; g" ]5 V6 r - ;; This function pops a dialogue box consisting of a list box and edit box to
. o" \, L+ F5 z6 e1 ~/ i - ;; allow the user to select or type a layer name. It returns the layer name1 D) z( j0 I0 N1 \+ @
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the- a' N- F+ x: p/ P9 y
- ;; drawing.
" ?& _2 ?. w6 H& e J$ w - ;;/ \; z% h" n( s7 G+ k3 p m
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
" N8 b6 x6 C* o, K) T - ;; Create layer list the first time the layer
" w. j2 g! X6 l' f7 O- Q/ r) O, ` - ;; dialogue is called.5 G! ?: L6 {5 ]* h' T, K
- (if (not lay-idx)& J5 N( \9 W- G( |& t$ O' b- [
- (progn
! ~& J1 C& q6 R; u2 M* R - (makelaylists) ; layer list - laynmlst( y* n t! G0 G7 @! r3 D
- ;rk
) I& V1 S( A5 Z5 B, ]8 g' ^. e' D - (setq lay-idx (getindex elayer laynmlst))
: f u7 ^4 z6 r# F$ u8 u5 H3 G - );progn
0 Z( ~" V5 s- o; H1 o9 s - );if9 Y* _" m% T r/ W
- 7 r0 U5 a6 u4 I+ ~6 ^+ O
- ;; Load a dialogue from dialogue file& @7 Q" T' [: t8 }; Q
- (if (not (new_dialog "setlayer" dcl_id)) (exit)). a/ b* R. _9 ?
- (start_list "list_lay")
4 t0 G! ?6 {4 J$ j# A- a$ H: o8 w - (mapcar 'add_list longlist) ; initialize list box, C; ~+ o! ]' `+ E' D, q
- (end_list)
4 N5 u8 x% P, i- w. r0 b2 p) V - ;; Display current layer, show initial layer name in edit
3 Z; o8 c# L! O0 y) Y4 \" m( @ - ;; box, and highlight list box.
, k! z3 M- G7 _* K3 r8 E1 o* ? - (setq old-idx lay-idx)
( O( P- ?, s' W9 b4 ^# }2 R9 | - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
& P o" i% M: R; ~4 L - (set_tile "cur_layer" (getvar "clayer"))
_& O: ~# E. ^& J$ q - (action_tile "list_lay" "(laylist_act $value)")" J) q+ f' i. b: Z+ h2 Z1 v+ s
- (action_tile "edit_lay" "(layedit_act)")
O( ^7 x- }/ t- ~2 g - (action_tile "accept" "(test-ok)")2 S& k1 B% ?# l" s
- (action_tile "cancel" "(reset-lay)")7 `; |5 W1 N' M/ I7 k$ N
- (if (= (start_dialog) 1) ; User pressed OK
, }9 P' m n- {1 S- w Z: w8 Z - (progn1 A& t# j' {8 W2 [5 n# ~ ^
- (if (or (= lay-idx nil)
7 L9 U Q5 Z4 ~8 g) F" u- F - (= lay-idx (1- (length laynmlst)))( _3 o ]* j: `) t
- );or
+ y+ B% h8 P5 ]6 d% q - (progn& x D* t6 O* H
- (setq lay-idx nil) - ~$ R$ z$ R, ]+ F
- (setq layname ;|MSG0|;"VARIES")
, w( ?0 Y' a9 d% |# V3 i* P& X - (set_tile "t_layer" "Varies")
1 H* C8 \9 F' o' B& l) p4 U - (setq layname "")" M: g" `& y7 A$ \. Y
- );progn8 m% }# w# Q, W/ Q" G' k% ~
- (set_tile "t_layer" layname)
' v" S2 T* W% W( J( l1 V - );if
2 \5 X0 K& V% b6 @4 w& T - ; If layer or ltype equals bylayer reset their tiles
7 {7 M N/ a: V - (if (= lt-idx 0) w3 c8 H* n0 M8 W. U
- (set_tile "t_ltype" (bylayer_lt))
2 V3 X. ^- Z, B$ ]; ` C - );if
8 @7 W9 y: p- `) s6 N - (if (= ecolor 256)
" @( K# k* `/ C2 s# n - (progn
' A" _5 _3 H; Q& P - (set_tile "t_color" (bylayer_col))
) |+ O1 I) }8 c( \- k& P# d' M8 { - (col_tile "show_image" cn nil)1 t N6 C8 b4 `% T$ r( k4 a. r
- )
6 e5 U+ A! {2 f: N' W" H! e - );if; p5 } o& S$ x. b8 o& N; ?& ?( Z
- layname$ ^: M* @! o5 b7 D8 [5 R" G% C* I
- );progn
% `6 y. h) H: @# E3 P5 y - elayer1 Q e. C) }2 E* n8 j
- );if
% Q- c/ A- ~, P1 \; S) B# \- K - )
- s0 B( U! z+ ~& r9 v - ;;! x+ o% d3 R" i
- ;; Edit box selections end up here% @) U2 I- }: N4 |7 n* W
- ;;6 [' Y, o+ w2 X9 P( s
- (defun layedit_act()
$ E+ m3 h" p# @0 Q - ;; Convert layer entry to upper case. If layer name is, s, t& m# S& W5 V
- ;; valid, clear error string, call (laylist_act) function,
& q8 ~! @- m& t! C4 e- @& d - ;; and change focus to list box. Else print error message.5 C0 @* I- P' @7 V7 P) \
- (setq layvalue (xstrcase (get_tile "edit_lay")))
9 K/ B% j; Z/ _& O# _( a - (if (setq lay-idx (getindex layvalue laynmlst))
! [+ G, U0 S- S% i: [! H - (progn
. N. P; e Y5 |9 T9 o4 D1 H+ X! C' A6 d - (set_tile "error" "")8 O% D. U! {- \9 Z% p
- (laylist_act (itoa lay-idx))
4 [5 G7 s% {; y; o - )
, }# N& O" y7 R& h. L - (progn
& [/ w( m1 M8 L5 \3 E0 ~ - (set_tile "error" "Invalid layer name."), _ h& d" V2 P) A" \
- (mode_tile "edit_lay" 2); X7 R8 K/ h4 D, V! S) b3 `' h
- (setq lay-idx old-idx)
. q) @0 f0 \* D; q - )$ j* ]5 M+ J6 t
- );if" |. j4 h% ?7 m
- );defun0 Q2 c5 x4 K+ M! [3 ?% K
- ;;
. O9 @- E( s& {" F8 |8 ] - ;; List entry selections end up here
2 P V' n" C% n% I - ;;
1 K; }% ?) h1 V0 x - (defun laylist_act (index / layinfo color dashdata)
8 n2 u9 o: j9 H0 O4 `4 L* s( o - ;; Update the list box, edit box, and color tile
6 J$ ^- a7 w/ k7 Z; o/ j( B5 e - (set_tile "error" "")
% g+ Q0 i! M3 D: N/ S# M - (setq lay-idx (atoi index))
* K4 F% ]& ] G$ i- d+ a - (if (not (equal lay-idx (1- (length laynmlst))))
4 r/ i( b% e: \$ A9 W# ^/ I+ p - (progn : E. E+ U) ?8 @! Z! a
- (setq layname (nth lay-idx laynmlst))
/ J; F0 z/ `: r! [. _6 e J; t5 W - (setq layinfo (tblsearch "layer" layname))2 |, P, ~& I- n6 y
- (setq color (cdr (assoc 62 layinfo)))
# K/ M6 F% a" ^6 Q9 R - (setq color (abs color)). T* C( V$ {4 I2 H) n. P- | Q
- (setq colname (colorname color))
) W( P0 o2 ~; G0 M. R" { D } - (set_tile "list_lay" (itoa lay-idx))
7 Z: p1 w( P; _ - (set_tile "edit_lay" layname)3 J+ v; H: q- ?5 ~# O# c9 k
- ;(mode_tile "list_lay" 2)# d. e) }& D% q d |0 a
- );progn then 8 N# q9 _- T4 q# j
- (set_tile "edit_lay" "")
8 F( z7 G, y+ o5 v' W: z; l4 w - );if ' X' ~! K6 c* e3 z+ M0 H6 L
- );defun laylist_act9 j7 r n0 m! k" v. Y( a
- ;;
: N/ X& b4 x! c2 \) m2 _ - ;; Reset to original layer when cancel is selected
( ^8 }9 ?4 W& a W5 M& c - ;;
8 I, B' @" Q9 n& |( Y - (defun reset-lay ()2 M/ O. s4 F* _/ B
- (setq lay-idx old-idx) U5 d2 Z* K( \1 ^: K6 l( h
- (done_dialog 0)
0 ^% X/ L: Y7 y5 l, E( n6 U - )
* g* D- U8 X8 y4 t, x& k
E4 s _; _: W: R% [# q d- ;; Checks validity of linetype scale from edit box. It checks to
' s9 x w) k& J5 t' S2 W - ;; see if the value equals "Varies"." V. M Y; V' J; A0 N4 {7 u
- ; o/ U( X3 K; _! u6 H! @# ^; m
- (defun getscale (value / rval)7 o% x! [4 }. M3 j
- (setq value (strcase value)
& v# r" t& z" h+ `- D) \! Q/ m7 x - rval (distof value)( K! y& y6 I. U* ^' g; j+ N
- );setq
, z4 X7 Z8 [6 L" O# ]+ i - (if (or (= value "")4 ~7 r5 H6 d8 w" G% d
- (> rval 0.0)
+ z1 V0 t! t) Q( X/ G1 I" S - )
u/ b- E4 n! P {! c - (progn) S) D( y: ^2 g" u# W; m0 D( ]
- (set_tile "error" "")
% H3 v" o9 E* }% D - (if (= value "")( G9 G- S2 E8 w/ l. e7 u& K
- (progn
2 ]$ l8 _, L u0 H! [ - (set_tile "eb_ltscale" "")# c" [% |. d0 ^% p: [4 o
- (setq eltscale nil)
" X5 Q4 [+ B6 G) S - );progn then) V; z' h2 z& x u5 L7 C% ]; G- x
- (progn
! K! Z! c1 `7 r+ e9 e+ g - (setq eltscale (distof value))7 E9 {$ v( L3 D& d5 v% X g
- (set_tile "eb_ltscale" (ai_rtos eltscale))
1 K+ o3 ?& V: f2 Y- @ - eltscale7 \4 T9 _0 |7 F1 f6 ?; S f
- );progn else7 e) ?6 o7 ]5 ^* y
- );if
1 ]. { _# H- h9 B3 X& Q5 E+ _1 R - );progn/ Y L1 ]1 c0 c7 g, g( l
- (progn. F8 ]% \( p9 E, c" m3 Y6 L& m0 C5 G2 o' \
- (set_tile "error" "Invalid ltscale.")8 K/ {: A; V* F4 E [
- nil- v0 m4 Z$ `0 S3 D: p5 l% {7 \
- );progn else
( s. K0 r% Q* F/ i a; m7 X - );if1 h( _3 Y" G# B/ z, o
- );defun! a/ N$ ~6 G7 P4 t
- ;;
4 [2 G% P$ {* Y$ s& J4 p - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a/ a; Z, [, c+ K5 f' B
- ;; string can't be converted to a real, this routine checks if the first
% B8 |" s& B ^1 _# k7 B E6 W - ;; character is "0". It also checks to see if the value equals "Varies".
, a) c/ S( q% Q. ?# D5 Q9 a( U - ;;
# q9 N6 j8 T7 r" x - (defun getthickness (value)& ~) g' d# h" m. ~: l
- (setq value (strcase value))
: G5 w7 ]1 M; H% u2 m - (if (or (= value "")
/ t2 S3 L( X5 |! s - (distof value)
$ z( P& c# j+ T$ k5 {3 ^" C6 o - );or
. x }& v+ @; ~/ z1 w( y - (progn9 J; g4 O- Z! _# p+ ]/ X/ n
- (set_tile "error" "")' h2 j% ~' q; {* `* H
- (if (= value "")/ Y, a2 t$ T0 e/ N9 c
- (progn/ ~+ q1 `. w" k- u( k
- (set_tile "eb_thickness" "")+ L. U* W# a2 ~2 t2 h
- (setq ethickness nil)
) e% n/ {. V7 c4 n - );progn
1 C7 c* D+ p# y( V" ^4 w - (progn& T( P+ y' b) H* m
- (setq ethickness (distof value))4 h' |3 T- k" U6 P
- (set_tile "eb_thickness" (ai_rtos ethickness))9 W4 ~2 L2 d% P8 ]! X8 i5 ^
- ethickness
. |. f6 T& \2 S8 K0 |0 G: L/ a - );progn& | Q$ I' N/ Q6 z" R
- );if. P- `7 N( a" k
- );progn
- K+ T- I5 y5 g1 z p2 Y - (progn
0 `7 P g' Q6 e7 o F3 K - (set_tile "error" "Invalid thickness.")9 l* B/ V; |. d1 h! r: r8 [
- nil! A, Z$ m5 ], q1 t1 F
- );progn
* `- Y D; }4 ?% h5 L - );if. U$ V. T0 ^6 n
- );defun 5 M0 R/ b0 v" ^. l
- ;;
0 q: @' p1 I# ~ - ;; Checks validity of polyline elevation from edit box.; Q0 u* ^) C/ A9 z8 e
- ;;: S3 L! q- W: h* z. k
- (defun getelevation (value)
( k, X" I/ A3 _- o+ ^" O - (setq value (strcase value))# j) \8 [7 `7 r
- (if (or (= value "")
' Z2 e, d$ i- h6 w& S e - (distof value)
6 b0 Y; Q# `( I$ L1 m; q) I f - )' S; k9 N/ l( K) M$ v- W3 P
- (progn- ~' E& c+ h, t9 t. u. q
- (set_tile "error" "")
6 {, _, n- I! h( x - (if (= value "")
! J, b: R1 T7 g! l% Z) k0 f7 w - (progn7 t: V9 n% A' E4 y5 Q; G
- (set_tile "poly_elev" "")$ ^* I5 _$ C% r5 U0 P4 I8 f Z
- (setq eelevation nil)
4 C5 A: k" ~1 j% _ - );progn
- @9 @( t( ^: r# W# Y - (progn- T( |. P* s& G; W% z
- (setq eelevation (distof value))
$ b! ~5 h2 ^' Z, _/ }* j2 Z - (set_tile "poly_elev" (ai_rtos eelevation))2 q6 `9 l' K" M, X% u
- eelevation
( Z: n% x8 z3 I( R& w - );progn
' V6 n& Y# T3 `4 e4 { - );if
( \- x" l2 u& n- x0 u. s - );progn4 L) p9 ?2 D' F* r0 |( T2 A4 k5 Z/ q
- (progn
+ I, Q6 F3 l/ Y0 d0 ` - (set_tile "error" "Invalid elevation.")
: e& J6 m) v4 }0 g( X! y - nil
1 o) j0 I6 V; H1 X6 b V% ]2 f! k - );progn) A* E8 O$ l" m3 S2 s
- );if
' r7 {4 B$ {, g- {6 g6 { - );defun5 e! @ C6 R& V' a- o q8 c& {
- ;;
3 m- m" Z8 `) o$ I! k, q - ;; Checks validity of polyline width from edit box.0 m! K2 a7 w" K, L
- ;;
- m. s5 t, ~1 Q6 B - (defun getwidth (value / rval)
E$ u. B: a( \& t - (setq value (strcase value)7 r# p7 D4 ]0 l- t* y9 L: J- p
- rval (distof value)& w8 z _$ v' p- A! z7 \$ `7 h; H" C
- )3 I3 R9 h! o6 N- H# i
- (if (or (= value "")
) q! f0 m% ~ |, V - (>= rval 0.0)! u' @1 I9 A" ~ L
- )2 X/ y+ q5 Q* x" o( J+ p
- (progn9 D1 b* T. d; {1 C8 _0 T
- (set_tile "error" "")
4 c" A7 Q$ j' t - (if (= value "")
! `8 ?" O1 u0 L7 s - (progn
7 v M# r; {% n- Q& _, l - (set_tile "poly_wid" "")
! Z1 \3 j3 R0 G9 z& F - (setq ewidth nil)9 D& r* K1 r6 A: k- z/ A7 O
- );progn2 W* d$ V) ^6 {1 O" `7 W* a
- (progn
* F! E# [ a- d5 h - (setq ewidth (distof value))
) C3 a) e* U+ `2 F( ^7 c% W4 v& @2 o - (set_tile "poly_wid" (ai_rtos ewidth))& a+ r% {7 N' M* N8 ?
- ;width
3 ~" V+ t/ {& ?; W6 ~# T - );progn
8 ^9 K8 W8 }/ M X: k1 ^) d+ O9 ~ - );if2 Q' t6 U8 F r% p E' H
- );progn
5 W6 ]; Q! w* _' u% d - (progn& `0 X& v. G X2 S+ A& H+ ~
- (set_tile "error" "Invalid width.")
3 f) H8 R$ P6 F0 B; a) E! W1 ~ - ;(setq ewidth nil)
" m. P( z6 n! j - nil 4 W/ V A/ |9 H, G9 W
- );progn
: }: y9 P; a+ S3 n( F2 E - );if8 y, O& ^& m8 {
- );defun
2 Y2 d$ P4 {. i - ;;% F: {& U' m' i; h
- ;; Checks validity of text height from edit box.
: V5 H5 b5 L2 k7 {0 O7 q0 y - ;;% w* I% w/ |* B. q9 g- {* G
- (defun getheight (value / rval)
/ r$ Q0 V7 m5 | `# H - (setq value (strcase value)* E1 t, k( U h9 b) r+ _" _2 i/ w
- rval (distof value)
% S% e) L& F1 s$ n8 n1 Y- ~. a/ `* ] - )
. J# N/ |" q; V( m- K - (if (or (= value "")
. g8 z: }3 p3 @4 ~ \% G7 ?2 F - (> rval 0.0)- n( J2 r0 \* r- H: w$ c
- )
9 O" g' P! b# f- {$ L$ v - (progn) ~0 O0 B# O* U$ v
- (set_tile "error" "")7 w3 Q+ n- X8 a- \8 x5 [# }
- (if (= value "")
2 E$ P: T. C [7 o! f4 P1 C - (progn
9 X# g8 P4 }9 |8 m: h6 J# n, a- u - (set_tile "text_hgt" "")
: r* I8 `" U' r7 c) j - (setq eheight nil)+ @! p6 W) h+ A) f) @
- );progn
3 u6 n0 B- C' Y - (progn8 k; Q: T$ q, T2 v. o5 Q; N3 z
- (setq eheight (distof value)); u/ r" K1 U: k+ \
- (set_tile "text_hgt" (ai_rtos eheight))6 B' Z$ H: F. j& F! c
- eheight0 A; Z, a$ x8 Q4 \, B D, U8 f
- );progn
: k+ K2 P; B$ E' s, n - );if- o' m$ m: o) `8 l
- );progn1 r) ?8 d9 y5 l7 e
- (progn" R' x" v. \7 i
- (set_tile "error" "Invalid height.")
1 S3 w7 z' ?7 G! Y" z- q! ? - nil
/ v, V4 I" w+ l0 ^ - );progn& v) ^! `' w- y+ y9 e/ a4 l
- );if; f* M4 X% T, h& ?) i
- );defun: ~8 G4 |/ W( @- F: f
- ' i s1 }) ]" Q8 Q$ M1 U. o
- (defun getstyle (value lst / rval)
3 e0 t' W8 y' }6 l4 n - ;(setq value (strcase value))
4 A" F; [ y J7 I7 z- ~ [5 l& A9 r. U - (set_tile "error" "")
3 h" {! O4 v9 a1 I - (setq estyle (nth (atoi value) lst))
+ |# d. ]- p2 d, D* r* [1 [ - (if (equal estyle "")
Z- e( N2 { A5 Q - (setq estyle nil)) x1 k; T9 d! n9 H2 m* b: F, k
- );if
8 V- K+ M$ G% ~% a- ` -
+ w0 L8 ^3 `5 ` - );defun getstyle' b6 L4 X# G' p5 }5 E1 L1 X
' K- d% [6 R# `$ O; I3 _. P- ;;2 E z9 G& {$ X0 F" ?' D
- ;; This function make a list called laynmlst which consists of all the layer$ U9 I# y/ |; b% f, A) H
- ;; names in the drawing. It also creates a list called longlist which0 s, a; [& x% `8 c
- ;; consists of strings which contain the layer name, color, linetype, etc./ x1 ~/ d6 B$ Y9 g, J& t
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
! G, c, b/ c0 W% m4 W# d - ;; same." A7 T, I' a, V( M, V
- ;;. d! R1 ? A' k; ~
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname1 V) | Q" x3 Z! L7 h
- xdlist vpldata sortlist name templist bit-70
) Z B1 B# u. T - layer_number
- e* |# X" u! V* Z5 R - ) o% B1 E8 ^) u( \+ r* c7 c2 `2 H) J6 A8 c
- (if (= (setq tilemode (getvar "tilemode")) 0) A/ ^3 o1 l, q) t6 S! Q+ Y
- (progn
d6 }! p% S9 K+ v - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
, W5 C$ ^8 D. g9 _* t1 m* R - (cons 69 (getvar "CVPORT"))
: B+ t9 K f a! P, i, Z' G% y+ n - )
! `0 P1 u. C0 e1 g6 z4 H+ y+ J - )
1 p" r$ F# ]2 X/ C7 } - )
3 c* j. k. l3 I, G) J - (setq cvpname (ssname ss 0))1 y# s: t* U1 u
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))* v. |2 q* j! i
- (setq vpldata (cdadr xdlist)), K: Z2 N' L! x: n
- )5 J3 _5 H6 [9 H/ S5 |7 K
- )6 Y. n5 w* s& m5 T
- (setq sortlist nil)
; u* H- n3 u# q, [, y - (setq templist (tblnext "LAYER" T))
' D( W* y, u* b. i& C( L1 [ - (setq layer_number 1)
4 V3 @, [% t1 M4 m! b - (while templist# o( w/ `2 t6 b
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))/ K8 h& K' N3 }3 m' c0 X5 C
- (progn
9 `) U* l7 q+ `; R1 F - (setq name (cdr (assoc 2 templist))) D+ ?* Z7 v1 ]$ m6 P m
- (setq sortlist (cons name sortlist))& A! f8 S# ^" j& u1 j
- ;; Not dead message...
C, \# S5 [5 M3 B2 }: n - (setq layer_number (1+ layer_number))
9 L) O+ v0 @- W - );progn! q# n8 {) r' g- l3 Q9 r
- );if G1 v1 c/ U$ P3 f9 _$ R- G6 e
- (setq templist (tblnext "LAYER"))
# G" F _6 L7 V/ _" N - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
' O; M3 P/ |' b; k# W5 j) ]. F - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
( ?- k: u# c( |. [& s, C - );if
# G* d3 t; n5 t) S }0 r( v/ G- j! ^ - )
7 H0 p, g2 h/ M# r0 a* l" T! [# P, i* w - (set_tile "error" "")
4 A0 f1 o1 T) C# `) l - (if (>= (getvar "maxsort") (length sortlist))
1 t1 z, c. ]; l - (progn
1 I' C4 Q) h; S2 D. o8 H7 G; J - (if (> layer_number 50)$ l3 J+ @/ c: E
- (set_tile "error" "Sorting...")
/ V4 D1 V7 Y( r! ]9 c! P$ B* U - )
7 [; \* J# r: v# F) S& r$ G7 b) m/ R7 m - (setq sortlist (acad_strlsort sortlist))
* F' r0 G) {0 _+ K1 l - )
! [+ k/ [: H8 J - (setq sortlist (reverse sortlist))
7 G( k3 [3 X. ?* k X6 Y - )
& l* `2 ]- U8 c0 G - (set_tile "error" "")" e: m; ~5 f7 e( ^* [
- (setq laynmlst sortlist) {4 u0 f" c3 H& E; Y B
- ;rk
0 ~8 b) d! s F0 S - (setq laynmlst (append laynmlst (list ""))) ) ~4 i- h' R* `2 L ]
0 x, \4 N- ^8 j" ~9 Y- (setq longlist nil)4 N* n5 i, b! T A7 u0 N
- (setq layname (car sortlist))
" c( z L# L0 s% R - (setq layer_number 1)
9 E) P" B- ?6 @5 c- k - (while layname: m9 s7 {+ N x9 A
- (if (= (/ layer_number 50.0)
* z$ N9 b6 C9 S" o l* Z6 v - (fix (/ layer_number 50.0)), Q: ^& q q( ~4 A1 E
- )1 {8 a% h" N- L' y
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))2 q6 q( G) }0 |& l+ e9 G
- );if" ?+ f: ]% ~1 j
- (setq layer_number (1+ layer_number))3 V3 R9 V- e( n
- (setq laylist (tblsearch "LAYER" layname))' k, @" j- L9 b
- (setq color (cdr (assoc 62 laylist))): C w+ l0 n. b" N
- (if (minusp color)$ \8 b! e8 F* i
- (setq onoff ".")
. w3 T) ^( _4 w: Y8 L. r9 o - (setq onoff "On"); x- ~# m; m7 F$ U
- )
3 k1 h3 t, v3 R# T$ K& W$ S" T j - (setq color (abs color))
" t- d% X, B: F9 D: x% j - (setq colname (colorname color))
$ M2 c6 I/ q# N6 ]9 w; { - (setq bit-70 (cdr (assoc 70 laylist)))
2 S$ @. l% `6 {% Y' E6 A - (if (= (logand bit-70 1) 1)
& Z3 `7 l/ F8 ?( N - (setq frozth "F" fchk laylist)) @. s9 y s& k8 P
- (setq frozth ".") g8 b {, n# D T# B0 n+ O
- ), o N4 t, Y$ J6 B* R( F7 i6 n
- (if (= (logand bit-70 2) 2)' ~5 _# b5 P; g
- (setq vpn "N")" o P. E3 K2 n
- (setq vpn ".")
0 w; P) {3 [) m1 G - ): D+ W6 Z8 H3 Z- w
- (if (= (logand bit-70 4) 4)$ e! c' `9 V& l% t" z
- (setq lock "L")
- }5 _8 T ]3 p ?$ \ - (setq lock ".")
7 D! G2 n1 J! {: j" U - )
' N. j- F. @! n. I. ` - (setq linetype (cdr (assoc 6 laylist)))2 i( B# i5 _" V! ?" k
- (setq layname (substr layname 1 31))# F5 o) L3 [: X4 T# {+ {4 l
- (if (= tilemode 0). O9 u# M. M# F& G ^3 m" J9 }
- (progn* V; Z7 p) @) r" J- r2 d
- (if (member (cons 1003 layname) vpldata)
, e. c2 d' B0 p8 e) o - (setq vpf "C")
9 [' V# J, A+ X5 E3 x. w) M - (setq vpf ".")$ K" N9 ~0 k9 w) E& Q
- )9 n6 a0 U6 R& ^+ {, N; } B0 j
- )" r2 y) s8 J5 D3 h& q9 u6 N+ F* E
- (setq vpf ".")4 G/ j- Q3 Y/ \# Q9 d
- )
7 f# N* e1 d. C' b; Z: d |. C- L5 v - (setq ltabstr (strcat layname "\t"
3 a/ N. `, p7 l9 j a9 H$ G - onoff "\t"
5 ?; G! y' b/ l5 w1 o. o5 F0 f - frozth "\t"/ z# M1 u8 D, p: Z$ |( |
- lock "\t" D* p, h7 k3 Q) U: O2 Q4 ?
- vpf "\t"8 Y2 j" s2 K' k- J) O9 Z* l
- vpn "\t"' A" Q* v/ t0 a
- colname "\t"; ^4 ^: \$ n, M" B1 S$ f. A M
- linetype2 N6 T2 @: M2 I9 S0 R0 P1 T
- )
% n9 w% x4 b2 B/ r - )
+ H, D+ e5 @. k2 @% [6 r6 @* e3 ^, W - (setq longlist (append longlist (list ltabstr)))
* W# W/ h8 G4 D+ m5 }/ L - (setq sortlist (cdr sortlist))! Q; \3 V1 G1 {1 j* P
- (setq layname (car sortlist))
8 W! ]4 v1 c& D1 f% M% c2 I: R1 }8 a - );while
* N4 g/ |8 h, C6 o8 ]. v - (setq longlist (append longlist (list "")))( V; G+ k4 g- H: ?/ ?5 r! }
- (set_tile "error" "")/ T7 |% y; F. l. r5 A) o
- )# G" k5 J" {% n" ?
- ;;$ t- x1 C1 ^( A6 k7 d
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
1 i4 |5 s$ `; @% N$ N0 r% r4 o - ;; linetype names read from the symbol table. Mdashlist is list consisting& ?; {: ]5 c+ L9 a* R" ?
- ;; of lists which define the linetype pattern - numbers that indicate dots,
; P4 @. S2 ]9 [* N, y/ G5 B$ j( i - ;; dashes, and spaces taken from group code 49. The list corresponds to the- O% q2 X7 v; ~7 E
- ;; order of names in ltnmlst.
2 J5 K" H8 ?' P" S0 m - ;;
6 h% {) r) u2 Q* n- g - (defun makeltlists (/ ltlist ltname)
0 J2 I" r+ k/ |1 K4 A - (setq mdashlist nil)6 R- V4 T$ y4 W4 I9 O0 \! [6 [
- (setq ltlist (tblnext "LTYPE" T))4 b1 q P8 b9 o7 n, D* n
- (setq ltname (cdr (assoc 2 ltlist)))
* O' m- |2 K' S( ` Y# [ - (setq ltnmlst (list ltname))
+ D- I9 n( ~! U" S - (while (setq ltlist (tblnext "LTYPE"))4 ~/ i9 A7 M! T( V9 g
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
. V$ `+ ]* c& b5 V4 e- H( Q - (progn
* d2 g8 w% _" Y# r. s - (setq ltname (cdr (assoc 2 ltlist)))
* i4 ?8 |% t2 X - (setq ltnmlst (append ltnmlst (list ltname)))
1 w4 U7 @9 m5 {) R: D# G; V' s - );progn8 Q8 A) H2 O# `3 G
- );if . @% F5 l1 X, s& }. o* _/ P
- );while/ ?: I7 ^! d+ {( [
- (setq ltnmlst (acad_strlsort ltnmlst))
5 ]5 B& V2 p5 Q1 g3 r' f - (setq ltnmlst (append ltnmlst (list "")));add by rk
, a4 b" y; p! V - (foreach ltname ltnmlst' [3 a [' L9 j! M* W l8 J+ _
- (setq ltlist (tblsearch "LTYPE" ltname))
( E+ g" O, j+ r5 t" f - (if (= ltname "CONTINUOUS")
. Y9 z" e6 m# ]- ~: w, }# r( r - (setq mdashlist (append mdashlist (list "CONT")))
3 Z4 O8 u# T# L" r - (setq mdashlist
8 V6 O: z5 v! H* z2 D* Y+ x% | - (append mdashlist (list (add-mdash ltlist)))! O; j t4 J, Q. H+ |
- )- @5 V* H8 X$ K
- ), N5 x2 \( y5 x" W# U) G
- )
0 ^- T) T: L$ K Q. q1 [& F - (setq ltnmlst (cons "BYBLOCK" ltnmlst))2 O5 i* X* @' X: }' k
- (setq mdashlist (cons nil mdashlist))0 p7 `, Y: y0 c; Z
- (setq ltnmlst (cons "BYLAYER" ltnmlst))
6 L' c- t- N! F* M: F* R - (setq mdashlist (cons nil mdashlist))( _% ]5 G$ M g. e2 v
- )- y% C4 q; u) K) u' x
- ;;. z9 F" Q" S$ x/ ^8 b4 D
- ;; Get all the group code 49 values for a linetype and put them in a list
- J5 p, S b+ X1 V/ |( k! m - ;; (pen-up, pen-down info)
* \- h4 `4 @2 e - ;;3 X( A; p; |0 h' E
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
: R: e- x, |' C+ ~$ B I# r# [. i* ` - (setq dashlist nil)3 C [. Y# n) P `6 b0 u
- (while (setq assoclist (car ltlist1))* w H- o, F5 O H
- (if (= (car assoclist) 49)0 m& w/ W& l% T5 n& j
- (progn
& V5 R( A: p1 `8 n/ z+ R0 Z7 A - (setq dashsize (cdr assoclist)): m+ C# w" A) }$ u$ Q; `
- (setq dashlist (cons dashsize dashlist))* [# u7 C0 ~- e6 h' r( s
- )
. v6 W% M* v5 Z, i2 H0 V - )
# O: _0 H- Q! s( d - (setq ltlist1 (cdr ltlist1))
, V! Y* y" W- ]8 q1 V - )1 N5 d5 L9 t8 T0 A7 b. i" l# O
- (setq dashlist (reverse dashlist))8 F; X3 Z" q) _+ [ |
- )2 o l, j) e% b; W: a6 u0 y
- ;; B" S0 B6 P. C) ^! D2 m1 Q
- ;; Color a tile, draw linetype, and draw a border around it! b: G3 |0 g1 K( X3 N- F" s
- ;;
4 i. Q- h5 j# i7 U3 Q5 W4 t4 ] - (defun col_tile (tile color patlist / x y)$ C8 ?6 Y1 e1 |" V( I( K
- (setq x (dimx_tile tile))( t) I& Z, i% m+ Y9 u5 W
- (setq y (dimy_tile tile))
- r, j/ v' m- N1 Z - (start_image tile)
- f9 z* S& F+ J) ]! K - (fill_image 0 0 x y color)3 F9 i( O" k/ x! |0 c {
- (if (= color 7)
! ^# U. n w. T3 E. ~8 G: H - (progn
3 [7 F; H6 i, b) W9 y% b' m2 x - (if patlist (drawpattern x (/ y 2) patlist 0))
/ B: w2 Y2 j7 t% u - (tile_rect 0 0 x y 0)
: d0 q2 l- _6 e& H! Y+ a - )
0 F, | w( o1 h# T. D& q" C9 O3 d# N - (progn* U1 X5 ]$ c, h @7 V
- (if patlist (drawpattern x (/ y 2) patlist 7))
( b- @" [9 R5 D: S - (tile_rect 0 0 x y 7)1 E; X$ D) ]* g
- )
' G [2 w8 Z3 R* E; l - )
2 U5 n" K) Y8 b8 P; k1 e. D - (end_image)
' i# l) L! ~! j/ d1 v) A7 B6 Y; ` - ), E- E' E' O5 t6 ?! @6 G
- ;;( U. x8 R& i5 J% M+ L# i& i
- ;; Draw a border around a tile7 r1 S& g. J' [! S) n
- ;;" K0 R6 E: C1 q( r7 ^( o
- (defun tile_rect (x1 y1 x2 y2 color)
2 T7 p0 Y$ V, I, Y; D* H) O* W3 u - (setq x2 (- x2 1))3 w$ P0 q5 ^2 F
- (setq y2 (- y2 1))
3 h4 w- f0 u0 C4 T3 ] - (vector_image x1 y1 x2 y1 color)
+ D/ A1 J& B" e& A$ j) [ - (vector_image x2 y1 x2 y2 color)
* [# |( b/ k6 |1 `4 z( _ - (vector_image x2 y2 x1 y2 color)
) `6 [" Z+ Z* K) W) p( C) d9 p - (vector_image x1 y2 x1 y1 color)
+ c7 w$ ?. [2 `; z( C# g$ l - )6 A( w" j% @3 B+ j
- ;;
% i6 t# c% ^; {/ D* I* t% e( ?! i1 \ - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
5 I- z. f4 f0 }6 v* V - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a/ P" k4 c. e/ j& v& L3 P
- ;; list of numbers that define the linetype, and color is the color of the
/ ^. F+ ] {. r$ D - ;; tile.
% g! _3 Z3 g% ^! ^ d M1 c - ;;: E* X3 }; L: |1 ]# ]
- (defun drawpattern (boxlength y2 pattern color / x1 x2$ `; q9 E! r, A1 i: L4 V
- patlist dash)
. o7 }! }* O5 e( J - (setq x1 0 x2 0)* Z) y: D, u1 Y' } [+ z
- (setq patlist pattern); y: E' w& U7 O( a* f: r; M
- (setq fx 30)
: l$ h5 c7 x3 r4 D. O- Z3 b+ u - (if (= patlist "CONT")
2 D) \ |$ f, N. L - (progn
+ X# k4 e8 T- ?- Q0 p1 ] - (setq dash boxlength)
( a( S# q4 l1 o% y `2 N - (vi)
. j o' j9 T8 z# Q; b2 E6 t - (setq x1 boxlength)
* C) ]7 a8 r) B% _ - )+ w6 n# F. L- i, ^0 B7 t
- (foreach dash patlist- [4 u) r% k6 v b4 l) l
- (if (> (abs dash) 2.5)
$ L, Y4 \ H; G7 L: ^, M - (setq fx 2): w% n/ ^; m% D7 c
- )
- [/ R8 b! @6 `( x/ _$ |8 X' ? - )
R$ o' \/ h% }/ L. a1 q - )
# G1 H$ R; ]9 Y4 E8 D - (while (< x1 boxlength)& N2 |; K( A) v2 U8 I/ C2 C
- (if (setq dash (car patlist))& R! i: }* N& x
- (progn% m$ T& c8 [4 O: b/ a
- (setq dash (fix (* fx dash)))
: X- c1 f# L9 I# g - (cond
3 e- S! i1 E' j9 V- p; U - ((= dash 0)3 d! s/ j, F, n/ @; X) q# v
- (setq dash 1)
% p; F6 _. ? O' e- e1 U - (vi)
1 L% f( o" ?3 t- E b: E) ?6 n n& Y - )6 ?' m6 i& `+ J* S, ~+ F& @
- ((> dash 0)3 U3 x% {# ~8 I9 r" h/ d0 }( J/ g
- (vi) v# z4 o h# V8 `
- )
9 r$ m' }) R6 M4 J: o8 R% H - (T
3 p/ f$ N6 Y0 a1 \- c6 k7 }2 Q) l - (if (< (abs dash) 2) (setq dash 2)). v- ]# |/ g8 \; M
- (setq x2 (+ x2 (abs dash)))
" ^1 \9 v) d8 l! P - )7 v0 x, X+ o: @6 ^ ^( _7 ]
- )# j: m( ^( E! @% }: d$ N% L; ~4 N0 F
- (setq patlist (cdr patlist))
6 t8 X! b# `8 [. G - (setq x1 x2)
# \6 K8 r* J4 r% k - )
$ s) [$ O7 c( Z; r7 p) x# W/ n; ~ - (setq patlist pattern): A* } `* O& Y' {3 C0 S
- )
; t4 T2 e* \+ M/ W2 U! ?" }: n - )5 a; c# m; _/ O0 g* ?
- )
2 O ~) {" W; z4 E - ;;( u( b5 Z) J( ]9 ~
- ;; Draw a dash or dot in image tile' h2 y7 O+ a. n- i
- ;;' U" C/ }1 \2 V5 E+ i% r" ]
- (defun vi ()
) @$ p" _: h; Q. ^ - (setq x2 (+ x2 dash))% t0 L9 p' Q' F; {* X2 [( S1 A
- (vector_image x1 y2 x2 y2 color)
/ J) M5 y9 e* O - )2 w9 Y: x; A8 d `* ~% M
- , W' I0 ^4 `1 K$ H5 ^! `+ X3 U/ E
- ;; This function takes a selection and returns a list of the color,2 I: n) q1 s! d$ j
- ;; linetype, layer, linetype scale, and thickness properties that+ d0 n6 g2 `7 C8 J: {* x
- ;; are common to every entities in the selection set - (color$ j u6 g1 g, l) j% M# S0 _5 m0 |
- ;; linetype layer thickness). If all entities do not share the same/ F, X* @) ]. s! V' [
- ;; property value it returns "Varies" in place of the property5 O& h- L6 b* k( T
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0). }$ o+ B4 x! k5 _, `! ]
- ;; The last item in the return list is an integer flag for the) }7 @0 {5 n% d, u) k4 @; N
- ;; homegenity of the selection-set object types.- W# J5 P5 R# m+ X j4 W. s
- ;; 1 = All polylines
2 f- r7 _7 X1 I$ a - ;; 2 = All text or mtext or attdef, or a combination of the three- ] ?0 y1 a: x" u+ t2 v, V* s
- ;; -1 = Any other mix of objects6 s" \' ?. G" r" P7 @' O4 t* e
9 m0 M& k) o7 v# \/ ^# \% V- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
0 O& n7 v2 X9 `/ N4 C2 w - width elevation height go ctr & V6 v; W$ s: ]( Z
- eflag
9 ?9 r$ s& W6 S$ \* g* H6 K' I - etype temp
7 u" V0 Z6 I9 r3 r - txt_ss ;;;;rk 11:24 AM 1/30/97& G7 D+ E7 @6 `9 h- F
- tmp
2 n+ u1 x, T6 Q5 H4 c( ]5 x - poly_ss
& g! k2 k/ W+ ^) X. w - style
- J2 M! ^+ G4 H9 J3 s - )
1 c" P7 s5 M" @ B - 5 v* y7 Q; ?3 E% F& b, \6 m
: y$ N; j0 O/ U' A+ P4 q9 k- (setq sslen (sslength selset)
5 Y/ Q; \( W& i; `9 T1 e - elist (entget (ssname selset 0))
4 {* n* E, g \5 H - etype (strcase (cdr (assoc 0 elist)))
4 j: r3 g! u6 I. K/ k) a - color (cdr (assoc 62 elist))/ d6 | c8 I0 f1 ~' l. ?
- ltype (cdr (assoc 6 elist))
6 p5 q% A5 A; u3 N i6 X- I6 e - layer (cdr (assoc 8 elist))
Z; Q5 G: k4 E% \' Y - thickness (cdr (assoc 39 elist))( W5 ?' i) F; f h. {
- ltscale (cdr (assoc 48 elist))9 T% c) \5 |) r: g# R8 v
- );setq! ~/ H) E+ U' j
* Z1 @% e' t3 Q- (if (not color) (setq color 256))
" ]5 Q5 M' C$ p: @1 g - (if (not ltype) (setq ltype "BYLAYER"))- E! i& W0 L' P3 |1 c
- (if (not thickness) (setq thickness 0)), G& W6 U' ~ c( C5 |" U- R2 J
- (if (not ltscale) (setq ltscale 1))9 U* h+ ~* h# T
9 I! ?7 ?7 Y5 c- (if (not width) (setq width ""))
. f7 }* N4 D2 R4 [/ \ - (if (not elevation) (setq elevation ""))& t# ?8 h/ c4 i! p( M6 H" m+ l4 \* V
- (if (not height) (setq height ""))
/ I; h- e. S0 Y9 V( }; }. t - . _, G2 q8 x i, o' ^
- (setq go T
/ |$ a* k- {! o7 M/ u8 K3 ?" R - chk-col T ; V. _; t# }7 L5 p1 ^
- chk-lt T
' Q% q/ c7 C) e& m* u- S% M' x - chk-lay T
S' Q2 N" Z/ E( I( a5 x! C& A - chk-lts T
- v% ` J X2 t7 F9 Y1 c6 { - chk-th T
/ S" E; u2 ^: C, y4 ?1 Y) w9 y - ctr 0' o, z9 T: Z( k
- );setq
! \) |! c( c% Q4 \& B
2 H2 Z$ s: C9 U1 g7 }- ;; Page through the selection set. When a property
4 @* |) W9 T1 @, d/ y1 u - ;; does not match, stop checking for that property.2 f2 n5 }9 @6 T' t8 v! `- G+ F
- ;; When the selection set is not homogenous, stop checking.7 v# a7 _2 Q. C$ s5 e
- ;; If all properties vary and the set is not a type 1. y: H. E1 r: K
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.8 V! O6 I% K& @$ v* n# K2 n
6 F: `$ `- i+ |7 ~- ;Lets set the eflag so we know if the selection set includes any
, C. j8 Y; @- \ - ;combination of polylines, lwpolylines, text, mtext or attdefs.
4 V3 n0 Z. `. B
1 L( @: m8 M/ V5 r4 y9 P3 Z* m- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
0 b+ }; \! O7 a5 i! y, | - (setq eflag 0)& I$ }0 t% G- l6 T, p7 \! S
- (if (setq poly_ss
, y. P2 l4 @; ^+ l' F" R6 b3 T! E - (ssget "P" (list '(0 . "*POLYLINE")8 V- Z, H# B9 k+ x6 U* X5 [
- '(-4 . "<AND")
" M0 n! T, V+ |( q3 v# Q* Y4 { - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")2 i6 ]- e2 P- X- L' A7 \3 u
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")9 F0 K8 @/ u9 ^2 _% N
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
, E8 [. V" p8 g+ c4 T2 S6 | - '(-4 . "AND>")
) C8 f( `) }+ ^" o4 @, q6 [* m - );list
7 s1 W, y7 K' G' c d - );ssget get 2d polylines (legacy and lw)% J/ l6 r3 E6 d& S
- );setq
( C5 h( H+ v# B: ~0 f2 d# `3 Z$ V - (progn
4 s$ D/ O# r' s! w; i# G5 D5 } f5 U - (setq eflag (+ eflag 1))2 Z$ Z; V# c8 |' j' G d9 Z
- 4 p2 i4 I( g/ w
- (setq tmp (entget (ssname poly_ss 0)));setq
0 }2 x' q0 x; ?1 a j8 H4 j, f
2 B }4 G4 w9 w# R- (if (equal "POLYLINE" (cdr (assoc 0 tmp))). |& R _, n6 c1 s, }/ Z
- (setq elevation (last (cdr (assoc 10 tmp))))
. R$ M# y0 S/ y$ l - (setq elevation (cdr (assoc 38 tmp)))1 t/ l7 S# @# Q& M
- );if6 |- F" U1 [2 l; e0 j q# `1 e
- (if (not elevation)
- b9 o, S7 S0 s- R% Z - (setq elevation 0.0);setq' T9 r& E. l0 J, o" {
- );if+ J! ^( x* x) J5 s$ G; a
9 C, o8 |% }6 ? Q- (setq tmp (ssget "P" + ~. O0 I) C* U. C7 o
- (list * U$ P2 P4 Y% j% M- [0 t2 R
- '(-4 . "<OR")1 {. @2 I3 d/ W/ ?7 l# b$ e
- '(-4 . "<AND")
: w' o$ s: g. x1 `6 O! N - '(0 . "LWPOLYLINE")2 g ?( W. n' h6 K
- (cons 38 elevation): O) u4 t& m5 V$ t
- '(-4 . "AND>")
" ~$ U$ \# I, I) }. D9 i6 X3 \6 h( f - '(-4 . "<AND")
, z: L3 W. B% P9 _0 W/ F - '(0 . "POLYLINE")
# h5 [7 i, @ ?6 |; n! F2 d - '(-4 . "*,*,=") # }6 i5 d; H* @
- (cons 10 (list 1.0 1.0 elevation))4 ` s: f' D, C3 q
- '(-4 . "AND>") 6 ` q! j( g1 Y* P2 }3 O) }0 ~3 D' U
- '(-4 . "OR>") `( _; R) [9 ^/ x# s0 w
- );list |5 g7 A' H4 ?# I1 p; {
- );ssget/ a6 I. g; g* k# `" } e/ h; ^! Q
- );setq4 g3 c, B f3 K2 b L! a! f
- 6 Z$ I1 @$ {1 l9 v% g( `' c# j& T
- (if (and tmp
7 _# L4 J* V0 k0 ~; x! D) k - (equal (sslength tmp) (sslength poly_ss))& }; \9 N( Y* F0 r
- );and4 U! _0 U( r1 f, M5 K
- (setq elevation (ai_rtos elevation));setq+ R t9 t4 g. j1 x$ v; O
- (setq elevation ""), x& M% a3 t& Q* M g/ L
- );if9 }1 r9 @2 Q0 P2 G: G
-
4 N! l" |. p$ x2 |2 L! U& L* P - (setq width (pl_width_getter poly_ss));setq
. z+ Q, ]* G m -
7 Q3 @" K! d" c, t - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE! B( H- F p; s& `% l) m8 Z) g
- );if: w7 f' @( |5 s9 y
- (command "_.select" selset "")
2 @* W& S& j8 \0 ] -
8 H3 `* ~) a6 f( p# b - (if (setq txt_ss
) ~: G9 @# p0 X, a4 C- N% V - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") 2 k o! v/ g* R; M* x% W
- (0 . "ATTDEF") (-4 . "OR>"))
* Z- r# I7 r, U' J - ) , [6 v- T- \: h! M9 [
- );setq+ d, L Q1 v4 u! ~" M0 y
- (progn- Z: ^. ~+ A) v; }1 f
- (setq eflag (+ eflag 2))
' v& ~" d, M7 e - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
) E) N- q {2 X/ B9 N - tmp (ssget "P" (list (cons 40 height)))
, q' K: h+ j, U4 L% S2 _2 v - );setq
* B5 Q4 A( v6 X/ i, _ - (if (and tmp% u [/ I) T- K& M/ k0 A
- (equal (sslength txt_ss) (sslength tmp)) $ x6 ]' s6 R6 ~8 {1 a3 X: {
- );and
+ T% Y2 X- N5 z - (setq height (ai_rtos height));setq ;@rk need to translate from float 1 S, z+ d; M4 s0 P% i: u( ?
- ;to string and back again easily; M/ m, h Z$ \' s+ K
- (setq height "");setq else the height varies - Z3 P2 E( \! `: h) G$ H7 W" I
- );if
! ]9 k! \7 x9 } `% H - (command "_.select" txt_ss "") 1 w: M6 \8 Z, ]+ R6 r2 _' {# k
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))0 \7 H2 [: S) o' D. z
- tmp (ssget "P" (list (cons 7 style)))
% ~5 [( j& j, O! m: F' X - );setq
" k/ d# r- d3 q, \ - (if (not (and tmp4 S0 c( U/ z# [" S8 Q
- (equal (sslength txt_ss) (sslength tmp))
9 S) C$ `6 f0 ` s+ @) q/ _& u" M - );and1 | C+ U- A* {& F/ F) E/ r
- );not
1 b: Y' C d0 v1 V. ]( ` - (setq style "");setq then the style varies
1 K9 [8 b W& b0 j. R8 r) n - );if7 ?% v5 I9 {. U4 h n6 @+ a2 }
- );progn the text type objects are in the selection set0 B- {$ n! ~& h
- );if
/ D4 Q/ f- B3 ]9 T- ` - (command "_.select" selset "")
, W3 G# M1 {6 B: c& G2 T X - . W) ]4 ^$ x1 h: v
- (while (and (> sslen ctr)
- g q: ]5 ]0 a8 [8 W0 D - go# D$ ?8 I5 x# s# j, H
- );and. Q7 c6 p! {* J" {2 E
- (setq elist (entget (setq en (ssname selset ctr)))). P- A* F* X8 f' H
% I0 @1 t* z& v' [- a4 G) }' `! z& j- (if chk-col (match-col))
% H& {! x/ x9 S/ h* j. r - (if chk-lt (match-lt))
3 N2 z! X: T7 J2 f9 }0 F& I - (if chk-lay (match-lay))/ p# x4 r6 A5 z$ d2 j& H! I
- (if chk-lts (match-lts))
6 w' A6 C: Y. O. a - (if chk-th (match-th))
( r3 L3 `! w3 V$ k. s! b- N8 b* G
" `) P" ^ P/ F% ]2 X: B- ;(if chk-etype (match-etype))
. J1 `% J5 g6 r; T" u7 M: U7 I b% u - , l8 \6 u1 m3 a. }7 l
- (setq ctr (1+ ctr))
; P7 F. S# e4 h - (if (and (not chk-col)
) |! \- I3 ]6 M; ` - (not chk-lt)
0 ]* o' U) v5 g- b2 X3 g7 z; [- P - (not chk-lay)
" T7 W2 k2 I: U0 ~0 } - (not chk-lts)! V2 ?# A6 B9 B9 ~+ ]' m1 `
- (not chk-th)
$ A+ ]; ~; D! V: i6 R/ y - ;(not chk-etype), V7 |$ U u* A, g% `% T/ x' L. y
- );and
, v+ n7 E; b+ g' }2 |3 B - (setq go nil)" D. h3 o9 N0 R
- );if% j: K7 p+ f4 ] F
- );while
' Z/ C. M! p2 k* w* G* ~5 i -
! X, {! d/ L! u - (list color ltype layer thickness ltscale% {) @$ K$ U- {8 l& l( l, {/ `& E
- width elevation height eflag 4 F9 n3 V L; b( P/ R
- style poly_ss txt_ss# C" {9 F1 G% ^9 x+ L9 D: `2 v* u5 c
- )$ B. ?9 q6 t- ^3 D
- );defun getprops
8 c8 s1 f. u. D2 x - , E/ j7 _' Z- ]* l: J# _/ @& S
- ; This is a speedy little routine to tell whether the polylines in
* k! j' y/ J: N7 y. r& S - ;the selection set argument are of varying width or a constant value.
% W" O( y6 R( x - ;Looping through the vertex's has to be done for old polylines when
3 F% [' ]" G6 e, y' p4 p6 p - ;the polyline header has width values of 0.0. Basically, in this case,
: ]0 q, M# z0 ]" L - ;information in the polyline entity header is abmiguous. Width values
' B: h, R S0 c - ;of 0.0 in the header entity could mean the polyline has a constant $ h& s. p5 P3 @- R: G# c3 u# c
- ;width of 0.0 or it could mean that the polyline has vertex's of varying 9 |- G k P1 s) M' ~5 S
- ;width.5 W6 {1 j8 C& S% M8 B) V+ O( r& k9 y
- ; |# b3 P7 A( Y9 E6 R0 I
- ; It's all in wrist. Err a.., I mean it's all in the 'if'+ M/ d) S8 l; M: G. F7 [
- ;;" a" A- e, n! H; k
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
3 s% W: z. s( g$ W4 c
3 I: `4 y5 b$ g' {- (if ss
2 I( ~: n# b0 y) ]0 C2 z0 t - (command "_.select" ss "")$ a8 ?5 l3 o! m4 s* w& }$ G
- );if4 j4 W. H* ~4 O
- (setq width ""- V! w1 L* t# h1 A# e' t9 S
- flag nil! |9 V' Q( b& o O
- flag2 nil# \& H& i. W b# J
- );setq/ Q5 M$ E V+ P2 Q0 g
- (if (not
8 }9 Y( | y) I - (and ss
, e+ Q0 t' W c; k0 o. o2 V6 Z" b+ d - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
- d7 q B p; W9 K6 j - (setq na (ssname ss2 0)' p: p; e/ X7 h3 e# B) j' S- Q) C
- width (cdr (assoc 43 (entget na)))2 u2 S% {# w/ ~! y! ~( f" y
- );setq, K0 ~: z6 G7 D n! A
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")+ I$ j+ w6 W. L( C: w, o' s
- (cons 43 width)$ H4 ]3 W3 Z2 ?2 Q) C
- );list: {( p+ k0 y: b0 J
- );ssget0 r" S7 |8 ~$ p0 D, d
- );setq. A. O, \, @% l, U$ ^
- (setq flag T) ; U, [6 H1 C- K( n! Z& t$ o
- (equal (sslength ss2) (sslength ss3))
' ^. K5 q/ p# Y( w3 K" V - );and
% {0 d( J, V& L - );not6 h% s8 e6 B4 e. `) h" J
- (progn
& {, p* p. B" q, A2 V* w. V - (if flag( ?! i+ A) S+ Y3 {1 t% ^# O
- (setq width nil) ; r6 Y: n# N, r7 T' W8 q( T
- );if: J- J- t) H6 q8 T, f
- );progn
% s' t$ H$ f' I# F* p - );if
1 G+ b. g- @" I: D; {/ N - 9 B) x. {+ v, R1 V& l
- (if (not ( A& t- N7 R {7 P
- (and
! v0 T; G X9 X' v% |- f6 a. v! N - ss" b! E4 V- i' C# r7 o8 P6 D
- (progn (command "_.select" ss "") 7 k* S. ?. y" M& b& _6 E
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq8 g* b3 m" i9 T0 m
- )
: l4 `8 {: ~) t - (setq na (ssname ss2 0)
5 [4 E! |; ?6 g - e1 (entget na)
7 v. k; i/ q; X V; e - width_a (cdr (assoc 40 e1))2 z) k( x5 X, F' t6 M; p
- width_b (cdr (assoc 41 e1))* v# m( e" T9 `- }4 L4 n9 _" r
- );setq
% N! W" q# S6 q u* J, ?# ` - (equal width_a width_b), R! P& z9 k5 h: J& a
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")% `6 n5 @, O3 W; _* M9 c7 g9 R9 G
- (cons 40 width_a)
3 M/ ~" D9 O3 @8 W' m) f - (cons 41 width_b)
; H. Y9 j0 U9 u - );list* ^; ]( U- [+ U% I; n4 n/ X* W
- );ssget
* u+ i. o2 f3 ]3 b - );setq& A* W9 }$ ]6 V9 `* [: A
- (setq flag2 T) |, ^; E" l% W1 t3 C
- (equal (sslength ss2) (sslength ss3))
: k, S+ N* L/ ~5 [ - );and
' i0 R9 r6 k/ z5 x, [9 N" y! U( b3 G - );not # w% l" @2 I8 v+ `
- (progn
6 c8 M1 n$ `( u! \ - (if flag2
5 D! {5 o9 C# A" j G0 m6 T# x% ~) J6 _ - (setq width nil);setq
/ f/ F' g9 c1 t - );if
# v+ t% `; |: D0 h+ d# F - );progn then
2 F0 u3 F* u+ R& d7 T9 U0 @: H o - (progn
" r# {) t' I% ? - (if (or (equal width "")) |4 u6 v0 L5 T% \
- (not flag)
& g' [9 @0 h2 E* T( I/ D7 l - );or
# a. @( E& K2 Z" I) T - (setq width width_a)
( G s8 o& R# }1 i( i0 J - (progn
- k( x( U. P5 g6 i0 K- [ - (if (not (equal width width_a))( ^2 h2 m9 G3 P9 X/ V) a* j3 d
- (setq width "")
1 X& h Y% c# I/ C" n" ]. Q8 M - );if ?& L0 _; K# P: k2 T
- );progn
1 l9 n' }1 Z. M1 x9 b9 j - );if
6 ^2 K( U: d0 \! U8 f) w - );progn, Y" O/ v0 z! d" U& @7 B# O- U
- );if: I8 [) a# N2 ?4 f* b
-
0 ]/ @5 I* _5 ?0 [
9 Q& @1 M# E; v, H6 m% C- ;now for the special handling for old polylines9 ]& q# ^& {) D- V8 w- @
- (if (and width & J& j' z: E4 p/ {! r
- (equal width 0.0)
) {& r7 Y; i( V - flag2
- L+ B8 H/ X* s5 D; E- f - );and
& e4 K; I$ ^. u' t& C - (progn* m# e4 b/ d0 C. v5 d7 R
- 4 r- A& U( }" C
- (setq n 0);setq
8 O/ S$ K+ ~ J) r$ t7 t - (while (and (equal width 0.0)% I* M& P6 [, v/ k+ W3 o! @
- (< n (sslength ss3))# h- k4 R1 S: u' `9 N }' `' Y
- );and
) w) N% I+ M! x, u3 m$ }5 t: v - (setq flag nil
+ R6 S ^( d% v. w! w j2 d - na (ssname ss3 n)
! B$ K* R& N/ U1 i& x7 F - na (entnext na)6 @9 S* _# Q) h$ r, m- e0 h
- e1 (entget na)
0 n0 m& v6 q! K) V - );setq
7 }, U* N4 k5 \5 g1 A$ k& K - (while (not flag) d9 V: M) t3 c6 M
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND"). ^% S4 k0 }5 X: |
- (not (equal (cdr (assoc 40 e1)) 0.0))4 K( n1 i% R9 ^ m/ m- z' ]
- (not (equal (cdr (assoc 41 e1)) 0.0))7 B% ` r9 Y! k8 c3 n
- );or, h: {/ z# @- T! c. M" g% D
- (progn
6 Q1 O3 [' \- z# z5 E - (setq flag T);
7 J4 R2 ?; a' O, W7 Z& Q - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))8 C$ ^" }+ E" `! F* q( u
- (setq width nil) 7 W% h1 \' ^, @3 Y U6 r
- );if
. Y" j1 K. b( d4 H - );progn then jump out of the loop& E2 l; y9 |# [8 W
- (setq na (entnext na)
0 i8 M; f, V2 e# l0 m# R/ W1 ` - e1 (entget na)
) I* d/ w6 k- k" |9 a: P - );setq
! H4 |) v X7 g) s7 w1 J - );if
7 u3 F' H2 j7 e) @: b* F# G0 @6 ] - );while
1 D# h& d. T* P) G9 D4 L - (setq n (+ n 1));setq
5 W. j/ K7 B; ~0 Z) I - );while $ m+ P' g4 Q3 W, ^. ?
-
1 P. A% B$ Q9 I - );progn then it's a legacy 4 R" q' D( Y5 R- L
- );if ;legacy polylines that may have varying widths ' \5 E; `5 p* a, P( `
( U7 ? M1 v* a% M+ C# ]0 J0 v, _- c- (if (not width)6 u/ s" A* o" k
- (setq width "");setq; l) K5 l, q9 i! n2 G
- );if
9 w) u# r( o5 S2 X" } - (if (not (equal 'STR (type width)))- V( p {6 [; I
- (setq width (ai_rtos width));setq ' T: P5 G' D! X- ^+ G; A' J! ^2 h2 c
- );if
* [4 W; f, T& _+ c/ X0 A2 i8 v - ; L% }4 r3 S$ Y. T& K8 M+ i# e
- width ' K( ^+ ~) B9 @1 {
- );defun pl_width_getter, ?9 L( U( m! [2 S+ H
- 2 u, o7 _6 z4 W- H
- 2 E6 ~# @0 X/ a& l
- (defun match-col (/ ncolor)
/ c& u! T, z( S4 u) t. P' | - (setq ncolor (cdr (assoc 62 elist)))
5 C' |$ h% v- U3 B - (if (not ncolor) (setq ncolor 256))% }% y9 P% a: Y" t3 a
- (if (/= color ncolor)8 x: }) a* j" o" r
- (progn
8 {0 d3 n9 s6 P$ K - (setq chk-col nil)/ _+ Y/ h- J/ l$ E/ K
- (setq color nil)% t7 C* [. t) ~$ U X; F: @
- )1 S& U+ f* X5 T$ p( j
- )
7 }& Z0 `( ~- x1 y+ b- Q1 J) j - )5 d# S' {; Y- l. t8 ]
- ' V$ P' P4 o: j! p
- (defun match-lt (/ nltype)7 B8 D. B7 h& Y. V
- (setq nltype (cdr (assoc 6 elist)))
9 y$ k Y! k" i, r2 c+ r$ s - (if (not nltype) (setq nltype "BYLAYER")), h4 ^! d$ r1 X0 w9 X
- (if (/= ltype nltype): ^* }4 w5 E* e; l8 U& o% n
- (progn
- j. h: \3 ^; Y1 h# M7 z* w! \ - (setq chk-lt nil)
+ H, {1 N7 u+ u0 P - (setq ltype ;|MSG0|;"Varies")5 [8 W0 z# a6 f( U( o
- )$ t$ \5 }& ]7 F2 q' ~, h
- )
/ W# @7 C7 L6 X; n+ b - )! p& x+ G* p# ~7 K1 [" p5 [
- " M6 c" H+ x6 |7 r$ t# v
- (defun match-lay (/ nlayer)3 n y0 H7 H! F- p
- (setq nlayer (cdr (assoc 8 elist)))0 }9 [4 e2 G) i' d
- (if (/= layer nlayer)/ }8 j, p8 \, {% T- P
- (progn( [2 {. Y, U3 x+ S0 V9 ?
- (setq chk-lay nil)
1 ?% M9 Z; v+ Y6 m7 u3 i - (setq layer ;|MSG0|;"Varies")$ ~+ ^$ X5 K- T1 Z. M
- )8 z# Q9 [( _4 O( Y; ?/ P
- )- H: @. l. m0 G" A5 u) {
- )2 X1 D! ?" B) |& i$ r, c' y
- , [, B5 j$ C# z
- (defun match-th (/ nthickness)% H% w8 @8 o2 E
- (setq nthickness (cdr (assoc 39 elist)))
* _% X/ a0 G/ x% ~3 P - (if (not nthickness) (setq nthickness 0))
L( C1 G! @' p/ M8 V - (if (/= thickness nthickness), }" `7 ]3 Q- K* W' G9 W! _
- (progn
! q+ I1 L- \4 y# @ A. X0 g - (setq chk-th nil)0 U. K. a* x" Q. E; [5 |3 q
- (setq thickness ;|MSG0|;"Varies"), ]4 P+ w( y- o5 p7 ?
- )
v2 u, b1 V t! G5 r4 z - )% Y# e' V U) W1 Z
- )6 K, E! j: R% u8 ~
- : Q7 V T, o3 R
- (defun match-lts (/ nltscale) I) u# Q' K# j0 U8 n" y) ^
- (setq nltscale (cdr (assoc 48 elist)))
$ I/ k- p( a% E, b; \ - (if (not nltscale) (setq nltscale 1))
5 R9 z, i8 p! A: W' { - (if (/= ltscale nltscale)# f$ T" p9 i: |9 g- c
- (progn3 Q; s+ t: L3 N5 A; q3 @1 H
- (setq chk-lts nil)
! m! | ]+ q. g. b* I+ R; h! Q- O - (setq ltscale ;|MSG0|;"Varies")6 j4 p" _) s( \$ }7 p8 h6 ~; j% y
- )6 b- Y; V, x* l" j4 u
- )
/ m# ^4 D3 f8 q4 R0 s# b - )4 w* O1 o' \- ^/ h! P
& Q% r F$ o" u- ;;
* t4 J2 L5 y' e/ _ - ;; If an item is a member of the list, then return its index number, else) Q, @9 p% _7 u+ A* e8 u
- ;; return nil.% c1 p& W' o$ [. {+ F4 V! f
- ;;$ I Z* E0 W$ [0 k7 ?
- (defun getindex (item itemlist / m n)' x q5 ^0 Z+ B" g7 P; `
- (setq n (length itemlist))' f4 y2 z1 l3 G0 i5 A; R" p
- (if (> (setq m (length (member item itemlist))) 0)9 a E3 g5 P. q$ Y' g8 O
- (- n m)' R3 b9 d( X! s r7 ~3 B6 k
- nil, ^4 n O# z" e" G- g' N7 n
- )9 D( s' v5 D) Z) U' e6 X* p7 K
- )
9 P+ G6 U" [: }+ q - ;;/ b6 u2 i; }) k9 R
- ;; This function is called if the linetype is set "BYLAYER". It finds the
* N3 J7 P6 k1 ]* g' i - ;; ltype of the layer so it can be displayed beside the linetype button.( K- `: k% |1 W- U# V/ a
- ;;0 f1 O# h' G' {/ W
- (defun bylayer_lt (/ layname layinfo ltype)
. D: z* u1 G( J7 t2 i5 k% b! g9 J - (if lay-idx
9 a. v9 Z' e. U( P) F' f! j( B - (progn
9 T- \ H0 Q3 q) r - (setq layname (nth lay-idx laynmlst))
0 C9 ] `! V, \/ r8 y - (setq layinfo (tblsearch "layer" layname))
+ ] M# q5 ]% e. s7 {( |" R - (setq ltype (cdr (assoc 6 layinfo)))
}% O/ {% c Z3 G. q2 p' [ - (strcat "BYLAYER" " (" ltype ")")- z$ `4 |' ~# P5 d3 k. u
- )
, z8 z+ {& ]5 ^- A! t9 U n: \ - "BYLAYER"
" s, J& `) O5 H& H. g6 G - )' Y- `& w- n f2 U& z8 W2 \4 q/ C! k X
- )9 _+ Q4 t) Y. `+ h5 c4 i" e% X
- ;;
& f% X$ C, E7 `5 {' @ - ;; This function is called if the color is set "BYLAYER". It finds the; Z: P6 x5 U0 N' e4 W F+ E: |4 U4 i8 g
- ;; color of the layer so it can be displayed beside the color button.* I0 N. g/ Q9 W- E4 K7 @6 F' V
- ;;
; [+ c% b+ b- j5 Q( O - (defun bylayer_col (/ layname layinfo color)
5 q; V6 l& j3 _ - (if lay-idx
+ E/ x7 S* X* g; g* ?' @) H9 f1 Z - (progn0 Y6 {9 X) m( a) o Z/ W
- (setq layname (nth lay-idx laynmlst))# a8 }- U6 ] Q8 n; w1 N6 D
- (setq layinfo (tblsearch "layer" layname))
7 g# H" e+ p7 I6 y, J" W: u - (setq color (abs (cdr (assoc 62 layinfo))))' p* k) g. j+ l, J8 {9 h. g9 s
- (setq cn color)$ l4 F l2 q; B3 T2 i- u( S
- (strcat "BYLAYER" " (" (colorname color) ")")
& k- w& K8 {) v - )
& H$ h: N3 I7 s - (progn
* i! {6 n! y; X1 s" H# F. s, a - (setq layname elayer); ]9 o; O: }0 q& l8 `& C
- (if (and (/= elayer "") j# i( s1 S" s1 _( @7 s" s
- (/= elayer "Varies")
: x) S: E/ }7 a - );and
0 V5 g: z' {* \! w0 G5 e - (progn
% N$ M) q. f& M: e7 d& \" c( F - (setq layinfo (tblsearch "layer" elayer)), G$ h/ g+ G5 Q4 [/ L5 W
- (setq color (abs (cdr (assoc 62 layinfo))))
- F9 _ C. B6 H: U- J6 ~ - (setq cn color)& u+ [0 A- ^! B! C1 @
- (strcat "BYLAYER" " (" (colorname color) ")")% r" q5 Q' }7 z" v' L8 _
- )& b2 j! w: f- B- e; m% ^9 `
- (progn' t6 y5 e+ E2 [7 ~
- (setq cn 0)
% p5 q1 g z% x* v8 W% U - "BYLAYER"7 \ F z: ]+ T
- ). e4 A+ @6 ^2 a1 c* B" R
- );if0 X- Z: m6 c2 i
- );progn3 T& _1 w# S# w9 `+ W/ b( ~, P
- );if+ _1 Q) ~/ t( q% m1 n! }$ A
- )1 j( z9 b* F" k3 e6 X# ?7 p3 N
- ;;. M3 q- U) j) V* _# P. S0 K
- ;; If there is no error message, then close the dialogue9 y$ U T6 a" v, Y
- ;; \1 U8 u* |& W' h) I7 c
- ;; If there is an error message, then set focus to the tile4 E+ C! Y& Z. L+ p
- ;; that's associated with the error message.& C3 `7 p2 u/ h: {6 d
- ;;
0 ^, G4 b6 C- g* ~ - (defun test-ok ( / errtile)4 B1 @$ q* Y( x3 y8 f2 m; H
- (setq errtile (get_tile "error"))
. b v# \$ P7 E4 h& o) m - (cond
B+ X$ N& @- c- s6 i4 z k& Y - ( (= errtile "")
# t* e- f |7 _: h9 M5 ~& _0 u. X - (done_dialog 1))+ S. i$ D; b7 M
- ( (= errtile "Invalid thickness.")/ p5 K4 V+ |% ~( E6 [& W
- (mode_tile "eb_thickness" 2)) Q0 |0 a& g- T2 _/ N7 R; r& r: j% b
- )3 m& ~: \2 S! h
- )! N0 ?9 L" H) F# V* T( R
- ;;4 t4 u9 r7 L J1 F( R8 f ]
- ;; OK in main dialogue.
4 i, G0 F4 x+ [" L! \5 W - ;;% {; k. X; l8 J" }& G
- (defun test-main-ok ( / flag)( v: A2 p/ z. l; m0 m9 l
- (setq flag T)
5 A+ m5 I, Q9 X - (if (not (or (distof (get_tile "eb_thickness"))
/ l3 F5 Y; t) y$ S# r - (= "" (get_tile "eb_thickness"))
" U. K0 R/ @" V' c3 V6 L3 o$ J$ z - );or) G& m9 g# m- T% \
- );not; S/ I8 W; ^8 |. d" _3 D
- (progn
/ F& e$ H% y; o - (set_tile "error" "Invalid thickness.")0 @- ^" W$ ?: |6 ]8 k& k
- (mode_tile "eb_thickness" 2)- p# T7 h, D% p7 h6 g1 D
- (setq flag nil);setq6 o. _7 `" @, _. J
- );progn
. \- R. o) w V5 Z - );if9 i8 i$ F! q/ a) \
- (if (and flag
- K% o, S5 K! Z- m5 O - (not (or (< 0 (distof (get_tile "eb_ltscale")))1 R& y! p+ Q. ]. E' P9 t
- (= "" (get_tile "eb_ltscale"))
W8 R8 V' }( `, Z. h0 i0 ~, R - );or
; F' j. N0 p' o - );not- E6 }8 ~( ?! p! O
- );and 0 ^9 D" D) s- T5 V7 s& M: g4 C/ G
- (progn
- Z9 K2 F7 b# P3 o1 Z, U$ A8 }; r - (set_tile "error" "Invalid ltscale.")
1 ?4 b. i. e: _% s. Z2 z( T - (mode_tile "eb_ltscale" 2)6 P3 P4 V2 P7 I' |; v$ J4 c4 p3 d4 Z0 }
- (setq flag nil); ; K+ b( R& E4 n) r; r8 o0 P# V$ F
- );progn then
7 z: O# f( Z; k$ v) T - );if \" r2 e$ L% S4 R) J) W. J
- (if (and flag& o W7 z! P% t$ |9 C4 J: j
- ; Don't test the tile's value unless it's enabled., C/ a- X# }/ c$ F6 J
- ; We're not set up for the display-only value
` A" {$ B; n: T - ; of "" here in the error handler.
$ _5 Q" r/ E6 o - (= 2 (logand 2 eflag))
; _ Z* D, S5 y, p P3 V1 n - (not (or (< 0 (distof (get_tile "text_hgt")))' }* c" }( Q, x# Q# H
- (= "" (get_tile "text_hgt"))
& H- L, D% Z! W4 ]9 z: l - );or* ^# R1 ~3 J9 x3 w' n
- );not, [ Z: M* `4 P# [8 P+ v
- );and
* @5 y' F0 u! z4 `4 S - (progn
* Y% I* ^5 e! l) I y5 V - (set_tile "error" "Invalid height.")7 ~$ M" C7 J, ^6 n M. a
- (mode_tile "text_hgt" 2)
& x* t7 b3 B& z h! w4 |8 C - (setq flag nil);
! q+ E+ K6 a$ N/ y; f - );progn then
( N7 T' x4 }! `: N! I3 C Z - );if
, b# ~* n" M1 V6 p* F - (if (and flag% Q( x2 L3 a+ [% ^" x; L& R
- (= 1 (logand 1 eflag))
4 c6 e9 _# t# A$ A! z! k, w - (not (or (<= 0 (distof (get_tile "poly_wid")))
- R. Z+ E- I( s" X0 q: Z7 { - (= "" (get_tile "poly_wid"))$ [2 X6 [! U Q) Z- ^
- );or
1 r/ ?* K; F3 b$ J0 z' y8 w) u) n - );not
% L6 ^( ^0 a1 h1 B1 t4 } - );and
8 a( c# c. f0 t* @" w" P - (progn
' i+ b7 I7 u5 ?- }1 l V. j - (set_tile "error" "Invalid width.")$ D3 N% v, S% @& w1 h7 }+ h
- (mode_tile "poly_wid" 2)) O3 c: @1 l7 y0 }
- (setq flag nil)
6 h3 G2 Y: w. c$ }5 `& B - );progn then
; T. F& m0 ?1 ~- _ - );if 3 D& e8 \5 k/ C q6 P. B
- (if (and flag4 z; L6 t: O7 w
- (= 1 (logand 1 eflag))
" _2 h" d9 b3 ~4 \# i% q! |; G9 } - (not (or (distof (get_tile "poly_elev"))
$ y8 M5 n X, E# X7 u5 ` - (= "" (get_tile "poly_elev"))
$ `0 \; i9 a1 X9 E- Z8 H - );or
( k' _; l+ k' |9 l, [' G - );not0 ^. k: D3 _! b
- );and
2 A m, Y/ p/ g; z* x% v# f - (progn
3 u* ~0 I" ^" p8 c$ L4 R' H - (set_tile "error" "Invalid elevation.")
: p. h; b; @0 _. ~ - (mode_tile "poly_elev" 2)
; r. T' B. X3 ? - (setq flag nil)* Z2 V; B) X& o) ?+ C% Y ^3 x
- );progn then( z; h, e& V& a: H- l0 ^" W
- );if
9 S1 H c( h+ k' }# B4 S - (if flag
$ V, z. F) l% D1 Z - (done_dialog 1). B" B e! h9 p! Y$ I6 L9 z( V! f& P
- );if; b, [& f" S3 Y) u8 y
- );defun test-main-ok
/ M' Y# F8 ?+ ~9 ]: I7 Z2 G6 b2 q - + k1 r: L) n) }; I7 y5 m
- ;;4 \" o, u1 H6 p/ {1 X
- ;; A color function used by getlayer.; p& y5 E5 }0 K6 h0 u
- ;;' N$ K+ K8 B ^1 y
- (defun colorname (colnum)
# |9 ~" k& q! h [ B- o" I - (setq cn (abs colnum))4 K2 e+ @5 F: k7 w9 n, \9 Y: q4 B
- (cond ((= cn 1) "red")& n& H {* I3 |5 G6 M- s3 c: D
- ((= cn 2) "yellow")0 W, F4 c; l# t, Z& P0 x( H
- ((= cn 3) "green")$ z8 L6 |/ X5 c6 i* @% y! [
- ((= cn 4) "cyan")
- r% e, c% G9 Z& n. a - ((= cn 5) "blue")- ]" u% T/ L6 P8 d6 w) T; N
- ((= cn 6) "magenta")
" ]# O. w8 A8 G5 r0 n - ((= cn 7) "white")
; L, O/ H. M0 t/ ~; e* ^5 p - (T (itoa cn))
9 _9 Z/ a7 h, j0 L% I: Z, J: S' f - )6 T: f0 M6 ], ~: d; @
- );defun
1 ?& h$ U' O, P% Z! Q# a7 q - ( h. c& c- w+ U' E6 X
- ;;; Construct layer and ltype lists and initialize all
' p( @; X0 i0 f - ;;; program variables:
9 T- m, k' x8 x" l - . ?# c8 K6 \8 d# {0 f! n% @
- ; (makelaylists) ; layer list - laynmlst' D5 d7 D/ p- n% C
2 F. k' X. L7 J; l6 @- * [ `/ f% B9 v) o# T: h6 I$ m s
- (makeltlists) ; linetype lists - ltnmlst, mdashlist. O) u* ?' ]+ [9 F# ]& |* x# A
- * q* z4 d) ?+ F' Y6 g4 G
- ;; Find the property values of the selection set.
+ H5 |# w" g& u; Z+ b - ;; (getprops ss) returns a list of properties from
) h4 c$ ^% W1 e8 h3 h - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
2 o& k* b7 W: g, e# f% R
9 i& |. o& A# l0 o- (setq proplist (getprops ss));@rk interesting things happen here
. u$ k) q5 S$ W6 [1 b
( {1 S- e! H0 {: q- (setq
8 g' o5 H4 x, L0 N9 P - ecolor (car proplist)
: ]4 t( f# T4 `1 e% z - eltype (nth 1 proplist)
3 H$ O/ B2 v8 S8 q+ J - elayer (nth 2 proplist)& o( c z- Z9 [1 o- w1 Q, i
- ethickness (nth 3 proplist)
0 o) T9 H7 K( Z8 \8 G/ d - eltscale (nth 4 proplist)9 d8 w( Q% i- m( J2 U
- ewidth (nth 5 proplist)
1 v Y& y2 X0 I+ D# m - eelevation (nth 6 proplist)
2 a% Q/ q( h3 y# a+ x - eheight (nth 7 proplist)
) Z5 _2 z Q/ m- H7 H - ;etype (nth 8 proplist);commented out and replaced with the line below. RK./ [5 U% f5 d; S$ G
- eflag (nth 8 proplist)! R3 M, d: k0 N) ]) C
- estyle (nth 9 proplist)
* w7 F# M9 l9 h! U1 c, {1 c - poly_ss (nth 10 proplist)
2 T, C" t4 B/ Y# [: w8 K7 d - txt_ss (nth 11 proplist)( w- a2 F9 U3 Q
- );setq
$ a D/ l: B4 D7 z; z9 R2 y - $ n- ]+ b4 L6 x. l
- ;; Find index of linetype, and layer lists
$ l' e$ o' a5 H - (cond
/ D. W5 }& j% q) q+ }. U! n4 c - ((= eltype "Varies") (setq lt-idx nil))
* B$ F$ a+ F: C( L' _) ` - ((= eltype "BYLAYER"), l2 J& ]4 Y' Q+ N- h
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))/ I; a c& F. p0 u7 h0 y2 ^/ N" d
- ((= eltype "BYBLOCK")8 U6 ?; m1 e* `' m W
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))$ }( @8 t: i3 K U
- (T (setq lt-idx (getindex eltype ltnmlst)))
& c& X5 X4 i, l. t+ G: r4 \! r - )
# Y* m8 j: k3 A. }8 G - (if (= elayer "Varies")
! _6 E7 W! M$ [+ ? - (setq lay-idx nil)5 Y( G9 ~0 q# C- {
- (setq lay-idx (getindex elayer laynmlst))
3 d8 E, x$ F' w+ j( k/ I* J; p - );if. r6 p" ? N0 `3 N( ] E
- (if (= ethickness "")( T2 e0 T- ]% @
- (setq ethickness nil) q+ `, `- v) I6 C/ T
- );if- ]& u9 s9 i' p# I1 ~! [
- (if (= eltscale "")" k; F/ U) }% w- S; |" P# U
- (setq eltscale nil); f* |! r* X, M' v
- );if
! ~* F0 M: _; g+ f4 b+ k! U/ b - , ~: ]- B+ K1 ^, U& G! r
- );defun ddchprop2_init ; end (ddchprop2_init)
% [. Y- a& C! m3 K
8 q, Q( f: F6 q) t- ;;; (ddchprop2_select)5 I( I; u7 H9 \+ ~( X" w4 X; {
- ;;;" j ]% X; q. f7 y2 [
- ;;; Aquires selection set for DDCHPROP2, in one of three ways: `* `5 M) h7 p
- ;;;1 j& p2 h4 u/ @, W/ `2 s: L
- ;;; 1 - Autoselected.
! l9 g o# i! ?- B - ;;; 2 - Prompted for.
. e' n: D/ ^2 X) b0 I# t - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )6 s$ {: b9 n2 m6 g- O" u; f
- ;;;
4 V2 U* ~' y0 I2 K - ;;; The (ddchprop2_select) function also sets the value of the
# }% ]9 k1 J0 O- L2 Y - ;;; global symbol AI_SELTYPE to one of the above three values to
3 R" ~, j+ Y8 g9 q- I - ;;; indicate the method thru which the entity was aquired.- ?8 X( ?. h0 U# \" F3 ?
, t8 ^" Y/ U7 p6 A8 z" T- F! X/ L, r8 ^8 j6 h5 k
- (defun ddchprop2_select ( / ). z5 \& a5 e+ c* y8 n7 @
- & q+ O' f! b" j" K
-
: L& b: z: c6 A) b+ k" X4 j - ;returns only entities in ss that are in the current space. 7 L4 J* B2 O4 f$ ]: I N+ Q3 f) ~9 a
- (defun ss_in_current_space ( ss / a cur_space ss2)6 l- T. ^3 u, L# U/ g
4 B8 G# j& O$ w- (if ss
1 H. Q% y1 L. b i - (progn
: ]: t7 T, | |- P" k - (if (and (equal (getvar "tilemode") 0)
+ ]1 A; e& p) G5 }9 W - (equal (getvar "cvport") 1)' d, K4 U! j/ ` s
- );and
( W- u1 c! ?" L6 d a& a1 Z$ L+ b - (setq cur_space 1);then paper space is where we are.' O* _2 d/ U* ?: w6 c6 U
- (setq cur_space 0);else model space.
8 Y$ G0 `$ h) I0 N: x - );if
7 g- s' k+ x; c0 c. h - (command "_.select" ss "")
. N/ B+ w0 v- T# \; V# E- W' n - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
# y( u# x) w; M5 d+ s. p - (cond ;;;;;tell the user what's going on.
! b% P' I1 @% f$ _ - ((not ss2) (princ "\nNo objects found in current space."))
' m8 h* y% e) p+ c m4 Y - ((not (equal (sslength ss) (sslength ss2)))% p5 G8 J( u3 `7 ^" n3 G
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))& o! w# B- d% K" M
- " object(s) were not in current space."' K4 A% D( P, `
- )+ y- I L8 v; t n' w& f+ x" | ^. o
- )
$ D$ u1 l# Z% ?' x2 ?/ P - )
8 k" k9 ?' L" l% @0 [& ? - );cond
( D) t9 p+ E/ C( M7 Q3 C - );progn then% v' e; B7 h9 U7 H- g) S
- );if
( H# ]3 a& Z' Z% n - ss2. K6 U5 T, r4 U: V
- );defun ss_in_current_space
W* w& [; {. Q" M
, f2 U K$ V- p9 K- m- `% j* ^$ Q$ o3 v+ A
- ;;;begin the work of ddchprop2_select
1 I% B: O' L- n) d: F/ N - / ]1 e/ s7 n0 F9 H' D; b7 J5 u
- ;; temporarily restore original highlight setting.2 O* R& h5 t2 g
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
% N# x$ D1 ~' Q: t3 f0 s - (cond
' j: X$ n9 l) b. m7 D; Q* |- y - ((and ss ) ~3 `% |7 C) ?. R, g
- (eq (type ss) 'pickset)
' m$ t4 b3 j4 o @6 V* s - ) ; selection set passed to! }9 p S; H6 |6 o
- (cond ; (ddchprop2) as argument+ _; R, d) X/ A& J% ]8 L& w$ R' w
- ((not (zerop (sslength ss))) ; If not empty, then* ]; l0 v# J/ M0 C
- (setq ai_seltype 3) ; then return pickset.
( j" [% k, S8 G3 m3 | - (ai_return ss)
; f# a& J# j! o3 P0 h* f* r8 m/ [ - )8 Q6 Z, Q( w0 [1 V F! ?" I
- );cond close% d% E8 }# \4 x( o8 M
- );cond #13 F; [, S$ B* R$ ?4 M
- ((setq ss (ai_aselect))) ; Use current selection
, n* g3 U) ?; {8 V; L - ; set or prompt for objects
' r; y o( J9 w - (T (princ "\nNothing selected.")
+ _" M" a. V: T0 U. K) n7 U - (ai_return nil)
/ q6 m2 E) g, ]. F7 p$ }0 k - )+ ^- l9 L" P' O( K* `3 a) e
- );cond close9 I) f# m- Q9 s, J. K" U
- (b_restore_sysvars)
; Y; i; R. k! _, l
3 `" h4 H$ E$ m- p- ;(if ss% @9 L" R% l; t3 h8 X
- ; (setq ss (ss_remove_locked ss))
% j+ B1 t# o7 c/ M, C& K6 O( ?& r5 A - ;);if- w7 I' s- A; P# N
- (if ss! |; N C$ d, _8 ]1 }" P/ l% P* \0 ]5 D
- (setq ss (ss_in_current_space ss)) & J; o+ K N+ M, W' I
- );if9 f% P/ C, ]1 }; i6 H
- 5 n/ t- j2 c [: c8 N; W0 ^$ c9 J
- ss
' M6 w. Y6 m" m6 | - );defun ddchprop2_select
/ l' i. A$ H5 v3 F2 S6 W: y - / z! _4 f _$ M3 \
- 3 F P% K# n4 B8 S" |8 J- i
- ;;; Define command function.
2 e/ B# C" u9 s3 S( U8 U0 z$ |1 J% I - (defun C:CCH (): E- Z( v& m: V S2 D
- (ddchprop2 nil)) f8 o/ C4 A( p/ l7 d
- (princ)
4 M$ @* O% [4 E5 ~ - );defun( Y5 ~( _/ s3 q g: d
- & S( Y: c, Y0 |/ L" v
* b2 d7 i" X3 K7 }9 t- ;;; Main program function - callable as a subroutine.
; }, [5 V3 D; M5 w - ;;;
! q2 G# C5 _, M - ;;; (ddchprop2 <pickset> )
9 L7 d& E, ?& G x, m4 t8 k2 s - ;;;
. K% a' ]3 @5 o9 [1 m2 Y3 D3 Q1 [ - ;;; <pickset> is the selection set of objects to be changed.
* L4 l4 u5 \# D7 o - ;;;
0 h( J/ c+ j4 h, R# E( {, I9 a7 r - ;;; If <pickset> is nil, then the current selection set is' R' Z0 }4 w. ]1 p
- ;;; aquired, if one exists. Otherwise, the user is prompted
& l0 A- P! Q. Z) ] ~# x - ;;; to select the objects to be changed.% G% n1 I' R, ]( C
- ;;;# t( X6 X# w8 B5 N# n1 h, u
- ;;; Before (ddchprop2) can be called as a subroutine, it must
9 n2 G: x& Q) P/ E - ;;; be loaded first. It is up to the calling application to) l* @3 H! [% Q& \
- ;;; first determine this, and load it if necessary.
# `7 D5 p* k2 T& K) @6 t4 M - 4 B, h+ o3 l- Z$ A( K) I& S& P
- (defun ddchprop2 (ss /+ ]2 o6 w1 [8 r7 y5 \
- ! o* a, V! s# ^5 i5 L
- a
( ]+ j o, E+ y" |5 u! d1 [ - add-mdash( T2 }2 }8 m/ |5 K. t$ K' ?
- assoclist: w; {2 s( L Q( V5 \
- bit-70! @/ _5 @: U+ t( q
- boxlength; {7 K w; H7 t5 L: C4 F" T
- bylayer-lt$ [( w" s/ l8 e! m( t" ~% s# a
- bylayer_col
6 l" t' E+ A) O1 @, {) s1 h- z, a - bylayer_lt
" P/ r" C% l4 D$ T* L! `/ H - call_chp2! c" O/ N" ?7 ]: q8 K2 R9 D+ n4 w
- chk-col
; b# ]7 s5 N, V( z: F7 E - ;chk-etype ;var removed by rk
- _. f# q _& y5 ~# x3 x# w0 m+ x - chk-lay
2 P- o1 W5 {4 ^, ~ - chk-lt
$ [8 H' }! x' ]" x# Q - chk-lts ;var added by rk 9 j2 ^ G1 W8 G% [- E
- chk-th. s8 m, d% |" @
- cmd6 g, r- T% l6 m$ h
- cmdecho+ {' S6 N! e9 @- x5 t
- cn+ ]& a! Q! o0 o! i" m
- cnum
( _% X* Y+ |& j. ?, y& } - col-idx. T8 B1 ~3 D5 q/ d
- col_def; ~( e! w. l8 D6 C
- col_tile
" h6 X# n r+ L$ P5 L - colname& i+ a2 x& O/ r3 m
- colnum
5 z7 Z# |! c) V I* e0 z - color; r# h2 O) e1 _1 R
- colorname/ l) a$ X$ o- j% h3 h. O7 c" \4 p& ]
- cvpname2 q, D) h8 T3 Q# \( g. @
- dash
- z" K/ }9 J- j# V+ R; O- x7 l* S - dashdata) x4 O: f: \' s) c( ?
- dashlist8 }, ~5 o5 G1 W
- dashsize
: c9 A) z# \# { - dcl_id% Z {; I6 M0 }$ a, }6 i+ m$ ~
- ddchprop-err
, I* g$ O" J2 }9 Z5 q% E0 H - drawpattern
$ Z& D. `. i' H; h - ecolor: f$ R2 L. F' `; d" o1 |
- eelevation
9 x& G0 {, ]2 W6 k - eflag
3 F9 [* X0 A9 @( x5 z* M- z - eheight; P9 x* x' G/ A7 L+ ]+ s
- elayer- @" p0 _2 e. @) O& \* M3 q
- elevation+ R3 i. `. u9 N
- elist* k% `5 S" x7 m2 H6 Z, ~7 g
- eltscale0 J' I% w/ \3 r! F) P" Z* `
- eltype
. h/ u% Y" u6 H) T$ Y6 u& n - en
! O6 s6 t/ K# E# S3 N0 e7 H- I- W - ename9 V$ i+ X% u5 A$ J! u' }1 `
- ESTYLE ;var added by rk) j" C# b* p$ v1 V' Q
- ethickness! ^$ d0 x2 H6 E
- ;etype ;var removed by rk' N& k K- Y9 J f4 W
- ewidth
# E. B, q9 u2 B) P- L3 k. B' w - fchk. Q5 |4 m0 B: a" Q! |
- frozth' ~ l" q) \' a6 B" @5 u3 i6 ^
- fx1 C# u- |6 r, B1 p1 w# X
- getcolor
$ c% t; A2 C/ h# ?- k# m8 g - GETELEVATION ;function added by rk6 u2 T5 z: a' K' g9 Z
- GETHEIGHT ;function added by rk
+ _& d1 n; {- H* k$ a& Z4 U2 S- r - getindex1 f* a& p3 W' n& J
- getlayer
: ~& K- g6 l2 a4 l - ;get_locked_layers ;function added and then removed by rk : p" a3 Z- K9 z+ I. L) U
- getltype# m- X- T2 W9 \3 Q- d/ h- ^$ o
- getprops
6 U: |# d9 I3 H( Z$ I9 d - getscale ;function added by rk" h5 ?/ o8 b. k" f5 e
- GETSTYLE ;function added by rk+ i. _& H, s8 e# z4 w9 b3 `
- getthickness
' J7 ?3 y' v* X5 v% u* m4 Z% Y, D - GETWIDTH ;function added by rk% F9 C. D3 n. v( r
- globals6 @) q& R: @2 X1 s5 o/ O! w8 ~
- HAIR_STYLE_LIST ;var added by rk, X1 n1 O7 V$ G C1 T% P# e. X3 r# V
- height5 |+ Q' y& O# T; _+ K3 J" R
- index
) q; ? ]0 A# A, ~! M8 D9 Y! v4 h - item
! y5 a7 s$ a1 \ - item1
: G4 `9 n. j( c6 t+ ^) ? - item2
% d* Z& Q, D( S0 _7 z% O2 l4 @ - itemlist
5 S& b' C5 j) `) z# O* T - lay-idx% ~. }2 p% s# I+ I" x8 O ?' E
- layedit_act; y, ]8 u* M% U* r$ x
- layer+ ~% a2 e7 @* z! |
- layinfo
- H: T! |3 M: k- t$ }& I/ y. \) w& V6 W - laylist* k: k {, f2 G- n3 T
- laylist_act! {# y, I0 h, U/ t% D: v7 a
- layname+ j* [. K, `1 a d' O" N* @' W
- laynmlst: q$ ^% w. Y. C( c8 j
- layvalue
- K V( a* \- A2 p1 z8 G - linetype
2 T# c# a( l. w& s3 ]: a' Y4 G! ~ - list1% m7 R' K. z b; n5 X2 c/ x5 d) l6 I* N
- longlist* `" p5 j% F% |. I! l3 o" `; j
- lt-idx* r' u ?/ V: P% k7 l. X; u7 I& p
- ltabstr/ f6 j- H/ T1 i% K6 `
- ltedit_act" `+ a2 G7 Q2 |5 r
- ltidx
. Z, f' q( o1 i - ltlist
4 c% N0 a6 o/ \/ V9 l' `* x+ B7 a - ltlist16 c/ N8 U( n0 P' f" {( P
- ltlist_act3 n- ^7 N0 w% L. H/ A
- ltname5 ]- k0 ]* T' O/ R0 R6 }+ N* I
- ltnmlst
8 d& `# K) v$ B6 g( o* T - ltvalue F9 ]* S% l5 s2 v3 K0 T6 f& b
- ltype
/ c/ r# s. r* ]6 P, j v5 L0 x - m6 @" [+ F" ?' I: Z$ ~
- makelaylists
% e5 }# V6 q* W - makeltlists
$ I% f; t# i4 E0 j$ e8 C - match-col& |( }( [' y. B- L5 f' B
- ;match-etype ;function removed by rk
0 P; M# @) a6 b" x5 @ - match-in
* w5 d* `- m! w0 Y" O - match-lay
7 u! P e/ f% h+ q - match-lt
. q& k3 r2 b" p1 D c) }4 U - match-lts: M* H1 ]; Y7 ?( p; e* ?
- match-th. J- \. b; ?* v$ _
- match_col4 ^6 J- ~% h8 Q8 M2 H
- mdashlist
0 O, H+ e( y* d9 F6 Y2 e - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk) n1 B% o8 {3 ^1 c
- n5 e' v! ?& t# p, u# l
- name j5 k L4 n3 s$ @; r% J
- ncolor
6 K" ?# a }7 F+ Z8 s) N$ z - nlayer
9 ]: y2 T1 i; [' ~: d8 V8 M - nltype: e4 s9 C' N# R6 \# |# Y6 \
- nthickness
: O! v [! t8 P. I. U - off
! N3 P" A1 O t# K - old-idx
/ t0 c* v. @" D1 e# M% B2 M' w. G - olderr
5 o; T% E& G8 L; p( q - on: w# N6 `" n) _5 r
- onoff/ E& W9 Q0 ~1 ?$ ~- L
- patlist$ Y+ _7 a* u8 u6 W
- pattern7 z3 m: @, w S% u
- PL_WIDTH_GETTER ;function added by rk
& i& Q( }' w% H6 ]3 j3 M( [2 P - POLY_SS ;var added by rk
& P6 Y2 z+ o, [* N" e) ^! v - ;POSITION ;function added by rk and then moved to ac_bonus.lsp% w5 _5 L9 ~- O! z/ z; C2 |( U
- proplist
# z9 S6 K1 W$ z- d - reset-lay( }9 R& T# a5 s; g
- reset-lt
8 V# S. p, R8 o# Q; w% x6 I - s
$ d/ S& g0 o& g" |! w5 u5 m - selset$ ]8 j* U( ? F' {" H8 F9 r, ]
- set_col_tile1 B' C' |' y L# E
- sortlist
# a0 V, H" u: g: M - ss } J9 G7 u' E. `0 `; F
- ss_in_current_space ;function add by rk.3 r. |+ f: f# b; F
- ss-index! M: ^6 _) X4 H0 e, T
- ss-length
: `3 m& a4 j3 ~8 G) z* K - ;ss_remove_locked ;function added and then removed by rk.
& c% ?1 `' p( F4 a) q M - sslen
1 i0 |1 ]5 y) N% J - temp_color
& `; w4 N' C, v9 |& Z: b" @ - templist8 I. @/ l& y. D+ n% V, Y7 h( a0 e
- test-main-ok! {. t# ~7 Q+ i# P! C: q- B
- test-ok
* _& X+ M* ~5 [2 S1 B - testidx
$ H# G% i8 Y7 [: _4 D" _8 h - testlay% e0 f, o/ K1 @/ N5 E) X6 X; B
- th-value# e2 D* q7 H; {: r6 \# E/ K
- thickness) b# h/ N1 E g! G- c3 o& U" f
- tile7 i( K+ D5 @+ M, X% p
- tile_rect
9 _% E6 l9 \9 s+ n - tilemode$ T; z- g6 _& K! m+ G2 y
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
3 ?, Z* j9 |: X! a: t! `+ v - TXT_SS ;var added by rk. y' U3 t, C( |- {% e1 P8 ^
- ;undo_init ;removed by rk.
# b( w; x1 Y/ E: j& F3 }3 l4 v* M - vi
7 [& O/ G, o S$ S- g* p1 r2 E - vpf8 A' e* G! w. V7 `2 p. L
- vpldata0 y2 q: d& d3 B( ?7 H! A
- vpn
1 m" b, [" K1 Q9 A z - which_tiles3 M7 S$ X4 J8 C/ |- i- Z2 N
- width
# ^ l9 _( D7 i7 Z+ U& b - x" L" }$ e! M! `; z/ e
- x1" K0 y r, K" f) y' E
- x20 D5 M6 y) k3 H- _! T7 B" O$ U
- xdlist0 i2 f% ^7 s( e, `1 R' I0 k
- y; j6 l% P* ~/ Z% n% V) E" @
- y1* Q$ P: k9 F' B' D- R7 W. ^0 ~ `4 b
- y2
7 _ c4 K' }/ B) Y - )
% i% n. b$ |- S A9 f6 a& S - N$ W3 t3 @; f. @ l/ }
- (if (and (not init_bonus_error) 9 l& W f* ]" @# e$ T+ v; I
- (equal -1 (load "ac_bonus.lsp" -1))
# Y4 L% k+ ?( l% N- J5 }, o9 w0 A3 c0 A - );and" m* T' x8 b+ M
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))1 [9 w5 i, u% w# `
- );if/ J. K" m6 l e2 G6 e( L4 N
- (init_bonus_error (list O/ C- {* G8 | e
- (list "cmdecho" 0
' x) o8 g/ r; t# c. J) @ - "highlight" 0
$ y& I6 k6 H+ E - "regenmode" 1
8 J1 f& `6 | J' V! ]5 ^ - "ucsicon" 0+ W2 b# s" Z# \+ L+ n4 g2 K) W
- )
, W Q* i2 x/ n! Q+ T4 @ Z4 q% @ - T ;flag. True means use undo for error clean up.
; S# B# u3 n3 f) @9 q" u - );list / y: r6 j3 C' t( Y1 ?1 ~
- );init_bonus_error. U/ F- B1 d) l" ^+ g8 g/ n0 c
- - y9 k, R% s0 e
- (cond2 T" R5 M' x" y8 S; u! |
- ( (not (ai_notrans))) ; Not transparent?5 _7 g, O. x9 @9 j
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
8 T; @' B4 i$ H6 V+ h0 Z - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
7 N9 {3 Q( x8 O1 m2 @" o - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
6 P/ h, m2 c5 z - (t
' X* y2 N- L! O+ F - ;(ai_undo_push)
0 m) D7 p- d$ k - (ddchprop2_init) ; Everything's cool,( l6 e) n) y. J. z
- (call_chp2) ; so proceed!. p6 f; S* _/ s7 c9 R+ c7 k
- ;(ai_undo_pop)& }, Q7 q2 P7 W ^6 g# |
- )9 ?# C- w; w3 b6 G @2 w
- );cond close5 M2 D9 L) D4 u' t! l/ A0 f
- ' \! [, s H1 h+ u
- (restore_old_error)
# Y; G# C N) _9 g Z) | - $ Y' `! m' D1 ?
- (princ)4 z; g4 A! g3 z- W6 u3 a: X3 _' ^
- );defun ddchprop27 i+ |, U0 q5 e+ F8 u$ j* X
: V; h- ?" p8 D3 z# j9 |2 M3 @& @- ;;;----------------------------------------------------------------------------, j% h/ f$ x/ P* m; n) \- }
- 8 `: d; O6 a2 w3 J
- (princ " EXCHPROP loaded.")! F/ a: e1 n- ^" B1 p
- (princ)- r! Q* O: M$ C
) A: X: r# x6 O$ n3 x+ t6 ^- ;;;----------------------------------------------------------------------------
: `0 m" V- C' V2 P+ J - ;;;---------------------------------DDCOLOR_LSP--------------------------------
; x& z# z& Q D$ v - ;;;----------------------------------------------------------------------------
# b! T% }! a7 D" [. f - # u- L( O& ^0 ~. P& A. `9 k
- ; Next available MSG number is 24
3 k v2 @2 a0 l4 ^- D" o/ k - ; MODULE_ID DDCOLOR_LSP_& [2 d& i1 a' D( r# T
- ;;;7 D2 g4 d3 o* b
- ;;; ddcolor.lsp& P3 y2 @8 {5 f2 z: r
- ;;;
/ u2 D# m) q v. P( _7 x) { - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
\* U) S; a* T; [ - ;;;* l5 d1 C% I+ S" |( {2 k+ a, Y
- ;;; Permission to use, copy, modify, and distribute this software% e! t. G- ` n' ~/ ?
- ;;; for any purpose and without fee is hereby granted, provided1 e( p9 g* U' g T, W
- ;;; that the above copyright notice appears in all copies and
: k7 x3 h& C0 Q( W# i0 B+ t9 Q - ;;; that both that copyright notice and the limited warranty and1 G" G3 g. g' y: f9 m
- ;;; restricted rights notice below appear in all supporting0 S4 o' e: q! G5 t( a" O
- ;;; documentation.* E9 |9 ~; h* b2 {
- ;;;
! `6 {" i0 \$ J - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS." S; w: a( k# z# ~' o3 R) N
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF/ f- G3 n0 X) V; B& t j4 W, ?
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
1 f7 P9 e2 D' _2 E' y - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE# G( T! t* z! T6 V; P9 t
- ;;; UNINTERRUPTED OR ERROR FREE.
Q' S5 D A3 y& a8 q5 @; S2 k, d - ;;;% ?( i0 a% k+ i
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
0 R/ G0 |. U0 C! T& F9 K9 [4 n - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
4 t/ R( s) m9 g8 C5 v - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ( n9 {! k) r( l
- ;;; (Rights in Technical Data and Computer Software), as applicable.
* O# p4 K) r$ } i - ;;;
O9 f4 V. r) B$ y# B/ w( B - ;;;.6 z: v0 m9 H# z3 v2 B3 B
- ;;;
3 B1 o" r1 W3 f - ;;;----------------------------------------------------------------------------
9 w2 E/ t+ n% |8 E/ }; X/ G# J) X+ D - ;;; DESCRIPTION
$ Z7 }" S+ m B& k - ;;;
6 E) F+ x3 V$ A& ~3 F+ E5 g - ;;; Chromatic Pallete style color selection dialog.
* T4 @8 m% [( ~! @$ B/ U - ;;; $ E- {4 L. W9 q+ i. M2 p( k
- ;;; Globals:( N" {# d1 P/ a
- ;;; ' S8 e/ W/ Z( ?5 N7 W; }
- ;;; chroma_color - Integer color index. The last value selected4 B# u, Z2 Y8 s1 {" j
- ;;; by the user in chroma dialog. It is not cleared or reset, H1 Q9 e9 L7 z- C0 ?' U7 H
- ;;; by a cancel. Only used for communication between callback
/ ]$ Q9 O4 e$ A8 g9 ] - ;;; functions and the (chroma) funciton.
& {! J1 I) A$ `8 j - ;;; 7 V. Y8 U3 O$ d( Q- g6 k# Q
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.3 Y$ N% N7 _9 G: V
- ;;; & Y. `5 D2 Z. A$ h# J7 Q* o% S# I
- ;;;( h3 i1 K, z/ t' g( f7 g( X
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
. [4 I/ x# }' L* v - ;;; pallete style color selector.6 n c0 S' J6 w4 Q
- ;;;9 A/ u! u! W6 T) ?* [! ]
- ;;; ===========================================================================
9 O* @+ u3 N# P: ?$ y2 n7 B4 g3 ? - ;;; ===================== load-time error checking ============================0 r; r$ I, W2 i2 s6 s! A' o# S) ^
- ;;;
$ k5 l. K( E5 W* j% C2 H
, L' Z) W7 w! U0 a" y% a- (defun ai_abort (app msg)
* S" P$ t) g% p' B$ J; { - (defun *error* (s)0 n( q/ ]+ h8 t3 h5 o
- (if old_error (setq *error* old_error))
/ W' f2 Z8 G; Y# V' c; }# w - (princ)- y6 s- W3 w9 ?% c) w5 r4 \
- )# ^9 a: V* c* e+ N
- (if msg
R8 v: D& ` @3 W0 @ - (alert (strcat " Application error: "
0 G: F w& I; |) y - app
! S/ e% s# P7 `" `$ |+ ] - " \n\n "* ? a# q8 ]6 M* L
- msg* r) Q. ?" v( t
- " \n"
( ^, R+ W& f5 n( L, B/ P6 }4 | - )# L. Q5 x. x& S/ Q6 p
- )
( G7 V: l6 L# G+ |/ ~7 }0 f; q - )
( l+ b' [9 w6 }" l - (exit)% M, j& |' O+ H1 E" r6 J# ?6 G- Y
- )
' H2 i9 f$ E8 n4 y
) I% q2 ]. } x1 b' y) ?; d2 ^# _% ?0 t- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
% P6 B3 N1 W k) a% p7 f& A$ h; o - ;;; and then try to load it.
% I) B1 [. j6 p+ W+ [0 B: N5 G/ L - ;;;; ~8 L/ Z- G7 e+ m
- ;;; If it can't be found or it can't be loaded, then abort the/ }3 F" Y4 i# [. `0 ~) c3 {, {
- ;;; loading of this file immediately, preserving the (autoload)# o. |; N0 F" T4 `
- ;;; stub function.0 ]6 d$ s$ n! ^# ?- B+ f
$ j5 a% |# R; f4 y: L+ y% w- (cond
$ c9 x$ L" L" k9 S7 m - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
# C8 r A. I! l m7 B
$ }0 c; a( D4 ~) B, l4 n& w( e- ( (not (findfile "ai_utils.lsp")) ; find it
& X8 |9 w( v4 o - (ai_abort "DDCOLOR"; }7 B3 ~' {; @2 I& d$ F, N
- (strcat "Can't locate file AI_UTILS.LSP."( Q1 F& T3 ^2 d% \! Z- X7 h2 E2 G; R
- "\n Check support directory."))): O0 _# r K7 c& O% r5 ]
- # R0 o& ^$ L2 T. S6 o* f' ? m' Z
- ( (eq "failed" (load "ai_utils" "failed")) ; load it: ^; R$ L ^" W( ]
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
+ m8 b7 v( C% _; [2 M9 j - )
. p2 Z# `0 P2 q, U - " e) ^& U0 R; G/ h! d
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP* Q8 U6 G9 |) l; J
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses- ?! b- K% B) y% T- j4 [ h$ `/ O) |
- ) ; ai_abort's alert box dialog.
$ ?- N1 E8 G5 |+ f0 _4 H% ]7 i
4 u. Y! M% q/ V- ;;; ==================== end load-time operations ===========================
/ X( _/ D& d( u8 _6 Y) d* z, d) G - $ h. d7 v1 H: F7 h9 h4 P
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)6 T( n o7 a, K+ t: F
- 9 i) ~( C8 G# Q7 `
- ;; Main Color function, called by setup code.
) B1 L) w2 X; L; r - (defun ddcolor_main()' H: {0 S& Z* @. u
- 9 W# k* d! s- |4 Q! a+ O! @
- (graphscr)* p( B. R7 `, C* r: B3 g
- 5 ] u: |) N4 E: P% u, d8 s% G" ]
- ;; Get the color of the current layer, for possible BYLAYER color swatch.$ g K# q% Y, D, L
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
. L, E. E6 v: k j5 _# v8 q5 u
; J2 N5 x& p4 q0 k" y( ~& \1 B! G- ;; Call the dialog here...% O% B' l6 ` I. @* D) q) C" ^
- (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))* ~+ d* ]6 @1 p+ u* Y1 x+ h' u
1 N. O, S$ B% |) e) G6 v- (if clr3 w* b% y2 A# R) k/ F9 ^% D4 L
- (setvar "CECOLOR" (citocs clr)))4 [: N9 F' f5 {% V" v( l- a* b
- )3 l, R& F3 G6 ^
- ; I& ?8 O5 l C# G- Y" J0 S
- ;;;. N I3 D# e9 X$ ~# W: p
- ;;; CSTOCI -- Color string to color index
( [, _- |2 N- O* H: F- Y - ;;; Convert an arbitrary case string into a color index.
3 Y0 W: p2 f( D2 [ - ;;; Returns nil if string is not a valid color.7 U$ y' I7 X) j
- ;;;
, u( E' n& g/ U$ h5 [3 q) e) u7 N - (defun cstoci (str)
1 ~- e' ^. t7 j! ~( k - (setq str (strcase str))$ ~0 {4 ], j! e+ t- N( w
- (cond# s0 }8 L" y& P {2 _1 T
- ((= str "RED") 1)
3 |+ e ^( ]. ?4 r8 t: q - ((= str "YELLOW") 2)8 _; B, ^$ q5 K( c0 o/ }
- ((= str "GREEN") 3), j0 O6 U3 ~6 c2 Q; |+ T1 M4 W" k
- ((= str "CYAN") 4)
1 f& }2 H! X, x; L& Z - ((= str "BLUE") 5)0 M8 J& |3 z$ h/ ~- d7 P' s
- ((= str "MAGENTA") 6)
$ F# v& `$ Q( f0 p2 \8 d0 |; g - ((= str "WHITE") 7)- e' {, v/ w0 M, }$ g9 B' {2 `/ N
- ((= str "BYLAYER") 256)
, i7 Y; M6 ^2 V# i$ F8 G c6 f - ((= str "BYBLOCK") 0)
1 y9 x4 o8 t; } g+ |6 { R - ((= str "BY LAYER") 256)- O, t: w5 F3 J/ [& Z) @9 n8 U
- ((= str "BY BLOCK") 0)+ Q- V. l" X7 s# [* ?8 p
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))" [% b, g3 T& N
- (nil))6 R, d& q8 u- W
- )6 r" ]) ?% O! @$ q
" v& q+ H( A2 L2 h
8 Q7 b& S: w; N' P$ V- i- ;;;+ Z$ i. q2 d- i2 `6 I
- ;;; CITOCS -- Convert color index into standard color name.
8 _- w" ~) D- X- G: B6 f/ T - ;;; Will return the standard and logical color names as text7 G5 [; `+ E& N( [; v1 c3 P
- ;;; strings. Returns nil for out-of-range color indicies.
1 n( b% }/ O4 N - ;;;/ J* ?: M& S1 q
- (defun citocs(i), r! ~+ e4 q$ k! g6 b& c" C3 x, }
- (cond: Y; C( p7 `% l6 }; c- W
- ((= i 0) "BYBLOCK")5 ] I: Z [4 ]( d! i
- ((= i 1) "red")
7 Y; F/ G; ]3 w7 d$ v! v" J( x& N9 ]0 x - ((= i 2) "yellow")
" O; M6 y" ^- K5 n - ((= i 3) "green")$ X) d" K. H8 G( d
- ((= i 4) "cyan")
) w4 b# V5 H5 b3 Y, c3 }4 S7 h- M* } - ((= i 5) "blue")
W/ N6 [* n- J1 b% { - ((= i 6) "magenta")
. K7 h5 i* @; O0 A! K. |0 m - ((= i 7) "white")2 V' r0 `' _: n( R/ C8 g* L
- ((= i 256) "BYLAYER")) D( f; W3 t b
- ((and (< 0 i) (> 256 i)) (itoa i))) x: R0 ~( o, R% T0 u
- (nil))
2 @' ]* |8 Q# d) e - )
! @; f( _" l! n. @ r: z$ \- e - 9 f }, H8 m( L
- ;; Start of ddcolor% I8 r9 `2 i3 {3 z2 v8 g
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
2 R9 s/ B! S) {: p0 ]1 N) u - old_error *error* ; save current error function
8 ^: U6 Z5 k$ i% e5 c# W - *error* ai_error ; new error function) f; P0 E) [0 A: `
- )+ R8 Z) i9 N8 H6 Y
) F) J0 ]+ L, p* D% i- (setvar "cmdecho" 0)
9 L9 r7 h0 {" m7 k E# Q) e - , ^: t- I8 O. x. o, c
- (cond1 ~2 i& \$ B7 t, Z
- ( (not (ai_trans))) ; transparent OK) _, ?, T$ U3 L+ V
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
: a9 Y1 w; l+ t) s - 1 k: e I1 H4 T3 Y3 m7 M" }$ `" K* U
- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))& X# `% l7 {+ W0 o
- (/= 8 (logand 8 (getvar "cmdactive")))8 O u* ^* ?' n3 Y$ ?) z u8 }5 ] ^
- )
# A& [- \: q3 Z - (ai_undo_push)
9 h; a/ H2 n* |: z5 L j: J5 d' M% k - ); k3 _2 ~ q' q
- }# Y8 W K( F: Z- (ddcolor_main) ; proceed!2 G5 ?3 z) }' k( V X K
- 4 S [; v1 H( \9 p1 S1 u
- (if (and (/= 1 (logand 1 (getvar "cmdactive")))8 L' t' a/ K& c2 q; ^0 t4 }3 K& l
- (/= 8 (logand 8 (getvar "cmdactive"))): y- i) Z) }. w8 g- ~
- ); b9 Q. t6 ^ p& j# w0 n0 n
- (ai_undo_pop)
2 y8 ~+ p9 H. v - )
+ b: I4 R+ m2 _* s; ` - )5 s i p% o$ F p# y0 ^8 }* P
- )
8 y+ a1 P) ?) |0 E- i - * K3 u" ?. @' K; R8 v8 B9 h! }
- (setq *error* old_error) & X; S4 E5 C7 }$ u: E. S
- (setvar "cmdecho" old_cmd)4 {2 V% H2 w( i% Y( l
- (princ); s2 _3 I$ i% M% X+ S: a; [
- 1 D1 h/ V% |, W& h; q0 K5 [
- )/ ]" g* M9 T7 e: u( \
- 7 C _. t$ |+ l
- ;;;---------------------------------------------------------------------------- k" o$ X7 l2 p" ]! e1 k' b
5 H C: ^. C3 t- (princ " DDCOLOR loaded. ")
2 m9 u4 l) B2 x$ r - (princ) Y0 e# ], N o7 K$ r
* h0 X8 E$ X2 ]; D5 r5 `% U- ;;;--------------------------------------------------------------------------;
* ^' W9 z: j1 u - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
+ ?9 t) b6 u7 ^/ s - ;;;--------------------------------------------------------------------------;
+ a) G: x7 [1 D! l - ;;; ssx.lsp/ x# `# [/ y* ^! ]8 o8 ~
- ;;; Copyright (C) 1990 by Autodesk, Inc.0 X: X# T9 m) L t0 K- X
- ;;; Copyright (C) 1991 by Control Systems, Inc.
/ Z3 l( J& u" }- X% b# o0 h @! u P - ;;;
9 C# K7 d8 \+ L - ;;; Permission to use, copy, modify, and distribute this software and its; \: q5 ~! ]4 l- h
- ;;; documentation for any purpose and without fee is hereby granted.) C/ p' e: I/ A. D
- ;;;
; z; D6 ^" Z) a - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.& p" u; d' m$ V. N2 @ H
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF- Z% b# y! V. _: A$ L O
- ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.2 c7 ]4 x( x) [* E7 r
- ;;;
8 X1 R. Q+ I H% u( M2 |2 f - ;;; Larry Knott Version 2.0 7/18/88& r/ s; P& \5 w0 r% ?( z1 _
- ;;; Carl Bethea & Jan S. Yoder Version 3.0% A4 h; b# E1 R! Y
- ;;; Enhancements to (ssx).
3 p/ s- w, a- S3 n7 H# A - ;;; 15 March 1990 # g* z! l- H d3 I% [8 d& z4 |
- ;;;" M. _9 a- X0 R. y* R4 K4 ]
- ;;; ARTIST Software, Inc Version 4.0 December 1991
, S/ D; L% c+ k- v: y% Z1 H/ ~ - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,5 p$ I( z& z9 S+ n
- ;;; use Flexicon menus
1 K/ ?% N3 T6 \ - ;;;& }' z5 F: @9 b9 N8 C3 {
- ;;;--------------------------------------------------------------------------;
" C* R, @6 r2 i1 e* _ - ;;; DESCRIPTION
1 L+ @% V" H2 G4 J p. u6 _ - ;;; SSX.LSP 8 N- W+ p/ x2 R! \8 l4 s5 w+ k9 a; X: `9 ^
- ;;; 2 T m9 i" N7 a$ ~ d: u" _5 P
- ;;; "(SSX)" - Easy SSGET filter routine. - s) j2 f, x' ?9 t( o, J& ]
- ;;; ( J4 O* g* i6 b3 i
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
9 t! R6 F& n2 ], w) F" b/ Q/ r. G - ;;; to create a "previous" selection set or type "(SSX)" in response to
4 B: V2 F7 `1 j3 q: }0 L - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add ( b, k$ k3 U. X, g
- ;;; entities and "(R)" to remove entities from a selection set during ) L2 p/ v: P0 b: A5 i6 G5 ^
- ;;; object selection. More than one filter criteria can be used at a 1 Y/ B! \" t' Y% i2 C/ }2 M; C7 E
- ;;; time. 9 W8 d$ p5 V# ~ r- d6 Z5 f8 Z
- ;;;
8 j. P* W0 U" A: w) }, Q( |7 [ - ;;; SSX returns a selection set either exactly like a selected
2 e; i% |: M- L1 L4 ~; u1 T9 q \ - ;;; entity or, by adjusting the filter list, similar to it.
8 i8 D2 N7 `6 }& S - ;;;
1 T6 K8 D' G9 ~5 C - ;;; The initial prompt is this:
) Z, c5 r( a) M% i$ I - ;;;
& F0 H. q' {4 c1 { - ;;; Command: ssx
0 H- M+ _- q3 t9 [/ V( ]" y0 u - ;;; Select object/<None>: (RETURN)
& l( n- h) ~& O ~" Z; }; ^ - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 5 I) `6 V, k, r, E: b6 n! Q
- ;;; 6 C A3 W0 M& U
- ;;; Pressing RETURN at the initial prompt gives you a null selection : Y. H7 p$ q+ J- u4 e, `7 N
- ;;; mechanism just as (ssx) did in Release 10, but you may select an * x- ]) v, i- q0 }+ l8 I e; O/ Y% _
- ;;; entity if you desire. If you do so, then the list of valid types 0 v8 C7 x8 P# i( [& F
- ;;; allowed by (ssget "x") are presented on the command line.' Q2 M: e0 _ L4 Y# }& S ~
- ;;; - S0 a* ], @! O3 g6 } r6 N( [
- ;;; Select object/<None>: (a LINE selected)
; z' z: N7 K% }. u% i: u7 ?" S - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) ! e- _+ }% }8 b5 n6 f' f m: Q% f
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
. d+ D$ t* e! Q8 M0 x" t( U - ;;; ( I9 i7 I) _- z, i' _2 f
- ;;; At this point any of these filters may be removed by selecting the
$ d4 @- L9 M: d3 k% @" K: V( m - ;;; option keyword, then pressing RETURN.' Y, R' D \0 `$ Z$ j
- ;;;
9 E6 G/ [- k' ~1 K - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
8 f3 Q; z* j7 F+ I7 I* ^" T& N - ;;; & m* y; r8 P. r" K& ~
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))& g( J' i* |) a/ M$ E# U+ E
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
3 }- t/ R7 X1 x) A. g3 A! G - ;;; + f0 }( X" {$ p
- ;;; If an item exists in the filter list and you elect to add a new item, $ h- K6 _& N! z5 y
- ;;; the old value is overwritten by the new value, as you can have only / Q% \. w- X( H L
- ;;; one of each type in a single (ssget "x") call.8 I6 |2 T. P w* j) Z+ N- k
- ;;;
$ b* _9 ~/ P. u E - ;;;--------------------------------------------------------------------------;
/ N3 {- f$ G$ u5 H) f - ;;;) N3 p# n! s/ M
- ;;; Find the dotted pairs that are valid filters for ssget
- I* G; B3 V# W+ l1 x3 X, I; O - ;;; in entity named "ent".
0 V' x& g& ~& Q: Y - ;;;7 ?) [- s( M" {4 Q
- ;;; ssx_fe == SSX_Find_Entity: @0 |2 @# G2 j" G5 @6 B
- ;;;7 y5 u" {( Q9 w6 p; k
- (defun ssx_fe (/ x data fltr ent)
: Y" v" c" N; i2 g' v- t - (if (and (= flexvar 1)(/= t2 "Pick"))
3 n) K7 w% b& u, A7 B - (setq ent nil)
7 f y3 I2 e! L+ f/ b - (setq ent (car (entsel "\nSelect object/<None>: "))): ]/ p5 o& n/ ~; z9 t
- )
9 J: ^+ U" p4 ~4 m6 v - (if ent
/ h0 `3 U2 o$ i* T f, } - (progn
# \( }% T3 x I! N. e$ W/ F- q - (setq data (entget ent))# Y3 Q* M$ H% @) z
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
& \% y- }/ Y- u8 }" i - (if (assoc x data)) L5 O% o5 Q0 S. K
- (setq fltr A8 f3 ~* Y. g" a
- (cons (assoc x data) fltr)
! h; P& L0 t% [8 j3 j - )4 {) ?% d/ w; h' g
- )
2 q5 g- D0 [$ ^: a4 H! S; \" n' N - ) ; B6 K& ]* s, g
- (reverse fltr)' O0 w6 _1 `0 C+ ?; |
- )
9 W2 R7 o1 z* y0 b2 X - ) * ^7 o0 f6 L% N& U% C; y
- )
5 G3 H, C5 m& E9 Q* {: }) x9 c - ;;;
9 p, `+ b( ?, M! O: t - ;;; Remove "element" from "alist".
. Z# s; h2 |. C, B5 K - ;;;* ~3 b9 s5 Z3 r' F& S
- ;;; ssx_re == SSX_Remove_Element
+ R. g' K" U# `2 A - ;;; S+ }8 c8 a. Q, d
- (defun ssx_re (element alist)
) L. h- X% o* J' ]4 M - (append7 t" z* J7 @9 F ?. q8 d2 x
- (reverse (cdr (member element (reverse alist))))! T' E% v; z/ {) N3 p6 p
- (cdr (member element alist)) 9 {5 g# Q+ `# D1 N
- )2 k4 p5 i/ x: z) q" D' W3 }
- )
3 @1 P! ?% T; u" }3 U - ;;;
( ]/ E7 }7 i( e - ;;; INTERNAL ERROR HANDLER
, n1 Q7 x" s/ {# N+ U - ;;;5 L4 ?7 ?' ^: v' E
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
8 f j3 Z$ u5 v4 C* X, H - ; while this command is active...
9 g: V$ v7 V& d" w- w0 ? ^- u - (if (/= s "Function cancelled")2 {6 v2 C& G) B1 a" U
- (princ (strcat "\nError: " s))
/ E* f- P* n# y( `, p i - )% t; f( O: N$ h' e. [
- (if olderr (setq *error* olderr)) ; Restore old *error* handler
+ H4 n+ Q- U0 N/ O% U0 E - (setq flexvar 0)4 I1 g0 ~, `1 S/ [& R6 N
- (princ)
) i, _9 a4 J- o/ y - )
! V, S! j% I2 J [$ }1 g* o - ;;;
( ]5 }* d# ?2 h. | - ;;; Flexicon call routine/ {5 o+ u6 P$ O! M( C- \% Y
- ;;;
2 [" W" r- i$ [7 q - (defun flexmnu (a)
$ L2 F! u1 R$ G - (if (= flexvar 1)
, b% d4 @$ Y6 |$ I6 S2 [! l - (command "FLEXICON" (strcat "FLEX" a))
! v# K J/ y$ k( u/ T. G% H: S - ); m# A0 ^- ]; G6 J0 e7 y3 L
- )% ]" z* T) L6 ^0 |
- . x1 a5 b* [( H( m$ R w
- ;;;
! Q; K, a# E8 \4 R) } - ;;; Get the filtered sel-set.& Q7 g3 r, k3 l8 ]& C# j8 U4 h
- ;;;9 {! ^& k# h2 A0 Q6 J6 t% N6 A; p3 p
- ;;;
. ?0 V9 ]1 A( y7 y; u1 n - (defun ssx (/ olderr)
( }- U2 z% q0 {" z, c: [* ` - (gc) ; close any sel-sets
! `$ P1 J" u9 O4 V - (setq olderr *error*
/ Z! y! ~4 ]- E+ t - *error* ssx_er
1 \. s- h; s0 G) F% i1 U* i8 \5 A - )' ^' _9 o$ H9 D ]! S- Y
- (setq fltr (ssx_fe)) u# M: O/ m N- _8 q$ Q* V
- (ssx_gf fltr) ( g) H0 S7 B# v3 H7 v& o
- (if (= flexvar 1)# M$ M4 f: f# o* C; a; P) {9 Z1 G
- (progn
4 ^! N+ k8 F: @& \1 Q4 J5 N2 f - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")3 @: l$ F: t6 O
- (flexmnu "EDIT")
y% p) p: |& w, Q+ V- z - )
/ T& R( a3 ~8 s1 | - (command "p")
/ t& V+ _8 E) }# {- x' P u - )
- \3 \6 y+ P3 K/ h+ Z4 m* w$ y - (princ)
& ]. e$ W8 n" |/ U# e - )
. p; V2 j( ]& F6 N3 B9 U" I" p2 k% a$ D - ;;;
* F8 _6 ^& H" M. r3 S - ;;; Build the filter list up by picking, selecting an item to add,
5 Z' o, s- k* h( B: } - ;;; or remove an item from the list by selecting it and pressing RETURN.
& [( `: q7 E3 t" w- Z! j1 y+ ~5 F' m+ E - ;;;) d! _4 d s# }! [/ ?" s
- ;;; ssx_gf == SSX_Get_Filters1 s: n0 M( G) t {9 ` A
- ;;;( ]7 J$ ^0 P8 B3 @7 M& C% d1 ^) x
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2); o3 j8 Q# O* J* N2 c
- (while 1 y1 t: X# L" F3 _
- (progn
) ~ ^. P0 [$ q1 X' H' ^ - (flexmnu "SSX")# y! @% Y% \: b4 _. n
- (cond (f1 (prompt "\nFilter: ") (prin1 f1))): p. ?8 |% t/ P: l* J; R, |
- (initget : B' T6 L, h+ M8 V/ N b
- "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
" X# a* M' [8 a" {% o - (setq t1 (getkword (strcat
^0 u: w; N$ T e - "\n>>Block name/Color/Entity/Flag/"4 C# R. m4 T5 |! Z2 L# D$ v/ `6 b3 w
- "LAyer/LType/Pick/Style/Thickness/Vector: ")))
/ t5 J5 a3 ?: v - )
# _% G& i+ ~2 v8 i- D - (setq t2) P2 v# i6 H$ Q9 D' `7 X
- (cond( W: j) m' B- n9 H
- ((eq t1 "Block") 2) ((eq t1 "Color") 62)$ b7 Z; L0 h0 Y ~- S
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)# |9 ]% @* N+ v; B! A$ K0 o
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)3 G3 e7 m/ T: c6 d% D) F. {& k
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)0 Y, G4 r% ~" j9 [& x% i: s0 I$ m! s
- ((eq t1 "Vector") 210)7 I$ D: U' O. G: H1 {
- (T t1)7 x9 K1 j- k- M7 U+ n5 X3 k0 I
- )) a) B. E! U( `
- )
% ~+ w% k7 Y- J - (setq t3
9 w$ S$ E! a( I- j' [& B7 l - (cond5 e) P% c* ?) h
- ((= t2 2); E/ R* A( h6 A I; B% M/ @
- (if (= flexvar gtads 1)/ U7 A; [/ _5 c& e
- (progn4 t1 [/ T+ ` V0 \7 g8 d
- (prompt "\n>>Block name to add/<RETURN to remove>: ")
1 b: i, S: s$ c) I5 N2 A; o - (gttable "BLOCK")1 ~# M% [3 [9 f% i+ m
- )
- k# J9 w; S+ I7 M# G. y/ h - (getstring "\n>>Block name to add/<RETURN to remove>: ") q! t6 a5 @0 u2 F* |' l% }
- )
) f3 N- w' c& ]4 L - )
C1 y( `, y+ k1 `) ~* y* J: Q+ E - ((= t2 62) (initget 4 "?")
8 a' i/ _& m5 O# K7 O$ [ U# c7 ?5 m - (cond
5 d5 j$ v, m6 Y F' P - ((or (eq (setq t3 (getint
% _6 m/ |) F. s - "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
4 ?" V# T/ }/ q - (> t3 256))0 k# @8 j% `- i% X7 {. X
- (ssx_pc) ; Print color values.6 G% n! ~: _( @4 y
- nil/ `, e u0 C3 e7 a" v
- )" |+ s8 ~9 g2 _+ q/ @
- (T$ J, G' [: R0 L/ Q4 v
- t3 ; Return t3.0 h6 Y( l6 @) @3 x9 U& ]5 _
- )$ p% E" V& E& n! W. n# Y
- )
! m( p0 @" O, ?# R6 S - )
6 n2 x0 _" P* [5 ~) N - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))+ B% _! \$ }" r
- ((= t2 8)( M& s' c# _& j; p% K) {
- (if (= flexvar gtads 1)
+ x7 ?- A8 P4 u - (progn
" b0 p7 q2 p* O( b5 d1 J x! r" V - (prompt "\n>>Layer name to add/<RETURN to remove>: ")+ y$ B+ X( K0 N/ y( C1 U
- (gttable "LAYER")
8 p r9 F1 X0 X" T6 e9 z/ H+ X% Z - ). E* i5 O/ W2 ~! m
- (getstring "\n>>Layer name to add/<RETURN to remove>: ")# w! \$ d/ u: X7 u
- )
9 ^5 Z3 j( x- ^! a5 m* n - )' {+ T2 Q; Z0 x( [# ^
- ((= t2 6) * o0 v! F6 {8 L6 Q; x! M
- (if (= flexvar gtads 1)8 M3 m; P. t7 v# g p. p
- (progn
) P5 L! o& g: {$ o - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
" m y% }6 u, J2 A5 q! w# g, w - (gttable "LTYPE"). M2 |8 V3 g/ E- S# @; N
- )1 _. S# ^" ?6 C7 H3 ?
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")8 a+ @* z( K/ k$ c6 |
- )2 i6 Z* m0 u8 j0 n
- )
' X& A# U6 K) K' Q( g - ((= t2 7) , E+ r2 u! F" e( d* }1 ] F
- (if (= flexvar gtads 1)
' R8 } f$ `9 X' S4 f - (progn% k; @# \- r2 _: n" ~
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")
7 ?5 u4 S* x1 J! ?( o$ c( G' Q. \ - (gttable "STYLE")
6 ^- L- M" |0 |" q# ~* y - )- E2 E7 }/ F% r" h: X/ z/ v) z
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")+ y1 D6 W4 B9 U1 Z" R; l- v3 j
- )1 [, F7 J9 q d3 f
- )+ D; X X9 P) Q$ j8 M$ f5 A( w
- ((= t2 39)2 V9 S1 @6 J( F0 m' k& d& q$ ]* ^
- (prompt "\n>>Thickness to add/<RETURN to remove>: ")
2 n7 l1 J7 n$ ~7 b - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
" B6 {8 \) k$ ^3 }# ` - )' X4 c7 z0 L5 V1 ?( }3 u; _
- ((= t2 66) (if (assoc 66 f1) nil 1))1 U# e8 C. h( @* t
- ((= t2 210) $ E/ i+ `2 ]% A4 B2 r9 m! p% C
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: "). x. R6 [/ a) }3 W5 p+ Y- U
- )
9 I$ `4 n4 }, R1 q+ @ - (T nil)0 s& z" B9 g4 z( }* w
- )
$ g# g; l5 P# \; }. p2 b, [6 D) x - )
% `9 {# y& i2 I( V% P - (cond
% G# R: r8 h" y0 C: n6 f - ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity, D& N3 n* s+ z9 [
- ((and f1 (assoc t2 f1)) ; already in the list
% [% |2 d4 l- h! y2 d - (if (and t3 (/= t3 ""))/ k" U4 ?2 W" g5 I6 t; P
- ;; Replace with a new value... 0 X' F0 c0 j7 `
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) ; L6 [, `# l6 a- u) b P# p; B
- ;; Remove it from filter list...
. u0 c" J5 m+ j2 I" Z1 ` - (setq f1 (ssx_re (assoc t2 f1) f1)) ; w4 @( f" G5 x2 w
- )
% r$ T0 H8 k. }; Y M$ W9 L - )
( T4 ?- I* a2 ^4 q& i$ d: T5 } - ((and t3 (/= t3 ""))' G2 N" G5 K6 Y1 Q" L; s. a/ s
- (setq f1 (cons (cons t2 t3) f1))
9 O+ x% {4 a; M) F3 m9 m( J9 W1 g - )" O! l' O0 r0 b5 w3 @ |; J0 [
- (T nil)3 R% g: N- R+ {4 B
- )
! |; X* N6 F- [% D- u7 p$ W8 U | - )
5 l# e ~5 }5 B! s - (if f1 (setq f2 (ssget "x" f1)))
5 Z I, I T3 y$ l6 b$ h1 ]6 x5 E - (setq *error* olderr)
0 ]# [4 O7 @" } - (if (and f1 f2)
3 [: Y8 c# e+ t - (progn
0 E) g# H3 B' a( n7 c - (princ (strcat "\n" (itoa (sslength f2)) " found. "))
3 j9 I9 p# [) o- | M( ~+ Q* s; F - f2
+ M; O- B9 `( q! z; z7 U7 x - )6 N) z$ g9 R' C; _- q
- (progn (princ "\n0 found.") (prin1)): _4 i& b1 c- p3 I7 E
- )
9 v5 L; F! f! I2 W: Q - )4 ~, F* n7 J6 P1 G$ q+ @
- ;;;
+ \2 \1 g7 k* q - ;;; Print the standard color assignments.
! X1 Y9 G' C1 r) A e - ;;;& Y! p' U0 }$ R2 ^5 g4 b
- ;;;0 X" ?/ E8 I% b3 }5 q8 M
- (defun ssx_pc ()- y! g8 Q4 n: C: b
- (if textpage (textpage) (textscr))8 Z: `& B; s* H, w! P4 W2 v H
- (princ "\n "). V+ E* H5 J g, R( A4 f
- (princ "\n Color number | Standard meaning ")
! I3 y' |- f8 \8 u: I8 w' [& o - (princ "\n ________________|____________________")3 J! w/ d$ z5 ]2 z
- (princ "\n | ")
/ I, R K- ]4 d! I5 l( D - (princ "\n 0 | <BYBLOCK> ")
& }. z/ v: K9 S - (princ "\n 1 | Red ")
4 J8 `/ e# i+ l5 Q - (princ "\n 2 | Yellow ")% y' } }$ d) r* t8 D9 ?8 T( @) M
- (princ "\n 3 | Green ")
" a' I( t' W6 S- m' i - (princ "\n 4 | Cyan ")3 N5 i5 N9 }# ?. I
- (princ "\n 5 | Blue ")
/ I1 E% E4 k; d" j$ f - (princ "\n 6 | Magenta ")1 @: J& @2 I( N4 r/ _0 S
- (princ "\n 7 | White ")$ C7 U1 `$ o/ y% m
- (princ "\n 8...255 | -Varies- ")
, Z- a- O" m) A9 Q - (princ "\n 256 | <BYLAYER> ")* L# y" s, i' |, } d
- (princ "\n \n\n\n")/ w! V( L( A9 R2 [ P4 ^/ Z& A
- )
8 N/ S7 |( x) o2 m$ v" u% L! r" } - ;;;& l! I! a- d! B( T: c6 ~
- ;;; C: function definition.
, B- \ O# I3 u - ;;;" B/ p( |" n8 W e* [
- (defun c:ssx () (ssx)(princ))
* @4 f4 B3 o1 H; k5 w4 D" k1 I - (princ "\n\tType \"ssx\" at a Command: prompt or ")
7 ~5 V: G7 s b# _1 z - (princ "\n\t(ssx) at any object selection prompt. ")2 r7 z5 X' | U% v- a# m8 n
- (princ)
* G) g: O0 i" \! }% b
0 R$ b! }# [- D y' B5 H- ;;;--------------------------------------------------------------------------;' W4 b6 {" a! s p
- ;;;--------------------------------------------------------------------------;0 Y, ]) c2 R" Q, F0 n
- ;;;--------------------------------------------------------------------------;
6 `8 T! I+ ]4 L# ~# g - (defun S::STARTUP (), ^ F& H' a. m5 ?. `* f
- (setvar "cmdecho" 0)9 r# p% X$ z+ ?; s% g; [
- (setvar "cmdecho" 1)
( f9 l' E/ y1 |6 j6 U - (setvar "LTSCALE" 10)
/ S2 u) T' P7 a4 W% Z - 4 O: k2 p/ O4 k; ?3 p5 w
- ;(command "_load" "chenKH.fas")
) j9 U- D5 ^3 l - ;(command "_load" "ctcot.fas")
- Y# Y8 S) _5 v1 X - ;(command "_load" "damdoc.fas")
7 `1 _7 w: b! h7 X" p! M - ;(command "_load" "ghichu.fas")/ i1 B; u9 C" c( |
- ;(command "_load" "hamtutao.lsp")- | W$ f6 J3 M: T
- ;(command "_load" "KHOITAO.fas")
. {/ z& y& q! Y; r - ;(command "_load" "KHthep.fas"): i: a; u6 l; e; w+ w) I
- ;(command "_load" "mbmong.dcl")
- J3 m4 ]* h3 v7 Q3 D* c* { - ;(command "_load" "mbmong.fas")
$ m8 b$ B' d7 E0 l - ;(command "_load" "mccot.fas")
# ^7 b2 w1 c7 {5 k - ;(command "_load" "mcdam.fas")
% `' h8 s4 c- H. I" w - ;(command "_load" "mcmong1.dcl")% n3 B) O" Y4 i9 @$ p% f: C! R! {
- ;(command "_load" "mcmong1.fas")
. n+ b) p5 q) E: o v - ;(command "_load" "mcmong2.dcl")
5 _2 d& Q( o+ a- o - ;(command "_load" "mcmong2.fas")& R/ N o4 v+ @+ ?
- ;(command "_load" "mcmong3.dcl")
. `- k. d6 }8 \3 P1 X - ;(command "_load" "mcmong3.fas")
, i: `0 h0 j& M& H8 _ - ;(command "_load" "mcsan.fas")
5 n" i) ~* g/ C8 G8 P - ;(command "_load" "thepdai.fas")
) u4 n! T+ ]+ @. I! M, F# C' Y - ;(command "_load" "thepdoc.fas")
) p0 l* F& W3 l A. w8 @' s - ;(command "_load" "thepmb.fas")
0 a, m8 L7 N2 G1 }) b9 A - ;(command "_load" "thepphbo.fas")& _ g8 d* @: i3 ^" v
- (command "_script" "thongso.scr")* k, U$ D4 N, e% `; ?: L
- ;(command "_load" "thongso1.dcl")4 y s5 g* V& ~9 c: j
- ;(command "_load" "thongso1.fas") B8 g; G3 W6 c# [* c
- ;(command "_load" "thongso2.dcl")
% P8 d$ n7 r8 g2 N& v - ;(command "_load" "thongso2.fas")
% P+ `6 j" G+ U' g. V' M g3 Q& X - ;(command "_load" "tietdien.fas")" U! i- P2 S; w6 Z
- ;(command "_load" "vehan.fas")
$ a L- m4 X% ]* u. t. Y - (command "_load" "phamDuy782006_TKT.lsp")
/ N; j l1 V m( K9 h( }: [' l - (command "_load" "phamduy782006ganhtd.lsp"). n8 ?- Q5 M. F3 x0 S3 {9 y
- (command "_load" "phamduy782006ganhtds.lsp")
% m# W1 o* N& w- f) X( @ - (command "_load" "phamduy782006htd.dcl")
- Z5 ~. b; B- G- z G! O! k - (princ)
" |% B$ t4 t% ?0 S' k6 O - )4 m! N3 Q% H6 Z+ j) `8 W, N
- * R0 h4 e0 l0 }7 n! g& d/ }
- ;; Silent load.
8 P' y9 f- V# p# U) C - (princ)8 R9 o/ h# D; q5 H0 u+ V. V
- " ? `: ] @9 u3 v0 E
- 1 Z4 B3 {- X4 ~9 @6 i
- ;; Silent load for the Express Tools.
5 }) Y) k0 I/ c; v e0 ~; _ - ;; Altering this line will affect Express Tools functionality- e( m @( C/ c* a
- (load "acettest.fas" (princ)): u, d( f% [9 d+ x
- �32
Sao chép mã
' Z9 `$ A' J* H l( p" s00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ+ R% N7 r+ {- ]& i9 x7 Y
|
|