|
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 |
- ********************************************************************************
0 J, \3 p6 W9 G - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *. j4 E5 l5 c+ m! Z, Z
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
) f" V! v- P0 H: ? - * Suu tam & Soan *6 z/ C! |+ ] p% f& g# c) C
- ********************************************************************************
5 s; t$ o( d" j! J# v' j" \% i
! P& h. \3 c& Q1 e% ?) Q- ; Next available MSG number is 1048 d+ R5 x K6 B5 Q# s A
- ; MODULE_ID ACAD2000doc_LSP_
5 l/ \9 _# C, Q, l - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
, f0 ~. x$ I/ Y. ] r5 ]3 Q/ p% b - ;;;
$ w$ O+ w8 f& `( z; @ - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.1 A) J h/ {$ e0 V2 f. c, i
- ;;;; r+ A; F, l4 H, s( _9 S
- ;;; Permission to use, copy, modify, and distribute this software
1 c% o6 R, \1 b- g0 a - ;;; for any purpose and without fee is hereby granted, provided# N3 s2 E# Z+ I$ _
- ;;; that the above copyright notice appears in all copies and
. Y4 n. d w, D7 h% t( Y - ;;; that both that copyright notice and the limited warranty and
$ p7 w, J% x5 \& Z! k9 B - ;;; restricted rights notice below appear in all supporting1 W# x. D+ P7 X" r
- ;;; documentation.- m' t6 N5 u/ W7 o
- ;;;
; w$ B: R5 e% B, L% F - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS./ \7 M4 a5 \" h1 Q* U: E3 S. ?
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
3 ?# f$ r S! G$ R - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
" B$ ` ~* u8 U! I - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
/ S% @4 L; s3 e4 ~ - ;;; UNINTERRUPTED OR ERROR FREE.
& s' Z- Z1 v9 ?( z# E - ;;;
- ]# a0 P) {' _ - ;;; Use, duplication, or disclosure by the U.S. Government is subject to, Y- D$ X8 _1 _
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer g/ q1 g5 J) ]$ j: Z, S
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
6 c+ g+ v" v& L5 P+ r& q; c0 ^ - ;;; (Rights in Technical Data and Computer Software), as applicable.0 `0 w6 t: C9 o* J% Z! A" k
- ;;;
# D) n$ {( p9 k6 W1 D - ;;;.
- n( f" k- c0 L1 b8 I" m - ;;;8 ]& Y, Z e6 Y! K+ C( K
- ;;; Note:, W1 H- I9 y8 p& H; c+ B
- ;;; This file is loaded automatically by AutoCAD every time 2 o6 d7 |& L' d* L% B6 I3 K
- ;;; a drawing is opened. It establishes an autoloader and
8 }2 e% l: r; k7 r( l9 p, j+ ~* n - ;;; other utility functions.$ e! f! P& @& j2 N
- ;;;
3 |" F3 ~ @5 b+ T. f5 b, @ - ;;; Globalization Note:
5 H0 B& W5 ]& b& Z8 N `' |* { - ;;; We do not support autoloading applications by the native
2 b) o: x9 b0 n3 j5 s8 \- x1 C. E4 B - ;;; language command call (e.g. with the leading underscore' m c! n( G, H5 _2 j( e
- ;;; mechanism.). c8 I0 A2 o5 V2 m
- " U) {* x4 c( c: b
8 v9 t- P( H8 z4 S% p0 l: \7 @- ;;;===== Raster Image Support for Clipboard Paste Special =====* m: c& o! t% Y$ k" `+ G3 T- e
- ;;5 i! y# l% c6 t4 d, o- O4 M3 o
- ;; IMAGEFILE
, k4 |5 G" W, i4 X5 ~( k - ;;7 I& l+ [) X H$ j* h$ `- P v
- ;; Allow the IMAGE command to accept an image file name without
. o$ a- q" G) U. d - ;; presenting the file dialog, even if filedia is on.
1 o/ @! a8 K4 y7 ]. N& r& v5 a - ;; Example: (imagefile "c:/images/house.bmp")
/ G9 v: u# J5 } - ;;
+ B6 N& D/ ~, y9 t2 @7 a - (defun imagefile (filename / filedia-save cmdecho-save)! I$ `5 E, a5 G- f8 M
- (setq filedia-save (getvar "FILEDIA"))
( {* g! L) g. n# F" j) A - (setq cmdecho-save (getvar "CMDECHO"))
: B4 g: s: h4 x( ^& {' t - (setvar "FILEDIA" 0)
% k9 {9 y0 |/ p& y' m. d$ ^- N+ z H: | - (setvar "CMDECHO" 0). A) w- m- Y3 a& j
- (command "_.-image" "_attach" filename)
- h) H) }7 g( _) V1 D - (setvar "FILEDIA" filedia-save)
; V+ d: u) G1 ]- E5 b - (setvar "CMDECHO" cmdecho-save)1 s7 e2 [7 B% | L
- (princ)3 u& s1 r( f3 ~* {
- )
' z' W9 D* G) G, ^% a* n; P, Z- O
g! H+ G h2 x& F O- ]- (defun c:zx () (command "zoom" ".5x"))
3 O. L; @' L7 [3 r4 n" k - (defun c:zz () (command "zoom" "p"))! W: Y* A% n; U+ e+ g" \
- (defun c:za () (command "zoom" "a"))* p/ L4 j# ^2 u% [$ H3 j/ X" ?. c
- (defun c:zd () (command "zoom" "d"))7 Q$ F0 Z; d5 q
- (defun c:ze () (command "zoom" "e"))
4 {) J* r }8 l$ S" U7 D' e2 z# t - (defun c:zr () (command "zoom" "" ""))
# Z0 |# H: k$ Y% g3 c8 @ - (defun c:vv () (command "ucs" "v")); k, S1 K- D3 f3 ?0 c# C$ a
- (defun c:co () (ssget) (command "copy" "p" "" "m"))/ n8 v7 F1 G( u$ p
- (defun c:c () (command "circle"))5 O( @1 W, x9 ]5 a) N* }) I7 J
- (defun c:rt () (command "rotate"))
( c/ ?; g! G6 K- C( s5 D - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ))), O: O! {6 Q: G* |
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
+ f h! w" F3 N3 f) ~% L! {% l- a0 } - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
+ P8 c( E' x2 f4 Z8 Q c/ q" S - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))7 y' t% ?( F O) m# J4 o
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))7 J6 y8 _8 e$ r. n
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
3 Z) o; a( i* A - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
8 l4 Y4 Q0 B& ]0 ~ - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
# i( n& i2 v% L" Y* \* z - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
6 I* D E# P$ L1 m9 k - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45")): T9 @8 f' X9 C6 R" _
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90")): Z5 t1 o9 m# i8 `2 {% Q
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))( C6 U: Y7 l1 O' f3 }3 n
- (defun c:fd () (command "find" "p" "" )(princ))(princ); b% J: `5 W# u; Y
- 1 X2 K Q0 B$ K
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ) `* M# ~7 Y- ~- B' a
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
! |8 i- \- j$ D- q - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ); I# r5 O+ _, D0 v2 U l5 ?( x
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ): ~" @9 p1 B( ~8 x
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))/ s* ^$ H% x9 f
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))3 h% Z, c7 B8 b! ]
- (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))+ q* X+ R7 z* [$ _2 Z! I# Z
- H, q( l3 @/ T( u/ I. F3 y
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
, |8 t0 l- o9 l0 V0 p# V2 H - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))6 ~9 Y) W( v% H
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))
% i4 S( f2 C! u* I0 A, J - (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n")), U% S. C' @9 i' r1 u
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n")), E$ \# w9 Z( U+ O I; n0 q4 M
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
6 J& `8 m; |) q6 R$ g' S; e - ; ?. M: R3 ^8 B" c7 j+ l# K# m
- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
0 t* b5 c4 z. d D% p - . U; b7 t1 S; ?& F, ^: L \
- ;free lisp by cadviet,cd2k44
) v4 u* L# W; K% q5 n% e - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
! j8 T- W. n" j' Z% s/ V$ V2 \% ^: [ - (defun c:FTEXT (/ ent tstyle )6 x( `' v; B9 [
- (command "undo" "be"). ]: J% b+ B) _" m% [, _+ `# \
- (setq ent (entsel "\n Pick text :"))/ v8 y( S" H+ G- n+ a& ^/ Z
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
/ V/ ~8 Z& E( {2 r" U - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")8 d! T% J( M ]' W6 }
- (setvar "TEXTSTYLE" Tstyle)
/ u4 _8 U4 `5 n1 p# J2 `# k - (command "undo" "end")' @. c7 k% N2 ]2 Y' i3 ?2 U
- )1 y. ^/ |; y' ^6 Y" @: b
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)* f+ ]2 ]/ w4 q1 J
2 z% {7 o2 Z3 ]9 j) K" G- ;free lisp by cadviet,cd2k44
6 X6 Q/ f& o! j; l# l: _) |% x - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538303 b3 b) u& O! Z" j4 y9 M" n5 D& t
- (defun c:Fvnh (/ ent tstyle )
$ J; W) y5 [8 \7 w. Y3 z9 P - (command "undo" "be")
) J. Z5 s1 f7 _" [* K2 | - (setq ent (entsel "\n Pick text :"))
( B' {: R0 a3 f! c3 v - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))4 _: ^9 c2 c0 b; ?7 m) \2 f/ @ O
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")+ _) }. [# v. H3 l" L
- (setvar "TEXTSTYLE" Tstyle)
1 W2 l$ z9 {# b5 x* X R/ K - (command "undo" "end")* \, Z( \: G+ y9 u; T" n( ?" }/ T! `, j
- )1 c: \/ k% N( u" \
- ; Y, \7 ~9 I# ?
- ;free lisp by cadviet,cd2k44) Z/ \$ k9 R" G0 H# }' {- t7 S4 M
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
6 v& l4 p3 O' s - (defun c:Chbg (/ ent tstyle )- Q# x) S% }7 i
- (command "undo" "be")
4 M/ e3 I. ~% v; R - (setq ent (entsel "\n Pick text :")) m# l0 l( H( X5 ]% D5 c( p
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))! p- o' `9 h5 p$ K9 Y
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")* E0 K- Z+ W& C7 b2 W
- (setvar "TEXTSTYLE" Tstyle)
+ F# a3 d2 Z, \3 J4 J1 C - (command "undo" "end")
0 ^ [* k7 p# V3 i, t - )6 ^7 Y' C9 e; h& ]
) v, q. j6 X- }. L1 R- ;free lisp by cadviet,cd2k44
- U6 W' _. X! }6 \. W - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830! s7 H3 d1 Q0 G; W, W! d
- (defun c:Chsm (/ ent tstyle )/ \; `/ g0 i# f
- (command "undo" "be")
' }" x- V! J e8 E - (setq ent (entsel "\n Pick text :"))/ [) r$ @2 v0 I$ m1 u
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))% H7 s4 t/ g; w
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")/ P7 i Y! a/ ^% B' U: Y W/ Q3 D
- (setvar "TEXTSTYLE" Tstyle)3 ~! | E3 D7 b
- (command "undo" "end")7 b9 j; n/ m- A& T$ q
- ) Q/ _ p" b% ~6 ^
* B- Q9 s7 C+ C I& x) L- ;free lisp by cadviet,cd2k44
6 l) s: M" M( `: W - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538301 ]7 C: Y$ {8 E: z. x3 Z* m, ]1 l
- (defun c:Fttf (/ ent tstyle )# ?5 @# g* p/ }$ R; Q5 V; r
- (command "undo" "be")
6 n- x- {1 Y6 V: e) k - (setq ent (entsel "\n Pick text :"))
5 T) w0 B/ x! n - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
% `+ v1 c4 }8 K' V9 c4 ~ - (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
! i( r, X8 c8 | - (setvar "TEXTSTYLE" Tstyle)
, ~ ^0 y: w; I4 v - (command "undo" "end")" a8 w4 g0 A9 U: K) Z8 z8 s
- )
- |9 i1 u4 T. n+ C6 e
5 c0 A0 z8 E8 P& o; {. y' E- ;;; ============================================! r* k c) U4 m, m) r& R' R
- ;;;
! m Z* M' \+ r. i! r# s$ R - ;;; LISP Creater Tao Duong Dan AUTOCAD2000
2 F5 y3 j: U" v2 ]+ F' L/ a - ;;;
$ A" `3 {9 m+ ^3 \! J. q - ;;; ============================================
# w1 v' U! E- V8 l9 E
" S: N1 |0 X k; i+ T$ M% c- ;;; ============================================) x% a& H2 {# W1 y9 g/ F+ u
- ;;;
' K4 A/ T T1 M3 j. z - ;;; CREATING FROM AUTOCAD20009 i* X6 y: d1 {0 l8 D# b- X
- ;;;4 x! ]( D0 K4 ]
- ;;; ============================================
1 t/ J/ i6 d# j4 h, b
' f# ?6 ~( R" ^- C- (setvar "INSUNITS"4): V1 b/ x) k) I n( J( K7 m
- (setvar "ANGBASE"0)1 E& m* n' E+ [2 s- V
- (setvar "ANGDIR"0)) A* U; d8 P0 H6 i
- (setvar "AUNITS"0)
% S2 R1 I+ ]# _8 V2 Z - (setvar "AUPREC"8)
- q4 E4 _% F" l - (setvar "LUNITS"2)
A# Y4 B7 V: f - (setvar "LUPREC"8)% \& N. c. F- \+ ?/ E- r
- (setvar "ACADLSPASDOC"1) * o7 j8 C1 W( K- V$ ^7 P
- (setvar "pickbox"5): I3 s! \( C: K
- (setvar "blipmode"0)
7 {" f4 t# g) D L5 g - (setvar "mirrtext"0)
z @' d K- v6 e4 S1 p - (setvar "cursorsize"100)
- s9 R/ H& n7 w2 M - (setvar "ZOOMFACTOR"75)
5 h5 n+ \: F# l, L' T - (setvar "LTSCALE" 10)$ R7 ?) E3 _! s1 g& T/ a* P# M
- (setvar "lwunits"1)
( u5 D- f( K" d# Z( u/ L! C" `" `" r - (setvar "DIMBLK" "Closed")
Z1 z' |4 L3 u8 x8 D0 { - (setvar "DIMGAP"0.0693)! s! v% ?7 T0 N8 {4 c' u
- (setvar "DIMASZ"0.20)6 I6 R' d; `! u) m1 {
- (setvar "DIMCEN"0.2)* q: y5 a/ j! d
- (setvar "DIMDLI"0.1)/ ]- H! m% r4 {) Q9 j, m5 \8 E
- (setvar "DIMEXE"0.0693)5 n' ^1 A+ `3 d, D6 ^# L1 k
- (setvar "DIMEXO"0.25); e) g" [5 v$ s# _
- (setvar "DIMDEC"0)" q$ M% g$ p: R# U8 O6 V' h
- (setvar "DIMTIX" 1)
; G! V# r( K) w p - (setvar "DIMTXT" 0.099)
; f0 L- V% a6 e& d# f - (setvar "DIMCLRT" 7). X' i o/ N$ k
- (setvar "DIMTVP" 1)
& N0 j6 q* |; U1 z - (setvar "DIMJUST" 0)
$ l1 j; Z+ l; N8 N - (setvar "DIMTIH" 0)) u4 v( _% w' j: M
- (setvar "DIMTOFL" 1)+ u/ L9 ?" g7 r
- (setvar "DIMSCALE" 1111.1111)
6 f' C, x# B7 ~
/ C' `7 M O5 A3 v
1 r; @) a, [8 _3 m8 p# _- 5 T# j* ^7 I0 q% g' s" ~
- (defun c:zp () (command "'.zoom" "p"))5 a$ m# m* l7 Y" D: B4 e' |! V& |
- (defun c:zz () (command "'.zoom" "p"))9 O) s4 O' g6 W0 [3 G
- (defun c:ze () (command "'.zoom" "e"))
+ |- b* e: k% }- c - (defun c:za () (command "'.zoom" "a"))8 t- ]9 N$ I1 F8 V& a' ]! G
- (defun c:zd () (command "'.zoom" "d"))) j! S2 J0 ^; q
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))% k ]! A: P3 q1 m1 P' X0 s
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))# c8 k) _/ ]6 y: ]' v
- (defun c:de () (command "ddedit")(princ))" i1 X% ^6 i0 c8 u+ A+ Z2 z. x' f4 {
- (defun c:dda () (command "Dimaligned"))5 L: \! f1 p. G3 Q0 o
- (defun c:ddb () (command "Dimabaseline"))
U+ ?3 E" n* _( ]. A - (defun c:ddc () (command "Dimcontinue"))8 a3 K. N- b8 ]8 L) B
- (defun c:dde () (command "Dimtedit"))
w. f4 J$ L7 Q$ @ - (defun c:ddf () (command "Ddattdef"))
" q0 ^- T+ _ ?- s - (defun c:ddi () (command "Dimdiameter")), t7 f# `; H- `5 J
- (defun c:ddl () (command "Dimlinear")), j6 U9 g- F& x6 a( ^, j/ g+ N
- (defun c:ddn () (command "Dimangular"))
* X) H# W# t1 q. z& _ - (defun c:ddo () (command "Dimordinate"))
; w0 ]- u$ R9 {+ Q9 ? - (defun c:ddr () (command "Dimradius")), Y( n k {! t/ s* K
- (defun c:dds () (command "Dimstyle"))
, b4 {- ]+ j) x+ d8 m& T
7 P; a1 k% a, o5 t' E" d8 B$ Q8 O- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)1 ?* I% j1 r1 x& u* m) F( R% l" r
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
3 a2 B9 ^ ^# S% r' p. F - (defun c:UU () (command "dim1""update""all"))
& c2 }; _4 N+ Z" B# o9 P( X6 d - (defun c:ded() (command "dim1""tedit"))3 Y8 m$ M3 M+ j. x
- (defun c:da () (command "dim1""ali"))8 F8 j/ h3 ^2 U( I" q6 k! ]) m1 ^
- (defun c:dll() (command "dim1""l"))
2 r8 _' C) Z9 O3 _ - (defun c:dan() (command "dim1""an"))
' f- B5 ]4 i$ k3 F' Z - (defun c:d1 () (command "dim1""ra"))
) n; c/ u$ a: _2 J1 p! S - (defun c:n () (command "dim1""new"))
% J5 z, j- c3 h& |4 s
; Z0 g) C& H4 o3 G$ z- (DEFUN C:PE () (COMMAND "PEDIT"))
9 G, l) ^+ a1 n - (DEFUN C:PL () (COMMAND "PLINE"))
' S$ _3 H: R: K) Z( v# e+ Y - (defun c:dd () (command "dist")(princ))
3 G8 I; s) r9 Y. { - (defun c:w () (command "pedit" pause "w" "au")(princ))
9 B- f; G+ v, y3 \: w {! w% y- _ - (defun c:pg () (command "polygon" "polygon"))
/ [& d5 g. \0 f: J% d* J - (defun c:el () (command "ellipse"))! F4 Y, t% D, @$ q3 S& Z; k
- (defun c:xe () (command "explode"))1 F$ M* W3 B6 u9 z& G+ l
- (defun c:eex () (command "extrude"))5 P% B, \8 w, ]
- (defun c:xg () (command "xline""a")); U7 C2 d0 q( {$ N# s1 f- U9 n
- (defun c:xh () (command "xline""h"))
& c, u# \2 v" C, ]& u9 W - (defun c:xv () (command "xline""v"))
6 Z3 M+ o4 a4 }, g$ Q! `8 d. p# |6 s - 0 f5 k9 ^$ O, l4 k1 L5 \& t' Q8 K; ]
- (defun c:oc () (command "osnap""cen"))
, f/ |# ^1 b/ Q: M- d - (defun c:od () (command "osnap""nod"))$ M, `; S1 M; ~& i `
- (defun c:oe () (command "osnap""end"))$ m2 ^; ], j# k
- (defun c:oi () (command "osnap""int"))( R# d, d+ r8 S) \3 ~
- (defun c:or () (command "osnap""per"))
$ T* }9 K9 R3 _6 Q" I8 d- s h - (defun c:on () (command "osnap""none"))* j, ?0 ^3 t- I3 G1 z% c+ N' S3 R
- (defun c:oq () (command "osnap""qua")): }* O" a' ` Q- f" s4 b; N/ l
- (defun c:om () (command "osnap""mid"))- S, x& E% v+ k: \: C
- (defun c:ot () (command "osnap""tan"))9 u6 d S$ L( |% |7 a% K# K5 S
- (defun c:oin () (command "osnap""ins")); F% f8 g9 Q: U* @$ W* O
- (defun c:oa () (command "osnap""nea"))
! z* c1 i; x7 _9 _6 k" O% {3 y7 a - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))9 m; A+ ~/ Z& q- [" P
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
+ y: b, Z' v1 \. i$ M( Z- s - ;(defun c:nn () (command "new" "y" ))
$ R: j& H! g! `3 v. \. W - " h& E. M( O& R
- (defun c:/ () (command "limits"))" Y8 q& |* o' E
- (defun c:`1 () (command "region"))2 ]) [) x9 v4 q! A
- (defun c:`2 () (command "subtract"))
2 T; a5 j: W/ h* E: b& v: u4 _ - (defun c:`3 () (command "union"))( m& U( u# U) {# T
- (defun c:`4 () (command "intersect"))
6 y ^ z* a0 W - (defun c:`c () (command "cal"))
/ @8 @% b# |" U ^# |7 h - (defun c:`g () (command "Polygon"))2 f: H& T* V& v2 G
9 |8 V S1 i: y4 A" v1 D& A- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))
9 k j, K5 W1 N' ~. \" B - (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))2 ?" Y6 q l% u! n8 {; [
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)
% k. t( j; @9 _; p) U - + T1 _" d9 p- `: ?3 v
- (defun c:ddm () (command "ddlmodes" pause))! V4 y* W8 c: J7 P1 W7 W
- ! N3 |7 L% a, ?$ P! l
- (defun c:sha () (command "shade" pause))- Y1 R0 U. n' j6 O0 ~+ u
3 M5 {8 @: T6 w7 u- b9 }- (defun c:sr1 () (command "surftab1" "p" "" pause))
/ l& x3 O- t) f, f6 @4 W5 {% K - (defun c:sr2 () (command "surftab2" "p" "" pause))
: t w: d+ E8 A2 U - ! }1 A) V0 Z: v2 Z) y1 O
- (defun c:ad () (command "audit""y"))- m/ i5 U \1 N& M* f
- (defun c:q () (command "quit"))
6 T, `! r2 H2 m& q: T+ @
/ ?8 Y! u9 @2 ?3 y) L& p7 L7 R1 C- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
; |1 M* z. Q/ t - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))) K( D, J# j6 w: A* I. a1 y
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))0 K" Q3 \- ?) j* Q$ {
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))' H+ E3 N2 j+ h, T
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
( B# {8 s. q; n2 S - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
: u' f; N- p0 s9 q - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
' q7 w0 N5 a' F# n) A, D) } - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))2 v1 r p$ `& R
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180")). N+ W/ K+ q1 ?) W! Q
- 8 e8 L7 M1 I S7 A
- (defun c:u3 () (command "ucs""3"))
* l( U( O3 v1 X6 y$ b4 }- `+ p+ V - (defun c:ue () (command "ucs""o""end"))
& M k2 [6 l* { - (defun c:ui () (command "ucs""o""int"))
' h3 H' T* V3 a' v [' h - (defun c:um () (command "ucs""o""mid"))
: a) T9 P4 B4 X( R' B6 N - (defun c:uc () (command "ucs""o""cen"))
7 W0 _, j Q+ a4 s& G/ @ - (defun c:uq () (command "ucs""o""qua"))
9 Q4 a U: ~3 u ]# s& n - (defun c:3s () (command "ucs""3"))
9 H6 }6 M% K4 m: p - (defun c:sx () (command "ucs""s")): w: ^( `# ^$ [. p
- (defun c:sf () (command "ucs""o"))
& R5 t6 s7 T/ W0 {. r7 y4 \$ H% [ - (defun c:sz () (command "ucs""p"))
9 t5 L7 s5 ]# X7 H# k& j* h5 J% X5 | - (defun c:sr () (command "ucs""r"))
8 V! F9 G9 V7 Y$ e, ] - (defun c:sw () (command "ucs""w"))! Q) ^) m0 Y3 i+ z' p
- (defun c:fv () (command "ucs""v"))
1 \4 u/ I; e7 R. ~+ z' t: u - (defun c:ux () (command "ucs""x"))1 s* I$ O$ O" Y. j# @
- (defun c:uux () (command "ucs""x""90"))
0 _8 H& S9 |% y - (defun c:xxu () (command "ucs""x""-90"))
9 T9 U' i8 L& N2 E4 X4 m) f0 \1 J - (defun c:uy () (command "ucs""y"))% j& C- @& p4 \: f$ a/ `" I1 }3 ^
- (defun c:uuy () (command "ucs""y""90"))5 N* V2 _# f* w [/ V
- (defun c:yyu () (command "ucs""y""-90")): T7 J# Z8 H$ J) ^- l8 Z# h
- (defun c:uz () (command "ucs""z"))
( C& ]8 U: ~6 v$ g. k - (defun c:uuz () (command "ucs""z""90"))
% k+ b7 [: X( `& m* A5 Y - (defun c:zzu () (command "ucs""z""-90"))
& W* B. _! x8 P! c& _% r7 i - (defun c:uci () (command "ucsicon" "Properties" ))(princ)
# F" ?* M# s1 L3 Z* B% u( E* |4 e - (defun c:ucm () (command "ucsman" ))(princ). C6 v& B0 j6 V) D) I/ p1 z
8 M" z: _6 q# t2 s5 x- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
, \7 |' p# F# U - (defun c:sd () (command "vpoint""_non""1,-1,1"))
* o: @2 ~7 p5 Y, B - (defun c:se () (command "vpoint""_non""1,1,1"))
) U0 W, ~% |& ~: E, C: Y! n - (defun c:sq () (command "vpoint""_non""-1,1,1"))" T" N. J/ g6 z' |
- (defun c:vc () (command "plan"""))
( G4 z( a( B' I& M T - (defun c:vd () (command "dview""all"))
; V1 `8 _9 f* z- e2 }
/ J7 H. x/ S- Y6 x2 z- (defun c:TT0 () (command "tilemode""0"))( V5 R s) k$ V8 l: N5 j& I
- (defun c:TT1 () (command "tilemode""1"))+ e+ J5 [# ?4 S+ r
' ^7 y: l& A3 {) C4 i6 n* S- (defun c:vt () (command "vpoint""_non""0,0,1"))0 p) V( L/ [) P' C3 k6 n" Z
- (defun c:vb () (command "vpoint""_non""0,0,-1"))( I! Q6 |" F: l% S$ ?' [1 n
- (defun c:vl () (command "vpoint""_non""-1,0,0"))
6 R8 h1 A5 a3 R; m - (defun c:vr () (command "vpoint""_non""1,0,0"))
* G6 X6 ]! o: F% ^$ [; ~/ V - (defun c:vf () (command "vpoint""_non""0,-1,0")); y. ?. T5 F A) G
- (defun c:vk () (command "vpoint""_non""0,1,0"))* w5 ~% I" ~2 g; ]% A$ E# F
* r' F0 L; X' t. S, p- (DEFUN C:MM () (COMMAND "MIRROR"))- H+ P( K( o/ n: t9 ~7 z d
- (DEFUN C:MP () (COMMAND "MOVE" "P"))
4 D: x* _) h6 I& c f5 R8 b; s
: N; ?- [& ~( e) H5 r& r" G- (defun c:mee (/ a)
& l& u3 s$ @! X) K! X, A. _ - (setq a (ssget))(command "move"a"""end"pause"end"))
i6 a/ U! h1 N. \! V - (defun c:mc (/ a)& U* |% v: s" g* u, {
- (setq a (ssget))(command "move"a"""cen"pause"cen"))
7 F" ?+ p+ T0 L5 h# I - (defun c:cc (/ a)% Y( X' L. u- Z9 a& J
- (setq a (ssget))(command "copy"a"""m"))
3 ]% o+ c: j. L, n+ R - (defun c:ce (/ a)
0 [: R, Q) p& O. O( @! Y - (setq a (ssget))(command "copy"a"""m""end"pause"end"))
! Q3 z% n/ W- i- {; |9 v' t - (defun c:cn (/ a)+ M8 c5 ^- y- C C
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen")), n1 C8 T' g4 [" Y- u
- (defun c:tl ()(command "trim""l"""))
, X: z6 ~1 V6 ~ T. [ - (defun c:tf (/ a)2 N% p0 C3 Q+ r, M x* O
- (setq a (ssget))(command "trim"a"""f"))8 x* G, P0 l+ U: @4 u
- (defun c:el ()(command "extend""l"""))! Y! e3 _% @$ ?) B
- (defun c:ef (/ a)
4 ]) s% m1 _7 w9 m2 F+ ]% c - (setq a (ssget))(command "extend"a"""f"))
* l9 U, @: ~$ }# i - ( K# J0 S$ p A% p
- 9 @4 Q. L" d% {8 b1 p
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
% e r$ P- v; y' x U - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))# s4 K$ M% F, }- Y' s, F
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330")) Y! h6 W- S! u, {. }0 M
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
. Z, |# R, n; s) Q0 p - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55")) ^2 D; |; D r/ o0 a
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))# t3 I1 A( |" o7 b
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
; c, ]. @( ?7 |) ` - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
0 U9 A+ n. h o: k# \6 t _ - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900")); D+ j0 I( L- }6 y$ j. H
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
+ Q) o* B; F6 @9 E' R4 @* P4 a - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))' @. ^# K: W" q5 i5 ?
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
2 h( g* \ n5 f* s( z+ ^ - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))! c& P3 N1 u h( T9 P( B
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
& N( g3 a5 i$ a5 z - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
& k$ @# B3 m! f" h" p: ~ - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))' W- b5 M3 H+ s: \
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))5 K4 d' k c- p% w, c* b5 o
8 V* [( Q3 M- T/ x0 N; O1 Z2 K- (defun c:mla () (command "-mledit""av"))) d" t0 C1 _' j. p, [ O) [
- (defun c:mlc () (command "-mledit""mc"))* k, D+ r8 {( L% B$ s' D: z! j
- (defun c:mld () (command "-mledit""dv"))
5 b" c" H+ q% N# A" R, j, K# W7 B2 Q2 K - (defun c:mle () (command "mline""end"pause"end"))
( f5 E6 s/ q e' t% [ - (defun c:mli () (command "-mledit""ca""int"pause"int"))0 l2 T* f. s. x1 n' U3 P
- (defun c:mlj () (command "-mledit""cj"))
1 ~5 l; H+ \6 I! Y5 C - (defun c:mlt () (command "-mledit""mt"))% P! K: K- K5 t4 @ _+ g
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))
S$ {+ R5 s! K8 B8 |4 a - (defun c:mlw () (command "-mledit""wa"))( r T0 M. |6 z5 u/ u3 b2 W
- 1 p$ b& S6 X. O5 e L" ~
- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))! l- w0 v. M6 {
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))6 M0 r N0 v% ]. P4 ~6 t' z
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))
# }$ m3 j0 |: {) h) o% W3 ` - (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
9 \/ `% y' U/ E' D* Y - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
0 |4 e7 p! h- C - 3 L$ [2 u6 o% \$ U7 D
- (defun c:p0 () (command "pline""""w""0""0"))
8 F7 _- _* N" C - (defun c:ot () (command "offset""t")), z2 n8 h# d' P5 Z
- (defun c:t () (command "mtext"pause"j""bl""h"pause))
/ ?* ~( s% n& t5 i: Z9 ^& U* C - (defun c:uo () (command "ucs""ob"pause))
1 x" m6 [+ V7 h1 U, d - (defun c:f0 () (command "fillet""r""0"))/ L5 O- x4 w' x3 {
- (defun c:fr () (command "fillet""r"))3 e- v. _$ q# w, o8 A& a+ v
- 7 c4 C7 O0 ~# w0 b
- ;CHAMFER
# ]$ `- n1 r l& d3 D% n- e* I. | - (defun c:cf () (command "chamfer")), U( \7 L( {+ P0 g+ v6 h
- (defun c:cfd () (command "chamfer" "d")); j P& g& l' a4 G# c
- (defun c:cf0 () (command "chamfer" "d" "0" ""))' W# C0 s4 ~# v, X
8 V' O$ `5 Y9 @, ` E- ;FILLET
. }& E" D* z- c' ` - (defun c:f () (command "fillet"))
$ A8 p, j* t% w7 c9 M - (defun c:fr () (command "fillet" "r"))3 j, Z9 b+ Z8 V2 `* F4 ?% d& n
- (defun c:f0 () (command "fillet" "r" "0"))# p2 j' }* f8 K
- 7 |; J1 G1 x4 M+ }
- (defun c:OO () (command "oops"))
4 m$ a% N5 V* U7 k% h( Y K - (defun c:dln () (command "dimlinear"))4 @6 o! c+ ^. @1 i% g
- (defun c:dan () (command "dimaligned"))
$ |7 P( ~* [* P9 d1 Q e: H - (defun c:ddc () (command "dimcontinue"))
8 y- b x# U2 V6 p2 B
" S) b* ~6 D3 |7 Q4 ]/ B9 U- (defun c:sc () (command "scale" "auto"))
* l1 H( L* A$ m$ w, f3 s5 m - (DEFUN C:XO () (COMMAND "snapang"))
/ K/ Q5 b4 f, w3 Q7 U - (defun c:cc (/ a)0 ^+ V5 }, J3 C' [8 X+ a
- (setq a (ssget))(command "copy"a"""m"))9 _; l. j% t, M4 m
- ; x; \3 _( K8 D; L" z Z
- (defun c:PJ (/ a)
. f7 g& }. Y. a2 Q; X - (setq a (ssget))(command "pedit"a"""j""all""y"))
! O3 N/ k) }. n3 y9 ` - (defun c:JJ (/ a)- M, w4 m$ D% D- y r! z
- (setq a (ssget))(command "pedit"a"""j""y"))
/ s" J& g8 t* M1 |& c- R - (defun c:TN (/ a)
2 }, U; @7 j1 N. H* {% [ - (setq a (ssget))(command "change"a"""p""T"))9 C9 i: b5 o+ I, ?
- - }) a& f9 }& p* }: w$ V
P0 ^) w& ?: B$ n- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================8 R* S/ _+ f8 \ h- Z
- " q& g5 q& i, w
- (defun C:IB ()(setvar"cmdecho"1)2 t9 t) R) W c6 O7 I5 \) R/ s0 M
- (setq pt(cadr(entsel"\nSelect Block:")))" M' i! N' L! w1 a
- (setq e1(ssget pt))
/ ^% L: Y- j \1 D2 u' s$ j - (setq e2 (entget (ssname e1 0)))
5 m: j. h# x8 V& |6 d - (setq blname (cdr(assoc 2 e2)))) `6 P8 W ?- ~$ x4 a( P) T
- (setq oer *error* *error* err2)(command ".insert" blname))4 T. c _4 t" m/ h' F
- 3 {' x1 N) k2 E4 b8 i' R4 R
- (defun c:II ()! ^5 y1 x& F: e; y+ C7 O2 g# D
- (setvar "cmdecho" 0)
" O9 t, c; g, o$ a$ } o - (setq olderr *error* *error* myerror)& q+ t, d4 F3 k6 ^' y6 E
- (prompt "\nSelect objects: ")# B; z6 ]3 w7 d- \7 D5 U2 o" _& q
- (command "select" "au" pause)7 z. R) E6 n2 w5 D
- (setq sstxt (ssget "p")4 I4 R# x v2 }, F
- sslen (sslength sstxt)
* E9 V1 u/ m! a5 L9 Z! `+ S - ctr 0
1 \1 {- }# f# [* F/ t: e7 Z/ m - )
2 a7 i9 U6 `7 E' G# |* y - (command ".undo" "mark")0 U& B" Q- U% A3 g1 r" x
- (while (< ctr sslen)0 {2 W2 H8 T: B; z! S7 R
- (setq listxt (entget (ssname sstxt ctr))
: j( v2 ], [- D$ l2 c* j - txttxt (cdr (assoc 1 listxt))3 Y; X! Y$ Q( X K+ p z* s; u; ^
- enttxt (cdr (assoc 0 listxt))
& A; r9 [' h+ s# P5 t0 q! e - )
( k% b+ G8 U) L - (if (= enttxt "TEXT")' H: p( G- S2 C# E9 c% e5 }" z7 f. M: v
- (progn: T) e9 d' `6 K
- (setq testxt (substr txttxt 1 3))1 x4 l1 @' f) b, q4 T' Y* C
- (if (or (= testxt "%%C") (= testxt "%%C"))
% i- ^" z; D. v) ` r - (setq newtxt (substr txttxt 4))
" M) q1 B3 S& u/ \! ] - (setq newtxt (strcat "%%C" txttxt))4 D& v7 t# C2 {7 h# o. S
- )) `3 }9 G. @4 R) u+ E/ N
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
( [8 r; q- \ D) h9 z+ K1 n% x - (entmod listxt)
/ y7 p1 f7 S" X$ Z/ h+ y - )
. ^% M2 S9 E+ i5 Q7 X8 i+ p W5 ^ - )/ c7 A, ?$ r, Y5 Q
- (setq ctr (1+ ctr))% h* i0 }: ` { H {
- )
5 w0 B+ Z, d$ i/ i - (setq *error* olderr)
7 u' ~3 Z! c9 t0 w+ d( m% h; ^$ U3 F - (setvar "cmdecho" 1)! X- q: l* @' V' q) B3 I* f7 R' c0 q6 z
- (princ)
8 a* v* M5 x0 N5 j) N6 R) E0 [ - )% E( Y; H8 G1 h6 n" n' x$ @/ P1 `
- , F9 F" X0 w# e: d
- (defun c:DG ()
* i- `% q x- n+ L. O - (setvar "cmdecho" 0)
9 q- j" d4 X' |( n: v2 T - (setq olderr *error* *error* myerror)' y! q" Y6 g" l9 i
- (prompt "\nSelect objects: "); e+ F2 l+ L8 |- i$ W6 B3 |( n
- (command "select" "au" pause)
, b6 q I8 ]- c0 R7 O I - (setq sstxt (ssget "p")
# ?7 R4 H- a1 F1 G% } - sslen (sslength sstxt)
5 u7 \$ ?$ D i2 n2 q - ctr 0! S; X3 A# K; i) {4 ~
- )
6 A/ u, m/ H# z# o4 l - (command ".undo" "mark")6 k( u$ c P3 i/ f+ U1 ^# s5 [
- (while (< ctr sslen)
2 N% m* C$ B8 Z3 A; A& Y, f - (setq listxt (entget (ssname sstxt ctr))
& U h c- x/ l9 e - txttxt (cdr (assoc 1 listxt))2 A: H( M3 F+ g: O) b$ l8 i: i
- enttxt (cdr (assoc 0 listxt))8 R, u/ X3 y2 ?' A
- )" H/ c8 J0 l! |$ T3 q, u
- (if (= enttxt "TEXT")
& k! p$ j3 a8 O* S2 c - (progn
/ \, ~- I2 \% ~( N - (setq testxt (substr txttxt 1 3))0 m& \4 O% b4 f! i( I L
- (if (or (= testxt "%%d") (= testxt "%%d"))* m( V9 H; N2 A
- (setq newtxt (substr txttxt 4))
, b- O& W2 C: J, {, L/ `3 P - (setq newtxt (strcat txttxt "%%dC" ))
3 B( x: X/ i( L! D4 k - )6 @ o9 U- |; ^( T
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
$ }" y) L9 H; J- A - (entmod listxt)( l) [1 j" h9 \4 c! v
- )
* n8 j" e* a& D( f - )" e) h+ f7 _( ?1 u3 s0 ^# Q6 }
- (setq ctr (1+ ctr))
/ {5 ^- u4 [& O) c S - )
9 c+ [: {# S4 R) a* H# M ~% c( a - (setq *error* olderr) w, R6 Z, v3 R# ?* g+ l. @ K, Z
- (setvar "cmdecho" 1)6 ?9 F m, A+ c1 @- V
- (princ)/ D( x3 N9 E* x6 w$ v
- )
$ }: c. z% x1 F# u" ` j% S - 9 g8 P( `- i: x2 {3 J* ?
- (defun c:PI ()
5 C0 e7 r5 }% W% T* l, f- H - (setvar "cmdecho" 0)
1 s+ E6 ]1 F, M" \1 _4 I - (setq olderr *error* *error* myerror)
, g/ a" C; |8 X - (prompt "\nSelect objects: ")+ C2 x3 |5 I& @
- (command "select" "au" pause)
, {3 k& f' A9 X/ H" a$ z - (setq sstxt (ssget "p")0 F* \1 K6 q+ V4 U6 w: U
- sslen (sslength sstxt)* d* u1 ]# x7 f
- ctr 0
H3 p* U( f8 J L. K: [( r - )9 S7 h: \5 N' \+ i* F
- (command ".undo" "mark")2 _4 N: k( F! f# M" s
- (while (< ctr sslen)
8 J6 K# \6 v2 U5 L) D - (setq listxt (entget (ssname sstxt ctr))8 J# q( q4 S2 [! L2 x2 C/ N. M) s
- txttxt (cdr (assoc 1 listxt))
( I2 \7 @' t% T - enttxt (cdr (assoc 0 listxt))
$ }9 _, u+ H3 H9 ]. d( A - )7 ~* B* w7 b5 X4 Z. ?1 ?* z
- (if (= enttxt "TEXT")
* a* {+ A5 o" E# j& C - (progn0 x0 s6 V' ?) r2 P
- (setq testxt (substr txttxt 1 3))
; n! _# i" Y9 ^/ e, W - (if (or (= testxt "%%p") (= testxt "%%p"))
% A4 Z4 {6 D, ]. ^; c6 C0 j - (setq newtxt (substr txttxt 4))
/ A) n. Y' M3 [ i - (setq newtxt (strcat "%%p" txttxt))
2 W3 g% b$ Z7 ?4 \; K; t% o8 e - )
3 o1 k) B5 E ? ~1 P D - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
& _+ i( X+ z+ V6 G6 u - (entmod listxt)
# G. U$ O$ m- _5 j! U* G; R5 U - )- h7 U7 x7 u7 {$ R; l( s
- )/ z9 b0 t2 q0 Y5 R
- (setq ctr (1+ ctr))
8 ?8 r( A6 V. M( |2 h+ i7 q2 _ - )
9 n5 |: W# I* }: o$ N1 K6 Y- B - (setq *error* olderr)
. R3 N( I7 W4 k+ s! j" E$ q% O - (setvar "cmdecho" 1)
9 ]& ^* m( h8 c" h, p; I' S - (princ)
' H# @4 T f* z J& t: R+ ] - )
$ {4 S! }3 r+ y$ k5 H0 t
. K$ R+ n8 T% O+ J$ h( F% E/ o- (Defun c:CB (/ a)" R: x2 O, l5 }8 m! D
- (setq olderr *error* *error* myerror)
9 W9 x# V# A1 I* m! @- V( b+ n - (setq ocmd (getvar "cmdecho"))5 y8 H* J0 m" h4 W: X
- (setq oblp (getvar "blipmode"))
: R8 k1 W/ l& _& |( E4 s( u - (setvar "cmdecho" 0)& x" I+ n2 f' q( k" ?3 Z6 N0 N9 i
- (setq a (ssget)). k4 b; Z* ^2 F2 Q5 S
- (command "CHPROP" a "" "C" "bylayer" "")% l% V. L+ s& d, E$ n0 E
- (setvar "cmdecho" ocmd). N+ A2 Y4 b0 z: k/ n! l* Z
- (setvar "blipmode" oblp)
: c. E, q+ T/ i) k" s+ k - (setq *error* olderr)+ ^% U; h1 w; c, a7 G- B0 T
- (princ)
5 \( {! _5 x! \; K/ f1 } - )5 Y# j- V. ^# i6 h/ ]
. t$ m0 ]! X1 Q0 [) Z- (defun c:LCC (/ co43 obj23 la23)
. }+ f% w& K2 W6 g, A1 N- \ - (setvar "cmdecho" 0); o5 a9 U5 k0 q, e; F. f
- (setq co43 (getstring "\nNew color : "))7 d2 q) \- I2 z: D& g7 v
- (setq obj23 (car (entsel "\nPick object on desired layer: ")))
# F- A$ A/ e# x: Z8 ` - (if obj23 (progn3 }/ t2 B* \% n* M
- (setq obj23 (entget obj23))/ p" c+ H) K+ D* Z/ @
- (setq la23 (cdr (assoc 8 obj23)))
! v% y+ O$ {$ ? - (command "layer" "c" co43 la23 "")& R! ~$ {8 W4 u: {# V/ R- T
- )
: o8 y& q! c, `9 v. u - )
. Y- V6 _) ~! Z5 z" x - (prompt (strcat "\nLayer has changed..." la23))
! x7 @& P6 d" z/ L: y- G2 _, G - (setvar "cmdecho" 1)
$ E+ D8 o2 e$ B n+ O - (princ)
6 e3 M" l' U" Y' I/ _9 c4 ]! D - ) - K9 }8 Q: ?: `& ?- N8 G
4 f$ S, d: H5 p6 s: C& d4 k, a- (Defun c:RP (/ a)8 m: S- E+ x+ v. r# s& q' E
- (setq olderr *error* *error* myerror)
% d, i6 \" y* ^; ] - (setq ocmd (getvar "cmdecho"))# \9 Y$ f4 |/ ?" V8 @( B2 u
- (setq oblp (getvar "blipmode"))
+ b( q, b* w3 F6 F. l: F; J: X1 n - (setvar "cmdecho" 0)- y$ ~/ _8 I1 s7 b7 Y' b% Q
- (prompt (strcat "\nUSE: Delete object(s) belonging to"- F( u8 Y' t+ }- V6 i R. G
- " the layer of the entity picked...!"))
9 U- V' W- f9 K; V - (setq a (entsel "\nPick the entity with the desired layer to delete: ")). ?" P9 j! T& U% E; @9 z/ t( L
- (if (/= a nil)
% j) H. |/ _6 x" G6 J - (progn (setq a (cdr (assoc 8 (entget (car a )))))7 l8 r2 e) i4 ^2 U7 c
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
+ P1 T! Z. W' H$ }; \( R0 [ - (prompt "\nNo entity selected!"))8 o8 {# ~" G8 x! I; q
- (setvar "cmdecho" ocmd)+ s* K; {( k) V, ~. K/ s) P0 \
- (setvar "blipmode" oblp)! F8 T: Y# p& U8 `' p
- (setq *error* olderr)9 q* A+ Y5 R: y5 i# K+ L9 T+ L
- (princ)# @3 i L, x# @
- )
; H: Y+ p ?6 P- a. a$ a0 Z& j - 9 l) B; V9 p2 H: V6 [
- (DEFUN C:WL(/ SSET NET SSL M)
$ Y0 q; {/ t: z: p( D5 S2 L - (PRINC "\nSelect lines :")
1 y n/ B, h4 P- k: d" }" \ - (SETQ SSET (SSGET))9 \8 m5 N8 J# e3 U
- (IF (/= NIL SSET) (PROGN" H4 Y9 U: H4 L, z O. V" V, K
- (SETQ SSL (SSLENGTH SSET))* {9 u3 {! a* O; P$ ]
- (INITGET 4)
$ C- t3 w) O5 D3 j( S1 e - (SETQ NET (GETREAL "New width : "))
. h# ^7 O- E' M P+ W. u - (IF (/= NIL NET)3 e# D+ U2 ]) Z6 h
- (WHILE (> SSL 0)! I6 z+ y% d" A4 z5 b/ _& }
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))8 z& N& X- q8 ~* K4 x" d0 ]
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
( G y) R4 ~* ?* s8 e - (COMMAND "PEDIT" M "Y" "W" NET "")
* G5 j% I. K' u0 T" Z" _ - ) 4 N! L; J. R1 c3 a, d( {$ X1 \
- )
7 F6 a& p- i+ `5 p# Z! X9 S8 d - )))% v6 h3 H& j9 w2 {- u! C: K5 }5 h) H
- (PRINC)3 t% y# [* r6 x4 `* I
- )
P& G* Z8 `+ d* [6 _/ F
/ v) R o* Z* E$ `. S- (defun C:MML ()4 \* C5 ~* j* ]) b; T/ q) A
- (princ "\nSelect objects to move to another Layer.")
0 |. B+ M$ i, c9 U - (setq ss (ssget))7 S( }/ ~, Z, v/ M
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))6 `/ ]! F& n' H+ t
- (setq counter 0)
/ e" v0 z, X6 {+ p! U& x6 |# } - (prompt "Moving to layer.....")(princ ul1)0 k. F0 } {4 Q2 `0 E
- (setq e (ssname ss counter))
6 |% @' F; r6 l$ f ]/ c* {! s0 i6 q% @ - (setq l (cdr (assoc 8 (entget e))))( }1 y: y- D7 X7 F. O L i
- (setq S (ssget "X" (list (cons 8 l))))5 R6 O* }( h4 |7 l( v2 V
- (command "CHANGE" ss "" "P" "LA" UL1 "")
/ c1 z! X$ u2 s6 ~6 [ - (setq counter (+ counter 1))7 ^( \( d7 g6 f* `
- (princ)
Q/ q) F: N7 S" `0 C - ) a+ \5 H, Y; l$ L* v+ J, @/ y
- , r! E2 L% V$ E" f
- ;;; ================================ GHI CHU ============================' H# i/ X5 l; u( o: s4 W7 W
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
F1 y. N Z& K0 O/ r$ H! _ - ;;; =======================Thuong Dung Font Romant.vnh===================; L6 @7 s) B0 Q3 T
/ p2 L* J$ e/ z5 H! z- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
$ g9 n7 }5 P% h7 y- l - (setq oer *error* *error* err2)! I q( \! c9 |# p* f$ W
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
" z+ C9 o4 G2 i: I2 R- s' v - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))' ^* t g0 d% F: c0 F( R2 G
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))( W: k) r4 m1 k. X$ v3 m$ z
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))3 E/ t% c' r, h% A. u+ }
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))3 x; V/ W/ [; }7 i
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))" U% i- V R. u+ ]$ ]
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
# n' `9 `, F8 y - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))' C' S1 O% i: V/ n
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
# B7 _& U4 E% q2 R/ i - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
4 t( @9 m+ F& Q0 k6 ~7 ?/ A
6 @, W2 ~) J: V! Y& ?/ W! p( p- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
; D3 G A) @5 m( n& M' i. S0 a/ _8 V - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))# {/ j" {3 t4 g1 w
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp")). D4 c* B6 i: X& B5 H' d
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
3 P4 ?' h; h) _7 `: \2 U - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
- d$ W& z( |7 T% b - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))9 t5 f+ {9 C& q# F. U
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))- o6 n G9 j. l
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
4 o0 w7 X* ^9 j7 ^2 F& m$ n7 g - % B0 S$ C( |5 b8 ~6 _
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))* [, m; O' t5 [: Z2 }9 t
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM")), m' n8 Q% I+ b
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
* s) J5 c( m& ~ - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))" P$ K: X) | d! Q: o% W2 x
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
1 A; _ R# l, t& s* |' Z! D - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))+ m1 E% U( C6 ~3 r) v2 K
- (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
4 R% u. w7 G3 b% N; F - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))3 x) h& |5 b# K; X7 r* U( F r
- (setq pta (getpoint. s9 j D1 A0 x2 I
- "\nPick first corner. : "))2 ]2 g& V3 X. R4 v/ u& q' ]4 E- U
- (setq ptb (getcorner pta7 T2 {0 J, P6 M( R* w C5 s0 B' [
- "\nPick second corner. : "))
3 e8 K% f2 D v/ R8 u( @ - (setq ptc (list (car ptb)(cadr pta)))
9 r; e+ h/ W5 {2 z: A - (setq ptd (list (car pta)(cadr ptb)))' T/ k$ w0 O, m5 [3 W( c! O
- (setq ang (angle pta ptb))
& e6 |. D) w* t( w7 @ - (setq d1 (/(distance pta ptb) 2))
0 b S/ z1 ?/ Q( `" U% V0 ` - (setq cp (polar pta (- ang (dtr 0)) d1))5 _. `" h9 |' y* z: O6 [! i" e3 ^
- (setq X (distance pta ptc))3 ^! v9 B3 h& v9 n
- (setq Y (distance pta ptd))
2 B1 x7 m1 q8 K) O% i - (setq X1 (rtos x 2 1))
$ b1 d# P" \7 H8 }" E - (setq Y1 (rtos y 2 1))
" e$ f) B- F$ h) u( O - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
3 L$ m# X: ~ S* V* { - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
# M5 `$ o$ B* p, g - (defun dtr (angg)1 @& m) ^/ w6 ?- H
- (* pi (/ angg 180.0))); F9 H; L' Z" L( B2 R
- " P/ H, n, D+ r' f8 D
- (defun c:WS (/ pta ptb rmsz pl1)
# y7 x. M+ ^9 j% h - (setq oer *error* *error* err2)9 {. x1 {+ L7 X8 E$ q
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P)."), Z* ^) ?1 _% C0 D( ^, P
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))1 R# i# k5 A% _3 o3 @( t8 O
4 w' d% e' k) n+ U& R$ |% `; J9 y" W- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))3 m+ y' E0 ~% f" x( c/ Y/ k" {
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
) L' y1 d# Y% f- H3 T) L: ~) o - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))$ W. n0 u# d1 \5 w/ S6 S. @
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
# ? Y% V, ]0 H; |1 W - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))1 j# K0 s$ O6 ]" v7 K# g
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))$ J, R" Z6 E$ Q3 j: L% ?4 f+ _
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))' l Z3 S1 i1 \* H* G6 L
/ ]+ ~" A/ Z: T0 t: ~) o( o; q- (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"))% i. P: r9 K2 f" g6 r3 n
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100")): ~* ]% g* m# |3 \- d p* n/ ]
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))% V/ I* [/ Y$ E$ g9 V
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))0 _3 q% z0 X, ~
- (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))2 b- k" X/ S4 {. K; S' r5 p
- (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"))7 m6 S R1 u# q) ?# U: r
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))5 ?) E x" \, l8 M: S
- (setq pta (getpoint8 E) E) `( y- d/ z/ j) P4 X3 P
- "\nPick first corner. : "))
" w6 _( Y) H7 u* c9 Z - (setq ptb (getcorner pta
% ?4 {1 T% U. L: s+ u' ^ - "\nPick second corner. : "))
3 R$ c% Z; t1 |7 P. [ - (setq ptc (list (car ptb)(cadr pta)))
; z8 V6 [/ X% L5 m - (setq ptd (list (car pta)(cadr ptb)))
& H9 k: U J) b9 R- f - (setq ang (angle pta ptb))# _7 \4 F8 N! L _$ J; j
- (setq d1 (/(distance pta ptb) 2))7 C. _7 @( i# K! G9 r6 z9 E
- (setq cp (polar pta (- ang (dtr 0)) d1))6 @" D( y7 R/ [# S$ h
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))/ |7 G4 z# ]! s
- (defun dtr (angg)
8 f0 J% F5 Q( a$ J! a - (* pi (/ angg 180.0)))
$ W7 \7 h& o9 h" }* T% K. L
0 A3 Q+ t0 K8 Q) a- T0 g P- ;;; ================================ GHI CHU ============================1 k" p1 i" V2 [! q9 w5 ~
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
, B& J9 a7 A+ j: l7 J - ;;; =======================Thuong Dung Font Romant.vnh===================" W% ]& g2 o4 }
) i$ K! g- q) {! Z. I8 _8 X! z9 V- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
2 v. D4 W. w7 o7 l9 _5 w - (setq oer *error* *error* err2)
( H/ W2 ]: _1 E, q - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")$ [" P8 B- G$ j+ B
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))( J, N5 k! S+ O2 |* J
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))) P# E( A0 ~1 S/ \: B
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))1 }# `/ q1 v, ]
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
5 h5 X$ m. G8 ~/ f0 h - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c")), }" j2 H, F8 v" o& W1 o$ C: H
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
! m* a$ t5 @: A- Q- b) b& A - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
, y6 m% q6 M Q - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
% @+ l# c: j2 u5 Z' l - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
@: E% l1 A0 {8 i( ? I - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
5 R/ k U& A% h9 m& w, M- ~% r8 z - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh")) \; x f7 [- B; c4 c# v% o
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))& n! X' z9 l6 {( F) `
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))- V& @( l2 ^! p, b i* M- o
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
" V6 K+ w, s' r. x% H2 \& i# n4 ` - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))8 q: J D. b8 M' U
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))6 C2 E' I9 r8 `" B
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å")) " j, {1 h$ z, @" x8 S# T
- (setq pta (getpoint
N$ A# y& D) b6 ]: [# @1 h4 }8 N - "\nPick first corner. : "))# j# @7 v- n: S
- (setq ptb (getcorner pta( x% J# [; r6 k
- "\nPick second corner. : "))4 V9 ~( u) b4 N6 T1 B7 `9 k3 M
- (setq ptc (list (car ptb)(cadr pta)))+ n# r; |9 c5 r3 A" i4 e
- (setq ptd (list (car pta)(cadr ptb)))
9 [; c5 s" E7 v2 w A - (setq ang (angle pta ptb))1 K5 _! E# ~4 r1 \
- (setq d1 (/(distance pta ptb) 2))* d% D/ C4 j5 ^8 b/ C0 a; v3 y
- (setq cp (polar pta (- ang (dtr 0)) d1))
. o9 s7 l. R! B0 I - (setq X (distance pta ptc))! ?7 x0 r3 K) V: O$ i' M- d2 {5 M
- (setq Y (distance pta ptd))2 {# o1 i8 E3 ~! i7 G' x8 Y* `: S
- (setq X1 (rtos x 2 1))
: _ k9 S" ~" t& m$ h8 }' z - (setq Y1 (rtos y 2 1))# D f; G& @: O
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))! k1 O; h: f' e8 ^+ S
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
* l7 _7 r0 I0 a5 w, ]0 x - (defun dtr (angg)
" f( c* E3 W. V; ^ - (* pi (/ angg 180.0)))9 E& g9 |. I% G% J* s
/ z8 P. B' u% @* }. Z9 v3 l- ;;; ================================ GHI CHU ============================% B6 F! L0 x ]/ S4 U0 ?8 w& f" B
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
, R; y' q" y, B j" z; `0 ~4 M( } - ;;; =======================Thuong Dung Font Romant.vnh===================, K9 b9 ^- C- T$ W$ X& j+ M
& [ H0 t, B# `9 c$ _- (defun c:GS (/ a b c d)& y, y/ j; ?* c( u+ ?; @2 v
- (graphscr)* L. O$ j* z0 p9 G( ^# h
- (prompt "\nSelect text to set style....")$ i1 T$ p) a! ~
- (setq a (entsel))
% |1 a. K1 q9 b6 b - (setq b (entget (car a)))
) i, L9 F2 O7 F2 } - (setq c (cdr (assoc 7 b)))8 V! X5 ?$ X4 F9 E2 ]
- (setq d (cdr (assoc 40 b)))4 E# i1 I+ M; U, E
- (command "style" c "" d "" "" "" ""))! u3 k5 I \+ Y
- (princ "\nType GS to set text style.")& o' M7 ^" |, i8 b) r" H/ Y
- k/ G9 J) U1 U8 U: h! ]- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
( Z- g5 m& G* C7 _/ z0 ^ - (setq olderr *error* *error* myerror)
- I. G1 ? r( p7 y1 w - (setq ocmd (getvar "cmdecho"))
; Z9 G. y4 R' V+ X - (setq oblp (getvar "blipmode"))
' ~9 X/ V0 Z8 ?4 V) G* Z' v! K/ p - (setvar "cmdecho" 0)
3 H, n5 J0 U5 g, ? - (initget 1) ;3D point can't be null5 N0 o# B# u5 X6 i8 C3 `. Q& t
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
8 z5 s. ?1 d) k0 k- _; M' i# P - (setvar "ORTHOMODE" 1)
% {3 b3 O6 T* j# n: C4 D; u2 V - (initget 7) ;Length can't be 0, neg, or null Q- E% J! o4 _3 J
- (Setq l (getdist pt1 "\nLength: "))
- Q, |+ L( q) z1 O. w3 w - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
/ g3 ~2 D' c& K$ Y! ~$ W! X9 | - (grdraw pt1 pt2 2)0 k4 C2 u4 `$ S8 Q. D' V/ E- C* a+ V
- (initget 7 "Square") ;Width can't be 0, neg, or null# [% l! d3 K- T3 E8 d9 C
- (setq w (getdist pt1 "\nSquare/<Width>: "))
# e0 B& a( h0 N/ H1 X - (if (= w "Square") ! X0 Q' V1 C9 q% P2 x! z0 g& Z3 G
- (setq w l)
# M a( n9 g: A: W. ]2 p - )
+ F2 { o/ k7 Z% v8 s5 B - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))1 i( |% P* F( r& {2 ^2 o4 f. @) x
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
8 h1 ]$ t$ U% J+ d - (grdraw pt2 pt3 2)
$ S6 q- V7 B* C8 z! V - (grdraw pt3 pt4 2)
x) y" M/ T0 V* `* `6 K: `' p. I' O - (grdraw pt4 pt1 2)
) P, T3 o& T* x* O2 |: Z - (setvar "ORTHOMODE" 0)/ x( \, k& F9 D% U' ?
- (command "pline" pt1 pt2 pt3 pt4 "close")5 v* a( U0 m5 [9 k
- (setvar "cmdecho" ocmd)
" X! `4 l, q2 h - (setvar "blipmode" oblp)- s% X% o0 j' _+ t4 M
- (setq *error* olderr) ; Restore old *error* handler
' f# }# p x) P4 h. T, L) z - (princ)
# \: b& [8 e+ m7 j2 t - )3 d) \) D* O8 m- v3 m) L
- # p7 O: l t3 s$ A
- (defun c:SG (/ ent pt1 pt2 ang)
9 B# c( @5 L4 b% f5 B8 T - (setq cmd (getvar "cmdecho"))
5 O, B5 t' Z6 a& @% T! _; P( W - (setvar "cmdecho" 1)
+ q. b4 K3 @) R$ a- O - (prompt (strcat"\nSnap angle will be set to angle of line"))& O$ R i4 O7 y$ A, O0 t$ e# s/ k
- (setq ent (entget (car (entsel))))
1 {( u6 K2 B5 K( ? - (setq pt1 (cdr (assoc 10 ent)))
; z. \ k/ V6 d+ @) x9 D - (setq pt2 (cdr (assoc 11 ent)))
/ |- Y5 l: E: } - (setq ang (angle pt1 pt2))
5 y$ t% J8 h7 O2 j# | - (setq ang (/ (* ang 180.0) pi))
& U$ l# k% n1 j8 O3 l - (setvar "cmdecho" 0)
8 l7 G& p" u2 q. C* A, J - (command "setvar" "snapang" ang)
. e8 S+ c) C& n7 N# U% }5 y - (setvar "cmdecho" cmd)
: ?% n# B/ g. n- O! D0 [ - )* S$ {0 l1 c5 n$ `0 l% L0 i
; f+ G5 n6 Y1 M5 \2 e2 I- (defun C:TG ()5 K2 s. I) t5 c/ A R/ W& t+ A
- (initget "Increase New")
$ V$ g3 f2 O6 v1 O A# Q' G - (setq ans (getkword "Increase/<New>: ")): |) D& v# n) p/ F9 B
- (modang)
2 o {- M z9 y0 O1 X6 a! @/ \ - ): m% R9 o. q4 K: i9 o
- (defun modang (/ ang ss ca e na ssl)/ S( N: y( a% y$ o
- (if (= ans "Increase"); | I9 @2 m" o% O) y" i) f
- (princ "\nIncrease angle for text by: ")
- s- u' f- D2 k - (princ "\nNew angle for text: ")
8 }3 Z# n ]& w% A' q' O& K$ X8 W - )
8 F# A' u, {( a ?' P - (setq ang (getreal))
" j2 R) d+ ?# T: ]- W - (setq ang (* (/ ang 180) pi))3 L. ?1 T K' b- t3 w( ?1 Z. k
- (setq ss (ssget)) M% L- Z' `! V, h; c" \
- (setq ca 0 ssl (sslength ss))
$ O3 C9 p- g4 {# [6 Z8 g& T - (while (< ca ssl)6 D! j8 x: ?. R% Z; q$ i" p8 W/ _
- (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))4 D V+ R' i+ {$ a* e: a Z6 T
- (progn
0 I0 V8 Y/ \, P - (if (= ans "Increase")
6 s0 x4 U+ q2 S - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))9 R/ {5 ~; A& |
- (setq na (cons 50 ang))
/ m* z. T, @& E9 I% @: ] - )
0 ?: e# p3 ?* g" m1 V! K - (setq e (subst na (assoc 50 e) e))
& M( w- c, l* O - (entmod e)# Y& G7 k6 S8 Z
- (setq ca (1+ ca))$ a8 v" D7 w7 [1 K+ S/ b8 s A3 V
- )" ]8 S: F; F- R/ e1 Q1 I. s* {
- )) U& f+ u( A; k7 U
- )
8 o6 L+ x& I& B/ L4 g - (terpri). t& S; @3 E, W, r6 V1 x. W
- )
4 c5 L" B$ R, A# s2 | Z - 1 X$ i2 B. e3 V( H+ d
j3 S- }8 T$ J" t8 n- (defun c:WL ()
# C/ m9 w4 b. P* R" [; S+ E) Z1 [3 A - (setvar "cmdecho" 0)
" M4 U: ^# m' g8 w: y4 Z - (setq a 1)
- q7 W0 A+ `( [& w - (prompt "\nSelect Polylines to change: ")$ O2 L5 k5 h1 S( u9 E) u
- (while (/= a nil)
* R5 L; x4 k* G1 D - (progn
/ E* @. P; Y1 u9 @ - (setq a (entsel))
# v& Q* y+ @$ a, i" n( m - (if (/= a nil)
) A8 w" `. m$ c. u - (progn
( F- N) `) g& W5 V1 } - (setq b (entget (car a)))
2 n; K. t3 ~# m* A - (setq c (cdr (assoc 40 b)))
$ \$ l+ w- `9 e! B6 R: K/ ]. { - (princ c)
- I5 G* g. [$ w. |: o- | - (command "pedit"a"w""lw""")
$ ^5 |% n0 b, p9 Y' ^7 X: ]" w+ p - ))))
0 Z# m7 T4 N5 J - (princ)9 ?# W4 Z" _7 d2 ^ U
- )
8 _, y, t: s5 b* x0 _; q2 g+ j
, N, Y {. O7 q) c5 w) b+ l7 b- ;;; ================================ TEXT FIT ============================& a7 Z# d' j- \* c% D
- 8 ~. N+ Y7 R: I, O
- (Defun c:FT ( )
" O; b# `! k( C0 A7 n - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
: K; }7 A, f8 S. ` X5 R$ }/ Y - (Defun LL-xyz (arg) (CAR (TextBox arg)) )/ K& O4 l9 m0 @. y. V
- (Defun UR-x (arg) (CAADR (TextBox arg)) )9 F5 v6 s' q# b4 r# E6 C5 ^ D* U
- (Defun LL-y (arg) (CADAR (TextBox arg)) )
* C- c1 A8 K: b) F5 J2 V7 ^1 x, @ - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )' W% }* W3 q- a5 x5 r: Z1 _$ c
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
$ l! y0 k8 D5 |: g - Textent (If ename (EntGet ename)) )
* a; h5 B) L: x - (If (= (CDR (Assoc 0 textent)) "TEXT")
' h( }: w' _1 ^& s1 c: \9 {! u7 o - (Progn (initget 0 "Start")
# z: G/ L( U5 \2 W - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )" K. e$ d- C; U2 d, Z* n
- (setsnapang Textent) ;set snap along text entity
9 Z; `# t- |+ o0 O2 I9 a - (setvar "ORTHOMODE" 1) ;drag along the text
1 h5 _6 z* ~3 P3 {" a# _ - (setq 7 I: p7 H6 A- v, N" Z! g+ Y
- TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
# o0 W- M }/ I - (setvar "snapang" 0)
! Q0 s6 n( ?, _$ p! O* t- N - (cond
: R4 ?1 J9 e5 M9 k - ((= (type TMP) 'STR) ;;new starting point to be selected
( T# f I% x) @# ~4 c# |& { - (setq Start (getpoint "\nPick new starting point: "))) x( T7 P/ d9 x* m$ m+ S
- (if Start (progn
9 c9 |# m* R8 i$ F2 L2 {+ {. `% ~ - (command "_UCS" "_E" (cdr (assoc -1 textent)))
! s" a y$ p- M- t: R: L3 m2 |! C - (setvar "ORTHOMODE" 1)1 b$ Z0 a. k7 U% J& f
- (setq NewPt. b7 l( F3 u6 q; C! b
- (if Start
: E' n7 O% w4 k4 L r; ^. _9 ?) n - (getpoint (trans Start 0 1) " ending point: ") nil ) )
! g# N2 r K) M: j$ I0 g - (if NewPt (setq NewPt (trans NewPt 1 0)))
! m& ~$ }& p6 m9 t F - (setvar "ORTHOMODE" 0)
, U1 c1 \0 C y% c# c1 x( N - (command "_UCS" "_W") ) ) ). {" o3 ]7 v: F5 D( t
- ((not (null TMP)) ;;new ending point selected$ p2 {7 j/ X, \6 w2 d) ]0 l
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )3 W$ n) m' E3 r! {6 o3 R
- (t (setq Start nil NewPt nil) ) )7 }' V& T, U" p, ~+ F3 [
- (if (and Start NewPt) (progn, d) c' T% A$ E) l8 \+ a
- (setq Val (Assoc 41 Textent) ;;current width factor
5 c0 |0 I& v2 ^4 H8 O7 @$ X - Val (if Val (cdr Val) 1.0) LTC_%
L7 _) m) w3 G; f } - (* (/ (Distance Start NewPt) NewEnd ) Val )
# ^1 |% W( R% f: c - textent (Subst (cons 41 LTC_%) c. h; Y2 p- T, S
- (assoc 41 textent) textent)
7 c9 ]: [" {4 Z- ]! c+ K2 R - textent (subst (cons 10 Start) (assoc 10 textent) textent)3 K* S: A0 v4 u5 j @
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )8 ]* _% Y) S6 W) X* I) L
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))" U1 x8 R0 Z" U
- 3 i9 r! |3 d6 d& f; U
- ;=====================================================================
; e2 U# X. Y; O$ S/ \# J4 f - ;=========================COPY + ROTATE ==============================
: ^7 ?9 `# {* H: O4 ^8 j - ;=====================================================================
7 N4 \: l+ J+ g, B2 h& l8 @ - 2 Z6 ^- q& v5 ~( ]4 u3 R! z
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2): x5 p3 t$ f2 A5 ]1 z
- (setq olderr *error*
5 F5 W6 D/ \0 X( g: O - *error* croerr). v* x9 @5 H# ~
- (setq cm (getvar "cmdecho"))
2 m: h6 a' ?( p- ?4 S - (setvar "cmdecho" 0)
1 i# y; G8 l9 I/ ]6 p# T. l - (setq loop t)$ c/ K% i& z' G7 |+ c' u" q1 k- ~
- (while (not (setq ss1 (ssget))))
: E# |0 X4 ^7 d0 q - (initget 1 "Multiple")
7 z. x: g1 O2 N - (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
) r- ?8 K: J4 a# I8 ` - (if (= bp "Multiple")
. [4 y% c7 u; f0 b6 I# w3 [2 q7 ^ - (progn
) E1 P: B7 V5 O6 ? - (setq bp (getpoint "\nBase point: "))
! z6 m+ r' ~5 T; y; Z! H - (setq mult t)6 C0 E: Z1 ?& S1 L
- )7 { y' @' s, V" V2 a
- )) m4 I: d( G! K9 c; ]1 T
- (while loop
1 Z& k: f: T& C7 x8 Y8 t - (setq loop mult)% l& I: T1 O1 w, }# H2 C; i
- (setq lent (lastent))
' {- I5 z3 Z3 M' } - (command ".copy" ss1 "" bp bp)* E$ c- H8 A4 v: s! o& D
- (setq ss2 (lss lent))
3 w8 C( C* {& ~3 Y* x) K( I% ]6 U - (setq lp1 (getvar "lastpoint"))
1 h. b- |: b) j1 p |. E - (prompt "\nSecond point of displacement: "). m; ~8 |5 \* q r
- (command ".move" ss2 "" bp pause)5 [% h7 F0 t8 R6 [0 c$ q- {1 h/ f) X
- (setq lp2 (getvar "lastpoint"))
, u& \2 t) {3 v+ a6 O+ Z6 C - (redss ss1)
+ @9 q) M' E& b' d4 | - (if (and (not mult): g! g$ l& C% G( }: ?
- (= (distance lp1 lp2) 0)' A6 h) v( _' q
- )
" p; E0 S0 N t+ G - (setq lp2 (getpoint "\nRotation Point: "))
' {9 W& E8 o3 |7 b$ P0 T - )' j$ O2 o- b. y8 j
- (if mult
( S' V4 w3 Q: \4 j* k3 ^$ Q* f# k. ~* m - (prompt "\nRotation angle "): f; u/ S: b9 T
- (prompt "\nReference/<Rotation angle>: ")
! g# @( I% i( _( e8 L - )
$ h1 l0 _; N$ o, i - (command ".rotate" ss2 "" lp2 pause)
2 `% m9 r4 \6 c1 O: o& _# ^ H - )
! L, s. s$ A$ g2 }" _0 r; M - (setvar "CMDECHO" cm)
* j# u: t% r. l# ^' N# g4 E - (setq *error* olderr)
2 D% {+ C G0 G( r6 u/ q9 [' K - (princ)
" b! V5 ]# o2 _ l - )
6 [( p/ n' d+ R - (princ)) S9 k- O: C3 _
- (defun croerr (s) - S$ C/ q0 s$ S% H% ~/ }
- (if (/= s "Function cancelled")
6 n& W( H4 b# d0 a3 b - (princ (strcat "\nError: " s))
% b' [! b: u H1 c9 ] - ) - ^' b% W# c9 M
- (setq S nil)$ Q/ R1 d. g% m: U
- (setvar "CMDECHO" cm)' ~" o( k+ @3 r% Q$ r0 G4 f, `
- (setq *error* olderr)( {" c9 F5 {$ ^! x7 I; Q
- (princ) t8 t5 Q+ ?8 f- T) ?
- )) d) k( F0 ~4 t% X5 F
- (defun lastent (/ a b): U @! c% H3 K1 |; F, j, b; ]
- (if (setq a (entlast))* P8 D( ^1 D; x& L
- (while (setq b (entnext a))
) D$ s* o- l) C: U% N: M0 K - (setq a b)
4 N4 A B$ X9 r# Z - )
- I* b u; `$ Z& i- y3 X - )' e5 {- h6 d0 n
- a
9 }' N x6 Z4 h, m9 ^* R6 I" @8 e - ): [( Y8 E5 {, I/ u6 h* E& b- B6 s
- (defun redss (ss / en i)
) H6 N8 h9 u. [4 W; ~4 h - (setq i 0)
1 R( O% N! q6 q. P1 C - (while (setq en (ssname ss i))4 ^6 g S% V4 |' n/ m
- (redraw en 1)& X( }1 {" V. {
- (setq i (1+ i))3 [: p! i$ ?" ^8 g$ j
- )- b! `+ c2 n* b5 V" b6 j
- )
9 U( m# @) ^4 m/ p - (defun lss (en / sels ed)# C* q% p$ [5 I. u* @/ e
- (setq sels (ssadd))
! k, d( l: [8 j5 h/ M - (while (/= en nil)" w3 f( F& w1 p0 }9 P" `( v
- (if (setq en (entnext en)) (setq ed (entget en))) [) I; z8 I3 j0 m% z# _: F# i* x
- (if (/= en nil) (setq sels (ssadd en sels)))
7 X! [! i" c; ^8 S; q - (if (or (= (cdr (assoc 0 ed)) "Polyline"). r5 O% W* h T7 ?7 M: b$ q
- (= (cdr (assoc 0 ed)) "Insert")
" k' f5 I7 v: a - )+ `. `4 v* \; `* H% N1 S" R2 h
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))' J; s5 R+ P: l) p9 x1 z
- )
2 l% \. {% r9 l' P: @ - )
4 t' h, a6 B( Y( u5 w* A - sels1 i* @0 w$ X# i- K# S/ f, E+ m+ S
- ), h6 F* l7 v4 B
4 ~$ k6 C+ j, i( W V4 \- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================7 M! m9 X3 D, n6 ~- U! j+ p" m
- 0 v$ K1 `# z- n2 B* G: R
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
9 c- i2 q9 t z {7 ?1 v - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
0 v' ~" [# j! W7 F R - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))* O# ^# n1 h, H) L
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
( l# A5 i- p2 U; c' j9 w7 s - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
' }! s# k: H+ Z6 W - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
5 N4 [% [, T! k, J3 } ?' f% o - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))) j6 L, t \" i
- (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))/ \/ t! [/ F( I. y3 ]8 V
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))
" @5 b& V+ B: n3 l' n% ] - (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" "")); {! h3 I: x- n
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" "")): j6 }1 h, s! ]$ S% |. m
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" "")). g1 O- f* I: I; g$ n2 @0 C
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
" S* E' k# _. @" A/ l( n - (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))7 [- Q' [$ t% d' L
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
; ?3 I. B' H) w0 Z - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))( W& S1 D4 d( d2 c: S, C
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" "")). l1 E, [/ B5 R, N9 n1 g5 F+ S
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))! _, P' I; T; I9 p/ Q8 A
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
+ c3 u7 ^2 W! h$ R - ; p( d+ q- X# P C- q( o( \
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
8 ~4 e$ m* Y) M+ d- [+ Q8 y
# t4 b( `% k+ g+ Q4 b- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
0 ?, e( f3 C# O) s+ R
s- y$ n* }6 h5 Y; |$ p; \4 {- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")* [) N: d/ c$ `0 a4 C, @" Z
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")- g8 `" s* p8 a: P
- l+ `0 v- r+ o- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===" h' H, K* P( {0 f5 |2 x% \- i0 b
! x' V# I$ R! \8 [5 J) t" @4 h5 x1 t- ;(DEFUN C:netxuatanh ()
4 |4 G/ b/ L( W - (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
/ Y6 o& e+ D0 S - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
' L2 K0 f, x2 }/ s. Z- q - "M" "MANH" "C" "9" "" "Lw" "0.5" ""! \& ]2 S4 f1 ]' @, V! H
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""% Q2 A, F; j0 r( \* Y
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""
$ [3 Z+ X P6 i: e& k - "M" "THAY" "C" "7" "" "Lw" "0.7" ""
: N2 K) f" B/ _$ F% i+ B5 |$ y - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""8 |$ G# C; f! `# L% @
- "M" "HATCH" "C" "5" "" "Lw" "0.35" "" W. ?! J0 _8 M
- "M" "COT" "C" "2" "" "Lw" "2" ""
4 y& H- a7 P- A - "M" "Defpoints" "C" "7" ""# D6 Q& [) d2 T h) k
- "M" "0" "C" "3" "" "Lw" "0.5" ""
2 |1 h; e" p, b# S- ]2 {3 j, n+ F3 e- ` - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
2 n# q: z6 L6 R$ C - ; "M" "2" "C" "31" "" "Lw" "0.5" "" e& @6 U+ k5 y2 F+ ~
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""( V) A+ d! v8 u# v/ s$ y
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""
( ?, B4 A9 p2 f, b4 U - ; "M" "6" "C" "6" "" "Lw" "0.35" ""+ ~5 ?$ Q, N1 S3 j, f! v* _
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""
4 Y. _1 l2 h+ p/ z6 Y- c - ; "M" "8" "C" "8" "" "Lw" "0.35" ""
4 Y7 F1 h1 j' U# k/ B3 A" ~ - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
, r0 U+ _8 b) i: ^8 U1 t& q& f - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""# l% V* Y8 E: f1 p x
- "M" "KE" "C" "8" "" "Lw" "0.3" ""
2 l6 C z& u; u) k: d4 | l - "M" "KT" "C" "9" "" "Lw" "0.35" ""
* z/ G( L3 O0 r0 u+ G - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""+ v8 i/ n; t& ?6 |8 z$ p, M3 n- f6 g
- "M" "NETMANH" "C" "43" "" "Lw" "0.5" """ ?' E+ D7 w& N$ s' O
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""
- ?3 j: X' U1 ], I6 x7 S - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""
# L, ], V$ j' ` - "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
8 t9 q" w% j% w% ~7 W - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
; r' \& Q: R' b, r& i; W - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""2 Q: g3 f; {/ s8 [+ `" @$ I+ g; @% f& n
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
( }# M9 M& b7 K/ n( o - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""3 `' d" H9 b+ n( {0 Z; k& J+ q
7 \+ ^, Z1 K( G/ N; ]- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
6 n+ E( {1 w0 Y3 `7 A6 E/ I+ B - " W- c: ~: O2 X7 |7 x
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""* J1 T% m/ S, N0 D
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
. L5 o ]) X& N% P; S9 { - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
. p. {: O- {& [% q' m - ; "M" "250" "C" "250" "" "Lw" "0.35" ""
) e1 r6 r/ ^3 M8 l/ v - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
6 \+ n y, {+ Q% t# A - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )3 H0 {# L: T2 G& M7 B$ h( [
- 3 ?; f G) V; o, p8 k6 e2 j/ I
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======- m0 Y4 _2 \0 Y [. x" t2 {+ A
- ;===================================30|04|2024==============================0 ? T2 Q: ?9 Y
- % e$ F- k* I5 _2 ]9 z
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" ), h- n+ B$ M( l+ r" E
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
; l S6 t8 E# q/ N( l5 }0 S' D - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )
& V/ Q/ E2 i) k- H, P( w7 B: S - (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" ), w( y4 p$ X% U' L. z
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )* Y! e& P/ g: t( C. R+ E
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
1 k% v8 D) ~4 l2 G. h; L - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
1 M! g. Q0 R0 s% Q2 l - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" ), z! p% {6 S9 z' ]: d- m
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
: z. q0 e$ @, A- g C ~ - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)$ ~8 C* ?+ U; i+ C+ a
9 J+ C. g: z5 y! i( g- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
* D$ w1 R" D/ \6 X+ K+ q; d( u - ;===================================17|10|2024===================================
! }+ Z" ?, K+ F4 E6 i7 _ y2 }) ^ - : X" |) Y, K# G* M" A/ L8 Q
- (Command "DIMTXSTY" "ROMANT-DIM" )
1 ~2 T6 s' y+ c, Z - (Command "DIMBLK" "" "Closed" )
8 Y0 l, [- f( |& P
- F# l) u' m: d! e9 N- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
! z' ~/ b6 C8 y' z( ^ - ;===================================17|10|2024===================================4 S# E/ r2 m$ ?- ^4 E7 N1 m: n
- + `1 C3 d+ b: _5 x8 U- M" X6 @5 w
- ;(Command "-units" "2" "8" "1" "8" "" "N")" H/ d; B, e& s+ A
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)
) X7 ~" q2 I# [; G
" D. y9 P5 |7 X: K- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE= F* ~, Z. r$ \, o9 a
- ;===================================17|10|2024===================================
( C7 S! M1 h; R1 g! ^; \
, v4 P# j8 O# I: y6 ?$ q9 [: \- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
8 K, g, B& e/ ^/ B1 w9 O4 V
% n6 j7 R8 r; E& v3 q4 Y2 P- ;======================== DAT NET IN & TI LE BAN VE =============================
4 A0 L o# H* m4 U P( g! q* ^
+ E$ Y |; N. k+ F) F' u- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
4 V' _9 ~8 K9 e# L- H5 G0 V! ` - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================ z* G7 W- [, ~" W) R* p" R
- ;=============================11|07|2025==============================
8 k. N+ ?9 Q4 W& C - ;Ti Le Ban Ve - 1 : 100$ [7 O4 ^% y! m/ m; ]/ y
- (Defun c:kta4 ()
% r) t1 u5 q8 R8 h: b {( I; C - (setq mv_sc 100);Ti le ban ve
0 y! s1 K! G3 M6 f7 r* I - (setq x4 297) W) D. p3 u6 g5 O% t# I
- (setq y4 210)
3 @. X+ H( q5 V - (setq x4 (* mv_sc x4)
+ J. p, w' M9 U" P1 L$ E3 q - y4 (* mv_sc y4) )
' t/ O' I l; O3 C. }: C - (command ( L3 {: _6 @2 ?0 i* Y% x9 e
- "LIMITS" "0,0" (list x4 y4)
- |& ^" R- T* z! `4 e# k. M - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"4 h* g# o% y ? ?
- ;Khung CHU NHAT Chinh ; d( {( t0 p! W& X( A
- "RECTANG" "500,500" "@28700,20000"* w" W; s' o- @5 x: |
- "RECTANG" "700,700" "@28300,19600"
% f( s2 E1 ^5 M - ;Khung Ten Chung
* a) N" r6 `2 ]& n' j - "RECTANG" "700,700" "@8000,1250"
* k% |# W) a, f1 a - "RECTANG" "700,700" "@17300,2500"' F) s) ]! L2 s5 A* Q* R' ^& i$ H
- ;Ten Ban Ve+ m, L5 Z- @" d; l% t& J2 O
- "RECTANG" "18000,700" "@11000,1250"9 O( A0 b/ P D% M2 A+ [
- "RECTANG" "18000,700" "@11000,2500" }1 A. C' s; \( S; n7 @3 }
- ;Khung Ti Le + Ngay Thang Nam$ m; K( y; f$ ?3 y
- "RECTANG" "22500,700" "@2000,2500"
- P% z. Y* u5 L( d& p - ;Khung CHU TRI% u3 k8 z1 Y8 _5 [* T
- "RECTANG" "8700,700" "@3800,2500"8 p7 t; x% C+ U' E( g
- "ZOOM" "_a" ))
& A& G# E! _; E9 e, E( s: _ - ;=====================================================================- Z9 |8 y( ?- Z! F
- ;Ti Le Ban Ve - 1 : 100; Z- |# k% P8 d8 E5 H8 p
- (Defun c:kt4a ()
& `, M! ^3 ^+ h$ V, C/ A - (setq mv_sc 100);Ti le ban ve
N2 V! q/ ^ T5 a9 H - (setq x4 297), V9 {: j" w c: D2 U9 d
- (setq y4 210)
: P- Q# p, P3 D5 l( l2 t - (setq x4 (* mv_sc x4) 9 Y7 y6 S/ W3 |9 L9 G5 L0 s
- y4 (* mv_sc y4) )
r3 e/ V. I% V2 q) K - (command
5 r" a( a) z& l$ L3 K. N( W# J7 A( R' | - "LIMITS" "0,0" (list x4 y4)) |6 U6 G' D. G, Y6 ]0 P
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
7 s, A/ r$ r4 z! T1 O- m - ;Khung CHU NHAT Chinh & T" J C9 o% v+ b" Q, P
- "RECTANG" "2000,500" "@27200,20000"# R1 X8 ?5 E& s5 O$ S
- "RECTANG" "2200,700" "@26800,19600"! [3 [5 k$ B3 G+ ^
- ;Khung Ten Chung1 }4 ]$ F3 c0 ]& u) n( e
- "RECTANG" "2200,700" "@6500,1250", \5 y% Y! y6 D$ \! [, K) F% n1 i: `
- "RECTANG" "2200,700" "@15800,2500"
2 A6 J6 K7 y: Q6 d7 e1 V - ;Ten Ban Ve
) I# W! ^3 y- U' j- T/ n+ |* F - "RECTANG" "18000,700" "@11000,1250"
; ]' k1 P+ T2 L2 \3 N' k - "RECTANG" "18000,700" "@11000,2500"
( \2 ^+ D+ w6 D6 ^7 }: U - ;Khung Ti Le + Ngay Thang Nam8 I' J" b. M) T3 t& D% @
- "RECTANG" "22500,700" "@2000,2500"
& |9 S. p7 v' h% t, G2 e7 Q/ ~ - ;Khung CHU TRI2 U" W% P5 n6 M2 G4 O$ c& D
- "RECTANG" "8700,700" "@3800,2500"
7 e( m! e5 _, R% P - "ZOOM" "_a" ))
. W; q9 Z- q. ]* w - 8 }8 \% o6 c, S
- ;;; ============================GHI CHU Khung Ten========================
+ o/ [% a# p# n V - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
; G" _% X6 Z' A, {3 X7 R - ;;; =======================Thuong Dung Font Romant.vnh===================$ N$ W. w# L# p6 X% n2 j9 R
- 5 U# x% D, E/ b' S
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
9 f, f: Z7 k! e, s4 n) U - (setq oer *error* *error* err2)
/ ^. D, v/ W9 F1 v& s8 h - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
" `6 I- N! M# b0 h9 I8 y2 ~ - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
4 ?( Y9 ~7 Z. P2 d3 ^$ R9 z3 N$ q - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
4 ^$ R1 \: ~! i2 U - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
' {; l4 |% O4 r6 e$ X) }- n - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))/ q6 V# E: n1 k1 A; F% R3 E: V
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
1 m1 O0 B5 a: N9 Q( H - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
; f' Z4 X, y2 _2 d) @* U% j( J - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))2 ?; z6 h+ b5 F0 q& X/ O. c8 P- f5 C
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))/ q" e+ E. b7 U3 \
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))0 F6 M3 c- I2 K: _. H
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
% ~# @6 Y2 Z9 P+ r8 c* U4 z% Q" P a - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
$ ?; F& L, K4 X2 @ - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
8 f9 F, W& G6 s1 E - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))3 E$ y& U% n" W* j
- (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
\% ]) w L. B* x& ?: I6 X - (setq pta (getpoint
- V7 N' Z N _+ y: g: x - "\nPick first corner. : "))1 e6 ?# j* Z) | ?, f
- (setq ptb (getcorner pta6 z8 I6 f. b7 Q) w. n! ]" A
- "\nPick second corner. : "))
8 t1 z& b/ r5 t! `1 k" M - (setq ptc (list (car ptb)(cadr pta)))' ?) C# T6 y9 m7 Q
- (setq ptd (list (car pta)(cadr ptb)))- j( Q' }3 O9 i, r
- (setq ang (angle pta ptb))8 M( C: L0 U3 x; `1 P; T( B& b
- (setq d1 (/(distance pta ptb) 2))' N$ e: Z2 r. x2 N' i
- (setq cp (polar pta (- ang (dtr 0)) d1))
; h& i& K' G3 b; {% L" w! p - (setq X (distance pta ptc))/ a/ [; P4 H7 O
- (setq Y (distance pta ptd))
' v7 s* G* `, g3 D9 l; B6 U - (setq X1 (rtos x 2 1))
/ E3 W# v: f% I0 C4 E/ z9 i - (setq Y1 (rtos y 2 1))
& n6 [/ n |6 _3 ^, q - (setq rmsz (strcat "(" X1 " x " Y1 ")"))/ f. r+ u6 A5 m& Q5 N; K
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))" c2 l% s3 ^& G0 n% c) Q
- (defun dtr (angg)
1 o% r$ ^; _3 s2 T5 ~- d - (* pi (/ angg 180.0)))
. e- V: }( i, {( x' Q
$ ~' ^- v& B) s- ;=====================================================================- l7 \* V) C% d* ]- Q
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
3 p+ ?! W F! n, e1 u" I - ;=====================================================================1 H4 \3 Y0 o& [' ^/ Q; D: h
- & F& N4 B, D. p! X# J+ d6 R
- (Defun c:a6 ()0 z0 B3 y+ c8 s& d4 K9 V$ T8 b
- (setq mv_sc 100);Ti le ban ve& ~7 z( o! T% u8 z
- (setq x4 74.25) Z; f" k% Y1 |7 p. Y$ L
- (setq y4 52.5)
% o2 ]- g8 O: ?9 _& ?, W: i - (setq x4 (* mv_sc x4)
$ [ \& P2 T1 C& A. @& ]& f, R" m - y4 (* mv_sc y4) )0 c) h; `+ [( {0 Z W
- (command
$ y' v3 P) T1 b! o6 X' f! g - "LIMITS" "0,0" (list x4 y4)
+ a+ }. p, X. v, p+ ~6 I) ^1 }5 {8 k - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
/ m6 W+ B( T, d2 D- z - "RECTANG" "125,125" "@7175,5000"
& u) @0 N$ N6 P8 h" r5 u - "RECTANG" "175,175" "@7075,4900"/ E2 R6 G8 t; u% j
- "ZOOM" "_a" ))$ p, c- U( z) b) v% Y2 @- ~
- ;=====================================================================
- {4 s$ @+ K5 U+ ^ - (Defun c:a5 ()
; R# E) q; l0 T - (setq mv_sc 100);Ti le ban ve
|* t1 P9 Q& X5 Q - (setq x4 147.5)1 ]1 ~" ?9 a" X+ I2 O0 O
- (setq y4 104)
& A2 r; x1 J& L+ w- U - (setq x4 (* mv_sc x4) 1 a. Z! E, B2 ^0 B) Q9 E
- y4 (* mv_sc y4) )3 p! W* _+ j( H
- (command p; l, a7 f- N" P' ~5 W
- "LIMITS" "0,0" (list x4 y4)
& {8 e- R" w. x' X4 m8 e7 }1 o5 o - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"$ L8 J% j. K$ Z$ o- H. K" g
- "RECTANG" "250,250" "@14350,10000": ]. W' ?. H! X; A! ~2 I
- "RECTANG" "350,350" "@14150,9800"
8 j2 [. f, m# A; m% } - "ZOOM" "_a" ))5 N* |# D" Q! B a9 c! _
- ;=====================================================================/ V" a; T# M/ P: k: m# T( }0 q9 _4 o
- (Defun c:a4 ()
7 y9 ^% z* g, S - (setq mv_sc 100);Ti le ban ve
( v _3 R) ~ b- F$ t! g& X - (setq x4 297)% I! x% ^7 c) B4 F6 w- j3 N0 O
- (setq y4 210)
' \* E& M% j: l. b* T - (setq x4 (* mv_sc x4)
& L+ `/ } [! p8 i3 \' @ - y4 (* mv_sc y4) )
. j# G0 u- V/ R# |) u2 O+ p$ w - (command
5 b3 i* F/ g# z& h - "LIMITS" "0,0" (list x4 y4)
S6 m) K0 H: | - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"8 J' Y9 F0 N" r% i- G& w
- "RECTANG" "500,500" "@28700,20000"
2 R. R) a; d( O. A* t8 N8 w7 a - "RECTANG" "700,700" "@28300,19600"2 ]/ b( S6 I) H3 H5 t
- "ZOOM" "_a" ))
7 ]4 C4 v E2 N8 E, t# u8 A/ V - ;=====================================================================% l" V+ B8 E/ A9 ^
- (Defun c:a3 ()$ i1 e) ~- o) G* \& `
- (setq mv_sc 100)# C4 y% g- l$ P9 ]) m
- (setq x3 420)
' k9 s' n ]. b& s% ] - (setq y3 297)
3 ^# H/ E8 a3 x% S/ p6 g - (setq x3 (* mv_sc x3)
$ @5 x/ ~7 v6 b. D, ~4 i$ v8 T - y3 (* mv_sc y3) )8 v* p) K$ w- h3 ^% v% @; ?2 e2 _
- (command
5 ]1 S4 F: D; o( e9 g2 Z - "LIMITS" "0,0" (list x3 y3)4 {0 W+ S, e, Q; r! `. L1 Q" U. Y
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
}) N$ j8 J8 V: p% o) C3 ` - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
& v+ Q) @1 i. ?" R+ l O( N; t+ u - "RECTANG" "990,990" "@40024.28571429,27720"
. |3 e& [ R' ]2 V2 E - "ZOOM" "_a" ))& I5 p; f$ {( ]5 S% O
- ;=====================================================================. V8 j( @) K( i+ H# y# O9 N$ e
- (Defun c:a2 ()$ T/ V/ C2 K8 k5 Y* X
- (setq mv_sc 100)
7 Z: N' o0 \6 \2 ~2 i - (setq x2 594)- W% D7 p! h: a5 a: J/ ^3 m
- (setq y2 420)4 V& L- V( B4 J+ J* e z& ^
- (setq x2 (* mv_sc x2)
# z4 b0 K# V6 R% l9 ]/ Q w+ `) p - y2 (* mv_sc y2) )" ]: m" R8 G8 o; U& g- `9 ~! k
- (command
* [/ g& j8 P# |$ _, h - "LIMITS" "0,0" (list x2 y2)2 J! F0 c: @8 @; P9 }$ M
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"( L( G6 W! H7 C; a, J
- "RECTANG" "1000,1000" "@57400,40000", M9 [* y: [2 E5 B
- "RECTANG" "1400,1400" "@56600,39200"" Z. {3 |: h0 j
- "ZOOM" "_a" ))4 G' d% ]7 V R" s* P, v4 ^
- ;=====================================================================
8 d- |: a& ]& R: g& R* ?! C - (Defun c:a1 ()6 c' z# k/ I* Q1 ~* p
- (setq mv_sc 100)
# \2 V) n" e. \- [# O0 @ G/ E - (setq x1 840)
) e/ L! b0 _, U. h$ P4 P5 M - (setq y1 594)
7 ^# n3 e5 K% l& Q( t - (setq x1 (* mv_sc x1) $ b1 c' e5 W# ~) T
- y1 (* mv_sc y1) )
. \5 n6 u$ V/ S' H, c - (command * r. @1 Z& j0 w+ m% i& j
- "LIMITS" "0,0" (list x1 y1)
. G1 E- O F; }6 [. Z$ H1 W1 k9 x - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"9 `- @* n( U! e7 y& m
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"& B* \; U: J5 z3 Q* l+ h5 S. A
- "RECTANG" "1980,1980" "@80048.57142857,55440"
2 `7 ?2 G1 R4 z( I% P, Y( h' e - "ZOOM" "_a" ))
; s$ s8 w9 Y4 E4 s1 s8 e - ;=====================================================================+ j. l) z9 r" k: M8 u2 ~
- (Defun c:a0 ()
6 b- D/ p! |2 x4 R) d* ~, B - (setq mv_sc 100)
) R5 x/ {% }$ d0 e - (setq x0 1188)
; Y* d- g" I% X* `7 _ - (setq y0 840)5 \; _3 v* T; A: s* K* N
- (setq x0 (* mv_sc x0) ( s; z# H* p/ H
- y0 (* mv_sc y0) )2 @3 A, K: M/ |' d
- (command 3 e1 M* Y( p+ B
- "LIMITS" "0,0" (list x0 y0)6 w. r9 X3 ]; S t* }7 E' E. H% l
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
" d- V* n2 k$ Y, n) N* h - "RECTANG" "2000,2000" "@114800,80000"# C6 ]! @) x# o7 a, w* M. ?
- "RECTANG" "2800,2800" "@113200,78400"
/ b; P- v: G3 ]) a - "ZOOM" "_a" )): q/ w5 y2 B. ^4 Q; y
- % Y! f. d$ j" v$ v) L' d* d
- ;=====================================================================
* u7 L6 q- G+ O' B: ]* p9 S - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================2 x6 s8 x3 I3 d. K* I$ S
- ;=====================================================================$ [8 a: R# X& S" w
# @+ Z1 }' }: Y8 ^& ^- (Defun c:6a ()
4 s' \( R7 D2 f, f0 M' c - (setq mv_sc 100);Ti le ban ve
: U( G+ L% T9 F2 n4 `8 a - (setq x4 74.25)) S9 y" d" T% n' C
- (setq y4 52.5)) b) z N+ G. K' i
- (setq x4 (* mv_sc x4) ( o G" r. A. [3 d! j, v
- y4 (* mv_sc y4) )
r" B o! R* l0 `- h( { - (command
/ @" H9 ^5 p6 o - "LIMITS" "0,0" (list x4 y4)
9 N$ b. `& c$ w u H: n: s - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"8 O9 v. W6 b- ^/ w1 y- F
- "RECTANG" "505,125" "@6800,5000": }( H5 n a( E3 T
- "RECTANG" "555,175" "@6700,4900"% d7 a( o7 t, D6 n0 |% `+ s
- "ZOOM" "_a" ))# T- Z. z1 f: s: c, G" {1 [
- ;=====================================================================! Q, J/ B9 a% i5 M! ~# k+ V4 O
- (Defun c:5a ()$ Y! N* d% b* H* `5 l4 e
- (setq mv_sc 100);Ti le ban ve
2 H) M( g8 m( M. z$ q - (setq x4 148.5)
b, {# i" R9 D' T, }1 X/ ~$ u - (setq y4 105)
* F5 v6 d S7 x s9 W) f; m: Y - (setq x4 (* mv_sc x4)
' P) X% _* T: C, @3 z - y4 (* mv_sc y4) )* T+ s& c- U+ D5 T5 ]% K
- (command 9 D1 ]8 L' ~1 { f
- "LIMITS" "0,0" (list x4 y4)4 t" a( m) G% l4 B/ G2 W. {% K
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
$ ]( u2 ~* u# s6 j% k - "RECTANG" "1000,250" "@13600,10000"# E5 {$ r$ ^/ ~* ?0 z0 H
- "RECTANG" "1100,350" "@13400,9800"
; y8 s$ |- f3 k' j - "ZOOM" "_a" ))' b; q% _ B" r5 g- L$ }
- ;=====================================================================/ b9 ?# w7 a2 q y3 m
- (Defun c:4a ()" F: T* q+ h6 r7 {4 W& A, c0 Z
- (setq mv_sc 100);Ti le ban ve
# w6 ]; B. C: X; [ - (setq x4 297)3 P! P, T3 y$ p( d8 `/ P ~
- (setq y4 210)) y, R1 ]4 y4 ?; p
- (setq x4 (* mv_sc x4)
5 n9 ~: H+ L/ B) W0 ^# }+ _3 I - y4 (* mv_sc y4) ), t+ \" c8 ~& X' D% {9 m: f' s
- (command . o4 F* O# T: p" H# H2 ^; c
- "LIMITS" "0,0" (list x4 y4)% R5 _ O( p+ m- E" ^
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"* U: U }/ q8 @8 _/ g( m
- "RECTANG" "2000,500" "@27200,20000"4 ~* V! t* ]& b% o2 p1 m
- "RECTANG" "2200,700" "@26800,19600"% j! Z1 C- q% }; e: Y# Z5 z
- "ZOOM" "_a" ))3 `7 z9 ^+ H2 N# k: T$ F* i" d
- ;=====================================================================
4 C% u3 K2 j* y+ h$ L1 { - (Defun c:3a ()$ k7 z. L- T7 j! D2 m% P
- (setq mv_sc 100)( P% [& f; g# t2 @$ w: P d
- (setq x3 420.0428571429)9 ]6 p, S$ }) f0 V$ |
- (setq y3 297)
7 {0 W7 ~. O, c4 Y+ |# f& j8 N - (setq x3 (* mv_sc x3) ; W8 ?+ n* z& O$ q
- y3 (* mv_sc y3) )
' u% i# ?( G# n! I* o: X8 L - (command
; a! Z+ I2 L: p3 c. L2 ~ - "LIMITS" "0,0" (list x3 y3)# {! F7 ~8 w* g4 M
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C": ^4 y/ _+ a" a& T: e" n% Z
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
' B2 F s: ]# r! c# C8 i2 I2 w - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
+ ^8 ?$ S l+ G, u" |$ g - "ZOOM" "_a" ))
; t9 p: j. V* M9 [: ? - ;=====================================================================( o. |% h. S% {4 Q) i
- (Defun c:2a ()
% F8 T( P0 V; k8 L - (setq mv_sc 100)
" {) r. `3 ]" m- k+ k- U8 O- d - (setq x2 594)
. D" L9 S" `0 b0 n1 x. q: o/ \8 k - (setq y2 420)3 U/ T6 x* D- s4 n. c
- (setq x2 (* mv_sc x2) 9 G, t V; C. N: z. @9 r
- y2 (* mv_sc y2) )
% L8 h+ W+ v' Q( @ - (command
& P4 _& l3 N' |) V8 ? - "LIMITS" "0,0" (list x2 y2)
7 Y5 O L. U: M0 _ - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
' i i7 g0 R+ t/ _! ^ - "RECTANG" "4000,1000" "@54400,40000"3 [1 p$ _' {8 Q4 C5 H
- "RECTANG" "4400,1400" "@53600,39200"
( Y# u4 W: Z2 O1 V" b4 o; p+ x - "ZOOM" "_a" ))5 n t$ ~0 R9 n4 E7 G! t
- ;=====================================================================
9 p3 g( h$ o% C* \: a& u5 T - (Defun c:1a ()
/ Y+ T& N8 p# l0 z7 V- Q8 P - (setq mv_sc 100)
$ ^; l% J$ x: l. ?; d& Q: i - (setq x1 840.0857142857)
" X" j8 b$ I3 s! j+ j) m9 r - (setq y1 594)
. ?( _( L) h. U2 |( v, Y - (setq x1 (* mv_sc x1) % J \0 Q4 W" b' ]
- y1 (* mv_sc y1) ), e$ n, m5 e6 Z; }9 `/ \: ]
- (command
, \8 O( u% y. g# M, ?: N: `7 d - "LIMITS" "0,0" (list x1 y1)2 z2 s2 N! h0 n- _% ]% f
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
: ^8 Y5 \6 z7 _) _- F - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
* T! s5 c! U, G b/ g- \' i - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"' R: v* u: m1 @4 a \
- "ZOOM" "_a" ))' `, w6 E; y# W& r! Y0 n) J0 W
- ;=====================================================================$ Q1 M; V! M3 o
- (Defun c:0a ()% R9 p& V. S8 A; v4 s
- (setq mv_sc 100) h3 r9 q; |' n# ?6 H: q" p7 _; e- M
- (setq x0 1188)$ J- x- A7 I9 R9 J6 P
- (setq y0 840)
- V, ?: U! W) G3 g4 y6 d8 L - (setq x0 (* mv_sc x0)
- q& \# P* t/ N/ ~; p/ _ - y0 (* mv_sc y0) )
: _+ ^$ d$ y, Y j6 \8 x6 ?) f5 b - (command
* Q1 Q- a: Y( b, n- l& L. t" k - "LIMITS" "0,0" (list x0 y0)1 H, r% Q$ Z5 G! }( d
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"9 [0 P' j, w- l" t, n* T3 Z
- "RECTANG" "8000,2000" "@108800,80000") O& B. V9 h# m# w
- "RECTANG" "8800,2800" "@107200,78400", P7 G! N" w1 W" ~. Y1 d) U
- "ZOOM" "_a" ))' [ i1 k" m0 q4 Q( ?* |. g) p
& `6 n- P, W. {" C- ;=====================================================================
- c1 M) k3 Q4 ~: ~' e2 h0 {9 o7 o5 H - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================3 |8 a' g5 q* t& e) P; g: B7 Z# h
- ;=====================================================================
G# r2 o4 H2 h8 O' I4 O: f7 X$ ` - (defun c:khogiay (/ oldlst a b c d e f g h kho TL): O7 B% a3 N8 A) n* E+ q
- (command "undo" "be")
" ~ E; R9 h) ? - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
& D/ S, b4 ?. x# {, H2 {' G - (setvar "CMDECHO" 0)) D: n. o. X' O) [8 X
- (setq a (getpoint "\n chon diem chen :"))
' M% E7 `, ~8 A$ w - (if (not TL) (setq TL 1.00))
1 x w& h& p9 b - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))6 _ o" L( m# [9 g; l2 N: }
- (if TL1 (setq TL TL1))2 ]3 G, o# J; a3 M$ n
- (setvar "osmode" 0), {# S4 b2 v) I
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" "")), w# i7 }) @, e) m5 G
- (initget "0 1 2 3 4")
: y6 x& U) k$ y7 } - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
4 r) c7 }& f9 n - (if (= kho "0")
3 j- w; ~6 d$ E, f# n' h - (progn
- _5 o0 {* h% ?( C7 R - (setq b (polar a 0 (* TL 1189)))+ B) m3 Z4 Y o7 K. U+ Q; R; t
- (setq c (polar b (/ pi 2) (* TL 841)))0 E" ^% ]9 o4 x% o6 m6 S
- (setq d (polar a (/ pi 2) (* TL 841)))
, ]4 h" n, E7 G; H- r8 D' Y - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))5 R# ]/ v" A: x7 p; x
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))! c- `1 o# X4 F) U% P; \
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))1 \$ u, {4 y! J6 N
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24)))), Y! H) m- c: n, Y
- (command "Pline" e f g h "c")
9 [8 T' d- _8 Y% K9 H; A - (command "change" "last" "" "properties" "layer" "0" "")
% b3 T K. J. G# S* K& o7 T - (setvar "cecolor" "4")2 t" m& W% ~$ N+ l+ ~
- (command "Pline" a b c d "c")$ f1 S. k) m' }+ m3 Z
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
5 }0 P$ s0 a( G- s0 e5 Z( a - (if (= kho "1")' R, m; t: J/ x+ H* I) c( o
- (progn
4 a! C: O( T* i+ r5 b+ D3 I% G7 T - (setq b (polar a 0 (* TL 841)))* k9 L" S/ r8 @: r! G! e
- (setq c (polar b (/ pi 2) (* TL 594)))
5 v5 r) A/ _5 t6 V' n f/ ~7 I+ s: { - (setq d (polar a (/ pi 2) (* TL 594)))
6 e ?' k6 `, H/ B; P; d% b - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
5 b) x2 n6 r4 m2 X3 F. A - (setq f (polar e 0 (- (* TL 841) (* TL 24))))7 {# i. O) Z3 c/ d/ O
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24)))); ?, g$ `. Q8 Q- I
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))5 p+ I- c; f! E1 i
- (command "Pline" e f g h "c")
( h4 ^* P" R+ ]5 `7 c - (command "change" "last" "" "properties" "layer" "0" "")
6 ?$ p+ e+ S/ O* d - (setvar "cecolor" "4")' |5 d/ }1 M8 U- E' t5 J
- (command "Pline" a b c d "c")+ U0 _9 C6 m* a& e$ B( y5 U" O
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
6 ?0 c' w' M$ t6 O - (if (= kho "2")3 | ~& w8 T g7 v) q; p* h N; x
- (progn4 [0 j/ w. U" U/ @ l8 p
- (setq b (polar a 0 (* TL 594)))
% r# G% N- O+ L/ B4 ^5 q6 i' b - (setq c (polar b (/ pi 2) (* TL 420)))
7 G4 D' Z. M! t [9 k - (setq d (polar a (/ pi 2) (* TL 420)))& ]& |% l- a6 \ _) B8 o& K
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
. Q2 G* p* ^7 K! i& k0 z8 E7 r - (setq f (polar e 0 (- (* TL 594) (* TL 20))))" B2 I* a i" C; w0 \
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))$ J# K8 }& m1 R$ s6 S& Z5 i
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
* u: p: ~7 e% t - (command "Pline" e f g h "c") 8 a: U" F) E9 G& {
- (command "change" "last" "" "properties" "layer" "0" "")
1 ^8 V6 C/ K! J4 O* p - (setvar "cecolor" "4")
+ c$ a) N1 u6 F+ T9 Q# p1 B9 g - (command "Pline" a b c d "c")6 o2 R& h" a8 o6 c. [6 c0 F U' E
- (command "change" "last" "" "properties" "layer" "defpoints" "")))& J' k- @0 a3 q% N( b
- (if (= kho "3")
* I% D" ]/ c o V3 w5 `7 J: c - (progn
, f& M& w: R% Q' ?( @' i - (setq b (polar a 0 (* tl 420)))
9 ~0 z$ R; e. d- {9 {: ` - (setq c (polar b (/ pi 2) (* TL 297)))
5 A9 _8 K* s/ C$ C& M4 ? - (setq d (polar a (/ pi 2) (* TL 297)))) p% M6 C6 Y" m8 Z' r% F: |
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
# D- m( {5 I1 e2 \ - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
/ E. b8 Q" ? N$ C* I$ G9 Z; s; g - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
0 U' q9 B+ v1 {4 `! J' @& N; r - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))6 r3 W! n4 x" `! T% K% Z
- (command "Pline" e f g h "c")
( j6 M+ T' U. d. p0 _3 N% h! o( M - (command "change" "last" "" "properties" "layer" "0" "")- v/ y3 A9 V& d, j3 H) J# O5 ]& p0 o
- (setvar "cecolor" "4")& M( k: a _5 @
- (command "Pline" a b c d "c")7 Z9 H- P9 J. F, U
- (command "change" "last" "" "properties" "layer" "defpoints" ""))): o$ t; [! A F
- (if (= kho "4")8 l; O7 Q/ f3 z
- (progn" |+ U- k0 \+ V( ?& b
- (setq b (polar a 0 (* TL 297)))
& p% O( U9 q+ G- `; v' f, w - (setq c (polar b (/ pi 2) (* TL 210))). e# g g8 q0 O+ Q6 M( O3 f
- (setq d (polar a (/ pi 2) (* TL 210))). a' l0 [8 d9 }8 d2 }( y
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
! K" W3 @- b. w$ Q3 g6 G/ \ - (setq f (polar e 0 (- (* TL 297) (* TL 18))))
( q/ C; Z3 A: N+ I8 J* L - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
/ Y! D2 D M. w. B5 a5 ?& t - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
5 } |7 F4 q; l. t% ^; C* Z - (command "Pline" e f g h "c")
/ K+ T0 ^$ T( o9 D - (command "change" "last" "" "properties" "layer" "0" "")/ v D* X' V. i9 g9 x
- (setvar "cecolor" "4")
" g8 ]5 W/ R8 c - (command "Pline" a b c d "c")
; _. f) ^: Z3 w. a6 L! B4 ~" J- E - (command "change" "last" "" "properties" "layer" "defpoints" ""))). W0 Y. x! g+ Y& k! j1 W
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
! Q7 Q* @1 T, j2 G5 I - (command "undo" "e")
% s ]9 B6 Z% y! E* \- l - (princ))' I; s6 n8 V. f6 Z; _% d5 N
- ;=====================================================================1 k9 V0 [1 b T' B5 }$ o
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
$ [! l2 C2 C5 e+ H9 h8 e - ;=====================================================================
' a# S, w) _) {- z+ }
# C0 z' R# u$ T5 C- ;=====================================================================
/ g4 b7 o" }# `# x - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================! F8 J. A+ E3 f
- ;=====================================================================
2 e* ~; F( [, z r5 R9 H
, m3 P8 l! z( L( n8 a8 A7 Q- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
! _0 f% b! C* U0 \ - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
9 N O4 Q, S, p4 m9 { - "M" "MANH" "C" "9" "" "Lw" "0.1" ""
) j+ w4 w t2 _. U m7 A! t( K" s - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
& h- ]4 [4 g: t( D9 m+ p - "M" "DIM" "C" "1" "" "Lw" "0.12" ""
! }& |5 d6 Q9 B3 o9 ?3 R - "M" "THAY" "C" "7" "" "Lw" "0.2" ""2 ]# Y8 v! I+ d3 D6 c* ~( V4 D
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""/ j- }) n3 F' A. G+ N
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""+ ]( o' d7 U( ~0 u; T
- "M" "COT" "C" "1" "" "Lw" "0.3" ""8 _1 X3 l9 C: i% s8 u% x" }9 `% `
- "M" "Defpoints" "C" "7" ""
) u) K+ u% P/ F8 D' P, C2 z# [ - "M" "0" "C" "3" "" "Lw" "0.12" ""
( T7 c9 {7 P5 J7 f - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
6 C! s5 B% v5 D/ s3 [ - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" "") r. r5 b# W( I8 _. V4 H z
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
2 ?% i, u( J4 j: k% o* p - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
9 m- W7 j# X- y4 ^ - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""1 T: V8 c! D" Q. p% s! n
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""/ ?6 d3 `3 ]2 j* A1 s
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""$ m3 H. d4 A% F3 O# L
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""; O5 V! V, j+ v4 _+ c8 l
- "M" "THAY" "C" "7" "" "Lw" "0.2" "", d0 Z, f7 @3 H, ^" _) m! V1 `
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""
; {7 Z, g5 S0 S% {+ ]; { - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""6 ~' @" X4 Z2 |: ?( I
- "M" "COT" "C" "1" "" "Lw" "0.4" ""0 D0 x G, Z5 H! R9 u, R8 s3 Z* Q
- "M" "Defpoints" "C" "7" ""# G3 n( K" q% P
- "M" "0" "C" "3" "" "Lw" "0.2" "": R6 I5 t. t1 n Q3 r
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""1 K2 a( S- o" C( }7 S2 h
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
( F4 [' f( ^1 b& N: ` - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))0 L- o9 Y4 T& r* K$ ^
- (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
1 L4 U3 h# M- s* y4 B9 i - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
W+ j2 j, {+ U$ Z, h - "M" "MANH" "C" "9" "" "Lw" "0.2" ""9 P7 y0 o: x1 x: P3 d2 k
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
! n2 W* F* V4 \7 {2 A - "M" "DIM" "C" "1" "" "Lw" "0.25" ""$ Y! m& D. I3 E) x
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""5 u6 m& b/ Q9 S! k0 x1 q* O4 R$ A
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""' H6 M& V& g) v1 Y6 W& z
- "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
; V" A2 l" P+ L0 _- {" b* O - "M" "COT" "C" "1" "" "Lw" "0.6" ""( p6 N, h- p0 [( `, k; ]
- "M" "Defpoints" "C" "7" ""1 D6 |3 R8 z3 l f3 ?; f1 U
- "M" "0" "C" "3" "" "Lw" "0.25" ""7 p; H& s! D, N+ l1 K7 ?$ ]
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""
, l- ^0 w! |6 J+ n - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""* F) R; e- p8 \! A/ P1 q
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
3 b. l7 y0 \% p+ @ -
" d) a; [# X$ m& m4 n - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""% m- v6 T8 @% B: V
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" """ v, }2 P9 ]+ v. `
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
m# {5 J# z. e5 J+ `; o7 m - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
8 h E- t# d) z - "M" "DIM" "C" "1" "" "Lw" "0.35" "": t4 V' f4 t1 v9 v
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""2 ~2 F- ?8 D' k# y- m
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
! j# }: d7 S) `; B" e, b - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
' N6 P, M, I9 A8 S5 N- i" i - "M" "COT" "C" "1" "" "Lw" "0.7" ""
. X" t2 c4 M8 c- l0 p - "M" "Defpoints" "C" "7" ""+ S4 V' I. r, N6 _+ `4 i
- "M" "0" "C" "3" "" "Lw" "0.25" "": H. x K0 j+ ^* @1 `, N
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""8 Y0 a4 G% b( |# w. O
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
1 p9 v9 b5 t6 v& V: H. N - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
5 `; J! a/ d% `: J+ U& u& w' l - 2 A m& \% K: [0 A+ j% Q$ I4 [
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
- k J5 ?: p4 {; l5 v7 E, p+ k - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
3 A" E2 R/ K9 q" K - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
) @0 S9 c! F. H( R& ? R7 ~& h( ] - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""
* k6 ^: I( E$ B) T6 H; X( _ - "M" "DIM" "C" "1" "" "Lw" "0.3" ""+ J! y9 t/ A4 t. o5 u
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
{4 C% G! E: m) T - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""/ n5 d, j8 L) C* M
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
# x. L+ g+ c! F& | - "M" "COT" "C" "1" "" "Lw" "0.7" ""
# N- g/ K0 z: w( u - "M" "Defpoints" "C" "7" ""/ h- i4 ~: `: H" j0 ]5 F1 m
- "M" "0" "C" "3" "" "Lw" "0.35" ""9 `4 ]3 B0 n, D" T6 i* a L
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
& u# {3 K# u# S8 H - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
; C% b* _4 C% J4 \" W, @ - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))' D, [" d! i8 y$ d( j& d
- 8 Y6 i6 ]4 m8 s6 P
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
3 Q# K# N* N: R2 ? - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
. j& L% I& R: B2 N/ ^ - "M" "MANH" "C" "9" "" "Lw" "0.35" ""+ H/ F! ~. Z+ O( V) h9 [/ @
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
4 v2 y& C$ a1 C) S - "M" "DIM" "C" "1" "" "Lw" "0.35" ""6 c/ D2 W( ? ~ k$ c* G$ M
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
2 q$ R* _( W! e) q' i9 ^! Y1 L - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""$ h( X# M/ j4 |( }
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""8 e% Y" c3 t! D2 l& ?- x D
- "M" "COT" "C" "1" "" "Lw" "0.85" ""7 I1 J: }) O9 F: i8 s) d8 C5 X, Y7 w
- "M" "Defpoints" "C" "7" ""( `, U P1 E, N! I/ I( C
- "M" "0" "C" "3" "" "Lw" "0.35" ""
9 k& s) F+ V& d9 P - "M" "CUA" "C" "6" "" "Lw" "0.4" ""
, j$ h. X- |! ?2 N6 o% G' x - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
2 U: I* Y/ ^2 P! S; N - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" "")) T H; Y/ d o" t( \! |4 j6 M
- 7 w+ U' a5 q9 I% @
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""8 o/ Z! D$ v( [0 `; x
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""3 @/ K. G% g5 D0 M% H/ r9 c
- "M" "MANH" "C" "9" "" "Lw" "0.35" "": |& F1 V& X3 a" {7 o- N# G
- "M" "TEXT" "C" "7" "" "Lw" "0.5" "". G2 d8 ?! a* X" y* k/ g& [
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
8 H: e4 p1 n/ [) {( z( D* o& L - "M" "THAY" "C" "7" "" "Lw" "0.5" ""
. v" i, L9 K; r - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
v! Y( s& R8 u$ N6 N# A; F - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""+ S' [7 j7 ^0 D! C& u
- "M" "COT" "C" "1" "" "Lw" "0.1" ""
$ M6 E* x) B% l; b( e/ I; v - "M" "Defpoints" "C" "7" ""
* u5 J$ o. N1 k+ p* a - "M" "0" "C" "3" "" "Lw" "0.5" ""
m5 m/ `6 v9 ]4 f$ q0 } - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
' O9 \8 M: @9 G& B; a, g2 L - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""( D/ B1 G. @* z( r0 c0 v
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))% m+ {1 y4 H) _0 R0 n6 e8 {
- (DEFUN C:O () (COMMAND "OFFSET"))
/ R* j' x" Q6 D6 B9 N9 G ^% ^ - (defun c:s1 () (command "surftab1"))
3 R% u( ?7 ~- A; L( l6 a - (defun c:s2 () (command "surftab2"))' N5 q( ?1 x' i
- (defun c:ep () (command "explode"))
: r" Q3 R' Y5 o* k - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
+ n" J& k4 K9 H8 H/ f- U - (DEFUN C:QV () (COMMAND "QSAVE"))7 s" \5 N; a! e& U
- (DEFUN C:S () (COMMAND "STRETCH" "C"))
' D) W3 k% x4 j) O+ d$ z C* t" m( u
3 A# s$ F, Q# I% v+ |& Z; K- ;************************** CAT DIM **************************" _, |: P& L) p! T: r
; l: ^2 n9 w, d* Q( K8 K- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
5 w Q' Q9 V+ }( Q - PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)( d: D8 R% n$ w& T; v, | p5 r8 |
- (SETQ CMD (GETVAR "CMDECHO"))
L% j6 P$ M; R, {6 M7 L5 `( O9 h) ] - (SETQ OSM (GETVAR "OSMODE"))* \7 [0 S4 B7 a# c( |
- (SETQ OLDERR *error*
1 {) ^7 ^+ b! H& Y# O' g# o - *error* myerror)5 j% F+ @" L' d9 Y. q4 ]7 P( P
- (PRINC "Please select dimension object!"): W3 s) B( x. A( X, D1 C& O
- (SETQ SS (SSGET))8 H3 l) d4 @( d3 N f: e
- (SETVAR "CMDECHO" 0)
0 u9 K, b g9 x$ w5 t; v; C - (SETQ PT (GETPOINT "Point to trim or extend:"))
0 {; O! w9 ` k8 P - (SETQ PT (TRANS PT 1 0))- |4 }. E* S" y% w
- (COMMAND "UCS" "W")
/ B3 r9 @, ]$ A6 e - (SETQ LTH (SSLENGTH SS))
+ O0 |' H/ z$ P$ Y4 f: @% D5 K2 o - (SETQ DEM 0)) y: N6 M8 q* b F
- (WHILE (< DEM LTH)
2 A( R1 q+ i# R$ k, B0 |, a ^ - (PROGN
- ?& I" U4 f8 y; s. w; j, v* H6 P - (SETQ DS (ENTGET (SSNAME SS DEM)))( b* w" k+ q, Q' p" ^2 ^
- (SETQ KDL (CDR (ASSOC 0 DS)))
5 l9 M. Y3 W# R8 v. E5 I% g, u* ? - (IF (= "DIMENSION" KDL); Q8 B2 w7 Z$ M0 i7 I
- (PROGN
: |9 |, M; ^" g- r+ q; \# V( A - (SETQ PT10 (CDR (ASSOC 10 DS)))' p1 J% q V" W( X8 N! \! l
- (SETQ PT11 (CDR (ASSOC 11 DS)))
2 S( K) p% X1 h; M! I$ X$ q - (SETQ PT13 (CDR (ASSOC 13 DS)))& X+ W* x5 d; K) `) S3 ~# Z
- (SETQ PT14 (CDR (ASSOC 14 DS)))5 H' ~0 k; B4 N8 p1 M# @
- (SETQ N70 (CDR (ASSOC 70 DS))): v% J) S' V& S
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
: f, }, ^; h& q# }2 J2 |( d7 d - (PROGN G' R U) V7 n# B
- (SETQ GOCY (ANGLE PT10 PT14))0 j+ H# z7 V* S+ h, F
- (SETQ GOCX (+ GOCY (/ PI 2)))/ I* L$ w1 f7 [% M
- ) t1 M' G7 k2 A
- ): g1 v1 d& @+ H( C( c2 t; l, `
- (SETVAR "OSMODE" 0)
/ H' s% p f7 W' U. N# q7 K' F - (SETQ PTI (POLAR PT GOCX 2))
2 k4 d! J. V T+ V0 l' m; }( k - (SETQ PT13I (POLAR PT13 GOCY 2))
( L5 U% L4 [; `; O/ V- Z. ~ - (SETQ PT14I (POLAR PT14 GOCY 2))( \. W$ ]! T0 ? [; `
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))" F& d' g- ?2 K+ T3 O8 g& V# V
- (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))$ W, @5 M8 z o6 M# W! w0 y6 A
- (SETQ O13 (ASSOC 13 DS))# X3 e7 ~; |' p+ }
- (SETQ O14 (ASSOC 14 DS))3 q" e1 ^+ s# j [9 z
- (SETQ N13 (CONS 13 PT13N))
( _3 v4 c" E0 I5 n8 B; r - (SETQ N14 (CONS 14 PT14N))) d+ D, y* L6 h. N
- (SETQ DS (SUBST N13 O13 DS))1 T5 x1 @% M2 F* X( n. J4 ^" r
- (SETQ DS (SUBST N14 O14 DS))) d( W5 j3 n* q. N! o
- (ENTMOD DS)
" @% a9 { {6 n' \) D S - )# E# t3 S6 H$ m3 S8 y
- )/ J& r, L* W, M8 x0 b
- (SETQ DEM (+ DEM 1))# A9 ]5 H% H+ B: @% ]: l
- )
3 R1 ^ y; l( ]. }: ^2 G7 R - ): }$ h! ~: e) k% S- H
- (COMMAND "UCS" "P")6 Z0 b* L; h _
- (SETVAR "CMDECHO" CMD)
9 s$ }5 w; N2 a4 `+ L2 s+ ^, p - (SETVAR "OSMODE" OSM)2 V8 V2 M' f( t4 Y/ H h
- (setq *error* OLDERR) ; Restore old *error* handler
: n6 Z: O; p: V% B - (PRINC)! C6 s7 Z( {1 l
- )
1 X% v* X3 l% v7 I3 |% { - $ `# f! `$ p. I- z) \
- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI. x. [# i( u/ l3 D
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)0 Y' y; ?. \ {9 k: h2 n9 B
- (SETQ CMD (GETVAR "CMDECHO"))3 i$ z* w) |( u0 H+ }# a# x* I; }2 X
- (SETQ OSM (GETVAR "OSMODE"))
+ L: o0 L _+ r, U - (SETQ OLDERR *error*6 b. d, U# C$ v6 Y+ k
- *error* myerror)) w- x* }5 [% c
- (PRINC "Please select dimension object!")
/ j2 F( F, H9 y. c( ]) L - (SETQ SS (SSGET))
% [% I, Y6 \1 S& Z9 a7 L - (SETVAR "CMDECHO" 0)! N6 ~) t! j* \# P' l
- (SETQ PT (GETPOINT "Point to trim or extend:"))
4 t7 v2 z7 ]& C# _/ u$ A1 a - (SETQ PT (TRANS PT 1 0))2 {( D J! @% d b
- (COMMAND "UCS" "W")7 u0 Y+ L& e; z2 ?" z& ?, w
- (SETQ LTH (SSLENGTH SS))7 X5 _' G/ l8 E2 \( z$ x2 r% [: g- P
- (SETQ DEM 0)3 ~( S" |. x+ U @: g3 j/ _1 A
- (WHILE (< DEM LTH)
$ Y# }! x3 S- X e, ^; V - (PROGN
+ u: E! k! L$ y8 X - (SETQ DS (ENTGET (SSNAME SS DEM))); ^; B) v, L0 H9 T1 U. U
- (SETQ KDL (CDR (ASSOC 0 DS)))
0 \* _0 f1 N# X! U - (IF (= "DIMENSION" KDL)
* W. N& v$ j8 J3 G# C - (PROGN
, M6 r- D0 w3 o; O0 y5 ]: t' _ - (SETQ PT13 (CDR (ASSOC 13 DS)))) l. e$ t5 S' v1 S( g7 q- V% u3 W" @
- (SETQ PT14 (CDR (ASSOC 14 DS)))
5 ^: k/ V! L, L+ `& O/ F0 U* | - (SETQ PT10 (CDR (ASSOC 10 DS)))8 \3 x! [) Y0 ?; K0 O- W
- (SETQ PT11 (CDR (ASSOC 11 DS)))$ V9 X; K' H& Y( s
- (SETQ N70 (CDR (ASSOC 70 DS))) d6 h x/ l; T: {5 ]" A. J
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))) U& v" }+ J) P- R/ H& }* t
- (PROGN
2 v, L& j, }- ^& y: S. ?) ^ d5 E - (SETQ GOCY (ANGLE PT10 PT14))5 U1 w( [/ Z' F/ ]0 ?! g
- (SETQ GOCX (+ GOCY (/ PI 2)))
: D; U$ o$ G+ I5 ~' Q% E - )3 {( W" u/ X" B
- )
0 y9 I3 T7 i* L* Q6 v. m. |) w- h - (SETVAR "OSMODE" 0)
, ^% M z9 G) r5 [5 y6 u; Q - (SETQ PTI (POLAR PT GOCX 2))
/ c0 @4 N# q* u* B M9 k - (SETQ PT10I (POLAR PT10 GOCY 2))) g( \% X2 I) l3 A$ m
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
; c* Y7 w0 l4 T) u6 L! q: O" N1 I - (SETQ KC (DISTANCE PT10 PT10N))) y( t4 j: x# `- Q1 A7 h" H/ `5 a
- (SETQ O10 (ASSOC 10 DS))
P5 ^: B f- K: w - (SETQ N10 (CONS 10 PT10N))
$ s9 e3 x1 ?* y - (SETQ DS (SUBST N10 O10 DS))5 P" ?$ Z* C1 y8 b$ U: A
- (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
* V8 T |; d; k7 { - (SETQ O11 (ASSOC 11 DS)), g: f; J: I( U+ T& M5 a- K
- (SETQ N11 (CONS 11 PT11N))
- m& Z9 X: ^# @5 ?: W% V% t - (SETQ DS (SUBST N11 O11 DS)) \/ L. z$ g2 c- J8 P8 h
- (ENTMOD DS)
# g. w' p- e+ |( |: \1 e8 x - )
* t1 m8 j) z/ G& R - )! G! H1 @, }( S
- (SETQ DEM (+ DEM 1))- m! K* }$ s3 i0 j+ K$ c
- )
* g7 P: X9 [" ^# W$ X | - )
2 L* [: ?9 o+ z" s- _ - (COMMAND "UCS" "P")
C$ k+ M( V$ j2 n9 A - (SETVAR "CMDECHO" CMD)
* t* T5 @4 P8 X9 c4 x: _- g - (SETVAR "OSMODE" OSM)7 T4 ]; Q! I( g* h, A' v5 P
- (setq *error* OLDERR)/ `' e: h" _$ e! S" _
- (PRINC)/ v+ q9 ^" N! u" |
- ). g8 z6 U( I/ Z* J4 x6 H
* H" N' v, v* z- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
6 }( i- O( ^3 L& X+ V+ ^
7 Z1 a* E, X+ W M- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
1 f) L" D$ y0 }. P4 q$ t - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")3 p+ a) L/ G, V/ T# Q! Z4 i
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
: ^' Q& t$ P# S9 ^0 l$ z- f# K - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
, e; G+ ]9 @4 ? a" C - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
+ s- B) O0 S- k: W4 y( T, `6 U - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))1 g; M; K$ X: C
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))! i5 _# q( {# O) P
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
6 n8 B/ z8 R( g+ y; e
) a/ W2 f5 X3 o5 }- ;;; ================ CHEN COT (TUU) =================
: D/ T8 ]$ w4 r& m, J - % _2 c0 q$ e) L! q6 |) r: m- m& w
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")" ?9 g+ ]: f5 v& |3 w7 `$ f) H# r
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")+ c2 |6 E$ g, v( j
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
; z% q. \9 _7 X- r' _/ {9 {) r% H - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
1 j- L+ r* \( z) k! o! D( j - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")8 p% h* _$ e2 E
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))3 E' o% k! A o& |3 p9 Z
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
: _, u+ e# O/ S% i! f, K - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
* m$ ~8 ]7 c6 g6 R$ D1 v$ e) q1 [ - 5 @4 V0 K5 d7 W& ?/ _0 _% t( l
- ;;; ================ CHEN KY HIEU THEP (TP) =================) A7 U! z1 G) J* T/ i5 Q
, R, J/ o6 {6 Q+ U4 p; L- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")$ R( b/ Z7 S0 l+ R K: z5 ~
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")( ~+ l8 @3 O3 a |& `
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt# j; z0 K! [7 F7 Y% _8 ~+ k
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))& P. S$ c- ^3 P3 Q. {. Q% G( g
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
5 @ v8 M" v, ~8 M0 q - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))& N5 R1 x: d; X& \6 W# X, x; n
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
+ g* _- g! q4 }1 a% T - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
6 i4 D+ N+ {8 \5 F- }- ?' Z - 2 N( M+ ?8 c9 Q8 k7 T" ?
- ;=========================== TAM TUONG (TAM) =================================4 D; [8 q8 M# F1 j: g
- 5 w$ t9 n& ?& f k' |2 b
- (defun c:tam(/ data_m)$ R9 q; C# b0 @
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
. r9 @/ C- P7 J. @) _3 d) ~ - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
; h6 n( w# A Z- p6 m - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)" v. ^/ K8 f) Y) @1 m
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset, E: @1 B7 t7 m4 H4 k. e3 f
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
! b% J P5 t6 G8 z" h - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
3 ]% {$ R1 o3 \; e" w- | - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
, e# ]3 J; Q8 ?) E - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
3 d4 K4 O4 n* V6 Z+ K+ c& x - distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)6 d2 b. P5 n% Q6 z
- (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
; i# Z$ S4 W. [3 \4 w4 U9 J - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
, J, Q! W, ]/ e, z2 M4 J+ k( ? - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)# V1 Y' j3 c7 f6 B' P
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
6 ~7 {3 ^1 ^* k5 G9 I - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p43 w8 ^- }* |2 V* v' D& M, \9 Q
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not/ J8 U F& T' v n, S7 Q
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
. W# T9 U E' t p8 F - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))5 ~4 v% @6 |6 n5 T" v0 i( ?: g) P; Q
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))3 K m& U# B( |1 B- C
8 R3 I/ G( I+ F0 a, ^- ;============ GHI CHU PHI (T1) ================
0 R# Z; s- O6 F8 u" t
, \+ c! j) ^* g8 M- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))7 a& r0 Q' S# r
- (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
% f9 g6 t2 u! V, ~6 F- B - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)1 i0 i: s7 U7 v* V+ E
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2). p1 `0 v! @' [( _0 c3 M
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1)) X7 k" X2 @; P4 C8 u/ ]3 u2 R
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
% a6 I% k$ `& G( K+ T# r1 b - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)! b+ m [1 n* k& S6 N
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
9 z4 r4 t4 G" K0 o# R8 [5 Q, h - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")2 ?& T' X+ g6 {& h2 T. S, a
- (command "ddedit" pause))8 @) l) f; ?8 D& `3 q
- . F9 Q$ Z# r6 t
- ;;; ========================== Join (J) =================7 L" v8 m" I+ Q% {7 o* K* e1 C7 D
5 S& i+ X& }( C/ c( M+ U6 E- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
& V: e( _" g2 ` - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))2 J: o c0 Q- w, _1 p9 S0 V
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
$ J+ {' S3 C# q/ T3 l2 }6 ~ - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")# C1 c w1 G4 `9 A
- (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC")) i3 ]" n& p, V# ]' m$ }- h: ?) M) y3 \0 [' V
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))8 a8 R! k& X7 ?# [( y% [5 I
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
! b0 ^& N; U. O - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
1 k' V0 B- Z3 n- u1 v - (setq *error* m:err m:err nil)(princ))* C# _, F. ~ q, y9 e0 e/ ]
- . y) d; |: ^2 U# q
- ;=====================================================================; A; i/ ^; O5 O4 g9 {; [
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
: X4 l( I* n/ I9 W! ^ - ;=====================================================================# `+ N3 v1 l h1 |5 E
2 \0 S4 M; Z& | `* g- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old), D0 d3 d' o% @" i
- (setq old (getvar "OSMODE")) . I7 C8 P8 l( L' R5 \$ X
- 2 _% I8 j# {9 ?) s
- (setq p1 (getpoint "\nStart point:"))* G+ C( _3 \' C" o
- (setq p2 (getpoint p1 "\nEnd point:"))( H M1 k: t6 X) d" q' I
- (setq side (getpoint p2 "\nOpen side"))
* C6 q6 i; p Q. w0 w/ F2 d0 \ - 4 w1 Z% ^9 {$ E6 [! F
- (setq dis (distance p1 p2))* m* X' [" L6 ?' u$ ~
- (setq ang (angle p1 p2))
* E. d5 c* `6 X( V0 O+ I! T - (if (< ang (angle p1 side))
$ v4 u: z+ _' x) s1 J( t - (setq angside (/ pi 2) )6 l& \- z, j7 c- E. Z
- (setq angside (- (/ pi 2)))( v% x0 |$ S/ a( w; G/ R
- )
* r8 l1 d! n3 A7 w - (if (>= (- (angle p1 side) ang) pi); W% I. R. W/ Z+ @4 ^1 Z1 a- E
- (setq angside (- (/ pi 2)))
! g( j- H2 D* I0 u8 N - ). k* B- F. d2 S/ A# T$ w% w
- (if (>= (- ANG (angle p1 side) ) pi)
3 f# S5 r' ~7 `: K - (setq angside (/ pi 2))/ {+ I) B% d( ]( v% O2 n
- )
6 ~' B& X: t k7 Z3 L7 r/ X Z+ i
7 e# ^5 p/ k" |2 y- (setq p3 (polar p2 (+ ang angside) dis) ); E! i3 M8 |0 H8 p
- (setq p4 (polar p1 (+ ang angside) dis) )9 X3 X: h- n2 G% i% q5 W
- (setq wid (/ dis 15))
/ r: r' V; ^! k# J2 J - ( D; x+ q+ d& p& l4 {* B) Y# u
- (setvar "OSMODE" 0)
4 ~1 x6 h- V8 c9 a6 ~7 _ - # i" A# _1 c) ]8 ^7 E! C# w
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
+ G z: m& f$ Y9 O1 c - (polar p2 (+ ang pi) wid) - G2 V5 N7 m+ w/ @
- (polar p3 (+ ang pi) wid) 2 m' a7 t, X g+ d+ I
- "")( ^& g3 F3 ^" ~
- 9 @. C# E6 J" P6 `' ]
- (setvar "OSMODE" old)" a' f/ }% n" L+ L; E, I) v, d
- (princ)
& J% c& ~) [4 i7 x( h$ F - )# b% {' n' L& n& }8 p
- ! c) s1 I' x% _, }; @# P& `
- ;=====================================================================* [3 ^/ d: d8 r8 D
* h; j9 O' B1 a- b1 T- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
, M9 w9 l2 N; i5 c& c4 ?% A - (defun cua1 (pt1 pt2)
" F' |/ y4 {/ |$ a: j - (setq p1 pt1
4 o- ?' |2 ]. [) M - p2 pt2)" B2 ~6 y1 I3 D" b1 U. c6 u6 Y
- ( h) H0 ]- k7 t+ [8 v
- (setq ang (angle p1 p2)). {8 d q/ Y8 {7 j- @/ ~
- (if (< ang (angle p1 side))
, p$ {. t) v. b$ c - (setq angside (/ pi 2) )
3 Z- A t3 s) \- E$ @ - (setq angside (- (/ pi 2))). k" K1 T5 d/ Q" }. L$ E5 f
- )
3 y. M- W7 C: c7 f* s$ s - (if (>= (- (angle p1 side) ang) pi)
! l& [2 h4 y, K - (setq angside (- (/ pi 2)))
+ h/ l, Q- t6 \- s; U- T% w9 }) F - )
( _1 S2 Q2 y7 E3 h c - (if (>= (- ANG (angle p1 side) ) pi)- M" y% ~7 ?4 \$ u% E* [$ k/ b
- (setq angside (/ pi 2))
! u9 V7 Q+ E3 k3 ^9 h j0 o% R9 ` - )
' }5 Z+ H! o0 b& x% B2 a
9 _# \6 r+ P' u4 X- (setq p3 (polar p2 (+ ang angside) dis) )
. p) G5 G7 {- C. f0 O+ O - (setq p4 (polar p1 (+ ang angside) dis) )" e1 S) |" N) m m, }
- (setq wid (/ dis 15))1 T7 q! |: d& l* F3 a1 X' n! h
- ; P- d2 \8 K$ c$ Y7 l& c
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 $ P, ~2 ]0 Z, Q4 A3 t1 Q
- (polar p2 (+ ang pi) wid) 2 k+ u9 Q; h( q; k
- (polar p3 (+ ang pi) wid)
+ s2 r1 G5 T8 W3 g - ""). f. v+ s2 R3 [2 ?5 C* b' B
- )0 E( d5 ]8 P& p8 x* v* D% Y
- ;=====================================================================4 ~0 y9 g) I( ~' q1 j
- (setq old (getvar "OSMODE"))
( Q$ n( E. d L6 x' V: S8 u
/ Y3 x6 W0 m3 V$ J! h- (setq p1 (getpoint "\nStart point:"))
% @" D/ e/ ?7 q$ w' Q( d - (setq p2 (getpoint p1 "\nEnd point:"))
! W, Y; B3 g( N8 ^# l - (setq side (getpoint p2 "\nOpen side"))
3 q7 l7 f X& ?0 l: V7 b( k2 a
9 n$ J q. I- K j& M2 a# T0 Y6 ^- (setq dis (distance p1 p2)), o4 ?) J7 ~/ Q; `- [
- (setq dis (/ dis 2))
9 k5 ~: P$ K1 q5 ~, @ - 6 h% o- r- A# s/ U3 {! Q C. a
- (setvar "OSMODE" 0)7 f9 z: o* |! f0 P( I8 T9 w5 z
- J/ d2 G; F3 b* U
- (setq p1 (polar p1 (angle p1 p2) dis))7 O: L* `6 g& u. e1 w8 @
- (cua1 p1 p2)
8 }' f( H- b/ S/ s3 Y$ N1 c - & V7 Q% S, _9 ?, o2 V; A
- (setq ang (+ ang pi))
5 I5 C$ k' n1 t, g4 W8 u - (setq p2 (polar p1 ang dis))
9 {% s3 @8 x3 B' ]# f- E - ; (setq side (polar p1 () dis))
" R' y; T2 @, `. W7 T - (cua1 p1 p2) 6 C, s5 C7 B t( Y3 u$ L0 o
- ( f: c9 o+ d5 g7 J0 l
- (setvar "OSMODE" old)8 R1 q9 o1 F7 o/ X3 e& J/ ~8 _
- (princ)7 }) y+ \+ A! N7 O7 Y/ {# v, ^$ k
- )
' S# G8 }7 N" g k: D6 a8 C* C/ W - / A# \% c% F( l& h& Q1 P
- ;=====================================================================
6 x( d* S+ j+ M- {( Q - ;"Glue" text strings. All adopt first's properties.1 l! n" N4 |# b
- ; Author:" b# `8 w6 P/ Z" Q; I1 I/ ^
- ; Henry C. Francis
1 K0 |0 i; d, g$ v, n8 S - ; 425 N. Ashe St.
9 ~; _# P. p& O! i4 m5 p. n. y - ; Southern Pines, NC 28387* K" P$ K2 v) d1 }# ] k7 c2 F5 a
- ; http://www.pinehurst.net/~pfrancis8 n2 s# u$ Y( h2 }' \9 o
- ; e-mail hfrancis@pinehurst.net
. b9 l9 x/ [1 @: ^4 ?. y - ; All rights reserved.
( ~7 A& x0 u" b5 ?: I - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)9 n$ b6 C4 x* d3 Z2 A
- (while
5 J) z4 Y9 |- u' E1 h( l, P - (not
9 Q9 L2 K: m; E$ l5 Z1 D - (and
2 \' ^; H- K3 V; W" c4 G: k. w - (setq ename1 (car(entsel "\nSelect first text string to join: ")))+ o% n! Z9 a) M- Z$ D/ \
- (setq ent1 (entget ename1))9 M5 h7 u! I& }9 [' B
- (eq(cdr(assoc 0 ent1))"TEXT")* S% `* F, v* m$ r# [; d3 y. x
- );and0 E' R! d! b( {
- );not) z- d; M: S1 i8 }0 o! M0 _
- );while5 B) }1 j/ L ~4 F
- (setq old1 (cdr(assoc 1 ent1)))
3 d7 a* V+ q5 d) k3 n6 X9 W& l/ [ - (while
& o5 `6 O9 {* i i - (not" [5 Y# E8 A* E5 @$ C: I% C3 W" f
- (and
8 {+ O% m5 ~: t7 P2 [/ c - (setq ename2 (car(entsel "\nSelect second text string to join: ")))
6 n8 A' B% k+ [+ r2 W - (setq ent2 (entget ename2))
. q7 ?& y, S5 N; Q/ h - (eq(cdr(assoc 0 ent2))"TEXT")" d& V) g5 G" v& f- u; S& ?
- (not(eq ename1 ename2))4 K& {% S/ A' j1 y0 e X7 k& A% }9 P
- );and; X7 d* Q M1 M3 T6 \* v
- );not
2 ?- V: x) g/ G4 J+ B% q/ B - );while& `( v6 E' d! T: Y% ?: J
- (setq old2 (cdr(assoc 1 ent2)))
$ U, K+ T+ p; U) B9 r# ^ - (setq new1 (strcat old1 " " old2)5 A. Y2 D: I: x) Y
- ent14 [# r" }* x& Q" c
- (subst (cons 1 new1)
+ d! a; x: z# Y! O1 z - (assoc 1 ent1)
: n1 O! C5 m; Q5 E/ \& \$ z7 J - ent1): ` D$ x9 e6 A/ Y( Y4 G; j
- );setq
F0 D6 e# x O/ Q3 \. I; k - (entmod ent1)- N9 f0 C1 u( J/ s1 S- ?: ~7 Q
- (entdel ename2)2 u& \' G: u3 O$ w
- (princ)
7 F3 d- s" ?# E6 {; L - );defun
. E3 @6 S2 x g, r2 r - 3 a3 m( ?7 P* d5 A0 C
- ;=====================================================================
G5 t. {9 W% C# ^ - 0 c( C6 i8 P$ n: j! b
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
* ~ Q( d2 ^& d( c8 w
0 T' K* }. q. ]% Z- (defun nterr (s)
5 w- U. o0 {) ^ - (command "_.UCS" "" "_.UNDO" "E")8 r- D3 q( @8 P. ?) d
- (setvar "cmdecho" 1)
. f. R" u' c3 ]. Q7 \ - (setvar "blipmode" 0)
: M# F9 B# f1 i - (setq *error* olderr)- c9 J3 q$ p4 z" l
- (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
' D; c2 U+ c# o {( E0 u: `, _ - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
& R: g: j: V; E4 F# w: z* j% S - (princ)
& S5 A! V2 C h3 \) o8 a5 t - )
0 D* O8 b6 ?: [. L$ Q+ `
0 h9 y4 y- e2 P9 R: J$ n- (defun tim_in (dt / p01 p02 ktra)
. b& C. _6 c x7 O - (setq p01 (cdr (assoc 10 (entget dt))))
* }- s3 z! d9 o - (setq p02 (cdr (assoc 11 (entget dt))))$ a$ {+ j& M8 u9 ^2 [- ^
- (setq ktra T)
7 X% Z( v! @" H7 V5 W$ X - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
* X: I- m& E' j4 K1 B7 Y& ~ y - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))3 T5 C* d' e6 x: n2 x. Q0 J( b
- (setq ktra nil) k. H9 g4 i: P, ^: h
- ); H- T. T U' x
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
/ _) i) i2 h' `7 P, v2 i - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
/ Q' ^8 @% R% S8 S" v3 Z - (setq ktra nil); |& g& v, A- U2 D! ]+ w
- )
/ G O0 @' }9 H6 M - ktra% c4 R+ L& J: @# T
- ); e) E7 H; \0 V
- 2 I0 ~! x% V7 e
- (defun timdt (dt1 dt2 / p01 p02)/ n, I4 l) ^1 g
- (setq p01 (cdr (assoc 10 (entget dt2))))
6 f- Y. }; K! W5 O- S" c q - (setq p02 (cdr (assoc 11 (entget dt2))))& ^# I/ a# {- g* l7 ^9 |
- (setvar "ucsicon" 0)7 K: x9 p! G9 p/ H
- (command "_.UCS" "E" dt1)
" a( l4 q! K- R* T - (setq p01 (trans p01 0 1))9 E: j! P/ g0 E" J1 G8 I2 t
- (setq p02 (trans p02 0 1))
2 S0 A! ~# W" T8 z - (command "_.UCS" "")6 H: {7 ~9 ]4 h! w1 x8 v
- (setvar "ucsicon" 1)
& ~& F; |5 O' D! ?9 ~ - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001)), `8 T; r# N! o
- T
8 t! k a4 O8 L, n- ~$ r - nil
* S* Y) @6 D. O2 O- l - )
8 }! N& G0 f9 _2 O2 V - ); _5 \! P$ Q4 `
- - T* C' Q) L6 O" `, {# B) B$ U: v
- (defun tim_out (dt / p01 p02 kt)
q" F" K4 h; L$ k. X - (setq p01 (cdr (assoc 10 (entget dt))))) K8 a* L+ m# `" W4 r! x
- (setq p02 (cdr (assoc 11 (entget dt))))# k9 g6 V( J- B8 c: a! b
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
7 {+ x' h6 J1 p. Q5 ] - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
( j$ Z$ D C, P; | - (setq kt p02)' O+ t6 ^; s" ~. G( \# @8 M
- )! C3 W% a+ |" d0 i, W7 N
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) / w( q- d w3 o* V5 Q
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
# ]- O: I. [; @7 r; L - (setq kt p01)
& i- d% P# Z2 ]+ w+ \, y7 O - )
! O; P+ f" d! B% d" i) A - kt
$ I8 r: V3 U* a& g4 { - )4 u6 E( {8 G; M5 }
; _. p) g' S! g" L; v" G! X! ?- (setvar "cmdecho" 0)
$ K5 L: _2 I% W- w/ R - (setq olderr *error* *error* nterr)# X3 E# [/ q6 J6 Q6 B( K) v9 p
- (command "_.UNDO" "G" "_.UCS" "")8 Q+ z+ U; z4 R
- (while (null ss1)
, z% Z; p% V' K. X0 O' d - (princ "\nChon tuong muon noi...")) X2 a" E: K4 \: ^* ^( l
- (initget 1)5 j; j% m$ \; y- J9 ^# M
- (setq g1 (getpoint "\n>Goc thu nhat:"))
5 O& }9 p a4 q' e) i" H - (initget (+ 1 32))
# R8 O# M5 Y7 a# e - (setq g2 (getcorner g1 "\n>Goc thu hai:")), D, Y' q. t6 Z. {! n2 X
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))3 ~- d4 W9 f- w, s
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))4 c! g2 t% F/ |; L
- )
6 J" a+ o+ r1 J& [1 u% K2 { -
9 l( \' P9 H, A c) r - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
2 J9 j1 F% r1 I" x6 C# I8 M - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))4 a& u: ]. f! i& c
- g1 temp)
1 `+ W+ N) k1 U1 g" W: Q u1 ~ - (setq ss1 (ssget "w" g1 g2)); b% w% E; @2 q: O3 b
- (if ss1 (command "_.ERASE" ss1 ""))
- ?2 s9 B0 `% p5 n. O0 J- K - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
: ^( m4 e4 V- I8 R5 r -
) I5 L& R i' Q! C/ k; _ - (setvar "blipmode" 0)( |6 e2 \5 e9 X% O2 u- w
- (setq i 0 l (sslength ss1))! _! F& ?+ i1 l4 H W j; M
- (while (< i l)0 n$ b# J9 z% Z
- (if (tim_in (ssname ss1 i))8 A0 q! H& X- Z4 ^$ P. `4 \2 T6 h* A" F) P
- (progn
m# V8 h% B& F+ V - (ssdel (ssname ss1 i) ss1)& f* M2 t, N; y G; M9 ~$ i4 X' }
- (setq i 0 l (1- l))
- H2 N! }( D0 E6 Z - ) ; B/ h: h( D* b: \, X, H. o8 `9 B
- (setq i (1+ i))
$ K0 P+ S: }" }4 b+ p- q& d - ). v3 R* ?* d5 d
- )9 f! N% N) Y; d$ r- |- U: K
- (setq l (sslength ss1))2 I7 b8 u2 d& C) v) f# }5 A
- (while (>= l 2)1 f3 s" q% R7 } N5 }( [. D
- (setq e1 (ssname ss1 0)), o* ~0 o K! z' f. h J
- (ssdel e1 ss1), u4 i8 ~4 {$ P$ P+ P! Q
- (setq e2 nil i 0 l (sslength ss1))
: ?/ o( Q- |# K& q2 F - (while (< i l)
% |+ |% F: T6 \; q1 n# F - (if (timdt e1 (ssname ss1 i))
' a5 J" g3 Q2 s7 [. ~( F - (progn
* Z6 ~; M; q' ?# u! A# S% H: d' { - (setq e2 (ssname ss1 i))
- Y4 O" n/ W' E; V# T( _& J7 X - (setq dd (tim_out e1))
/ ~* C' b7 W/ W& ?4 t1 U' Q! |2 Y - (setq dc (tim_out e2))# U- R9 H8 l7 m( h
- )
! g, d# O& K' P: `0 Y - )
! x7 g; C0 G! D( o+ _* b2 B - (setq i (1+ i))
: R; G7 i$ \' x, \) o' k$ k - )
& U2 X7 [4 ~7 A3 J/ {: T! j - (if e2 (progn
5 H. O! ?2 n% t! k9 V- ? - (ssdel e2 ss1)
0 N J7 w$ W4 L6 V - (command "_.ERASE" e2 "")/ [7 S0 G8 L- R" C) ?& m, L( X- f& m
- (setq temp (entget e1)), u |# Y `, A6 F; q
- (setq old (assoc 10 temp))
" P: J L( R5 V$ {9 ~, w+ H - (setq new (cons 10 dd))) ~# s* `5 p" r2 A/ ^
- (setq temp (subst new old temp))
: e% f2 s/ w3 S: M - (entmod temp)
2 @( _9 e- g$ A3 b9 I - (setq temp (entget e1))* ^& m5 S+ H( x% }
- (setq old (assoc 11 temp))
5 Z2 X/ M% s: n( k F3 a - (setq new (cons 11 dc))3 q1 b/ ^3 R( m+ v
- (setq temp (subst new old temp))& D" S* e) ~8 E' h2 I
- (entmod temp)
* {% n5 [& z; V7 M; s - (redraw e1)
* A& D8 p! j2 u x& S# l& V) C6 ] - (setq l (sslength ss1))+ v' I; U* N+ S6 Z9 s
- ). ~% n. f7 x0 N# D
- )* Y3 \, r% V& V
- )
( z, ]& t1 x3 H3 n. G
9 s8 S: g5 \7 @" _8 n- (command "_.UCS" "" "_.UNDO" "E")
' f" t. a) z$ o, I - (setvar "cmdecho" 1)! ~" W/ ]0 o+ `
- (setvar "blipmode" 0)
6 @( g: |3 C& \: l) e+ M7 K O0 M - (setq *error* olderr)& o4 `5 R: w1 Q- C) f9 }& X
- (princ), [! q) D+ `! I( r, |
- )0 B! k/ _- W6 P0 t2 o
- ;*********************************************************************1 K- m0 x; o+ j! A7 A2 h L0 x
- (defun ketthuc ()5 P U- z u4 ]3 {9 p1 ^# P m9 s
- (setvar "cmdecho" luuecho)( E9 l: K. }% M8 T) F; R
- (setq *error* luu
" V a) l3 W/ u1 S. X! R2 A( [ - luu nil + f* `1 T8 {) v7 K1 R* \ a4 J
- luuecho nil! L7 }' L2 c9 U% a0 B
- );setq6 Y2 }/ {( M1 B; h% u+ y
- (princ)
* A2 [6 f& S; K" T+ U/ j6 T - )
' _! _4 H$ K7 P/ _' V9 \ p0 X a - ;*********************************************************************1 F& |% @) x7 d: h) A& e, p: P- a7 Y
- (defun modau ()7 N3 e! B) G: s ^) Q0 Z
- (setq luu *error- a! D* d: q: }
- luuecho (getvar "cmdecho")
2 H; G2 I. g6 n( J - *error (ketthuc)! F/ r; o% z1 F! ]1 s( e
- )
. Y$ A7 T9 j; Q9 q - )1 m6 P# m& C* F. L+ Z
- ;*********************************************************************- V$ { z: M* P$ A! b
- (defun xulytext (text / kytu ma sokt luusokt lui )9 F" e# \3 j/ P
- (setq kytu (substr text (strlen text))7 l, n4 Z% c, _" g/ G3 E, k
- ma (ascii kytu)
* r* D) F& f; W* W% \# N5 U - sokt (read kytu)
# z/ y5 W4 P6 B# c! s: h X, ` - lui 1) ]/ h/ p6 ?3 R h: N1 U$ @
- )7 U- p% X3 P' a2 K
- (if (numberp sokt)& Y5 d- B: `/ i3 O) S- ~# g: e
- (progn$ \+ V) s% t$ M
- (setq luusokt (1+ sokt)) e" P$ E. P/ s( V1 I
- (if (and (numberp sokt)
1 `$ X7 d; v# u' W; ]$ V - (> (strlen text) 1)
6 C( J& `& ]! e - )
, L% z' E' ?+ j - (progn- R8 _8 n0 z3 h9 J
- (setq kytu (substr text (1- (strlen text)))
( {' G+ q1 @8 a5 P4 i - sokt (read kytu)
& {* P/ p' g. h - )
6 Q! x. ?9 }3 g6 P8 y - (if (numberp sokt)
# v( |# M0 a' f6 i5 L8 T - (setq luusokt (1+ sokt)9 f1 I3 x* i* m! B# I( M
- lui 24 k8 u* m/ F n+ V% y3 V
- / t8 ~" Z( O' _3 Y+ P
- ). ?# q* ~! R8 n: |/ }; R6 G
- )( _: ]6 j4 |$ y/ j) }+ A& T
- );progn 5 T3 L# i4 i# A) @6 r9 f) n( F
- )! w% E" B {) R0 P" B, ?0 m
- (if (= luusokt 100) (setq luusokt 0)); t: z7 P5 i" n9 }" |2 g# n
- (setq kytu (rtos luusokt 2 0)' D( \9 A9 e. m: Z
-
, X( s3 Q1 v. l( P - text (strcat (substr text 1 (- (strlen text) lui)) kytu)
% \/ A4 P( i* R) e8 }. j. ` - )( B4 A6 p7 q+ ?& o2 Z1 _1 `; q, h
- );progn / I4 e* j& c/ U0 Y |- T
- (if (or (= kytu "z")
; J/ i! `: P" }0 X( K3 } - (= kytu "Z")2 {! Z* r! C2 h2 O# {- d! E
- )
3 f. a( Y3 Z! h+ n - (setq text (strcat text "0")
2 J; F- a$ Z/ Q! [% m& C9 M; N. F - textxl "0"
0 x# I/ s; W! {$ G' c+ g1 @: D - )' P8 D) B4 M3 x. i& D* c
- (setq ma (1+ ma)
! r& c5 \* E: P% \+ W- f% Z- I - text (strcat (substr text 1 (1- (strlen text))) (chr ma))
& l( L3 {% l+ j' g! K4 R0 y: n - )1 f5 K* ^/ G; ~1 h
- );if/ f* `/ B' ^9 z
- );if
# x- \. z! A9 M4 K* g" }+ O# S - )+ h2 r% c# ^' }( Z) {) u4 t+ a
- ;*********************************************************************9 t1 a( j6 F( g* L) l; c. B
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)# h3 y* l! a7 T7 q; l) }0 T$ E
- ;Neu doi tuong la text thi tiep tuc( b# {( M; r' H) \" i" b/ v
- (setq doituong (entget tendoituong), p3 H3 ?' T# Q; G2 `5 l% y7 d3 L1 R# M
- kieu (cdr (assoc 0 doituong))
7 ]+ z1 p0 X& [8 \ - canle (cdr (assoc 72 doituong))! _; y/ }; L" ?& t
- )
. @5 @: l% O2 c" @" f - (if (or (= kieu "TEXT")! A: ^3 D" x- f' k7 X: |- N H# W, R
- (= kieu "MTEXT") / u. C7 u! A1 P/ j- K$ p
- ) " e3 F7 i2 u$ i4 Y8 a
- (progn8 X2 q* v+ q0 O' }" I
- (setq textxl (xulytext textxl)
/ I: \# g. ?- T( }( T" |. N - text (cons 1 textxl)
" T% f, p: C$ R5 F) O/ ] - vitri10 (cdr (assoc 10 doituong))6 D3 K7 ~9 {3 w" N! m! v
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
5 f- L6 [$ u* W2 f% T - vitri10 (cons 10 vitri10)/ a0 x8 C# B; J& r" F
- vitri11 (cdr (assoc 11 doituong))
, e9 J* `7 o4 a2 C b% x - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))6 b0 l# K% l7 ~* e" n9 s! _! `
- vitri11 (cons 11 vitri11)- t0 P L7 S3 B2 P7 Z8 W; T9 d
- dem 03 K9 {4 Q" {0 |+ X- A# q3 v6 n& K
- dsach nil/ P3 g$ b' B( e' Y7 w! i2 d: T0 E
- )
$ J, C D0 @1 Z9 h( A - (foreach tam doituong
& N( D& P+ x- Q8 x( e. a2 S - (cond8 K3 \2 i k; H
- ((= (car tam) 1) (setq dsach (append dsach (list text))))
5 A/ h) u" k- ^( I* N. x, Y - ((= (car tam) 10) (setq dsach (append dsach (list vitri10)))): O. V: K8 e* G4 [ k* E5 Z
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))' f) E6 c* ~- l O; i8 A) ?
- ((setq dsach (append dsach (list tam))))
* M' ^ V1 s- X - )" U) J- J$ v8 t' o3 E
- )
% @4 H1 t5 R/ m/ B# Z - (entmake dsach)
; K' m8 p% W' m- E# Q - );progn. D- v) G$ A2 C1 D! j7 y
- );if
0 H0 y t) Q0 i; ` - );
4 i6 V$ m- F$ _) _2 x - ;*********************************************************************
% \' T R; u6 m9 G! F" L - ;sao doi tuong cu sang vi tri moi8 L$ L K/ ^+ `/ H0 |2 K0 o R
- ) x; S$ U8 G+ ~" ?( k% i/ x! H- e2 j# o
- (defun copy_dt (tendoituong )8 b7 ~/ `1 ^+ `' v/ Y8 i' i% B& W
- (command "copy" tendoituong "" goc toi )
# C! I( [* m* k" I7 q - );defun9 g) R" B0 Z) Z/ Y
9 p2 H, v8 [# \$ S, \. |: d1 C- ;*********************************************************************
. h6 v' w& T; C" C( e/ A4 `. c
4 l0 ]" I3 Q5 a2 E8 a- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
* ]7 ?: F- ^" {- R9 O% _1 F - ; Khoi dau cua chuong trinh0 V& w0 w# v" K" b2 B" X
- (princ "\nCopy Inteligent...\n")
/ y2 Q+ Z7 j" z% } _+ w1 s - (setq luuecho (getvar "cmdecho")
. ~+ E* E9 K( e/ r" }& Y4 T3 X - luu *error*
1 C& _! i8 F" i( B& { - *error* ketthuc/ b$ w& R4 u c3 `9 }! v2 \. M
- cumdt (ssget)
! r6 |8 ?& g5 d: } - dodai (sslength cumdt)
8 U2 C8 _# e. g( L3 r - goc (getpoint "\nSelect base point:")7 C5 L1 M0 l( e; w# _7 P* h
- thoat nil
5 y8 k! L( n% X, q' @( a- ^ - dem 0
4 d; e0 ~) T& n/ a- i1 T" { - textxl nil
0 ]) C. j, a, V* H! l4 |% {" t - ); n$ D9 i" R# N3 N" t, V% N3 T
- (setvar "cmdecho" 0)
8 N9 A. X; F; b0 `; a/ y - ; Loc ra duoc ong text de xu ly6 ^2 `, ^3 _ N: P1 E1 c
- (while (and (= thoat nil)
@5 {. [3 a0 K! U& n! u - (< dem dodai)4 ~% A: k K2 A
- )
! ]9 Q+ P- v; m# q4 e8 m - (setq ten (ssname cumdt dem)
Y5 f( A G! q, g/ Q0 S* g - dem (1+ dem)
- h& A- A/ d L4 z. Y+ N9 C' C - doituong (entget ten)7 w& W/ a$ z% E. X3 F9 p
- kieu (cdr (assoc 0 doituong)) 0 U- t" A; k) H1 z8 f% c
- )$ W& C1 t2 y! |" z/ y( B/ k/ ?
-
1 P4 @! i2 N" h" Q% Z2 ~$ i - (if (or (= kieu "TEXT")
( f9 D7 [7 T3 c8 i+ k9 S - (= kieu "MTEXT") {) W# c5 d3 w
- )8 q/ @4 A/ Z4 n" Z
- (setq thoat T
" ^$ O" D! `6 ?6 o8 e" i( F - textxl (cdr (assoc 1 doituong))
& j! Q1 f/ N3 A" f/ f1 f" _ - )
( ~9 x _# [* [5 I - ): P4 M% F/ P2 z/ [/ P
- );2 _% f; @$ w( K8 g0 L' h
- (while T
8 ^ y9 r7 k2 ^7 s( D$ F9 X - (setq toi (getpoint "\nSelect next point: " goc)+ p0 X9 a- B, p# {$ y/ O/ v, ?: d
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
1 @& Y. O/ W% W1 V. Z - dem 08 }* ~$ {; O+ ~- R& R' Z2 ~0 S* i0 T
- )
$ f; r) a# z/ U1 i w- V - (while (< dem dodai)
' B. @8 O: n: i- y5 s4 w1 W8 o - (setq ten (ssname cumdt dem)
' F2 g5 H4 Z# Q; J - dem (1+ dem)
, K* b: `4 e+ ]% }% O; I/ d - doituong (entget ten)9 f; Q+ c; ` g9 c" t5 m7 H
- kieu (cdr (assoc 0 doituong))
3 L" j: Z- y) b8 X6 L) X - )
* t. ~5 D' ^3 C& ] - s# W/ k9 Z7 H
- (if (or (= kieu "TEXT")
) u/ C: d+ x/ R7 P; s' r - (= kieu "MTEXT")
; K* R5 X+ P2 u6 f' C+ \0 x - )
8 n+ r# P1 F0 D6 h/ \ - (doitext ten)
/ p# ]; i& t9 P8 l - (copy_dt ten)
; L' `+ H2 D, `5 f& K
9 Z1 J: ~5 t d3 y- );if. |/ G4 H" h7 i3 j% t
- )
7 n8 [+ m4 |; U5 [3 ?. ^3 [ - );while
6 a6 ^0 \' g; v0 E9 l; h8 G5 G* A; U - (ketthuc)# l: z2 U7 {( W2 r
- );defun
! e* x% X, \* j% o( @; m) t - (princ "Type \"DG\" to start")6 c6 W( f/ B" e. U
- ;Note: bien toan cuc: textxl vitrilech
& \& B, w6 a% G! h ~/ Q9 W, [
0 c; X1 g4 z% [( l, O: r2 J- ;=====================================================================4 @7 h7 s2 v' w8 R( I9 n
- ;;; PLJOINFUZZ.LSP& j8 G* }6 W$ v- w7 k6 f
- ;;; Joins lines, arcs and polylines using a fuzz distance
0 `0 o! |. \; ~, I1 t# L/ d - ;;; If only one object is selected it tries to join to all objects that are possible P+ I* x9 N# I" @
- ;;; By Jimmy Bergmark
4 ^7 ]0 _+ Q5 q4 g/ B: p7 F - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
! d0 F2 m, g2 c - ;;; Website: www.jtbworld.com( M$ n7 u% q' J! q% p9 x
- ;;; E-mail: info@jtbworld.com
' e( v3 @% Y; d) Q4 U- @, a - ;;; Tested on AutoCAD 2002,2004 and 2005# }% S$ B6 _* R- Q* P
- ;;; Latest revision made 2004-11-11
. h7 \& t" W3 z' Z - ;;; Minor code cosmetic change made 2004-11-13
9 K( D- W! K8 }5 q! ~7 \. x. Y9 ^/ k - ;;; Bug corrected 2004-12-23
( l/ n0 ^8 P2 O* s) E - 6 p9 ], U: w. t" m6 X4 B; ]# f
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
4 N; k; }- B9 g, V - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)" s, Y( N1 r6 Y) V( ~& g
- (setq oldcmdecho (getvar "cmdecho"))
( S$ c% y2 j: z - (setq oldpeditaccept (getvar "PEDITACCEPT"))
7 F9 {3 A) b+ {+ X4 O - (setvar "cmdecho" 0)
5 }# ~1 [( f! t6 z5 {8 Z - (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
) T- p7 Y- _ J1 @ F2 v, w - (if A2k4 (setvar "PEDITACCEPT" 0))
; X2 c. p1 l; K% X- T% T - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
: Y# w. u1 l+ o) o. { ^4 x ~ - (princ "\nSelect object to join: ")
. B. q" `/ Y* E7 F6 n0 B" q1 ^, n - (setq ss1 (ssget okObjects))
6 |8 |* R5 z/ R9 j; r - (setq fuzz (getdist "\nFuzz distance <0>: "))
7 \7 m) i- l8 b$ w8 { - (if (= fuzz nil) (setq fuzz 0))
" ]) { S1 l) f4 i" p+ f - (if (/= ss1 nil)2 L' @* Q* F T7 q
- (progn6 Z7 O: Q6 i+ V$ _6 C8 }; v( V$ A
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
# I- | r4 G9 ]+ j q6 A - (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
( |) V4 y8 H$ U0 V( w - (if (member objType '("LINE" "ARC"))
$ I. O- k# _2 @* ?' i+ Z - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")# {& G3 q0 K" f& `
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
! i; P* F; h/ T2 T9 M5 J% m$ v9 C# j( ` - )' t, n2 N* P% n8 X0 O a3 `
- )6 ~1 o# ~* H- R6 O
- )
* b. S6 F0 y& a+ [ - (setvar "cmdecho" oldcmdecho); N I* R: w( s5 U- u( M7 O
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))# E; X1 `8 e7 j' K: k. @
- (princ)
4 N, ?. S" R% v$ q7 J" y+ b. Q - )
: x* F) p& W! K - ( \5 h* p$ m* M! ] |5 ?' p
- ;===========================VE CAO TRINH===========================
$ _' x) P; U) x @' ~: f - . e% f }* } k0 s
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL$ G) }' J; U- W$ T1 m, F
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)% [( V- T3 Z9 x/ H. |5 V
- (SETQ OLDERR *error*
6 S% P3 ]" N6 P5 {0 V. S - *error* loisb)9 A; ]/ S8 \5 N. p1 a# v: N
- (command "layer" "m" "dim" "c" "" """")
: b) @ j) X7 N4 l I - (SETQ CMD (GETVAR "CMDECHO"))" D4 {* n' w" q; {2 G& c; q
- (SETQ NBC (GETVAR "CLAYER"))
$ D9 q& p/ b I$ S# s! l - (SETQ OSM (GETVAR "OSMODE"))
7 t- q( m0 V+ j) Y( G) D0 r - (SETVAR "CMDECHO" 0)
( M' a2 i# v, ~+ o. Q+ @ - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))& Y9 B& ]# ?% p- ^: D% h
- (SETQ TX (GETSTRING "\nCao trinh:"))
) t; M5 ^, y$ @+ H: A. V- ^1 ^ - (SETQ FCH (SUBSTR TX 1 1))6 C' Y9 d7 C) s! f3 d
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))9 Z/ ~2 }1 ]" l
- (SETQ CRST (GETVAR "TEXTSTYLE"))1 m4 }% N: `6 p+ ]4 q7 s
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
- X* M. @6 a$ o! a4 X - (SETQ TSIZE (GETVAR "TEXTSIZE"))
& p$ n7 R) X! Y - (SETQ STR (RTOS TSIZE 2))
; Y4 H! Z+ w9 n+ m4 V - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))) {+ a3 p+ M' I4 Y9 D
- (IF (= RSIZE 0); G: j6 t+ @0 R+ A
- (PROGN
8 H2 C1 Z( A& ` - (INITGET 4)
( o1 H7 P& g$ p; C: F - (SETQ TSIZE (GETREAL PRMT))
1 Z8 L' j% \1 c7 s. R! U! W6 S - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))' k, ]6 ~6 F4 l5 \
- (SETVAR "TEXTSIZE" TSIZE))
! z* K: w8 E @( g% @- N9 ^ - )( Q. N0 @* Q1 R3 e; W# S* M, Y
- )" O5 @# `, O! _( A5 T% ^
- (PRINC)
, |* r! `& G. V2 B( I! N - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))3 H) N$ e: q" U: @% o4 D! }
- (SETVAR "OSMODE" 0)
/ C& u; G/ G& g* D# N, S - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
1 A) N! Y$ j% L8 m. i! t! F - (SETQ NPI (/ PI 2))2 Q+ c6 w+ z3 ?8 Y
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
6 O* L: p9 f6 |4 R" r# r& f; ]- I - (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
% h. C$ j0 T& k$ O/ | - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
: y9 Y/ C8 T7 E3 L ~- h) j - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))" @8 A( T( T! C( w6 u6 i3 U4 I
- (SETQ PT6 (POLAR PT2 NPI TL))
3 u3 `2 _: K: p0 ]- C - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX))); M% {$ g8 B6 q% m; V( |! y
- (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))! q% v+ }5 F# C* y% C
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))+ k: [# \& p7 u, q# s1 b
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
6 d' g2 w/ I C' q8 ^( N - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
! d7 C4 F, R; H0 u - (COMMAND "COLOR" "7" "")
- ~ Y+ ?* M" i3 n3 z: r* o - (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
8 x- a) K* h6 T6 L8 @) b5 J4 v - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
6 ?( c3 D+ E+ T7 e, N# o - (COMMAND "COLOR" "BYLAYER" "")
9 J0 p7 b i9 u# Q5 g - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
- M }2 h2 r z7 Y3 W( [( V! N - (COMMAND "COLOR" "BYLAYER" "") E% `- n* `$ d- P( m& t- j
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
/ |) z' V# G) s5 q6 R" v3 ~ - (SETVAR "CLAYER" "0")
/ G6 B9 P! a7 G# Y% S4 h - (command "ddedit" pause)
" H5 n Q B$ X- q9 g% ^ - (COMMAND "COLOR" "BYLAYER" "")
9 e$ q4 a8 l( M8 V! p1 N8 m - (SETVAR "CMDECHO" CMD) d0 @- g) H. y- h. w
- (SETVAR "CLAYER" NBC)
- K1 x# j! O* ^- N7 f' b0 q - (SETVAR "OSMODE" OSM)7 s. t# E! t; U. U
- (PRINC)
. J* g5 i; J' h: D - )
' d8 A& e; B( O. X0 M Z& c - 9 q& T1 g8 J- \4 D" O& B9 U% J
- ;;; =========================== VE NET CAT CHEO (GC) =============================% u# r" d. S5 L& \" e! f7 F: o# L+ \
-
6 s" }9 b# S% C/ i6 ^$ b# @ - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)7 x3 X: c% {9 a
- (setq x (getvar "osmode")). q, \# i5 i, ?. n8 Q. s
- (setq p1 (getpoint "First point : ")
% J' R& V) [) { - p2 (getpoint p1 "Second point : "))( l. K( D1 U9 N
- (setq l (distance p1 p2))
/ _$ u& B3 V; l, S! O - (setq p11 (polar p1 (angle p2 p1) (/ l 5))( U P9 e# J2 ?. e+ v4 t0 I
- p12 (polar p2 (angle p1 p2) (/ l 5)))+ [! f; b4 l8 B& v* [* E4 S- [2 K2 D
- (setq ang (angle p1 p2))
9 @- R* t# N, t- S# x - (setq p3 (polar p1 ang (/ l 2.5)); b5 H" `+ o) y- z
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
$ L! ~2 [& ?; t U/ y, z; S - p5 (polar p3 ang (/ l 5))2 M% t3 F8 E1 z2 x
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))/ r4 q( L2 [5 o/ }, d
- (setvar "osmode" 0)7 t& g- A7 s. }# |1 r( T; R
- (command "pline" p11 p3 p4 p6 p5 p12 "")/ a/ w! q& ^4 s9 L g/ h- o% E8 L! p
- (setvar "osmode" x)* G9 E2 R- r7 H1 Z
- )
. z- R- |3 ~1 K% x - ;----------------------------------------------------------------------------------; {) [# t' C8 x* M& u; K
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf68 n9 G6 }# l1 }, e4 a% g, o
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))% U- D. j. W+ |7 R8 |& o% i7 y- {
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
% Y8 N/ g* n' e' h+ ] - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
3 A& v' Z" Q! \9 @8 Y - (setq sb 50.0 sh 200.0 se 20.0)( `* G' I7 O( W! W
- (setq ang (angle ps1 ps2))/ R4 h, h( Z6 C( y3 X
- (setq pf1 (polar ps1 ang (- 0.0 se)))
$ O$ _! k6 H& c; ~ - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
! t' O, I1 N( ?. e4 m% i - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
. [' ~- P( c) G3 `8 W* @# D - (setq pf5 (polar pf2 ang sb))! ?9 l/ Y" l/ S c' P
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))' o/ R8 y: M4 n! d
- (setq pf6 (polar ps2 ang se))4 N9 g" Q' S5 d( N, |3 N
- (setvar "OSMODE" 0), l0 L' Y5 n- D2 |/ G
- (setvar "BLIPMODE" 0)) V! A3 Z4 E, L! y7 j
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
: s) l4 t7 c5 C# l$ T* k( Y - (setvar "OSMODE" 703)
" w. c" `7 C" B - (princ) )' P3 p% M3 r& Y: f! n
- ;----------------------------------------------------------------------------------4 f2 F( j" F) ~6 G$ I
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6! S% u2 g* I1 Z% w7 V
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))& D( U! I/ [; G( k
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
# }3 Q7 r( g1 f9 Q8 ` - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
( H3 N+ a+ V/ E - (setq sb 100.0 sh 150.0 se 20.0)
( @- W* J4 m7 e' f6 b& K - (setq ang (angle ps1 ps2))
- d" f& @6 H$ U4 j - (setq pf1 (polar ps1 ang (- 0.0 se)))
7 W7 z; W! e5 \0 ^ - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))$ P9 I `+ @! C+ z
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
% N) |! A9 C. \8 A- Y* x w7 B4 E - (setq pf5 (polar pf2 ang sb))0 v8 q8 `2 c ~) `8 C: U! F
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
! `- N6 F6 w0 |' Y8 @8 B5 @ - (setq pf6 (polar ps2 ang se))/ b7 V' X: \* g2 s/ }
- (setvar "OSMODE" 0)+ q, G6 f8 v/ o" a/ l
- (setvar "BLIPMODE" 0)
' h( q0 R- V& v. e4 m/ W% ] - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
# H/ ~; R# X( m% w' A9 v! O - (setvar "OSMODE" 703)
$ p+ x( ^9 i/ z6 O& x - (princ) )) O6 E) q1 i+ h" k" I0 s
- ;----------------------------------------------------------------------------------
9 Z& t! i! y" c. D0 v4 u8 ?9 z - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
/ H' @3 i0 @# w8 o- w' X+ g - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
: F7 }( |: U% n! p8 I7 O - (setq ps1 (getpoint "\Chon diem thu nhat: "))9 D+ P& A, F+ E/ X
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))" x7 ?4 K5 \7 p2 }
- (setq sb 100.0 sh 250.0 se 20.0)
9 ]9 t- u% D/ b. w - (setq ang (angle ps1 ps2))
4 W" U7 V4 Y) J/ H) I3 k- H+ M- H - (setq pf1 (polar ps1 ang (- 0.0 se))) P; L' p, G2 I5 s$ t
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) )) \- w" S' H( i' X( ~
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
. a% k$ S0 }& @ J+ o [ - (setq pf5 (polar pf2 ang sb))4 |' ] u! u* v# q/ y4 X- D
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))3 A6 a; T2 `4 X0 W; M. B' r2 t5 l
- (setq pf6 (polar ps2 ang se))
: f+ o. m) ^1 S - (setvar "OSMODE" 0)# Y) W2 @2 T) B8 f, T1 I2 B- O
- (setvar "BLIPMODE" 0)7 C" w& V9 f4 }; j7 c$ P
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")0 p$ E" `% u0 t) F
- (setvar "OSMODE" 703)
6 H, r( g% }+ h8 Q( t& `2 }" h - (princ) )* E3 k$ {( ]2 ~- [3 \2 J- [$ E
( q k( W; c$ T/ n* @: A9 V; X- ;==================================================================================. V( S7 {8 f3 E. Y! H$ M/ d* ~4 W
- (defun c:ang (/ ent pt1 pt2 ang)
0 X+ i( `/ K8 P. X7 X# y - (setq cmd (getvar "cmdecho"))
5 h8 D# Z9 I2 Z - (setvar "cmdecho" 1)
1 U S; v+ n9 P4 S4 M - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))6 s' \# s7 k9 ?9 T. E" M# X, X6 F
- (setq ent (entsel "\nChon duong thang:"))! N& S' _4 u- s4 P9 T
- (if ent ' ~# d! c) D% I. K( n; I
- (progn
2 T# W* G4 e+ g+ A5 Y* K - (setq ent (entget (car ent)))
4 \9 n9 q1 }: W: b) N4 v - (setq pt1 (cdr (assoc 10 ent)))" v" ~8 R4 G' g3 [6 s { p8 ^0 ]
- (setq pt2 (cdr (assoc 11 ent)))* \: G9 J# I. q* ~
- (setq ang (angle pt1 pt2))+ z/ ^3 F) D# z" q
- (setq ang (/ (* ang 180.0) pi))
; L2 p/ [2 n4 z - (setvar "cmdecho" 0)
1 _' Q9 Y0 q' Q2 j, o- w/ n - (command "setvar" "snapang" ang)
4 e/ q+ k' A$ I - (princ "\nGoc cua truc toa do moi : ")0 @' N1 ]5 O8 A7 J5 X5 y# G; E
- (princ ang)
2 C4 u- w% n) ]8 z# `- ~7 R - )
7 K+ H2 j a* `9 p9 w- z* y" W+ g - )4 t. {4 w' i: i( e) i, n9 ^
- (setvar "cmdecho" cmd)
5 b7 l' x/ J* q/ d1 D- O - (princ)
- a/ W5 i% _4 o& H. m - )/ E5 G, y& b8 N( W- L
- ;==================================================================================
: Y2 O% X1 Q7 g {, L) U: J* r - ;============================== KY HIEU DOI XUNG ==============================* a7 |" }' k7 I' Q+ C9 f
- ;==================================================================================2 U$ ~4 q' j8 c- E' T# U5 ~
- , d$ v, d4 ^+ _1 A! \
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9
: l& k/ T% E& o: N2 q* j! ?# z - SZ G45 G135 G90 G180 SS loi)
( }7 ~: d7 h2 b) g3 z - (defun loi (s)
2 R$ }' v& J3 l% n/ X - (if (= s "Function cancelled")
1 Z, l! w+ r' z& B s( r; q3 g) t - (princ)" c2 z$ X6 e; p
- (princ (strcat "Error:" s))
$ @9 P- Y6 Q9 ]5 k2 V9 P; M5 h - )
+ G! j% r& P: L7 c# P. `' Q+ L3 f7 l7 O - (SETVAR "CMDECHO" CMD)+ c' v* q+ G4 \3 ?1 P6 W
- (SETVAR "OSMODE" OSM)
/ `1 j% Y3 e6 }5 {7 X( o8 N4 D - (SETQ *error* OLDERR)
3 G2 K! i6 a3 P5 _# O4 X) Z" E% s - (PRINC)
|; v0 \5 L( E4 Z4 {" |8 e3 b - )
. i% x0 W A2 {( d - (SETQ CMD (GETVAR "CMDECHO"))& n8 W* U+ @; T K' {7 @. a
- (SETQ OSM (GETVAR "OSMODE"))# g. F. n( |" x% k6 H m
- (SETVAR "CMDECHO" 0) J; v3 @9 L! W. b5 b$ q8 U4 b8 S
- (SETQ OLDERR *error*- ~+ i/ c, h% Q" u
- *error* loi)/ A2 q- R# R* N; d; h" ~
- (SETQ SZ (GETREAL "Size <1>:")): h1 r4 s- e/ x$ w; D
- (IF (= SZ nil) (SETQ SZ 100))
. q! l1 g5 g) T# R* z - (SETQ G45 (/ PI 4))/ j3 d# r2 I7 q% x( r3 X p$ ?
- (SETQ G135 (* 3 (/ PI 4)))
+ s) F- r1 y+ a4 }/ Y7 ] - (SETQ G90 (- G45 (/ PI 2)))
& w0 }7 u5 z8 f' o7 ^; U* k - (SETQ G180 (+ G135 (/ PI 2)))
+ J; v% j8 `8 v0 f# V, e4 b p - (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
0 m- r8 A" m7 U' F$ m$ _ - (SETVAR "OSMODE" 0)
0 R8 y4 M K" k, d( n9 ]+ I2 W - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))' S. u7 o" C( v. n7 ?' G
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
3 T! I7 z+ E- M9 K: Q$ F9 f - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))! S' o" S4 }9 u ~0 ~, m( D
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))7 g# l9 Q* z1 W6 O( C
- (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
" O: p( N7 L, i7 N1 b - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))
/ M) O# e% I. M/ m8 z - (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ))), m, D5 F& @" @% g( s0 o
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
" ~' v4 ^4 a! f* C - (PRINC "\nGoc quay:")0 p w! z" f/ U1 Q) p6 c
- (SETQ SS (SSADD))
8 C: j" S& Y O9 W, c! W# V- @( x - (command "layer" "m" "Dim" "c" "" """")9 Z: `* U# [8 `- F$ X
- (COMMAND "COLOR" "1" "")
3 S0 x- o: |( f+ ` - (COMMAND "LINE" PT8 PT2 "")2 [3 f! {) ?' T3 H2 W; D; \
- (SETQ SS (SSADD (ENTLAST) SS))7 x* ^) M. ]- v* m4 M
- (COMMAND "LINE" PT9 PT5 "")
# [, T# E$ P7 m3 F5 K0 |( w - (SETQ SS (SSADD (ENTLAST) SS))* w8 q8 f# _6 P0 ~% z/ W/ v# ]+ ?1 E7 S0 B
- (COMMAND "COLOR" "1" "")
0 I; f( _- C- T" r& v2 U - (COMMAND "SOLID" PT2 PT3 PT4 "" "")
( E$ V q$ F$ Q/ Q" w4 a# y9 n - (SETQ SS (SSADD (ENTLAST) SS))
7 b! U; S, t3 U5 x' g - (COMMAND "SOLID" PT5 PT6 PT7 "" "")5 `: M' s9 |& q3 _
- (SETQ SS (SSADD (ENTLAST) SS)), d$ x' c7 Q5 B- y/ m; C, ^
- (COMMAND "ROTATE" SS "" PT1 PAUSE): J+ b; ], `1 }) o
- (COMMAND "COLOR" "BYLAYER" "")
9 P0 O0 Y3 H: e - (SETVAR "CMDECHO" CMD)* p5 T7 h9 B3 @( p' r7 d' i
- (SETVAR "OSMODE" OSM)
1 Y# O$ G1 o! v7 d - (SETQ *error* OLDERR)) P' k6 C3 G/ ~6 Q- R0 ~
- (PRINC)
. [% P+ o! W5 T- n) e- W - )' \1 L- {" [* t1 ~) ^6 J4 I
$ y4 G4 a! Z9 {" D6 U" Q- ;==================================================================================
: m( r& f8 U# T- }: C1 C2 m - ;================================= KY HIEU TRUC ===============================
; g/ z( v( J: S7 z/ \/ l - ;==================================================================================5 w$ r2 ^5 |$ B3 E8 |6 ?
3 j/ D" {0 [% C5 U- (defun C:vetruc ()( @0 P# p- Y1 Y- Z2 |7 S- B/ o
- (setq bk (getvar "USERR3"))
% Q' b' l+ j3 q - (if (= bk 0)8 M5 j+ c; \& N1 I1 o
- (progn
( L6 }, ?9 I% H# j( l' a& k' v) D - (setq cont "1")
8 s ^, W' o$ k2 M# B+ D - (setvar "USERR3" 1)6 X6 r. Z+ `. L- |
- ) o$ B) E3 Y, ?6 ?/ `- g
- (setq cont (rtos bk))
/ _% y$ D m8 M+ @7 Y - ): w' `: P$ p7 \0 \
- (setq pt1 (getpoint "\n Nhap diem dat:"))
3 X" H) _1 E: w- h8 ?6 w* \* Z - (command "layer" "m" "Dim" "c" "" """")& l. ~: v' z! @" q4 y
- (command "osnap" "")
$ _% ^" F R+ I8 \3 p: { L( J - (COMMAND "COLOR" "7" "")
t8 b3 l8 a1 G) t - (command "circle" pt1 150 "") @4 g# q$ B+ k4 H+ Q& K5 N1 I
- (setq pt2 (polar pt1 0 150))0 \& d8 ~* ~2 i3 E6 q
- (setq pt3 (polar pt1 (/ pi 1) 150))+ V C2 m1 \% p$ n- \1 v! n) ]& p# Q
- (setq pt4 (polar pt1 0 300)) g9 s$ O* p" H I7 b8 O2 g/ v
- (setq pt5 (polar pt1 (/ pi 1) 300))! @, c5 _7 v; K& t4 ]/ L: t
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))$ E( d# _9 E" k
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))* t1 L- O4 d4 Q3 l. Z# P5 v
- (setq pt8 (polar pt1 (/ pi 2) 150))
6 U# a& _+ \7 [, O- M& r7 l - (setq pt9 (polar pt1 (/ pi 2) 300)), N2 l0 f" G6 `& c( u9 v3 p6 b
- (setq pt10 (polar pt1 0 150))# r* J: o0 q5 r
- (setq pt11 (polar pt1 (/ pi 4) 150))7 x+ ? Z, I; E% t
- (COMMAND "COLOR" "BYLAYER" "")
F I0 I/ A/ B - (command "line" pt2 pt4 "")% m Z& U' t' q+ |+ y$ }5 \6 X
- (command "line" pt6 pt7 "")/ j ]4 c+ h# e+ c5 |0 e
- (command "line" pt3 pt5 "")
* C1 N) w+ C7 R' s j5 k3 S - (command "line" pt8 pt9 "")
% R8 u6 i0 e2 I8 e, t - (setq dk (strcat "\n Size:<"cont">"))2 M) W/ t8 E( l. @7 Q9 G
- (setq bk (getreal dk))+ u2 D& R* W8 h9 J$ k
- (if (= bk nil)0 W5 c) W. A. ?! F
- (progn2 ?) C7 @; v2 ?
- (setq bk (getvar "USERR3"))
/ B* J' |# ` R$ S) N3 I& [$ V - )- l6 V/ w. O* j. y
- (setvar "USERR3" bk)
) C/ t- N3 s7 l; C5 `- u; R - )$ p/ o5 _, Z5 x7 P- y
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
+ a3 {& b2 t0 r' D; F {. D0 V% b - (COMMAND "COLOR" "7" "")
8 ~: A! d/ o' B - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
* K: o6 E4 |, Z) b - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") 4 ?( [* U! X% p, e
- (COMMAND "COLOR" "BYLAYER" "")
* [( [0 |4 h3 p: I+ r! j% ` - )+ Z3 R' F, _: m1 U/ u2 J( ~# r
- 1 p z8 i4 h( O9 c7 H
- ;=====================================================================+ N6 r% D4 g* q
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.). ] Z- }& Z" F! q5 t- m
- ;
% W; i8 }0 t# W: l5 b% ~ - ;Jeffery P Sanders h9 C# b" e9 j6 f- ^% |
- ;
( c" |! v. W7 w! h: u7 E8 X! d - (defun C:CA(/ en enlist tx newtx cnt tp asc note)
+ _. B4 }3 s7 c3 Q* J, i6 j9 q5 {, p - (setvar "cmdecho" 0)
0 Q/ t9 u& H9 W: c }! G - (if(setq en(entsel))0 |5 G& _ F% A' n
- (progn. N# p5 {" U j5 s* J% o6 u$ C/ @$ f$ `: e
- (setq enlist(entget(car en)))
" _4 k+ Y" ?9 s2 j: ^, P+ ]/ y/ Q& F - (if(= "TEXT"(cdr(assoc 0 enlist)))* @ h! A- [) E- A" L* z
- (progn, M. |/ q, T7 z2 j3 ` o+ r
- (setq tx(cdr(assoc 1 enlist))' W9 I6 r- B5 `
- newtx "" cnt(strlen tx)
" H# s6 k! S! C4 A) ~' ]* Z - note "\n...CASE Reversed. \n ": P; Z9 T e: X9 f, E1 {& }6 U. f7 t0 B
- ): }5 Q% B# i) M6 s3 x) C- `! `2 t
- (while (> cnt 0)
' E+ w4 O( ]3 I) f+ {) S - (setq tp(substr tx cnt 1))
, h- M# F; U' x. c1 L - (setq asc(ascii tp))
: E4 c2 U/ A: W8 ^3 R: k, q) i' F - (if (> asc 96)
0 C @& x% K( J" K' f - (setq tp(strcase tp))8 M: L0 J6 G6 ]9 Y# t0 J3 h! H
- (setq tp(strcase tp T)): B4 F7 q! @( a) W9 Z
- )' A& D- @( \' g! G7 K
- (setq newtx(strcat tp newtx))
: F; C7 ^5 P! C$ a0 i+ o - (setq cnt(- cnt 1))
. D( D- D$ z- `' j - )* C& T# J0 x2 L2 s9 k/ p
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))5 J6 _6 l, c3 H: l) `
- (entmod enlist)! f, G6 s0 M5 d. p+ R
- )
% F6 k! z) [% G( A! z& L' y2 _ - (setq note "\n....Text Only Please. \n ")6 j' d6 L% _* J. l
- )
9 w# z6 E" G6 N' Z3 X0 Y# K - )# E) F* D) b4 T# ]2 E
- (setq note "\n....Nothing Selected. \n "): H, g5 Z; {% o5 m
- ), ~3 n% e, ]: W! j) g1 I/ }
- (setvar "cmdecho" 1)2 ]) O$ X; n7 X- ~0 T
- (princ note) o9 A' `6 I3 X, u0 @
- (princ)
% w! q" m% F. z) G X6 r. K - )
) m, J1 b3 O2 d8 f; e5 ^2 g
, u) S. l' C# K7 y& B/ P3 U- ;=====================================================================
' o0 b; t- I/ o6 o, z' \. b' l - ;==================== NEW TEXT STYLE UPDATE ==========================0 R$ R5 U6 W& H% H: }9 ~1 `2 l
- ;=====================================================================5 X" d+ a: g, o* V: H
6 F3 t7 g- `0 g1 j9 S: L5 q3 O- (defun c:nS (/ tdt ssdt sodt index)7 r& q: q% P" R. J8 Z
- (defun ObjName (ssdt /)
1 g E3 I. c; w/ L- n* a% U - (cdr (assoc '0 (entget ssdt))), o7 }3 @" j: _' ? V% K {0 U
- )
# ]/ Q5 t& a U4 j2 n& C% t - (defun MoPL (ssdt /)& K$ D4 V: ]9 Y" p8 G# J* L' ^ ~
- (= (cdr (assoc '70 (entget ssdt))) 0). s" K# U7 w1 K# b
- )
5 f6 m2 I) f# P; ? h( { - (defun NoiPL (ssdt /)1 ~$ x3 r' Z9 L4 C; I
- (if (MoPL ssdt)
" K3 [# \/ z/ ]; N - (command ".PEDIT" ssdt "J" "All" "" "X")5 j8 [1 o$ L4 i; N3 G, ?
- )' K- O6 z) ]; ~7 W1 U7 x% J
- )/ n# A9 v1 {+ c' b% k
- (defun NoiLC (ssdt /)
9 \5 o/ H, P' S4 {0 V: S6 h5 s - (command ".PEDIT" ssdt "Y" "J" "All" "" "X"), u Q* N9 s6 L( }
- )
9 c, B; ^( n1 Y8 C - (setq
: q0 l8 P3 D Q! }( u7 t% W* I0 i, F - tdt (ssget)
) B3 ?/ ^2 T% v& q5 C - sodt (sslength tdt)
9 o4 j; l% ^2 p - index 09 @4 C. Q# i* D
- )' H7 _- n% G- U t
- (repeat sodt& ?. _. W7 ]& n- g: \
- (setq( u2 z R8 R: M4 W9 r/ L
- ssdt (ssname tdt index)
# J+ f) Z* }! ?* j: ^+ N3 B7 M - index (1+ index)2 K( M# e2 R% ?8 {
- )
/ _+ `& w7 i) J# m: { - (if (or (= (Objname ssdt) "LWPOLYLINE")
- O4 [7 h4 ?( S+ a! J+ y+ T! i - (= (Objname ssdt) "POLYLINE")! I2 L( N' g3 ~0 i& y- P5 I- K: x' \
- )! m$ k c4 Z- i8 }- j( d
- (NoiPL ssdt)3 n% \! R+ i4 H8 h
- )
4 I$ e# { q! I* n4 l - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC")) c5 f2 {" [- Q5 n$ L: ?. J) d/ J
- (NoiLC ssdt)" C1 @" L2 `, d- `0 `3 T
- )" {: p2 @% J6 M1 k4 g
- )
% I7 M" ]5 `( I: J$ W) \ - (princ)
) r5 G4 _( f1 U. }7 n - )% N0 z2 {. \- O6 Z8 }3 M
. z# o" ~! y9 G. a+ @% Z- ;=====================================================================6 e! k; l) g+ F0 X/ R
- ;;; AREAM.LSP
6 [( U7 I/ c: @ - ;;; Function: Calculates the total area of selected objects3 V' X! a" `/ }4 ^6 c/ s- x* A. O
- ;;; By Jimmy Bergmark
j1 Y7 `, S5 @1 k6 B* Q - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved. N% z2 y3 |* M2 k% W, U% ?* G
- ;;; Tested on AutoCAD 2000
' B# D9 p& R. q5 C' ^
" m! N3 Y5 Z" _* r) i1 v5 R- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)5 e* @3 @! X/ \) ]# c/ {
- (defun errexit (s)- J$ Q. \+ B0 b, W9 ?3 \/ J
- (restore)
0 R- c; ~: E o R - )6 }' [4 T# }; U7 R; v1 b/ [' v* g
- ' m5 o3 b% E1 j) `: G
- (defun undox ()1 W9 ]" L. y$ e
- (command "._undo" "_E")
" }* r. g' F: |, L1 ^2 `& G; _ - (setvar "cmdecho" oldcmdecho)
6 y9 e% G/ [; p1 {! `. ]8 {' m$ Y1 d - (setq *error* olderr)
$ [( T" w: @* j. ^ - (princ)9 z& A& p/ ^8 g8 W' Y. ~
- )
3 t: \9 j' N4 Y& I( Z$ T6 j1 i& U - 0 d/ ~6 W. A- S2 U( Y
- (setq olderr *error** Z: G3 f! W: T! U; k
- restore undox/ E/ Y/ F1 \4 S
- *error* errexit3 q0 p, T5 U, k" |. L
- )
% G: G: ^2 k- V - (setq oldcmdecho (getvar "cmdecho")); o9 c/ c+ m' f2 }" F1 C$ I( |
- (setvar "cmdecho" 0)4 D+ G. s8 |! d* p
- (command "._UNDO" "_BE")+ ]' l6 b* _3 h0 g
- (if (setq ss1 (ssget '((-4 . "<OR")
/ Z* o7 q, X9 N - (0 . "POLYLINE")# |/ Y! ]) h) s* ?2 ]& S
- (0 . "LWPOLYLINE")
4 h& V5 w: [/ |5 M - (0 . "CIRCLE")
0 V2 C0 {' Z: q+ e0 S - (0 . "ELLIPSE"): h0 ~9 t0 ?4 s+ E, z# [
- (0 . "SPLINE")# U. I, j. S* o8 d+ B2 P, P& _
- (0 . "REGION") j' v6 }! X2 A6 E v" |; E
- (-4 . "OR>")
A q- }9 c* t5 e - )
6 y8 {! o- k, f - ); R8 B0 z3 ]2 b {. U" l
- )
# ?& o, c. B2 h0 X - (progn
9 V6 K3 O2 j% D1 ?9 p& C/ r - (setq nr 0)" r i# D- \0 y' S3 d; U
- (setq tot_area 0.0)
6 q9 c0 c/ C! T8 @: ~4 L! f! j8 f+ K - (setq en (ssname ss1 nr))1 m" S6 K/ P/ g7 I' P$ ~+ e* H
- (while en
# F) x6 x- e( b' X7 p4 d - (command "._area" "_O" en)
! O9 o' k8 b7 h9 ~! [ - (setq tot_area (+ tot_area (getvar "area")))+ Q, g3 W: K. f) I, n. C6 _
- (setq nr (1+ nr))
) w, i! a8 A% ^7 k/ z - (setq en (ssname ss1 nr))6 Y7 g$ ~; i, Y0 n. a6 @
- )
" {; r- s. c" a: c } - (princ "\nTotal Area = ")
/ {1 T7 D1 W% S1 d* O! k' F - (princ tot_area)- |1 l: ` U7 e" A
- )
- ^. }9 V* w; @8 F0 w- N& g) n+ I - )* s) I3 F* c; ^0 I
- (restore)
% ]+ V ]# P+ U9 M2 h2 e( B* O - )
. c8 v$ a/ b0 k9 Z3 q4 J5 p, q9 t - / B) m; T' o, N3 ?5 i" U
- ;=====================================================================
; v; J$ K. l' |% j - ;;; By Jimmy Bergmark# }2 J% _4 t: |4 V
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved: a1 E1 v' ?$ {) v: @1 f; Y
- ;;;
3 C' k$ |" w- m( o/ P7 y - ;;; Created: 2008-03-318 b7 }3 [% q/ H
- ;;;2 t% Y3 ~8 Q0 e/ j* y4 u& W
- ;;; Convert Attribute definitions to mtext+ W: H, z9 V( v: a q
- ;;;3 ~: j, W1 F' s' q$ f* q
- ! l! N8 O7 B6 S) f
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
5 u: j( y9 Q. G5 V9 d6 a - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
4 y# H7 i* H, U) U - blkcnt 0
5 C. ?# }, I: O - )
, V" Q; x& m& E. u8 G
1 L; y; q' l9 p* ^2 R# y- (if eset1
8 W& K: Q" n9 R5 T) S - (while (<= blkcnt (- (sslength eset1) 1))
5 t, e }& H7 v m- q - (setq en (ssname eset1 blkcnt)
5 v" s8 ~3 A! x) r4 o6 b - enlist (entget en)
0 A, h. e6 [8 ^/ [5 ? - ht (cdr (assoc 40 enlist))5 H% S0 U) A% t7 v
- pnt (assoc 10 enlist)
8 c5 i3 ]$ l" S( Q - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)- P" N8 I& v3 S" Q% N* }2 N
- space (cdr (assoc 67 enlist))
( |$ S9 t$ B2 S# w1 i0 Q; P. l: } - )- A8 ?8 ^, r4 w& |
- (setq vl (list
! p' z% ]/ h, b) N - (cons 0 "MTEXT")
; M9 ?1 J2 D; B( ?+ N, P% G - (cons 100 "AcDbEntity")
9 [1 x" K Z4 N7 W- ? - (cons 100 "AcDbMText")( r1 A5 ^0 `2 Q& y2 T1 [
- (assoc 7 enlist)
4 _% Y; x: X3 H4 k - (assoc 8 enlist)
. t2 _% I6 D$ Y4 K/ ^ - pnt
3 p* a: J- O! ]0 g" z/ b - (assoc 40 enlist)7 `6 s. l6 h9 q# s9 ^: D" |8 E( \; ^
- (cond ((assoc 62 enlist))) S' \, Z3 c w5 z0 A; N
- ((cons 62 256))% k8 P* L) c5 C
- )
6 c! u2 O! M1 ] - (cons 1 (cdr (assoc 2 enlist)))# W5 y0 z& g4 E/ B# r
- (if (= space nil)
- O. ~) n; Z( p- m, ]+ F6 u3 Z - (cons 67 0)# ~1 U/ B1 h! n, b
- (cons 67 space)
1 k. \8 w+ b% p) R' e - )
/ H; q( h5 S8 v+ O1 ?! D4 Y - )
/ o- F9 O# \. a1 _1 T - )
% @. h1 r% z* s$ ~ - (entdel en)2 j6 L& f" t. @. F- p0 q" p. {
- (entmake vl)" P* Q2 y. g6 Q
- (setq blkcnt (1+ blkcnt))& }8 U( a1 N1 \) }4 F) G# z
- )
! g( ^ j" J( N- K - )4 ^: R0 w9 B. r8 w3 O% ^1 a
- )
, S* h% w# O+ v4 @6 [; \ - ' J. _. S% s+ \) F% t! _ ?& R
- ;=====================================================================1 C [: @3 N/ |8 e
- " ]# N, A! U9 R% L# w
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)# e* h/ O" f, Z( A) x- n2 g' O. h
- ; Khoi dau cua chuong trinh
' r- i5 K4 ?8 m6 Z - (princ "\nCopy Inteligent...\n")
: u2 W8 Q6 i6 F @5 B - (setq luuecho (getvar "cmdecho")
6 J- A- t' v+ v. e) b/ J% |5 G. q - luu *error*# M6 m7 J5 D) f9 {) L- p8 _$ p
- *error* ketthuc0 T: y3 ~! `' P
- cumdt (ssget)
* L0 B! B: X* u& V - dodai (sslength cumdt)
& `( ]) F. P7 B& Q - goc (getpoint "\nSelect base point:")
( e8 E% `, d- y7 n3 o - thoat nil, Z' n" _" r7 I% {+ i) N
- dem 00 ?0 z! m0 e3 l+ _$ T& l6 ^
- textxl nil
4 n1 S7 Z) Y/ ^( h* _ - );5 b, v1 d ~' u& J. S4 r# j) @
- (setvar "cmdecho" 0)! W" W: p3 s6 f3 o
- ; Loc ra duoc ong text de xu ly
9 o) L- W* U+ ~8 s# F$ p2 d" U - (while (and (= thoat nil)
1 Q+ _# f$ h# B1 z. O - (< dem dodai)
) d$ W) K5 c8 N( b9 ~) Y5 Z - )
( B% x$ @; i" L, L9 ^; w - (setq ten (ssname cumdt dem)0 h' A+ ?: h/ V' [ p7 G2 L2 d3 Z
- dem (1+ dem)
+ [7 o/ s2 `8 b; s9 g1 B& T; R - doituong (entget ten)
' K& ~- ?9 t4 @ - kieu (cdr (assoc 0 doituong)) 2 g! L6 l! C: u4 {0 i3 z( T( m
- )
, I3 H3 Q1 G+ J) ? -
% d( G8 H+ O t+ d+ q$ i - (if (or (= kieu "TEXT")# I# W- U+ X- ?9 k6 _6 ^
- (= kieu "MTEXT") ; y1 p& U8 h) g6 `# L! e6 Y7 A
- )! M, w/ [. h+ \1 W/ K
- (setq thoat T
4 b7 c8 ?- F' @7 v# } - textxl (cdr (assoc 1 doituong)) / A- d& X d, @; w7 k
- )
/ }! l. K5 e# M2 {* k( g& l9 x- c - )1 r( S2 ^0 X$ Y' m8 j# N$ C
- );
" y7 q A4 n# S2 L A7 [- x i - (while T % U1 i' J3 j* S+ e; G# F
- (setq toi (getpoint "\nSelect next point: " goc)! z5 O$ y) j) V3 \
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
3 r/ _- @5 h3 b# p# X6 K; G! M - dem 0+ w, E& A, b) m y
- )6 |4 ]( {! Z6 l9 |3 P8 w. }2 O
- (while (< dem dodai)
! D6 p& p4 G* n+ `% T: O3 v - (setq ten (ssname cumdt dem)
, ]. ~4 A# j/ H7 t - dem (1+ dem)
/ d+ k9 F( ?% X! Z5 d7 k1 a7 J4 D - doituong (entget ten)9 g( u/ `) S7 I( w& A
- kieu (cdr (assoc 0 doituong)) . V( u2 }& C) V4 O V: a7 Y
- )) }1 e% {. a$ @ t; d
- # c$ v- C6 e+ J6 q+ s h7 f
- (if (or (= kieu "TEXT"), t8 f; N8 G6 J: q1 Y3 s) W
- (= kieu "MTEXT") - e! f3 q: l1 c; D( y9 q8 f% a
- )
1 @& x: n' d4 m+ L$ S, `0 V) {9 r. P - (doitext ten)
0 X7 O6 E/ m5 f4 l! w - (copy_dt ten)
# U0 U1 B, G$ B) { - * K9 ]& F- i# u! u
- );if: ~1 C2 ^# k" o) d v) c
- )+ R8 _# G9 U* Z" X
- );while
. _' h o- z) l% u- l! g2 e - (ketthuc)
+ y% j. D! x$ Y; t1 l5 _: o - );defun* |6 O& N4 M. y7 s% L! x
- (princ)! y0 K K( W1 l Q8 I' _
- ) i6 f4 I( C w
- ;=====================================================================! u5 p7 z8 r; O0 @9 c( H9 X$ h$ K
- ;;; By Jimmy Bergmark0 Y {0 [$ f+ F3 \$ \: U
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved
2 B7 ^# Z' `$ ~# t. p2 j - ;;;
: r" Q) c$ l. n0 e - ;;; Created: 2008-03-31, K4 K6 r ^; ]+ O: [
- ;;;$ A/ o# t0 B; M3 S
- ;;; Convert Attribute definitions to text
+ \* v3 i0 ?/ E' [( c( e# f - ;;;
: J) p2 a% M3 a( p. x - + `4 k; c3 w( P3 m% s4 S% G8 }
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
( V! \. m8 ~ s/ S) Q' O* c - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
# ]+ ?0 T2 `& l2 X - blkcnt 0
& \! z! |% ~4 m - )
! w( [/ L7 H1 a5 @% c - ' L. h1 V* `0 p, c: l$ r5 |
- (if eset1
! a" J) G3 E- F% l: r7 \ - (while (<= blkcnt (- (sslength eset1) 1))
, o8 `% Q8 Q& C1 N J4 m2 S) p# \* J - (setq en (ssname eset1 blkcnt)
9 j, c7 K6 k1 S9 Z- {" i6 J/ X5 J - enlist (entget en); G5 Z p0 p1 U) C& T
- space (cdr (assoc 67 enlist))
# T4 \* t: i9 R4 p6 K& H - )
$ |1 y, O& e7 H: N# t# ?3 c! S$ r - (setq vl (list
8 U0 e' E6 L# L0 P* h$ ^, t - (cons 0 "TEXT")+ Q7 C$ l* X7 k1 ]
- (cons 100 "AcDbEntity")
2 c2 L$ n+ d3 {' V' B, M" O: K. a - (cons 100 "AcDbText")
, S! u8 G" O# ?* l7 S8 x - (assoc 7 enlist)1 ^2 u+ V- c2 H( R6 a* `9 Z) u# ?2 ^
- (assoc 8 enlist)) ]* N; g9 C; Z: J9 u
- (assoc 10 enlist)
. ]$ G5 f' V7 C1 h. r7 P - (assoc 40 enlist): o6 o% g) F$ Q, }
- (cond ((assoc 62 enlist))
/ L5 W+ ~/ V! |" p - ((cons 62 256))' _9 P8 N5 R# }
- ) S# J4 p7 c/ k3 U
- (cons 1 (cdr (assoc 2 enlist)))+ A! L0 z% K$ K7 P8 f$ w7 e$ I
- (if (= space nil)
# ^* p$ K0 Z% v; w - (cons 67 0)
' U! Z! \& a7 s$ ] - (cons 67 space)
, e0 i% t d$ ^: F' I- C9 \( m3 h - )) G" O$ U2 n9 o/ `4 S
- )1 {; H1 r4 }7 w+ m7 M- V3 P. t
- )
' j+ @; R* ]/ o$ f) V% ]: d - (entdel en) C4 ~0 z1 d1 v: {
- (entmake vl)8 U7 G6 \0 C1 V$ Y/ c/ x
- (setq blkcnt (1+ blkcnt))
& ?. B% _. U9 w; b) ?9 @8 N6 B. r - )
, B) o" [% j& y* ~9 W. R - )- m9 }' U2 ~+ N- J
- )
. r; Q- Q t: f9 J1 A3 Q - ;=====================================================================& _3 X7 f( d I2 k# e8 M4 J
- ;============================ Doi Truc ===============================& d L8 c6 W4 H0 Q! B3 Y% R" e
- ;=====================================================================
8 m" c6 Y; x; f& X/ u: G# [; C& n - % K( p- j* Q$ f; c6 Y3 ~
- ;=====================================================================6 M' z6 b! s3 o8 t' h
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
% L; Z, E2 N0 v - ;=====================================================================
) d, K7 ?% ?* X$ A" S - (defun c:ga1 ()0 i$ N1 W, Z! W6 f; x5 P" j
- (setq a (getpoint "\nChon diem: "))! u8 j9 ^4 m7 x) Z) t3 [
- (setq b (getpoint a"\nChon diem: "))) f1 k# o1 ~6 x) b( N5 X
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" i% K+ r2 S# D
- (command ".circle" c a)
; ]9 _0 R" r2 p- p1 ]8 s& b) W - (command ".line" a c ""): U$ h& o0 B: n1 f& _( t$ v: ^/ W
- (command ".array" "last" "" "p" c "1" "" "")
+ p% o* A9 p3 G" W: z3 B: |, F - (princ))
* i1 {6 Z5 C! M
1 a9 j' |; u& g) K+ }: e- (defun c:ga3 ()4 [5 J% M* l* F" g1 ]: X: @
- (setq a (getpoint "\nChon diem: "))
( S4 r7 a' p2 P. a5 Y3 y" U) w: n - (setq b (getpoint a"\nChon diem: "))
6 V, j& t; g/ Z. ^. e - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ M b9 _2 o U. @# ^% P3 t
- (command ".circle" c a)
: A* Y, A! m: `9 T5 _: C0 Y( u; ? - (command ".line" a c "")
4 m8 E9 b/ n+ T - (command ".array" "last" "" "p" c "3" "" ""): L4 L8 @! a% i' w
- (princ)), |2 a0 W- I& Z8 a" I# Y* K- d4 S8 k
7 j6 z& d K+ O# U- (defun c:ga5 ()
0 k- u& T% M9 R9 U: I) k8 q/ ~ - (setq a (getpoint "\nChon diem: "))7 [3 K* a% r3 M0 y; W4 a9 h$ t* r
- (setq b (getpoint a"\nChon diem: "))$ s; Z" F: r6 K6 x. A
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 O* |, {+ h9 }& K
- (command ".circle" c a)5 n( s2 X% _$ h7 Z% L5 e% _
- (command ".line" a c "")( i, V1 N! l7 T, {- {0 x0 s
- (command ".array" "last" "" "p" c "5" "" "")/ S1 t- V" e& |# o
- (princ)), R! X% `: f( s2 n
; O3 l; N( Y2 Y4 o$ ^1 c- (defun c:ga7 ()# r& T1 c2 C! C" m' h2 A; _
- (setq a (getpoint "\nChon diem: "))1 @( P* B# L; T% ?
- (setq b (getpoint a"\nChon diem: "))
) u1 |2 M/ L* G* q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 J8 G5 W- m* j1 K - (command ".circle" c a)$ w# N8 O+ J g2 k* S! T' t% @! C: r
- (command ".line" a c "")
& H9 F" o6 v5 a5 ] - (command ".array" "last" "" "p" c "7" "" "")0 }+ k' I. B& Y
- (princ))
3 v/ i$ a" j; h6 V! q - / {) l/ _$ M1 v7 h# q( Y0 Z
- (defun c:ga9 ()4 a& B( y( P! h$ J( B5 V
- (setq a (getpoint "\nChon diem: "))
/ E/ f ^5 x/ e! q - (setq b (getpoint a"\nChon diem: "))
( a8 ?1 i. ~& C# @& A1 ?6 W - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), U, t0 _; M& H7 Y# X1 W
- (command ".circle" c a)7 ?. [9 Z) r: a# U+ ]
- (command ".line" a c "")
$ g: p% d9 `5 \5 L. ^ - (command ".array" "last" "" "p" c "9" "" "")5 P2 M! l) ^" B) R5 q/ a5 S
- (princ))+ h3 z( L! {1 v
- & e0 a5 N) Y2 ^
- (defun c:ga11 ()5 L2 n* Y3 s- U [ ^9 j/ @
- (setq a (getpoint "\nChon diem: "))0 R8 P1 {- Z# r' {9 |
- (setq b (getpoint a"\nChon diem: "))
* k3 {/ i# Z# D" \+ Z, v+ A - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& ]; f4 m5 N( _4 H* x% a" G+ p
- (command ".circle" c a)6 f( [3 F3 ^# E
- (command ".line" a c "")* G# b+ B4 M( q( _+ p# b( O
- (command ".array" "last" "" "p" c "11" "" "")
# ^6 K; p/ l2 o' l - (princ))
2 S* v( }# h+ I" W
8 |5 e5 _1 }, s5 f- (defun c:ga13 ()
: b$ J$ `- y5 @ - (setq a (getpoint "\nChon diem: "))5 g( c. k/ b$ f- I
- (setq b (getpoint a"\nChon diem: ")). O7 W2 P& Q1 o0 s2 W3 W
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, u- D( I, P4 X# Y# c( D5 z - (command ".circle" c a)
* [: x* e/ T E" x2 v - (command ".line" a c "")
8 a8 |- I1 g. T* t6 M - (command ".array" "last" "" "p" c "13" "" "")+ A; f1 P; f- ~
- (princ))0 F; W+ O6 N6 X y. s0 T0 `! U
* h$ U9 S( r% w) p. `# G- (defun c:ga15 (). g' ~* @+ F" N; [
- (setq a (getpoint "\nChon diem: "))" i) E" G! |$ q" c9 O, N( a
- (setq b (getpoint a"\nChon diem: ")). ~, l- n* ]# W4 X
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): ?" O3 S# F/ Y$ Z3 a# l
- (command ".circle" c a)
$ q2 r! ^. ~, ] B) J - (command ".line" a c "")
9 a- U$ o/ S; p+ E( v! ` - (command ".array" "last" "" "p" c "15" "" "")) H7 E2 m7 s s0 `( w. [
- (princ))
" o# w' o% \1 L. _* E" b+ n - & z( o q) @ E" P6 |1 q* q
- (defun c:ga17 ()
5 {; T/ t4 ?% X1 C5 u) e - (setq a (getpoint "\nChon diem: "))0 @% F L1 q* \
- (setq b (getpoint a"\nChon diem: "))% o' e3 l1 d( v, m
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ C! S T% q* [" L6 X$ x+ f, d: d$ w
- (command ".circle" c a)
* s$ ^4 [) s% U3 B$ b" U8 _$ t - (command ".line" a c "")
]0 F. T7 h: f( X7 n; x - (command ".array" "last" "" "p" c "17" "" "")3 m2 g/ g: f9 Y8 U x6 u
- (princ))
c m# l! Z8 _" r& R1 l/ m i: n - 1 L P/ g2 R9 s2 N) Z, e* H# j% `8 S
- (defun c:ga19 ()4 D" I! M; d- w+ c$ C) P
- (setq a (getpoint "\nChon diem: "))- s/ o! x6 Q9 l& m7 p
- (setq b (getpoint a"\nChon diem: "))/ q1 v, M* G6 R2 |# J9 }2 e3 \
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ z; g! y1 A! l: w2 h& H5 _1 f$ }5 h - (command ".circle" c a)
& K4 i4 f+ U8 Q7 n6 I) M - (command ".line" a c "")
) G. o( u: d7 | |- p: n0 m7 D4 V - (command ".array" "last" "" "p" c "19" "" "")
$ w% R5 W3 f; c, @' P6 o - (princ))) ?2 o: [9 H2 G" M4 T
- ?5 b9 S( _" m( ?
- ;=====================================================================
1 E9 U) K1 H- A5 k3 { ^; @9 H' q - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============5 n8 Y! f/ v2 X
- ;=====================================================================7 w# o9 @9 |' `; F3 C' a
- (defun c:ga2 ()' \* X9 h& [/ W7 m1 n0 Z
- (setq a (getpoint "\nChon diem: "))
; r* `8 C. k4 _ - (setq b (getpoint a"\nChon diem: "))
1 s9 j' r8 v; a# U; S/ O - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# B8 M: f% b: d1 S' {0 [$ ~
- (command ".line" a c "")$ ~7 l# z' M+ l
- (command ".array" "last" "" "p" c "2" "" "")) E% r3 u5 A' q) R9 {) U
- (command ".circle" c a)" L2 D3 K4 W! I9 J
- (princ))0 D* s+ ]8 P$ U8 ^) ^& a- v5 G
4 d6 J& L! g$ U- (defun c:ga4 ()
# y2 J2 @' p, _+ _ - (setq a (getpoint "\nChon diem: "))
4 y& ] k( u( k - (setq b (getpoint a"\nChon diem: ")). k7 X2 ?( a8 l8 e
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
] Y0 r' v6 b( C D- E' a - (command ".line" a c "")
$ b+ p0 B0 |& H+ R& B. Q3 q - (command ".array" "last" "" "p" c "4" "" "")
. C) Z+ M+ R a4 k j - (command ".circle" c a)
* y+ }2 F) M# ]- i - (princ))
{- [9 s( }+ W3 Y
8 s# s; d3 H7 \$ N# z" q- (defun c:ga6 ()' L6 a: d4 ~" X- k, E+ d. S
- (setq a (getpoint "\nChon diem: "))( n" I9 I8 z" h" _+ s- W# c0 L- p' n' l
- (setq b (getpoint a"\nChon diem: "))
4 \( r! S/ e% v. q2 A - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- _/ w, R! g, N1 }
- (command ".line" a c "")
* ]' P8 z A# N% }! b - (command ".array" "last" "" "p" c "6" "" "")% }0 H+ n5 } l# `5 z0 I
- (command ".circle" c a)
" ?3 `' m; ~7 h \% y- d" P$ g" D - (princ))) ~3 \# L9 m3 N( | b! ]* _: Q
: C+ m& e9 \9 k k+ }5 ? \6 Y' Y- (defun c:ga8 ()
: i! g' m. ^0 Y. n; k3 V6 m& C - (setq a (getpoint "\nChon diem: "))5 B$ V0 y! `# n, v
- (setq b (getpoint a"\nChon diem: "))9 g0 O% k- L" _& R
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); D E9 P# D( k0 y% J% n+ }
- (command ".line" a c "")
3 @: ^7 [& \" r' K- E - (command ".array" "last" "" "p" c "8" "" "")4 T1 U' A# t V
- (command ".circle" c a)+ X" S+ A/ Z& T8 }3 c1 `1 K
- (princ))6 R# r; z3 H4 R4 T7 A: s5 i' q
% m' v4 ^; |! k, Y8 X6 C- (defun c:ga10 ()$ X/ f6 ?8 c0 I" S0 p% z$ {# M
- (setq a (getpoint "\nChon diem: "))
8 i4 M0 \3 P7 }1 E - (setq b (getpoint a"\nChon diem: "))$ G2 j% f( K* g# [
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" P& i8 a7 a: e% O4 \ - (command ".line" a c "")
. g5 A: J! z- B( Y - (command ".array" "last" "" "p" c "10" "" "")
# H+ r; i% U8 Y A* ^0 X - (command ".circle" c a)
* T. _: Y) a) \8 M5 H( S, @ - (princ))
9 n& Y9 n# [. ^9 T9 f - " e8 d* D, P/ _: |7 F h$ w* o
- (defun c:ga12 ()
" f# }( z* l: J' V1 F6 Q8 R - (setq a (getpoint "\nChon diem: ")): p/ f/ i0 t6 v' Q
- (setq b (getpoint a"\nChon diem: "))( L4 Z, p9 @( o4 Z T- R/ i
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ l* j) }; L/ n+ `# K - (command ".line" a c "")
4 r. a& `1 ~4 {* t/ t) u; x8 m - (command ".array" "last" "" "p" c "12" "" "")
7 p$ V- |( F# j0 Y F# m - (command ".circle" c a)
; I0 X+ m3 W* h - (princ))
7 [. W& e/ g4 c2 W6 R6 Y
. `( Y9 d0 s! V- (defun c:ga14 ()
: ]- b2 {/ J# q6 E7 p! v2 ] - (setq a (getpoint "\nChon diem: "))$ W8 _: r5 \, G
- (setq b (getpoint a"\nChon diem: "))
& i. y: j4 Q! m F - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
) w' h# j+ m# S# e" V" K - (command ".line" a c "")
; M# e! X3 F! W1 \3 |' r! F% K - (command ".array" "last" "" "p" c "14" "" "")
7 ^6 B, `: I2 F5 Y - (command ".circle" c a)
# s2 q5 H; ]- Y# O- E - (princ))" i$ v& @- L0 o- q$ R# r
3 g8 ]: L' {# N; Z! Y5 Z- (defun c:ga16 ()
0 d' S3 J1 V7 v S - (setq a (getpoint "\nChon diem: "))2 R$ \0 P& P& q$ A# ]( t: I; ]& ]
- (setq b (getpoint a"\nChon diem: "))# \( Y& y9 V! k+ i( y
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 ]# P* J. i& o( I! V
- (command ".line" a c "")
$ r0 @8 n( J5 F, y6 I. O; T! y - (command ".array" "last" "" "p" c "16" "" "")6 U9 v0 y3 \% K* |: J7 c
- (command ".circle" c a)
; Z% N8 ~! q% x1 T3 `* y( [ - (princ))! q8 P4 f6 d" `1 K9 @; D+ w
8 N/ W4 Z2 J6 M- (defun c:ga18 ()
) @- [5 e4 A0 h - (setq a (getpoint "\nChon diem: "))
. q% C, t3 P1 @8 t+ b: U - (setq b (getpoint a"\nChon diem: ")): N" x/ n5 u( Q. I, g3 ]8 u
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 \1 P4 _) R/ I# X3 U7 L3 B8 I - (command ".line" a c "")
& Z" _# k8 F. ^ - (command ".array" "last" "" "p" c "18" "" "")
4 A! E& r- J( p - (command ".circle" c a), g" b. Z O5 q
- (princ))% C9 K& s# q, S* {7 \ S
- ; l/ E8 w( z: [/ ~0 b
- (defun c:ga20 ()
" P, t1 X) R' M! D9 d/ s - (setq a (getpoint "\nChon diem: ")), e- U6 I9 d6 O! x! G
- (setq b (getpoint a"\nChon diem: "))
& u% Q9 r L+ d5 O5 x8 e - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ I5 |# c( ~. O- w9 a - (command ".line" a c ""); h; h- T" w: {
- (command ".array" "last" "" "p" c "20" "" "")
% J1 P0 M( j1 t7 |+ `& l+ v - (command ".circle" c a)! F! u( e7 ]( h
- (princ))1 a. u; R$ _) Y) r& t$ w- e5 ^
- 1 z# x3 G. t5 _$ L: S. ?: c) \
- ;=====================================================================
r3 f6 ~$ K4 _* H, b d3 g, g - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============, F6 H. E! D: F! C6 j! f- N
- ;========================== 06-11-2016 ~ 18h00 =======================
) m6 e9 D/ k6 J! k$ Q/ Z4 m - ;=====================================================================
: K$ I) } n& I% B+ A- L1 C6 X( ` - (defun c:ga (); w4 k) y6 w$ l' s) G0 o& D
- (setq a (getpoint "\nChon diem: "))
! k# I# f! S7 x9 P6 A/ h8 B - (setq b (getpoint a"\nChon diem: "))
+ U0 q0 A, V4 E - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ P# t8 W( T& ` Y3 ^* n) h6 I
- (command ".circle" c a)
) r1 ?7 U- W2 \% R7 r# G - (command ".line" a c "")
9 D' z0 a7 d! s2 r% o - (command ".array" "last" "" "p" c "NUM" "" "")+ w: W! e2 z% M3 ^4 o
- (princ))
9 b: F7 u: Y0 p7 ]' Z5 `
z. j' o% s3 K( l. ]- ;=====================================================================# ~2 a0 b! E- Z5 R {2 ]
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============6 [ E' B) L) V8 Y' ]7 n: r( @
- ;========================== 06-11-2016 ~ 18h40 =======================! s# l6 B3 d' g0 R# W9 g3 u: i8 u) s w$ u
- ;=====================================================================7 j" @& x+ ^, K" k2 m g @, q- k' L
- H% t3 B5 C/ o0 s9 g$ B, }. x B
- (defun c:hoathi ()
7 Z/ K- Y# C2 U4 f, b - (setq a (getpoint "\nChon diem: "))1 T3 Y' o9 \ l4 i
- (setq b (getpoint a"\nChon diem: "))
# p5 l8 q" m. o- L) | - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 i! D$ @3 f* t! S- K3 o( p - (command ".line" a c "")9 n" v' p2 {1 _2 q3 \
- (command ".array" "last" "" "p" c "NUM" "" "")
M& x/ p H( y9 A5 H - (princ))" p1 {: P& w( D ?, G
( m- b0 L2 u8 R9 u( {4 R# L# ]) y- ;=====================================================================
* w& s2 ^) x2 W% c' k5 N" n - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============, A. w/ k# U' p
- ;========================== 03-11-2024 ~ 19h33 =======================
" m* a. e2 S5 V, r) d' N - ;=====================================================================0 c5 `% U0 ]% s2 c
1 m7 i1 I q( n( I3 g- (defun c:cung ()
, K8 Z5 v/ g- n" }( X5 B - (setq a (getpoint "\nChon diem: "))5 J5 F0 d+ X; H) d
- (setq b (getpoint a"\nChon diem: "))
) j$ \5 q: }! D& E$ ]- Y! f. j - (setq c (getpoint a"\nChon diem: "))$ W. o7 m+ z$ \; @5 F7 E
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. A# h% k, @/ ]8 d8 ~ - (command ".arc" a b c "")
2 c$ T! L! ?# M8 j - (command ".array" "last" "" "p" c "NUM" "" "")1 o& g4 f' @1 `8 ^; h9 v
- (princ))
* h' C7 D9 _( ?- Y - ; o% _& w+ o5 I' [0 L, E
- ;=====================================================================
! @- N' c% H6 V& O, e - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============6 L0 P9 Q8 j8 h6 v# _
- ;========================== 03-11-2024 ~ 20h02 =======================5 Z( H$ \( m0 l- D5 L. S# \
- ;=====================================================================0 j$ q8 S" z" n+ _& X
- 5 `9 ?% x% j9 [$ q- F
- (defun c:hecloic ()
b6 a- |" R' Y, H3 m% } - (setq a (getpoint "\nChon diem: "))
# O+ O. v) H/ v% H7 k5 T - (setq b (getpoint a"\nChon diem: multi "))
6 j* m1 w1 P e% g- ~7 |9 Z& l - (setq c (getpoint a"\nChon diem: "))(princ)
+ e/ d' {1 r8 a7 l0 v - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' K5 c1 u- y# V: S; b, N
- (command ".arc" a b c ""); Q- k0 r7 k2 n3 w
- (command ".array" "last" "" "p" c "NUM" "" "")
& @' Y) G# \ Y1 k. `" n - (princ))6 H8 D. r! l2 y8 k7 F
2 D6 L2 X: v+ ~1 a& `/ p- b- ;=====================================================================
/ L# k. O* R F+ m8 b - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============1 ^! b9 `1 g/ T6 k
- ;========================== 03-11-2024 ~ 19h38 =======================# s0 w4 R; p4 y Z
- ;=====================================================================, Y# r% u; ~" @ L+ l
- s) F+ M% h7 v8 {$ P$ E- O* e O9 W' [: w- (defun c:gay ()4 z! x2 S) E. ~' V: _- g8 _
- (setq a (getpoint "\nChon diem: "))$ p' M" q2 w6 `" M
- (setq b (getpoint a"\nChon diem: "))
% t2 Y" j/ _$ a* M9 }5 K - (setq c (getpoint a"\nChon diem: "))(princ)* T8 I2 q) T- s: d) W1 c
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 z% x! p5 W4 U+ I - (command ".pline" a b c "")6 o( I M0 t- I+ A: H. b& ]! `- U# ]
- (command ".array" "last" "" "p" c "NUM" "" "")
. ]% @; _( r- s/ D4 a0 ~8 I - (princ))- `- R0 b3 a& e4 [) ^! d" |9 e: c
+ H$ @4 j9 w, B! j D* j5 S- ;=====================================================================
! w+ d2 H1 a+ m9 Q* K - ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============0 ]+ X2 [: p9 E, r2 z$ V2 q
- ;========================== 03-11-2024 ~ 20h02 ======================= F9 w( P& u$ i1 ]$ }" m. D. {+ @
- ;=====================================================================. n& A2 A' I! C6 {
) f/ s/ E- j. M- (defun c:hecloit ()
; K! f; Y9 }) s( Z - (setq a (getpoint "\nChon diem: "))1 Z' m' W2 L$ U0 K- b7 k
- (setq b (getpoint a"\nChon diem: multi "))
' ?+ Q/ S7 p7 T6 v/ Z5 W. D - (setq c (getpoint a"\nChon diem: "))(princ)
! `$ X$ }% p6 }# z. _, k# l) X - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ i- X3 \7 Q" @ q- v2 a/ i
- (command ".pline" a b c "")
9 c' y; l" p, [! T" A& D - (command ".array" "last" "" "p" c "NUM" "" "")8 p* q8 M( U4 I- W" f6 S
- (princ))5 O; s" [5 n6 i/ t; \" P& B- i
- 6 S5 o2 e" z- K2 n* U1 J8 k
6 k% l% y9 C) I* B4 V* V- ;;; ============================ Merge Hatch =============================: }, F% ]+ T2 u: ^+ O E
- 3 I3 ^+ G2 w: ~; r! H: Z
- (defun c:mh (/ ss entht sl i dt dtht)
+ O6 U' i" a3 e' n% Z - 7 H& f; ]- K+ ]. q" U5 m
- (princ "\nMerge Hatch - free lisp from CADViet.com")
! |5 i" S) X7 m - 3 T @8 u" S f2 S. M0 Z1 A- T
- (setq
; b; O) V5 ?: _" ^ - ss (ssget '((0 . "HATCH")))
2 w+ P2 V4 ^* C6 [" v* D0 j$ M - sl (if ss
+ g3 N1 a" |9 Z1 S/ X - (sslength ss)
3 N3 _7 \% _. _7 k; U - 0: \) d$ O( h9 s
- )
8 w! v) q4 `# i6 H5 j& O$ R6 r3 V - i 04 o& j4 U# j5 a( `
- l 0
4 e( f' y5 E6 Q2 u8 d - )
7 N- B. s0 w; `- K5 o
0 N# u( M3 \/ S3 g, y8 {- }9 p% z- (repeat sl- y. V r9 {+ d( N
- (setq
& H- p& V- l8 K: ^" ~1 Z - entht (ssname ss i)( M$ M! V( \( }4 r$ a5 I' B
- dtht (getbdata entht)2 B9 L/ M. P N; Q% U# i
- dt (append dt dtht)
7 T9 n* e6 X# m - l (+ l (cdr (assoc 91 (entget entht))))& W, e0 O2 H4 R& `" M
- i (1+ i)
$ `9 |; g2 C( N6 G8 C) y2 W( E - )* k( z7 t) y# k% d4 l! b
- )' R; b5 V7 G3 t" }# J9 c; u: |
- 8 h! Q# F8 Z3 r0 [
- (setq ent (ssname ss 0)
6 X" _) _5 @% v! G$ | Y1 K* W5 G - ss (ssdel ent ss)9 ]1 f) r9 O- [/ R/ Z b) f( f( x
- tt (entget ent)
/ v5 j/ ^3 d" Z+ ] - duoi (member (assoc 75 tt) tt); U- b7 q2 t, ]3 [6 F: D
- dau (reverse (member (assoc 91 tt) (reverse tt)))) i. z7 A# ?# M T6 }6 V. m) B
- tt (append dau dt duoi): k7 n& ?- ~4 i
- tt (subst (cons 91 l) (assoc 91 tt) tt)( v( L$ h: @8 Y& J- \$ N
- )% E* B7 D- i0 T A, i8 F. l! u
- (entmod tt)$ U" k7 u/ Z+ E' }) P
- ; v6 L( S9 Q" B7 p
- (command ".erase" ss "")3 k+ I+ J6 V* L1 q8 ~2 Q
- (princ)- e5 z( E1 n* Y P" D3 {9 V
- )
5 |" d: W$ B) F1 Y% H8 v
4 ]: {% L1 o9 x- (defun getbdata (ent); p4 ~9 ^* d. P A
- (setq tt (entget ent)1 @# _: w- Y1 K8 |& a/ V! T0 q
- tt (cdr (member (assoc 75 tt) (reverse tt))), F( k' j3 x8 g) o4 J% J/ e
- tt (cdr (member (assoc 91 tt) (reverse tt)))
/ H' |6 Q- E& L$ Q* R/ X - )4 X) l% ?% S' e5 p
- )
5 ]& e( h5 V5 C. c3 U1 u# S - - H7 n: w+ U' R+ T- H& [1 J9 g
- 5 {% b, T. \2 W; a
- (princ)
. [& T% q' ?& n ]. V/ J - ' J3 }1 c) U3 n4 S
- ;;; =========================== CAC LENH LAYER ==============================/ X8 q3 Q7 V# W
- ;;; =========================== Layer hien hanh =============================* C W7 ^* h. V4 Y
- z0 L; g6 ~' L5 x3 d. Q) Q
- (defun layset (/ LAY) (setvar "cmdecho" 0)" w) O3 Y6 F+ B
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
6 b0 S7 g* M3 H* x- N - (if LAY (progn $ _$ e6 f% i% m( r5 j& j
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))5 F3 s) r# ^9 ^! k
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )8 T- }' v2 h) S+ f
- (progn! B9 ?. o$ Y' R T
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
, ]4 h2 s. k. S: A* l' K# O - (progn
( P& c+ y: K3 S# D- J. S$ T - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) ): B" \; @2 X% T
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))
, X( C7 D% t0 [6 v$ D* k3 T - $ q3 n1 ~& c( v$ H4 U6 ^& P9 E" r
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================$ t& g1 W7 Z- f; e# Y) ~, G
- 1 H. t4 B- [6 J, @
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
, {& J$ x! H0 @' k) A5 ] Z) ? - (if (not (setq SS (ssget "i")))! {$ x/ c' e6 l7 d
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")1 w% I. e" ~5 w9 G! ]3 H6 ?' F d
- (setq SS (ssget)) ) ): c9 k4 _! ]1 b6 ]1 K' N3 V; V* _
- (if SS (progn
7 d/ A2 A3 n5 W" {* S& u$ @& h' D. A - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") 9 G* J/ T# x/ L* r7 }+ T8 p
- (if (> (getvar "cmdactive") 0)
2 V4 Q9 m3 l$ s - (progn/ k+ E6 }0 S3 ]9 @
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )+ S3 R# Y, l& U# d9 b" f
- (setq SS nil) ) (if (> CNT 0)
% J& o) N3 K- |( K) ?- Y - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )8 P; T& d1 N1 ^
- (if SS (progn* h) g8 H- ?* @
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")2 }3 h( _, z/ J2 @
- (if (= (sslength SS) 1)
' y" t' V. z2 h, u) i - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
6 M: \- j3 P6 F# }" a - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end& p% E; `; _& V' F
- (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
2 V9 ~1 \6 _) N# K6 x% r - ) [. W3 M; z7 h" E+ ^8 @, i( L: R
- ;;; =========================== Layer Iso ===================================5 i. u3 b( _" H/ Y7 Q7 g6 H, X5 ]5 N" a( i
* m, z! g* D" F: q6 A- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0): {" s/ O' J: L' J, | [2 D
- (if (not (setq SS (ssget "i"))) (progn
. b+ j2 |- y3 }. M - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")$ Z& J5 c' |* I: D5 i
- (setq SS (ssget)) ) )/ Y# U' M: b; e6 I& \3 l1 n# a* R
- (if SS (progn (setq CNT 0)
$ U! m% g% E: r# B0 `' e - (while (setq LAY (ssname SS CNT))
) H8 O+ p! Q" [" T% @7 T - (setq LAY (cdr (assoc 8 (entget LAY))))( J8 [3 i4 {' M3 q( e$ K& k3 C, I) r. B
- (if (not (member LAY LAYLST))) I, \5 r) ?+ S, z0 w5 y# t" e2 \3 B/ e
- (setq LAYLST (cons LAY LAYLST)) )
$ Y B2 _- ^' T1 v - (setq CNT (1+ CNT)) )$ F r* d& _; l; C! s$ B& B
- (if (member (getvar "CLAYER") LAYLST)+ {7 w2 W7 U9 r! J/ g: }* U0 {# {5 Q
- (setq LAY (getvar "CLAYER"))1 } o; m8 i+ l5 M( @! [
- (setvar "CLAYER" (setq LAY (last LAYLST))) )
5 y/ S9 h6 f! @' X4 |9 O - (command "_.LAYER" "_OFF" "*" "_Y")
1 k: C$ M0 ?% g0 ^5 }( ]2 b( h - (foreach VAL LAYLST (command "_ON" VAL))
. ?& a1 N8 N1 ` W @! m$ ^1 M% h' ` - (command "") (if (= (length LAYLST) 1)
* v/ |0 x& }- n5 c% S) h# @1 ]- {; M - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))% t' g7 q0 g9 m9 h, f* d
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
+ q$ N- D4 r) H# L8 d; u: [ - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )5 S# x5 y( o6 P! {
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))6 A4 t" T7 a5 Q
- 6 q4 n; C: Q2 I& G) S# {
- ;;; ========================= Layer Match ==================================
- s3 x" i7 `* q* M
: z( X0 I3 U) e0 L2 s2 y$ i& F4 p- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)9 T0 p0 e$ K8 ]2 ^2 d( m8 g3 d
- (setvar "cmdecho" 0)
2 p3 ^. m9 u) ^$ q$ o7 y - (if (not (setq SS (ssget "i"))) (progn3 W( G4 {* U( G' A- {& s! J
- (prompt "\nChon doi tuong muon thay doi Layer : ")
2 ~. b; a5 X0 L7 i9 B - (setq SS (ssget)) ) )5 K8 l8 Y8 E; _9 }
- (if SS (progn
9 c# W7 n& g5 l" s - (setq CNT (sslength SS))8 i' r, ~$ Y% L0 T" y
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") : }' T& Y0 J% q) B
- (if (> (getvar "cmdactive") 0) (progn
* f+ |( J7 j- R4 Y - (command "0,0" "0,0") (setq SS (ssget "p")
, t2 ?, O( W; W$ n9 E, \2 C - CNT (- CNT (sslength SS)) ) ). l2 s: n$ ?5 G: {
- (setq SS nil) ) (if (> CNT 0) ) A1 _3 r' I% `& T
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )$ t: ?7 A& a" W( F6 O) A
- (if SS (progn
0 x$ y+ J1 h8 C/ y$ E( X - (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
. W3 W0 W- H; Y) L! L2 T2 ~- m - (while LOOP (cond
9 E4 M2 U; x/ {" h( I - ((not LAY)
" k! ?) S: R# a$ q6 ~ - (prompt "\nKhong chon doi tuong.")
/ x9 Y; Z. i s - (prompt "\nSu dung layer hien hanh? <Y> ")
5 O# U0 n, p5 E7 K+ I6 e- ~3 i5 F - (setq ANS (strcase (getstring)))0 e G' ]" h4 R
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))6 P! J$ ^' E, \0 y% k$ c2 _
- (setq LAY (getvar "clayer") LOOP nil ) ) )
- F8 C9 z k* S - ((listp LAY) (setq LOOP nil) )
7 P( k& s) K x% C+ n" _ - ((= LAY "Ten")
7 p& Z9 u0 w4 g4 I! s7 ]0 d - (setq LAY (getstring "\n>Nhap ten layer: "))
0 w$ a) C! ~: [4 m' h A2 X/ x - (cond
" Z* d. F `3 T% m: O - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
$ h) y9 f: m: Q! S1 [ - ((/= LAY "")
& y9 I4 b1 r& ^) f7 J; s" n5 z6 m - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
^# a* G% ?$ F6 \/ Z - (setq ANS (strcase (getstring)))7 V. i; X' }$ f) T* K. t
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES")) e8 I E+ M1 O
- (progn
4 G9 \$ s5 H: D) E7 F8 o. z. s - (command "_.LAYER" "NEW" LAY "")& |) Y/ ~ L6 k4 \8 @& m: r
- (setq LOOP nil) )
" b/ u# L! [! _8 E. D - (prompt "\nLoi ten layer.") ) ) ) ) )/ ?: s* ], m# v( P6 I( H8 Z: |
- (if LOOP (progn (initget "Ten")
$ {* Q# U1 z+ h" b% N" p. p6 X - (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP/ h9 E- J2 u$ d" ?
- (if (listp LAY)( f# Y1 K& o3 N9 u8 V
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )2 C; a! \- c" k$ c
- (command "_.chprop" SS "" "_la" LAY "")2 J+ r. I) z9 U6 q, V) s6 |
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )# D: g7 i2 W' ]# X/ `
- (if (= LAY (getvar "clayer"))) F" F: D9 p1 m/ q# B: Z2 C! G
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
5 z3 t3 d9 o4 r; z - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))* G! H+ y# @% E2 u# k/ b# d
( H9 s& E- h, {, J4 J- ;;; ============================ Layer OFF =================================
% H3 P6 l: w/ K7 Z1 S0 p
4 ^! O w0 y* q6 g/ a9 t# j, Z- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)& _( C( C3 q1 H* ~) v% c5 C3 t
- (SETQ SSET (SSGET))
$ {5 G6 E! n3 w- i" |( e# C - (IF (/= NIL SSET) . ^, u# t* s* U9 Y6 ]0 [+ U$ C
- (PROGN) b. w% V/ v! V& C$ ]
- (SETQ SSL (SSLENGTH SSET))
4 ?3 ~0 i% s# v: U - (SETQ LAY "")
" f0 Z" W; _9 B - (SETQ I 0)2 V+ k! m8 C6 E- ?
- (SETQ MODE 0) , X, J' D7 P8 _. j( I0 E
- (WHILE (< I SSL)0 v4 d' x5 }* A' v. g; G- C7 c
- (SETQ ENT (ENTGET (SSNAME SSET I)))- J( {4 Y0 P" ?
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
; Z6 h2 P* z5 ? - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
1 l$ G' |) h3 A - (SETQ I (+ I 1))
7 d; @; o- ^, m9 r( W - )
( L5 D# @: w5 C0 e7 `) X- \4 K - (COMMAND "LAYER" "OFF" LAY "")6 J5 S9 X1 O! F
- (IF (= MODE 1) (COMMAND "") )
, r: }5 s2 f I; K+ Y% z! } - )( y$ u) j/ r) O( K8 `- Z2 P. t
- )2 q: d1 L; z3 x. y6 Q7 b' b; {
- (PRINC)" K& ], H8 q1 E. w- W" r# x
- ), \2 w5 D/ G( L# U, O( v
- 1 m: O3 w) a( Z* M; P$ Z
- ;;; ================================ Layer ON ==============================/ [0 S; @1 H0 A8 b+ H; i& j
- # C F$ G. l7 d6 N
- (Defun LAYON () (setvar "cmdecho" 0)' H# m8 {: }, ]9 `& U/ d
- (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")( Z- M9 }4 J" N9 D9 _
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
1 G: ] [3 s" m$ F1 \5 I0 a4 \ - (defun c:LAYON () (layon)) (defun c:LOO () (layon))3 Y6 t4 I a1 O& ]
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
9 p" G# c5 c$ x6 n- V1 o) x
# L6 v& _# E4 i- l- ;;; ============================== Layer Freeze ===========================) {8 X: g F# P1 E' t
- + j& x6 ]+ \! [* z, e( o% p
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) 5 x# b( j4 h# ?
- (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET)). f2 E" U% X& `3 t
- (IF (/= NIL SSET) (PROGN# I n$ n3 j/ Y0 P% Z
- (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
- y# q% ?) N- ?- _2 p8 `, c - (WHILE (< I SSL)
. |& r- a% ?& F" s7 G - (SETQ ENT (ENTGET (SSNAME SSET I))), }9 }' R5 O8 x# }+ L& ^
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
6 S, U$ z$ v3 F7 x; s( B5 h* N - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
4 z9 I g- `" S - (COMMAND "LAYER" "FREEZE" LAY "")/ B1 R+ p4 u- V. C6 W
- (IF (= MODE 1) (COMMAND ""))))
' f3 @* B: g/ A# |3 ? - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)3 X9 \- U# c3 J3 m
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )9 C. n9 C& J, ?; r# j" a
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
9 i; @) Z0 C, Y3 F+ \3 C$ o - 2 Q( P7 F/ q- S6 o; Y
- ;;; ============================== Layer Thaw ===============================
3 l! K* W7 j3 _4 r
1 a/ g/ A) d/ ^* _4 b- (Defun LAYTHW ()
9 J6 w: x. E' l, a, A7 { - (setvar "cmdecho" 0)6 r9 i* w: C4 P
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")2 G( J- V2 y: p6 z
- (Command "_.LAYER" "_THAW" LAY "")
. _4 e4 B1 Q/ R1 W( F3 M) `2 L - (princ (strcat "\n Layer : " LAY " da THAW."))/ S6 B2 h% y2 T7 q8 Y2 c7 ?
- (princ) )
) Q6 b, ], o6 g, W - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
' X5 }+ k# Z8 j4 ^0 U - 7 D; ~% C6 H& F8 t V# R, R
- ;;; ============================== Layer Lock ==============================! x P. n* C" p2 i9 w; ?# }
- / Y" n5 }7 g/ w4 @
- (Defun LAYLCK (/ LAY)* O: d9 a3 r( ^' d+ @
- (setvar "cmdecho" 0)
$ C% P5 u M1 V& X - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))4 A& G2 _! |4 S7 \7 o8 Y" L
- (if LAY
) g( Q3 V$ j9 r! A0 c, o3 h - (progn8 ^+ r- h* F0 I1 @
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
9 H1 o* M; z; }) X! m8 K - (Command "_.LAYER" "_LOCK" LAY "")
6 \8 E6 _* `9 _' X' a - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
& _7 K q% d1 D8 A+ R& d4 h - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
+ {7 ?; P J7 C7 _1 [ B
! }3 F% ?8 D4 E6 |0 O) n& e% Q3 w" N- ;;; ============================== Layer UnLock ==============================
2 T3 t2 K) _- _! `9 a$ J - 4 h% |: _- x; T* I [' m7 _9 A
- (Defun LAYULK (/ LAY)6 J: K6 F5 M$ [0 P3 b" q- U
- (setvar "cmdecho" 0)
, O/ |) a _* { u& r6 O) e - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
' i6 s3 a2 D5 t% L. \ - (if LAY
) q$ A5 U4 i* m/ L" h - (progn' @5 g9 K* G0 s! i8 | Y+ {
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))" w f+ a6 v" S0 g
- (Command "_.LAYER" "_UNLOCK" LAY "")
: P& @5 K' V/ v$ b7 |4 @ - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
. e( Q5 w# Z. h* K# \9 @6 N - (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))
6 h- |. y& i3 U! V+ a7 h
+ L# K" a K; _8 {8 `. S; v2 g- ;;;===================== Delete all objects of Layer ========================. `. ^. j2 b" c
- ' L; S2 |5 S A, L+ w( M
- (defun DELAYER (/ ocmd L S)
6 s/ ]' c; f1 n' ]8 Z3 i7 H9 | - (setq ocmd (getvar "CMDECHO"))! s$ @1 ]! z' e( i
- (setvar "CMDECHO" 0)
2 r1 j4 V1 [8 x. b: d# W* s0 H; ` - (setq L (strcase (getstring "\nLayer(s) to delete: "))). _0 F% W8 n7 ^4 ~/ b
- (setq S (ssget "X" (list (cons 8 L))))
+ f# \+ L# H* m& Y3 ^+ g! L - (if S
8 T& T. ^1 O: x4 W+ ~ - (command "ERASE" S "") : Z0 ` n- b" U/ L/ H9 U
- (princ "Layer empty or not a valid layer name.") ) ; `3 Y$ R2 I r4 Y0 q4 I% B
- (setq S nil) ' a" }6 E! ?4 U* R9 _( l
- (setvar "CMDECHO" ocmd)
( G5 [/ h7 ?9 D/ @: A - (princ) ) 4 v$ X& Z; w- T$ C3 L. g& ]3 M
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))8 {9 F6 p8 I# K0 E- f( o6 ~+ f
- . s0 E8 h$ P3 q: P
- ;;; ========================= HET CAC LENH LAYER ===========================
" q* _" x0 t" c9 n- T
6 {7 Y E3 P9 n+ D- ;;;====================== EXTEND NHIEU DOI TUONG ===========================5 ] M3 Z# w t5 k# e5 P# X* G
5 M3 d" f+ v# R& J- (Defun C:EET ()
* u! y5 U9 o- h4 T; m L1 M$ w. | - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
5 r% v$ X) w4 d8 \ - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget)); t, X5 i3 H( R5 z* s5 ~4 e* w P
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))# i* T; v2 r- O* T1 V/ E& b
- (Setq I -1)2 W/ x2 }: {2 T" e- M" s! a
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
/ s9 o: H6 E/ M - (Repeat LEN9 F/ W# B S/ f
- (Setq I (1+ I))+ m6 b8 R; G2 w+ T& X
- (Command (List(SSname SS I) SIDE)) ) (Command "")
, s% F D5 R( b' h1 N+ C: N - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
+ C5 u$ t" g. k. ^8 J
1 X" l* b* l( ~3 B- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
# ?8 t6 k) d- K5 P
- g7 u5 ?+ }- J+ R. S- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512). a4 b8 L }. y: K* v$ P9 F
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
6 I: \, S* ]/ r ^2 h& z& R - (setvar "osmode" os)
1 T: Q- s9 Q, {, I E Y( r# A B - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))- Y% s H1 V8 a+ r9 D9 @
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
: c+ S! c$ U' M) r - 6 O K+ U5 K2 e' [. G$ T
- ;; ================ Change width of polylines =========================
$ Y3 v2 k+ ]: s L& W( t - $ o: W- z3 p, [! M
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
. j) w- } H9 k1 Q - (PRINC "\n Chon doi tuong can thay doi do day (Width) !") ' X a8 `# `; z% U$ J0 t
- (setq b (ssget))
2 u1 S% \5 L W D' ^: w8 T - (setq sophantu (sslength b)) 6 F- R3 K6 R4 \2 T" v
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))4 C6 J8 c7 J# O) E1 {, d0 I
- (princ "\nDo rong polyline <")
* ~0 `& p/ b4 F7 C - (princ ha:wid)
# Y9 h/ ]6 R- E( g6 X - (princ ">: ") l, \+ H3 p/ b) q4 P& S
- (initget 4). H0 N$ g7 D3 N7 Q) c) H! ^% U# x
- (setq ha:wid (getdist))
5 D) G8 y; M" e$ \4 @% A$ H - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
% L6 K" E+ J4 r) g0 R7 A' j - (setvar "tracewid" ha:wid), x% A# }- Z* V5 x; T% M
- (setvar "cmdecho" 0)
E, n9 o4 s: F - (setq sodem 0)
) u+ U! S7 S( y& ~& L - (repeat sophantu
; i; G; n1 N% }; J9 [ - (setq a (ssname b sodem))( R( @0 D3 x$ t; p% u% t, w
- (setq list1 (assoc 0 (entget a)))
# Y7 G1 w. Z8 e* D/ @0 k% f( M - (cond7 X( `; B" S8 k; F& L1 W! q0 M
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid "")): [& _& S! H- C# Q9 f
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
1 u" A, n* V" j2 U - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
, U) q) `# ]2 Z! [ - (defun c:wp () (wp)) (defun c:pw () (wp))* A# w0 d4 F0 g) }+ t3 w
- ) t* k; v9 }6 k/ B2 K
- ;; ================ Change radius of circles ==========================: h5 \! {1 I- i4 D: S+ t& P' B8 k
- - X3 g* D% A4 n& G& ~6 X3 [% E, Q8 c
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))' ^/ y& Z$ Y' x# j9 \2 c
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
% T6 ^2 S8 s2 Q - (IF (/= RD NIL) (PROGN (SETQ I 0)
7 B2 s) o, ]& Y. Q: W* V6 C - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
* H9 H3 O, m6 |8 K. T2 w - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN) ]$ q# X/ R, k
- (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )4 N( p9 U1 e6 F
- 4 n' ~. [8 v: M- o2 z
- ;;; ============================== TEXT Hight ===============================2 T; ]4 y7 e6 C! Z5 L* D! w9 [( R) R
! M/ ?! \) P. K- (defun texthght (/ ent hght)
& U- S0 G0 w6 `( b% D - (setvar "cmdecho" 1)# H( \0 d: ], k: y+ c! d
- (prompt (strcat"\nSelect text entity with required text height"))
3 `" I- T |2 w! C0 B - (prompt (strcat"\n."))
# e& g1 _& X/ i; e, h - (setq ent (entget (car (entsel))))
; C1 J t1 t9 a- z! k3 [# l5 u - (setq hght (cdr (assoc 40 ent))), p, N7 {/ M7 m4 |, p
- (prompt (strcat"\nText height now set at "))(prin1 hght)
3 ` M, Y( m- s; O5 \+ [8 b - (prompt (strcat"\n.")) # Z+ _0 x% z& I+ e6 e* D. I
- (setvar "cmdecho" 1)
% ^) [8 e k( T% L - (command "DTEXT" PAUSE hght "") )
# M$ X% |" _- P - (defun c:teh () (texthght)) (defun c:texthght () (texthght))
3 G/ S0 i5 T5 l" Q+ ? - 4 }9 V! ~; m8 p/ [; p
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================9 I7 }. l! C0 N+ |
- 4 x F% y! N( P6 F8 r8 E* c4 o2 O/ Y9 Y
- (defun c:tuu () (setvar "cmdecho" 0)9 D. \: p0 q: k; M' x7 E
- (prompt "\nHay chon dong TEXT can gach chan ")
5 p$ |" q' w" f( ?6 Z - (prompt "\nSelect objects: ")( ?. X M( g* L* p Q
- (command "select" "au" pause)
0 T& T5 i- P, Z! N. d' {4 d - (setq sstxt (ssget "p")9 M$ U: G3 \3 K) ?. G1 ^
- sslen (sslength sstxt)2 a% o+ u& [3 v6 A9 Q! v
- ctr 0 )6 q" c) o9 h' z! \% l+ _) [1 o
- (command ".undo" "mark")$ h; s5 e0 U& |/ X9 k9 U; ^5 s- G
- (while (< ctr sslen)
$ m! P& s; H r9 o% m7 [2 i - (setq listxt (entget (ssname sstxt ctr)); g. f! g' T' N! K$ k5 E% V, v
- txttxt (cdr (assoc 1 listxt))! N/ }6 K; V0 l+ s9 U( E- p
- enttxt (cdr (assoc 0 listxt)) )
* _) M4 s0 _0 B- K* t - (if (= enttxt "TEXT")
0 W1 g$ {) U& P% T. _# @ - (progn# O' I7 k4 o3 Z
- (setq testxt (substr txttxt 1 3))9 m8 G/ O; Z8 N
- (if (or (= testxt "%%u") (= testxt "%%U"))7 W# b. P0 T4 |8 H R
- (setq newtxt (substr txttxt 4))
* g0 F. M( j: O. A - (setq newtxt (strcat "%%u" txttxt)) )
0 X1 h0 ?" Q/ i, ~& i0 _" v - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
- |' G$ W, v! I/ g# ? - (entmod listxt) ) )
$ D* L* q3 X0 j' b0 j/ o* F( W4 `$ z - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)), z R3 d- X. r3 t% Y+ j
9 D! h. g4 J; y7 h4 d. N o- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
5 Y! v; C' g* S" G6 A - % U' u- i5 W1 o! v" |7 Q Q; M5 Q+ f+ k
- (defun c:tob () (setvar "cmdecho" 0)8 N& x' B+ I' j$ l8 }
- (prompt "\nHay chon dong TEXT can gach tren dau ")4 e+ b% }* G* [* q7 M0 R% z4 N0 G
- (prompt "\nSelect objects: ")1 {" b/ }1 s, [! l+ F, L
- (command "select" "au" pause)# n4 p) e w6 ^; u9 u5 b
- (setq sstxt (ssget "p")* x7 H- q* R. N3 b8 G
- sslen (sslength sstxt)+ j7 Q* n/ z; o' c; G& n
- ctr 0 )1 e9 h5 g8 Y: x; u, y5 E
- (command ".undo" "mark")
0 }8 R! I: i, Y) X - (while (< ctr sslen)
& c l1 p8 C; b# y0 C - (setq listxt (entget (ssname sstxt ctr))
' y* f# \; l+ F) G - txttxt (cdr (assoc 1 listxt))
; Q( }; y; V ] - enttxt (cdr (assoc 0 listxt)) )
. i1 D7 N' U) Z0 Y N/ c; z% z' a - (if (= enttxt "TEXT")
+ i' f' ], n" T+ u; m+ O6 Q - (progn% e- T1 H* [7 h$ E
- (setq testxt (substr txttxt 1 3))" f ?- k( L( U4 b; A* B
- (if (or (= testxt "%%o") (= testxt "%%o"))
9 I0 Q+ h: i4 B( k/ p2 K - (setq newtxt (substr txttxt 4))
: s9 I+ q2 x( I7 v$ u4 }- k) ` - (setq newtxt (strcat "%%o" txttxt)) )- g" }4 J% ]! Q# A8 K
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
! s' W; \* v8 `; e' W - (entmod listxt) ) )
; X6 k9 ] X! ?+ _+ { - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
- s* F$ X2 D: W/ o i6 U, T - c$ H& h$ D s: m% M% M
- ;;; ========================== Tim & thay the TEXT ==========================0 g9 i5 g1 O3 T2 w" D# Q3 u, L
- & C5 t' a# g" w& _3 _( [, ^
- (defun frstring (str search replace / str1 str2 index find)/ G' f; u6 r! D ~
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
9 @3 N2 z, ~* w3 c) o: G! ^2 ] - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))( q: Z: ^. @# f3 }
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
, }/ D$ M+ E- o! @, R0 L# s - (defun hai (/ dial)
( C; j% O# e# y. _/ a - (setq dial (load_dialog "hai.dcl")) ;;goi dialog: q9 H" T$ k. M! q* L Z
- (if (not (new_dialog "find" Dial)) (exit)) ;;
: L/ g! a$ X- I+ i% q9 K - (mode_tile "find" 2); Tao dau nhac tai hop thoai {( Y7 N7 S; r0 A8 b
- (action_tile "find" "(hai1)")
+ q8 T3 m+ g/ a4 g( h: e' [ - (action_tile "replace" "(hai2)")
# L; W$ m) W/ ^* Q - (action_tile "cancel" "(done_dialog) (exit)")& [& I2 h/ I( w7 ^4 C2 _$ `; Y, O
- (start_dialog) 8 A) o% k3 a) ]/ l' Y9 v6 r+ @1 ^
- (unload_dialog dial))
; t8 h7 V; E4 u" m- Q - (defun hai1 () (SETQ str1 (get_tile "find"))); {7 W$ P+ B- \ W: l5 Z4 |! J
- (defun hai2 () (SETQ str2 (get_tile "replace")))
/ K- n& m* I4 m; `' P - 3 M, u' C2 w/ ~* x) ?
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem). N n0 F+ f5 y1 n: ^
- (hai)% P4 Y9 |- e; d5 m
- (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")0 j8 N$ p) r( _/ J- u5 d
- (progn0 H T) |. U+ N
- (setq taphop (ssget '((0 . "TEXT")))); M" \7 ]& Z- o
- (setq sodem 0)$ `5 i4 J. U7 c3 G0 r* _# E
- (if taphop+ R4 t; N6 i0 N
- (progn! m/ Q$ M8 m+ X! _
- (Repeat (sslength taphop)/ c5 m( c n/ d$ S" b
- (setq a (entget (ssname taphop sodem)))
$ r5 l% a6 e8 s: j# g - (setq str (cdr (assoc 1 a)))
+ s3 w- |# Q9 W" k. [# m0 D0 O - (setq newstr (frstring str str1 str2))% D' G: B; q' ]+ B) u- d
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))7 Q* _% y6 M$ o0 T6 k) Q
- (entmod a)
% z3 ~0 v* Z2 [( b, F+ g( ], r - (setq sodem (1+ sodem)) ) )
8 T) X. N1 ?6 x% `3 f8 t; D - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
3 ^* o7 }& ^; B - 0 P) y& Z- G. p U- M" w
- ;;;============================= CHTEXSTY.LSP =============================6 o# f! j8 B# h7 }) M2 \, R2 x
- 1 _% \0 A# K3 n, ^( y) g% z
- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
/ Y, Y3 p9 Z0 X4 a& v# n - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
, E6 c; h6 K& h* k I - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))/ f4 l6 a6 S' s9 z1 H, B& F2 \
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
2 o( A5 Y$ _4 }. Y) z - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))" E) |. S9 R6 ~2 r& g4 u- h
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C)): I3 Q D- N9 k! T: M
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
$ d: O0 Z% z% Y! V* y - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G "")); t% d; K2 m+ `% w& T
- (Initget 1) (Setq A (Strcase (Getstring* h2 @8 h- x, x7 \4 S. S" O1 H5 k
- "\nEnter text style to change: "))) (Initget 1)
@$ M5 d$ s; I4 f* o6 g/ `: T - (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))- y. E" ]* o2 b9 ?$ d- G) d1 c
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
- g+ M! i" U8 _; z6 e2 F - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))' ] o+ H6 ?! r$ r6 s" S
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))* ^9 E0 [6 p1 k k7 _9 [8 D
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
A/ g" v' ?5 q/ I8 q' b - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))" G5 @# Q& N6 e, k l0 A
5 |; b9 T5 A* r5 x6 a- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))# r, D0 }, H4 `' J% E4 N$ v
- (Setq J (Cdr (Assoc 50 A))))
% V8 {3 L( R' _9 S% F
6 u7 Q8 _4 h. R$ ~- ;;; ============================ DRAW CLOUD =============================
0 g" e7 J2 K! @5 h - ' I* r1 o0 x" T2 H! C
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
# r! M: j- W: q" u& w$ l1 g- k - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
) U, e3 Z5 T& b, ]( }) j4 B - (setq la (getvar "clayer"))4 u7 M! V0 T$ I
- (command "layer" "m" "cloud" "c" "5" "" "")2 E! U1 a! ?4 H1 N8 ^8 ^
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))' H: l/ H6 b! W. T& u
- (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
2 F% R8 Y2 f4 w& O - (setq cnt 1 ss (ssadd))
9 F) [# c4 W4 K, i6 \% { - (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: ")) `4 T/ Y [, \) R" W' X
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))- d* l3 N8 `# p7 |( O$ @6 C
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))1 q' e8 O) O; y& J ^' }
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
7 m: ?8 j0 O# F7 D1 {! T5 \ - (command "pedit" arc1 "y" "j" ss "" "x")
" O' H0 f& f6 D1 s/ b+ Z8 V1 e - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
9 X# j2 w9 M- P' C - (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
, t0 a6 K. ^2 n, D2 e - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
% N0 `# y+ r) Q
( N2 r) [% t; k5 P' G4 h8 |" @- ;;; ================================ Funtion-Dulieu ========================
5 y! C# s1 g+ W# ~# Y u - ;;; ================================ Funtion-Dulieu ========================! X7 s9 |8 _# | U8 |" S$ A8 ?" i
- ;;; ================================ Funtion-Dulieu ========================6 V' |# E; n: U1 z" Z( O% ]
- 3 c: p# F0 C/ L9 d$ r3 [
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )% C) E; f# b% ]" Q6 |, P
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
3 O) x2 b7 P5 c) L7 f9 ~: l - (defun khoangcach (kh khq11 khq12 / h0 h1) (setq h1 (polar kh (angle '(0 0) (vectophap khq11 khq12)) 500)) (setq h0 (inters khq11 khq12 kh h1 nil)) (distance kh h0))1 U: z9 d2 m. {( L' {
- (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) )4 e2 t/ n/ D& _* j# x) I5 y& d. z( p+ r
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
# K& _" i3 j4 e9 H - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))8 m6 g6 [! m$ k6 {% z
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))$ A( [3 ?3 x+ F& }( N) d7 E( k/ f2 I
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
1 b/ ]- Y7 o- ^" _' b1 }3 u: F - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong)))), r5 V' w# C$ ?% f5 e/ Y1 w6 ?/ y' J
- (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)))
- [. K, F2 r+ l - (defun dtr (dtr) (* pi (/ dtr 180.0)))( Z0 p. }9 v, |2 H2 }$ b
- (defun rtd (rtd) (* 180.0 (/ rtd pi)))
6 s8 e- B2 t1 T* r3 c( X D: U - ! N- M+ v6 G+ d9 [ _: h
- ;;;==============================PROGRAME===============================
' ]+ m2 W" A5 h$ X+ q - ;;;=====================EditDiM Hien Hop Thoai Dep======================
5 `7 O9 {. r& D - ;;;==============================PROGRAME===============================1 `2 C- A& o0 J2 f. i
- ! q- w: N8 O: x9 \; o
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh) [+ ?+ V9 q1 d+ |, q7 v
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl8 ^% X3 q2 y) W! w% t+ ^
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)' ~% i' R2 O1 s
- (Setq Oldlis (Entget (Car Chon))
+ Y9 u7 _6 }6 Y! G5 }, w - Pt10 (Cdr (Assoc 10 Oldlis))
4 h6 M% r- H. V - Pt13 (Cdr (Assoc 13 Oldlis))
+ j2 u$ z% b3 |5 d7 e- `' j - Pt14 (Cdr (Assoc 14 Oldlis))5 c0 h, @5 B+ J
- St (Cdr (Assoc 70 Oldlis))
/ K8 K! I8 U% e. R/ x - Dimdefault (Cdr (Assoc 1 Oldlis))
5 u9 F9 v ~7 w# [; i5 J7 p$ f - )
+ ?$ w9 S/ }# \- E( g- p - (Cond
: Z' o' G, D' ~# Y% b - ((Or (= 32 St)(= 0 St)(= 160 St))+ Y% }! @4 A f0 O& g [4 {
- (Progn
q1 z% r9 F% @; W - (Setq Ang (Cdr (Assoc 50 Oldlis))
7 ?) p h# h- u! f N/ c - Pt (Polar Pt13 Ang 500)
7 \2 v( L: M! w: v6 H+ Q - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
) q' p* F# `. l7 ? - Dis (Rtos (Distance Pt13 Hc))% ?! B# Z2 Y0 ^4 }0 P* o1 h
- )
' d0 d# F( p3 i2 X. l( J5 ~ - )- i9 j f! T `6 m7 {3 ^
- )5 K$ L2 g" R k
- ((Or (= 33 St)(= 1 St))' I; N* M& D4 r+ D' H1 T& ~( n/ c
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
h! J8 w$ T1 g/ x - );;End Cond3 l, f' }8 ^. h- s
- (If (= Dimdefault "") (Setq Dimdefault "<>")) \7 Y' M/ J9 I8 t3 ]# ^4 m
- (Setq Dial (Load_Dialog "Hai.Dcl"))
9 {7 y2 U) w2 [0 ?6 C - (If (Not (New_Dialog "eddim" Dial)) (Exit)); e( [. u- B; ?
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
! I9 P3 X. v, H8 A% O8 M# ` - (Set_Tile "text" Dis))( b9 }- Q+ x& U3 }0 r4 ^ }
- (Set_Tile "ha:edim" Dimdefault)" P- R; h" B- U2 `7 v
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai( e6 {4 W9 l+ [- K
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
5 _, k; y( w* i$ Q4 V+ c - (Setq State (Start_Dialog))(Unload_Dialog Dial)
$ X6 ^3 o D% v' P# `# S - (If (And Str (= 3 State))
* C( `3 d2 X2 |# `$ Z7 V! B - (Progn+ L" m/ H7 G0 u" K6 O! Z: W
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))& `0 g* ]1 t! K+ \ S2 _
- )
8 K. J ]/ k$ J/ V4 s7 \& @6 R7 M0 z - (Defun C:EH (/ Chon Name )7 |2 H& g4 x. Z: a: t4 Y
- (Defun *Error* (Msg)
2 }9 m1 y2 ?9 F3 `+ [+ ^" R - (Princ "\nerror: ")(Princ Msg)(Princ " ")
3 q5 c! p* F: h4 l' s - (Start_Dialog)(Unload_Dialog Dial)
( `8 A" Z5 I5 X - (Setq *Error* Olderr)(Princ)
6 S3 s' W) d. j$ |' b5 a2 e - )
" S+ h" ^- W; V4 H! Z. l: W( E - (Setq Olderr *Error*)( a# ~% N. \/ S1 A2 ?* B: j
- (Setq Chon T)
0 v. i' _' D* x( ]) I: q {: Z1 f - (While Chon
, k. c6 n9 a: I - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))# o# E3 \: `: O7 Y
- (If Chon% |) w }- i( N7 h, K% H4 d
- (Progn
_$ E7 a' G9 U' [ - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
, O) Q) }7 a9 O: s5 n3 |: r) W - (Cond
2 O1 a) ~3 i/ g, I+ | l3 Z9 U - ((= Name "INSERT")(Command "Ddatte" Chon))
$ m+ A1 |/ Q: e- v$ R - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
7 U. h9 N2 d: y- ^: [ - ((= Name "DIMENSION") (Hai_Edim Chon)). r6 W. I, r; l9 i: E F0 t1 ^( y
- ). w4 H; |: M R0 q1 M8 E9 F
- );End Cond
5 r% m% I- f8 G9 A - );End Progn/ x' q1 |3 q: v! q2 H
- );End While5 l6 ]1 A0 g* F ]# }% v' w3 g
- (Setq Olderr *Error*)(Princ)
* ^% u* B5 W1 e+ C# z# M# e/ ] - );End Program
3 C& r' y" Z1 W/ A: C9 u - 2 n# L- {* X' o
- ;;;====================DDeditDim=====================# r2 E2 c/ o6 }/ C% g; h4 K
- ;;;=====================Hai.DCL======================
! ~% m, w" [# P - ;;;====================DDeditDim=====================2 V# D y% h! A' Q- g# \
" _" y1 D3 @+ w) M" g- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
% N; l1 v" k1 B0 E9 Z1 m - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
- `+ @6 `4 a% w6 w: j9 \/ q9 } - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
& n" j& p% n" I - (Setq Oldlis (Entget (Car Chon))( S) k) o+ U& c
- Pt10 (Cdr (Assoc 10 Oldlis))
8 Q7 f0 _. ^; f! g# [& i$ ?4 ?5 h - Pt13 (Cdr (Assoc 13 Oldlis))
! X( a0 j- y: b& l) {7 Q2 E/ Z - Pt14 (Cdr (Assoc 14 Oldlis))6 f- M L/ J5 [( N4 ]* G9 D
- St (Cdr (Assoc 70 Oldlis))* m$ b& ?, M9 L$ @0 G l9 v5 R/ } y
- Dimdefault (Cdr (Assoc 1 Oldlis))! \' K+ C1 s. d4 {$ [6 L; C
- ): E' e/ i' Q6 C4 K- w
- (Cond
! A& t# N2 ]( a# J. L1 V$ b - ((Or (= 32 St)(= 0 St)(= 160 St))# u1 S$ @/ P7 C0 G- B
- (Progn; y) p6 ~6 J \: _* v6 u
- (Setq Ang (Cdr (Assoc 50 Oldlis))) y( Q, P" f h4 M
- Pt (Polar Pt13 Ang 500)
. N9 V$ }' d) Q) u5 z - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)8 R& W3 l4 O% J: Y
- Dis (Rtos (Distance Pt13 Hc))2 L8 y% L; c5 e4 t" ]; Z
- )
( }- y' g8 G$ I0 p, g5 Z! \ - )
9 q6 k2 ^% u! h9 @, i - )
8 G: t9 b5 t) ]1 t - ((Or (= 33 St)(= 1 St))* O8 P% r# k' s+ G5 Q/ z
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))6 A$ q. C- k. \4 @
- );;End Cond
w& u/ U9 q2 f3 {* H' n5 a: o - (If (= Dimdefault "") (Setq Dimdefault "<>"))
! c: q, T, Q# }: G - (Setq Dial (Load_Dialog "Hai.Dcl"))9 N( T' c% S& C7 t+ c- n4 Z
- (If (Not (New_Dialog "eddim" Dial)) (Exit))" d7 @% B* @: g
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
; X" m @& F& r1 S; Q6 N# M - (Set_Tile "text" Dis))) Z" x' ~: h4 r" L. F
- (Set_Tile "ha:edim" Dimdefault)! [7 u( L+ u7 a' R: ], v, `
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
8 j2 n" [/ L _: F; v- q - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)") O5 o" I( D$ Q8 I5 Z: c
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
4 g4 j/ N7 j: E( z/ I' u0 ?. g - (If (And Str (= 3 State))
( d3 n/ v/ e: }( Y! z9 C1 O - (Progn
. M: D' e2 p4 p8 P) v$ j: T - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
3 w) R9 e, d: T* v# h - )
6 O7 |: J6 D$ e3 p6 Z - (Defun C:EH (/ Chon Name )! o$ i/ X9 n. E7 q) A& M3 u
* w8 p+ l! p6 u- j$ L. I- ;;;********************Du Lieu********************
# F2 k. X2 L8 s. B1 R
4 z/ b7 R% F: t% Q' H) {- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))1 ` {6 J# ?0 R' t
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
. c$ c* r/ Y+ e8 B$ e( J \ W - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
; T ^0 e0 w4 p; d0 p$ F$ v - (Progn& d7 P' D5 E7 H9 v
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))8 z! @$ ~0 J- U# ^' I: i( N* m0 H
- (Setq Chon (Ssget Hacat3))
d* a% _7 y' W9 T" E - (Command "Break" Chon Hacat1 Hacat2)
# a% o7 }5 E! Y! s - )
4 K5 I d( L- |5 I" F" y - )
q) E: n9 z$ u& H" h4 P! N. F - (Princ)/ i- V/ n6 u' L4 t( t* @3 E; \4 J
- )
# ]# J# `5 S, D# Q - ;;
4 z9 e$ K6 g) r& w - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
% I+ K% a: G; q2 h( q( s& k* K! o - ;;1 H* V5 w, Z7 x! R
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))4 \2 b8 g; n. t' u
- ;;
: r, k' m# p6 C+ O' J. A/ _# A - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))7 c, k6 `. r0 [: V$ p r9 ]
- ;;
9 I' c o1 M- z6 a# V& n( V U - (Defun Reinit ()(Setvar "Cmdecho" 1))" \: {0 S# A; o7 ^; R4 u
- ;;
( G8 r$ E4 T y, T7 g. V. z! K - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
( f5 H" z: Z* P$ a5 ^" F - ;;
1 A4 j5 Y& m% _# x* j - ;;Cho 2 Diem Tinh Ra Vec To Phap
& `! l7 q( f0 E5 i b - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
( B, l: G# Q: K - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
$ i. y: y W% k; V* T - ;;Da Biet 2 Diem Thuoc Duong Thang- @3 D; c( {4 c- M. F/ l' K
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)8 N, p$ f7 F' P% t9 p0 y
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)6 e6 y2 w& A u/ X& i# Z
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))- }3 M( E# s, }+ T- `
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
' _ G* |* Z) p9 |+ V' e - ;;Da Biet 2 Diem Thuoc Duong Thang
" h# e. P6 ~1 ]! W: x S) C4 C - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc): t+ ~( R$ J5 k+ }4 C T
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
3 v9 L) V" T" B& p+ L - Hc (Inters P1 P2 Dc1 Dc2 Nil))$ o7 S' l0 U5 H% @; e; a/ ^" p$ c. I
- (Distance Dc1 Hc)
) T7 b. |8 k. \3 k/ u/ x - ): u1 R0 W6 O# ^2 d
- (load "nhapcua.lsp")
r' a# ]% d+ I' x7 J - (Defun *Error* (Msg)% `/ d* Y7 d N
- (Princ "\nerror: ")(Princ Msg)(Princ " ")" b( n9 i1 ]3 o+ a! N, m% Q
- (Start_Dialog)(Unload_Dialog Dial)
0 A4 s" z9 }- a. N4 u: I - (Setq *Error* Olderr)(Princ)
' w( e* D5 m& j( A* T0 q& c - )2 O6 ?6 }* {4 o# c# P+ T/ U
- (Setq Olderr *Error*)
8 l5 P( n0 N: K- I y7 Z4 ] - (Setq Chon T)9 w4 `. p, {7 k! e: v y4 n) F& `
- (While Chon- X9 c8 D, }5 ~: h
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
/ W' ?' `: s# O8 l( ] - (If Chon- h1 L6 o2 [* @5 v- @
- (Progn/ a3 V/ }& Y6 d
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
1 C) f* Z# U; s* @' E6 Y - (Cond( a$ H3 x4 q0 H! {
- ((= Name "INSERT")(Command "Ddatte" Chon))' k% Z# T2 |; z; y
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon "")): h/ {( R1 }% i: h+ Z$ N5 B1 _( d
- ((= Name "DIMENSION") (Hai_Edim Chon))8 f J3 z$ n1 C
- )( A6 G9 f8 k5 e" C) X* k: C5 h4 Q) K" m
- );End Cond
8 C9 t: I2 w1 P1 ] ?& J - );End Progn% q5 N, p) w7 _4 G" w( L) O
- );End While
$ F1 j' u# y# M2 n: H - (Setq Olderr *Error*)(Princ)( j f( y, r% P; d! r
- );End Program+ H, u- H0 e6 @. H" @: p
- % U3 T1 ^% `- _1 d0 c5 S
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
) l! H& l2 K* y( X; o8 y - ;====================================Nhapcua.LSP====================================6 k% r. P7 Y$ ?# J9 E& X
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================5 ^' J2 ?# E3 `
- * a! Q6 F; ?! E! {5 j
- ! Q% E' v8 b9 i. V: b Z& n* ?$ a+ H
/ w: _+ f& n* K! d$ O) m6 c- ;*******************;*******************;*******************;*******************
3 h6 |; [( F7 d: N - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
' x3 e; q8 {% m/ V - ;*******************;*******************;*******************;*******************
- h" A7 A9 Y0 j! l
/ U0 z) U" E% n2 S" _( ]) k( E+ Q- ;VE HINH BINH HANH
9 t" w; }8 j& E% J
, w I3 V1 P+ Y+ ~/ N% H) Q- (defun c:binhhanh (/ p1 p2 p3)% x& e& i1 P* [5 \0 B
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))' j( T+ w' y8 g2 c& S
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
& Y5 V' _2 A8 I/ z8 d - (setq om (getvar "osmode")). {; _& d' A2 \2 L6 ^. u
- (setvar "osmode" 0)! e8 o# E! f% O9 m3 K, f$ {
- (command "line" p1 p2 "")) G/ d: } }, I" B5 t, D
- (setvar "osmode" om)
- r( {# |6 a5 x5 [& A - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
- v/ A( L/ y$ A9 K3 K - (setq a (angle p2 p1))5 h1 U% N+ }# b. p2 K2 |6 S$ d
- (setq d (distance p1 p2))5 Y- F" R/ u. r+ i m
- (setq p4 (polar p3 a d))0 U2 P5 T9 x% J" ?% h
- (command "OSNAP" "none")6 S3 q) {; F( [3 w: D5 |7 @
- (command "erase" "l" "")4 _1 w6 x/ o2 V3 b" [3 p4 R
- (command "pline" p1 p2 p3 p4 p1 "")+ C& i! d8 z2 \* Z* }
- (setvar "osmode" om)9 u, T6 R8 n( M" @
- )
# W5 d+ `% |$ v* c5 ] L
, G1 m9 T n# r J- ;VE LUOI COT
3 k- S) Z% s. t8 L
, }' ?5 @5 s H: e6 L$ t2 D1 l# K5 a- (defun c:LuoiCot ()2 A" F @) x4 x0 g8 @
- (setq om (getvar "osmode"))
; f4 F2 m6 }4 f+ Y5 m! { - (setvar "osmode" 0)
6 a8 A) k9 ~5 g# @; u - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))2 H5 o5 O: n0 ]7 |7 J
- (setq p0 (getpoint "\n Chon Basic Point:"))& P1 i5 u# [, }+ t/ D& w4 _9 t7 g
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))
9 Q8 a+ ~3 d/ w" x6 Z7 z! z5 I - (setq dc (getreal "\n Nhap chieu doc cua cot : "))
; a6 `3 }3 ^8 U3 r P. N - (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )/ e/ V& t" ?$ `/ k8 s) \* l
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) ): Q0 O" g$ C! R, b
- (command "rectang" p1 p2). q& n! w- C* q6 J' n# v
- (command "hatch" "solid" "l" "")
' t, y6 c0 L- @3 T8 ~ - (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))5 u1 r6 W0 P4 P0 J
- (setq nn (getint "\n So buoc cot phuong ngang : "))
6 g, ]& h) P( W+ f3 L! j - (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) ), k) \& |$ ^* ~2 ^8 l( |* g8 B
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
# P4 U! @* `/ r% _6 S - (command "select" "w" w1 w2 "")' z r+ [& D* H) M
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
3 F8 C7 C6 C0 V8 s) N5 e - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")1 |9 u7 f Q# i! }
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))5 j4 V8 g% \+ p; p- T- i
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
% D. ? l+ [8 ~5 F: k - (command "zoom" "w" w1 w2)
' D' u5 w) u J4 `& d - (command "select" "w" w1 w2 "") f% o; {* R: Q4 a I t5 [" }! K. k. l
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))# z1 g* O& p, o$ r, ]
- (setq nd (getint "\n So buoc cot phuong doc : "))
1 I( l8 r5 N- g- U$ h$ { - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )* j( t* f7 B, [% a3 u1 R( L
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")4 g( a: ]: @ P4 E: Z1 e$ M
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) ); t$ K! c* W8 u: i- [2 d4 {8 h- k
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
( g# i) d3 l: U! d - (command "zoom" "w" w1 w2)
- v. e8 s# k( U3 Q! h - (setvar "osmode" om)
2 t* L3 V% M- p5 X& d! A - )
6 c; i& s1 S0 l7 j8 x& Y
5 k) D4 x. e5 f$ r( R& `3 J- ;VE CUA DI+ t% U9 n% h5 m3 q/ K& q' f8 M
* C8 d/ O& y+ Z, ]/ ]- (defun c:cuadi ()- E2 G) V4 o2 B
- (setq om (getvar "osmode"))7 Z/ p8 n" H0 ? R1 z x' H9 t* b9 E
- (setvar "osmode" 0)
- @# L% Z q2 S* d- W2 I
; U/ u6 ^" N, V0 c- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
; w0 c( F: p1 U, m - (setq b (getreal "\n Nhap be rong cua : "))+ s5 M7 ?9 ^7 W W$ D8 |6 B
- (setvar "osmode" om)
5 I* |0 g( v: R* L - (while (< 0 1): T" f0 X% o; w) P
- (progn
% ~ ]& ^: h; n& ]0 [& ^* [2 | - (setq p0 (getpoint "\n Chon Basic Point:"))" Y ~* W- ?8 g0 O7 n
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
3 t) I, {+ m1 }* q. [ - (command "osnap" "none")( l# K5 s' L4 M3 n
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
6 u; x+ l! I7 J - (setq a1 (angle p0 p1))
) o1 Y- y( M* _% Q, E" a; t7 _ - (setq p1 (polar p0 a1 (/ (* hstl b) tile)))2 z) e3 p7 b1 R3 j
- (setq a2 (angle p0 p2))# A( p% n1 U1 W, g+ R8 P
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
_8 P3 ?& N0 X" O" i - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
- q, j) }2 ]6 z! _2 d - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
- m: ^+ @3 A2 w& z2 \ - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
" N0 B2 U/ [6 t) N0 J0 t - (setvar "osmode" om)
9 C/ D& o4 O7 j0 } - ))5 l5 H7 D, D& \5 Z* v
- )" X& g2 G* S2 A$ O0 b# I# o- L6 M
- " E( E$ f$ a1 F- G
- ;VE CUA SO4 K5 J# _# G* u: \
/ Y. G4 B6 N' i; z. g- M) l, |- (defun c:cuaso ()
* u7 a& z$ ~# H) l: I - (setq om (getvar "osmode"))
+ g8 z7 w7 L# a9 a - (setvar "osmode" 0)
" j6 b2 k5 ~; L( |) A9 T1 o; i+ c - 9 E2 X; h y: a) I3 t
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
/ c( \- K* k2 }) U1 o- |1 R - (setvar "osmode" om)
: G/ a @7 D% C - (while (< 0 1)! G4 o9 {9 ?) q5 k! n
- (progn) s7 J% U; a: n' C
- (setq p0 (getpoint "\n Chon Basic Point:"))
. ?) ~; `3 W+ p$ y - (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))/ x3 _" C$ [5 A$ E
- (command "osnap" "none")
4 d# o) B) l- T0 P- l9 H+ a S - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))# q2 G) G% s4 \& ^3 m" @2 U
- (setq b (distance p0 p1))8 ]! O! F, _. p# e" z1 B
- (if (< b (/ (* hstl 600) tile)) (setq du 50))- S! N% {1 o( {$ ]) N! w9 w
- (if (> b (/ (* hstl 600) tile)) (setq du 150))# F& ]7 P R; S9 i: f
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))
( I& `" C' {; s( t% C - (setq a1 (angle p0 p1))' [4 H4 g7 J/ b2 i' A1 a) c- @# r- m
- (setq a2 (angle p0 p2))
* W4 J( _' Z( o( P" ?$ _" ]- h8 I - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
- [2 \9 e+ C- j3 [3 b) Q' M3 ?" v - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
3 h' E4 d, r" @' ?( ~. e9 W9 ~ - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
) g0 {% G+ p. N* a$ V. U; J! T3 p - (command "pline" p0 "w" "0" "0" p1 "")9 j3 z+ d @" l2 L8 u4 L# T0 |/ A
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) ""); {# p- }- D& R( j7 w5 z
- (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
2 O! l; ^2 ~; g! |0 b3 z4 a- } - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
+ [$ J' F6 ~- Y1 W* P b6 g - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")3 l, y$ M2 ^1 l' T: \
- (setvar "osmode" om)6 |5 }% p! a' ]' j4 W$ ?
- ))/ j) O9 U. j2 C! R9 C8 e2 a% |) O
- )
# b9 m& G% G4 b7 `$ {/ } - ) }- q; M! H) w, c% W3 V
- ;;;=== General Utility Functions ===3 c3 I8 U# }, x" W* [; F' H
- % X! c/ @2 o7 r, M
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined " w. M% x; V( y1 N$ ?6 C
- ; ADS function. Now it's a simple AutoLISP function that calls the d) k: k1 L z; u
- ; built-in function (help). It's only purpose is R12 compatibility. ; Z( G( y+ [% e: ?+ L$ J! O+ ~
- ; If you are calling it for anything else, you should almost certainly
" g9 W. A1 F3 {* H* p - ; be calling (help) instead.
7 n. z' n9 M B6 N1 Q6 o* N -
, B, O& [% o' r% P - (defun acad_helpdlg (helpfile topic)4 Q+ \. u- {( @- M5 G
- (help helpfile topic)
5 k. T0 Y& P, o9 } - )7 }# n# c. Z8 B% P* E/ M
$ J( l8 I! o4 I6 E; n# h- # D/ |0 N0 R! d: d! f+ U" x
- (defun *merr* (msg)
; S) G3 v8 ]5 W# t. W" e1 j& K+ s - (setq *error* m:err m:err nil)
5 T3 _3 j8 T) n4 w& r1 k - (princ)( g( ]- |6 ^8 F2 v
- )
! S( ]4 e8 ?, W5 o6 K! Y$ i/ h B
+ a' n7 I/ d7 L; g- (defun *merrmsg* (msg)
! m1 c9 s. s) n, j/ V+ _7 T - (princ msg)
0 ?1 o# O1 V4 q - (setq *error* m:err m:err nil)1 n9 x2 {; Q2 @3 G6 m- O
- (princ)
/ x9 B% E+ M$ F. a. D - ); z- u$ q7 v) k
# k6 f! \5 ]8 g8 u- ;; Loads the indicated ARX app if it isn't already loaded9 ?; V) h% j! b' v/ g X+ q
- ;; returns nil if no load was necessary, else returns the6 d: t2 B4 q- t& O/ A( D- z
- ;; app name if a load occurred.
h$ _* H* L; x& a, w4 u - (defun verify_arxapp_loaded (app)
, G7 n: e2 q' c% f5 A - (if (not (loadedp app (arx)))
1 Q5 G& ?. {- t$ R1 A4 | - (arxload app f), @( D0 ~) I9 {- X( ^7 ]
- )
( \8 Z' V7 q* l5 ]" j3 y - )- y5 x. R' o$ a# ^- J5 k
' t* c$ W5 N+ X D- ;; determines if a given application is loaded..., M& a! I. H4 q+ M2 b
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....) ?: n) O3 d! B e
- ;;
+ e4 Y/ l9 o7 x - ;; app is the filename of the application to check (extension is required)
% p2 Y8 w% X* }2 k - ;; appset is a list of applications, (such as (arx) or (ads)
0 x* F% T9 |7 o* h0 T1 D - ;; , [, b c9 I- S0 m, B5 l+ [
- ;; returns T or nil, depending on whether app is present in the appset3 e& E# s) E% L/ F/ f
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"2 W& z2 s2 u% V! r# c
- ;; Also, if appset contains members that contain paths, app will right-match
# F7 m0 J! N' t6 \ - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that7 S; w4 j3 H& D$ d+ j* O
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."4 n' [ p" P/ r8 ^
- (defun loadedp (app appset)( U+ h, K# B9 m
- (cond (appset (or
e3 f% Z+ R( Y0 B9 B9 C8 K - ;; exactly equal? (ignoring case)
: ^4 W) i+ x6 Y& ? X - (= (strcase (car appset))
2 K' y6 L8 W p* ~% {/ X( I - (strcase app))( p/ U2 l; Z* ^0 H
- ;; right-matching? (ignoring case, but assuming that
( _5 ?0 }) h# k- k8 c - ;; it's a complete filename (with a backslash before it)/ v3 g# e# `3 h5 Q( q
- (and r3 j( ]( E) F5 b
- (> (strlen (car appset)) (strlen app))
; l8 R1 b6 e4 t9 j4 [; s8 {& u$ | - (= (strcase (substr (car appset) 3 ~4 R% r0 Q& Q) m
- (- (strlen (car appset))
* p1 f j7 O( K& z6 L/ h2 A" F& J' v1 s - (strlen app) ) E3 k2 y! m0 q. B: C
- ) ) A1 W3 C8 t( ?+ K( z
- )
/ c2 a2 z9 j C" `$ K - )
+ j# [8 ]3 J E - (strcase (strcat "\\" app))7 f1 g4 {5 ?# d$ u O; v8 c# w
- )1 E% U3 J6 w4 d! @: I4 s
- ). ~; E4 _& }. a/ Q. u: G$ g
- ;; no match for this entry in appset, try next one....9 Z, l6 _5 [( m! _: g
- (loadedp app (cdr appset)) ))). ^9 R) u( J6 | `
- )
$ F' r2 U- @2 B& J$ M - $ L" C: q2 s! L- X" Q) W
* G5 p/ R$ N. q# d U8 _0 d- ;;; ===== Single-line MText editor =====8 k1 U+ d. ?/ y( X3 H) n! W) [
- (defun LispEd (contents / fname dcl state)
/ Q2 d, `. B" b; H2 a% E - (if (not (setq fname (getvar "program")))# v$ b- K2 e8 d% U% O
- (setq fname "acad"); o3 W# U# F! H- g( p1 s
- )
) O9 h% o0 {; `7 b: ]. D - (strcat fname ".dcl")1 j" y" R E7 O
- (setq dcl (load_dialog fname))+ K# B" W" w- s8 x5 ^- H
- (if (not (new_dialog "LispEd" dcl)) (exit))& ^- @7 @+ m! r# b4 X' _5 a
- (set_tile "contents" contents). e5 e ~( w/ R& O
- (mode_tile "contents" 2)- v& P% ]) R$ v( h
- (action_tile "contents" "(setq contents $value)")& L8 N: }. ^9 n, h) }! \
- (action_tile "accept" "(done_dialog 1)")/ e* _" ?8 K5 q X
- (action_tile "mtexted" "(done_dialog 2)" )
8 T% V; D& p8 t% T! `- Y% ~9 q - (setq state (start_dialog))
: x& m+ g. }: C5 S7 V - (unload_dialog dcl)4 n" l3 L% u3 @" p6 @ A$ E
- (cond
+ \( T8 o' h6 M# C9 N% M" D* }3 c - ((= state 1) contents)6 Y9 E; [7 }* \ s9 R, i
- ((= state 2) -1)
% t; N9 r4 @) G& ^ - (t 0)
" d4 f, _ p. A- W5 c; P' U4 @ - )/ r$ l. W7 V" f( z$ x
- )5 [- b1 O o( J( a9 S. {
V( E* M0 w8 K$ G6 T* Q- ;;; ===== Discontinued commands =====
: [- L( p( [$ `! n - (defun c:ddselect(/ cmdecho-save)
O$ S* n/ d7 h: O+ e+ E - (setq cmdecho-save (getvar "CMDECHO"))
- R$ ?* O, M4 E( v2 g - (setvar "CMDECHO" 0)5 \( v$ W0 R" R1 b$ z* C
- (command "._+options" 7)4 n) r+ j# Z: B5 u
- (setvar "CMDECHO" cmdecho-save)
1 \: I* h& |! ^ B$ q - (princ)9 Z$ U4 N5 ?5 M( W0 Z- u
- )8 [+ p5 g3 I" _9 d1 v5 D: o
- , r* d; ^: S, j5 y- ?* m- t \. |
- (defun c:ddgrips(/ cmdecho-save)' w5 U5 w6 C, `8 [, e; C) @% w
- (setq cmdecho-save (getvar "CMDECHO"))/ Q3 i8 [! C: h, k" Q
- (setvar "CMDECHO" 0) \& ^) Z3 X3 L U% F) `8 q
- (command "._+options" 7)' O! X7 y) H9 C3 A( e1 O! y
- (setvar "CMDECHO" cmdecho-save)! |( L# \5 t Z J- H0 B' W
- (princ)8 J& W, E9 w' o* x
- )
5 Y6 o+ @$ t5 `: ?/ g - ' h( B" C9 t5 \' V
- (defun c:gifin ()
) }5 D- ] N2 T - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")7 k( s H E% Z9 {, V0 N
- (princ)
" w$ B* y: [+ i3 K* @8 p3 r3 u% F - )
, ?- v! M. P, |
( @$ a) U q6 M6 e0 I9 ^- (defun c:pcxin ()
( c3 p. ]/ O8 A; C& V- [0 f; O - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
* _" W. @7 B6 C1 b - (princ), |4 Z& d! F% l
- )
( K" h% `) x* T9 ]5 h( J - 7 o% v1 K' k3 O1 U. r' m9 o
- (defun c:tiffin ()6 Z5 M! S' `5 d' o5 k* _. T& O
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")) Z9 m8 e! I+ \+ z2 P
- (princ)6 U2 O" V Y0 e8 t
- ); b0 T! _2 O3 S& Q
1 w8 S+ x8 p4 v+ O! b# [- (defun c:ddemodes()5 A) E0 H) N, ?, Z6 K. n3 c( L
- (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.")0 P4 S, [5 M6 a- G1 c4 O& V
- (princ)
+ B1 k$ B* X* `) K7 F: z$ B6 }5 | - )
' J# q0 I8 N; |+ h9 A3 j - ' c6 _5 c3 W1 Y, i1 H0 k
- (defun c:ddrmodes(/ cmdecho-save)
2 s+ e- L7 Y; e! ^/ M, f8 s7 G - (setq cmdecho-save (getvar "CMDECHO"))- m' t2 @' g- E+ h( z
- (setvar "CMDECHO" 0)
, M5 N2 D% t* h - (command "._+dsettings" 0)
5 g1 K& d3 w9 u& P+ _ - (setvar "CMDECHO" cmdecho-save)- R% i( c$ O& d3 B
- (princ)
, \# u; B$ z: B! }! z- u4 @; | - )7 g; O. o! } o- B8 Q# Z: M
- $ K- X$ e3 Z9 D
- ;; HPCONFIG. h+ @0 v) @; I( q% q# H. X2 s
- (defun c:hpconfig (/ hlppath)$ k5 }0 a2 H: j" M4 g& C7 R) c5 [4 e. v
- (if (not (setq hlppath (findfile "acad.hlp")))
& ?' ]! ~& l7 y8 r( P5 R - (setq hlppath ""))
$ n+ A$ m. E4 B& z$ p7 V( f8 c - (help hlppath "hpconfig")7 k# @7 w- A' l) Q
- (princ)
% I7 i1 u. ?" A( |/ Q0 q( m - )
: x" U) V% p- \1 c5 v
8 p [: g5 N& w/ |* s9 Q6 Z- ;; OCECONFIG
1 p2 H9 g# P" n - (defun c:oceconfig (/ hlppath)
2 f# x5 j3 e+ A- ?6 b2 P; y' j; T* p - (if (not (setq hlppath (findfile "acad.hlp")))
" A* _( q+ x/ N; t i# Y2 b - (setq hlppath ""))% F+ i! q! O+ f6 z4 t
- (help hlppath "oceconfig")
9 y2 G+ n0 M2 y$ m: v - (princ). w9 x7 F- L4 E- O5 a+ d" k* B
- )
; N8 i* O7 C! K. ~% H0 V
9 r: G+ P7 T" {2 q, Q- ;; CCONFIG
u& ~9 H7 R5 l. P0 {) |. z F5 k$ l - (defun c:cconfig (/ hlppath)/ t* q- I5 T% \. F: |8 Y5 ^" J' K
- (if (not (setq hlppath (findfile "acad.hlp")))
. O8 g# c. |' j8 T - (setq hlppath ""))) N0 z4 k, ^- p+ z" x- @
- (help hlppath "cconfig")% n: x' c$ g9 r# h/ T% L
- (princ)) C6 t: u+ t$ n, n) r
- )
1 _7 l& T+ U. U* u - K) s9 j' B% Y) Q$ G
- ;;; ===== AutoLoad =====
0 C/ P" {% O# ?) M+ _5 Z6 E' Y6 `4 t% R - " C1 z5 y! v$ V6 E2 ^+ T
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
" [3 ?) N5 i3 P6 v& w - ;;; for the name of a certain appplication <appname>.
5 D( ~0 V6 d+ i+ N z+ z7 q - ;;; Returns T if <appname> is loaded. J- T# U& B6 B C% Z- n
* K/ x* r" q5 y; L+ p- (defun ai_AppLoaded (appname apptype)" }3 `6 y- s5 H
- (apply 'or v. Z2 X' V2 e: U9 }: S
- (mapcar 3 D& [/ v6 X( {. j: Y8 k
- '(lambda (j)! \- V! Z _& M' J/ T) w
- (wcmatch+ A6 o; @/ h U7 ?3 ~) g6 m
- (strcase j T)) A7 i7 B) q8 [ I8 v
- (strcase (strcat "*" appname "*") T)
( x G8 S& s; C* k: v# W - ) 6 L! h4 q2 Z' |: O5 N5 d" i
- ) v/ `: b8 v9 N
- (eval (list (read apptype)))
- p) p: h j( s9 a - )
& E7 r7 \! j) G2 T: N+ d - )
+ z& {: _% g8 w4 J. Q& r6 K$ U2 y - )0 ]7 ]5 u; S- r) [2 Q- t7 e# i
- 2 V+ p1 J: E/ H7 Z3 o
- ;;
) r9 n. ^4 t" u) W& C, i - ;; Native Rx commands cannot be called with the "C:" syntax. They must & q0 o/ v2 I1 ?1 B- o3 ~
- ;; be called via (command). Therefore they require their own autoload
* K) y+ ~) J* \& e - ;; command.3 s! R% A9 w2 A
- , f6 R$ c' H4 ]* Q
- (defun autonativeload (app cmdliste / qapp)7 e9 z1 z7 A; @! g5 F$ i
- (setq qapp (strcat "\"" app "\"")). |2 l1 n) ?! n- {& x! x+ r( B
- (setq initstring "\nInitializing...")
1 {4 A2 @) Y. s& t- m! H& Y - (mapcar
0 V# G- {2 Y) l* M5 ` - '(lambda (cmd / nom_cmd native_cmd)
; S& i; r% l, w2 t' S - (progn! C4 r9 u4 v+ l3 r; m
- (setq nom_cmd (strcat "C:" cmd))2 r+ b- z+ y9 Y; F* T; z M* E
- (setq native_cmd (strcat "\"_" cmd "\""))
" r! b; c# f: p* h - (if (not (eval (read nom_cmd)))
$ h6 d5 q: k# i - (eval; k* q$ `2 O6 Y# L
- (read (strcat7 Y. ]+ s1 x: |7 F
- "(defun " nom_cmd "()"
3 B' e: X1 `( u" Y$ @ - "(setq m:err *error* *error* *merrmsg*)"
0 a! E: L7 g7 U3 Z3 {5 X - "(if (ai_ffile " qapp ")"
7 a5 e6 @* l$ l; `2 n - "(progn (princ initstring)"
: J9 S7 O y( ], B1 e6 a - "(_autoarxload " qapp ") (command " native_cmd "))"
* _; K7 _$ \- M: E3 x) s1 ?9 P - "(ai_nofile " qapp "))"
) B% S- }% G _7 Y" j! N, ` - "(setq *error* m:err m:err nil))"; M7 z* u$ I6 }. ]; V
- ))))))0 a2 [, w0 [( M0 |1 ~$ _) s
- cmdliste)
! W( x3 n% ]( Z& I. B/ a - nil% }, x5 Y$ y! {
- )+ o2 @( }$ I. R! {3 d$ x: G/ n# A
) X; W. X, O4 ?! K- (defun _autoqload (quoi app cmdliste / qapp symnam)
( k! i" F: b C3 R$ |9 @0 ? - (setq qapp (strcat "\"" app "\""))
. x: ^& P" q& Y1 |8 l - (setq initstring "\nInitializing...")& m5 N9 h) J6 |' T& K% w$ q y% @
- (mapcar Y: `$ b; e4 [, D+ {8 |
- '(lambda (cmd / nom_cmd)
/ o; ?2 `6 z6 M* S4 i: O - (progn
0 f% D0 m4 r J. c K - (setq nom_cmd (strcat "C:" cmd))! Y1 G7 d- @6 u+ y
- (if (not (eval (read nom_cmd)))8 b* t; R: Q. ?" f5 i
- (eval
% R- H5 ]1 b. q( W' S8 e - (read (strcat
3 `. O$ E( a9 I3 U. c5 \ - "(defun " nom_cmd "( / rtn)"
1 X# F4 n( A& ~; M- Q2 Q' N - "(setq m:err *error* *error* *merrmsg*)"
+ F: G( F# b, U9 Y - "(if (ai_ffile " qapp ")"
. Y; L3 C# ?/ C" X/ h+ V7 j1 G - "(progn (princ initstring)"
+ } x# t+ p( }( W& O - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
1 T: p2 I1 d: O0 R - "(ai_nofile " qapp "))"% Z( k7 F& A) j% s+ e
- "(setq *error* m:err m:err nil)"5 C+ ?) ~' G3 _0 T c0 f
- "rtn)". |0 m7 @- a2 [& E- S9 L5 w
- ))))))" B) \: p; ~) I% Y( L. M l
- cmdliste)8 k3 |1 h/ @# {; R2 ]% d
- nil
4 `) q; F4 D/ v - )
3 |4 f+ N8 V A& q4 g+ M6 ?+ q
7 |8 ^9 ^) _, E0 d) S% s4 b- (defun autoload (app cmdliste)
* X7 B+ Y, s& {- I - (_autoqload "" app cmdliste)4 H3 @: b3 I3 I; n% f
- )
8 `3 X: ?$ B, K$ H
. }7 R: I2 M# I" ~- I- f- (defun autoarxload (app cmdliste)
- E1 }. _- u4 l4 X3 F - (_autoqload "arx" app cmdliste)9 s! [& K0 Z# j: N0 t
- )5 i+ u: O7 ? P7 M" r
0 F; L' c# Y7 R3 D; n- (defun autoarxacedload (app cmdliste / qapp symnam)0 Y/ p( M* l6 a+ i2 N9 o
- (setq qapp (strcat "\"" app "\"")): B* |5 A* b: z5 e4 o# f Z* p
- (setq initstring "\nInitializing...")
: y1 b" K9 i4 b* `, X - (mapcar
+ q4 D( t5 S/ t) @/ l - '(lambda (cmd / nom_cmd)
; f8 ]9 o# H, B8 H: r - (progn
' g& W* b$ R- @ - (setq nom_cmd (strcat "C:" cmd))
9 P$ U, V2 @+ D' B - (if (not (eval (read nom_cmd)))
% D3 O4 {5 p' X& O$ C& D; ]7 m' { - (eval( X# a6 L. d2 h% C; F: q
- (read (strcat8 U) k% z" M# R d( z2 Z* A
- "(defun " nom_cmd "( / oldcmdecho)"
$ ^/ I$ P `. H. B - "(setq m:err *error* *error* *merrmsg*)"
3 f( D" P7 V) v, A. m - "(if (ai_ffile " qapp ")" p4 f& X$ c9 g( i" `7 _
- "(progn (princ initstring)"
8 j2 u9 X6 @& F% L' K - "(_autoarxload " qapp ")"
% e+ w! `& I& H5 k4 ] - "(setq oldcmdecho (getvar \"CMDECHO\"))", H! B' P% c( B: E; }
- "(setvar \"CMDECHO\" 0)"
q5 J4 s* _. u: C7 K, M - "(command " "\"_" cmd "\"" ")"" V- o) V ?6 s
- "(setvar \"CMDECHO\" oldcmdecho))" m) s# T' Y7 P4 i6 N7 O
- "(ai_nofile " qapp "))"
' }) O2 P0 z/ O$ e - "(setq *error* m:err m:err nil)"/ _* A1 \+ U3 j# B- w" W" A2 A
- "(princ))"
- U# U& c$ q8 k N9 m8 [+ ` - ))))))9 R2 S9 j( {/ I1 u* ~
- cmdliste)
# Z8 z1 t: n- o7 C, |: } - nil
. I+ U( I$ A" n - )
7 S$ F# L. n7 L, Q& E7 t7 J: h
Y" [5 |/ w9 u; C! A4 W- (defun _autoload (app)
, _4 n6 L6 S" g% _, I - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)7 N9 |. z5 _( y, N+ F
- (load app)
3 _8 G+ I2 L- i; ~ - )7 D6 w. k$ q, F. F* O
- : F; Z$ v4 K0 a/ [! Z: \
- (defun _autoarxload (app), P, `: k0 L/ ~# S# r
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
4 i Z( U N" r+ x" s: u: _8 K4 u - (arxload app)
* j& S) m7 b9 x. v u - )) ?% e5 L( O" \, h
f4 r$ X* P: F0 b- (defun ai_ffile (app)' G. u7 K" u! o$ a
- (or (findfile (strcat app ".lsp"))
& E4 F; I! u) N5 Z - (findfile (strcat app ".exp"))
) u& b2 l) E7 @0 |4 K7 t. E. G# B - (findfile (strcat app ".exe"))
% z+ }2 u4 x* q6 r* ]; ?5 v - (findfile (strcat app ".arx"))
, r G7 [; y h; J4 p1 B' q - (findfile app)" R5 B- ~/ I8 l, } v" L7 w5 ~
- )
( \6 a; ]6 m5 b- G' f" N( V - )& Z# d9 v7 D4 I7 u0 s
- a( Q/ w1 N5 ^6 c* B Q# u" n3 U- (defun ai_nofile (filename)
6 l/ z& m( E8 T3 t: v" t9 \2 B - (princ
8 H& T" O% N: C* \& P8 b! W - (strcat "\nThe file "' ]) J/ @; P3 K |
- filename! G4 a9 D0 q% i0 _9 @, [& d1 N7 Y
- "(.lsp/.exe/.arx) was not found in your search path folders."
) x y2 o3 m- E: d7 H - )8 F: K+ E5 T8 {( I( x& C
- )" y9 `/ y6 w4 U5 D' d7 B
- (princ "\nCheck the installation of the support files and try again.")& ~3 W5 C+ o7 I) C8 O. J6 u
- (princ)
0 H1 p1 _( A% H& ~5 D; \ - )8 F& y. h. W4 R. `9 A
- ; n4 b; s; S1 T2 y2 ~9 g
" S: ^* p5 T* }3 s1 e; C- ;;;===== AutoLoad LISP Applications =====+ E5 V* X, R4 o9 N8 ?* R7 ^
- ; Set help for those apps with a command line interface D$ K+ J5 Z. P6 Z
* Y7 Z$ B' }2 e" \2 d- (autoload "edge" '("edge"))6 V/ N5 k+ _- e" g. B8 n
- (setfunhelp "C:edge" "" "edge")0 k/ }0 D) l$ b
- * Z& D, D4 U) |7 [
- (autoload "filter" '("filter " "filter"))+ h2 Z! C- m6 [4 N
- % k O+ f0 u% Z; f/ O
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
/ O) I4 F$ r# v* h1 j2 h - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
% z; ~* G8 _' K8 h - )4 H1 D9 M- C$ i8 U, R
- (setfunhelp "C:3d" "" "3d")
/ C& P% {( E; h" o0 d - (setfunhelp "C:ai_box" "" "3d_box")
, x, p* N6 m: x& I8 B - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
, \" M; f: Y' f& m - (setfunhelp "C:ai__wedge" "" "3d_wedge")
6 J( o6 A5 \# x0 }9 |% ^1 j - (setfunhelp "C:ai_dome" "" "3d_dome")
( |% X0 o/ c- D' P5 d - (setfunhelp "C:ai_mesh" "" "3d_mesh")
- u5 A; _7 p5 j' u) e! c1 }' z% R, b - (setfunhelp "C:ai_sphere" "" "3d_sphere")* T4 @9 I9 p+ S5 ^( k/ H
- (setfunhelp "C:ai_cone" "" "3d_cone"): i/ p `( H" |& O9 G7 b# K
- (setfunhelp "C:ai_torus" "" "3d_torus")- i% ?" c: E8 _
- (setfunhelp "C:ai_dish" "" "3d_dish"); r+ i; {$ O2 T0 F' q. j/ l$ t% F
- 4 l) P% G- [; R3 P( d- j
- (autoload "3darray" '("3darray")): d- u+ _# P( J, U) Z0 m4 M
- (setfunhelp "C:3darray" "" "3darray")
& O" q, |6 f& d# M8 g, H: D - C. n5 G3 }; }# H! {
- (autoload "ddvpoint" '("ddvpoint"))& [' I K( b* X8 P
& o, X% i0 Q% a# p- (autoload "mvsetup" '("mvsetup"))
+ v* r% p! F5 W4 z - (setfunhelp "C:mvsetup" "" "mvsetup"). j; ~3 ?; T" q" a6 r
1 f; a! C7 d0 S. E) K5 P; F2 j- (autoload "ddptype" '("ddptype"))
2 c* T+ J; a- i
/ G3 C$ J: }# q6 u' {2 G! m" U# [* m- (autoload "attredef" '("attredef"))1 b$ p& p1 P- q
- (setfunhelp "C:attredef" "" "attredef")/ H# P- ~" G- e- @
, K$ m* V ]; I+ y& T- (autoload "xplode" '("xp" "xplode"))/ S( H( @# x/ ~4 m! h8 ^4 t
- (setfunhelp "C:xplode" "" "xplode")8 Z2 S( D0 H1 a+ i
- " m, o) X9 S* H5 f- g5 Y( x+ n
- (autoload "tutorial" '("tutdemo" "tutclear"8 e* O9 i2 P, f5 Z# J5 T
- "tutdemo"
$ {4 j' N1 B1 j5 x( ? - "tutclear"))
( v. z2 N3 f' T- w
8 z% z4 F/ t% X0 v4 L- ;;;===== AutoArxLoad Arx Applications =====& }& z6 g: F3 m
+ B5 S: O+ \; U, e- (autoarxload "geomcal" '("cal" "cal")); \% A+ G4 m' E, R! B/ N' H* d
* ]* g8 Y3 j. d) N( ^" t& e- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"/ R ]1 c2 y1 [5 c6 R; q. L
- "mirror3d" "rotate3d"
* B% \: M b) p$ e j9 t" \+ [( h( Y/ @ - "align"))
) g( f; G+ |6 @8 h$ n1 `
& }8 G/ `! o; V! F. h2 g. x
% m) O( \# \" \& P7 I# d d6 y- ;;; ===== Double byte character handling functions =====
, ?/ y* l: `* A4 ^* e
0 g- ] l# Z( Q9 u8 {- (defun is_lead_byte(code)
. k0 N) i( g2 u3 z# C; |# A( s3 [ I - (setq asia_cd (getvar "dwgcodepage"))
( L3 f3 D v$ y6 m+ j - (cond8 l1 h4 g: o3 d: @& @1 b" x. [, {
- ( (or (= asia_cd "dos932")
2 P! Y' v" B; \0 h - (= asia_cd "ANSI_932")
5 ^- t' G' y& u- x - )
t/ {1 y9 Q M" V; [: o( |( W7 B - (or (and (<= 129 code) (<= code 159))& z" h( M1 c8 z! m& e7 @( J9 {# \
- (and (<= 224 code) (<= code 252))3 T5 P4 M) {7 B& Z _% r
- )
7 |0 ?. B1 q2 N1 U: u* y( r - )
3 q% x5 v- q. t$ p7 Z' Q - ( (or (= asia_cd "big5")
J) l7 e' {+ {2 |/ Q1 Z! {7 n - (= asia_cd "ANSI_950") T+ ?* [# A: S6 ]2 R, d
- )
4 w J$ A% J! _8 o* V - (and (<= 129 code) (<= code 254))
+ M& {0 j* b2 U! P/ \0 S9 u - )
& }$ o: o/ z4 W& o. o6 _9 l* l$ S - ( (or (= asia_cd "gb2312")' Z5 d& e. o4 X
- (= asia_cd "ANSI_936")
- e- |3 l o8 J - )( V) [8 U1 S. T V9 {: v
- (and (<= 161 code) (<= code 254))' a6 m1 |) W$ J; R7 Z0 `. c$ }+ U5 ?
- )
, _9 d+ v: ~3 l% V- _ - ( (or (= asia_cd "johab")' N8 P: r) q/ U* }+ A
- (= asia_cd "ANSI_1361")
/ _& G0 ^/ @! \( ]) B6 R - )
, h$ G2 k) {9 I' e4 c7 H* K - (and (<= 132 code) (<= code 211))4 _+ M8 }! E& ]; a3 }
- )
% ]* t! h# B: F( R - ( (or (= asia_cd "ksc5601")
+ `0 W" d6 P } - (= asia_cd "ANSI_949") A& ^# W7 Z* {
- ); M5 q( |8 {" v
- (and (<= 129 code) (<= code 254)). V( I# i/ i( M g) O6 E+ {" \
- )+ n8 s" E& }6 u% {8 L1 x
- )
4 h) p1 T1 y9 F! I - )
5 z& J. r' B" w0 Z* a! `
* B0 w$ |1 R' H& C- ;;; ====================================================
4 `8 w; E# W( W& L/ S* t2 [' i% P
" J# ?7 K% t+ x) v4 f
, z. S7 ^+ H6 ], c" ?- ;;;
) \2 @) N0 d' W x$ @ - ;;; FITSTR2LEN
+ R. P- C `& E# E% n. g& S. _ - ;;;
* `" Z0 c. t- A8 C) k$ g - ;;; Truncates the given string to the given length. ' v( _1 Y% ^( ]- N+ `7 M* B( F
- ;;; This function should be used to fit symbol table names, that
3 a3 E! ^! C" ]! r - ;;; may turn into \U+ sequences into a given size to be displayed
3 [, w0 h3 a: x8 }9 h$ @# B/ p# i( ? - ;;; inside a dialog box.
+ \2 n ^( i( L0 Q [$ ` - ;;;
1 w; n# p! G, W% R+ B - ;;; Ex: the following string:
2 Q u9 Y" @. q7 O - ;;;& p0 ?. R2 ~4 s0 _9 A
- ;;; "This is a long string that will not fit into a 32 character static text box."
1 X5 {/ y( w. v2 M - ;;;& V! g$ s. w: T9 Q
- ;;; would display as a 32 character long string as follows:
! } E% P _5 [, F [ - ;;;
7 X3 _+ [0 S: i; I# N, C1 Z - ;;; "This is a long...tatic text box."/ a- E3 N' R q, r2 n& F
- ;;;. e6 x- y% p; @! X0 j- z8 R+ \
- / f- v; a2 g/ [: n- n0 ]! J
- (defun fitstr2len (str1 maxlen)/ P2 g* l+ V2 q- \1 |
- . ?6 {/ B. U$ P. W3 e0 f) ]( R9 A
- ;;; initialize internals: ^9 f/ {. L+ u) b* ^, M
- (setq tmpstr str1)
% v5 e% [# ^% V% t E - (setq len (strlen tmpstr))+ y5 ]" Q5 q/ y& {4 W
- ?+ I; M( y w3 }- (if (> len maxlen) : T( _- M6 W6 z% L
- (progn5 ` y3 ~; s. q7 G0 T2 s& ]! }
- (setq maxlen2 (/ maxlen 2)). P M* O# j2 z
- (if (> maxlen (* maxlen2 2))! P; {& L' m: ]; G! `7 }7 N
- (setq maxlen2 (- maxlen2 1))" H/ L6 z6 _! S' w1 T" p$ Y
- )% S7 u3 a9 k6 w0 H6 i
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
3 h: W3 d S9 g. {1 f - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
6 m V, S8 y+ l t3 O: B( n( \ - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))) n0 ^" X2 t7 Y: i/ ?4 |% }1 u
- )
" ~0 z/ d4 k: g% n8 b: l1 z - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
& C. m1 y0 r# E: Z* a/ S - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3)))) a% w/ \/ i! j
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
7 u1 R& H8 k! w' A: @' F - )
: J7 E; ^+ j! f6 _; i( R9 T - (setq str2 (strcat tmpstr1 "..." tmpstr2))
8 L8 n! C q/ \+ s& H - ) ;;; progn
! r2 w0 S; x; M# K, J - (setq str2 (strcat tmpstr))
2 w! u9 M0 V* s - ) ;;; if
0 n+ B. e/ `1 V/ x2 i8 B - ) ;;; defun
7 y& X2 ]0 n/ a+ M" Z6 {
2 }8 c* `. g8 ^0 A- R7 @. _
" Q6 _" u/ s3 V9 K7 g2 I/ @- ;;;3 m- [. t8 s: J# ^8 I
- ;;; If the first object in a selection set has an attached URL
6 I% i) x: H+ _! a$ M, |) ~$ m% h - ;;; Then launch browser and point to the URL.
9 j9 O% f& K# x5 y - ;;; Called by the Grips Cursor Menu8 B" m P# q+ n" |+ b
- ;;;) o( b, Y9 l1 P( C& [- K
- * @$ m8 e0 \ |% ?# r2 o
- (defun C:gotourl ( / ssurl url i)' o, d5 l) W# |8 N7 {0 Y
- (setq m:err *error* *error* *merrmsg* i 0)
; N( ~% N' O1 A }; S" E - $ E( r. ^6 y- H+ g9 X: v8 ]) V) H
- ; if some objects are not already pickfirst selected, * J. }- C! B8 W$ {8 ~) g* `/ l
- ; then allow objects to be selected, J5 W1 s/ I+ S* M r
0 }4 M m8 A& P4 `8 h7 b( K2 x, ?- (if (not (setq ssurl (ssget "_I")))' ^& m" s' ^6 u( ~: k. i
- (setq ssurl (ssget))+ b4 l* N' L) y1 f T
- )
) t4 ?& U0 a" M1 l" S
4 P3 O" ?; A% E! e3 L- ; if geturl LISP command not found then load arx application
1 e$ w" f5 F0 t" c6 _7 \# U
) i* W* [& {! r: t. [; @- (if (/= (type geturl) 'EXRXSUBR)
: ^! o% V: Z8 y1 F - (arxload "dwfout")
, o# G' V" R1 @9 f7 T z8 ~/ S* i! | - )5 h0 J1 W R+ F) r
-
+ ?1 Q) i; [- m. }$ L2 p. [ - ; Search list for first object with an URL
6 V% x2 L# C# f3 O - (while (and (= url nil) (< i (sslength ssurl)))
* G2 [# X+ J' [. \ - (setq url (geturl (ssname ssurl i))
+ ]1 p. G, @0 E0 r- q - i (1+ i))
* Y/ t s! p+ b - )' d! B1 }1 V W+ W# K A
/ U8 a' d) F' q6 c( g- ; If an URL has be found, open browser and point to URL B2 Q) y: F; U t6 \# c7 U
- (if (= url nil), z7 Y) g3 w+ L
- (alert "No Universal Resource Locator associated with the object.")5 }* J) x" |5 ~$ Y; @. [
- (command "_.browser" url). d7 Z1 k- j4 q: ]. f; Q
- )# e$ c5 N5 q7 O2 h* w; l
+ V7 M A3 `6 X/ c7 a( A8 W# ~- (setq *error* m:err m:err nil)3 o3 }5 ]4 _( R9 G" X
- (princ)
3 h, _% \7 Z. D, G: J
: ]+ M; _# Z, Z; S- )
- P+ `1 e/ {0 Z1 h# E
; t: v& }2 s( E9 `; ?8 J- ;; Used by the import dialog to silently load a 3ds file/ C1 @% c2 u+ r( G6 d* P, o
- (defun import3ds (filename / filedia_old render)* p; d/ b* E% E; u, c
- ;; Load Render if not loaded" _' z1 m6 v( w
- (setq render (findfile "acRender.arx"))
# u) H8 |5 v. y o( Q - (if render" e8 B6 I0 |% d$ h2 p6 U
- (verify_arxapp_loaded render) ; J0 ~* I' W7 Z
- (quit)
" I" B, y/ J: ?2 U5 @ - )
2 S0 e7 x. T8 M# g - 7 S$ g0 U) @+ M2 l5 t7 W
- ;; Save current filedia & cmdecho setting.! G `- B/ O2 o" M5 i5 `
- (setq filedia-save (getvar "FILEDIA"))
! `1 }5 r. L' B: s9 T& W9 M5 e ^ - (setq cmdecho-save (getvar "CMDECHO"))- A8 ]$ |- x+ p# H; `
- (setvar "FILEDIA" 0)6 A9 j: k1 V4 N t' C G6 |* r
- (setvar "CMDECHO" 0)) [- F3 u- c# u% h
- ! G) W' R9 z) I" N2 h
- ;; Call 3DSIN and pass in filename.( P' _7 ]4 p! B7 t9 k: P
- (c:3dsin 1 filename)( G- o& X+ s- u
- 2 I2 U3 u( u" Z# P( n+ a
- ;; Reset filedia & cmdecho) o0 w: A7 n4 k S- X6 B8 Q8 K
- (setvar "FILEDIA" filedia-save)2 M) Y# g8 C" I C$ R
- (setvar "CMDECHO" cmdecho-save)
$ z) X# k: e) t5 t7 ~+ u - (princ)& _- e& |( [* ]
- )
* ~4 u( v- J- B3 S* x2 T7 F9 ~ - & u: H. J2 D/ ~ U2 L m+ w3 T
- G) l* k5 t: x6 T, r- ;;;=== Menu Functions ======================================
% E0 N$ x4 g/ l6 I" z - 7 i8 e) }6 Q0 b$ Y6 f- d" b: T
- (defun ai_rootmenus ()( Q r1 A2 c; V, m/ F
- (setq T_MENU 0)
& Z" v Q2 G3 y( n8 T - (menucmd "S=S")) V8 S* h$ M4 P! z" X1 b
- (menucmd "S=ACAD.S")
+ T% u; \. r% |& h9 w - (princ)5 [! {, M+ B0 d' z8 z& l8 Y, k
- ). p! E( y7 Z: U( K Y
3 A1 ?' u1 ?" S) R$ k% f- (defun c:ai_fms ( / fmsa fmsb)
. Y [7 S7 x( ^( ~, V1 u) ^5 T7 | - (setq m:err *error* *error* *merr*)5 v* Z- s* M) E
- (ai_undo_push)2 ]+ l( {) @" T' V
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))1 |' P9 ~2 y+ i9 w
- (setq fmsa (vports) fmsb (nth 0 fmsa))1 w; s# S" M, a1 k
- (if (member 1 fmsb)2 x, w5 i: @5 T. x6 u; `# L2 g
- (if (> (length fmsa) 1)
- t( y6 ^9 q$ o( ?0 [ - (command "_.mspace"); R4 E3 Y4 [) o. P1 t% q) j7 j4 z3 `
- (progn3 f. H' Q# R- h2 |1 n" b( u
- (ai_sysvar '("cmdecho" . 1))" S! m9 z' s- [8 F+ I; S3 q3 [
- (command "_.mview")+ z2 f; w# R) u* l) h A
- (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
" G+ M" V6 A- A+ N$ s) N+ R. M - (command pause) U2 ~/ R* Q b E; B# z6 x
- )! R# b: }* M2 H3 A
- (ai_sysvar NIL)* | G& B% C3 n1 o2 U. P
- (command "_.mspace")$ s4 Y* M4 N2 i# E
- )6 a9 N5 d4 ^; b, y- X5 A
- )
' c# O! e5 n( H+ R' i) p - )
5 i! L9 A: n; |/ v2 l/ n2 s# D! z - (ai_undo_pop)# b; Q2 D. @. ~/ m) T
- (setq *error* m:err m:err nil)
& f( [# O9 X9 m3 H! w - (princ), u4 `6 {: @' o
- ); f; z( \3 }) U/ T9 w% d3 e* n# U/ ?
- # s& D& L8 u" j5 D
- (defun ai_onoff (var): i, t$ W. k \
- (setvar var (abs (1- (getvar var))))# c j9 J X6 F# U( {/ X9 q! F
- (princ)( Q( I1 I: J; s4 ~
- )
/ X" j" v) }5 [; S, j( ?
8 I; \$ h' J9 P9 A7 o- ;;; go to paper space6 Y9 o3 M. ~0 P# y
- (defun c:ai_pspace ()
+ U" J6 F2 [# s, Q4 A - (ai_undo_push)- S- f7 U$ p3 p6 T# G
- (if (/= 0 (getvar "tilemode"))* Q) d T. _: H' f! s& t9 a d7 |
- (command "_.tilemode" 0)
! A8 Q, C! @2 k% h- S. [3 i - )
' J0 N3 [" j9 b' ^) A2 m - (if (/= 1 (getvar "cvport"))7 N# [( h; s! k3 x1 m
- (command "_.pspace")+ `* l9 G0 g( i5 F! C- d
- )! x7 N# W& k) V7 p+ K7 b
- (ai_undo_pop)' Y' e7 t$ M# M W& N
- (princ)
5 i" X( i1 T( Y: _ - ). \1 f+ Q# p- j( e/ G
& t# ^ F4 g# R- ;;; go to tilemode 1" l9 { ~# i$ G% g. A+ ^
- (defun c:ai_tilemode1 ()
6 S/ @% _& \+ q0 O1 ^, Q - (ai_undo_push): b7 j6 s7 d" r* s; u
- (if (/= 1 (getvar "tilemode"))0 @ L0 N1 n* p
- (command "_.tilemode" 1)8 U n% w& q. O1 g
- ): i- p# O- J0 m+ i; W+ i
- (ai_undo_pop)% X1 ^' p* t& h: f
- (princ)+ F3 f5 U, u4 x9 L, @
- )3 X1 v* S# M6 w+ G7 j; D$ s; x
`7 G) ?- d4 c5 I0 M- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
; ]. u5 p' Q( N - ;;; Toolbar Dimensions/ Align Text/ Centered8 v2 W/ H" ]' l3 Y/ M3 q6 b1 |' c
- $ y9 L' B# E" o3 D) f8 Q3 N
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)3 K P2 h8 _# e! a. p* [6 e
- (setq ai_sysvar (getvar "cmdecho"))& b! H6 ^* k- B9 H8 l5 p E
- (setvar "cmdecho" 0)
! Y0 ]2 L+ K9 w& i6 i# g - (cond; K" b. _ ?0 u9 x
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION")))). x" {* x8 i1 c5 P' ^5 V
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
, l h: I) V8 {+ [8 i3 w7 C; y* A - "_.dimtedit" ai_dim_ss "_h")/ S- T" s& x3 a1 Y8 ]2 j# n2 F1 g
- ) c5 {3 \* n/ H1 o+ _
- (T nil)
0 G+ i) Q+ r6 Y2 W - )
- I9 O: ]* m4 b0 ^ - (setvar "cmdecho" ai_sysvar)
+ U, d. x. f, j - (princ). U( O0 S4 m2 v& ]. h' v2 c
- )3 n1 ]8 k0 P1 `) l, M1 W! W/ e
- 2 v$ E- W- Y0 {
- ;;; Shortcut menu for Dimension Text Above % I% x( o- m# L1 w9 F# Y: J& |3 f
# U/ F4 k5 r6 O9 V- (defun c:ai_dim_textabove (/ ss)& X$ Z, u5 a$ J) X
- (ai_sysvar '("cmdecho" . 0))
, C9 o5 G7 Y( } d4 l! r% x - (if (setq ss (ssget "_I"))) ^! w7 t7 B- q1 x8 h
- (command "_.dimoverride" "_dimtad" 3 "" ss "")
3 [: v% X+ E% z6 u! K( b - (if (setq ss (ssget))
& O+ S b' r5 n* | - (command "_.dimoverride" "_dimtad" 3 "" ss "") ' _* f2 ^$ F% [2 v: I& {
- )
9 e( u( p( {, Z6 j# k - ). i$ W9 r0 L; T0 ?% B4 }
- (ai_sysvar NIL)
1 h, X8 H; ]" S8 L/ V+ b) Z" W - (princ)( M5 ]+ ~2 ^2 w) |& k
- )
, o: w. A4 G0 T
7 \3 y- }" k* b$ H, y7 B5 {7 ]- ;;; Shortcut menu for Dimension Text Center
8 x4 y3 D0 b1 z; f; G. S8 _ - 5 h( Y& f" C H) ?
- (defun c:ai_dim_textcenter (/ ss)
& [0 a1 t% F" z1 Q - (ai_sysvar '("cmdecho" . 0)): a2 Z X2 n. |" V' \. E7 ]
- (if (setq ss (ssget "_I"))% Z; M; b' U4 e/ k9 u
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
; J, t8 R3 U% w - (if (setq ss (ssget))3 A& e- q) i6 d: u+ r. ^) q
- (command "_.dimoverride" "_dimtad" 0 "" ss "") 7 L- G6 P; y. |& Z& c, y
- )
. d( }6 v; a, y2 H% _% Z- | - )' l a7 X7 M* _5 ?- }8 b6 l' U/ {% l
- (ai_sysvar NIL)
8 m W/ d. _5 [3 x - (princ)
; n- V6 q+ Y, l; n - )
/ O, Z& C8 X, \$ `6 b# k o# E
! Q1 i, }8 ]8 t7 M8 s8 X; C- ;;; Shortcut menu for Dimension Text Home
( w# k4 y( J9 M - - H) M) D4 {4 M6 o8 d J
- (defun c:ai_dim_texthome (/ ss)
) [8 R3 j/ l4 L5 T5 V - (ai_sysvar '("cmdecho" . 0))' k) V, _# m9 m1 U
- (if (setq ss (ssget "_I"))
$ O1 e' ^' i5 b' ] - (command "_.dimedit" "_h")4 G# g2 k1 t+ ]- ^3 d3 M
- (if (setq ss (ssget))( y$ K5 C P* B( E) x3 b; e) Y& N
- (command "_.dimedit" "_h" ss)
6 \& l" j* f' E - )
, B2 V; Y% v8 f7 p. f - )" T. @! g. i9 r: {* E
- (ai_sysvar NIL)
, W) f7 |* G3 y4 i* g6 _0 S: s - (princ)! K; Q9 M& W& g7 c. X
- )
& ~: s' L* c9 x0 n8 a# c2 M+ w - 2 h" P2 a, y. B6 a3 b! m& V7 k
- ( g) k1 U* b# |" `) P0 D
- ;;; Screen menu item for CIRCLE TaTaTan option.
' C5 D, |. h. K- j# S9 Y4 p - ;;; first, get points on entities2 V, v, k, c$ r# c0 f
- (defun ai_circtanstart()
, F, u7 D5 J# Q9 S( |) e - (setq m:err *error* *error* *merr*)1 M6 ^ d4 v2 C4 a/ J6 B
- (ai_sysvar & U+ {# |1 m0 U/ c n* K
- (list '("cmdecho" . 0)% ~$ H7 E j9 [ Q% d
- ;; make sure _tan pick for CIRCLE gets same entity
, l0 w8 I( M: d. \3 a+ R - (cons "aperture" (getvar "pickbox"))9 j) g' l3 z& G T
- )! O" }- r/ ~$ N: z' y7 c; g
- )
+ s8 q' }6 j8 h W9 m: p4 { - ;; prompts are the same as CIRCLE/TTR command option* i2 ~. M3 [3 }5 q0 l2 J- ~ c' E$ \
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))' q" ~, ~4 `) A$ T
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))8 g! ~. [2 u5 ?7 [
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
$ P( ?! h' y/ m; h& ] - )$ t, e5 r- q4 Y3 g7 w
- ;;; Command-line version
' x; j6 u% T3 O) u - (defun c:ai_circtan (/ pt1 pt2 pt3)- K: }# }4 O1 b0 y# m# J
- (ai_circtanstart)
9 F7 K+ o! e$ s7 v
+ v; y2 W0 n) P8 Q- (ai_sysvar '("osmode" . 256))
7 Z2 [( i% e3 K- t6 t6 | - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)3 ~/ @( b) F' q' d4 j
- ' t3 L& T! q# a5 P
- (ai_sysvar nil)
$ O, X' I3 i1 d) Z S4 y - (setq *error* m:err m:err nil)2 ?0 a, f- E9 v- {( ^$ J2 c
- (princ)7 k* E+ r( k* ]" k
- )
) ?0 d6 ]/ m9 t; p. h - ;;; Use this if CMDNAMES == CIRCLE
( }+ t* d5 d% \# d; S6 a5 e5 a$ D - (defun ai_circtan (/ pt1 pt2 pt3)
6 b) k) l0 D" h. S. D% H - (ai_circtanstart)# F, b6 u# S+ Q) d" O
- # r" c" y% ?$ K3 e7 T8 W
- (ai_sysvar '("osmode" . 256))$ [2 _8 b- n ^, W% Q0 E7 L
- (command "_3p" pt1 pt2 pt3)$ a/ P" {( \5 a$ g8 ]) G9 N
- - }) n4 n2 r( Z( g
- (ai_sysvar nil)
a1 M/ D7 V- K$ V$ c4 T/ o, H6 B - (setq *error* m:err m:err nil)
9 x) C3 g" X/ a - (princ)
2 X6 @1 T- o# |/ b7 ]1 u - )
: v* G+ X! E# g
7 q3 u5 k9 s# \3 M* w- * ^" M* ?9 r; E
2 o+ y8 t, S J$ M: J: E9 g n- ;;; Shortcut menu Deselect All item.# Q- @9 \0 J$ h: ^. U- J
- ! j0 c, f/ W7 @6 Y: M/ o
- (defun ai_deselect ()
0 G& m6 T M8 Q( B \ - (if (= (getvar "cmdecho") 0) ;start if
' L$ M' a& A" d - (command "_.select" "_r" "_all" "")
/ e( Q f& K0 ?/ \1 H0 q6 H1 v% O8 S - (progn ;start progn for cmdecho 1: j8 \2 o+ T N
- (setvar "cmdecho" 0)% R8 {9 I. B3 a7 y
- (command "_.select" "_r" "_all" "")) @) f- N" ^6 k4 ` G
- (setvar "cmdecho" 1)
7 _" T0 K5 t# ^$ F d( g - ) ;end progn for cmdecho 10 I5 \; }0 n" ^& r3 `
- ) ;end if Q( z6 H: ~+ S
- (terpri)/ N, Z: u8 P1 C, P2 F
- (prompt "Everything has been deselected") ~2 F+ V$ i3 |! d& z5 V
- (princ)! z2 n" W% D6 @
- )# p( p* y; x& p
6 z$ P; t) P4 g; y R* J- U6 ]- ;;; Command version of ai_deselect to be called from the CUI
$ s- N" I, `% p! @ - ;;; so it gets properly recorded by the Action Recorder: {1 X+ E0 W+ O# }3 e
- ;;;6 }2 P) J* {" o% p: i3 R* x) s
- (defun c:ai_deselect ()
8 _8 D; r! a. _. {$ J9 t - (ai_deselect)
# x6 ~) ~$ T! R. x6 F9 k) W4 q4 j - (princ)
/ e5 Z% h) x: o) e; ]1 y: y - )
! U. m+ a: H( ^9 E - ) X2 A5 a1 e0 \! C
- ;;;, w9 k" N$ W: V& R# L* ~! n
- ;;; Enable Draworder to be called from a menu
, n, C8 h; x/ Y9 U" I3 X" W; ^' P! x - ;;; Checks for Pickfirst selected objects; D) w" R3 |. ~2 r2 ^# A+ ~$ C% S G5 U
- ;;;! @* y; H: ~9 x O8 g
2 m! j; t5 k9 m5 n) [& ^- (defun ai_draworder (option / ss )
. \( \) x& c3 L- `5 O+ Q) w
* m& M5 ^# n8 Z$ D3 l8 }% [6 d- c- (setq m:err *error* *error* *merr*), W+ [% O4 s0 l$ s9 q" V& j9 g" j
- (ai_sysvar '("cmdecho" . 0))
: p$ b, u! V$ L3 K8 k
2 h# |: u7 |5 r k k- (if (setq ss (ssget "_I"))9 Z- t* O6 ~5 l
- (command "_.draworder" option)
! T4 i! l/ }# M1 D$ E" b9 @ - (if (setq ss (ssget))
; x8 c9 Z* m3 G$ R - (command "_.draworder" ss "" option)
3 \+ n" \) C! `% o0 s6 P& U; v - )
$ [- C9 ~5 N+ o" ~+ W - )
/ S$ N: ]$ j( C! ~. l+ q2 u% f - (ai_sysvar NIL)( e$ `& I1 p* _' D; E( r" N- y) O
- (setq *error* m:err m:err nil)
/ d4 j' \6 H! d2 i* I" E' G - 1 d& K2 k8 X2 K. j
- (princ)
$ A( ~2 y! S5 f$ e5 R2 P0 t - )
7 C( h! B3 e1 O% ]7 {; X+ o) s# w
3 f2 d7 A! c% ~: `- ;;; Command version of ai_draworder to be called from the CUI
' X V P% i! A& I - ;;; so it gets properly recorded by the Action Recorder
# n" `) Y( E% v - ;;;
0 n0 F2 l/ ]8 {! [0 q8 x9 }% b - (defun c:ai_draworder ()! O( z; m9 s5 Q1 {; ?
- (initget "Above Under Front Back") K4 a4 N# p3 e, l: h H
- (ai_draworder (strcat "_" (getkword))), c1 @; A& V. k \
- (princ)
0 M, E$ ~9 o3 Q4 i4 i6 E1 Y4 q - )
7 P7 y5 }6 Y" Y - . b( Z8 G: ^; V
- (defun c:vlisp ()
3 E ^* i9 p% |: T4 C$ z- U, y - (if (/= nil c:vlide) (c:vlide))) ^, S" G9 b K; w
- )
. Q6 U7 U8 z) _5 ] - $ q$ Z; `/ @8 F8 ]2 T; k6 E
- (princ "loaded.")1 V; l$ w4 q2 V
- ; o7 e' F" D3 g I! F
- ;; Silent load.% l, X: a8 K) i, L4 V
- (princ)
. \) F( g! Q' q$ B8 c- j( K$ \
0 f# s- A; n [- z# g0 J: |- ;;;----------------------------------------------------------------------------
- Y. T+ U+ |2 j' | - ;;;
8 X: e" X, D9 j9 ~ - ;;; DDCHPROP.LSP Version 0.52 j; [; f; O+ R
- ;;;# A" U" b, z$ [3 B8 B' {9 e3 ?( j/ G" n/ O
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc.# e+ o# H4 m W1 j J- y
- ;;;
# c" ]) @3 C! g J* [- R4 T5 [' D - ;;; Permission to use, copy, modify, and distribute this software+ g3 y0 z! p* {
- ;;; for any purpose and without fee is hereby granted, provided" c& M4 z; h3 O3 o
- ;;; that the above copyright notice appears in all copies and that
9 f* C @; E' Q - ;;; both that copyright notice and this permission notice appear in* O9 @2 ?3 h) f; U- K( R4 C' K
- ;;; all supporting documentation.) T" Z1 e$ \; C8 E+ g! d4 U8 z
- ;;;
9 T* z1 h! X7 l/ k8 h - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED% G2 f. p8 Z2 Q) M* r& N/ S6 N
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR5 `% E* v% B1 X* v2 C. e
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
! y, o" A; f/ ^% e; o9 D1 N9 R - ;;;$ q: G/ E/ H1 X5 s, P$ x3 ^
- ;;; 2 February 19923 D: M; S, Z* ]4 Z0 c9 }
- ;;;
/ T- E2 h+ b4 D! g" [ - ;;;----------------------------------------------------------------------------
7 L0 B/ v6 E9 g! j. i - ;;; DESCRIPTION5 T2 X8 {* j h- e. k, k
- ;;;----------------------------------------------------------------------------' I; R( ]& F% v7 h
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.5 t9 F% l9 J. j6 c' U. b/ D1 D4 ?
- ;;;8 c# E" J/ T) q
- ;;; The command looks similar to DDEMODES. The main dialogue has an image # A* }. `" l! ?* e
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
; X0 [5 ?* V+ j" L* E6 G- M - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
3 Z# e+ J& P1 x2 O. ? - ;;; The dialogues are all defined in the DDCHPROP.DCL file.# M/ N' m0 |7 N e1 Q! ] v) b
- ;;;- g4 h% v4 Y3 o3 t+ z
- ;;;1 E" ]9 G6 Z% l; B0 m
- ;;;----------------------------------------------------------------------------& B3 a" k9 i9 {# q+ g
- ;;;----------------------------------------------------------------------------0 d( W% I0 h; h
- ;;; Prefixes in command and keyword strings: 6 ?# X- I/ R% a7 N( b6 Y
- ;;; "." specifies the built-in AutoCAD command in case it has been & n+ I$ q7 B, u4 J) x5 A7 ?
- ;;; redefined.
9 Q6 A* |3 P6 A( N; c y - ;;; "_" denotes an AutoCAD command or keyword in the native language( w# z6 W, @. q8 ?, r
- ;;; version, English.
9 N- j g' h# S% r: Z' i - ;;;----------------------------------------------------------------------------! Q$ @+ c; \) n* Q: a
- ;;;
% R3 F1 u8 b% t& j/ M9 C4 y - ;;;3 `! I1 R1 y) R5 z
- ;;; ===========================================================================
# T1 g9 A) M: N: P; p( m - ;;; ===================== load-time error checking ============================+ p7 g" b3 T% a. ` g8 Z
- ;;;
1 P2 D1 N% t9 s% t+ h
5 ?0 W ]0 g3 C4 C: R4 u- (defun ai_abort (app msg)
\& v4 v) z; J) J, U - (defun *error* (s)( `* T* q. E5 v6 E7 \* m% D7 J
- (if old_error (setq *error* old_error))
\4 S$ B- \/ H7 g - (princ)
+ ^3 c4 t6 C* Y - )- S6 e; U! L p9 A" X' [6 @
- (if msg) L2 @! w3 ~2 S0 F# x$ d+ m' h
- (alert (strcat " Application error: "
; G2 i0 t2 n/ O - app4 b$ Y$ k. y) S
- " \n\n "
" i! J7 L1 }; s - msg7 O4 }1 [9 E$ Q9 \2 H, m! |' S$ C
- " \n"
5 K, j& E- X" N - ): ]/ V- C# Q) s& E% l6 z! Q0 A
- ) o6 x1 T( x3 I7 [
- )
/ w, G: }( t9 M8 ^$ J: d; X - (exit)
3 ~2 `& z5 y! g1 { - )
/ a/ }! c. E9 c& E
' d" c7 e! x% j9 e# l) l- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
, g. ~" Y$ p+ o; _5 Q - ;;; and then try to load it.3 q. D, Z' J& f
- ;;;
6 ?/ R) D+ |# B, p" P6 K - ;;; If it can't be found or it can't be loaded, then abort the
- |+ j5 m% v4 W - ;;; loading of this file immediately, preserving the (autoload)
4 k5 K0 l J4 I& B( r+ b - ;;; stub function.
' k: Z3 h+ S! y4 G - 2 \8 Z; _! I9 w* n. }. W Y4 X) g
- (cond
1 u6 P a7 `0 g6 ~6 J) I - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
- ?8 M, w' K/ {4 l3 f& Y$ S7 b
. T( H1 E" o/ `- ( (not (findfile "ai_utils.lsp")) ; find it7 }( @& R; P! d! `+ y& w6 H, W }% k/ a; r
- (ai_abort "DDCHPROP"
) K& @" _# s# b: r5 v - (strcat "Can't locate file AI_UTILS.LSP."/ A: Y" s4 n- R' b5 ]. k
- "\n Check support directory.")))
6 V/ g6 b; C- a# v - # v. s6 o- P+ [2 \5 @! G
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
g5 }7 \3 y& W2 t, ?+ B - (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
" b F+ B6 x; u8 w5 |; x - )
( T9 _! ^& d$ B' ]! J) | - ! E) b5 J! U; [. w1 S% g5 c
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
1 y6 |) }* a0 J - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses" T) k! |4 Z( v$ C
- ) ; ai_abort's alert box dialog.* e+ J$ [4 U# v' v# d1 h
5 N0 @* Q, |* B" ~1 B' y! e' H- ;;; ==================== end load-time operations ===========================' {% E6 D, \5 Y
2 V' _, C/ `$ X% ]- ;;; Initialize program subroutines and variables.1 Z \+ E& X* u4 ]' m; O1 X
- % L: m- h# ^( g, R
- (defun ddchprop_init ()
7 `- T: r; Q+ ]! b- r- E; B) v# k - 1 S* P5 D1 c4 c( t- ]$ {! E# a0 c: M
- ;;* F f3 l0 T4 d$ p9 Q
- ;; Define buttons and set values in CHPROP dialogue box 0 m; d3 @, A8 Q
- ;;# k. }9 D1 ~9 @6 u' O
- (defun call_chp (). H) F1 i( q. V3 l* X% n2 A
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))
" P) k0 L& h2 [5 s! n4 @) A - (set_tile "error" ""): m+ O( N; \0 H
- ;; Set initial dialogue tile values
) z1 q8 b* T7 k' ]+ E - (set_col_tile), r$ T7 F4 ?6 m. l: R' s' M
- (if (= lay-idx nil)
6 b' {1 Z+ J8 m+ A0 m5 w - (set_tile "t_layer" "Varies"). u2 S' \8 U# J3 Q s& b( ^' p
- (set_tile "t_layer" (nth lay-idx laynmlst))0 ?, I$ l0 J, X. p; K$ r9 T
- )
2 M* S8 ~! f+ D/ l* z- k- R/ Q - (cond
9 P! y; O1 S$ ^1 n3 S - ((= lt-idx nil)
|5 |5 e7 X' z. o: ` - (set_tile "t_ltype" "Varies")" g/ R0 r: l+ [' f& Q+ G
- )4 V) d& @9 g& W7 y. a
- ((= lt-idx 0) ; set tile "By layer & layer linetype"
) F* `' o5 H" I3 r3 d3 O; [ - (set_tile "t_ltype" (bylayer_lt))
8 [7 @( A8 M# |5 { f0 V - )
; N: Q1 d1 U+ ]9 U4 M - (T
4 Z* G5 Q/ S9 |5 f$ b0 } - (set_tile "t_ltype" (nth lt-idx ltnmlst))% r! C/ H: }( A4 W1 h
- )0 [; R, ] m: ?% f; `+ H' R
- )2 G- N4 T- d+ @0 y0 h
- (if (or (= ethickness nil) (= ethickness "Varies"))
. h% \8 Z! s8 D) R' t! b - (set_tile "eb_thickness" "Varies")- o# k: D! V) P1 c; n
- (set_tile "eb_thickness" (rtos ethickness)) d8 D0 J- R$ |
- )
5 v' G+ z8 T1 R& A - ;; Define action for tiles$ ^( `: |% r& E. ^* `7 E+ D' Q
- (action_tile "b_color" "(setq ecolor (getcolor))")) X! X' W: J0 L+ o
- (action_tile "show_image" "(setq ecolor (getcolor))")
0 L% H9 Q+ R2 k0 } - (action_tile "b_name" "(setq elayer (getlayer))")
( i3 w: ~% ~$ j$ A - (action_tile "b_line" "(setq eltype (getltype))")
s* O- G4 W% R: B4 x8 y( W- Y - (action_tile "eb_thickness" "(getthickness $value)")5 J$ s- s% Y% C$ x0 T7 W3 d! c- |
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")% a0 G& {) N2 P Q Z
- (action_tile "accept" "(test-ok)")# H- [! V' r' \- }- J" M+ ]1 D
- (if (= (start_dialog) 1)
/ R! J# l' n% ?9 J2 o% c( N - (progn
' ?+ z+ s- z9 w( K6 c7 m - (command "_.chprop" ss "")
2 V* ?8 i8 u l2 C! [ ^ - (if ecolor
?- u: L1 ~; A/ ]7 K. Y2 y - (progn" j- B) i6 ~& N% o6 B
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
f) n2 i) X/ l - (if (= 256 ecolor ) (setq ecolor "BYLAYER"))- J& V( Y9 m9 ~% w: Y, P" P
- (command "_c" ecolor)
6 f, S9 h: s$ \ - )
8 k+ S3 R" U# d; o$ S% T - )
3 P& q, t1 B3 j/ G& v - (if (and (/= eltype "Varies") lt-idx)
2 W8 R$ g4 h5 h7 K - (command "_lt" eltype)& N' Y/ J' _4 _8 S& o. g1 ]; u* v
- )
9 E# Q0 W% s" ~; w% C - (if (and (/= elayer "Varies") lay-idx)
7 j2 V1 J: Z& n9 x# w+ c( W - (command "_la" elayer)
/ ~, ^4 P9 T* @0 W4 s9 P; Z7 R - )
3 L }1 t4 r8 c - (if (and (/= ethickness "Varies") ethickness)0 f/ c+ d1 Z: q7 F* ^ ^
- (command "_t" ethickness)0 u |4 H& y' {) V( h1 ^2 b! _; M
- )
4 s# t, p( O" u. A5 X - (command "") D0 u. \* X; i: O
- )
% S, C1 \8 }' ]- A0 Z+ w3 U9 z' } - (princ "\nProperties unchanged") f, b" s3 U2 W
- )
0 g' o! ~3 @8 y6 M( Z: X, b7 J - (princ)
! u8 f. v7 J2 l1 `' p7 s8 I3 ?% v - )/ q# i: n- r8 u# b; Q
- ;;
# v. X0 ^6 ^6 t - ;; Function to set the Color text tile and swab to the current color value.0 u$ n1 F1 k7 p- p6 a1 l
- ;;' A0 A/ h$ y+ o/ R
- (defun set_col_tile()9 `9 G: m6 F" R+ `
- (cond
/ |3 _ a' q8 o' J' C+ v - ((= ecolor nil), R7 w, x( S2 q1 Y& b6 E' C
- (set_tile "t_color" "Varies")
M: e* N+ L% z* g - (col_tile "show_image" 0 nil)( n4 O) R& I3 P& G' H0 f' ?
- )) B" \! x6 F- m
- ((= ecolor 0)9 J' F0 W: D7 }+ h% a
- (set_tile "t_color" "BYBLOCK"); X1 @* w8 g+ l& U
- (col_tile "show_image" 0 nil)
% g& j9 x) s" i - )7 v# ?# ]2 I+ l; x7 \6 x
- ((= ecolor 1)& c8 B6 ^ \2 s) O0 p( x
- (set_tile "t_color" "1 red")
3 ~3 W1 H2 S- x0 d m - (col_tile "show_image" 1 nil)- W* L0 W+ z' e( {" c: z. P) S1 d
- )4 r4 U% x7 L$ ?! s. e
- ((= ecolor 2)' i2 C$ E& h: V
- (set_tile "t_color" "2 yellow")
) j1 k4 x8 W5 C/ R& L( ` - (col_tile "show_image" 2 nil). R$ H( _. M; J# q% W6 V, j" s
- ) h$ l% R& R7 R) X/ F
- ((= ecolor 3)6 U$ r) e/ F2 h) [
- (set_tile "t_color" "3 green")7 R& Q! {9 k- }" G! Q
- (col_tile "show_image" 3 nil)
G) S% P. Y$ X- l - )
# C' S; R$ j% \" G( ^ - ((= ecolor 4)+ b& ]" o n/ e7 |5 G$ G
- (set_tile "t_color" "4 cyan")
: c7 n& N: L8 D0 h" O* J' T - (col_tile "show_image" 4 nil)& Z0 I; _1 G/ G7 C( W
- )9 Y& ~4 N0 {4 L! N+ K3 \% X
- ((= ecolor 5)6 l0 \3 L2 h: I; [
- (set_tile "t_color" "5 blue")
9 ~2 ^2 ]3 c1 e5 r4 k" o) b - (col_tile "show_image" 5 nil)* z) i3 i, K, C/ r7 R$ g( i/ @
- )
9 n+ J R+ `8 c- l+ Y7 N - ((= ecolor 6)
8 ~+ _" K% b% d2 x$ D; S& F ` - (set_tile "t_color" "6 magenta")! e# Y3 U0 E6 B9 r; v
- (col_tile "show_image" 6 nil)
. g( S) w, j- Q5 I# `% ~) u" d - )
2 h7 B1 ^9 w7 `5 p3 S3 K" A* L0 W8 c - ((= ecolor 7)! e9 o0 G& _( @
- (set_tile "t_color" "7 white")
2 t! q8 o5 n, U- H7 X) F - (col_tile "show_image" 7 nil) p$ D. |8 T" c& y" W" b
- )5 {( @2 k. l; P( Z$ b. g
- ;; If the color is "BYLAYER", then set the tile to
( H3 K4 k* Q; i! N6 P# x9 G* Y - ;; show it's set By layer, but also indicate the+ _9 x* D% u- w% o; A; R
- ;; color of the layer - i.e. By layer (red)
) A0 A1 E0 |2 Q( |8 Z4 a+ u7 v# B - ((= ecolor 256)# _( m/ ~0 P4 r9 f+ q! y
- (set_tile "t_color" (bylayer_col))" ]/ T0 K3 l5 P" `
- (col_tile "show_image" cn nil); f2 W; L+ G. G- \7 B7 Y/ E: d
- )
2 K2 E' n; N8 Y - (T - n5 u) i6 l- |
- (set_tile "t_color" (itoa ecolor))
* v. C. E( Y$ e: W6 q" n - (col_tile "show_image" ecolor nil)8 _: L) h, ~& {
- )
6 {4 K* [: k* s& O- W7 z - )+ g# D* e$ P; {; l8 v& k
- )
( L" c' b. \7 F: S# |2 Z6 A - ;;
. G/ X& P3 Y' {) K! N& k - ;; Function to put up the standard color dialogue.
9 z, @, S2 p* T# Z. h* n - ;;
+ E( G) c* h0 ~ y4 P - (defun getcolor(/ col_def lay_clr temp_color)
! B; V* j" x" F& S8 x - ;; col_def is the default color used when rq_color is called. If ecolor
2 G: o! O! J+ B2 y/ e - ;; is nil (varies) then set it to 1, else use the value of ecolor.
5 z; B, F. k5 D* Q0 Q4 \ - (if ecolor) A( Z, g# F( y5 `# ]$ r; a
- (setq col_def ecolor)6 y' `9 A8 _* d2 z' {) R( N
- (setq col_def 1)
( r' ]' ^; N f' f - )
) I7 q4 p5 N* Q1 z, y5 G2 Y7 S - 2 D& j a7 r' H
- ;; If we're working with a single layer, get its color
: E+ n8 Z$ ^4 s) { - ;; for use in the color swatch if the user selects color BYLAYER.
! Y/ t& t W# M9 j5 w9 O - (if (/= elayer "Varies")
$ E" r/ }$ U8 w H - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
! D! M* l( R; z' P - (setq lay_clr 0). d' m' E5 i9 _. Q* Z/ ]
- )* Q+ x% A3 S2 T4 \# }3 A: Y! O
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
C8 d8 K8 d1 p% v; m8 ]. {$ I4 y6 E - (progn9 K' C: ` z0 G! v+ G
- (setq ecolor temp_color)' P7 v) T4 {; Y5 Y
- (set_col_tile)
! x+ T5 ~/ v3 I; Q- r' E - ecolor
% w$ q. F, |" x# l) F% ? - )
9 x6 u7 {/ V* ?$ ~( Z" r; u - ecolor
( S, {; r: D0 u1 q- D - ) ( h# m; h. j8 e( p8 Q+ L
- )* z! k1 L" ~ [1 j
- ;;
" s* _" x7 O, M1 r" ]2 O2 {- _) Y' L - ;; This function pops a dialogue box consisting of a list box, image tile, / L: ~2 b) R* i" u6 m
- ;; and edit box to allow the user to select or type a linetype. It returns
+ d1 y3 C) [/ K1 i5 M - ;; the linetype selected./ A# n5 @# p+ |8 v5 w
- ;;0 l& l% y2 x, z0 P% B
- (defun getltype (/ old-idx ltname)
6 ]2 F7 J& A5 Q' ?3 y! H - ;; Initialize a dialogue from dialogue file
4 L5 S6 U; }0 w9 X( B - (if (not (new_dialog "setltype" dcl_id)) (exit))
. @/ W9 s- n. |/ Z2 H - (start_list "list_lt")
4 A. C* h. I, _$ k7 c - (mapcar 'add_list ltnmlst) ; initialize list box
1 l- t2 r5 j2 x. Q1 T - (end_list)
& J7 d- i! |: r( h8 i) z - (setq old-idx lt-idx)
" a5 X. \7 a+ r4 j" Z' I+ d# t5 ?; S - ;; Show initial ltype in image tile, list box, and edit box
$ n+ t8 w% P0 E. v - (if (/= lt-idx nil)& X/ U7 X4 t$ F! g9 r
- (ltlist_act (itoa lt-idx))) ]& }/ |3 g/ u/ W
- (progn
# s1 B8 h6 |3 ], d3 O - (set_tile "edit_lt" "Varies"); ^4 a9 A+ }& c" [# E
- (col_tile "show_image" 0 nil)
M- g! _) [/ K3 ^% o - )
( i7 U& p+ S: h$ _) x$ N/ v - )0 b- g; b1 `& j7 Q: l
- (action_tile "list_lt" "(ltlist_act $value)")
0 z7 I$ F! h7 Z6 Y6 N3 i" [ - (action_tile "edit_lt" "(ltedit_act $value)")
. i! N! ~3 \5 S5 A d) Y7 k6 V - (action_tile "accept" "(test-ok)"), P# a3 r3 p, g( j+ W
- (action_tile "cancel" "(reset-lt)")9 v6 f2 Y {5 w5 Q7 O
- (if (= (start_dialog) 1) ; User pressed OK
5 I' z! d" w4 Q - (cond ; a) [0 N5 G2 J! c) a
- ((= lt-idx nil)
: U0 D1 o& a7 L$ g n - (set_tile "t_ltype" "Varies")
8 b7 O& J3 B6 W. u" S. r8 z; ~ - "Varies"1 r6 n9 h& Z% K0 K9 o# V# b# @: ~
- )
! w/ G" }9 n1 P: N0 p - ((= lt-idx 0)8 [% w: K }" T( K% G* G3 X
- (set_tile "t_ltype" (bylayer_lt))6 _( D5 R8 ^2 i4 `
- "BYLAYER". v! v0 l( n7 G2 K& Z6 |+ U) _
- )/ t# M0 Y& _; Q, i' d0 r u
- ((= lt-idx 1), t$ Y- w, W5 a! N( z. f# i* m
- (set_tile "t_ltype" "BYBLOCK")4 X0 U' j* h9 ]0 n
- "BYBLOCK"% L% G l* t& @' ?( y* u9 j
- )9 t9 I) @, |. ?8 r. I8 B. r
- (T ( |+ P. R) w' B7 c8 _
- (set_tile "t_ltype" ltname) ( s8 A) a6 ~% Q& [' c
- ltname8 R. P# h, m, x9 q4 S
- )5 p( z- o4 _7 o* z; ~$ Z
- )2 A* g' f- L, e6 D$ l
- eltype
+ T& N% @: C$ `. S - )4 Y9 w& R7 Y1 g) x
- )9 C" i% h6 P9 i) v6 `6 [" c; X
- ;;
) m8 m _- l; w2 c - ;; Edit box entries end up here
# a0 q' x( E0 L6 v2 e# q4 Q( H - ;;
. b$ v( Y+ Z- H - (defun ltedit_act (ltvalue)
$ L2 q8 e; F' h7 S+ K6 D% q5 ` - ;; If linetype name,is valid, then clear error string, 1 `& Y8 t4 }6 y I- h% T1 h
- ;; call ltlist_act function, and change focus to list box.
$ H2 H5 a4 d- ]0 B - ;; Else print error message.
, Q4 V- h' m: A/ m: i8 d( u' ` - (setq ltvalue (strcase ltvalue))
7 k3 f& n, e7 B( V! a - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
( ^/ i* A% Y5 R) J3 L4 ? - (setq ltvalue "BYLAYER")
: a- }& g" a i: P$ p - )
' e) o. e3 R, Q/ _0 N9 m - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
% |, _' v/ H3 l - (setq ltvalue "BYBLOCK")% }8 X1 c/ N* |; @, H% K
- )
. ]2 ^& [1 R1 K - (if (setq lt-idx (getindex ltvalue ltnmlst))
) f( L3 n5 G% V - (progn+ M" E' [0 F5 m/ X
- (set_tile "error" "")! o ~: [3 O3 k2 y- A
- (ltlist_act (itoa lt-idx))
, T+ ^" ?9 B7 j - (mode_tile "list_lt" 2): ~- |9 w) T2 ~8 Z
- )
+ E6 k1 V, ]9 M# G& p - (progn
5 x" }! _+ [( a4 f$ N - (if (/= ltvalue "VARIES")
/ O8 F) a* m( m - (set_tile "error" "Invalid linetype.")
! j9 v- a/ p8 e6 Y - )
: N/ y: A G! {+ I, B# D% m - (setq lt-idx old-idx)% f4 @. R8 m9 Y% m2 [: K
- ) ) r9 O& ^+ |) ^! Y Y/ N
- )3 r$ t+ V5 R- ^- w% b0 g8 K. ]
- )
8 Z3 }# Q5 D9 g7 k* ^ - ;;# w1 {; x4 a, W7 \: `) D# w; W% e& d
- ;; List selections end up here* S. F# |0 H0 R( n) j$ e4 T" W
- ;;6 y6 s' p+ W& z5 Z# ~: f
- (defun ltlist_act (index / dashdata)7 m* e3 J" H7 L: B3 w3 B5 m2 \
- ;; Update the list box, edit box, and color tile
+ r9 R3 A5 a2 X5 Y - (set_tile "error" "")
- B6 Q4 S# D2 X6 P( h0 T - (setq lt-idx (atoi index))
( [( Q9 R& C2 g. ]8 p$ o0 J - (setq ltname (nth lt-idx ltnmlst))6 l ?9 q! r4 l3 L! ]6 }# Z
- (setq dashdata (nth lt-idx mdashlist))
/ p- D/ n. ~: Q/ \& I9 x e - (col_tile "show_image" 0 dashdata)
1 d, c# i# i( C! y8 r% S6 u - (set_tile "list_lt" (itoa lt-idx))+ ~* {* V3 C: s7 m1 A
- (set_tile "edit_lt" ltname): L3 R9 f. s" D. j/ F, y+ H
- )
m6 e# Q% G7 k6 m2 |9 v: F0 G% E - ;;* {2 u8 K& x+ b$ w# B
- ;; Reset to original linetype when cancel it selected% n- [& g0 }6 @2 o
- ;;9 A/ E, T; I+ }+ o5 [7 F, ?
- (defun reset-lt ()
0 E$ C8 B0 `" K& D) k! G+ A( {0 B5 G - (setq lt-idx old-idx)6 i4 |9 b7 V% l* V" D/ e
- (done_dialog 0). {% f/ j4 N: | F+ Z1 m, F
- )' S- n3 z; p) U' T& P
- ;;6 U! s, N1 K' @/ D [- W
- ;; This function pops a dialogue box consisting of a list box and edit box to
/ `6 i9 {. W1 o7 b! ^/ g4 D$ _ - ;; allow the user to select or type a layer name. It returns the layer name * S$ E) U0 N* b& M4 p) r& k
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the % n4 Z6 y$ M4 l5 I
- ;; drawing.
" s# L! f1 T! K - ;;
. X( N" S( a0 }* ]. a; V2 T. J - (defun getlayer (/ old-idx layname on off frozth linetype colname)
7 ~' @% L. t+ C% C+ d0 q - ;; Load a dialogue from dialogue file
1 h$ ?3 [- h3 f. L8 j - (if (not (new_dialog "setlayer" dcl_id)) (exit))# V$ o6 M1 y5 |' ~! Y P( D
- (start_list "list_lay")
9 J: j6 W2 z! b P3 {3 e - (mapcar 'add_list longlist) ; initialize list box
; c+ `- \4 l$ u9 b2 v3 x" p5 K - (end_list)9 [+ C. y" @( T/ J
- ;; Display current layer, show initial layer name in edit & ]/ h' D. [9 h( P& U4 C$ E( M4 V
- ;; box, and highlight list box.
* }( C5 E/ Q+ Y - (setq old-idx lay-idx)
' [. l% L. B0 J - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))) B; \5 |! s. m+ H0 P2 M+ B
- (set_tile "cur_layer" (getvar "clayer"))+ I6 H) m2 x& g/ f2 W% q+ P
- (action_tile "list_lay" "(laylist_act $value)")- W' T9 \% F; Z- O
- (action_tile "edit_lay" "(layedit_act $value)")
, Y1 ^, B# E% `+ s% x x% L' `/ {8 n - (action_tile "accept" "(test-ok)")0 w- w- W9 S- p, ^0 S4 J
- (action_tile "cancel" "(reset-lay)")
, ~/ G& k2 n5 ^9 c/ F3 i! W - (if (= (start_dialog) 1) ; User pressed OK
: V( n- X% L4 E+ H: _ - (progn
( \7 U, Q( M& s: w7 t - (if (= lay-idx nil) (setq layname "Varies"))
2 D4 C; {, f0 f9 @! Q, ^ - (set_tile "t_layer" layname)
& a F. @- V/ e. j0 v7 H - ; If layer or ltype equals bylayer reset their tiles
0 l% ^+ r) D& [ - (if (= lt-idx 0)" p9 l/ z$ j, R. I
- (set_tile "t_ltype" (bylayer_lt))
( K( _( Q; y8 N* f! t2 Q3 v B - )
/ `" l" } f j$ B' { - (if (= ecolor 256), K4 n; D0 @" W# Z, K- A5 P
- (progn/ b' u. m7 m5 R1 Y
- (set_tile "t_color" (bylayer_col))4 ~" Q8 l0 V: e' s3 `; Q2 K
- (col_tile "show_image" cn nil)5 a$ R1 a, E0 Z1 Z) P& c- y' [
- )
9 ~2 G2 ~1 b& M8 j( W - )' R0 s6 L- q8 ~. y G4 |
- layname
) x4 ]- T( b! D - )7 B5 y( z) ?# ?: x% R, V8 D& m
- elayer
1 E4 ?' v" s, C: L5 y4 ~; p( B - )7 X* W( i$ Y4 c7 O5 F
- ) i9 H) g$ r& e" b+ D# U, G. n1 [
- ;;
; \' Q! m. j' j) l - ;; Edit box selections end up here
( h" R0 y; i$ q9 n- F - ;;& }9 I! B4 y# h
- (defun layedit_act (layvalue)
0 Z* R& ~, {" M/ T" C- K* x; Q! F - ;; Convert layer entry to upper case. If layer name is
/ w) _$ Z4 o5 ]: p, d- l. K - ;; valid, clear error string, call (laylist_act) function,
0 M8 _+ i& b3 ~2 ~% P - ;; and change focus to list box. Else print error message.
. {( g8 W8 ?' ~ G5 O - (setq layvalue (strcase layvalue))
% M# S7 n. g d5 P9 D' { - (if (setq lay-idx (getindex layvalue laynmlst))3 d2 j( |) g1 H5 [" y& r+ ]
- (progn& c7 t' G8 c: O! a
- (set_tile "error" "")
8 L, @5 E* i& W8 P - (laylist_act (itoa lay-idx))1 K; z, s/ y K, m) x9 r/ o
- )% H( R, |4 L/ y: f8 f* H3 p }+ J- N
- (progn3 D7 N; u0 t7 K0 h7 s
- (set_tile "error" "Invalid layer name.")
# l \" q$ B! l4 c% F3 t - (setq lay-idx old-idx)! p# t' G% J; |- H- h
- )3 Y& B3 t1 C3 n" l/ z; H
- )
0 J& H; F4 ?/ B' q - )% P9 K! w, V6 \$ Y6 D: R
- ;;% o3 h9 G1 O7 _& {$ u
- ;; List entry selections end up here* Y4 E$ m, k& X7 t6 s: G* K7 E# J
- ;;
5 _! I+ l9 F" ^4 X - (defun laylist_act (index / layinfo color dashdata)" q* G2 T/ S9 b: G& p7 S0 [8 X
- ;; Update the list box, edit box, and color tile
' p; J$ M! }. f" i b; j - (set_tile "error" "")
9 Q4 X$ v8 j" H& |8 O$ l( ] - (setq lay-idx (atoi index))
& Q( A8 N B. ^2 p7 u0 l - (setq layname (nth lay-idx laynmlst))2 D% N" C5 Z9 H1 o8 Z* E. E
- (setq layinfo (tblsearch "layer" layname)). s; ]: i: k( B6 Q+ N
- (if (= (logand (cdr (assoc 70 layinfo)) 4) 4) x* `! C0 ]0 u7 p) ?
- (set_tile "error" "Cannot change entity to locked layer."), P9 K' R7 C5 S9 r2 d8 O
- (progn) A- w' k5 N' n$ ?
- (setq color (cdr (assoc 62 layinfo)))
0 d0 i2 J& m k w/ ^ - (setq color (abs color))
* D; T p2 f; D, Y3 N. K4 X6 F% R! R - (setq colname (colorname color))
0 f! ?9 ^: f- K: p - (set_tile "list_lay" (itoa lay-idx))
( A# r! J) C0 V& |) ]5 k' ` - (set_tile "edit_lay" layname)
) ?- @6 B8 Q4 t - (mode_tile "list_lay" 2)% j! Q3 j1 h0 e F, g
- )
7 j, L5 S2 c. j; C" Q - )/ h5 P- G7 p4 x z
- )7 R- {* }7 n" o6 ~' V2 b, J
- ;;
' z( g6 [% |! f: |4 S8 O - ;; Reset to original layer when cancel is selected
_% H7 b" k4 J8 M4 n8 s, v - ;;7 x2 f) {' A8 v6 {1 w
- (defun reset-lay ()8 q1 R& q3 l) T7 g2 Z4 O3 V9 j
- (setq lay-idx old-idx)
+ H$ W$ `( B! P! a" B - (done_dialog 0)
6 E4 Q9 B# M9 C0 h6 `& o9 W# G - )
# m# a! m) _' Z$ w% l5 u( m* U - ;;
& ~8 X+ N) M |* | - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a 9 i3 C2 Z7 T% }0 f4 @9 |
- ;; string can't be converted to a real, this routine checks if the first 3 e: [7 H/ ?7 b" d9 }+ j3 [
- ;; character is "0". It also checks to see if the value equals "Varies".
9 ?% K' h+ r6 x2 V4 c: {$ j - ;;
. g+ @+ S; p7 v+ X' C - (defun getthickness (value)* H. V3 K: o; | [; ?- C# o
- (setq value (strcase value))
, |9 { T) a H; e8 U. h - (if (or (= value "VARIES")
1 y# j1 t% n: o" R' w( k - (distof value)2 h p4 z0 A# X
- )# l$ _+ d4 Z8 m8 ~
- (progn1 J, q0 h+ \! q% z5 H4 _
- (set_tile "error" "")
4 g; g1 u% w; M5 c" U- o - (if (= value "VARIES")+ |: F. y; {- p
- (progn" r6 ~' }% R5 g8 i
- (set_tile "eb_thickness" "Varies")! h$ J: P. y$ i+ D: }: h9 R2 N
- (setq ethickness nil)) F' e0 k! ]0 y
- )
0 L# t: ]) t4 K" p" v$ ^ - (progn
0 A- O, k# G7 J+ Z: Y - (setq ethickness (distof value))
; @* M3 P8 q, Y8 ~9 G7 p- q' P4 L- | - (set_tile "eb_thickness" (rtos ethickness))
3 n9 Z& ?0 P1 w A/ W: ~* ]. b - ethickness
, E2 b, b, I# M" q7 a - )- f7 `# ]& X8 K. Z& {8 C
- )3 d) K7 w9 \" h! e0 K6 \
- )
# l- U1 Q$ j, ?2 a( _ - (progn: [# y1 w7 m/ H% t. R Y. [
- (set_tile "error" "Invalid thickness.")
1 x0 O+ ]7 g7 ~* H4 u. ?( p( L - nil
! i! F. N& S! @4 x - )1 V4 N3 S. T; Z. i0 }
- )
9 m4 m# c3 e, |' p- J! i4 ]+ n - )7 x: q: q$ c6 Z% @2 x$ `
- ;;
" I* A% w% S$ [. d7 E6 t - ;; This function make a list called laynmlst which consists of all the layer
! X: \, g5 `: l5 y; `; z# h! L( d - ;; names in the drawing. It also creates a list called longlist which
: _3 R( D+ m6 z9 R - ;; consists of strings which contain the layer name, color, linetype, etc. * A7 Z5 a9 i K! K, n
- ;; Longlist is later mapped into the layer listbox. Both are ordered the 7 k L# q7 f* ? W+ \: x
- ;; same. Z9 g. N: u0 l9 q. F% o/ S
- ;;& ]3 y! x% B7 z
- (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname 8 t6 m) ~" R5 S8 B% o/ E' |
- xdlist vpldata sortlist name templist bit-70
f ? Y$ K; ]' v6 H - )6 h" y0 Z6 [, D6 D4 w
- (if (= (setq tilemode (getvar "tilemode")) 0)8 e N! w. d( ]6 A3 l* J& v, e
- (progn
; w3 k4 J% }6 D% `9 ] - (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
* @! B# H* Q0 _ - (cons 69 (getvar "CVPORT"))% ?* W1 c- i+ G. r2 o7 y: x! ~
- )" s3 ~& K- U: H6 ]/ q4 K% N
- )
) ]1 q! R4 `% |$ e+ z8 q - )
d9 u6 [+ z: q7 K# J - (setq cvpname (ssname ss 0))
( h. w: N) |& ]9 u9 x X( x1 F5 Y - (setq xdlist (assoc -3 (entget cvpname '("acad"))))
! A" U+ w8 T9 c8 ^ - (setq vpldata (cdadr xdlist))0 y- X0 r D7 f
- )
3 _: [1 B, F5 } F! J+ x - )
/ r/ y9 B, C K! B& p9 C* \: ] - (setq sortlist nil)
2 `6 C0 v) e, o( a- R1 G+ U3 } - (setq templist (tblnext "LAYER" T))
3 T! }! Y% N0 q - (while templist
+ U2 Q& ?2 \& V/ M. H8 N1 \ - (setq name (cdr (assoc 2 templist)))
- q& v, n6 D, \) R. k, u: C - (setq sortlist (cons name sortlist))
( { T; K$ K6 v' A {% H7 c1 F* Y - (setq templist (tblnext "LAYER")) S1 q; t" F5 Z1 I4 K7 K
- ) . [0 i0 _- w! h) W
- (if (>= (getvar "maxsort") (length sortlist)); h8 U5 T0 ?$ |) h
- (setq sortlist (acad_strlsort sortlist))( d6 C1 A& v$ h) n( R$ a: ]4 J
- (setq sortlist (reverse sortlist))
) o6 C+ o8 e6 t! n( ]. H - )
- I. n3 L v" n - (setq laynmlst sortlist). F A9 H3 q# X; t6 n
- (setq longlist nil)
; B3 n: ^1 ^: M5 C9 M - (setq layname (car sortlist))
+ x* K6 \! `& ]4 A3 }: Z - (while layname: [) J/ [. C. Q, s m4 K
- (setq laylist (tblsearch "LAYER" layname)). {5 I# M$ \5 Q1 ]5 z5 b4 p
- (setq color (cdr (assoc 62 laylist)))+ v9 \7 y/ L% J' g: W
- (if (minusp color)+ V7 ^7 L/ }+ I, R3 Q
- (setq onoff ".")
9 V$ J* l X, @) S - (setq onoff "On")% h; m4 k& H/ }# u+ B/ V
- )
! E3 J7 A6 |% v. H - (setq color (abs color))
D5 D. V& F, Q- K) x. a - (setq colname (colorname color))% ]2 ]7 d$ x8 D
- (setq bit-70 (cdr (assoc 70 laylist)))
$ c( [+ t; r4 v2 X1 D. m - (if (= (logand bit-70 1) 1)# \1 L$ _7 x; b5 ~) d6 j
- (setq frozth "F" fchk laylist)4 k$ W, d5 o; b& ^2 s
- (setq frozth ".")- b% ?9 r/ Q- j# w% _1 p
- ): Z+ E9 z* r- a5 o4 D. T4 s; l
- (if (= (logand bit-70 2) 2)
, L( p7 k6 ~. H - (setq vpn "N")1 f" M0 K3 H, Y [8 r: f6 o
- (setq vpn ".")6 R# Y# v7 R2 |. I
- )0 ]+ r0 B5 w& d2 @
- (if (= (logand bit-70 4) 4)1 Q1 R7 s# Z* x; c
- (setq lock "L")
3 V# E, e! ~3 _2 V- P - (setq lock ".")
4 D/ r- }# M8 K - ) N$ [2 C) h$ T( s+ c0 m- P- f
- (setq linetype (cdr (assoc 6 laylist))) k) y9 B+ E# x
- (setq layname (substr layname 1 31))4 j8 g5 W0 P% j1 r) f5 ^. y& u
- (if (= tilemode 0)
$ z& x/ P6 s: X3 p- z - (progn
2 K; p: e! L6 Z, h6 S - (if (member (cons 1003 layname) vpldata)
* E- J9 S; W5 o+ g( X! i! \/ x2 Z" m ] - (setq vpf "C")
6 F# R2 x% A! c2 l% V# w - (setq vpf ".")6 _6 a, d) ? V8 w- [
- )0 X7 [1 _4 n) n* r6 I s. u
- ), l/ W# H, V7 _# T1 e
- (setq vpf ".")
, t7 R5 q( @+ W2 U# E- u1 { - )1 I6 H( r4 G2 G2 v
- (setq ltabstr (strcat layname "\t"
4 B! `* T- b" |! a - onoff "\t"" z9 S8 G* h4 c
- frozth "\t"
6 U, e; x1 c/ K7 C: I# K( t - lock "\t"
' S0 O) I* f5 G& G - vpf "\t"
f) |& N/ W+ ]; g, w) s E( y2 U - vpn "\t"
& A$ H% d2 f6 w% f - colname "\t"
1 d6 h3 C3 D8 S" D - linetype: X1 F- c- @9 _2 i; N; y+ ~1 w( a
- )" l; \0 h& S/ B4 Y
- )+ s/ [/ h2 Y ?# o$ ^% a$ @
- (setq longlist (append longlist (list ltabstr))), ]: \+ m5 O2 a
- (setq sortlist (cdr sortlist)). c; I: {- y" V9 @7 G
- (setq layname (car sortlist))
`1 Z5 L4 z `" W' a2 j4 U+ C. `) D8 H - )( P3 k! s* S$ M" O' z6 ^9 O! b
- )1 x5 p9 }1 U( q& @& |9 ~
- ;;* @ ^/ W/ J& H! v. }* ]: c
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of - l3 [( [$ w% Q6 N) X2 S! A
- ;; linetype names read from the symbol table. Mdashlist is list consisting 0 Z6 X% N( |! X% c
- ;; of lists which define the linetype pattern - numbers that indicate dots, ) N# l k+ F k; g: ]3 d
- ;; dashes, and spaces taken from group code 49. The list corresponds to the ( B& p, u5 M9 P/ `6 Q- J- A; E, G
- ;; order of names in ltnmlst.
5 a; |9 G) {# X1 w) L( r* \ - ;;8 M1 d, S$ R1 J( m) A
- (defun makeltlists (/ ltlist ltname)
9 j) m2 H4 y6 d/ j) `$ P. H3 V - (setq mdashlist nil)
: j) ?3 G' d# q6 c# y - (setq ltlist (tblnext "LTYPE" T))
; Z% k- p: ?9 w# p1 e# E- N( t! `- o - (setq ltname (cdr (assoc 2 ltlist))) c4 Y; e4 U, @! K
- (setq ltnmlst (list ltname))
" |6 n& w4 ~; U4 l - 7 {1 ^' C/ p5 C/ [0 f
- (if (= ltname "CONTINUOUS")
9 w& n3 I3 R D% B; S - (setq mdashlist (list "CONT"))
' g6 I& d3 i4 k m2 j. E - (setq mdashlist
+ \7 Y' T' G- \ - (append mdashlist (list (add-mdash ltlist)))
, O- N! J0 Y8 ]: x, Q c) I! [ - )
- [( Y3 V, ^' s# o" V" e - )# a$ V9 S- P; y5 H: k9 k& o
- (while (setq ltlist (tblnext "LTYPE"))
" G5 @% u/ a# k1 w+ ^ - (setq ltname (cdr (assoc 2 ltlist))): r1 K; Z; P0 n! p
- (setq ltnmlst (append ltnmlst (list ltname)))2 I z" A0 n" q0 R9 y' I% N
- (setq mdashlist ; }3 h0 V9 a. w- I
- (append mdashlist (list (add-mdash ltlist))); [ @8 A- u# o& h. V. r
- )
7 S3 e! S! ]7 f7 x( Q6 ^5 m" L m - )1 k; {4 H% f3 Q- U% v9 M$ S
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
; C6 _ }( q" j% }- Q9 f - (setq mdashlist (cons nil mdashlist))# H" v0 j1 ~( B( u
- (setq ltnmlst (cons "BYLAYER" ltnmlst))
- g9 ^: K* v5 B; j/ g' J" s - (setq mdashlist (cons nil mdashlist))3 `. P' R) B A+ Z: |
- )% ^; T |: ?+ |) Y
- ;;+ D5 A" L4 p5 c% y1 Z6 p; e4 k
- ;; Get all the group code 49 values for a linetype and put them in a list ) C$ P* @# A( a+ ^
- ;; (pen-up, pen-down info)
- d. k" B" o0 y, U, { - ;;
' O3 g# B6 t; z- l) s - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
( D5 t2 S4 V* X5 j Y( d/ J - (setq dashlist nil)3 s% d2 |! f" p( W4 T- X3 _' N# _: w
- (while (setq assoclist (car ltlist1))
( E) _! T; q/ f8 q* A* m - (if (= (car assoclist) 49)2 S$ O6 R" H T7 K3 p$ ~* h/ `& r
- (progn
( x% h0 j7 z6 \0 {$ D - (setq dashsize (cdr assoclist))
0 d. P3 Z& r$ b8 O6 `9 H - (setq dashlist (cons dashsize dashlist))% z! r! \0 a0 |6 _6 f1 p! `: j/ c# y# E
- )
: o8 {5 S6 F$ K0 T - )8 M b3 l% J2 S! Z
- (setq ltlist1 (cdr ltlist1))
8 ?+ `* \+ W* v, r- f - )" y$ T( H! P" T1 n. I
- (setq dashlist (reverse dashlist))/ f- u3 R2 w2 y
- )9 ]8 f; O) `: y% g
- ;;- B" y. k: \& e4 I5 b! Y- T
- ;; Color a tile, draw linetype, and draw a border around it
3 }: U' v' I, Z9 U8 H* [$ z - ;;
( Z% v! V# v& F& n - (defun col_tile (tile color patlist / x y)
3 [1 c6 D0 d/ P- i% E1 m3 E - (setq x (dimx_tile tile))
8 a X8 X y2 n! F8 E) U. m - (setq y (dimy_tile tile))+ k+ p! u1 U! R) b" k$ K
- (start_image tile)
3 w+ T3 [3 H! o$ b - (fill_image 0 0 x y color)
% A7 k/ D- A6 ?; K' |. { - (if (= color 7)
' C! h; _, A0 e* q7 Y% Q# `5 X - (progn
8 F1 Z/ I9 f! \, w6 N9 ~ - (if patlist (drawpattern x (/ y 2) patlist 0))
6 j$ f1 J4 v; L8 {* [+ |' [ - (tile_rect 0 0 x y 0)5 [3 f( R( [$ P( U! V
- )2 _( {; ]( g2 Q& |, q; S1 p
- (progn
: E4 ~* q' w( F: M/ m) ?7 z - (if patlist (drawpattern x (/ y 2) patlist 7)): y7 o# L0 F) W3 ?$ r
- (tile_rect 0 0 x y 7)
' }$ I& }6 j/ s/ _ - )0 {* r- g0 C, e% M
- ): C: s7 Z& d! G9 \ o
- (end_image)
4 x+ w2 T& D- ^0 W1 m C. P - )
& M9 X) B9 _5 x! h( g( O7 w - ;;9 Z6 H8 ~8 X# ^
- ;; Draw a border around a tile5 ]0 v. B A2 s6 h
- ;;
* K% n4 l* p: Z4 k0 N - (defun tile_rect (x1 y1 x2 y2 color)
. N% D) E! U! @! A' |# X - (setq x2 (- x2 1))
2 l- r! ^# z: ?( m - (setq y2 (- y2 1))+ T7 b3 V/ O" c2 `
- (vector_image x1 y1 x2 y1 color)
% E. @9 a e" u - (vector_image x2 y1 x2 y2 color)& X, W, n) E; ~1 M q5 ?4 y
- (vector_image x2 y2 x1 y2 color)& m2 P# v( p. N" L) T0 `
- (vector_image x1 y2 x1 y1 color)* `' n: i% d3 ?; r! W
- )+ [! t: g3 U; n& b
- ;;
, {2 C) O/ s6 v% c/ S - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image $ G/ A @) {. E' m5 o: F8 z
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a ; i# F1 d: ]- _4 p7 `
- ;; list of numbers that define the linetype, and color is the color of the
! E) v" {0 n& x5 l3 c, w, b - ;; tile.' g. G/ Q8 v; o/ k) O
- ;;9 R6 ^6 k, n* Q z# I9 N
- (defun drawpattern (boxlength y2 pattern color / x1 x2
6 A' _1 |* {- ]6 b - patlist dash)' C) H( e/ I% f, R( n" B
- (setq x1 0 x2 0)
0 |* H& ~& z! A1 r: j* x - (setq patlist pattern)8 |9 K* H. l/ R% L
- (if (= patlist "CONT")
6 G n1 L3 T6 d& X1 K5 h! t$ ~: f* ^ - (progn
; Q: @5 `' \# V5 [; e* C - (setq dash boxlength)
# @: s& ?; \+ D7 F - (vi) c- b# X- }% J' j: p& ]
- (setq x1 boxlength)# |+ [9 t" C$ L$ W( w# ~2 y- ^$ \
- )/ R) B5 ~7 J! q& `
- ) h) n: Q" e/ L! A6 ]
- (while (< x1 boxlength)
8 n& R" e+ m7 L8 I5 u9 N - (if (setq dash (car patlist))
- U+ x' c9 R$ f, r1 } - (progn
- M' i. G9 E$ z/ N - (setq dash (fix (* 30 dash)))
& F" B, R! W& [* A" u Q - (cond 9 s) j" D/ \3 ]5 y0 R. l- [4 N3 z
- ((= dash 0)
4 ~ P6 X: ?7 H) R5 _ - (setq dash 1)
) _6 E3 {2 F: M- F8 R3 ?" p/ ?5 R. z - (vi)8 b: l% s6 h" E5 _. e- P6 Z2 Q+ ?
- )
" O2 T2 I7 r! X& o; R6 g - ((> dash 0)
1 X1 D5 E) Q) R/ j - (vi) J7 ^1 W$ g3 Q5 ^( q' u
- )& i7 w4 O# I$ V6 X1 `
- (T . r! }5 n5 h; a( n( X6 R( n
- (if (< (abs dash) 2) (setq dash 2))
6 n7 P |& U2 ^* f* N; { - (setq x2 (+ x2 (abs dash)))6 w) T7 S6 `. h. F
- )/ p4 ?/ h4 N$ M& x/ I- s
- )3 C1 b# E- C9 E% ~
- (setq patlist (cdr patlist))
# I& P; w& R7 G7 P0 Z5 b/ Z - (setq x1 x2)2 \7 r. o& y+ }% G
- )
, U$ O, e* H1 P4 ^. j - (setq patlist pattern)( T, b+ X) q( w8 ^1 O! V$ w
- )
. I3 h6 Z5 Q# d- ~# q* ~$ s. k - )
3 }2 q9 S# J. Z( I G. \% t - )
6 k- ]" d; p( K0 d/ z9 Y - ;;' w, U0 s% I3 ^0 {
- ;; Draw a dash or dot in image tile
6 s% s0 [# H7 a5 z4 @/ j; ] - ;;$ \. m% J8 C7 Y4 K- w
- (defun vi ()7 X' x; |7 n0 r# h2 M7 G- K
- (setq x2 (+ x2 dash))
" n( [, |- o! [' A( X5 K - (vector_image x1 y2 x2 y2 color)! H3 m' y9 f0 y) S, T1 g; d
- )
2 b5 {: R/ D$ z+ X - ;;& R. ?! J N* C6 k
- ;; This function takes a selection and returns a list of the color, linetype,
; m0 N3 n4 A0 O: t2 d - ;; layer, and thickness properties that are common to every entities in the" ]8 a2 E8 ?0 @& {2 v: l
- ;; selection set - (color linetype layer thickness). If all entities do not 8 l. K1 O# |9 Z! D4 |
- ;; share the same property value it returns "Varies" in place of the ; V( l$ f8 W3 Z- j" a+ f
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)% A' v9 p2 ]- P) Y4 g1 s
- ;;: ^5 `$ b" N: b. I1 _' z
- (defun getprops (selset / sslen elist color ltype layer
3 l8 C/ ^5 m; k" g/ ^+ J+ J+ c - thickness go chk-col chk-lt chk-lay chk-th ctr)
, _9 f$ S5 q: E8 C: k" ? - (setq sslen (sslength selset))
8 @0 ^% z) R; L - (setq elist (entget (ssname selset 0)))$ b' M7 G& ]; p
- (setq color (cdr (assoc 62 elist)))5 P" N1 ] ~' c" }, a/ ~4 E$ J5 R
- (if (not color) (setq color 256))' r: G/ F0 g0 U) x% b) e, f
- (setq ltype (cdr (assoc 6 elist)))4 p; K% J9 ~- h; m) i5 X6 E! M C
- (if (not ltype) (setq ltype "BYLAYER")) `. T3 z' p, s0 [1 B% t
- (setq layer (cdr (assoc 8 elist))); C: _" u0 s; s. ^9 Z
- (setq thickness (cdr (assoc 39 elist)))1 S0 s1 A8 t' T' ^+ d+ ^
- (if (not thickness) (setq thickness 0))# O7 F, i* g' A8 R0 D
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
* I2 Z( j6 M. G9 G i2 Q, ~
/ \- b5 ~ }+ u- ;; Page through the selection set. When a property
: @& G4 m g; r x# N% X; l - ;; does not match, stop checking for that property.
4 H, O; t X# C# X2 P - ;; If all properties vary, stop paging.
3 j& X2 C- e5 v$ A( O - + z7 D4 e9 N3 w) w+ a9 H. o) ^- M2 L: P
- (while (and (> sslen ctr) go)8 s7 ^( |$ C; o
- (setq elist (entget (setq en (ssname selset ctr)))) M' ?; M7 Y% G' z/ _
- (if chk-col (match-col))4 S' t! W% g8 d5 }( \$ S
- (if chk-lt (match-lt)), L3 u( p# ?6 }( ^6 J# K0 [
- (if chk-lay (match-lay))
7 l' M8 E; @: H8 | - (if chk-th (match-th))
9 {- P: p8 _: ` [ - (setq ctr (1+ ctr))
$ Y$ s1 a3 H5 U- S0 S4 ~. r - (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))7 g* l! l! a8 `2 A+ g2 R A
- (setq go nil)
! X+ d1 X* L, t4 H- `7 q$ E1 b - )
4 c8 i; I1 { }. Y% [- |% B2 b+ Q - )
4 ~, h' @8 i! P, c* ?* B) F - (list color ltype layer thickness)
1 r* y. a$ m8 v" W* f - )
/ D: G" p0 T6 j8 H1 ?; I6 d$ e - , C. @4 H: g. i9 z
- (defun match-col (/ ncolor)9 W y6 a) }9 }. l _5 [" V r3 n) j
- (setq ncolor (cdr (assoc 62 elist)))
7 ~( _) K+ E9 n5 c' g Y/ Y- D - (if (not ncolor) (setq ncolor 256))
5 f& }: O" }) @6 W4 { - (if (/= color ncolor)7 u# W. K2 \, s$ e& t o! Z5 b
- (progn
% \4 y' D, C$ h" m5 R! ~% H- U - (setq chk-col nil)
! C# J/ l9 e$ }3 ]" W& ]8 I - (setq color nil)
. z2 d. t) `+ t - )4 w9 D8 r/ q3 [/ I6 x+ ^
- )
; O* G7 x# D. _" ]+ e - )
+ ?; N) B2 ]+ o! p) L( ]) C - , ?$ ~# `1 y- m+ i" n4 }0 V
- (defun match-lt (/ nltype)
# I1 V" b0 R1 o$ z - (setq nltype (cdr (assoc 6 elist)))
! ]% J. s( y* a" x8 l9 R* A - (if (not nltype) (setq nltype "BYLAYER"))
) g2 l. u4 W: O: T& ` - (if (/= ltype nltype)
: k* H$ b" H1 J" J. M0 K - (progn! H9 R2 {6 ?) `* x/ T
- (setq chk-lt nil), V' M" \/ s& X4 O! t! v% h
- (setq ltype "Varies")+ k0 `$ Q4 s3 f3 e: j
- )
4 z7 q" S$ _0 m5 y5 f; T. O6 w - )0 |4 B0 [) Z( R+ _( ]5 R
- )2 L. F/ c% Y% Y+ B
- , k( }9 F# P+ O2 b s7 {5 ?8 H
- (defun match-lay (/ nlayer)
) {( n- x% s% _' S5 \, I1 y6 T* i - (setq nlayer (cdr (assoc 8 elist)))
! \* P# C: ]2 {5 p - (if (/= layer nlayer)
+ L( w7 ]2 L$ R3 p% { - (progn
( S$ s; |9 ?, J# N - (setq chk-lay nil)0 P4 ^5 R, m) z1 F! n3 ~/ r& s4 q
- (setq layer "Varies")/ G7 Y5 G9 L! P9 L, `1 w1 a
- ); _* C- H4 f; T" G! v; p5 ~) v
- )
: a' f1 e, @6 L* s |3 h5 ^4 L, V9 Q - )
8 V5 [& U0 P! }
* Y8 y# G) O; D- H9 |- (defun match-th (/ nthickness)2 j5 \$ w- s* Q7 ~ S3 y- i* j
- (setq nthickness (cdr (assoc 39 elist)))
- H& V5 U2 ~1 J/ u! L - (if (not nthickness) (setq nthickness 0))0 K# z8 h) c: v3 }
- (if (/= thickness nthickness) T9 x$ S" b! }; e- [
- (progn; b4 E; j- z! Q5 P9 G
- (setq chk-th nil)4 q3 j6 b4 W; G. L) L
- (setq thickness "Varies")
" h; @1 Y$ C/ w6 [ - )
" l1 H0 L w6 u1 V. O - )9 k, ?% f0 x. }( n
- )' r3 |3 O% u) ^1 H- y( K
- h: n2 u8 B8 k- @" v" ^3 z) Z _- ;;
# n. p& S' L. `5 j - ;; If an item is a member of the list, then return its index number, else
. ^! j" b7 l7 @" L3 \8 w* E - ;; return nil.. t4 B8 b! k9 Z% A! D
- ;;: O% u5 |, Q F8 o
- (defun getindex (item itemlist / m n)" Z. ~' q B+ ^9 D+ A- W2 w6 U
- (setq n (length itemlist))3 p9 e3 V0 W4 v; W4 D1 ~ w# D
- (if (> (setq m (length (member item itemlist))) 0)
! Q+ G( D: |6 O. B& } - (- n m); y9 Z0 o& s5 V/ Q# W+ a1 z
- nil
1 a# e6 P8 [% V' @" u! P - )
9 j+ O" s" h8 P; Q9 a& y5 B& S) l8 Y - )- y+ G5 f) U6 m+ ^* r
- ;;
9 a, d) X# n# F; `- n - ;; This function is called if the linetype is set "BYLAYER". It finds the
: e5 [& g* s. i$ c4 A2 g; I - ;; ltype of the layer so it can be displayed beside the linetype button.
6 Q3 W4 O0 D; R+ a$ I1 e/ s* Z - ;;- ^! q' [) M4 ]% J- F
- (defun bylayer_lt (/ layname layinfo ltype)
- z. O3 [8 l% Q0 i S - (if lay-idx% x1 S+ o2 G. }5 g+ {6 R
- (progn
. {+ ]2 F5 n6 q) U4 z4 Q: h - (setq layname (nth lay-idx laynmlst))
v- {8 h3 a7 ]6 K% G9 i - (setq layinfo (tblsearch "layer" layname))
, s+ p. m5 h3 e c - (setq ltype (cdr (assoc 6 layinfo))). `- N! l2 k% H/ `3 i2 X* {
- (strcat "BYLAYER (" ltype ")")
3 F7 x- I( P+ h - )
# H) f0 o5 T q1 a - "BYLAYER"$ n1 q" t4 r+ p E+ _: f+ q. U/ V) m
- )/ f, }% m4 |% h7 [5 u
- )
A5 K# @0 H' K( G5 h* q - ;;
. A- g: V, A- ^1 v* x - ;; This function is called if the color is set "BYLAYER". It finds the
% H# h! f3 p6 e" f Y9 o5 H8 ? - ;; color of the layer so it can be displayed beside the color button.
3 }: b2 b# h/ I: x+ P& H/ S- l - ;;) H# n4 w1 U$ X7 {/ c8 P
- (defun bylayer_col (/ layname layinfo color)% v- i8 B2 P6 y/ \2 `: ?. f
- (if lay-idx
5 q/ i. m6 ?8 X# c - (progn9 P6 x, z* w8 D8 Z9 d; @" O
- (setq layname (nth lay-idx laynmlst))4 L" i* s0 l: V; p6 u+ h' Y
- (setq layinfo (tblsearch "layer" layname))/ D3 y' d# k9 L/ Z9 ^
- (setq color (abs (cdr (assoc 62 layinfo))))
; W- i' M" Y5 O) a2 s - (setq cn color)! I% N i* f' F4 @% l2 U% y$ a
- (strcat "BYLAYER (" (colorname color) ")")3 I& Q8 ^8 I& {9 G6 k7 [
- ) c( v/ N. S; r, T: {
- (progn
+ {! d6 _8 V+ s+ x) S: W8 S - (setq cn 0)5 _0 Z" V, Y! M! ]% [
- "BYLAYER"3 r0 ^7 X& Y9 C/ _2 M; ?
- ). t! t0 o; V9 p2 z
- )
: d) M9 l% P: h# N' a; W% ?* A - )2 F* S8 n2 o1 N0 Q5 q
- ;;) S6 G' z+ G" t4 ?2 a
- ;; If there is no error message, then close the dialogue
2 ?; A8 a) |! p - ;;. y1 o& G" @4 o: X7 c
- ;; If there is an error message, then set focus to the tile
7 J5 ^/ [ F# h2 q# }5 {) { - ;; that's associated with the error message.2 x, U* Y$ D. b: o& E e
- ;;
+ u7 i4 ]1 E- B! T - (defun test-ok ( / errtile)' P* }" \' G4 I! j
- (setq errtile (get_tile "error")); S2 c5 d+ w2 r& Y8 N2 u
- (cond3 N& k; ?( h6 m! `/ w
- ( (= errtile "")& T9 s6 n T( x9 N4 a* Q3 e# e
- (done_dialog 1))0 G1 ]9 [, k n. `
- ( (= errtile "Invalid thickness.")
! m k) ?. g) h3 E7 w - (mode_tile "eb_thickness" 2))
# R3 y$ ~3 @* L - )
2 L" ?* V4 p( D0 c9 f% a# f3 W - )* M; V0 ?7 r$ y4 w8 s
- ;;
# ` O9 Q% E8 `( F& f, n - ;; A color function used by getlayer.0 Y' s" [( ^1 X% D' N. e
- ;;
4 q% n# I- Y- v# z3 N; S8 H6 u - (defun colorname (colnum)
( a. X# U4 b, x0 ] - (setq cn (abs colnum))# A% F, r4 H+ O# N' [& x
- (cond ((= cn 1) "red"). w! L# e0 L* j6 D
- ((= cn 2) "yellow")
4 m% O `0 w& ~; D' g7 r* o - ((= cn 3) "green")$ n* ~5 L: n5 f5 y( H6 E
- ((= cn 4) "cyan")
@+ {8 ]5 x1 Q: n1 k. Z - ((= cn 5) "blue")$ p! i3 s6 g g
- ((= cn 6) "magenta")% H C& {" w( t' H; x
- ((= cn 7) "white")
) z. _6 t4 G! L7 l - (T (itoa cn))/ f$ {! U/ `1 C( u
- )
' b3 h. w; m! b6 u5 m - )* q8 p4 c% L" S& c
% v! ~$ x" l2 x. ]- w. j7 l, s% Y- ;;; Construct layer and ltype lists and initialize all
& @- i. L# H6 J, K - ;;; program variables:* u$ u/ g. }& Y6 D
4 Z# M# R' R- T( u/ Q- (makelaylists) ; layer list - laynmlst4 \1 Y3 }) X3 @' l# l# U1 Z
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
( D! p* y+ y& I& Y2 \8 g$ ]* S - ;; Find the property values of the selection set.
- |! S- Z* ?) Y9 Z/ g2 f" E0 m - ;; (getprops ss) returns a list of properties from5 L+ {% X3 Y' p- F A
- ;; a selection set - (color ltype layer thickness).' F) _9 u8 v5 r" K
- (setq proplist (getprops ss)) M6 R: m1 D- c' ~) z n
- (setq ecolor (car proplist))
9 i$ ~- D. t/ C- W1 E - (setq eltype (cadr proplist))
z& z5 X0 b9 Y' v; _ - (setq elayer (caddr proplist))
( u* O E! T+ w1 \, t2 r9 p! r - (setq ethickness (cadddr proplist))( J$ B9 W8 o1 X n9 A4 J# T0 A- K5 e
- ;; Find index of linetype, and layer lists$ v7 P9 n+ }+ b8 F
- (cond2 @9 x7 X# b$ V6 j1 y; m
- ((= eltype "Varies") (setq lt-idx nil))
- C$ |7 Y2 Y8 k' K, j0 F% y8 \ - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))- f @+ M. Q! n( ]
- ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
0 Q6 o/ F- A; i: B- W# U) } - (T (setq lt-idx (getindex eltype ltnmlst)))4 j! j. A# b; Q: c; F0 ?4 @: [
- )5 P8 `* r% p* P
- (if (= elayer "Varies"), J/ q1 k. c' r1 k
- (setq lay-idx nil)
, j) X& f% m+ t n# x - (setq lay-idx (getindex elayer laynmlst))" v) H4 j6 W- D" m5 v Z1 q
- )
- j4 p' F6 I% ^* Q% O/ R0 j - (if (= ethickness "Varies")
% ^5 U0 R: Q5 k9 E1 B3 h3 m - (setq ethickness nil)8 r9 y' W9 r6 P `5 a7 I
- ); y1 m0 y0 e$ R
# e& s0 \9 M- C9 ~5 p9 ^; v8 }- ) ; end (ddchprop_init)7 p7 C+ F6 ^' H0 j1 K E5 ?
- " b Z5 f3 ?( U3 E3 V
- ;;; (ddchprop_select)
4 Y& y( E8 |; U' o# }. M - ;;;
: R. I% i2 _* g% L - ;;; Aquires selection set for DDCHPROP, in one of three ways:) O+ _: S* [5 h: O- u
- ;;;; ^$ T6 Q" p' _8 [6 F
- ;;; 1 - Autoselected.
' b. x7 t, v( ], o1 P* y: l( J - ;;; 2 - Prompted for.+ t; x, P% k' v5 r4 O0 |% p0 x
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> ), ^4 _; ^' X) N" Y+ |
- ;;;
: l% Y+ j' X) m% L1 k. h6 ~7 B - ;;; The (ddchprop_select) function also sets the value of the
# h) v# t6 s& v) n$ n - ;;; global symbol AI_SELTYPE to one of the above three values to( `$ \0 W2 ~5 ~$ m% |7 o; s0 `) D1 Q- ?
- ;;; indicate the method thru which the entity was aquired.) P- B1 _0 J% r n: o/ o
- 7 z3 ~; q) D- v. l' L7 K! `7 n
- 5 n' Q0 @+ p. P% B& k
- (defun ddchprop_select (), R( E9 H8 c! t( K9 w& M
- (cond% P* B! H2 N- a y
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to1 T' U, {" s5 ], p
- (cond ; (ddchprop) as argument' y" @; M1 N$ L% A7 M
- ( (not (zerop (sslength ss))) ; If not empty, then* U+ |% Q- \+ ?. z+ T2 {
- (setq ai_seltype 3) ; then return pickset.
, v2 F( \% c% }. e) \ - (ai_return ss)))), P, c" Q' `7 Y3 z' G
. S1 k7 R3 F% V0 v! n5 ~, |1 F; z- ( (ai_aselect)) ; Use current selection
, x" Q+ D/ @& y) r `/ v6 i - ; set or prompt for objects/ A2 q# m3 E# W0 H/ l. @
! a+ P" [: a% S: Y' E- (t (princ "\nNothing selected.")7 Y; l7 w- W9 E+ [! U8 o
- (ai_return nil))
. j" |2 `9 E; c% f# h8 y" L; n) b: V2 w S - )
0 k6 ?, W! k2 x& x6 F4 x; s* v P - )7 w+ d7 j- e4 w9 e; |
- g% d; K. t- g! P
- ;;; Define command function.
( T0 V. w3 p& G D B
7 \ G5 P" ?- e$ A6 D% s5 s- (defun C:CH ()
7 {0 ?# x! _2 t" L - (ddchprop nil)
, d( @6 E( e7 B( u a# V9 t - (princ)2 m7 p4 S/ `2 {+ j1 Y. e6 u
- ): J. n" c2 w' S- c, b; ]5 i8 C9 J
% ^) S5 i# x" A) L! l1 q8 I; K- 6 O: `5 q" G9 z+ V
- ;;; Main program function - callable as a subroutine.
* k- J& f2 V8 v! e4 d5 M, P - ;;;
; i6 F8 |: O+ e) h6 Z4 d - ;;; (ddchprop <pickset> )
2 t. K/ W. l# @! z# k' | - ;;;
5 N* ?% I4 J; e - ;;; <pickset> is the selection set of objects to be changed.9 W2 J5 T6 K# H6 L, d% i( v) l
- ;;;
- `$ e) ~& p. V - ;;; If <pickset> is nil, then the current selection set is3 \4 {: c# h, E0 M. m2 g2 r. {
- ;;; aquired, if one exists. Otherwise, the user is prompted; N+ ^ k( g h8 @: M3 q+ L
- ;;; to select the objects to be changed. ?# U# r* Q& f8 Y# G. e) ]% W% y+ J. q
- ;;;0 Q3 a) S* l0 @" m/ J
- ;;; Before (ddchprop) can be called as a subroutine, it must
: W5 u( L$ @) ^; b; G - ;;; be loaded first. It is up to the calling application to
* T5 ?* W5 ]# S- i) Z$ T. @ - ;;; first determine this, and load it if necessary.
6 y, j* X2 n H: m" S0 z! e3 s - ) I7 O. v' Y/ q4 ^
- (defun ddchprop (ss /- h/ \( U: R; ?& T4 S& Q2 i
{: f2 D' Q! Z+ l! g3 K9 q2 \' s- add-mdash ecolor ltedit_act s6 e' |# N8 i4 [1 C
- assoclist elayer ltidx selset
4 M7 d! R3 Y2 p' i& ^& d - bit-70 elist ltlist set_col_tile4 [3 `& \7 J ^+ X
- boxlength eltype ltlist1
9 v4 b. W+ b: p4 G! u - bylayer-lt en ltlist_act sortlist' p: N; Z& z0 v- [! R
- bylayer_col ethickness ltname
, M* q- f) f1 V6 V+ q, G: e6 x - bylayer_lt fchk ltnmlst sslen0 t1 `6 s8 K' i7 ]4 s
- call_chp frozth ltvalue templist2 t5 ^8 \( h1 z; @" q7 C# o" i( {
- chk-col getcolor ltype temp_color
, A- l/ N7 \6 G, l# c9 G - chk-lay getindex m test-ok1 x9 \; U& u0 O- f6 V
- chk-lt getlayer makelaylists testidx
$ B8 J B! b H7 p4 l; s - chk-th getltype makeltlists testlay
Z; S5 E4 E& \) v* w) X3 A - cmd getprops match-col th-value D' I( {2 z6 @ c( p8 R) G( v* T4 X7 z
- cmdecho getthickness match-in thickness
3 ~) Y" U& I$ P4 b. U# K! n3 R7 C - cn globals match-lay tile1 ~* Z& p$ L$ l' ?& n4 g6 d
- cnum go match-lt tilemode
. m9 q9 u s- ]5 H. w# ` - col-idx index match-th tile_rect
; r. V" [/ Y8 [- _. L, U7 W - colname item match_col vi
g: Q+ `( Z; G$ _( t* C2 C - colnum item1 mdashlist vpf
( z' j# j9 O5 D) X# T' H - color item2 n vpldata
$ R1 Q: A: ?6 w% H: N. `1 r - colorname itemlist name vpn+ ^7 G" s7 l8 t
- col_def lay-idx ncolor x
# x2 y8 E9 l' t - col_tile layedit_act nlayer x1
9 ~# G' l. v2 o - ctr layer nltype x2 p3 ^* Y+ D( G$ F+ Y# a% P" \
- cvpname layinfo nthickness xdlist
/ k0 a1 W$ Z e1 j' i8 X. b1 { - dash laylist off y
z9 l# K) _) r, H - dashdata laylist_act old-idx y1
5 P/ q0 \; ^. |6 R0 k/ ^$ \2 ^ - dashlist layname olderr y29 k0 d! M# k+ A. O
- dashsize laynmlst on undo_init0 |0 Q* m2 K, `4 @+ z1 p
- dcl_id layvalue onoff/ {9 ~3 S }2 Y8 W8 ~
- linetype patlist
7 t3 V# A% x5 C. B - ddchprop-err list1 pattern0 X, g! i9 O) _5 D: E1 d8 S% ^
- longlist proplist
3 L) w4 c0 Y8 b' x- {2 { - lt-idx reset-lay& e% e& O6 f' e7 x4 |3 P# v" W9 y
- drawpattern ltabstr reset-lt
) I, ^ j4 K3 o* l - )2 ^2 F8 J- ~. d! R' w
* h0 F! s- R! b; U0 Q- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
1 ~5 x1 M# B1 J2 i3 Z! u! W( h - old_error *error* ; save current error function7 L+ l% S6 l# M
- *error* ai_error ; new error function
Z6 J8 h: j9 ~: g. d% M; m - )
! n) f0 _! m: W$ {9 P7 K - " O! e/ H- G9 ]0 i' K
- (setvar "cmdecho" 0)) A) ~3 M& p/ j1 z
- 7 @5 i# K& w! _. O: W$ c+ L4 b4 F
- (cond, ]4 R4 P# q; U
- ( (not (ai_notrans))) ; Not transparent?
& W9 j; o6 l0 g5 D! c: U - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?$ C! E) D+ H D% S
- ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?/ [9 k4 ]& q; ?- L- t5 M( \( ]( x# w
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?, g7 W+ }* e# p, y+ z
- " R8 D9 f# b6 {$ a0 Z4 k
- (t (ai_undo_push)
3 t2 u9 i( `6 R! ^( U2 _, x - (ddchprop_init) ; Everything's cool,
1 J% w/ t3 Y/ @8 L; | - (call_chp) ; so proceed!( t2 ^" m, n6 s5 F7 w& [2 T
- (ai_undo_pop)% e% R: ?: y& r$ L3 v. A, m
- )
0 k5 `7 ~3 \7 A" G - )
, k# S" \! u' |: O s - ( Y9 V$ p' o: p% Q/ b
- (setq *error* old_error)
% u4 o" g& Z v& Z$ B! G' k - (setvar "cmdecho" old_cmd)
5 `1 T! u; b l* ?7 p! l4 E - (princ)
# @" W0 D; M9 R5 ]- ~1 ?7 p - )
" Y+ e. v! F* F. }. i/ D0 ]& m" D. L - 1 |! u$ K$ G/ H3 O d; {
- ;;;----------------------------------------------------------------------------! r0 C( t# T- A* v) J ?* R
% u" J3 C- |0 m! }/ [. E- (princ " DDCHPROP loaded.")
+ S% B+ |$ y2 K& y b; q8 p - (princ)
/ ^6 h" }! x' N" e6 D0 D7 H
" c) f9 R0 d# u, F0 V2 H# L- ;;;----------------------------------------------------------------------------, J! W) J/ G7 [, N+ X! |& b4 y
- 7 b# w% z, i& i; i0 K
- ;--------------------------------ddmodify.lsp----------------------------------" N$ z" ?* \$ q& E5 u4 ?+ j& ]) r2 G7 A
- ; Next available MSG number is 111) s* ?/ g, \) P: I
- ; MODULE_ID DDMODIFY_LSP_! T5 Z8 ]* M, j8 U! j3 n
- ;;;----------------------------------------------------------------------------5 b7 S, Y- b/ K5 p$ }2 k2 }$ D
- ;;; DDMODIFY.LSP; g$ D- B, I$ d5 I4 z
- ;;;
+ S% l3 i* U( n8 w" t, b# @: i - ;;; Copyright 1997 by Autodesk, Inc.
6 C+ c q% l$ T E: w - ;;;
# {0 T' {* `3 q) F- H - ;;; Permission to use, copy, modify, and distribute this software
- G0 A4 U# h' y- [" c1 n U. V9 ` - ;;; for any purpose and without fee is hereby granted, provided5 G3 V& G8 o; h J
- ;;; that the above copyright notice appears in all copies and, a7 {; W4 n9 b
- ;;; that both that copyright notice and the limited warranty and+ {) ~/ a* C% X% F% |
- ;;; restricted rights notice below appear in all supporting4 D6 \8 ?0 D: Q ^: o: X, O) F
- ;;; documentation.$ q( O6 f2 \4 j& t" w0 D: j; G% a
- ;;; u' J9 W' Y5 V1 o! b7 ]. A6 i, Z
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.* v5 E/ c/ U/ a5 R* m+ P0 w/ w
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF2 B: L# s" L4 x1 A
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.4 Z1 q, j; I2 { o, a
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE) [7 b/ z0 b) V9 R3 v* u
- ;;; UNINTERRUPTED OR ERROR FREE.
4 S9 A$ E" t: ^$ L* |+ L! V8 t - ;;;
; n4 t6 C' r/ j' _- o - ;;; Use, duplication, or disclosure by the U.S. Government is subject to" ?6 A$ G3 i; Z% @
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer! X$ L! S+ P# Y7 T1 l
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)2 b4 _5 E! ` f6 N7 ]) ?
- ;;; (Rights in Technical Data and Computer Software), as applicable.2 G8 D T8 V0 P N- K4 ~
- ;;;
6 x0 q# C3 e4 S( Z - ;;;.
3 x9 Q' L$ h& k' X e - ;;;
3 N% h& Q/ \5 ^7 q$ }4 C - ;;;----------------------------------------------------------------------------
9 `* ~" P k2 I8 m6 W5 Q+ z - ;;; DESCRIPTION. X$ D9 G6 S: e8 A
- ;;;
t& Q+ N% U$ V( i: c M' F - ;;; This function allows the user to get a listing comparable to the LIST/ a3 W1 l" p4 M0 m% B* c+ K' h7 ?
- ;;; command for most objects. In addition, most object fields in the
: ~& {5 u% \4 y7 a- g7 t m: z6 | - ;;; dialogue box are editable. Points can be specified dynamically by
, L8 X1 R+ W& w( z% k% L- h - ;;; temporarily dismissing the dialogue box. Each object has a unique$ J- r5 Y, U% i' h v
- ;;; dialogue.
8 ^2 |% r- J0 b k, Q - ;;;5 C3 L( @( {# A7 k
- ;;; Naming conventions9 N- U" B& S6 o& E0 q; A0 n
- ;;; Long function and widget names may use an underscore "_" Y% V! P: H. I: W) ^
- ;;; in their names to make them easier to read, long variable* e; Q' C0 W! Q' x1 z
- ;;; names use a dash "-".4 t% G% i0 ^& u7 [# n
- ;;;----------------------------------------------------------------------------
' o; m. R8 ^# y7 v( J - ;;;----------------------------------------------------------------------------
% o7 `0 V' c% V3 v( @ - ;;; Prefixes in command and keyword strings:
4 t: G ?3 d8 R& F0 v - ;;; "." specifies the built-in AutoCAD command in case it has been
/ Q" C9 L, b5 t) j" H, l; G - ;;; redefined.
) I' G& q" T3 d4 L, a2 c' ? - ;;; "_" denotes an AutoCAD command or keyword in the native language
# b/ K% _3 y7 C" D4 U$ H9 ? - ;;; version, English.
& P& m" a% B- O8 k9 S - ;;;----------------------------------------------------------------------------
. w% ]7 G" y) p5 d0 `& T; ^$ W - ;;;
0 S# r' A7 I T6 h - ;;; Avoid (gc)s on load to improve load time.7 l" h6 L: i9 D+ G* L9 | f2 G; C
- ;;;
% t. X, ?6 x& E: \0 D - (defun do_alloc (/ old_allod new_alloc)
1 x: F+ l. g+ _$ Y6 x* o - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
) C, Y* r4 g1 H/ e1 Q- A3 _( [ - (expand (1+ (/ 17000 new_alloc)))2 k" h! K: P' ^, u f/ L
- (alloc old_alloc)
3 ~8 X7 I. F# l$ s; m - )$ z L- V- i1 q' K6 K9 [3 F
- (do_alloc)( d# c# z8 J: m) _
- (setq do_alloc nil)
F0 [ N( f9 l4 l( U: Y, [- O - 7 b, t; Y& m' x9 O5 d: p+ C4 d
- ;;;
% v, B/ O1 m) s4 ^. K- H - ;;;
. R8 [7 j/ [2 y6 t( @. M1 A - ;;; ===========================================================================4 x7 O* k% M. _0 z
- ;;; ===================== load-time error checking ============================, _; I+ B @) z
8 \* R ^8 g; @. w/ A- (defun ai_abort (app msg)
! w# z1 L. s/ K* q2 Q6 `1 S2 D& l - (defun *error* (s), J \! C" _- S5 h! N7 h0 s& h
- (if old_error (setq *error* old_error))
8 R4 |% [* b3 y) K& i/ q6 p* k - (princ)+ `$ F, L. B9 w9 Q
- )2 p' }. X1 T6 ~" P$ e; D1 e
- (if msg+ D" g( b. m* f8 i2 e/ a
- (alert (strcat " Application error: "
6 I/ J+ t0 T. M, x+ l - app
8 v0 o& e9 w( H: I4 H' z W+ w - " \n\n "
$ Y* J6 C3 ~" _& S# N - msg& K3 ~7 ~, i5 {$ v$ W
- " \n"
% K6 S+ ]! q7 S - )2 V4 t* h6 v. q# C
- )
6 m7 U0 P9 C* s - )
6 c5 G8 r8 K7 |' O2 W - (exit)
8 e7 {0 @5 R. ~* N/ C - )" w% X1 F. V- t* `$ }* [4 r
- 4 r7 b% X$ T4 y; K3 e* f! H( `
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,, y" h2 D" o( e$ V, l5 ]* t" m) v: H* F
- ;;; and then try to load it. If it can't be found or can't be
, B$ M/ m1 M) L4 Z8 f- D - ;;; loaded, then abort the loading of this file immediately.2 S2 H$ o2 @- i5 O
- 2 ]9 u( {6 E' ]9 [$ D
- (cond
3 g9 V) B/ t( m; y4 r# B/ @7 ` - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.8 e; E. k7 \% l( K
8 d( u, w7 I# `5 ?- ( (not (findfile "ai_utils.lsp")) ; find it
% J; h5 [ x, k0 b% n; n- I - (ai_abort "DDMODIFY"
. j. e' Q9 v8 W' _ - (strcat "Can't locate file AI_UTILS.LSP."' U/ S5 F) G; r2 Q1 I
- "\n Check support directory.")))
% S! L( w$ n& B: i2 V - 4 ~0 x! L0 r' H" q; _/ B
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
: h0 D' d1 h% n - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
% D2 L0 b/ Q2 ^! Y- ] - )
9 T% b7 G0 N4 K7 L1 I* V& D3 x% T3 X
; [: |' K2 ~" ~, r8 n7 [- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can3 @; @$ \- h6 {. N5 Q
- ;;; be assumed that all functions defined therein are available.
' I+ p% g7 @( m! w/ G
7 R) u7 o7 ?' P: _- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort2 f1 ~3 g: ~! }
- ;;; if the file can't be found or xloaded. Note that AI_ACADAPP+ i5 |9 ~# V# P: p7 c
- ;;; does not abort the running application itself (so that it can; N" e' a$ l) m. m9 j
- ;;; also be called from within the command without also stopping7 U( J2 \* y" p+ W8 q7 `) r, P$ ]
- ;;; an AutoCAD command currently in progress).
7 r$ U/ |0 `& {2 O7 B: {
5 F& Q8 H7 [; L9 a) e, W- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
; v8 @7 c: e/ A2 z) G$ K/ R9 F" J - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses. j/ I- f! X$ M1 O
- ) ; ai_abort's alert box dialog.
) f7 x- H7 a" ^
+ n+ V8 F. \6 `( t% W- ;;; ==================== end load-time operations ===========================: Y3 g9 f6 |$ O5 w O
- 0 C: ]" ^! F+ r7 d7 O
- ;;; global variables
( E: O0 ^$ { \6 c - / q @# u" ]3 f: u, V
- (setq hatch-elist nil)
1 R w% @* S* s1 ~
8 i3 K4 y& i0 E: y- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
1 O1 G5 W3 }% f - ;;; assumed to be available.
i7 N2 F+ ~; C
8 n! ]9 ?8 T9 S: {2 }$ T8 ^- ;;; Define and encapsulate all subroutines that are declared
4 F" g$ l* z' P9 E - ;;; locals of the (ddmodify) function.
# ~% L/ M) F0 ^" l+ X - 0 m! |- e; Z% \8 U/ g Q
- (defun ddmodify_init ()
" u M1 s/ w% D! }" J" s - ;;) \* |7 m3 s' J0 Y% N& T# q2 b
- ;; These three functions modify the enitity list for common properties. Since
, T/ m% L" v, {* L% P# R - ;; color, ltype, and thickness are absent from the object list when they are
# K6 L0 l: T7 q3 J! _$ z7 h - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
+ o y) A/ M9 o0 |: |/ U - ;; SUBST is not possible.
, |. n" w N4 Y0 l; R' D3 T! ] - ;;
7 o/ {( Y9 d- A8 u& j0 E+ Z - (defun modify_properties ()6 D" ^) }( q+ R% K" z3 f. _
- (emod ecolor 62)) C, X" v* F- `: l" U+ B M
- (emod eltype 6)3 P! G5 r( Y' u, O4 a( k
- (emod ethickness 39)
/ G+ ~; o$ o* l e - (emod eltscale 48)& k9 b+ \* O* J1 c6 g
- (tempmod elayer 8 nil)1 S7 |! J2 r3 r
- )4 |$ W( j4 F7 Q- [
- ;;! |4 X. v3 H- M, j: j. N( s4 e
- ;; This function is used for modifying common properties of the ACIS1 \7 Y- k7 f, q$ Z
- ;; based geometry objects. Thickness is not valid for these objects$ b+ c, g9 Z- G7 \3 ]( ~) b$ B" V4 j
- ;; so it is left out." m7 _: Y) N7 Z: F1 p. V3 f6 k
- ;;
3 H. g) W. k4 D7 _& u1 |. Z; B - (defun modify_prop_geom ()
. ?8 z4 z8 m. l' F3 W/ P( n - (emod ecolor 62)% n. ~8 [2 \& f
- (emod eltype 6)
$ K: m: u+ ?; G" j) [% j0 q, k( ~$ o - (emod eltscale 48)" Z. z0 _+ Q$ D: L9 V
- (tempmod elayer 8 nil)
9 W' Y8 F0 [" j3 i0 U" Y$ E3 L" N - )8 _, N5 ]; O8 z7 T6 ?
' o0 u; c# L. u. ~ h: U- (defun emod (value bit)3 }6 o+ X4 y& L
- (if (= bit 62)
4 y1 S5 ]+ K' ?/ E) A7 S& E1 ^ - (progn$ G: |( y3 U2 {1 _. H
- (if (or (= value "BYLAYER")
. e7 B8 S- L( X# i a* ?! _1 \ - (= value "BYLAYER")) (setq value 256))
8 c; Z Q. H/ J( q+ ?7 p$ } - (if (or (= value "BYBLOCK") y6 z6 E! Z" Z5 E9 l$ }
- (= value "BYBLOCK")) (setq value 0))
: E- m7 m* C2 Q% h' r - )/ X" ]* ~. R$ A% P& I1 K
- )
7 Q' W' } f# F - (if (setq oldlist (cdr (assoc bit elist)))- o* `, ]: B! u( P" U4 g1 S. T
- (tempmod value bit nil)1 Y$ ^% [" G3 ^$ L2 Z
- (setq elist (append elist (list (cons bit value))))0 x! y+ U& ?- o) G
- )
0 Z' [: p/ q/ f5 Z4 Y# V# u - )/ h+ T+ Z; t+ X: N1 a# G) e
- ;;3 K7 I" x; ^% h% }
- ;; Resets object list to original values. Called when the dialogue or
) C- \* T: g- v - ;; function is cancelled.
7 c3 g/ x8 O' O5 p - ;;! E) d9 V) M. {5 m) g3 a
- (defun reset ()
+ M F) V2 V7 L1 s6 x - (setq elist old-elist
5 \& o' X9 x8 v z8 M - ecolor (cdr (assoc 62 old-elist))
6 G3 D& @6 t: s7 q8 @ - ethickness (cdr (assoc 39 old-elist))+ T. B1 J6 s% w1 L
- eltype (cdr (assoc 6 old-elist))
# ?( x& z6 R2 M8 R' ]' q6 F# f - elayer (cdr (assoc 8 old-elist))
) c i; y! L% Z8 s% ] ` - eltscale (cdr (assoc 48 old-elist))6 R# ]+ Q- `0 ?; F1 \- \1 e6 [5 C
- )
/ K! j) o6 w% A - (if (not ecolor) (setq ecolor "BYLAYER"))
$ j3 e6 |' z, I" V2 t - (if (not eltype) (setq eltype "BYLAYER"))( A% t9 Q5 V7 m6 A* ^, A* G
- (if (not ethickness) (setq ethickness 0))
4 X8 a) g: m; A* Y) M, C, q - (if (not eltscale) (setq eltscale 1))3 K1 T: P! O- _( Z
- (modify_properties)
H; U% Z0 E+ l: k& Z" y6 \( Z - (setq reset_flag t)) v" E, T' d# a4 n; _
- (entmod elist)
\9 G7 Q! ?" C - )+ |! M0 O0 R, A0 y Q' Y! a4 E
- ;;: ~! U. L7 }. Y) J+ L5 y* b9 H
- ;; Modify object when dialogue is temporarily dismissed to reflect latest* V6 g! {: a+ L {: P
- ;; settings of dialogue. It converts the point from current UCS coordinates to, o7 W7 K# e+ l) _. P* |1 X
- ;; the proper object coordinates (world or object).+ d, w9 K, v# }2 s' C) Y; L; V% E
- ;;2 ?0 X; t& |/ K" Q' v3 {
- ;; Arguments: value - in current UCS coordinates
2 Z7 U. v5 N8 k7 x9 ]0 w - ;; bit - object code (i.e. 10 for start point)
5 l) n+ _! ], z6 a: b& P; V- ] - ;; ptype - point type 0=world 1=planar
- T' Y% `: t- F) p r - ;;
V! G2 a' E/ q! {0 p - (defun tempmod (value bit ptype / newpoint)
/ P/ ^! T* z/ c2 p1 S5 t3 y0 Z - (cond
3 X) ]- p) e' e' v5 s3 ] - ((= ptype 1) (setq value (trans value 1 ename)))
) }* F1 Z/ J9 p; z* `( N - ((= ptype 0) (setq value (trans value 1 0)))7 g4 Y0 Y! B M# u
- )+ R8 X: |1 H3 ]+ C L g
- (setq elist (subst (cons bit value)
& L2 {4 _# z: ^0 K2 m- U - (assoc bit elist)
: O! L/ u- o+ q i6 V - elist
0 |1 Z e( F& z - )1 Z' _: u( _1 p* n$ h P6 \$ y, \
- )
/ }. y( A( ~: ^. w7 s - )
! n' p! z# Y" ]8 {. R0 [/ \ - ;;* L- e/ L8 `: b% ^
- ;; The following functions are called after a dialogue has been temporarily' o0 m8 M+ s; Z& t$ M
- ;; dismissed and the user is selecting a point. If a point is selected the% p* H' [; [$ D5 ]
- ;; object list is modified and new X,Y,Z values set. If no point is selected% X7 @# ~3 Y$ u3 H+ ]
- ;; (null response), then the point is reset back to its previous values.
1 }0 E5 \/ H. `3 B7 @* t- I - ;;8 S1 C- D2 q5 M0 o/ `& J
- (defun ver_pt1 (ptype)
' y, ?( ]2 j7 o: j - (if pt1
5 ~1 x9 @& x& [9 I& U+ B* T - (progn3 y1 u1 M& r1 [0 }
- (tempmod pt1 10 ptype)( P1 |. `; n" R% O
- (entmod elist)0 E% U- f# P" S w' M7 G; Y5 A
- )
% @" L) q& H! w8 P8 f* H - (setq pt1 (list x1 y1 z1))
: b3 n% ]7 z) F4 ` - )$ d3 ~$ L7 S1 p2 ]
- )
. G/ {" G) t9 I7 R; v - 6 U- M/ G9 m1 Z6 d" d4 U
- ; (move_pt1 <ptype> )% z* ^- G! u3 H, Z* A
- ;* q: H+ Z* F$ e0 r
- ; Called in liew of (ver_pt1) to translate block insertions which
F* u! r9 M* {6 L/ [" F- f - ; might have variable attributes attached to them. If the distance2 q* u* t/ ]( S2 g4 b" `
- ; the block is to be moved is < 1e-6, the move is deferred.
! j) @7 A8 f" Y& P% f$ K
& X3 o0 L* F, ~# T( o: L6 b5 r- (defun move_pt1 (ptype / basept hi)& @8 B n% p+ J# B8 P
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
: t6 Q) x1 ?; x. o6 t. \9 s - (cond
[2 o1 K/ R3 D2 b" Y. r' p - ( (not pt1)& W# w+ W R5 M* X$ y; m3 |2 N
- (setq pt1 (list x1 y1 z1)))
0 v1 b v6 ^+ F$ Q9 [( i, Q - ' p2 R0 b! f: f `& m
- ( (> 1e-6 (distance pt1 basept)))! i5 t2 E5 D* ]$ F
9 w/ T" V# Q# |% v0 \- (t (tempmod pt1 10 ptype)
% ~( d8 r9 z+ n! f$ i' b* D - (setq hi (getvar "highlight"))- ?( I. c- \0 m+ {& ~
- (setvar "highlight" 0)
* X7 B6 [4 f6 R1 A8 i - (command "._move" ename "" basept pt1)
0 t" w% ]$ O% ~7 G - (setvar "highlight" hi))
+ ~, G' |: G; T$ s& `$ N - )
0 c: m, ^# i% |. E - )
) F" ]3 K$ P* J3 \
+ F0 u, B d5 s( q- (defun ver_pt2 (ptype)
/ g" P: C4 {& V# v. i+ n! T0 c - (if pt2
" T1 C/ }; r3 \1 M( F! } - (progn
) L# N" m+ f- x: S0 X1 b$ d5 u - (tempmod pt2 11 ptype)3 H: ^: L' j# s( L* b
- (entmod elist) A/ `) C9 n$ i; I
- )9 Q2 s/ Q# [3 a( `; b
- (setq pt2 (list x2 y2 z2))
' h# R+ y& V( D. y) V# L - )
, }. B# j- V; s - )! W$ g1 H6 Y* B; A) v L
- " @- `% H* Z9 |5 O2 t/ s. _4 W# p
- (defun ver_pt3 (ptype)
9 w% S6 S5 ~# `4 ^2 G$ ~ - (if pt3: U/ A% a8 V3 e2 S7 \: P
- (progn
! T9 H4 a4 H0 r* U) @5 j+ I9 C - (tempmod pt3 12 ptype)
% ]3 m3 m! P# e/ g* s9 t( t+ ]3 s - (entmod elist)
6 A" X7 W/ U. p% I - )+ B, L1 J, p! B, x2 T. v
- (setq pt3 (list x3 y3 z3))
$ C: q( m; B/ ^' o- g7 K1 T - )+ R( g9 C) Z5 _, D. K: l
- )' H( d5 q7 j# j. a+ C; H
! y3 I9 O5 }9 @- (defun ver_pt4 (ptype)* v/ _1 t. M) E: A ^
- (if pt4
$ L) W) P5 J/ k7 Y! B2 h6 M - (progn" Q* v# i" C6 _6 T; x1 l
- (tempmod pt4 13 ptype)2 J. E3 y3 D" S S4 ]5 \7 U( n
- (entmod elist)
@+ a4 X( [" \0 j - )
2 }5 M( J9 q6 u+ `- K* d9 I4 g/ R# s5 E - (setq pt4 (list x4 y4 z4))
% }1 ]* Y* f/ W# u' B8 T' e9 J - )6 `( h" e. \" V. [& L" C
- )
1 T# a7 g+ g7 W2 i4 n. E2 U8 K - ;; Xline/Ray
8 G0 N) ~7 Y6 p( v/ ]& z, R6 E - (defun ver_xline_pt1()/ J% t j, G" A; V4 Z0 T0 Q
- (if xline_pt1. Z7 Z" T( m; s: Y
- (progn; c' U) F0 W8 x% J+ N' D5 K
- ;; convert to WCS.& j. O0 B1 O5 _( [' K+ y" c
- (setq value (trans xline_pt1 1 0))
/ J0 D4 `( ]" V# v% O" R- b! G - (setq elist (subst (cons 10 value)) V# Y. e( \# f+ U, v5 h4 ^
- (assoc 10 elist)
6 F6 G0 x# u5 e- ? - elist. a/ ~ \) j8 i4 p6 ]) b
- )/ V* R' ]/ I" Z" T0 w
- )( M1 l) K9 N; N/ h' j0 q# P9 Y; f6 ^9 }
- )
( U/ D+ I: y( @ j+ e% n( P - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))0 W Q S0 K: {5 k: _( E% Q# R1 }# S
- )% P7 Z$ R o' z) u& x D: x
- )* O7 r( \% n4 V8 t- X: E! N, |
- ; R7 [( @5 J3 h9 G
- (defun ver_xline_pt2()4 p3 q, j9 m( w
- (if xline_pt20 U4 y& D' V- e+ H- l$ X
- (progn Z7 @ W5 V' g% A: G8 ~- P) O
- ;;
$ b" N+ E, |' d3 O; v$ Z/ |) P - ;; Calculate new Direction Vector WCS
; Y. ]/ c! z# Z7 Q - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
8 K0 a U' Y* F6 Y/ O8 v& J - (setq temp_dir (trans xline_pt2 1 0))+ _/ n3 m$ {) f8 y% \1 s7 g
- (setq temp_dir_x (car temp_dir))
# w* W# _+ o( b* x. T: S* L# s - (setq temp_dir_y (cadr temp_dir)); h5 y2 w/ i7 y8 E# N
- (setq temp_dir_z (caddr temp_dir)): _0 r+ d+ v5 X* j0 c1 w
, I1 d' o& y( e, c0 Y N- (setq temp_xline_pt1 (trans xline_pt1 1 0))
; `" Q/ m2 |$ I7 C - (setq temp_xline_x1 (car temp_xline_pt1)) j b3 \( Y& y2 ^0 E: Y3 m
- (setq temp_xline_y1 (cadr temp_xline_pt1))
. [0 K/ K; @ K- x - (setq temp_xline_z1 (caddr temp_xline_pt1))6 C: P( ~* j! b$ o8 L0 @" e0 n0 W% Z0 k
9 G6 H7 h0 L% N$ V( ]7 k5 K- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)9 n# D) Q) ]# z+ W* n# S& ^4 b- ?" L; g
- (expt (- temp_dir_y temp_xline_y1) 2)
G% a0 h9 h: ^* i5 R5 N! z - (expt (- temp_dir_z temp_xline_z1) 2)
& b& y* F: }8 K1 m$ c! D5 C, c - )))
) g, C: R# Q7 @5 f6 k E) m - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
( I% s& x# Y) h8 D8 ~- d - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))$ Z: _% r5 H, p9 {
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))& @6 n+ I% u$ D+ E
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))9 i0 C# V7 ?* V1 V j0 F" Z3 `9 C
- (assoc 11 elist)2 U4 b0 s- I9 P- v
- elist, L# i: ~* }3 J, i% @& c) n3 l3 i
- )
' V. b5 V% P9 L( ~6 i - )6 P, h+ S3 v. W
- (entmod elist)# |- I+ n) |2 E" h$ [+ f; u t
- (setq xline_x2 (car xline_pt2))
q' o/ a; N! |0 Z) J, c - (setq xline_y2 (cadr xline_pt2))6 n' N: k( Z) l; p$ D. I
- (setq xline_z2 (caddr xline_pt2))
8 O, h, ~% f* d" W3 r
* N+ U- d6 j7 w) }! Z. b
/ R" q" x7 ^8 ~" P7 M' d6 s- )
# j4 t6 _4 G6 G h& u - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))6 Z& |$ O8 e3 E, h+ J$ B7 {9 k
- )0 s5 B: J$ N* {5 v
- ) |2 S! j4 [5 R0 t1 F
- 8 A2 H+ t' J( P0 a( C/ Z( Q& L
- ;;
& b) h! a( w( c - ;; Common properties for all objects& Z! p0 q* e' b! h: M
- ;;9 c! O6 h* q& U l. I
- (defun set_tile_props ()
0 G6 x9 M/ a9 b - (set_tile "error" "")" w3 r( @2 A* J: T4 v. w# g w- c# Y/ c
- (setcolor)
! x" D: C J2 r$ X' E - (cond
, a6 p- }" D' T. M/ g* E& F - ((= eltype "BYLAYER")
4 |% w7 s ~. ? - (set_tile "t_ltype" (bylayer_lt)))6 n- r- v" k; ?6 O! A0 ?
- ((= eltype "BYBLOCK")( |2 g+ G! h K! d! q
- (set_tile "t_ltype" "BYBLOCK"))2 g( |3 P- r8 D: Z6 C; l" H
- (T (set_tile "t_ltype" eltype))& y$ M, u5 c7 s
- )
7 e/ [0 i9 H) B3 f( P - (set_tile "t_layer" elayer)
/ Y, {/ X" o* b) x1 `! U - (set_tile "eb_thickness" (ai_rtos ethickness))
|2 Y2 A/ ^9 z - (set_tile "eb_ltscale" (ai_rtos eltscale)). @; t8 ?5 e( X3 w+ r
- (setq which_tiles (ai_common_state etype))# Z8 v" p% ]/ A" \& l9 }" r, \, ?
- ;; Disable tiles if need be...
1 |5 t* `& M) r. @5 @0 n l
1 ~# E$ |- B) g# Y1 _6 T- ;; Layer Button and Text Field
) f" I+ @ E* g2 \: @ \. H - (if (/= 1 (logand 1 which_tiles))) |0 {7 W# P: ^; ?$ p
- (progn
4 f( O& u: N! ]0 F) i - (mode_tile "t_layer" 1)
/ ]' p% p, N6 T0 ]" t - (mode_tile "b_name" 1)3 q2 R9 r( C' Y) {; u3 Q* L
- )/ l4 J4 h! f# e, v5 {, u) H
- )0 G& `" ~$ d7 y
- ;; Color Button and Text Field& J U* q _! t
- (if (/= 2 (logand 2 which_tiles))3 i3 ?! A; |) V, Q. q0 E
- (progn7 g) a" V2 I( Z- @: F7 K6 ]
- (mode_tile "t_color" 1)
$ s3 h' B" P7 M - (mode_tile "b_color" 1)) o$ d1 e6 U5 p L
- (mode_tile "show_image" 1)
1 ?2 {: x6 t3 b1 I" C6 Q V - )
i3 R" Q7 K* z - )
3 }$ K1 J, X9 v' r/ L - ;; Linetype Button and Text Field3 \' t0 Y! v7 N! U) i& n
- (if (/= 4 (logand 4 which_tiles))
3 T9 V9 e- ?. C/ c1 r+ v( h0 f - (progn; x7 u& ^# [5 m/ q! }
- (mode_tile "t_ltype" 1)3 A7 y& t! ^; v/ q: C3 i
- (mode_tile "b_line" 1)
# x B0 O4 t% ]" e - )
. X" ] g1 N2 s& d - )
4 f$ G! Q5 ?( \- W! H8 P' | - ;; Linetype Scale Edit Field5 Q1 Y$ D: y) P# Z
- (if (/= 8 (logand 8 which_tiles))
0 x! d0 O# W. s( X! q. z8 k - (progn
- G3 H4 o3 k+ p! A: X. m& Z - (mode_tile "eb_ltscale" 1)
8 u: O( m9 Q$ ~: y, U# T; F* H - )
0 n! I# J, i3 x - ). I7 r* S# S# M ]: }* Q/ T! d
- ;; Thickness Edit Field.$ m3 H% f' I- ?
- (if (/= 16 (logand 16 which_tiles))6 A/ h6 L0 u" K5 D- `" d" x
- (progn
) G4 Y% u, e' u* |& c- v - (mode_tile "eb_thickness" 1)2 a* g( P" q6 F! M9 T
- )
0 T3 w7 {' F0 D, c, H n7 y; [' p0 k% q - )
1 q* [% E# I' z s1 w/ ^/ P - )
1 V3 S0 a8 [, z/ b4 u - ;;
5 D' w& u, N' |7 ^$ p" }; e: W4 P - ;; XYZ Point values for all enitites
+ y, `/ V6 k s4 F - ;;& e/ n9 y# v) F" y- @. k3 o n
- (defun set_tile_pt1 (ptype)
5 v- n! M2 n- S& N9 b# o- ] - (if (= ptype 0)7 ~" f/ H+ A# g b$ X
- (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))) ~6 H& e9 j- @' t; ~1 X
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))5 n3 O% B$ O Q( y
- )
, P$ l7 c2 x7 f: y; u - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))
8 [. M' m% G0 c# z! _ - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))! h7 U; [: ]0 h% W% `9 F
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))* o+ Y% L# I- I* A( l
- )
( K' f2 O9 K' u, A. `' c - (defun set_tile_pt2 (ptype)# i! |, Y: e# e
- (if (= ptype 0)
* Z3 t: X9 L- L0 t* O% Y+ o, k! D: E - (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
# t' y# _; Y T" Q - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1)); F6 R! R K( ]; w. j5 X K4 j
- )) p' p0 X. I3 k( x `1 A
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))6 T5 i; w1 ^5 Z4 m- f; o% f; j6 N
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
) c7 N# S5 i7 E! R+ x2 T+ U - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))1 E5 \3 j0 _9 ~& p( o4 {; O ?
- )
4 i5 `6 [7 Q" F$ ^ - (defun set_tile_pt3 (ptype)" l- G/ [+ V) I( Q/ q
- (if (= ptype 0)* V' f b/ Z7 V8 R, ?; y
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))4 f* x) N6 I! ?$ c, I
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
( v) h" ~& j7 w$ ?! B+ N - )
0 I$ y, e" p# K; I - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
' d6 j$ y% C+ e% R& c - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
: G' ?/ @1 w L; P - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
8 m* k6 n0 A: [, a9 L; u - )- U6 ^4 W. X7 \% f/ c; s
- (defun set_tile_pt4 (ptype)1 L& U6 {$ p, w& P! p9 U
- (if (= ptype 0)4 m$ L' ]5 }0 p2 M& O2 ?. b
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
' Q I; P# K& ` - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
% d! e3 t a% a$ t$ R - )
. p, v- ?' m/ l$ D/ s) A - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))6 u4 s1 O! P9 g7 w+ ?& b9 ^5 w3 f
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4)))): @$ U. N+ y+ Y
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
- ^, t% [+ f/ k - )
) l& C) g4 j: v4 | - ;;
/ h0 k, l* i+ ~& W - ;; Xline/Ray" e# q* ^7 B9 V B) ^
- ;;' \: _1 ?+ |. g
- (defun set_tile_xline_pt1 ()
, m# I! ]$ }7 u! N+ N+ `7 J+ U% ? - 6 e7 D$ d5 [+ C [
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))5 L g+ [) h4 d/ t9 I
; h' ?: r; ~: Z/ g9 x% V- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))4 c) q7 S5 X5 c( b
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))( X7 _, Y- G: c0 y% Q
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
0 z+ t8 U4 ]$ O& R/ x - )+ U7 l. W, v; _ D+ _
- (defun set_tile_dirv ()$ |( `1 ~4 a: r5 |0 S) M" H
- ;; Convert 11 group to local UCS (displacement)! P& V; R$ j8 o
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
1 G: z& K% @2 @# d- J, Z2 R; Z5 S
- }! J9 E7 a! L# D+ Y- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
2 B- X& v U$ @( G$ h u - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))
+ [) p$ R7 V6 T1 D$ K3 H5 }+ l - (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))3 t9 r0 S. M& F) X
- )
' X: W# A4 R+ w6 T3 T. Z! g - (defun set_tile_xline_pt2 ()" L& i7 J6 `. m* T3 S
- (if (not xline_pt2)* T; O9 `# {' _& a. f
- ;; Initial second point is Root Point + Direction Vector
+ O# @& \+ s/ a$ ^7 e5 B - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))( H5 V, s! @) B8 u% y8 h$ w3 Q# r
- ) p( G7 a3 E: A1 E" M
- (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2)))), f# R) q! k7 d
- (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2)))). ^, {7 I4 N. H( G, b
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
3 F4 U8 ]' _ _2 P2 w# E/ ] - )- R+ v1 e% S4 x0 W9 P
1 B2 G1 e+ ~) m! N- ;;
/ M2 S: w+ I7 Q" ^% H) g - ;; Handle for all objects! \/ p4 M* r& O& T# Y
- ;;
+ Y$ D9 m c6 x/ K$ l A7 N - (defun set_tile_handle ()
, D4 p# d+ o- |; _ - (if (setq hand (cdr (assoc 5 elist)))
$ S; m! x: p7 g g5 S( s) x - (set_tile "Handle" hand)
2 j$ u# P' K* S - (set_tile "Handle" "None")7 y( x+ w' J$ E. D
- )
3 ~& V% B8 \8 `0 v, [: o& J/ |" { - )
" w2 S, o4 r+ M$ d# e - ;;
$ V7 o' [" |$ \: h: N5 U5 k3 f - ;; Radius for ARC and CIRCLE
* Q F1 A0 l4 U# S \5 B5 w s! c: i - ;;" v1 y$ F5 L( P3 Q4 X4 v% f
- (defun set_tile_rad ()# \' r& Q5 q4 y8 |6 z7 A
- (setq radius (cdr (assoc 40 elist)))' I8 T3 a+ k9 M6 U
- (set_tile "radius" (ai_rtos radius))
s* I. O7 s- o% \4 R) S: U - )& B4 k; ^: u9 K& z
- ;;
1 w; v8 I. T5 @" e0 B# A( _) t - ;; Start angle for ARC
" Q- e2 ^' n) _9 H2 t - ;;0 X7 t$ K$ ~2 n/ M
- (defun set_tile_stang ()
) X3 L& q) ?% y. j - (setq st_ang (cdr (assoc 50 elist)))
7 v, D5 C0 H6 k# r/ d: ~ - (set_tile "st_ang" (ai_angtos st_ang))
# n3 q/ _$ ^4 U' u3 c - )
9 F$ l; ]: c9 F! a+ E - ;;
" v) r# [2 c! @2 d- [3 q - ;; End angle for ARC7 [, `0 U; q( a9 f4 w6 N
- ;;
+ Q7 S0 ~% F" g0 P" Y - (defun set_tile_endang ()
; k+ S+ F, H) ~ - (setq end_ang (cdr (assoc 51 elist)))
7 M$ ?# \" |5 o$ i! T - (set_tile "end_ang" (ai_angtos end_ang))
! W9 c% f2 _2 e* ^' T! Y* w8 c$ O - )" K8 u! ~; h+ \7 @" A! m l( L
- ;;
/ R9 d5 \: L1 J' m, i# w- h - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
* ?$ U! ^! k4 ~7 R) J1 C0 |/ ^ - ;;
" p- ^6 i+ [9 V5 F2 I- Q - (defun set_tile_rot ()
% }8 f. Q4 Y3 g$ v `# o - (setq rot (cdr (assoc 50 elist))). f S6 L, `" y6 R
- (set_tile "rot" (ai_angtos rot))
- ^; f2 T/ G1 Y' z$ E! A7 S! X - )2 D p5 F" x& E6 C1 p
- ;;
. ^! Z+ W$ ^& }+ }( i0 ] } - ;; Height - Text, Attributes and Shapes0 s/ a" i* l8 m# r
- ;;' A% ~% G; z0 n( I1 C
- (defun set_tile_hght ()9 E7 x k; @( t: W5 Y7 `
- (setq hght (cdr (assoc 40 elist)))' |' |& y1 H$ g% @. {% u/ ^
- (set_tile "hght" (ai_rtos hght))
7 s3 s# m5 z+ ]6 k9 D, I - )% s9 B5 e" B7 A! U% x
- ;;3 e; K( i& z( d- ]0 S
- ;; Width Factor - Text, Attributes and Shapes# @7 J7 H( y# |' q& [
- ;;
$ \/ t x, `# v( k8 u1 W+ R - (defun set_tile_wid ()1 ^0 {! j2 s. `& H' V
- (setq wid (cdr (assoc 41 elist)))! f% v" D$ c6 V1 A; k& E
- (set_tile "wid" (ai_rtos wid))2 e6 x) F; }1 i' |0 c! b* w2 B: P
- )
7 v+ D/ N K0 m5 s& ? - ;;
$ j& D; b) f* Y0 G, p1 E8 `$ { - ;; Obliquing Angle - Text, Attributes and Shapes
`6 L6 e& v8 | - ;;" C: O/ j: Y$ x- K+ j Q7 t6 J
- (defun set_tile_obl (); h9 ?- g! C4 x# M3 F. a O
- (setq obl (cdr (assoc 51 elist)))
7 W, S1 r3 Q V& t" ]( | - (set_tile "obl" (ai_angtos obl))
+ c1 B* C7 g3 n - )& ^! V' N5 W# O1 B
- ;;
) G" J$ B- _# K, P4 f/ M - ;; Text string9 X/ a( O2 f" m: W/ u
- ;;
" y. p P5 x. _. h/ k - (defun set_tile_text ()- a8 l) @# `' G4 K3 b& v- u) H
- (setq text (cdr (assoc 1 elist)))
' w5 a" E! g9 i$ n4 u2 P+ c - (set_tile "t_string" text)
+ M1 B6 Q$ C r4 z( _6 t# S - )
! h% t" ]1 t) ?' \% H - ;;! y$ n/ T" \4 T1 U3 Y
- ;; Attribute Tag i7 Q5 i1 r8 c8 \" R# I
- ;;
# b% e- M5 N! i3 e* ` z9 ^/ T - (defun set_tile_tag ()
" }% }+ A# @+ B& ^& e$ x& ]+ ]: U - (if (= etype "ATTDEF")$ R2 J$ X, i6 d1 w" d/ C
- (progn
! j2 H, Y. g7 D1 Y. b - (setq attag (cdr (assoc 2 elist)))
& O6 @. l, L1 X9 ?& \( B - (set_tile "tag" attag)* H7 h9 X& r7 w& u6 w
- )
$ o' o e9 g; a7 f- j* b - )6 O" {$ H/ ?" c! S% G5 l( {9 x- U
- ): ]* R w6 | U. h9 h4 E, E
- ;;& x5 G; h' Q5 _8 X+ J1 r% o! R
- ;; Attribute Definition: t" j' ~/ j7 E2 |! G
- ;;
& R7 s- d+ Q |- [. C - (defun set_tile_prompt ()* F0 B& b ~/ s
- (if (= etype "ATTDEF")
3 x- c5 T# h: y% w4 J6 d9 V; M - (progn
, j& N6 f8 Q! L4 X) g - (setq atprompt (cdr (assoc 3 elist)))7 f7 F" v) M. r( O" \. E6 w8 R% s
- (set_tile "prompt" atprompt)$ l- H. m; E: l! ~
- )8 w* k7 \- X& z3 R( G; b! A( |
- )2 K* |8 u n+ D; ]) M2 C# ?
- )
8 f# U0 c Y9 Y; {" w - ;;
( K% f+ n! Z S1 u* ]8 o - ;; Justification setting for Attributes and Text. Initializes" K2 O: ^7 T/ I* ^- A
- ;; popup list box6 q! m& J$ L/ n* q
- ;;; l+ _/ ]- G' Q9 \1 B% J# ~, [ F
- (defun set_tile_just ()0 { l& `2 I& C2 J# V
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment- ~! J3 M9 K- z6 U
- (setq va (cdr (assoc 73 elist))) ; vertical alignment
Z( j* k6 ~( p$ n d4 E - (setq ha-prev ha)
5 [6 T( N* i! D - (if (= etype "ATTDEF")! m. v9 D8 o2 h6 g
- (setq va (cdr (assoc 74 elist))) ; vertical alignment
) j8 e5 [5 ^& a" j/ s% ^ - ): ~% c1 Z/ C/ c+ L& R
- (setq jlist
7 H" P8 A$ b2 P/ k" [% E& G9 D - (list "Left" "Center" "Right"* p- M6 ^3 b, e
- "Aligned" "Middle" "Fit"
1 ^! K m4 m; ~5 R- Q6 o - "Top left" "Top center" "Top right"
! g( c1 y! _8 H4 b/ [ - "Middle left" "Middle center" "Middle right"
( t# |4 K3 x6 t- M, h - "Bottom left" "Bottom center" "Bottom right"
/ Z; a+ f9 h/ `% Z - )
+ l$ D8 ?, b! a# Y' c - )
( A+ k# G1 h/ E - (start_list "popup_just")
1 A% q8 B8 B, f4 j8 G - (mapcar 'add_list jlist)
4 c1 f. w- I2 {! F, l4 p3 h, } - (end_list); U, ^, ]4 |, F1 l* P
- (set_just_idx)
: ~6 v1 w0 ]4 H& B4 K% H - (set_tile "popup_just" (jlist_act just-idx))
5 O- ~* y `6 r) r - )$ e' W4 y& V& m. J+ d4 V
- ;;
2 l. `9 y- \7 Y. S. m8 i - ;; Style setting for Attributes and Text. Reads symbol table for popup list$ I4 T1 C) s7 k. ^1 S/ b
- ;; box.
6 M# f3 P' U4 S) a' |( i - ;;% a; `* V- L! ~, G8 L) c0 e
- (defun set_tile_style (/ sname style-idx tlist)+ \' q( D6 x7 y' p9 Y/ }
- (setq tlist (tblnext "STYLE" T)
5 ~5 i" g$ L9 u# Y8 I1 D - slist nil)
{7 ~0 v2 G0 {6 o' N+ [ - (while tlist
0 G/ Q" A1 t. s; i( E s - (setq sname (cdr (assoc 2 tlist)))$ s4 c9 @& _9 z6 ?* h; E
- (if (and (/= sname "")0 D* D: q" H- A9 B" C/ s* w* y
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))7 R8 F7 H1 _+ J
- (setq slist (cons sname slist)))3 S/ W; o# _# g! I) Q, ~4 m# Y
- (setq tlist (tblnext "STYLE")))
7 T+ y" h' I; |* D- K; X3 I' u - (if (>= (getvar "maxsort") (length slist))
, Y; W% {* M( ]3 y* ~- F; Z - (setq slist (acad_strlsort slist)) ; alphabetize style list& l! H. n3 N' T( t4 \. U: P3 X; ?
- (setq slist (reverse slist))) ; or reverse it to put it in DB order
3 W# D. g' Z/ G2 {# |
5 j; }# d7 i# C% l' ~: a' _4 c- (start_list "style")
z6 A4 D& s Q4 `# o - (mapcar 'add_list slist)
) W" |, q, v ~' _+ z0 C - (end_list)
7 f1 _4 S- p0 o/ e$ h# t) D - (setq tstyle (cdr (assoc 7 elist)))4 G' [& b& T- h* W/ D' T' N
- (setq style-idx (getindex tstyle slist))
, \* p/ O$ D/ v+ j( i7 I* y - (set_tile "style" (itoa style-idx))
! g+ A7 m6 X' y$ s( f6 g n$ b0 V - )6 s( W2 a5 I% `5 r
- ;;7 ~" [( h, m7 }- ^
- ;; Text and Attribute setting - upside-down, backwards4 o" N5 w3 q u% V) u* Q8 U
- ;;
% Y! ?/ s. I5 c& j - (defun set_tile_bk-up ()6 A# l% u$ k; u; B
- (setq bk-up (cdr (assoc 71 elist)))8 P; ? C: D. h
- (if (= (logand bk-up 2) 2)
2 K4 F8 e- u9 \' I0 g1 T; T0 p - (set_tile "bkwd" (itoa (setq bkwd 1)))# _2 H4 @" P5 Z. n
- (set_tile "bkwd" (itoa (setq bkwd 0)))
s. f1 m+ L. r6 V! I - )
2 M( I! X( x2 H - (if (= (logand bk-up 4) 4)
/ l/ l' Z# z# J, ` - (set_tile "upsd" (itoa (setq upsd 1)))
! K- R7 n0 }* `; d; @ - (set_tile "upsd" (itoa (setq upsd 0)))+ l( Z2 M1 j6 t$ J0 M- n' U$ ]
- )$ p- i+ l+ Z+ U' V5 i1 B
- ): }, I1 H1 X6 y$ i; }7 x. p- |. G R
- ;;
, c1 e% q& V7 v8 ~: k - ;; Attribute setting - invisible, constant, verify, preset! z* Q: S$ k& ^ z0 c
- ;;
8 J3 o! |' X. }$ t1 @+ k1 W - (defun set_tile_icvp ()
, d7 m6 D, T/ ^+ |$ U - (if (not (setq icvp (cdr (assoc 70 elist))))/ g) G `7 N' Y4 M
- (setq icvp 0)* K/ _- t& A7 e& u) v
- )
: n" z' {. b! y5 B - (if (= (logand icvp 1) 1)
% ~; f% ~0 s* J# p# ~# ]9 S+ \2 ] - (set_tile "inv" (itoa (setq inv 1)))( D& }6 i$ P$ W* X! X5 j5 w4 a
- (set_tile "inv" (itoa (setq inv 0)))
$ n" y& f2 j& c - )
$ X/ h4 o$ z, o. e8 L - (if (= (logand icvp 2) 2)+ h, n9 }( H/ F3 p( y+ _. G
- (set_tile "con" (itoa (setq con 1))); |! F; {! M# w
- (set_tile "con" (itoa (setq con 0)))
! G( Y* e* N# P3 @- C8 p - )
9 C! C1 j- Z+ X3 H1 c7 }& S* b - (if (= (logand icvp 4) 4)
% m; r# Y: Z. `/ }# b. W* o" O - (set_tile "ver" (itoa (setq vfy 1)))
: {& R) q/ G& B: F1 C- r |( Q - (set_tile "ver" (itoa (setq vfy 0)))" N% Y3 N7 ~8 o4 y% b4 j: e
- )/ ?' \2 L# d8 D( x4 K
- (if (= (logand icvp 8) 8): b1 u0 E$ M: V: k( C
- (set_tile "pre" (itoa (setq pre 1)))
6 ]+ r. a; i* J9 K# a - (set_tile "pre" (itoa (setq pre 0))) ^( E: D1 r* v: A ~0 y8 G4 u* c8 H
- )
$ }9 p, u A5 y) _ - )
a: y4 B5 b& j2 c) v9 y5 Z - ;;
3 l: v, ^0 T# S6 y - ;; Scale factors for block insertions* y" p5 g5 v* r2 i9 `- G
- ;;
, ]' P( y) Q5 h/ B/ H) K9 o - (defun set_tile_scale (/ temp)
2 W: P8 K. A2 [: q7 @) u - (setq temp (getvar "LUNITS"))* {. o0 j7 _+ C5 t4 u5 C% k
- (setvar "LUNITS" 2)
. q8 i. q& G, X. F% h0 k3 ? - (setq xscale (cdr (assoc 41 elist)))
! a/ P X, Y' I - (set_tile "xscale" (ai_rtos xscale))
! [$ a! Y: ^5 S4 B2 {1 t/ p - (setq yscale (cdr (assoc 42 elist)))
$ e" K8 E F Q" S4 Q! | - (set_tile "yscale" (ai_rtos yscale)). T. }% q: a8 G1 y$ c% l
- (setq zscale (cdr (assoc 43 elist)))' \6 k- z0 J. k; x+ G2 z
- (set_tile "zscale" (ai_rtos zscale))
7 P5 `9 Q/ z( x1 q - (setvar "LUNITS" temp)
+ @" z7 T5 b( W( L) W( n- H! j - )2 t# I V9 ]* {) B: N: f
- ;;
+ b' N, V0 ?/ w q! @# o% } - ;; Rows and columns for block insertions
- x3 G0 r' A& G4 d& c& A' L - ;;
0 a$ i( C) Q* r3 T* z0 [* I - (defun set_tile_rc ()! O: c& ^0 S2 `) X0 [5 @
- (setq columns (cdr (assoc 70 elist)))5 }* V U) V' u
- (set_tile "columns" (itoa columns ))
; t8 N% p; M& _8 R+ R - (setq rows (cdr (assoc 71 elist)))& R& `1 R: N; r) a$ x- e
- (set_tile "rows" (itoa rows))
8 O D! T4 I% O - (setq col-sp (cdr (assoc 44 elist)))
4 ~8 R9 T2 |" i" M- P: x - (set_tile "col_sp" (ai_rtos col-sp))* Q7 s) _. i* w9 A" x4 g5 X
- (setq row-sp (cdr (assoc 45 elist))), v @' G \2 d. |# W" p; _2 Q) H
- (set_tile "row_sp" (ai_rtos row-sp))4 ]" s! i- b" Y7 C+ J
- (if (/= hasclip T). s) \4 {9 q9 ^
- (mode_tile "xcliponoff" 1)
2 |! E, O* J! Y4 I) x - (set_tile "xcliponoff" (itoa xcliponoff))
5 J/ {! E! e5 i! _9 Y; { - )
2 x* }3 p$ w( s/ C; j, [$ P: _. B& { - )
. e" V' B2 z8 |: b% m - ;;
0 n _0 A. I* `9 E - ;; Invisible edges for 3DFACE
1 o6 Z4 W1 r- s1 J$ b' g6 q - ;;9 a5 f+ N' z0 W/ i6 q; D7 Q
- (defun set_tile_edges ()# l5 c: l" s/ Q5 c S& J" S
- (setq f-vis (cdr (assoc 70 elist)))
3 x6 d2 U2 V7 y7 ~1 ]2 g - (if (= (logand f-vis 1) 1)% l2 W5 ^( ]; u/ x
- (set_tile "edge_1" (setq edge1 "0"))- ?& B7 B: H+ ^+ W$ S
- (set_tile "edge_1" (setq edge1 "1"))
/ S9 |) ]8 I0 ^& A! W. O, a# H" o - )7 V7 ~5 b! A+ h9 L
- (if (= (logand f-vis 2) 2) P8 e) C: A! \& l4 ~2 h! C7 y
- (set_tile "edge_2" (setq edge2 "0"))2 W+ U+ F5 t; t9 S
- (set_tile "edge_2" (setq edge2 "1"))6 Z4 B% L" V0 C5 `' h0 ]9 y
- )
( |9 K0 i3 ?9 C& D! N, w. L - (if (= (logand f-vis 4) 4)
3 X4 c$ e/ \& [8 Y - (set_tile "edge_3" (setq edge3 "0"))! P' E* C" ^* ^$ n) a; i
- (set_tile "edge_3" (setq edge3 "1"))
$ D: U- q- Q2 O* ?4 }6 m( H2 s' i8 R" _ - )2 e; j/ D+ b: [/ f5 }1 G; G
- (if (= (logand f-vis 8) 8)
* y7 T+ ?6 ?2 s- H7 W - (set_tile "edge_4" (setq edge4 "0"))
9 D5 ~3 t* ~- u, |1 G$ j1 c - (set_tile "edge_4" (setq edge4 "1"))
5 K) U: ?8 z4 r- ?2 q. @. c - )( m2 g( t4 P* J
- )5 V+ [. g4 @0 b* e% \ `2 R
- ;;
4 A( A2 I5 A( ^, J8 @' n/ b - ;; XYZ Point values for polyline vertex
) g0 T7 V; I5 I( t: }$ N7 C - ;;
9 T7 l5 f# x" F' K0 I - (defun set_tile_vpt (ptype)( x9 ^3 @1 R/ V ]
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
! B$ K& V* U3 n) n/ o: o% y2 G0 r - (progn
% S/ Y- ]8 B. O - ;; ctr is 1 based, vertices are zero based.
, }, \% H. ?' F) \, v& T; ?% L - (setq vpt (cdr (getLwVert (- ctr 1))))
- Y1 F4 U8 I! G5 N - (set_tile "xtext" (rtos (setq x1 (car vpt))))* t* p/ R' g/ D/ a! ]- B
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
( \5 H% {" S/ N& ^, y# | - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
L' W$ W; s C- `/ `- D% C - ): B d8 @4 h Y" E6 P
- (progn' A/ B+ L4 a: ^4 I% B4 u
- (if (= ptype 0)$ l- W f4 G+ O0 g/ v7 a# M! J
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))5 R9 o. Z; S* H$ Q1 u# q2 R& V
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
2 c! Q8 x, n5 `4 B- `! V - )
/ Z5 E& `! r! n- O$ W4 y+ u8 N
$ K' l7 p$ P) X* E7 `: }0 J- (set_tile "xtext" (rtos (setq x1 (car vpt))))
5 c, H" ~$ u# I0 T/ e - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))& T+ w+ C! K5 J1 _$ W* b
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))5 i% f7 h# x5 m j( X9 [; y
- )
0 B% n1 s, K! u8 {7 M* c7 V( i - )- m: @" ]; N2 |0 b+ M. i4 F: X
- 3 W# N% _4 j! ~' e4 B
- )
" A0 P: y7 a) J. ] - ;; This is the equivalent to doing an entnext on the heavy weight
- l* D. T6 P: G J5 E - ;; polylines. The hard coded '4' below allow stepping over the' X- h* ~0 v" K- r. f
- ;; 40 41 and 42 group code information. The while loop finds the
: M0 l( q* V1 Q- f" [ H. s- X9 Y - ;; first vertex which will be used as the starting assoc in the
/ e1 o+ ? E& G( r* N" a3 n - ;; call to nth.
& {3 s7 Z! k$ W - ;;
; b0 V! ]3 @1 | m( F; k - (defun getLwVert (tmpctr / count tmp)
8 a; @* \+ P; i# J) a' T- e - (setq count 0)
# _+ f5 \" x- _/ E" u% f - (while (/= (car (nth count vlist)) 10)8 f+ M2 j$ A9 D- K) y
- (setq count (+ count 1))& {3 U0 m! @$ _# @
- )% l# J6 k3 Q8 ?4 O9 w
- ;; If the counter reaches the number of vertices,; h$ S3 u" y* w6 P5 h
- ;; reset ctr and tmpctr to zero again.
( C. g# {$ p# A# K - (if (= tmpctr (cdr (assoc 90 vlist)))
8 V9 B2 v$ g, C0 f6 V% Y5 z* C* S5 [ - (progn# D0 M# n( A* e- b# T
- (setq ctr 0)- _" z+ B% X W% H( p/ W3 _
- (setq tmpctr 0), Q9 G% [2 {; N! M4 ?) D @, A1 H
- )3 F2 b" @7 j; i5 v1 H7 Y5 J
- )
# a5 B4 h: w% b- F - (setq tmp (nth (+ count (* tmpctr 4)) vlist))
6 W! h% C; t# Q8 u$ h, \0 {& h4 ~9 h8 { - (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))8 k+ [: K$ W' P- D: u- ~6 |% L* b
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
) z) J- u- ^2 r1 E. g4 | U - (setq tmp (cons 10 pt1))" }# `) s2 r C7 [
- (setq tmp tmp)
' M" W1 O2 T+ R; Y( b3 f9 K - )( c, m5 M5 z2 p0 U( r
- ;;6 u- [, p& p& k; ]
- ;; Set tiles for Spline properties. If the spline is rational then we7 ~' X% k5 Z8 M9 u; i% l8 S
- ;; need to display the weight values of the control points, so set
2 s9 I. R; R5 s/ y& I' y* q - ;; flag to 1.
/ K8 ^5 x& J! G+ W - ;; 1 = rational spline
/ n# v; V m1 r+ U2 j' t' C - ;; 0 = non-rational spline
: Q! N6 X. a$ i z; w - ;;+ T9 F4 Z8 `* j& K1 c/ i- j
- (defun set_tile_spline_props ()2 I2 n2 z Y# l; z1 V
- (setq rational_spl_flag 0) ;; initialize rational spline flag! {6 }; T1 d# A2 Y1 Z
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))# [ q9 N/ y# Q
- (setq bit70 (cdr (assoc 70 elist)))' v) u& Y5 D/ e9 M5 N# y; Y) q# A4 e
- (if (= (logand bit70 1) 1)
& M: S2 ~! ]6 f* A - (set_tile "SpProp4" "Closed")9 K" q/ [1 h& X) p" M9 q9 d! E5 q+ w
- (set_tile "SpProp4" " ")
4 }: P3 M+ H* |# `. G - )% F$ b. m6 Q; ]) Y; `
- (if (= (logand bit70 2) 2)
; e7 [3 Q3 S0 J& E6 N8 m - (set_tile "SpProp3" "Periodic")* x9 H6 x& w: p0 y; a u( h I0 M
- (set_tile "SpProp3" "Non-Periodic")* B2 `6 _& u* g/ Z; t
- )
' r9 @" R+ @+ v5 u! t0 q) h - (if (= (logand bit70 4) 4)+ \2 c4 E7 O& {% X" [( X, v
- (progn
' B, {9 w4 v. R$ e( O0 r* p8 T - (set_tile "SpProp2" "Rational")4 j$ {8 j" S8 y ?6 ~
- (setq rational_spl_flag 1) ;; this is a rational spline
/ g& e. w7 D. D1 c+ M+ C3 P - )
; q& S) W; f" W) e+ ~- W: E - (set_tile "SpProp2" "Non-Rational")
0 }' }/ J: Q9 \! C - )
5 |% v( ^1 u6 o! Z" n - (if (= (logand bit70 8) 8)
9 E7 Z. K: Y1 y$ Z& T - (set_tile "SpProp1" "Planar")' v3 N3 T5 {; M5 c$ ^' e
- (set_tile "SpProp1" "Non-Planar")
7 N, T& }0 m" D# }% O; h - )
! Z6 d0 v! `1 Z1 c% j- @: P - (if (= (logand bit70 16) 16)
: Y* f+ n' s( g( \) o - (set_tile "SpProp5" "Linear")
u& w$ f2 D# C7 g3 U - (set_tile "SpProp5" " ")# i. ~2 S* v; n* F+ n+ H' S
- )
/ `- A/ x, {6 `6 P# j/ x - )
0 z5 t$ A8 P1 T" {+ v; X- u - ;;" C/ {# m/ E0 B9 Z, l
- ;; XYZ Point values for spline points
& E/ h) q" r3 d* }2 n, _ - ;; Need to account for WCS/UCS
2 t- X* N* I2 ~9 M7 u; j - ;;
6 I9 E3 Y& {; i; u1 l( g3 {% X - (defun set_tile_cntl_pt ()6 K" F6 ^' P; O9 M; A! y5 Z! r
- (setq cntl-pt (cdr (assoc 10 elist)))
9 t8 R. A. P" ~ - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
+ k; C+ g: O/ h9 B. w$ `8 h - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))7 _, j9 w5 ^( i! L
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))! E6 \: a ]+ t9 D+ p) R R
- (if (= rational_spl_flag 1) ;; if rational spline
0 u# Z2 m, D& R c - (progn ;; show weight. U& l9 x# x0 } |
- (setq weight (cdr (assoc 41 elist)))
5 v! \/ M o, T; x* [ - (set_tile "weight" (rtos weight)). s; R( f, i, E! A, K) W
- ) ;; else# Y, @2 g5 K( r- c* L H% d# d
- (mode_tile "weight_text" 1) ;; disable weight field& v; ^3 a! W" U, s, Q5 a
- )" H, p- Y( L& G' k' d
- )) I- h' w, o0 @ g2 }) A
- ;;
+ R% T& \- N2 L5 U - ;; XYZ Point values for spline points
/ e, F- f- ~6 @' ] - ;; Need to account for WCS/UCS
1 M5 g$ u8 V" A - ;;
0 e5 Z& M9 p; T$ B$ { - (defun set_tile_data_pt ()
+ [1 ~% F+ i3 ~' X4 e9 q - (if (not (assoc 11 elist))4 X( H7 C0 i1 e8 F- v
- (mode_tile "data_pts" 1)/ `, i: D; v& V0 J
- (progn/ [7 O4 W' n6 y/ y5 l
- (setq data-pt (cdr (assoc 11 elist)))
8 y8 t" Y# V' |7 V3 f - ;; display points with current precision.8 M9 A+ F* T5 u
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))8 x% [- S s8 a7 \% x1 T' t
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
3 S! N/ D" v( O. x5 P$ K) V8 l - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))8 j5 Q& I7 [8 v8 c+ _
- ), _' Z5 P# w8 Y- _! C
- )8 K& l0 z! n; d* w: C
- )
6 o' m3 M+ w) U. Z# L: K - ;;* e; }8 G$ G6 I& M" b
- ;; Fit curve, fit spline, or smooth spline surface setting
- M2 r( T' o/ j) j! T) t9 ~3 h - ;;
$ Z, h3 C( s2 A, X+ X' w - (defun set_tile_fitsmooth ()9 r/ D. m1 V# {' N$ n/ c$ [- c
- (cond- v! c9 T8 v1 q9 y7 X, `
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")& D% R9 J& ~+ J- M7 h
- (set_tile "none" "1")
" m# j. m$ A* I( Z - )
, ]2 V1 Q% G& q+ E. N5 S" Y# Z1 O - ((= (logand bit70 4) 4)
+ @8 E9 E; _8 d - (cond
2 v- @& \2 p& @5 T9 G1 m3 }2 @ - ((= bit75 0)
0 J1 O9 \/ t& m! |( V6 }7 X! L - (set_tile "none" "1")
# i% t8 O9 `0 Z o0 q& t' Z - (setq spltype 0)
* H L8 y* ~' z' K: P - ): W* K( o8 q: N% |; @
- ((= bit75 5)
: b3 b4 J% c; A4 g3 x - (set_tile "quad" "1")
( r' i% _( G7 @7 b/ w - (setq spltype 5)
+ I V2 f) I9 J5 d4 J4 `8 E, m - )5 B3 H, s- w7 c8 J
- ((= bit75 6)6 C6 }) ]" I! w
- (set_tile "cubic" "1")
5 A2 E i8 D' d; C - (setq spltype 6)3 E t$ e2 n( _6 Q# K/ Z
- )9 J* q/ ^1 F3 t* i0 X5 \
- ((= bit75 8)
; U( ^* L- ^6 m( z! M! B/ {1 v T - (set_tile "bezier" "1") @5 \, P- X7 K- o
- (setq spltype 8)& z% Z+ w: C1 O3 R
- )" x9 Q( G6 L# T: w( C0 r* W
- )0 {6 g3 P' W, D: {
- )
2 y) Y6 C* n1 H3 k( n4 H7 D2 t+ z% R/ H - ((= (logand bit70 2) 2)
" W7 q! B0 z0 m1 }& A - (set_tile "fit" "1")1 b" X# `5 O9 @" q; T3 e
- (setq spltype 1)" C; v2 ]0 \& H8 }8 }$ F- R- w( F
- )
2 ]) j6 u& b2 h d# H* l2 W - (T (set_tile "none" "1"))
X" H. U8 R6 _- m+ Z! K* ^2 r - ), o, @1 X2 \- ]9 S7 {0 Y- S
- )
* L8 P# w! K" |8 j1 [ - ;;) d! V% |. m' y, o
- ;; Closed or Open mesh and polyline setting7 m* l M9 w* J1 r0 b
- ;;
: H* u+ i' I! a, Q6 Y - (defun set_tile_closed ()
) C, D/ E L+ ^: W3 E& A+ H - (if (= pltype "3D mesh")2 P# b9 i2 O" w1 w; l: T& V
- (progn6 O( r% N; R% G L( ]
- (if (= (logand bit70 32) 32)
8 G4 c H$ G( j% V' A - (set_tile "closedn" (setq closedn "1"))
4 d6 m0 }5 v, P$ ~ - (set_tile "closedn" (setq closedn "0"))
2 y* ^/ c' B3 @3 R - )( H' ~+ B( b( r9 f W- Z, G
- (if (= (logand bit70 1) 1)
6 p0 Y+ X4 ] l) P) z- f" | - (set_tile "closedm" (setq closed "1"))
" e+ m. O: [2 w7 ^0 n- M7 b - (set_tile "closedm" (setq closed "0"))
3 I/ w; ` g& x6 a4 w: }, M- d7 F# Y - )3 ^ ? }0 P2 H* `, Q) E8 T
- (setq old-closedm closedm old-closedn closedn)
" D! {* \( u* P8 \" G' C; r - )
; S$ G% g" j4 O5 ? - )
: s. V7 [* {8 S' [ - (if (or (= pltype "2D polyline")7 k. B' ?$ \9 v: X. f& Z6 g
- (= pltype "3D polyline")
7 B! n/ T- g+ O+ E8 B5 A - )3 i7 w' j6 T- [8 J# G& n% Y6 @
- (progn
6 E* v4 D! X2 v - (if (= (logand bit70 1) 1)
) T) m# `: D3 R) P - (set_tile "closed" (setq closed "1"))
/ C: q, {* ` I( Z6 i0 S! A6 H - (set_tile "closed" (setq closed "0"))
- a; E' g# J3 |. F6 D3 Q- R! o - )1 @, T$ |; u" M" ?$ n
- (setq old-closed closed)
" N$ Y: L( {* ]1 ^6 V - )% ~1 f- J, k& s2 E' |5 F
- )
; W7 a1 G6 H" h5 n) t, L - )
8 R) Y: M6 N: m. M! Y3 [( h - ;; Set common action tiles9 [# E4 P) I: g E3 E( j
- ;;
$ j, V# H$ e9 q/ K: `; I/ v - ;; Defines action to be taken when pressing various widgets. It is called
, r& r" @" b9 [ - ;; for every object dialogue. Not all widgets exist for each object dialogue,
4 O, M/ G- {( @" i9 ^9 E1 g& t - ;; but defining an action for a non-existent widget does no harm.
9 f j6 Z/ L Z - (defun set_action_tiles ()
% _ U+ [9 z, n2 R% ^- g2 H - (action_tile "cancel" "(dismiss_dialog 0)")
2 L, n4 \$ p& E& S9 T' r - (action_tile "accept" "(dismiss_dialog 1)")( A4 C1 }; D5 l- O, |& I1 t( E
- (action_tile "help" "(help \"\" help_entry)")
# m) E8 T- N9 W3 S X - (action_tile "b_color" "(getcolor)")
( G$ R9 H1 ~% d0 v - (action_tile "show_image" "(getcolor)")
9 p* ^3 _7 f; `, R1 t A4 q: ~ - (action_tile "b_name" "(setq elayer (getlayer))"); N& |$ m2 ?' a5 @3 k' c
- (action_tile "b_line" "(setq eltype (getltype))")
$ m D' `. ?# ?# X/ X' v( ? - (action_tile "eb_thickness" "(getthickness $value)") D( R/ b- B% |1 O; ?+ y
- (action_tile "eb_ltscale" "(getltscale $value)")
& |3 d, F) h+ U( A( h/ @( Q! a d - & o$ }5 O" [6 [/ v
- (action_tile "pick_1" "(dismiss_dialog 3)")
# Z2 ~( N) c) m- u# Z: y - (action_tile "pick_2" "(dismiss_dialog 4)")4 h+ u) Q; W2 W! a; ~, @9 O% k
- (action_tile "pick_3" "(dismiss_dialog 5)")& K3 p8 `( X8 u% m4 K6 k
- (action_tile "pick_4" "(dismiss_dialog 6)")
6 S+ s( _' `" d! E; B8 C# k - (action_tile "x1_pt" "(ver_x1 $value)")9 l ^. X& ]3 j Q
- (action_tile "y1_pt" "(ver_y1 $value)")
+ B0 o1 W( b+ g5 Z) q1 c - (action_tile "z1_pt" "(ver_z1 $value)")
9 q; H5 P7 K8 r9 U/ k - (action_tile "x2_pt" "(ver_x2 $value)")
# j M/ B: R5 _/ b - (action_tile "y2_pt" "(ver_y2 $value)")6 _4 R' {% H6 S" R+ B
- (action_tile "z2_pt" "(ver_z2 $value)")) a$ k% I( f6 O4 v. Y D' ]- j6 e
- (action_tile "x3_pt" "(ver_x3 $value)")
# N3 L! v' A M - (action_tile "y3_pt" "(ver_y3 $value)"), E' F. r7 j, T' o6 [
- (action_tile "z3_pt" "(ver_z3 $value)")
+ O# x& u3 v4 p) A0 a- i - (action_tile "x4_pt" "(ver_x4 $value)")
; `$ |: b8 X5 e; R5 K - (action_tile "y4_pt" "(ver_y4 $value)")9 G' m. X& A8 o* p% N
- (action_tile "z4_pt" "(ver_4 $value)")
T. _! l2 Q$ Z8 b. Q9 ?- [ - 8 L/ b" f, @/ R- W3 m. e( d" U
- ;; Action tiles for Xline & Ray
; t- a& M+ l/ W! M* Z" ] r - (action_tile "xline_x1" "(ver_xline_x1 $value)")
) [0 A# l7 B) C5 H3 i - (action_tile "xline_y1" "(ver_xline_y1 $value)")" s% J$ M* n9 z2 d$ ^
- (action_tile "xline_z1" "(ver_xline_z1 $value)")+ B, F* G' Z8 ? m# e% u4 I
- (action_tile "xline_x2" "(ver_xline_x2 $value)")
2 h0 V# {; P; P6 ^; z - (action_tile "xline_y2" "(ver_xline_y2 $value)")
& e6 o0 h6 B# V$ y& M' ~ - (action_tile "xline_z2" "(ver_xline_z2 $value)")
* a( o# ]8 Q+ T/ D7 ~: D8 A. Z5 n
2 u/ J! e I' X6 B- (action_tile "edge_1" "(setq edge1 $value)"), A, Z0 _, C: N s$ K# Y
- (action_tile "edge_2" "(setq edge2 $value)")
; J9 s2 }% `. G6 d/ g% Q9 E$ N/ a - (action_tile "edge_3" "(setq edge3 $value)")
. s3 }, i: y; v( Q4 C+ U - (action_tile "edge_4" "(setq edge4 $value)")4 g1 K) M" S3 x$ ^; @. w. \) B
- # D Z7 ?2 p/ y! B& f* W% m
- (action_tile "radius" "(ver_rad $value)")7 Z: R8 V- K( ]: B% Z& E
- (action_tile "st_ang" "(ver_ang1 $value)")
P/ C& T2 a% Q! Z5 Z+ ^$ x - (action_tile "end_ang" "(ver_ang2 $value)")
, @2 ^1 s& E: @+ \8 b8 t( S! P0 X$ Z - (action_tile "end_eang" "(ver_eang $value)")/ l. K1 _+ b+ S
- (action_tile "minrad" "(ver_minrad $value)")! _* Z; _$ a0 [/ i* j- ^
- (action_tile "majrad" "(ver_majrad $value)")! u; O* N. x {9 X
$ X: g* p& Z* |( |/ P- (action_tile "xscale" "(ver_xscl $value)")( X" J9 E0 Q' X- Y9 J+ Y3 }
- (action_tile "yscale" "(ver_yscl $value)")
4 r7 l* R( P" f, n - (action_tile "zscale" "(ver_zscl $value)")7 S; X! d, r: s! G! |* ^
- (action_tile "rot" "(ver_rot $value)")
% U! ^5 @3 g$ u, F - (action_tile "columns" "(ver_col $value)")" T, x% ~- ?) D1 {' M
- (action_tile "rows" "(ver_row $value)")
x/ r9 j& K; A# ]& q - (action_tile "col_sp" "(ver_colsp $value)")* T0 z" x3 B. o/ ^
- (action_tile "row_sp" "(ver_rowsp $value)")0 T- _/ u1 Q' {: K4 N+ N
; m" B# n: B+ Q5 B- (action_tile "hght" "(ver_hght $value)")
, \" D3 g9 G( I6 v3 R - (action_tile "wid" "(ver_wid $value)")
/ ~$ r( a- N' \9 v, R0 M - (action_tile "obl" "(ver_obl $value)")4 W5 m5 A' |( o! p5 Q0 ~
- (action_tile "style" "(style_act $value)") l& E+ c& E1 u! j3 S
7 `# P1 H" Z3 m$ [+ j! a/ ~/ b- ?- (action_tile "t_string" "(ddgettext)")0 h! x# M( b. e6 W
- (action_tile "tag" "(ver_tag)")% W. `* [4 ] e4 Y2 E
- (action_tile "prompt" "(ddgetprompt)")
2 n- t4 Y# C( F$ Q: d - (action_tile "bkwd" "(setq bkwd (atoi $value))")
; u' f/ }$ Z+ }; d; V - (action_tile "upsd" "(setq upsd (atoi $value))"). E9 {0 W4 K r9 ^
- (action_tile "inv" "(setq inv (atoi $value))")1 {& [; {2 m" S5 V) o+ b+ V
- (action_tile "con" "(setq con (atoi $value))")
" H& I3 [+ X' L6 l - (action_tile "ver" "(setq vfy (atoi $value))")) Y7 v- a5 A' E: E! W8 t9 X
- (action_tile "pre" "(setq pre (atoi $value))"). L5 X9 v3 T& @! V: w; \, Q+ C m
- (action_tile "popup_just" "(jlist_act $value)")
- U" n* r' |! a! Z X7 H - 8 @( Y4 S% o: p
- (action_tile "closed" "(setq closed $value)")2 Z4 { R6 q- }1 p
- (action_tile "ltgen" "(setq ltgen $value)"); J; e, y# |3 R) \+ B
- (action_tile "closedm" "(setq closedm $value)")
; i9 w; H: |8 k2 b! E3 f) O. T* E: h( t - (action_tile "closedn" "(setq closedn $value)")% k/ n, [1 S, {" V( F) h# }2 r5 T- Z
- (action_tile "next_v" "(next_vertex)")
0 Z; R* u2 g% }, U4 r* ` - (action_tile "xcliponoff" "(setq xcliponoff $value)"): m9 m& X4 @3 q' M
- & z0 s; f0 G2 U3 _0 D6 h3 U, X
- (action_tile "next_cntlpt" "(next_cntl_pt)")7 V) g- j1 W) S7 a; A
- (action_tile "next_datapt" "(next_data_pt)")" q$ C' h; v) K# G8 m' d# k+ a
- " G) x" J d* b- y
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")7 t* ?( T) n0 Z! C6 e. v
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
- W7 n; i% p( h - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
, u4 u: B- |, g; X$ F* c - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")( G4 f- h. `$ G/ ^! ]# G
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
$ ]! B1 w/ R' A - $ W& ~4 }. E+ B* ~8 z" r) t9 Z% [; g
- (action_tile "u" "(ver_u $value)")
]/ p6 A) C5 [& B4 Y1 p - (action_tile "v" "(ver_v $value)")6 j ^# g' X7 ~" F0 a
- )/ x7 X h7 H8 G
- ' E% U n$ f0 {
- (defun ddgettext()+ V- y0 c9 s3 B4 P9 W
- (setq text (get_tile "t_string"))
3 z2 U( ?$ R( ^* [/ P - )# ]4 K: e/ D2 U9 _1 R& r
- ) L d% ]# l6 P& ?3 T/ I; ~+ d
- (defun ddgetprompt()3 F( [1 ]0 L5 C/ i5 h" T
- (setq atprompt (get_tile "prompt"))% h$ l. B! h! v/ q O
- ): e7 m% E+ O1 `; j5 X! n. b
- % [. t0 `& C1 t" O @2 u3 @
- ;; As OW doesn't support disabling of individual radio buttons within
. `$ P* w8 H. n+ T% V* V9 S - ;; clusters, a check must be performed as to the legitimacy of the
( h, r8 v2 @( V. X5 S+ l, | - ;; button pushed and reset if necessary.$ u$ w0 ?: s8 l U% e2 I
- (defun radio_gaga (pushed)
$ b- v# c' A- [) Y - (cond: U/ Y9 Y( Y! t# L7 \ h3 c% q
- ((and (= pltype "3D polyline")( A6 J e4 [2 \! \. u1 u
- (or (= pushed "fit")
5 L& b1 [$ c8 _. |/ X - (= pushed "bezier")
& C7 v' i2 H. I! C6 Q. X2 h X - )
8 p! d8 r$ T' h% n - )
# F) T+ i4 }% a& [ - (set_tile "none" "1")
+ T( K6 g7 \6 Z2 ] - nil
" ^+ q' G+ v7 A - )
+ `" i5 n5 R/ f1 R7 K- h' G - ((and (= pltype "3D mesh")2 e. y; Z! ~0 J; i) v
- (= "fit" pushed)
9 L7 z+ B9 E& X- Q - )
9 r7 ]) y& y# w* q7 m - (set_tile "none" "1")0 W; W5 p6 u4 B0 F% L! U
- nil( E; i5 ^# _! y& s" h9 R4 {" Z
- )
: p' D# e! Y# Z7 o - ((= pltype "Polyface mesh")
3 l+ E8 l/ R7 N) g - (set_tile "none" "1")+ D* V/ U4 e: P' f
- nil
" z3 {- F9 ]8 K6 G D! c# s$ b - )
9 H$ M& Q3 F0 {) q+ h* Q - ((and (= pltype "2D polyline")6 y+ b; Z0 r7 y) W" p9 t3 F7 y$ }
- (= "bezier" pushed)& F- U/ e. G4 A1 s; R
- )' d5 M8 s! M$ G& g
- (set_tile "none" "1")0 j1 v6 b( Q( N& ~
- nil
d! H z+ D0 X1 \& e- e - )+ b( M0 L" |. ~4 h
- (T)
' v" Z8 n9 Q) c( O8 z8 C - )
* I& i0 e# _9 p - )2 W( d W2 \& _0 Y
- ;;
6 R$ a4 v; p1 D2 X - (defun set_uv (type_n)
7 m8 B; z+ {: I4 I - (setq spltype type_n)
) k) j$ Y; u1 A* i - (if (= pltype "3D mesh")9 W" V! }0 A: w) v5 w
- (if (= spltype 0)
1 A: N0 E. q5 y, [: b+ Z8 G - (progn4 @( o) R2 q( V# b% M8 e( [
- (set_tile "u" (itoa (setq u 0))): v/ u0 \4 E5 J2 U/ m% W. G9 Z r
- (set_tile "v" (itoa (setq v 0)))/ L6 `3 f2 P& L2 e
- )* h( b# l# m3 y% c; p j
- (progn
" ]" A" G6 h% v& X( {) O4 ? - (if (= u 0)2 Y$ R7 p4 f4 P1 ?4 P! b
- (set_tile "u" (itoa (setq u (getvar "surfu"))))* W( l. {* h& l( Q6 X2 E! k, M
- )
! y5 U9 z! x# J - (if (= v 0)
0 z7 |" h6 m- V+ z - (set_tile "v" (itoa (setq v (getvar "surfv"))))
f. e `2 D; j/ I7 E - )9 E [( f( t' v8 J8 B, h
- )
- @* B* E9 ]3 m) H& [ - )
2 ]$ z4 S* v) o - )
6 J' {/ t: c2 t, ^1 X - )' O( ?3 ^0 [! O2 {8 f H9 k- N
- 5 Z$ N7 v6 D, L: g# V) F
- $ x' {9 `: J/ D% G
- ;;
* v: z" B! k3 M. p5 m7 ^ - ;; Verification functions, R, ~2 c k7 i% F6 G
- ;;( K" b' e( E; G
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or
5 |; r3 ]' a; k) e+ v& R6 ~" { - ;; distance value, the tile name, and the previous value as arguments. o( z' Q' E; ?3 P) P' \4 E
- ;; If the distance is valid, it returns the distance and resets the tile.
) S* |* Y# R' a# A - ;; Otherwise, it returns the previous value, sets the error tile and keeps
: `* f( @0 M7 _8 N& u* [5 e - ;; focus on the tile. Shifting focus to the tile with invalid value can& v' Z( z+ C0 O: }! C
- ;; trigger a callback from another tile whose value is valid. In order1 X4 i+ {" m. e0 i/ T+ ]. Y! g
- ;; to keep the error message from being cleared by this secondary callback,+ [, X0 C' X4 b3 Z
- ;; the variable errchk is set and checked. The last-tile variable is set
$ ^- s1 C- e1 x: X - ;; and checked to ensure the error message is properly cleared when the& E7 r0 ^7 a" q. A# ^
- ;; user corrects the value and hits return.7 p3 ?) B/ s% N/ q. g& {0 ]4 z
- ;;' |6 d8 e& y7 s! ]5 N* B
- (defun verify_d (tile value old-value / coord valid errmsg)
5 H" i* O9 l' j1 p5 R3 T - (setq valid nil errmsg "Invalid input value.")
8 |5 k0 t- K" L7 ^. D& N: E - (if (setq coord (distof value))" K1 l7 g# Q- ~7 {
- (progn
6 r2 n2 f, r5 n - (cond
; y/ W$ r6 t1 z: w5 ]3 r - ((or (= tile "radius")
. `: ]& K# A; q- R- t1 E5 | - (= tile "hght")# Z# Q( s5 X# Q! P; F! {* @8 K9 V4 H' Z
- (= tile "wid")
, U( k! s9 G3 g& ]- A! `! ^4 @" v9 ] - (= tile "majrad")
$ u$ o2 n; O* u5 U5 q - (= tile "minrad")
]* X$ ?# ]! y- G6 r" J3 n! G - (= tile "eb_ltscale")
. Z, n4 Q) L; |! T - ); j# _- f% F) {3 o
- (if (> coord 0)) ^2 N# w; O7 ~( y
- (setq valid T)( @7 @4 v9 ~4 o; g2 n
- (setq errmsg "Value must be positive and nonzero.")" c: P- r4 _+ T) x. N& |
- )
( W6 Y: F: k& i5 }+ G - )- F5 l, ^+ ]4 |' h1 P9 Q! r
- ((or (= tile "xscale")1 a: W2 U" |( M# M
- (= tile "yscale")
9 c# ~' [7 w( R - (= tile "zscale")
9 Z. G+ ~. ]) |3 O4 W( t+ t. R - )
( B- P" j6 U4 a: f# b% x; p - (if (/= coord 0)! Z% _0 v- e# }/ w" r- H4 H" ~
- (setq valid T)! l3 O& q8 R; c1 z& @, C
- (setq errmsg "Value must be nonzero.")
& {9 D3 D7 @2 Q# S3 m; m0 t - )$ k( K3 M4 [. u B: U& G* T
- )$ Q& Y# l8 s8 u! Q# M% d
- (T (setq valid T))
; n- I, p$ @& ?2 h - )
1 q# o. e' h# [6 K - )
! T4 `7 B4 D" R - (setq valid nil)
3 F6 {& v5 G. ^6 E5 R: s - )' B6 [/ g# A' }& K- {
- (if valid. }4 R7 V$ V7 P" k' q$ _% c5 Y& I
- (progn4 G. T- \+ I! |0 f0 S6 j V
- (if (or (= errchk 0) (= tile last-tile))
4 g o( {& M | s* y - (set_tile "error" "")0 X5 v6 k% n2 f$ O, m3 r
- )7 U$ m; d0 Y3 F$ t
- (set_tile tile (ai_rtos coord))0 |8 O, X) r9 A
- (setq errchk 0)1 M% |4 [7 \# O' q
- (setq last-tile tile)/ L, u( S. @2 X6 \; F
- coord
4 n3 z% @( i) p - )% J {( w" L2 l9 Z
- (progn, F( w# h& f7 k7 x) R
- (mode_tile tile 2) ; Move focus to offending field8 X- c% G* D1 ?6 Z
- (mode_tile tile 3) ; Select offending text
) H! ?4 E8 c4 }# f% a. G$ z - (set_tile "error" errmsg)1 }1 J. M) o: c6 }
- (setq errchk 1)
4 L3 o. r: M, Y B - (setq last-tile tile)0 m) ~0 u2 b( m4 t) ^- ~
- old-value
& C/ s* {8 u8 o: r2 k8 c - )
, x B9 x; O! r. l - )
4 j( y- j5 p5 a" c8 c/ E2 G8 Y4 D/ N - )% M. R* C% G% t
- ;; Function for Xline coord edit box checking.5 g2 c5 ]8 O3 ?# {
- (defun verify_xline (tile value old-value / coord valid errmsg)+ b3 p& E# w, e. v$ z; f% n
- (setq valid nil errmsg "Invalid input value.")! A& Q) g1 \# K
- (if (setq coord (distof value))2 Y" s6 r* t- n$ h; x
- (setq valid T)
- u$ q0 q! L% K. z - (setq valid nil)6 S' h( q' m# E
- )
5 W$ D! ?& e+ C, {) u) t - (if (and coord
1 c$ M, u7 r* B5 u, P+ l5 a - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )& K; d. Y7 J7 P
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
6 ^0 j2 V# X, V C4 } - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
$ B/ R F4 |/ L, t& k - )7 N( l' A" n% p3 B& y4 P- y) f. P
- )
. N( S1 l& ~$ Z5 }! q; {1 _( s0 I - (progn
$ _" ]' Z5 F, r; t1 q - (setq errmsg
' K+ ]# U6 s$ Y6 t1 [+ T4 n - "The Root point and the Second point cannot be equal.")
! N( T \1 x, D% S - (setq valid nil)
/ e0 D) U8 ?6 z2 a$ @3 N* w - )
^" O# P6 q4 K - )
$ ]) J" ?. U; I2 q& } - (if valid
3 `9 e) C8 B$ {0 y" J. R A" i- D) V - (progn5 t. i" `% I* f; V3 F" M
- (if (or (= errchk 0) (= tile last-tile))% J. O( C% k# Y$ y
- (set_tile "error" "")/ ]5 P, R9 U5 Z6 p% O
- ); M. F, _/ v: ?4 }1 v# B0 s
- (set_tile tile (ai_rtos coord))
. ?" V1 Q+ j. [2 J$ {# Z, g - (setq errchk 0)) |) _+ e' M: e, }+ W s1 w
- (setq last-tile tile)
% b# Z' \ _6 z2 l1 h: ] - coord
5 p+ [) b$ u# J* x3 t' t - )4 n% Q, u; Z* f" _' N
- (progn
5 g1 w3 Y- e' b! g v/ a- x - (mode_tile tile 2) ; Move focus to offending field! e: z& i4 O/ M! c7 K! e3 b6 E
- (mode_tile tile 3) ; Select offending text7 J; ?3 K! D- y9 l
- (set_tile "error" errmsg)5 a; n& |, k" `, D
- (setq errchk 1)5 O; d; q6 x% b! P* L9 a: _
- (setq last-tile tile)8 p$ L7 ]) x3 s$ w) M" ~% Q
- old-value) P; i& u3 ~: Y; { _
- )
0 w& _, J# U, i* m) p Z - )) E! y5 r5 W$ T: b
- )0 x( d8 _5 G- J9 a7 {" R
6 w4 v% \9 J/ j0 G1 U5 C- ;;9 W8 I' Q" T8 b% q, b5 ]
- ;; Verify angle function. This takes an angle and a tile name as arguments.% t1 R5 M9 s0 U' g( A
- ;; If the angle is valid, it returns the angle and resets the tile.; E2 T i/ R8 K- b& d7 F
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
6 y; d5 ]3 N; B$ ^1 P$ ?7 p - ;;
. C- O& K+ a( P3 X - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)9 N5 h4 I% u. z$ j1 p, a
- (setq valid nil$ ^- M& _% }8 ?; ]4 Y* @2 }9 E# a
- errmsg "Illegal input value.", U* s# R z, ~: d: @, g% T
- )( D- z Q% `6 K' Q
- (if (setq ang (angtof value))
$ f: k/ [7 ?* ?2 A. ]# a' Z3 [ - (cond0 e5 z+ @5 [! }4 I3 V7 ?: y- `4 N a
- ((= tile "obl") ; Restrict obliquing angle7 v4 h2 o7 p% m% q7 @5 E
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
0 W! |2 _4 Y- S1 a& | - (if (or (<= ang oblqmax)
4 h( o9 V# _* y( w( n# z* Q - (>= ang (- (* 2.0 PI) oblqmax))* b# R* l% F. `- N" U. g+ k
- )# |( m0 x5 U0 N& Z$ E0 f
- (setq valid T). z0 E! U+ z. @) Z' ^
- (setq errmsg
C) k- |9 x6 ] A9 U+ E4 O0 Z - "Value must be between -85 and +85 degrees.")8 U0 k6 D" Q* _' n5 A; E( t+ q# E
- )
; a' G2 J, h; K( C6 U$ {& E - )
% l1 z4 `4 Y% _0 H9 D: M# r - (T (setq valid T)) ; Other angles not restricted
( z1 g$ J% |' t- V0 ? - )
. P- p# x$ ?* m - (setq valid nil) ; Invalid angle input
$ O0 x; l% C4 ^8 i' J* [; A - )
8 d& V5 A8 `* X# n3 K: z - (if valid
: p5 R; N+ s( t: @* f: F) } - (progn4 W& I7 q) t; x; f; s
- (if (or (= errchk 0) (= tile last-tile)): z! M6 @2 \$ `# S- N7 g, o
- (set_tile "error" "")3 ~) \, O) {% [6 Z6 c* ]
- )
. e: l, l+ c; s" O - (set_tile tile (ai_angtos ang))
( R, L/ u3 v9 {( `) ` - (setq errchk 0)" E' b+ \3 v) l
- (setq last-tile tile)
# m. p i5 H7 ~% g6 J# D5 p1 G - ang
8 U+ |" s8 a1 J9 i - )8 J) l$ S! n1 N
- (progn
/ e/ \) I$ @$ o" [ - (mode_tile tile 2) ; Move focus to offending field& A% S2 ]/ H' R. t' p3 f; X
- (mode_tile tile 3) ; Select offending text
9 D% z+ e& e: H. W - (setq last-tile tile)
g5 z4 g: }. T' B6 u - (setq errchk 1)
8 t1 n4 u4 A% ? M# ` - (set_tile "error" errmsg)
6 P3 q- w8 m3 {3 n h+ v- j! s8 m: e7 S - old-value
. Q# b# y% T9 g; z - )/ Q( l+ x! U) l: i) B0 Z) [
- )( q- z( Z! f8 k
- ), e. v4 W+ c& x! F! N
- ;;
/ v- r( b0 B4 @( z* G - ;; Verify angle function. This takes an angle and a tile name as arguments.
2 W6 r) v# l) H/ ] - ;; If the angle is valid, it returns the angle and resets the tile.% r( r5 M$ U: |
- ;; Otherwise, it sets the error tile and keeps focus on the tile.7 O: T/ c8 x- C) @* A
- ;; This function is specifically for the end angle of the ellipse object. If
! j' }& h' D0 M+ c5 } - ;; the end angle resolves to zero then we want to display it as 360.
6 J5 D% F5 r' A& n5 e' K" F - ;;! P+ o. O0 |# u% M3 a9 t2 I9 \
- (defun verify_ae (tile value old-value / ang tempend)3 g* ~% |) K: B4 t) [
- (if (setq ang (angtof value))! T! B; c# ]* m( z4 f
- (progn3 T$ j. D/ K9 l* O6 b' z
- (if (or (= errchk 0) (= tile last-tile))3 ?, c. u! @+ f: x" O
- (set_tile "error" ""): m- z6 Q1 w, Y, S+ z
- )
# e1 u" B& ^5 F0 P5 ~5 e - (setq tempend (ai_angtos ang))
/ V7 q( v! D, ^* e/ d - (if (= tempend "0")$ Y3 \# B. e9 q/ B! F1 S
- (set_tile tile "360")5 N F7 s3 w6 b
- (set_tile tile tempend)- r) B. L' V- w2 g: G
- )
0 F" \. l" ^# F: t$ ]1 Q - (setq errchk 0)' n+ t2 W. M8 ~. A6 E1 F/ x
- (setq last-tile tile)
1 F/ R+ P0 D+ |3 m! L - ang! J4 l9 x9 _$ m" l
- )# O, h1 [% q' f( l
- (progn! f/ b W0 ?. M1 N, S, @- Z
- (mode_tile tile 2) ; Move focus to offending field* |4 X1 s, S+ Q
- (mode_tile tile 3) ; Select offending text
' q7 w3 R2 m$ b0 U5 Y$ l - (setq last-tile tile)
0 i8 q% U8 f. u' _6 O Q8 m - (setq errchk 1)
' ~( _9 S) N! h& \! Y3 n5 x' ?# e - (set_tile "error" "Illegal input value.")
0 Z9 W2 a1 Q3 h* x" V0 ` - old-value4 n& W4 L7 t" @5 C' z( n
- )+ f! b7 o: r1 s# t9 I
- )
O2 _ ~) K5 G2 R/ c# u7 d - )
8 Q! y, K) X+ v, T* p( k: ~ - ;;
/ F- x! F* L. u& k$ Y - ;; Verify integer function. This takes an integer and a tile name as
% O) |7 H" N4 @6 B8 \ - ;; arguments. If the integer is valid, it returns the integer and resets the
7 `% ?5 p0 ^( f - ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
; O+ |3 y, F7 ^1 y4 e* c a1 X - ;;8 t" g3 q, {' o2 H* P* H/ U" @: @
- (defun verify_i (tile value old-value / int valid errmsg)
3 w5 s: {. J. T& k2 N; N - (setq valid nil)
6 E6 j# y( } i - (setq errmsg "Value must be an integer.")
$ J3 `0 w) E1 A, e - (setq int (atoi value))
' d- h& R0 @- t8 h - (if (setq intchk (distof value)), G* B. b- s: K0 F
- (cond
: s4 R3 `% w& g# U% D - ((or (= tile "columns") (= tile "rows"))- t, k' W7 ~9 i: x
- (if (and (= int intchk)$ |- x9 M& p- t- R) E! H
- (>= int 0)
* ~- l. L3 u8 m; d - (<= int 32767)
% r5 Y2 A/ k& ~6 x4 B9 L3 _ - )
/ \: }, o9 I. o; C6 R - (setq valid T), [% Q/ g2 I2 @& ^4 w s3 M# j9 J
- (setq errmsg "Value must be an integer between 0 and 32767.")- z% n% V' V3 ? |1 I
- )8 C: H' I5 \5 V! V5 _
- )
8 _; W2 q, E' k( m% O0 Y - ((and (or (= tile "u") (= tile "v")))8 g% U1 \1 Q% w6 m
- (if (and (= int intchk)* n% s) N# ?/ Q4 v7 W1 ~9 Z
- (>= int 0)& D+ d' T" g9 e! g
- (< int 201)
% e6 h: Y. \0 G* d# u2 a0 n: J - )9 o/ D& \3 R& w2 R
- (setq valid T)
& V' N& Z. L- K - (setq errmsg "Value must be an integer between 0 and 200.")1 F% v. F; @6 t% d8 c
- ); E+ i; o# V! c2 L/ O4 b4 M( W
- )
0 p9 d5 ^* N/ @ - )
* K2 T4 h$ T; b6 I& l% | - )& M' r2 M* J; I& B3 X
- (if valid& c* i4 x, n0 z# O0 r8 d, q
- (progn$ z& ~+ o7 E9 R
- (if (or (= errchk 0) (= tile last-tile))
. l. a- m' R1 a. s: s$ c) W0 o - (set_tile "error" "")/ U! M5 z! O9 f* M4 v# x
- )9 P; }7 G' r2 k1 ~6 [" W
- (set_tile tile (itoa int))
+ U! K8 c" c! F+ Q2 i$ m% f% V - (setq errchk 0)0 M) S! l9 T3 y( h* o
- (setq last-tile tile)! z+ d9 H) Q5 F7 S; |4 I
- int
5 y: C2 f" V* W. {0 H% F( I0 l - )
P8 c5 [# h: Q. z4 r# k - (progn
g; n0 e# Z0 K0 @; P - (mode_tile tile 2) ; Move focus to offending field
( T- B* k+ q/ }5 ]. C, z - (mode_tile tile 3) ; Select offending text5 b! f) v8 b" O6 h+ x
- (set_tile "error" errmsg)
1 G( O5 e3 F- ]) W. ? - (setq errchk 1)
/ ]4 G. s- r' |" V - (setq last-tile tile)( h& F- i' _# T% r7 s) L
- old-value& f4 g$ J4 I! j7 e
- )
; I/ y* r* v3 i+ Q7 U' v' D - )- x( x2 N0 h, r0 E# [
- )
3 n" y- x! ~) S3 p3 ] @% P - ;;
3 ]5 S8 z( w. |' ^/ q. A' a) l/ S1 G - ;; Functions that verify tile values for integers. M6 Q5 z% W5 f) p) ]1 }/ G
- ;;% p4 T) z! I" g' d1 h) ]. B
- (defun ver_col (value)
2 w0 t; K+ _0 v6 F3 S" e+ p - (setq columns (verify_i "columns" value columns))& W8 \" z+ v/ `; B3 G
- )
7 C- L5 ~9 d* i- z - (defun ver_row (value)8 b( ?1 a9 m2 J0 S& ]7 d8 A# ?
- (setq rows (verify_i "rows" value rows))+ G9 O2 g1 [+ v* B, k5 \
- )
& y: x# n9 S9 O) H7 o. z# g1 n - (defun ver_u (value)/ X8 O1 T4 f) _3 W& E
- (setq u (verify_i "u" value u))
, B+ N$ d) Q) H% D - )
" I3 J# b: u) H9 d( N+ ? l& Z) Y- Q; N - (defun ver_v (value): X7 A( N6 v* ~
- (setq v (verify_i "v" value v))
! l0 X$ E) w) U& O - )1 L6 ]/ \0 L, k1 ?
- ;;! H9 h8 t' F& f+ o5 I/ o
- ;; Functions that verify tile values for reals
" p2 F% m& R. e6 Q$ H: T - ;;
$ F, F# l5 S* F' L$ V+ a3 G- J# n - (defun ver_x1 (value)
. m( R Q/ P' D0 d - (if (setq x1 (verify_d "x1_pt" value x1)) (calc))( W$ b' w0 H( l; N2 \) E1 D2 Y
- )
. A$ E2 M$ J0 m: z - (defun ver_y1 (value)
s: ]% c/ Y9 w+ O - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
+ n+ e+ b- z% r1 L' F - )
* ~9 f) i" g" [# g9 y - (defun ver_z1 (value)+ I/ a- z2 W+ b
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
* w, z3 L( H( B2 W+ b/ _6 ^ - )
! v6 }$ M4 j( h- k - (defun ver_x2 (value)
* S3 e* h8 m. P! N# J1 L! ^ - (if (setq x2 (verify_d "x2_pt" value x2)) (calc))' n( z0 Z5 [% U4 o7 p( |* w3 j) n
- )
; _" z6 z6 ^4 x6 K - (defun ver_y2 (value)* [6 {/ s& O+ I: a2 f: w
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
( |; V6 b4 A7 \# @ - )
' s- n A' B m2 B# u3 a3 X8 o8 K - (defun ver_z2 (value)( ?) W6 A0 v% b$ V W
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))$ W3 f( _; b# D/ @3 H
- ); D: q) C9 @( i8 V% [* ^, I$ Z
- (defun ver_x3 (value)
# a( q0 O$ Z$ i7 z7 u - (setq x3 (verify_d "x3_pt" value x3))) }4 e! z/ B. ]1 b' f; u
- )
, t" G7 `# [& p* u- L - (defun ver_y3 (value)$ J3 c7 o& T5 g$ B
- (setq y3 (verify_d "y3_pt" value y3))
" S6 S L7 s; I - ), R `, h$ G! o* O B
- (defun ver_z3 (value). {3 {, [9 {9 y& X) [8 t1 n% q
- (setq z3 (verify_d "z3_pt" value z3))" I" g9 i& z8 j+ D; H6 R6 k6 a, {
- )
( N% P0 b8 r+ I. v2 |- K" a - (defun ver_x4 (value)
5 R/ i D' l8 h- M+ G* d4 [+ u - (setq x4 (verify_d "x4_pt" value x4)); ~- l# x& j, I2 Q1 X
- )! h) Q& Y8 P$ X- G' Z) A
- (defun ver_y4 (value)
. t6 k/ ~& F3 [" w5 X6 j/ {8 d - (setq y4 (verify_d "y4_pt" value y4))
9 ]. }) B) K7 O" L" x b3 W8 l - )- {3 t+ I& C" Y9 x& i- Q
- (defun ver_4 (value)* ?+ I, U" w6 u" z5 t: D' |
- (setq z4 (verify_d "z4_pt" value z4))
5 P- k: D; |% A7 z) U - )
6 e3 e" J3 @8 N, [ - (defun ver_xscl (value)- x6 w! B t$ I) ^6 G! [
- (setq xscale (verify_d "xscale" value xscale))
4 v! q/ _* K1 y - )& Q- G! a3 V: L
- (defun ver_yscl (value)8 q9 ] a9 c: S$ H- n2 o, i$ ~
- (setq yscale (verify_d "yscale" value yscale))
' v7 s8 i4 e$ H: U - )& k/ U% }% S7 w( v% ]2 O5 u' M
- (defun ver_zscl (value)9 d; G) C2 ^% a+ }2 F3 D/ ]
- (setq zscale (verify_d "zscale" value zscale))' A" x9 w. \9 D! v( f
- )0 S6 K" r& z: m& w# c
- (defun ver_colsp (value)( A( C! j/ T- ]5 @) K2 ^
- (setq col-sp (verify_d "col_sp" value col-sp))( r( X7 A" T. M- N' X# j. A& g$ A
- )
. T9 @: ]7 Z& J4 ~8 K( Z - (defun ver_rowsp (value)
; Q# a; x% Y1 k+ r; D - (setq row-sp (verify_d "row_sp" value row-sp))2 ?6 {9 q9 ^( p/ T
- )
# k `5 v& h* r( j% B- F( l b0 J& R - (defun xclip ()
7 v' {$ z6 n9 k8 ] - (setq xclipmode t) a: ]0 N! P' n7 l; U" u
- (if (= xcliponoff "1"). V' ^6 [. J' g; z
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
/ Y, k# q2 l! G. F/ k/ _ - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")
' V8 }! t9 E' d: V& D, ?) r4 ] - )# c" }% c9 y" p1 }
- )) b5 @# ~! a3 d7 J& T9 O3 E
- (defun ver_rad (value)4 a5 u) f. k' _" c1 ] F
- (if (setq radius (verify_d "radius" value radius))
5 o) B9 b* K- u - (calc)
: E& a! B2 U+ @/ a, N - )
- R( h+ R6 s% L; h4 E - )/ S3 ]( q+ i) c$ r4 ^( w
- (defun ver_majrad (value)
2 R9 J c( l7 P - (if (setq majrad (verify_d "majrad" value majrad))& s2 B8 v4 @/ k5 o5 E
- (ell_calc_newval "majrad")
6 I6 C: [3 t, d5 q* q - )
* C. O. T! z0 }: z8 P! D1 Z' ?) G2 w - )
5 o3 n/ ?4 A6 W) X$ |0 r - (defun ver_minrad (value)
, d2 {2 o0 m \: g! ` - (if (setq minrad (verify_d "minrad" value minrad))1 b3 B4 n5 q+ B
- (ell_calc_newval "minrad")7 Z' I- E; @" V
- )
9 H/ @" e) \2 b8 k5 Y! c - )
( J6 B3 {* @1 D) s/ k4 \ - (defun ver_hght (value). c# |) N3 c; R9 H2 S* {4 x _+ _
- (setq hght (verify_d "hght" value hght))
1 i& |/ } t& }$ P7 }7 l - )1 Y2 [2 H! ?! @0 Z$ y6 Q
- (defun ver_wid (value)( P$ K4 \6 u+ K. n
- (setq wid (verify_d "wid" value wid))
5 q% {! l, s& b0 h1 z- c - )" h+ W/ e) t7 t6 z6 Y3 t+ @/ I
- (defun ver_xline_x1 (value / temp)+ x- M: y8 y" ~/ y+ A O
- (setq temp xline_x1) B1 }# a# j# |8 f) K: R
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))4 ]* H1 [9 Q+ D
- (if (/= temp xline_x1)
3 ]+ T. @. f k* O: @/ F7 ] - (progn (modify_xline 0) (set_tile_dirv) )' ]% H4 q* b. F9 H' z H7 K) E
- ), v; m+ P9 {8 b" |
- )
1 o h# z' ` [. q - (defun ver_xline_y1 (value / temp)- ~4 a; @% ~* P' k- Z' q
- (setq temp xline_y1)
9 r7 Y3 A2 P9 b - (setq xline_y1 (verify_xline "xline_y1" value xline_y1)); R" V, L/ V* X2 Y5 T
- (if (/= temp xline_y1)8 k: m$ V! T6 H: B
- (progn (modify_xline 0) (set_tile_dirv) )
9 B. N: L) z, b, B - )" T I2 v9 W& O l
- )
: P5 ~4 q+ e) x- E' H - (defun ver_xline_z1 (value / temp)% J$ l4 S, K X/ A5 J8 R) X
- (setq temp xline_z1)5 Y- Z( M, Z% B$ U& {
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))) h* z1 Y) t6 ?: n) W K) i1 i
- (if (/= temp xline_z1)% O0 } i% w3 D7 D1 I: _1 a
- (progn (modify_xline 0) (set_tile_dirv) )
& d( E5 C' i# ^/ ^6 ^* y9 H, e - ): U2 h& W0 K( F- w& z* V g9 j
- )
, O0 P) G6 @( ?! f - (defun ver_xline_x2 (value / temp)
0 Y3 b" h9 w* i* `# B: p - (setq temp xline_x2)1 d% {+ r$ _; Y$ z/ p
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2)); T ~: N7 k: N' J) u! {
- (if (/= temp xline_x2)
+ L$ o4 u4 M: l& L0 t! D4 d0 I - (progn (modify_xline 0) (set_tile_dirv))
" p$ h) ^* U6 h - )
* h0 T( q6 c: v2 Z - )
% E4 i9 V2 e' i - (defun ver_xline_y2 (value / temp)0 o7 p* |3 ~/ t# y; T1 c0 a
- (setq temp xline_y2)8 |* ]( Y. j- B; g
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))3 ?3 D" l5 D0 I Z; m
- (if (/= temp xline_y2)' a% k& m; p2 z( e2 A! G+ g
- (progn (modify_xline 0) (set_tile_dirv) )
5 f/ \* K8 R" Q+ E1 O. Z - )5 `# T- X! F+ {0 g/ N
- ). q8 A! h' K7 x+ ~) M/ l, s% W9 x% W
- (defun ver_xline_z2 (value / temp)
, o0 X% j A) U: k- `/ s - (setq temp xline_z2)4 z4 ?$ f/ R) a7 m6 u
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))4 T( ]1 ~: ~3 v- P
- (if (/= temp xline_z2)
# y! d2 l$ G H, ] [, I - (progn (modify_xline 0) (set_tile_dirv) )
; h! k6 O! L/ l; ]7 G( y, T - )' h7 C0 W% P& ^ c
- ). d; }: T: r; W! z( u. M% u3 [
- ;;
( X$ {" E2 _+ }4 _6 D6 N; C7 j - ;; Functions that verify tile values for angles
9 n0 q. ~$ \2 Q; o - ;;
4 E, l) Z- D& N1 T+ X% i) a4 P - (defun ver_ang1 (value)5 X9 [% [$ G2 e
- (if (setq st_ang (verify_a "st_ang" value st_ang))3 R# Q8 p) H$ f8 }7 _
- (calc)
+ `8 R5 F. B# P& B K - )( P5 g; A3 [# g" b" t+ U
- )# c! m4 x( }5 P+ |% L5 p7 E
- (defun ver_ang2 (value)0 | B2 P, R$ n C$ t+ Z; r" a, x, [6 O
- (if (setq end_ang (verify_a "end_ang" value end_ang))
. ]9 v- j/ o6 G - (calc)
- j6 H1 ^" a- ~; ~* X - )6 `0 g9 s* t8 R; c
- )% H7 R. H8 u' Y/ [8 o9 P
- ;;
0 [0 E) F, h5 U- {: ~! ^ - ;; Verify tile value for ellipse end angle. Handled slightly% {$ J9 z2 V2 o3 u0 j" `. [& V
- ;; differently than the other angles.5 ?, t, O) k v7 M
- ;;
( W- K$ J2 u8 ?& g - (defun ver_eang (value)
i0 t" h! y: w! W0 [* n2 k; a - (setq end_eang (verify_ae "end_eang" value end_eang))
& m% M5 J! n* c4 S8 p/ P p8 { - )
7 z1 S) ]; C& s: b s, t$ y - (defun ver_rot (value)$ O% r$ r: [$ p' _
- (setq rot (verify_a "rot" value rot)), c: \+ ?5 F {6 ?( F' z, G- N
- )' ]6 n3 t2 j& ]( E/ v/ F5 P
- (defun ver_obl (value)
! q2 a! o" c7 A - (setq obl (verify_a "obl" value obl))
; t, s/ H' J; y% V - )5 a5 I1 K+ T9 S- Z) O
- ;;
/ e# _' B0 g2 t; l- r; [ - ;; Function that verifies attribute tag field for null string,
& X- |2 D% e: H0 v - ;; or a string that contains one or more spaces. Tile value8 n" d, |5 X# `9 B5 c3 a5 D
- ;; is also converted to upper-case as well.
7 |, ]; b2 Y! c8 l4 r1 `5 y! Z - ;;
9 T9 q) @; R2 K) W; G! t) m - ;;
2 f9 s$ K! T8 j1 M( @- P9 n( A - (defun ver_tag ( / tval)5 x" K6 Y5 R0 I0 w- a3 h; v$ Y7 r! U {
- (setq tagval (get_tile "tag"))
; l3 U! o& x; i4 D) r - (set_tile "error" "")
" d( ]6 h/ B" Y$ l `4 Y1 @) o6 n; B - (cond
/ U( I( U7 ?0 C+ v- W# q: k' f - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
" `) ^1 f/ A% F2 q1 e6 |0 \$ M; f1 d - (wcmatch tval "* *"))1 v- K! f6 H: I# q8 d6 o/ k
- (set_tile "error" "Invalid attribute tag.")
2 _" B% X3 n0 ] - (mode_tile "tag" 2)$ k! _! m% D8 ~! [( E' ~
- (mode_tile "tag" 3))
& q+ q$ f' t( N9 J' t - (t (set_tile "error" "")
) I0 S8 a' W1 Z7 ?8 G - (set_tile "tag" tval)' d* }9 e: j1 M
- (setq attag tval)))+ Z- }# q* t/ y0 _( {3 e" v
- )
" t4 u8 l, G2 _. m ^2 k- [ - ;;
& N4 `' O1 I' X1 d: @ h - ;; Calculation functions
7 ]& h: `4 _0 C" c6 b! S- { - ;;2 J3 e+ E! g+ U4 B% F
- (defun calc ()# V7 E6 n3 |+ |0 c5 F
- (if (= etype "LINE") (line_calc))
! P7 S: m. I8 t) } - (if (= etype "ARC") (arc_calc))& g3 v1 F( J- C! | U
- (if (= etype "CIRCLE") (cir_calc)) D1 l. ^, y6 u1 W! G* z
- ); _6 h. S4 h' [9 N: J) Y9 X9 k
- ;;* [/ t3 W. j; @1 i( N
- ;; Calculation functions for lines, arcs, and circles
- @+ q7 @4 E" m' }$ W' {0 l# k- J - ;;
( B5 z, l0 D# b - (defun line_calc ()4 H3 O: d1 _; Y6 Q1 t' L
- (setq stpt (list x1 y1 z1))
) \' ~- A: Z4 L- i7 Y - (setq endpt (list x2 y2 z2))2 ]1 I! d+ C) h' s& w* o
- (set_tile "delta_x" (rtos (- x2 x1)))
) ?" v+ A0 D7 Q5 n- ?" t - (set_tile "delta_y" (rtos (- y2 y1)))$ ]% F1 x" d3 K$ @' s& D
- (set_tile "delta_z" (rtos (- z2 z1)))
# i3 }6 u; B& z, }8 u - (set_tile "l_length" (rtos (distance stpt endpt)))7 @: U, l7 ]) _; c1 l3 W
- (set_tile "l_angle" (angtos (angle stpt endpt)))0 G ~7 D, r( o) W _, z! L$ [" s
- )
. Z8 B( O4 {% a" J. l5 s- ^) [! G - + b4 Z0 G! B! A9 a& {
- (defun cir_calc ( / area units)
4 K2 a, A" f$ i* c1 g5 G - (setq radtest radius)
- a0 ]/ [! x+ {( g - (set_tile "Dia" (rtos (* 2 radius)))/ d0 _5 F- ~1 Q* ~; G8 j0 _; N" Q7 G0 l6 C
- (set_tile "Circum" (rtos (* 2 pi radius)))5 j, ]) A( f* V# z# o% c- ?
- (setq area (* pi (* radius radius)))
- C( q& K1 W2 B2 L% n7 O$ Z+ k - (setq units (getvar "LUNITS"))
: `1 ~* t5 B* ]. ^) r' L0 ? - (if (or (= units 3) (= units 4))
6 ?: T. n8 L& q$ o, o# j - (progn7 ~% P( y0 |8 `1 x
- (setq area (/ area 144.0))# \6 r9 y3 v# f9 y! w, D
- (set_tile "Area" (strcat (rtos area 2) " square ft"))
K& W& i/ p3 t4 U8 P$ p - )
K( C) b5 v( K/ c# Q4 Q. W - (set_tile "Area" (rtos area))$ K: C# M) f# g4 ]: S8 k
- )
+ G G- z6 M; [& @. V - )
/ d2 `' H& J% e" R8 g
! s2 W. ]* J) a5 E- (defun arc_calc ()2 q, z6 r5 |5 S6 a
- (setq totang (- end_ang st_ang))# J9 k) d& D4 `' v" z5 s
- (while (< totang 0)
9 h& }) g, e& N2 w - (setq totang (+ totang (* 2 pi)))7 r+ S5 I% p& B
- )9 v% C2 w5 a0 j. I0 g& a7 {
- (while (> totang (* 2 pi))
4 h, R4 a( O, a; Y+ {% ^ - (setq totang (- totang (* 2 pi)))
" A1 D( L3 a: O, f - )
7 D: A. K2 I) L) |2 K: F - (set_tile "tot_angle" (angtos totang)). f9 s' f4 N; o
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
' k3 s7 U1 j; K" V9 n7 o - (set_tile "arclen" (rtos arclen))
5 G! R+ b5 V8 D1 v8 [: | - )
4 b; X* s' A: u4 d8 G6 R3 J - ;;
6 | O" B+ \ }. p7 O/ x( S - ;; Calculate the major radius, minor radius, major axis direction.
- I. y& T$ E/ I: P2 e( d o: f. { - ;; Get radius ratio. Convert Start, end parameters to start and end
4 H* U4 E9 t5 \0 F& f - ;; angles. Save Major Radius value in "old_majrad" in case the user) z+ a9 s) ]6 e. g
- ;; chooses to input a new Major Radius value later. It's needed to
6 f/ @/ e7 O3 v3 q - ;; calculate a new Major Axis Vector value.& f4 a# n/ `. w/ t+ `, t' W
- ;;
8 l) ?( B5 G$ g - (defun ell_calc ()
, _+ W7 `) w0 K3 _9 D* n/ T5 r5 O - ;; Get major radius from the major axis vector.
& _6 M- Q% V$ L4 W2 M A - (setq majaxis (cdr (assoc 11 elist)))
$ C9 V6 c# K9 L7 [ - (setq xx (car majaxis)): ~" x% A- K* o" C
- (setq yy (cadr majaxis))" k$ Z2 L( Z' @/ o
- (setq zz (caddr majaxis))$ k) a* x0 i2 w$ k/ m# g
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) ))); l* i/ w. j4 X0 ~" R
- (set_tile "majrad" (ai_rtos majrad)); W; Y9 P( M5 O, o
- (setq old_majrad majrad)
/ Y* B, G- g* L+ K2 |& N. b - ;; Get radius ratio8 |2 d6 M* b+ N" v$ w. ^
- (setq rrat (cdr (assoc 40 elist)))
, D3 C6 T3 c; Z2 S5 W - (set_tile "rratio" (rtos rrat))
6 f) H Q- n( h; J- ^/ t& @ - ;; Calculate minor radius+ C8 a' t- s- }7 {" b2 Q
- (setq minrad (* majrad rrat))
" J+ B7 N" Z# z# m( I+ Z - (set_tile "minrad" (ai_rtos minrad))
; m- b! v4 V9 q4 d# y6 \% G2 W* E - ;; display major axis vector
) J$ q' Z" ~& [2 J z9 d% ] - (set_tile "Majraddirx" (rtos xx)). e' s9 N1 S5 W! j9 F$ t$ n- r
- (set_tile "Majraddiry" (rtos yy))8 o. F2 X' @& V/ G; g+ h
- (set_tile "Majraddirz" (rtos zz))
6 Z; @1 n, {- T( D Y1 A F3 } - 1 r: q% U0 v4 M. ~5 V
- ;; Convert start parm to start angle
6 J ~1 `- P+ ]$ i" ~" G5 [ - (setq stparm (cdr (assoc 41 elist)))) F3 \3 V6 x+ ]% T* |
- (setq vecx (cos stparm)): V' x5 K6 m) w7 K. y* S& t/ r5 E6 V
- (setq vecy (sin stparm))" \' p) a* D. X! z x. Y o
- (setq st_ang (atan (* rrat vecy) vecx))
% N* I. N5 K+ \+ W3 n. A0 C - (setq tempst_ang (ai_angtos st_ang))
" W; V. I2 o6 y" i9 S& U$ M - (set_tile "st_ang" tempst_ang): \ J. Y2 r+ A0 K
- ;; Convert end parm to end angle. If end angle evaluates to 0
: X$ h' g1 ~. w P! T- } J. t - ;; degrees then display it as 360 degrees.
. H+ U# A8 x: Y! g: u+ M - (setq endparm (cdr (assoc 42 elist)))
; A/ ], d* C5 S( C& P - (setq evecx (cos endparm))& |, v7 B1 X* { U- y1 |) T
- (setq evecy (sin endparm)), X/ j# z3 }' C6 o: g3 i
- (setq end_eang (atan (* rrat evecy) evecx))- M b7 N% j9 d, A
- (setq tempend_eang (ai_angtos end_eang))
* i! N* Q+ K; L7 L8 B3 N% s8 R% ~8 l - (if (= tempend_eang "0")6 h& j* `/ b: e4 i1 C" Y
- (set_tile "end_eang" "360")
* b G5 z% r- y; ^( y - (set_tile "end_eang" tempend_eang)5 C) ?/ x6 s6 n) G
- )2 ^% n, | Y4 U
- ;; Get area of the ellipse.* O6 A* ^1 L! D: Y, f! c( k4 M1 j
- (ell_calc_area)5 p, J* D# v% h
- )
9 o$ R/ w. N" Z) ^2 w - ;; Calculate area of ellipse. If it is an arc then$ A- _; t7 T7 O/ y% k. b
- ;; grey out area display.$ d: F% L1 U5 T2 o& N6 {
- ;;
8 e( i/ I( J3 g8 |4 }5 }3 l - (defun ell_calc_area ( / area units)3 `: R8 }5 r0 O: }- U
- (if (and (= tempst_ang "0") (= tempend_eang "0"))
# U- n: k; p! }0 N5 c - (progn
6 o& d3 j* ~& ^ - (setq area (* pi majrad minrad))* u5 C* J; G5 r+ E3 x: c; ?
- (setq units (getvar "LUNITS"))
. i [0 F& p* _% g: p - (if (or (= units 3) (= units 4))
- b7 o. Q1 M" {6 T5 E) x% k - (progn! x9 D3 o6 y: Y" I
- (setq area (/ area 144.0))
: N/ j! Y) ^8 z) S: J' X - (set_tile "Area" (strcat (rtos area 2)" square ft"))
& X8 E& {0 {2 P, k$ ?& a- ^1 Y# _ - )
* o$ R: c7 s; ~9 [* z" U - (set_tile "Area" (rtos area))2 t3 p( m6 N4 A) C! V
- ); n' t- z S! r6 h3 I J
- )
; w- ]6 T( y+ Q1 e - (mode_tile "Area_text" 1)
* G# O3 q. R- W6 i+ t/ p' } - )
" V* \) h" H9 H8 M" W - )# p! G& S9 Y5 \* R. ~. Z% H
- ;;
' O" ]4 _+ L* ?8 p4 @3 X" j - ;; Calculate new values for ELLIPSE; K4 ~: ^% e7 _ B3 E
- ;; Minor Radius, Area
& F$ U$ d% J4 r: b0 U - ;; r, A" G* {% j! U, n
- (defun ell_calc_newval (ell_tile) Y: Z3 U ]- V, z) T( k, k
- (if (= ell_tile "majrad")
: ?8 q, C2 l% J1 |& y0 _. J - (progn: z7 g% u3 a0 b6 R' C
- (setq rrat (/ minrad majrad))! c! _! u+ C8 Q; W w6 Z* X& c; G) e! k7 C
- (set_tile "rratio" (rtos rrat))4 A0 h7 a, Q5 |9 p# v0 m3 {: I
- (ell_calc_area), B* U( v% M( q$ O
- )
t8 b& W' e' }: c - )
/ X- Z& a7 Z9 z0 e - (if (= ell_tile "minrad")
; K9 S5 j; P' G' T, V( Z - (progn( \& W8 C5 q* L3 F6 C
- (setq rrat (/ minrad majrad))* N, P/ @1 i. c& A' w0 ]' j
- (set_tile "rratio" (rtos rrat))
% ?- z& v0 |1 [. @6 j D - (ell_calc_area)
; K3 p$ A9 A/ L' Z8 m# V& k1 x - )+ p. C( V6 J2 A4 ~6 c5 V% {1 g
- )% R* z0 ~1 ~. J
- )$ p5 B# O8 X$ ^- @# k( b0 K
' ]8 U; k8 u: N7 g! P- (defun set_dimen_props (/ loop a stl txstyname)
. n* ]( L8 h$ i; ], A
6 D D, d d8 \4 }) ]- (setq stname (cdr (assoc 3 elist)) ; get style name- J$ \6 ]3 H# ?/ q8 O" [8 ^
- stl (tblnext "DIMSTYLE" T)
5 }6 f1 i( d; p; h3 [" F& _ - stlist nil)
u# C# [7 X5 V. K; _9 D - ;; Get all style names and list them in alphabetical order, M0 T4 K& b; X+ \9 F
- (while stl! T K( d; t4 ]4 S6 t
- (setq sname (cdr (assoc 2 stl)))( X) j" D2 U# w0 o9 P# |
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
/ {# ~. ^+ ]4 }0 L. r7 J0 ? - (setq stlist (cons sname stlist))), l% d& S0 |+ z( x; D5 F
- (setq stl (tblnext "DIMSTYLE")))
# ]& `: B2 h+ l% q* o( W) a$ b
; E8 T9 z( s$ B% Q+ c6 J- (setq len (length stlist)+ b) ?& {% ]$ h2 w J/ f
- loop 0
" l$ W J1 W& n* Z - dimsty stname1 T3 T/ }) R o9 V }9 s% L
- )' W) K$ L: k, D8 I& N, E
6 D, z6 k) `( z7 ^2 D( S- ;; alphabetize style list, depending on maxsort
& H, G) B* q0 _; H W+ Q - (if (>= (getvar "maxsort") len)
6 G; s0 M& X8 q3 x' b$ X+ ^ - (setq stlist (acad_strlsort stlist))
( G4 h5 ], T$ c - (setq stlist (reverse stlist)))1 X" l/ W$ F3 o1 y) [- }! f5 _
0 ~, _5 |% m4 Z1 Y; \* s- ; *UNNAMED style (dimsty = nil at this point) is replaced with. {$ v2 i" I3 |5 Z
- ; the current style. After R13, we require dimensiosn to have a
4 ]2 k7 K: M/ L C0 U6 q - ; dimstyle, so we plug any holes where we find them.% G+ O2 O- @5 u. A( R
- (if (null dimsty)
0 c* {; ~7 Y/ x x# g5 m - (setq dimsty (getvar "dimstyle"))
1 D7 U- N' v6 G$ E7 e: _" p - )8 o& d, V s7 [* N0 Q
- ; Show the styles in combo box
% M# o: |$ |- i: v/ ` _+ c5 ? - (start_list "mod_style" 2)+ ~/ x7 B7 I a H
- (while (< loop len)) x7 ^) y: |/ c9 U
- (add_list (nth loop stlist))
# i0 r- [4 x9 q. G - (setq loop (1+ loop))
1 J q2 U& ] J4 k6 p - )
% T3 U; Q/ @) A6 K" Y; ] - * t9 D- P' m2 ~) H
- (end_list)
; i9 H( D* x0 j- J5 B/ Z
2 Z5 z {. Y' A, M5 s- ; Hilight the style name of the selected entity3 L8 ^: O6 n: j) q5 Z O3 g. y
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
# Y2 f1 c: e# d* F! x( D. `9 m - (setq loop (1- loop))% F) s+ l0 M- m3 f! D' T0 U
- )
& b$ q2 j4 }: a" V+ ] - (set_tile "mod_style" (itoa loop))8 t2 Z/ o5 o' a* C/ }" n( q
- ! X! k* I# L: P, O1 [
- ; The following is the list dimvars. It must be sorted in the same9 c/ U1 O+ o( `* q; _. i# Y( e! W
- ; order as the resfub returned from DDIM (ADS module).
1 \6 \0 R( _0 F# Z6 ]- v9 I - 9 d' x N# O3 U, G5 Z; u% I+ _/ R
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"7 U9 a! D) }3 _
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2" g* D4 l6 G6 w1 ?2 ]
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
# d' `, y7 u3 ^! F% X. c% ~' A - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"4 B3 ~& m" q% p
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"! J. l+ m1 ?' \: F
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"1 l4 D1 z' r8 \: n# L
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"' k6 X5 d, w5 M' O
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"; r5 ]) J8 o' K% Q# \
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
9 [6 O* A7 p; v0 U - "dimdec" "dimtdec" "dimaltu" "dimalttd"
0 x% m" j% r+ G/ |! x3 a" [0 U - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
3 L; K, |7 o3 H2 s" ^. |. Y: ? - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
/ q# [% |2 q9 I& E7 U. X/ m- p - "dimtxsty"- j g o! C5 e9 W( b5 F
- ))
6 Y) m( c& D+ g2 Q' }1 P* [2 M - (progn, C! w& C" M9 [- x, g' h- ~, S5 q* `2 v
- (setq sv_dvlist (ddimen_getostate dimsty)
! T) d0 z# J! \: g% q# H( N' G6 K - txstyname (assoc 340 sv_dvlist)
; Z4 n; B* r# x. J( K - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
5 \! z" ]# _* X0 s! C8 x - txstyname sv_dvlist)2 Q; K% Q! u) ^; s/ K* }/ o
- dimlist sv_dvlist
1 }: d3 y% b; {9 u3 g/ l4 B - )
4 W" b9 R& s' y0 A - )
4 ~$ j* W" L& M E - (if (= dimtype "DDLEADER")
3 c) F- Z) }$ J$ n Z - (mode_tile "mod_format" 1)
/ B& J1 ]) T3 j - )
- s+ A2 @( D! G - (action_tile "mod_style" "(setq dimsty (ddimen_style))")
4 l9 J4 j* P* x - (action_tile "mod_text" "(done_dialog 4)")) K( @, f2 L% D# X
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
4 l3 F; l. U S9 q6 Q& X* w( W - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
- w6 ]- B; R m$ J0 U/ P( @! s - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
. H' W. M$ `8 Y1 [+ ^ - (action_tile "accept" "(done_dialog 1)"): e5 `* p/ M* _. U/ D* D
- )
* }( c5 r4 D9 _* p; r - ;;
- \& f* A1 w7 |- i7 ]# J/ s - ;; Get dimvars that have been restored.
. A- P1 V8 N( g+ p5 i$ Z - ;;$ p: J, v+ ~$ b& L. B* D9 H) |, _; l) d
- (defun ddimen_getvars (/ elm dvlist dv i)
9 p$ I3 t( {/ J' X% M, x - (setq i 3* D2 q7 v. S' e. m$ s6 ^
- dvlist (list (cons 0 "DIMSTYLE")
, S, U- o( g7 F X( g& ^) Q5 j - (cons 2 (getvar "dimstyle")) (cons 70 0))
9 k; Z1 s5 j2 b V8 ^ - )4 n; x, b0 H. N1 |2 {
- (while (setq dv (nth i dimtbl))
# T) ?1 O0 E `+ T4 x - (setq elm (getvar dv)
( L8 R' o8 n2 }- o d. R N: F# H - dvlist (append dvlist (list (cons dv elm)))& p% c/ W# y$ _9 V; F1 M
- i (1+ i)
' N9 b/ T1 o, W) F - ) e+ P% S+ Q0 ]; V, N$ z
- )
& X, d$ T* u2 d" i1 r2 ] - dvlist/ O7 M' e+ x! y3 Q: o# ], D
- )
; o% Z* H K6 N# k3 X8 ]. u - 0 o7 g5 E0 ^/ X5 e" |" t
- ;;
y, @ A1 H. J4 h1 E5 B* b% y' Q' K- g - ;; Get the original states of dimvars. This is for DIMENSION entities.: I; U2 |' c+ Q" Y
- ;;
* |. t7 V! U* |! o - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)8 h8 h: K7 S/ l) T& W+ t+ k
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list9 p% s* P0 _' B
- dvvars (ddimen_getvars) ; Get dimvars for that entity
3 d) Q8 u* A+ C- E& o - i 12 i. C% L7 {3 }+ A9 H
- )
, \, l/ L, s8 R - ( S7 C0 F* P- J `. ]$ B/ Y" Q
- ; Create a list that contains values of the selected entity.
+ O' p" {% q& C
k& ]9 p: L* S" E: N. O- (while (setq elm (nth i dvlist))
% E5 I* e& ]5 w; c8 @5 e- O - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)" G+ H( X2 C6 w4 m/ M6 t# T
- i (1+ i), s7 }7 |7 \; |4 q5 K
- )
! a) [) G; W1 V ?: V - )
0 P( D) d. W% N' y" G. {, | - dvlist9 L& ~4 ]! z0 W) V9 Z' ~1 H
- ). x8 O9 }9 n5 q) y$ Q2 N
6 Q4 v7 D* n+ M- ;;) Y( X' f# y4 o. D; v$ d
- ;; Restores dimvars of the selected enity.
* r2 U# }' f8 n! K$ _ - ;;
5 D! F0 h1 r2 e2 J1 G - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
. q c y$ e# k/ a L - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
9 c% A. j# V3 o- d, U* \$ { - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"1 {- |$ J2 O( s
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"" l, A5 f6 ?# x0 J; C% R; V4 l
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"9 ^1 {7 x7 X( Q
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
( C# f" I% o; V5 s1 n! e8 F1 _0 P N - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"! ?* h( N. B5 G& E4 l
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"/ w) g. B% ?; [4 f6 j% O- b
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
) D) B u8 P. g3 }8 G+ l7 P - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
# m( O4 {. G- ? E8 D6 a/ a3 A8 e - "dimdec" "dimtdec" "dimaltu" "dimalttd"
8 l$ n& ^0 m( X0 ^ - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"6 O6 ^$ @4 M# ?% d; Z7 n: U/ I, W
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
. ^/ B' d" V3 Y' t - "dimtxsty"
9 L5 t$ m5 K B P) w5 R/ p - ))
. @* \% \: T$ b8 F3 R) \$ V - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
% n! o: X+ ?) K3 o& y1 D - (progn
. }& q0 F- A% Y8 p* I; w - (setq en (cdr (assoc -1 elist)))
. c+ C7 W; G/ X! d9 j+ W. s" _ - (command "_.dimstyle" "" "" en)7 u7 D: ]0 ]: A6 v. }) E8 Y
- )
9 ~/ W' B: x* Z - dimsvcurset
' R2 h3 ]% m( _+ n4 M/ Q/ M# f - )
* I7 I' U( n1 p# k W1 F0 l - ;;
' e: Y4 h; {6 a6 g, V7 n - ;; Modify Leader
. C! g% q8 i, I% m0 r - ;;
8 b6 X" w+ C0 \' d! P9 t' e+ K - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
' C: X/ O1 E, ?2 L9 |* _ - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
6 A- f d% D1 f$ P9 ^& w - dimtype dimsvcurset)
% K- d, c% L) \" z& J6 o - (setq dimtype "DDLEADER"
" I/ |8 b9 r0 N4 d - dimsvcurset (ddimen_dimsty_restore)9 I& D$ h g" i9 U5 T! `
- )8 k& f4 ]* v2 F8 g
- (if (not (new_dialog "ddleader" dcl_id)) (exit))
9 E) X; }( }% Y/ a$ @ - ;; Set initial tile values( C9 v4 d+ P; W$ p5 D
- (set_tile_props)9 b' Q4 [& r, M2 ?5 s+ i" g; [( Y
- (set_dimen_props)
* m: ]: s( [. `/ k4 x - (set_tile_handle)% {* x6 P+ |. h+ q C3 G
- ;; Define action for tiles4 P* h9 i/ k% N. a1 v, O: w
- (set_action_tiles)
2 |; y: L( u' Q( _! A) s/ T - (mode_tile "mod_text" 1)! E8 z0 Z# Z) Z* u5 o; x H0 a
( u! d1 z7 _1 d# k1 G- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
# J$ r; H4 |0 g3 i - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
5 N+ G. k$ [* e ^/ ~, v$ k - ;; Get ARROW and TYPE.% l. G' C) g3 |8 ~+ y; X) v# Y
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1")); m9 ^9 V! G% {' k
- (if (= 1 (logand (cdr (assoc '72 elist))))3 r1 Z. p4 j5 r7 a9 C
- (set_tile "s-s" "spline")
1 P; c5 N) ?3 v - (set_tile "s-s" "straight")
$ L2 T& f- p" B( ^& X9 s - )- M" z2 U/ N# b' J
- ;; Start the dialogue.
+ w1 `) q' a- S+ y+ I. G0 J - (setq dialog-state (start_dialog))/ I8 O1 V k& A
- (if (= dialog-state 1)* p# H, [9 }3 p+ {+ {: \3 G. m
- (progn* W: n* L. U& }# X+ h
- ;; update the style
. b5 w0 T+ D6 _( g7 G: D - (if (/= dimsty stname)' @; u* v9 O! _0 l: q. F C/ R, b
- (progn
: S$ h. `( G" d0 q2 m - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
7 f4 ^% A+ @# P; U P1 Q - ; doesn't have it.0 Y* t% Z! n8 n: E- d4 Q
- (if (null (assoc 3 elist))0 |2 g+ j6 |/ r8 ^6 x( R
- (setq elist (append elist (list (cons 3 dimsty))))& O J: W1 w7 J( i$ \0 B6 s
- ; else just replace it.
: K- r2 K& K. x& V - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))# P& n3 V/ U' p1 ]/ U3 d8 v+ b* D4 h
- )
5 X0 d- ~: d# w8 N% x! R - ; refresh sv_dvlist with new dimstyle.
8 o. @2 z+ `5 v# O9 N8 e5 t' l - (setq sv_dvlist (tblsearch "dimstyle" dimsty))+ z% ?1 w$ G: W7 v& Q0 Z
- )
- p) ]: ^: c, g) }& Q - )+ s+ |/ _9 [& [% q. q7 ~1 o* P
- (if (not (null dimlist)) ; attempted to change dimvars- P E4 v. i) x9 L1 m! F
- (ddimen_complist sv_dvlist dimlist dimtbl)1 a. o/ ]/ n- u, Y, u3 o( l5 s! T
- )' z3 w5 U9 ~1 M+ I
- ;; update for ARROW.
: s& Z5 e7 K, K } - (if (= "1" arrow)
: |8 L& X2 Y; i- R. C - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist)). H% {1 R, k! T/ X4 {" n( k9 X
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
' p c& k, v+ f, \1 h: S - )2 n+ T/ \2 f( y1 e
- ;; update the TYPE.' ]" D9 p: [, \, w7 M6 ^
- (if (= "spline" leadtype)
5 ?) _3 b! E' E3 h - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
5 F2 c6 Q9 n5 }+ w - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
; t: N& _ }" Y - )
% n! \, ~# z. g- z - (modify_prop_geom)
8 C8 }( V3 w( _. T2 Z# ]( p( n - ;; update the Color
4 [, F' K1 ~+ o8 A3 W - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
$ v2 u% z) C* V& L( s* M - (entmod elist)
# m8 `. S$ q: P8 Q7 O - )
0 \+ O( n- k6 K$ w0 {. J! H - )) G# Y; N* w# o( O w
- (ddimen_setvars dimsvcurset) ; Prepare to exit
9 I8 M/ _; A) O$ Q- x - )
& |4 A3 ~8 b, s - ; V. B' W1 \8 F" l6 g9 k
- ;;7 W* }& f; x/ z2 N0 r9 m
- ;; Get dimvars of a dimstyle with overrides." ^1 X" M; i6 z9 c0 @$ H
- ;;
+ F, F% |- N K& q* J
1 o; ]& |0 B( ~* E# I+ [" @- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
% K; S+ o. q; ~4 p
% t; _$ g2 F6 L" J9 p. V- ;; Get override information for the specified entity.
( | Y; E. h N% F: S% }! l - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
( O3 \3 i0 ?! \ N - ;; must obtain override information through this tedious operation.' J+ E! e: e3 w M. y# j1 Z3 X
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
5 a. @, ~) z, t - dvlist (tblsearch "dimstyle" dimsty)5 m7 a8 E2 u8 [. z7 [
- i 2
% _ |4 x9 h, [8 L - )6 Q1 \8 C5 N( H& I
- D1 M% U+ C+ J# w
- ; Update the list with overrides if overrides exist.2 ?: i& Y0 }; p
9 G5 A% `2 k5 G8 t/ e- d- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))- }* _- ~; ~! G( U I
- (progn. k& W2 G+ A- o' P" Q% d) m
- (while (setq elm (cdr (nth i dimovr)))% k. ?, R3 H; d) A6 a
- (progn
G. L7 Y( s, i8 T6 `" t) s& v3 p - (if (or (= elm "{") (= elm "}"))
' M7 K! C7 ]( n6 a - (setq i (1+ i))
5 T S% G8 g4 g4 R& R' h; b# ^3 M - (progn
; N5 F. X* Q. j+ Z9 ^3 P7 g - (if (or (and (< 180 elm)
g! ~. f# o% h1 V - (< elm 190)
9 b# m6 E$ z' O - )# F. x: l( K& @& H: \( J
- (and (< 80 elm) t& ~9 {8 ^% d, ~3 p, }3 ~4 F& t/ q
- (< elm 90)9 F: f, W( Z$ {7 G9 c
- )
# D T+ v( G9 n - )) l8 |; W6 {! K& I
- (setq elm (- elm 10))* q; u% q+ u' j, @$ }2 L
- ), Y3 R# i6 D: b0 ` a
- (setq i (1+ i)
: t+ d: c% {" p8 u. ]* _$ ~ - elm (cons elm (cdr (nth i dimovr)))5 [1 Q: a' R1 t, L
- dvlist (subst elm (assoc (car elm) dvlist) dvlist)
$ s) U6 ]" \' B0 |* \' J U: h - i (1+ i), H. R1 V1 n* O% g
- )2 d2 i) p: C3 V/ b5 U3 M9 M" O4 }" j
- ) g. x% r: B; Z+ w) n' s
- )
) X' T/ l( x5 v - )
# z5 O9 P" J- C1 r" ^" Y - )7 k5 d, Q2 b+ f: U0 \7 i
- )
2 t" H! q' w' ^6 g/ X( ?& F! n" S - )6 D3 ?. \% J6 M( J- S! A
- dvlist
7 S3 j. j8 _3 q* T1 F# ~ - )3 k" K# M8 Q7 K0 I3 E. o) Y# \; K
- 5 @ ]) E2 k% F0 m- n" U; Q" d
- ;;
q4 K$ H5 Y. F1 g3 b& W1 ^ - ;; Modify POINT
. y; F7 s) u! u6 k' e - ;;
7 Q9 g- r3 P6 r: c% C# L$ h H - (defun modify_point ()* q1 R6 ?7 f/ c: A0 g% C) G
- (modify_properties)
1 D2 W% [% k( B' [* p% X - (setq pt1 (list x1 y1 z1))4 P7 @. J7 a, F0 R- w% S, S" }
- (tempmod pt1 10 0)
( |+ @: ~9 d1 k2 ^3 L5 I! Y - (entmod elist)! d, |5 h u+ H- r" I; ~# a6 j
- )0 B, J5 ?5 o- ?! m- V
: w7 s8 H e7 u; K- (defun ddpoint ()1 {9 X% a0 Z+ v+ v. Y B9 P
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
0 ^8 [. w o" w8 ^9 @5 j7 A. \# ^ - ;; Set initial tile values& l2 S" `. t! q8 q/ O: {( ]) X3 l
- (set_tile_props)
/ V" _5 \) V8 b" ^- K5 \; _ - (set_tile_handle)2 ^$ |; G( D$ M( _$ f( A2 [8 @
- (set_tile_pt1 0)( X' S$ l& A" d
- ;; Define action for tiles/ P( ] K2 ^# \
- (set_action_tiles)8 C* ?3 o2 n' d! d( N# Z' \4 }" q
- (setq dialog-state (start_dialog))
9 f @& ^5 y0 ^ J: g/ J - (if (= dialog-state 0)$ `! S' b. N1 j. G* ?- c7 J1 |
- (reset)5 G( p, e! @1 _2 [& |
- ). e* v4 R! f/ }* S! w3 T9 `; _
- (if (= dialog-state 3)
; t2 Q8 A6 ^+ _2 }: Z: X6 s! S, e - (progn" L1 r! r! `+ Z& [: L0 ?# @
- (modify_point)
- p+ C4 |% o' r3 P6 R* r. M9 d1 l - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
' |3 x+ Y6 f+ q - (ver_pt1 0)
/ e0 Q- x0 x' B* B9 v - (ddpoint)
5 a* d; h+ v* n - )
2 {) t& E$ t5 F$ O* n6 j0 n# B - )0 K1 q( A9 X) M! g8 D5 M
- (if (= dialog-state 1)
3 q# \) M! g. `+ P - (modify_point)* j1 H6 ]; n- e8 u
- )
" b- g/ r7 X6 ?; A' r! Y - )
% a. k9 U9 F0 x: z& L \& q, ? - ;;; ^. h# Q& Q+ Q4 P4 b6 {
- ;; Modify LINE1 y x# {9 t: [- b$ B
- ;;+ t: c" U/ M9 ]1 Q- N
- (defun modify_line ()4 S3 \* M6 R$ c- h% K2 N# f
- (modify_properties)9 g8 Q( X" [1 G! N' E
- (setq pt1 (list x1 y1 z1))7 ~' K/ i; c1 K& T. I$ L
- (setq pt2 (list x2 y2 z2))
9 _+ G7 F3 f% H5 L( U4 c: Y6 ^9 \ - (tempmod pt1 10 0)
. W( O9 ~; l! z) |/ J - (tempmod pt2 11 0); U8 \' D$ f4 o: l6 v' ?% k
- (entmod elist)
+ _* w" R. E% ~) o6 T+ W - )! q* R6 [- G; f
- (defun ddline ()1 H& ^0 c" `6 G1 z
- (if (not (new_dialog "ddline" dcl_id)) (exit))
2 J' k; `' z: f) u - ;; Set initial tile values
P3 f6 z2 Z, s7 n - (set_tile_props); B7 t. O2 S/ a" G/ {8 N
- (set_tile_handle)$ @7 n, S" S4 X! x5 v8 ~
- (set_tile_pt1 0) }) D8 q- D4 \2 Z: _
- (set_tile_pt2 0), d: _1 a ]( @9 i9 q. Q$ Q* a [! R
- (line_calc)+ Z9 @7 x& a+ q5 C% D9 K
- ;; Define action for tiles" {: s2 Z5 X5 b8 J, b
- (set_action_tiles)
4 a' w& K9 N' b: q, R - (setq dialog-state (start_dialog)). n1 K- q& _, `. G" n% v* o6 N
- (if (= dialog-state 0)) Q" {% k0 g$ r8 ^. ?% \' n9 O. U' z
- (reset)- S4 ~, n& V7 c$ v& e/ q2 a( f
- )
9 z$ E! R. ?. V) G% \ - (if (= dialog-state 3)1 F! z* ^% d p7 [" |/ @2 U
- (progn
6 e% x% b3 D4 d$ x6 d. A3 j" Q - (modify_line)' B9 g! B6 h( ^1 m+ O* j
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
6 o) A4 l- J* H3 [3 W2 E; ? - (ver_pt1 0)3 C7 t" S. A+ e. Y+ v5 w7 l3 L7 e
- (ddline)' X& O/ d8 I, z2 d6 z0 c7 R
- )% Y# o& F9 K, u5 Z
- )
! L& t# k4 e6 u! G) F S9 ^/ ^ - (if (= dialog-state 4)6 ~ m/ M5 S- D% }
- (progn
% B: z2 Y* P3 I9 T0 W4 U - (modify_line)3 |! G. N. H: A: S) v
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
$ C; Y" ]( }6 H0 L) w' v' k `7 ~9 \ - (ver_pt2 0) ? i, T/ Q, Q8 A2 f7 G
- (ddline)
0 N1 k1 M' t9 `* K9 v( P/ k( m1 s* o - )* o" |- d6 {5 p7 A, N
- )9 i, u. a5 q) t2 A7 O1 E* Y% i
- (if (= dialog-state 1)6 f5 {$ t p$ b! L2 c6 F4 e8 V
- (modify_line)
: s+ G: c6 B/ ` X - )$ F0 N6 O2 B6 k# ?, m( F. p6 ~, e
- )
' A1 \/ U5 T- @. f& W2 N, S { - ;;9 \* O+ ]9 k( ]8 A
- ;; Modify MLine
8 H+ g# l7 T- i4 b. v8 M - ;;
6 G: n( Y' g- Q - (defun modify_mline ()
7 |- X+ s+ c, H& V8 N- l; j - (modify_properties), s$ i$ P( t) W& f
- (entmod elist)
: D% R6 i& s' f) W& a; g! P9 c - )
( t9 l( G1 V/ g1 }# C - (defun ddmline ()( ~1 q: `/ u. ^
- (if (not (new_dialog "ddmline" dcl_id)) (exit))
6 o$ ~) [- J# E; l. a - ;; Set initial tile values" x6 n5 V1 ~3 |* @' `4 A1 I
- (set_tile_props)! F* Q: N- G1 G/ `% K
- (set_tile_handle)
* U9 s# n1 q& R4 q5 } - ;; Set mline style text field.* J6 S, d$ A! d& Z
- (set_tile "ml_style" (cdr (assoc '2 elist)))! v( m L& R0 j6 ^
$ y: O" ?! }& o% b# N- ;; Define action for tiles3 F9 B1 L: \% r1 r: e) x
- (set_action_tiles)5 ?2 q! E- r2 e' |7 c
- (action_tile "ml_edit" "(done_dialog 3)")
5 b( [9 |' S4 W0 u. p* n - (setq dialog-state (start_dialog))
; G3 D$ Y( [% [9 u3 E1 R- G' H - ;; Dialog cancelled, reset to original values.
! O, `' a8 `! ? ~8 X5 }$ x8 m - (if (= dialog-state 0)7 A. F0 s2 O e5 n5 k
- (reset)1 ~% |2 U- h# L2 z! E
- )
, ]* o% K4 m% C( k$ X2 B, O0 L& B - ;; Dialog OKed, update the mline.
& N6 x+ h* T r! _2 I' d - (if (= dialog-state 1)
0 `1 {; M- _$ w7 Y. y - (modify_mline)- L$ y. W/ z9 H1 g4 s0 N9 I$ g
- )3 b' s' l4 N: j8 X. |
- ;; Edit Mline, call MLEDIT.
$ B T7 u0 S% M& K: ?0 B% I - (if (= dialog-state 3)
. y5 N' W3 ]5 f - (progn) `. r, g* Y" Z) Z" [4 p! R
- (modify_mline)+ e2 B% |# c- b( ~3 F3 u$ k
- (command "_mledit")& m; c3 n; H, I" G# T# ]; B
- (ddmline)
8 ~* ?- e d# F! W6 ~2 N - )
: X3 A, M) q2 w2 M) P, E* @ - )
1 P M: K& a1 ]0 L# v - )' B8 F- u [' v8 n
- ;;
: q, ~+ c/ a+ H" Z - ;; Modify Xline
$ y# l* P* I4 k4 x; ~ - ;;% E2 F/ X1 G# s* P6 `
- (defun modify_xline (flag)- l! S, ^: Z( r. M9 J" h; c' Q
- (modify_prop_geom)
. T* V e: [3 U4 H. f& s& V% @ - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
1 Y2 W% J+ F7 z, C3 K- y; R - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
. I1 n% H1 ?4 u6 j0 E' R6 P - ;; Update the Root point.9 X, W1 x# x$ c6 ]- K
- (setq elist (subst (cons 10 (trans xline_pt1 1 0))
/ h/ m" f% q9 m8 I$ T# ~4 E - (assoc 10 elist): I t$ Q# g9 m9 z# G
- elist
5 b4 |. P" \& K7 A, N - )+ k% E8 U3 K0 B
- )/ i$ O+ `3 R' e: x9 Q7 r* p8 E0 t) Q
- ;;
# p2 h9 x* O+ Y1 \0 M, x1 R7 X1 e - ;; Calculate new Direction Vector WCS
3 H0 |6 H& M9 X5 {+ g - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
; B, A0 G) p9 K) X1 q - 2 p8 f0 r k9 b' I6 S
- (setq temp_dir (trans xline_pt2 1 0))
) d% O7 B! Q9 }+ }1 a - (setq temp_dir_x (car temp_dir)): ?8 a, F. f+ _9 t, a5 g0 ?
- (setq temp_dir_y (cadr temp_dir))
( I" [0 ~% o! t3 S* U3 E3 \ - (setq temp_dir_z (caddr temp_dir))/ _0 ?/ `. M1 Q3 Q2 S
( I/ E% D8 G u6 j% K2 A3 s- (setq temp_xline_pt1 (trans xline_pt1 1 0))
* ?8 C( X3 `0 n% p - (setq temp_xline_x1 (car temp_xline_pt1))
& h# U q2 X2 O$ x - (setq temp_xline_y1 (cadr temp_xline_pt1))" n( ^1 T; t7 ? l, X
- (setq temp_xline_z1 (caddr temp_xline_pt1))
, A$ |7 u0 C; `% V! Z
# [7 i1 |, t8 Z' r- y5 T" [- ~- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
) l5 |9 S9 y! ?; T! P. a3 _ - (expt (- temp_dir_y temp_xline_y1) 2)5 r& B* a$ [" _
- (expt (- temp_dir_z temp_xline_z1) 2)1 l) ^9 D4 F! b* N
- )))& `, w2 F. H% m9 s5 T
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
2 V! B3 T' |6 Y8 n* |/ O - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
5 {3 n# F+ M3 P2 [" f. D - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
/ N# l& y& k4 y1 b - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
( v S0 ]' }8 d1 d - (assoc 11 elist)
" q# ]1 [0 @ D A: m1 O9 q9 d) R - elist
2 s% i. d7 J! P/ T f- { - )3 g; v4 Z: r% c& b! `
- )
: [0 M R( v! B# K - (if (= 1 flag)
; Y i4 d: F6 Z' p! M# q - (entmod elist)
- N3 e/ _9 ]' I J( z - )5 J8 T$ |7 U! N% `3 b4 j+ @5 S8 g
- )' N% O" j# i3 q8 T( m: d, i! x
- / d `6 t% Z1 I7 t& v
- (defun ddxline ()
3 Y- C# o: u( S) p6 y - (if (= etype "XLINE")
: j: s& d$ W7 ~ - (if (not (new_dialog "ddxline" dcl_id)) (exit)): j2 Q {- T: K5 A# } w0 I
- (if (not (new_dialog "ddray" dcl_id)) (exit)). t. i# y+ ]! t
- )
) n; h$ V1 D) S+ N - ;; Set initial tile values) i8 p0 g+ g/ J5 F* T2 p0 l
- (set_tile_props)
- U4 l3 a2 N, |% L9 ~9 |) M% Z - (set_tile_handle)/ [3 M) @4 H1 [* R) A2 c
- (set_tile_xline_pt1)
/ h A) ]( _; D2 }4 j - ;; Convert to UCS and post Direction vector.+ N7 c! M+ a" F. @7 D, }; {
- (set_tile_dirv)# y9 I; M) G3 o. M7 D. y
- ;; Calculate second point by adding Root Point + Direction Vector.. v& f" F+ ~8 y" x: @& a2 ^
- (set_tile_xline_pt2)
6 g5 t) ?$ L7 W5 a. m! d5 \9 | - ;; Define action for tiles1 r# K* Z: A* ?. Z
- (set_action_tiles)
% b' u1 J% z5 P7 Q3 n$ q7 n8 J - (setq dialog-state (start_dialog))8 I( k) Z2 r2 r- L: g! H5 E: h
- (if (= dialog-state 0)
; ?+ e. p, k. I: ~* E - (reset)
4 M! a( Q$ C ~- Z( m - )$ }7 X% `4 a$ b* a( b2 |
- (if (= dialog-state 3)* H: H& l" M% s9 \
- (progn
& U1 }" S* P" Z2 c+ n - (modify_xline 1)
# w0 O' C1 J2 i- H* N/ J - (while (equal xline_pt2
. [. ^9 S( e1 G9 j4 P, E" T- q - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
% Q7 z. g5 p/ E. f: z - (princ "The Root point cannot equal the Second point.")
! w4 }; e6 @* V, h( i+ d - )
, P% ?! f. t4 A# U - (ver_xline_pt1)
" j+ a6 C) V. k0 p' ` - (ver_xline_pt2)/ r+ g& h! ~ w) l, C
- (princ)
) D5 s' }1 t8 D& } - (ddxline): g9 n b3 [- Z$ B0 n+ m+ W
- )
" T9 n. J$ _' Y6 C* s3 o' T - )) B2 c; s% @: O& E4 @1 q
- (if (= dialog-state 4)
& v r) r2 j( M( ]& N! j6 i - (progn( L; \8 u% S) }. q3 g& C# u2 R
- (modify_xline 1)5 s3 P- w6 ]! O1 Y
- (while (equal xline_pt1
3 Z0 \# Z0 y1 T9 }8 `& ?1 }0 m5 ? - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001) Q7 ?$ X- R- e! Y4 T9 t
- (princ "The Second point cannot equal the Root point.")& y5 Z* B1 O; z1 P( q& O0 e0 W
- )% d4 i. w/ X, c6 ~% V
- (ver_xline_pt2)
+ g! o( e6 `1 d* N! P w - (princ)
4 G+ Q* ^ l! o v" }$ U( e D - (ddxline)
! a2 S4 E4 M" ]# M - )
8 v$ h* z# ?" @/ [; y O. i! _+ j - )
! P$ y. p$ _0 H- S. `: @2 F8 I - (if (= dialog-state 1)
' z) H4 o9 N6 S& n+ y* S - (modify_xline 1)" e7 q9 P3 e' N' B& h1 c
- )8 H9 F( C! }, s1 s, _/ M
- )" z0 y! q. s+ V0 Z7 `
- ;;
3 p3 {. V! X3 `8 \* } - ;; Modify ELLIPSE
" n" g* E4 m/ C9 S, d" @8 |$ j - ;; s5 @7 K" }( \# b Y: h- p
- (defun modify_ellipse ()
& c1 L8 I: o8 V+ d - (modify_prop_geom)! `# o1 J' A) _
- ;; Update Ellipse Center Point value.
! h5 W' H7 f+ Y3 S6 |/ T - (setq pt1 (list x1 y1 z1))6 o# ]8 F! K" o% n* E m- w
- (tempmod pt1 10 1)/ P" I% A, O: k. M8 M. r# X
- ;; Update Start Parameter value./ g6 i, Z$ N3 h, ~" d
- (setq y_val (sin st_ang))6 @! z' l' [; u
- (setq x_val (* rrat (cos st_ang)))2 [/ J1 N( [. o
- (setq stparm (atan y_val x_val)): E0 V( b( \2 R7 y4 V4 g2 |
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))+ n- [! z- f6 n" ]; w
- ;; Update End Parameter value. Normalize it, if it's less than g; s6 r, \: \1 d. A. E# z) ^! t
- ;; the start parameter.
. \8 h5 T1 j6 d! u - (setq y_eval (sin end_eang))* T/ ?; g' n5 O1 |4 F0 f
- (setq x_eval (* rrat (cos end_eang)))+ H8 E z0 ~% ?& m- N1 B
- (setq endparm (atan y_eval x_eval))
2 g0 F- c& m3 q) s% F- Q* ] - (setq diffparm (- endparm stparm))
( @, }+ L; H$ `# n: G - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
5 i u7 }( \* ^4 T; U- u' c8 A2 ` - ;; Since zero length arcs are not allowed - construct the full6 Z8 V4 n G- D$ T, j x- Q
- ;; ellipse in this case.; b. d$ @& h. q
- (if (<= (* diffparm diffparm) 1.0e-12)
7 z+ N) m% y* W - (setq endparm (+ stparm (* 2 pi)))' u: s+ K" s+ w: Z2 `4 t+ W5 w
- )
h- {1 O5 G/ T i) c - (if (<= endparm stparm)
6 T( W, B. U" v4 p - (setq endparm (+ endparm (* 2 pi)))
) d: ]" f' o1 Q: s7 ?2 ]$ p5 J) N- Y - )
6 _, a7 j4 s9 U$ i! n7 d - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
' }/ a# s& }9 G4 ~0 }( q - ;; Calculate the Major Axis Vector by first calculating8 z) I3 i) g$ @$ O
- ;; a unit vector using the old Major Radius value. Then; Q' r) l* E! e% E
- ;; Multiplying that by the (possibly) new Major Radius
8 O; D. b+ l9 c - ;; value to get the new Major Axis Vector value.
+ N2 ^) o) j( E# q" m- J& H9 Q5 l - (setq unitxx (/ xx old_majrad))! M2 L9 u$ @$ F& K/ |2 _9 l$ L
- (setq unityy (/ yy old_majrad))
, c$ S5 ^' P, p+ o, I/ w - (setq unitzz (/ zz old_majrad))
" I: o/ W/ {- p3 n/ Z - (setq newvecxx (* unitxx majrad))
: X: Y# W0 c) i - (setq newvecyy (* unityy majrad))
9 w5 [1 r0 _" [7 b, Y - (setq newveczz (* unitzz majrad))1 c/ a: i- S, [5 q
- (setq newmajaxis (list newvecxx newvecyy newveczz))$ k) L0 M) p4 o9 g" B6 w: v; R3 r% y
- ;; Update Major Axis Vector value
5 U/ n) x5 h0 a - (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
, t; n: m5 r: {+ E9 A0 i7 U - ;; Update Radius Ratio value
: L% Y8 J/ Q+ {4 S2 R4 T - (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
7 r& I% r( {5 J8 e6 Z9 U - (entmod elist)
4 C, S2 Z5 m7 w0 [( N* G* Z - ), y( ]/ L9 \6 y/ i7 q
3 P6 A# J# m& P! [7 ]; x' Y8 K9 ~- (defun ddellipse ()/ _& \% P( q. w( [! d' Y. u1 e2 t
- (if (not (new_dialog "ddellipse" dcl_id)) (exit))
2 L! K r3 z. M1 L' F - ;; Set initial tile values G" i) c: A y. {
- (set_tile_props)& V! c4 F5 Y0 j& n6 V' z
- (set_tile_handle)
: r0 e& l& q; ] - (set_tile_pt1 1) z$ C' n' U1 ]. G
- (ell_calc); u, A5 d. l0 _' H
- ;; Define action for tiles
: y% n3 S# D2 t4 x7 m0 s' g2 N. I - (set_action_tiles)
/ G7 Y6 e* u, x! B" L - (setq dialog-state (start_dialog))
2 f$ L/ R( O$ | - (if (= dialog-state 0)' a3 j9 V7 R. M l7 ?6 J0 {
- (reset)
8 E" i1 D( w8 u - )$ x# x7 @8 W" @4 _; \ g
- (if (= dialog-state 1)$ h, \/ q0 v- d' ^* C3 E
- (modify_ellipse)1 S$ p& L C5 O, z) w. N
- )
0 |- d% @* c# c5 A b( j4 b - (if (= dialog-state 3)
$ _! y( @( o/ J5 d - (progn% k5 R) f9 L o$ }* ~+ S
- (modify_ellipse)
( j8 k {1 L! Q& t - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))( N- J; B f$ G
- (ver_pt1 1)
0 f, ~9 }; S# f3 u - (ddellipse)6 w& F' `+ ]& I0 K* ~
- )
& c3 x. Q5 ~% G& L% e9 c- e - )
$ ^9 b) B, I0 [, ^. X" v7 _4 B - )& d# D6 N: q# `# [9 I
- ;;8 x( ?* X! z5 I
- ;; Modify REGION, @8 \8 A" r, l# Y: w
- ;;2 D4 J+ k: U9 a F8 o% D0 q/ _
- (defun modify_region ()' c/ T7 p* ^$ @1 z
- (modify_prop_geom)
/ F. F2 `& ^8 U/ I - (entmod elist). y' [. e' d. h) {" ^
- ); }) M9 [1 X/ z0 I
- 1 i: g+ I% ?3 I1 n
- (defun ddregion ()2 s( D& i; B( u) k/ t
- (if (not (new_dialog "ddregion" dcl_id)) (exit))! j# ?& o4 N1 L, m1 n
- ;; Set initial tile values
/ E# {* d$ T, `, Y# S: S8 Y" w3 F$ o/ n - (set_tile_props)
0 I# t3 |: L4 \$ d$ d, ] - (set_tile_handle)! s0 y! p d+ R& i2 k3 N/ Z, A( K
- ;; Define action for tiles# e5 G5 t8 K5 W7 R
- (set_action_tiles)3 ` Q9 ?8 ^4 F1 n: W) d
- (setq dialog-state (start_dialog))& T2 O1 u; ^( O( A* J# A
- (if (= dialog-state 0)1 m& h$ W. Y) V+ u" b+ u
- (reset)
6 p ~: d1 Y! F4 \2 O - )
3 e8 n1 z0 r0 M" E# m - (if (= dialog-state 1)
& O7 G( j. e' d/ d9 V& B - (modify_region)" |& P# z u* N8 m8 L6 c; q/ G6 ^
- )1 J% u/ o9 G2 K
- )
& N t7 U* h1 a - ;;
N2 V4 V8 C* E" h+ u# P8 R8 g - ;; Modify 3DSOLID
$ i: K# X- ^9 C; F+ m# S - ;;
9 m9 G7 T5 b" k ]9 N; t, n - (defun modify_3dsolid (): {4 j, K8 _4 ~4 F; Y- _9 l: I% [
- (modify_prop_geom)/ x# l+ ?: C' t9 @# ^+ _
- (entmod elist)5 N' e' m' b( v; p
- )+ `/ {% }! C' O
% e/ X1 V+ o# w) t6 p1 f7 n- (defun dd3dsolid (); U& Y1 d& d: B; u0 |! C$ e4 Y
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
1 ^; A! r0 ]7 ?6 |# N' _ z - ;; Set initial tile values: A8 m$ C+ i6 A3 q1 m# L- S; Y
- (set_tile_props)$ P: z2 O3 g; e& n0 A. ]( w; ?
- (set_tile_handle)
" t- u- }- H: Z- {! T6 u- Q - ;; Define action for tiles9 q( N# d6 ^; f e
- (set_action_tiles)# y+ C: I8 c @0 E0 N0 r0 ^$ g7 T
- (setq dialog-state (start_dialog))
9 |: l5 e9 L* r7 G& o - (if (= dialog-state 0)5 M2 z: h4 a7 L, P) D% v- I" d" S4 v
- (reset)( `. w. C) k7 H( b; b7 h
- )
. k4 G$ Q. F+ u5 V# g# R - (if (= dialog-state 1). x% ^$ `- }5 Y z
- (modify_3dsolid)
$ l, R% `/ _! q0 b3 ~ p - )
9 n1 c5 u: i$ E$ _1 B - ), I5 ]# r2 i4 a; n! i+ }
- ;;$ x/ ~' q6 j3 Y" b; i# D
- ;; Modify AcDbHatch
* n v# k% `/ H/ s" v; L7 F - ;;. w* X4 j4 x5 ?! d9 e. m# u' ^
- (defun modify_hatch ()
# A7 `* s: r0 M4 C) @ - (modify_prop_geom). p4 K* B; e( u6 N
- (entmod elist)
* l, h' b/ w# W+ k( j9 h - )8 U1 j2 n9 I! j
- $ f5 L0 ^+ E$ p
- (defun ddnewhatch ()' Q9 v# o0 T/ K: q/ u: w
- (if (equal hatch-elist nil)
% A6 m$ Y* V" a# z) j8 Q8 W2 D- W" j - (setq hatch-elist old-elist)9 |3 y1 g( p9 Y$ `
- )! h5 R- y$ x8 z2 h1 D
; Q, {5 U1 u. ~+ |4 ]; l- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
5 _6 l" W/ ` Q8 d4 }
. O/ z' U4 A" r& z- ;; disable the thickness tile
; x# f" W7 j, L2 U9 f- h6 y - (mode_tile "eb_thickness" 1)
* N( q/ I0 M# p* Q% e' K - (mode_tile "e_thickness" 1)
* x( y5 Q& e! E" {0 I& w/ r - + G' r( `% R1 |
- (setq help_entry "modify_associative_hatch_dialog")
5 u% ?) f( t | - (set_tile_props)7 M4 d( z; v5 O
- (set_tile_handle) X; _% a6 U9 b7 z4 t3 Q
- & z- m1 A" `7 U4 o) j' k7 ~
- ;; Define action for tiles
; E! D- h3 l; x/ C% P - (set_action_tiles)
! j" R; {+ V: Z - (action_tile "b_hatch" "(done_dialog 2)")9 ?& ?+ P" i- K9 h* ^1 K7 }. q
- (setq dialog-state (start_dialog))
5 r! l6 t J0 \! ~; _$ q - (cond
- L5 n& j' I$ |# }: l - ( (eq dialog-state 0)9 L. u' r* c5 L8 a
- (setq old-elist hatch-elist)+ B8 \2 c# n4 H" b6 v& e+ U
- (setq hatch-elist nil)% C, Y, n# g" g* s) F! ~0 ]- C
- (if (= (checkforlockedlayer ename) nil)
0 j) \# f. ~; x& q1 F - (reset)
" j: C* J' d" k - (progn ;;; special handling for locked layer reset
8 e' r8 R+ [' ~/ G - ;; unlock the layer/ \- f* [" ]4 q* C% A1 r: ^
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))+ N4 W" ] F# D/ }5 j
- (command "_.-LAYER" "_Unlock" layername "")
. E7 i; k4 |4 M# `! _' W) N - ;; reset modifiction G- Y: _# t# ?8 t7 J) J$ a8 u2 U
- (reset)
7 P: X8 Z+ Y& G* {8 g, G' Q - ;; lock the layer again. n7 z, R* _2 M+ D3 r$ i3 q1 D
- (command "_.-LAYER" "_Lock" layername "")# ^& L' C; h4 g3 Z! a( f
- )+ p/ S( j b. n$ Q9 C
- ), n* p7 p/ w6 P3 F1 o* d6 n
- nil ;;; makes (ddnewhatch) return nil for Cancel
F% S1 q" H( V. t2 O, P$ m/ A" R' n - ): z( o9 y% C/ a/ O, E
- ( (eq dialog-state 1)) g7 }0 x8 F+ ?' Y8 S8 ], O
- (setq hatch-elist nil)5 T' S* L; s4 ^* ^: J9 @( [: o0 c7 I5 U
- (modify_hatch)
% b2 k2 e# o* c: y4 j - T ;;; makes (ddnewhatch) return T for Ok
; V; \# T' A+ F1 X2 |/ | - )7 V& K5 A: d& y1 y8 V$ y0 W: O5 L h
- ( (eq dialog-state 2)
) ?; e% a# ^: W! y, `, F5 I# S( k
3 m8 u+ N! G1 Z0 W1 {- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))0 F/ S: j' n5 z. x
- 41 m; v) u; Z* z5 O: N
- )
" [" X# A) T- Y) V3 Z- l" A; D - ;;; new selected layer is on a locked layer
' S. |9 y/ I+ y) C, z+ s! v" r g( Y - ;;; we can simply modify the hatch properties
! ]1 s: ~% x: e" B - (modify_hatch)* _* l, z8 u; ^% @4 a- B
- (progn# u' l( P5 b3 }
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist)))))). J- x3 v# k: D6 Z! @: N# f' F( Z
- 4/ A6 z6 M0 l5 c6 U$ n- L+ H
- )
: O. c+ V7 {& b8 ~1 D. E6 D( { - ;;; We changed the layer previously and now the hatch lies on a locked layer.9 F8 f9 B- G' f- a+ n( a8 o5 [
- ;;; We have to unlock the layer forethat we can update the hatch properties.4 z u* ~5 Z5 F
- ;;; If we don't do that (entmod) fails to update to the new layer.+ s' c" h" S' n8 S* A+ T, H1 k
- (progn
/ Q4 L6 x$ x! }) j2 o1 h: L( X - (setq layername (cdr (assoc 8 (cdr elist))))
) H' c2 T& Z d9 O2 y6 k4 L - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer8 i' ?3 N3 z% u0 @ w$ ^) N( P
- (modify_hatch) ;;; update the properties T3 D- w9 S7 a& O6 }; E2 w* N
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again# p |6 C9 z4 w4 b" d; x
- )
# T3 z7 R* m/ ?" w/ L, I - ;;; All other cases we simply update the properties
$ g; {" q4 k8 x6 Q - (modify_hatch)
, u8 C5 i f* M8 I! j1 g9 R - )
5 `! q" J3 w0 A* H D" F - )
0 m* u, M9 V+ \7 Q: P - ) ' {1 j2 O/ [: h) B1 w
- (if (= (checkforlockedlayer ename) nil)9 f% S3 ]- H; H
- (command "_hatchedit" ename)
7 G- Q2 m# i8 W: T. F2 `3 ^ - (alert ;|MSG111|;"The hatch object is on a locked layer.")5 w6 [9 i! T% ?
- )& E0 H3 _3 W6 Q; i, k
- (ddmodify ename)) `* _0 G, \; h
- )
( f2 x+ z( ?1 T' \2 } - )
- D- F: U: u: _/ o& i - )
& B+ H3 p# ^. X% I - ;;1 }: d+ z9 j) d4 Y
- ;; Modify BODY. [5 M' m% [# O
- ;;7 d. ]4 h# a3 g- G& C
- (defun modify_body ()
4 d9 ]9 M& h, Z6 B4 t - (modify_prop_geom); Z. M A4 S" _1 R# `" x7 p
- (entmod elist)
J, j- I/ v! F0 i - )
/ `. j2 [4 ]: @) Z
+ S8 W8 ^* `2 \$ w2 r L2 G- (defun ddbody ()
5 s8 W8 m+ C: @( d - (if (not (new_dialog "ddbody" dcl_id)) (exit))( c7 n7 O- I1 C* p" S1 K
- ;; Set initial tile values N9 V' h& m; u5 M
- (set_tile_props)0 p0 O9 J+ ]: e. x0 y3 O( k T
- (set_tile_handle)
" E+ c4 c7 h" B - ;; Define action for tiles
' q h- y- _6 {! K2 U; M - (set_action_tiles)% P" Y2 {! w4 R; f
- (setq dialog-state (start_dialog))" F+ ~; q" s% {' k5 A' }
- (if (= dialog-state 0)- X' z7 g, B' a' _, r n8 n
- (reset)
[5 O9 b; K# E# S1 l) f& h - )! b- d7 T: Y& ^# T) C. I0 ~' T
- (if (= dialog-state 1)
' t% {: ]+ L: E( s9 V - (modify_body): _" ^4 o+ p/ i/ B
- ), j; e. N% ?' \/ r. {4 ]- X
- )
) W1 n" o; f! O2 H1 c ~ - ;;$ J. R$ {' e9 w) \/ ]% z" H
- ;; Modify CIRCLE* j. k6 S- \% Z0 ^9 E7 b( m+ v& X
- ;;- o, f: y. e# T! q
- (defun modify_circle ()
" N5 V X2 C% z5 T - (modify_properties)" Q+ U1 R/ K1 y; a. A7 p A
- (setq pt1 (list x1 y1 z1))
! Y9 |# e6 x4 W$ p W2 D6 M$ f( b - (tempmod pt1 10 1). I& Y5 s: G+ V7 a5 I7 i- h+ l( _9 k% C
- (tempmod radius 40 nil); E4 D; r7 f( k9 a$ G
- (entmod elist)
" U( j" ]# G& f; \3 {; w% d4 O% y - )
4 s6 s0 H" C* b- l - 3 j: q6 j1 \. ]6 m9 M6 }- P
- (defun ddcircle ()3 U& l) ]2 f* e; U
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))2 G, `/ ^8 V# y3 B: ?% a% B5 j6 _$ z
- ;; Set initial tile values$ l' e! A* X. v p, D% ?0 ^
- (set_tile_props). Q5 n9 y: ] d& P; M+ ~
- (set_tile_handle): C9 ~7 Y4 U6 v/ |0 L, ]+ w4 v$ ?
- (set_tile_pt1 1)$ Q; x1 d, K3 u0 c$ g, E$ \6 n1 q
- (set_tile_rad)' y) E% ^- p9 o& G# |% k
- (cir_calc)# h9 p; t7 G+ d! T I: U
- ;; Define action for tiles
* \7 F& T e0 E) M0 B7 l* y* c - (set_action_tiles)
$ ^; [4 M; T: \8 L8 k - (set_tile_pt1 1) A2 n& u6 f- X/ k
- (setq dialog-state (start_dialog))
5 t" n' v' K* P7 ~/ _% J b' x - (if (= dialog-state 0)
! e1 }1 _* m0 c7 W; P2 G* A/ I - (reset)
0 ?3 y9 U, L0 }* k# O. \2 ^3 @ - )- G& u1 U$ j, l4 U- ?# Z9 }6 r, ]
- (if (= dialog-state 1)
$ d6 T" ~$ o5 t - (modify_circle)
0 ]% u2 E( a3 X7 p" G - )
9 y M: f4 b+ @% }6 K+ } - (if (= dialog-state 3)
% S7 ?4 i; j$ [8 e, f" I- P+ W - (progn
2 f5 Q/ e* q+ P - (modify_circle)
: D# f9 n! `9 _* ~: n - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
/ G1 L3 [7 [* y3 x - (ver_pt1 1)
5 s* h* Z) D8 n( k - (ddcircle)
9 X) R; E+ g/ K. q9 } - )
* t7 l: Z }0 B2 l) [ - ) \6 T+ W( {5 ~& X
- )
9 [) c/ |/ r9 [: p0 q1 d - ;;
* Y" |2 H3 U- C( o6 A9 H - ;; Modify ARC5 ]9 n- [1 d' K6 Y
- ;;* E! Z2 ~, v6 U* Q) a9 ^0 Z
- (defun modify_arc ()2 B2 b. }6 H! I- {5 K8 P0 j
- (modify_properties)
1 D b9 V+ K: V6 q - (setq pt1 (list x1 y1 z1))3 J/ [" |1 o% J. R
- (tempmod pt1 10 1) J" l9 N' I* z/ u: \8 P' s* i
- (tempmod radius 40 nil)
+ M; |' w; h) v1 o! Q$ B6 z6 D - (tempmod st_ang 50 nil)0 L; b2 }4 X0 \! n- A/ {
- (tempmod end_ang 51 nil)
0 y0 Y& R9 \# H5 v - (entmod elist)9 O# Z' J6 C( P+ u5 d+ `
- )' N5 a8 H& e# |% |; L) D5 Q5 l
- (defun ddarc ()' d. S6 |& P" ^& q0 x% o( Z) q
- (if (not (new_dialog "ddarc" dcl_id)) (exit)): a# S: {5 v1 g& [1 h! M7 }. q. d
- ;; Set initial tile values9 q( v j8 e7 p" K K; l: u
- (set_tile_props)
5 s- p( n9 z/ z+ N* V Q) D6 G - (set_tile_handle)
, ^7 w: Z' J9 u+ e - (set_tile_pt1 1)
- t1 F! b- w7 B: i( {, P* t - (set_tile_rad)
$ ^6 u5 C# N8 \: w+ M! X. C: ` - (set_tile_stang)
. [$ P L! }$ }, H. } - (set_tile_endang)( e8 y. ~3 k9 c- X- @" W$ S& M
- (arc_calc)# q2 T# }7 F2 G
- ;; Define action for tiles; w& K! N7 c% X( c
- (set_action_tiles)5 d1 w0 |' r$ N& v5 x
- (setq dialog-state (start_dialog))
: F& H1 a2 u5 k) O+ M - (if (= dialog-state 0)
+ _, i5 R( D8 M; N+ P$ T% r - (reset)7 B9 r/ L' ^. D1 p0 N/ X+ {0 b
- )/ H5 V6 y% R ^% v
- (if (= dialog-state 1)
1 _3 a. k( x# p, U% X; U e9 P# e - (modify_arc)
& R0 ^. \! ]% U5 r k' x1 b+ p9 b - )
9 ]# t7 b9 X2 `' s9 z - (if (= dialog-state 3)
. u& F3 P% S' W; x8 U \6 ` - (progn
! s5 P! x( h' D& E4 \) g - (modify_arc)
" |' C$ ~+ G9 F% K - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: ")); B) S! x, B) x" a
- (ver_pt1 1)7 S5 N4 S: n, N; q _4 ^% }4 u
- (ddarc)! c- k1 r6 x9 f: ?% v
- )9 C' M+ u0 X) j* e6 [; q r
- )8 C/ S: i& }) Q+ G* h- a- B" q4 a
- )0 ]9 z" x! f5 S3 N
- ;;! `" j+ |, x& \; d
- ;; Modify SOLID or TRACE: a- N' U: I+ r
- ;; Note the Z value of the object is determined by the Z value of the fourth
* F( b0 \( W. {/ B5 M% @ A: ? - ;; point - code 13. Changing the point values of a solid or trace from a UCS$ K- S/ v8 m9 d- Y' N, L8 n1 f
- ;; that is nonplanar to the UCS the object was created may confuse the user.& S4 A) [' s7 Z9 Q& v
- (defun modify_solid ()2 I1 T- L6 ?) p! a& c" J8 S
- (modify_properties)4 f, q) i( k8 ]* e! ?. N0 D; J
- (setq pt1 (list x1 y1 z4))% W K1 B6 o& H$ Q7 D. ^# `
- (setq pt2 (list x2 y2 z4)). `9 t: Q% B! N3 P- i# s; N
- (setq pt3 (list x3 y3 z4))
! @% @( G3 _) D, ^ h4 H' M - (setq pt4 (list x4 y4 z4))8 c9 s Z; [# s6 o4 q; K, p8 W2 ]
- (tempmod pt1 10 1), p' q- s" I. L9 T7 q* V: k
- (tempmod pt2 11 1)
) F6 p- W, r: f U4 F; f6 p, x - (tempmod pt3 12 1)
' D/ h- o& Z% |, ~ - (tempmod pt4 13 1)
" i3 c/ J5 K5 o! h! `+ n - (entmod elist)" Z0 c( O* U* q" M6 o' R
- )
! P. \7 N) @2 Z* H, |0 D. |9 \/ Q+ I
$ W6 A. M2 j2 u2 z# c- (defun ddsolid ()
- V2 h: F" t# d' {* J - (if (= etype "SOLID"): N& S- M2 Y# p7 o
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))
7 U8 M7 G8 ] r N0 Y5 J - (if (not (new_dialog "ddtrace" dcl_id)) (exit))
' n6 f$ f$ }4 |4 s$ e - )
0 S, J. G6 U7 \; X& k | - ;; Set initial tile values1 @! E0 K+ t O
- (set_tile_props)
& k% x7 m3 |; `+ W, Z0 s2 O _0 m3 U4 h - (set_tile_handle)& V `2 t) { D1 h6 U$ T
- (set_tile_pt1 1): W4 E' |7 z2 e4 i, _% C% K
- (set_tile_pt2 1)
1 B$ J1 i! X- H& |6 ~ g8 E+ U - (set_tile_pt3 1)& ^: N8 ]' p8 ?1 {
- (set_tile_pt4 1)2 v/ D" M0 E% J# R, }
- ;; Define action for tiles
9 w$ ^- a5 Q2 }. w$ p; i8 s - (set_action_tiles)
6 \- y0 X( G. e& |: L3 R' q# I - (setq dialog-state (start_dialog)): t6 K" X4 g* W
- (if (= dialog-state 0)
: s# q: c( u7 k3 p9 Y3 x( s - (reset); @8 {, x8 o0 ^' L! C. T
- )
2 |' E. z, K* v4 k- E - (if (= dialog-state 1)) W8 r% |* A5 C* z3 x
- (modify_solid)0 A2 }( T- q7 K/ n' w5 E: |' M
- ). L, F7 K; a+ w9 t& ]$ ~
- (if (= dialog-state 3)! Q( Q! E1 G+ k! _
- (progn L/ _& _( r# b( v7 r) U7 t4 C3 R
- (modify_solid)
, ?" \% p/ W+ \+ Z - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
, H; Y2 Y9 p. D0 Q$ \$ ~8 N+ H- Z - (ver_pt1 1)$ {3 h, }: j) }4 e) i$ A0 ^
- (ddsolid)
$ T0 c8 h3 Q7 N X/ q( }) K - )2 Q2 @! m8 G! l
- )/ _; {4 U. D2 u6 j
- (if (= dialog-state 4)
5 S% j4 j# ]9 b3 x+ j1 M: F/ Q - (progn( o# l& d! z5 B4 S/ g( @
- (modify_solid); s- }1 c' u' s8 R5 y4 o
- (entmod elist)
% D) M* r* W2 ^8 |# } - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
/ D/ {6 h) N$ k9 K1 {5 l: Y; C - (ver_pt2 1)3 ^8 s6 K7 ^: ~- A
- (ddsolid)4 k% Y" D) J z
- )
. _' W! F% D* p - )
3 K. ~7 Q' v5 d1 s3 K3 u. y3 S - (if (= dialog-state 5)8 F# E+ @' I# m j8 ~! N
- (progn: H# {+ l9 i% C4 F; l
- (modify_solid)
. x/ l/ [; V8 p+ r7 Z - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
* X7 T( g0 L0 Y; r6 z - (ver_pt3 1)' `$ K# Q# z3 ], z3 v( c
- (ddsolid)
6 l; `( V. v" h: u2 |8 z/ l% |8 K, \ - )2 h( g' {" X$ _' M. b
- )
9 y# M1 ]3 p2 b! V4 F: i* S - (if (= dialog-state 6)& ?$ p* I- S4 D, O7 w/ \
- (progn
( w* n4 y* i; ~6 ~, H - (modify_solid)
( t5 k3 W' }1 Y! p - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))8 R* F) O3 _: z/ h7 @
- (ver_pt4 1)) C( t$ u+ h5 S
- (ddsolid)
6 q( m1 v; z2 {' U# u& }( a - )- _& y7 r8 ]( M
- )
7 }0 i/ S J" s - )( ]4 K S/ [# y- J1 @) T
- ;;- o+ A6 P; g- c+ C/ f2 I
- ;; Modify 3DFACE5 `" i& S/ _8 k
- ;; g- ]: I% G7 o1 @" n8 s
- ;; Check visibility of edges
6 G7 q! Z6 a5 d8 w" I - ;;( U& O7 ~4 N0 t- Q5 ]
- (defun edgetest (/ bit1 bit2 bit3 bit4)( t# b) E8 A' U y! n5 Q# C, F P# H o+ h
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
4 D9 @/ J2 o+ m' } e' w% F - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
3 |8 E: x( @* E8 E( A# R - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))1 G5 N& x. H) U
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))
3 i# w6 ]9 v) n- m0 Z3 n/ m! S - (+ bit1 bit2 bit3 bit4) N7 _$ @* ]+ g) l
- )1 D. |+ D+ d9 |. Z. A( f ]
- + u# P) X3 x" F9 n: q% }( y
- (defun modify_3dface ()
+ |# B3 D( z, h1 N( g1 ~' M$ F - (modify_properties)0 P" L+ t. M( k9 L9 q' e( y
- (setq pt1 (list x1 y1 z1))$ m/ x: l4 e, g6 _8 W8 `
- (setq pt2 (list x2 y2 z2))& l2 I) U% ^& J: L- M [ |
- (setq pt3 (list x3 y3 z3))
& N4 g' C0 l" V5 z U - (setq pt4 (list x4 y4 z4))2 k) u* m- B$ {! R
- (tempmod pt1 10 0)
* s+ D* j# ^( l0 ^ - (tempmod pt2 11 0)
& _ B2 R) a& R- U - (tempmod pt3 12 0)# r6 r0 {! f* u6 D4 U+ o
- (tempmod pt4 13 0): O8 b$ b0 U: m. b* |, ^/ n
- (tempmod (edgetest) 70 nil)
. F. A! x }8 l/ e9 i - (entmod elist): t: {- o) j+ A0 D( V
- )
# u+ j- |* Q' f. m - ' d) a+ H4 @, }7 W. k- ^* `7 S
- (defun dd3dface ()6 k' h, d& Y) j6 J
- (if (not (new_dialog "dd3dface" dcl_id)) (exit)) A( b' a2 i; X6 r" |
- (set_tile_props)$ ` U! L/ `4 v& _" R3 [1 I
- (set_tile_handle)0 r, o( i+ ~' g5 r% |* e
- (set_tile_pt1 0)
2 O/ r: ^- {* U - (set_tile_pt2 0)" C, W) `- L' i* k$ u
- (set_tile_pt3 0)9 v t' X7 U0 z$ q, i4 ^/ x
- (set_tile_pt4 0)
" V% M* g7 }$ ~% |9 P7 f1 s4 x - (set_tile_edges)
7 ^, c5 v% g0 |" j9 x - ;; Define action for tiles8 e+ p. G% j$ U7 l; {" J
- (set_action_tiles)
' A, |9 M, R4 h6 @6 K8 s) e. ^ - (setq dialog-state (start_dialog))
) _ z$ p! h- I" K1 _+ X6 z - (if (= dialog-state 0)
7 u% M5 G, ~ H1 W1 X$ } - (reset) j6 H. O* g: ?* Q. e6 k' W
- )
- j* j! ?) L+ ?6 j4 ] h/ Y. Z - (if (= dialog-state 1)
|7 {& Y% o! y# E6 K5 g( s T2 h) Y - (modify_3dface)$ q! l9 x5 z9 X5 R* L
- ); L% m) V U& P, I8 \ ]: V D
- (if (= dialog-state 3)8 E5 \* a. k6 G7 Q8 K& f9 J
- (progn
7 M) s! R. P: }5 n - (modify_3dface)0 G* c9 M- d# c; W$ `, W+ R
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))5 ?8 J S8 [% V
- (ver_pt1 0)
* `: X& ^* v$ }! Y. K& k- K( N5 o8 \+ ^ - (dd3dface)
0 V2 a- W$ ]9 I) l1 V: a! ? - )
: B; A) |% L& L B- E - )8 [# G4 Z9 A" W
- (if (= dialog-state 4)
/ Z v0 I' J7 [+ |* R" y. h4 H - (progn/ m' X# d; m( r8 c8 H. {0 Q
- (modify_3dface) p$ D% H; B F' W; _8 P0 `
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
7 ?. [" j2 c1 m; q" V9 r - (ver_pt2 0)
& @8 J. i5 L! C' f - (dd3dface)8 W5 o& l8 [9 A- w" E0 F; ^
- )
; |; V: u+ K l Q - )/ z2 O1 p$ E- M& I' T. N
- (if (= dialog-state 5)
- P# _. R0 v/ b( h4 A' ]- d$ `8 f - (progn2 U0 e! R, s, t: v% Z* }
- (modify_3dface). v& L6 B: j4 l9 {1 v9 E" G- |, v
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))6 l; H0 e4 }/ T( Y
- (ver_pt3 0)" b% b$ D- d" b7 F1 a
- (dd3dface)
, w5 q, b& z ~6 k! y - )
S) z4 e7 X; y1 i2 I! n - )% C3 `: B% X4 X; T# k
- (if (= dialog-state 6)
v4 i! V' X& { - (progn
0 I% s) A$ L' w% @" E$ v - (modify_3dface)
# R9 T: x+ q& }) u! n - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
5 H! |5 }1 P: G6 _ - (ver_pt4 0)0 \; i- W( [- X* d
- (dd3dface)6 @: T' w& f4 ^5 j
- ) b$ u$ G) h+ E7 l* X1 ^5 d, [
- )5 r1 S8 Y( M8 l# J, r
- )/ ?( L. c3 O/ S! I2 \
- 3 q1 h0 [8 g' o) D! r0 B$ p. D
- ;;; M2 g: d+ B( l, w! X! F0 g: y
- ;; Image functions
2 D# `9 E. t, I4 r" H - ;;
8 {2 ^0 H) U( ~& g; ^; c$ } - (defun image_scale (/ upixel en n userscale temp)
, V& V2 W) B3 F- W# S- a - ;; Calculate the size of an image pixel in AutoCAD units
7 N8 o/ _- X- i" R! Y2 M - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))& h# s1 s6 o3 w( T0 s
- # A J3 y% J4 _& q) p: R$ a3 ~9 [' w. I
- ;; Retrieve the user scale3 P8 F' l9 o2 `0 |1 R5 y2 G- B
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
: ]- M b7 }5 D; q6 `; a
. J: ` ^4 F1 O. z# t# A8 i# M/ C- ;; Next, extract the image units and pixel resolution# a" x" ^1 _0 n7 s, d6 S- b @
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en)))) G) ?* K9 v) m
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))
! \" }: O) [' e& |* A, R* r7 B% U - (progn7 O. D, D2 q' C0 A9 T; l, T0 p
- ;; Convert the user scale to the proper word
/ C. o. R( N' f0 u6 M- Z$ | - (setq n (cdr (assoc 72 en)))0 v8 G c+ R) f9 W! N4 R& r
- (setq temp (getvar "LUNITS"))
" S) J/ v7 u& D% C( z - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))* Z7 d% \- ^: Q" K
- (if (= n 1) (setq userscale "Millimeter"))% ]5 x2 |9 s6 O8 K
- (if (= n 2) (setq userscale "Centimeter")), Y$ b" `$ F3 ~5 f! Q* V
- (if (= n 3) (setq userscale "Meter"))
J: j6 X. A. `& d - (if (= n 4) (setq userscale "Kilometer"))2 e# \: O# D, M2 ^
- (if (= n 5) (setq userscale "Inch"))
' I7 E7 s k' T7 ?! w4 S2 I7 s* C( J - (if (= n 6) (setq userscale "Foot"))$ F" k) T+ x1 f; u1 o
- (if (= n 7) (setq userscale "Yard")) s" e6 e. N& f8 x a
- (if (= n 8) (setq userscale "Mile"))
7 s; `. w0 z+ ?: ^ D - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))5 b7 u" N9 w" U4 C% o7 a$ ]# T
- )
) C4 U; O; W. ]4 |% J: a4 X2 w - )1 Z7 T x/ z3 \: v) h6 K0 S
- )
- e* U& D. a" ~% n m6 t# R
% k: J m% I( e- ;;- s- U$ `3 r( Y/ g; C( K6 V; x
- ;; Scale factors for block insertions( `& H& ?3 {2 m, v* s4 n; I3 a
- ;;, ?# j" R- h8 \- E7 }
- (defun image_set_tile_scale (/ temp)( T0 r) i/ m) i
- (setq temp (getvar "LUNITS"))1 Y$ B5 b' X$ n: K1 T
- (setvar "LUNITS" 2)
: ?/ G7 p Z# m - (set_tile "xscale" (ai_rtos (* image:scale image:mult)))1 n. w( p, y7 t& A& I" h7 }; U: ]- A- k
- (set_tile "wid" (ai_rtos (* image:width image:mult)))$ w8 l# Q3 z0 C b& ]
- (set_tile "hght" (ai_rtos (* image:height image:mult)))1 x x5 k! t R* y3 Q- J3 G4 f2 R
- (setvar "LUNITS" temp)
$ y% S1 N) U9 V: P - )& M0 |5 G1 [/ S$ {& f
- 4 k! G/ O0 ?0 a( V
- ;;
! h/ M2 ^# p) J( f2 T0 W; k* z - ;; Set the scale, width and height values appropriately.* \' K- M2 v8 U- c2 J
- ;;) W' S9 V) p# w
- (defun image_update (field value / orig_value new_value mult)
% S. P! U, B6 A4 C7 x - (if (= field "xscale")% h9 v/ u9 p; \$ `/ ^) N2 p
- (setq orig_value image:scale)2 T! g6 ]3 _3 n/ k7 m
- )
& ^: g2 B9 y' @ - (if (= field "wid")
# z* Y* F- p& R - (setq orig_value image:width)" g/ S4 [9 i P4 X' F* k
- )! k6 K$ { G% u. u
- (if (= field "hght")) v5 N% |( P/ d' C( s. w* n% l4 M9 r
- (setq orig_value image:height)
. \! j+ e5 p! I1 c% b - )6 W1 Z4 g1 v7 X
- (setq new_value (verify_d field value (* image:mult orig_value)))
$ W- ^$ u) W! ~3 G- Z - (if (/= new_value old_value)
r- D7 O$ g, r - ;; Make sure the user has entered a sufficiently large value
8 A. D8 |: F" b4 U6 g. o - (if new_value
3 B3 a: L" C. X( X: c. L - (progn' A: t" k% N9 B
- (if (< new_value 1e-8)
W% s* X+ p* Q6 f# Z - (setq mult image:mult)
& ` d$ }1 E# N( o* N - (setq mult (/ new_value orig_value))
, w) V7 ]" e0 C$ j+ V - )
# M8 H" l( t$ C2 P) _3 S; X' P9 f - (setq image:mult mult)
; x6 G3 i3 k E) D5 L/ r- l: Y6 F/ g - (image_set_tile_scale)
, G' e3 r# d! S, Y! q ^ - )' G7 ^/ M! o! r+ t q
- )8 C6 J2 z0 P6 p, Z2 L
- )
* e/ n1 E) G2 e) j/ V) c - )* f. @- Y: t8 S4 t" Y0 Z( Q L
- 8 B. x- g* ?; m- w
- (defun image_disp_opt (bit)
- U2 \0 ~3 G3 s" L# { - (setq image:options (Boole 6 image:options bit))
- {8 E; q9 l/ A4 C( C3 r7 Z8 y - )% W& F% l H4 l s1 ?* ~
: D. L( C8 Q: F+ k5 o# p- (defun image_modify ()
/ V0 x h4 P' b5 f4 P4 L, E$ [ - (modify_properties)
3 [0 }& m& y4 _4 m* k& ` - (setq pt1 (list x1 y1 z1))
7 c. Z5 X% Y6 c2 a3 P - (tempmod pt1 10 0)
3 T* o2 n, _% I# g - (entmod elist)) k. x6 ?1 `: n/ g
- )
5 G+ @ H6 V3 {. E9 r - 7 K+ ^; o0 p$ a/ h; @
- (defun image_clean_variables ()3 y2 N. w! l6 `% a) J- g2 z, h
- ;; Clean up global variables used here: G! S; @4 B+ w7 i1 G+ t4 K
- (setq image:scale nil)
, l, q" I9 c3 S; X - (setq image:angle nil)
( y4 t8 {1 v9 X |, ?# M! V! ~; l9 G: D - (setq image:width nil)3 ?; P1 P5 p( ~$ t
- (setq image:height nil)
3 d* Q4 _* Y% e# f1 x% s2 i' l - (setq image:options nil)% _3 j+ l* ^+ | J y
- (setq image:oname nil)4 g! c4 k9 B* W
- (setq image:olist nil)! w3 g5 x# u {; r
- (setq image:mult nil), c# L; D' [6 E' z% |! N ^
- (setq st_ang nil)
+ v; c8 b! O7 N N0 y% J, T - )3 o: k' S/ s2 i; m" ~ s
2 K/ Q0 I+ {7 o& Q u- (defun image_scale_vector (v1 value)
) {( I/ K0 B$ |7 S% {. S# q$ M - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
! i, t" y i& `+ p - )) \4 |' `& z% d3 E/ p5 O: M
- d! w4 q J4 ^* N5 v! H
- (defun image_cross_product (v1 v2 / vx vy vz)1 ^& V9 i' N% Z' Z0 m7 r. E" g5 G) k
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
9 ?: H! u# n' [, a7 X - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))8 o) `' G% m( A$ z
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))4 {/ ^9 d X! q9 }3 V. n. {- J
- (list vx vy vz)
$ j0 J' h9 }0 t: K8 p) N3 e5 M - )4 s8 Y, I8 ^6 B- K
- ( {$ `# }+ |: F1 I" H) ^0 W, g
- (defun image_dot_product (v1 v2)
- M7 Y$ ^% A8 K - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))/ X. g3 ~- c6 A' ?. i5 b; h4 F
- )
2 F8 T; _7 x/ K/ J1 [
3 ?& d! a$ R6 }- (defun image_add_vector (v1 v2)
6 B+ a2 z% @3 B7 F9 ]- e) e1 t - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))0 G ^0 S# a5 \# g' L; \2 E
- )
( Z& i* r4 d" @) X8 o k- [) c - ; x3 X1 G9 N, ^8 B2 P2 @ V
- (defun image_subtract_vector (v1 v2)7 i! ?3 u& \! u, {
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
. ?$ y/ {8 K% h - )
, r, X# h; ^7 s, r1 D4 n4 G - ' [; H6 I/ A3 R5 q6 h8 O
- (defun image_normalize_vector (v1)" f" ]4 k+ }2 N( }" |4 {$ n2 r# k
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
) m4 O% x* X6 t/ c( Y/ s$ l - )
% u' J# q7 ]& ~7 H' \ g c. b - ! {% L% \6 U% m+ k* j$ j
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)3 h! G X6 m0 l8 V5 T4 J; c4 c! g
- ;; Normalize the axis' |4 ?$ W& n0 {3 s, D
- (setq axis (image_normalize_vector axis))
9 V* Q9 @' P8 X4 J& p7 K* a9 u - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))6 R+ Y" x v5 w
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
& Q4 D( Y* d' c) u8 t* v5 b2 o - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
) q; j3 V& w: r! }; J4 f - (setq in_rot_plane
5 w2 j7 d3 |6 r* a. J9 w - (image_add_vector
3 c4 z7 D) `4 ` - (image_scale_vector axis_x_in_rot_plane (cos angle))/ l: g' @; Z- a
- (image_scale_vector axis_y_in_rot_plane (sin angle))/ d4 A$ Y& X4 J8 a3 w
- )
. m. C( d1 n9 o" [; R - )
" c7 _% m2 J) \0 E$ t7 e - (image_add_vector along_axis in_rot_plane)7 D. b! [7 x5 s k
- )* s. r s8 P* i' @
; ]0 n( n" U# ~$ d- ;;$ ?6 Z; Q" Z- }8 k4 D& G
- ;; Calculate current rotation angle if appropriate.2 \% k$ e5 Y, \0 m
- ;; If not, grey out the rotation field.$ V, x4 Y( H) r4 _$ A( U
- ;;, E- B" E! C1 `: c8 x3 j1 e% |7 Y
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)' x9 `' k' i, S. T7 [9 g/ }
- ;; Determine if image normal is codirectional with7 b0 X2 g9 \8 r7 x( c+ q
- ;; the current UCS Z-vector.
- F3 K, u- B' e4 J/ P - ;;) {9 Y3 Q: v( U8 t' a
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
4 U; s f1 v! g0 o - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
1 Q3 B9 r0 l% C$ D$ f5 b - (setq zlength (* (last normal) (last normal)))
# S3 f. z0 z: v8 g u+ E7 R - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.' [* e9 I; w0 L) ~( s
- ;;' ]: q/ t7 p& r b/ B
- ;; cos(.0001)^27 I0 l8 X* ]& M0 d& c0 @& t
- ;; Tolerance = --------------' F8 {7 o5 A J7 D6 l/ Z
- ;; sin(.0001)^2- K- r3 V+ L* p. D- v( p
- ;;$ W% w( x x- ^ L' V$ w; p2 W5 J: C+ |/ T
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))5 X# @" x3 @9 `+ Y! z+ d* f$ j% k
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))7 U, S( z7 Z8 p/ A/ ~" Z6 [
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))$ Y2 ]) N8 i% \! f
- (progn
9 L- _+ B. M- g( _- I - (mode_tile "st_ang" 1)
& ]$ r4 b! l; o& n' o! L/ x9 \ - (setq image:angle 0)0 i- U! D: s' {) N) v! X9 ~
- )' r0 p! p' y( V2 g; ^% b [
- )1 E! ~ ^6 U# {2 _
- )% w2 x. T+ l( O8 j, O9 W
5 L% b$ |& i' R. @$ _- ;;. t' X% C2 y! A2 n
- ;; Modify Image
' G. X. q: t- F! M9 e" R - ;;0 M1 C6 [( m+ B* g1 B
- (defun modify_image (/ u_vector v_vector z_vector)
) n2 _4 X7 h. d; _) D4 z - (modify_properties)
+ v3 ?* @1 z6 { - (setq pt1 (list x1 y1 z1))) v2 j# y8 L2 Z9 L: ~
- (tempmod pt1 10 0)
$ e7 K6 W4 n" V% g( `& U - ;; Make display option changes to image
, q: Y+ A( P" x3 B5 S# k - (emod image:options 70)
v) ?% [ g) K% v5 g( `0 S# Q" G - ;; Get the u and v vectors
: u( x& v! N3 n2 f0 o; u, l - (setq u_vector (cdr (assoc 11 elist)))
p I# l" r/ ` d1 c4 J - (setq v_vector (cdr (assoc 12 elist)))
9 u2 B& K& |1 X4 }$ K y: s2 I - " I1 O( q: a# y8 ]
- ;; Make scale changes to the vectors R8 l/ L2 g9 [7 Y
- (if (/= image:mult 1)7 N) R: j+ m6 \) }
- (progn2 i2 i1 I& M3 P2 |
- (setq u_vector (image_scale_vector u_vector image:mult))! {0 G& {, L! ^7 C v
- (setq v_vector (image_scale_vector v_vector image:mult))
+ j* j4 u# h# {& P2 { - )
, K) m0 R/ H0 C; ]" _) p - )# \/ z8 h+ d- }5 M) e
- ;; Rotate the vectors5 J( ]3 I7 P" P0 S. U
- (setq st_ang (- st_ang image:angle))* }# b; f% K% d. S7 }( j
- (if (/= st_ang 0)( G: @( y* H+ B* w4 g
- (progn
! y) G2 u3 R9 e" }7 C. B - (setq z_vector
* R" Z( G) D7 f7 {, O - (image_cross_product3 y$ [8 X" J6 H. ]; l4 g
- (image_normalize_vector u_vector): |: J- o1 \6 N) q5 c* k
- (image_normalize_vector v_vector)' d( _5 n% K+ P, m; J' s* c
- )7 J" m. I P3 T# H* v
- )) q0 s, ?' V M$ {" c d i
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector))
7 P; {+ B9 I( J3 A1 \+ l2 N0 G - (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
# g$ C$ _. s7 R# \ [7 ^" q - )* k, }9 R- L1 e
- )
6 O' W+ ^ |% b' I - (emod u_vector 11)
# u* @5 I/ o! i% Y' r; E - (emod v_vector 12)0 s* {5 a B1 ]! Y
- (entmod elist)0 {/ Y) _5 u, S2 M) Y6 s0 n
- )
9 N- \2 T0 o9 v, i7 C9 E6 U# E - ' |% ^, n' A1 e- k; z$ J. {
- ;;2 u" [7 ]7 E1 q* L% A2 x0 n$ v
- ;; Run imageadjust on given entity, working around possible/ A2 y! N/ F) d( J m+ p8 r
- ;; re-entrancy problems2 x& N, [- g5 F/ g3 d( |6 t+ [
- ;;' t7 T! `8 y$ g
- (defun image_adjust (ename)# m0 c# G- j# @. {3 E6 @; ~2 F7 a
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...: T6 G3 b$ G% F5 X$ B! u, f
- (imageadjust ename)! q( s. k6 ]( s6 D6 f
- )
Z; ^) O0 V9 ?( g( W1 h/ p - $ z O5 X% ~+ l+ U4 @
- (defun ddimage ()
1 w/ c* c* A+ A: o - (if (not (new_dialog "ddimage" dcl_id)) (exit))
- o, w4 Z0 N ~ - $ V5 ^( o5 d! k- w1 H! j- M
- ;; Grey out the thickness field.
4 r& P* w4 p6 g$ C - (mode_tile "b_thickness" 1)
Y* {4 m d8 G% I5 X0 s- O - (mode_tile "eb_thickness" 1)9 X7 M5 b. T; k+ E
- ( ~8 L$ J0 ^. {8 t$ i! ~
- ;; Get the associated def object.
! H% F: `7 D3 i) }' ?- D/ N - (setq image:oname (cdr (assoc 340 elist)))
" T+ f. x# \: j# N( ^. s - (setq image:olist (entget image:oname))
( R8 t( a/ w) C0 m- y# w - - D B, w; v3 P9 j7 J
- ;; Set initial tile values6 K9 b, F( Q9 R$ D/ b: f0 G
- (set_tile_props)
; w3 |! V' S" r# ]/ H; C - (set_tile_handle)
3 b0 ?6 I v% m% a& `2 m! S! F, O9 y& A - (set_tile_pt1 0)! S: q* F1 U7 J) j) h8 m' a6 f9 ~
- (setq image:scale (image_scale)); }: a" N1 L) u! t! Q* U$ U
- (setq st_ang (image_rotation))* G1 W0 B7 R+ A: N) ?- `4 ?& a# ~
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))) D: x5 ^+ G4 S8 G. B `: W% `
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist)))), K9 P9 y2 Q y% C3 [! I$ G
- (setq image:options (cdr (assoc 70 elist)))$ K, `0 o( m# ~1 G
) U0 q8 }3 P4 Q8 Q; W- ;; Record the last multiplier for use in image_update function
* Y& k# P0 X* z0 c - (setq image:mult 1)
, j" S. w( q, t7 x! q - 3 x5 l$ q( W; m
- ;; Retrieve the image name
0 X6 b6 ~# b8 Z4 } - (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))
J5 n# l% k5 o - (setq flag 0)
2 c; s! g, |/ e - (foreach n fn- D6 J: C$ y# s- A% l& G. a
- (if (= flag 1)9 v( w! X9 }% J" A- x/ I4 Y4 c+ v
- (progn
# g6 j: t8 w2 S' V# n - ;; Display the image name' d! Y8 e7 V& o; e5 y/ x( [
- (set_tile "image_name" (cdr n))
; C( {: c* ]( J7 P* R9 q - (setq flag 2)
6 W6 E. `5 {" F% O. i C1 }- {% j( l - )
- M, z* q& Z: U% W6 V+ {( }* | - )
) M1 M5 Y M0 u - (if (= flag 0)
7 N, W" ?% [" E" v - (if (equal (cdr n) image:oname) (setq flag 1))9 ?1 m6 }9 r2 x2 H" K3 w
- ); Q9 O) g1 B; v6 C
- )
3 X) }4 n! N# K y% T- @, q% V
% M( E/ G) d5 z: b+ f- (set_tile "image_path" (cdr (assoc 1 image:olist)))5 H/ v% D' E4 H" P
- (set_tile "st_ang" (ai_angtos image:angle))
$ T/ Z' T' C* y; d. B& H - (image_set_tile_scale)
% f" v% |# N/ D/ y3 L# a3 z; S - ' S( M$ j$ O% s# t% J4 i: T- ]
- ;; Check the appropriate boxes
8 v" o7 i% w; K# d o - (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
; ?9 A2 t" v+ Z - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
9 k" H4 P2 n; ^/ Y5 u4 y; `) k - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
' r" P. Z( O6 ` - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))6 {& V& [* c7 D. M6 S! k, p
% R Z& z- o5 a: G6 c4 L* x- ;; Define action for tiles) s9 w: ]4 N$ a% ]1 f
- (set_action_tiles) U6 S" m4 D! }- _8 x+ ^
- (action_tile "xscale" "(image_update \"xscale\" $value)")6 R8 B& [% t# `& k# W5 v3 D
- (action_tile "st_ang" "(ver_ang1 $value)")
: F2 I9 N7 w! ?" M5 i3 V6 _ - (action_tile "wid" "(image_update \"wid\" $value)")
* P1 K; M; Z% T) f: U - (action_tile "hght" "(image_update \"hght\" $value)")
4 L8 t, e+ s! U$ n a. l9 z7 W - (action_tile "image_show" "(image_disp_opt 1)")
! d/ }5 b1 F. P' }9 j; C3 |$ \ - (action_tile "image_non_ortho" "(image_disp_opt 2)")
) x! e% z; w4 A V - (action_tile "image_clipped" "(image_disp_opt 4)")
, S# L1 m( |2 H: o; I) @ - (action_tile "image_transparency" "(image_disp_opt 8)")7 [- [9 A. [ A$ i6 n8 {
- (action_tile "image_adjust" "(done_dialog 4)")
7 H# t* W. W; s* x
- W* }3 f+ |) W9 v- (setq dialog-state (start_dialog))
$ }7 t0 X) y0 S" z - (if (= dialog-state 0)5 s7 S( D# y3 j% o5 Q
- (progn; V& W! O2 j6 S- M* ~( A( z' o' f4 Q
- (reset)
* v$ o c5 _3 \( H - (image_clean_variables)2 d' k5 D# \1 X+ _3 F5 P
- )
0 s4 ^1 k, z @ - )
* H4 G q" c# X, o7 D8 m - (if (= dialog-state 1)
' p& K6 m* }+ K6 P3 q7 F& E - (progn6 P# r# O$ Q1 Q/ ?0 j
- (modify_image)
* n- s, b: a0 z% }+ ^ - (image_clean_variables)
+ V6 C# p! S6 q& J+ q: ]% O - )- L& b T7 i+ b$ q* R
- )
% R& O' e. c! c4 P5 l2 K - (if (= dialog-state 3)
2 ]) u+ S( }- \- t - (progn
! X! Y3 k! C5 l# B& d* X - (modify_image)
- A. |3 ?8 [! Z0 x* n8 I& V! e8 r - (image_clean_variables)
/ j: s( P. X- A' G# j - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
" t8 {9 c, t1 O - (ver_pt1 0). p9 I0 ^$ [% X( V9 _0 @% T8 [8 V [
- (ddimage). y; |! z8 \+ _( e$ m5 \/ Q# G
- )
# i0 U' s6 c% o/ H+ H4 a$ S - )
. }% e" X) X0 V7 F% g0 ~4 J6 n - (if (= dialog-state 4), E8 y- A1 }/ y0 \9 h( o! ^5 N1 z
- (progn
$ ?& G9 y3 ^. E1 G8 m- N0 G4 W - (modify_image)
) T: b5 Y! Y" \+ R! r - (image_adjust ename)
1 J5 I5 I1 A, K, A - (setq elist (entget ename))
6 T& i9 t+ |4 T+ M2 s - (ddimage)
+ ~( Y! _9 ^' D/ g - )3 ]1 |8 u+ D/ S# z' T1 Z& a
- )" S6 B! ^0 o6 ?' b2 D$ l) t8 m2 I
- )4 \2 H5 j9 \0 K% a! ? V
- - S" t# V9 Q5 ~4 i/ i
- ;;
& y! Z8 L7 k- p- V - ;; Modify BLOCK (and its Attributes, if any): |( h1 J. n% z9 t
- ;;
7 j) j" k6 F: R3 j, O8 U. H - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
1 y; t) g- m# R T - new_wid old_wid old_rot scaling old_scale
/ a Y- ^6 m& z - xdelta ydelta zdelta xbase ybase zbase ipos)
( X6 P/ u4 B& B1 f - (modify_properties)
8 x( ?# \. R/ R7 P+ [ - & p) B$ f8 O _: H- P* ^1 f$ o) @% _4 `
- ;; First, translate and scale the Attributes, if there are any.
9 ]* j5 y+ K# b - (setq old_rot (cdr (assoc 50 elist))1 H7 u4 E* f" E( d
- old_scale (list (cdr (assoc 41 elist)) P; `" g7 t6 g0 x/ ^
- (cdr (assoc 42 elist))
3 }2 b, _, H2 d. a) Z, S# K2 P - (cdr (assoc 43 elist))
3 H. `) ^1 E* @, ] - )
, [0 z* |: k( U/ d8 r* Q - scaling (or (/= xscale (car old_scale))
, [. v- `6 }9 L' ]) Y1 i7 g0 C - (/= yscale (cadr old_scale))$ K; G" ?6 W7 {% [/ P* X
- (/= zscale (caddr old_scale))0 E" s% ?9 H# D' j/ p% ?$ e
- )/ S; w5 B$ D$ g! v) _; A
- attr nil ; No Attributes modified yet
?$ {0 F" K0 D/ Q' U/ F - )
' w4 X. f& e, |2 T4 Z3 h0 e - (if scaling; _4 ^& |' k7 i/ Y/ F
- (progn
8 Z% i( A: M* |* W - (setq xdelta (/ xscale (car old_scale))8 C! ]2 g$ A! f% m) e$ |1 V
- ydelta (/ yscale (cadr old_scale))
, I9 I: W: u2 w- B+ Q ~ - zdelta (/ zscale (caddr old_scale))) D# L; G( s; g: \3 X
- ipos (cdr (assoc 10 elist))
( J, }" |! f, ]% S( j - xbase (car ipos)
' k x5 b! C _% x6 l, ?& W7 k0 V - ybase (cadr ipos)% z8 p8 r2 G5 F
- zbase (caddr ipos); d- Z7 W0 N; ^- }, D6 X R! |) @/ B
- en2 (entnext ename) ; First Attribute
5 o) Y; ]; ] u' w e0 Q, n - )5 o$ {' ~# } m) _+ f
( ~: a, @, m X u. R& }- ; If the Block is rotated, temporarily un-rotate it, along, G' e6 u' o4 X n# z7 a& l3 @
- ; with all its Attributes, so the scaling/translation of the
) z/ A' q2 R7 R6 b, n1 W - ; Attributes won't have to take the Block rotation into account.
- h% w0 l5 Y: K- N7 m - (if (/= old_rot 0.0)
; n6 C- e4 B+ _, w- i: B4 b# h: W - (progn7 g" g3 q2 ~9 b! w
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
% f+ ^% ^7 z# T. g9 a3 n9 x - (setq old_rot 0.0
0 G0 U* Y2 s0 A; H - elist (subst (cons 50 0.0) (assoc 50 elist) elist)
$ w( A/ I; s; C# C8 H - )
2 j8 |9 Y0 q" q( ^- V( \ - )
0 q. J' q. T2 u+ q8 ~4 w - )
9 L9 x0 \$ Z4 X
/ G6 c: `# S, N2 g. G- (while en2( Y$ T0 L8 Y( B: d" v% _6 y
- (setq el (entget en2))
& i' k6 J) M! J {# c5 T - (if (= (cdr (assoc 0 el)) "ATTRIB")6 l. q8 M. X7 V0 @
- (progn6 I1 M0 z; ~) ^, y6 J" A* B* h: ]! H2 f
- (setq old_hgt (cdr (assoc 40 el)) ; Height" B3 W9 [" I& U; b' ^
- old_wid (cdr (assoc 41 el)) ; Width-factor% \8 J% z# F L. d/ k
- oldp1 (cdr (assoc 10 el)) ; Generation start point% B' ]; o7 |8 f* q$ p7 A
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt1 `" P4 O1 W: S- W) e
- ha (cdr (assoc 72 el)) ; Horizontal alignment( q2 X, J6 x' W5 _0 F$ l
- va (cdr (assoc 74 el)) ; Vertical alignment _; F* \# c; F- t9 ^8 M
- ; h' C3 n6 g7 p) w6 m' _; g9 F
- ; Translate gen. start point
, M- d8 v8 `2 l7 w" i4 G& ]( R - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))- S. w7 _. w% c# m& h- ?
- (+ ybase (* ydelta (- (cadr oldp1) ybase)))4 }# L0 o# J# Q1 }* O+ U1 L
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))( \) A: |2 w, X% {/ x9 d
- )2 I! ^1 _/ S, c; v9 h
- el (subst (cons 10 p1) (assoc 10 el) el)# K. S! k& D- H6 o0 a, X% r( N
- )
p0 {: j% K% g) D* C5 @! M
' I; j; Q2 J! l5 a& ~- ; Translate alignment pt similarly, if present and applicable; m7 Y9 `1 F: r* w9 g
- (if (and oldp2 (or (/= ha 0)
& d% k6 y- G3 g% i* w - (/= va 0)
% R1 m6 x, ]6 b( J - )9 D% x6 U8 a" S4 ?
- )
* o9 ?$ W. D% N9 O4 F% W/ x9 ]4 } - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
& v7 V |9 y( K$ q- K - (+ ybase (* ydelta (- (cadr oldp2) ybase)))+ J& q7 h7 A* o q( f
- (+ zbase (* zdelta (- (caddr oldp2) zbase)))3 l6 T$ \. _9 q. W
- )
- [* W1 Y9 m9 t - el (subst (cons 11 p2) (assoc 11 el) el): j5 W( `8 K8 q$ k# z+ J
- ). v/ @1 K) [+ L4 L. |, T: j- R
- )
! z& A9 K& A4 y) M3 r, z o' F - 9 P" N7 e2 ^ O, K' X! {! u
- ; Each Attribute's height and width-factor were computed
- c$ ]3 `. x- \4 c4 Y# M6 q; A4 h) M - ; based on the Block's scale factors. Adjust them now,
7 B, W; T" A/ x- b& ?% M( E% J - ; by first reducing to values for 1x1 scale...4 w1 ^, _5 N- F9 f" V4 t V6 T' }9 p
- (setq new_hgt (/ old_hgt (cadr old_scale))
6 A R: d! i5 v; b; l2 z6 R - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
g5 m. l3 y* O: q - )% X; x/ H- B$ L' v/ A J
- ; ...and then rescaling.
: Y# I& `& R2 p8 t' b) w v. @; X - (setq new_hgt (* new_hgt yscale)
; D3 |2 Y' [1 p* P - new_wid (* new_wid (/ xscale yscale))* w' O" X: H. ?
- )
) C( ]$ x! H- O. ~+ w) T2 e: T - (if (/= new_hgt old_hgt)
$ Y& Q2 n# }1 u9 F ?& L1 u - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
! l# H- x# }! {$ ]. D: i" Q - )* m9 z7 r- R# Q7 p' x! p
- (if (/= new_wid old_wid)
9 u7 A) ~1 @) ^, ] - (setq el (subst (cons 41 new_wid) (assoc 41 el) el))6 L, ?: d" j1 E v
- )
% z/ l$ ]3 g1 @; l) N5 p( f - (entmod el)* c# X# z$ r `+ ? D/ s3 w7 z
- (setq attr T ; At least one Attribute modified( _0 F8 O. g/ `+ Y
- en2 (entnext en2) ; Next Attribute
/ p, |) O, r% A- n7 Z L - )
8 T" F1 H! q0 M( X2 f, `+ j# ~ - )
{) I2 @7 K1 k2 ~( m/ ]* H6 [ - (setq en2 nil) ; No more attributes
! D: g: g/ l- y; q, o) K6 i - )
. \; c2 {- l' i$ M* @" o - )
, g* z9 g% r, g - )
1 I$ o& P! S$ V; a, D7 B - )( B# F$ @9 Z0 ~9 K) k4 T# m
/ O* M$ {1 n6 u/ ?6 t) G: ?- (setq pt1 (list x1 y1 z1))
* @; O0 N7 L! e4 P- z" d - (tempmod xscale 41 nil)
' x' e6 h6 N& }' W4 [5 T: Z - (tempmod yscale 42 nil): n) h* \! w3 b+ F) W" {: @( y
- (tempmod zscale 43 nil)
2 b# x( [% W8 x - (tempmod col-sp 44 nil)( L; ^# V+ s& |# [ E
- (tempmod row-sp 45 nil)
, p- a5 V6 x& e6 T; q - (tempmod columns 70 nil)
" j2 K* j4 ?6 w* k( ~: G: e - (tempmod rows 71 nil)
5 l3 {2 h. N- a8 I- X$ g5 u& M - (if (= xclipmode nil)
3 E' o, ? F* ~5 v0 w' ^ - (entmod elist)
+ B5 z# m# N6 Y w: D' Q' O - (setq xclipmode nil)) w1 l! c9 R" ^% x( V/ W
- )/ b- g- v; E$ a3 ]
- (move_pt1 1)
' v- V0 f( E! `. V, ~7 D( Z
- h5 F8 T( |& I& U' Y' t- ;; Now do the rotation with the ROTATE command.
& D& |. Q+ G1 | - (if (/= old_rot rot)/ E% y$ m. {' N8 C' l' q& X
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))4 l$ Q1 r: J' u0 I$ W
- (if attr ; Else, if attributes were modified,
' u6 E: [/ {. u _# B - (entupd ename) ; just regen to force attrib display: ?6 H v# R% v2 G' s% @
- )
' v& |# r! L$ U0 X* n - )# f# C Q/ u0 U; `. @2 N
- (setq elist (entget ename))
3 f: ^+ N: M: a J2 {$ X& M - )
0 O2 @0 `" T: J" Y& M - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
3 A; c. l- p2 |& E* d v, E$ \ - (setq newhatch 0)
# J2 r) r& i, C2 A. R8 t - (setq blkname (cdr (assoc 2 elist)))
( C7 W$ b* n: ~, | - (setq blklist (tblsearch "block" blkname))
( k: ^( [. a* q1 n1 R! C! ] - (setq blktype (cdr (assoc 70 blklist)))" Q6 `3 p4 y4 F) z) T3 Y. @
- (setq xcliponoff 0)& }+ \/ G# n, D5 {6 A
- (if (or (= blktype 0)(= blktype 36))" z8 X9 C/ @/ C+ f9 N
- (progn3 Y5 v7 b- x- x+ O
- (setq xcliponoff (xclipon elist))
) n- c) a$ a: s* k% N: ~ - (setq temp_xclip xcliponoff)! e, C8 ?7 s9 E9 ^
- )6 m8 r# f$ @" k# N9 i) p
- ) [- Z9 b0 N: R1 n6 Z, c0 O
- (if (= (logand blktype 4) 4)
0 G: _ H; y. n8 [! U8 q - (progn
4 w3 j' v7 \( n) `. {% u6 x( F - (setq xrefpath (cdr (assoc 1 blklist)))
+ U, g! }1 j# ~- [9 M+ ? g - (setq help_entry "modify_External_Reference_dialog")" v- Y8 r, \! S# j% z) |( b; u
- (if (not (new_dialog "ddxref" dcl_id)) (exit))5 h# {2 \* f1 S# F( n; F
- (set_tile "Bl_name" blkname)- N- [/ a" j- J" H0 F- a
- (set_tile "path" xrefpath)1 z2 F2 M% G* _$ j8 K
- )
' Q: \: S8 o$ x7 C7 `/ E# x - (progn0 K2 l5 S h, H$ ]2 d! ~2 p
- ;; Get program name for use as Xdata app name t: n# P4 D; H, X1 a! J
- (if (not (setq program (getvar "program")))2 ]8 r" b" n: x$ {% L& z I) }- F
- (setq program "acad")
/ V. C+ P7 c, J - )4 ^7 E1 {6 X- ?! ]
- (if (and (setq temp (assoc -3 (entget ename (list program))))
4 U! G+ }% {/ V: C- Q - (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
' l" K4 m! F z1 w/ I8 n - (assoc 1005 (cdadr temp))% \6 o& X7 f/ x/ U6 y
- )
3 a# I. m* L. I! I - (progn
7 d i$ W% W9 d0 Q2 Z) d1 n - (setq newhatch 1)) f$ P, q5 O# q" }& g- k3 x
- (setq help_entry "modify_Hatch_dialog")
: @1 D. o1 M o7 |" p - ;;; convert the object into a new hatch
& u; j: y: g& Y4 J- D6 z' [ I4 y% R - (ai_undo_on) ;; enable undo
, T/ A c8 _. C! q$ U - (COMMAND "_.UNDO" "_Mark")
/ E% O! M7 w' S" W$ U R - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")% A% ]7 J* g+ C1 S S
- ;;; suppress nasty message from convert command( I9 l0 t, p; c$ V, o
- (princ "\r \r")
5 _2 } G" v' F2 X* ^3 R! [9 J - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
* S) e& q7 B" `- _ - (setq old-elist elist)# {! l* o0 V& A4 s
- ;;; If we have cancelled ddmodify7 j; Z8 M: q1 u* h. @
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
* h z% `4 i' ^- P7 W, S9 g - (command "_.UNDO" "_Back")
; k; q0 \. m& I } - )" ^3 a6 U4 D0 ]6 I; A) d# M! d
- (ai_undo_off) ;; restore undo state$ e& m# a# D+ D# ]
- )
7 H8 F* r5 T% d( r9 H$ J - (progn: ]1 K4 G* S9 _! c" z
- (if (not (new_dialog "ddblock" dcl_id)) (exit))4 _5 }3 I8 E3 [. p; J' a
- (if ( = "*" (substr blkname 1 1))5 ^ U* u" N7 F0 C
- (set_tile "Bl_name" (strcat blkname " - Anonymous block")) z" w' B. v/ c& C6 h# g4 ]
- (set_tile "Bl_name" blkname)
* i) K7 J1 `5 ~$ p8 P5 \ - )
, e2 ~# U. `- V$ e, f - (setq help_entry "modify_Block_Insertion_dialog")
* q7 Y9 u& S" h/ ^3 ] - )
; U0 y4 ]7 U3 E! \ - )% F/ c* m" Y! q
- )
8 b4 I* h5 k' H. e* z! ?# D - )1 R0 Z3 M- z# L+ c
- (if (= newhatch 0)
" @4 c7 o: X. f" t8 | - (progn
?0 |7 H6 v6 b3 ]- a( i9 I - (set_tile_props)
3 G, L2 A2 f$ U. I& A0 |4 v - (set_tile_handle)
# y* Z2 Y6 ?: t6 d' f8 j8 @ - (set_tile_pt1 1)$ F& @, u. @: n; z5 w+ _
- (set_tile_rot)
( q# N P2 v9 S1 i6 p$ C - (set_tile_scale)
8 A9 M. i& O7 F4 l6 Z% U - (set_tile_rc)
" C0 a6 p4 S1 s0 ^8 ^6 ` - (if (= (logand blktype 1) 1)6 Z/ V% O7 {- `% X
- (progn% a; O% k6 e& M# W7 s' v- p) A
- (mode_tile "xscale" 1)1 T0 R) f6 f3 H, [& h6 N
- (mode_tile "yscale" 1)
' I6 |% M1 o, v2 H0 V1 ~& b b6 d* N - (mode_tile "zscale" 1)
! o# o. \! _) {# d8 Z( g - (mode_tile "rot" 1)
" ?% F3 x" |* d' V- A - (mode_tile "columns" 1)+ ?( ?# T5 g; |/ F: S1 x
- (mode_tile "rows" 1): R; [2 @( u9 F% z' ?7 Y3 Y- ~- [
- (mode_tile "col_sp" 1)
7 h k% i8 G) l u" D - (mode_tile "row_sp" 1)
; }; u2 N* |* s" t, H - )
' b* b2 q4 l. {1 W2 v - )0 o- |* s5 t1 b8 H( i
- ;; Define action for tiles8 }6 O6 j. q" w: k
- (set_action_tiles)
$ D# ]/ o7 d% ?# @; F4 s - (setq dialog-state (start_dialog))3 S9 q( V D7 H, a. Z
- (cond6 C1 j+ i) I7 Y- l! @
- ( (eq dialog-state 0)+ F" v" h; k; l! L
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))* o3 ?1 H2 ] y; E; h. @* H/ d& K3 L3 F2 I$ m
- (move_pt1 1)- a" O) t& d" q" _1 @8 E! k
- (reset)) g8 o7 @0 }% k+ H% \+ J$ b
- ( (eq dialog-state 1)
3 S/ e! J! f. b: ^1 V9 T - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36))), P7 X, I0 i; t+ F0 \1 |
- (xclip)2 g* u( `+ j R
- )
7 Y; V$ o0 ~& o3 X2 |7 u# ~ - (modify_block))' b h0 `# w) P! M8 t( G9 W1 s1 j9 a
- ( (eq dialog-state 3)* B5 i6 \; T4 k/ a, m5 A& J
- (modify_block)
" o, k3 b5 y1 Z1 I0 C8 ]$ _ - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
! W, U4 e3 G7 y4 D - (move_pt1 1)
% H4 B+ @& s- d - (ddblock))
( S/ G9 U/ k$ ^# M; O( o$ q! j" L - ( (eq dialog-state 4)
1 B4 |; e6 c R& b5 D- ^$ N - (modify_block)
. p5 {" e3 g k+ R2 s' v - ;; Get current handle.7 N9 \; Z$ J; E1 W F$ u
- (setq hand (cdr (assoc 5 elist)))
% ^& ^* H- `( b( z- ]6 P# N; O - (command "_hatchedit" ename)0 K/ ?+ F$ E. G( x. t
- ;; If OK in hatchedit, a *new* entity is created and the old one
! m! ?$ l* c" j/ X - ;; is deleted. So if the old one exists, it must have been a l8 S( \$ L" ^& F
- ;; so rest the entity.) i5 o4 P& U1 [4 Y- B
- (if (entget (handent hand)) (reset))' ?8 X8 R7 z, F8 y
- )( }0 o2 b) `* r5 l
- )
- o8 I, H- b9 }! s" a( n+ m - )
( j5 i* k0 H( B - )
0 K* ?% ]1 t+ k( {0 A - )% P# ^6 X. M7 w" Z$ c3 J" W( h7 s
- ;;
% _3 T2 ?% D) d9 \8 O/ C. Y - ;; Modify SHAPE( R5 Y. }* N4 ] u4 N
- ;;
* C. Y K) R* M* G/ ` - (defun modify_shape ()
2 F& |/ E% N) n - (modify_properties)* _5 F0 N) j0 U8 V0 Z, t& }" k
- (setq pt1 (list x1 y1 z1))5 I/ S; d$ U1 i" h% M
- (tempmod pt1 10 1)1 Q& j" h. \3 {1 x- a
- (tempmod hght 40 nil)
: P( K2 d: [/ [, W - (tempmod wid 41 nil)
4 [/ X7 l5 h+ l8 M: k" v9 i7 N - (tempmod rot 50 nil)' q P8 ^# a& k3 Q) [
- (tempmod obl 51 nil)
7 M# G6 m& p: M6 @& `) G - (entmod elist)
3 k2 q7 y( t( h r: m - )( j+ ~+ {% C7 r: l+ C* V
- . X& Q, a' e& a8 g% f# c# X
- (defun ddshape ()
+ E( @- | `8 r' T/ v+ ^ - (if (not (new_dialog "ddshape" dcl_id)) (exit))
6 R! j% V/ u$ |1 ~( d$ [! \ - (set_tile_props)! o# m3 ~$ O' l( P! ^
- (set_tile_handle)
! F, _- B7 Z1 _, ?9 ` - (set_tile_pt1 1)
9 A4 @; l+ r7 U) u1 e0 b - (set_tile_rot)
- |' X5 M( F( O - (set_tile_hght)
8 T+ m3 x. \# _/ W% U - (set_tile_wid). {1 v0 |" M0 K& |# [
- (set_tile_obl)
; \' [4 P/ j6 [: y' [0 B - (set_tile "sh_name" (cdr (assoc 2 elist)))/ G2 c4 G( X1 s( Y
- ;; Define action for tiles9 z8 E2 y6 v2 _8 u; m( f! G
- (set_action_tiles)$ T& t u" V7 j
- (setq dialog-state (start_dialog))4 a2 X/ s8 ]! w3 B# p ^
- (if (= dialog-state 0)
& a9 K1 x/ _8 y - (reset)
h/ J8 d) w; k/ r" c9 y - ). K! ~7 s, ` @; ~) U
- (if (= dialog-state 1)! f$ i- l5 ?; b, B/ Q- ]
- (modify_shape)4 |5 |4 E5 v# Z; X9 }
- )
, @3 |( a# m/ \6 @ - (if (= dialog-state 3)2 W$ z# Y2 p2 i: R+ a4 i
- (progn, H" }( J- M' }
- (modify_shape)2 d' B. K3 p$ f" n1 p
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))- M5 P, x" J, L
- (ver_pt1 1)
0 K& h5 h) d# o1 s4 T+ [6 z - (ddshape)+ I: R! @& p0 l" |/ d
- )! } _) ~. \8 O/ ^" p
- ): `9 K- H6 O, k# x0 V0 z' P X9 ?
- )8 j5 y" d' M9 C' N D% R, D
- ;;' l$ V1 ]5 P( F) K
- ;; Modify TEXT or ATTDEF
" B: V& J4 A! L - ;;7 D+ C* V4 @ ^5 _$ }/ F
- ;; Set bit code for upside-down and backwards setting3 r8 H* a. [2 `
- ;;4 j, u8 M2 o- h) r; N6 h7 I
- (defun code_71 ()% F6 P! ?" @5 k9 \2 u5 j
- (cond ((and (= bkwd "0") (= upsd "0")) 0)& S- O S$ m1 D l k G2 D, H1 T
- ((and (= bkwd "1") (= upsd "0")) 2)5 x1 W' S4 S8 D& k8 x( }) k( f4 \
- ((and (= bkwd "0") (= upsd "1")) 4)+ J% I' b' N! ~( W5 x, x
- ((and (= bkwd "1") (= upsd "1")) 6)
, ?/ X9 x- N$ _3 B. ?' r, j! ] - )
% [7 p. B1 N7 q6 r" N( X1 U7 q; E - )
) V- v& S- H$ l - ;;! }, W+ N w: |* S
- ;; Style action. Reset widget values to style defaults, ], K8 }( f. M/ N4 ?
- ;;9 v- P2 \5 b3 {! U; C7 m8 S
- (defun style_act (index / style-list)
$ z* _3 Y4 N( D - (setq style-idx (atoi index))' S1 w) X$ a& X) y0 Q6 ~
- (setq tstyle (nth style-idx slist))
$ b+ O; }/ s+ P8 J0 H0 H6 B, Z - (setq style-idx (itoa style-idx))
0 ^% j" M5 ]; p - (set_tile "style" style-idx)
/ z& h8 o/ W% w# h0 } _/ c - (setq style-list (tblsearch "style" tstyle))
5 F& f. F" ^4 I, A/ i, L6 q - (setq shght (cdr (assoc 40 style-list)))4 \4 K, U6 g. E I4 h1 r
- (if (/= shght 0)
# n* Y6 K$ I# g* n, n) f - (progn! M& l& `& _3 @
- (setq hght shght)
9 A, t4 Z0 {. M - (set_tile "hght" (ai_rtos hght))
( j F8 I& R6 N- b! g4 Y# @ - )
2 t$ v e9 I( h$ R, X - )
5 _# L$ e! v$ T6 _: O: [1 Z - (setq wid (cdr (assoc 41 style-list)))$ T8 B7 t/ e0 X4 r5 N
- (set_tile "wid" (ai_rtos wid))8 G( b1 Y b% M K2 V: D+ O* V
- (setq obl (cdr (assoc 50 style-list)))- ~" h. K; r7 O2 l; f
- (set_tile "obl" (ai_angtos obl))
* O% W; ^3 E8 D9 B, `- Y6 J - (setq bk-up (cdr (assoc 71 style-list)))
~) C. J- ?& y k' Q - (if (= (logand bk-up 2) 2)) F; r( W/ H! |: R% C3 G* o) y" ~
- (set_tile "bkwd" (itoa (setq bkwd 1))); k7 f7 }1 O0 N4 T# E
- (set_tile "bkwd" (itoa (setq bkwd 0)))6 h4 U- G" j. @$ ]
- ); A, T# c: ]; ~ i4 s/ Z2 t
- (if (= (logand bk-up 4) 4)# d& ]' y* B G* `2 W x
- (set_tile "upsd" (itoa (setq upsd 1)))
% q# ~( N+ c8 R - (set_tile "upsd" (itoa (setq upsd 0)))0 s! ~5 k3 A l( z W
- )
5 W2 _) f3 P+ i, z, [ - )
* Z5 `/ p4 {4 |1 O, R- z7 B - ;;! e6 R0 `9 [6 ]3 c
- ;; Justification action. Set vertical and horizontal alignment variables,
% t2 O+ ^/ M% s7 a/ f" { - ;; grey out rotation and height if alignment = "aligned", grey out rotation
% a7 A/ w# D4 p- ^- L - ;; if alignment = "fit".
6 o {. \! H I. s& }4 ]6 \ - ;;
, w6 d f# h+ p4 z; {8 G! {' N$ \: L - (defun jlist_act (index / templist) l3 ^5 j1 t9 a* g
- (setq just-idx (atoi index))5 l# T: }8 I+ y) W
- (cond2 f; z" h) z4 \" \4 a; A7 U
- ((= just-idx 0) (setq va 0 ha 0))
5 f1 G8 I( ~( w! V7 H/ J - ((= just-idx 1) (setq va 0 ha 1))! S' d# p" h$ W
- ((= just-idx 2) (setq va 0 ha 2))7 y8 h/ i- p M8 {9 d9 u$ ~
- ((= just-idx 3) (setq va 0 ha 3))9 j+ X2 J- _: t* U3 z
- ((= just-idx 4) (setq va 0 ha 4))4 f% `! Z4 M- d+ ?6 I5 `# n0 v
- ((= just-idx 5) (setq va 0 ha 5))
# `$ K( C# h* s7 o& w - ((= just-idx 6) (setq va 3 ha 0))
% e2 l( d9 g! f+ H& J - ((= just-idx 7) (setq va 3 ha 1)), q3 C% \; o: ?* L" }
- ((= just-idx 8) (setq va 3 ha 2))
- j% N; Z4 P+ {# s: q - ((= just-idx 9) (setq va 2 ha 0))
8 j1 I* {/ [" k$ b% i6 ~ - ((= just-idx 10) (setq va 2 ha 1))
+ C/ K o: u! u2 b/ l' J q - ((= just-idx 11) (setq va 2 ha 2))7 v+ p2 Z' y5 w, M0 F/ Z
- ((= just-idx 12) (setq va 1 ha 0))
! }/ Z- L8 |& d$ e( M6 L - ((= just-idx 13) (setq va 1 ha 1))
3 p7 p6 u- _, u+ b, O8 }* G - ((= just-idx 14) (setq va 1 ha 2))4 b6 a+ e6 H5 f7 f& d" N
- )
3 \; s7 b% }# U: I/ b, v - (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text1 p4 n2 f+ ~; x) a
- (mode_tile "rot" 1)' g& U0 P4 [0 f# T" E
- (mode_tile "rot" 0)
' A* d3 D D9 V6 ?7 [ - )
% l8 r3 [; T/ v* p, M - (if (= ha 3) ; If Aligned text5 l* v7 w, x$ e A, H
- (mode_tile "hght" 1)
4 d4 p7 N6 P4 }) K) J) e- v6 C - (mode_tile "hght" 0)
9 Q3 u3 I( }% [ y$ D - )" N' \1 @7 ~# D, i
- (if (= ha 5) ; If Fit text
; v; Q8 J! k5 A/ B( Z. B! d - (mode_tile "wid" 1)
; Q6 ^* o+ W8 x3 {% w2 f8 L. I# c - (mode_tile "wid" 0)
8 m' C! Z" r$ N* O) S/ W" }. s - )
( x3 ~& E* A" `% Z - ;; Reset rotation and height if changing from aligned.
" d/ N3 O* [: V/ ` - (if (and (= ha-prev 3) (/= ha 3))
. z' {. a* c9 V$ J+ {+ ~0 w# l( M/ c' H - (progn; ?4 t i" n( t$ b0 t3 Y, T1 O
- (set_tile "rot" (ai_angtos (setq rot 0.0)))- `( f+ c/ ?/ W; `. t" O
- (set_tile "hght" (ai_rtos (setq hght 1.0)))- f; R3 c% m# Z! P: R
- )$ G# O; ?. ~9 F$ T( G! h8 O) p
- )
" Q5 v# q$ h# X, `* d$ b) Y - , {- _+ E; c" \' z- O
- ;; Reset rotation and width if changing from fit.8 x7 e4 X4 ~, k: H# T0 C6 c
- (if (and (= ha-prev 5) (/= ha 5))1 s4 q3 u8 V: |0 c: ]3 Z3 T
- (progn
3 ]+ Y+ {0 H8 m! p - (set_tile "rot" (ai_angtos (setq rot 0.0)))
, S( l6 w( Z3 M8 D7 ^ - (set_tile "wid" (ai_rtos (setq wid 1.0)))% ?2 Z5 T k+ A! Z
- ). x q" ^9 t+ B4 W) }; Q% M7 [
- )
7 q4 k0 o* r( K) u4 b - / C3 E' `# G- H0 d) I2 R
- (setq ha-prev ha) ; update ha-prev for next time
/ {% U. x j- @ - (setq just-idx (itoa just-idx)); n. i7 E$ r0 _, O& ^" H, J
- )5 d! a1 w- s) ^. ?
- ;;2 }9 s2 S% d" r. ?+ h( u
- ;; Set intitial alignment setting based on vertical and horizontal alignment
5 D! M8 o6 q9 Q0 t$ P0 V4 s% E - ;; bit codes.
9 D8 l, c8 Q5 E0 Y+ E - ;;
' c4 k: T1 e( `1 f6 t - (defun set_just_idx (): L& n, ~% `: v4 W8 ^
- (cond
# Q: R h, z( K+ ?4 ? - ((= ha 0) ; Horiz alignment = Left
, J/ }1 ?8 r. j {: _ - (cond
4 G: s. ]; C8 ^7 v+ k/ W - ((= va 0) (setq just-idx "0"))" I% {) I3 n3 _) K1 e
- ((= va 1) (setq just-idx "12"))
7 D+ o5 t0 }/ o& ` P6 w - ((= va 2) (setq just-idx "9"))
- ?7 i5 n; I3 W4 |9 H l, j+ M! u4 h/ X - ((= va 3) (setq just-idx "6"))
4 n5 ~# X* i4 z$ p% { o! o3 Z - )/ u8 C! Y7 D& c' C4 c( b
- )4 c- [! E1 ^, S2 v6 [0 H* a
- ((= ha 1) ; Horiz alignment = Center
$ q5 V2 j. K0 @: D - (cond
" f0 @: f! u3 t9 ~& R [ ` - ((= va 0) (setq just-idx "1"))0 |9 z& F2 N& x+ |" v
- ((= va 1) (setq just-idx "13"))
. f6 p/ o0 m5 h6 d% ]5 w - ((= va 2) (setq just-idx "10"))) Z' Z2 G3 i) Y; x
- ((= va 3) (setq just-idx "7"))
6 Y& G. \2 y6 m! W8 ` - )
5 ^9 K. f$ I h1 y" Y$ u - )
, A( x9 A+ U5 ?1 c; z - ((= ha 2) ; Horiz alignment = Right9 M% G4 t. ?$ ]5 }. ^8 N
- (cond
9 X( x7 r5 n. g, k5 f) }1 c - ((= va 0) (setq just-idx "2"))
4 E, a8 \2 S. ?! B$ I - ((= va 1) (setq just-idx "14"))7 O, H/ j+ {. _: e# r# F
- ((= va 2) (setq just-idx "11"))
' N; j) `4 ^5 f. b - ((= va 3) (setq just-idx "8"))
4 ^9 u! f& c7 U) ~; v. _ - ). A$ v7 S: j, x' u% O2 T
- )+ ^4 k" Y+ ^4 R4 b, t! R( B
- ((= ha 3) (setq just-idx "3")) ; Aligned/ Q) v; j+ `7 s* O
- ((= ha 4) (setq just-idx "4")) ; Middle8 Q; }' l2 Z: m7 |; w7 w1 }
- ((= ha 5) (setq just-idx "5")) ; Fit
- V! D% ]" J! E9 N - (T (setq just-idx "0"))* d& m, l, ]( x5 k' |
- )( G5 k, p- O4 c3 k# U$ d, N; M
- just-idx4 y7 U/ z* x0 z+ s
- )
6 P8 E/ V2 k( q
9 W) b9 ?! A3 U: |. A/ I `. k# s1 r- (defun modify_text ()
+ t7 j9 \. W, F3 c - ;; insertion point6 f2 f9 }3 \: S8 y# j
- (setq showpt (list x1 y1 z1))8 A. B# n1 m; v( G; y
- (setq bit-10 (trans showpt 1 ename))( F5 E/ J0 N! W! D7 {4 F
- ;; alignment point: g% W" u# r" U8 b8 K5 g0 J5 I
- ;; for 'Aligned' or 'Fit', alignment point must be different
* c: [$ z& v2 N& b- K$ D4 m$ L6 X: g - ;; for all others, use insertion point
/ d. O( L. [: ?, U; C# I' O - ;; (ACAD will recompute insertion point); @" U- @2 u7 v! O6 z y- I6 T
- (if (or (= ha 3) (= ha 5))
( l/ V5 R; C g B% M# x% {2 O - (progn7 J& V [# P5 }6 B) y
- ;; if no alignment point, fabricate one
. G$ m( m: B: F [$ e - (if (not alipt)# }2 h& H- ]) g4 @( p1 T* r* _
- ;; add text width to insertion point6 T i% G1 v; r9 ?
- (setq alipt$ o6 P( e; G' t: }
- (list (+ (car showpt) (car (cadr (textbox elist))))0 k- Z/ [8 g& A/ k# z
- (cadr showpt)
2 }9 U/ f- d; u/ ~& Z3 Z) o% J' B/ n - (caddr showpt)
1 {, H0 i$ g# V' X( h - )3 E4 R4 g6 z& B: ?; h" ]3 d) s( j; D
- )
& E4 ?3 b% B% n2 ^4 ? - )
2 @/ d; g* q2 A% R b7 m - (setq bit-11 (trans alipt 1 ename))
- u- y) R3 W# j N& G5 o" f( ^ - )
8 s- P! v, X3 O/ E0 S4 P - (setq bit-11 bit-10)( K, B, n1 K0 E
- ), T1 t5 `' g9 [+ K' H% `+ q% ?
- (modify_properties)+ N: g8 E4 B5 ?3 O# u: b
- (tempmod tstyle 7 nil)
) Y* E( w" `4 E8 f6 t - (tempmod bit-10 10 nil)) ?- _/ l& c* l! R7 s
- (tempmod bit-11 11 nil)
/ M8 P7 s9 ]* U9 [! g6 Z. g - (tempmod text 1 nil)
! P9 @ P6 Z4 r( G0 t- w - (tempmod hght 40 nil)
. o8 r; O6 [5 i# \ - (tempmod wid 41 nil)) w- O G% @/ H
- (tempmod rot 50 nil)
) F; \, V9 z! J) G) g - (tempmod obl 51 nil); X$ \& \! q6 V: d
- (setq bk-up (+ (* bkwd 2) (* upsd 4)))
! p- `# l# U8 n - (tempmod bk-up 71 nil)
1 K: k2 Q# q2 `% {, y - (tempmod ha 72 nil)
) K9 u' p) }9 K% m' m* c1 n, O- h3 O - ;; Attdefs use 74, text 73/ {6 {5 G2 q" ?8 m0 [. h
- (if (= etype "ATTDEF")
- j2 z' c: F0 \ - (progn
" I7 F, q: O, M7 m( Z8 a) i' | - (tempmod attag 2 nil)
3 A' h. q3 J8 b. \, L) X: ^ - (tempmod atprompt 3 nil)8 p, A& F) Z7 x |; a; T
- (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))& I& E& y# M3 b9 K9 b% Y. e* n
- (tempmod icvp 70 nil)
7 E% b3 ]3 y& E! s: d - (tempmod va 74 nil), Y9 v; e- d2 q9 t1 P C
- )
! s; q# L" v9 Z; R4 N. n. ?7 Q - (tempmod va 73 nil)* Z0 ]' }& t# E: R: I* ^! N+ ^
- )
& P: ?% o2 q* v9 V, k. b) N' Y' u+ ~4 q - (entmod elist), Q6 y' {: j; m8 m
- ) A# g! O `, U$ ]1 D8 {0 @
- % L- ]3 m: }$ L2 ^2 I
- (defun ddtext (/ 2ndpt slist i)6 b7 k3 F5 C- E, s7 ^9 j
- (if (= etype "TEXT")! |' X% w# g6 S0 B9 C1 v. }9 k
- (if (not (new_dialog "ddtext" dcl_id)) (exit))" ]* C7 h' g5 d6 n0 X7 i3 @
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))+ f$ k8 I1 K1 ]' x$ g. F7 A% g
- )
x9 }1 e0 n Q1 l9 s" z - (set_tile_props)
9 J1 X8 T" \+ Z+ b0 t1 B - (set_tile_handle)
" _' S. o+ q" y& b+ _ - (set_tile_text)# Y4 w/ r7 ]/ a2 Y4 q* @* @
- (set_tile_tag)
% z. [1 B" c# V1 q- J, ^$ g5 g - (set_tile_prompt)8 J8 F4 N& M0 s( x7 x
- (set_tile_hght)- {2 ?0 k% S1 w* P5 Z
- (set_tile_wid). y+ j9 F# ^; c5 @. L" @
- (set_tile_rot)5 R4 X7 s+ e" O3 }
- (set_tile_obl)0 T' k* ?" T) |$ t2 c2 g
- (set_tile_bk-up)
5 `* g- h0 e# O* W4 L# x" V - (set_tile_icvp)
5 x8 a$ q9 i1 }* G$ h- l9 {! e0 r - (set_tile_style)
0 a4 Y! O! Q$ J4 W+ r - (set_tile_just)
# H7 F. d3 R% ^, K- s - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1)): ]) |( K) |+ q. I
- (if (not (assoc 11 elist))
& M L- V# n. N" P - (progn (setq pt2 pt1)6 _* f) |1 W# o. C6 ?3 K
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))( B: n7 x* w% [0 B7 C5 Q% h
- )
. {- k& j4 `1 Z1 I8 g: _ - ;;(trans '(0.0 0.0 0.0) ename 1))
: z6 s- M# N" s6 s, [ u - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
4 F8 {4 |6 l& Y7 ]1 B - ) T; P1 H4 T2 Z; M- I
- (if (or (and (= ha 0) (= va 0))1 D1 U* V7 | W4 `: |) z. ]0 _
- (= ha 3)1 Y' t9 B7 Y( Q) F3 \; I
- (= ha 5)
2 j+ X& l- F$ \' a - )
6 i' |9 V$ l h; C9 G6 k - (setq showpt pt1): t" m8 l# M+ ?0 \3 y8 b' h1 m
- (setq showpt pt2)' j& P8 N$ Y4 k
- )- E: _9 y# q% k
- (if (or (= ha 3) (= ha 5))2 r5 E; m) O7 [# @8 C5 e
- (setq alipt pt2)% w6 M% f0 Y. k
- (setq alipt nil)
( Z- j4 j0 l, y+ _- e, h4 l# ` - )" m0 D1 J% v' P. [
- 9 b' B/ l8 _( H! j& J# u
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
# f" O4 [8 d4 \8 x0 Q) o - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
& p' j4 {. m( R6 w - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
- H) i- p5 e/ f! Q; _. b
5 n/ G4 @7 T& w( t9 F- ;; Define action for tiles
2 F! F" |* L9 n$ _- U/ _ - (set_action_tiles)
4 R P/ k4 P5 d - ;; Set focus initially to the text edit box.
5 {) `9 Z9 Q0 j7 W1 O/ r4 P - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))4 U5 `2 P. D* e# V
- (setq dialog-state (start_dialog))
% l6 r" G1 G: }% C7 _, m$ x2 d" Q5 @4 b5 k - (if (= dialog-state 0)
p" G4 ]1 k8 }7 w! b4 ^ - (reset)
7 `: F) p7 \: o0 D - ). K8 g8 K. K& {/ l: w
- (if (= dialog-state 1) g: }5 q0 v: q8 J/ C" s' n
- (modify_text)- \3 Z( z% C8 }. l4 h% D
- )
1 w# T3 O* @5 [7 N3 i4 n, i# f - (if (= dialog-state 3)
# M+ K" e% Z7 @ W" { - (progn2 W* k7 A9 @6 c' O) g4 a
- (modify_text)
" }/ w7 i/ q) H. C0 f - (if (or (= ha 3) (= ha 5))
( R! P% _$ L7 ^. k- I - (progn
* L n8 g7 `7 v7 `+ [9 @ - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
: M+ E4 f# f* p% v" B - (if (not showpt)5 d+ `3 d* D- R: i1 \2 Q
- (setq showpt (list x1 y1 z1))
0 N ^, y2 @- c - )9 H6 ~& H$ l. T. B$ Y& Q
- (setq 2ndpt (getpoint showpt "\nSecond point: "))
: q, b( A4 a& _9 d0 v - (if 2ndpt9 m4 ]! {" a2 L- V
- (progn1 j* b$ M) G9 @$ A! Y
- (setq alipt 2ndpt)
# |2 a& n3 a6 l7 |( Z - (tempmod showpt 10 1)6 b/ o7 U- P, P% _0 ?3 `, J
- (tempmod alipt 11 1)) R* K" v, p3 g4 \, w/ R: r
- (entmod elist)' I; `2 Q4 B* u( p! O1 D
- )
/ S) ^4 |+ Y9 U$ L - )" X3 g+ o" @( w6 b, \! P1 O
- (setq elist (entget ename))
o+ \3 t& a/ B8 m/ u - )% Q7 q7 r3 d* _: |
- (progn
# a2 m+ i$ k: X' [" V! j - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))6 w4 O6 q1 r5 m( i
- (if showpt& P8 `- p) c7 V" m4 B
- (progn7 B7 [/ ?; J7 }
- (if (and (= ha 0) (= va 0))
/ `) R: D8 @' b8 g D - (tempmod showpt 10 1)" o1 k6 _6 x1 D0 n3 \ g) E
- (tempmod showpt 11 1)
1 ?2 F5 n- r9 }8 H, T - )2 R* |# {) x# V% C/ p
- (entmod elist)7 H. m; ]. y1 q. X) |# n
- )0 d+ C5 ~/ P) ~4 c
- (setq showpt (list x1 y1 z1))
$ Y- S+ }0 }; P, ~ - )- d5 N0 K, \3 T @$ ]0 W
- )
7 o S3 ~' r$ `! r+ B5 L# n4 Q( q - )
+ F" t' y: v4 O2 U+ E6 g' H - (ddtext)7 w- |$ z9 L Z7 ~( T0 o
- )
1 |5 U2 U5 j' d( B% ? - ); n1 Y2 k0 u2 ]2 I6 ~
- )
2 ?$ q! L# u7 I6 d. P4 G
" }/ P! b. I( ?, }3 ^* ?; c. x8 d2 Z- ;;
5 d- G7 \& {8 k" T1 `5 x - ;; Modify MTEXT) w' v) x% O& I+ ]7 N8 k
- ;;
& a( @7 |1 n% ]5 B+ }# @- W' D - (defun modify_mtext ()
2 d: R" A, V6 R* @+ _7 u7 g$ I - (modify_properties)
7 m. `/ H% q7 G - (setq pt1 (list x1 y1 z1))9 q/ x" `) u6 N% R& t+ t
- (tempmod pt1 10 0)
X; Q( F4 I/ C4 K" c - (tempmod text 1 nil)
. k; N2 p* z* V" x* D - (tempmod tstyle 7 nil)
& U. s$ L/ w) p K5 C - (tempmod just-idx 71 nil)
" U, l' F5 w0 C( X* A5 m - (cond
" t* d# r3 A1 s& v( F+ b - ((= dir-idx 0) (setq dir-idx 1))
( A8 k D$ i* J - ((= dir-idx 1) (setq dir-idx 3))0 C6 X9 X" x: R+ G
- ((= dir-idx 2) (setq dir-idx 5))
! `1 E9 x6 l; Y4 b# G - (T (setq dir-idx 1))
* V1 p* U1 f9 w5 `! l4 C/ q" q - )
' d+ y0 i# i. G- K; a4 @ - (tempmod dir-idx 72 nil)
% `% {/ ^* S: n) V$ x# \* u8 K - (tempmod hght 40 nil); q9 `* X) z) B2 n# P s% W. E3 T
- (tempmod wid 41 nil)4 K1 ^# C/ Y# T& B/ d7 Q
- (tempmod rot 50 nil)- c. `+ [# \4 r) x2 `6 w# d5 m
- (entmod elist)$ \# m! v; N1 |7 [
- )
6 y' y& O: C( n5 l
' i9 f! O5 ^4 H- ;; Set MText text style
- o9 ?/ v# k( T - (defun MText_style (index / style-list)& A/ X8 X8 z1 z- |9 H
- (setq style-idx (atoi index))
) A4 c E9 V/ _: D - (setq tstyle (nth style-idx slist))5 N( m0 I9 }6 `$ t5 j
- (setq style-idx (itoa style-idx))1 U/ [; q; F7 s0 A
- (set_tile "style" style-idx)
( D' c5 S; e2 y: w- F5 v1 N - (setq style-list (tblsearch "style" tstyle))
- ]' H6 S5 u, w - (setq shght (cdr (assoc 40 style-list)))% }5 \! ^/ B( E8 q( ~9 R; m
- (if (/= shght 0)
) I5 L7 y+ ?) O0 w* c3 b/ ^ - (progn, n) r7 O4 N1 M) y4 B
- (setq hght shght)7 i6 n0 g- }' o) y2 O; }+ x
- (set_tile "hght" (ai_rtos hght))- Q. y9 Q- ~# ]* C4 G. R! w
- )
8 D# Q2 f% v# Y1 b% y' ~5 l - )
. d# ]' b3 r" ?4 @ - )4 f1 k$ _9 ?- c/ Q% p; ^
8 ^( c# ^" {% t, [- ;; Run DDEDIT on given entity, working around possible re-entrancy' T/ l# ^, f+ X b2 _' l
- ;; problems with MTEXTED
% n; Q$ A v A; r - (defun safe_ddedit (ename / orgMTextEd work)8 x' o, r9 U7 W7 O8 w
- (setq orgMTextEd (getvar "MTEXTED"))
, u' l. z4 _* w- K8 ? - (setq work orgMTextEd)
' @( C9 |" V, T1 s9 G" j0 H2 P - (if (= ":" (substr work 1 1))0 w: o' ^+ a. a7 j! |4 d
- (progn
. y; v6 V3 U. A8 z - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
0 c5 y5 t# G3 g) a: C J - (setq work (substr work 2))
' _ V# `. z: r - )
8 ]5 y7 o% j7 A, \ - (if (= "#" (substr work 1 1))( ~" }3 U1 P r# {% Z; v4 d; }
- (setq work (substr work 2))% a( E; @: D7 T* _- I9 J
- )/ G: |# y# G1 B0 R
- (setvar "MTEXTED" work)! R" f" R, m( X9 i- w1 t# U# A
- )% k7 T! j5 L" g4 s2 `. G
- ): x7 O3 k; Z) I* x% z
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
! {0 }* d& N; E: I9 C - (command "_DDEDIT" ename "")) e% T' T9 O% L1 `: r* I
- (setvar "MTEXTED" orgMTextEd)
' \+ e* n( r/ n8 X8 [& e' s - )
5 z1 [/ w; }8 h- c - , E6 `9 Z2 S- @/ T" O
- ;; Verify MText object width( y8 V, }/ s/ m" \
- (defun ver_MtextWidth (value)
$ C9 x9 {% p" A: R1 k - (setq value (distof value))
- k$ [. w" e" Q - (set_tile "MTextWidth" (ai_rtos value))2 \- U! T8 N7 O) N. H! {! R4 H
- (set_tile "error" "")1 ]8 y) {$ f/ ?$ S0 Q O# x" j5 P
- (if (< value 0.0)) N5 S4 H& ?, l9 I8 Y
- (set_tile "error" "Value must be zero or positive.")! j1 _1 Q# _# R+ M, i5 O1 Q
- (setq wid value)/ A# N( q$ C1 t) a+ W$ t
- )
/ k% T0 G& \) O - )
# H' U' q& [5 Z - % W: i: i9 p( B- q) O
- (defun ddmtext ( / gc3)
4 A) |7 G4 U5 v$ D3 h1 W - ;; Get dialog
$ E9 _3 D, o1 h' y! `! k( ? - (if (not (new_dialog "ddmtext" dcl_id)) (exit))
H! g C4 K, ` j, P a+ W, O6 ~ - ) p# S: |/ v2 A& f1 c
- ;; Load list boxes: Z1 k* ^& T+ E/ O
- (start_list "MTextJustify")& t) y7 O" m# u/ s
- (mapcar 'add_list '(
i. }; \# |, B7 t8 ^ - "Top Left"" ?" H' b. {7 \5 J
- "Top Center"9 M& C. T8 i! y) O+ @: N
- "Top Right"5 c% C3 o U( q) y6 p* @5 l4 i
- "Middle Left"( v. }) M5 b# E d, X7 T
- "Middle Center"5 ]5 \* U1 F& k
- "Middle Right"
( H. K# ~: |$ T. x1 } - "Bottom Left"
0 q# Z: k. \4 B( V. X - "Bottom Center"
- @$ L1 a- X, L, Z$ U/ f" _, j - "Bottom Right"4 [/ n! J( K) u1 R
- ). h/ _" c! x4 h) j, k$ d+ S
- )8 `, h4 K) w& d5 m# }9 R
- (end_list)
! I6 ~- y( X5 [9 F" h - 2 i9 e% P" g8 w9 L+ K6 }, V) k7 b
- (start_list "MTextDirection")
4 x! b' L; P! r) F5 V- ~0 ^4 O - (mapcar 'add_list '(
' A% r# U" K1 u! O - "Horizontal"
) T/ b% _# ]+ ?& l: v - "Vertical"
9 g5 w! t- p' j$ t# R% H) G4 r4 ~* O - "By Style"
/ g; A7 ?" M7 d& ?; X0 j6 L! o' A - )
- `4 T& S1 u+ C8 ? - )5 _2 ^& ? F( @8 C* Q& l, r
- (end_list)/ W! n! K1 r! [8 P' N9 L
- , V( ^' @3 Q' j; W. s$ F, x A
- ;; Set initial tile values
, f: y# x4 h: \4 ~: ]6 k - (set_tile_props)
8 W# A) \2 d8 P' I - (set_tile_handle)
/ ?+ W1 Q5 n/ `* e4 S2 r - (set_tile_pt1 0)6 ]% Y" x9 A2 v' a
- (set_tile_style)
) Z% L& C% c- e& v5 v: I: Y& G$ V - (setq just-idx (cdr (assoc 71 elist)))) e6 F) X& d1 O
- (set_tile "MTextJustify" (itoa (1- just-idx)))
# V! E. I2 s a5 z5 R0 ^- l' }# n' j - (setq dir-idx (cdr (assoc 72 elist)))# q: t* ]3 A( w
- (cond9 s' ^* Y3 [2 u+ z: k5 \# l
- ((= dir-idx 1) (setq dir-idx 0))
# G! j+ n" ?/ S! _ - ((= dir-idx 2) (setq dir-idx 0)): i( C$ c7 r+ }9 e
- ((= dir-idx 3) (setq dir-idx 1))* g2 V& v: d% j- G
- ((= dir-idx 4) (setq dir-idx 1))
+ x r7 E+ R$ R% L3 R1 K - ((= dir-idx 5) (setq dir-idx 2))# u* E Q$ `. M2 p& Z
- (T (setq dir-idx 0)), c& j; ~+ G( t" g. @7 J- t0 V
- )
' g: }1 L: z3 t. r+ z% h - (set_tile "MTextDirection" (itoa dir-idx))
H2 U0 R) q6 H0 w7 ^4 r1 I5 l - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
' A( Z$ M4 _3 K - (set_tile_hght)8 K8 ~! k: N- f% X. v6 I
- (set_tile_rot)
) L* K- \3 H1 x0 K7 e f
; @5 D2 [- K/ K8 J. X0 s3 A- ;; Set edit box, disable if too long
' |: @- M4 T' _' h2 U& i - (setq gc3 (cdr (assoc 3 elist))# X$ j* _% f" U5 O* m
- text (cdr (assoc 1 elist)))
2 M$ t. H2 n! j1 N$ w( n - (if gc3& u' F7 n( S( e
- (progn ;; Text is over 250 chars, disable edit tile2 g1 E2 z5 |3 f( ^1 y! K6 m
- (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))2 f8 F; N; X W" x9 R
- (mode_tile "t_string" 1)
/ ~' y- E+ r" Q% A" R* U) Z - )# Q$ `8 ^, m/ k
- (if (> (strlen text) 80)
% n4 R# {! F% W0 |3 B - (progn ;; Still too big
+ d+ e! N$ F& v% h3 j - (set_tile "t_string" (strcat (substr text 1 25) " ..."))
( ?( p$ Z5 c0 ?$ W: u. a# j - (mode_tile "t_string" 1)/ r. T" E& V: ^5 \/ I5 K& S
- )5 E7 Q; ^ f* V
- (set_tile "t_string" text)& W% K! N7 c W6 c3 @9 e
- )
) k; e7 E0 y! d% t - )1 v* z( p) E6 Q/ [1 x) h
, z/ f' Z1 q \* p/ K& M- ;; Define action for tiles
& K/ r K5 a4 _8 n; ` - (set_action_tiles)
0 |! e5 I. ]9 e& e! Q- ? - (action_tile "style" "(MText_style $value)")! z t! z# x/ B1 V0 ?
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")
( h# }/ r: ^; \( }) |# i - (action_tile "MTextEdit" "(done_dialog 4)")5 v) z* @0 e: f+ d: K& {
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")3 ?$ V0 ^& _8 U7 [6 i# f4 W* Y; Y( H
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")! W" w9 |7 {4 Y5 Z$ D! x$ M4 D
" u* G9 s% _, g4 k4 Q2 j- ;; Set initial focus to text edit box.
0 U9 I4 J& S+ a; n" F+ ?! B+ [9 T - (mode_tile "t_string" 2)
) ? I$ f# {* {3 k$ M+ c - 4 g: `) H d" C* t
- ;; Run the dialog
( Z0 b* U0 j9 j5 K# W - (setq dialog-state (start_dialog))
$ b% N% p; M0 `; s - (cond
% D- T& N; e, U- O. `. ? - ;; Cancelled - restore saved data( c4 I8 J! J; V5 s
- ((= dialog-state 0) (reset))2 v! c* M( s! G% @. C# {8 X v
- ;; OK - save new data: i1 i: ^# F( ?1 D
- ((= dialog-state 1) (modify_mtext))
: R4 B# f7 `) {/ m( N# H( A$ J' S; @ - ;; Pick new insertion point
( q* [0 }2 B+ x f) O: `* m - ((= dialog-state 3)
* G% G* u& V, k& g! C( U& y& I - (modify_mtext)+ l8 t4 Z; ^& F- o( E; w( s0 x4 b$ \
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
6 W7 C' r* v. p& t8 ~ - (ver_pt1 0)9 v- c3 M, i4 U0 X- T
- (ddmtext)" f5 o' o' X: D4 m9 @
- )
& I% V- K1 c: t9 N& R - ;; Run full editor
. `, l ]% x2 {& X, }1 | - ((= dialog-state 4)
- [- z0 H! t( Y. | - (modify_mtext)0 i' T; H: J, _0 `
- (safe_ddedit ename)! M3 W% [* ` D* L. a' V
- (setq elist (entget ename))
4 f7 Q4 ^( ~. f - (ddmtext)
- X a6 N4 P5 o1 Z- |, x; h% |0 I2 z - )
7 W [/ X: N/ {6 U5 _/ v, T2 E - (T nil)
! x( u: C* g7 j4 S4 O# x - )
0 @8 ?! k) m: `- J9 U - )9 K: |$ D6 B" O; F
" L) u4 e) N. D1 Z9 S3 J- ;;5 h9 S2 a- _% m
- ;; Modify VIEWPORT# ?6 y. {6 d3 d3 t# Z
- ;;0 n2 Z; q1 v& p ^
0 b' H+ O. S5 y5 y* _ r* O* ^- (defun ddvport ()
: H& O" u- \) H$ Y# w7 Q1 G5 C( r6 A - (if (not (new_dialog "ddvport" dcl_id)) (exit))
8 B9 a$ M) ^. j( B% h - (set_tile_props)# _8 Y: s- i" x ~2 g
- (set_tile_handle)
5 X( _! p, p& J+ D5 C2 | - (setq vpt (cdr (assoc 10 elist)))
! T) @, ]! f8 v3 \0 ^9 X) k: Z7 `: w& o - (set_tile "xtext" (rtos (setq x1 (car vpt))))
& O T: @( R4 ^3 @" ?+ J - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))- n1 A# O! b+ c
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
4 _1 ^' ~. r7 g - (setq wid (cdr (assoc 40 elist)))
5 n E) \# {4 V# M - (set_tile "wid" (rtos wid)) s" e' A3 I) V/ D
- (setq hght (cdr (assoc 41 elist)))- P8 u# `# t7 {6 B
- (set_tile "hght" (rtos hght))
# d9 v& c" h; M) R2 u - (setq vpid (cdr (assoc 69 elist)))$ p1 x8 b; R" N: n
- (set_tile "vpid" (itoa vpid))7 ?, Z* `' U: e$ B/ p- ?
- (setq on-off (cdr (assoc 68 elist)))
4 J" Q* x9 p. E/ F M5 O - (cond
) J+ e( w2 c3 Y$ h - ((= on-off 0) (set_tile "on-off" "OFF"))5 q- h1 D3 E* L
- ((> on-off 0) (set_tile "on-off" "ON and Active"))9 n$ c! d$ O- Q* F! x
- (T (set_tile "on-off" "ON and Inactive"))' [( i, `8 r+ k* b2 ], G# b1 f
- )
. T7 ?& N% W5 C6 |2 d3 l; ^
0 e% Z' ^ g# r) L7 c- D- ;; Define action for tiles8 V3 u$ I7 ~0 m
- (set_action_tiles)
( u; h2 x& J9 ], d$ v7 ] - ) \3 W1 W# u3 _$ ^9 \
- (setq dialog-state (start_dialog))
9 Z- H! S+ Y1 J$ C. ~0 e - (if (= dialog-state 0)
) f/ P) ?" ?# A1 G, F D2 w - (reset)' W- B8 r& Z6 g2 S0 o& S% P' M
- )
% c2 I! A7 C4 c/ s; M1 L7 ?. u - (if (= dialog-state 1)
/ t, W9 T x% v7 i9 ?4 } - (progn
8 a5 ~4 m/ Y0 M/ l% s( {" s' h - (if (= ecolor 0) (setq ecolor "BYBLOCK"))6 D. k. Y9 u$ o$ u0 }
- (if (= ecolor 256) (setq ecolor "BYLAYER"))
2 _! w% |7 Z& }7 ^' p0 d - (command "_.chprop" ename ""
( @& w* @% g( C6 E0 ^5 O - "_la" elayer5 q0 I$ Q! j- q) r$ u
- "_c" ecolor ""5 ]8 L& K5 }1 r6 R
- )" y+ P! V6 i6 Y& t6 S0 H8 I
- )0 Z; @$ F* A0 X& u( \% {- p. {
- )$ }0 Q* ^3 L7 o% Q, Q; @8 R
- )
, W/ F& u5 Z# D( O0 q# F% d - ;;% D6 P- C7 F% n# C
- ;; Modify POLYLINE8 W+ I% M3 J2 Z5 L
- ;;
) ]* U7 D" t/ y' ^, X - (defun modify_polyline ()
3 F: T F( G' w/ Z. q4 ?. p! m - (modify_properties)
; U* s+ P9 |' a, G. L - (if (= ltgen "1")
: F. L7 y, E/ J0 w: c6 e$ v, }, N - (if (/= (logand bit70 128) 128)
+ t. M; P5 g5 [; Z* { - (setq bit70 (+ bit70 128))% ^1 ~5 e& O% P9 u/ {
- )
; Q. t6 u4 P( n' x* N0 I" c+ b6 b1 k9 b - )3 D4 G, `9 ~2 n& c3 ]" ~7 D& {' B! z
- (if (= ltgen "0")( A" }4 ^0 Y, Z9 _6 S* L! D
- (if (= (logand bit70 128) 128)
5 ~- z+ v( z" U, M* p2 p - (setq bit70 (- bit70 128))
% Z) S6 o8 u% G* t - )- R. @# T# r! M, v) \
- )4 S6 b! u$ N' J$ G3 K0 Q, R z3 V
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
# [$ H0 i8 I8 ~6 I; Y - (entmod elist)1 N+ {; t7 Q/ ~/ p0 J
- ;; Added to take care of updating Vertex information for color
3 P! U: W$ u: E$ t - ;; and linetype.7 r- s1 c5 a; s+ s1 C
- (setq save-ename ename save-elist elist)
* f# ~' q% W+ D2 N - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE"); z' w- X! H. G
- (progn
6 Z$ [% E9 L1 J* x w3 X; L - (emod ecolor 62)
4 g( M% l+ Q/ o& z. b - (emod eltype 6)* f w0 A/ o0 l" _& D! K
- (emod eltscale 48)
, @, A( t9 o( F3 y! w% W' Y - (entmod elist)9 {. {! g' W; R& w* c R% y W9 ^
- )
- B O) V- Y. c8 m# H - (progn
' O9 n+ {. j9 T4 |9 h# n - (setq ename (entnext save-ename))# ^7 z5 h( C1 O! |9 K) Z9 L8 r
- (setq elist (entget ename)): r9 P, A' n! w
- % h3 X E2 Q$ V' Z1 z& H
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
: e, U6 h" f9 H5 ` - (emod ecolor 62)
0 U4 K5 i; O( G& T - (emod eltype 6)
7 G; Y2 k: _9 Z& X - (emod eltscale 48)
m2 k h( M# t3 m* u - (entmod elist)3 e9 Y7 t* K* y) C3 }
- (setq ename (entnext ename))
, s1 \* ^5 ^4 R - (setq elist (entget ename))
3 A+ ~* B: u! ~, i - )
5 P" O4 U( b4 B8 m3 S2 x# _2 Z5 i - ): g" U* v( Q5 ] N1 H0 m a% _, i
- )
# q8 \4 l' S8 o - ;; Update the SEQEND8 g5 [0 U# @& \: p5 w" H
- (if (= (cdr (assoc 0 elist)) "SEQEND")% `. k$ s& g! i
- (progn
+ w' n/ E5 |( {+ O0 m- k$ } - (emod ecolor 62)
( O* |+ R A2 s5 c - (emod eltype 6)* N+ a* t# ?$ C; _$ ~' z
- (emod eltscale 48)! N, {. J: T6 g7 j+ _
- (entmod elist)
% K4 X, n' J2 [8 h9 A4 m - )5 [7 k2 w& j/ e- L% b
- )
7 h/ d6 L" U6 K( Y - ;; Go back to header.% p3 h6 N9 f' m
- (setq ename save-ename elist save-elist)
7 Z* ~4 v0 x! R7 ^ - E5 L2 ~- Y5 @' X1 b
- (entupd ename)
, Q; M! ~2 O7 q, e- s' v1 [6 P - ), g9 U+ j% a- q2 w' B2 x/ t N" W- [
7 v+ t' R# p7 v- {) y- ;; Increment vertex. Set tile values to next vertex0 R9 r8 ?1 P% R
- ;;
) b2 f2 A) J9 j9 Z! w, F( A - (defun next_vertex ()# A. |& L3 ]( g8 B2 g5 {
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
" d0 x! D7 T; } Q - (progn4 V" X; i: p" P4 N0 x
- ;; If the counter reaches the number of vertices,
& B- h- t: l( C5 I - ;; roll it over to zero again.
3 h' E1 S$ b! @8 B1 ~ - (if (= ctr (cdr (assoc 90 vlist)))
% a9 \5 \* R9 {5 X9 j; V8 F - (setq ctr 0)
G' z) n( `! {0 [4 @5 O - )
4 v! g0 l4 B- K9 d% j6 p/ ^ - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
: F1 D( R$ \ B4 R$ W* L6 { - (set_tile_vpt pointype)
. i8 P1 I" l3 u& |# T9 N - )7 V- [/ z. u8 Q# \
- (progn" {5 {7 r7 Z5 t9 \" P: u' K
- (setq vname (entnext vname))6 E) {- O" I, O9 Q# O* r
- (setq vlist (entget vname))
3 }; ^8 s# D; S2 Q - (if (= (cdr (assoc 0 vlist)) "VERTEX")
7 C8 W( @- Q* x9 a) x. U - (progn
$ M+ f7 l5 U, [# t' U - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))+ O' ]7 a3 U( a E6 m# l
- (set_tile_vpt pointype)8 r- Q/ U* a8 E; {, X9 P
- )
1 S4 k2 E# ]+ F( c# C3 h- _ - (progn! ?6 S) p0 ~8 v5 D! G
- (setq vname (entnext ename))
8 e' { L. C# M& O - (setq vlist (entget vname))
4 V p k; _3 `. N - (set_tile_vpt pointype)
" u( L- T' v0 h$ D" [8 k - (set_tile "ctr" (itoa (setq ctr 1)))
5 p) e( P: d6 C2 M& }5 K - )
9 X/ p) }8 v0 Q n& ~6 v* \ - )! b8 r( }# a: e+ H
- ); M2 J2 A6 K: O8 m
- )/ B6 q5 O) F9 d) E* P* \( q
- )1 m9 a+ Q8 t. p+ l
?/ @( q3 a! a+ Q- (defun ddpline (/ oldecho)+ H- @- R& s9 |. U. a
- (if (not (new_dialog "ddpline" dcl_id)) (exit))
/ |$ k6 r7 L' }! R. y+ V! _ y$ j2 F - (set_tile_props)4 ^. y4 V8 ~; R
- (set_tile_handle)2 `: e% X G8 f' ]) a
- (setq bit70 (cdr (assoc 70 elist)))
G6 K) e3 P0 G# K/ l - (setq bit75 (cdr (assoc 75 elist)))/ T, J: l8 } u4 o
- (cond4 J7 x8 t! A$ [3 _: I
- ((= (logand bit70 8) 8) ; 3DPOLY
/ {$ o" f$ ?. ?- o - (set_tile "ptype" (setq pltype "3D polyline"))
- A: g) [( r0 q7 X8 { - (setq pointype 0) ; WCS or ECS point values6 z7 S7 J7 D! i. ~# f5 w
- (mode_tile "fit" 1)0 C, B$ L7 M% \4 F
- (mode_tile "mesh" 1)1 b& G5 ]# E: G* \- H: W
- (mode_tile "bezier" 1)( _& [, V; d7 X- R7 W# u
- (mode_tile "ltgen" 1)
, m" W% S9 |" b3 t& d7 a - (set_tile "none" "1")5 k1 d0 ]. U, @, S4 d. u
- (set_tile_closed)
" I- y- L' P. e6 K: e% ` - (set_tile_fitsmooth)
" V3 @5 T# J# A- e; \5 h1 g - ); t, c& Q. ~" b0 ?& ^
- ((= (logand bit70 16) 16) ; 3DMESH1 _* L: P' C# K; k. c
- (set_tile "ptype" (setq pltype "3D mesh"))
* z5 j5 U% K1 ^ }0 v% }4 M - (setq pointype 0)
& t% ]" s: a4 t; E# A. O - (mode_tile "pline" 1)
4 H0 {% Q) E: |6 _3 q. { - (mode_tile "fit" 1)
0 j9 [/ ~ S$ t7 _2 O - (mode_tile "ltgen" 1)
! n5 p; H. N L2 @, e - (setq m (1- (cdr (assoc 71 elist))))
! w' @2 _8 N# C, C/ N- g* g - (setq n (1-(cdr (assoc 72 elist))))
, M- f# ], N4 e v - (setq u (1- (cdr (assoc 73 elist))))9 z! T4 R: ]6 G* l
- (if (< u 0) (setq u 0))' w( D3 e6 j+ |7 Q. a: b
- (setq v (1- (cdr (assoc 74 elist))))
* h8 z- r: Z$ x# a( x - (if (< v 0) (setq v 0))8 W2 F# H+ W+ B) N
- (set_tile "m" (itoa m))! _9 p5 `$ M+ u& ^9 a
- (set_tile "n" (itoa n))! u7 I# `' G: | M% E, S( p; K! @
- (set_tile "u" (itoa u))( k: q7 D) a5 M8 y1 s4 y
- (set_tile "v" (itoa v))1 }- \" B% q4 j. m t7 h# l' H" i
- (set_tile_closed)% F, O0 F8 L. E" z: f
- (set_tile_fitsmooth)- j$ c. a( n" [0 P
- )" l; x+ u) g u8 Q0 M5 {! L3 Q
- ((= (logand bit70 64) 64) ; POLYFACE MESH
8 k3 @; E' l6 y - (set_tile "ptype" (setq pltype "Polyface mesh"))
. F9 \# u: _# {/ ] - (setq pointype 0)
+ `& F( [, X: s7 n% ~1 [9 f - (mode_tile "f-s" 1)
/ S& ]2 i* d2 m5 W+ g" l - (mode_tile "mesh" 1)' E) e/ U9 n" L' ]! |6 E! u
- (mode_tile "pline" 1)
% ^+ S) e. H& W' j) D - )
1 o- D9 ^" y7 N6 _! M$ F - (T ; 2D POLYLINE
* T0 A4 Q( ?4 d* } - (set_tile "ptype" (setq pltype "2D polyline"))
7 w1 M5 B- c) z9 X - (setq pointype 1)* D; k) m+ t/ N9 C4 u2 A0 N# u, i
- (mode_tile "bezier" 1)$ s% f5 H* K- {
- (mode_tile "mesh" 1)( u5 k% m$ T1 F9 X" [& j7 x* y# t
- (if (= (logand bit70 128) 128). R, q# ]* A. ~* X
- (set_tile "ltgen" (setq ltgen "1"))3 o! U+ X. f b O/ T& x
- )
$ u9 J( B* A6 H$ d6 z6 M - (set_tile_closed)" Q6 j) ~$ d4 E! N. |8 S0 ]4 k: T
- (set_tile_fitsmooth)8 ]" m! y: z# `' j
- )0 U" O' Y X7 q& d( s' b
- )7 x$ G# Q3 ^0 `5 E+ _( R) {
. a% o; j. O$ G: e8 s$ V* h& p' |- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
* Y6 g4 ]. G3 e - (progn
2 W, Y% N+ d/ k% r7 z - (if (not next) (setq vname ename))
: M$ V; O' k ^3 r f7 w; A - (setq next T) y5 ?7 i- C4 T! Z. v$ T
- (set_tile "ctr" (itoa (setq ctr 1)))
/ ?" R3 V9 r1 d& h - (setq vlist (entget ename))
. Q$ j+ V7 V- F. h) ^7 S$ s; r - )7 B' i3 M. ]) W: O% J6 [
- (progn; O0 h7 E0 T4 F/ n9 {$ \
- (if (not next) (setq vname (entnext ename)))1 ?9 R) X1 n' J
- (setq next T)3 g- [5 p1 f' _/ L( o. z6 J
- (set_tile "ctr" (itoa (setq ctr 1)))6 J! g) k5 g% |% M* P
- (setq vlist (entget vname))
$ B' }+ I( @1 t! K( W4 [, b5 i - )
* H4 r, B2 z6 g - )
. B0 x! w2 S- S2 r. L, U' I - (set_tile_vpt pointype)
2 y9 V. n" o0 D1 _ - ;; Define action for tiles
9 m& h, A5 B7 t/ S1 q - (set_action_tiles)
7 y: W) { N% W3 m5 ] ? - (setq dialog-state (start_dialog))7 l! F6 Q# @$ h$ @
. H0 J& a9 A1 O7 f0 D- (if (= dialog-state 0)& \. E( n. V5 P3 [
- (reset); i; O+ O t" S3 m7 R
- )
6 q1 F( e: _) ?6 F/ s& l - (if (= dialog-state 1)
! n" U6 Z+ P6 t; P4 }) Y1 _1 @ - (progn
' K$ {, V/ i/ B! T! `6 T2 T - (modify_polyline)5 ^; A) X) ]/ _8 D2 g+ ~/ P
- (if (or (= pltype "2D polyline")
9 F" H# H# z1 {- _ - (= pltype "3D polyline")
+ |# m& S) Z% h0 M - ) g+ B% L1 l2 J' O8 y4 y
- (progn
# [( o. m. o: v+ W n. U& P& F4 g - (command "_.pedit" ename)" Z! Q$ \+ q9 `3 g+ p6 v) U. z
- (if (= spltype 0) (command "_d"))# Y6 u& `& n: x1 o
- (if (= spltype 1) (command "_f"))+ _9 J' J( h) _- ]! {: e3 k
- (if (or (= spltype 5)
& }/ f9 Q# F. P, }$ j, Z6 } - (= spltype 6): K0 r, i7 S! _! k4 K. a7 F: m
- )
; c# z1 [$ f- R# A7 O' u$ D* b - (progn5 ~8 N- E. Y- ?: `" n! q1 M
- (setvar "splinetype" spltype): T9 d" l, Z- R7 w: Y9 k, [) f
- (command "_s")
6 s) ]5 Y. I( o1 S# @$ x - )
! u7 L: l- R. x - )' x0 s/ W ]2 V8 E
- (if (= closed "0")0 r. Z3 O( Y7 S- U5 `3 F
- (command "_o")
1 b( R |- M% x& R6 h+ c - (command "_c")
4 L8 l- Y( @' C7 l1 t H" } - )) ]6 c/ B1 Y; {' W
- (command "")8 N% @9 `( R! b7 [7 N+ {
- 4 C: B! a1 I. ]; c$ a
- (if (= spltype 0)6 A. i3 q9 D) t6 g% C) F- I' i" U
- (progn1 |$ j" a! ^! ^: M7 R7 ]+ I
- (setq oldecho (getvar "cmdecho"))
" x h. Q0 `. ?, O8 L - (command "_cmdecho" 0)
1 m' |8 w3 A- l" d7 N1 a/ ?6 V - (command "_convertpoly" "_light" ename "")
- ~( J4 H+ }9 M' Y+ F8 M! @ - (command "_cmdecho" oldecho)% x9 v4 ~/ k0 I; X6 V1 V. s
- )
2 `$ M" b! }; O8 k% I( ~ - )) v) _2 } \' ?, x* l& h
- )
& b2 L2 I- C. [+ q0 ? - )) ?8 B" d& l9 Q. R; E& l! C' @" h6 B( v0 f
- (if (= pltype "3D mesh")7 t A2 }/ q3 L9 i
- (progn
+ J7 M+ w2 H9 L' q: F' T - (command "_.pedit" ename)
! k/ z: {: W- E" J0 Z - (if (= spltype 0) (command "_d"))
4 H3 k& z8 X' N - (if (or (= spltype 5)" {8 U& z* J3 g! C) ~) v
- (= spltype 6)3 d2 I( b' Y d6 b$ N' E5 t
- (= spltype 8)
: A9 I; U/ m2 w - )
F, u1 |; I6 K, J O - (progn0 I2 K* z: g Q+ s: P- l0 C3 A
- (setvar "surftype" spltype)
" i/ G# p$ H/ U1 i0 z - (setvar "surfu" u)
7 ^5 N6 ]- S* m% D( Z& \; @0 Y0 H7 d - (setvar "surfv" v)- ?: G, l4 \% B5 Q* L
- (command "_s")4 {" o+ U$ f3 C
- )0 g9 x+ D( v, T8 H" S% a3 i
- )
6 c6 |* ]% j- M: Z- _# j - (if (/= closedm old-closedm)) {0 e; \- u5 ^- b6 P
- (command "_m")
: k f! [) A" N- k - )3 p7 `$ L, x2 K. x% l% W
- (if (/= closedn old-closedn), p0 U6 S8 ]+ z1 H$ v
- (command "_n") B/ b: \6 j0 K0 z- C
- )& g) e; D. q0 c8 g; ]
- (command "")# p$ j) f6 F0 j8 k( V# o0 B1 R0 R
- ). y' N) a' |$ g9 Z+ Z0 X
- ). f/ d3 R) j4 ?+ L* p4 K
- )
9 Z2 |0 X1 G, H9 L- \8 F - )
/ t$ b7 |" @. E+ Q - )
( i7 d, S* Y& ^7 u6 {6 z1 O' s7 g - ;;
. a: I" ]% l$ D: E3 D% I - ;; All the spline data is contained in a single elist. We must do some
+ I) H, ], O( p r' }' s - ;; tricky list processing to loop through the elist in order to display
' J/ B2 O1 h' h* G9 e7 Y+ H - ;; all of the control points.
2 p& C8 E' V {+ f, P; V - ;;
. b! i: O) d9 y4 c1 Z% M3 V - ;; The structure of the elist is different for rational and non-rational
% {8 U& d0 G( N8 I0 u - ;; splines. Therefore, we check the rational spline flag.$ B# v. M6 X3 D/ P/ {+ B
- ;;
e, y' u5 K( _/ N7 p9 f& _2 D, o; D# T- ] - (defun next_cntl_pt ()
3 E- @% x/ I; ^1 g8 [$ N& v9 ? - (setq elem-no 0) ;; elem-no = element counter
( [( v7 Q6 W* C* u1 C& ]' r - (if (= first-10-time 1) ;; If first time, find location of first" V, B: [0 F0 N4 [$ u
- (foreach list_item elist ;; cntl point element in elist
+ l) M. I9 N4 ?# y! C5 M `% } - (progn
' u8 e, s2 L9 I1 P0 | - (setq elem-no (+ 1 elem-no))
9 O# y3 P' E9 E" ?9 y - (if (= (car list_item) 10)- t4 S* @8 b V! s
- (progn7 S% D2 [! ~% Q1 |
- (if (= first-10-time 1)) C1 v' _$ i: W/ n3 D! [7 q
- (progn
3 }4 n2 n. y2 j* T F3 ]: e' H - (setq first-10-rec (- elem-no 1))
2 X/ v8 ]8 N+ C% ~: U* c - (setq first-10-time 0)
9 p$ m4 [% T" w$ p# W+ Z5 Z - (if (= rational_spl_flag 1) ;; if rational
2 T8 T4 t' k" L. d - (setq cur-10-rec (+ elem-no 1))
0 ~, S. L, i% `; S5 b* u& t. F - (setq cur-10-rec elem-no)7 r a. F% x( L- C" D1 D+ ~9 ^
- )" X2 o# E$ T+ U ]$ k2 C; ]9 f. N. s
- )+ D# r' C! Y' r4 }
- )
( z1 C7 r' y& t( W' r2 v - )1 o' \7 L% F0 c7 g n7 g$ q1 G
- )2 _- ^5 c9 J2 e( ~7 X
- )
! n# D) B- S" N$ m# q - )
H) I' ?+ r% L( q7 q! w - )
- o+ J% P% W$ ` - ;; Now we know the location of the first "10" record; it's stored
- }+ ?- ]$ b F7 u: Z4 W8 I - ;; in first-10-rec. The first 10 record was already displayed when
5 T7 o8 n* ?0 X+ \1 _: v - ;; the dialog first came up so let's display the second one when
7 z; k* h) t6 Y5 d& E - ;; the user presses the "next" button (the first time through).& U* g; T. Z5 E. R1 i
- ;;# ?# r% L- W1 x2 U
- (setq temprec (nth cur-10-rec elist))
( c8 B% z( o |7 y3 F$ I - ;;: `1 |; F% _4 K+ A2 H
- (if (= (car temprec) 10) ;; if 10 record3 ?0 `- Y( N6 B- F) r& D5 a( b
- (progn& ~2 e: j; u: G4 ^4 ^
- (if (= rational_spl_flag 1) ;; if rational spline
& Z' u. l$ p5 R+ k- A! D. O! a - (progn
' u+ T$ ~, s q; Y s A, O7 g) c" U* k9 x1 l - (setq tempweight (nth (+ cur-10-rec 1) elist))7 V/ l2 r# @0 `- e; J' U
- (setq cur-10-rec (+ 2 cur-10-rec))# a1 r2 X% D# y2 F
- )% h* j0 K8 J/ n( a- B/ c
- (progn ;; else
6 y c; |1 j/ }. ?3 _7 y - (setq cur-10-rec (+ 1 cur-10-rec))
+ r; F% A2 w% |2 S% i0 x2 Q - )
2 X# L6 r% x. V8 Y6 v - )
3 R" a8 e* n/ h, o, r - ) ;; end if rational spline: g8 N6 d& Q3 S1 E1 p8 N, c$ p
- (progn ;; else reset counters8 |( ^% a' Q% r0 A9 {5 J% {' a
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
/ Y* z' {1 B/ M: g% S" s - (setq tempweight (nth (+ first-10-rec 1) elist))
. b' r7 |, }5 E! J/ K - (setq cntl-pt-indicator 0)
" J1 U: u4 F3 ]0 @, Z' w c5 L - (if (= rational_spl_flag 1) ;; if rational
6 B) ~ {8 N% L: h& w7 r - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
0 f( M. V8 `* ?. K- `; `: M a - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
! {. J" Z" L$ K* R8 C, M - )6 v6 z- K$ T, ~( @7 e U! v- x
- )/ o$ a9 \6 E) r: M
- ) ;; end if 10 record& }8 B3 d w; |1 M$ y. Y2 p- d
- * x6 r R8 i( D( L9 E0 Z) r
- ;; Display cntl point, weight and ctr. Increment ctr.
# {- Z1 r7 y; ?; P3 E% B - (setq cntl-pt (cdr temprec))2 J5 P2 W% o4 y' `
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
7 s5 R2 S9 i) r) R - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))6 d0 W7 w t* ~+ P Q" S+ w4 I% w
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt)))), C: z- I4 i& Y$ Z
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
; r, ^! F# n- K - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
5 K h. r# N3 B9 X! _, m - (if (= rational_spl_flag 1) ;; if rational
% `+ V' \1 U; A" X% o - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght2 t: I. G/ u& J P
- (mode_tile "weight_text" 1) ;; disable wght* d, C+ q7 S8 ^# f
- )
3 z+ {9 Z# p# T2 R8 j# P: h# x. e - )8 g6 h% L( r* V
- ;;
; n8 Z& r; j( ~: ~) f! _" i - ;; All the spline info is contained in a single elist. We must do some2 Q& [+ s1 q! B! o- Y: O
- ;; tricky list processing to loop through the elist in order to display
, w8 a7 B% \$ L- ~- Q - ;; all of the user data points.
- x9 I) W7 ]" ] - ;;
. M9 r6 H4 ]/ l( u - (defun next_data_pt ()8 `1 ^- k3 b. [3 L) e- U
- (setq elem-no 0) ;; elem-no = element counter4 Z( |* S- W( \/ R! O! A
- (if (= first-11-time 1) ;; If first time, find location of first) _/ n+ b2 ?( h0 s
- (foreach list_item elist ;; data point element in elist
% K' {" V& w$ C0 s' ]8 o: B8 O - (progn
% c, Y* P& J% m( Q" N d - (setq elem-no (+ 1 elem-no))3 W$ Y8 r5 x0 O4 l8 f$ o
- (if (= (car list_item) 11)
# ?3 R! g/ Y/ B/ `4 Z o( J - (progn
# M) ^$ Z. C+ E* u% @ - (if (= first-11-time 1)& X+ [! Z, [5 Q- o3 S% f' C' n3 n
- (progn
( S$ ?& T& G8 o1 ^5 @( B5 q# G - (setq first-11-rec (- elem-no 1))
& i- z/ W0 v9 c" [; h - (setq cur-11-rec elem-no); O2 Y- O( J; b
- (setq first-11-time 0)3 x! v. x; u# u( Q4 K" ~
- )
/ s0 s# U% d2 @ - )
6 Y, A3 {) w4 ?4 q/ W5 j - )
- D, r. `& n2 ^; O; b - ) U3 T1 l# ? s) V9 S
- )- K$ Z: p" v6 d2 o; P; r; q' Q1 b
- )4 P7 p" I! d" h: Q! W/ ?3 {
- )9 G: A# T6 ] b {* ], |9 n, L
- (setq temprec (nth cur-11-rec elist))5 O4 v6 Q# u' g& E& o
- ;; If it's not a DXF "11" element then we've gone past the last- H; S" O& |# b6 O$ o6 n! ~6 b0 n
- ;; "11" element. Go back to first "11" element. Reset counters.
$ v# D( Z/ M: Q3 G* v i - (if (= (car temprec) 11)( A1 h8 ~* I6 e; C3 c4 Z
- (setq data-pt (cdr temprec))* S1 \6 S4 W$ q3 }* w
- (progn ;; else
/ I" k+ E) F8 j7 L: V( J - (setq data-pt (cdr (nth first-11-rec elist)))1 p1 O8 W& U7 U2 D( V
- (setq cur-11-rec first-11-rec)0 c; a: ~& k, U2 e# K3 j
- (setq data-pt-indicator 0), h6 E4 ^# V& y3 p* r
- ). m! V9 u6 M$ `1 Q V; d$ y
- )/ m9 c& S a! V+ n1 h& `
- ;; Display data point and ctr. Increment counters.: k8 A q: F7 p' m0 @0 K
- (set_tile "dxtext" (rtos (setq x1 (car data-pt)))) X' v6 }! o) ~3 l' D
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
. r' E' F1 f: v. { - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))9 O3 b2 v1 ?/ s8 d V. Y0 X4 h
- (setq data-pt-indicator (+ 1 data-pt-indicator))8 J8 h! x/ e2 j% }% s6 w
- (set_tile "data_ctr" (itoa data-pt-indicator))0 Y4 g8 j/ Z- M, C4 k1 W* v
- (setq cur-11-rec (+ 1 cur-11-rec))
$ S$ W( R$ a* P, s - )/ N6 M& I h# M/ m- @ s# G9 K2 V) G
- ;;
, F; N3 I: O/ @& W W, ]9 w- K0 m# Y - ;; Modify SPLINE# T- }" k: w8 c Y8 G, S( d6 `5 I6 v
- ;;
7 Y* |: @9 ]9 V- c: f6 i% K# h - (defun modify_spline (). V, {3 q) D( r! B7 s
- (modify_prop_geom)
5 I4 d$ t* d) U( L# | - (entmod elist); \+ {6 e5 {4 `1 n6 j j! c
- )* H0 s3 R/ c. d) m6 W, D4 [- F3 m
- ! B4 R& P4 i2 i8 b* r" r
- (defun ddspline ()
( l+ G* F. H; [$ W5 Y* y, { - (if (not (new_dialog "ddspline" dcl_id)) (exit))% R' l6 p) w& e5 `; {. p
- (set_tile_props)# L, @+ T" \( F, s8 ]5 w
- (set_tile_handle)
: t7 h" n/ g M, G. ^# E5 E - (set_tile_spline_props): s9 \( B2 r ^& i
- ;; Display first control point! y! s, S8 V5 k! z/ x4 U5 y2 `
- (set_tile_cntl_pt)# s6 o5 a* a1 \: `
- ;; Display first data point" ]/ {( u- c6 p+ M g
- (set_tile_data_pt)( o7 G, V- `( C6 n1 P
9 ]* a+ h5 z* K3 D* u1 n1 F5 B- ;; Initialize flags to indicate first time through the dialog.
; f& `; s' d$ d( Q, B# f - ;; For control points and user data points the "next" buttons% f! m/ _9 B1 Y9 Z; q, c
- ;; in the dialog call the appropriate functions.
9 W; L) [: o9 q1 O - (setq first-10-time 1)( x& n! R) j: E. ]: f" Q3 u h
- (setq first-11-time 1)( ]1 B$ {# P% v; t; q5 R: F6 g# \
- ;; initialize control point number counter
' q, x" f# h1 P! d% H/ H. E - (setq cntl-pt-indicator 1)
1 W8 g8 n3 D; x& ^ - (setq data-pt-indicator 1)$ e8 k' y- t+ t M! d
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
Q4 P5 r7 }# d G - (set_tile "data_ctr" (itoa data-pt-indicator))$ x1 E8 ?- G, s6 {; C( k& Z
- (set_action_tiles)2 Z# V9 P! r% y! a
- (setq dialog-state (start_dialog))3 O9 O T) e! _* [9 Z# x) P
- , ^8 T p0 x, d$ i
- (if (= dialog-state 0)
* A. I4 z" O" ? - (reset)
4 [; B* \" N# @) t8 l- E! I4 t0 c - )
8 N" x3 D: i, s6 @8 O& a - (if (= dialog-state 1)1 S' J M4 w# Z. F9 M& R0 }
- (modify_spline)
1 D6 v2 H0 x5 \6 A8 f7 K - )( D/ R% Y% X- v' J. d
- )& j3 d: s7 m1 h, @( o. l
- * ~' I* x3 T4 D6 w# {0 o
- ;;0 E6 U2 P4 I( C& ^% t
- ;; Modify DIMENSION8 ?/ V) e3 c9 d5 h$ ^; L
- ;;
- d' P3 n' L6 ^6 V$ p - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl3 j8 f% P7 E& x U7 r4 h" h
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
8 |+ z. ?6 \( p7 S. Q/ a, c - dimtype dimsvcurset)
5 I F: L, |9 j! o% Z - (setq dimtype "DDIMEN", Q9 `* X* e: v- Z6 I2 q- }
- dimsvcurset (ddimen_dimsty_restore): g% Z: e- Y% ` q( K) Q( u
- )4 n9 f: e4 }/ X+ q
- (if (not (new_dialog "ddimen" dcl_id)) (exit))
: m& q& P W. `2 l, m4 N- B4 c - (set_tile_props)
& a- z3 }6 M1 L2 `* n* X - (set_dimen_props)0 j. B9 C. o5 A* m. N2 \; e e
- (setq dimtext (cdr (assoc 1 elist)))
3 Q8 K0 [2 d+ \+ M8 { - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))# t$ w. r. u. z- M3 H" M
- (set_tile_handle)
& m9 f9 u* @$ F0 b; @8 K - ;; Define action for tiles' y6 j. u: b& R- q9 ~, }
- (set_action_tiles)
7 k6 L/ ^ c2 l0 l - % u% d+ ?! S# f1 r2 \2 _7 }
- ;; Set initial focus to text edit box.
9 O# d2 F+ f$ z, X7 V: R( q: Z - (mode_tile "t_string" 2)
^9 t$ t7 t1 g5 ^- O
( H- X. t/ b+ v- (setq dialog-state (start_dialog))8 {4 n' a( T2 X" @: Y; x1 V. U
- (if (= dialog-state 0)* {0 z; @/ m8 A# n
- (if (= ddimmt 1)% A# w9 O: Z) ^" ^ {. o7 L
- (reset)
$ ~; n' A# X. I/ B* F$ G7 U; n - )
, @1 w9 Z+ H* A - )6 F6 S, f% d- G1 D) Z' Y5 D
- (if (= dialog-state 1): L7 G; Z# |$ I! K
- (progn& v# {' R. F- Z9 F6 x8 n
- (if (/= dimsty stname)
( c6 K( Y4 l6 q7 {. E - (progn
4 n# E+ ?# _- Q - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
: H% N! j, r- d- _' C+ e' A - ; doesn't have it.
; g, a2 a) Z2 p& B1 C* Q# D1 j - (if (null (assoc 3 elist))
9 T, G o F f - (setq elist (append elist (list (cons 3 dimsty))))
0 N$ J0 A, c- y4 W8 d! p9 u+ n - ; else just replace it.
- M8 f, L5 \3 Q8 _ - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))# z- h& D4 u% a
- )( d' a% @$ R& X7 ?
- ; refresh sv_dvlist with new dimstyle.
5 S4 n. Q; u" h% I0 s - (setq sv_dvlist (tblsearch "dimstyle" dimsty))3 | {. T- f1 q* A( a; U t
- )
# @3 ?2 h4 |+ m3 ~3 ? - )
8 R3 G9 a+ O' e7 [& ?% {; m - (if (not (null dimlist)) ; attempted to change dimvars
9 j- { g. l' h- F9 f( r - (ddimen_complist sv_dvlist dimlist dimtbl)* b6 O" P( _9 }& c0 m+ |$ [
- )
$ ~# |8 _: z+ _% D4 H - ; Modify dimension text$ w; _; T0 x; {, ?- v. n
- (if (/= dimtext text)
* A6 U+ s/ w f. Q# w - (progn, `) R. i; S7 r# H
- (setq dimtext (if (= text "<>") "" text))
& t- H# N) t4 f - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
; e l# j2 O1 h- J2 { - )
7 S: q% B7 N; h+ |& `0 N - )0 s* k8 J7 h1 K0 B7 p: F; X! g
- (modify_properties)
: W$ q- h, R2 M3 Y4 f7 [ - (entmod elist)) [; l3 F# R9 P. o, |
- )$ x* n: Z* T2 Q0 g) W" ^6 D X+ J
- )
/ |- C ?- s, ~) F8 i% t; f - (if (= dialog-state 4)
1 I% E7 i d- r/ p+ K6 c. v - (progn" y0 d; f( Y, f1 }7 k7 L" S. u
- (setq ddimmt 1)
& f0 g8 T7 I! b& S - (if (/= dimsty stname)* C2 z9 F0 a0 ?& c
- (progn
6 y/ O) h. `$ j Q - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case# o6 T. l+ H0 P7 d
- ; doesn't have it.. {1 G2 j: d$ U+ U1 w8 `
- (if (null (assoc 3 elist))3 i4 Y2 ?: M. l7 T7 U3 q! m
- (setq elist (append elist (list (cons 3 dimsty))))9 M1 ^) d M7 L- }7 T5 M& N- q
- ; else just replace it.$ B; U |8 v# \; g/ m
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))9 t2 l1 Y6 B* @. e) |6 S# X
- )5 r+ _- _" G9 J. c3 J! [
- ; refresh sv_dvlist with new dimstyle.0 v$ p1 h9 }+ i7 u& W4 w
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
( I1 O* e- C" f - )4 {% i- y5 \+ E+ k& V
- )2 ~. R! ~8 L2 ^* M
- (if (not (null dimlist)) ; attempted to change dimvars
. `- c: N4 |! a- z8 S6 e8 J6 @ - (ddimen_complist sv_dvlist dimlist dimtbl)
' q3 z; K' W" f ? - )
7 {& S( X! F$ G* S- l - ; Modify dimension text
; f x4 w. ]; r1 z& k2 x - (if (/= dimtext text)
, g0 o: T2 T0 g7 e0 P) R - (progn. V9 r4 l& u6 W5 o8 J. r9 _
- (setq dimtext (if (= text "<>") "" text))7 M1 [5 k2 y4 |% W
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))2 I1 }# m) M. q0 p
- )2 I/ `5 j9 K# }/ i) Z% i& u4 D* {
- )
& D2 _* L5 _, [1 \& z - (modify_properties)
& ]7 i# x: v, Q - (entmod elist)9 a! Q# e e# h4 d
- (safe_ddedit ename)# }; U+ W x. R1 M
- (setq elist (entget ename))' J- C- E& e& F. \
- (ddimen); r7 b- D/ Z+ n" r+ N/ y
- )
/ z! I5 ~: c7 m - )8 o; T% G1 N4 i* G/ a9 s
- (ddimen_setvars dimsvcurset) ; Prepare to exit
3 |$ n8 k9 `1 i) ?$ ?8 A- P" r# x* P - )
* t( I0 r, d( k - 2 O" F2 n& N5 K4 h+ U, n- R
- ;;
$ ?/ W* Y! H5 t, A - ;; Modify TOLERANCE
# Y3 Q6 v+ G8 _. U$ l* K2 q - ;;
& C1 x% z- J! Q6 r9 {5 b: X7 ^0 W - (defun ddtolerance (/ a stname n dimtbl" a0 x$ k- b( a4 f6 m% }
- dimsty dimlist dimovr sv_dvlist stlist dimtype
A ~# c' P. G3 O. f6 y, M& K, c - dimsvcurset)/ C0 n* s' c7 J0 a! w) Q
- (setq dimtype "DDTOLERANCE"
0 |! f# P1 D, c7 p+ M% S, k - dimsvcurset (ddimen_dimsty_restore)
* L# {4 U; @* F6 Y4 O. P - )* {/ {( {* D9 v! E
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))9 P5 [+ F2 a( [ G7 t' z+ w
- (set_tile_props)
1 r* S) Y W. c; C/ V& T - (set_dimen_props); x; ^8 y+ x+ N* Z5 N
- (set_tile_handle)2 B5 f- K" _9 N* U( ?, o' V% g
- (set_action_tiles)
L& C- \) J* R1 f& M' L - (setq dialog-state (start_dialog)): U, X/ j6 ~ J% S2 @" U1 |# t
- (if (= dialog-state 0)" J# {& [5 D# C0 q
- (if (= ddimmt 1)1 D4 X% _9 b1 w
- (reset)
2 |+ }6 C; g. | w/ N; f$ N - ). V+ c4 A/ p3 C
- )) W2 }. _' t/ c5 J* `
- (if (= dialog-state 1)
: w9 P# Y% d& e g - (progn
/ v% i8 U h5 ~; |: ]3 b - (if (/= dimsty stname)
7 o+ f( Q4 L: v+ q# B0 H1 p - (progn
4 B& {6 X8 B" U1 y3 E - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case% U/ O k) r* {
- ; doesn't have it.
( f, b: s. a3 Q# R - (if (null (assoc 3 elist)), E. ~# y% i3 Y3 t
- (setq elist (append elist (list (cons 3 dimsty))))3 N2 o6 @; V# G! a7 C8 L
- ; else just replace it.3 I% P( f1 z( n7 ]8 [
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))( }9 ]; G8 ?2 F; f
- )
" ~9 f7 j, J3 @' Z2 o- \ - ; refresh sv_dvlist with new dimstyle., `; s% b; l C7 g
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
5 ]8 p0 C% Z$ H8 \' ^3 v - )
& N& a, Y5 K# y9 Q: W5 ` - )- k; p4 E* v1 ], A( Q7 [; n
- (if (not (null dimlist)) ; attempted to change dimvars
( T- p& G0 z6 R6 D - (ddimen_complist sv_dvlist dimlist dimtbl)1 U2 a& t( ~: c: p3 c* H: h
- )
. n' t0 j V" T, [: z6 W - (modify_prop_geom) d! o- ~0 j. d* G* i) n
- (entmod elist)
" R2 p0 p: u4 T8 v. c4 c - )
( V# B! c1 }4 q2 R - )
1 u7 I6 l- `, X8 @2 y8 p9 N - (if (= dialog-state 4)
% ?6 o j& [9 u0 e) k' u - (progn
: `# U+ @1 P. e8 C, m - (setq ddimmt 1), \( U" N& i* n) Q6 q2 w4 l
- (if (/= dimsty stname)
4 O2 A! L& y( m/ b* Y" \ - (progn- Y1 q0 g2 f& w: T/ U+ U; H+ C
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case# w; s& B! A" [0 v: R# f% [4 Z
- ; doesn't have it.
& r( Q& j* U4 Z, }! ?0 y1 x - (if (null (assoc 3 elist))
& }0 x1 z' \5 i8 B! _ - (setq elist (append elist (list (cons 3 dimsty))))* ~( g3 m" y4 ~$ |: e
- ; else just replace it.3 `) I/ H- [6 \; I
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
3 E# J: ?1 Z7 i4 b) c; k - )
# X, {; [' _2 @$ K) ~4 m$ T% U - ; refresh sv_dvlist with new dimstyle.5 v* _. E4 j9 z- X( w' [8 @2 A
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))8 z7 _3 }! Y S1 N
- )9 I5 m5 m3 ?5 u! F: ]
- )5 D8 I6 J, ?9 H% h
- (if (not (null dimlist)) ; attempted to change dimvars* b h% ?. I; z7 R. |
- (ddimen_complist sv_dvlist dimlist dimtbl)
( t4 L8 ~/ T- B5 k! ?4 c - )
! `6 t7 O! Q8 S6 S; o5 M$ y8 \ - (modify_properties)
' @0 b5 v# w3 q6 {6 z. w - (entmod elist); C/ d' S3 T) J) D
- (safe_ddedit ename), }! J+ G! q& {/ R
- (setq elist (entget ename))
3 \4 R, t+ Q9 X5 l9 @. _% i - (ddtolerance): b' z v/ b- J5 d6 f7 c' O9 j0 U
- )2 ^) O3 B8 F2 _) K- {
- )6 L$ c6 t0 ]# B+ {% ?6 Q
- (ddimen_setvars dimsvcurset) ; Prepare to exit- S% N( F. ~/ x% l6 r
- )# S0 q; y8 g& c4 |3 T
- % Z b9 G( V8 V
- ;;+ @4 V1 y. w: b* d
- ;; ddimen_dlg - jump to ADS ddim module9 b0 y2 Q) q0 `# |
- ;;
( w) U3 {, {% j o: p - ) f, N5 ~: p; O. [, _
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)5 _( {: x. Z) g) p* S7 t$ a l- L
; h% Z& |4 N6 |8 ] @5 f7 H- ; Jump to DDIM with overrides if any.
9 c- z* l) x6 x, Q$ H - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
" n; S i I6 W+ b4 V; p( d - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format- J# s7 l; x( [4 ?% x
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation- f c" H [8 ]# |
- )
& d0 W0 o, v0 b7 L" V6 j$ Q) i8 x - ), K% q, a% _% s9 k5 }% N3 |
- # M5 [, l. z( m* r; R# A6 k$ y$ K
- ;;. q" _8 v, W! o' i
- ;; Dimension variables updated are stored as overrides.* m) [% X: J3 C4 ]+ }/ |# J8 Y5 g
- ;;
/ }" G/ |$ J* r; Z; ~
& l' x/ p, e$ y; {- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
1 A6 A# L2 k, ? p2 c" A - dv dime commandIssued)9 f; R' Y7 L- X6 Y' u
- $ u$ l) |: R' g' k! x' e: r
- ; Here we skip the following first three items: l- K* }9 ~7 {# v8 ]9 F4 F3 S
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
: g" e7 d1 r$ P* t( b6 B - ;/ S$ w+ T2 G+ J% d
- ; The list comparison immediately begins with dimvar., V: c1 y# ]" w0 c# v- l: f
- ;1 H" o# b. n& p' x% d8 }; X: v+ _
- ; dimolist - original states of dimvars
: @& M9 ?0 `. B4 c - ; dimnlist - new dimvar list which is of the resbuf's) R, W$ d5 G' c5 ^& `
- ; dime - entity name for the dimension
) \ k: a9 ^7 _0 F4 j9 @6 m0 j+ ~ - ; odvar - value of dimvar for the dimolist0 _0 g/ U% E" X' U( Y- e
- ; ndvar - value of dimvar for the dimnlist- b6 e0 r: V7 o, h' m& n& h3 s
- 1 X8 r5 v$ r7 s. A
- (setq i 39 _. u9 {* e0 V8 N0 u9 v' U1 p
- dime (cdr (assoc -1 elist))2 `3 e' u( |, p
- )9 U9 K6 ~4 ~3 y" g) ?
- (while (setq odvar (cdr (nth i dimolist)))/ i7 z3 ]7 C: R0 p/ K
- (progn$ Q: s3 N+ p) E( |8 M, h' b' w
- (setq ndvar (cdr (nth i dimnlist)))
. Y2 r1 |6 K: g+ j& w# m2 | - (setq dv (nth i dimtbl)) g6 z% _ H8 ^0 f( E
- (if (eq dv "dimtxsty")& [3 X* a& a' A$ j3 k7 U
- (setq odvar (cdr (assoc 2 (entget odvar)))
% I3 z. K4 Y% u4 v8 e! |% A6 V4 O - ndvar (cdr (assoc 2 (entget ndvar)))+ H, Y6 R, P6 j! r' O
- )2 T( B2 \2 `4 `/ k! y3 J* R
- )" f# K- H1 I \ L, Q% p
- " u& ^6 D, i$ _6 W7 |
- ;* s. i" b0 ~8 t/ c* u& ?$ T: Y
- ; In order for DIMOVERRRIDE to operate correctly with string
6 T, Y0 ?' u/ E9 H8 Q$ o% z; y8 H5 c - ; based dimvars, we must pass "." versus NULL strings.
, s0 }0 B! _6 k4 e0 l - ; In this case ndvar is the new dimvar value the user wishes
6 f% P1 {- Y( U" R# K" v - ; to update on selected dimensions.9 |/ b- m% |& k3 o. M7 @
- ;6 A3 o3 S" \3 `$ u' z% |
- (if (/= ndvar odvar)
+ t, P) M9 F0 L0 Z1 D1 k8 q( V - (if (= 'STR (type ndvar))
~$ }* w; `0 f, g$ m - (if (= ndvar "")
$ ~6 N# p: d/ ]1 R/ j% r- M+ f2 P3 p* t - (setq ndvar "."))))" y' i9 ]& q }& M2 G! \2 l
. ^7 P) C/ N& V! M5 V- (if (/= ndvar odvar)
# T* S" Z7 C! Y; I. X9 t - (progn$ t/ G1 j2 K8 J
- (setq dv (strcat "_" dv))
% E$ e5 C6 \9 A& A/ X' v - ;
7 @# c$ d5 j) c* P, w. q4 ` - ; Start the dimoverride command I$ _, d( J! E/ K5 f% |# F' r4 f% u8 C
- ;
. x0 @: \% {8 L2 n - (if (not commandIssued)
. _# O' r: p( v% f% L/ P2 J - (progn8 q/ J! [) \6 ^$ m5 A: j
- (command "_.dimoverride")
* D0 J! r- c5 c5 g" a - (setq commandIssued "T") F5 O$ Y7 X- x% ^$ J( M
- )
% U7 d- @/ Y7 `& G1 G F - )
7 G" W8 [; c& |* \0 s - ;9 _- M1 u8 N( u+ M; A
- ; Issue dim overrides
4 z* S7 f3 k9 W. T4 R$ L, { - ;
+ m q$ t" y1 ^0 y - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
* Y9 l, e U- n& z6 Z - (or (= ndvar 0) (= ndvar 256))
f4 u' }! |2 H, G7 c+ ?3 k; m - )
* x0 l5 y9 x# J1 @6 E9 k - (progn$ R, h M( {0 ?& R( ^: S m
- (if (= 0 ndvar) (command dv "BYBLOCK"))
' q4 K+ H; G* z% n4 L6 d - (if (= 256 ndvar) (command dv "BYLAYER"))6 k# w6 h& m e/ X' E5 Z" b
- ). w6 r6 F. y7 i3 a' d2 y5 y% j
- (command dv ndvar)8 h+ }. a; y* x( Y
- )
* c/ N1 _ f3 b. {: a - )( b( t- j7 C* E& @$ \- h: m
- )
' r* e- p4 D+ |( r - (setq i (1+ i))% t& G$ E7 D: E/ |$ W/ S k& H( s0 Q
- )7 m$ C$ ^7 b5 \! k. i
- )
/ e: z* \6 X; w) y% e6 Y1 _" X - ;, F4 c7 v* x! J3 h( U% s: L5 N: q
- ; Select Entity and terminate command# Q) V1 K# D" V# D' W3 u2 ^
- ;: s; V5 g8 V+ k
- (if commandIssued
; o5 K% f) B6 N( R" [ - (command "" dime ""), s" M* @# t- b3 d
- )
/ }; f. ~" [* i* \ - )
# J1 | c6 o8 Q, z+ ~
; b5 P* { Q1 }" G1 [2 g- ;;
* M) u' ^, F5 g* ^ - ;; Get style name currently selected style name.- B) S- u3 m) W+ p8 M
- ;;
' H3 }( y! [' ] - ; {* s1 W: C* E; j1 n& m' ]# m1 V# J- O
- (defun ddimen_style (/ dimsty)
7 \0 I% u8 E5 c* F! D3 n8 E - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)5 a* R2 m3 W, `4 o+ l: t
- dimlist (ddimen_getdimvars dimsty)
) V4 l3 `4 ?% g( W" | - )
P" h2 Q" g9 N# |' j! n4 S - dimsty
* I1 U. \7 f, z# I - )1 X. b$ A' @: U I( k9 A
- 6 X$ r+ G; E0 l# I7 p7 i
- ;;$ l8 u( G3 a! \7 P
- ;; Set dimvars
) W0 ?2 A; I: ` - ;;9 @6 ~( m. e1 W0 K6 ], k
- (defun ddimen_setvars (dimsvcurset / dv i)
6 n! S7 ]$ T- }# M) V - (setq dv (cdr (nth 1 dimsvcurset)))
, {' W5 ~- r' c3 O. ]1 c+ T1 C - (command "_.dimstyle" "" dv)
g' G; n4 a3 M" O. U4 `3 l2 ^" j - (setq i 3)( e* g. F+ t" ~0 C O
- (while (setq dv (nth i dimsvcurset))
; _7 Q( ]/ v! T5 u* j6 H( Q5 U - (progn2 V4 |: k4 x7 p. K
- (setvar (car dv) (cdr dv)) G8 m8 {! g' k5 T. f
- (setq i (1+ i))% P2 d3 E( r# W
- )$ v+ D" F3 e. l( }9 }
- )# ?' o. i# B+ i( C
- )
- C6 b' O+ B; u9 p& M5 |3 Y - ;;
+ |6 M. R9 i x) x - ;; End-of-dimension
( M; ` G9 V5 t% F0 n$ F - ;; ==================% D$ P+ U1 \3 E0 k X u) S
2 G* ]' o8 o0 D$ A- ;;4 i* k) t8 z1 D6 V# F7 O
- ;; Sub-dialogues for properties. Common to all object dialogues
v5 k! W a6 d# s8 M8 |& I - ;;
& N2 C! ^! X0 ] i5 c j - ;; This function pops a dialogue box consisting of a list box,image tile, and2 Y9 j D* e9 |" o0 k, q
- ;; edit box to allow the user to select or type a color number. It returns
+ @5 K( O( ]; ]& M! H+ Z9 v J0 ^ - ;; the color number selected.$ @: g. Q8 I3 s
- (defun getcolor (/ old-idx colorno cname lay_clr)- N, O& H% @5 b$ ~; i# y
- (if (= (get_tile "error") "")
0 a T" |- a6 z! T2 W. G3 m - (progn8 P8 U4 T9 K5 A* ~6 _2 A" M
- ;; Get the color associated with this object's layer, for use
- w% V9 Z5 [( p2 u; N l9 }0 w - ;; in the color swatch if the user selects color BYLAYER.
1 ?/ K; k9 k2 u: l - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
& Y( V8 C0 E8 z/ i- K - (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))* X! j+ J; I8 [6 ?0 Q0 @
- (progn
& {$ o# I% N$ x+ P V - (setq ecolor temp_color)
: C* R3 m" t' E. D! [) i! ? - (setcolor) ?8 Q% [& @% m. H! b
- )1 Y, Z8 w0 L }1 s/ ?0 s
- (setq testcolor temp_color)
+ M( ^) j2 L Y$ A - )
/ v4 g m) W2 X - )* |) r+ [/ t7 r0 Q" S
- )
0 p* x3 M5 L: u9 S8 v - ecolor
: }1 S9 p" Q. o9 S. u - )1 p1 s5 H8 u4 A& e( S" }% T l
- ;;9 z/ \! `9 I/ I8 J
- ;; Function to set the color tiles.
m0 f3 Z. y2 Y - (defun setcolor()1 Z" G8 d% z$ E6 x0 O
- (cond' s. y( o# B P+ H) E" n+ y" S3 N
- ((= 0 ecolor)( V+ w+ k! f8 _9 l+ L
- (set_tile "t_color" "BYBLOCK")
2 ]3 [: F: K- ]( a4 }, f - (col_tile "show_image" 7 nil) ; show BYBLOCK as white0 ]. I+ t4 |1 o0 ?1 [1 ~+ R
- )3 ~% L% w S- }$ i' x9 b
- ((= 1 ecolor)
G; h. n) o r/ @ - (set_tile "t_color" "1 red")
# b, z9 S6 w3 `6 U6 B" }7 J - (col_tile "show_image" 1 nil)
) s k5 K$ Q7 G- }; r* R8 l - )' D0 t# a. O8 m7 m- F5 Q
- ((= 2 ecolor)7 }1 W, @' d% x, i
- (set_tile "t_color" "2 yellow")
4 O( C @# R- ^! A7 d/ y* s$ v% \ - (col_tile "show_image" 2 nil)) G+ {7 y' L, t5 e2 H4 z
- )$ n5 N5 r8 q4 `. @ N
- ((= 3 ecolor)
( G7 E; K+ V9 Y& \# I - (set_tile "t_color" "3 green")" ` w. E5 p8 b3 o2 N- l U
- (col_tile "show_image" 3 nil)
2 i- i, z) X( @3 b$ L: g" e - ); T, _1 h( X# G3 Z% ^
- ((= 4 ecolor)! f8 n% ~* t }+ k
- (set_tile "t_color" "4 cyan")
* f! [# O4 T: O; I0 @' E) ^ - (col_tile "show_image" 4 nil)$ d2 r0 C' c+ Q* j' o3 F8 l; e
- )
5 ^$ `+ {8 o' ?! n' v+ q - ((= 5 ecolor)
; C; y, _4 x* a- m8 V; v0 @ - (set_tile "t_color" "5 blue")
7 W4 D5 M' c9 i% R8 u - (col_tile "show_image" 5 nil)
. S1 T7 [; k+ o9 U" i - )
0 F Z6 c' u# Z! P" u' R) D - ((= 6 ecolor)1 S/ J; @: s# R1 \; g
- (set_tile "t_color" "6 magenta")# e+ H1 i. W6 |+ v: ? k
- (col_tile "show_image" 6 nil)
1 {( ]; f* Z# u - )
1 W7 g6 Z5 q7 d( n! A8 l, q - ((= 7 ecolor) M. `! k5 A+ H$ K Q$ }4 [
- (set_tile "t_color" "7 white")) Y4 u+ K" a/ l9 o* t5 R% z m# r
- (col_tile "show_image" 7 nil)
" B# |1 v, K# o' B r5 I - )
* [4 f8 Y' ~* @; f+ D - ((= 256 ecolor)9 D& S* F- R2 ^% n0 n6 Y4 q
- (set_tile "t_color" "BYLAYER")
4 Y8 E/ t+ R9 T; V' v7 o - (col_tile "show_image" (bylayer_col) nil)
- c1 t3 F; Y L) c - )
- ?7 y3 F* D* d/ D+ a; C - (T* Z# R+ O$ m( [; K5 A
- (set_tile "t_color" (itoa ecolor))2 h5 Z4 F* R4 Q: D
- (col_tile "show_image" ecolor nil)
; R7 }0 L* F ?3 ] - )
( W8 i7 |) D- | - )
' S! G1 Z4 {# C/ F - )
/ X; T- g2 H( }) {# P; _0 n+ F& T - ;;
: F& F5 P$ v: _. t - ;; This function pops a dialogue box consisting of a list box, image tile, and) T1 D; n% M3 [# j! w+ a* s
- ;; edit box to allow the user to select or type a linetype. It returns the
F: d0 P8 Z. Q5 q6 o% E7 g8 I - ;; linetype selected.
' ]) f5 g l- g; F1 |! J - ;;. ^% T/ p# L$ b9 u2 l3 j
- (defun getltype (/ old-idx ltname)* S, X6 G, _0 I5 t! N: P- ^8 F
- (if (not lt-idx)3 t$ e2 G4 } v: |( y' I( ]
- (progn
$ T: q! ^3 r! Q - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist5 ^1 Y q7 \9 F3 }- O& n
- (cond# k7 g( o% a7 @: g
- ((= eltype "BYLAYER")( h( ~* S$ |$ D% \. G2 y A
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
) F7 X, D8 V4 ]" q - ((= eltype "BYBLOCK")3 t- } L5 r# u+ |
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))' r, h1 v- F) {
- (T (setq lt-idx (getindex eltype ltnmlst)))
9 @4 O( d% b' O% g; j# f; ~ - )5 L5 X/ i3 {# [$ z! {) P
- )8 g; }: k; K( F
- )
6 d, o, P2 B' Y
3 z5 H s, Y5 I) C# L- ^6 V! e! W- (if (= (get_tile "error") "")1 x. w& L$ c S0 Z
- (progn | t- u4 n7 D
- (if (not (new_dialog "setltype" dcl_id)) (exit))
; L M4 e5 }, D: J - (start_list "list_lt")/ Q. ]" F/ L8 y$ h
- (mapcar 'add_list ltnmlst) ; initialize list box# e3 T/ [1 M. {
- (end_list)
" N, `: R ?8 R - (setq old-idx lt-idx)$ ]6 t& E( _, V) `
- (ltlist_act (itoa lt-idx))( A3 Q0 i1 _$ {6 m9 z9 A1 T/ n
4 U' q# q0 x; S+ d. e- (action_tile "list_lt" "(ltlist_act $value)")- B) I4 b! U$ W* _5 n
- (action_tile "edit_lt" "(ltedit_act $value)")2 _1 v6 Q1 p! S. I" f8 E! @4 q
- (action_tile "accept" "(test_ok)")& |) V5 M" N2 R: Y! l4 i
- (action_tile "cancel" "(reset_lt)")0 T5 F, u) @) B/ N9 R
- : {; h2 p7 h5 d
- (if (= (start_dialog) 1) ; User pressed OK
H) Y# \% j/ o6 m3 E - (cond
6 M. o+ a, @0 q1 E; e - ((= lt-idx 0)
& Z: X" s7 \, t' e- Z - (set_tile "t_ltype" (bylayer_lt))
1 H( _; U0 X& b. g3 B - "BYLAYER"
; L$ h6 e9 Z _$ J - )
# \5 y! t) O& M0 U5 D - ((= lt-idx 1)
( l. L" f8 \/ U7 p7 F+ e N) r - (set_tile "t_ltype" "BYBLOCK")! d1 U. V7 M+ N: x! J
- "BYBLOCK": t( {* r1 U6 ~! p5 T6 t |
- )
3 D& \4 \) O! I - (T (set_tile "t_ltype" ltname) ltname)
2 X5 \6 i& w# l* }% o7 c" P9 s2 Q - ): b3 [4 `* O2 l! u k$ V/ \
- eltype
& C9 p4 G7 G2 Z3 z1 L - )
# ~ H3 W: o% ? ?- X - ), f' z# f! ~# n/ |
- eltype
% e0 j8 {/ S8 {. v& ^ - )- a( e, Z3 S" Y1 s
- )
% R& D& ?( y# A0 R3 C# \ - ;;6 m; j6 q& n* l' u# k2 Q. n# \
- ;; Edit box entries end up here0 R0 S" }3 V4 j/ p& E
- (defun ltedit_act (ltvalue)
/ F6 d1 v& d5 }. d+ o& h - (setq ltvalue (xstrcase ltvalue))
/ n$ J* ~8 o' b2 ^4 l( a: J2 X - (if (or (= ltvalue "BYLAYER")
$ n+ k$ e4 }4 Z4 r- L" ~+ A6 c3 L - (= ltvalue "BY LAYER"))
7 s1 f* R% z, T" V$ j8 P$ \3 b - (setq ltvalue "BYLAYER")! z% n9 n Z3 z; Q
- )
) y0 F1 {' k' n p" o9 y& ?# O - (if (or (= ltvalue "BYBLOCK")
1 A( D P" S M2 l5 M7 o6 w - (= ltvalue "BY BLOCK"))
7 n- b/ \5 ^* R! E( q/ n9 B - (setq ltvalue "BYBLOCK")& L! c/ \% T$ r; @8 F, N0 L
- )
* p b& H0 K9 n; m) V1 m - (if (setq lt-idx (getindex ltvalue ltnmlst))% Q9 H5 B% K0 b1 b# U
- (progn5 d" l. T, p \) F( V
- (set_tile "error" "")
' W4 ^# j- S# _# I# U3 S - (ltlist_act (itoa lt-idx))
( r# p5 ~! L# U3 {0 v& u - )5 `% T A- \7 K1 H! z
- (progn6 M: I! F; _9 l8 `6 ~* C' A. |
- (set_tile "error" "Invalid linetype.")" M5 Q6 q* P2 h" D/ s M* Q2 \
- (setq lt-idx old-idx)8 `0 X: p& V! ~" q; Y, c
- ;; (mode_tile "edit_lt" 2)/ q+ z# f: s3 X& [* K
- ;; (mode_tile "edit_lt" 3)
' M! |& M3 H3 E* O - )
3 W7 p p( U3 j$ G0 e2 b; y - )0 ?3 Z6 \9 U$ W8 P2 \- X: Z, |; k
- ); q2 C5 L% U5 ~' P' C/ G
- ;;
# S8 ]4 B" x6 }# M - ;; List selections end up here. Update the list box, edit box, and color
) F; d. i( q1 ?. m- Q+ O7 B - ;; tile.2 q( ~, ]% W/ p' T* L
- ;;1 B8 u S' M' B$ n# C l% |
- (defun ltlist_act (index / dashdata)
; B$ ], G2 e: c9 | | - (set_tile "error" "")
/ f6 P0 h5 @! ~- X - (setq lt-idx (atoi index))" B1 H$ y; A" s3 V, `4 Y
- (setq ltname (nth lt-idx ltnmlst))7 i. R; e: E4 Z; g3 C) E: f9 t( o9 a' z
- (setq dashdata (nth lt-idx mdashlist))
" k$ w1 k; h8 S+ i( H - (col_tile "show_image" 0 dashdata)& g! P: L {8 d# p
- (set_tile "list_lt" (itoa lt-idx))
# @- V% c% b1 j2 L6 M7 g - (set_tile "edit_lt" ltname)
5 v: f2 E2 W6 E5 U. b+ [ x6 a+ q - )
3 m( G# h& T% G! Q- a* \( F - ;;
/ r G% P1 i' I$ A$ s4 m% b6 k) G- w Q - ;; Reset to original linetype when cancel it selected- U, F* L" p4 C+ j
- ;;* N( O( |6 J% `9 Y/ Q' I% f
- (defun reset_lt ()( W0 _' v/ E- @0 G
- (setq lt-idx old-idx)
3 D! u; Y( O& l; C8 M - (done_dialog 0)5 u4 ?; s v9 N$ T, D
- )
4 y% `& S+ c* V - ;;
$ g& [) h' @* d - ;; This function pops a dialogue box consisting of a list box,image tile, and8 h- Q) z0 E) L% L. W
- ;; edit box to allow the user to select or type a layer name. It returns the. ?2 _2 X2 |0 z( q: l' Z
- ;; layer name selected. It also has a button to find the status (On, Off,
' z" q) _4 o, b$ R$ _- J - ;; Frozen, etc.) of any layer selected.
) Q0 ]1 v* |9 R. a6 k7 w" y8 m - ;;4 N- H* a! ~6 l! C# J7 }
- (defun getlayer (/ old-idx layname on off frozth linetype)
+ g$ {4 i& M3 v! f+ K( e' X - ;; Create layer list the first time the layer& a2 u. l# o+ T1 n7 ]0 ?
- ;; dialogue is called.+ y2 r- I8 F! X9 E
- (if (not lay-idx)
% g9 ~# N/ U. Y+ ] - (progn
_; N) b5 l) T/ }0 B1 }3 y( ^ - (make_lay_lists)
8 d# J. K' _! }& e/ q8 `3 F - (setq lay-idx (getindex elayer laynmlst))6 u% T+ @/ s+ a; Z- C: z
- ); [* V" Z! ?. \5 A ~( A+ ?
- )- j, D) b) L- `) m- b: _& ?. L
+ b& X3 M! F3 m# k% {5 s- (if (= (get_tile "error") "")
$ H: o" Y8 u' q) ^1 b9 A# \ - (progn
( L* p) l5 z9 F4 i. {9 h - (if (not (new_dialog "setlayer" dcl_id)) (exit))5 Y( i% q) z4 p. y p+ v
- (set_tile "cur_layer" (getvar "clayer"))
$ D& F0 {, i* v! p( V) a- \ - (start_list "list_lay")" Y0 t2 N, L# M3 U3 d8 Q* o( n. @) a
- (mapcar 'add_list laynmlst) ; initialize list box
( N2 ~8 q @: b) P. R% N b - (end_list)
, q/ {# @: S- G) y - (setq old-idx lay-idx); Q1 f" ~# q8 h$ B/ z0 j& _
- (laylist_act (itoa lay-idx))
8 o' j0 L' B, u {. N* v - (action_tile "list_lay" "(laylist_act $value)")
3 n, x7 C' ?7 U) }+ i9 D6 J* u' E* ] - (action_tile "edit_lay" "(layedit_act $value)")7 D4 [) d/ K1 B4 u0 z4 h+ o- ~- g7 y# c
- (action_tile "accept" "(test_ok)")
' i$ ^- }' [: e) H' y! |3 t5 }6 e& O9 a - (action_tile "cancel" "(reset_lay)")
, @' h+ e# G1 \% [2 }$ @ - (if (= (start_dialog) 1) ; User pressed OK
& y0 Q$ Y1 c! w1 K - (progn! B1 O. N8 g7 O* `! G8 ?0 `
- (set_tile "t_layer" layname)
, p- I. Y6 \; k - (setq elayer layname)
2 T) T. Q/ D3 d6 G, H% L - ;; If layer equals bylayer reset color tile# a1 M' N0 J+ w" [& B
- (if (= ecolor 256)2 J1 a f1 T0 ?
- (col_tile "show_image" (bylayer_col) nil)! S0 v7 g# P0 y0 T
- )9 w+ p9 C# O8 m
- layname
s6 V" h+ ~0 [ p" w - )
8 R! v) l M; W" b+ q1 o - elayer( K5 H; Q( F) A* E
- )
5 x( W! B; k1 B! d& Y8 [% E. B - )0 X$ y% B5 A. x
- elayer" p3 h/ l. `- l7 ]8 [
- )
5 `9 p) K# r7 X5 ?+ ^- m - )
3 L" {! e) }/ U5 l% `9 o - ;;" X/ R b/ @* G" H* `( X2 U
- ;; Edit box selections end up here. Convert layer entry to upper case. If$ O) R# Q: G5 x0 m" ]& _' g1 Q
- ;; layer name is valid, clear error string, call (laylist_act) function.
) O) s+ ~( D: h, a0 J4 v4 D8 g g2 I - ;; Else print error message.& u! `" V! A. l: L% e
- ;;& F: G* q! ]) M( @& K9 c
- (defun layedit_act (layvalue)
7 g! I& c! S) C- q9 C - (setq layvalue (xstrcase layvalue))
& g1 y0 C2 e0 o `. K - (if (setq lay-idx (getindex layvalue laynmlst))$ \3 A( W+ H3 y b* X% \7 i$ F
- (progn' Z% d. O/ {: h. \& E: e: _ h
- (set_tile "error" "")/ a; r1 J* F5 s z3 N+ `
- (laylist_act (itoa lay-idx))+ t8 }. q+ J% E) z5 j; G6 L1 v
- )
& [' e1 N) u+ x; X: ? - (progn# j0 F( g, E! O6 a
- (set_tile "error" "Invalid layer name.")( z- `: P* V6 E5 d
- ;; (mode_tile "edit_lay" 2)
4 h; ~3 k8 {) A - ;; (mode_tile "edit_lay" 3)
2 y3 `& l7 `4 \, T! R# e, U* ^2 V9 S - (setq lay-idx old-idx)
/ U8 x9 M5 D% Q6 u5 Y1 m$ @ - )
9 s$ X# [* G5 q1 @% I" f, ` - ); @. g" ?8 P% F! b: s- H+ q
- ), ?% o) m+ \* t9 j7 k' a7 s- X) C$ y
- ;; B% C( i8 F3 i$ ?4 R
- ;; List entry selections end up here.' y7 J2 u5 l! }/ }
- ;;
, m$ I& e1 I Z" ?. Y, y* E, q! L - (defun laylist_act (index / layinfo color dashdata)
, V- t' q& R% K - ;; Update the list box, edit box, and color tile.! C, l" B+ o2 ?7 R/ {9 O
- (set_tile "error" "")$ U: `/ o- x: y- l
- (setq lay-idx (atoi index))
& `7 ~# G( ]* e8 T - (setq layname (nth lay-idx laynmlst))+ X! N X% p; \9 I
- (setq layinfo (tblsearch "layer" layname))) O* Z- o7 k1 _& z* m# A
- (setq color (cdr (assoc 62 layinfo)))
* V- ~& |$ Z" }% U - (setq color (abs color))
+ L6 _$ u8 @# r, y - (setq colname (colorname color))
! o9 e6 c: p& W5 Q" y2 x - (set_tile "list_lay" (itoa lay-idx)): K- y: t# U' y+ @3 w
- (set_tile "edit_lay" layname)
4 x3 e* x3 t7 p; ~* S - )6 ~; z& u7 w: f, |
- ;;
' j' z* O! u) s, x - ;; Reset to original layer when cancel is selected.5 D- f6 f' @2 b: d. @
- ;;
3 }3 ]4 B' C# ^( S0 P3 C5 \! ~ - (defun reset_lay ()( B) u, ] X. i4 I& b- j
- (setq lay-idx old-idx)2 N/ P+ O7 S0 a
- (done_dialog 0)* F3 i( I# A2 v: c4 O
- )
! e' @$ }; l" M4 c - ;;
3 [" N$ A: i1 f, U# T* U( u - ;; Checks validity of thickness from edit box.
" ?4 G) z9 \' y: U4 ? - (defun getthickness (value)
8 Y& u( `% x0 u. L/ ? - (setq ethickness (verify_d "eb_thickness" value ethickness))
$ h# T0 b4 }, P2 C% r& v - )
7 t4 D" ~* `5 E3 Q( I - ;;
9 I. C7 Y# T. p6 i0 H - ;; Copy of (getthickness) for ltscale. If more, make this function+ ?6 e' ?6 l/ L6 c' O7 S
- ;; generic.# m% K/ [' j' c) [
- (defun getltscale (value)1 e, z% m: G( `& T( C' d( R, I. H2 G
- (setq eltscale (verify_d "eb_ltscale" value eltscale))7 J( m; a% \) S) U) D: @: H- ^7 {
- )
3 P' k L( \! _' }- _5 q - ;;3 `2 r( U7 N5 ?& m- R
- ;; This function makes a list called laynmlst which consists of all the layer
% [, {2 y& o& s0 I! p - ;; names in the drawing. It also creates a list called longlist which+ V2 }& L; g. ^
- ;; consists of strings which contain the layer name, color, linetype, etc.
, M' V: U. l( Y) G7 Z: V1 b - ;; Longlist is later mapped into the layer listbox. Both are ordered the4 x. `6 p2 G+ b- O G! P; b
- ;; same.2 ?4 h2 L3 y3 k9 f# e
- ;;, V) M, `" |7 {9 @2 @. m
- (defun make_lay_lists (/ layname sortlist name templist layer_number)* ]1 ~' s: ?) v' }9 \4 S
- (setq sortlist nil)
& E! A& f4 j3 _, { - (setq templist (tblnext "LAYER" T))
# b& L2 }9 S4 d: F3 i; J - (setq layer_number 1)
/ {4 C8 p Y. I2 d# Q; M - (while templist" r/ }3 @* I5 i, Y3 C b$ V* n: @2 ]
- ;; No xref dependent layers, please.
2 Y7 b, z9 F4 M! p - (if (/= (logand 16 (cdr (assoc 70 templist))) 16)# o1 K+ M2 [2 Z6 Q
- (progn N, e7 Q! w6 R/ I3 y
- (setq name (cdr (assoc 2 templist)))
! _$ c% C& u9 U) E8 ~: S) O ~: i - (setq sortlist (cons name sortlist))
, w5 u; u6 h. H% G( N* W - )
) b) i a. T% f - )/ [3 m' y" Q ]" g
- ; Get the next layer. S: e, n, Z1 E# i8 u
- (setq templist (tblnext "LAYER"))2 a! [ \2 Z D3 C, m
- ;; Not dead message...
3 n) o+ H( u$ r( x4 n: x: B - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
4 K, ^3 L) G& }3 a$ o0 I - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
) E5 V0 J. d" A - )
: b3 D. T/ v. f# w* X* O - (setq layer_number (1+ layer_number))
c8 T3 `7 b% F t - )
) w. Y2 z( M5 ~2 L; |' C - (set_tile "error" "")
7 U/ s( R8 q& {5 Y" |- [ - (if (>= (getvar "maxsort") (length sortlist)) }( O; o) u) q! w5 C5 s2 B
- (progn
. ~9 o' y' U* i( u - (if (> layer_number 50)
' Q9 d% I* X$ \2 S+ L8 V# y - (set_tile "error" "Sorting...")
, d) ~* m5 L" a( O; b, ^+ `5 _ - )
( ]: |5 Y1 d) U' H+ w- K5 G - (setq sortlist (acad_strlsort sortlist)) |. v/ q( |- n1 x }
- )- \4 p, e3 a0 o4 H8 \) m
- (setq sortlist (reverse sortlist))* A; [" G2 f1 W9 d9 C
- )6 F5 I+ y+ J% L) T: U
- (set_tile "error" ""), Z5 i( w' P% x% x6 K' C
- (setq laynmlst sortlist)8 a! ]1 B. E' b( p8 @
- )5 _$ a9 q' v; N
- ;;
9 g! G- h6 _/ Z+ _* D8 i - ;; This function makes 2 list - ltnmlst & mdashlist.
7 y, n* }7 c3 r* P' y - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
, t6 I& S" }9 d+ Y7 [: z - ;; is list consisting of lists which define the linetype pattern - numbers- r2 y# e* H4 }( X
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list5 b5 v- e! c5 G( M3 |4 C
- ;; corresponds to the order of names in ltnmlst.
! r; s: i( l& e5 ?8 @) m: \ - ;;
, s$ `# F: B7 K - (defun make_lt_lists (/ ltlist ltname)5 q% `: q7 ?+ Q0 p# {2 Q* E0 J
- (setq mdashlist nil)
$ s! y0 r* {% m3 y3 V/ u - (setq sortlist nil)( @# c8 R' Z9 U# ]/ V
- (setq ltype_number 1)4 w$ }9 A6 Q f
- (setq ltlist (tblnext "LTYPE" T))" {- U; e9 |3 V( s$ e: U
- ;;(setq ltname (cdr (assoc 2 ltlist)))
7 O; o+ I- S9 w5 u8 C6 X* V8 @' y - ;;(setq ltnmlst (list ltname))
; b) y& Q) ]) a& B - (while ltlist
4 ^7 ]7 ?: H0 v. l* j - ;; No xref dependent linetypes, please.) h U( ~/ p6 d* d2 o, O9 A" t
- (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)1 d/ r& F5 Z& h! w
- (progn
0 ^/ f( W1 L& O& ]6 Z - (setq ltname (cdr (assoc 2 ltlist)))( ]( u' n/ `$ t4 A: J- b6 ?
- (setq sortlist (cons ltname sortlist))
3 g7 B. e! _7 n5 V. z+ p - )0 t! V; K( X6 {2 U0 g! L
- )
, Z# L3 _& I' i# J - ;; Get the next linetype.
% g: w, Y) o d2 X% V - (setq ltlist (tblnext "LTYPE"))
4 i! @7 J- A) C/ e2 t. W$ A8 w
& x8 i& s3 H5 k$ S- ;; Not dead message...
8 E6 F7 P& t8 P" \2 y. |5 ?# f- D - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))- D0 w' y' {2 i, k; w1 _5 Z
- (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
6 {! P0 U& X( r- w: e3 G' o. w - )
1 d7 H" i `0 J - (setq ltype_number (1+ ltype_number))6 D0 x5 ?% K2 s& A, p _7 |
r9 d8 B7 t& H8 m. I6 I0 h- )
# Q. r4 u* F) Q) a0 R; O - / h- x; H2 ? l7 t8 |2 L6 |
- ;; Remove Collecting message.
0 w0 W& F$ t: [+ u$ Y - (set_tile "error" "")
9 |. A; X8 j9 G7 Q - " G0 b0 b# [" z$ q
- ;; Sort based on maxsort.: ~* A* z3 G* G1 q# e6 D
- (if (>= (getvar "maxsort") (length sortlist))
) J. i ?* A+ [* a' [ - (progn0 [4 ^ ?7 O; h2 _" J, a
- (if (> ltype_number 50) [# I* Z7 b! e8 U$ m
- (set_tile "error" "Sorting...")7 N0 b0 h) y9 K
- )
5 P" f( a8 N, |1 q - (setq sortlist (acad_strlsort sortlist))
& D+ k' _$ n5 V' ?% R s - )
* L1 i* U2 l7 }9 y - (setq sortlist (reverse sortlist))
2 n0 G6 @, f9 |6 A6 l) y - ) Z6 J$ ]+ V& A
- (set_tile "error" "")! W0 U' j' J5 [ ^( p2 n* N
- (setq ltnmlst sortlist)7 O# B6 ?; S' ?7 {' ?
/ ]: m& m! B' N4 f# F% { R- (foreach ltname ltnmlst
+ D* b7 d, k$ v z$ d2 { - (setq ltlist (tblsearch "LTYPE" ltname))- ~0 b+ g' J+ S% a! ?% s6 Y
- (if (= ltname "CONTINUOUS")
9 v; ~' U3 f$ Y% n g+ A& ` - (setq mdashlist (append mdashlist (list "CONT")))+ \7 d2 Q8 o9 C4 `0 W
- (setq mdashlist k: F1 o5 G) e3 ?3 Y* j- o6 p
- (append mdashlist (list (add_mdash ltlist)))
& g; S; m9 N) j4 F6 p6 A* e) ]: | - )
" s2 _. R% T! I0 k2 o, A - )
+ y; s5 `- q% p8 F( t& ]0 e - )
; }' A9 I$ k, r2 X& v! q - (setq ltnmlst (cons "BYBLOCK" ltnmlst))0 d- G/ _ [6 ~
- (setq mdashlist (cons nil mdashlist)): n, t' z- N3 D1 I
- (setq ltnmlst (cons "BYLAYER" ltnmlst)), h! b9 @+ m; H3 q% ? P& `
- (setq mdashlist (cons nil mdashlist))+ z) e5 `# n+ I: Y* x( M
- )
3 ?, |* L' {3 d: J - ;;) T1 I7 h4 d {1 j! e6 i
- ;; Get all the group code 49 values for a linetype and put them in a list, ^7 q9 _1 q$ l; Z6 w
- ;; (pen-up, pen-down info).
- G( J! f) W& A) L5 F, S3 L - ;;9 z- t2 c* N4 ?
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
2 R5 ?$ c1 l6 w* |& { - (setq dashlist nil)# B3 d9 A8 d( s2 q' z+ Q. v
- (while (setq assoclist (car ltlist1))
1 o Q0 \, F; L - (if (= (car assoclist) 49)
4 n+ q+ g' e. @/ W" j - (progn; b9 C0 b9 }3 \( F- r' h+ ^
- (setq dashsize (cdr assoclist))( J# J0 r: z& n/ `4 ^
- (setq dashlist (cons dashsize dashlist))" X' l% G8 g6 |, Q1 F/ T
- )4 @! Y+ F& e2 A; S O* g& q9 k2 H
- )# C$ Q* U! D/ c1 I6 ?! h6 `2 f
- (setq ltlist1 (cdr ltlist1)): ` X r* h+ Y- ]
- )
L3 d2 E5 L, S6 H3 U - (setq dashlist (reverse dashlist))& Y- S ]5 Z3 ?
- )
4 O% s- ?) h& @7 P- n - ;;
* M% ]8 j5 w5 [ - ;; Color a tile, draw linetype, and draw a border around it
7 i6 k' A% A8 }% R$ q+ F' C6 g - ;;
5 ?- a& j* }/ M+ L' M$ [, X - (defun col_tile (tile color patlist / x y)$ k" g/ e9 ?, H
- (setq x (dimx_tile tile)): n, p8 u, ~! \% l8 b
- (setq y (dimy_tile tile))
: i) E, h8 U; H6 N: ^ - (start_image tile)/ W, Z# i U) p# ^
- (fill_image 0 0 x y color)) D! O1 o5 F1 b( o: |
- (if (= color 7)2 X& j: L: z/ ]; s
- (progn
# R i$ R" G* w' b1 A, z - (if patlist (drawpattern x (/ y 2) patlist 0))
) @6 ?$ {# \- N8 E* _: Y6 } - (tile_rect 0 0 x y 0)
; {/ ?) j( I5 C3 l9 W. d - )
* o+ {1 {& d+ D" g( S9 r8 V - (progn6 w9 Q5 m: `. Q# O
- (if patlist (drawpattern x (/ y 2) patlist 7))( B. Z' H5 P0 l" `& q
- (tile_rect 0 0 x y 7)# U) @4 n# Q, V7 x$ p- K t* {+ P0 b5 T
- )0 M+ I; V- D H6 F
- )
+ Q& j+ w6 ~/ S - (end_image)
9 v& A2 S, o6 T- m6 q- o# t- }; p2 q - ); N. c- g9 G. F9 T% |
- ;;
( p. L0 `* y9 Q3 e* M - ;; Draw a border around a tile& T$ r, b i x$ G, [' f8 |" y- k
- ;;# F9 }$ P. b: O
- (defun tile_rect (x1 y1 x2 y2 color)) t, Q- `6 I% ?" Q
- (setq x2 (- x2 1))5 K7 s* K6 I, P$ Y/ A6 j+ F
- (setq y2 (- y2 1))6 Q2 P/ Y4 l( t4 w' X
- (vector_image x1 y1 x2 y1 color); M! z" k [7 r/ l' g9 Y; \) J$ \
- (vector_image x2 y1 x2 y2 color); [- |0 w1 a! u
- (vector_image x2 y2 x1 y2 color)$ W, k: M% {! T0 c
- (vector_image x1 y2 x1 y1 color)' ]0 }8 }" O* Q' L3 U: U
- )
9 k, d: C: m; Q4 v L - ;;
( g4 W( @; M" u& S l - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
0 T3 W( J. X, F: n }; w3 d5 H! f3 U - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
% {+ U# m$ E5 w! m. [3 f, P - ;; list of numbers that define the linetype, and color is the color of the
+ M/ n: f5 I, d7 N9 h" W: U- @( C9 h+ x9 j - ;; tile.
! x% e3 D4 [! d* N5 U - ;;
8 P$ v1 R8 s0 | - (defun drawpattern (boxlength y2 pattern color / x1 x2& w! D$ q) ~. A, v
- patlist dash)6 t' x1 f3 ^# l
- (setq x1 0 x2 0)
; i( y* @. `) |. j, W8 @- a - (setq patlist pattern)9 z( @% u U2 D0 ^! f3 O2 f$ K( k
- (setq fx 30)
B: b B% Z) P) d( x. w& ~ - (if (= patlist "CONT")
7 ^7 _; c* n9 C: [ - (progn (setq dash boxlength)- ?, Y; m- z9 Q& [- v
- (vi)
1 Y# [2 d( f+ ?% L8 H - (setq x1 boxlength)! v* l+ f, _; a$ g) `; c. c' Q+ \4 w
- )$ Z/ q6 Y+ N( L9 V/ K2 W' e& \
- (foreach dash patlist
4 v& J" S: Y1 ~2 r( L! [! z - (if (> (abs dash) 2.5)# v" h: j5 C9 [4 \! X( Q
- (setq fx 2)5 e9 D8 @; n( j* {# o8 `
- )
) l' E2 Y' S0 H7 A) v0 b9 l3 {5 O0 X - ): L8 c! s1 q1 V/ f3 c, j
- )
7 w, \+ x0 U2 G5 g1 B - (while (< x1 boxlength)
* Y6 p7 q; ]# n/ e+ k8 z - (if (setq dash (car patlist))
% V" t4 s" U3 M5 D0 d4 t6 p - (progn
; W8 l7 X0 A1 x) g( |7 R! Y( G - (setq dash (fix (* fx dash))), k1 g9 |) ]. x& t
- (cond
' Z$ \& R1 M n2 |6 P6 v - ((= dash 0) (setq dash 1) (vi)). U" [$ b) _9 E2 k7 W
- ((> dash 0) (vi))! P( t* J% j- z: U E
- (T
/ h( D% d. s3 {8 i - (if (< (abs dash) 2)
# I6 M9 Z( ^0 V - (setq dash 2)
# P& Z- B6 K; e; M( L, t6 r6 D& F - )7 z$ X' R2 d% K1 p/ I: h
- (setq x2 (+ x2 (abs dash)))
! M1 Z$ e* k% d5 r" Y% Z5 R: b% V - )8 b4 x {! \6 p5 T5 S4 d* R
- )
* Q* K0 \2 Q8 M5 b - (setq patlist (cdr patlist))5 E2 Y1 n, {2 P' y1 S' n$ i
- (setq x1 x2)& m$ m$ |( K4 F' P, u
- )
; \9 ]* M9 l4 P( ~% @4 X - (setq patlist pattern)& A! R/ l$ @0 M2 m6 v3 w0 @0 c
- ); L% r3 u9 W8 \6 \% r2 Z& ^
- )
! {* _+ c6 {, t, f" w' c - )
+ c9 K7 q7 X( S6 J6 y( D# B - ;;( W* @7 S' u' |2 t+ @7 ]' {
- ;; Determain state of xclip4 f, ~. B( v3 S7 v5 m- K3 V$ t
- ;; Returns the group 71 value of the spacial filter dictionary.
5 F# K0 x& u8 T" @5 [# `1 ~ - ;; If the entity doesn't have a spacial filter dictionary, this" b2 b6 q1 T) [: x' G
- ;; returns 0. If it does it will return 0 or 1 depending on the+ L- R% V; L# \% E
- ;; current setting of the state of the clipping visibility.
: r. i$ g3 H% t# `6 d: \: f/ Y - ;;+ j/ ?/ a7 p a' P8 j+ _- O9 w
- (defun xclipon(elist)4 a8 d9 i$ G- ]' Q/ D0 d
- (setq hasclip T)
8 U* o" y4 j/ i$ \+ j. u - (if (/= (assoc 360 elist) nil)
7 }( g7 a+ X) K% X' l3 x: Y' o& H - (progn' l. ~0 J, j& \
- (setq tmp (entget(cdr(assoc 360 elist))))
( D2 |! @$ R0 }: t# B. ^3 I% Q - (if (/= nil (assoc 360 tmp)): z. C/ h$ ^* i0 I3 e. d. G; A3 ~5 P
- (progn
, I# c' q+ _3 ?. d" o) |+ d( O) G) R - (setq tmp (entget(cdr(assoc 360 tmp))))
: `9 h3 \, X! H" } - (if (/= nil (assoc 360 tmp))1 }& N! |8 x0 V
- (progn
! D. o% I9 }4 q7 m5 ` - (setq tmp (entget(cdr(assoc 360 tmp))))
* L' Q( l' c) z. T1 }0 b4 P3 ^+ m - (if (/= nil (assoc 71 tmp))% s( U6 \4 V: z* i ?7 e
- (cdr(assoc 71 tmp))+ Y4 E+ D, O3 `; W+ t
- (progn
% B0 v8 B* B; G6 K; d/ L - (setq hasclip nil): A, K4 j+ `; c# w ^
- (eval 0)
! [! W( w* ]6 t8 }; p8 N - )' L! s* l0 O$ b) X; s8 z
- )
; c9 E7 I+ G9 N - )
' u" c% G J1 N% W. w/ Z* X) X- Y+ G - (progn
: F+ u) J, z- u3 A* ~$ B1 e - (setq hasclip nil) [* W( q2 z |, u% X8 s7 U
- (eval 0)
/ I5 B$ {# G Q! Y9 J' J% g - )
2 A( A0 h7 ?. P0 U. ? - )
+ P! b) \& j6 @8 x - )
1 ~) H0 b: U. g/ { - (progn + Q+ O' _* h/ |) d, m7 I
- (setq hasclip nil)0 K) a6 B0 ?6 G3 @- {7 @8 \
- (eval 0)
# m" B3 _# N, D5 i5 u - )
5 s8 X& y( U9 q& b" b- r: X - )
- M5 y3 s9 u6 p* p% { - )
/ I1 e& e ^) Z - (progn
9 a: q1 z! M$ Z' g - (setq hasclip nil)
5 U* v @9 c/ f' m/ Y+ ?5 t - (eval 0)
- e/ O# E0 J- B) f7 ^5 ? - ) p0 E3 ]1 B5 f
- )
$ R4 G ]$ }9 v( S. i8 u9 Q - )- p5 v, a9 L5 W6 ^! M' A
- ;;
9 Q! }# D& H, g0 G) y' Y3 c% h - ;; Draw a dash or dot in image tile$ v( r) Q/ R& k) y7 T" O
- ;;3 D8 b2 R# O1 G( x
- (defun vi ()
# K& ~) j/ t9 k7 _. ^, \ - (setq x2 (+ x2 dash))6 {4 k- U' T$ \/ J6 Q
- (vector_image x1 y2 x2 y2 color)
1 Z5 g! y# V; F- d$ r - ); { ? n* Y% L& X1 \ f2 E. \
- ;;
3 a4 {8 }) m3 v& w; F - ;; If an item is a member of the list, then return its index number, else6 q' G& v1 N) I9 |) s
- ;; return nil.- s, R5 U- @* x( t0 P, r
- ;;
9 D0 A0 Z2 L( V; n; ` - (defun getindex (item itemlist / m n)
+ r% d" y5 M/ v7 T; N6 ^! f - (setq n (length itemlist))
% k2 _5 _$ {1 r. h( t; | - (if (> (setq m (length (member item itemlist))) 0)
( y3 \& f* `3 v4 B$ [# X7 c - (- n m)
. h9 |+ p8 i* p, T, U y: u& k - nil
% Q( v% b- v8 X7 I - ): ]1 V3 j. M" {
- )$ ?% O/ B/ d, r. V' E/ i) X, v
- ;;
" d" G) b3 ~& @6 s) }3 } - ;; This function is called if the linetype is set "BYLAYER". It finds the6 }* Z: @$ w5 s8 q1 s; p
- ;; ltype of the layer so it can be displayed beside the linetype button.
* V$ F7 g0 S2 I- m7 W2 i - ;;
; l* H# D0 k1 D ]0 E - (defun bylayer_lt (/ layname layinfo ltype)$ o" Z6 ` `6 O) n! K# v$ W
- (if lay-idx/ A9 b$ Z h0 T7 X3 {, @8 Q# l
- (progn3 }/ R" b' ?. A6 z9 _ n6 `
- (setq layname (nth lay-idx laynmlst))1 K# X4 e: J% W) m9 |
- (setq layinfo (tblsearch "layer" layname)), W% J" ]4 y% i1 V
- (setq ltype (cdr (assoc 6 layinfo)))( W4 K& x, w$ ~: _! W
- "BYLAYER"
) ?1 v8 F) G7 h. w - )
, P# \0 z. I- q$ `3 X+ ~1 b - "BYLAYER"6 }0 _: t( e0 f+ z' E8 Z. J: i; N
- )
- Q! N; T* e( z, |/ q - )% f+ D) }3 }9 A% k3 U
- ;;$ F8 k E3 m' ^+ F4 [, ^; e
- ;; This function is called if the color is set "BYLAYER". It finds the color
9 p) d i1 F8 K$ S - ;; of the layer so it can be displayed beside the color button.
& `0 U* y9 Z' q* ^0 E! b - ;;, H1 Z! x% G& N( r9 U
- (defun bylayer_col (/ layname layinfo color)9 r0 L d+ |: a; ~. E
- (setq layinfo (tblsearch "layer" elayer))
7 @9 \( s( W- N# n. r, t+ h - (setq color (abs (cdr (assoc 62 layinfo))))
7 V i! A0 z. N$ P: { - )3 s" n9 ?+ g+ F# A6 ]5 C
- ;;
4 |" t& Y) D; H - ;; Used to set the color name in layer subdialogue.
/ A' K8 H/ b2 p - ;;
Y! P0 c8 @4 D5 }( B( \- { - (defun colorname (colnum / cn)
7 ~8 ~1 Y1 [: U% I _ - (setq cn (abs colnum))
$ Z& @6 x7 v- G - (cond ((= cn 1) "red")6 _& n# ~- a2 g8 b
- ((= cn 2) "yellow")3 X0 ]; n- d+ l" l
- ((= cn 3) "green")
. y' F( b, K, u# q" S - ((= cn 4) "cyan")& ]% k" A! n0 e5 b$ \7 r
- ((= cn 5) "blue")
* A- n* S. f+ H6 m0 z# b1 ^9 [* w6 I - ((= cn 6) "magenta"); j; H/ [( V: [2 u2 B2 f- }& _
- ((= cn 7) "white")
1 [ y9 K7 ]/ b" c; z# j1 a - (T (itoa cn))# s, { K7 S$ `) n
- )/ Z% X! |5 R8 c9 f7 D
- )4 P" i4 Z4 F1 a$ l
- ;;
_5 n( d- b7 }. C/ h - ;; If their is no error message, then close the dialogue.
1 t/ i( N% o* X0 b' g5 j - ;;: c' |3 x, v" ~: U5 N4 W8 W
- (defun dismiss_dialog (action)
/ K& G" ]1 |2 Q, {# p4 n& h - (if (= action 0)
1 S) h4 D* t+ b6 ~( R* T, v - (done_dialog 0) C0 C: j8 _; R- N5 k$ r
- (if (= (get_tile "error") "")
0 ?$ X, B2 H4 m* N! f - (done_dialog action)
7 D( C6 e8 M# K2 h - )
. [8 V* u/ D0 y) K) a9 S - )# k" O8 b; ^, f5 ~
- )
+ V C+ g% _0 K; g% g" L) E4 ?
7 q) ?" T0 o Y) v( J t: n8 H- (defun test_ok ()
2 W7 r% I( q- p4 W - (if (= (get_tile "error") "")
! e. U. A- f2 }. c. E/ o0 ] - (done_dialog 1)" I& S; t0 W6 h4 K4 y% e
- )0 b9 L8 _& b1 i t9 O
- ); V# e% j9 S8 c
9 g d5 I: W- m: w5 ^- (defun cancel ()
( C% g+ o; u+ w - (done_dialog 0)
% [4 @- h4 W+ D* y' k2 k% Q( A" C - )' g- m& R: G) [, S
. s6 o. S% ~8 o9 `- ;;; =======================================================================- b1 \! m8 _* _* t, Q M
- ;;; SETUP layer and linetype lists for application, and initialize all
) ?, ^' u; q" t( I. ]7 ` - ;;; program variables.
3 x7 q3 A6 j/ ~, ]
0 `% n4 D I( ?* Y5 p& W- (setq elist (entget ename)
3 G/ D& i; X- E7 y( _ - old-elist elist. a0 O& d+ G0 q4 f0 i3 M. T
- modlist elist
6 m, ?3 K) x+ ~8 i/ J - etype (strcase (cdr (assoc 0 elist)))# q0 j. E7 H; Z% ]8 y
- ecolor (cdr (assoc 62 elist))
( u2 j( }2 Z2 E/ J! U - elayer (cdr (assoc 8 elist))
+ D- U$ n/ m' r' b3 x - eltscale (cdr (assoc 48 elist)). q. R" [$ ^6 M/ T" v8 i# m( d
- ethickness (cdr (assoc 39 elist))& O2 Q+ M9 w3 f+ v9 L7 Y6 o/ `* b3 H
- eltype (cdr (assoc 6 elist))' d/ c( m8 t% c4 R5 k
- )
V( T/ [* O2 P# j8 V q, y' s - (if (= (assoc 210 elist) nil)
% z8 I4 I2 ]- U; H) w H! i! z) e" A - (setq extru (list 0.0 0.0 1.0))% L9 h+ r. |1 d, K
- (setq extru (cdr (assoc 210 elist)))& B6 O7 G( c- w" Y! L$ Z2 x
- ). s; I. U `# S/ [
- ' c5 X; z, t; p R+ O1 W
- (if (not ecolor) (setq ecolor 256))% K+ f0 y5 \& f, H
- (if (not eltype) (setq eltype "BYLAYER"))
" A& C5 f0 z. }1 k, J) V - (if (not ethickness) (setq ethickness 0))
/ G% i" E% D6 i/ r) B0 w- q - (if (not eltscale) (setq eltscale 1))# E/ h+ u- p' s: Z
- ) ; end ddmodify_init
6 {) [% C6 c0 {' _( h4 x ~0 ? - 6 O+ ~9 V# { M# \! \
- ;;; --------------------------------------------------------------------------4 S' {# ^1 `" {2 n+ O0 S4 J, Y# r( w& X) z
- ;;; Function: DDMODIFY_SELECT3 ]' k r, T! J& B2 O( x6 ^
- ;;;
. e) E& Y0 ]3 o - ;;; Object aquisition function.# J7 b3 G8 C. i' m( ]; Z; g. j
- ;;;7 \4 }# h+ a! z! A
- ;;; (ddmodify_select)
+ X# s$ E* x+ l* a - ;;;: ^) C9 r7 ^) ] }. O0 U
- ;;; Obtains object to be modified, in one of three ways:$ L1 c5 `' ]) t3 w: P6 t& Q/ O
- ;;;0 b; s' ]' D! h( L4 A( O; g6 B
- ;;; 1 - Autoselected./ l! c( }5 j. K
- ;;; 2 - Prompted for.
# W# _' I' B) c- m# t. e' m4 T - ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
- ^4 @. X2 M9 _# Q" O - ;;;* o+ \6 R7 T& F5 a& ?
- ;;; The (ddmodify_select) function also sets the value of the
7 M: W4 W6 {& ~" D - ;;; global symbol AI_SELTYPE to one of the above three values to
9 H& _6 f/ \2 r8 I+ [2 T _: ] - ;;; indicate the method thru which the object was aquired.9 D5 e* i9 |: {, m
- ;;;3 A* B5 n5 F m# H. Y9 |& Z' X
- ;;; This value can be useful to applications that want to RESTORE
( Y$ t4 \/ A# v9 i1 a* W - ;;; an object that was autoselected to its previous selected state
' }* R9 r: X, {! x, k6 g - ;;; when they terminate, although there doesn't appear to be any
* w) g: t0 {- [7 z - ;;; way to do this right now.
* z, i1 G1 ]+ T" J
4 K5 O; J- E! W7 p O- (defun ddmodify_select ()/ E8 j0 d6 [0 q
- (cond1 D% J- X9 z. z& @
- ( ename ; (ddmodify) was called
9 K4 H4 W/ {# r3 C - (cond ; with an <ename> argument% [. |+ x2 I1 e" L" C
- ( (entget ename) ; If object is non-deleted7 U& v1 [! M Z9 `0 E! C+ W6 m
- (setq ai_seltype 3) ; then return its ename.
$ ?# x* l7 {1 Z1 \ - (ai_return ename))))3 f# f/ x9 A$ q: T: O j5 x
- 2 v6 B, F8 q3 m% f
- ;; return auto-selected , see ai_utils.lsp6 @4 W( M0 E( K
- ( (ai_autossget1 "\nSelect one object to modify: "))
$ w5 [$ _2 Y& W q# u3 b2 E. p
" P! C3 Y( D/ i" w1 F: P- (t (princ "\nNothing selected.")
1 d6 X% R2 N$ U" { k% j - (ai_return nil))
3 [% s( Y; Q: X3 ^+ w2 l, A8 J - )5 K6 q- X; e9 M
- )
5 V# }* }8 j6 Z* R- I$ T% q0 t - ) [9 n% P2 \$ w" ~
- ;;; ============= Command line interface function =======================
1 J8 W8 J4 u ?6 d( D( p5 {$ C" W/ u
9 a q+ W5 x5 T4 }! `8 f1 \3 Q- (defun C:MMO ()
' _9 s, ~& N: V% }3 Q- m - (ddmodify nil); y7 K) j, D8 D7 t _
- (princ)0 A# ]' j1 ~1 z4 }
- )( V- N/ O$ ^0 c/ G9 I
& |" W3 h1 N, K1 g" Q- ;;; ================== (ddmodify) - Main program ========================
) B, R+ k0 e& D; S - ;;;/ L1 Y* y- Y+ t" J" K5 P
- ;;; (ddmodify <ename> )
) H* n8 H6 c4 @' E8 } - ;;;8 X% L3 R% K5 k& G) M; [& y+ L( P
- ;;; Main program function, callable as a subroutine.
i2 V! C) O: U5 x6 Z9 B - ;;;3 ]/ V& M3 Z1 u. v! j" v
- ;;; <ename> = object name of the object to modify.
9 Z9 Y8 ?( j! `- B c+ P! ] - ;;;& f, V1 x, X. S) R
- ;;; If <ename> is nil, then user is prompted to select
+ w, `% K: v; D$ ~0 c - ;;; the object interactively.
* _! V* U7 ?! w0 p; \+ ` - ;;;
7 C$ X7 v- Q8 V' w+ U - ;;; Before (ddmodify) can be called as a subroutine, it must
$ A# m% p% Y, C6 b4 v - ;;; be loaded first. It is up to the calling application to0 M5 {4 ^ Y, Z3 K0 a {
- ;;; first determine this, and load it if necessary.3 @" T$ p: {4 E9 H6 v$ x* ^
' X/ i, H, x0 O' X$ K- p( Y- e# E- 2 C" t/ c k# l. Y' y9 e
- (defun ddmodify (ename /
% r0 @ G/ Q# Y+ `0 d/ h6 N9 c - 2ndpt ell_calc_area move_pt1 templist* o! z3 X' ^ ^5 x
- add_mdash ell_tile n tempmod h. _: u' }) L, v: P& C
- alipt eltscale name tempst_ang
& j+ m" Y H( Z- s" L. Z& f4 b - ang eltype newpoint test_ok! {7 @- K( _9 y2 z
- arc_calc emod next text1 r. K! m& y6 V" i. a" w
- arclen end_ang next_vertex th-value# g$ w1 L& H7 N, r
- assoclist endpt obl tile
3 @* x0 V. o) \3 t# [. M# H - atprompt errchk off tile_rect
c8 L# g) g4 { - attag ethickness old_majrad tilemode
4 q# _: }! {5 P; t0 f - attprompt etype old-closed totang( }) T% U5 e, b$ ^4 P8 V! n; w
- bit extru old-closedm tstyle, z" A4 K3 |7 @. _8 |7 P& j5 V" T
- bit1 fchk old-closedn u0 T# [( T, @4 M) V
- bit-10 first-10-rec old-elist undo_init
1 F3 x7 K- I3 X- r. y - bit-11 first-10-time olderr upsd
0 f. @7 ?+ u. d) `0 N2 ] - bit2 first-11-rec old-fit v
% C. w7 d( z, l0 ?; d3 G - bit3 first-11-time old-idx va0 P& |0 C/ }" g8 I
- bit4 fit oldlist value' h9 M2 l9 q0 u7 s. m; K! k. J0 r3 T
- bit70 frozth old-spltype ver_4
/ y2 M, V7 ~+ ]$ A/ ~- k - bit-70 f-vis old-u ver_ang19 @5 \. E" R( m8 s; Q
- bit75 fx old-v ver_ang2
( C- l! l7 T2 R! D0 B - bk-up get_color on ver_col' C9 b0 E4 w; k
- bkwd getcolor onoff ver_colsp
" o; s4 S# ?) P) D' d" N/ ] - boxlength getindex on-off ver_eangle
/ `3 `+ d6 C9 G- \. P - bylayer_col getlayer patlist ver_hght$ u* ]. Q# q4 s
- bylayer_lt getltype pattern ver_majrad
% l5 S. F' t! s3 f. r4 i - calc getthickness pltype ver_obl
- C: `4 A9 d7 m4 \; u- Z; N - cancel globals polytype ver_pt1
# M7 `; [7 _0 O - cir_calc ha pre ver_pt2
5 h0 Q2 W9 e0 k, A% ? - closed ha-prev proplist ver_pt3+ ?, X& d8 r% r4 \& V& O
- closedm help_entry pt ver_pt4( D3 ?8 B7 D) C. Z0 q3 K# `, M
- closedn hght pt1 ver_rad
- T, k3 }' ~3 T/ t. t, R& b - cmd icvp pt1_eq_pt2 ver_rot
) b# F2 ~/ Q& c! x) l- x& h - cn image_add_vector pt2 ver_row
% k! I9 M. h" A7 X& b - cname image_clean_variables pt3 ver_rowsp( Z5 B' v2 x# y$ q: u
- cntl-pt-indicator image_cross_product pt4 ver_tag
3 D: a9 F1 [ G5 v% Y - code_71 image_disp_opt ptype ver_u$ ]0 l! P' K# H8 {& i
- col_tile image_dot_product radius ver_v
! `4 _( Y! _2 t# R7 K - col-idx image_normalize_vector rational_spl_flag ver_wid. e5 {; D8 s! a3 H2 a7 |
- colname image_rotate_vector reset ver_x1, Y' p$ h6 S& o* e( A
- colnmlst image_scale reset_flag ver_x21 Z6 b% X1 r4 r0 `: m: [
- colnolst image_scale_vector reset_lay ver_x3 X2 L' z( M/ S- d# M3 P6 p
- colnum image_update reset_lt ver_x4
4 D6 @( {6 f# } - color index reset_uv ver_xline_pt1
% A: v/ e# S6 L6 v/ U) x+ a - colorname inv rot ver_xline_pt2
6 D2 ~% L. {0 z8 A6 L - colorno item rows ver_xline_x1+ C5 x) O7 @, I; [2 ?* [) j
- col-sp item1 row-sp ver_xline_x2
, \: x2 C# Y# t7 ` S8 X - columns item2 rrat ver_xline_y1, H9 o6 s' n4 o$ g9 F1 J
- con itemlist s ver_xline_y2' G' U3 V2 l; D8 W% {# N
- coord jlist set_action_tiles ver_xline_z15 ]: A C0 p6 a/ R! S) A5 a3 z
- ctr jlist_act set_just_idx ver_xline_z2
- e8 o: t8 K, H1 @) W - cur-10-rec just-idx set_tile_bk-up ver_xscl
4 S5 c7 U% R I4 U6 \ - cur-11-rec layedit_act set_tile_cntl_pt ver_y1* e3 z+ A& K( U& i. Q0 _
- cvpname lay-idx set_tile_data_pt ver_y20 Q+ D% a1 h# l: l& i
- dash layinfo set_tile_dirv ver_y3
2 Q1 c( N- T4 q* B - dashdata laylist set_tile_edges ver_y4
. H* |4 a* C) q3 y& X! b - dashlist laylist_act set_tile_endang ver_yscl
% f5 l# V9 A% u! l1 V" v+ g* F - dashsize layname set_tile_hght ver_z1
6 ?5 A U8 l' r6 ]4 x9 p# N - data-pt-indicator laynmlst set_tile_icvp ver_z2
. Q8 i8 S1 X' i) e/ ^ - dcl_id layvalue set_tile_just ver_z3' m6 X5 v" v! t2 u. ~, V
- dd3dface line_calc set_tile_obl ver_zscl4 J$ G N2 o( B8 Y9 a
- dd3dsolid linetype set_tile_prompt verify_a
. ~5 N/ V6 M( }: m - ddarc list1 set_tile_props verify_d; z- b" }- \( R( `$ T% U) A6 u
- ddblock longlist set_tile_pt1 verify_i+ G; N- \/ s& A5 V9 Z3 ^) U: f
- ddbody ltabstr set_tile_pt2 verify_xline
, g9 H8 h3 h+ w2 E - ddcircle ltedit_act set_tile_pt3 vfy2 K/ @0 \% G: x' A. M
- ddellipse ltidx set_tile_pt4 vi$ i1 d) r/ u7 n+ H$ [
- ddgetprompt lt-idx set_tile_rad vlist
' ]- _) }" w: o: a - ddgettext ltlist set_tile_rc vname: `1 r7 v: Z3 Y( ?' \: v3 n
- ddimage ltlist_act set_tile_rot vpf K6 D! ?5 S$ h4 B# ^- K: ~
- ddimen ltlist1 set_tile_scale vpid
+ J0 x1 I1 [4 a. M8 K- U3 `, N( V - ddleader ltname set_tile_spline_props vpldata
( l. t7 \5 [( K4 j) ~/ ]: q - ddline ltnmlst set_tile_stang vpn, i6 V% k8 X# H
- ddlist ltvalue set_tile_style vpt+ ]! S0 |9 l+ B f
- ddmline ltype set_tile_tag which_tiles
, j2 K! H" X" p: _7 m3 _ - ddmodify_err m set_tile_text wid* B7 k9 B |9 H) V" ~) b
- ddmtext majrad set_tile_vpt x
4 p" `' w; D! ? - ddpline make_lay_lists set_tile_wid x1" i* V" `) l! c
- ddpoint make_lt_lists set_tile_xline_pt1 x2 O; _5 O: H4 ^1 G G
- ddray mdashlist set_tile_xline_pt2 x3
* j2 v8 C9 J5 A q9 v, @ - ddregion minrad setcolor x4
; [- i8 D; K& C5 {+ L& L - ddshape modify_3dface shght xdlist T7 U$ E% m4 B1 z8 N
- ddsolid modify_3dsolid showpt xline_pt1' l; G7 k9 V1 Q6 v& }- I
- ddspline modify_arc size xline_pt2
7 d$ K' w2 n$ P; ]2 a' { I8 t - ddtext modify_block slist xline_x1' d8 @$ Z0 r9 H* B9 b, `4 z
- ddvport modify_body sname xline_x25 a! f. ]7 H. z' f- h
- ddxline modify_circle sortlist xline_y1) U$ G9 \% ^3 F n# D
- denom modify_ellipse spltype xline_y2
. M4 y) u7 U) `2 Y - dialog-state modify_image ss xline_z12 v5 G6 s) S V. o7 \
- dir_pt modify_line st_ang xline_z2
9 C& _+ S2 {7 c1 F - dir_ptx modify_mline stpt xscale
. b# y- P- w/ d$ l" b0 M - dir_pty modify_mtext style_act xx5 O9 i6 B1 E) x, |# e
- dir_ptz modify_point style-idx y2 W! P6 z$ |9 c+ T3 u# c
- dismiss_dialog modify_polyline style-list y1
( N3 b1 p# m: a& o2 O - drawpattern modify_prop_geom tagval y2* j0 j# w8 q; o4 W0 E
- echo modify_properties temp y3
7 R( T0 R0 Z0 B: G9 \- ?5 ~ - ecolor modify_ray temp_color y4
% [( ~# @6 L) M! ~. i - edge1 modify_region temp_dir_x yscale
5 m- O" ?. R$ L8 I6 e- O, v! E( i# p - edge2 modify_shape temp_dir_y yy9 o4 P0 U4 E' }, u7 |0 z
- edge3 modify_solid temp_dir_z z1
" j% C, P/ i4 o9 n v* U* v/ O% L - edge4 modify_spline temp_xline_pt1 z2) T" [/ M- J: k/ c r5 b1 [ z) B
- edgetest modify_text temp_xline_x1 z3
: @& W+ n' v* R& k - elayer modify_vport temp_xline_y1 z4
# n! o+ B- O" j- q* Q3 K' h - elist modify_xline temp_xline_z1 zscale- U$ M/ g( S# g% U- I: k: j8 ~
- ell_calc modlist tempend_eang zz2 \& Y% J8 k4 B2 R8 o3 C0 d" h* R
- dir-idx safe_ddedit ver_MtextWidth xcliponoff
7 L+ Q9 n% Y3 S- M+ j0 }( m K - MText_style
, r: y7 u+ K' k }+ S, i0 H- { - )7 K9 B O$ q ?/ g* N- d
% d- c9 h" K% |- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
3 f! N7 C* o M J* |2 P - old_error *error* ; save current error function
+ n$ d" \( m- Z9 L n, x0 ?+ Y - *error* ai_error ; new error function
2 r# A5 t6 B- B8 T - )9 s$ D$ l+ M+ ?. I
- ' [! |# ^3 R- P! a2 S# H# l2 G
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
$ J( ]2 s2 p2 P - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection" {. f3 P' N+ K m$ H! |; p. }4 O
- (setvar "pickstyle" new_pickstyle) ; bit and set to new value
2 H, O% ^; q& t, n1 U; }* w - ; ^* S! H8 k) a
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
- t1 Q# U; `! S' d - (t 1))) W- s* b& T* Z! p* ]
- (cond
) ^/ M7 M5 a+ K* y$ V- ~ - ( (not (ai_notrans))) ; Not transparent?# `- I4 n% U1 | f- i* m/ x
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?. i2 E- l6 y1 [2 N
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?+ a0 X% P5 ~) g; t" [( a
- ( (not (setq ename (ddmodify_select)))) ; object to modify?' {3 @9 O u+ Y6 A: T" r
% r$ s: o2 e! k; u- (t (ai_undo_push)9 m( r/ S+ {4 q# k: B$ H% H
- (ddmodify_init) ; everything okay, proceed.
9 n1 D1 G( Q- l V" G! U - (cond8 w0 t/ l4 ^# {+ q* } i5 x
- ((= etype "LEADER")+ w7 K& H: b; {6 \0 {
- (setq help_entry "modify_Leader_dialog")* N/ x* y# q$ x2 q
- (ddleader)
4 H, x: q8 x+ A( C* Q8 E& b9 o - )
' p5 I& S# `* m' W+ @7 P - ((= etype "ARC")
6 z6 P# ~: p# ? - (setq help_entry "modify_Arc_dialog")
4 A: u4 N; ]9 T' O$ u+ h$ H( F - (ddarc)
% {; }5 Q s3 m) W4 N j3 w - )
$ h# z# s- F$ t4 h) R, [( D; W - ((= etype "ATTDEF")
5 c# I6 S2 _' {2 X/ d, r: e - (setq help_entry "modify_Attribute_Definition_dialog")
5 n8 I5 ^. A* @$ w; m. ? - (ddtext)
( d o2 ]# d z4 h8 P - )
+ h# ]" R5 U$ X* [) s - ((= etype "CIRCLE")3 Y8 g- B2 H, s. k3 K. e
- (setq help_entry "modify_Circle_dialog")
: `9 v, q1 H5 @ c - (ddcircle)
4 }9 T1 z. a: ~% x7 A. T- l1 I - )
) @- ? Q8 }6 p$ E$ g0 M! I o. x - ((= etype "ELLIPSE")
- U+ _- U6 X( q6 y) C$ n' e - (setq help_entry "modify_Ellipse_dialog")
* p" n0 f4 M& Z; e! U - (ddellipse)
( N* _' q( @: ~2 l6 ~ - )+ f8 _1 _" k; u a
- ((= etype "3DSOLID")
) t8 U) \ w: [4 E* ?2 g - (setq help_entry "modify_3d_Solid_dialog")
0 J) L0 ?+ a! F, j: x2 R - (dd3dsolid)
! _) B# @! c- g9 U - )
/ ~8 O6 y( {& R4 u+ A" }5 i& J - ((= etype "BODY")
, a c# b2 D4 f - (setq help_entry "modify_Body_dialog")
+ n" b: g: _; R6 @$ f - (ddbody)- ]5 D8 _0 D1 p+ t
- )2 H; @- Q% S) v* q7 j
- ((= etype "REGION")- n0 J+ [: m) t$ q* V
- (setq help_entry "modify_Region_dialog")
0 Y) h0 ^* P8 Z& W - (ddregion). L, k e9 ?( b, Y) q( e$ X
- )
) q/ u* ?. h* v4 g: k - ((= etype "HATCH")
. J: s) {: m4 {6 X - (setq help_entry "modify_Hatch_dialog")
/ ?, V; n/ b( j: i - (ddnewhatch)
- D6 q# P$ ~' T- X0 }+ u" e - )
3 d5 A3 m$ }6 @: y, z1 K) p5 G - ((= etype "SPLINE")
2 j% ?( ~/ P+ o T( G8 _0 }5 c - (setq help_entry "modify_Spline_dialog")! p, f/ @( \; z! |& ]* U" _5 y& H
- (ddspline)
; }$ |6 {2 W9 g, Y6 k( l% e - )* K9 W- A4 s: E! C1 i/ m4 x" a5 ]
- ((= etype "INSERT") ; see ddblock for help_entry$ n) C* D J8 P+ J) x! p
- (ddblock)
! ?6 t8 F# F$ r3 b1 c) v - )7 c7 C# A6 s# ]( Z
- ((= etype "LINE")7 Z! Y3 |( d. ^$ e- J
- (setq help_entry "modify_Line_dialog")
6 M2 H& L" o5 ~2 Y - (ddline)
. x! I+ P( k; N$ } - )1 k* }( S! C! {" R. e+ r3 ?( G3 @
- ((= etype "MLINE")
9 o k9 }+ E; S/ n' ^* w - (setq help_entry "modify_multiLine_dialog")9 x% t/ v' I0 J7 \
- (ddmline)
9 g% P. ?9 k5 b1 x$ ] - )
+ K8 O( f2 b" z( ?2 I- }" E - ((= etype "RAY")9 v" E7 I" c/ G9 a' {
- (setq help_entry "modify_Ray_dialog")
m' C; L$ ~% J; @ - (ddxline)$ [" j9 }; [! d, p7 J$ v$ B
- )% @: L! V# G" j& m9 v% z n A4 U
- ((= etype "XLINE")
; E! u2 u" d8 m2 P! h6 o& B - (setq help_entry "modify_Xline_dialog")
* t2 `/ H3 D2 W; t. z$ { - (ddxline)/ Z% T1 E) l" _# {/ G
- )
5 {% h% `! v8 w. m3 C) H0 X. u - ((= etype "POINT")$ ]$ w& n! e. b7 E; D
- (setq help_entry "modify_Point_dialog")1 f1 G- |, _4 C5 \- h# J3 e' O) a
- (ddpoint)8 W! r9 ^" j6 i
- )( H4 H' I$ Q' b: i) x+ t* w
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
, i; |8 N1 {- x# h) c+ A) b - (setq help_entry "modify_Polyline_dialog")5 D+ N5 u% T9 a" ?/ b8 B
- ;; If a 2D pline, check to see if it is planar to the current8 \- N8 w6 }7 M' b2 N3 C
- ;; UCS, reject if not. To see if the pline is parallel,/ \+ F: k1 M/ v- G4 x+ k: D" m
- ;; the 210 group (WCS) is added to the current UCS origin (WCS)) h3 @. S' B. t% @" `+ T n& h. E
- ;; and then converted to the current UCS and checked to see if* }9 [9 A) [( Y/ G7 L& P" b
- ;; it is equal to (0,0,1).7 k3 [3 o# I7 e C
- ) e% C) I- N& c, J, M5 k9 B
- ;; Incase the 210 is default and not in the dxf list.% L; T: a% M3 P% r; d2 I
- (if (= (assoc 210 (entget ename)) nil)
U: D' o2 N- F/ y$ V3 z) K/ t - (ddpline)4 m9 ?/ ]$ b1 ~9 x) G
- (progn$ T, U. M' `) C% d2 M) @- [( {$ U) Z
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
: f+ {4 X: V1 T4 x4 s. a$ E2 D - (not (equal '(0.0 0.0 1.0)! v$ I- ?7 v# e% c' [3 V3 \! w
- (trans (mapcar '+4 B U7 i2 A8 R- q2 q& a
- (cdr (assoc 210 (entget ename)))6 a* W' a! p( F# P
- (trans '(0.0 0.0 0.0) 1 0)2 b! D) b9 }) }% ^/ u0 ^' k* Y' U
- )5 a2 A& U& p {$ {. Y/ V2 S$ E
- 0 1/ I. ?3 F7 W5 {. t+ k: I
- )
' D9 O( @ c2 \% e+ k - 0.0000000001 ; fuzz
+ _) |( H5 v( r2 q6 k7 m5 S - )$ ?/ R) w. \; ?$ h
- )
H* W4 U+ A U( B# h' K: Q - )
8 J( a1 x+ [ O6 H8 p - (princ "\nThe 2D Polyline is not parallel to the current UCS.")
) ^1 U" l( A: V3 K - (ddpline)
( w" |% B8 f5 `( I - )
# b7 t4 C N" G& i# N - )
: [/ R# s+ b6 |# D - )
~3 R+ l( k0 l5 `* a - )
. s8 \: i2 P% J- q+ D$ z- Z
# x! e) R; q* P* K+ W- ((= etype "SHAPE"): U$ U1 E" c- Z% e% k# l4 m! S
- (setq help_entry "modify_Shape_dialog")
1 j2 x6 {9 R% ~; k2 x - (ddshape)
8 ~& R: b# s2 G0 f - ): ~% M" B1 [" o2 M) j
- ((= etype "SOLID")" v9 D. }4 D z- ^ D2 s q- ~
- (setq help_entry "modify_Solid_dialog"), X6 k1 P: Q. V+ e! a4 R
- (ddsolid)
- x( G% H8 K5 ]/ b+ E( {3 _' ~ - )
) g+ }1 }& l2 {+ k - ((= etype "TEXT")
7 X7 E7 W6 Q7 i) P& Z) y' W' w - (setq help_entry "modify_Text_dialog")6 }- f/ q/ {4 ?- J, n1 |8 ?
- (ddtext)& p3 h' i O4 T2 O) z* B
- )
, B, O0 S* \ p2 m# S1 a. e: l - ((= etype "MTEXT")
# Y, h w$ s" m/ v5 e- _' @! |1 E - (setq help_entry "modify_MText_dialog")
) a% d- M9 Z2 Y+ l; |' U4 e% e - (ddmtext): P5 u9 \, O- w) s: T
- )
+ l- Q; H! K0 K" n - ((= etype "TRACE")
* S6 e ?1 `% n, S% U& k - (setq help_entry "modify_Trace_dialog")
0 K( L! e8 z) X - (ddsolid)
- f" X& G2 r! H4 S - )1 }1 ~# q1 B0 m/ P4 P; N# Q
- ((= etype "VIEWPORT")$ N& n' {( T" F$ m/ p
- (setq help_entry "modify_Viewport_dialog")2 W: o! W0 d) }" R/ R
- (ddvport)$ T! Z+ J$ d2 ~3 A. U4 q
- )" L q+ I3 l5 R) u) l& M9 Y) n9 v
- ((= etype "IMAGE")
" J! R, ?7 c* @% Y" ^& c - (setq help_entry "modify_Image_dialog")9 }4 K$ i) @7 Z( `& z
- (ddimage)
v: s5 T7 c& B% r - )
4 J2 s# T6 n- D- i/ s - ((= etype "3DFACE")4 s5 |+ B% B( V1 Y$ @6 z; ~7 b, @& y
- (setq help_entry "modify_3D_Face_dialog")% Z& S4 a! o% W' v' f4 A5 N( n$ t
- (dd3dface)
3 N8 [ k/ y7 L$ C8 g- O9 Q/ M - )
4 Y; d% s& `( f" p+ M( a9 J - ((= etype "DIMENSION")6 N' k& e7 h+ L, r6 F4 u
- (setq help_entry "modify_Dimension_dialog")
& Z$ U+ j4 r5 V% L - (ddimen)
2 o) a+ r$ M* f) k @- W' U - )
' u. H: T6 U+ k - ((= etype "TOLERANCE")6 v# W ^/ R: S w+ E& f
- (setq help_entry "modify_Tolerance_dialog")* C0 F7 n5 I3 O# n6 f$ e- E2 |, c
- (ddtolerance)
$ `$ S+ ]2 \( A- v+ k5 Y8 X - )! ^7 H* |4 g4 F) O* L" T
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.# Y" x* O+ z& o$ _
- ;; This allows DDMODIFY to work on any custom object or any new object type
) P& d O" Q6 U! b2 ` - ;; that isn't specifically handled above by calling the more generic DDCHPROP.4 x G: b o8 x$ T- I& A: `
- (t r5 ^# a, |* p& |3 Q
- (if (and (not ddchprop) (not (load "ddchprop" nil)))
S2 r5 J D% d8 f. l# p# x - (princ (strcat "No dialog support for object type: " etype ".")))
0 P0 W% _4 v& D - (progn
6 |: s4 K/ c2 c - (setq tempss (ssadd ename))
( O" ?- m8 t8 Z, t6 U - (ddchprop tempss)
8 t: Z# l! H+ [# |9 T5 I& l - (setq tempss nil): [ G6 z) }7 g1 B/ y6 N4 W3 w
- ): h5 l( M0 I9 _' P
- )
- A2 J7 F+ k' M$ V; q5 [ - )" R* C! M% T! G
- ;; Previous fall-through condition.' ~ h8 n7 r, I+ N+ ~
- ;; (t (princ (strcat "No dialog support for object type: "
1 ?% S' M% Y3 |# F b - ;; etype "."
1 ^, W" K1 [$ V P( E- K - ;; )$ l! ?2 q5 @+ I- Q& N
- ;; )% e7 K0 S7 G3 Q I( W5 ?) I
- ;; )
1 l2 |; b) e; a+ v/ `1 u' a2 Z5 T- E - ;; )7 Y" @6 w# {5 s& Q
- (ai_undo_pop)7 ?3 C, W3 u: P; Z4 I
- )
& A' n, n( t& b+ N; k( e! F& t - ), j" `$ m9 S( W; A2 z
: G1 M* ?. V4 ] k" q- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle
6 l* Q8 R$ d0 E0 r: B: @, G% X' n8 U - (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
$ b0 @; |* [. |' A7 ~2 T - ) ; to what we started with
5 U2 Y0 \; c9 ^7 i- [5 J - 2 w9 {% L; `: `
- (setq *error* old_error)! g: B, I, A4 V! t; w% W
- (setvar "cmdecho" old_cmd)
; r5 t7 a& Q4 w7 k1 q - (if (not reset_flag) ; if object was modified, then2 E" V. P& T& s9 R% Y+ a0 [: o2 D
- (ai_return ename) ; return it's ename to caller4 N* `1 ~ c: O- d% R i
- )3 n' K8 s7 G+ ~
- )
" @# Z1 u$ P+ \ [ - ( t: a* f% Q8 h: l9 K
- (defun checkForLockedLayer (ename)& j3 O, q4 M: B: P+ S% Y
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))9 G6 J# |% J: h5 e
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))% U" N% T6 `/ s
- (if (= layerflag 4)
& E+ Q- s: c$ i$ m$ T$ ^( _ { - T8 K8 b& ~1 u. w: _ S' s
- nil
; T/ h* `0 k9 o1 p - ). R! v& u! F' B* E6 c; ]$ M! M8 V
- )
2 X+ {: W" O( M$ V/ i9 Z# W1 S
& Z* b3 t6 r6 M# G( Q9 h% _- (princ " DDMODIFY loaded. ")( J3 \" n: Y6 S% ^4 @6 R p+ j) x7 W6 j
- (princ); ~$ ^ V8 L9 B
- ;;;???;;;---------------------------------------------------------------------------------------4 N( p5 i; x/ y; `) e
- 6 x6 c1 o! z8 A9 L, b
- ; Next available MSG number is 8 : x7 \; N# v$ D" \ T1 E/ W
- ; MODULE_ID DDUCSP_LSP_
0 w5 Y& I ~+ E( P0 [; T - ;;;1 s6 P! j, [: z( a: p' e
- ;;; dducsp.lsp
8 j+ X1 j: M% X* M7 }# C7 W6 [* Z - ;;;2 j* @: m. z" }' J3 v$ H
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.8 }/ P+ B# M* q* K0 I: A
- ;;;1 O5 m- r# V P k
- ;;; Permission to use, copy, modify, and distribute this software5 p/ _) U0 }$ S- s: `
- ;;; for any purpose and without fee is hereby granted, provided
* {5 y1 d- b3 B+ E! k - ;;; that the above copyright notice appears in all copies and
1 z6 ?4 H2 n8 I$ m) h! k! i' B - ;;; that both that copyright notice and the limited warranty and; ^( o, V3 [$ a' v
- ;;; restricted rights notice below appear in all supporting
: {8 M( O- h# _+ `5 G - ;;; documentation.& o; C; u; W/ o9 R& g S3 p" p1 _
- ;;;. f+ P6 ~1 W8 _/ g9 S* ~6 R; c
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.( E3 w! k, [ j7 n! _' ^: ?
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF! z. E/ n! s% \
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
( v8 r0 C* }/ | - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
1 k4 ^+ B/ k* E* J - ;;; UNINTERRUPTED OR ERROR FREE.% I6 a/ e" v6 `8 E5 H" [
- ;;;
3 e2 g% p3 ?/ `' y7 y& I - ;;; Use, duplication, or disclosure by the U.S. Government is subject to4 L% {+ E+ t8 Q# i8 x9 Q
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer! v1 f2 J _- s0 |6 F
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
2 K( X, r1 L' A! Y3 E! K - ;;; (Rights in Technical Data and Computer Software), as applicable.6 w7 [9 S7 {6 \. G% _
- ;;;
" X$ j/ D/ I/ }# r - ;;;.
- [$ r" j. C$ L H& a - ;;; C:DDUCSP - User Coordinate System presets dialogue.3 j! C+ o+ \+ s
- ;;; ; }/ A1 B$ b- i% Y' c5 R
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
) A8 ?( X9 l4 t& B* g - ;;; slide images are in ACAD.SLB./ @* n3 F# `$ e: p: G
- ;;;9 B# R+ A6 {; j9 _' T
- ;;; ===========================================================================( s0 F- l* s- c0 y
- ;;; ===================== load-time error checking ============================
* G0 F# ^2 W7 w3 V0 v - ;;;4 ^+ |' S! J9 e
/ \3 @9 I" D9 ]' k j- (defun ai_abort (app msg)
; C* F5 r) A; V2 a+ Q/ j; J, h# E. d - (defun *error* (s)
2 v8 H1 c3 F( D8 {8 M( g - (if old_error (setq *error* old_error))
7 J( g% n/ ?2 v - (princ)
5 n+ p% n: r; M1 f G - )
9 J& ?# k- a% C# n( V4 d, T, j7 ` - (if msg
4 F& n I) p( ^5 t5 \ - (alert (strcat " Application error: "
9 A0 m2 p4 K6 J7 \2 R& R u - app6 a- t" p0 t; ^4 q$ o
- " \n\n "
6 ]8 R+ \9 c% z7 [* A - msg0 ^9 C) Z* l& W( [9 J( J3 F2 e
- " \n", O8 W3 j! T/ y i" |
- )
1 O# C; c* t" u$ H6 z, q - )
/ n- }3 I& E* `) a8 _+ l9 u! e3 r0 P - )
8 x& a8 W% }$ ]) L - (exit)
/ p- Y1 y' J% F - ), u8 A; L3 Q* k6 N/ L2 w% U
0 U& a' C- b( m5 G j( ~+ k- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,$ C' W& R: p% Q- K( C
- ;;; and then try to load it.# X% _, l6 H( _, @ J0 z- |
- ;;;" x6 ^& L4 t* {* e S
- ;;; If it can't be found or it can't be loaded, then abort the
" v; ]1 d3 u6 g- D - ;;; loading of this file immediately, preserving the (autoload)
5 o2 Q H, r1 u* F0 m- y4 y - ;;; stub function.2 K& A$ X9 ]! v0 W" }+ U3 ]
; @, R8 K0 x r, h2 W4 g- (cond
. A* V- i1 l/ m - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
: }. g# ~5 H; p) {- t! W
# i4 `6 v: `9 p u" }! L5 `- ( (not (findfile "ai_utils.lsp")) ; find it
* r$ x' e) l3 D6 t2 Z6 Q8 c9 ` - (ai_abort "DDUCSP"5 J* ?' b }% ] O ~: [/ A; ]
- (strcat "Can't locate file AI_UTILS.LSP."
0 p, o6 W: }4 L) R9 F, V% l - "\n Check support directory.")))' y: v" O+ g; r5 c7 P
9 X% x d- Z9 J7 F: w- m o- ( (eq "failed" (load "ai_utils" "failed")) ; load it) x. o4 z& t* E; ~+ ~5 [
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
9 E& {9 v8 Z/ x$ O2 T - )
2 w" t0 w% O X8 |2 } - $ g/ ~& |" f- B; c
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
) r/ S* S; R4 | w - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses( M9 X( R: l0 V0 C" U8 j1 N
- ) ; ai_abort's alert box dialog.
6 s/ b& D6 u; t+ P* ^ - 9 Y' d" V7 N' o( R& s6 f
- ;;; ==================== end load-time operations ===========================
+ B. H% K% F' T - 9 Y1 _, v; i( {. @8 {
- (defun ai_ucsp_start ( / program)
# I" |2 ^' V* _& j' s - ;; Get program name
6 |' s" u6 V: x0 Y- K7 A - (if (not (setq program (getvar "program")))/ B$ m/ y2 `- @
- (setq program "acad")
, U+ e) k: E2 Y; c+ n - )) d; s8 b$ K8 s/ s: C- I$ K9 k' U
- (foreach v0 '("world" "left" "cview" "top" "front" ; ~/ v3 x+ p% ^6 |
- "bottom" "back" "right" "prev")
/ \7 k+ v( y8 U% u2 f - (start_image (strcat "ucsp_" v0))6 e1 t4 B0 ~7 Q" K) y# Y8 S% \
- (slide_image
3 n+ b* r' l5 ~; w8 w - 0 0
; L0 Y* W2 l% e. m; B: w - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1); N9 D, d0 p+ K3 C+ G- |
- (strcat program "(u-" v0 ")")
6 E f8 v7 y& J$ Y& u - )+ C/ s1 F- g' a( }2 ?- M
- (end_image)5 O4 N5 g4 {2 u' q- m: F: C
- )
( L6 k j' T2 a; A- v9 I0 f - )+ R& R9 h4 M: }
, b2 d+ a% y% x5 [6 L3 G, `- (defun ai_ucsp_set ()) g/ E* e1 H2 H4 T/ n9 x
- (if ai_ucsp_sv
`; B+ u- Y# e, o& R' r - (command "_.UCS" "_V")) U5 K T& S9 C2 f
- (if ai_ucsp_prevs
" `) I' y0 X8 p4 B9 i# n2 h! h& N - (command "_.UCS" "_P")7 v! @* T$ }& \. u1 j
- (if ai_ucsp_chg
" T" R* z0 I3 i% w+ z7 E% e - (progn9 D- v$ f1 s' l8 u1 M1 d7 j
- (if (/= ai_ucsp_a "*")( ?+ @0 {1 y! Q' n! T' J& J5 q- `
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
- m' |, N7 i: C( Q% k) G - )% j3 n0 }5 C) Y' m6 l
- (if (< ai_ucsp_pick 6). E& g. |# e3 I! f5 J
- (setq ai_ucsp_set0 "@")
2 g- T& i7 ^' q% J - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")1 m; H5 A" z4 C5 P' U. |2 e
- ). L# Z9 E6 ^' v$ a; q
- (cond ((= ai_ucsp_pick 0)
8 K( R( k6 t" _5 c, q1 X - (setq ai_ucsp_set1 "0,-1,0"; b# s# B! S; k1 |) q5 _
- ai_ucsp_set2 "0,0,1"
: B! m, D) T' x1 t8 a8 J - )
, R* B. X0 U1 d7 f - )
% I' V6 J, o- `8 B; N - ((= ai_ucsp_pick 2)& ?8 k# B2 r* f% e# {4 [4 G. D
- (setq ai_ucsp_set1 "1,0,0"# W P& c; d. ?/ _6 G; j2 n( @
- ai_ucsp_set2 "0,0,1"
/ L! \4 H1 g% B. p - )
" X# |0 q# ?, Q; I ?# N - )
# U7 ?( t/ v( f$ `- ?0 s - ((= ai_ucsp_pick 3)
2 ?. j5 U1 K" g( H' O - (setq ai_ucsp_set1 "1,0,0"% Y1 g$ A ^: @* U( Y; U' c
- ai_ucsp_set2 "0,-1,0"
2 `. w% B8 C- c3 Q4 J' N4 S4 b* \ - )
2 c& Z7 D+ W, o5 ]7 F( E - )% r. H* k9 i# L
- ((= ai_ucsp_pick 4)# u7 m1 U5 q, d f) d, @) R4 Z
- (setq ai_ucsp_set1 "-1,0,0"
- b0 f3 E0 x1 w+ s, [- _ - ai_ucsp_set2 "0,0,1"
* A# d0 R, h6 M8 b; @ - )( ~! C$ e3 r: r. ^, x
- ), K* x# O$ \ I: m
- ((= ai_ucsp_pick 5)6 `' v' F) k( R" `4 M' l
- (setq ai_ucsp_set1 "0,1,0"; Z* I8 n+ U3 n% |' k9 M
- ai_ucsp_set2 "0,0,1"
- o& J: C2 u" ~) K - ), T! u. R& v: f" k
- )
- y. Q0 J; N- c3 F - (T* o1 I6 L) P% ~! c0 V9 W$ r
- (setq ai_ucsp_set1 "1,0,0"( W( {1 V% i: i7 H- p+ a2 P
- ai_ucsp_set2 "0,1,0": h& G2 W% y+ m* b) _) h
- )
( W( B& b. J$ ~; U- } - )9 I: A& m5 q, a2 _: e f* n
- )& g+ b8 ?0 X, W, P6 `) D
- (command "_.UCS" "_3P" ai_ucsp_set0 / s% l: u0 V! a4 ]
- (strcat ai_ucsp_a ai_ucsp_set1)
4 K2 W9 \/ t4 c& Y5 c9 o6 I - (strcat ai_ucsp_a ai_ucsp_set2)
+ X# _$ h, P. e: d, l - ) 2 r- l) f& e# G& }
- )7 g* a2 w# K& J; u
- )
+ Z5 s" o& Z3 o" F - )
$ ~' G* I2 p+ {6 u3 e - )2 ?5 R3 e' I9 L% I0 P7 _( l, J
- )2 m z: T5 I2 [( Q8 ~* u& @* L
- ! R. @8 A. n, Y9 V5 q r8 r
- (defun ai_ucsp_p (val currtile)
3 X% K$ T) F2 }8 R - (mode_tile ai_ucsp_currtile 4)
4 @5 M8 P ?) @1 R9 ` - (setq ai_ucsp_pick val' I* t; T0 L8 f2 H3 a7 g
- ai_ucsp_sv nil1 i8 q4 }3 @' m
- ai_ucsp_currtile currtile( O7 i: q6 X! C$ P, Z
- )
7 Y3 [5 F! `, \) o - (if (/= val 1)
7 D/ _; B. l. S. k- w0 L9 z3 E - (setq ai_ucsp_chg T) o4 e4 O7 i4 T2 j4 ]0 e: Y
- )
7 j! I( r3 X( R - (mode_tile ai_ucsp_currtile 4)
5 b2 |* l! |9 ^" B" ?+ k/ k - )
4 h: x# ]8 S' E - + T7 i5 r& y0 s7 t r8 |0 L
- (defun ai_ucsp_swcs ()1 o. t9 _' S/ ^7 c/ Z* O
- (mode_tile ai_ucsp_currtile 4)
' K) s: c) T1 W, k - (set_tile "ucsp_a_wcs" "1")( G( h; f3 l7 z) J3 K! g) p, c# h
- (setq ai_ucsp_pick 6
u8 w/ k, ? W/ m" Z8 b - ai_ucsp_sv nil
: {: {1 W8 ?1 u: W+ e6 n - ai_ucsp_currtile "ucsp_world": k6 v- E' C" ^1 s, I: H' }
- )& T" n& O8 [7 S/ g
- (if (/= 1 (getvar "WORLDUCS"))" ^1 f: Y% H, Q: d9 j, |* W: A
- (setq ai_ucsp_chg T)
; B+ d% ?) T0 u5 a* r& Z, l ~ - (setq ai_ucsp_chg nil)
; t# c9 A7 s$ u4 c8 h - )5 f- i" R7 v4 I; y- n/ E
- (mode_tile ai_ucsp_currtile 4)
1 x/ V% c: h" ^ - )) V; Z! ~/ Y" v4 O% e
- . A+ v+ T1 m2 q; N9 u; v
- (defun ai_ucsp_cview ()
. o H) `4 b+ V1 d) ] - (mode_tile ai_ucsp_currtile 4)
2 D5 k/ N$ d3 Y& R. j6 q - (setq ai_ucsp_sv T * E! ]5 d7 Z' T( h# M
- ai_ucsp_chg nil: v- p0 T( m! s! I8 D- ?* J% K
- ai_ucsp_currtile "ucsp_cview"$ i( y& S+ R4 z8 n8 K
- )1 M8 ]- u9 f9 H2 M0 |, h' T
- (set_tile "ucsp_a_wcs" "1")
7 U- z2 l2 @0 C1 ~ - (mode_tile ai_ucsp_currtile 4)
- E, v c K' P, v* h - )* R7 f& k2 H {( ^: u7 s+ {# q% e
8 `( {1 z& m# U$ a- (defun ai_ucsp_rucs (typ)# K3 ?6 K" o) F# |& z4 |
- (setq ai_ucsp_a typ)
! G0 E, H2 ?, U - (mode_tile ai_ucsp_currtile 2)
# M; U4 ?3 M( D% `. s - )+ W/ k. g. @- R3 e$ R8 E$ T6 q0 \
7 P1 `) J" v9 x5 M- (defun ai_ucsp_prev ()
( C# i2 o) ~ G6 E: z) ~# c - (mode_tile ai_ucsp_currtile 4)
" i3 l2 U ?) G v0 z# Z' S - (setq ai_ucsp_prevs T" `3 I; \% {' _) K) f1 k
- ai_ucsp_currtile "ucsp_prev"
: H) S7 s: y6 \, k3 c - ). G2 q* U. m% N- g$ E- F1 S& ^
- (mode_tile ai_ucsp_currtile 4)2 V' E- h& [2 i5 u' x
- )
- d) q8 f" K2 e+ k - ! T0 Y* r& N7 A W" V& H7 S
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)0 e. c: g% F! V" s
- (if (not (new_dialog "dducsp" dcl_id))
& x8 T* r+ l1 ? - (exit)
& V2 _. k7 y1 V! ~: F; Y0 ? - )
+ V( q- B& c* T( j4 Y
0 o |2 s! E2 F- (ai_ucsp_start); k8 a( h- b/ F4 j, E; j! g$ o S
- (setq ai_ucsp_a "@" 5 E. L% c! K) a. R9 p$ N
- ai_ucsp_pick 2- [0 j" K1 p7 T9 B
- ai_ucsp_currtile "ucsp_top"
; k6 |9 ?% U8 Y5 K" a, P' s - )# b! f% t% \3 a
- (if (= 1 (getvar "WORLDUCS"))
6 c" H& p6 e: a7 W. L8 |) u - (progn I$ Y0 k" j+ Y- J2 V2 I- T
- (set_tile "ucsp_a_wcs" "1")
& k- Z& z5 D: A9 P+ s: x - (setq ai_ucsp_currtile "ucsp_world")7 P: P8 A7 G+ ^/ m# Z8 O2 E
- )0 Y! E; s* Q9 s8 {) T3 n9 \
- (set_tile "ucsp_r_ucs" "1")
0 H5 `, | x$ i: B$ n - )
/ }) h5 \3 d0 ~: V% V% h% G3 E/ B6 J - (mode_tile ai_ucsp_currtile 2)
# U! A6 H0 a. f3 R. R - (mode_tile ai_ucsp_currtile 4)3 [: g5 e, T8 x' T; d+ B$ C/ e A
- (action_tile "ucsp_world" "(ai_ucsp_swcs)")
4 U, K5 t) S/ b - (action_tile "ucsp_cview" "(ai_ucsp_cview)")( E% b$ X- U2 w- D
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
( D* X; P" [/ u; \. M l - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
5 m! m0 G/ E; D% G; g: Y3 o - (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
( }) @6 w b2 ]3 k. |% @0 ]; L- c% T - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")- _* K; W& y* N. c2 y4 g, Z) Y" M
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")' S: ~" P9 W' R$ k g3 y
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
7 Y+ r/ `6 I+ b. d/ P! B, ? - (action_tile "ucsp_prev" "(ai_ucsp_prev)")
$ }& G$ @7 D- d) g* E% ], Q) b0 m - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")# @; S, w7 N. g0 N
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")/ ~ u. s/ v K# W9 a
- (action_tile "accept" "(done_dialog 1)")
* U6 R% U5 U7 G+ A, y& I# [ - (action_tile "cancel" "(done_dialog 0)")
( {- c* [$ b& m/ J5 d6 q - (action_tile "help" "(help \"\" \"DDUCSP\")")7 r7 c9 E8 B' v
- (if (= (start_dialog) 1)
+ W6 s; h. u/ W- H9 ` - (ai_ucsp_set)) i$ `! r' M( w. A8 J q' ^
- )
) C* X- T- M+ E! v' j4 ] - )
. n- [) {$ h' w2 n( C9 t) \8 n - 5 p( c% Q, h9 s. D# F3 C
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs / }0 ~7 y6 ?! C6 F
- ai_ucsp_sw undo_init)
9 y, a' _5 i9 B' x X5 L - - Z- {6 B) Y; e
- ;; Set up error function.
) \% }$ h9 v4 ]( ~, Y$ {: C9 I - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho- ?6 L( P/ I+ I. M4 ~+ U! k" @
- old_error *error* ; save current error function
8 ]5 W9 `; _- B8 M& M - *error* ai_error ; new error function
5 i% b, G0 d, L: f - old_osmode (getvar "OSMODE") ; disable OSNAP for duration
3 r* } s$ i8 Z. ~. H - )
3 x% T# e- l a; J' `, R9 j - 0 J+ D9 \+ Z( t
- (setvar "CMDECHO" 0)! Q9 v. N/ q2 ? S
7 C0 Q# h1 o) n `+ b( O- (cond0 X' e' X# G- ?3 s3 x
- ( (not (ai_notrans))) ; transparent not OK
4 Y& f8 `+ j( E' p - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
4 ^ q) f! t7 l- i- d* o - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
& [" r$ L& @! r- J - (T (ai_undo_push)9 s3 F- |' E. W% k! O* s4 y
- (setvar "OSMODE" 0)4 b7 }: }- H! D5 g. H( z9 t5 N
- (ai_ucsp_main)
/ B2 T+ Y8 _3 R9 r E/ i2 w - (setvar "OSMODE" old_osmode)
+ t: z. N, q! Q - (ai_undo_pop)3 |9 c' A. ?. t( m) Z
- ); `0 ~% }; S C0 k
- )$ L; H- r. r+ @" I- l: w. q
- # G' U. _+ `0 n. J! v# K+ E
- (setq *error* old_error)
7 d' {/ _; {% S& q4 @. J, W- r- v - (setvar "cmdecho" old_cmd)
G" l: Z2 _+ J+ @5 A
! @0 ~# J! n- r4 R7 S- (princ)" H) Y' D4 p9 |: J
- )& @, L6 @, ^9 j6 L/ ~1 R+ o9 B
- - M; H7 d5 ]: L( s% f8 B0 a
- (princ " DDUCSP loaded. ")0 m- @, j# M7 @5 {4 y, K$ E1 A! X) c
- (princ)
" W! C( J0 L; H6 r - 2 L4 q% Z) A- X& ~2 u) v& t
- ;;;???;;;---------------------------------------------------------------------------------------* z3 A7 N" a, _" I$ F# M2 c
2 l3 b5 [, a( ]) G- ;;;----------------------------------------------------------------------------
% F/ M9 ?. \8 r: c: F; D9 t2 i ^ - ;;;
+ ], } r. O: Q* U. D - ;;; EXCHPROP.LSP 4 E$ k2 R; L; x- p4 A2 ~( Z/ n
- ;;; Polyline and text modification capabilities added by 6 h5 ^+ O4 ?1 w! E; C
- ;;; Randy Kintzley
" O4 g; W, q+ ^, h4 S4 [" h g2 I - ;;; - H! I5 t. {$ W* _3 l
- ;;; Copyright (C) 1997 by Autodesk, Inc./ J5 T3 S' F5 I' i
- ;;;0 m+ d* f3 }$ E* ^' ^, e
- ;;; Permission to use, copy, modify, and distribute this software
" v8 o ]! ?' G* u' i - ;;; for any purpose and without fee is hereby granted, provided0 y5 C7 R& P3 S4 u: _" K% F
- ;;; that the above copyright notice appears in all copies and# H0 \3 r1 k7 I' F- ]
- ;;; that both that copyright notice and the limited warranty and4 i4 r- U c6 K4 w- X# H) c& z
- ;;; restricted rights notice below appear in all supporting
# L) d7 g: j- k1 n - ;;; documentation.$ u! R' U/ D0 }' m
- ;;;
* X# L. O9 G% R& H$ t( E+ b - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
8 V! S7 S/ P" N; v - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
+ e. d6 a F2 f6 ^ - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.. }2 x2 b# |. M7 g/ Y
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE% g' e) D1 w/ M3 ^' J, z, T8 B
- ;;; UNINTERRUPTED OR ERROR FREE.! G G. H" [, M; N- W# l3 w$ Z' C) ~
- ;;;6 \+ O" E1 Q( I) _! l( P2 L+ J# R
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to9 b+ }0 j7 J- o: @9 i1 v* Y
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer9 I% b4 _" U' t$ d( W
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
7 e1 ^9 c, H' K5 H" }8 Y+ H - ;;; (Rights in Technical Data and Computer Software), as applicable.4 D9 |( r1 |( S j, j
- ;;;
% K- }% G. Q! S G3 [! p - ;;;.6 @' [7 m" W* u' U( M
- ;;; 28 February 1997, A5 V, Y E$ X& o! w5 f2 i
- ;;;$ c1 X0 ?0 t5 Y! r; S; ] b
- ;;;3 W. b9 S5 @! Y& Y# s+ x p
- ;;;----------------------------------------------------------------------------
# j+ T+ |/ B9 O6 |6 ]) l2 \7 F - ;;; DESCRIPTION0 _+ Y' b( M5 N A7 L: P# o9 Y
- ;;;----------------------------------------------------------------------------( ~8 Q4 o5 f/ C- W+ h5 v6 S
- ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This ' H( m0 m6 S; S/ P$ w, ?9 v
- ;;; command gives the user the abilitie to change several characteristics
" K; l) m$ G; O; c9 ]( Y3 L - ;;; of selected polyline and text objects. - o# Y3 m. A3 E6 P" M, [
- ;;; The style and height of selectected text objects can be modified 3 q) {* m" m% D3 Z
- ;;; (including text, mtext and attribute definitions) as well as, width and 8 W8 C+ m& v, }$ \* B) _) e2 P% ^
- ;;; elevation characteristics of selected polylines (includes lightweight and
; U; ]3 I6 j7 s3 O& V - ;;; traditional polylines.)9 {. Q- A% o( {! u" Q! J
- ;;;----------------------------------------------------------------------------
5 h. j' x& s' X: f+ U - ;;;----------------------------------------------------------------------------3 h4 r' u- }. n/ k5 P
- ;;; Prefixes in command and keyword strings: A3 a% e9 h& A
- ;;; "." specifies the built-in AutoCAD command in case it has been
0 K7 {, U* ^$ n6 W( x& W4 ~ - ;;; redefined.* H( P1 f6 @3 b
- ;;; "_" denotes an AutoCAD command or keyword in the native language
3 l- }# `' r% g, m) u" I' g - ;;; version, English.
# m8 h$ C: e2 Y* h - ;;;----------------------------------------------------------------------------
3 C( `' g0 f2 Y# |7 E A( i - ;;;
( D( o ~( G( k1 q - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;- Q8 _0 }+ K1 R* `
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4 L* z5 r& f$ m6 g' y. | - ;Functions created as result of loading file: exchprop.lsp
( L, `5 |5 L; H: d - ; DDCHPROP2
% M$ j% T6 Q6 }5 o+ _ - ; DDCHPROP2_INIT
1 y% |5 j/ F4 F3 T, e - ; DDCHPROP2_SELECT* z. X, C" `6 h1 B8 T' v% L0 d
- ;
6 v$ ? d7 T* j1 B D/ `% S - ;Variables created as result of loading file: exchprop.lsp
( p3 c$ _2 f- D9 _9 r) a' |$ h - ; OLD_ALLOC
- i1 c8 z; z1 E' e. Z5 X, Z - ;
) l: {0 J3 g3 \1 |9 k+ h* M0 f - ;Functions created as a result of executing the commands in: exchprop.lsp; d/ a9 A5 C0 V9 Z3 _, L
- ;9 U7 K6 H% X. e0 }1 S
- ;Variables created as a result of executing the commands in: exchprop.lsp
|2 g& {8 L+ C4 ~ - ; AI_SELTYPE% R2 I: s2 F4 G' M- `! s
- ; BONUS_ALIVE1 N( k" A$ Z+ T/ ^
- ; BONUS_OLD_ERROR3 z; @- F! H( X9 D
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; X) M* \* t6 O* V: F$ X/ K1 E
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
, L6 p C$ E1 o, o; [+ @
$ Y* O n+ k6 z0 u- ;;;0 ~/ ]6 E5 G: R
- ;;; Avoid (gc)s on load to improve load time.: M# k" j2 P& \. \0 w
- ;;;
& O# a! G5 d7 j: k: g7 ] - (defun do_alloc (/ old_allod new_alloc)
. L s- l( f1 A" f/ D6 F9 P. q - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
" e S- g; @+ r - (expand (1+ (/ 4750 new_alloc)))
7 D8 ^2 f8 W) V! @8 f - (alloc old_alloc)7 A. v1 n: V5 _4 x! a
- );defun4 ~/ o0 j0 J6 z/ k }0 y
- - o3 s. r% {0 x x% P
- ;runs at load time - rk
7 b- B* l$ t+ L$ c - (do_alloc): i" A- _; M# g4 G$ ~, i# T+ Z' ~
- (setq do_alloc nil)0 Z; ]$ }- V4 Z2 \) {$ i" d" j
- ;;;" w- V1 {* t" X3 s% ^7 X
- ;;; ===========================================================================
6 {8 ^8 M& v: A, i6 |# ~9 w$ E - ;;; ===================== load-time error checking ============================6 Q. t. E; e4 R- V$ w
- ;;;7 y, ~. F5 S( w' [! U8 ?
- * t8 Y2 I+ W7 C+ g( t; v/ u
- (defun ai_abort (app msg) I5 [" R7 J9 K. W
- (defun *error* (s)
9 V! c9 r+ V3 W8 z! @# [ - (if old_error (setq *error* old_error))
' C- z* [( `' N7 {' m* W! \ - (princ)
# p: N7 e9 p2 X- G6 t% T) n - );defun
9 e* n. M& D6 A( N, P% i - (if msg. I& ]- U( `; ~1 f/ i
- (alert (strcat " Application error: "
4 v' }7 }( z0 Y# G. [7 [; k - app# u C$ l4 ^% Y
- " \n\n "
/ Q+ c: E, G1 ^6 Q6 Y - msg
6 C4 f! d6 u# n7 t; M1 A. C7 T - " \n"2 @( ?5 o: V M8 k1 c7 y% @
- )
2 r3 ]" H# c/ A; r: u4 v3 ? - );alert
& J) j5 w$ c- z* e; N2 a" P" v - );if
0 L4 o. f, e# c4 n, m5 X( a - ;(*error* msg)8 w: j+ U2 x0 c7 S
- (exit)
( L; G3 \7 D1 ` - );defun ai_abort
* n. c0 r; Z1 I - + J) c" V2 X" [# L
- ;runs at load time - rk) e$ X$ w# A5 @& t$ I
- ;(if (and *error* ;added the if wrapper around this - rk.
2 w, ?4 v2 }0 N9 T: E - ; (not old_error)
* n" `, ^9 ]4 m9 J* R2 n - ; );and
! P3 M# X0 \3 J3 ]8 r/ }" ?$ [ - ; (setq old_error *error*);setq7 M6 L$ ?6 X5 h
- ;);if
3 ?$ p# f" c }3 E
7 ^" c$ e& k3 z1 c6 O1 H- 4 o: o% Y5 W/ Q6 F
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,8 g2 i% F; l, `7 j' ?$ b
- ;;; and then try to load it.7 | B1 l: ^0 H2 S) A
- ;;;) l7 e9 @* r! H0 L, S
- ;;; If it can't be found or it can't be loaded, then abort the
8 P& z3 Y! y3 } - ;;; loading of this file immediately, preserving the (autoload)
1 W# a$ y" t9 f: k. r: g e - ;;; stub function. Y2 K, _& _3 c, ?% }2 }
- : n$ a, P% S, }4 }
- ;runs at load time - rk.. n$ ~! [& f1 E, T- k
- (cond
8 b0 \* P5 Z5 e! O9 h! l$ G' M - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
' l6 M' ?( ]: A3 I$ Q7 o - ( (not (findfile "ai_utils.lsp")) ; find it
. l2 W( h5 B2 P9 S - (ai_abort "EXCHPROP"
0 E+ l! O7 ~. W% ? I& {: H - (strcat "Can't locate file AI_UTILS.LSP.") S# e' q& h" \7 M0 L- d
- "\n Check support directory.")
% P# l. N* A8 P) n+ c p - );ai_abort% J' \7 _# B" O: D5 ^4 `
- )
, l* f: v5 ~6 P; G& _/ M% T; {1 c - ( (eq "failed" (load "ai_utils" "failed")) ; load it l$ H" {0 K) D B1 x4 v) m
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")* S$ J( `) x; P1 Z+ P, b
- )' ]6 w. j! K0 ]/ b9 ?0 I' ?1 g2 R
- );cond close" A7 L; j% Z1 x# d6 K
# a: \; n E1 G; W9 Q9 c1 j: P- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP- L) I# \1 r* s% B( U* ]1 c. r" X
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses/ a2 Y$ Z2 V" e! h) B3 u7 V
- );if ; ai_abort's alert box dialog.
: m2 F# F7 _6 L. X; ^ - {. b; S8 |! ?
- ;;; ==================== end load-time operations ===========================
6 P) J4 n/ N8 F o* o% C/ T - , @9 ^. |; x0 c: e- j/ F% p
- ;;; Initialize program subroutines and variables.
# _7 f- h9 g3 C7 N6 A/ l" A7 i1 R( h
9 W/ z% T9 L( |3 M- (defun ddchprop2_init()- O+ l* M$ y+ R& t+ ^, I
) G- t. ^# \- n# X- 3 r/ q- u* K/ R6 z
- 2 P0 a6 ?5 k/ ~
- ;;
5 P2 h( Q+ x X( l$ Y% A3 Y- N0 U" d" i - ;; Define buttons and set values in CHPROP dialogue box
. z( i( [& U! H9 s" F5 V p+ M3 x - ;;
) ^) S0 n' W2 h) |/ S - (defun call_chp2 (/ cmdact p1 p2)
# \% d5 t9 U t% M
. Y, G" o# B5 O& }- (if (not (new_dialog "ch_prop" dcl_id))
. E0 H O3 G6 L7 G: K9 @# l - (exit)( b' d) J, U. b& l5 F
- )
( W# |4 D8 \, q" z6 ~4 | - + \" y0 r, c8 w" `5 n, _$ z& V
- (set_tile "error" "")8 y. i: G. _( W" U0 R- a
- ;; Set initial dialogue tile values
1 G' l6 H0 j$ W+ F; P3 S" X - (set_col_tile)
1 ], F T$ V4 ~7 I! u- g- ` - (set_tile "t_layer" elayer)8 L9 _. `5 {' {
9 f9 H: R4 _& i- (cond
- \6 B& J2 U! K& l$ i - ((= lt-idx nil)
3 o c4 ^/ z" B: F+ ? - (set_tile "t_ltype" "Varies")
! J; Y' o j! _* N$ C* M - )8 _# ^ S5 y6 ~/ ^2 S. t
- ((= lt-idx 0) ; set tile "By layer & layer linetype"7 p3 T$ f- e6 I% c9 j7 e& {. y
- (set_tile "t_ltype" (bylayer_lt))
& H- i) U. _& i; Y; e - )
" T& S& I! p7 V8 v; A1 m' b: F - (T8 ? c2 F* I2 Y6 p
- (set_tile "t_ltype" (nth lt-idx ltnmlst))( ]# Y; I9 e& b6 t6 W! ^# n3 s
- )' {/ w4 G2 o8 |# F
- )
u8 n/ s4 {$ I$ k! O/ e - 8 D( {: \) s& U9 m8 q/ [8 {
- (if (or (= ethickness nil)2 U, ~- F5 \( t% U
- (= ethickness "")
* f5 X/ P; l5 ] - (= ethickness "Varies")
( x& @. M) p, E4 X4 \ - );or
5 V( w! G) \9 q: P: \8 j - (set_tile "eb_thickness" "")- C# v1 j0 y- e2 E g0 a
- (set_tile "eb_thickness" (ai_rtos ethickness))
1 r4 l# {8 x: c - );if
2 @1 b6 F# e+ u0 B P) O) V4 a - (if (or (= eltscale nil)8 C2 @) D, G, n2 r* X5 p- T$ D
- (= eltscale "")9 R4 t0 {- ^1 v0 c& R+ O
- (= eltscale "Varies")7 Y2 e7 j/ [1 O9 Z( M B- `
- 2 w' h. ?8 t, g: ?" R% m+ V0 v- W
- )- w4 J% D$ Q! Q- \) {
- (set_tile "eb_ltscale" ""); F& X3 R$ _! m. y7 O
- (set_tile "eb_ltscale" (ai_rtos eltscale))# {- \& Q( k+ G* [6 v+ O" q
- )9 W* E1 [' K% A1 Y8 Z# z4 P9 P
- (if
& J/ p$ J) }5 ?2 b* r3 w - (numberp ewidth)
+ D. p: A1 j# k/ o - (set_tile "poly_wid" (ai_rtos ewidth))' U1 |1 E4 X5 r/ J, a& z8 b
- (set_tile "poly_wid" ewidth)( a! C( y! ~" {5 ~0 U
- )- G, o$ K$ }0 {6 v/ b3 F, s
- (if T3 G% s2 c* J0 P4 N% P: _4 p; k! v# f/ U
- (numberp eelevation)
4 M: q0 S: f7 L1 N - (set_tile "poly_elev" (ai_rtos eelevation))# A" }7 ~% Z* b; @
- (set_tile "poly_elev" eelevation)2 A8 v8 g4 k; p e V) }8 ]
- )& F7 s" K: i( z" w
- (if
) F* e! m! ?3 @' L) x d - (numberp eheight)
, Z& Y. s w! m$ Q; \ - (set_tile "text_hgt" (ai_rtos eheight))+ E R. k& H, J
- (set_tile "text_hgt" eheight)
! \2 M7 j, \7 |: ` - )4 V9 ^# f- Q: `" `. H
- (if (not estyle)! e/ f9 Z2 K' P: r3 }. O
- (setq estyle "")- I C+ o% x" x$ X9 g3 u/ q
- );if
- s2 e/ `* U0 j9 X0 s - (setq hair_style_list (tnlist '("style" 16)));setq' |* x5 W. b3 r5 f
- (if (not (member estyle hair_style_list))& O3 n, N& t+ b5 K+ S
- (setq hair_style_list (append hair_style_list (list estyle)));setq
A, L4 x9 b- y* g/ b& {/ e R8 }; ~ - );if
9 q# @( d0 [# H/ B: I1 b
: _, Q" P$ D- ~- (setq hair_style_list (acad_strlsort hair_style_list));setq
5 R$ g" t9 T* x: r$ E5 Z9 ?$ }+ \7 W - (mpoplst "text_style" hair_style_list)+ \7 o3 g2 b9 j: k1 \& H
- (set_tile "text_style" ; _) j' @% a* M0 d) ]
- (itoa (position estyle hair_style_list))
- _+ F5 D* }& W# [1 R9 R! I! v3 ~ - );set_tile
3 ]# I* p' m6 r! C - ; V: V5 c& j! |0 {9 d/ B. [
- ;; Disable tiles if need be... ;@RK7 g: }3 K9 \) |; O* K* x
- (setq a 0)
8 v2 G7 j3 D& o$ `, |# Z - (while ( < a (sslength ss))3 q3 W5 D3 Z5 ?$ I$ |
- (setq which_tiles
6 a* L/ g/ b5 S' Y H - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
; r" D, F* k: m; ]% C" c. f; r( Z -
6 `; y9 D0 `; F- p/ G1 F+ ]: y - ;; If all fields are enabled, don't bother checking anymore.
) R ?) e8 x) C - (if (/= which_tiles (logior 1 2 4 8 16))
2 R& h. _ ^3 Y& o( p - (setq a (1+ a)) V$ s6 B( K' N4 H" a' V
- (setq a (sslength ss)) ?! A- L& m! I9 y7 F* P- g! M
- )! I+ V' y V$ \* e
- )
9 w: S1 k7 t+ t2 t, I - ;; Layer Button and Text Field
; A; c* Q7 V( G, a8 h
* `; E% C! p8 R) l* \: l8 W- (if (/= 1 (logand 1 which_tiles))2 K0 q/ e i( t! J
- (progn7 L. c/ z+ E, J
- (mode_tile "t_layer" 1)2 ^; z; D$ ?' I' N) M$ `/ E3 }
- (mode_tile "b_name" 1)
6 e) ^' i& r2 H1 S/ w8 d! J; [1 a5 z0 n - )2 @* _% I; d. c- O/ q% g0 z3 a
- )
% A* G/ g& i/ B0 w( @, I7 m
( x8 R; k; N0 ~/ i s, Z- ;; Color Button and Text Field: O: s$ m* f9 ?4 R0 k- V$ T, G
- (if (/= 2 (logand 2 which_tiles))7 Y! G6 H2 H+ h* W( S
- (progn8 \7 l4 J# ?$ z c
- (mode_tile "t_color" 1)
c' p9 R0 j# l; A3 `3 C6 D - (mode_tile "b_color" 1)
8 S& ^7 e% n- P- D# t. F - (mode_tile "show_image" 1)( }) F+ k4 N8 b; m; F9 |
- )6 {) `3 l ?$ J: E i0 |! C
- )
0 x0 `! @$ k) \! B. U' ?% Y - ;; Linetype Button and Text Field
3 z4 ^6 f3 l' q2 i+ G- Z2 s - (if (/= 4 (logand 4 which_tiles))
. q/ f- F6 c1 v' |+ C - (progn
; A; u, w- |' M9 L2 v - (mode_tile "t_ltype" 1)0 M" A$ h; \8 m- ~( R/ q
- (mode_tile "b_line" 1)5 t1 n; E& q0 R, B8 l1 b! y
- ): \* ^4 ^9 f3 r7 @; ^2 z( E2 Z
- )
9 e' d) ^& j# C- e5 y4 G* V - ;; Linetype Scale Edit Field
& i, I X2 p: q2 V/ x - (if (/= 8 (logand 8 which_tiles))
: e8 ^& Q; y# X) q8 g$ l; C - (progn
) a/ [" | T( ~& f3 m - (mode_tile "eb_ltscale" 1)
, w9 j# f1 |6 T4 i6 o- S% Q; ?$ ] - )6 t/ i' n, k/ n% Q% _8 r+ N+ |
- )2 R5 z3 F7 R! D+ \# l# p0 T7 R
- ;; Thickness Edit Field.* b8 a" h/ T0 x* K* ^6 d
- (if (/= 16 (logand 16 which_tiles))0 t# p7 R% g: d
- (progn
7 \9 W- d- b# W$ M3 ?/ r& F - (mode_tile "eb_thickness" 1)
' u9 i# [, E8 {3 i6 D - )
1 y0 ^% I3 Q8 Y3 v8 O1 {# l+ ? - )
; P5 \ Q8 O0 l2 r& R
# s8 ~( E7 N3 n- ;; Polyline box and tiles @rk 10:05 AM 1/30/97, o" G3 `, E5 n, o' C. |
- (if (not (= 2 (logand 2 eflag)))
C/ Q" a# z7 k7 _$ B: x - (progn
0 ^" _9 d( g$ H7 x - (mode_tile "text_hgt" 1)( O* }' w* _! Z9 {( d7 l7 @
- (mode_tile "text_style" 1)
. Y& u" ?! Y$ t - );progn! T' Y, e( a& s- o1 b7 V* w1 w; x0 r
- );if. |0 u& @/ S' l) ]
- (if (not (= 1 (logand 1 eflag)))
1 K' \, h5 _: f- q7 l5 ]! a k0 b - (progn
8 v+ V4 C2 b- g7 f& \ - (mode_tile "poly_wid" 1)) g* d7 m- ]- k+ `
- (mode_tile "poly_elev" 1)
1 y6 ~; J* E! D, ~4 a) w: y3 {' k2 y - );progn then disable polyline fields
* P8 p2 s: x' C) v' Z - );if) j3 H9 q$ D6 @" [9 G. @: k
2 \* v' e, T6 _9 \4 e; e! g. Q- ;; Define action for tiles/ @' n* g; o0 [! e" _: W6 G5 v+ G f
- (action_tile "b_color" "(setq ecolor (getcolor))")
& M; t2 k5 Y# @3 O( v' o1 \8 n - (action_tile "show_image" "(setq ecolor (getcolor))")
3 u( p0 }9 O( l6 l. z - (action_tile "b_name" "(setq elayer (getlayer))")$ u0 g6 h. s I3 b: {
- (action_tile "b_line" "(setq eltype (getltype))")
6 x0 x$ ?! Y' z# X+ ~2 M: | - (action_tile "eb_ltscale" "(getscale $value)")1 V e7 d/ A; I: T }: T+ g
- (action_tile "eb_thickness" "(getthickness $value)")$ Q L3 o9 q# h3 ]7 t; f& Y
- (action_tile "poly_wid" "(getwidth $value)")5 y9 F6 d$ {9 S% M, v) m
- (action_tile "poly_elev" "(getelevation $value)"): {; _& R- a) ~
- (action_tile "text_hgt" "(getheight $value)")
* s6 D7 j# w9 T. P5 f& w - (action_tile "text_style" "(getstyle $value hair_style_list)") ! k8 I3 E! X8 w9 u& O J
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
- v. T, c$ H( S' s! Q% @8 o - (action_tile "accept" "(test-main-ok)")
: i1 F! r+ U3 Z4 @" ~ - + q, C; d( _: F0 g; G# \7 s
- (if (= (start_dialog) 1)2 z# R7 E4 i H r/ Z
- (progn
- y& |+ s" H% }2 o& Y& u - ; Update special properties for polyline and text selection-sets.
8 q6 C& Q+ M( d i& _% Z8 A3 r - / @ P u) q1 d* U# ^. s
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop% V. G" u0 T# Y5 B# y9 I
- (or ewidth4 v6 @% E4 f2 Q) u. V
- eelevation; j0 V) F' l' V. d. ?/ s; |% R3 d
- );or* M* u2 Q" H- W: k# y, [( W7 o
- );and
5 f6 r, E8 u! |8 N- y - (progn
) k+ ^$ U. E: z8 H8 s* s& J - (setq ss-index 0
. o* T3 J& `& i% I9 W' R2 m - ss-length (sslength poly_ss)$ Q% C0 x. y7 ~" h$ J8 Q
- );setq
% k: t, }- ?, W3 `) D3 a$ I - (while (< ss-index ss-length)
1 H b7 s- Q. `" {+ c4 x5 ]/ m8 S - (setq ename (ssname poly_ss ss-index)
9 b# Z1 ]+ f- _* |) u9 Z5 y - elist (entget ename)+ ]: H& n' k* c! v' j+ ?# O2 G/ c
- );setq+ K6 a$ |: G, Z" w
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
# H$ w* s1 s8 S* O9 [ - (if ewidth
R( ^5 W }3 A( B+ v% ^( ]- i9 [ - (command "_.pedit" ename "_W" ewidth "_x")
9 |2 a4 }, a% d4 H2 o; x7 L - );if D* K/ U# r" b# q* M
- (if eelevation ( y4 a9 u/ W2 ^3 g# ^# N8 V
- (progn
7 U/ {: \! a( @( e# K - (setq p2 (list 0.0 0.0 eelevation));setq
' {# ~( u0 u ^7 e { - (if (equal (cdr (assoc 0 elist)) "POLYLINE")
2 `) S/ N2 [' H$ H - (setq p1 (list 0.0 0.0
4 |3 W8 I5 g9 u& v( p4 J& r6 I2 } - (caddr (cdr (assoc 10 elist)))
2 T; k2 p( O& ]2 p0 c+ Q1 A, K8 v0 l - );list+ `8 c' L% r' @+ D
- );setq3 t" e: F5 A9 L+ n' J7 v5 K& m
- (progn
^; y& w L2 F0 R7 y8 q - (if (assoc 38 elist)9 g: U1 _5 k( F9 ~( Q( \ W& d
- (setq p1 (list 0.0 0.0
( q2 Y5 T2 m# w, U! v - (cdr (assoc 38 elist))5 T2 u) N# {! d1 M8 t ~
- );list9 }& `$ U0 H0 [4 x8 U1 ?
- );setq; B( d, d4 X4 Q
- (setq p1 '(0.0 0.0 0.0))+ c4 ^2 ^/ s' l) ?- L
- );if2 F+ u. t0 P" g, m
- );progn . Y: y; }/ _/ I/ j9 O+ O
- );if A. [' R9 \, p2 ?' J5 ^! Z$ y. a1 i
- (command "_.move" ename "" p1 p2)
0 o0 C9 p1 w9 |) {' O/ { - );progn then change the elevation of the polyline# U- Y5 R$ b3 N2 v$ |3 F
- );if. k) |, X$ |: }8 Z/ | l$ Z5 u
- (command "_.ucs" "_p")! K9 k: @% X( l/ p* f4 a
- (setq ss-index (1+ ss-index))
/ @, [4 J' D5 m8 {+ q5 S3 y - );while
8 g6 |5 K- `6 c3 D! [0 h# J - );progn then polylines are in the selset% {/ o3 Z5 Z1 ?* x7 O3 |& C
- );if: f' I) O0 e3 j6 a
- (if (and (= 2 (logand 2 eflag)) ; text! I) e' W1 f* Z0 c( y
- (or eheight
" k0 v7 y7 j1 B' Z: U; i: L R, y1 F& A - estyle
, D7 a3 C* Z! U/ v, V _( o - );or
% V3 J4 @' u: T1 `( g/ H - );and3 u& G: u# `/ M: l" M
- (progn
9 ~& m# e; s5 y* O% A. M0 D; k$ \ - (setq ss-index 0 ss-length (sslength txt_ss))+ ^. w, ~' E" m) k8 d# w U% J
- (while% }7 T2 d/ A6 t* G/ k
- (< ss-index ss-length)* L7 D/ B5 q% J
- (setq elist (entget (setq ename (ssname txt_ss ss-index)))): L. U1 w+ B; _
- (if (numberp eheight)- w0 Z4 P9 U( @3 ^/ Y
- (setq elist (subst (cons 40 eheight)
$ @2 `4 }* Y' V4 g$ Z, H y3 k7 E - (assoc 40 elist)
4 t' E2 O8 n" ~ - elist. Q# x& e4 t* d+ N- j* ^
- );subst/ T {" |1 D' M
- );setq" r* y0 ^0 b4 ]! Y, V9 X4 C
- );if
1 t9 |' q8 t$ L6 V5 Y) x8 |% f% j w - (if (and estyle ;(not (equal estyle ""))
5 ?/ q& v- Q' f/ }' q - (not (equal estyle (cdr (assoc 7 elist))))
' ^1 k2 E' {$ E( B7 A4 P$ Q - );and* x2 F4 @: y; D- s( u( Q3 M& S
- (progn + l4 S; p* |: I
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt ' ]5 R& H* P* D5 y0 L; E
- ;(if (equal "MTEXT" (cdr (assoc 0 elist))); n h; G l4 c5 r5 B0 y% d
- ; (setq elist (fix_mtext_fonts estyle $ a3 ]0 V7 T4 ~
- ; elist
3 \+ i" |( ]. h& W7 ~ - ; )& n0 `$ G5 k1 }! t! C, s2 v
- ; );setq then/ \$ F( e8 E7 V6 K
- (setq elist (subst (cons 7 estyle)' g9 T, a* {5 D1 e7 w* F
- (assoc 7 elist)- c8 m5 B# L' O! l
- elist- \/ R/ k: ?, B0 y2 {. r
- );subst
& F$ E* D- e2 ]- y - );setq else
0 }, j3 c- }+ t6 Y7 e& A' Q - ;);if 6 G+ [) g) V0 W1 ?$ ^& V7 p
- );progn, ^, I, m6 M L
- );if3 _$ Q2 \1 E! |) x
- (entmod elist)
; c% K3 q' J2 n/ c$ A - (setq ss-index (1+ ss-index))' X3 f2 @" r p6 w% M; \
- );while
5 s3 y& B6 p/ ~ I& @* D# C& r - );progn then
; v# D# P4 g' Y - );if
7 c2 {0 }. L6 Z8 H7 i
$ d2 a- t. ~& j, @3 z4 l4 @ s- (setq cmdact (getvar "cmdactive"))7 `' J- j, D# v0 a
- (command "_.chprop" ss "")2 j F3 e0 _1 K: H
- (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
" q5 N2 Z9 E( h2 \4 x. R - (progn
. u9 j8 L3 Q \& {% E1 Y - (if ecolor
: o; U$ |. x( m1 Y' J - (progn
3 k' u( \1 i$ m: L7 Q# F, X4 p7 f - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))" ^; q" Q/ L M5 B; U0 E
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
# s1 h( a/ q# r0 s - (command "_c" ecolor)
5 S1 ~6 s) e/ W6 d* G' V5 ^! d8 s - );progn then* Q f& L9 _2 |. b- t
- )) V5 Z0 o5 Z1 g
- (if (and lt-idx
# g2 ~8 Q+ p/ P ^% h9 a - (/= eltype ;|MSG0|;"Varies")
, I7 k" L. |' ? d; v - )
H% Q+ H( ~* e& | l5 t7 U5 E - (command "_lt" eltype)7 n5 b( q4 X n8 {! \* A1 h" ?2 }
- )
( Y3 s; y7 q' ] - (if (and lay-idx
" ^7 t! c* D) t2 ?+ J7 C* D - (/= elayer ;|MSG0|;"Varies")$ r- U2 w4 K1 A
- )3 H9 r! v) [4 G
- (command "_la" elayer)$ W- t& e8 a) o# P, T' Z" b( W
- ); p! Z1 E. G0 j' q1 Z h
- (if (and ethickness
. l7 g' Y) l. B) j9 K" \0 W - (/= ethickness "")
, Z0 E- ^, C9 O/ t9 \7 W; \, U - (/= ethickness "Varies")
6 ], b1 a* j6 O. A* {! f - )5 ?7 j& G/ M# R
- (command "_t" ethickness)0 q3 u3 {6 P9 ^6 z$ M5 ?3 p
- )
. Y4 M1 l) F& g" v4 H$ S$ g+ M - (if (and eltscale (/= eltscale ""))8 o9 \5 ?4 S( B3 f) H
- (command "_lts" eltscale)7 [0 p8 i3 B" T/ ]- c
- );if% K! x+ ?) n/ k+ u1 M, _; O
- (command "")
1 s; b6 x# M$ C- m8 ? - )6 G- m4 Y( U) I& y0 ?) i6 ~0 L
- (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
$ y* x U( a8 S; Y# p# Z3 r5 v1 [ - )
+ S& M( t6 q; F - / \/ X) |0 r6 F: V
- );progn then OK was picked in the dialog.
2 k' p1 _1 U+ S5 Q5 P -
x4 c2 ^0 y9 } - ;; Fred GERBER - 25-AUG-94
$ h1 v% [+ S9 M- Z, S6 ^; m5 T8 A - ;; Don't print the "Properties unchanged" message when the user cancels
. u: ~$ b9 L K" Y. Q0 R - ;; the dialog because he knows that already (otherwise he would have# f! O* q) K. R( k: @( `! t
- ;; hit the "OK" button). Display the message only if CHPROP fails for& R# A9 @# ^" m# E, ~
- ;; some reason, because it is not the expected behavior of the command.* ^- v2 T% c4 b5 Y! K
- ;;7 ~( ^' s5 D7 l0 L5 ~
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
+ F8 r" i% g# A - );if
* n% b, \. C/ Y - (princ)5 Z. g: g* T3 s. r& T9 N x' K
- );defun call_chp2
/ U3 }3 I" c( [$ d' s& \. r' k$ r - ;;& J0 p! y2 A( f5 c5 _, T4 K
- ;; Function to set the Color text tile and swab to the current color value.
1 o. |! E3 v; o: R - ;;
* \6 F' y! [9 E* Q - (defun set_col_tile()
7 D0 [) i$ j( j. O# W - (cond
0 e4 L/ s! B0 Y# _ g - ((= ecolor nil)
4 K" t6 Q4 p: `% T+ c& p3 a - (set_tile "t_color" "Varies")0 D9 Y, Q0 q" f2 j0 p# i: A- E
- (col_tile "show_image" 0 nil)3 G& f0 w. g/ a. B- W
- )
; a" g( T# g: s$ H - ((= ecolor 0)
7 J, x$ q9 r( \5 V( c9 F" [/ P. Q" K - (set_tile "t_color" "BYBLOCK")
; D5 K4 `% l- v8 \( S+ m. ] - (col_tile "show_image" 7 nil) ; show BYBLOCK as white. P6 [- D( U! W, R
- )
l* N# O. ?5 d) i+ _3 t - ((= ecolor 1)
' x) p! V7 p5 y% l' F w - (set_tile "t_color" "1 red")
: N! D$ t/ L: M( Z* [ - (col_tile "show_image" 1 nil)/ x/ v9 }) p' i( x3 \* j' I
- )7 R4 Y& N# e/ q
- ((= ecolor 2)8 n1 H0 R! L" i+ t# W" j' G5 d) Y
- (set_tile "t_color" "2 yellow")/ V7 F! c; ?9 A) x0 j3 ]3 J+ V1 P1 X$ ^
- (col_tile "show_image" 2 nil)
# v- L- _7 ~) L" n0 n3 Y& y - )
' F9 Z! g: P; n2 s - ((= ecolor 3)
/ v1 _: s2 S2 A6 ^7 [6 \ - (set_tile "t_color" "3 green")
5 G& s/ n* K7 P! | - (col_tile "show_image" 3 nil)
/ a: y3 v$ |! s4 E! I& s/ n - )
% K- w7 R& s4 L3 f% l/ M' e - ((= ecolor 4)
, @; F3 A/ A9 x q/ d3 q4 t2 b - (set_tile "t_color" "4 cyan")
; j; {+ p; Z: V - (col_tile "show_image" 4 nil)
) ]& Y7 G4 @$ q) h1 v, W - )$ Q% n* F2 \1 U) l' h1 a
- ((= ecolor 5)- i. D* P* Q) v: v/ X
- (set_tile "t_color" "5 blue")
: ?# H% l; p6 Y' e, _" D4 i - (col_tile "show_image" 5 nil)" P3 O8 H7 N- C; n5 q
- ) o/ p% Y. o! J2 o
- ((= ecolor 6)
8 V5 r7 V# X) n( _" d6 e* ? - (set_tile "t_color" "6 magenta")& x( L7 x. ]1 k: k* a- z7 o
- (col_tile "show_image" 6 nil)
l$ `1 S! F5 |7 ^ l3 }8 X1 D* k - )* O; o! J, @# a2 `
- ((= ecolor 7)
+ c( p% I; c" B2 f8 R - (set_tile "t_color" "7 white")
$ h e- y) l- G. H" U1 L - (col_tile "show_image" 7 nil)7 s5 ^% I8 t7 m* M& g# ^4 ~! G
- )7 u8 Y! ]& q* k" O5 B' h
- ;; If the color is "BYLAYER", then set the tile to
( r9 U' e- P' _. c. t4 A - ;; show it's set By layer, but also indicate the
* f' q, X* P) L9 F/ l& ] - ;; color of the layer - i.e. By layer (red)6 p! p0 N8 }/ G( _1 x, {2 N! X
- ((= ecolor 256)
: Q$ v+ v3 I# Y# n9 |1 [- | - (set_tile "t_color" (bylayer_col))$ F, I3 n9 S/ ~$ F" j
- (col_tile "show_image" cn nil)- _& E1 S9 i6 K7 u* ]5 k/ W5 V
- )" T" L$ D; F" l" U
- (T' r0 j1 {2 B h8 G" X; k/ u3 Z
- (set_tile "t_color" (itoa ecolor))
5 C$ L2 `3 V9 I, d: o) n# W - (col_tile "show_image" ecolor nil)
, n) K$ t% }0 ~1 ~( T, d# C: B - )
9 I. Q1 z1 g! i" x) G. b1 ? - )/ L4 v/ g( o3 q' E0 A- s/ F9 c
- ). o) T3 T. g. \2 y9 e
- ;;
5 @0 m1 V) s9 U4 m1 P8 H9 Q N7 P - ;; Function to put up the standard color dialogue.$ D% d1 C0 q5 O1 K
- ;;
0 K5 p, _: c9 D, r6 o - (defun getcolor(/ col_def lay_clr temp_color)% U( v: y, O1 J/ n, C1 J5 a5 q
- ;; col_def is the default color used when rq_color is called. If ecolor
: Q! b& ^4 G& M- w4 B - ;; is nil (varies) then set it to 1, else use the value of ecolor.
/ K8 M+ F$ |% F4 u' {: @ - (if ecolor
/ G, o7 H) H9 q6 k, X - (setq col_def ecolor)
& J" U( a9 ~# F6 j F3 I! J - (setq col_def 1)
6 x6 x) ]" A3 t6 Q - )
: z/ j4 f, t! s; ~, `; ?* z - ; y( f2 I2 p" {+ |% P
- ;; If we're working with a single layer, get its color
3 M* r* ~1 b. u' o) V5 M - ;; for use in the color swatch if the user selects color BYLAYER.
$ g7 Y7 M9 w0 n V - (if (/= elayer ;|MSG0|;"Varies")
: |! s4 F" s4 T$ K2 L" H3 x5 b! W4 X# b - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))2 Z& R: i6 m* _: S1 a/ B
- (setq lay_clr 0)
0 ?" v4 }/ c- s6 R - )$ p6 E" n' o7 M
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
0 x4 B3 Q% u" B( T( W/ h: s - (progn/ x% n2 A; q; c9 G" @; C' h' G: ]4 z# @
- (setq ecolor temp_color)
* C0 M2 d% _) G* }4 j- |" e, h - (set_col_tile)$ z- H) g8 ^7 v7 R7 p
- ecolor
/ C4 f1 i1 \" i! [* \% N( i* b - )/ ~( {" D+ w. d9 l1 i& R9 p' _3 h
- ecolor
) t' h1 v. T# X0 c# Y - )
$ Z. Y. Q2 x( p) q q - )
/ K/ p$ v. u1 S0 s' U% b6 d4 ` - ;;8 O% e1 a/ ]& j8 [& z& w3 U
- ;; This function pops a dialogue box consisting of a list box, image tile,: A& U0 g, t5 b: @8 R9 E! V F9 N
- ;; and edit box to allow the user to select or type a linetype. It returns
3 I% ~- s- L' w* ~$ o' A+ A - ;; the linetype selected.
" }$ C) S% e# }& ^) i - ;;( M9 s9 o# Y, K2 \* t3 e* `
- (defun getltype (/ old-idx ltname)
) g1 m. r4 m" ] - ;; Initialize a dialogue from dialogue file: x* q/ T. |: @7 j
- (if (not (new_dialog "setltype" dcl_id)) (exit))
2 Y2 ?' t) t8 a+ s: {3 G { - (start_list "list_lt")
; ~+ g _9 H7 c - (mapcar 'add_list ltnmlst) ; initialize list box
. D7 Z" L- Y! `9 Z' _# | v - (end_list)
5 z! O' y p# }" F - (setq old-idx lt-idx)! b# l+ m5 \9 Q# l, N
- ;; Show initial ltype in image tile, list box, and edit box
7 e H) [; A) e) [5 r - (if (/= lt-idx nil)
# K3 Y1 B: y* v7 |. h - (ltlist_act (itoa lt-idx))
* P! [8 p; a& P" [. p1 Z - (progn! O" l ]6 D% v* S
- (set_tile "edit_lt" "")/ C+ a6 d. f4 t+ z
- (col_tile "show_image" 0 nil)% F" b4 g4 k) y j# q, @; R
- );progn else' e" t, X2 i% o- h
- );if( ?* @' @. p4 @; t5 a
- (action_tile "list_lt" "(ltlist_act $value)")
+ }4 ?- D, F8 A% {* H% \ - (action_tile "edit_lt" "(ltedit_act)"). H' V7 B' c. G! u8 @( |
- (action_tile "accept" "(test-ok)")1 a, G8 N5 A7 R3 z* ~: W0 }% T4 R
- (action_tile "cancel" "(reset-lt)")3 m8 l( z# B L# V! M' b7 \# ~
- (if (= (start_dialog) 1) ; User pressed OK
$ L) f6 z1 M6 A* |6 [9 y. R9 I, ] - (cond
$ d! t6 p. x# d J' }) G# z. i - ((or (= lt-idx nil)
/ q' r$ y6 D, w2 J - (= lt-idx (1- (length ltnmlst)))8 m( i! Y2 t3 ?. P0 l9 t/ Z6 y
- );or' u2 Y) f% v7 J& p8 P
- (set_tile "t_ltype" "Varies")
, c! X$ W4 b+ ` U8 a9 X% Y$ a - ;|MSG0|;"Varies"' L7 \7 @4 P% A+ ^, Q# h
- )
& T9 T+ P0 \) t7 S i! l4 ? - ((= lt-idx 0): N6 m. L' p6 Q
- (set_tile "t_ltype" (bylayer_lt)), U( N) I& b* a1 @
- ;|MSG0|;"BYLAYER"
0 j) C4 R" t. N - )
, y8 L. H7 t- V" d& a+ a0 S; T# C - ((= lt-idx 1)
. g& ^& w- B6 q7 l - (set_tile "t_ltype" "BYBLOCK"): Z+ w* r) Z, Z+ a: `! r1 |2 d
- ;|MSG0|;"BYBLOCK"
8 p3 J4 r* l" @. \5 ] - )
# \) m% q0 {) b - (T8 Y) K% x( b( r
- (set_tile "t_ltype" ltname)
: \8 l* n2 p1 }# O - ltname6 Z% p1 c R1 d9 m
- )
$ L. C; W0 R0 s! m" g - );cond then
4 K( W" j; Y. m8 k1 Q - eltype* m6 t" J7 F2 k* w
- );if! m. q, j/ J( J' d; j) r
- );defun4 `, d0 u7 f6 h% X5 T" v- h
- ;;
% m$ Y+ Z/ k& h$ N9 g - ;; Edit box entries end up here9 A O6 M9 B+ k y/ N
- ;; [& I' z+ o" n! j1 C
- (defun ltedit_act ( / flag)
! K! H: d" s* S - ;; If linetype name,is valid, then clear error string,0 c3 _' l8 Q0 w2 K$ \
- ;; call ltlist_act function, and change focus to list box.0 M" Z x) j! Q; i) I1 V
- ;; Else print error message.
: s% N/ u$ A' j# u2 M4 E -
T" }! [& J& U" N - (setq ltvalue (xstrcase (get_tile "edit_lt")))! }# b" ?! t, O( u) {& `; z6 y% g
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")3 }* \2 h* o- X N+ p
- (= ltvalue "BY LAYER")9 C* O1 i. y/ A9 h- k. p
- )
X& p& F/ u5 N. Y9 w0 I; f+ I. _ - (setq ltvalue "BYLAYER")
+ U! B; z( T9 f7 [6 L3 ] - )
3 s+ |/ k; t& T# }6 K! I6 R8 @4 }" i - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
' F$ c/ [7 z5 }9 W, K - (= ltvalue "BY BLOCK")
M/ L# M1 S l$ q - )
9 |* I6 `" w7 t! A" a - (setq ltvalue "BYBLOCK")
u: r0 I9 z) ~% {: F) ]1 x& ] - )
: e6 K& k# r5 N8 i2 Y. Z; Q - (if (setq lt-idx (getindex ltvalue ltnmlst))
3 \, P8 ~' I& a, B _8 j - (progn$ ?$ Z3 S0 u- n6 k+ ^3 U
- (set_tile "error" "")* W% b( U% C* q+ G1 ~$ ]
- (ltlist_act (itoa lt-idx))
9 M7 p9 o2 B) M$ d* I# { - ;(mode_tile "list_lt" 2)6 |3 D( W* r; d* c+ r
- );progn then; E L9 G- v2 }4 k' ?; i: q7 F
- (progn
+ ]$ S' j$ P, s, T" \4 m0 C - (if (/= ltvalue "")
+ P7 {/ p1 ]; {5 B* U: A - (progn
, u/ S: h+ v, L7 u - (set_tile "error" "Invalid linetype.")
! C- |* l$ v3 Z& K3 _9 { - (setq flag T)' L! p h# H/ C; ~, L
- );progn
6 J2 U7 ^! c) n/ Z ` - )
1 W- D$ e1 n/ B* I e5 [4 Y) c, @ - (setq lt-idx old-idx)
$ u( g9 R3 E9 q4 W5 O - );progn else$ C. m& q K6 h4 f) u3 B
- );if6 x. k3 O0 I" V# h2 } G- k9 U
- (if (and (not flag) ;added so a return will take you out of the dialog.
+ n' U% e& e) T- K* H - (= $reason 1)& Z3 v* w" b, Y1 `3 T0 X
- );and
1 J+ X4 E. l1 x4 M3 Q6 P$ r - (done_dialog 1)
/ G5 C4 X+ @( f& A3 K - );if
( I3 D1 }. A, \1 X6 Z: M - );defun ltedit_act
. ~" Y2 @6 H5 o' B! I - ;;
0 v. Q+ W6 a Y* j' | - ;; List selections end up here
/ s! M, ]$ F% ~" @# g: {! q - ;;
8 v/ C1 q: T2 q! z, G5 W& q8 u - (defun ltlist_act (index / dashdata)+ n" ]% q& w* a" y$ R/ e# {7 _' ^
- ;; Update the list box, edit box, and color tile, e" P& \+ H( P1 M2 F/ x
- (set_tile "error" "")
: J0 C* U' g* V8 _ - (setq lt-idx (atoi index))
. o% c4 a1 _6 M - (setq ltname (nth lt-idx ltnmlst))9 }# ~! o G% ]% K- v( a
- (setq dashdata (nth lt-idx mdashlist))
0 K! c: K5 a* L) s* w - (col_tile "show_image" 0 dashdata)
* f& _ y6 c$ i" F* [- Y - (set_tile "list_lt" (itoa lt-idx)). U% p. @3 a0 B# S) |' W3 k! w$ B9 r
- (set_tile "edit_lt" ltname)
/ {9 W" Q4 D7 d/ N2 [' ] - )+ ?! S% L. }$ \3 Y5 G6 m6 e' y! E
- ;;
+ q; |. L2 I+ q - ;; Reset to original linetype when cancel it selected
, D: {# ~* _. F1 F. G. h - ;;7 F6 w( v2 w3 B/ w! N
- (defun reset-lt ()
5 |/ x1 {. e/ [; y5 r3 n9 v3 j" D - (setq lt-idx old-idx)
8 c7 z; w" a! n9 W9 T/ T - (done_dialog 0)
# H9 `7 I! A; q5 R/ S8 ? - )
" K$ d9 ^( k; b) m0 r+ H - ;;9 K7 h- `9 y3 d0 u' L" U% m ~7 D
- ;; This function pops a dialogue box consisting of a list box and edit box to4 O# O% M6 J) [5 k: }" Q( \
- ;; allow the user to select or type a layer name. It returns the layer name. Q/ T' T7 `: p- N) {3 B, ^
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the* M0 v2 c2 x4 y+ y2 l w% ]6 |
- ;; drawing.
9 y1 T3 r, d- F - ;;
8 S- W- R' e& ~% H7 [. z+ ~' K - (defun getlayer (/ old-idx layname on off frozth linetype colname)
& o* `/ I/ S+ T - ;; Create layer list the first time the layer
" ^% b7 k r/ m6 O2 w - ;; dialogue is called.5 D1 {" c% ~; S4 q: \; X" T, a/ j
- (if (not lay-idx)" r5 z' v* }8 b
- (progn2 k q2 r+ o1 p+ Q; {
- (makelaylists) ; layer list - laynmlst
/ X$ ?: z1 `; O3 k @( l# O5 G - ;rk
' _0 N4 w6 E& g0 _ - (setq lay-idx (getindex elayer laynmlst))
5 Q3 ?9 P/ z, V0 R5 c) _4 q$ F - );progn: u) Y; I* ?7 q/ f& B8 Y
- );if& d1 P4 H4 k! c8 M6 k0 ?
- 4 g; F3 |7 N3 n( y
- ;; Load a dialogue from dialogue file- I/ X% N& M$ P1 N. S4 C& L, A3 s
- (if (not (new_dialog "setlayer" dcl_id)) (exit))1 ^9 o" m& X7 T, W8 {2 ^
- (start_list "list_lay")( j6 k2 w; P) K! J
- (mapcar 'add_list longlist) ; initialize list box
. U( G) B# [6 H - (end_list), {$ u" b' d4 }6 B Y' H7 `
- ;; Display current layer, show initial layer name in edit! l z( Y5 Z3 M; {+ |
- ;; box, and highlight list box.
8 Q1 T* w) [! S% G - (setq old-idx lay-idx)
+ R2 G z5 a' B i5 l - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
; m2 R$ n5 B: \+ o; s. N - (set_tile "cur_layer" (getvar "clayer"))7 x' N- }1 S" T7 ]
- (action_tile "list_lay" "(laylist_act $value)")7 y$ ?8 e: ^6 N# y5 t
- (action_tile "edit_lay" "(layedit_act)")
) o0 K$ x+ ?) \4 w6 d8 h! \4 K - (action_tile "accept" "(test-ok)")
K8 `6 s0 v6 g - (action_tile "cancel" "(reset-lay)")
% e5 }2 g/ L3 h/ x - (if (= (start_dialog) 1) ; User pressed OK4 U- }/ I4 n7 r0 M3 e, |
- (progn' b# M% w$ P. A/ T' S
- (if (or (= lay-idx nil)3 G; p6 Q+ c) F+ l/ d8 e
- (= lay-idx (1- (length laynmlst)))
& A- O% G7 _7 i9 J - );or- s3 Y7 c9 t( Y) c! [! m+ H
- (progn1 S( k8 d& d0 D* a
- (setq lay-idx nil) 1 o! y9 v4 R/ l
- (setq layname ;|MSG0|;"VARIES")
+ N& @8 b6 }( V& M - (set_tile "t_layer" "Varies")7 ~1 N+ a9 V2 M% h1 X0 h9 g& j$ B$ \
- (setq layname "")/ k" H# O8 b+ d4 U
- );progn7 z# L) Z9 f/ d# B
- (set_tile "t_layer" layname); E, h6 V" V' r$ N/ p% ?: `& o
- );if8 S' [6 w" [6 z7 s4 \2 Y+ k: H" ?0 |
- ; If layer or ltype equals bylayer reset their tiles
$ Z8 g* {. T0 v$ o2 m [ - (if (= lt-idx 0)
4 w4 Q d% @3 _9 |! R4 L - (set_tile "t_ltype" (bylayer_lt))
1 w+ W9 b" r% K6 ^. \# u( K - );if2 Z* U: F: g1 `9 s
- (if (= ecolor 256), |# A; y0 V: L; F" K
- (progn
/ `/ Y- z& \" q1 q2 X/ u2 l; e$ S - (set_tile "t_color" (bylayer_col))
4 G0 w5 _3 [$ i% @$ h* I% s0 f, i - (col_tile "show_image" cn nil)( b, j( K3 |0 f( c: Z1 y6 q
- )
* `4 @( J% a. X" z: Q! ? - );if
5 }+ H R" n. Y/ l6 ]$ t9 G3 M - layname
. @0 u6 a0 K4 r% P - );progn
: o5 g, u& s, A5 i: S, M- R; | - elayer9 S i" J1 T$ y% v! r$ E! M
- );if
. G; N9 G% L- q1 E0 Z - )0 c: O( c9 C& e' B9 y% n
- ;;* W8 G; i4 o( a
- ;; Edit box selections end up here
0 \* ^, q( }, ^( m - ;;
/ T* | j: A% t. i$ g4 ^. j" I, x) b - (defun layedit_act()
% \5 P# u, i5 z: K0 j - ;; Convert layer entry to upper case. If layer name is8 F% g0 l; N' ~" }
- ;; valid, clear error string, call (laylist_act) function,
) [. w; U/ e2 ^ - ;; and change focus to list box. Else print error message., h* ^/ E6 X. Q% d
- (setq layvalue (xstrcase (get_tile "edit_lay")))
4 m+ D( H& O+ a/ ^0 `$ l! e7 v+ F - (if (setq lay-idx (getindex layvalue laynmlst))- x7 Z: H Q/ i6 j
- (progn
3 m% z3 h0 g2 ^ - (set_tile "error" "")
8 ?& O* M- d9 Q: P+ A - (laylist_act (itoa lay-idx))
) {+ K3 U( f* f7 Q. j5 R" T% a7 I0 [/ c - )2 M/ w' d* o4 G5 i
- (progn, ]; j( N3 M" f1 _
- (set_tile "error" "Invalid layer name."): R8 H! Q1 Z$ h( E/ V
- (mode_tile "edit_lay" 2)
0 s2 V( E: ?3 F8 X: p* P R - (setq lay-idx old-idx)8 B3 u. d/ y3 K' v% e& }3 R
- )# L5 {6 E, N- \5 p& }' Q
- );if
1 }: e& n8 H. P: i; q# g - );defun- l4 V9 {/ w, M+ R
- ;;
$ l6 U% r' a$ e3 t) Z - ;; List entry selections end up here4 S4 m" W( P; P/ V# Z3 M' E$ m) C" s
- ;;" n3 I" I; n3 S' |! Z2 V+ o# x/ ?
- (defun laylist_act (index / layinfo color dashdata)
; f C; }" s9 ?. i4 r( S - ;; Update the list box, edit box, and color tile
+ `: M" g q. Z7 y, h - (set_tile "error" "")
' t! @2 i/ D0 e0 R' I - (setq lay-idx (atoi index))
& R: F+ l# L7 {' i - (if (not (equal lay-idx (1- (length laynmlst))))5 @# P8 J- U8 j
- (progn
( R8 g: V+ n3 Y5 E8 J* o - (setq layname (nth lay-idx laynmlst))
6 t/ ^7 K# _& d1 I% x - (setq layinfo (tblsearch "layer" layname))4 o# W2 K/ e5 g9 k: w
- (setq color (cdr (assoc 62 layinfo)))
- g- b" |1 c! l$ C - (setq color (abs color))1 C7 h a5 T$ {" y
- (setq colname (colorname color))- d* R- ^5 e+ z L% ^) k
- (set_tile "list_lay" (itoa lay-idx))$ R: r( d1 G$ v4 w# P
- (set_tile "edit_lay" layname)( k4 g& z9 s# V7 U/ J
- ;(mode_tile "list_lay" 2)4 B: U7 ^. Y* I$ a+ J: ]6 B: J" ^
- );progn then 4 ^* G0 ]9 ^. x% `* H: N
- (set_tile "edit_lay" "") / W9 I5 k ]% B$ I
- );if
% o/ T& D4 w, V4 [ H - );defun laylist_act
! V! e3 T+ s5 r, u4 u- }1 S1 _ - ;;
' Z( M' q4 b5 z( j - ;; Reset to original layer when cancel is selected3 t* s7 I1 e9 h" \) l, V0 v Q- p
- ;;
7 B6 t! h; ~( w* @6 t# O - (defun reset-lay ()
5 s% p. v! H. N* P% [ - (setq lay-idx old-idx) n( M; z0 l ^0 H& W5 A k
- (done_dialog 0)
5 L B3 F0 g" M; ^ - )- W/ A4 m8 u. j( K. d
- : ]8 r I& f! B
- ;; Checks validity of linetype scale from edit box. It checks to
+ y, i) h' @2 D- ^5 }/ M - ;; see if the value equals "Varies".
2 t1 b% s ?3 ~1 q - & k0 ?6 U6 n8 V* j1 L& k- [2 S1 z
- (defun getscale (value / rval): ~# ]# F% v$ Q
- (setq value (strcase value)* \' b- ]$ X6 c8 B* l) ]) {' \
- rval (distof value) }1 X- |% }: b; h: ^
- );setq
( e" h% B9 e8 v$ Z' t: t& o _2 c - (if (or (= value "")
( [' K7 z7 p9 |. S5 P- K - (> rval 0.0)$ o' L+ @7 O" y- N+ m
- )2 V- q$ X* o8 ?) }0 H+ S
- (progn" p6 C( Q# e8 }* E9 j
- (set_tile "error" "")
9 B/ t p0 L" z2 ^7 a+ H) N, Y - (if (= value "")+ H2 ~( v2 Y) u: k, ~
- (progn3 d' U9 ^, @! L3 M- b" t
- (set_tile "eb_ltscale" "")# U1 J2 I( f T0 P3 Y
- (setq eltscale nil)
" X, x, ^8 w" C v3 Z) ~+ F# S - );progn then
6 [' E& V* Z" U5 F - (progn+ ~6 A$ \& V" O! o4 ?
- (setq eltscale (distof value))
8 c% y- ?/ R v; g2 V! { - (set_tile "eb_ltscale" (ai_rtos eltscale))/ N+ Y* w- Y2 ~" ]( j& y% N
- eltscale
1 U/ S- k. a Z2 s - );progn else' y6 x, Y% ~; G" H& x8 z
- );if; W* H: P0 C' t$ G1 {2 V1 j0 j- Z
- );progn
Z7 L& }( h" t9 ^( R - (progn
, j4 I, v' p# @( c - (set_tile "error" "Invalid ltscale."); \2 Y* ^. C% B9 V" ]+ N
- nil
% P4 }3 z9 d# W0 G$ @, _1 @ - );progn else
( Y4 e5 g+ S+ N2 b1 P/ X - );if3 i& n5 ~9 G" ^+ {1 X: W
- );defun+ |" P2 n2 M( a5 M4 w& ^5 l
- ;;8 R' g, N3 [. D& y( t# a; ~
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a0 j' p' |% b. |# l( i+ Q; a0 E, p
- ;; string can't be converted to a real, this routine checks if the first
1 r6 ?8 R/ c/ P" E0 Z' Z% e; | - ;; character is "0". It also checks to see if the value equals "Varies".
4 G% N/ l9 }7 M* g% x; y3 w - ;;5 e% Z, u; z6 G$ F: y( h
- (defun getthickness (value)5 a/ N$ F( }& H! e$ e" u
- (setq value (strcase value))0 D" ?3 \5 u- W- }6 n
- (if (or (= value "")% l6 G. _' e8 j. f1 X
- (distof value)! Z& y7 y2 i6 o; Q8 c+ G2 v0 }* c. X
- );or1 l( c( s" u8 G* o
- (progn4 }, a3 p( v$ R5 I% ?) z" e) x
- (set_tile "error" "")
1 m' A, Y/ C9 X3 C9 U6 O6 x2 y+ [ - (if (= value "")
9 D3 g& Z( M5 k. P( Q3 r - (progn
1 }8 ], ~ B0 I( \9 \6 Z - (set_tile "eb_thickness" "")2 ~6 `6 I+ D Y& r6 A
- (setq ethickness nil)' ?1 a9 H' Q$ |3 @$ {
- );progn. o1 e( t" y. i! e
- (progn
# ~* z( p% X" v$ [! f+ Q - (setq ethickness (distof value))
7 a( |- v3 T2 l - (set_tile "eb_thickness" (ai_rtos ethickness))! Y8 C) T0 Z/ H9 c, y
- ethickness
( |5 n+ H" _5 ? - );progn* L5 p4 L5 ^: b; K. X( o
- );if
7 ?* t: c& R* o7 p$ G/ q! W - );progn
% |' W( P2 x1 k - (progn
/ n, r, V/ H. B1 d - (set_tile "error" "Invalid thickness.")
' u v: {" k1 v" D- m - nil5 ~; [0 U7 O/ _$ S, C
- );progn
4 g- r# O% a0 k; A# M2 ~$ c - );if
8 r- I* q. q; Q: j4 E- A - );defun
x/ F1 Q! f3 K/ N! q7 h - ;;: }9 x- ]4 ]( t' i& Z
- ;; Checks validity of polyline elevation from edit box.
$ G# Z% o% I K& ~0 Q0 Z - ;;; e* r0 p% b' P8 \
- (defun getelevation (value)
+ j9 N4 ~) b; W; l2 w - (setq value (strcase value))( e' j8 y1 W O3 @- E# @
- (if (or (= value ""); {( V& x# u9 Z
- (distof value)
' m+ J7 V4 |3 b" v M+ |, h/ Q) Q* I# Y - )
$ O$ h. Q/ Z% f - (progn
$ w3 L4 v6 j% X# r. R - (set_tile "error" ""), V3 n, K! g6 q
- (if (= value ""); e4 z+ d8 T4 l$ {& E
- (progn. a) z1 t% t# y* n1 J
- (set_tile "poly_elev" "")
3 ~& u5 x0 m; t5 {) W5 j4 E. ~ - (setq eelevation nil)
* _. u! m9 d- ~) n5 R+ S8 E - );progn
( C# d/ x: Y; c+ D% r+ g4 B" n( ?. O - (progn5 v% m7 ]: B) E# T
- (setq eelevation (distof value))
$ v5 ]2 P. }, Z1 S2 k% `& i9 E - (set_tile "poly_elev" (ai_rtos eelevation)). f, f7 t1 [1 w- I5 [- O& ~* k
- eelevation
% ] T. l/ G, {; b. \# z( j' N - );progn
0 W( a/ s6 _* o; W, b# b - );if
3 }3 C4 J* |: I) C - );progn8 M( \5 V; w2 Z( Z
- (progn( R/ i( h' o3 P4 n- z! S
- (set_tile "error" "Invalid elevation.")
# o( I! i1 u2 f( y+ z. t - nil
$ ]6 R7 Y& ~+ J+ y" F7 x5 ~! `+ b& i - );progn2 U* a9 v( r: { v: V7 y
- );if# |/ [. G1 _) \6 U) r1 |
- );defun
! r2 O) }: U' p" G! { - ;;3 k2 W& e: M6 R- C& A
- ;; Checks validity of polyline width from edit box.
/ b8 }9 q2 Z) i2 F9 { - ;;# p6 q1 ?% r0 h9 x4 m
- (defun getwidth (value / rval)- H/ }& e, y2 J; b- k3 J; c) V
- (setq value (strcase value)+ K5 C' m6 F6 o6 F
- rval (distof value)
2 k0 K, B T0 ^; M c - )
' I4 w! y) L% `' M, r - (if (or (= value "")
9 z: t' r9 n' A, f( _. s2 w - (>= rval 0.0), V( R) ?% F9 g ^( t9 P# Z7 [7 |
- )
) w z* W# s& F6 C0 c - (progn
2 y/ ~2 ~. F! c) f - (set_tile "error" "")
8 ]* \# o" Q5 v& b - (if (= value "")
" H4 m3 D. A( M9 y) J1 U$ {" m Z - (progn) I8 t3 l" N& X& A
- (set_tile "poly_wid" "")( b' f" o( {& z/ ~
- (setq ewidth nil)3 ?* ^2 b i8 Z& L; J
- );progn7 f7 u% K; a% m$ l
- (progn* g2 u5 P9 T7 b# w% I9 U" q/ [
- (setq ewidth (distof value))7 U3 M( V+ x3 X" s+ Q6 b
- (set_tile "poly_wid" (ai_rtos ewidth))5 \4 O. `; O- O8 P( d* U, S
- ;width' {5 j! t. l- a7 |. x* D
- );progn M( @. y+ m& s5 ?6 j+ H9 I& E
- );if
; x6 }- L0 J- Y! R( t/ S9 j( a - );progn
0 i- A. j4 E( P - (progn* e4 E, H8 m- \- u3 K }- D
- (set_tile "error" "Invalid width.")
0 h0 n$ g% l& K6 x - ;(setq ewidth nil)
; w- i" [' W" N2 m) G - nil
1 R9 _( D4 l( k: P; y - );progn
0 }6 `5 q9 h! d' s( P - );if
1 q# x3 ] S) E7 P1 x1 T - );defun$ ?! H M3 k" J/ v
- ;;/ b0 R4 q2 o/ F3 S
- ;; Checks validity of text height from edit box.
Z: e& X# a. R( n+ N. { - ;;
/ v0 J3 `- m" X% I! J - (defun getheight (value / rval)
/ ]3 j8 e# d: K3 J - (setq value (strcase value)9 R, d% x, B% r" a7 C
- rval (distof value): E6 R7 [; p, \
- )( C8 P/ M$ p- A$ U
- (if (or (= value "")
5 r/ Z8 t* Y0 y3 A* A8 Y! V - (> rval 0.0) [3 y' i1 @$ T4 }
- )+ p% O% n8 O2 x% ~* V8 E1 Q/ L# O
- (progn: b6 ^! `* C4 W/ F
- (set_tile "error" "")
$ u+ {) X% B( {# {) n - (if (= value "")
! m% R `/ o6 m3 P( e2 ]9 n" S - (progn
( U6 G4 m1 V+ ]9 Y* B - (set_tile "text_hgt" "")- T$ Q5 L2 m6 }! e% p
- (setq eheight nil)
7 Q5 C/ ^. a+ F; i3 @& K% b - );progn; L( n \& q& {+ a, u- j- M
- (progn
$ h. y' Q; S" Q$ ~, D# P - (setq eheight (distof value))
- }; x4 ^$ g' S( j' A3 f S - (set_tile "text_hgt" (ai_rtos eheight))) j& M" R3 q o1 z4 j5 C2 k" {
- eheight
4 N$ J* F V) E* R - );progn& K" N) s8 a" e* U) b
- );if3 h$ A# h( R9 T7 a1 `, O
- );progn
: V P- U# }& v! I# l/ a" d - (progn
" ]; k1 ?" o2 u) J. |. M - (set_tile "error" "Invalid height.")
" [. s0 P5 y$ R/ j1 P7 L% D6 Q - nil- N* V0 y+ p0 ~2 V
- );progn/ Y A3 y$ G1 [+ N0 e; k/ B1 y
- );if( q' L, o4 d; @0 y9 \9 R
- );defun( @% d" d; G; v# c4 L+ n
- 5 n Y$ X" c0 A# d) ~1 t
- (defun getstyle (value lst / rval)( d5 [& u$ e# K# Q. \
- ;(setq value (strcase value))2 ~5 z' a' b1 K4 S4 E1 h. j: e% E
- (set_tile "error" "")" |0 M0 a3 Q# _. b) m) O! ?* P
- (setq estyle (nth (atoi value) lst))( u' N2 B' l- ~: |4 a' I. Y N p
- (if (equal estyle "")
* h2 Y& V# t* b t1 ]" u; p! L - (setq estyle nil)) P& }8 j/ P& D% E- e- B& S( t4 J
- );if" _- I6 ]2 H; @, a& e
-
! g) R7 `; c0 G: X) _- t. v - );defun getstyle
' q6 ]8 X* ?( }4 _ - ; g' n& V; y( s/ {
- ;;
; F; C! k$ A% J( X" u/ T - ;; This function make a list called laynmlst which consists of all the layer
+ q& p6 K7 w+ e - ;; names in the drawing. It also creates a list called longlist which/ [# A" |4 d" J$ }! h
- ;; consists of strings which contain the layer name, color, linetype, etc.
6 w7 q" Z0 n' d& |2 h3 G - ;; Longlist is later mapped into the layer listbox. Both are ordered the' Y l8 t# c; S1 M
- ;; same." [, @( g7 ^ _! z& p! o
- ;;
( R+ A) Y3 c5 s1 F# X. i# d! ? - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname: v' V1 {5 H+ G s5 ^
- xdlist vpldata sortlist name templist bit-70
' j/ t! a, _6 b) R1 m - layer_number8 ?% q* z) _# F5 k2 o
- )
& z; x; i7 g3 U' F( ? - (if (= (setq tilemode (getvar "tilemode")) 0)) M/ w. X# Z; `+ [% L% V. M5 l+ b4 _+ F
- (progn6 Y) f% v+ h! F6 u( J5 j
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")/ d; Y0 z# u8 f/ I4 u: w
- (cons 69 (getvar "CVPORT"))
* h* J+ m2 h; Z/ L# f - )! R" |, m/ W0 c
- )
0 [" C! w# |, P1 g) l3 J - )
& l6 F& w8 y+ Y3 B9 h - (setq cvpname (ssname ss 0))/ _- a5 M' o9 G6 u8 e9 E. z1 Z
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
: i4 Q+ M1 L+ D4 M) } j6 w* w4 p - (setq vpldata (cdadr xdlist))9 }7 X) Q) _. N3 a6 \
- )
3 b1 L/ d- f( S3 |9 S9 r# Y - )
/ w' P, s# F* c- B/ ?8 G4 n - (setq sortlist nil)- b/ c; n) o7 w+ A
- (setq templist (tblnext "LAYER" T))# C: D; ]4 u, c( A' Q% ?
- (setq layer_number 1)
9 m. ]2 K! f9 e; n! x1 x U$ s - (while templist5 \( g+ d' G9 ] o) o6 c
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))$ @1 G/ i5 w1 Q% N f9 H/ E
- (progn - Y/ J9 I4 o. J8 x0 e
- (setq name (cdr (assoc 2 templist)))( t! U: v1 z9 C; ]7 N, E, o4 S
- (setq sortlist (cons name sortlist))/ \1 s7 O4 Y% k$ Y' K+ b
- ;; Not dead message...
0 e, @3 T8 A) o) v - (setq layer_number (1+ layer_number))
- z: E1 T/ ?! j4 ~; z - );progn
% H8 C, b; p7 |# T& X - );if
1 x1 E9 w b, R! o) n - (setq templist (tblnext "LAYER"))
- r% {- h) q9 _ - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))( `% H* l- u. o- K" u5 [/ `( |# B+ @
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))8 h! z9 r8 B4 v& q/ A, t" Y' U' b9 V
- );if
" z8 _" A" o& k- P - ); S7 y+ P- `" D3 ?/ R: L
- (set_tile "error" "")
$ v4 x& J$ t1 g, T# ]; ^# g- } - (if (>= (getvar "maxsort") (length sortlist))* }8 Y E6 V9 o5 s$ ~) r6 D# z
- (progn; @/ m; f5 d) }4 M7 O
- (if (> layer_number 50)
& X- K) F1 c" Q" z3 w G - (set_tile "error" "Sorting...")# h8 V5 _. L$ H% J
- )) ~& C8 W j \. N
- (setq sortlist (acad_strlsort sortlist))
; F, z. m! ]0 |1 q8 e - )
1 I3 f8 Y; _ o S& u5 ]- r/ p - (setq sortlist (reverse sortlist))
4 W6 ?% E" r5 ~' r4 i9 j+ I# }# ` k - )3 H( P, N/ e9 L+ v" i" Y: D1 | o
- (set_tile "error" "")! w5 @6 y1 `5 l+ C5 t1 c* c4 [
- (setq laynmlst sortlist)
1 s: `' z% B' G- D4 x$ @ d - ;rk ( u+ J, r% g2 o- n
- (setq laynmlst (append laynmlst (list "")))
) ?# {( o- C: Q- B
! _. e- C4 }1 E/ i7 I& \- (setq longlist nil)( Y; ~6 z. A% {$ O
- (setq layname (car sortlist)) r( l! P: s, v
- (setq layer_number 1)
# q$ N6 K1 P E3 h. g - (while layname; ?+ c/ W7 t) m1 W3 U' K' i
- (if (= (/ layer_number 50.0) 7 Z: g! L3 w Z" R
- (fix (/ layer_number 50.0))
7 [( ]7 l V6 x - ): t! u2 ?* u3 V
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))$ b; V' b3 O8 Z8 M+ t
- );if
6 P' _& m! q$ n: ~- a - (setq layer_number (1+ layer_number))
/ Y+ C" Z: Q0 t, p$ | - (setq laylist (tblsearch "LAYER" layname))
r6 }8 a7 s1 Y2 U1 N6 S - (setq color (cdr (assoc 62 laylist))) m* O% J8 F. ]6 g8 z- E( r
- (if (minusp color): G% s* c; D3 C( {5 O
- (setq onoff ".")
M* V# l9 R+ s - (setq onoff "On")
; z4 x9 J: o% _& i/ S) y* p - )( }' V7 w0 F& _& V/ R: ~
- (setq color (abs color))
& R% `$ B8 Y8 o k) l6 L* H$ o/ Y - (setq colname (colorname color))
+ W, A. I, x' R& p - (setq bit-70 (cdr (assoc 70 laylist)))
( w4 h! _( Y8 l( F) B3 r: b - (if (= (logand bit-70 1) 1)8 n9 }0 S& k3 f4 q
- (setq frozth "F" fchk laylist)& O4 Q9 D1 f2 U' F. P0 X+ m
- (setq frozth ".")3 F5 q' g$ D5 F7 o
- )# q5 x! ]& Z! I
- (if (= (logand bit-70 2) 2)
j+ s$ i# i3 e2 { - (setq vpn "N")
6 z8 o6 x/ C3 a6 x - (setq vpn ".")
' @# H! m1 P* V K% W1 a - )$ Q3 h1 {9 X( G/ d8 d/ e2 I8 b. R
- (if (= (logand bit-70 4) 4)' _6 j. K& Y: B$ D
- (setq lock "L")
5 K! q6 M$ p3 W! ~7 n% m @( b - (setq lock ".") x2 C* d- Q1 [, X
- )" u& x8 Q% U, f7 n* L( c$ q
- (setq linetype (cdr (assoc 6 laylist)))
) C C' G% l: P: R. T+ I - (setq layname (substr layname 1 31))- q! v# D: J) [* ?& R5 B L
- (if (= tilemode 0)5 a( @' Q8 @8 h6 p: j" V) r V7 l
- (progn" ]% A/ ?) w, U5 z! X; }# `3 F
- (if (member (cons 1003 layname) vpldata)
! r- b9 I+ q K( [; i - (setq vpf "C")2 c9 e$ ~* ~4 r2 F
- (setq vpf ".")% o2 F+ s* z ?) I
- )
- g B7 ]' C! h% r F - )( F( g; \8 Q/ E) g6 x+ t
- (setq vpf ".")
( I1 O% l% x- ~9 ^( @# C - ); l, K9 @2 c* t# h& L3 r) P) c
- (setq ltabstr (strcat layname "\t"8 E* h$ D6 H/ L$ y4 T
- onoff "\t"' ?2 F7 c" x3 Z& Z
- frozth "\t"6 q8 ?) a0 k: z. ]1 {. F0 ~- T
- lock "\t"8 L) b, {1 b+ K" l- N1 ?4 y$ B
- vpf "\t"
8 F2 v: l, F5 E, o! ^$ s - vpn "\t"
( C8 g U# }: G4 p2 k K - colname "\t"
) E4 u! V3 k# k( P3 W! H/ J - linetype
5 Q9 @! ?) u- C5 g6 `* }8 q: R$ E! Y - )
F3 {7 W8 v6 m6 p3 H7 G# d - )
2 ]& P8 w6 @$ N( N - (setq longlist (append longlist (list ltabstr)))) \& y: Q: ~/ l# A' x
- (setq sortlist (cdr sortlist))
7 Z) B& N0 ^+ Z7 ~0 d) j. { - (setq layname (car sortlist))
7 I% N# W3 G1 w- U/ O0 B7 e/ } - );while
+ K( c4 s3 U: K/ f9 p - (setq longlist (append longlist (list "")))
$ Q: i- v0 s h, k" ~ - (set_tile "error" "")/ [# Q! I6 M; @0 C
- )8 p( K$ N3 e1 E! o1 P
- ;;* u4 k9 L5 u' f; t( z% J- b7 f* j
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
6 H2 G: G) u. c: Y& A - ;; linetype names read from the symbol table. Mdashlist is list consisting
: a d6 o* L8 D2 Z3 \! _. V - ;; of lists which define the linetype pattern - numbers that indicate dots,
0 Q* ]- H( [' F! Y, O4 K6 H - ;; dashes, and spaces taken from group code 49. The list corresponds to the
[, |( X$ D3 n% ? - ;; order of names in ltnmlst.
$ P) e0 N k/ }: e0 ]. t - ;;
$ S( g# M: F+ t" h - (defun makeltlists (/ ltlist ltname)
$ I# ~! d s4 Q - (setq mdashlist nil): L1 D4 u9 I7 T' V1 k6 c
- (setq ltlist (tblnext "LTYPE" T))
1 |5 h! V# R9 X4 u - (setq ltname (cdr (assoc 2 ltlist)))2 h1 ~6 ~& n& J5 |7 V9 ?
- (setq ltnmlst (list ltname))% Y B/ P) @! Y$ {5 T* x. o, Q5 ~
- (while (setq ltlist (tblnext "LTYPE"))
6 [6 [* z* u6 G- [ V - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
0 h, t1 g. r, }$ g - (progn
" {9 b0 Z" l8 I% Y: ~; h+ a( P - (setq ltname (cdr (assoc 2 ltlist)))/ j1 P# E& D0 Q+ O: s) s/ {/ U
- (setq ltnmlst (append ltnmlst (list ltname)))5 H! E' B: q. o2 }& {
- );progn3 }! e' ~% v$ }6 t$ _- s
- );if 0 @" i6 r2 t6 A) w7 V
- );while
0 N6 L/ R- M; w1 E - (setq ltnmlst (acad_strlsort ltnmlst))2 c, M# Q4 C$ F) i6 o: E* y
- (setq ltnmlst (append ltnmlst (list "")));add by rk 9 y) n- S/ t" k
- (foreach ltname ltnmlst
% Y: _% o. y7 _1 I. a - (setq ltlist (tblsearch "LTYPE" ltname))1 C: H2 x6 {/ w# N3 t! U
- (if (= ltname "CONTINUOUS")' j; @. u, {+ Q
- (setq mdashlist (append mdashlist (list "CONT")))
n% F6 M. D% C4 N - (setq mdashlist
: N9 E$ K6 p, c. o, i' Q - (append mdashlist (list (add-mdash ltlist))). t ~3 q: O3 j# w4 c$ y E
- )
) X2 ?% F& x! p3 F% A% y - )* w7 D0 A1 q. Q1 B5 D" a
- )
: N: z0 M O( G* c/ E - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
4 |7 W/ W" |9 U- O$ i - (setq mdashlist (cons nil mdashlist))
! _- R+ k. Z* K$ e. Z - (setq ltnmlst (cons "BYLAYER" ltnmlst))
% \- Y) i `6 u. Y - (setq mdashlist (cons nil mdashlist))
' M; w: K. R+ k2 R1 d2 e - )# v9 i( [0 X% _: ?
- ;;; L! G# I. R7 o
- ;; Get all the group code 49 values for a linetype and put them in a list
- N1 s2 Q2 B( q' q% Z" a - ;; (pen-up, pen-down info)
4 |) l% m! X4 n - ;;
0 Q' w7 K! D/ K$ t @4 p( q. r - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)2 A! Z& x9 I7 }9 z9 a% Z
- (setq dashlist nil)
$ |8 `4 [$ `+ ~- K3 q - (while (setq assoclist (car ltlist1))
. U" U+ O, M& Q7 h- R' p. Z; r; r9 | - (if (= (car assoclist) 49)/ u5 L4 D; U* [& @( T* s5 G
- (progn6 h2 N2 ]9 g, |- @: Z
- (setq dashsize (cdr assoclist))7 i" W8 R% T, E& E: L
- (setq dashlist (cons dashsize dashlist))3 G; D# O' H. M
- )2 z& K% f! r1 U" Q
- )
6 c1 ~6 y3 P9 q- m" R - (setq ltlist1 (cdr ltlist1)): x: W" ^9 ?: Q" E6 k1 Z7 ~6 \
- )
1 V9 ]& w8 ]1 o+ k1 _ - (setq dashlist (reverse dashlist))
' R3 G$ K" o4 D( D - )
9 [/ b# F+ J: F- T& x1 v - ;;
( D6 y" Y- s( o+ P2 g - ;; Color a tile, draw linetype, and draw a border around it' ^4 y" Q- c) V4 B/ D3 |6 I) a; C
- ;;5 s: n% A8 O& l: G. Z/ v! E0 V
- (defun col_tile (tile color patlist / x y)
: G3 _ @+ B0 m; R+ J - (setq x (dimx_tile tile)). R: z" s- r0 `7 D9 A& z& `
- (setq y (dimy_tile tile))
7 I: [3 U9 O7 I4 T. ] F - (start_image tile)
6 p1 R% ^) {9 t" O. h2 ^8 ~ - (fill_image 0 0 x y color)% @1 ^& N T" [+ ?- Y$ G
- (if (= color 7)8 D1 f! e) N! D- b' i9 m6 @
- (progn2 W3 h4 f5 ?% k' E, T
- (if patlist (drawpattern x (/ y 2) patlist 0))
( _5 Q5 h8 f3 w& R$ G" _ - (tile_rect 0 0 x y 0)
! [- K$ z- t ^ E9 R - )
1 b0 }6 i F/ v0 e" V' w L- b1 o$ K - (progn9 D# K! M/ e6 F" w7 {% D2 w
- (if patlist (drawpattern x (/ y 2) patlist 7)), `3 \: ^+ L% k O9 [0 |' _0 p
- (tile_rect 0 0 x y 7)" [3 L0 y0 l% C
- )
s3 L8 T4 z0 h- }, b6 ]8 a& R - )
7 I: N4 E) D8 x. F3 q- y1 n2 s - (end_image)
0 ]6 u7 X, C6 X0 r) E - )
0 F* d. t, r+ I+ {0 w" y: M) A - ;;
% Z9 z5 o, O- i5 {2 q - ;; Draw a border around a tile. }; c; e$ ^% t6 p( A* X7 c
- ;;
1 f4 o5 y: c& r' E+ F) P% B# ~ - (defun tile_rect (x1 y1 x2 y2 color)+ I2 z: b b i
- (setq x2 (- x2 1))3 f9 V, r( g$ O! |
- (setq y2 (- y2 1))
$ {/ L' @3 e. |/ f- e p - (vector_image x1 y1 x2 y1 color)
4 s% f2 L- M' E v+ u3 |1 l! z! T9 n - (vector_image x2 y1 x2 y2 color)6 A& @8 c* _ C
- (vector_image x2 y2 x1 y2 color)
; h3 Z: x9 A6 x" x - (vector_image x1 y2 x1 y1 color)9 M4 X: J6 v( D
- )
+ g# |6 ^: `1 j: K - ;;5 E! Y- G, F/ S, o0 v. t7 K( [, W
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image: e" @; _3 y6 O, J9 O0 ~
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a' l( ~8 ?8 p+ M, S5 b
- ;; list of numbers that define the linetype, and color is the color of the- `' S9 _0 X& w6 F
- ;; tile. h: C4 a6 I; `1 F' s& w
- ;;, I) ~* m, w5 s/ g3 s, F/ H
- (defun drawpattern (boxlength y2 pattern color / x1 x2
2 u5 P+ h' t( |9 u) h - patlist dash)
8 w+ _6 f# }" t' @3 y - (setq x1 0 x2 0)
* `' S( j+ ~' o: H - (setq patlist pattern)
5 y) }$ k. P/ u6 n; H& T+ y - (setq fx 30)
* K1 R: ~( ~( |% H: ?, \ - (if (= patlist "CONT")4 n- q, h$ a& c* ^
- (progn' R: Z" I5 A' j# {, y7 a
- (setq dash boxlength)% @- M. @( w- d* n- V- L) l
- (vi)
0 V' l/ ]! o0 I( @ - (setq x1 boxlength)
5 h- Z6 d6 V) r; K" p3 ~ - )$ k6 H, u2 B- x/ a: i
- (foreach dash patlist- F/ {7 e( r- T6 d, O
- (if (> (abs dash) 2.5)
7 }& w# g% }5 g0 Q- b( x0 Y - (setq fx 2)
; {- E* M+ L, q6 ~ - )
E/ i. t4 @/ ` - )) ]) ?2 H: b+ p( V/ [
- )8 Z6 j& D+ p/ N( C* Q- i
- (while (< x1 boxlength)
; x) H6 W( E/ R. A8 ] - (if (setq dash (car patlist))- k4 E7 D' r# M7 k* L
- (progn
( }( j, P) r ^4 Y! ], q - (setq dash (fix (* fx dash)))3 `2 X+ A5 }+ a" }3 z3 }
- (cond
6 j0 x8 k* D' V3 `3 f1 { - ((= dash 0)9 t. g7 ~1 a- T& |) T
- (setq dash 1)) {5 a+ g' i: `. i
- (vi)1 g, i' J$ X( J! I$ u% n
- )+ i: T* O) v g* r4 s8 C" P
- ((> dash 0)
- p, i9 |, w+ L- {+ b& _ - (vi)# V" h1 n) U: w5 w# A0 ^% \' b6 N. E
- )
. ]# n9 a$ l6 P+ `4 `0 Y! T, f* P' ] - (T7 w: \: _" }' B) Y! V
- (if (< (abs dash) 2) (setq dash 2))
$ B/ ^8 O" W8 X- K! B; d8 y4 z! @/ u O - (setq x2 (+ x2 (abs dash)))
0 U3 q2 \, T6 E7 [ - )
. S, V+ K% R/ s) ]! D9 u3 J$ ] - )
4 W0 G! ]5 Y3 g2 v - (setq patlist (cdr patlist)). j1 a7 l# s: z, T
- (setq x1 x2)' C9 N3 p i3 z4 v7 h# |% ?
- )2 E1 L4 C, z) U0 B* A
- (setq patlist pattern)
( z; j! T$ _, u/ s; ]3 {9 D3 |# j - )1 R* g _9 Q2 c* E, u
- )) Q1 J0 D$ e: {9 t
- )
: J% m% r% {# c* Y; s6 Q - ;;
( Y; Y# ]& a1 v% R - ;; Draw a dash or dot in image tile( Z/ X9 R0 M m4 p/ z) d+ N
- ;;
' w* r* }& J4 Z4 i& @, V - (defun vi ()
& M( n& y+ }4 `1 h( x P* }2 E$ I - (setq x2 (+ x2 dash))% [9 ^8 x$ m' l" g2 a6 ?: [$ ^
- (vector_image x1 y2 x2 y2 color)5 S. q# Q0 e9 T- Z0 m! u
- )' L- t& P& x) V; u9 \' b
- $ s+ k5 K- u0 a3 [: t
- ;; This function takes a selection and returns a list of the color,8 k6 O0 h( [% m# `
- ;; linetype, layer, linetype scale, and thickness properties that
6 b B8 W6 R; ~9 c/ c6 \ O - ;; are common to every entities in the selection set - (color$ w. q: {8 j, v" u g0 @6 w5 |% N6 h
- ;; linetype layer thickness). If all entities do not share the same
' o: v) C8 @3 e) z - ;; property value it returns "Varies" in place of the property" P7 K; E* Z: B3 j) ?/ F) q0 {
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)6 V/ c! t' x$ k2 z/ ?. @' f
- ;; The last item in the return list is an integer flag for the9 Y5 }" o2 E' w, |
- ;; homegenity of the selection-set object types.' d& L! f [! n$ |
- ;; 1 = All polylines( E% O) m. g! }1 x b2 v! I" j7 ^
- ;; 2 = All text or mtext or attdef, or a combination of the three
& h( O5 ] P) s+ [& q2 d) {( H& u - ;; -1 = Any other mix of objects& i: Q1 K* p4 x. W# C
% V; {+ S" e6 `, p/ R- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
! h5 k T# B& w# ~9 d7 R - width elevation height go ctr / B9 N' F4 C* l+ }
- eflag
# P S8 ]! |( r6 H - etype temp $ l& |/ H: u) S
- txt_ss ;;;;rk 11:24 AM 1/30/97" a- g2 T9 P5 n" O. l8 x
- tmp
! U- x3 h1 ^# I) S0 `$ H' c$ `5 | - poly_ss , z6 F1 l& p! W! V/ _0 X: Q2 u0 l
- style) _& s* {3 Q1 C: P
- )
, |5 o; x, w' q. Y3 d# T
" Q* d: P# H. p3 y4 m- ! u, ^$ v8 R/ B0 c) Y8 F: ?. {/ y& l
- (setq sslen (sslength selset)7 n5 X" A# C6 l2 d
- elist (entget (ssname selset 0)). f0 G% U" }" F, h
- etype (strcase (cdr (assoc 0 elist)))
# u$ K9 H( z# h8 a( ?' A! G - color (cdr (assoc 62 elist))
$ y! C, ~$ R/ y, C8 A2 _ - ltype (cdr (assoc 6 elist))- ~+ {3 W/ T. N" B% B7 J: q
- layer (cdr (assoc 8 elist))
' w- j6 B' n8 G# n) J# n8 l* I9 ~ - thickness (cdr (assoc 39 elist))
1 y9 h3 h" {2 |; |! S% C8 r" v - ltscale (cdr (assoc 48 elist))
+ W4 [4 H5 Q3 m% ^- I8 o, ~0 ~ - );setq3 b- A, i! h- _
/ D5 E6 |6 X( {- (if (not color) (setq color 256))5 v3 f4 h5 V% a7 f4 y
- (if (not ltype) (setq ltype "BYLAYER"))2 n4 N- J$ H4 S. q
- (if (not thickness) (setq thickness 0))
6 j# _0 j0 v- o, G* ^! t - (if (not ltscale) (setq ltscale 1))
, a8 l/ W$ T B" k9 B: ?0 H - 3 z) G6 f' y/ N: D
- (if (not width) (setq width ""))9 Q6 h6 j2 I# c) d% |% \
- (if (not elevation) (setq elevation ""))
* @. X6 E& w& h' s: S% o - (if (not height) (setq height ""))
# \( H( b E. M# i- | - 9 M- r2 j9 ?3 o$ b7 v1 ^/ Y
- (setq go T
' W1 m* \8 T+ X& U# h - chk-col T " g' S" H: ~$ |- X
- chk-lt T ' j7 z- `2 S0 |1 p/ a
- chk-lay T 2 A; j8 B3 v4 z+ ]
- chk-lts T
$ s. c6 x8 D. W2 T4 V - chk-th T ) w& K( K/ D7 Z! T9 L1 W# V
- ctr 0. U. D. F- ~. x( U% B4 Y
- );setq; z% v$ G5 n% Z9 I- ^ N
& B/ o' n: ]' i, N) q- ;; Page through the selection set. When a property6 m3 k( \( R2 ~# j. N/ e
- ;; does not match, stop checking for that property.' V* u4 b: v2 u! K! l
- ;; When the selection set is not homogenous, stop checking.
" X* e/ U1 _8 j" g% _ - ;; If all properties vary and the set is not a type 12 p% I( i' |8 M3 u: J
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.
1 {8 L1 c, X) ?
( M8 b I$ c+ \- ;Lets set the eflag so we know if the selection set includes any
* v) T/ T& `" p& e( l, K - ;combination of polylines, lwpolylines, text, mtext or attdefs.
5 i+ [3 G& Z) ?. j
# E, H5 K8 |$ _3 B3 f$ e- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
2 K" L( C0 ^2 z. i* o, F - (setq eflag 0)
" C7 d3 I+ S, G$ S! B) ~8 q6 } - (if (setq poly_ss
2 W$ D- _7 F W1 ^9 x; b0 U; m, u - (ssget "P" (list '(0 . "*POLYLINE")
( |- i8 B# B& K9 K8 ~7 A1 D - '(-4 . "<AND")
$ P. s4 L/ W- s2 s' j W; ^) T4 C - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")! ?! }: m% W! k" J7 } s
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")$ ~& E0 n9 v. {7 G s5 R+ o
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")) R: D/ P' E0 A( ^
- '(-4 . "AND>") , z. ]9 n x& ?: p% f
- );list4 W1 J) n# G' g' V
- );ssget get 2d polylines (legacy and lw)
: ?% k7 C( j$ k/ t4 d( O - );setq
3 P) L$ X% @/ [# R6 O @6 @ - (progn* [' A) J7 O6 e! c1 U- T+ U
- (setq eflag (+ eflag 1))( k, ?+ D8 K# b" t% `
- 9 d) q% N# ^% y+ Q
- (setq tmp (entget (ssname poly_ss 0)));setq
/ S- }3 u: N9 _; q T) i
7 |6 M9 c6 i0 r8 }. r! t- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
& J$ `8 J. t* H+ } e4 E) @1 U - (setq elevation (last (cdr (assoc 10 tmp))))6 N* R P' p# m @0 Q
- (setq elevation (cdr (assoc 38 tmp)))
2 C+ S: |5 j* M0 A, [: y# z8 ~# d d - );if" M7 c- V! {! b+ t9 `
- (if (not elevation)7 g) L4 ^1 J) \& i6 ~) l
- (setq elevation 0.0);setq( E. b# E/ o& t, ?* ^! R7 O: L( r. h
- );if+ r/ i$ }* Q8 b# L& s @' a) l/ ?% K0 [
- & g0 i5 v* c0 J. |, O6 C/ g
- (setq tmp (ssget "P" . C5 y6 W4 P# P: n& r6 ^# n
- (list 9 d! M% s* q* k
- '(-4 . "<OR")
3 [: |4 e8 m4 a r- q2 }- d - '(-4 . "<AND") + @8 u0 k% p0 E- t" _$ c: Q9 y0 u
- '(0 . "LWPOLYLINE")1 U8 }9 q Z8 g; P# D
- (cons 38 elevation)$ p d y9 P+ ~* L
- '(-4 . "AND>")" X& L# `# f( Z8 d0 _1 h
- '(-4 . "<AND")
+ ~& ]" T' w2 K8 w H) G0 B& g$ h6 |. I - '(0 . "POLYLINE")' x6 ~/ k+ v/ _4 ^% p+ Y
- '(-4 . "*,*,=") 8 ~1 O( @& ^% |$ b
- (cons 10 (list 1.0 1.0 elevation))9 x" B! k4 j6 S# ?( l1 D
- '(-4 . "AND>") # z$ Z8 ?7 K( x4 M: z8 W" f
- '(-4 . "OR>"); H, |9 {2 B& D( T9 A* J8 a8 v
- );list
$ q% p! Y) H( {: v9 B% t - );ssget
2 I4 A1 ?# k) `7 } - );setq
6 m3 y4 ?7 \9 E& @ - 0 f( p# s9 y8 B1 u" `+ z( ]
- (if (and tmp
8 `9 ?$ c$ I+ M7 I+ j - (equal (sslength tmp) (sslength poly_ss))
- Z/ p% t; I3 i - );and
+ x+ Z1 X3 ^: F5 t - (setq elevation (ai_rtos elevation));setq
3 X. N" ?8 n- S& U1 j. V) s - (setq elevation "")2 `+ A ]( Q1 ~4 E
- );if
2 m. ]( e) @' [ - 6 {8 ?/ t. \7 j7 y
- (setq width (pl_width_getter poly_ss));setq& y8 B. a0 O' t% X) \6 w% R6 v
-
) w; W; {# w/ Y3 O3 G6 N$ p0 u - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
4 w" {3 d+ _0 h6 A- p0 Q- y - );if9 F9 @+ E* h- U" m2 f0 _+ \
- (command "_.select" selset "")
5 t' n8 a; L1 c2 _7 W5 V -
+ v8 {8 u. C. j! n+ S - (if (setq txt_ss ' P- i% h& F: R- n Y
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") + X4 H7 b4 f( X* j/ Z" e$ v
- (0 . "ATTDEF") (-4 . "OR>"))7 ~2 [9 S1 ^$ p! {; w( g3 \
- ) r5 f; E( t$ e/ y7 u
- );setq
+ Q" O2 `! B% _ - (progn+ z a# [# K8 S6 k9 Z4 U* T6 {
- (setq eflag (+ eflag 2))
" F9 {3 U* Q7 \ - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))5 L( O9 n$ ?2 Q9 }9 z
- tmp (ssget "P" (list (cons 40 height)))
, [* y" x- C$ a' ~& t - );setq
5 B8 x! U5 Y3 Z3 J4 P - (if (and tmp
7 D/ ]4 K/ ?2 x3 p" Y* B8 x2 Q: ^ - (equal (sslength txt_ss) (sslength tmp)) ; O8 ~* {. v& t9 _" `1 O. t- W$ F0 K
- );and. q, \) [) @: }! d: E! e5 g
- (setq height (ai_rtos height));setq ;@rk need to translate from float 4 ?& b* q- i \
- ;to string and back again easily
) L7 ` e* \4 ? - (setq height "");setq else the height varies
% p. ?/ H, }% g, A+ H6 ^ - );if
- l6 I) {+ H( @! T6 O# z - (command "_.select" txt_ss "")
+ S0 X( U, ~5 A5 A# x - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
( W+ i% D4 k9 o% o; s9 U - tmp (ssget "P" (list (cons 7 style))) # r3 B9 F, s. E' D: G- M
- );setq $ Q( J! ~3 g) k& B6 M
- (if (not (and tmp
3 ? c9 r, e9 z$ p5 M - (equal (sslength txt_ss) (sslength tmp)) + ~' s+ ]! i, b
- );and
! ^. w) B. q( ]+ R. b: ^ - );not
% |, U8 w% J4 P# ? - (setq style "");setq then the style varies
% ?6 @8 j% x! D6 V! u3 o& c/ R W - );if
3 F7 {9 Y: b! }1 g9 N - );progn the text type objects are in the selection set- w( f+ V0 W% T6 |
- );if4 J/ r7 s2 A i+ X. N1 W
- (command "_.select" selset "")( e" J# b" ]" F
-
; Q$ K0 ~6 K$ c0 a' o - (while (and (> sslen ctr) 2 W% ~3 M6 j+ r$ ], m) S7 ~
- go
3 R3 V4 W; r+ m! H7 j - );and
( }& ]1 q& e5 V; a0 w - (setq elist (entget (setq en (ssname selset ctr))))
: |5 D3 T+ w$ a - 5 D5 O# N+ }/ N4 z0 K ]% Z \
- (if chk-col (match-col))- H4 W8 {1 Z( k4 j/ b3 Z
- (if chk-lt (match-lt))
( k; W' ^4 {; z- m - (if chk-lay (match-lay))" q+ b& B' ~' n9 s9 i
- (if chk-lts (match-lts))7 q; k9 `+ r8 X( L( j9 P$ n, X# u
- (if chk-th (match-th))( y/ k3 N) A# e" E' m* K7 E H N
- ' Z. i: @" c1 P; q8 Q
- ;(if chk-etype (match-etype))
" ^$ j! `8 ?: ?0 m, e
4 S" o+ i& }( z8 M C- (setq ctr (1+ ctr))
2 K- Y; I, l, C9 B; w8 ? - (if (and (not chk-col)
4 z9 W: g" }0 m+ W$ y+ K0 x4 c0 M B - (not chk-lt)% |+ v/ D3 w9 D |2 p
- (not chk-lay)/ \% n) D# ?+ ?3 H
- (not chk-lts)$ }1 ~- C3 m( h( N
- (not chk-th)
8 w" p1 n7 s- I - ;(not chk-etype) k; \% c i: ]% o8 Q+ {: V R
- );and
7 V& v; d( ^! z8 ? - (setq go nil)
" K' l1 N. y# ^ - );if! ]2 i. J2 _( E4 B Q
- );while
/ \4 r5 C; B/ E* S, B- w7 S; y# E- w9 ~ -
( h- e+ c! X' f6 T/ h - (list color ltype layer thickness ltscale. }: k/ F- z- F/ ^$ x# c5 k8 t; z
- width elevation height eflag
# C9 A% S2 o4 j- I/ V. L - style poly_ss txt_ss& F1 V& Z+ T6 {3 g. M; x) ?
- )6 M# |+ n: { A' ]2 f
- );defun getprops1 }* B8 C1 X- N+ w {- z+ N
3 I3 ]( n: G$ c5 R# Y! |$ S3 ?- ; This is a speedy little routine to tell whether the polylines in * u4 W5 A8 J2 c( {9 q1 K0 `
- ;the selection set argument are of varying width or a constant value.
# \- q/ Y% y8 k( g - ;Looping through the vertex's has to be done for old polylines when - S1 t& f4 ~; h* \% F( J
- ;the polyline header has width values of 0.0. Basically, in this case,
& i6 j1 q- Y1 P% K3 l& G - ;information in the polyline entity header is abmiguous. Width values
3 C. F/ d# C3 _ P6 U/ E" g - ;of 0.0 in the header entity could mean the polyline has a constant 1 D7 U& j6 t( a# t& K+ {2 V# t- i1 p- ^" t" E
- ;width of 0.0 or it could mean that the polyline has vertex's of varying
+ C- U4 o* b7 s' k3 o4 Y r2 { - ;width.
N7 W( i* [- B - ;
3 t4 p, p- Q$ z& n, [7 w - ; It's all in wrist. Err a.., I mean it's all in the 'if'2 G; m6 a2 r+ ]
- ;;8 u6 y$ F/ e8 ~: ^3 |* H3 J
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
/ Z1 @: l* L0 H+ s. n
1 a0 d; U9 R Q% t% ]. k& D6 z- (if ss + H' m; D6 l' n7 u+ T' J
- (command "_.select" ss "")+ S' q1 U! ~6 W* |/ H* [% ]0 \
- );if2 w0 V& a3 B' d1 ?9 |: X: J8 @
- (setq width ""
$ O8 a) _- E4 k6 N6 F - flag nil
( H" s/ K* t3 n4 l; l% W, z) E N - flag2 nil1 H a5 R7 X$ H; y. s9 [
- );setq
6 r, t3 V& P9 x( ?' _ - (if (not & I8 n. t& ]* q( B+ {
- (and ss
4 {7 Z# J( \5 s) {% _ - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq9 V' j v( h) b% b% `# e. N
- (setq na (ssname ss2 0)6 F9 m& d7 j" b J4 r0 W% n* k
- width (cdr (assoc 43 (entget na)))
/ T* [$ i7 o7 u* I3 M$ f ]' C - );setq- t9 o) M! K% m( S! }
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")0 g3 |( {" } g" j- {4 b+ k
- (cons 43 width)
/ ^. k- f# A$ Y; s4 Z+ e - );list# {8 V+ T! v3 H* K! |- E
- );ssget
; |. X0 D* p0 U; Y8 i! N$ d) k - );setq
# D q& J2 e0 I" B' j - (setq flag T)
3 M5 y0 ~7 Y& T6 V2 o - (equal (sslength ss2) (sslength ss3))/ h8 F: ^. X# R a" |
- );and
& w/ b0 z! o2 H' E - );not
% _ H3 O6 e. T8 @ - (progn
1 O* \ \1 X' i2 @, B* B - (if flag
% Q; P/ j' x ^6 `" ~( M* _% ?2 X8 k" y - (setq width nil) $ A( u I# s9 B% F9 B
- );if$ f1 N2 U' M& z# H1 y
- );progn* X% f4 h4 f' w/ X+ x7 `+ o
- );if ! @% u5 W- d! ]. M% N; ]
- 8 N1 T$ v1 ~# M
- (if (not
, j5 r9 W8 @2 g/ T) @9 F - (and
) r3 }( a+ }! C* e - ss1 _1 K! E/ R+ t$ T" z" z
- (progn (command "_.select" ss "") 9 u7 o3 R6 o1 [: t( n0 \* Z7 t
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq) ?6 M ?% |. G7 n: q
- ) 9 V# h3 V W0 T8 O; F& ~
- (setq na (ssname ss2 0): K, a0 l# H5 `* D# g L$ p
- e1 (entget na)4 F5 _2 x8 N0 D8 N
- width_a (cdr (assoc 40 e1)). c, F, O. s- }& a& S
- width_b (cdr (assoc 41 e1))+ B, _" c; T+ ] N! S
- );setq
& q6 J/ L& B3 R% R, j- V* I" E - (equal width_a width_b)
2 l% I+ | X# S, I T - (setq ss3 (ssget "p" (list '(0 . "POLYLINE"), ~, ` `9 p1 t3 r
- (cons 40 width_a)0 n- H+ G6 M0 J/ u/ C
- (cons 41 width_b)
9 c) m0 ^0 V" w - );list
2 N' @' K' \! X# d X/ B$ ~% | - );ssget B( r5 Q: j! \8 C
- );setq: w! f. e# q! k2 P0 T
- (setq flag2 T)+ m/ i$ w) r6 y( V4 f
- (equal (sslength ss2) (sslength ss3))/ \+ Z C0 d. S# W9 _
- );and
, e O) | { z# D - );not 4 W6 N+ o2 G- Y2 ]; j' H9 |
- (progn; s" K# U! `* G& k3 o
- (if flag2
9 P) t, M' J: `/ Z - (setq width nil);setq3 T1 Q. z+ n! p V2 T
- );if
3 D5 @$ p1 ^- [1 [* J/ {1 Z# _ - );progn then* T, U6 W7 }3 c0 y: ]2 K5 K0 f
- (progn
0 [- u, e: b- @" G- T4 n" @ - (if (or (equal width "")
- K: a( p% U+ s5 W, x) E* p, c - (not flag). O6 R$ Q$ y1 G0 b! E
- );or8 |6 M4 R& p ~! \5 f$ G
- (setq width width_a)5 l7 d9 q0 M& q0 g
- (progn: P3 S7 W) Y4 m/ k+ p) I
- (if (not (equal width width_a))5 P$ s8 u% s( H& C ]0 l( }7 o' b
- (setq width "")
1 a# D/ m+ E6 P& r - );if
* M& c1 q/ j6 S5 @# R/ l0 t - );progn
. B J. o0 Y. c' j3 z - );if
; k5 V6 K1 r; d% ]+ P - );progn, K6 m) E6 \, g5 X! G7 O, G
- );if, n9 ]9 k) k2 _1 T. q
- $ w! S) g6 n' q. g: v
! x$ z8 E: S; ~8 c- ;now for the special handling for old polylines
! R' `# [* e- H7 f0 a - (if (and width & d$ F+ P! l; Y0 [: _5 B
- (equal width 0.0)
8 r2 v! c3 M9 r! v2 d6 L4 P - flag22 H- r) y6 n6 R2 y' d
- );and 2 r, @: Q+ }; i6 B; V; n2 I$ q2 g
- (progn6 T4 V: R5 f, @) T
-
6 c, h& Y4 a6 x& C6 Y$ ?/ c2 P0 Q# q - (setq n 0);setq
$ o, H% b6 P( M0 \ - (while (and (equal width 0.0)
; _4 c- W2 K0 P# L* I - (< n (sslength ss3))
# `1 I7 R3 O) f6 f) f - );and
; p: T! N' v. r8 ` - (setq flag nil( ` n1 h: U, q4 [
- na (ssname ss3 n)
# Z: a$ e; [6 H4 O7 G - na (entnext na)
: `0 e: O6 M! F7 U% x+ K+ f- D' ~ - e1 (entget na). R( l! ~6 K2 |' ~
- );setq% d7 v J9 j/ J6 [! O
- (while (not flag)+ y8 O) }5 x M1 D" T2 v
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
/ D9 S5 G6 `8 }3 b( w; U# j3 E: H - (not (equal (cdr (assoc 40 e1)) 0.0))
; y0 u/ l/ K* k w" H+ g: l, @( `& A - (not (equal (cdr (assoc 41 e1)) 0.0)): ?' Y5 H/ o5 a1 ?1 s' K, ?7 V7 E
- );or
9 E7 \2 D- U& e' \+ M - (progn4 r, l t" E: g; R1 Z
- (setq flag T);
4 p. {6 N. r' K% P' S' I8 C - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))5 d8 V; L3 j% S
- (setq width nil)
& P- M3 E: H3 c1 N3 P( }7 d0 h - );if
: ~7 L1 p: l6 X; C - );progn then jump out of the loop
0 \# J e+ M) G/ l. O' T: Z - (setq na (entnext na)
. T1 v$ _2 Q7 J - e1 (entget na)# t5 R4 E6 W" F) R6 i4 e5 Z
- );setq
! G* s& W' ]0 E; O# Z8 g - );if
" }8 c) n3 w7 [2 e# W' H - );while/ C8 T% }; F/ ~
- (setq n (+ n 1));setq " `3 h9 l, y# n4 m
- );while
/ f1 S- A8 ^+ r/ w1 _+ h- U) b -
9 x7 n! I% [& D5 A R& t - );progn then it's a legacy $ d9 l u& z) g* g! \( m# ~
- );if ;legacy polylines that may have varying widths 1 J9 k3 a& G# W3 v1 f6 w
- $ m$ S* m% A- k9 O
- (if (not width), {$ t2 O! T7 s, I2 u9 F
- (setq width "");setq
: d9 W$ n. |4 j+ s8 ^ - );if' x- J K! E# ?7 ]$ W5 Z% A& w( I
- (if (not (equal 'STR (type width)))
: K }3 {" `/ s3 h, l' { - (setq width (ai_rtos width));setq 6 l. G+ a4 Y4 c& G) z( \
- );if ( C$ @7 m5 H( ?, `7 u2 j) i
-
* R9 k9 `4 A+ ?7 z$ ^" [4 b) { - width ' f. c4 {; a+ _. x+ T
- );defun pl_width_getter
0 v& M- e6 \. ~- p2 H
G9 v* f0 ]7 J7 }/ u- Y-
: y7 G$ V7 c' S& C& m: J! L/ o! M - (defun match-col (/ ncolor)
2 k; _+ h( Y- G8 _* ~5 a( o3 S - (setq ncolor (cdr (assoc 62 elist)))
: A, r# H+ l3 v9 ?% r2 Z - (if (not ncolor) (setq ncolor 256))" j) s! ~8 @$ }. K4 e7 c
- (if (/= color ncolor)) Z: H! N1 @6 r, c. e7 s- G
- (progn1 U2 h, P) z# P y$ A' i
- (setq chk-col nil)3 y% N$ u( s% l
- (setq color nil)
( n" j4 b' b, r2 x# V4 q% `+ c - )
# E. g% D: T' i - )
' _8 ?/ @8 ]/ f4 p - )" |- H- ~* W$ F% C: C9 E/ w
( B' R2 X4 O) }% M* x- (defun match-lt (/ nltype)
, Q( Z, [" P; M4 v$ S - (setq nltype (cdr (assoc 6 elist))); J) S r$ J* u+ I) Y
- (if (not nltype) (setq nltype "BYLAYER"))# S5 b( V M7 x7 L6 {
- (if (/= ltype nltype)2 G! F0 v ]; @1 M' s0 w! p7 n
- (progn' g3 h6 x% c3 W! c
- (setq chk-lt nil)! s7 `6 R ~; x6 r; h" _
- (setq ltype ;|MSG0|;"Varies")9 i4 a& y2 p2 g
- )
8 c% {% g# i) m$ n5 E7 _# O - )$ Q. c( ^$ D6 O9 p
- )2 |/ y/ i! H9 a* A" N
. c" |2 ^# @8 _2 e4 R- (defun match-lay (/ nlayer) x' H/ V" b- V( i2 U4 q
- (setq nlayer (cdr (assoc 8 elist)))0 Q0 I% O6 I' |
- (if (/= layer nlayer)
F& C* j. P* ~0 L( s - (progn* L7 V2 s9 ]' ?0 r2 R
- (setq chk-lay nil)- j" X1 e( a r
- (setq layer ;|MSG0|;"Varies")6 |* y) v7 x' y- U" e
- )
; g* }' X1 P, k6 @ - )) E( {% B) Y+ v+ N3 v
- )+ @2 i6 v, a: M1 z- Z( e# K
- 5 t" D- t# [! |' Q% X) }
- (defun match-th (/ nthickness)! U$ U" q- I: I
- (setq nthickness (cdr (assoc 39 elist)))
; G# l) j" U: n) O: m9 s" h$ z - (if (not nthickness) (setq nthickness 0))
- w$ W8 f* D3 B# Z- B3 k% t6 r - (if (/= thickness nthickness)! d l' {( f5 T- o
- (progn
7 t, |0 O \5 C- W$ W! J. I - (setq chk-th nil)$ d8 m* g) s/ N6 Q' y
- (setq thickness ;|MSG0|;"Varies")1 \: p# k5 n* I
- )
$ _2 e4 y; W% B* a: C; f8 |8 F" f - )3 c4 i! L1 ]$ S
- )
9 P6 @& J/ o" h- U6 ^
2 h3 U( f, D* Z% C, I- (defun match-lts (/ nltscale)
( \/ h* m$ p' i9 }: H l% L - (setq nltscale (cdr (assoc 48 elist)))3 [! a& b9 P/ n3 J4 q4 V7 z
- (if (not nltscale) (setq nltscale 1))
C+ [. ]2 G5 p7 i - (if (/= ltscale nltscale)1 S7 @0 X% f, W8 S) ~* y$ Q
- (progn
3 I6 W, E+ Q: @8 X: o# W - (setq chk-lts nil)
/ I5 N; q" w/ e - (setq ltscale ;|MSG0|;"Varies")
+ y$ \% q9 o0 D& g# e$ L - )3 `: N5 E/ T, t+ m$ G6 H- n/ p
- )# F7 d; h2 U& I, y
- )4 f& y9 O" N; }
' H. M5 { ]4 n+ K: H. F2 }1 Z- ;;
: }( J7 G. _; Y% \ O - ;; If an item is a member of the list, then return its index number, else6 T5 n8 b7 @4 D! g
- ;; return nil.( a, \% I9 W0 V) K5 p
- ;;, ~4 q+ T: Z9 b
- (defun getindex (item itemlist / m n)9 s$ J6 m7 z' C8 c! [
- (setq n (length itemlist))1 }2 w% `" l4 o5 s8 Z0 @
- (if (> (setq m (length (member item itemlist))) 0)
0 v# F" v: p: I6 |) G - (- n m)
' }+ _% m8 W2 @' L - nil5 i3 l5 c: K( q6 }0 `
- )1 @6 Y+ X, z& i! A/ m3 o8 R) m
- ); V, F6 b9 e a8 c+ _" w8 L6 }
- ;;& a5 M; ~0 u a6 t
- ;; This function is called if the linetype is set "BYLAYER". It finds the3 z1 M5 F( v8 B# D _
- ;; ltype of the layer so it can be displayed beside the linetype button.% c0 H9 d& P- N$ z$ b/ R
- ;;
' c6 W6 h8 j x, S& t7 h2 c - (defun bylayer_lt (/ layname layinfo ltype)
- k/ C/ g( `5 X$ W3 J- h; ? - (if lay-idx
" T8 z" o$ M- y7 R* s" D4 @0 D - (progn
5 q$ h$ ~7 L6 N6 y - (setq layname (nth lay-idx laynmlst))
0 L0 K; [$ f$ i - (setq layinfo (tblsearch "layer" layname))6 |$ v9 f) c+ a
- (setq ltype (cdr (assoc 6 layinfo)))
$ H+ c# B3 U9 ~ - (strcat "BYLAYER" " (" ltype ")"); |* f, @# `+ g7 A0 d4 D
- ); G% G$ ]3 N' d; N$ s
- "BYLAYER"- l( N8 v8 A) ?# w7 E; i
- )! c* x/ b+ o3 R4 J: @
- )" n A" H: \+ e2 H" z8 Y# x
- ;;
/ z% a8 ^9 c! d$ y- W. [ - ;; This function is called if the color is set "BYLAYER". It finds the
2 F, a: l9 ]! t( y3 Z, o9 C3 B - ;; color of the layer so it can be displayed beside the color button.
; l$ ]0 k% ?- S" L* d - ;;
) ?; T0 [. Y( n$ [6 L u. u - (defun bylayer_col (/ layname layinfo color)* e# u- M, y; a3 f+ I
- (if lay-idx
. h9 C1 ?- r2 {1 V - (progn
+ M( r/ T+ i, `" X4 t5 z - (setq layname (nth lay-idx laynmlst))
4 [) U( Z; \9 q0 p/ f/ Y - (setq layinfo (tblsearch "layer" layname)). W' H' f2 K3 j/ S' F& v
- (setq color (abs (cdr (assoc 62 layinfo))))( z+ I6 e/ R3 N5 L& a' g3 p
- (setq cn color); s+ o6 U' b2 ^. `+ ]
- (strcat "BYLAYER" " (" (colorname color) ")")% A* D0 s1 [6 \
- )4 D0 a: m: b G
- (progn
: S# l- Q' ~, m; A" e - (setq layname elayer)
% O/ l1 V+ Q5 q4 X) l) [5 @ - (if (and (/= elayer "")
5 ?# C) }. Q7 h2 I - (/= elayer "Varies")2 Q0 o7 n9 ?) M
- );and
$ b2 B" ]: U9 @. C9 @ - (progn5 x( }% R) m* R! f0 l4 k0 g
- (setq layinfo (tblsearch "layer" elayer))
! g! O0 e' h! I# g - (setq color (abs (cdr (assoc 62 layinfo))))0 x4 t$ i9 J% Y/ e0 q$ l' p0 U' o
- (setq cn color)
1 W% e4 P% S2 v' D) u3 M. _ - (strcat "BYLAYER" " (" (colorname color) ")")
* t6 Z& i% B: g) S7 f2 I& M - ). N" D7 i+ j0 L
- (progn
. j% f. }5 E3 W0 l( ` - (setq cn 0)
, F: O( o- _( P5 M- w4 Y: F% A - "BYLAYER"
# K; N( w3 R; y8 ~( \ - )- p3 @9 g. E: |, b. J. J' y
- );if% {* o5 y( B3 v N' Z/ @( f
- );progn3 { H2 s$ {& Q/ i; j3 l( x
- );if9 ?/ D' O$ V0 K4 `3 P
- )
4 a2 [" C" n- X" l9 d( E# s9 }( @ - ;;
. T5 D" e- I( x, Y - ;; If there is no error message, then close the dialogue7 F6 U7 Q4 b: D# N( w, w7 s
- ;;
% Q8 f2 y6 s2 h0 k$ ` S - ;; If there is an error message, then set focus to the tile# Q: ?' x* `6 M5 \. Z: K
- ;; that's associated with the error message.9 N$ Q/ d& K+ \. n+ T: J
- ;; W% D k( b1 y
- (defun test-ok ( / errtile)
7 p+ k0 X6 O* @ - (setq errtile (get_tile "error")); |% d: I1 i/ k' d. n: ]. G
- (cond' [2 c2 c; [6 x: W
- ( (= errtile "")
6 _9 q: R& y' a" j% b/ h - (done_dialog 1))6 H0 Q) A J, u- y0 R1 v# E4 O
- ( (= errtile "Invalid thickness.")
$ K2 e( S& w/ D6 @+ Z - (mode_tile "eb_thickness" 2))
' T5 Z/ p/ `4 k; Z# p3 u - )# \7 k+ f0 q- C" U
- )% L; ^" j5 T4 K, |' O1 k# q* J/ N
- ;;
/ U- `4 | `) K' d& a6 P- D- |" P - ;; OK in main dialogue.: a+ }9 v, Z$ a p3 P# P! t
- ;;
& E0 X( C. q B( k - (defun test-main-ok ( / flag)4 w# h2 d- U7 R* _/ O
- (setq flag T) , S- k/ q$ d, I6 z
- (if (not (or (distof (get_tile "eb_thickness"))
2 Q3 L$ z( q9 D" ] - (= "" (get_tile "eb_thickness"))+ J X9 @2 ?8 b' _) z# h) O
- );or2 I5 R h, z6 B& C
- );not
' v* g/ ^) d$ h7 o+ v0 j - (progn
: H* A( p7 X5 w: q: N, T$ L5 c& R - (set_tile "error" "Invalid thickness.")# {1 \: F+ A! X. [0 Q. S
- (mode_tile "eb_thickness" 2)
( ^2 e* ]: G+ G6 M - (setq flag nil);setq1 G- y$ @% F+ o, L) z" H6 C+ s
- );progn
2 _$ `4 S, h0 Q. }2 _2 B e - );if
. n; f0 |% U7 f5 l# d4 m7 D$ \6 w - (if (and flag
! X2 b2 D2 n$ `9 g# `1 x - (not (or (< 0 (distof (get_tile "eb_ltscale")))
8 q& `; L$ r4 g* K* z3 N - (= "" (get_tile "eb_ltscale"))( z* c9 H+ Y2 Z7 C3 ]* V
- );or , |, ]# \, X! \+ a2 V
- );not/ ]: s- B6 A" s s
- );and & H9 g- l0 F: E! j8 C0 y# Y4 c
- (progn
4 f, r& @# A6 L - (set_tile "error" "Invalid ltscale.")
2 c* P: \' ]4 [6 m% F+ K - (mode_tile "eb_ltscale" 2)& R- V ~$ y0 d; g. ?9 X6 j) ~& J
- (setq flag nil); # M4 h" P0 U$ F4 R
- );progn then; C0 F) L* {# B1 q. Q
- );if$ |* S+ M2 i: F$ a, s
- (if (and flag
9 f8 L2 Z h! {' | - ; Don't test the tile's value unless it's enabled.
w( ~/ V9 h3 w8 W - ; We're not set up for the display-only value! [* @& E ]% d5 F1 Z# q8 l2 a
- ; of "" here in the error handler.- s/ L5 E4 J1 f1 q% e+ B
- (= 2 (logand 2 eflag))
) n( ?+ [0 o( h# }: e" N# q - (not (or (< 0 (distof (get_tile "text_hgt")))
/ E, [% m2 H- U- d - (= "" (get_tile "text_hgt"))
/ }" }9 v( U0 v+ E; v - );or6 c3 R& n% h: k- O% w
- );not
9 r3 D1 M$ D2 A - );and
/ y- r- [# w/ e% q7 H& U4 d - (progn
: ~. _8 \/ L2 A. ^% w, h - (set_tile "error" "Invalid height.") v0 Z6 U6 Q) \
- (mode_tile "text_hgt" 2)
+ [/ R" t1 y6 k - (setq flag nil);
3 c3 L. o" e# A& P8 {$ }1 Q# _7 y - );progn then& o! @$ E) G/ g2 C+ J* \0 j- S4 o; z
- );if$ _4 t, y. E& ~' c
- (if (and flag t; v# X( E2 L" O q ?+ _, Y8 m
- (= 1 (logand 1 eflag))
6 j) H: y2 X" p- \6 f - (not (or (<= 0 (distof (get_tile "poly_wid")))
2 R S# }, s I0 Y - (= "" (get_tile "poly_wid"))* C& a# G- Z. k7 |7 K# y6 {
- );or! d$ \" m. o# D6 p4 t
- );not. j @) C0 ]3 ?( k j. p; y
- );and
3 {2 `& n" B. b3 J - (progn
' J/ [* v' N4 }, u& Q) G8 | - (set_tile "error" "Invalid width.")
& Z2 h5 w7 T6 A5 Q1 `# X8 ]7 p; b - (mode_tile "poly_wid" 2)6 a* A5 B; t2 D6 L5 ?
- (setq flag nil)' U N3 X8 j+ Y; v3 X3 K! T$ a4 I
- );progn then) c4 {* o4 c. v+ Q9 [' O
- );if
2 W* Z! H& U! z0 U; d/ q# X0 F& S - (if (and flag
7 D( D4 s* e% d1 t9 J- R0 R l- S - (= 1 (logand 1 eflag))
; p/ l0 \9 Z/ c; y7 `# I, j( Y - (not (or (distof (get_tile "poly_elev"))8 E# N6 f0 {3 b+ g; R" a( Z
- (= "" (get_tile "poly_elev"))
1 W1 @" ^0 @+ j$ [- ^4 Y - );or
( B1 [' F8 C; g/ |# i& t( E - );not8 u+ T* m. `5 J% F. e3 t
- );and* c+ l# p4 z9 Q! G! [. {
- (progn4 D9 b3 e" A: A$ }+ T
- (set_tile "error" "Invalid elevation.")) F" y0 m" C7 k& i3 b0 |
- (mode_tile "poly_elev" 2)7 D/ K: X" H$ T6 O- a9 r+ [( s
- (setq flag nil)
7 O4 h: j0 R! W7 e0 }0 X - );progn then# A0 X7 {" \# R0 L
- );if ! i$ V* E. [% o+ b/ C! G: I: \
- (if flag
) h' u4 z) K. S; H5 N - (done_dialog 1)
1 A* J3 C( |6 S+ s - );if
* c2 A# f, F5 D/ L - );defun test-main-ok9 n I4 e* }5 q2 Y, H/ I
( P l5 r# W4 M+ e2 G1 ~* C z- ;;" p1 @2 y" m) C6 R; l I8 w! h
- ;; A color function used by getlayer.+ c! n# {) _ F- U6 r- k
- ;;5 ~, Y0 B7 x4 u
- (defun colorname (colnum)
' e- d8 A; V u2 j8 c- G' P - (setq cn (abs colnum))4 u- ]) a/ H3 j! C3 F& ~
- (cond ((= cn 1) "red")
6 j" x9 d8 O# |1 s8 Q - ((= cn 2) "yellow")
3 W* X, w3 s7 p! J - ((= cn 3) "green")1 X" y G$ l+ i0 k+ |
- ((= cn 4) "cyan")& |* K6 K. B8 w3 `" B, t
- ((= cn 5) "blue")
7 U5 A' c1 B6 `- i/ _$ X - ((= cn 6) "magenta")2 R5 y. Y3 C( i1 B
- ((= cn 7) "white")
& q0 u/ y& t' @ - (T (itoa cn))
/ j, Y: k4 e8 O - )
9 E4 S! G& l0 B$ i( Y L# b - );defun
; h" c% h) L# c( k- D2 v5 C1 m
$ u( B) S( h; d- ;;; Construct layer and ltype lists and initialize all
3 k, {8 F4 V& m: h& Q& M# o9 H - ;;; program variables:- H$ ?$ ?& p; Z
. b3 V5 t" s7 L+ g2 W, [6 \- ; (makelaylists) ; layer list - laynmlst; n- V G: C0 l; Z) d
- - V) H2 o! o" q/ y2 [( S5 @; q, x" K
- 5 a1 L) `3 p1 n' f5 ^, b% W
- (makeltlists) ; linetype lists - ltnmlst, mdashlist& a L7 e$ j% r' Y# ?/ Q
- . B* ~) f$ e* ^/ N
- ;; Find the property values of the selection set.- h/ B' k7 i5 D5 n
- ;; (getprops ss) returns a list of properties from# v4 M2 I0 {# F
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
% x. K7 y9 K7 j! v- O. \& @
$ r+ j4 [' H' e0 Y; z- (setq proplist (getprops ss));@rk interesting things happen here
8 N' I1 C* E1 e3 G1 I
4 \- z" v' \- f' _- (setq) e# z0 w8 D# ?+ K3 c8 c- g* ?
- ecolor (car proplist)
4 c6 \: @4 O/ D/ g5 T- E - eltype (nth 1 proplist)# ^4 N& i; ]" i+ N7 A& f9 a
- elayer (nth 2 proplist)
/ a& q, R O7 @: h0 w0 y - ethickness (nth 3 proplist)
7 J" o) k" H2 h5 u# N! M - eltscale (nth 4 proplist)
& K& l; e# y" O0 I - ewidth (nth 5 proplist)1 A0 Q" b; q, T" G
- eelevation (nth 6 proplist)
9 H0 d# ~. W) K+ k6 ^ - eheight (nth 7 proplist)6 _. I% @3 Y& t8 |% X" W& V
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
1 w/ T6 r* c+ C* e$ o P+ B) X - eflag (nth 8 proplist)
5 |" a+ @, t8 \- _+ d5 M8 M% {+ p) U# @ - estyle (nth 9 proplist)& F+ T# |. [0 s% E1 R
- poly_ss (nth 10 proplist)4 y. L4 r# N% E2 g* ^0 r! n. l
- txt_ss (nth 11 proplist)# S* f+ p% t2 ^% W& i
- );setq
: \' L% N* c3 o7 L7 p1 v) m5 q
2 f1 h* O2 ]2 U* T. B" ]" `/ t. q- ;; Find index of linetype, and layer lists
6 w2 t; P6 |6 J1 @# a - (cond9 U$ E, s! J6 }5 V" @( i# y+ I
- ((= eltype "Varies") (setq lt-idx nil))! K) D' F% m8 G- Q6 r2 u( U( v
- ((= eltype "BYLAYER")
6 a$ p" l5 t* [- w1 Q& d - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
# w0 t, v% k- \2 S - ((= eltype "BYBLOCK")4 r% z. w5 j9 o
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
# k" G4 e, R. \ - (T (setq lt-idx (getindex eltype ltnmlst)))
" P! Q: O) S( N7 j - )
* D5 K4 [7 z. e( c - (if (= elayer "Varies")
2 J2 o0 R) ]) Q - (setq lay-idx nil)
( G1 E- ^! W4 F+ d/ n - (setq lay-idx (getindex elayer laynmlst))
; b( D% ^: `) M7 [ - );if; V4 U- O6 X% L, A5 s+ y5 ?
- (if (= ethickness "")! F4 K% f- g+ p' _) F( r" D: L% T
- (setq ethickness nil)7 m2 f$ x+ n9 _9 B4 H
- );if. r* e5 ~- j. t+ I& L: j0 ~2 R
- (if (= eltscale "")0 z# k% z1 ^* {( u
- (setq eltscale nil)
$ f) o" I1 p+ }) K* i$ O$ y - );if+ O8 q: _8 F6 T* E7 n3 U
- 9 S9 B9 n9 e2 H& g+ [" `
- );defun ddchprop2_init ; end (ddchprop2_init)* \) c6 _) v" @% b% H
- : F# @$ U+ g- X& [' \/ G1 i6 c9 G( z/ ]
- ;;; (ddchprop2_select)7 ~' Q% F( x2 p+ J& f8 y: i
- ;;;
{. ]% Y: \# W, M0 t x - ;;; Aquires selection set for DDCHPROP2, in one of three ways:9 X! f3 I' X3 f; O/ n8 f
- ;;;
. \0 h% [2 U, J6 q - ;;; 1 - Autoselected.
( e3 {2 M% ^- O3 N* i# I) b, s - ;;; 2 - Prompted for.
9 k8 l4 ?! e" B# C - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )0 ]- Q. a. O4 D6 r' K' L6 O
- ;;;
8 l3 d/ n! T8 c7 O" z - ;;; The (ddchprop2_select) function also sets the value of the$ \: x9 n! M0 E9 z# J/ e0 U
- ;;; global symbol AI_SELTYPE to one of the above three values to
! u$ N; C$ B* e; n: \/ n - ;;; indicate the method thru which the entity was aquired.6 _" Z& S2 S4 ~2 c' l9 a& m0 I7 _: z c
- 8 `. G8 k9 E0 m! r. v! Z8 i
- 5 s& h- y0 l: w3 N
- (defun ddchprop2_select ( / )
: B, }* G; s; }' f; b8 H7 [+ ]" @4 k - + Q$ s, F2 @+ G
- 2 k& X, m2 u6 p+ c
- ;returns only entities in ss that are in the current space. . s/ J; ^3 V {: a W' w
- (defun ss_in_current_space ( ss / a cur_space ss2)
. p' M6 w. G, A1 @
( T$ U! t5 J! G; a$ _/ {- (if ss
8 U* o; L: p$ L' h - (progn. y8 k! z& N# h3 f- ?' @$ G, u
- (if (and (equal (getvar "tilemode") 0). A: {$ j# R# f/ z }
- (equal (getvar "cvport") 1)
+ j9 c2 h! _/ z1 T. i+ H, | - );and
/ ~8 \: K; M, u' m f - (setq cur_space 1);then paper space is where we are.0 ^3 I+ S) b) q( A) L$ P) P
- (setq cur_space 0);else model space." T/ P7 r- E- Y1 r
- );if3 B6 i: I5 z& U) r# x/ |1 f
- (command "_.select" ss "")- o5 v/ t0 a0 M5 y
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
) `) S2 Q9 k: v - (cond ;;;;;tell the user what's going on.
7 |& k" } l4 E - ((not ss2) (princ "\nNo objects found in current space."))
+ T; |. Z; H4 V8 g J - ((not (equal (sslength ss) (sslength ss2)))3 l$ [/ W$ b4 ?1 _( s9 L" P/ m
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))* ^- x& q9 @4 ^1 i2 L) m
- " object(s) were not in current space."( J3 F3 ]# h" X5 j2 J4 {
- )
6 X& x; a$ T* q' I @ - )
1 _* D8 J6 S ?& V - )
! Z2 q s3 W+ ] w$ m5 h$ ?: c5 ^ - );cond
# \/ ?2 c. j( _1 D. C# e' v" f) [5 W; Q - );progn then% m( B* F" W0 z a6 W. x
- );if
! K8 [: d* d; y3 K' G - ss24 i* z1 T, T2 ?3 ^1 b5 w6 c
- );defun ss_in_current_space
J: V" F8 H9 M
6 v4 B. N! B( {0 s9 w- m! `) C, V4 a
- ;;;begin the work of ddchprop2_select
8 ?8 }! D5 E P -
2 v: ]: z5 ]- u+ M3 q$ ?: V - ;; temporarily restore original highlight setting./ S0 Q) d4 U5 r6 ^1 W
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))5 \; J1 H9 f+ |- z/ z
- (cond
) r; n) k9 x& J. ^ - ((and ss . }% ], T$ y h8 y. |1 J6 Q. i, ?
- (eq (type ss) 'pickset): c! N( l$ s5 q8 O/ j: d' J
- ) ; selection set passed to
7 z- V+ N9 A7 a ?3 k8 n& h - (cond ; (ddchprop2) as argument
; F$ g1 b' M! k( P - ((not (zerop (sslength ss))) ; If not empty, then& K: I3 M/ l K
- (setq ai_seltype 3) ; then return pickset.
2 a4 U" S4 ~2 R& h - (ai_return ss)4 _. C5 z' z! B6 }4 @5 x
- )/ C2 Z% V) k$ I6 P3 i
- );cond close
3 r9 X. l- q6 i3 q) Z; ]- @ - );cond #1% A* T, j6 j" U8 Z2 B
- ((setq ss (ai_aselect))) ; Use current selection
& d1 ?3 H+ k. p - ; set or prompt for objects
' c) @9 W+ _- B - (T (princ "\nNothing selected.")/ }- R$ R- ?" Z8 Q, w s# J1 H8 K
- (ai_return nil)
2 x! Z- w5 j& R' S' z' d' O4 c+ ~ - )
; a6 g& @3 u+ o - );cond close
2 z$ P' N4 ~4 k# o: H7 X - (b_restore_sysvars)
: z5 ?+ P7 Z, S# R, I6 {
& t4 Q+ w5 l, } t. E- ;(if ss4 l& r# ?$ |% b2 }' a, A
- ; (setq ss (ss_remove_locked ss)) % j+ t' x& R- X) \, d
- ;);if/ @4 r V; a: g2 Y) c |5 O. m
- (if ss
2 P3 Y* p. a' }4 O" c/ x0 c: ?8 v4 z* r. k - (setq ss (ss_in_current_space ss))
; ]# {- `4 x2 T2 L2 ]- b3 h7 _ - );if
) m1 J3 ^$ S- u7 ^
3 `3 `* U; N, y L% h% ]( K5 G- ss
6 _' D3 I5 J! K* D, o& K, n1 Q) [ - );defun ddchprop2_select( g; k: V4 w# P% \( M: ?; y3 x
- ( G j- e2 F; I- P7 ?2 g
- 3 M& M9 }7 R1 u! r/ D! A
- ;;; Define command function.$ ^, H" X1 H4 i& \4 y6 H8 o
- (defun C:CCH ()
; \' s- M* @0 ~* u* b$ a) ` - (ddchprop2 nil)8 D5 h: N) ~5 E" }; j! s1 d, g$ A
- (princ)
% g5 Z! I7 l4 ] - );defun
9 u% N9 f& J" ]
( g7 x6 |3 k# z9 r% c i
, p4 l% Y- v, |5 K" e) Z1 G/ `3 Y- ;;; Main program function - callable as a subroutine.. V: t$ F: l. h4 V
- ;;;1 ~& I/ F* V( z- j! g7 c
- ;;; (ddchprop2 <pickset> )
1 ~3 L2 Q! p7 p3 \# k9 @ - ;;;
+ N! u7 U. q/ Z( F - ;;; <pickset> is the selection set of objects to be changed.
& Z! [4 w D' g5 m; [ - ;;;1 t3 ~+ y a" ~
- ;;; If <pickset> is nil, then the current selection set is
+ w5 O$ [7 X! o" E+ B - ;;; aquired, if one exists. Otherwise, the user is prompted6 }) N1 V0 x8 C0 r
- ;;; to select the objects to be changed., |6 \& G4 G0 \
- ;;;9 A. `) D! l, c( j& @
- ;;; Before (ddchprop2) can be called as a subroutine, it must
& b8 ^/ P+ X0 L$ O( ?* ? - ;;; be loaded first. It is up to the calling application to
8 @4 N) s% ]1 E% k" t P* | - ;;; first determine this, and load it if necessary.
+ r+ h9 b) r+ O# x, `
9 E8 ~; L5 s8 l3 F, I- (defun ddchprop2 (ss /) d! K$ U! _1 ]5 V n+ `' W% d# X E0 q
. `+ M( ~9 e% }6 d- T7 H( r, a2 Q- a
5 S+ Q' P4 w6 A, @; e5 @ - add-mdash
7 Q. P* d9 I s/ L- O7 k - assoclist
4 F9 w8 e. z- s' p; ~ - bit-70
1 P! {, T ^% f: l! T7 T3 u - boxlength
1 w8 l% M4 `' ?) `2 A8 W - bylayer-lt, |5 w6 O. _" |9 e+ e/ { Y4 w0 |. n7 G
- bylayer_col: B/ K2 m9 A) f
- bylayer_lt
+ Z, I7 E4 h8 n7 }# ?! F. J - call_chp27 T" z) ^2 [; k! k
- chk-col
% t( h+ R+ q+ F1 I) j - ;chk-etype ;var removed by rk 8 O! o8 k+ a( S
- chk-lay
4 o. ?% d7 _- ?+ n5 w y1 B; L0 m - chk-lt+ V' W3 g7 }' P$ Y$ W7 x# R# z8 P
- chk-lts ;var added by rk 8 ?4 o, G8 b! h& }; ^
- chk-th1 E0 l) X( V' W9 E
- cmd" {; e5 @3 @ y8 x
- cmdecho
7 P: s- \: U* Y2 r& ?5 {7 A - cn
; W( u, h; G3 M6 F! H- ?. R - cnum& X1 u* i! ]( j* n+ ~: t+ ^3 }/ g2 [
- col-idx
0 ~- x; w" y/ ~+ P7 _ - col_def6 v8 H" k# }6 J+ U6 k( Z
- col_tile
6 ]& R" x! C; U2 a' a! C - colname
7 v3 d+ o) i5 R" _& ~+ q/ h f - colnum
: ~1 N9 C, v: g3 H9 K# d+ a# G/ m - color1 W! h& b. M' U: s! ^
- colorname
1 Q' A4 q8 \+ l& x& \ - cvpname( C$ f7 K: E1 _8 e4 `9 P8 I0 t( b
- dash# T7 P; y+ G$ _; X$ z1 g
- dashdata l8 [1 i/ ]( Z+ n
- dashlist
: ]( x r6 K2 G! S P) i2 J+ v - dashsize
?3 P6 I+ D, D+ y - dcl_id$ Z W5 i3 S: B3 m. j) l
- ddchprop-err s# o3 D# |8 T) T% ~; h! s
- drawpattern$ K- E1 A$ F: c Q) ^5 \+ E
- ecolor0 U% J. r, y Z6 A7 _( ^
- eelevation
+ V9 w% F0 ]$ p# f0 C7 b0 ^2 v7 d - eflag5 V% M0 U8 i4 P$ F7 }# m
- eheight
, Q1 R2 _3 K- b7 {% p0 v - elayer
5 k9 E C1 N" e - elevation+ t$ @- K. `9 s: m( \
- elist9 p2 k# H$ C& E! O- d
- eltscale4 p+ d# E9 t: \& B ^
- eltype# w9 o* O5 o% |
- en/ B! a4 M8 f% [( \: N( c7 h
- ename' W+ p5 |: i/ ?
- ESTYLE ;var added by rk/ C; B9 w( m6 d7 w2 G! \8 Z' O
- ethickness
+ U- f. Y6 U0 t; c# ]' b# u5 D - ;etype ;var removed by rk7 \5 {- o- M7 W+ Q5 I
- ewidth4 @$ T) T! y* i. O' V, n9 Q
- fchk
0 C! B" _1 }4 q: W8 B: z) v - frozth! Y3 w& s* {& k* F3 U
- fx2 c2 Z! T n% }& U3 M+ V
- getcolor
: O M0 |8 V/ s. t/ I" r - GETELEVATION ;function added by rk" Y Q# P l; F; ]$ d6 c( K2 l
- GETHEIGHT ;function added by rk% y4 k N7 D. ?% U/ U
- getindex
, m+ f1 B& q0 P9 k4 z - getlayer0 _8 v/ d' F5 R% o) |4 S
- ;get_locked_layers ;function added and then removed by rk
' E; I. d3 F5 {( q w - getltype
* I. `, u9 g- K, b - getprops
. v1 ~ O. y& ^& T/ F' z" W+ J: p - getscale ;function added by rk' l' `* }/ e4 i9 I- g
- GETSTYLE ;function added by rk
' Q! N O) t8 w2 k* o - getthickness" s/ B7 @5 M" B7 q
- GETWIDTH ;function added by rk
) R$ o/ M# j, z$ I# k+ C: b% ` - globals
8 C8 P0 \4 F' r! c1 | - HAIR_STYLE_LIST ;var added by rk$ Y z" T/ F( D; G6 A" V
- height
% l7 y6 ~5 _7 H! Z - index% X5 |7 m3 A7 e! w1 M/ T6 @
- item7 B6 e( {4 S2 j! W6 ~+ T3 x- Z0 s
- item1
0 d$ J5 u/ ?+ H% w# w$ y - item21 i' }8 ^7 d* p E: w* U9 A/ {" x* F+ \2 _
- itemlist
, H9 C: Y" K5 j8 ]9 x0 t1 L - lay-idx* t) Y/ Z, @6 \) q$ T) Z
- layedit_act4 @- `+ T2 f" D: i8 ~* v' P) J1 y+ E+ [$ M
- layer Y$ [ X, D$ C- ~9 M) A) a( g
- layinfo2 e7 p5 T9 i. I( e
- laylist$ b( A% e0 {8 P; @; T9 o
- laylist_act
/ n4 b' ~' E) Y# w& A7 Z5 G! f - layname
/ L/ u2 n' d9 W9 B% X2 ?# L - laynmlst8 h8 w5 u" L, U
- layvalue( v- b' ^, |0 R" C& o/ n
- linetype/ S0 ]; ^: T& q2 Q$ F! u. m% F% k
- list1
& a3 |& [0 [# Z g8 d2 y* } - longlist4 u/ @$ J& K' l. O6 N% N
- lt-idx
/ k, L3 ]# [, D6 v9 h) n8 d% P - ltabstr
' Z* L! }, v/ I# l) y - ltedit_act
! n& r B' M- ] - ltidx
+ D% D% u1 F0 |8 `" ~# s+ R+ V" C - ltlist
" i( w6 ^& @) C. _ ~# N - ltlist1
4 r% x4 Q$ S" j& e( ?& b - ltlist_act% j% d) R$ Z. L" _
- ltname
0 M- f2 t0 N" m/ p% o' { - ltnmlst; J5 J6 y0 @9 F7 o- R7 M; M
- ltvalue' Q) \+ a1 {, m( e
- ltype
6 n; A1 K) x8 `( N r& x2 t$ P - m; O$ I$ L" j5 v7 W1 [5 t
- makelaylists
% U& R8 v4 E k: q! `% i& ~ r - makeltlists6 N% w2 g6 H! N' T5 H
- match-col
( I" f7 D9 Z+ g) a0 J B& R - ;match-etype ;function removed by rk' Q1 f. L. ^" q. {3 O; T
- match-in
2 e1 L* q* u: t2 B( r8 } - match-lay2 T; n7 A. i% u; ^6 v
- match-lt% l1 I; n" R9 v5 w2 d
- match-lts
! Q/ b' U f+ c - match-th# n/ I0 R$ s* H! _8 u3 Z# z
- match_col
. c0 A2 ~' a# q1 e0 Y - mdashlist# i2 V: l4 i [. s% i/ g& f& O
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
& f3 R' W' Y: r1 u# l5 j5 u! g& | - n. j6 U; R4 J0 G8 n2 Q
- name
6 I/ x- i& I! O( N, E - ncolor9 `% Y8 {" |3 u7 U5 {
- nlayer
( G) s+ x5 x% K7 `3 s - nltype
N- }9 J* C2 Q: n: a/ ` - nthickness' z! {. D- [0 R6 M: C: A9 S# _) x$ K
- off
& y- @2 \. d* z6 [- |& V2 a - old-idx7 x# p, i0 v3 x: ]
- olderr6 ~9 s. S6 ~5 }
- on
7 A: d! k- c1 {& h7 m+ i4 ?6 w - onoff
) h* `9 a/ q6 c2 i' ~+ S3 }) d0 `& e1 w - patlist
8 p1 J( W9 @, l5 y - pattern8 L4 Z! }! z' z! T
- PL_WIDTH_GETTER ;function added by rk8 }- i* ]* M. o3 g
- POLY_SS ;var added by rk
5 m1 q6 e0 ~+ F+ n# k - ;POSITION ;function added by rk and then moved to ac_bonus.lsp
: y+ q- J# C2 F* I1 e8 M# P) ?& y/ O - proplist
- _7 d! {7 A+ b - reset-lay: E Z% D, c' W2 _. m) R+ d
- reset-lt8 C' A# f) I6 f: \6 G( S
- s, z- d0 ^' ^% h5 L& e q# i9 a1 D9 \3 t
- selset
# u% H. {! O! @* E7 O) S - set_col_tile
" q" [& q' ~ T - sortlist
' i- w8 ?. N Z; V# `+ c - ss) \4 }7 |5 G; U+ h6 G3 g/ o1 Q
- ss_in_current_space ;function add by rk.
" _) D7 I7 w, u$ W) V8 g - ss-index
! ^. P9 o' W* l* Y! Q - ss-length1 y5 U. i- i7 I8 d
- ;ss_remove_locked ;function added and then removed by rk.
9 Y1 Z+ {8 m4 M% k! h6 p - sslen" A; z. {6 o, x; o- C: S. K6 V3 o2 \
- temp_color
! z& E8 N0 Y3 C. e9 ~( D- I3 O; n7 R - templist
U ]8 Y2 `; I/ I6 |3 U5 f3 i& K - test-main-ok. Q4 o1 j9 `8 p* }+ r6 L
- test-ok
2 s9 ^( ^, u9 P& `- h5 V/ T - testidx9 g0 V; a( m$ j" R K# _, [
- testlay
4 F3 _. h6 i/ M5 P7 i3 i - th-value5 e# V! n) |) Q) ~0 i- `7 K1 V
- thickness
6 m& Y+ Q$ k# } - tile9 g6 Z t [1 r- K( P W
- tile_rect
8 N5 l9 x( Y+ T8 t/ M- o - tilemode
0 x% K: O4 g- c9 E2 x - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
2 T1 @* T+ r: }! g) [. F. \# M - TXT_SS ;var added by rk
* ?* ^0 F9 k$ B$ k) C* N- Z - ;undo_init ;removed by rk.
( A: g0 f4 z3 V+ Y! I - vi
4 [. m* W1 I) K/ _. |( [% e - vpf
" E- h* V) O3 t, S - vpldata4 @5 I0 r; a- i9 d& Q! O0 t2 s7 o
- vpn( w7 K* v, D X. i' ?
- which_tiles
9 I( s1 ^. L/ p A3 l9 S# K7 y% U2 f" D - width
2 c x" L1 I9 g5 q4 @$ z7 n - x
1 c1 j Z$ C" x+ t' |- s - x1
* v6 G( a# R6 X( s3 I( _ - x2$ C \: }8 p; w, x F2 y
- xdlist3 v* `) ?( x! [& ?2 ^
- y0 A: _4 v# x5 F! U3 p
- y1% O f/ G* _% m6 ^6 Q
- y2
m% \0 E% s, Z3 B/ l. ]- ?' B - )1 E0 J$ C5 R/ I- v( x/ a
8 |9 f u1 y. i: I [! I9 e- (if (and (not init_bonus_error)
; [' J* ?# L7 E - (equal -1 (load "ac_bonus.lsp" -1))
, n/ c7 x0 W3 O( s- {% G. D - );and( I4 z, x) l$ I) Q5 V( G
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
' X; L" h ]' U9 d - );if5 A% r8 A( G# {8 G: C
- (init_bonus_error (list$ t3 {& i( s) u4 v. g
- (list "cmdecho" 0 ( i) K4 N" @) J" g* @, P' s2 w
- "highlight" 0* A. \: y% t7 s) R; o
- "regenmode" 1
3 l/ B- h+ ]; v* f R - "ucsicon" 09 j8 i& E' h/ q7 P I
- )
& M6 Q k; v, f" I7 A" u7 U - T ;flag. True means use undo for error clean up.
: D+ I) T- i" A - );list
+ z8 q+ y3 P! r3 ]3 R: b6 \) O - );init_bonus_error# J4 x. F5 V4 M$ P
- ! X) E/ i% m6 g1 l
- (cond
: P) f X1 L/ s/ a - ( (not (ai_notrans))) ; Not transparent?: B2 X2 v4 l5 l
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
5 I8 P$ n1 W- N- ^3 C! q% M' e - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
6 Y ~4 j5 a8 Z/ i2 D) L+ c8 G - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
- h2 @) y3 \1 e5 _% y" t - (t 7 Z9 G" U& f5 H3 p" i1 O
- ;(ai_undo_push)
/ [* M N+ j, D* Q7 W u2 }0 y - (ddchprop2_init) ; Everything's cool,, v3 s+ ?6 x: \; [9 S8 j
- (call_chp2) ; so proceed!) S, O% P) W' F6 v! F- R
- ;(ai_undo_pop)
7 n: W& [8 m1 G - )
7 U) w! G+ X5 c Z - );cond close! j2 u! ]/ }5 M* F' T) ~& N) |- p3 w5 T
- 5 J) n: o6 @( G# c+ B
- (restore_old_error)0 X! o% L, O' B) K2 B# g, x
- / V) F$ ?* L& W+ W- _. w' t' Y
- (princ)# V" d5 @4 O h- ]8 a. i
- );defun ddchprop2& {! g9 ~$ T7 o8 v3 d9 |' d
- 0 h$ [# ~ y6 m/ `) ]3 U
- ;;;----------------------------------------------------------------------------
% W/ _7 l1 z" U - 8 i0 j' ?9 T& z( Q0 Y
- (princ " EXCHPROP loaded.")
. [8 Y$ D' i7 q R. }! X! g - (princ)$ Z3 k9 s# _. }0 A1 W: c
- 7 D; E9 r. v$ k: X, h* t3 O( Y
- ;;;----------------------------------------------------------------------------
& l$ G( I5 @6 x3 P$ Q - ;;;---------------------------------DDCOLOR_LSP--------------------------------' u' U( _0 V, ]) z0 V+ B( V0 Z! u
- ;;;----------------------------------------------------------------------------) u2 g) n6 M* d( c5 Z& l. x" J
- # h- w1 \% e% n
- ; Next available MSG number is 24 0 u7 X2 F# E4 j: h4 b9 z5 N
- ; MODULE_ID DDCOLOR_LSP_6 |3 x, N4 s! G( D
- ;;;
7 c8 n/ L* t$ T - ;;; ddcolor.lsp/ s( s& ^0 j; U4 V/ `
- ;;;
, x5 f) m: O8 S5 e, o# p - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.1 s, S0 q/ ]8 Q0 g- G( k
- ;;;
$ c8 H/ C, j6 M/ j& ]- A) [ W - ;;; Permission to use, copy, modify, and distribute this software
* s$ A' x) M' l6 G% D- J& u$ n/ g - ;;; for any purpose and without fee is hereby granted, provided
: \; ?$ e/ u% ~7 { - ;;; that the above copyright notice appears in all copies and0 T, o* Z" w# b, f2 `; A) W$ J
- ;;; that both that copyright notice and the limited warranty and* W: ~0 e g. S- ^* L9 T( _
- ;;; restricted rights notice below appear in all supporting+ g, o8 P: ?5 r6 g
- ;;; documentation./ x: c4 F' [% Q2 M* }
- ;;;
# p: m, a4 @1 U* X- }6 X- g) j - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.5 R* u. p7 j4 K* S, e: {1 n
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF, ^6 l( O% w7 _: E
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
+ O( M9 q1 _1 j) m$ z9 B4 e& ^ - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE+ E& T; X& N+ }8 j- u
- ;;; UNINTERRUPTED OR ERROR FREE.
. P+ u" L8 S+ K" t3 \3 C, S - ;;;$ X' _1 S& E/ d B
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
: ]% f+ S H! }) F$ l - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer$ k; c u3 L, U1 I
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) , e* S$ O y3 n+ ?6 B; m
- ;;; (Rights in Technical Data and Computer Software), as applicable.- T; x" ?/ n9 l+ b6 I/ z0 F5 [( M
- ;;;2 _( s# z! A L' p: N! Z& Y3 p
- ;;;.( o% Y! t; t' }7 \- H
- ;;;
1 ` u4 L3 I, ~ U2 `3 H, @* z - ;;;----------------------------------------------------------------------------4 Q+ [0 `1 u5 r' ]/ R
- ;;; DESCRIPTION- j4 ] _( o9 I3 R7 z' N& D+ N6 N4 T
- ;;; 1 \4 ~( m, _5 ]& G. A2 z
- ;;; Chromatic Pallete style color selection dialog.
& [7 D a, b5 y# i# v" b t! z5 `$ I - ;;;
& Z1 W) A0 d* ^+ ]. k0 g1 Y5 e0 U - ;;; Globals:
- t' \$ [. ?/ n- n, X7 E: F - ;;;
* G" p( s8 X; d0 B& `" ~ - ;;; chroma_color - Integer color index. The last value selected9 h/ ^# l' R) `. Z% J4 Z7 d
- ;;; by the user in chroma dialog. It is not cleared or reset
% v: d, h# y+ G2 Y& A! [6 A - ;;; by a cancel. Only used for communication between callback' W2 ]( F6 U! A5 ~2 k
- ;;; functions and the (chroma) funciton.3 ~# S: V0 A" A' H
- ;;; 9 c6 t0 o: X" J& V7 T- [
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.- Q7 u' c5 s V9 k: C8 ]+ S
- ;;;
$ u4 x2 R: t% A* W/ g) x& W0 i# V - ;;;
' T: J; s" {$ E6 v7 i9 c7 m - ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma 6 X; h6 A3 ?1 X
- ;;; pallete style color selector.
F4 f+ ]9 h; i: d6 z. |# u* d - ;;;. D7 ]9 C# c9 ]$ T% B/ z
- ;;; ===========================================================================% E7 p) m, b u' B. \1 ~- V2 u
- ;;; ===================== load-time error checking ============================; I0 L! y' X- H; [" q9 w
- ;;;
, s8 N6 y3 o; j - 7 v" j* B. v! s2 ^
- (defun ai_abort (app msg)$ q8 g; i2 K+ Q1 X
- (defun *error* (s)
! e, F) y. ^- \ - (if old_error (setq *error* old_error))0 k* S/ [6 n( D6 W
- (princ): V6 E- ]: Z' |% K% \ h+ M
- )
; j6 t$ r4 k! g3 [2 S( f$ V - (if msg) c# q2 g, p5 b1 ?; H3 O! x% u- n
- (alert (strcat " Application error: "
( r7 w! }: \/ G* y$ @9 ^ - app! D: n* d$ Z1 @: P. p8 S* K i# {
- " \n\n "5 V- D* Q5 {3 T- X
- msg
, T3 x6 P7 Q: v - " \n"9 W- Z9 ], V/ B8 X% o2 @
- )% H, N: k+ \& ]! L
- ): y8 e6 R2 h% A4 H: @
- )
- e; L. t* w7 P+ W2 d* l - (exit)
) T g' l/ i* k/ b/ T' \$ ^ - )
; j- _. j2 G( x, w; _ - + W' E" h+ V9 x: [, t
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,# k0 O% C' e. D
- ;;; and then try to load it.; x$ ~# K$ M1 y
- ;;;6 z2 ~5 g( F+ U* {- k$ N
- ;;; If it can't be found or it can't be loaded, then abort the
0 ^) h/ y2 G% [" D6 @% U - ;;; loading of this file immediately, preserving the (autoload)
, }% R+ t& V$ }0 G6 n3 H W( \1 m - ;;; stub function.
0 z( C. h" p3 k# h - - j3 c$ F4 I y2 T4 C' f7 a9 L
- (cond
4 ]4 |8 m! [2 n, N: o - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.5 w& Z6 R' r7 M" t% O$ n
2 ^1 f( ~' f8 m- ( (not (findfile "ai_utils.lsp")) ; find it
`9 ~+ q* d* E/ p6 S - (ai_abort "DDCOLOR"8 ]3 T+ q6 e* l6 n3 R4 X
- (strcat "Can't locate file AI_UTILS.LSP."7 @$ \$ L$ h4 g( s
- "\n Check support directory.")))' D% s: o+ ~! \% o
- + l; G6 ^ X6 W0 v6 M- V
- ( (eq "failed" (load "ai_utils" "failed")) ; load it& g! z2 s. F0 L* Z3 A3 f9 `) p
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP")), ~# y, q9 m, w0 P
- )
4 H1 ?+ Q8 A @) L! i% ]8 ~
) Y1 g4 K& b" a/ o3 J- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP$ R3 Y& s( q4 S! l' D2 C9 ^
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses ]+ \/ Q( E/ a
- ) ; ai_abort's alert box dialog.
, D7 k2 C, ]1 P6 {" U1 o, U
+ q; i) P6 z# u% q1 ^9 b- ;;; ==================== end load-time operations ===========================
8 Q% H7 O( ?1 t
, I$ A, Z. J5 V7 t/ L" R5 t- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)# ~; s7 ?7 Q* T9 B- a) V
- ( A3 N6 [* g& g4 U
- ;; Main Color function, called by setup code.
: V$ ?! n. j6 o* c - (defun ddcolor_main(); c1 P$ J' m: r1 o
" w( X/ q) `% P- (graphscr)
% Y8 F, N6 T( F8 f - V& v# ^- l* x3 j: g) Z1 o/ O
- ;; Get the color of the current layer, for possible BYLAYER color swatch.
6 _6 |; q; y# [: q - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer"))))). b! r) i7 M5 W8 O8 g
1 s* w4 X' h2 i/ K$ Y2 v- ;; Call the dialog here...
6 i$ }& b" E4 ~/ O - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
# J3 G' R7 q, K# h4 X P" _
- u* Y" r8 m c( p. E% Y- (if clr0 r3 w# t. I1 i- R: W+ ?
- (setvar "CECOLOR" (citocs clr)))
- ?4 N& ?; b0 S/ H9 V1 E- g - )
; F* I! v( Y2 O/ [( Q8 z3 e, Z" J
5 K5 j' {6 b) j1 h- ;;;" T- I% o" q4 N. r. Z, [
- ;;; CSTOCI -- Color string to color index
% _, D' k T- b) I4 ^ - ;;; Convert an arbitrary case string into a color index.7 w5 T6 _$ R3 ~" }6 Y, a
- ;;; Returns nil if string is not a valid color.
2 {4 |* u( n" A8 { - ;;;. z9 I- v9 @2 K; t0 V, {
- (defun cstoci (str)" e* I3 D( k1 s5 K, ]
- (setq str (strcase str))
+ m3 x# k5 H/ d& t - (cond
+ U: |/ l1 a3 n i) h0 c - ((= str "RED") 1)" d! \" Y; p6 E/ {) f5 @
- ((= str "YELLOW") 2)$ U, X6 w1 Y; }0 O
- ((= str "GREEN") 3)
5 t, A m& z' Y+ X, |" F) l l! G - ((= str "CYAN") 4)
) H' T+ f& j2 |6 K# ]$ _ d# l - ((= str "BLUE") 5)
9 m3 a, {5 ~, s2 f) b6 O - ((= str "MAGENTA") 6)" i3 p" }$ `1 q3 Q+ p6 Y& r
- ((= str "WHITE") 7)6 W. F/ F$ [- Q9 ?2 R
- ((= str "BYLAYER") 256)
8 f. ` U, T5 j - ((= str "BYBLOCK") 0)
. a/ s& y) f; |2 v9 @2 q - ((= str "BY LAYER") 256)0 U5 q8 W. ^& Q3 Z4 c# x4 a
- ((= str "BY BLOCK") 0)
& i8 d0 E; W4 m, t' E( f7 ` - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))* ^2 S$ Z1 n2 G/ q: t
- (nil))
% b1 _5 H& F; O5 Z% Y5 Z9 ~% Y - )
. m+ T" d* g+ f/ z3 ^
$ Y; u2 j7 E% j' N
& z9 Q) ]$ e( ^$ I- ;;;" ]7 e- T: @) [# S8 j1 A/ w! Q
- ;;; CITOCS -- Convert color index into standard color name.; B! h; @; t# M; J; ^2 X
- ;;; Will return the standard and logical color names as text. G+ Q; D h! l9 V% x! l5 g
- ;;; strings. Returns nil for out-of-range color indicies.( A8 q- j6 j$ I# }6 o* o
- ;;;
& I+ C6 E5 H$ H' r - (defun citocs(i)7 l6 d% Y6 k" e. K) k Y4 l
- (cond% L. x3 Z2 I: I& x
- ((= i 0) "BYBLOCK")( t9 b& u9 ?* J( @
- ((= i 1) "red")# f* _: N: j5 h. _- A+ F
- ((= i 2) "yellow")4 L, ?! G9 l: }. o7 h2 h
- ((= i 3) "green")
1 w% Z2 |1 J8 z - ((= i 4) "cyan")0 @" S/ M+ W' ]) Q+ L8 ^# G
- ((= i 5) "blue")* Q/ z$ V: w, K; i
- ((= i 6) "magenta")# u* m _0 d5 X5 z+ T3 L
- ((= i 7) "white")
# U% L7 c5 ]) z8 C& q y - ((= i 256) "BYLAYER")
% Y" z/ x: X2 K - ((and (< 0 i) (> 256 i)) (itoa i))* M7 k! y5 l9 L
- (nil))
5 C3 U6 N& P1 g4 s" d4 P9 r - )
9 }5 b5 p0 T( f% @+ b' r& u( ^
( Z/ ~$ @# Q1 A6 N8 G8 V- ;; Start of ddcolor5 |$ f, x# @, F) E
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
# q; I( F S# q: C. {# F; ^" p/ D - old_error *error* ; save current error function2 o9 J$ b+ s% R3 H7 Z1 z* i
- *error* ai_error ; new error function/ _& ]/ j: Z3 T+ i
- ); v/ i5 C- {' D* a( `0 P
- 8 m; U8 p3 w1 p$ S- [2 n' b+ @5 l! x; }" v
- (setvar "cmdecho" 0)/ N9 ]& }- z# G, A9 P; {6 V
8 ~8 ^4 Q0 n% s3 E% _- (cond
" ~4 x& w; h8 z! T0 P4 ~3 E: @8 I - ( (not (ai_trans))) ; transparent OK
5 T6 _. W7 b5 q - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
) M7 v# I% M6 V7 C; B
+ Z. w4 w, x, O3 h- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
8 J* @, `$ P+ T( x" @, _ - (/= 8 (logand 8 (getvar "cmdactive")))
0 e. v6 ^; N1 ?+ e& w+ B - )4 T( c% j' E/ P
- (ai_undo_push)7 |) f# p: {, p3 y! @' G1 t, U0 L/ _- L5 o
- )- P0 n; A+ o! h) k) m
- * p% A Z2 w3 H, L# \- `
- (ddcolor_main) ; proceed!
- v! \: i3 s5 K2 `
% i" _- u5 o& x k' ?- (if (and (/= 1 (logand 1 (getvar "cmdactive")))' e1 v# F8 V7 o) n
- (/= 8 (logand 8 (getvar "cmdactive")))
9 W* N$ P" Q6 x* u - )7 W2 q1 Y) k# H6 h% d% N
- (ai_undo_pop)
) L% O1 d3 x* C4 }9 g/ s - )
& G( J1 K/ M6 i8 @& W6 y) [$ W$ U - ), u- X$ X! ~$ m, s1 g( M: A' y
- )6 `# h; h6 e: c* q4 e) t
1 d. o3 U2 s; j0 [! a; f' z9 ~7 ~- (setq *error* old_error) ( C! u0 N4 d5 n$ v& `
- (setvar "cmdecho" old_cmd)
) K. m# e" L; T Y) e# s - (princ)8 u! M# u5 ]1 B* w
- ' v! L) v0 h7 \0 g
- )
- H( A, h! q$ o0 k
! ^' G3 s4 s0 h$ a; r- ;;;----------------------------------------------------------------------------
+ o0 D/ s4 ^# X) h6 e) J5 D - 0 n( c7 G+ D. }1 D' }( U
- (princ " DDCOLOR loaded. ")% n4 `2 S& D$ N: _
- (princ)! a7 b5 C7 F5 v4 ^) T
- , l, c0 [0 O" S/ u u# ] I
- ;;;--------------------------------------------------------------------------;3 p: s! I5 W, W( N- Q) ^
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
8 L1 M8 ]6 @. ? u" x3 { - ;;;--------------------------------------------------------------------------;1 N- R: J' _1 T; v9 A3 m+ j7 C
- ;;; ssx.lsp
. B+ `+ v! {$ l' M! _ - ;;; Copyright (C) 1990 by Autodesk, Inc.* u! z7 M* |2 d9 Q4 k$ S+ H$ o& J1 y
- ;;; Copyright (C) 1991 by Control Systems, Inc.% I$ M' j* J, M$ }, R$ E
- ;;;" W; V7 N& ]+ D! c m& I4 G
- ;;; Permission to use, copy, modify, and distribute this software and its
5 r$ w& `# f+ P/ { ?1 F) _3 c M C - ;;; documentation for any purpose and without fee is hereby granted.
; e7 i2 Z, \# c2 g& ^4 w - ;;;
! k) D+ j; ~2 t7 k - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
, {9 y3 a4 H4 l5 g/ l - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF2 ?. O' U( }. H+ f& P$ S; U
- ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.; L9 ` e: S; |
- ;;;8 N/ O' ^0 g6 ^& M. h/ w5 G
- ;;; Larry Knott Version 2.0 7/18/88' J4 @2 H9 B# C
- ;;; Carl Bethea & Jan S. Yoder Version 3.0. s% M5 q5 u! r* n7 ^( Y. c
- ;;; Enhancements to (ssx).
$ O- X6 _% G2 c3 V/ y0 A% e - ;;; 15 March 1990 + j7 @; P# g+ {5 X* n
- ;;;
r+ A# v! i2 z# E0 K; C - ;;; ARTIST Software, Inc Version 4.0 December 1991
( j$ }$ K) [8 d `( X - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
, d+ l: x+ `( k0 B* ? - ;;; use Flexicon menus% R* L- L+ J/ R5 Y8 V) M
- ;;;% \$ d8 Z) b9 s3 o2 y! t; L( k
- ;;;--------------------------------------------------------------------------;
- k8 d" m# r8 i- M - ;;; DESCRIPTION6 X9 f* P& e7 w8 O
- ;;; SSX.LSP 8 N- n0 m4 d% g( e: P) @0 e
- ;;; 4 M1 t0 X4 Z# B! a1 i- N
- ;;; "(SSX)" - Easy SSGET filter routine.
% p1 |. K# W! ~' ?# I5 n - ;;; 0 ?3 D6 x% r- V0 C! y d7 K- v
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
2 V! {2 _! L/ a6 g) r- F% ? - ;;; to create a "previous" selection set or type "(SSX)" in response to
# k' M/ |0 Y2 Z3 G- D. j, [2 A - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add
4 w* Y( q4 ]+ a7 w5 B6 r N3 i - ;;; entities and "(R)" to remove entities from a selection set during
3 t+ H0 y) s" x, K; ` | - ;;; object selection. More than one filter criteria can be used at a % d( X+ f7 M# v) y* W9 g& C
- ;;; time.
5 B0 [+ S7 p2 I; m: E - ;;;
0 Q" l7 A: F& s9 ^4 Y - ;;; SSX returns a selection set either exactly like a selected
9 M; r4 i; n" E* E - ;;; entity or, by adjusting the filter list, similar to it.
6 X2 L0 L4 `; x7 k6 _* o1 s - ;;;
- T5 K* T5 m/ t - ;;; The initial prompt is this:
% k' t- y( S9 ^' m) x - ;;;
# I- |0 _8 S/ l* J& Z9 X0 v, n - ;;; Command: ssx- W: S4 N! T4 |% G
- ;;; Select object/<None>: (RETURN)/ ]3 O7 m) m. e0 q5 j5 f
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
" F# c: B4 }2 T% S5 B - ;;; # c0 Q. u( z6 H: f
- ;;; Pressing RETURN at the initial prompt gives you a null selection
! D. b! s1 y s/ T/ ]5 j1 U - ;;; mechanism just as (ssx) did in Release 10, but you may select an + a4 E% W; W; U# w
- ;;; entity if you desire. If you do so, then the list of valid types
2 D1 ]" E6 z; p U' ^( Q% O/ [8 u# ?/ N - ;;; allowed by (ssget "x") are presented on the command line.
- G: _( ?! M+ X' \# {2 A$ [8 m - ;;; 5 t) C# S0 v0 e$ X" b a+ r
- ;;; Select object/<None>: (a LINE selected)
, p5 Z( R) Z- h! g - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
* |% c7 P. `( A+ {5 z - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 5 ~; ]! I9 A& |9 K8 w. A' H- Q
- ;;; , ~2 P! F. n2 L8 L( F U8 c
- ;;; At this point any of these filters may be removed by selecting the 1 u3 x1 ?5 D1 |3 Z
- ;;; option keyword, then pressing RETURN.8 r/ I$ j+ T, D. \7 h, r4 ^* A# s6 l/ c
- ;;;
" E9 A' d' p. g1 T - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)3 O0 O3 {9 L: C0 L, H8 f
- ;;; 6 f0 ?" K* h. ~) U' U/ F# d3 @3 P) @, n
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)): b( k; f9 b3 j( J8 Z
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
8 b1 g- D# Q( x- r$ N4 D - ;;; 5 w4 i6 f3 O8 W2 ? ?
- ;;; If an item exists in the filter list and you elect to add a new item, # t9 R1 M6 j7 R$ I
- ;;; the old value is overwritten by the new value, as you can have only
$ c/ }1 J+ l4 c* G- ^ - ;;; one of each type in a single (ssget "x") call.
: A% ^% y ]; s) o) T - ;;;8 }- k" p$ T4 t1 ]3 k
- ;;;--------------------------------------------------------------------------;
/ b( t# X, C/ ^6 L - ;;;% f& H+ \5 M4 X, [: B
- ;;; Find the dotted pairs that are valid filters for ssget
; x- D F6 q6 D# Y u* H - ;;; in entity named "ent".
' j; g5 D8 I: i1 Z: j& ` _ A3 S0 | - ;;;% Q% z/ i8 y' Q3 ]
- ;;; ssx_fe == SSX_Find_Entity5 R( l5 W" L8 m; m/ [1 z! w
- ;;;
/ P3 V. g5 d: h8 ]" |/ u6 ?0 t/ y - (defun ssx_fe (/ x data fltr ent)
/ O8 `$ Q$ X8 M/ Z- d8 ^; T - (if (and (= flexvar 1)(/= t2 "Pick"))
5 S6 q4 K* O! |+ R - (setq ent nil)
" o4 K: o8 `9 o# S2 | - (setq ent (car (entsel "\nSelect object/<None>: ")))
' [* l/ E" K5 a7 [2 A+ i - )
( c8 b) {7 v! i - (if ent
" }& k3 |0 b( C! x3 q9 |% y - (progn* u$ B2 c6 w9 U
- (setq data (entget ent))
+ n- U3 }- A5 |$ Y - (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38% a" E0 _0 T; m2 }0 J
- (if (assoc x data)
. g% x1 I3 B- B$ B) S - (setq fltr 3 V" ]2 ] k0 W' R* k
- (cons (assoc x data) fltr)
+ s5 k7 H5 n/ M/ i# f - )5 A: t& n/ V4 o
- )
! |5 O3 C; ]6 h' ? - ) & a$ V4 m i5 M( s. y/ j6 ~% \
- (reverse fltr)" R4 A+ O$ J4 R. k, o1 W
- )" s; h& I6 S- ]* Y
- ) / R+ [5 Z' W' w: d
- )
- C/ s7 K5 w6 D6 O" e - ;;;
: k4 J C, v& M- \% U. ~2 f, j - ;;; Remove "element" from "alist".
- Z0 z6 z* Q2 i - ;;;7 N# Z0 }, N y+ U' I9 ?
- ;;; ssx_re == SSX_Remove_Element+ I x, t: D) G! l6 m
- ;;;
7 P" V# R8 Y7 w; p! n2 F - (defun ssx_re (element alist)
1 {$ W) w6 }. a3 a4 Z - (append
9 k3 v* o S! a/ W, y. e - (reverse (cdr (member element (reverse alist))))* v' L3 _/ p0 n* v m9 c7 h) |
- (cdr (member element alist))
2 w& X) H- m* ?% O8 z - )5 Y# }, P/ z) `& ]. R7 e
- )
^: B6 [# e, _& t: G( c8 Z5 l - ;;;; e% z- L! @/ K
- ;;; INTERNAL ERROR HANDLER 3 s3 D) v d7 w3 f! g+ J
- ;;;
5 D( Y2 k4 ]) e; C- \: ]% C a - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
& O( U% Z) v* r" E - ; while this command is active...3 S# Z7 h: Y, x. \3 }6 y
- (if (/= s "Function cancelled")
0 i9 M, U3 X! U+ ~5 v7 c: x - (princ (strcat "\nError: " s))
% C4 k S3 S5 c8 u8 ~ - )
2 E5 Z1 b$ [) \* E+ [9 v8 ~ - (if olderr (setq *error* olderr)) ; Restore old *error* handler
: a5 W5 f3 E3 l9 m* ] - (setq flexvar 0)
4 b9 `& m* o, p6 Z - (princ)
8 p' E; n: i5 z9 C7 W# ~- c - )
+ s U9 B# L# m8 e2 ^ - ;;;
6 T" M/ y9 j2 x% B/ Z( ~" X0 Y& ^ - ;;; Flexicon call routine
" i4 l* i- ]2 i% V7 H - ;;;7 B# G# I3 Z" u5 ~
- (defun flexmnu (a)
( ~7 E! _) J7 O7 V; E( f - (if (= flexvar 1)
! [7 @! [$ K9 b - (command "FLEXICON" (strcat "FLEX" a))
* Z; r5 n8 N) E, p8 [$ N - )
# ^, S6 f+ Q; v, R' R6 w - )
% E2 W; T' M3 \; z& p8 f - ! ?2 d0 c! M( k% y5 i \
- ;;; 0 o9 V; G+ a9 b, Z8 @7 H
- ;;; Get the filtered sel-set.; ?* Z( m: p3 I; T- Q( c
- ;;;- o3 Q; g$ s/ n5 ?
- ;;;2 [1 i P4 W* o7 v
- (defun ssx (/ olderr)- Y- s9 M0 L8 `3 E: K5 t/ j/ u
- (gc) ; close any sel-sets
* r' u4 g' l! ? }+ q. t$ e - (setq olderr *error* ! T: \. I6 H7 ?* O
- *error* ssx_er 6 |( @* Z/ j* P6 R# Y9 e6 [
- )
& z5 I* N, _" x' j; ?9 e6 s - (setq fltr (ssx_fe)) ) a( E, ^5 ]$ ]- b% h: a8 v z
- (ssx_gf fltr)
$ G+ _! t2 q" ] - (if (= flexvar 1). y: v5 B! l3 B+ k- ]1 Z/ A u7 g
- (progn: T8 A6 z9 U7 G. s
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
% p: Y/ S) @: Y - (flexmnu "EDIT")
8 \' P8 o" h8 Q. I9 O: ~& ?7 ?! I2 {8 t - )7 ]! W5 ]( ~* i% @* \2 H
- (command "p")
5 E5 F1 @% @, G9 w9 I; u$ [ - )9 \5 r/ r0 K, [7 m+ [$ p6 `
- (princ)
4 {5 R2 J; i& T) E: O) C- o - )
. |% t! ?, m/ h0 d# i$ v - ;;;# w5 X) [+ a+ Q/ Y* L
- ;;; Build the filter list up by picking, selecting an item to add,% w0 U8 h; v; A% R8 [
- ;;; or remove an item from the list by selecting it and pressing RETURN.
Y1 K7 O3 o2 q2 o6 X& c a! L1 X0 q - ;;;
- j# t2 c5 M2 `9 T - ;;; ssx_gf == SSX_Get_Filters
4 p" K5 K. _: q7 x# X4 A - ;;;8 H$ H! N& Y4 t2 c6 [- ]/ w/ A" E0 g
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
1 ^' ~. O9 G1 [9 E5 u: Y - (while 4 ~1 r5 ] m. `' O
- (progn
/ _1 T$ F! u! p0 ~7 X/ j* N - (flexmnu "SSX")1 C6 L" v( l4 U+ h+ R+ W$ S8 C8 g1 S$ o
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
) S/ b7 Z2 R N4 p5 [3 w' N - (initget
1 e% P# Q4 e) U: l - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")4 p" Z' X/ \% W2 m2 O8 w
- (setq t1 (getkword (strcat; t. W2 Z$ C) i3 n1 l c+ r
- "\n>>Block name/Color/Entity/Flag/"6 i8 I& u& j/ ]3 `3 X9 C9 R
- "LAyer/LType/Pick/Style/Thickness/Vector: ")))
; R5 \9 y0 B# D7 a, J7 ~8 { - )! J& ~) G( I7 c% m
- (setq t22 m7 F9 M% G8 A, a) G) V. \' j8 U
- (cond
: c* h8 f+ F+ j/ A5 n+ e- D - ((eq t1 "Block") 2) ((eq t1 "Color") 62)' t% v- {+ @# R
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
1 |. e6 b Y( _$ V( U - ((eq t1 "LType") 6) ((eq t1 "Style") 7)
3 M$ b+ U" _- ~ Q# G8 o" u! I4 f - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)4 w! n2 l- j- [! G! [4 \
- ((eq t1 "Vector") 210)6 W: p$ e9 H N( n0 W8 E
- (T t1)8 }4 t9 \; P- {9 V2 \# ?; k2 {/ Z
- )
& k/ X8 ^' E# H& q - )9 ~2 w8 m5 X C7 }7 Y- m
- (setq t3/ R7 ?" J% q+ ?) c0 m1 V
- (cond
6 r5 D. E! {- `4 M; Z - ((= t2 2)
8 q3 K: Z( l+ V8 y, D; E* k' h - (if (= flexvar gtads 1)
; Y) P8 j2 C3 }# T9 [ - (progn- H# ?5 n1 Q5 v; |% X2 v
- (prompt "\n>>Block name to add/<RETURN to remove>: ")
% _0 N n2 Y4 O3 t2 z1 t - (gttable "BLOCK")
( K1 w- i; c# ^2 X9 a - )
- Y1 h* z5 Q/ E3 m0 k - (getstring "\n>>Block name to add/<RETURN to remove>: ")
' t! u3 L9 \$ I( T* V4 G( { - )
# a9 w+ }4 J) a9 ?9 N( H - )
1 b) E% H3 S% b% g" ?' ]* F9 O - ((= t2 62) (initget 4 "?")7 y" P% l3 a3 b( J& f4 z
- (cond
( q# F& `4 H5 z5 d - ((or (eq (setq t3 (getint s Z$ `( k- m
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
) \" M/ _/ ] f& f! G& c0 w$ D: f. [ - (> t3 256))5 ^ y- r) {+ F2 ~8 D3 w" O: c
- (ssx_pc) ; Print color values. t- ]0 G( n- ^9 g& t7 q% \
- nil8 L3 |/ Q4 b2 C
- )
4 e& O6 Y. D8 t2 u" K - (T
; I) g$ d3 M8 Z# n% j; R% P' i2 A - t3 ; Return t3.: K4 L" W, L# x9 V. f" b1 `
- )
( P9 q, P |1 u- } - )$ g" z9 j" Y1 H. }. r) C' J1 v' y) ]
- )
( l4 ]6 F) [% m. |) \ - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
2 R$ n3 k: r) E$ S; g - ((= t2 8)$ ~ G3 n% M |( [' r1 Z+ i
- (if (= flexvar gtads 1)
, f2 O8 g2 v' n$ z - (progn7 p O% K. h3 O+ J! c
- (prompt "\n>>Layer name to add/<RETURN to remove>: "); X$ l; K: b/ M; \/ r3 C6 m$ c1 j- n0 L) i
- (gttable "LAYER")
3 J1 j8 S4 W4 Q) j% ^ - )
& o! |; w6 X+ | - (getstring "\n>>Layer name to add/<RETURN to remove>: ")6 a2 |" |4 Z: P; [7 V
- )
2 F% h: v' x. q% l2 q - )% u$ C& Y9 A, w9 V' m% x$ h1 f6 D
- ((= t2 6)
. M7 Z2 r& j$ d, d - (if (= flexvar gtads 1)
" t' F0 S5 j$ H: f - (progn V5 v# V0 l4 b, j8 n, F4 X+ d. J3 R
- (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
* K. ~( w! C- E' U7 M1 Q - (gttable "LTYPE")
) ~% O- }- m& N; K& n1 e8 W1 Z - )/ N$ E: l& d6 W. D9 a% p/ {4 f( B: U
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")5 Y5 w. Q9 r" ]( e
- )6 H$ u$ [1 }! [
- )
1 ^# a: U0 V( h: i/ L/ k# _3 D - ((= t2 7) 8 F: N& N4 b" H/ u2 t* Z* k3 ]
- (if (= flexvar gtads 1)
3 M* A' O7 u6 ^) i - (progn' `1 r, A( f* Z5 T
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")
$ C1 F5 D7 G" V" }- t9 q - (gttable "STYLE")
! B* Z1 Z$ d. A; j) P - )+ P- _( T i& f+ B0 x( Y
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")4 w2 u0 C' X* l6 `) K
- )! ^7 ~2 V2 {3 i) N( S
- )2 }. H. K$ g; P+ E2 \
- ((= t2 39)
0 x P1 e+ q5 s1 T" T+ H - (prompt "\n>>Thickness to add/<RETURN to remove>: ")
/ {& G9 T& k. ?) X$ F0 y2 \+ E - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
9 o5 d8 w/ ~9 b# V- D6 I - )( L# k& N+ N! x8 z5 ` e
- ((= t2 66) (if (assoc 66 f1) nil 1))& W# T- C/ Z: z6 P. V }
- ((= t2 210) 2 L/ ?9 ?2 _; J
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
# e3 m6 O5 X1 P" f8 U - )
, t: M1 |" q! n3 m" @/ i$ U. w - (T nil)
6 Z/ n. m; E% Z/ z - )0 R' R% k) o$ N! @
- )
5 T2 W! N: B p! A( u/ i - (cond
& L+ S2 J5 x' E; a1 {' g - ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
; M1 U, s# D- s0 h8 y - ((and f1 (assoc t2 f1)) ; already in the list
' Z. I& W% X2 E# Q& @ p' I - (if (and t3 (/= t3 ""))
: }0 {$ Y4 o& m* c( l$ |+ ? - ;; Replace with a new value...
+ q: K! r/ r6 u+ w - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
3 K q1 d; `2 ~1 K# y6 v) e7 b* a - ;; Remove it from filter list...
0 Y+ | J% q, }: o - (setq f1 (ssx_re (assoc t2 f1) f1))
4 Z: y0 G5 ?, ?) x1 o3 l/ P - ) : I1 ?* C+ J5 b, q5 ]: [3 \
- )& q% D( e$ [% d( V! v
- ((and t3 (/= t3 "")). g7 [# y: C) ^ d
- (setq f1 (cons (cons t2 t3) f1))
4 i+ A* m, C4 f6 I+ y+ Z7 E - )
7 W& M- k" p0 H6 `0 f - (T nil)6 ? {7 y$ z. y; x4 M! e
- )
! v. L9 [& ?7 P: K$ _ - )
0 v f$ E8 w8 m3 t# }1 x, ^ - (if f1 (setq f2 (ssget "x" f1)))& E' k: c/ S/ v" Z8 Q- a
- (setq *error* olderr)5 d- o' Q! o' c$ E% L
- (if (and f1 f2)
) F6 m( v4 S" _0 Z - (progn, {5 K) ?, \. e X
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))1 j7 T$ I, f7 O/ W' z8 j6 U
- f2
4 Y4 G& C2 f+ L ]5 k! D - )& k' r2 B; ~6 r/ G4 P
- (progn (princ "\n0 found.") (prin1))
/ o$ l, f" T. S( H& U) ~. G - )% r+ B7 E2 i1 W0 c6 C
- )6 d& a( G, I; b
- ;;;
$ L+ V% h% |/ r2 I# Y' I - ;;; Print the standard color assignments.
; Y( B, @9 Y! g- m" V3 F d" G8 { - ;;;0 x, j- E2 ]7 f% U2 d* {" D( x6 C) K
- ;;;/ u( e: v9 ?* w. O6 h3 m( a$ r
- (defun ssx_pc ()
0 y3 |% N' a e6 Z - (if textpage (textpage) (textscr))
' k' a" s6 u$ R - (princ "\n ")
) s4 N- v) q* Y& L( o - (princ "\n Color number | Standard meaning ")
' R( A6 Z( k$ k: C - (princ "\n ________________|____________________")
: L' u9 W# ^0 h8 p8 Q - (princ "\n | ")
0 k* \5 H# Q& z* @$ ]' N - (princ "\n 0 | <BYBLOCK> ") P0 [6 }0 K! Q% M- A8 ~8 y
- (princ "\n 1 | Red ")
4 k5 m$ @- y9 G( }/ o - (princ "\n 2 | Yellow "), R! {( S$ I$ }
- (princ "\n 3 | Green ")
2 ]- o! T" X, @, S9 s+ v! C3 b - (princ "\n 4 | Cyan ")
- h* ~# }4 K% u/ _8 c1 B - (princ "\n 5 | Blue ")
, L0 v2 d1 E0 j) ~0 [3 Q - (princ "\n 6 | Magenta ")
* d( Z" L8 c" F5 _+ X- t# T7 U - (princ "\n 7 | White ")) b. T. A7 ]6 Q. P3 s
- (princ "\n 8...255 | -Varies- ")
) u+ R7 ?& f( M2 @- B) | - (princ "\n 256 | <BYLAYER> ")* O* w0 p' \& \) \2 r8 Z
- (princ "\n \n\n\n")
3 T: B1 Y6 Z- T' B5 u& t& c5 c - )
$ h- E `3 ~$ ~+ L% E - ;;;
8 a2 ~! t" `: b P5 v: }4 i - ;;; C: function definition. `% A4 t& m# @% Q; T* P
- ;;;3 K s6 M; A: r+ F. b
- (defun c:ssx () (ssx)(princ))
1 b% p5 _: t/ _5 k Z: g. } - (princ "\n\tType \"ssx\" at a Command: prompt or ")
0 d( U* L. |: q- v - (princ "\n\t(ssx) at any object selection prompt. ")) p- \$ d4 g3 s" d
- (princ)
6 i2 T2 P- C; ?" P8 y
% ~- ?+ A. `3 v4 b- ;;;--------------------------------------------------------------------------;
* F, e0 `% w' ^. f2 J9 A( {' w - ;;;--------------------------------------------------------------------------;
* Q+ U5 U! X* } - ;;;--------------------------------------------------------------------------;* P+ I/ h& j* k0 i9 a/ }: Z
- (defun S::STARTUP ()
: c! Q; F( }+ ~* Y; s& Z0 L/ g9 } - (setvar "cmdecho" 0)
O7 P+ w4 N" W" B5 u- ^5 G - (setvar "cmdecho" 1)4 g% t2 M* ]6 }
- (setvar "LTSCALE" 10)
1 C( }! ^- P& |2 K, l
$ ^% _8 R7 X" H- ;(command "_load" "chenKH.fas")
+ t. c$ x2 w' ?& c, N O - ;(command "_load" "ctcot.fas")/ k8 d: T2 T" P+ K- ~3 L
- ;(command "_load" "damdoc.fas")
; E. [1 \9 ?4 @$ s: [6 s - ;(command "_load" "ghichu.fas"). [6 |6 l- y( u4 m. o0 v/ p# e
- ;(command "_load" "hamtutao.lsp")
( z; ~# D; l/ p0 n - ;(command "_load" "KHOITAO.fas")4 i) N& g; i8 T7 F
- ;(command "_load" "KHthep.fas")
7 y9 N/ a6 ?7 K p6 _. K& M; O - ;(command "_load" "mbmong.dcl")4 @: a% u) F7 h1 ?+ f
- ;(command "_load" "mbmong.fas")
: V7 O8 b2 H' I$ u/ w+ v: x - ;(command "_load" "mccot.fas")* R& U c/ T. ]3 Q* k7 ?+ Z2 \, d
- ;(command "_load" "mcdam.fas")( ^% P% g. ]: G2 v' E5 }3 b
- ;(command "_load" "mcmong1.dcl")
+ p$ H" y- h. \( W8 ^ - ;(command "_load" "mcmong1.fas")
0 j, @1 c0 M! ^) b- C - ;(command "_load" "mcmong2.dcl")
9 ]# `% q# ~& o - ;(command "_load" "mcmong2.fas")8 ?" P3 O! i- D0 E( g
- ;(command "_load" "mcmong3.dcl")
9 K5 r1 F9 f q - ;(command "_load" "mcmong3.fas")! I, R7 a) \; Q6 U. R8 G- Q9 N
- ;(command "_load" "mcsan.fas")5 f) Z6 ?, |2 e9 Q+ x0 {
- ;(command "_load" "thepdai.fas")9 Y! E: {$ l# S) N. ^- A" @
- ;(command "_load" "thepdoc.fas")7 v* B+ N; v8 L) B1 q# Q
- ;(command "_load" "thepmb.fas")+ w6 G4 {3 L O( j5 e# a
- ;(command "_load" "thepphbo.fas")/ m7 j! z9 ^& @9 R% k/ x; |
- (command "_script" "thongso.scr")
! }/ w* z$ m6 y) [1 [9 ` - ;(command "_load" "thongso1.dcl")
# g4 ?' |! m9 p& D9 R9 {1 X - ;(command "_load" "thongso1.fas")( x% T/ w# `7 J3 t
- ;(command "_load" "thongso2.dcl")
; d- c9 c1 N: g* H6 G - ;(command "_load" "thongso2.fas")% W' z, ^0 R3 t
- ;(command "_load" "tietdien.fas")
1 L4 j D5 `/ |8 h5 W- | - ;(command "_load" "vehan.fas")
' q. Q0 s; Q: }4 N" v - (command "_load" "phamDuy782006_TKT.lsp")$ I7 g: \' n+ F! [
- (command "_load" "phamduy782006ganhtd.lsp")
$ B+ w4 b' Y8 U - (command "_load" "phamduy782006ganhtds.lsp")
! G2 C- j/ r, C& Q$ j - (command "_load" "phamduy782006htd.dcl")
1 f& D4 g+ e, g5 J$ ~, I( x - (princ)
( n `# n1 e, ]( W8 }. [ - )
, e8 ~ t9 ^1 D- s- T) @2 r - % Y& f; j6 ]) H3 ~1 b+ i0 B3 G* S
- ;; Silent load.
* A& ~* b" o. ?; _ C - (princ)
. W) V2 i/ M, d7 w
6 Q8 L2 I4 ~7 o: A- X- 6 b J4 o8 U( P3 F. C
- ;; Silent load for the Express Tools.
2 h: v# ]) s5 U+ e - ;; Altering this line will affect Express Tools functionality/ `" I, q( @/ |/ A- V/ o
- (load "acettest.fas" (princ))
' a; R+ G/ F/ I2 d5 j - �32
Sao chép mã
( g( J' M# {# c, j5 w00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ2 I0 S, {. L4 f7 |; q9 i/ {
|
|