|
|
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 n: n2 u; B! k - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *8 A" _5 t! Q6 d+ w. M: l7 Z
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *2 I+ T! S' B" U
- * Suu tam & Soan *
% \+ [( R3 P# b6 J - ********************************************************************************
# w; v6 E5 @5 Q! D! D+ [3 T$ x - ! ~2 a2 U9 c3 w4 S' Q! d1 ]
- ; Next available MSG number is 104- n" c2 _ R# c6 s
- ; MODULE_ID ACAD2000doc_LSP_( U! h, X" s) e- |9 T0 z
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
" V5 X2 V# W3 ~4 ?4 l! | - ;;;" j! Y% ^7 Y9 Z* G, w# {( y
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.9 ?/ ]1 Z5 r( j* X7 @: ?
- ;;;
6 @" d6 J" {5 o. r) T, S- l - ;;; Permission to use, copy, modify, and distribute this software7 G7 v2 K2 E7 e% S
- ;;; for any purpose and without fee is hereby granted, provided- _/ L1 r. j$ \% F
- ;;; that the above copyright notice appears in all copies and" T0 H, i1 X, K5 Q6 d' M/ j
- ;;; that both that copyright notice and the limited warranty and) O8 m( S" | D
- ;;; restricted rights notice below appear in all supporting: R6 q' Y" |* {: Z, O( d" ?
- ;;; documentation.% e/ U9 t" F, `' R) M
- ;;;
9 w }7 g8 u( z- T; N; Y - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
+ Q+ A% Y; E Q U% Z' \( ` - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF* B# G* H, q* i7 D) B/ v% N2 U3 L- I
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.: X( W4 P% r8 `5 o, n
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE' q; e4 Y5 m; c
- ;;; UNINTERRUPTED OR ERROR FREE.7 D* M) n, c; S* _; v$ r3 F
- ;;;
% D- x! o- h1 j! E/ Q5 w - ;;; Use, duplication, or disclosure by the U.S. Government is subject to0 F) Y8 y( {1 Q2 q" {
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer) m4 r$ @4 p O n4 i5 N, P
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
U: R' a) h) f% v9 u) M - ;;; (Rights in Technical Data and Computer Software), as applicable.! J7 O) O3 B5 B2 ]' B1 |
- ;;;9 z. i0 u- q$ p
- ;;;., Q& I5 h- D; n! }" v) i- Y0 ~" O
- ;;;/ m0 D- [8 W5 k! W1 m, F$ C T5 ?
- ;;; Note:
3 w1 N G9 E# W. L+ w1 f$ R/ @ - ;;; This file is loaded automatically by AutoCAD every time $ d. a# z* J+ g: I
- ;;; a drawing is opened. It establishes an autoloader and" a' _5 v6 k& c( }' R1 z. |. j
- ;;; other utility functions.) ?" E- ^9 Y4 `9 [ r
- ;;;
! c2 ~2 |! w5 r4 ^ - ;;; Globalization Note:
' w% f7 L, S, k9 K - ;;; We do not support autoloading applications by the native
6 g- ^ {" L o) M: K- f/ ? - ;;; language command call (e.g. with the leading underscore
$ O7 e1 b! u) c' r+ c6 [% Q6 x - ;;; mechanism.)
4 ^; Q4 u3 w' L2 ]: V. b% ?2 Z
1 n2 h3 y6 o4 ?1 R2 ?- 2 d- p! P. `9 l; x4 i: A# X
- ;;;===== Raster Image Support for Clipboard Paste Special =====
$ E& G4 K% B+ X( B( `7 s, q - ;;
- ]( j) @2 C: s$ c. k, n& e - ;; IMAGEFILE
: z- m/ H, {- p - ;;% Z0 L5 y( I' t9 I( Z# z; Y5 @
- ;; Allow the IMAGE command to accept an image file name without8 l- V* O5 D) c
- ;; presenting the file dialog, even if filedia is on.4 b4 g' J. T; k
- ;; Example: (imagefile "c:/images/house.bmp")
' L6 N8 q% X8 E7 A; t8 [ - ;;
& f4 @( s4 W+ K6 m# L - (defun imagefile (filename / filedia-save cmdecho-save)
9 o: f; u5 a% O6 O; i - (setq filedia-save (getvar "FILEDIA"))
, N; D! p* T: M% p* p8 } - (setq cmdecho-save (getvar "CMDECHO"))
( }$ W6 E/ g% R( K4 v3 y; x - (setvar "FILEDIA" 0)
O; @8 b( i2 z0 I2 U) ]. @ - (setvar "CMDECHO" 0)
% i5 @4 ?; F" ~ - (command "_.-image" "_attach" filename)2 D( u7 \" H% j8 L- [1 V2 k9 U
- (setvar "FILEDIA" filedia-save)
3 Q3 T' } R3 g2 E - (setvar "CMDECHO" cmdecho-save)
# ^, G- y' A, L - (princ)4 s8 u6 a9 ~1 ?0 ~ c8 r$ Q
- )
# \: d, M8 O! D8 o( C - 2 e$ B/ l7 m m6 q- S
- (defun c:zx () (command "zoom" ".5x"))0 c1 ?" M" E+ H5 t/ b& e
- (defun c:zz () (command "zoom" "p"))- n: i# ]- c# _; G% x
- (defun c:za () (command "zoom" "a"))
" q: m: v, e" z/ h, _& \$ q) T - (defun c:zd () (command "zoom" "d"))! P7 F, d0 f, G2 h
- (defun c:ze () (command "zoom" "e"))5 j( }. x2 z8 U5 Z/ l1 X/ I5 P: I
- (defun c:zr () (command "zoom" "" ""))
8 }& u8 \ d4 ~8 s) Z* } - (defun c:vv () (command "ucs" "v"))9 ^4 E/ r. {: q# @& v
- (defun c:co () (ssget) (command "copy" "p" "" "m"))
, L- o( M$ [8 F r2 Q - (defun c:c () (command "circle"))
( r" l! r3 Y' a# E - (defun c:rt () (command "rotate"))
7 A( P3 B2 z4 Q* T - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
- ^+ r% |( L+ V) r - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
6 c* B% \# S9 T6 L# w/ @4 n - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
. _' S/ n$ i0 X$ g, a - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))- W* ?( l) k' ^) T6 {+ g- R
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
% I% Z" P/ u) ^7 a0 P - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))( O/ s, z: H1 n/ A8 ? r; l- k5 z
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))# {( P! L: \ T
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))& F, t3 u" F4 d; E
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
+ K. _9 d+ S4 `/ g, r }( U - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
8 l3 ^% G2 p; F6 i% e - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
7 k- m! ]4 }" d" c1 r! g - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
+ t: t3 P$ v* m. m - (defun c:fd () (command "find" "p" "" )(princ))(princ)
[( u- R+ d7 j& J0 m, k. y - 8 v/ }# |4 x, y8 Y0 ?
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
, f- c/ {$ O3 r- ~2 \ - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)7 [ i, l$ w5 _7 x8 ?0 W9 W g/ `
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ); I b. r: b5 z+ p9 x" \( k
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
* z H4 I$ q! y3 V& r5 ~6 ]/ v! D - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n")): O/ _& c) w3 k2 e" \
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
" H% |. t' S" f* ?' f0 T - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
+ d/ Q: F# I* h# o |: M - ) }5 i6 k+ }( q& p; l* p
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))& v3 [% g3 {5 A3 Q6 V
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
# f& `9 P* M: {; L: ] - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))4 L( d, T2 e3 y
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))* Y o9 g; m0 p4 e2 k( r
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
! m" O) ]/ ^3 R( W! g* S# j - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))" i& c j$ z. I* _0 C- @
' z! w4 {# D$ f& M8 h7 F- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
U2 f+ H- J0 ^* B" N8 E/ G8 A! Y
M) @! }6 K7 N# |/ S) |- ;free lisp by cadviet,cd2k44* n! ^/ C0 e3 U% _7 |; ~, a! F
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538305 I) n/ ? l. B+ I# k" k; }8 S4 @
- (defun c:FTEXT (/ ent tstyle )
( i7 Z+ b; X! [8 g0 _; y+ F- G- q - (command "undo" "be")1 n; K- B1 m2 K( i+ Y8 p( ]- C- B
- (setq ent (entsel "\n Pick text :"))
9 I9 v8 B" D% X - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))2 r" x( j& p" C6 L! m) E0 E" M) u
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")# t# q# p/ c2 f/ H |+ h( t
- (setvar "TEXTSTYLE" Tstyle)4 V- I3 p* a+ @
- (command "undo" "end")7 L+ Q- v9 n4 D4 b' j8 b6 J0 {, U
- )% I8 }% d! V: } s4 T5 q6 p: h* w
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
+ V- U0 l- E8 l
- l; ~( t/ i3 G, f& T- ;free lisp by cadviet,cd2k44
( o8 q$ H( R1 [' d0 @: O: ` k+ W2 u# ^ - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830; J" G9 |# X$ b% S8 }2 O
- (defun c:Fvnh (/ ent tstyle )
% {$ `8 f7 \# p3 }- |! c, M - (command "undo" "be")' Z. v9 O& e7 Y5 y* Q2 R
- (setq ent (entsel "\n Pick text :"))
7 d+ ]' s4 u" v - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
9 @$ }$ L4 l* E2 n9 ~; e - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")' h2 \1 ~1 M X2 d. D+ _
- (setvar "TEXTSTYLE" Tstyle)
0 k% K# E. B$ _9 ?$ Z8 U+ m! X# N/ s - (command "undo" "end")
" }+ w8 V# I$ Y- a3 J3 c - )# G. m3 I0 j7 f# k9 A; |
6 G9 z7 n F3 m6 B* F$ z# A( [- ;free lisp by cadviet,cd2k44; u# s/ A5 X. d# @8 D
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
3 a8 e9 Z* C% `7 Y" A. p2 _ - (defun c:Chbg (/ ent tstyle )
' h. d t) }4 G; D" q+ l - (command "undo" "be")
, y6 A# D0 B) A: |+ U - (setq ent (entsel "\n Pick text :"))
& Y4 E& ?5 G" H( D, S5 c% B# q - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))2 y% b' P; ^# s; u' c2 e
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
. I2 E$ W$ Y* l6 U+ q - (setvar "TEXTSTYLE" Tstyle)$ U3 C/ E2 R' I5 e! A
- (command "undo" "end")
' K: n+ ^6 ]( Q8 H# O - )0 r8 ?' h) b( ?4 x& Y( m4 V
# y& t2 y T$ ^+ V( V3 _- ;free lisp by cadviet,cd2k44
. t) G$ ?2 j g3 L J$ C+ @" @ - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
; L9 @* J" B# \ - (defun c:Chsm (/ ent tstyle )
2 ]6 A! {% V" Z5 a, L - (command "undo" "be")
3 a$ m& K$ r3 T# i; p) k - (setq ent (entsel "\n Pick text :"))
/ m% e6 y! S+ T1 d; y - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))- K! B( ^0 N+ K/ e) h: Z
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n"): ]1 n% O8 H M& P1 G/ |" M8 _, b: ~( Y
- (setvar "TEXTSTYLE" Tstyle)
- `% n) s, S4 x* g& j* ^" b - (command "undo" "end")
# K9 [: p# h( K - )! W/ f7 s1 V6 S" V, _9 o: e; Q
- 6 j7 Q$ W* `) |$ E2 ]4 B
- ;free lisp by cadviet,cd2k44' c i: ?( @& Q* w) T0 C5 e
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
1 s: S$ t. R. ^6 e3 Z - (defun c:Fttf (/ ent tstyle )3 j2 j) q! G n5 I7 c( \
- (command "undo" "be"): F h* y- b: a# b; {; b( `
- (setq ent (entsel "\n Pick text :"))
3 Y2 q% f5 G6 z- C6 J - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))( F- V+ P( I+ c
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")1 ^2 A d7 g6 Z, E$ [& a
- (setvar "TEXTSTYLE" Tstyle)
+ S4 T7 t; x, p9 o& T5 x. x - (command "undo" "end")5 @ N/ a# Q& V2 Q+ Q
- )
# N& \3 Q; z6 ` - ) Y4 x9 n) W: a. I
- ;;; ============================================. N* X# y+ |+ f O% c* d% m
- ;;;6 ^: S8 @) ?9 u
- ;;; LISP Creater Tao Duong Dan AUTOCAD20004 L2 s, R9 |" b1 n+ W) m H% Y
- ;;;, y1 a5 [) n7 ]% c* k2 ^& j
- ;;; ============================================+ w8 R+ \% n& J. F1 }
- , M/ o q" Q& J0 q
- ;;; ============================================# y' r, v$ Q; b) ?+ Y
- ;;;- j: w# Y c! f2 T
- ;;; CREATING FROM AUTOCAD2000, G' U+ ^/ A- p+ H- u* \. R1 p
- ;;;& `2 H7 A1 j/ `* [6 u0 R6 x2 w
- ;;; ============================================/ `/ N7 _2 A9 T- `* m1 M
- 2 a' y+ W9 F+ w: d: B H, U
- (setvar "INSUNITS"4)" A8 B6 a- g6 R2 U( a
- (setvar "ANGBASE"0)
3 l" P! r4 O: u+ z - (setvar "ANGDIR"0)0 E! L6 L* z6 p7 C
- (setvar "AUNITS"0)
. O6 b7 z& V" }; V v - (setvar "AUPREC"8), s% A4 `# U" Q1 |0 @% Y
- (setvar "LUNITS"2)3 U4 ]. g7 ^& ^4 a
- (setvar "LUPREC"8)( g+ k2 g' g y2 E# [
- (setvar "ACADLSPASDOC"1) / ?) P& H% M# S- Q6 u
- (setvar "pickbox"5)
% @ k* U: e0 Z2 d6 h - (setvar "blipmode"0)6 J* ^% _) n v* y1 R! w
- (setvar "mirrtext"0): c: B1 z, f# l/ g! V) B
- (setvar "cursorsize"100)5 B% C+ D' ^ `% C1 e; D G3 i
- (setvar "ZOOMFACTOR"75)
- G2 l2 O: v. B. w0 f - (setvar "LTSCALE" 10)
4 Q% q0 B7 I2 ]/ k2 q( K! Y - (setvar "lwunits"1)
% @3 `' e" H% z. r+ f* T: t/ e - (setvar "DIMBLK" "Closed")
7 F% p+ Y4 f5 U2 E: g4 C - (setvar "DIMGAP"0.0693)
: t: U' q& [; C. j9 `5 ` - (setvar "DIMASZ"0.20)
9 q% e! h. m$ Q9 ` - (setvar "DIMCEN"0.2)5 ^- X; h' `& |( @
- (setvar "DIMDLI"0.1)
5 u# }. q. p% V - (setvar "DIMEXE"0.0693)
6 P, A. Z5 k8 J1 G. i( V& ` - (setvar "DIMEXO"0.25)
& M7 H' X9 y* \& H1 _8 N; r$ I0 q - (setvar "DIMDEC"0)& h* f6 u. y0 q5 C
- (setvar "DIMTIX" 1). \/ x$ E0 M/ ~5 D
- (setvar "DIMTXT" 0.099). h8 _- }- k$ ]8 G _
- (setvar "DIMCLRT" 7)
2 e. T# a2 m3 M& y - (setvar "DIMTVP" 1)' I3 T# ^/ `0 `7 d
- (setvar "DIMJUST" 0); ^3 L5 t8 O0 _+ G3 [. W- F
- (setvar "DIMTIH" 0)
$ v) M) @2 j0 b5 A7 f - (setvar "DIMTOFL" 1)
% W i! ]& I: }+ p6 H+ J - (setvar "DIMSCALE" 1111.1111)
) R! I% [" B( r# _+ t0 N - ' j% D" D" U- E3 e2 u. }& P$ \
2 a. [" u( ]1 J: i7 `- _
: q4 x" [' d5 a! w D- r x6 a4 B+ l- (defun c:zp () (command "'.zoom" "p"))
" q0 u4 S) I( h. U5 x' G$ r4 J# I9 X( [ - (defun c:zz () (command "'.zoom" "p"))1 d8 f& M1 A% O! \0 Q
- (defun c:ze () (command "'.zoom" "e"))
6 t4 S+ \, l/ i) X6 D$ E& Z - (defun c:za () (command "'.zoom" "a")): F- ^. e: }, @6 @
- (defun c:zd () (command "'.zoom" "d"))" E6 F: n" \9 j
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))9 Y# u8 @; \; M! J3 ]! g3 J
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))* ?! S" B+ H+ ^" p/ Z8 C8 f* ^
- (defun c:de () (command "ddedit")(princ)); w; B7 u2 p: j8 i1 a& H( p# }
- (defun c:dda () (command "Dimaligned"))7 z. U! S ^+ t# c
- (defun c:ddb () (command "Dimabaseline"))6 O! ^7 [1 `4 }6 J
- (defun c:ddc () (command "Dimcontinue"))
; S* {, W. \) T7 F2 g% M+ l - (defun c:dde () (command "Dimtedit"))
; A8 r, r( X1 m0 M* {, Y" I - (defun c:ddf () (command "Ddattdef"))
- T9 e5 ^# D5 o( { - (defun c:ddi () (command "Dimdiameter"))8 x8 Z A, S1 D# w. @% k8 P8 y
- (defun c:ddl () (command "Dimlinear"))
' i# D" p9 ~2 V* A - (defun c:ddn () (command "Dimangular"))
' R- [1 f; d# _6 y - (defun c:ddo () (command "Dimordinate"))4 G* a7 e" x8 i
- (defun c:ddr () (command "Dimradius"))
( v* R3 Q1 R* S; B: _ - (defun c:dds () (command "Dimstyle"))* @4 e7 k9 K& ?9 V& x1 n
- . X9 o2 W _3 b/ w! q' U
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
! e' e2 y$ x" \, M/ D. j$ g - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
S( o' I' s2 P. I, S7 V - (defun c:UU () (command "dim1""update""all"))
$ F5 m5 c8 H& |* L I9 U - (defun c:ded() (command "dim1""tedit"))
3 v a8 P6 t& r! O) F5 l6 i - (defun c:da () (command "dim1""ali")) G- A7 V* D+ z- M7 g
- (defun c:dll() (command "dim1""l")), n; w: C1 g' k3 w& q; V
- (defun c:dan() (command "dim1""an")), f/ T( b+ N, z/ b/ c. W- @9 N; M
- (defun c:d1 () (command "dim1""ra"))( M1 Z' b/ u& b
- (defun c:n () (command "dim1""new"))
, ^& c5 \* ~- |+ Y - . }' d1 x% O2 O
- (DEFUN C:PE () (COMMAND "PEDIT")): N. v/ P: N0 ?, K; R! F! v
- (DEFUN C:PL () (COMMAND "PLINE"))+ @" v [% I' l- }% X
- (defun c:dd () (command "dist")(princ))
2 N8 a8 C& b- h: y - (defun c:w () (command "pedit" pause "w" "au")(princ))& _ ?* [& S( k: ^( x, _' _
- (defun c:pg () (command "polygon" "polygon"))! ^* y6 |9 R' P
- (defun c:el () (command "ellipse"))/ ?3 Q& B' S* Q+ R ]
- (defun c:xe () (command "explode")) O) o4 C: o8 u6 ]
- (defun c:eex () (command "extrude"))0 {) l. l1 P/ @' O' u
- (defun c:xg () (command "xline""a")), T9 \! Q% i2 y% A. D
- (defun c:xh () (command "xline""h"))- y6 h; Z/ U9 g* @
- (defun c:xv () (command "xline""v"))
2 P3 {, Y, r- H. s, X- l9 n - 3 K H) R9 x0 \7 b+ Y
- (defun c:oc () (command "osnap""cen"))
" K6 i* A$ ^% a6 | - (defun c:od () (command "osnap""nod"))) s, B/ Y9 U; S4 O; a- P% E
- (defun c:oe () (command "osnap""end"))$ N6 K6 {+ Q+ F2 G+ H9 B- q
- (defun c:oi () (command "osnap""int")), z' _0 L* ?, P1 s- S5 ^/ y7 y3 ]% C
- (defun c:or () (command "osnap""per"))' h( {; `, W. @/ _
- (defun c:on () (command "osnap""none"))8 _* p% a/ M# F, I D
- (defun c:oq () (command "osnap""qua")) ~* d/ E& {8 l0 o) t; `) Y
- (defun c:om () (command "osnap""mid"))6 \- @# `% e7 y9 n S3 A" @! F
- (defun c:ot () (command "osnap""tan"))
* S; ^0 i ^, T/ l* J6 o ? - (defun c:oin () (command "osnap""ins"))
% D, _' S- x, d( ]" @ - (defun c:oa () (command "osnap""nea"))7 q2 s7 P5 H. @# I
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ)) U% x2 Q4 u, M8 o9 G( `/ }
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))! M1 \% g5 I( |8 O! ^( `
- ;(defun c:nn () (command "new" "y" ))
7 I5 @/ f! v3 e2 x& ` - ) y8 `2 J( m& n7 T+ b: I h
- (defun c:/ () (command "limits"))
# n8 z- p: Z8 s; T - (defun c:`1 () (command "region"))
- [$ {$ U. J! E, c4 r: M; `) p - (defun c:`2 () (command "subtract"))% L: a8 `& g$ C( b1 S
- (defun c:`3 () (command "union"))2 \; |! V* N& ~1 k2 }. D
- (defun c:`4 () (command "intersect"))
8 b6 k! E. `% w - (defun c:`c () (command "cal"))+ k# f! l" u# s* `9 J
- (defun c:`g () (command "Polygon"))! z3 G% |; R# X
- 1 n h5 m6 T7 f" p4 [" r6 T
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))
6 \$ N# x$ a; U+ h) C - (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))& C2 k! J/ W$ K( U3 J- l+ C
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)7 M1 z! o v9 v4 c
- " \& S, [! M9 X
- (defun c:ddm () (command "ddlmodes" pause))
" i* O: I/ ] R# M- u- t
/ D& v. d* o9 J# G6 w" k- (defun c:sha () (command "shade" pause))
* f2 l" _" E# T% F
3 D4 f$ q5 o! ?/ J8 N- (defun c:sr1 () (command "surftab1" "p" "" pause))
' A# h& O* \# a4 ?- D5 w \ - (defun c:sr2 () (command "surftab2" "p" "" pause))( X* J; u" B9 ~- S2 c& E
* V. x {% p: B; O- (defun c:ad () (command "audit""y"))4 t" D% Q6 u2 n$ G: D: U2 n, G/ V
- (defun c:q () (command "quit"))- G I: W" Y# ?+ T5 E+ W
' I; J! t% q( @$ v s+ \/ N- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
: Q) K, i! _$ O - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))( B% h H; \* N* G) X6 D
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))3 D/ G% X! d& T( O2 z }% {2 |; B
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))5 A. S0 ], S! v3 x
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
. ]8 n% |* V% h* V# S% W5 z/ [: H - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
3 g1 T3 u. I/ q; } - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
+ a1 ~# Y% |! B& v: L - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
) l3 l4 I, I- r; d! L - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
9 q& r3 u; n3 }! I - 6 l. L: f: k$ Q0 h
- (defun c:u3 () (command "ucs""3"))
* k* T/ X: }4 i4 N! y - (defun c:ue () (command "ucs""o""end"))
: Q- |5 j% n, k8 J' Y: D3 J" P" G - (defun c:ui () (command "ucs""o""int"))( F, x+ S; R( s" @: I0 P. o P
- (defun c:um () (command "ucs""o""mid"))
2 M: q: s5 a1 R; f$ t. O# H - (defun c:uc () (command "ucs""o""cen"))
8 \' k) S% s5 M+ @, ?0 H$ t - (defun c:uq () (command "ucs""o""qua"))
" ^4 j5 \% H2 A - (defun c:3s () (command "ucs""3"))
! ?3 F4 t4 b3 T, R - (defun c:sx () (command "ucs""s"))" s: m% R' @5 ]8 n% `; m( ]
- (defun c:sf () (command "ucs""o")); d+ ^- C$ T! R% D9 F3 u" `
- (defun c:sz () (command "ucs""p")), k# J/ l: Q9 n$ w; N) P
- (defun c:sr () (command "ucs""r"))
0 ?0 }. i. F9 R - (defun c:sw () (command "ucs""w"))
7 d+ u, {9 H" J- ` - (defun c:fv () (command "ucs""v"))1 _) F/ i( H$ m6 t" X
- (defun c:ux () (command "ucs""x"))
- u( q A) g7 e( ^ - (defun c:uux () (command "ucs""x""90"))
3 X' r+ A" o& V* Q/ j - (defun c:xxu () (command "ucs""x""-90"))0 b& j; T. |+ X! Y7 A# }
- (defun c:uy () (command "ucs""y"))
! d3 ]$ G+ m$ Y6 | - (defun c:uuy () (command "ucs""y""90"))
; j: b) z* U5 m; f - (defun c:yyu () (command "ucs""y""-90")), o5 F+ n% v1 V& O2 I
- (defun c:uz () (command "ucs""z"))
( d% U7 J* E' ]: W. h, L4 ^ - (defun c:uuz () (command "ucs""z""90"))
2 j$ a, g" X6 n - (defun c:zzu () (command "ucs""z""-90"))
# Y; B+ b9 O2 M4 t& W7 ? - (defun c:uci () (command "ucsicon" "Properties" ))(princ)
2 {% G$ B) v8 c4 f: M# C5 h - (defun c:ucm () (command "ucsman" ))(princ)3 S2 i% e! k. ~$ q2 A9 z6 y! [
- H5 P$ }. _+ Z, o. F- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
/ \3 p6 r$ a- z1 s# J( y - (defun c:sd () (command "vpoint""_non""1,-1,1"))9 r( H- ]' N0 q5 {
- (defun c:se () (command "vpoint""_non""1,1,1")): @$ \; n W# D" V L) [
- (defun c:sq () (command "vpoint""_non""-1,1,1"))
) S& f2 L. b6 F9 M - (defun c:vc () (command "plan"""))( j t% l H/ A) Z" w
- (defun c:vd () (command "dview""all"))
7 A# z/ [ D8 N9 i3 z9 A
' t/ {3 T7 U2 m( w: A( ~- (defun c:TT0 () (command "tilemode""0"))* K0 l. [0 W2 D3 v
- (defun c:TT1 () (command "tilemode""1"))% [3 X+ R+ }: _8 l1 W
5 f! I: @# t. |! M0 q- d( F- (defun c:vt () (command "vpoint""_non""0,0,1"))
: i! y# ], |- x5 ~ - (defun c:vb () (command "vpoint""_non""0,0,-1"))6 z' O& Z$ Q4 T0 e7 p) W
- (defun c:vl () (command "vpoint""_non""-1,0,0"))
5 B& y! B/ t. f* ?- Z& A | - (defun c:vr () (command "vpoint""_non""1,0,0"))2 q" {. K! {# j% B _( s- @% h
- (defun c:vf () (command "vpoint""_non""0,-1,0"))3 _( B0 z9 ]$ C5 v- d6 I, G2 n& W
- (defun c:vk () (command "vpoint""_non""0,1,0"))
7 r2 a P- I. I5 L. \/ B, [
- \& G- U _9 V1 L, V- (DEFUN C:MM () (COMMAND "MIRROR"))9 \- I3 N. K) N- l; U
- (DEFUN C:MP () (COMMAND "MOVE" "P"))
; S4 w: \$ I, v; i2 j s - . m4 O5 p @7 N, t! c9 N: D
- (defun c:mee (/ a)
. ?/ i. A' M& [2 ?' e& I: S' I - (setq a (ssget))(command "move"a"""end"pause"end"))6 F0 `# t0 T" l2 p3 I8 {. @
- (defun c:mc (/ a)5 B6 m) q3 \# J1 @# u
- (setq a (ssget))(command "move"a"""cen"pause"cen"))
4 Q$ s3 R x+ S" [' h - (defun c:cc (/ a)4 p. A9 T# }" G/ B1 B( |: ~0 ?: H
- (setq a (ssget))(command "copy"a"""m"))
2 x9 v3 B* f6 o$ o) I8 B - (defun c:ce (/ a): F. p0 ^( s0 J! Z; `
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))# A* v4 N4 L1 \" Q' d L) o1 p. P
- (defun c:cn (/ a)
7 g2 w- p8 c) E# e1 l1 R - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))* S% ^. k) f7 Z4 p
- (defun c:tl ()(command "trim""l"""))
. w$ i$ L; I: ^+ I6 M5 m - (defun c:tf (/ a); S0 P- r* J. w" Y" {! L4 ~; F
- (setq a (ssget))(command "trim"a"""f"))! |! P: }1 S" R$ [9 Y
- (defun c:el ()(command "extend""l"""))) F7 s3 R: Y* B
- (defun c:ef (/ a)
' h. w; H& f9 _2 w2 h W7 T, l: G - (setq a (ssget))(command "extend"a"""f"))
/ b2 o: g" g [. M3 M& ~% l+ B
1 W& e1 \' G3 |( d6 x0 g- / B- B5 ?) _, C# T1 X
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
_ S) V/ a3 a+ h" b - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))0 Z8 d9 H( h: E1 u( W
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
: c+ j3 V2 n9 s- k* s+ S! ~ - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
9 J' r# O. `8 J+ r4 G' X* a - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
% S$ J+ W" Z1 I, a( b+ n- {0 ?9 K" A - (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))9 }& |0 R: j! i
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
$ ]+ m9 L4 r! ] }% ?) _/ `9 T - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
4 E4 v/ u8 n, n q& j - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))* b* c- h* L( k
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))7 ]# h9 G0 W8 U2 V+ D: `& O3 r
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500")); w) q! c6 k1 g# Z3 K) [
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
% ]6 d% n; F/ Y! {( x- O - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))5 }+ r- \" F/ e* p2 j8 Q$ V
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))5 B+ _+ ?. Q% i, J5 E" [4 a) F
- (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
; c4 H0 S* S6 G - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))4 m! M/ ?: U1 s# z% l7 M! F
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))$ Z0 L0 Y' x0 T% [2 J8 i; X
! W3 y) d8 p8 U: n, J z- (defun c:mla () (command "-mledit""av"))# b- U: {! g: m* t- K6 z. k2 {
- (defun c:mlc () (command "-mledit""mc"))
j' `/ R5 S. w3 K - (defun c:mld () (command "-mledit""dv"))8 o l* C4 h, R. ~, y
- (defun c:mle () (command "mline""end"pause"end"))
5 H S$ C. p, \, } - (defun c:mli () (command "-mledit""ca""int"pause"int")): b( E7 M6 I: x& a# t! i
- (defun c:mlj () (command "-mledit""cj"))
$ F \' c* }5 J5 i1 x - (defun c:mlt () (command "-mledit""mt"))
2 A- }; a# K u5 E# P - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
: ^) J% M1 w i - (defun c:mlw () (command "-mledit""wa"))" c& q9 m8 V; R
7 Y/ q0 A, z9 p- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
% T K, g+ j' r1 B1 m3 V2 ? - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
+ H* O' K1 o" f \, Y' Y2 z - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))& a; |, x+ f6 q+ A0 [( @
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
7 n/ p( Q( J$ _ - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
5 _5 z9 m' h/ q) @; p
, S. t2 t( I8 v3 `4 p$ J5 J% a- (defun c:p0 () (command "pline""""w""0""0"))
' x. |% R% t2 j6 | - (defun c:ot () (command "offset""t"))
. ]5 I( u$ ~. _% k, n - (defun c:t () (command "mtext"pause"j""bl""h"pause))2 O7 a$ N% g& X. Z# u: G2 R/ J
- (defun c:uo () (command "ucs""ob"pause))
( }/ W C$ F1 o- \8 v - (defun c:f0 () (command "fillet""r""0"))6 P4 g; G) B! I2 b
- (defun c:fr () (command "fillet""r"))
4 s$ x$ m1 `) L/ f1 _% N6 B/ V - H8 j9 ?. J6 ^, H2 A% w# N+ h( g4 i
- ;CHAMFER
# K2 s; S; @( W ^, t p- s7 r - (defun c:cf () (command "chamfer"))( @$ l! @8 d0 m, z `5 [# d) v
- (defun c:cfd () (command "chamfer" "d"))6 h5 U6 B" e% b5 h- V: H
- (defun c:cf0 () (command "chamfer" "d" "0" ""))
7 {9 k1 k! l6 ~7 ^2 K
% E- i& j9 I, L- ;FILLET) f7 j6 Z+ R* h X5 H8 N
- (defun c:f () (command "fillet"))5 i" v k# P; b7 N6 I+ t0 }
- (defun c:fr () (command "fillet" "r")): l, v, H1 j+ f0 {& k. ^4 P) ^
- (defun c:f0 () (command "fillet" "r" "0"))- S# g2 \% }. X: B* l
& G2 u7 r# J$ h% ~# ~+ h- (defun c:OO () (command "oops"))
% _' U3 \; E1 s/ a; u - (defun c:dln () (command "dimlinear"))4 G6 @4 b& B& P, H2 m5 t
- (defun c:dan () (command "dimaligned"))* w! `2 {7 B: P% B, K' l
- (defun c:ddc () (command "dimcontinue"))0 B- h$ O j; C5 ^. \( G/ V
% L; X4 `. ?% `- (defun c:sc () (command "scale" "auto"))
7 o9 M- m' t4 i - (DEFUN C:XO () (COMMAND "snapang"))
3 d6 T* V1 `1 C2 i/ i$ T; H( W6 |- C - (defun c:cc (/ a)% c& `. i' @ h" J
- (setq a (ssget))(command "copy"a"""m"))3 W! r) j1 ?+ Q' s5 y
% d) m7 S0 f; z7 d- (defun c:PJ (/ a)# @ R3 | w+ ~1 K0 Q
- (setq a (ssget))(command "pedit"a"""j""all""y"))% p9 B/ Z& d' a+ y7 P: Z r$ s
- (defun c:JJ (/ a)( ]+ X) {7 F [* U
- (setq a (ssget))(command "pedit"a"""j""y"))+ k, g4 |/ H/ A
- (defun c:TN (/ a)
% G% ~: M4 W3 v9 I. V1 j/ B5 V9 M5 P7 G - (setq a (ssget))(command "change"a"""p""T"))
8 p3 X+ j3 \( v! N: I9 G - ( X) z# @, R' j) `% y1 S$ l
. I0 B, _/ {: J5 D7 [- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
" O1 u. O+ Y P1 k - 9 K1 l6 ?* z- ~/ u" C4 I8 N
- (defun C:IB ()(setvar"cmdecho"1)
( Z* ]! }& J6 r - (setq pt(cadr(entsel"\nSelect Block:"))): z9 a" l, t4 K+ q
- (setq e1(ssget pt)) 9 l+ b3 p/ G- |' d+ D
- (setq e2 (entget (ssname e1 0)))
- v2 [' {6 `9 F- T9 f - (setq blname (cdr(assoc 2 e2)))9 N( S( t: s0 m, v
- (setq oer *error* *error* err2)(command ".insert" blname))0 t* N0 K( r/ m S. V
- 9 f# m9 K% Z2 }0 u3 V$ N: r
- (defun c:II () D3 U5 s% f# F8 z
- (setvar "cmdecho" 0)
6 `8 Q ^& P s$ _ m - (setq olderr *error* *error* myerror)! w; N: I9 { g) e# c
- (prompt "\nSelect objects: ")
1 V. J7 k0 w s+ d: z8 v - (command "select" "au" pause)4 V7 ~# } x+ l" n; h" b3 Y
- (setq sstxt (ssget "p")5 D% g0 M$ N) w' a7 }
- sslen (sslength sstxt)
8 G9 u" G7 A& C ^ - ctr 0
$ Z) Z6 o; s8 S6 r- A3 U X - )
# j: i/ S. E1 s3 F, l - (command ".undo" "mark")! k, O6 t# a4 W9 I- A
- (while (< ctr sslen)
+ W* r# ?8 K1 q9 `7 h! g - (setq listxt (entget (ssname sstxt ctr))
6 t, K* Y; e3 G6 n. c% P' B. h0 I - txttxt (cdr (assoc 1 listxt))
J) g. E* ~. v8 C m - enttxt (cdr (assoc 0 listxt))3 J- f/ ?0 O3 v. i
- ) Y( @- [0 N4 Z
- (if (= enttxt "TEXT")- `, H& R; H1 u$ Q. C# q
- (progn5 v0 a J, ~- ~/ o# W# c
- (setq testxt (substr txttxt 1 3))7 b7 \2 S: m* {. d0 }% e
- (if (or (= testxt "%%C") (= testxt "%%C"))$ G% e/ V" O( x( N; @
- (setq newtxt (substr txttxt 4))/ x* y5 |9 \; y6 }% u& d
- (setq newtxt (strcat "%%C" txttxt))( \) R, h6 B, _, o# a
- )
" Q |- j; D+ X9 y& I% K$ N - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))6 C2 {! t( l' B
- (entmod listxt)
0 R+ \& w0 e( X. S" {8 C0 O - )
& ?. ^* Y/ h4 k; T; Y - )1 e; O5 U( K5 v" @) B# C9 E
- (setq ctr (1+ ctr))
0 ^0 i! a* ^) R4 d$ i - )3 `8 Y: ], R' k
- (setq *error* olderr)- W" I6 x; P, s( u* y+ {! }
- (setvar "cmdecho" 1)
- p9 ~5 f7 h; g: n - (princ)
- t6 J' X% U/ S+ Q8 n4 r% f - )
# n! B0 h- Y# b. k1 B
8 O3 e* X' m' S" d! V) ?- (defun c:DG ()1 x; b1 y# ^" X) e- L [+ f% h
- (setvar "cmdecho" 0)8 C+ c4 K# u3 x1 a) T4 a
- (setq olderr *error* *error* myerror)
/ f: e: q. [9 }" _1 |* ^ - (prompt "\nSelect objects: ")
& G" m8 U4 B1 K - (command "select" "au" pause) q; ]0 _4 G$ V
- (setq sstxt (ssget "p")
2 Z- z3 V, @( x2 J' w! B - sslen (sslength sstxt)" I2 C1 k; f6 T( E$ |0 m" ?
- ctr 0) H7 l) K% ~* F) ]4 S& D0 d- G$ o" J
- ), B9 J* c) T( F
- (command ".undo" "mark")6 r& Q8 y$ I& `5 }0 J8 U2 f
- (while (< ctr sslen)
& U. ^* d: n! y% k - (setq listxt (entget (ssname sstxt ctr))
" G7 a9 ]# K# [0 x, a" t - txttxt (cdr (assoc 1 listxt)). e9 m* u( B" H' }7 P8 B" g
- enttxt (cdr (assoc 0 listxt))
1 T3 U3 m" p W m" B' f8 s - )( a4 h: o' k% |2 p9 B. t
- (if (= enttxt "TEXT")$ p' z$ a1 S5 C2 W- F+ B& v
- (progn0 @$ v2 s9 N4 \' p) S- z
- (setq testxt (substr txttxt 1 3))
& O) }7 T+ X2 S9 T+ z - (if (or (= testxt "%%d") (= testxt "%%d"))
( Q$ L5 w' d8 Z - (setq newtxt (substr txttxt 4))
! J) r1 w+ W8 C: `& Q( @* s2 W - (setq newtxt (strcat txttxt "%%dC" ))" _- Y; ]4 j2 t$ }' K7 b1 [2 ?
- )
5 n" H* u* y" l6 @6 X- l9 \8 O. H7 f - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))! ]7 ^; M$ \; ~2 Y# C: b* [3 d9 }' i
- (entmod listxt); I: T* ?7 d# ^1 j
- )
@3 o* d8 _7 D& }) }+ @ |3 \+ V - )
2 T; I) T' ~' n f% t! h - (setq ctr (1+ ctr))
" U4 i) ^0 J, q/ K% U! E3 d - )
5 T# P9 z' r% _4 M - (setq *error* olderr)
1 l. @0 I- {3 ^* ]4 y - (setvar "cmdecho" 1)3 U; K& s3 f) k! u
- (princ)
# f, f( _( l8 ~! U - )
$ L0 V2 n w" C+ G" Q' H9 e* b! q, l* t
$ N& v4 J, Z0 U- (defun c:PI ()6 y( A. D/ d$ k# s& {7 K7 V
- (setvar "cmdecho" 0)8 G. j1 g+ }: C
- (setq olderr *error* *error* myerror)
) H' B8 x1 x) @1 j$ g# J' r - (prompt "\nSelect objects: ")( |3 l! J- H" r& C3 S% z
- (command "select" "au" pause)( M" F5 N) I$ d0 a
- (setq sstxt (ssget "p")
9 ?# n9 \! T# w - sslen (sslength sstxt)
@0 O7 i& K& Y7 t7 ?: s - ctr 0- q% d8 j5 x6 ^, ^ D! A! i( \
- )
0 b9 w) V( C6 Q3 _0 A6 H - (command ".undo" "mark")( r6 x7 V) W' g, @. Q
- (while (< ctr sslen)
; J5 Z% e( X; B! d( h - (setq listxt (entget (ssname sstxt ctr))) G# E. Q5 n4 U1 F) k& p
- txttxt (cdr (assoc 1 listxt)). @# f) [1 Z+ z) G/ _4 n
- enttxt (cdr (assoc 0 listxt))
; o- r* V( b6 E - )4 \$ N% z# N1 T8 q
- (if (= enttxt "TEXT")
! ~$ y& ]! B+ c2 u, q) } - (progn
( ]5 x9 ]0 f3 e* C) l: w! i, t - (setq testxt (substr txttxt 1 3))
9 b# O2 {% V$ U" [5 N { - (if (or (= testxt "%%p") (= testxt "%%p"))
4 h( v/ _4 l# H: }' s7 _8 \ - (setq newtxt (substr txttxt 4)). C9 F$ H1 y5 E- B5 p
- (setq newtxt (strcat "%%p" txttxt))5 F& m! m3 B9 d/ ]7 C) y% B! a+ r
- )' u* d7 o* _: J
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
+ c' S! f+ X' D - (entmod listxt)/ k5 D) _: A ?% X
- )9 p/ X5 n9 w3 K, N- N8 Z
- ); P8 x6 O& O$ n2 u7 L" B
- (setq ctr (1+ ctr))" _1 }4 c$ W# P" M6 x, Y
- )+ h8 M6 e7 n! \. T0 W. {- M% o
- (setq *error* olderr)5 R$ g( G5 _( T1 |) f9 i: x+ L- n3 V
- (setvar "cmdecho" 1)
' C+ j B% O; U5 f8 s - (princ)* J- E% {0 L9 g }
- )
8 ~/ z4 A( Y3 I# r/ e
0 P7 s' j! S+ K! O0 |; V! l- (Defun c:CB (/ a)
& D6 l9 m2 I" g* a2 O - (setq olderr *error* *error* myerror)
0 i" a/ b2 E) x9 O/ i4 Z$ { - (setq ocmd (getvar "cmdecho"))
( m! S6 A1 }/ j9 C' X - (setq oblp (getvar "blipmode"))
& {. [: X% Y2 d: y6 s0 `. }6 `* y - (setvar "cmdecho" 0)
2 M J! h0 n) G% T1 a' \3 r" ~ R - (setq a (ssget))! G; R# {9 X- L: B
- (command "CHPROP" a "" "C" "bylayer" "")
e& D$ k- s# p1 \( m) m - (setvar "cmdecho" ocmd)# h. N1 x2 k- _- c/ f2 _+ ^6 h
- (setvar "blipmode" oblp)7 W4 `* j# y- Y# k* T2 f2 C$ \
- (setq *error* olderr)
' `/ M7 R4 d. x5 z( Q/ U4 t - (princ)
7 z* t7 D2 H0 H& N' M$ e% H0 A8 ~ - )3 Z0 j, n. Z3 d2 Z
- , e+ }) Y4 G5 k( b5 p |3 t4 i
- (defun c:LCC (/ co43 obj23 la23)/ J. Q4 _+ ^( t+ d
- (setvar "cmdecho" 0)- Y/ r& \( R+ `, u o
- (setq co43 (getstring "\nNew color : "))
/ r+ P* F) Q ? - (setq obj23 (car (entsel "\nPick object on desired layer: ")))
7 b7 N; F# q' F( I1 H& N- x - (if obj23 (progn
8 p" X$ l. w f/ x9 ` - (setq obj23 (entget obj23)): S3 i0 V! m& d$ x- n( ]/ o
- (setq la23 (cdr (assoc 8 obj23)))8 u6 n- k# U4 X {& H9 q
- (command "layer" "c" co43 la23 "")+ e+ F4 I( Y% z6 t% N) m
- )2 h6 P; [ K" I# |/ U
- )
7 [0 T5 D, K. ?8 _/ y# f - (prompt (strcat "\nLayer has changed..." la23))
6 D! v% }. B s+ i9 S - (setvar "cmdecho" 1) t& D1 N& M6 i3 X% r8 ?5 b
- (princ)$ n" H& s. i) b* Y" N2 b ~2 i: {
- )
" r; k5 u! ?7 D: I) F. f Z - : m3 P7 r7 `6 _3 h) y- r! g
- (Defun c:RP (/ a)# s) g& W: y% t3 G
- (setq olderr *error* *error* myerror)
7 C% M% h. N6 L) h6 ^6 Y - (setq ocmd (getvar "cmdecho")): G( |" } J: R: D
- (setq oblp (getvar "blipmode"))
! O5 l9 m/ n4 ^# ?+ Q' ~ j8 v - (setvar "cmdecho" 0)
+ ?7 Y+ ]9 M/ Z5 \7 d0 {4 B - (prompt (strcat "\nUSE: Delete object(s) belonging to"
2 c% z& ?8 ~. t6 i - " the layer of the entity picked...!"))
/ b; m7 J8 u7 p5 e - (setq a (entsel "\nPick the entity with the desired layer to delete: "))
0 c( {; L7 ?8 y/ D6 ] - (if (/= a nil)# U: {/ O# r; ?9 T; U( |8 C
- (progn (setq a (cdr (assoc 8 (entget (car a )))))
5 E8 G) C% Q2 d% m% F, j9 H - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
& U: k, B( V0 t: G1 d: z8 k2 b - (prompt "\nNo entity selected!"))2 W3 Y( l* @" y* I5 i* V( l! k
- (setvar "cmdecho" ocmd)
/ A2 H, q9 M; [# m) s' I - (setvar "blipmode" oblp); U& a/ F8 |! o, |% z# z
- (setq *error* olderr)% P/ ]+ B2 |3 H* y6 Q
- (princ)$ w0 i/ `# g8 W1 D# M
- )
& P+ J8 A |, ~& ?
7 X' p4 [, N$ F0 F7 [" t3 S- (DEFUN C:WL(/ SSET NET SSL M)* h' P3 [% c8 d" ~4 x: {2 q# a
- (PRINC "\nSelect lines :")
4 u% t4 ?) N( X- o8 Y4 d - (SETQ SSET (SSGET))
5 i' G7 ^4 _6 G9 Q - (IF (/= NIL SSET) (PROGN
+ ^; _1 u* t3 a, r' g4 U - (SETQ SSL (SSLENGTH SSET))$ Q6 i8 n" X# V: Z u, q
- (INITGET 4)# H, {" b5 ~% y
- (SETQ NET (GETREAL "New width : "))( `; j0 e; ^2 q
- (IF (/= NIL NET)3 _( a% K0 P7 R( {: j U
- (WHILE (> SSL 0)3 E Y" Z- @. v4 w$ _, i7 V
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))( g( x5 ^9 A, Y; D' _: A
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") . j4 p! r! S6 k5 w# B% X& y
- (COMMAND "PEDIT" M "Y" "W" NET "") + `6 O S4 b. d' m% |7 s
- ) + y$ g- p4 ~8 e8 `! H
- ) 3 a. G. E0 |* U% C. a4 ~
- )))
8 l, I) z; A6 I+ C. ^$ W$ S' _ - (PRINC)1 x8 M- U0 w e
- )2 ?: c) S; ]. U) o( y9 Y) i# i- c
- 3 m* s% E, @: L1 [( K4 A
- (defun C:MML ()
# k+ c1 j% ]& }/ O) P X - (princ "\nSelect objects to move to another Layer."); J; z( q) M0 v
- (setq ss (ssget))' u% m$ ^2 s& H! c% Z( w: \
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
. W! l- T+ q8 g6 r - (setq counter 0)# I% O+ D+ o8 d5 U8 q
- (prompt "Moving to layer.....")(princ ul1); q# \8 T1 ]2 _( T% M" U0 [8 r
- (setq e (ssname ss counter))% J( G& s4 q. U# t& y9 Y5 @& b
- (setq l (cdr (assoc 8 (entget e))))
" M$ \% @& M* Y% o/ f - (setq S (ssget "X" (list (cons 8 l))))
0 w9 f) z& b Y2 n$ }% ] - (command "CHANGE" ss "" "P" "LA" UL1 "")9 U9 ^4 W e; j. f' ~* r9 Z8 i
- (setq counter (+ counter 1))
, u" v; c& q5 p2 z! Z! W+ K2 T - (princ)
. ~& B$ J4 @( T9 [" w - )
2 G8 A3 I: u+ f' e! O' X2 `
# h! |1 \( g0 {3 w( |- ;;; ================================ GHI CHU ============================5 k. c) W) O: `7 B
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========4 W- W! [9 @3 T: z# |, Z
- ;;; =======================Thuong Dung Font Romant.vnh===================
8 v& N3 `; Z7 [5 B1 b - , C0 u' d' g3 j4 E# F- Y) K
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1): N' x- U$ L9 D4 t
- (setq oer *error* *error* err2)5 _9 l9 g" m3 r+ L& F) ]3 ]8 X. k
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")* U4 K% @# x% P' P
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))1 n0 O, G& |. |4 {1 e [
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p")): b4 H: b2 K/ ?" ?7 c
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
! i3 ]) w% D( d8 j( D( K - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
- L6 C5 i* S$ P2 I5 ?. `# M - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))- r) @5 f: |! x) ^) a) h6 C
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
% b! ?5 l5 o# k - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))% K4 \( m1 z5 V* ]/ ?
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
+ o: V: w' q- K6 Z1 O - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
) x) p) i# l3 I
1 v1 M( Q' z% t8 A- T4 A- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
- W% r7 S/ A" h6 c" V; w/ @ - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
. f0 t5 J" h! q- T3 [8 A - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))6 c8 P3 Z0 g0 v: L3 u2 `4 x
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
3 w; E, u- E/ z+ r; ] - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ")); ]6 O0 n" E* k5 l9 Z5 y% M( {; `# L
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))0 A& Z: z9 \9 \% u" ?1 K
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
/ n) C$ O' R: O! b$ j1 p - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))" U$ f" ]8 j6 F
-
/ s: e' }. w; k - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
7 p$ U7 A( b& h% t - (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
! c ]/ g4 a* J- q2 E, G/ O/ N - (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))1 w9 C. ~8 T1 p. ^% `
- (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
2 O0 I6 y+ R% j/ y - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))2 I7 f# U6 c/ |" y' q
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
2 Y* w4 k0 c) N4 a - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))4 q4 }: g2 @; @/ x8 G+ V6 p" U
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))8 F% N1 T' V1 m! |* c/ z3 A
- (setq pta (getpoint- ?1 B6 G3 V8 _; W$ n% P
- "\nPick first corner. : ")). \) K$ Y+ f$ |. c( ]
- (setq ptb (getcorner pta
8 _7 ?* A" G6 x$ E9 o/ s - "\nPick second corner. : "))% s7 g, ?8 f2 p: q. }6 W) p# o
- (setq ptc (list (car ptb)(cadr pta)))& O6 Q; }& h" O
- (setq ptd (list (car pta)(cadr ptb)))' [, e2 S! q- m- l/ y+ U5 j
- (setq ang (angle pta ptb))
" t+ u. F3 b8 s7 z4 h0 W2 \4 M* J - (setq d1 (/(distance pta ptb) 2))8 h Y; ]# R% S9 L2 |. s
- (setq cp (polar pta (- ang (dtr 0)) d1))
* K. v$ G$ l& R$ T0 [ - (setq X (distance pta ptc))
, b7 j6 q; |# \4 u* m1 l - (setq Y (distance pta ptd)), V) t* o' D5 u8 M+ S! }
- (setq X1 (rtos x 2 1))! k b9 _9 X- u( t% B
- (setq Y1 (rtos y 2 1)). G" ^0 V$ ~+ C, V4 c
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
7 x" j- s% R& i - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
7 k/ t% c+ Y/ Q- {3 |2 K - (defun dtr (angg); W, m" t9 i- A4 z/ W
- (* pi (/ angg 180.0)))0 Q* f( J n4 {/ B
# p# \# b9 R/ b m! f1 \- (defun c:WS (/ pta ptb rmsz pl1)
9 t! a, u/ F: r7 |" h - (setq oer *error* *error* err2)1 B" ?- O5 ?6 R
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")2 c2 O1 E8 [4 ]/ Z
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
3 Y: K8 {7 Q" c0 C; ^- `2 ?' G& ?5 t - ( o M! H9 Q& Y( E' L/ u
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))4 C' w3 Q1 |& i- G9 D
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100")). {4 @; ?5 ?$ n; K$ F E
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
. I" Y8 a8 g8 d( h$ Y/ Z - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
; ?. e) R ?7 H/ X1 G( |+ c - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
0 q: [) N+ _4 e' e, d: j' M7 b1 l - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100")), b6 ~; k6 _& k: I1 V
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))6 p+ ~0 q3 d1 t! u
- ) V, v8 {( o9 A( ^: Y
- (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"))
. A" M" Z3 w8 {5 d7 o @( g: t ? - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
4 H! c' C8 n" u; {" N) t7 d8 E - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
! W4 o# p7 Y) P9 L3 } - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
" ^! Y( d) ^* D, [/ `* |# s3 t - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
% i/ d: B. b. \& A4 K - (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"))* L" @4 i( ~; s' B4 ]+ K
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN")): g0 r$ t5 n) S- k5 o' C5 \( j5 C8 }
- (setq pta (getpoint* `: s0 p% s8 o
- "\nPick first corner. : "))$ i/ f! d* J [( F' H$ r& d5 I- v
- (setq ptb (getcorner pta% Q# b+ x/ f5 f+ F W1 W [% X; Y
- "\nPick second corner. : "))
, ~' r2 y) V" Y1 j - (setq ptc (list (car ptb)(cadr pta)))& x2 c$ J I$ Y& t/ B! ?
- (setq ptd (list (car pta)(cadr ptb)))
8 e4 y3 }/ H0 g" ~$ A - (setq ang (angle pta ptb))
( }( G7 Z3 ^5 c: Y# j% Z - (setq d1 (/(distance pta ptb) 2))
$ x) d2 Z2 R6 V6 q) }. m - (setq cp (polar pta (- ang (dtr 0)) d1))) ]4 s- f# S& l4 ?1 N) B. d
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))6 p5 F8 ~) { _4 a+ R+ H% D K, \3 [
- (defun dtr (angg)' |5 t: D$ b$ d8 V1 {
- (* pi (/ angg 180.0)))& f8 Y0 V8 c8 @" `* R# l" U
- $ ~7 Q0 q6 W( T: J5 q* A" G
- ;;; ================================ GHI CHU ============================
& `& ~- Y+ `. L% j5 Z; F6 l, g - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========2 F/ y5 @* v& W; x, C
- ;;; =======================Thuong Dung Font Romant.vnh===================
6 C3 M0 P {7 f - ; P9 g" w) K/ V+ ^: Z1 I1 E! s
- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
v$ K* ^8 i1 V+ ^9 i `% p1 m9 K - (setq oer *error* *error* err2)) i% y: P- N2 ]& l( L
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
- ^% l" r- F0 k3 z+ z( k - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
8 L5 C% o9 f4 Z+ |6 w7 U3 f - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))+ e1 T& s/ F9 C
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))" y$ Q4 Q. U) ]# @; d
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
1 }; G. b8 p5 u/ L5 P2 H1 M - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))7 s+ G4 r" f: h! v
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
: y8 f5 L4 z) X1 q( I" r! q2 Q - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))( W' J7 L+ U( v( V' T2 P. T- O f
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
! Q2 O1 }! k- ~" Z' U; c - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?")) a' O P# v. G N1 P/ U4 r
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))3 a8 ]# V6 c s f
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
' q( C. o5 G4 }" y! V5 c9 p - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))3 w# M! L; P5 S- M
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))+ P& y1 p3 z; P+ S" P `
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
; ^# a. M/ x, J* j% ]+ s - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
: Q/ `4 K5 _* V, B. b) D9 w - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))* b( T9 K6 a( }9 K0 z- {
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å")) 2 F6 v+ |7 v, P4 Y
- (setq pta (getpoint
9 t9 t" v* H( z5 U1 f - "\nPick first corner. : ")) E& v; k5 F6 t/ E; b( p2 E
- (setq ptb (getcorner pta R5 x( J) m' O* L* C2 M% X1 X6 B
- "\nPick second corner. : "))
' B' j! y( c: y' d* ^ - (setq ptc (list (car ptb)(cadr pta)))
" Q3 Y* \9 ~/ W3 [" w - (setq ptd (list (car pta)(cadr ptb)))! B# ^, S% [9 U8 ?7 w+ a
- (setq ang (angle pta ptb))# Z; ~" v4 X- t) [
- (setq d1 (/(distance pta ptb) 2)); S! e- p$ T( h/ A
- (setq cp (polar pta (- ang (dtr 0)) d1))4 \0 Y5 b/ R4 |9 c; _/ i
- (setq X (distance pta ptc))
5 r/ w5 I4 ~3 f) ^( U% ?% S - (setq Y (distance pta ptd))
% n$ r+ S, x: T4 P! {! r7 Z/ J - (setq X1 (rtos x 2 1))/ U+ k% a9 |/ Q2 k. k
- (setq Y1 (rtos y 2 1))
5 X' `( b M9 v* k! @7 o7 ~# t - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
: g( h% K9 w @, ]; ]8 F - (command "TEXT" "c" cp "0" CPT "text" "" rmsz)); V0 J+ K' k' w( T' q
- (defun dtr (angg)
9 f+ f" m8 b6 |% b3 `+ N - (* pi (/ angg 180.0)))
' A$ J* W9 G. J1 k6 D8 W) ?: W8 F
) K y) |( z( u" ?% S$ P" @) }* m: E- ;;; ================================ GHI CHU ============================
3 b; ?1 a# s/ o - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========4 w5 D* \ ]3 d5 \( b r
- ;;; =======================Thuong Dung Font Romant.vnh===================6 G, H: ]1 }: ^% }
4 O4 Z: H8 t! y- (defun c:GS (/ a b c d)/ U$ K. D! ^1 {9 s7 ~& ~( x8 b
- (graphscr)! z- c. i' g) N% P* s
- (prompt "\nSelect text to set style....")
" z: E+ X+ x, @+ P1 t- k - (setq a (entsel))# V0 X. M( S# ]; z3 p* s
- (setq b (entget (car a)))
, F; P1 j' C5 s - (setq c (cdr (assoc 7 b)))
! Z0 j" L8 Z: I! p2 S/ R - (setq d (cdr (assoc 40 b)))
3 Y2 f8 Q- P) }" x4 X( V6 D- W - (command "style" c "" d "" "" "" ""))$ d5 {9 |1 Q6 O2 K6 n/ @
- (princ "\nType GS to set text style.")
$ s; {2 Q, ~# d& m6 s5 E
, ~/ Z9 \0 d$ @4 G/ J- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
M7 u4 G" R% \" g4 b; V+ a - (setq olderr *error* *error* myerror)
2 V, }$ m/ B3 z! x - (setq ocmd (getvar "cmdecho"))
$ K/ J. v p9 F9 i% H; r - (setq oblp (getvar "blipmode"))
" R3 C8 \$ @0 ~) W - (setvar "cmdecho" 0)
( b5 e! A( | {9 x" p - (initget 1) ;3D point can't be null, v+ n. D% u }) I( L
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
# k! V/ [ }/ O& O2 z1 g( x/ P - (setvar "ORTHOMODE" 1)2 N( A6 ~$ _9 u1 v+ n$ W2 l
- (initget 7) ;Length can't be 0, neg, or null
% k- I) G) C$ u6 B - (Setq l (getdist pt1 "\nLength: "))5 r6 o7 k) I* D: B/ T
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
% f1 t! L& E; E# r0 v - (grdraw pt1 pt2 2)
+ m% a2 J) l! v) R- c - (initget 7 "Square") ;Width can't be 0, neg, or null
0 N7 f. ?1 c' O* B1 O' D - (setq w (getdist pt1 "\nSquare/<Width>: "))$ M6 Z3 B/ P6 ^( }7 l# O( H3 f! V: p: s
- (if (= w "Square") 7 O9 [. f6 J, B
- (setq w l)
. r5 U" T: ~# [ - )
$ _5 B5 \% i, g" L T4 V' P - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
- q: Y$ V( S, j- U - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1))) @4 h9 Q* s# v; }1 |! Q) f
- (grdraw pt2 pt3 2)
/ n; i; ? Z; o M - (grdraw pt3 pt4 2)
8 n0 w; [, g4 O8 J4 \; K - (grdraw pt4 pt1 2)% t1 G3 N% J; H5 X1 }8 n2 g
- (setvar "ORTHOMODE" 0)- h/ |+ f3 _/ U5 K: F/ r
- (command "pline" pt1 pt2 pt3 pt4 "close")
+ M5 m. W% a+ m0 V - (setvar "cmdecho" ocmd)
2 k' @" o+ t- `7 ^, {, ]7 T - (setvar "blipmode" oblp)
! v6 `+ z& b3 K" W' T0 h, Q0 |, S. M0 | - (setq *error* olderr) ; Restore old *error* handler
# V2 ^2 `* @1 {/ b - (princ)
) o. g6 X1 Q( f# b2 Q' P' Y - )
- D" s x' s5 y9 S/ T; A - 8 F9 v2 L2 l/ R5 [. ~, v
- (defun c:SG (/ ent pt1 pt2 ang)
8 f& l m& N o1 r7 O$ ?, Q - (setq cmd (getvar "cmdecho"))
! ^' k4 I2 j$ z; c2 I2 _. q. L - (setvar "cmdecho" 1)
+ t: K* K5 A' w, V4 O - (prompt (strcat"\nSnap angle will be set to angle of line"))
/ L+ [* D ?' K4 ]- D - (setq ent (entget (car (entsel)))), t1 Y+ j5 f3 x6 b6 B0 ?7 m& Y
- (setq pt1 (cdr (assoc 10 ent)))
' `4 [, @; z8 H - (setq pt2 (cdr (assoc 11 ent)))2 x7 [6 B7 _7 |, h b+ O& w# l
- (setq ang (angle pt1 pt2))
. p! H& E* a; ^2 n0 @9 S; O - (setq ang (/ (* ang 180.0) pi))4 Z7 H& S( x9 f# b
- (setvar "cmdecho" 0)
3 e4 N! v8 s' t+ o! p - (command "setvar" "snapang" ang)
3 `5 l/ v! p% _ - (setvar "cmdecho" cmd): ]5 g& }# a5 ~1 H
- ): n# Z: v+ P: ~0 ~
' d( H M8 g( i5 C! G( V5 }- (defun C:TG ()
. b$ k/ b1 s- x7 Z$ t) _ - (initget "Increase New")/ ^* e7 A7 b8 U
- (setq ans (getkword "Increase/<New>: "))1 r$ i& t! m( b* R8 h
- (modang)0 q& l. ?- e: b3 e1 k
- )+ Z9 t; H8 `3 C2 X
- (defun modang (/ ang ss ca e na ssl); j# N* k) Q$ d& v
- (if (= ans "Increase")! i2 K# F1 z% z) {3 v& \" a
- (princ "\nIncrease angle for text by: ")# p9 r8 w8 E' {9 P# s
- (princ "\nNew angle for text: ")
1 q; [% A+ x- s2 g% y - )2 Y/ t) c8 M' h& c4 R$ ^
- (setq ang (getreal)); i1 Z$ V! @) |0 Z& ?3 k' g( b* w8 I
- (setq ang (* (/ ang 180) pi))0 {9 ~0 o, _5 c& T% ^* ]
- (setq ss (ssget))
3 I& Z! p4 z8 f; p - (setq ca 0 ssl (sslength ss))
/ \) u" W2 M x - (while (< ca ssl)
5 F+ V; u1 r% t/ A$ }9 j% P$ J6 K/ _ - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))9 k5 |5 E4 }5 w! R6 Y
- (progn$ O* u( }. q* ?0 E8 ?
- (if (= ans "Increase")
9 B: m/ ?1 A; B1 E* U: q# u5 } - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))" L) x5 O5 c& [
- (setq na (cons 50 ang))+ ^. i( T: z, f/ J2 b
- )
7 W5 I/ Z7 v: J9 D [, j2 I - (setq e (subst na (assoc 50 e) e))+ B: u& g9 s% O1 T
- (entmod e)! c) J- ?" e# V6 Z
- (setq ca (1+ ca))
; q; Z! A3 e9 w6 U - )
8 o: n/ i7 _2 C X - )
& g4 C7 K7 W C; o - ). s- l" x( O* u3 A2 D- _$ L
- (terpri). H! [+ o$ p3 _& I6 C6 h# k: s; p1 t
- )0 e1 s3 E% R9 s* Q
: a. s! `. f& j; w- ; c! G* x9 O9 F' X O4 Z4 A
- (defun c:WL ()! G! x* S# m* v$ O9 E' e
- (setvar "cmdecho" 0)# F) N; [( k9 h) q" x" k
- (setq a 1)& n5 v/ }5 q6 P+ d* |
- (prompt "\nSelect Polylines to change: ")* S- S+ V" j) H9 A
- (while (/= a nil)! F) l/ S4 w% z/ u0 D- \
- (progn
n7 G, E. ]3 t4 A - (setq a (entsel))
# |- s, |8 x. L- ~( s2 ] - (if (/= a nil)- }% S& {: S3 b* S; S
- (progn
! \9 g+ ]( r! c$ u7 {! X# K/ a/ M - (setq b (entget (car a))): A" ]" ]% R) V( K$ t
- (setq c (cdr (assoc 40 b)))
" ]' F+ [. g V. J: [ - (princ c)1 G$ b9 K2 ?9 I) T
- (command "pedit"a"w""lw""")
7 P1 V6 }- c7 o/ n. c - ))))
( F. q8 C9 s( w p3 Z" q - (princ)- ~& r6 W1 [( Z/ ?$ Q
- )- i, i& B* F& k- L5 w
- ) E9 a8 E: \6 s
- ;;; ================================ TEXT FIT ============================' c& H7 `; q4 s. A5 c
- - n3 e: {1 s r3 G# s6 @
- (Defun c:FT ( )
( l0 A0 f5 _8 z! {3 N, ]6 L3 i - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
* a6 j1 t% [* o k( s7 F& K - (Defun LL-xyz (arg) (CAR (TextBox arg)) )% w! M6 R0 T4 f- r9 s, H7 |9 l
- (Defun UR-x (arg) (CAADR (TextBox arg)) )1 k3 L I! D9 L
- (Defun LL-y (arg) (CADAR (TextBox arg)) ). K3 |* c8 p2 w. y
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )! E+ X0 n6 t2 {) c) b- G& C2 ^
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
7 p* G+ W& v* U2 ^5 [ - Textent (If ename (EntGet ename)) ) ) `/ w8 k6 g( q6 G+ w" [0 \+ x
- (If (= (CDR (Assoc 0 textent)) "TEXT")
" g1 D4 g8 r5 j2 L+ s- B0 j% t - (Progn (initget 0 "Start")
; M2 Q/ t4 `' j6 q# o - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )9 T% ?3 _0 q1 o4 h
- (setsnapang Textent) ;set snap along text entity
" w% S0 w2 M9 I* v$ y K5 I - (setvar "ORTHOMODE" 1) ;drag along the text+ [# a* G- m/ R2 y% Y0 p5 Y
- (setq + @9 f0 v4 N {$ K% Q$ i* K3 ~* \
- TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
, T! P0 P, e5 }5 | - (setvar "snapang" 0), {# `( k* X) Y' Y* [
- (cond
, T; @% ?/ v+ I' R* f: t - ((= (type TMP) 'STR) ;;new starting point to be selected
5 Z! `! R: y- |/ @/ U0 Y - (setq Start (getpoint "\nPick new starting point: "))
5 U7 o) j8 v( u5 r5 E' g4 J - (if Start (progn7 N9 M' m& f7 Z1 v: H6 Q0 y3 q
- (command "_UCS" "_E" (cdr (assoc -1 textent)))
( X( L' ~* V5 Q3 @1 c9 M- p - (setvar "ORTHOMODE" 1)
/ e, N7 i6 q7 D# L9 |. A - (setq NewPt t. F$ ?3 Z7 I. k# d
- (if Start
; Q" [' o7 i; {" } - (getpoint (trans Start 0 1) " ending point: ") nil ) )! s$ D* Q( d# {9 J
- (if NewPt (setq NewPt (trans NewPt 1 0)))
& L9 ^/ `0 n# K ]( _2 X; q3 J - (setvar "ORTHOMODE" 0)
0 f$ e4 `+ K3 P5 D6 p; l& ] - (command "_UCS" "_W") ) ) )0 |- l1 ?& W" r+ n4 H
- ((not (null TMP)) ;;new ending point selected
" A9 [9 @- x! d2 ~7 A! L - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )% N5 n! `0 O/ ^ C& `- B
- (t (setq Start nil NewPt nil) ) )
( F9 T. r* ~0 B& W9 }: T - (if (and Start NewPt) (progn
8 z- Y. P u4 ^' { - (setq Val (Assoc 41 Textent) ;;current width factor+ T- ^# b5 @% r0 Z1 g e
- Val (if Val (cdr Val) 1.0) LTC_% + O& Q# Q5 q5 L. @+ [
- (* (/ (Distance Start NewPt) NewEnd ) Val )" y- J, N: a' Y
- textent (Subst (cons 41 LTC_%)
8 z; ?5 Y& x2 A- a6 Y. G6 V - (assoc 41 textent) textent)
7 R% Z8 l1 Q1 C7 m; G- A - textent (subst (cons 10 Start) (assoc 10 textent) textent)/ T6 {+ ^: v7 O4 B& E
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )# z! u1 l m3 u8 M3 b" ~
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
7 T" n4 A$ z' h4 J2 E2 i1 C - - I8 O i) @7 r
- ;=====================================================================7 c, R5 e2 D- X# E
- ;=========================COPY + ROTATE ==============================
( D& K3 x9 b4 Z/ l( u, S - ;=====================================================================/ u. ~0 I! P( L( V' w
- + b C0 \9 J* B, q
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
6 u, }- P2 D6 c& M# G6 s - (setq olderr *error*& S& z4 L" t2 Y9 i% G; m
- *error* croerr)
6 v. ?% a# V! g7 _ - (setq cm (getvar "cmdecho"))
/ V1 M8 a! }' g" e- { - (setvar "cmdecho" 0)) k. p, i7 F/ m }+ F4 |: e
- (setq loop t): ?/ ~0 x, s6 }, T# h- x
- (while (not (setq ss1 (ssget))))
1 O) H/ k1 Q$ q m7 V - (initget 1 "Multiple")
! K9 m n1 j' F% i7 p - (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
8 H$ ^* N* t% A/ A8 m; q1 n" y+ `3 N - (if (= bp "Multiple")
- X+ P" G' p6 j" ?' P- U - (progn- S9 s1 r2 j9 ^
- (setq bp (getpoint "\nBase point: "))
* y& e$ M3 r1 R0 e- x+ r! h - (setq mult t)3 Y8 f3 E5 I* M2 Z
- )7 y/ k; M* t# q) O# l2 R1 ^
- )4 C; I9 \6 T1 }* w& ?
- (while loop+ v4 }$ h& U* i: R' m
- (setq loop mult)
/ V. ]+ A1 d5 h) S- X0 ? - (setq lent (lastent))+ X1 U8 u9 f5 B* ?1 [2 l0 L8 J
- (command ".copy" ss1 "" bp bp), ` b" w, D$ b. T# V: Y7 S" L
- (setq ss2 (lss lent))7 B) u4 y! u+ q- J0 V& z
- (setq lp1 (getvar "lastpoint"))
" T" N" S" O) z9 p2 {5 k m - (prompt "\nSecond point of displacement: ")8 h+ M |+ T) W6 b# K9 V+ h
- (command ".move" ss2 "" bp pause)
& A# U0 {- K% [' }8 M - (setq lp2 (getvar "lastpoint"))9 \- T# V3 ^% Q9 O
- (redss ss1)
4 d, T2 A# v) W - (if (and (not mult)9 L( B6 B2 R9 t% H
- (= (distance lp1 lp2) 0)
6 U( a3 \0 V, l7 @. Z - )
/ w" L! u, O2 {6 T - (setq lp2 (getpoint "\nRotation Point: "))" X# p D! m$ h1 R# Y2 d
- )
& _: h0 }: s+ S" o* G - (if mult. `6 E* M% j" W) K$ x( @, z
- (prompt "\nRotation angle ")
# I% r# ~3 Z( u - (prompt "\nReference/<Rotation angle>: ")
, Y5 D' [! }; A+ H: A8 r$ N# r5 G - )
* Y5 M+ X0 T' W. c: t" ^0 G7 B6 V8 [ - (command ".rotate" ss2 "" lp2 pause)
+ v" j1 E/ P" ?0 Q# j! ?0 v3 Q3 P. l; } - )- B' s0 l0 K# ^$ h7 V2 D
- (setvar "CMDECHO" cm)
9 H" F( S5 i% ^9 ]1 Q3 u: n - (setq *error* olderr)
3 i! I$ y" d3 S - (princ)
- P, w, v: R+ s9 O1 f5 _ - )2 u9 V* `! n2 m+ F/ b
- (princ)8 U% L/ e6 V+ Z* k
- (defun croerr (s)
; H g/ Z% K4 F$ E) h - (if (/= s "Function cancelled")
0 d- H {1 h v, [& d' c - (princ (strcat "\nError: " s))- d. n9 w) J. y4 i
- )
% s( N/ ~9 E, B% \+ [& V+ \) _) G& g6 C - (setq S nil)' |! ]; u Z4 h/ Q
- (setvar "CMDECHO" cm)
/ w" q4 i5 u* h7 F9 i- m0 v - (setq *error* olderr)! V( ]( f# k( o3 C5 x0 c, I4 C
- (princ)
. |* M" L6 h2 B, W& }5 N, i - )
5 s. }9 n1 e5 e. m - (defun lastent (/ a b)3 u3 w8 x" ]2 z- p& P$ w9 K
- (if (setq a (entlast))6 T s6 h0 [/ d9 Z) [3 o/ d! T
- (while (setq b (entnext a))' V( K, i4 U/ A- w8 d- n( \; p# s1 W9 Q
- (setq a b)
6 ?4 [: d5 i \8 Y - )
- k7 q3 T2 U, b- `) y" I2 O. n: G7 e - )8 w5 u, j3 s9 ?0 b% Z
- a B1 ~4 M$ U1 b+ y) p7 `! O
- )
9 D* B! ~ ~7 U5 C6 D3 _) m: s - (defun redss (ss / en i)
- f- b1 o: r7 Y' ^ - (setq i 0)
; g! q2 ^2 n: \( K5 U - (while (setq en (ssname ss i))/ O$ h) ?* g/ N# c
- (redraw en 1), {+ b5 {, C2 G, j4 K0 q- z
- (setq i (1+ i)) B$ D% r9 e$ u5 @- P7 l- i
- )! T3 D' ]- g6 e0 t' _
- )) f8 L7 z) ~. F6 @' E- F
- (defun lss (en / sels ed)
+ e! v7 }, {0 l# u - (setq sels (ssadd))1 ]1 b$ A# F- g, t+ G
- (while (/= en nil)
# e J1 A2 S i) t0 g; n( g( @ - (if (setq en (entnext en)) (setq ed (entget en)))& Y' k4 ]. B0 ^$ T+ i# S
- (if (/= en nil) (setq sels (ssadd en sels)))
) ~. x; D3 u2 a2 r: ~/ N+ n1 l% _0 ` - (if (or (= (cdr (assoc 0 ed)) "Polyline")
/ O6 m% d* f: g9 n7 w* ^. e7 o - (= (cdr (assoc 0 ed)) "Insert")
+ n) N7 Z) V8 w0 x- M7 r - )( A4 ]4 Y9 Y3 [/ W3 d: [
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
7 |1 ^, h" E7 S+ p+ }: ^ - )
1 [4 I- l/ E* |! Q+ _ - )
7 l0 S/ `4 ^% c4 s - sels
3 V/ h& H6 \0 N( H/ W - ) p$ O( Q0 [8 a
- 2 g3 M0 Y: M9 l/ }5 z# O$ T5 B0 O
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================$ G( V R: {9 y" P+ M
- 0 ^8 z8 I& W7 ]( i
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
) k, P/ |! v( Y& n - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
% [# m1 `4 w9 E% D7 x( g - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
# K7 I) @% ^4 ^( y; D - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
1 r+ Y" G) C8 o5 M - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
4 K, A' h4 }, V. V1 V' c. m; e - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
* e6 w4 a2 B1 R2 E ? - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
! w* a/ y$ h# w - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
# m; M6 h/ q2 O' |# s, h' X - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" "")): H8 j7 Z" O! y9 p, Q
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))+ ?4 i8 \6 a/ M' C' Q3 s7 d, d
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
" x9 f) o* n8 s& \7 M5 M - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))7 Z0 X, q2 B; L
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))$ z: b; |* i# r+ H% M
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))0 U3 M' f$ z2 y& I |4 I
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))- A% b: v x8 J- M+ M
- (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))+ \ B h& M, i) \8 D* t
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))& C' i3 X9 L$ P) _5 g* G) U3 f- \
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
+ y+ w" `4 U0 ~; j: {6 k - (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
% @( |* v# g* m" ~1 V' U# [
% P, Z) l0 t W& a- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============5 Z$ b( U8 t. o* D
- / D( }! @! R! ]
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
: g' P' a+ C4 O0 L. ~; x6 L) v8 S# b6 g - : S! c1 {$ R8 |2 O5 M" r* N
- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
! [$ Z5 A9 q) o+ V) k) e/ } - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")8 ]$ a0 m6 }# W+ }& A1 N
; A% R1 f0 T& o, `- M% n( b- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
4 m: y+ S& Y) B; O, Q: e
- g5 p5 W4 }' l& m( g5 y$ i- ;(DEFUN C:netxuatanh ()
( b" s2 ^3 h9 L- c/ A! w3 Q2 J# f - (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
; ?) P5 A- {1 o/ q5 | g - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
( A3 j' o' Q I9 i% v4 w - "M" "MANH" "C" "9" "" "Lw" "0.5" ""! x( H$ T, t- @$ H/ g9 a, H, ?( E
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""0 \4 o" A: M# w& q x5 [+ [! M
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""' o& i! K) \+ d8 ^6 h0 b9 C0 }% A
- "M" "THAY" "C" "7" "" "Lw" "0.7" "": U' ~' b/ g+ y' L
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""
) T0 C ]6 ?+ n' n& g4 D - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""- b. S) a ?0 C
- "M" "COT" "C" "2" "" "Lw" "2" ""& z2 u# D, j+ _& @( `3 \
- "M" "Defpoints" "C" "7" ""
. s% k3 U. U) \7 \4 m - "M" "0" "C" "3" "" "Lw" "0.5" ""
# Q9 ?/ T" v; K0 f& T2 V8 K - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
9 s; K8 D6 J, n# p8 q - ; "M" "2" "C" "31" "" "Lw" "0.5" ""
f' F x$ k4 ~8 J - ; "M" "3" "C" "8" "" "Lw" "0.35" ""5 E3 Z ~) F: f0 m4 v3 A4 p
- ; "M" "4" "C" "4" "" "Lw" "0.8" "". E6 K# z9 |4 Z: U
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""# e8 {9 c( X$ b
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""* R; v2 ~0 L. a$ L5 O4 e- D
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""
7 n3 }- u, E; ]' T! ?, u8 H - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
1 D1 U% ?, }, I! L3 [- T5 \' r - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
2 R! e3 { m) w7 k - "M" "KE" "C" "8" "" "Lw" "0.3" ""
2 A2 N; m, E, j! E5 g - "M" "KT" "C" "9" "" "Lw" "0.35" ""
# O8 T% A! a! D - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
9 i% o" T$ y. e$ C0 a - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""/ m* }3 k' c2 l' |; s9 F; A) `
- "M" "TBD" "C" "2" "" "Lw" "0.8" "", V* M: r1 c2 }- ~: H2 V ^
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" "": H# n7 P) t9 C1 i( ~
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
6 j( I. w/ \# d3 i. ?# R$ x - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
7 B; `& Y8 ]" }" P/ _0 f - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
! z' U5 J' U% w, | l) B/ g - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
- Z! X4 D( M) c - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
/ s8 i( Q' r/ v7 F5 K - * w, p' [. p* V7 ^5 ]- q1 I4 Q9 L
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===. B9 f$ i2 @5 Z. ]1 \ r' n' K
- / d5 ^$ t8 m* W- ]2 p
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""7 b0 e- s$ N0 f" P! |
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""/ d3 v* M) R0 C! `/ u5 }: V
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
e5 s1 D1 x2 }: ?% A! n& Y - ; "M" "250" "C" "250" "" "Lw" "0.35" ""3 ^* D; K5 I3 |
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
/ X. G2 t: d6 m1 `; s* D - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
9 o6 e1 _8 E2 |6 i5 Q7 w4 t - - j K2 B$ A7 D( _ G, ~: T; E; b
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======- c5 j. G) q+ Y: E
- ;===================================30|04|2024==============================3 T2 K' }5 A9 D" E
4 I6 Z* p+ ?% R- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )4 {& X* ^- }. H* V% \ }1 y. o% v
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
* c. A5 `. s9 x- q1 x' _ - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )
9 x+ C( {' L6 d - (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
. {( }6 e' r1 E$ v, @+ P: e - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )6 \6 u7 o# ^3 D: ]- @, Y# ~5 L
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )9 ~9 v9 `, l) I! q& u4 [/ m
- (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )7 ~5 x. c2 l+ A+ q
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )$ j9 f- v1 P* L5 u. b" |# s# a! w/ Z
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )/ s7 [& g6 M" d
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
- o ~0 m) b, R+ x3 M' w; H
! q( X7 G m/ {: z" L- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
; {& t, B5 h, V/ ?1 {# ?7 q2 ^ - ;===================================17|10|2024===================================0 p) Z: _% l2 `3 g: ^/ o
- 5 Q3 M! `6 X) a! d: R
- (Command "DIMTXSTY" "ROMANT-DIM" )
7 j. j' ~- g* t4 J - (Command "DIMBLK" "" "Closed" )
4 d9 _ q' x& s2 b J" f9 k0 F3 e - 3 y5 H! ]3 E+ C3 v# O
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=0 N" J' S! ^4 l) I6 n/ F: ]
- ;===================================17|10|2024===================================
( j. C: W6 Q- w" k. _; Z: s, o, [+ l - 8 `) b/ B- Z: q& i2 }8 l
- ;(Command "-units" "2" "8" "1" "8" "" "N")6 G& |/ T6 }3 g: V* H
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)5 N Z3 h, _% v7 ]( m
- |: Q/ T/ s4 j' C6 D6 w! Z h
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
) X8 D& H# U/ |9 e7 o1 U) }$ ^" @ - ;===================================17|10|2024===================================
& Y$ Y) {; j5 J8 Z, H' P - - j" D1 ^! M' B) m+ C9 r
- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===== s% z; C) o* W* L2 ~
- ; ~: `: G( v' H- b
- ;======================== DAT NET IN & TI LE BAN VE =============================
7 A0 G3 a& E9 J6 m( H+ \) v b% [ - ) E: j; U# q/ ~* X* I; }, ^/ F
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================: g: O! f: \' W" a: x5 R9 r3 c
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
7 b% h7 \2 P3 Q) g3 R9 j1 T - ;=============================11|07|2025==============================2 N0 k7 e' Y- y
- ;Ti Le Ban Ve - 1 : 100
$ X9 h/ C. {3 I# H. k) d - (Defun c:kta4 ()
7 u1 l1 X% E( k - (setq mv_sc 100);Ti le ban ve. l) {; c+ g- c; j0 {( t+ L3 ~3 N
- (setq x4 297)
" w5 n' h I8 }" L+ G3 B" I9 r - (setq y4 210)
9 V- o, k. X2 W/ r+ C - (setq x4 (* mv_sc x4)
0 y o# d. J$ b6 y - y4 (* mv_sc y4) )! O7 X2 c0 z, x; u Z, [
- (command
- R8 N2 K+ x+ ^. a - "LIMITS" "0,0" (list x4 y4)
1 E8 H; d6 _; j - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
* l, A5 r9 T4 j2 ?% x - ;Khung CHU NHAT Chinh
2 C& d0 \5 G, i* p$ C: k - "RECTANG" "500,500" "@28700,20000"
6 c2 [ s. r+ y3 s4 D, w8 W& p' h - "RECTANG" "700,700" "@28300,19600"
& H3 a8 i3 r5 `: g. ] - ;Khung Ten Chung& Y. u; E0 U: v; y" M+ q
- "RECTANG" "700,700" "@8000,1250"
6 a$ A7 y. i! N - "RECTANG" "700,700" "@17300,2500"
9 d8 Y9 J! S; @ - ;Ten Ban Ve
6 m, t. l4 H% e) X/ l. ^ - "RECTANG" "18000,700" "@11000,1250"$ c8 p' T3 V& i+ i+ v
- "RECTANG" "18000,700" "@11000,2500"
2 \4 w3 L& _" H8 z - ;Khung Ti Le + Ngay Thang Nam
0 y2 M: [. b! E2 m/ x8 |! ? - "RECTANG" "22500,700" "@2000,2500"$ f4 J7 ~# i# l; G
- ;Khung CHU TRI
, |: @+ g+ I# D - "RECTANG" "8700,700" "@3800,2500"
7 g+ s) d! l$ Z" J8 T% @ - "ZOOM" "_a" ))
6 I/ a! ?: n: G. _1 N9 m! V - ;=====================================================================
4 q4 j Q) {5 u9 U! @) Y - ;Ti Le Ban Ve - 1 : 100
+ h+ \, v8 A% @0 O! B5 H9 c' ^% X - (Defun c:kt4a ()* n# \0 {9 ~9 v; e/ U3 L2 N
- (setq mv_sc 100);Ti le ban ve! G; r( v- I; a+ N. c8 _
- (setq x4 297)
, v5 ~% a0 Q2 E6 n& V. M5 v3 J - (setq y4 210)
* @+ i4 ^4 E& z( s! a8 C - (setq x4 (* mv_sc x4)
$ z4 e* O8 S. P' s - y4 (* mv_sc y4) )6 c" o7 p7 [( m Z- y5 E
- (command q4 X/ g# Z+ g4 ` A2 n: a0 Z1 v
- "LIMITS" "0,0" (list x4 y4)
; L& J* J6 \9 d" q! Q& z+ w - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"$ k# r; i/ w2 Q' z8 ^9 r1 \
- ;Khung CHU NHAT Chinh ) k C3 Q2 E# W; w
- "RECTANG" "2000,500" "@27200,20000", ^! _2 U; |$ @; X: m
- "RECTANG" "2200,700" "@26800,19600"
3 ~% g+ s c) c- Z: j4 E1 p - ;Khung Ten Chung
9 o4 n5 _7 A- _. h- r - "RECTANG" "2200,700" "@6500,1250"
f* h. m6 [* X# C1 H9 t1 X - "RECTANG" "2200,700" "@15800,2500"
' _; u3 M+ h7 k* ]" y - ;Ten Ban Ve
9 V: A) b( ^. z5 x8 E+ N$ | - "RECTANG" "18000,700" "@11000,1250") i% }7 E& i: F4 r
- "RECTANG" "18000,700" "@11000,2500": b! V; E$ y+ n- F% G- w
- ;Khung Ti Le + Ngay Thang Nam7 Q+ u4 P9 D. G- T7 r1 U1 U
- "RECTANG" "22500,700" "@2000,2500"& B3 @ ~! p& _/ ~
- ;Khung CHU TRI+ y8 `( q+ w# N P, p
- "RECTANG" "8700,700" "@3800,2500"
4 R* ~& m% ]" k - "ZOOM" "_a" ))+ m6 h. ]7 x& G! v- E
8 M! h% Q( C* `! |! y- ;;; ============================GHI CHU Khung Ten========================3 C3 V7 n" f/ f5 R& p+ B7 t: m
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========0 G# h. f9 F: v- g! g8 Q; G
- ;;; =======================Thuong Dung Font Romant.vnh===================
, {' w, G. }% p# |0 @/ C) U - 3 |. u. y6 U( D2 k; m
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
. | }9 E4 G2 a+ V1 b0 V - (setq oer *error* *error* err2)8 f0 W3 m* W9 J8 T5 d: J
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. "): m' M( ?# j, i* C1 }
- (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
% e! L7 E/ x- @ - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
G" x# B1 x5 W* `( X" D - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
5 A) P, m2 W% } [, U; N# Z+ \- G - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
6 W5 |6 M" @9 q - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))# T2 |+ i2 ]1 S
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))( p8 j v- ^. d( M
- (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
( I) E4 W9 n& M1 X0 U8 ^ - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))/ i, ^- E P( k. u0 c/ H
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :")). ]% g& S7 H5 `' j$ o& I
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))* W2 D4 \0 g& s7 c
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
+ v' `$ j2 v6 G8 ~" M' K - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
- D( Q! m3 k- \! p+ x - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
# b. F3 j3 d7 P/ G* d. ?, A& T - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))7 M5 b; l- Y/ _5 }! ~- h5 p
- (setq pta (getpoint
/ t5 B- R8 m# W/ T+ @ - "\nPick first corner. : "))( K- X1 L$ G" x3 ?. q8 ^
- (setq ptb (getcorner pta$ x0 o# q1 q$ {
- "\nPick second corner. : "))
+ E E. L; ?8 u9 Y2 Z6 i- K - (setq ptc (list (car ptb)(cadr pta)))
$ H$ X" L2 w, p/ G- i - (setq ptd (list (car pta)(cadr ptb)))
& o. H' j& a" s5 ~8 \1 l7 n - (setq ang (angle pta ptb))% Z, @/ o: p6 a2 A/ ~
- (setq d1 (/(distance pta ptb) 2))
: `$ a: Y* [, E( t( Q" r% O3 V: T4 F( R - (setq cp (polar pta (- ang (dtr 0)) d1))6 l+ N# @$ F2 L) e8 @
- (setq X (distance pta ptc))
1 t6 L2 ~8 e) l- |+ F - (setq Y (distance pta ptd))
( \# H. k- I$ r; u: x% x, N# C - (setq X1 (rtos x 2 1))% ^3 X, C# V) G
- (setq Y1 (rtos y 2 1))
3 B1 Z+ u- n; c - (setq rmsz (strcat "(" X1 " x " Y1 ")"))7 ]2 z% s+ J9 {8 j# n1 q7 V! o
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
1 C. U+ A1 L( {- |, t# ?! C9 F - (defun dtr (angg)
9 J7 H2 g8 I0 F! y - (* pi (/ angg 180.0)))' E# A2 ~6 x6 s5 U
! k) b, G/ @. L+ d; |- ;=====================================================================2 f0 G5 ]4 o% ~, s k
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================6 P7 p% U: Y4 V- H. I1 |% D6 k
- ;=====================================================================3 }9 T" ]/ ]) y, S
- - r9 v, C+ Z+ w$ N/ q
- (Defun c:a6 ()
, }5 C4 I4 y( b; n - (setq mv_sc 100);Ti le ban ve6 O* J. F( M2 z- l9 Z3 A u4 V1 z5 m
- (setq x4 74.25)
( M+ O& {) C* g9 _ - (setq y4 52.5)
7 B8 L7 v( J. h9 t/ `' _ - (setq x4 (* mv_sc x4) ! l' q: |! Q7 b/ u$ j7 A" W
- y4 (* mv_sc y4) )
* j# s4 k2 L- {" [ - (command + G+ X- H$ ~/ Z8 l9 _
- "LIMITS" "0,0" (list x4 y4)
v; k e- j8 N3 K+ S+ S - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"9 P! G6 o6 j6 p2 q& u2 U/ E; R8 T
- "RECTANG" "125,125" "@7175,5000"
7 c# t4 K: ]8 D: u) _) c8 Q, F - "RECTANG" "175,175" "@7075,4900"$ W( b- {3 U5 S, U& ~! x! Z: G
- "ZOOM" "_a" ))! y' j+ j1 X G) K
- ;=====================================================================
u% X+ c5 t# o. o - (Defun c:a5 ()" F/ Q3 D) ]% w. Q+ k( y6 f3 f" g" O
- (setq mv_sc 100);Ti le ban ve8 k2 O+ Z1 O9 G( L7 w1 a7 f
- (setq x4 147.5)! z' R3 M- R& H2 E
- (setq y4 104)
3 u8 m- I2 V, B0 t& r - (setq x4 (* mv_sc x4) 4 w" Y, _5 n, v: y$ T
- y4 (* mv_sc y4) )
- m8 K. u5 C$ y4 w4 R8 | - (command 7 g# I, y4 A$ l& ]6 T, U& J- T
- "LIMITS" "0,0" (list x4 y4)% C, a( N! I3 q7 p6 a1 S; e; [; h" p5 a
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
5 p* m1 y3 A9 s) h2 { - "RECTANG" "250,250" "@14350,10000"
/ i9 E+ N1 a6 O3 r - "RECTANG" "350,350" "@14150,9800"
. m. v$ s) K) e/ a - "ZOOM" "_a" ))
7 J* t w7 T2 D+ ~* ]/ { - ;=====================================================================$ C7 j+ L. {" l; z e* n; g+ `5 x
- (Defun c:a4 ()
5 f( E4 r; |/ Y2 W - (setq mv_sc 100);Ti le ban ve
. v6 I" i; Y( t8 F - (setq x4 297)
% h" d6 E1 f8 @$ X- E/ x - (setq y4 210)
5 c5 c' c6 d/ t0 o, b/ d5 d* r) _ - (setq x4 (* mv_sc x4) # G0 c( I" n' P) ?* P/ Y1 l
- y4 (* mv_sc y4) )
! x M5 i& Y9 T( F/ c9 p - (command
& E" u' o5 o9 ^ - "LIMITS" "0,0" (list x4 y4)$ c& Q$ X0 C, ~: k! N* r
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
" l* w' U$ I: C; m! m" @* W3 g: k - "RECTANG" "500,500" "@28700,20000"
5 f( s" n) R. _0 K* w/ e; ^8 q - "RECTANG" "700,700" "@28300,19600"
3 E4 I% |/ _# l8 e - "ZOOM" "_a" ))
9 {' S& W+ w. R- W7 m5 X% w* R - ;=====================================================================
% c A4 \- d! B - (Defun c:a3 ()
. }' g- V/ M1 _& L" u' w- q j$ {. Q - (setq mv_sc 100)
7 E- N$ v: E: S - (setq x3 420)( y: x- h" \1 @2 n
- (setq y3 297)
. O5 H: W' f: M# r% y - (setq x3 (* mv_sc x3) : C# {9 J: l3 \$ d
- y3 (* mv_sc y3) )
. m6 N2 p$ H9 D# A: v) ` - (command ' Q0 E+ M1 V: `' j( l
- "LIMITS" "0,0" (list x3 y3)0 c. }: {/ b5 ^7 b
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"+ ^. |+ V' }) T3 B; W3 |
- "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"% P3 F0 _0 t# @% x6 p6 O: H/ m7 ~
- "RECTANG" "990,990" "@40024.28571429,27720"
; x' e" T4 a8 z8 b - "ZOOM" "_a" ))
' G( N6 ?! W- d4 Y: F: @$ j" N - ;=====================================================================. n! p" ~/ p, P: b# a
- (Defun c:a2 ()
8 V% f, i9 B# ] - (setq mv_sc 100)
- G' ^& I t3 M2 L3 J4 ^. [1 W7 I - (setq x2 594)( R2 Y) \% n! V
- (setq y2 420)
+ e6 ^) b6 s- q- {9 }( V - (setq x2 (* mv_sc x2)
& c3 ^. q# M. L+ }- Z' K0 c - y2 (* mv_sc y2) )
6 B" K% ?6 y0 `( e - (command 4 P3 g& {* @ T, c8 O
- "LIMITS" "0,0" (list x2 y2)
7 U. }5 @5 K x5 w3 s& k1 c - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
. ]. M$ E/ |- [- W9 m - "RECTANG" "1000,1000" "@57400,40000"
2 @, p8 {5 K' J7 K) I - "RECTANG" "1400,1400" "@56600,39200"
) B5 c `! y( F8 f0 ]+ J5 M( A - "ZOOM" "_a" )); L1 Z2 n. z# n' r( o% _0 _1 A! Y
- ;=====================================================================9 F7 s- S7 \2 {3 R+ _+ O
- (Defun c:a1 ()
; {2 u# M6 H- U. d% g0 [% j& n - (setq mv_sc 100)5 m( {+ u$ `: }+ q+ B1 c! s3 H
- (setq x1 840), F1 z# `! A) y" \7 v9 D* ~; ]( C& O
- (setq y1 594)
$ c ^8 L% t6 g& T* @ ], Q - (setq x1 (* mv_sc x1)
* e7 }1 b4 I/ S$ ` - y1 (* mv_sc y1) )6 p. m( {" x- c4 v* {+ S
- (command
- {# A4 x& m2 z2 |* ] - "LIMITS" "0,0" (list x1 y1)+ f- b" V0 |/ }1 q* u) U6 u9 {+ K
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"5 m4 H2 M9 n7 C' c: @$ J, }8 P
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
0 ^5 v2 F3 G' k& w, w$ c - "RECTANG" "1980,1980" "@80048.57142857,55440": L# }8 ~2 W8 e
- "ZOOM" "_a" ))! t) h$ J8 ~9 k, B" c# g% O' r
- ;=====================================================================
x' A* @* u- ~ [4 a - (Defun c:a0 ()4 M' { ]6 [4 [ T1 ?
- (setq mv_sc 100)7 f9 w" x7 S/ u* N, h8 I, G
- (setq x0 1188)* o5 i1 W% Q2 x6 J! G
- (setq y0 840)# I$ Q2 C' H# U( N5 j# Z
- (setq x0 (* mv_sc x0)
6 v8 M9 a3 G* e$ H' `( B1 ^/ | - y0 (* mv_sc y0) )
' M S4 E2 U X' s4 N: l, Z - (command ' {/ J% `, I, w) d+ k. l9 ?
- "LIMITS" "0,0" (list x0 y0)+ o P5 S4 ]% a7 g
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C". E+ Y) L; p' p
- "RECTANG" "2000,2000" "@114800,80000", i) O5 l/ H7 P2 O4 e4 L
- "RECTANG" "2800,2800" "@113200,78400"
V6 p6 F8 \+ u - "ZOOM" "_a" ))9 m2 ~0 L& z4 C! D+ m" w
- 8 l, u2 m0 b. y$ _% U
- ;=====================================================================5 m( Q! d& _5 J8 s1 z
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================! O1 h* V' k: g
- ;=====================================================================! ?9 a7 K) \# z" u( `$ D0 M
/ m# q1 |7 z" Y: S/ ?, b( N- (Defun c:6a ()" l4 M: F) E) h9 [; q4 ]
- (setq mv_sc 100);Ti le ban ve* N( G7 E" h5 Z+ _& ~) z
- (setq x4 74.25)! n3 I& E6 w% g1 h" Z, }; w
- (setq y4 52.5)
+ s/ ?6 v H z5 w& P( i - (setq x4 (* mv_sc x4) 6 e* f; {3 ?, `+ Y5 {/ i7 C
- y4 (* mv_sc y4) )
( b8 D/ V2 `/ E" G: I, Y7 L" j) S - (command
* W( K* |3 C1 S - "LIMITS" "0,0" (list x4 y4)
# O) {* p# y- S8 ]3 `* x9 K - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
' c, F( z$ i J d% [" u: T* V - "RECTANG" "505,125" "@6800,5000"7 W$ Q6 }; b" B1 E5 {& E
- "RECTANG" "555,175" "@6700,4900"
( Y# o# R* K/ C+ A) U* ~' h) b - "ZOOM" "_a" ))
& {1 N5 ~, R2 ~ d. Q* Z - ;=====================================================================1 H; j' a4 ^' ~: o+ m
- (Defun c:5a ()' N2 M7 l& ?5 z
- (setq mv_sc 100);Ti le ban ve) @; h* o7 v, e Q
- (setq x4 148.5)$ z5 A5 V) [& f# A4 E9 R7 I
- (setq y4 105)' x$ Y0 ~* |, @" Y P( k! M) f3 s8 F
- (setq x4 (* mv_sc x4) 7 _7 U# e* A; m" w M
- y4 (* mv_sc y4) )9 v5 B# U) }+ H! k+ h! E
- (command 0 a8 t0 h& d- W
- "LIMITS" "0,0" (list x4 y4)0 M" z" B3 A) u6 P6 W
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
/ H. d+ k; K$ N" v5 F7 z - "RECTANG" "1000,250" "@13600,10000"
v& \2 v/ z* T, I, q, T! R - "RECTANG" "1100,350" "@13400,9800"/ k; [' X# k' t
- "ZOOM" "_a" ))7 i0 W8 K: B2 e* a$ i
- ;===================================================================== Z. h6 {9 n r' `: o
- (Defun c:4a ()
7 U* V8 w/ u+ {& J - (setq mv_sc 100);Ti le ban ve
$ w: X6 N9 l% p9 }4 g - (setq x4 297)$ g8 W+ Y( I! o7 j. o% G
- (setq y4 210)
" a# l6 ?" G: k% m - (setq x4 (* mv_sc x4)
) _, H7 [7 D* ?# M0 }! D* U: e - y4 (* mv_sc y4) )
1 ~# k" K& O. J M& C- l - (command
# u4 w% Z! T5 X& r1 f - "LIMITS" "0,0" (list x4 y4)* R m" ` U5 [- J2 h
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
7 ^/ h/ E1 L( H2 {$ F+ w - "RECTANG" "2000,500" "@27200,20000"
' m6 x3 ]$ h8 ` - "RECTANG" "2200,700" "@26800,19600"3 F9 ?& I H ?
- "ZOOM" "_a" )); @8 O/ Q( L: I
- ;=====================================================================$ I ], Z( K0 c0 E, n* e
- (Defun c:3a (): G5 C" ]' a: ]8 F
- (setq mv_sc 100)
* q$ x5 T+ L) V( p' V* [ - (setq x3 420.0428571429). m5 a- @3 L/ D$ w7 @' h
- (setq y3 297); F! l: T& l6 ~, \6 c; W
- (setq x3 (* mv_sc x3)
" f/ R# ]( H( G - y3 (* mv_sc y3) )- E' A( p0 L, r- m. V6 Z4 q, y
- (command % G* }% ?" ^" [8 g2 `
- "LIMITS" "0,0" (list x3 y3)
3 T3 R" Q) ` n% t7 E$ d2 R - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"9 A0 U1 y* ?, ], Z9 `5 F& j& W- i
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"$ ~' D+ x8 i j( H
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"" t" I. z( D$ \* i
- "ZOOM" "_a" ))- ?7 G, c8 p7 m4 k
- ;=====================================================================, J4 { G: \. b
- (Defun c:2a (): n' P U* k. C. O/ j
- (setq mv_sc 100)( @: j+ i' b1 q; }6 s
- (setq x2 594)# }6 D0 c9 b# [
- (setq y2 420), S$ b( O# ~ i1 n3 n% Y* k
- (setq x2 (* mv_sc x2)
2 u+ q4 @7 X$ S2 |' r1 G4 E! I - y2 (* mv_sc y2) )- ^; |3 K' e% m8 q( Y S4 Z
- (command
4 o2 m# o3 C; |. r( N" l; C - "LIMITS" "0,0" (list x2 y2)
* C/ Y% U, a# u - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
- X, k8 }1 \1 `* R1 ? - "RECTANG" "4000,1000" "@54400,40000"
" f0 ?( c& w3 c3 y9 l - "RECTANG" "4400,1400" "@53600,39200"" f! ?5 s* }0 ?2 ^
- "ZOOM" "_a" )) Q( w! ~9 D! r. ]7 l
- ;=====================================================================! }- M& A9 {* I0 h
- (Defun c:1a ()
! H2 I" y- E- k, o( n L - (setq mv_sc 100)
T8 [' E. }3 X& r: k+ a1 I - (setq x1 840.0857142857)5 V0 [: O% ~& ^, M
- (setq y1 594)7 e9 U' V( `9 X
- (setq x1 (* mv_sc x1)
) k& m# z: N( s1 x1 v$ D3 Z - y1 (* mv_sc y1) )% R/ c. A# m' \! ]1 @
- (command ! i* u( u# B# } H# o
- "LIMITS" "0,0" (list x1 y1)2 A7 G8 E! C# Z( W
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
1 p. |8 _) \7 v$ b( N5 W - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
# j4 X' _+ A8 I; R9 { - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"
5 z8 K& N( q( u- V" y2 R5 Y - "ZOOM" "_a" ))
( V6 P1 M; ^* y" A; E; v. u9 A - ;=====================================================================
/ G* A5 ~0 X5 l - (Defun c:0a ()
' g, t/ L* A4 D. |" h2 b - (setq mv_sc 100)# X% I. {2 d6 M& o8 C- A) m ^) u
- (setq x0 1188); p6 H D( M. X
- (setq y0 840)! ^1 `: Z- N: v. F9 y3 { v2 @
- (setq x0 (* mv_sc x0) 9 C. s% T; I V
- y0 (* mv_sc y0) )7 k' j; }% p) A' M+ E9 h: Q: A
- (command 7 W/ ~: ]9 G5 v2 l: b: p8 o$ O
- "LIMITS" "0,0" (list x0 y0)
3 m# O! X% |. d. c2 I: C - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"! p4 A& d, R# r: X0 V1 B9 H! t
- "RECTANG" "8000,2000" "@108800,80000"
2 R0 t/ j2 U5 z2 [ b8 C9 Y( A - "RECTANG" "8800,2800" "@107200,78400"2 w+ w. z5 E, @' B$ Y
- "ZOOM" "_a" ))2 v2 H8 }- ~' m
- 0 W' t) w- y, }/ K4 I! C
- ;=====================================================================2 ~) Z( B0 M+ R6 E s
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================: r7 S- \4 b$ O- z
- ;=====================================================================
9 Z" h) p( M' g2 r* p; R9 \ - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
1 Z) ~9 _, T9 n1 ?+ W - (command "undo" "be")4 p+ ]/ U1 ? z+ u" @
- (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
- Q2 a+ W" c0 d+ Z- g7 x - (setvar "CMDECHO" 0)
: Z2 W" b; Q" z' z3 z - (setq a (getpoint "\n chon diem chen :"))
9 L1 C, p! V7 z6 l" u1 ^ - (if (not TL) (setq TL 1.00))% T; J4 Y4 H. B1 q) c; B. `7 `
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))4 V2 |5 r1 y2 h3 B
- (if TL1 (setq TL TL1))
0 g4 E) ~0 t% C2 F - (setvar "osmode" 0)
/ ^2 Q d$ h( Q2 G' H- Q: F9 R - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))' Q, @' r) A. E5 s9 o
- (initget "0 1 2 3 4")
; h( K" |" l1 n9 j$ N) x - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))1 t m4 n z# k" a
- (if (= kho "0")
- R, t* L0 B" ?& \ - (progn4 x9 G3 u+ K* q& [ N& ?) d: h
- (setq b (polar a 0 (* TL 1189)))
* g7 L7 C! [( a; }! b - (setq c (polar b (/ pi 2) (* TL 841)))4 v& T' j. m7 I7 b2 T* y
- (setq d (polar a (/ pi 2) (* TL 841))), b3 M- ?6 [2 B( K T) P
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
- T/ O9 o9 Y. ~4 A' {" ~ - (setq f (polar e 0 (- (* TL 1189) (* TL 24))))+ B x$ e6 B4 V6 w, Z& u$ \
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))0 i7 z/ r9 X% }, y4 @( t& o/ C+ Z! r
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
6 W6 n" K) j+ v' x! @: H - (command "Pline" e f g h "c") " C& ?! s9 r9 }
- (command "change" "last" "" "properties" "layer" "0" "")! s `4 u* g- l$ i# U
- (setvar "cecolor" "4")
4 M @/ c4 J; z - (command "Pline" a b c d "c")
) q. J1 q. X7 [. q - (command "change" "last" "" "properties" "layer" "defpoints" ""))) % g. m% ~- t N# g
- (if (= kho "1")2 Z: d- Q+ h7 b6 O
- (progn
z* O7 \* D- u8 c, T5 x - (setq b (polar a 0 (* TL 841)))
% G4 Q' i2 O* x - (setq c (polar b (/ pi 2) (* TL 594))) r0 O- P& f9 B; w& e5 U
- (setq d (polar a (/ pi 2) (* TL 594)))
4 g& c" ]' y* c8 y# D4 v - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))5 O* X0 g8 I5 F$ A" } V" e z
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))8 E+ n2 M8 g4 l6 d/ \7 w- P& P& `
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))! C7 W8 o1 u! n8 S/ ~- |
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))' [. v4 V3 u' ^+ x: @: m
- (command "Pline" e f g h "c") ! o+ j4 v$ x6 g) c9 m( r
- (command "change" "last" "" "properties" "layer" "0" "")
/ p" W! {* M* S( o; O - (setvar "cecolor" "4")$ w. x" F- ^- Y5 b3 ~4 q
- (command "Pline" a b c d "c"); g8 [# h& I% t8 |% F2 S9 y
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
) d% ~$ u6 T2 k. \- T - (if (= kho "2")
5 p) I) q% s1 V( Y - (progn
( I* i% H' W/ T( y - (setq b (polar a 0 (* TL 594))); P0 [6 [% q7 m' j$ i( X5 y0 ~" `
- (setq c (polar b (/ pi 2) (* TL 420)))
* H3 z6 y3 D) L! E4 D9 C - (setq d (polar a (/ pi 2) (* TL 420)))
. K1 d# n" z8 Y( c. c - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))5 `. n+ q) q/ ]/ M
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))3 q* h5 B8 ~! l
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))7 w* {6 `& ^0 e
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
; }1 }. u- z b - (command "Pline" e f g h "c") - n( {: q! `. A
- (command "change" "last" "" "properties" "layer" "0" "")
- E$ G4 t ?( v2 ^- m3 f7 r2 ` - (setvar "cecolor" "4"): `6 \# s: J A* q
- (command "Pline" a b c d "c")2 N1 |2 n- M0 L2 n
- (command "change" "last" "" "properties" "layer" "defpoints" ""))), h% Y( L. c4 {& l e
- (if (= kho "3")
2 d G4 a9 r2 b/ k5 \ - (progn/ c. f7 {2 N: S) |5 c' e
- (setq b (polar a 0 (* tl 420)))
! x# `" G, J. Q& r4 K/ k7 r. t3 y, }$ p - (setq c (polar b (/ pi 2) (* TL 297)))
5 _# D. Z* T0 X3 k, \7 ~; R - (setq d (polar a (/ pi 2) (* TL 297)))( q7 A. E. g6 Q& K
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))9 D& @4 n; G7 t R3 k+ j' ^
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))
+ i5 H! d5 n$ Y/ Z! `* i - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))+ B% ^5 W* W/ l4 O
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))& A2 X$ f3 O( Z4 _" I
- (command "Pline" e f g h "c")9 v+ o' L L8 A3 o. L7 C2 v
- (command "change" "last" "" "properties" "layer" "0" "")
( }& M1 P l$ J- Y0 s: x0 Z3 Y - (setvar "cecolor" "4")
7 [/ Y' Y. x7 N8 v0 {9 H - (command "Pline" a b c d "c")" s4 a2 w& q+ k5 y. C
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
2 o. c8 i3 i! l9 M& M6 { - (if (= kho "4")
9 r$ ?! W$ ]8 ]7 ^* r1 J - (progn' ^4 O$ `$ \; \4 f0 T
- (setq b (polar a 0 (* TL 297)))$ V) a( F7 e) A& F8 A: R( d: p
- (setq c (polar b (/ pi 2) (* TL 210)))
& j0 T: y: c8 m! D, l - (setq d (polar a (/ pi 2) (* TL 210)))+ r9 ~) p; | k# J( j3 G
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
+ h; {, h9 Z& H - (setq f (polar e 0 (- (* TL 297) (* TL 18))))7 L& n, a* `, o" h) x- d
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))* y' {' X& k$ o9 K; G% w
- (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
( g; s5 ~$ W5 U9 X' N. U - (command "Pline" e f g h "c") 1 [: x8 X2 w0 g3 D
- (command "change" "last" "" "properties" "layer" "0" "")" l3 \+ Q" ]* ^% I9 k7 _
- (setvar "cecolor" "4")
! m% s. g) v. u: ~1 w) `+ s6 n - (command "Pline" a b c d "c")4 y2 c& y+ B) R$ J' w8 G
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
' i% h' @0 _% } - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)3 z2 n* ]9 x* N: c5 k
- (command "undo" "e")( c( [; z4 n: Z, C) t8 u- A
- (princ))
1 H* Q1 |# i f - ;=====================================================================0 i! U" }. W: y$ D
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================4 n' _9 D0 C: Z1 k
- ;=====================================================================
9 Z" f% i* c( T: m/ H - 2 V1 t6 K; U6 u0 |& N
- ;=====================================================================
0 j3 s% J- W2 M6 U9 S/ I6 ?9 L - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================
) v7 B% O6 f$ u7 a - ;=====================================================================
( F' a2 A0 N3 x7 ~( K, f - ; G& [3 ^1 f8 f+ J- ], y" |
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" "": b+ W* D0 O& t( O' A. }
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""+ p' {! e" r( w
- "M" "MANH" "C" "9" "" "Lw" "0.1" ""1 ^- o6 B* P0 p' U5 t3 a
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""6 }2 l" X; t9 Y5 X7 {
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""
. S Y' G, d/ ?( G - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
6 ~" s' [; r- Y) S) L, `2 X) }# r' y - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""8 r' M7 V" G3 N. i: O
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
' n9 B4 M( C" c3 g - "M" "COT" "C" "1" "" "Lw" "0.3" ""3 `4 }: H' F' | e; ?0 G9 Z' p& S. _
- "M" "Defpoints" "C" "7" ""
' `" ] W! |' v' E6 N, J, e9 ` - "M" "0" "C" "3" "" "Lw" "0.12" ""
+ s4 `; w4 g1 `( {: L9 } I+ n - "M" "CUA" "C" "6" "" "Lw" "0.12" ""1 @* ?% o0 e& s4 _) |$ R
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""+ L1 ? P' j5 v/ e
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
2 ]* }7 x/ w- A& q0 { - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
; M: u3 S/ v. V - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
8 w% B" L$ [" N8 V% d+ g$ y - "M" "MANH" "C" "9" "" "Lw" "0.12" ""4 F+ i; @' S1 o( l1 V3 L0 p
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
" v9 K+ \9 p+ o* h/ M* }6 Q3 F0 x; H - "M" "DIM" "C" "1" "" "Lw" "0.2" ""
7 [. v- W0 ^- F3 f/ P, U - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
( i0 b3 y3 k5 C7 Y) {( L - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""
- g2 q( _: U5 V' V - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""9 j, P+ _# z- n7 v( N
- "M" "COT" "C" "1" "" "Lw" "0.4" "" Y- r: K# x0 }$ M" _4 B
- "M" "Defpoints" "C" "7" ""- }* Z [3 O& Q5 Z
- "M" "0" "C" "3" "" "Lw" "0.2" ""
2 K$ ~$ \. E' ]! ]5 k% K- V - "M" "CUA" "C" "6" "" "Lw" "0.12" "", ~- D/ w, I- q) f% r
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
9 {5 J8 \/ U* A8 D0 A - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
* y) i) z2 A$ r5 ]/ @ - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""& d& D3 g5 \: i0 q7 A! {. j5 g1 f
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
' g' `# {" r: }& x. \8 F9 N - "M" "MANH" "C" "9" "" "Lw" "0.2" "" X, ^- Y( d F2 _! b/ l! P7 Z- t
- "M" "TEXT" "C" "7" "" "Lw" "0.2" "" }- M( I% q P- D) L! J/ E# _% E3 `/ Q) S4 L
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""( W1 q$ ]4 a: W$ V' a
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""8 o' h6 C9 A, ~ R6 k. R
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
' K. h2 I. _1 y - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""* _9 `5 Z4 D2 v. T# f
- "M" "COT" "C" "1" "" "Lw" "0.6" ""8 A$ Y9 w2 y2 \% T w! r1 e. U
- "M" "Defpoints" "C" "7" ""
" N% ^! I8 Z! Y4 h - "M" "0" "C" "3" "" "Lw" "0.25" ""
5 N. k, h1 R' K( q - "M" "CUA" "C" "6" "" "Lw" "0.25" ""
( n7 H! ]; ?6 X0 Y- r" ?' i5 { - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""# U: W; h; x! e @
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))$ X# f1 @0 C L
- 9 p1 I* w, B: `
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
" _9 K* ~ t+ X - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""$ S7 \# m' b9 k
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""3 m$ d/ k7 ~9 l; k; r2 ^
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
6 N0 {; j! g& j! p6 }: q2 w. K' z - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
) g- q& x# W" k9 Q( j" x2 B' n - "M" "THAY" "C" "7" "" "Lw" "0.4" """ y3 V9 [5 S' X% L% Z+ \
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" "", n7 c7 o5 [% M S
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""& t E' S- P+ ?: Y
- "M" "COT" "C" "1" "" "Lw" "0.7" ""5 N; z6 x. |5 f( p
- "M" "Defpoints" "C" "7" ""
0 M ? }5 L. `$ {! {* a# v - "M" "0" "C" "3" "" "Lw" "0.25" ""
, H- V1 G, D# z- ?) \5 F - "M" "CUA" "C" "6" "" "Lw" "0.35" ""( m; M. a- H/ ?
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" "": M) a8 c: E, b2 D! Y. J/ F
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
- O4 a/ h: v! ^( d. H - 9 H, H8 G `' S: x
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
$ i, Q# f7 Y5 \1 I( M - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""' A ]2 A3 f6 Q, s4 q3 T" O
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
, v8 d# z5 M/ A+ ? - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""' f% A/ N# S6 v
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""
6 W2 E' j# ~0 z t" I7 s* n& m7 h - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
5 n8 O1 `7 n F" C" |+ @8 W4 `3 g - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
( @! V% {8 I; Z4 |* A# |$ Q/ t9 j - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""7 y3 t7 K t0 b0 z* b
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
- C* n6 I" M( F& [$ j - "M" "Defpoints" "C" "7" "". R/ P. k' Y% n9 o# q" D* V
- "M" "0" "C" "3" "" "Lw" "0.35" ""* Q: A6 ^- P: n3 n
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
2 m; u& k% @( E5 U$ Z4 L) E0 f- U4 E - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""4 L/ q! O8 V( {* @: }5 n" a, c
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" "")). Z S$ ?0 B4 W7 F F! i
4 _: y" e8 k! e. H) d* \) g- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
& u3 ~- d/ i) H% r& H7 | - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" """ ~, [+ s1 r$ E r9 G
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""8 y# g! M" P7 a- P, s
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
( Q7 ?) l9 j3 f# T+ T0 F - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
2 A* K* J' ^4 {+ ]/ \ - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
2 ^ F8 ~7 ~% {9 \! J" ? - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""; Q) [9 |$ w( O7 B1 b
- "M" "HATCH" "C" "5" "" "Lw" "0.25" "": O' ^- _9 w& ^- Y3 ?
- "M" "COT" "C" "1" "" "Lw" "0.85" ""
3 o3 A9 ~9 j3 K- B+ j( l - "M" "Defpoints" "C" "7" ""
* [3 A! h* B3 L- T8 ~1 v - "M" "0" "C" "3" "" "Lw" "0.35" ""& J; V' P0 e' z, U
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""4 t8 D, M; F! b6 r
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
" _9 Z+ G& E# [9 W( F+ L, P" h X# B - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
- t2 q; P- P8 @' M( A - 6 g: B9 u* g! N' c
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""7 ~1 E( n+ H3 u& ?# i/ g" a: e
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" "") a& u! K: I t4 r, }
- "M" "MANH" "C" "9" "" "Lw" "0.35" """ Q$ s; C! `% o" c
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
. ~4 q; {4 B$ l5 v+ i" ~" u - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
P& K. m, S5 `) I$ h - "M" "THAY" "C" "7" "" "Lw" "0.5" ""
; \, `, @" R c. x8 x, V1 I - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""# Q* r9 P" u5 }4 I6 a; C
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""& e' h l" y1 V
- "M" "COT" "C" "1" "" "Lw" "0.1" ""0 ?0 s1 P a8 E! p' g i. v
- "M" "Defpoints" "C" "7" ""
8 b) v! |4 W# c- q* Q8 T5 H - "M" "0" "C" "3" "" "Lw" "0.5" ""
3 t! f) r4 R4 B6 o! |" s - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
0 s- s0 E- a1 ?9 ?! k - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""$ V; ]# \5 ?' w# n) f- F
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
5 p( `# C B7 \# T( Z. ^* p - (DEFUN C:O () (COMMAND "OFFSET"))+ D, v6 B' Q3 E$ h
- (defun c:s1 () (command "surftab1"))+ s$ g" T5 ~2 J* ]
- (defun c:s2 () (command "surftab2"))$ x$ @# `8 z9 b" E% ^
- (defun c:ep () (command "explode"))
% p5 I4 Q' `& |1 d - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
( V' p; T2 V% i: w$ k - (DEFUN C:QV () (COMMAND "QSAVE"))7 R! N4 h* y9 A
- (DEFUN C:S () (COMMAND "STRETCH" "C"))
! p& Z5 ~$ F: J - ' I' R4 l( b3 h2 w' ]5 g5 ^- O
- ;************************** CAT DIM **************************, X% w1 m1 r- ]$ w
9 K- ~5 G. r# C# E- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
; r5 J2 [& k% A) D1 {5 [' s3 J - PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
9 n+ T N) ^. n: ^4 j% z - (SETQ CMD (GETVAR "CMDECHO"))
: H- a7 x1 f9 D% i+ [* r$ S+ S% m- j - (SETQ OSM (GETVAR "OSMODE"))3 c$ e6 A9 a3 Z x- @( W1 `3 a
- (SETQ OLDERR *error*1 a2 u2 A8 `% a" p7 f3 c
- *error* myerror)8 h& e* j' l# v e4 a' |" y7 Z- Q
- (PRINC "Please select dimension object!")9 j7 T7 }2 V8 w7 H1 k
- (SETQ SS (SSGET))
4 X3 W' o% J* u. Y' f5 p - (SETVAR "CMDECHO" 0)
( M6 j4 D( |$ h6 W% u) P" t - (SETQ PT (GETPOINT "Point to trim or extend:"))# R: w, u' {0 o6 u8 J9 \
- (SETQ PT (TRANS PT 1 0))
" b' t l" B5 b/ ~3 W: Y7 L - (COMMAND "UCS" "W")% q' p2 `' L) P5 N y
- (SETQ LTH (SSLENGTH SS))
/ i* K; V& U1 Z D G; _# p - (SETQ DEM 0)
o# x; L% Q0 v: E. ] - (WHILE (< DEM LTH), P! V$ z. c: Q6 v* l
- (PROGN
- j" b6 `0 g1 w5 J4 z - (SETQ DS (ENTGET (SSNAME SS DEM)))
8 Z2 R* S2 m- G1 s - (SETQ KDL (CDR (ASSOC 0 DS)))
6 N% _" J1 {; v1 e - (IF (= "DIMENSION" KDL)
" R2 @; G9 S' [2 ^" Q+ F& ?+ r - (PROGN
& V" [+ i% D: w4 z( J7 `- I - (SETQ PT10 (CDR (ASSOC 10 DS)))
+ Y( z( Z/ u5 N) o# r3 | - (SETQ PT11 (CDR (ASSOC 11 DS)))
p3 _. y/ L, [6 c" b, A - (SETQ PT13 (CDR (ASSOC 13 DS)))4 Y! U/ K L' W2 y- P+ I
- (SETQ PT14 (CDR (ASSOC 14 DS)))7 _& {4 [3 p4 d5 O, h' o; z
- (SETQ N70 (CDR (ASSOC 70 DS)))$ o+ Q0 ?" I- Z, {
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161)) {7 j. W- {9 p% M* Y
- (PROGN( W# G: U0 |( Q% P4 s7 R/ l
- (SETQ GOCY (ANGLE PT10 PT14)); O+ t, H/ l6 ?3 z
- (SETQ GOCX (+ GOCY (/ PI 2)))
" n6 I3 J x* ~8 i% x# k9 x - )
! P T4 ^# t9 d, i1 { - )& t H8 S6 c) o( l; u5 L m2 {. p1 k
- (SETVAR "OSMODE" 0)
6 g8 F) P- Y1 r8 J& b# S - (SETQ PTI (POLAR PT GOCX 2)). T3 V# n; F1 I; Y
- (SETQ PT13I (POLAR PT13 GOCY 2))
: O5 V: ?9 X/ N1 q: {$ H2 V& W - (SETQ PT14I (POLAR PT14 GOCY 2))
* q7 u3 a. j, _* S2 u; I - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
" u0 |; t6 b1 z+ S5 v# V% D4 i - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL)) `/ `! [6 F- f' w( p9 s
- (SETQ O13 (ASSOC 13 DS))/ D6 Z, u6 i5 a
- (SETQ O14 (ASSOC 14 DS))
; [( L9 K# E& W1 `8 U" N# r - (SETQ N13 (CONS 13 PT13N))
, m% z: T0 e, d% ?, O - (SETQ N14 (CONS 14 PT14N))
0 F! N1 N( H4 q2 o7 ^/ l% n' o8 O/ [' Y$ v - (SETQ DS (SUBST N13 O13 DS))1 ^. d# h# k0 {& f% ?
- (SETQ DS (SUBST N14 O14 DS))7 E5 k2 i: D+ Q6 i7 Y
- (ENTMOD DS)7 {3 D) t( j' G6 K
- )3 m' w P4 Q3 j0 v
- )
7 ]4 B3 K" S" L( N, K - (SETQ DEM (+ DEM 1))
- U2 K+ q" a% f- B7 Q - )
5 W" I; k# B, L9 c0 K- v/ z3 ], b - )3 P2 U& u1 h: k3 I
- (COMMAND "UCS" "P")7 R, T( U9 a+ m, k) T3 n! v8 \' q
- (SETVAR "CMDECHO" CMD)
' Q# |! b" d- W - (SETVAR "OSMODE" OSM): i: y7 c# i* Z3 h( w
- (setq *error* OLDERR) ; Restore old *error* handler3 q& T3 U6 A/ h4 z. X3 t1 j+ O
- (PRINC)! W: K$ {$ G& e3 u7 M; Y
- )1 z2 o+ k9 s) K2 b
; j' \( f2 f3 t2 r- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI e f" i' s) G! _- v3 K
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR): B2 ]8 l4 N/ H! p
- (SETQ CMD (GETVAR "CMDECHO"))
( l3 B/ I) O5 q3 _* p+ n - (SETQ OSM (GETVAR "OSMODE"))
2 m: ~9 e5 c! r L6 P, w2 e8 _7 R# X - (SETQ OLDERR *error*
7 T/ {0 B- }$ Y% e" Y, | - *error* myerror) C \4 @8 T B
- (PRINC "Please select dimension object!")# N% |, \% ^9 }
- (SETQ SS (SSGET))( Q" e& v* R: D O1 l j- k
- (SETVAR "CMDECHO" 0)
, c2 F. d9 P1 t/ \4 \ H - (SETQ PT (GETPOINT "Point to trim or extend:"))
) Q- k* ~+ Q0 b( R! b - (SETQ PT (TRANS PT 1 0))! v0 q1 |6 f6 }. i% w0 Q
- (COMMAND "UCS" "W")$ P8 p6 k! Z. u+ J1 h
- (SETQ LTH (SSLENGTH SS))2 e( d9 N- A5 r$ X% ]
- (SETQ DEM 0)7 L; I; x/ B) W5 ], p& ]0 z; r
- (WHILE (< DEM LTH)
& ]% D h1 h6 Z! E - (PROGN/ _- }; a+ q$ |/ C3 [
- (SETQ DS (ENTGET (SSNAME SS DEM)))- r, |5 |5 _/ U, N
- (SETQ KDL (CDR (ASSOC 0 DS)))5 c2 u1 J$ Y) D) ?
- (IF (= "DIMENSION" KDL)
@6 Z" k3 p$ m" X; G - (PROGN& Z% W) R: k- f& e& N, i
- (SETQ PT13 (CDR (ASSOC 13 DS)))% y- F1 g7 R" b: Q6 h3 j6 {3 t
- (SETQ PT14 (CDR (ASSOC 14 DS)))# C9 u6 }& W* ~& o4 r
- (SETQ PT10 (CDR (ASSOC 10 DS)))0 c& x F+ ?, l2 N2 j4 G8 [' O# y
- (SETQ PT11 (CDR (ASSOC 11 DS))). C1 d/ ]7 d% H* u* H! ~8 U# ^
- (SETQ N70 (CDR (ASSOC 70 DS)))
5 O$ e5 h! ^8 L1 A* y+ E1 u - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))! `: U" \+ |# S
- (PROGN* E+ ?, g' S. q6 `1 w5 o
- (SETQ GOCY (ANGLE PT10 PT14))
8 j. W! c' @, f5 K/ i - (SETQ GOCX (+ GOCY (/ PI 2)))" |: I" M+ A4 m5 P% e/ y/ i+ p3 i
- )$ B9 X x6 q8 T" y+ @) v( [
- )
7 M K5 l# v+ [6 z1 Z; B - (SETVAR "OSMODE" 0)
8 j+ s6 J$ R3 M: V+ B$ e( R# k - (SETQ PTI (POLAR PT GOCX 2))5 u4 m( y- o" Z" h1 t% V, i. x
- (SETQ PT10I (POLAR PT10 GOCY 2))& Y+ Z/ ^/ x" d% ^) W6 A
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
; ^" N0 ~" g& K - (SETQ KC (DISTANCE PT10 PT10N))
* U& f) [/ h, G% ?5 [* M4 g - (SETQ O10 (ASSOC 10 DS))
9 K6 L& l5 _" @# B: J: Y - (SETQ N10 (CONS 10 PT10N))
, p; W7 h9 `' {1 [# r6 I4 P - (SETQ DS (SUBST N10 O10 DS))
. R* K2 d$ |' p - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))& B, F% C; {7 a: Q
- (SETQ O11 (ASSOC 11 DS))+ z, x' J4 o; g
- (SETQ N11 (CONS 11 PT11N)), l! s( \1 i* C, ]
- (SETQ DS (SUBST N11 O11 DS))6 d9 X2 d! O1 d" y( {7 a
- (ENTMOD DS)
0 u; [6 E0 b# R8 Z - )
2 [& |: F6 i) U1 Y+ R" U( W - )
" f, e( b/ J0 g# t0 @ - (SETQ DEM (+ DEM 1))
' B( O- D: t- c; E4 z - )' T1 U, Q7 l N
- )9 l1 k) U# E* {6 P- h
- (COMMAND "UCS" "P")8 G; p- O0 B1 o
- (SETVAR "CMDECHO" CMD); q1 n! ]+ Q$ ~5 |% [
- (SETVAR "OSMODE" OSM)
; _/ S' x7 \) {) G. E2 e - (setq *error* OLDERR)
2 e9 R: z; _) V2 M$ t3 s - (PRINC)/ \, X/ v9 v* C1 x
- )- S3 d# ?1 H0 {% P
- ! m$ r3 t4 e, o5 i" g5 G
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
! N1 I$ c+ H; t. a - , Q5 t/ ~0 e6 |7 d ~" ?. _) l
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")4 ]4 Q( v" b. h9 q
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")4 C# h' G; `2 y$ y0 w9 E9 t4 G6 X
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt' n3 u1 [* b7 ~$ s2 w
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt))). Q T. k! A4 C4 n
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
( O. U5 g9 d. c1 w6 Z; {6 P6 q- Q* G - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
: A8 Y) B6 T5 P- R/ H6 Y9 u - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
6 z3 @: g% i# U$ v: v - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))& N5 Z0 J$ z. Y1 [+ ]
6 O. X/ \. j4 c$ E$ U# r7 }- ;;; ================ CHEN COT (TUU) =================
6 h W. y. P& w$ R - 6 W4 K' ^/ S4 ~$ b) l. Q9 p
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
/ Q& Z3 X- \! p8 C5 f - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
% U z# U' r8 F4 X) m/ k: P; } - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt2 o5 h. C, K" _. ~8 ^4 V
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))* V) l; f- T& B1 \& C
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")
; _' X2 _: T8 y ], V - (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt))) b' D* j. D$ g. ^) ]
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))! ]6 L, S1 t" k1 e' \
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))& o5 p1 V# @. x$ [
4 R6 q0 [) N8 h5 T8 Y- ;;; ================ CHEN KY HIEU THEP (TP) =================& ^# ]$ a! P, L! V
- 9 ?8 o8 _5 Y& z* @; b. a
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
8 C+ B# ?) Z# O# Q( M - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")% G) i3 S8 F. [# l- O$ b
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt) ]' y, V, |! X* L
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))) @8 i, P7 Z2 d% A/ j, p
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
+ e; G/ I! Z8 f. I4 Q - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
2 v6 A" A' V3 V6 G - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
! t1 z {9 O% E - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))* b @5 j; V( z
( \. m4 I9 t- Y) l* N+ V- x- ;=========================== TAM TUONG (TAM) =================================
o0 D0 r; X& |, p0 [: Q' J. h+ h
9 m, k' y p( M# U e- (defun c:tam(/ data_m)9 G/ @" O' U! ?- \# ?
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0)). u* r. c# Z' H W! ^. F
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
& a$ a/ {& s" {9 z6 { - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)5 F3 ]1 V! a4 d; C8 }0 [( z
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset" l4 H g- D7 b; G
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr4 p F/ d1 k. R; z+ }+ _% a2 @
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)7 d# u/ ~, Q. U7 e6 Q/ U
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
) x! M8 c1 v' a/ ] - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
$ i8 C, h6 G* U0 ^1 x) u1 p - distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
! [: ]' J5 g7 B( u% N% Z( ]$ | - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))" c4 ?9 V+ H2 S+ p9 Z& l
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (< }$ u9 V# V/ E8 I* v0 W
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)0 P% T% j( R9 f* i. d, ^
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
/ S2 \" N5 P, w! c6 Q - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p47 Y7 A6 B8 \( ~- ^) f$ v! T3 o# E
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
* g3 J. v1 u9 u( c; Q# d - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget# T! b1 |: ^+ c) H
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ)), K7 P+ N2 b3 N# ^
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))$ v3 ]: U z2 P6 p. u$ w: o
* ~! R, S1 ~' B7 r- ;============ GHI CHU PHI (T1) ================
, n w. i# x$ x& U - ' n' k& m5 d3 N/ V
- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
1 P3 C3 }" K7 l' z - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
( t8 w W. s/ j$ [4 x - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)# v) v8 m6 I- w6 Q
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
3 g8 l1 h' W v3 G) e - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))& u3 @, U* J! p
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
! t, K% R9 y5 [ - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
- i4 R' P2 F- ]" W& a5 @0 A - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )( |% g5 Y9 ~% c2 N' K' c+ j
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
% `! B4 }( d5 _2 F - (command "ddedit" pause))% I, v7 c0 T9 ]0 B% |& V
- , h$ h9 G# f! B; F) b1 a; j$ b
- ;;; ========================== Join (J) =================* G) z3 H" I2 b* |3 R4 O
- 2 d: Z( G0 {& f; c/ ]1 |, g( u; u
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))' E& k) K. S- m5 M* Q
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? ")); F F2 m1 N0 t
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
5 `) f4 F: M2 y3 b- S - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")6 @5 l+ L" [7 k0 P% N- q
- (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))$ x7 x0 O+ Y& S
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))+ U" b. j: J" @' u0 Y
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
( [' `4 g& M; n5 t8 |9 A - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
; ?. E7 c7 M, ]# J/ A0 X - (setq *error* m:err m:err nil)(princ))
' U7 T) f% ]( I) o - 9 C( G! D- I- Y( I; T
- ;=====================================================================# Q+ n: V7 |! D5 E1 W9 S- u, e3 {
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.! W1 K) Y3 y9 M5 W! O6 y
- ;=====================================================================
4 f! O% l6 G6 a s. f* O/ e- b+ Y1 L - . N6 i: J; f6 v% N" s; o
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)- M3 Y g( m$ c% }# Z
- (setq old (getvar "OSMODE"))
/ d5 R2 V7 Y% } - , g5 A; |5 _4 b1 S: o' Q3 k3 Y
- (setq p1 (getpoint "\nStart point:"))7 l! E4 R) x7 ]: r
- (setq p2 (getpoint p1 "\nEnd point:"))
2 R. Q2 V9 h# J: [- ]6 t, } - (setq side (getpoint p2 "\nOpen side"))
0 D7 p+ W( }0 l6 X: H - $ Z1 { N4 u0 c3 z* U
- (setq dis (distance p1 p2))
0 Z9 F9 `6 F# O' H - (setq ang (angle p1 p2))
) p% l8 s D2 t% r6 y - (if (< ang (angle p1 side))
% m5 p5 o# G4 V' I7 R - (setq angside (/ pi 2) )
+ f' Y- S2 p9 g( y$ A - (setq angside (- (/ pi 2)))
# s1 v$ f% d( D0 y - )
( C& A, ~# K, } - (if (>= (- (angle p1 side) ang) pi)
6 P0 Q; k" d$ @ - (setq angside (- (/ pi 2)))$ V I" ^1 y& B/ E7 s9 j# y' H
- )
* N7 v4 o# @5 J: }& W# p. g - (if (>= (- ANG (angle p1 side) ) pi)" w: x1 O. y* Q$ l
- (setq angside (/ pi 2))
. @$ m. g* ~7 e+ @* R: B% b' g - )9 ]. i$ n: X. W# Z( U1 n9 ~
7 a( W/ q: u# q- (setq p3 (polar p2 (+ ang angside) dis) )
' c9 V- J" c; J$ N w" i9 k - (setq p4 (polar p1 (+ ang angside) dis) )+ p' _! P- x1 @9 n/ X
- (setq wid (/ dis 15))8 n4 _/ t) }7 k7 d2 t e
* K A+ O! }2 k. {- (setvar "OSMODE" 0)7 d3 _6 v, M: F( W, D- \3 Q7 I& c) H7 |
2 [8 t9 B' N" r: V- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 5 n9 x, A) i2 N& U- b0 Y
- (polar p2 (+ ang pi) wid) ' _4 a- K* {8 m+ y0 i% D: W ] x
- (polar p3 (+ ang pi) wid)
) H* g/ f9 Q) y' ? - "")
# l4 K/ V; V3 j - 1 e4 h* v! I: X0 r5 k" a/ K) _- f/ T
- (setvar "OSMODE" old)7 p+ n. t5 f/ U2 H: D
- (princ)
6 ]; ?5 |( K9 }. Z7 R: r - )+ u9 P0 `/ i1 ^, \- X) ]3 f
4 ^/ o5 Y" ]; D, ?' G' k$ Z- ;=====================================================================
$ o7 p6 H% U7 e" I$ P - g: m/ C0 C( \, W- C$ [2 t$ k2 y/ w
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
" }: h* O, {; b, i) l6 B - (defun cua1 (pt1 pt2)
( l2 W' i. }* m( [/ r7 i - (setq p1 pt1. _- l7 h3 H/ v
- p2 pt2)
8 ?0 g* l; A/ _4 A+ a9 g8 j5 L
% t0 x4 D9 v* w* Q5 L9 M5 {9 |: b- (setq ang (angle p1 p2))5 I+ Y' E% i, d8 E" W
- (if (< ang (angle p1 side))2 g! c, L9 }1 W" b
- (setq angside (/ pi 2) )
4 Y( I# C( J/ g6 {$ F - (setq angside (- (/ pi 2)))
+ o+ S+ {1 P6 E0 F+ w& j* v - )) ~, g: a0 Z l6 X) a" Q
- (if (>= (- (angle p1 side) ang) pi)
& }4 a8 l& {8 B - (setq angside (- (/ pi 2)))1 o3 F3 O# ~3 M' X- `
- )5 N( Z/ k( G: h, m
- (if (>= (- ANG (angle p1 side) ) pi)
! i: F6 j2 |& ]* d - (setq angside (/ pi 2)) z* C0 Y+ J& e# U- Y
- )
) s! D6 w5 g4 z: @6 q1 z: ^
" n6 e( b) C/ w. |* R3 j# G8 e& v- (setq p3 (polar p2 (+ ang angside) dis) )
1 U% Q$ n4 i7 }" T/ j- W8 Z4 C - (setq p4 (polar p1 (+ ang angside) dis) )5 K% s7 u: M# F3 K. H( _
- (setq wid (/ dis 15)) Q- u0 s! C: d7 Z8 `- A
+ k: Z" y: S* i2 U/ o* e8 _8 I- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 / d3 l! S/ Y: {- w$ B+ a' R' {) E
- (polar p2 (+ ang pi) wid) & q! P: t$ q9 ?4 e1 W2 H
- (polar p3 (+ ang pi) wid) , {2 Z. p$ o+ H6 b! _: Z4 N9 ?
- "")
* a( ?1 m$ k9 A5 G" j# ~# o; H2 ] - )/ a0 X c, @4 L5 a4 b1 O7 L; ^" l' f
- ;=====================================================================
+ X8 Z* X7 u. W4 q- ^ - (setq old (getvar "OSMODE")) * }" P; f" r1 ^: h5 s4 l+ T. r
' n) P, b, \" m" k/ y1 v& s' w5 l- (setq p1 (getpoint "\nStart point:"))) a7 I; u, y0 ^3 R8 v! H+ @
- (setq p2 (getpoint p1 "\nEnd point:"))0 \- i+ x7 `: C, z
- (setq side (getpoint p2 "\nOpen side"))$ ^9 K: w. s* H3 l
- ! z8 L/ K; j5 ], o1 ]
- (setq dis (distance p1 p2))
: c, e6 z$ p$ d* L' A" q! J - (setq dis (/ dis 2))
5 j& b' C5 X, v8 v7 @
6 j& x5 i% q$ }- (setvar "OSMODE" 0)5 `4 B z! n4 X6 r2 x2 a
u# b; s. b; a$ j: F- (setq p1 (polar p1 (angle p1 p2) dis))
6 L9 C9 E$ t" A9 m: A' V$ {- }2 N. J6 V - (cua1 p1 p2) 5 y7 g5 h4 A5 g5 r7 e+ E
- ; j" | _- Z" C3 z+ ~% A0 ^
- (setq ang (+ ang pi))
6 T0 N+ b/ U+ p+ F s' D, |; l8 O2 `; j - (setq p2 (polar p1 ang dis))
6 n6 \ q% F! V. L1 C* X - ; (setq side (polar p1 () dis))
& m( L. w% Z2 ?4 X) V - (cua1 p1 p2)
$ Q% c/ k+ R- e# u# ` - - ^4 f" T6 u/ Q' }' F6 q! q
- (setvar "OSMODE" old); a1 S$ h' G8 J- w5 G- Y
- (princ)
% m1 N+ y4 \- V) j; g* J# T0 v2 r - )
1 q- x+ G1 W. e - * s, a% Y( O) Z
- ;=====================================================================
1 {- m4 Q; H2 U% G5 p - ;"Glue" text strings. All adopt first's properties.
7 E( X9 j# @3 Z) @ - ; Author:
! V" _( b& f8 l2 ~4 d - ; Henry C. Francis, b7 F- A' @# N. S5 K& e. |4 ?
- ; 425 N. Ashe St.4 m( N# Y! P' O1 j* g
- ; Southern Pines, NC 28387
3 c W j0 x) ], V7 U7 G - ; http://www.pinehurst.net/~pfrancis
' I( c# x6 C, I8 u" u# {- P5 f1 L - ; e-mail hfrancis@pinehurst.net
- C. v1 h a* Z8 ^( J$ N. i - ; All rights reserved.
# B3 H' M" [3 b2 _ - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)1 D- K/ P- N% T% j
- (while
0 g, W" a6 t5 y - (not# v9 B! G8 G4 t, G5 x& H
- (and
+ Z! n* m- ~; M* A1 m0 g - (setq ename1 (car(entsel "\nSelect first text string to join: ")))
2 l0 M. S2 J/ B, t4 d4 b - (setq ent1 (entget ename1))
6 l B6 u* n7 k4 |# h1 R - (eq(cdr(assoc 0 ent1))"TEXT")
0 `& a) F& \% ^0 t* `, {. t8 s* } - );and% S3 `4 J) _0 G' J' ~
- );not" m, V9 S$ ^* I. E3 _
- );while# B/ @/ |: n. T) P# E
- (setq old1 (cdr(assoc 1 ent1)))
) ]3 `: T& o! O! z L - (while, T# @* A4 d+ L8 `4 b/ W% N; p( O H
- (not
- z* ~0 r7 u* `: L: u z7 O - (and! P5 Q% \' V% g! u( u0 r4 D
- (setq ename2 (car(entsel "\nSelect second text string to join: ")))/ J/ W7 \+ H8 z5 R
- (setq ent2 (entget ename2))
$ e, L2 X6 v/ l! _/ v4 T: L - (eq(cdr(assoc 0 ent2))"TEXT")3 L/ d& s0 L5 r6 k3 g
- (not(eq ename1 ename2))1 }0 @- C0 a" t+ Q8 W F
- );and$ E1 p! Z8 z6 t: ~
- );not
6 I' Q$ W8 z; \( b' x - );while) v9 p0 R1 J$ i* E: U% v1 a. j
- (setq old2 (cdr(assoc 1 ent2)))
3 u/ O; v! G1 a4 S, `( z0 g; ?: o - (setq new1 (strcat old1 " " old2)5 u. ?7 D" n4 }( D# d* @1 D
- ent1& o! O) H4 F/ i R X+ O& n+ v" p! w0 j
- (subst (cons 1 new1)5 W$ H7 b2 I5 @$ h
- (assoc 1 ent1)& V/ X& ^5 g+ N
- ent1)
7 M9 X+ j4 D k# X9 x" C! r$ e5 E( b - );setq% V( Y) `( C& K( T7 q
- (entmod ent1)
# ~4 |% M' C& R# H) Z- ?+ ] - (entdel ename2)8 A( @# A. G% Q3 n9 y* k. a9 t. E
- (princ)
+ M& o2 k) u! P. t - );defun7 Q1 t0 M6 [% p: J0 x8 G
- - g6 `# N3 F! a
- ;=====================================================================
' V& r+ A9 S" ~8 a& f% X8 r, g! [) Q - * ~3 p- e7 n k" V1 f, V
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)5 T8 m; ` M) B: h: O; _
% i* Y5 O* b& [. Z- (defun nterr (s)
3 h# R; E8 g" w" k4 F+ W - (command "_.UCS" "" "_.UNDO" "E")
- h3 N; p4 ~7 }/ A" a - (setvar "cmdecho" 1)' m* P9 T- R W1 r( o7 W
- (setvar "blipmode" 0)5 S% N9 d, G1 h, T- I
- (setq *error* olderr)" V- y* \0 q, ^. q8 }4 j8 I$ c# \
- (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
( y q0 g4 F) a/ C' r - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)5 A3 V* q3 m6 k8 S: N: V8 l
- (princ)
9 b9 W$ C' W1 Y - )7 y9 u& H" u3 K
) f& P7 X$ N# Q7 k' O9 N2 k- (defun tim_in (dt / p01 p02 ktra)$ z6 K1 a# _, v& ?5 h5 u* q
- (setq p01 (cdr (assoc 10 (entget dt))))0 g1 t8 V D. p4 F) b1 K( j1 F
- (setq p02 (cdr (assoc 11 (entget dt))))3 ^; a R* V; A$ c
- (setq ktra T), |2 g, c a" A* {: c
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) 5 j4 W* M4 O* X9 Y0 {( ~% C& {+ z ]% ?
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
+ g( {. {! c6 v0 n: `8 a - (setq ktra nil)6 R& ?( Q+ C. P1 d& T5 {- d' P
- )
. H. z9 J5 X( e; e - (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) . P7 a8 P8 T5 G+ j, {' }7 m% l3 r" U5 H
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
% \8 ~ j7 b# i9 [ - (setq ktra nil)
# G- ^7 c2 _3 v - )
% S! o% ]3 q% D C1 B - ktra" a; x% A; ^" v, O8 V7 P
- )
" [+ M* G7 p* r. G3 { - / h+ T3 l0 Y- z. j7 ?* v
- (defun timdt (dt1 dt2 / p01 p02), p" M5 W# w. L# \2 p# m, L. j( i8 P
- (setq p01 (cdr (assoc 10 (entget dt2))))
6 T: ~3 w! T( A8 W - (setq p02 (cdr (assoc 11 (entget dt2))))7 l' |2 l/ w @; }& p3 _
- (setvar "ucsicon" 0)+ K! b* o1 g7 a" M4 ]
- (command "_.UCS" "E" dt1)
' D! b. E. D/ o - (setq p01 (trans p01 0 1))! t3 ^; O9 T- N8 a, `% G+ I8 L9 N
- (setq p02 (trans p02 0 1))
0 Z. [6 q t4 \* u4 i% }5 L5 w u - (command "_.UCS" "")7 k+ _! f: { x7 x, A9 {
- (setvar "ucsicon" 1)
" }. V# [1 P' o6 i8 z6 Q7 a - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
4 w! b5 K& I/ p6 R% h0 ]- Z% B- ] - T8 p2 y3 P) {# S- K) J5 \* v* u/ O, p/ \
- nil. ]( m! e& h9 W3 G
- )
; b2 {2 Z6 f- {7 L% M) X: G7 n; f - )
( ^, T) z0 u X5 j, c
( A5 n! [, v& X {9 V; ?; j- (defun tim_out (dt / p01 p02 kt)
" g# S' C8 R0 q2 m i1 f - (setq p01 (cdr (assoc 10 (entget dt))))5 w$ ^' n5 ^+ P$ J8 |7 K
- (setq p02 (cdr (assoc 11 (entget dt))))
2 b+ z9 g$ J+ A5 H+ C - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
8 G, \6 m# _8 n5 Q# d* z - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))1 E; P: ^! h" t+ m. O
- (setq kt p02)
5 p& V8 t% t( W* D L - )0 S# r, {9 d0 |1 @/ `7 {
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
1 V, x9 S9 ~# w2 m - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
" W! C3 y' x1 K; i# I& Y - (setq kt p01)( g1 A7 u7 `- R# ~
- )
! _5 T: A( b% f2 J0 e - kt
* U5 |" Z( ^ g& z - )
$ M8 i" k) x6 k' o8 m
4 @0 q, G1 M# ]! k2 k6 o0 _$ _ M+ U- (setvar "cmdecho" 0)
! b! C z1 s6 Z5 Z! P$ _/ ?4 W4 Y - (setq olderr *error* *error* nterr)
; x- b' M: d9 ~& I& ? - (command "_.UNDO" "G" "_.UCS" "")7 S+ w1 ~/ e) ]1 X; {4 j" L1 ^8 l
- (while (null ss1)- e3 d/ t0 B" z
- (princ "\nChon tuong muon noi...")
% u0 Y) L3 Q' O: _& h$ C5 p: I1 Q5 K - (initget 1)
( \& v8 I8 U" } - (setq g1 (getpoint "\n>Goc thu nhat:"))
* F: [& Q" T6 Z! f: N5 K - (initget (+ 1 32))
9 L, D( e8 m/ U7 u% @( M! N( b; c - (setq g2 (getcorner g1 "\n>Goc thu hai:"))
9 U& W2 d! [ P - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
1 l: y3 Y S9 {' a p8 j* K& g. P - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))$ P: @, x% R) n5 |+ G2 y. H2 P& c
- )9 I( L" |3 ]/ m6 c7 E: E& J
- & E# B Z* Y/ t
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))6 K! W2 N+ z# z+ ]3 y# y
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))+ S" Y+ a U! X1 F3 S! O
- g1 temp)$ X$ j* c" j# i4 L0 f8 S; M
- (setq ss1 (ssget "w" g1 g2))
$ N% F4 I0 J8 x- k$ x8 S c - (if ss1 (command "_.ERASE" ss1 "")); U% b5 w) O$ X b
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
. i8 v" ~$ K+ c e8 b- e$ V% j - * G7 v7 }; q; [& P. l
- (setvar "blipmode" 0)+ v) u j1 O0 E' ?. b: L
- (setq i 0 l (sslength ss1))9 c# n# W3 V0 l( L2 _' ^+ S
- (while (< i l)
7 B; e, Y# C9 }* P* l - (if (tim_in (ssname ss1 i))
1 Y% i) \: K8 O" w& I/ i: y - (progn
; C$ ]" l' v; x! V5 v - (ssdel (ssname ss1 i) ss1)
0 h0 _8 h4 l" J7 Y) | Q1 g8 S - (setq i 0 l (1- l))
; o* R' W4 m) ^( n6 P- \) c, o - ) ; R4 l: G6 @$ K! c8 D. M
- (setq i (1+ i))
. r5 U6 D2 X0 ` - )
. M i* k" l3 f) J: Y7 X( f - ); ?3 @) _2 k- L: a
- (setq l (sslength ss1)); o4 C" q' i2 j
- (while (>= l 2)
; D9 a8 X2 {. ? - (setq e1 (ssname ss1 0))
4 B1 N8 _/ s" ?$ d2 k& q* P" b - (ssdel e1 ss1)9 n* L6 W1 c _
- (setq e2 nil i 0 l (sslength ss1))0 v9 ]% H' f! ^1 S/ k4 K
- (while (< i l)
) D( m' r, Q4 X9 A5 c; E* ] - (if (timdt e1 (ssname ss1 i)) Z, F4 Q$ W0 t
- (progn
4 u6 s- t7 ?0 i \2 n - (setq e2 (ssname ss1 i)), }/ N( X. q5 i
- (setq dd (tim_out e1)). }6 S( ?3 r# p( `+ g9 M/ g2 I6 b
- (setq dc (tim_out e2))
: k6 G3 g+ U/ V+ l - )4 N ?8 V! T8 D# |1 u
- )
! ]5 a# O5 T1 N( g3 q - (setq i (1+ i))
* W4 u) Q: F6 R9 q# L - )
* A/ j9 S/ G Z8 C8 g6 I4 n9 g0 ` - (if e2 (progn
$ t. c3 F6 J6 h4 U7 }8 E3 N, ] - (ssdel e2 ss1)
- |) o/ R2 L, S; G( g - (command "_.ERASE" e2 "")
?3 [3 D" Y+ p. ?1 d - (setq temp (entget e1))
) w l7 z% I3 L; W( |( B( F/ d - (setq old (assoc 10 temp))" ~4 d% Z6 |" t( P( @. {1 c/ r. T) ?1 S
- (setq new (cons 10 dd))
2 q2 f( N" n, g% P - (setq temp (subst new old temp))6 D! @; v/ Z. [. S v
- (entmod temp)4 N4 ^$ j- e) K- b5 \6 i6 v% z
- (setq temp (entget e1))
/ `. T7 S7 A9 U: K) b- ^ - (setq old (assoc 11 temp))
# n$ w' P- D6 z) C3 X - (setq new (cons 11 dc))! \ E4 D3 f* P
- (setq temp (subst new old temp))
$ O9 F) @7 m& k/ { O+ C - (entmod temp)/ K9 Q6 H7 t4 {0 ]3 N
- (redraw e1)! N% f4 P" q9 G* I$ n- L
- (setq l (sslength ss1))& p- c# `+ H1 e" Q
- )
9 Q- d# X( |& T& v - ) @1 p2 K. ~6 r" `( s# Z
- )' }" I7 u( f: U) I1 F }( d3 z
" f3 h9 D2 B# K8 ?- (command "_.UCS" "" "_.UNDO" "E"); `7 o) T+ f% h+ W& a
- (setvar "cmdecho" 1)' m: L/ Y8 E4 o( i; l- T( W4 {
- (setvar "blipmode" 0)
5 U7 Y% y# T* C6 \4 f! }; { - (setq *error* olderr)# c, e% ]( g6 j
- (princ)
: F* O6 m4 J: o7 O/ j) } - )
: d% a6 y. ], b3 O - ;*********************************************************************
) q5 V0 P ~% U3 W% f: X - (defun ketthuc ()8 E1 b/ x' f+ s7 B0 l9 x; e
- (setvar "cmdecho" luuecho)
`3 _( z) f) H/ F) S2 C; i& \' |4 n - (setq *error* luu; P6 [" w0 a% {# N
- luu nil L3 T& d% }( O
- luuecho nil
8 J; o; }0 D. G2 w - );setq( V l) k ?) V/ N! K# D$ t, K: y' r
- (princ)8 R9 l( Q& u4 N8 r g& ^% C4 S& E
- ) ) f( ?: ?! J' g' p5 V& B+ g
- ;*********************************************************************0 d8 w+ t; H) J Z
- (defun modau ()
+ {# l& U& o3 p! P - (setq luu *error
+ b$ ^! W1 k! h" w - luuecho (getvar "cmdecho")
7 n, x$ e |& ~+ Z: \ Z - *error (ketthuc)
) M# U& P( X$ b2 w5 J3 A5 T r - )
9 E* i0 F) w: F" w8 H) O - )
5 p, N# ?# m9 i; i! t - ;*********************************************************************
% i% u; l; s6 V2 E2 ?6 c( H$ L, c6 J - (defun xulytext (text / kytu ma sokt luusokt lui )! s1 K4 t# O1 a: H1 W' _& W
- (setq kytu (substr text (strlen text))
7 e2 T C2 r5 _* \ - ma (ascii kytu)
* L9 l* m" q& j9 J! M. D - sokt (read kytu)
) B* \; P9 _* c, Z2 x2 M$ s - lui 1
+ w/ y6 G; L9 s) d - )
. m3 M: N2 N! y3 H- i - (if (numberp sokt)
& B! ^/ L/ e3 `( L! y - (progn" Q* I7 u, A, X4 y4 b! _7 \
- (setq luusokt (1+ sokt))7 L, v. ? Y: }8 u
- (if (and (numberp sokt)
3 ^2 x$ w* G2 y( \) c+ F - (> (strlen text) 1)
' _, c8 D$ d0 u: { - )
8 R5 D3 D9 g4 g. V - (progn
) `, A' G. P( O8 u( O7 e - (setq kytu (substr text (1- (strlen text))); [* I& z! G; r6 [
- sokt (read kytu) ( s0 S9 @) K: P, U
- )
& N. s0 } q/ @' Y - (if (numberp sokt)
/ }! F7 U" J1 x" D - (setq luusokt (1+ sokt)
1 N& { o$ D" K+ ~ - lui 28 C+ l) f2 Y' p9 q' [
- 5 g+ v5 }$ c- F1 \
- )
# P1 ?/ |, u4 |4 O7 K' j - )! M% e, _/ ?* r% b
- );progn * |3 E1 A. S' v8 ^
- )+ C' X: y3 h! }- j/ U# h/ g
- (if (= luusokt 100) (setq luusokt 0))& Z0 K5 b# E9 y5 I2 N
- (setq kytu (rtos luusokt 2 0)5 M p" m2 J( G. p2 w B7 W8 E: k
-
1 P0 r" ?, Q$ _ - text (strcat (substr text 1 (- (strlen text) lui)) kytu)
& T; f6 i- J" }/ h5 x - )* S4 Y" L9 A& _+ V% F2 K& K
- );progn
4 s; K9 D* F0 Y( W! q4 N% [ - (if (or (= kytu "z")
) Q! M) @, f: n4 D - (= kytu "Z")% H3 O! w& p( O- I) e* T
- )
/ O% w( p! w: u- j - (setq text (strcat text "0"); y$ L. i5 d& J( U
- textxl "0"
$ k" _+ L4 E! D4 t - )
6 C f% [8 A: ]+ P( B - (setq ma (1+ ma): c8 ~9 w" ?2 v. |
- text (strcat (substr text 1 (1- (strlen text))) (chr ma))6 Z. {3 E) ?* R3 C4 Y
- ), B1 {# S+ |: w4 m2 B
- );if8 x% t8 L/ `! V5 E% s
- );if
9 M0 X3 C# ?4 W3 k - )5 f8 D% e; N& Y- U: r0 q
- ;*********************************************************************
6 g2 ^/ P% P$ Z2 ` - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)) L; p7 T, t5 w3 U) P' j: m
- ;Neu doi tuong la text thi tiep tuc
$ b; C! t- Y" | - (setq doituong (entget tendoituong)1 k/ }; _; ?+ x9 }4 S
- kieu (cdr (assoc 0 doituong))
# c+ w0 S7 Q- s% f3 X* U7 ? - canle (cdr (assoc 72 doituong))
( u! w- ]6 \4 h8 U { - )
& E! L& p% P, i, |, Z5 S/ J% T6 i9 O - (if (or (= kieu "TEXT"), U$ p) R3 m" v% M* ?
- (= kieu "MTEXT")
; s. o' W1 s1 [7 q- S+ U4 Y - )
* M/ P9 K, M* z" @+ Y: [) {3 r - (progn4 ?3 \1 E* u' F$ Q
- (setq textxl (xulytext textxl), e! ~, K( `) e4 x$ l" {& \
- text (cons 1 textxl). V# ]8 {$ @; d6 X- E
- vitri10 (cdr (assoc 10 doituong))
8 W, g9 n# {: L& e! B - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))1 o+ Z/ K) D9 N5 c
- vitri10 (cons 10 vitri10)
1 U) \! e1 l8 I# ~$ ~3 \# l! Z - vitri11 (cdr (assoc 11 doituong))! w5 z, |, z: d
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))$ ~! x/ c) V# Q& _1 d( p d
- vitri11 (cons 11 vitri11)
0 i9 U8 n3 a7 n - dem 04 s2 h; q6 f! b! g$ B! ~" @8 j
- dsach nil
4 j% k/ W0 H3 e- U - )
K/ I0 t$ T B2 r1 p2 y - (foreach tam doituong
) w* y1 x9 U6 o( U - (cond
2 v, `( A8 Q% X- d - ((= (car tam) 1) (setq dsach (append dsach (list text)))) y5 R" o* ]7 h( l1 K7 `
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
5 Y+ g v* ~0 [* S" w - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))1 b D- x0 Z, I( s* M
- ((setq dsach (append dsach (list tam))))
6 J1 _9 H! A* w- I# c m/ [ - )1 w- |3 u7 ^0 N- F( k
- )+ z) J g" t3 L2 D6 P
- (entmake dsach)6 n% v6 O* c* F, K, Y; s
- );progn: ?( G! E6 A9 x* O" Z5 Z- b
- );if5 _# i: O" k: ^8 J6 s+ c' k' }
- );
# @) \$ d6 ]. _ - ;********************************************************************** G$ b% O, j$ Y3 Z
- ;sao doi tuong cu sang vi tri moi
" \2 O, S4 G! o$ m" j6 a - - p+ p3 {$ {% N3 `/ E
- (defun copy_dt (tendoituong )7 p: ~1 I" ?5 E9 H( T3 _0 C, Y
- (command "copy" tendoituong "" goc toi )1 P* q7 E0 c8 h3 n( T
- );defun
/ B' m, K; w- l! U6 X( W2 m* b3 ?) q - 6 X, h/ C8 Y+ _) ^7 B* R. v; i7 r
- ;*********************************************************************
/ n6 g% w0 l; Y8 c - 2 D' Q' s' z2 H
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)3 K3 r4 }: L" C: L0 L' F/ t( q
- ; Khoi dau cua chuong trinh! N! x. L6 Q% l# l5 E( I
- (princ "\nCopy Inteligent...\n"), e$ Q6 a6 K" b" h
- (setq luuecho (getvar "cmdecho")4 U" ^% ?7 ?. y4 h( U
- luu *error*
" q$ v8 X- f; u5 I" r - *error* ketthuc
/ S. M4 D8 s' `8 b - cumdt (ssget)
4 x$ Q. A1 u* j' Q+ A - dodai (sslength cumdt)
' A, ^% f, H$ y+ H( C2 e - goc (getpoint "\nSelect base point:")' A; G% |# X: u& y2 \
- thoat nil
8 N- o3 J1 a+ y$ b - dem 0
0 m* O, {: {+ f# f4 L- r - textxl nil2 E3 A2 J- f1 N
- );' {* I" o/ u" U7 C i
- (setvar "cmdecho" 0)9 w! S w; P% {
- ; Loc ra duoc ong text de xu ly
6 C( |# I* V& f5 @6 o, A# p T - (while (and (= thoat nil)
c# s& [7 P6 d" [7 ^1 I - (< dem dodai)! W6 O% L; n9 r1 B* C6 Z- l9 e
- )
$ H$ _+ ?$ c, g6 h - (setq ten (ssname cumdt dem)( Q. X1 q2 X: G1 e
- dem (1+ dem)4 m' f! K2 @* I3 g0 O7 k
- doituong (entget ten)$ P* o+ t5 h- `* S% G
- kieu (cdr (assoc 0 doituong)) 9 d$ d0 f7 y6 |8 ?' D. @" i1 O
- )
! c& c' T' c6 R: o V -
7 v( U+ r7 o+ P# u& a) y& B! M - (if (or (= kieu "TEXT")2 u7 g0 s& D( L7 Z0 O4 }6 O2 [7 X
- (= kieu "MTEXT") ! V1 a- K6 J' c" N' _
- )( y9 m0 g& V' @8 b x
- (setq thoat T
1 t- V" a& D3 M - textxl (cdr (assoc 1 doituong)) * G5 ^( s' e: A
- )
$ a" f7 k( [7 \/ U - )
& c, w2 l3 k* ~, d% B3 H - );
; ^3 |7 U1 V7 ~% y- ]) h5 J) L - (while T % I( b9 Y! M+ X, j8 m) V3 Z
- (setq toi (getpoint "\nSelect next point: " goc)1 w! X5 S) ]# a2 F
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))3 n6 q9 y# }& i, P7 d4 [/ F6 E$ J
- dem 03 B! B7 ~: p* y
- ) O, c* j& T! c& |9 D2 B3 c! z# j
- (while (< dem dodai)
8 \5 x/ a( e$ J& H: F7 |# ` - (setq ten (ssname cumdt dem)$ y* E; C s) X8 R9 K/ E# d. a0 R) F
- dem (1+ dem)& A. E F& \+ |( Z5 R8 [) J) \
- doituong (entget ten)/ k5 |- S1 N/ @" {1 ?5 O5 S
- kieu (cdr (assoc 0 doituong)) . b! O K$ _) ]3 B' l; H! ?
- )4 S! Z' s, c' ^9 I7 z
( [# F! @: M% C3 ]/ `- (if (or (= kieu "TEXT")" C; g2 M' |3 k4 @5 u
- (= kieu "MTEXT") & w5 ^0 D i8 G$ ]
- )
9 h3 [, C, u" P' g - (doitext ten)
9 A1 D W w2 _$ k Y0 ` - (copy_dt ten)" B' R3 z; b% v7 `% t, r- @
% Z3 G7 P! G9 X( ^3 N7 U- );if
" ~1 R5 B3 J0 Z/ a4 `; L$ h a+ m - )$ v* i9 U# H' `/ G6 |1 @, s6 B5 B
- );while
6 _/ E" Q6 t" N% q# G/ v) K# }. e - (ketthuc)
$ S' t5 [! Q# u1 f - );defun
* Q. H! G3 f9 U T - (princ "Type \"DG\" to start")$ X! N O0 T4 t
- ;Note: bien toan cuc: textxl vitrilech
& ` @; E" v1 l- z0 a* y) u - 2 t/ @- W) r4 {6 Q8 K+ \ @
- ;=====================================================================% ?$ G5 D1 o! q$ ^6 D
- ;;; PLJOINFUZZ.LSP; ?- m3 ~3 `" Q' S2 J. ]
- ;;; Joins lines, arcs and polylines using a fuzz distance C8 Y* T' [- o5 Z1 R$ R
- ;;; If only one object is selected it tries to join to all objects that are possible/ K3 |2 z9 R7 W2 U
- ;;; By Jimmy Bergmark/ L( z, r% L; w* _& t* o
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved( U- G J/ j& h! u
- ;;; Website: www.jtbworld.com
* a5 F& W0 j8 N# g z - ;;; E-mail: info@jtbworld.com
5 j; c7 V0 c3 T7 \ - ;;; Tested on AutoCAD 2002,2004 and 20056 _" \; \) R/ J
- ;;; Latest revision made 2004-11-11
. O6 j: R- y: u! V - ;;; Minor code cosmetic change made 2004-11-13
" C% o2 f8 @9 A8 l S - ;;; Bug corrected 2004-12-23
/ k2 D Q, R: j$ _% t - , z6 C: `: y& B1 f5 }
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf& j0 u) G; O2 Y! \1 {
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
6 O. v7 K/ i- ?% }. b3 t, g - (setq oldcmdecho (getvar "cmdecho"))
# O+ J Z* @) ?+ e$ S2 } - (setq oldpeditaccept (getvar "PEDITACCEPT"))
! i, j4 i. ^- j4 \ - (setvar "cmdecho" 0)1 o6 O9 ~6 ]8 u( Y% D
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
# u, p+ {* B/ o - (if A2k4 (setvar "PEDITACCEPT" 0))2 R& f% R* Z3 Z" d% k
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
6 l6 x3 x" |* |5 N. I- N1 T - (princ "\nSelect object to join: ")% d$ c" D% [6 v% x3 ?
- (setq ss1 (ssget okObjects))
/ W( T) H6 Y$ _) I - (setq fuzz (getdist "\nFuzz distance <0>: "))
@9 v3 ]# f) } E/ v$ ~% {% f- @4 Y - (if (= fuzz nil) (setq fuzz 0))6 ]( B' v$ ^8 R) l# L2 ~6 s' Q, }7 K
- (if (/= ss1 nil)
5 v( f* s- }* d8 ?* [. U6 Z - (progn
4 t7 x' B& K9 |0 k9 z# { - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))4 V& U0 b; a4 t
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))- u4 M2 H6 b# ]8 }! ]
- (if (member objType '("LINE" "ARC"))
1 e- y* B4 }2 V( ~8 U) [ - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")0 b/ T2 C; _% _6 l
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz ""): G* T- t5 f/ z# u6 `
- )" d+ g7 W1 `" ?/ i
- )8 S6 {* D4 I0 G) o% x
- )3 } G! s" C* M
- (setvar "cmdecho" oldcmdecho)
# l1 Z/ R2 t1 e! i6 m - (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))6 ~5 e/ G# {- z
- (princ)
5 p% L, U) }; A, h$ s - )
- | V/ f5 @$ i' I' s3 a ? - % G, U, I' Z+ h! Z
- ;===========================VE CAO TRINH===========================0 Q7 a: y8 Y- l( k( V) Z9 @0 X: T9 n
. P: s7 X% K7 p+ K5 [# h- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL" g1 k; A0 y( O3 u
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
' B% l* Y7 A" M5 `8 [ - (SETQ OLDERR *error*( f- Y( d( q! F* R7 j
- *error* loisb)
+ i; Y/ h7 f( x$ Y9 z7 N) K - (command "layer" "m" "dim" "c" "" """")( p( I7 |" y2 w0 P" [& D
- (SETQ CMD (GETVAR "CMDECHO")). l& r! \. D8 {( y1 V
- (SETQ NBC (GETVAR "CLAYER"))
% V, }8 W8 r* l4 [8 n5 c- c - (SETQ OSM (GETVAR "OSMODE"))' ^5 d) g: B% s) b
- (SETVAR "CMDECHO" 0)
, p9 E% j& a3 p2 \# E0 } - (SETQ PT1 (GETPOINT "\nDiem cao trinh:")) e4 k* w' h& B& W
- (SETQ TX (GETSTRING "\nCao trinh:"))
/ h! N' Q- l4 j5 p* D8 E" t8 x - (SETQ FCH (SUBSTR TX 1 1))
J' u$ c9 n3 P# V. N - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
& h% S: \5 O9 L. ~) d - (SETQ CRST (GETVAR "TEXTSTYLE"))2 ?/ R; _; S8 T1 ?, t
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))" P ~& T( `/ G# T9 N1 Y! P
- (SETQ TSIZE (GETVAR "TEXTSIZE"))
% N1 m5 C! |3 L* a - (SETQ STR (RTOS TSIZE 2))
. q! K' i. j1 ?' d4 d/ | - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))$ V' C4 i. b9 i0 R! H/ q
- (IF (= RSIZE 0); S4 _ d+ O- w! B( d! l4 P
- (PROGN }/ d* Z3 m+ ~/ t; S U5 G
- (INITGET 4)" A: j4 N: X$ R* e
- (SETQ TSIZE (GETREAL PRMT))3 z3 v4 y5 L3 j5 p
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))3 K* F7 w5 n* J. l8 K! t
- (SETVAR "TEXTSIZE" TSIZE))
0 g( r4 ?6 N5 {5 U% ]/ I - )& L+ P+ M+ N# M6 X% E/ G
- )4 B2 _# _5 f) k( D2 N
- (PRINC): _3 I; d$ z3 f1 R2 U
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))6 z6 V) _, Y- Y
- (SETVAR "OSMODE" 0)
2 v. v9 j) D' D- T" c9 z - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))! e& v# d3 w. q3 i& \
- (SETQ NPI (/ PI 2)) d0 v* @8 L6 X* u2 ?# `1 {
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))! |7 g% J1 v5 T- ]" `; G
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
( `& J- ~# I* ^3 H - (SETQ PT3 (POLAR PT4 0 (* 2 TL))), Y# {2 G- T5 q. n
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))0 f5 d5 L9 U/ |+ g& s1 V6 O
- (SETQ PT6 (POLAR PT2 NPI TL))' C! w8 e( y. w2 `5 Z) G
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))7 C* A) S2 N! y' D, ^
- (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
& K! h# C( H+ I - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
! [0 P* Z* y' \ - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))2 e5 ~ J- u' B* Q, H% _) J; m
- (SETQ PT10 (POLAR PT1 0 (* 2 TL))). A' Q2 q4 A+ m+ ?; h! W
- (COMMAND "COLOR" "7" "")
7 x) B( t( v% { - (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
- L- {. A! Z N - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX)). P. v5 B* P$ a' O! S9 |: p
- (COMMAND "COLOR" "BYLAYER" "")% T$ ]/ t6 k2 c7 f$ }: D
- (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")) v% S3 A F. |/ Y, q8 w6 w
- (COMMAND "COLOR" "BYLAYER" "")* i( W4 n6 @9 [
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10""); @. L: x% r8 B3 B5 a) o1 X7 o, y
- (SETVAR "CLAYER" "0"), |+ ~* j1 a+ N) {; Q
- (command "ddedit" pause)' F8 U v; @' h5 w
- (COMMAND "COLOR" "BYLAYER" "")
% w9 ?2 T* L$ e& Y' P1 o - (SETVAR "CMDECHO" CMD)) `8 e# s) ~9 F/ |8 v8 `
- (SETVAR "CLAYER" NBC)
0 h+ K7 \0 ~- y5 `' U0 W/ u6 u - (SETVAR "OSMODE" OSM)) i- `% f3 t ^* g* `$ K: |
- (PRINC)
% B {* I/ f- U. u - ). S* X! K! X( g6 z! ]
. Y2 \- j1 j5 j) l1 p$ l- ;;; =========================== VE NET CAT CHEO (GC) =============================" k- s9 l, U+ W& f& n$ q0 ^
- . T% X" w/ \8 E8 \4 X
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
3 L8 s& L! w0 s" }2 {0 B - (setq x (getvar "osmode"))
4 `. Q5 @5 P+ {. b X - (setq p1 (getpoint "First point : ")
. m% }0 k; D! B; z5 D4 I - p2 (getpoint p1 "Second point : "))6 \3 i0 C& X) K" U4 \
- (setq l (distance p1 p2))
: X9 Z0 ?+ ?8 c8 v2 S: n n1 x - (setq p11 (polar p1 (angle p2 p1) (/ l 5))2 c5 \6 l8 t# @- }
- p12 (polar p2 (angle p1 p2) (/ l 5)))* O' Z5 D* ]0 O, m
- (setq ang (angle p1 p2))) A/ @8 o6 a8 u$ X6 {1 u- t, K
- (setq p3 (polar p1 ang (/ l 2.5))
5 e8 ]6 U8 u" d {! y - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
6 h4 N6 h4 ]- J8 |) J: n) ]; z" } - p5 (polar p3 ang (/ l 5))8 r& T" T+ |, x9 N2 ?
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))1 \0 n6 O. t% ~) `" q( h# a% y
- (setvar "osmode" 0)9 c# V1 ]5 u4 g, m O5 ]
- (command "pline" p11 p3 p4 p6 p5 p12 "")
9 N+ P4 i V o! ?6 C' @ - (setvar "osmode" x)7 R; u3 }0 U: A8 f& Y
- ), j6 g% A( i X1 T' X# b; }
- ;----------------------------------------------------------------------------------$ P8 u3 Y9 ?6 y
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
e4 l. g0 D$ Y3 Q. g - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
) K4 {, n8 T6 |( m. M4 u; O5 Y - (setq ps1 (getpoint "\Chon diem thu nhat: "))
+ S; E" \6 J' C$ u - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))" p- i7 u4 q# C, Q6 l% a, `- e7 r! z
- (setq sb 50.0 sh 200.0 se 20.0)
' S% H4 J- Q& l) x - (setq ang (angle ps1 ps2)); X' K* T: S3 R2 C! R
- (setq pf1 (polar ps1 ang (- 0.0 se)))4 ^7 y0 z2 B% j
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
) t9 M' K3 Y3 M - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
U4 _0 M* k3 ?# J% ]6 f - (setq pf5 (polar pf2 ang sb))& a; \% ]2 B$ Q, l
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
' n# v" `( b7 y5 ^# R - (setq pf6 (polar ps2 ang se))
5 ~9 h V) H7 d: t- f7 ]" l# B5 H - (setvar "OSMODE" 0)* m9 N0 N& f5 I) ~& l
- (setvar "BLIPMODE" 0)
) `: j! F4 j! A) u# j) \ - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
5 I% h8 l y5 {+ }4 q! w - (setvar "OSMODE" 703)% ~4 w; ^2 v% `, h# ]/ L
- (princ) )
8 Z. r% m; r) J4 ^, n8 I. K7 R) _ - ;----------------------------------------------------------------------------------& Z2 L% w" j: ^$ \0 L- w: I* b
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
, {' O3 U8 u& Z - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
* p6 \2 D3 Q% C. i1 E5 V - (setq ps1 (getpoint "\Chon diem thu nhat: "))
2 L: l1 o; p% j. e# z0 m% C2 t, ~ - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
$ ~1 s4 C. P* p - (setq sb 100.0 sh 150.0 se 20.0)
) X1 s8 S; K! l. I - (setq ang (angle ps1 ps2))
$ v5 G/ J( ^! s! `" o - (setq pf1 (polar ps1 ang (- 0.0 se)))- V8 l3 h; r3 w+ K% b% E
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
/ q1 K6 X4 f4 \& o( P3 j/ G* ] - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
( U$ L8 I+ E D4 \6 g% c$ ? - (setq pf5 (polar pf2 ang sb))
8 Q& l) ^ P& x - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
2 @9 O5 S. y M8 z) ^ - (setq pf6 (polar ps2 ang se))
8 a1 m" o- |+ z# W - (setvar "OSMODE" 0)5 y! B% P, n" m9 o% E. @
- (setvar "BLIPMODE" 0)
2 K" v& d& K* \3 v9 I - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
8 e/ J4 M e% N4 ^5 | - (setvar "OSMODE" 703)
: i8 y5 `) {# c x/ b - (princ) )4 M2 s& x" x, g1 A
- ;----------------------------------------------------------------------------------
1 p: l+ a+ k$ _9 a5 F - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
5 Q/ R- ?' {3 z7 F( { - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))5 z+ P& X' d, B% G' a; l
- (setq ps1 (getpoint "\Chon diem thu nhat: "))' o' o' e* c2 `* ~: h* l7 R0 K, O
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))1 \5 \- B/ b" z8 p$ `; y# M
- (setq sb 100.0 sh 250.0 se 20.0) V% ]) Y, z3 f
- (setq ang (angle ps1 ps2))
9 `: D: Z" M& E/ e - (setq pf1 (polar ps1 ang (- 0.0 se))): R3 W, b' Q+ I" {9 i5 |1 `/ I: L3 V
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))& \4 F- L# K3 b
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))2 Q2 m% z R3 g- k2 F% L
- (setq pf5 (polar pf2 ang sb))
, s$ v4 d/ y/ T) v4 o - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))( s( S3 m3 d7 ]7 i4 m2 i& d
- (setq pf6 (polar ps2 ang se))4 S2 t8 t$ e: J G# `1 f
- (setvar "OSMODE" 0)3 k) @: |3 ^. B* \9 p
- (setvar "BLIPMODE" 0)
Z- j# s8 d* Z# y - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")+ o! ^! L. m4 r/ r7 n R) _
- (setvar "OSMODE" 703)
! z3 Q! m2 M7 D7 H& y3 ~ - (princ) )
, G7 f8 ^3 a& t/ c
3 @3 D3 p1 O0 A% V% V0 a! c# {- ;==================================================================================. P8 v9 { U0 o% D4 {# r
- (defun c:ang (/ ent pt1 pt2 ang)& s3 h4 _8 m* f3 }0 f: _0 [
- (setq cmd (getvar "cmdecho"))
5 P7 |2 l+ d# R# W8 a5 w - (setvar "cmdecho" 1)
* }& j% d* Q7 j+ Q% i, M - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
# _, B, x2 K% ]6 `- y - (setq ent (entsel "\nChon duong thang:"))5 }, c2 D- e( A" A$ f" `9 @
- (if ent
+ f+ _- w) f3 ~ - (progn
) ?8 d! f# M. ]- Y. k% H - (setq ent (entget (car ent))) |1 a, {/ q/ ^9 Z3 ~& X
- (setq pt1 (cdr (assoc 10 ent)))
* f: ?% a- T" v5 V8 M: ~+ S - (setq pt2 (cdr (assoc 11 ent)))7 O7 t. w J, n" J1 d; w' V
- (setq ang (angle pt1 pt2))
$ }0 x+ Q- e" y - (setq ang (/ (* ang 180.0) pi))
0 s" G: G- m' I - (setvar "cmdecho" 0)
. Y* J% k7 E0 I& i( `# v - (command "setvar" "snapang" ang)
u3 g; X0 }$ \, t7 K9 b - (princ "\nGoc cua truc toa do moi : ")# o# _! x2 f7 u2 G p. X
- (princ ang)& p5 G' W9 x: L2 k& p: B8 E
- )
7 [ g# M4 \1 f- N" _ - )4 r* v$ q$ k, D/ Z% o; g- V0 ]# o
- (setvar "cmdecho" cmd)0 D. A9 h- _/ W+ x
- (princ)
* R/ L$ d/ q& [1 h, C$ p - )
' I3 u7 {/ p+ C* o4 a; K - ;==================================================================================
- b* ^8 V/ X; v- r& N - ;============================== KY HIEU DOI XUNG ==============================# ?6 D4 r6 @. }8 v. Q
- ;==================================================================================& L2 |; s1 t/ R- X) L, ~
- ( L7 e' M7 q, ?3 [
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9& k5 p; F: x7 Z0 b' t7 s; a" d
- SZ G45 G135 G90 G180 SS loi)
' k" }( V& ^1 ]; Z$ Y - (defun loi (s), E& h$ t% J% r0 @2 ?
- (if (= s "Function cancelled")% Z- V& U- b$ Z" u0 Z( P4 l4 T
- (princ). O, i1 O" a9 L9 W! I
- (princ (strcat "Error:" s))- z4 o$ O$ P* j0 h7 }
- )
$ H2 F- T# h% G! V5 b/ P0 v4 b# ] - (SETVAR "CMDECHO" CMD)# t7 }7 m X6 J
- (SETVAR "OSMODE" OSM)
! i7 _; {# M5 T8 i5 A- h - (SETQ *error* OLDERR)
/ q+ ?2 C! N9 w* y7 u0 T- p - (PRINC)" X# a9 M; o8 R5 q) O% |$ q
- )
/ \, t% ]; o6 ?' [4 V1 Z+ X - (SETQ CMD (GETVAR "CMDECHO")) M( g a# A3 O8 R
- (SETQ OSM (GETVAR "OSMODE"))
2 |& H8 } k* M2 [4 Z, l, o - (SETVAR "CMDECHO" 0)
3 `2 e n$ o. Z& q0 w b- s - (SETQ OLDERR *error*% J9 X( s o$ a$ Q
- *error* loi)
3 S! f' n# `6 y' u+ d' r; a - (SETQ SZ (GETREAL "Size <1>:"))
$ A- {/ _4 u( b" K! @. y - (IF (= SZ nil) (SETQ SZ 100))
' w. m! e+ N# g - (SETQ G45 (/ PI 4))
- I# H! z& S/ o5 J' S8 D% L$ J7 _ - (SETQ G135 (* 3 (/ PI 4)))
8 P' r8 a5 T. m5 c N - (SETQ G90 (- G45 (/ PI 2)))
- c$ _7 l% z% a! T4 d3 Z! I - (SETQ G180 (+ G135 (/ PI 2)))
6 w8 n: E3 K% h g7 @' b6 J - (SETQ PT1 (GETPOINT "\nDiem doi xung:")); C( t, e1 ^, W9 _
- (SETVAR "OSMODE" 0)4 N5 T7 e: k7 Z+ k- Q
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))0 q) q* p+ _5 c: v* m
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
" z" {- ?( H1 n2 n. c" d6 V - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
( e) z9 J7 {( k" V8 ]! b' k - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ))): m! Q* h( B0 ]! U
- (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))* v# X9 g1 z+ [' `: U6 E$ A
- (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))
* |+ Q4 E& C! M b$ M - (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
) r W5 U; j9 b& X8 S% U9 Q - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ))); L: a$ E8 F& x8 f
- (PRINC "\nGoc quay:") P6 M- ^8 k; r8 B( g9 b
- (SETQ SS (SSADD))% U: E8 U8 \) ]4 M& a6 l" j7 V
- (command "layer" "m" "Dim" "c" "" """")
+ ?/ q4 A8 Z" a0 j6 X' g - (COMMAND "COLOR" "1" "")( P2 {" e; E! n: t+ o' l
- (COMMAND "LINE" PT8 PT2 "")8 A- v% F) N+ Z3 ` Z! [
- (SETQ SS (SSADD (ENTLAST) SS))1 D# s4 q& h5 r9 `# R* U
- (COMMAND "LINE" PT9 PT5 "")
& |9 ~! L. [2 A2 w2 r - (SETQ SS (SSADD (ENTLAST) SS)): @+ c; S; {# A( j$ h8 F
- (COMMAND "COLOR" "1" "")
* N" K* ?1 G4 B( n" G9 w - (COMMAND "SOLID" PT2 PT3 PT4 "" "")
7 k1 D4 Y) g" N - (SETQ SS (SSADD (ENTLAST) SS))
2 Z9 E9 A. S$ L+ ?/ L - (COMMAND "SOLID" PT5 PT6 PT7 "" "")
: m1 g4 t/ w( l4 L- A - (SETQ SS (SSADD (ENTLAST) SS))" [! P7 a" x0 O
- (COMMAND "ROTATE" SS "" PT1 PAUSE)8 v q6 K- ~* M) c7 Z \
- (COMMAND "COLOR" "BYLAYER" "")/ i5 v/ _- w! ^
- (SETVAR "CMDECHO" CMD)
8 \$ }; }: l9 c: b9 L: T8 t. H - (SETVAR "OSMODE" OSM)
- z: T2 ]8 T) k/ g - (SETQ *error* OLDERR), q1 ] W, |2 ^; g* ^
- (PRINC): N/ ~4 }, i2 ^2 C
- ) ?# A4 ]+ {; ^0 F8 c0 M
- 7 H2 I' @1 J2 [% w U6 W& ^
- ;==================================================================================
" J) c6 q+ |% z6 e* X' G- p - ;================================= KY HIEU TRUC ===============================" p/ @* h# y. D) R+ W/ O2 K% b
- ;==================================================================================
) y I; }1 ?7 O - ! _; j, H8 O# N
- (defun C:vetruc ()/ _9 u/ w( u( h5 Z# I
- (setq bk (getvar "USERR3"))
+ P. ]& w" O) i3 d - (if (= bk 0)
+ s) N. _4 C/ Y$ } - (progn* D9 K( y" w' d; B
- (setq cont "1")
5 W- S! X# s6 E - (setvar "USERR3" 1)
! d1 l" N; O( e& ^; v* r - )
! W% Z% l; g C/ _. K) F y - (setq cont (rtos bk)) Q( P6 i8 T# |
- )/ i6 {1 L! V- e$ b9 z
- (setq pt1 (getpoint "\n Nhap diem dat:"))/ T& X4 z" F q. l# N0 s0 x& Z
- (command "layer" "m" "Dim" "c" "" """")
$ V( T- N, B3 b( i! S - (command "osnap" "")
( z' j, [( k# u3 K0 v - (COMMAND "COLOR" "7" "")
@* M. |( w+ w! E I" t% {. k" P - (command "circle" pt1 150 "")
0 h! ?+ J# |" v+ W - (setq pt2 (polar pt1 0 150))% i6 U1 X& l0 V7 H9 g
- (setq pt3 (polar pt1 (/ pi 1) 150))- o/ w' C8 {5 Y( N; a
- (setq pt4 (polar pt1 0 300))
( M9 o) }' d8 V1 k1 E - (setq pt5 (polar pt1 (/ pi 1) 300))" R- N0 E" d' `
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
% I+ i0 d- c1 M$ e) ]& n - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))6 M/ a7 g8 t" W1 J
- (setq pt8 (polar pt1 (/ pi 2) 150))( l: }4 S2 Q2 {
- (setq pt9 (polar pt1 (/ pi 2) 300))
) {8 P& f! U7 c' G2 i6 } - (setq pt10 (polar pt1 0 150))
9 p1 q0 p( _5 j3 p" V0 ? - (setq pt11 (polar pt1 (/ pi 4) 150))
. b. k' K1 l; n1 K& I$ m - (COMMAND "COLOR" "BYLAYER" "")
4 k# o4 h- ]3 O" ~6 } - (command "line" pt2 pt4 "")' K2 j+ V% A7 T% m
- (command "line" pt6 pt7 "")
4 ^) f/ |5 |9 s" j& s2 Z5 W5 M - (command "line" pt3 pt5 "")
/ ?: U7 w$ k5 Y1 c( c - (command "line" pt8 pt9 "")7 P: I6 E# q) `0 G$ }! b
- (setq dk (strcat "\n Size:<"cont">")): `: a( W- x! e9 J/ D
- (setq bk (getreal dk))
2 R" W7 ~) I7 {9 P/ A - (if (= bk nil)
3 q0 ^( W0 ?5 a1 r) y - (progn
2 [' N9 \! C O% {$ D9 ^ - (setq bk (getvar "USERR3"))
) x0 O. W3 E. w" j) R - )
1 B! t) e. V2 D8 a. f - (setvar "USERR3" bk)$ }, o4 o5 W5 f1 J4 l
- )/ p0 G% C1 {* l" A
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
" Z3 h( T' t T7 H* y- p* J9 T - (COMMAND "COLOR" "7" "")
; c! @+ u* b, I6 g1 g" @ - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
' Y$ U" a7 T& O {: C6 ~ - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
% W3 B* W0 L2 }; H - (COMMAND "COLOR" "BYLAYER" "")
8 B* c3 p- B- M - )
/ ^+ G/ C8 |4 E8 x! V
; X: \6 J R+ |" R3 Q1 H- ;=====================================================================
. H j6 h$ P/ X' H( V+ V: D - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)* B" Y, y! B4 ^1 W
- ;
4 X7 h0 H/ m" y, y: o. C+ N - ;Jeffery P Sanders; z4 d8 }0 |% ]& G9 ~* n: i
- ;8 w8 Y. W1 o9 Q; s
- (defun C:CA(/ en enlist tx newtx cnt tp asc note)
) }% X( p9 J' r3 M - (setvar "cmdecho" 0)& d7 i' o. t# w% [& H
- (if(setq en(entsel))' e# k+ V( U# {- X) T" s+ b
- (progn
1 }: u( U# ~% D/ G. g& ?- @) A - (setq enlist(entget(car en)))
1 S3 _! S! N6 K+ u - (if(= "TEXT"(cdr(assoc 0 enlist)))
( v" m8 o1 L/ L2 M6 H9 u" H3 u - (progn# `! K+ P2 c7 g- f0 h
- (setq tx(cdr(assoc 1 enlist))
4 r' x9 }1 M: ]& Z/ G7 L7 V - newtx "" cnt(strlen tx)" L: V ~+ X, \. O+ V
- note "\n...CASE Reversed. \n "
0 W" u( ?9 ^0 T% `9 k, F; A9 N - )
) y8 E# x3 o e/ I; F - (while (> cnt 0)
4 [2 J8 m' Z4 p9 F - (setq tp(substr tx cnt 1)): q1 {! w% R9 c5 p
- (setq asc(ascii tp))
% u9 f; R0 K" l( m; C% | i/ m, h4 H, g - (if (> asc 96)
5 }" m h0 E" r4 O% r' q( B - (setq tp(strcase tp))7 e& b# ]5 W" O6 v5 M' F; c
- (setq tp(strcase tp T))6 o" X0 e5 {8 z% v
- )
* k5 D* l$ g0 k* T, W - (setq newtx(strcat tp newtx))
& L# M. I9 c, }$ c - (setq cnt(- cnt 1))
3 Q+ B h+ ?' w0 e( Z5 M - )7 s5 W2 ~# }, ]" H9 p( i3 ?
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))% w3 C; P1 R/ {, H& u
- (entmod enlist)
* n! ~. p, E" m- M0 ~ - )
, t7 x- p2 b3 ^$ l! F+ H - (setq note "\n....Text Only Please. \n ")
% o8 a" T, Q1 Q; `8 ? - )" c# `0 Q) ^! }
- )
8 D0 N% e% p) A - (setq note "\n....Nothing Selected. \n ")
) `+ G! x& h* Q' F, ^ - )
* _8 C3 b/ @8 e - (setvar "cmdecho" 1)
" l! g) F# J( x; ~; r - (princ note)
3 H: K" z4 R7 @# D, ~0 G - (princ)2 O. _( {, s0 S4 C
- )
4 Y2 S) T$ N8 u1 ?0 Q" S$ c
8 z) L7 U) U6 M" {- ;=====================================================================7 r* N% X. o+ N w7 P; W3 n7 S
- ;==================== NEW TEXT STYLE UPDATE ==========================5 \0 Z9 {+ E6 y ?& v0 w. C* e
- ;=====================================================================
% C3 |) D/ _. n& k, u ~ - 8 v% P" G. e3 s' j$ B, f9 D
- (defun c:nS (/ tdt ssdt sodt index)
, N4 F9 t4 }8 s: { - (defun ObjName (ssdt /)0 B4 o1 b3 t& P- g b
- (cdr (assoc '0 (entget ssdt)))- p( } x) D/ T: U
- ); W% @: w2 t' D2 G8 k, Q
- (defun MoPL (ssdt /)4 X- e6 @0 }* f+ z
- (= (cdr (assoc '70 (entget ssdt))) 0)$ c5 }5 `& t' m0 h& N: J1 ^2 S
- )
8 ]7 x0 j: u A# i1 R4 r - (defun NoiPL (ssdt /)1 o" R! F6 C$ W; d7 a# e
- (if (MoPL ssdt)2 e9 z8 S& D& c. c+ k2 a* P
- (command ".PEDIT" ssdt "J" "All" "" "X")
+ x0 a. q) l2 P - ): f+ C; P" k) ?1 L& Y1 x/ a( H
- )
1 W$ C- `3 @ H5 _1 }1 D7 k$ c0 u - (defun NoiLC (ssdt /)* ~. p, f% |' T! ]6 J
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")$ i- Q' P4 v3 R' F$ L8 ?1 X
- )1 ^! e0 c: x' ~8 s! x( y
- (setq
1 P. F5 r2 b. K4 v7 } - tdt (ssget)* ]* t0 {, `! X d: o1 G, g
- sodt (sslength tdt)
8 n9 C: X0 ]# b+ I5 ~$ P - index 0( r! S. F" C% _
- ). r7 p* X: P) q
- (repeat sodt
' A2 O- u" p' V - (setq
# E8 y9 ?9 D1 A - ssdt (ssname tdt index)
7 M+ h% Z0 j, T/ I! e! m - index (1+ index): V8 h6 j( ~( ^" G, L1 D
- )- x( \" d9 t8 _) J
- (if (or (= (Objname ssdt) "LWPOLYLINE")8 L; f, [4 n4 n" V) i# I) e
- (= (Objname ssdt) "POLYLINE")4 D! S0 K( X* ?7 I# `
- )
' E( v; Y. o: P& O - (NoiPL ssdt)
- _' J% a. c1 a9 h/ F' P& F: b1 a - ): \7 [: f* N1 o% C; k
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
% x0 H! l+ @ c+ }7 ~ - (NoiLC ssdt)
5 d& o s- u( u) Z/ ? - )8 w, M6 f' l) w. d
- ). |: C! N( t6 M0 R0 r4 w9 d
- (princ)
0 d8 t5 R7 s: x3 P& w) S$ b - )
6 y e) @7 z* X9 M3 L - % J! `1 G+ A6 w6 E, w; o2 {" B, D
- ;=====================================================================
. h2 E* G! c3 T% |, b - ;;; AREAM.LSP
; [# |9 B! o3 d8 V4 X' S - ;;; Function: Calculates the total area of selected objects, p, X& E4 Y+ Q) N/ o9 G H
- ;;; By Jimmy Bergmark
' i" C8 s, }4 G9 A! Q - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
/ N) e' d+ u4 B - ;;; Tested on AutoCAD 2000
! S9 Q' d! C0 A! ?8 b) S" ]0 N
, l! y m& m* ^ E; N0 V8 A" Q- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)1 T) \! {- Z T8 C
- (defun errexit (s)
8 r. q; E( G) ?9 i2 [) P - (restore)
; Q4 U. N- \; _9 X& K- s1 w7 j - )5 s4 Y: Z& U. t/ _/ f0 F8 `
" A: t5 f T" s$ |% G$ Y1 _- (defun undox ()
% r# m/ I6 ^7 [: r - (command "._undo" "_E")3 r- W0 f; X! I$ {
- (setvar "cmdecho" oldcmdecho)
0 o4 ?+ Y1 |* ~8 ~ - (setq *error* olderr)' X6 A* M: g' l: G! b9 {
- (princ)) {+ W. B: r' i
- )2 U, q8 y6 w2 d
* v3 f% z8 ^. O! J- (setq olderr *error** h; V& U, k" g% ^/ S# x) h y. w3 U
- restore undox/ w& s2 J/ ^+ V) f: m
- *error* errexit
8 E W5 x2 ]9 @, G - )
1 ~' @- n0 e. e - (setq oldcmdecho (getvar "cmdecho"))
3 q* k6 R- |6 B! n+ ~7 ]2 H+ v- [; I - (setvar "cmdecho" 0) O, O/ C# X. j7 l: P9 H" Q
- (command "._UNDO" "_BE")3 o5 _& k1 q$ t
- (if (setq ss1 (ssget '((-4 . "<OR")
0 ?6 i3 X b0 q3 |9 a$ ~7 { - (0 . "POLYLINE")$ ]7 D% s% a% `1 W
- (0 . "LWPOLYLINE")
$ @+ a' O1 y. G V3 p& z! M - (0 . "CIRCLE")
! R1 Y7 _% K/ Y5 o - (0 . "ELLIPSE")9 D/ f/ {/ j: Z( {$ ^ |% P
- (0 . "SPLINE")
8 f3 r. ?, q: H - (0 . "REGION")
0 _4 L( i- C/ m% ^ - (-4 . "OR>")
0 C3 z$ p5 Q2 H5 t0 h - )9 Z2 I) H. |- N; l8 n
- )8 w& [) i$ D! c$ y2 B8 t
- )4 g) A$ Q% `# y7 A! v& L1 W( M2 U
- (progn
3 }* u: ~* @5 `2 p+ _ - (setq nr 0)! n! `) `0 }( d4 L
- (setq tot_area 0.0)
- M8 M* ?7 R0 s* F* w - (setq en (ssname ss1 nr))
* b/ ]8 [4 A! ^ - (while en
* p, Q9 s1 w: T3 R8 c - (command "._area" "_O" en)4 E8 B% n: l% M. Q4 O
- (setq tot_area (+ tot_area (getvar "area")))
* ]' D; c7 a) x+ [" }2 j - (setq nr (1+ nr))$ z8 @* W- c) S$ V
- (setq en (ssname ss1 nr))- ]! ~8 K! E! Z# I1 h7 m& W0 G
- )6 ]+ P! Y& h3 e, H& J7 K
- (princ "\nTotal Area = ")! u+ L, g8 @$ |+ o2 k" S
- (princ tot_area)
* a2 U. e! S3 ` - )
4 `- V* j+ Q& ?6 E - )7 b8 {& v: }* y( e. H7 B
- (restore)3 _9 j- c1 j; e, a/ ?% F
- )
0 F$ V/ H( u! L2 b- b0 A - / G: f; F. b! @8 o$ d
- ;=====================================================================3 M% n$ F0 I! L
- ;;; By Jimmy Bergmark
/ C9 n6 [- Z# z) ~: \9 T( s/ `+ a - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
! j3 a! p: |* D( d( f( X5 H) b - ;;;7 r" A& |/ r- _, c
- ;;; Created: 2008-03-31
0 S6 d2 D$ U! V8 S. F - ;;;2 G' K x- {9 T5 I2 P5 b
- ;;; Convert Attribute definitions to mtext
: t5 }% J' Y r2 s - ;;;; z& m% @9 Q* I5 P/ g
/ @4 q$ U' T6 G4 G- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)* V; {: Y, D8 \5 ^0 o4 J" ]. \/ ^
- (setq eset1 (ssget (list (cons 0 "ATTDEF"))) q/ g$ O6 C) W" B9 a/ [
- blkcnt 0
; h0 W" A! h3 X( Z3 h - )
. P- p+ ] ^8 R: ]* _; p n
J+ T8 E0 v f4 d- (if eset1+ H0 L& b# D: N5 i4 q( f" x
- (while (<= blkcnt (- (sslength eset1) 1))
0 v0 i1 g+ H* \) ]" x1 K - (setq en (ssname eset1 blkcnt)
# ]$ S' ~- O' X) ^3 x4 [' G% h1 w - enlist (entget en)
; d* D) W9 L) Y, ] - ht (cdr (assoc 40 enlist))
3 p, K/ z' o. C; w/ ?$ Z2 f S - pnt (assoc 10 enlist)
7 d- S5 f( G6 O+ C0 z - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt), W% c- h% T% u! `
- space (cdr (assoc 67 enlist)), @- W1 @' m' l% k; O
- )2 o1 D' @( v: `3 M+ }" S8 t/ n0 P
- (setq vl (list
& h L7 \. u$ C! M - (cons 0 "MTEXT")
, @4 g3 z" P7 @2 Z3 U - (cons 100 "AcDbEntity")
+ {+ H2 w6 _6 r - (cons 100 "AcDbMText")% }( k3 m" |7 b& M. p/ v
- (assoc 7 enlist)
3 R; ^ z6 U+ @ ?- e2 f* w8 ? - (assoc 8 enlist)# h' _" e. C2 \! @1 o1 A
- pnt& l' T2 o$ @+ G6 g: | P, c: e
- (assoc 40 enlist)" W! v7 t+ o( H9 Y1 X5 H# r* H
- (cond ((assoc 62 enlist))' B* s p# `6 ^4 [( Y* S7 W
- ((cons 62 256))
) i/ k5 _$ s2 y: X& x8 x c - )
5 l" a! i+ v F& l) w - (cons 1 (cdr (assoc 2 enlist)))
+ d) g. T1 v' t( F - (if (= space nil); d( m% z. A2 }9 J4 A
- (cons 67 0)
' ~3 L3 A5 B1 M% x - (cons 67 space)
# d7 ^. ?* q4 v8 v- ^6 Z - )( k, ?9 G% ^% n8 A N7 l
- )
1 b& W, x( g5 s3 P% r - )
# }, z$ G1 M9 q% H - (entdel en)
* q# m+ L! n, r7 S5 | - (entmake vl)+ n5 H" A2 z$ b$ H$ I! r
- (setq blkcnt (1+ blkcnt))
8 F+ Z# u' I6 V( E5 f - )
; T6 d8 O: L: O- _7 w8 X/ X* u - )1 a5 O- z. d7 ]2 }
- )+ u4 ?; P7 Y; J
- $ a# Y. L7 l1 W. q* L8 ^" t
- ;=====================================================================5 |6 R! m4 Y+ l3 W; i
- / S9 G9 z- q0 s- T! z# ^6 Z
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
2 [- [4 A$ O! E) N4 r) d$ k/ y - ; Khoi dau cua chuong trinh) [) K' L6 z, A, E% }/ R+ @
- (princ "\nCopy Inteligent...\n")+ f+ R8 d/ D+ O$ T8 z
- (setq luuecho (getvar "cmdecho")& L8 W7 d3 G: L0 |! V& X/ ?. f
- luu *error*
: Q: F* W5 Q# Z- e; l& [ - *error* ketthuc
! w1 I$ ^. F$ `3 T5 r C) T - cumdt (ssget)
- A4 K% e7 u* i( h# u7 ]/ u - dodai (sslength cumdt)
4 z3 y9 B8 D$ G7 U - goc (getpoint "\nSelect base point:")
" o+ o' v; A7 {% ~ - thoat nil
, X" x# f2 X! f7 N - dem 0
: K% k2 x1 Q# [4 }' y - textxl nil
# B6 x- Y) N1 i4 W6 W - );; t9 [4 Y9 o) c
- (setvar "cmdecho" 0)
7 Z; z- m# N/ H) h2 d/ n- ` - ; Loc ra duoc ong text de xu ly
1 W8 _+ P6 E! _5 y; C8 d - (while (and (= thoat nil)
4 f& f! r0 V; N7 _6 _3 _ - (< dem dodai)9 ~: M, j0 D, u5 D4 A! U
- ), C# T& G- {- s- K( J# h8 A
- (setq ten (ssname cumdt dem)
1 s9 v9 u( G* [# L" G8 Z& u - dem (1+ dem)
v4 Z# `: h' k+ p- Q% @* ] - doituong (entget ten)
/ w4 G/ t8 D1 C, ] - kieu (cdr (assoc 0 doituong))
9 E: q/ n- N: o+ W - )
: k" N8 a1 c( o- D4 }6 b6 h, d - 3 `% v% Q% Z2 [8 `
- (if (or (= kieu "TEXT")
. n7 \$ h Z( v7 k4 d% a - (= kieu "MTEXT") - u4 B2 y1 ?8 Y/ U7 g, ^
- )4 o& m, V' D0 J7 n0 o3 s/ O
- (setq thoat T
! ]' ~$ q! Z& I" t$ O9 B) P - textxl (cdr (assoc 1 doituong))
! \1 t: ~, r1 I7 K: ^0 ^ - ). o9 J, q9 M! C. B
- )
3 H" D% g: k; h - );, A; A: Q. g) D2 Q. c
- (while T + x: u* E: N* {6 J
- (setq toi (getpoint "\nSelect next point: " goc)
' H/ S* D7 M4 B* C$ [- z - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))# P8 N! ?5 s: Z1 h/ D
- dem 0
! A6 R( [1 G& B) U% e. E$ [8 C - )* S- Y' ] M% z2 B, M6 ?: R
- (while (< dem dodai)
; [/ |4 M9 o' y! _" p - (setq ten (ssname cumdt dem)
: `" G; ~- w+ p2 Y - dem (1+ dem)
" y4 A; z3 C+ S( ?3 `* T( v - doituong (entget ten)
' r! n! H+ {* j, I, _ - kieu (cdr (assoc 0 doituong))
. r7 ^9 w6 s2 I8 c# I2 y - )/ s7 [. |( e$ U+ ]
; Y# j# t. N4 R; ]- (if (or (= kieu "TEXT")
- j1 E. A$ J8 E, h# ^ - (= kieu "MTEXT")
, C; ]: o2 E+ w# I4 \! w* ? - ) F9 O- K5 d7 J A
- (doitext ten)
U+ a$ D" l* ?0 n' | - (copy_dt ten)" @) \# K5 Q' n, S' E; X
- ! ]5 A, Z! i0 y5 L5 ^5 L' Z& [
- );if U7 g- V) A; x7 n
- )* l: q) i' R6 E j8 n9 v/ g
- );while
9 K% @) e& l1 B% S& U - (ketthuc)
3 W$ Z/ r1 @; w0 e, M$ p, k - );defun
+ L5 }$ ]. c& w9 H) a5 ] - (princ)
3 l$ h6 r( ^' K! Q - ' ~: W, ?- I; C, F0 [; y
- ;===================================================================== {: T) T9 l4 `; b. r
- ;;; By Jimmy Bergmark. @# \, o/ {% b9 q
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved1 o- T+ A% s! h0 o6 E
- ;;;% ^1 v6 o6 {/ x4 _% y9 H1 o6 g: p
- ;;; Created: 2008-03-31
, H x! V) G: d/ z - ;;;1 e T- U+ w% J( R! }
- ;;; Convert Attribute definitions to text4 N, l A) b p3 ~6 `
- ;;;
; {4 o" a$ Z# u* O8 z& ?* | W - $ }( u$ i1 A( b( N, w: L' E3 S
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
0 [* H+ |3 E% [5 O - (setq eset1 (ssget (list (cons 0 "ATTDEF")))4 p* d2 L; D3 r% e$ O6 Q6 G9 ^+ z
- blkcnt 0
- @7 _0 C0 g( K) J - )* o% [( W6 M# I: t. X2 ?9 L' p
1 w" s4 a9 e3 p0 i+ R, ^- (if eset1
3 `( ]! E$ \# Y% O - (while (<= blkcnt (- (sslength eset1) 1))' S: Q% M O9 R1 B& V# [; b( I8 y
- (setq en (ssname eset1 blkcnt)
& s( B8 J( E# \( l - enlist (entget en)
) L: g9 k. w& L* z - space (cdr (assoc 67 enlist)), t& W, r) ?9 q) L. |$ _+ S
- )
- J. [1 F* ~( E! W' ^$ Z+ Y3 [7 E - (setq vl (list
5 [& c C# F& c! b( w7 _- F - (cons 0 "TEXT")
$ l$ {1 f2 r* J- K - (cons 100 "AcDbEntity")
* U$ u* N" K+ N - (cons 100 "AcDbText")
7 a5 Z! \2 u8 O# q$ z - (assoc 7 enlist)
" x5 R" Z, |9 [& B, Y* [; _8 u( [ - (assoc 8 enlist)
& {$ I9 E. t2 M9 l: w9 J - (assoc 10 enlist); F8 w8 v; S- c) m, D
- (assoc 40 enlist)
+ z9 N2 L1 F7 H1 I' A0 r% D$ Z - (cond ((assoc 62 enlist))
% W- d+ A5 T& w5 z, g% ` - ((cons 62 256))
4 ]. h: y* ]' `3 O- B/ z - )
7 M' Y1 `7 ]8 o1 _ - (cons 1 (cdr (assoc 2 enlist)))0 h* ^ B1 m+ {
- (if (= space nil)6 x3 r3 y9 C. f2 J1 L
- (cons 67 0)
) F- m% s0 f8 c - (cons 67 space)7 W- V' {1 G$ b$ H- D
- )
' d0 r0 @5 R1 B& H - )3 _$ D$ B8 @# E9 y
- )
: x5 l Z8 E& g! K0 N: o5 C2 f - (entdel en)/ ~ s+ _. U* w' u, b% n
- (entmake vl)2 ]+ X5 `0 }$ @7 ~% Y% m4 [9 N# |
- (setq blkcnt (1+ blkcnt))
- D v2 p- H( R/ c+ N - )# }0 ~# b- C8 w% l: l b8 Z f4 i& v
- )
! Y( w# B; u+ M1 V9 g* K2 ?6 u! k! U - )
- M/ U+ u1 a% T3 b, ? - ;=====================================================================
- j. ^! f; C, w2 f# i( H, q - ;============================ Doi Truc ===============================' M7 K/ G7 T$ N* o6 l: X! ?
- ;=====================================================================
' T' k' q* Y+ g) L5 B( L - " O- ]/ q9 v2 y/ A- G8 l
- ;=====================================================================6 F$ z: X4 S O3 Y/ B$ U) S& q
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
' q' W- v9 u1 G# t# G - ;=====================================================================
b7 a( r2 Z: G$ ~* k - (defun c:ga1 ()
7 x' a+ C3 G) W$ V, u - (setq a (getpoint "\nChon diem: "))8 C8 R( v# N; l- t( a5 ^
- (setq b (getpoint a"\nChon diem: "))
9 j5 ~8 |0 i6 R# W/ {, n: M4 a - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( p+ q v, r: D - (command ".circle" c a)5 b( m8 }/ I8 p& I
- (command ".line" a c ""). Y* S7 B9 ~2 i2 u, N
- (command ".array" "last" "" "p" c "1" "" "")
. b4 `2 ^5 E" j3 W/ m# i - (princ)), `& B9 T7 A U$ P3 W
- 7 J7 M" j9 E' z- Q2 b; U
- (defun c:ga3 ()
; }9 d0 e7 `6 L0 {9 [ - (setq a (getpoint "\nChon diem: "))
3 j% l8 L) A9 s4 b) x! y8 g - (setq b (getpoint a"\nChon diem: "))7 i, o" d) ?) m; x
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))6 o8 l1 `6 _9 s: U1 Z* r4 A
- (command ".circle" c a)
: y4 d* @; V0 G1 Z3 R; s* u9 A; U - (command ".line" a c "")4 O+ }# g" G/ g0 V9 P8 Q c2 F4 ?
- (command ".array" "last" "" "p" c "3" "" "")
8 A% x; X, @; m7 s - (princ)): ]2 h4 X3 T x/ u' j- b
$ F( l5 }, v8 U4 L- (defun c:ga5 ()! c: b) x( q0 S+ [' p
- (setq a (getpoint "\nChon diem: "))
" v1 m3 q& m1 | - (setq b (getpoint a"\nChon diem: "))
( W% N+ ^9 L* w( O# s& `& S# q. a - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 n) {, `$ I" a - (command ".circle" c a)
0 R0 x1 b$ F8 r9 V7 j0 n5 ]8 M5 @ - (command ".line" a c "")9 K z* J( W/ L% {0 t4 L
- (command ".array" "last" "" "p" c "5" "" "")& z2 [ [/ l5 A5 G3 n _
- (princ))" `" }7 k/ f4 i1 z
# @7 p& D7 _, D o4 s- (defun c:ga7 ()4 [2 @! n( }$ {+ ]
- (setq a (getpoint "\nChon diem: "))
7 K) P# x) o) j! x, M$ N1 B - (setq b (getpoint a"\nChon diem: "))3 a) W3 G. C8 W( h
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 m, k+ X& N8 E$ V7 w8 V
- (command ".circle" c a)" E1 k) t& K0 {5 L0 q
- (command ".line" a c "")) P; }( n$ O; g1 }# O; E
- (command ".array" "last" "" "p" c "7" "" "")
3 ?* f( Y2 H. J# `6 g - (princ))
6 W6 j" g2 P. t# u6 ? - / ]1 R3 _9 p2 T% c0 W/ l/ X+ h
- (defun c:ga9 ()$ l2 E! ~4 k9 s9 S$ d- h& T% {# E
- (setq a (getpoint "\nChon diem: "))( J; j/ ~3 j' z, [6 ^( c- L
- (setq b (getpoint a"\nChon diem: "))! z" R* c: l" |
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
}# G! [( {" u; L4 |9 a, y* B6 \ - (command ".circle" c a)
( G, W I; M3 j. A) n - (command ".line" a c "")" r$ Q m; _2 w0 c; T4 U
- (command ".array" "last" "" "p" c "9" "" "")
$ R! Q1 k1 y7 ?) j - (princ))* e4 P0 |$ o- b- ?5 @4 f! X
- 2 n; [9 Q# ?6 j( E
- (defun c:ga11 ()
s' o! V- z% z; w* ] - (setq a (getpoint "\nChon diem: "))
! ]# l0 a+ c% x! L, P; q* c - (setq b (getpoint a"\nChon diem: "))% A$ w; Z% q* O; u: |
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
* R& R! V. R/ B, I4 X9 o - (command ".circle" c a)7 a$ F7 l$ ]2 M& K5 d; K+ N5 ]3 |
- (command ".line" a c "")5 B4 `- F) a" t4 n1 `# \& B( A2 \
- (command ".array" "last" "" "p" c "11" "" ""); f( H1 y7 D) Z) @( p
- (princ))
* s( R9 O0 E: l5 D7 s9 @ - $ F' _ @# D9 s8 |
- (defun c:ga13 ()
% }! e' [: {# Z7 `8 |8 O) ]1 c+ \ - (setq a (getpoint "\nChon diem: "))
! z6 B2 x" j) N8 C* S Y5 g T - (setq b (getpoint a"\nChon diem: "))
; B4 A7 h! J6 W) f A - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 P h$ l$ a7 _
- (command ".circle" c a)% j2 X, R* t% I/ a. {2 q( B
- (command ".line" a c "")
1 l: r1 A0 q2 T - (command ".array" "last" "" "p" c "13" "" "")
, G9 R& s! S1 e9 A/ \) y - (princ))
) u' H: P+ E8 D, I
% u+ N8 i& x* z" E/ B+ M- (defun c:ga15 ()
" [. Q$ t% k0 f9 k" q0 Y - (setq a (getpoint "\nChon diem: "))) N, }. B$ F* f i& l
- (setq b (getpoint a"\nChon diem: "))
5 T0 t( T% r7 p* Z3 T - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 d% \) K& z" d6 ^4 t - (command ".circle" c a)
8 g/ A! b" u# V# H6 a1 L - (command ".line" a c "")
/ j9 ]8 N; d& n* F: y5 `5 i" P# D2 ` - (command ".array" "last" "" "p" c "15" "" ""): j% ~6 D* P: V# q/ H/ `
- (princ))
: J8 N! i. H: P( _$ C" R( r0 N( a - , K/ n4 p! s" R; C* g8 D7 V
- (defun c:ga17 ()
- G g! e0 x: \& n7 H/ s - (setq a (getpoint "\nChon diem: "))
2 `4 s8 C4 p4 t+ V& ~0 y! C9 Y2 e - (setq b (getpoint a"\nChon diem: "))7 `' B1 P3 I" v6 H2 N) o( M) g! ~0 V! e
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& k! }" r; @3 j' g) v9 _
- (command ".circle" c a)! A! f5 x6 ?! ?' N# j
- (command ".line" a c "")/ V5 |% X; \, z% }
- (command ".array" "last" "" "p" c "17" "" "")
& t6 c. a4 b4 Y8 r: Y# x" A% v" g" A - (princ))
) e% i% [3 R; m* @
) G0 O0 U8 l0 h* F- (defun c:ga19 ()
% }, ~5 c5 W8 n4 ^7 e* V) k0 t5 [6 ] - (setq a (getpoint "\nChon diem: "))! U: M/ }- ]* K
- (setq b (getpoint a"\nChon diem: "))0 q; B% I' h, _
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
! T# \0 H" T4 R - (command ".circle" c a)
* i i/ n; t+ Q' t% ?) e0 o - (command ".line" a c "")
Q# Y. n% R& M m - (command ".array" "last" "" "p" c "19" "" "")
& b; w" P: E( U2 s! M( @4 D! Q - (princ)) F v. j! A* p0 \4 A; b( }
- " e' O% [7 z+ _7 l
- ;=====================================================================
. B5 ?" Y& \/ Y) I5 \ - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============" a" m; C6 O; P& W. b8 `
- ;=====================================================================
# H& X4 t7 d3 c; h& N: X$ | - (defun c:ga2 ()
~- ?* s' x) I6 G Q) |9 P6 R$ {2 c - (setq a (getpoint "\nChon diem: "))
# a! E5 ?; U. j) }7 s: u - (setq b (getpoint a"\nChon diem: "))
( o6 c4 I. ]) E, `2 n - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): a. m2 ]3 P! I7 m
- (command ".line" a c "")- {1 [. n& {) y9 U
- (command ".array" "last" "" "p" c "2" "" ""); `, ^" o2 C4 K _& _8 z
- (command ".circle" c a)2 f0 S' g$ M1 Z5 f G
- (princ))
/ C K# X9 T+ b8 e( U
7 l6 x1 X; M5 d3 A3 }- (defun c:ga4 ()
( P9 B' @) T8 m& A' Z2 g8 p" a$ r' `7 Q - (setq a (getpoint "\nChon diem: "))
1 w. Z- |) W: B' G& d - (setq b (getpoint a"\nChon diem: "))
* W; {$ y+ i, E9 d+ ~5 M4 H/ e% ]: p - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))8 D% C2 Z; c7 R# u
- (command ".line" a c "")
7 M1 H' e* f+ b3 o$ D) C: p. B - (command ".array" "last" "" "p" c "4" "" "")4 m9 h; }% {/ p& l& ^1 { P( j# G" m
- (command ".circle" c a), v! b" R3 n7 l$ ~) `
- (princ))% Y2 `9 \& u8 N8 m
- - h' n. F/ c; K% ?, a& y- g
- (defun c:ga6 ()
# ]) @+ R$ M& b" s; l5 G - (setq a (getpoint "\nChon diem: ")): W% ]$ l1 d: Z# g5 x6 g4 W- f' {* B
- (setq b (getpoint a"\nChon diem: "))
' T: ^( g7 u6 M8 }+ O* N - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ y0 [, X* b1 F1 v - (command ".line" a c "")
2 h2 l, G* j1 N+ c7 Z - (command ".array" "last" "" "p" c "6" "" "")
2 E* W$ b: k- v) Y) M: b, p - (command ".circle" c a)/ ]+ ?9 B& d6 k% l9 H
- (princ))
4 o5 e/ f8 e. f; @& m; |$ ^8 D: L - % p0 ~- ^3 F1 A$ U5 g7 |
- (defun c:ga8 ()7 }6 y# Q8 [' W1 K" |: v% G
- (setq a (getpoint "\nChon diem: "))
! ^* a* F" z$ V/ h8 y; V5 ]4 _ - (setq b (getpoint a"\nChon diem: "))
3 R$ M6 H8 K& o* ?" [5 r& @( B - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 y- e& x* k( z) v9 a+ W4 P - (command ".line" a c "")
p' }8 I9 z0 Q5 m% r) G( L - (command ".array" "last" "" "p" c "8" "" "")
% B( Y* q! o6 W( Y - (command ".circle" c a)5 Q* G5 J6 q4 ~0 x0 D2 H0 Q8 L- u' m
- (princ))
8 Z: a8 p }' k) w
2 Q! a8 u& J: q9 `/ w+ x; g% K& J" q2 ~- (defun c:ga10 ()% V L/ y: W3 [, t9 c
- (setq a (getpoint "\nChon diem: "))9 O0 g3 Y6 k+ F8 X
- (setq b (getpoint a"\nChon diem: ")); ?' E. r0 I# y& c; T5 S% j X
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). ]4 G2 M. T- v4 m. g) l- d' b1 _
- (command ".line" a c "")! \$ f% |* H* Z$ O# f# e
- (command ".array" "last" "" "p" c "10" "" "")
+ n* l4 K+ }4 V8 |3 `' R% X6 E - (command ".circle" c a)
1 J- B; q2 B4 N7 a - (princ))
( L( f6 f: \% Q: y' ]5 @ - % X* k7 b2 _% e$ d7 t8 M$ K9 e [
- (defun c:ga12 ()
4 D! |& ^$ z# _, d: h5 D7 h: z - (setq a (getpoint "\nChon diem: "))
4 d0 C$ B+ Q& U0 O6 E% ? - (setq b (getpoint a"\nChon diem: "))$ m# t; u8 S% x3 @5 w* K5 X4 J/ T6 D
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# f; C' p! T$ a* g% u - (command ".line" a c "")
, } Q6 V, u% v6 ^7 O# W1 f' ~ - (command ".array" "last" "" "p" c "12" "" "") W2 K8 g$ N3 g; X
- (command ".circle" c a)
, {2 o9 q0 w8 r. \1 d$ r - (princ))
& _4 X4 T! y! Z, z
# G4 t# j6 c( [& w @# F- (defun c:ga14 (): l$ k7 k# O( {, O
- (setq a (getpoint "\nChon diem: "))
D; m* r; h; O6 c$ T - (setq b (getpoint a"\nChon diem: "))
1 B2 z6 X% R) q1 h+ r, t$ T - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ E' F" [' V7 A% M$ x3 v1 _ - (command ".line" a c "")
; A8 o. m4 T/ O: B - (command ".array" "last" "" "p" c "14" "" "")* U" k) h' D! R& A/ ?5 D: I
- (command ".circle" c a)8 Q/ U) Z$ L$ m4 n) ^5 j& R
- (princ))2 v/ I e: @0 G3 b* y
- , w4 U# H: ?0 y7 c$ A4 l. \# r
- (defun c:ga16 ()0 U& T# q! b* f' U0 G Q
- (setq a (getpoint "\nChon diem: ")); i2 D) c! n1 d5 K0 d, I; L
- (setq b (getpoint a"\nChon diem: "))! R, Z) I ]- F$ S
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
) Z& U1 B1 \& m/ H3 c. O - (command ".line" a c "")
2 |/ ~% ]' D4 ?9 ~ P$ h7 k - (command ".array" "last" "" "p" c "16" "" "")8 d7 z3 y5 I7 s$ s0 s+ P4 |( z
- (command ".circle" c a)
) q0 |) F4 c' N - (princ))
g9 ~" o: r. t - 1 ^% ]; q9 |' O* K" U! ^1 [, D
- (defun c:ga18 ()6 G! N& z$ N3 \( t1 A2 R4 i
- (setq a (getpoint "\nChon diem: ")): K. B: U; i* B+ l* }" }
- (setq b (getpoint a"\nChon diem: "))
; l4 U( _2 ~( _ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 F& P6 _3 }- e; c4 H
- (command ".line" a c "")" d; ^+ L" y4 O1 V$ s
- (command ".array" "last" "" "p" c "18" "" "")' R( H, \, `' O7 a- ^
- (command ".circle" c a)9 Q! i, H2 {: U# _9 H, f; h
- (princ))
; V& `( c4 X0 L2 u; Y
3 ]! n" X) r1 P, j1 \- (defun c:ga20 ()6 D8 M/ C$ ?8 y; e% i& D' y6 `$ }
- (setq a (getpoint "\nChon diem: "))
: u4 g: r$ c$ i( u - (setq b (getpoint a"\nChon diem: "))6 }- v: v( G7 O
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ Y, w6 l4 M% i7 S5 l/ d/ E1 @ - (command ".line" a c "")3 X9 `3 X) Z+ o+ D. _+ h7 B/ M% m, w
- (command ".array" "last" "" "p" c "20" "" "")8 U3 `. U' G2 I
- (command ".circle" c a)
) M) ] G& K Y! n2 F8 s - (princ))
4 H' y8 z$ H+ \; @0 X
G; i. \, _5 Z7 ?0 W* C- r- ;=====================================================================
% h$ u9 G3 G: ~3 M% ]1 d9 k2 }. k0 A - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============7 A2 L4 i8 ~# P2 Q o
- ;========================== 06-11-2016 ~ 18h00 =======================
6 {# m) Z, K, i; e7 ~( G8 P - ;=====================================================================7 W/ L, n; r% w
- (defun c:ga (); r& g: `' p: J/ g1 l* e
- (setq a (getpoint "\nChon diem: "))
# E% |5 y" }8 H) g* i' m* ~& H& ~ - (setq b (getpoint a"\nChon diem: "))' E7 a% j, T# f2 u
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 U5 f2 D3 L- G9 V - (command ".circle" c a)
; E: c0 N! K# R) ? - (command ".line" a c "")
+ C/ d. V, x# e9 |6 d - (command ".array" "last" "" "p" c "NUM" "" "")8 h1 w8 D# h( h% R
- (princ))5 C* M+ g2 l2 d$ w$ A3 a C# e' T V
. [% A0 s( _% i0 E- ;=====================================================================
0 M. u: I/ h5 k - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
5 d a4 ^) J/ k$ u; Q - ;========================== 06-11-2016 ~ 18h40 =======================
* C" l: p; \/ x" Z - ;=====================================================================3 Z/ U1 x. n6 |- Y4 P- U t- b
- 5 c$ ]* p, _! O. ?. c
- (defun c:hoathi ()
! Z( k! c9 ]$ E3 q4 X3 ` - (setq a (getpoint "\nChon diem: "))
$ Z; V, ?5 o9 z2 \) X" V1 d - (setq b (getpoint a"\nChon diem: "))" _% k" ~7 E* C. ~7 l& q% f8 W+ u
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ m& B$ \( H+ I' ] - (command ".line" a c "")& U0 s+ o5 ^ i7 v u: M
- (command ".array" "last" "" "p" c "NUM" "" "")7 h( H8 @' }' S# k9 [. a: r3 g
- (princ))" P4 @' u3 u T* i7 w3 y: J- n" [
- 3 W/ b, ?7 u6 E+ Q4 P# k+ n
- ;=====================================================================
) F5 ~. ~. D6 X: y* M# t - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ============== C% Y8 w4 f" `$ ?$ O
- ;========================== 03-11-2024 ~ 19h33 =======================
6 ~, ]- h1 L& ^ - ;=====================================================================) Q! S0 N$ {% W% K: ~8 E: V( K
- : |" v, E! E' M- b) n. x w4 b6 }
- (defun c:cung ()
7 t; }& S1 I3 x: c; S s - (setq a (getpoint "\nChon diem: "))
' }5 g& n l5 }) F6 e# ^ d - (setq b (getpoint a"\nChon diem: ")); i1 J+ Y4 n' n
- (setq c (getpoint a"\nChon diem: "))
( E; B; Z* r6 p2 n4 j - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( a4 x5 |& }. q2 L( Z" V. ~
- (command ".arc" a b c "")
8 x( d1 H* {) G7 ]$ G - (command ".array" "last" "" "p" c "NUM" "" "")9 |5 \4 Z; M( Q" W% R8 c; t6 l6 e
- (princ))
% x. e/ U1 D7 w2 n- N' L - " k! o8 I/ i# Z/ \' c6 `1 F q
- ;=====================================================================
( R: }; N ~/ l* J" f - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
5 T7 V* z' Z; C& c2 b - ;========================== 03-11-2024 ~ 20h02 =======================( b: f8 ~, H6 Y9 {) a
- ;===================================================================== F" @% S, A$ l) {! |
- . {( J# f) I+ S' Z* g
- (defun c:hecloic ()
" U" `, J. R8 u& \/ S* ~# X. c% ^ - (setq a (getpoint "\nChon diem: "))
* f' V1 e" U4 e& n6 {2 z+ H - (setq b (getpoint a"\nChon diem: multi "))
2 J7 ~6 T/ P* h0 ^# I - (setq c (getpoint a"\nChon diem: "))(princ)" \! E2 S9 `9 m9 Y
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. s) {% a# g1 N" `* [ - (command ".arc" a b c ""): M: W) k9 [/ o7 I+ t
- (command ".array" "last" "" "p" c "NUM" "" "")& Q/ Y5 f; I# D3 F# U ]
- (princ)), g' s- i3 @7 h( ], C3 z" C" w
! w* \$ Q: _4 a/ l% S- ;=====================================================================
' ^" H, n+ ?# y1 v: J - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============0 k- a! \% A Y$ b9 I
- ;========================== 03-11-2024 ~ 19h38 =======================# K! X* c8 ?7 m/ M
- ;=====================================================================9 c; ~1 ^9 T2 E: m) x; k0 @
- G+ a7 L, H4 \3 p) K
- (defun c:gay ()
; i8 \( \# D ~/ Y( ~4 l0 ` - (setq a (getpoint "\nChon diem: "))3 {3 s" C. ]! N. n A, d
- (setq b (getpoint a"\nChon diem: "))
" W' m2 N* t0 _5 o( Y' f - (setq c (getpoint a"\nChon diem: "))(princ)
3 t" H" h# K2 H3 O; T1 N - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): G% E( M: _, d" }9 z. r
- (command ".pline" a b c "")4 e( T7 b# B! _- u C
- (command ".array" "last" "" "p" c "NUM" "" "")& ^6 S/ C, B' t8 n
- (princ))
0 [- u { k2 _- W7 T
; N5 u$ i; l7 R: d( ~% X0 h- ;=====================================================================* }0 a2 I1 w" g$ U4 n2 p& {
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
8 O5 y- I: ?! J4 Z% N! d - ;========================== 03-11-2024 ~ 20h02 =======================- X1 q, l4 P3 j w5 G3 s8 A6 u5 _4 @+ h
- ;=====================================================================
1 i, z8 K" r4 V4 |2 c
- C, Z1 s5 u+ S- (defun c:hecloit (); g8 n5 v9 i- n [+ U
- (setq a (getpoint "\nChon diem: "))
: ] h/ K H* H - (setq b (getpoint a"\nChon diem: multi "))
* t7 a* S% b$ P( S - (setq c (getpoint a"\nChon diem: "))(princ)
! b9 B0 {$ R8 _5 P - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 F" u& ?. r' U; @* K4 z# n - (command ".pline" a b c "")
0 f- A9 }! P' A1 S0 p8 t% ` - (command ".array" "last" "" "p" c "NUM" "" "")0 q, E! c. j3 P9 {
- (princ))
: _# X% w6 B8 x- M3 l - $ i9 n/ z6 g2 L4 p& O8 }* _
- 9 T4 o, S: X9 a1 }( x$ s5 ]; [; o
- ;;; ============================ Merge Hatch =============================8 u" ^0 J: J" G* a/ w1 u
. N% F: P- J7 v# C1 P$ U; N9 n& U* a- (defun c:mh (/ ss entht sl i dt dtht)
- ?( N; @6 T6 g6 n. ?
8 l% q I- e% P6 ~" w8 e2 y: c- (princ "\nMerge Hatch - free lisp from CADViet.com")
0 d7 j$ g5 t1 B( U2 j8 p2 j
: V# J2 R* @1 w* V/ x- (setq
1 V& Q8 J, M9 U& r: [6 b" } - ss (ssget '((0 . "HATCH")))
3 c" o+ M4 Q6 O4 l$ f5 b - sl (if ss4 W! T2 S+ P2 c
- (sslength ss)% H9 R# b# H# Q8 z
- 0
O: u/ v+ a9 E2 T! v# ^ - )5 I* F p8 p" T+ V8 X
- i 04 e! P6 p- Y2 t# z* n
- l 08 y7 H7 S; Z* u8 E3 ~
- )+ F8 U& H, M" ]$ F. q
- , L3 i' _# q2 p! y
- (repeat sl& p6 Z1 h$ T! Q
- (setq" K7 W" \! Q6 E; Z' u+ d+ R
- entht (ssname ss i)( Y2 f; ^( \) q* M) f# W o- v$ I
- dtht (getbdata entht)( G( L% p6 e- O/ H& H+ i2 X- f
- dt (append dt dtht)
L9 B3 K/ E; z7 U - l (+ l (cdr (assoc 91 (entget entht))))
5 ?5 ^2 ?% n' n8 d - i (1+ i)
$ i7 _- D3 n9 g2 t - )
4 ^/ Q* U% k0 H) }) n - )
; D' M% \: t3 o; \+ j' y
' t% I( V/ G) |$ T. l4 g! V5 A- (setq ent (ssname ss 0)) D1 P. ?+ A: L/ l1 g0 |
- ss (ssdel ent ss)5 x' w) L8 ~7 X$ a5 m6 x; A4 B
- tt (entget ent)
0 s' H; [, A8 l; K' X$ H4 V - duoi (member (assoc 75 tt) tt)
% S- a! Y% \* ~+ u* D; u - dau (reverse (member (assoc 91 tt) (reverse tt)))
6 n3 E" ]) S: ^5 m9 D" A - tt (append dau dt duoi)2 s: O" J8 h. K2 R" X0 l2 g) W9 O2 f
- tt (subst (cons 91 l) (assoc 91 tt) tt)1 A9 v+ o4 `( g$ |( s
- )
7 m( l! z6 i" z) z" \/ ? - (entmod tt)
, x$ s( k$ b9 U* n4 h, o) H - y- r; ]% } ?- Y' D- N
- (command ".erase" ss "")
; @% z: S" }% Y' k" C - (princ)$ J& z: ]: l0 z5 [
- )
3 \: t) f9 [, T
8 w9 b. g* o+ P; W# {- (defun getbdata (ent)9 G, w4 P+ C) Z0 O4 v
- (setq tt (entget ent)) q- m4 `: Y7 M8 t" ]! L
- tt (cdr (member (assoc 75 tt) (reverse tt)))+ C p0 a3 [. G8 q. h* @+ V
- tt (cdr (member (assoc 91 tt) (reverse tt)))
' [' ]" ?, [+ k! a- ~ K - )
" o9 D8 e- A% Y. L6 e6 V! E7 h0 d - )
2 I k N8 I4 }% o5 B) T
( n+ M" q; Z* k _- n% \! w) M
7 S6 [) N: O0 @2 j# w" c- (princ)
w$ c. n; f1 }' H* e; t+ P
- Q2 V3 e3 L9 Q- ;;; =========================== CAC LENH LAYER ==============================
5 q0 j5 E6 U* X! [& [+ ` - ;;; =========================== Layer hien hanh =============================; P) {4 k6 P5 ^8 t% q
- ; r8 A2 @2 R. I; e
- (defun layset (/ LAY) (setvar "cmdecho" 0)% G8 ^5 [5 M' _: T% a/ r
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
7 _7 m* e2 c& }6 P9 q - (if LAY (progn
7 x# e8 y! d) x9 ` - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
/ O; @8 J( G5 P+ h G6 a+ z" O" f, Y - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
' n: ^! L: Q/ P4 M - (progn- ]7 o& b4 _1 R& t* S0 h% w0 ]
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
, @: m; v; {- V5 }/ z - (progn
0 Y: M7 ]3 j3 }$ s0 y - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) ) L! C0 \& ^' b: ]* \9 ]
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))
3 ~9 ?8 a N4 _. V0 A9 p2 c
& ~6 P2 @3 @5 Z2 Z) O( u- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================4 X3 Z: [( ?4 ?: ]3 Q/ r
* p, {# a5 k. T) _5 s Z- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
8 }/ q( m* K; J* |: n5 F6 m - (if (not (setq SS (ssget "i")))
2 n* j& y; c3 H* x3 n% P - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")1 F! b3 q! T/ r4 U7 Z' ]
- (setq SS (ssget)) ) )0 v" p6 \, w" W5 F0 U
- (if SS (progn
- n. W" ?; f# [0 Q3 X% S# m S - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "")
3 d1 g- n# {! ^& l. V7 E* Q - (if (> (getvar "cmdactive") 0) , I* N3 c. {& I! ^9 m. c
- (progn1 G: ?) k* D3 u0 @
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
3 `& } \ D) i5 j* [8 h - (setq SS nil) ) (if (> CNT 0)
: M: j9 `6 r1 i- X" } - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
5 q2 B+ p0 c% f# _! c& d - (if SS (progn
4 {) j2 t9 s* T6 Z: c) I0 h - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")& `/ y2 |! ]. r7 i: Q7 H$ g
- (if (= (sslength SS) 1)- s; g# d9 a: h: V
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))2 {# d! K* d! a# R- Z
- (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
, B4 |7 E/ E7 n% F) S3 c - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))$ u4 \7 y4 Y* v+ F# Q0 X8 l# U
- 6 s- `' c0 m4 i) q8 _
- ;;; =========================== Layer Iso ===================================
* o. \" v- h$ O" ~9 w+ U - " W5 Z$ Y8 s. {1 z0 M: [8 a
- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)# w A) R0 g" W3 N+ m4 x
- (if (not (setq SS (ssget "i"))) (progn
1 D0 W4 S6 }7 ~: r - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")) u9 j! u/ b8 v; _" t
- (setq SS (ssget)) ) )
6 L, }% y' \& g( C - (if SS (progn (setq CNT 0); Y4 X* H. O7 v& m" v
- (while (setq LAY (ssname SS CNT))1 q! \0 b& ^0 q5 @1 z' i F
- (setq LAY (cdr (assoc 8 (entget LAY))))
4 \5 j7 r; e& H- J% r - (if (not (member LAY LAYLST))
3 S+ ^" N( _* H( } - (setq LAYLST (cons LAY LAYLST)) )8 J% s- ` D& _& |" z) Y
- (setq CNT (1+ CNT)) ): ^3 O% }3 [0 {4 v9 ]
- (if (member (getvar "CLAYER") LAYLST)
" a1 h" s+ S1 ]) k - (setq LAY (getvar "CLAYER"))$ h1 ~/ q* }6 l; P8 W
- (setvar "CLAYER" (setq LAY (last LAYLST))) )
; I* W. O; i2 o/ }' }. f" Z - (command "_.LAYER" "_OFF" "*" "_Y")
$ w' Q( G) x% e1 a) y) \, G - (foreach VAL LAYLST (command "_ON" VAL))
n0 N' Q0 N% \- }3 j - (command "") (if (= (length LAYLST) 1)
7 w Y v: c* M% t( F6 f4 b1 Q - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
* N+ ?6 W6 J( l: R - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "1 }9 Y8 @1 B' S
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
' [+ F# L1 O$ _: k - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))1 @( G& N( `7 r, ]- F/ L6 [
9 P0 Y/ H6 R0 K" M4 j% ? Q- ;;; ========================= Layer Match ==================================
0 M! J' p* `5 \; g
- p2 J4 w2 a3 W% T, T6 k- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
6 c) [. ]5 u0 f2 ] - (setvar "cmdecho" 0)
: o' I/ d& z7 D% } - (if (not (setq SS (ssget "i"))) (progn
1 I) C9 X7 C# @+ e5 C7 U: ? - (prompt "\nChon doi tuong muon thay doi Layer : ")
: M% B* b4 [ C6 d - (setq SS (ssget)) ) )
$ ]7 k: z! {3 ^0 G# J1 `; D - (if SS (progn
6 ?. J( m( v0 j; {5 @ - (setq CNT (sslength SS))1 _9 {6 [5 r; e( ^. G2 S( V# ~: G
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") 1 b u$ E, [& A" H+ W* s" _# N8 W, ]3 m4 c
- (if (> (getvar "cmdactive") 0) (progn/ h( P9 B$ ]- E. R' g; H
- (command "0,0" "0,0") (setq SS (ssget "p")* M- c, c2 H. i- b* B* G/ r- }- N1 ~
- CNT (- CNT (sslength SS)) ) )
! } w5 | ]1 H5 b) C i9 t - (setq SS nil) ) (if (> CNT 0) , t$ q7 l4 i# V
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
, K) b! V" G1 h* d/ F9 d, d/ T - (if SS (progn
- d% d* n" m+ `! Z* l Q0 w6 w; h* a - (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )/ w* d& c: m4 y& H' s0 `& o* M, `
- (while LOOP (cond! [4 n, g$ m( V. m$ T
- ((not LAY)
' a! D3 r. ]) A& J* o# m - (prompt "\nKhong chon doi tuong."), H5 G; h' v `- f5 K
- (prompt "\nSu dung layer hien hanh? <Y> ")( s _" N( Q9 S5 H8 z2 U
- (setq ANS (strcase (getstring)))( t# {5 L2 _$ Y" w5 q5 s( _2 r
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
3 P: T8 W+ X" j, r0 f- D& [* R - (setq LAY (getvar "clayer") LOOP nil ) ) ); b; H# ]- v; ]4 _8 f2 w
- ((listp LAY) (setq LOOP nil) )
+ V( Q9 F1 ]! Z9 j) \+ U7 c - ((= LAY "Ten")3 o3 q* e3 h. x2 p+ s D
- (setq LAY (getstring "\n>Nhap ten layer: "))4 @& U# P/ _% w) t0 t% K
- (cond/ G3 y9 S, j0 T% p; c
- ((tblsearch "LAYER" LAY) (setq LOOP nil) )* p) A ]/ x, w& f8 L
- ((/= LAY "")! m6 O7 }( U1 m3 E( Z
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
/ f1 U. t: B/ M3 F' M1 J - (setq ANS (strcase (getstring)))" t! |6 }' P& b
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))& a6 s9 Z% v7 h6 a/ e8 @( B
- (progn
! v- i1 h/ T( ^' V. m - (command "_.LAYER" "NEW" LAY "")/ c6 d/ i- X2 R" I+ C" |
- (setq LOOP nil) )! D; O y! c& o. l' Z% Q; v
- (prompt "\nLoi ten layer.") ) ) ) ) )1 V' U! [7 j! k, s4 j/ {
- (if LOOP (progn (initget "Ten")
- q0 | M8 I& f& q9 ^ - (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
|+ m" A. c4 C( b: u/ h - (if (listp LAY)' O+ Q% \! @' {' ~; A* ^
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
" H0 F$ u" M" y! x+ f2 f7 n - (command "_.chprop" SS "" "_la" LAY "")
j3 W9 O& P, O" i - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
; K" |% A" M9 Z" O - (if (= LAY (getvar "clayer"))8 L! ]9 i* O( G6 n" F& [& k
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )0 {1 I+ a+ x2 J% Q; [
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
, F [6 K1 T4 N0 x8 E
' U' t$ i, Y# J/ e3 y- ;;; ============================ Layer OFF =================================; |& y- T5 T( r( J* y& _* p% [
- * B6 o+ j, d4 f. q0 ?9 }- f* i
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)3 d4 [! [! s+ z* G* N
- (SETQ SSET (SSGET))
7 L& U9 V. }7 r- \1 T$ ~ - (IF (/= NIL SSET)
6 }) M4 x0 j5 \" e6 | - (PROGN* s6 o) y5 w" O) N/ |
- (SETQ SSL (SSLENGTH SSET))* [3 p0 \$ N. P+ B! C# l2 ~% z
- (SETQ LAY "")
4 o! x- B: x/ T% G - (SETQ I 0)
. k& b! ^8 ^2 z. g - (SETQ MODE 0) ; e) U" R9 Y, [: }9 q* ^# {) e
- (WHILE (< I SSL)
0 J! D! g8 \! x9 z% L. [1 ~4 u - (SETQ ENT (ENTGET (SSNAME SSET I)))7 J* g Q+ m5 P: n V
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
! z9 l; ^- M% E* ? - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
8 u) x# ]& |; R5 E - (SETQ I (+ I 1)): T1 c& u$ v9 l# g: ~9 q5 r
- )
3 M- b1 G Z+ V& _9 a - (COMMAND "LAYER" "OFF" LAY "")
! G- A: |5 W: S# M - (IF (= MODE 1) (COMMAND "") )
( a$ m" h2 `& P R8 x - )
4 t: C% O1 W/ Q4 X( {0 h, v$ F- \) } - )
' n' Z1 C! t# o' s - (PRINC)/ N: K0 V1 W3 T
- )9 z8 |+ N) m' Q+ J0 U
: Z2 G" N: _8 I5 Y6 S2 s* A' ~4 q- ;;; ================================ Layer ON ==============================
9 A( }5 U* M$ l# `9 T" m! Y
! v9 F$ F5 @& ~- (Defun LAYON () (setvar "cmdecho" 0)9 f/ s7 p3 A, e# G! i* _5 ^& A! T
- (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
/ X7 W; n$ A* M! R4 B - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
( C3 s: ?9 M6 i; F - (defun c:LAYON () (layon)) (defun c:LOO () (layon))- ^9 o }! e2 [/ G" y$ w& l
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
5 V, N1 i( |7 j* n7 w& n) H+ Y8 I
9 m1 l" |. W8 I+ m- ~" {- ;;; ============================== Layer Freeze ===========================
4 l# y. e4 p" J
5 i( m0 \1 p8 a% Y, A* G+ ^- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) Z7 {. T' F8 x- z
- (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))0 d- Y" V5 I7 K0 q* B& D |
- (IF (/= NIL SSET) (PROGN
; w/ E9 v: m* J& D; _ - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) ; O2 v. t2 C- ^
- (WHILE (< I SSL)5 f( i5 L' x$ F
- (SETQ ENT (ENTGET (SSNAME SSET I)))& x/ e* ^) P$ v
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )) W/ R8 s1 W7 R6 u/ Z" \/ m, p
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
1 L; G6 q m* k+ D( f3 Q9 \ - (COMMAND "LAYER" "FREEZE" LAY "")
5 h5 |% u! w* i& t4 \5 F* _3 v - (IF (= MODE 1) (COMMAND ""))))
5 o% |7 b# Y* w8 l - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)" P0 A! ?$ r# X l7 T) Q1 @* a5 [6 G
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )9 Z7 N! n3 O0 t+ _- c+ y
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))' a) m5 ` Z& f# j
2 W$ d- O1 }5 S0 N8 R- ;;; ============================== Layer Thaw ===============================% E- x) q2 Y" W( ]7 v
5 I# t5 l8 |& g/ K- (Defun LAYTHW ()5 g! r/ n% L0 Y9 w
- (setvar "cmdecho" 0)
( |4 G# V( _$ }8 F( y" G - (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")+ h ]# Q' `0 u3 L
- (Command "_.LAYER" "_THAW" LAY "")( M: U6 W' J" F6 q# r
- (princ (strcat "\n Layer : " LAY " da THAW."))% F/ o8 H8 a' w
- (princ) ); f0 G: ]5 B7 z
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw)) Q7 l0 C& c0 p" B4 J" u/ r
- 5 A. F. z* c( r& M9 W2 c2 W5 ?5 ~
- ;;; ============================== Layer Lock ==============================
+ V% R$ u5 R, G' T3 D - ( `# J5 Q; x0 f9 I0 v# u
- (Defun LAYLCK (/ LAY)
6 {1 u+ F$ z y5 X4 ] - (setvar "cmdecho" 0)' @3 Q2 R+ `' }
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
& J F* f% S) Y4 u# Q0 b% `; z/ j g - (if LAY! i) r. b* e- ?+ P, K/ ?- G3 [6 a
- (progn3 f/ G9 e; r; [
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
7 `2 i% l3 o7 \6 g - (Command "_.LAYER" "_LOCK" LAY "")9 O. {8 z! |" e& L$ P0 i: \* C
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
- T* t$ I; ^1 {( j6 S- o - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
; q* e4 P, M, t0 v! m2 k2 g5 Q% F" s$ u
+ K% a- v* [* b, S- ;;; ============================== Layer UnLock ==============================8 X/ u1 [$ z3 w" w
6 B7 Q) ?! D8 I2 j3 [3 g- (Defun LAYULK (/ LAY)" z" q Z; K) F, N1 H
- (setvar "cmdecho" 0)* u0 b) H5 D' h, p. ^/ `& |
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))+ S4 S8 z0 Q( \; g! [8 t/ t# n
- (if LAY. m3 {( E; J) R" A7 N
- (progn% a/ P3 C) s6 T7 C2 ]7 n
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
0 M7 f1 f1 X- X# { - (Command "_.LAYER" "_UNLOCK" LAY "")& m7 G" S+ \+ d; g
- (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
2 H2 ^ X# v, k. ] - (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))
7 j) |% i3 f, W6 _ - 9 J6 o1 G% O8 e V3 s3 A
- ;;;===================== Delete all objects of Layer ========================
2 a8 r1 }, i/ g( g' c; }
8 x4 d' w6 e/ U) T6 L1 ~! d0 ^& N- (defun DELAYER (/ ocmd L S) 7 u# J; m: E2 r
- (setq ocmd (getvar "CMDECHO"))
% E" Q* y/ P( l* s - (setvar "CMDECHO" 0)
$ _0 m1 {2 P7 j6 [' c - (setq L (strcase (getstring "\nLayer(s) to delete: ")))
3 J2 u( L6 @$ |+ d - (setq S (ssget "X" (list (cons 8 L)))) " K2 \$ ^8 X8 F
- (if S 0 c9 f( H6 k5 A7 L
- (command "ERASE" S "") % U- H, v+ z9 y' p9 v3 F
- (princ "Layer empty or not a valid layer name.") ) ; s4 q# S& K4 I& i% P# W
- (setq S nil)
: p8 s: a) E! ^& ^& j' O! j - (setvar "CMDECHO" ocmd) & O- `. P: |8 T; X6 f! D. {3 p
- (princ) )
% o; E2 ^8 V+ u8 r - (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
1 N: c. B+ {" T6 W* ?
3 V! Z' h, [& u- ;;; ========================= HET CAC LENH LAYER ===========================
9 T4 [$ V9 L7 I4 G4 X' L
3 p5 [ l8 _5 M" @6 U+ a4 Q5 d9 |- ;;;====================== EXTEND NHIEU DOI TUONG ===========================1 b k# T6 O, B& K
- 0 x- m$ @/ L9 m$ F8 Q2 }% J
- (Defun C:EET ()+ D. E( H9 m, b: k# q: U6 C
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
& a7 |# s8 A$ u - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
; ~; J! D& T4 U( K - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
9 ]# X& `: g7 L! } - (Setq I -1)% s, K6 O# Z7 K
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
" I+ e1 f6 n- ? - (Repeat LEN* X" E$ b, m( k7 A# g, A+ e+ v" e
- (Setq I (1+ I)): c' q8 X9 G: I% O! K0 b! D
- (Command (List(SSname SS I) SIDE)) ) (Command "")& w# `4 D8 z$ Z- R, C2 v
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )# W" Q6 V5 r* s
- " }( l, k/ r9 V. U
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
6 I% m: i( P1 g9 v( c$ w- t - % J0 Q, g7 K5 z
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
6 F' J1 H3 ^5 d) j* @" A( D5 ? - (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
% B+ I- _/ ], h - (setvar "osmode" os)
7 W, T3 C! F% N$ u - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
" [0 [( j1 d% p - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
. I. m$ L. P, ~9 ~% a - 3 ^% ~+ n$ R7 S* v" a' E" l
- ;; ================ Change width of polylines =========================
" |) q3 D9 b# y [6 { - 3 }8 A9 ~2 {- l
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)4 G. Q9 n/ B# Y9 C* ~# k1 Y3 m) ~! [. i
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
2 J: _7 V# W5 N" F# P7 ?3 x - (setq b (ssget))
$ k/ V0 T; V8 e# J Y - (setq sophantu (sslength b))
$ }6 T' s3 j C5 S - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))1 ]7 b% X0 O2 p d- M
- (princ "\nDo rong polyline <")3 T% k8 V! g+ K- i7 L$ O O! u! q+ J
- (princ ha:wid)6 w: m8 X o7 f! n; R8 G3 t
- (princ ">: ")0 Y# [9 ?0 }$ O `5 j+ j, H5 D
- (initget 4)1 r! [; J# U% ^$ ^" k- J
- (setq ha:wid (getdist))
3 r" G1 T- q/ o7 A5 i, T - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))' h& N0 j* ^+ u, h0 G" `+ J5 R9 X
- (setvar "tracewid" ha:wid)% Q/ P0 `& i" z- L
- (setvar "cmdecho" 0)
9 P {5 I. D9 q+ M1 I5 e - (setq sodem 0)
2 j8 Q& x2 |. R [ - (repeat sophantu6 g: d9 K5 R6 t X; j" q& q1 s
- (setq a (ssname b sodem))/ @: e3 W) T/ A* U1 J/ D# @
- (setq list1 (assoc 0 (entget a)))
4 |2 r9 Y# n! D2 H+ Z' k0 C; K3 z2 H - (cond% e |* [7 h$ ?4 v
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))9 m. R3 l. L G( Z% [" S
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) - Y& B. H( G9 {
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))* K. B* j: ~/ i& @ d
- (defun c:wp () (wp)) (defun c:pw () (wp))
t y" p+ L, X7 r, U3 y - 6 e4 e5 \) n* E6 Z* P
- ;; ================ Change radius of circles ==========================* o0 u# d9 @' `" |9 @5 q3 |7 p
" ~. }5 E) @+ F1 H, E) p1 X4 h- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))! Y6 ~, Z' |$ ^, H) e) R" A
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : ")) r! s J! s- R" q
- (IF (/= RD NIL) (PROGN (SETQ I 0)
" m0 i% [( N0 e( o% s - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
9 l: H+ d4 x3 H5 E; ^8 f' M" ?- ` - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
% m- e: M& I) \5 i$ Z% e - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )+ C2 |7 N( D f N0 |3 _, ?1 ~
, I Y9 ~# v7 [6 m/ Z4 u D- ;;; ============================== TEXT Hight ===============================! M) a. Y$ y% L; \4 s
- & p3 J# e7 ]9 G3 F, t
- (defun texthght (/ ent hght)
: h1 S7 g# F6 P; T) g% d# b: s J - (setvar "cmdecho" 1): d8 v) C+ C8 l& {0 T9 P5 o
- (prompt (strcat"\nSelect text entity with required text height"))* J6 `) h$ ~# t. s
- (prompt (strcat"\n."))- s( }+ j4 [8 k, E' r) ~: o
- (setq ent (entget (car (entsel))))
1 C2 K% }/ e- r/ @. O1 l7 {1 G' k - (setq hght (cdr (assoc 40 ent)))
" L2 z# }% B) p5 R2 b" ? - (prompt (strcat"\nText height now set at "))(prin1 hght)
1 z1 z( l- _! i* R, m' y/ k* k - (prompt (strcat"\n."))
) W+ [) g/ x; {' ?2 F - (setvar "cmdecho" 1)
% e2 Y" T+ i$ k/ ~# m9 } - (command "DTEXT" PAUSE hght "") )
. b# v0 A4 F6 J- v0 x0 w" V - (defun c:teh () (texthght)) (defun c:texthght () (texthght))
2 c. i- I7 z7 O - 7 f# | y9 ~. \# m5 o
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
, p. b3 ?$ p3 s- i! m" m
8 K# X2 w6 |2 [, I: ?, L2 }0 }8 i- (defun c:tuu () (setvar "cmdecho" 0)% M! L) m: y& i! H" P* d/ Y
- (prompt "\nHay chon dong TEXT can gach chan ")
; M. S& H2 S { - (prompt "\nSelect objects: ")
6 K( Y r6 U- F - (command "select" "au" pause)
* g2 l* L& X; ? - (setq sstxt (ssget "p")
' w. C" T8 i+ o- k3 f8 | - sslen (sslength sstxt)6 B; k: Y; r# {
- ctr 0 )! k7 ~' m ?6 p) d1 M3 w
- (command ".undo" "mark")0 C& A8 R" i4 V4 s
- (while (< ctr sslen)
# i# V$ k- D1 V# K - (setq listxt (entget (ssname sstxt ctr))
; W1 }# ^+ A# r$ t b - txttxt (cdr (assoc 1 listxt))
# a* l6 N4 i1 y8 L2 M - enttxt (cdr (assoc 0 listxt)) )# T; c9 r$ v) G9 ?
- (if (= enttxt "TEXT")
& c# `* E3 j& n& o% `, Y, }& D - (progn
; H! ?. g @' J1 ?3 B8 m - (setq testxt (substr txttxt 1 3))# D) `- x4 O1 h- x- `% C, L/ A
- (if (or (= testxt "%%u") (= testxt "%%U"))
9 _: P- S! c( c( Y' c$ g- ^8 F' ~ - (setq newtxt (substr txttxt 4))
4 K: r3 I$ H5 v& Z4 K - (setq newtxt (strcat "%%u" txttxt)) )7 T5 |4 \! q! B: N6 v' _
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))0 C' N7 e1 K9 d9 k/ B! w
- (entmod listxt) ) )
3 e, q2 u$ E& G! b( V2 T4 }! t - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
, p/ V7 ~( `; n) b - / s. d9 }9 S( G/ W s' ?/ ~! @
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================4 m5 r1 m+ S. n+ k8 }% o5 n
+ `8 [4 n+ Z% r4 e9 g0 k- (defun c:tob () (setvar "cmdecho" 0)
* s. T. p' C Y' q3 H2 } - (prompt "\nHay chon dong TEXT can gach tren dau ")/ ] F" ]0 w9 h' o% x" |
- (prompt "\nSelect objects: ")
- J9 T' k1 e0 c - (command "select" "au" pause)3 B4 @' S) R% _4 R
- (setq sstxt (ssget "p")
5 {7 D# q7 Z1 Z4 q: z# e/ ~ - sslen (sslength sstxt)
- R4 L1 e6 ] D' C A7 a, b - ctr 0 )1 n6 i( `/ d5 E2 ~7 q" I2 G
- (command ".undo" "mark")! N8 N. g0 k' W( `3 {
- (while (< ctr sslen)( R! n) C6 R( _) Z- `9 b) C
- (setq listxt (entget (ssname sstxt ctr))1 ?: g5 D7 w) o
- txttxt (cdr (assoc 1 listxt))5 H* J: M* d V" @4 u9 T
- enttxt (cdr (assoc 0 listxt)) )" V# w0 {) g# p& r" ]1 S
- (if (= enttxt "TEXT")5 p" G0 p' ^$ O V+ d' h
- (progn
( s$ C3 R% V( l( W - (setq testxt (substr txttxt 1 3))1 A; O! L: T9 ~6 ?( V8 A$ l0 L
- (if (or (= testxt "%%o") (= testxt "%%o"))5 C2 ~. X7 s$ W8 X7 ~0 x2 T) P
- (setq newtxt (substr txttxt 4))
7 D; o+ q8 h1 E* X2 x: Y - (setq newtxt (strcat "%%o" txttxt)) )/ H6 ~# m0 |7 H3 E0 N
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
1 A' Y# A# V2 o. v - (entmod listxt) ) )6 p8 E( n! Q" i7 G) z5 G
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
; ~0 M; c8 L/ b9 a* U7 ? - 2 F9 u0 c8 J% F- v/ P7 S) K
- ;;; ========================== Tim & thay the TEXT ==========================* Z, f W4 |- u' k0 D. V2 h
$ e6 U6 s3 m8 o3 Q U. d2 D- (defun frstring (str search replace / str1 str2 index find)$ U& S" x @% i+ q
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
5 ] ?" B( ~( g: ~( L# }# y- f# Z - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
9 I+ ? Z* ~8 L1 p' F9 e - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
* Z% m9 E% d) ~( Y5 n+ Z% N J# q - (defun hai (/ dial)
$ y3 w& V: c5 a3 Y - (setq dial (load_dialog "hai.dcl")) ;;goi dialog/ b3 n# R% D* `1 j. b8 O. u/ T
- (if (not (new_dialog "find" Dial)) (exit)) ;;/ ]( W9 S" e1 j' x% y
- (mode_tile "find" 2); Tao dau nhac tai hop thoai, ^& Y& t) T8 G. ?' r% F% m' S( S
- (action_tile "find" "(hai1)")
; x, w# \. ~* |6 r- T' ?8 b( M& \ - (action_tile "replace" "(hai2)")
4 W# U: j( ?8 p# T: K2 ` F; N9 x - (action_tile "cancel" "(done_dialog) (exit)")
0 a) w$ z2 ]* p! Y: k6 r7 G - (start_dialog)
, | c" m6 X# |0 X9 ~ - (unload_dialog dial))1 ^! Y' A0 V! E! D
- (defun hai1 () (SETQ str1 (get_tile "find")))
$ A, ^* i" m4 m9 E( ^0 s - (defun hai2 () (SETQ str2 (get_tile "replace")))# N! }$ x% r5 G% Y4 ^" G k
" K: w7 b8 Y; T* g& {4 q- (defun c:TTT (/ a str str1 str2 newstr taphop sodem): E9 h& i: ?) {: b; y% M
- (hai)
! H6 [2 L' ]+ O8 M% { - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
. f; \, X B- w) a8 x& C W - (progn
8 C! G6 s8 J+ x& O* N - (setq taphop (ssget '((0 . "TEXT"))))3 t$ H" Q1 Z: b5 s& I
- (setq sodem 0)4 n, o1 w" @/ X, Z: c/ \
- (if taphop
0 ~3 w5 X6 k2 \" N0 D, H0 |" a; A [+ U - (progn# n3 X5 j4 z5 z
- (Repeat (sslength taphop)7 Q% k0 Q9 J' d3 j0 f9 L
- (setq a (entget (ssname taphop sodem)))
+ K: D5 {" N( l/ q) C" A) c - (setq str (cdr (assoc 1 a)))
1 s3 m. ?6 b' C0 x. I1 U& V - (setq newstr (frstring str str1 str2))
0 b8 O1 r# [3 F - (setq a (subst (cons 1 newstr) (assoc 1 a) a))
1 t i" u; v, w - (entmod a)
0 m+ E* b3 j1 j% a - (setq sodem (1+ sodem)) ) )
! j* B0 y# W1 G! \4 r% S% Y7 z2 ] - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))4 [0 @) s4 r) [; Z) x' r
- . v9 v3 G# Y* W/ N* y h3 ]
- ;;;============================= CHTEXSTY.LSP =============================
. b, i8 r& ^$ I, [ - " i. E' m( F* u4 r% J `
- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")% ~! v/ P8 b0 s4 f0 j
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))( O6 F1 H' _. P; r9 Q
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
0 H; T7 Z& z7 V! @* }5 [ - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
; u& [3 G7 i1 s& j! B6 {% ~6 f b - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))& k) w4 C0 A! @" ]1 ^( p, t& q% A
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
6 Q' W- Y! c# _1 i: o# e) c - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
7 Z+ I7 i3 O6 N4 A6 v) e - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
- E; V" D# S9 I1 E - (Initget 1) (Setq A (Strcase (Getstring2 Z0 S& [8 x# W" U5 T8 X5 W
- "\nEnter text style to change: "))) (Initget 1)& [, _8 i5 L m4 b% N5 Q4 U
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
7 k3 I/ F9 t6 h) ~) a' N& Z0 F - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
1 @5 }; K5 r" i* @ - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
$ {4 B2 U4 _: v9 b& I$ S0 x - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
+ X1 a8 b r, ^' E& _/ k! | - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))8 r* ~; H' x( {- f/ B4 ^1 x1 l# E! p
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))( w) I$ ^2 T) }8 \
- ! h- X/ n& _; M: Q: P: C+ S) _
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
/ A# E8 Z7 O6 ]! H" {' L' U - (Setq J (Cdr (Assoc 50 A))))9 T' O# Z Z! b- `% S9 Y1 P
" V3 _- ~# `2 O) s3 ]# a- ;;; ============================ DRAW CLOUD =============================. P& H: ]% I) ^& c) ^
6 _$ o r) a: Q. R0 t2 [- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
* u( c* [. h. E- I! f - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
/ J" a/ r! o& s! @3 ?0 |$ G, f - (setq la (getvar "clayer"))* k- G8 s) H+ d5 S
- (command "layer" "m" "cloud" "c" "5" "" ""): ]4 M( U* T, v1 \5 ]' g# p$ v0 n* M
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))
* e( B- i* a, _* y3 N4 H$ Y - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
' e. i1 X% K9 _1 @8 ] T' ` - (setq cnt 1 ss (ssadd))
$ i. i/ F5 @1 ]+ N8 a. B! m( X - (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: ")); m" P9 ^( g, |
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))& g, d: L( j1 z* H5 }
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))# ?! Y0 K0 \+ N# Z; X- V$ C, A
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
) _% G B. e. A, U. ^ - (command "pedit" arc1 "y" "j" ss "" "x")3 `8 h( L: Z( t" [
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)- C: X; I( s: _1 N
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
5 _! Y( g* r/ O8 o7 ?5 ^5 u* G& f& L- g - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD)). s1 x7 X$ q. y% f/ f
9 Q0 a) b& |7 b! E5 e- ;;; ================================ Funtion-Dulieu ========================
4 a$ e- Q5 b6 W; K- }6 E" k - ;;; ================================ Funtion-Dulieu ========================$ D* i; _4 e* s9 n
- ;;; ================================ Funtion-Dulieu ========================
) U! l) T2 N: o' J: E# t - 5 v; |0 w" d+ t2 [. \3 L
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )- z: G1 C$ m a. u! c9 ~
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
4 H# Y9 I6 o) D0 a - (defun khoangcach (kh khq11 khq12 / h0 h1) (setq h1 (polar kh (angle '(0 0) (vectophap khq11 khq12)) 500)) (setq h0 (inters khq11 khq12 kh h1 nil)) (distance kh h0))
" {$ r1 Q- g! X& w) Y( \ - (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) )
1 ^/ M S) Z% F2 p - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
6 X. X& `* \! x; i; T* y. Y - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))9 y8 r) Q0 [. _) B
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
4 ^0 f( Q* o; y - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
4 G5 H. K4 g; k1 H ^7 K, W8 m } - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
( k+ F v1 s2 q$ N - (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)))
, p+ h+ E0 M# _; E( w& v - (defun dtr (dtr) (* pi (/ dtr 180.0)))
+ l. b# l5 n" w2 Q6 b7 y+ g - (defun rtd (rtd) (* 180.0 (/ rtd pi)))
# H6 _+ P+ d( X - $ y- @* n2 t. g
- ;;;==============================PROGRAME===============================) J6 L4 Y4 `6 |. z, \( t, p
- ;;;=====================EditDiM Hien Hop Thoai Dep======================: y% i# a4 T0 i/ {' `: G
- ;;;==============================PROGRAME===============================8 h% J% a3 p" a6 u# i' E% k5 |
5 G: c2 ]4 i) T* l) {- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)0 ?+ t. n/ a3 `( M2 k( L% b. P* v
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
; z$ M6 N5 v2 l7 k9 H- K! T - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
5 B$ q+ |8 v( f - (Setq Oldlis (Entget (Car Chon))
, @; u8 K" b- ]# n+ t& b - Pt10 (Cdr (Assoc 10 Oldlis))
+ U8 T9 v3 g0 ]3 d7 K( `3 S - Pt13 (Cdr (Assoc 13 Oldlis))0 Y3 B2 o5 Z$ m _8 R. P5 z! Y
- Pt14 (Cdr (Assoc 14 Oldlis))
& U- r) F: e) c: a5 a - St (Cdr (Assoc 70 Oldlis))
- o7 U1 C6 c- D7 L - Dimdefault (Cdr (Assoc 1 Oldlis))
( m6 ]% ?3 M9 `+ d2 p1 ?( ~ - )( K1 y% S {) x- b7 _) H1 j2 w5 B
- (Cond
6 S* Q7 |3 u6 ?" X/ _" l3 P0 a# A! M - ((Or (= 32 St)(= 0 St)(= 160 St))' m) d1 v; v! L4 o, a
- (Progn+ ]3 j/ H. [$ k7 ~5 s( m7 S$ }: [5 Y
- (Setq Ang (Cdr (Assoc 50 Oldlis))6 _1 b6 a0 |9 c$ Q0 b7 {+ g6 d
- Pt (Polar Pt13 Ang 500)
! F: \3 D! r% J' i. C: H D1 K - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
& C0 t$ `* j8 m1 M - Dis (Rtos (Distance Pt13 Hc))5 M# } W7 H5 \4 e9 E9 }- J( B) K
- )" d0 A* f }3 c
- )
! C. _! b) |& d: e6 |# } - ). C! v$ a3 Q' E) H% G. r# u# G8 q4 C
- ((Or (= 33 St)(= 1 St))
, { a1 }4 K3 C& L: m - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
8 g( m! @) v3 ]3 {/ Q - );;End Cond
+ ^, k( s% O6 X8 n. [5 F4 } - (If (= Dimdefault "") (Setq Dimdefault "<>"))
; p, s0 b. n& s, `5 e7 z) J: Z - (Setq Dial (Load_Dialog "Hai.Dcl"))
3 d8 Z T8 I, e - (If (Not (New_Dialog "eddim" Dial)) (Exit))
, h" q* H" {2 a" p' K; W' \) f& k - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
2 l& S; {% v1 O1 Y' ~6 i8 W - (Set_Tile "text" Dis))
: [# g( [& o. A0 h& O - (Set_Tile "ha:edim" Dimdefault)
* s- A# C# x) I2 N" J - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai8 ]$ P2 A! L! m2 u2 ^
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")7 W* ]. L% @! g$ s
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
+ X( N) `7 v2 ] - (If (And Str (= 3 State))
, }% G" B0 E& f' n4 P - (Progn0 a: W9 B/ o# M# @# p
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
/ M6 N& P9 h$ @9 y8 \4 j - )7 l4 ~6 x' ]3 `" z8 T* K3 o
- (Defun C:EH (/ Chon Name )% |* G6 Q" M# d6 o
- (Defun *Error* (Msg)
; X: s+ T6 {$ j: ~! H- X - (Princ "\nerror: ")(Princ Msg)(Princ " ")
; r& k* g+ X- _+ ]) i - (Start_Dialog)(Unload_Dialog Dial)
7 b: b7 N u* ]! E% v - (Setq *Error* Olderr)(Princ)
9 O1 B2 E/ B7 j: H1 a; Y - ), R6 t W/ m7 f8 w$ K
- (Setq Olderr *Error*)
6 c/ D6 K% ~- s$ J - (Setq Chon T)+ ^" ]% H. @- q& [
- (While Chon, J7 r/ r3 g" y# Q+ x5 {8 ?, r; n1 H$ F
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))2 u( i: q4 M1 J
- (If Chon
3 O- T7 [* R$ i- b - (Progn
/ T* I" d0 F# C/ @ - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))) F* J. u( q! r* _
- (Cond
) x: A+ u; w# G: n* F - ((= Name "INSERT")(Command "Ddatte" Chon))
/ k, e5 l0 e% R+ z8 u - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
2 n4 x3 [5 o4 Z5 G5 K$ v+ l2 d - ((= Name "DIMENSION") (Hai_Edim Chon)): [. A3 X% S( O7 Z
- )# [2 }0 O+ {) Q# g" g. \
- );End Cond
' q M4 l% A @/ D( Z( B0 P4 k& P8 B - );End Progn
7 J+ l0 }$ j2 r8 [' f% M/ H- X3 k: w - );End While! a3 s7 o/ S( W* o& }
- (Setq Olderr *Error*)(Princ)
7 ~" D0 f" x0 x - );End Program( z" `* H! n: f, ]
3 [9 [' X0 m- t8 c |8 V* y( |- ;;;====================DDeditDim=====================
5 G: k7 i8 k' w - ;;;=====================Hai.DCL======================
7 T; Y, o, m2 D& l - ;;;====================DDeditDim=====================- @8 c" z8 [& t
- 3 r" d3 T- Y! |" d3 C5 D
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
9 s. G. R/ \6 ^& V; D3 D7 P/ V - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
4 ]: {, I2 T: O3 z' S" ] - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
% P* m" T% l& u& K7 c& v! p# r - (Setq Oldlis (Entget (Car Chon))$ u2 a7 ~) f0 C5 S, {( N
- Pt10 (Cdr (Assoc 10 Oldlis)). s/ n) W& j: s8 p* `/ O6 x
- Pt13 (Cdr (Assoc 13 Oldlis))
1 P# j$ N [6 L$ ~8 i- l+ N - Pt14 (Cdr (Assoc 14 Oldlis))$ N3 W. C7 y( h. E) V( \5 w
- St (Cdr (Assoc 70 Oldlis))3 O- g2 k. q. p: ^. u$ d7 b
- Dimdefault (Cdr (Assoc 1 Oldlis)), F) H) v4 T' T# ^, c z* k6 O
- )" u6 e9 N& p* Z0 V. L
- (Cond) y. |: D1 {4 _+ P! s# z/ u% V; S
- ((Or (= 32 St)(= 0 St)(= 160 St))
! Q7 c" h. ^, c- s7 y" P/ v3 x - (Progn8 I$ C& i: X& V; i/ Q3 r+ Z) g
- (Setq Ang (Cdr (Assoc 50 Oldlis))% _7 K1 b8 ?1 i6 J% v, [, [, i
- Pt (Polar Pt13 Ang 500)
$ R8 |3 i* H0 ~( S, m j- D% S - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
% X0 c- c! ]) S* l" Y - Dis (Rtos (Distance Pt13 Hc)), F3 S8 J0 [) ?' ~2 J5 ]
- )7 d1 h6 w8 ], P; p) a
- )+ E$ k! M; \5 n8 o1 m$ |
- )7 i% d7 I4 O3 n2 x
- ((Or (= 33 St)(= 1 St))
* w3 E* R! V" _8 s# q! J - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))5 z3 d( Z; P8 H
- );;End Cond
% I5 r+ B$ y9 G$ V9 n6 u% J - (If (= Dimdefault "") (Setq Dimdefault "<>"))$ B" D5 J9 A4 ^
- (Setq Dial (Load_Dialog "Hai.Dcl"))
( Y5 U" y/ V# q/ F' B l - (If (Not (New_Dialog "eddim" Dial)) (Exit))
1 P) A) A T" P. F; Y. I2 q* p - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
0 T' Q% w* M! g) k - (Set_Tile "text" Dis))6 o7 ~: L3 W) i( C' I) E
- (Set_Tile "ha:edim" Dimdefault)
9 g x) l& n* } - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
) u6 C6 W& a* _8 g5 O: K& F9 _ - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
& d/ c( Y% K8 M) C - (Setq State (Start_Dialog))(Unload_Dialog Dial)
8 L, e$ T* o+ F4 G: w) z+ W - (If (And Str (= 3 State))
- s5 W0 E2 |1 `( y9 m3 c2 m - (Progn# z. c! Q) G/ a
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
. t# p, N; l; O1 o7 z7 t - )1 j" | _+ L6 |' t ]) Y1 g0 [
- (Defun C:EH (/ Chon Name )
/ {& `9 E9 _: q$ i, s; O - * D6 x b# a# D4 O* J6 q
- ;;;********************Du Lieu********************7 R' z4 c' C0 w# C1 I
0 g% l( q" h/ q! }- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))9 \$ g, F: ?5 C; X
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon), ?% f4 p" m. k' ^, e$ k
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))( G V( N0 P! @& Q
- (Progn4 r! B1 Y; C$ B- l
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))- z' [# h8 w/ K; o+ ~
- (Setq Chon (Ssget Hacat3))
- N w" l2 F8 P5 f+ d - (Command "Break" Chon Hacat1 Hacat2)
" T* g" l' U2 y" n" U - )
% s5 U# k2 R# [) d' X - )* x6 f; k$ f6 ~" Q% F
- (Princ)
7 V; M1 b3 ?8 [" S - )1 J/ k' d3 K/ n! q* F) Q; E6 T2 }' _- x
- ;;
1 ~7 n" Z( k3 R3 P2 B( z% ]: h) v" A - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))5 B+ a! } F( j
- ;;
- I. c, v! @+ v4 e2 P/ z - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
" ^3 |$ O% ]% L - ;;0 A$ N; ~* @7 z2 e8 r; @, b4 F9 _
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))+ P; _% D. V5 w1 s
- ;;
, Z) Q x3 Z( X) {* J - (Defun Reinit ()(Setvar "Cmdecho" 1))( n, N$ E* q, ^ x Z/ Y/ x+ E
- ;;
W6 L% K1 `* H2 A' V - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
- s5 i7 [! h$ u - ;;
7 [" c' y8 ]( A v6 D - ;;Cho 2 Diem Tinh Ra Vec To Phap) t4 c% j B$ q" G8 k. E
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
# `) V+ B/ S$ ^$ Y" P - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
( e' Q2 m& m9 c6 C' s - ;;Da Biet 2 Diem Thuoc Duong Thang
: K- `% l5 G W0 B - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)! P( O% [6 K% w, T
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)2 l! |* U2 t: m6 ~. c; }' ^
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))/ R/ _5 P& q1 J8 I7 j0 x! [( d
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang- n- {+ r9 T* L' k( m
- ;;Da Biet 2 Diem Thuoc Duong Thang o$ C0 u. y7 k% j5 u3 r8 e. |
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
. n1 r; u; {2 u/ y - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)# w9 d. Y6 K" X, k
- Hc (Inters P1 P2 Dc1 Dc2 Nil))& }) I- Y$ @+ K7 e
- (Distance Dc1 Hc)* r6 a/ J, |% y8 b' g/ y* H' Z
- )9 l4 n; W) U ?5 I4 W$ n0 @) I1 {
- (load "nhapcua.lsp")
. P3 C, i% ~( q - (Defun *Error* (Msg)( b8 }* X" |2 N* u
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
3 M. b5 ? m5 K0 X4 t5 J - (Start_Dialog)(Unload_Dialog Dial)4 L5 q$ D& @0 m9 t r
- (Setq *Error* Olderr)(Princ)+ Q; ]9 e# }: T% G0 I9 b1 W2 s# t
- )( d) d4 q' A: E) S
- (Setq Olderr *Error*)% E, [7 k0 u! }: d8 H
- (Setq Chon T)' K1 k) b7 h" X) b+ z) z
- (While Chon+ i: o7 @3 [2 w7 h4 ]5 v
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))7 t, M7 O" \8 I I9 I0 g. q0 \/ V1 y
- (If Chon
& U6 x5 j. y6 w6 ~! p - (Progn
1 s7 \' Y' }" Z2 u - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))2 e( Y& N$ }: c. l
- (Cond
, O) m# w, j9 b% F/ x - ((= Name "INSERT")(Command "Ddatte" Chon))
4 u, g6 w% e% M# w0 t+ V% N - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))& F; ?: v+ L+ K# V, W: Q, i/ @5 G$ s
- ((= Name "DIMENSION") (Hai_Edim Chon))$ v' A. X \8 C. Y& w. A
- )1 J* s/ w0 y8 H
- );End Cond( }6 {: m+ r4 F! Y- T8 i) O
- );End Progn$ N% e1 `& _6 N* ]; t3 x/ ~) N
- );End While
: V5 x# e: E( X6 _* A- n - (Setq Olderr *Error*)(Princ), a8 I# d7 } ]/ o7 N; K- z: o l4 N, I
- );End Program9 ^( t* c' C" g! |+ V* D
- + b. X! D9 F+ _5 x$ h& O
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================6 M4 R7 i& b1 u' a* c( q+ t
- ;====================================Nhapcua.LSP====================================, `% I+ ]) a; C7 k! M
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
: D3 y# K; k% N. {" m5 ?; E
, `9 |! f3 w" R9 e, u9 y* Z: |
- [& A5 t1 @3 O. x( Y; W P
9 U; t2 v1 `, p' u; p4 ^. E- ;*******************;*******************;*******************;*******************
I4 N% X& C- m8 |) @ - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****2 Z' T2 X5 n0 j8 P
- ;*******************;*******************;*******************;*******************) J6 I3 Q& }+ J4 V/ j& A
- - R0 R( M! t; Y, \
- ;VE HINH BINH HANH& {; C, A9 V$ j0 M) p8 [% u
+ y/ m- w Q' z' q8 m$ F$ h6 e# K- (defun c:binhhanh (/ p1 p2 p3)4 O% o6 N6 h/ b* T! w0 V9 D
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))1 ^+ t9 W+ V! i
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))* x$ L1 m* G+ K! P
- (setq om (getvar "osmode"))3 x1 Q( R2 C6 g# v8 }
- (setvar "osmode" 0)( f7 n1 R5 N* F1 }' ]. f; S
- (command "line" p1 p2 "")( T6 y- q2 u8 t g
- (setvar "osmode" om)
# w- R6 R* w1 Z y( G* ~; t - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))1 y0 S* F6 ?9 @: l1 Q; Q! R
- (setq a (angle p2 p1))' b( n5 o" O. ~; N/ r$ G
- (setq d (distance p1 p2))
2 N5 y$ V! k5 F( { - (setq p4 (polar p3 a d))
5 t( w% F4 m' C% h* I) q5 T! A - (command "OSNAP" "none")
" w, x: |7 }7 Z. E0 y3 p - (command "erase" "l" "")1 }3 T" r' [0 O& y+ H3 y
- (command "pline" p1 p2 p3 p4 p1 "")3 X! i1 j) R+ x( S2 y/ M! ~# Y
- (setvar "osmode" om)
# B! p* r& c9 Q& K0 C - )7 l+ {& y( ]8 Z/ I" f `3 N) i
- 8 {: u) H. S: n! w8 O/ J' e
- ;VE LUOI COT
+ ?8 |- ^8 j+ ^* }
8 K" }6 }8 N$ ^2 N/ g. O- (defun c:LuoiCot ()
0 w) r% f8 n- Q& @3 F - (setq om (getvar "osmode"))
7 ]4 K1 N2 ~. e+ I" X: @$ h - (setvar "osmode" 0)! N+ r" D# J% m) J R# Z
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
$ C: v1 B4 M: `6 ` - (setq p0 (getpoint "\n Chon Basic Point:"))
( I' S$ ^8 J) c: I - (setq nc (getreal "\n Nhap chieu ngang cua cot : "))3 |2 B" F/ V& n- P
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))( {# `& s* K2 t+ |
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
1 a8 x) N. k& I2 Q2 V3 M - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
1 i$ @* B" \! W - (command "rectang" p1 p2)
+ x+ j1 J- K) l - (command "hatch" "solid" "l" "")1 \$ X' ^( V1 e+ J
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
# o X8 r) N7 A i - (setq nn (getint "\n So buoc cot phuong ngang : "))
7 u' M' k) }( J' A - (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )) e p) }9 t) j+ H; \
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )* Y( K) m0 y1 U: h
- (command "select" "w" w1 w2 "")
7 x l% h: J# g9 e% o8 n - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
1 k' D6 ]3 }8 p/ ] - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
. }9 M* F2 i# o- Y - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))2 H+ n' t5 n: ~. D1 c2 j
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
V: Y& S- N8 c& ? - (command "zoom" "w" w1 w2)
, r$ @( x( o: C - (command "select" "w" w1 w2 "")
( @! J: x& m5 H& E: r. Q6 B2 M - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
: A6 w6 \4 g- g! y! I# `( X: D - (setq nd (getint "\n So buoc cot phuong doc : "))2 a: V* a$ G4 d+ W8 [
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
# `2 H+ V/ f' U; d - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")) G! d8 I- x6 Q' t, l( @) n
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )2 A7 P, p8 q- m' j; I
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) ; v7 x8 c! x# _1 M1 C& @* w
- (command "zoom" "w" w1 w2)
- j# C: c( Q5 E1 A; c$ ~8 ?: A - (setvar "osmode" om)
* u0 A8 A$ ~7 t - )
4 w8 B) t3 v! `9 `# Y9 \4 Q3 G
* @, }9 y8 u/ k" E* Q- ;VE CUA DI
5 w. _/ Y" L/ G
( N* I* d$ N e# H" f- (defun c:cuadi ()' h Y4 M: b- w5 t
- (setq om (getvar "osmode"))2 y1 i0 V% g0 D' g7 W/ O* l( _
- (setvar "osmode" 0)4 r- Y8 e& ~$ H
. n1 \, Y) j; ?3 k- L; H- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))& c8 r. e- G E( J
- (setq b (getreal "\n Nhap be rong cua : ")): D9 {% f0 D$ W; w
- (setvar "osmode" om)
8 U" ~2 V! b% `" a* [4 n - (while (< 0 1)$ p( R/ d, b3 D$ B- O' N9 D
- (progn
_6 U/ {; n5 z+ F0 e' z - (setq p0 (getpoint "\n Chon Basic Point:"))
0 R' t! K* r8 T# M8 ] - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
5 {& a& ]9 Q8 M; h% g0 p - (command "osnap" "none")
7 F2 w3 ^# ?9 {) r - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
? _0 h! z4 N - (setq a1 (angle p0 p1))5 A7 b$ u2 U# [. \
- (setq p1 (polar p0 a1 (/ (* hstl b) tile))). C' y+ z) O. Q) F G) m
- (setq a2 (angle p0 p2))
: u$ F$ L0 b8 }* D+ @/ p, q - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
8 s+ F; |' e e' c* b# A9 D( k - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")+ [$ W7 R2 C- I/ T9 z' X$ v
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
8 T( e9 W6 C: ^5 V - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
: j' n6 e' |$ m7 T$ R - (setvar "osmode" om)
# k% ]/ ?' B# f+ G% x& K! \ - ))" g& U1 l# ^! M+ U( P8 f+ X
- )
0 }4 s/ e! z- F- \6 X, z, k9 y; l - . e/ ~* j9 i5 |$ l3 e( |
- ;VE CUA SO
2 h3 n7 N5 Y, r* D - $ X# K. d+ Y" A$ i" s# ~
- (defun c:cuaso ()! P1 q% ]+ `! d: K
- (setq om (getvar "osmode"))5 `! U' _5 h* ^2 m" v* K
- (setvar "osmode" 0) E& D3 p) V% [$ c" ]0 n
! Z% b/ ^! w. y8 x- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
/ F- D W& n6 w5 u" }9 o - (setvar "osmode" om)
* s* |! T+ z' c, }7 _2 } - (while (< 0 1)
/ e, p6 u: f/ U4 } - (progn
4 V6 `" \* d3 x" b( k - (setq p0 (getpoint "\n Chon Basic Point:")); l) l) i! p/ Q" _4 d4 \
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))1 X, c6 t' C/ I! w
- (command "osnap" "none")
- q$ Q" P+ ]9 t1 c* ~ - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
( I9 L2 k) _4 C8 f - (setq b (distance p0 p1))
3 L2 ]% Y5 l: \/ P - (if (< b (/ (* hstl 600) tile)) (setq du 50))/ A" Y# t7 V5 f
- (if (> b (/ (* hstl 600) tile)) (setq du 150)) }9 B" g& K1 p8 h
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))% H4 P6 A% N& ]+ k9 T% F6 L
- (setq a1 (angle p0 p1))
5 V8 Q9 c+ z$ H5 {* {9 u1 c' z9 l - (setq a2 (angle p0 p2)) { b* y1 [& q( U9 R3 N8 j1 U
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
% Q) t6 O$ e& u I: E# [ - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
J6 W9 t# {0 K: {4 b; c - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )3 Z+ h# i& ~. F
- (command "pline" p0 "w" "0" "0" p1 "")
& K5 i) b( m$ D - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
, a8 x) z& _0 |0 ?$ B* [: X: o( d - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")4 J- d1 E+ ?( g* M
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
+ \3 o/ q* H! {2 C! T' A" c - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
5 c/ N" z3 Y8 f: h - (setvar "osmode" om); \ Y, U& J0 j/ z- L/ {
- ))* D* I. h, Y1 y
- )+ W/ |( j$ U+ {+ B- T8 j' y
- % ~4 Y4 p) i( h* r$ v% f
- ;;;=== General Utility Functions ===. g. V9 ]9 n! {( |
- $ w6 W/ L, W4 W8 A( K- J3 C
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
( r) f. x( d+ r - ; ADS function. Now it's a simple AutoLISP function that calls the ! j& T+ e: f/ v# p0 D; ]6 [
- ; built-in function (help). It's only purpose is R12 compatibility.
: m+ O0 Y# Y G% v - ; If you are calling it for anything else, you should almost certainly
% O+ A, u: @7 W& E4 w: Z* j$ x2 I - ; be calling (help) instead. 7 M9 H* z. s4 |# z# a
-
0 b6 y5 v/ m+ k$ e& l: Y1 \& ^ - (defun acad_helpdlg (helpfile topic), E9 i* t& U# @7 c
- (help helpfile topic): c0 O7 C6 y. {8 X) H6 T; f- K& u$ y
- )
, L' e4 @" g4 b6 C) C9 Q - ) v; i$ W# |: `: `7 e3 ]8 c
5 C0 [9 [9 J- r1 O- (defun *merr* (msg)
& Q# h1 M/ @( {2 R$ W. L1 q - (setq *error* m:err m:err nil)8 }3 v9 L# x4 w
- (princ)
# R% r6 k. t% |& p; S$ R - )
' k6 S; G4 b4 o - ( l8 x% F2 P8 W6 N
- (defun *merrmsg* (msg)
+ Z) [1 M) G" V: f9 |+ H+ l - (princ msg)
# q, y# J) o0 E+ [ j/ U0 ] - (setq *error* m:err m:err nil)
# m7 p1 k$ u! G' z+ O! f' m - (princ)2 t/ u- D, J2 {9 p+ [
- )- Z8 T$ U1 q1 @+ N/ o+ D2 @. A
2 V, ^6 S4 ^7 ~ m- f- ;; Loads the indicated ARX app if it isn't already loaded
5 A$ C2 K9 y! _3 V7 A0 S - ;; returns nil if no load was necessary, else returns the
' f, _8 G9 T' Q& y5 n3 R( G( I, I' N - ;; app name if a load occurred.
% w+ N' \8 b' I* h2 v4 | - (defun verify_arxapp_loaded (app) , J& |8 X3 U& _) {, K# P
- (if (not (loadedp app (arx)))# g; M9 z% ?! p3 p
- (arxload app f)
: W3 b Q" z) _. F7 T) K7 k - )3 p4 \5 H. n: S9 V/ M
- )) r+ P- I; E W6 {# q$ Y% K/ w
- v( ~& Z- T7 G. F! v) n
- ;; determines if a given application is loaded...
4 R4 y2 d" n% G - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....) n3 A$ s- T/ q, S0 S/ i
- ;;2 y! [+ Z2 u, X- k8 N
- ;; app is the filename of the application to check (extension is required)% p9 j+ }6 w2 J! k. t
- ;; appset is a list of applications, (such as (arx) or (ads)3 x2 Y' g4 a# f: e# {
- ;; / H$ ~8 D* r$ d
- ;; returns T or nil, depending on whether app is present in the appset
5 E& n% F- `" k% N9 G, X }& N) d - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
1 y) m& P) P/ [) ^8 E3 Y- @; o n - ;; Also, if appset contains members that contain paths, app will right-match
" Y" W' i( X# U - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
( f! K( p6 Y: ^7 e( B' f - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
6 F' ^" Z4 C" J2 Q: F - (defun loadedp (app appset)
: ]! t+ f' C$ B) R5 [ - (cond (appset (or 9 h* q) d- @3 K; g
- ;; exactly equal? (ignoring case)4 M# z, ]8 a2 f( d; U- z; l% d+ ~; z5 D
- (= (strcase (car appset))
2 _: C2 b1 v7 N j6 q! f& p4 z3 } - (strcase app))
4 O: ?0 z5 F! t6 s2 Q, s - ;; right-matching? (ignoring case, but assuming that
/ b6 L$ Q' Y" | - ;; it's a complete filename (with a backslash before it)0 U5 L8 L. m0 d6 K" ~9 S7 r4 R' f
- (and ' Q9 S' H+ K2 S% j; ~( ~
- (> (strlen (car appset)) (strlen app))
- D0 K' `/ r7 L. \7 m. H, t - (= (strcase (substr (car appset)
2 v+ f- Y# a+ F - (- (strlen (car appset)) ( A8 {. H7 m: g
- (strlen app)
/ g& K* ]. y; { - )
3 X N7 a2 V1 ]; C* k$ d - )2 `0 Z; ?. B2 s4 C
- ) : k5 Q7 c; Q1 Z/ U3 G' e1 W
- (strcase (strcat "\\" app))
+ t$ I' N$ a$ E( Z6 ?% g) m* E, K2 t! q - )" I3 [6 @! s, ?& N; \% _
- )
& {2 K$ Y3 Z- | - ;; no match for this entry in appset, try next one..../ F4 T0 `' p' n. B& d2 p
- (loadedp app (cdr appset)) )))* U# v2 ] h/ u
- )8 b4 u6 J/ P# E( N3 I- O
- " j% b* L/ P1 o$ z- w% b8 t: b% w
& ^( P7 i# J. }* A3 P- ;;; ===== Single-line MText editor =====; s9 y- T7 o7 }6 m
- (defun LispEd (contents / fname dcl state)
* p5 A6 ^3 R: t7 E - (if (not (setq fname (getvar "program")))# P1 N; z$ M4 g' b2 j. [
- (setq fname "acad")/ j5 g/ ~0 k# t2 e# | [/ G: [
- )# m* C6 ?* b2 g$ U8 z& |' [
- (strcat fname ".dcl")6 U1 R/ [& J- b% u0 v
- (setq dcl (load_dialog fname))
: ~; ^, H$ A }, [) E - (if (not (new_dialog "LispEd" dcl)) (exit))5 D5 E! c9 w3 u" V4 j# |: F
- (set_tile "contents" contents)) b: r; a6 w: ]6 h7 t+ D
- (mode_tile "contents" 2)
& M! X) {* w# K9 Z7 i* r \/ H; j - (action_tile "contents" "(setq contents $value)")# h: k& u% J. c5 k' J
- (action_tile "accept" "(done_dialog 1)")- u) o% a& | C
- (action_tile "mtexted" "(done_dialog 2)" )2 w( q9 s" ^' v1 x5 n2 B
- (setq state (start_dialog))" X, W( R- B# H* f
- (unload_dialog dcl)
( I, o1 {7 M# K! E# s - (cond
B3 y+ F9 R9 o5 m - ((= state 1) contents)9 T# D( r" i+ Z! Q
- ((= state 2) -1)) y# o% C3 M: j/ u
- (t 0)
+ s7 I9 p6 U( [4 e0 v5 ] - )
0 Q u. M! _" D% x: n+ P - )
~# i/ L4 \8 V0 `" A' T. ~ - 2 \- z% k: u, `$ H3 ?
- ;;; ===== Discontinued commands =====
. `6 q$ Q2 O5 u' l& L5 b - (defun c:ddselect(/ cmdecho-save)
# Q$ a5 j. @! t# u6 T8 f6 U3 ^ - (setq cmdecho-save (getvar "CMDECHO"))
2 Y; u4 p' O1 m( k - (setvar "CMDECHO" 0)
- Q& o- `, W; i6 p# ] - (command "._+options" 7)& t% X0 ?" P; q3 h; {: V
- (setvar "CMDECHO" cmdecho-save), q& v, a- z0 {% D7 N( z
- (princ)7 b, c8 Y1 W8 d* C; z/ `' {$ i
- )
2 s9 U! R2 D, m; i
+ b' e5 C) K5 [+ r) o- (defun c:ddgrips(/ cmdecho-save)
6 t, q- t. s" F3 [; D4 K6 y4 H - (setq cmdecho-save (getvar "CMDECHO"))2 i! K( E) A! \# {
- (setvar "CMDECHO" 0)6 I+ S+ s2 C4 _( W9 Q5 x3 ]
- (command "._+options" 7)8 b6 M4 C5 H1 i1 r6 j
- (setvar "CMDECHO" cmdecho-save)
# n/ ~# p6 R' e2 [. i' `6 x7 p3 h - (princ). v8 N7 X+ A5 J" W2 X! d! W
- )0 w0 C8 K: q* g* G0 s
- - O4 q7 L. f$ ]: C: ]
- (defun c:gifin ()
8 P% ~' f8 k1 i% ? - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n") e s, A# S f5 O8 B7 }! n
- (princ)" P2 ` m2 ]' y' k" l6 ]. k/ R
- ). U2 A7 ?+ `8 `1 X; [
- 6 t/ J# M1 S$ r! |$ q
- (defun c:pcxin ()
P+ O* I! ^! \- j+ ]/ M - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
. }1 K* T. L1 d! y - (princ)
. x6 D+ H; [: F - )# y6 r8 Y4 v* |) y$ v F
- % [7 [" f/ O: L* ]# w- B
- (defun c:tiffin ()
G* q6 d4 Y; [, m3 J1 y - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
$ u$ ~ ~$ }2 M0 X( C5 ^& W# ~& p - (princ) X$ M. R( Z! S9 r v8 w
- ), u. m( W }1 d. ~/ V- |
9 A. x; f+ W1 {% Z% E8 Y. J, S- (defun c:ddemodes()- v0 y, l' S# _8 K/ `& a
- (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.")
7 L ?: v0 W9 L8 D" z: P! b - (princ)
1 W8 p9 {+ x( W; d! q - )/ [# k4 p( C) D) u# c
- 1 f( H* }) R) ?1 ?& f& C H
- (defun c:ddrmodes(/ cmdecho-save)
" g; j9 p& l; } - (setq cmdecho-save (getvar "CMDECHO"))
8 T. F' b' g! K+ `& N0 b, ~ - (setvar "CMDECHO" 0)
; N; T8 @4 {) P/ m5 R - (command "._+dsettings" 0)
# u. e7 j. j! R% Z0 X M+ j8 T4 } - (setvar "CMDECHO" cmdecho-save)4 i) {5 [% @- F$ L
- (princ), s) @- ^8 y; Y
- )
8 m; h# i( b3 j/ S( }- X9 _ - , s+ W$ e$ k, {- w" L, |
- ;; HPCONFIG
e" C1 j( a# z* |( g7 s - (defun c:hpconfig (/ hlppath)+ b; y/ K6 h) T8 ^8 [
- (if (not (setq hlppath (findfile "acad.hlp")))
* Q Z' q4 i) D. {9 u. C$ @, X - (setq hlppath ""))& f: H" I" l8 Y6 |# Y# b
- (help hlppath "hpconfig")
3 d/ r: G' |8 D - (princ)
5 I% f6 ?, t7 Z- m - )) S- @/ y( M- O
- , h( q( k. S* O4 C \
- ;; OCECONFIG% Z! d" p2 p$ U- V
- (defun c:oceconfig (/ hlppath); v5 ?4 v9 H9 G. F; H# v
- (if (not (setq hlppath (findfile "acad.hlp")))) H3 m9 J9 L* ]/ k: L5 Y# c9 U0 {
- (setq hlppath ""))3 S7 _; Y# a" D% d! ?* r" m9 A. x
- (help hlppath "oceconfig")
1 T. l- p9 `, O1 X3 u - (princ)
9 ]6 [' p2 x# C5 k/ ]* p3 Q - )
- \$ i# \) \ Z% c8 _ e R - : u1 u* \# h) S
- ;; CCONFIG3 K0 @$ X% a: D7 ]8 L ]) |
- (defun c:cconfig (/ hlppath)
2 T ]8 ^) |" K# z9 O4 H - (if (not (setq hlppath (findfile "acad.hlp")))
4 X0 H: `6 H: N/ r - (setq hlppath ""))
1 K( z0 y5 A( K - (help hlppath "cconfig")
7 U4 E5 b3 m8 f2 E8 g# Y - (princ)5 T+ ^6 M9 k( h m! O
- )
4 N$ q: A, O3 Z4 A5 N" a - ( o# S9 E/ a: T& ]
- ;;; ===== AutoLoad =====/ C4 p2 {# e, h1 |& T9 d: E T
- / ?/ Q/ N8 R) U4 ^5 a
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
( J' W, X" f: u+ u# \" F - ;;; for the name of a certain appplication <appname>.& j( r7 g) h4 s; v' H2 q
- ;;; Returns T if <appname> is loaded.
* b6 H6 O& t$ w - 9 a0 p" M; d; b) c4 Y2 v, r' k
- (defun ai_AppLoaded (appname apptype)
( F3 W) c& D4 M0 D6 Z- e - (apply 'or
: c0 n& Z1 ?; t0 A - (mapcar 3 W" ?( j u; c) T Y5 }
- '(lambda (j). Y e% U$ [& N
- (wcmatch& f% C4 R3 D* w% _0 n) k1 l0 X
- (strcase j T)
% f' S& k, A* @' [2 A - (strcase (strcat "*" appname "*") T)
, `: @+ h& ]; r( Z/ f - )
" [5 a" @7 q$ `1 r6 |( e+ M - ). ^! \: z8 a+ ~0 t! Q
- (eval (list (read apptype)))
5 i9 ~1 X2 K! Z - )
2 l! a1 G! Z: q+ h8 ~1 O - )! l8 h. Z6 R- V) n9 U, c
- )
+ i+ U* s, I6 q" ~& h
: K7 F, D# O2 p- ;;
; Y: a. c6 Q6 C6 g$ Y: P: U - ;; Native Rx commands cannot be called with the "C:" syntax. They must
) t7 @0 k1 R4 M - ;; be called via (command). Therefore they require their own autoload
: `5 r8 |4 L1 M7 Q - ;; command.
8 u P! z' y( y% f) t/ w - $ K) N7 l8 S3 Q8 S% N/ e
- (defun autonativeload (app cmdliste / qapp)/ U6 u& ~' G% _4 m2 d$ i
- (setq qapp (strcat "\"" app "\""))9 J* J( {* M. ~: {
- (setq initstring "\nInitializing...")
' l/ K- B3 V; D r O$ {8 f" ]# A3 j - (mapcar
7 o- V8 s; u' Q - '(lambda (cmd / nom_cmd native_cmd). `% V/ R3 P9 p e$ g8 y
- (progn
" n( c2 t0 U3 \9 L2 B( X: {# B- x - (setq nom_cmd (strcat "C:" cmd))
0 ]& F% x C1 t. }5 S( Z - (setq native_cmd (strcat "\"_" cmd "\""))
, V+ m, c1 r, z - (if (not (eval (read nom_cmd)))! y9 b9 c; s+ V& m! m* _% g
- (eval
3 o4 t* q1 Z0 N. E4 g - (read (strcat+ V9 `2 l7 L# V1 _2 F+ r! ~/ \" k
- "(defun " nom_cmd "()" @9 |: h; @% w1 g/ Z
- "(setq m:err *error* *error* *merrmsg*)"
8 e9 P+ ]; s& Q5 c! _7 g( j$ n - "(if (ai_ffile " qapp ")"
3 P9 a* ]6 S6 q - "(progn (princ initstring)"
; e+ c0 V; q+ b" w4 ~! |" | - "(_autoarxload " qapp ") (command " native_cmd "))"
2 @' a8 ]0 q8 k+ ? - "(ai_nofile " qapp "))"* B B0 M! q' Q( b5 S0 z
- "(setq *error* m:err m:err nil))"8 t/ r U! ?. A2 V( K
- ))))))
& V' `8 Z" u1 K. ]7 `2 j - cmdliste): X8 G _4 ?5 e" ?, _5 ]
- nil
9 M: b' u5 W/ P) d7 p0 F - )
& k; M8 X: j, v: z0 X p" } - h6 u) ~! x6 Q
- (defun _autoqload (quoi app cmdliste / qapp symnam)
7 n0 x8 |# _# m - (setq qapp (strcat "\"" app "\""))! M) v5 W; ^! m& n2 `
- (setq initstring "\nInitializing...")
6 ?0 A0 m3 l/ Z - (mapcar
; i7 P4 E1 r) m' n4 U% u; ] - '(lambda (cmd / nom_cmd)$ T' d2 J; O) Y# s, t) j/ a
- (progn* F% C$ O$ m& E& |
- (setq nom_cmd (strcat "C:" cmd))
1 l Z$ _* Y3 |8 [7 D+ j - (if (not (eval (read nom_cmd)))" A6 t! k0 _9 k4 s8 z7 C: K
- (eval6 b% L* w; z; U4 P, W# b
- (read (strcat
6 M. ?- V0 I% S) }, `8 e. O) H5 H - "(defun " nom_cmd "( / rtn)"1 R7 W0 g+ S( m
- "(setq m:err *error* *error* *merrmsg*)"9 `1 G* Z ~( p/ i* \! W% I
- "(if (ai_ffile " qapp ")"* a1 p$ Q, j7 v' s+ {! I
- "(progn (princ initstring)"
/ d) `% W' f* _" l9 i - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
; A w: b. `* L - "(ai_nofile " qapp "))"
7 p2 H: B2 ]5 J0 V - "(setq *error* m:err m:err nil)"
$ I8 \" ?9 t* s7 m) [: _7 I P - "rtn)"
2 w& Z6 @2 q# i: ]* h& Y - )))))): f9 v) f6 P( c
- cmdliste)
7 f' D$ j1 d0 r - nil* m( E% H9 g8 ^
- )
8 N* a7 u. r6 { {$ _- a! e, m
+ @. d ~0 T% Q* L5 n" y5 Z1 q- (defun autoload (app cmdliste)) f9 ]- K N* a4 i7 Z
- (_autoqload "" app cmdliste)1 O- }+ R+ G8 i6 `, z/ ~2 {0 [6 m7 j0 ~
- )
1 `+ u7 U2 \& R E- Q1 M& Y - 5 k( s+ a* S3 x$ O7 l' A
- (defun autoarxload (app cmdliste)
3 m# r/ U4 w/ `; o - (_autoqload "arx" app cmdliste)3 P1 @3 }$ M( j" m
- )
7 D; p" e k& h R& ^& V - * x4 d3 g3 p9 x+ w' l" o
- (defun autoarxacedload (app cmdliste / qapp symnam). [. W! Q% \- e% ]
- (setq qapp (strcat "\"" app "\""))! b; a9 K* D3 P. ^- D' Y1 J
- (setq initstring "\nInitializing...")2 ~. i& @) v$ `4 J, P; _; [6 P
- (mapcar
5 {0 w, ~6 K, W/ Z% _1 b - '(lambda (cmd / nom_cmd)/ _* q" m* q0 R2 ?
- (progn
( ^8 l- @2 Y2 e2 j, U) T8 M' a - (setq nom_cmd (strcat "C:" cmd))7 b7 c9 w6 z. r& L- o- @
- (if (not (eval (read nom_cmd)))
7 K( n- A. X1 d) ^: X) T - (eval9 w) V" I% s, a5 c3 m
- (read (strcat% S& g4 y; ~. {5 m5 K
- "(defun " nom_cmd "( / oldcmdecho)"8 |9 ]! l9 _8 T# P/ F
- "(setq m:err *error* *error* *merrmsg*)"3 Z/ _5 |( Z* r5 j% k1 n
- "(if (ai_ffile " qapp ")"
, g8 U: X; x4 Q: f$ m! p - "(progn (princ initstring)"
* j1 {; _' z, _3 B - "(_autoarxload " qapp ")"
/ b, n9 g, G2 @8 y - "(setq oldcmdecho (getvar \"CMDECHO\"))"
$ F0 V5 H3 l/ t0 X# { - "(setvar \"CMDECHO\" 0)"
" I) u0 S f% y- q8 C - "(command " "\"_" cmd "\"" ")"2 \2 F* [, z, q% p2 a
- "(setvar \"CMDECHO\" oldcmdecho))"
7 i4 G, u: h" h# Y5 B4 ^9 W - "(ai_nofile " qapp "))"! U% ^7 V9 Q) b4 }- p
- "(setq *error* m:err m:err nil)"
0 y1 R0 x L2 @6 h9 f* ~) ] - "(princ))"
O5 J0 n' z% g+ }# S: R( D - ))))))" P) p3 S/ p9 s" o
- cmdliste)
+ q% s4 f3 S B$ f$ {$ y1 ?% C - nil" k& ^* B& U% Y% m
- )0 l: V0 a* h! a9 _
) k3 g' m: d5 R) u+ G" X* ^, n9 n- (defun _autoload (app)7 T3 @' a Z, u$ Y* ?6 ?
- ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
$ r; ~6 p& |! ^ - (load app). a6 K; r7 O# `8 D! X- y
- )
: ]4 B) i/ ~5 ~ - % Z0 s- g; V& f5 v; i. [) m. U1 t1 v
- (defun _autoarxload (app)
: ?) J' T; ^) u0 X+ u) I3 S - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
1 n( Z! f3 p5 [0 n2 e - (arxload app)
) N7 F" T% H7 H4 e. Q1 F$ L6 M - ): N4 M8 g- ~! g4 B! a
- : A- g) g" h7 p! Y# {& l: U8 i1 v
- (defun ai_ffile (app)
! O+ P0 @- ?/ _* p2 j; {5 ?7 ~ - (or (findfile (strcat app ".lsp"))9 R8 w" H5 m" i( s4 U- `& G
- (findfile (strcat app ".exp"))( { D4 r, I; z- Q
- (findfile (strcat app ".exe"))) k% M/ i o5 S" |. S
- (findfile (strcat app ".arx"))6 G: _4 Q( [# ?) y O5 o
- (findfile app)& w. t) E2 i8 j' T) U @
- )
* C/ x+ Y" u" l. I6 B, J& ~ - )
Y6 A& l0 F; u8 ^8 a: U2 y/ j
0 H8 P- M+ J$ q5 c7 K9 ^% J6 p- (defun ai_nofile (filename)
# {" k) c' g( G+ z3 R; H - (princ) K4 q8 F. I" r- n3 [
- (strcat "\nThe file "
7 {1 c+ ~4 ^3 m - filename
9 _1 S9 S' V( M1 i3 _# o - "(.lsp/.exe/.arx) was not found in your search path folders."- C6 e" J: E t( U( P) N+ F3 o
- )! @* I5 X# x8 G4 }
- )
6 Q- ^- }% u) d! a - (princ "\nCheck the installation of the support files and try again.")# S4 W! V! m/ d# K% O4 P: A
- (princ)
! R2 i8 Y' T4 m! ^1 }' N6 k9 V9 ~2 _ - )) Z' D G" M' }; M: z* i
, ^" t& q) V, [: t+ G3 v- C1 S( r
0 N% Z8 M% K( r- l- ;;;===== AutoLoad LISP Applications =====* G* M. o7 \3 g1 t$ E) b7 N2 Z
- ; Set help for those apps with a command line interface& K4 b. I3 m. \
- 4 k+ {: E$ E. m8 z5 k! S8 ~% K
- (autoload "edge" '("edge")), h4 o; ]/ S4 x1 k5 K5 Z
- (setfunhelp "C:edge" "" "edge")% B6 k& y" v' v- U' i
- g0 D8 |( u- P1 L, V! ~
- (autoload "filter" '("filter " "filter"))+ o" W2 |5 E+ J Z7 t0 L" S1 V
$ U% K8 o# k. c6 K1 E5 ^. O: x4 l- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
. S7 A1 h; {# {! A - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
0 F/ {2 f5 D$ S& K - )* S, Y8 {) E6 @( H2 M
- (setfunhelp "C:3d" "" "3d")' e/ z- `, L- d
- (setfunhelp "C:ai_box" "" "3d_box")
% n2 R" {2 n1 {+ `' r' p/ C - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")$ n G- g b" t8 k" j8 U) {; e. B
- (setfunhelp "C:ai__wedge" "" "3d_wedge")
6 ~4 E* g! n5 F& D3 b1 [" F - (setfunhelp "C:ai_dome" "" "3d_dome")
, T% N- S2 P' _7 ], J9 V - (setfunhelp "C:ai_mesh" "" "3d_mesh")3 y1 J2 l5 j: _; ]
- (setfunhelp "C:ai_sphere" "" "3d_sphere")" f% e* ^0 X2 c1 j
- (setfunhelp "C:ai_cone" "" "3d_cone")" X) X, j2 L/ j7 i5 G% r
- (setfunhelp "C:ai_torus" "" "3d_torus")
! y6 L8 O* A9 F# c7 Z - (setfunhelp "C:ai_dish" "" "3d_dish")' m( V2 d- D6 ~7 b7 h0 E
8 l9 {" w( D0 e7 m1 ~7 N+ r+ P3 M- (autoload "3darray" '("3darray"))
9 N; z" G/ ]0 }; D - (setfunhelp "C:3darray" "" "3darray")/ y5 \2 X, Y _6 q) G
5 x3 l+ P5 t1 e0 e0 C- | f! t5 g! p- (autoload "ddvpoint" '("ddvpoint"))
4 c( y' D! }) ] A6 E4 K. h* F
0 G0 H$ I! ?7 R w- (autoload "mvsetup" '("mvsetup"))
c9 U+ U& i7 e! \2 Y e - (setfunhelp "C:mvsetup" "" "mvsetup")( |3 O; K& U' U( E2 m0 y+ P
+ Z1 K+ M) \9 P( \- |- (autoload "ddptype" '("ddptype")); M" J' m- ]; G$ {7 X# l+ u
- 1 |4 A' ?% F+ q1 U% Z
- (autoload "attredef" '("attredef"))1 h( F* R1 N- O
- (setfunhelp "C:attredef" "" "attredef")
, f" u- L0 |8 V& X7 @2 I6 P; |
7 A' {( J# D3 ?. [# I1 f; n- (autoload "xplode" '("xp" "xplode"))6 n4 M2 w: s; R4 E' B* g; v2 h
- (setfunhelp "C:xplode" "" "xplode")
; Y/ e6 I7 l Y* y- j* r- h( g2 M - 3 X$ d5 s0 m: }8 W2 X' k" [) e: t
- (autoload "tutorial" '("tutdemo" "tutclear"
" `7 n8 |, V* N% z+ c& }& S - "tutdemo"
' E4 Z) r e/ M1 L/ P$ H) E1 h - "tutclear"))
# r6 n4 U' L2 w - v5 J) {9 I% u5 ~+ S. R' S
- ;;;===== AutoArxLoad Arx Applications =====/ ?8 k; m4 ^6 Q" k& m0 ~
- / n5 o* i- G+ K- u
- (autoarxload "geomcal" '("cal" "cal"))# r) s7 F, y) N' k
( |5 ?- A( e* j, G E/ U- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
7 j2 R, x8 r* o/ ` - "mirror3d" "rotate3d"
8 L i% A& t4 p& V' ? - "align"))
' L" _! V' F) A0 J5 w* a/ `. q - ' f k2 i9 J# X) @
- 1 a3 K- N4 q E0 P4 s
- ;;; ===== Double byte character handling functions =====
9 v/ t" [0 H, |9 K0 H) r - # D9 b: p/ a0 E& e4 W7 N5 k
- (defun is_lead_byte(code)
8 D! G) j9 x0 m: O( a - (setq asia_cd (getvar "dwgcodepage"))
5 {, `# n' C& f2 i - (cond
( n& H/ \( C; m2 k( | - ( (or (= asia_cd "dos932")
9 g' z1 x# J- H2 A6 E - (= asia_cd "ANSI_932")
# F/ d2 X& U8 n7 E$ a# u; C - )
+ C7 B0 ?; f" l/ d/ I/ \ - (or (and (<= 129 code) (<= code 159))
" {: H4 q# }& V1 J5 A - (and (<= 224 code) (<= code 252))4 a4 A- q! e( D [
- )2 A1 B3 Q$ Q9 W* K' ]1 j% ~
- ). B3 X& j: p( l' a" \
- ( (or (= asia_cd "big5")
6 b' I) F) b. J6 i6 t$ P - (= asia_cd "ANSI_950")- J! e: E* N$ w8 M7 d
- )
! A: G j0 D2 [) T% K9 [! g - (and (<= 129 code) (<= code 254))
m5 L* T/ t$ P5 g, p2 Z5 } - )
7 \ b; j, U3 G3 X7 S- f! o - ( (or (= asia_cd "gb2312")( l( E) B- Z; X% {1 k% T& C1 e
- (= asia_cd "ANSI_936")
- i; p7 \5 m% K) P. F - ). B1 ]5 l% a& D3 }
- (and (<= 161 code) (<= code 254))
: B: z9 _' y5 j' ?, K - )6 w; z% s" i u( H
- ( (or (= asia_cd "johab")
/ _9 l5 N- ]7 h2 g - (= asia_cd "ANSI_1361")6 m r& g/ n% m! ?1 t( c7 g9 g9 C1 ]
- )
! L& J. g7 {0 l2 I3 T& B3 A% \ - (and (<= 132 code) (<= code 211))) O Q* K9 E' Z* i
- )- o" }$ _ V( q
- ( (or (= asia_cd "ksc5601")
* ?" U. u1 ], N" D - (= asia_cd "ANSI_949")% M- o( N- G2 r5 X$ v4 ?
- )
3 H# C" [: j" l- F - (and (<= 129 code) (<= code 254))
2 d! ^. D+ X' K. o/ {# A$ e% | - )& ^# l9 A! Q \* N/ K$ s
- )9 k6 J# f. P7 ]
- )
1 | _3 i7 X$ f! C1 ^
: T6 w9 N; D- T4 H# [ i. R- ;;; ====================================================
' ~. u8 n, ~( Y9 `0 w) [! M% w! P! _3 s
4 l3 p) Q* ~$ \6 O5 O n& \4 D
' d; b6 f) l Z- ;;;
L0 g' X- ? ]& P' e/ }2 i - ;;; FITSTR2LEN
. D7 i! f1 F4 X0 z8 A - ;;;: y3 V5 m1 e3 z% _5 F
- ;;; Truncates the given string to the given length.
+ M2 K3 D2 [- L! L. S6 M8 c - ;;; This function should be used to fit symbol table names, that
! N! @8 H3 u/ G, r - ;;; may turn into \U+ sequences into a given size to be displayed
6 Y' x: Q% ~5 J- p) ^; H. x$ [ - ;;; inside a dialog box.+ y# D4 d; R( Z& P
- ;;;
3 D; ?7 ?* f: i3 k" n6 i* q$ }; G - ;;; Ex: the following string: 0 @7 s# s3 }7 }% L2 j1 C
- ;;;
6 v$ X5 g$ p2 F8 w7 }% S' V - ;;; "This is a long string that will not fit into a 32 character static text box."
0 O" i, F7 r) k/ z" @* H7 i+ \ - ;;;$ A+ A1 A" [3 l
- ;;; would display as a 32 character long string as follows:
" G3 D/ T! [- {2 f/ T0 w, ^ - ;;;
& z: z+ f0 k5 A - ;;; "This is a long...tatic text box.", y& ]% J2 J9 k; X2 Z6 Y
- ;;;
" A" a# \+ R! Z1 K - ; z. @) E$ Y" Q
- (defun fitstr2len (str1 maxlen)' Z6 y$ D8 L( e
- 3 ^: o9 b) b0 }, j* V
- ;;; initialize internals8 c8 G6 P+ z( k6 [4 ?
- (setq tmpstr str1)/ P* w: b: W0 _8 e& p8 X# c
- (setq len (strlen tmpstr))
1 \+ M5 f3 n7 A1 I V( A* E2 d9 ? - Y5 K3 R6 Q. v) c
- (if (> len maxlen) 1 o& E+ i: V# r# L) K. j
- (progn
$ t, w: u/ S* |/ W! \" i2 b - (setq maxlen2 (/ maxlen 2))# D+ v4 S( L% B0 n4 d
- (if (> maxlen (* maxlen2 2))
0 j* D9 c1 h' n/ {/ `+ Z2 D - (setq maxlen2 (- maxlen2 1))
1 r+ p2 s# {% y# O0 |6 |" Y+ k" _ - )
! P0 m9 @, ]+ ^ @9 a f% z - (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
# N5 V9 X8 b+ A2 u - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))( C+ S/ h. E9 O2 ^- x
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
4 i5 S/ X/ J& q+ n* O' @ - )
5 p0 e" S& e' \* N0 N. x; E - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
2 D' N$ D N0 Q' x5 Y& l - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))1 g6 ^7 D g* v# z
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))9 n; ^% g+ i, [( X, J
- )
& \9 P# v# P# G; _& p" N - (setq str2 (strcat tmpstr1 "..." tmpstr2))
# j5 \2 ~3 Q& E# C/ [$ C - ) ;;; progn. }: r+ W/ H& E) {( D+ B
- (setq str2 (strcat tmpstr))8 B7 y+ q0 }2 F- ^* R* w8 R3 X
- ) ;;; if
3 \% [" e2 u9 y0 h4 T% m - ) ;;; defun Q( P5 I" w& t* X
2 K% w! s+ d; o; C- $ K6 u5 Z3 C7 R5 [- b* N( p% b
- ;;;$ u2 Y) R# j' r6 n% ^
- ;;; If the first object in a selection set has an attached URL
% U- n9 X( y! V/ |" j - ;;; Then launch browser and point to the URL.
5 ~" ~$ Q2 `- G, H, U! ]* H - ;;; Called by the Grips Cursor Menu) [ j) [9 o$ k! p- A, A8 E; }: C
- ;;;4 }, ~" f$ D4 A
' c( X4 r' o. T; K; g; t) g E- (defun C:gotourl ( / ssurl url i)
) q1 v* Z/ w$ z9 g' b% f - (setq m:err *error* *error* *merrmsg* i 0)
]! N( L, ~8 h4 o( l# `9 ]9 I - \# V$ ^- ~1 p! E) y7 v: D
- ; if some objects are not already pickfirst selected, 6 U) h+ M" m# N3 I! A1 Y
- ; then allow objects to be selected5 G9 x4 s$ y3 h3 T! ?) V) [! ?
- 7 j- w+ N- J6 P; ]- k; C
- (if (not (setq ssurl (ssget "_I"))): j d# i. h1 T6 K: b# g w: j
- (setq ssurl (ssget))
( }" m, p- h q% `1 L - )# s# y. Q: Y) g( U
7 b G5 n M) U$ D# \- ; if geturl LISP command not found then load arx application* a( i5 k# P* U0 _! W0 C
- ) V2 J, Y% Q) [( I6 T3 u
- (if (/= (type geturl) 'EXRXSUBR)
: c8 E8 \; x* Z/ N0 ^3 x' m - (arxload "dwfout"); U1 m4 A' h. o8 h
- )
) _ A, V" {6 D& C- ] - . o) s! l: D) ]" i* R
- ; Search list for first object with an URL
9 ?3 G9 r% Q# k - (while (and (= url nil) (< i (sslength ssurl)))/ U. G8 l; ^7 c. O" T( C
- (setq url (geturl (ssname ssurl i))
2 F& _6 n8 U! ^; r! D4 ?; e - i (1+ i))
6 y% _0 h+ G( _3 M+ O" T - )
: d$ q0 {" M3 }3 s" N1 p7 m
5 Y+ f/ X2 l' K o% G( n' W! G- ; If an URL has be found, open browser and point to URL
) [* c6 D& ?. ^0 Z! i; f' g6 t/ ?* ~ - (if (= url nil)6 u' w1 I r1 P6 h7 z! X/ r! Y
- (alert "No Universal Resource Locator associated with the object.")' a, F) j# S- x5 s- u
- (command "_.browser" url): z0 S6 |6 l6 Y, w& M+ r
- )
8 Y2 I+ f/ E/ L3 I. E - ( h1 m1 c7 e9 {# u8 K6 n
- (setq *error* m:err m:err nil)
" k8 v9 k; \$ K - (princ)/ P% C: p' n* L. A9 j) j/ j- a
- 8 H+ V9 B0 o: U+ B# u5 S6 a( d* p2 q
- )
. u0 H3 M7 {( d& Q$ D
, W# `; W4 @) @2 s; s7 s' _- ;; Used by the import dialog to silently load a 3ds file. y& x' {' G# p7 t$ U0 K* z
- (defun import3ds (filename / filedia_old render)
: f- c0 t5 U9 Z+ Y Y - ;; Load Render if not loaded% {! P' w x# S$ O2 f j6 Y" ~' X
- (setq render (findfile "acRender.arx"))
1 T0 d H+ {5 M$ F3 } - (if render) t, ~. X9 l6 u9 [7 K9 I
- (verify_arxapp_loaded render)
8 W( ?, P- I4 ]% n% s - (quit)
5 r7 V Y% [' K, Q6 ] r3 f, A3 F - )
$ T4 ~' z9 u5 n: V Y, x9 d - 7 W3 m0 E" ^! e! J, Y
- ;; Save current filedia & cmdecho setting.
) a8 y! E5 @0 D" i. D - (setq filedia-save (getvar "FILEDIA"))
8 T' h& `! _6 D- R - (setq cmdecho-save (getvar "CMDECHO"))2 P( J1 O/ ]/ {8 D
- (setvar "FILEDIA" 0)
8 w/ l0 Y! ?! Q) o: J - (setvar "CMDECHO" 0)
6 r2 @* J3 z. S% @2 U0 d - |/ A) t7 d* B( B2 i4 ~6 R
- ;; Call 3DSIN and pass in filename.
: l' e0 L0 r( f& ~4 m# z - (c:3dsin 1 filename)5 }! Q5 k* c5 Z0 K. w: v1 E9 g2 y
- , _) r9 n- ~ w$ F3 Y* ^! x
- ;; Reset filedia & cmdecho+ h9 A5 a) B! c) `; e
- (setvar "FILEDIA" filedia-save)
/ A7 J8 t, c4 q' f - (setvar "CMDECHO" cmdecho-save): R+ e$ k- J5 V. R- r
- (princ)( s% k, `9 d+ X# k
- ). C4 D: ^2 ?% H9 ^
7 x/ i7 N/ e8 d/ u- ~
( h/ l/ t i* q' ^4 H4 R- ;;;=== Menu Functions ======================================
3 B3 s1 W0 `5 N* |2 R - 2 E) a2 J* F9 E! u
- (defun ai_rootmenus ()
- u. ?2 o. F2 S* l% D1 y - (setq T_MENU 0)
7 r7 B4 [4 E( s - (menucmd "S=S")
& ~4 c- `& R* X& R# d - (menucmd "S=ACAD.S")1 K! l/ l7 |) y7 A7 N
- (princ)+ \ s) M& C2 j9 S" c
- )7 H. I6 f& l; P9 I
' ?9 r% T5 b+ |) r& e+ g- (defun c:ai_fms ( / fmsa fmsb)) ^2 h5 i3 r+ Q" a* R7 J0 G
- (setq m:err *error* *error* *merr*)
: N( A& G; V6 n0 B - (ai_undo_push)( }+ c. V) s: u+ I5 D$ I
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
# [# q- a$ {& v- l - (setq fmsa (vports) fmsb (nth 0 fmsa))4 d0 B& f1 w" | e5 x$ b( N
- (if (member 1 fmsb)5 x4 q% C9 u7 g& e$ X
- (if (> (length fmsa) 1)2 l0 t- |+ d: B. l9 N! M
- (command "_.mspace")
, W! @; l- G& t# v: L - (progn, o, S5 b7 s6 F- R6 L
- (ai_sysvar '("cmdecho" . 1))
* d; j+ F/ l" {& Y1 b/ c" e, g - (command "_.mview")& k$ _0 Q9 f7 _3 z1 q
- (while (eq 1 (logand 1 (getvar "CMDACTIVE")))& Y" `+ c* q( g; y- r( q
- (command pause)% N! I; O* r- Q" D5 z. h
- )
8 Y( g9 u+ F/ { - (ai_sysvar NIL)
2 A e5 T+ j& d. B0 v$ \ - (command "_.mspace")
( ~" d2 [, K; s5 N# _ - )$ I( q5 Z' u1 L- D* l! l
- )7 }! y) p, R, F9 P5 T! F' W
- )$ [- d$ U' ]8 k; h% H1 S$ E0 U e
- (ai_undo_pop)( u4 ]/ M, ~! m0 i# ?& b& l3 l: w
- (setq *error* m:err m:err nil)
, F3 k+ P- e3 _3 i8 D& b2 s$ d( G - (princ)
( w/ k; z, b+ Z9 n; J1 _ - )( L3 c$ n- N0 ^, H& h
; `# F) T! c8 o3 u2 C% E- f- (defun ai_onoff (var)( A: G! J. _- T% @
- (setvar var (abs (1- (getvar var)))): e4 N+ D( i' Y( s$ Z" r" Q4 N" G4 I3 X
- (princ)3 y! [* w/ x. d" C- Y
- )( N y5 q) e6 g6 h1 K
+ r% y. `) i: F) E/ a5 Y* u- ;;; go to paper space
: J% J1 \7 O! @: U) o) I - (defun c:ai_pspace ()0 `) Q/ O; m* b3 f% f
- (ai_undo_push)
% b6 H0 g; s+ W# T6 a4 I$ \: @ - (if (/= 0 (getvar "tilemode"))
2 o1 w" V. S4 @: y5 O% Z. o, X, [ - (command "_.tilemode" 0)" ^: e2 S0 `. E
- ), j1 w$ w* y- J! ]+ ]% |. a
- (if (/= 1 (getvar "cvport"))
. _% p& T6 ^0 O i- a7 G: n& B g( \9 U - (command "_.pspace") i" u9 k$ Z8 g ^+ ` N+ P6 { ]
- )6 k6 j' v2 v8 H: F, m( l1 M
- (ai_undo_pop)
/ x9 ~5 ~" m% F- I7 {9 v8 Q* i1 S - (princ)
2 e2 l* N1 L& ]0 C% f& s' ^5 ` - )% ?) z7 R. O" c6 b7 @- Q
- d! Q# [7 O+ f; i/ b. Y6 h
- ;;; go to tilemode 1
/ C! b- m8 h7 K" R2 {, T! V2 F, b ` - (defun c:ai_tilemode1 ()1 b" c. d& X U: U$ R
- (ai_undo_push)/ F2 x$ k; p9 K4 c
- (if (/= 1 (getvar "tilemode"))
$ x* J: f+ q0 Z0 T - (command "_.tilemode" 1)0 v" H j5 ?* ]4 ?; N% n) ?. H! C
- )
/ y t. K6 b3 X& X( C - (ai_undo_pop)
7 V9 @9 x0 u, M3 ]& i' y - (princ)/ {4 w4 c! H- ]8 a2 Z6 _
- )
% o% P9 u+ T' V4 t G6 K4 \6 x - ) }3 U3 t1 }7 O, K
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
% c1 e% V. }* K/ z& [ - ;;; Toolbar Dimensions/ Align Text/ Centered' h n$ A7 k* M0 f5 R
- " o+ v9 w2 u: K3 t p; _
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)) u5 {' R% P: u) U; ?
- (setq ai_sysvar (getvar "cmdecho"))( R7 x8 G1 `8 k5 c2 u* |
- (setvar "cmdecho" 0)9 g& a( V- H E; x, O9 v3 V
- (cond
4 N* @8 x. T4 u0 O8 n3 i2 O$ Q! T - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
1 ^1 ^* @' \" ~; b3 h. u5 W9 Y - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" 9 o5 i% `! B2 w% e; c: j" b$ q
- "_.dimtedit" ai_dim_ss "_h")
& V% ?# W0 x* L5 } b: s/ Z1 q - )
5 d: k& M% L- W) g! T" o - (T nil)! d: G5 l& F- A& Z! w
- )& W* @: k6 R/ f8 U t/ F2 Q
- (setvar "cmdecho" ai_sysvar)
: N6 i. e+ r$ P - (princ)
) A% n- S# h9 H! z0 @ - )' S$ n' O4 l: [; \! ]
. P) ?. K, G! O# ?* Z- K3 L0 i- ;;; Shortcut menu for Dimension Text Above & x' E8 v$ m j; Y2 a3 i- o' k; L
- ' G3 [) |- {: G$ m ]7 v) {/ R
- (defun c:ai_dim_textabove (/ ss)' r- H" g0 n$ `9 @2 X) F
- (ai_sysvar '("cmdecho" . 0))
; b' I- I$ n* j* a+ R - (if (setq ss (ssget "_I"))
% P& v* k$ v4 N - (command "_.dimoverride" "_dimtad" 3 "" ss "")
+ k0 |: Q4 ^' v' ?1 |9 C* P - (if (setq ss (ssget))$ @# f- ^4 g* K: H5 k& l
- (command "_.dimoverride" "_dimtad" 3 "" ss "") 5 \2 V. C9 [1 V' p
- )
; I! Z" M& {& s" y7 E ` - )2 i* c W4 O+ W; p- y% \
- (ai_sysvar NIL)' w: ?% M0 ]" a2 e0 B9 Q+ r8 K
- (princ)
, `. ? @/ o( a - )
) N- Q5 x( O/ K4 `/ Z2 R. _# ^ - ; H: W+ |2 ^3 \7 |
- ;;; Shortcut menu for Dimension Text Center ( a/ I4 D1 K) r/ z$ T V* o
( a, k: v' ?# R+ O/ f- (defun c:ai_dim_textcenter (/ ss)( v2 |8 \7 @# a
- (ai_sysvar '("cmdecho" . 0))8 D' |5 d5 O. n3 N+ x# W, L
- (if (setq ss (ssget "_I"))# _3 G% E& ~4 R. n1 y$ ?9 |
- (command "_.dimoverride" "_dimtad" 0 "" ss "")$ c) l% Z7 M9 |, V7 [3 a J' D
- (if (setq ss (ssget))
( A7 ^( _; q0 f3 u! w - (command "_.dimoverride" "_dimtad" 0 "" ss "")
+ Q, l+ i: {/ q! U% E0 O/ \6 v - )
) f8 x) o9 o0 c7 y2 m9 U! y# |# o- D6 ~ - )
. c- L3 X7 G% E) q7 F2 d2 @1 l - (ai_sysvar NIL)( Q s) G [1 X/ H/ m6 m( A1 Q
- (princ)
! ?) }5 |: A2 I! g& a+ R0 N - )
7 r! X e: C4 v) z7 L3 E0 r - 2 Y6 K; S" D1 ~* a1 ]
- ;;; Shortcut menu for Dimension Text Home
$ L! N% D& b" Z8 D) `0 O1 Q% u - & J. @* B# h, Y, F/ F+ |0 [3 D
- (defun c:ai_dim_texthome (/ ss)
2 {$ W H$ J! ^5 R% G6 Q - (ai_sysvar '("cmdecho" . 0))
2 V5 Z4 N+ J% Z/ e, G. F- T; ^ - (if (setq ss (ssget "_I"))- T- r( C4 U P* H. F
- (command "_.dimedit" "_h")
( h E3 G) V" |1 i% _ - (if (setq ss (ssget)); U4 i. M3 ^1 Z" j
- (command "_.dimedit" "_h" ss)
! O, [7 o) W, V7 ?* ~ - )
m& n) G2 Z; ~ b" H8 Z7 P3 Y - )
/ B: M- A9 U% ^3 Z$ b - (ai_sysvar NIL)/ `! X$ {2 G9 M# B: q
- (princ)
s/ ~% T+ H# P# `/ M' n4 S - )1 y. c& F3 D! B1 s7 b
- . u3 g7 @: y, N2 ]
- ' E$ H4 R9 T; W1 | S
- ;;; Screen menu item for CIRCLE TaTaTan option.
% M/ p, f. d' G9 }% |8 A& z - ;;; first, get points on entities$ X4 R7 P2 E. O3 T* ]
- (defun ai_circtanstart()' e/ ~) p: e$ E% L& K4 x' b; C8 l
- (setq m:err *error* *error* *merr*)
2 h: e2 X& `3 k. S- t7 ]9 G$ k7 Z - (ai_sysvar , o; T8 t ^9 r
- (list '("cmdecho" . 0), w& A W" P7 L- n8 F
- ;; make sure _tan pick for CIRCLE gets same entity. c# z( ?7 ?! f+ ?; d# @' G
- (cons "aperture" (getvar "pickbox")): J6 ?% H) @- z# f0 i% t3 }" b% b& f
- )
Y% M% }0 T7 T5 A5 ? - )3 X T6 f4 h; l* y
- ;; prompts are the same as CIRCLE/TTR command option& ~: l/ |+ x3 x I d) C* ^" }1 \, x
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))3 Y) X2 }/ G: p. ~
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
) R$ Q1 j6 `2 z, J: O - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
: r0 p0 K S. y5 s+ ] - )% Y% F, @- }$ y! T1 I8 x
- ;;; Command-line version& N0 D+ l( V4 p) m' t2 |
- (defun c:ai_circtan (/ pt1 pt2 pt3)7 J5 Y8 d8 U5 d$ G$ a% q# p
- (ai_circtanstart)
9 I9 f" t4 o) q
. d5 B# E, ^% \$ ?6 ^/ u: M' C- (ai_sysvar '("osmode" . 256))9 r* E5 E& J/ f; P7 z6 O
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)9 ]( g5 x0 ` c3 m4 n" u% ]
- 0 `. o' W" p( W5 P
- (ai_sysvar nil)
' |" L: L& q1 c0 h - (setq *error* m:err m:err nil)6 T2 Q- Z) Q/ S4 V% m# {
- (princ)5 h4 g/ j+ v+ n- p' N2 Y- D" s& R
- )) N0 k6 n6 y! p* [/ Z* X
- ;;; Use this if CMDNAMES == CIRCLE
/ w! i6 Q6 c4 g9 T+ V - (defun ai_circtan (/ pt1 pt2 pt3)
# E8 X1 p5 W' o" G: a6 _6 U - (ai_circtanstart)
4 E& E) j+ u& d4 H- S - & X6 P ~+ N, p# r. D- s: S
- (ai_sysvar '("osmode" . 256))
, q1 o' w# t7 r - (command "_3p" pt1 pt2 pt3)
& t1 P, l! H h# Y! z -
, L; r* F. k1 I4 b - (ai_sysvar nil)
& G; k0 D6 \ A: d - (setq *error* m:err m:err nil)
- g5 l6 E5 L1 v$ s/ q3 H) Y% j' y - (princ)
$ z0 ]2 q$ t: _2 N/ n# H - )
( z# o) J3 s7 q: t/ q - - g" {. l; U% k- K6 J% o( s
# o/ ? ]% ~5 T5 ?
0 y3 f) g6 } D) u5 ]( U K- ;;; Shortcut menu Deselect All item.0 J9 h8 O) |3 h N. ~) m
- U* g5 u% u6 [4 x1 M i: E0 `
- (defun ai_deselect ()- O5 f! z1 o3 z3 [4 D( i- k
- (if (= (getvar "cmdecho") 0) ;start if
$ Y: X, T0 e9 @2 Y+ _4 V, j - (command "_.select" "_r" "_all" "")/ T3 E1 m$ [! ?" t+ w
- (progn ;start progn for cmdecho 1
8 M; l$ Q; Z$ n" n) A! U - (setvar "cmdecho" 0)) ], D' _6 h A( S
- (command "_.select" "_r" "_all" "")
8 k6 h5 w- K( B S# O$ k& S$ m - (setvar "cmdecho" 1)% t& d1 t' R% a: e8 \2 O/ _
- ) ;end progn for cmdecho 1
2 _" @; |# x3 Q - ) ;end if
; P: U8 w( x b6 S# d - (terpri)
2 I1 p* k& y- ~9 r3 x' E- u6 }* W - (prompt "Everything has been deselected")
& x! D2 c* q7 ?% [7 S# ^ - (princ)
! k0 A1 T+ e5 U4 }/ W - )9 Z* `7 w. o$ F% v; x
% @4 ^0 C8 p, }* V+ V! A$ Y. U- ;;; Command version of ai_deselect to be called from the CUI$ s3 P+ d2 N/ @2 e$ z
- ;;; so it gets properly recorded by the Action Recorder
/ n; c- h1 b/ B ~4 j5 T# `- h& H - ;;;
2 r* }& j1 d5 y+ ` - (defun c:ai_deselect ()
- J* S# A+ B: X) _ - (ai_deselect)
c; s0 ]6 b4 T R/ R+ Y - (princ)
3 W3 w, ?+ F# J( g) V2 X: B" D - )
% E/ y* v9 _' }, | - . E+ v1 z4 M( H
- ;;;# C: w+ x* o2 k# h/ ~! d# e4 k
- ;;; Enable Draworder to be called from a menu
0 d& j) [( j& y8 Q/ b - ;;; Checks for Pickfirst selected objects8 Y! k1 Q# c: J3 u& C
- ;;;
; v' v3 K8 F% f2 J2 ` - ! Z% z( [3 Z q6 c. ]% r Q3 w9 c
- (defun ai_draworder (option / ss )0 I5 p& m7 N4 e5 {; `
- 8 X# Y1 b- l. e2 A% S7 z& W
- (setq m:err *error* *error* *merr*)' O. d7 q, }' W1 q3 b# U5 J+ _
- (ai_sysvar '("cmdecho" . 0))8 Y' }! x0 Z$ n- l/ A$ G1 a; ~( b. q
- $ Y! P5 n3 i$ G5 _1 O5 N
- (if (setq ss (ssget "_I"))8 \5 |, d9 |) v, V
- (command "_.draworder" option)) O5 `! @- R& v
- (if (setq ss (ssget)), K0 ?& H5 A) o: U- Q* o
- (command "_.draworder" ss "" option)
0 s# ~4 X% ~( H& e% } - )
* h$ t4 V# M2 Z' h* r2 e) }, j( u - )
* I5 C" `+ i2 T$ `" t$ \! i7 ? - (ai_sysvar NIL)
* u" E1 a# n9 v3 v; F7 [" V - (setq *error* m:err m:err nil)
9 Q5 i0 |% h8 V" J
9 y) s$ \" o) {) X! a- (princ), |5 I$ e1 A% v- U1 Q; l
- )$ b0 j: I) C8 P" ~( C
" {, j# ? M) G3 V/ F$ P+ h; P- ;;; Command version of ai_draworder to be called from the CUI
* I, C9 {% I0 f# Z - ;;; so it gets properly recorded by the Action Recorder
- @0 |$ F9 r5 w K* m! V( f - ;;;
5 R% k6 k2 W9 R% u - (defun c:ai_draworder ()0 F6 U& ?' m S9 G A, D
- (initget "Above Under Front Back")8 X6 |( ^& _, n, L& o# T, s* `- }, @
- (ai_draworder (strcat "_" (getkword)))
& \+ y+ ~/ H: E4 H9 C - (princ)- ?+ E0 u7 w d E( c" p1 E" t
- )
4 C! q5 w6 G% `3 ~) E - + n3 ]' n* ~) Q/ x% n1 E8 O
- (defun c:vlisp ()$ X; b% v' y {& {
- (if (/= nil c:vlide) (c:vlide))* g/ e2 J' Z1 j9 U4 n% W- F; D& X
- )& Z4 M' V+ F6 N% ^2 p% x# [
, ` h! S; L' i& \! {$ \- (princ "loaded.") U( n3 N2 R, c3 g6 z5 y( x* l
. w9 B: }4 L# `4 f; a( C- ;; Silent load.9 |" k$ X9 n7 X- w6 S, r
- (princ)
1 q5 C9 @+ N( k' ` - , ^- z" c. }+ E+ Q- r6 l {$ ?
- ;;;----------------------------------------------------------------------------
" ^& C" m% h: T" G2 ?9 Q - ;;;
3 \- B% ~% s2 i. R, ` - ;;; DDCHPROP.LSP Version 0.5' k9 |, S8 z/ s+ _6 O5 ~
- ;;;
0 v* N# z5 [; r3 S- Y - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.( J+ _, Q j/ D0 |% f; e9 e* Y' ]
- ;;;
5 R1 J- O8 Z) f9 v# T/ Q) {: A - ;;; Permission to use, copy, modify, and distribute this software
% Y, b% L. X9 e: o% N. b( m- j( f - ;;; for any purpose and without fee is hereby granted, provided0 ~% p" {- T8 u/ k
- ;;; that the above copyright notice appears in all copies and that9 ^! ?9 Z% L8 `' P
- ;;; both that copyright notice and this permission notice appear in
. _8 e8 X0 r3 [+ d - ;;; all supporting documentation., o8 L# S' c3 Z$ m6 x2 E8 K$ e7 H. T
- ;;;+ R3 W3 W3 `8 f" A" c! v4 ^
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED5 y$ X+ n0 g. g8 C9 y- }% X3 a* ^
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR6 g Y3 P9 ^6 @" D) J/ ~8 K
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
S2 [0 J& L; P% K$ S/ l$ S8 o - ;;;
X% n% D' ^( e( v. G - ;;; 2 February 1992
6 R9 V# E( o! K7 c- B - ;;; + `3 r5 |6 q5 Y- h: H0 J# {9 B! L
- ;;;----------------------------------------------------------------------------% p3 i: q9 D. X* T7 z
- ;;; DESCRIPTION
1 K$ v' ]$ F& K0 i- d& u - ;;;----------------------------------------------------------------------------
, o D& V1 l9 f% f9 ~ I# ~ - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
* W3 D, |) n, K- g/ Y) z3 o - ;;;( ]9 C5 v# Y+ _9 F) x+ ]- I |
- ;;; The command looks similar to DDEMODES. The main dialogue has an image 8 C+ L5 w% q4 {+ H3 q5 s! c
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
- j' X, C6 s4 z4 N - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
7 e( v0 y; `3 H! e7 C' T - ;;; The dialogues are all defined in the DDCHPROP.DCL file.& ~! z, W& M8 Q8 y: d* d
- ;;;2 D6 P4 j8 a1 T& [
- ;;;0 q) l8 |/ i( @% [" _9 _6 H7 F; X
- ;;;----------------------------------------------------------------------------
9 o: G: K4 g2 t7 Y* U - ;;;----------------------------------------------------------------------------
- ]- W. z( q7 {- D2 l# Z - ;;; Prefixes in command and keyword strings:
" F9 p: N, T/ S2 F0 V - ;;; "." specifies the built-in AutoCAD command in case it has been
0 t( U1 k: P- K! } - ;;; redefined.* ]1 P9 h2 ]& W% a# V
- ;;; "_" denotes an AutoCAD command or keyword in the native language
; P" X; H6 ^+ @ - ;;; version, English.
) p( k- h8 L$ W, J/ l - ;;;----------------------------------------------------------------------------
7 e$ X; l- w' a - ;;;, S1 d. ^9 ]$ Q) b) I, s
- ;;;
1 J4 M, Y) B' N6 U( [! r - ;;; ===========================================================================1 y/ n/ f! N9 B" r- n
- ;;; ===================== load-time error checking ============================
2 t9 H- [" x+ s - ;;;
9 ?3 b' i$ e5 u% U
/ l8 L0 h& b# ]$ N3 U- (defun ai_abort (app msg)2 D6 \/ ]. |6 A/ v; ]
- (defun *error* (s)
" F5 \$ s" T$ T8 @: ]( h - (if old_error (setq *error* old_error))
, J4 k" N* z! q: Q5 p - (princ)6 Q) s6 n8 r/ n) Z0 z
- )0 v8 U6 L& _: m1 _7 N+ x8 c
- (if msg: E7 p0 C( P+ k s
- (alert (strcat " Application error: "
5 G9 u1 e+ m5 E$ Y$ F! K7 f - app
' N% k* `# Z$ U - " \n\n "
; x" u$ U- F1 q r. u; Y8 L4 F/ q% s - msg6 T+ Q7 K A O) ~" Q" [1 Q
- " \n"
0 M# F. o! ~9 U% K% ~* r' X - )3 Z+ \9 n8 f# v% A- W
- )9 t3 c4 M4 k3 j( c
- )( k' M/ H" S8 n7 I8 Q% c5 T
- (exit)
; p5 {* L; S7 Y - )
8 u* g. T2 @) o5 |) q - ! M9 d, S" L0 M* r4 @! z5 M4 j- ~
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
+ s3 P( ?, D- b' b" E) Z - ;;; and then try to load it.
% ?# D0 H. c3 z n - ;;;$ c+ l! s; t' j4 H
- ;;; If it can't be found or it can't be loaded, then abort the/ g5 R" G# R3 a! v) z8 t: I1 ?
- ;;; loading of this file immediately, preserving the (autoload)' m. q6 x& t; q/ ?- H+ ^! B% }: V
- ;;; stub function.
) u7 l2 g3 B, y
+ {: O' M& M0 }! q+ O0 d; W: o- (cond
* }) M, b0 u+ B2 i - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
' s: W; B0 Z( H0 W$ g! d - ; w1 R+ {/ d5 h6 H
- ( (not (findfile "ai_utils.lsp")) ; find it
0 R1 [& J4 v% n: ? - (ai_abort "DDCHPROP"9 ]# d( z L. U! C1 X% p! g. P
- (strcat "Can't locate file AI_UTILS.LSP."
/ c/ j5 a0 W0 P9 l1 h& T - "\n Check support directory.")))
/ m4 H. c' U- d3 b7 K# { I4 \% m( V% D - / X: H- Q3 J) t; A
- ( (eq "failed" (load "ai_utils" "failed")) ; load it/ g+ [# _/ N7 Y- ^
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))/ i" c3 a e0 N0 e; l! h. \
- )0 y" Z7 `8 J' m5 z- r
8 O8 r" w& r, N* |& r! w N& a# V- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
" t7 q- J ?2 u3 }) n - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses5 k2 Z+ T& w0 q( ]/ z: I5 I
- ) ; ai_abort's alert box dialog.
- q& e& q9 W8 G3 Y- J& c - : m9 M, O4 z9 g( l* S( _
- ;;; ==================== end load-time operations ===========================& w4 e% @9 L3 ?% P" L
- . E3 a1 U! W: n6 X6 P
- ;;; Initialize program subroutines and variables.) S! A8 Y2 ~' X a
6 S2 ?4 h2 Y! w; d' i- (defun ddchprop_init ()$ }. B+ D$ ]( k" s- M5 x2 P
8 B, d+ T7 K# Z3 u3 I- ;;
- `1 e% ^; P5 f, L# Z9 t - ;; Define buttons and set values in CHPROP dialogue box
- _# L! {7 R, |, ?" l+ _ - ;;1 a: o, L! x' y7 C) I% c$ d' ]" ~7 o8 L
- (defun call_chp ()- R5 i& S- B, n; v" |2 s* d8 D2 c
- (if (not (new_dialog "ch_prop" dcl_id)) (exit)). W0 I, n P+ a
- (set_tile "error" "")9 Z, ]4 B$ X! A6 Z2 _5 _% r: `
- ;; Set initial dialogue tile values) f9 A6 W& `/ a, M) ?/ f
- (set_col_tile); r9 _, f; ?% C0 Y
- (if (= lay-idx nil)
7 J! J- f" _7 E - (set_tile "t_layer" "Varies")
6 L2 B/ ~$ r( m8 }# w" x) X' v - (set_tile "t_layer" (nth lay-idx laynmlst))
9 L2 x' p; v, T$ }% K - ). { `8 z" I a
- (cond
6 F; ~6 d+ q6 ^7 j3 b% ` - ((= lt-idx nil)( R: }* s; R4 r8 e) a- n
- (set_tile "t_ltype" "Varies")3 ^) H' e# N: M( v
- )
, g& B ?4 [% Z/ F; X+ Z - ((= lt-idx 0) ; set tile "By layer & layer linetype"
+ U- D; u6 r1 C5 ^ - (set_tile "t_ltype" (bylayer_lt))( k0 a, N& O; ?2 Z/ V% P+ U: n
- )
0 v3 ^9 D6 G5 x. Q - (T 8 G+ ?* h: `) w) |6 c
- (set_tile "t_ltype" (nth lt-idx ltnmlst))
9 @! F( G2 }3 I1 G - )6 D& O! P* I' q6 X; P- _. F
- ). O2 p8 b8 I+ a7 }5 P( l8 C* b: _
- (if (or (= ethickness nil) (= ethickness "Varies")), h$ b+ h+ } m
- (set_tile "eb_thickness" "Varies")
$ M) P" `7 G4 y9 h - (set_tile "eb_thickness" (rtos ethickness))9 b7 G4 L/ A" E) P
- )
; U) n2 l9 Z- [) P9 t3 N! j7 g4 Z - ;; Define action for tiles: _% v0 o2 B) ^# c6 |9 G
- (action_tile "b_color" "(setq ecolor (getcolor))")
/ q8 [! f5 [( B. K - (action_tile "show_image" "(setq ecolor (getcolor))")
; f, J+ N, f( q - (action_tile "b_name" "(setq elayer (getlayer))")
4 X2 d2 b. Q# Z1 E7 i - (action_tile "b_line" "(setq eltype (getltype))")
5 d4 ~( d1 D1 n3 O# \" d" P$ s3 W( G - (action_tile "eb_thickness" "(getthickness $value)")
+ t5 p' v+ s1 ]1 @) \ - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")6 B7 q- a; x9 j$ B8 g. k
- (action_tile "accept" "(test-ok)")2 }, `. B) H/ F
- (if (= (start_dialog) 1)
5 |; Q$ P7 E( q* A, \) \. Y3 p9 A. r - (progn9 q/ f7 z+ ^+ p$ y7 R( K M
- (command "_.chprop" ss "")
% i# ?! H+ w( f) R - (if ecolor
) K* J( A8 I9 |- ~& `8 Z' g5 N - (progn. f/ r! y; J1 a/ g) v# [3 X
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
/ V# w$ c7 J5 P+ o$ V/ ]4 @! Z - (if (= 256 ecolor ) (setq ecolor "BYLAYER"))1 W# ^6 ~8 T$ J# @9 z4 g
- (command "_c" ecolor)
+ b% N' j9 d( v: V* B - )- m* q/ R, R4 k) ~; x! O
- )
' @4 q) D% f* X' l3 h - (if (and (/= eltype "Varies") lt-idx)
; V2 t# a6 n* A8 A/ w - (command "_lt" eltype), M& [* e' O G2 E
- )
6 L6 N! ?6 P; r) c* i1 ]4 e1 a - (if (and (/= elayer "Varies") lay-idx)
% Y9 J7 D/ I, P8 h* D5 {7 J1 j - (command "_la" elayer)+ I- V: A& e" J, B
- )! Z2 e3 `5 O! C" x& B8 z; W( \
- (if (and (/= ethickness "Varies") ethickness)7 x$ E" e9 W' S; X/ Z
- (command "_t" ethickness)
) c: j) h3 S$ a5 x- |* C, N - )' |" F' {- a6 e) a# H
- (command "")* F/ L- j( t$ G8 Y! H' ]2 C
- )
; s1 [ L9 \& j+ i8 U - (princ "\nProperties unchanged")0 h9 h! |1 [& `/ _+ k
- )
- C V$ x" Y0 v- a- }, x# d - (princ)
- ^' a+ k+ V3 \ e) z: Z8 M p - )
o4 x9 A- X- t+ J* [7 L- \ - ;;
6 ^) T Z. W9 {6 Q3 u - ;; Function to set the Color text tile and swab to the current color value.1 z% D1 z/ O( N
- ;;7 Q; ~" b% u A( o0 b% E
- (defun set_col_tile()
% [: M' P: D7 g1 e+ L4 V. P - (cond
; e" s2 N0 _: }' Z- l( ` - ((= ecolor nil)
" @/ O! K; @; ]' ^ - (set_tile "t_color" "Varies")
V* k6 s! T5 O: ^. ~+ y+ Q - (col_tile "show_image" 0 nil)
g' Y5 A& R A - )7 O2 y8 D1 C+ m- G1 e8 |: C9 ?
- ((= ecolor 0) h7 S* E5 t' q% j0 ? {
- (set_tile "t_color" "BYBLOCK")% r+ p% p/ F9 h
- (col_tile "show_image" 0 nil)
1 d! H9 A4 b# o: ` - )% F3 c: a* ?0 R: V7 G6 @% f: [. g; O
- ((= ecolor 1) ]* k& k9 N; Q) t' O) F: V
- (set_tile "t_color" "1 red"); c6 `, { ?" q; b w1 j: H! j
- (col_tile "show_image" 1 nil)
8 s% K! ~6 a$ d8 t1 j. } - )
' N: G" P8 Z3 W: b% I. K3 ] - ((= ecolor 2)
3 q4 k8 H# b# C% U - (set_tile "t_color" "2 yellow")5 k5 n4 W0 p1 _: c% o+ K# t
- (col_tile "show_image" 2 nil)
' n7 w8 n7 w8 V. p8 K- ]% I - ): r# T4 X+ X/ k' }
- ((= ecolor 3)
0 E) H1 z) g) A5 G - (set_tile "t_color" "3 green")
; J/ Z2 H% X7 l5 M* Y2 O - (col_tile "show_image" 3 nil)
1 U2 W: J5 a) {( l$ X - )3 u3 m# O' m8 e0 g
- ((= ecolor 4)
3 p1 @3 o7 H* g$ p) \# Z - (set_tile "t_color" "4 cyan")( |0 K5 X6 E# g' N; v5 p
- (col_tile "show_image" 4 nil)
3 x9 Q& v: R& \ - )8 ^- a" G: C+ ?: k4 \
- ((= ecolor 5)
( s# D3 L! E$ |9 C9 u - (set_tile "t_color" "5 blue")
; E" N( p5 [/ p4 k5 U: s Q5 P - (col_tile "show_image" 5 nil), i7 H5 i0 E( Q% N6 l$ I7 t* O, o
- )
3 X2 W; O& J+ q- _; C o - ((= ecolor 6)) f/ p; K8 Z; B$ x% ~( G* {
- (set_tile "t_color" "6 magenta")
( z% V2 b+ B1 U) A3 f/ j1 @ - (col_tile "show_image" 6 nil)
' r; W2 G& w; r$ j: q$ p+ Q - )( ]9 p4 |+ v" H( Q1 S$ I
- ((= ecolor 7)- P) A7 T( H2 H# p/ A
- (set_tile "t_color" "7 white")
) l; d5 L% G# E% J - (col_tile "show_image" 7 nil)
8 ?2 e6 _% E3 _4 i5 P - )
6 m! i0 t) P7 j, m1 S7 | - ;; If the color is "BYLAYER", then set the tile to9 c2 k* S& a3 v7 W$ t
- ;; show it's set By layer, but also indicate the
8 H& q# m+ u U! {& n. l- v% a - ;; color of the layer - i.e. By layer (red)
) a& _0 K0 z$ a, P& Q" ?/ K - ((= ecolor 256)
8 U0 p" J9 l1 p$ ^4 T# N8 F - (set_tile "t_color" (bylayer_col))
! s7 [9 I N# p: u - (col_tile "show_image" cn nil)
* o* H6 t$ Z% \, \* e7 |# { - )3 F, L7 [% n7 N! u6 L' o4 q( ~
- (T
7 R& d) q& m0 j4 u6 k7 _ - (set_tile "t_color" (itoa ecolor))
! z, h3 i' r: I7 I! H4 O+ ]! c2 ?1 V - (col_tile "show_image" ecolor nil). W- g/ K0 b$ B% p
- )
9 c# r9 M, s: x! Z0 R! z, b# {8 H - )- @ } x. R- N9 e% G' s
- )
# O& { [5 U% H$ v E7 x - ;;
* `( C/ }. r& u( ?+ K2 {! b - ;; Function to put up the standard color dialogue.6 m" ?0 w$ I1 [% I" E+ g* B. ]
- ;;
, K" s/ B, N; M - (defun getcolor(/ col_def lay_clr temp_color)1 B" U" z A2 t0 c4 F I
- ;; col_def is the default color used when rq_color is called. If ecolor / a3 e+ p! m9 k$ Q" O
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
* L% O% [2 r+ c6 { d3 U0 W4 o# J - (if ecolor
' G. d# W5 I8 e2 L9 Y. P - (setq col_def ecolor)& O/ u5 M) \3 ]8 x0 }
- (setq col_def 1)
) i: n7 r9 S# W% K% y3 @+ l% K - )
% H# L3 { W2 e! [6 F% ` -
2 K& _ s' E& w0 u( p, z - ;; If we're working with a single layer, get its color: Y0 u& W, G6 `9 R6 G, R& J. C
- ;; for use in the color swatch if the user selects color BYLAYER.' t/ `4 I9 g( a0 _
- (if (/= elayer "Varies")# L) W# |, T4 d$ e/ n
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
; L$ b) c" b% _ Z - (setq lay_clr 0)
0 E8 p( q, Z) Y) H - ). c* ?: u0 E' F" L" S
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
* d, k1 z8 y/ m) z - (progn/ ~' A/ T- e& _2 F
- (setq ecolor temp_color)
# W I; c& v* b& p - (set_col_tile)% l- k9 Q) C6 J# _
- ecolor; p7 q( c7 p$ k5 F8 ]* y
- )
, a y+ |3 D5 { - ecolor5 P' W& ?0 Q: I: w8 ^+ H% f
- ) 6 F$ g* w3 n/ k* k( c [
- )
! L5 G* a7 x3 F9 W z+ t# ]4 O - ;;; o0 Z0 `- n, f1 ~4 H
- ;; This function pops a dialogue box consisting of a list box, image tile,
9 q% m e* K8 D1 P. P# Z3 t* o- C - ;; and edit box to allow the user to select or type a linetype. It returns 6 T {; e+ \# D6 W1 R& T% o, r
- ;; the linetype selected.1 e% ?0 \3 G" S! X
- ;;: R& g0 a) y: _9 Q6 `
- (defun getltype (/ old-idx ltname): n% Y* w1 u& E$ f, R* o) l0 h
- ;; Initialize a dialogue from dialogue file
; P: n! [' B( i" |5 J6 E; ] - (if (not (new_dialog "setltype" dcl_id)) (exit))+ }+ N" Y9 \$ u( {5 M( i+ S
- (start_list "list_lt")
" D# o+ b* Q ~- X - (mapcar 'add_list ltnmlst) ; initialize list box
. }2 T/ e, Y4 t - (end_list)
* H: d6 [, D. x8 T4 r% n$ n6 I - (setq old-idx lt-idx)
4 e/ G$ K4 T; j# n& l - ;; Show initial ltype in image tile, list box, and edit box- x8 Z1 } f9 `5 @& a! A
- (if (/= lt-idx nil)$ {" g# L L2 H% [1 G. R
- (ltlist_act (itoa lt-idx))- ~; A. S& l; r# ?
- (progn1 j- O, u1 e( y! p
- (set_tile "edit_lt" "Varies"), b; [3 m2 u% j: o
- (col_tile "show_image" 0 nil)' L3 w: h$ M; x: R: L+ C
- )
% O* q% p6 h, ~. ~& l0 R+ j: I - )2 e5 V/ e6 `. _: d, k2 _8 u
- (action_tile "list_lt" "(ltlist_act $value)")
$ Q5 L! \* e( b" R7 l f - (action_tile "edit_lt" "(ltedit_act $value)")
$ U+ f/ D& h$ n9 u - (action_tile "accept" "(test-ok)")
; l0 j) f5 w/ U" [ - (action_tile "cancel" "(reset-lt)")
3 `. J7 i) U; W% f q* _+ L - (if (= (start_dialog) 1) ; User pressed OK
/ i- A- U( P. E- k - (cond + r* l* d: l+ Y* G
- ((= lt-idx nil)
- l" V" t- ~, l/ [9 M+ u, W- y4 F - (set_tile "t_ltype" "Varies")* X- y' \8 `4 h( A0 G2 y
- "Varies"' F# s+ N/ D, Z
- )
5 ~( e# w1 n6 m' v9 N. L - ((= lt-idx 0)$ o$ w6 M! |1 Q. K' |) b
- (set_tile "t_ltype" (bylayer_lt))0 p( J/ u' n! u8 g& b: b) Y C
- "BYLAYER"5 u0 }( |( m6 ? {' f+ v
- )3 t1 q4 w7 h2 b) o
- ((= lt-idx 1)
4 O# G3 L1 R( d1 B! C - (set_tile "t_ltype" "BYBLOCK")" k, Z3 I j% y
- "BYBLOCK"6 O9 v9 b5 |' F
- )
4 r$ T0 o3 N3 \# m$ H& B' w - (T
$ i1 h" ?5 m: ~1 F# k - (set_tile "t_ltype" ltname) 7 `/ X* i; b, q# J( J/ I$ ?
- ltname) t. }( }" j5 F# F8 i# ^: Y
- )
% L! @5 I* e9 p - )3 S. e( _) {% Q' `3 n$ }1 X3 q; H
- eltype
7 f& Y$ R) M6 ^" f - )$ q% M9 h6 U; I, } }
- )3 {% N8 Z; E4 D1 d
- ;;0 u9 D0 U# e& x) E# k
- ;; Edit box entries end up here
! i& h4 a# ?& V/ m: F; Y/ v - ;;7 @& ]% ~" H6 f1 H
- (defun ltedit_act (ltvalue): a# ]2 u- _, @; k+ z! X2 \
- ;; If linetype name,is valid, then clear error string, ) e1 K8 ]5 m5 n9 L7 r% x, m/ _' b2 C
- ;; call ltlist_act function, and change focus to list box.
. Q6 A1 Q: o, a" H; ^8 r! v. g - ;; Else print error message.
2 G. X: n7 j1 k3 I! U3 B- H# ]4 M - (setq ltvalue (strcase ltvalue))/ y* |- t4 O3 J3 p% L5 J
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
- k% K' K6 J5 k6 }8 K* Y - (setq ltvalue "BYLAYER")
9 d* o/ t3 t% U6 ]3 `* } - )
$ a1 g: a% P& u5 o, W3 f - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))9 S# |2 ]8 |1 {( G: w4 M$ [
- (setq ltvalue "BYBLOCK")
8 V" V7 w6 G3 o1 J - )
C' M3 [3 ~+ Y3 [" }5 o - (if (setq lt-idx (getindex ltvalue ltnmlst))
' n1 j& b4 }+ Y( { - (progn
# ^0 H* F9 z' p# k# [" A5 G1 o - (set_tile "error" "")
1 G% l3 G) Z% t4 t$ I - (ltlist_act (itoa lt-idx))
# a: E( I8 n- m - (mode_tile "list_lt" 2). S2 O; ~4 o) ~0 v/ A' ~7 K9 j
- )2 \6 o/ V E1 z7 |7 g k6 s
- (progn& M; ^) w0 R4 ] P. B8 L ^
- (if (/= ltvalue "VARIES") ?2 ~$ S2 q: l% d2 U
- (set_tile "error" "Invalid linetype.")
- n! b- C+ V9 D9 g5 w - )
# Q4 n+ o; N& U+ f* ^2 r6 \) j - (setq lt-idx old-idx)1 m$ I: P2 [- T( _' d
- )
" N4 |8 j& s$ ~, c C3 d - )
' |# u6 ?& A' H$ ]) Q2 K3 |4 {" u - )* ~+ h3 S" `. g+ g* d3 H
- ;;
* Z3 J7 I# l* H9 C' j - ;; List selections end up here
5 K1 B# _7 ~/ t3 N2 i - ;;
* f+ k, S) P s8 B - (defun ltlist_act (index / dashdata)
: x# N9 u( J& Y9 ] - ;; Update the list box, edit box, and color tile
6 n: E8 M* W/ M8 s0 M - (set_tile "error" "")
6 Y. G6 G" S7 @+ S$ s* J. A - (setq lt-idx (atoi index))5 l0 w* C2 j1 q5 I* f. M' v
- (setq ltname (nth lt-idx ltnmlst))
8 o& o0 j$ |; d( b# i - (setq dashdata (nth lt-idx mdashlist))
) I6 P' h# C& ?! U# | - (col_tile "show_image" 0 dashdata)8 X2 u2 u* {" Z6 H, y
- (set_tile "list_lt" (itoa lt-idx))6 ?' z$ K p( b( S
- (set_tile "edit_lt" ltname)- F+ b" H7 Z+ @! b9 z' M
- )
) I7 p- u" _0 p; {! s( C# J - ;;2 i2 a% g' J" O6 T' W
- ;; Reset to original linetype when cancel it selected0 q: J7 `' p7 o) [
- ;;
- {1 u$ t5 F: X- a' H Y - (defun reset-lt ()
( P j6 U. o' w0 G - (setq lt-idx old-idx)$ O. ]# H) Y& G( z
- (done_dialog 0)
4 l, o; Q9 Y) E$ a - )
8 _1 Q& m, T" F8 q - ;;0 M! e( E' c, Q
- ;; This function pops a dialogue box consisting of a list box and edit box to - W. t3 ~- e( m' d* h, x4 o( }
- ;; allow the user to select or type a layer name. It returns the layer name 2 R6 l E: c9 C9 X Q1 e# w, u: S
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the 4 r/ c8 q; D- a& k9 M _( S
- ;; drawing.
" Z, j) l9 r! }! I% i! y+ S - ;;
2 C, o2 h" U a& P6 | - (defun getlayer (/ old-idx layname on off frozth linetype colname)
( n( I+ ~6 |* O) T% V: a - ;; Load a dialogue from dialogue file
( r! `5 I" E5 E/ y/ U2 Q* d - (if (not (new_dialog "setlayer" dcl_id)) (exit))! V/ C3 Y* A _6 M, X
- (start_list "list_lay"): H0 [6 v/ V! [: J+ @
- (mapcar 'add_list longlist) ; initialize list box
- R2 ?+ d% Q: Y1 s& ^; k4 }0 c - (end_list); I1 v3 y/ r5 f
- ;; Display current layer, show initial layer name in edit
3 l* t+ n* m1 _& W3 h& j" l* g - ;; box, and highlight list box.- o6 N. @, ^2 H8 o
- (setq old-idx lay-idx)6 H$ F) w8 h* m6 o1 I# l! c+ Z, _
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
3 k" P; Z v1 X( ?. C* C4 l: z - (set_tile "cur_layer" (getvar "clayer"))* X) _6 p, [' Y1 n
- (action_tile "list_lay" "(laylist_act $value)")
9 k3 B- E( R5 }# U - (action_tile "edit_lay" "(layedit_act $value)")6 h) b' l4 M; R- u3 _$ |* B- E
- (action_tile "accept" "(test-ok)")
8 ^( E) I8 _' V% h' `3 e- M - (action_tile "cancel" "(reset-lay)")
( ^6 s- h' X7 ]5 \" K - (if (= (start_dialog) 1) ; User pressed OK* M; t) h# J1 @8 K! v
- (progn- r/ s1 ~- k3 J. g
- (if (= lay-idx nil) (setq layname "Varies"))
# Y- `, h8 a3 N9 c - (set_tile "t_layer" layname), S- b2 J7 }9 z. e4 b8 [* z8 H
- ; If layer or ltype equals bylayer reset their tiles
0 j+ w* o7 j$ F6 \& U2 a8 x - (if (= lt-idx 0)
8 f- Q0 j9 G# S6 n - (set_tile "t_ltype" (bylayer_lt))
. |2 M! x' I5 l3 A - )
4 Y- L) f; R. L0 h - (if (= ecolor 256)
1 V1 [& j" ^, l# r' `. D- j - (progn
9 }# X8 d1 w/ m5 y! R - (set_tile "t_color" (bylayer_col))9 Y. k# Q# C2 R* t* T7 w8 Z
- (col_tile "show_image" cn nil)* U& ?9 N' x$ [2 i, l) A+ H
- )
# r8 Y9 U) \# D, t% f3 i, I7 _ - ) k9 D1 s/ G6 E+ s/ I
- layname
: R+ T ^8 j0 Y8 m - )2 z/ E; k' n$ U; ^" G E$ L
- elayer
! C4 e# c2 N( }+ s& D2 y% ] - )7 Y$ H7 X3 ^$ n# p- v
- )6 @4 u% I+ O: q2 v e3 K
- ;;& N9 z! c# D8 N
- ;; Edit box selections end up here
: ^1 \1 J0 z% A0 W8 \+ a/ ^( q - ;;7 W. I- g' W; W$ d
- (defun layedit_act (layvalue)" w$ M& ~, z Y0 o/ o6 G+ m
- ;; Convert layer entry to upper case. If layer name is! l | ~& m2 ~& u& D$ M
- ;; valid, clear error string, call (laylist_act) function,) [; {- v( K2 W+ _
- ;; and change focus to list box. Else print error message.5 w# n' W* l9 u* J' I; A& i G- L
- (setq layvalue (strcase layvalue))
4 k( o, [6 o/ O9 _2 ] - (if (setq lay-idx (getindex layvalue laynmlst))
/ F% e0 x8 t) i8 l0 f$ R - (progn
! a7 k" b4 n5 `1 w+ ] - (set_tile "error" "")
1 y- n) [* w6 [) b/ H, u - (laylist_act (itoa lay-idx))# g% z [* J6 W2 u# f" \8 G8 X
- )
! r; J- I& o1 k* A5 u5 _ - (progn
- e6 @" s% f* N% [3 u9 e* \, c - (set_tile "error" "Invalid layer name.")- B9 S; D( x2 J
- (setq lay-idx old-idx)4 r* @5 A% k& c ~. t- p* p
- )
" w& m3 W% N0 q - )7 o6 R" ]' W5 X ?5 q
- )0 |( |0 F- f& y4 E l, v4 P
- ;;: q. M0 K6 Q7 v
- ;; List entry selections end up here2 f8 v1 j" e6 S+ \
- ;;8 q( J# Y& Y; s% a9 j( ^! J
- (defun laylist_act (index / layinfo color dashdata)- h N' T1 j& C1 q8 u
- ;; Update the list box, edit box, and color tile1 X/ R3 b5 j( K
- (set_tile "error" "")7 O5 u' J5 g; }( T
- (setq lay-idx (atoi index))
) M( ~! ?4 R$ W - (setq layname (nth lay-idx laynmlst))
1 T2 a* x* J9 d: m: Q - (setq layinfo (tblsearch "layer" layname)): X C9 Z# D( i# K k" R. j6 L
- (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)9 z: T" q. l( H# W
- (set_tile "error" "Cannot change entity to locked layer.")
) a; [. L c H1 ~ - (progn
|, O, }* _- b( I! [ - (setq color (cdr (assoc 62 layinfo))): g2 y& m3 P) t9 k: L; i9 r
- (setq color (abs color))
2 f' {; D3 _ H, z8 U1 S; T - (setq colname (colorname color))4 c& ^8 U! Y; n7 l
- (set_tile "list_lay" (itoa lay-idx)), O! r% `2 L' ]
- (set_tile "edit_lay" layname)& p$ U" U3 E/ ^# W$ [ v
- (mode_tile "list_lay" 2)
; [' W" p) y# g - )
& _3 x* m. u3 j+ v - )
$ l& L, j' t! U/ |: Y* j! ~8 p - )
3 Z: d+ M" _" @ |( O - ;;# `. {1 S* ?" p- E* w: X
- ;; Reset to original layer when cancel is selected2 F$ T' @9 e" w6 ~5 a' y
- ;;
. X1 v( {+ L0 X0 ?3 L6 J - (defun reset-lay ()2 j3 D! e: B6 f# L1 Y8 s
- (setq lay-idx old-idx)
; I8 `- |; y- B0 I; ~% s6 i - (done_dialog 0)
6 A! ^% `# \+ a1 } - )
. R8 Y1 k% K, t' J7 c- @ - ;;& H/ I1 x! W& J
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a 2 `4 Q; u! w' G3 S" f: E1 _( O
- ;; string can't be converted to a real, this routine checks if the first
/ T/ _. `" J- Q( k4 H4 J - ;; character is "0". It also checks to see if the value equals "Varies".# t. s* {. z) ~! }* I
- ;;
% A ^# u* J% ^' ^0 k- |7 b/ D- v - (defun getthickness (value)
$ J$ y% D& k% \( N0 a: L - (setq value (strcase value))! D0 X) [7 X4 t0 y! m; x
- (if (or (= value "VARIES")2 k( o7 {2 P5 { w1 p J
- (distof value)
i y/ ~( b! j; ` - )
3 H" {- v- f& x! Y+ F% N/ h - (progn
3 {; P8 i D% K0 y! a - (set_tile "error" "")1 t, b/ Q' G/ D0 d
- (if (= value "VARIES")
$ H! |5 s! f' X) S' k9 f7 D1 W - (progn% A V( F+ |7 \& G* r' D
- (set_tile "eb_thickness" "Varies")
+ }+ S/ s, `+ s: i4 W7 R4 m2 f - (setq ethickness nil)* a- N. @) a* ~; u
- )6 g: z7 w% K0 a' r+ W9 d
- (progn
9 _2 p/ l8 d4 l$ w5 ]5 ` - (setq ethickness (distof value))
" o, _, h' l6 I2 S. q8 R - (set_tile "eb_thickness" (rtos ethickness))6 v! E7 f* D( o6 C4 n3 L8 k" s, Y
- ethickness- {5 M G/ T% Y) V5 f
- )
8 r$ P0 i; d, B* k - )
' Z0 n; _, t5 Q c0 b8 Y" D4 w0 V6 J - )& h6 D4 j* F- f2 [. Y
- (progn
2 A$ W) Q; Q7 i w4 x/ z9 F P) k - (set_tile "error" "Invalid thickness.")
( v, h7 B- p5 | - nil
& y2 G7 s" l( r. d - )* X8 P' K2 j G& O
- )2 B) ~* ^- y) [# g$ q. z
- )
: f$ R0 ?/ i" _. o& x6 k - ;;- d, w. q3 o: u7 i, H
- ;; This function make a list called laynmlst which consists of all the layer 2 F2 l; k. [2 H% z
- ;; names in the drawing. It also creates a list called longlist which
2 _+ P: s9 [9 j+ K3 X - ;; consists of strings which contain the layer name, color, linetype, etc.
+ c8 c. o$ T. ~- Y7 p# g4 S* j - ;; Longlist is later mapped into the layer listbox. Both are ordered the ) U2 _5 w! l) t+ O+ K9 e6 s
- ;; same." a7 z X+ e2 }+ `1 V
- ;;. \2 ^" K$ p. @
- (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
5 m/ j( o) ^& c; Q2 o4 e - xdlist vpldata sortlist name templist bit-70
0 K2 C, W% C& N. j4 K9 v' S - )" s0 `/ [$ L. O5 e6 G9 i# g! `2 d
- (if (= (setq tilemode (getvar "tilemode")) 0)" [7 ^4 Q1 Q: T6 f* v( y* C/ [
- (progn
$ j3 ]. W3 S/ y) c+ k" B& g - (setq ss (ssget "x" (list (cons 0 "VIEWPORT"), i$ _+ m) s* r4 {0 L8 B2 ]
- (cons 69 (getvar "CVPORT"))
1 O5 J: g N) ? U z3 Y/ i - )) E8 }' [+ f7 K4 ~
- )' P. q% g J& X! o1 E; @$ n- N
- ) 7 f4 T% a& c0 l. | U9 R2 r( L
- (setq cvpname (ssname ss 0))( p$ A, n8 B( I3 t! x
- (setq xdlist (assoc -3 (entget cvpname '("acad")))): |' l% z' N3 f# |2 i/ \( v
- (setq vpldata (cdadr xdlist))
9 m* F( s3 M( G7 ?6 O - )
" i" P$ X. O* M4 X& s - )
! L/ R7 @; v+ A/ l! {6 ` - (setq sortlist nil)* X2 d* @+ J, {2 Q' D! G% ^& T& |
- (setq templist (tblnext "LAYER" T))
8 ~) R. u" P) B" U, _+ P( r' ]+ T - (while templist
8 ]4 c, O% e6 v - (setq name (cdr (assoc 2 templist)))6 Y+ P; i1 ]: k2 E$ M* V# D
- (setq sortlist (cons name sortlist))* V! V# `$ ^2 t% \; C$ H2 u
- (setq templist (tblnext "LAYER"))' e4 q1 g O$ e2 O( q6 O! S
- ) 6 E i3 ^; \; I7 `( T( H
- (if (>= (getvar "maxsort") (length sortlist))8 ]: A5 Y. `* L
- (setq sortlist (acad_strlsort sortlist))
& }$ S: ?7 `; @! Q - (setq sortlist (reverse sortlist))3 B* N9 g! [0 [. H: V
- )
, H: P% N* [$ f6 K' q" B - (setq laynmlst sortlist)
' c6 _) h+ Y7 [, C8 z$ c) ] - (setq longlist nil)
! |0 C. o# n0 g; h0 z, ~; b - (setq layname (car sortlist))
0 v0 r: k; Y: a; o - (while layname
3 ?. x! U, _, c0 w- d - (setq laylist (tblsearch "LAYER" layname))
6 \! O! c/ i7 p' v0 P - (setq color (cdr (assoc 62 laylist)))
@' L9 L# b8 r! V- `2 W; t - (if (minusp color)* _( h9 h& L* {
- (setq onoff ".")
% z( }. }/ O# u c" f - (setq onoff "On")2 a/ j, N# Q" G
- )
: x+ T+ D/ S: B5 s - (setq color (abs color)) Y* [" [/ } f& D1 W
- (setq colname (colorname color))
5 N$ P: N' j1 n - (setq bit-70 (cdr (assoc 70 laylist)))
" j$ r2 D% x- j5 _! C4 p0 u - (if (= (logand bit-70 1) 1)( r; R. [2 E+ K
- (setq frozth "F" fchk laylist)) x' i% ^: Y3 K' B" Q0 \1 E3 \# d
- (setq frozth ".")
& m D2 M7 m9 F l- ~6 q& ^ - )
) }/ ]& n# Y) ^9 z! A3 L+ r - (if (= (logand bit-70 2) 2)# j, I) u3 _8 L. ]5 ~6 l/ @/ k l
- (setq vpn "N")# e& Z0 R9 ~9 K( v- A; P8 Z
- (setq vpn ".")
6 p: N2 }& z7 K5 X - ). }$ o& D6 X& }% P3 L/ u
- (if (= (logand bit-70 4) 4)$ l' u- y: }( ^6 q) u
- (setq lock "L")
" D+ \/ D8 T: |- I: i& ] I2 G0 l" o0 F - (setq lock ".")1 O" ?3 c5 f: V: L' X4 Y
- )
1 L. C* S( I' x @' h - (setq linetype (cdr (assoc 6 laylist)))
9 O$ x7 R: h( G: Y: p& ?; D2 w - (setq layname (substr layname 1 31))0 s j* U$ ?) a& y3 Y
- (if (= tilemode 0)
+ M7 H; m& A& j9 m3 z9 i8 } - (progn5 N8 `/ V$ D) ~ j
- (if (member (cons 1003 layname) vpldata)* a; E! |6 ~ R1 m; j, f
- (setq vpf "C")" D1 k! A3 t( B7 j% c
- (setq vpf ".")7 W9 y7 s$ Q& X- d% s/ w: v
- )
2 J0 ]/ s5 Y1 u: r% T" N - )
* @/ ]* e7 U. {; k) k3 y3 d - (setq vpf "."). }7 W a1 q% ~! o
- )
2 Z n3 m4 i# K' f; ~" ^ - (setq ltabstr (strcat layname "\t"
2 ?5 h! ~1 T8 T! e - onoff "\t"7 `6 }- H3 R( g4 r" c" A+ O
- frozth "\t"& L3 B; a5 k2 e
- lock "\t"
! O+ C' n8 I" n/ a# T7 Q1 j - vpf "\t"# K: N0 b, o) U% A: o/ k$ W$ R
- vpn "\t"
7 v6 U- w, ~4 d+ x4 s! W4 W - colname "\t"
8 v" n8 B' D: t - linetype
( S' t G" h9 |+ _1 q% V9 Y - )9 c2 M3 h( |9 m \0 D# U- Z% w2 S
- )! z( e" a7 }; v4 ]) M3 u- ~
- (setq longlist (append longlist (list ltabstr)))% y1 u5 A3 x8 P2 A' j
- (setq sortlist (cdr sortlist))
! |: Q) v$ n o - (setq layname (car sortlist))# C, b$ q6 n* R- }1 ~9 b; i
- )' y4 y6 [% m$ a2 S5 h+ l
- )& ]1 r/ i% O5 q, k* M
- ;;
5 W3 s4 ?7 h* ?! j5 Y, R - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
8 u1 d. ~3 Z' x! v+ @/ t - ;; linetype names read from the symbol table. Mdashlist is list consisting 8 ~) g$ d3 W/ o+ F
- ;; of lists which define the linetype pattern - numbers that indicate dots, - D: W2 R5 |! H3 A- f
- ;; dashes, and spaces taken from group code 49. The list corresponds to the
8 J7 \. t& e2 G3 X. m2 F' X - ;; order of names in ltnmlst.& s1 |$ ^7 M/ ~" g+ f$ E5 a8 }2 g
- ;;
+ r& ^- K2 V5 ^& e4 s - (defun makeltlists (/ ltlist ltname)
L- l* K) f5 h/ `5 L9 z5 \ - (setq mdashlist nil)
* U( t6 l7 z; f2 {: | - (setq ltlist (tblnext "LTYPE" T))" R! g6 P7 W( W( _- g d
- (setq ltname (cdr (assoc 2 ltlist)))
5 M7 b5 j* L% k% G# K; P - (setq ltnmlst (list ltname))& F. a; ^% b+ i' g. w& n' V1 q1 g! P
- % b" h; \2 M! @4 c! M C* j
- (if (= ltname "CONTINUOUS")
( i1 `, u7 C* e/ ?% J9 w - (setq mdashlist (list "CONT"))% `0 E7 ?# P A3 D4 B' Y
- (setq mdashlist ) M5 a* v% d+ _9 N6 j
- (append mdashlist (list (add-mdash ltlist)))1 m8 l) O) W) y& U1 U& R
- )! o, K1 Z) K7 R- j v
- )
2 A7 @- Y- @/ [; [# b! T2 x - (while (setq ltlist (tblnext "LTYPE")): P7 k7 A" w- `# K% a Y$ d# C3 ]
- (setq ltname (cdr (assoc 2 ltlist))), g: \1 \ o) o+ n2 O
- (setq ltnmlst (append ltnmlst (list ltname)))/ g2 `" q0 E S0 C# T; O
- (setq mdashlist ( y# q$ j; {5 G- n) R% E
- (append mdashlist (list (add-mdash ltlist)))
8 ~0 S& A/ P" J$ m - )' _' i; T- t/ e. \/ |' @
- )
; ~8 J, F2 s% ?* P8 ? - (setq ltnmlst (cons "BYBLOCK" ltnmlst))* F2 R0 b) m7 r, c- }
- (setq mdashlist (cons nil mdashlist))
+ ^$ N: P; H' m0 |% M - (setq ltnmlst (cons "BYLAYER" ltnmlst))9 _6 _8 ]6 A7 X* F+ B
- (setq mdashlist (cons nil mdashlist))
: l3 ~' K: m* U' J - )
8 `7 `; G* D# K0 z- e- _2 q6 A - ;;* q, N! k4 [$ p4 j, t
- ;; Get all the group code 49 values for a linetype and put them in a list . V' a' V9 E/ `7 Q* R' K# C' u
- ;; (pen-up, pen-down info)0 X$ z, \% X# ^) ^& B
- ;;- B* h5 l: p" G. b* S$ S) b) S
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize), l" z2 g2 M5 I$ `( W
- (setq dashlist nil)
6 d. x) R( y) Z: G0 q2 Z; e! G# D* W - (while (setq assoclist (car ltlist1))3 |; Z# g$ Z7 Q
- (if (= (car assoclist) 49)5 h% M9 A: A$ `! q% ^+ k% J' O
- (progn
7 U9 K1 M+ x& W0 Y3 L0 L0 [: @6 J - (setq dashsize (cdr assoclist))
3 D$ A5 S! e# e - (setq dashlist (cons dashsize dashlist))
, p M" c& a0 | - )# m( X/ i( y; e; ?
- )
; h9 a* G) M+ V7 G3 j - (setq ltlist1 (cdr ltlist1))
' F9 X1 p! Y4 C* _9 X - ) W; _- A) W) a6 H
- (setq dashlist (reverse dashlist))
+ Q5 ]$ m, E- B. c" I. g - )' W- h# H8 _4 u1 `
- ;;
2 S# k4 V7 z9 v3 B% {& i K G8 S - ;; Color a tile, draw linetype, and draw a border around it
) P. |+ S* M4 w9 _( V) n% C - ;;1 c* m+ f1 Y% S% W; v
- (defun col_tile (tile color patlist / x y)/ [- h3 W7 ]4 ~) U+ ^5 o ?
- (setq x (dimx_tile tile))
4 t9 e7 T: c, H9 P - (setq y (dimy_tile tile))1 g4 s8 g; ?$ ]6 e
- (start_image tile)4 F, C: x3 Y% Z
- (fill_image 0 0 x y color); {, b. ~( @+ h# M4 Z: k
- (if (= color 7)5 L* F- Z- C3 I5 J+ h/ @/ Z/ H: z
- (progn% c, V( {5 r+ v$ K4 {- f% F, X; l
- (if patlist (drawpattern x (/ y 2) patlist 0))
6 S6 N! I) k/ h9 a+ k - (tile_rect 0 0 x y 0)9 x3 l3 G2 @# W7 R# s& I
- )# d) _: R9 w. O1 `' G2 ~8 k
- (progn% {8 f2 m5 b4 h K3 i9 a
- (if patlist (drawpattern x (/ y 2) patlist 7))
) {. Y7 [9 z P2 V+ w/ ^ - (tile_rect 0 0 x y 7)' ^! I) C6 K5 f' `+ P/ G
- )
7 v1 N( A: H+ K2 ]3 H( K, Y - )( J5 V0 H5 P( y
- (end_image)
5 i( m( _+ e2 _+ g - )
: L& g# U8 w. `9 o( n) y - ;;
1 Q! d4 L \* K - ;; Draw a border around a tile
+ }! @. }& r, p - ;;8 p4 P7 E. F5 F3 ^" z4 n2 P
- (defun tile_rect (x1 y1 x2 y2 color)
?( m; K3 A) q6 k) B1 u- }7 v( V - (setq x2 (- x2 1))! _9 c6 q8 `4 n2 S; t
- (setq y2 (- y2 1))! Z' S5 u( Q( L, I
- (vector_image x1 y1 x2 y1 color)+ ]4 K- u. u( y- c* l& n2 K# t
- (vector_image x2 y1 x2 y2 color)7 n$ p. B+ o: j
- (vector_image x2 y2 x1 y2 color) t* P; X6 Z" x9 n3 X
- (vector_image x1 y2 x1 y1 color)
1 N7 m- u- Z, M - )
. l1 K8 K" r! x# G% q. _ - ;;
$ f: q) Q+ _/ m1 H2 ~7 v - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image & @9 C- f; G! \" v
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
& F" d Q& @+ U8 b2 n, m/ d3 n - ;; list of numbers that define the linetype, and color is the color of the 5 r. T% v- [4 E$ B6 Q$ ?
- ;; tile.! t3 _, @' h% y2 I
- ;;
& D% g8 e9 T8 l, m7 E - (defun drawpattern (boxlength y2 pattern color / x1 x2+ M3 g% C0 S4 L1 R" {/ M' a5 Y
- patlist dash)9 O* C/ x" e1 n* K& n5 ~) d
- (setq x1 0 x2 0)6 p) m \ x3 G5 `+ y( B
- (setq patlist pattern)
2 O$ r; f9 U+ R; y7 R5 w/ e& E - (if (= patlist "CONT")
: |; P) Z0 S* H1 ^6 c8 a4 V - (progn & p3 R* c8 d) E- Y
- (setq dash boxlength)3 O5 I6 _9 f5 D7 O+ a6 c3 S7 r
- (vi)- \: N. k$ C4 U% l4 f
- (setq x1 boxlength)
6 L' D2 q: ^9 e - )
1 l f& @! m" x m9 h) Z - )
# ^( N2 D6 R7 ~# T - (while (< x1 boxlength)
1 ^" E- |( _. k* }- t7 M4 O2 n - (if (setq dash (car patlist))4 f6 b* F" _) O7 e: Q' K3 { v+ Y
- (progn8 y- f/ G' b8 K
- (setq dash (fix (* 30 dash)))
! U. l1 \. |# _, ^( ~- ~* N1 u - (cond
% r' p* |- x3 \* }$ L+ a - ((= dash 0)
" \4 S$ U8 b A% v% T - (setq dash 1)
- D0 E5 ^$ o$ j6 a9 N - (vi); p; i# M0 `- N
- )
5 }# J9 f# ]; y C" _* X - ((> dash 0) : w* z! U0 K) z1 z& B H
- (vi)
+ H3 R5 {% K) g) @ - )
2 V9 B& [& ^ } - (T
9 t0 d+ Y( M9 F" |6 P - (if (< (abs dash) 2) (setq dash 2))7 E. c- A& R3 b/ |1 H3 _ H( i& h
- (setq x2 (+ x2 (abs dash)))
1 F9 Y! e# g% d1 ?) } X" {2 w3 \( t - )
6 s S6 a% ]7 n* M9 k8 O - )
( O8 n' p! d3 j- k9 } - (setq patlist (cdr patlist))
+ \; [5 D+ F4 r' c# _ - (setq x1 x2)4 [$ ]$ G1 o! [* G2 p6 s
- )
* `& A. x X& y& S2 r0 @& E9 _. N - (setq patlist pattern)
' P% J; L* V+ j5 b/ F6 K6 g9 D - )( u& {' l7 P1 n: C4 w
- )
, ]' L0 P, }) R0 J$ k+ q8 A( S - )
- X- L. {1 W5 \0 ?' \& J x - ;;3 ^1 ] S. G% i6 m
- ;; Draw a dash or dot in image tile6 z' Y1 O. W, u6 N( }5 `( q0 F! p
- ;;8 K3 d2 a' T0 c C( K3 P( B" V" Z' U7 x& L% z
- (defun vi ()
& s4 R( ~8 z$ r6 }3 E- i$ H9 r - (setq x2 (+ x2 dash))- r5 `: ?0 |. l4 s
- (vector_image x1 y2 x2 y2 color)! K; Y c& ~" H9 y
- )
; o7 i6 r- I; p7 L; Q' T - ;;
) k8 x$ ~& } T2 r: D - ;; This function takes a selection and returns a list of the color, linetype,
; [+ O4 s3 [' E0 D. t' `8 V - ;; layer, and thickness properties that are common to every entities in the
% F& Q+ g9 h2 o% _ - ;; selection set - (color linetype layer thickness). If all entities do not
' M- I- n, \; R t( E) ? - ;; share the same property value it returns "Varies" in place of the
+ j t( b5 D; Y$ [ - ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)( e3 T. ^0 j3 l/ q: D* ?2 F+ Z% T+ R
- ;;
( A; u& K* h. p1 q# _1 y - (defun getprops (selset / sslen elist color ltype layer8 d1 @; r3 E7 C0 Y% C
- thickness go chk-col chk-lt chk-lay chk-th ctr) ]% `9 F* y4 t! h) B3 c
- (setq sslen (sslength selset))
8 w6 M- Y- a0 G5 H5 ` S - (setq elist (entget (ssname selset 0)))
& J4 f5 Q) \/ ^+ m& j7 Y; @ - (setq color (cdr (assoc 62 elist)))
! \, e+ A, {: G/ L8 o ]( S) t - (if (not color) (setq color 256))8 B$ }0 ^/ H! c1 S
- (setq ltype (cdr (assoc 6 elist))); D8 }) d. `0 e0 a- ?
- (if (not ltype) (setq ltype "BYLAYER"))% h/ H) Z/ y. [& s
- (setq layer (cdr (assoc 8 elist)))" y) c. _7 Y$ M2 t* X. E
- (setq thickness (cdr (assoc 39 elist)))
2 _* s# Q2 ^* Q8 j2 t$ {, q3 q - (if (not thickness) (setq thickness 0))- o$ X: F) i. {6 Z0 R& v" A0 M/ q
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)# { x. ~2 ]3 C9 \& A M
3 K3 I+ J* h: \" }- ;; Page through the selection set. When a property3 R2 O) `1 a; l- |0 A
- ;; does not match, stop checking for that property.
0 `4 n# s7 V3 T! N - ;; If all properties vary, stop paging. l8 C4 u; o- ?, W! P: q1 g3 h# V, J
- 7 k3 B2 S8 |$ Z0 A- k
- (while (and (> sslen ctr) go): i2 U3 w# ]5 T4 p9 T+ P
- (setq elist (entget (setq en (ssname selset ctr))))
* P* W# H1 E6 I - (if chk-col (match-col))7 J0 ?0 v+ l ]: \. m
- (if chk-lt (match-lt))
" F) B# O. p1 S - (if chk-lay (match-lay))# C5 e- V8 E" \7 K9 E V3 U* i$ \2 r/ t
- (if chk-th (match-th))0 T4 T, e! q. s( Z f, j$ B5 n
- (setq ctr (1+ ctr))2 O0 R* Q% U$ q+ J8 G
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))% X0 t4 ~3 B; G% P: m2 B/ `0 G/ c0 a
- (setq go nil)+ f0 n5 x" _7 \9 R9 n# A' n( T
- )$ N/ N' [6 G( }% ^0 P2 H
- )
3 L( a3 X1 x% K - (list color ltype layer thickness)
: t# o' H9 c, u0 ~5 A% I3 U- `& ` - )' p+ i- X8 v% v/ c2 c
- " z8 c; s) {8 Q! k1 A8 \3 L) i
- (defun match-col (/ ncolor)
* T5 @6 l' F* W u - (setq ncolor (cdr (assoc 62 elist))): _! v0 ]' {) \$ [) `" c' {: O
- (if (not ncolor) (setq ncolor 256))9 ^/ ~, b% J: s" j) o; x) y
- (if (/= color ncolor)( i" R- P8 [1 j" @
- (progn
6 M( X" f, |4 h( Q - (setq chk-col nil)* D9 w! r& v' Q2 M6 E- K) k( x$ ?
- (setq color nil)0 h T$ J9 e$ J& {. {+ \8 J: T- m4 n
- )
* E5 `2 n5 o/ H, h - )
1 \( k) I' H: |0 |) s - )7 b$ J8 ]2 ] w( k+ [
- 8 a$ D% s6 m& z1 t4 c' W
- (defun match-lt (/ nltype)# x' b+ `8 B) _2 ]
- (setq nltype (cdr (assoc 6 elist)))
/ j' z; ] H6 d' i& S2 _ - (if (not nltype) (setq nltype "BYLAYER"))
8 l$ M" v: f0 a3 y" o" H - (if (/= ltype nltype)
2 S8 K# E: Q4 [, r7 ]6 M9 P5 R - (progn. S) C0 g% E( Z5 n
- (setq chk-lt nil)
& E+ W8 P$ X! R5 V2 p - (setq ltype "Varies")$ c( n" M0 U% C* a- ~9 u' |
- )
' Q1 I+ K7 o: }& m" z4 H1 o5 k+ d% W - )
- E1 t9 C2 A$ |8 P3 q1 }+ T5 V+ n - )
, A9 Y6 \, b: `' s, B - $ j8 }0 ^6 e6 k5 T* `. T+ w
- (defun match-lay (/ nlayer)
' _# j! V8 R+ D - (setq nlayer (cdr (assoc 8 elist)))4 N! v7 w# B% u' c& J
- (if (/= layer nlayer)2 O0 x$ m/ R5 r& h, ]) t4 J7 h+ E
- (progn$ n0 I& k) V! f) H( N' n/ R$ G! w P
- (setq chk-lay nil)
3 w, R" K+ ^+ m# O - (setq layer "Varies")
+ W" \ q- f# K6 x$ Z8 g - )
8 f9 E8 `. x' s) s3 ? - )/ y+ T# n }3 q! O9 R/ E! D6 l
- )
) i+ C5 V& a9 Q! J/ u - $ a: Y. a( M, `7 K# I
- (defun match-th (/ nthickness)+ \8 V' o, l, j
- (setq nthickness (cdr (assoc 39 elist)))8 [+ \) j5 p% ]/ [7 `3 O# x1 d
- (if (not nthickness) (setq nthickness 0))9 |/ d3 L* w" g% S: _/ J- ?2 v3 n5 Z0 a$ I
- (if (/= thickness nthickness)1 v$ M; V! { Z/ |' W1 I* q
- (progn
. u+ S3 x; q( _( V3 U - (setq chk-th nil)
. @ U, {. H# P# u" K9 {: H - (setq thickness "Varies")
3 T" ^5 n/ `% v" x0 h) a/ } - )2 `9 m9 y0 E2 ?0 J- |0 J
- )9 S: _1 L7 O0 z1 D7 o
- )
7 E$ L( O, ^: M2 n - 3 w6 X, k5 |9 _$ Y! z4 u
- ;;
2 G8 t# j) |3 v) e - ;; If an item is a member of the list, then return its index number, else
+ C& O# ~0 O/ q9 l' ` - ;; return nil.
- z2 Z( u6 ^; b( |* G& b) @# \ - ;;
) h+ c& ]" {) q& U0 | - (defun getindex (item itemlist / m n)/ J: K' p: Z2 N- l! }
- (setq n (length itemlist))
! ~ h8 Y' C9 r% g- X - (if (> (setq m (length (member item itemlist))) 0)
- Z- ]$ S d9 B2 U A - (- n m)% ?# V+ `- P* L: Q5 T
- nil6 s2 P0 I8 }- E
- )! u2 b$ z, z' g8 c7 R
- )
3 ` L: _0 j: d7 r2 t1 l1 s - ;;: }% z0 ^1 y& t& r, |: t$ z4 r
- ;; This function is called if the linetype is set "BYLAYER". It finds the
9 U1 U( ?. V' T - ;; ltype of the layer so it can be displayed beside the linetype button.
$ N, V. a1 q4 d* N5 w9 v6 Y% V6 Y - ;;
5 c" Y) V' i* V' [ _7 |6 e - (defun bylayer_lt (/ layname layinfo ltype)& X2 U/ Z: H9 Z! {
- (if lay-idx
8 W; I1 s( ]5 p9 s3 X - (progn
% f" O- {4 V* e& I' p$ c& l - (setq layname (nth lay-idx laynmlst))5 e* Z* X5 X% W1 L* @
- (setq layinfo (tblsearch "layer" layname))
; J, z6 l) c7 { - (setq ltype (cdr (assoc 6 layinfo)))
0 l9 v3 n# B6 y% u$ E; s - (strcat "BYLAYER (" ltype ")")
* m/ H# L, g+ J) n6 X: T! x ^ - )
[* `7 ^' u! Q - "BYLAYER"; X7 s4 G2 g. E7 n* E+ }9 t
- )
S$ I$ J0 N- N/ k: K- O - )
) {# ~7 o- |# ^1 D% b! h$ X - ;;* b: B ~0 A* T4 B7 m) D3 ]
- ;; This function is called if the color is set "BYLAYER". It finds the 6 e9 r( h( y$ w2 L
- ;; color of the layer so it can be displayed beside the color button.4 e8 ^! V3 D6 T' W, r# O
- ;;1 v2 R$ I2 Y0 |
- (defun bylayer_col (/ layname layinfo color)1 `+ ?9 x' Y6 ?4 @; J4 ~
- (if lay-idx9 w" R# n2 A; R. T7 [
- (progn
; T, s* m* ^8 ^: ?4 N% y: u8 V - (setq layname (nth lay-idx laynmlst))
+ A7 p+ O- f. f - (setq layinfo (tblsearch "layer" layname))
4 P! S/ p- d8 M8 `$ ^. ` - (setq color (abs (cdr (assoc 62 layinfo))))# l- I- Y- F: g
- (setq cn color)
8 P3 e8 u* C4 g+ o3 U2 p - (strcat "BYLAYER (" (colorname color) ")")+ c$ c/ J* ~0 R o* y( z+ K4 c
- )
6 S' f. G, A3 j( |1 n1 Z9 O - (progn
0 r/ J; q- j0 k: e1 ` - (setq cn 0)/ A# E# h1 k- k0 ^8 t) n
- "BYLAYER"$ G: z2 S/ y; i/ R( M
- )' r4 ^" M: t8 O+ U* N
- )
. u5 @$ q4 G9 e, R! F7 n' m - )
" f6 Q" Z! A2 f% d$ t+ W0 q7 U - ;;, j/ {$ j7 V$ `4 _( c4 R
- ;; If there is no error message, then close the dialogue
% }/ @ ~9 }6 h, e, \/ y$ O; T - ;;7 J$ k) p8 ?) Q2 {
- ;; If there is an error message, then set focus to the tile5 E5 u% d: X- r3 ^; i
- ;; that's associated with the error message.$ p9 X. b' J6 x0 c, @ k7 b
- ;;
5 b* T- _( [( ? - (defun test-ok ( / errtile)! }3 O" b% [6 L3 ?
- (setq errtile (get_tile "error")): \- ~% v) W: ]/ q
- (cond- |9 C- d, C8 A/ P7 d8 N
- ( (= errtile "")
( `7 I6 e; V+ O; e: B- S - (done_dialog 1))
" z! S6 c, Q+ F' i* D- ]& U$ _ - ( (= errtile "Invalid thickness.")# Y* a' B* \% C& O. ]5 `7 D- ?* v
- (mode_tile "eb_thickness" 2)); w2 h% l% c7 |/ K
- )& W) O% ?# e/ K' ^" o5 w- p/ K. i* Q
- )4 Z! I' i& ]6 g' `
- ;;
9 D: I/ h# v6 @0 A5 B" ? - ;; A color function used by getlayer.
L% L. v; l; ~5 z - ;;5 G5 h6 U: Z; l, w
- (defun colorname (colnum)/ Y; y/ E" i1 \, y
- (setq cn (abs colnum))
3 z4 y/ q' _3 w) v" C8 U7 D - (cond ((= cn 1) "red")
# s1 o, c$ U) u - ((= cn 2) "yellow")- T$ |: Z; P O( m, Z' T8 {
- ((= cn 3) "green")9 ^* K; t, q1 {) }8 N& f
- ((= cn 4) "cyan")
0 G& G& l' o; v# I6 E5 D% V; P: | - ((= cn 5) "blue")2 M8 T' T: |1 k1 P- p
- ((= cn 6) "magenta")
7 b% y. O9 A, ?9 g) ] - ((= cn 7) "white")0 B A% Y( C! E9 I0 t/ y+ l- z
- (T (itoa cn))9 d9 b' q0 H3 Z$ F( e8 t9 b& s
- )
) s0 D: w+ j' f7 f - )
/ M! M3 d) ?# a2 D2 u. l( Z
. b/ F! z& ^6 C8 ^ t" f- Y2 k- ;;; Construct layer and ltype lists and initialize all
+ H8 K/ z) e( {" c, X1 A - ;;; program variables:
o9 B% ~% |' J
3 ^% B! u9 ~# R1 f- (makelaylists) ; layer list - laynmlst
6 H+ O3 b+ a% n5 _) N - (makeltlists) ; linetype lists - ltnmlst, mdashlist
+ d. T8 Z1 W# V/ i- g% F - ;; Find the property values of the selection set.
& r3 u" r' z/ Q - ;; (getprops ss) returns a list of properties from
$ v$ ^3 R) L. r9 p - ;; a selection set - (color ltype layer thickness).
! E( z# l* v. l% e - (setq proplist (getprops ss))7 G& I( s" u; Y9 S3 k0 C+ j! L
- (setq ecolor (car proplist))
+ K6 U/ z6 o2 w9 e& y1 }) o& f - (setq eltype (cadr proplist))
! x# ^* z) C" Z# K+ u/ c8 [& P - (setq elayer (caddr proplist)). m' B. c6 p% }1 K1 W
- (setq ethickness (cadddr proplist))5 e/ `6 Z2 t; l
- ;; Find index of linetype, and layer lists
' i* I! ]" X/ W; T( t |- r% x - (cond" X7 Q5 ]( Y6 v1 Z8 H
- ((= eltype "Varies") (setq lt-idx nil))/ { ^) @$ A# \: o7 n2 C. w4 @
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
. t3 I3 K$ P% W, R# J. X9 X - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst))). R- K% m/ i3 M+ F* i
- (T (setq lt-idx (getindex eltype ltnmlst)))
' H0 {7 i4 Y _ - )" I; S- f |( p3 u: p
- (if (= elayer "Varies")
9 m0 C; O1 w" m1 } - (setq lay-idx nil)
, m) j5 H1 C! E e( ~+ z! w - (setq lay-idx (getindex elayer laynmlst))
3 [- G5 e$ }: C! A5 N, F* \* E - )2 g. _# C; u+ X) z7 T
- (if (= ethickness "Varies")2 h( H) I( ]. n
- (setq ethickness nil) u# W2 {7 l, W! l r2 e2 B
- ) e/ i( |% Q: d2 O% v" J- ]; m
1 y4 R# a/ M. M5 Z- ) ; end (ddchprop_init)
2 V- P; c- H* } - ( ?/ y$ D5 ]6 J: d$ I
- ;;; (ddchprop_select)! `5 z" W: c T) E" s% a
- ;;;9 _9 A/ s- d/ J% |9 j. Q
- ;;; Aquires selection set for DDCHPROP, in one of three ways:, q; k# t5 r* Y
- ;;;, l$ G* }# V/ B) c# N2 R" w
- ;;; 1 - Autoselected.9 @; w4 D9 m' k3 f
- ;;; 2 - Prompted for.
& ~# v6 T7 [' o: { - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )0 ?+ V$ r2 |# P2 L
- ;;;7 Y, F: \" g* I4 I1 n& g# E
- ;;; The (ddchprop_select) function also sets the value of the2 V$ @+ k" }6 m9 W$ e
- ;;; global symbol AI_SELTYPE to one of the above three values to% m, u5 q! }: _8 Q; d
- ;;; indicate the method thru which the entity was aquired.% D- H7 Z( R, Q" O: ?
. ^* @. v# ]4 L* x1 h. P- . u: e/ Q! i7 k, ~. s, P" e
- (defun ddchprop_select ()# F- O3 q2 K1 \( B. i
- (cond
" r6 s7 ]7 A. X: R1 Z! h$ m - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
/ b4 l9 c. @, [$ T+ q. Y8 l, S - (cond ; (ddchprop) as argument
2 N6 \: k6 u1 [% m2 e - ( (not (zerop (sslength ss))) ; If not empty, then
* h# K7 ]# U3 K& I( j- e - (setq ai_seltype 3) ; then return pickset.4 I! M; U. G q7 R
- (ai_return ss))))
! S5 o0 E" ]) F- w- [" W - 9 l' R! X/ Y* u' O3 y
- ( (ai_aselect)) ; Use current selection: N+ @! Y! M+ P% g/ i+ K. j1 s% O$ s
- ; set or prompt for objects
& i( z4 E0 L2 f/ ?/ g# T
) W- @( }4 q( |1 ]' t- (t (princ "\nNothing selected.")
! u+ [' r3 A9 ~ - (ai_return nil))" Z+ ~* v- X6 F0 w
- )
- i$ x* |; r* n+ v - )
( H4 n; G3 \/ l8 R8 M
+ k. t3 z4 Y3 P7 s7 v+ l: q- ;;; Define command function.
6 t# s( N" I. N5 p0 A1 T
]$ g; `# W/ Q: W- (defun C:CH ()
2 Y8 p8 I/ q9 Q( K - (ddchprop nil)
% D! f) h( Q5 R3 ~) M* t' h) w - (princ)7 ^+ g( t4 O5 P4 o: w5 u+ ?4 D
- ), j/ l$ i% z; Z! Q, _; k) M0 y: x
6 z S+ H- z; v& u3 p
k9 {9 K, R4 ]2 W$ M2 L3 ~* R" g- ;;; Main program function - callable as a subroutine.8 ]/ x; ]! p; B" \/ A
- ;;;' M; E1 P# Q1 W$ K
- ;;; (ddchprop <pickset> )
" M9 O, c( Y% |6 V$ c2 F - ;;;- z- d k! c% p$ B; f
- ;;; <pickset> is the selection set of objects to be changed.
; F2 t$ T! Q) C - ;;;
2 u+ }+ I; u" P" X8 A - ;;; If <pickset> is nil, then the current selection set is, S7 n. L- d# X
- ;;; aquired, if one exists. Otherwise, the user is prompted& M, e% h" W. G9 ~
- ;;; to select the objects to be changed.- f, y/ M; p( ] l- b5 i
- ;;;
8 _% Z, v6 x6 C7 n - ;;; Before (ddchprop) can be called as a subroutine, it must) n5 v( S, [& l* {
- ;;; be loaded first. It is up to the calling application to' U5 N; J; _) F; ^1 T# T
- ;;; first determine this, and load it if necessary.
$ f( D" I; \: J0 D! t* b - 5 ?; k" m6 i1 ]: y
- (defun ddchprop (ss /9 ~2 a1 f* d9 o8 ^
- : k" U4 c8 A2 ?" `) L8 j: |
- add-mdash ecolor ltedit_act s
8 b& D) j) O( e0 K4 v5 a* a% A/ s - assoclist elayer ltidx selset& }% p* ~6 w3 F9 h. c# o9 x
- bit-70 elist ltlist set_col_tile
9 I: O6 {: C& \; _ z; Y4 G' I - boxlength eltype ltlist13 v; k, N) G1 v5 K1 P. t" a
- bylayer-lt en ltlist_act sortlist
$ b5 v0 K5 s' j0 f$ { - bylayer_col ethickness ltname
! t F2 _! q+ v/ L% S. W7 r - bylayer_lt fchk ltnmlst sslen2 V1 }% m5 _* y& \% d
- call_chp frozth ltvalue templist
4 V' ]* k6 A( x3 H+ @3 g+ i - chk-col getcolor ltype temp_color6 a4 S/ {5 }1 p* x1 D
- chk-lay getindex m test-ok5 v0 n5 x0 t p! C
- chk-lt getlayer makelaylists testidx% o+ F. ^. C( U) R/ G
- chk-th getltype makeltlists testlay9 b" K3 f; Y* P+ g
- cmd getprops match-col th-value
) @9 F2 l6 e0 ~8 {3 r' z; ~, s - cmdecho getthickness match-in thickness5 I5 I V/ C$ C' R$ I6 Y! R* H1 p
- cn globals match-lay tile
/ W! q) v+ n9 q. y' y- w1 S - cnum go match-lt tilemode! k: x& \3 N) q- }+ b# m4 ?
- col-idx index match-th tile_rect/ A4 ~" z8 F( s
- colname item match_col vi4 ^6 p2 h2 |/ P4 H1 N0 y+ B2 x
- colnum item1 mdashlist vpf
. W6 U$ k1 V" M( [+ ? - color item2 n vpldata
3 g9 L3 o0 x9 Z j" J6 U8 k - colorname itemlist name vpn( `! ^" _" d3 X0 p$ B' L
- col_def lay-idx ncolor x0 _8 m' }$ F; L T( a- s
- col_tile layedit_act nlayer x10 t7 @/ Z3 y9 G
- ctr layer nltype x2
T9 {9 J m; S! t0 r9 Z1 H* B - cvpname layinfo nthickness xdlist
: n c, g+ M! w+ V. F# } - dash laylist off y" l: o* }* l. o1 G+ N& x' \) H
- dashdata laylist_act old-idx y1
/ t) H+ O! s2 H2 e* e/ b3 U - dashlist layname olderr y2
& X n; h( N7 r1 \' n/ W) h - dashsize laynmlst on undo_init
2 G7 L5 s6 }) j% w - dcl_id layvalue onoff4 f( L$ R/ R7 [7 q
- linetype patlist( Z |) H! x8 m
- ddchprop-err list1 pattern$ j* v$ L0 o3 r( w. G
- longlist proplist
( W8 X, s& o* Q8 H8 z: c3 k - lt-idx reset-lay! n+ u, W& H' a8 }3 c# n7 W
- drawpattern ltabstr reset-lt' t/ Y% ]9 ^8 O# G/ l5 X' _
- )& z# I3 e7 F2 R6 E
- 4 E& u; d% v4 j0 m
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho7 S- A. Z& T) v: n8 A
- old_error *error* ; save current error function
; W- U3 I$ @$ j% I, F& w2 V4 L - *error* ai_error ; new error function
7 ^2 v! T" O% t - )3 o. Y! u- |" e& I- @6 h/ }% u' y
# u4 Y. z& n) @! }, x- p- (setvar "cmdecho" 0)
K m7 d' ?6 K* Z - ( \% x2 `& {# x& Y3 Y8 Z9 `# L1 i& @
- (cond
/ d; G( `" n, \, z - ( (not (ai_notrans))) ; Not transparent?0 Z# r6 E% m4 `
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?& y! V& N( U1 Q" T4 p' s+ r
- ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?" N1 \1 p! g7 o
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?- ]" _8 g8 R7 }8 L G
$ m- K1 \5 d; `- (t (ai_undo_push), n, }) U U: q7 l1 G4 t
- (ddchprop_init) ; Everything's cool,
/ D5 L; Z0 D! { - (call_chp) ; so proceed!8 a$ ]$ V/ O, L3 z; k) w: A
- (ai_undo_pop). n, H3 i5 t- Q
- )% `8 T( r( F, a& e, K( r
- )
! J( `& M1 ]4 g) V0 Y - / L+ s" J" X2 E% w( M$ l6 L( K6 E2 k
- (setq *error* old_error) 0 G _ m; g$ H
- (setvar "cmdecho" old_cmd)
' j3 \7 g) l' T2 ~& W3 {& x2 n8 l - (princ)6 G3 j/ H4 s1 M3 g6 @
- )
$ G" J. C& A4 ?* B# s/ v, @) @2 k
2 m! B2 X* J8 V' k5 P; v1 c% q- ;;;----------------------------------------------------------------------------( t6 g2 J8 ~# m+ S, F
- ; ]* w, p9 q- M' Q
- (princ " DDCHPROP loaded."), ?. s4 k+ \6 ?4 \0 T* \3 g
- (princ)
2 N6 i: A; l, Z$ w" @1 f+ L - ' p+ [* v9 a+ n+ e: d
- ;;;----------------------------------------------------------------------------
, ?5 V' T5 O8 T0 I1 U0 c3 D, [) J - " L& Z U: o2 J6 W6 }
- ;--------------------------------ddmodify.lsp----------------------------------$ g+ n" t; ?6 n( S& }- P* n! |- }
- ; Next available MSG number is 111
1 a4 n; u6 d0 D! M7 [- N9 o - ; MODULE_ID DDMODIFY_LSP_
2 M6 I$ A* G1 p ^5 U: b0 z0 w - ;;;----------------------------------------------------------------------------
/ {% v. ]5 i$ H3 s, o- I, ~ - ;;; DDMODIFY.LSP
: l! o! N2 }+ Z - ;;;
' ]7 x4 d- T5 F( H% W5 i - ;;; Copyright 1997 by Autodesk, Inc.* ^/ ^6 `" s g
- ;;;
5 P1 A4 n: T7 X - ;;; Permission to use, copy, modify, and distribute this software
0 @2 b) d. n( f/ w - ;;; for any purpose and without fee is hereby granted, provided
O [4 |$ _1 H# w' E7 E - ;;; that the above copyright notice appears in all copies and4 m& }0 o1 ~( u: J. Q
- ;;; that both that copyright notice and the limited warranty and# s: m ^: m/ ?% h& ?/ ^" W
- ;;; restricted rights notice below appear in all supporting% L- ^0 ?( c6 F V/ ?4 u8 O; N" \7 Z. D
- ;;; documentation.
0 ]) p/ r* ?% }& ~ - ;;;
; ~9 I. c& `+ ?' x$ p! n - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS." d; V+ c6 X' \1 x; E! w
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF. o4 _7 J) Z; e
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
F$ |6 U. ~ \ |* g - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
: U Y% l% P$ ~1 ?0 g - ;;; UNINTERRUPTED OR ERROR FREE.% g1 [8 m9 o/ _$ {: _5 U0 u
- ;;;
0 c! ?0 O- X4 _8 T | - ;;; Use, duplication, or disclosure by the U.S. Government is subject to2 @& ]# s- Y' F+ l9 `2 W; u, e$ A; G- h
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer" L/ ~! X- v' E; [ T( V3 ?& T
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) E: ^/ |5 I9 k: j6 x7 I) y& V
- ;;; (Rights in Technical Data and Computer Software), as applicable.# R5 o' W6 u6 i
- ;;;( e- z& O; H& T( m$ j8 \- c; G( W+ s/ q
- ;;;.
2 m! y$ t" {2 \: q* ^: M - ;;;# u. S' u9 g8 M2 |
- ;;;----------------------------------------------------------------------------0 p# h0 s; K: o
- ;;; DESCRIPTION' s8 ?6 Q8 Q$ ^' u
- ;;;8 l3 f6 m, l4 R) u
- ;;; This function allows the user to get a listing comparable to the LIST
& N9 P7 i( p o0 j- R# V" | - ;;; command for most objects. In addition, most object fields in the, s4 d; n- t! V) {+ i5 o$ i- @& W
- ;;; dialogue box are editable. Points can be specified dynamically by
; f, C# B0 O" ~ - ;;; temporarily dismissing the dialogue box. Each object has a unique; k3 r$ I5 T. U5 y% I* l( e8 P
- ;;; dialogue.
, d! ?2 a5 b" Y% V2 _' [) t - ;;;0 h2 V; W0 R6 i# q9 |. @5 a) Q
- ;;; Naming conventions
# P: [6 ?5 F) [: E( N - ;;; Long function and widget names may use an underscore "_"% T4 E) p, y; Z! Q* V) b
- ;;; in their names to make them easier to read, long variable# g4 K7 ?8 {% G; \8 @, W" @
- ;;; names use a dash "-".
) Z. G, u! {6 d4 d - ;;;----------------------------------------------------------------------------
. v2 j" U4 U* f* {3 s4 w - ;;;----------------------------------------------------------------------------
% o: [2 x% E0 T6 h! | - ;;; Prefixes in command and keyword strings:
* S+ U J' c) f - ;;; "." specifies the built-in AutoCAD command in case it has been
# r9 C0 \6 l$ N" C - ;;; redefined.
6 t& k2 E6 o4 b- v# W - ;;; "_" denotes an AutoCAD command or keyword in the native language
' l1 C: p4 U' E* J! `5 ~ - ;;; version, English.
1 _3 j# f- P1 v) E' F& w2 J- X* X- w - ;;;----------------------------------------------------------------------------9 ?3 s8 V) \4 c5 _- o4 K; d
- ;;;
" Z7 V5 H# ~$ {6 Y4 ^: c6 Z1 } - ;;; Avoid (gc)s on load to improve load time.
/ g5 L0 t" M( B, k5 F( {6 G - ;;;
h! R9 f4 `+ Y0 \3 H - (defun do_alloc (/ old_allod new_alloc)8 T/ f( i" ^$ ?9 P% V( d5 T/ u
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
7 B4 r" z1 w3 }8 g, v5 r' u - (expand (1+ (/ 17000 new_alloc))). s+ H1 w$ \: @9 ~- _ T
- (alloc old_alloc), J7 d C6 U% M: a& g. o1 W
- )
8 z; |( W4 H$ W; `' g ? x# e - (do_alloc)
0 q) j# N5 e+ m+ i) X4 G - (setq do_alloc nil)
# G7 a* D& B/ U* m1 b - u$ V5 e( n8 h3 N7 E
- ;;;
8 @5 u$ P( v% y9 r - ;;;8 [2 r8 G1 {* c) B8 h1 h/ W3 t
- ;;; ===========================================================================) W: K3 y7 e2 \6 s, r; L
- ;;; ===================== load-time error checking ============================0 O, \2 z: P1 V# g- b
- , ?; K: I" K0 l
- (defun ai_abort (app msg) v8 I w0 X( v$ p k
- (defun *error* (s)4 u& p" m8 j, r$ x5 H$ H& k
- (if old_error (setq *error* old_error))' G& Q# J+ L* B- e5 \; |
- (princ)5 I8 H( A$ z) p8 k4 `- m; r3 O
- )3 E1 M' I' L5 l" N! Q) ~* \ g
- (if msg
9 A; a4 r$ J3 O! D# D - (alert (strcat " Application error: "2 F" F! f* X+ [5 E0 ^/ i
- app
6 h# u3 X% u" L" z8 l - " \n\n "! y' P1 ^& V1 }: f
- msg
9 [# X# I7 z: ?5 k0 M - " \n"3 [8 |2 t1 f7 p8 _
- )- M! r' C, R* ?, s: Q% x7 l5 e
- )
3 V; X6 ~9 |& `$ O2 z+ @; D - )
* e$ u% g6 d0 D, c8 p$ Z! y& L0 c% e - (exit)* X/ x/ o& n7 ^8 J
- )8 d* B0 R! }) a0 Z
6 h3 x* {# A. c8 ~/ T- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,0 C* s: b' S+ Z7 b& p8 O/ D
- ;;; and then try to load it. If it can't be found or can't be
/ J1 |' x0 v( v ]" H$ R - ;;; loaded, then abort the loading of this file immediately.
8 q4 h- T$ T% ~3 G& H+ m! @
. P3 t; P' f0 q) K) K% {( |- (cond
" g% q& }( i/ p5 O+ i4 m- C: s - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
7 e; d' r% T8 E# H- P% y- O" x - ( K$ L5 x- i r6 g9 b0 x
- ( (not (findfile "ai_utils.lsp")) ; find it
$ O) Z% p8 |5 { - (ai_abort "DDMODIFY"
5 F% f5 S9 d. [. l7 ~- m$ @ - (strcat "Can't locate file AI_UTILS.LSP."$ Q) E0 ^8 g) b* L
- "\n Check support directory.")))$ M" x8 b& T. S8 m0 ~0 y
* G7 [3 r* ]9 N s6 G% ?$ p- ( (eq "failed" (load "ai_utils" "failed")) ; load it
, D$ H2 m1 e0 b$ C: a - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))0 R7 l" k8 f# C4 G! Z+ ]
- )
( @8 x: ^. h4 @: d - , X: D# |' H2 `% Y+ t
- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can) c" ]$ ^+ H+ l9 e* v
- ;;; be assumed that all functions defined therein are available.# t" c/ @, Q. o) A7 h/ c
- * V7 x- ]1 c% w
- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
$ s' w- U2 x1 @ h6 F; Y - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
# N z8 ` q$ o - ;;; does not abort the running application itself (so that it can
, B$ `3 m, d% J# u - ;;; also be called from within the command without also stopping4 l1 u: X3 C: F/ s. q" z- o8 K0 N
- ;;; an AutoCAD command currently in progress).2 H/ p, j3 Z3 O0 O) J) w
- e3 q/ J, Y0 |; O: W: I3 k
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP) B X- f9 p" Q, w0 u; Y- h8 Y7 o
- (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses; {1 W2 k4 I8 G; @2 N7 }( w/ X
- ) ; ai_abort's alert box dialog.! S" B! d2 [3 A8 X% r
- & c; r- D& P. l* p
- ;;; ==================== end load-time operations ===========================# N4 \% p k5 H, j, D w3 f" A
- 7 Q; u9 n. _5 Q& {3 G+ N
- ;;; global variables
7 i8 g( I! `2 s
4 s% {" d7 ]; b- (setq hatch-elist nil)6 G$ g3 }' o# t, ~* ]
- . I! u5 D2 a6 n. v" s/ j3 @
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are' z7 t( [* v; a5 ?0 s% r" R
- ;;; assumed to be available.
6 P. ]5 u- R6 @( U3 X! ~ - # a9 E7 \' Z5 \3 K7 {1 d# t
- ;;; Define and encapsulate all subroutines that are declared
5 X/ g k* u+ p( c( v - ;;; locals of the (ddmodify) function.
$ S" I" P2 [, H+ p - - P% J* l7 U. K
- (defun ddmodify_init ()* Z( T: |- j( I8 w# M( _
- ;;, ~* l X* l& S8 h
- ;; These three functions modify the enitity list for common properties. Since
0 M8 U X- \% t0 o - ;; color, ltype, and thickness are absent from the object list when they are8 G) e/ U6 u. E, [5 q. ]
- ;; set to their defaults (i.e. color = bylayer), a simple substitution using
, B' P5 N" J8 B3 B& Z" C0 u - ;; SUBST is not possible.
* O* t9 q" E3 K& ^% c+ F& l3 I - ;;9 l6 f `3 S! L% y1 e, }4 t1 Q
- (defun modify_properties ()
y, L. x- z, |" V! g - (emod ecolor 62)
! E& H# F6 Y: d! p - (emod eltype 6), R, Z9 m7 t8 S( }: B+ f
- (emod ethickness 39)7 T/ M/ L5 h2 `& l# c
- (emod eltscale 48)
7 |, C. p: o- Q/ O3 y# b2 a - (tempmod elayer 8 nil)
# V$ E- B# ^5 Z: B, C/ j9 K9 L# q - )9 h( g- t& ?. D/ ~& }* c! Q; e
- ;;. V4 x, H# s- R" X
- ;; This function is used for modifying common properties of the ACIS1 A3 g! D- v L+ Y/ p
- ;; based geometry objects. Thickness is not valid for these objects
3 N" v& X0 `+ X { - ;; so it is left out.
# ^6 ]) n& X, t z1 g; n; B8 {' b - ;;
- U5 O% ~* P( J6 L: x - (defun modify_prop_geom ()
9 e0 w0 s/ B! w. Z" j4 Q# y+ H - (emod ecolor 62)2 J: b' L y' {1 g: s# [2 z$ }2 b
- (emod eltype 6)
" s3 s& ?% F7 ~6 ^ - (emod eltscale 48)/ h+ q% z& c6 L/ ?2 t* z
- (tempmod elayer 8 nil)
7 @/ @9 G) Y/ j [( p" m( x - ). w8 G7 H6 q/ g
- ; T" K3 Z/ N0 {6 u5 O, C
- (defun emod (value bit): N: D; P( n+ j
- (if (= bit 62)8 c" ~5 _$ `7 C0 |6 |* v: H
- (progn
. D5 ~6 r; i L1 n d7 q, s - (if (or (= value "BYLAYER")
# ]* H8 x9 L( ]3 \ - (= value "BYLAYER")) (setq value 256))( X+ S! A4 q# ~$ P9 G. W& D4 T
- (if (or (= value "BYBLOCK")
o, {( C- \: ~* Q3 f2 t& @" l0 j - (= value "BYBLOCK")) (setq value 0))! Y% ^( j7 t$ N# f5 H
- )+ N* f; y. ^- t4 z, c% V
- ): o" O+ n* p ~- z) |+ W: M; \5 x
- (if (setq oldlist (cdr (assoc bit elist)))* S; V& ]1 w; E' i6 Q7 C M! t! d
- (tempmod value bit nil)
" S5 Y0 X2 P' ?1 q# \! S - (setq elist (append elist (list (cons bit value))))
4 V4 ~; V+ D) x# ?( f, [ - )
/ a \1 }9 I! P& C$ U5 n+ s - )0 {0 T& ^) O% d7 E+ W& r
- ;;% v1 D0 w& n2 ^8 \% Q
- ;; Resets object list to original values. Called when the dialogue or
; w6 V; K# B& P9 a/ y - ;; function is cancelled.5 S; U9 ^, ^% z# ` M# z( C
- ;;* q# E* j3 f }# T
- (defun reset ()
8 \# a6 q) O5 G3 r; ~, E - (setq elist old-elist
2 ~& p$ ~" ]% f7 S* m" X7 {5 P8 p - ecolor (cdr (assoc 62 old-elist))
. S- O6 z/ l. p - ethickness (cdr (assoc 39 old-elist))/ R) [3 f" a3 r
- eltype (cdr (assoc 6 old-elist))8 K% X" ` n4 I+ \) ]( }; I
- elayer (cdr (assoc 8 old-elist))
0 G1 E/ [% [0 S8 J% G( p - eltscale (cdr (assoc 48 old-elist))
2 C# F- K; Q( \6 {+ A5 c* w0 J - )6 a% q- R$ b- T2 X2 j( ^; M3 P
- (if (not ecolor) (setq ecolor "BYLAYER"))
% A% H" f0 A$ h. U# g - (if (not eltype) (setq eltype "BYLAYER"))2 s6 r& n1 c& S4 x$ D
- (if (not ethickness) (setq ethickness 0))7 d4 M' I4 J* |; F) a
- (if (not eltscale) (setq eltscale 1))4 t; @& g; d3 b& G
- (modify_properties)
7 l. ?1 R/ _ G0 n - (setq reset_flag t)
6 I K" ~$ b3 c; J - (entmod elist)4 i6 ^) f3 V& y$ x# w/ E! \ _
- ) i4 K( O8 @8 J% U
- ;;4 r0 ~2 U" ?& |9 s
- ;; Modify object when dialogue is temporarily dismissed to reflect latest% N" n+ a( i% W, j! E$ g
- ;; settings of dialogue. It converts the point from current UCS coordinates to' B) k+ N( w1 j, T% u' [# L d
- ;; the proper object coordinates (world or object).0 e' L7 s! B) v4 c( V, q6 n
- ;;9 R$ @; O4 d7 D7 e
- ;; Arguments: value - in current UCS coordinates- L/ F( A$ M& F2 u
- ;; bit - object code (i.e. 10 for start point)0 W$ D0 M" T( G" c3 `; g
- ;; ptype - point type 0=world 1=planar
4 o. L7 s1 y9 ~ - ;;
8 P3 a0 u% C. R7 e) ~$ x - (defun tempmod (value bit ptype / newpoint)7 Y6 G t5 G# |, a# S% Q
- (cond8 k- _, J& {# ~) R& C
- ((= ptype 1) (setq value (trans value 1 ename))) l$ J8 d5 c+ G5 [8 P& d
- ((= ptype 0) (setq value (trans value 1 0)))( [' F% e- B: q
- )
" y9 X+ a- u+ o - (setq elist (subst (cons bit value)
7 ]* |& ?9 Q: Q; T) Z2 I - (assoc bit elist)& o: F( J1 M4 H" g; @/ a
- elist8 N1 a. M2 `) J. O
- ); J. v) J4 ?6 p- A7 L! b2 g# ]
- )
8 o) s* _5 @8 n8 }9 ?$ p9 e/ D - )$ D+ R; w3 |! C+ u8 f( ~- Y: q
- ;;
! B" Q1 I3 L" o- N/ j* c, h - ;; The following functions are called after a dialogue has been temporarily
, e, f, C( r( w. O( w4 Z0 O - ;; dismissed and the user is selecting a point. If a point is selected the" w; ^" J" t( f @: m* J9 j/ s
- ;; object list is modified and new X,Y,Z values set. If no point is selected3 p( N3 b& q( W6 T7 U9 M
- ;; (null response), then the point is reset back to its previous values.# Y- F/ w9 L+ r' S
- ;;% |" g$ I- o. m; K
- (defun ver_pt1 (ptype). U9 G! y" ]. f1 ^5 U2 C" s2 ~
- (if pt17 K" M& G; ?7 ?9 o
- (progn
2 [6 A2 k4 N2 { - (tempmod pt1 10 ptype)
+ C* e. e2 P5 k0 t6 P& X - (entmod elist)
1 L9 P& z% s( e - ); |* O& {% e5 w* P$ z6 t2 \9 W2 ~
- (setq pt1 (list x1 y1 z1))
( p2 [" O* S) ^1 Z) C$ V - )
0 Y: U' D6 c0 P( S$ K6 _. @3 a6 j - )
5 n! b+ z; j, w - * H- w) t& Z$ K- Y g" @5 B, x
- ; (move_pt1 <ptype> )7 J% m6 A# r' ]- g7 Q& c
- ;2 l7 ?5 O, |+ n9 \% V1 T. [8 e2 W
- ; Called in liew of (ver_pt1) to translate block insertions which- a( s; }2 ?8 k8 Z0 n v2 P
- ; might have variable attributes attached to them. If the distance
2 b& R; r/ T# S - ; the block is to be moved is < 1e-6, the move is deferred.
) S: H9 C* w& C# Y; _
- N# p& B) b/ P- (defun move_pt1 (ptype / basept hi)
! Z' t' N7 ^% n. f/ l5 Y - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))( K2 T6 _. ]' N/ P$ t
- (cond
7 Y( U0 \/ D0 c - ( (not pt1)% f: p' t) t9 B5 e) K6 D$ Y
- (setq pt1 (list x1 y1 z1))): n- R8 P( A8 k) L: f
- 9 v- ^) g" S+ {5 Q3 ]$ ?
- ( (> 1e-6 (distance pt1 basept)))2 R, I! b& A9 K6 f) l; f; O$ K
0 L5 B$ T- q z+ L9 M0 j6 Y+ l* q: g- (t (tempmod pt1 10 ptype)
) E* l. F" j2 F' g - (setq hi (getvar "highlight"))
$ w9 u- r$ M4 @9 A - (setvar "highlight" 0)
, a! R) U+ i3 {$ Y7 Q# F - (command "._move" ename "" basept pt1)4 g' h' `9 n9 L/ n7 W; f* q
- (setvar "highlight" hi))
( Y9 C+ [; T: ~' I1 f - )9 L* l/ s8 A5 c% C6 D6 W
- )
4 ?4 G; J" f1 g - v! G- Q, ~, m' s' E
- (defun ver_pt2 (ptype)
* ]) t) _3 o5 O# z& V: F- x - (if pt20 q, \0 P) ?8 A, B
- (progn
- V) r' [; H- L4 q/ W - (tempmod pt2 11 ptype)
7 N( J% W% ]& x) p, D! @ - (entmod elist)) q3 M3 k- l- ~0 O9 ~# l
- )
+ ~ a1 ?$ |0 |2 t8 p1 k/ k E - (setq pt2 (list x2 y2 z2))/ v6 f( F. r8 y1 T3 f. q0 g+ ^
- )
% E/ [4 {% R5 ?$ u) \; |' Y1 Y - )
& l+ C: M* I" T! r# c* w5 V - 6 z' U6 I A* s" Y5 y ~
- (defun ver_pt3 (ptype)
' g4 ]% Y ^9 X$ o - (if pt3
! S* R9 @0 k5 {5 [1 R+ z6 r. B. c - (progn( H/ p% |6 O/ o/ P. @/ |
- (tempmod pt3 12 ptype)& ^/ t! t) g8 J- v* `; m1 u5 p
- (entmod elist)( W2 Y2 D2 P0 b- \4 F# U+ h+ n
- )
( E* A, [5 B: u/ h - (setq pt3 (list x3 y3 z3))& ]6 y+ ?4 |6 B5 n: p3 k# T
- )! x) ^) u! D8 t4 J0 a
- ); ]4 n( B: o& X8 u. x
w2 f& m: `8 `: h- e- (defun ver_pt4 (ptype)* A5 v; S* k+ E" s
- (if pt4
! c7 e; K. L' d. @* E# ] - (progn. b8 b3 J8 V. j6 W9 K
- (tempmod pt4 13 ptype)
. B( C2 H! x; | - (entmod elist) m/ V8 r1 n. R( i& B, E. d& ]
- )2 a& Y' ~# c4 k1 A. P* h) y/ B
- (setq pt4 (list x4 y4 z4))* }. R2 h$ a# X
- )! p+ A) A0 D* X( x
- )( r8 S5 `2 s) p4 _7 W2 P
- ;; Xline/Ray+ h) P6 b& ?! j! D8 H6 c B3 p
- (defun ver_xline_pt1()
% }, x) i6 _+ S+ ]" S2 m) B - (if xline_pt1
0 K6 V- T& U# P - (progn
& h7 I, }9 ?' a, u - ;; convert to WCS.6 ^$ s( |" Z' Z2 i& q% r, X
- (setq value (trans xline_pt1 1 0)), l: ~/ d( w) F' _
- (setq elist (subst (cons 10 value). n. X: i( t a
- (assoc 10 elist)0 z. R+ b+ j) {& k9 N% Y7 W9 c6 ]
- elist
% R+ C; u) f$ k8 P( R - )- a( I$ z: m6 e0 j# `
- )* R2 ?1 |$ t2 o1 _
- )6 Z1 w+ f8 @$ c
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))) P, z" [* m9 A" }
- )
# O) E- J' O$ K4 @$ i2 t - )# Y' E B4 b" \5 J
- 2 q* x4 g# I- {3 u7 a* ^2 W
- (defun ver_xline_pt2()
0 W+ ~2 z7 V: Q. w% }( E1 ~ - (if xline_pt2, }$ d2 a7 ~- }" v. v7 q
- (progn
2 j; _$ m! d( @- U - ;;- W1 q/ J C) q. A
- ;; Calculate new Direction Vector WCS5 Z& v# s5 m8 n C" y: n0 t C; g! {
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) )): k5 W5 p1 b8 ?6 `9 G% b( _1 P" ~
- (setq temp_dir (trans xline_pt2 1 0))
# n" T8 M/ P: C1 ?, F$ a, S - (setq temp_dir_x (car temp_dir))7 y9 P, j) C! R2 X
- (setq temp_dir_y (cadr temp_dir))
2 O" y* t2 v, G - (setq temp_dir_z (caddr temp_dir))" R4 e0 \) B- D! p/ K$ m4 M
- 8 a7 D4 E4 @5 w: s$ O( O
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
& N, C$ V; ~3 i9 m( Q- K- W - (setq temp_xline_x1 (car temp_xline_pt1))& B# k5 F9 Y0 {8 e3 H
- (setq temp_xline_y1 (cadr temp_xline_pt1))
& @3 ?, Z, \8 O$ w5 X - (setq temp_xline_z1 (caddr temp_xline_pt1))
/ f" a5 v8 z6 _& B3 n+ ? - $ J8 e% x: Y. c, }, ^3 o- a
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2), Z- P! W" V5 d( v) N
- (expt (- temp_dir_y temp_xline_y1) 2)
/ T! ^6 H% [; [6 W3 I2 Y) a - (expt (- temp_dir_z temp_xline_z1) 2)
, h/ U: L* @1 w - )))% V+ h$ _' t$ t1 q' g
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))6 j" J( i2 u" p4 S2 j& G- b. W5 @
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
- T" `7 ^ `3 {* s7 X$ f - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))3 o0 Y [6 e% w9 R: p
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
' N9 y4 d0 M& v1 X) h# V6 V - (assoc 11 elist)
E9 q! T D2 `" e, Y - elist
5 z6 @* ]1 u1 P _1 W - )% b; d- F K0 b* \8 ]
- )
4 y5 \( v) g" Z! Q' e - (entmod elist). ?6 w( a8 k Z! l5 T: S9 x+ ^/ ]
- (setq xline_x2 (car xline_pt2))
, i& _5 R/ v+ I+ s5 ? - (setq xline_y2 (cadr xline_pt2))
( D- l2 `$ n0 O* Z - (setq xline_z2 (caddr xline_pt2))- l5 s6 a7 v" {4 o3 \
* t9 y; _9 d6 L. `/ A
1 A9 P9 y. K: Q* M/ i) T- )
& y% Y' J* c4 | - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2)); `1 v( c% Q! B" H) ?) R# _
- )
& D7 w+ B$ V" J; q7 o6 M9 d$ p - )
% t. W2 S! d4 y, e& I2 V" \7 E. q - 5 X- f% Y% V, A' v
- ;;
- q4 _! d) W) F5 h - ;; Common properties for all objects
4 C' `- B2 B- D* K. d2 M - ;;5 e! q$ r5 q: f) a0 U, W8 |
- (defun set_tile_props ()
4 T0 q4 {2 y$ s9 u8 m( X- n; ^8 q - (set_tile "error" "")" T1 b5 K: D3 N5 I
- (setcolor)- z0 F& X0 P8 U% `3 H, a; b
- (cond
# P9 v% V5 ?: e. J - ((= eltype "BYLAYER")
# E8 v$ v' r* X! C - (set_tile "t_ltype" (bylayer_lt)))' r# p0 a6 N0 T7 G/ F* U$ k+ s
- ((= eltype "BYBLOCK"), J! \0 ?4 R5 C0 T5 c
- (set_tile "t_ltype" "BYBLOCK"))* m. N: _3 D: J0 R: G' K
- (T (set_tile "t_ltype" eltype))
! b& g: c1 d( ], P2 @& `1 e. A - )
?: |8 [9 u, X& `$ h, n& L$ y - (set_tile "t_layer" elayer)
" X9 P! {3 O( S5 K& E( _ - (set_tile "eb_thickness" (ai_rtos ethickness))
) P1 J6 ~3 x8 N8 L( J - (set_tile "eb_ltscale" (ai_rtos eltscale))3 r1 [: D1 [ u! y& V
- (setq which_tiles (ai_common_state etype))
. T6 _0 _: p& {- b Z1 g5 T3 ]/ p3 P - ;; Disable tiles if need be...: q& o, c2 W' f1 ~0 e% N( q
! Z( X4 w8 ^. I2 u& g0 F9 b- ;; Layer Button and Text Field9 C3 _+ R3 B1 z s, `1 c0 Y$ {. {
- (if (/= 1 (logand 1 which_tiles))' N7 d% X6 g$ @3 y5 p. b
- (progn/ k7 f5 S) I" i% W
- (mode_tile "t_layer" 1)4 |& P; d. M5 B. a, |% f8 B
- (mode_tile "b_name" 1)/ V/ ?" U" s6 J) y
- )/ V1 B7 Y! h% U/ }% y7 q6 r
- )! H1 `8 ^6 V3 f- _
- ;; Color Button and Text Field
y; d5 ?- E6 R7 s - (if (/= 2 (logand 2 which_tiles))
# n2 K+ j/ y( M% h - (progn
x5 j+ l( j' ]$ ?' g4 h4 c - (mode_tile "t_color" 1)
$ E% h4 N2 _. W9 D- K' \ - (mode_tile "b_color" 1)* j) J4 g( g% s+ Y e( l' M$ v" l
- (mode_tile "show_image" 1), a3 G. s4 {0 m5 T( k& j% Z; n7 e
- )) z, T6 z( h7 R, h6 N6 h
- )
; H4 X( e! t4 \+ ~$ Z j- N6 S - ;; Linetype Button and Text Field
4 k. J" W5 R5 L - (if (/= 4 (logand 4 which_tiles))
2 d& V* H8 ~1 |# S' z6 M, u- R) @ - (progn5 H9 D# m; k9 r2 ]5 }
- (mode_tile "t_ltype" 1)0 t6 G! G2 [2 Y* ?2 L% j
- (mode_tile "b_line" 1)7 W7 r) r7 `, U# h h, `% [7 c
- )
4 `) X s/ W+ i( a% @ W/ } e# _ - )
0 J, ~# Q) u$ ^* o/ j) E! P& M - ;; Linetype Scale Edit Field7 s) J: j5 i5 e8 ~7 }3 u8 m% f
- (if (/= 8 (logand 8 which_tiles))1 Q& B% y( c* I& X3 b$ O
- (progn
1 E- Y1 H4 v/ f& U- p - (mode_tile "eb_ltscale" 1)( g! ]. E$ G: N) N
- )
0 Y, J. d" T& y6 M - ), n q+ t) z% Z
- ;; Thickness Edit Field.- Z, T8 [' s: X- y A
- (if (/= 16 (logand 16 which_tiles))& ~6 |6 \3 |" Y" S8 `$ K7 A; h* [
- (progn; ~1 h4 f, W& u& k. x k
- (mode_tile "eb_thickness" 1)/ L3 o2 I* m$ L$ \
- )3 }% w; g4 v! n2 Y' k% T$ Z
- )% A: B- {5 W) r6 m# q" }
- )! r/ `$ l. U# M6 [3 C3 h
- ;;
0 z, [$ ?- J! B5 E# }9 N - ;; XYZ Point values for all enitites
- [% l/ z. m0 L - ;;4 W0 Q2 r- q7 R" I
- (defun set_tile_pt1 (ptype)
: U6 z7 l: A( K6 _ - (if (= ptype 0)
$ @, x) m4 {! [7 v - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
5 J5 S0 \6 w' c& Y - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
- h. \5 @* n( U: U' Y - )
1 z, V7 _& G0 Y, z! k - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))% a1 [) h+ J& ?. B! ?' X
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))9 P* {( X9 c' u- e' V3 o0 `
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
0 `5 |: J# F! x5 C$ ~3 F7 u - )
. N u! I+ M! y0 S - (defun set_tile_pt2 (ptype)
6 C; m* N& c! s* P - (if (= ptype 0). d! L; X K9 I' n; O( z/ V$ X- {
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))% M) B) P4 c& x( H' z0 B, }
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))4 C: P% E! \+ _1 _* i/ v) o
- )
' I- }# h! G$ O+ K8 U( W - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
$ z* a( E4 x1 D3 l4 {- t$ I7 @: O - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))4 }6 K1 A, d3 h( n% ^" b
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))$ A; H+ X( T" F" \) ~! w7 r
- )
8 b& [+ r0 P) p( J4 q* T# A - (defun set_tile_pt3 (ptype)( @! ]5 u% h' @" i, v
- (if (= ptype 0)
# r% u* w5 N3 W - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))3 R# f0 A% v9 \( `2 I2 X
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
# G6 K$ S/ X, @' a7 s - )
2 Z: }. a/ B$ F. w+ A - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))9 D* T, n! ~$ f* {& D
- (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))0 a. A4 G6 G" z. M( Z
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))9 H% r3 K8 m, W5 h9 R! I
- )
: R/ p' K! U: J1 d+ j+ g - (defun set_tile_pt4 (ptype)
2 N, J' t9 R1 a% C - (if (= ptype 0)# c- S& ]4 G" e( G- o
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))$ F' W1 h: \& b6 [+ A b$ i* |
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))* X( j4 u/ H: `4 g
- )
# C& ^8 ], U K2 ?: M1 u& q6 E7 L - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
- f: L- V# l# S8 K/ q1 n+ C F& e - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
& x) K; M/ C& f4 L* Z - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))6 v" K$ ]: a# U5 ?( J2 b- O
- ), i9 |/ ~7 S; E: c7 n6 E
- ;;
5 ^8 }, }& I" M) x& i0 S1 f - ;; Xline/Ray
! f3 _/ |* ^" d& V. D- Z3 W, p - ;;5 `, j2 \& s! \0 g1 q0 b
- (defun set_tile_xline_pt1 ()
4 P1 l9 H/ ]7 |7 K9 e3 @ - 5 L1 N9 m4 I% @1 k, B A, ~
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))$ q+ b7 V2 H/ S! F
- p2 h4 ]2 N8 E5 t/ @6 B
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
- O$ A/ H$ ]& o& o) k0 @ - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
. F6 P0 Z8 _+ L& }/ w& G# N - (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))) X% \9 N7 _, V* B5 I& K7 m
- )
0 `3 [% l; F9 V# l9 A8 }! H( p- Y - (defun set_tile_dirv ()! d+ M0 V" m# P8 h- T ~
- ;; Convert 11 group to local UCS (displacement)
% v& e3 O% v/ y' W6 G6 `9 l5 G - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
. V: g1 X" P9 F" o! J% k% V5 }. [& d
. l7 u7 s ~( n; O8 q8 l- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
- F/ {$ V; D0 u8 Q - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))% b# z5 Y1 @# I0 c1 Y' d3 p
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
. Q$ e1 r+ K5 P1 E- W2 L - )
# `% L9 d) I V' W& L' X - (defun set_tile_xline_pt2 ()
9 k/ G: U& t: [( o; n& X - (if (not xline_pt2)
; a/ p" R& G1 e" t, ^! V2 r - ;; Initial second point is Root Point + Direction Vector
) A+ I8 n4 h: `2 [* t7 s$ Z( f - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
) x5 O8 T' |" w" a, k3 x - )% g3 t: A' x8 l" M( X
- (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
* `+ S: V$ g, Y1 C1 p: `2 P( t - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))1 z& S& r) d0 U6 a+ u8 ?2 R9 n
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
7 F- m/ d* x- h - )
' k) M4 a" l- }" L6 J - - B+ z7 @! u+ v
- ;;. g- U- d1 G) t% }* }
- ;; Handle for all objects
) A" N. W6 L( F R8 N9 q - ;;
3 [! H9 g: K7 p* Q% f) _* _! G - (defun set_tile_handle ()
# o, x6 w. v+ ?5 B, o2 B8 i - (if (setq hand (cdr (assoc 5 elist)))6 \* T0 u" n! L0 Q/ y* |* l; s
- (set_tile "Handle" hand)
4 }4 P* b+ P1 T, Y6 G - (set_tile "Handle" "None")
6 R% O( s. s- _$ z: U% @5 G - )/ G, D) H2 J- Z. o+ c6 s
- )
' A0 [" g: s% r8 J G - ;;
2 G8 _ e7 e, Q8 F: d - ;; Radius for ARC and CIRCLE) ~8 R3 c/ G6 e1 s& f% B6 `2 ~" I
- ;;/ M( K! m8 K- f# Z& w
- (defun set_tile_rad ()' z [+ s3 R2 G8 t: }
- (setq radius (cdr (assoc 40 elist)))
3 ?% q2 T- a( L0 r' m - (set_tile "radius" (ai_rtos radius)) ~7 \) s0 g' s9 k0 J1 _
- )2 `9 M' e9 m/ ~
- ;;$ A) _3 @' f/ ?" o# `& u
- ;; Start angle for ARC# N9 [1 H9 J7 Q( c5 |
- ;;
: M" ]1 L* k4 ]9 Q d: ] - (defun set_tile_stang ()
7 s. B% ^6 X% m3 N) H% j - (setq st_ang (cdr (assoc 50 elist)))
! T3 m/ S# f8 d - (set_tile "st_ang" (ai_angtos st_ang)) v+ ]8 M& L: B: g# v
- )
3 S n! f5 y: ]6 D - ;;
% i7 s6 q& f0 x4 Q" d% M) I" U - ;; End angle for ARC7 m2 q( E/ d% y' Z
- ;;
: @; ?2 C$ U4 X6 L - (defun set_tile_endang ()& N w- \8 W8 Q& W: ]
- (setq end_ang (cdr (assoc 51 elist)))3 n6 ]" a) N7 g! q1 ~3 e
- (set_tile "end_ang" (ai_angtos end_ang))& s9 {* ] L& n8 _
- )
) L- P$ ^1 ~: b+ C# a- d5 r g* r - ;; i$ g5 ~' U; g0 y( Y+ B* ^; y7 D& z
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
- s; R' t$ B' ] - ;;
2 f) s' l0 M. u- `/ j9 u; z - (defun set_tile_rot ()
+ W$ H3 j3 V5 U! t+ {; `% \& o# ]" n - (setq rot (cdr (assoc 50 elist)))
1 h% x W* w) q: y: f8 F - (set_tile "rot" (ai_angtos rot))
/ L) }; T. i0 J" P/ f - )4 P) S/ z3 A8 c% d7 O' ~4 [
- ;; O5 Y9 {9 C2 j9 N: {
- ;; Height - Text, Attributes and Shapes( l& p3 D h/ t J6 N' i$ |
- ;;
% t/ g4 O1 b/ X( @+ n - (defun set_tile_hght ()
2 m6 G. ?" w# m4 r& g" m6 y4 b - (setq hght (cdr (assoc 40 elist)))
) `4 K7 f' q9 c+ H - (set_tile "hght" (ai_rtos hght))2 y: J7 W! v$ D& c
- )/ x8 m$ h" C) g9 L9 `
- ;;4 Q, z7 f7 U. ^4 p
- ;; Width Factor - Text, Attributes and Shapes! g; H- m1 {8 K! W$ @: U' A
- ;;
& @- f7 i( T: q9 a - (defun set_tile_wid ()
, ]1 J3 ` N/ W" R4 v - (setq wid (cdr (assoc 41 elist)))
# H+ e3 m( k) m$ F7 Q - (set_tile "wid" (ai_rtos wid))2 M: c3 g G+ U& E0 a8 [2 n& S8 F# |
- )
7 m9 p+ W3 b* s% r - ;;
8 t1 q$ } G# \/ ^* \ - ;; Obliquing Angle - Text, Attributes and Shapes
8 b5 \7 ]6 K: E. y5 G$ h - ;;# d# F. k: O" ?( ^; `! g
- (defun set_tile_obl ()
' N/ x, Q, w% X5 s/ d7 g - (setq obl (cdr (assoc 51 elist)))6 s6 c7 M( X1 ^4 n9 b. [
- (set_tile "obl" (ai_angtos obl))7 P/ z, _7 C4 A1 q+ d: |$ J
- )6 k5 |- H- o, b6 J3 D
- ;;
F2 \. V9 O' D& e1 X - ;; Text string
( F! Y3 ~$ M5 N - ;;
- Y; G5 a8 ?/ u. T) F7 j F - (defun set_tile_text (), k! T) G4 Z' m7 \# t& r4 Z
- (setq text (cdr (assoc 1 elist)))
7 G7 g, I3 O [5 J4 o - (set_tile "t_string" text)
. x2 Y, c O& c! B! W, q, _) K Y - )* [$ k1 S, i% o( E5 M
- ;;7 {. X! y% S1 l
- ;; Attribute Tag6 [$ Z$ Y" o/ p P6 Y6 }
- ;;
6 C O5 }$ x; q3 s+ q7 m( [ - (defun set_tile_tag ()( i, h0 q! j% A8 v2 O
- (if (= etype "ATTDEF")# p# g' E- \: m5 W$ r0 {
- (progn; J, C D+ ]. O; ?5 Y8 I
- (setq attag (cdr (assoc 2 elist)))
7 z* V- {, ]& L# h# q" C/ q2 I, c5 ^ - (set_tile "tag" attag)
" `; v: x F6 x - )9 a+ Z, E6 V' c/ o( b6 m& Z/ Z
- ) m5 v' n9 S0 L) n/ Z7 t' y- L
- )7 v. j8 P: g* l& ^- g. @% U
- ;;- e: C' P5 A$ Q& a* B. \
- ;; Attribute Definition- u+ z- g9 l0 p& v
- ;;2 [& p5 X- L8 [! v! i
- (defun set_tile_prompt ()
+ D3 u5 X: D" |0 B v+ |- @ - (if (= etype "ATTDEF") O8 m3 o. g! w4 ^7 [, e/ n
- (progn
/ u4 T9 Z) g; l0 t7 A - (setq atprompt (cdr (assoc 3 elist)))
& a& t1 W( s' t H - (set_tile "prompt" atprompt)- w& _$ b; ?7 t& P$ V" G) F t* f
- ). @( g% h5 V. D! \3 S
- )
/ [7 P) F9 G* E) Q$ a5 F - )' i$ s4 k" z c0 R9 \* k
- ;;* }& p' E/ M4 L9 ?# |" }
- ;; Justification setting for Attributes and Text. Initializes
: H' s3 D1 r3 ? W( w - ;; popup list box
# `! f0 M+ |/ u - ;;# t# {$ }: ?- K- j) L/ ~; b: h& K! `
- (defun set_tile_just ()
2 |, R* @4 T& ?3 M, G- C - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment3 A! ^ P4 H( J9 q2 W4 b% r6 C
- (setq va (cdr (assoc 73 elist))) ; vertical alignment
% v, i; Q( [- C+ s. O' G* F9 S2 R2 N3 O - (setq ha-prev ha)3 o! S" G! U+ ^/ Y
- (if (= etype "ATTDEF")
& g2 c: n. m" P- z3 V% O J - (setq va (cdr (assoc 74 elist))) ; vertical alignment3 k6 B* f( U: {' U" k
- )
3 |9 ]. y0 k) e' d5 k - (setq jlist5 Z' t; b0 B3 U" b5 g r
- (list "Left" "Center" "Right"
$ M) c! F: L3 ~# @" l; K' {4 R - "Aligned" "Middle" "Fit"
, X" r% h- B+ v% B$ m' p$ ^% J0 `) K; h - "Top left" "Top center" "Top right") {) V; C6 c+ S- ?6 @6 Z/ ]: n
- "Middle left" "Middle center" "Middle right"7 Q+ q) k4 ~2 N7 q4 W! j
- "Bottom left" "Bottom center" "Bottom right"
9 \/ L: w) l2 F - )
: h6 N, i: f" g* o - )
4 g6 Z( b: B2 D' b2 Q$ ]8 y( t - (start_list "popup_just")
: {2 P$ z1 \% o M3 f5 m - (mapcar 'add_list jlist)( f, l1 ^9 I) A# p: z8 ]
- (end_list). v o M3 _, ~+ c. ?9 G" P/ L
- (set_just_idx)
2 `1 y( y5 \/ z0 P( ?! f( o - (set_tile "popup_just" (jlist_act just-idx))
$ p& x( B/ S! v - )
' Z" r; D6 b* U. C7 a - ;;& F7 v6 h6 ^4 i, C. N
- ;; Style setting for Attributes and Text. Reads symbol table for popup list
* P5 G. J! n) d, ?( |0 ?) d+ i - ;; box.- O: ~: a1 H# F. \0 J) D
- ;;
3 D! H6 B/ n: p - (defun set_tile_style (/ sname style-idx tlist)1 ~' r- b. O5 M) ]( S# G
- (setq tlist (tblnext "STYLE" T) [& Y; i) {6 ^1 v$ X2 ^1 v, I) L. I7 _
- slist nil)
) R* g6 k9 n6 f2 ?# Z5 { - (while tlist
% S* p; ]' c: [) N6 f - (setq sname (cdr (assoc 2 tlist)))0 P; v6 o. a2 j/ q/ `
- (if (and (/= sname "")+ ?- _" f7 e0 y0 D, T6 G- ]* V
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))
# n. {& Z% I6 b0 B z' ^7 H/ S - (setq slist (cons sname slist))), c' A9 e( e" V' y/ o) \1 G& U
- (setq tlist (tblnext "STYLE")))/ c: o; \( l. |0 Q
- (if (>= (getvar "maxsort") (length slist))
& b w8 C/ E. C7 F, c- U - (setq slist (acad_strlsort slist)) ; alphabetize style list
3 s. ]* t2 x' L - (setq slist (reverse slist))) ; or reverse it to put it in DB order
, W; D2 b! G* `! y2 g+ e6 Z7 C - ) F' e: G6 A f/ [* s0 ^$ Z* Z; J
- (start_list "style"): \- q6 d8 q& b- t
- (mapcar 'add_list slist)8 ?# _! Y& t$ y
- (end_list)- L5 d. ?5 p( G8 E
- (setq tstyle (cdr (assoc 7 elist))), P: d; q& I5 a% I% F
- (setq style-idx (getindex tstyle slist))
* f( S8 H+ B( Z J$ i - (set_tile "style" (itoa style-idx)); t& I4 E, S Z; X1 k' H7 A+ p
- )
; w `/ X; w7 g2 i$ v3 f - ;;
0 Z2 O/ c4 H, o) o4 W. v6 F - ;; Text and Attribute setting - upside-down, backwards5 @- E+ y2 j# A4 n" L
- ;;
3 Y! T' {9 Z8 S+ z - (defun set_tile_bk-up ()
! ?' H7 n: e% {" m- o) z8 M- f& E - (setq bk-up (cdr (assoc 71 elist)))" B) \1 m$ \. s( _
- (if (= (logand bk-up 2) 2)' E9 ^' d2 _; H* c
- (set_tile "bkwd" (itoa (setq bkwd 1)))7 b7 p1 ?; P i* v
- (set_tile "bkwd" (itoa (setq bkwd 0))): x+ _9 o. ?( ?4 x, Y7 _, x4 t
- )
' [) t. G) h3 w0 `+ v - (if (= (logand bk-up 4) 4)! z* B2 [4 i4 i
- (set_tile "upsd" (itoa (setq upsd 1)))) ?/ K9 L5 d% j! c: }
- (set_tile "upsd" (itoa (setq upsd 0)))5 `9 K0 e a' n% k! N( v! V4 @# M
- )
) a* @ K6 S1 E. T8 L - )% D) a+ n, r( t( M
- ;;1 Q+ |1 _. x5 o5 q) `, `" I8 P
- ;; Attribute setting - invisible, constant, verify, preset# _( A: J9 z2 y# S/ b/ h
- ;;
; T6 k0 q- r( w$ T# G0 s' c - (defun set_tile_icvp ()7 p7 F! S: l! N P# \4 j% _+ E
- (if (not (setq icvp (cdr (assoc 70 elist))))
. v2 A# g, r O6 d+ n - (setq icvp 0)1 a/ L0 C" f( K3 a
- )3 j, t3 |3 x% u, e+ X! w
- (if (= (logand icvp 1) 1)
. F1 X6 K: l7 D! J8 O8 ~ - (set_tile "inv" (itoa (setq inv 1)))
9 J) G+ Q" l1 V' N3 k* }5 A - (set_tile "inv" (itoa (setq inv 0))). \, _7 m0 t# H- R6 z' \9 o
- )/ V0 t" n3 w: h0 x3 L
- (if (= (logand icvp 2) 2)2 g: }" e/ e# E& \1 P4 k1 j$ `
- (set_tile "con" (itoa (setq con 1)))
8 G. E: A, n$ k1 Q1 h/ c - (set_tile "con" (itoa (setq con 0)))4 }4 |7 e$ V$ o2 f0 ?
- )
4 [" y! V' h3 ~; ]4 a* @ - (if (= (logand icvp 4) 4)
7 a; j* ]# D5 U - (set_tile "ver" (itoa (setq vfy 1)))6 I$ b4 P3 T/ |7 x F0 A" M3 [
- (set_tile "ver" (itoa (setq vfy 0)))! T3 k/ R* u5 U" f1 f
- )% |. {; B9 q+ t0 o& A U# W* w8 F
- (if (= (logand icvp 8) 8)9 R4 m) d" E' c& K
- (set_tile "pre" (itoa (setq pre 1)))* z" ^. j! ?0 [0 y) D( ` T( o
- (set_tile "pre" (itoa (setq pre 0)))2 m2 ~4 k }0 ]$ k' Z5 j
- )
' T: I) r! W' r - )3 W4 N# M' k) S: ]
- ;;
: r3 F, {) E, B; j5 q- u' Z - ;; Scale factors for block insertions
! L! T3 w. U* e0 w7 Z - ;;
+ }+ [) F4 K& n - (defun set_tile_scale (/ temp): x0 t6 z$ N/ H; c4 _! X
- (setq temp (getvar "LUNITS")); L- t& T) @' F/ B$ {
- (setvar "LUNITS" 2)7 ?! |; m+ d, _( X
- (setq xscale (cdr (assoc 41 elist)))
" N! v; q0 `2 y# Q7 G - (set_tile "xscale" (ai_rtos xscale))" d9 B# i4 f8 y/ ?! q0 E1 |
- (setq yscale (cdr (assoc 42 elist)))% f1 i! ^( u _6 |" u& K/ z
- (set_tile "yscale" (ai_rtos yscale))
* ] Q2 t' L6 H! O - (setq zscale (cdr (assoc 43 elist)))
, K) Y: f" C! h# [ - (set_tile "zscale" (ai_rtos zscale))+ q. J" D$ I8 }6 j, a( k" a# x
- (setvar "LUNITS" temp)
& A$ E: x+ K$ c& i; R - )/ z+ L+ O) J% V: ?3 x9 I
- ;;
2 Q2 L% I! U* d+ e7 I - ;; Rows and columns for block insertions& `9 Y! r c* W& g( X* @7 V, m
- ;;! K3 w( ? `, J" w; K
- (defun set_tile_rc ()% Q' |8 Z% t7 w* x
- (setq columns (cdr (assoc 70 elist)))% |/ O0 r6 @4 R! c9 s
- (set_tile "columns" (itoa columns ))
& j, y$ }" [. X7 M& l+ H8 w. B' J - (setq rows (cdr (assoc 71 elist)))
1 [9 I% Z$ ?4 I4 T- [ - (set_tile "rows" (itoa rows))
3 X) O+ {+ x3 [3 L9 G j - (setq col-sp (cdr (assoc 44 elist)))/ O5 e0 s# R3 e( t7 m' e
- (set_tile "col_sp" (ai_rtos col-sp))$ }% ]% K* M& ^) x" d9 J
- (setq row-sp (cdr (assoc 45 elist))): J* S. Z( n: n2 B. L# g$ @" @
- (set_tile "row_sp" (ai_rtos row-sp))# t1 Z- Q" F" j& C1 e0 K2 e: {
- (if (/= hasclip T)
0 W8 z& c) ~7 o' d! ^% s9 m - (mode_tile "xcliponoff" 1)/ I4 l& u2 U! O: x) H' N
- (set_tile "xcliponoff" (itoa xcliponoff))+ p" j4 w- R% {' ?( m5 h, }. [' d
- )" Z5 ~$ l: S m/ T
- )
) A+ N0 g/ O! {7 j7 q - ;;/ f# e I7 f1 m, r3 I5 p" d; y/ a
- ;; Invisible edges for 3DFACE
+ T, `$ C8 V$ ~% m2 \) Z7 a - ;;
2 q/ ], q5 |* } - (defun set_tile_edges ()
O9 y( u- \5 ?& F% |& } - (setq f-vis (cdr (assoc 70 elist)))
8 q m; ^9 {9 o9 o! L3 q( f& N - (if (= (logand f-vis 1) 1)
8 V% o7 U" M1 K/ v' ~2 q/ k - (set_tile "edge_1" (setq edge1 "0"))
% c( ?4 H: B4 S0 R, F2 K - (set_tile "edge_1" (setq edge1 "1")); D) m1 r% p/ L2 x! A, Q4 z2 v
- )
! O9 P$ {8 `( j: N - (if (= (logand f-vis 2) 2)
% H3 n; x: ~2 X, Q7 s3 Z - (set_tile "edge_2" (setq edge2 "0"))# _' L' g% M, d, D% g+ q$ B
- (set_tile "edge_2" (setq edge2 "1"))% M5 J; d c. ^
- )
! I3 d" U7 A) Z$ A( \+ Y% c - (if (= (logand f-vis 4) 4)
2 c \( k7 G' T% ~/ \- h - (set_tile "edge_3" (setq edge3 "0"))
G$ u* `- I% p: Y5 p - (set_tile "edge_3" (setq edge3 "1"))
7 R6 q* M: \* h0 A: }: L/ Q - )6 G C/ X: h4 y! K
- (if (= (logand f-vis 8) 8)
6 ~% p3 ^) @- Z/ V9 U0 m - (set_tile "edge_4" (setq edge4 "0"))! @, s U" ~8 q
- (set_tile "edge_4" (setq edge4 "1"))
) m3 W- D9 M# Q' Z; C" r a% @ - )" J# M( H8 a( h* ?/ G; [/ U, n; O
- )
0 V! r/ O1 Q' W7 z& ~+ a, Z; c' N - ;;
" @6 F# T1 l6 s - ;; XYZ Point values for polyline vertex
! i4 O( F3 d) u - ;;
" \1 V0 w' e( ]6 P - (defun set_tile_vpt (ptype)
+ ^, ^/ ?1 q$ L, @1 S9 y - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
# @( t9 M( a6 f' l- w - (progn7 ~( g0 ^5 l6 D& c
- ;; ctr is 1 based, vertices are zero based.
T2 E/ s( l, r0 y* N/ n* G o - (setq vpt (cdr (getLwVert (- ctr 1))))9 I6 R4 \! Z! m: r" Y- Z
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
. q* V6 D7 {# o* u1 N - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
* w; T1 a: @& }, _6 u9 |0 u - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))% e; Q0 h+ r& V+ p1 K) l2 C
- ): [. R* X4 L4 p9 S6 Z7 ]
- (progn
: X/ T7 n# W% k: L - (if (= ptype 0) Q) Z& |( q$ ]( ]' N
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
: W# Z* q9 r6 r( Z! ^ - (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))7 ^0 u7 H6 g; F. }
- )
9 q9 H g* O8 Y7 [
0 f! U L r& w H, W9 J" Z- (set_tile "xtext" (rtos (setq x1 (car vpt))))
0 f$ T" {8 U% B6 b* K; p - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))7 F+ \# J/ P4 f: S0 z- v
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
/ H3 T6 P5 e" ]: i4 b$ Y - ), \9 j7 q7 Z( t% G* L3 S( F
- )
: I: y& R1 T" h, P0 r - 6 Z" V: m# i3 f% d# N9 u' k
- )% m& u) J5 G, Z. S H) D5 r& ~
- ;; This is the equivalent to doing an entnext on the heavy weight
+ }8 a, ~7 |! |! ^ - ;; polylines. The hard coded '4' below allow stepping over the0 c. `' H( }' t, }# [* J
- ;; 40 41 and 42 group code information. The while loop finds the
8 `# h' |: K8 _9 f - ;; first vertex which will be used as the starting assoc in the7 U9 j) y. a3 I
- ;; call to nth.
( G6 {+ a* Z7 z - ;;
- j e x7 }" X" Q8 M - (defun getLwVert (tmpctr / count tmp)
! h8 l3 S0 u6 V; M; I, Y7 l2 k% P - (setq count 0)
. q1 @, M. p5 u - (while (/= (car (nth count vlist)) 10)" p" o9 [; i. n# s& b! r: h2 V
- (setq count (+ count 1))$ f# u: |; l( |& N
- )
8 o/ z# C* s$ e0 z - ;; If the counter reaches the number of vertices,
* K% t2 X( \2 \ - ;; reset ctr and tmpctr to zero again.
W% r8 M* m( ]. W; l' \# o - (if (= tmpctr (cdr (assoc 90 vlist)))
$ A: q) L: h+ z" f - (progn) q* P; _' d. L' |
- (setq ctr 0)+ ]+ _; a( s/ R1 ^+ L8 G
- (setq tmpctr 0)
1 n8 q+ K& g- ^5 R, g - )
1 i3 @% R6 [3 l - )1 C; R. O% _% l x7 d
- (setq tmp (nth (+ count (* tmpctr 4)) vlist))
2 h0 x2 ` G) P' [% F& v! _ - (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
' ?. u3 ]! ^$ o: \8 D* A - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
+ b* Q: V' K2 L* K) d8 M9 I: z# b - (setq tmp (cons 10 pt1)), {# ?. q6 ?1 z& ~* @( m7 {. x6 Z
- (setq tmp tmp)
* r, Z0 m' \" y I0 R$ X4 b$ v8 ` - )9 s9 b& `: `! }3 T
- ;;5 b# t8 @# }" o' F
- ;; Set tiles for Spline properties. If the spline is rational then we
" P+ f! A" m; ?. |" }- ~ - ;; need to display the weight values of the control points, so set
& W9 U+ R1 F9 P - ;; flag to 1.
8 j; c/ \! \3 r! g4 J7 ~8 M7 }, @/ h - ;; 1 = rational spline4 f: v. e# Y4 w( I# l
- ;; 0 = non-rational spline
% b9 [* W7 q" w B" y- u$ r* ^3 { - ;;
# g8 }0 E6 b& c/ p' ]4 |& r1 c4 A - (defun set_tile_spline_props ()
5 W/ Q/ T) i& W$ X; _2 y - (setq rational_spl_flag 0) ;; initialize rational spline flag
& k# v- D) D9 N& G - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
1 G# J, _8 @% {/ L) Z - (setq bit70 (cdr (assoc 70 elist)))
0 d" H: z) M4 K- u; z/ v - (if (= (logand bit70 1) 1)4 b/ H# `% z& d
- (set_tile "SpProp4" "Closed")3 S# O+ F! \" d9 ~0 J
- (set_tile "SpProp4" " ")7 ^ p; Z) R! U
- )( t( B! @( g4 J Q
- (if (= (logand bit70 2) 2)
6 l! ?8 T1 k* c* p# T; t$ \* { - (set_tile "SpProp3" "Periodic")' {) M3 T0 @$ d* @
- (set_tile "SpProp3" "Non-Periodic")
4 d1 P# k) ^8 A+ B9 m0 p$ c U5 p$ \. t - )
% }1 J) J. R/ v- y! `- y; A - (if (= (logand bit70 4) 4)
; [0 ^) H4 K7 l8 k" M2 O9 Q - (progn, g& b- o# d( e) C
- (set_tile "SpProp2" "Rational")' h: H. p: q# P1 c
- (setq rational_spl_flag 1) ;; this is a rational spline
& b8 L1 l! M7 \0 q; t0 m6 U - )% Z- i% X; S/ y5 i+ @2 I
- (set_tile "SpProp2" "Non-Rational")
% x5 m5 H; f9 e - )
6 ~$ B) q) x4 Q0 d9 {# R3 ^/ C; v/ M - (if (= (logand bit70 8) 8)4 W- q d0 s9 j# m- S
- (set_tile "SpProp1" "Planar")
" Z( Y% d( g& _: Y& a - (set_tile "SpProp1" "Non-Planar")
6 k$ F$ Y) Z$ r - )
* c1 m: |) Y' w ^8 e! | - (if (= (logand bit70 16) 16)
& W/ h5 {% ]9 v) D) @ - (set_tile "SpProp5" "Linear")
0 F+ Z( B% d7 s: F - (set_tile "SpProp5" " ")+ b8 G* ?. f$ g# u9 ^, \
- )1 {0 Z6 K, v9 i" R5 i) c. Q. O/ n8 x
- )6 n/ }) P( ^8 Q0 d; y! _5 |
- ;;% ^8 `6 B, v" n( {
- ;; XYZ Point values for spline points& y) F% D) X, c. G. i# i& y+ D( o
- ;; Need to account for WCS/UCS
% V3 D* }: S) X6 X' t - ;;
7 |0 R0 ?1 B5 U - (defun set_tile_cntl_pt ()# w; H: |$ U( p' [) E2 N9 B+ Y: o
- (setq cntl-pt (cdr (assoc 10 elist)))
# Q3 T( C* Y2 @! h% O5 B4 a' Z# w - (set_tile "xtext" (rtos (setq x1 (car cntl-pt)))), R; j% t$ ^- b' F1 f
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt)))) c) Q# r6 [. \ ~1 ]& t, l
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))$ t) ]5 \/ r4 c" ~' o" r
- (if (= rational_spl_flag 1) ;; if rational spline$ a- X/ c& \( [* E- O
- (progn ;; show weight0 z: l5 N3 w1 I( `$ L0 a
- (setq weight (cdr (assoc 41 elist))). ]' e& M% L0 ?4 h
- (set_tile "weight" (rtos weight))
, |' t4 D- A1 C; t: M - ) ;; else
- W7 e+ P6 ^) ~2 J' Y - (mode_tile "weight_text" 1) ;; disable weight field
# F+ ~. n8 N' w - )
, k0 C9 G9 T0 P2 g M - )! R5 T% S+ E# A
- ;;
% v( R! { B v/ T5 d+ a$ F - ;; XYZ Point values for spline points
8 t. U8 G6 |( J, ~& J0 c n7 r - ;; Need to account for WCS/UCS
5 {% x2 g9 N# Q4 N8 w9 T# B' q5 X - ;;
% l0 e$ C# l# M* l - (defun set_tile_data_pt ()$ k i! q7 E0 Q( x+ j
- (if (not (assoc 11 elist))
$ w* b) z {! y9 b0 q( { c Z; i& I - (mode_tile "data_pts" 1)# [- r( t4 N5 H% Y/ |* I) i' b
- (progn
5 _* e, l) M* q. Y; ]6 v0 c, ^/ V - (setq data-pt (cdr (assoc 11 elist))) M+ b; n+ t3 Y, }% v& \
- ;; display points with current precision.
6 m! P- t, L6 _2 O5 q - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
% s1 T6 B9 z8 M% i. ?4 C - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))0 N/ \7 Y1 ~' _" o3 I3 g+ I
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
1 d2 k2 U. N1 Z - )
( l. N. @/ U0 D+ R7 N! N - )
' G% b, H. O3 n" l* ]8 i% J - )
( _" j6 G1 j. n: W( H0 t - ;;
8 R2 ~* {* \' N) ~* [# k" B4 p - ;; Fit curve, fit spline, or smooth spline surface setting( H3 O; `5 C$ R
- ;;
) |5 g2 a2 H1 Q8 i( b - (defun set_tile_fitsmooth ()3 M3 w% }( x6 ]" F9 [1 I
- (cond
7 n3 U/ [- [. M0 V - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
7 Q8 l/ R" d9 U* X( B# F5 t - (set_tile "none" "1")
1 j$ \! q0 z) n9 N# u - )8 e; a7 p1 K4 r% H0 U" L
- ((= (logand bit70 4) 4)
; n& @( O# g; U; z - (cond
0 e9 z K+ m8 E4 X! @9 w - ((= bit75 0)
9 j- k' R0 j( B4 H - (set_tile "none" "1")
6 j: D' M( A2 S2 f - (setq spltype 0)) z/ y; V& c7 i. ^, R# B
- )
+ V9 l8 |+ Z6 X6 f7 K" W - ((= bit75 5)
[# g0 a9 i6 }' T8 ~- V - (set_tile "quad" "1")6 N6 w; e* F4 I1 O
- (setq spltype 5)% A) U% h6 y8 O3 f3 j% M8 w' a) F- g
- )( u# U0 C0 |; c7 R4 C! K
- ((= bit75 6). w3 m+ S" {) j: _( f
- (set_tile "cubic" "1")% T0 ?5 x' ^7 s
- (setq spltype 6)/ x y" M6 p/ L6 Q% n
- )# O% z" y5 b8 H
- ((= bit75 8)
, v1 d$ G. N* | h4 Y$ o- C - (set_tile "bezier" "1")
, ]8 B6 ~# w# p2 o4 B) N - (setq spltype 8)
7 y( \! c3 T! A ^# S# R - )
# p6 ]) r5 B: O# s! @( O - )) e0 d4 T+ G3 U$ {5 [
- )
& B* O! |& m6 q9 @. G! {3 u - ((= (logand bit70 2) 2)7 f! @7 S. ^9 L' M
- (set_tile "fit" "1")
4 ~( b; G/ d$ p1 C - (setq spltype 1)2 ^" m( s4 C, u; J! S T8 O
- )
0 n' {4 a8 _ g% Y' y# A3 ^ - (T (set_tile "none" "1"))0 V' U% X+ G! j V" N l
- )( l* a/ l) u& e
- ); d( \/ f+ l. J. T
- ;;7 Q7 W2 j$ s2 D6 E/ h; x8 [; e
- ;; Closed or Open mesh and polyline setting4 ~6 ?- |! x6 z) @; R
- ;;$ C5 K: `0 i8 j5 n9 _
- (defun set_tile_closed ()& v2 a/ g/ W" ~
- (if (= pltype "3D mesh")6 M4 n+ L; O2 m) d# m
- (progn
4 [! d- s8 C( R. ?, x - (if (= (logand bit70 32) 32)
) m. B. m+ m5 B$ | - (set_tile "closedn" (setq closedn "1"))
: X! M# D% E' k, v( n C+ ]0 y8 G - (set_tile "closedn" (setq closedn "0"))
' V0 R4 h! N! \# U - )1 ?" q! b) u$ Y% z6 @$ ]
- (if (= (logand bit70 1) 1)
e; s0 O0 ~3 Y3 n- G4 b" w, E - (set_tile "closedm" (setq closed "1"))* t+ s( `+ u2 ]0 n5 x" K
- (set_tile "closedm" (setq closed "0"))
1 K0 G8 o- H# u# t0 m - )
: i6 j" P6 e3 W8 Q6 I+ {% U) B - (setq old-closedm closedm old-closedn closedn)
: |" z) \) E+ ^ - )
$ T6 p$ T/ @# {7 N* N - )
+ ^( B; b% \) \" t ?( p2 K M - (if (or (= pltype "2D polyline")$ t y; ^, B9 c: M- y
- (= pltype "3D polyline")
1 u5 @% C, x, m9 w+ J y - )# t5 h$ J, O3 l9 u
- (progn* Z$ y! K; E& O
- (if (= (logand bit70 1) 1)
/ n- T% t& e/ H$ o- C7 x$ V1 s - (set_tile "closed" (setq closed "1"))9 H8 n1 C+ `$ {) p& ?6 C/ X
- (set_tile "closed" (setq closed "0"))" A7 U( z; O0 e& X0 v# V
- )
. d: ?2 _! _8 K3 D$ b! J& \. p6 \6 Y - (setq old-closed closed)$ \$ e$ k0 y6 o- }4 O
- )
- b# E9 G5 Q+ U; l( i$ W# h; m - )
6 K& F/ z) n: G - )
) T1 M% C @3 {0 U$ e8 B9 d - ;; Set common action tiles, Z# i( w- B2 C% V e* d
- ;;) g/ J" F* a5 g9 e% ~2 X' _: r
- ;; Defines action to be taken when pressing various widgets. It is called
+ ~' f8 y% Q! ^ e1 k- x8 } - ;; for every object dialogue. Not all widgets exist for each object dialogue,: a$ h8 r& [, @. c5 b
- ;; but defining an action for a non-existent widget does no harm.
1 G1 o: z/ v7 K1 b) e8 A {$ ^2 A4 G - (defun set_action_tiles ()4 x8 G5 b0 q' t' s0 N y2 A
- (action_tile "cancel" "(dismiss_dialog 0)")
, T+ v c) i9 y9 D r - (action_tile "accept" "(dismiss_dialog 1)")
. ]' m- `) N: O4 c, i - (action_tile "help" "(help \"\" help_entry)")
( ?7 l8 A/ y! f" {2 v - (action_tile "b_color" "(getcolor)")% h0 Z3 e* t/ m1 R
- (action_tile "show_image" "(getcolor)")2 k# `1 K* Q5 E$ L6 k
- (action_tile "b_name" "(setq elayer (getlayer))"); i8 g% n' D- O
- (action_tile "b_line" "(setq eltype (getltype))"): D* R2 N4 x7 c3 O% L9 v
- (action_tile "eb_thickness" "(getthickness $value)")
' }5 M% p! V; ^ - (action_tile "eb_ltscale" "(getltscale $value)")
4 N6 ^% @. y8 l2 t - % g. @* {' x- H; J" ?1 N0 m5 f0 `
- (action_tile "pick_1" "(dismiss_dialog 3)")
7 P" R) }7 `- f/ l' E, n - (action_tile "pick_2" "(dismiss_dialog 4)")
- f0 @5 \5 D1 x9 ^ - (action_tile "pick_3" "(dismiss_dialog 5)")
9 _# g) b4 m" i1 Y" e) d0 \4 d9 | - (action_tile "pick_4" "(dismiss_dialog 6)")
$ V- P* o/ S+ A+ N2 O. ] - (action_tile "x1_pt" "(ver_x1 $value)")8 n' r# w M) x: U8 L
- (action_tile "y1_pt" "(ver_y1 $value)")
0 k" ]2 n: N0 ]; E$ X; P" F - (action_tile "z1_pt" "(ver_z1 $value)")$ U- s+ _, }) Q. S( a* T. d9 x
- (action_tile "x2_pt" "(ver_x2 $value)")
6 m& ]: D4 l: G! v3 p - (action_tile "y2_pt" "(ver_y2 $value)")
; \, }& c: L' S - (action_tile "z2_pt" "(ver_z2 $value)")
- ]- T, L# F6 I& c3 J! X) U - (action_tile "x3_pt" "(ver_x3 $value)") m" o+ ~- E- [' l. }
- (action_tile "y3_pt" "(ver_y3 $value)")
- q$ l8 i' n5 K1 a - (action_tile "z3_pt" "(ver_z3 $value)")
8 `0 f& I5 f$ G. l6 z2 j - (action_tile "x4_pt" "(ver_x4 $value)")
8 y% U/ f; A& U( u - (action_tile "y4_pt" "(ver_y4 $value)")' V# R' L3 g8 }* j0 A8 x7 c4 U0 o
- (action_tile "z4_pt" "(ver_4 $value)")
, X3 D; s4 J6 W6 y' S; W7 p7 D - `: R V9 F& n7 q
- ;; Action tiles for Xline & Ray0 ?( k# e% K' e: V
- (action_tile "xline_x1" "(ver_xline_x1 $value)"), W+ _7 n" d2 H
- (action_tile "xline_y1" "(ver_xline_y1 $value)")
/ I! s& P0 ~/ C) e - (action_tile "xline_z1" "(ver_xline_z1 $value)")' x2 U& `: O: t# O* i$ d, m
- (action_tile "xline_x2" "(ver_xline_x2 $value)")
8 e: L- g4 y1 B; S; x( d. u ` - (action_tile "xline_y2" "(ver_xline_y2 $value)")
# U9 L: S, g [6 m: J - (action_tile "xline_z2" "(ver_xline_z2 $value)")$ |/ n. `3 l W- \
- 0 ]0 ]$ D2 M% F0 K, U
- (action_tile "edge_1" "(setq edge1 $value)")
2 V s4 ], M2 r0 J; ` i4 p# l - (action_tile "edge_2" "(setq edge2 $value)")5 i9 Y# G" i- c: P
- (action_tile "edge_3" "(setq edge3 $value)")
7 \; t# S3 @) _ t, [/ ? - (action_tile "edge_4" "(setq edge4 $value)")
* X1 I7 J$ b8 J) R - , H S# G6 p1 d: Z4 U" P$ s
- (action_tile "radius" "(ver_rad $value)")8 D( K: \7 \' E4 i5 V" G
- (action_tile "st_ang" "(ver_ang1 $value)")
! ?8 ^7 U' ]* X; B2 b7 @ - (action_tile "end_ang" "(ver_ang2 $value)")* j) R, a$ [6 W9 u8 @1 t: t
- (action_tile "end_eang" "(ver_eang $value)")0 t/ ?& x" O; t3 M
- (action_tile "minrad" "(ver_minrad $value)")4 p& a3 D' M4 V+ q0 B8 E
- (action_tile "majrad" "(ver_majrad $value)")
3 i3 z, h% r0 W" D - % z! m! M6 U8 c0 z/ s0 O9 L
- (action_tile "xscale" "(ver_xscl $value)")4 F( \* h* `! s4 K# v# x: |3 t
- (action_tile "yscale" "(ver_yscl $value)")5 p1 W' f* m" L" V
- (action_tile "zscale" "(ver_zscl $value)")
k% n& ]6 S! N1 v; j( [* u8 } - (action_tile "rot" "(ver_rot $value)")
$ A, d) i! H( Z/ f - (action_tile "columns" "(ver_col $value)")- r( q9 j3 }% v4 L' E B& P2 |; y
- (action_tile "rows" "(ver_row $value)")
R! Q" Y4 i3 S6 R% f0 i, f/ U' L$ e9 ^ - (action_tile "col_sp" "(ver_colsp $value)")
& R! A- X1 g' k- ?, e5 z - (action_tile "row_sp" "(ver_rowsp $value)"). M7 ^! i0 \' C) T( t
/ Q: h2 F+ c) C- (action_tile "hght" "(ver_hght $value)")
% }0 X' t8 p7 ^$ j7 z4 q7 Z - (action_tile "wid" "(ver_wid $value)")/ ]% Y, m) [7 p/ ?+ V6 v( g
- (action_tile "obl" "(ver_obl $value)")1 K% ]$ ?/ r0 n% K( x
- (action_tile "style" "(style_act $value)")' ]. k. J. a0 n1 J& d) B3 ~
- 4 b' p4 C/ s; K6 v
- (action_tile "t_string" "(ddgettext)")
+ j# g" J# Q, Z+ U& S6 k) O - (action_tile "tag" "(ver_tag)")( i, p" h9 ]: W+ w4 b
- (action_tile "prompt" "(ddgetprompt)")7 q4 f, E( n8 {0 n2 `4 I- x5 E
- (action_tile "bkwd" "(setq bkwd (atoi $value))")
( S! F$ f: i% k7 @ - (action_tile "upsd" "(setq upsd (atoi $value))")4 o# u$ V5 A6 c
- (action_tile "inv" "(setq inv (atoi $value))")
# d' F' v( B* N# s( M: v - (action_tile "con" "(setq con (atoi $value))")
1 d& ^5 m; C8 E - (action_tile "ver" "(setq vfy (atoi $value))")
8 [( C0 J5 X- X' P0 u - (action_tile "pre" "(setq pre (atoi $value))")
( } j, v2 f5 b+ P# g# C - (action_tile "popup_just" "(jlist_act $value)")$ {( Z8 B0 r+ D/ e: _5 U5 T; \2 s
$ Z1 c6 ` V3 D& @- (action_tile "closed" "(setq closed $value)"), C5 T" ?: l* E$ e! d- G
- (action_tile "ltgen" "(setq ltgen $value)")% P* b) V! L( u* |: I: X! P
- (action_tile "closedm" "(setq closedm $value)")
, X/ c: ^$ q$ W - (action_tile "closedn" "(setq closedn $value)")
; S5 b0 X7 G# p H - (action_tile "next_v" "(next_vertex)")3 B8 E" {+ ~/ i" v) u
- (action_tile "xcliponoff" "(setq xcliponoff $value)")& t; f h0 p3 s2 |' P
' s7 A& J. } p# X9 l( g1 b/ a& F- (action_tile "next_cntlpt" "(next_cntl_pt)")9 J, y7 s% K( Z6 G
- (action_tile "next_datapt" "(next_data_pt)")5 C: x8 L- S: x& g9 `
- 8 O* U* T; A; F. U( X9 r4 L. c) o' D
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
! J& Y. e! p' A% }- h9 l - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
i* s8 Y0 U; h: E$ F! B3 h, Q - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
2 G$ v1 j1 V/ y1 c! B$ L - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
& N! H/ r7 Q6 ? - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")/ G A1 g* V6 J+ X0 |- a
- - J6 Z/ }4 j8 n( C& d
- (action_tile "u" "(ver_u $value)")
I. J0 M* _% r0 D - (action_tile "v" "(ver_v $value)")( e" p7 }3 D5 q, P! l; o R
- )# M4 J, v& f `6 m' g
- ' h0 E6 R, Z7 [
- (defun ddgettext()% b1 Y: `! k: E+ e
- (setq text (get_tile "t_string"))
# @. b% G1 g" X7 ~. @( S& _ - )
% O) Z9 Z$ J# P, M3 R( b
& G2 ]8 g! @7 H9 t; N- (defun ddgetprompt()8 m$ Y2 @$ C+ v+ Y+ J
- (setq atprompt (get_tile "prompt"))
8 a. Q0 d' w) t3 l - )4 N$ L; G; f: H* O: q
- ( Y, R3 K- z, H- b
- ;; As OW doesn't support disabling of individual radio buttons within
& C$ }+ |% e' ^% M g2 k9 y - ;; clusters, a check must be performed as to the legitimacy of the
7 Z4 [' u4 q5 X) f# I( h' o1 r' d - ;; button pushed and reset if necessary.
- s4 S/ K$ m* f# B0 y - (defun radio_gaga (pushed)5 w9 V4 q' ]. C
- (cond4 A3 E j& S" Q7 i+ D
- ((and (= pltype "3D polyline"). t) q% l* b0 x; w4 y) O/ J; r2 }
- (or (= pushed "fit")
. {6 B8 q* V `& f; |4 l% ^ - (= pushed "bezier")5 C2 M. [* w( K# H) j
- )
5 s C5 p1 i- J6 q6 X" X - )
" p8 R( I2 K- n1 `& l1 { M! w - (set_tile "none" "1")
$ h& D6 w+ p. e. I0 S - nil; L: T7 X* `2 `. [; [% @# K
- )
, s8 W6 \6 J: Y% P - ((and (= pltype "3D mesh")
8 G+ @9 p0 V, z0 P8 I; G, ^ - (= "fit" pushed)) ]3 {. C: x) x# X& r, [4 v; n5 M
- )
" T. O4 e1 r* {) S; w - (set_tile "none" "1")
2 s0 M. @! o) M* k: C% A. ? - nil
! H# @8 i4 [% h - )
( q6 \ K! i' ~ - ((= pltype "Polyface mesh")/ k0 D1 f6 H" Z0 a+ l
- (set_tile "none" "1")
" ^5 A. f c+ B& {$ r - nil, i% W+ W) \4 B2 d
- )
. [. x2 O, k5 s0 \3 J f - ((and (= pltype "2D polyline")
2 ~1 L7 k- [( U! ^ - (= "bezier" pushed)! P8 }/ A4 y4 L) D- g+ G0 m
- ); f* i, z1 f7 h3 U: w0 v, z5 k2 u
- (set_tile "none" "1")
: p7 r7 l: b# ]8 c - nil
6 N; u- ~5 n7 v( [% { - )
. f, o9 i, Q6 E* l - (T)% W8 B& }0 \# X3 P- O
- ); H* |8 ^/ j5 E0 E' f- |, p
- ), @' x7 ^6 Q* x3 l& I8 |3 \
- ;;% d( K0 l* M1 {/ z* X. r
- (defun set_uv (type_n)" m$ N5 }' y, }$ z
- (setq spltype type_n)
8 o- | B) g% B8 H6 Y4 j& Q - (if (= pltype "3D mesh")
8 w1 D4 K5 \5 F6 s, v" D" k - (if (= spltype 0)6 Y* F; _! W/ X: _- [9 s
- (progn* \7 ^; ^5 G' U1 z/ I, [
- (set_tile "u" (itoa (setq u 0)))0 K. C, Y) g0 o7 \. q; B; Q2 ^3 `
- (set_tile "v" (itoa (setq v 0)))/ z: f2 @+ @: G2 C7 N
- )9 k9 D8 o% I& C+ c2 V1 f
- (progn
# K: g2 m! _3 M9 C. e6 H% L" B/ _ - (if (= u 0)
0 P: D9 Z$ A0 C6 m - (set_tile "u" (itoa (setq u (getvar "surfu"))))
" h( ?8 q% F, r! P9 G4 O3 B) i* O - )8 b3 d' u1 e8 H; @
- (if (= v 0)
6 O* ~0 X' n: D, |$ y5 j - (set_tile "v" (itoa (setq v (getvar "surfv"))))5 x% m! P. f6 l
- )
. K0 g. o* t5 O - )7 c$ F) M+ r! C! v# ]4 C
- )
, k$ L% c; W" n. t3 i( b8 j - )! z1 B5 S: K( q: x" p1 D: l: x5 U
- )
! o; G; e+ A/ {8 ` - % _& x% f! Q6 w# T9 x8 L
- & L5 J9 d3 f2 I# M+ V7 t
- ;;- F8 l9 ~) P. Y* M8 t
- ;; Verification functions
4 ^7 V( V7 W" K - ;;
, k) X" I# u Z$ z! i1 J7 D3 g - ;; Verify distance function. This takes a new X, Y, or Z coordinate or
' L3 u0 u4 g) G: e$ s5 M - ;; distance value, the tile name, and the previous value as arguments.
; u" D ^4 o x+ Y; B2 ?5 \ - ;; If the distance is valid, it returns the distance and resets the tile.- z- ^5 e! ^! k. \6 h! g
- ;; Otherwise, it returns the previous value, sets the error tile and keeps
( u2 h- p1 ]( [3 r4 T$ m% k - ;; focus on the tile. Shifting focus to the tile with invalid value can9 r" p. X4 G( R) f
- ;; trigger a callback from another tile whose value is valid. In order
4 G( d( v! m2 S2 Y3 B+ [4 G1 d - ;; to keep the error message from being cleared by this secondary callback,1 l& S! P6 J$ y
- ;; the variable errchk is set and checked. The last-tile variable is set& I9 M& p5 Z! c
- ;; and checked to ensure the error message is properly cleared when the
6 N* @8 s. i4 X/ [" |" W - ;; user corrects the value and hits return.: x5 G+ [+ z x
- ;;& W f; k& h& R O- ]8 [
- (defun verify_d (tile value old-value / coord valid errmsg)
- _* u \* e$ C2 t; L; \( s - (setq valid nil errmsg "Invalid input value."); D; g5 f) u5 I% y8 Z
- (if (setq coord (distof value))/ j$ A0 Z+ D g) e6 S, i
- (progn5 l3 u X7 Z# {, Z9 ~4 `+ x
- (cond
' R9 y0 N# N) o$ P+ ^* L8 F4 ? - ((or (= tile "radius")
+ @" \# x" q! Y5 E @, d - (= tile "hght")
# n4 l# s3 G1 I7 B - (= tile "wid")) G/ A$ l# m" ~+ Y" F
- (= tile "majrad")
; F1 a h' u- }1 h - (= tile "minrad")
3 T, z- n# X/ v - (= tile "eb_ltscale")- `, ^( N: B; H9 e8 D2 ~- @
- ) I( y3 r/ i& c# H
- (if (> coord 0)8 k+ b/ F2 c0 G4 i4 L. [/ \
- (setq valid T)
+ W0 l. z8 K; m - (setq errmsg "Value must be positive and nonzero.")
3 x8 d& B- _4 G8 l8 F$ {4 I* F. J - )
; L; Q; o o3 [ - )
H. J5 I7 T% g3 t9 n) w/ V( w - ((or (= tile "xscale")' _: j; \* k. Q* H Z% m) U- n3 Y
- (= tile "yscale")( p6 c, L0 I1 o. X
- (= tile "zscale")+ ~! L( F* L+ G$ [
- )
: @- ^* N h% S6 I8 j* t - (if (/= coord 0)
% V# L6 q+ c" B$ J - (setq valid T)
! U) O! S! x/ f# n( | - (setq errmsg "Value must be nonzero.")
" u+ f1 q- C2 o# M - )& {0 G" }& d0 Z, a
- )9 d7 T9 L# \+ e$ r( Z$ E7 j
- (T (setq valid T))+ X8 z$ r8 ^1 L( ~. c& z
- )5 k! b6 _" w' d0 ]# A& U
- )" S+ o: Z2 Q7 V; T3 F
- (setq valid nil)
% h3 X: W1 t( Q# c - )8 x4 ^7 w5 ^( l. G7 F4 C5 G
- (if valid
! e2 o3 a7 H1 I, d5 v8 v - (progn
6 W. ]. C: L# Q - (if (or (= errchk 0) (= tile last-tile))+ I% q" d% {0 m( e$ b, A* Q8 e
- (set_tile "error" "")
. f+ h, B$ K2 l* [- w - ), {8 z# i' m; N, T3 [9 J4 F: d
- (set_tile tile (ai_rtos coord))
; K0 q6 a$ I, p) ` - (setq errchk 0)6 s% _2 B, t! r0 J% ]
- (setq last-tile tile)8 l$ J" M) o% _8 b
- coord$ ` c; K5 j; u D" A4 e4 H* J
- )
/ S) a9 T! f$ L4 n7 N& X - (progn1 k0 b& _7 X8 p n0 F) X$ U' u
- (mode_tile tile 2) ; Move focus to offending field
* j( y0 L2 V( C0 p, j3 A5 {' b+ p - (mode_tile tile 3) ; Select offending text1 v4 U. ~8 v$ V# x# ~. M
- (set_tile "error" errmsg)- s; p8 O; ?0 y# S; T" |6 b5 b
- (setq errchk 1)
, a4 o$ A: ]) g+ u6 o - (setq last-tile tile); A( B' S0 ~6 c* p2 S3 w7 Q' L8 [
- old-value
1 o3 s" k4 U5 U - )
2 L* a7 z( }4 J/ l - )
6 j5 y! t4 E* @: n$ h - )
2 J! G( x4 m Z - ;; Function for Xline coord edit box checking.) p+ T* `* I- K$ N. X
- (defun verify_xline (tile value old-value / coord valid errmsg)$ e3 h5 G, @6 f3 @) i% Q
- (setq valid nil errmsg "Invalid input value."), x- c! f, d" ^ t" Q* g
- (if (setq coord (distof value))
. _& ?# y9 j2 S! `/ ~ - (setq valid T)
! j- l$ y2 s* \& @; C6 Q* ` - (setq valid nil)
2 D/ K$ d/ O5 f/ I - )
$ @9 n# ~' s" U$ }9 `+ C - (if (and coord( s$ m8 i9 S, V" {: { z6 N
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
# `: Q* `# }7 o- {: W8 ]7 U4 {8 r( t - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
8 h6 n; F2 L7 v - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
/ _3 B. X8 F# y" { - )) w' y& ~2 j3 D! p3 |3 ?% D
- ). M) Z" M0 A9 N" c3 y7 F" o
- (progn
C# K! X: P! f7 | m; v2 l - (setq errmsg' v f5 S/ E6 N" N
- "The Root point and the Second point cannot be equal.")
- @( v; w- u2 q5 I - (setq valid nil): b3 `2 {9 P! x7 s, y2 y5 S
- )
* j+ k! x: k9 Y, _ - )+ r3 U/ e: J: U I
- (if valid. n- U9 l0 }* u e
- (progn! f' b! z F* L7 I& T: e
- (if (or (= errchk 0) (= tile last-tile))
3 Q( Z8 P8 t8 Z2 Y+ n - (set_tile "error" "")
- U8 N0 T+ m' D: L - )
' y( R' V7 T p8 ~! |# M3 u - (set_tile tile (ai_rtos coord))( ~2 w% h9 R6 S$ s! {. z4 M; s
- (setq errchk 0)
j4 l" h- [$ ^* i) a5 K8 ? - (setq last-tile tile)4 p2 @0 K0 i$ D7 l
- coord
) W, [0 J- n' b9 O - )
% h, q' S2 A* x6 L - (progn, _7 b. D) k* U) T. D. N: p7 e$ n
- (mode_tile tile 2) ; Move focus to offending field* R" e4 X* {7 u7 P; E/ G3 c6 s
- (mode_tile tile 3) ; Select offending text
7 J n$ | @; A+ J' l6 D) r) ` - (set_tile "error" errmsg)
! f, P" z N. l1 j1 t - (setq errchk 1)! X4 Y, @& f) N4 m- Z0 r
- (setq last-tile tile)* {, c' |0 A# Z8 E1 }
- old-value
/ r9 K# k. U/ c. f8 f z# y" l - )% }+ H, n: B$ N5 e$ d) Q* T3 k: o
- )* M5 @2 M$ p+ O' A* M7 C( t5 F
- )0 G) _) Q7 u) b6 q5 V7 W/ _: u
- F1 V0 j" U* O
- ;;
* r" @2 C* ^6 @$ [' R/ [' V; x - ;; Verify angle function. This takes an angle and a tile name as arguments.
+ V& z) N U# a, } - ;; If the angle is valid, it returns the angle and resets the tile.& ]: z8 [7 K8 U
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
2 G8 \: Z" G0 G( z* w - ;;/ d) ^1 f9 D& V j
- (defun verify_a (tile value old-value / ang valid errmsg oblqmax)% N7 Z! `8 k5 u. [
- (setq valid nil2 h2 _, v, {* r1 v2 Q3 C' D
- errmsg "Illegal input value.". ~0 y) N- z; k; x0 d0 I
- )% z* ]. O( J/ _* `* |" Y
- (if (setq ang (angtof value))) d, ^" D7 x: Z! ~
- (cond
% H+ }- ?% F. q" F0 V - ((= tile "obl") ; Restrict obliquing angle' T% P |5 x2 h% J
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
1 j* J: a8 X0 P/ C - (if (or (<= ang oblqmax)
4 V, L) m) s9 R9 Q - (>= ang (- (* 2.0 PI) oblqmax))9 x1 }9 |. [% K( L2 Z9 q
- )
0 M [0 H7 Z- A: x' p - (setq valid T)
, G3 l$ S' t3 {: }3 S - (setq errmsg6 N5 d4 E# A; k f F3 I
- "Value must be between -85 and +85 degrees.")% o G& ]2 |' V" d' d% _$ C
- ). m/ V i1 g. M4 B5 w2 D& _( V+ I! a
- )& v1 k* \* z, z8 Y a
- (T (setq valid T)) ; Other angles not restricted& t1 ?6 D# U, M( Q- |: Q
- )
, n* E9 H0 S/ t0 K# K3 y - (setq valid nil) ; Invalid angle input
5 a! l% A3 m2 F2 G: W - )
" v9 W( L! c( c - (if valid
' M, `* M+ x; E7 [ _) r! u3 k - (progn
9 f, k7 x# r6 T/ X W1 U! o- c3 Q - (if (or (= errchk 0) (= tile last-tile))
_7 ?9 k7 a" s% \8 h+ ~5 t - (set_tile "error" "")
5 S" z# C, H+ \$ W - )
3 E; W3 [: _. R: U, J - (set_tile tile (ai_angtos ang))/ K* k! M( M _
- (setq errchk 0)
9 L. ?2 C. q9 k& Q2 k# o! I& A - (setq last-tile tile)% v9 N+ Q2 ~( {% f8 D
- ang' @7 E+ {5 R9 h& E0 a
- )# @" U; R8 ~$ }0 p, W2 q
- (progn/ o: G; _% J6 d* G- S( M, N4 _
- (mode_tile tile 2) ; Move focus to offending field; {) x4 x* f( Z3 c/ k e9 U ?
- (mode_tile tile 3) ; Select offending text7 h; k+ }, ]) M3 r: J1 H
- (setq last-tile tile)6 E& [# t+ F% x7 E4 D7 W: ^
- (setq errchk 1)
3 B7 s( L/ H3 ] - (set_tile "error" errmsg)
A1 n% X# Z. C1 s9 `2 [ - old-value
- H+ A+ T9 N3 S6 ]7 u; ~ - )
. s( Y% J0 o; G" L2 m$ t - )& J0 f% I0 A$ f1 J6 [ M5 h2 L. d
- )% D, \4 z+ X; z' x3 m' X1 F
- ;;
6 N8 {; \9 U4 D( X$ K7 [4 u - ;; Verify angle function. This takes an angle and a tile name as arguments.
( v% r6 j% V/ \5 X - ;; If the angle is valid, it returns the angle and resets the tile.; g7 V- C& T1 I- n2 }. y: M
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
5 @7 }1 \. [ z+ X7 H) ] - ;; This function is specifically for the end angle of the ellipse object. If1 \& N. M, ` \8 A9 T/ y" S
- ;; the end angle resolves to zero then we want to display it as 360.+ r+ }4 {# d9 l: b/ O
- ;;
0 {+ J/ Y; Y% d - (defun verify_ae (tile value old-value / ang tempend)- m" p+ F' R. g
- (if (setq ang (angtof value)); A* w& M4 }) e$ k
- (progn
1 N4 Q' L! {0 h: x. s, J - (if (or (= errchk 0) (= tile last-tile)). n& q. @# r7 k$ |
- (set_tile "error" "")
E" r! w* [- X9 c# u" G - )# V9 _; ?4 O# H3 h; x- \. O
- (setq tempend (ai_angtos ang))
" J( U( V9 L! y5 d3 i6 y4 A4 \$ h - (if (= tempend "0"); |) |" y7 Q8 W% D6 _) k* T# ^6 d
- (set_tile tile "360"), m/ Y) b, C8 ]1 n/ S
- (set_tile tile tempend)8 U; t5 T- L$ F4 u
- )1 r# H! z3 l2 ?5 z" z; Q; e
- (setq errchk 0)
3 z! y( Q$ P* p G* Z7 Z - (setq last-tile tile)
j+ E1 n* H3 Q* A6 D% s& G, V0 N - ang- a& w0 {) a6 i @% `
- )
5 f. h5 y- t/ F6 u" d - (progn; @: f9 ^; `, {, `' ^" b
- (mode_tile tile 2) ; Move focus to offending field! x4 x) a7 n! w, `8 k
- (mode_tile tile 3) ; Select offending text
8 j* E- O' V$ U. i( |: P; \ - (setq last-tile tile)
" X0 U& b( P: X s; K9 G Z - (setq errchk 1)0 p7 W+ z* v/ N, v' u
- (set_tile "error" "Illegal input value.")* G8 S$ d0 |, N, a6 u% ^! e
- old-value2 \/ i5 x& v" G+ P
- )
) i. H4 T" r% j( w! Y% K - )
1 w) U. r5 O) M' H v6 A - )
; v/ {& H0 o+ ~ - ;;
6 V7 k# [7 y) a( L2 O. s- d - ;; Verify integer function. This takes an integer and a tile name as9 S- X% p! ]* P( q
- ;; arguments. If the integer is valid, it returns the integer and resets the
$ e2 v/ Q7 {- U$ e3 x* i/ l - ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.4 F8 W. C! i3 [' Q* N% D
- ;;
( H9 c: Y, n& |! \, K - (defun verify_i (tile value old-value / int valid errmsg)
, ?0 M u8 m7 Z - (setq valid nil)
& V0 h& E* N% e {* n4 L i2 m - (setq errmsg "Value must be an integer.")
, N" U z+ I8 k( V7 A6 D* W- h - (setq int (atoi value))
; t5 l6 a- m0 S! A" b - (if (setq intchk (distof value))' ^5 D e v' A9 H$ m, }
- (cond
. {4 k3 o9 q p- l: R - ((or (= tile "columns") (= tile "rows")); m- b( d! @: h7 C5 K
- (if (and (= int intchk)9 c9 }# ]* H3 f* N2 |$ H1 p
- (>= int 0)
1 ^2 b$ d, k- b - (<= int 32767)
# X0 C ]( M" C - )
- @2 A9 s; X( U. |) b, \7 Q. x - (setq valid T)% q) c8 j$ r# W& e4 w5 v4 N
- (setq errmsg "Value must be an integer between 0 and 32767.")5 k- ^3 o& S: Q: q/ G2 K& H9 f. H
- )
) G6 j( K4 q% Z; v; P7 q* P3 n0 a - )9 L5 x6 g4 R% Z4 N2 C' u
- ((and (or (= tile "u") (= tile "v")))2 K7 z4 x8 N' \* K! R' F
- (if (and (= int intchk)+ D- Q0 m9 Z8 y1 T
- (>= int 0)8 @5 @, j8 r1 i( a: R- q
- (< int 201)* m4 r+ z0 @3 O+ A* u7 \
- )$ [) R- s' C: O- |4 n
- (setq valid T)
0 {$ R- C l9 H) m1 u$ c - (setq errmsg "Value must be an integer between 0 and 200.")+ J9 R0 r. a+ D* B( ?6 k0 D7 x
- )
* }3 Z! N& |4 D0 S0 ?2 u - )
! Z- U7 }! K" j - ) s7 U% j0 |4 `9 V6 U9 [: p
- )2 t7 L2 m3 z2 h6 v+ g" J" g1 T
- (if valid+ R1 V) z7 a' [
- (progn, O3 q t. [+ `# ~0 J( r$ T
- (if (or (= errchk 0) (= tile last-tile)); l& r, V* Z5 ~# K4 V8 _# H
- (set_tile "error" "")
+ s( e; V+ D4 l9 O, W - )4 C. X n/ V7 S* ?
- (set_tile tile (itoa int))
% }$ h* F- m: \0 D% y0 } - (setq errchk 0)3 i$ q* U: l' \
- (setq last-tile tile)
5 ?$ F6 S/ h% A/ R4 O2 { - int
3 T1 N- s9 r/ Q6 _6 A ~7 [ - )6 m @+ ?! z/ u+ U$ U2 H1 J
- (progn
9 ]; P' t v6 ? K: r1 C( c - (mode_tile tile 2) ; Move focus to offending field5 y7 t( q$ k% W/ @# i& t
- (mode_tile tile 3) ; Select offending text1 A' u# r& b7 w
- (set_tile "error" errmsg)
! s" k) a4 @$ f$ G2 T6 ~ - (setq errchk 1)
7 \3 R3 H3 h( J' U. A8 s1 D - (setq last-tile tile)
* c% T1 j4 D* s( J - old-value6 M) P, X7 G* [5 o8 O1 X5 s0 J
- )
6 Q: x: X! ^0 Q/ V; n" U9 ? - ): e' m$ b0 P- }* v! O6 B- V$ L2 \
- )
' n3 H5 H, C% S0 u+ Y - ;;
: W: u0 J) F3 q6 ?8 r+ ]* q: B - ;; Functions that verify tile values for integers0 K s Q) L: O9 B# x
- ;;$ b' o+ J# H6 M4 N
- (defun ver_col (value)
0 q2 F3 w; {4 ^ - (setq columns (verify_i "columns" value columns))
; x* q# U7 G3 @ - )( j6 K/ W9 s2 B# }; |3 g
- (defun ver_row (value)
( \# ~' b! [. g$ v - (setq rows (verify_i "rows" value rows))
5 _+ `6 x$ G# X! m - )
8 W4 K! s* S" E - (defun ver_u (value)$ g# ^5 ~7 c' {$ \8 A! e
- (setq u (verify_i "u" value u))
% O0 T+ ^" o2 v! l3 m& U - )* X. {% e2 U$ c$ A5 p% c
- (defun ver_v (value)
6 E2 ]$ \! C/ N8 T v - (setq v (verify_i "v" value v))
: f8 U$ G, k K. K- N - )$ p3 s' }& A. p4 t
- ;;) e F* l6 b4 B7 E7 |% [5 n5 @
- ;; Functions that verify tile values for reals
( `! d- W) o" S, X0 i+ \6 f - ;;
x1 _: X0 \- P/ w( Z, Y - (defun ver_x1 (value)# \; P% B! n3 c N2 t) e6 S3 @
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
, u! d0 a9 ]+ Q( y! J - )
6 s! J8 R8 |/ T - (defun ver_y1 (value)4 h' P, Z3 s& d/ h; G. H
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
: q3 m$ _1 ^5 Z; x - ): F, l- _9 H# k6 N5 a
- (defun ver_z1 (value)
4 u+ D! X, q9 y3 e - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
' z g1 }8 Y2 J/ ~6 z9 J& y - )5 L2 { H g3 K3 r: }( c. G! G+ V
- (defun ver_x2 (value)1 Q% |) I! }( e) q+ o7 W" K9 c
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))
, X% T2 Q0 h3 Z* c, L% l - )* L7 u' [( y: u
- (defun ver_y2 (value). N2 ^& q' r8 Q8 |& k6 Y# o/ M
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
" }+ s+ K- z" @5 s+ O0 B) v - ); U# _5 f9 z" ]# m' N+ V
- (defun ver_z2 (value)
$ A0 M( z2 _4 j& F! Z: \9 B: m, o - (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
' q( K$ a8 _. B7 b- M3 P - )
9 p; o* l |! n# h& v4 W; m. n' P - (defun ver_x3 (value)
( Y; H1 a7 ?1 g _( u8 e9 @) R* g - (setq x3 (verify_d "x3_pt" value x3))
9 G; _2 s$ O/ |) d; { - )
( Q3 b+ e3 T$ V - (defun ver_y3 (value)
& q6 E& J5 x. ^3 C' N# E - (setq y3 (verify_d "y3_pt" value y3))# T. Y& T6 b3 f# }' t @. s3 c' q) g5 v
- )* H# L) D5 f' L9 ~* `# O2 L
- (defun ver_z3 (value)1 F- J; H7 w$ P7 x; C
- (setq z3 (verify_d "z3_pt" value z3))
1 e, i7 S; u# [- H* ^4 L - )3 z+ I0 U+ w2 C) q. v% R) U3 c
- (defun ver_x4 (value); \# f" m+ T$ r# w# f$ A
- (setq x4 (verify_d "x4_pt" value x4))
# l& M' R j9 I* r% ?9 | S, n( e - )# X7 Z$ Z8 ^; T2 C
- (defun ver_y4 (value)
- {" B; l3 o% g r' L - (setq y4 (verify_d "y4_pt" value y4))
- A% h) F8 G7 f0 t; X8 {! R, r - )
7 ~& B+ q+ }; b: ] - (defun ver_4 (value)
( E8 E+ F' V0 _( m - (setq z4 (verify_d "z4_pt" value z4))
0 p4 g* p* \, K) @4 S, t - )
$ J2 J' Q* b1 e+ `$ `6 n1 ]( S2 x - (defun ver_xscl (value)
8 J b0 Q3 n$ |2 i* I; W& f: G& ~# i - (setq xscale (verify_d "xscale" value xscale))
$ o* }* d3 Q. \ - )2 @+ L# m0 }" n5 w
- (defun ver_yscl (value)
# m- B/ e1 o8 z, r9 p- T6 J - (setq yscale (verify_d "yscale" value yscale))! D/ S9 `( }0 z1 r* X5 M" d0 n
- ). L" `0 j* x2 u: g
- (defun ver_zscl (value)
7 y; ~7 F# n/ k$ E1 A$ @ - (setq zscale (verify_d "zscale" value zscale))
/ g0 V0 |$ V) b - )
# n3 G" f7 |% a' P- A8 p - (defun ver_colsp (value)* @; H. \. M# m! Q
- (setq col-sp (verify_d "col_sp" value col-sp))0 W, i( B3 d' t3 h) J Q, h/ Y
- )! V) n) \- c4 X' i! V
- (defun ver_rowsp (value)
1 n& S; }. q, b, n5 l - (setq row-sp (verify_d "row_sp" value row-sp)): g. R5 p. _( z. P) G3 ]: b
- )
( R3 P! X( W9 } - (defun xclip ()
$ h* T; L6 a1 b; p+ T0 | - (setq xclipmode t)
7 Z1 D3 D ]; K) I6 k+ `8 i - (if (= xcliponoff "1")
/ n8 I% ~! @- Y9 {! O - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
. {1 N: t& ^5 _! R9 m - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")' O+ U: T6 G6 T* {! J. Q7 p
- )
4 v& w( W& Y9 m4 s3 ~" u1 } - )
' }! T; G0 F) j9 I1 b1 W3 o/ S$ r - (defun ver_rad (value)) y. D; p1 P! c9 n0 N
- (if (setq radius (verify_d "radius" value radius)), w/ {: f8 A; W- u" a8 T
- (calc)/ ~! g. L9 m% [% Y/ }7 m
- )
1 g6 t/ Y) E V- |# { - )/ l% N, X/ D' A9 [ }. Q2 u* t- W( ?
- (defun ver_majrad (value)
* ]2 W, T( u/ S# N3 @, Q+ }+ N - (if (setq majrad (verify_d "majrad" value majrad))! Z O# @0 |. {" i6 _
- (ell_calc_newval "majrad")
- ~$ }7 T) N- |: Y6 { - )) u( ~; d! _0 n: s9 ~" h9 u
- )
% |7 H( C; b1 ]# ]1 W8 P+ l4 K - (defun ver_minrad (value); P* p6 m* S1 c7 z! A E
- (if (setq minrad (verify_d "minrad" value minrad))
' @( X/ w% F7 p. d6 |* h k - (ell_calc_newval "minrad")
4 e4 s( ]0 C$ ~& o. |1 Z - )
- V0 Z- h# P7 B7 i: \ - )9 Y9 d0 |' [4 y
- (defun ver_hght (value)5 I* s, R+ J8 z! u
- (setq hght (verify_d "hght" value hght))3 i8 R U1 o; q- p* v( f
- )9 l, H4 A" _ _2 Z
- (defun ver_wid (value)( x6 M" f* W) b1 @% g) F: [4 L
- (setq wid (verify_d "wid" value wid))0 Y* o# A: o+ l6 y' V- O
- )& H+ ]- ?8 x* {
- (defun ver_xline_x1 (value / temp)5 {3 B7 w; A" |& m) y
- (setq temp xline_x1)' @4 f& O7 z' t
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))- R. w* c1 e+ ?8 l- U
- (if (/= temp xline_x1)* z# ?5 V. e8 c1 P& f5 a
- (progn (modify_xline 0) (set_tile_dirv) )3 x5 q& v% t3 Q# \
- )7 V4 F6 `: _+ ^$ H+ S( `% d
- ), a9 T5 Q3 f& v a0 C
- (defun ver_xline_y1 (value / temp)* p- h% M( X" T! [0 M$ @2 n: X, O. n
- (setq temp xline_y1)% b% O$ d4 X- H: e6 x4 {! U
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1)), O9 [8 j" r% b6 O& A
- (if (/= temp xline_y1)0 f* ], k, b/ E+ ?7 ]7 ]+ G
- (progn (modify_xline 0) (set_tile_dirv) )
9 z" a! r( X! w* ?* ]" \& m$ t8 ? - )( O+ q8 }3 P) ~
- )9 Z% |/ f0 I6 p
- (defun ver_xline_z1 (value / temp)
" D+ b' W+ j9 p4 e* b& N, c- B - (setq temp xline_z1)
. ]) ]8 \9 i7 R0 k5 m; m$ c6 j - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
7 ?, Z' H3 L+ ^7 b/ H O0 H' j& n - (if (/= temp xline_z1)% R5 a* N' R! t& i- S& t5 G" `
- (progn (modify_xline 0) (set_tile_dirv) )
/ N) u0 D5 y; i k3 A3 R - )# C6 X+ Q, n# j7 S" T3 P: z5 C
- )
+ T6 I8 E* j$ O4 ? - (defun ver_xline_x2 (value / temp)
+ u& R4 T. ]% D - (setq temp xline_x2)+ Y3 o/ _% ?* I6 b7 u% A
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
* E' g$ N n7 z4 D/ O - (if (/= temp xline_x2)
! m Z# P2 \/ S - (progn (modify_xline 0) (set_tile_dirv))6 O6 g; |/ V& ~ b) u
- )8 n5 k& e+ d/ C; ^# V/ U6 E
- )1 g: J; {0 q, Y1 |0 ~
- (defun ver_xline_y2 (value / temp)0 r$ ]; w2 {, r! G
- (setq temp xline_y2) ?( F5 t8 s. r, z' }* \4 L
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
O; H* }( E3 K5 z; ? - (if (/= temp xline_y2)
3 Z1 m* }7 w+ k- j( X/ \ - (progn (modify_xline 0) (set_tile_dirv) )' N( k8 R. H1 j7 r% b
- )
1 \2 a; t7 @! z+ ` - )* U8 O& L7 L. d1 v3 V8 |7 c. f
- (defun ver_xline_z2 (value / temp)
+ ]& j" Q; Q3 @" E. f4 v( [ - (setq temp xline_z2)5 N5 T% _! g8 r# v [
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))( _- u( D) T" H9 Y" n
- (if (/= temp xline_z2)7 M4 W, }. ?3 s" r
- (progn (modify_xline 0) (set_tile_dirv) )
$ V: E& M: S/ e2 i* l* V8 v - )
- W( [& y" |, z - )
5 F3 c% ^. Q0 M/ ]; M7 H0 y) z4 q - ;;
/ [6 D, S$ N7 z9 |- D - ;; Functions that verify tile values for angles8 a. R0 y) x! T- [
- ;;& X9 g) O4 `+ x9 f0 A
- (defun ver_ang1 (value)
d5 m! m) @, @( s$ s6 l+ y - (if (setq st_ang (verify_a "st_ang" value st_ang))
5 o- @6 |% ^' E9 Y- P6 k v - (calc)
+ Y8 m$ U9 Y' y) i6 a - )4 ^4 q ^& W, m. c f7 p. P/ w
- )4 f& B) m' S3 [
- (defun ver_ang2 (value)
E3 t( ~- t2 l2 v- M6 n3 C( V - (if (setq end_ang (verify_a "end_ang" value end_ang))" G- t3 N) J! L
- (calc)9 W4 z8 L/ O) |% o
- )' @2 w. s5 n' R7 ~ @
- )6 M9 y9 B, m- j0 @. K \. O+ c
- ;;
3 B& n" l8 r6 b; k3 P# z" E9 r - ;; Verify tile value for ellipse end angle. Handled slightly
2 ^2 C) s. M5 S3 L/ E8 b: K5 L; ? - ;; differently than the other angles.& N1 f5 ]4 `1 ~6 I, Q8 J
- ;;9 J5 R1 v9 m" H; o# s5 f7 O
- (defun ver_eang (value)0 ~$ H, Q3 X2 b! D
- (setq end_eang (verify_ae "end_eang" value end_eang))
1 X- [: S' l- u. `5 w - )( c v7 j! Y1 A% s. n7 t5 f3 |! P
- (defun ver_rot (value)
5 ]1 r% O/ D% t' Z6 I E$ _ - (setq rot (verify_a "rot" value rot))
; @, l4 f% Z& ^, e - ); N% X" B6 P) J% |
- (defun ver_obl (value)
1 S- o9 ^4 z6 ], a9 x - (setq obl (verify_a "obl" value obl))
2 G0 w; E f1 k+ _9 h - )7 h5 P3 f0 \5 p* q' h, ]1 g, {2 R
- ;;
; z- `; ~: ]0 C& f8 _2 Y7 X f - ;; Function that verifies attribute tag field for null string,# ^* |7 w- U; @7 a: D7 ~
- ;; or a string that contains one or more spaces. Tile value
' Z5 v8 b/ b4 {# s( T: k8 \' V6 a" ~% e - ;; is also converted to upper-case as well.* t6 r* G5 w3 p! U+ Y; r) Q
- ;;
' ~! G. v4 [/ m1 i - ;;$ h7 r/ n) g- Z2 \0 ?
- (defun ver_tag ( / tval) x. H$ g$ M) H ]/ J! f: g2 @& q
- (setq tagval (get_tile "tag"))
G) J- \+ t) Q$ m4 c - (set_tile "error" "")) p: W# \) p( S' P5 r! w9 m6 S
- (cond( I. q- C4 S8 H8 b }+ V0 p1 R
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))* N, @2 p5 v, M4 L/ _( H
- (wcmatch tval "* *"))
) m) A. w$ Z+ q2 L2 j; y; k - (set_tile "error" "Invalid attribute tag.")& H5 d- o0 {' R4 p+ d
- (mode_tile "tag" 2)
) T: t- ]0 T. Z - (mode_tile "tag" 3)) p! y" u5 h2 c
- (t (set_tile "error" "")
4 [' ^7 F5 f: Y - (set_tile "tag" tval)
. L5 g2 _4 y; W - (setq attag tval)))8 f% Y$ \0 F5 `2 k! E8 [
- )
% [) ? R4 H" B+ S1 ` - ;;1 U) b4 S* \3 R9 F$ c- V6 l
- ;; Calculation functions
* t4 d6 c9 P5 V( Y% r" m - ;;% E4 o2 m/ {; J; X/ A7 K0 Y
- (defun calc ()% W; o P8 [/ B' Q7 h
- (if (= etype "LINE") (line_calc))
: \1 E: q+ i! ~ - (if (= etype "ARC") (arc_calc))" p1 t' q5 g! S; l
- (if (= etype "CIRCLE") (cir_calc))
* k3 {+ W J1 s/ i# w2 b - )* R; t% {$ ?/ u3 r( D, F
- ;;
) g) n7 b# @) b0 T - ;; Calculation functions for lines, arcs, and circles# y9 v) [6 |( L' q4 B
- ;;
0 S3 u/ B- b8 @% N3 s - (defun line_calc ()
! s$ E, l0 x& G2 k) S - (setq stpt (list x1 y1 z1))
) \* l" H$ P; Y2 f - (setq endpt (list x2 y2 z2))
6 V- B" a. U/ B - (set_tile "delta_x" (rtos (- x2 x1))): Q' x; _3 o; B) i4 H/ v4 u
- (set_tile "delta_y" (rtos (- y2 y1)))0 T- a0 ? K4 b: P _. H7 @* `4 X
- (set_tile "delta_z" (rtos (- z2 z1)))
I U, \' m2 C - (set_tile "l_length" (rtos (distance stpt endpt)))
5 X! W" C, X# Y8 l - (set_tile "l_angle" (angtos (angle stpt endpt)))
. @( R0 j1 B+ D. x% I6 Z3 C - )
& h- t E3 a3 a G& h - ; V) \1 M. x9 s2 Y4 U2 _* w( N- V
- (defun cir_calc ( / area units)( i! X( n, _1 T& D6 A& ?' x" U( ?& K5 }
- (setq radtest radius)
2 H+ y3 [: [* s! N2 K - (set_tile "Dia" (rtos (* 2 radius)))
& u3 s, z9 v4 z* J& v8 m& O - (set_tile "Circum" (rtos (* 2 pi radius)))4 L8 R6 f* e. m; U1 T
- (setq area (* pi (* radius radius)))
+ v2 b% g3 w. X7 O& E# f! T - (setq units (getvar "LUNITS"))
7 f1 b7 p5 ~( h, O# q0 K+ s) e - (if (or (= units 3) (= units 4)). [1 Q) Y8 q9 L ?! L
- (progn
; p" k% c- D) Q9 T! `0 E6 Q - (setq area (/ area 144.0)), ]' X+ E+ u* W k
- (set_tile "Area" (strcat (rtos area 2) " square ft"))/ {3 T4 `( x( }0 N, J
- )
8 l2 v* J Q+ F8 }% q; a& q - (set_tile "Area" (rtos area))# c! f/ s. u1 V) U* v
- )
) x/ H# o- d3 \4 \ - )
/ v1 P f, R7 ]6 V" _; Z
1 @: K! W: [) I# g4 c& }9 j- (defun arc_calc ()
6 j: p, m' m1 i! C. t* b - (setq totang (- end_ang st_ang))
% _& o4 l2 D1 H+ X - (while (< totang 0)
1 I4 X& |( {, a1 h - (setq totang (+ totang (* 2 pi)))6 n5 _8 q+ ~" C' E& u# n, f x
- )3 I' @0 R+ F5 Q1 P8 X! h
- (while (> totang (* 2 pi))" s! h+ A+ @) z& S7 D# M
- (setq totang (- totang (* 2 pi)))% U' m4 s4 G: v2 f' [/ F
- )
( N j3 U# E/ o: s. D- }& ^: O - (set_tile "tot_angle" (angtos totang))
1 @9 v7 s6 |; X9 w4 l+ |% N - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi)))): {) V# b8 V S- B4 V+ D
- (set_tile "arclen" (rtos arclen))
0 i7 Y( i2 X0 l) k - )8 U- B8 A4 V! Q V
- ;;
# n+ i. ]6 v; Q2 n( p - ;; Calculate the major radius, minor radius, major axis direction.
0 R% ^2 T2 h! N/ ^; k% G1 t+ [ - ;; Get radius ratio. Convert Start, end parameters to start and end
% ]* T, X j$ f. p- x8 Y - ;; angles. Save Major Radius value in "old_majrad" in case the user3 m. M) P# F6 B( q
- ;; chooses to input a new Major Radius value later. It's needed to
# N8 L. v/ R' ?1 e - ;; calculate a new Major Axis Vector value.* ^6 I2 O7 Q) C# P
- ;;( J9 i1 |5 V# s! v# L, d X: A6 ~
- (defun ell_calc ()2 R; Z" Z% X8 }7 l0 r
- ;; Get major radius from the major axis vector.5 ]# i; g& F% }7 F
- (setq majaxis (cdr (assoc 11 elist)))
0 r8 \2 f1 D; P' r$ j - (setq xx (car majaxis))+ `: N9 N3 h/ e# q, \- |9 R* {/ T
- (setq yy (cadr majaxis))
2 f, P+ p4 _5 I" ` - (setq zz (caddr majaxis))0 f& u$ m# f% ~( k) x1 `
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
! I Q1 a* A+ J. l4 E - (set_tile "majrad" (ai_rtos majrad))
" m0 o* @/ w/ K8 k - (setq old_majrad majrad)
% F5 r D/ ~. B7 U* M( |4 H" _* @ - ;; Get radius ratio& d" n6 x! _) B6 y) N" D
- (setq rrat (cdr (assoc 40 elist)))
4 s8 }; l: R# h8 O - (set_tile "rratio" (rtos rrat)): j) U3 e8 M4 g* Z8 Z9 D
- ;; Calculate minor radius
* l! G$ M& Z; C: @$ {0 q - (setq minrad (* majrad rrat))4 _1 X! S6 {6 b4 k
- (set_tile "minrad" (ai_rtos minrad))
: @4 t6 z5 d) Q2 s) Q8 p1 d - ;; display major axis vector
" }$ R( s/ x e; c - (set_tile "Majraddirx" (rtos xx))( R! e# z! A0 E, @
- (set_tile "Majraddiry" (rtos yy))
( }6 u1 ^6 c3 W4 M8 ?) m - (set_tile "Majraddirz" (rtos zz))
& q9 z4 b% Y- Q/ F$ Z% T9 ?) A
- t! ~! l! ?. _4 k' A/ \- ;; Convert start parm to start angle
5 v9 z0 z' G1 e" a - (setq stparm (cdr (assoc 41 elist)))
# K# t z% D1 }! j7 s - (setq vecx (cos stparm))7 s( U$ {2 {3 j6 G# p8 R8 i7 u3 ~
- (setq vecy (sin stparm))3 N: q* @' [& p
- (setq st_ang (atan (* rrat vecy) vecx))! z! [( @ y5 P1 F9 p! \9 H; M
- (setq tempst_ang (ai_angtos st_ang))
2 h( c+ r$ l$ ]* H, `, L - (set_tile "st_ang" tempst_ang)
8 i; h+ R$ h k; z5 _4 X - ;; Convert end parm to end angle. If end angle evaluates to 0
; |) D, [+ n A2 K$ j" x - ;; degrees then display it as 360 degrees.
, f7 \4 @) F) t2 s2 V8 D& D - (setq endparm (cdr (assoc 42 elist)))
$ T" i1 U- C K- X - (setq evecx (cos endparm)), d1 I* n$ J V% a3 @
- (setq evecy (sin endparm))
* `% y) H2 v/ U - (setq end_eang (atan (* rrat evecy) evecx))
6 X; o3 u' B B$ R - (setq tempend_eang (ai_angtos end_eang))7 B! L" C& i+ F8 I* u. P
- (if (= tempend_eang "0")# I$ }! \: l0 y( g1 y' k. y
- (set_tile "end_eang" "360")
/ l6 O+ o. r. B! J* P9 w& j7 F0 U - (set_tile "end_eang" tempend_eang)
3 `3 ]( ^4 G/ X9 p C( l# } - )
- h* _; ~; t* h$ N% A - ;; Get area of the ellipse.4 F* j3 ~, D* Z2 O" A i( l
- (ell_calc_area) s7 a1 n, T+ ]2 N- P0 H
- )
8 q: o* t8 L- r( G - ;; Calculate area of ellipse. If it is an arc then5 [1 t/ ?" U( n
- ;; grey out area display.
+ r7 I( ?2 D. e& E4 u" Z& r2 u - ;;
9 U4 [1 f3 Y- R9 `# { - (defun ell_calc_area ( / area units): O. c5 ]$ R1 C% q( n& h
- (if (and (= tempst_ang "0") (= tempend_eang "0"))
: A7 w- x2 X% |4 r - (progn+ C* | u8 j5 t
- (setq area (* pi majrad minrad))
/ g" s# m7 H8 y; }" V - (setq units (getvar "LUNITS"))) s# ?; v" E5 R- c
- (if (or (= units 3) (= units 4))
- z1 c. e( F3 Y' v# l& K - (progn8 I4 B* J8 M) Y' h
- (setq area (/ area 144.0))
/ v- E" }0 d6 V5 P4 S2 n - (set_tile "Area" (strcat (rtos area 2)" square ft"))
) {/ p6 X6 j5 R! W - )
/ \ u4 o6 r8 j; c, h6 { - (set_tile "Area" (rtos area))
% A: S; ]* s. a: E5 _8 K q - )
% D0 G \6 i! G; | V6 @ - )3 `4 B1 H) Q+ V6 S. j3 A/ Y+ X
- (mode_tile "Area_text" 1)8 p7 m @! ?% r4 P4 {0 `
- ) n2 {& v0 \1 C* O, x$ ]
- )7 u2 l; R3 H/ y' f9 I+ \8 ^
- ;;+ h; D' X# @$ z5 Y$ A
- ;; Calculate new values for ELLIPSE
# t$ ~1 c& T- s. D9 L: ~9 B - ;; Minor Radius, Area
- I5 s, B& M; _. `! k+ G6 j( A - ;;/ F) a8 t2 R v, R& V: k
- (defun ell_calc_newval (ell_tile)' B; g* U- [ G. A( t
- (if (= ell_tile "majrad")
8 @- ?+ J p N5 k* }8 H/ S2 T - (progn e! Y* a1 P3 ?- L3 p3 r
- (setq rrat (/ minrad majrad))
' ^5 R+ Q$ m. _4 L$ }% n - (set_tile "rratio" (rtos rrat))' z+ @3 p# C {+ o
- (ell_calc_area)
( x0 Q b2 E$ d) t0 F' l - )
: M7 f3 z8 l. M. E - )$ Q* @( b o# ] ~2 ~% o; f. B
- (if (= ell_tile "minrad")
6 L6 D) Q0 }7 P: z0 r; ^" k0 \. U - (progn
/ ?* P( O: [1 p$ e2 u" X& K - (setq rrat (/ minrad majrad))
0 d* d; a& I( y4 b - (set_tile "rratio" (rtos rrat))
9 v2 A4 c7 e$ d+ M( A O" o/ m+ m9 C - (ell_calc_area)
8 ^( E8 R' z, l - )# m! l8 l. V3 m7 E
- )" R9 l( R. r: |: T7 z& m6 ^5 t
- )9 t+ B5 \* G! K, e: y
- , {, M. L/ @+ y/ n
- (defun set_dimen_props (/ loop a stl txstyname)
* I; d9 D2 R. r
$ N! ^" I. L. v. d- (setq stname (cdr (assoc 3 elist)) ; get style name% A/ }5 Q) a8 M$ Y) m9 p0 w
- stl (tblnext "DIMSTYLE" T)& @: z9 \( ~+ a; w. ?
- stlist nil)
: ^1 D. V% a$ C+ t4 P" j - ;; Get all style names and list them in alphabetical order
' F, M6 n" `5 H- [. F% O$ U - (while stl6 O8 K8 {6 v3 w* N
- (setq sname (cdr (assoc 2 stl)))( O# X; R2 R% N m& @& _2 d
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)( Z5 p' H5 x8 V6 o& B
- (setq stlist (cons sname stlist))). S( i& E6 v) x. ]
- (setq stl (tblnext "DIMSTYLE")))
# ?- z& W! F9 V- g+ n8 U8 C
- \% h4 |0 o; i: G- (setq len (length stlist)( M3 M1 [7 k) T
- loop 0
& n* ^$ r, K* o3 l& N - dimsty stname1 C/ y2 t1 k2 _& ^3 V" f% [
- )
. C2 _! K% K* `+ [3 E* u - ) }* `9 w& V" e3 s( F1 g
- ;; alphabetize style list, depending on maxsort
5 |* p, h2 l! c$ H6 B - (if (>= (getvar "maxsort") len)3 Y1 W% _# o$ e' h
- (setq stlist (acad_strlsort stlist))
$ Y O4 m7 b% h - (setq stlist (reverse stlist)))0 U' ?5 i/ Z( ?. y/ s2 `
- ) Q+ \* M$ ^: {) p2 j( @8 K# X6 L
- ; *UNNAMED style (dimsty = nil at this point) is replaced with
e; e8 q+ o/ J" U2 W B - ; the current style. After R13, we require dimensiosn to have a8 X& N3 B9 i" V$ Q! t( r' F
- ; dimstyle, so we plug any holes where we find them.
7 \2 H5 X8 N5 r! k - (if (null dimsty)
$ d5 a0 a9 @* K/ O& x! ]9 T - (setq dimsty (getvar "dimstyle"))) t/ t1 ?( B2 r6 T/ W7 `
- )5 e+ X1 ]) X) K
- ; Show the styles in combo box
4 Z, G% e& |( W - (start_list "mod_style" 2)
) `7 X: ^% y0 i! J9 s3 i) l - (while (< loop len)
* |9 j g: ^( Z2 i' K( E8 B4 e - (add_list (nth loop stlist)), h& l) l" Q8 ^( u1 t4 c5 v) y0 C
- (setq loop (1+ loop))
8 S0 A# F% j# h9 x - )0 p. I! ?# M) X
" {% E/ n0 z- c, g- (end_list)
$ [+ S% u9 d" {' E( s
$ |6 |7 `% @' u* n T0 J- ; Hilight the style name of the selected entity' O/ j; |2 v/ l' U1 P
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))- _4 O. m4 D' s) h
- (setq loop (1- loop))
8 |" O: z; _; |- k/ y - )# d2 \& B T$ l( `
- (set_tile "mod_style" (itoa loop))% [: w' b, t" q3 b
- 8 h! l7 F' O" A; c' ?
- ; The following is the list dimvars. It must be sorted in the same
! {7 n) M- y# N) {* K7 u - ; order as the resfub returned from DDIM (ADS module).
; h( J7 Z" l9 c! B5 |
5 P' P& X1 V" L A: o* Y- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"6 \- |: Q$ ^, m, F+ b
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
% N8 N+ v/ W; h$ T# I( R& m - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
+ M1 n- r% h9 Y7 l) H" L; o - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"/ Y9 X/ ^* c3 \/ _! J) H
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
5 `4 k( N: {5 B* c - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
( ]2 K. ]& K5 t' P2 ] - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
# G/ v( U) ^" g% T- [$ y' O( A/ @$ z - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
C/ O( v/ y/ t( G) f - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
6 g. y) U) r7 l) s - "dimdec" "dimtdec" "dimaltu" "dimalttd") ^7 M6 V8 q# ]; n* k7 ^2 V. ~! S3 D4 u
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"+ L ~$ x9 ]& h
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"* j2 a7 t5 [$ F! @/ T2 J: X7 j
- "dimtxsty"7 x. @& A: P- ]8 c
- ))# m: f: l- P0 ~( t+ ^; ?! z) b
- (progn- P8 r9 s( f5 z4 X
- (setq sv_dvlist (ddimen_getostate dimsty)
, a2 ]/ T; d& C$ D, \- [ - txstyname (assoc 340 sv_dvlist)( F5 V$ h' k- L" f+ s1 T
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))$ D Z9 w: n; J
- txstyname sv_dvlist); h! S8 B& B/ n; b3 h m
- dimlist sv_dvlist+ Y7 o0 Z5 L/ f2 [* D) a
- ) M( p5 h+ c# l: x" Q
- )
% R# O1 Z" ~: ~8 g - (if (= dimtype "DDLEADER")4 u( d- |, S# ~: N, V% L
- (mode_tile "mod_format" 1)6 T9 a6 f( |8 I+ R0 z0 S6 O' v g
- )
, i6 i3 o* L" _1 K0 B( t, h2 v* `4 m; ^ - (action_tile "mod_style" "(setq dimsty (ddimen_style))") k4 |6 `0 z) x, B& K; M3 v
- (action_tile "mod_text" "(done_dialog 4)"); v$ x: L8 {' z( T- h- n5 |! s
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")" m2 {0 \9 C% j# w3 q+ ^
- (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")* h5 d! B- h8 [$ \$ H* D
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")& Y4 U; R3 w4 b
- (action_tile "accept" "(done_dialog 1)")$ |1 M% @' L( e7 k; W
- )5 n, E& U3 z4 ~$ Y
- ;;, n6 ^* B: K n+ G
- ;; Get dimvars that have been restored.& M0 D3 R% v1 c% c/ G
- ;;6 _$ M3 @3 n5 F' b/ M% a! F
- (defun ddimen_getvars (/ elm dvlist dv i)$ v9 r9 ~8 A9 P% I1 k2 H& @
- (setq i 39 S4 G3 H4 {. f" Q. F. \+ f5 E
- dvlist (list (cons 0 "DIMSTYLE"); G& S% [) o4 E4 q" q$ s. b
- (cons 2 (getvar "dimstyle")) (cons 70 0))$ H, u/ T* M1 Z5 @. K! O
- )3 |4 ]1 m( V$ }, `! {
- (while (setq dv (nth i dimtbl))
& B5 w0 N7 j3 T/ L* x - (setq elm (getvar dv)
6 }* `& u0 ~9 a ?) c, L - dvlist (append dvlist (list (cons dv elm)))+ O) \/ I# x- ]' \9 S; Y7 z
- i (1+ i)
! H+ G& g6 _2 q$ Z: ~4 ^5 ^ - )
2 a3 F, P4 c' L! E - )
6 u) s% L2 ]1 K& w/ n0 { - dvlist
% a: ]0 n( j+ n2 m+ e( R$ Y - ) `- r/ Z2 A9 p& v. g. o
- ( [+ u/ f8 n& Q% }9 U
- ;;' _! y8 J/ w% `/ Q
- ;; Get the original states of dimvars. This is for DIMENSION entities.$ Z& D6 Y6 [$ S: ?% ?- A
- ;;
$ X% u7 l% R( t. e - (defun ddimen_getostate (dimsty / dvlist elm i dvvars): T! h9 b% m7 e# v+ `! U8 J4 r6 B
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list5 e& V' r3 a6 A& F
- dvvars (ddimen_getvars) ; Get dimvars for that entity
2 U+ |- |3 E; d; Y& [; ^, [ - i 1# L2 p. k; H8 e m6 c. ^
- )
: Q+ N. f. |" m/ r% p( A
2 I9 f z9 o1 P: x6 F- ; Create a list that contains values of the selected entity.
" @5 I! @& t p( X! F8 b n3 m5 z6 w. S - + [& h4 N& `; ^- ^7 Z
- (while (setq elm (nth i dvlist))
/ C' a6 z9 E6 T - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
- x _& }1 p! L5 P/ t! s! L' o9 d - i (1+ i)
( J+ w* }; t0 O1 v( c! H; F$ C - )' D* _; e7 o% x5 }6 Y
- )+ @* e& `% B: f7 Z$ X; K8 j' s
- dvlist
. V% |* F! l3 L3 I% t - )
8 K$ ^' @- n) h& J
* p1 n" m c" x% N) U- ;;6 S, ]6 {. E- c+ [
- ;; Restores dimvars of the selected enity.
3 y3 ?; J+ R. `1 h% g3 {/ { - ;;
4 p- S+ ?, @; ]+ v: d, | - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)7 x3 L& S& C! k1 n: G8 V" w" O7 T
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"3 `, L# T. L7 w# \# {% b! a1 }
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"- C% ?) j# o3 q% V% n, N/ Y
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
% r& h L/ i/ u) x/ I$ s8 m" p - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"0 _- J4 `2 g5 o) K# Y. H4 o
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
9 d( z! j2 r* R0 N7 c( ~ - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
: r+ m8 G6 G1 F9 Z" l6 H - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"1 j+ a4 l8 u! S" X4 U
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
b+ w5 y: M* ~1 `% t - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
" j5 F8 e) J: l5 N4 T - "dimdec" "dimtdec" "dimaltu" "dimalttd"1 U% S. N% z0 y7 z. U3 p- P. o
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"; L( s' u/ H. [4 b+ ^
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
$ F+ G/ g/ M: `, ~; j4 Z7 l7 l - "dimtxsty"
" l, d- Q8 W5 ^ - ))- G R) S, J4 E
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
3 N2 z; }5 ]4 g8 l9 N4 Z - (progn5 c3 p% g& c6 O3 c8 q" P
- (setq en (cdr (assoc -1 elist)))5 m! {/ T! r1 V# }, S9 S
- (command "_.dimstyle" "" "" en)! b0 r9 p3 B. P7 E) A- ~5 Z9 y9 I
- )
' k4 M3 j$ m/ z% N) Z - dimsvcurset
8 A4 h" J% D; o; M, N* E) T - )
w. ]8 Y/ g. a& t# a3 \3 O9 M - ;;( ^4 ]9 I5 r- g
- ;; Modify Leader; ~2 y2 M: c" P( x( ^/ b( c
- ;;; Y" J6 o% o* J' {# C
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
1 O! y! q* ~) d% T f7 R3 R' X - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
, x3 D% T, f1 v& p8 o, s - dimtype dimsvcurset)6 D8 t' h! O! ? c
- (setq dimtype "DDLEADER". p( f) o2 E: O8 @& @
- dimsvcurset (ddimen_dimsty_restore)0 w, ]2 k' {: B& s4 G4 `6 E
- )9 d6 R' D( V$ r8 V! V1 h' t) Z
- (if (not (new_dialog "ddleader" dcl_id)) (exit))6 V* H' j$ N6 i* c9 A. B1 _" d
- ;; Set initial tile values
( s' S L* ~+ y5 [0 F( @ - (set_tile_props) e5 W; s1 D( y$ ]& t! U
- (set_dimen_props)
. ]. ?! u# h: ] - (set_tile_handle)0 v! h @1 r3 }5 `' y
- ;; Define action for tiles$ O$ U4 P/ C) Y8 k
- (set_action_tiles)
% g8 X* x! l. M: a - (mode_tile "mod_text" 1)
4 S! v" @) X, A z
/ J9 W2 |% b) f' i7 t6 }- (action_tile "mod_style" "(setq dimsty (ddimen_style))")/ ~- ?" _) h( Q; W- ?
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
" [" q- e/ L# _ - ;; Get ARROW and TYPE.6 X: I7 B+ x8 l _) Y2 S! c5 o9 o
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))3 j: t" ]( `3 D! k# x; G5 v' b9 U
- (if (= 1 (logand (cdr (assoc '72 elist))))# [, v/ E- u- _3 f$ e" t! Q
- (set_tile "s-s" "spline"), }- \$ K: ^1 @5 N1 j% a( s
- (set_tile "s-s" "straight")* N7 S) K1 D: Q1 E9 M7 r
- )7 R- Y& [% w/ ~7 e1 v% `. ^9 N
- ;; Start the dialogue.8 S |9 C2 D! @9 L
- (setq dialog-state (start_dialog))6 d5 d4 X' }4 H1 ^0 r
- (if (= dialog-state 1)
' s3 {( _0 G5 e% E, T. c - (progn. Z4 Y% I( E* ]- |5 w% B+ c
- ;; update the style+ r. x6 a# F- s- Q6 Y! s3 ]
- (if (/= dimsty stname)+ D! g! D7 s5 @3 u' [5 ^
- (progn
R% G/ z9 v( k& U5 m8 I- T - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case3 ^/ D$ Z0 F/ d
- ; doesn't have it., _8 k; {* O+ i/ S1 z0 x' j
- (if (null (assoc 3 elist))
7 S) g7 Q6 V% e ?& z - (setq elist (append elist (list (cons 3 dimsty))))9 x: R: s% ~; e( [9 |
- ; else just replace it.; K; @! ]$ A. N' E
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
1 b& J3 G2 s2 K' Y$ b - )* w: U6 r- t5 [0 E3 _* k/ x
- ; refresh sv_dvlist with new dimstyle.
# M- k u A0 v9 u - (setq sv_dvlist (tblsearch "dimstyle" dimsty))$ T: U) }; K6 Q7 |. n! L3 m
- )
& U. C$ y# N z2 W/ |, O. |: L( t - )
+ j& ]6 E6 e1 B6 E& A' M' c* Q - (if (not (null dimlist)) ; attempted to change dimvars( n9 O) X6 M1 y1 k9 G
- (ddimen_complist sv_dvlist dimlist dimtbl)8 [: K& b. x8 K1 T; e1 @
- )
& L5 L, E1 e8 a - ;; update for ARROW.
9 d5 d) W/ k1 n. ~ - (if (= "1" arrow) K* X/ T9 A7 E
- (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
- |6 }0 C9 t9 t2 F+ @ - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist)); `' [" E" L: E/ S. \" l
- ), }' S2 `8 a' E, ~# ]$ q
- ;; update the TYPE.3 ^( f8 N: z$ A7 Z+ x- `6 h
- (if (= "spline" leadtype)
! i5 \6 L+ l/ c* Z - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
; B' G7 K, X( `1 K) r4 J: [. {/ o - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))7 V5 H1 Z y0 t, ~9 h
- )' K H/ W! {/ a' K
- (modify_prop_geom)+ c9 h# {- x9 c: S
- ;; update the Color
3 A2 l3 y; A2 E) W7 y( D3 g - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))# o9 ~' c! W% |3 J: l g
- (entmod elist)& H$ g* `! B/ X7 f1 ]3 h
- )
! P& P$ \5 I; m* v q - )
( O" S) B8 }% S" i - (ddimen_setvars dimsvcurset) ; Prepare to exit
0 ~ X4 s5 P( U: ~ - )
6 L! p6 ~7 H- A1 S& `2 A- e
$ ?! b/ j! I- x. T; j& t2 J- ;;+ @; O8 ^' o# Z
- ;; Get dimvars of a dimstyle with overrides.1 M: k! J8 f4 y+ O) f1 e; S
- ;;
, j! _' K1 b% e* \& d. K2 I
h$ k1 f T+ w$ p. Z- `- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)% E3 u7 k+ {) I: Z2 y, |& r
5 N3 j- `* o9 A# i: Y- ;; Get override information for the specified entity.2 Q s9 [) ~5 ~- W; h
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we* n7 c0 i5 O& M
- ;; must obtain override information through this tedious operation.
/ c0 u8 B' ~) l- r, }7 J2 S - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*"))))), R( k) e n4 E% c8 J
- dvlist (tblsearch "dimstyle" dimsty)/ Q* s3 |# j4 R! b
- i 2
6 R9 b' d( J8 y8 q* q - ); R- s3 I/ D$ C' E% h6 u* y# N+ o
- / E+ w; i2 _7 K. ]3 D
- ; Update the list with overrides if overrides exist./ b1 i+ L2 J. U0 G9 L5 d6 p
- : l1 ?& X+ [; V1 t
- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr)))): b1 {/ {! \: C1 ]5 u2 E" J
- (progn) d7 j1 }9 L- z, F8 M8 y% f& i
- (while (setq elm (cdr (nth i dimovr)))
! O% f. W, W! t7 H - (progn
" Z& ?9 f3 h& O - (if (or (= elm "{") (= elm "}"))* ^3 P" m8 H5 ^! R, r7 e0 h( i
- (setq i (1+ i))
1 }! P. ^# W& e" v+ [1 K. |2 J - (progn
& Z9 i" R7 s( Q" V; e" b' [7 z# G/ | - (if (or (and (< 180 elm)
) N1 T4 U0 w- Z - (< elm 190)& m3 F& l# y: f" S
- )8 B# l* p1 U+ R" r/ n0 G! Z7 ]0 }
- (and (< 80 elm)
! U! _5 _5 A3 a) v - (< elm 90)
4 Q* P: \! K1 c3 c( d+ z - )# }% W3 I7 V4 c) x( V7 O
- )- p S2 ~; E$ O/ Y" t3 R7 M
- (setq elm (- elm 10))
1 U" W$ h+ J9 [/ ?4 ^0 X+ v - )+ L7 q( `/ G2 I9 K
- (setq i (1+ i)7 v& e% ?4 w. n" c9 r6 b
- elm (cons elm (cdr (nth i dimovr)))
8 c0 x" V- z0 ~) ~ - dvlist (subst elm (assoc (car elm) dvlist) dvlist)
; \* q8 L2 G! x# U% N) \ @$ x - i (1+ i)
/ `$ ~1 I7 a0 r) u# G% ~9 f - )+ T; `% y* j2 o; l: x% z% \1 \
- )
) B$ y: r+ ^4 J- o2 \& B! X: _- U - )
$ ~4 g2 e. F6 V. R7 ] - ): T( G0 K9 D7 ]! q; L" o
- )
9 e& F" Y4 ]" n1 x9 n6 ? - )
# ]2 X3 A! N7 I3 I - ) C9 Y1 F+ b9 p* @1 ^
- dvlist5 b$ |5 y) Y, G7 c- H
- )
3 w, @. l9 b& K) P, ]# D; P9 }
; F* `3 F9 G/ h/ c* q/ T- ;;
) \+ h$ m" t* H2 j - ;; Modify POINT
7 \$ Y6 o/ q4 F- G2 ^3 z - ;;# Q/ X$ \- W- ?6 ?" Q! U8 m
- (defun modify_point ()
. _+ A& P& u! Q6 l& J+ r - (modify_properties)
0 I7 G/ j8 }9 F! v: u - (setq pt1 (list x1 y1 z1))) r$ j9 L9 `/ F5 i
- (tempmod pt1 10 0)
- e: F7 Z a, j6 E: n- b - (entmod elist)
; d, \' S4 s& M- h; j9 a$ W - )0 |; q. p! B6 L6 }! N/ W1 W* |
5 i4 `$ { D; }- (defun ddpoint ()( P) T. \# a. S- l1 g; G, P
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))' P4 W9 o* u7 n8 n+ V( h0 s
- ;; Set initial tile values
( _$ t; |, D* K- i* n& _ - (set_tile_props)
6 ] ]9 o& C6 ?/ x; v - (set_tile_handle)
* Y+ o4 ]- O4 j. m! [! E - (set_tile_pt1 0) T. d- A1 q* J0 b- \8 D9 E& c
- ;; Define action for tiles
& _: s3 a2 j6 m - (set_action_tiles)
) L4 E5 E2 c) m( N& T f - (setq dialog-state (start_dialog))+ Z- O! J' @0 L! k% F* D2 f0 T
- (if (= dialog-state 0)
: T k2 n$ R% c4 T$ i5 S, N6 m - (reset)" ~* K8 G# m7 D( G7 D
- )
% Z- P: }# p. {$ u$ D$ d - (if (= dialog-state 3)7 J2 J6 H* h! m' }+ u6 W
- (progn: u6 h) w! a( j7 ?
- (modify_point)1 s: W+ O5 F5 J
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
: O" h! c; n7 d - (ver_pt1 0)( k; m5 L8 l, [7 ~0 n
- (ddpoint)( e% U6 {* j* k$ j$ Y% b
- )3 o/ f- ?, p9 B: f2 q2 o \
- )
1 Z' ?# L2 Y& L$ ? - (if (= dialog-state 1)
+ X* ^! a9 u& K# O1 M; S - (modify_point)4 C- {, O+ `9 j" T* s8 X2 V
- )* I- O! B( ?& a/ X8 x) w6 b! ~
- )
. t) I u9 t2 K - ;;
4 {+ s( O9 a+ l - ;; Modify LINE
* J4 H/ t) i" M7 d - ;;& L. w/ Z) M; R1 T9 @4 e% i$ w
- (defun modify_line ()
3 f; I. }9 \3 p/ U8 t - (modify_properties)
9 A6 E7 P0 K# P) H$ j4 W - (setq pt1 (list x1 y1 z1))
( U* f D& M7 I - (setq pt2 (list x2 y2 z2))4 ~/ P7 j- G: E0 S/ n* Z2 K& t) O3 B0 n1 C
- (tempmod pt1 10 0)) X/ x7 a% r" a+ L4 H, z9 D
- (tempmod pt2 11 0)0 z. q& n3 [* E I5 M2 w/ E5 P
- (entmod elist)
" {+ ^* |7 g6 r, x7 F0 f" K) E; R - )& p, R! e8 ~2 s W8 ^
- (defun ddline ()
! O! I& f) z0 g5 k+ M9 ?* [ - (if (not (new_dialog "ddline" dcl_id)) (exit))
1 e4 A" o( A0 ?0 ~) i - ;; Set initial tile values' Q0 ?9 t6 E3 r5 L( ]
- (set_tile_props)' f8 H/ j# a) g: A; t( ~
- (set_tile_handle)" m8 a a5 h$ D5 ?5 S0 X
- (set_tile_pt1 0)
+ H4 t, U3 o |7 [; D - (set_tile_pt2 0)/ z3 b% _4 X7 C, Y
- (line_calc)
G& ^7 Z1 \! y( O' v" K, `7 y - ;; Define action for tiles/ X% `! j, b3 h3 Q6 x
- (set_action_tiles)
/ h$ k% i' U. B' D% b8 a - (setq dialog-state (start_dialog))! V+ t7 w- V- x4 b* m( z, y
- (if (= dialog-state 0): q, ~1 p# r4 p$ y
- (reset)
3 M% \7 |3 k$ d& S - )9 E! @* s1 j; D7 C. y
- (if (= dialog-state 3)
( o. G5 k) H$ f/ G- q9 H; w - (progn
2 T6 z0 s5 n7 q/ r9 S5 X2 k - (modify_line)
1 j, Z" [0 `2 F' ] - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
" Q0 R+ }/ \# j% W - (ver_pt1 0)
4 c0 j. y( z5 v. Q+ u4 v - (ddline)3 `1 v x. Y1 v! x6 N
- )+ Q6 M* r7 \% M* k3 P
- )
# [( C5 E! \- o - (if (= dialog-state 4)
. ]' d: h) N" @1 K( t, E - (progn
, y9 V9 x. c& D# {1 c* G0 B& n$ r - (modify_line)
; e8 }' S) ~& _0 _# t9 ~, i7 t - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))5 b/ [% X# X% g6 z9 z% A) M7 ~
- (ver_pt2 0)# h( C3 ~3 x7 z) ?$ ~+ w
- (ddline)
9 [, J* T% | i/ x* ? - ): Q# d0 J4 n8 O0 t8 r' n: a
- )
2 m1 X+ a5 _ n) Q8 }3 Z* b" B - (if (= dialog-state 1)7 S2 K- i- h, \( w9 i
- (modify_line)
7 l5 e' q W0 O8 @( n* z' y4 @ - )% i2 N3 T, b0 G/ C; ?& F( w m
- )) i' ]* o2 |2 n1 p
- ;;
; }2 Z0 `- @( m1 d" b - ;; Modify MLine' r$ W5 B( Z5 X8 j8 M
- ;;
1 S* _4 a5 N: ^8 C - (defun modify_mline ()* v9 z& a$ f# f2 X2 q5 h
- (modify_properties): l0 m% |1 b0 a) G/ \
- (entmod elist)
K9 o: F; t/ n t2 g S: y% ^ - )
0 X8 ]! y- E3 V* K% T3 v1 a - (defun ddmline ()" }0 d3 W: S3 `* @' h$ s. f
- (if (not (new_dialog "ddmline" dcl_id)) (exit))- J. Q0 i& s, K) b8 M% X: ?
- ;; Set initial tile values
6 @9 i j; J% G - (set_tile_props)
6 N4 B: B( n3 \) t - (set_tile_handle), M- P* B V5 W1 `& C
- ;; Set mline style text field.
# I) t& e6 l; F+ o$ T4 I% `. n - (set_tile "ml_style" (cdr (assoc '2 elist)))
2 R1 u, _4 @7 A& y p( O2 {, A
0 Q) L: `4 H( R5 f- ;; Define action for tiles8 X4 U6 z5 k# B0 z/ k0 m
- (set_action_tiles)
9 G% p# r9 G& i$ j2 Y6 Z - (action_tile "ml_edit" "(done_dialog 3)"). x# ^1 h% k, t$ w+ k/ R
- (setq dialog-state (start_dialog))
3 w" u1 u: O* |. `, f - ;; Dialog cancelled, reset to original values.
7 q) I# @) O$ a: L+ ~; j - (if (= dialog-state 0)
" c' T; x! `" l1 [. P - (reset)3 X8 v! v: z6 a$ b9 S) O4 I; u5 z
- )
2 p+ V/ c5 O: y2 H9 ` - ;; Dialog OKed, update the mline.7 V3 V( r' u. }! q
- (if (= dialog-state 1)% P5 E) n- z0 y3 J# V: z
- (modify_mline)
+ T* q) _: J g% u) n2 l% e - )
( ]4 g4 w& q" k8 Y - ;; Edit Mline, call MLEDIT.
y5 ?! ~5 }" `: T7 f6 v3 P* ~- | - (if (= dialog-state 3)
' n; n$ j. O; o8 [% R$ E - (progn
! C$ X' T% |4 R5 r. {8 q - (modify_mline)6 A! G. k9 s3 i
- (command "_mledit")0 X* Z: I! t! s; B
- (ddmline)
% n' O4 j! k/ h - )
5 R& A4 r/ g' E& R* b+ z# a - ): C& W% T% l8 ]9 p" {( ?5 L
- )
* Q+ ^* i# _8 M9 ^; ]5 R* j d - ;;0 L5 g! X) @* l& v
- ;; Modify Xline6 S4 g/ H( |0 c" u6 o" w T
- ;;" a$ U2 Z( h) f' M4 V" g _9 F
- (defun modify_xline (flag)
: O- P3 y9 m. [( [ - (modify_prop_geom)0 u& D4 i3 d. v' c) A0 c
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
9 G% C' F! Q$ E' p- t) m - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))9 t: z4 } L6 V2 w' O
- ;; Update the Root point.
% R- G V2 j3 B9 V* i - (setq elist (subst (cons 10 (trans xline_pt1 1 0))
* ]# O/ d5 s2 N3 V# y - (assoc 10 elist)
" S. O8 i% N5 i) H* p' {6 _ - elist
! }+ l) x+ n$ }: R& K* ? - )
* r4 R" U4 A L: X& f - )7 J. J5 _- ]* ]8 ~( _4 T
- ;;
P+ Y a9 u' M2 h% N; B6 i - ;; Calculate new Direction Vector WCS4 X, }: Y4 A' S2 j X W
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))) @( _9 n6 f! a! p+ r2 W @/ F$ ]+ g
- $ c! s* v& _% g- J) [
- (setq temp_dir (trans xline_pt2 1 0))
4 n1 n, m/ ~+ O# K$ n - (setq temp_dir_x (car temp_dir))( {, W% V1 Y+ Q9 @# i" z
- (setq temp_dir_y (cadr temp_dir))' H1 ~# u. |2 r
- (setq temp_dir_z (caddr temp_dir))7 C. `8 D$ e ]5 W% @- H
. y& d' h, z4 \ Y7 {& U& Y6 B- (setq temp_xline_pt1 (trans xline_pt1 1 0))
; {: q( y8 j' S2 H n# x3 u - (setq temp_xline_x1 (car temp_xline_pt1))) c. ~1 o# w4 W% e6 `
- (setq temp_xline_y1 (cadr temp_xline_pt1))
# O3 ?* _3 s' X& e - (setq temp_xline_z1 (caddr temp_xline_pt1))" q- j1 x) y2 y( s7 P8 C
+ R+ D0 {5 r! R/ Q$ Z7 N& a8 d- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
" j8 N. p4 [ l2 t) P: E - (expt (- temp_dir_y temp_xline_y1) 2)
; R; e, M7 [: S/ W: W - (expt (- temp_dir_z temp_xline_z1) 2)9 l; z( u0 v+ @5 ]2 g; G) i
- )))
) D& {6 @* X" V# w- \$ k, v - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
" Q* g% w3 c j. q/ y, x4 J" L - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
: S8 t) _1 o9 _ - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))& A5 O! i$ ?3 N6 G, g7 w/ g
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))4 X5 @+ |" Z* O
- (assoc 11 elist)
! r% ^) g S, }- Q: c - elist
( q) Q$ i3 N6 j5 I6 W' v - )
1 |, L) G) K M1 v - )
1 y! e9 j- q7 y | g" a' P8 u' F+ V - (if (= 1 flag)
j2 l3 k) D1 D2 ~ - (entmod elist)' O8 X$ J& C6 l9 F h
- ); B! j; i' F, P7 K
- )
' b5 u+ D/ P* e$ u - 8 Y& P: K; a1 b
- (defun ddxline ()/ w) s/ l8 |; b& U
- (if (= etype "XLINE")- z! `0 K1 M. Q
- (if (not (new_dialog "ddxline" dcl_id)) (exit))& k' v& e+ \4 \
- (if (not (new_dialog "ddray" dcl_id)) (exit))9 j2 n9 J. ]! G* G! f3 @1 Q
- )$ ^6 F' U+ ]; S8 H
- ;; Set initial tile values' T' h, V7 M+ u" |
- (set_tile_props)% v$ T* t8 Y+ i g
- (set_tile_handle)5 \% `+ Y1 U8 ^% d7 R# H
- (set_tile_xline_pt1)
8 h" Z7 t8 }7 _) z; _ - ;; Convert to UCS and post Direction vector.$ k7 J# b" C+ c4 S, @" s9 i8 q
- (set_tile_dirv)
* G$ a! W' ]* S- v+ ~7 r - ;; Calculate second point by adding Root Point + Direction Vector.
. }5 O0 r4 L/ J1 w; c) ?, D6 t - (set_tile_xline_pt2)" U! _" t" p# M* A6 y2 h
- ;; Define action for tiles
, R' }8 F. x3 U, l' i! j - (set_action_tiles)
1 w4 m1 d5 M& V3 { - (setq dialog-state (start_dialog))
- H) v; c! E( {# p5 I - (if (= dialog-state 0)0 @! W' t- L4 A7 b( A2 e. n/ G
- (reset)
2 N3 D) F" O5 X+ Y, s3 q - )
P2 ^* t5 P9 P6 ?, G) \# g6 O# W - (if (= dialog-state 3)
+ J3 v% C ?- f$ v7 C - (progn
+ [- }9 V. @# K( Z f1 M7 b - (modify_xline 1)
0 s6 g( q+ {: k. k1 C7 ] - (while (equal xline_pt26 S1 M% E+ u$ y( v0 [+ w5 |$ s! i
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
/ m% c# [! o9 S5 n5 Q! A/ X - (princ "The Root point cannot equal the Second point.")
' o% P' a- P7 h k. [! [' Y7 { ~ - )9 t" u, ^/ t9 [, y+ O/ L
- (ver_xline_pt1)) N u4 ?2 z' b# i* H& j
- (ver_xline_pt2)3 {) B& I, i- i: `* \& x% T
- (princ)0 Q C5 w5 u7 @( i* [
- (ddxline). N- R) z9 D6 h( U( s3 H" _
- )$ b# P. R& A6 r+ R4 Q9 _
- )
# J6 B+ r2 p4 H3 O; J - (if (= dialog-state 4)
, G& |9 P! H5 p( k: d7 A - (progn/ n2 ]- ~' C7 O( u$ O% p
- (modify_xline 1)5 A& X* n6 a% i# C, f3 [" O8 ~
- (while (equal xline_pt1* w7 V/ {5 j7 ^7 c3 l
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
3 U6 U9 ~% k7 D" h; d - (princ "The Second point cannot equal the Root point.")
9 U* G9 Q/ G4 ]8 _ - )6 I/ o# V" V W7 ^% e- M
- (ver_xline_pt2)0 y8 C9 l' v* Q, y! d
- (princ)
: R% b( I2 @2 T) l/ i' b% b4 E! ~ - (ddxline)3 R9 h5 h( v- O3 X: X1 ~
- )
0 N& ^- [% R, E- u6 _, i3 S$ } - )- P5 ]# P/ n2 U* e; ?6 r
- (if (= dialog-state 1)! D7 H& Z/ m! T3 e( U
- (modify_xline 1)
0 C7 Z" x9 y9 x" T - ) \4 N m( z% F* |7 {, }3 z: U0 o
- ); }3 x' b/ D) L2 R0 `3 q. d
- ;;
- j$ w3 H6 X7 ^2 B+ H3 ~% r - ;; Modify ELLIPSE
, c$ }% r/ v1 R' I - ;;+ E! h& G- g6 L* }% Z7 i. [4 \
- (defun modify_ellipse ()( x( r1 x8 e* J$ W! y1 L+ l
- (modify_prop_geom)
" ?+ \. {& T$ G - ;; Update Ellipse Center Point value.
& R7 F- K9 C% ^* N - (setq pt1 (list x1 y1 z1))
# B4 h* U6 A3 B* _, w: S! l - (tempmod pt1 10 1)
4 N6 F: B' s8 W- s- c - ;; Update Start Parameter value.) D7 l+ R$ ?. {! x7 R
- (setq y_val (sin st_ang)); ` N+ F, r, s: T
- (setq x_val (* rrat (cos st_ang)))
/ D7 N, ]/ N6 ^% C: n# I2 m - (setq stparm (atan y_val x_val))
6 ]; A+ {2 |7 `9 r - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))" N; r& R' u* x/ K
- ;; Update End Parameter value. Normalize it, if it's less than
?' v6 @+ E! i2 ^4 @6 e - ;; the start parameter.
+ I3 j) R. z- _3 y p5 E& U - (setq y_eval (sin end_eang))
R: W' R6 u4 ^7 e- L/ ` - (setq x_eval (* rrat (cos end_eang)))
, b- N1 h: g q - (setq endparm (atan y_eval x_eval))
6 E/ D9 h4 H$ S1 Z - (setq diffparm (- endparm stparm))
- ?0 S9 z- P- v, T0 x0 m2 Y. p - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
; U) Y0 L- P4 d0 y8 [- Q) o+ w - ;; Since zero length arcs are not allowed - construct the full
7 p6 I. T; n2 b3 m - ;; ellipse in this case.
: V. J2 C; C7 D; F - (if (<= (* diffparm diffparm) 1.0e-12)
9 P9 t0 A7 @) Q" n. u8 b - (setq endparm (+ stparm (* 2 pi)))
8 D7 o& n6 {5 ]$ s - )2 \5 I' C0 Z' l2 n2 x% R. t
- (if (<= endparm stparm)
) r" w! w* C! D: E; [ - (setq endparm (+ endparm (* 2 pi)))9 ~- Q; W- B) N7 L' {3 R
- )
& V4 r w) G' B+ M: t2 U - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist )) p) `" _" z# D
- ;; Calculate the Major Axis Vector by first calculating4 c- ]" J( I! P$ o
- ;; a unit vector using the old Major Radius value. Then
0 p+ D1 o* H' a- T - ;; Multiplying that by the (possibly) new Major Radius
9 E9 O3 Z! @' t0 R& C - ;; value to get the new Major Axis Vector value.
# t! S, P7 V+ f f1 H9 c+ g1 I - (setq unitxx (/ xx old_majrad))
. i. d6 X, W: M$ p3 k - (setq unityy (/ yy old_majrad))
! X. }* }! N) A* L* t8 R! O - (setq unitzz (/ zz old_majrad))
% m* i" ?0 z) E6 A+ O" g7 a# z - (setq newvecxx (* unitxx majrad))" y: n5 k7 G! f/ r" @# l( I3 a4 X
- (setq newvecyy (* unityy majrad))
$ f2 X; A' B# W - (setq newveczz (* unitzz majrad))
! T. R4 R6 A* s* I9 N8 z% e" a+ s - (setq newmajaxis (list newvecxx newvecyy newveczz))6 o6 L3 C% ~/ a. Z, [
- ;; Update Major Axis Vector value9 L% ^6 z$ [9 M; l: B$ z
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
1 P! t; t' ?9 W3 @9 h( ^% n - ;; Update Radius Ratio value# T: c. h8 `6 B
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
% M/ H L/ D8 Z6 o* O* O - (entmod elist)/ E2 T% F1 X! M4 {
- ) \3 o8 d4 b* c/ @- V2 S
1 E6 h& L w" @3 k- (defun ddellipse ()
) _0 F8 I3 R( D1 p& a% ~: K - (if (not (new_dialog "ddellipse" dcl_id)) (exit))
/ x# R- q5 K- u" p' [7 \ - ;; Set initial tile values
+ J3 V5 T7 D3 z/ R: o1 l5 b - (set_tile_props)
+ T0 ^7 G) w& l4 X" U - (set_tile_handle)& u# l4 X7 D7 @8 i9 u2 A, s( z
- (set_tile_pt1 1)0 G# ~; j8 x4 B; l
- (ell_calc)( F- T* O2 e, @) f
- ;; Define action for tiles* n4 q( _5 f! p1 K
- (set_action_tiles)
; J) X3 c/ D% @8 U% |3 ~( l - (setq dialog-state (start_dialog))
, ?. o3 n, ]2 F Q- c, `; ]/ f0 H9 ] - (if (= dialog-state 0): b$ p( \) E6 O
- (reset)7 Z* {2 P0 @/ ^* ?+ B
- )9 a. v* ]% U$ U
- (if (= dialog-state 1)! {9 x3 @& N6 |; U* O# m2 @( m. ^
- (modify_ellipse)
4 N+ N. S" P6 I6 f6 V2 \ - )
6 z1 h J) j G% r7 |* ` - (if (= dialog-state 3)
9 v9 R7 f" f2 p% e" Y) ? - (progn5 F c, l" A2 w, w5 ?7 I$ v7 P
- (modify_ellipse)# k. O1 j0 ]8 V4 \2 x
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))! i: J- O/ a5 z
- (ver_pt1 1)
% e p% W+ `( `) \! n/ \/ l - (ddellipse)2 p: _/ B" c* `4 Z
- )% C1 c" x v0 [8 ]
- )/ k$ W" D; W) ?& ^; M
- )
) Z0 C/ R, E: s1 ? G* s b, X - ;;" W: k7 u! O1 W s
- ;; Modify REGION6 m: D3 R# M! Y4 x* I5 |
- ;;
5 y' m8 Y0 P6 ?1 ~, d* H$ _) f3 r - (defun modify_region ()' p. B( S8 M* K" C: x8 @
- (modify_prop_geom)# _7 F9 {1 Z5 q$ g4 x
- (entmod elist)
g, ]6 w2 y+ b% v. n* D+ @ - )9 z4 _- R5 {3 ?9 ?2 f. _
- , k& \5 q* d4 o3 _- h9 c# j* `
- (defun ddregion ()
- K+ i' @/ R6 q4 k - (if (not (new_dialog "ddregion" dcl_id)) (exit))
, F- b+ [6 a+ _- _% g" Q - ;; Set initial tile values7 {$ W* e" ?7 \. k7 y0 _+ d& t
- (set_tile_props)
' S ?" v3 |6 Z. F- z - (set_tile_handle)
9 E* n0 @; G9 p' r - ;; Define action for tiles/ i, N# r! G1 o1 n# n4 f
- (set_action_tiles)
& [" D) g7 m3 j4 T( u! q& _ - (setq dialog-state (start_dialog))9 K* y9 @7 n9 P. J( p* U# y7 a
- (if (= dialog-state 0) S u1 }' e4 f9 \: K- T4 {% C# N
- (reset)& L# H$ o9 |. o. _
- )6 j3 ^, \2 H6 w- X
- (if (= dialog-state 1)
1 T+ f. N; r4 L G) W - (modify_region)% ~$ k: ^3 r* V
- )
3 p! p7 ?: U( a8 {$ `0 o4 e - )
) x3 b/ ]+ G4 x5 S7 _( S - ;;/ D$ A# Z: b- @6 a! b4 P+ ]6 X
- ;; Modify 3DSOLID* k1 W- r4 `! f" G
- ;;
! R+ u% p, v, d2 E - (defun modify_3dsolid ()
; V, g8 S% O0 ~: I0 _) G - (modify_prop_geom) h, e. p3 v Q
- (entmod elist)" e+ [7 a1 t1 l! O+ g
- )0 J: j) A, l' k2 z5 e/ H
- ( t2 M# W% I# v* H% D" O% G
- (defun dd3dsolid ()
+ A: x; t' u7 D - (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
/ F/ {6 N2 s& ~. m' l M7 z - ;; Set initial tile values
+ \ j+ S/ s1 ] - (set_tile_props)
" |4 j' g+ ?; T D - (set_tile_handle)
* I* `' c) x* Z' n' T - ;; Define action for tiles" n0 s# c" e6 z* t/ }
- (set_action_tiles)7 }0 i* a) v9 R
- (setq dialog-state (start_dialog))& _/ @8 N5 B, C
- (if (= dialog-state 0)( m1 J, y2 E1 U2 J* Z0 E
- (reset)
4 e, l4 A9 h1 q; Z - )! o( N6 L* [4 l: p% l5 p, s1 m
- (if (= dialog-state 1), b. \, M/ W+ D6 e
- (modify_3dsolid)6 b, X' r5 Y3 t& P9 f
- )
9 j" |9 z: R; u. l - )
( |0 k, ^2 S% i - ;;5 E: ~# }8 [, J1 E* B, P* E. F
- ;; Modify AcDbHatch' ^$ J |4 t: _' _ [
- ;;
& k8 J% ]! V/ } - (defun modify_hatch ()
2 h& _% a/ _5 j' k - (modify_prop_geom)
[% r$ B& r* K( m2 g8 Y( D1 H - (entmod elist)
' t) a# i# i; B: T - )- f& l: n/ Y2 S
- & i( q/ k7 J* c! m# s
- (defun ddnewhatch ()6 r- k2 R0 H1 M8 J" {
- (if (equal hatch-elist nil)7 S, |* \) o X1 `, H) F- Y
- (setq hatch-elist old-elist)0 M0 c; s9 }. ^# F
- )
8 C: r D1 K. b6 }! j) Y - ' f% o" L% y8 Z& [
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
( y5 U! |- N M, _& n3 i - - r' y, M" e( A% p* @/ s$ _- S
- ;; disable the thickness tile
/ I2 _; @8 K# J' J4 M - (mode_tile "eb_thickness" 1)% @1 F/ T: y$ O( s; n& u; R
- (mode_tile "e_thickness" 1)
: h8 E$ j' F2 m( x* C" h+ [8 `4 n' w2 Y
8 z& t: [% }! C* ]' E% a8 c& B- (setq help_entry "modify_associative_hatch_dialog")
5 P" J% U! S8 }6 C% q: z1 D8 z$ R - (set_tile_props)
7 T- w( Q u4 |% M( ~& ]& X! V - (set_tile_handle)
! A1 \! W/ I. B9 M
. p# l+ g0 \' S% _' k- ;; Define action for tiles
4 ^1 q+ V0 H5 y3 M6 x. k& b2 r. ? - (set_action_tiles). r" g4 {+ }( X6 L. {. {
- (action_tile "b_hatch" "(done_dialog 2)")$ W7 A5 A u: C. a7 N! @2 D0 Z( v
- (setq dialog-state (start_dialog))' ?5 @5 L' O$ J. e1 p8 E
- (cond
1 R H% e9 w d - ( (eq dialog-state 0); R* \. _% m: z9 Q
- (setq old-elist hatch-elist)
, ~. ?8 | ^. ?& l) j H6 L' ` - (setq hatch-elist nil)
% ?7 N' p* b# ~0 g: l7 O4 Y - (if (= (checkforlockedlayer ename) nil), z0 r7 N# {6 I! C+ S2 g% |; p; d
- (reset)3 H5 L; y! s- M+ O, m8 H% N5 I
- (progn ;;; special handling for locked layer reset
" ~ a8 g5 e8 n" n$ J4 b3 s5 h: _ - ;; unlock the layer* L& ~/ N! H, D
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
* k5 G5 m* ^3 z V2 b0 f7 a5 x - (command "_.-LAYER" "_Unlock" layername "")% x* A3 K$ `# S2 U! J
- ;; reset modifiction5 l7 K" p8 A O: B, U" {
- (reset)
5 u3 e' s; u% X9 W8 {( T! d5 b - ;; lock the layer again
# Q. s7 _8 X8 ]( H+ s4 t' e - (command "_.-LAYER" "_Lock" layername "")
6 _+ B5 H% i" i% a( u7 L, T - )! q: ?2 m) o O* J7 O
- ) Y2 |1 C4 s0 n d2 d1 G/ E# p1 \
- nil ;;; makes (ddnewhatch) return nil for Cancel8 G' d, I7 P; I. p5 y- N, y
- ). T( t9 K1 ^( K0 k$ ?0 V7 b
- ( (eq dialog-state 1). w1 _. \4 m+ p u1 w _+ X
- (setq hatch-elist nil)) x7 c- _1 a0 V+ x/ t
- (modify_hatch)* \0 M2 y- I% {: I4 i* y9 A0 x" k
- T ;;; makes (ddnewhatch) return T for Ok2 C ^. q) u5 i
- ): V1 Z8 }, B$ u7 ~- n$ ^
- ( (eq dialog-state 2)4 A( f' V$ x4 N4 {8 S* { u
- 8 n. z+ C6 ^# D3 o! y7 S3 i) K
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
i, Z3 Y1 `0 ]# u; U+ ? - 45 U* J Q7 w0 X; B. Z) y9 C0 C
- ) # T) s) u9 Z4 T, Q5 c& E: `8 T
- ;;; new selected layer is on a locked layer
2 B5 h3 P0 S3 o/ b: ? - ;;; we can simply modify the hatch properties$ S8 p" k5 {7 }! Y" Z# r+ J! }
- (modify_hatch), w( f* B9 [1 r: m$ n6 ]% n
- (progn2 n+ h/ N2 S v1 x
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))% y* J1 g8 ^$ U* S% e% m6 K
- 42 a2 ?1 X/ z& z$ Y3 x; N" G
- ) . N3 E" z! W! \- i6 \/ U8 Z7 G, s
- ;;; We changed the layer previously and now the hatch lies on a locked layer.0 \4 W/ `) U7 v: l( C1 h: B
- ;;; We have to unlock the layer forethat we can update the hatch properties.% L1 w" {. ?# Q" G1 o* [/ g4 ]
- ;;; If we don't do that (entmod) fails to update to the new layer.- Z3 z8 W! p( W4 V0 m; g+ |9 l# F5 e
- (progn
! X9 m9 G0 w1 J - (setq layername (cdr (assoc 8 (cdr elist))))5 D( h3 k# C: j# Y
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
/ a- M9 j$ r7 L5 k4 C - (modify_hatch) ;;; update the properties
4 }/ C1 U$ s9 A) c - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
" s- Y& f* s. n6 T& ? - )" y F6 ~/ s& e# _3 o7 s
- ;;; All other cases we simply update the properties( _& d6 u ~# B" R& _
- (modify_hatch)
2 c+ w' f' W) {( j* f - )
* v8 h6 k! {1 K" {5 H - )2 |5 ]' \# S" G! n! `
- ) 1 v* p+ E0 Y- B1 V( E
- (if (= (checkforlockedlayer ename) nil)
# A% f* b Y- G - (command "_hatchedit" ename)& [$ z* X D4 Y* M( ~6 B! X! { x8 g
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
* ^3 }" f/ k& U) ^2 u - )0 V0 ]8 Q- L$ g( W2 V
- (ddmodify ename)9 Q& u: M# h. B$ I8 V
- ) W5 z) T8 \: K
- )7 d: w4 L" _% ^/ {: h6 n
- ). ?; A$ H3 A0 L/ `( _: K
- ;;& m0 ]) p) f' a1 V
- ;; Modify BODY
/ y% S) B; q4 ], `. M+ Z I - ;;
% [( W, Q$ K" |& {/ m7 N/ _: d( q: e - (defun modify_body ()9 I! ~& X+ I# b
- (modify_prop_geom)
5 N, j% `+ T& i. d - (entmod elist)
" ]# x- N% y+ a1 p# a - ) y5 u$ {1 v" D# \ l. z
, ]+ N$ ^# Y, g- (defun ddbody ()! O. Y& u0 Q* U8 @8 q% x
- (if (not (new_dialog "ddbody" dcl_id)) (exit))
4 y \) x3 C" {) G - ;; Set initial tile values$ c5 ~8 z3 i' L
- (set_tile_props)+ A' N, `3 G( @: |. a
- (set_tile_handle)4 u) P: {- i4 |/ R% ?
- ;; Define action for tiles) O t! c* v' l! x b: u
- (set_action_tiles)
6 I9 O% Y# C* s+ U - (setq dialog-state (start_dialog))
# K& S7 l" P6 b - (if (= dialog-state 0)5 K+ J# J1 {" O
- (reset): {8 i k0 z: g; `3 q& P
- )
/ K( t% }1 ~0 {; u) | - (if (= dialog-state 1)5 D1 }) \8 P7 \! G
- (modify_body)
. n8 I/ L) @: F% _ - )
! J B6 D& {* c% D1 L - )
. ^9 W5 `1 ?; c1 l3 S - ;;
# T4 J4 q |+ Q* b& S - ;; Modify CIRCLE } D' ?9 @9 H" }
- ;;# ]2 ~, A- |$ z2 s0 X- ]. m# T& ~
- (defun modify_circle ()
: ]. m$ a5 W* n; d3 ^% u8 t - (modify_properties)9 j& G8 i& K4 C1 ~$ w. ~9 Y- p
- (setq pt1 (list x1 y1 z1))
/ t/ v5 _4 e3 b: ]: o/ t; i3 j; z% ~8 n - (tempmod pt1 10 1)8 S+ ?6 Y9 w8 {7 K
- (tempmod radius 40 nil)6 [2 C3 a* z" G# E. L
- (entmod elist)9 p! _9 {* s- W0 d* c
- ); _9 I" s! N, I4 }# C! R/ Y% e
- ' {. D5 o$ C$ B; O9 ]& V+ L& P
- (defun ddcircle ()
$ [. Y6 d5 A1 ]* S6 }; F4 g - (if (not (new_dialog "ddcircle" dcl_id)) (exit))0 ]* i5 H1 p: V9 A& e3 \( k$ `
- ;; Set initial tile values
; a Q: s Z8 I( O1 V - (set_tile_props)# Q; j5 N9 y/ k+ Z7 C
- (set_tile_handle)
% A- Z' F& F H" h ^- T - (set_tile_pt1 1)
1 W% z7 B1 K7 a - (set_tile_rad)
; ^: ~( l5 a9 C z8 h. i - (cir_calc), u, [2 d2 v8 Z6 g4 f5 _
- ;; Define action for tiles* T! j o9 Y5 O7 j% {1 X# M
- (set_action_tiles)5 q4 l' U" Q1 F. c: x8 y
- (set_tile_pt1 1): d0 V* b0 Q" B: y( t
- (setq dialog-state (start_dialog))' X. a' V1 J: y# }# f4 O
- (if (= dialog-state 0), N5 Y, [) `) Z s* b9 y2 v
- (reset)- \4 q, Q2 X |! b- k0 L' e9 k
- )
; b* o% R: o" R. w# h9 Z0 X" n - (if (= dialog-state 1)
5 Z3 X2 o$ ]/ h V- V' i - (modify_circle)
) e$ |: O& |2 D) T" z/ J5 B4 T - ), a+ s0 Y9 q* _5 b
- (if (= dialog-state 3)+ X2 s7 m2 s9 p
- (progn! l! I" a3 c, h" w( R1 Z
- (modify_circle) N x1 f2 V- Q2 r
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
2 f) B4 Z c3 J - (ver_pt1 1)1 l1 ]7 R" j; e4 k2 j& w
- (ddcircle)
( R! I2 @. J7 Q2 f( e3 ` - )
! M: n0 H6 q% e M) W - )1 P$ _4 F1 Q; a- F
- )% }% ~5 z3 Y: |; g
- ;;5 U( S+ u7 ]2 x7 W5 A7 c! N
- ;; Modify ARC) k. } k$ `$ i/ q" M! V
- ;;
* B, A3 w4 X) a& K1 k; }. @ - (defun modify_arc ()0 h1 b& I. j! l3 k- u
- (modify_properties)0 L6 I$ u6 P/ {5 J5 M' X' ~
- (setq pt1 (list x1 y1 z1))- d" Y2 L9 F( z- |, r! G
- (tempmod pt1 10 1)0 a3 m6 I4 Y! v6 s5 a
- (tempmod radius 40 nil)% Z. v1 C8 T2 o% `
- (tempmod st_ang 50 nil)0 J* c# B0 _ m6 a
- (tempmod end_ang 51 nil): Q+ O& E( B/ _; h
- (entmod elist)
. Y. p0 Y2 I0 v$ P1 |( m- ?0 W& ~ - )) h$ s: x; g' L+ C( e* x d- R5 k
- (defun ddarc ()
" |7 G+ s+ g6 u- j% B: G - (if (not (new_dialog "ddarc" dcl_id)) (exit))! Q. \6 ?# z1 T( o; J7 z0 n. \
- ;; Set initial tile values) h P- u# R6 a" Q( k' n/ Q; N
- (set_tile_props)7 ]2 @$ E2 X( l7 E
- (set_tile_handle)
; J! q5 F( |1 b$ D" n( M$ p) _# d! r - (set_tile_pt1 1)& H2 j$ K W- [1 R
- (set_tile_rad)
# ~7 P( j- o. ]. f - (set_tile_stang)# t" M Y: W/ A4 u
- (set_tile_endang)- K) I) H% G* u
- (arc_calc)+ G2 V6 s7 X' }
- ;; Define action for tiles3 k1 N6 N& m, h6 p
- (set_action_tiles)
+ X/ l6 X" C5 H* l" F" e$ X1 e - (setq dialog-state (start_dialog))
/ f! o1 s6 C' J6 H! | - (if (= dialog-state 0)
& N- r; M# C7 P/ s/ b% r - (reset) f. L; J" W, x; L' v1 ~' h. @
- )& K. o$ V$ F9 v9 J' P. m
- (if (= dialog-state 1)* r1 q9 M! U3 ]2 x* s- I
- (modify_arc)2 p# b" ]% Z. y& {
- )" o8 e/ b. ]5 x3 F
- (if (= dialog-state 3)
" j* d' S1 Y" v5 y3 k - (progn, h: y. E! @- o0 V. w% X
- (modify_arc)
: P% q' v4 z$ y/ L ~ - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
- u6 G: g; j; |2 U7 c7 |4 O - (ver_pt1 1)
& C2 P, e U1 x, k - (ddarc)
! h" n& ?3 g+ S - ); F$ g% I/ A3 ]( o* x
- )
( O1 ^/ P' `0 H- N9 s/ @" o - )4 Z! Y% Q8 r0 T: t, f9 \
- ;;
$ c% W7 S1 u' j! d6 |/ w r - ;; Modify SOLID or TRACE
' M+ g9 a( b# i8 a9 b - ;; Note the Z value of the object is determined by the Z value of the fourth
+ \ I; r+ J a - ;; point - code 13. Changing the point values of a solid or trace from a UCS
) H, j& ]; r% F$ b$ e8 s: A - ;; that is nonplanar to the UCS the object was created may confuse the user.4 ?# Y- `+ t3 ^2 I0 g
- (defun modify_solid () P9 y7 w$ L9 H7 [& z4 l
- (modify_properties)
g% h" b0 b$ d# @# k3 R$ O, v4 p - (setq pt1 (list x1 y1 z4))3 O* x( P. Q2 u, Y
- (setq pt2 (list x2 y2 z4))
! g4 c+ R# T) A' Y# ` - (setq pt3 (list x3 y3 z4))
9 M3 [& _# m7 h/ h4 Z+ U. f - (setq pt4 (list x4 y4 z4))
. I" c9 b" f$ Q- q8 T" N! C - (tempmod pt1 10 1)
E9 s2 R/ u8 n3 d' l" { - (tempmod pt2 11 1)8 [3 \3 \$ h4 G5 [! Q" l: J8 D
- (tempmod pt3 12 1)% F& V# W/ B" `3 O7 P1 O# \+ m/ k! A
- (tempmod pt4 13 1)
! `: a+ X5 S0 v7 ~! }7 Q4 O' } - (entmod elist). ?# Z6 n' G. d" L7 M3 y) a
- )
3 A' X |/ N& q1 i) ^( P# b) {) y8 i - ! U8 w; D. q0 b/ i5 `
- (defun ddsolid ()
5 L( p3 U! Q2 }, m/ g; U3 ?2 i - (if (= etype "SOLID")
& h6 E6 b/ Q G- ~: y5 G - (if (not (new_dialog "ddsolid" dcl_id)) (exit))6 b8 V! J- m8 L# E% Z; R9 l/ q2 b
- (if (not (new_dialog "ddtrace" dcl_id)) (exit))* @7 x8 N0 t( O2 k6 c" H
- )
5 q1 ^1 B# P L5 B* U p0 a5 ` - ;; Set initial tile values
2 i J2 k3 `% H! k - (set_tile_props)
e k4 n% L4 s, k+ c. s - (set_tile_handle)# S& F2 L' \+ N. {. J4 R
- (set_tile_pt1 1)
$ X" S% z% O5 _2 h8 m. ?' V$ f - (set_tile_pt2 1)& x; k a; j; J8 F: K e1 W
- (set_tile_pt3 1)
' u. }# w) [$ {3 e2 ` - (set_tile_pt4 1)- M# v' C9 A0 `2 X# v" l8 {
- ;; Define action for tiles& I9 D7 T; n o: I) t9 ~0 ^
- (set_action_tiles)6 O4 O2 \' w0 }& V$ }
- (setq dialog-state (start_dialog))
9 i0 y" q8 a3 R* A! U& L( W0 K - (if (= dialog-state 0)5 w- A7 m% @0 T
- (reset)
" r0 o9 F( Z: I) z - )
; ^8 I) s* f: O# [! R5 ^2 z - (if (= dialog-state 1): f. h f' c# f) K3 g
- (modify_solid)+ R+ t, q9 s- z+ o
- )% K$ H1 k- Q p9 b7 R8 x
- (if (= dialog-state 3)
3 _+ \% a' G/ B5 ]+ ]# _8 v% n% K - (progn9 z# ]8 _: p% L7 ]: U$ `3 v; n
- (modify_solid)! x0 ?4 s. ~. o( d, y9 o% |
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
% I$ s9 k, Z+ y6 Q$ d! ?" G - (ver_pt1 1)- \3 k- i% w6 T8 f( J6 j% O
- (ddsolid)
3 \% z5 V4 U. Y# O$ Y q: ~ - )
$ A, V; ~, Y! D- I* e - )
2 L0 p8 A# [% Z" k/ h8 N$ i - (if (= dialog-state 4)
" k' w8 V7 @# w& I: _ - (progn1 |( O# `! |0 T4 e" G. }- p
- (modify_solid)
' e- q- A R" G5 q - (entmod elist)5 g1 ^6 p3 P4 N
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
7 T2 a& ?8 m( o- w - (ver_pt2 1)( P4 W$ v! K% r5 u# n1 u
- (ddsolid)
# p2 @; U, W8 b: _0 n+ a% N - )
: J' S, H+ \: }! e2 u0 _ - ), j4 x# D3 Y: l0 l( Z) T3 @
- (if (= dialog-state 5)6 m% @" N) w' \, C5 ~1 o
- (progn3 y2 F- A' n. P4 }6 J* R2 g
- (modify_solid)$ Q, N9 ^! g+ f7 v% e; N
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
6 v# b3 @7 s$ P - (ver_pt3 1)
! m' z) g4 E0 [& ^. K5 x7 X1 x) e9 [ - (ddsolid)4 `+ L }) M- J X
- )" h+ |8 U& U$ y4 H: s( C2 I
- ) g: c/ l0 X5 R, {
- (if (= dialog-state 6)
5 t7 j; d) ?" Q- O - (progn
* X% ?( u, R# Q5 Y0 n/ D D7 Q - (modify_solid)
5 v7 Z' ?7 n8 ^+ C' N8 ?8 | - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))7 S: Z3 b( P: |( @6 s, I6 `: b* X
- (ver_pt4 1)* _9 ~" k: U1 `4 M& p& k
- (ddsolid)" B1 y" V3 P; j( S5 V" T" g
- )
" _- E* e; g3 Y- }. ]2 L) c - )
9 x# }* A7 Q3 U8 C, ]7 R" g - )1 T0 T. V6 {, X3 D
- ;;- c4 Q+ A: R1 N+ m ]" y: w* o
- ;; Modify 3DFACE
7 L6 X, E' k+ @- @6 l - ;;0 ^( }) B" o( n- c6 V
- ;; Check visibility of edges
& d; B) G$ q( `) ?& k - ;;
) R. O, F" `& J% m - (defun edgetest (/ bit1 bit2 bit3 bit4)( B" L; k: F9 z
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1)), B7 C, Y+ f0 Y* [
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
6 q; {5 z. v7 Q$ \ - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
) |% N7 q) u- x K9 t5 k3 D - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))7 T2 p! Y9 a% g! c
- (+ bit1 bit2 bit3 bit4)& \0 Z( @; K4 ~; c. a* J& I
- )
5 t% a- O& e- g8 k I4 l% J# C - ; J& x! W! @; Y$ I# b9 o' _/ _* [
- (defun modify_3dface ()
" o* {0 Z W3 y7 T - (modify_properties)
% w/ Q& j) ]3 z' \: Q - (setq pt1 (list x1 y1 z1))
# ^' L2 R" h! o9 k% E - (setq pt2 (list x2 y2 z2))
/ k9 k( A+ ~' C! p3 @ - (setq pt3 (list x3 y3 z3))
' g i$ I; h, S/ T& h+ ~% R. e - (setq pt4 (list x4 y4 z4)). {' O; v% y6 ~# ?/ n. E# @ d
- (tempmod pt1 10 0)
+ E. [/ N, g# }6 F( r$ r - (tempmod pt2 11 0)1 ?' V/ f6 ~" u) c7 Q
- (tempmod pt3 12 0)
! J* R8 T$ Y0 ~7 Q5 n! X' ], k - (tempmod pt4 13 0)+ [1 d0 |/ q" ^: L; D) E
- (tempmod (edgetest) 70 nil)5 O5 G4 @8 P0 o7 l; v. F' Q
- (entmod elist) M, M+ R B4 u( u, ]5 n U% M( R# H
- )
% s/ D5 \6 V7 ~: V0 H _ - 0 H8 A3 K; r9 W; S9 L1 Z7 A d
- (defun dd3dface ()
( d$ s9 M; h" R9 C- D0 g7 ? - (if (not (new_dialog "dd3dface" dcl_id)) (exit))
$ [# H" \' \; ^7 p% |( ?- R J9 h - (set_tile_props); d2 M( j. H! `7 \: f0 T
- (set_tile_handle)
$ c/ J5 s4 ^, K# ?8 A - (set_tile_pt1 0)
) p; n( V7 ?! }, l y( ]2 r* ^, G - (set_tile_pt2 0)
( r V: n7 K* a4 A# k7 T - (set_tile_pt3 0)
( |* K6 @0 l, L1 v6 d( o - (set_tile_pt4 0)9 Z/ r* z. o' ]
- (set_tile_edges)
& r4 x# ?8 A3 }+ c' T. A+ n a - ;; Define action for tiles. b7 x3 @) s' _# m
- (set_action_tiles)
1 y, N$ \% j2 c3 c4 D/ p+ k# D - (setq dialog-state (start_dialog))
" B0 m2 M6 y2 p5 `6 k - (if (= dialog-state 0)5 d6 u! R, X8 V# u# O# c1 @, C
- (reset)1 W5 v( h8 G4 o; r
- )
; K* k1 E& h0 H R - (if (= dialog-state 1)6 A/ V+ O3 H! D# H( h0 g
- (modify_3dface)
3 p9 l8 @& l- k& W0 A3 j$ e3 S - )
& Y& Q+ z) u: M- \# c* W) q - (if (= dialog-state 3)
! ~( p* x x) o$ s1 V' i- @ - (progn
* U2 y w" P# O9 \( P8 \ - (modify_3dface)6 U' D* b1 t2 w! _, G. L
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))! R6 _ g4 |+ @/ b1 K
- (ver_pt1 0)
7 `! o! O5 f) j& j4 j! e - (dd3dface); P# k& W, L( R+ K4 w
- )
' x" q0 y4 m& a - )7 D' T) @& E7 c& a6 e$ q' b
- (if (= dialog-state 4); A2 t' p1 p0 k; |$ h6 V
- (progn' c: M- ~. T, U# I
- (modify_3dface)% I7 s1 `- |* m2 D r3 y
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
- t1 m- F' N! T& |. M - (ver_pt2 0) ]: o8 W9 w E( S
- (dd3dface)
6 Z) _" m1 p4 v - )
7 G9 r5 ~! E. f) O - )# c; C# e# P1 L+ t# o" ~( D
- (if (= dialog-state 5), \6 v0 c# c; l: J
- (progn
9 q6 o) |" K# u3 j! ]$ o* u. `# i - (modify_3dface)# ? d, Z) G% X, ]7 `/ J9 Z% o
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))1 L' Y' c8 [0 J4 |
- (ver_pt3 0): o' b2 X& }: n
- (dd3dface) x. Z6 g/ t3 ]' f1 `4 ]( R
- )+ z) G9 d5 S1 s7 d
- )# n4 x# I/ S# B/ R* `% A0 P4 f
- (if (= dialog-state 6)
2 Q2 \7 w e% b. G8 Q - (progn
; P7 |/ C2 S: v7 P5 @! C7 ]3 l% S: n - (modify_3dface)
8 J; p7 V$ W: C$ z2 x8 ~$ {& ^( e. Z - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
$ y& b7 f# i7 i# ~& M - (ver_pt4 0)
3 Q- h6 x7 _' H - (dd3dface)) o d8 s* u( n5 u1 E! W! }9 M
- )" y% s2 Q' t: D- C0 {
- )
6 n% {4 ~) o- q& l: U - )% N9 {/ d' q( G/ n# _! b: y
. o! p( t' ~9 H: K3 |+ T- ;;
- b. t/ ], p- q' I, R: \ - ;; Image functions
1 s; e( q, a7 M5 A8 u8 J - ;;# ~+ o* l) Q: K- I5 u6 }7 h) Q
- (defun image_scale (/ upixel en n userscale temp)
8 V o5 U# G' m* i7 L - ;; Calculate the size of an image pixel in AutoCAD units
7 h. [9 g) g, C: f( O - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
! w& U; B$ l& \5 U* x( I - ; g4 N4 H4 O: Q8 K- i: l
- ;; Retrieve the user scale5 ]- h* o/ b1 D; m3 j+ c
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS")): Y# f" F! M3 F) q8 C1 U' o
- ; X4 \9 O9 o+ U1 l: `
- ;; Next, extract the image units and pixel resolution
5 h a- y* x! P3 v x# O - (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))8 f! T7 S% ^+ r+ R
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))$ k9 y g( \: T5 n' A0 w3 K
- (progn
+ Q) b5 h0 I- k4 n- C$ c8 _; e4 P' j9 w - ;; Convert the user scale to the proper word; w" e6 Z& L- ?2 ]0 E3 B8 r3 o
- (setq n (cdr (assoc 72 en))), v; v: ^7 B2 S3 g' Z. b1 \
- (setq temp (getvar "LUNITS"))" m9 o- ?" f( S1 R: q# p/ z$ n
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
9 ?; p( e7 w9 B7 W6 P5 e) h - (if (= n 1) (setq userscale "Millimeter"))' a* _' }( x" W1 A& {
- (if (= n 2) (setq userscale "Centimeter"))
# | i+ A8 ?% G2 `' I2 w - (if (= n 3) (setq userscale "Meter"))* j2 k( d# N% o0 ^
- (if (= n 4) (setq userscale "Kilometer"))5 z0 I3 _; c/ k" t
- (if (= n 5) (setq userscale "Inch"))
7 `) h% K" w% b1 {( m' c9 a - (if (= n 6) (setq userscale "Foot"))0 x6 K. e. K$ D; q6 Z
- (if (= n 7) (setq userscale "Yard"))
3 D# r" P1 W" }# a2 J% }: }2 m - (if (= n 8) (setq userscale "Mile"))3 R( Y& C: j8 C% L O) n$ J
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))! W5 c9 J2 W% R6 \9 E
- )
8 S% i( o1 F5 I' y* |; y - )
" O' v8 w! c3 m& {" E - )
$ H5 M8 G, T# |$ P1 [- | j/ v# R; s - 3 s, X. `7 \4 M
- ;;
0 e7 `4 x0 X- D6 o7 h o - ;; Scale factors for block insertions5 C# K+ W1 z( y! r5 A
- ;;
# S. }& ~3 l# T! q - (defun image_set_tile_scale (/ temp)& E. U9 f7 }) j
- (setq temp (getvar "LUNITS"))* q- q9 m; V5 O% H$ T7 G% a& h
- (setvar "LUNITS" 2)
' y* a5 c( t& S* ~- C, l* V - (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
) F+ N. U1 x! U, t5 v - (set_tile "wid" (ai_rtos (* image:width image:mult)))" O2 c0 _( {# }6 S
- (set_tile "hght" (ai_rtos (* image:height image:mult)))# H: J7 x1 |% p( B7 t1 c
- (setvar "LUNITS" temp)
0 ]9 |+ U+ d0 j - ). ]0 V: \, z3 ~
; S& O7 M3 |0 g- ;;
! P8 B/ E# r7 Z( y; n - ;; Set the scale, width and height values appropriately.
8 O k1 k2 f1 B - ;;; A4 \5 F* H$ `+ q+ m8 z
- (defun image_update (field value / orig_value new_value mult)
7 Q# [- S9 Q# v( [6 D - (if (= field "xscale")
- ]7 h4 J1 ^" e8 c6 Z. t2 y+ z - (setq orig_value image:scale)/ ` e) C! g. I* G+ k* M; x8 G
- )" O4 b. V$ x! m
- (if (= field "wid")& Q0 \7 X2 l. ^7 N
- (setq orig_value image:width)
2 H( O4 m- ~. K* i- l - )
, U" c$ S8 _% a: X) O4 i - (if (= field "hght")
! o# @/ {* O9 E. o- q7 w3 K+ L; G& R - (setq orig_value image:height)
6 q2 q3 P& c2 d9 n - )* Q+ j3 W) Y" ~ Y
- (setq new_value (verify_d field value (* image:mult orig_value)))9 J$ L4 c" ~& M( {. ~% f8 A+ f3 N9 k9 y
- (if (/= new_value old_value)5 i: Z8 g; S8 [$ O4 E
- ;; Make sure the user has entered a sufficiently large value% J/ c) g& ?6 M- K1 D
- (if new_value
: J2 I# q4 H# A, b - (progn
9 ?+ d* ~' \. z- h) i" B - (if (< new_value 1e-8)
1 c2 y7 b" V/ v0 Q7 ~, K4 h7 n6 W - (setq mult image:mult)2 d% T: V& Q3 D; k& \( ?0 e- @
- (setq mult (/ new_value orig_value))
1 f5 k6 }, D3 t# V* ` - )
/ Q/ |5 N% G: Q - (setq image:mult mult)# B; G+ y; O. x: h) L4 \4 {% X
- (image_set_tile_scale)2 o# G) Y3 q/ f! m2 b0 c; Z
- )
/ Q4 ^, r A8 U& l5 c8 L# _6 _ z - )- Q# J3 \/ i% M9 e& w+ O1 ]
- )
, l' T/ [% R; I; O4 n) | - )
1 g, o+ D; k! r" X# {# I" x' n) T0 _ - i4 I& L% `( w1 S! x# v( B1 E
- (defun image_disp_opt (bit)
" @& \: t, x, ?2 D; u9 K - (setq image:options (Boole 6 image:options bit))( f+ N/ X; C) I# n: ]* G+ i8 Q
- )
v9 d+ ~) G0 |$ N - : ?! M8 b7 e _* z9 H3 `
- (defun image_modify ()2 l" ~$ V7 j; u0 y2 D' M1 r, E
- (modify_properties)
9 Q2 m$ w8 A8 V2 v/ c - (setq pt1 (list x1 y1 z1))* o0 y' D) W7 I( e3 I2 u9 \* _
- (tempmod pt1 10 0)
3 i3 j8 @: k% J3 ^2 h* ]9 z0 C - (entmod elist)
8 S) s* _/ z6 ~* m! T3 q) ^1 O - )
# ^6 n: m1 _7 A Z9 U ~ - / @1 v0 ~' @# @* g2 ^# f
- (defun image_clean_variables ()
" v& @% ]) }3 t7 f% Y$ d$ L3 n - ;; Clean up global variables used here: m( W; c& @% m: V
- (setq image:scale nil): k, v3 Y& \8 }* L0 K2 K: @6 e
- (setq image:angle nil)
" _; ?* z9 L5 O* \/ W7 `+ m H; v - (setq image:width nil)3 Q+ u7 `) ~* P/ o) G
- (setq image:height nil)
6 q( P5 b& d U( w/ d8 \9 [ - (setq image:options nil)0 ?5 K* B9 l* ?4 ]: t
- (setq image:oname nil)
, Q7 q+ |8 v( g4 S - (setq image:olist nil)6 k$ r( j) `) j- h
- (setq image:mult nil)
$ E5 p& v9 A% s8 L; d - (setq st_ang nil)6 w* X6 P* h9 J6 x/ S; X
- )
]- J- t3 R! \/ ]
( S; V3 W9 @' _; m% H3 \1 ^! T" h- (defun image_scale_vector (v1 value)' E* h1 a+ l5 [. V# _
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))/ x& W! ]# r& D
- )' V e4 l8 p: _
- 1 [4 Y y1 R, }8 W. n
- (defun image_cross_product (v1 v2 / vx vy vz)8 K6 v' w0 X$ h7 C
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
* A. F; U8 {# s4 h1 j% K - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))0 S, @# O& q0 B! n
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))6 Z' ?! f+ M/ n5 C
- (list vx vy vz)& ` R: k$ Q/ \
- )
u; b, [! x3 B7 ^; U; q. S
. F- c. I5 g f( u+ j* Y- (defun image_dot_product (v1 v2)
0 N& {& Q% c% {9 v - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
$ V6 X. m% h% \) H* ^9 H9 M u4 E - )0 {7 K. n. u/ g* r% ^0 s1 R5 O
. q* z* W! d: | ]9 @- (defun image_add_vector (v1 v2)
) a, \, W8 D5 F* Q - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))/ F7 r5 y" w" w4 O/ v# ?1 e- ~
- )
2 }) M2 X: p! E! r+ {" }
) U. J4 m& S5 S2 Q- (defun image_subtract_vector (v1 v2), o$ U, m+ O# d, w$ y6 I% \! @4 r/ k
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))8 E. a( c0 a1 O% O
- )2 B4 g% _, Z! m" g2 `7 {/ b
- ; W; G9 p" n( Y& C" i5 C
- (defun image_normalize_vector (v1)3 m5 D/ P! g* N. \$ v- y& r
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
/ [. n5 l2 z) e. i - )
" e5 {. f. v! j/ [/ U& E8 K - ) T6 Q! A5 [: J, }+ p' s) l
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
- R3 Q N! u% d# {! M3 m8 i - ;; Normalize the axis
0 n/ L4 s) \3 g3 n& }& ?- u8 L6 d - (setq axis (image_normalize_vector axis))
* w5 J$ z- O1 H/ u" Z" o - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))1 J C7 r. s$ ~
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))3 M5 ~5 {1 X- M2 E! \# \
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
% F3 ~; E6 [8 b - (setq in_rot_plane) v6 c* h' Q1 H0 T' L) {* Q, y. Y' r
- (image_add_vector% ^; d2 t1 z* I% c% c5 W1 W8 l
- (image_scale_vector axis_x_in_rot_plane (cos angle))2 z* u! Y% U- L' K* ?7 m, t
- (image_scale_vector axis_y_in_rot_plane (sin angle))+ q0 a& @( R$ B9 L' K( K& v; O" b
- )
- v- y0 Y! K3 Z& I3 U. k - )
8 n; @# U8 z8 i - (image_add_vector along_axis in_rot_plane)2 ~( X& \+ H8 `' t, j1 S( k
- )
" c5 `; R, }+ I) j7 \ - ! ?7 J, }( b8 t+ X z6 W8 d
- ;;
1 [: X; ^9 V; b- F - ;; Calculate current rotation angle if appropriate.
. c7 u* g8 \) {9 e9 k - ;; If not, grey out the rotation field.
2 M! V, d/ Y4 M, _* i) ]( s2 m - ;;
X6 y Y5 i0 E - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)# M0 j( H$ j! l2 J n! L
- ;; Determine if image normal is codirectional with
1 S b" D; |4 e* v- p# B - ;; the current UCS Z-vector.% Q4 ^/ n; s1 |3 i% J
- ;;
; [+ E! m' m6 f" h - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
7 e! p2 k: M$ C - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
1 W4 B, f9 T x6 G - (setq zlength (* (last normal) (last normal)))5 x% a$ T% y; k% |* @. \& S
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.% d' J1 W3 G( L- u5 \4 |
- ;;6 {( |4 I- u$ a$ R1 b5 E
- ;; cos(.0001)^2
0 h' c# G, `0 U+ A3 X& b) |! J- T - ;; Tolerance = --------------. V& R6 [& e! G
- ;; sin(.0001)^2
& j. T2 `% Z% d5 @: p - ;;% R/ T E: @/ Q _0 G2 ~
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
9 e8 q' s8 D& p# y5 k* W+ K - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0)) n1 ^! E5 K) g- {* P
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))! a- z x: U, Z2 y+ ^4 w" i
- (progn+ D! M0 G1 c1 j) V' Z2 H% _: i
- (mode_tile "st_ang" 1)
7 x9 Q9 I& I, v* [% G) G - (setq image:angle 0)
, N7 j( H; N1 f' G9 d7 U- o6 d - )# d$ X" X6 Y$ [4 n4 R/ R
- )
% ~! H& z5 S7 q2 I - )
* s9 u5 x4 x+ \- {) Y) ], y* N - . a, \8 V) E2 p6 r. g
- ;;
5 U! C& w# M; ~ - ;; Modify Image
( V9 D3 j W* J. J2 n - ;;" C8 X0 `- A; {2 g& ^: U5 X' }
- (defun modify_image (/ u_vector v_vector z_vector)% o5 ?' R' A4 l. X1 o( A' A
- (modify_properties)
8 X _$ O0 X6 a S' W - (setq pt1 (list x1 y1 z1))
8 Z! q* x( V* G/ N5 i3 ` - (tempmod pt1 10 0)9 j) ?( ~. F4 J& |) n) q# \
- ;; Make display option changes to image
% d% n' w, {; H, Y* k; |& a - (emod image:options 70), ]( H0 S7 l |7 _3 Y8 K. q
- ;; Get the u and v vectors
* v* e- O. V; o9 z0 u+ H1 z- U - (setq u_vector (cdr (assoc 11 elist)))
2 u% W9 e3 V: f - (setq v_vector (cdr (assoc 12 elist)))
3 @; X; u/ y, s+ |( i* I - \8 X7 E* P/ B _8 P/ [
- ;; Make scale changes to the vectors W9 v4 Q5 L- ]. _$ u
- (if (/= image:mult 1)4 ?6 x$ v* Y3 E
- (progn" \5 C0 a* f( d5 J% H
- (setq u_vector (image_scale_vector u_vector image:mult)). r6 h& L3 u4 u; @
- (setq v_vector (image_scale_vector v_vector image:mult))
8 E# S+ w! [+ L- b0 \ - )
& f0 e) R3 S. s5 ]" m/ k6 Z$ Q+ ` - )
5 h5 E8 {$ D. y! k( H - ;; Rotate the vectors2 z- p' e1 P5 w! L4 Z
- (setq st_ang (- st_ang image:angle))/ \5 k8 ~; C- E8 R+ i3 R @. w! c
- (if (/= st_ang 0)
( p& n1 ^+ G8 N - (progn/ C; e+ f* w5 z3 ]
- (setq z_vector u: d; c3 Q3 L6 V% l; r, o
- (image_cross_product
8 Z% a" n- C9 V5 W! G2 Q1 G - (image_normalize_vector u_vector)
# o$ f5 Y) y' d2 ^ - (image_normalize_vector v_vector)( }0 z) [& K. k8 [
- )
, M, r; K1 Z" Q3 J- [ - )
8 `* p( _0 m( ~! P9 b/ d2 m; [1 w - (setq u_vector (image_rotate_vector u_vector st_ang z_vector)) |2 w9 `8 ?: g1 E) x$ Z2 H+ ]
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
0 r7 ^, c" U- m: N% I( T f - )
3 b, i( C! v" p; g3 J) E4 e8 N - )8 {' Q P4 s1 W, f
- (emod u_vector 11)( i; j$ J' {5 A
- (emod v_vector 12)( f+ X/ E" S. F1 w3 C3 \! Q
- (entmod elist). J, { r! `/ A. s2 l" M3 l' O
- )
) r1 w! K( g! L( C* G
, B& M9 x2 U0 V- ;;! P/ D' J, m. b0 [3 o& T* z
- ;; Run imageadjust on given entity, working around possible
2 x9 u3 N& j, y) k9 { - ;; re-entrancy problems1 g* U5 z/ m; Q* V
- ;;
9 E: e" S# }" ~# t& M - (defun image_adjust (ename)* ^; v2 k0 l. c; W" U6 K
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
8 S5 X6 J7 o' I9 C" ?& k - (imageadjust ename)( a, d0 n- e7 K+ i2 d* k
- )0 |* Q. t8 I! M/ i! N
- ( E0 W2 }0 }" u" Y5 Y
- (defun ddimage ()
9 ~( Y; J$ l5 F4 E - (if (not (new_dialog "ddimage" dcl_id)) (exit))
. d ~0 h6 q/ [% c
6 }9 t. \. \/ u; r- ;; Grey out the thickness field.6 M) O/ X& W5 \8 [' [
- (mode_tile "b_thickness" 1)8 c4 u0 {6 V. q' E
- (mode_tile "eb_thickness" 1)
& q/ ~. H5 q# }# t
" A8 H9 m/ s7 d6 K' D- ;; Get the associated def object.
8 p' r _8 Q" \: t - (setq image:oname (cdr (assoc 340 elist)))& ?0 g" H2 D# O' s. P a
- (setq image:olist (entget image:oname))
' M' u0 c* L$ L+ M) y) S+ r) k - 3 v" f& y8 k, V' ^5 C
- ;; Set initial tile values
8 W6 s8 f3 f( I5 B4 w" w - (set_tile_props)
2 k# _" O4 B) m( z% s. k6 E - (set_tile_handle)
8 x2 e9 }! t* n0 \0 v - (set_tile_pt1 0)
5 O. {7 u& X. ?/ A, I! W - (setq image:scale (image_scale))
! {: l" \: g! L+ ~0 z - (setq st_ang (image_rotation)); T1 s4 u% p6 P/ p' P: w
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))
: X. S% V' @$ ?8 J( u - (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))0 ]2 K1 i2 ^! C4 |7 r
- (setq image:options (cdr (assoc 70 elist)))
t, K$ _0 ]1 |9 P% t
0 i! m& g. G* N- ;; Record the last multiplier for use in image_update function: b0 ?6 ~9 g+ h; N
- (setq image:mult 1), v' n* F2 G _6 [. N* U4 [5 {# ` l
- + H4 Y8 z Z! U$ z
- ;; Retrieve the image name' q6 e/ d9 s/ K$ O6 ~) n
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))1 Y$ c: H# a K6 J
- (setq flag 0). b' j/ R6 X% E
- (foreach n fn
1 f* ?; Z) r1 b/ s, O5 I - (if (= flag 1)8 Q( ~! \/ [: p j u3 M
- (progn
4 c# T& Y& n3 v& b8 n* T; {! k+ W - ;; Display the image name/ t; S, ]) V/ ~; U5 ~* O" a
- (set_tile "image_name" (cdr n))
. l F+ T: k( d" D - (setq flag 2)4 g' F8 x$ c" S) O( R; o
- ) x4 M& M6 Q* K/ g9 F3 n
- )
! ]- A' D8 S* f8 c - (if (= flag 0)* ]# R6 q, H: c8 E" q$ M. k x
- (if (equal (cdr n) image:oname) (setq flag 1))
" C, S" c( ^5 V4 L% u [$ | - )
8 @ G4 k( L+ a0 U - )
! M% q- e+ J1 K0 ]/ }. K4 h% D
& Q' R, o2 ~- m) ]" f7 {- (set_tile "image_path" (cdr (assoc 1 image:olist)))/ a) |# Z2 O2 y+ m' {# z
- (set_tile "st_ang" (ai_angtos image:angle))0 R5 h1 q. [: K: t% W0 F5 z# c
- (image_set_tile_scale)$ F. {% K) e' u {; m
- & p% R% R+ D! I2 Q0 p
- ;; Check the appropriate boxes! H4 U) B6 R2 W" Z, x
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))8 Q9 L5 E7 @6 j/ x. V$ D
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))* W4 T, h* g- K
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
, z2 f+ s D; g( ~ - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
- p. v! o. W& {0 y4 h2 T - ( R4 X+ g0 {/ Y2 m7 r
- ;; Define action for tiles. \; W( v1 f% G7 w% H$ f
- (set_action_tiles)" r4 P! L% \) ]
- (action_tile "xscale" "(image_update \"xscale\" $value)"); s6 ~! `1 f: X7 \6 u
- (action_tile "st_ang" "(ver_ang1 $value)")
) j+ x' {* w0 {* U9 H0 d# ]7 [ - (action_tile "wid" "(image_update \"wid\" $value)"): C3 ~, x6 c4 m' n" ~
- (action_tile "hght" "(image_update \"hght\" $value)"): X# b. t* f2 w$ _' j% ?9 E
- (action_tile "image_show" "(image_disp_opt 1)")% E3 |& @; \, O8 ^
- (action_tile "image_non_ortho" "(image_disp_opt 2)")
0 X: P- H, \$ r6 [ - (action_tile "image_clipped" "(image_disp_opt 4)")
9 t& S, D- I0 C; Y9 ~, J& W' U - (action_tile "image_transparency" "(image_disp_opt 8)")
+ z& |, F# p& v7 t - (action_tile "image_adjust" "(done_dialog 4)")
3 ]4 [0 Q" {; {- r( o; n
2 R1 Y( v4 b9 u. A3 e0 T- (setq dialog-state (start_dialog))
0 j' l! E/ w- G, Q! Z5 Y0 a; {1 B - (if (= dialog-state 0)8 \) ]4 ?$ H5 i! a+ D, Q
- (progn: L/ X$ c* p( o- |4 ~8 A# O9 X
- (reset)
" L0 ~5 u0 S% h4 T! `. r& A - (image_clean_variables)) o! L. g0 u. B4 t% d$ J1 M# E8 |& G
- )7 G/ _5 }/ d' M/ g7 n, L; O" S
- ). z, N; ]# @' u6 X
- (if (= dialog-state 1)
$ o0 l# E: O4 w+ y) \# R9 E7 { - (progn
& x8 K8 K- J# O - (modify_image)
8 }, {6 r$ b( k r - (image_clean_variables)* K. f0 t1 ?: c' |: x
- )
( U* P/ Y9 P+ A( d$ g& P8 }1 p1 U - )# y) T% {9 y# k# y7 { R
- (if (= dialog-state 3)
- R) {1 q2 j D$ L; p. M7 S4 s0 V. V - (progn
5 w/ ` G4 n C7 c. Z) i. [/ H, C - (modify_image)
. \! R6 o0 |& D3 I* g - (image_clean_variables)
: x5 h# P3 |4 L3 T; {* S6 Y - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))) u N# S! [8 s7 R
- (ver_pt1 0)* }7 F* `$ D @, W C
- (ddimage)0 e$ Z( `! } P( g" N& b! ?" P# Z
- )
# U t% ?0 w' A. U. K# k - )+ o+ Q: u1 Z9 H) Q
- (if (= dialog-state 4)" y; X7 }- m; }/ Q
- (progn1 ?- p- z1 m# l. ]
- (modify_image)
% u2 u, [+ Q% K8 v# J% A% ^ - (image_adjust ename)
; [3 K" _8 X3 n$ P# e8 H6 W7 @ - (setq elist (entget ename))
% I6 a+ w# F$ a - (ddimage)
3 _. y6 } s+ H8 R$ j9 K3 i. v - ): E9 T* ~# ]5 f4 A' ?+ t
- )
/ a% R, |, ~& x. R6 J6 K2 }* x! ] - )2 W9 z7 B) C2 K/ g( S- ]
/ {0 L) J5 F. _- ;;
# ^- H( N) k- i4 H _8 U, l - ;; Modify BLOCK (and its Attributes, if any)
. ]1 b6 s+ C; T! {8 K& ?4 c$ [ - ;;, c0 f. q4 L/ B Z
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr$ ^. K, X: H ]) D# R
- new_wid old_wid old_rot scaling old_scale
' ^( m" s# W- S - xdelta ydelta zdelta xbase ybase zbase ipos)$ R6 e) ^; U' n. N
- (modify_properties)
$ v" Q! n4 N/ u' N" H& s+ k- v
( z* |: H$ p6 `/ b9 ?3 z- ;; First, translate and scale the Attributes, if there are any.
9 ^# v4 o7 F0 p/ Y+ A - (setq old_rot (cdr (assoc 50 elist))
6 l: S- r( Y3 a4 n9 r - old_scale (list (cdr (assoc 41 elist))6 S/ i( s) m/ e, B: ~* t9 ]& m
- (cdr (assoc 42 elist))# K, Z* i, z) t8 N1 E' f% P( W
- (cdr (assoc 43 elist))6 z/ W* c& C' t9 i
- )4 U4 C& s2 i H6 |- |
- scaling (or (/= xscale (car old_scale))
2 L$ P2 y4 w5 e - (/= yscale (cadr old_scale))
7 K4 v) [! X" Z8 _5 q: o' x - (/= zscale (caddr old_scale))% L e2 _: \" ~1 j& F1 P
- )
7 V( J; n+ A9 C5 d - attr nil ; No Attributes modified yet
+ Q2 ?5 L2 \8 e2 i5 T7 k8 ]% Z& D - )8 e/ `& t7 h$ S* M
- (if scaling
" ?0 K+ s e% P3 g9 S/ P1 h - (progn
j8 Y0 ~7 {) e3 x) n/ y - (setq xdelta (/ xscale (car old_scale))! W& c) O+ f% F+ y, f' O
- ydelta (/ yscale (cadr old_scale)). ?( D d7 U# M4 k/ x% [8 }4 q: R+ V& m
- zdelta (/ zscale (caddr old_scale))3 s0 _) T# m7 Q$ Z
- ipos (cdr (assoc 10 elist))
5 V' r2 z( X: ^, Y9 ]/ o - xbase (car ipos)
7 M+ B2 O+ o# m9 H( S# N - ybase (cadr ipos)% e! y% `3 V. c0 n, ]/ N
- zbase (caddr ipos)% @. B& A1 e( A- ~/ Y
- en2 (entnext ename) ; First Attribute
, F9 o: i. z' b7 C+ f - )0 o$ i: j/ N+ c
4 f F1 z5 k- {8 b7 J1 `- ; If the Block is rotated, temporarily un-rotate it, along
" Q# W4 s( ^+ P' W4 h - ; with all its Attributes, so the scaling/translation of the
2 w: R' C! Z0 F) ?$ t- G/ W' e - ; Attributes won't have to take the Block rotation into account.% ^" d7 ?: U" U) y( g7 z. s( @9 W0 E- ?
- (if (/= old_rot 0.0)
# ]# S. z, g0 \6 W: x0 t# L - (progn8 x: n% p7 x9 E" Y6 C: j2 Y. w
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))* O8 a4 L' U+ P6 |. [' ^
- (setq old_rot 0.0
5 c: B. ]+ `8 ~. O1 p* Z5 a - elist (subst (cons 50 0.0) (assoc 50 elist) elist)! Z, N7 f( V2 T& W6 P
- )
" s9 A. m: P3 Y% ?; ^! L - )& T# [1 F0 n4 U) g- r G! ^. A
- )2 _0 V' K2 K' t# K; \" @
- ! {' P. `# x" }/ l% @
- (while en2( l; M7 L/ V/ R& ?7 k" n
- (setq el (entget en2))9 T" |! n2 O, ~8 Q2 k: ~0 C
- (if (= (cdr (assoc 0 el)) "ATTRIB")
" ]" E4 v% B" M" y - (progn9 M7 L- T9 n# |5 {& }9 H$ T
- (setq old_hgt (cdr (assoc 40 el)) ; Height
9 O: H4 P, ?+ x3 M: t% r - old_wid (cdr (assoc 41 el)) ; Width-factor9 O# A, x2 ]/ [/ r* a
- oldp1 (cdr (assoc 10 el)) ; Generation start point( i" H( L4 P4 J) k! U+ x
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt
! I; ^: D$ L, Q8 Y8 L - ha (cdr (assoc 72 el)) ; Horizontal alignment
& ?- y2 n6 [/ C! _( C9 P7 l - va (cdr (assoc 74 el)) ; Vertical alignment
0 y$ b7 V) x: |" u! X/ B - ( g+ ]5 L2 ?8 l) P) o" f1 ?
- ; Translate gen. start point$ L" p: z% c. w* [, M8 C( y& D
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
* p ]& k7 e& {; U7 T - (+ ybase (* ydelta (- (cadr oldp1) ybase)))
- ]: w1 |4 Y ?7 |5 \8 K - (+ zbase (* zdelta (- (caddr oldp1) zbase)))
$ k% \4 Z1 @. G0 U2 b& B9 B - )
* ` a& Z' V) \" ^9 R# S - el (subst (cons 10 p1) (assoc 10 el) el)
; ^& v$ s9 O7 [4 e W8 \3 k - )2 @6 Z- |2 K& H0 U! O
- * S: H$ X) g0 d( t' b# ?" W
- ; Translate alignment pt similarly, if present and applicable
, h X. w. X% ~" V - (if (and oldp2 (or (/= ha 0)3 O3 n' S2 n5 K* ]# I x' c; y2 A
- (/= va 0)' B7 U# v7 u: \) t% n3 p2 `3 K
- )' r: c/ ^' X0 E
- )
* }9 B* k6 N5 {- B+ R- R4 i! u: q - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
4 f% o% q7 \, j% {6 a4 m) ? - (+ ybase (* ydelta (- (cadr oldp2) ybase)))
! D7 j9 z" {, v: z - (+ zbase (* zdelta (- (caddr oldp2) zbase)))
3 a# ?" {6 y9 _ h4 N; _ - )/ [9 S5 B5 N" |& I' l" H Z
- el (subst (cons 11 p2) (assoc 11 el) el)
+ k1 H- n, y* a( x. O2 d4 |! u5 a! ? - )
6 x2 t4 K5 T4 y- M1 r - )
( }! u( T' t/ `5 Z. ]1 R& W - 3 q+ ]' t. w, @! J. N. Y% _# M
- ; Each Attribute's height and width-factor were computed
/ ^3 Z. B; t8 [- } - ; based on the Block's scale factors. Adjust them now,
5 ]5 M; o) v, W/ o! ` - ; by first reducing to values for 1x1 scale...; `6 e6 Z! {. N4 s
- (setq new_hgt (/ old_hgt (cadr old_scale))9 M$ |; c; P( k5 x0 E
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
& A8 P7 S% u% w3 Q/ s - )8 q% l' M7 `* e5 c$ `3 d2 B
- ; ...and then rescaling.
0 P1 S$ {! f; O" C - (setq new_hgt (* new_hgt yscale)
: A: n6 N# r& f. b9 I2 [( V. d - new_wid (* new_wid (/ xscale yscale))# A5 D0 k/ e( N7 |# u' R
- )' T5 p( K3 @, ]/ m5 [' h& v! w' m
- (if (/= new_hgt old_hgt)
: U; m$ y$ _: N" v8 j) d - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
: C7 l+ i# s* E5 ]+ m - )/ B S/ w) ^& R2 V( C6 D
- (if (/= new_wid old_wid)1 W5 W- k! a5 o* Z
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
" e, e9 R, {! X1 p# r, p5 P* ? - )
1 [0 x5 T( R8 D) D* n1 N( Y - (entmod el)
% [$ ?( y; s* j7 v8 Y r - (setq attr T ; At least one Attribute modified9 f3 ^- X: J5 [* F& }
- en2 (entnext en2) ; Next Attribute
# S1 W/ b1 X! a - )
& R9 S8 L" O! M2 L% P8 I - )# P r: F7 Y: U9 M
- (setq en2 nil) ; No more attributes% C2 D3 r3 W8 u" M9 j. p
- )
/ Y, {; z/ u' Y+ [9 u) V - )
9 E" @! F n( L, R6 P - ), @4 z1 Y0 j! L, N
- )
' \) k ^9 V4 B1 g: T( v3 | - & d1 d" a# i. i* a
- (setq pt1 (list x1 y1 z1))
; j8 t2 P$ D# m( t+ Y/ J7 E - (tempmod xscale 41 nil); M ~- i0 o; }. K
- (tempmod yscale 42 nil); V$ q B7 \4 _: [: V; P
- (tempmod zscale 43 nil)
$ p5 J3 c I9 V7 g6 n - (tempmod col-sp 44 nil)
. t- b* e2 ^$ g; t2 F8 B' D - (tempmod row-sp 45 nil)5 Z, R+ L5 Q- c% ?
- (tempmod columns 70 nil) q, D( S1 H" i3 @2 { \8 p
- (tempmod rows 71 nil)1 Q, y5 T/ }0 r& d; v' O6 m% p p' p$ l1 P
- (if (= xclipmode nil)
+ c3 P5 F( R! q$ G3 b( y - (entmod elist)6 v) O( { A% b* X" U% O
- (setq xclipmode nil)
: h+ a$ \' | X8 d! a - )
2 v6 W. |9 c- G6 q$ ~3 V( w - (move_pt1 1)
, S- o; J3 }9 K! Q
* @: T) k) U+ z4 h/ M _) V- ;; Now do the rotation with the ROTATE command.- L* N T+ a6 f" p1 j* F: o' B1 a
- (if (/= old_rot rot)7 w( ]5 d7 j! x% r4 |! S8 D
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
3 d4 ~& k9 ]2 p% h - (if attr ; Else, if attributes were modified,, U& g* w/ i0 [& U- h0 G" m/ X$ F8 V
- (entupd ename) ; just regen to force attrib display, S9 R* A: k+ F: o! w3 ~( h( I# R
- )
7 v* K+ z( ?$ P1 W - )& w2 w7 A U8 Y( q8 Z
- (setq elist (entget ename))
- F. c8 w( N7 K. h# x* k - )" @3 o: D+ _; \% K Q% N
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)" m' o$ \0 ]/ K2 z x5 ?1 r5 d
- (setq newhatch 0)3 Q8 D# P! I" c2 q! v- ]
- (setq blkname (cdr (assoc 2 elist)))
% b$ H5 O4 ~5 B G. P/ d* x0 { - (setq blklist (tblsearch "block" blkname))' c, a3 ~! ^' p0 T; Z- T
- (setq blktype (cdr (assoc 70 blklist)))
2 O0 P* q' i) G7 a1 z, O - (setq xcliponoff 0)
H) ?8 v- \% |) p - (if (or (= blktype 0)(= blktype 36))
- _, j7 P6 H$ r! w" C - (progn
# K+ B7 L6 y, g; C5 f - (setq xcliponoff (xclipon elist)) B5 c, l$ t& K3 c1 d
- (setq temp_xclip xcliponoff)
) r s- H4 u+ \- R - )
( l- S* K( }# R% n$ v" B7 J - )
8 r, B( _5 Z% U1 q4 c5 d2 ? - (if (= (logand blktype 4) 4)1 Y% d# h- V3 w+ R
- (progn# o6 e! @! s' n
- (setq xrefpath (cdr (assoc 1 blklist)))& S' i8 G$ u$ g
- (setq help_entry "modify_External_Reference_dialog")" H8 g" h E# b1 F/ ]+ f' Z8 T
- (if (not (new_dialog "ddxref" dcl_id)) (exit))
8 r4 v% w W$ z4 j) | - (set_tile "Bl_name" blkname)
6 L% p0 v- C, w- p* m, O8 u$ o$ f9 M - (set_tile "path" xrefpath)8 `: c: q e3 i3 Y
- )
8 t3 n$ ]3 ]6 m; \3 D - (progn
4 v2 N: b f6 q - ;; Get program name for use as Xdata app name( g) b) u) ]* F/ W. ]2 p, l! [: S
- (if (not (setq program (getvar "program")))
_+ ^' q, d* h2 a- @ - (setq program "acad")
6 i7 h3 M- h4 x( m - )
/ p+ {% q, Z! W, @1 \) f - (if (and (setq temp (assoc -3 (entget ename (list program))))( B/ z$ B: t6 j" Z$ o& N' H9 [
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
9 X5 Z( R, E$ S' [' r - (assoc 1005 (cdadr temp))0 u1 s3 }: x4 v6 @% k
- ). ~, L1 m% d4 P, T( x& ]$ X% W
- (progn0 d! \8 [ b1 t8 S: P$ j; q. d
- (setq newhatch 1)) H9 B: |) S- O$ N" R
- (setq help_entry "modify_Hatch_dialog")
6 D Z0 ~. `- M7 d - ;;; convert the object into a new hatch& Z. a; _; C! w- r& h+ Z9 B( {
- (ai_undo_on) ;; enable undo
# i$ \/ Q- h- l/ u( a - (COMMAND "_.UNDO" "_Mark")! J9 q* U- o0 Q. o
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")
- v4 J8 n0 E9 h0 C - ;;; suppress nasty message from convert command& h) i5 Q2 J# r2 e; `8 E% r4 {
- (princ "\r \r")
& ~9 J# {! ~6 H - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
' l W, C. P+ @) j - (setq old-elist elist)
4 v! C8 A" H% R6 D - ;;; If we have cancelled ddmodify/ f' l+ q9 m8 k8 c! c0 H4 ~
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok* l% r. A1 X7 U- y# T
- (command "_.UNDO" "_Back")5 c2 n3 Q G$ Z$ p" H
- )9 K1 n. @7 C: B: p `# O2 Y8 m
- (ai_undo_off) ;; restore undo state
+ L/ e. K! u+ l! Z0 y - )
; {8 @6 o7 l' H- E# [5 C - (progn1 ~0 q/ ^; C3 q0 ~4 d
- (if (not (new_dialog "ddblock" dcl_id)) (exit))
) q% o5 l: e8 Y2 [" f- Y - (if ( = "*" (substr blkname 1 1))& g% F2 |" h2 W7 k$ M6 l! T
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))5 ]! c0 a$ ^: A& @( y) L6 f
- (set_tile "Bl_name" blkname)& `9 u- c* o7 V6 o% m
- )
2 H, F6 X( A& Z. [' ~% w - (setq help_entry "modify_Block_Insertion_dialog")" E+ s) A& X; A7 J
- )
3 B. B% c$ q' e5 W. N7 L - )4 \4 L6 J4 R7 l# S% u b
- )# c' G6 b6 M$ E7 y8 F; M6 e! W
- )) `% O! |8 P. r7 i$ |1 i
- (if (= newhatch 0)
6 }# k; x$ I3 l) b( s( [ - (progn
9 X% a% K- [6 x% V% \2 K! O( {6 [/ [# ]' L - (set_tile_props)# P7 O) c5 i" K% R
- (set_tile_handle)4 D v( l: h* m6 b8 z Y. h
- (set_tile_pt1 1)
! D# Q' @1 L, | M5 F* _ - (set_tile_rot) T/ k: H( i' B, e9 j7 s; f+ \
- (set_tile_scale)
: C) W0 p2 n7 t9 Z J' A- e5 j - (set_tile_rc)
# N( t0 G; T: H% ~) a+ v1 D# d - (if (= (logand blktype 1) 1)+ R3 B' V5 `% a9 d+ U+ l$ @6 ]
- (progn
2 M3 g* w5 i4 Q - (mode_tile "xscale" 1) p$ B' I% [6 U7 z7 f* C
- (mode_tile "yscale" 1)
" }3 G4 t! ]4 u - (mode_tile "zscale" 1)4 f: y$ g3 W% A6 \ b; I6 h c# y
- (mode_tile "rot" 1)
, k7 r9 N/ |2 E+ T1 ] - (mode_tile "columns" 1)
9 j9 `; A' Z2 p0 c' ]& C# y - (mode_tile "rows" 1)" e$ I6 x. l8 I2 d
- (mode_tile "col_sp" 1)
; K: ]; C0 c; l+ [: c* I+ u - (mode_tile "row_sp" 1)
1 l$ P: r) k$ `% u% v - )
; g' r& T; q" G! O - )* q- `% c8 Z6 Q/ C7 `
- ;; Define action for tiles5 {4 E9 a ^: X1 P) U
- (set_action_tiles)- A6 @4 a) f1 l4 M' C2 o+ g
- (setq dialog-state (start_dialog))7 Y& u: [' {' h4 `8 J# W1 f H2 A
- (cond
6 ?5 l! _ b$ ~5 u - ( (eq dialog-state 0)
5 y* Q5 d3 N+ _8 P7 D6 ~ - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1)): V- S7 L1 I& S; V! K
- (move_pt1 1)" R! J( E5 v' s( ~1 g1 B' J, c
- (reset))
3 {, C. y' Z' z. {3 w) i; K - ( (eq dialog-state 1)
+ J3 g* i. _% K& c3 v - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
0 d# @+ z9 y5 P5 ?1 q - (xclip)
& w# ^ t& I Y# ?( ] - ): p, }4 }( o- f1 t/ U9 M F
- (modify_block))8 {7 J4 s! X( t
- ( (eq dialog-state 3)
, U: _% c. ?* i5 z( | - (modify_block)- I9 {* k% R1 l& b; q/ v: n: ?
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
3 L4 k9 a( \0 T0 x& } m - (move_pt1 1)
$ ?! [6 F; w6 E7 b! l& W. M - (ddblock))% u4 |3 v# m6 O" R" q+ s' Q
- ( (eq dialog-state 4)
/ c3 d5 d4 p" S/ t - (modify_block)
7 W* J9 c6 {' q9 a1 ^ - ;; Get current handle.4 [, b% m& o+ Z) \. h
- (setq hand (cdr (assoc 5 elist)))# u; a& \; t8 e3 ~, }4 ?7 W1 w
- (command "_hatchedit" ename)- z5 [$ L2 t* F0 @
- ;; If OK in hatchedit, a *new* entity is created and the old one
* C& A7 n u i( H5 c: A - ;; is deleted. So if the old one exists, it must have been a/ l' h- S4 H5 o3 f8 }
- ;; so rest the entity.0 c8 m+ Z3 `# T% ?% k
- (if (entget (handent hand)) (reset))
& k! V8 a' h, }$ u - )9 E5 I+ [8 K3 I% b. z6 X2 F
- )8 w- ]+ J- k1 a, i/ F
- ): P% ^2 ^& C7 [
- )
" \" d2 g; h8 y1 M1 l! @/ ^" q* A# m - )6 H7 r) T8 O0 q2 b
- ;;
$ `7 d' I" L W( k% B/ r6 g! Z: v - ;; Modify SHAPE
, y5 z, X3 U) A& g# ? - ;;
w4 X* ]% J$ x8 e - (defun modify_shape ()
* M1 u( e; e; m: U( M+ A! [& ] - (modify_properties)5 d% t5 D, X7 ^$ r2 k& Z
- (setq pt1 (list x1 y1 z1))
( o" ]0 W0 L/ u! G9 |* R* A- n9 | - (tempmod pt1 10 1)
: K; P- i( z! s H! @9 {0 q - (tempmod hght 40 nil)
2 N8 ?4 ? Q; c- D W+ X' N - (tempmod wid 41 nil): R" d6 H' _& C2 A0 {- |3 t2 W
- (tempmod rot 50 nil)+ U7 g- R1 [$ [& @2 W6 l
- (tempmod obl 51 nil)6 Y) h7 K L" f. Z0 z& T0 y
- (entmod elist)
/ \. q4 w* P6 D( a" k - )
# U& {( T# v. f; h* V- l- A' @ - % Z2 T1 [% ~% ?6 c% T# t1 _! A
- (defun ddshape ()
! }6 ?5 k" K( N9 H$ o9 I; F0 ~ - (if (not (new_dialog "ddshape" dcl_id)) (exit))* g* s4 M4 G1 b0 r/ H/ l
- (set_tile_props)
0 `) w+ D- S r8 ?8 u1 v- K0 Q - (set_tile_handle)& V4 y0 t' |0 A: b/ P
- (set_tile_pt1 1)
1 Z. k' @) }! N0 M3 D - (set_tile_rot)+ x( d$ t* \& c b( O( l" p
- (set_tile_hght)1 F! _' k% g! w ^! F+ p" i
- (set_tile_wid)
7 A4 d% z. m' c - (set_tile_obl)
% ^7 t5 `; R7 R: R4 j - (set_tile "sh_name" (cdr (assoc 2 elist))): j |' J6 R2 d! t! H6 D! p3 t
- ;; Define action for tiles% L) Y: M) z% H
- (set_action_tiles)
8 ]7 P& J" q/ f' g) o& E' G - (setq dialog-state (start_dialog))
; t! Y8 o+ {# e* C6 z$ F - (if (= dialog-state 0)
& Q% R" T r7 F* z' v - (reset)# T: e* ^0 w" i2 g/ D
- )8 _1 @) @$ F3 |. `8 }( E- G G
- (if (= dialog-state 1)
+ A4 @* d2 r Q7 {+ k - (modify_shape)8 W i2 I/ S, b/ o N6 l6 `
- )
6 h2 W! V @/ Z/ m( K/ c+ H9 R( e1 P1 ? - (if (= dialog-state 3)
4 f: a( e( A# {% ]* m% L- Q& _ - (progn) h1 b; @1 j. w* D7 I r' f
- (modify_shape)
1 W% A* G! w7 I. ?0 {& E" `4 M: d - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
0 N$ h3 j6 d( e7 n( d8 B - (ver_pt1 1)3 ], g# T4 A0 o% w" W
- (ddshape)
0 w: Y+ |9 I6 |# O, ]+ V - ) N* q9 q9 v! V4 }) | J0 V
- )' Z6 n* J6 e+ D
- )0 k! L* t& @8 }4 a
- ;;( E8 U9 L8 ]$ W* z3 n7 B
- ;; Modify TEXT or ATTDEF
$ m: W8 [$ @: v; C6 o7 Y - ;;% ~: m' ^7 k \* N
- ;; Set bit code for upside-down and backwards setting. _4 z" P( I0 z I
- ;;
1 v, u: n' s, K% t! U* z - (defun code_71 ()
$ P# A& G6 J. }( i) Q - (cond ((and (= bkwd "0") (= upsd "0")) 0)
! ?% {9 E5 e% O0 X2 j - ((and (= bkwd "1") (= upsd "0")) 2)
" a! m- A" Z$ K/ ^8 h. z8 k, i1 o - ((and (= bkwd "0") (= upsd "1")) 4)
5 i. k0 v- i0 e8 h R0 v - ((and (= bkwd "1") (= upsd "1")) 6)
( y# ]& Z, z* Z/ g. |7 P9 L9 @2 L - )
- ?, `" |2 D0 z - )- N2 U# d" v- r" J
- ;;
. Z5 i7 R }1 r" o - ;; Style action. Reset widget values to style defaults
* h0 l" G6 A; F1 d) w4 R - ;;% X+ O3 }5 u _$ O
- (defun style_act (index / style-list)
4 h& r9 L5 v1 j5 E: v2 l, j - (setq style-idx (atoi index)). V: }' l: [7 [9 O
- (setq tstyle (nth style-idx slist))9 } ?6 m1 f! E) N/ S
- (setq style-idx (itoa style-idx))7 l% Z( b* v: V U" L6 O, i2 `
- (set_tile "style" style-idx): U" W3 _+ `1 v6 c4 H; x8 }6 W
- (setq style-list (tblsearch "style" tstyle))& \! W' b3 M# x1 n$ a0 B; i2 U$ }
- (setq shght (cdr (assoc 40 style-list)))
6 Q$ i+ q3 \" Q6 _3 q) m) t - (if (/= shght 0)
; h R7 B4 z. z* d, f; P - (progn
' E# {: E) I0 H9 v - (setq hght shght)9 e/ \* _" [/ ^5 h: y& ~0 r" V
- (set_tile "hght" (ai_rtos hght))
, X( A* C6 ~! {# C$ s$ A, ^ - )
9 n8 w }9 V g- M - )
- @: ? a3 i; N3 M. f, J! a - (setq wid (cdr (assoc 41 style-list)))
U3 t: l9 K( T' {7 N, J - (set_tile "wid" (ai_rtos wid))
; T& ~. b! P6 B8 Y - (setq obl (cdr (assoc 50 style-list)))( }; A1 |) b, G/ s0 P$ a# p
- (set_tile "obl" (ai_angtos obl)): i4 K L1 h5 g
- (setq bk-up (cdr (assoc 71 style-list)))
2 y9 h+ q5 H; Z6 a - (if (= (logand bk-up 2) 2)6 w5 S4 R9 }9 I. M1 k
- (set_tile "bkwd" (itoa (setq bkwd 1)))
$ K+ }! D4 [, q, s* o - (set_tile "bkwd" (itoa (setq bkwd 0)))
/ n, E" P, f ^ - )
+ @& B1 f# I$ K3 R: u - (if (= (logand bk-up 4) 4)# t& b6 v; z4 w3 k% a; a2 I8 |
- (set_tile "upsd" (itoa (setq upsd 1)))
3 e, i0 }1 N8 Q+ K - (set_tile "upsd" (itoa (setq upsd 0)))
; ], S Y6 L% D1 f9 |3 |& G+ _( n - )
) D( n, p, b& c+ b - )6 O9 I( x4 [. @' A( V6 k0 I
- ;;7 U* c N ]( r9 R2 k: a3 H
- ;; Justification action. Set vertical and horizontal alignment variables,
3 z/ K+ g! [: S3 y% V - ;; grey out rotation and height if alignment = "aligned", grey out rotation& w# X, {% B2 E) z& S) y7 b
- ;; if alignment = "fit".
( X9 ^+ ~' ^# A - ;;0 C5 `3 l/ ^! h6 L" \6 g7 a1 g% J/ Y% E
- (defun jlist_act (index / templist)# o, }) P) m% Q+ s9 {2 ^# v) R/ o
- (setq just-idx (atoi index))" S8 A' Z: A, u) Q f
- (cond
1 B" C- }4 j- e5 B$ T - ((= just-idx 0) (setq va 0 ha 0))
/ O% K8 k, h& Q5 g5 i z# p. p% o - ((= just-idx 1) (setq va 0 ha 1))
+ x+ i7 b m/ \: i( M, L8 x - ((= just-idx 2) (setq va 0 ha 2))# u4 G2 |: E) z3 Y
- ((= just-idx 3) (setq va 0 ha 3))
) m1 l2 p+ j( x8 [. m% b$ } - ((= just-idx 4) (setq va 0 ha 4))3 ^0 J4 n3 s& x; Q, X0 i) I
- ((= just-idx 5) (setq va 0 ha 5))
; H3 g- H4 S; o; _ - ((= just-idx 6) (setq va 3 ha 0)). @5 Q4 y: n9 o4 p Y" R
- ((= just-idx 7) (setq va 3 ha 1))/ |1 c( P) i. S5 C6 @- d5 Z$ z
- ((= just-idx 8) (setq va 3 ha 2)). r$ k' L( Y: d9 q/ k! i- \
- ((= just-idx 9) (setq va 2 ha 0))
" c: F, G5 p6 e$ T* L" l - ((= just-idx 10) (setq va 2 ha 1)) k% E3 V+ W2 S% J9 C
- ((= just-idx 11) (setq va 2 ha 2))
6 u- i: r: w. `% x - ((= just-idx 12) (setq va 1 ha 0))0 \6 c( M( O5 r, G
- ((= just-idx 13) (setq va 1 ha 1))3 {+ _/ P* D3 M6 [ B# z# `5 m9 m
- ((= just-idx 14) (setq va 1 ha 2))
( V! t7 K" R d6 ~1 B0 l8 A - )
F2 ^1 Y6 F4 c6 T4 P$ q, I; g- T' E - (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text/ Z: E' v# d1 W/ T
- (mode_tile "rot" 1); ]1 K' `1 n; F+ t& m
- (mode_tile "rot" 0)
* s% }* s: b, y0 r: G0 a! K+ F - )
0 e9 }- N- x- d9 t9 Q2 A - (if (= ha 3) ; If Aligned text! c: h; n _& d" t/ F2 e: y
- (mode_tile "hght" 1)
" o/ z7 d% y2 E+ f# W8 z( e - (mode_tile "hght" 0)) n/ ]6 d" i! _) \1 v/ U
- )# O; ~$ H6 t5 h4 {
- (if (= ha 5) ; If Fit text
0 s7 c; m0 _! r$ T* D0 c( l - (mode_tile "wid" 1)# Y3 Y/ f7 L) [
- (mode_tile "wid" 0)2 [ z u* S0 t0 W
- )
" Q4 ^/ x4 g, a! P( K( ` - ;; Reset rotation and height if changing from aligned.9 f P! N) ~ i; Z! Y. `; ^, x
- (if (and (= ha-prev 3) (/= ha 3))
& l9 Y1 G: P1 v - (progn; ^( ^" Y* |$ v' h* u+ ]9 ^
- (set_tile "rot" (ai_angtos (setq rot 0.0))): f8 K5 o* h( s8 S* w( L
- (set_tile "hght" (ai_rtos (setq hght 1.0)))
6 v0 Q4 e6 Y- @* r: s; @5 T - )- F1 w6 c% b1 s3 d
- )% s' K! B1 x0 S: Q- G& Z$ c
- ! _! i" H4 u- a7 {
- ;; Reset rotation and width if changing from fit.4 b6 _4 J. O# k/ ^- _& Y
- (if (and (= ha-prev 5) (/= ha 5))
0 ?6 g9 b' M. r7 v. |: @5 d - (progn
) G& x T) `* x, m- C" c, C - (set_tile "rot" (ai_angtos (setq rot 0.0)))8 A; M% ~; b' r
- (set_tile "wid" (ai_rtos (setq wid 1.0)))8 D1 z1 r/ L- c, B$ }7 X* g
- )5 p8 Q; f: i( {, O
- )
$ L3 o+ T# f; j! A; @# U X, ]- k- D" l
% _$ [4 ?1 z$ Z% L- (setq ha-prev ha) ; update ha-prev for next time
3 E( E2 P- X; {' H! m: w: _ - (setq just-idx (itoa just-idx))
' D" X6 Z, S+ H5 R9 N' ]! O& l - )
+ X1 q! b, z* g( W - ;;
5 |; C% r( W c9 m - ;; Set intitial alignment setting based on vertical and horizontal alignment
% d( e0 _6 y; Y" U | - ;; bit codes.
' b0 E C- G, P' c( c/ P9 q - ;;' B- T$ ^! ]8 y! ?! E! c2 d0 o
- (defun set_just_idx ()
! V6 R; K$ R6 g - (cond
) ]" G5 _0 j0 ~5 n - ((= ha 0) ; Horiz alignment = Left7 r7 k3 N# _( A! v, H6 {9 S) a
- (cond
3 b" w3 h% M. N* M k6 v5 n - ((= va 0) (setq just-idx "0"))
5 P4 N% e, v( @ - ((= va 1) (setq just-idx "12"))
$ W0 O# p' d" d( I4 g( O' f( B - ((= va 2) (setq just-idx "9"))
( k* Q: k; U2 R+ b; ^8 h1 V& } - ((= va 3) (setq just-idx "6"))9 i) E4 U. b8 W
- )
0 k3 ?1 _$ Y X; Z* l5 f L - )
7 B" Y5 O. D% `& Q; o( W9 O - ((= ha 1) ; Horiz alignment = Center
6 ]* e3 P, `1 L1 M - (cond8 s3 O5 }0 i# g' A
- ((= va 0) (setq just-idx "1"))3 ?9 N% D3 Y$ o5 ]9 U
- ((= va 1) (setq just-idx "13"))( t8 z& P/ q6 N% _9 [0 |9 p( ^; c
- ((= va 2) (setq just-idx "10"))+ l) h5 e. n5 g6 h- u6 Y* g
- ((= va 3) (setq just-idx "7"))7 ]% b4 |1 _5 y4 ^ f
- )5 A+ y' w _3 O: W/ A. y* x
- )
- a/ I# |3 `- c! r$ ] - ((= ha 2) ; Horiz alignment = Right& V4 o4 G* T0 J, b" c& K' k+ J
- (cond
! T9 l$ D) @/ @* B# I. u& W7 s8 `2 L4 x - ((= va 0) (setq just-idx "2"))
3 J9 `% `) j- {% ` - ((= va 1) (setq just-idx "14"))
; t; A$ I: m" N0 f7 c7 r2 i5 U - ((= va 2) (setq just-idx "11"))& }. u8 m# \/ g: v
- ((= va 3) (setq just-idx "8"))% U; b4 U. {/ B: h
- )6 c4 p( Q6 p; m; }9 R
- )- S" e) T7 ~6 ]; Z3 e
- ((= ha 3) (setq just-idx "3")) ; Aligned% u0 p. _" V" _; t. f/ l
- ((= ha 4) (setq just-idx "4")) ; Middle
1 X0 y8 \. T# d' ^/ _7 [) k - ((= ha 5) (setq just-idx "5")) ; Fit+ e' ^( q8 f. g- F( L
- (T (setq just-idx "0"))
4 Y Z! S% H. [7 v+ s g - )+ r9 a8 d0 Z! H( Q/ P
- just-idx
0 ?! d K( g# v) F - )
2 L' E% {) b: V8 g& z7 Y% x! p8 ]
' K* a3 F3 c5 K+ r1 e* i$ }- (defun modify_text ()
0 J5 E7 E: o2 I2 Z - ;; insertion point1 ~/ d# ?$ a) H9 _' Y8 m9 {
- (setq showpt (list x1 y1 z1))
a' ]$ Z# N1 G" Q; l# N - (setq bit-10 (trans showpt 1 ename))6 w, b8 O$ m+ C) V" a
- ;; alignment point: c! X; c. {* s6 a: g* \
- ;; for 'Aligned' or 'Fit', alignment point must be different
1 X- q; A0 M5 r4 y6 z# u. g - ;; for all others, use insertion point
1 m' s" d# j; e, ] - ;; (ACAD will recompute insertion point) i, L$ H& p( Z; z, z' m N9 e }# e- [
- (if (or (= ha 3) (= ha 5))
+ z4 H2 X( H+ z) }( \" l/ u2 B1 ]9 T( b0 b - (progn
?4 A' i" c) Z9 O - ;; if no alignment point, fabricate one
) Y' w( g% \$ u& n' h - (if (not alipt)
- t- g' U4 A/ M1 W# ?* y - ;; add text width to insertion point
6 x2 v$ l# P, _1 D. a9 C. u - (setq alipt- y! n" m' g8 ] U/ i- j! N2 G0 ]% B
- (list (+ (car showpt) (car (cadr (textbox elist))))
7 M& n, \4 G6 ^2 d/ E - (cadr showpt)5 n' g( c7 X! L. s
- (caddr showpt)% Q7 Q" o, j0 D! S) j
- )5 t4 ^- i8 R! m4 V0 v* p' H6 m: L
- )
* T* ^8 s1 _- F3 u c - )% N: a2 g! t/ l
- (setq bit-11 (trans alipt 1 ename))
3 \4 D$ ?, Q G% F' \ - )5 t& U$ Q r- L: W: ?
- (setq bit-11 bit-10) m; V; J/ I9 R ?
- )
2 U6 B/ [/ t' q/ F$ ^* B# ]1 p - (modify_properties)
9 q1 X3 }( F3 i0 z - (tempmod tstyle 7 nil)
$ K% A% y4 t B5 h! n- e - (tempmod bit-10 10 nil)' f. P6 O& \- u
- (tempmod bit-11 11 nil)
) ^' c7 v% N4 U; K2 p! P - (tempmod text 1 nil)
" A% C3 Z. X) N5 @2 } - (tempmod hght 40 nil)
5 ?7 s3 M& d/ P: t3 F+ i - (tempmod wid 41 nil)3 J! f# \$ \" Y/ b' o% I% i& Q
- (tempmod rot 50 nil)
' Y: f% i4 M L/ V; w6 `, F - (tempmod obl 51 nil)) G, G' _: W" z2 l
- (setq bk-up (+ (* bkwd 2) (* upsd 4)))2 l2 I4 t4 i4 ?3 i- z8 M; |+ t
- (tempmod bk-up 71 nil)
9 D2 a9 K7 y- l' |% r$ n) ] - (tempmod ha 72 nil)
1 {+ s/ N2 F. l. C - ;; Attdefs use 74, text 73
' ^1 y0 n5 t3 d o. L4 s2 B - (if (= etype "ATTDEF")+ o8 b9 Q m# B/ h0 x
- (progn
9 i* L) [$ R- y2 @! \: E1 s* D - (tempmod attag 2 nil)$ E. i/ z' Y; \+ u
- (tempmod atprompt 3 nil)
+ g! E+ s+ G# B* C y+ ~ - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))9 F: P3 s8 [# v9 q" ~' D
- (tempmod icvp 70 nil)/ O( J: G- M) g9 ?( k; U
- (tempmod va 74 nil)9 C+ f1 t/ l5 D/ g( A! B
- )) F" B9 ]# E2 G' H( Q p% g
- (tempmod va 73 nil)
$ X B$ T) j- s6 \/ h - ), k4 p |. G9 Q+ ]3 S! ?& ?
- (entmod elist)4 B2 \( b, S: g: a3 }7 F
- )7 C9 O+ H% o- I/ E
8 E2 {6 x& n4 T2 r$ R- (defun ddtext (/ 2ndpt slist i)
4 p$ ?/ `2 Z% e1 A( n! q3 Z' \ - (if (= etype "TEXT")
- |) S* {5 D, d( J* c; J3 x8 r% M7 } - (if (not (new_dialog "ddtext" dcl_id)) (exit))4 D, C0 t( i/ t2 t& E% c$ L* V
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))
/ N# j; u- e [6 b - )% O2 l) |% [& |. p+ s( f# f! `
- (set_tile_props)0 @+ V+ ~2 z# C1 T" {) {6 x
- (set_tile_handle)
& P E z, m: s N1 Q! l - (set_tile_text)
/ D4 r, Y- r$ _4 p - (set_tile_tag)
: w7 {4 S% r8 \9 G5 _ - (set_tile_prompt)8 C( ? R6 @9 e8 Q' S; t% X! @0 J4 A
- (set_tile_hght)
1 ~7 K! s! \1 ?) T - (set_tile_wid): D2 w! g- Y# p4 D( c9 v$ { w
- (set_tile_rot)
8 q6 _0 i' }$ K3 a4 p, j - (set_tile_obl); N+ q0 r: P" Q( l9 }5 V1 l
- (set_tile_bk-up)5 a2 N! s, R' L7 R/ H7 J( K
- (set_tile_icvp)
, {) @% i9 o7 W( F6 W - (set_tile_style)
8 p. w3 O+ g% O3 U c - (set_tile_just)/ |; n, ^" a" T0 m) ^' G, m
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
8 k4 X4 N) |, v# y, u: r/ W - (if (not (assoc 11 elist))
- G* Y* c7 _6 X, U+ ? - (progn (setq pt2 pt1)
# r* q( ?3 P) V' v) L. e - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))% V: H. S8 N. `, k# L
- )0 ~; O l0 t0 F |
- ;;(trans '(0.0 0.0 0.0) ename 1))
3 ~9 @) K+ u, I- z0 L4 M- \ - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))0 W3 k' C4 q8 U' ^2 Z2 f* I
- )& [ C1 c# `. P6 T" R% n" P
- (if (or (and (= ha 0) (= va 0))- R# l9 m: v) l B9 U
- (= ha 3) E2 Y) f4 G! u) R! L
- (= ha 5)0 H/ \4 C7 S" w! Q
- )" D% t) Q! l% a W$ R
- (setq showpt pt1)
" e( x# V+ i! {9 E7 G, y6 h - (setq showpt pt2)
( A# U$ N/ a5 o: A( ]! o4 p - )9 z B* e2 O1 H9 T3 @8 m( O% `
- (if (or (= ha 3) (= ha 5)). ^3 K3 g. W$ H) C; B1 L
- (setq alipt pt2)
' J7 m2 E5 @: F& p" G2 G - (setq alipt nil)( A5 h' @0 S0 P, E' H! M* v: P
- )9 L: M; x6 V% T g" n
- 2 J1 |2 X0 R+ v/ b' r6 O4 Q
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
( s% Z9 K* y3 [) ?4 I - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))2 \* k7 h3 H. [* M. p* Y
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))7 t- U" }+ l/ H; v6 s- f3 |
- 9 l- |" N. I) G* M! F5 E' l4 _- [
- ;; Define action for tiles$ i( i( o/ P7 V' R! W
- (set_action_tiles)' O; w: n( d* _1 V) X3 C5 }" A
- ;; Set focus initially to the text edit box.
+ j) x4 C9 f @* g: h- T) p9 b, X% I* | V6 ] - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
/ K/ r3 W; P1 z/ x; |/ y4 m- ~: i - (setq dialog-state (start_dialog))
1 V6 c: U" g* d/ l7 r - (if (= dialog-state 0)
: _% {" w6 u- z I& u+ P - (reset)1 r( z! t9 I' x! x# T! a4 i
- )- h6 g! ?) t7 K% |
- (if (= dialog-state 1)3 v. I& L' a f1 @9 c6 |. J* R. j* O! M
- (modify_text)
- o: m" R) m" q! A! S1 \ - )9 ~# f/ p/ S* M9 D! `& W, |- o7 P
- (if (= dialog-state 3)# @4 V4 b% }% F* k# r5 Y) @& {( e
- (progn
( L. J0 J$ z. p) g - (modify_text)
4 ]- O! P& G# g E) R8 h B; a- i - (if (or (= ha 3) (= ha 5)). [) U8 U" B0 s9 g) o4 G' N% a; g
- (progn* U7 p8 g6 |# }0 T8 m% _
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))/ z# P/ d* E% O! x; S
- (if (not showpt)
/ U; B; Y% `9 ^/ v8 B9 _ - (setq showpt (list x1 y1 z1))
- D7 |3 D: @6 @ a% j! o M - )
' @# N/ Y ?4 n% T! a - (setq 2ndpt (getpoint showpt "\nSecond point: "))
% e; {; O( R3 o6 Y - (if 2ndpt
% J, H: q+ k6 `- N - (progn# L5 g6 j( z6 j9 p( M" r" t( I: {
- (setq alipt 2ndpt). }# }+ {- e8 b3 s; W) \1 l* N4 |
- (tempmod showpt 10 1)
* y7 D$ J* G" x - (tempmod alipt 11 1)
5 f2 X+ y% M; u; d - (entmod elist)
8 A" D7 ~ g2 ` L/ g1 x" r9 f - )
! `1 J( p1 j; W2 p - )
6 n5 u" o' k3 |1 K5 I) W - (setq elist (entget ename))
. |5 D' y! Q; F1 }2 h - )$ c. ^ |+ v( Y T1 T
- (progn5 o. b8 _( [. E0 I a( u
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
1 P6 }4 x4 x3 E- a& K2 D7 e( R4 E - (if showpt+ F! w. A" t, z+ J8 x
- (progn
; D- {6 n0 D: E5 D - (if (and (= ha 0) (= va 0))
3 J& ]/ M f; ? s- B - (tempmod showpt 10 1)+ R$ | }# N+ `- C9 n
- (tempmod showpt 11 1)4 z, ]2 t; T0 `- J' p6 ~7 x
- )- j( b# w X" _* M
- (entmod elist): W6 c: a! x# Z: F$ |, e
- )* s. J6 {; Y1 Y
- (setq showpt (list x1 y1 z1))
& }8 f1 e# B+ z2 J4 j/ Q6 r - )
" C1 t' q y! ]6 e* v - ); v" d- [) G' E6 G
- )$ t8 [3 Y. k6 A
- (ddtext)
, D1 i" M/ a; e& o - )
4 `* {# Q: R% z% G" ~* A6 o8 ] - )6 g1 Q# j8 P9 O7 t3 n4 g, j' T
- )' _2 L# _ Y8 R& \
- {9 j. \5 f) n8 e" z9 g
- ;;! z) y# ? ?8 I8 _3 ]0 @+ _
- ;; Modify MTEXT
( a7 W; c0 ~$ C8 S: t) x9 J/ V - ;;
) B" n% Z' b0 u; K" H2 [( [& X - (defun modify_mtext ()& V8 b2 s! L# Y: F. ?
- (modify_properties)0 t. ~, K( b; j
- (setq pt1 (list x1 y1 z1))
+ ~! G( g( S+ p( Y y - (tempmod pt1 10 0)( ?/ [: L1 P. k; N4 `! ?
- (tempmod text 1 nil)
5 M. N3 _) t' Y7 d0 G - (tempmod tstyle 7 nil)
% p) S/ w m; f8 z - (tempmod just-idx 71 nil)
7 p: ^4 R# f1 O0 z2 M1 i - (cond1 ]7 T# N5 Y) Q( ]
- ((= dir-idx 0) (setq dir-idx 1))) X; J! S0 r$ |% r1 i
- ((= dir-idx 1) (setq dir-idx 3))
, a8 O+ C( _ F1 i: w- x( [ - ((= dir-idx 2) (setq dir-idx 5))
$ A% f1 v% U E7 B$ K- z3 z9 I) v% b! W - (T (setq dir-idx 1))
# ? T/ e6 y M1 ~4 H6 i D - )
4 D3 i% ^0 K' Y! O. P2 ]& [) l1 d, n - (tempmod dir-idx 72 nil)
3 S9 I& T7 L: t( J4 C - (tempmod hght 40 nil)8 `" a: ^8 c( V4 w5 t
- (tempmod wid 41 nil)
- _) _ q2 e: n$ D5 J% h9 U - (tempmod rot 50 nil)& s% t: M) ~6 \( A4 L6 h4 d# l
- (entmod elist)1 `# Z! n v! O- X0 T
- ); y* @! h7 W3 h' @- c9 S
4 p5 F4 x, b0 ^ V9 a+ _- ;; Set MText text style" @) R; a7 ^# Y! H7 L7 J$ x/ T
- (defun MText_style (index / style-list)
) z/ l% k- e! P& R: s - (setq style-idx (atoi index))
$ ?1 j! u! k: W3 D - (setq tstyle (nth style-idx slist))
2 ]' M: ]; @" ?/ x - (setq style-idx (itoa style-idx))
0 Q7 P- A& R& T$ l5 @6 B4 `6 ~ - (set_tile "style" style-idx)
& P$ s" P! @( B' a( k - (setq style-list (tblsearch "style" tstyle))
& ?8 l |6 Q$ B9 e - (setq shght (cdr (assoc 40 style-list))): c1 f) |- l5 l+ f# y F. I1 U
- (if (/= shght 0)
5 m0 k+ c( N) E$ t2 ^ - (progn. ?# _! V! y/ ~# U) V5 y
- (setq hght shght)3 @- c9 k! B, c7 ]
- (set_tile "hght" (ai_rtos hght))) i( d/ a- P) m( \
- )& A- [5 G; o( X' D( M5 I. j+ ~
- )
/ P& X+ f, A$ S; n - )
k0 J1 }3 ?; F" G1 o& M7 q - 7 p; u% ~& k0 c) J% i( _2 i
- ;; Run DDEDIT on given entity, working around possible re-entrancy
# M8 U3 B# L2 ?% U5 {7 T5 w# G - ;; problems with MTEXTED+ e2 o2 o) M3 `' d; p' X
- (defun safe_ddedit (ename / orgMTextEd work): ~2 E7 M, y# j/ B8 d
- (setq orgMTextEd (getvar "MTEXTED"))
) m* M Y- l6 u- X {$ L- e v - (setq work orgMTextEd)
" d+ C4 o q) Y& y4 G7 x# t - (if (= ":" (substr work 1 1))
- z ^' [& [/ F* f7 R7 Q - (progn. ^5 W+ p! Q I
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1))) f! x" |0 O% |. p0 V/ F
- (setq work (substr work 2))
8 C' o' ?$ x0 Q1 X& W5 H) t4 y - )
( M- J) d/ C( Z# |/ @ - (if (= "#" (substr work 1 1))
A% a! z+ o4 S - (setq work (substr work 2))
3 _" P2 H& { R# ? - )
- H5 n: G: b4 [; A% t* ] - (setvar "MTEXTED" work)5 A1 k, h3 \% y
- )0 B. R- n9 Q4 ^5 B& w
- )1 T0 Y4 S& d0 L
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
, |# c5 N7 \8 A9 z) [$ O - (command "_DDEDIT" ename "")
4 z' K% m5 @7 V; n, C: L - (setvar "MTEXTED" orgMTextEd)5 v! z7 M5 C" O6 M; g i2 m
- )2 C' F+ }2 l8 U b
- 3 }; u) h& O! b8 y5 s& H
- ;; Verify MText object width w2 m( l2 O1 w- j2 i- a8 C
- (defun ver_MtextWidth (value)
/ x4 k! E# ?7 A/ ?6 `3 m& } - (setq value (distof value))
. A& {8 Z" p% c) O" M7 ?" V% e - (set_tile "MTextWidth" (ai_rtos value))
9 w* B; A6 T7 e. w( Q - (set_tile "error" "")
* W1 E. ], D+ o5 r - (if (< value 0.0)
: h* u; G, _4 {' i4 `- x* D( K - (set_tile "error" "Value must be zero or positive.")0 Z, U$ A( @1 h# A; t" }8 p" q
- (setq wid value)8 Y6 \+ h9 [. r# T+ S- N: {
- )- ]2 V# W0 Y. b* c% f( {
- )0 a- j) p8 @/ s( t7 |
- + h& A5 o# u7 p$ T
- (defun ddmtext ( / gc3), k$ n# D9 B1 B& d; y O' r
- ;; Get dialog
4 h5 b1 N9 F' z( ?0 d: _3 B! N - (if (not (new_dialog "ddmtext" dcl_id)) (exit))
0 l- Z- ^9 A& A' @$ a: |+ S - 8 ]4 R/ T/ ^- ^" x0 J5 ]$ o, s
- ;; Load list boxes, v( x# f4 e7 {# Z% G+ a1 G- \
- (start_list "MTextJustify")- T' I6 g) y/ Q! ?& Y
- (mapcar 'add_list '(, _8 y( j4 _' B* Z9 W! \, o$ ]
- "Top Left"% Y( R/ I# \. A2 P! b
- "Top Center"
7 m9 F. ?% H" i" [/ _7 | - "Top Right"
! i$ Y5 R* ]3 f3 w8 k. b1 Y - "Middle Left"% m* b$ p$ U2 O: N8 j: G+ ~
- "Middle Center" ^. \/ c( O' Q( v0 Z
- "Middle Right"
, p h( \- _- g7 R7 C - "Bottom Left"
& [3 j1 ~, K* c m* ]4 q% q9 u( j - "Bottom Center"# ?/ Y1 w- w* ?5 s* M6 \+ r
- "Bottom Right", l+ W/ t: ~0 `$ _/ Y
- )
7 i- B/ t( ~" s3 v - )
+ S, ~8 d; M& e- | - (end_list)/ X, n0 f* j8 ]( |2 L
- 9 |9 }' V7 R2 g, ~# q+ m1 w; @
- (start_list "MTextDirection")
1 {: Z/ a3 G& {( d2 D - (mapcar 'add_list '(, Q7 d5 F, P- s; ?' g) W$ p
- "Horizontal"
/ {1 q9 u! q; x$ }. e8 d - "Vertical"6 y7 {7 b; I% y/ d
- "By Style"( D; I& @+ l: a/ A
- )
$ c; L0 {4 Y: j% p: K - ): N* v& I* a7 v3 m$ ?
- (end_list)
$ L& `5 p! W! ] - 9 C, }* }9 w9 u% U
- ;; Set initial tile values
+ [% [, K/ b+ O% H. k - (set_tile_props)
( x- @3 U2 S2 w - (set_tile_handle)
3 V( F- E+ k& g - (set_tile_pt1 0)2 l- h! ]1 V2 A# y% u. \, u" C
- (set_tile_style)' D; J+ q7 ^$ @$ d C
- (setq just-idx (cdr (assoc 71 elist)))2 z5 v p$ a& H- V( V. R% b# N
- (set_tile "MTextJustify" (itoa (1- just-idx)))
- v6 V& Z5 A- h! O! @) [ - (setq dir-idx (cdr (assoc 72 elist)))2 k3 ]$ V+ Z/ ?: y: o! D0 e
- (cond% i3 u6 i/ ^! f* f6 C0 ]
- ((= dir-idx 1) (setq dir-idx 0))
: \! T, g' T/ J - ((= dir-idx 2) (setq dir-idx 0)); p1 T7 X! X$ T& l9 ?* S
- ((= dir-idx 3) (setq dir-idx 1))
- C6 _, U# X$ T) c% Y - ((= dir-idx 4) (setq dir-idx 1))/ l7 \5 A8 F, X; i8 h
- ((= dir-idx 5) (setq dir-idx 2))
9 a+ ^% M, g' e0 G# g( e! w8 g - (T (setq dir-idx 0))
5 e- @/ P# L. j' F' o - )
6 g3 D% ?% a8 R4 B! }: I - (set_tile "MTextDirection" (itoa dir-idx))
4 `! s; b2 L. u) A: B - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist))))). ]- V1 p: v% W# v8 |+ b
- (set_tile_hght)2 V/ I, s3 `! h6 N# e8 u' x8 H
- (set_tile_rot)
* j* m' Q. F9 Q) ^0 U( `4 p
" y% l* Q1 B7 M* h% W4 e- ;; Set edit box, disable if too long( ^% O! P) x- [" Z6 J8 t
- (setq gc3 (cdr (assoc 3 elist))
0 h5 K% |) }, D! I - text (cdr (assoc 1 elist)))
. S6 d% p" ~* u3 I1 d \ - (if gc36 ^, u8 K; C' b1 p' q
- (progn ;; Text is over 250 chars, disable edit tile
# d, i9 Y8 C e - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))) @$ H! G! w7 X
- (mode_tile "t_string" 1)
3 |5 E, t- ]1 ^2 g+ ~7 j) o - )
3 O$ G) J% R2 Q9 R& z - (if (> (strlen text) 80)
3 c# d4 B3 z* A2 I - (progn ;; Still too big
9 t* T* N# s# [" f" u. ]. Z9 j - (set_tile "t_string" (strcat (substr text 1 25) " ..."))7 F5 X" h* ?, ^% O7 ?( E% f* h# ?
- (mode_tile "t_string" 1)
# b6 ^ d* _8 y- L# S - )
% H: X- A; i3 _3 t, h0 ^ - (set_tile "t_string" text)
% P- w3 g5 c8 V5 {5 g - )& h: S7 E0 v9 f4 [
- )
+ _- @+ H5 W% T- Z: z
/ q% E/ l8 }' ]; ^5 B- ;; Define action for tiles' `: c( G: `. ^# K' a
- (set_action_tiles)' ^+ [0 i4 s& W: ~0 |0 T6 v& f
- (action_tile "style" "(MText_style $value)")( G* a- b2 m9 K# w4 q. H% m# E1 R
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")0 F1 H4 A/ X7 Y1 I
- (action_tile "MTextEdit" "(done_dialog 4)")/ I4 b7 P8 K4 s" O
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")
$ e% N; s1 W1 H& o) v: ? - (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
& O; D' p( g0 J# y
9 [- ^1 @! e: B" ]- ;; Set initial focus to text edit box.
8 J( W' f1 o) Y X, e5 x5 p9 K( R - (mode_tile "t_string" 2)
* E7 q$ D- x& X, Y4 `& M' B
y' Q6 Y* m7 o0 T0 q9 p( o" ?- ;; Run the dialog
! w/ i' d0 n# o4 h0 p+ u7 y - (setq dialog-state (start_dialog))
|- k6 S/ m W/ a- O7 ^ - (cond( O9 f. J1 Q& r( y
- ;; Cancelled - restore saved data- k2 C( R3 K ?% S# }6 Y2 r/ e9 V
- ((= dialog-state 0) (reset)) r7 ]/ y- F% H; l
- ;; OK - save new data; `7 k( l$ ?, ]/ T3 H
- ((= dialog-state 1) (modify_mtext)). A- _9 n0 O1 w i9 y3 Q
- ;; Pick new insertion point
~' G7 i* m+ T - ((= dialog-state 3)8 L0 Z9 `$ b, w7 a% j( E0 W( Q
- (modify_mtext)
8 N2 o i$ p& v, J* N& {, } - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
$ F! f% O- W8 ]* O! ?8 }: ^' E - (ver_pt1 0)
' C/ {9 ?; }% V g5 w! H4 D - (ddmtext)- V6 S$ p% \# O3 m% w( w
- )
6 A6 d0 @. W5 e2 v - ;; Run full editor6 f" }! o7 s4 u1 F" n0 C7 |
- ((= dialog-state 4)
0 r% y) R7 s! @! `2 i - (modify_mtext)
; _" J. F8 K: X8 f x6 }3 i6 m - (safe_ddedit ename); I# m' q0 |6 R' E6 R4 B- s3 B3 b d
- (setq elist (entget ename)). a$ D% p1 u9 v
- (ddmtext)
' B8 }2 N5 m/ W7 b - )
' ]& r8 S( a3 X* |3 S, ^ - (T nil)
0 U7 }5 b2 _8 t9 D5 t+ s - )$ ^. ^8 I) K0 J, p" R
- )! ~& A0 a5 B' p9 w4 K
/ Y+ Q9 ~: J; ^/ W: q- ;;
7 F, t4 ]) W/ Q$ J! P- }: L' y - ;; Modify VIEWPORT
+ u+ ?" r M- x - ;;
) r7 W0 i8 j9 N2 l - $ ~/ |. A) l8 n( d; j% u* F5 N$ d
- (defun ddvport ()+ `+ A, M! N& h6 B
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
/ s3 V+ K7 b% G- q! p/ v4 Q - (set_tile_props)
# F7 O) B. i' H0 F3 P8 B - (set_tile_handle)
. D3 l8 ~. ?2 r. G - (setq vpt (cdr (assoc 10 elist)))
i3 i2 \) t2 h8 b. N - (set_tile "xtext" (rtos (setq x1 (car vpt))))
0 ~3 g6 n$ ~9 `* e# h - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
6 c! G+ h5 {0 ]& g - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
7 L/ {( U, t! T - (setq wid (cdr (assoc 40 elist)))
6 z4 g s3 e! k5 t6 `: c+ L* |2 F - (set_tile "wid" (rtos wid))
* J7 K" O# n9 L: w H6 S, D* u# O - (setq hght (cdr (assoc 41 elist)))
' `) h E0 i: K! e# `) D - (set_tile "hght" (rtos hght))
9 D- o4 V3 ^, x# L: I3 @ - (setq vpid (cdr (assoc 69 elist)))0 b" L5 Z# S0 u3 K, T) q/ p
- (set_tile "vpid" (itoa vpid))
) Y7 A' P. t" [5 F9 a4 O2 c$ A - (setq on-off (cdr (assoc 68 elist)))
% n$ l* G' C/ T; [! x1 C - (cond3 [$ D7 _& I# @7 R
- ((= on-off 0) (set_tile "on-off" "OFF"))6 g0 s. k2 B, i& g* ~+ @2 M4 r8 v
- ((> on-off 0) (set_tile "on-off" "ON and Active")) D9 R: o, q# y- v7 n$ E- w8 f
- (T (set_tile "on-off" "ON and Inactive"))2 j# k$ b. h; ]& Y
- )
6 J |6 m6 ]8 r/ c; L/ q' q
) n) k) I: ^# d' s7 Y( D6 y- ;; Define action for tiles: X( ]& { k2 D5 k
- (set_action_tiles)
* M! ^! a" L1 n0 H* Y/ _4 [5 u5 f - * r, I$ R% ]+ j$ f0 n' C; B
- (setq dialog-state (start_dialog))
1 S a0 [3 c) v5 S1 a3 J - (if (= dialog-state 0)
4 D; j: W# S; L2 l% R; L - (reset)( i7 N% E5 W, r& u- O% c, n" |! R
- )$ J- `9 M! E$ m: u
- (if (= dialog-state 1)
H) u8 H# S" k. Z* g - (progn3 W6 X( P2 [$ E) ^
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))# Z( r' }: ?4 e
- (if (= ecolor 256) (setq ecolor "BYLAYER")); A' Y6 A) a2 o2 x; d4 u# O3 v
- (command "_.chprop" ename ""
( @% L) k* c9 t. [, o* D7 B - "_la" elayer
8 A. w/ d' e: w6 G8 F9 j1 d+ H- I% S - "_c" ecolor ""
* l& R9 i2 G8 \; H1 s, g; m - )* V. s0 B, z8 b
- )
- S7 z. c2 }$ }2 n - )
$ e" L1 [' Y4 O$ m) v/ M - )0 J3 o7 i2 L: o# N" O
- ;;
5 k5 l6 ~. h4 S& D% B* D - ;; Modify POLYLINE d. ^# r9 a/ ]4 _% ~
- ;;
) Q& J3 N5 m, J7 { - (defun modify_polyline ()
& \2 k2 q% h* U1 q - (modify_properties)3 M' w9 m1 [! G: w# q3 t: [9 C: t
- (if (= ltgen "1")$ p, N; t% m- K
- (if (/= (logand bit70 128) 128)
) N2 d! x; r) g: X - (setq bit70 (+ bit70 128))
, E/ P2 v& P4 }" F. A - )6 K L) Q$ |( G: o
- )
% G4 d* Z% T3 P - (if (= ltgen "0")( e3 ?4 D- s& T5 u% k" B5 A
- (if (= (logand bit70 128) 128)
# B6 H, U" @; ?$ T - (setq bit70 (- bit70 128))
: H3 W- N# y8 w5 L' g" t& c - )
: V+ F. z6 h8 ~( U - )# t9 D3 |4 s9 V; |! \
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
$ o, r. p! K& K5 o5 d - (entmod elist)
9 z( L& y$ d5 c3 Y3 ]; O* A+ i - ;; Added to take care of updating Vertex information for color
- u/ W; E @4 u- W2 Z" U( z6 I - ;; and linetype.
% n. ^( L8 ?. T, G# d3 ] - (setq save-ename ename save-elist elist)
' m: _9 n8 v7 F - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE"), B- [7 y! e4 G3 I
- (progn7 s3 @* i. B# N
- (emod ecolor 62)8 j( t! l( E5 l0 T- q4 ^
- (emod eltype 6)
/ M3 K" C3 C8 X$ [9 U - (emod eltscale 48)
4 z; h8 `/ y9 U8 T2 d( y0 n - (entmod elist)2 B; ~ M* G i0 T8 g0 Y
- )- Y0 h3 @6 t0 D* s. W" n% y' v
- (progn
6 I. }4 ^* n) Y! } - (setq ename (entnext save-ename))( i0 f1 F% V3 ?! g( s
- (setq elist (entget ename))
6 ?$ P4 L" _ b1 v - # P- T/ a' s7 r) x
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))0 Z, X# z2 O. f, T' s/ T9 W
- (emod ecolor 62)
3 D3 S/ a8 z: q( }+ M9 a, j T - (emod eltype 6)" [& c7 k$ B# _
- (emod eltscale 48)
" b: Q4 z& R, {$ r3 ?4 Z) _/ [" u ? - (entmod elist)6 b, t; W7 I8 ?+ W/ f0 ?3 u; {! {
- (setq ename (entnext ename))
9 w8 O, B1 ` c3 m; S - (setq elist (entget ename))
/ v, C0 h6 e; J- [& \# T4 t# I - )
3 _; v% G; G% z- c9 S+ |# X - )
7 i/ t- W: B/ p3 o( ] - )
2 H' r% V6 [' C0 r2 B9 F/ J - ;; Update the SEQEND0 D8 Q6 C& k- a! X
- (if (= (cdr (assoc 0 elist)) "SEQEND")0 ~) ^5 ?" X* d
- (progn
2 S. V3 m3 {5 j; j$ d% _- v6 m - (emod ecolor 62)- l& W M' x: \9 y+ B
- (emod eltype 6)( `7 D7 x# j) |7 a. ^/ l
- (emod eltscale 48)
* ?8 z6 Z* S! h7 E ? - (entmod elist)
. A* X7 @) |9 K3 o+ g8 v& G - )
0 A" r1 L4 Q; z7 H2 \# t7 z4 l - )! g$ i3 n2 V8 Y) J
- ;; Go back to header.
+ T+ m7 C1 d2 V/ ` - (setq ename save-ename elist save-elist)0 I9 m0 h: `" k0 ^( c
- 9 i' @; L3 Z; C& M9 A" }/ z; e
- (entupd ename)6 _& u" F8 G& u5 {) G2 Y$ }, L
- )2 c0 @6 {, w/ z! U, n' c0 ]
- 1 U) |# f. q, r, C; A9 ]+ @% b% b7 Z
- ;; Increment vertex. Set tile values to next vertex4 i x+ g8 Z l$ k8 i5 i& S
- ;;
7 V- K0 s4 ?0 m7 ^- D Y - (defun next_vertex ()) \; B9 o& S! \% h( H, D
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
/ J9 L$ m4 {7 x& ] - (progn
! W* O5 H6 p" I3 \ I | - ;; If the counter reaches the number of vertices,4 c" i1 x7 n% X0 Q
- ;; roll it over to zero again.2 @2 C8 j( Y" F: i8 R" v
- (if (= ctr (cdr (assoc 90 vlist)))$ S$ y* f# B6 N- m n
- (setq ctr 0)( s0 T8 k' |7 ?% ^
- )
5 W) r2 b8 v5 L - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))' E! l s0 m" D5 ~2 P- r/ H
- (set_tile_vpt pointype)
( n8 p2 ~$ ]/ ] - )) z# V8 f4 }% f7 F# R
- (progn
3 f! L g5 w2 O- G - (setq vname (entnext vname))" J# t8 C% d* D/ M% b
- (setq vlist (entget vname))/ A" [; E5 z/ t; H
- (if (= (cdr (assoc 0 vlist)) "VERTEX")- P4 @. a6 h7 S% ~' S7 M' F. S: p) x L
- (progn
6 l8 y* o: @# i/ K- X5 C# T - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
) ^1 E6 G' w) a8 d. F( g - (set_tile_vpt pointype)
2 X* h6 i& x8 [9 U: }. l0 D - )& R) P3 j' T, s) v/ }9 K5 F
- (progn. C: Y. ^- G' g$ n: t9 a( F k$ r
- (setq vname (entnext ename))
! _* R- d* u- @: d& G: L - (setq vlist (entget vname))3 G; C% w2 Q9 D1 f3 D# Y
- (set_tile_vpt pointype)
3 i; N/ D9 C4 u, F - (set_tile "ctr" (itoa (setq ctr 1))); p' h2 U/ i+ j% }
- )4 l' u$ r3 X( P5 \* M
- )1 b9 G* ]- y/ R1 Q7 a
- )
: q8 L8 h6 p8 a( G9 N - )
4 S- b+ }3 B Y - )( S: [$ ~2 x, x8 S4 h' L
O& X4 B4 G2 M- (defun ddpline (/ oldecho)4 }" @! A* W1 b" q
- (if (not (new_dialog "ddpline" dcl_id)) (exit))
( v) w- m* C( B - (set_tile_props)! V$ W* ^' N6 A' d% @9 l8 G
- (set_tile_handle)0 ]2 Q9 Q0 r- K6 A" J
- (setq bit70 (cdr (assoc 70 elist)))
) f' t2 O, G% S- b5 a - (setq bit75 (cdr (assoc 75 elist))) o" A. S- m: m" ?8 ^7 @. C
- (cond
9 ?) T# y4 @5 v+ [% V. y# q - ((= (logand bit70 8) 8) ; 3DPOLY
6 A4 F) i3 M- I# k) R1 ? - (set_tile "ptype" (setq pltype "3D polyline"))
3 [- o+ r8 b; x8 g! Z4 O9 w4 B - (setq pointype 0) ; WCS or ECS point values& n- q" k. H# z2 D# a. G# n/ P! L
- (mode_tile "fit" 1)
( Q: ^% P& X2 |$ K9 q' U8 T: L( { - (mode_tile "mesh" 1)! M" W. o' W7 _" S" n! m' ?
- (mode_tile "bezier" 1)+ q. S1 l+ u& K z2 d1 l' y
- (mode_tile "ltgen" 1)
! L- A6 A! P+ D3 [: C# g$ s - (set_tile "none" "1")
6 ?5 j) f8 d4 ~% f- k! B2 G. j - (set_tile_closed)
$ y& \2 Z! p- b$ n- p' T6 i - (set_tile_fitsmooth)) z2 M6 s( B8 s' e& {. e* v5 F
- )
Z6 S' I$ ^3 d1 v4 t3 I5 r - ((= (logand bit70 16) 16) ; 3DMESH
# V( @: C$ Q% c r3 F5 a* R - (set_tile "ptype" (setq pltype "3D mesh"))) B6 Q9 U4 M* `4 W0 x8 w
- (setq pointype 0)
& S/ n* F& |5 B& ]2 [ - (mode_tile "pline" 1)
4 Y' H/ J/ O% p' [ - (mode_tile "fit" 1)1 ]- [" m Q4 ~: c3 B5 W1 u
- (mode_tile "ltgen" 1)7 B; L% L# W4 ?6 U/ n
- (setq m (1- (cdr (assoc 71 elist))))- }5 c# A: [( [) j9 k' Z
- (setq n (1-(cdr (assoc 72 elist))))/ w: W+ F% n2 q% j
- (setq u (1- (cdr (assoc 73 elist))))
: G1 `0 |5 H$ N M' v5 x) \ - (if (< u 0) (setq u 0))
% w. e& s( S/ R' _7 H% l - (setq v (1- (cdr (assoc 74 elist))))
& k* K( O* J U - (if (< v 0) (setq v 0))
5 M$ } n" Z6 {$ M: m/ H" u - (set_tile "m" (itoa m))/ R- b0 e; c; m q
- (set_tile "n" (itoa n))
% W5 f" ~- `5 I: i8 m& w - (set_tile "u" (itoa u))
' G0 x) g$ Y; |4 b/ {0 a - (set_tile "v" (itoa v))0 i4 w" {1 ^* O* a
- (set_tile_closed)' Q. o+ {' M0 B9 J( A% C3 {
- (set_tile_fitsmooth)
& c- }/ r& h) ` - )+ b# C- O* i, M1 m8 V/ w( G
- ((= (logand bit70 64) 64) ; POLYFACE MESH+ ~$ L4 V( q4 T7 N
- (set_tile "ptype" (setq pltype "Polyface mesh"))
% S9 z; T3 Y2 X5 ^9 h8 { - (setq pointype 0)
; s" S# ^4 _ b$ Z8 r: z - (mode_tile "f-s" 1)
2 W7 v! {8 K; H- i4 q% @" M - (mode_tile "mesh" 1)% l9 I. D9 W. ^! o$ J5 @0 ^; K
- (mode_tile "pline" 1)
S2 [+ [* |8 _ - )
: C3 U) F! ^! j; P( G ~( y2 ?9 U - (T ; 2D POLYLINE
! {- f7 Z" u$ ~0 h% z: X+ } - (set_tile "ptype" (setq pltype "2D polyline"))
/ I" O" L$ a9 L4 e1 A w0 C- w" ` - (setq pointype 1)
& l4 t3 X4 n+ Z! z/ R) f - (mode_tile "bezier" 1)
( j6 v2 ?. M+ J" S1 i0 J - (mode_tile "mesh" 1)+ E( g( e- ^5 G# u( y q& [
- (if (= (logand bit70 128) 128)
2 i& s# J( W, y8 y: M( r/ w- T - (set_tile "ltgen" (setq ltgen "1"))
' `. K9 c% L# K, G5 e* M0 b - )
8 K" {0 j5 t; B9 j A - (set_tile_closed)
U2 Q: ^" Z) F9 @. g5 P% p$ ] - (set_tile_fitsmooth)
8 U, {8 a+ |7 ^/ M - )
4 D X& h& k8 q- B7 Y - ). ~6 J( C$ _# d
, W0 t; Y. S) F. F6 s: F8 _; j2 X- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
( S6 W6 N7 ~. [ - (progn
' h; W- u8 ~# |8 O; r# b - (if (not next) (setq vname ename))
6 p& C4 E; C/ m8 _5 p- ` - (setq next T)
5 O8 V: p- p0 D - (set_tile "ctr" (itoa (setq ctr 1)))& [- U0 X8 B! i6 U; @+ U7 r
- (setq vlist (entget ename)) c6 e9 B2 _) w# x
- )
2 o7 D" y4 b* P* q5 Y j' U - (progn
) ^) w. x) T" d - (if (not next) (setq vname (entnext ename)))6 w9 D1 I4 K# t
- (setq next T)4 v1 d4 q X, L8 T% G& X
- (set_tile "ctr" (itoa (setq ctr 1)))( g% w& D7 y6 a9 |, J w
- (setq vlist (entget vname)): \! k% M7 f$ _& c+ Z) G
- )
; ]# O3 v! T. E$ N* A7 ^0 U - )
P8 n& ]% V( H. o& C - (set_tile_vpt pointype)
$ I! [8 _6 r$ P0 I5 ` - ;; Define action for tiles
# b! ?$ Z G9 L - (set_action_tiles)$ Z/ H4 @- _% W% F+ O
- (setq dialog-state (start_dialog))
& h* J( L) a6 D3 w9 Y4 n# C% F - 2 E. X* U) J4 I6 O: g6 N' j% q
- (if (= dialog-state 0)- s. _' D5 R L: q- X/ o: L
- (reset)
3 x# |1 r" h1 y) y - )
- w y8 ?8 ^/ t2 l - (if (= dialog-state 1)
m C) s( q- i1 q2 C2 W0 M - (progn; K/ [! y; Y G) }
- (modify_polyline)! V) ~8 O: ]' W% J. N8 t6 m
- (if (or (= pltype "2D polyline")
2 H& B; P5 ?; {/ I - (= pltype "3D polyline") y! E5 y: a3 W8 k
- )) O1 [* ?5 X3 c; B {! m
- (progn3 J" h+ V3 C+ e+ |# I9 |
- (command "_.pedit" ename)+ M- F& f3 W) T. {9 I+ h# l0 q p
- (if (= spltype 0) (command "_d"))' b4 `* c; R) J. U8 X1 N* X
- (if (= spltype 1) (command "_f"))
0 p$ |1 p4 P/ c: F - (if (or (= spltype 5)2 Y; {) x1 a5 _4 u- J
- (= spltype 6)7 E8 D3 T, G1 D( @3 _8 I
- )% e) S" v5 b' u3 {+ P8 w
- (progn
* r' L; C1 l; o, d/ C6 P - (setvar "splinetype" spltype)
3 i# g' }" I0 b3 e" A; k - (command "_s")
7 ^$ _8 e+ A' E" U( {' m& } - )
+ d, B1 z- G& f+ y& n; B - )
. ?1 n8 ]1 }" N, q& a; }9 n8 i2 f* v - (if (= closed "0")0 ^2 Z1 ~4 v f& S& c! s5 ~
- (command "_o")
. h4 {' e4 t, p ?7 D1 [ - (command "_c")* R9 l% @! Y( T6 Y4 S8 L6 v
- ): Z; {+ x7 |/ L v% _
- (command "")' w% Y- ]: U+ D# ^4 } |5 a
# L" i2 H+ r' P' d* B5 X- (if (= spltype 0)0 B) A. q/ G+ }/ N8 B, K5 {, \
- (progn: h7 e* Q; J9 I$ U1 ^+ g* X
- (setq oldecho (getvar "cmdecho"))
: A% f+ t: y3 B# l3 ]* U0 b$ h - (command "_cmdecho" 0)
4 n7 F7 a# [" c% Q( c: }" [. h - (command "_convertpoly" "_light" ename "")
7 A$ I/ r) L' B! u6 D+ o - (command "_cmdecho" oldecho)
6 B9 d) a3 O* m) v/ V0 f: `1 H+ ^ - )
9 ^9 o1 f+ A) P) P' F - )$ ]& U1 p" Y7 _# L8 i6 c2 U
- )
& B0 i% A/ W, U3 k4 ^ - )" j+ A0 ^) E& c4 |
- (if (= pltype "3D mesh")5 I, P8 f" _: ]( q g
- (progn
) l& C) J, F I+ ?/ z4 k8 b! g' w - (command "_.pedit" ename)2 D. j. t( U- I U, k# _. M
- (if (= spltype 0) (command "_d"))" h" n, K2 u) b
- (if (or (= spltype 5)
/ R6 G3 }" m2 P2 c- B7 b - (= spltype 6)
' E. n3 h# V B8 L) g: s& ~, l - (= spltype 8)6 p8 m3 K; X) G5 ]# X. S
- )
6 x! O4 X+ _0 x% S; z* Z. t' ^ - (progn( D% u2 s; a4 I. X
- (setvar "surftype" spltype)$ [% s Z. Y% ]/ u+ T4 V) {
- (setvar "surfu" u)! T8 g8 F! _6 n
- (setvar "surfv" v)' P- P. v% P' O. R' Q. n' \
- (command "_s")
% z. e2 G9 ]' V. {/ Y d - )
6 g! I/ S3 {* x& K6 f* U6 h: B$ }1 o" w - )
2 l6 a9 H" z) Q! M: c - (if (/= closedm old-closedm)
" |: Z/ P7 p5 X) M - (command "_m")5 R. X4 |- J0 b8 b' W3 X
- )3 Z" u( t- I4 ~7 N) Y
- (if (/= closedn old-closedn)
. U$ Z- k A2 @1 y - (command "_n")2 J) P7 s' x: y
- )/ R6 Q$ g/ O ~. ?- F
- (command "")6 ? m/ A3 A* \' v$ o. m
- )
8 \% N5 x: _) y8 e8 n+ P( {' Q - )
+ @' S5 C' p& _& T! N. \ - )! `, u; Z* u# L c0 ~! e0 {
- )9 K2 d/ ?0 e! D1 C) `; R& B
- )9 U1 j* N% C/ y& [( a$ W+ l
- ;;2 {6 i( D6 O0 a: b$ E
- ;; All the spline data is contained in a single elist. We must do some4 x: Q9 |9 I" O4 ~) T6 o
- ;; tricky list processing to loop through the elist in order to display
1 t* h; ]: E, `. F - ;; all of the control points.4 N; n% r2 e6 w2 @1 l0 c! w3 t
- ;;
+ i5 r% T5 ?$ H& Q$ H3 y - ;; The structure of the elist is different for rational and non-rational
3 b$ J, K- X; X0 D% H! Y% ] - ;; splines. Therefore, we check the rational spline flag.
, m9 _1 c7 O/ Q( A5 m4 ^ - ;;
1 D: I+ K8 X2 U - (defun next_cntl_pt ()
% F# n5 A% [2 b, ] - (setq elem-no 0) ;; elem-no = element counter0 O" d2 \' {, _1 ^, P) g+ c! z* |0 f
- (if (= first-10-time 1) ;; If first time, find location of first
, w0 V# K" q8 o$ w - (foreach list_item elist ;; cntl point element in elist0 G W4 U0 e" ?3 O/ c0 b0 }
- (progn0 ?6 ^' a$ d, e! X% I2 |+ u
- (setq elem-no (+ 1 elem-no))1 o) h6 ~- |2 V K1 k- O
- (if (= (car list_item) 10)
+ o' q1 T- B4 Y# A7 P2 Y - (progn) u6 A: ]. [ T' a: _
- (if (= first-10-time 1)
- p* h c, B$ N, z - (progn7 s4 t+ b6 k7 L% G: U% X& o
- (setq first-10-rec (- elem-no 1))
, Z. J2 `- B3 c - (setq first-10-time 0)0 h- I5 ?" k z4 G: X$ R7 \" w
- (if (= rational_spl_flag 1) ;; if rational
; f) u0 D6 }" s! W" P Y7 [ - (setq cur-10-rec (+ elem-no 1))) d7 ~) O2 }: ~- J
- (setq cur-10-rec elem-no)0 [. i B/ @$ C% K6 Z; ^
- )9 J' J v8 ] F* J$ e* Q
- )* |* v( U) t1 [) V) M
- )% v; r" c4 i) Q& z" v; ?# o
- ); x; q! N8 i. B1 c% m% F" f# E
- )# O5 @0 W8 L" v) @% Q
- )
0 D( m& @8 k$ I- D7 a7 Y3 v f5 V - )
2 Y* L7 U3 i5 s - )
. ?. ~3 ~# A5 p7 V- x - ;; Now we know the location of the first "10" record; it's stored3 M: b( M$ [0 F+ v2 T
- ;; in first-10-rec. The first 10 record was already displayed when7 g! c0 Z3 i' z) A
- ;; the dialog first came up so let's display the second one when
0 d( u: d3 W. z- Y - ;; the user presses the "next" button (the first time through).+ P) W. i% \% I2 ?; n
- ;;
9 E8 z% m" u; i$ ~ - (setq temprec (nth cur-10-rec elist))
k f! _- M7 P6 h8 B c N+ Z - ;;
4 B/ X" h1 ?) S3 x# A& C! L5 z - (if (= (car temprec) 10) ;; if 10 record
5 ^9 x) u8 {5 ?9 E& Z3 b: Q/ g1 u - (progn$ R! w5 l6 {* `. J
- (if (= rational_spl_flag 1) ;; if rational spline
# @; \" U! N" T5 z4 B7 R0 q# q7 E) | - (progn
9 j/ A2 X5 d1 ^; K7 r) R - (setq tempweight (nth (+ cur-10-rec 1) elist))# F. {' L& g/ @3 _4 Y5 z8 Y; q; o$ T
- (setq cur-10-rec (+ 2 cur-10-rec))
7 ]9 K: y# d% H3 _ - )* _1 A% I4 o8 {
- (progn ;; else
1 N; b/ j" ]8 F" M: X$ j9 [0 ~; s - (setq cur-10-rec (+ 1 cur-10-rec))/ ^3 `- P- H! D
- )* U& l x7 v5 B5 P
- )6 V7 I: W) C9 o0 t6 u
- ) ;; end if rational spline4 S; b" S$ b3 ?
- (progn ;; else reset counters" t, b! e. ^7 M3 O
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
8 [" Z. i8 [6 P0 T( Q - (setq tempweight (nth (+ first-10-rec 1) elist))- f6 p# F+ v& D; { @8 D
- (setq cntl-pt-indicator 0)# {# L* W: G; O$ ^! |% m- y
- (if (= rational_spl_flag 1) ;; if rational
$ t/ U4 t# P) Z1 p4 ?7 X7 u7 G - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec3 I+ }7 W1 d5 O, @3 {
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
3 {. F. j% {8 B2 |" O - )
: c0 r# I& T" `7 _' H3 K9 y - )
/ \9 N3 X7 q6 x/ e6 Y2 h - ) ;; end if 10 record
* J1 G9 i, j3 b* _, } - + t% {+ U8 n1 Y2 |) M, E
- ;; Display cntl point, weight and ctr. Increment ctr.
: I( h( Z+ j9 h0 A S* }. c k: m; g - (setq cntl-pt (cdr temprec))2 |' G$ ]: I; f( w, N8 m
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt)))), c7 Z `+ c. |5 w+ Y
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))0 o3 \8 }' E5 E3 H1 J2 l5 I- A
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))4 y. c' r% C. c. }/ D8 h) G' Z/ {
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))+ n: z2 x& {2 L w
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
6 I) a+ ?) l- L0 P - (if (= rational_spl_flag 1) ;; if rational2 P% S0 y4 ?! O! x! F
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
% o- x0 {$ a' \ - (mode_tile "weight_text" 1) ;; disable wght( u; G3 ]* @0 M9 Q
- )9 ]& @$ e5 R2 x0 v
- )
9 s- H+ k, p* ^! g: {, T - ;;
- S1 X! Y J, p) T( u: ] - ;; All the spline info is contained in a single elist. We must do some* B. J2 t2 u# t. ~2 k" K( X6 O3 Z
- ;; tricky list processing to loop through the elist in order to display* N% [ y* @. N! f
- ;; all of the user data points.
* t" E* t) U: |0 @8 y - ;;0 r6 s$ ~& U- t7 w
- (defun next_data_pt ()8 b- M$ O5 A. V
- (setq elem-no 0) ;; elem-no = element counter
: a$ l0 i: z" J6 m5 g0 _; t - (if (= first-11-time 1) ;; If first time, find location of first7 c2 W: \; @# w8 ?
- (foreach list_item elist ;; data point element in elist7 j5 u4 J3 f: c% r
- (progn
3 ?* U U1 z- u, j1 ^1 \7 l - (setq elem-no (+ 1 elem-no))
, L' D2 s6 X4 H - (if (= (car list_item) 11)
8 e3 z* \+ b- U - (progn
( [" Z: N: z2 J1 b, l! ] - (if (= first-11-time 1); ]" K8 ?, w( [; D l0 {# m& W
- (progn
% z5 O4 P6 X8 [- l - (setq first-11-rec (- elem-no 1)); f1 e% L8 W# C* [2 B
- (setq cur-11-rec elem-no)4 Y) K; J* m, b. A' `
- (setq first-11-time 0). }* A( f' {; W' }
- )
" x) K. G9 u& `! _' u4 g - )
* p) e: T0 T3 ^$ {: |' W5 I - ); ~* h4 J) E- O8 O7 P$ o8 }
- )
- ^8 C2 \3 L9 V+ Y0 H) k3 ^ - )
3 i! q, t2 o8 v( f- [% ~& g - )
; f/ N% E. s2 n; j6 U4 |. H" ?( U4 V - )
' k% M5 L6 W( o' X1 K - (setq temprec (nth cur-11-rec elist))5 e0 @" [# _) V O: x6 U* g& d
- ;; If it's not a DXF "11" element then we've gone past the last) j) {6 T+ ]6 w5 v3 _
- ;; "11" element. Go back to first "11" element. Reset counters.
& X; N( X7 ]: e @ - (if (= (car temprec) 11)
( ?3 s5 W6 ~" s! ^- e$ L& ] - (setq data-pt (cdr temprec))
% }7 Z1 }6 p0 [; x+ F, @8 h - (progn ;; else
' ~' Z. W: S; c' x - (setq data-pt (cdr (nth first-11-rec elist)))7 L' I" p$ l7 m9 {* n$ }
- (setq cur-11-rec first-11-rec)
* A: b! |! G# m* M6 P# { - (setq data-pt-indicator 0)
$ G. x/ e5 u, Y7 _. T$ r9 V; K. ` - )/ m3 z8 ]# P" w( U
- ): A& E; v7 A/ X$ W) h
- ;; Display data point and ctr. Increment counters.
, }" W# P6 p" A& R0 ~ - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
6 X2 X! X# h/ U - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
8 y; N3 w+ \) S' K# g - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
+ n a* w e" o - (setq data-pt-indicator (+ 1 data-pt-indicator))
) v3 j8 v5 B9 ~( Q, E1 b/ Q9 | - (set_tile "data_ctr" (itoa data-pt-indicator))
7 W" ?5 R* b+ C* k1 m# H - (setq cur-11-rec (+ 1 cur-11-rec))
5 l- E; J1 _, L- ^$ {, s& K* N - )1 ]4 k, E0 q: I9 T7 ]: ~
- ;;& Z# u. I% b. `3 Q3 X
- ;; Modify SPLINE
3 i& K% t6 ]& n6 b/ R5 O% D$ S J - ;;0 x$ o6 o; K1 R v
- (defun modify_spline ()' h% @" t/ m( H
- (modify_prop_geom)
+ W8 a2 t; K5 o; d - (entmod elist)
3 q2 c* |+ P. {3 w7 \; F( s - )/ A0 n$ ~, z$ D! A6 [( M" v
- 2 ?/ T( V c5 O
- (defun ddspline ()+ o; `3 m; e+ P C
- (if (not (new_dialog "ddspline" dcl_id)) (exit))
Z& N4 A1 a$ k) ]) v" ]! X7 E - (set_tile_props)
9 H' j+ n9 W9 I7 m, k5 [2 U - (set_tile_handle)4 ~, X, U) @8 b9 n
- (set_tile_spline_props)
0 [( c, H- Q( v8 [ - ;; Display first control point
/ c8 p; ~+ W* j0 P - (set_tile_cntl_pt)
4 W, O. Z; I$ V/ n* x h# ] - ;; Display first data point
, X+ B: M3 O' m4 Y0 X - (set_tile_data_pt)3 Z5 {: r' u7 T6 o# r4 |, H
' }8 N1 D: s7 Y) i- ^- ;; Initialize flags to indicate first time through the dialog.2 L& |0 Y8 Z0 s5 R2 ]% H: G3 T6 _
- ;; For control points and user data points the "next" buttons
2 S7 [$ {, [ ^% I# g; k) P1 V - ;; in the dialog call the appropriate functions.! o( l; u" p" Q3 G6 S2 D
- (setq first-10-time 1)
$ g2 m5 _! {5 x; G. l6 r( v - (setq first-11-time 1)4 T G* B# S9 T' Q% E% w0 ^
- ;; initialize control point number counter
! H, T( u5 a* @* i8 d) { - (setq cntl-pt-indicator 1)
9 ]( r/ X" O, }, u# z! Q A - (setq data-pt-indicator 1)4 N, X0 k) X2 F5 K
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))% X+ A( e4 i3 q2 y7 s1 o* Y/ v
- (set_tile "data_ctr" (itoa data-pt-indicator))
0 @& ^; e# h* k# w) C! p5 u - (set_action_tiles)" {, d% b) v- U0 T8 A9 @+ P
- (setq dialog-state (start_dialog))4 z% g7 K, w: }& m
- ! v7 o# j( s S d r6 G
- (if (= dialog-state 0)
3 |6 ~9 _1 v0 H1 c' f9 Z, V - (reset)( q3 K# N7 R4 `- O
- )
6 v8 Q) Z( R2 | - (if (= dialog-state 1)# P! X8 ]3 X- b5 p' b" }: r/ N
- (modify_spline)
- j& l3 B/ \8 o* C' C - )
3 H: y0 ~" L+ _ - )
& ?5 q9 K7 N9 \' _7 E - ; {9 r* z6 Q) j2 s2 e! V/ Y
- ;;
$ O" x2 G, }! \# R - ;; Modify DIMENSION
* U0 `" U c9 A2 ? - ;;
" m; u9 o2 B: L" P& u* H - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
3 J1 d$ G& n) _2 v) i0 u: _ - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist; w) K, E" w) q) N! v
- dimtype dimsvcurset)( A/ T/ J9 g2 M7 }! X+ P6 l
- (setq dimtype "DDIMEN"
* T" k' S$ e( [7 R1 M0 r - dimsvcurset (ddimen_dimsty_restore)( J4 |! y! z, T8 f2 G2 v
- )
g" y" N' d1 T% i - (if (not (new_dialog "ddimen" dcl_id)) (exit))4 m7 I0 B+ T' Q
- (set_tile_props)
7 @, P6 n; n; O; X4 n - (set_dimen_props)
" e$ M" o8 `$ X - (setq dimtext (cdr (assoc 1 elist)))
2 B* e- X3 ]0 C! }; Y* |$ C - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))' O4 B4 W$ W& O0 P p0 k
- (set_tile_handle)) v3 J9 B5 C# V5 u% [) }" I
- ;; Define action for tiles
, r6 C6 Q' |8 ]. p5 u' } - (set_action_tiles)
" u, R# ^4 v3 m, z! a; n$ \2 S - ) U! T- Z* n* ]. d
- ;; Set initial focus to text edit box." A2 I0 k9 k* d* n0 x ]+ m0 @; p5 F a& S
- (mode_tile "t_string" 2)8 F- G) X( e; T I
8 {+ R, j( n0 V7 U8 f. u2 [- (setq dialog-state (start_dialog))
5 ?# s9 D; Y) z9 U - (if (= dialog-state 0)
* j3 A( S+ E/ N I0 y2 b - (if (= ddimmt 1)
7 D6 ?6 C a, o; g! e; P - (reset)
) i5 ~( j4 |1 H8 y5 h - )0 L# l; F$ A) k+ O( V( h9 W5 U
- )$ G% ~; Y' P7 E
- (if (= dialog-state 1); B/ R( S! q* R2 b. A) C
- (progn
4 i- A- P# J# l4 b; C3 t - (if (/= dimsty stname)
0 I/ z8 S+ Q9 M& Z - (progn
6 Z, t7 I' B; |5 f8 m" A - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
, d7 d/ N. x/ g$ e( a. N - ; doesn't have it., ] n0 [) F3 e- T/ H& F
- (if (null (assoc 3 elist)), f% V" J: ^: z! v
- (setq elist (append elist (list (cons 3 dimsty))))* n! S, ?7 y. X8 s# j
- ; else just replace it.
* c | w, P0 e - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
$ _/ X& ?' S0 D6 I" K - )# ~- p0 B' j& q4 m. B n6 a( u
- ; refresh sv_dvlist with new dimstyle.
. b- N" r; a! t: r" i# {4 C - (setq sv_dvlist (tblsearch "dimstyle" dimsty))8 p1 x! s0 W/ P0 e$ [
- )
: H$ a, z, z* s - )( x. D2 v6 X8 ^
- (if (not (null dimlist)) ; attempted to change dimvars4 f' a, W$ B3 H4 c
- (ddimen_complist sv_dvlist dimlist dimtbl)
8 u4 w d9 b9 O/ a$ }+ U9 D! a - )* x: Z9 `" `4 y+ N* d
- ; Modify dimension text k R( ]- ?1 A: j
- (if (/= dimtext text)
1 D7 V1 u" P" ` - (progn
& A( Z R& _( r - (setq dimtext (if (= text "<>") "" text))
. i$ Z/ P2 p) {5 r$ s0 E8 V - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
$ ?" X. }' v4 O8 ^7 Q/ z - )
6 ?( ^$ w8 g- v0 N' C! j# {7 w - )
* U' ^2 r2 x4 U2 s - (modify_properties): C( W: h1 c$ H/ Y; D# [5 ?# s
- (entmod elist)
8 q7 B C4 O' h) A# G7 Z+ b; L% D& U - )
$ b- X b m: e) M7 ~ - )' S; L$ E; p9 {$ G
- (if (= dialog-state 4)
3 P# a, [2 J# Y - (progn
" i) s. k6 V0 p, S& t* y1 `' _ - (setq ddimmt 1)1 Z7 w- C& V$ M' N5 I" J
- (if (/= dimsty stname)
" R8 ^% Z) D' O7 V - (progn. k3 f5 v! ]2 J) i
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
8 N; e* `, }$ g$ S# U - ; doesn't have it.8 I/ M9 h! q6 j3 \+ h
- (if (null (assoc 3 elist))
" H& @5 h9 Q# X/ E - (setq elist (append elist (list (cons 3 dimsty))))
/ I7 y+ M7 p7 b, l) w- N7 Y0 N - ; else just replace it.
4 [& |: o7 H( i: z& d- q - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
0 O% z6 G/ D% s& c9 M) V - )1 R( C& s( d4 b% D% c8 G
- ; refresh sv_dvlist with new dimstyle.
' T4 m$ r! M, E8 Q6 V( c6 } - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
5 x8 [7 T2 U) |" z$ d, E+ p8 h( _4 ], l - )2 {; ? h% W% b0 L; O
- )
' U Z8 P2 r; b3 {! H - (if (not (null dimlist)) ; attempted to change dimvars: s5 J" j) I" s' ?. e3 [; q3 v
- (ddimen_complist sv_dvlist dimlist dimtbl)+ A% n( ^( ^4 ^$ L' d
- )
6 a$ [5 f4 C7 w& b0 [ - ; Modify dimension text+ O5 [ }2 p, j; S2 k/ |
- (if (/= dimtext text)
! ~9 g7 w* u, V4 i$ U7 d% `4 x) @ - (progn5 I3 M3 P. j' D, v# t% H! m
- (setq dimtext (if (= text "<>") "" text))' L V$ T) U+ D4 v, w4 ?# G
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))) L% e7 j; a& n$ x3 u7 T* e
- )1 P) y8 o& H1 q
- )
! y2 n5 J+ u2 w" d: ? Q - (modify_properties)
( G. X2 N9 ~+ V% ^ u! D - (entmod elist)6 n' x7 k! d0 k( @. p
- (safe_ddedit ename)) C" N$ P/ |8 W8 i$ f' G
- (setq elist (entget ename))0 d, f3 h- b$ x/ `* }: G
- (ddimen)8 S8 E1 W3 N# r) g) j- U+ J( M
- )1 [0 a% W s, N. }
- )
1 G% J7 e- Q% W P G - (ddimen_setvars dimsvcurset) ; Prepare to exit& ^, U8 `1 g& U
- )
0 _% I ]( \2 I8 t7 F1 ^5 ? - ; m& Y9 B/ z: `
- ;;
3 i8 e/ ~6 X* P% o" |- ]& L6 ? - ;; Modify TOLERANCE
# X, L& G7 M6 m; @* y - ;;5 N& s9 E* y. U3 V: K' t9 i: N
- (defun ddtolerance (/ a stname n dimtbl
* f) c" B$ F9 l' _8 Y - dimsty dimlist dimovr sv_dvlist stlist dimtype( \: n: X w% A* a
- dimsvcurset)! k9 o/ j; l8 ~+ U0 n) v
- (setq dimtype "DDTOLERANCE"$ @# [& ?) r$ J+ k! C
- dimsvcurset (ddimen_dimsty_restore)
/ ? n* g! N- b _2 g - )0 e( d' C2 H9 \* m
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))* x" |. J* ^% ~' o# x" Q
- (set_tile_props)
3 K9 r" F/ P( K5 _3 W% H1 A5 i - (set_dimen_props)0 _$ g; O6 V! r* f/ }0 O" ?
- (set_tile_handle)
$ [9 s, `" {$ [! s5 k - (set_action_tiles)5 j4 _: j S: {
- (setq dialog-state (start_dialog))
0 N5 |& T% H% J7 J - (if (= dialog-state 0)
' c. }% b& K4 P8 V( x* N+ ~: z - (if (= ddimmt 1)* j, V# q4 o% x8 Y- O) a
- (reset)
+ V( K7 d- h. i. ~& x0 x - )" I0 N4 d8 w) Y. h5 L* n
- )
s4 G+ B j# ]4 ?/ Y8 \7 K - (if (= dialog-state 1)
7 p. ]/ v' i, C5 m5 s1 X6 x - (progn
, T1 ^! _8 U1 k! E0 G. e' Q4 u M" ? - (if (/= dimsty stname)$ N! J7 l [* S# ^' b: C5 o, w4 S
- (progn; [; x$ |4 U7 o2 H+ g
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
* a9 S* ^) v+ k' P3 S - ; doesn't have it.2 s) O' F V: W1 f" b
- (if (null (assoc 3 elist))
2 _/ A2 I6 X9 o e - (setq elist (append elist (list (cons 3 dimsty))))
" Q4 K: i) V+ L - ; else just replace it.) `6 n5 b+ @+ t9 Q' s$ D
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)). e6 f6 |8 D. m. U0 j! c1 A" w
- )
4 D/ K4 j* Q# X! ^3 W/ b - ; refresh sv_dvlist with new dimstyle.
& t. @6 v$ r' L& V0 i' Z, V9 b - (setq sv_dvlist (tblsearch "dimstyle" dimsty))% N% H* V3 e9 l* A- s' p
- )
" C+ O# S! K, o1 ~! N# o - )
- x9 k! M' e% k! @. F" I# s3 d% d - (if (not (null dimlist)) ; attempted to change dimvars
6 F5 m2 c6 j i* z$ D - (ddimen_complist sv_dvlist dimlist dimtbl)1 Q3 ^9 w) {9 q2 |
- )6 e8 Y3 d6 X$ z* i/ {! [6 N4 _
- (modify_prop_geom); `3 w7 g8 K3 @4 @
- (entmod elist)
5 \9 z6 U9 b8 j( h* ?7 d$ a/ C - )" D, p. |5 c4 _! y( j
- )+ K5 U* D6 g+ v+ V. L& }# J. G
- (if (= dialog-state 4)
5 {% c: O+ e3 k, z/ d; j - (progn
. W! H3 z# j/ \7 [* y% D - (setq ddimmt 1)6 B: |3 |* q& ~! f7 U1 S
- (if (/= dimsty stname)2 Y: E6 d- m) ~$ [: ?. a3 i
- (progn
+ M, |; j1 w' b: c8 A - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
5 i3 X# ?4 k8 B- B1 ^ - ; doesn't have it.
/ l0 n7 K: N9 O2 e - (if (null (assoc 3 elist))
3 j( v1 F- J0 {" W. | - (setq elist (append elist (list (cons 3 dimsty))))
" q' P4 j# k8 w. x - ; else just replace it.( M4 `1 o" i2 W) b u& |4 d6 V8 l
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
# R: L- I: r% e - )
3 V$ ^# [ O8 W. T" b - ; refresh sv_dvlist with new dimstyle., O3 g0 r, C: W" U" N6 G" Z
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
5 h' `8 m. E0 N Z - )
; \0 G0 w& k {) _' J& w - )# z3 I3 n" W( G- V( N3 d. p* s
- (if (not (null dimlist)) ; attempted to change dimvars" v/ [$ x+ j) X2 r. I' y P4 i
- (ddimen_complist sv_dvlist dimlist dimtbl)' k2 p: Z2 K- w3 V; f
- )
( j% c& p7 {5 P6 [+ \- F - (modify_properties)5 B6 y4 f: L. o5 S
- (entmod elist)% p: `2 b# D# Q- H, U
- (safe_ddedit ename)
' o2 \0 x2 x3 s) ]3 d5 H - (setq elist (entget ename)). R# ?1 a$ I1 U7 n
- (ddtolerance)
, d7 G" Y8 E' L2 j& { - )* i/ F. {9 }9 _& l. |1 B
- )
# _7 \% S7 h4 R% N, _ - (ddimen_setvars dimsvcurset) ; Prepare to exit
4 E( D; D( y& p8 S# d4 J - )
1 e# |; K. B) r0 \9 I2 d
8 D& P+ K% |, \- ;;+ X X: @9 n5 _# @1 C% z/ t
- ;; ddimen_dlg - jump to ADS ddim module
( Z# K3 f7 w8 n3 p - ;;
0 G5 @0 Z' ?9 V; \8 k7 ^" l) Q# j - ( A3 w- W- D5 I9 u7 x: \
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)5 T$ z* h0 |6 x5 T
- . F4 C! ^! Y( ?3 S7 U0 V
- ; Jump to DDIM with overrides if any.
R- N0 E: i6 @+ v/ W7 }$ x$ y - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
) d" P* Y2 ~" K3 m. ?+ L - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format! w/ q. q( v$ m1 Z7 y
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation- i! O% M# O/ A/ b. H0 a* t8 z
- ) ~! G( P% m6 X$ T/ c9 @' k D
- )
; s5 `) h: Q- }# I6 ~ - # L! U3 v! K- c) z* g2 @
- ;;
0 X9 T7 b* o) U0 D - ;; Dimension variables updated are stored as overrides.
9 B2 }% B8 y& V, f - ;;2 U" g7 H% ]* Q4 X5 K/ \
8 R, Y6 W9 Q$ O3 y! i8 N- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar1 k1 o' ? j8 S, c# r9 W& N
- dv dime commandIssued)
9 U, S# A! H3 x9 G5 l8 d - % Z- ^1 I6 [; }+ h
- ; Here we skip the following first three items:( ?/ e3 m3 F+ R8 t4 C; l9 A
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
/ H6 w/ R( k( M% W8 t, u J - ;
s9 A% v3 U2 I* ` - ; The list comparison immediately begins with dimvar.
# a, h4 y/ F0 q( P: I* G - ;
$ F5 D* Z7 r9 T! x - ; dimolist - original states of dimvars% A" [( _! [9 r" `& Y/ H
- ; dimnlist - new dimvar list which is of the resbuf's
, O* w( C5 b2 q- c0 X% W - ; dime - entity name for the dimension6 p1 ~0 h+ X. r) A Q L6 _
- ; odvar - value of dimvar for the dimolist
7 X2 ]8 O6 f; t6 q" }: W3 r! b; r9 ` - ; ndvar - value of dimvar for the dimnlist3 l9 X/ P7 G4 \/ H/ Y* Q2 }
% t0 V! P! R# i$ S8 q- (setq i 3
8 Y/ B: I' Z; e8 H/ r - dime (cdr (assoc -1 elist))- j n" D$ a7 V# c
- )/ M. u0 N0 W6 }) g- d& S& [
- (while (setq odvar (cdr (nth i dimolist)))+ ?* S' [' u4 `2 r6 d
- (progn& d- t# l2 L, R5 @
- (setq ndvar (cdr (nth i dimnlist)))9 p e" v" ^( `: K% b, I
- (setq dv (nth i dimtbl))
A, D' L% I/ O. B: H - (if (eq dv "dimtxsty")
4 J- m5 C* g+ Z' c- `, {4 \% ^ - (setq odvar (cdr (assoc 2 (entget odvar)))
. y* q& J3 c/ r - ndvar (cdr (assoc 2 (entget ndvar)))
# I- @# ?, O- P9 l, j4 g- [1 \ - )) `; s; P2 |! I- J6 G# D& J
- )" X/ E$ Y1 n4 j0 A% B/ C
- ) R# j4 w! f6 b6 W
- ;' w4 L/ g- f% Q2 g* f4 {; S
- ; In order for DIMOVERRRIDE to operate correctly with string; n, X7 e) }4 `* j0 D* ?" W h
- ; based dimvars, we must pass "." versus NULL strings.
" L+ u" B* }: F# g$ `- m' k6 p. N0 N2 } - ; In this case ndvar is the new dimvar value the user wishes, z! w4 u- G6 v5 `1 b& ?
- ; to update on selected dimensions.
0 H7 h6 D/ U9 s5 a0 ~ - ;8 v7 y: P+ g! c3 o' u
- (if (/= ndvar odvar)
2 v8 f" h. k8 ] - (if (= 'STR (type ndvar))! A. {$ p0 e: @" X# |
- (if (= ndvar "") l6 E! d3 p3 F) d) M* a( M
- (setq ndvar "."))))4 c1 j- e, P1 M
) V; l; b7 w \# U/ }% n) T- (if (/= ndvar odvar)
. }' i0 F: N8 M, B O6 Z/ ]; a; N - (progn
0 _! [1 ^( z, m$ K - (setq dv (strcat "_" dv))
8 T( M9 i% I; \7 Q: f9 I- o. z - ;: l' ^7 z* ^1 {3 A
- ; Start the dimoverride command
) v; H6 U7 p7 O' H" G9 c0 {. ` - ;! m& J4 p& L: s5 E( A' W* A9 o' P
- (if (not commandIssued)
! f9 e$ J: B8 ?6 C# L, {; B - (progn
6 ]1 [( U4 }$ e4 t5 G4 H0 u - (command "_.dimoverride")
% t! h- S* q7 @2 M - (setq commandIssued "T")) [2 h$ m9 h5 s5 }7 B' H
- )% z0 R2 \ B) F. r+ |# u0 D
- )
) n" s# T" c: M - ;
% m4 a' z8 D; z3 K3 I8 R - ; Issue dim overrides" W) ]. B; d7 R; [9 f0 N
- ;% X7 K* T" g# o0 Q" G& ]
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre")) U: }" {0 v7 S' V- H6 B8 a
- (or (= ndvar 0) (= ndvar 256))
/ y# y0 G% j8 C7 h5 ~ - )
2 T: A9 c! c! N - (progn& l/ l& _5 J% R; h4 u; m8 R
- (if (= 0 ndvar) (command dv "BYBLOCK")); d0 l- C+ @# J
- (if (= 256 ndvar) (command dv "BYLAYER"))
- i9 |3 a# N5 d& s/ R1 ] - )
* [4 t& T! h- a* b - (command dv ndvar)! |6 f3 N/ t# e
- )2 A6 n8 o3 z8 Z& A6 ^* R) d
- ), P9 ^, K8 Q2 I! J
- )! f7 T, G' M7 v7 v" t' v
- (setq i (1+ i))
6 i6 c- W" p& e$ w! Z. Q U - )5 \, \' Q, D7 g5 \
- )' B1 n) j7 f: J" W- H# M
- ; F$ t& E6 S% }' W% g" Z, Y. g) \
- ; Select Entity and terminate command# s' T4 L" d" R1 |9 t* F" v( K
- ;- x" l/ W# n# e$ X; X; @4 E
- (if commandIssued
& Z+ c6 E; F! M7 i' W - (command "" dime ""), z1 Z W5 t6 j2 z! ?7 U
- ), m7 d8 C ^" x/ ?
- )# @: |% a( a/ p. N' | [% E
( h8 ^6 W& G G% T5 \- ;;
" r% P2 ?" Y+ ^8 a - ;; Get style name currently selected style name.2 q# O% m: C- y# t" Y: l& X, j6 K
- ;;
4 Q9 g* T6 x- ~& k - q) A! `' ~: [" u; k4 _
- (defun ddimen_style (/ dimsty)3 D% s( P7 \ K; `$ C8 m
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)5 B, l9 C1 e! m3 ~5 m
- dimlist (ddimen_getdimvars dimsty)2 H5 x* N* ?% K# ~2 l# r+ @$ D
- )3 M' z" B: S% a0 K! }, o3 v/ P
- dimsty( z' R4 n$ f0 y
- )
9 L/ S, u4 v n: Y6 `
: c: `4 E( v) `6 a4 H: V- ;;6 |- r0 U2 @& b- W$ }
- ;; Set dimvars
/ E$ I K* H, ?% Q" D- \3 S - ;;% K% g0 ]8 t8 J4 x3 b# O
- (defun ddimen_setvars (dimsvcurset / dv i)
( s, s# M/ T/ Z, O1 }9 u - (setq dv (cdr (nth 1 dimsvcurset)))
% ~2 {+ D- O$ B# A6 V% W; R9 m - (command "_.dimstyle" "" dv)
1 }4 U4 n4 p" V! B - (setq i 3)- H% V, n2 l3 W; s
- (while (setq dv (nth i dimsvcurset))
8 t& u: i* V# l2 a - (progn
& y. @ w9 A8 m - (setvar (car dv) (cdr dv))% ?+ @# g" H( V' U2 i# c3 K
- (setq i (1+ i))
7 e( ?# e& P3 {0 Y# I, U# S8 S - )
, {. v: w# \8 A, s! P; g* T9 m - )
6 ^* c8 y! e% k6 M) L - )4 _4 J4 i- e2 c( F! n' D/ d/ o! Q
- ;;( b- ?0 h9 O) M7 X) L; D+ {' m- f
- ;; End-of-dimension
$ I! G, j1 s8 I1 y8 L - ;; ==================! Y# p. F' O" h8 O; L
- - z& s1 L# _* {- g+ y: S4 G' g+ O
- ;;
) f% x P5 h5 W& V* ~& d, r+ P - ;; Sub-dialogues for properties. Common to all object dialogues
) b. R: }. z$ O' |/ S n( w8 ~* r - ;;
$ h; o4 V0 \6 [6 U - ;; This function pops a dialogue box consisting of a list box,image tile, and
3 B6 [6 G C/ L - ;; edit box to allow the user to select or type a color number. It returns" `- _7 i5 \7 U* n
- ;; the color number selected.
5 F6 F" p% P1 E; { - (defun getcolor (/ old-idx colorno cname lay_clr)( T8 G9 E) f9 H/ A7 S9 i6 @& T: i
- (if (= (get_tile "error") "")
/ B! [% E) s# d9 l! I/ m: }, U k - (progn. q/ D& p# c: s8 @& D0 l b5 F
- ;; Get the color associated with this object's layer, for use5 M Y- l4 Q# K9 {% J P; e2 O0 v
- ;; in the color swatch if the user selects color BYLAYER.( W9 f8 x$ a8 H+ v& s
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))- C' g: `) ~# I0 q
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
! C. u7 A( _7 A% P3 Z4 s, B - (progn
& w) \, s! D3 g1 ?( _ - (setq ecolor temp_color)' |8 `; ?5 c3 {5 ]8 Y' b5 L0 Y& d2 Y
- (setcolor)
6 N& G7 r7 c# i0 J4 Z7 k" X8 u - )
4 ~, ]9 D& i+ a" _, `* V) ? - (setq testcolor temp_color)! {* `# T, O6 K/ b3 J" [
- ) w. P9 Y, R) K- G
- )" Y \! _, g- Y0 I2 W" _. n: s& `
- )
% s- K9 G; s# {% Z9 V - ecolor
+ d) t2 B& c, W - ) N$ d& O; q: k) k3 T( H E
- ;;
0 q" }- ]8 U% l6 J( Q - ;; Function to set the color tiles.; B( g8 n6 T$ B
- (defun setcolor()/ x' E% }: C, s0 l6 D
- (cond4 [: R# u( f: I: V8 |; N4 q$ C
- ((= 0 ecolor)$ u$ ~( B+ n S$ ^4 a
- (set_tile "t_color" "BYBLOCK")! T9 ^$ f* R/ e" i/ W
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white: ~, f; O: Q" E& ]
- )
! c; a. }" A* C% F3 t+ C2 [ - ((= 1 ecolor)
" e1 g+ A" z" K3 y0 E( N& Y - (set_tile "t_color" "1 red")9 a) q4 N& p2 y2 P' I
- (col_tile "show_image" 1 nil)
; [0 Z0 N. f$ }! {0 P - )$ I4 R( F F& i Y( U: \
- ((= 2 ecolor)* _3 \- A V7 \0 S$ C, Q! d
- (set_tile "t_color" "2 yellow")4 z3 {5 \5 ]9 `; Y2 @) d8 r
- (col_tile "show_image" 2 nil)* [( u3 P( m8 u- h" \! o
- )
; o* c5 P o. ^6 e - ((= 3 ecolor)% a) ]* P. M3 j" R2 p
- (set_tile "t_color" "3 green")
: [8 J7 H$ E- {" c - (col_tile "show_image" 3 nil)# }6 Z+ R9 x& `( X3 k2 Z
- )% }: ~) @8 g. k f( s# _
- ((= 4 ecolor)
# \2 E: R0 n3 y# s! d - (set_tile "t_color" "4 cyan")$ R! Z9 A* p6 C; R; L2 K
- (col_tile "show_image" 4 nil)' {% h4 O$ G( a2 G
- )
: \- |4 } ]4 L8 X# i - ((= 5 ecolor)+ h* g* I8 a, p+ i' ~! K X5 @
- (set_tile "t_color" "5 blue")
" u0 ^9 \! O. h+ i4 Q( e; q& R - (col_tile "show_image" 5 nil)$ D# w( N3 @$ q, Y4 \7 M- ^2 ]
- )
2 l9 a/ |8 x. r - ((= 6 ecolor)
2 l3 ~& z4 m* J6 y% S0 y1 _% ^, p% Z - (set_tile "t_color" "6 magenta"): ~4 Z/ _4 V5 u+ c l
- (col_tile "show_image" 6 nil)
* Z8 @( n K. ]" g - )
" D7 O! H8 h9 t/ u - ((= 7 ecolor)
& l8 g/ F |1 m2 A8 l - (set_tile "t_color" "7 white")
# u# y0 v: l' s4 V/ Y6 o - (col_tile "show_image" 7 nil)
4 A& x/ d: W6 H9 e. }& k( L - )
7 [" l& D0 y) V7 g3 T - ((= 256 ecolor). n) k+ f, H5 @/ B& k" c
- (set_tile "t_color" "BYLAYER")
+ W( j( R; m8 l b8 z; o - (col_tile "show_image" (bylayer_col) nil)- h* W0 C+ R# m- P- H
- )
" I3 J6 H9 F5 l! f2 I8 q" q2 g - (T9 n/ t. F4 Z- H" o+ T- r# z
- (set_tile "t_color" (itoa ecolor))1 Z& E: f: k' ?3 l) x+ q' d
- (col_tile "show_image" ecolor nil)4 _, Q6 N7 Y. R4 q. i( }2 x$ j4 \
- )
1 A% O, t* w' }8 a, a0 D% h - )
: X9 i" N, t- _/ C r' X) H - )
# N! Q5 {. l6 R) `( | - ;;+ l5 P" _! ~9 r- H7 g# W" [
- ;; This function pops a dialogue box consisting of a list box, image tile, and
" H& n. l3 x% G* F" a - ;; edit box to allow the user to select or type a linetype. It returns the
8 j; C+ K/ i5 M z7 x! v - ;; linetype selected.
9 f9 v5 D1 u* K5 K: i5 d - ;;0 W6 C- X& T4 c5 X, O" O% r
- (defun getltype (/ old-idx ltname)# r9 N( m: r# G& ^( l4 z0 u7 q
- (if (not lt-idx)% E- ?% E% \: B E. V
- (progn1 i: `: ?' @6 k3 H
- (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
$ Q0 F8 p" A+ k - (cond
9 k. M$ O+ a$ p( y7 Q4 l - ((= eltype "BYLAYER")
7 x9 h! B$ e0 W+ Z% [( X - (setq lt-idx (getindex "BYLAYER" ltnmlst)))5 R# l0 V+ Y( ^8 B6 A
- ((= eltype "BYBLOCK")
4 O1 {! D4 }5 R! A5 h3 w. K/ G; u - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
3 m1 a" ^: e* ]' x, m9 b+ Z - (T (setq lt-idx (getindex eltype ltnmlst)))0 @( ?- o, l/ S# |8 k
- )1 A5 d$ F, P7 v
- )
" {$ a! u4 p' E# i. f t5 O0 g - )
) o( {7 W$ i) W' Y$ ~
" y; K6 F5 z+ v4 B( v7 k( _- (if (= (get_tile "error") "")
9 z- [! w s* s9 e - (progn
( X4 L( x- L! M2 c+ p1 I: y - (if (not (new_dialog "setltype" dcl_id)) (exit))
d7 A( O! Z8 g0 N X9 { - (start_list "list_lt")
7 Q& n* ~' Q! q! j' {6 a* x - (mapcar 'add_list ltnmlst) ; initialize list box
6 N3 K9 E! P P - (end_list)% v$ h4 g- m8 ] r$ C. W
- (setq old-idx lt-idx). R/ t- ^" [0 T+ v5 A; v
- (ltlist_act (itoa lt-idx))
. c6 J- U; l$ l' Z* m% d7 j6 L
9 _- e+ k# o0 B* G, C* g t- (action_tile "list_lt" "(ltlist_act $value)")- [& D- i. v9 h9 v) Q
- (action_tile "edit_lt" "(ltedit_act $value)")6 X/ @2 Q; G; p# J; x: g1 k' L, {
- (action_tile "accept" "(test_ok)")5 N- d/ G. n9 m3 F( R
- (action_tile "cancel" "(reset_lt)")3 c9 O- m! E# k6 M) `6 K
- & \1 V; U5 t/ `1 J
- (if (= (start_dialog) 1) ; User pressed OK
) o* i! N! u0 R, g; e2 J - (cond
3 {2 c, k0 g* G* a - ((= lt-idx 0)5 f, w5 v. a% }9 S1 B
- (set_tile "t_ltype" (bylayer_lt))3 u% k/ Z& n: K
- "BYLAYER"
. s% g" _, R z, B - )- f- u9 c2 o' v* J( {. ^& g; t
- ((= lt-idx 1)$ P5 g. Z) y7 @: K' \7 M
- (set_tile "t_ltype" "BYBLOCK")! k' _" k. c9 B' d+ [" V# L" G
- "BYBLOCK"
8 U( X* E' R J8 W - )
/ W" C4 V+ L2 X K6 |+ K. d" z8 K - (T (set_tile "t_ltype" ltname) ltname)2 {, a" T1 h/ m2 x$ R
- )
# {2 h% F$ Q% b. I% @$ i - eltype
$ e& }) R9 [0 G, P6 z - )# G4 c6 |8 c$ r
- )% R% S5 {1 O- v5 `
- eltype* x0 y3 m! t z
- )
( z% D0 q8 y- M6 ?8 X - ): B# c# w6 f! H. |4 c0 o
- ;;
4 f7 ~; N7 T2 `' D" a1 P - ;; Edit box entries end up here
+ L$ f0 _, [ r& H8 l3 U - (defun ltedit_act (ltvalue)+ s; m! F5 ~* `+ J
- (setq ltvalue (xstrcase ltvalue))5 |) d2 s9 x/ I! r
- (if (or (= ltvalue "BYLAYER")
( N" m' K, G) d7 X' A# s! ] - (= ltvalue "BY LAYER"))
5 m1 u8 O$ c. @( R" o - (setq ltvalue "BYLAYER")
" C& V7 _1 @5 Q& L4 Z+ g - ) I+ c) V0 J+ F" M) \
- (if (or (= ltvalue "BYBLOCK")3 f- ?, P2 b- r- f3 z8 g, Q4 b
- (= ltvalue "BY BLOCK"))
+ f/ B! u3 U- c - (setq ltvalue "BYBLOCK")$ x O! Z, ~' Q8 \+ k8 \
- )
) M+ A( ^; H8 L! Z - (if (setq lt-idx (getindex ltvalue ltnmlst))
: I, H0 g, v: m - (progn$ R3 m7 e7 m! {, Z) L: d
- (set_tile "error" "")/ O$ s7 o, \; m+ a$ ^% P; B
- (ltlist_act (itoa lt-idx))
, G2 v3 p1 W; w) s8 D& ]; Y+ y% E - )- n* `. m8 [+ e Y o3 [
- (progn
& L2 n7 F; G: W8 S5 A2 V! t. P - (set_tile "error" "Invalid linetype."): I/ b9 c) l& I% N
- (setq lt-idx old-idx)
( k0 X1 ?( H8 | - ;; (mode_tile "edit_lt" 2)6 W2 H6 l& o* v! c1 @, ~1 N$ X
- ;; (mode_tile "edit_lt" 3)
3 q% Q. P+ J/ f9 F5 i: ` - ) d4 @( |% J+ M
- )+ z* {: _8 i/ f! w
- )# ` P" H1 a/ U% g8 B, p8 r5 i
- ;;8 y$ `% |) D, ^$ g
- ;; List selections end up here. Update the list box, edit box, and color2 i; ~0 Y: r% `/ g$ O3 G o4 h# O
- ;; tile.: c3 I* J) R w f% X2 v& U$ V% i5 ]: w7 ]
- ;;& o$ H3 s/ u6 J/ `8 e8 U3 S9 _+ t* Z
- (defun ltlist_act (index / dashdata)
1 M* w/ V- v0 L8 G9 ]& n - (set_tile "error" "")
; u; X S. S! G* J a4 L( a5 R - (setq lt-idx (atoi index))8 a( f, n4 C" r6 C: J- ]
- (setq ltname (nth lt-idx ltnmlst))% a0 K1 I- z8 v s$ q
- (setq dashdata (nth lt-idx mdashlist))0 j0 s. k% @; W9 n
- (col_tile "show_image" 0 dashdata)! W2 S: G0 r. J% q0 O: V
- (set_tile "list_lt" (itoa lt-idx)) L6 X! z" W9 Z2 n! c& y4 ]1 N
- (set_tile "edit_lt" ltname)
* H+ y1 {0 n. Z) [ - )5 I8 S8 Q5 ~% D$ S( P" U& P7 P
- ;;5 p, e0 l' h2 D b) @% R
- ;; Reset to original linetype when cancel it selected
0 K- a- |. O1 Y# I3 K3 }* o - ;;
0 Z, u7 |1 A% E r# ]" Q' ` - (defun reset_lt ()% N: B- n) @) _+ v# c1 @; n
- (setq lt-idx old-idx)3 w, J/ w) q9 J: K" P9 q4 d$ J4 ?) z
- (done_dialog 0)0 n2 M7 {9 p6 u# n3 a
- )0 u" R/ F' g/ u- l6 e
- ;;, L i* q7 {) P
- ;; This function pops a dialogue box consisting of a list box,image tile, and
9 {3 M; p% y5 ~2 ] - ;; edit box to allow the user to select or type a layer name. It returns the* n [' v! I9 S
- ;; layer name selected. It also has a button to find the status (On, Off,
3 y( ~: l: H+ p; M - ;; Frozen, etc.) of any layer selected.
2 C: U- D0 @2 C& W1 \0 h - ;;
1 l$ P' d' u+ }( \1 L6 x - (defun getlayer (/ old-idx layname on off frozth linetype)$ B, X" H5 O4 b0 Y4 N
- ;; Create layer list the first time the layer
6 _/ v1 y0 k+ P7 M1 r2 ]6 Z - ;; dialogue is called.* M- }) R, R1 z3 ` m
- (if (not lay-idx)6 }: k& E8 A, r$ n
- (progn
8 c; y" R, v2 _; l. k. ^0 H - (make_lay_lists)4 Z4 W0 b& o, i* B
- (setq lay-idx (getindex elayer laynmlst))
3 _5 d: b; _* h/ Q+ z" { - )
4 ? @; V3 [5 \1 c) t - )# h5 G1 [, Q3 n5 b1 s
0 \" l$ D5 O! j4 |, p, \4 n( {2 S- (if (= (get_tile "error") "")
4 m5 D3 h5 R7 M4 ^ - (progn
7 {% q5 U/ b0 F7 M9 h- d" h - (if (not (new_dialog "setlayer" dcl_id)) (exit))+ H; q0 F: ?' a6 Q- V! s5 [; f
- (set_tile "cur_layer" (getvar "clayer"))
1 T0 m$ c9 p# S% y8 N9 t$ F - (start_list "list_lay")
8 G, h# {9 \; \ - (mapcar 'add_list laynmlst) ; initialize list box( g0 K4 q% n. h/ t" R% s4 u
- (end_list)+ A$ }9 }. e! W
- (setq old-idx lay-idx)
m6 B# l* v% R+ n6 E - (laylist_act (itoa lay-idx))" U0 K" G& M( G z7 W
- (action_tile "list_lay" "(laylist_act $value)")
9 Q0 P& e$ W( X! A - (action_tile "edit_lay" "(layedit_act $value)")
$ o( D0 S) ^! m( Y - (action_tile "accept" "(test_ok)"); l$ b2 P6 B) M! s4 \- _
- (action_tile "cancel" "(reset_lay)")
3 g' O' g+ m: t+ c6 j - (if (= (start_dialog) 1) ; User pressed OK4 u& j q$ R: A( g$ g' @( ^' F
- (progn9 G2 n! J/ Q4 v- ?0 _$ d" C- Q
- (set_tile "t_layer" layname). h+ \7 U/ w) C! Y- e
- (setq elayer layname)2 }4 E- Y' {! D9 Y) s: n
- ;; If layer equals bylayer reset color tile; M9 n, d2 Y5 d( C G
- (if (= ecolor 256)7 j2 A1 L/ _/ f# N5 U
- (col_tile "show_image" (bylayer_col) nil)3 m( @4 z; N1 W: f x/ A2 P+ p
- )
% |7 h) J! x1 r - layname
' w1 i8 c; {: p; f - ) V5 E3 I. N" J4 }6 a8 p. G7 w
- elayer
3 b h( r7 L* I2 X# v/ K+ S - )0 z, A! g" [, l& \9 @2 k7 a2 [: w) D
- )
) x/ y- |2 k+ f. W3 K& g - elayer
9 l9 S; F5 k8 p& |* m3 j2 d6 ^/ v - )
+ @6 X( X( U8 S+ ] - )/ z: p4 f( J' ^- z* g
- ;;
: f, t% R3 {) o g6 A - ;; Edit box selections end up here. Convert layer entry to upper case. If
: g# ~# u% l3 N6 n0 Z - ;; layer name is valid, clear error string, call (laylist_act) function.
, k" Y( [3 W2 @( c - ;; Else print error message.
+ O9 a# U/ A% P' ~5 d. `. ` - ;;
0 l3 {2 ?5 V# M; r* u - (defun layedit_act (layvalue)
: T o0 A. \, T( [: v* N - (setq layvalue (xstrcase layvalue))1 c+ a7 x( x- O$ a5 P3 e
- (if (setq lay-idx (getindex layvalue laynmlst))
! M t1 S% _: n8 K& ` - (progn
" M$ v( t9 M, E. P5 g6 f - (set_tile "error" ""); h1 D1 @ U% B4 ^% Q% B5 N3 b
- (laylist_act (itoa lay-idx))
4 Z y, ^6 d5 Z - )9 D. r* t' `( |
- (progn
2 Y% N/ j, [% f q. e- z' R( H - (set_tile "error" "Invalid layer name."). w1 m' b8 q& m4 r7 q. \
- ;; (mode_tile "edit_lay" 2)9 g; J8 X7 y* p
- ;; (mode_tile "edit_lay" 3)7 w5 F U" _9 W, l
- (setq lay-idx old-idx)" ]8 z0 s% a6 f7 s
- )- w7 q- D* f; i8 o7 n/ e/ a$ n
- )6 p! S% c% r& B' K* {
- ): u4 p; _3 Q0 N
- ;;4 ^! [ q; C1 I; C4 T
- ;; List entry selections end up here.$ Q" J4 i3 H4 n$ q+ t
- ;;
/ G% W' R" |, B2 _% ~& b& @' ^ - (defun laylist_act (index / layinfo color dashdata)
' @1 J0 |3 [& P: n - ;; Update the list box, edit box, and color tile.
) q) v' Y! q" Y \! E1 V: [! \ - (set_tile "error" "")6 b& u {% ]1 S
- (setq lay-idx (atoi index))
' N' Q- a% ~3 x+ Q% r - (setq layname (nth lay-idx laynmlst))
0 l+ V. C4 n& J& \/ f - (setq layinfo (tblsearch "layer" layname))
# V; o+ P' i @, g8 g1 P% h& w - (setq color (cdr (assoc 62 layinfo)))* Y* e% M- S7 T& T* c
- (setq color (abs color))
/ |/ X$ H8 z9 v% X4 l+ Q - (setq colname (colorname color))4 e% d( J) E7 }# H n6 y
- (set_tile "list_lay" (itoa lay-idx))
; Y" u$ L+ ^) Y; i. ` - (set_tile "edit_lay" layname)
/ v! K0 s+ F- h9 l9 c# x2 u& a9 { - )
5 c( v# u4 Q; l; |0 c2 j$ R - ;;1 P( ^/ @ |; F* E/ h% m
- ;; Reset to original layer when cancel is selected., ]4 b& m2 Z" ^% |4 o
- ;;
& G5 V9 G/ c. J# q1 T* r! l" [3 b - (defun reset_lay ()
6 G' V, x4 X+ C. q* `% Z - (setq lay-idx old-idx)
) r h/ c5 V% h* K! j# | - (done_dialog 0)
: e/ r! {$ V0 f - )' T+ p: f! {& X0 R
- ;;) n" v/ p2 H. e$ \1 O
- ;; Checks validity of thickness from edit box.
/ r$ @9 A& t, |3 |- ] - (defun getthickness (value)
- v; ]/ x6 P& O6 }- k - (setq ethickness (verify_d "eb_thickness" value ethickness))
/ B* ]9 p0 D# B9 W' ?5 p - )" s0 J: L' i& x2 Z1 Y
- ;;, p+ b) k% }0 ~" Z4 e
- ;; Copy of (getthickness) for ltscale. If more, make this function
( \& V3 }" M% v) f- N& G - ;; generic.
2 Z7 I" X6 k8 o9 P4 R - (defun getltscale (value)
: Q, a9 N0 X3 u3 s" B$ Q3 w1 { - (setq eltscale (verify_d "eb_ltscale" value eltscale)). V" [, p0 p4 w# q3 a
- )
2 [: [) x+ {% A2 y# d6 z0 G6 |# X - ;;2 q/ v1 ^( N. s2 {) v
- ;; This function makes a list called laynmlst which consists of all the layer4 w, s; b( T1 C0 c. F p
- ;; names in the drawing. It also creates a list called longlist which
0 w4 o) c3 s4 H8 W5 Z - ;; consists of strings which contain the layer name, color, linetype, etc." U, ^5 B8 ?3 c* L# ?% w5 [- M; L
- ;; Longlist is later mapped into the layer listbox. Both are ordered the9 p) w7 G* [" j$ }0 g
- ;; same./ `" e) Y( Q% w/ u3 z& {4 ^
- ;;; G& G1 h$ G' s
- (defun make_lay_lists (/ layname sortlist name templist layer_number)
7 ~7 ]$ w! U- W8 v& _& \' | - (setq sortlist nil)
( J6 e2 ~1 B1 z$ t" k - (setq templist (tblnext "LAYER" T))
0 C- u( f: Z3 R/ d# g* d - (setq layer_number 1); {2 C3 A9 k) z6 {( I
- (while templist
4 I! D9 R9 c1 z4 _& ~ - ;; No xref dependent layers, please.7 E9 Y& g" Z7 b4 _) O/ t l4 ]2 _
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
. z! h: y2 E5 P3 K. M/ j - (progn
* ~% q! P8 n* b/ _ - (setq name (cdr (assoc 2 templist)))
2 O0 U1 }% u/ W/ Z; h - (setq sortlist (cons name sortlist))
) C6 d% J' M0 n' ~% W& D: _, K" r* j3 ~ - )
! ^ o1 \7 e/ X& e/ }& f$ h2 B( W" o - )% ]( I0 [% Y9 g |
- ; Get the next layer.& X- I1 z/ F+ I' W/ \
- (setq templist (tblnext "LAYER"))
# a$ J% u+ t ^. }9 b# X% d4 W - ;; Not dead message...* O/ ^1 r1 \& h& _* n4 p+ S
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))" E& A0 S O+ G ]/ [6 ~$ r& J
- (set_tile "error" (strcat "Collecting..." (itoa layer_number))), t5 A( I4 Y1 I! ^5 m7 J- k# l
- )- P6 i+ @* z+ q3 Z# ~6 c
- (setq layer_number (1+ layer_number))/ C E g3 w8 n
- )+ c1 Y5 @. X- j z( T& r7 p7 d9 D0 T
- (set_tile "error" "")! W% \# K8 h& D, ~7 V# Q, S6 S
- (if (>= (getvar "maxsort") (length sortlist)) @9 x5 o! S. l7 ]
- (progn
; K/ g% @0 k8 n$ R" A! K- C A - (if (> layer_number 50)
3 }, Z! ^6 S$ X7 k( v" q - (set_tile "error" "Sorting...")
- E7 K% N1 W6 h/ H, B* n6 Y2 C: ~ - )
2 Z5 ~3 g0 \2 k$ Q" B - (setq sortlist (acad_strlsort sortlist))
! s9 ~0 d: m! C; I. e - )8 O) ~$ y/ u" E5 G7 E* w, V' |
- (setq sortlist (reverse sortlist))8 l1 c4 {% m( e6 ?- A' Z$ ^
- )3 z O v- J9 Z9 O1 T4 y/ z$ |3 d
- (set_tile "error" ""); C6 G* ?: @) B$ [( B' C
- (setq laynmlst sortlist)1 d# C8 a8 Z* q0 L
- )
9 P/ e; q5 r" l9 r; t( O8 ~ - ;;- E3 I( A- g, r. }
- ;; This function makes 2 list - ltnmlst & mdashlist.) o# ?' }! ?& N
- ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
: K, m; ?1 N: p7 u* V - ;; is list consisting of lists which define the linetype pattern - numbers
" a7 d/ Y* i3 o: P3 n" W- X! p5 g - ;; that indicate dots, dashes, and spaces taken from group code 49. The list
8 B7 g Z8 N, E4 d - ;; corresponds to the order of names in ltnmlst.' |$ J& I( g! Q. m' E+ \- J% a
- ;;6 H0 {. O2 V6 L/ ], t
- (defun make_lt_lists (/ ltlist ltname)- D7 @8 f5 ^ r9 Z6 t7 Q
- (setq mdashlist nil)! @% G. z I* r& f2 Y6 H) B! D( Q! p
- (setq sortlist nil)
( z+ _% ^* F+ P- i - (setq ltype_number 1)) n# [0 x- Z4 p: {
- (setq ltlist (tblnext "LTYPE" T))4 e" d/ z6 N" u8 T) y2 T# c
- ;;(setq ltname (cdr (assoc 2 ltlist)))
, r- [( X8 [2 { t8 H$ Y - ;;(setq ltnmlst (list ltname))( A& k* u7 D; K- N, \3 g8 Z
- (while ltlist
& {$ r6 Y) P1 J F x' { - ;; No xref dependent linetypes, please.
7 o1 t$ d! z5 C! s - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
( f( `9 e8 u+ H! [3 V/ [3 {4 x+ ? - (progn
2 t# j S6 X) D5 } - (setq ltname (cdr (assoc 2 ltlist)))
* h7 Z' A2 r: R/ A - (setq sortlist (cons ltname sortlist)) T0 }1 X$ K/ O" P$ L
- )
?* O( P7 F j% u) J# A# ], q - )
, _" E }# R8 E9 S4 n - ;; Get the next linetype.
J2 p: E. R. b% F8 `4 }$ ^( R - (setq ltlist (tblnext "LTYPE"))
: B3 \4 }2 M& L; L- }, c6 Y
3 @# q* ~1 L+ w: N9 r" L- ;; Not dead message...2 y! v( D, i( O; m5 J: `1 n! \" H7 K
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
8 h' J% h5 {* L1 C/ \ - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))' S! M/ ^) |! j1 t9 j x b6 X4 _
- )
, y6 n4 M/ J: ]" z; W6 D- _* D - (setq ltype_number (1+ ltype_number)): d$ f0 Z: F* S9 X8 i2 R
- 4 A0 }' H( `. G6 P
- )
1 B; |* H. ] \- I. M
1 }: ?) G! K" \, H. I7 g6 i7 Q- ;; Remove Collecting message.& p6 e0 ?7 T' L4 {
- (set_tile "error" ""): b$ Q& H" c R( V+ ]0 \
; K' S6 [+ V7 a- ;; Sort based on maxsort./ k# }7 [1 G1 H7 N
- (if (>= (getvar "maxsort") (length sortlist))+ w ?" _, [" h5 D0 r4 p1 E; j0 a
- (progn$ C$ y7 O6 K- t1 r y; F
- (if (> ltype_number 50)/ q d3 X- V$ R* ~$ t, W0 G G! B
- (set_tile "error" "Sorting...")
' u6 P4 ?0 u, s9 ]1 q1 i ^/ A" ?5 Y - )
4 q9 J% |6 c7 m7 s7 v& }; |' N+ o t - (setq sortlist (acad_strlsort sortlist))
! o0 C' c& L) C$ Q% g% }) P - )
8 B+ a6 l+ g- [. V( g* h: w2 l - (setq sortlist (reverse sortlist))7 h5 v S; Y$ d2 ?* u0 I3 \& g
- )
6 N5 m7 [) x# y& B3 j - (set_tile "error" "")
6 n7 \. r/ H7 j - (setq ltnmlst sortlist)
( a+ Z0 {9 h0 N X5 w3 u( [
) l; Q; _$ ?3 e" v/ r- (foreach ltname ltnmlst
, }% {5 a. x2 ^. ?4 W4 ` - (setq ltlist (tblsearch "LTYPE" ltname))
, w' Y1 D8 e: l# P - (if (= ltname "CONTINUOUS")+ C& l9 W$ w0 E
- (setq mdashlist (append mdashlist (list "CONT")))
. U$ _0 p3 L, W; o# F - (setq mdashlist
9 V3 y! |2 O4 ~& m - (append mdashlist (list (add_mdash ltlist)))& Q# e2 \9 y; P! M6 p0 J
- )2 P! P" s: C8 t5 ^9 w. A. }! R8 n
- ); o) P+ `; f0 c4 n4 A! k! p
- )& e, t' L _* `1 c
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))2 k8 [+ `7 K# V& V% c2 k
- (setq mdashlist (cons nil mdashlist)) M+ T; ?. F: j! x- B. N+ R) E6 ^
- (setq ltnmlst (cons "BYLAYER" ltnmlst))
' i6 P' s, w' x+ S - (setq mdashlist (cons nil mdashlist))
$ [' h: ^3 W9 U7 s - )+ h- t; j: r$ R1 D# K
- ;;
. L! M- U4 i9 g D+ K7 @- Z - ;; Get all the group code 49 values for a linetype and put them in a list
4 ?. P4 r4 O! X8 q - ;; (pen-up, pen-down info)." \# ?' L1 W6 o; s/ @+ z* h1 m1 g
- ;;
# B6 }* K! H* x0 @. N( t - (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
5 @6 \. k0 V' w' F - (setq dashlist nil)) U( ~* ^4 h2 g4 d3 V. M' |; G
- (while (setq assoclist (car ltlist1))3 y* q+ q. A9 I, `
- (if (= (car assoclist) 49), _+ F& K$ V( M/ X% Z
- (progn* D: o9 {: I8 O5 _" M
- (setq dashsize (cdr assoclist)); }9 A8 Z3 O3 d6 `/ y
- (setq dashlist (cons dashsize dashlist))
# B" g* v: ~" M' @ - ) n5 I% Q' \( z* D O) i1 F
- )$ `: W& m" A3 a8 t
- (setq ltlist1 (cdr ltlist1))
5 L+ S z; Y. C* j1 r- A& } - )
" t! y7 ]0 W4 a5 X - (setq dashlist (reverse dashlist))8 Q, j! P" [6 }1 [3 j' C, [
- )& W" X5 t# d7 S p# Y! l
- ;; B6 b5 @. }1 A7 `1 F; R7 Q' [
- ;; Color a tile, draw linetype, and draw a border around it
5 B, {( U0 v' a5 j - ;;6 [' n9 R: x$ C' g ]
- (defun col_tile (tile color patlist / x y)
" Z# G0 X% N! X8 u% P2 F& V0 f - (setq x (dimx_tile tile))
. k& E3 `# Q( N/ [ - (setq y (dimy_tile tile)); {3 Q& t: y# C+ V
- (start_image tile)+ j8 F1 j; m( p) N0 e1 ]
- (fill_image 0 0 x y color)# p. E/ e% U8 G" }5 s) k
- (if (= color 7)& d/ X% v, d( r+ P2 v
- (progn
2 b: q9 h# S4 T& j2 C - (if patlist (drawpattern x (/ y 2) patlist 0))
# F* V1 i& n: F1 | - (tile_rect 0 0 x y 0)
- a4 Y7 h2 u( k* l - )
- X$ _& l9 A1 u1 C# m, O' f5 V4 d6 Q - (progn
9 _$ K1 C9 V- X/ O$ X( X - (if patlist (drawpattern x (/ y 2) patlist 7))
; m$ |) ]% D, |) L, q - (tile_rect 0 0 x y 7)( o- R6 p3 T6 d, ?
- )
. S1 O8 P: Z; j* k - ): k0 V" _9 S/ ^6 \9 z
- (end_image)
* c6 o& F* ] _2 s4 k* d2 t8 V# Q - ) }1 \6 J+ u( t; X7 A
- ;;
" H; {: E2 ]8 e, S' y6 W( X. s; \ - ;; Draw a border around a tile
7 }0 A- B0 l# @( h9 f - ;;
; u/ U$ E) u( M0 k1 B' D+ o( g - (defun tile_rect (x1 y1 x2 y2 color)
: z/ w0 Z, A# @1 x. ]3 s - (setq x2 (- x2 1))
% \0 I, ^7 H6 [- E- x - (setq y2 (- y2 1))
+ F1 d" ^! _- Z" r& t" v( @1 l - (vector_image x1 y1 x2 y1 color)
% J, f; j! S$ w8 {8 x! S - (vector_image x2 y1 x2 y2 color)% u1 ~# H% F3 g' J
- (vector_image x2 y2 x1 y2 color), T( V8 [ C0 [0 D. d+ u ~, w& E
- (vector_image x1 y2 x1 y1 color)
9 s) [6 h; w. M7 w( L7 A2 f8 M - )8 O1 n% w5 I3 x! i' ~: S4 q
- ;;6 q. }$ ^( J+ W& H
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image4 y# e1 _, i1 e# n" O* C
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
; Y9 l! A, _% _ - ;; list of numbers that define the linetype, and color is the color of the4 f) ^7 _8 I _- X
- ;; tile./ p% ?( J3 z3 _1 l4 v/ z
- ;;
, ?! q- [/ R3 ?% V. ] - (defun drawpattern (boxlength y2 pattern color / x1 x23 m: J8 b3 S. }. K3 ]2 \
- patlist dash)
" a+ E# q8 J0 `4 { - (setq x1 0 x2 0)
$ P3 g4 A6 f4 I1 v - (setq patlist pattern)" X! c/ H' r* `
- (setq fx 30)
$ Q% O6 I8 Q& _5 L9 d - (if (= patlist "CONT")- @/ K, x: b0 D. W1 b8 r8 N) B
- (progn (setq dash boxlength)& H& n3 F- a" R. k9 g8 @
- (vi): O- y* Y( g2 T6 f4 Z8 x
- (setq x1 boxlength)) E! b% u# q& ~; R* T/ q
- )
9 D* J) Z' y1 {+ w( z, F - (foreach dash patlist2 P# ]$ J) U- i+ G$ T
- (if (> (abs dash) 2.5)9 t$ e$ Z9 `0 Z4 Y
- (setq fx 2)
/ Y3 m8 F# O5 ~$ ~/ h5 _; ^7 L, Z - ): c: H' b6 G+ T0 N- v% ^/ k% w0 {6 {
- )* w8 w( A$ H4 b7 ]/ H( \% F
- )
9 W9 `) e' V( p2 F/ i+ Q - (while (< x1 boxlength)
" Y- ^+ d+ [5 x1 p+ B - (if (setq dash (car patlist))! K! Z& z a1 L9 W7 j9 ?
- (progn! W9 G; ?* A( r$ ?2 H
- (setq dash (fix (* fx dash)))
; i6 ^, y, v% W - (cond; T3 O K" l8 m
- ((= dash 0) (setq dash 1) (vi))3 S5 u' s0 \" g5 ~
- ((> dash 0) (vi))9 V* |- P2 E3 Q$ J
- (T
6 t+ A' z# q; ?$ M/ E - (if (< (abs dash) 2)% W7 o! J9 ` \7 j' w! n$ C
- (setq dash 2); o% T) A V) H9 x
- )
% ?! B; b, ^" z& T - (setq x2 (+ x2 (abs dash)))
/ e- z6 E) N. a& f - )
6 Z7 r5 c" ~1 C - )2 t8 k- p/ H6 G( T
- (setq patlist (cdr patlist))
3 J" T% f" q2 \! B - (setq x1 x2)
0 B) R7 ]) s( e5 `! i& G& Q - ), r* G/ C- K- f; A4 A, S* w
- (setq patlist pattern)
2 T1 _) Q1 ?( F! G - ) Q& S, z; K) ^
- )
: d) ~6 V h3 k5 ` - )
w& r/ T- }+ e - ;;
# r! ^8 |% F; Q* v; `9 M - ;; Determain state of xclip3 [6 d0 d. B9 P% |1 w2 t
- ;; Returns the group 71 value of the spacial filter dictionary.7 Z8 H. N7 K( X5 X1 s9 e K$ h) R3 a
- ;; If the entity doesn't have a spacial filter dictionary, this
8 a2 t8 T9 l0 V# q6 w$ d - ;; returns 0. If it does it will return 0 or 1 depending on the
+ \! D% D; p0 q) A" A5 p; v: e - ;; current setting of the state of the clipping visibility.2 |1 [/ U% g# m% i4 Y
- ;;' L& x& p7 [( g+ z H6 J
- (defun xclipon(elist)
% v1 _1 J. M8 _( Y - (setq hasclip T)6 \8 d9 k4 O9 z1 P( X
- (if (/= (assoc 360 elist) nil)4 M8 P9 z& Z4 T5 L. V9 ?
- (progn
9 ^1 d ]& C) u' U3 s+ C% K; e - (setq tmp (entget(cdr(assoc 360 elist))))) l% T6 v1 M7 g$ c/ R8 S
- (if (/= nil (assoc 360 tmp))" i3 @3 n5 l0 E% v4 O- Y X% n" B5 z& F
- (progn& }7 }* F( \ F5 K$ L: `
- (setq tmp (entget(cdr(assoc 360 tmp))))
$ {; y/ U5 ~2 V. c. ?, h$ l- | - (if (/= nil (assoc 360 tmp))) h" W B; |' V2 C5 w2 U% p
- (progn/ N! q2 H; `8 g5 o/ v
- (setq tmp (entget(cdr(assoc 360 tmp))))
5 V9 R" i7 @6 O7 s/ q - (if (/= nil (assoc 71 tmp))4 r! \6 _" a1 Z4 G) e( H4 B) K
- (cdr(assoc 71 tmp))
; u4 I" y; ]( X9 M6 R6 c - (progn
' e6 p! p. }# _, G$ \. J* j - (setq hasclip nil)' k0 o- ?. K+ E4 E* z. I" R) J
- (eval 0)4 F+ y( ]* t& `, G. p2 F2 W# M
- )
0 N6 w( g& Y; W0 y, F* K* ? - )
( c5 N t( v& v# s- s& k - )
; J; t6 S' V. Q- O8 E+ H - (progn
4 O5 M4 k. r( Y# ` - (setq hasclip nil)2 d3 X2 a8 j$ r9 }2 I
- (eval 0)3 f- e) _' L. {: a n1 B9 p _
- )' d6 V. a0 h# i1 J( u$ Q$ J- S
- )4 |4 z3 B; v5 s( x: ~
- )
9 j1 S+ m, q, T2 I2 G - (progn , ]" i5 i5 J. t2 x% Z
- (setq hasclip nil)
3 {$ B6 _! x+ C! t e - (eval 0)
/ } s2 I r6 k; i L& m$ S4 R, W5 C - )' }+ u8 ~9 q. b$ `
- ) k u: R5 @6 ?: o% _2 o
- )
' U3 X, t) \0 i8 Y6 u7 @/ V$ y - (progn 5 E5 H# u! v: Q: E9 d% e3 g- q: g
- (setq hasclip nil), S) V7 q. J! R
- (eval 0): @ E( }$ c) b7 z2 T
- )7 u$ q8 E I$ P" O i7 g C
- )
( T6 N% G/ i4 c2 A: f - )
* y, `1 x Y' x L - ;;! O0 k Y8 r# f% E+ ^
- ;; Draw a dash or dot in image tile
7 Q3 o: X; W) Z2 F - ;;2 U7 N& I2 q7 j6 Z
- (defun vi ()
/ m2 }$ E& G" ]! }1 ]% S - (setq x2 (+ x2 dash))
$ T K, P% V, s% p - (vector_image x1 y2 x2 y2 color)2 f/ ^; `4 a' |- \
- )5 }6 z, y* S T# \
- ;;
4 c z5 T& ^# e/ Z2 ^, X1 [" Z - ;; If an item is a member of the list, then return its index number, else
' m, o: i% Z, R1 |4 D - ;; return nil.+ N" D* x8 z0 q: J
- ;;
) P; s4 w" A! X - (defun getindex (item itemlist / m n)5 w8 q6 h5 w3 l
- (setq n (length itemlist))" _1 M/ S5 }6 G2 ?# e
- (if (> (setq m (length (member item itemlist))) 0)
5 y( D$ t/ e( A! i$ n - (- n m)
p$ M& R0 S( k; r5 n1 M" F' r# v( v7 I - nil, u6 y1 X( |1 v5 s, A3 w4 \9 _
- )! P4 f' c8 t7 k- |+ O! d
- )
- x+ V% h; Y$ n& ?- Z - ;;
/ G% B% k/ @% G4 [; ` - ;; This function is called if the linetype is set "BYLAYER". It finds the, P! l. j- E) V) ]1 X
- ;; ltype of the layer so it can be displayed beside the linetype button.
, M- Z1 A! F* \* ` - ;;3 c( p5 [/ Y: R5 z
- (defun bylayer_lt (/ layname layinfo ltype)
+ b0 V6 J/ _; J Y d, ]3 g - (if lay-idx4 c5 M8 l3 ]& | f& K
- (progn
& A/ X/ e2 l7 c" I - (setq layname (nth lay-idx laynmlst))
2 z# |0 p! O& t" e5 T% o - (setq layinfo (tblsearch "layer" layname))
, s& m" V+ _, _# ?8 ` - (setq ltype (cdr (assoc 6 layinfo)))6 r9 l1 T- U1 F. Z. X! B
- "BYLAYER"
$ G9 t" x/ S" C0 \ - )) d# o' s. K8 o
- "BYLAYER"
$ }, @$ `2 V+ v, o+ y/ d" u - ): L" I2 `! y/ W. R0 S; c
- )
3 Y% |) X( }$ V6 Q X/ | - ;;0 I- J$ G. `( f
- ;; This function is called if the color is set "BYLAYER". It finds the color
' U- ]6 z* h' ? - ;; of the layer so it can be displayed beside the color button.5 Z# N2 q. k9 r. i- f2 ?- x
- ;;
$ C5 S9 v" |% l4 ?/ c0 x - (defun bylayer_col (/ layname layinfo color) Q7 I, J! n( ?# S
- (setq layinfo (tblsearch "layer" elayer)); c2 P) j7 j" g6 f3 t. P5 ]! ] w
- (setq color (abs (cdr (assoc 62 layinfo))))4 |5 Q! k- n ^: b1 U' i+ D
- )0 \" ~9 t: |* b# V6 |( b/ F
- ;;
" S* z) W5 @& n- f - ;; Used to set the color name in layer subdialogue.
) z' x- j9 ~% B. W. d X8 W - ;;2 V! [- k* N/ C3 q1 L% M/ O
- (defun colorname (colnum / cn)2 |9 I- g- z- {. T
- (setq cn (abs colnum))
& N- \ `0 G- X m - (cond ((= cn 1) "red")9 a2 w$ U% L9 D1 B2 ^9 R
- ((= cn 2) "yellow")
3 D, Z8 y2 E9 R% W! W - ((= cn 3) "green")
! n5 B, A7 b! _3 R - ((= cn 4) "cyan")
! }$ i% i9 [" P9 r& N" }$ p& [ - ((= cn 5) "blue")
+ g# w0 ~5 Y2 K% P2 b7 X - ((= cn 6) "magenta")
2 F5 u7 N7 z1 T% Z - ((= cn 7) "white")$ Y0 P8 K+ b' P1 k4 g
- (T (itoa cn))7 i& t2 ]0 s+ n2 P4 D2 n
- )
; r* x6 k. G$ W# F N - )
1 A4 r% b/ l% S( a - ;;; w# z5 H0 ~( ?8 A; A. u7 [0 z
- ;; If their is no error message, then close the dialogue.5 m& A ^) ^) V Y( K
- ;;
0 a+ `6 g) r$ |2 c - (defun dismiss_dialog (action)
& T5 q' t5 E+ z* V - (if (= action 0)
- `; r! c" G$ s - (done_dialog 0)
+ V, c, j) f) x* M! o - (if (= (get_tile "error") "")
, \1 ?3 s: Y- m5 l; M8 Q - (done_dialog action); Y) a( \1 e# k1 M3 z9 j
- )
) t3 H3 R- m0 q# ^3 k- f- v/ Z - )" [* t) [5 g5 m7 {
- )7 v# _' r5 Q, [* H' _ I
- 8 q: V9 b# M: k3 n0 l* y# p
- (defun test_ok ()
2 G* R% i! l0 U6 Y' N$ A - (if (= (get_tile "error") "")3 Z4 s2 X! i5 X; H( M
- (done_dialog 1)2 z6 i$ W! D' I$ { j! S$ [& a' \; g
- )+ R0 i" b8 x, F' o5 [$ W5 l h
- )
+ d8 ]1 @+ A# U - 0 Y _; o7 [+ l2 \9 H& l
- (defun cancel ()4 h$ W2 X! Y ^# M% v% h
- (done_dialog 0)+ `" B. k/ Y g" k5 q/ X
- )4 Z# b' t4 n d0 [
1 T: R# e1 N u" u" E2 R5 C- ;;; =======================================================================
2 M. a& W) o- L. b* W( W L - ;;; SETUP layer and linetype lists for application, and initialize all
. s& u* a4 e5 b; o - ;;; program variables.
& y+ L" J( E7 K0 u6 u! g; l: n
5 q! {% C4 j% m7 r$ T! ~: S8 T1 e- (setq elist (entget ename)
4 _( ]' J w( Y- u- x0 Z0 w& a3 Z - old-elist elist# I" C& Y9 X9 A& @% _
- modlist elist
/ f6 J4 s) @5 `9 ^3 u: N: i& ? - etype (strcase (cdr (assoc 0 elist)))
: N* u2 ~4 y- h7 o$ X( o# P' O* y - ecolor (cdr (assoc 62 elist))
8 Y! o& Z, [: e - elayer (cdr (assoc 8 elist))
4 D( r* d/ H# } p - eltscale (cdr (assoc 48 elist))
' V7 j! v, D0 \ - ethickness (cdr (assoc 39 elist))
; O4 J' V! k# `- l. B4 N - eltype (cdr (assoc 6 elist))$ w A" I, }! T
- )
$ d* W6 B. w4 s x }* h9 k - (if (= (assoc 210 elist) nil)
9 {4 p/ `0 \" D" w - (setq extru (list 0.0 0.0 1.0))8 H5 H' ~0 c( p8 `* W* x6 ^6 w% O
- (setq extru (cdr (assoc 210 elist)))* {8 d4 M" i2 h# p0 S4 r- P
- )
8 H# q, ~* o2 n - ( R5 g. ]4 u/ m
- (if (not ecolor) (setq ecolor 256))' S& S+ ?2 i2 U0 ^
- (if (not eltype) (setq eltype "BYLAYER"))6 g9 h% ~1 z6 @3 r6 w; B$ w
- (if (not ethickness) (setq ethickness 0))2 ]+ V' w/ v) V: J# @. {- i8 ^
- (if (not eltscale) (setq eltscale 1))+ T& [ N. c2 E* V- r* d- o* P0 G
- ) ; end ddmodify_init
4 Q8 T. p5 M) [" m* H6 a - . W# h" g$ j5 {! p6 g% N
- ;;; --------------------------------------------------------------------------
, y+ [6 O8 ^7 i5 x - ;;; Function: DDMODIFY_SELECT
l% P# |7 j* M - ;;;0 r3 n. c# b) A; b& V! p
- ;;; Object aquisition function.
" V9 e a) p; P- u l, z& J# C - ;;;
- X s- z4 i2 j* x- b" h0 }, e - ;;; (ddmodify_select)
2 ?# s+ s. T/ b3 `8 y I - ;;;
; t9 p) r: C8 v$ l# r; T, C - ;;; Obtains object to be modified, in one of three ways:3 S' Q* M5 j3 p! N0 L: h8 W& X: i
- ;;;
8 f. `+ a1 j: p - ;;; 1 - Autoselected.+ Y& s! ` X+ b ?8 F
- ;;; 2 - Prompted for./ O, U3 q) y e
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
0 y/ E+ P5 L* ?' ^: [* { - ;;;5 J! N8 M8 q9 d1 V
- ;;; The (ddmodify_select) function also sets the value of the$ t' a4 Q/ e7 A9 U3 G
- ;;; global symbol AI_SELTYPE to one of the above three values to
: s n: V. Z* X& Q' v. O - ;;; indicate the method thru which the object was aquired.
3 B2 d% A0 _) ?2 |/ d' e - ;;;
* e- U( c- [5 t) U; [& O j4 _* u - ;;; This value can be useful to applications that want to RESTORE8 E/ \' ^$ `6 c' h% Z* V0 I! m. d
- ;;; an object that was autoselected to its previous selected state
, j- _+ s+ Z5 b$ O6 o - ;;; when they terminate, although there doesn't appear to be any$ B$ ]- c2 F# L [2 t H# Q
- ;;; way to do this right now.
& R; x0 d* k5 C4 S* l& v4 \ - . B* Q& W1 t; W2 Y& L- M
- (defun ddmodify_select (): k1 r8 y( V# g7 B0 D
- (cond2 Z6 v9 Z6 M: A8 n' `( {( Z
- ( ename ; (ddmodify) was called* j# C. h/ |* \! ?2 ~$ a$ H
- (cond ; with an <ename> argument
) m0 X( Z7 {: J2 n - ( (entget ename) ; If object is non-deleted
! H/ ~. N6 p, T! F5 Y; E0 ]2 Q - (setq ai_seltype 3) ; then return its ename.) B. P! [% X2 e- o' ~$ y& W) }: _
- (ai_return ename)))); ?+ `$ _+ T) D% Z F
9 H& i2 c0 v3 x. f- ^- ;; return auto-selected , see ai_utils.lsp9 A; V+ R' v" |! g" s. T! G
- ( (ai_autossget1 "\nSelect one object to modify: "))
9 W* T6 z, t1 V. C7 A! d
" E1 a0 i0 N: _- (t (princ "\nNothing selected.")
9 X6 [8 \) u. J( Y - (ai_return nil))
6 k0 c+ c* L8 z' | - )) u" q e$ D3 w
- )
9 F3 }* n3 u; C( p! O
8 q8 F2 e6 v* x0 r7 w* d& K1 l- ;;; ============= Command line interface function =======================% F4 c5 W$ a' |! D3 E$ [
7 I2 Z4 p" ~ n9 w# {- (defun C:MMO ()6 Q( W/ n5 L5 J& U d: B Y9 X& K
- (ddmodify nil)
4 N8 T: g& X4 f, ]: e0 U6 c8 w- Q, ^ - (princ): s$ z- a: w8 d+ B+ Y+ \7 ]& f
- )
- L y' D+ V) g8 t# v _- P
3 |# S% l: U2 O+ z, {5 @- ;;; ================== (ddmodify) - Main program ========================
8 X" ~1 P# n. h, E, \ - ;;;
( E" i0 \& M4 O0 T - ;;; (ddmodify <ename> )2 c) b1 P5 \. N+ t- T) ~
- ;;;
7 L! g% y( h7 s" h - ;;; Main program function, callable as a subroutine.% c7 R# V/ e0 m/ o
- ;;;2 d6 s- s. k: F! \. o7 X
- ;;; <ename> = object name of the object to modify.
7 _6 ^. a0 i1 r/ v: r - ;;;
|- z0 F7 P6 q& ^- H0 N - ;;; If <ename> is nil, then user is prompted to select
3 H# w% ?5 B( E. d - ;;; the object interactively.8 `2 B+ q& D i, f
- ;;;5 ^& v8 R. y$ O. _
- ;;; Before (ddmodify) can be called as a subroutine, it must
) x4 V; f8 E$ M( G+ I6 A1 u - ;;; be loaded first. It is up to the calling application to
* A1 T2 x/ k$ i4 k: [/ e" K+ [( y - ;;; first determine this, and load it if necessary.6 X3 h2 K- x/ g- |7 P3 \) U% }
6 ?/ Q' d0 N V8 V: K# q% z( i e- - J+ I) \$ q3 K# ^* D
- (defun ddmodify (ename /$ q7 g1 c& {9 A' w0 f# \8 O
- 2ndpt ell_calc_area move_pt1 templist0 o! d6 p# R& O/ S$ e
- add_mdash ell_tile n tempmod
; ]& y5 {/ t& s# D* N: r9 p4 E6 Z4 O - alipt eltscale name tempst_ang
) ^3 j' j- Z8 M* q" u0 e - ang eltype newpoint test_ok
' g, B% I* S0 C% ~: m { - arc_calc emod next text2 G+ @: ?" ^: _- @+ b7 e6 o% n$ x. d
- arclen end_ang next_vertex th-value
) M* z8 ]' f* A3 P% G( [6 l - assoclist endpt obl tile
& I/ c. w* q5 n, b5 z5 J - atprompt errchk off tile_rect
r4 l% g3 e) R( r% R: j) ? - attag ethickness old_majrad tilemode- g" Q l$ {& p/ C
- attprompt etype old-closed totang
9 D8 [* {5 T( g' o7 B - bit extru old-closedm tstyle8 |! X9 \4 Q& v, W) n
- bit1 fchk old-closedn u8 K$ Y* m. |6 c% h8 B
- bit-10 first-10-rec old-elist undo_init, l" g% E3 T6 K, N1 j
- bit-11 first-10-time olderr upsd6 m% ~7 H; f) U* O
- bit2 first-11-rec old-fit v
# { r. U% l. ^& H) Y$ H - bit3 first-11-time old-idx va Q2 J$ g% ?- ^4 m8 |8 \
- bit4 fit oldlist value" E* t( Y4 n: A
- bit70 frozth old-spltype ver_44 B8 j [: z& F. F) w
- bit-70 f-vis old-u ver_ang19 R$ Q$ p. F% `$ m" l f
- bit75 fx old-v ver_ang2
. I0 H" b+ d5 S* @ - bk-up get_color on ver_col/ V8 q5 v( n4 `" l8 t% t$ a
- bkwd getcolor onoff ver_colsp/ h+ d2 K7 D0 i! F4 A" F
- boxlength getindex on-off ver_eangle9 @+ O9 |3 i: B( }/ [* Z1 J" o
- bylayer_col getlayer patlist ver_hght3 o5 C" \, a+ K% i/ t! p6 }
- bylayer_lt getltype pattern ver_majrad
4 n$ p% A0 Z! y4 }; b) N; w - calc getthickness pltype ver_obl
$ \) g ~! q6 E) }7 ` - cancel globals polytype ver_pt1: A, w* v! p: [: s2 F
- cir_calc ha pre ver_pt2, D* i$ }6 C; h' f$ p, X
- closed ha-prev proplist ver_pt3% l/ O* |6 g W7 d' X4 y
- closedm help_entry pt ver_pt4. D3 ~' ` ~2 n2 t" _
- closedn hght pt1 ver_rad
1 @% N$ o& z9 k, d1 H - cmd icvp pt1_eq_pt2 ver_rot
$ }: H J1 m# M/ g4 V - cn image_add_vector pt2 ver_row
^" }- Q% M2 f8 b1 C - cname image_clean_variables pt3 ver_rowsp, `% D, T3 L+ v c& k- t1 f7 w- W
- cntl-pt-indicator image_cross_product pt4 ver_tag: j- |* ?' }! v, \7 Q5 C4 q
- code_71 image_disp_opt ptype ver_u
' `$ B( q+ G8 P: N1 g7 M2 | - col_tile image_dot_product radius ver_v
! f" `2 }! L# u+ M - col-idx image_normalize_vector rational_spl_flag ver_wid
: m6 l0 S! {3 N) K2 B$ q+ i; o6 ~ - colname image_rotate_vector reset ver_x1
E" R+ B/ w' F$ Z1 z5 j4 x - colnmlst image_scale reset_flag ver_x2 y9 h9 b1 S L
- colnolst image_scale_vector reset_lay ver_x3
( T$ {$ K, R+ F% r - colnum image_update reset_lt ver_x4
, O' B; W* ^3 {/ }# f - color index reset_uv ver_xline_pt10 k: g7 T6 v, x
- colorname inv rot ver_xline_pt2
! I# r* z& O" j/ `) ]' R9 a1 M - colorno item rows ver_xline_x1
0 F' R( G5 w2 }% E - col-sp item1 row-sp ver_xline_x2
, `& F8 ] a7 R$ e! J( G, W - columns item2 rrat ver_xline_y11 V5 o, X' _% R7 w2 r
- con itemlist s ver_xline_y2; c" l3 c5 u% d5 ~' x5 T ?. l
- coord jlist set_action_tiles ver_xline_z1
) ?% k! i) s g) H2 m' s - ctr jlist_act set_just_idx ver_xline_z29 {) ~" f- y- ]- h; `$ f9 U$ U
- cur-10-rec just-idx set_tile_bk-up ver_xscl+ n, s1 K! c) A, z
- cur-11-rec layedit_act set_tile_cntl_pt ver_y1
+ x- L' Z, G7 g$ k$ N - cvpname lay-idx set_tile_data_pt ver_y2
( Z) l9 K0 q0 i& E. j) t4 y - dash layinfo set_tile_dirv ver_y3
2 j0 k! D# D! o& N/ e k, S - dashdata laylist set_tile_edges ver_y4* _$ L3 S4 S* w
- dashlist laylist_act set_tile_endang ver_yscl. b m p( k( v. k( s
- dashsize layname set_tile_hght ver_z1
4 n, X+ l: l" a5 F - data-pt-indicator laynmlst set_tile_icvp ver_z2
, X0 G/ z( E9 g - dcl_id layvalue set_tile_just ver_z3. B2 [( F9 L4 M7 `3 B) e
- dd3dface line_calc set_tile_obl ver_zscl# U* G7 v$ o. |. O! X
- dd3dsolid linetype set_tile_prompt verify_a( z4 o1 L$ I" {
- ddarc list1 set_tile_props verify_d
# ]; k( G+ d y+ a: b# ~% I - ddblock longlist set_tile_pt1 verify_i
) [+ `2 q. ~4 Y7 C - ddbody ltabstr set_tile_pt2 verify_xline
1 s" Q" J4 J- Q( L1 ]" }' [ - ddcircle ltedit_act set_tile_pt3 vfy0 W. m4 M J/ Z! |1 y8 m' J- _
- ddellipse ltidx set_tile_pt4 vi8 z; z# B, l0 g F* r$ I
- ddgetprompt lt-idx set_tile_rad vlist% k7 F: ?9 H4 ?5 ~7 Y3 l: O" R7 T
- ddgettext ltlist set_tile_rc vname4 ^" i2 Z2 N& Y P2 h- b
- ddimage ltlist_act set_tile_rot vpf' r* [# O. \) \( @6 W
- ddimen ltlist1 set_tile_scale vpid
5 c/ U. u3 h3 d4 Y0 @ - ddleader ltname set_tile_spline_props vpldata
8 O% r( z7 C: S7 A5 r7 D% S - ddline ltnmlst set_tile_stang vpn
$ }& T% h4 O1 d* ]8 `& | - ddlist ltvalue set_tile_style vpt
% k7 U1 ]( t! z4 @; ^/ N2 v s - ddmline ltype set_tile_tag which_tiles
, l- v' b2 l. k" i0 r0 h d _ - ddmodify_err m set_tile_text wid
+ w: X! E' z2 G/ V - ddmtext majrad set_tile_vpt x
! o- W! Q% Y# z% D - ddpline make_lay_lists set_tile_wid x1) B: A& n$ q6 b5 Y( W: g2 h
- ddpoint make_lt_lists set_tile_xline_pt1 x2
) g, z$ p. p# `: Y. z! X - ddray mdashlist set_tile_xline_pt2 x3* a9 Y+ U' X" t( y3 ^* C1 c6 `( {
- ddregion minrad setcolor x4
4 U% H8 I4 v9 q* O - ddshape modify_3dface shght xdlist3 n/ e }8 N1 J4 _9 k
- ddsolid modify_3dsolid showpt xline_pt1+ j3 U% N3 x* y7 p% L7 t
- ddspline modify_arc size xline_pt2" ]: j* s" T9 [2 _4 `+ Q
- ddtext modify_block slist xline_x1* a8 Y6 M }2 _5 `2 t
- ddvport modify_body sname xline_x2' A+ l7 w* H9 Z9 O
- ddxline modify_circle sortlist xline_y1
/ R) c6 f9 ?, U% t - denom modify_ellipse spltype xline_y2
+ } j4 v4 a2 l) X! G' V, O0 V - dialog-state modify_image ss xline_z1' c3 z+ V3 k) {% a+ f; g! c
- dir_pt modify_line st_ang xline_z2
& c: G0 Q* ]$ F: l" \ - dir_ptx modify_mline stpt xscale
" V2 c9 T4 ^( I1 i+ \ - dir_pty modify_mtext style_act xx$ r! q2 F% Q5 R. d+ Q) m
- dir_ptz modify_point style-idx y0 m0 A: ^. A7 r! w0 G6 ]
- dismiss_dialog modify_polyline style-list y1
& K7 n. i1 i0 a" {! A; Z/ O5 D - drawpattern modify_prop_geom tagval y2
9 R/ }, x _1 p! S3 r8 T9 n - echo modify_properties temp y34 T {1 c, @, S
- ecolor modify_ray temp_color y4/ J/ U5 }5 v- ~$ z; [
- edge1 modify_region temp_dir_x yscale
% G# B. H, W, m3 p r. \+ N* U - edge2 modify_shape temp_dir_y yy
6 p0 h$ y+ q) @$ z. }: r - edge3 modify_solid temp_dir_z z1
4 G1 _% S$ W9 M: |! J! u - edge4 modify_spline temp_xline_pt1 z2
. d" F9 ^/ I2 W( L* O7 p! [: [ - edgetest modify_text temp_xline_x1 z3
5 U) I% Z5 ~: g. l$ M# I- G* ~ - elayer modify_vport temp_xline_y1 z45 [ c/ J+ ^+ t
- elist modify_xline temp_xline_z1 zscale
]" \9 X9 N) U. D) [ - ell_calc modlist tempend_eang zz
5 n+ @/ x2 a) K2 u% _& Z - dir-idx safe_ddedit ver_MtextWidth xcliponoff9 u9 ]/ R9 E; [2 }
- MText_style9 F. \. x: o, n8 C' b3 o! p
- )8 `4 G$ p- g6 D3 r9 ^6 J2 x j
p) w" ^5 K: |7 h9 t- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
7 p3 N( ?. B( q* W5 \ - old_error *error* ; save current error function4 o+ |) l2 g4 b% r
- *error* ai_error ; new error function( e8 L$ K% g: }) m2 _. K8 I! y% _
- )
9 q; _0 b! y" m& P+ s/ _* ] - " K) E4 O! \, f
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle+ W# j( `; V9 H. F7 O/ Y6 ?4 U9 F
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
?" q+ {; E/ E" ` - (setvar "pickstyle" new_pickstyle) ; bit and set to new value
" H% c0 q" x& P, m3 C# b
% o x+ O/ B. l( c' ?, e7 n4 [- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
. `& ]- a- h/ w- A6 y/ K0 _3 H- L0 G - (t 1)))1 ^0 y' G3 `+ X x
- (cond! v8 I0 t2 Z1 ]; n# g& L" h
- ( (not (ai_notrans))) ; Not transparent?! M* ^0 U, J& x$ d- l
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
7 N$ r/ s4 w% v$ } - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
4 @: J0 r' d7 c: \. D# k7 g - ( (not (setq ename (ddmodify_select)))) ; object to modify?
# r, B6 A' N3 z - / r! ~% R' |9 T K
- (t (ai_undo_push)
; l& i( W9 P' \. J. T, g* z/ }, a- V1 ^ - (ddmodify_init) ; everything okay, proceed.
) D: M& z4 b' u# g - (cond# C8 Q+ a' w# a5 ]0 l9 I
- ((= etype "LEADER")3 _" a! h9 M% `0 V+ A
- (setq help_entry "modify_Leader_dialog")) ?( d5 S% W/ I1 q6 A. g
- (ddleader)
6 v/ U. e. Y; ^( R: A5 h - )) j- M' ~/ q8 _4 k
- ((= etype "ARC")5 h- e J/ W% @
- (setq help_entry "modify_Arc_dialog")
$ j! d& _+ T0 o; L4 F - (ddarc)! F: U3 C7 w- l
- )
1 z5 _0 k* W8 Q+ g' s1 A. C - ((= etype "ATTDEF")
! t! u" O: _7 q& |8 i - (setq help_entry "modify_Attribute_Definition_dialog")) a7 R! _& T) y9 _* K; @/ T( i
- (ddtext)
5 R) m* ]! u S) f - )/ ^0 G* A: w% \1 T3 Z
- ((= etype "CIRCLE")4 O3 f$ G7 |+ S4 c# z
- (setq help_entry "modify_Circle_dialog")
" W/ N5 S7 M, k7 p$ k; A' A - (ddcircle)
. O3 X, S0 C6 Z - ): t8 S. Y! K3 T. M% t: r7 P- _0 z
- ((= etype "ELLIPSE")5 W* ?$ Q- z& [2 z0 [
- (setq help_entry "modify_Ellipse_dialog")' l& L" w8 E5 n, k
- (ddellipse)! ]( h% q$ d3 J
- )& K i: t% y4 D) N# F
- ((= etype "3DSOLID")4 f) z5 E' z3 ?9 e9 l* M
- (setq help_entry "modify_3d_Solid_dialog")
/ S4 b2 a1 b m- R' O: P& C - (dd3dsolid)
6 A( g q+ c& \ - ), c2 p. t3 y# A {$ }0 W
- ((= etype "BODY")3 H6 ?8 |8 {0 I9 s+ m9 z
- (setq help_entry "modify_Body_dialog")
9 [9 t9 W/ V0 `. { U" b - (ddbody)
. X2 B! W- l/ I* W R) [. Q) ` - )$ c0 A x! l" d6 ^# n# I' C) h x V
- ((= etype "REGION")- b- w* V& m! a! c7 w! b; n
- (setq help_entry "modify_Region_dialog")
1 d* v8 I: C _7 j- |" a - (ddregion)2 I+ g# r0 T7 ^+ K7 A; H3 y, n
- ) q! f0 Q R' E3 u( W8 N& m
- ((= etype "HATCH")- j$ a5 F- D& Z# A, [ w+ q
- (setq help_entry "modify_Hatch_dialog"), R7 l& P# U" Z# B/ C1 v, \: Z6 m* t
- (ddnewhatch)
" u; }. S8 j6 _' C- T" L/ K- ]. m- i - )
8 x, _4 O( A, j: l6 q5 o L6 P1 e - ((= etype "SPLINE")
1 c, E( H6 H, {3 d9 ] - (setq help_entry "modify_Spline_dialog"), [9 N8 |7 N& s: J0 g8 @
- (ddspline)2 C N2 N( v8 Q! ^! j9 Z
- )4 ^* |+ H3 x, \
- ((= etype "INSERT") ; see ddblock for help_entry
7 x* G% ~& N1 u& c* N; a5 n" M3 K3 M - (ddblock)
6 \* V/ y; X% c) X1 i - ), `. T" a2 q3 E2 T! Z9 R
- ((= etype "LINE")" B# d: Z( @% |$ I/ w9 F
- (setq help_entry "modify_Line_dialog")3 w0 g' c* [6 y
- (ddline)& a5 ]$ T0 }/ M* g# G0 Y
- )
; `+ U7 v. t9 \1 r ` - ((= etype "MLINE")
6 a. X- M* w4 N% Z2 T% C - (setq help_entry "modify_multiLine_dialog")
! a0 q; ?" H! x( a' @6 H - (ddmline)
0 y3 s6 ?, m/ H* ~3 C3 v - )
1 [3 M8 F c" H2 ]: a" z4 U - ((= etype "RAY")
% r" D* ~% e5 q9 Z - (setq help_entry "modify_Ray_dialog")
9 ^! A2 a! }+ }1 _ - (ddxline)4 V7 _, }$ @) E- D* Q; a" M
- )$ g' j/ W9 G, `8 s% z Z# D2 k
- ((= etype "XLINE")9 o) q! W7 d( z, l9 q1 i
- (setq help_entry "modify_Xline_dialog")
- h; @# Y/ G- h' Y - (ddxline)
9 E; n/ A$ u* R. \ - )1 Z6 V4 j9 r* { _; z2 ] Z ~
- ((= etype "POINT")' C {, p7 c: I/ h+ }& [. I# C1 D
- (setq help_entry "modify_Point_dialog")$ ?$ B4 W8 r0 n4 b
- (ddpoint)! g+ ?4 n1 {( `% a
- )% Z5 |" \: {) ^: x& k
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))" J" c( ~9 e0 X! Y; I
- (setq help_entry "modify_Polyline_dialog")( I$ b3 j2 x F/ t+ e& Y$ R
- ;; If a 2D pline, check to see if it is planar to the current
4 f! X1 ^; m8 ^ - ;; UCS, reject if not. To see if the pline is parallel,% M. y$ X7 C; D! `) v+ U
- ;; the 210 group (WCS) is added to the current UCS origin (WCS)4 x' u! J; ?. r2 @% d
- ;; and then converted to the current UCS and checked to see if C+ J+ P% \0 G A3 Y* A3 e3 p
- ;; it is equal to (0,0,1).! N0 p# Q) V- V4 o8 Y, O* z
R; ^: ]6 {# U; F% `- ;; Incase the 210 is default and not in the dxf list.
8 [* d' @- g6 y, A - (if (= (assoc 210 (entget ename)) nil)
9 I. H( u, J3 c7 p" v& U5 \! N - (ddpline)2 g- a: I7 }: B. o. d
- (progn
( C! T- d& B6 E8 [ - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))# F2 t' o0 Y; C+ L% j6 w3 c
- (not (equal '(0.0 0.0 1.0)/ g9 ?; Z5 A v1 W/ k0 T+ E8 c
- (trans (mapcar '+2 I( J/ k0 w0 z8 k+ ~* `# C5 K
- (cdr (assoc 210 (entget ename)))# Z" n a! |# v2 A$ I! I* z
- (trans '(0.0 0.0 0.0) 1 0)
5 F1 Y/ H& b. d! M! A - ) _% u& c2 R' \* Q
- 0 1
' m; `, y; l3 s6 x - )
' |- k3 t$ j+ d, r; R& I; P0 Y - 0.0000000001 ; fuzz
3 g, `9 W7 ?1 D; }" _; s. B - )
% b, [8 l1 `/ C/ ?9 f1 H9 z - )
6 F* I3 W3 P! g" | - )
. p! e; _4 @2 {4 `( H - (princ "\nThe 2D Polyline is not parallel to the current UCS.")
& d' {3 X1 N6 ]7 x: D* H- N - (ddpline)
& i# v) p7 v$ o+ u3 v - )
. u. o/ P% v/ }9 N/ d; }+ k) X - )! l; U! u! h8 T3 |8 x
- )& U) i! z0 o- [0 ` q
- )
+ F% H0 n1 H3 P; I - ) i4 N I2 m3 z
- ((= etype "SHAPE")
3 r& m' R) o+ d - (setq help_entry "modify_Shape_dialog")3 W4 O% }. i9 U' y0 m$ _1 q
- (ddshape)2 \# Y: ]5 A- T1 N8 \/ X0 r
- )
# k! s: Y- @: K: s - ((= etype "SOLID")5 i: u1 g) [+ h6 o' p4 b7 h# k" }
- (setq help_entry "modify_Solid_dialog")
8 S8 J" `+ x* z; q8 G - (ddsolid)0 k. u, p: f$ R& U' q" r* A
- )
3 C# N( K/ \& r- h' e6 A r7 G - ((= etype "TEXT")
& Y- o# ?$ y) J# ?8 e - (setq help_entry "modify_Text_dialog")! k3 K. M0 a. ^' K/ m6 d% {2 e, Z5 |
- (ddtext)
, a! Y9 a1 H5 C3 i* r! j! C - )5 p* }0 i- F& j: d4 `1 q. z1 E
- ((= etype "MTEXT")
# [, W' P5 n1 Q) Y, Z3 M - (setq help_entry "modify_MText_dialog")
2 Z4 ^0 F6 t, @7 Y - (ddmtext)
* I( D4 `% i8 g: f - )1 }8 M! P# O# P" o$ {
- ((= etype "TRACE"). u7 l2 _* ?5 N% }6 H9 [
- (setq help_entry "modify_Trace_dialog")" J Z' x$ S, m" S3 S9 _* c( W) A1 g& s
- (ddsolid)! W) t& _/ q, a6 W Y/ A3 \& S
- )9 \! W- H! B0 B' M
- ((= etype "VIEWPORT"): p" |! t. h0 E0 V: Z
- (setq help_entry "modify_Viewport_dialog")4 b' D4 y, Q1 u: x$ Q0 d* a
- (ddvport)4 ?1 F: }% @9 `& P$ |
- )
1 V6 {$ d$ L9 y5 \9 N* L# q( U - ((= etype "IMAGE")
Y' J3 n( A2 h6 I' f1 F$ F6 d - (setq help_entry "modify_Image_dialog")$ T1 v* q Q' {; o
- (ddimage)# S, l, N7 O! u- T$ A
- ); O$ ]9 i, U0 X" {4 Q3 Z
- ((= etype "3DFACE")
! ]. t v7 g9 L1 `/ I/ E: H$ L - (setq help_entry "modify_3D_Face_dialog"), P3 ~; }9 p+ Q7 E2 [% a, e
- (dd3dface)( n) l T$ y8 S# N Q: g* ]
- )0 a b7 Z' i# [+ `
- ((= etype "DIMENSION")
5 K6 P0 o+ ~( ^' O! { - (setq help_entry "modify_Dimension_dialog")
! z# ?$ h2 v! K7 P8 Y; H - (ddimen)
3 e2 d% [& f0 J: P/ P; E/ d - )# L0 R7 r1 C. e
- ((= etype "TOLERANCE")- H3 \6 v4 X+ @% f
- (setq help_entry "modify_Tolerance_dialog")3 p+ o& H: k: n6 R# X8 U
- (ddtolerance)
- Z1 ^7 j8 H5 {& j! V" C2 I# j# T4 l1 R - )
: a$ h5 w7 n+ w* I - ;; Fall-through condition changed by MCAD for MDT 1.1 release.# C! W. d6 X) ?$ c6 P
- ;; This allows DDMODIFY to work on any custom object or any new object type
' {. q2 \3 Y4 @9 E+ H - ;; that isn't specifically handled above by calling the more generic DDCHPROP.
- `* A! _% i- b2 [- F3 q$ u - (t& ~- W- c+ W5 f6 G
- (if (and (not ddchprop) (not (load "ddchprop" nil)))( t. a+ c2 L- s8 A6 u) p% `1 g
- (princ (strcat "No dialog support for object type: " etype ".")))" V3 N, ^9 K4 E& G5 ]2 _
- (progn0 z5 T. K) [* @# A$ W2 _, |) ]' v3 H! g; ?
- (setq tempss (ssadd ename))( C9 V' Z! }1 R( q$ @# }0 H
- (ddchprop tempss)
* k1 l6 P P. A! w/ H" h - (setq tempss nil)6 D6 g# M; @+ p7 s7 P; z x
- )' L4 |5 m* S6 N( \. t
- )' e# @0 Z/ M: Y3 i% r- Q( H$ G
- )
' C/ }9 c- n3 r" ~( S" r% J$ ` - ;; Previous fall-through condition.* Q* x0 S+ D& I3 V% | U6 i
- ;; (t (princ (strcat "No dialog support for object type: "
, |# i3 n7 C1 p, k1 }& l - ;; etype "."
V9 a5 ]% o- j9 @8 H - ;; )
# _8 j/ N4 U6 E4 G" o4 ? - ;; )" ^9 Y' [9 c2 t/ Q5 b# b$ V! W
- ;; )
0 ^( @6 \0 H+ o4 v0 F - ;; )
$ W8 Q- T0 P6 w1 _1 M& Y* x! a0 Y - (ai_undo_pop)
6 @' h% b2 i4 h# |' N - )7 w0 W# z! P' F; G% O! _
- )
* t" h9 f) p$ e6 Y
" T% ]/ c2 C2 F! R/ F7 w- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle- |4 ^ s. L+ p' m+ }
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back8 `3 W4 k* l d6 \7 z1 F1 C
- ) ; to what we started with
8 @: C) x# h3 o: [7 {. K" j& W - 3 x- H: J6 F! u7 c
- (setq *error* old_error)
! A2 D: _# ^# P9 y+ {" X - (setvar "cmdecho" old_cmd)
& ~2 ~7 w( d! u: m+ s - (if (not reset_flag) ; if object was modified, then) v( m5 c8 Z; @. r9 W% p5 X4 J
- (ai_return ename) ; return it's ename to caller7 L: n" }: @4 h- q
- )
' Z+ l& B( J4 ?* U# {# W - )
& k' k9 B; j# y8 @: O0 p - 8 q. D e2 ]. D9 r+ f/ [+ B- f9 y) r
- (defun checkForLockedLayer (ename); t- r! b# b* T* j
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))$ k0 {6 ?% o1 E$ Z& c4 z1 q" p6 E
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
. ^3 T+ R/ S) r8 s, B - (if (= layerflag 4)5 W; ]4 S4 g0 f" ?' R+ \; Z
- T
$ i5 W; D+ H; H8 ?8 Z/ v& j - nil" x6 I4 a, N0 ~2 L
- )
Y1 u2 X9 E1 V3 ` - )
+ B: t9 b6 w' Q f$ c6 m, m - 4 p. K* o O% Y0 p/ {
- (princ " DDMODIFY loaded. ")5 d( M- ]" q& A: M8 ?6 p: l a7 M
- (princ)
% t6 n8 U4 W4 p4 p+ E2 z - ;;;???;;;---------------------------------------------------------------------------------------& P' c; p0 M3 g3 Y' B( p
# o0 {$ w5 \( O- ; Next available MSG number is 8
/ c5 q% [& U2 f - ; MODULE_ID DDUCSP_LSP_" W# B. K9 H5 ]. t2 X
- ;;;
+ x1 n6 q! g, O% @" J* r9 G/ M1 G - ;;; dducsp.lsp
- E* z1 u( `! {% [) @* c" v2 b - ;;;" J8 X- e& g6 `1 g0 a2 x
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
( [, Z( v* P4 s) Q& ~& R - ;;;5 i6 l+ d8 f& w' ?
- ;;; Permission to use, copy, modify, and distribute this software; v- i/ f4 X( F/ l+ a/ M
- ;;; for any purpose and without fee is hereby granted, provided/ q6 ^2 P2 F# F) J# I
- ;;; that the above copyright notice appears in all copies and% b# K4 U1 Y/ f W
- ;;; that both that copyright notice and the limited warranty and
" l. }4 n& A2 T! U- v6 R; s4 X - ;;; restricted rights notice below appear in all supporting. ] T) U5 n9 B
- ;;; documentation.7 K7 ], _" G. s, {2 u$ @# o
- ;;;
1 Q( n2 g7 k l( f" e8 O - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS." K3 m- R( x# G7 m4 S
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF7 V/ ?' F; D8 ^: {" D! N
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
' h0 j) |2 L+ C4 G3 q% Y - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE: @: g$ R/ x: _1 _+ M5 k
- ;;; UNINTERRUPTED OR ERROR FREE.
- W+ n8 v$ \3 n, Y* K - ;;;
{4 E6 K$ R8 Q: L: R. G - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
3 S- q8 ~5 i# K( g1 u - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer. z) J: [. A. t, V4 Y
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
" l+ A8 _3 n1 o, L7 ?6 Y7 Y O# X - ;;; (Rights in Technical Data and Computer Software), as applicable.; Y9 P) F; j* x1 h4 h
- ;;;
5 L0 O! f0 B1 t: _3 w - ;;;.- a& `, O; A! l4 ^
- ;;; C:DDUCSP - User Coordinate System presets dialogue.
) k3 A0 [7 K$ Z; f1 \ - ;;;
6 x) W& R7 m& O/ X2 J4 k0 L f3 s - ;;; Uses DDUCSP.DCL for the dialogue definition. The( \8 B/ _" v5 R7 W5 z! v) f# o. V
- ;;; slide images are in ACAD.SLB.
: |3 n) t- ^9 H/ D - ;;;
$ E+ Z& S3 U- H, X5 s a6 y - ;;; ===========================================================================
+ E* [) q$ z- D1 d- Q - ;;; ===================== load-time error checking ============================) c, B4 J; V* m$ k
- ;;;! ?4 `7 g+ G% X2 N
6 s, J! l8 ^* Y9 d: M6 O- (defun ai_abort (app msg)
4 U6 e; ]4 ` J6 R - (defun *error* (s)/ {% ~8 a7 |/ {) `
- (if old_error (setq *error* old_error))0 l/ {' R$ `" @
- (princ)
5 O B) p+ l+ M- M& P% _ - )% `- y) Z) x0 D0 H" o1 M! C2 t
- (if msg- l, T) h# d8 n5 Z5 o! a
- (alert (strcat " Application error: "
) o, @5 Z8 |1 M- J V) N - app/ {+ T" y- w( l* e( X, `$ J( t* h/ Z
- " \n\n "
( P+ z# g! q1 ?9 y: f - msg% [; [' n/ R6 _ s
- " \n"
, ^1 g$ y! Z9 W! A - )3 {9 x, Q0 `1 V' `/ Q: ?
- )
) W; e; u+ T% T2 Z: n - )
1 n n5 S& @. J& r' v4 ?% r - (exit)' _1 U0 a2 h" n$ Y1 S4 k
- )6 m( i7 U+ f' a$ n$ R/ k7 }
- b0 q1 Y5 K) Z& ~
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,! r2 ^' r2 _9 d+ v' k+ O' |9 m
- ;;; and then try to load it.7 V( n, Y# W: m8 J
- ;;;* c2 W- a+ A0 S& J* S: b
- ;;; If it can't be found or it can't be loaded, then abort the
3 F: `( J/ s/ s6 u - ;;; loading of this file immediately, preserving the (autoload)
; {( I; R) M1 t0 q& V1 m& c7 b6 ] - ;;; stub function.
3 O) W( ?) Z7 V4 G% T$ M
! D- U% Y9 |9 w4 E j- (cond
6 S4 R7 ?7 i: N% L$ T3 i - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.( ^9 R# |7 Q5 N7 H& V
7 K% s% v% B3 x# x! F0 t8 N- ( (not (findfile "ai_utils.lsp")) ; find it+ _# b! p9 W7 Q I% \
- (ai_abort "DDUCSP"
6 N7 W$ C0 B3 F" n4 G& p, ~ - (strcat "Can't locate file AI_UTILS.LSP."% ?* E5 ?1 X% t9 b8 G) Z
- "\n Check support directory.")))1 r0 K/ a6 G- \& S! o% C
: b- ?$ R0 x& j" B- `* d8 b- ( (eq "failed" (load "ai_utils" "failed")) ; load it
0 y3 o( O% N/ @# U& N5 L+ s6 T3 l - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))" n ~! z$ l; a
- )
$ _2 I: \2 W& T - 2 K! H9 p' c n* O2 E& X
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
+ h1 u( \+ h6 i W - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
4 u6 u- k0 y" s - ) ; ai_abort's alert box dialog.
6 G, q" z4 {0 H$ k - c. s2 r" |$ W# E
- ;;; ==================== end load-time operations ===========================
" S+ J" i7 B0 Z. H
$ @ T' t- \" K- (defun ai_ucsp_start ( / program)
4 B0 k/ o. [* {9 ?$ i1 z - ;; Get program name
* _* ]5 s) ]1 f: s; V' n - (if (not (setq program (getvar "program")))
7 G' N$ n. w" f" V3 j - (setq program "acad")( S; a1 M; m6 [/ `# u9 K% y8 p( H9 `
- )& @4 P6 j: b: M& z' O/ A/ l" M
- (foreach v0 '("world" "left" "cview" "top" "front" , u$ [* W8 n; q$ Z9 o" x1 n
- "bottom" "back" "right" "prev")
7 ]' |* N0 r, J/ ~ F" e - (start_image (strcat "ucsp_" v0))
/ R0 s* e: n4 a% [4 o8 V" s! z - (slide_image
# ?+ J: W) _& R h4 k: E* I4 L - 0 0; s) u' s( S8 s; {
- (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1): n6 ]2 f3 H' Y
- (strcat program "(u-" v0 ")")$ z7 \8 p" `* u; l
- )
! [" M( L8 a# R+ z6 O3 T - (end_image)
9 b9 I$ r6 s, V9 ~ - )$ {0 l4 s$ K- ^
- )8 R1 c/ {& _8 V6 N9 e6 G6 r
- % Q6 \4 a" X2 W: ]
- (defun ai_ucsp_set ()
$ M$ n. a; H0 e/ B - (if ai_ucsp_sv
5 C: s* l+ h, Z" n5 E! U- _( z: L3 f - (command "_.UCS" "_V")0 d1 O# C& A5 p. \
- (if ai_ucsp_prevs, a4 X& _) q5 j+ _$ K# w
- (command "_.UCS" "_P")
- D& Z" D( [; d/ p - (if ai_ucsp_chg
. _, s- x, H+ B& c; B5 v8 \1 ] - (progn" p) d6 r$ M P* A
- (if (/= ai_ucsp_a "*")
" H+ U, J! i$ n - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1)): I) Q+ d1 x. K: ^" ]5 }8 t6 v
- )3 ]$ p$ i' \- Y1 X7 k
- (if (< ai_ucsp_pick 6)- C1 w3 G& |6 }* X
- (setq ai_ucsp_set0 "@")" Q: w0 o* e' m+ `9 Y; h1 V( ~" O
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")
5 {& \( M) G, A& A6 M. a - )
, C! i. S: M& u9 f/ X - (cond ((= ai_ucsp_pick 0)' g; T8 |+ ~( f8 ^ L" O
- (setq ai_ucsp_set1 "0,-1,0"
0 s2 ]5 c u, p - ai_ucsp_set2 "0,0,1"/ M4 o9 ~" F( z6 \0 {
- )" W8 K& G$ b# g& g* p N% f! n8 a
- )
1 Y1 W9 r& O# l) O/ T. b3 x - ((= ai_ucsp_pick 2)
: l; I+ L5 Q$ d& _% o( h - (setq ai_ucsp_set1 "1,0,0"
( k: c7 X& I' W6 K5 N2 { G! P; a - ai_ucsp_set2 "0,0,1"* b8 _( x) t% b" t1 B7 `
- )2 E2 P& N+ l( s, [
- )0 z& G3 d. r* B7 Q/ B; s
- ((= ai_ucsp_pick 3)+ L. a- B/ T" m, Z/ ?/ D9 \6 s! ~
- (setq ai_ucsp_set1 "1,0,0"
( s# I6 ^! d! t: F, l5 D$ q - ai_ucsp_set2 "0,-1,0"
, h! u/ g3 a9 n4 m# x" K - )
! I& V2 g$ Q* Z$ K1 s0 g - )4 b- K2 s: @3 i7 N: x: W) q
- ((= ai_ucsp_pick 4)2 a A3 I% M* |6 I# p0 T, Z# q
- (setq ai_ucsp_set1 "-1,0,0"! h: a9 o( p/ @. [! H/ i7 s$ x
- ai_ucsp_set2 "0,0,1"
! ?5 J) p% c% P, l' X - )
/ M% t+ L; p1 I3 ^) x" M, x3 s - )
# [5 s# u1 L7 |3 r( l6 _0 s - ((= ai_ucsp_pick 5)% D& c, C* l6 J- T! E. x
- (setq ai_ucsp_set1 "0,1,0") S \: [2 `" o. B( k6 v0 @
- ai_ucsp_set2 "0,0,1"5 J3 V: g5 J* F& `# u
- )
1 L# [4 Z5 Q: P! D3 B, ] - )2 a# S; @$ a0 [% r$ h8 f; i
- (T
3 g: o; u" ?2 C: {4 P9 { w2 w - (setq ai_ucsp_set1 "1,0,0"* L/ [1 ^4 G" E7 \3 C0 G
- ai_ucsp_set2 "0,1,0"
) c j/ h6 H' n' w$ l0 J6 P - )
& Y. L, o! c6 w8 K0 |2 a$ B! _, Y6 \ - )
5 f6 L) {3 K4 v% e& R- M; i; i - )( A" `& k" v9 t' W d8 x
- (command "_.UCS" "_3P" ai_ucsp_set0 . r! B1 u& W3 [& b. O
- (strcat ai_ucsp_a ai_ucsp_set1) - u8 X0 U1 F' `% D1 r6 K l
- (strcat ai_ucsp_a ai_ucsp_set2)
/ l3 f8 R, Q/ H3 r+ z- o0 j5 w - )
- S2 A( _; l$ h! w - ): ^: l4 @ x% `( w S& \; Z
- )$ J' e! ^. s8 p( i- R
- )* u; m5 |/ B. ^( W
- )$ ^& }* i+ w7 C
- )3 B) S1 t( { U
- , a, k9 l& z% l+ x8 C; Z2 h! c
- (defun ai_ucsp_p (val currtile)) ]0 V1 B. s2 O% w# K2 ]. i
- (mode_tile ai_ucsp_currtile 4)
; F9 U: v, r/ u1 J: x - (setq ai_ucsp_pick val
8 E: [; M( I. S- x - ai_ucsp_sv nil/ o2 |; q+ ^9 |& m* P
- ai_ucsp_currtile currtile! Z9 ^8 I# W; R) b: x
- )/ z. E5 t+ j* }, E* p
- (if (/= val 1)2 T2 j/ Y' K! l8 F- m5 O6 x
- (setq ai_ucsp_chg T)% O* S' n; c! }# {9 b6 c. C2 O
- )
, n4 [' j* r4 k1 D/ F- z - (mode_tile ai_ucsp_currtile 4)
2 N7 j) k+ v9 O) A& J% w - )
' ]6 Y% `. t4 P& E3 v) F m: N
3 y0 h. T7 z9 G* B0 S7 T- (defun ai_ucsp_swcs ()4 r: y8 s6 g3 j5 Z5 z
- (mode_tile ai_ucsp_currtile 4)
0 Z. Z8 H! n- H2 i - (set_tile "ucsp_a_wcs" "1")* U2 h* ?( L+ w0 d
- (setq ai_ucsp_pick 6. h: j8 c8 q( Z6 b
- ai_ucsp_sv nil3 c& \' Y' C7 b6 ^
- ai_ucsp_currtile "ucsp_world"
$ S* c) J/ M2 |7 S( z; i - )' r* B6 V4 S9 u1 K* S9 E" ^1 m+ Q
- (if (/= 1 (getvar "WORLDUCS"))' |4 `$ A4 v0 ~6 @8 E
- (setq ai_ucsp_chg T). O& A# b" S8 K$ o/ u6 L7 V
- (setq ai_ucsp_chg nil)
4 m7 r( j% q' O- u5 V$ Y) o& y - )( Z: X5 C' I; v% @9 f- v `0 l
- (mode_tile ai_ucsp_currtile 4)" I% [8 W# }! p. {- P' E9 ]
- )
1 r/ w7 Z# s* Z! [' S7 j H
1 k9 L7 C6 @+ N- (defun ai_ucsp_cview ()
4 H# `9 A' d; ~7 \ - (mode_tile ai_ucsp_currtile 4)
' ]; e; @9 |$ A) V5 q - (setq ai_ucsp_sv T 9 S5 _# ~) x5 V( N+ v' H
- ai_ucsp_chg nil
5 z, T w+ r3 i( O9 R5 q - ai_ucsp_currtile "ucsp_cview"
0 }/ C- g8 f2 @8 h M - )
3 U% x. q( q3 E - (set_tile "ucsp_a_wcs" "1")
- j# ]2 J$ n% A. l* z! l* N5 |/ A - (mode_tile ai_ucsp_currtile 4)
! e* ^7 S* J, P' y% A2 ^* t6 f - )
* G0 D2 _, R. J - 3 u2 R& b- ~2 j) T9 j8 K# j
- (defun ai_ucsp_rucs (typ)
8 m* { Y, c0 P" u a - (setq ai_ucsp_a typ)
% B+ D7 T8 k4 b6 j1 O9 t - (mode_tile ai_ucsp_currtile 2)
3 K \: h9 c0 }/ @0 C - )5 e- c0 P0 G5 D7 F" D7 ~! V( x
- $ N( c6 |( K4 a3 b8 f
- (defun ai_ucsp_prev ()! Y9 r; F$ t, D2 M, `; z4 @4 P- L
- (mode_tile ai_ucsp_currtile 4) ?) }- b1 S; e* h5 e$ V
- (setq ai_ucsp_prevs T
. a+ C3 R0 O4 B( q2 e* D - ai_ucsp_currtile "ucsp_prev"" h) C6 g5 b8 c2 J$ i, w% k! f
- )
: t3 X: B4 K8 R) c# F# m - (mode_tile ai_ucsp_currtile 4)# o7 w8 l! h; o" B6 i" p
- )
$ l3 E) P, N9 W, b+ s - . E8 E: k0 L7 z* g1 V5 {9 J
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)' i( |$ l6 ~3 H8 d' w, i, f
- (if (not (new_dialog "dducsp" dcl_id))" @. i A) F/ L/ d* Y8 ]1 q
- (exit)' D( U5 x; h4 u& D5 V+ O
- )7 d+ ?: m2 }: b+ N. a/ f3 b* b5 B
- * g' s D. A! M6 a t. J9 B# h
- (ai_ucsp_start)
* {5 w0 g. B' V. U; u" F' v - (setq ai_ucsp_a "@"
1 i$ b9 i: K) W: l& p - ai_ucsp_pick 2( W4 {# }& H* g
- ai_ucsp_currtile "ucsp_top". U$ V' [. P: G6 ?1 J1 S) b
- )
( P. y0 i$ U$ J - (if (= 1 (getvar "WORLDUCS")), n$ F' E3 J5 @$ g
- (progn
2 U. O* S5 q! U+ w - (set_tile "ucsp_a_wcs" "1")
. B- ]/ x$ I k - (setq ai_ucsp_currtile "ucsp_world")
2 ~0 L1 p( [7 E |% ]" H7 G - )8 t8 m7 S! K( R h! O
- (set_tile "ucsp_r_ucs" "1")
' J" Q. y! ?/ i) ^ - )
8 L, _" j$ B8 f' A, B8 { - (mode_tile ai_ucsp_currtile 2)$ P0 S' _1 \3 X! |2 C: D& t$ K
- (mode_tile ai_ucsp_currtile 4)
# I$ v# p& Q5 G, }3 l7 T - (action_tile "ucsp_world" "(ai_ucsp_swcs)")$ q3 v3 L7 L, Q) c. y
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")
" }+ z# X, M$ O% h5 { - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")) W8 H" m' x% C6 U
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
7 Z- |# v" ^# I9 L7 L. [, T - (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
9 f# h. ~- a, j - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")3 i' s# r# A6 B1 m, v* @
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
9 v V8 E7 K) q0 B - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
u/ F9 a. _3 J/ G# m - (action_tile "ucsp_prev" "(ai_ucsp_prev)")* J w( ` J0 L3 h6 r7 ?; Y
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")3 ?8 ^7 b) t/ k
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")# {+ H$ A4 k, I( F
- (action_tile "accept" "(done_dialog 1)")
5 m: c, v* i0 h! n. q. Q' @# U - (action_tile "cancel" "(done_dialog 0)")5 A% { o1 ~$ v8 _1 t' ~
- (action_tile "help" "(help \"\" \"DDUCSP\")")
6 P4 d7 f2 B" l5 s$ h9 H( h5 R, U - (if (= (start_dialog) 1)( ?2 b/ b- r5 p6 B a3 e
- (ai_ucsp_set)+ C; y6 x8 a4 @8 M
- )* D3 {$ L, A& [/ ~+ ]
- )8 X% l) K/ f7 T Q4 E; v# g7 r
- 1 Y2 N- A, q* V- {7 r2 V$ H
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
) Y4 l' T( [" S9 w# n! w - ai_ucsp_sw undo_init)+ s! o: `4 `2 v# N( c x3 K; f
- 7 @3 R5 c6 j* U* L0 {
- ;; Set up error function.
: [. N0 Z: g* d. M q, C - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
; _( F+ c4 ^ t3 s7 _ - old_error *error* ; save current error function+ W. e4 b L( ^2 Z
- *error* ai_error ; new error function8 g) a$ e& w9 `% K: t1 m; ~. U4 l" g
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration
$ ]& x6 n8 Y* C; p: P - )
+ F3 u# \4 W( `, v9 \2 o0 ?
) |, I+ L2 ?# ]( G. M- (setvar "CMDECHO" 0)
" Y; L8 k4 \/ _ - ! `. _2 X# c0 b( D- O( b( m
- (cond
* Q4 z& @0 M% x6 K* [# ]. ] - ( (not (ai_notrans))) ; transparent not OK% I0 X1 f1 j) S% O1 I- I, \
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?2 S* `# L* ?2 L# a1 {0 H, l% R$ o
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?) }: d# s; b4 C' M" Q0 X
- (T (ai_undo_push)
/ L F: }# ?7 z; L" W2 J" } - (setvar "OSMODE" 0)
9 L6 T; @ ?. U1 ~7 M - (ai_ucsp_main)3 {1 c) s: `: o% B5 Y3 {2 L# f
- (setvar "OSMODE" old_osmode)
! T4 [. l5 t2 V: T" a ` - (ai_undo_pop)# _9 f& Y3 H$ h- \+ I4 G
- )4 i' s- M% X4 ~0 l8 Q7 W% T0 O
- )# V7 h( t O0 g/ R3 k g
- E* Q1 [$ H& Z* F9 ^- (setq *error* old_error)
+ @3 t1 p: r/ D# c - (setvar "cmdecho" old_cmd)
* Q; i) b" {6 R9 l8 ]! j7 s; W
9 p6 {+ l, g( l4 f/ V3 }- (princ)$ W; t. l+ J4 q u$ X
- )
/ @. r! P5 w# T! F& l2 m - ) L) q& U5 u/ `
- (princ " DDUCSP loaded. ")
; Z, p* e7 F2 t& T( _$ X - (princ)
4 e5 n5 {0 a* m. a" L& x9 r - * {# d! ]* l5 q; |( V: }: C
- ;;;???;;;---------------------------------------------------------------------------------------1 c+ e8 `# h3 o7 b
$ C9 F8 m! v& h1 X3 H5 Z- B- ;;;----------------------------------------------------------------------------' t: B( Z$ c' O- @; a
- ;;;
3 \7 _0 R& k6 E4 |4 X - ;;; EXCHPROP.LSP - Y! | e0 r# u. n2 V. p' b
- ;;; Polyline and text modification capabilities added by 6 J- k. j. b" g) G6 u. Q- E! X7 M
- ;;; Randy Kintzley
4 C! y: `: { F7 @# x$ c1 q - ;;;
1 i! c& Q, b# |8 @ v - ;;; Copyright (C) 1997 by Autodesk, Inc.
' T& I1 G) d5 b* ]# o9 y+ @ - ;;;: U5 u) m3 T/ `1 G( k3 L/ S
- ;;; Permission to use, copy, modify, and distribute this software
7 _8 G5 O' G5 {5 { - ;;; for any purpose and without fee is hereby granted, provided y/ a( g. i" V
- ;;; that the above copyright notice appears in all copies and
' U9 D6 e7 z: I. j9 c - ;;; that both that copyright notice and the limited warranty and' @/ R, `+ a0 o) `, K
- ;;; restricted rights notice below appear in all supporting1 V4 A" q& x" `: ?
- ;;; documentation.; ^$ g/ n4 \2 f3 s
- ;;;
2 L0 q& c6 `( d( M' h# @4 w0 O - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
; ]& g' N, U* }6 \/ H - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
& D @; w9 m0 `2 a - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.; Z) K$ b3 z6 h0 j" `/ s
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
* z9 |1 q% v: x" U2 n - ;;; UNINTERRUPTED OR ERROR FREE.1 y7 ~. J$ ]3 @2 a! o! [ u
- ;;;
, p$ M8 p& r8 ^+ j6 j* p" S - ;;; Use, duplication, or disclosure by the U.S. Government is subject to: p8 r- u+ y0 Z
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
. z2 P U; h# q3 b% j - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)& V$ f0 A B" Z" |
- ;;; (Rights in Technical Data and Computer Software), as applicable.2 H; I* A: m, ]$ C# u# r3 n4 f1 A+ g
- ;;;* m& M3 K& }* {* R. p& x0 V3 h
- ;;;.6 ^ V& ` y+ Q6 o$ }3 [
- ;;; 28 February 1997
* S* K: t X: | - ;;;
4 f) g3 c# C. P- C4 r% g: M) D - ;;;
, A1 b7 N% P; D1 k6 L2 |7 p* e - ;;;----------------------------------------------------------------------------
( k; U1 M& Z: A% g% R/ C - ;;; DESCRIPTION$ [2 F2 Y2 }7 z9 u
- ;;;----------------------------------------------------------------------------! P7 j& e0 u, f' ]1 K
- ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
# E$ }) b! C; s5 i - ;;; command gives the user the abilitie to change several characteristics
2 I) f$ L/ _. P, \! ?* |5 B5 l6 m4 J - ;;; of selected polyline and text objects. * p0 v3 y/ r3 a3 \' G. e" F( W
- ;;; The style and height of selectected text objects can be modified
% N: K% n- c" |4 V/ d2 O+ r - ;;; (including text, mtext and attribute definitions) as well as, width and
8 x4 B; }6 N2 `; Q9 |. R - ;;; elevation characteristics of selected polylines (includes lightweight and 0 Z% ]9 O* O" D) h, u. m/ y
- ;;; traditional polylines.)
5 i2 v9 \! t8 b+ \) J3 v - ;;;----------------------------------------------------------------------------
% Z: _- _$ s4 }: c% U O - ;;;----------------------------------------------------------------------------: X) p2 I3 A) v
- ;;; Prefixes in command and keyword strings:
: Z0 d+ F( g& J- a* `" J - ;;; "." specifies the built-in AutoCAD command in case it has been
6 w& l# S/ a/ J4 I/ _# X+ j - ;;; redefined.) A& h$ t6 F% x& @
- ;;; "_" denotes an AutoCAD command or keyword in the native language; C$ n3 N8 J2 i/ J/ N% P# L( M
- ;;; version, English.5 H4 Q4 _+ u) u* w* G% X
- ;;;----------------------------------------------------------------------------" u t$ a8 Q/ b# F
- ;;;
% w6 ^% Q8 v# B2 J+ K% t - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
" |( i4 N/ j; A+ X; |8 T7 ] - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2 ~+ J8 p6 c6 [ C) ?; P
- ;Functions created as result of loading file: exchprop.lsp
% s4 _2 _+ @2 q, c/ m - ; DDCHPROP2
1 d g) T" q* N$ K. h+ \ - ; DDCHPROP2_INIT
) m3 g2 R- u0 L* i - ; DDCHPROP2_SELECT
( M2 L' R$ ~! I- Q& |0 f - ;
N' F% u+ F4 F$ J - ;Variables created as result of loading file: exchprop.lsp' ^. _, d* k, ~1 G& Y
- ; OLD_ALLOC/ u7 {( K+ @7 V4 W& R
- ;
& s& |( H- a. f3 v - ;Functions created as a result of executing the commands in: exchprop.lsp
' P, `6 }+ x0 O% t9 C+ M0 ] - ;4 b0 B! r. a3 M9 F
- ;Variables created as a result of executing the commands in: exchprop.lsp6 L- `( s+ R+ J2 k
- ; AI_SELTYPE% r6 a6 A. N' T
- ; BONUS_ALIVE
1 D& W6 j% T7 P - ; BONUS_OLD_ERROR
) |, V5 {' _2 G- x" J - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7 c6 [1 H: h3 n e) I, o# N$ `+ o, x
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4 W% S4 d0 i( m - + }# b% D! v$ y* p+ L4 G
- ;;;( c2 G# x7 q. Z1 ]* T* k' Z* Z
- ;;; Avoid (gc)s on load to improve load time.
( Y7 p. r) b# ^" m( O0 w$ R - ;;;' {+ d* S* ]- r( h
- (defun do_alloc (/ old_allod new_alloc)
/ K+ Y! J# U# I: m% X6 p( u2 B - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))' x6 \8 _% q N; ?8 g* {% u5 J# c
- (expand (1+ (/ 4750 new_alloc)))
! |! J1 O. w8 W& m) r( x9 e - (alloc old_alloc)1 ]4 e- M4 V6 F& c' p; j
- );defun
; Q6 a( A5 n1 ] - ! i: @2 I0 O7 l
- ;runs at load time - rk
& }( }: E% Q8 ~' X& l - (do_alloc)
9 d# r2 C3 T% E - (setq do_alloc nil)
! n# _9 n6 @7 b9 V - ;;;6 R& O2 N% X4 _. c1 i0 K( O
- ;;; ===========================================================================
3 D" g9 ]. N! T% } - ;;; ===================== load-time error checking ============================
) A' [( Q* T% Y$ R& B1 X6 w+ t. X - ;;;
; ^, ~+ v6 w. d U* ~) ? R
, h% A2 b' \1 X5 K. l) M1 K& ?# r+ `- (defun ai_abort (app msg) " ^3 j7 a& `* \& W; `" T# |6 Z: [
- (defun *error* (s)
4 K! Y4 A' M" D& h2 x7 y* X" ^ - (if old_error (setq *error* old_error)); v, }) A* f, E" f' I. P; F
- (princ)
u- U8 [* Y7 a2 }' v6 V" { - );defun
2 B" u3 } P$ H2 I, j4 j - (if msg
* ^0 R) ~' _! \: y' ` - (alert (strcat " Application error: "% Z: _; [6 d( o5 }) e) M
- app9 ?6 F' ]' H. e* g% x0 [+ K0 q
- " \n\n "
d7 S% n) e+ d) }6 R* i& N - msg
" {3 M. |2 F% G7 p - " \n"
( |* i1 e' m! ]( d - )
3 x1 A' G7 v# \! G; ~% A& I1 r - );alert1 |4 ]# Z p* l4 p& \6 x" v' I9 l
- );if4 P& Q# E) N$ L+ ]( v) c
- ;(*error* msg)
! l; a* {4 m8 \$ T - (exit) z+ Q) @# L1 B4 F: s5 f( I
- );defun ai_abort, s7 ? \( t& I3 p$ q
- . t$ Z: _* _6 F4 ]
- ;runs at load time - rk
( c1 ]0 T$ R8 L b' x g7 m - ;(if (and *error* ;added the if wrapper around this - rk.( x7 M% u0 ~$ R, V
- ; (not old_error) 5 W+ h0 o5 l# p& c
- ; );and
N N2 ~9 O9 j+ O - ; (setq old_error *error*);setq. a3 P/ N- |+ j
- ;);if
0 P v: K' n, r- R7 G0 ], b - ) s* B$ Y/ H. _& w9 `2 N
8 J4 f: c a3 A' J% K2 F- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,, p- P# `3 P- L" f6 ?) ]
- ;;; and then try to load it.
) W r; I' x* _# h - ;;;6 _& b6 m8 s- {9 F% _
- ;;; If it can't be found or it can't be loaded, then abort the+ _' ]" ?) q/ U6 u
- ;;; loading of this file immediately, preserving the (autoload)
' W" p" O9 M J; R - ;;; stub function.
/ l$ a M& J: Y1 S0 z A* G' I - ; M8 y. |) N. v8 ^
- ;runs at load time - rk.
2 S& I4 f# e5 `0 P2 i0 }- C- p - (cond
+ d( D/ N/ E6 {, r: r - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.1 Y- Y- f' h9 `( V7 A* ~0 t/ ~( d
- ( (not (findfile "ai_utils.lsp")) ; find it
+ Q% F! i4 ~# r# _ - (ai_abort "EXCHPROP"! O- K$ ?# H; |' c7 }& ]; h& b5 X7 c" Y
- (strcat "Can't locate file AI_UTILS.LSP."
6 S6 J& R. D2 X9 v - "\n Check support directory.")8 E M: m, @; l9 L* h
- );ai_abort
5 R* B) w0 ~7 f) ?. ^7 B: z - )
& K& f5 X/ I1 a - ( (eq "failed" (load "ai_utils" "failed")) ; load it- M2 c3 P% w1 a. e' c
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP"): p$ K. l/ F( [& t
- )
0 C ^1 {6 N7 G& Y2 j. ^7 H, n - );cond close! G" I& N; m E0 m! t" a( R% N, x3 l. s
- / E1 y- n ~% S: o2 p" p
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
; a7 I- i; L# l! B1 S: U - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
" @6 o( E' Q7 z- ^9 G - );if ; ai_abort's alert box dialog.
: p3 W2 I& |* v k5 g# e/ m - * R( d6 S9 P! J; ]
- ;;; ==================== end load-time operations ===========================
3 P: u. h5 l, H6 d/ ^ - , k) i) ~& r. k/ K: \
- ;;; Initialize program subroutines and variables.; N' h1 }( q. ^; E+ P6 U" C
- & s D5 J* l. T1 K$ Y9 A" P7 L
- (defun ddchprop2_init()
+ i" d, D; p( L. K: w& [' @9 R; g* ] - 4 C' H, B2 X" r/ r2 Q
9 U! F; ^$ O& Z3 I2 W+ e" m- - F1 _: E# B/ [
- ;;
) J1 k: C/ |% W0 ~ - ;; Define buttons and set values in CHPROP dialogue box( I- M! v9 K, w4 @. m
- ;;0 T) v8 z/ q9 ?5 |, Q7 _
- (defun call_chp2 (/ cmdact p1 p2)/ J0 }/ {3 q0 n a
- ; l& f* X# U* b
- (if (not (new_dialog "ch_prop" dcl_id))
, H# y: Z9 J4 b q; y - (exit): D, C* a& r2 C, L, s
- )
! r5 S3 k B; ?8 t) M8 C - ! M+ O$ K& o6 P+ F4 G
- (set_tile "error" "")1 ]4 S0 T$ ]8 Z' k$ w" r
- ;; Set initial dialogue tile values9 }1 f6 V- Z: v J
- (set_col_tile)
, { o! S U% m K0 R - (set_tile "t_layer" elayer)/ g6 f6 P X9 b% R/ I
$ y( Y2 [6 W- `) x x- (cond' d8 \3 y" U( G- o7 s
- ((= lt-idx nil)
' [1 }+ R" U% w# F% j* ?! F - (set_tile "t_ltype" "Varies")! W/ m' }4 v) j: i0 G) _
- )' [; a6 V2 W2 c* i# E: O! I* A
- ((= lt-idx 0) ; set tile "By layer & layer linetype"
. v3 f( `& o, ?; }8 z' E - (set_tile "t_ltype" (bylayer_lt))
. F# {1 A7 \+ i& P! i% [1 V) J - )4 e* \' t8 n" X+ Y+ D
- (T
- a2 z, p, [; P0 s g - (set_tile "t_ltype" (nth lt-idx ltnmlst))9 @; @ }' o8 q; y8 I
- )8 y8 o0 e- K9 K& o3 S
- )
0 E+ c! d x4 C: T. @ - - V, J& K3 e* [5 G) r
- (if (or (= ethickness nil)
0 o7 {8 e! q/ R7 u - (= ethickness "")1 f, s5 {; a. ?! l- {
- (= ethickness "Varies") d9 @. f* J0 }( x& o1 D& |
- );or
" c: r6 L- R* `# h" e6 ~4 U9 ]. v - (set_tile "eb_thickness" "")8 u/ u e1 m1 t- G7 X, b& ^
- (set_tile "eb_thickness" (ai_rtos ethickness))
# Z2 R" s7 D* V8 Z5 J! u/ O4 D Y4 {. R - );if, ~- D& U, j h0 P
- (if (or (= eltscale nil)
+ x; u$ E) D7 q2 o# J. ? - (= eltscale ""): S/ ?% z2 q g( b7 s( e
- (= eltscale "Varies")
& p! q$ M5 q, x7 T0 [ - $ T8 n+ P/ Z" [8 S
- )
; M* f9 b, ~. U0 k' t* ` - (set_tile "eb_ltscale" "")* ]5 Y" q+ {! `& b+ E
- (set_tile "eb_ltscale" (ai_rtos eltscale))
- P* W2 a9 c7 H# _: J6 P, o* E% D - ), ]$ F' K6 j! C4 v+ d1 R4 `
- (if+ w( |! W8 U, C u8 |! U3 `
- (numberp ewidth)1 @2 G- @6 z- ^" W/ T
- (set_tile "poly_wid" (ai_rtos ewidth))1 h) g1 K+ M; ]2 f
- (set_tile "poly_wid" ewidth)
7 v4 \2 O) x8 t* u- n, c. X& c - )
F5 W" S0 }. ^2 Z; a7 S - (if/ O- W8 u4 w( ?( G) H c7 [
- (numberp eelevation)
7 }* Y! G6 K. t2 J7 a - (set_tile "poly_elev" (ai_rtos eelevation))
% U H4 ?6 x |, r& q: y9 ] - (set_tile "poly_elev" eelevation)
# G6 R2 ?1 ~; h% w - ), \9 k! m3 u7 l9 {
- (if
+ d5 q. Q/ E! B& N - (numberp eheight)
5 r) l T, B0 @% Q) y/ m - (set_tile "text_hgt" (ai_rtos eheight))
; A, L- Q1 [$ ^+ C - (set_tile "text_hgt" eheight)
6 D/ W& z* w: z+ X5 J - )
+ \0 l+ r- \/ G% b/ t) X9 g; { - (if (not estyle)
$ r" O; W# {3 [, M1 F0 ~9 ~; z - (setq estyle "")
& i! B }% v7 _2 |& d: O - );if " m! _7 @7 A d" B
- (setq hair_style_list (tnlist '("style" 16)));setq
* e5 z a+ D3 m# t# w - (if (not (member estyle hair_style_list))
- g9 f& ]& n8 z( \3 \- k. E; l3 O - (setq hair_style_list (append hair_style_list (list estyle)));setq
& P% o; \7 ?/ W7 j - );if + ^0 k) y1 `( b; w1 k( Q
- - S2 G9 K m6 I# t8 @
- (setq hair_style_list (acad_strlsort hair_style_list));setq
3 R+ q) I, Y9 j9 E# N6 g9 l - (mpoplst "text_style" hair_style_list)
( l8 s4 H4 o' _3 W, K - (set_tile "text_style" 6 q2 F/ B9 T; _) ]9 X/ c. Y
- (itoa (position estyle hair_style_list))' w8 |$ f1 E- f1 ^# L9 ~
- );set_tile \0 H/ |, x. v3 w" ?9 }
2 h) T. V C9 u' R2 A5 Z- ;; Disable tiles if need be... ;@RK
" t' ]# `; Z8 U u( `8 ~ - (setq a 0)9 F) I1 g2 i$ L8 ^, C& U- w
- (while ( < a (sslength ss))
$ Y2 ~) p# H( i8 _9 z - (setq which_tiles
) k2 j+ S, [; |; A - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))7 a6 z3 B* M6 i4 \8 U, S Q! H3 b* F
-
( ~5 l E. x" a9 B" n - ;; If all fields are enabled, don't bother checking anymore.
( E, g8 Z# p8 {, w - (if (/= which_tiles (logior 1 2 4 8 16))
0 Y; e3 _7 K1 R" y2 p1 m - (setq a (1+ a))8 K+ d! ~4 }$ k4 T+ L
- (setq a (sslength ss))& _* N- o: c$ W0 }! {( o) S) r
- )
$ v) U- y' m+ l8 q4 {7 x0 q5 P - )8 z: B( y5 k# X
- ;; Layer Button and Text Field+ r4 W9 R8 J; X8 d& U( |0 y0 ?/ ~
. k- ? T# ]0 B- (if (/= 1 (logand 1 which_tiles))1 s& F, ~5 ?: q: n
- (progn; I B1 y. y2 n1 |2 @8 D
- (mode_tile "t_layer" 1)- t( N4 s! q6 |$ n/ u
- (mode_tile "b_name" 1)
7 ^" L) t5 ]8 h- w; Q3 R - )
% N( \2 V ^& |% { - )9 {3 f0 W' d- l; ?0 v+ H. i
7 n5 E1 @7 U$ h0 O- ;; Color Button and Text Field
! g8 H, P$ T/ p - (if (/= 2 (logand 2 which_tiles))1 [ |! |* }% w4 t6 C
- (progn% z% J' p% R; @
- (mode_tile "t_color" 1)+ g. E) r, R! J* X* g, q
- (mode_tile "b_color" 1)5 G' M3 S3 r9 j/ Q% r" j7 L
- (mode_tile "show_image" 1)
" p' x! _: _+ l* a- ~ - )# g' j8 p& K" z5 s) z r
- )
& j7 V( E9 M; L6 t- T- r - ;; Linetype Button and Text Field+ ?% |5 Q. H! m8 |! w- t, @
- (if (/= 4 (logand 4 which_tiles))* T# ?! e$ T- M
- (progn
1 P- j7 d! i2 s1 M( E$ M/ [! I - (mode_tile "t_ltype" 1)
W2 \: r8 \8 q8 E3 h - (mode_tile "b_line" 1)! z8 P) ~( e9 e3 T% q
- )( E- Z3 s/ b3 K& k
- )
D% A* n' R* F. C - ;; Linetype Scale Edit Field
: f1 [; y9 h2 d7 n9 U - (if (/= 8 (logand 8 which_tiles))
8 Z% A% `- L/ G9 P5 V$ W - (progn# @) U2 K. x k1 ]
- (mode_tile "eb_ltscale" 1)+ x0 q X+ {2 o- @# A; x) _
- )
" O0 [/ X& V) g7 W0 g/ @" o' X. Y - )8 b2 l7 E0 K! I* C# Q
- ;; Thickness Edit Field.4 |9 D& S# l& s) W/ l0 V+ i
- (if (/= 16 (logand 16 which_tiles))
) Q& C0 h' B+ Z: ^) i - (progn
. s: [4 I+ U- P$ U - (mode_tile "eb_thickness" 1)
1 y9 ?8 \* k+ }8 p! F - )
+ ?0 j* V/ ^1 ] - )+ O% K- H# {) N/ t0 T* _% K
- # O* W9 _8 S& r% x& f/ b a0 a+ W
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
5 K" j$ k4 m' z' P1 t+ y( [ K - (if (not (= 2 (logand 2 eflag)))' \' g7 ?- o0 W& T6 h
- (progn
! r' |7 h3 S! \& R2 I$ q - (mode_tile "text_hgt" 1)
6 E3 u7 @" F* P8 N - (mode_tile "text_style" 1)
- u' S' C! X& n2 Y' C( y5 D! w - );progn" |* l, I" z. y/ S; E
- );if
# r2 t$ }- F& G+ ^ - (if (not (= 1 (logand 1 eflag)))9 R' ^1 }$ Q4 Y7 s
- (progn " c+ N7 P2 D% J
- (mode_tile "poly_wid" 1)) X* e2 o8 W7 K# b3 [" c
- (mode_tile "poly_elev" 1)2 K! R2 W; _ l' S! y' A
- );progn then disable polyline fields. z( P) d# J/ v
- );if1 x6 h6 E8 P$ v( Q1 C2 h
- 7 h# l& c0 b# `
- ;; Define action for tiles7 Q( j. k+ a3 @- m4 t- o9 F
- (action_tile "b_color" "(setq ecolor (getcolor))")
$ s" A; a# _3 d2 `1 q3 B - (action_tile "show_image" "(setq ecolor (getcolor))") v' a% `8 R5 X1 j/ f
- (action_tile "b_name" "(setq elayer (getlayer))")& c$ T* g) u2 N6 q9 Z$ O
- (action_tile "b_line" "(setq eltype (getltype))")
7 }1 H+ V& b* v& p - (action_tile "eb_ltscale" "(getscale $value)")0 S8 D, [; x: z& P# J6 z
- (action_tile "eb_thickness" "(getthickness $value)")% {7 r5 y/ I9 P. z8 ^2 _& h4 t5 Y
- (action_tile "poly_wid" "(getwidth $value)")
0 W7 D/ A& k9 }% ?2 Y; ]2 r - (action_tile "poly_elev" "(getelevation $value)")
: X$ \9 S+ r- u. g: @ - (action_tile "text_hgt" "(getheight $value)")" b0 e9 M3 n" X! |0 R8 C% X# P! ^' c
- (action_tile "text_style" "(getstyle $value hair_style_list)")
2 Z) H1 I% T& Z - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")"): D) V) _$ ^& D; y
- (action_tile "accept" "(test-main-ok)")
0 D) O, n6 ]8 a6 t2 l: p9 z3 Z$ \
* ]# z, y: y# H" }- (if (= (start_dialog) 1)
3 m3 W2 l2 }1 ^7 P2 l9 L - (progn
& ^4 H |+ y8 G: A5 M% x - ; Update special properties for polyline and text selection-sets.# `7 u; m. @$ u2 h& }2 Z# w
- 7 S- w: p: x$ E% b% b6 x' D# e& @
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
# S* t9 v: a/ }- D7 j( j' ` - (or ewidth$ U4 J* }# _8 W
- eelevation
6 y6 K# u/ N2 Z% q" ?- B - );or
" I* F! b% I" b8 ~) {4 P - );and P* I$ V/ P- ^- `5 J
- (progn$ A" d$ E i$ {) ~& J9 v. |
- (setq ss-index 0
# C* J, j0 b& r4 I K# h5 S - ss-length (sslength poly_ss)
: y- |3 ?/ i1 ^7 m" N; ~ - );setq9 ?6 s# @' {& ?0 i4 M9 e
- (while (< ss-index ss-length)
0 r2 I6 e q- r1 R& D - (setq ename (ssname poly_ss ss-index)
0 \5 c2 l4 U& g1 C3 \% @* k% u5 u - elist (entget ename)) j1 R+ o2 W- A! U0 L
- );setq
% h ^' {- F' b! q - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
- L) y7 t) q/ W. y6 y - (if ewidth
+ U9 I g. R* Q3 J& B7 n) M# a/ V* X7 f - (command "_.pedit" ename "_W" ewidth "_x")5 h A; w: N6 s2 S; y
- );if & y( D( O8 V* \4 a ^! J8 A$ F
- (if eelevation
4 o6 R2 h9 b8 o. E; L - (progn( b, Y* _% s& l2 i; @( I* Q
- (setq p2 (list 0.0 0.0 eelevation));setq
7 U# u. H; q, K6 o+ d - (if (equal (cdr (assoc 0 elist)) "POLYLINE")
! ]) j& c! ]3 K( ]4 H - (setq p1 (list 0.0 0.0! d. u3 C7 i/ B6 O) d
- (caddr (cdr (assoc 10 elist)))
0 o1 G) j" ~/ [8 S4 k8 x9 R& Z% S/ w: n - );list6 K: n" z! y; ?0 M7 j4 W2 s
- );setq
4 \+ y3 _2 H# m+ U - (progn! s4 F; S6 t8 d
- (if (assoc 38 elist)
* P# b% Y+ l2 H: D - (setq p1 (list 0.0 0.0
w# D# v- J, u - (cdr (assoc 38 elist))
1 Y6 }3 ]" t* o' A" H4 E - );list- m+ D. u& L2 M+ l, W
- );setq& Y: ~# Y, G8 ?5 Q
- (setq p1 '(0.0 0.0 0.0))
+ m" P. L/ j8 m& Q+ t! G6 ~ - );if! h1 G/ [% _ @8 A- `: m
- );progn : m/ S. _/ w7 k: d9 z6 j1 O
- );if
- J2 G i% N$ R/ R3 Y! |2 }( } - (command "_.move" ename "" p1 p2)
3 \0 P9 y' M7 p$ ]) R) J* g2 r4 Q - );progn then change the elevation of the polyline
+ K+ L f3 y5 v: W8 w - );if) |: }1 K4 E: F6 g: x0 G! W6 G/ D
- (command "_.ucs" "_p")2 m- U7 q3 |* n& ^4 h0 w
- (setq ss-index (1+ ss-index))* d6 ~9 W0 i3 w- B; s3 [
- );while
( W R$ N4 m5 n3 U; g8 } - );progn then polylines are in the selset
) z/ ?2 D g: l) s& @ O+ w - );if" i( q- Y* A/ E' o& |+ Q- }" `) C
- (if (and (= 2 (logand 2 eflag)) ; text
: m8 z$ c4 d& k1 q. h3 w7 y9 C - (or eheight
% ^7 t F& w% l - estyle
+ S1 @8 T( c3 i - );or6 A2 Q) a/ o# K& X
- );and3 l/ u( T, Y) y# l+ e* h
- (progn2 e* M7 C5 s! N4 A: i% }5 _0 ?9 \
- (setq ss-index 0 ss-length (sslength txt_ss))3 ~2 X' p2 J; w7 E. ]4 F
- (while
3 h) q8 k8 {. z) j; z! A1 r3 L7 w - (< ss-index ss-length)4 v; Z& q) i7 a& j/ K9 m$ {: I% R
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))0 X, V6 B; D0 x" I9 ?2 Y o
- (if (numberp eheight)9 Z8 C5 K& z0 \# m7 V
- (setq elist (subst (cons 40 eheight). K5 r$ v, r9 z0 n
- (assoc 40 elist)5 a, Z! y" Y4 Y1 U/ i: ]1 e. o4 w' F A
- elist- M6 N- Z" l; \- B, O8 X
- );subst
: n+ R; ^- q' E; s$ X* i, m. X - );setq- @0 d0 O7 m g% S! }
- );if# Z H* b! J/ H& M. \* z& ]
- (if (and estyle ;(not (equal estyle ""))
+ i0 q( [2 e+ U1 U2 \( K+ L - (not (equal estyle (cdr (assoc 7 elist)))) Y L4 Q: J7 ~. A4 C
- );and6 e: }( k6 K* P- r/ p5 J+ o
- (progn ! w* i3 L/ Y6 ]( J' B1 ]
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt ( A, d1 ]9 w0 P E$ [( G
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))( P$ r2 @& J. H, i' M: t
- ; (setq elist (fix_mtext_fonts estyle
6 e) y: T+ }! Z6 ~ P9 Q - ; elist
: ?& l* K( C- P! w& t) i q7 | - ; )
4 W2 g+ X# r( A& v, Y - ; );setq then
+ e# F1 @$ ~2 x" t - (setq elist (subst (cons 7 estyle)
1 Z( r. a) T( n7 P% v4 p - (assoc 7 elist)
: Q3 e* S P3 J4 x - elist3 j% b# W- S3 w) X
- );subst
2 a( s0 r ~ H5 ` - );setq else" O0 E% ^( B$ r& @
- ;);if + \ i. n% a. }/ U& [0 ?/ J0 Q) o
- );progn: _! G- v# e k1 ~( n
- );if
+ d# j: O+ B% b - (entmod elist): I: Z$ l6 l# g% ^1 r. ^ W
- (setq ss-index (1+ ss-index))
: O4 u3 ^# P& F7 a) M3 M - );while
# K" i: A" N u/ K, a - );progn then
* R% n) |! v' ?$ y9 d2 h$ X9 m0 D6 M+ n - );if
& T) E9 G& x& c# ~/ q/ |) o
7 i X/ c4 P* ?9 v- (setq cmdact (getvar "cmdactive"))5 c3 w# m) A# {2 H+ J
- (command "_.chprop" ss "")9 T |8 z1 X" X8 V3 w- W! L4 ?
- (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
$ i/ F( ^" k5 _/ y- I+ A - (progn+ J( F, O* |& v: @0 t
- (if ecolor
6 F5 \" C- s: l4 j: V& j; K - (progn" z9 g4 k6 V% Z' \
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK")), n6 n9 B3 {& [
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER")) i4 h- Z; m6 a+ L) i5 l% r. a, y
- (command "_c" ecolor)' x0 u1 z( H% b! E5 h X
- );progn then& q. U7 t8 l( M% j
- )0 w' q1 N, L5 T3 f. n- V
- (if (and lt-idx% e8 ^ `4 U! v6 v/ ?% L2 R Q, Y
- (/= eltype ;|MSG0|;"Varies")
/ H# ^8 q F9 {& X# R" f( O - )
: b U& Y* V# Q1 i# [ - (command "_lt" eltype)
) Q! s8 l7 F/ t - )
& F+ p2 f. Y7 ~9 R2 k - (if (and lay-idx
/ {1 k4 W. |/ ^6 h - (/= elayer ;|MSG0|;"Varies")2 C" Q: E; |2 ~' E
- )4 q0 w# s4 Z5 d4 n
- (command "_la" elayer)3 Q2 \- b) n0 y% I+ M" j) o4 _
- )
* E% M" {6 H0 ~7 _; ^2 e* n( D - (if (and ethickness 5 m3 N( H0 t% ?* [
- (/= ethickness "")
3 ]/ [' O# x# w - (/= ethickness "Varies")
6 g- y ^+ @, I t& b' e. | - )
8 E' ?2 M o- ]' e5 p - (command "_t" ethickness)5 N; C+ _: G) ]) b4 n2 f) V
- ) a! W/ ]1 g# @: H" N& G
- (if (and eltscale (/= eltscale "")): u& P+ |! E$ c
- (command "_lts" eltscale)# d' i: Y: `8 R! t
- );if
& | P: f1 F8 H4 Z, r& a4 ~/ K5 q - (command "")
( i' ?. i- j9 x' o- p" u - )
, y/ [# \, s+ V# G" [ - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
+ `$ I8 X- I" o9 p ?1 Z - )
) A: |8 e* e6 o1 F$ ~
; F1 d; q; P' P9 i; _- );progn then OK was picked in the dialog.
; X3 `4 m9 O7 Z/ s3 b0 J -
: G r# L8 a2 ?3 ~ - ;; Fred GERBER - 25-AUG-94
8 S! m% g' e4 u6 ]5 i* E - ;; Don't print the "Properties unchanged" message when the user cancels. j* O& F, L! m6 j; b
- ;; the dialog because he knows that already (otherwise he would have
# T/ j1 ^" t4 ^! O( y( p, B - ;; hit the "OK" button). Display the message only if CHPROP fails for4 }; r# n3 @# W
- ;; some reason, because it is not the expected behavior of the command.- d# i6 h6 S- u) H9 |/ |( i
- ;;
L: h( p$ X: x; ?* T; Z- p7 P - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
' ? ^3 p% u8 `: B - );if# P) u, B4 i' j2 T( ]% L+ _5 w
- (princ); v" h: Z+ n. k
- );defun call_chp2
, ~/ D7 E) H. B2 k8 G: S% z - ;;
3 H% K7 {) [3 O2 Z0 C - ;; Function to set the Color text tile and swab to the current color value.
% ?- s' x7 C8 D& N - ;;
+ s( T! P% u, ~ - (defun set_col_tile()
) U" J9 x$ y( H4 b. K - (cond
! l, L' h% F5 y7 V9 U8 x* G$ z9 [ - ((= ecolor nil)
; _! w: o7 v/ M# g' S! c" x - (set_tile "t_color" "Varies"), w" D7 G, y& J8 r- i4 v) V
- (col_tile "show_image" 0 nil)/ O9 f7 b9 Z1 k6 V3 G4 C( X' `8 m
- )
. ~$ `, o9 n6 B$ Y9 m, A. \4 N% S - ((= ecolor 0)4 Y- u* _7 @7 y% A9 P6 S
- (set_tile "t_color" "BYBLOCK")& g. ?/ F& z8 w
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white" r9 j0 M3 C3 h
- )& u) C" b9 O- r+ x9 l8 {" Z+ j
- ((= ecolor 1)+ P$ c$ h, Y( l
- (set_tile "t_color" "1 red") A8 ?- \* a* \4 I
- (col_tile "show_image" 1 nil)0 Y. R' f9 m* _3 z9 i
- )
6 Y7 W7 K/ Z+ R$ y! P6 Y. k7 T - ((= ecolor 2)# u/ U' n( |0 X) u" ~; }
- (set_tile "t_color" "2 yellow"); _: g, j& r+ }. y! {1 M- M! }
- (col_tile "show_image" 2 nil), e F% t0 |+ J* o
- )
6 @( h; t+ j+ Z" N) F' G/ b - ((= ecolor 3)
, Q5 b2 A* {" O0 M# @5 q( o% q - (set_tile "t_color" "3 green")2 g! [! y9 A# o& a/ Z5 ]" y9 N. j
- (col_tile "show_image" 3 nil)1 ?1 V( e8 U' Y
- )$ \4 C. r: o7 P1 j: p4 A: a2 z
- ((= ecolor 4)
9 j6 L6 m' p5 Q1 o, u - (set_tile "t_color" "4 cyan")
# x5 L, o0 @" } - (col_tile "show_image" 4 nil)
" y1 [* ^4 Z" v# F/ o. o - )
/ N1 k6 w+ G) G6 M2 D3 l - ((= ecolor 5)
4 u1 `2 m3 O% ^" K8 A% i) \ - (set_tile "t_color" "5 blue")
# E* q( o9 \1 {9 i. g6 A - (col_tile "show_image" 5 nil)- v2 b- |' t+ \; f7 w7 t, ?0 X. S
- )
6 O6 x' y% b7 A; i% Z - ((= ecolor 6)
T# A# c* c9 I8 N2 o - (set_tile "t_color" "6 magenta")" t, \( h5 u( _6 R# e
- (col_tile "show_image" 6 nil)" N7 B3 ]: E$ k- r5 d [. w! l
- )
) L" o7 E2 |+ f1 q, T$ M - ((= ecolor 7). U( b U% p) Q% i5 ]
- (set_tile "t_color" "7 white")
% a0 D7 v: j! E - (col_tile "show_image" 7 nil)+ ? n0 C& }: k- L! q3 J; m
- )0 E* f- c2 t4 e. _
- ;; If the color is "BYLAYER", then set the tile to+ p2 F i* y) X9 S7 X
- ;; show it's set By layer, but also indicate the1 z! {! T) P- W* Z
- ;; color of the layer - i.e. By layer (red)
e( L+ Z8 [& h: }( W; }) u - ((= ecolor 256)
. V5 F0 D3 n9 c+ d2 ?' D# R - (set_tile "t_color" (bylayer_col))6 O4 D0 M, Q/ d" Z5 |# @ H
- (col_tile "show_image" cn nil)
* Q" H/ A/ K0 D% g& v5 B. V - )! K$ F8 l. {+ x# R0 _' K2 W8 r% \
- (T; n- y7 ?8 U% A Q# ~, y% K6 f
- (set_tile "t_color" (itoa ecolor))
7 M# H h1 M* d) g - (col_tile "show_image" ecolor nil)
1 e, O; U, I8 p* V+ v; Z! \4 ]2 R4 c - )4 d* t8 l$ K5 ~: q$ }5 D1 e
- )
$ M6 d6 _! `; T: B - )/ v! r. W. f3 T! A7 @' a0 z
- ;;$ S! R! v$ y. j) h
- ;; Function to put up the standard color dialogue./ \* a* j1 x4 ]& H# p+ h
- ;;9 s5 Y& w& b% g; h4 K
- (defun getcolor(/ col_def lay_clr temp_color)
' d" \( A9 }0 {! [0 q& L: L% s - ;; col_def is the default color used when rq_color is called. If ecolor
, ]. w8 w9 {. u( w) Z$ K - ;; is nil (varies) then set it to 1, else use the value of ecolor.
/ Y0 G& V. j8 B: L/ d f. ] - (if ecolor
0 }# o: G* P( R4 Q - (setq col_def ecolor)0 ^+ X$ V7 Z2 N5 K2 |2 v8 L
- (setq col_def 1)
+ |( E+ {- j. ]2 s1 ?: D - )
& t. j% B# r; T/ Y f - % Y! X3 {( t5 D* ^; x q4 _/ t/ f
- ;; If we're working with a single layer, get its color5 z+ t f6 B9 ]! _/ q* W, B% n
- ;; for use in the color swatch if the user selects color BYLAYER.# V/ M* a5 O \7 V3 n; G
- (if (/= elayer ;|MSG0|;"Varies")
) e; E; y* m u - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))3 u( S, S$ z7 z1 q: x- c
- (setq lay_clr 0)- o* K+ L% c2 z, F4 B1 r* e( X
- )
. z( g7 G$ A% ?' D' z* c$ l6 J! E - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
) R0 i) D% ^% o: I* B - (progn0 {8 x. m0 t! u `9 q8 q2 M
- (setq ecolor temp_color)! v' Z1 S! B7 [; o
- (set_col_tile)
3 l# T2 T# j2 x) `/ C( Q. Z - ecolor
5 @- ^% R3 q- P0 L# M - )
" k0 V5 h1 g; T8 h+ S7 H - ecolor7 b' N7 x+ ^1 x9 q5 A, m$ @
- )4 u3 s/ d& @8 t' n' B4 p3 m/ q
- )
' b- @1 r9 I6 b* ~( c - ;;
: ?! ^3 W* k2 X, [ - ;; This function pops a dialogue box consisting of a list box, image tile,8 z" ]( o* z% {: b& e
- ;; and edit box to allow the user to select or type a linetype. It returns
) e. S* @3 }; F3 e/ M - ;; the linetype selected.
7 ~" R2 C6 n, V- N# V - ;;. Q* f: V7 U/ X! V
- (defun getltype (/ old-idx ltname)
9 W; n9 ~+ E2 ?7 ?; a - ;; Initialize a dialogue from dialogue file5 m0 F1 q' A$ y& p
- (if (not (new_dialog "setltype" dcl_id)) (exit)); O, G6 `5 V) y n
- (start_list "list_lt")
/ h1 ~ a/ {9 m3 o. ^# N$ `- Q" V - (mapcar 'add_list ltnmlst) ; initialize list box! Q4 E$ t! K/ }4 p% W+ Y
- (end_list)& K0 y) i. u& U0 u' n
- (setq old-idx lt-idx)% C# n) D- l! V9 @# }9 J
- ;; Show initial ltype in image tile, list box, and edit box
& C& R" a6 f4 @& Y A - (if (/= lt-idx nil) b" \3 _- T2 R: P" q
- (ltlist_act (itoa lt-idx))* a' i+ ~7 ^- I3 h8 m' L
- (progn) w2 w5 Q5 o& u5 F! Q
- (set_tile "edit_lt" "")' O) ~8 b+ N9 S- E
- (col_tile "show_image" 0 nil) m! V5 T6 R% C9 }* |9 \0 k
- );progn else
) Z3 V1 P/ X9 ~) ~/ c/ P4 P - );if
) i: `% r J7 q. F& o - (action_tile "list_lt" "(ltlist_act $value)")+ i o7 O, g) V6 a0 n+ F+ K
- (action_tile "edit_lt" "(ltedit_act)"), R% @4 r5 D" G* i( U* t& g
- (action_tile "accept" "(test-ok)")
8 m$ E& X3 t6 |, `( j2 w/ Q! s$ }3 N - (action_tile "cancel" "(reset-lt)")
9 }5 q! t$ C2 a6 F1 c; {0 J - (if (= (start_dialog) 1) ; User pressed OK
9 c+ V$ w& o, H \, N - (cond; f+ y2 s. x, a6 Y; U7 Z6 K7 `1 |
- ((or (= lt-idx nil)5 Z8 S! D) G$ Z9 G# Q9 H4 P
- (= lt-idx (1- (length ltnmlst)))
: v, r; i5 L2 G) d$ A' j - );or
% @% I$ p: i/ Y8 f - (set_tile "t_ltype" "Varies")
/ s- m6 x, \/ T6 l7 z5 K - ;|MSG0|;"Varies"" e5 s/ c* X9 {
- )
" x% N1 T- M1 |2 V3 L - ((= lt-idx 0)$ I% ~) g ^* C) h# n
- (set_tile "t_ltype" (bylayer_lt))
. c' b$ x% k* G - ;|MSG0|;"BYLAYER"7 @ D4 [, i* r" `7 G) d4 P/ V
- )- D( ?4 }; J _/ Z
- ((= lt-idx 1)& P( J) y: l: M/ M( u$ O8 ^2 |6 L
- (set_tile "t_ltype" "BYBLOCK")
* ?8 Z% q& z, P4 h3 |+ v - ;|MSG0|;"BYBLOCK"8 \( }9 w l. ~+ M9 p: B' U h: x
- )2 H4 E$ Y4 C$ M6 m2 Z. n* z
- (T
' _/ D( R Q: T' _$ j6 C6 b - (set_tile "t_ltype" ltname)
5 q2 A! `& Z/ x7 E( { i - ltname% \( Z( i+ ^8 U/ \% m8 c3 p/ ?; w
- )) M3 s0 u4 h, i% `
- );cond then0 |" z! c( ?7 B: M f: C- r" O
- eltype
) I: X+ }/ R1 Q - );if+ C9 l& f8 h( J
- );defun: f3 v! T$ M- O. Z7 w1 r) V
- ;;/ k, Q5 q6 {' {! }
- ;; Edit box entries end up here
7 ?1 o. `' B- E% F9 ~2 J$ P - ;;9 p/ G; I/ h. N
- (defun ltedit_act ( / flag)
3 l/ h w+ e6 \7 t9 w - ;; If linetype name,is valid, then clear error string,( M) j% o# g: g! g. Q8 f# X k- v
- ;; call ltlist_act function, and change focus to list box. C }3 M; `9 P/ z: E* {
- ;; Else print error message.
y X* K- g; F: o0 S - / Y9 ?/ V) |) \& G
- (setq ltvalue (xstrcase (get_tile "edit_lt"))): B" _: \: B! j0 h/ n
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")9 z. T& N2 A" B4 }( I# I- H
- (= ltvalue "BY LAYER")4 z8 D! L+ D8 ~
- )
! C( \7 \& ~4 L- b4 Q0 k7 p% k. p7 w6 @* z - (setq ltvalue "BYLAYER")
7 S1 C+ O+ [$ }9 A! j6 k4 j, d - )
1 W, C# s2 P) w0 E# A# N9 p - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
4 @6 W# v* e: E/ s* r1 G! c - (= ltvalue "BY BLOCK")
* O, E$ R D6 l* u" v% B2 F1 @+ W - ); t3 Q3 ~' y. b
- (setq ltvalue "BYBLOCK")4 d* B* _ @; p" X4 F$ t
- )% I2 | x& X, z! l& @* U* }9 d
- (if (setq lt-idx (getindex ltvalue ltnmlst))2 A6 w( |; ]- l# ?
- (progn
' ?& a% |7 q4 n2 b# X - (set_tile "error" "")) L' W1 w/ N& ]4 M: h# w* g
- (ltlist_act (itoa lt-idx))( M& u& ]0 |. P, M( B. A5 g" p9 C
- ;(mode_tile "list_lt" 2)- d. s- w) B8 n+ j
- );progn then, I" \7 }8 |$ u3 Z
- (progn$ V3 ~9 L; O2 I
- (if (/= ltvalue "")( r4 J$ A1 N0 `2 k5 m
- (progn
2 ~$ R# B2 q7 P7 x# O - (set_tile "error" "Invalid linetype.")
" C8 g$ l- @# D! _) Y7 e - (setq flag T): C* k1 F& k4 G& U
- );progn' t0 q" V K7 \/ t
- )& Q6 u" u& j& R5 ?) e
- (setq lt-idx old-idx)) W# L( o4 |5 ]; D3 g, g
- );progn else1 Q3 H8 q: L7 m0 j+ a* F! a, h1 R2 ^
- );if) X( f2 X* e* } y0 f0 f) N
- (if (and (not flag) ;added so a return will take you out of the dialog.2 |6 P1 {: N! m1 F" H, f# ]. u! A
- (= $reason 1)
9 Q' K; d1 E2 d" ` - );and
+ ?! v, O2 i" B, i* O- l - (done_dialog 1)
. r: J# [8 z) [ - );if
9 S4 x- D' v" z6 c- L( T6 a- J - );defun ltedit_act" k! N: W: C$ l6 ~0 S) n Y
- ;;
6 v& v0 t1 @5 }2 A2 W# ? - ;; List selections end up here4 D7 d8 L+ v7 |( L2 R0 H Q0 ~
- ;;
# D, b" P- L7 i! S9 O - (defun ltlist_act (index / dashdata)
1 W$ f$ g h, T. ?9 i/ o - ;; Update the list box, edit box, and color tile5 \; S5 w) U+ a, I/ G
- (set_tile "error" "")# g; _8 P! i) w3 A# u
- (setq lt-idx (atoi index))
6 `( G7 ?/ S2 X7 z, E - (setq ltname (nth lt-idx ltnmlst))
/ g; \8 [4 B& l* Q' Q, p - (setq dashdata (nth lt-idx mdashlist))
0 l* X8 U1 F' w/ u' X c - (col_tile "show_image" 0 dashdata)' T5 `+ Z/ |$ H4 c3 ~* t
- (set_tile "list_lt" (itoa lt-idx))$ ~" { `% s/ w# N' g
- (set_tile "edit_lt" ltname)
% g2 M+ G* e2 I - )
2 ~' d+ O1 T9 Z6 S - ;;
9 }& D" G; X$ B' n+ k - ;; Reset to original linetype when cancel it selected
! r* F% \. Y' l7 i - ;;
$ r; ~2 `3 X% ^2 |7 K1 N - (defun reset-lt ()
3 H( d, D! ~$ [ - (setq lt-idx old-idx)0 I6 W% f; E+ A4 H5 k; m
- (done_dialog 0)1 a) n! @2 b" Q' G9 q& Z
- )
: m: f& _! U+ {% o; k - ;;' y# J2 j* \/ y( f8 U
- ;; This function pops a dialogue box consisting of a list box and edit box to3 C3 Q) ?4 E/ L
- ;; allow the user to select or type a layer name. It returns the layer name
9 i8 H' p1 I7 T: @: y1 U* T - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the! U% } l* q- z! w, S9 P p# K5 r* ]
- ;; drawing.+ @* A$ ?! Q8 u! r: x- }
- ;;/ \9 v- Z* d u7 c, I: k, O
- (defun getlayer (/ old-idx layname on off frozth linetype colname)9 K* M# C7 y( |! c0 e7 l
- ;; Create layer list the first time the layer: R3 m. E$ I7 ~' o
- ;; dialogue is called.
1 G4 h) K7 ~. E h" q# C - (if (not lay-idx)' L; W: H7 S( V6 i
- (progn4 g$ N3 {# e! }+ P5 c* N6 h
- (makelaylists) ; layer list - laynmlst
! J) Y( S, g! ^$ h0 [' c - ;rk: S5 ?, r5 }0 R/ d; j
- (setq lay-idx (getindex elayer laynmlst))4 }1 f6 a# A" V* l/ B c! q
- );progn7 V" a7 y D7 z6 F" U3 S+ [
- );if
" m0 X. L9 V) x* s - % D% Z2 J4 o9 G( X4 F9 G" x
- ;; Load a dialogue from dialogue file
! T+ q. e! J' t" t5 m7 \ - (if (not (new_dialog "setlayer" dcl_id)) (exit))3 z" }2 h/ N5 B8 t
- (start_list "list_lay")
- `: `+ _0 f7 y0 d$ t6 N& R- L - (mapcar 'add_list longlist) ; initialize list box
# U/ v' I) i2 R4 ~8 j! i8 r% y, ]) A - (end_list)
& e) k& _, f$ ~- N M" v7 K - ;; Display current layer, show initial layer name in edit
* v- u/ l; Z ?3 i* v - ;; box, and highlight list box.* b4 z/ t# p9 }& b
- (setq old-idx lay-idx)
/ r6 e" u2 I/ q, j% ~2 q - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))) n7 O k$ V: {2 l7 N8 Q
- (set_tile "cur_layer" (getvar "clayer"))' ^( P+ `4 {9 g0 X* _% g
- (action_tile "list_lay" "(laylist_act $value)")" i) e, }- H g5 h
- (action_tile "edit_lay" "(layedit_act)")5 p' B0 x0 z1 S9 c, `
- (action_tile "accept" "(test-ok)")5 f& M5 h3 x$ f% F% g& o$ H
- (action_tile "cancel" "(reset-lay)")( j4 a y, f* q- _
- (if (= (start_dialog) 1) ; User pressed OK
/ T1 l5 `4 X) w) |# ] - (progn k' {- M2 j: p% E
- (if (or (= lay-idx nil)
% m( R+ W$ Q, o% m+ f/ v - (= lay-idx (1- (length laynmlst)))
+ S8 j; }; I/ _2 D7 r6 ^ - );or/ a8 m \1 K2 R: Z
- (progn% z6 b& W# G+ u3 M- i' b
- (setq lay-idx nil) " C: K# W! v& e- Q" h5 x$ _
- (setq layname ;|MSG0|;"VARIES")! p1 f0 M# k2 Q: Z% \
- (set_tile "t_layer" "Varies")9 T* }, j5 [/ M" c
- (setq layname "")
2 H) c7 l0 w- t, g3 {% T& L2 k7 R - );progn
" U. b0 ?$ V# r1 @* R/ t# |: X - (set_tile "t_layer" layname)
4 ~( y% L! F7 O, \$ {2 S - );if
* M9 T* N3 j" N4 v" y7 A- ?$ P, e" ^) k - ; If layer or ltype equals bylayer reset their tiles( U' f9 _ R, p7 {, ? N
- (if (= lt-idx 0)# u: e5 E/ X" c2 H/ m
- (set_tile "t_ltype" (bylayer_lt))0 T( a+ Z+ B7 f. J, o1 `8 R
- );if
, ~: [; M: l0 U6 F+ H& U - (if (= ecolor 256); x) I( q4 V- F6 y% [
- (progn
, ~% G& Y! ~. M( R/ o# |8 z - (set_tile "t_color" (bylayer_col))" V) V) p2 Q Q
- (col_tile "show_image" cn nil)
+ A, t6 P. Z, U. O+ s! j, x - )3 o7 a$ L+ C8 f5 y" a
- );if
% |- }% Q6 K& l7 E - layname: @6 ~# m. h1 l% }" X& X
- );progn) S* n3 M" m/ {: y
- elayer
5 R5 w+ A& b) B% W: E! ~ - );if! |3 q( w& i7 S& E( i) u
- )
& i$ N- C* @5 ?# K5 e7 L( S: _ - ;;
2 Q$ b5 x! j; ~) T/ w1 C& M8 \ - ;; Edit box selections end up here$ u9 {6 P. o" b
- ;;
8 p5 U1 {* \! u, G! E9 H - (defun layedit_act()
X5 W1 g s, D& w6 H" H - ;; Convert layer entry to upper case. If layer name is6 f" M. m, \5 P1 T3 x
- ;; valid, clear error string, call (laylist_act) function,3 C. L' i" p% ?3 y" Y
- ;; and change focus to list box. Else print error message.
; `, g; x8 ]$ q$ i2 N, Q - (setq layvalue (xstrcase (get_tile "edit_lay")))
% ~$ d- Y) Z; g; q+ x - (if (setq lay-idx (getindex layvalue laynmlst)): F! Q$ S; ?6 k7 ~ ?* s4 c& K: o/ d/ s
- (progn# a9 q/ Q x$ A# d; W$ `2 }
- (set_tile "error" "")
1 W& f- V) O& u2 `% ?/ T0 i - (laylist_act (itoa lay-idx))5 L, y$ W, L1 P+ U/ i. _
- ); @* Z, D) p4 d( n5 ?
- (progn5 D4 m% J8 K' Q( a
- (set_tile "error" "Invalid layer name.")
! P3 I3 V6 N, N% a _4 j - (mode_tile "edit_lay" 2)
) X; Y* l; ~# d - (setq lay-idx old-idx)7 q. p+ [# R$ K+ L
- )
/ \" D' J3 F% y% k9 K; S - );if( |$ G8 O1 W M, u
- );defun
2 c- }3 f: h# v4 }: C - ;;
! O( q( o" _0 W+ D2 T - ;; List entry selections end up here1 J6 B/ s, ?( T
- ;;
' ?1 {8 m' J$ @, W2 [9 Z - (defun laylist_act (index / layinfo color dashdata)# |# F5 V2 R6 ], w" E
- ;; Update the list box, edit box, and color tile
- i) R& h+ a+ H - (set_tile "error" "")
+ j) q# G- i0 V+ q - (setq lay-idx (atoi index))
7 Z7 i% F& o! O# c, [4 @& W( U - (if (not (equal lay-idx (1- (length laynmlst))))
% j. S# l, L. C) l1 A1 m, e - (progn
5 E! p H; ]( k; t& S - (setq layname (nth lay-idx laynmlst))" K5 _. `. L0 N z
- (setq layinfo (tblsearch "layer" layname))
U' M$ P- O- k1 l0 _ - (setq color (cdr (assoc 62 layinfo)))+ A, B" @. P% J4 @5 ~3 K
- (setq color (abs color))# u3 g/ s- v/ ^
- (setq colname (colorname color))9 _" \6 f3 Q1 e4 `) e/ [* C
- (set_tile "list_lay" (itoa lay-idx))
& L' W% p$ u: k6 I* b) P - (set_tile "edit_lay" layname)
. g) D4 J+ {2 C4 d$ |% i5 P3 j - ;(mode_tile "list_lay" 2)5 q; o4 \& w# _/ |- C
- );progn then / |4 B& u6 A- h2 q& z4 ]) e, q; O
- (set_tile "edit_lay" "")
6 a1 P5 n0 j" Q- }5 y - );if
! P6 l! q4 R+ x - );defun laylist_act( x0 i) z; c1 }9 |/ L
- ;;
! C3 h I& t0 C8 a9 h: K# A - ;; Reset to original layer when cancel is selected7 K( P+ H/ W1 S5 t
- ;;" P' |6 U U8 b" v$ ^6 D/ r3 J0 E+ t
- (defun reset-lay ()
: |- \, h1 o9 G0 O5 F+ H) L: M - (setq lay-idx old-idx)
6 Q* U# h; H# g0 ^5 w - (done_dialog 0)
- d- [! i2 X' H, c' Z9 I - )
3 ]3 n6 S* ?/ C2 _ t9 m0 T4 S+ K$ }
}: f+ {5 V) R3 \- ;; Checks validity of linetype scale from edit box. It checks to
3 x$ W& O: ]- [& m( |9 V - ;; see if the value equals "Varies"./ Z5 ~+ v. I( o( R" K
- + R* Q; V9 |- E. r4 k
- (defun getscale (value / rval)1 Y* J! v$ j8 I2 V1 V" y$ Q: r6 |
- (setq value (strcase value)* b! c, I0 w. E0 w2 M3 k* J
- rval (distof value), D7 x: M/ I8 b/ v4 O( F
- );setq
( i8 X' O' T/ k+ [0 W; x - (if (or (= value "")5 R$ i# A! C9 d* @. W
- (> rval 0.0)
# p n' h; G+ G4 O - )
. H& `, _5 n# n8 p3 R1 J9 \, @ - (progn1 x9 w/ W* [2 x
- (set_tile "error" "")+ ^# k- d1 c' y
- (if (= value "")
8 e; H& O$ } D; E7 X( R$ f$ f6 p. Y5 R - (progn) c, W4 T3 d' l7 w* `
- (set_tile "eb_ltscale" ""): r3 o% y! u8 U/ \3 T
- (setq eltscale nil)
3 n; l, r. T6 m7 b8 [! {% g - );progn then. w2 C! @- Q, L; q
- (progn
. R6 m4 A& N/ \) E/ n - (setq eltscale (distof value)); T7 G S8 W$ T0 h
- (set_tile "eb_ltscale" (ai_rtos eltscale))
/ _6 d! b4 [* Q. w% v. D - eltscale
; j( V/ C( `3 l! v3 P1 m - );progn else& Y* s" J1 y' q" l) ~' w5 l% J
- );if
7 Z$ t O! L" U6 ~7 f5 X$ W) h - );progn
3 |: M5 C; ?* P3 e8 C# }7 [ - (progn
! F; }: H& h* Z2 p8 f - (set_tile "error" "Invalid ltscale.")
0 I4 d" `5 R& l+ a8 X, r1 B' o - nil7 @5 S; W' t4 h# ^: ^
- );progn else0 z( o1 n; N# M9 }
- );if2 Q$ ^* }. s. C! R6 [3 v
- );defun
; }) Y! V1 E/ h# U8 ]$ j3 O E$ W - ;;" i, _( ^1 h, A; q6 Y" C# M: J; F/ ?
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
0 N( P+ l$ W0 [" o4 V9 X - ;; string can't be converted to a real, this routine checks if the first6 k; I- K/ u. `0 \, e
- ;; character is "0". It also checks to see if the value equals "Varies".- B" a7 S) I: Q9 z6 e
- ;;
7 Q- I$ e. o7 {( ~" R1 I) u - (defun getthickness (value)8 h+ j* W% M% w
- (setq value (strcase value))
8 k! x+ f1 J3 q4 _9 Y7 h - (if (or (= value "")
/ x& O$ }5 k: v2 V - (distof value)
, i. c* a! ~* ^" f8 u - );or9 c5 a" z$ z" R* I# N- O( O1 Z' p8 J
- (progn" `& b: A2 [- F6 J3 F
- (set_tile "error" "")
+ s, M: }+ p3 `8 d% }# t! d - (if (= value "")
8 z. T; j4 R, U' Z8 ~ - (progn
' H. o1 [, c2 E7 a! d3 ^6 r0 S - (set_tile "eb_thickness" ""); b$ M5 ]5 Z: [* V' _
- (setq ethickness nil)& o1 t$ H" ~3 P+ H: F
- );progn5 T5 P: h* S9 l; D" P
- (progn) ^1 B& D6 _" Y* z
- (setq ethickness (distof value))8 ~* K6 i# Y/ B( H' C
- (set_tile "eb_thickness" (ai_rtos ethickness))
7 i) [6 [2 f8 E: i( X - ethickness' \ k- [: }; ?! B
- );progn2 ^; X% R* w$ I! H; ^
- );if
7 B- \# K5 h. s2 L. @' E - );progn p4 {0 z' x9 R; @3 Y- H
- (progn
1 K( A% c% G5 j, _ - (set_tile "error" "Invalid thickness.")
/ H w) v0 K! J; N6 W/ ? - nil& f- L; c( w% _- Y* c% ^
- );progn+ U( D, c: f, t+ l. b, R) k; U' C ]
- );if
; I7 I+ W6 d. h0 T8 W, L3 i, C; n - );defun
% ]( }$ x7 k" |0 _ - ;;2 z+ |2 E& v3 ^$ n5 @8 D! B
- ;; Checks validity of polyline elevation from edit box.
8 J( J0 |+ o. e& F: d% i - ;;
! o3 e8 V. M+ a( x! W! {$ n. T. e( F( Y - (defun getelevation (value)6 i' F7 M2 J7 w# _. a
- (setq value (strcase value))
2 o0 @+ a: G, C8 V - (if (or (= value "")
/ c: b5 {& \/ p5 @! S - (distof value)
! }2 i# S$ { Z$ A. B8 f# u# ^8 L - ): P# X) i* B8 Z( l0 E
- (progn
5 O3 W- ]$ p& y D; z5 T - (set_tile "error" "")5 x7 Z: T$ K- j* U7 k
- (if (= value "")
' x# A8 O, u2 F- G9 P' _4 E8 a - (progn
6 l, L6 T+ {; X' i( }8 l - (set_tile "poly_elev" "")
. \' k# t/ ?+ W# Y( i0 D* e5 y - (setq eelevation nil)- u% _. d2 K' t) S
- );progn! L7 L6 B& u4 x& q( D' J& M3 W
- (progn
' F- _" M1 }% S# ]& C - (setq eelevation (distof value))& O6 M0 X0 I E' r! R" L) t
- (set_tile "poly_elev" (ai_rtos eelevation))) d- A4 R, A& E9 {# u
- eelevation+ J" {. g' x5 g) W$ V$ P6 h+ Z
- );progn
; i5 u( g/ q" a - );if. q& g1 m2 Y3 h+ q
- );progn
7 i/ I, X% ?4 i" s9 C1 z) U - (progn
5 p: j$ l" x& Z8 I4 [2 l - (set_tile "error" "Invalid elevation.")
! _/ U$ ?+ {0 y& E' l, R) x/ T - nil
! |% T9 C0 Q, X& V* t8 X; ^; P - );progn2 R7 }- N. i' |4 p$ y" ~8 X
- );if
- y+ v1 ~! c. a. c+ ^ E& m2 u/ u - );defun
9 ^0 Z% Q+ s, T$ } - ;;: } {1 k- H2 g1 l: Q% Y
- ;; Checks validity of polyline width from edit box.5 T# `3 }" W' V# c, o. o. ~# a
- ;;
# n% N2 M- ?9 y - (defun getwidth (value / rval)0 J# ^. m7 B0 E2 k1 n# c; ?0 t! z
- (setq value (strcase value)! f4 g( z% n) ]/ x, R0 h
- rval (distof value)
* Q) d9 s& D. B! _ - )
, R) v# h; w: F# N; Q - (if (or (= value "")
8 }! q, I0 q, W9 S7 g8 S - (>= rval 0.0)
& `; X% z* p7 `$ \% D' } - )
+ g" o# M7 D, u7 Z# ^6 ~ - (progn
3 b8 I6 M) d* Z1 F7 a) g$ @9 Z - (set_tile "error" ""); v! N7 H5 i7 Z
- (if (= value "")
( `' ?5 Q6 P6 x4 N. p/ S5 B( o! @ - (progn) ?1 J+ v7 k a! h% K: c
- (set_tile "poly_wid" "")" w) _ J9 w6 h7 U* m1 y
- (setq ewidth nil)- Z6 D4 M( u" r3 U$ E" |
- );progn3 R8 t F D& D! s
- (progn/ L- O6 d5 p* D4 B% l( H6 P, U
- (setq ewidth (distof value))
- I- b! e- Z$ \% A! B - (set_tile "poly_wid" (ai_rtos ewidth))5 _. x6 Y, Q5 f- N/ u. R. ^
- ;width. g6 q4 Z& U% }3 b3 E/ W
- );progn
: W" b3 P* G5 K( L2 q K( y - );if6 H+ D u2 v T' t4 ]
- );progn
5 F) a% r$ A2 T# b6 }3 _$ _/ y - (progn
" g7 X- t; I; _' R/ Q1 p/ N( }" r# ? - (set_tile "error" "Invalid width.")2 {( |6 c0 ?- [( Z1 E8 A
- ;(setq ewidth nil)
$ T; r( C5 d- r! S! i - nil 4 [, b, P5 x5 D5 a
- );progn4 s" v( L0 O1 ]
- );if
; E- G/ [4 Y* H3 ]2 |" F - );defun
" [1 p. ]: c1 O4 @9 z - ;;
: Y4 i& b# |' E# G% Z - ;; Checks validity of text height from edit box.7 }. A( Y8 h# t) H" p! x
- ;;
- Z" B Q9 [) A5 m7 J - (defun getheight (value / rval)
' ?, F. @7 Y+ U+ v1 S# J - (setq value (strcase value)
# W8 L6 w; Q7 F& y+ ` - rval (distof value)
2 J- m- P) [$ ~1 h/ v# l - )2 n: ^3 d e r% {& z) X9 \
- (if (or (= value ""). N: |: z+ [& V* m+ c) p
- (> rval 0.0)
5 u8 n0 @) x4 B. c - ); W9 u4 R* @9 p. q9 B" `
- (progn
1 f/ Z% {; z9 ^# R) v - (set_tile "error" "")1 p3 f: i9 ^# P8 }' ]. b+ O
- (if (= value "")
2 O: K2 ]& v7 _9 L9 }4 n* [. y7 \ - (progn
: B1 ]: P* _4 }; D2 W- F! \) W - (set_tile "text_hgt" "")
" B6 ~. @; i( ?( d$ d - (setq eheight nil)8 ?1 [1 g! n) W J, d
- );progn' \5 E1 }7 l( ]# a( Z- j
- (progn+ N) x$ C# C( _5 U
- (setq eheight (distof value))( ?6 B s1 p& p) D4 `: X/ ?
- (set_tile "text_hgt" (ai_rtos eheight))
8 H7 {" ]$ Y6 l - eheight3 E \3 J$ m Y8 s: m4 C6 A6 q# ~
- );progn7 t, x5 y' F4 A, d0 T, ^+ ]9 m
- );if2 {3 }& J) w; R1 N0 c0 ^) p8 m$ q! M
- );progn! e) _4 f: Z" u; @- Q$ d; _% h
- (progn4 A# g" @& ^2 m& d
- (set_tile "error" "Invalid height.")( e5 Q" l$ G- d4 G" `" F
- nil
3 L7 y6 s& n# b5 R - );progn9 z. s+ _+ t2 K& {7 V
- );if
9 I6 m" a$ w9 g3 H - );defun
9 a" u1 i4 J$ `* f$ P
8 U: M( k, B; K E) o- (defun getstyle (value lst / rval)
# x' i% _4 ]; `0 f9 D - ;(setq value (strcase value))7 F8 }8 k1 R3 v0 I# a) m( d1 d6 T
- (set_tile "error" "")
- B2 [0 I+ ]! x1 V5 K9 n, B- u! J - (setq estyle (nth (atoi value) lst))2 \, k) e. J6 p+ }
- (if (equal estyle "")
7 R& M0 I( K. u3 c6 r# s5 o' C1 s: J3 a - (setq estyle nil)1 k% K$ N& d" W
- );if0 R/ j/ H3 R Y$ n# [1 Q9 a
- 5 o9 D4 b# U1 E3 F2 n; m0 g
- );defun getstyle- }4 ?: k) ^+ V
2 m% b% c/ l; l/ O3 a7 B- ;;3 R j; F' l6 |2 ~, ?& g
- ;; This function make a list called laynmlst which consists of all the layer9 P- }$ u( c( ]( r
- ;; names in the drawing. It also creates a list called longlist which% U2 E: I9 T" H1 K7 A: Y( K7 ^5 n
- ;; consists of strings which contain the layer name, color, linetype, etc., [! _9 r! n6 V# {
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
* I1 P! G3 Q$ \/ r0 C/ M8 d, }% ~ - ;; same. Y- R# W4 \. |# T/ ?& A
- ;;
3 B$ ]( _3 ?9 k/ M3 l - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname4 p" b$ h; M) m% h9 e
- xdlist vpldata sortlist name templist bit-70) ^" Q- k2 s% N; Y
- layer_number
6 P! V& c: B2 ^) _( M) a7 o - )% j- x* F1 f5 d) E* Z' A- [6 f
- (if (= (setq tilemode (getvar "tilemode")) 0)
& p% v" M( \( e E8 m- e - (progn
) X& E8 W9 v& d0 m - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
* `# P/ H4 l: L5 g - (cons 69 (getvar "CVPORT"))3 ]7 j0 I& O5 O3 h# D3 p7 H B' \
- )3 _' i7 P" h, d
- )' K( j* L S; a1 x
- )3 K. Y, ^) V" g3 ?% E
- (setq cvpname (ssname ss 0))9 j9 E7 c9 b- v
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
m) z3 |/ {8 J$ V2 B7 U- i - (setq vpldata (cdadr xdlist))( |( Z2 y9 ]' R8 e5 R
- )
: ]8 q8 w7 |% ^5 }9 N - )8 J/ D5 U3 q' }
- (setq sortlist nil)
3 H0 s7 j' [) z4 p6 M( w- |3 d9 n3 v - (setq templist (tblnext "LAYER" T)): P# K; d- c! A# Q, o; g, S# ]# o
- (setq layer_number 1)4 `8 U8 A) }' v% ^
- (while templist
; a0 w& T0 z& l$ d) _1 P( @ - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
h' @" X f, c* N* h" @, W - (progn H3 A, c# j' F
- (setq name (cdr (assoc 2 templist)))8 s- H" h; K6 T% t( o' d
- (setq sortlist (cons name sortlist))
& N E; |3 e s- l5 l o" J - ;; Not dead message...2 q1 p+ F _+ @3 ^% b+ g
- (setq layer_number (1+ layer_number))
; a# M7 N! b. @3 u3 l, R2 h# Q - );progn' ^& a6 ]$ y" P7 a
- );if
5 u+ Q0 V+ T, n: u$ I! P5 D0 q$ n - (setq templist (tblnext "LAYER"))
( \* q6 J' ]; E' H0 D - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
3 ]# O }7 s! M5 R [ - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
* \% e. r. C! R$ w9 G. ~ - );if
4 V0 k- z/ k* B7 v1 u - )
: r7 t! g0 y9 ]5 h* O" R, O - (set_tile "error" "")
. ~7 \% Y2 ?; [9 c7 f! E - (if (>= (getvar "maxsort") (length sortlist))
% `# n$ T( |" i2 T- X - (progn
4 ?6 s5 O) j+ y - (if (> layer_number 50)" ]* h8 Q. f8 @+ r4 y" I
- (set_tile "error" "Sorting...")' F) J6 }& ^$ P J2 o
- ); n+ T# O7 h; u
- (setq sortlist (acad_strlsort sortlist))
, [: ^5 f, F I d6 ~$ Y, J - )
0 l; {$ b' p% Z - (setq sortlist (reverse sortlist))
4 K! d1 B2 x& M: H& q - )
" t% M4 |. N( [ - (set_tile "error" "")& c6 p A8 H( s- _" E
- (setq laynmlst sortlist)8 k8 |# N- k0 n/ ?& `( z
- ;rk * u7 Y' C; O5 @+ G8 D- i8 v
- (setq laynmlst (append laynmlst (list ""))) . { `4 ~3 K" r, V" z' L
2 Q; r$ X+ _. z2 h: R5 u- (setq longlist nil)
J0 j i7 Z, b - (setq layname (car sortlist))
: @2 m6 g) ]- E3 T: x" @ - (setq layer_number 1)
/ B2 b" k3 Q0 ?6 C! i8 E/ D: K - (while layname# n( S! ` @4 x$ G* }2 b6 m
- (if (= (/ layer_number 50.0) ! T! ?: ?% p$ n& {$ V( j/ k
- (fix (/ layer_number 50.0))
* ]' L# U1 {, b# p- ? - )6 E) o$ s( k/ H
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))5 T8 H4 [- L4 b8 s e* w% m
- );if
* C4 d% b6 s) g2 Z2 Z) ]. }9 } - (setq layer_number (1+ layer_number)); _& U5 e+ ~, q, O6 r1 e
- (setq laylist (tblsearch "LAYER" layname))
( S5 c" x8 Y: S% t0 o) n D - (setq color (cdr (assoc 62 laylist)))2 a. R. f# g: P4 D
- (if (minusp color)9 L. M7 m4 ?' [( u$ n$ K- \ `
- (setq onoff ".")
6 X' c5 F: B5 V( C6 i. o4 g - (setq onoff "On")
/ |/ T* o i$ z3 o, Q( D: ^( u! ? - )6 G$ `1 G- J# @
- (setq color (abs color)); J) _0 U0 c' n. }7 N2 k
- (setq colname (colorname color))
, N% Q( G6 |5 H9 `6 r# j2 n, F( t8 z - (setq bit-70 (cdr (assoc 70 laylist)))+ w/ h' X+ Y0 \5 }. ]
- (if (= (logand bit-70 1) 1)7 C! L- M) g( z: c
- (setq frozth "F" fchk laylist)
/ k. i, o9 p7 @3 |: l - (setq frozth ".")& a* @' G5 P3 ?: `# V9 B
- )% s( W5 S; D* x* M6 ^9 v. S- a
- (if (= (logand bit-70 2) 2)2 X+ T$ I* ]8 M0 i/ z1 V: J& Q
- (setq vpn "N")7 S% S; D. L0 |$ r3 ?7 Z1 ~
- (setq vpn ".")
w6 A& ^: C, y# ]. B. e& I$ S - )
6 y4 B7 T3 a8 N. M0 n - (if (= (logand bit-70 4) 4)$ T; z# g2 b( j4 C
- (setq lock "L")
% Y' Z6 t2 F c- C8 z, V% u - (setq lock ".")
9 A: ?; U, Q# i! {1 R7 J& y; J - )! K8 [+ ]0 M# r8 M8 C% K
- (setq linetype (cdr (assoc 6 laylist)))5 q- Z5 z: X, n8 s
- (setq layname (substr layname 1 31))
1 j# y; s& M+ L9 T* h ~1 a - (if (= tilemode 0); l. i4 m+ L- h: ^# X
- (progn
. O) `0 w8 u7 E - (if (member (cons 1003 layname) vpldata)( r' S1 _/ |+ P& t5 T5 ]
- (setq vpf "C")" K0 Y5 B! M+ W; z8 Q: O
- (setq vpf ".")
$ r6 S" x$ `1 J! P - )
9 `7 y h/ a, O' J - )
& m8 A' F( W v6 l" ]" K* f) z5 } - (setq vpf ".")
- a. F* a( }, h9 `/ L$ _ - )
5 m- t" j$ Z) X; o+ P4 g5 J; @ - (setq ltabstr (strcat layname "\t"
6 m; Z6 V" ?6 j1 L: C G5 S - onoff "\t"
4 B# L4 R) Z- ]" }! H - frozth "\t"; n7 g- }7 E9 w+ z
- lock "\t"
; @6 t: p% R3 t9 v( _3 s3 A3 a; s - vpf "\t"
* m* a @' T( g/ F& R' ?7 p- W - vpn "\t"0 [& u, o9 T, `1 r, L' j5 s
- colname "\t"
" z9 U# \1 C3 F2 l9 | - linetype
8 D6 q+ S2 C: X; _ - )
5 W6 ]4 ^- m# a7 ~/ R - )
9 m1 X+ K3 P% N6 r - (setq longlist (append longlist (list ltabstr)))7 x' z% K% \. H8 Y; n( [
- (setq sortlist (cdr sortlist)), A! G7 X! L$ c+ A- U
- (setq layname (car sortlist))6 H3 d2 D4 R: M1 d* P4 t. c# S
- );while
/ T4 E# G4 [3 v) Z+ ` - (setq longlist (append longlist (list "")))1 P6 D0 G2 }% |- O, T% p
- (set_tile "error" "")
" }. N6 f/ H4 _. G$ U- e - )
) m6 y( P+ }/ ?9 o7 Y. H2 V* _ - ;;
: n) M6 |' r0 v8 }& J! B - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of8 A0 h; m+ d5 d. M# C- r
- ;; linetype names read from the symbol table. Mdashlist is list consisting. E$ r1 A# p/ |, C
- ;; of lists which define the linetype pattern - numbers that indicate dots,
' U5 v Q# q# e3 [! T6 b. k - ;; dashes, and spaces taken from group code 49. The list corresponds to the
2 [1 @/ U' b {, O+ R7 S; }% z5 i - ;; order of names in ltnmlst.
& Y5 {6 T' V8 w - ;;
$ G1 j8 [% Z$ R: N/ P6 D# P - (defun makeltlists (/ ltlist ltname)
! V' {7 D8 b+ p4 I* u - (setq mdashlist nil)
! Y+ m! b2 K* F4 N. O" g0 D - (setq ltlist (tblnext "LTYPE" T))
# T, g' s& o& _ - (setq ltname (cdr (assoc 2 ltlist)))/ `* K K( L" G+ t) M# p' h5 O2 Q& X
- (setq ltnmlst (list ltname))
8 J. k; u" H7 o" \4 v; R - (while (setq ltlist (tblnext "LTYPE"))
- P$ o: p) {& y5 i+ f - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))4 c0 v( v3 r8 ~$ q6 f/ _* N
- (progn
6 G2 p. N v5 u1 m$ X% l2 \ - (setq ltname (cdr (assoc 2 ltlist))): z& A0 R. |" A
- (setq ltnmlst (append ltnmlst (list ltname))): W7 S% h2 [6 m
- );progn
7 W" T6 s4 V' ?. f% }# r - );if $ O4 t' |8 e8 c+ o/ n# d* E
- );while$ f/ ~3 |* m- g9 i3 ^9 i
- (setq ltnmlst (acad_strlsort ltnmlst))( a+ A3 d3 P1 L: M
- (setq ltnmlst (append ltnmlst (list "")));add by rk
1 U7 o+ L& n& e) G5 { - (foreach ltname ltnmlst4 V7 p9 i) F- V; @) U0 E+ @7 O* |
- (setq ltlist (tblsearch "LTYPE" ltname))
1 H1 C+ B8 L7 J" {1 W3 `2 J9 l - (if (= ltname "CONTINUOUS")2 c8 K1 r; W T5 Z
- (setq mdashlist (append mdashlist (list "CONT")))
0 v+ s0 D" U* X0 x) s: ` t0 G - (setq mdashlist
( y/ e0 C( {; }7 f: a0 k3 h - (append mdashlist (list (add-mdash ltlist)))
4 U( k3 e7 ~; L! l - )
/ z' D' d( R# K x% u [) A. r6 G1 j/ J. | - )' C' f3 e- t6 x, M+ V$ a$ t
- )
1 W" P( O# p& ^7 u% L/ X - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
3 z6 L: D H- c/ z$ l - (setq mdashlist (cons nil mdashlist))
( }- }) k9 B: g0 a) d - (setq ltnmlst (cons "BYLAYER" ltnmlst))
; i& b0 f/ G- Q) f2 F8 g - (setq mdashlist (cons nil mdashlist)) B Q$ B6 A/ ~5 W" Y# |
- )+ u% x! a; w: l O/ M
- ;;
- `& [8 j: A l; b5 \ - ;; Get all the group code 49 values for a linetype and put them in a list
3 o" m2 v# q% v - ;; (pen-up, pen-down info)" A* o6 W/ G3 B0 A0 B) Z
- ;;
7 G, t; j/ f. {8 e7 o - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)& E+ \6 {$ E* X! H
- (setq dashlist nil)3 l3 |' P1 n0 d ^# J4 ~. @8 ]
- (while (setq assoclist (car ltlist1))$ G4 B6 n9 _0 x# Z7 g1 g( N
- (if (= (car assoclist) 49)
: v: ]+ A) E! n0 l& `- C - (progn! |' c- ^$ k1 m {" g
- (setq dashsize (cdr assoclist))7 n* N* m- q0 |: q; t
- (setq dashlist (cons dashsize dashlist))
" Q D) m' s, t8 X - )
& L7 {5 T y0 X( Y, A - )
: s' v1 x6 @5 Z( M - (setq ltlist1 (cdr ltlist1))
3 `! {2 ?3 X$ g - )
2 |# |* v) T- C1 }1 \ - (setq dashlist (reverse dashlist))
7 T; K+ v9 }- i) a. e I! G3 P - )
0 |4 M- l1 z+ ?* w ^ - ;;! d- Q. V4 Y: P$ I( h7 t, Y
- ;; Color a tile, draw linetype, and draw a border around it& @# S" p& a. V) L9 O
- ;;% h* o3 i4 c4 d! }6 l$ @& g
- (defun col_tile (tile color patlist / x y)
$ n5 ?- R2 D- { - (setq x (dimx_tile tile))
* a' I6 c& H" u# b0 w - (setq y (dimy_tile tile))
0 r0 N2 a2 x# e# l5 j' d1 T - (start_image tile)6 h- `' M0 R7 c9 I. t
- (fill_image 0 0 x y color)1 ^/ q N+ P# J$ c/ x
- (if (= color 7)/ K: S& y1 U- O
- (progn
8 P0 p4 V7 h( Q( c) {8 g9 q7 n - (if patlist (drawpattern x (/ y 2) patlist 0))& J! m( Z$ C5 m w3 }7 D
- (tile_rect 0 0 x y 0)5 A8 i' G3 z X! H
- )5 w Z, d4 s# j3 S5 t" u
- (progn* W% A( v8 O7 T5 F" ~) g* n' p
- (if patlist (drawpattern x (/ y 2) patlist 7))' @( n9 a, m' {1 j. S
- (tile_rect 0 0 x y 7)
$ U! M# X3 u" u3 i% g - )8 e, z/ g, \: k+ ?. F5 S; N
- )6 G. w2 c" r) v8 O! i+ U
- (end_image)
$ g7 Q) O0 p7 Y) l1 M x - )+ E: G! T) t$ i' c3 k
- ;;2 O' X& O) N' c K' C. B
- ;; Draw a border around a tile
5 I E3 i; d. p. I: g: T8 X% L - ;;
$ t' s2 H3 H2 k' z% d' v. o - (defun tile_rect (x1 y1 x2 y2 color)4 c. v U% s+ _
- (setq x2 (- x2 1))
. |% X5 }. V. R3 H7 d - (setq y2 (- y2 1))
& t" ^' A9 Z: o* D _ - (vector_image x1 y1 x2 y1 color)
8 W) Q8 M0 \ o! K2 K% x/ m5 g$ y - (vector_image x2 y1 x2 y2 color)
# v; c$ B, C' j, | - (vector_image x2 y2 x1 y2 color)
. M: a5 T6 {( k+ q5 [- a - (vector_image x1 y2 x1 y1 color)
m' L* d# e1 }1 V0 n - )( v) k: f& ?$ Q4 o4 e! h& X
- ;;9 o# L f* D6 l3 V+ C& B
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image: L; I, x1 P- `. Z1 ?$ B
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
+ E4 \; _" m/ m$ U - ;; list of numbers that define the linetype, and color is the color of the g7 ^ X5 A5 g) r- f$ K
- ;; tile.
/ r4 B! \) X) l- \- m* q; P* Y - ;;2 {7 a" {1 l6 Z8 t
- (defun drawpattern (boxlength y2 pattern color / x1 x2) ~0 J5 W# v' |+ Y- `' Z
- patlist dash)
7 `& ?% o! Y+ ^" V; I+ F$ m - (setq x1 0 x2 0)
$ A, w/ l! T# s9 f# P - (setq patlist pattern)$ L( U, F8 i6 G
- (setq fx 30)1 Z7 K* [# S/ L+ f1 V$ G4 {
- (if (= patlist "CONT")
0 W1 U$ t7 [ k4 P4 o7 V- B - (progn
' I; k6 X6 O( A - (setq dash boxlength)
9 J$ x9 f/ V# a( R( }% i8 [ - (vi)( a& {% Z! q) Z; A: R6 L+ l6 M
- (setq x1 boxlength)
1 P' [/ c) G6 v4 A! r: I - )
7 i) B" b+ B+ x, Y' i9 v - (foreach dash patlist9 x9 p+ @8 ^% C' d r ]1 `
- (if (> (abs dash) 2.5)
: F |, B/ Q$ Q' F y) K - (setq fx 2)5 c6 o9 b8 D4 s3 ~7 M
- )
5 z$ d; w3 @0 n, Z% W' H1 U/ ~# H - )+ A6 @$ w2 z$ H' \% U/ T$ A5 b
- )
. y6 A+ l7 ~4 o) n; \ - (while (< x1 boxlength)
+ ^& p) R1 }- J- | - (if (setq dash (car patlist))& y% U0 ?' i' z' c7 u1 F2 g. N
- (progn( L( Z7 ^( [) ^% d; U8 g
- (setq dash (fix (* fx dash)))0 a5 j6 u4 ` S8 f( w
- (cond
2 e( a' q% s/ f6 ?: o: i$ Y+ c - ((= dash 0)5 T7 F- D. x P$ @. p6 T# {" F
- (setq dash 1), e# c* d: r4 `; W, F8 u
- (vi)( N* A w/ Q4 {5 e/ g
- )
/ n6 U/ K. ~1 f2 Q - ((> dash 0)* ~0 F) O( j. K, o! \
- (vi)
& t0 Z( [0 x0 ^ - )
. Q6 t& C& _ ^$ s) E4 C - (T, V8 d/ e( S2 }
- (if (< (abs dash) 2) (setq dash 2))8 O* {9 D) R: B- \/ G; A" d# B
- (setq x2 (+ x2 (abs dash))). W; B! N. v1 R3 S% [
- )& M! S U: ]# m$ j# X* h+ i
- )
R3 O" t; M' f0 _! o! r/ F - (setq patlist (cdr patlist))
" H! i4 F; n' ?1 G( l- T" p4 T9 { - (setq x1 x2)1 y+ z+ m( ~5 p* `7 `$ v( J
- ). ]5 m. f% R$ I; L i: q+ k- f
- (setq patlist pattern)
7 v( M, i7 d& M1 Z) P - )
* z, H2 G7 E$ H9 I. e H8 n! v - )
/ S4 A9 u% I9 `' E4 L+ g5 G( M - )
+ R+ L7 H% v" {; \+ u) V - ;;( R- ~1 ?9 t# N% J4 a& D
- ;; Draw a dash or dot in image tile2 h6 M4 P/ k. g3 N; I D( E
- ;;
" w1 C( E! T3 X j8 E8 R: k6 F ` - (defun vi ()8 D+ Q. m- f" E8 q8 z
- (setq x2 (+ x2 dash))
8 ^, ] i% {8 S; O. F - (vector_image x1 y2 x2 y2 color)
z! w! b$ y: t3 b2 Z - )
/ `% B- [. c1 y7 t Z, x7 V - 2 y, s1 }( i' k4 A9 q% i- Y% N# U
- ;; This function takes a selection and returns a list of the color,, o# g% [6 }" s& \$ C/ U
- ;; linetype, layer, linetype scale, and thickness properties that) ^4 k2 L) R9 m
- ;; are common to every entities in the selection set - (color
' t4 `" e# B! x1 o' s' F - ;; linetype layer thickness). If all entities do not share the same0 M6 W6 I9 `6 s, h7 v G
- ;; property value it returns "Varies" in place of the property) I' O5 ^$ Y8 e- P0 O
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0). u" I2 Q; o: B7 O* P ^
- ;; The last item in the return list is an integer flag for the
K2 I% k: f# N& _ - ;; homegenity of the selection-set object types./ ?: T+ n$ i+ {0 O
- ;; 1 = All polylines
( _6 E1 r, s& U7 o9 R9 q/ O - ;; 2 = All text or mtext or attdef, or a combination of the three" g; H9 {6 Q1 s4 ~0 q0 b
- ;; -1 = Any other mix of objects- p5 N3 r& A h( w8 {; e* O
2 ~. V, I) v' q/ N7 w- (defun getprops (selset / sslen elist color ltype layer ltscale thickness0 \4 F0 @& a w8 U2 Y
- width elevation height go ctr 5 |% W8 j2 q( U3 h3 e/ @, ?
- eflag
! i& ]8 I e* h: Y, t0 s - etype temp - G9 k: P+ A- `8 j
- txt_ss ;;;;rk 11:24 AM 1/30/97* ^1 q+ b1 r% \/ s
- tmp
6 Q' r) ?# Z' v - poly_ss / H- m, _2 Y$ b4 ]- v0 \
- style3 s' P( l5 A* B7 X5 z5 o ~) c
- )5 A. y _9 U. W6 o5 f& }
; T! J R3 ~- a8 R( W! F- ! g2 o, L' y% E$ |7 |. t4 R1 \
- (setq sslen (sslength selset)
* Q2 Z( }, R R- ~; v! q - elist (entget (ssname selset 0))
+ T5 S( {+ q+ J$ T9 V - etype (strcase (cdr (assoc 0 elist)))% Z0 ], i/ z3 A' b+ } k
- color (cdr (assoc 62 elist))
, F5 t E+ N3 |' g3 w+ ^ - ltype (cdr (assoc 6 elist))) ?4 S9 e+ j4 K% r
- layer (cdr (assoc 8 elist))) g. _. e3 @4 X Z( z! k
- thickness (cdr (assoc 39 elist))1 v. r3 y+ D6 {2 o2 I0 [# B
- ltscale (cdr (assoc 48 elist))
4 L, c$ o0 S. r* i" h5 W - );setq/ Q5 x: v8 N, B- ^) ~
. W6 W4 i( D+ R! w* A- (if (not color) (setq color 256))0 N+ l. ~* e# r7 C O
- (if (not ltype) (setq ltype "BYLAYER"))2 C0 J$ b1 w( W! p& b
- (if (not thickness) (setq thickness 0))7 [, q& y, H" E% N
- (if (not ltscale) (setq ltscale 1))2 G8 w& g1 Q- o3 I' ?' T9 U) n( ~
- ) o5 k8 b. O. k) G: Y6 E2 t6 C5 s2 ?5 e
- (if (not width) (setq width ""))
- @" }/ w2 }3 b ]3 X3 k" z0 n - (if (not elevation) (setq elevation ""))
% h; I2 |5 U6 A* B Z/ @ - (if (not height) (setq height ""))2 B2 l7 N: B: m/ u
- 4 V. E2 r: D$ h7 a6 P1 @
- (setq go T
* \4 v# p! k Z8 H/ G - chk-col T & ?, d5 c) Y( A6 M/ }
- chk-lt T
1 W+ L) G1 z) B/ A - chk-lay T 2 F, \6 I7 J: `' n B
- chk-lts T
# I* b; ^1 g/ m+ @: k - chk-th T + c8 c" E" W- _% P: v) t; I Q( B
- ctr 0
! o. A) \- M) q4 v \ - );setq. [* u: h# [9 j1 h% Q& M
- " ~! V6 U% U9 j9 H: T& n
- ;; Page through the selection set. When a property
" ~6 ]+ R5 l4 ^9 V3 ?! g. T, D1 v - ;; does not match, stop checking for that property.! T. r# q$ m+ f5 H% P
- ;; When the selection set is not homogenous, stop checking.' s0 c. v& ?! s3 N! Q9 D
- ;; If all properties vary and the set is not a type 12 m4 f3 K/ q D& A$ V6 y2 Z
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging. x8 h9 ~! `. C0 u
- 4 v9 g4 L: V% \% T
- ;Lets set the eflag so we know if the selection set includes any
8 ?* K, Y8 s/ p) t! D$ S8 h - ;combination of polylines, lwpolylines, text, mtext or attdefs.; M1 G5 a* j& e' y1 o9 E9 D! @' O: i) ]
- ' F- J8 L! I5 N! g: S' z7 f M% `
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/972 [8 W' L8 `) x- x! n" l# a' H
- (setq eflag 0)
! x g% U! A3 y4 K: B. E/ ~# K - (if (setq poly_ss
6 j" `! F6 X" F% h$ ^ - (ssget "P" (list '(0 . "*POLYLINE")0 {# Y% s% d7 w
- '(-4 . "<AND") . h$ B1 J9 V( I) V$ A% ?3 d
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
; C; q! V ]9 ?2 ?* z - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>"). e k7 W" C# x* t- }' Z7 c+ s
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
( c' o2 q0 e0 l - '(-4 . "AND>")
# u l: O% `8 b - );list
; C: @+ i6 F' O - );ssget get 2d polylines (legacy and lw)
; ?7 W/ I0 w3 z8 O2 e - );setq9 v% V3 A+ K6 B
- (progn. v* m' f2 z, S* t7 o
- (setq eflag (+ eflag 1))' b- T6 Y* ?# B& x3 D8 {0 W
- - V' D, W5 l7 Z" {
- (setq tmp (entget (ssname poly_ss 0)));setq8 m- i; ]& f s$ I
8 F/ f* x o, i% j$ L2 F9 Y- (if (equal "POLYLINE" (cdr (assoc 0 tmp))) C1 k6 U. {: O2 Q3 s
- (setq elevation (last (cdr (assoc 10 tmp))))
6 c, W3 Y' {( r7 m - (setq elevation (cdr (assoc 38 tmp)))+ h; Y, K7 Y& u7 I
- );if& z2 }" D8 L q, s" a/ R
- (if (not elevation)8 S0 O& @) O8 c$ {: E+ Q6 T: F8 Z
- (setq elevation 0.0);setq
9 P) i% P5 r$ R9 b6 o% ]$ p% U - );if2 Q) w4 |. F# `" G+ k: o2 g
V3 b# O, ?# G+ O' x: l4 m/ n P% u- (setq tmp (ssget "P" " c, F6 i' B* ]* I, Q
- (list
* [2 g2 d6 V, u2 B. p - '(-4 . "<OR")4 U6 Y& j' Z9 D
- '(-4 . "<AND")
, m# c4 S$ J7 O( G" b+ @6 R. _, J5 v - '(0 . "LWPOLYLINE")
" q4 R' `4 R7 Q - (cons 38 elevation)* [0 ~. C) g$ p
- '(-4 . "AND>"); q e Y2 n% d4 K3 J
- '(-4 . "<AND")
1 {+ `7 f* ]% l+ ?7 B8 A6 f* C( I - '(0 . "POLYLINE")
3 D4 f! y2 \! R - '(-4 . "*,*,=")
& i, f* w* s# u+ D7 c - (cons 10 (list 1.0 1.0 elevation))
% ^- s0 o/ h" w6 i; f, U - '(-4 . "AND>") 7 L3 b# _8 t8 c
- '(-4 . "OR>")5 u5 p( v1 O* a' g) e
- );list3 Z0 V. [! `. Z! @
- );ssget- r& v1 p4 N; E& s) ?& E2 D
- );setq6 v: |! H7 B9 @ x$ O% L
- @! F& \8 K, O$ a* N5 r' ^
- (if (and tmp
3 g3 D5 ~+ }# h2 e - (equal (sslength tmp) (sslength poly_ss))* [1 G9 } e, n2 v
- );and8 O4 s/ ?8 g9 o! {: ]" k5 u
- (setq elevation (ai_rtos elevation));setq9 k; H* U0 U/ D5 X/ ~
- (setq elevation "")" n+ U3 g# M8 ^5 [) v2 }$ P ~- N. P
- );if
1 M0 e" ]1 t3 _0 _; _' Q7 { -
4 t. c: N7 c! K2 R! \ - (setq width (pl_width_getter poly_ss));setq
8 d4 {; B0 Z7 f - , t8 l$ p3 B3 D3 `3 E, F H8 ^
- );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!7 u, z7 ?% |- j' x2 k7 l# |
- );if
* b4 j* a6 t- p9 V8 r - (command "_.select" selset "")0 B0 T0 ]" [ E8 g" N. m/ ~# V/ f
- 6 v& Z9 c) b. Q/ N( F6 j
- (if (setq txt_ss
5 C6 g3 M: k# t8 q' u% F7 Y - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
9 K. D. x. X2 }' C# q" E - (0 . "ATTDEF") (-4 . "OR>"))3 ^6 v. B8 ]! H/ w7 A
- ) 3 k* ?* Z3 ]) e% }; S% l" v' e1 @
- );setq
8 b: f$ `! Y# c! y7 W - (progn
n2 H7 E$ q2 o+ r, q3 R# b' M - (setq eflag (+ eflag 2))3 h# n' K9 r' Z' n- j7 h- I+ g
- (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
- R( [6 j9 K' _9 H" S b - tmp (ssget "P" (list (cons 40 height))) * D2 d4 ~. R* Y' r
- );setq
) o+ }4 w4 n" g( E l. I% a: L( T - (if (and tmp
0 L3 o# x9 h5 T, H - (equal (sslength txt_ss) (sslength tmp))
/ \7 p6 U ]/ R2 o2 F - );and* \5 H4 E- s8 }4 g( Q
- (setq height (ai_rtos height));setq ;@rk need to translate from float 7 u" ^/ E) L, M# e x) _) L
- ;to string and back again easily
4 Q7 [9 d3 g! B - (setq height "");setq else the height varies
0 w$ ?9 Y" _" \ S4 ^) g& a - );if
4 z. k. B# P2 j% b" A6 E3 x- p - (command "_.select" txt_ss "") ! m9 b' P6 ~) A* E
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
8 p$ z2 j+ o* E4 F1 o: V% e* K0 p- y - tmp (ssget "P" (list (cons 7 style)))
/ H! }5 a4 ?7 u$ P. R - );setq # T5 n& ?6 o0 m! W0 O$ T8 P
- (if (not (and tmp4 x6 `5 r& W2 `2 \8 {7 d
- (equal (sslength txt_ss) (sslength tmp)) ! F+ d, p, B/ l7 O1 v
- );and- h6 ]* J* h# P+ I
- );not
3 l; g% N2 _$ y* V7 ] - (setq style "");setq then the style varies
: s* f, @0 z0 G, y% p- [ - );if; \' i, |9 ?& s4 i
- );progn the text type objects are in the selection set
+ c7 T8 x3 L5 Y ?, p* y3 ~ - );if
|) V+ X0 w* |/ f0 f0 L/ e - (command "_.select" selset "")
% p: U' \5 e$ x; l. X8 M* g0 K -
8 g$ b( v* c ^9 V8 p5 ~2 ? - (while (and (> sslen ctr)
( P4 T i0 q" e& |1 L/ `7 b8 m - go6 H7 o2 _6 A, N, R6 F, {
- );and7 H7 s3 X+ p% M/ D
- (setq elist (entget (setq en (ssname selset ctr))))
' D8 I2 D; R% `; M; E* n6 a/ z
+ v' Q k* }, o+ t9 p+ u9 o, S- (if chk-col (match-col))
6 X; @2 R$ P9 p8 w, ` - (if chk-lt (match-lt)): q) `* ?2 G4 @& B
- (if chk-lay (match-lay))
$ F5 }2 I5 J) _0 S" ? - (if chk-lts (match-lts))& [1 m) v) t7 \ L
- (if chk-th (match-th))* X- E4 h$ j4 z& Y. g/ @
- e0 e1 s& [8 O& T! ?% @- b6 d3 P1 [1 Q- ;(if chk-etype (match-etype))- a' O0 E, {% w
- ; a& B! M- Z' J V6 d$ g& R# p
- (setq ctr (1+ ctr))
3 j0 [; B8 t6 G4 X9 P" d8 V - (if (and (not chk-col)1 T8 r5 l- J& @- O
- (not chk-lt)6 k/ Y1 D+ N& B6 u
- (not chk-lay)% R& b+ |* v7 {5 e) N; T" A
- (not chk-lts)
( g7 P% V7 N* z2 p# u' [+ H - (not chk-th)! N5 m! h. x1 ], }+ C0 s, H
- ;(not chk-etype)
# A( |' C8 t+ S0 H* T7 K/ K - );and
1 a2 @- n; A# V) B1 Z F - (setq go nil)
/ I+ K! i( U2 E' {, J - );if( i4 t& Z4 b6 @
- );while7 S; X/ ]8 E& c' E3 [$ j- _6 O
-
+ h" U9 F# d. A. ] - (list color ltype layer thickness ltscale0 k% Y+ h5 W Z+ t, M9 [
- width elevation height eflag
, v( T3 y+ k4 F: Q' T' m0 a - style poly_ss txt_ss
# Z& c U: E5 N - ) n: ^/ w/ Y3 Z/ G `* g* x: g
- );defun getprops" e: B' q# D7 s4 b3 o
+ g- z8 Y, W, a1 n2 H; R% l- ; This is a speedy little routine to tell whether the polylines in % b+ U1 d' D1 I8 A. c" Y
- ;the selection set argument are of varying width or a constant value. / [& ^+ Y& X, D: K
- ;Looping through the vertex's has to be done for old polylines when : ^7 G* m( O5 [7 h. g% H
- ;the polyline header has width values of 0.0. Basically, in this case,
3 b5 N- x3 ?5 J' w8 ]2 { - ;information in the polyline entity header is abmiguous. Width values Z$ o+ U" u6 n& K& E8 x K
- ;of 0.0 in the header entity could mean the polyline has a constant 3 e) X, K' r4 q7 t& _- z' d) s
- ;width of 0.0 or it could mean that the polyline has vertex's of varying 3 r+ _2 Z4 H$ M% V
- ;width. r" X6 e; \3 e
- ;
: |& k5 |) c! V - ; It's all in wrist. Err a.., I mean it's all in the 'if'& ~/ G1 U/ E& k- V
- ;;
7 A4 L; F' h, N* h M - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
. v. A8 F8 s c: U. x8 D! B' D
' v! Y- P! ]$ d0 ^% |( [: l- (if ss
* X9 A! ~, s$ u3 Z - (command "_.select" ss "")
5 J5 {3 R6 P* Q+ r* N6 R - );if: @6 Q- Z _2 ?5 Y, G
- (setq width ""+ Y, U5 ]& Y' R# y5 O
- flag nil3 i2 o, o/ w0 i8 t* W
- flag2 nil
0 b/ Y2 `/ K6 Z/ |, p, _* t+ L - );setq
4 v+ L2 z7 _ ?3 r5 {$ N - (if (not 4 Q: M; s1 J: @
- (and ss
; Z; v: t, D' y0 p; _ - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq w0 [: F/ q; J8 M3 v8 J) _
- (setq na (ssname ss2 0)8 P% k- \: r9 r* W C" D
- width (cdr (assoc 43 (entget na))) N. W& F9 w; |
- );setq" i& L# Z2 s# B( f& g
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")1 q: J7 ]& Q* m8 x' P) Z% P
- (cons 43 width) k5 c% E# X$ w, A. G$ J
- );list. \, S( h: F7 @& ~" z+ d9 w6 e
- );ssget1 Q" j; M* `# U* ~4 o5 {
- );setq4 l' r a7 M/ b5 j/ H5 L* ~- O
- (setq flag T)
/ \- Q! m; T3 E* O9 M2 C, p- M% e' M - (equal (sslength ss2) (sslength ss3))
1 }* B- q# L/ ` - );and) z# [& X7 {3 z% P
- );not: x+ F) x# [. V# G' p# ^; V
- (progn+ Z- [: S. L! J# X8 W4 z
- (if flag% l; S" k2 v" Y; g2 U
- (setq width nil)
( {4 H5 Y3 s4 H0 p; x0 P! I, E - );if
( C( [* C7 [) b4 v- G: h - );progn7 m- {5 N4 p; I) _
- );if
; D& P/ |4 K& E6 Q I1 T" g - . e. _; n$ w& }
- (if (not
3 J0 P; O$ P, h6 U: P: j! B: ^* ^' ` - (and
; z% H/ S' @. Z7 z. Q6 A - ss: H' o# U4 I, D8 A4 x
- (progn (command "_.select" ss "") 6 T, ]" ~8 Y: M: h, k2 w8 t/ e7 c3 |
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq/ {9 u1 ` K9 H9 b4 u8 a
- )
& t' b( ]7 A" Q7 j( L. J! T6 s - (setq na (ssname ss2 0)
3 p9 y1 \/ \2 \+ M: M V) e& ~ - e1 (entget na)8 D5 n$ w9 ~' a; I! D4 f$ D
- width_a (cdr (assoc 40 e1))+ I s) M$ c- U' f* q5 H
- width_b (cdr (assoc 41 e1))
1 C; H' j2 K$ C; f - );setq5 _+ P8 P' e5 y: z% U* n
- (equal width_a width_b)- |% L! j5 d; ]( }$ d4 }
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")1 w, S/ z$ }3 r* l/ n
- (cons 40 width_a)5 v, a% b' ]7 A4 c% u4 j
- (cons 41 width_b): {# k. I$ \7 _, ]! n
- );list
4 v. y$ @; I: h - );ssget
# h2 E- z6 X4 H* j - );setq
7 t5 K$ Q4 H! o, }: q - (setq flag2 T), T. q) s* c! C4 { n
- (equal (sslength ss2) (sslength ss3))( Q$ H6 Y' i+ B1 y# s
- );and 6 {$ }* |' e0 _0 l
- );not 4 I) e, v/ Q/ H
- (progn
9 j) R0 ~! H1 W% d- U( h4 Z - (if flag2
`# d' R# ]* B" p# f& J- B Y2 p - (setq width nil);setq
H4 N/ {4 j. Q9 D - );if. A3 |" w& h. H7 Q4 U, s, S! H
- );progn then' W3 |0 ]/ H* G" n5 o# A
- (progn
/ _! k) h: Y# t - (if (or (equal width "")
. `* i6 F! q8 k5 F2 [ i - (not flag)
* O' t$ \" `/ P; O5 K N/ j) k - );or
7 g: P, J ^' X - (setq width width_a)
# A$ { _7 F! c& _2 D+ t# l - (progn
$ Q! a/ m6 q9 N& O7 u - (if (not (equal width width_a))
& P# O3 `# j0 a4 M P+ o5 a! Q - (setq width "")
% F/ N( Y* w7 b7 S: C% K1 q5 z - );if 5 I$ J1 y% S1 b- V( y
- );progn* H3 h$ V N, z- B7 ]8 w
- );if# q* s" l6 d3 R2 A% A7 V0 q1 w
- );progn+ ^8 N+ G; C+ P! v3 H
- );if+ ~6 V5 M1 S+ w. j5 V+ _
-
3 w. U4 e- M0 t
* z( c9 ?6 r( |- ;now for the special handling for old polylines$ C! A$ j; ?* S% v- P6 T
- (if (and width % H. D- \$ K1 v( [8 b
- (equal width 0.0)
/ L6 e! Y0 y T - flag2, P W4 o* o$ p* m" C+ A) Y A# d
- );and ' H& @) P7 F. R3 q) G
- (progn+ ~: M1 C( T; g) b r8 d/ @7 ]
-
7 B F6 {9 T7 Z1 v; z& Y3 L - (setq n 0);setq
2 y' A/ K+ V2 v6 `% U- b - (while (and (equal width 0.0)' k0 }; V# q- B1 w; n
- (< n (sslength ss3))
4 Z1 G9 O; y, l8 N( h @8 m! ~ - );and2 \; k" h e+ p. @, b
- (setq flag nil
' y8 p0 N5 Q; W7 w5 n U2 O6 M9 r5 T& x - na (ssname ss3 n)5 e7 v$ z: c" c2 q3 y
- na (entnext na)
2 } P/ r0 E+ k - e1 (entget na)
& `; @, X2 [( `' D, f - );setq0 m: I/ V; ~$ _
- (while (not flag)
3 b7 u. ?3 u. L% O: i; A; @- p9 e - (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
g {( c" I g2 h& e i2 L - (not (equal (cdr (assoc 40 e1)) 0.0))
/ ^5 ?4 X# Y- D* x - (not (equal (cdr (assoc 41 e1)) 0.0))* d6 F! A8 s; q# C1 b7 }1 y$ p
- );or
) {- E. f4 X, ^2 o, ^( @% F' ? - (progn0 `" q( G/ j" `$ ?2 e
- (setq flag T);
M4 Y( B2 j+ N2 K3 {1 R - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
8 S, L+ D' g; `1 u - (setq width nil) 4 l9 \$ ]* o6 F. x) |
- );if) U+ J$ Z, F) r" v
- );progn then jump out of the loop" Q3 Q" z( Y2 [$ F6 v, s# b
- (setq na (entnext na)) a7 g* V9 v; _. A# F
- e1 (entget na)
5 ~% }8 N- A" h' d! Y/ D - );setq
4 _4 R$ n/ X: O+ j4 M$ N - );if
# N+ ?' R4 X, x* b5 { o! S# o - );while& h4 y2 k! X! E- l( U) X+ n
- (setq n (+ n 1));setq " g1 c' D; R8 D) {$ n! L
- );while 9 P. z4 t8 x2 d- e5 @
- & n i) ?! L4 N# n; J3 Z
- );progn then it's a legacy ' W( o7 }) }7 [7 I+ w( `
- );if ;legacy polylines that may have varying widths * O8 k* U/ b5 s3 }$ @$ H
- . V/ o1 Q( ?. h1 y. F6 x5 Q- Z
- (if (not width)8 R9 u7 O" R* k/ w% S4 Y
- (setq width "");setq( J2 X7 C: t ?4 B" E8 w+ s+ m
- );if# t% e' ]! ?9 A3 `" c
- (if (not (equal 'STR (type width)))
) y' i, g. l, |) E - (setq width (ai_rtos width));setq . S% N, S. z0 o4 Y8 T) x- L# h4 @
- );if
6 s; L7 k- |/ M- n- g' g$ D0 y -
, C" x! c+ K& D$ T0 u! | - width
2 V# P" g" m$ `' U4 z - );defun pl_width_getter
* U: U" q6 E1 O - 1 Y2 k7 Z1 `5 C. O. E
-
1 _8 n! T- b) Z- G0 C2 M- F: { - (defun match-col (/ ncolor)2 v$ X- n4 ~% Q- j& \$ C& ]( T* y6 f
- (setq ncolor (cdr (assoc 62 elist)))' A7 q# _# t" B3 Y
- (if (not ncolor) (setq ncolor 256))
8 m$ k$ y% N9 x* B+ i$ S% q - (if (/= color ncolor)* g% S! u; p8 }
- (progn( v% _& J6 d2 A, \% c
- (setq chk-col nil)
t: I3 F" P% A0 j! L" m1 Z - (setq color nil) M) z* ?5 g5 ?! i% X$ q. P+ h
- )
6 g1 q- j: D& I4 x - )
) V e4 ~$ k! F- \1 l - )
+ ^& _, [ _# o5 }6 x t - , ?: Y1 e% r" Q& F7 ?
- (defun match-lt (/ nltype). r! I! }! O- N8 v
- (setq nltype (cdr (assoc 6 elist)))
' l) x4 N$ x7 @+ h. G - (if (not nltype) (setq nltype "BYLAYER"))0 w) X# N m/ A9 B
- (if (/= ltype nltype)
* R. n( D; e. f; `; O6 A - (progn
- z0 S" \& }+ C6 R7 o) l8 L1 d - (setq chk-lt nil)
, t7 {8 X4 S! H, Z7 R' B* B - (setq ltype ;|MSG0|;"Varies"), w/ G& d X1 a/ k B; c8 o* ~
- )9 T+ z$ g; S7 h- y, R: Y4 }
- )
0 @$ c0 L- V- V- a0 a- ~ g0 L - )5 D1 i0 W9 Y; o# M3 U
7 {/ Z* G5 Z |* D0 l- (defun match-lay (/ nlayer)
5 G; S4 M$ R6 |, C0 D - (setq nlayer (cdr (assoc 8 elist)))
7 i3 m4 ]! n9 t. y) S2 c- e' Z% j - (if (/= layer nlayer), l% ?) }5 V, z% z! Y: O
- (progn$ q& }0 j. \; b5 O
- (setq chk-lay nil) m3 L, `( H% a( [- s" ?: {
- (setq layer ;|MSG0|;"Varies")
. l6 d2 p+ L; a" I5 b - )- P% J! {& K6 G+ f- M6 Q9 x
- )
: a k- n5 E# W: y" a8 m& r - )2 V% ]5 J7 Q% K+ K: B8 D% }2 c
0 }9 [8 m1 }: J! v. ?' P- (defun match-th (/ nthickness)9 M. I$ @. Z8 Z0 I
- (setq nthickness (cdr (assoc 39 elist)))5 e/ J2 h, V# I' v
- (if (not nthickness) (setq nthickness 0))
4 U/ ^' I }0 }5 L; ?/ H - (if (/= thickness nthickness)
7 z+ j4 ?' m. C5 y& \9 \' c$ H- n: k - (progn7 l4 A5 \- }8 _! n3 f0 u w1 _% p
- (setq chk-th nil)
) U& p4 T9 F! S+ n, p - (setq thickness ;|MSG0|;"Varies")
5 v9 _" D2 A! @* X1 V+ l9 A - )' c0 n; c7 c: t, E* K4 c$ b) m
- )5 w: j) }5 _ i
- )
. v0 O' m: w& S
. Q1 W$ m; ~- z# [; |& a- (defun match-lts (/ nltscale)- p. T2 x& D4 j; G+ @! o. g5 s
- (setq nltscale (cdr (assoc 48 elist))); G( C1 o4 b/ m, n/ p
- (if (not nltscale) (setq nltscale 1))
z U& E, ]2 i) m' |% p/ q - (if (/= ltscale nltscale)) U9 T+ X% i" V
- (progn) @. O, z! l" o/ x3 d0 u$ O7 Z
- (setq chk-lts nil)
9 M" C8 u; D9 r0 X! R H, u) } - (setq ltscale ;|MSG0|;"Varies")& F" T" u' |/ Q2 ^& j1 I. Q! r
- )& Y+ V1 j5 G6 x* _
- )5 l7 D1 ]. c0 i- l
- )/ Y, {* B/ q) ~5 C' t
- 4 B% Q# ?' A H, B# u! W
- ;;
& _9 ?4 B0 `; B# o$ Z; h - ;; If an item is a member of the list, then return its index number, else6 V- p: h4 e/ d1 p2 b
- ;; return nil.
# I8 {- ]' y C* W% M3 x - ;;8 w! X& X$ o) A) }3 R. Z3 u1 h6 {
- (defun getindex (item itemlist / m n)/ t5 h& q7 K& v& E% [. L
- (setq n (length itemlist))- c7 O& D" ^; e( J
- (if (> (setq m (length (member item itemlist))) 0)9 Z9 d O8 c4 I
- (- n m)
6 @; @. O m" k; j - nil0 c# R: E( l2 m+ T$ k- t) t
- )
2 C' S4 G' C4 l1 I& r# W0 b - ). X% j* [# a% C+ N' X) K0 l
- ;;
% Y- s* U9 n% P: H7 e: H - ;; This function is called if the linetype is set "BYLAYER". It finds the
' ^! p* B1 O* }7 c - ;; ltype of the layer so it can be displayed beside the linetype button./ y+ c2 n$ }2 [* R5 |$ l' B5 _
- ;;; c. h& m+ h) C( ^
- (defun bylayer_lt (/ layname layinfo ltype)' n+ ^7 Z Y7 A
- (if lay-idx
' F4 f8 l4 y) f* i" d) Z$ { - (progn4 W# C, E0 w. i( x4 {6 _/ K
- (setq layname (nth lay-idx laynmlst))' |6 F- q. T: H W6 O
- (setq layinfo (tblsearch "layer" layname))
; Y8 S/ J. g( w - (setq ltype (cdr (assoc 6 layinfo)))
! O4 T- R% ^7 \& v - (strcat "BYLAYER" " (" ltype ")")
+ b$ o5 o& Q) d/ k$ ~* I2 ? - )$ C& H0 B, _/ V9 T
- "BYLAYER"
W# q0 r3 q" _8 K3 g: Y: @ - )3 O5 n% T1 B- M2 L. x4 ]
- )' C4 w* E; ]$ j {% ^' A
- ;;( i6 l, P8 e6 @$ A
- ;; This function is called if the color is set "BYLAYER". It finds the
4 b- N \6 w! w Y* Z; S$ w - ;; color of the layer so it can be displayed beside the color button.( s) ^; a+ q0 k
- ;;1 M- t6 y. T+ d$ V( v( h$ O$ {
- (defun bylayer_col (/ layname layinfo color)
+ ~) f% P$ R8 i; f2 Z l' F - (if lay-idx
/ }+ u4 p9 F: B: h8 N* D' R - (progn% n' H$ [7 U8 n' ]5 q) Z' a1 E
- (setq layname (nth lay-idx laynmlst))$ U7 B; |0 j( H$ u8 T. }2 O
- (setq layinfo (tblsearch "layer" layname))0 q* V t( t; W- p# M/ c
- (setq color (abs (cdr (assoc 62 layinfo))))/ i1 |$ {' J$ `) Q& \
- (setq cn color)
- z2 `& g: \: Q; v - (strcat "BYLAYER" " (" (colorname color) ")")0 V q5 O) e0 K; n
- )
# j5 [. g9 L" v$ {6 V! E5 \& d" G- b - (progn
& Q: Z. Z4 H8 F& i7 |/ V% D - (setq layname elayer)9 | l u7 G+ Y. c
- (if (and (/= elayer "")( W3 x! V q; P/ O% [7 y% Q
- (/= elayer "Varies")* v0 q/ h! O5 I, n1 o+ m
- );and
* w+ m5 b0 S: b' q& ] - (progn
3 u, j t" f% P' b" I$ ? - (setq layinfo (tblsearch "layer" elayer))& V0 j* H9 F! J
- (setq color (abs (cdr (assoc 62 layinfo))))* ~ b# U* M6 [$ s& q; ^% Q t
- (setq cn color)
. ~& o& N- D7 z6 w - (strcat "BYLAYER" " (" (colorname color) ")"): A, X7 M/ A$ g3 q+ ~( ^, R
- )
9 k' ~0 h0 T7 q8 i; `, q - (progn9 R, E+ a" f$ V0 Z0 c8 n5 w. d! w
- (setq cn 0)+ U% s2 B" B7 p5 {' s
- "BYLAYER"
$ ?! y7 U2 ?9 ~ C/ x1 c - )
( N3 m1 B2 r& _4 o5 L' m - );if
5 g" o. z! a, r7 w+ ]& D3 M - );progn
1 ?" N. I+ T: l6 j# N7 u - );if
, |) P0 O1 E( V4 p% \' {3 f/ R$ Q - )
! v5 h7 \* D% ]+ ^ - ;;
! g6 ^. i" c* K7 c" y( { - ;; If there is no error message, then close the dialogue4 i) Q Q/ b/ v: A
- ;;/ _- @8 [, R# e$ x1 x A6 P6 i
- ;; If there is an error message, then set focus to the tile3 p+ v8 i7 v% Z% x* |5 U5 ^4 [
- ;; that's associated with the error message.
( W }7 Z& I6 I9 M% V - ;;
, j0 K' I* D/ m/ _9 K - (defun test-ok ( / errtile)- J5 \0 x4 j6 @* B5 _3 u
- (setq errtile (get_tile "error"))' b" r' P0 Z+ G$ A5 B
- (cond
- ^2 V. C$ n6 J - ( (= errtile ""). W+ F& U( S" H; E
- (done_dialog 1))
* h6 H; h* Z/ G - ( (= errtile "Invalid thickness.")
A. y% L. k5 C2 I! d - (mode_tile "eb_thickness" 2)); V5 D. x) }" I' B
- )' Z6 ^+ X* c6 A8 B) @) W
- )
5 n7 r( m z( A - ;;& ]4 { K; D9 x6 T
- ;; OK in main dialogue.
/ A2 G* d7 Q' _4 P - ;;
. n, N! D2 \; o4 r8 d, ~7 b - (defun test-main-ok ( / flag)2 m6 M& v$ J3 q3 i p
- (setq flag T) / K2 S7 p6 d( J
- (if (not (or (distof (get_tile "eb_thickness"))$ u0 r) J0 ]9 M7 v
- (= "" (get_tile "eb_thickness"))
# x9 ^0 A# u1 }# a5 u - );or) d' Y& P4 E& I0 I2 j. ]/ k
- );not: w$ H4 [ {# n% W
- (progn
9 I1 s6 L& V% a/ R- w - (set_tile "error" "Invalid thickness.")
) C! |2 o8 J0 p+ e - (mode_tile "eb_thickness" 2)
. W* x5 f F' s( f- j - (setq flag nil);setq1 b+ h7 {! o( L& J1 D' G
- );progn1 X% {) J0 W% O# h' `1 P% H
- );if; S8 t% U9 t4 ~- J4 K+ N/ s. R
- (if (and flag
- w, N" C. y* I$ Z! B, V, \ - (not (or (< 0 (distof (get_tile "eb_ltscale")))+ d: Y' h, u3 A
- (= "" (get_tile "eb_ltscale"))
6 U; \- c4 c% q1 ~, C: s - );or
9 @7 P0 e2 V) O7 Q) d! M5 s2 C1 ^( p - );not
, O) e) `; w; w# t! {" } - );and
& c9 N2 E) h- x - (progn
. i+ u; S; A5 s9 j, g$ }) U - (set_tile "error" "Invalid ltscale.")
- k) m" Q' } |3 H( B - (mode_tile "eb_ltscale" 2)8 v0 M! T* N' q" c4 D' n! o/ S# c
- (setq flag nil);
& |) p" p8 }2 p/ E* X - );progn then
4 G3 l5 S9 b: Y - );if
7 z: \. D0 {+ n P( }/ b - (if (and flag7 f' P8 O6 U% t$ U
- ; Don't test the tile's value unless it's enabled.
& ?8 A( W5 p. Q" n- z - ; We're not set up for the display-only value
) Y# U) p7 c9 }! a - ; of "" here in the error handler.2 C8 x) X5 R: k0 _! m3 n
- (= 2 (logand 2 eflag))5 @7 _- n. p; O
- (not (or (< 0 (distof (get_tile "text_hgt")))1 M& M7 Y4 C2 _0 p
- (= "" (get_tile "text_hgt"))
; v' ~% [. G4 U1 {- X3 H - );or
5 q* A1 g/ C6 z3 d - );not! A# D5 \' F. M2 h) S
- );and
2 K! ^9 T$ H# p6 ?0 ~1 Z( O; z - (progn7 f( U% l, l/ ?- f0 B8 E% A9 q
- (set_tile "error" "Invalid height.")
+ O0 x Y' W# x7 K: I* t - (mode_tile "text_hgt" 2)
+ V4 U' [+ C: d$ H - (setq flag nil);
: `- m8 M: I3 S+ \ - );progn then
! o& X" n7 N4 U( e1 _ - );if+ i9 o" h( n9 M
- (if (and flag
( q" |5 }: e3 u+ Y' u - (= 1 (logand 1 eflag))) B( W# r0 c$ ?
- (not (or (<= 0 (distof (get_tile "poly_wid")))( x/ w+ V$ L2 @3 U% J, B
- (= "" (get_tile "poly_wid"))6 s) k6 D) f$ ]& V
- );or5 [. r% F+ }4 @5 P0 g
- );not' H6 h9 v! X- T0 p2 T6 L
- );and8 Z" Q! P4 G+ H
- (progn& Q G* k" Z4 s" ]. b/ L$ e3 T8 L6 u
- (set_tile "error" "Invalid width.")+ [' v2 g. o1 E- X/ ]' ?7 P
- (mode_tile "poly_wid" 2)4 E6 k2 f+ V+ |
- (setq flag nil) f" k! |4 R L0 c& p9 o
- );progn then; I |" C$ A6 r8 I* R) b1 G
- );if 0 {! c9 k" X" H H
- (if (and flag
0 g2 {: @, n$ w2 _# f+ b/ u! [ - (= 1 (logand 1 eflag))
. X7 o0 N7 _! {+ q3 }7 S - (not (or (distof (get_tile "poly_elev"))9 s/ ]1 l; ?' N! |5 V/ T+ e
- (= "" (get_tile "poly_elev"))
) k3 D* q# f+ C8 S - );or' h; }, I; E) k$ }( {
- );not& a" Y% ^( W4 Z# `2 T
- );and
. Q. z4 m8 S+ ^0 i- y# p7 U - (progn- J) M/ V. f5 P4 y% T- ]8 F
- (set_tile "error" "Invalid elevation.")
Q- x. Y/ E1 k! z( G; ^; S& f - (mode_tile "poly_elev" 2)
1 o; A5 M; Y$ @2 }- K - (setq flag nil)
: _4 M+ o9 r6 v/ ]1 h/ { - );progn then
- s5 X: c6 X; y* I - );if @7 O1 u, K, u' ]0 ?' m' n
- (if flag
# k0 x; Q$ N6 w - (done_dialog 1), m4 m# X( s% d7 \( s
- );if: Y f3 V) B, G2 v. w/ W
- );defun test-main-ok+ h! u9 e( `0 w2 \4 i
e4 Z: P5 ~( }4 l- j2 E- ;;% P8 J" ~; U5 ]7 F" c7 Q; s+ r
- ;; A color function used by getlayer./ O% D K/ ` O% i; U; k: n
- ;;
0 e) I3 q+ x5 E& E+ ] - (defun colorname (colnum)! O3 O) c" e; C8 l# @0 Q: \
- (setq cn (abs colnum))
- ?3 y: O+ P; a, \7 c6 K - (cond ((= cn 1) "red")
: o- X! S4 d2 A4 H1 Y - ((= cn 2) "yellow")
" u/ Y4 ?/ N X% @* U+ I& ?/ D# a: g - ((= cn 3) "green")" T: l: Y; `, e6 E- S1 q# D+ K
- ((= cn 4) "cyan")
& B$ Y" S- c0 Y& f- E: E - ((= cn 5) "blue")
' X |' _5 [* M5 t9 g' Z3 n7 ~ - ((= cn 6) "magenta")6 Z8 Z' A) n/ ?- _1 Z R1 q3 u5 A
- ((= cn 7) "white")8 W& b+ ]8 A) M w! ~3 \( j
- (T (itoa cn))( [: _& ^! b7 U% o7 o
- )
% w J1 N @; ^5 P4 E! h - );defun
7 ^- p' B8 v% Q, v - : _" A' Z. J1 P7 d$ B
- ;;; Construct layer and ltype lists and initialize all+ e, u5 E$ T$ c
- ;;; program variables:
R2 p) O( `0 \" D
7 ]: q5 a2 |) H* i: ~4 s t- ; (makelaylists) ; layer list - laynmlst) W5 V+ ^+ V9 V3 N0 d
- 2 D( G# R/ g: O% U* {
# m2 e5 X/ X% Q- n! R) ~- (makeltlists) ; linetype lists - ltnmlst, mdashlist5 `7 v9 w8 ?. m. q) b, m
* x8 b1 N2 d5 W! @ {8 q+ M: ?- ;; Find the property values of the selection set.: e" z d: S. O' ~$ _6 h
- ;; (getprops ss) returns a list of properties from
/ L" ^3 O7 E- w - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH)." b7 ^1 T) t" j1 x# z0 a: N3 C
- * @% F% ~- g* g- s3 a
- (setq proplist (getprops ss));@rk interesting things happen here
* j( C7 F$ K1 E9 h0 o& i5 M. Y - $ M$ l0 I, n' O) o/ S- H: k
- (setq3 E2 I, F1 z& m+ Z) `7 I/ K% n& b6 Z0 b
- ecolor (car proplist)
6 z, b9 a5 ` F& J - eltype (nth 1 proplist)
3 f) w- C" g2 C' Z2 K - elayer (nth 2 proplist)
4 L2 Q3 m5 Q# M - ethickness (nth 3 proplist). d" H4 ?5 v0 d3 k
- eltscale (nth 4 proplist)( ?) z, |0 J8 q& F
- ewidth (nth 5 proplist)
4 G+ q; B, q, ^+ a }, h l) X# V2 l - eelevation (nth 6 proplist)
- S! c; B+ {5 Q, M# }: Y2 J - eheight (nth 7 proplist)
$ K3 `( a5 l& s- _ - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.0 Z# \/ U6 {3 p; D) f" t
- eflag (nth 8 proplist)
/ |8 `0 z1 T5 I: C: ?: u - estyle (nth 9 proplist)- B) ^/ r: O$ j8 t r; P0 ?: |
- poly_ss (nth 10 proplist)
* [4 e5 A$ }5 j; i4 O3 o6 w - txt_ss (nth 11 proplist)6 F; i) H5 Q3 s7 \" w3 q
- );setq
! m) F% v$ G# r2 z S2 J - . v& s" L( P e
- ;; Find index of linetype, and layer lists/ s% U' }" t# r. V: j. K
- (cond
* |$ A" ?( ^7 t2 ~+ l: q0 T2 R! l - ((= eltype "Varies") (setq lt-idx nil))
) o8 }: W) l& a - ((= eltype "BYLAYER")
8 ]/ s, t8 g- n- Q - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
( o7 D+ T$ b) B4 T - ((= eltype "BYBLOCK")3 s1 l* y1 u% j5 @1 H6 f! G
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
$ C/ f% ]! E6 s2 a X; S6 i - (T (setq lt-idx (getindex eltype ltnmlst)))
, d$ D5 `- Y, I5 Y - )6 c& n; n6 ^! y) R6 O. N
- (if (= elayer "Varies")
, J5 i& `$ j4 H$ k - (setq lay-idx nil)
9 `' r: W7 M9 A$ ~ - (setq lay-idx (getindex elayer laynmlst))
: g3 P1 m6 |9 s' O% e$ h - );if P' u& w+ l9 ]0 M. K6 Q$ M
- (if (= ethickness "")' \7 U8 h' q2 ]# O) L9 ~9 s
- (setq ethickness nil)
8 h5 I! u9 ^$ T }+ c3 T$ l - );if& y9 f P Y& c7 b6 y
- (if (= eltscale "")7 C$ s: }; K1 Q
- (setq eltscale nil)% Z1 m9 \. D6 O! T
- );if
, |- I( P4 l: s6 t& ]5 l# G: N
% {0 s1 }4 g. n4 q% B- );defun ddchprop2_init ; end (ddchprop2_init)
) J, r$ {4 T4 R- [2 h: r
' @6 C0 J- K% D4 V! D- ;;; (ddchprop2_select)9 f5 }* z1 Q3 o9 {
- ;;;; Q: K& S) Q$ S& |6 W6 s
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:1 J. ?! e! Q; n7 s+ c! _! {; Q
- ;;;
/ k) E7 _( K' e( M- ?2 L - ;;; 1 - Autoselected.- p$ ?3 R v3 |+ k( @1 S7 J
- ;;; 2 - Prompted for.
$ y! u& E. e+ l) r9 N - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
5 d# y" T+ y0 n- R H- ?! o - ;;;
' B. x5 b7 l. _" A7 N S - ;;; The (ddchprop2_select) function also sets the value of the& @: T- B1 H ]- t1 i3 I8 B1 @# y
- ;;; global symbol AI_SELTYPE to one of the above three values to/ R' t. U* ~0 ^2 ]3 A
- ;;; indicate the method thru which the entity was aquired.; t; N8 }% h$ L# w
- ! h4 P& r2 {$ x3 I
- # W! G. O$ T, c) v3 U5 J
- (defun ddchprop2_select ( / )
7 s; H4 w9 N n# V
1 z! \$ S- t, j- $ o6 D H1 {0 m8 A1 t! W2 K
- ;returns only entities in ss that are in the current space. ) _9 B& ~3 ]2 o% H
- (defun ss_in_current_space ( ss / a cur_space ss2)
C' E4 a( c7 s8 w - / Z2 Z5 j9 {% z/ V* U) W
- (if ss
, n/ s, @2 W% |3 h7 |% D - (progn
! I* z5 x. u( H, P( N: j - (if (and (equal (getvar "tilemode") 0)4 E/ v( X' k8 T) e1 {
- (equal (getvar "cvport") 1)
7 g9 c. b2 g/ U1 Z - );and 1 c: }4 I* c4 f; T9 |: ~2 X! r
- (setq cur_space 1);then paper space is where we are.
; M7 r) _, |; Q5 o1 {( W) r2 }$ k - (setq cur_space 0);else model space.
* A' L( E' I! e# H/ I: ~ C - );if) \. j" C( |4 K" [; E
- (command "_.select" ss "")
# A. ~7 z) C; P+ L7 G& z - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq0 @5 U! c% j& d* u4 l9 _! o
- (cond ;;;;;tell the user what's going on.
% g c2 g0 l; D, s2 p - ((not ss2) (princ "\nNo objects found in current space."))% b1 Q7 y, P, o& c
- ((not (equal (sslength ss) (sslength ss2)))
/ h2 K! y0 Z1 f, |8 \* B0 r% q - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
! B, G+ ~4 `* o; V5 J9 q& S; c& h - " object(s) were not in current space."6 ^2 Z4 D7 q% B4 a- I0 k6 U0 F) s
- )# s6 s% k+ p6 o7 k6 g
- )# s/ ]2 K [4 k% u
- ) - ~. y& d. u% M% j$ }6 [
- );cond 8 w9 s+ G# [8 U* t5 ~0 |
- );progn then C0 q {7 p7 ?% s1 ~
- );if 0 q; o8 c- r, }
- ss2
# `/ [8 F) r/ D3 A. N - );defun ss_in_current_space4 m( `, \% R# M/ o$ K+ f
- % `: Z/ j# d) z2 ]/ y! J
- ( N/ w' ^, D7 A y, N
- ;;;begin the work of ddchprop2_select
& k& D6 @1 ` M. h8 { - 0 b. S0 f3 B- g3 e# u4 u" M# E
- ;; temporarily restore original highlight setting.
2 E' S0 U# Y6 m" m - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
1 _; K6 y) t, z3 q1 i0 j3 d - (cond
: h( T6 g7 @* r4 I2 A - ((and ss 5 @+ n, q0 w/ @5 k" t% j
- (eq (type ss) 'pickset)9 s @/ Z* I* T$ y
- ) ; selection set passed to
' C& g- v" q9 U$ x4 q - (cond ; (ddchprop2) as argument1 g; h+ I4 p3 }, _9 P0 a
- ((not (zerop (sslength ss))) ; If not empty, then3 c- q; t3 i9 ~; F$ O9 K5 u: ^: D& e
- (setq ai_seltype 3) ; then return pickset.0 l% a4 h1 `+ S( c3 \% Q; E* P
- (ai_return ss)
* r3 _/ _# p( G9 F" h0 T& B; @ - )
7 B T' }% ?; K+ ~3 w' o) L - );cond close! D$ p/ b$ V" d5 ?/ ^: S
- );cond #1
& s0 U' P1 |: H$ n, r. e0 t( M - ((setq ss (ai_aselect))) ; Use current selection8 E1 J L& I! ]0 ^! ^
- ; set or prompt for objects0 F1 \2 E. ]0 B0 n, y
- (T (princ "\nNothing selected.")
& {- \2 q& T8 ~ ?8 r - (ai_return nil)* b# U( S0 s# F
- )
, I9 |! n5 e0 f - );cond close
! v, {* S8 ?" C. h1 H; ^% K - (b_restore_sysvars)1 n/ I9 e, ^3 y% M5 o$ Y1 l( W
; U; o* @7 q: P/ _3 N- ;(if ss( \; l% n9 r& a. C
- ; (setq ss (ss_remove_locked ss)) . I5 |- M# I' g' m
- ;);if7 Q W; _+ Q8 s9 x5 u
- (if ss4 B% h7 k3 ]. j
- (setq ss (ss_in_current_space ss))
/ D) C$ ~% q' W3 S' p0 n - );if
$ R D; [3 b1 H - 8 S* ?0 S! H2 r$ g7 |+ p
- ss
2 Y: z) t! H# Y: u4 H/ S, Y - );defun ddchprop2_select
$ P( u8 z+ ~( p# |8 k2 E - 8 F/ X$ f3 N) P+ c) H! r% u' ~& J
# \6 Y3 z$ H% V- ;;; Define command function.+ ]- l& m( f" ]7 r
- (defun C:CCH ()
, U/ y+ c1 s: }+ B - (ddchprop2 nil)
) V$ [- C# u: t1 }. e - (princ)0 t; f8 Z; Y ^" b1 C
- );defun
3 x. E" k5 ]5 _
$ g: f! q; V) g( b- 8 _* |- @9 J$ v$ C. d+ M: U
- ;;; Main program function - callable as a subroutine.
( o* t; w( K' M - ;;;
: D1 T/ T7 J- w. n4 P - ;;; (ddchprop2 <pickset> )! X, k$ P8 {9 r* v% A
- ;;;
5 K! o6 m* W( q3 ^2 p4 e - ;;; <pickset> is the selection set of objects to be changed.) P" j, B$ N: P0 s5 [
- ;;;
" E- w7 u# l0 n. j" c - ;;; If <pickset> is nil, then the current selection set is
" I- B" H! N; k$ A0 s! p, l - ;;; aquired, if one exists. Otherwise, the user is prompted
7 A5 n! a: a1 | - ;;; to select the objects to be changed.
2 b! ?0 X+ J6 c - ;;;8 Y' _% H- Y, w9 M
- ;;; Before (ddchprop2) can be called as a subroutine, it must5 k, d& H d, z$ C& q2 U
- ;;; be loaded first. It is up to the calling application to
# Z! L4 a- A# J' b! X2 ? - ;;; first determine this, and load it if necessary.
7 B' F6 k% _, ]( m# ^
! x7 ^# F1 k3 V% X0 D" ~% j# C- (defun ddchprop2 (ss /
9 M! d! h# Z$ U }; V
% N5 B: M% M+ \- a: P: U$ x+ V1 [* H. h
- add-mdash: f, E' p" C4 {
- assoclist% i+ S7 Q& J3 r0 {
- bit-703 a) ?% n' R0 B4 M( S5 b2 D
- boxlength4 }0 X3 @0 n! C! D$ [2 ?9 y
- bylayer-lt
4 j" w( d# |& y: W! C" Z0 z - bylayer_col; ?2 n( H' ?2 O. \
- bylayer_lt
1 I6 H2 t) {6 x- g1 f - call_chp2
+ t- f' }" ]- m. g" M0 [ - chk-col
1 J% r% D5 Y. e# b: d - ;chk-etype ;var removed by rk
7 V8 b$ P5 _& o4 H) r; ? - chk-lay 7 [# g0 y# g% x' `4 z2 I
- chk-lt
% I$ p6 S) \" ?8 H2 R. X3 @9 } - chk-lts ;var added by rk : i" r( b1 Q( e- K! t9 B% O' a5 s
- chk-th
5 w* m A1 c* d# E0 B8 c - cmd( c8 n) f! F* Z) v) ?8 \: `
- cmdecho
2 P9 _4 z: r) M+ A7 `5 \2 j+ E - cn
B# ]4 s1 D7 y" J1 r* s - cnum$ a& {- d9 \) t9 \ K, Z
- col-idx
[5 f7 _+ S' _2 U* Z c# i) j7 q - col_def/ w8 \2 r# t% }2 J0 i; B
- col_tile& i" [2 `! ?9 |# z% B/ K
- colname* O/ b+ T! ~: _; ^/ s# T
- colnum
4 k5 P; B4 a8 c6 F+ G - color* E& P2 q4 w. c$ @- A- p3 b9 N
- colorname
, m+ E& L/ N& o - cvpname6 S) h0 c X. m+ t) Y6 T
- dash
8 x( t7 Z( t+ r3 [3 I - dashdata( k$ y' I% Q1 ?
- dashlist
! H5 U {5 C: `* d9 b - dashsize
8 M6 D; Q5 r5 n! R$ N% | - dcl_id/ m [, R/ i" }4 Q+ ~
- ddchprop-err
/ r) {/ c' }0 J - drawpattern
* e/ S" }3 b, ?8 _" S4 f - ecolor- w% \" V* E& [5 ~5 t. z. V
- eelevation
! R+ B6 W. H! |$ V5 n' [ - eflag1 O3 q, \ n$ S' p! U
- eheight* [% \# n. r% c- q
- elayer3 y. d3 h a" s1 `7 T( L* Z' D& B0 Z
- elevation; d% j4 N# i) m, N; \
- elist
0 U" m7 B% f. M, \ - eltscale
) B. S e$ g0 T - eltype; I5 [3 f$ ^! K1 U- l
- en) @2 S! Q) F$ G. M+ @
- ename7 ]4 D4 @! P/ h
- ESTYLE ;var added by rk8 {* ~* O8 a7 u) [3 F$ o
- ethickness
; {# L" w2 W& ^6 C, } - ;etype ;var removed by rk& u1 B$ {. @- L Q* v" f! t
- ewidth4 q. R) @: a% D$ C- m
- fchk* u, s8 t# Z% w' U" P
- frozth9 S/ M% c: f+ ~5 d; P: N
- fx3 [; a- g1 b8 g/ A
- getcolor4 y, Y& C- p) a- Y( @
- GETELEVATION ;function added by rk
+ e: h/ T; Q# P( i% }' L, J - GETHEIGHT ;function added by rk
! d4 E, m+ k: x1 \0 u4 @: m- D - getindex
+ U' C3 y/ e! t( l+ d1 C - getlayer
6 z8 J5 b3 \' \; A2 }# T - ;get_locked_layers ;function added and then removed by rk
4 O( _- s( Z' d' |% E1 M0 I- n - getltype$ R: r: p2 V; G5 q. n
- getprops
3 K. y3 x8 k5 C4 F. ?* a - getscale ;function added by rk
/ H( o. F1 o7 i: s. v) u - GETSTYLE ;function added by rk
/ }) G9 X4 S( @9 z. m9 Z& J$ N - getthickness2 J# V: x( ?( r- B3 X
- GETWIDTH ;function added by rk* d# E' k. D$ }; @1 G' w! s* K
- globals
( w; T1 N, I7 l2 |- \! D - HAIR_STYLE_LIST ;var added by rk4 S3 {0 f4 j) @
- height+ F* l- f, N4 X( a! p' ]/ _5 {; A
- index
$ I2 Y& E; ~3 m4 `; \ - item
6 {, Q1 y% j! U4 @3 R9 M - item1
' U, T* f5 R: D2 N5 P \ - item2
" n, q9 p1 q5 e8 P% r# Q - itemlist8 a1 J% l) w. `: i" `
- lay-idx
6 j! e! c3 w6 Y, v2 Q - layedit_act
( y7 e# | c# s; ~( w( o - layer/ K; j* h0 L5 G; Q
- layinfo
7 [9 j. J6 ~ y3 _4 a - laylist
* ^& l$ z; P1 B - laylist_act
4 h7 V0 C% I2 \% t! c% ~0 R0 p - layname
9 T w- [ d& G# \' U1 J: I - laynmlst* M3 q7 B( G0 Z8 `
- layvalue
. c% Q' p' d) l0 Q/ J O - linetype
( B G! \8 {# H" b: y5 C& }' Y - list1; V; I+ E# Y: L9 O6 m9 I
- longlist
o7 }7 L" i+ P - lt-idx
9 z* {$ }/ z3 p6 U- _ - ltabstr9 b. l4 B X1 j% s& a5 ?
- ltedit_act
) F! {; c5 u) b0 H7 q - ltidx
. u9 T- {; A, p# o* J9 o2 ` - ltlist
8 ~$ d+ ?+ {- [) s$ ~6 b - ltlist1) D/ ~0 d% M. X) H# x/ `8 |% D) Q
- ltlist_act
) o9 f: e4 B6 U) A7 \ - ltname
$ ], j& _* c( j8 D - ltnmlst8 s5 ~4 V+ y* l% x9 d9 x6 K) \2 S
- ltvalue3 F* y, Z9 ]2 Q7 o/ B( C- |% x
- ltype
" B8 C8 D! n! B0 J/ ~5 o H* H - m1 T+ S8 h& I8 k# t, {6 B+ }
- makelaylists
6 C# w5 l: Z/ ^3 b# ]. Y1 B) H - makeltlists
7 F- {. J% u9 o# W! _9 K: ?/ H - match-col
+ M4 F9 N& H+ w: G& c - ;match-etype ;function removed by rk/ F( u, q: Z+ E2 m! w" C4 ^
- match-in
% A2 {) T5 S. T8 B$ z - match-lay8 n5 D) r$ R: ~: t! t5 Z% l" {+ m+ {
- match-lt& ]# d5 c2 o$ S2 L5 F
- match-lts# d6 Y% X6 j+ W* x
- match-th# e8 j, v+ t/ f
- match_col: x- C; ^/ N4 P7 n
- mdashlist
" B9 P3 w& P% G* o3 m - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
T' c$ j- K$ F' b, f: c& Q1 f } - n' Y$ n0 ?) x- r
- name: X! Q5 P; O9 N
- ncolor
: m# X5 s% F5 ]! g5 u$ h1 r' I8 ` - nlayer
2 T# b( `: ]' Z4 {" } b - nltype+ I+ V, d& F& E9 D2 z( n) L
- nthickness
8 `1 E% \. v( @8 h" N6 [! ` - off
* x' w8 [+ j* W! g0 I5 E: ~; H - old-idx
: n2 |/ S$ y- r, P( a/ _$ [ - olderr
" [' G9 z$ Z3 O7 r. I - on6 p" ^7 D( ?" v# l( z
- onoff
0 y' `2 C% q" x. p" \% z' h o4 H - patlist! g0 ?" [! O% ~* C4 l I
- pattern
( I1 f- k* q5 `: f - PL_WIDTH_GETTER ;function added by rk0 `( L) l3 F2 y3 @2 j1 ~9 N7 L
- POLY_SS ;var added by rk
. P8 @- W2 o; A3 h0 u5 }6 k" m - ;POSITION ;function added by rk and then moved to ac_bonus.lsp
" T1 r8 T. w% |. Z: ~ - proplist
2 G$ Y. U* i$ l1 g - reset-lay$ {7 R2 A o9 Y6 h$ B" w: n
- reset-lt) k( E& f' w$ m, _$ y) ^( n
- s# h0 @2 N. y* Y; j' R
- selset" O- G7 ?& G; ?
- set_col_tile, X% H3 ?. |7 J$ `9 ?5 N
- sortlist) v: P0 Z8 z' I5 A
- ss
0 ^. s$ Y3 v z8 `. e& B& m; w/ }+ Q - ss_in_current_space ;function add by rk.
& u" {( E5 u+ l8 |" G - ss-index
6 ?1 P; H4 O% s7 d; m7 E - ss-length
8 H' T- \% G: q3 H3 P: y! w - ;ss_remove_locked ;function added and then removed by rk.
) m& o8 o! o4 b: H( N' i) L: ~. o - sslen/ _% C$ {8 [+ F9 ]
- temp_color8 w- C* p% Z/ f# C+ i2 i* N7 r
- templist( b E+ R) l1 t( H
- test-main-ok
" r4 i: ] P7 n5 h' B( }, z - test-ok
) ?: A j7 y5 i9 ^6 T v& c5 u - testidx
9 J' e; l7 A4 `( O. U9 u - testlay7 j# @5 ~8 u1 e4 Z4 u/ o
- th-value
6 |9 j, ?: `0 J, }+ y4 v4 j1 r - thickness
. V. }) m/ X4 I" ]( h% X- s; I$ c - tile; N8 a* A+ L V/ a) ~
- tile_rect8 M$ X8 {. Y. i, F0 i' S8 c
- tilemode8 w% u0 g- ]7 c6 \ H/ C
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
& F5 J* X/ N+ a) u - TXT_SS ;var added by rk1 G9 r3 ~1 p1 t8 q* O
- ;undo_init ;removed by rk.
" W; @3 m( r$ v H# A - vi# q$ ?/ Q4 `. b: d2 s
- vpf3 e9 Z' X1 C" V/ r; r- E3 s$ m
- vpldata! k9 a6 j. {" h1 I/ R8 e8 D3 N
- vpn$ C7 M9 W' `( q- }3 ]6 D5 l
- which_tiles
( z6 H; }. o# i+ d8 n2 ~4 L - width
% g9 W; c* o4 |0 R/ P5 }& s7 h - x
; m4 {$ M3 V9 _3 S$ b+ e4 ~) g) O, H - x1, n& ]% ]) i- V) [
- x2
& ^ }/ q7 m2 T( n5 V. N% c - xdlist0 @6 F+ d# }5 ?
- y
7 U7 I) k; b6 Z# v4 ` - y1& S- _( g+ e. c# W+ \8 e( r; X
- y2. e0 H: ]6 Z( Y/ w U5 c
- )' A- S+ Q r; ]% |9 ^# b
/ G4 M/ A" F7 `/ Y( r- (if (and (not init_bonus_error) 3 j/ J. j+ n! A: p( u+ J
- (equal -1 (load "ac_bonus.lsp" -1)) 3 C5 k" u' D' ^2 r. L0 L4 d) s8 O
- );and
; q/ Q6 ~: {, Z8 J/ \, R% ?; r - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))! S* p Y: z# R; d* \6 L" C
- );if
9 u. I9 I8 e R& C$ J; @ - (init_bonus_error (list9 n" D! f- [- D+ C- n8 d# h
- (list "cmdecho" 0
3 c+ v8 o% @ ` - "highlight" 0
; _2 ]- { R* r" Y) ] - "regenmode" 1# x" Z% |2 o% i$ y" x2 v
- "ucsicon" 0
" {/ P1 u+ F$ P' o; P1 a; r7 i/ } - ) 8 ?# x: Q3 o8 \. J. t. q2 n
- T ;flag. True means use undo for error clean up. 4 M/ g$ y) R: a! p
- );list 1 W4 c+ x }# e- n' Q: F3 E
- );init_bonus_error
% y' K5 v+ b( t$ m G - 2 y% Q$ t& L2 g0 r
- (cond
! d$ ^ x' l ?3 i - ( (not (ai_notrans))) ; Not transparent?& [; }* h7 C( \
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
) K# i, c( h# ] - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
1 }/ w. H$ L: t8 M- A4 w% V& ? - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
- F: v7 l9 k" C; K6 T3 [' `% a - (t D* c7 Y, j0 c% c8 Z) N2 V# j
- ;(ai_undo_push)
* H: _$ w D+ u% {( ] - (ddchprop2_init) ; Everything's cool,/ {9 C4 F4 Z# b( [, D# t- O
- (call_chp2) ; so proceed!- Y# v2 r; ?6 X4 ?
- ;(ai_undo_pop)1 d& u6 \" I, P$ R% a1 \
- )+ W6 c' {) M2 h( D6 I) Y0 W& ~! e! l$ d' e
- );cond close
5 z- h' f% g; [( C - 6 @' t0 O4 g0 [+ o3 ? h, C
- (restore_old_error) Z) D# K* k2 U6 U* N8 P+ a) w
7 s% V" O+ l! P- (princ)# F9 }( b1 l. C, ]" i! H
- );defun ddchprop2
. v* m: [5 c* C6 q7 g - + W* r# c2 r- U P
- ;;;----------------------------------------------------------------------------
4 E& O/ `( x. ~
+ j- T* R# }( I# V+ Z9 n- (princ " EXCHPROP loaded.")
* L% U7 u: {4 F8 B+ O2 f, \/ p - (princ)5 @# S2 g- Z$ Z
- . C) j5 H2 Q4 J* p; U4 r0 f& c! H
- ;;;----------------------------------------------------------------------------3 v" w' u! u2 k. k8 f: `
- ;;;---------------------------------DDCOLOR_LSP--------------------------------
) U$ e8 G3 }, W: C; h1 i j - ;;;----------------------------------------------------------------------------
! S: F9 P9 @$ O: V6 x! L
% P4 Y5 q8 u; Q; D- ; Next available MSG number is 24 # s7 A# _# q5 y; n% Z$ {* H* I
- ; MODULE_ID DDCOLOR_LSP_
! Y# d. S8 L" F - ;;;+ r, t: r* ?% W; X n
- ;;; ddcolor.lsp
' I( Q9 ?. k1 X% m. W0 H- n: c - ;;;
6 f5 |: A, @9 H+ b - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.1 e5 f: o, m0 [' r, b+ `7 e, E4 O2 e
- ;;;
1 E, A) s( \' n6 r4 D - ;;; Permission to use, copy, modify, and distribute this software
) N ^' O# G7 I& [7 W - ;;; for any purpose and without fee is hereby granted, provided5 Z1 B5 T( S" H; r: K$ @6 q
- ;;; that the above copyright notice appears in all copies and
5 c" u- t; F% S/ z6 _9 b0 T - ;;; that both that copyright notice and the limited warranty and+ q3 E. R# E. T% b, l& p
- ;;; restricted rights notice below appear in all supporting" I. j Z4 }: Q3 }$ B4 K6 a r
- ;;; documentation.' ~( R! K! Z8 ^0 p6 p4 R
- ;;;6 Q6 v3 W4 S2 B% e6 r4 c% o
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.% N/ f3 L( ]0 W/ a
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
7 s$ y, M. F6 \; W - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
3 E( |9 u( x# K - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE; p0 k! N9 h7 }! A' S9 _8 a# u
- ;;; UNINTERRUPTED OR ERROR FREE.
2 W( K$ o0 u2 Q/ r9 A* |6 y - ;;;2 y0 v& {- X7 u( `; n7 n8 b
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
% ?4 r1 ?9 h* g6 a0 d# r# \ - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
; @7 }% W. }7 ]5 n3 w% h- E% Y - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
1 @* _$ X1 x+ ]+ s) F4 m2 W. n9 |* ] - ;;; (Rights in Technical Data and Computer Software), as applicable.
% w3 @2 ?* X4 a( I5 U' U& J - ;;;% y; Y' c9 {4 v
- ;;;.
0 N6 a7 K8 _3 s) p& c - ;;;- Z+ Q; u6 l! i) B1 h1 s
- ;;;----------------------------------------------------------------------------
7 s0 {0 ~8 y) a& }" p. H6 N+ H( F - ;;; DESCRIPTION0 S. S) S1 N* x- b" K3 x( d* i# S
- ;;;
" N2 L- ]5 A( s+ @ - ;;; Chromatic Pallete style color selection dialog.
: B: m; a! y9 k( ]% a3 K - ;;; 6 \2 G1 P! a N, b8 S8 Q$ m9 w2 p
- ;;; Globals:9 q' _! r/ \0 m2 {4 j/ N1 d
- ;;; ( g$ T4 j* S1 y# D
- ;;; chroma_color - Integer color index. The last value selected2 U% z" G1 S0 C" t- @
- ;;; by the user in chroma dialog. It is not cleared or reset
6 P- [6 K4 D+ V - ;;; by a cancel. Only used for communication between callback
?3 g5 U- Y# {$ ~! ~ - ;;; functions and the (chroma) funciton.1 X0 ?' i% [4 R/ l2 p
- ;;;
* Q4 B( p* q/ O" o4 S; d - ;;; Depends on the definitions for the dialog provided in chroma.dcl.
& w( N" r, `1 m( C4 Z6 v - ;;; ! ?# K4 }3 U( u
- ;;;% L0 e' f; c4 i& p. p/ L
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma 8 _# z+ o; ]2 J0 I
- ;;; pallete style color selector.
3 J6 r a: A9 V6 J - ;;;
* f* q; C# ` U5 _ - ;;; ===========================================================================4 e, e# `, m9 H& V
- ;;; ===================== load-time error checking ============================
% S0 W+ G0 s* h3 \- y* i - ;;;
0 m1 `# `5 m$ r - S& p1 l6 u8 t7 W/ Y
- (defun ai_abort (app msg): b6 M* w( ^& M5 X, ~) m4 `. S3 P
- (defun *error* (s) x" T9 I# d5 n4 a
- (if old_error (setq *error* old_error))- i% |: }) l) G2 b
- (princ)9 ?0 j0 N2 B, _! e( ?9 N
- )
3 k8 g) y) S' N5 R+ b0 L - (if msg
1 S+ ~1 ?; M$ ]& b - (alert (strcat " Application error: "7 M' ^% l! X0 e7 ^: S
- app
0 H7 k( m& ^ W3 @9 L9 b4 p - " \n\n "7 h8 o' J; m9 f5 K* H. ? O0 ?8 @0 W0 U
- msg
7 K& k; K. x& y3 i - " \n"
. \* ?3 E; ]6 h - )
C/ g6 D$ c( j/ |8 ^8 V: \% X Z - )1 m7 ~: z& E: B2 Q
- )' n. Z5 w- U. h5 B: ~
- (exit) b* U' U3 B& A& {
- )3 g/ d( v* l4 x% U; ]$ Y# Q( f
& h& i1 A0 v3 H- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,% b" p) }3 j0 F% o& m0 t. P4 _. d; h
- ;;; and then try to load it.1 i& R# j( A, o( U: Y# D, L
- ;;;) Y( ~( ?- _0 x, s
- ;;; If it can't be found or it can't be loaded, then abort the
2 J( q$ \* Q: ]5 _; m& W% s - ;;; loading of this file immediately, preserving the (autoload)4 {! r9 b4 y' q$ c: H/ _
- ;;; stub function.& y' F. n3 U% [, Q- X
- & ?2 e+ }( ~' J( }: P
- (cond
9 V$ _+ _: K! {$ z+ p+ z% v" O' @ - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
+ C; u0 n3 x, j7 c- I& h" a9 B j+ V! l
$ o8 R% }5 @6 O- ( (not (findfile "ai_utils.lsp")) ; find it8 N% [- X6 J N/ [4 S/ {! c2 V
- (ai_abort "DDCOLOR". l8 [& i" e, z, e: W- w
- (strcat "Can't locate file AI_UTILS.LSP."
7 D9 ?; H4 a2 x' p# n; e6 A( m - "\n Check support directory.")))
1 U6 i5 s) P( |$ Z0 e - , ~. @$ \: Z) n9 C! X& q3 G
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
4 f4 W5 P/ Q4 T1 F3 L2 ^1 Y - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))9 o, o8 H/ `$ a0 E- t: P, n
- )
T" S2 I1 u, s1 O
, e; t9 f, X6 M2 b2 x' F- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
# {4 b% S F+ j; L4 p5 c$ p: B - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses( r5 l1 g) x8 O' Y# V0 J, P
- ) ; ai_abort's alert box dialog.1 s, t& @$ |/ G% F' r
: ]5 ~6 ]" r) B& i- ;;; ==================== end load-time operations ===========================
2 O: I# r, K) n- Y) n; E - 1 Z: V+ _: z9 ~+ g
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)" H" A/ g: z7 e i1 Y( f3 I) f9 w
-
& `3 v$ T* ]- P7 R! C3 _& G! w - ;; Main Color function, called by setup code.
# P& }" Z! N& V+ X& z# o$ G - (defun ddcolor_main()
; A3 ^9 J" {, ]% o3 ]
4 r3 K/ R! d1 b+ c& K- (graphscr)
w" N3 M9 h4 @/ v4 Q+ o -
2 Y" U, u. r X; q( u5 X5 ~ - ;; Get the color of the current layer, for possible BYLAYER color swatch.- `* a/ r' e2 }+ D; D1 K2 y) j1 y
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
4 h% r& ~0 g1 q8 ^$ a: j* c7 ?$ v
5 n3 p$ t; S$ j- ;; Call the dialog here...8 {; L% T+ H: C" G% K% Z
- (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))( l! V! z& R% l6 A; p$ b; O1 s
- 6 R$ I6 g& P1 R0 S( m* z- d
- (if clr
, c0 U7 U3 Y3 I1 n1 s+ L - (setvar "CECOLOR" (citocs clr)))
4 z! F5 d9 c- h. k - )) s% }* W' U- ]' K @! K
1 X) ?/ q6 F. |7 W# D/ O. h- ;;;
' {$ x( o3 g- @: w; g* j - ;;; CSTOCI -- Color string to color index
1 P& ?! i7 B/ T - ;;; Convert an arbitrary case string into a color index.
9 u* H9 g- B! L- k$ z3 b" Y - ;;; Returns nil if string is not a valid color.3 z6 H1 ^# u. s( Q, \
- ;;;
: h7 u. d0 z F8 b4 Q& i - (defun cstoci (str)& v- k4 N' y- }1 ?6 y
- (setq str (strcase str))
8 S& B5 U" L, g+ c+ s3 G - (cond' n$ t4 A9 A1 M
- ((= str "RED") 1)
# g3 W! j8 V, r2 ]$ K. r0 A - ((= str "YELLOW") 2)$ Q" j- z4 h- H
- ((= str "GREEN") 3)' d& i- r7 s* H% _4 b0 s7 ~
- ((= str "CYAN") 4)
: Y( y. E% o- T- D7 l - ((= str "BLUE") 5)5 `2 {% f7 T2 q
- ((= str "MAGENTA") 6), H$ P' ^. Z$ e. p3 {
- ((= str "WHITE") 7)! p f" `* \- a/ E9 U9 F
- ((= str "BYLAYER") 256)
4 {& a `& `: Z" O5 D) r - ((= str "BYBLOCK") 0)
$ |. P) }& e4 j0 ?- m$ i- Z5 e& H - ((= str "BY LAYER") 256)
* a$ A# f! q- ~8 I2 l - ((= str "BY BLOCK") 0)
% S6 J8 C" H D, q8 D - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
5 W/ m4 S# s6 t+ `+ p# }+ ?, d1 M% d - (nil))
\. V' M8 j) h+ U* Z - )
/ R) {* h! j3 m1 y a( b - 5 Y1 J& }1 E2 m: h& e( E7 Q9 l
- ( i1 M t! G" Q2 z
- ;;;6 \9 K; S' O2 ^: T
- ;;; CITOCS -- Convert color index into standard color name.9 {! g# N8 p; C. j6 e
- ;;; Will return the standard and logical color names as text# ~9 R4 E3 ]: T5 G
- ;;; strings. Returns nil for out-of-range color indicies.: ?- M2 r; x0 F& f, N2 y0 S
- ;;;
- a5 p& g4 E2 H2 n1 s& H k1 z - (defun citocs(i)" p/ _) a$ Q$ b1 C, A- W
- (cond
. P( ~7 h; t+ d' X6 ]: {+ j - ((= i 0) "BYBLOCK")
$ B1 s6 B) Q" @' I - ((= i 1) "red")
# D1 ^! g4 t' S: K. B" A0 @2 g* G - ((= i 2) "yellow")
% E6 Y& L- X+ r& R+ y$ o, K - ((= i 3) "green"), M7 d' O* q1 ]& p% c
- ((= i 4) "cyan")
/ w7 @, E3 K, {& Y$ U% ?& x6 ^1 l - ((= i 5) "blue")
3 R* \1 _; h8 q" \% b - ((= i 6) "magenta"): a/ O! @) M$ t4 g. D1 _
- ((= i 7) "white")0 T, ]* [% p. A$ S. j
- ((= i 256) "BYLAYER")
5 ?. h# Q6 U, w) y8 @ | - ((and (< 0 i) (> 256 i)) (itoa i))
1 o( Z: N% @% ]& N - (nil))
9 N6 J: M5 ]! ^ - )! z; o5 e- _( D8 f
% _2 m2 ~5 G3 ?6 Q3 y4 n) z- ;; Start of ddcolor7 c3 N$ ~6 L9 c- m# X6 A+ a: \0 |
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
+ p0 p9 n T# `) k - old_error *error* ; save current error function
+ \' l- Z! K' t& P) f3 Y, x7 ]+ X - *error* ai_error ; new error function9 C4 W5 g6 s7 H$ k& }8 i6 \1 j
- )
J2 m' z: D1 e - + M( @3 W1 z) h- l! M
- (setvar "cmdecho" 0)
) K2 h) M$ F2 x2 Y S
: ^ g' v/ F# H- D- (cond% Z* Z! v0 U! c) N6 E8 y! y
- ( (not (ai_trans))) ; transparent OK
% p4 g6 W, m8 Y - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?0 z# B/ m2 U# r8 Z; ]
* \2 M9 V D8 z/ V1 ]$ q$ k. o; c# S- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
. e- p T9 u" _0 k - (/= 8 (logand 8 (getvar "cmdactive"))): \# k) Q- J2 @5 e
- )
v E8 ]/ w* M* `" d - (ai_undo_push)$ }) i6 F; K- S S: t+ a/ M, k
- )
5 w% O) ?3 B) ~6 G* u
& Z( ], W( h8 j- (ddcolor_main) ; proceed!' I6 z W6 f" M- X
- * l+ l* N# ~. [. |+ j* u6 m
- (if (and (/= 1 (logand 1 (getvar "cmdactive")))
* n0 S7 r4 D' F0 d - (/= 8 (logand 8 (getvar "cmdactive")))! ^0 o s2 G/ c
- )5 r- S9 m; N' j/ Q! f' @( \$ K
- (ai_undo_pop)
; Q0 P9 ~ n* Z0 O - )
; B6 `0 X8 ^4 J1 W/ d1 ? - ) [/ D/ |% `- v) c6 |* S* ] u
- ). ]/ s" o, f6 g# Z6 u+ F
- 9 g# C, Y. |5 T8 p
- (setq *error* old_error) ( o# Q4 j) n9 Y* t; A
- (setvar "cmdecho" old_cmd)2 `# R# V: B* p0 v1 o O& l
- (princ). @# w* j6 N! \
- % i5 w& ~, Q$ U# @4 ]/ e
- )2 U+ O7 u& r% t% A/ b
- $ w% \$ V- `! Z3 U* h7 _
- ;;;----------------------------------------------------------------------------
/ W& @; l: N8 t! T# M5 k; x( Y - 9 \- a# [- G) l6 ]4 z
- (princ " DDCOLOR loaded. ")
/ U' Q- f9 t7 Z - (princ)
" Y3 a: o8 S. \- Q8 D; \
# C9 D6 [- W1 \* H2 B& `- ;;;--------------------------------------------------------------------------;& ?, `; M) O' [3 R T; _
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
! v5 i" E2 U4 Q2 P0 F; O' e - ;;;--------------------------------------------------------------------------;
6 S1 u4 ~7 g7 f$ g$ \; S' r, z& Z - ;;; ssx.lsp
6 v5 @% T( S2 v5 O3 j' \7 V2 ` - ;;; Copyright (C) 1990 by Autodesk, Inc.; q) Q4 i+ G/ x7 G* ~* ~8 w) d
- ;;; Copyright (C) 1991 by Control Systems, Inc.2 y9 O) B# k, M1 c; w4 N
- ;;;
6 G. u) f# K8 D - ;;; Permission to use, copy, modify, and distribute this software and its
5 Y; z1 Y9 z: W* I9 U/ ^* u% d2 l+ E# z - ;;; documentation for any purpose and without fee is hereby granted.
+ v( k# k- n9 J2 x- A, o - ;;;
. D1 v. u' i( v7 R( e* l3 m - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY., p$ C4 w5 B& g" D; {' Q" z
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF% c) A: T% I$ t9 q9 I! R* W9 g
- ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
2 x/ t* j+ |+ [ - ;;;& o N; I/ E1 {5 [: z% I# e
- ;;; Larry Knott Version 2.0 7/18/88
. |3 d: g4 A0 h: p - ;;; Carl Bethea & Jan S. Yoder Version 3.0" z8 I$ q. r8 o. m
- ;;; Enhancements to (ssx).
4 X! C7 m- w; h3 ]6 Y) b" u - ;;; 15 March 1990 4 T7 E# [; j* Y5 L) u6 B X
- ;;;
. `0 @1 m1 z* P! `# K( K4 g - ;;; ARTIST Software, Inc Version 4.0 December 1991
9 {- m1 }" c2 c2 U$ Y. T - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,2 k) p Z: |% T9 ~$ g6 ^
- ;;; use Flexicon menus
8 {* W3 t8 l: u3 m& ~ - ;;;3 r; M |" o5 C5 K
- ;;;--------------------------------------------------------------------------;
- M# P3 q8 r3 e N+ s8 J - ;;; DESCRIPTION
^/ [& C" q- H$ r4 N - ;;; SSX.LSP 4 }" s' K y# E- u! M
- ;;;
8 T, [, w( @. z$ D! B! | - ;;; "(SSX)" - Easy SSGET filter routine. , J0 O3 H J! m
- ;;; / y( Z7 }9 r/ n& `4 _0 @& y
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt : t5 T9 ]) y* \# x' e
- ;;; to create a "previous" selection set or type "(SSX)" in response to , S2 N( ~. P( |7 ~ I
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add
, X$ R+ ?4 S/ l9 ?5 S - ;;; entities and "(R)" to remove entities from a selection set during 4 f7 p/ C: K6 |& R: E: g
- ;;; object selection. More than one filter criteria can be used at a # t, ?. e' n7 l2 c& p
- ;;; time.
7 ?) L0 I2 H2 Z, U! B" L5 s; F - ;;;
. ]* F1 V0 h( r4 \, i - ;;; SSX returns a selection set either exactly like a selected
3 h4 K9 d. o9 I; y* P1 c5 c# E+ ] - ;;; entity or, by adjusting the filter list, similar to it./ L2 V; Q% q4 |6 j
- ;;;+ J) U5 ]' R; a" q& C
- ;;; The initial prompt is this:
r, n% [) \& l9 `1 E* | - ;;; ) ?* S5 y9 V5 _) D5 s4 Y
- ;;; Command: ssx
! ?0 _, t* f6 A% ^6 ^* b - ;;; Select object/<None>: (RETURN)/ {1 Q% ]3 \; Y6 K2 g V
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
# E5 ? K' y. Q% z - ;;; 3 ~ M/ N9 w% v9 C& F
- ;;; Pressing RETURN at the initial prompt gives you a null selection
- s" a L3 [# s. ~ - ;;; mechanism just as (ssx) did in Release 10, but you may select an
/ R7 H6 L1 a5 a8 A1 ~ - ;;; entity if you desire. If you do so, then the list of valid types }* Q' h0 Y9 R; p# ~% j0 Y
- ;;; allowed by (ssget "x") are presented on the command line.
5 k1 G9 j" B1 ^ v - ;;; $ F. A; q* s$ O
- ;;; Select object/<None>: (a LINE selected)
& }; G5 V8 j2 s- y7 a - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
& ]* R' n4 ]7 b. @/ ?+ c" X - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
7 |$ R: i! ^8 }) f' u0 U+ m" M0 \8 e - ;;;
( T5 d* v3 d( t. G: y. J% H - ;;; At this point any of these filters may be removed by selecting the
5 E) @, p. q5 |9 ]: | - ;;; option keyword, then pressing RETURN.
1 J1 e+ g/ J+ u( g - ;;; # F" I3 Z# n6 S0 H! R( O# ~
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)/ I/ C5 `7 p( ]& G
- ;;; 2 I0 V( o |( A
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))& @: r& v, p, T! ~& `9 h
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 5 I! `: M- Y- A( W4 x
- ;;;
P# N2 Q9 L" R* e3 d. A - ;;; If an item exists in the filter list and you elect to add a new item, $ \# s! s) q3 D4 K% ?& m+ u8 a/ I6 q
- ;;; the old value is overwritten by the new value, as you can have only
5 Z: I( [) f( _. Q( h2 n$ |7 I4 x - ;;; one of each type in a single (ssget "x") call.
6 Y4 l% b" \3 L4 f% P - ;;;
* `" J; X0 H) a& i. n$ j - ;;;--------------------------------------------------------------------------;" H: k. j7 I7 s0 Z# ]/ J" F
- ;;;
2 e- G8 ` |) c+ n - ;;; Find the dotted pairs that are valid filters for ssget
" a" }6 E% {/ j) m$ r, | p - ;;; in entity named "ent".
- O- v; i; U# g" o% \5 i7 T - ;;;
* n* v3 T! C5 _7 k- I) O2 _3 | - ;;; ssx_fe == SSX_Find_Entity
( m: P1 G5 d' J - ;;;$ n! R' O. A% W) \
- (defun ssx_fe (/ x data fltr ent)1 J! q* _/ J! M$ u! X# s
- (if (and (= flexvar 1)(/= t2 "Pick"))
; O7 g: ^- u! r) ] - (setq ent nil)* v% X* E' m( B' c `
- (setq ent (car (entsel "\nSelect object/<None>: ")))' Z, K1 F# d0 ~: d, b! I+ m
- )0 W; J3 J! Y: k
- (if ent# X$ o, ?; k, [* ]! K& s, c
- (progn* I9 q4 V; d: Q
- (setq data (entget ent))0 F' {! X6 V' {8 y: s
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38& W A/ m9 a, h% D; Z
- (if (assoc x data)
/ w, Z: Q+ J7 f1 _+ W - (setq fltr
1 s! I5 a Q/ a1 @$ E - (cons (assoc x data) fltr)
. q7 P: ?9 J. b2 m! |( P2 t - ). v: o6 X0 X4 M$ r( _6 Z; w
- )
* l% d: ^5 B# @9 U! R& P6 A$ I* P - ) ' r8 L+ Y; z6 @' i9 C3 M/ T+ ]
- (reverse fltr)2 w0 G# n4 T9 A/ |
- ) @1 u) U/ C0 _& r3 M
- )
7 a" a! k0 k# e$ p) z3 f1 W W - )) a, U! W: e; Z
- ;;;; M5 D; Z! A. R
- ;;; Remove "element" from "alist".# w ]3 p4 E1 t, d* W
- ;;;: a; y; ^( d4 s+ ]# l! E% h
- ;;; ssx_re == SSX_Remove_Element. g+ x! \3 u! s& F. x
- ;;;: _5 B w! n7 v: c0 ~6 e& n$ z! E8 D
- (defun ssx_re (element alist) Z+ r0 u7 n& v
- (append6 M" L8 |; d: U* O1 l/ F
- (reverse (cdr (member element (reverse alist))))7 T* S, y D4 B9 h) ^
- (cdr (member element alist)) / }$ x# O3 x0 v7 t1 `
- )8 _- X8 U9 i, z9 W2 G) }% k# q
- )
3 Z0 O/ u4 `3 I8 |$ k - ;;;
6 e& `1 O# M. M( ^. T - ;;; INTERNAL ERROR HANDLER ' t9 |: p' p7 L v" p- a
- ;;;
; J5 R+ [1 l% s, q4 b8 x8 C1 }$ u - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs+ \( e# ^- C$ f( l2 N" Z2 i
- ; while this command is active...
$ q5 T8 g2 c6 j9 e - (if (/= s "Function cancelled")7 e* M( O& b% f' h7 y
- (princ (strcat "\nError: " s))/ Q: O8 t1 P3 h
- )
, Y% x2 m) H3 l5 K: e - (if olderr (setq *error* olderr)) ; Restore old *error* handler" O1 b8 W5 ?6 O& f* y
- (setq flexvar 0)
# R: D' h* {6 j- P% b - (princ)
1 z' h; F1 B$ b$ g3 g7 j9 K - )4 b' \5 r7 N* q% U4 C4 Y
- ;;;
+ I; o0 |4 X/ l( A - ;;; Flexicon call routine+ l0 i7 I: T- w. l4 V& W, a& z& k
- ;;;& `/ K8 r) n p6 D, ?- q
- (defun flexmnu (a). ?+ d, Q$ L( _) \( F+ \
- (if (= flexvar 1)
& u+ y; {. f$ b) U* O. L6 m - (command "FLEXICON" (strcat "FLEX" a))
. x1 z* z9 S9 t5 ?! A9 U+ M* P, K - )3 z1 B7 u! y5 K2 [1 s. [6 {/ Q
- )8 l- }- x; E+ p% \, F7 o5 C
+ s. J T: x1 |) I/ ~) v) t- ;;; ( }9 G( ~2 B$ ]- t! s* m, V
- ;;; Get the filtered sel-set.! `8 C% V; `& O' Y7 P5 d7 a
- ;;;9 H6 ?( x# }2 F# y
- ;;;
7 x) P/ L1 U% P6 @2 [+ A - (defun ssx (/ olderr)
& x) _. V& T& ] o& E& k' @" O; ^ - (gc) ; close any sel-sets
( G( f, o7 @8 K( ] - (setq olderr *error*
. V2 q" t B2 s7 Q - *error* ssx_er 8 F$ e4 u& G) u
- )0 d( ^" m: ?7 N3 y- X
- (setq fltr (ssx_fe)) 8 G0 E3 x. ?6 S/ d' z, Z
- (ssx_gf fltr)
( t6 Q. x* p4 ~3 j! L - (if (= flexvar 1)0 z& `( B3 F; v1 V4 l: n V
- (progn# c5 q: B" _ R) O8 |- L% _: }
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")9 O+ Z% u7 @9 f9 _& B6 ~/ V* _! g
- (flexmnu "EDIT")
4 ]: g& C D2 o6 ^$ S - )7 g p3 R/ L4 V: N% [
- (command "p"): `+ `8 Y* k h8 H& b% l
- )$ M: }8 g! E5 Y% ^% o) h1 A0 a7 L
- (princ)& S8 l! S3 p# v) o! r8 \( r+ A& R
- )
4 w+ ^% f2 v; D9 N* s - ;;;
$ \+ \0 [1 p3 U$ y) l - ;;; Build the filter list up by picking, selecting an item to add,
* V# A! A& ^3 @, @5 W* V - ;;; or remove an item from the list by selecting it and pressing RETURN.
4 ?4 b% b" n7 A2 \2 r, i y - ;;;
0 Z$ R- s/ W, d, d+ m! T; w) W - ;;; ssx_gf == SSX_Get_Filters
" T# f: Y$ ?5 d" I - ;;;
. { h, D# ~+ Z - (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
# N `6 z2 |! F& V& G5 W - (while
6 N4 A4 N" l3 @ - (progn
- A" W8 q- V' o. o! _4 X$ z& B - (flexmnu "SSX"), Z% I" a E0 Y" A
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
+ L: v8 A, Y( j* V3 o6 q - (initget
+ [3 ~6 H& @" n, i - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
, @4 u0 Q, V, T$ ?& {0 E4 ~1 z6 b - (setq t1 (getkword (strcat I! C# C: V# F
- "\n>>Block name/Color/Entity/Flag/"5 d+ e) _8 h W- a! K1 b$ I
- "LAyer/LType/Pick/Style/Thickness/Vector: ")))
: Q$ X g0 l6 @4 b - ) Q" G6 t g1 \; h4 r
- (setq t2& N( [& q- z4 y( v: G5 y ?
- (cond
# |+ e$ a0 ^9 B% @* w C. L5 K$ f! K, l; s - ((eq t1 "Block") 2) ((eq t1 "Color") 62)
+ h) u3 R* D' G3 w/ | - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
$ y9 U; ~' U. {1 a: I - ((eq t1 "LType") 6) ((eq t1 "Style") 7)
! G8 O _* d; d1 [6 P - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
- Y1 k6 b' B' c6 U: S' k4 ~1 s - ((eq t1 "Vector") 210)
+ y V V3 A% _ - (T t1)
5 y6 ~9 K/ ]* d5 `3 o: W6 K" Q - )
( B: [, \) }1 P5 z" @ - )
5 e: d @- x! {" [& D6 M. E. k - (setq t3
' L) v$ q( B+ D2 B - (cond
; l7 w, g0 E2 V4 Q( J' G5 I. z, o - ((= t2 2)
# `0 f8 f7 a* G- G3 w. T- h0 X - (if (= flexvar gtads 1)
0 f, |. c1 G+ O4 z - (progn/ k0 O V) m; u0 }9 c
- (prompt "\n>>Block name to add/<RETURN to remove>: ")7 |9 A' ], [4 F
- (gttable "BLOCK")
7 t# Q) E' D; d6 A: f5 d1 q - )) Q) u, }9 P2 Z _
- (getstring "\n>>Block name to add/<RETURN to remove>: ")( \$ l$ k5 W+ ?) u& w d' ~
- )2 W# K" \$ H+ b: g: u, _& W
- )9 H/ k+ j6 d9 w4 C$ x
- ((= t2 62) (initget 4 "?")
j5 v0 [6 l6 R0 k2 n( g6 ? - (cond
3 \& G8 F( b7 h- R - ((or (eq (setq t3 (getint : E: L; j1 c, U' N3 h- y
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
% j* r8 K( ~0 e* B ? - (> t3 256))& b. v5 a( J/ C1 ?
- (ssx_pc) ; Print color values.; [5 c) m) V! W' {% l2 b5 R+ K
- nil* D$ t: f) h0 F( ]% S
- )
- z3 Z$ e7 t9 ]: T - (T
# H W$ p8 i, Y& k1 [2 v T - t3 ; Return t3.
- I8 O% d8 O6 |6 ]. M1 O& q - )
% F: k/ ]# A8 ` - )
1 l) b% W* ^% {. |, Z5 C5 ~. { - )) m2 @" s' e+ b1 t% P% ^( h5 [
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
# |! W+ }% W4 Y+ @5 \* F - ((= t2 8)+ I2 |7 T" W, \0 k7 N/ S( X
- (if (= flexvar gtads 1)% f8 b* g$ J! i
- (progn
$ q- U e6 A2 z5 B: S5 A" k- D' J- `. F- A2 ] - (prompt "\n>>Layer name to add/<RETURN to remove>: ")
9 w- ^3 Z' o0 d" |" r - (gttable "LAYER")! g6 Q9 c4 h! ^* |0 ~
- )
3 H7 T7 w8 q& n" [9 n( S c W# P - (getstring "\n>>Layer name to add/<RETURN to remove>: "); c. G# {# ]- `1 s( D% x3 S; y
- )$ `! x& A+ Q! \+ m
- )8 u3 ~- f3 V) R8 ]- m( r* C
- ((= t2 6)
3 o9 B$ c0 g3 r1 _& ^+ q& t - (if (= flexvar gtads 1)
1 T a3 C5 K" E* @# N - (progn, {: v/ U) l F- `3 H( ^
- (prompt "\n>>Linetype name to add/<RETURN to remove>: ")3 [& a: i# L1 M% p
- (gttable "LTYPE")# w& q9 u; W: d% M
- )
$ ^' y' X3 b8 c2 s - (getstring "\n>>Linetype name to add/<RETURN to remove>: ")) ^& U, ]9 F. ]
- )6 ~$ E/ V4 ~5 w
- ) X6 P1 q) K7 `$ X1 p% G- v
- ((= t2 7)
: ~' N- Q' v6 r2 b b+ B - (if (= flexvar gtads 1)9 |$ {8 J3 I7 u! B/ S8 B
- (progn( A @! o- N" s' L. L
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")% P, e5 S) W( ?8 d7 V; [+ N
- (gttable "STYLE")3 ^* D8 ~' T( g+ H! l
- )
7 H- Z( z% Z; {3 K - (getstring "\n>>Text style name to add/<RETURN to remove>: ")
7 ]- x. z# D- l0 i% v J. R - )
4 @$ a; a! K; v; Q9 P - )
8 Y1 p( @) E) Z, d+ g8 }$ E4 o; n - ((= t2 39)
( R2 T: B8 m$ ~8 i/ k( N - (prompt "\n>>Thickness to add/<RETURN to remove>: ")
- Y- @9 ?7 D$ ?1 b - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))" c/ A& M( z$ r( e9 a7 z
- )
' E% V8 V. @9 h - ((= t2 66) (if (assoc 66 f1) nil 1)). ~4 @2 l: n# S: L
- ((= t2 210) 5 q6 Y$ P( c1 V% a7 s+ H4 Y1 ]* }
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
9 T* F! P7 w' U - )
/ E: |/ t5 Y9 G) q0 s2 \8 w - (T nil)
8 Z' _9 O3 J) B9 V; F - )7 L0 }& v4 |2 {' f3 }0 j: g% c
- )
- ~$ J S0 C' m$ N; l - (cond
: _/ M7 Y$ [, \* @2 {, d- \ - ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
/ s4 }1 f7 b. e8 \7 L- N - ((and f1 (assoc t2 f1)) ; already in the list$ |, x$ v& [7 j7 ~: z8 ~
- (if (and t3 (/= t3 ""))+ l7 O4 Q8 _# ?3 f H( v
- ;; Replace with a new value... 2 L& w+ i" D2 F. P& t' E
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) + J V; k$ u, Y& `5 W- W
- ;; Remove it from filter list...
# I5 c! _+ K" A0 H$ B - (setq f1 (ssx_re (assoc t2 f1) f1)) # e4 o0 ?0 ]* a- X
- ) 3 i0 J" x, ]8 j" O' a9 ~
- )- N+ i/ Y& X+ y% x% y
- ((and t3 (/= t3 "")), c# J1 q/ \9 M; d5 `
- (setq f1 (cons (cons t2 t3) f1))0 F T7 e4 ?. R8 ^6 m
- )
* e& I4 T+ L" u: \- A: B G - (T nil)1 ?, G$ v: K- s" n. z+ w
- ); G' H3 E; m% R3 _7 G' \, N6 F
- )
( q Z7 d5 X- z/ |# Z - (if f1 (setq f2 (ssget "x" f1)))7 h2 q; n3 _: _3 E4 y8 G ~, m5 M9 X6 m
- (setq *error* olderr)% p* Y( P! E/ v8 A9 ]
- (if (and f1 f2)
' _$ u7 Q: r. k* V2 s, r5 { - (progn$ Z+ y0 \) f9 q* @
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))% A0 q7 q% k3 b
- f2 - G$ r* {, a" t' K
- )
5 D- r; z& b" B3 m# z0 s- Y0 J - (progn (princ "\n0 found.") (prin1))
$ x' {( }6 B# I, }. u% W1 E: R9 X/ z - )7 |# M* Z) B% R* d0 l3 b
- )% M8 o/ q \6 ` r+ Q/ ]
- ;;;
! T' N ~" Z) I$ y1 `" e( t5 ? - ;;; Print the standard color assignments.
$ }0 i+ }& c3 s# b5 D( k7 M- u+ ^ - ;;;# e3 y8 i1 `3 k1 s+ v
- ;;;0 C9 x; B$ N3 G5 O d' \: m
- (defun ssx_pc ()
9 B1 W( p4 s6 x4 Y! s8 R - (if textpage (textpage) (textscr))
' a+ s! Y9 c" H' v5 m4 I& Q* A - (princ "\n ")
" `, t% y" D( V! s# f/ q; @ - (princ "\n Color number | Standard meaning ")
0 T8 C- r" A* i |+ @6 P/ b: A - (princ "\n ________________|____________________")% k: V1 @1 a& L- A4 \9 Q6 E' F
- (princ "\n | ")
, h. X* O5 O+ Z' H9 `8 e - (princ "\n 0 | <BYBLOCK> ")& N1 U; \3 L" a5 L( x
- (princ "\n 1 | Red ")8 T+ A3 d8 ?0 b6 Z! d4 ?
- (princ "\n 2 | Yellow ")
9 R$ k. g( h/ F7 V; ` - (princ "\n 3 | Green ")
$ q8 Q" {0 Q/ O4 ~7 U8 A9 X" e - (princ "\n 4 | Cyan ")% C( W ^5 Z6 h6 R" V
- (princ "\n 5 | Blue ")
2 H a/ R4 |. @6 o$ h! ~ - (princ "\n 6 | Magenta "), @5 f5 Q; Y' a# i, @9 W# P
- (princ "\n 7 | White "); F( `$ i3 @- O
- (princ "\n 8...255 | -Varies- ")
" ^9 n X+ _5 x% z T) z - (princ "\n 256 | <BYLAYER> ")
+ U: P& o2 e$ P: b - (princ "\n \n\n\n")
( O3 p5 V3 f; M3 C - )( O1 [6 ^: D1 d
- ;;;
- E6 R% p: ]3 f9 Y, A. _/ p) z - ;;; C: function definition." I1 |+ K( o2 `: X2 I3 l& Z( ]
- ;;;
/ p- o% f; K/ g _& a - (defun c:ssx () (ssx)(princ))5 |: P" Q3 M" m
- (princ "\n\tType \"ssx\" at a Command: prompt or ")% U) x+ d [1 M1 T6 C/ S
- (princ "\n\t(ssx) at any object selection prompt. ")
# u$ p- q( ]. j% \/ w3 \+ E - (princ)
& s/ ~9 m2 G% a - / j9 Q/ m3 A3 }' }1 }+ [
- ;;;--------------------------------------------------------------------------;* y0 n6 H! r+ o
- ;;;--------------------------------------------------------------------------;
5 d1 v9 Y9 z7 l2 @ - ;;;--------------------------------------------------------------------------;" x6 ^7 ]7 O/ m+ E* D+ g
- (defun S::STARTUP ()& J& x! m/ r2 J/ J+ _
- (setvar "cmdecho" 0)
; W3 W) u. A$ ^6 p E* w. v - (setvar "cmdecho" 1)4 r c5 q1 |4 u6 s& Y# }3 R
- (setvar "LTSCALE" 10)& F9 _! ]; b, f, X& X0 D5 p0 A
! i8 j% R3 g2 E3 v4 `5 H- ;(command "_load" "chenKH.fas")
8 a A3 j# }9 H9 X2 \- c( N( E - ;(command "_load" "ctcot.fas"), h& P }1 o+ v
- ;(command "_load" "damdoc.fas"), ]7 g+ A/ F) B5 ^' a; {) {
- ;(command "_load" "ghichu.fas")
# P$ I+ k- S+ I: A( O - ;(command "_load" "hamtutao.lsp")' |- `; ]! H: m9 i
- ;(command "_load" "KHOITAO.fas")
' A6 H8 f% d- Q+ W+ v - ;(command "_load" "KHthep.fas")! U0 b* C# v; a
- ;(command "_load" "mbmong.dcl")* r$ l6 C; ^5 |# |, X
- ;(command "_load" "mbmong.fas")
/ G+ T: T: }* } - ;(command "_load" "mccot.fas")
, N% X- W* ^" W2 k - ;(command "_load" "mcdam.fas")
& D6 C/ l0 D+ z - ;(command "_load" "mcmong1.dcl")
9 ]4 n5 h# H# k7 G- d8 |( V - ;(command "_load" "mcmong1.fas")" S8 T2 a! Z! d
- ;(command "_load" "mcmong2.dcl")
4 g, \3 ^- @( @5 ^7 [2 n - ;(command "_load" "mcmong2.fas")# ?8 R6 k3 W4 x0 N3 ~- ^
- ;(command "_load" "mcmong3.dcl")
- |8 G; @; k9 I% l8 g ~1 U$ W - ;(command "_load" "mcmong3.fas")
3 H6 N) r' C1 S" ]0 d! z, l& c! O - ;(command "_load" "mcsan.fas") i3 u }, y7 r9 P3 Q2 o7 G
- ;(command "_load" "thepdai.fas")* y7 E* v! ?' @) E" F) s u/ ?
- ;(command "_load" "thepdoc.fas")7 n! f5 F- [) W! X; B# s. [2 T
- ;(command "_load" "thepmb.fas")
& d# Z* [" e8 {4 U; z4 D - ;(command "_load" "thepphbo.fas")# `' T* h1 _% E6 G3 {& S4 x
- (command "_script" "thongso.scr")
) K& w! ^- c9 k( ] - ;(command "_load" "thongso1.dcl")) [" I) [2 g) v, v
- ;(command "_load" "thongso1.fas")8 K$ W3 ~ Y9 i9 `& u
- ;(command "_load" "thongso2.dcl")' f* c$ g3 W' j+ M
- ;(command "_load" "thongso2.fas")8 D: x# Y0 \, p- J
- ;(command "_load" "tietdien.fas")
7 M# }# r) A4 e( D$ } - ;(command "_load" "vehan.fas"). c) }% ~4 u' U b- t" V# D2 S, k! |$ H
- (command "_load" "phamDuy782006_TKT.lsp")4 X6 F1 L2 Q# @ L; j8 x; O
- (command "_load" "phamduy782006ganhtd.lsp")9 U4 M1 @2 |& v8 \
- (command "_load" "phamduy782006ganhtds.lsp")- _$ M4 A7 q+ r" B/ d
- (command "_load" "phamduy782006htd.dcl")4 ]! H8 O3 A/ F o
- (princ)( L$ P+ P8 [& N. Q% r
- )' {& q! V4 P) D4 j2 }' x
/ N7 U) B. i8 s- ;; Silent load.
% N& v. t9 I* j3 X- ?9 E! v7 L5 L - (princ)
) F7 W% A4 G1 e# v: @+ x7 P
; I- x" x" m8 c: \" Q" p& f8 F- 5 a, @- Y" Q( ^
- ;; Silent load for the Express Tools.
+ C, D" e* z! d& O2 n+ F Y - ;; Altering this line will affect Express Tools functionality( c2 P$ Z$ c' d
- (load "acettest.fas" (princ))7 {( c/ o) j) T1 F
- �32
Sao chép mã
" Z! J7 x* \+ X: ]00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ+ ]$ d7 v$ _9 ]$ p
|
|