|
|
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 |
- ********************************************************************************! d4 D; H# u3 F% p- C8 j
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *7 B6 E) p0 m1 k" A, |
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *' u6 J. [! J! R' |) b+ K
- * Suu tam & Soan *( e1 X3 y2 B/ q" l/ M
- ********************************************************************************. d5 S6 i' o! r! v5 X4 J2 p
n j8 N" n: _- ~$ l8 }6 y- ; Next available MSG number is 1046 c; d! K5 t# s" g* i
- ; MODULE_ID ACAD2000doc_LSP_5 Q( _; E7 W5 U1 t; ? L6 x) i0 a
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000% G# y+ `. K2 `, v) s$ ?- o
- ;;;" D8 H. p% z6 w% j8 Z, [3 p
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.1 } b9 E! k& ~$ a0 |0 M
- ;;;
$ q' M5 ]0 A1 Y( |' Z+ b0 D - ;;; Permission to use, copy, modify, and distribute this software" d- m/ U4 I6 b
- ;;; for any purpose and without fee is hereby granted, provided. D, Y) D- Z- x
- ;;; that the above copyright notice appears in all copies and
% l/ x' d/ p( {# L: V" Q4 i y - ;;; that both that copyright notice and the limited warranty and
8 h# s6 q1 D% U7 F: A: a7 o - ;;; restricted rights notice below appear in all supporting9 b5 B8 x5 u8 u9 c4 R
- ;;; documentation.
; p. |/ Q- i8 w - ;;;3 Y# E6 A6 _* D; L/ p
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
- e, r4 A \& R; R& {1 e( s6 u - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
3 @5 v# v9 [( b - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
8 _% l* C% x3 z: b - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
3 ^# ^# R# Q7 X4 Z4 l - ;;; UNINTERRUPTED OR ERROR FREE.
. y7 u# T) h$ A9 L+ S8 F - ;;;
7 C9 k s1 J! ^1 r$ j# x ~5 U% O* J% [ - ;;; Use, duplication, or disclosure by the U.S. Government is subject to3 K0 n) Z5 I" p; M% N
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
) z' |7 q( h* z% k8 |& | - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) . o9 A: z: f! | w- _% K, e
- ;;; (Rights in Technical Data and Computer Software), as applicable.
5 s8 f! D8 D: ^* V# v, ` - ;;;( f1 ?- R5 t r$ k5 X; `0 m) d- `
- ;;;.4 u1 u2 M2 L( d3 w
- ;;;& b; W2 c: q: @0 k1 z: J
- ;;; Note:; O9 h+ V \; O4 H% W
- ;;; This file is loaded automatically by AutoCAD every time 4 q& I6 s6 m4 d3 r5 x3 H
- ;;; a drawing is opened. It establishes an autoloader and( u; g7 n! t; p% b4 U
- ;;; other utility functions.
p T% q, n' S! c1 }# S- z - ;;;: w! S$ @" ~ O3 g
- ;;; Globalization Note:
6 g0 y8 c8 O( J) o g+ q; t9 k! a - ;;; We do not support autoloading applications by the native . B+ ^# ]2 ~& L& y
- ;;; language command call (e.g. with the leading underscore
+ n) r5 D2 W4 y" [% \. u) z4 v - ;;; mechanism.)
! V' ~" Q8 p# m9 D
6 \; ~; r* B) c g7 z* T" e7 Y
$ _' B% t' q: @- ;;;===== Raster Image Support for Clipboard Paste Special =====
) B$ d t. R, n1 l* ?8 t; _' l - ;;' o2 w2 ?7 w. A' N: A, T7 f) [
- ;; IMAGEFILE( |6 n) Q) `/ j! i( `: U t3 k
- ;;
8 _: D/ i1 P- K - ;; Allow the IMAGE command to accept an image file name without
; c6 ?$ ^9 _9 H4 [/ }$ z3 d - ;; presenting the file dialog, even if filedia is on.5 H+ e& S" B; l
- ;; Example: (imagefile "c:/images/house.bmp")
* S# X" g$ D& i0 p - ;;
. }6 j7 C& z5 O' w( ~# c( G. t - (defun imagefile (filename / filedia-save cmdecho-save)
/ m; w. x+ A" \+ } - (setq filedia-save (getvar "FILEDIA"))0 |6 ^4 o4 y" [7 A2 X; i7 g/ \8 x1 L
- (setq cmdecho-save (getvar "CMDECHO"))% ~. Y, V) O9 X: D- X2 x, t
- (setvar "FILEDIA" 0), k' L2 f8 e$ l
- (setvar "CMDECHO" 0)/ O3 ?/ U% h0 i6 K; r9 C( F' W
- (command "_.-image" "_attach" filename)
% Q9 |5 x% [- A [$ Z$ r3 \ - (setvar "FILEDIA" filedia-save)
; O- O4 X' i% _ - (setvar "CMDECHO" cmdecho-save)* }: q3 `; J: F Y; ]# M( v
- (princ), V. c: O! ~' x) q
- )5 |5 k3 y( \4 @: S
- ' C" E7 S1 U9 G$ U3 |0 ^
- (defun c:zx () (command "zoom" ".5x"))
$ w2 _$ [/ i! f - (defun c:zz () (command "zoom" "p"))1 u" i+ W. ?( Q `& l& q7 M# G
- (defun c:za () (command "zoom" "a"))
3 H: s, q3 o% `; B4 q( X - (defun c:zd () (command "zoom" "d"))
& e8 h1 g( Z. a8 {$ ]2 k - (defun c:ze () (command "zoom" "e"))
) B- E- v8 Q' C - (defun c:zr () (command "zoom" "" ""))
( w) K0 s. v( l - (defun c:vv () (command "ucs" "v"))
1 n0 ~: e" k) b4 } - (defun c:co () (ssget) (command "copy" "p" "" "m"))
% R) E. d4 u- b5 r, U- ?: l$ N - (defun c:c () (command "circle"))8 | D( `4 D* _) w+ F5 H
- (defun c:rt () (command "rotate"))" A: T1 q2 @/ Q* r
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ))): D6 {5 j( a. ]9 l
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))0 v9 A+ m& X9 t8 g4 U
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
$ x. m+ K$ {, k* m# K9 y) ^1 z* _ - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))1 }. L8 g5 A1 N6 x6 A+ H
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
2 c" L8 y" Z$ Y" X* Q - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))' r4 v9 o e# R. t4 g6 }% O1 g- i
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
) z+ n7 X2 C$ g" @( S% Z- H - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
7 F% P+ t) O5 X) ~& r) ^; z+ X& H+ h - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))0 J' o: T4 Z1 ]
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
! {( q! ?9 l. z$ A7 b - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
7 z( p$ T# U* y, d% s' s+ o - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
3 c. E% k6 s8 l - (defun c:fd () (command "find" "p" "" )(princ))(princ)9 S+ v3 U+ J2 z0 \) K: {7 P: [
- 4 z) r5 X) \( Z: G. G' r! L* J- Y% Z, v
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
3 D: N% ]- P3 \ - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)# r* W$ o' B6 u- B
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ); D+ q3 {) ]" f0 Q- c0 e7 O
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
# }$ ^/ n; d: S/ [! ^8 P - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))6 E9 q/ m, q( x5 ]
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
4 \! Z2 x* S. ]7 y2 o$ b+ N - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
3 v: h9 K; a, W& @9 Y$ V: l) p
3 ^& U# H, c% `- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))7 N+ E3 o! u& e# |+ G% P
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))+ c- \, H3 [3 E; \$ r4 L+ L" b
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n")): x; [3 v0 \; B; O9 E) j9 z; C
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))' f; S2 E7 t T& [
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))5 \0 _. P# `- h
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
1 t5 w% _$ U9 O2 Q) G0 W7 {* f - ( B1 y8 ^% M( f" [, D% t; J
- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file' j& K1 \/ {8 j
. G9 e2 U/ e7 R8 Z- ;free lisp by cadviet,cd2k44+ Z* \. g: D$ T6 _
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830* E% M; L9 u! f0 m$ c1 x! M
- (defun c:FTEXT (/ ent tstyle )* q. y; i, i5 N+ b
- (command "undo" "be")( W2 X" Y2 R& M# @8 M& R
- (setq ent (entsel "\n Pick text :"))
7 C+ q. X( T( o; ?) K8 @9 D - (setq TSTYLE (cdr (assoc 7 (entget (car ent))))): @) j6 i. i9 L/ V
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
3 w% q" F% F4 c5 P - (setvar "TEXTSTYLE" Tstyle)
6 o& y. }' `6 p7 }: q6 L; d - (command "undo" "end")
0 s4 U) W* s. z - )6 B! h6 {# `' f! S4 s, j; |
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
9 }- N6 M1 O, [1 b
- P. m$ L4 M- ?2 v; |' q t( q- ;free lisp by cadviet,cd2k44: r& I6 |8 [3 A+ X
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830; D, M% A$ h( A& s3 s
- (defun c:Fvnh (/ ent tstyle )
+ V6 V- {2 Q4 G* F+ T - (command "undo" "be")
% A0 v' L9 ?9 y% i5 Y0 B - (setq ent (entsel "\n Pick text :"))
6 Q" N9 f; g$ v( p. @ - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))- S$ {# P* V+ \
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
3 E' R5 z. f/ M0 d }3 ], S - (setvar "TEXTSTYLE" Tstyle)
; J& [& h" @3 f9 F - (command "undo" "end")
6 ], o& S- d6 I+ L - )4 k9 p9 ~; ?% W( }
- H9 S: q z; f3 Q$ h- ;free lisp by cadviet,cd2k44
4 @5 H, W+ Z, D) G' B$ D( h - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
1 C1 _; t' D' K - (defun c:Chbg (/ ent tstyle )
/ u3 p9 W& K9 X8 d0 z - (command "undo" "be")& Y7 d; Z/ w" j: N" A
- (setq ent (entsel "\n Pick text :"))/ P7 ~, y) R7 U: A7 P( G) }2 a
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
+ }& h# m; Z$ N3 h3 g4 h - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
; n/ |. ~% h9 J5 Y' _ - (setvar "TEXTSTYLE" Tstyle) A/ `# J5 ]# ~* D( y
- (command "undo" "end"): s o9 Z. s- v. j8 d
- )
" r# w( _7 S# n1 k: d
+ l4 c4 w; \% e# @& J- ;free lisp by cadviet,cd2k44
3 @. o0 _0 ^& g; f6 X/ Z8 W+ J* d - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
) }& z' K5 h/ K - (defun c:Chsm (/ ent tstyle )
1 L' |5 c" I8 x( J3 X - (command "undo" "be")
1 i* j4 h) F: ~ - (setq ent (entsel "\n Pick text :"))4 e1 t+ g7 j& {9 q) e8 r& ~
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
5 O) y- e Z; \9 R' s - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")' y/ G" u" C$ i5 X
- (setvar "TEXTSTYLE" Tstyle)3 b L( _0 I! _5 p/ k, k5 ?# R
- (command "undo" "end")
( J+ x' @0 B$ G" H+ j1 \ - )
/ o2 u$ y( z% P9 d4 O
5 B9 J! E0 J' W2 f) J% Q( u- ;free lisp by cadviet,cd2k44" f% P5 b. t4 K, W
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
, m L( b. y1 ^& z - (defun c:Fttf (/ ent tstyle )
3 J) `. |8 D) A* \9 ^ - (command "undo" "be")4 w7 v$ D: s9 b' A% z$ F4 F
- (setq ent (entsel "\n Pick text :"))
/ {& V" Z7 m( ~# d) _5 n5 V8 Z - (setq TSTYLE (cdr (assoc 7 (entget (car ent))))) Y$ M, u2 I9 ]: B* C! l% a
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")3 U5 h& }: @' f$ p" {" ]
- (setvar "TEXTSTYLE" Tstyle)/ l! _* ` @/ H+ \. |
- (command "undo" "end")
$ o) `% j1 Y+ Y - )
4 G" D7 G9 E$ y# M* U$ ] - ) s* Q" ]2 \; U: Z' W! D3 h
- ;;; ============================================" @$ J- c+ P+ A' K
- ;;;" D& w" t4 l' |" a, f& V8 o
- ;;; LISP Creater Tao Duong Dan AUTOCAD20006 _8 L) s4 V! L5 _& a$ p) K: m
- ;;;
% R$ T& `0 b6 F - ;;; ============================================4 `9 e6 w6 A. c' `8 ~
- ) Q7 {' z, j+ N$ T$ A& J
- ;;; ============================================
+ d) W# ^& @/ K) k, P - ;;;8 Q6 b; A0 n3 X! h' L
- ;;; CREATING FROM AUTOCAD2000
; B& [- u& Z" ~9 V% M - ;;;
1 W6 n' \; R* w# `" E7 z1 @4 r7 ]: I- W - ;;; ============================================' U% e; X$ R- V
$ s( y# B3 q" r: _0 b* w* a- (setvar "INSUNITS"4)
& q: G4 V# G; M) x5 r4 ?0 O - (setvar "ANGBASE"0)
5 r( r+ f2 E+ t; s% {+ `( ] - (setvar "ANGDIR"0), S2 a5 B: R$ N4 \6 }( k
- (setvar "AUNITS"0)3 Z- T2 L1 `: L6 |7 B3 v8 J
- (setvar "AUPREC"8)
^9 K% a( N/ f$ E A) f - (setvar "LUNITS"2)3 U" Q( [1 T. i0 ]& |4 a3 t
- (setvar "LUPREC"8)8 N; s, X8 s* \
- (setvar "ACADLSPASDOC"1)
9 y( E# Q+ k) i/ Z( f- y1 ?; N - (setvar "pickbox"5): h% G5 C# L) S8 a( _
- (setvar "blipmode"0)
2 d/ X5 p5 L7 h* k& w+ x - (setvar "mirrtext"0)7 a. u, F# ?; S5 M, [4 |% X
- (setvar "cursorsize"100)
( I) M$ h- @- r1 y6 F - (setvar "ZOOMFACTOR"75) \( C$ @# u. s" T) b3 ^
- (setvar "LTSCALE" 10)
" K b% X1 R# X" `2 K. m' L - (setvar "lwunits"1)2 B, ?1 s; a% Y# H( f
- (setvar "DIMBLK" "Closed")& C' K$ [3 q" ]
- (setvar "DIMGAP"0.0693)2 S, |7 N/ R `, `7 U8 Y) i( `
- (setvar "DIMASZ"0.20)
3 P _9 t* @$ {( S* [# \# v - (setvar "DIMCEN"0.2)/ f' ]" B( H$ S. e: H# _* P
- (setvar "DIMDLI"0.1)
2 h5 e4 P0 u: b* a7 G9 w7 b0 [ - (setvar "DIMEXE"0.0693)
1 M5 E5 u6 M7 s2 p0 | - (setvar "DIMEXO"0.25)( `9 e: T- o! g- C/ d0 g
- (setvar "DIMDEC"0)
( \5 K2 c6 m% { - (setvar "DIMTIX" 1)
) x+ m( ] o* e8 ~' a* ~ - (setvar "DIMTXT" 0.099)% t$ Z! Q$ _8 `6 |, T& O) k% p
- (setvar "DIMCLRT" 7)& m/ h9 w) s% e7 ~1 ]- z
- (setvar "DIMTVP" 1)1 m: _3 N& _: ^8 I% u- o% Y
- (setvar "DIMJUST" 0)
1 X6 d8 O: [/ }/ ` - (setvar "DIMTIH" 0)! E" l" Y; o4 T$ |8 z
- (setvar "DIMTOFL" 1); ?- m/ O4 R/ u0 _4 @% R
- (setvar "DIMSCALE" 1111.1111)
/ b3 z0 a5 `0 l- R; ~% c5 z
- [) Y, i( P5 l5 @/ P# f% ^
4 |5 X2 G+ D1 {$ t2 E- $ k4 e, k# i9 z0 Q
- (defun c:zp () (command "'.zoom" "p"))
, ^- Y& i- a" j0 A5 c S2 z - (defun c:zz () (command "'.zoom" "p"))9 p" K( N9 i+ T. L* Q, \0 B# Y
- (defun c:ze () (command "'.zoom" "e"))
& V ]* k1 e/ T - (defun c:za () (command "'.zoom" "a"))
3 ]5 _. \) k. K# z! W - (defun c:zd () (command "'.zoom" "d"))# M4 F! p4 U- i
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))/ e% V/ m, Q! J3 V/ H
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))* A* R" m' ?2 [
- (defun c:de () (command "ddedit")(princ))
0 b& q0 R9 V3 N4 e& _# I - (defun c:dda () (command "Dimaligned"))
1 v' v8 R2 z% X - (defun c:ddb () (command "Dimabaseline"))! Y) g. l9 N% l2 R
- (defun c:ddc () (command "Dimcontinue"))3 ]* ^) I! `$ b6 O% C
- (defun c:dde () (command "Dimtedit"))
! \% w" v# w) j1 [$ G1 T# u2 ~ - (defun c:ddf () (command "Ddattdef"))
. T" C5 a( m( D$ T - (defun c:ddi () (command "Dimdiameter"))
- x! z( P3 D0 J# V8 Z, a - (defun c:ddl () (command "Dimlinear"))$ C# b6 c6 n. t
- (defun c:ddn () (command "Dimangular"))
6 n, F/ a* }* N5 H - (defun c:ddo () (command "Dimordinate"))
* y+ E1 k% I; }8 N9 V# ]6 K - (defun c:ddr () (command "Dimradius"))
$ Z- k9 C% `9 A5 t4 l& z5 d. R+ c* a - (defun c:dds () (command "Dimstyle"))1 i% E2 n0 w) u' e7 P' d. e
- 3 s) B) z& B! T0 [9 p& V: \
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)0 Z6 c4 u4 y8 }
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
! H$ r2 x" V4 e0 W, J6 U* v8 b - (defun c:UU () (command "dim1""update""all"))$ P, v, }6 _9 J3 `
- (defun c:ded() (command "dim1""tedit"))
* f; |! R( v$ |9 @ - (defun c:da () (command "dim1""ali"))8 `- n6 }7 S! G6 G* a
- (defun c:dll() (command "dim1""l"))
* K0 p1 X9 F9 d' B - (defun c:dan() (command "dim1""an"))
, C: p. z' V* `% q2 z! [ _ - (defun c:d1 () (command "dim1""ra"))0 {$ D0 L9 }* ~; e/ Y% Q
- (defun c:n () (command "dim1""new"))
5 I, T+ U5 R5 B. }
' b4 e' x+ y# \9 ~8 Y" S- (DEFUN C:PE () (COMMAND "PEDIT"))
: v9 ]* [- ^. |' t+ V3 _ - (DEFUN C:PL () (COMMAND "PLINE"))
. ~* ~: B P' _$ Q - (defun c:dd () (command "dist")(princ))
3 [. \& j* g& W( m: b - (defun c:w () (command "pedit" pause "w" "au")(princ))
- _ P& Z. D, J; ^! i% N - (defun c:pg () (command "polygon" "polygon"))
6 H" R( `5 z) K/ A - (defun c:el () (command "ellipse"))! U) M5 E; l# b: C- h6 y# N- ~; Y
- (defun c:xe () (command "explode"))! s4 M# s2 w" m/ T( G7 y5 R/ x
- (defun c:eex () (command "extrude"))
$ G/ t6 _+ i+ Z% T I1 ` - (defun c:xg () (command "xline""a"))4 d4 N4 n5 I7 K& E$ l
- (defun c:xh () (command "xline""h"))
* v6 Z* S9 t& w- E& w( f% H - (defun c:xv () (command "xline""v"))
/ l) p9 [2 o) y+ A2 Z T& `, @ - 3 U. j; N- i6 {: @4 a' f, j
- (defun c:oc () (command "osnap""cen"))! P( c. Z7 j! H2 @- n$ v/ k
- (defun c:od () (command "osnap""nod"))
k* i# e4 ~+ a - (defun c:oe () (command "osnap""end")); N# i4 E0 K. i
- (defun c:oi () (command "osnap""int"))
. O+ A/ V' x7 ~# \9 T - (defun c:or () (command "osnap""per"))6 @+ z+ A d; O
- (defun c:on () (command "osnap""none"))2 W C8 S6 y J! i; H
- (defun c:oq () (command "osnap""qua"))
% A, Y6 J1 V" G/ Y' C, ~! [ - (defun c:om () (command "osnap""mid"))
1 x/ J/ b0 ?$ b% H, p( l - (defun c:ot () (command "osnap""tan"))
" R9 v ~% M# n r# m, R - (defun c:oin () (command "osnap""ins"))$ ?* `9 ?8 a0 V6 J w& L8 y+ L
- (defun c:oa () (command "osnap""nea"))
1 I* I! O' x: m' r - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
$ m1 E4 [4 i o0 R1 A) o- P6 C - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
4 ^/ l* t" @" H- t9 h) W1 B; T - ;(defun c:nn () (command "new" "y" ))
7 [. n4 j+ p9 n7 P1 ~1 `* w
. Q W9 r) e3 _! a! C! ]- (defun c:/ () (command "limits"))
; Z& M9 [+ e8 i2 p0 m& w* _$ ? - (defun c:`1 () (command "region")), w5 R& w& g, B7 [% q9 Z2 u9 b- \
- (defun c:`2 () (command "subtract"))
6 J$ d0 v1 j' y% R - (defun c:`3 () (command "union"))
/ l$ U) p+ Y$ C7 P- R6 W - (defun c:`4 () (command "intersect"))3 E+ a$ G1 A7 _3 M& l( J1 n$ I: T7 L
- (defun c:`c () (command "cal")). T* p. y, z2 q; C: m( ~
- (defun c:`g () (command "Polygon"))" Z& i+ _9 ]6 b' R1 [8 w& M# k1 \
+ S8 `! L! a' {% o- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ)) T) X2 O( `1 Y% T! K8 C' Y
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))& N5 C. n0 A$ t5 A; W& H
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)
, k! q! @1 H+ ~1 c$ G* q+ H
! P9 S; l) G! \; V9 G, l- O- (defun c:ddm () (command "ddlmodes" pause))9 A. ^1 R6 H c; f- Y9 i% c0 T, ]
- ( ?$ f) R/ s- \/ x8 z
- (defun c:sha () (command "shade" pause))- J5 \7 D2 }% E
- / @9 u! ~, W+ u6 P
- (defun c:sr1 () (command "surftab1" "p" "" pause))8 K9 R0 }( o! j' G6 K
- (defun c:sr2 () (command "surftab2" "p" "" pause))4 v6 s% L9 I% H; h" t0 ]. a* I& w
. R. w* I4 Y2 W2 k- (defun c:ad () (command "audit""y")) P$ u* s/ p0 o a
- (defun c:q () (command "quit"))
5 F( d; t' t8 n5 A - - Z/ ~5 S; r8 _" e! n, P" g# [
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))- N" n# V: I3 h
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))1 P0 m# l( z; {/ E" `) }8 z9 r
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
! V2 W1 p3 z% s$ L5 s, Q7 D7 _ - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
B% Z! q) b3 r$ m5 n! s* b$ g$ v - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60")) l1 q( T# ?1 i& L
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60")). q! |. W [4 t4 [3 }5 g
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))5 y- x6 M6 j, V9 X
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
* C- |# |% E- M Y5 d" h - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180")): |$ U |2 K" h) ]* V' J8 q" q
- 7 c9 n0 u" H) }/ [' k9 w2 B
- (defun c:u3 () (command "ucs""3"))
5 O; G: i2 c" u% \+ \$ ]5 \4 n - (defun c:ue () (command "ucs""o""end"))
9 W5 H; A; f8 U( ^. H( S, r; J1 F - (defun c:ui () (command "ucs""o""int"))
& J n( h4 @$ @8 F! P - (defun c:um () (command "ucs""o""mid"))
8 _' t" n, @# L - (defun c:uc () (command "ucs""o""cen"))
4 i1 O, a) O2 Z5 y% Q5 X4 j - (defun c:uq () (command "ucs""o""qua")). I+ U# q$ J d# g9 h( m7 m
- (defun c:3s () (command "ucs""3"))6 E! K0 V6 S2 @8 I7 Y, Q
- (defun c:sx () (command "ucs""s"))
5 O2 n/ D8 O$ @* x0 ]7 M( V7 q - (defun c:sf () (command "ucs""o"))1 i: o" {8 w% U
- (defun c:sz () (command "ucs""p"))+ l& N7 o! S! [# T, H% \/ q
- (defun c:sr () (command "ucs""r"))- K/ Y* E' A9 C# i( Y4 U
- (defun c:sw () (command "ucs""w"))
1 k+ Z/ {: R# V/ T3 Y - (defun c:fv () (command "ucs""v"))
) w, p9 v" F5 C - (defun c:ux () (command "ucs""x"))
8 E Q: W+ @) t' m; i" s: Q - (defun c:uux () (command "ucs""x""90"))
2 b, \! }$ S( w* I ^ - (defun c:xxu () (command "ucs""x""-90")) q" l3 g( a3 S" K+ w
- (defun c:uy () (command "ucs""y"))
# i& q" v _& f0 i! p& n - (defun c:uuy () (command "ucs""y""90"))1 y- m0 [; I/ ~6 I# `7 o) y5 w
- (defun c:yyu () (command "ucs""y""-90"))6 W0 w ^( T& w$ _7 i# c" z
- (defun c:uz () (command "ucs""z"))9 T5 f' f& ~5 J/ z! \4 G$ R
- (defun c:uuz () (command "ucs""z""90"))$ y% i0 |* ~+ s# ]5 [9 Q
- (defun c:zzu () (command "ucs""z""-90"))
6 {& {4 b. w7 R! n; F* d - (defun c:uci () (command "ucsicon" "Properties" ))(princ)
+ d# C4 R/ D* p+ b - (defun c:ucm () (command "ucsman" ))(princ)
y8 D5 D" j' ^& }
9 i( U4 N: B6 U- (defun c:sa () (command "vpoint""_non""-1,-1,1"))! B) _ z( h( t. q8 j
- (defun c:sd () (command "vpoint""_non""1,-1,1"))
& l: E* {7 ~1 p) u/ d8 l2 s) {9 N - (defun c:se () (command "vpoint""_non""1,1,1"))
0 R. Q0 j5 s) l( r; C# C - (defun c:sq () (command "vpoint""_non""-1,1,1"))- g5 ?+ s% ]" G
- (defun c:vc () (command "plan"""))% \9 G6 o9 z2 D- y% O4 t
- (defun c:vd () (command "dview""all"))* ~$ I- h% \' q+ m
+ z* v0 x, h7 `3 ?5 s4 g- (defun c:TT0 () (command "tilemode""0"))! v" W, j: z! z+ f! |
- (defun c:TT1 () (command "tilemode""1"))! k" r) _$ w4 g* e' Z' V2 ?% O z
- . t1 f1 m w5 n' l# ^" _
- (defun c:vt () (command "vpoint""_non""0,0,1"))
* O2 b/ r3 a- }% K& @) r - (defun c:vb () (command "vpoint""_non""0,0,-1"))5 A v4 u# _. T, I4 z
- (defun c:vl () (command "vpoint""_non""-1,0,0"))" j6 i% w: A+ }/ d
- (defun c:vr () (command "vpoint""_non""1,0,0"))
j8 s4 R4 w4 E/ y - (defun c:vf () (command "vpoint""_non""0,-1,0")) y6 H6 x: {/ ^/ i1 u) R7 }) \4 X" p/ _
- (defun c:vk () (command "vpoint""_non""0,1,0"))- P" m: ^, {+ ?' ]
- # L$ A/ _2 x" Z5 ~/ t0 ?5 Y$ t
- (DEFUN C:MM () (COMMAND "MIRROR"))' J" f: Z% {3 A. |+ ~! z
- (DEFUN C:MP () (COMMAND "MOVE" "P"))# D# p, T# Q9 D3 M
! v, U0 L# T- ~: Q, M& U0 ]3 h- (defun c:mee (/ a)
8 `7 w P" v4 J! t. b v- h' u* b - (setq a (ssget))(command "move"a"""end"pause"end"))% t5 ] s q, Z1 }1 T1 x- K; {1 }
- (defun c:mc (/ a)
. f" a1 c5 _ B& M% a - (setq a (ssget))(command "move"a"""cen"pause"cen"))
7 M) `% v; B0 K- n, R% V% g8 ] - (defun c:cc (/ a)
+ i7 Y9 ^& }" v - (setq a (ssget))(command "copy"a"""m"))3 r% V, E6 c+ ~: ]
- (defun c:ce (/ a)
- ~ o5 L; G& j- v9 m+ C, p/ a - (setq a (ssget))(command "copy"a"""m""end"pause"end"))
6 o# v2 Y6 U: d: q/ e) x - (defun c:cn (/ a)$ Y3 a/ c& O8 g) B) S
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
9 v2 L/ [4 N7 C! Z) r4 A# L - (defun c:tl ()(command "trim""l"""))1 p, A" M% j6 I6 b
- (defun c:tf (/ a)) A H! e8 _' F' k* X5 L
- (setq a (ssget))(command "trim"a"""f"))
; K# o2 f% K" X) p8 c - (defun c:el ()(command "extend""l"""))0 ?' y v/ x2 B6 H* `0 G# h
- (defun c:ef (/ a)
6 V! ]* w) a9 y2 C2 [7 [7 v, ~ - (setq a (ssget))(command "extend"a"""f"))
0 E6 o/ Y2 q- N& Y, ]8 U - & [4 q0 O1 t" K4 G# ]
3 [9 }: U' ?6 ^- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
' \( p h% E" I - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220")); \$ ~! a% k8 H: Z& ]4 Y }
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
. i# L( e! P8 r - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))- z; l, W. a! W9 N1 D8 y' D2 P! |
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55")): v; \& V/ K8 s9 z Q |# y
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))% _: v: S! n! {
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
`: K8 I w3 g7 ~5 m - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
7 m+ G6 b x) B0 n - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))! e! {2 ^" u m
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
: C+ Y+ H T3 B3 G/ x - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))9 a( O$ N9 P6 l8 y' D
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))! D- d; V8 l; K4 u+ ?+ F: ]9 k
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))/ C, }( @ Y* y7 k
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))/ f3 Q& I: E/ i
- (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))1 J: M1 M! M$ E! B' m1 U
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
& r: z$ R" @- M. m9 K - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
' D+ V2 L$ A, @- l: k
0 k: W) P0 \' i4 B- (defun c:mla () (command "-mledit""av"))
7 q. S# E% q/ S5 E2 [ - (defun c:mlc () (command "-mledit""mc"))( ^% d% @) O: `& }* A$ E
- (defun c:mld () (command "-mledit""dv"))" U3 } r! W) s
- (defun c:mle () (command "mline""end"pause"end"))
# H6 o$ ^) E! U0 J a - (defun c:mli () (command "-mledit""ca""int"pause"int"))8 e0 N0 f* N$ K1 t$ v! Y& k
- (defun c:mlj () (command "-mledit""cj"))/ a! m& G2 r+ j% d
- (defun c:mlt () (command "-mledit""mt"))
4 c5 E/ x+ r$ J: c. n6 l - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
: W4 i0 Z. a$ ~/ \; P: I: e$ _ - (defun c:mlw () (command "-mledit""wa"))
9 N( N# Y" f [7 `) Q2 \4 m* D - ) d- f& |; l% Y7 L s4 o
- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))) k! N" g3 L/ D. o' P9 S
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))2 ]3 i; C* o) ^. K- F3 f, [
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))( u2 V& j# e4 Y9 c @' J) e
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
8 r4 s& S1 C( T* o - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
6 `2 b# s+ O9 R - & C0 n, `% t; P
- (defun c:p0 () (command "pline""""w""0""0"))
4 o" \- b6 Y6 v& O; u8 g( g - (defun c:ot () (command "offset""t"))& R# W/ d8 x0 `, e
- (defun c:t () (command "mtext"pause"j""bl""h"pause))6 v5 \6 ?$ T, h; M6 Q5 y
- (defun c:uo () (command "ucs""ob"pause))
! V! _ G, f) _2 t: a - (defun c:f0 () (command "fillet""r""0"))* R8 e6 J4 d/ Z% ]: `. {3 U
- (defun c:fr () (command "fillet""r"))2 C2 d$ ?6 F" b& Z3 `% M3 u+ n
- ) B C" u/ U" e7 n& ?
- ;CHAMFER
, R) H0 H9 }/ s! i U- N. A+ g6 G - (defun c:cf () (command "chamfer"))6 |9 c* v. x3 b6 h. U1 @5 h
- (defun c:cfd () (command "chamfer" "d"))! a. \+ t# n0 l/ k0 [7 s; B% K
- (defun c:cf0 () (command "chamfer" "d" "0" ""))
; D z9 X5 B* }! r! k - 4 k6 r5 y8 r+ I
- ;FILLET
8 z# D, n0 P8 f8 k' q - (defun c:f () (command "fillet"))4 J2 P0 Z0 W. Y* ^
- (defun c:fr () (command "fillet" "r"))
2 }- M' V/ X0 C+ d - (defun c:f0 () (command "fillet" "r" "0"))
1 L/ x; x3 e; M) H' M - 9 }) Y9 R* j" c6 D% S5 X t
- (defun c:OO () (command "oops"))
) @4 l x B, l( q$ w) G. d/ _ - (defun c:dln () (command "dimlinear"))
! c0 C, Y& N1 H* i, f: s( s! d8 d - (defun c:dan () (command "dimaligned"))
: n O8 b2 e3 I; O - (defun c:ddc () (command "dimcontinue"))
' g4 t0 f/ j2 @6 o& |7 V7 W+ l - ) I" b1 I8 e/ s5 h# {2 w
- (defun c:sc () (command "scale" "auto"))! F4 E9 A/ f O2 X8 P$ z* t) i
- (DEFUN C:XO () (COMMAND "snapang"))
( B0 W% d0 ^* a" n0 _ - (defun c:cc (/ a)
: { s2 f( K8 J& s - (setq a (ssget))(command "copy"a"""m"))
+ L' `! t0 s) M$ u/ S; l8 K
/ b& [; E, T4 y, n* \! @- (defun c:PJ (/ a)' s/ Q/ H: v( Y) m9 Y( k
- (setq a (ssget))(command "pedit"a"""j""all""y"))
B7 X% V6 {7 q& a - (defun c:JJ (/ a)& R' d8 u( ~6 G; i2 e" P- s# y$ ~% O
- (setq a (ssget))(command "pedit"a"""j""y"))
2 _( y1 {: A; s5 T4 Z) c. \ - (defun c:TN (/ a). e* ]0 ]- B6 j
- (setq a (ssget))(command "change"a"""p""T"))+ }' v4 h7 ~9 y2 \
+ b* }" o2 j6 @
4 c( q$ T2 P2 R1 \9 p$ f- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
1 V3 f u4 G5 R% M$ `$ j
0 H6 h6 C$ j6 i. Y' J- (defun C:IB ()(setvar"cmdecho"1)6 `1 M% g' P9 ^+ \: @2 a0 Z
- (setq pt(cadr(entsel"\nSelect Block:")))* v" G1 l: L- f- I
- (setq e1(ssget pt))
) g: M2 U! ~5 x8 z/ B - (setq e2 (entget (ssname e1 0)))! N# t. h4 q# B0 [: e" t
- (setq blname (cdr(assoc 2 e2)))9 l- J# S4 k- q5 v# }+ `9 G' Y
- (setq oer *error* *error* err2)(command ".insert" blname))
, e* c! c3 m7 X/ T0 v! V2 T - 3 P! a+ \. J& m
- (defun c:II ()) J- R8 L$ u. J/ ]
- (setvar "cmdecho" 0)# Q2 E+ V; z- ]2 \1 w
- (setq olderr *error* *error* myerror)
* A% L$ {$ [9 t# [ - (prompt "\nSelect objects: ")# o1 H: D* _9 x: K6 D
- (command "select" "au" pause)
* {4 d8 T0 s2 Z - (setq sstxt (ssget "p")7 V* O0 p l# P0 X- {9 c
- sslen (sslength sstxt)# V& D) u9 h- d2 a" K4 Q
- ctr 0
5 x; B" t- Y4 q% a& c \. ?* e - )
- Z" P1 R5 @1 s. p - (command ".undo" "mark")
0 k; P0 e+ [2 c/ X" d, b# e0 { - (while (< ctr sslen)
' Q! E1 [% M( y0 k) B' C: g! Y - (setq listxt (entget (ssname sstxt ctr))
! O7 d6 z& a# ~( Q7 e& a" w - txttxt (cdr (assoc 1 listxt))
2 e3 M, n" r. @7 Y: K. n8 u - enttxt (cdr (assoc 0 listxt))0 k9 N' _* P6 |3 N
- )$ L5 e, ], n2 d5 T# L' T- a8 s
- (if (= enttxt "TEXT"): }6 y5 K4 Z' G% Q$ t
- (progn
" P. Y5 a/ s+ a. O/ { - (setq testxt (substr txttxt 1 3)). K! F/ J6 { `. s3 G5 R
- (if (or (= testxt "%%C") (= testxt "%%C"))
7 e# v' k6 E9 o - (setq newtxt (substr txttxt 4))
" P0 Z) z$ z1 A; D+ j' P - (setq newtxt (strcat "%%C" txttxt))
' U$ k% V2 p; ^ - )7 o: z' z% l7 Z
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
7 R9 h& Q U/ b% O, v4 n/ A% Q6 j - (entmod listxt)" d7 F5 I Q# Y! \0 i* n5 g2 h" H( [
- )
; u& J4 y. c2 S) W+ t# T0 O' r - )
1 F) e# k/ B2 c4 v3 A6 ^3 h0 w; J - (setq ctr (1+ ctr))
$ c6 k! e( w! m5 v# f/ w - )
& k5 f/ ~; R8 ?8 s5 S: Z - (setq *error* olderr)- i$ B, L0 V* i" P
- (setvar "cmdecho" 1)3 I' o' n% \$ O! f
- (princ)
- k& C) H( K, g G" p0 p9 R) r - )
4 C. L: U) M" b" _; W3 S" ?( |
5 W/ x5 W$ X: r; B9 m/ j2 @- (defun c:DG () Q) o8 n/ f2 _/ O( Y
- (setvar "cmdecho" 0)$ R8 }6 k0 h- X/ [& j
- (setq olderr *error* *error* myerror)
4 h% M M2 w, O) R& y2 N4 D. D - (prompt "\nSelect objects: ")
- m- p0 B3 K q7 a3 ]) b4 m - (command "select" "au" pause)
0 N! P% w [: v3 _9 t- N1 T+ }5 i - (setq sstxt (ssget "p")
! N5 C7 |% K4 y- M( \: P - sslen (sslength sstxt)
0 @. G! O b9 Z - ctr 01 c. m9 d4 I* C7 L, q9 e9 Y
- )/ r* R9 X+ k$ W! J1 v
- (command ".undo" "mark")" z! U. H9 T$ f
- (while (< ctr sslen)0 k& r4 A0 V+ U( S! q
- (setq listxt (entget (ssname sstxt ctr))% I0 E: Y2 J3 b& @" t e( e3 K: e
- txttxt (cdr (assoc 1 listxt))
: s/ _1 o/ u+ h# F% K - enttxt (cdr (assoc 0 listxt))1 i' a6 _( ^( q( e( K
- )
. E9 f# Q* b4 @' V9 t3 Z i - (if (= enttxt "TEXT")
. P+ \# ]& `% K+ D3 j. L - (progn
& B" \0 _' k6 w/ J- i! a( d3 N - (setq testxt (substr txttxt 1 3))
; ?: L( _# v# x% G+ ^ - (if (or (= testxt "%%d") (= testxt "%%d"))+ B, i: T, d+ ? c5 C
- (setq newtxt (substr txttxt 4))4 ?- I) o6 w! x$ O; O) b; Z( _
- (setq newtxt (strcat txttxt "%%dC" ))
/ k" N/ T) ~4 }) ?6 \* E8 J7 P - )
& U6 x0 \% P- v4 Y) F j7 c& ^ j9 J - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
3 f9 j$ k. l T+ d9 G, \ - (entmod listxt)
6 o! k, f* I" g) p - )
$ w- A2 r' m( W - )6 v' R/ l$ Q' p5 z7 N0 K6 [( b
- (setq ctr (1+ ctr))
& ?9 @2 Z9 d3 `5 C: D8 x - )
( Q1 l) Z2 P6 M: O - (setq *error* olderr)
: g7 X$ s1 O" d3 r - (setvar "cmdecho" 1): P7 {+ X, [6 y, v5 s( s
- (princ)+ y+ `8 @+ ]$ K- {2 h3 u; V
- )- |" T! }; n* V. d G f# q" `
- 9 W- j* Z# o3 g) V: u
- (defun c:PI ()
% V. p% v& N( U. p9 m - (setvar "cmdecho" 0)$ M/ B% s6 w" @& H5 x3 ]
- (setq olderr *error* *error* myerror)
3 S) A4 v7 B2 U+ N3 r - (prompt "\nSelect objects: ")! u/ f$ I$ [3 r* o
- (command "select" "au" pause)
M# L' i1 d* c' k* g" M5 o - (setq sstxt (ssget "p")
7 r0 H0 P ?, j( l - sslen (sslength sstxt)& C8 X }1 y' }' c; W
- ctr 0
5 f/ }9 e1 n3 |* b! G - )
) g1 X) Z5 \- v* g$ ^' d' h- R - (command ".undo" "mark")
( K6 a' H: m) B - (while (< ctr sslen)+ i' l) Z. \9 U- y
- (setq listxt (entget (ssname sstxt ctr))9 ?5 R& a) A# V. |: V# @' C
- txttxt (cdr (assoc 1 listxt))/ N1 Q! q& s. ~7 a
- enttxt (cdr (assoc 0 listxt))7 Z, c: Q$ |% l) L: }
- )8 I( n6 O* e+ |9 w, m5 n
- (if (= enttxt "TEXT") m8 i: Y9 \& C3 J
- (progn/ ~0 e+ V, Y% }( p! c- ?0 g
- (setq testxt (substr txttxt 1 3))1 [% s3 r" O% A0 @$ d' }- b
- (if (or (= testxt "%%p") (= testxt "%%p"))
$ V: K" s/ g9 O% y - (setq newtxt (substr txttxt 4)); |- M- p! w: e. n" t6 G; K! O
- (setq newtxt (strcat "%%p" txttxt))
5 F$ j7 W( q7 H/ m: j+ } - )
0 M- d5 J; W, E$ V3 o( }9 Q - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
?/ ^: x* T5 p+ O( f6 I - (entmod listxt)
' j, d3 g( q$ j: ^/ K - )
2 A- T5 Q. a9 P6 w: x - )
# N( M9 S! E B# x& \& ?: l - (setq ctr (1+ ctr))' a, j, U/ k! Z7 \
- )
( k. j- q: u) W8 Z! o/ q& V- ? - (setq *error* olderr)% ?8 s% {" f" V
- (setvar "cmdecho" 1)
+ q! q! q1 I+ G0 S4 L' |7 H' S - (princ)
. l: c1 E/ ]# U2 s- P! {: Z - )
9 u9 E3 a7 T, {1 K3 g/ ~
) t+ M9 b6 I5 O% }0 k. D0 t' H' J& m- (Defun c:CB (/ a)6 Z: ~2 k( n, Q. Q' _2 [- y( q M6 y
- (setq olderr *error* *error* myerror)
! \8 d$ _3 s% V3 e3 \$ `& t! r - (setq ocmd (getvar "cmdecho"))
6 G5 [; f) x. p" P - (setq oblp (getvar "blipmode"))! Q6 q6 O& V$ E8 I- C
- (setvar "cmdecho" 0)
0 e& T5 q$ j& @, \+ [ - (setq a (ssget))4 v0 Z& p% D0 X
- (command "CHPROP" a "" "C" "bylayer" "")
2 v) _& E$ l( M/ Z# t - (setvar "cmdecho" ocmd)
V4 k- z9 P! |2 o6 | - (setvar "blipmode" oblp)3 b7 p! `& G7 J. o- _6 T
- (setq *error* olderr)7 w' M5 y& T- ~1 b, e8 V
- (princ)" i% G6 t$ Q) u3 C9 |8 P; p
- )2 u. w/ k/ R) L T; E9 P
- 4 E2 L* X& S" E+ q
- (defun c:LCC (/ co43 obj23 la23)
7 c l+ u! j8 w. i/ u1 K0 i - (setvar "cmdecho" 0)
' m) H% A+ P" n3 V - (setq co43 (getstring "\nNew color : "))
, s$ j$ v4 d3 Q* q6 h9 F* |4 z - (setq obj23 (car (entsel "\nPick object on desired layer: ")))$ o, b4 i" l p" v$ E8 J
- (if obj23 (progn
/ d) O. l) g5 c6 w9 C - (setq obj23 (entget obj23))0 L, a8 O- @/ \4 M% H
- (setq la23 (cdr (assoc 8 obj23)))
4 p- l. e, m- \ - (command "layer" "c" co43 la23 "")6 O I- ^) C1 c6 v* e: {# m, T
- )
% ~. Y9 |- L0 z7 E - )) L$ M4 O( X5 a- W4 B2 m- m
- (prompt (strcat "\nLayer has changed..." la23))- l) Z9 @" c( L# L4 J* e
- (setvar "cmdecho" 1)/ m w" [/ g" x9 ~ q
- (princ)
' Y5 \( X! T, m& \ - )
" c7 o2 ^# U5 A& g
) \( f; l3 T V& Q- (Defun c:RP (/ a)7 ?9 S/ K8 \3 W: Q, t B, q0 L% g
- (setq olderr *error* *error* myerror): | }/ a6 s2 a O/ W
- (setq ocmd (getvar "cmdecho"))( ^/ H! f- j- @
- (setq oblp (getvar "blipmode"))
9 y/ ^6 }5 z: |- o - (setvar "cmdecho" 0)* B) r! y8 ^. S
- (prompt (strcat "\nUSE: Delete object(s) belonging to"1 |+ u( o# q! N0 c u e6 `
- " the layer of the entity picked...!"))
/ j1 i' c" s. m' [, L! u, l - (setq a (entsel "\nPick the entity with the desired layer to delete: "))$ c" D% J0 o& \/ U
- (if (/= a nil)- w+ H5 ]0 l. `
- (progn (setq a (cdr (assoc 8 (entget (car a )))))
, h& R( m, X8 a/ T - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
6 J# ~. ?4 a+ Z( h& c u1 Q - (prompt "\nNo entity selected!"))0 v! I, k ^0 t$ Z: p, ]* H y
- (setvar "cmdecho" ocmd)$ h% ^5 p9 Z. s
- (setvar "blipmode" oblp)
0 v0 K' Q" x4 k - (setq *error* olderr)
3 \ J8 Q- t3 I {1 g& g - (princ)
7 K- k2 U4 j# f5 Z( {6 M - )
. }- O+ ]. @) V& x7 e/ o, A' K - 5 V9 j8 q. C/ p2 g0 Y; R; q$ }
- (DEFUN C:WL(/ SSET NET SSL M), i& G+ i- l- e6 A" g7 S9 M) U
- (PRINC "\nSelect lines :"): J$ C: [% {8 F3 w
- (SETQ SSET (SSGET))
- ]0 e* E& J# R0 B7 K8 O - (IF (/= NIL SSET) (PROGN
" F- x; F0 n( G5 E - (SETQ SSL (SSLENGTH SSET))
0 B& w5 U. S0 d1 e/ i6 A% p - (INITGET 4)
: q1 k- p/ {1 T+ J: W: c( l - (SETQ NET (GETREAL "New width : "))8 F- d9 N2 P9 R0 a% B. j! G
- (IF (/= NIL NET)/ Q3 i1 F. w/ p$ C8 \, v
- (WHILE (> SSL 0)$ ~+ [& j5 m2 I
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
/ u( t2 \3 }; R( a5 s( b& W+ b/ k - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
% O. A; ~( X; d2 }$ V/ X2 a- `$ B) _ - (COMMAND "PEDIT" M "Y" "W" NET "") 4 C0 B d+ q6 \; \
- ) 5 k: d& k, A2 V; }0 |1 p ~ _& C! y
- ) ) O/ ^- Y e! b* o/ k
- )))
" R. K J: H( u$ R" T8 N - (PRINC)6 T4 o; M+ D' }8 q7 D/ j5 {' F6 l
- )) m4 D9 d6 B# {# J$ v* |4 X
% [# R, E! P4 }# Z; a: ?/ T- (defun C:MML ()
4 c, B4 R7 Q; ^! S0 z1 v - (princ "\nSelect objects to move to another Layer.")0 L4 S: D) B7 v( @: z$ ?
- (setq ss (ssget))5 A* e( ~+ b! V: R
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))' W/ v6 z# v5 ~' E
- (setq counter 0)9 k0 ~, ?/ q. {+ _. M
- (prompt "Moving to layer.....")(princ ul1)
6 e1 ]8 M9 ? z ? - (setq e (ssname ss counter))7 b& v: X0 |4 K0 w+ U) X" S
- (setq l (cdr (assoc 8 (entget e))))- E7 g+ w% }0 p$ t* a9 w
- (setq S (ssget "X" (list (cons 8 l))))/ b* Q$ W1 [8 R# l
- (command "CHANGE" ss "" "P" "LA" UL1 "")
_) T: ~3 f; R. x2 M/ a$ Q. j2 a - (setq counter (+ counter 1))
7 |! s- R& ?) X" {/ `3 j6 m - (princ)
6 S @# j4 V9 g( v& Y, `) z - ) $ `% B; u" }. e @4 B" j O
) n9 M: e {; `4 q$ G3 c- ;;; ================================ GHI CHU ============================
3 `, r2 Q$ f5 o4 x8 F+ _5 B- U) z, x - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
) C/ ~% P& B8 l! g - ;;; =======================Thuong Dung Font Romant.vnh===================
( V' r, \2 m, x1 y7 M
$ ^2 n! P; C) d) ^- u( d, o) y- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
& Z2 S, A8 t1 P& ` - (setq oer *error* *error* err2)7 P" z6 N1 D' u* Y( Q; C7 p- P
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
e& k4 e& s5 B9 u4 E- h# C - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))) k4 n+ B' ?6 Q9 P% Y/ C7 g7 B
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))7 q9 m: A- R! T' S% U: i1 L, a
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
" A8 ^: }# h0 C* s4 z: h - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
: b: ?+ p" s+ z8 J9 G - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))8 D0 _( v" ^% f6 ~/ H' m8 s3 ^
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
7 e9 `3 {0 ]" }8 t7 x- M; R' u& S - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))$ l5 l4 p' J! B' ~1 O; k
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
& R1 A; G# h8 y- C& B0 V. [+ \ - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))" W- H h: M3 O5 E
- 0 k! v% q$ S3 `1 ]: b. { y* R9 P
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))" h9 u* ?, X& G) z' `6 N
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))1 p. U% R' z: y# g' v& C
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))8 \" p# f ?0 E
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))) j0 R! G( X! P n- U7 R3 {: z
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
6 S9 {/ b& Y4 ?3 L4 w8 ]/ e - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))5 x. y0 r% M0 A0 _# V& W3 Y
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))* C7 h! `: t3 a1 ^ E
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
9 W/ h# o. u- p$ A; q, [: p - & R& N. i" M2 ]. m" N$ u; L
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))4 u1 @2 [0 w( Q6 h0 d% I& o
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM")); n& m$ R3 Z. k, t/ T
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
! c2 b' J1 w$ S. S1 T2 A& p - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
6 i# T1 o% @7 ^" ?( o6 N - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
+ p1 q6 G! l5 F) V - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))7 n, M0 N$ t: d# V( x
- (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
- u9 I6 z; ?6 @. t) x& w - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
+ Q! i& g9 _1 P1 M$ A - (setq pta (getpoint, N% |9 @6 B* H2 K
- "\nPick first corner. : "))- {- `. E1 U \. g3 K& n! j- V9 x; h
- (setq ptb (getcorner pta* q6 Z: r' m- T$ O D. H1 Y4 ~* T
- "\nPick second corner. : "))3 H' C8 ?5 f( a: g$ f8 b; n4 Q
- (setq ptc (list (car ptb)(cadr pta)))
) F$ M% w6 y5 c) O# K. x/ L7 q - (setq ptd (list (car pta)(cadr ptb)))
& f% c9 H: d1 G' q - (setq ang (angle pta ptb))
7 E3 T! E# u3 X7 b" x4 w( P - (setq d1 (/(distance pta ptb) 2))
6 _* A7 T& F; r- h, B( } - (setq cp (polar pta (- ang (dtr 0)) d1))
/ ]- c! V; l& A/ g; R - (setq X (distance pta ptc))
5 @6 O5 c5 I/ P. n4 @ - (setq Y (distance pta ptd)): \4 A; i! i+ B, r' X
- (setq X1 (rtos x 2 1))
; W: r4 t( i' m/ s3 y9 r - (setq Y1 (rtos y 2 1))
y+ ~$ O$ F) w) v' Q0 h D0 c - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
$ t6 c# B0 t/ M9 O, H7 o9 m - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
3 L/ b0 C$ W$ D - (defun dtr (angg)# h; R1 k# f8 b# }
- (* pi (/ angg 180.0)))( @* _& R- H! G8 R) y
- 5 ^5 Z/ I$ \, J- G. g1 Y J
- (defun c:WS (/ pta ptb rmsz pl1)
9 f" Z* ]) M$ [3 H) S7 a& Y - (setq oer *error* *error* err2)6 {) l) y# Q% j* [/ E: p- B6 i4 w
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")4 O7 K/ ^, J. S* \
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
, m( ?- a9 h# ` - + `4 x7 ?/ S4 t# E5 R8 ?
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))& i8 O9 A9 P z6 h! W" n
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))" o0 ]8 `- l! J
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
* H3 F, t! j1 T - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))9 n0 q1 M" `4 s) }! h
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
) o5 D$ K0 Z9 C - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
; O: Q5 ^( c3 A9 y/ g - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))0 b3 R8 ^4 X# \/ W% ^! ^$ i; p f
; \& u& q, U9 x' n- (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"))' T$ |5 _ ~/ I: }6 I5 ~' H- y X7 p
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
2 o( k1 O- h/ |4 p; c$ `3 I! Z) t - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))! L3 N7 A0 r6 K- v- @7 g- b0 c
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))2 ~$ G9 d) ^6 W
- (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))2 Y0 Z/ p9 Q( x* ~- o
- (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"))) O, J# y# W& |2 B
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
: H) a9 [4 c: S1 W; A4 ~. p - (setq pta (getpoint
' X5 }4 D+ q4 Y( c - "\nPick first corner. : "))
) |- a# e2 z5 O7 y' k8 A0 x' l - (setq ptb (getcorner pta+ I# A T1 F d( s: f, `$ Z
- "\nPick second corner. : "))
7 z9 j$ f) s( y5 ?3 h9 f+ Z. l( [ - (setq ptc (list (car ptb)(cadr pta)))
5 ?1 r: | T" C( v6 F) A - (setq ptd (list (car pta)(cadr ptb)))
# ]4 P( w/ ~ K Z' h; u, L - (setq ang (angle pta ptb)). U4 Q- J G1 X5 P: Z+ l
- (setq d1 (/(distance pta ptb) 2))0 u X3 O0 g9 R& r9 W7 |$ I: C
- (setq cp (polar pta (- ang (dtr 0)) d1))
9 e L! ?! }4 ?& s. r) k - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
, T: }- h. w# e& d0 G# P% ? - (defun dtr (angg)
) _% }- h% r. w7 o( @) F2 I+ G - (* pi (/ angg 180.0)))3 D1 [* T: b- g s( Z
- . _% w2 f B9 K; B1 g4 U; k" P% ]
- ;;; ================================ GHI CHU ============================& j' g" t. [& C1 e
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
* ~0 N& m3 [$ P f% i9 u0 R7 ~ - ;;; =======================Thuong Dung Font Romant.vnh===================
9 B4 h3 j4 c8 `: l3 p
: X+ g+ A+ l$ C% P0 y; q8 b, l8 P- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)# Q$ L& T9 }. |- S6 y. V+ \
- (setq oer *error* *error* err2)1 w. w' r2 g( }7 V/ n9 E) f# ]
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")/ t! [8 H, c$ s/ C1 \
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))" x4 c* Q' Z6 O$ t# U, _
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))# P; q% T7 P9 C+ }- w
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))& _! k% W, @8 Q, Y$ K, g
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
d) p& j( {& ]1 X% ~ - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))& u6 ~+ r6 w* m5 j1 j5 v; y2 C
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))8 Y( B& F& Q- d4 |
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An")): Q& `) m' f9 O5 U. F6 l& ^
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))4 X8 i" S" d1 h8 c+ N" J
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
) l2 v* ^% V( {; |4 |* I; ], S s - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
6 D, j5 f9 o8 P- P I1 _( u% i - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
# X3 c6 v9 j7 t5 o, w, w" n - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp")) N8 N+ [1 n* B" @" T
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
) C2 A; O F/ ^# ] - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))( L! u: p! }9 A: b- Y/ |+ x, v
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))1 y8 K3 C k; i8 r
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
4 i- {; ~0 Z$ u# T - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
l" w) Q3 {* h" Y0 o - (setq pta (getpoint$ G4 r$ E4 {1 e# W
- "\nPick first corner. : "))
8 L3 x z; a6 ^/ a, B - (setq ptb (getcorner pta
% h! `" u" O0 S% V% M. {7 j - "\nPick second corner. : ")), C0 M. o. \5 j
- (setq ptc (list (car ptb)(cadr pta)))! j$ t4 f' W4 S, R' d
- (setq ptd (list (car pta)(cadr ptb)))
$ |6 M; Z0 H0 ^# _7 i; \ - (setq ang (angle pta ptb))( c, O/ L1 g1 A0 R
- (setq d1 (/(distance pta ptb) 2))
% X# m9 J- h- F2 F! `' S3 M - (setq cp (polar pta (- ang (dtr 0)) d1))
8 w$ Z l- V H1 A - (setq X (distance pta ptc))
2 A* _# F+ g5 C, H" Z" U$ o- Z - (setq Y (distance pta ptd))" z/ J n& R1 n! Y1 z, F: v. p& \
- (setq X1 (rtos x 2 1)). l! ]" l5 c8 j% z: a! F
- (setq Y1 (rtos y 2 1))4 m9 s @# j* s
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))! J3 C) r. o" B9 ^2 b, Q
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))3 B3 c0 k# Q# U& }# v
- (defun dtr (angg)
3 v5 i* p. b9 K3 G - (* pi (/ angg 180.0)))
* a5 g" o% {* a - ! J& \! D( M$ g( p- h9 X
- ;;; ================================ GHI CHU ============================/ G* N2 @* T" B+ F
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========1 O7 ]8 f! K* @" e
- ;;; =======================Thuong Dung Font Romant.vnh===================- z( o8 n" _ V4 Y& l
- 1 K# ~* j6 k& f% ~: x
- (defun c:GS (/ a b c d)7 Q1 z: q4 Q, Z! Z
- (graphscr)6 Q8 t5 W, l& s2 J* Y/ Q2 j
- (prompt "\nSelect text to set style....")
, ?4 Y5 Q7 S6 R* d* @ - (setq a (entsel)); G0 ?1 V, B' v/ M
- (setq b (entget (car a)))" u* b" B4 z" g. y: ~( A( V9 a
- (setq c (cdr (assoc 7 b)))
. I$ p: D2 S/ v - (setq d (cdr (assoc 40 b)))! c$ _9 N4 n* x$ p: O8 J
- (command "style" c "" d "" "" "" ""))2 l( Y7 k8 V: e
- (princ "\nType GS to set text style."): Y% `5 N* }- F: _
, D# \- z5 ? p( ~- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
) i- N( M. E5 P1 \7 x! j - (setq olderr *error* *error* myerror); O. b/ }) a! S! c7 e) U2 w( c
- (setq ocmd (getvar "cmdecho"))
3 ^9 l5 K$ | a( ?1 I - (setq oblp (getvar "blipmode"))3 A i8 ]2 E4 A& F0 q3 I2 o
- (setvar "cmdecho" 0)
, k1 r! N; Z/ N9 y) l3 n m9 L - (initget 1) ;3D point can't be null3 n9 s0 l8 M% m. n' k. j
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
7 F0 h& y/ ]" Q - (setvar "ORTHOMODE" 1)/ N7 j% X2 R( i' s, O/ y
- (initget 7) ;Length can't be 0, neg, or null$ y ?, T1 W* r! n' ?
- (Setq l (getdist pt1 "\nLength: "))
: q, {& I3 N( U' v - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))4 c& `+ p; B& e- Q- \+ I' X2 u
- (grdraw pt1 pt2 2)
: j6 W- [2 |2 [! t - (initget 7 "Square") ;Width can't be 0, neg, or null
. ]! m. h! Q+ N - (setq w (getdist pt1 "\nSquare/<Width>: "))" _$ M8 a! D$ x* L0 c
- (if (= w "Square") " B* M: E6 ^* m6 x
- (setq w l)* \9 t! C: B) p, M8 E# m8 d' h
- )
5 x% h" l8 v- \" F - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))8 t; A) T9 O8 o0 \6 M
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
' l& {* h1 z' c* t - (grdraw pt2 pt3 2)
]. U! _7 K' J0 h - (grdraw pt3 pt4 2)6 e, y) V2 F6 Z& U& Q _3 i
- (grdraw pt4 pt1 2)4 f8 K$ \( L+ P# {. H- F
- (setvar "ORTHOMODE" 0)2 U: Q% a( i: D1 s; q$ F! J
- (command "pline" pt1 pt2 pt3 pt4 "close")
/ p6 `5 \, ]' k6 x2 R$ y$ H0 t8 T - (setvar "cmdecho" ocmd)
% Y9 y- Q. n9 g: U - (setvar "blipmode" oblp)
& e# p6 \6 W. a - (setq *error* olderr) ; Restore old *error* handler
9 s6 J. a/ _7 M" N - (princ)1 F6 q% T$ Y( X- r7 u2 t
- )/ f% O* F! E. \. k
- $ E$ T7 g" T. c
- (defun c:SG (/ ent pt1 pt2 ang)
5 D2 e, M7 u& G - (setq cmd (getvar "cmdecho"))% ^# |" T% f' S3 D
- (setvar "cmdecho" 1)) d: {3 N8 i2 N: m
- (prompt (strcat"\nSnap angle will be set to angle of line"))
5 {8 [ ~9 h1 e2 Z! y: P - (setq ent (entget (car (entsel))))! t8 X. `+ l, C# a. g/ ^& k# A3 }
- (setq pt1 (cdr (assoc 10 ent)))' w; }+ A& M) ^/ J( m% A7 `/ K- B- O
- (setq pt2 (cdr (assoc 11 ent)))- z, s( N( n0 i/ z
- (setq ang (angle pt1 pt2))
8 P$ r P) n- f+ x3 ^ - (setq ang (/ (* ang 180.0) pi))/ l0 r% ^1 }+ [" [
- (setvar "cmdecho" 0)
4 q) n/ ~" w: _7 P) | - (command "setvar" "snapang" ang)7 j+ M$ Z5 {: c- H' {
- (setvar "cmdecho" cmd)
# _4 o( Q( p5 p3 q+ C - )
4 J, Q, \1 F' C! `' D+ N- w - 5 p0 I9 w4 K6 D) N( Z
- (defun C:TG ()9 P: n4 g4 m! Z( H7 E
- (initget "Increase New")
' n. k2 a; B+ d2 j: Q% i- L - (setq ans (getkword "Increase/<New>: "))
2 ^1 e k7 Q# `) `1 O6 l: {2 G, f, U - (modang)) p! J$ v' Y# b7 Q- }3 h" Z
- )
. i6 i- P: h: ~% O" w0 V# q - (defun modang (/ ang ss ca e na ssl)
5 z7 Q' ?2 U2 ]* v - (if (= ans "Increase")
. E) ?5 r, D1 T" S! ~ v+ ` - (princ "\nIncrease angle for text by: ")
4 k/ j S T9 Q! C7 l# b - (princ "\nNew angle for text: ")9 F9 P. g1 a& J8 Z; a9 R
- )
# ~ @& T( O- ?4 F - (setq ang (getreal))7 D! N) o- u p0 d
- (setq ang (* (/ ang 180) pi))
# T; M3 H' k9 q1 d8 J8 y - (setq ss (ssget))+ z7 m2 p$ `0 G: v; C3 U( G
- (setq ca 0 ssl (sslength ss))( w4 [/ r- i% ~' M% {$ T8 ~' O
- (while (< ca ssl)
6 v5 R& i3 K" \* b1 V) w - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
% W) [, _- x/ a. ~ - (progn
6 e, U5 U+ F) {; `# x - (if (= ans "Increase")
3 {! w" J" ]6 J8 i/ m1 f - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
p$ V- g6 M8 z5 j# `# f5 c, s1 s - (setq na (cons 50 ang))& ]5 j' T3 X2 p& ^ g5 Y8 |' N
- )0 l1 h% n' ], R1 [- a6 `; R' t
- (setq e (subst na (assoc 50 e) e))' u: ^% O8 d+ z( s ?. {" U- @
- (entmod e)
9 u; {; c% g- ]1 a: I% z/ p - (setq ca (1+ ca)), v+ `9 U9 V$ E" _, O" P G9 J1 R/ v
- )
6 w; B1 E$ y* |9 a$ o- f- z$ l - )+ c# w t! C% _4 `
- )
9 k7 x8 \5 X# |: w$ r - (terpri)
# a; X) x# z8 k6 g - )% R: w0 ~) B# k
L+ a/ G k, j* x7 {. E7 U- 0 X s7 Z. f! v
- (defun c:WL ()$ _' [6 ?+ D. o! A. \% _, ]9 O
- (setvar "cmdecho" 0)
/ Q, |) }1 E; X, q; s - (setq a 1)9 d5 ^) ?! p c7 j. B
- (prompt "\nSelect Polylines to change: ")
* O# X, i. ]& Z6 W4 F3 e - (while (/= a nil)& j6 A+ s. B& Y# E( }3 M- t0 U1 Q& a, e
- (progn
& k$ ^8 t, p" A( e: T - (setq a (entsel))
- b+ h; _- B3 o9 i: B5 ~ - (if (/= a nil)$ w9 K& ^" [; L6 s
- (progn
4 `) t/ ]7 }8 a4 N - (setq b (entget (car a)))
$ ?$ k* Z8 R; }: X% _" j - (setq c (cdr (assoc 40 b)))
$ a4 f0 A7 u e. U9 d$ {% B1 p - (princ c)
[$ N* ?# p( m9 N: p/ R - (command "pedit"a"w""lw""")( S% W/ j# E9 i! I
- )))) , q" ]$ O1 a9 N. p! J# z+ w* N$ i
- (princ)
# h1 y0 z8 }4 Q' V. P$ Y4 l) o3 p - )8 R7 t. S# l/ {$ w) T- z/ \
- & X3 N! P2 }- I5 @& V l" F7 ?
- ;;; ================================ TEXT FIT ============================- Y) P& h, @# t) l+ y- }: ?3 F+ j
- S2 K& `0 \* K: J- (Defun c:FT ( ); I0 ?# ^, K: r6 o7 A
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
, Y7 I5 q. M. L# g" J9 F - (Defun LL-xyz (arg) (CAR (TextBox arg)) )$ A0 f. J% U4 j2 m0 Q d0 X
- (Defun UR-x (arg) (CAADR (TextBox arg)) )
7 D6 ]3 U6 X/ t; K [- H - (Defun LL-y (arg) (CADAR (TextBox arg)) )9 O3 q+ G R8 S- O3 P- @) B
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )! I0 P2 b* P) n# C
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
1 |- d+ r7 |2 W, P `" ]( ` - Textent (If ename (EntGet ename)) ) ; ~) H2 L( Q6 y# Z
- (If (= (CDR (Assoc 0 textent)) "TEXT")% r, L7 D6 }* c! a" q3 t6 ]
- (Progn (initget 0 "Start")- p$ ?* B/ Q$ S$ ]- v
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )4 g) O1 t4 B% k, @( [8 z" T& `
- (setsnapang Textent) ;set snap along text entity
: a) q5 r! K9 k5 c; `$ Y% `9 J - (setvar "ORTHOMODE" 1) ;drag along the text
' n* a' f# c( m% _; J$ Z - (setq z, R9 a' L( Y- x
- TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
4 o; d2 _) G8 a- m2 t8 U - (setvar "snapang" 0) x. s3 P9 m6 [2 H7 i7 r
- (cond8 b8 b+ j% W$ n5 H1 g2 u- l U
- ((= (type TMP) 'STR) ;;new starting point to be selected5 H) _. q' K: n f
- (setq Start (getpoint "\nPick new starting point: "))' b& }/ ^0 G9 e! r8 d9 [3 u! Y1 K
- (if Start (progn
7 _2 F( l2 g( N/ c# U0 } - (command "_UCS" "_E" (cdr (assoc -1 textent)))) W* G0 ?! A$ Y% b. R
- (setvar "ORTHOMODE" 1)) g$ ~! R7 d8 S/ j# S5 e, B
- (setq NewPt
" Q5 `$ s! f5 m1 L0 X - (if Start. O5 m3 U; @- x- G; y6 r
- (getpoint (trans Start 0 1) " ending point: ") nil ) )
$ x* u c' T4 j& n" G1 e9 l - (if NewPt (setq NewPt (trans NewPt 1 0)))
A, Y; h8 c, o, M- Y7 i8 x3 u1 h - (setvar "ORTHOMODE" 0)$ P: [$ z D0 s0 r' g( ^
- (command "_UCS" "_W") ) ) )
' J0 H! R. l; K - ((not (null TMP)) ;;new ending point selected- D6 Q7 E. W& x8 I6 J/ t
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )) ~2 T# a. Q2 }1 ^" y
- (t (setq Start nil NewPt nil) ) )7 w; k9 e5 F- ?: A# f* P- U# q, c
- (if (and Start NewPt) (progn
. A7 p- W5 L: i; Y( |( ]( f. U - (setq Val (Assoc 41 Textent) ;;current width factor' Z" A/ R) k4 l7 \! z# B
- Val (if Val (cdr Val) 1.0) LTC_%
, E. ?4 A$ o) Y8 I - (* (/ (Distance Start NewPt) NewEnd ) Val )
0 T7 `: K2 l* y - textent (Subst (cons 41 LTC_%)
( m# }/ C% B& N9 M. B - (assoc 41 textent) textent)
7 _' v. C& @, X% Z9 [, ^( X; b2 ?9 @ - textent (subst (cons 10 Start) (assoc 10 textent) textent)
; c/ s1 B" x$ c* x5 F1 T+ W* r - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )5 U# }4 J4 K5 z: j0 [+ B8 I! b
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))1 U! f/ }! T* `* z$ t
- / D) c* ?. f$ T) I& E7 C' {
- ;=====================================================================
* J' h: b9 P* q0 T - ;=========================COPY + ROTATE ==============================
8 ]3 p! ?# a5 N% i3 C - ;=====================================================================
?" |7 ]7 c( e4 |$ u1 C+ J - ! E( m5 v" F) d4 |- j4 V
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
" ?9 g r! g* ?1 _( u9 k - (setq olderr *error*& k/ m5 Q- _2 l: F
- *error* croerr)
4 J& n7 Q5 I9 I0 U7 M7 | - (setq cm (getvar "cmdecho"))
2 B& s4 \# R, M0 v' L/ ~ - (setvar "cmdecho" 0)
) J5 O( h1 V/ H2 v: L9 V - (setq loop t)
( Y+ {" v- @: x - (while (not (setq ss1 (ssget))))1 f: r" j4 S2 K4 Y' ]" ^
- (initget 1 "Multiple")$ y( y7 ~# h' ?9 j; M
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
: [4 a3 I* s4 `9 | - (if (= bp "Multiple")
2 G. n$ Q+ ~& U2 D7 ~: h1 H - (progn( ]$ p! H' x' s, d
- (setq bp (getpoint "\nBase point: "))
6 P- y- Z5 u; g7 j; ^- ^- N+ i - (setq mult t)9 S% h- E ^% d E8 G
- ). T' N0 A3 W4 P1 K" q0 \; @; ]9 E( w
- )8 @. e5 K- G% o: \- B$ S. N7 [0 Q% u
- (while loop- u! s+ j& o+ P! b6 E$ j3 p
- (setq loop mult); o; V$ K# o, S4 u7 D
- (setq lent (lastent))- k( i( _9 M0 {6 j W2 U
- (command ".copy" ss1 "" bp bp)
; l6 z9 Z8 l; v4 x6 o - (setq ss2 (lss lent))
9 z0 g) n' M6 v5 K% s. p* n - (setq lp1 (getvar "lastpoint"))
. \# v* P* P" u; I - (prompt "\nSecond point of displacement: ")4 J4 M" k+ C8 q$ ~3 {8 _' ]) `
- (command ".move" ss2 "" bp pause)
! R! U+ f. c3 _- ^5 E2 h - (setq lp2 (getvar "lastpoint"))
+ w* G5 d- i# E% w: g+ S' ~# X8 k - (redss ss1)
" T) X) v" f4 Z - (if (and (not mult)3 y, @5 w P5 X3 k, N4 w
- (= (distance lp1 lp2) 0)9 d+ d5 B" L# {( m- c+ y( m
- )
& W1 \! P% y8 f) U3 K2 W+ A* f - (setq lp2 (getpoint "\nRotation Point: "))
8 a- c9 Q8 P5 e2 U: [ a* D" c8 C - )% s' V! p- k X5 h% L" P
- (if mult: R3 z! [. ]1 Z/ n$ W
- (prompt "\nRotation angle ")9 q" _" V0 @6 T& z n8 E% ? B
- (prompt "\nReference/<Rotation angle>: ")
5 u n, Q# v3 o0 g. H! ]$ B9 r& a - )
P. J; {8 C, ?% w3 j3 l5 d- O - (command ".rotate" ss2 "" lp2 pause): d" f! O1 J- V }8 x
- )
t3 M" X! x/ L& p - (setvar "CMDECHO" cm)" o4 F4 L: v% y- h, q
- (setq *error* olderr)- r: C# t! J0 C1 D
- (princ)
$ A( V- |, h' ^ - )
2 S3 Y ~: d3 I% `) M9 J. W - (princ)
0 I5 c# s- @) s: B j - (defun croerr (s) ; ?; J) w W: M7 a
- (if (/= s "Function cancelled")
1 P( \( t& u) b7 o- W: r - (princ (strcat "\nError: " s)). E6 _* I* w& V5 v u& Y4 q) B
- ) # k7 ?/ x# p4 R8 ]0 C. v; G9 U
- (setq S nil)6 d9 S' R% } ~# I4 R
- (setvar "CMDECHO" cm)
2 g" U1 t: h1 F2 Z; _6 y( M - (setq *error* olderr)0 C4 |- Z3 ^. C. l0 G) r6 D/ ]
- (princ)/ H/ p G+ a$ t( [" o
- )5 y& e8 X# n* }7 W* M; E6 E9 u
- (defun lastent (/ a b)
( O" J& y$ N# T) S/ u# i* Y9 _ - (if (setq a (entlast))
/ L* d+ Y$ x- t' I; n - (while (setq b (entnext a))& @4 b& n- Y, W p& R% X: Q! n2 {" P
- (setq a b)9 t* O, |: o0 P& i2 a
- )2 M5 W6 V% }+ \5 B$ V; I& i6 q; E+ O0 V
- )
6 O7 p- f& [8 B$ A0 F3 S* J0 ^( I - a$ |( t- b& F& P) B) {$ o) @8 u
- )
5 F6 \. s! A7 a; a/ N6 X) I6 c - (defun redss (ss / en i)
5 t+ ]/ s- z% Z, Q& [ - (setq i 0)
E0 @) N/ D. m. G$ H2 k7 B - (while (setq en (ssname ss i))
/ I. V0 M$ Z/ T# L: { n7 a# F - (redraw en 1)/ }. K/ O! o1 \+ n+ C4 D: ]" v& y
- (setq i (1+ i))
) w4 |2 I* B* \* l. y6 S6 X2 E - )
3 d! R; K# b2 e - )* b2 `) |8 M+ v& E
- (defun lss (en / sels ed)+ o( Y( r. q; d" p9 x" L$ e6 W7 i
- (setq sels (ssadd))
8 N7 T8 _9 p* O' X# N, D+ @ - (while (/= en nil)4 v" q/ e6 g6 n
- (if (setq en (entnext en)) (setq ed (entget en)))
7 f% g( {; p" E- L - (if (/= en nil) (setq sels (ssadd en sels)))7 u% r# w6 P; Q" m) g8 x" w
- (if (or (= (cdr (assoc 0 ed)) "Polyline") h" h4 q& @' O" ^
- (= (cdr (assoc 0 ed)) "Insert"), C: c: `7 a' h \
- )1 M/ I8 o9 N4 U
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
. o' D& s% Z* _3 |; x - )" z( k M; v2 M8 Z" T3 O7 G: F8 L
- )) ]* |& k: z8 F
- sels
2 I$ p' }1 |8 [ - )1 w+ D# ~2 |! u( t: Y2 _. {8 {3 u# B
: O( p" \4 D w9 j: |- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================6 W' N! c0 g: U! O7 ~ P
- ! N6 V3 U; `, I9 \ V2 @9 I
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))" p {' g; z' ]$ O {( k" F
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
2 x- z: f2 B( _' p - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))4 o7 O1 \- h4 j/ u
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" "")). K+ ?9 G& d6 u5 B) a2 R9 }
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))7 ]' ~3 B' c" j# C9 u, r6 O9 I
- (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
* Y& v! h/ K9 b3 s9 H) c% H - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
/ r- A8 u" t+ Q ^/ g# i5 M - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
8 @9 G& l* k. w ~9 N: T - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))2 Y: C% a) k8 C& v8 H/ \
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
0 S; c* X0 G4 n5 D - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
4 `2 @; ]% g6 o% y8 _3 U; q - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
' i$ i5 o2 F* [/ R) U; I- `1 k' X1 ? - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
, ?4 `/ j% e( o) X$ g - (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))/ J" X/ e2 C1 d8 ?
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
# f2 t& J4 F+ d* l9 C0 o - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))( r( c* G- D$ c0 A# P* w, _
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))9 \% T7 G* r3 ?+ I
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
' R- K! i$ V- Y9 V! A3 Q [ - (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
# r3 p F# ~' J i0 M+ w! ~0 n! s - `9 L( V5 K/ x2 b' ]- O
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
- O% P( i. j- ~( b& p5 G6 I - & T3 l$ d- @5 |+ t9 s
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
3 W+ V' U3 w4 ^ D) F7 I5 i
R/ E' O9 w U# L B" P V- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
Q3 i! d0 {7 y/ R - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")* E0 u5 _/ ]4 _$ ^0 e4 d1 `
" Z. ^2 F1 k& W- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===! U: D3 p5 O U& H) ?
# k' J" r$ ~! q( x. y* T9 q- ;(DEFUN C:netxuatanh (); O0 z9 z) u6 @9 }: t* Z
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""; s, M" T6 m9 ~7 B. u' @4 P! h
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
" K: j. a4 ^$ h( i - "M" "MANH" "C" "9" "" "Lw" "0.5" ""8 P0 @" Y$ E& l
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""7 t9 i5 r4 E0 \, v7 F
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""
) |- _7 x* O5 g0 x2 C - "M" "THAY" "C" "7" "" "Lw" "0.7" ""
, C/ L, F o& g! w& H - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""* t* R' Z6 {6 G( _2 h9 `4 V
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
+ I( T0 ?! t' t2 O" G4 q# R( }9 _$ | - "M" "COT" "C" "2" "" "Lw" "2" ""
$ Y; [# Z7 t8 m* w: s/ T) ]$ D9 e - "M" "Defpoints" "C" "7" ""/ O1 X0 g* m% M2 W
- "M" "0" "C" "3" "" "Lw" "0.5" ""
/ h% r( H* f: q W - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
) k; o8 M; j7 a, v6 _6 G - ; "M" "2" "C" "31" "" "Lw" "0.5" ""9 Q+ v3 X6 z& w
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""
5 `! r7 {; U/ `! J - ; "M" "4" "C" "4" "" "Lw" "0.8" ""1 f5 T1 a2 }) _/ q
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""3 C" \/ \/ N+ b7 W2 Z
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""
1 t H; z% ~) t3 K% w - ; "M" "8" "C" "8" "" "Lw" "0.35" ""% r1 ]" M, ?! m8 g5 e
- "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""& h1 r" A( J# x! b+ K! M
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""9 }( ~' l! K4 d
- "M" "KE" "C" "8" "" "Lw" "0.3" ""
% C3 m6 g; r; b. X3 S M - "M" "KT" "C" "9" "" "Lw" "0.35" ""
* B2 r+ N" n! s+ K0 `2 f$ R6 e - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
+ C# ?% B/ ~2 [4 Q2 C( |9 H - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
& B! H! n9 D2 f) v9 L - "M" "TBD" "C" "2" "" "Lw" "0.8" ""- L! f2 k4 y; Z0 e: T8 t
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""; s4 x" a6 F$ o$ Z4 H; R2 D
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
' T+ ~% i: p2 ]4 C+ j' A' x% w - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""( K* V* N7 P* c# a
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""& N5 q7 p9 R! o" j; x# r: T
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""- Y6 z5 ]- m1 B3 E# B
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
5 R; ^) A: }! G/ z: y% l
; r7 j( G6 L1 ~" \! U, {- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===' ^3 E4 `: Z. I( k9 r
- ' X! W$ J+ t G1 R& j O# B! B
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
1 Y( w F' _9 g8 a - "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
6 A/ V8 S B a - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""' Q6 v6 C! \' I0 z4 t
- ; "M" "250" "C" "250" "" "Lw" "0.35" """ S! s' Z. `9 a7 f$ I- R# B' w
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
# k4 l4 ? k- ?& B' G9 B% L - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )% v$ `+ g& w; E, a
6 B3 {* W! l* |8 D" M- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======8 _2 i _. J# I5 A2 [$ o ?
- ;===================================30|04|2024==============================+ P/ P. W) W% r4 x
6 B8 k) j( y0 b! Z+ ~7 S4 [- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
0 t5 \8 b- q* y( Z. f/ ?$ h - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" ): i& |6 D( [, c. A* w$ c) ?1 \' ]3 r! B
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )
: F9 c6 e8 B5 S3 Y. a - (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
9 i& j4 O( d6 f; t; q6 j - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
5 h# u3 ]+ F# N$ W! s: i# S - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
9 J4 R. u8 @; [ - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
1 _1 e8 E. O: N0 K$ | - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )4 K- E8 B. U z" W
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
0 ?" s$ h7 q0 s. f - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
* u# @/ O p6 @7 z" K0 Y3 I5 q - % c; N& k& z T% r+ z- n
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=; k* g7 Y) \+ J5 Z: A8 l5 t
- ;===================================17|10|2024===================================
- J/ e5 v Z- P$ R - I. O. k* q* ]) l6 B& v
- (Command "DIMTXSTY" "ROMANT-DIM" )2 h) X, t; M* i
- (Command "DIMBLK" "" "Closed" ); k! E4 D: e. V) R) c# S3 G+ R8 c
5 L4 a5 \6 K9 T6 h- f. o' q$ m- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=+ y9 V, }$ H$ c: Z1 _# t* j( H2 O# p
- ;===================================17|10|2024===================================& s$ }' {4 v& s( Z0 C' w) l
+ N& \! W/ `" u) ~$ B6 ^/ b# B- ;(Command "-units" "2" "8" "1" "8" "" "N")) ] p: K' C; ~7 {8 u
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)
! g" j+ ?& u3 N2 }" {( T - / S) W7 Y* |/ ^4 @. D, F
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
7 D* S9 P2 w N& \2 B - ;===================================17|10|2024===================================. ]. Q: C5 q0 }- [ ^
/ t4 G+ v1 ~3 O2 G7 w7 k: U s- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
3 Z+ e: g% e1 v; ?$ \2 E4 g$ C - 3 N% E4 l7 m l
- ;======================== DAT NET IN & TI LE BAN VE =============================
' e. m" y4 `! M9 r, H: t - ; X& x, P7 S8 i# O) u5 ]5 d
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================! |4 |1 G0 l6 ?' E1 B
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
4 g& O* e- G' D+ h - ;=============================11|07|2025==============================% _5 f% F, n1 d2 Y3 \
- ;Ti Le Ban Ve - 1 : 100
" ~0 v, j( G L0 h' g* n4 ~: M w - (Defun c:kta4 ()% J Q- s: M# G# K6 O
- (setq mv_sc 100);Ti le ban ve
. `0 l; x, o6 z0 N+ R5 D - (setq x4 297); q3 \: u- X- b: Q: Y
- (setq y4 210)1 T! N/ R0 ]6 |# t r
- (setq x4 (* mv_sc x4) 4 y/ B: b/ c% s" _
- y4 (* mv_sc y4) )
. J& K* w/ v- }" E4 ] B q - (command + U0 C3 N( @3 z5 i
- "LIMITS" "0,0" (list x4 y4)
6 \) P4 |3 C/ f1 Y s - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
4 B& W2 y. [) {1 A: r - ;Khung CHU NHAT Chinh ' G2 T6 n0 v' w/ J2 e' i( J
- "RECTANG" "500,500" "@28700,20000"$ i+ w6 l9 E- f4 |; l8 @1 s
- "RECTANG" "700,700" "@28300,19600"
0 o1 b8 f4 N" ? - ;Khung Ten Chung
6 x8 M' O; N! y; j5 s - "RECTANG" "700,700" "@8000,1250"8 ~3 ~7 _3 k. D3 d6 E
- "RECTANG" "700,700" "@17300,2500"! Z3 ?5 D( n2 w* B4 E
- ;Ten Ban Ve5 ^5 Y- k0 r& b" ~; v
- "RECTANG" "18000,700" "@11000,1250"! n9 D' L) e' C. G) s. M; h5 h
- "RECTANG" "18000,700" "@11000,2500"5 u2 k& r+ C7 n' W1 q
- ;Khung Ti Le + Ngay Thang Nam* z) S) H9 F' ^7 X: v+ C% C
- "RECTANG" "22500,700" "@2000,2500"
! y# C3 [# W) l% Q - ;Khung CHU TRI- D: e4 p. [2 C9 n% p9 e
- "RECTANG" "8700,700" "@3800,2500"3 o' ^/ y/ f! C! L! b$ ~" }) O
- "ZOOM" "_a" ))
9 j7 x+ a( K/ N5 j& r1 ]& O- h% l - ;=====================================================================
: S: |* l+ ~) d9 ^- A3 L - ;Ti Le Ban Ve - 1 : 1005 b* }- Y! S; B( Q5 H) y
- (Defun c:kt4a ()( G: t% c1 a, b; x9 n/ O
- (setq mv_sc 100);Ti le ban ve( m- m3 @' I0 y, C, b
- (setq x4 297)" c' |7 @9 c1 J9 q& x8 U
- (setq y4 210)
1 l4 ~$ |. P8 o: S - (setq x4 (* mv_sc x4) & H% h& |1 \, k1 V( W, J
- y4 (* mv_sc y4) )
+ h' g5 F: P3 p% Z* W- _! _4 N$ T2 T' B - (command 3 w- g1 q& M$ w2 Y. }6 e; {
- "LIMITS" "0,0" (list x4 y4)9 o8 k Z2 K8 L: _( [ K' w+ H
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"; Y4 q" F. d3 I, {
- ;Khung CHU NHAT Chinh - K/ k$ g( v4 z2 i4 t$ w t2 |% ~
- "RECTANG" "2000,500" "@27200,20000"# y# v( [5 K% g! c$ x5 s7 }
- "RECTANG" "2200,700" "@26800,19600"
/ u. m7 J1 O8 _5 G. h - ;Khung Ten Chung8 u) B5 R3 Z i. B
- "RECTANG" "2200,700" "@6500,1250"
1 w: y2 I* E' _) r0 G - "RECTANG" "2200,700" "@15800,2500"+ U. x: b1 O' C6 Q# x! ~1 H
- ;Ten Ban Ve
( h- P* A- o5 m% Q - "RECTANG" "18000,700" "@11000,1250"4 S( ^( l& m S3 A/ Q
- "RECTANG" "18000,700" "@11000,2500"# O1 ~( ?9 Y* I; x, a
- ;Khung Ti Le + Ngay Thang Nam; [3 P: T( Y4 v2 G
- "RECTANG" "22500,700" "@2000,2500"
$ z" D4 t$ c1 m2 s& w - ;Khung CHU TRI/ K# I" K3 J" ~" q! L8 g
- "RECTANG" "8700,700" "@3800,2500"
; ^7 H( r6 z" G - "ZOOM" "_a" )): X/ ^1 u8 T( F% R p$ u6 }
2 |9 P9 `. `& X6 ]# P+ ?: Y- ;;; ============================GHI CHU Khung Ten========================
6 E4 Y" C$ M7 P$ o5 ]& D - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========0 z& U, q B5 P! L$ ]5 }1 {4 L
- ;;; =======================Thuong Dung Font Romant.vnh===================
+ j |9 q- K) B( _4 _% ~ - " z1 o' H! X T: B7 k9 A
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
( H) P) s" C- T: v - (setq oer *error* *error* err2)7 B! N7 c7 _0 P$ w9 e( C& ]
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")" q. A7 B2 P- x2 u* z
- (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
! q% k9 x9 {8 H - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))9 q7 f$ f. E( [/ H* u7 G( {
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))$ i- B P: I3 l# B; t
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))# c' s1 I; i# F# I' K8 k* @# y3 \; x0 Z0 g
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))$ m1 o4 k0 v& E: R3 y2 }
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))# R! G* D: f8 I; U- x M
- (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
) Q4 E3 E6 H8 I* k2 }) k - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
9 X9 r+ J5 w- d9 W" u# U2 F - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
. z( h5 f# V( V1 }+ n9 @- e - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :")): F k& n% e. J* a
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
# w9 o+ o, ~, C5 a. t) D - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))' t( C+ f. U, w1 @+ M, h) p
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
h2 M6 x7 q& Y k% O9 A - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))# o* _& f" A+ X: F/ C' U
- (setq pta (getpoint2 Q* C& V5 b7 u% h6 L
- "\nPick first corner. : "))
) B% _# l: S' u3 Z% ~. Y. b - (setq ptb (getcorner pta4 F+ m3 r! K" i2 d- f) k
- "\nPick second corner. : "))$ G( ?% E. L* D# m6 Y3 v! N# V
- (setq ptc (list (car ptb)(cadr pta)))1 A0 t9 }0 @% l! i
- (setq ptd (list (car pta)(cadr ptb)))
/ S; M5 e0 j, h# F; Z4 F - (setq ang (angle pta ptb)), M* m. H4 B$ R* Z
- (setq d1 (/(distance pta ptb) 2))
: U! }% e1 k8 E1 L6 E0 ^" A - (setq cp (polar pta (- ang (dtr 0)) d1))
- ?( M9 r0 }0 _ - (setq X (distance pta ptc))4 ]8 `$ w6 f4 w+ J
- (setq Y (distance pta ptd))
& N9 A5 N! O' ^' f - (setq X1 (rtos x 2 1))
4 n. ]4 l: \; L4 n- y5 n. g" Q( a - (setq Y1 (rtos y 2 1))
5 V% m8 a! Y8 H# ?% ^2 @9 z8 V6 e - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
# ^2 B# C4 J5 T2 N' G - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
7 Y' G& \9 A# N3 r& p - (defun dtr (angg)
9 m! K5 q |/ u - (* pi (/ angg 180.0)))
3 }1 V0 G7 p6 e# V5 a2 q4 D& k - ' ?% T" M: U, X3 ^0 e8 F% C( u
- ;=====================================================================
2 F' F, R* d% k: L1 ~ - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================$ T. d' S% K6 n- t) o# n C
- ;=====================================================================
( N9 f3 l# Z4 ^" }$ n L
( z% N- D6 h1 Z- (Defun c:a6 ()
4 z, X/ I1 I3 z( w( I - (setq mv_sc 100);Ti le ban ve
0 {) w7 ?( ?3 O+ E2 ~ W - (setq x4 74.25)# X: ?: B' ]/ o
- (setq y4 52.5)4 R8 u/ G# A3 w! K3 v
- (setq x4 (* mv_sc x4)
' R0 `4 F9 r! k' H - y4 (* mv_sc y4) )" x/ q) f7 p; `# U! `* R- ~/ v
- (command
, h$ K- v; c j' T/ E - "LIMITS" "0,0" (list x4 y4)
$ W5 c; V) F; r }0 y' g - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
/ U) s. L1 z5 H j, E - "RECTANG" "125,125" "@7175,5000"
# X" |7 B# f! [# v( ]/ y - "RECTANG" "175,175" "@7075,4900"4 r, r6 a: l- e0 v6 T
- "ZOOM" "_a" ))
; w4 J6 P4 P" |) e- i! ]# `3 o - ;=====================================================================
" a2 ~" Y$ [" L/ ?0 z) O - (Defun c:a5 ()9 q, }$ w8 D4 O; c- E/ u+ T7 Z! B$ o
- (setq mv_sc 100);Ti le ban ve/ O2 Q$ J% f8 n
- (setq x4 147.5)1 A( p2 ?- b- j$ a, [* I( z
- (setq y4 104)
- a- |' {; t+ Y1 M6 u. Z - (setq x4 (* mv_sc x4) 1 S" Q- P5 ^# x5 F6 e
- y4 (* mv_sc y4) )+ W f3 c9 E9 F. ^3 @2 ~6 d6 M; g2 G
- (command
8 S4 L. K( f- F" c - "LIMITS" "0,0" (list x4 y4)
( a+ B A! Q- {% ~! u' U) M* q - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
8 Z; q5 N; z$ S7 M$ L" h; c - "RECTANG" "250,250" "@14350,10000"
; m9 E0 \# {. `; A - "RECTANG" "350,350" "@14150,9800"
0 H: n& i4 v% S; a/ o - "ZOOM" "_a" ))8 P8 ^ v' K2 J" y3 h
- ;=====================================================================3 z+ D: u3 w) x! K4 t
- (Defun c:a4 ()
, {8 Z. B; z" E' b - (setq mv_sc 100);Ti le ban ve
! o5 l: `; X! P z4 q- q - (setq x4 297)
. X9 ?0 S V9 | - (setq y4 210)
0 h6 T- B% q& a - (setq x4 (* mv_sc x4) " m2 t7 P& K* F- O+ ?$ h4 s. }
- y4 (* mv_sc y4) )
3 D* i$ B" _- h0 i0 `7 h - (command % W( A- ?7 D- j
- "LIMITS" "0,0" (list x4 y4)7 p* r w6 y0 s
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"+ T6 N& m6 R' s4 k
- "RECTANG" "500,500" "@28700,20000"
U! f( L0 P9 B9 C - "RECTANG" "700,700" "@28300,19600"/ F6 W7 E5 V+ f$ A/ I u8 [
- "ZOOM" "_a" ))
& T5 M! F* B# c - ;=====================================================================7 k6 m8 H5 u2 v+ k
- (Defun c:a3 ()
H3 i! ]4 B! ]4 S8 @3 M8 } - (setq mv_sc 100)3 [( [( A* { d1 A. w+ G$ F
- (setq x3 420)
! z" O$ W' l$ P4 n- D* w+ v! | - (setq y3 297)/ d. E, a2 V; K4 [+ F( b+ _! W
- (setq x3 (* mv_sc x3) " u1 j' ~* h! b, C8 B( O
- y3 (* mv_sc y3) )( @$ w$ o; O. \! S' n( r
- (command + a% I* K9 l. i8 J& h
- "LIMITS" "0,0" (list x3 y3)7 j! v+ ^& q/ v; a( j( i' D# v1 }
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
) V9 G8 S! g2 v- _; v- ?/ V - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"# g- o: ~( v& G/ n
- "RECTANG" "990,990" "@40024.28571429,27720"
i3 x$ r/ C- S# [6 W. s4 O/ | - "ZOOM" "_a" ))! Q2 O v% u+ j% i9 Y' M. {
- ;=====================================================================
. }$ q& L9 _% b4 Y# X - (Defun c:a2 ()0 j4 ?8 r8 _4 D; v
- (setq mv_sc 100)
9 o6 N$ Y7 v7 E - (setq x2 594)' b- ?* D2 j( ?$ J4 k7 o
- (setq y2 420)1 _& T! Q$ r @: k
- (setq x2 (* mv_sc x2) - C& A, R! |& q
- y2 (* mv_sc y2) )
# e! u# R+ e* {4 ]3 m3 [ - (command
6 P+ k7 W) R! {8 O - "LIMITS" "0,0" (list x2 y2)
5 R7 T! n" l. {, j- J( o. t: _ - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C". h2 m+ @+ p. I7 j* F1 A8 \
- "RECTANG" "1000,1000" "@57400,40000"! o8 s, r p! B, j
- "RECTANG" "1400,1400" "@56600,39200"
# `. O/ t8 S: ^5 w) i8 c, _6 N, V - "ZOOM" "_a" ))/ ^% A% q6 f- F, u
- ;=====================================================================
8 P* C. V1 Y1 G4 e. r4 f" u8 G - (Defun c:a1 ()
7 Q$ m9 C: ?" g - (setq mv_sc 100)' f) Z7 w" H8 U' {9 M3 m
- (setq x1 840)
* V" B+ q5 l- `2 m3 h - (setq y1 594)5 T4 O1 m v/ J5 y. C% l" s
- (setq x1 (* mv_sc x1)
# |9 F. [, P6 A3 d9 @ - y1 (* mv_sc y1) )! ?4 Y6 g' v9 e4 x9 z! J
- (command 9 _- \; x2 x6 _% n
- "LIMITS" "0,0" (list x1 y1)5 x' a1 b4 ~: X# B7 u( r) U
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
! E+ z; P0 T. n2 B( A9 ~2 l% Y. s - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
; t8 t* ^1 l0 T' L/ i8 s - "RECTANG" "1980,1980" "@80048.57142857,55440"3 e" C+ l7 U# v: z1 x# N0 }: \9 m
- "ZOOM" "_a" ))
+ b) v) I& P3 P3 q$ U - ;=====================================================================5 Y5 E- i+ ^2 Q& y3 X4 F- z" W
- (Defun c:a0 ()
! ~2 q- a( t; T% a/ k - (setq mv_sc 100)
. {( A' @* f- }+ t" m5 B - (setq x0 1188)
/ h. G# {6 _( m3 |+ j - (setq y0 840)
* S3 @1 D* p! [; R$ P3 K! j! ] - (setq x0 (* mv_sc x0)
" E2 A9 T# U9 d. r - y0 (* mv_sc y0) )5 L7 A% m; d2 Z$ B6 q( o- w7 R1 B
- (command
+ H" f7 ^; B5 z - "LIMITS" "0,0" (list x0 y0)
8 l5 _. Z9 M1 S5 Y- u - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
+ x9 z, A' {# s) M' r+ [ - "RECTANG" "2000,2000" "@114800,80000"( Y9 o, `, o- a4 E( r
- "RECTANG" "2800,2800" "@113200,78400"
2 T. Z4 k, g& C) ^% ` - "ZOOM" "_a" ))
0 p7 ]7 S J( l% F. C, d/ S6 N - " E/ e7 B* n/ G3 ~0 n8 f
- ;=====================================================================
3 k$ a: g% y6 h" d0 | - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
6 p$ k. |" {6 M, }2 [3 L - ;=====================================================================
+ V2 t0 L7 h, [; U& D2 x' U - 5 m7 W ]1 P. a6 H
- (Defun c:6a ()$ \ l0 v! G; E% p: H5 q+ @
- (setq mv_sc 100);Ti le ban ve
2 T( F' K2 \% P6 H7 b - (setq x4 74.25). q1 A- h6 S4 n6 s$ J Q5 T. W* B
- (setq y4 52.5)3 K5 r7 v5 z7 C9 y
- (setq x4 (* mv_sc x4) 0 D, n2 [9 I5 z% c, t
- y4 (* mv_sc y4) )
2 S+ o/ v- L1 A! {4 @ j7 n. x3 Q - (command ; \: M6 |1 u) a3 {
- "LIMITS" "0,0" (list x4 y4)
9 H& T6 V; E; f3 K/ s3 n, ^ - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
& J6 A* F4 z5 u. V& e" A0 J$ @ - "RECTANG" "505,125" "@6800,5000"
$ P( y% q, d- H5 ] - "RECTANG" "555,175" "@6700,4900"
Z+ J" b4 C( m. F - "ZOOM" "_a" ))
H) x: D) ?; u9 l! o2 s: e - ;=====================================================================
, E, A8 C3 Y: ]" @1 B3 @% z - (Defun c:5a ()
5 D. a+ H' e- A) V+ n - (setq mv_sc 100);Ti le ban ve
. ~0 D i* O Q1 Q/ Y; B9 i) T( t - (setq x4 148.5)
! Y! V0 @7 z' ?; G# W - (setq y4 105)
* n+ L% I! M$ a - (setq x4 (* mv_sc x4) % H- L, ~8 Z( d' r0 [3 t: x+ X0 w
- y4 (* mv_sc y4) )
" r! O4 `& k3 H2 b& ^5 U6 s/ x8 h - (command
9 @+ u& Z2 P2 C3 U, Q) u - "LIMITS" "0,0" (list x4 y4)
G1 N! p! d: n! g. i7 [ - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"( K4 K# }: @7 M* y
- "RECTANG" "1000,250" "@13600,10000". }0 n% Z7 F) Z' @5 `! p
- "RECTANG" "1100,350" "@13400,9800"7 j* h% \* W0 ]' `5 r3 ^
- "ZOOM" "_a" ))% s; H$ B6 ]- u7 h% Z: l, m
- ;=====================================================================
% p* v2 w9 N7 c/ V - (Defun c:4a ()
4 y2 Q3 U/ f4 k - (setq mv_sc 100);Ti le ban ve7 r- U# |# w) P" w
- (setq x4 297)
: T1 N/ Z* m0 U - (setq y4 210)
; R* W5 t8 l) x9 {% S - (setq x4 (* mv_sc x4) " M+ l7 O/ J( u3 Q
- y4 (* mv_sc y4) )
( p) E1 e0 ]0 D) Z5 G - (command 7 e( {6 l: I, W' J* ?! R/ I
- "LIMITS" "0,0" (list x4 y4)
- u9 }" L& s: Y5 L2 B; i2 _7 _8 x - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
$ _! k- U0 g" x, T- c1 U l - "RECTANG" "2000,500" "@27200,20000"2 U5 h. G: B% r# q
- "RECTANG" "2200,700" "@26800,19600"& v' C0 t3 T! c4 I+ T8 I$ g
- "ZOOM" "_a" ))
4 y- q/ H. P( k( v1 s+ X: I - ;=====================================================================
( c/ D8 S2 h# G, K, O% X. v2 t - (Defun c:3a ()' b0 n' [; F& x
- (setq mv_sc 100)( [' k+ ^1 L3 w: r8 f5 {- j) a0 L
- (setq x3 420.0428571429)
, {, n. b1 r4 U# q - (setq y3 297)5 G, D' m" C8 t7 w2 m% O5 J* ~0 E
- (setq x3 (* mv_sc x3)
* h) f z: Z. D. C1 w# M& I: q - y3 (* mv_sc y3) )
- P( P4 i( j+ }% M - (command
7 l( L1 M0 k8 @ - "LIMITS" "0,0" (list x3 y3)
6 z! Z- w! Z! k& j - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C". ?' c; Z! }6 F
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571" Q3 D/ A2 E0 Q4 L8 [
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
5 I) |* Q( Q; x2 h( Y% r5 S - "ZOOM" "_a" ))1 q: U9 P6 @% t7 F
- ;=====================================================================0 c. L& C5 J- L8 P$ r' G
- (Defun c:2a ()
6 K. e& C% \$ @3 g c; ] - (setq mv_sc 100)$ T8 X. R0 t/ X' ^0 ]3 v
- (setq x2 594)' g8 e. G1 g6 g! F" q7 n
- (setq y2 420), Q7 p% j. o+ V( H
- (setq x2 (* mv_sc x2)
' ~, t; y: n9 x; h' Q6 k' } - y2 (* mv_sc y2) )
8 G4 d8 f. I6 o - (command
; I' f+ V! S" ? - "LIMITS" "0,0" (list x2 y2)/ [- S! X5 [# T+ D0 E0 U+ Y3 i" ?3 I
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
( a- e1 P+ f% `. Q1 U - "RECTANG" "4000,1000" "@54400,40000"
8 ~, Q. ~- a6 B" F: R - "RECTANG" "4400,1400" "@53600,39200"
E/ I+ q5 J0 @# }! h. ~/ l - "ZOOM" "_a" ))
$ m2 E0 T7 ]* h: X: j) B - ;=====================================================================
4 P6 A- G4 p1 c! A. W% g+ p& K - (Defun c:1a ()% v3 f1 O+ b% i8 @7 Z1 G) f0 y
- (setq mv_sc 100)9 S2 M' G/ Z6 k% J- x: _: p! w
- (setq x1 840.0857142857), w, h- Q, L* [7 o
- (setq y1 594) U0 @$ e$ Y2 T" `: a
- (setq x1 (* mv_sc x1) ; ^0 _' v1 [) p1 T! R- R2 B1 F
- y1 (* mv_sc y1) )
; ^+ ^8 I3 n( t5 a - (command " O( R; D+ i' {1 c
- "LIMITS" "0,0" (list x1 y1)2 \+ ^& B* I: N& r1 ^ P. x; ]
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"2 V9 |# A, r1 M+ l8 g" I( ]+ e: _& {
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"6 g1 v4 O+ p1 P8 v+ V# _# A% n
- "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"
5 h6 Y! v6 X5 ?/ R; h8 h: q ~5 W2 Z - "ZOOM" "_a" ))% ]4 f2 q% |; \( \; b
- ;=====================================================================; \3 X5 l+ c) n
- (Defun c:0a ()
1 N4 U3 B2 F6 e/ |/ P - (setq mv_sc 100)2 D4 T1 n, l& O3 p: s
- (setq x0 1188)! j; f% P1 X/ u9 G
- (setq y0 840)# u) u/ Z3 O* R8 S
- (setq x0 (* mv_sc x0)
. A1 b; @1 O+ [& L, Q* \1 m; d - y0 (* mv_sc y0) )6 E k/ S% E4 z
- (command
, ], K- L. w9 w2 B% o5 e- K - "LIMITS" "0,0" (list x0 y0)
, b3 q" j) {2 c( l: \ N0 \" y3 i - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
1 S! @! @( E5 I+ [4 { - "RECTANG" "8000,2000" "@108800,80000"' P) x" p( S) j
- "RECTANG" "8800,2800" "@107200,78400"
$ p- S, }& ^4 t& Q. @/ A$ N y - "ZOOM" "_a" ))
) m" P0 p( Z/ z5 T. M
/ S9 {0 s* r+ }, a+ s p- ;=====================================================================
( u8 l% j* i* t- V - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================$ K V5 N6 r; f9 j6 I8 M3 b( `
- ;=====================================================================+ Y- l; r/ G6 n8 ?2 x
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)$ Z4 x3 y h- Y3 [6 g3 v
- (command "undo" "be")
( ~) e, g% @. A7 T; F, J( Y - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
3 j& r2 n$ w; f; y: ~9 U2 k) O- b - (setvar "CMDECHO" 0)7 U! u5 u, S2 h7 g( z5 ~+ o9 o
- (setq a (getpoint "\n chon diem chen :"))
& V7 e9 y5 A/ X. ` - (if (not TL) (setq TL 1.00))
+ l$ q- d1 d9 R4 [ - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))- q' \4 A3 ]7 q& w+ g( @% H
- (if TL1 (setq TL TL1))
6 X3 @# g; ~+ O! i - (setvar "osmode" 0)
7 G& o7 p: G4 {) i2 y9 m - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
# q) {3 r$ c+ ~ - (initget "0 1 2 3 4")
! H. q' q2 H: p5 w3 S - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
2 j; n- A+ H( ]# n5 I* `: d. Q - (if (= kho "0"); l; R! c+ x9 e* S0 N+ \( w/ g
- (progn# [8 G6 z: T- g$ _ S6 ]
- (setq b (polar a 0 (* TL 1189)))
6 m0 I/ M* I# S( n" F! d1 d* G# E9 V - (setq c (polar b (/ pi 2) (* TL 841)))
* e( L1 v% H6 G" s - (setq d (polar a (/ pi 2) (* TL 841)))
/ C8 d/ F5 y7 y9 U8 y - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))" ]% [4 ~- `, g$ e3 @/ N9 Z8 E& ]
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))8 H/ X/ R" ?( V8 c" S+ n
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))' q7 k+ X9 `; i
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
8 p! q' `2 p& @# C, P - (command "Pline" e f g h "c") , O" i# e% D" u: ?( R
- (command "change" "last" "" "properties" "layer" "0" "")
: j, y5 T5 }( [$ K5 l1 K - (setvar "cecolor" "4"); ^' r0 {1 g2 p# P
- (command "Pline" a b c d "c"), {& {6 |$ I% _; {: B
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) 6 |+ R( f4 a& S, S" B. W; S
- (if (= kho "1")
2 X) A. I0 Y5 Z' K - (progn5 ?5 w6 P/ r. T. ~% J' {" {
- (setq b (polar a 0 (* TL 841)))
9 p/ }+ m9 H, L+ O$ A4 k - (setq c (polar b (/ pi 2) (* TL 594)))
0 L- w2 r* i- f% z+ m3 ^* X - (setq d (polar a (/ pi 2) (* TL 594)))
! G3 Q6 a( d/ u2 j+ d3 i - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
# h1 n7 H" s) M. d6 _8 V5 i - (setq f (polar e 0 (- (* TL 841) (* TL 24))))& t; o7 W! m3 U2 `+ F6 m; o' M
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
$ G% H! n7 ]. o0 l y) s. \ - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
% \& k O! Q- L% ~1 [7 ~- C5 N% I - (command "Pline" e f g h "c")
& B& ~( n1 J8 p) R% Z) Y# b - (command "change" "last" "" "properties" "layer" "0" "")$ y1 X) D+ x2 I) @8 {- x3 k
- (setvar "cecolor" "4")8 D3 @6 I2 e: x; X4 L3 F
- (command "Pline" a b c d "c"). s2 R0 q8 |; Y6 [; j! K L; X W
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
, G& _ m* k4 c6 b- k - (if (= kho "2")
8 i7 g4 L, y+ E) K" D( x - (progn
+ G; `* v7 [, K! y - (setq b (polar a 0 (* TL 594)))
6 J$ H1 R3 J$ `2 [ - (setq c (polar b (/ pi 2) (* TL 420))), E# P: w' `" I: @# v
- (setq d (polar a (/ pi 2) (* TL 420)))2 X" F) M- w% ~4 w3 |& G: h
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))! r" ~ Y, T2 T) Z7 z$ z' N! Q0 |
- (setq f (polar e 0 (- (* TL 594) (* TL 20)))): O- `' g4 S o N& L2 ]* C$ s
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))8 X, w; k; C g4 v7 F% K& Y& [: v
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
2 b- F5 t2 k4 D9 z# k$ x - (command "Pline" e f g h "c") 0 g% P, S7 ?8 M& t6 V( w4 p
- (command "change" "last" "" "properties" "layer" "0" "")
, o) P7 m& a3 b; r' f - (setvar "cecolor" "4")
9 @% G9 j6 `2 d: O% Z4 f - (command "Pline" a b c d "c")
! {, |+ l: f( q, o( [ - (command "change" "last" "" "properties" "layer" "defpoints" "")))
5 ^' b8 I6 m ? - (if (= kho "3")/ e9 B- z1 t8 _% W
- (progn
9 T5 B6 ?$ n; M) h- B& g8 X - (setq b (polar a 0 (* tl 420)))
_* J# @4 j1 j) J - (setq c (polar b (/ pi 2) (* TL 297)))
- t0 Z5 E0 u' n! b; S - (setq d (polar a (/ pi 2) (* TL 297)))
0 Y( H% n7 w4 C; f0 s. p - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
! C# `3 V4 }* @4 b& D% Q0 v, S2 B - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
\3 M( W1 R6 r - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
0 r7 c9 Y, m! f X - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
# I) D: N+ V9 W; ~ - (command "Pline" e f g h "c")
- n! e; l( A2 y% `9 Y# o6 _+ z2 B* N - (command "change" "last" "" "properties" "layer" "0" "")! h7 R' ~- B: {5 u( h4 i, ~
- (setvar "cecolor" "4")
8 q! d. b% K& B* x; B$ b2 G* v - (command "Pline" a b c d "c") n9 p0 `. C+ _, s9 ]$ v
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
" M: q: G6 U0 C7 [/ \ - (if (= kho "4")# ~3 P7 Q' [1 ~7 U, i+ N6 }1 d
- (progn) a) y2 S2 s9 K S3 ~- o( d
- (setq b (polar a 0 (* TL 297)))
4 V5 |- B) w- P7 T" B5 ~. p - (setq c (polar b (/ pi 2) (* TL 210)))* F6 a3 C4 z7 m" L) j$ R: j
- (setq d (polar a (/ pi 2) (* TL 210)))3 F& J# L( V8 H
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))6 c5 b. E3 I) o- E3 X" t7 u6 t/ o$ k
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))
$ H9 _ L5 y) K( x# C$ T - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
" F2 I* p0 j V4 v- L' _) k8 ^ - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
% [7 _. X5 ~ T - (command "Pline" e f g h "c")
4 Y$ _* R; [/ ?: F, [ - (command "change" "last" "" "properties" "layer" "0" "")) X) x9 s2 J# o, S
- (setvar "cecolor" "4")( d+ A. i- {" p, r, R) {& H9 t
- (command "Pline" a b c d "c")
* U7 t g4 ^, `) v J7 Z. _6 M - (command "change" "last" "" "properties" "layer" "defpoints" "")))( Y) e" E/ R$ e- y
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)/ X5 u3 w4 R3 {: B$ N7 b/ w
- (command "undo" "e")- }: {4 A: {! Y9 y* \
- (princ))
- j3 G0 [5 B" m) K) X# H% V1 z8 P6 m - ;=====================================================================& I0 k1 v( D; c$ S; X
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================0 \' s. _. ]+ M, t# C- v
- ;=====================================================================
z6 ~. T: i1 K O8 p' @ - 9 P; q' ]7 P6 l6 w/ h' ~3 g) X
- ;=====================================================================
7 ]( G R( x3 L2 [4 o - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================2 s. d' w0 o6 E! O; {" P
- ;=====================================================================3 D: c* _. k! c
$ z7 k7 i( v" Y9 _6 E. s: u4 c: }- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""/ {8 H) i* R6 s+ e% ^
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
@8 p9 F) i# N7 f* p1 @" | - "M" "MANH" "C" "9" "" "Lw" "0.1" ""
: v5 a' R: r5 e+ g2 @ - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
~0 q+ i5 Y; L& | - "M" "DIM" "C" "1" "" "Lw" "0.12" "": S' a5 b( q/ ^! c) |
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
0 M/ E" U/ Y8 g+ U - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""9 e% M4 a& P0 `
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
; Y, @4 y* @* e9 w0 O8 K6 r, M - "M" "COT" "C" "1" "" "Lw" "0.3" "": s: d x0 g2 e3 H5 I9 |* E J
- "M" "Defpoints" "C" "7" ""! H8 M7 @0 B! }. Q w
- "M" "0" "C" "3" "" "Lw" "0.12" ""
2 U0 t7 \/ b. I5 L0 ?+ T2 ~; e - "M" "CUA" "C" "6" "" "Lw" "0.12" ""2 `5 } {& Z3 z' P! i/ r; [
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
- z# i6 w# i( n2 @, P: t5 M - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
~) c( D2 C( T/ N, K; \- L - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
5 M2 U p9 i, S% |0 b8 a" G# Q, b3 _- L - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
8 c" g- E' L% E3 S" d, l - "M" "MANH" "C" "9" "" "Lw" "0.12" ""
& E6 {/ D( X Z! {: P: `& {3 N - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""0 X7 o' \% u# J: f+ u* V" O; } s! H
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""# s6 v0 F) Z- y4 c! N
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
2 e# F" c0 m; D+ V& [; b - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""1 i3 M4 }% Z! Z/ J5 ^
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
& g, r7 }6 _3 T0 B) n - "M" "COT" "C" "1" "" "Lw" "0.4" ""
% s: L6 X: {7 }8 y - "M" "Defpoints" "C" "7" ""
+ P5 K0 b( y2 P1 e% w+ b7 Z5 H8 O - "M" "0" "C" "3" "" "Lw" "0.2" ""
, L& O5 S5 f2 B- T( c5 P- h7 E+ y8 K( W& n - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
+ f9 s) B: n3 a/ G! P - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""% v& \/ L* l+ ^" C' j
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))/ ]. N2 e8 |2 @9 y2 E2 x @ M2 D
- (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" "". K! c7 G" v9 @3 f
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""7 ~5 m D# }6 A/ N
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""
, S8 `- W L, P* B2 Y+ A - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
' v; Q* C9 S+ E! F4 u4 h, B - "M" "DIM" "C" "1" "" "Lw" "0.25" ""% R1 L4 B' M5 {; s
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""
$ R1 P. E$ y [. ~8 ^0 Y. y4 g - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
# i5 s& \% F4 G7 E( T3 R" F! X' t - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
2 Z- t# g' K" _4 j# D/ z0 `7 ^ - "M" "COT" "C" "1" "" "Lw" "0.6" ""
' J# k4 N; i8 t( `9 J6 Q5 ~6 h - "M" "Defpoints" "C" "7" ""9 h# h, t0 }' d2 a
- "M" "0" "C" "3" "" "Lw" "0.25" ""/ ^( k' P, r3 w& x
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""
0 b! m! ` I8 d8 B3 l+ r) C' N2 P - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""9 ]1 c; V* J. ~! }9 K* V
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
, y2 Z4 T: a6 O& R$ b- [ -
' j1 q+ o8 @# t3 C# ~; {; Q4 |& [2 i - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""! t' G% w: _5 h+ k
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" "" i1 ~. `; i$ B4 X
- "M" "MANH" "C" "9" "" "Lw" "0.25" "". \* @; r9 p, u& X# b5 F3 Q
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
5 n/ f. f& A4 H8 j, N - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
, m1 Y( {- G6 Z7 t3 d2 E& v1 ] z, V - "M" "THAY" "C" "7" "" "Lw" "0.4" ""( N# ^: }# b2 Z; _. r, W% v5 |
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
- h1 r' l; C! ~) l5 W0 m - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
' P& T/ l, _$ n J+ R4 o. M" N+ R - "M" "COT" "C" "1" "" "Lw" "0.7" "", a3 S8 n0 |% N
- "M" "Defpoints" "C" "7" ""
5 W+ F5 y' E2 n3 L8 w - "M" "0" "C" "3" "" "Lw" "0.25" """ j$ U0 m: A& n9 ~. B1 |, ?
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
0 {9 `* z2 M; { - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""$ b2 Q$ n4 {0 y" U7 v
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
% `( S$ H' ~# Z p6 t - - T4 T; Q$ B0 j1 J
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""! }7 z# }- b: x7 p+ N1 Q. H* p# t
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
; w7 b+ w7 Z5 [' N - "M" "MANH" "C" "9" "" "Lw" "0.25" ""! O$ p4 b& G" b% d2 L) f, E
- "M" "TEXT" "C" "7" "" "Lw" "0.25" ""
1 p3 m& l* j6 |/ X' W - "M" "DIM" "C" "1" "" "Lw" "0.3" """ L' r8 w8 a y; Z! S" V% Z! K1 p
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
]/ ~+ }6 {6 C - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
$ g0 ]# L2 J% A/ G( F - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""4 l, |9 f, A$ I. V t5 d" k- b
- "M" "COT" "C" "1" "" "Lw" "0.7" "". h% B T& j2 V% \3 [
- "M" "Defpoints" "C" "7" ""
5 D" A3 F2 A4 `8 u+ q - "M" "0" "C" "3" "" "Lw" "0.35" "", C9 R5 b7 f# q: N
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
% P& e/ c* h" q7 X/ Y7 r - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""+ x) l- W* V( m' e" I
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
! c7 y- Z1 \5 f: S- r; P5 \
6 n, ^5 @1 g( |- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
6 O6 X9 t$ c% o! E& q% L - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
% y$ n; @ `4 k+ w: v5 A - "M" "MANH" "C" "9" "" "Lw" "0.35" ""0 z0 R& C% S' W
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
; f" s7 o8 z. W2 r9 b, r* b - "M" "DIM" "C" "1" "" "Lw" "0.35" ""7 q7 V! o) b6 _! Y" t
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""+ `4 V) c, N1 k [- t4 k& u) E
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
- }0 w0 L8 R% E' j - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
$ g: z" P8 c* a, i/ r - "M" "COT" "C" "1" "" "Lw" "0.85" ""1 O) L: H/ `; e: O
- "M" "Defpoints" "C" "7" ""
* O5 ?8 D. l; q - "M" "0" "C" "3" "" "Lw" "0.35" ""
0 c# Z7 @$ A3 [ - "M" "CUA" "C" "6" "" "Lw" "0.4" ""
s& A* W, ~2 {! x+ @: X - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""2 m; A* U: }- J5 k; H7 z) a5 M/ t
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))# R5 u0 t7 }9 C, Q. w7 [, h
- % I7 `" o8 A0 Q4 W3 Q6 ~( ]
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""0 L2 b5 `; G) \+ F& n
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" "") c3 {! \- s' q
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""% \1 G4 e* R* k& g2 x8 \9 F
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
7 m; J0 u1 W s T - "M" "DIM" "C" "1" "" "Lw" "0.35" ""/ Q6 Z( `- N e3 r
- "M" "THAY" "C" "7" "" "Lw" "0.5" ""
6 `" q/ y [- e+ s: L' P& E8 | - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
# c9 X' S0 {, C' d - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""* n& t3 n. @( N8 O7 \2 \; B- b
- "M" "COT" "C" "1" "" "Lw" "0.1" ""
: X& j( j0 {" r( O7 k8 y - "M" "Defpoints" "C" "7" ""+ D$ M5 w3 y7 K
- "M" "0" "C" "3" "" "Lw" "0.5" ""0 }7 ~, g; s! o% b$ N
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""' C8 d. y: `% p- \' w! I) V* q
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
- U! G3 D" W$ u - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))5 s* e/ U0 r' L/ ?& u& ^
- (DEFUN C:O () (COMMAND "OFFSET")) e- e9 z/ x* D. X
- (defun c:s1 () (command "surftab1"))
: Q! p* p; z2 N1 r! I( C - (defun c:s2 () (command "surftab2"))
m* I$ U4 t8 C: L& G - (defun c:ep () (command "explode"))
: g. r9 O& \8 ?0 ^: V, [ - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
; O) B; a. U2 c+ { - (DEFUN C:QV () (COMMAND "QSAVE"))
1 ^3 Z7 j: y5 B. ^7 Q - (DEFUN C:S () (COMMAND "STRETCH" "C"))% g; R+ J a) H* {3 [
- * @; J5 b+ T& J( G- }+ w; ?
- ;************************** CAT DIM **************************/ E m7 w+ p; F. }* H2 S! i
- 1 B& T$ X& y# t3 e" w2 L
- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
" ]8 |# @) F8 z% W; v - PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)! C$ k! ~& g% _" Q/ T
- (SETQ CMD (GETVAR "CMDECHO"))
8 {3 ]; Q' a; ]' s# r - (SETQ OSM (GETVAR "OSMODE"))! @' Q" |+ c6 G1 p/ h
- (SETQ OLDERR *error*
9 t. j: D- h: h- y/ S1 r3 H - *error* myerror)2 ^3 U+ E' b* b6 t2 [
- (PRINC "Please select dimension object!")
' J4 r7 B4 p* i; `- r - (SETQ SS (SSGET))* z5 J5 n% V1 ^, w8 l
- (SETVAR "CMDECHO" 0)
$ B6 }1 e5 p3 n/ M - (SETQ PT (GETPOINT "Point to trim or extend:"))
" n4 J8 @# N$ ~4 \' l - (SETQ PT (TRANS PT 1 0))
& X4 Q$ d2 Z8 R; A' `+ a - (COMMAND "UCS" "W")
) L+ @# {; t7 _; @! I - (SETQ LTH (SSLENGTH SS))' j% V2 D5 c9 L) F
- (SETQ DEM 0)
j5 r7 `- c7 _% a t$ l( u" a8 ~ - (WHILE (< DEM LTH)6 U: u P2 s, A8 W$ m+ C N
- (PROGN
1 ]' [1 ?8 B5 i- ^/ d7 W - (SETQ DS (ENTGET (SSNAME SS DEM)))& v6 \" m p; }5 o0 Y+ F
- (SETQ KDL (CDR (ASSOC 0 DS)))4 Y% S" ^0 ]; L% t) u
- (IF (= "DIMENSION" KDL)
6 c( b8 f) C& n/ f1 v- F- i3 ` - (PROGN7 P& q: J) u. Y/ i8 z& z
- (SETQ PT10 (CDR (ASSOC 10 DS)))
+ V7 m/ b- Z3 a+ O8 X7 | - (SETQ PT11 (CDR (ASSOC 11 DS)))
: }) B" s1 q% i% a - (SETQ PT13 (CDR (ASSOC 13 DS)))
4 |7 `3 h1 R( o1 B - (SETQ PT14 (CDR (ASSOC 14 DS)))
3 i: ]) Q$ k% x: M+ ]5 x6 e - (SETQ N70 (CDR (ASSOC 70 DS)))( S# W. C6 T/ I+ [' b( h
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
% h; u" H5 B6 P! j+ L8 f - (PROGN' u; l7 c. L1 u G$ v7 B
- (SETQ GOCY (ANGLE PT10 PT14))
3 }) o& J5 E5 B& E - (SETQ GOCX (+ GOCY (/ PI 2)))
6 x8 V1 n' p; `/ r* v1 e2 j - )
1 O( T3 S, w5 N) T9 I - )! j$ ?: \7 Z- N& I( J9 O( `* C0 F5 X
- (SETVAR "OSMODE" 0): a+ D7 q$ V* x, n1 T! T; b
- (SETQ PTI (POLAR PT GOCX 2))
9 h) e0 ?2 n" G; Z3 E! [! K - (SETQ PT13I (POLAR PT13 GOCY 2)), P: q; T; U1 T+ Y3 x
- (SETQ PT14I (POLAR PT14 GOCY 2))
* c! @$ D, `& Z8 a" N- Z5 c; T' ] - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
0 _& Y6 ` u/ X. V - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))3 W" ^, d+ l. g
- (SETQ O13 (ASSOC 13 DS))8 u3 Y+ U5 a3 ?
- (SETQ O14 (ASSOC 14 DS))" E8 d; a7 {1 r
- (SETQ N13 (CONS 13 PT13N))
, ~5 R4 C; W. ~( t$ W; J$ R; V5 N. v - (SETQ N14 (CONS 14 PT14N))9 R+ d V2 u! T
- (SETQ DS (SUBST N13 O13 DS))
6 ]/ ]. K6 G% h; N1 e- ^' b - (SETQ DS (SUBST N14 O14 DS))
1 @& Z' v) i$ ~5 x - (ENTMOD DS)
0 i. j8 c3 N8 \! m - ) G+ l1 t% _& v- T L
- )/ J; h) D5 h1 o! j/ I
- (SETQ DEM (+ DEM 1))
- C# h% I" j+ ^5 z- G - )
0 e8 H, H$ R( }' j$ T$ K r - )/ k" x+ v; v- Q" V; w
- (COMMAND "UCS" "P")
1 }( C2 X C8 P7 e* C' l - (SETVAR "CMDECHO" CMD)
$ a& i6 R. }, K8 S7 W( K, G - (SETVAR "OSMODE" OSM)
' {* h4 }/ M% d3 \! I; B - (setq *error* OLDERR) ; Restore old *error* handler5 S( @! e' F8 G
- (PRINC)5 g- y5 E3 O0 [- W( H
- )
! ^) h' S6 e, d/ n4 D
' m2 e7 g8 `3 e" t1 } \2 \- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
' ^2 Q; _8 G) k u - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)+ f- A# v$ [+ c+ Y8 n7 n
- (SETQ CMD (GETVAR "CMDECHO"))* G( ]. ]; n' k! ?, Q% Y1 c
- (SETQ OSM (GETVAR "OSMODE"))5 W0 f) l: ^6 u& E; ^- d( z! M
- (SETQ OLDERR *error*0 | C/ s# F5 n
- *error* myerror)
) M% ^* n1 k" ^8 F; v: s - (PRINC "Please select dimension object!")0 F4 m6 ]# ]. H( _5 E2 K* K! O
- (SETQ SS (SSGET))( q# H& c1 |7 c+ i- K
- (SETVAR "CMDECHO" 0)% J" v$ a @6 H2 m- U: [- [
- (SETQ PT (GETPOINT "Point to trim or extend:"))6 s/ I4 \" A4 U" x4 ?. f4 v3 U4 X7 r0 t
- (SETQ PT (TRANS PT 1 0))
7 a6 O, |& g& ` - (COMMAND "UCS" "W"), ^# E( Y8 T x$ x, f# `, k |
- (SETQ LTH (SSLENGTH SS))
1 V1 j6 p( m5 X" y; d- G - (SETQ DEM 0)! N2 ? l. v8 {9 N* U# _
- (WHILE (< DEM LTH)$ R5 V" m- C* q9 ]
- (PROGN
, ?! ]+ b4 r4 H' T: W; i# m - (SETQ DS (ENTGET (SSNAME SS DEM)))
/ j2 f" W+ \ b. c - (SETQ KDL (CDR (ASSOC 0 DS))) C P/ x) q& z/ w' t3 n4 {
- (IF (= "DIMENSION" KDL)4 l+ P0 R' Z. d0 u% @
- (PROGN
0 k4 n$ g: Y2 E9 V - (SETQ PT13 (CDR (ASSOC 13 DS)))! e& i9 V) E- O# `$ R6 U/ Q# B, q
- (SETQ PT14 (CDR (ASSOC 14 DS)))
9 [6 z% u, E0 w& S+ D - (SETQ PT10 (CDR (ASSOC 10 DS)))" n! w6 O9 U- y/ V
- (SETQ PT11 (CDR (ASSOC 11 DS)))/ s7 ~' z; v4 U3 S
- (SETQ N70 (CDR (ASSOC 70 DS)))! }! b: B; ]7 J, D& p
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
* B5 c; q7 y9 \/ {" N - (PROGN
& D: h; R, N0 s1 K/ L - (SETQ GOCY (ANGLE PT10 PT14))
% ]4 I( p/ u* h - (SETQ GOCX (+ GOCY (/ PI 2)))0 J) B- |5 k$ G y K+ m6 e
- )8 n, X' A' E" |' \9 e" e; h
- )
+ |2 G( b# f3 x+ J0 P - (SETVAR "OSMODE" 0)) t: _- c7 H. r0 v
- (SETQ PTI (POLAR PT GOCX 2))2 w5 o* B2 U0 A4 i# B/ ?
- (SETQ PT10I (POLAR PT10 GOCY 2))" s/ Q2 k$ k2 z; ^
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
+ Q& Z1 v2 q; m# n X5 i+ s1 n - (SETQ KC (DISTANCE PT10 PT10N)) |/ }, j8 D" K$ [. o2 c& M# z
- (SETQ O10 (ASSOC 10 DS))/ h2 x4 A4 {0 _; a: L- p
- (SETQ N10 (CONS 10 PT10N))$ J- I I& `! t% m! Z
- (SETQ DS (SUBST N10 O10 DS))
- w. }7 i1 ]" g: n+ f U3 z1 z - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))* v$ V D& ?+ H9 C# u
- (SETQ O11 (ASSOC 11 DS))
2 y. D, Q1 [1 s! D9 O7 R - (SETQ N11 (CONS 11 PT11N))
* I$ W" V% E( G# [- n, W3 r - (SETQ DS (SUBST N11 O11 DS))) `$ I0 d" u2 _. y4 @! [
- (ENTMOD DS)6 f& W1 J" B4 a. h0 V' R
- )
/ h: x) [6 k. h ^! ]7 B - )
, k x* E; o6 R5 k3 q - (SETQ DEM (+ DEM 1))# o H5 P w( q& N2 _
- )
$ {7 W6 Y1 p( \( R: W - )
: M# n; ^' T" K _; b% s - (COMMAND "UCS" "P")3 |- @, l: M) v! f4 ?
- (SETVAR "CMDECHO" CMD)
' }' L$ e" L4 x8 p" r6 W - (SETVAR "OSMODE" OSM)
) Z1 v+ `' P( x# t6 A% v - (setq *error* OLDERR)9 d- o0 C5 v" y. L$ c
- (PRINC)" b+ p2 q/ b0 j4 Z) K
- )
( r4 a8 t3 W+ s( K+ w E - $ m+ q# ^' ?0 Q6 X4 O& C( e
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
9 h# D$ l$ N1 {6 o+ g4 j4 F. @7 G5 z
8 z7 _, f6 [ H ~& O7 d' h7 J3 r- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
+ M# P# \5 W4 x$ C! T# \ - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
8 b+ V x/ K! r3 [/ {0 C# F4 Q* m - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
% H g3 `6 A( i1 D - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
9 a/ R9 m% e" G- H8 r: e8 I, U - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u") N$ h9 |! U9 I6 d- a- M) Z$ }
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
/ P0 r5 }7 k( c - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt))); V: _* }( n0 y- n* A4 e. e
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))* g3 a1 _( q" i5 f8 c
4 w) p& f( H- A- ;;; ================ CHEN COT (TUU) =================; X. |- J C+ m$ H, s- k
9 O. p! r2 J4 l1 u# ?- q- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
" E0 M6 n1 D5 X3 Y - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")" u) Z3 I9 N* N7 p- M2 C
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt) `$ K) y8 V5 A1 S% X- ^, R3 _
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))" J' G0 X# U! @* r0 O; X9 [0 @
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")
! m6 m. Y/ d* D: G - (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
" j* {" I$ t: R, \4 [ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))# e# y O+ Z: @- R: c; L" M4 c
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
+ u! a9 B/ L6 H& [0 J% ]! f - 2 P& d; j5 J4 y' X+ ]9 J. x
- ;;; ================ CHEN KY HIEU THEP (TP) =================; u1 x# x9 ~5 e) N9 Q" K
- 2 |0 p8 r0 C% w* w1 u9 I; f0 r
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
. D, t' w( ?# y& j. c/ H - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")4 Z' H: X0 A7 q: D- F
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt# {, c& ]2 K$ U! T# V' g( ^/ t* P
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))8 ^* A- B; f# X# E+ z/ \9 v
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
; S/ u: M. |: f0 o/ v# B( v - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
3 a9 u3 ^+ d% F% k( z - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))6 t# V" o* ]2 }, g8 _& w; r
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))! `' D1 y% w$ _$ V2 s
; K6 ]2 [& S. B* _! f: f+ V- ;=========================== TAM TUONG (TAM) =================================
9 m9 A' T9 t/ w8 P
, J' b9 f3 k; J: b [9 M/ l2 J: ]- (defun c:tam(/ data_m)& \* V* S3 [& q2 r& G. `
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0)) h. D( ~! T0 M$ ^
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))) Q! e: h! ]" N! g
- (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)9 `- @5 P* [ G6 g3 H
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset4 D) U6 M) F4 V
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
9 a0 I) v, Z' p4 L+ m - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
6 {; a$ I! \3 i2 h) i - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
/ W8 ~9 s( V8 C/ U& m - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
5 B" P0 u7 s7 H9 w - distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
/ y2 q) S9 x9 d( F - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
& }+ J& `/ U. `* Q - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
* t- X4 k1 {% ] e: _4 }6 Z - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
0 y, v; l2 P. g5 J7 e; S6 M - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
$ I6 e, ~( d) p' ^5 i/ y8 ] - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
! g& i7 P. o6 G5 @ - (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not6 G0 w+ D) k6 Z* o: q/ A4 z* _9 z
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget( G" J6 X# R3 k2 u+ ^
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
1 A+ d* X) C/ w7 w ]8 R$ f: I. q - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
8 G, x' q, C8 S( S7 z2 @
7 \( h+ A; t& F U6 x( p- ;============ GHI CHU PHI (T1) ================: a7 ~. B; V( w6 {
* V9 w J& M+ g- A& @- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
: R. w( Y7 V ?& ` - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3 `! Z* S, U" z7 g. W
- (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)* p# [/ Q2 K8 U3 _+ I w4 {
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)3 b) |" u, g8 a# {. l, b' }
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
5 l4 f) Z" o+ u, E! D2 |1 n - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
0 R/ o' T5 |& Q/ y" g$ p - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)! i6 H- e, { o' N
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )3 x0 W. ^9 r' A1 |) H+ t
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
! V! U* g6 e4 M4 ? - (command "ddedit" pause))& w; I2 u) E! G0 |6 G# k7 p9 ?
- ( n4 g1 f. s% C" T# K- g8 z* {
- ;;; ========================== Join (J) =================
/ V# a! w8 P2 k
* \4 S2 h8 \ \- U1 X- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
" O7 A9 y W" v! |& N5 ^. u - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? ")), \" ~# o" n6 X# `: j W# A
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
! Q4 `9 L' e9 f" U3 Y/ M5 Y - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
7 l6 J6 Z9 T( {: `7 i) T5 N/ x - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))4 E6 r& N, y( Q$ c3 g( ~
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
5 v/ Z* j, x/ F- M - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
% A; g0 a, k5 j! t, u4 L3 f - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
8 ~0 l4 v6 R, h" G2 [# h# b! F: \ - (setq *error* m:err m:err nil)(princ))( i, k5 |2 D0 Q1 V$ R4 ^
L/ H0 J0 {1 Z }! [% L" E2 v- ;=====================================================================, _1 K6 B* s$ _
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
* S' C: S" J; W* u' ]- r - ;=====================================================================9 `/ T: X! s# \' _# Q3 Y& Z. M1 ?
- . w6 V! m$ B- X; \* |
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
. U( j. N2 @5 ] - (setq old (getvar "OSMODE"))
* S7 f& p8 O! Q" a" a$ B0 R' g - 1 l& V* `+ J* a: @
- (setq p1 (getpoint "\nStart point:"))
4 Z$ t f( I: w2 z) L - (setq p2 (getpoint p1 "\nEnd point:"))" b6 ?6 @" r4 U5 {8 {# q5 b% X: ^1 P
- (setq side (getpoint p2 "\nOpen side"))/ n- r% K4 S* J$ e! i) z$ g4 f
- : G6 x. M; ~ o* Y( b- m2 b$ a
- (setq dis (distance p1 p2))
+ Q- v* T* h6 {/ | - (setq ang (angle p1 p2))- E6 @0 c" G7 G8 P0 _( I8 ?
- (if (< ang (angle p1 side))
7 K5 ]: i4 L- |- H7 y - (setq angside (/ pi 2) )2 l- O, e; Y& ~9 ~
- (setq angside (- (/ pi 2)))
# k2 [: g( c6 q1 D$ u' }- _ - )
9 c! H) v0 ]2 j9 z - (if (>= (- (angle p1 side) ang) pi). S9 `) ^* n* S$ V) @* C5 f
- (setq angside (- (/ pi 2)))
1 [( Q% {2 E; i2 m) H2 D* C ` - )5 M: V$ p- _( H ]
- (if (>= (- ANG (angle p1 side) ) pi); P2 n+ a5 }, E- [1 h1 Q
- (setq angside (/ pi 2))
- `6 r( M8 G r8 D, ~) x" y# c - )
, W$ \7 h9 H; M4 ]( V) s7 @( u! Q
8 G [# y( b. S1 O- (setq p3 (polar p2 (+ ang angside) dis) )# |. e1 t1 f, ?6 K f" A8 S
- (setq p4 (polar p1 (+ ang angside) dis) )
' {" C- `: J* x9 Y5 k - (setq wid (/ dis 15))7 n- G8 T7 n: S X- f* u0 t
- / ?( F0 y* C) m4 S
- (setvar "OSMODE" 0)
5 U9 h U4 V" X9 R5 j9 c1 N4 X
7 t. d( a+ l, D( E& T! e- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
6 L, E9 V) b& i, ?+ t. a) a7 L - (polar p2 (+ ang pi) wid) 6 s& M4 V6 y5 t l; D1 _0 g
- (polar p3 (+ ang pi) wid) " Z2 [3 P, m0 }6 C
- "")& O# G) B. W$ z) O
- 2 i% v) s- U5 e1 j! N
- (setvar "OSMODE" old)* M. g! U- ~% m- D+ m5 m' i. U
- (princ)
* Y" z+ l3 j0 }" A3 L - )
$ k, L8 @3 ^% }1 _
7 D) P2 p" f3 G# Z, L, A- ;===================================================================== n# f" u# Y2 r: ~4 d4 [
/ m5 O; b( ?7 D. K. ]- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
9 S, g& g( J, d) h% R - (defun cua1 (pt1 pt2)" J* k3 o Z9 ?" R7 e$ w
- (setq p1 pt1
8 G! G# H7 Q* C" W: k) }" a' F( U - p2 pt2), ^9 I5 s: `9 P5 _0 c2 d9 v I
- ^5 f/ s8 p8 U# J6 Q
- (setq ang (angle p1 p2))
! n; a, [( \5 b; M) C) R( f- s - (if (< ang (angle p1 side)). B) o2 y; h0 M9 v
- (setq angside (/ pi 2) )
" h$ n/ k! R+ K - (setq angside (- (/ pi 2)))2 g2 h& ]+ Q5 ~' |/ g$ B1 q7 n& ~
- )
# a2 Z4 O6 y8 [! a4 y. w1 T# x - (if (>= (- (angle p1 side) ang) pi), f/ s1 J- n5 d: L- L! w8 q
- (setq angside (- (/ pi 2)))
/ ? Y G& Y* A. {4 m9 b - )
8 d* o& Y0 D5 _* q - (if (>= (- ANG (angle p1 side) ) pi)
' _. s, e, o' Q# w/ Z$ G: J - (setq angside (/ pi 2))
5 @8 N( F' L# b: z3 [ - )
" D. T6 k I, z7 a4 O6 p* r" ~% \ - ( [3 i; G. N& s d
- (setq p3 (polar p2 (+ ang angside) dis) )3 z" B. a& W3 S. g* Q
- (setq p4 (polar p1 (+ ang angside) dis) )
2 E4 V: k1 Y4 I: X - (setq wid (/ dis 15))8 T, ^: a5 l2 e4 Q4 m
- ' H+ P$ K- [# q, j$ V* Y
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 ! c( f4 `4 K f. G
- (polar p2 (+ ang pi) wid)
5 k" R1 V/ @( B- r8 p m3 W - (polar p3 (+ ang pi) wid) 3 O. H& Y' t: E" c v% u
- "")
$ ]( w& f/ D- ~2 D1 p - )
- {4 e! {( U/ ]" F - ;===================================================================== {/ E2 d8 E3 z% j- R G: y# J
- (setq old (getvar "OSMODE"))
) z7 P) F7 A8 M9 U9 k1 O - . J7 Y+ S- ]: y/ {$ E( I
- (setq p1 (getpoint "\nStart point:"))( Y3 V( K/ H+ {5 C1 V1 V& T# l
- (setq p2 (getpoint p1 "\nEnd point:"))1 b) G, i% X) K% }2 L
- (setq side (getpoint p2 "\nOpen side")): O7 H# H$ c; v! k/ X- b0 e: O
: U% a2 L9 T5 s5 [8 k7 b- (setq dis (distance p1 p2)); h; A; p: s# p# G R
- (setq dis (/ dis 2)): A( Q! e. s! u0 u0 o! _1 h, l
& p- A9 v0 \( b, W) c. Q; O; C- (setvar "OSMODE" 0)
, O8 C. i8 X, S$ t, Q/ O - , X. o) c) Z; u+ @8 q) B8 s% v# P) ~
- (setq p1 (polar p1 (angle p1 p2) dis))! j; E( B7 O% G7 }( D/ R6 J
- (cua1 p1 p2) ) x5 V% I% Z; O4 p& U
- " U. C4 u- P6 ~% D/ C$ ^) u
- (setq ang (+ ang pi))
) ~! Z7 M, u2 g3 ~! q% B! F& k - (setq p2 (polar p1 ang dis))
0 ~) M5 F: t4 F9 i( H# i! O. @' ?# {( j - ; (setq side (polar p1 () dis))! ^: n! a2 G" M' [3 F# b: o9 ]) C
- (cua1 p1 p2) ( f' M1 F4 V0 c2 K" N* H
- ! K% f' ]/ \, Q0 Z8 r& w
- (setvar "OSMODE" old)
, O# ?2 r+ i9 L3 T6 m# V2 s) G4 b# \ - (princ)
8 C; a w3 }4 D5 j1 I5 u! n - )
; p7 D. l2 Y; f. Z
( m/ K; N$ W/ [1 R0 t1 g- ;=====================================================================
+ k8 Y4 ?9 T! D) ? - ;"Glue" text strings. All adopt first's properties./ X+ K0 j# G$ a+ k% D- H* S
- ; Author:
6 h; m6 q9 X( s" W- T" F' ` - ; Henry C. Francis
) R6 c, p' M9 E' t9 m1 I" a - ; 425 N. Ashe St.# G w5 x9 t" a& |
- ; Southern Pines, NC 28387
7 W3 p( h; p' ^5 R5 q q5 d6 y - ; http://www.pinehurst.net/~pfrancis- |% T# ]7 v9 o# G
- ; e-mail hfrancis@pinehurst.net
" h6 |( c; j: T" D, X. q - ; All rights reserved.2 |6 {0 N' L2 D3 B8 B
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)* m4 ^: e% D, g. g
- (while- n4 m/ e+ {& S
- (not1 p# j7 u' q' _- r; s0 I
- (and6 T$ }9 K7 n! U" [- s5 |
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))& ]" K' c9 A0 m" c( t l' l% n
- (setq ent1 (entget ename1)) {0 N [) j% [ D
- (eq(cdr(assoc 0 ent1))"TEXT")% o% L; \3 h6 z+ L0 p# R
- );and! `. \( }4 p/ w4 u- r c2 l: l2 H3 V
- );not
0 c% V* d( v& { - );while
: D% _$ Q0 W& S" \- f - (setq old1 (cdr(assoc 1 ent1))): [" A6 V# O- i: }* E) A8 A
- (while* ~$ \# s6 O5 e1 v; m( w" T1 O! k }
- (not
: e6 w5 ^( r6 q' O - (and
' ^# Q% g; R1 v/ N& e8 v - (setq ename2 (car(entsel "\nSelect second text string to join: ")))
4 v) K% |" T2 n; ?. X; d- u - (setq ent2 (entget ename2))
! j [0 a- N U, F2 d/ m2 g, _0 ?) w5 v - (eq(cdr(assoc 0 ent2))"TEXT")
7 g6 H) b: C1 b% q# M/ @ - (not(eq ename1 ename2))
# x) V9 j0 }! P3 T/ t8 f+ ^ - );and
5 Q7 d4 f4 d$ `" I& H& ?# J0 ~ - );not' i& O' K* V5 c6 _
- );while
$ Y' F& K& ~- s [6 K/ O - (setq old2 (cdr(assoc 1 ent2)))4 r3 P) C% O) l8 X3 ~* W
- (setq new1 (strcat old1 " " old2)
8 L, B8 e1 b% d. H) q - ent15 M# ]& i4 y5 n. w8 D; Q
- (subst (cons 1 new1)
% s# P% H$ B) G/ o - (assoc 1 ent1)
1 c' o- \, L2 j - ent1)
: ]& H9 g1 U% r; N+ N8 R# z0 V - );setq7 a. J1 {, F# f2 v. |
- (entmod ent1)- U! d" C% Q1 z3 |7 \
- (entdel ename2)
9 H4 e# P8 v1 } - (princ)
0 z0 m! l; S6 G) X" v% y. a - );defun/ O8 \7 D* p) f+ ~4 |: O) \
- . v3 f0 z: ?2 u* i; H, b
- ;=====================================================================
8 q: }3 t {. B. M0 g
3 I4 {' f& ^: s7 N* }- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)- N" S$ H: j% {! _8 ~4 f3 j
' F2 o2 G4 ^# `$ z- (defun nterr (s)
& y2 d7 s% X& J- c - (command "_.UCS" "" "_.UNDO" "E")3 `3 V$ L- P L' [' r" C; y
- (setvar "cmdecho" 1)2 C H0 @! w Q; V3 i$ I: X
- (setvar "blipmode" 0)& `7 D7 }1 u$ W, Q& F5 P+ M# F
- (setq *error* olderr)
' ~4 T4 _1 Z- Z4 H, G g - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil ( ^ L" C0 @2 w) E$ k, x
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)+ L- w; Y% w! J- E2 y+ |
- (princ)
" W( [& d# a7 Q - )7 a* K4 ^! P ^- H8 F* l
- " l. u8 D9 k3 b0 o n
- (defun tim_in (dt / p01 p02 ktra)* K* j; ^+ q9 T6 ^( M% a$ x
- (setq p01 (cdr (assoc 10 (entget dt))))
! J& i7 I. e0 Q5 L* ^& C - (setq p02 (cdr (assoc 11 (entget dt))))5 F3 f# g( q2 J; x2 q: I2 \
- (setq ktra T)3 Q1 r1 f! J/ P; g
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
* y! k$ ~# e4 X' w9 E) v - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
) Q) l( l5 H+ Y4 X; r8 `& S - (setq ktra nil)
0 |0 V% @2 ~8 I+ h- x - )
! S. l Q$ V* P, @2 \9 H: { - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
- A/ ]2 G1 w3 p8 M& U - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
2 ~* w7 L' W4 ~( v- L6 D6 S - (setq ktra nil)
9 I& }* Q/ v0 B; Y0 V7 I - )
* z B9 ` k+ J - ktra$ Z1 @- b$ Z. X" [
- )' F3 D- C) {& ?- x
- ( m5 g2 g m+ e/ z0 I$ r7 a+ t
- (defun timdt (dt1 dt2 / p01 p02)! H S/ {1 ~- J& {
- (setq p01 (cdr (assoc 10 (entget dt2))))
4 i$ e3 ]: u4 w- _. ?; B, _# E ` - (setq p02 (cdr (assoc 11 (entget dt2))))5 G5 M- \* R1 b3 R* P0 ]3 n, {
- (setvar "ucsicon" 0)/ M4 J1 n! [7 V! { u- o! u
- (command "_.UCS" "E" dt1)5 [2 L3 p0 s' A! ~8 d+ v* f+ g
- (setq p01 (trans p01 0 1))$ B: {0 `6 S4 }6 r' f# v
- (setq p02 (trans p02 0 1)): U; ^; i% q% G
- (command "_.UCS" "")
8 ^6 q9 S, w: d1 z- x' ] - (setvar "ucsicon" 1)
) D, U$ v# i! x% z - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
6 S! q2 x6 |; K+ Q! V, y3 m: z' n - T
4 z- |( E7 J9 x2 B3 W& |; t/ F- s - nil
# W1 T* h. i9 u9 F - )
& q2 y" j- b# J, L5 d - )
. \' w6 l6 f- R7 Z
. }+ K% I$ W4 b! }0 \9 q X- (defun tim_out (dt / p01 p02 kt)5 \% \% l/ f! a/ I
- (setq p01 (cdr (assoc 10 (entget dt))))) J1 I$ s" R. m3 Z' ?2 f# T# x
- (setq p02 (cdr (assoc 11 (entget dt))))
( p& Z/ |( c. u# G - (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) % I1 K% R1 b' T
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
. T5 x0 `6 x- \8 `2 ]2 s - (setq kt p02)
3 M$ x; m- u: n: e5 Q8 ~$ m/ q8 t" k - )
g- j8 G3 u6 P* S$ Q8 O - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
5 R; X& }* C6 \6 S. V: O - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
. E; [9 d0 F2 b. J- B5 j - (setq kt p01)9 _3 v7 o' l# U/ p4 Q
- )
8 \' _- f1 x; \ - kt
+ j, M4 s4 [: z! S& ? - )
. c6 g" ^& v: V! g
1 ~/ Z4 A. j B- (setvar "cmdecho" 0)& N% c1 c5 A. b: G$ j* s$ M2 w
- (setq olderr *error* *error* nterr)
8 p' r1 L' [9 N. z* W: m - (command "_.UNDO" "G" "_.UCS" "")$ r' J, q1 g6 H1 @1 I
- (while (null ss1)! [7 E }- l5 _3 o1 X8 @2 {
- (princ "\nChon tuong muon noi...")
- s, K. D8 v: `7 b/ I - (initget 1): X( `$ v U& Q% |' v- h& ~9 R
- (setq g1 (getpoint "\n>Goc thu nhat:"))9 j1 ]+ D- j) o4 k! Q
- (initget (+ 1 32))5 x* f. b4 l8 o3 _# d1 r; f
- (setq g2 (getcorner g1 "\n>Goc thu hai:"))
" l& F) s$ E1 ^# Y - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))6 X' d* {3 Y+ J: [3 [
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))' x% j# W5 f3 h1 L
- )/ _& m3 m6 ~# R1 v. V; V6 d
- $ @. \3 t. [* X1 m. e" D
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))# C9 c. N/ l. V8 i: D% I: M9 c
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2))), G8 c+ |* t3 h6 f* }8 I
- g1 temp)
( V( k4 l/ a$ _) _0 S - (setq ss1 (ssget "w" g1 g2))( b# A X" q7 g
- (if ss1 (command "_.ERASE" ss1 ""))* c% z. i5 D, }9 j7 o
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE")))); S9 ^' J4 ]6 \9 K: ]
- ; `1 _2 V6 X9 P' {+ r$ e
- (setvar "blipmode" 0): z5 g$ `0 o A$ g0 g4 i8 g, n$ e
- (setq i 0 l (sslength ss1))7 j9 M/ E* z' f6 k2 j+ ~& o5 N
- (while (< i l)
1 t7 k3 H4 }% Q! ?; F9 l9 z - (if (tim_in (ssname ss1 i))7 J5 ^# U* B6 H
- (progn 7 I* D2 @0 t4 U2 _% {, u
- (ssdel (ssname ss1 i) ss1)
$ o: S! I0 I+ n# S* A3 x: Y - (setq i 0 l (1- l))
* h, b/ _% a9 c+ o* m5 e0 I - )
; S( \: i+ H# }, \( y - (setq i (1+ i))
) v$ N! u) i" O5 X* i - )
) v1 j7 j4 [' Y" m0 s8 O4 D- V - )* Z7 w8 x) w# R- m8 @- ?- m
- (setq l (sslength ss1))
8 R, T6 L( P2 O$ A7 b - (while (>= l 2)
, y% M! D: M4 b- W. i6 j - (setq e1 (ssname ss1 0))3 r: x9 t( u: i/ @
- (ssdel e1 ss1) l+ ]4 w8 f8 ?5 U
- (setq e2 nil i 0 l (sslength ss1))
; c6 b0 ~' k, G - (while (< i l) ' I. ^+ q5 N$ j- l S2 Z
- (if (timdt e1 (ssname ss1 i))/ P) X- L) B" ]9 [
- (progn
- U, i, |* M' d% Q' Z - (setq e2 (ssname ss1 i))( Z8 G ]/ t% W4 a
- (setq dd (tim_out e1))
q! N3 _0 s6 `6 K$ n - (setq dc (tim_out e2))
8 Z9 M( x& P% v2 j - )
" I; t+ z/ w% f9 u* ^ - )
/ i' m+ m) y$ U3 \ - (setq i (1+ i))
% r' P F+ W/ Q$ R h/ {! _ - )+ [* m3 A5 ?2 A8 Y* X4 L0 d# h
- (if e2 (progn
; h3 U; L9 `4 O; }& E( p, P. { - (ssdel e2 ss1) ! ~5 V8 U0 h; x W3 _5 a" W
- (command "_.ERASE" e2 "")
" ^3 [, l: W x( U/ `0 ^7 ?4 d' y - (setq temp (entget e1))
' R7 R4 x: J+ T( W2 W - (setq old (assoc 10 temp))
# a) S! j q$ Z! h% _; X' k - (setq new (cons 10 dd))5 q K$ g( Z+ a6 T' z& Z
- (setq temp (subst new old temp))" Q) L1 g! K/ L
- (entmod temp)
3 A+ w, T4 M {5 U - (setq temp (entget e1))
( O- V+ n: O. l3 A b8 f - (setq old (assoc 11 temp))6 n: V* ]0 T6 y4 ~
- (setq new (cons 11 dc))
3 {( M+ S# u- K1 D" Z - (setq temp (subst new old temp))
& W$ x& b1 |' D1 @/ L8 G - (entmod temp)" G: p, s- A2 ?4 c
- (redraw e1)
( P% P% G, q& r) a, n - (setq l (sslength ss1))
" T! l. T1 a G% j, a. Z - )- [4 K0 F Q' p' \9 }: w
- )
$ m: E7 a) P. } - )3 E$ Q3 X+ @' @* g
- 9 [) G# J- b. p( Y3 P7 F7 Z- i8 L
- (command "_.UCS" "" "_.UNDO" "E")& i- }% ]+ U& G% Q/ f: D7 ]
- (setvar "cmdecho" 1), G! r' S5 M0 s: R1 o" ~' e" ?$ f
- (setvar "blipmode" 0)
+ q- Y5 B5 T0 e1 K. k4 X$ {4 C - (setq *error* olderr)6 K- Q5 F! H, `1 H
- (princ)
; z+ m6 c. x# ?) `7 v - )
4 g9 @. _) D J - ;*********************************************************************
& N ] N% A) l7 r+ J- [4 G - (defun ketthuc ()4 P- F, h( M' g
- (setvar "cmdecho" luuecho)
{6 K# j" T- R - (setq *error* luu7 B% A/ X3 E8 } g8 i/ ]
- luu nil 7 N# U' T ~% B( y1 j4 d. X
- luuecho nil1 }! T& L3 P5 y1 g/ [/ x
- );setq9 q1 |2 [9 x4 e8 x5 w
- (princ); y( i; O5 g! g( a
- ) 7 _5 W" |* K3 C$ ?; A
- ;*********************************************************************; C, l' \# D: T
- (defun modau ()
( V8 S- @; I6 G' S/ D8 l% N' b/ ] - (setq luu *error7 ~' m# @, _, J. E, M8 v
- luuecho (getvar "cmdecho")
9 b4 c2 _ T& b2 M5 j! O8 g) n - *error (ketthuc)' v* ]% f% t0 O
- )3 W$ y( ?/ A1 v6 M" T
- )- S( f' y; ~! J; L7 P
- ;*********************************************************************
/ ^ c% t2 h, |. ~- W4 O( V. y - (defun xulytext (text / kytu ma sokt luusokt lui )
5 D6 b9 I5 {3 T% u! n - (setq kytu (substr text (strlen text))+ Z0 W$ L( b# O" [- L
- ma (ascii kytu)
" U6 S0 ~$ l: n - sokt (read kytu)
" y' |0 E0 c; j' A3 b; I - lui 1
; l9 e: }; c/ o1 I, X - )* v1 e. r( E, K8 G4 {
- (if (numberp sokt)
. Z) w8 H4 G6 B/ z3 r - (progn, e3 i# e- N. }
- (setq luusokt (1+ sokt))
/ n6 a# K& t. ? z3 M - (if (and (numberp sokt) ' U+ c! q* m4 k6 u j6 Z
- (> (strlen text) 1)# f$ q( }$ }" n+ X* ~
- ) 7 C7 W) u. _* F6 j G, `& y
- (progn
2 l2 l& L6 h' Q4 j. `- W - (setq kytu (substr text (1- (strlen text)))% d8 J/ o" _9 b2 D) _: X2 e
- sokt (read kytu)
! [% A! o' u0 W# D! c- \9 @ - )8 T- y5 i0 J% T
- (if (numberp sokt) 5 i7 W3 r" R' w$ k, A$ P$ S
- (setq luusokt (1+ sokt)
3 {0 s, K) n6 d7 B8 U - lui 2( N8 s; I- B6 J& Z' \7 \' V
- 6 c* J6 M0 k- E4 X5 l$ {4 |4 g
- )
8 l0 l8 }9 H5 h5 w7 g8 s - )
: b+ x- s; {- B% X3 Q1 ? - );progn + X7 a& l$ |3 K/ b# B* F
- )& S" X0 U$ N+ k
- (if (= luusokt 100) (setq luusokt 0))) N* H$ B) F! ] G" `1 @& T
- (setq kytu (rtos luusokt 2 0)
j/ e0 e; l1 A8 k! J. I4 x - ! S0 v' _' y7 b4 k
- text (strcat (substr text 1 (- (strlen text) lui)) kytu)
' B6 X' b+ ^+ H" n2 d - )
* x; E0 ]1 f* @1 t3 l4 C l - );progn
8 R/ B6 h: N9 {% \- Q - (if (or (= kytu "z")
% x& ]9 X7 P9 P- c+ | - (= kytu "Z")" _7 J$ ~4 y+ b0 }$ E( V# x- h2 d& T
- )
+ @/ |) v3 X n - (setq text (strcat text "0")
8 S5 |9 `, R8 N9 ? R& q - textxl "0"
8 j8 }- r7 \5 x1 }" e% l - )8 l! [3 q2 P) x8 [% h4 K0 i
- (setq ma (1+ ma)
) J# h6 t/ F/ }" A) I' R# J5 c - text (strcat (substr text 1 (1- (strlen text))) (chr ma))& w3 C! j! ~! a+ @* j5 H
- )
) m/ r' S4 y9 R/ l8 S" @ - );if
2 x- K( ?% b( D. S# y! Z( K* J - );if
: C( g4 r( S4 M1 Q - )# \2 J4 R! b$ C& Q9 @: _
- ;*********************************************************************, }$ @4 P7 G: X
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
* G% F" [+ _- i0 L - ;Neu doi tuong la text thi tiep tuc# Z5 N9 G+ C" U4 A4 [" D2 T! U
- (setq doituong (entget tendoituong)
4 r- S1 j" r S1 ?7 x" C - kieu (cdr (assoc 0 doituong))
; g. `+ q! `3 m7 n4 R7 o& p; q - canle (cdr (assoc 72 doituong))
' S0 Y5 J. Q! y, J3 ]' u - )
* `* @1 y( s \' u; S - (if (or (= kieu "TEXT")2 v0 ^: i4 D4 Y$ M8 Q
- (= kieu "MTEXT")
+ g5 m8 t! \- G* P - )
" j; u r$ h' J' J8 X$ S, N2 y - (progn
- \; B- f m' W - (setq textxl (xulytext textxl)
0 b0 x( n) W. _ - text (cons 1 textxl)4 @, \& ]& _% A0 C+ A `
- vitri10 (cdr (assoc 10 doituong))& M/ A8 L* E! f
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))' |7 ?2 p. T% ?
- vitri10 (cons 10 vitri10)
9 B: p; I$ \* l3 S; h" W0 t - vitri11 (cdr (assoc 11 doituong))
; l i! {1 R8 t4 z - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))! q) L0 g( ~0 ]3 c; {* O" A
- vitri11 (cons 11 vitri11)
9 r* i- N+ ~' q. L3 ^; K - dem 0
; u$ {( I3 X0 M" O7 r1 X - dsach nil3 f0 x' y) _8 w
- )
( Q; ^9 d& a# w- b1 [. x" C - (foreach tam doituong1 g" k$ \4 z2 X8 i
- (cond9 O8 C1 Z) a' @4 U8 C1 X5 G
- ((= (car tam) 1) (setq dsach (append dsach (list text))))
* s& I, M) @; |; r K8 E( |. F8 z- ^ - ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))& w# b. _2 ?# [, C
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
! x7 B4 X8 Z1 x - ((setq dsach (append dsach (list tam))))
1 I6 V3 H3 a. d/ A* o! A' u2 I3 G - )+ ]8 {: m+ d) K- _) J) O
- )9 L/ Z$ R6 k9 j$ W8 p5 m+ H
- (entmake dsach)9 G& b) p2 ] q
- );progn5 E& K) C$ b* @" a$ z; u# n
- );if7 ?0 u2 m9 N6 t( z) S: V, g0 x: k
- ); Z1 S. N8 A7 n% \( d
- ;*********************************************************************5 W) y% F3 f. d0 h. x
- ;sao doi tuong cu sang vi tri moi
( Z2 `. x) B: Y; E - % X$ ^* d! B, y% U" |
- (defun copy_dt (tendoituong )6 i) r. E' _9 u, l1 [
- (command "copy" tendoituong "" goc toi )
1 y" [6 ]0 O, X - );defun
4 N6 r/ `) m" n/ B1 b2 M - & P/ {( Z5 K; P! T9 Z4 ^
- ;*********************************************************************. s: }( G" m; E3 t: h
) K; D+ U5 \# B" G6 a, a- I7 \+ U- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)$ I4 L; t: `& ]6 X6 q3 {
- ; Khoi dau cua chuong trinh
5 j" E; I& J; d2 S# O/ |$ ` - (princ "\nCopy Inteligent...\n")( D/ q) @% x& c$ M
- (setq luuecho (getvar "cmdecho")
. {, G; i9 \5 i W - luu *error*
, Y6 E! c5 }+ R ] - *error* ketthuc# h6 y3 y4 V2 Q: U
- cumdt (ssget)
. M5 k; R* \/ [* K' \! x - dodai (sslength cumdt)
5 \ K# ]1 v, T* A - goc (getpoint "\nSelect base point:")" T" n, w; @- E! O: T% Q8 H
- thoat nil z: V+ l( t0 ~7 }
- dem 0
3 T' a( v3 t! s1 h - textxl nil
* H, h7 E9 t6 g y - );( m5 i7 s; D9 A9 t1 A
- (setvar "cmdecho" 0)
/ n! {" z+ O6 E" ?2 J - ; Loc ra duoc ong text de xu ly
3 }" K ]' I0 ` - (while (and (= thoat nil)
, Q' }/ o5 p( N* ]% @% S - (< dem dodai)
t S- J' j; K0 \6 q, W - )( m2 ? g! D O+ M) K
- (setq ten (ssname cumdt dem)
/ F4 b" H" ]7 f# i% {" P/ p - dem (1+ dem)* M1 Z7 a5 Q& {4 y8 U* }" q& C
- doituong (entget ten)) ? Z" k, u6 g g2 F1 K3 P
- kieu (cdr (assoc 0 doituong))
1 ^; v% D, `' m! { - )
0 x% d5 w# K' ~- C# | - * o* z! D6 q, t8 P( c; R
- (if (or (= kieu "TEXT")9 a& X W/ x+ m8 h' w# f
- (= kieu "MTEXT") ) ]3 A. n* W2 V7 ]* T8 ~8 _
- )
9 @; ^# t9 Z+ D, z - (setq thoat T
1 y. T# G" L. s0 R9 L4 g - textxl (cdr (assoc 1 doituong))
5 F0 ^* t; b B2 x, J7 [2 b! Q - )
& N/ E6 C8 D9 e1 ?, U9 }+ B4 C& V - )! W" M' j; {! u4 Z$ Z( G2 O
- );9 V! M% d& l2 ?8 {- }, j
- (while T
8 [3 }# v3 X% t: y5 j% T( J4 I - (setq toi (getpoint "\nSelect next point: " goc), y1 [+ d, f, q- J. J. X' k
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
0 G [$ {4 \1 T3 }+ b - dem 0
$ H+ G6 G+ h6 y" C - )
. H4 G. f$ m5 H* `% y3 x7 v' V - (while (< dem dodai)
) C7 ~) k8 r4 F$ L - (setq ten (ssname cumdt dem)3 [$ r! A5 G* N; R
- dem (1+ dem)% t+ f2 O& D$ d2 {* D
- doituong (entget ten)+ e2 B" G: b% `
- kieu (cdr (assoc 0 doituong))
W& R' D& F! `9 i, \ - )& m L- _0 E+ p
" ^+ q8 E, Z5 I- (if (or (= kieu "TEXT")
; w5 E. Z2 q& U# \2 G4 r) i3 X5 {: P. a - (= kieu "MTEXT") 7 ]2 ^. r# y# ?3 L* m: F1 w
- )
8 M' k" ~& ~4 v7 B$ g - (doitext ten)
1 q( H" g2 o0 d - (copy_dt ten)
& d I3 r# F' O* U5 j2 h - & C/ u! p7 b% t4 g0 h: M
- );if
2 f L. q* {+ @6 D+ u2 K - )% g! }6 ^' w$ I
- );while, P/ a" @+ h6 k; O
- (ketthuc); i, i4 ?: s4 `8 g' X5 J
- );defun# y6 F, F a v+ K' o5 ]' k2 W/ m
- (princ "Type \"DG\" to start")
/ ?' J* l. N7 e - ;Note: bien toan cuc: textxl vitrilech9 S" W9 \- F) m+ R) o, L# _7 _
- & K) J# U5 |& F( n6 m' n( k
- ;=====================================================================
3 z* h# ?# a8 e( | - ;;; PLJOINFUZZ.LSP X2 f1 r# Y8 Z1 T- R" \' V
- ;;; Joins lines, arcs and polylines using a fuzz distance5 s# Q2 ^1 E$ Q$ [
- ;;; If only one object is selected it tries to join to all objects that are possible
: @# |% L5 n' V - ;;; By Jimmy Bergmark6 X7 k) R3 @: q
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
# h6 v j. M% V8 Q/ A - ;;; Website: www.jtbworld.com* w' D: g/ H4 Y" S
- ;;; E-mail: info@jtbworld.com5 i% S+ G& \5 h- t
- ;;; Tested on AutoCAD 2002,2004 and 2005
( y9 b0 O1 X2 i1 I9 q - ;;; Latest revision made 2004-11-11
8 ^% V0 E: k4 o, Z2 J& b! V5 W - ;;; Minor code cosmetic change made 2004-11-13. p. J1 a: j. L9 { _2 N; _
- ;;; Bug corrected 2004-12-23( _. m- p& C4 _) L8 C+ h+ K3 T7 g4 x
9 J% f& ^5 g3 W& G o X- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
" c( h, ]. S1 K% O! F# k - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
) E/ l9 f; Z0 T0 U$ l( u5 w; l - (setq oldcmdecho (getvar "cmdecho"))' \) s' s- [3 D/ }4 M( ~$ \
- (setq oldpeditaccept (getvar "PEDITACCEPT"))" I# r3 ]8 U. [1 d
- (setvar "cmdecho" 0)) a. h* m1 V1 B( h5 }5 m3 i) ~$ {
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
{, l8 y: I5 g, L - (if A2k4 (setvar "PEDITACCEPT" 0))) q' V7 g3 W7 ^6 K: t. g
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
2 j5 w4 _2 l$ F4 T4 K* B+ ~5 G; s - (princ "\nSelect object to join: ")
8 J( ]2 z# z. k - (setq ss1 (ssget okObjects))- M- }4 X' T! _
- (setq fuzz (getdist "\nFuzz distance <0>: ")); G1 _% g% q1 o& N; V
- (if (= fuzz nil) (setq fuzz 0))5 l% E4 M& `' G0 X
- (if (/= ss1 nil)
: S+ K( h7 \4 J) H( s - (progn
$ A8 Q& V/ ]- L0 @) I - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
" T: l* D3 D- c- ] @: K R' I$ ~/ W' F - (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
$ F$ {9 Y9 M& Q* Q - (if (member objType '("LINE" "ARC"))- [$ e' @ B! Z- s, R
- (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")) q. s: f" D3 x! k+ _- X$ x, Y$ h `& {
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")% a! E1 j0 ]3 `0 H. V& q v" U
- )
' ~% h0 g J, @1 Q" h% ?9 |; U7 H - )
6 J0 ?( Q4 S. E& I' x - )
: e1 S% w# C F* L - (setvar "cmdecho" oldcmdecho)$ \9 M7 q- f2 G1 O$ i* o
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
8 ?. y0 r; H, T. Q - (princ)! k" K; k! W9 W: Y
- )
$ }& _8 A: r9 I, |0 U, y3 y
/ Y/ Y: }' B' D1 ?- ;===========================VE CAO TRINH===========================* u2 }% T7 k6 a U! ^. c
$ ?. b/ f6 Z/ Q8 i- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
( `3 Y0 ]/ y* M$ x0 K. @6 F - CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)* q# R. j! ^2 G5 i( S$ i) J6 m
- (SETQ OLDERR *error*
- h* s( R7 [" P0 i - *error* loisb)
7 C4 r- C( [8 ?5 w - (command "layer" "m" "dim" "c" "" """")7 ^6 F% ?2 t. u( \! W; k
- (SETQ CMD (GETVAR "CMDECHO"))
# {- P& Y( ^: P3 O. k1 n" n' _" C - (SETQ NBC (GETVAR "CLAYER"))
4 ^+ X! S2 V) E8 e+ y - (SETQ OSM (GETVAR "OSMODE"))
4 e4 P% x8 _' y; }! X; ^ - (SETVAR "CMDECHO" 0)
5 l% Z# ?( @4 ]( v6 s$ _ - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
+ Q, o! g1 W" }) _: L/ z - (SETQ TX (GETSTRING "\nCao trinh:"))1 h5 d; [9 T# p& I" Z: w9 G
- (SETQ FCH (SUBSTR TX 1 1))
2 t2 Q6 W. f* s3 c5 ?: S - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
& B0 K& k4 R+ o5 d. k" ]5 v) ` - (SETQ CRST (GETVAR "TEXTSTYLE"))
& R# n9 N. E" ~. ]' C) D - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))* z! C! ~1 y# `5 S9 h Y
- (SETQ TSIZE (GETVAR "TEXTSIZE"))
! \. I+ ^1 y% c, ~8 ^/ E) g3 m* l - (SETQ STR (RTOS TSIZE 2))5 x9 R1 e; H e! s- [ m
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))' p/ _: g3 n* l4 X. Q" n! s9 m# c
- (IF (= RSIZE 0)
5 b( K! f7 z6 }% c7 F: V1 v, e - (PROGN
9 ?) n# w* l; n - (INITGET 4)) N" i$ B4 }/ {! G( B( x- U
- (SETQ TSIZE (GETREAL PRMT))
2 S3 d) E& N! p - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))+ O7 a% }& [% X% ^3 E
- (SETVAR "TEXTSIZE" TSIZE))8 Q; P, D2 U; u) F" ?
- )
( p9 W, @: p M" L4 {5 P& M - )1 j: v5 `+ }0 d; z4 |$ i
- (PRINC)# x5 H* N2 V1 S$ r3 K
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))% W o U0 z6 G! H9 C
- (SETVAR "OSMODE" 0)
& z5 d# C5 B$ q3 [ - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))! J: Q2 T# B5 ?4 U/ i
- (SETQ NPI (/ PI 2))
+ c% |/ v" c9 I: w - (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))5 c3 e* v& c) b4 r
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))9 ^5 O- A+ `( |9 j1 i( [0 X! s5 |
- (SETQ PT3 (POLAR PT4 0 (* 2 TL)))4 s2 s$ c6 ^, l! f3 c) d1 I6 S
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))5 F S1 N* k' }
- (SETQ PT6 (POLAR PT2 NPI TL))
/ }% c6 A0 y; L; Y - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))- X T: h4 r% e% p
- (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
% t, V/ D& Q( D! n/ _7 C3 n2 b - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL))) E! C: @' J1 a6 u+ H, S
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))5 A( Z1 N3 \5 q( l9 }
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
, ?% r ~+ Y( F: i5 k8 c: A - (COMMAND "COLOR" "7" "")6 R+ ^' h; q" o2 ?: |; J7 m
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
. @, x- m/ O" C% U - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX)): ~: f* m5 n, I) u
- (COMMAND "COLOR" "BYLAYER" "")! W2 ]& n# i$ @8 f1 M0 Z
- (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")- }1 N; M$ o! S' Z& ^
- (COMMAND "COLOR" "BYLAYER" "")& e8 Z+ J- _) O" @9 B' k" U4 z
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
% Z- i% B$ w3 L - (SETVAR "CLAYER" "0")$ h4 v, `! t6 d
- (command "ddedit" pause)
- U; L( G! K. h8 z. B \/ Z4 I - (COMMAND "COLOR" "BYLAYER" "")# m8 V( m$ T; F+ g$ Z) m! Y# N
- (SETVAR "CMDECHO" CMD)
F; R& `* ]; t - (SETVAR "CLAYER" NBC)
8 F2 V9 u4 O4 P/ R# j - (SETVAR "OSMODE" OSM)
( Q5 J4 n! }; y3 N - (PRINC)
% I2 g4 _: x1 c2 s - )
/ {' k1 \+ O8 X! ] x - " ^) Z7 b! p4 w, O4 U T2 L$ F2 z
- ;;; =========================== VE NET CAT CHEO (GC) =============================
& q6 ^( e6 U8 b* O d$ j- @5 O - . E- p* i- J5 E: n; k+ `( L4 b: V
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
. `4 i! l3 _9 | - (setq x (getvar "osmode"))
$ Q4 a4 q, ~, m+ O: | - (setq p1 (getpoint "First point : "). j; T2 i: @% V( K$ O ]0 {+ u
- p2 (getpoint p1 "Second point : "))1 Z# f% ]+ P1 h! Y; N3 y& l
- (setq l (distance p1 p2))
0 R. b1 J3 u z - (setq p11 (polar p1 (angle p2 p1) (/ l 5))2 ^; d* F9 o8 k/ G) b5 {' U0 J
- p12 (polar p2 (angle p1 p2) (/ l 5)))
D$ A# Z* G+ M - (setq ang (angle p1 p2)), N" L/ d- h g y
- (setq p3 (polar p1 ang (/ l 2.5))
' c) K& ^6 V3 e* _9 d - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))/ v1 D1 E4 _6 A- e* K7 c/ n
- p5 (polar p3 ang (/ l 5))
3 C% S$ w% W9 s* E5 s: [ - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))2 L( ~! {2 _+ d ]* V4 Y) d2 D
- (setvar "osmode" 0)) b. Q5 j" V. h- r$ r
- (command "pline" p11 p3 p4 p6 p5 p12 "")9 W, U& v' Q* M. C
- (setvar "osmode" x)$ O) A3 ^( l6 z5 l- P
- )
5 x4 T- j- K( b$ a, C' N - ;----------------------------------------------------------------------------------: ?' j9 n9 z: D' m$ r
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
+ e" I6 A9 U M7 ?3 _4 ~$ f- } - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))9 h' J( Y$ b# H7 |* s# r1 n/ X
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
; |; X$ J) Q5 c6 B: J3 Y - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
; k1 ^0 g d8 B( K# i' |7 r - (setq sb 50.0 sh 200.0 se 20.0)
- f7 U+ ?4 f; x2 Q* Y, Q - (setq ang (angle ps1 ps2))
' c8 b8 k2 ?3 v a( d. Q - (setq pf1 (polar ps1 ang (- 0.0 se)))# B# w* l S% _2 {
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))& G6 v, L y0 V
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
$ j. y4 V' a+ M5 R# r - (setq pf5 (polar pf2 ang sb))( v0 W5 w# f1 w; o& T5 y
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))# m- Y$ y' e) o9 @2 C
- (setq pf6 (polar ps2 ang se))* r3 I$ R* i- L
- (setvar "OSMODE" 0)* a5 G' I( s) j8 e9 h, E
- (setvar "BLIPMODE" 0)
& Q+ y7 z1 K! E) w/ F, X - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")! v" _: z4 j5 u8 ]) N& }9 i9 g- z# E+ h
- (setvar "OSMODE" 703)0 G4 v: [9 N! d
- (princ) )
0 j' c9 `/ y( m) `/ W4 f, S" L - ;----------------------------------------------------------------------------------/ G$ b+ d N6 h5 H9 k
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6; }& W- A- q" F2 y; l% f
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
8 V) P, `9 N E+ }5 J: g" A - (setq ps1 (getpoint "\Chon diem thu nhat: ")). ~2 T+ d$ d4 @
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))" s' ^! `, M0 Q# X# w7 w0 S( l& x
- (setq sb 100.0 sh 150.0 se 20.0)2 l" Q4 Q" a* E& T% ~4 Z
- (setq ang (angle ps1 ps2))3 d. ?0 [1 g+ M: F& ~' g) j; |
- (setq pf1 (polar ps1 ang (- 0.0 se)))
4 d: _2 z0 \* I/ N4 \- O - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
' e) s! q3 g' | - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
6 e5 @4 W X1 `( a; q5 _ - (setq pf5 (polar pf2 ang sb))5 {0 E" n8 P! H& [, t. Y0 p8 A7 W
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))/ h' ]! q; `; P" B
- (setq pf6 (polar ps2 ang se))$ O6 E5 `' ~! @2 G R/ b# f7 i8 x
- (setvar "OSMODE" 0)
1 m) S+ Y6 n! ?/ m - (setvar "BLIPMODE" 0)
* [4 ]" K) l# Q5 D/ \ - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")# J! w3 z$ |/ f8 c: d- u
- (setvar "OSMODE" 703)% Q; L# t0 }$ q; | l& N9 a
- (princ) ): B! w/ e+ Q; g3 p! @
- ;----------------------------------------------------------------------------------
! q0 |) Q' ~( _8 x4 w - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6) q2 O4 Y+ N0 U1 z7 l4 D2 R
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
2 R+ j$ \; g7 i9 e, n - (setq ps1 (getpoint "\Chon diem thu nhat: "))
" _3 p3 S$ n, t9 `$ A - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
; t: v9 _; G' b# _$ c: l4 h) k% _* r - (setq sb 100.0 sh 250.0 se 20.0)
3 m: n0 n# _0 Y! T. Q# R9 H6 P - (setq ang (angle ps1 ps2))8 I" p/ Y$ g; @2 G
- (setq pf1 (polar ps1 ang (- 0.0 se)))
% N% ?+ F* d. O4 A3 |6 y5 E7 G% u - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
, t' E1 ~2 ]/ h2 s - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))0 |$ @: j( i; d0 E5 j2 W/ l- O
- (setq pf5 (polar pf2 ang sb)), \' P9 `6 {7 I3 u( ?4 l2 m
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0))); I. b* w2 l0 ?
- (setq pf6 (polar ps2 ang se)) b, X' F/ N# e
- (setvar "OSMODE" 0)
( T+ W/ ~8 j/ n9 O$ k' | - (setvar "BLIPMODE" 0)
: U2 | ]: u# c. t) C5 n9 L4 [ - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
' x* c$ J2 w: U; O7 G - (setvar "OSMODE" 703)% j+ Q) ^! @/ M% B- X
- (princ) )
, x, G2 W: C L8 Q
9 ], O& Q: j$ y4 C% o- ;==================================================================================
% \1 R- r$ A0 H6 p o) M! t - (defun c:ang (/ ent pt1 pt2 ang)
4 i3 m* }' P( i7 N5 L9 e% D - (setq cmd (getvar "cmdecho"))$ ?2 c& |9 e' g# ]* w" o
- (setvar "cmdecho" 1)
s V+ M. h/ R' e# v( O" N: a$ l - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))( B4 H( Z: n: d% x
- (setq ent (entsel "\nChon duong thang:"))
6 K1 h+ f4 s, N6 _: T - (if ent 6 D) O; s$ m e, e
- (progn
4 Q; j! x! Q- ~. E. y$ V - (setq ent (entget (car ent)))
6 m4 N* W6 S0 f: q- n - (setq pt1 (cdr (assoc 10 ent))): `$ i* M0 H7 r- Y7 B! H
- (setq pt2 (cdr (assoc 11 ent)))3 n, x. _! z4 W2 O9 M5 }, [) ^
- (setq ang (angle pt1 pt2))# |$ `" D3 z5 r, O
- (setq ang (/ (* ang 180.0) pi))6 q/ v9 W" c; R1 Z2 M; k
- (setvar "cmdecho" 0)
1 S }2 \ |5 N0 b6 C6 t - (command "setvar" "snapang" ang)
& H( y' y8 z4 U( Z9 u; `" ^. i4 ~ - (princ "\nGoc cua truc toa do moi : ")
0 F. l7 U# d4 p - (princ ang): z# S3 }8 P6 T- ]
- )
* J; m# P( u r0 e" B- I' b - )
; m, }3 `) Q8 B7 G5 ^ w9 D - (setvar "cmdecho" cmd)
{& Q. c9 X8 ? - (princ)0 z. ?# [2 ^- j1 O% g4 e; H
- )1 O! B O: T4 R. z. H
- ;==================================================================================
/ u' A: j: f) [% l& w2 y4 ^7 m" l6 o - ;============================== KY HIEU DOI XUNG ==============================3 g) ^7 R3 Q; T& k9 j
- ;==================================================================================6 l8 t0 f; p0 Z4 g R: l; `- S$ p) {
% r4 M1 f9 {: ^) Q: v* E; q4 ~: h6 D- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9
2 t. N2 b+ s4 K( w- X1 [ - SZ G45 G135 G90 G180 SS loi)! r8 o5 a; J7 x" g' k
- (defun loi (s)! m+ U3 T5 |3 _$ B
- (if (= s "Function cancelled")$ F5 s' I$ f. {* c: q; J: K! F ~
- (princ), A$ Y/ x$ B$ u/ v6 l r# n1 {" T
- (princ (strcat "Error:" s))4 j; R3 q1 T1 Q" S7 q9 I
- )3 h* l8 H2 L* l- S0 W7 X8 C! K/ H/ h
- (SETVAR "CMDECHO" CMD)
+ P/ B) E4 L2 Y1 [" ?' ] - (SETVAR "OSMODE" OSM)2 ^1 R' N( |5 l2 ~: z, |
- (SETQ *error* OLDERR)1 \% e( I; j6 c' {3 f
- (PRINC)9 g( e2 ?6 p* c
- )
3 C: N8 s0 [0 y1 C' ^9 A, W - (SETQ CMD (GETVAR "CMDECHO")). x7 o: @% g. u/ S% M
- (SETQ OSM (GETVAR "OSMODE"))
# [9 g. W5 W: |! ? - (SETVAR "CMDECHO" 0)
; ^& @$ @1 d! X" K3 [ - (SETQ OLDERR *error*, I$ U3 L+ q2 i
- *error* loi)
# T0 ?3 ]9 L: P0 M - (SETQ SZ (GETREAL "Size <1>:"))
% S* N+ R- b: L0 }2 O3 b; l - (IF (= SZ nil) (SETQ SZ 100))# |) [# J9 r$ {) G
- (SETQ G45 (/ PI 4))
- V" b! V0 W5 C2 a5 g - (SETQ G135 (* 3 (/ PI 4)))
( T; K& ^& H! H# V' a8 X+ K% V - (SETQ G90 (- G45 (/ PI 2)))
+ g" {0 f8 X6 m; U+ r9 B - (SETQ G180 (+ G135 (/ PI 2)))- \/ `/ t0 C% Y( C* U1 P2 q# j
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
7 i, H z' J2 [$ j6 e W0 T - (SETVAR "OSMODE" 0)
7 Z9 k" S) S) t! A - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
' G" ^7 \8 X/ B' o - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
, {& s, E' u+ g P3 T9 h; R - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
+ f! a6 r& z& V4 R3 x" d - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))% N @* _: G* o; J
- (SETQ PT6 (POLAR PT5 G180 (* 2 SZ))). m3 H) a" k% V, h5 `0 t6 l
- (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))5 m8 b1 H2 E$ F
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
. [% t* W: H6 Z0 J/ M5 x% v* o - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))+ j: I1 i% g' `. W) J% T% ^
- (PRINC "\nGoc quay:")2 R% j- q/ s4 i# s
- (SETQ SS (SSADD))
4 U1 \; M+ G5 V+ h. x: R - (command "layer" "m" "Dim" "c" "" """")7 E7 Z2 _) v& G: m. K. f( y4 } }
- (COMMAND "COLOR" "1" "")- x3 B( T0 {# J% Y b
- (COMMAND "LINE" PT8 PT2 "")6 G; B0 G, d1 `; T
- (SETQ SS (SSADD (ENTLAST) SS))8 A. L2 m7 T& \ |. N7 h
- (COMMAND "LINE" PT9 PT5 "")
8 W7 G, \/ y1 y - (SETQ SS (SSADD (ENTLAST) SS))% c' h" ?# d& _: v( D7 @: G g
- (COMMAND "COLOR" "1" "")) g+ ?; i* l M
- (COMMAND "SOLID" PT2 PT3 PT4 "" ""), ~' _: r' u% ?- O% D1 K
- (SETQ SS (SSADD (ENTLAST) SS))- D! U6 j6 b5 U$ p0 h0 O4 Y
- (COMMAND "SOLID" PT5 PT6 PT7 "" "")
% R% E# @4 c t8 w" J! k - (SETQ SS (SSADD (ENTLAST) SS))
5 q7 H. F8 Y2 X! n4 d/ \ - (COMMAND "ROTATE" SS "" PT1 PAUSE)
1 K' U" U: |# _! J* b* m- z - (COMMAND "COLOR" "BYLAYER" "")6 X% o5 Y" U5 g
- (SETVAR "CMDECHO" CMD)9 l7 T$ G+ C% b |0 B D4 h% c9 _1 i
- (SETVAR "OSMODE" OSM)3 s/ O1 [3 i! v5 V8 Q$ z
- (SETQ *error* OLDERR)" H& N) a& A5 R% N
- (PRINC)
8 ~5 A: R$ [/ m2 _ - )* Z0 A. D2 H8 z
. g: Z$ ?5 n: G0 k- ;==================================================================================
4 f0 u6 x2 W0 \. Q3 e - ;================================= KY HIEU TRUC ===============================3 x) G% i2 O" \
- ;==================================================================================
I. D0 V/ a$ D* N( |. Z2 I+ X - 0 z. H. N/ H: H0 f2 B4 ]. a* c
- (defun C:vetruc ()
7 D+ S* h$ n# v4 {$ C! i - (setq bk (getvar "USERR3")). t& b3 O. H; l' Y3 A
- (if (= bk 0)8 d( H* G n( d6 J
- (progn
8 U6 P0 |9 m* V: W, y - (setq cont "1")
; U2 {+ S9 x6 _3 S8 R: W3 h - (setvar "USERR3" 1)
3 F$ i. |6 D) o# v - )
4 c, y( w9 c- F3 j5 \6 d$ x - (setq cont (rtos bk))' o; C3 Z6 L% x C; c3 E* |- ^
- )- n3 _& e( X, m0 J
- (setq pt1 (getpoint "\n Nhap diem dat:"))
% ~! i+ y O8 S) W0 r O. v* {/ e+ B - (command "layer" "m" "Dim" "c" "" """")" Y# E& K# L/ l8 {7 u+ A' @. s
- (command "osnap" "")% h. C+ W& b; o1 g' y
- (COMMAND "COLOR" "7" "")
# J/ q2 U7 C5 N1 d - (command "circle" pt1 150 "")
4 |4 _+ W- I0 h! U/ J4 N - (setq pt2 (polar pt1 0 150))
7 H5 Z/ V- j9 n, z - (setq pt3 (polar pt1 (/ pi 1) 150))
0 W/ j( W$ s2 L7 ~ - (setq pt4 (polar pt1 0 300))5 A% r# @+ J- }
- (setq pt5 (polar pt1 (/ pi 1) 300))
% q4 C6 }" j5 L; \7 h* n4 Q) N - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))9 Y$ [5 r# ]4 \- ~- {
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))& j5 M! o9 O* ], m% h! P$ M7 |
- (setq pt8 (polar pt1 (/ pi 2) 150))0 i: a3 U6 O1 V$ N+ t8 b: V
- (setq pt9 (polar pt1 (/ pi 2) 300))4 d4 S, z1 r1 V7 ?9 Q) z
- (setq pt10 (polar pt1 0 150))
+ L8 k6 _! \( U) z+ Y( F - (setq pt11 (polar pt1 (/ pi 4) 150))
. Z( [* R7 K5 o" L- q - (COMMAND "COLOR" "BYLAYER" "")5 J# C( B/ J |' m4 i, H
- (command "line" pt2 pt4 "")
3 D+ m9 y7 T* Q3 |7 ] d - (command "line" pt6 pt7 "")
1 f& ^ b; u: [8 ?# h |1 r - (command "line" pt3 pt5 ""); J( I* R: a& e* d2 \/ W: m. [
- (command "line" pt8 pt9 "")
* I2 _: f/ e# l$ ?% U/ [ p/ g( ?3 d - (setq dk (strcat "\n Size:<"cont">"))4 f7 d* ~5 p( q+ F
- (setq bk (getreal dk))
; i! O$ U8 ? g! U$ \2 o - (if (= bk nil)
+ ]" U6 n3 ? d - (progn- d1 P/ w. Y8 E1 }, B
- (setq bk (getvar "USERR3"))+ _8 m. _1 M6 V. n$ d o, d
- )
1 |- w6 v; W2 Q' v. A. B5 P! H - (setvar "USERR3" bk)2 }! P, P [) [" z/ J. b8 N
- )
+ q: h7 N4 A- g j - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")9 I/ g, [( l( d- s) }* j; e
- (COMMAND "COLOR" "7" "")9 y! e/ ]# ?% U, ?, e
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")6 x7 B, ?, P) _ x
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") 2 }5 ~: T+ U0 G1 B3 _# W3 G! k: r
- (COMMAND "COLOR" "BYLAYER" "")
: d; j: M$ a- g( W - )( M8 `+ K# |( L8 r. l
$ P8 @8 N9 \0 y+ G, o" Q8 j5 m) N- ;=====================================================================6 T9 T1 x% t& Y5 F a( h4 p6 K# c( f) k
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
8 B6 t6 O* L: g/ u3 { - ;7 k5 c8 P: A& i% @9 W
- ;Jeffery P Sanders
9 _7 K) v; O7 K3 g - ;3 z$ l$ h6 x( t6 n1 }, D
- (defun C:CA(/ en enlist tx newtx cnt tp asc note)% F) T; u- h' D& S! v$ l
- (setvar "cmdecho" 0)/ `2 U0 F; _. t. @' l: ?* Q
- (if(setq en(entsel)). a) [' C& j- `( d" b( `7 [% f0 o
- (progn9 U8 e# \8 @, l8 u8 r2 S. X
- (setq enlist(entget(car en)))
7 D6 w5 ?0 n( K6 d, J - (if(= "TEXT"(cdr(assoc 0 enlist)))6 D$ L- F$ W7 b% K: w; m5 p
- (progn
. J/ b% A* R" t; V6 W/ L - (setq tx(cdr(assoc 1 enlist)). m) Z9 f; I7 z" \ Y# Y
- newtx "" cnt(strlen tx)
. A- U; @* c' w' i - note "\n...CASE Reversed. \n "8 P, a2 n; Q7 x; [0 n2 Z
- ). j5 g6 f5 v6 T$ g
- (while (> cnt 0)
- @! i9 @- Y: b% X% i - (setq tp(substr tx cnt 1))
/ M8 T1 G0 [) b6 W - (setq asc(ascii tp))" G. v, N. G. N# `
- (if (> asc 96)( T1 ^/ i# A- q% { {) u
- (setq tp(strcase tp))) H: ] u2 G! `) h: ~; Y$ O
- (setq tp(strcase tp T))4 }9 e w# n+ |5 @7 g/ W
- )
/ ?' e0 n2 ? q; H8 O - (setq newtx(strcat tp newtx)); @% h2 h7 j" X7 J
- (setq cnt(- cnt 1))( Y- G0 z6 G" e! g7 o) h& ?
- )# p5 v B" K* O ~( P
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
8 \5 M# f0 ?7 |0 {) `8 x6 A - (entmod enlist)4 ?" P+ h Q/ Q4 j4 r0 T1 M j
- )
& o& }1 d0 v2 b3 W' E& A7 L - (setq note "\n....Text Only Please. \n ")* B/ M I( }; B ~6 b2 `( }. I2 q
- )# U8 j6 ]1 Z. J1 L
- )
0 S7 v2 T7 G# c; l2 K0 _. A6 X - (setq note "\n....Nothing Selected. \n ")
$ r: x) B5 N$ Y/ s2 Z - )) Y4 `" S. I0 D' w% c: M7 z
- (setvar "cmdecho" 1)
7 f6 V- S! z3 G& e - (princ note)
: q6 `/ u/ s+ j1 ]- ^# s - (princ)
) f+ `1 `7 T' l" p - )' Y9 _1 ^: i* y" q# i4 ^: s
- & P2 c4 S; ?7 c9 D( C2 B
- ;=====================================================================) r# A5 W2 f5 G5 E# c
- ;==================== NEW TEXT STYLE UPDATE ==========================
4 C% Q- O( _# v" ~/ g - ;=====================================================================0 z5 G; M3 a( ]5 O C' r
- 7 ~ @; j9 r/ I: L7 D: ?! m& E
- (defun c:nS (/ tdt ssdt sodt index)
: n6 w2 P. |( o' p; u/ G9 }% @ - (defun ObjName (ssdt /)2 f' d$ @! J8 z2 v% Q
- (cdr (assoc '0 (entget ssdt)))) O1 O& E4 c* ~" d) M7 i0 q2 q
- )5 R8 [% M p7 e7 J2 l/ `
- (defun MoPL (ssdt /)
, H& `6 J K+ s6 z/ h - (= (cdr (assoc '70 (entget ssdt))) 0)' T$ j( _& M. C: K
- )
4 O0 |) J* \/ ]/ N - (defun NoiPL (ssdt /)) Q9 t3 I. @# e) g6 f' r' c# P
- (if (MoPL ssdt)+ n; G5 J* x' I! i, j% x
- (command ".PEDIT" ssdt "J" "All" "" "X")( c! S. Q! v% o R) ~' j( O
- )1 P: @; U' P& r8 s# n
- )$ [* J) T2 G8 h7 D( M5 c& C
- (defun NoiLC (ssdt /)1 U' ^' N+ y# R9 }' a% M9 I- V
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
2 a: I: p! X# E: E% c# S. ` - )" ~5 \# l9 @, d0 a" J+ z
- (setq. l1 D$ i) ^& \7 b- z6 ?
- tdt (ssget)
+ K' L* Q8 l8 X% U5 h - sodt (sslength tdt)
# E \3 E! i% u7 O. W - index 0
3 C7 S! b1 {2 ?* }1 B+ ~+ ~3 I - )! {! o" ^) ?- r6 H. W( K1 n/ y
- (repeat sodt6 @4 n# V; i) [8 z6 y
- (setq3 g5 ]$ s- V% `$ o% q
- ssdt (ssname tdt index)
! o- A9 X& k. f! `9 u - index (1+ index)
5 s( _$ [/ @) _. y3 o9 B9 ? - ): e$ C9 j+ U; |4 b& t) G5 \, v
- (if (or (= (Objname ssdt) "LWPOLYLINE")/ N3 f: M) S+ T2 _) X: z$ M0 w
- (= (Objname ssdt) "POLYLINE")
- K: |7 R5 P. V* o& b - )9 G+ c' \# o9 B
- (NoiPL ssdt)7 ^3 x; }! K( }: q( [
- ): x/ e0 O8 v) @) c4 q
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))* }' @0 d0 \4 D" K0 `
- (NoiLC ssdt)$ k" s6 e" {" f
- )
9 }- J0 j9 N+ L& |) H - )% e+ K; i+ {8 i$ H" D2 F: S5 z
- (princ)
- r$ c5 D5 G0 t. V5 d, U: r9 n0 ~9 | - )& j# z( L% u/ ]
2 Q$ E2 k! k2 [- ;=====================================================================& a- ^7 d8 `4 B9 [5 e
- ;;; AREAM.LSP" L. |9 H! O% F' T0 s& I
- ;;; Function: Calculates the total area of selected objects% q% }) G2 F1 |$ K6 @1 e
- ;;; By Jimmy Bergmark7 C9 w n% f' u' Q$ @) r
- ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
7 f! [1 r! z6 |1 C k8 I - ;;; Tested on AutoCAD 2000 Q* P* A! h0 T! u9 m4 Q6 L
- ) W' a0 G4 f7 L7 b0 x% \
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
) o' u: q. g4 @' }0 `) t6 r - (defun errexit (s)
1 s7 u# ^8 ?8 l6 S9 X8 ]4 u2 n - (restore)
- }* v- ?, K& N - )
- ~$ |4 n/ c, P; Q0 E8 S* o7 w4 }
+ t1 y: S% t# q) R5 i% d- (defun undox ()
+ L) q! {; B0 E: V. I. [ - (command "._undo" "_E"), l0 D- f" s. F5 x. _! z, G& n
- (setvar "cmdecho" oldcmdecho)# `5 B5 q, |* y# S! J
- (setq *error* olderr). j! C2 k& d. v5 S# L
- (princ)
- B5 [& d+ G: W0 C5 i - )
2 l3 n& w/ y1 x
1 c$ M1 L; p! B2 D- (setq olderr *error*% O7 H0 X# k0 x2 v
- restore undox4 `; Y9 u. W+ W- u: P
- *error* errexit
! m) K, {8 h4 g: |" m& [ - )6 U& a( G# U3 o/ T7 x) y7 L/ I+ b
- (setq oldcmdecho (getvar "cmdecho"))
' g3 |7 G# b2 O - (setvar "cmdecho" 0)
3 |( `" y. Y8 j4 ? - (command "._UNDO" "_BE")
m. ]3 |& i/ S+ G8 ^9 I - (if (setq ss1 (ssget '((-4 . "<OR")$ v9 a4 k6 ^, h$ j* X
- (0 . "POLYLINE")( `0 q- F8 { [$ F8 l4 u0 S
- (0 . "LWPOLYLINE")
! f p+ g7 p4 K% L3 d8 i4 I( ]) h* Z - (0 . "CIRCLE")4 C5 X, b1 t% L$ W2 c
- (0 . "ELLIPSE")
- |; D* z$ n4 V- u6 i: c - (0 . "SPLINE")( C& ?0 x* B0 W9 W s- W& _
- (0 . "REGION")
: ]$ }. P: h; D2 {% M - (-4 . "OR>")% l X0 c4 J( s8 j
- )
, O' |& q( _! ^6 f - )
+ a$ G4 e3 o" V# N, a - )
! o1 }) _0 e- C9 o6 d - (progn
9 Z6 G1 y1 o" n" b4 c( ?3 K: n3 y - (setq nr 0)( ^* F7 W6 r$ i# v" Z7 b3 Z
- (setq tot_area 0.0)
9 ]8 ?+ r" K6 l9 L. |! L - (setq en (ssname ss1 nr))
: L; D. s3 p6 ~+ v" t2 t - (while en) |9 K) ^0 z! q% {! _6 z, g* G, P
- (command "._area" "_O" en)5 {$ u }$ Z' ?3 w
- (setq tot_area (+ tot_area (getvar "area")))
: V/ A: \! |4 l2 s2 B - (setq nr (1+ nr))
_# n |8 F1 J2 S2 G$ V - (setq en (ssname ss1 nr))
# { \5 [) M' a3 w' c3 j, ? - ). I5 L2 \1 `! Z% Z k. x' l1 z
- (princ "\nTotal Area = ") q, E( _" i$ G6 [$ p. \
- (princ tot_area)
. m* R1 k7 b) ^ - )" t# L/ }0 h4 f7 R$ W
- ). |2 A. Q: c8 @( O# K4 e/ P
- (restore)6 l' w7 Y( l- r% f% u; S1 X* ?
- )' S7 G4 A- f; J0 s4 j
$ F: Z- C, w8 {( N+ U- ;=====================================================================
9 q2 F9 c* s7 |) ]7 a - ;;; By Jimmy Bergmark
3 c' y+ H& ~& O. @$ I$ o0 ] - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
; ?5 F& n! V! Z# [- Y) c - ;;;
J ]+ L5 i9 P' N( I4 U2 C X& n - ;;; Created: 2008-03-31
7 J' H' [8 k" |/ L - ;;;2 f- |( J b5 ~1 j. z, I+ b+ M
- ;;; Convert Attribute definitions to mtext) N1 o* x$ r+ s( ]# s
- ;;;
# s: t( t* I/ C6 Z& T$ A
7 l% v1 y, v! U$ H3 E- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
: k# y* [/ C8 g, Y$ L - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
- B3 E4 d% }8 n+ ~: y - blkcnt 0
3 A G9 n7 j& s4 y) I - ); N$ I! K* d2 V9 x0 C
- : C0 h- Q. w, J7 j7 n' {
- (if eset1
( q6 o# p6 v" [3 u - (while (<= blkcnt (- (sslength eset1) 1))* D p- `+ Y$ e$ U$ t% ?
- (setq en (ssname eset1 blkcnt)
' o* c: C5 W# e# T8 Q9 O - enlist (entget en)
+ y- B* A( ~9 g0 s4 ` - ht (cdr (assoc 40 enlist))
1 X# I+ f$ W, A: _2 K - pnt (assoc 10 enlist)2 a, b# |% ?3 n3 X+ G6 Z
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)4 O+ k! J* D# f8 J! A0 t
- space (cdr (assoc 67 enlist))' y8 E- U$ X# B& @, O" p/ a5 M$ d" r% j
- )
" B+ o% l. O% _6 F( l% N - (setq vl (list4 R2 J9 @; K! D. i" t3 k. o( `4 z
- (cons 0 "MTEXT")! U c/ U5 |7 C: [- L
- (cons 100 "AcDbEntity")
1 m& }# w$ x$ x& Y' K - (cons 100 "AcDbMText")
* F) O2 T# j' M3 W4 t0 K1 }! ~ - (assoc 7 enlist)
7 i: A2 ] B3 M( E3 i, H9 d r - (assoc 8 enlist)6 z+ h" }9 |2 \/ _. H2 J% K
- pnt0 [" ]/ @- N& y% C$ |
- (assoc 40 enlist)- W: \, T. [. L3 f
- (cond ((assoc 62 enlist))9 i$ g/ N" `$ _) ^6 w/ |$ |
- ((cons 62 256))
9 m/ V1 e5 L& j6 v - )# S0 }( \- W7 I' q
- (cons 1 (cdr (assoc 2 enlist)))
% K g; l" A" e, U - (if (= space nil)
2 b" r- _' L+ W - (cons 67 0)7 i, p& q2 |) v: E' j+ C7 l
- (cons 67 space)/ ~, E) v9 `$ k. J
- )2 J: M2 }4 O6 ^# f
- )2 S& L6 f' P) k# [0 N- c9 p
- )
# ]& }; E7 F* v8 y! _. r, F z - (entdel en)4 W9 F7 e* B* N/ j8 ~2 _
- (entmake vl)
2 U+ b6 @5 l! t" J4 ^ - (setq blkcnt (1+ blkcnt))$ _; l# i& T2 @- N
- )
) w# r( N) I* K/ p8 p - )
/ G& o* t1 ^& B3 u) b - )0 Y( T- l3 w- L2 B7 E
- ; c1 t9 P, ]+ r$ v8 }8 |
- ;=====================================================================
* I5 B8 T2 E+ R7 j1 w% X e& L
% J5 i/ \3 Q" K- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
/ C4 I( @$ |+ U9 K - ; Khoi dau cua chuong trinh
. p4 A* g; `6 f. [1 E - (princ "\nCopy Inteligent...\n")
1 @+ h/ I7 k( R% F4 | - (setq luuecho (getvar "cmdecho")& v% y0 _" ~4 T" b, h' F! Z% V( G
- luu *error*
, o+ @7 ?: x3 j( j; } i - *error* ketthuc( v/ H; |& S: x
- cumdt (ssget)1 k1 W0 f! a9 j j2 M6 [) {
- dodai (sslength cumdt). x b7 S9 c$ e% ^) p7 p
- goc (getpoint "\nSelect base point:")
' g) Z% G, ]3 s! K7 E2 I) V; Y& C - thoat nil/ R& t* K- ?4 _9 R# I& J
- dem 0$ E9 _! h% D( r( q
- textxl nil
. r, Z0 U2 f9 o7 @# h9 b - );
( t/ ~7 p" d; ^6 R - (setvar "cmdecho" 0)
/ c: @7 y! X& h, o; e5 Q0 p# H - ; Loc ra duoc ong text de xu ly4 i: z8 o# h/ x- O Y, K
- (while (and (= thoat nil)
, i! \7 f8 l3 Z: ] - (< dem dodai). `; a- \0 ^2 P- |: m8 x
- )7 [5 x- ?% J( N B6 z' U( j
- (setq ten (ssname cumdt dem)# u, u6 ?2 H- }, ?8 h& M: H
- dem (1+ dem)
1 N0 i- F* x2 x- V4 Y* q - doituong (entget ten). Z' L/ e9 d( H4 Q; y, X
- kieu (cdr (assoc 0 doituong))
3 ?# r$ ?' S, g8 R& N& B. x3 v - ); i+ A* U& Q9 f. m9 e2 z" ~8 Y! @ m) g2 ?
-
, M: M [+ a0 _5 |7 p7 g+ @ - (if (or (= kieu "TEXT")
8 ]: |' A4 x2 S# a" ~ - (= kieu "MTEXT")
9 `. K: e; N t1 w% t( z - )
" X1 i% X' j; M& X) `2 b+ `* r9 T& x$ i - (setq thoat T4 N7 _8 e! ?: p. x1 z( A
- textxl (cdr (assoc 1 doituong))
# H9 D9 R2 X) L" F, K3 s - )' u2 Y" b) c8 P1 l' A
- )8 X/ \- I0 Z4 v' ~7 m* c2 A( ]
- );' E2 D( j& f0 r$ z$ f7 d) w. b3 O
- (while T
- u3 M7 o* r5 u: Z& f. z7 H - (setq toi (getpoint "\nSelect next point: " goc)4 H* {9 V) p* B% o
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))& f& A# R$ D# h/ w& _% `* H% |
- dem 0
7 `# `. d: M3 g - )6 f: M I% o# Y
- (while (< dem dodai)
3 Z* `( j% a$ W - (setq ten (ssname cumdt dem)9 d' z5 }5 H6 p2 p' W) n
- dem (1+ dem)7 Z: E3 C. l! C7 @
- doituong (entget ten). B2 z B7 L: Z1 f0 I1 i
- kieu (cdr (assoc 0 doituong))
. b2 t, ^( h5 g/ B; Y( I0 m% @ - )
7 j6 j9 Z S4 g$ y$ g
7 r+ B0 h0 a( Q5 n W! @) g1 K- (if (or (= kieu "TEXT")7 b& p7 G3 C. D, W7 C& [5 h
- (= kieu "MTEXT")
, s; {3 Y* ^/ b! r; L - )
! x- V* N+ Q9 H' n% E7 i3 [ - (doitext ten)) a6 M+ [2 g* w% l, p3 G; O, o* c% `
- (copy_dt ten)
) i" ~1 J3 a# v
% m2 R% T+ w# d* E, C% B( q$ c9 Q1 O- );if* k* w! Z1 z, _8 ?
- )
' C: @+ f' s( {- B - );while
5 X: E+ a3 @& `1 n - (ketthuc)
) v* w# T1 d/ X! R4 T( ] - );defun9 Z# o; E4 b2 C/ p3 e t2 ~
- (princ)
5 N7 }& C5 z4 n% \/ ~ - 5 K0 q5 R2 }2 f
- ;=====================================================================
2 X5 I. `, m! s; T8 \1 ^/ l( h1 S - ;;; By Jimmy Bergmark5 a/ _3 T. ?, j0 m0 x
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved% h4 F) f( S8 X+ D5 }
- ;;;2 S% s% u% L/ h: P
- ;;; Created: 2008-03-31) D! M3 b5 U; O0 z# t
- ;;;
( C! a3 {2 ~8 D9 C* \8 | - ;;; Convert Attribute definitions to text
2 }, P' \" Y6 X# W - ;;;
+ ?# B( d S# @. a' H/ d - ! D2 E) i3 c. f5 ?! f: a% c
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
( a9 k8 f/ n v' q, V) T+ E - (setq eset1 (ssget (list (cons 0 "ATTDEF")))- L' Y/ B! p; y8 \" S% c& Z3 M3 ~- d
- blkcnt 0
0 R/ j3 W2 N) h r) _4 O' z5 G0 n - )
+ ?0 q" R* X: e7 Y2 ]- S: u - $ D' _+ j# Q; r" _8 [% i; d
- (if eset1
9 ~# j2 L6 B I/ ` x: r - (while (<= blkcnt (- (sslength eset1) 1))
. h; |+ m! j! ~: {) q1 k1 g - (setq en (ssname eset1 blkcnt)
5 X6 u- A R% i: Y6 V - enlist (entget en)
7 }+ @6 t0 v3 C - space (cdr (assoc 67 enlist))
' ~4 E3 N5 z+ [- L* k; O3 C - )/ \# R& s% ~$ y) m+ f
- (setq vl (list! L8 m; v8 y3 U% _ v
- (cons 0 "TEXT")
. F% w3 C3 G/ C& o6 Q' q3 J) w! i - (cons 100 "AcDbEntity")" A V; [* _7 y. @0 g _; d, W c
- (cons 100 "AcDbText"); N6 H- Z8 g: h& {3 O
- (assoc 7 enlist)6 j1 i/ l/ i6 p
- (assoc 8 enlist)7 e3 f% o0 c5 }) I
- (assoc 10 enlist)
1 C2 c1 I6 p7 D9 F1 K1 A, p - (assoc 40 enlist)
# Q' T y% D' ]& I" E% y: { - (cond ((assoc 62 enlist))1 ?- u: X# w2 c+ B+ `
- ((cons 62 256))1 Q: h+ s7 T+ I
- )
( U+ Y9 L2 v9 H/ f - (cons 1 (cdr (assoc 2 enlist)))$ L. g2 l: E/ J [/ O3 ^
- (if (= space nil)
; c) Q+ C( {8 a - (cons 67 0)/ V( t# b) X6 ]* H9 i
- (cons 67 space)
' N$ y) t8 [0 n+ e, h5 `# e) U - )- c" K% H2 }# P7 u. x e' O
- )9 g+ d( ~! L" r3 N- Y: U
- )$ }+ o' L. H- _! s4 t1 W- x0 w
- (entdel en) [. H( @4 C/ i$ G& ^8 `* [
- (entmake vl)
9 ~1 T. K+ T& U/ s" C# G" I - (setq blkcnt (1+ blkcnt))( V# N8 y( D8 U4 J3 A
- )
( j, x6 [+ f0 b8 J - )
8 {% P+ C5 Z" o* a+ { - )
7 c6 s4 W9 P. V' m1 f - ;=====================================================================
5 G# d; h1 }) `9 h- u* x1 V - ;============================ Doi Truc ===============================
- p8 |& I8 P/ j, P! O. B - ;=====================================================================3 B. ]( o+ f7 J" T6 o9 ~+ |! [
- ! ^0 M: O; V/ I
- ;=====================================================================% v1 K' y) T* a/ L4 ~- t' [9 Z
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
* O- h% w4 y2 V$ _, Q - ;=====================================================================: x& x W+ j5 m8 R# x. f. R/ v
- (defun c:ga1 ()
( C3 E3 s8 o+ j, i' e+ F' f - (setq a (getpoint "\nChon diem: "))
& X' @9 |: @! p+ @& H - (setq b (getpoint a"\nChon diem: "))7 b e4 |* X; `: J* [- b
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. A. L; X, o8 z) m) `5 I2 B - (command ".circle" c a)
! c8 {- D; p: a* w7 } - (command ".line" a c "")! G& @' V% \9 [% {5 ], ?
- (command ".array" "last" "" "p" c "1" "" "")" T+ U7 \0 x9 l+ q H& K7 U. z
- (princ))- |4 s7 Q6 u/ W8 s) V
- G% X( _. j* c* o$ {! U1 z. g- (defun c:ga3 ()* k. c( |; L' F2 P9 X% S7 a- a
- (setq a (getpoint "\nChon diem: "))8 F1 ]# O0 t5 h) B/ b
- (setq b (getpoint a"\nChon diem: "))
/ _1 T+ Q6 o6 ?2 m# ?: ` - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( _- h3 G' _) f A5 c - (command ".circle" c a)
# H! \5 ~: q( N" | - (command ".line" a c "")' V! I9 ?9 B6 x4 x' o% Y% N. V
- (command ".array" "last" "" "p" c "3" "" "")
9 l1 c% _' [- [8 i! Z - (princ))2 C! Y. J6 B$ B# u
) ]# G, V' |' h- (defun c:ga5 ()
9 x+ z" h) ^5 s - (setq a (getpoint "\nChon diem: "))
- `5 Z& s0 j5 v; h Q {5 w5 u( C1 v - (setq b (getpoint a"\nChon diem: "))
5 F% V- Q G2 F) J! d8 A4 N - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% ~/ }; Q/ w. G$ c- q, E5 {
- (command ".circle" c a)
2 |# A. C" o& ?* R0 d- \9 [7 T - (command ".line" a c "")
7 v/ s8 v' b# ^ - (command ".array" "last" "" "p" c "5" "" "")
+ Z7 O: ^- I" s$ U5 g: Y Q - (princ))
6 F. b( g1 ?( l5 \* z" U% S
$ ]1 f7 U2 U) e; d- (defun c:ga7 ()
& B' V3 t* p' r+ ` - (setq a (getpoint "\nChon diem: "))4 p: y6 i( k8 y1 h7 a( F& e
- (setq b (getpoint a"\nChon diem: "))% K$ S# a1 I9 b# u% L, R4 ?) v
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 x# @+ {. Q. ^+ q1 G8 z - (command ".circle" c a)8 K0 c: E0 v- N) z( l* K$ [. A3 Y
- (command ".line" a c "")
+ @% a) v+ g* i9 Q* _& U - (command ".array" "last" "" "p" c "7" "" "")( R1 I( k( D+ e
- (princ))
$ b8 E, N: j7 @# V1 R9 ~ K8 {: Q - 0 r; L5 x( d# S& t6 T6 c3 x6 u7 ?
- (defun c:ga9 ()& a& N) n, T y B7 ~ m( _" [
- (setq a (getpoint "\nChon diem: "))
2 ]! Q. g1 q' M% F7 k$ t/ M+ m - (setq b (getpoint a"\nChon diem: "))$ ~) i' ~) J/ P: O/ D8 P' V! X$ k
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))6 |9 W5 ]* t5 |% M
- (command ".circle" c a) J* C- ~( i& C& Y7 v2 o
- (command ".line" a c "")8 j4 B- p# c7 B3 y: n1 w+ N5 Y9 F
- (command ".array" "last" "" "p" c "9" "" "") r3 V6 t3 d( \( Y! H+ m) e! C
- (princ))) V' M! W+ y+ D0 I9 U9 [9 N: a
- * F" j% ?1 V+ ]
- (defun c:ga11 ()
, M4 U: w/ K- g1 @) t W - (setq a (getpoint "\nChon diem: "))
9 p" X. Q! `5 Q$ g3 S7 p - (setq b (getpoint a"\nChon diem: ")). ~7 A2 _3 N, Z) a8 |0 q/ u
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% C$ A$ h) Q9 O4 |& S- Z
- (command ".circle" c a)$ Z7 ?+ H% q' K1 y8 _5 R( o' }
- (command ".line" a c "")
5 K% v4 J | O - (command ".array" "last" "" "p" c "11" "" "")" ~! ^: A6 l! A2 j- k! L. s- a
- (princ))
& q4 Y) I4 b, i" ?( i `- J9 ~( z, z
, D4 e0 T( }" n7 Z" f/ q- (defun c:ga13 ()2 l* o( h+ }" q! g6 n" U5 H
- (setq a (getpoint "\nChon diem: ")): V3 \8 b z! f& I0 `
- (setq b (getpoint a"\nChon diem: "))4 G6 Y9 ?, I2 R# B
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))6 \9 r4 z5 X# f
- (command ".circle" c a)
K, O3 K5 }+ ?8 } - (command ".line" a c "")
4 F) u! c% N% F7 f$ c - (command ".array" "last" "" "p" c "13" "" "")
: L/ d$ ]$ F: @2 F+ N - (princ))7 P( [1 h$ ?! T5 y! Q2 u1 ?* R
- % U r9 @) z/ C( {* O+ K- V
- (defun c:ga15 ()
) M9 L4 |! I' D i) e/ H - (setq a (getpoint "\nChon diem: "))" L; k0 x5 \* Z
- (setq b (getpoint a"\nChon diem: "))' g$ v! D8 N5 \0 b) s
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 H/ ^/ I4 }4 L" N1 d; } - (command ".circle" c a)
7 \- m1 k/ w: ~6 U - (command ".line" a c "")
4 G" n) ]8 C( Z+ g8 X - (command ".array" "last" "" "p" c "15" "" "")+ e& y$ Y/ c6 d
- (princ))7 h' V; D: E+ B
7 o- W8 f: x) w6 L L! g- (defun c:ga17 ()% |# \% \' f1 L. C u W$ D* B
- (setq a (getpoint "\nChon diem: "))' T) [9 A* _ K6 ~3 P3 Z/ N
- (setq b (getpoint a"\nChon diem: ")), B! ^" D$ z( J5 s9 O
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 E8 F6 J" C- D3 P - (command ".circle" c a)# W0 e4 ~! J4 A- J* k" v2 m! O
- (command ".line" a c "")
' v5 o6 _" B( B. W g - (command ".array" "last" "" "p" c "17" "" "")0 h' w6 W; E9 m% V! w
- (princ))
6 j# H$ ^4 G m+ O! w
9 k5 ^9 P2 J. f: k, W8 b- Q- (defun c:ga19 ()9 m1 e6 N+ @# N
- (setq a (getpoint "\nChon diem: "))+ q9 I; [7 @+ s7 b! G# r( |
- (setq b (getpoint a"\nChon diem: "))) i3 E, O+ I1 x% z4 [
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))7 Q, i; F0 T0 E. l, o
- (command ".circle" c a)
' E6 w- m% x x1 M& k - (command ".line" a c "")
' l# A) D2 [. V* S - (command ".array" "last" "" "p" c "19" "" "")+ c& V4 H u$ L+ G2 K; A% p( y
- (princ))( N; d5 u; E3 ~' T# S( M+ O
3 \' s2 R6 }" n8 v' S! v" ~8 E6 e- ;=====================================================================
- S4 j8 U9 d1 h% @1 o" n - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
7 g8 t7 q$ Y+ z; [ - ;=====================================================================
6 ]1 y" C- n, O - (defun c:ga2 (): d$ }; q$ L3 z: k! m" d" q
- (setq a (getpoint "\nChon diem: "))! U& d" D" y8 e3 v) ?+ C
- (setq b (getpoint a"\nChon diem: "))0 B- [9 o6 [# {+ X
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 A6 d# E& z5 i$ A3 q9 }/ w
- (command ".line" a c "")
5 |2 k9 P3 S2 ^ - (command ".array" "last" "" "p" c "2" "" "")
3 Y: V" |' s3 |& V* l) m8 ] - (command ".circle" c a)- l1 l( _2 Q3 I( d) |& |
- (princ))5 w3 S( J% M$ B F' L! ]
: a8 C7 S9 k. N) Z+ s- (defun c:ga4 ()! E( t7 X/ U2 B
- (setq a (getpoint "\nChon diem: "))
+ y$ _6 K0 P/ E1 ]3 ~ - (setq b (getpoint a"\nChon diem: "))
% u: I ?9 g' A0 A - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, j$ `4 z" G: P4 y7 v - (command ".line" a c "")
+ ]9 V. H" B) y% R! j2 P" V - (command ".array" "last" "" "p" c "4" "" "")
+ q, K% e3 ?7 N& c4 Q6 s - (command ".circle" c a)
+ F: @! H2 H _ - (princ))8 m1 t+ }* p- C/ n! P
- % ~$ q2 v# |% G/ s) F. J* J
- (defun c:ga6 ()- ?' Y& t( N* W5 g
- (setq a (getpoint "\nChon diem: "))" ` V3 T( f: {8 C
- (setq b (getpoint a"\nChon diem: "))
2 X0 T B4 ?* O) Z% G - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ |+ e! I9 f2 @# M8 @2 W5 M
- (command ".line" a c "")
! ]8 v0 t& x9 a# @& i7 S* _ - (command ".array" "last" "" "p" c "6" "" "")
8 E& ]' d" }: B9 [6 h7 t3 G - (command ".circle" c a)6 @' Y0 N+ l/ l: e) L5 D V: Y- c
- (princ))
' p2 F3 z$ x* }; ]6 b \
f1 I( I$ R" Q1 d8 m0 B- (defun c:ga8 ()
; q1 H q3 o9 I- j - (setq a (getpoint "\nChon diem: "))
) n0 G, W; X R H4 H3 G8 l D" i - (setq b (getpoint a"\nChon diem: "))$ g6 a1 e, P9 U; I7 X3 ?7 m/ z% [
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% |9 F- v! b {+ I; O1 t
- (command ".line" a c "")# s. Q) Z; H% e( K
- (command ".array" "last" "" "p" c "8" "" "")1 U$ H5 ^, o' w% h4 N0 m k6 m' `- U
- (command ".circle" c a)
8 ]& c- U+ G: A9 B4 s! g - (princ))
! n) ~! P9 B2 L4 I7 _( y
8 \ F0 g m0 i7 n; ~/ z# D6 p) n- (defun c:ga10 ()7 V" P( Q8 \1 ~- i
- (setq a (getpoint "\nChon diem: "))
, p5 W; X5 { }6 Z/ L0 v ^5 s - (setq b (getpoint a"\nChon diem: "))
" |+ p2 s& q7 T% ]8 q6 d) W$ J - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% x% J& L2 f" {* n- B$ B2 ~ - (command ".line" a c "")
* T& M" d4 [0 c - (command ".array" "last" "" "p" c "10" "" "")
7 x5 T0 n. F% q - (command ".circle" c a)# G" k o5 g/ x: v
- (princ))
4 } {! R' o4 Q' l; e$ Y
5 J1 Z- J% d) g7 H$ N7 _- (defun c:ga12 ()* M0 J9 n9 N/ Q6 [
- (setq a (getpoint "\nChon diem: "))
. V6 t. k1 [& t( r) F+ s. C - (setq b (getpoint a"\nChon diem: "))
! I% t0 [( C L0 H - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 c4 L0 \0 @1 T: M: w( q$ S - (command ".line" a c "")7 l' \( k: j* d. e& x: t# i, k; F
- (command ".array" "last" "" "p" c "12" "" ""), Y' S& Z d# q/ O4 n5 Q( T( b
- (command ".circle" c a)
, F* z; U8 G3 Y/ u% k3 j - (princ))" b2 s7 ?" {$ @+ g2 |' A2 w- E
/ p- U8 l5 z) Z6 v! V* {- (defun c:ga14 ()
6 }! x" r0 C9 D5 X6 N. |0 D; U - (setq a (getpoint "\nChon diem: "))
q( n7 B0 U5 C8 V1 u - (setq b (getpoint a"\nChon diem: "))
( V" u, E& U8 N c/ R - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), ]6 w% y6 V- Y/ z! x' y8 }. o3 E
- (command ".line" a c "")
- _' V% I! k8 \ S - (command ".array" "last" "" "p" c "14" "" "")
5 f7 l6 w6 ]8 S7 h$ q! } - (command ".circle" c a)" {. j R5 _) _+ w7 E* R: s, G
- (princ))$ ?& S! A9 ?! j4 t" Y. {2 e6 @
- # H- O5 m1 ^, g0 V0 G3 }
- (defun c:ga16 ()
* _3 U' v* a3 c) X- _; v - (setq a (getpoint "\nChon diem: "))
* u* m: L) q3 B2 P: r - (setq b (getpoint a"\nChon diem: "))
1 d$ ?& s$ V/ E0 t$ j1 u& G - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) R+ a e$ w* C8 g$ Q) b' ~, g$ t: U
- (command ".line" a c ""), k: @3 G! `! z& l8 n
- (command ".array" "last" "" "p" c "16" "" "")3 A0 L0 c7 K0 Y2 A- `/ X+ d
- (command ".circle" c a)$ Y* K3 I2 g$ M+ X* S
- (princ))7 @- { o# k5 {" l
5 a1 J# |) J5 {# {9 F$ f- (defun c:ga18 ()8 t. I! t! [+ ?0 `# C9 M# R# B
- (setq a (getpoint "\nChon diem: "))9 B" F4 C9 K) O9 r5 l8 n& b; M
- (setq b (getpoint a"\nChon diem: ")) e, h( U7 B M( i3 ~6 k
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
! m) e+ N1 F/ C3 v2 f - (command ".line" a c "")
1 O2 s. J( O y* r6 B - (command ".array" "last" "" "p" c "18" "" "")/ D! d8 |1 {$ k1 t
- (command ".circle" c a)
% B0 E: o m: E, D$ s - (princ))
, M, S6 b: ^ \0 y7 R/ H; v2 q
3 D Y- T, p3 F1 ~1 o4 e+ g- F- (defun c:ga20 ()& I( U% M0 c, C8 g# h" ^
- (setq a (getpoint "\nChon diem: "))" b+ I5 k( G% ?/ Y9 O1 J# A
- (setq b (getpoint a"\nChon diem: "))2 C" C* p1 h5 W& {0 e& _; r5 R
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( T& d9 N, z% q& {7 s( I3 @" x - (command ".line" a c "")
9 d- N) ?+ l: D5 x* |( ~' N& i - (command ".array" "last" "" "p" c "20" "" "")6 ?2 q0 \/ ]4 C+ [
- (command ".circle" c a)$ s$ `% p% ]1 r
- (princ))" U5 }3 \) s$ q: s1 w
- 5 J, L/ {- t1 t4 ^) Z, R2 S
- ;=====================================================================4 i$ g; t; k- K, }5 P
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============2 y* \* M5 G7 ~; {7 n6 S( `+ b: W& ]
- ;========================== 06-11-2016 ~ 18h00 =======================% l. v! \ x G2 M
- ;=====================================================================
" {* D# P. ^9 U( k; C! M, q5 W9 e - (defun c:ga ()9 n9 D7 U5 e8 X: V
- (setq a (getpoint "\nChon diem: "))
1 y3 h& u$ m2 M6 L& l) n - (setq b (getpoint a"\nChon diem: "))
3 y& M- J; y+ \ h8 R T3 l) ~ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))6 |( r4 @ F& C! T" P B; p4 N
- (command ".circle" c a)7 e5 _1 K7 X r" P6 ^) B- R3 A
- (command ".line" a c "")
, Y7 I/ M/ Z0 U% Q( X2 V - (command ".array" "last" "" "p" c "NUM" "" ""), ]) t& [2 \8 U& r- i4 \" a4 d
- (princ))( ?: e0 m' |. b. b+ h) n; O2 n
. i |* m0 @/ ^- D+ L- ;=====================================================================
9 L4 I0 K k# X. J$ i. v; ?# G& f - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
- ]1 G: n& j) l - ;========================== 06-11-2016 ~ 18h40 =======================
; ^' t" b( G8 a# b& |* | - ;=====================================================================
6 q; n U- f" \# ~% B4 @
w( U9 H! `) s& |: O- (defun c:hoathi ()
. U# S7 m$ ^- n) C0 M: ` - (setq a (getpoint "\nChon diem: "))
6 N: n- d' c0 h* F8 C6 C# W - (setq b (getpoint a"\nChon diem: "))2 L1 J# C8 Q, C" i
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); R- e* L. B- @3 T5 ~
- (command ".line" a c "")
$ z0 P2 ]% G6 S- I! V z6 p, s" x - (command ".array" "last" "" "p" c "NUM" "" "")
+ [: r! e9 P, @1 M6 w - (princ))
7 O, c# B/ e7 A& Q; ~) z2 s) g
& l3 L, X( V a: R$ J- ;=====================================================================5 \+ I5 T! _& D" M M% ^
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============* j' }1 v9 ~( Z# N
- ;========================== 03-11-2024 ~ 19h33 ======================= h$ Y# x2 F3 D
- ;=====================================================================0 J7 f& t4 G6 ]) d! p3 g3 g+ s
- 3 X1 ]% P0 i+ w7 E _) e' i& L
- (defun c:cung ()& U. l, ]: \9 S# W, z% W% v0 y; G
- (setq a (getpoint "\nChon diem: "))8 h% e" h0 b# L% @ s
- (setq b (getpoint a"\nChon diem: "))
/ \5 k+ F4 i7 l7 T8 L) O - (setq c (getpoint a"\nChon diem: "))) e: ?8 z' A2 F4 T
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 W- a4 W* ~6 S; U! ^+ | ~ - (command ".arc" a b c "")) R [9 @: |8 {3 f4 T; N x
- (command ".array" "last" "" "p" c "NUM" "" "")1 s5 E! O* F: e# k: F8 a# `4 d
- (princ))
5 W# z. ^+ ?' I: J. Y& y
+ K, z( k# W, G9 ]) n d- ;=====================================================================
; e! \' [! D( X- Q$ H" L - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============1 p3 w' X; D$ E0 L9 r' w
- ;========================== 03-11-2024 ~ 20h02 ======================= I6 O9 C, e3 w' o' S1 ]( |
- ;=====================================================================
$ I& B8 T" B& F( w5 `' n* D - 7 N. b I- A" n4 h8 V& Z0 \2 D
- (defun c:hecloic ()# `! A* A$ n7 s6 U
- (setq a (getpoint "\nChon diem: "))
N* I$ H2 B* p% w2 U. b - (setq b (getpoint a"\nChon diem: multi "))
% K1 z' @1 x0 I9 o z: ^/ _% e$ { - (setq c (getpoint a"\nChon diem: "))(princ)
7 U0 g5 g, e% Z/ s, m/ z8 q% _ - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" b) `0 D" D# i0 A7 M - (command ".arc" a b c "")% q) y/ B7 x) _" \5 }$ [3 @4 i
- (command ".array" "last" "" "p" c "NUM" "" "")
y) n+ `6 j2 l2 r4 s! N5 D9 p* q6 D - (princ))
! j8 r0 L% I; n, D - ! w) H) Z) f& a: m8 R
- ;=====================================================================: s: f$ \+ V& n* I; j
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
: `; }6 B d7 v6 A* R4 ]5 v+ e2 z - ;========================== 03-11-2024 ~ 19h38 =======================) I) J3 F* j. B; [! A. d1 \1 H
- ;=====================================================================4 z, |0 }# B1 M- o1 P% y( m
: c% a8 j; d9 i) N; e- (defun c:gay ()
3 Q) ~4 C) `% l* H& w! U5 F - (setq a (getpoint "\nChon diem: "))$ p8 M3 h9 g+ p, a
- (setq b (getpoint a"\nChon diem: "))
3 M/ g0 ?5 G7 R3 c" F3 h) B - (setq c (getpoint a"\nChon diem: "))(princ)
. r8 m! X$ N( s" ]) `" y - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* G V5 ?/ f2 o4 ^
- (command ".pline" a b c "")5 v! ]$ t: `4 W2 S) P4 E2 N% |
- (command ".array" "last" "" "p" c "NUM" "" "")
" y, B+ V* W4 ? - (princ))
$ U5 B7 d3 j8 S2 c) ~) q" z1 D5 J6 d - 3 {& q4 \" {: v
- ;=====================================================================
1 `, Z9 l" n G8 p/ i& Y4 d - ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============" U+ f% |2 J. ]% q% O( |3 A
- ;========================== 03-11-2024 ~ 20h02 =======================% R- n( m3 @5 `) I/ O
- ;=====================================================================
6 f: _& |1 s( P* O) ]& n& a - 3 F0 p1 f0 t' [$ B# d2 a8 v
- (defun c:hecloit ()
* l& {1 }. N ~# |* I. N* n3 m - (setq a (getpoint "\nChon diem: "))% m% Z7 e5 o+ M7 N7 B1 A w
- (setq b (getpoint a"\nChon diem: multi "))0 x; ^5 Y6 S+ T, p6 b9 S; @" Y
- (setq c (getpoint a"\nChon diem: "))(princ)
) Q5 r9 `/ |0 w, w/ s5 w - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); V) r, L& @6 C" K6 X
- (command ".pline" a b c "")
/ X/ [, [, W4 @9 j. ~8 s0 X& ? - (command ".array" "last" "" "p" c "NUM" "" "")
7 s7 W* |; T+ c% e/ Z/ m - (princ)): X, x& l' g5 w% {
- : K6 C- V# r7 w+ c1 N" F9 x
- 0 S( k5 ?7 d7 n$ V! b t& G. Q
- ;;; ============================ Merge Hatch =============================
& G6 m# G$ x. F - . n) @- F7 q) f: H7 p
- (defun c:mh (/ ss entht sl i dt dtht)+ X p- Z9 W5 ~: W
. L* ?- }* }, ?) I* S- e- (princ "\nMerge Hatch - free lisp from CADViet.com")
( l, A7 Z0 ~$ f3 C I+ C) |( X( @
$ T: W2 T8 z4 l' t- (setq6 O' M! M+ c5 G& E2 u$ A& ~
- ss (ssget '((0 . "HATCH")))5 f; v# u/ [1 Z( ?2 p! p
- sl (if ss ]8 t( |# R3 [+ x
- (sslength ss)
; d# z. R$ p, j3 j - 0
. {' I" M& e; l, S$ e - )
/ T* m- |# {' E6 x" s& K. _ - i 0
; g% e7 y& ~$ h) l2 ]3 k$ n5 J6 `3 x, t - l 0' ^1 o+ K2 A8 _. D) y* n
- )/ j: r1 H9 g2 d1 ]+ f1 H* h
$ ?' J' F8 z; o/ P! Q' j6 U- (repeat sl
- N5 y9 v& \/ H! \' g. L! u, @: H - (setq7 f6 w9 d7 x! E; {# f
- entht (ssname ss i)& P1 D: u; ~7 U1 R3 y! l5 Z! m
- dtht (getbdata entht)' l: F; f# ^! s
- dt (append dt dtht)
& D$ Z" o7 N# \7 R/ ` - l (+ l (cdr (assoc 91 (entget entht))))+ j3 d% u1 G( i% I9 z0 t+ x2 C3 E
- i (1+ i)
% X0 o4 B6 j5 Q/ h - )
; H3 W8 d1 d% \, \3 p - )6 X8 U9 b( `3 K# I0 G5 f6 ?) C
, s7 p% D8 Y6 e8 k$ M$ q. M- (setq ent (ssname ss 0)
' ^6 ]2 {7 y w - ss (ssdel ent ss)
( h. E4 N# O2 x6 n8 S1 v - tt (entget ent)
1 d# ^; Z/ T' Q7 t - duoi (member (assoc 75 tt) tt)
8 p9 Z; r* Z' T8 W* z# x4 {3 N: ~ - dau (reverse (member (assoc 91 tt) (reverse tt)))# d, l6 [6 ^8 L! q
- tt (append dau dt duoi)
: K2 s$ d$ A/ W/ l: o- A - tt (subst (cons 91 l) (assoc 91 tt) tt)& Z# I1 N" x- k7 d$ K* W$ ~; ^8 n
- )$ d0 x9 ^9 Q- t' r' b2 k2 M
- (entmod tt)1 v0 _. Y! D5 S- m% B
9 {8 ^* @- b9 w* |( j- (command ".erase" ss ""). L# J: A! ]1 U- a) f- |7 R
- (princ)
, w; j0 {8 `2 n5 K' H! k - )
, m1 j: F) D9 T: x+ q - ) x9 Q/ A. E) b# a; C4 |
- (defun getbdata (ent)( h& N5 ?1 Q" v' g
- (setq tt (entget ent)% b* e# x! L% z) w
- tt (cdr (member (assoc 75 tt) (reverse tt)))" Y& E+ W( t: J1 _7 Q( \3 K
- tt (cdr (member (assoc 91 tt) (reverse tt)))
& ]7 j* f" z$ y( ? H. _ - )& |7 A8 c) L0 l _3 t
- )
" {, m5 m1 i, w1 Z! Y
5 S& P, v: u& U1 S9 _5 g
) h `( T- X! E- (princ)
# o0 N ~1 A+ d9 F- O% D, W - 8 }' h6 J; e: P7 _6 t' I
- ;;; =========================== CAC LENH LAYER ==============================
X8 S6 S) [1 g2 K6 ? - ;;; =========================== Layer hien hanh =============================
' a' S5 G, E% v7 R - " N& b" Z$ _5 s( T: o
- (defun layset (/ LAY) (setvar "cmdecho" 0)
" |% p+ J; t4 f) a3 [' _6 {3 z - (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))8 a: T7 F% ^- K' }
- (if LAY (progn 3 ?; W* K3 O0 u- w2 M0 n
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
' S' ? Q r, l - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )' |, ^* }/ D/ ]0 w6 L6 `
- (progn
n: w% k$ H8 K# M3 r( M, _ - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) 3 Q/ ^0 J e1 ?/ m( U
- (progn
& J8 j. _, t! j: s( u - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )3 i8 w5 y" A7 z Y# N) {2 _
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))' A6 @% n _, {% q5 w
- $ y) q3 `0 `5 z; q4 S: Y: Q* h
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
% p' |, }5 H! S6 V - 2 d; T( p+ h w. c: v& _1 I
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)1 x7 G2 Q6 v% d/ j
- (if (not (setq SS (ssget "i")))
% T0 t* Z( u6 y. i5 c - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
- W" l/ c5 s" M8 P g. _2 q* m - (setq SS (ssget)) ) )
1 C% S+ P) Z7 j* r9 @ - (if SS (progn
) p1 ~6 Y: l ^4 _6 J L/ _! ^ - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") * m; T. X& a9 x7 D( e9 f" K
- (if (> (getvar "cmdactive") 0) : x* S1 P: g* J4 d$ x3 P' B
- (progn
" f4 {, m( i" C4 } - (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
- S# ~' O! P6 y' ~7 O - (setq SS nil) ) (if (> CNT 0) 5 f0 C* P' V. G8 e! m6 R* ]" F
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) ) S" y3 x6 s! |( k6 T5 R
- (if SS (progn
1 s9 P+ h! C* W9 @" { - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")# C' b, ~, |6 U2 n5 a- V* O( \2 H
- (if (= (sslength SS) 1)+ y3 s* U8 s! N5 i
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))6 a( z/ }8 J# i. F* `4 a0 k
- (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
2 G) f- b7 d5 `+ R5 S, F - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))6 R/ X1 |* D) b( _/ b9 k
+ Q) ^7 F3 ?7 ~- ;;; =========================== Layer Iso ===================================% y# g. t4 n, J
- ! J, y( k& W4 I* J+ C5 O/ O
- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)7 Q3 B4 }. ~0 E j3 n' t
- (if (not (setq SS (ssget "i"))) (progn
3 |, O# Y) J: L( p/ o/ O - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
8 J% r- F. N6 Y' c6 d, ]7 ] - (setq SS (ssget)) ) )
: w# z# D2 g- U5 _* _% A" j - (if SS (progn (setq CNT 0)
! I3 W3 w& t5 s9 a, `) c! o - (while (setq LAY (ssname SS CNT))* ~2 |/ i+ t; W: L U; |! ^
- (setq LAY (cdr (assoc 8 (entget LAY))))
8 _. k8 ?7 D# N1 o! Z; m - (if (not (member LAY LAYLST))5 o4 C" D8 S& q4 b
- (setq LAYLST (cons LAY LAYLST)) )2 R0 R$ c9 n0 W; r$ V1 m1 `
- (setq CNT (1+ CNT)) )$ v; p) d4 ~+ ]4 E. w$ l$ v
- (if (member (getvar "CLAYER") LAYLST)
4 ^& T9 m3 w( F$ J: {; ] - (setq LAY (getvar "CLAYER"))' y1 N$ l; S V6 h2 d
- (setvar "CLAYER" (setq LAY (last LAYLST))) )
7 ~6 n: y- X/ T+ L$ b# t, p - (command "_.LAYER" "_OFF" "*" "_Y")
8 B' t; P( s' P/ y3 H7 t2 r: n | - (foreach VAL LAYLST (command "_ON" VAL))
# v+ M& A0 F/ G1 ?, ?3 l/ a- _ - (command "") (if (= (length LAYLST) 1)
2 W/ ~# O& j: M+ N* O% _ - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))' ^) ~ B2 P" C
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
% P: P9 ~1 ?! u! ^6 A+ I& e - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )3 C( M: Z. c: N( D4 [. B
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))
+ s0 `+ }& h0 p3 q - : |" t; M; ?) t" p) [
- ;;; ========================= Layer Match ==================================
9 }( n5 p* p" r7 P; u7 R - ) o: T9 U4 h" {7 q; K
- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)2 g' I" W2 k) r- y4 |
- (setvar "cmdecho" 0)
! F: M6 p3 r" W! R( l - (if (not (setq SS (ssget "i"))) (progn
4 U# g2 T9 z1 f: a5 Z - (prompt "\nChon doi tuong muon thay doi Layer : ") f8 H. d" n$ s4 A
- (setq SS (ssget)) ) )
0 k) A9 A( Y+ W$ {+ V - (if SS (progn$ V& z* Y! [* X1 |
- (setq CNT (sslength SS))
, M# z& W3 m) u4 M1 q - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "")
- v& `+ ?# P4 K( H - (if (> (getvar "cmdactive") 0) (progn
3 \; q W, K6 {+ {2 E - (command "0,0" "0,0") (setq SS (ssget "p"); X; }# Y1 `" q) J$ f% ^
- CNT (- CNT (sslength SS)) ) )2 P! D& c4 ]) q
- (setq SS nil) ) (if (> CNT 0)
+ B6 a; g7 m" z* S) Y1 E- l1 D - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )8 Z3 S5 r# ?# p1 H$ E6 k
- (if SS (progn
# H; _ G. \: G1 _: m, L - (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )' i( ]( ]5 `1 z, ~ m
- (while LOOP (cond
) n/ n: d! }. e% n - ((not LAY)
( b: I u! Z0 Y/ i6 C2 V - (prompt "\nKhong chon doi tuong.")' I. y+ G4 `0 p' s: X
- (prompt "\nSu dung layer hien hanh? <Y> ")' q& Q7 \! U* B( x! t
- (setq ANS (strcase (getstring)))' Z- Z- [2 c8 C& I2 \. k. O
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))0 t! J+ y0 u( M
- (setq LAY (getvar "clayer") LOOP nil ) ) ), p' X4 {$ y/ ]/ ^2 ]; i" {( @" Y
- ((listp LAY) (setq LOOP nil) )
" b# S# o! o5 B! X. }9 g - ((= LAY "Ten")
) b0 d3 `) B, h# \. l% W - (setq LAY (getstring "\n>Nhap ten layer: "))- [: m5 j( b9 \) x
- (cond
8 p0 p s( \& ^7 \0 J: w - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
$ s2 @2 J3 [; ?) ]) O( \, W1 Y - ((/= LAY "")
1 I [) R1 R: h% A - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")! ^+ M9 T, F! y2 Q
- (setq ANS (strcase (getstring)))- N8 o% l) T+ C( W( J: `
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))$ X* h0 n8 V1 C6 B1 h9 Y6 h* P
- (progn
- z6 H) L' H$ ~3 B+ w0 R - (command "_.LAYER" "NEW" LAY "")
, Q: {6 t$ S' e ?3 ]& Y$ A! j - (setq LOOP nil) )$ M0 S& H, M F8 r
- (prompt "\nLoi ten layer.") ) ) ) ) )+ s1 @( R; b$ d- _' l) h9 ]
- (if LOOP (progn (initget "Ten")/ S" |2 d5 o; I2 \$ ?
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP/ I3 r; Q; V9 B: A- v; [
- (if (listp LAY)' |* k4 H( R% E# E F* @# U
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )( x0 q S- W! l+ c! a, z
- (command "_.chprop" SS "" "_la" LAY ""): T0 k/ y; m5 j6 { D# F4 P) o, J
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) ): `- x9 k3 A7 S% n/ T
- (if (= LAY (getvar "clayer"))
6 |# i: X4 W Z5 D2 V6 K, U" ?" N - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )6 M6 x4 m$ s/ `8 }. g/ }1 j- h/ D
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
$ X" U9 l" c% ]# d
; R, D+ f$ r2 L- ;;; ============================ Layer OFF =================================
4 w, z9 J7 L- P- R
% t( o& e- k) J6 E- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)& h; ]' q: H7 V; r+ \3 Q) E7 x) z/ Y
- (SETQ SSET (SSGET))
, q- X6 N! Y$ F2 S; M( t7 E. W9 S+ N - (IF (/= NIL SSET) 8 ?8 r1 U( m! ~% y" ^4 E4 F# x
- (PROGN
& j8 L/ ?' V$ s( \$ Q# X - (SETQ SSL (SSLENGTH SSET))
: N+ B& N& r) Z- u - (SETQ LAY "")( A- [* A3 W& ~4 I
- (SETQ I 0)
( U9 K4 u4 k) w; o - (SETQ MODE 0)
0 F- ?* n) D! h2 N0 l0 t2 b7 a - (WHILE (< I SSL): B N! V: ^$ O* ^
- (SETQ ENT (ENTGET (SSNAME SSET I)))
( k5 A$ |- p' D O# ^3 Z - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
+ ~, S( {) L0 x' D, e2 X) I - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))1 c- ?, T6 d2 z( N d2 y0 @
- (SETQ I (+ I 1))6 a& Z9 `7 y' b
- )4 w( e9 v( c6 T1 H. _5 t. \# t5 C- a
- (COMMAND "LAYER" "OFF" LAY "")- x& N2 J( ~# B
- (IF (= MODE 1) (COMMAND "") )
0 d/ g7 |& W+ T' f- C* A I - )
6 p2 q! ~& Q C' J" z - )
7 o" D! o3 c: z - (PRINC)) q0 L# \4 z' \3 @) R! i/ M
- )) }1 x7 t6 C* X3 S! g+ c' f3 S
* u8 f1 C: L: D4 X, U. s; A- ;;; ================================ Layer ON ==============================
7 [% ~6 [$ m+ ^3 t0 i( z8 | - 0 ]4 w0 U6 d. I: s: `1 v0 l# y0 c' J
- (Defun LAYON () (setvar "cmdecho" 0)
5 ~$ `% d: z: D3 V8 N. n1 I - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
8 l4 g$ A8 C1 Y - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
8 r! `' U( M/ V2 Q. B3 { - (defun c:LAYON () (layon)) (defun c:LOO () (layon))9 K2 i+ q8 `; ?5 W! d% ]0 t
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))7 f. j- Y8 G' V# f+ D* h
- 1 S7 ?+ f5 f* y [& X9 v
- ;;; ============================== Layer Freeze ===========================3 s' ]2 ? c' r0 X7 F
- 3 s& U4 z7 B" Z
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
- P0 t" i: x6 K/ D T - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
2 D4 W7 s; A+ C. X/ k5 G" c$ _2 | - (IF (/= NIL SSET) (PROGN4 J" \8 S# X4 m" ~2 \- I: E
- (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) 5 z- f; B& d& m( A
- (WHILE (< I SSL)
# \& p# W8 A! a% V5 D" v1 Z, Q4 h - (SETQ ENT (ENTGET (SSNAME SSET I)))
; G& b K3 i. u+ S: ? - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) ), W. O/ h4 V" t y/ E C, n6 }
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))& R2 w: Q. B6 _ L% b4 @( X
- (COMMAND "LAYER" "FREEZE" LAY "")* s4 @2 y1 ^3 Q& v2 a8 a# v- u& L; ?
- (IF (= MODE 1) (COMMAND ""))))
1 Y+ u. w0 ]' o: x" o5 T - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
% K8 e# n# i7 D - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
+ s# |$ V. W) `# ]( e - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
9 ` X, a6 p% b2 G
/ @8 g7 @) x7 o- x* w# O1 w2 n- ;;; ============================== Layer Thaw ===============================
, c, x2 _0 P; N5 C1 X+ ~1 W - ! `- K! u: y* u, q! d, V* [
- (Defun LAYTHW ()1 Z& S5 g% B P$ j5 K3 @
- (setvar "cmdecho" 0)
9 R3 ~+ c' x1 E7 a5 N; n - (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")' j3 N; N4 s/ T( l$ ?! c
- (Command "_.LAYER" "_THAW" LAY "")% C$ v; p9 ]* C1 x3 ^
- (princ (strcat "\n Layer : " LAY " da THAW."))/ K4 Z' I7 n0 n" r
- (princ) )- J3 H' N+ w) k# n- d# ?3 I
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
8 w. r! j5 Q/ K0 K( M- c5 }' \
/ m7 I3 M h+ g- ;;; ============================== Layer Lock ==============================
$ m: T) m- X2 h: R
/ {, q9 c+ u8 K# @4 k; Z- (Defun LAYLCK (/ LAY)
- m/ _" U" a2 [7 m; R( x - (setvar "cmdecho" 0)
0 ]" }' l; w$ n - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))- y7 S" u5 C. F! B
- (if LAY
2 b& G6 k* q$ I - (progn
6 ]' g0 x! A1 u n) E - (setq LAY (cdr (assoc 8 (entget (car LAY)))))1 |3 H) X/ Q1 z8 W% |7 x
- (Command "_.LAYER" "_LOCK" LAY "")
+ @9 d3 R& \/ O8 J - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
& M* g" I1 M: j - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
$ j, @! {* n* x+ V" e: j2 T3 l - . K% Z! G$ I3 A
- ;;; ============================== Layer UnLock ==============================. D$ p, L4 P, g2 \) P1 A0 d
- * a; N3 }2 q1 s' X
- (Defun LAYULK (/ LAY)3 d. i: ~0 F7 ]3 I5 \" Q
- (setvar "cmdecho" 0)
: @5 i0 Q3 C! P3 a9 l% { - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
" H* z) ~2 O$ O7 F4 y, u3 e - (if LAY- X- i* E* q% h
- (progn7 n0 I0 U* z3 J# ?" g
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))% I5 Z% x4 q6 D X
- (Command "_.LAYER" "_UNLOCK" LAY "")# H8 F9 Z3 C! X
- (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
/ ]) u5 L% X' g - (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))
1 l7 J. [1 z) t1 ?' m' S3 Y - 4 r; v* \. h, `, n( d k
- ;;;===================== Delete all objects of Layer ========================
4 P2 m K/ v- G+ A - . L5 _8 n6 w2 e
- (defun DELAYER (/ ocmd L S)
1 u) w M: @& N; Q - (setq ocmd (getvar "CMDECHO"))
- A; G/ w4 \: j2 g { - (setvar "CMDECHO" 0)) i0 K E+ z2 J1 G# A+ m1 U6 s
- (setq L (strcase (getstring "\nLayer(s) to delete: ")))6 D0 _4 ?0 n x
- (setq S (ssget "X" (list (cons 8 L)))) & i1 H0 l9 t/ C0 O
- (if S - F- z3 b6 G0 N8 f M, y7 d9 _* p, F7 g
- (command "ERASE" S "") + e* n4 d1 p9 e. [% \( W
- (princ "Layer empty or not a valid layer name.") )
0 J7 v/ e7 j8 t: V+ o5 C. s - (setq S nil)
4 H3 G; v+ D% p, n - (setvar "CMDECHO" ocmd) 5 B/ P3 I" ^% v N. q7 n
- (princ) ) % Q) B8 g) \3 s3 V2 u
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))# ~3 j H* `* X2 K. R" x' Z% L( r
- ; N: ~( v6 `+ T2 s0 I
- ;;; ========================= HET CAC LENH LAYER ===========================' ?( S$ v! Y+ ~% B6 v
0 g! t4 L, S& n, \1 j6 e- ;;;====================== EXTEND NHIEU DOI TUONG ===========================! W; W) i0 l- U# Y) K# G
0 x& b) R, [) j- (Defun C:EET ()
5 w0 U/ k$ x5 c0 W - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
) d" H& e7 j' Y: |5 z4 S - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
6 r; x3 ~7 x9 n, K) t9 B - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
" ]+ Q9 ]; z, \: H) _! A$ j - (Setq I -1)# k4 c: T2 |+ S8 w& V4 k9 a
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")3 Q0 Z0 X) r* F; N& c$ U
- (Repeat LEN
7 B# j* ` S+ X) h3 j - (Setq I (1+ I))
; n' \9 ?% U. j) g( a$ _, F - (Command (List(SSname SS I) SIDE)) ) (Command "")
+ I" w0 V* T3 r' x- o6 _) m - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )6 O6 M V) I0 |6 ?8 |8 l
1 q; ~: N$ B) W" k- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
; i( U4 W' h2 L
6 `3 m4 M- h- d. U- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)8 W( } M0 g2 q4 A7 {
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))9 u. I! z8 G8 }/ I7 J# g
- (setvar "osmode" os)
, ^- `* y& Y1 k) o2 d4 X - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
8 ]4 U& @5 u3 c, R" U - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
9 I( {0 P6 u% ]! b( C$ ~
6 A/ B' T8 z$ v) B! |6 e4 c( l% u- ;; ================ Change width of polylines =========================
2 T, G7 A' M" l0 q7 c - - b) H0 P( \5 _$ r* c
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
/ {0 @/ q6 A# q, X. f2 ^2 u# A+ L - (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
+ h9 E( t0 D- \* |. b- O) [5 a4 R - (setq b (ssget)) - ^' y; {3 _) S# |$ m
- (setq sophantu (sslength b))
+ ^: B# _% R7 Z# B$ \ - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
+ W N* f: X: K! u- L7 d E; n# W - (princ "\nDo rong polyline <")
$ t; a# t$ G# D: ^6 n - (princ ha:wid)
3 `, H3 P+ E2 x - (princ ">: ")
9 f0 L: [7 m" E0 V& D/ w& [# E/ R - (initget 4)
" |' e( R1 C) T - (setq ha:wid (getdist))
$ X' [1 ~' t$ X7 L; j9 z - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
4 @* @% @3 o, E2 Q - (setvar "tracewid" ha:wid)
- d9 J1 i$ X, @1 Y' A4 U% X - (setvar "cmdecho" 0), G: U8 o1 J. T1 {" r0 E
- (setq sodem 0) : b0 w6 c# J3 `$ `
- (repeat sophantu
- j1 I7 z4 ~- O3 m* g0 Q1 K - (setq a (ssname b sodem))
5 Q& A- z+ I8 d% R0 M, _6 D# q: r1 o - (setq list1 (assoc 0 (entget a)))
; _9 V3 {# E& a w, u' q. b: N - (cond6 j8 ~0 N- {0 l" E1 ~
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
% R9 z$ ~0 ?2 z1 o. c5 _. i - (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) 7 E; _' L; }! ?
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))/ J8 y1 `9 ^/ U+ C$ q5 c
- (defun c:wp () (wp)) (defun c:pw () (wp))
4 Z5 J& A( w+ Z& Z - 3 Q* |0 b6 d2 h! w9 K+ t& z
- ;; ================ Change radius of circles ==========================
X1 j- h# Y: G$ p! M7 Q
) t; \$ s+ Q% ]( y; W$ t& O- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
- G' V+ `1 k$ A# c - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : ")), `2 |* ]0 w$ j- Z9 F L
- (IF (/= RD NIL) (PROGN (SETQ I 0)
+ O4 h; Z& G- e# z+ l) b6 ]* Z - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) ) {& y6 U9 F7 W* N% N5 C. w
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN ^( f a0 K/ m1 w2 ^
- (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )- z0 F' L) \2 @/ o' S
- R7 n; B1 T0 m* l% |2 k3 ?& w- ;;; ============================== TEXT Hight ===============================
2 I8 t/ G: E; z: Q% W: [* m
( X# I# L7 k9 n) p- (defun texthght (/ ent hght)
# m1 `) ~" W) n0 G5 j+ F( U - (setvar "cmdecho" 1)
1 n, h( Z! j8 b, c& r5 W; v - (prompt (strcat"\nSelect text entity with required text height"))! |; b3 z. y" t4 {+ f& n) h
- (prompt (strcat"\n."))
' c6 r6 ]2 ~: j+ S: H% b8 ]7 O - (setq ent (entget (car (entsel))))9 [3 [; ` `4 W: p6 Q( i* z9 V& g
- (setq hght (cdr (assoc 40 ent)))4 C8 ^2 c: X7 ]. t, Y
- (prompt (strcat"\nText height now set at "))(prin1 hght): H' ^. U+ V) K) `! A
- (prompt (strcat"\n."))
^1 S7 y$ X; V# q: s$ o - (setvar "cmdecho" 1)
, B( t/ T# H+ ]1 j - (command "DTEXT" PAUSE hght "") )5 j( h% \" Z$ @" y2 Q8 E
- (defun c:teh () (texthght)) (defun c:texthght () (texthght)), k" ~& E* H- ]$ L) ]
- 1 W8 C- w9 x8 u) b# c8 ] O2 I8 h
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
5 | }6 x( z5 L% s
, l, p& B0 V+ x; ?- (defun c:tuu () (setvar "cmdecho" 0)
+ c5 h+ K. j) U' X4 ?! ] - (prompt "\nHay chon dong TEXT can gach chan ")
& U2 x, }8 V3 Z5 o- E* Z - (prompt "\nSelect objects: ")
& Q9 m$ C/ L1 W8 O% T. X* {3 U - (command "select" "au" pause)
/ _. b7 [* w9 p4 {2 } - (setq sstxt (ssget "p")+ b) k1 B: {& e9 F3 Z7 w+ L
- sslen (sslength sstxt)
4 E9 G% j6 q. X - ctr 0 )
2 e" ~8 P0 ~4 {) d. C9 C5 Q- p - (command ".undo" "mark")
- y. p4 u8 L2 U5 d - (while (< ctr sslen)3 P0 Y1 h P0 O
- (setq listxt (entget (ssname sstxt ctr))% |9 f+ `! V4 C/ l$ z
- txttxt (cdr (assoc 1 listxt))
/ [0 F& x- E0 d, S4 b: @ - enttxt (cdr (assoc 0 listxt)) )# g3 K% l. R, x4 U7 k" @7 K
- (if (= enttxt "TEXT")8 l8 T: ?6 t* S# P2 ?& ]
- (progn
: ]/ q/ S) `9 H% n& M - (setq testxt (substr txttxt 1 3))+ S* c% d* p, R4 h/ c' m- A
- (if (or (= testxt "%%u") (= testxt "%%U"))
; D0 U4 v8 j, m7 @ - (setq newtxt (substr txttxt 4))
9 ]: a' [( D O2 W, r4 J& C2 @ - (setq newtxt (strcat "%%u" txttxt)) )/ A8 X( b0 I) p; A0 }
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
$ o* X! e+ q5 f( C8 w# F - (entmod listxt) ) )
% v: Y8 k7 B& F5 M7 E, k - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))/ i' f4 q2 B" ]& Q6 l8 |1 Y& C7 H2 M
4 \' c/ V2 y3 G7 }1 q( e; E R. \- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================: K# [2 Y8 X1 z
- 0 t* L8 g0 n$ o( v
- (defun c:tob () (setvar "cmdecho" 0)
3 i; d: q) y" r5 ? - (prompt "\nHay chon dong TEXT can gach tren dau ")
- X. O2 U9 b6 W" `( w# ^ - (prompt "\nSelect objects: "), @' e; N. O5 r* }
- (command "select" "au" pause)1 g+ V* H0 a# b8 G0 ~' w
- (setq sstxt (ssget "p")& q! a! w; f( Y i) {+ q7 l9 v- s, S+ }
- sslen (sslength sstxt)" d& k& |6 r0 X( L% n; V
- ctr 0 )7 P! f+ V, o. J* ~
- (command ".undo" "mark")9 i2 d2 H# M: y0 @, ]$ ]6 v4 e
- (while (< ctr sslen)
/ v/ w# u* l9 k# U, K* B0 y# ` - (setq listxt (entget (ssname sstxt ctr))
& ~+ M# t5 y, } s' r7 @3 r H - txttxt (cdr (assoc 1 listxt))
! K& k+ B; V' i4 H& b - enttxt (cdr (assoc 0 listxt)) )
' l1 P% o j1 J+ Z# R2 ? - (if (= enttxt "TEXT"); `5 a' q) f1 ^3 ?
- (progn2 M4 d. k V9 q/ i5 b
- (setq testxt (substr txttxt 1 3))
) b2 n o. k1 F, Y4 ? ^3 @+ R - (if (or (= testxt "%%o") (= testxt "%%o"))! W* |+ s% P& J {3 X! j/ W
- (setq newtxt (substr txttxt 4))' Y/ G, U4 n2 S3 ~, k, `' j
- (setq newtxt (strcat "%%o" txttxt)) ), S0 j0 A+ |- ^7 _( s
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))" s9 I2 y" ], U
- (entmod listxt) ) )
$ Z4 h' C: x! X - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))" {4 `" a7 l. O4 Y) x% w
! h1 m# x4 ?' a; q# x/ S- ;;; ========================== Tim & thay the TEXT ==========================
) s2 i X/ V$ i; i/ x
- l: g7 o. l! a4 O- (defun frstring (str search replace / str1 str2 index find)
# o% g4 D4 J$ c; J5 E) |" E* J' c: | - (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
/ x4 q8 C) k" B" }/ W# n$ Z - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))9 R) F3 r9 m" y6 g% G, M% Z
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
! E4 a8 h1 m X - (defun hai (/ dial)
0 O% M& G* ]4 t: a/ M- ^ - (setq dial (load_dialog "hai.dcl")) ;;goi dialog
1 e! v9 u' \2 S& l) p1 J - (if (not (new_dialog "find" Dial)) (exit)) ;;
- z) U' r/ o; D! x* R% ?. r - (mode_tile "find" 2); Tao dau nhac tai hop thoai
4 d0 ^. O: P) |2 i - (action_tile "find" "(hai1)")
3 s# {; R I% C S) \" D: ^5 P - (action_tile "replace" "(hai2)")
: L& @+ f6 w" R# K - (action_tile "cancel" "(done_dialog) (exit)") B+ E! y" S( R- D$ S( X$ s
- (start_dialog)
/ n7 D( N( j% `' s8 O9 m+ ?# L - (unload_dialog dial))5 s R" |# }- e# k1 Y
- (defun hai1 () (SETQ str1 (get_tile "find")))
0 B3 F6 ?8 }6 e% F, p1 M" z# n1 S& o9 J4 ~ - (defun hai2 () (SETQ str2 (get_tile "replace")))
# y0 l0 O/ D# Q) J3 f& C/ ~+ i - 4 `+ n7 v/ G7 b0 v! o* f# s' k
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
9 `. u* p2 _5 W0 e9 |9 B" r) K( n - (hai)
3 u ~/ E: ~/ T - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
4 R4 _0 j0 H2 x! U& ]9 Q1 B - (progn
6 z$ b* P4 I# m- d" P7 S( S) M$ | - (setq taphop (ssget '((0 . "TEXT")))). P- A7 E* J q; G+ U; {5 Q8 c3 G% g
- (setq sodem 0)
/ ~7 E p3 f% V4 L% k+ b - (if taphop( [, h, ^ M" s# h% D, h
- (progn, k, L; P* a5 T7 d# M5 |
- (Repeat (sslength taphop)
! H* A' l" x7 x; K' I4 N" D - (setq a (entget (ssname taphop sodem)))
+ S/ ^* O6 n4 S! J9 s p7 } - (setq str (cdr (assoc 1 a)))
. p, Y9 r0 \ `% m | - (setq newstr (frstring str str1 str2))
- [& ?+ d) P' K7 K Z3 w - (setq a (subst (cons 1 newstr) (assoc 1 a) a))
5 i) a* g% |3 C - (entmod a)
) l: e, J8 z7 v5 Q0 `* S - (setq sodem (1+ sodem)) ) )
/ e9 {4 }- o) |- }/ A; d' S! H - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
' U1 b2 w( x' ^/ C9 b8 f
& B3 f7 g8 p ^- ;;;============================= CHTEXSTY.LSP =============================
$ ~' D- o" i5 b( k; E+ e L, Q
; o- s7 I: ]8 v4 a0 l p& a5 a- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
$ Y. b9 Y3 y- @' C) j& _0 y - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))7 ^0 @- s! A+ i! P0 u: E( ]
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
- Y- `' e) ^, ^ - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
- D& h _$ A9 s0 i% e4 T: d+ B - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B)) X% ^+ N5 N# }1 f$ z+ n
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
4 ?! m, u) R8 L9 P - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
$ o# b2 j6 k6 d* g, `* C - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
# r5 g, d3 h! }2 @6 b - (Initget 1) (Setq A (Strcase (Getstring: d5 }: V' R& e3 f" N
- "\nEnter text style to change: "))) (Initget 1)1 j8 T# [& V1 a/ _
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext)): I8 L- `0 |4 F2 C
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
! d$ u4 _9 |6 h- F3 s3 B! j - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
/ ^1 _1 W$ g6 P6 C - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))% d; N& c# ~! O
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J)) J6 q( a& R- m
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))4 c u6 R* O/ i/ n9 m) ]
3 v1 i; O" @/ W; s* X9 Z- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))/ z0 J* }6 S5 p! s4 V( a
- (Setq J (Cdr (Assoc 50 A))))
( E7 v) {1 a, k9 @
, M% L8 y( z [: U% O) P3 m" U- ;;; ============================ DRAW CLOUD =============================
1 _; @1 H7 c* Z% L. V$ ?' J b0 M
) J |6 P- l5 o9 P- }- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)) W5 D6 _& Y# S5 U
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
5 `- s( i; V+ S1 o; a9 B/ D - (setq la (getvar "clayer"))1 G! P1 k! U# w* _5 x4 B
- (command "layer" "m" "cloud" "c" "5" "" "")8 Q( E o: ?( x ?: k
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))- T" _& H- K/ A& Z' H; M5 \- p
- (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))0 T2 e% M/ m: T' u$ @* \; k; ^( Z
- (setq cnt 1 ss (ssadd))! c* a6 S4 \/ j6 v8 d
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))1 V3 }1 K% d: M. [, Q' u# Q
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75)). M |& X- W; h) Q9 U% {% F) w
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))- ^5 ^& F1 F4 M9 h. M
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
) f& B. T6 }& e" S `0 v, k! S8 F - (command "pedit" arc1 "y" "j" ss "" "x")
0 m, P) p6 X5 M/ D - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
5 v* ]6 _* r& p - (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) u% y' l/ F# n4 v) \
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
) f: n8 G2 y3 G, v, V# N - . d. m, n; M% B( ], @1 c
- ;;; ================================ Funtion-Dulieu ========================
, n# D4 r! G8 r- f z9 S- @ - ;;; ================================ Funtion-Dulieu ========================5 Q( H9 |1 n M
- ;;; ================================ Funtion-Dulieu ========================
' W: h3 d" G2 N! ~ - $ }' I& y( j% t/ b+ m/ m) `. `
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
* K. Z! l8 v9 ]6 s7 ^% Q- N; l! l - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh")); g# ^# F a$ B' J$ W* r
- (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))
% |0 B9 X# p& ^ - (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) )& a! e5 S5 r5 o' B, d1 p
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))' A1 I9 O* Q: J! Z6 Z5 z
- (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
& [- Y* w- Y1 v1 k: i0 J8 k - (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))) m9 G, o3 h4 h# V& J/ H/ e" S
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))1 a9 g" v5 ]3 Z8 G" Y; _
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
, E% a" d5 H) L* m: B! a - (defun ha:giaodiem (dc1 p1 p2 / hc hc1 diem1) (setq diem1 (vectophap p1 p2)) (setq hc1 (polar dc1 (angle '(0.0 0.0) diem1) 100)) (setq hc (inters p1 p2 dc1 hc1 nil)))4 @3 s2 l/ }! |+ b" R# Z8 T4 j
- (defun dtr (dtr) (* pi (/ dtr 180.0)))
. a9 Y, `1 t+ V: v8 n% U - (defun rtd (rtd) (* 180.0 (/ rtd pi)))
6 _) z8 e' o2 q/ |9 E, Z" u+ M - 5 l, |: n& _8 s; z0 N& d
- ;;;==============================PROGRAME===============================
" M7 _6 l2 q/ }" f+ W& a - ;;;=====================EditDiM Hien Hop Thoai Dep======================! q, R5 C |: X i( k2 Q7 `* u; H
- ;;;==============================PROGRAME===============================) t$ n. j4 ^: W8 F
! }2 e& x; X! d6 a9 p* E- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)8 e& |$ W! j; ^, b2 _: X& o
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
( _! }: p) k& B6 _2 x+ a - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc); {# @6 ^/ Q4 u) R
- (Setq Oldlis (Entget (Car Chon))' u. A- V, M8 Y: t$ F& ^
- Pt10 (Cdr (Assoc 10 Oldlis))- i; e3 ~/ Q/ G; j
- Pt13 (Cdr (Assoc 13 Oldlis)) A3 V% _7 i$ I3 b' m2 u5 b
- Pt14 (Cdr (Assoc 14 Oldlis))
* P) J- |. p: P% g - St (Cdr (Assoc 70 Oldlis))' N- M! ^ H( ^7 v0 F
- Dimdefault (Cdr (Assoc 1 Oldlis))
) i+ S- l V& v5 `. R - )
0 j4 `# p2 G* [5 u, i) E* Y - (Cond( S% q+ ~% C% }
- ((Or (= 32 St)(= 0 St)(= 160 St))6 Y9 B& K( t6 z7 y' k
- (Progn
6 \$ c' a1 N" l" {7 [% D - (Setq Ang (Cdr (Assoc 50 Oldlis)): ?7 E( M, f7 q4 q7 i: o: o
- Pt (Polar Pt13 Ang 500)
3 {8 h) E0 G# Q - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)2 l9 q' ^8 q \0 U0 p- C
- Dis (Rtos (Distance Pt13 Hc))6 u$ U# y `* m( Q( R U6 A- _/ W5 M
- )
1 b3 H5 `) N6 k& |, z0 T - )2 J0 N6 |2 _- I7 a% E1 O
- )
6 r# X% c: X" ?# K. I/ [ - ((Or (= 33 St)(= 1 St)) H' {( u) S4 H4 a! Y( y- ~4 p8 s/ u
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
9 y+ x; F" j! y8 ]9 V5 h9 A - );;End Cond
, ~4 a( H! ^# S" b9 C& a - (If (= Dimdefault "") (Setq Dimdefault "<>"))
( M7 X; s9 Z, f3 Y3 { - (Setq Dial (Load_Dialog "Hai.Dcl"))
S2 O. Y# U7 I! Y0 U - (If (Not (New_Dialog "eddim" Dial)) (Exit))
! @" A$ z; |) _0 i Y4 ] A - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
I8 D* C- c9 D- p - (Set_Tile "text" Dis))4 P' }4 `; f5 P6 }. e7 N( w
- (Set_Tile "ha:edim" Dimdefault)$ g/ b0 F7 N: Z8 B
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
P' b9 ^! Z8 D - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
7 d- g) P1 | }$ f0 F - (Setq State (Start_Dialog))(Unload_Dialog Dial)
' P5 T9 g* `5 q' ~ - (If (And Str (= 3 State))
0 \/ l0 _+ n$ C1 G7 m8 x2 t - (Progn
" U' |! @% a1 b8 | - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))9 o. ^$ M% k8 U* L* i/ j8 F6 ]: L
- )
6 J* [& N" b- y0 s. ~; B - (Defun C:EH (/ Chon Name )
0 P: ]' f4 T3 _, e - (Defun *Error* (Msg)4 p) X5 W4 O; a6 a K ]
- (Princ "\nerror: ")(Princ Msg)(Princ " ")% u6 u5 F. k- p0 }9 x
- (Start_Dialog)(Unload_Dialog Dial)2 ?1 s( H" i1 Y+ H) R" B0 H
- (Setq *Error* Olderr)(Princ)
: a& o. [+ o0 O6 m8 ?: `8 ]( M - )
4 T. _; Z, ^8 f8 } - (Setq Olderr *Error*)& Z( Y! A! P, w; A j0 T+ \( v' y8 C
- (Setq Chon T)0 z4 S0 b/ w: h5 ^6 g, Y* G
- (While Chon6 j' C9 h% s: S# |6 S F/ D2 h
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))1 N" ]5 @0 e0 L4 p% w8 |
- (If Chon
# W$ z$ f( z8 }: S4 a+ C# Y) V - (Progn$ y" L4 g$ J* \" z1 ^
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))7 h5 X; ^/ U& _( J! O7 ~' f x
- (Cond4 t. P, w' P6 w* y
- ((= Name "INSERT")(Command "Ddatte" Chon))8 v7 a O. U4 H
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))% D: i/ g$ g( R
- ((= Name "DIMENSION") (Hai_Edim Chon))
& ?2 P9 |0 j& q9 i' v/ Q - )
3 B$ B6 N$ k8 ^. G6 e# G - );End Cond
+ A/ q9 a4 y4 Y: k" X( i1 q - );End Progn
* ?; Z3 @* c6 R6 w' R3 _7 S - );End While( o& U/ X; _8 `' [$ Y
- (Setq Olderr *Error*)(Princ); J- Z6 t5 x R2 g4 ^6 O
- );End Program+ U4 T* @* R' w& |3 g1 L( n- s
- 1 I! k! M ]1 w8 N
- ;;;====================DDeditDim=====================
8 p7 {, v2 A8 p a9 R) z& u - ;;;=====================Hai.DCL======================& l: y' J0 E) }2 i4 w) X
- ;;;====================DDeditDim=====================5 D% q" B/ M9 }. F
# y5 e) Y7 M7 s h W( X( f- H- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
* o- l0 G2 {% k- k" g' _, K - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
& C/ M/ z& d- i+ O) M: V' L6 e' _* d - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
) X9 e3 p) f$ R$ X# M r - (Setq Oldlis (Entget (Car Chon))( ]7 K1 e+ F( v7 S0 w
- Pt10 (Cdr (Assoc 10 Oldlis))
! U- ?" W, W( ` - Pt13 (Cdr (Assoc 13 Oldlis))6 u* r2 p/ @# w8 _
- Pt14 (Cdr (Assoc 14 Oldlis)). k$ c- @/ D8 \% v. k7 k; h
- St (Cdr (Assoc 70 Oldlis))
' V' `: d5 m7 v! B F+ | - Dimdefault (Cdr (Assoc 1 Oldlis))( d1 L' n4 i+ Z( x& j1 r
- )
# F" a! C0 ?# v# C$ d; D5 N - (Cond
0 J* ]' m- T8 K* X - ((Or (= 32 St)(= 0 St)(= 160 St))
) L& ^; t% e. h - (Progn
8 I, U' o% K( u6 F* r - (Setq Ang (Cdr (Assoc 50 Oldlis))
5 ^! O/ k& j. n - Pt (Polar Pt13 Ang 500)6 E# @- r2 p7 b) X! X
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)" J; ~- x! y$ L! {" l
- Dis (Rtos (Distance Pt13 Hc))0 U k% c0 u5 |6 |# ?
- )
! l8 B/ Z z- |0 c# s) q% `. K - )
# ]4 Y4 g: U% M! E6 } - )- }& O+ N0 Z2 V, B- W& S2 L8 F% M
- ((Or (= 33 St)(= 1 St))
" w3 O1 u4 f" ]8 ? - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
( f. }3 D l' W7 l+ D# I - );;End Cond7 ]# C) M" B& M% M0 y
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
; a4 M, G! i2 n( c: o6 T - (Setq Dial (Load_Dialog "Hai.Dcl"))+ N- t9 B$ [7 ?4 F
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
! e$ U0 R* V7 }7 S - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
/ k n2 o6 x m( ?. B' u - (Set_Tile "text" Dis))% H7 ^) y. r/ n7 \5 K5 L
- (Set_Tile "ha:edim" Dimdefault)
8 r( W/ ?5 j, @6 L; S - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai/ C! w5 X* f) N( w
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
s2 `4 t/ l3 o' F3 i& X- j/ P/ p - (Setq State (Start_Dialog))(Unload_Dialog Dial)- }$ c& }/ l8 A2 ^- k
- (If (And Str (= 3 State))8 ]! M3 i' I$ O' S( Q, Q- y
- (Progn3 f8 `% j7 j' f& I6 w, E+ v! L: r
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
# l9 B6 y5 h! Y4 ?& b% J, T3 P - )5 Y# X5 T# Z; _* H
- (Defun C:EH (/ Chon Name )
R6 T J8 e( E/ F
9 b) A% ~' C; A% S6 C! `0 \4 ~- ;;;********************Du Lieu********************
$ q. m- p% N, E4 B, W! d& w; y - 0 w* }0 P6 K% H6 l& c9 a
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))! l8 N. c$ m) r1 h) C0 h7 y9 {
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
# h& G: \ Z( ]6 t! s" N K4 D) w - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil)): N4 X. c' K5 x/ t/ q1 P
- (Progn
2 E$ n% @6 g8 t- o; Q b - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
: G L4 h2 q3 B6 h! Z% d - (Setq Chon (Ssget Hacat3))
/ c" _# P" U, k6 q - (Command "Break" Chon Hacat1 Hacat2)' B, ?% `, `1 I! N0 u x
- )
( w6 t# {# }, ] - )2 k& }, J9 `. X2 O N5 `3 ~( r6 o5 u- u
- (Princ)
+ P9 D& q/ t9 b" s; W - )* M- {, x4 |2 O+ @8 J
- ;;# v! {8 P3 C# o7 I5 ^
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
& a/ ~5 {) h9 w, [; j4 B" D, R - ;;
5 |% {: F- s: ~ P - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))8 n3 R! Y/ I9 C! C7 W2 y7 |; A. E
- ;;
* `5 E0 @; v$ P0 g. P7 C1 t- h2 o/ | - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
9 \* g$ _3 h% H7 Y$ J T: ?2 D5 X- W - ;;
$ q$ a/ t5 C ? B7 X! V - (Defun Reinit ()(Setvar "Cmdecho" 1))
7 J) T; L9 |$ v9 t0 n2 ~; S* i- { - ;;4 [1 ]) h4 y8 y+ J) ^! b7 J- B# c
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
& ~+ _3 i2 a2 q - ;;
) x, F! S: T. k) [0 Q* A - ;;Cho 2 Diem Tinh Ra Vec To Phap
a+ \ F ^9 ^8 C2 N y - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
' n! q6 o8 G. z6 t1 f+ Y- `9 S - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
4 E! O$ f- T0 s3 y7 a) L - ;;Da Biet 2 Diem Thuoc Duong Thang
0 I# K7 _+ i m - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
% W4 F; W0 i2 t7 H, H- i - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
2 e! E3 G& c& d% h) Y$ O2 J - Hc (Inters P1 P2 Dc1 Dc2 Nil)))
2 [$ z' I B& K# {& r) s - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
; C" K( z0 S- u4 l0 v! G - ;;Da Biet 2 Diem Thuoc Duong Thang: z8 C, f }$ G. R8 [% V% \7 n
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)' r3 K4 O& P) m8 @, g) P9 w) q- I
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)- P: t- s2 v; L& q8 \: N
- Hc (Inters P1 P2 Dc1 Dc2 Nil)): ?5 C; O: u4 `- L% n
- (Distance Dc1 Hc)
" `: f' N# K& I+ O3 x5 Q4 X - )
% m; R9 ?: |5 X9 U/ }# ] - (load "nhapcua.lsp")
7 m% U' R. c- t* }* A0 s - (Defun *Error* (Msg)+ H& C* ]% |+ M/ H" ~8 t
- (Princ "\nerror: ")(Princ Msg)(Princ " ") u% e1 z- c$ V, _ Y
- (Start_Dialog)(Unload_Dialog Dial) D. ^5 i! I" \& D* j
- (Setq *Error* Olderr)(Princ)
; g. c& M4 [' t0 J2 Q - )# B; T8 I' u8 G: z. H! @/ L7 e
- (Setq Olderr *Error*)+ f" o$ C; x8 s" @' W% I
- (Setq Chon T)
0 D" m2 [4 p' o. Z6 F - (While Chon
' g. {$ Q# g9 r& ?) N - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
9 `1 Y* i( x- N: _: V: @5 U - (If Chon R( b$ ^ o) P: G8 Z0 B
- (Progn+ h5 L4 a6 U L; N! J5 ?. C4 q6 p; d
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
& \) I! z9 Z" i( Z: y - (Cond0 x" {. S* _ p; U# @
- ((= Name "INSERT")(Command "Ddatte" Chon))
6 z1 `. R- v# q" |* \ - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
6 `: l2 F& q* l$ L8 g - ((= Name "DIMENSION") (Hai_Edim Chon))9 |% \/ g1 X% D: o
- )* i. Q+ E% Y& x& v: N4 ^
- );End Cond" _( n9 l3 i7 {
- );End Progn V6 P6 |$ y( `6 g
- );End While
8 w! }: y* ]6 Y& |/ D5 t+ @* G - (Setq Olderr *Error*)(Princ)8 Y, }5 D$ A, e) j# B! q8 c
- );End Program+ @8 v8 X9 t& P0 y" z( a1 J
- 1 f1 q1 G; M% O/ i
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
$ H5 r" O U: b {2 }2 s - ;====================================Nhapcua.LSP====================================7 D" B | v- I* M
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================# M* ]& {: T& ^
" p0 {6 s. a7 j6 [- : y& V# W1 K2 i# j$ | |+ u
- 4 ~* G4 i+ _6 O0 O# @; z8 {
- ;*******************;*******************;*******************;*******************
, V6 K. n, m6 h5 U/ @ - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****5 ^* q- K9 r1 a& s6 D9 E( A' s' {
- ;*******************;*******************;*******************;*******************& L% U0 {5 N! {4 }- P
- 3 z$ S J" y( H. D; ]
- ;VE HINH BINH HANH
! t2 P7 H+ w# I) G
6 \# o- _) X8 F w! M8 E: E5 q* ^- (defun c:binhhanh (/ p1 p2 p3)( e8 z: r! [0 Y3 u; [: W$ R* A
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))3 t7 P( S. ^4 B/ |: T
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))* m7 `3 g+ @, V0 A
- (setq om (getvar "osmode")); ]; m7 C8 m- z% ]! }( r) u/ Q' G: E) I
- (setvar "osmode" 0), H/ m: l" C& y- _+ C$ o) c* `
- (command "line" p1 p2 "")5 n N% i0 Y2 J, O0 \3 a* e+ u
- (setvar "osmode" om)
& Z( a$ f4 I7 \. s - (setq p3 (getpoint p2 "\n Nhap diem thu ba:")): w/ C M7 U' \! t
- (setq a (angle p2 p1))
4 h& |- Q' q2 |8 `5 L& R - (setq d (distance p1 p2))
$ h: X- p0 G4 P# O" S9 F h7 S }6 a - (setq p4 (polar p3 a d))
: _& K8 P5 ~% K6 A" `+ U; R3 z - (command "OSNAP" "none")
" k6 F. f5 [6 M$ [3 u' m - (command "erase" "l" "")
& T9 w m# [* W7 v - (command "pline" p1 p2 p3 p4 p1 "")0 r1 z# Z5 ~- @4 w
- (setvar "osmode" om)
9 @+ V' J3 g1 @; ]$ Q% _ - ). H" s3 N% {0 F& c5 t/ `4 `
- $ \6 k. K( F) F/ w/ `0 V' i
- ;VE LUOI COT. `4 H2 b9 \' h# ?
' R8 Y; S/ T1 u! C, C9 Q- (defun c:LuoiCot ()
% w+ j. g* {, k" d3 x) r" ` - (setq om (getvar "osmode"))
* |! D* V" G8 G( b - (setvar "osmode" 0)
, ]9 p5 y' b1 H$ l - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))! H5 R& x3 M5 l% m4 p2 C* a
- (setq p0 (getpoint "\n Chon Basic Point:")); L" Z% V: {- }0 `) c! _
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))# c0 d$ w; m$ d3 I4 _7 \
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))0 T- f0 O7 s7 q. o
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
$ P: |$ l/ R* {' d9 u$ d+ i - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )7 h( v* Q, s5 G- }, H$ ~
- (command "rectang" p1 p2)
& F' a% w7 U' _: I' z ~+ ]6 V - (command "hatch" "solid" "l" "")) f1 E# t% ?7 d; O H
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
8 u2 r1 G/ z9 E5 X6 [% D% `% D - (setq nn (getint "\n So buoc cot phuong ngang : "))
. |' F1 r/ G+ E" M; W6 O. H - (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) ): Q. j1 Y" i, M
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )5 q& m9 g1 K4 G% p; D
- (command "select" "w" w1 w2 "")1 }& a* X$ V, P* s$ ^/ P
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
5 b& o9 L; F w8 I2 r- g. k8 ^ - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
& b# M) y/ N5 p8 G! | - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
1 d e% y, l$ n5 O* F9 x - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
- T) T) L$ x1 N" s# ^ - (command "zoom" "w" w1 w2)
* t0 u* a8 \: W8 A - (command "select" "w" w1 w2 "")
# v! d5 N; g* Y: K/ `( ^ - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))) D$ o( J1 C1 B
- (setq nd (getint "\n So buoc cot phuong doc : "))
- T ]2 z* H) |/ E0 \+ i; N" Y - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )9 f6 b9 c, n+ f1 u8 X& N9 B
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")4 ] S& y$ H1 ^
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )( [# Q9 Q0 A; A+ D% `
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) 8 E* Q$ X: @ |0 @0 J
- (command "zoom" "w" w1 w2)
+ T" L* f, }" h. J- w - (setvar "osmode" om)! v7 \2 F' Y# B) z
- )
' @, ]& {: s8 e) r
! Q% O8 {) k0 P# n) t& `- ;VE CUA DI
8 G3 @# `1 h! T9 \! E, O* t9 O - i6 }% C, r# C! u& E
- (defun c:cuadi ()* w6 J" ?9 {8 h( S+ W" [ t# z$ J
- (setq om (getvar "osmode")) I& d8 m) B1 C @1 z
- (setvar "osmode" 0)
5 [% W3 [# |) q% [ - $ i2 ^( o2 \9 g% z
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
0 z* T/ E# W' A - (setq b (getreal "\n Nhap be rong cua : ")), y0 R6 l9 Y: f% {/ z- |8 o
- (setvar "osmode" om)3 [ j Y h7 o5 I& W
- (while (< 0 1)! k7 r) J4 N" E: C) v" V( G
- (progn1 t! H, T0 T( a2 F' `' |. @ a
- (setq p0 (getpoint "\n Chon Basic Point:"))* W- V6 k* X+ _; ^
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
3 V& G3 b! J; Z, u2 J% V - (command "osnap" "none")2 q/ m+ E. B$ h2 i- i
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
* I( d3 D7 E+ T! v - (setq a1 (angle p0 p1))
B" v' B6 K, k! e - (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
" @$ D9 h$ d& Q - (setq a2 (angle p0 p2))
, D) M3 M. h( u5 m" B2 T - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
8 b# ]# |( W# }( k5 N H7 L# s - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")4 Z- d; i8 R C, I' `- n+ _! Y) |1 H
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))1 v2 j4 U: r$ M# M
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) 0 j5 A7 i9 |$ q' m, o; v
- (setvar "osmode" om)6 [6 W3 A9 I; v6 j
- )): J' R( {' Q7 c
- )2 g' O7 r) y+ M: H* O; d0 K
: Q0 A7 Q+ ~+ R% |! Y" D- ;VE CUA SO1 M5 f* r; D! R2 u9 W; o1 Q& d
- 7 R6 k* F7 u) U7 `% M' u' j
- (defun c:cuaso ()5 r G6 e* Z+ a; \4 T, l
- (setq om (getvar "osmode"))9 p }" a% L0 W+ ]! m' L" v% U
- (setvar "osmode" 0)
% {/ ]5 c* m. z) W
2 m' b' J0 b' e* N# [' Z3 f5 N- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))1 n1 X& b1 {0 y1 _- J# ]( e& d
- (setvar "osmode" om)
6 r2 }+ \8 j0 Q - (while (< 0 1)
: v8 ]1 L" N4 @7 |6 [% F - (progn
1 z0 u* I2 W" `) Z - (setq p0 (getpoint "\n Chon Basic Point:"))8 K* k& `% P/ A/ G3 u
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
6 e* ]) M- y, Y* A5 r4 t - (command "osnap" "none")) R4 @5 x+ |" B7 n2 e: ~
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))4 f. k+ B# w) x3 R
- (setq b (distance p0 p1))
7 z( a) V2 y; U+ W, x - (if (< b (/ (* hstl 600) tile)) (setq du 50))
" p3 `0 r: ~% j0 ?- S. [6 u - (if (> b (/ (* hstl 600) tile)) (setq du 150))
- n- a' z. R/ N1 u - (if (> b (/ (* hstl 1800) tile)) (setq du 200))
( G$ a' A4 D; q3 l - (setq a1 (angle p0 p1))
/ k5 N+ ^4 P( I/ e# | - (setq a2 (angle p0 p2))
6 \: R! Z: V) N - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
+ p5 [ U4 P! o' E% ]' q& F - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
0 x* y- j3 C- [+ s! L - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
' f1 w: v1 u/ S* o. }2 U: L- I9 n - (command "pline" p0 "w" "0" "0" p1 "")
. C# e: e( b, x" o% h8 U - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
7 |: w1 m r0 x4 U - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
% H3 j% j- x' E& ]8 z I9 Y0 f. } - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
5 L7 X4 ^) T0 n F9 i6 M6 F - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")0 E9 r( `% ]5 Z
- (setvar "osmode" om): R5 A; K- M2 X- m1 K' X0 C
- ))
# i( X+ x6 x/ V2 \3 ~ - )
) w6 Z, ], x/ B* o# f) C8 O
9 h, r" r4 R2 s7 |3 `: y1 \9 `- ;;;=== General Utility Functions ===
+ x u2 E: J5 O1 o
. c4 n' E) a( X- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
5 R: c* ]- e/ a! Q( | - ; ADS function. Now it's a simple AutoLISP function that calls the
) ]0 Z/ y9 m* t7 m - ; built-in function (help). It's only purpose is R12 compatibility.
/ c7 m$ l I1 X* C - ; If you are calling it for anything else, you should almost certainly
. v- b b) `0 W. K - ; be calling (help) instead. / M8 c" U) K. E8 e* a6 p
-
: @% B1 l/ y. N. U- x: _ - (defun acad_helpdlg (helpfile topic)
9 @8 A' R& b j4 b' }& E - (help helpfile topic)
6 j1 U$ X0 ?* B6 D2 A% f0 o! o - )
% i, A- Q2 p( b' c% R6 ?: R* t
% T/ ~8 D# j' G- |$ V4 B- " ~9 f, O( `1 ^7 J3 ~2 J% p. X5 n
- (defun *merr* (msg)
s$ M) Q0 V0 x: G+ S - (setq *error* m:err m:err nil)8 f+ @, _/ \& o
- (princ)
8 ?4 I' Q. J8 _% h7 o1 ] - )& V, |/ Z, V: _6 o
- V: t4 W" t& L7 L. f" C ]- (defun *merrmsg* (msg)2 r1 k8 I5 f! x% G" O e8 I; @2 k
- (princ msg)& j. U$ a9 A, [! q
- (setq *error* m:err m:err nil)
- U# m5 M& [- ~7 q7 z - (princ)
# p6 g! ^! _ z* l' j- l# T - )# l1 q6 N5 e9 G: C# u9 {5 X
8 X, n: k' q5 n& r8 D6 G- [, b& ~- ;; Loads the indicated ARX app if it isn't already loaded2 R* d7 j9 t" p
- ;; returns nil if no load was necessary, else returns the
) d8 E, g7 {. u9 b# D% | - ;; app name if a load occurred.
6 X7 O# |1 Z3 U0 B" R* X$ | - (defun verify_arxapp_loaded (app)
n M7 o$ b. @1 ~9 i - (if (not (loadedp app (arx))); K% b' c& U+ D3 f( y# G
- (arxload app f)
$ A+ Z! Y" f& F- X9 I7 }- H - )
2 M$ Y9 j/ r) z* g) F - )
! Z2 @& n8 m- ?/ p( D - 9 i% \# x0 p2 B2 j
- ;; determines if a given application is loaded.../ U6 A/ r' E7 _( @0 l
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
4 Y1 j; w) @: X6 _- ~) {' s. l/ v - ;;
2 ~( p- A/ V: O2 `, K5 J2 L. _ - ;; app is the filename of the application to check (extension is required)
8 |9 h0 g4 r" K+ {9 a, V% F! ~ { - ;; appset is a list of applications, (such as (arx) or (ads)
/ f# \4 ]" }% `' \* j- Y - ;;
, v( o) S8 K( T3 g) [ - ;; returns T or nil, depending on whether app is present in the appset
8 H3 o+ }) L+ H; h - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
1 S: p9 v. |/ l! G, l6 b - ;; Also, if appset contains members that contain paths, app will right-match$ }; \% `# g/ r, f" d5 e1 P
- ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that# _" r- d$ |( u# t; V
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
2 m1 [3 d, E8 e* d - (defun loadedp (app appset)' j1 {/ G: [) a `" J) A
- (cond (appset (or , m# k5 G. v7 }+ E; \
- ;; exactly equal? (ignoring case)
7 j2 N* Q( n$ Y0 O4 Q, B+ a2 D - (= (strcase (car appset))! G1 u5 `( f% @* r2 J
- (strcase app))* G! N( Z7 ~; I& r3 [# m# z
- ;; right-matching? (ignoring case, but assuming that0 D3 i, T4 n9 ~6 _! a9 G
- ;; it's a complete filename (with a backslash before it)
: F# Q' g' n0 u* O+ M% A/ C - (and
, P# Z- C0 n, n: z3 s - (> (strlen (car appset)) (strlen app))
& J, i7 }8 Y3 r4 T - (= (strcase (substr (car appset)
4 c4 F( E, d7 r4 z/ p& N - (- (strlen (car appset))
0 E9 i- P8 o* o" I5 i - (strlen app) " `2 W5 ?' Q6 S/ b. U
- ) ; y5 }- I N* x, G% U
- )3 G, ?& W- Z( Z$ T% V7 [
- ) - B2 }9 s; l2 j, P) _! ?" Q* |( ^
- (strcase (strcat "\\" app))! q* }, t4 s: g+ k- Y
- )6 _# ^7 M2 v& f4 s7 x* j
- )
( D, `. k% G7 Q - ;; no match for this entry in appset, try next one....
5 i) c g+ X+ o* [ - (loadedp app (cdr appset)) )))7 Q6 }; m6 K' |, \. |- `
- )
# i' C/ f: n9 i5 c- s7 G: U
' N2 s* H. p* _' n4 w9 J
) p& e/ r" u7 Z2 Z/ S; Q- ;;; ===== Single-line MText editor =====& G. G0 N" c, \; B7 |! u) P
- (defun LispEd (contents / fname dcl state) F+ C) S" n) ?% _
- (if (not (setq fname (getvar "program")))
7 K: n0 c2 g, Y2 z3 R, b8 n - (setq fname "acad")
8 g4 o4 i, n- M# y$ G F$ G - )- k- K* V: c h+ ], \* _3 X
- (strcat fname ".dcl")
2 x' j+ W1 P" W - (setq dcl (load_dialog fname))) o' z& F# \4 e" c2 s2 i+ ^1 h* K
- (if (not (new_dialog "LispEd" dcl)) (exit))
+ }" x1 m% s( i+ o6 O% _8 { - (set_tile "contents" contents)
) d) o6 ? b4 c. @# ~ - (mode_tile "contents" 2); I8 M8 z5 S6 l! N
- (action_tile "contents" "(setq contents $value)")
2 T) g# `9 D: Z( M& ^ - (action_tile "accept" "(done_dialog 1)")
% o" y. H2 \2 ~! ^$ X2 u( T - (action_tile "mtexted" "(done_dialog 2)" )
/ m3 t: \2 `! e* z+ n4 H - (setq state (start_dialog))0 i& _) t; A F$ q
- (unload_dialog dcl)
. y ]% D# Y% h - (cond+ T* d- l% \" b
- ((= state 1) contents)
, f! B0 U1 ]% A - ((= state 2) -1)
4 h7 |+ F7 W N) |: Y/ X - (t 0)9 m8 ^! U( [0 y. C3 G' P
- )
; T9 c6 Y% G7 l$ K7 }; G - )
" W+ t; t; q6 u# f- z$ \) K$ u - , c' p4 H3 S6 w7 d
- ;;; ===== Discontinued commands =====& _! ?2 W5 K. k7 G+ `
- (defun c:ddselect(/ cmdecho-save)
6 H6 f( C$ [# q0 ?6 S7 D - (setq cmdecho-save (getvar "CMDECHO"))- X. q* o% |# _+ \1 B* l
- (setvar "CMDECHO" 0)- e+ e2 v; s2 ^8 q2 O+ ?" _
- (command "._+options" 7)' r8 y$ s, U% r; `6 Q
- (setvar "CMDECHO" cmdecho-save); I* J& U, m: a8 E6 y6 z# c$ Z
- (princ)
9 n4 S) x2 `$ \5 b# ? - )9 s* _9 t+ ]; U/ \7 P& B
( ~8 |/ ^/ ?( r$ q& j6 b' `- g) ?- (defun c:ddgrips(/ cmdecho-save) |1 d& f1 X8 B$ D8 j4 R; f( d4 \) i
- (setq cmdecho-save (getvar "CMDECHO"))
2 h- h$ m% Q) v7 m* C1 I# P - (setvar "CMDECHO" 0)# V0 O1 Z) a: E$ @
- (command "._+options" 7)" m7 `( v$ m% p" Z0 j% c
- (setvar "CMDECHO" cmdecho-save)
8 @5 |1 [; i% B; u z1 D' V - (princ) Y' C" l1 l/ f" H8 e2 H6 G. L
- )3 z/ G C% y0 J5 l# S3 n0 {0 J
- , U' R9 v) l) l+ f4 C) D
- (defun c:gifin ()* a& d" w- ^6 u G7 \& A
- (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
- F9 o& l% ?( F - (princ)' e) h) y( J* f# ?3 e5 Y; e7 ? X: O# j+ f
- )
' f% }3 X2 D. n, o& o
+ n" K- O# f6 T i/ ?& }) F4 b3 u- (defun c:pcxin ()
1 b$ r6 M) S6 r. O - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
: ~( N' J* `/ s I6 q" E% G: } - (princ)
5 `# e# ~/ S2 p- s1 L! S0 B. W - )
2 \& J% i9 ^% K7 B2 j
! z" \8 ~0 [9 |1 D6 I$ y+ _- (defun c:tiffin ()
5 Q; A* D1 J, b' ?" I% I2 j) V - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
* I6 Q: ~" a+ k: x - (princ)
) ]3 A) R, F @5 j7 l0 N - )% T9 X A- y, D
- 5 c V9 j$ G( r
- (defun c:ddemodes()- }8 L) k+ b# ~
- (alert "The Object Properties toolbar incorporates DDEMODES functionality. \nDDEMODES has been discontinued. \n\nFor more information, select \"Object Properties toolbar\" from the AutoCAD Help Index tab.")
% G" N. ^" v( s& j0 o - (princ)
8 W" j/ V! W: N3 ^$ q7 c - )# m9 g+ {0 h4 F; ~- u/ h/ q
- 7 _9 S8 k$ h/ I$ D* G
- (defun c:ddrmodes(/ cmdecho-save)& ~3 F( I( R: y3 n, J! n2 Z) i
- (setq cmdecho-save (getvar "CMDECHO"))
) E `/ O# J' E& s: { - (setvar "CMDECHO" 0)! {* ]* j# ]: d: W% O( Y
- (command "._+dsettings" 0)" M2 x& D& h) L$ s6 c
- (setvar "CMDECHO" cmdecho-save)7 `2 t& c$ s/ l; \
- (princ). H$ o: `& l- ~4 L+ \
- )5 W, \: w: L2 t' m# A* Z# J
, n' V+ N( {, j* x+ F& v- ;; HPCONFIG
1 b5 M# ?1 _& \7 m - (defun c:hpconfig (/ hlppath)
6 E; c) z" V. B; e - (if (not (setq hlppath (findfile "acad.hlp")))8 [! |& E* p# K5 G
- (setq hlppath "")) Y4 ^# t5 o. ?/ \5 f) |
- (help hlppath "hpconfig")& x1 o9 n8 H3 J: A
- (princ)
8 F9 |) N6 j1 H: f7 p {. U g" W - )
6 V; Z# u% ~, n$ m1 [1 X( [ - * ~' V( f7 G& i! a
- ;; OCECONFIG
8 ]) A) b" L2 s6 c; h7 M - (defun c:oceconfig (/ hlppath)( X+ v, q, U; t
- (if (not (setq hlppath (findfile "acad.hlp")))) I3 _) r: |! j9 v' U8 {
- (setq hlppath "")). e* \: \6 o+ j+ V$ k
- (help hlppath "oceconfig")9 m. R1 K3 ?9 G; \+ t( C
- (princ)
6 i8 S* Q+ R }# T7 D @. S. z - )+ S6 }- G# ]$ N2 _" W0 l, f" l
- : Y+ G) f; S- V6 F6 A
- ;; CCONFIG
/ X) Y# P5 }) \0 v7 D5 [ - (defun c:cconfig (/ hlppath)
2 E4 l5 C4 L) j# O4 v; _ - (if (not (setq hlppath (findfile "acad.hlp")))) i6 V$ p5 \2 }
- (setq hlppath ""))
' y' v+ G' L$ z2 b& H$ q+ E - (help hlppath "cconfig")0 }; @& @9 p& |! h5 c
- (princ)
3 V1 U9 m- V# M% o2 B! K - )
' i$ T/ M S: D - ) U* F& g1 \$ n9 ^
- ;;; ===== AutoLoad =====+ v; N3 D! o" B) K. z W
- & v3 d1 f& P0 p W+ l& F
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
% \1 i8 d- j Y; j" O, L2 ` - ;;; for the name of a certain appplication <appname>.
: `+ K3 \$ k; z: T9 D - ;;; Returns T if <appname> is loaded.
: T, b8 e/ U* x
+ W7 {5 [; M) h1 b* ^: V- (defun ai_AppLoaded (appname apptype)
% ^, n# l- q3 S: m( B2 j - (apply 'or
6 ]5 U; Q ?7 L& h - (mapcar
* e' m! g5 C0 g - '(lambda (j)' i7 B$ t+ `, M& O$ f) o
- (wcmatch
# \+ Y7 G, M4 d9 Y) X - (strcase j T)# I7 J( u6 ]: s) }% Q
- (strcase (strcat "*" appname "*") T)0 B8 S! c) W+ N* B: n w! u
- ) ; o/ Q/ q1 O, C" Z" D3 g% g
- )
6 x# \ y3 ~! x: i# |3 k: A- S - (eval (list (read apptype))), V% R) N a l: |: O
- )' e* w z! A1 K) F* K! H6 ^
- ) E: h9 i, j( W3 e( M# s6 V8 r
- )1 a& u9 a, t. ^' c" g
- % }$ c) G" J6 W( y- R2 z' `9 |5 G* n
- ;;
* d9 ~' f$ \8 N0 x/ H - ;; Native Rx commands cannot be called with the "C:" syntax. They must 5 E! h6 [/ }$ I# h
- ;; be called via (command). Therefore they require their own autoload
2 O9 y9 s4 Q- m) Y7 L8 }7 R/ P1 O+ w" V - ;; command.7 {7 D6 E2 z/ |' \0 s1 u& p% _4 g$ K5 V
; t& \9 e; z ^5 J5 x+ j r- (defun autonativeload (app cmdliste / qapp)
5 x3 H7 t; t4 h/ ]3 C/ G: @% ] - (setq qapp (strcat "\"" app "\"")): [- {5 T s- s- u, K# k
- (setq initstring "\nInitializing...")
' w% t- I: b. r! a - (mapcar
9 l3 q9 D4 \: T, n- g. p ?0 g - '(lambda (cmd / nom_cmd native_cmd)8 Z/ a! F f, Y, \
- (progn
- j0 V9 B- Y2 T5 D& f6 d; Y$ s - (setq nom_cmd (strcat "C:" cmd))
) c% J8 t, u- G y3 l - (setq native_cmd (strcat "\"_" cmd "\""))$ b9 x5 x1 C, I" r* K% N
- (if (not (eval (read nom_cmd)))4 k* j: u0 W9 I# ~- z. ]
- (eval
$ s- g L- ?; s& B" P" G! V- A - (read (strcat" m- q5 e- h2 a3 j
- "(defun " nom_cmd "()"
, w% ^" y1 l; g6 T - "(setq m:err *error* *error* *merrmsg*)"
0 w+ z- [+ u+ p - "(if (ai_ffile " qapp ")"3 s. {0 ^9 ~0 x6 O( G
- "(progn (princ initstring)"
/ f" G6 q" A- e2 `; z! x - "(_autoarxload " qapp ") (command " native_cmd "))". g: X5 o6 a; G$ W+ F1 n4 E& a
- "(ai_nofile " qapp "))"
% s+ }3 ~0 v9 K* z; Q- f - "(setq *error* m:err m:err nil))"
0 _1 G4 i# |/ o' A9 B - ))))))
3 m7 U0 O; [* F& i8 I3 j - cmdliste)
. e: q8 A4 h5 N5 M - nil, q( ]7 c t* |/ \' a2 C
- )% ?$ S8 }: @* ^& ]
- ! `7 g8 M3 [% T* O7 Q. V) A) j
- (defun _autoqload (quoi app cmdliste / qapp symnam)# V) T# f# E2 f Q7 r( J+ _/ k
- (setq qapp (strcat "\"" app "\""))
2 e4 Q6 x/ s# Q% H - (setq initstring "\nInitializing...")
- K3 ?1 L( \3 W, E - (mapcar
M7 @' a! ^" f. r" s3 ] - '(lambda (cmd / nom_cmd)" i' r6 {, Z! \7 f- i! T
- (progn/ s+ d! \; W4 x0 b, o+ }
- (setq nom_cmd (strcat "C:" cmd))3 J- t( D- V7 J2 e, c. ?0 T' m1 W
- (if (not (eval (read nom_cmd)))3 {4 q, h. q3 S, W1 r
- (eval
' t1 P! L- d4 t! R3 j& N - (read (strcat
4 U \0 U6 t4 A9 T8 m - "(defun " nom_cmd "( / rtn)"* d9 l2 e% e% [2 i6 I
- "(setq m:err *error* *error* *merrmsg*)"
5 A6 V% _3 o1 E - "(if (ai_ffile " qapp ")"4 Q; d3 @3 F- o0 i5 W8 V
- "(progn (princ initstring)"( m5 V% z4 }3 F
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
4 {! A: [+ }2 x! `- Y/ `, N9 s( ] - "(ai_nofile " qapp "))"
7 M' k6 X* j* ]# D" n - "(setq *error* m:err m:err nil)"
& B; _' h8 e1 |7 A- B - "rtn)"
+ ]5 }7 v; u1 E' D/ A' f - ))))))
# n: q3 w8 Q5 O! ~- d - cmdliste)
" X5 z( V& T# }7 ]: h# r1 Q3 B1 k - nil
% c! o; F( y6 G7 [" U - ); @9 n& B3 g( @3 I$ q
& ?/ B% p' @1 E7 \. o% e* U, q& y( H& H- (defun autoload (app cmdliste)! Z& j: i$ E3 F
- (_autoqload "" app cmdliste)' N& D; e$ M. O, i
- )
" l& A# m; f2 x9 Y: A - ) U/ o$ G$ r+ x# s* C' G
- (defun autoarxload (app cmdliste)
w0 w! W4 T% Z2 o6 D$ [ - (_autoqload "arx" app cmdliste)
4 @: j; H9 r( z7 L! L& [3 t. o4 t - )0 x9 p; @' Y) [ w1 i
- $ |6 S/ Y9 {0 X6 G0 A% @7 [: i
- (defun autoarxacedload (app cmdliste / qapp symnam)$ \1 {; B* V) G# e# g' D
- (setq qapp (strcat "\"" app "\""))0 H/ o% I2 l6 N2 ^. X
- (setq initstring "\nInitializing...")' E$ Y5 U) N# `$ X, p
- (mapcar
8 \6 k+ l) q& X; C - '(lambda (cmd / nom_cmd)* o1 } [1 g9 q, d+ G
- (progn
, L3 ?) h# H4 h/ L% p8 N - (setq nom_cmd (strcat "C:" cmd))6 x3 W( J$ C6 ]( D6 J) \: C
- (if (not (eval (read nom_cmd)))- Q1 k8 q3 u) z) _, A
- (eval) V- h+ G( X: @6 P* N% p# W
- (read (strcat2 f @0 U' f6 U: b5 x! p
- "(defun " nom_cmd "( / oldcmdecho)"
! c, ~8 S5 }: Z4 f9 d0 p - "(setq m:err *error* *error* *merrmsg*)"5 \- c5 h. p5 r
- "(if (ai_ffile " qapp ")"
; c0 t) o% H1 c6 Z% b - "(progn (princ initstring)"
" p+ y. r6 W+ Z, J* a( x - "(_autoarxload " qapp ")"1 T3 X4 R- |3 G+ q+ o |# s
- "(setq oldcmdecho (getvar \"CMDECHO\"))"0 H, k' H! v* V
- "(setvar \"CMDECHO\" 0)"
9 r- g' e6 X, k - "(command " "\"_" cmd "\"" ")"" ]( d# R- p( }% N' X2 X
- "(setvar \"CMDECHO\" oldcmdecho))"
; A8 g4 z8 g! t - "(ai_nofile " qapp "))") `4 J- }4 H+ g, l9 I
- "(setq *error* m:err m:err nil)"
. U+ k7 a+ g( ? - "(princ))"
/ C$ M2 V8 I9 h& _2 t5 h - ))))))
) @! [8 B4 G4 j. s - cmdliste)7 S0 X. o7 f5 P( s
- nil
! `& @, d, J8 D - )
( X7 ?1 X, d' W+ K' C - $ `: ~9 n; v" D4 I: T, ~
- (defun _autoload (app)
$ N- C1 U) k0 ^5 } - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
% r8 c1 b$ a: |/ G+ } - (load app)
/ p0 w6 R, a) b/ U - )
2 X: ?3 b1 D5 M8 v
3 Q2 u0 U" E$ v' H- F p- r- (defun _autoarxload (app)7 _6 ? k3 E7 ?& N" O2 C3 Y
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri): ~) E6 O$ J0 ~# h3 h% M, c' T& p
- (arxload app)
6 R& l( G& u$ _6 V - )7 v. {, U# N5 p3 P2 C
% s2 g, w* `' v- (defun ai_ffile (app)
5 O8 l' ^" z5 Q! P/ B2 m - (or (findfile (strcat app ".lsp"))
5 n. W3 ?* _# S; d6 c( t8 r - (findfile (strcat app ".exp"))
8 v. f% I" l% \; C6 y, s7 R0 { - (findfile (strcat app ".exe"))
1 ]( K4 }6 V4 |- e) r/ h - (findfile (strcat app ".arx"))
$ u# i9 d4 C5 F9 }& m: e - (findfile app)) P' [& B3 D1 h" @7 u$ G
- )0 E% |- ?2 ]* @9 F* n% |: V
- )
5 v" A; {7 a3 \! |0 |6 j - 0 C! n; @( O0 j3 _
- (defun ai_nofile (filename)
% p1 y0 b( Q6 h/ U, Z W: ?0 V - (princ+ s; v9 j; V6 `" G9 J' b
- (strcat "\nThe file "# c- T& q3 \( t; @9 a$ u
- filename- M* ?2 e; W z) C
- "(.lsp/.exe/.arx) was not found in your search path folders."# V$ ]# i3 B4 q- i5 `
- )
5 G4 \0 l& Z/ [" l8 M% E# Y& P - )
" T7 L R. d. S: j# b9 F - (princ "\nCheck the installation of the support files and try again.")
% _/ r, E! I p1 I* T4 A - (princ)
/ X7 U4 r& t6 E! H' n4 s - )/ i) y; o4 l% r/ G5 r4 X/ a
- 4 K* f; l D9 k$ t; E, X( n6 u/ H
- : a" A* ]" X. t5 b% N7 f
- ;;;===== AutoLoad LISP Applications =====
& T* ?: l7 U9 Y" Q, ]1 A3 \! ~& L - ; Set help for those apps with a command line interface
, G0 P7 @: s% |, ]& v
6 ?' B5 i; R `- (autoload "edge" '("edge"))1 K8 [2 k' K* e2 ]
- (setfunhelp "C:edge" "" "edge")
' F/ j0 u. a8 s4 k7 u p- o& j8 S5 U - + u# Y! c5 K8 j! |& A u1 O# Y
- (autoload "filter" '("filter " "filter"))
& O5 W5 X2 O# h& U5 a - 6 m, W3 }/ D7 Y% B8 F c5 y+ M" p
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"$ A f, w* g/ i$ ?
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")9 x4 X" l7 K! u2 w2 Y3 S
- )
& [5 Z7 x& n" H* @ - (setfunhelp "C:3d" "" "3d")% _5 ~% F" ~2 |( G" W, Q
- (setfunhelp "C:ai_box" "" "3d_box")
# D" _( m' T* E. O- f - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")8 |( a, f' B2 A% b) R
- (setfunhelp "C:ai__wedge" "" "3d_wedge")+ h- P5 R! P* a" J8 r- Z1 L
- (setfunhelp "C:ai_dome" "" "3d_dome")
0 x$ q8 Z. L: Y, V- ~. @) M - (setfunhelp "C:ai_mesh" "" "3d_mesh")$ B! z" x$ b# M4 Z+ [
- (setfunhelp "C:ai_sphere" "" "3d_sphere")
; \# o. x! X; w; F* z) c% W* Q7 n - (setfunhelp "C:ai_cone" "" "3d_cone")1 P0 u5 z1 n7 d0 I* h M2 f
- (setfunhelp "C:ai_torus" "" "3d_torus")5 \( g, a Y& l; z/ Z
- (setfunhelp "C:ai_dish" "" "3d_dish"); z9 `% m p3 \% K; ^/ Z; C
- ; \3 G4 ^6 Z0 |$ ~: o8 o1 g' r$ @
- (autoload "3darray" '("3darray"))! L6 U! u, p3 f, D
- (setfunhelp "C:3darray" "" "3darray")
: s) G/ f+ q8 a! @
$ k6 @& l1 o1 H, |! [2 ]- (autoload "ddvpoint" '("ddvpoint"))# U+ Z0 C7 | p9 k4 x" Z) N
$ i2 ^3 a- w, i6 j: E; k- (autoload "mvsetup" '("mvsetup"))/ G4 v- F9 ^; u6 ^$ w/ q' D
- (setfunhelp "C:mvsetup" "" "mvsetup")
+ d. D9 p$ V y5 d - / C: E6 d& L5 v1 {3 M
- (autoload "ddptype" '("ddptype"))+ r) _( R8 T% T. t* I
; k5 _, T; ?# y m P8 ]) |6 e- (autoload "attredef" '("attredef"))6 q0 |. E; D& B
- (setfunhelp "C:attredef" "" "attredef")
- j8 C B" U; N4 M- ~7 } - % a! X8 N: F, Q
- (autoload "xplode" '("xp" "xplode"))0 D. W0 Q, [( o" ~9 n
- (setfunhelp "C:xplode" "" "xplode")7 R t" V _/ A$ {4 r- Q
: [% M) Y! w. j1 L0 U- (autoload "tutorial" '("tutdemo" "tutclear"' j* P1 g- Q H# d
- "tutdemo"
) @1 H5 s" m2 H5 A - "tutclear"))( E% E3 P5 J1 |+ Y' D
- 5 u0 m1 S; [! P/ x' X/ P, w
- ;;;===== AutoArxLoad Arx Applications =====- _5 F3 A( z5 H" n' H7 Z3 o" m$ S
- ! R5 X6 ?3 l! S4 n6 z
- (autoarxload "geomcal" '("cal" "cal"))
0 N. w. a9 p: k5 D- T: ^
* ]9 x( B1 Q9 N3 U& ~$ R- t7 u; s- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"4 }2 f ~3 O* n5 U; b3 F! N# z1 d o
- "mirror3d" "rotate3d" * ^) C: F% G5 d9 H3 ^
- "align"))/ s. J$ p6 _1 x/ z% Y+ X( p, f h# V
- 9 C* t& m/ c/ k8 n l
9 e# H/ X& N* r6 `1 O: J4 ?- ;;; ===== Double byte character handling functions =====; f$ c) Q! q9 D+ m* {
2 a2 V i& a C9 {8 ^; [- (defun is_lead_byte(code)
) u8 }, C+ j0 | a2 @" S - (setq asia_cd (getvar "dwgcodepage"))
8 k0 i! `" f' v0 P8 O - (cond
0 W% p9 G$ k( x - ( (or (= asia_cd "dos932")% W9 M2 a# M! _! n
- (= asia_cd "ANSI_932")) h- \& w! k8 E6 c
- ) k7 { t5 g6 y6 Q& ~( h
- (or (and (<= 129 code) (<= code 159))9 y9 T; O3 w. a
- (and (<= 224 code) (<= code 252))
4 U5 H3 w6 \5 s' L* Y& H - )
# x" U" h+ Q& y; [7 U* b - )7 V8 o8 T. `- P' o) B8 ?# W
- ( (or (= asia_cd "big5"): N- V1 @2 Y& y- [3 p
- (= asia_cd "ANSI_950")
9 w9 `' h$ v9 C - )
( C- n: m/ u& f# M8 P- \5 ? - (and (<= 129 code) (<= code 254))
( ^7 X3 g- G t" H0 O - )
+ k% s2 A R) T% W/ U# z- k( P" S - ( (or (= asia_cd "gb2312")
1 p" [) I% x$ V1 g- Y - (= asia_cd "ANSI_936")
. h. e+ [, v! w z - )0 {$ b z# Y9 m0 I3 ?2 k, @+ U" R
- (and (<= 161 code) (<= code 254))! T6 C7 N! U2 t" z; p
- )
" c( s7 H( K; o+ L0 { - ( (or (= asia_cd "johab")
6 K; Y+ |1 e& `' r! W - (= asia_cd "ANSI_1361")8 I* {3 b; x1 }' B) U: O4 d! x
- )6 h" G9 e6 N$ T0 [, R7 d9 W1 X$ H
- (and (<= 132 code) (<= code 211))
- q: h7 x. ]" w% r$ f - )- A3 P3 p2 w ]- F
- ( (or (= asia_cd "ksc5601")
+ k/ g1 w. Y( v g1 s; F- x - (= asia_cd "ANSI_949")6 p7 W1 m1 e! [2 \! u$ \ K0 n
- )
! `3 ?; T1 P g) X8 n' q5 e1 R) ~ - (and (<= 129 code) (<= code 254)), ~* |0 Q# k# v# C/ O3 I3 Q
- )
, V* U, B. U6 V Q; Q0 m A: H$ o - )
- n* }4 K* @" r+ R7 l) Y - )
+ B, s1 t0 O. y, H! Y. H - ; K9 b1 n( H) B
- ;;; ====================================================
4 E7 ^4 D$ a. M N9 ~: z7 G
' ]% `% V. M' A
. S) V& m' @" t* }7 R- ;;;/ M; ~9 H7 O4 K' p1 X! S' j
- ;;; FITSTR2LEN9 j# Y0 J' t. O0 o' q+ j K
- ;;;' y/ P$ d* I5 I0 ?4 ^# B
- ;;; Truncates the given string to the given length.
( _: ^& ^. b0 ^, L - ;;; This function should be used to fit symbol table names, that/ n8 g8 c' @" n
- ;;; may turn into \U+ sequences into a given size to be displayed
! Z+ o: a- r6 n - ;;; inside a dialog box.+ Q" e( F) ]5 t, w7 }" \" X/ u
- ;;;/ b; {9 R' e# I
- ;;; Ex: the following string:
8 m- }. u- c# z; S: e) Z$ h& F - ;;;
0 d- C3 D3 C5 M" e% [ - ;;; "This is a long string that will not fit into a 32 character static text box."
; X, \0 o& G6 m5 u: q9 `% Q8 d I - ;;;
6 w+ C4 w$ q9 ^+ s O - ;;; would display as a 32 character long string as follows:9 u" G: n! z# _+ b% }/ I
- ;;;. Z4 a8 r2 x# {. `' o' {
- ;;; "This is a long...tatic text box."
* T }( L: T( \ - ;;;
$ P1 I# E$ a6 ~. I' L+ h
/ _1 z! B# |' {0 C" S, H% r- (defun fitstr2len (str1 maxlen)
& M+ l6 }8 @# v/ h
n: N# l- s- I) z+ s* z" g5 G5 Y- ;;; initialize internals
1 R4 t; B1 [) B L# v' x6 M' S8 K4 g+ O - (setq tmpstr str1)7 c0 Z3 i# q; f8 U3 m* j. j: c0 r( Y
- (setq len (strlen tmpstr))" [: y. k. J3 ~' B
- / e. z9 [- J1 ~- i6 Q: w
- (if (> len maxlen)
/ e4 T8 ^; E9 p# _$ K/ v! y$ I - (progn
* | ]/ B: |: n4 O8 O - (setq maxlen2 (/ maxlen 2))
$ X. `7 {, r' q0 v2 ^- m' O7 q! i$ j0 E - (if (> maxlen (* maxlen2 2))
2 c; Y" s, _9 k/ m - (setq maxlen2 (- maxlen2 1))
! k. X9 n- e$ L( d - )# [' b3 E8 G5 L% ^( [: z9 f
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))8 L* l' a* X# O8 u" c: R
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))0 e( b5 x0 g7 y+ h2 \
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))+ \! l5 z- h% i3 c
- )
0 |. e" }' A0 S8 w& `8 J: E - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))3 {7 V% F( ]) @, L4 Z) T
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
( Z& p9 M f# z% Y9 S9 x# S1 ? - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
q* G7 t* }( [7 i1 e$ ? - )
8 n, x/ E7 \+ ^8 t - (setq str2 (strcat tmpstr1 "..." tmpstr2)) e6 I# U, }4 Z
- ) ;;; progn
2 D# G" \6 z7 O9 ? - (setq str2 (strcat tmpstr))
9 W! v7 A2 ]! D2 }) `4 |- N9 \ - ) ;;; if
: G# ^0 F9 @( H3 C" ] t' [% a - ) ;;; defun! D. ^4 d4 c2 w0 H5 u2 w0 @; y
- 9 i% Q7 E+ S* }
/ D M- F+ X% h) V# R3 h6 w; I- ;;;
+ W u3 ]7 @$ O* c4 \1 T* ? - ;;; If the first object in a selection set has an attached URL
( F: Z, D: K+ {4 ] n! `4 f4 a - ;;; Then launch browser and point to the URL.7 q; x- u7 ^% v, W. Q9 p2 ~
- ;;; Called by the Grips Cursor Menu
& N, g! B* q' t( ?# A - ;;;
3 s+ _. {$ ^. @ H - + N' |9 I+ H3 O+ s5 c4 e
- (defun C:gotourl ( / ssurl url i)
# q% G0 e/ F. z1 c - (setq m:err *error* *error* *merrmsg* i 0)+ ~8 l, I2 e. e1 V9 l2 u& @
' N. A2 c7 f( j/ P/ Y- z6 F, T3 K1 I- ; if some objects are not already pickfirst selected, & ^% W# f2 s" N2 D) p! E' t6 r2 w' h
- ; then allow objects to be selected3 U, k& O6 ~+ s; A. Z4 A
5 p$ M% }8 Q) T, {# L- (if (not (setq ssurl (ssget "_I")))
7 x# D$ x+ G# B$ t. C- D - (setq ssurl (ssget))
7 t7 g9 s$ Q" D2 w/ u - )
- e4 \; H) g2 I9 ?* [ - " D7 v8 ?! M8 k0 Q& H) n% s/ h
- ; if geturl LISP command not found then load arx application
$ l& B& \ Z5 O& M! [; F' |7 v
% x ]) \5 _. M- (if (/= (type geturl) 'EXRXSUBR)( Y! L+ O5 N! x" d5 {
- (arxload "dwfout")7 f& q3 N/ j9 ]. u
- ), m- O* U% l x; @7 b9 W% z2 E) t
-
$ v, Y- ~+ E- `% I* {: w - ; Search list for first object with an URL: ?, q& Z3 Y" g: X' e- k. T
- (while (and (= url nil) (< i (sslength ssurl))). \) T. t$ t! O) n ^& U1 r& f5 J' L
- (setq url (geturl (ssname ssurl i))5 ~2 p, i5 f8 I; F9 j
- i (1+ i))
. N4 J- u0 i. x - )
) u! N# ]$ v& D6 e2 W6 e- @% } - * X: r m+ X" ?
- ; If an URL has be found, open browser and point to URL
e( ^6 d; n1 x% r( n# n - (if (= url nil)! i& g$ U$ ]* m [7 v% O; o
- (alert "No Universal Resource Locator associated with the object.")
8 l! M" ~" P- v; V( m u - (command "_.browser" url)
6 A4 W) g+ C8 V0 k2 Y4 [& ?# t& q - )% r1 x9 B# b* u
. T+ L! J6 a, \1 s& I* @- (setq *error* m:err m:err nil)9 Z, {8 O0 X; I% K& h
- (princ)
$ r; {( |- k9 i
4 ]6 M7 f$ M% d- )
% o. ?) P* \7 ` - 0 q" a* l, p r# R+ c) I2 O
- ;; Used by the import dialog to silently load a 3ds file5 \% S, {5 G& l% M
- (defun import3ds (filename / filedia_old render)
0 i$ o! N1 q$ s1 P+ b4 i( { - ;; Load Render if not loaded
: q# \- {9 |2 q) ]3 a - (setq render (findfile "acRender.arx"))
. G8 K. G/ r' {7 ~" r - (if render* F# X5 ]6 g: U3 u" u! l
- (verify_arxapp_loaded render)
. x/ w) K- }$ I/ I& G - (quit)5 Z7 T. Y; v/ {) R, F" i' v
- )
4 A% o+ ^2 {# J& S1 w& l2 T: v - 0 X7 l1 n0 s3 E- z
- ;; Save current filedia & cmdecho setting.
$ |9 }4 p2 f5 n+ e) E# Y8 } F - (setq filedia-save (getvar "FILEDIA"))
+ P. v- v$ G: R - (setq cmdecho-save (getvar "CMDECHO"))
% Y% z* v' Z7 F& } - (setvar "FILEDIA" 0)3 U7 q7 }& @/ J7 S0 p8 z [
- (setvar "CMDECHO" 0)* `1 C& S' J: E/ Q ^
- ?7 A7 l5 i; v% O h I
- ;; Call 3DSIN and pass in filename. Y7 H( W" R* _ r- d6 `3 M$ w
- (c:3dsin 1 filename) J% E& A! K- F# U, e
4 c" s' f+ }% ~: S) L+ [. }, G- ;; Reset filedia & cmdecho0 \( A2 d4 x, r! H3 n
- (setvar "FILEDIA" filedia-save)
2 s) k& @$ o6 u/ r2 F) ?+ d - (setvar "CMDECHO" cmdecho-save)
$ V3 x# h" f5 b0 Q0 O2 V' N( { - (princ)/ o8 O" n; E6 T' I" j) R
- )! ]- G' Y' b! K% j0 r7 [ o
5 ]; m* Z" t Z6 }+ t1 \& z
3 L4 J7 \! n4 \' g) W \- ;;;=== Menu Functions ======================================# M4 R6 t/ o7 o
- ) H) A+ ?1 P% C8 \9 ^" V" G; n
- (defun ai_rootmenus (), `. i" p! G8 T2 F( `' v1 |" k
- (setq T_MENU 0), N1 P, G& ~" n
- (menucmd "S=S"), n0 M5 V/ c" f$ A+ j
- (menucmd "S=ACAD.S") B/ Q/ s- G$ h8 y" ~2 R# Z: F+ h
- (princ); @0 `/ k# K" r3 }/ u+ v: B
- )
$ f3 G. H3 S8 _' r
6 I$ m# r! F5 ^- r) i- (defun c:ai_fms ( / fmsa fmsb)" Q# c6 r) i7 ?
- (setq m:err *error* *error* *merr*)
6 |& ?/ b6 n2 E - (ai_undo_push). ]' r9 i+ c! j
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))8 m7 t) z, M7 E8 c+ b* B; Q
- (setq fmsa (vports) fmsb (nth 0 fmsa))6 i5 i% E5 \! _8 f
- (if (member 1 fmsb)
5 \( v' M) S, @3 V - (if (> (length fmsa) 1)
: Q; V6 Q! G7 M: A2 S/ O - (command "_.mspace")
( D A& z" r/ ~- S - (progn- _$ a* {' r$ X4 [( ^- Z
- (ai_sysvar '("cmdecho" . 1))
6 Y3 m8 o6 M9 ?/ H8 a - (command "_.mview")
+ c! P- o* v% b& H9 I9 X: e3 h1 _) y - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
. @) F0 N' N# M/ y3 D# V4 H3 \ - (command pause)
% z8 o# L1 m" O9 Y. l - )5 r" G3 x1 y# o" T/ Y7 c4 |
- (ai_sysvar NIL)+ m" q4 Z& k# T5 L( ^) C L
- (command "_.mspace")/ @" u) ]4 m; J" r, e9 R/ `2 ^
- )
( b5 e8 y. X; Z! a% L - )6 L4 g. K" b. X
- )
4 h# n5 `" ~% Q7 B( H$ \$ G - (ai_undo_pop)
_0 }2 Y* G3 I6 h" }/ z - (setq *error* m:err m:err nil)4 C( [" g; d, L) H; k# j3 o
- (princ)
) Y* \5 |% P. O - )
6 T9 w( \8 y7 j& \ - ! @3 n- a: a) h( u, P6 x. L
- (defun ai_onoff (var)9 M7 ]$ ?; K' Q$ u0 K; P$ o% g/ f9 Q
- (setvar var (abs (1- (getvar var))))
- [* d# R' n9 p3 y1 r& C# \ - (princ)
L7 X; [! C# b' Z+ S4 e - )/ e) G* x1 _ f" d4 y0 X
; d3 k& K" f1 b! I. a; l5 H- ;;; go to paper space
5 N' E. U1 E9 Q0 q - (defun c:ai_pspace ()
& N# B. M! V$ n - (ai_undo_push)
# \7 o2 H r' L2 [4 R - (if (/= 0 (getvar "tilemode"))
9 F* c4 |/ F$ Q, l - (command "_.tilemode" 0)2 c5 b- R- C$ K$ P% x& A/ `
- )
$ x- G! d4 `. E8 L0 l* e# a' _ - (if (/= 1 (getvar "cvport"))
# ?# ^" Z7 s( B( A; r. U5 C - (command "_.pspace")
8 ~# ~7 {8 F% B5 s1 X% G - )
X4 ] }' k6 J# B - (ai_undo_pop)
, M# a5 L& _! f. l$ \( i - (princ)
0 M3 x$ Z4 m$ T" r+ y - )
8 |& n5 t! P6 C5 v: s! H* N - # y4 P4 Z7 I" o8 g7 i$ G
- ;;; go to tilemode 1
& x, }3 S5 p2 ?2 J: v% [ - (defun c:ai_tilemode1 ()
+ L' F+ X3 }0 u! d - (ai_undo_push)2 H: t0 q$ k; ~6 q1 z
- (if (/= 1 (getvar "tilemode"))5 l0 n# {& e) n! N( M6 K
- (command "_.tilemode" 1)# p3 |; v/ U6 K* U
- )' `# u+ a. z. T: f
- (ai_undo_pop)
# ?$ ~# t+ \- C, N9 c' s I - (princ)1 T' i- ^" h8 }: u6 Q- p" l
- )
+ C) ]7 |3 P3 V8 H% \
) b$ Y6 J2 b! R1 e B d6 r- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
/ x* g3 X6 F5 Q5 m0 Q, [6 n6 n - ;;; Toolbar Dimensions/ Align Text/ Centered
: ^# A) m" [, x, A
9 F' \! _: |1 H) g! v+ v- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
4 t l5 {9 M1 g! O0 G I" ` - (setq ai_sysvar (getvar "cmdecho")) x9 [% b- {9 {, c/ ^1 r0 [- W
- (setvar "cmdecho" 0)7 S ]+ c4 z" {6 z& Z* e" ^) K$ W6 L
- (cond1 n2 H9 H2 a3 C/ O. ^% ?' p
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION")))); E% d' U- H6 w$ V4 p. |
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" . E; V6 Y+ Y% I6 d2 N2 x
- "_.dimtedit" ai_dim_ss "_h")
( ^; m# ~/ k# u) U - )
- U' n$ p) \! m4 I- c - (T nil)
7 `+ _- L& v: e - )
0 ` v7 [% i$ `# G: {+ Q - (setvar "cmdecho" ai_sysvar)
( |7 l6 f7 E! b, f% v - (princ)
0 D% _+ o' y* q, K - )8 g8 ?: B6 a A* j+ ^) ~
8 r% t D0 D. V2 J, ?- ;;; Shortcut menu for Dimension Text Above 6 d' U2 E7 N) v
- ; O# D$ r; _, e: Y, H1 e; q
- (defun c:ai_dim_textabove (/ ss)4 F0 ^$ U2 N5 U7 z: }) l% Q, V
- (ai_sysvar '("cmdecho" . 0))
4 Q7 i2 _9 s3 S* X" | - (if (setq ss (ssget "_I"))6 c/ \2 J: ]' Y) d9 U4 m- Q ~7 y
- (command "_.dimoverride" "_dimtad" 3 "" ss "")- u' n- {8 S1 m+ k! {2 ]/ X( t( W3 y
- (if (setq ss (ssget))0 n/ O2 p* f- O" q' y
- (command "_.dimoverride" "_dimtad" 3 "" ss "") # v1 }, `2 O+ Q- a6 L. k7 @( J- D
- )3 C1 K0 T$ h$ S2 X$ K" _4 g
- )
6 x! @ g0 j3 }/ O" n - (ai_sysvar NIL)
8 s) K; d/ P, t$ f, I% d - (princ)" U# [& b( S2 y6 m- [
- ): ~; X/ u! I. y. G
" W$ f- d3 p$ X9 R+ F- ;;; Shortcut menu for Dimension Text Center
8 I# O5 C( C" q8 |* I- @2 k2 p8 Y
& n0 G2 Z1 E0 E! b% P* F- (defun c:ai_dim_textcenter (/ ss)+ ~6 M! H' f1 m n7 J
- (ai_sysvar '("cmdecho" . 0))# _/ U; y( ~2 j2 r9 B
- (if (setq ss (ssget "_I"))# a; U* D9 A; F* x3 Q4 e
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
& X. i9 t8 |, \. r5 s. A - (if (setq ss (ssget))
* \5 N f8 l1 } [9 I/ x0 V - (command "_.dimoverride" "_dimtad" 0 "" ss "")
; G0 s7 Y4 \2 H( [ - )' j9 L4 B# t/ {+ p( K
- ); x" p1 q, n4 F( J% C2 g
- (ai_sysvar NIL)
1 f! b+ O$ y, @1 f! W8 M; S - (princ)
6 R8 x" f7 G! @0 w } - )
2 E8 t4 w N' o0 `
, F. E3 V/ ]0 N- ;;; Shortcut menu for Dimension Text Home
' j& j- J; g" ?. p4 E# H% I0 G; Z - 4 {9 ^+ ~ ^- y/ r' o: {* @
- (defun c:ai_dim_texthome (/ ss)- e) h7 f/ D# \' S7 f) G7 P! L+ K* {
- (ai_sysvar '("cmdecho" . 0))
6 h$ t. v0 P! C7 ~" l - (if (setq ss (ssget "_I"))% x2 N2 W4 b% i2 g
- (command "_.dimedit" "_h")( \+ B% P) p9 x: [: S' }0 _
- (if (setq ss (ssget))
8 `1 o1 s% ^+ w. a - (command "_.dimedit" "_h" ss)3 H, P) K& @1 I# @* K
- )
- f2 r+ X7 @% s1 Z7 V& N - )' ?4 j8 `; s1 R2 r/ d _
- (ai_sysvar NIL)+ S F+ |" Z1 b! ?3 T) i
- (princ)
! S$ ?0 x8 [! Z* a - )8 F) n1 @6 Q6 C& K$ ]
, a" r. K9 K9 Y; q: ^' F
& Q/ R9 L: x+ o4 n! N3 l0 y8 i- ;;; Screen menu item for CIRCLE TaTaTan option.
: g9 a, h) X4 r0 F( \) S - ;;; first, get points on entities& O2 `& L) t4 M: v
- (defun ai_circtanstart()
# g4 T! q5 ^* }& s - (setq m:err *error* *error* *merr*)
0 s. y) a6 b2 H! x8 X5 G - (ai_sysvar - W: g+ G% l& F3 _) {+ E
- (list '("cmdecho" . 0)! r$ j+ N* n5 U
- ;; make sure _tan pick for CIRCLE gets same entity
6 i* R: ^/ `; h - (cons "aperture" (getvar "pickbox"))
% c1 {9 q. O& C% t2 C - )
$ v+ P7 s6 ~7 ^$ \% Q" A' P - )
. } S' d- ]7 T* w - ;; prompts are the same as CIRCLE/TTR command option
/ i$ X& D+ g m5 y8 I) ^ - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
' j9 e3 M( t9 L+ ^, T0 A# m7 Z - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))* ^, L& N+ Q' {( J! |( @' e# E( T
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
5 P; A- u6 J( H1 \" R0 K - )( O8 R _1 C; \+ A
- ;;; Command-line version) R$ d2 M% A/ S6 g$ ^
- (defun c:ai_circtan (/ pt1 pt2 pt3)
% x- ]- s7 |/ @9 k1 {: b - (ai_circtanstart)
( v3 u u+ D* g! N$ ?* Z x4 o
" l6 P7 ]; P! Q7 {7 I! S$ a2 L# D- (ai_sysvar '("osmode" . 256))5 t$ r1 {# V3 m# z% _! J9 g5 z; M
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
- K' c' w: J& G! G! Y; h' {7 b - 1 @+ v, ~; V+ o% ^. y# f; |2 D
- (ai_sysvar nil), c: q4 B9 Q' a8 a3 s: v
- (setq *error* m:err m:err nil)0 P# z* L6 ?7 k1 a$ W! g' o
- (princ)6 C' K1 V6 f7 s8 e: C+ N( H S
- )
5 W# h# h0 t, y: V# e) W4 U - ;;; Use this if CMDNAMES == CIRCLE2 E* G6 |4 p* _! ]% {
- (defun ai_circtan (/ pt1 pt2 pt3) w9 b f; {" f N8 O( ?
- (ai_circtanstart)% a- e5 L& a9 n H0 z' O! Q, T/ h
, K9 a1 l3 s/ ]8 C% B, O( u- (ai_sysvar '("osmode" . 256))* i6 n, R$ S) X0 |) S5 H% s: H8 I
- (command "_3p" pt1 pt2 pt3)
( z8 }# n Q8 P6 B/ t3 g - ; k# U4 A( J% P1 G7 x3 f# @) C
- (ai_sysvar nil)
4 d: ]) Y( A, R9 T$ P - (setq *error* m:err m:err nil)
( C* `# m, b) ] - (princ)2 e- [% Y R+ S8 S
- ) E1 t! b+ e3 I9 `$ i7 }
, }; K5 Q( x! d4 Y* M" o" Z
; ?5 M( S, D- B7 n- 0 b7 J! T1 ?3 @ \9 c8 q
- ;;; Shortcut menu Deselect All item.
% w) h0 Z# K8 n: N7 N3 o - : r4 C, V# D2 o* m- b
- (defun ai_deselect ()) w A; d/ V% q! j a! Q9 U0 \. J
- (if (= (getvar "cmdecho") 0) ;start if
0 g4 M; R1 `, g2 F6 N7 ^/ Q - (command "_.select" "_r" "_all" "")) c: h6 a5 _& ?! c( O
- (progn ;start progn for cmdecho 1
2 s/ p _/ p# m9 f7 t5 K - (setvar "cmdecho" 0)" q) j% m: p% z8 z C. P# F; W
- (command "_.select" "_r" "_all" "")0 z% e* D9 o: o8 k* j! y$ N# r
- (setvar "cmdecho" 1)
d4 u! v# b' S9 G3 V - ) ;end progn for cmdecho 14 M+ I: x2 W/ K/ G7 x' m3 p% U
- ) ;end if
/ [( y( m( c2 k% [4 j( e1 _ - (terpri)0 @) l! R: s, q) V# o0 D' a
- (prompt "Everything has been deselected")5 t& S' v) O& w% V* V- f. |# Q
- (princ)
" j. } v& w8 l$ ?& B6 U9 B. Q1 J - )2 c/ e- [ R! I& U5 H: r
& b: p/ x: H0 x& c& }- ;;; Command version of ai_deselect to be called from the CUI ~# @1 h" ~/ [0 N* i: V" T7 H" ]
- ;;; so it gets properly recorded by the Action Recorder; k4 R* n" i$ \
- ;;;1 u3 s* ~. q# a) L6 {
- (defun c:ai_deselect ()
2 f4 g3 b2 G0 i( c - (ai_deselect)3 ]4 b$ l( C( t! \" g' N) \
- (princ)
( `$ |! |# i& A- Z9 j - )
: U& ]5 x! [ K R4 u2 l% [- T
' m6 E: o2 ^& U" s9 F" Y; k- ;;;# g1 h) |6 s8 E* F! Z7 p1 }
- ;;; Enable Draworder to be called from a menu! r% H* ]- ~* p5 I1 A& p
- ;;; Checks for Pickfirst selected objects
/ v0 K: z3 F/ J4 H7 v; [ - ;;;9 K* e; \0 t6 O& J9 C) n
' u& P; r. Z- T7 K) V9 I- (defun ai_draworder (option / ss )# X$ M" L4 R3 J& K: i! J7 |5 L% @
7 S0 q9 W% U2 |- (setq m:err *error* *error* *merr*)+ X: K. [( R5 `/ Z$ [
- (ai_sysvar '("cmdecho" . 0))' {. K" Y: \8 q# o6 F- ^/ t9 n
- $ u. A2 r% i8 M" H
- (if (setq ss (ssget "_I"))) I" _- q- Z3 i+ N& e
- (command "_.draworder" option)
8 n9 S8 T( f. k6 i% h - (if (setq ss (ssget)), r _4 n4 n" V; P( P' t' ~
- (command "_.draworder" ss "" option)9 F0 _% ]0 g5 U, r$ `( V+ Y
- )
% r" L, ^" F8 z$ C# L* A" g - )
6 z; p$ ~& O; x) m! h% O& K/ O+ q - (ai_sysvar NIL)6 e: J) i: O% O$ L* G2 d
- (setq *error* m:err m:err nil)- l7 o# ?: Z* N
- B2 T8 i' }5 }8 v0 a
- (princ)+ @7 p- ?, w6 l; G! J% U
- )
/ q# r. i. J. ` i! f( C7 ^ - 8 r; R3 O) h4 i, S) w
- ;;; Command version of ai_draworder to be called from the CUI5 A! q9 e1 n8 Y5 S3 N, b5 X! {
- ;;; so it gets properly recorded by the Action Recorder6 ^3 W9 _0 e* d& J5 d
- ;;;
( f4 h2 k: t$ F/ z - (defun c:ai_draworder ()
! v' ?5 C, d2 c2 w, Y: g# _$ I - (initget "Above Under Front Back")
% R4 [. o- Q" Q, a1 v3 X2 L8 N - (ai_draworder (strcat "_" (getkword)))3 n. x( @+ X( J" k3 n% L$ r
- (princ)
7 g' `" v* e" e" y# M - )
; m+ d3 E2 {7 X+ d% V; A. c7 F" o
6 S" I" ]9 J8 b; I& d* ~' i& \- (defun c:vlisp ()
! u) P/ T A& D1 \3 o6 `* M2 B* v - (if (/= nil c:vlide) (c:vlide))! d5 _8 t, |# e
- ). j8 G; @: j: w6 |8 `' N
/ ^. D" V8 B# A/ S$ [# l- (princ "loaded."); N$ P1 n1 @/ r: o* z
- - I; \$ T, S8 N5 q9 x
- ;; Silent load.6 k. {/ O2 b, a$ f0 ]( U$ F1 R1 ]
- (princ)- ?' N% a2 ]4 F& Y
! ~+ g4 f% b* w3 V- ;;;----------------------------------------------------------------------------6 ^: K. q+ I r. r; a r8 W
- ;;;5 _- a7 `. }# X$ Z
- ;;; DDCHPROP.LSP Version 0.5
+ S* @2 |( b- m( |7 F - ;;;
4 b& t* k: W* `7 u; a - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.% J! _/ Y& M+ Z8 O; K
- ;;;
: x. }' X- ^" Y1 |6 N$ { - ;;; Permission to use, copy, modify, and distribute this software
Y9 i" T _ J& ^# L - ;;; for any purpose and without fee is hereby granted, provided
1 F+ F E& p4 ]( j - ;;; that the above copyright notice appears in all copies and that1 L4 o; h- E) R( D( i
- ;;; both that copyright notice and this permission notice appear in0 _- ]' @1 B# o) }$ N- c" W D% x. u
- ;;; all supporting documentation.+ O8 M6 ~+ Y- w9 @ _6 z! g1 |1 j
- ;;;
5 P3 m. O5 y, z' B2 h; { - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
) N; |1 o0 Q7 E& ` - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
4 r! e, J- L, e! @; a$ P7 O/ k* w - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
4 m( B7 c. V! A, h1 g - ;;;
. @) w$ Q: r# f( k4 \ - ;;; 2 February 1992* }8 m$ n3 u. V7 z, ]" U! Q8 N& f
- ;;;
& L4 e, O0 T+ s - ;;;----------------------------------------------------------------------------
8 S/ f; `/ |8 B7 U - ;;; DESCRIPTION4 Y) e" N; \. n( o% e
- ;;;----------------------------------------------------------------------------' X% v, U: Y" `1 z/ } q
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
' d1 b$ `# B/ |3 s. J" u1 f2 u$ I4 S - ;;;
7 F/ c1 {& K* o$ D& E ] - ;;; The command looks similar to DDEMODES. The main dialogue has an image
0 Y c7 ~9 z4 }5 v8 c; L# n8 a - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). - K' D& V, \4 I/ P
- ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
# Z9 C7 E2 D# Z- i; I - ;;; The dialogues are all defined in the DDCHPROP.DCL file.$ t) }& Y' [6 ?. W4 B5 F
- ;;;
. d. H3 `! X2 { - ;;;
/ @0 U Q0 t2 y6 W [ - ;;;----------------------------------------------------------------------------
7 ?( C/ _' [' a9 G3 w3 |7 | - ;;;----------------------------------------------------------------------------
) B3 S& t+ l7 e& r - ;;; Prefixes in command and keyword strings: 1 A& K2 _% c" _# V
- ;;; "." specifies the built-in AutoCAD command in case it has been
4 P9 p( `) {+ F& Z1 `% E, C - ;;; redefined.! P; g" V4 {! N( T) D- |
- ;;; "_" denotes an AutoCAD command or keyword in the native language
g* b' |, D# X0 f8 V% Z - ;;; version, English.
, s. u& r3 S6 D+ h9 j$ I& g" w - ;;;----------------------------------------------------------------------------, y; q( M9 a/ e9 [' ?; j
- ;;;1 v% ]* C- z$ K5 {0 E
- ;;;
7 b& @) I, P( h9 k( g9 k$ R - ;;; =========================================================================== z9 e5 ^- f4 @. Q8 o
- ;;; ===================== load-time error checking ============================* ^/ V1 j% I9 l# U( b+ l
- ;;;
8 V7 e) \7 W' h
1 Q2 i* o, \) f0 b" H/ K- H* G- (defun ai_abort (app msg)
- z- ]5 e* _7 I+ C: \ - (defun *error* (s)
7 o* o8 e8 q" X/ {! v- n" R; f* b; ~ - (if old_error (setq *error* old_error))
" P# I& e# E6 s - (princ)
4 X& Q C+ H5 C( A& G - )
. r3 [ C, L! \" j - (if msg8 j, Z7 z& j* s
- (alert (strcat " Application error: "
( y: Z' _; C) c, |8 C - app P, V/ `+ M" x, }4 u# D& K
- " \n\n "$ J3 H) }& `( S5 v' K6 E- r
- msg
/ y& l8 A# i4 U+ m3 m" e5 q8 e; T - " \n"/ J8 O( @, g) i. Q y5 L
- )
( ]; M. P I6 H - )0 z: a! x5 @9 D# M
- )/ s! P; y* i5 N, F
- (exit)* b4 a* c8 }1 K. `
- )3 q0 @9 b4 C" X! f. W
- 9 u1 l |; s! s1 H5 n$ k. r! N
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,4 W+ Y4 S# C, j: i& q' \
- ;;; and then try to load it.
4 q2 f" j" i# a6 _. [ - ;;;7 g2 p# o5 ]. g* B; n7 o2 C, g
- ;;; If it can't be found or it can't be loaded, then abort the$ G+ b- l+ S- u, q
- ;;; loading of this file immediately, preserving the (autoload)
* X% H2 l! U. w6 P6 J/ d/ d - ;;; stub function.3 V% G4 z9 {% n+ d/ W
- ! f, t( _' w6 V$ E0 m# i$ F ~
- (cond- s5 |3 q5 p) R4 F$ S2 n. S. F: \
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.. V1 _' }! w% o. J
! Y: H5 l+ C) C3 L6 E# |0 w$ z5 }- ( (not (findfile "ai_utils.lsp")) ; find it
7 K8 O5 f- t, F* M - (ai_abort "DDCHPROP"/ X: r! `* }5 \* l& K" X2 k' Y
- (strcat "Can't locate file AI_UTILS.LSP."
" j) _. k" p4 T0 g7 K1 G: K - "\n Check support directory.")))2 p* Y/ ?! r# {/ H# t/ K; M
9 o$ U4 ?* L( F- ( (eq "failed" (load "ai_utils" "failed")) ; load it8 f5 |% ]) R( m( {
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))5 u: D+ U1 z' F8 A
- )$ F" i! h* m( m/ L! k
- ; v# I* _: S3 A0 j @* ?& b
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
) e g/ L) F0 z O; g u - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
; S+ q4 I' V; C0 W9 h2 \/ g - ) ; ai_abort's alert box dialog.
# q' |# o- _$ e
8 y' U |( I& s b+ n- ;;; ==================== end load-time operations ===========================
7 }2 J- Y- I- A9 S
; m% v) }3 ~6 j2 N- ;;; Initialize program subroutines and variables.
# r: S- k0 f* D8 G9 D! V& `2 h
) y+ S0 {% |/ U1 Q. W- (defun ddchprop_init ()
6 ~2 p7 b. V, P9 X6 O. t1 ?( b6 {
0 s; v$ j4 G8 a- [# N5 I6 S5 a- ;;: s/ y: F9 c( U
- ;; Define buttons and set values in CHPROP dialogue box
" x( @, s6 q2 ?5 C - ;;
0 T! I- U! [, W& M8 a" T! L9 J. A - (defun call_chp (): f2 }' X7 u% t" ~' y1 r! K
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))2 p% y# T- L0 A& B2 }
- (set_tile "error" "")1 z. _6 x% V9 g1 r
- ;; Set initial dialogue tile values9 k) }1 x8 ^! V2 O) @7 k$ r
- (set_col_tile)
- i$ S1 G% K! m! G% d6 r6 T - (if (= lay-idx nil)- x5 h6 t1 K+ w( i9 G& `) ?4 `
- (set_tile "t_layer" "Varies")
0 L0 l5 ~/ l D' C( Y4 L9 ^ - (set_tile "t_layer" (nth lay-idx laynmlst))5 o/ c: q* v- n2 j
- ) }! [5 a9 w* Q
- (cond
3 r) h, ]. y- c* h9 |' f% i - ((= lt-idx nil)# N9 Q9 E6 X' v8 @/ F
- (set_tile "t_ltype" "Varies")
* e8 l' }0 |. Z* u: C/ h! L9 @0 k - )
0 x {* A8 k1 e3 n8 s) Y( c - ((= lt-idx 0) ; set tile "By layer & layer linetype"
t0 O# Z7 Z$ p4 z - (set_tile "t_ltype" (bylayer_lt))* J& S: D9 M9 ]) k, ]1 y
- )
" V1 E& R) N; S- f* Z. p2 i' I: V - (T
4 V# j8 d, ]6 P( D- t1 w - (set_tile "t_ltype" (nth lt-idx ltnmlst))
! n; y& s8 ?, K0 _ - )
/ h. [& }$ W: W* O( Y - )
h y+ l8 Y8 |+ A2 L# K - (if (or (= ethickness nil) (= ethickness "Varies"))5 B8 ~5 R4 J( D) g9 k) p
- (set_tile "eb_thickness" "Varies")& {; f* D( x6 }
- (set_tile "eb_thickness" (rtos ethickness))9 s" F5 n, ` ~' I- _
- )
& |8 w- v! b1 H- ]. o9 R - ;; Define action for tiles
- h3 S- C2 K' I - (action_tile "b_color" "(setq ecolor (getcolor))")0 A6 e0 |9 y0 Z5 D$ p
- (action_tile "show_image" "(setq ecolor (getcolor))")% c9 U+ r6 |0 p/ j4 L1 F
- (action_tile "b_name" "(setq elayer (getlayer))")5 |/ i+ ?: Y, p m
- (action_tile "b_line" "(setq eltype (getltype))")+ h3 k) l, M8 R' k6 V; R# h" W- {
- (action_tile "eb_thickness" "(getthickness $value)")7 D- H: U' i4 P' k1 i+ M
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
u% O8 c+ I! m a/ `* _" S - (action_tile "accept" "(test-ok)")7 {. {. |2 v$ Q
- (if (= (start_dialog) 1)9 `7 @, ]" J5 F! K! m# f0 V. B, D( V
- (progn
- x r. u: I0 Z# p; v1 Z# _ - (command "_.chprop" ss "")
v( E. }' Z8 @7 Q6 v - (if ecolor
! `# f3 Z0 X4 t1 x2 \ - (progn
t' l+ p" ?7 c2 O% b7 |1 I- l6 _* u - (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))* j, ]8 ]( g* [ @% p* z- U ~
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))
0 O' o( w O1 s/ {0 P1 U - (command "_c" ecolor): p2 \$ k# a9 G
- )3 R: Y' e3 I" P- |0 _# d6 T+ P, }
- )
: V! S8 `% x- l& ] - (if (and (/= eltype "Varies") lt-idx)
6 O$ x7 E" @; a - (command "_lt" eltype)8 E% Z7 j' r" t8 W' U
- )
8 P: v3 O1 C: F2 O. b. R/ V: r - (if (and (/= elayer "Varies") lay-idx) D* X: T d' g
- (command "_la" elayer)
+ q4 {" y7 D, e( y" z/ R - )
0 `, m6 d. `: U; H7 _ - (if (and (/= ethickness "Varies") ethickness)) |; F# b! ]1 l! z, f% L! l
- (command "_t" ethickness)' p( v* w# A. R }- E) f; ^; M
- )
: p6 g- k$ O/ l9 T4 z' B2 X - (command "")1 _ h q% a# X" M; C
- )
; ^2 v% T' N9 X7 f: L+ Y: x: { - (princ "\nProperties unchanged")
D2 [" y7 x5 D/ F4 u - )
! f5 N* _) k' \5 B! t) L7 f' u - (princ)
; a2 _! m9 y& l* x& b - )
" G" B3 ~8 @9 I; X, I* B6 X, e - ;;. j3 m& g0 J+ |7 o
- ;; Function to set the Color text tile and swab to the current color value.
! p }& g/ ~! ?7 ]7 A& n/ Z6 f5 t: { - ;; N! q M! K/ m$ D9 w" V
- (defun set_col_tile()
, `/ Y: o% W- V1 J# ~ - (cond 6 e# _7 d3 b- H, S2 a7 u' e
- ((= ecolor nil)0 q% i* F0 a: D$ j
- (set_tile "t_color" "Varies")4 k& O# ]4 _1 `# a- l$ X( u
- (col_tile "show_image" 0 nil)3 Z9 b' h/ E; y! {
- ): k- T6 O8 e2 G
- ((= ecolor 0)' G9 x6 T' l: H1 R( x% r/ y
- (set_tile "t_color" "BYBLOCK")
K; a' U/ w" J: } y - (col_tile "show_image" 0 nil)
- O/ t% V, i6 N6 I - )% q+ E6 D+ ^5 ]# F7 I! K; Q
- ((= ecolor 1)
; Z5 e! a$ S9 h - (set_tile "t_color" "1 red")
2 c6 v) \1 ]3 R, v! ] - (col_tile "show_image" 1 nil)
O! x0 [/ I( b8 o' c4 h - )
k" S' I2 d$ B - ((= ecolor 2)' D1 \4 @5 D; H6 Q3 ^% v/ N
- (set_tile "t_color" "2 yellow")9 a9 t) N2 x3 n
- (col_tile "show_image" 2 nil)" M' V9 L' x/ {" z, n
- )
7 q. ]& o8 h: X0 g" B - ((= ecolor 3)
$ H* j$ y6 y0 [+ j/ `% u5 o, _3 ] - (set_tile "t_color" "3 green")6 r7 |% K( }) P9 Z& [4 `) U
- (col_tile "show_image" 3 nil)
1 W0 A+ j& h( z5 `. c - )6 E$ N6 l, @1 [
- ((= ecolor 4)
; `+ d* T I" e% e0 R5 H' B - (set_tile "t_color" "4 cyan")4 S$ E$ [8 ^! |6 V, q B
- (col_tile "show_image" 4 nil)5 ?6 V6 @# a$ m* `
- )
+ S4 g) q+ n: S5 y+ o' A/ W F - ((= ecolor 5)5 g+ h3 d6 I) d& S
- (set_tile "t_color" "5 blue"): m9 |; o/ \# C6 w2 z
- (col_tile "show_image" 5 nil)
" z: }% t( y( z/ J/ @ - )
! Q/ X5 i7 S: c4 `7 k - ((= ecolor 6)2 ]! W- N4 B; X3 Z5 U7 p$ p& p
- (set_tile "t_color" "6 magenta")
" ^# q. x: u3 y3 { - (col_tile "show_image" 6 nil)# F' [. `3 t: P$ K( y
- ), G, _4 G4 r2 S" \1 t
- ((= ecolor 7)" N2 z/ a+ ]) O$ m
- (set_tile "t_color" "7 white")$ N7 A7 X1 w h+ N; H2 d: y3 M2 M2 K
- (col_tile "show_image" 7 nil)
0 ^! h J5 I( k' E } - )
6 r4 h, O, s# n& T1 F- j* D# ^2 | - ;; If the color is "BYLAYER", then set the tile to+ v) ?0 H7 L+ M3 I0 M, p8 i
- ;; show it's set By layer, but also indicate the+ t; _: y5 C7 `" r
- ;; color of the layer - i.e. By layer (red)) v7 a( H- k$ W' m2 D& m
- ((= ecolor 256)
; }( X0 I) g# a7 b* k6 J- m# R, b - (set_tile "t_color" (bylayer_col))
0 m1 `. c& c$ X0 V" F8 A - (col_tile "show_image" cn nil)
) S1 {$ s, {! s# ^7 p - )% h X; U( n% v% C9 T
- (T U; }7 C- d1 Q) H& m- c
- (set_tile "t_color" (itoa ecolor))7 S0 v$ ~$ {2 A2 M7 F6 i5 Z) {
- (col_tile "show_image" ecolor nil)
" f6 w) E \' ^, Q0 Z3 t3 [* R8 V* y( i - )
; c- Z+ N3 s& x/ q8 s: }/ t - )
+ H9 a3 k8 Z9 \, V - )7 b/ z8 z/ ^ k3 M$ x
- ;;3 L& K7 E0 u* T1 l% Z- S# }
- ;; Function to put up the standard color dialogue.8 l1 X' O- ^8 x) ?$ }
- ;;
/ c, P# h5 n8 z5 i F% x/ E - (defun getcolor(/ col_def lay_clr temp_color)) z8 o: I. A' K% Y: _- K
- ;; col_def is the default color used when rq_color is called. If ecolor
" t" S% |2 g' S0 I- Z5 W - ;; is nil (varies) then set it to 1, else use the value of ecolor.1 K" f; I# t! F' h6 q; {
- (if ecolor# p3 Y. w3 ]' p: F2 t
- (setq col_def ecolor)
( {* u9 z" q$ d5 d8 K. y; Z" ` - (setq col_def 1)
& D1 }$ T% |; { - )( \7 @0 L t, S& s6 d
- / @$ V& C# _" w( y- R' M1 g0 S; ^
- ;; If we're working with a single layer, get its color# T/ v# c- u2 i* u
- ;; for use in the color swatch if the user selects color BYLAYER.$ d8 G& z+ O- s6 h2 v. p' I6 z
- (if (/= elayer "Varies")
* u, [3 H: \9 B - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
9 J: J4 ?# m! [. l1 R3 g1 f - (setq lay_clr 0)
X- s3 l* A: t. i. a& Q0 d4 X& p - )% { e5 j( U2 O
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
9 d4 B$ J% l# N: \8 v - (progn3 \# L' B4 X& }7 P# [' Z
- (setq ecolor temp_color)
7 b% n# n6 {$ b. h6 L% Q - (set_col_tile)/ D. K0 {9 ~) \4 `+ l+ p
- ecolor
0 }! a2 ?$ C2 n - )
7 v5 n7 ~ B, A - ecolor1 }7 z# r; O) V; i; L- Q# w
- ) . ~7 q2 ?9 e) |) a
- )# Y" Z3 N0 F; @
- ;;4 \' g8 K6 W6 t9 a. U' Q1 R9 d
- ;; This function pops a dialogue box consisting of a list box, image tile,
0 F7 `' M+ \8 J" ^ - ;; and edit box to allow the user to select or type a linetype. It returns
/ `, D$ `: l7 p" S; d7 J - ;; the linetype selected.
1 v1 V; X/ P6 d* v - ;;
1 I% q! b3 D8 o8 o: _ S - (defun getltype (/ old-idx ltname)
* ~9 i# r3 r- r9 l - ;; Initialize a dialogue from dialogue file- E# [6 }" V. ^; h7 h
- (if (not (new_dialog "setltype" dcl_id)) (exit))' u# j X2 O0 P- K( _1 c6 A$ n
- (start_list "list_lt")
4 B E) ~( J4 _% P - (mapcar 'add_list ltnmlst) ; initialize list box
, d2 N0 r* r3 L# J3 B! _ - (end_list)
2 f I+ B( q2 E4 } - (setq old-idx lt-idx)7 T9 K* L: v6 M$ D- _) }
- ;; Show initial ltype in image tile, list box, and edit box: j5 L% A: @) ]$ a7 o
- (if (/= lt-idx nil)/ ^9 d- A& U+ M) f1 ^
- (ltlist_act (itoa lt-idx))
/ }& H( m6 E4 R/ A ?. C0 ^ - (progn
1 j% ]8 V4 ?+ J* e - (set_tile "edit_lt" "Varies")# f* ?: ?& \9 N4 C$ o, s7 e
- (col_tile "show_image" 0 nil)
L' g( X, E; { - )% t3 Z, f& d# L- q( X9 p
- )) u" k1 {" P3 N4 i/ m/ k) L
- (action_tile "list_lt" "(ltlist_act $value)")
, W# e8 W' ?' }* g0 ^6 V* R - (action_tile "edit_lt" "(ltedit_act $value)")5 n7 `# Y6 J6 r5 E7 S& U# p+ U
- (action_tile "accept" "(test-ok)")
( Q5 V4 v: P+ ] Z2 G( L - (action_tile "cancel" "(reset-lt)")1 U, Q- N4 @" t: b
- (if (= (start_dialog) 1) ; User pressed OK2 Q$ F( N; o) o& c. A: f: u
- (cond
5 t9 \" Z" U( x! ], j# i& d5 G - ((= lt-idx nil)
- ^/ a1 `* [0 ] - (set_tile "t_ltype" "Varies")) U0 s. d# @4 P9 }
- "Varies"5 z3 w+ ], k P4 P
- )1 a- \6 X6 w% I& F, ^- v" q9 U
- ((= lt-idx 0), Z9 H0 g$ G( ~" D+ O& e2 D
- (set_tile "t_ltype" (bylayer_lt))3 @: U0 ]0 [( n9 W, F
- "BYLAYER"
9 o" k/ L7 v: u) s' C - )
# ]% X, ^/ q3 i1 ~; v# {7 [ - ((= lt-idx 1)! n) V: |; M6 E Q% l2 _' K
- (set_tile "t_ltype" "BYBLOCK")
* d" G8 k4 M, E5 _: t4 K) [ - "BYBLOCK"; l% {- Q+ W {0 n
- )
" x: P5 c1 N% K/ X2 b4 I. @8 g4 J5 E- e - (T 3 n- }/ [+ D; r; S3 X! y
- (set_tile "t_ltype" ltname)
5 ~2 e7 o4 }; {+ h5 ?5 _9 } - ltname
* v4 g+ t) T: h# K& R- U ^ - ), Z7 W, i$ @/ v) D( _
- )* Y5 U% S3 v; {0 B$ m! G
- eltype; B% m3 E9 q u/ H- ~* e; Z0 M6 s) N
- )
/ |& j$ P; L n# _ - )4 q$ ?! i* |5 j2 {4 y. B: b& _6 P
- ;;
* y: z8 j. t3 E1 Z+ t# o" t - ;; Edit box entries end up here
% k5 t6 ~' X. k; O3 N0 J9 y - ;;
3 t: p0 z- d) T x( I m - (defun ltedit_act (ltvalue), P. k( L v% H/ x! ~9 ?) V
- ;; If linetype name,is valid, then clear error string, 1 [* g0 p+ [ B: C: K- K9 y
- ;; call ltlist_act function, and change focus to list box.4 P" G/ L$ X9 V0 |) Q
- ;; Else print error message.; Q# o" f$ G" D$ \& x2 O+ D
- (setq ltvalue (strcase ltvalue))3 E" m* l4 Q$ O1 L/ ]1 P% Q! I9 V
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER")); ]' C- g$ I" V% S# h7 L7 [- v
- (setq ltvalue "BYLAYER")
. i" X" _& \1 z! A$ J - )! |8 k$ V' f0 [/ I& E
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
8 g9 N4 b: o% k9 C7 \. k6 R: d+ g - (setq ltvalue "BYBLOCK")% M& `* a% L1 N3 j' G
- )4 @8 B, d4 d ~$ T. ^; F) ?7 J
- (if (setq lt-idx (getindex ltvalue ltnmlst))6 u: {! U0 l" |6 P( m; v3 D$ O
- (progn4 ^3 r& w6 K- c$ ] p
- (set_tile "error" "")
3 Y k( a0 i; r' x8 f5 y3 s: o3 B - (ltlist_act (itoa lt-idx))
8 j. ]/ I) H1 j1 _2 K; a& ]* L - (mode_tile "list_lt" 2)
) T1 t4 y* l3 I4 m# y - )
) ?7 D% [8 j+ F( y9 f0 Z- ~% J - (progn
. g8 Z. h& g) t! b" S* p - (if (/= ltvalue "VARIES")5 s9 J# a4 a- c$ }# Z( |) Z) o
- (set_tile "error" "Invalid linetype.")
7 M5 v& B* r2 s$ J - )
8 e& @6 k" N5 e% p, y1 i - (setq lt-idx old-idx)
' q; S$ f' l1 \ - ) / `* {4 W- x; p
- )
3 r1 t* k- \- s+ r$ }" @: t* ?3 { - )
% L* {& \7 H3 j! X& R - ;;4 A; ?$ g+ h3 _& b
- ;; List selections end up here
1 F, |4 E1 y! C; `+ }* `$ v - ;;
, _& s$ J% U8 p8 P: Z/ X& Q - (defun ltlist_act (index / dashdata)
8 i- N% g) b& e" y# h c! l0 O - ;; Update the list box, edit box, and color tile( h# f; S) h5 B( R3 `% v6 v, c, u. t# u! M
- (set_tile "error" "")3 I( t: D$ O) h" D7 F! C
- (setq lt-idx (atoi index))
4 R2 Y! I1 i* m+ R. y. o0 M - (setq ltname (nth lt-idx ltnmlst))3 M- R7 R. V3 v. B& B/ |
- (setq dashdata (nth lt-idx mdashlist))* {' P$ } I4 x- h% G% W0 T( { {: A
- (col_tile "show_image" 0 dashdata)/ [. [, L V0 r
- (set_tile "list_lt" (itoa lt-idx))4 O# t. w0 S' O
- (set_tile "edit_lt" ltname)
- l" `! K; I( `2 g- v - )
4 k1 \. X( q+ ?8 { - ;;+ Y' }4 Z* q# ]6 y
- ;; Reset to original linetype when cancel it selected" ]' f" ?8 V4 {
- ;;# S9 e$ G8 b; ]! O2 U+ i* a+ p' V; r
- (defun reset-lt ()4 F+ B* i; y" |# l" s' l
- (setq lt-idx old-idx)
+ J! g$ Y. }8 R$ E" D- s+ P - (done_dialog 0)
6 y! n+ }% {8 O5 t9 v - )
. ]+ `9 G, [' b- ~ - ;;
4 `: p/ {- L1 O! s$ U - ;; This function pops a dialogue box consisting of a list box and edit box to
3 I$ m, _+ h/ u1 {9 v7 ] - ;; allow the user to select or type a layer name. It returns the layer name 0 Y3 p0 Q( g* {2 F2 ~
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the 5 T( C3 P" v, l& \
- ;; drawing.
: }8 P2 X! N8 n: ~( W! Y, w8 W - ;;
" E. B8 A+ @6 k+ ?1 _1 H3 V1 V - (defun getlayer (/ old-idx layname on off frozth linetype colname)
- H' o9 W. @( J W - ;; Load a dialogue from dialogue file
/ }% `# e) H$ Y, @ - (if (not (new_dialog "setlayer" dcl_id)) (exit))
# N, t3 R4 `- }( z8 O+ d9 I - (start_list "list_lay")# s% Z; M6 e) e
- (mapcar 'add_list longlist) ; initialize list box& s; e' k! ~' O+ A" ?- l2 s) I
- (end_list)5 d+ ?" S3 H8 v# n( i, H
- ;; Display current layer, show initial layer name in edit
6 ]0 a$ [) s3 H% u* w - ;; box, and highlight list box.& Q: T4 j% R) Q! o# R( F
- (setq old-idx lay-idx)) n8 N8 t7 W5 Z, j8 G; N' l
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))4 G. V8 \2 j, W" W- w% N
- (set_tile "cur_layer" (getvar "clayer"))
J7 g1 h1 s* x2 [3 ? - (action_tile "list_lay" "(laylist_act $value)")
. u: f5 \" C: d" {2 e* q) c - (action_tile "edit_lay" "(layedit_act $value)")
4 z9 Z+ w, x4 Y( a - (action_tile "accept" "(test-ok)")
4 y! `6 \6 S1 j. v3 L - (action_tile "cancel" "(reset-lay)")9 C p0 u+ S, c1 v( }2 g
- (if (= (start_dialog) 1) ; User pressed OK
6 F" t7 e& m' _! J5 m0 O - (progn6 J& [, N) A3 @1 z3 d' H$ e7 C
- (if (= lay-idx nil) (setq layname "Varies"))9 |" ]2 b$ F( w- J2 U
- (set_tile "t_layer" layname)
4 |1 N* C3 ~% O6 \' [ - ; If layer or ltype equals bylayer reset their tiles
3 }8 C2 n; }$ E: U9 g) o - (if (= lt-idx 0); e, R) w$ \8 I2 e2 w3 }
- (set_tile "t_ltype" (bylayer_lt))8 @! r: `; Y) O! ~4 r. k5 _1 z# G
- )$ Z; G: |8 O1 m5 J
- (if (= ecolor 256)
# ^3 }/ N3 c/ C7 J: P( f - (progn4 N. [; a6 r1 C( q; y* f V% i! j6 C E
- (set_tile "t_color" (bylayer_col))
( B7 ?8 N1 ?8 a; N$ U( i4 Y& [1 ? - (col_tile "show_image" cn nil)0 Q+ v$ C5 L- O+ C; H
- )# ^7 E$ s/ R) A9 F
- )# C$ X% X! h" f) K2 d5 K
- layname; m7 ~" S) p8 z6 t
- ), T* Z& }, V' j
- elayer
7 `8 n9 v* T) H1 r - )
$ C( q( K; s- B! s% {5 A N - )9 {* j" X6 U9 Q& g4 c; ?
- ;;
! \- v+ o2 f( z; e - ;; Edit box selections end up here5 r9 R9 n' f1 J0 h _
- ;;
- g* l- a J$ K# I - (defun layedit_act (layvalue)4 @0 M: i5 f' l/ u+ o* F" J5 q
- ;; Convert layer entry to upper case. If layer name is2 ^0 Q" T' Y& g2 E/ Z" y( g
- ;; valid, clear error string, call (laylist_act) function,, [3 o1 J& J4 Y! d2 P" G6 _/ c
- ;; and change focus to list box. Else print error message.1 X& |& a3 Q0 A! V* R
- (setq layvalue (strcase layvalue))
* F# G' ]6 J: g* k7 a& h4 u - (if (setq lay-idx (getindex layvalue laynmlst))
: |! F/ b( V! K. O8 ^ - (progn! M) d) {) d7 `4 I
- (set_tile "error" "") X: p7 ?: p2 M' w" K
- (laylist_act (itoa lay-idx))
7 X! W% U! }9 B; L) @- t% |1 w, L, A - )3 }. R" [3 D+ v! F) o N
- (progn
Z3 _; v8 m: I+ A - (set_tile "error" "Invalid layer name.")
! l8 v, }4 t" {9 V ?4 F3 X - (setq lay-idx old-idx)
' s8 N: O. `4 w) v; `, D - )
9 P4 J3 \8 c! C9 m - )5 U5 Z( H& ?0 P) b2 c- t* C7 w
- )* b' r: _; M: U' e; b: f! [9 g
- ;;4 g$ T3 t9 S4 V
- ;; List entry selections end up here
/ b2 m8 z2 D: [, Q! u - ;;
, J E& v. w" Z - (defun laylist_act (index / layinfo color dashdata)$ b0 E$ ?/ z# G: ?
- ;; Update the list box, edit box, and color tile u) ]) R4 F; h8 S& p/ v
- (set_tile "error" "")
, e- O. W% @5 M, c* i' |# J( K6 B - (setq lay-idx (atoi index)); [, @2 A+ L; Z
- (setq layname (nth lay-idx laynmlst))6 m8 d. r/ P3 w& q0 j6 b/ X( c
- (setq layinfo (tblsearch "layer" layname))
$ P0 A% ^ d. V# V - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)/ n, _# Z8 I$ _% ]3 N
- (set_tile "error" "Cannot change entity to locked layer.")5 v7 N0 S% n( h6 q* h' T ~) |1 Q
- (progn+ v4 v- Y, I. ^) D# o$ R% _4 I
- (setq color (cdr (assoc 62 layinfo))). v$ b* }5 e! ] _
- (setq color (abs color))! j( B5 T s* @3 G$ g% n
- (setq colname (colorname color))( d; G- g8 H7 T: y+ ~7 y
- (set_tile "list_lay" (itoa lay-idx))
8 f& b8 a/ l, F, P8 R - (set_tile "edit_lay" layname)
( r) t8 K, w. g; y* D6 ^ - (mode_tile "list_lay" 2)
5 a' F z- `2 `9 o0 i - )
6 s% _& O+ V" D, p4 j - )
; |7 i) ]& `: W - )
( _/ W3 n& ~5 \, Q - ;;
' F5 ^" g+ ?+ a/ }; `- d8 D- | - ;; Reset to original layer when cancel is selected
+ {0 r1 _3 `) D* t+ e1 Q8 }( { - ;;
* T/ Y& }/ c2 _; V( V. [ - (defun reset-lay (), o/ H3 n5 p0 L
- (setq lay-idx old-idx)! D$ J& j8 m8 t$ v% c, W' p8 N
- (done_dialog 0)
; o/ i! i: \5 \! E( a - )
: q( b3 }* m8 b& b/ p l - ;;! g: a2 M8 C- b, s5 v4 Z2 x! {$ J
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a ) {4 B# ~5 n& w# J
- ;; string can't be converted to a real, this routine checks if the first
- _5 e7 S8 t" Q' i! N/ n - ;; character is "0". It also checks to see if the value equals "Varies".
! _3 T7 s. l! h( |+ o( V - ;;- E* ~, s" o( B) `
- (defun getthickness (value): J9 t% f5 S4 s1 f% G
- (setq value (strcase value))+ R z' p( _8 q, E4 v, m
- (if (or (= value "VARIES")% C Z% ]3 v9 @9 [# z' J
- (distof value)
6 L( F0 N8 C1 R8 Y- L - )
; ]( ~: p8 ?# \; K - (progn9 F5 A) ?3 B4 ]1 k/ B9 d0 v
- (set_tile "error" "") v( o. b J3 O
- (if (= value "VARIES")
0 n B' |2 S, }; g( W0 |+ f - (progn' _8 C3 c/ W2 i, ~0 S
- (set_tile "eb_thickness" "Varies")
' R# t* w; V! }* p S; | - (setq ethickness nil)* ?& c- C" n4 u7 B; u2 c+ g
- )
- p {* w. O) x: j3 Y+ K+ h - (progn
3 R* B3 x( @8 p( d3 F, q - (setq ethickness (distof value))
- D& Z: k% o& @* D0 [2 c" F# ^3 o - (set_tile "eb_thickness" (rtos ethickness))
' b2 j: B6 ]/ j {' O% k! o/ ? - ethickness$ ^# @$ ~9 i: n: ]# |& I
- )
6 @' A; @% ?/ t+ A& D - )1 p3 J7 n1 c3 ^* R9 ~
- )
2 A% u. N8 k0 h - (progn
6 x8 d3 Z" Z" r; y6 I; B - (set_tile "error" "Invalid thickness.")
% o% u2 t, v; I4 N& j. R1 z - nil8 Q4 f4 f/ u% ? ~* `
- )
; }! x% X1 n& w. R - )
+ ]- [. E g0 M u& `5 \. [: L - ) A% s/ z% N. M* f) c+ A7 d
- ;;
8 L* `6 Y* ^* }. z7 G( [( B - ;; This function make a list called laynmlst which consists of all the layer
+ @# _; P+ j N: A. q, h1 X - ;; names in the drawing. It also creates a list called longlist which # s0 _0 p* u; R8 I
- ;; consists of strings which contain the layer name, color, linetype, etc.
L! V8 i, e$ Z8 X" L2 a" N - ;; Longlist is later mapped into the layer listbox. Both are ordered the
' S7 N/ N5 g+ }, l# K0 A - ;; same., _* G% Y6 V+ N; H) K
- ;;; |' Z/ C4 a4 F8 e8 o. g6 u1 O
- (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
) m$ a4 C, F% M8 J - xdlist vpldata sortlist name templist bit-707 y+ P+ N6 D3 V; Q8 p
- )0 k3 ~: I% Q; \% g( V' ^
- (if (= (setq tilemode (getvar "tilemode")) 0)
4 }7 m+ x( ^+ |* n- h - (progn2 }. n J0 ]% N. _* m$ d) _
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
0 a% O4 L* x% @* R- _) o, x - (cons 69 (getvar "CVPORT"))
% Q1 v( I s7 G. F6 E. ^8 h; ^0 s9 B, G - )
9 x+ y3 J1 c$ C* e8 A* T - )
2 ]! z0 j1 f6 r. b5 n( j3 W - )
+ ^: G3 g k. O4 O: @" Q - (setq cvpname (ssname ss 0))9 k) Z5 R: L: J0 E ?/ L: E' {
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
. d6 v5 A8 R9 U* l3 ]2 P, f - (setq vpldata (cdadr xdlist))
. L: v" L& x- M' C; f - )
/ c& `& K( t# [8 \# k% ~- O - )' |" ^/ y( D F- @, J
- (setq sortlist nil)8 e; H) G* ?. [2 R/ s
- (setq templist (tblnext "LAYER" T))
8 _9 k" m+ g1 H+ t - (while templist# p. C/ S- N# q# _: b8 L. W! w
- (setq name (cdr (assoc 2 templist)))
/ r8 E5 o2 I/ O# w. M& C - (setq sortlist (cons name sortlist))
% S ^' D! Q0 P1 a - (setq templist (tblnext "LAYER"))' u* ?3 K& R2 N B
- ) ' T k/ u) J8 C/ c. i/ E
- (if (>= (getvar "maxsort") (length sortlist))9 w1 Z% L6 N0 ?
- (setq sortlist (acad_strlsort sortlist))
2 U( F5 _8 I/ w+ _- t' v - (setq sortlist (reverse sortlist))
+ C6 a2 h: P# H) S, Y6 c - )2 s/ y8 [5 M: K' S2 v% }
- (setq laynmlst sortlist) A4 \ ]% B) ~1 b
- (setq longlist nil)5 |0 R0 a0 S4 u7 \4 Y! `
- (setq layname (car sortlist))
' N2 z( ? D5 Y3 W: E - (while layname
( P4 s5 q: D8 ]7 q* n9 [( z/ G3 g - (setq laylist (tblsearch "LAYER" layname))
" {! q0 D1 N0 k - (setq color (cdr (assoc 62 laylist)))
8 e8 A: |: p1 h- L/ D" R) c6 |$ H, h - (if (minusp color)' u' C- e) s0 i/ l! @, S& M$ K: Z
- (setq onoff ".")
2 h, y4 l* y! u! H% @- |( ^8 U6 r - (setq onoff "On")5 }; G: n1 I) O6 U
- )
5 m. x4 v0 ]* z" j v1 M1 r - (setq color (abs color))/ K8 y$ p- V% h1 Y; R" b
- (setq colname (colorname color))+ u7 ]5 [5 m9 _7 o6 d
- (setq bit-70 (cdr (assoc 70 laylist)))
* t1 l" f. {+ S0 t1 t - (if (= (logand bit-70 1) 1)% R1 X! q' L9 }3 |# F
- (setq frozth "F" fchk laylist)
7 I+ M: `0 N% k7 h4 U: q - (setq frozth ".")6 o% ? k+ c, E3 x$ L
- )9 O6 q% \8 o! I5 g1 N" G+ v( s8 o
- (if (= (logand bit-70 2) 2)1 V/ K- U* d) t# a
- (setq vpn "N")
1 k% {8 C2 B; n4 t! h0 p7 W - (setq vpn "."). e# c& M- E% [7 r% ^: h, v
- )
8 A9 ?' a3 k$ ^5 y3 [1 T - (if (= (logand bit-70 4) 4) |5 J8 `" r& P) T/ |$ c' H
- (setq lock "L")+ @$ {" I% p { v1 S
- (setq lock ".")2 z- @& g5 U) `$ t, g; D b
- )+ i4 [" T6 Z, u# e5 W% U1 R$ A
- (setq linetype (cdr (assoc 6 laylist)))( d( c! l8 a% k; K* E
- (setq layname (substr layname 1 31))
. U2 z" n2 f6 w% d/ O4 @$ \5 _: a - (if (= tilemode 0)5 q. S% }9 t0 J1 K
- (progn- x) c1 d2 Q9 h9 E
- (if (member (cons 1003 layname) vpldata)
7 A1 d3 ] t1 v n: Z4 d - (setq vpf "C")
6 m. N; b: p( f) C4 F - (setq vpf ".")
0 @9 z+ m4 | R* m$ e - )
+ U7 f' o# y8 I$ o1 x - )
3 ~1 ^% {- t9 }4 W3 P" ] - (setq vpf ".")) e9 I, u3 r# n4 l
- )+ H; y0 A E! a/ w, Z
- (setq ltabstr (strcat layname "\t"
/ T* M8 ~; j* L3 m7 U( i - onoff "\t"1 F4 X& J- R" c/ B7 Z9 E
- frozth "\t"
1 ^* X& j; F, C - lock "\t"
% n L4 {1 w; b9 m3 b) l - vpf "\t"
" u& c/ u: R* a# D* X - vpn "\t"
7 b! P( r# ~7 ?1 _0 { - colname "\t" s' W( v- n( P
- linetype
9 P3 t8 c# [7 u5 F - )! ~. U! v' o# [. n4 T& k
- )( t) p2 }6 B, ^/ q' V; t$ E
- (setq longlist (append longlist (list ltabstr)))
6 e" T+ M: P9 |9 b+ e - (setq sortlist (cdr sortlist))
- H. f/ s5 P" k% l3 O# E - (setq layname (car sortlist))0 j; V. g8 t6 \+ D
- )
$ a+ S4 L0 S2 E2 N4 f - )
1 }" `+ e1 j. R. z3 m* b - ;;
" {3 N) x) E- w2 o; q - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of 8 {; t ?' t0 v5 l( Y
- ;; linetype names read from the symbol table. Mdashlist is list consisting
0 V6 f5 v2 a. t5 R; h - ;; of lists which define the linetype pattern - numbers that indicate dots, 2 ~. V: `, [5 A. b1 ?$ D; v# b
- ;; dashes, and spaces taken from group code 49. The list corresponds to the
7 v: ]" Q* e; a8 I J+ U# { - ;; order of names in ltnmlst.
" V# K1 y( y2 u6 K - ;;5 O2 t" ~( f6 U5 S, N
- (defun makeltlists (/ ltlist ltname)/ r: O4 h& O) f" Z# l" ]8 s+ D
- (setq mdashlist nil)# r7 U! \# @0 _- s `: V
- (setq ltlist (tblnext "LTYPE" T))
8 ]3 }# Q$ Y2 x, j6 ~7 X - (setq ltname (cdr (assoc 2 ltlist)))
/ `5 q! R0 r9 t" U9 @9 e - (setq ltnmlst (list ltname))4 ?$ I1 @" K& Z) s8 {
3 M' u6 I0 H. q$ s- (if (= ltname "CONTINUOUS")7 v j: {" P# B& S4 [3 r) l
- (setq mdashlist (list "CONT"))
9 m& V5 _7 p( }3 s# S# p# x8 F0 h) F - (setq mdashlist 6 K4 U c* _) c) l% A7 a# s/ z
- (append mdashlist (list (add-mdash ltlist)))
# E8 ^! D1 C( ^9 q& e - )0 c/ n. f$ [% T6 o6 C
- )
9 |; r) i M& e% H r0 _' S - (while (setq ltlist (tblnext "LTYPE"))5 n9 Y. P6 v) s8 [3 `: U: K
- (setq ltname (cdr (assoc 2 ltlist)))
; ^& D$ U _3 Y4 ~2 T) E - (setq ltnmlst (append ltnmlst (list ltname)))! w' r: d9 R4 }* _
- (setq mdashlist % g" @- e5 i+ a
- (append mdashlist (list (add-mdash ltlist)))
( Z: I8 s6 P- g! {% S8 ] - )
3 k5 V: ?9 m8 ]( Q0 j4 x - )& {& d' {3 g; `, @/ c2 a
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))6 S% s) U+ n% W+ I4 g4 f- l
- (setq mdashlist (cons nil mdashlist))
0 J+ N, X5 Z& O9 H - (setq ltnmlst (cons "BYLAYER" ltnmlst))
3 F7 U/ C* V/ k4 z5 y: J( r M f# ` - (setq mdashlist (cons nil mdashlist))- R; X3 [% {' t/ q. K
- )
( [! w9 @- Q& }3 T - ;;0 o: v+ W3 i+ V0 P
- ;; Get all the group code 49 values for a linetype and put them in a list
" I H7 R1 H, c+ R5 P v* T - ;; (pen-up, pen-down info)
0 c) x9 ^2 L! W$ h9 o, O0 ? - ;;7 e% X4 d; t8 I; \3 E R, n5 _$ [
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)# I' w1 y3 l1 v8 X- K. m% z+ {! |
- (setq dashlist nil)
8 e1 P! Z% C7 I% G: w& s - (while (setq assoclist (car ltlist1))
5 A. p9 h5 v5 u4 g0 i - (if (= (car assoclist) 49)) k4 j w) y, q
- (progn
1 j+ H. N* S* s6 H( K - (setq dashsize (cdr assoclist))6 U" @ h7 @9 D7 y1 n9 ?8 e
- (setq dashlist (cons dashsize dashlist))
) \3 H$ u3 L* D0 I3 ` - )
% y. X6 {6 h6 }( t - )* F: n- J5 T- d- F
- (setq ltlist1 (cdr ltlist1)) l5 y7 L1 F$ N- X s
- )
- ` m/ J' w" v9 T- w) h - (setq dashlist (reverse dashlist))
- Z5 @* w9 p: N - )
* h3 V) x$ E' n& L4 n - ;;+ i' ]- O4 c- Q1 U' @+ e
- ;; Color a tile, draw linetype, and draw a border around it
( }$ G' T% l! B - ;;
* d0 ^5 o- Q! k' Z* l* I2 H" ?3 u - (defun col_tile (tile color patlist / x y)
; G4 A* i9 E U - (setq x (dimx_tile tile))
% b$ }# v, Y6 b( i- n1 \ - (setq y (dimy_tile tile))
/ Y) J A( R0 x, N9 b+ d d - (start_image tile)3 T9 n$ W( e1 T. H3 c4 O: m/ O
- (fill_image 0 0 x y color)
) G/ ~# P+ u9 V - (if (= color 7); m6 U. J5 T9 a* t: y, c5 a
- (progn
- |) B' I. P+ q0 X; q z+ x - (if patlist (drawpattern x (/ y 2) patlist 0))+ z/ M6 l& i# [- |
- (tile_rect 0 0 x y 0)
2 O" l5 B3 c# r* p) m+ U* U - )
% D- V& g8 x2 t/ T - (progn: E& _4 d n. p% J- g# Y
- (if patlist (drawpattern x (/ y 2) patlist 7))- ` f" g! k" z# x! L1 h
- (tile_rect 0 0 x y 7)
8 f: r& V" }. ^- R/ t9 V - )+ ? _- ~3 G3 o3 d
- )
* f' G" _9 S0 `1 G+ m' p - (end_image)
N' w5 M( o: b: G) D X5 D - )
5 l/ h4 K' @3 {. K4 c, e - ;;+ l/ s+ E1 [) X. \
- ;; Draw a border around a tile
" p8 {+ I' e1 r# {3 g - ;;
8 `7 P0 U0 a3 L - (defun tile_rect (x1 y1 x2 y2 color)6 v' F1 u' ^% J3 T8 J1 E( ]
- (setq x2 (- x2 1))
9 ]: h3 M% k; ^+ B8 ^7 u9 Y - (setq y2 (- y2 1))6 v9 e( g7 I8 V. u/ T6 v9 R: P- g
- (vector_image x1 y1 x2 y1 color)3 f1 R5 _! i1 [1 W) a: _/ ^
- (vector_image x2 y1 x2 y2 color)
* R6 e" y( k' M& K8 M+ D3 y - (vector_image x2 y2 x1 y2 color)
9 X: I' T6 d8 i9 Q - (vector_image x1 y2 x1 y1 color); i5 ?5 h# D6 A0 Y
- )
1 r* v/ e% C8 d2 U - ;;% q% _5 C5 T. v" s2 U, ~. O
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
0 H6 z V2 q& C- a2 j( j - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
) c+ T$ U8 K6 `- J( T) ] - ;; list of numbers that define the linetype, and color is the color of the
9 Q% m& D8 p* I& S) M( ~ - ;; tile.
. q7 i S2 r# n3 f4 e, K0 A - ;;
0 o% `) S7 R+ D - (defun drawpattern (boxlength y2 pattern color / x1 x2
' J& u3 k( ?5 v: M g- D& e - patlist dash), i' y4 ?6 s! c/ r& U
- (setq x1 0 x2 0)% V( f. N2 [# U# A* K+ s0 Z) L( z
- (setq patlist pattern)
8 \5 x, H/ [) e* C( s/ ?& x- W - (if (= patlist "CONT")% _' {2 H" i. I. ]' M
- (progn & A% e9 c p3 t1 K0 ^% v) U! v N
- (setq dash boxlength), V; k/ T: n8 n- ~4 ]
- (vi)
0 }3 U& B8 r3 l6 j2 \+ e - (setq x1 boxlength). [7 C+ r: D$ Q% k: Y/ E
- )& o( B# ?5 G) U
- )+ L) |- T5 @( \4 D! ^) l
- (while (< x1 boxlength)' J& `8 g$ n& @6 T. ]/ I
- (if (setq dash (car patlist))9 A$ x: S C% O0 Z- c/ `/ C/ q
- (progn" ~* g, h1 \8 R& P
- (setq dash (fix (* 30 dash)))# p% a* k, V6 A! i7 z) ~
- (cond ( f( w3 E: i/ x& D1 l
- ((= dash 0) ! h7 y. c$ A: _$ W! X
- (setq dash 1)
' R$ x1 |$ U- w - (vi)
( s& U% }. ?) M! `7 o) Y8 Z' x - )* e) t( L' s- Y% { x- T
- ((> dash 0) % [6 Z1 G/ S* G
- (vi)
; v+ P! w1 D2 B - )
8 r& T' H3 ?6 P8 p2 v1 e - (T ! Z9 p9 ~! e9 K1 h; r
- (if (< (abs dash) 2) (setq dash 2))2 q" x7 H. u% V" W/ d: V
- (setq x2 (+ x2 (abs dash)))& h, l, l& M( G" L% O+ C1 s
- )7 ?8 g3 n! Y, k4 B, x
- )
5 c! C: [* P2 k# g% x2 o3 w0 I - (setq patlist (cdr patlist))
% p1 {1 @' \9 _1 a a, D( g - (setq x1 x2)3 J& h; l9 v4 @8 {2 ?9 w
- )
7 o' e+ X# L4 C. E- j7 {& G5 U* h - (setq patlist pattern)
. C. ^' m7 b0 J# o. j$ y2 E - )
' V' T7 ~& E1 ^4 O9 x6 o% @3 U - )
( s6 G" o( t2 @ - )# j' l- u" X! k' _2 ~
- ;;, m' u- Q j v( d1 ]! V0 i' w
- ;; Draw a dash or dot in image tile
: F+ ~. s% z+ Y( Q - ;;1 ?* @6 u& k. e' F' P3 K: d
- (defun vi ()( a3 a$ \! U9 W# w' x( A9 o8 x, a" c
- (setq x2 (+ x2 dash))/ _1 N3 h9 { T
- (vector_image x1 y2 x2 y2 color)6 |7 H7 x x7 ~( p7 ]( Y
- )
8 b! Q6 t, y- |# o" m - ;;
! z) w7 |7 A; B - ;; This function takes a selection and returns a list of the color, linetype,
8 {2 l9 H. B, `8 t - ;; layer, and thickness properties that are common to every entities in the! p: }! i3 ~% {* n( s! A
- ;; selection set - (color linetype layer thickness). If all entities do not & D/ r/ ~: T2 i( C( o q: U: b
- ;; share the same property value it returns "Varies" in place of the ( U6 a) L, z, y" J5 x
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)$ B6 L6 }, |0 a7 W
- ;;6 b1 J9 v3 l2 x' A, s
- (defun getprops (selset / sslen elist color ltype layer) D6 [: K5 i3 M& ?. a# j6 S
- thickness go chk-col chk-lt chk-lay chk-th ctr)
! [, j6 [) j! {" Q% H - (setq sslen (sslength selset))( i' T* H5 B6 t. h
- (setq elist (entget (ssname selset 0)))4 J6 c% Z% Z1 Y- f% P- z
- (setq color (cdr (assoc 62 elist)))
" X1 h5 {4 t/ A2 v% ` - (if (not color) (setq color 256))( j, ]. g& c ?7 ?
- (setq ltype (cdr (assoc 6 elist)))
2 [, b* l F- W$ j' v# I - (if (not ltype) (setq ltype "BYLAYER"))
. `% i! i7 M( q- O5 R5 A/ g! L - (setq layer (cdr (assoc 8 elist)))4 a9 j4 f$ e" B$ Q& A N# p
- (setq thickness (cdr (assoc 39 elist)))0 k/ g% W; c6 H' l( F
- (if (not thickness) (setq thickness 0))% w" l; q; R$ L3 t4 X
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
% H! y6 o3 @: q& c6 ^9 u1 _) n
5 z5 h% u: f9 Q- ;; Page through the selection set. When a property% C- Q, k( V$ v; f+ s; r- X
- ;; does not match, stop checking for that property.
, B# w2 T8 O5 O8 k: s$ j# V2 W2 \ - ;; If all properties vary, stop paging.
* _- _! B# D4 k- h3 ]8 B+ ~9 D) h7 o - ; ]4 y( O' O; F H8 m
- (while (and (> sslen ctr) go); v4 Z& f& h4 C w
- (setq elist (entget (setq en (ssname selset ctr))))
! Y+ W7 E. O$ \7 l0 B" S6 y5 \ q - (if chk-col (match-col))
; \1 P. ?& e) o; T; p& K - (if chk-lt (match-lt))
! |- N1 a6 X6 c. f0 `. ? - (if chk-lay (match-lay))
3 I$ g8 A4 k& n/ }+ L) |4 P5 R - (if chk-th (match-th))
5 K; e: q9 O* ~# j7 h - (setq ctr (1+ ctr))
6 v% Y. H8 i( N9 T% y# P - (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
9 ^7 G( l: E7 S2 Y: A# e9 }+ } - (setq go nil), H- z4 w+ |4 Q, h% M2 ?
- )
) x5 F: x$ u" Q% E - )' W8 i2 ^2 c+ ~! R: G. ^8 j. C
- (list color ltype layer thickness)0 C R5 ` R8 ~9 a, I) ?+ d
- )
) p: d& F: @2 w' h, d, l* C: i# S - 3 Z8 E. S2 Q" h4 v, v: n& ?
- (defun match-col (/ ncolor)7 K. o. d: w, ]3 M; e" J
- (setq ncolor (cdr (assoc 62 elist)))
" ~; P* a( m) a% w+ @6 z) ? - (if (not ncolor) (setq ncolor 256))# i9 v1 ^7 @ m' E1 S
- (if (/= color ncolor): {! L4 ]% B* g5 |4 h
- (progn
6 Y& Y. p6 A3 y' t( K3 y - (setq chk-col nil)
6 C; I& C3 O; J3 D( |# O( K - (setq color nil)9 n% j6 H3 i( y6 W7 [
- ). z% @- \, |& i0 G2 I
- )! K/ U& y. O. p. }8 ` @7 N
- ); n/ O: j0 E }* V* m" e
- $ b7 m' m( k+ V$ _
- (defun match-lt (/ nltype)3 p% D' ^2 Q- I# U1 [1 E
- (setq nltype (cdr (assoc 6 elist)))
" J5 h3 u6 g+ M. S# ^% B w - (if (not nltype) (setq nltype "BYLAYER"))
# P. h# z: d, o+ B6 W2 @ - (if (/= ltype nltype)' Z$ e" ~# l8 c! l9 _
- (progn- h# Q% v3 _+ H' c3 h
- (setq chk-lt nil)
5 ~# H6 j* Y5 O3 l - (setq ltype "Varies")
8 P) b3 c q1 D! e$ `* E - )
2 L( C: D, O- r3 X2 u - )% Q& B4 t, o) a6 h
- )
" i# e; g: I+ s" p& t - 3 D+ |4 P' N( U. G9 c' |1 F
- (defun match-lay (/ nlayer)
* g; o" k' Y$ Y4 B - (setq nlayer (cdr (assoc 8 elist)))) {7 }! \7 p4 }% Z. F1 h& m7 o
- (if (/= layer nlayer)
% Z% `6 H, t% R - (progn
4 k: t# [4 d4 S* v - (setq chk-lay nil)
- d5 n+ ~" l" z( S, f - (setq layer "Varies")- T- V+ O0 K- C! J* W! v
- )
" X5 O( t; u1 K" _ - )
% t2 X3 }& M r( }$ k - )
! n7 ^, ? k# w
P' I" s2 x) O- (defun match-th (/ nthickness)5 a: c3 {1 f) d3 \
- (setq nthickness (cdr (assoc 39 elist)))% K3 d! y* }6 f4 K( P
- (if (not nthickness) (setq nthickness 0)); c7 G; s. x( E7 K+ [# X6 G
- (if (/= thickness nthickness)5 T& ]( g: l2 L u
- (progn* Q# u! N" v0 C$ q, p {( q
- (setq chk-th nil)2 a7 x2 o$ L9 |# q- d
- (setq thickness "Varies")3 F5 @6 @8 L! f$ e
- )% `/ A: v; L" _4 ]$ b, O
- )# V# f/ K' E* W; h8 G7 |
- )3 r* W; S& J6 @" b9 g6 A
5 U( f3 v5 e1 u- ;;
! r* G$ `1 e; Y - ;; If an item is a member of the list, then return its index number, else
9 B% R3 U; u# E: q3 G; A" \2 f - ;; return nil.
, K) P5 G& V/ e4 r: Z - ;;5 C! V; z( A" F4 Z
- (defun getindex (item itemlist / m n)1 ?0 b) y) }: B8 s: G: _
- (setq n (length itemlist))% t# G2 i. V6 D4 {
- (if (> (setq m (length (member item itemlist))) 0)% R- x0 ?- ]- q) ?! n+ e6 F
- (- n m)
: q2 V! V9 Y: \1 @- Q! S - nil* [1 s1 s u0 @$ Z& g: F
- ); F, x8 ~4 m: c4 N$ a
- )
: c# e j5 h3 ]- l, P/ B/ W - ;;
6 ^$ ~ [* O `1 s- Z - ;; This function is called if the linetype is set "BYLAYER". It finds the 8 y# w4 M# _5 q4 s7 ? o8 Z* Q
- ;; ltype of the layer so it can be displayed beside the linetype button.& S2 ]$ Y& U" p2 a) c* p$ L
- ;;
. y/ L. I9 y( N: H/ v - (defun bylayer_lt (/ layname layinfo ltype)
- |9 F4 t# t3 o2 z! V5 S5 [$ P& X - (if lay-idx3 x. z4 p5 J4 t
- (progn
) I2 ?- ~) i) E' f+ B - (setq layname (nth lay-idx laynmlst))
5 f8 w. ~% j# C& t# T# y' ` - (setq layinfo (tblsearch "layer" layname)): y E% G% z; _2 A* o" J4 d
- (setq ltype (cdr (assoc 6 layinfo)))0 ]7 r7 ~ @! G) e; D5 B
- (strcat "BYLAYER (" ltype ")")
" X3 }3 E- p5 E3 E) f - )3 T' L8 T6 l) p" {- z+ I
- "BYLAYER"
; [# }" u: r$ Q# ~6 q- z - )
/ r+ V6 b9 C% J' ~ - )
/ J" Z6 ?) z$ y1 J7 |# f' g" V+ @ - ;;
+ }# F/ T9 I( e" T( k5 C4 g1 s - ;; This function is called if the color is set "BYLAYER". It finds the
4 M: h( z" S- @8 j4 B1 I - ;; color of the layer so it can be displayed beside the color button.
. L* n! t1 {4 G9 T, E" J9 D - ;;
1 S. u3 G7 v$ z' I% b - (defun bylayer_col (/ layname layinfo color)
, H& q; z B4 ]# w% Q5 _8 C7 G: N - (if lay-idx
' K0 p0 U- c$ B - (progn* }5 {$ f4 _# A, F3 \* Z P
- (setq layname (nth lay-idx laynmlst))8 O/ R K1 t0 {% H0 {0 C
- (setq layinfo (tblsearch "layer" layname))5 e: m7 k$ z6 @5 n5 _9 O
- (setq color (abs (cdr (assoc 62 layinfo)))). a& ?; P6 {* r9 z
- (setq cn color); [2 D @; _, v# k
- (strcat "BYLAYER (" (colorname color) ")")
7 C h) B& J4 R4 T" |: i5 i" G4 [$ d - )
: y2 D/ s# j4 c" M6 g2 N6 y - (progn
! i7 L1 @& \7 \. V( k6 A - (setq cn 0)" G( p3 V2 T/ D6 S# P
- "BYLAYER"
7 @$ M$ ?1 {# ]0 M. D4 X* y2 S - )
! n) G1 j# P- T3 ^$ V - )% e; Q% v' }! ~0 U$ H* O6 K) T
- )
8 ^ a% u$ J: Y) p$ M0 [ - ;;
7 u0 [4 ~" v! v( f' I - ;; If there is no error message, then close the dialogue
; S) \8 P& c3 ^0 s- J5 N - ;;0 p7 F2 K; B& k* O
- ;; If there is an error message, then set focus to the tile
( ^) o+ K* S7 w, N - ;; that's associated with the error message.! G) _; a% T5 B
- ;;
t- q9 O$ @! ~ H - (defun test-ok ( / errtile)' ^3 f C% r! J( h3 A( q: w; d1 Y
- (setq errtile (get_tile "error"))4 P8 |: V; N. R, z$ | ?0 K
- (cond
8 r$ q+ ]8 |, E% q7 b, D! L - ( (= errtile "")
# n/ P: H' g8 @: T3 H - (done_dialog 1)) ]! W$ d% K& h9 }; y7 t
- ( (= errtile "Invalid thickness.")
# N3 s- N* u# }; U! ]7 ~0 m$ C+ P - (mode_tile "eb_thickness" 2))
8 M5 s* A8 ` f$ ~( K" i - )
( F$ h; G- R" y7 f9 r - )! X; x2 J- K X1 Y* V/ x
- ;;
- g3 O' r0 R2 K5 L) m7 R - ;; A color function used by getlayer./ s; ] _( O' u: C! ^( F1 p' [4 }, x
- ;;* f @3 K4 z5 i$ B0 f
- (defun colorname (colnum)1 C" @: F; V9 @* U6 X" v# ~2 O
- (setq cn (abs colnum)), X* C( r6 C* f8 S4 R" ~# U- m
- (cond ((= cn 1) "red")
: [4 B; Z3 Y0 T) Y: l - ((= cn 2) "yellow")
+ b, d/ X8 K3 D! X! O c) e- c - ((= cn 3) "green")* h3 b: Q9 J5 C3 q* k# \; m2 k
- ((= cn 4) "cyan")" z1 u! S. t3 L j
- ((= cn 5) "blue") l+ k/ ?- J9 H3 P- `, I8 z6 F9 R! p" V
- ((= cn 6) "magenta")
. J) m5 V' A3 q: R - ((= cn 7) "white")
, \: E5 _, k2 E+ r/ P- \, H/ j$ N - (T (itoa cn))
% N! Y! {, J, }: W) o8 Y. ~, ? V - )% v# P; X- n) I: q
- )
3 b1 q$ c) \( \/ ?; Z8 g: }
/ @5 T) `& Q" E% b5 [- ;;; Construct layer and ltype lists and initialize all8 P7 ` `! k" ^
- ;;; program variables:
- Y# H0 p4 U( |
0 T/ ~0 D7 X$ O% W& A. e; r- (makelaylists) ; layer list - laynmlst- g8 b( q" m$ z1 C ]
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
( v9 h- N6 }( A# O, G3 J - ;; Find the property values of the selection set.
! ^7 W% m9 J2 c$ Z3 C - ;; (getprops ss) returns a list of properties from
2 a* p% r. Y, O2 E; f - ;; a selection set - (color ltype layer thickness).
3 \$ p# l( E) D - (setq proplist (getprops ss)) m# C/ X' I" w: I: ~% C9 k
- (setq ecolor (car proplist))
! x) x) h# y: x9 L( m - (setq eltype (cadr proplist))
: w/ Q! O6 X6 W6 I2 x - (setq elayer (caddr proplist)); b8 }$ a- Q+ u, {# Z" n
- (setq ethickness (cadddr proplist))
4 h: v* Z( O% N( i9 r6 E" v' E" T - ;; Find index of linetype, and layer lists- s! {2 V% F4 I" ^; P( R
- (cond( M9 u! O1 _8 ^# N& B
- ((= eltype "Varies") (setq lt-idx nil))
8 r" K; F4 k9 v) M$ H. z! l - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))" U! \ i! C! V! s; k% p7 g
- ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
5 C3 p/ B$ x1 I8 D9 \7 L+ N - (T (setq lt-idx (getindex eltype ltnmlst)))$ S# p3 b$ Y; q, c+ u6 t2 D- f
- )
2 i* @5 d( N8 f: A8 k' t5 z, R- | - (if (= elayer "Varies")/ i! w" ]; E" r5 [4 U
- (setq lay-idx nil)
; W( W- e1 Q5 Z, ~4 k7 M* N, h5 | - (setq lay-idx (getindex elayer laynmlst))
, s$ z8 g, p+ U# b" D - )& v4 m; b0 S0 X/ N
- (if (= ethickness "Varies")
$ C( ?0 J/ q$ z - (setq ethickness nil)
1 T |& y9 B, `8 X1 o" x( }3 {/ e) y - )+ |! I+ |' F& n2 ^1 j9 _7 Z( ?
! }. x) L5 y* A6 B- ) ; end (ddchprop_init)
" Q& N9 D& [5 y1 v - 9 `# {3 u& O4 n
- ;;; (ddchprop_select)
+ R) f$ A+ j3 z4 b' [4 f - ;;;9 s9 D( S W/ a) e1 }
- ;;; Aquires selection set for DDCHPROP, in one of three ways:- Z# f' E+ R8 x0 h+ V
- ;;;
" f3 v9 h w/ q9 I, g: ], x9 A - ;;; 1 - Autoselected.0 Y! \9 T& [( [7 V f
- ;;; 2 - Prompted for.' C. ]+ H) i, e1 F
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
# H( n- N6 j, o" v) S6 H& e: i. K - ;;;8 x$ y a3 y! g- i
- ;;; The (ddchprop_select) function also sets the value of the& v: {% v: T2 D4 S
- ;;; global symbol AI_SELTYPE to one of the above three values to" o( S7 o$ t, H, g, k
- ;;; indicate the method thru which the entity was aquired., S& d8 A9 a Q) w, h3 l
7 S7 K6 L G& {2 L8 V4 k
+ o5 b+ e6 M) c2 Y: I6 ~% r& N! T/ t- (defun ddchprop_select ()
6 j8 O# }( A' k& a/ E! l1 \% _ - (cond1 x ~) ]7 Z* B R c8 e" K
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
% L1 ^: e: b! h Y8 N - (cond ; (ddchprop) as argument3 J5 x% C2 R5 s4 A& J# i" p- m
- ( (not (zerop (sslength ss))) ; If not empty, then4 j D! `6 d0 B
- (setq ai_seltype 3) ; then return pickset.4 z/ B* \- C2 u& u5 A b
- (ai_return ss))))
3 B" y1 d) D8 d/ C! t+ ]" u
9 l+ X4 B: a$ f& |, @# Z7 R- ( (ai_aselect)) ; Use current selection2 a& \* Z6 @, k7 T- s2 H M
- ; set or prompt for objects# _" k$ Y: u" |' |. o2 E
- * b/ y& ]& u- g6 @* N% ?2 _% {
- (t (princ "\nNothing selected.")3 Y: H3 V$ i, O9 s" t: Y
- (ai_return nil))
; V: M' p$ _ S6 I& q3 S - )
y, z, w+ U0 U# v& B3 h - ): \9 K1 j* l1 `. _, _3 Q
- 8 \7 Y1 x: S7 S) Z5 _$ R
- ;;; Define command function.
8 z+ Y# ^: n @& H. z
- C* |; k3 v& s e- (defun C:CH ()
* c: `& p: ~- c) `) H m, E" q - (ddchprop nil)) s1 d( P5 H9 H
- (princ)* S4 Q Z G% W% F. G% u
- )
* c! U9 M( \$ Z1 v% }1 T) Z - 3 r4 r& {5 X( u+ G- b" O' I
2 A0 I$ w3 J3 `: ?. d- ;;; Main program function - callable as a subroutine.2 A4 _7 t6 ^& m
- ;;;
" U6 b$ F8 p3 R) f5 B - ;;; (ddchprop <pickset> )
7 N1 m u4 ^" {/ }+ Y- h - ;;;7 U1 [2 c' s4 o9 l2 Q
- ;;; <pickset> is the selection set of objects to be changed.
- d) X" u4 f$ G2 ?) P! S - ;;;% H8 H C1 H& o/ T( ^3 f3 O
- ;;; If <pickset> is nil, then the current selection set is7 N& a$ ^# Y* A; J
- ;;; aquired, if one exists. Otherwise, the user is prompted
+ N* [- p0 m8 l( k- l& n - ;;; to select the objects to be changed., ^% {* @+ m4 N9 p; X
- ;;;% o+ B8 z) z( D1 G& R2 _8 ^7 @$ Z5 [
- ;;; Before (ddchprop) can be called as a subroutine, it must2 k5 z ` w! y2 P% L! z$ E
- ;;; be loaded first. It is up to the calling application to* e( N- @3 W, c ?6 X; l( f
- ;;; first determine this, and load it if necessary.
# y9 T: n& I; B; ^ - 4 K/ o3 b T! v8 B' D5 H+ w
- (defun ddchprop (ss /
: ?9 n) f3 M) K4 k& I
: t- z/ A3 o: m5 O! z2 z- j- I- add-mdash ecolor ltedit_act s. K* x/ b/ b( y% \1 _/ f( Z
- assoclist elayer ltidx selset3 ~3 N# | I9 y* f
- bit-70 elist ltlist set_col_tile
# l5 j6 E3 p ^ - boxlength eltype ltlist1; y& @6 E4 k( W0 p+ _1 y6 \0 v
- bylayer-lt en ltlist_act sortlist4 n" h3 Y- y0 [' y" Z
- bylayer_col ethickness ltname/ |" ~6 H+ w* u1 ^
- bylayer_lt fchk ltnmlst sslen
5 O' k0 v9 w. X8 \# k - call_chp frozth ltvalue templist
, C2 A. A- [! n2 L, I& F - chk-col getcolor ltype temp_color
$ i/ q) w5 V2 R, B2 {$ P, _+ u8 @ - chk-lay getindex m test-ok
9 ^ m& j+ ~( R( q5 C! d+ X - chk-lt getlayer makelaylists testidx4 V6 @3 F5 m& Z. T7 B
- chk-th getltype makeltlists testlay
x5 b; d. n) E' y/ D% v8 i% w - cmd getprops match-col th-value9 v( \' B$ ` T2 O% f: c! j0 S' `
- cmdecho getthickness match-in thickness# y/ v* x* J1 _0 x: h) @
- cn globals match-lay tile/ o: l" a3 Z& o/ o$ M/ C
- cnum go match-lt tilemode
, u! E: M; {& v' h - col-idx index match-th tile_rect. W( B& m" B1 b
- colname item match_col vi) C& j) Z7 \" k+ _
- colnum item1 mdashlist vpf
4 h# ]) ] s, }: q9 g" R" n - color item2 n vpldata5 d: O: R8 u# W/ v
- colorname itemlist name vpn
2 i* C; T, @# C( h. S; r9 ` - col_def lay-idx ncolor x
! n5 ]1 s' R; K - col_tile layedit_act nlayer x1$ M" T8 {! t7 o! C1 s' v4 r
- ctr layer nltype x2
4 h1 @4 Z& d- Q: }. d - cvpname layinfo nthickness xdlist; f3 J4 E- c( l9 f; ?$ k
- dash laylist off y
6 g* n: U# B, u: b - dashdata laylist_act old-idx y10 q8 f5 z9 ^* L% m* [" t
- dashlist layname olderr y2, `- d& _1 \) P2 B
- dashsize laynmlst on undo_init, x' d, T' |% x3 Q1 G
- dcl_id layvalue onoff6 N: Y+ ^9 d& l! V. i
- linetype patlist4 P( L/ I; h" Y6 n
- ddchprop-err list1 pattern, O# I6 l9 @: K b1 Y
- longlist proplist1 l' b( z9 a) e6 o! U
- lt-idx reset-lay
7 [1 T% d% ?' r, s: r - drawpattern ltabstr reset-lt
& r$ A5 {' S6 r8 |3 z; @) Q7 m - )7 m; a( N. j# x" p6 f) d
1 j. d! Y5 J+ H8 U- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho+ W% p5 a, x+ A3 m7 i; J8 V* |
- old_error *error* ; save current error function
0 n7 E, S: o. r0 ~$ Y - *error* ai_error ; new error function
0 @ }/ A0 g2 g+ N$ H4 C4 A! n7 x - )) H. A0 {6 X! J( O( f" P
+ P7 c* |# a7 N- k3 }9 N- (setvar "cmdecho" 0)
# ?4 H$ r! k& R; D6 Z+ t. a - 0 D9 u3 o. ~ q, {
- (cond g) f5 y6 k1 E! F8 p1 R
- ( (not (ai_notrans))) ; Not transparent?7 a. f3 s" P3 }0 E/ Y \) X F! p
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
$ f: G7 {2 p+ B, \ |) D - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?: A1 w1 k, \5 _6 R" g0 `
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?5 M/ J! F; p5 F: J0 Y
' P4 d, A2 v( A+ n2 l- (t (ai_undo_push)
8 s/ ]6 ~# {, c: k$ P5 e3 r( m - (ddchprop_init) ; Everything's cool,
3 X5 u8 q: Q6 t* @8 ^ - (call_chp) ; so proceed!1 M* Q0 q( Y# W6 O5 { P
- (ai_undo_pop). A$ \8 ]: z. R
- )7 p0 e1 Y( r1 v9 y9 m: E
- )
+ c+ b% Y6 b$ F# i -
/ Y+ T/ O- w% P+ {; u N# a - (setq *error* old_error)
& h6 Z, }" { k: E" {, x - (setvar "cmdecho" old_cmd)" g+ q3 P1 d" P+ q# Y
- (princ)
5 x0 e5 o+ i' p, y6 ?! p; _ F - )
% N! U' |" o% F4 ^: Z8 ?( K4 x - 3 ~* U4 s5 Q8 U3 d% `5 N
- ;;;----------------------------------------------------------------------------0 l2 o7 d) V0 T9 l
- 0 U7 z0 H7 H' T/ f# P
- (princ " DDCHPROP loaded."): V& F$ s2 `$ b; `
- (princ)8 \: S j0 M/ \! G/ S$ f! T; X& r
! ?9 r1 X. F% \* ~$ ]$ j- ;;;----------------------------------------------------------------------------. X. Q% \( z% F
- / T& s6 w8 f- f- K; D
- ;--------------------------------ddmodify.lsp----------------------------------
8 s& v! |2 W+ N8 ~ a - ; Next available MSG number is 111
0 A; c3 w9 M, G0 R3 K1 T1 n1 ~# D - ; MODULE_ID DDMODIFY_LSP_: c1 J8 Y$ n. Y# @
- ;;;----------------------------------------------------------------------------
4 [3 e2 S8 |( c' P1 {7 p9 T/ I - ;;; DDMODIFY.LSP
2 z3 S1 S9 d! H& p' R8 q, T - ;;;
$ N8 F& j+ D# }7 |$ h - ;;; Copyright 1997 by Autodesk, Inc.3 S$ g! Y) ~2 n: a) p4 `
- ;;;; j* O5 q2 g X; P0 M' U
- ;;; Permission to use, copy, modify, and distribute this software
( }% S& ~* l- ^+ y0 Q) ?2 r9 G - ;;; for any purpose and without fee is hereby granted, provided
0 e3 t1 Y @, V. m - ;;; that the above copyright notice appears in all copies and% C+ i% W* q/ r# X1 v
- ;;; that both that copyright notice and the limited warranty and" U& J Z- {6 r6 a& Z+ Y- ]* b: \/ i
- ;;; restricted rights notice below appear in all supporting
, [; H: p% @* Y. I* M1 Q+ R - ;;; documentation.2 ]5 b2 [2 p: W# l2 @$ B5 {. k0 r- \
- ;;;
( L* H5 M' ^+ m2 d- a4 @ D4 ]4 y - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
8 l: j! o3 X9 w/ {+ i- F0 B - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
( @# u0 G, H+ R0 t/ ?/ q2 y - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.* W! s7 Y, _/ |2 Y( Q' G
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE! V7 s/ A; \2 ~
- ;;; UNINTERRUPTED OR ERROR FREE.
9 J! R/ G; e1 s* v3 q2 T: U# w - ;;;; P0 ~) ]1 Z' s! e3 F
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
" ]. n' {# M- f5 z( w- h" [ - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer* x) B* Q. A# U W$ W: e" K4 q" |
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)* y/ q' }( d0 G7 U
- ;;; (Rights in Technical Data and Computer Software), as applicable.# u I# L4 C6 e& ], A
- ;;;
; b, J4 U3 p5 i/ |- {1 h& A - ;;;.7 ?: F/ c% c* ?2 o# P/ O
- ;;;) q* X& r+ |4 q$ K+ K3 o
- ;;;----------------------------------------------------------------------------9 \4 c" K5 K) N6 J
- ;;; DESCRIPTION
0 P3 M( U. F$ C8 R' G1 O7 V- N - ;;;
, X+ m1 Y- L. S - ;;; This function allows the user to get a listing comparable to the LIST
! I/ w D1 l" M) g( N" i - ;;; command for most objects. In addition, most object fields in the
|3 ?' O& c: c5 O - ;;; dialogue box are editable. Points can be specified dynamically by
+ @ `2 g- Y9 F, i8 u- m - ;;; temporarily dismissing the dialogue box. Each object has a unique; f2 a8 D. _$ _3 f8 q
- ;;; dialogue.
: o. Z4 C6 k2 x& D) D- y - ;;;
" e! ^* e* h0 T2 _ - ;;; Naming conventions
! I8 `1 g( q i9 Y; M - ;;; Long function and widget names may use an underscore "_"
& l. f5 ]' g1 L2 J4 [ A$ x1 { - ;;; in their names to make them easier to read, long variable
( F' q1 K8 b) F$ B m - ;;; names use a dash "-".
: I. L, N4 O) h0 C6 o# |4 ` - ;;;----------------------------------------------------------------------------* p# s4 ^4 X! B+ @( B* X. W* I" T. j
- ;;;----------------------------------------------------------------------------( b& W) I5 M" l- V
- ;;; Prefixes in command and keyword strings:* R2 U) ]+ ~7 j) A. [
- ;;; "." specifies the built-in AutoCAD command in case it has been
8 N! X' v" V3 l2 y* M* Q - ;;; redefined.
+ K C& m U7 N7 T" `) u - ;;; "_" denotes an AutoCAD command or keyword in the native language& C _ L) @* s# m2 O5 B1 g& B r E
- ;;; version, English.) k. {/ b. l; V4 E
- ;;;----------------------------------------------------------------------------: ^! j" x, M# L5 v6 T$ y( D
- ;;;
& s F' g( p- v! N# }! R* C3 Y - ;;; Avoid (gc)s on load to improve load time.
* z2 M' W% Q. o4 b, C9 h4 e0 H' c" a - ;;;
6 I7 k' j5 l- ?/ X - (defun do_alloc (/ old_allod new_alloc)/ q. ^6 `' p) W
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))% C: \5 Q% |3 L5 M
- (expand (1+ (/ 17000 new_alloc)))- D8 c2 b; Z& k- r7 {
- (alloc old_alloc)- V: d! {/ a, ~2 N7 e
- )
+ _# q/ J. h: i- @1 c" n6 i6 { - (do_alloc)
! B5 r9 P4 m/ b - (setq do_alloc nil)
0 V: Y. N1 f) z0 U2 Q( c/ Q
! j5 M8 R. |9 h4 n' t. k3 M- ;;;3 d; l g# P% }% r, b
- ;;;
6 J, H* p! F; k9 {. h' Q - ;;; ===========================================================================
8 o. A% c3 l; P/ h - ;;; ===================== load-time error checking ============================
: c5 ~5 X4 b0 x; P8 z - 9 W" K+ a: r% ?6 R5 @
- (defun ai_abort (app msg)
$ q" ~8 N2 G3 u6 i' M - (defun *error* (s)
; r. y ~) S( \+ f8 v6 r% G - (if old_error (setq *error* old_error))- \% Y$ p8 K( _ j, X7 X
- (princ)
2 N: k* @0 F' U; f9 ] - )1 n2 X6 ]& {' I/ }8 R
- (if msg
' c6 f$ T7 E2 L' i - (alert (strcat " Application error: "6 p$ w, c& G4 \; N4 Q' V
- app
0 l/ W' h+ L' K ?, z5 A - " \n\n "* P0 d4 `, F# y+ o* C
- msg+ q2 ?4 S* i, `
- " \n"2 T$ V1 L- G" d7 w3 [; \( D
- )( N1 D0 v w/ h8 H# }1 {
- )" T, W8 ~1 J# G) L
- )
& ~6 n, |' v+ h5 L4 I2 j - (exit)
0 i! L1 V* X4 I5 o - )
" m$ G: t! [+ } - ; q- y2 h' O3 l p9 i0 e. l
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
$ q( P. _3 Y7 q8 ?5 _5 V' f- M - ;;; and then try to load it. If it can't be found or can't be3 k: y' n& \; [/ G4 ~% r2 G
- ;;; loaded, then abort the loading of this file immediately.4 T& a, N, K$ x$ \- L5 U5 j1 @1 C
- . \/ N6 A; ]- D: a0 C* ~
- (cond
7 v/ z; j" d( x7 { - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
6 J8 x! i4 C5 u2 d
) K" P E; N& g$ T. K. C- ( (not (findfile "ai_utils.lsp")) ; find it" J/ X. V5 C# ^( S: A3 @4 M
- (ai_abort "DDMODIFY"
5 J9 e8 Q0 Q' F; B3 g - (strcat "Can't locate file AI_UTILS.LSP."4 v. S: j; ~- Q! k, {3 @- ^0 `8 o
- "\n Check support directory.")))
& C; @: ]& ?+ M( C4 S% D- f - 4 Q/ s1 Z$ m5 I5 S7 \* P% R& D) i
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
# w/ O+ q" g# w$ S7 l1 a+ v - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
0 f" h0 }& p; C8 `( O' ] - )2 E9 j! c6 f- C4 \& T* a8 Y
* e/ w. ]3 l m" I5 b% F' H- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can$ F6 K$ [5 x/ ]; f: j$ _
- ;;; be assumed that all functions defined therein are available. j) t1 i" X4 k$ G9 c" ^% D
/ C6 e/ L" K" Z- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort$ v- }4 g3 I) \; n! i! \0 `
- ;;; if the file can't be found or xloaded. Note that AI_ACADAPP2 t0 r5 b3 m7 [1 G
- ;;; does not abort the running application itself (so that it can4 b- C# f) l, R) g/ F
- ;;; also be called from within the command without also stopping
3 d. R+ |3 n- { - ;;; an AutoCAD command currently in progress).
% Z8 y; v V7 M# ^
7 m8 `, }: W! a; b$ E5 i- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP, D1 u! W |" A H
- (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
, s; W: Z. G7 r" M* }4 v1 K - ) ; ai_abort's alert box dialog.
( f3 v8 G7 W- A+ N2 B+ d& n b" C& j
6 D: Q' y5 j$ Z0 @- b" C8 t- ;;; ==================== end load-time operations ===========================
/ k1 ?( F) Z# `8 @2 i7 K0 o( e% ~ - ! O9 Y4 q) S2 k# l7 U% F! U
- ;;; global variables
/ p) R# g& I+ r! ~' Z/ s8 { - " T" N0 w) c; y# m
- (setq hatch-elist nil)
7 K+ J1 n& K7 a3 A N5 z - 8 R1 l& Y7 L3 C- d/ R
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
; m- m7 Z8 n1 S+ k- k - ;;; assumed to be available.
Y6 Y' W4 z) ^8 h' }# S - * F4 X* _" |1 p( ~
- ;;; Define and encapsulate all subroutines that are declared
6 L }/ G2 o$ b, ]/ t6 j - ;;; locals of the (ddmodify) function.
) i+ O4 F3 Z- F& _" T
. A W6 @' G7 W( q' C2 v- ~+ D8 {- (defun ddmodify_init (): v, L! v7 N o- b2 _( Y8 C
- ;;$ g2 t2 f( Y& y7 o/ x" W4 g
- ;; These three functions modify the enitity list for common properties. Since: s3 Z5 v& Q! Y0 V
- ;; color, ltype, and thickness are absent from the object list when they are( a) f, V5 ]2 @# _4 @
- ;; set to their defaults (i.e. color = bylayer), a simple substitution using& s" j% h% B. A. W7 S
- ;; SUBST is not possible.4 ~$ Y9 ` G- m* f P6 W d
- ;;; M/ Y2 i! c8 G
- (defun modify_properties ()8 C. D2 D, t6 T5 P
- (emod ecolor 62)3 F F0 W1 y# ^, a" {5 |
- (emod eltype 6): B2 d, V3 B3 s2 L& m. P0 X# I1 ~
- (emod ethickness 39)
J3 q- Z$ }7 t7 }5 z - (emod eltscale 48)
) x3 h3 ~+ [& I3 K6 ] - (tempmod elayer 8 nil)! h( B9 ~3 j' v8 O( B
- ), t7 H* n' b* |8 [' c
- ;;( E1 y8 i4 ]# W; r, C/ D
- ;; This function is used for modifying common properties of the ACIS4 B; X8 q) O. A/ S K# ~2 W! i
- ;; based geometry objects. Thickness is not valid for these objects
# q' b8 Z5 T- p$ q- o( f( |( n - ;; so it is left out.- c7 M, Q9 y( o& R
- ;;4 E3 G8 W8 {4 t# [7 J+ P
- (defun modify_prop_geom ()
3 m5 ~! @1 S% D% t+ y9 a! |# C - (emod ecolor 62)
* a/ B% d* \4 X' F- w. I+ L$ K* I - (emod eltype 6)# h- |& f4 [( E$ _* m$ D
- (emod eltscale 48)
5 O: @, }; g! G. P) M6 M1 o% S: c( g" k - (tempmod elayer 8 nil)1 H5 K2 {' p( D e5 y5 I0 K$ {
- )
/ W# y( U( e; q$ Z6 c$ B: Y - ; U& f7 ^- _, p& T" |
- (defun emod (value bit)
/ }/ }$ E9 e) |$ g. L: Y5 Y a - (if (= bit 62)
# B0 v. i' r" R+ S7 a$ J6 U - (progn
( w% o7 [- R0 V1 r: } - (if (or (= value "BYLAYER")
$ J0 Z% H7 J* Q3 c# W& V - (= value "BYLAYER")) (setq value 256)) |6 P4 Q$ m: ~( a; T9 ]6 r
- (if (or (= value "BYBLOCK")' E9 A7 i! k* R; a* t: G9 z$ k
- (= value "BYBLOCK")) (setq value 0))
6 n7 l9 G6 u Y - )
* ^9 [3 V& U0 o; ?8 B7 d- [ - )
( U, s1 x/ ]' T& Z) |/ d - (if (setq oldlist (cdr (assoc bit elist)))
U# e) E+ y" a# S2 j - (tempmod value bit nil)7 | l4 W- }8 T( f
- (setq elist (append elist (list (cons bit value)))). x1 Y. G0 z7 v* H& o+ R4 ?9 ~
- )
4 k7 B0 a, [+ J- }2 ~5 l9 E - )
; w8 G1 ~( M4 T. Z) g6 s - ;;4 S: C3 Q" h8 V* D* |
- ;; Resets object list to original values. Called when the dialogue or
9 G5 B& Y6 A1 N8 B3 t8 A% z - ;; function is cancelled.9 m( [' e) d1 V$ w# N
- ;;
$ `1 D& Z: M, O( O( S - (defun reset ()& l, r" ^! J/ ?; C7 m9 g! x) X
- (setq elist old-elist6 }2 C6 Z7 q# V
- ecolor (cdr (assoc 62 old-elist))8 p( c+ g- Y' J
- ethickness (cdr (assoc 39 old-elist))" G+ W- d4 s# i5 f/ [: y
- eltype (cdr (assoc 6 old-elist))
* r# D/ T# f! H$ @0 m$ K - elayer (cdr (assoc 8 old-elist))
) q, r C2 X9 b) R, U% Q$ ? - eltscale (cdr (assoc 48 old-elist))( M l, t A4 \" }5 n9 m+ z
- )) k2 i+ K& X& D6 `7 E' G
- (if (not ecolor) (setq ecolor "BYLAYER"))) x$ X1 I1 B- O2 i! g- P* c0 l! F
- (if (not eltype) (setq eltype "BYLAYER"))' t3 L$ h) i4 d; h) W& j
- (if (not ethickness) (setq ethickness 0))% C. y2 d- g6 y6 I
- (if (not eltscale) (setq eltscale 1))
. m9 `; I5 Y! R2 t. `) Z$ ~8 Z6 S$ V% [ - (modify_properties)
8 ^/ r) P, U) d. o' \ - (setq reset_flag t)
- ^' t; d, q- D) X - (entmod elist)
$ E, e% {' @9 |+ \+ e( H# | - )
) N# j' k6 Q! S# C - ;;
& l' I3 D7 O" M: q/ I - ;; Modify object when dialogue is temporarily dismissed to reflect latest6 G) {' _( \1 e9 D9 H
- ;; settings of dialogue. It converts the point from current UCS coordinates to+ S$ {0 F3 R* t6 C
- ;; the proper object coordinates (world or object).
9 d9 V; O7 N! ?- j# C3 o% Z - ;;
; i) F& q9 F& i - ;; Arguments: value - in current UCS coordinates! m# w; _5 ]. e$ o0 K6 k8 I- W, @
- ;; bit - object code (i.e. 10 for start point)! {( g) s1 s) }1 s0 y( ~: ^
- ;; ptype - point type 0=world 1=planar
% _$ }* K; R/ r: q# o, @' s - ;;
- a! Q& l0 o2 x& ~5 W7 _ - (defun tempmod (value bit ptype / newpoint)5 ?/ }5 B4 W8 i2 I& y7 l
- (cond( q" h% P$ n+ ^$ E! \
- ((= ptype 1) (setq value (trans value 1 ename)))
) n: D( B: a% N/ v: j2 e; n3 x5 ` - ((= ptype 0) (setq value (trans value 1 0)))
! ~2 c4 M& V' @, [/ h - )
( z# H$ i0 x$ a) _2 [3 s( y - (setq elist (subst (cons bit value)0 m+ M- q1 W/ {' v1 K
- (assoc bit elist)
. n4 W; E. }- E! [) V. R - elist* r. K$ r3 }$ {% [( O; n
- )- ~# ~/ S! a5 \2 Q6 |
- )6 A0 `6 ]* K2 h; v/ Y
- )
4 `7 @ {. l/ w( _* `+ T/ n - ;;
% u! _. f; f/ O% n9 y+ {3 u - ;; The following functions are called after a dialogue has been temporarily* v# ?* B7 R& T1 R9 ]/ W
- ;; dismissed and the user is selecting a point. If a point is selected the
% {8 M" _! J9 X4 T8 f) A- J/ } - ;; object list is modified and new X,Y,Z values set. If no point is selected
# p/ T- ~5 {4 G m; T6 y - ;; (null response), then the point is reset back to its previous values.4 Y% K( Q8 ?4 E W
- ;;" H) p/ F" S& h. O- o) i9 D7 t
- (defun ver_pt1 (ptype)5 x4 q+ l$ g. ~+ o7 w+ k
- (if pt1
$ m) \; v; e2 }/ J' i# i' Z% | - (progn |- N4 s* u" y1 U+ L
- (tempmod pt1 10 ptype)9 S4 A Q2 |; i3 j: k: o$ f V
- (entmod elist)0 w5 X4 ~( ~0 _
- )
+ z2 ?; d9 G0 p - (setq pt1 (list x1 y1 z1))6 f/ A; P3 W/ ?/ O. a- E5 L' H
- )3 `4 ~! P6 A. S5 u; D$ s$ W) Z, U
- )1 k; I. b5 Z; a D1 g
- ' G/ I: [$ e9 i4 y" T+ J; u
- ; (move_pt1 <ptype> )
% C5 n) t# ^; N- n" n& c - ;9 ^4 _7 X2 T( B
- ; Called in liew of (ver_pt1) to translate block insertions which7 J1 r# [; Z$ |0 M/ Q; V6 `0 {( f
- ; might have variable attributes attached to them. If the distance+ Q1 E% e/ k- S7 A. ]
- ; the block is to be moved is < 1e-6, the move is deferred.
6 |% T5 _: l' s# ]$ x - % R$ _) w5 k1 j! W+ m
- (defun move_pt1 (ptype / basept hi)! A) M9 Z/ p- Q3 Y: p
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))0 s+ F* U) Z! ? O
- (cond E% d" }7 U: |! }3 l# _
- ( (not pt1)
r/ ^$ s! U$ V! z! p" {, d - (setq pt1 (list x1 y1 z1)))* @2 o, d2 I( a7 G! s7 U: i- V
- 0 t6 V! @0 f% Q% n/ z+ f: b2 z+ ?
- ( (> 1e-6 (distance pt1 basept)))7 l( V8 X2 r4 [, m( J2 ]* |
- ! I g: q. t$ y- M( ]; `( \
- (t (tempmod pt1 10 ptype)! }0 L0 o; q; V0 z; x
- (setq hi (getvar "highlight"))# i( H# P8 Y, O' z" g2 u4 g7 c
- (setvar "highlight" 0)0 J& f5 B. B" P' ]% ~" s+ m
- (command "._move" ename "" basept pt1)
! t G+ o4 @+ m4 f1 | - (setvar "highlight" hi))
, F1 g1 ]8 q/ y" x - )
0 U; F2 _5 a% e5 K% p7 O - )8 [( A1 |: N% B
- 9 c0 i4 e5 P4 _( p; t
- (defun ver_pt2 (ptype) Z/ i# T! d# d& }1 Y7 ~
- (if pt2( m5 U3 J P/ h$ N- R! o! E+ _
- (progn
7 N, h, A* V$ a9 Y: B2 N - (tempmod pt2 11 ptype)
: _6 u, Y: c7 o. \* U. g' m2 j' A - (entmod elist)
+ ~' K3 u4 b) J - )' a6 P- u l5 Z8 `
- (setq pt2 (list x2 y2 z2))
/ n- ?& L% e& O4 l1 v0 a$ Q% g; d - )
0 r4 g* \0 l1 a- n' m# M, ]! h - )
4 H& H& _6 q8 B* J
1 ^3 V. L8 z( W- (defun ver_pt3 (ptype)# W$ x+ L, r) w, h1 n$ K5 m4 B3 L
- (if pt3
( v6 H$ r6 v: J3 Q l6 f& U+ K - (progn
& D9 d$ V! }: [+ M - (tempmod pt3 12 ptype)
7 X5 f+ r9 _% ]' [5 Z: W6 A l - (entmod elist)
3 O$ }/ t9 m" v7 J - )
. ]0 _# a6 |1 x% E0 l - (setq pt3 (list x3 y3 z3))
2 o& m& F9 o, x- x( S7 L - )$ f7 x) A. J9 c9 h) _6 ^" h+ h
- )+ B% q# e; j% [
- # M1 e1 W% P" v$ }% _0 e" A' Y& s
- (defun ver_pt4 (ptype): F/ U% I. _$ J6 T0 p2 `! l6 L
- (if pt4! k& O6 o- Z$ u6 u3 @4 b
- (progn
: r4 a) i. N4 s' s' w- s3 T - (tempmod pt4 13 ptype)
9 k V" M4 r/ I c" J5 s' S - (entmod elist)
3 h7 r7 p" x4 U- g5 m - ): V$ S' n" Y$ G$ I4 z' I
- (setq pt4 (list x4 y4 z4)); u7 Q& A$ J( E( t/ a
- )4 v6 w% r* ^! l9 o/ N
- )" N( p) a& G3 `/ z
- ;; Xline/Ray Z0 Y; b0 m' K+ @. J9 S
- (defun ver_xline_pt1()
8 p& E! k+ ~) J/ v) ]0 z - (if xline_pt1
, R3 B: `* S9 J% F - (progn4 K% F7 Y: P" O& q% u) U5 E
- ;; convert to WCS.! z' ^. ?/ D. ?' A- Z
- (setq value (trans xline_pt1 1 0))9 C, z f# Y0 M& E5 ?% [
- (setq elist (subst (cons 10 value)
% t5 |0 E m8 f; d. c" r - (assoc 10 elist)/ @! I2 c8 V: `$ C! h3 N: p
- elist2 I$ C- T; x! U3 O" B
- )- u6 f$ Q# }. q8 d8 p
- ); i9 d9 ?* z) b% b7 B2 d9 K/ z
- )
) T* i/ p: ?" g: s1 Q8 L - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
- ~: N" z6 Y( p& Q; K9 f/ z6 m E2 X" | - )* U% T2 h1 g- t) T7 j# A
- )6 c K! w% o7 ^# ? Y4 e
- 3 E) J* c# Z# J/ r$ `9 Q, J, D
- (defun ver_xline_pt2()
8 i- N' k. r5 V9 p7 g: X1 p - (if xline_pt2
3 |) h( p& ]" o! C0 G4 |9 p - (progn
2 q1 S5 C; \6 W9 j I - ;;
# h2 b9 L1 e' y! j' w - ;; Calculate new Direction Vector WCS
; [- v# K8 i/ R9 t' T - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))( H4 m$ S# C% s
- (setq temp_dir (trans xline_pt2 1 0))
9 [7 q7 B: y+ [9 v" a' v" ?. L$ E - (setq temp_dir_x (car temp_dir))
5 s3 m7 C! o/ G - (setq temp_dir_y (cadr temp_dir))
$ ?7 ]9 \1 |& F+ A( l5 } - (setq temp_dir_z (caddr temp_dir))) ~, M* N; i& E( |) R |8 g) H0 ^# N
1 M2 O# _% F( M4 |$ k6 j- (setq temp_xline_pt1 (trans xline_pt1 1 0))
" X" G0 X# E0 S - (setq temp_xline_x1 (car temp_xline_pt1))
* Z% |8 Q; L- N) A2 P5 ?3 e1 ^ - (setq temp_xline_y1 (cadr temp_xline_pt1))
7 Y- h$ I: H8 L' J( p+ s - (setq temp_xline_z1 (caddr temp_xline_pt1))
# h+ v( |9 }* _3 U - + w! `5 _) Y9 n) A% U* I) |2 [, v9 W
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)* Z* ?: F# T' T3 R
- (expt (- temp_dir_y temp_xline_y1) 2)
1 K2 [4 `% }% J* U - (expt (- temp_dir_z temp_xline_z1) 2)! ? i W1 q. c+ `+ C& W9 m
- ))), s" |8 M6 k8 R, ^
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))$ b V* W- S( O+ M4 {! ?
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))8 X# Y% Y; s- P0 r" H
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))5 |! k) B3 X; `8 s& ?
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
0 |- i# P0 r8 a) ^) E8 l' } - (assoc 11 elist)
/ c" S% r6 H- N# Y, w* H - elist% m4 ]* \8 n* M6 D! Z+ ]8 s
- ): p4 t% x- o6 g4 e
- )
) S/ K# u8 Z2 }: v0 F - (entmod elist) Y: [* j7 z, x
- (setq xline_x2 (car xline_pt2))7 P1 Q+ b1 }* ]8 P9 _8 |
- (setq xline_y2 (cadr xline_pt2))
2 I8 u$ z1 D0 {5 ^! h - (setq xline_z2 (caddr xline_pt2))5 _7 c! @8 j: S3 o! i* O
9 t/ q& e# C( h; n' A) v6 V7 { G- ; x! J8 r* c5 @& K
- ). d5 P" Q# g, U" r
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
5 O# P" F+ @ \, L) y - )
' l1 V5 h3 i4 O% L8 q6 ?4 j - )
5 j. B! I* l. f5 N1 _7 X
; c" _( @; g5 F& d1 w4 @/ C1 S3 t- k- ;;: K/ X6 O1 p6 V; M' D2 E5 ]; U7 k! L
- ;; Common properties for all objects
: x: m" K5 r3 B7 n D ^; m( P - ;;( N) L% A5 G% E2 k5 @
- (defun set_tile_props ()
8 W' o' P( }5 w2 U6 P - (set_tile "error" "")7 M% S% p2 N* E8 q4 o1 o7 H8 S
- (setcolor)
1 q4 j! @6 R; P2 m- ?/ v - (cond
& c1 _4 B( D. a" V - ((= eltype "BYLAYER")
0 G# |' _5 A) r - (set_tile "t_ltype" (bylayer_lt)))7 k, \) n) W9 ]: P! R9 W! b
- ((= eltype "BYBLOCK")4 _$ `/ r& _9 A% ?- Q" D9 W! {
- (set_tile "t_ltype" "BYBLOCK"))) M" }2 k( a) x
- (T (set_tile "t_ltype" eltype))
& B2 ?- x* R$ N1 @1 _' r - )
4 `2 ~0 E8 m" j+ E - (set_tile "t_layer" elayer)
/ P9 s/ C) i# v5 w* k1 V3 C$ J5 c - (set_tile "eb_thickness" (ai_rtos ethickness))
' X: |4 U7 B% f; Q7 J: E8 P - (set_tile "eb_ltscale" (ai_rtos eltscale))
2 r6 m' ~) b6 u7 g - (setq which_tiles (ai_common_state etype))5 b2 F* E$ `& F+ K6 H; }
- ;; Disable tiles if need be...
& D ~3 X1 c) r0 x% {( J$ d - ) j( z8 x* \: U8 t
- ;; Layer Button and Text Field
* l$ d4 u& u, [& w. l# H/ f3 U7 ]- Z - (if (/= 1 (logand 1 which_tiles))" Y3 j$ `" W9 ?' K: Y# s
- (progn
* J8 x' @) R! |3 O' K& @ - (mode_tile "t_layer" 1)
; N" m% p, k9 N: p - (mode_tile "b_name" 1)
& Z5 q$ T1 r% ~0 U - )( ~1 {3 K" Q# l: c. h: R
- )' i B9 W- S- Z3 X
- ;; Color Button and Text Field/ _$ X' ?4 R! y7 G, x4 d3 O
- (if (/= 2 (logand 2 which_tiles))! o" M) @# @! Y! c% D, O
- (progn
# L1 u% I! s2 Y% ~0 n6 v. A5 J6 i - (mode_tile "t_color" 1) W4 m# f( U1 W% S9 q& K
- (mode_tile "b_color" 1)2 Y+ t9 ?7 m! Z& d1 p6 }4 n
- (mode_tile "show_image" 1); V! C2 Q6 m7 {& s' @" Y2 j, A
- )
2 N# ]8 [( ^7 U* E0 w9 { - ). _$ s4 s% [: J d% X) P
- ;; Linetype Button and Text Field
4 y2 B* ?& j5 A: F - (if (/= 4 (logand 4 which_tiles))0 D& ^8 P: W ]; `+ K' n+ i4 @
- (progn% [4 t2 J2 i- L$ n6 |+ q2 ?: v
- (mode_tile "t_ltype" 1)! Z' s. O, l! f/ f6 S* v2 a; m
- (mode_tile "b_line" 1)& |$ l) [, E/ L# F# x$ ^6 Z
- )8 v1 p7 ` ~1 x6 w
- ). R* A/ h5 q, ~! P& ~; Y2 [
- ;; Linetype Scale Edit Field7 S2 ~+ A( e3 j5 p' c
- (if (/= 8 (logand 8 which_tiles))4 z. M+ L2 W7 m' O. K; |
- (progn
. V$ l- W' k/ i - (mode_tile "eb_ltscale" 1)
9 g7 l) d" t/ w1 i+ Z( ^7 [0 | - )
; H+ O4 j2 j& J3 [" T9 u - )
9 l4 r5 @, C2 O2 _& m ] - ;; Thickness Edit Field.
' |" a- I% C5 m1 I% k7 h3 D# k - (if (/= 16 (logand 16 which_tiles))# u, N, A+ z7 U1 m* R3 D
- (progn
( G. E1 _" ^, E; E, ^ - (mode_tile "eb_thickness" 1)0 k! w0 v' Z. d- V" L
- )$ C) w9 y9 i4 {4 @6 s
- )
+ d0 j2 B) ~# m3 }8 B6 S: E( T - )
3 [ d: k4 l0 f) b0 j) ~2 N4 I - ;;
3 _+ l7 b# ]) U - ;; XYZ Point values for all enitites# W, ^0 S9 v9 s. ^" V
- ;;8 l5 _8 ^8 O5 K. o0 T
- (defun set_tile_pt1 (ptype)
/ j* l4 |5 t1 z9 S: J/ l - (if (= ptype 0)/ U* l" X" u# ?, g& B" n7 x- g
- (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
/ Z6 L/ G; z) L% v0 G4 w - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
( `% s/ \' e; R( E: W - )! I0 p$ `; u5 j8 L. a7 a
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1)))); `7 D( |& h) ]' D/ o
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1)))). e' B! O: N5 X) _( ^
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
: a" u# [2 Y9 v/ S - )
( v4 k: q" x3 }/ Z0 b7 g/ ` - (defun set_tile_pt2 (ptype)
# v# _4 w) u7 }" t+ B0 \ - (if (= ptype 0), @ a' K5 W( [& V4 o" d& }
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))5 i( t8 e/ ^! }: Q3 x
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))' m2 S! M6 K% e. p( @8 z
- )# w$ W. h- A& v; E
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))' _ X% b: n; ?/ |9 B
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))0 ]0 x- F4 k$ p8 W' l3 m3 o
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
) O- |7 c9 k; [ X - )
0 m- B$ \/ ~0 P9 W9 {+ a6 C - (defun set_tile_pt3 (ptype)
) P% z3 o* U" v: o! q- K7 T, m - (if (= ptype 0)
' I, A3 ]% U K6 f1 r - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))' q! v8 }3 e4 |! b
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
/ C, [. i2 x4 X( N* F7 ` - )" g. R H7 O0 ~; z( y- \6 v
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))/ Q3 Q& z' O- e) D2 p
- (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
0 T# k! ~, j6 P - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
" ?( ~* V E6 S; o8 I0 p4 z: Z - )
/ \% X7 e% O7 r$ _ - (defun set_tile_pt4 (ptype)
; J; J8 p( j; j( d* y: W& Q - (if (= ptype 0)4 }, l) V) F6 m. m- a, d1 a5 ^: o
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
* R/ r ^, ~3 ^1 w/ l - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1)): m( c' D9 C. E9 W' ^+ m
- )' d. k" N6 B6 S Q! C2 Z. c7 \& b
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4)))). T( e7 p. B6 t5 r& I1 C
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))3 ]$ f4 d& @& H6 K) F
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
, z" ^, y% s. ^" ^; b - ). _8 O- T+ d6 p6 P
- ;;! n8 u+ i [9 v& P
- ;; Xline/Ray, C" r$ ~- \4 ~
- ;;
, @9 l' l) ^# e: W) U% | - (defun set_tile_xline_pt1 ()- `+ f' K8 ]( [/ y6 L! @
* d( v$ J4 t Y/ p8 @- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
. U7 Q8 w; ?% Z- C
' }2 ?8 I5 T6 g& C8 M) i! B) l& A- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
& f8 } b- p u4 B - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
, f& L& w% v# b M0 a! i - (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
W* q9 A3 l$ ?; z - )
, W9 u4 e1 ?; x: u* z2 H - (defun set_tile_dirv ()
7 C- l' }$ \1 ~. g - ;; Convert 11 group to local UCS (displacement)4 h' L3 u! a. P* W' r }7 H) h/ ~
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
V, l# n/ q8 U n( z3 c7 }
- k# [' F' ]. o# S4 ? P5 c- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
: i, P g9 [ _' f0 q1 m& _/ ? - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))6 h7 L5 y9 M! `' S5 p
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
) U3 w7 [8 E0 ?5 y4 }0 c0 J1 D - )% ?& U: a) K$ p. x: M: h( P
- (defun set_tile_xline_pt2 ()
' a$ q9 R+ _9 @9 k0 G" S - (if (not xline_pt2)/ _( R2 M7 ~) k- B0 m# X
- ;; Initial second point is Root Point + Direction Vector
2 H, s" d" x; @% N' E - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt)); Z0 d% W5 y. H. ?* y
- )
4 y# m5 B. W7 R* a - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
& p$ Q% M. w! o- W/ k+ [ - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))3 G/ s& _+ Z8 H; \
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
S( ~$ d1 `. m, Z - )
7 N# l' q# T0 p! Y6 W' g! _+ x2 y! _. e
( y2 F6 E. u* f |* H2 @: m- ;;2 l. e1 ?# X; k
- ;; Handle for all objects
/ W1 v% k$ l! q! }1 V! d - ;;: _! s7 n. S: ~" X$ Z4 u' @
- (defun set_tile_handle ()# R& b4 h$ P% [* R# N
- (if (setq hand (cdr (assoc 5 elist))), b; `* g' B$ E: Q+ S$ I& i
- (set_tile "Handle" hand)3 s4 L1 o9 ~+ v0 o1 a# x& }1 M% r. W
- (set_tile "Handle" "None")0 t! v# @$ ^; I5 Q& ^
- )
; Z3 V4 F1 [0 `$ _ - )% }$ W+ s, t" D& h; j% q% Z
- ;;
! P5 s4 J( d3 x8 I- L - ;; Radius for ARC and CIRCLE
) D: [( v. l) W- ? - ;;8 t! |; \- ] e8 O; t+ y0 h
- (defun set_tile_rad ()& ]: E3 D. v& q
- (setq radius (cdr (assoc 40 elist)))$ m0 D1 s+ q$ b8 v
- (set_tile "radius" (ai_rtos radius))) |5 u2 i0 Y4 d1 @
- ) x* `' R. `# O1 c& y4 ]3 E( w
- ;;! {% {' ^( L& u. ^+ d, f
- ;; Start angle for ARC
2 T1 F m: E7 y* K4 S - ;;
. a. x& E2 Y8 }, c9 c4 j - (defun set_tile_stang ()0 |' j: e. ^$ [" e0 ~: n3 X
- (setq st_ang (cdr (assoc 50 elist)))
+ y/ R! i1 e- ] - (set_tile "st_ang" (ai_angtos st_ang))8 f& Y! X+ O6 D( V
- ) t1 U1 p) N5 @" A% Q
- ;; G. z, e, B6 m( q* Y- H+ |
- ;; End angle for ARC0 j+ O/ y7 d, d A3 H, C" y
- ;;
& R# ~7 ~5 \8 R6 K' H& l- j - (defun set_tile_endang ()
4 Z8 C; @5 A, p a - (setq end_ang (cdr (assoc 51 elist)))
( A! |- X" V/ \ - (set_tile "end_ang" (ai_angtos end_ang))/ y+ u: h, M7 _/ K
- )
: H3 L7 U1 Q7 v$ U - ;;
2 Y* F9 t, H7 h u ]' d/ t( t; ~ - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
; I: A- _ C& @7 B; r- y - ;;
* P9 I+ ?2 q2 |* Q; `; V - (defun set_tile_rot ()
8 ~; S7 ?! R- E( a. _; q! W( D# ` - (setq rot (cdr (assoc 50 elist))); u: D9 n& \% {2 |
- (set_tile "rot" (ai_angtos rot))
6 z8 `8 r- P* w8 o) X6 X2 M - )4 v7 U/ G S0 |1 y
- ;;
- w9 s* c5 J1 X& i" o$ y5 G - ;; Height - Text, Attributes and Shapes
3 ~+ D1 b( b* A: n1 W" y' c - ;;
5 K X2 Z0 @* ]" L; S5 f - (defun set_tile_hght ()
3 m' I T% B2 R, E - (setq hght (cdr (assoc 40 elist)))
, \% s9 {( i0 u" _ - (set_tile "hght" (ai_rtos hght))2 ^) y0 J9 V; I/ Y, H. T3 L ]) w/ r
- )
& i# q: D. z) ?; \' e - ;;: |9 R Q( Q" H8 f
- ;; Width Factor - Text, Attributes and Shapes
4 U4 O. S$ o& P; M - ;;
& p- M; O9 F* }0 m: ~( W - (defun set_tile_wid ()& l6 [1 E$ \: E0 f- i6 W, V
- (setq wid (cdr (assoc 41 elist)))
# |: p1 m3 z* W3 A - (set_tile "wid" (ai_rtos wid))
, ^% d, e( B* O - )
) }) T; N5 I# c% Y2 q, n$ j - ;;" s8 |6 B; v* M+ B3 g9 W9 I& I
- ;; Obliquing Angle - Text, Attributes and Shapes/ a$ m5 H4 M1 f$ P- C' k" K6 F
- ;;
$ g y/ Q4 I1 { - (defun set_tile_obl ()
# V6 J9 h R" H+ Z8 I7 x - (setq obl (cdr (assoc 51 elist)))
7 W) Z8 E7 \# {! D( h. i - (set_tile "obl" (ai_angtos obl))" N3 w" O; t3 [( E
- )$ b ]* S( S. g( e9 f) P' v; x
- ;;
( |8 Z( s4 o: k& @ - ;; Text string3 ]$ U- a$ A |& t; p
- ;;
) n+ h, z0 O+ S; Y; w1 n - (defun set_tile_text ()+ {: E0 h8 l4 f! \5 ^+ y
- (setq text (cdr (assoc 1 elist)))
# q" g& H$ f2 y1 a - (set_tile "t_string" text). |, e. k0 X. M4 U# u5 y ^
- )
; m5 G6 ^; W6 x! ~2 @* @ - ;;
/ X0 Q$ X. c# S' Y/ a7 u - ;; Attribute Tag% I' Z. o5 v/ E$ Z" v
- ;;
$ s* x1 F, Y7 k* \; y$ O - (defun set_tile_tag ()# @# J; y" {. X" z; d/ A$ a
- (if (= etype "ATTDEF"); ^6 |$ K- z% T1 [$ Q
- (progn6 Y& ?: y9 s0 z( |) y
- (setq attag (cdr (assoc 2 elist)))/ s4 A' t; X% q1 y
- (set_tile "tag" attag)
5 Y% d2 G- X* m - )
' h! s% W. R5 m - )0 L8 V4 N3 t) a6 G! e8 x6 X
- )* n' x9 l! y8 w' \! N
- ;;4 b# N3 B7 N# X- A* ^& A$ ~+ P
- ;; Attribute Definition
* K( L e- Z: s - ;;1 b. i1 O; J2 M
- (defun set_tile_prompt ()
; a/ m( w2 C5 C: K4 {, ?: Y! }0 ~, h - (if (= etype "ATTDEF")
. u" A& E8 G. n! u! y$ E - (progn
- Z+ L2 j) E* `# a) r$ P - (setq atprompt (cdr (assoc 3 elist)))
: Z* X# d8 c* l4 k% e* ]. k) |3 ~ - (set_tile "prompt" atprompt)
\- J& E) m+ s7 r" C- Q. i - )% I4 E- D5 t$ h9 w- f C
- )/ S. y; w4 r' k/ L1 [* n
- )
Y- @# x, ?" a% b8 _7 ` - ;;' D9 {8 D7 f) Q9 `, b5 B/ q+ z
- ;; Justification setting for Attributes and Text. Initializes- D6 [8 }" H5 G7 U \, P& V
- ;; popup list box1 u. X7 _+ ]7 `* E
- ;;
5 c( p5 i* X" y, C: b6 C9 h2 c - (defun set_tile_just ()+ k3 a9 }) j @" W( G
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment# }% p4 _' q& U
- (setq va (cdr (assoc 73 elist))) ; vertical alignment1 M& W. U; B0 J, L0 Z `/ P( |1 S
- (setq ha-prev ha)
( A" k/ a! Y0 d" B6 x - (if (= etype "ATTDEF")
6 U2 N( ?8 `/ S5 k/ G* Q+ b - (setq va (cdr (assoc 74 elist))) ; vertical alignment6 t- s1 q1 n! P) f. b9 T* W/ y1 Q; i
- )6 c& ~" d$ s& d7 F2 |
- (setq jlist% T- R# E% N3 H
- (list "Left" "Center" "Right"
7 M' u4 D' j! I" a @5 R - "Aligned" "Middle" "Fit"
E- z2 C5 x; h1 j$ [: h4 A/ }: T - "Top left" "Top center" "Top right"5 D7 P" z; @2 ~9 d# ^* p
- "Middle left" "Middle center" "Middle right"
; K7 C5 b" P- d* Q - "Bottom left" "Bottom center" "Bottom right"
9 ~+ G. p) l; I" P7 y8 L - )
! X' v/ S: ~$ p; k8 H' _1 T B - ): D! j y4 v/ S0 a* x
- (start_list "popup_just")
7 b% l0 A, N/ z/ W; {2 _5 `$ I - (mapcar 'add_list jlist)
" E0 C: B+ C( M6 G - (end_list)
3 d6 I0 L; u. O9 v: S - (set_just_idx)) f. q1 R% {/ X/ k* D: l
- (set_tile "popup_just" (jlist_act just-idx))5 g& K4 K, m& g4 u' s c& j1 b
- )
0 n* X9 ]. J3 b( [$ x( L$ F - ;;7 U9 ?: S: c) Z! j4 K$ d
- ;; Style setting for Attributes and Text. Reads symbol table for popup list
" |. I$ ^1 L5 x+ p - ;; box.6 T% w# b' }0 r* Z0 y o/ X
- ;;# f8 y' z9 y! l2 U2 Q1 ~! y0 A7 {7 R/ t
- (defun set_tile_style (/ sname style-idx tlist)
( ]0 E" s4 W H% X# Q m - (setq tlist (tblnext "STYLE" T)
: |; ?3 B3 |8 R7 G5 E - slist nil)0 n5 A0 @: W0 h* v: O8 M
- (while tlist1 C8 J' J- q% N' t% W
- (setq sname (cdr (assoc 2 tlist)))
, R% @, R; y0 d" Z# _% | - (if (and (/= sname "")
4 f& i# p. q: B - (/= (logand 16 (cdr (assoc 70 tlist))) 16))9 \( ?, s5 d; l: L
- (setq slist (cons sname slist)))
: u* L0 T1 g) N. Q6 O - (setq tlist (tblnext "STYLE")))
1 }+ Q: `% p6 a5 c1 u+ O: c% g - (if (>= (getvar "maxsort") (length slist))( m& g1 w* C6 S: ^0 a
- (setq slist (acad_strlsort slist)) ; alphabetize style list
1 ]% s1 Z( f' H i - (setq slist (reverse slist))) ; or reverse it to put it in DB order: Y8 N, ^ m2 {; \
- 8 g- J+ q5 C- o0 E
- (start_list "style")2 ?; J/ z; d' p. j! w
- (mapcar 'add_list slist)* w# s3 |+ F; z
- (end_list)
$ x7 G A# y. {% n; i* [7 \ - (setq tstyle (cdr (assoc 7 elist)))
7 _+ J2 s S$ p t/ t, l - (setq style-idx (getindex tstyle slist))
* _% L: p8 K1 n" v& y$ X* J4 } - (set_tile "style" (itoa style-idx))1 m/ c n. w! N9 o& M/ {
- )
+ f m ]/ C. w' [4 F - ;;
# i( o9 C- d# M- x6 I - ;; Text and Attribute setting - upside-down, backwards
9 y' \# u2 I; A2 S - ;;
. ^# w4 z" Q5 q* N5 H$ ~' M. S - (defun set_tile_bk-up ()% ]6 q( ~) ]; ^. P2 p
- (setq bk-up (cdr (assoc 71 elist)))% h4 c4 t' Z- w
- (if (= (logand bk-up 2) 2)
1 c/ \! Z+ a! I1 n* x: `; e - (set_tile "bkwd" (itoa (setq bkwd 1)))
4 T7 I6 a' b! _ - (set_tile "bkwd" (itoa (setq bkwd 0))), H8 [7 z- e$ c: j7 f P
- )! e. z" s; y: d$ H2 b
- (if (= (logand bk-up 4) 4)
6 N# r1 L+ c F: c5 S5 M - (set_tile "upsd" (itoa (setq upsd 1)))% T+ w6 h0 Z$ e4 X1 i
- (set_tile "upsd" (itoa (setq upsd 0)))0 j6 h* G) B N% _0 i+ H
- )
' c! E8 N$ G1 _ c) r) l - ), l( V) j O& Q% c9 M
- ;;
; \3 d8 `4 m4 t - ;; Attribute setting - invisible, constant, verify, preset
* P3 t7 G: s, R9 ^ - ;;0 p$ S, n6 n* X( N
- (defun set_tile_icvp ()
# k6 X* o) t3 V* ] - (if (not (setq icvp (cdr (assoc 70 elist)))): W* o$ N/ G7 e4 P
- (setq icvp 0)/ \4 b3 l5 R3 f7 P1 R
- ); H3 L/ c( G5 d" A0 p3 u* A; ?
- (if (= (logand icvp 1) 1)
% X$ M H- ?! F- { - (set_tile "inv" (itoa (setq inv 1)))( ]9 {5 ?1 `/ C" s5 y( [# x
- (set_tile "inv" (itoa (setq inv 0)))
- ?7 l# q# _" m - ). @* S; i1 }0 T5 h
- (if (= (logand icvp 2) 2)
# C) K; K4 W' v' D3 q: |5 l - (set_tile "con" (itoa (setq con 1)))
9 a, _7 R- b6 T0 |8 ]$ c5 s - (set_tile "con" (itoa (setq con 0))): v; z2 A- a: i5 q r: `& @
- )
2 S$ n% T2 f; Z8 o* ]# _ - (if (= (logand icvp 4) 4)
% C% j% O+ [( g8 l: M - (set_tile "ver" (itoa (setq vfy 1)))
- D+ b8 [+ N- b$ N$ Q! ~ - (set_tile "ver" (itoa (setq vfy 0)))% r& f" O& C, V- _7 `, H2 d: }. ^
- )
. }; i4 ~! z# g- N) W3 a6 P' L - (if (= (logand icvp 8) 8)
0 E; I" P" P" V/ { - (set_tile "pre" (itoa (setq pre 1)))* ?1 O/ b# i5 a" ~
- (set_tile "pre" (itoa (setq pre 0)))' L, R6 w; `6 o0 `" E
- )
9 T8 [" l8 w1 n4 r - )" x: ?$ p9 N' P: B6 Z! j8 ]0 _' S q3 X
- ;;
8 c8 ]/ U# ]3 c: H - ;; Scale factors for block insertions" f2 \4 I" J2 e4 f
- ;;* J' v* C) T# X- u6 y
- (defun set_tile_scale (/ temp), d( P c3 I# M5 j
- (setq temp (getvar "LUNITS"))
+ h7 a; u- Y# H' t - (setvar "LUNITS" 2). m% b% \/ I, e9 p
- (setq xscale (cdr (assoc 41 elist)))# A0 \ j" W6 Y7 E! w
- (set_tile "xscale" (ai_rtos xscale))# u3 p; F3 \! R3 x+ J/ B
- (setq yscale (cdr (assoc 42 elist)))
+ V9 h! x6 ]8 |) N( i - (set_tile "yscale" (ai_rtos yscale))
, o) w6 M+ ^) m, Y4 h! U- R& I: v - (setq zscale (cdr (assoc 43 elist)))
3 D, G4 v8 O5 h4 Y' K6 F - (set_tile "zscale" (ai_rtos zscale))
$ ]5 i" {% C' e; m5 O* n - (setvar "LUNITS" temp)
8 ?7 Z5 Q* x- o1 z - )
E+ B- b+ X( d+ g, I - ;;
K8 L2 N- ^% K - ;; Rows and columns for block insertions
3 |: Z0 L- k8 e3 e3 I% r" _ - ;;6 G4 f7 o, Q1 N: J# S
- (defun set_tile_rc ()
- @$ h2 x7 P* q4 e" k# I n# m - (setq columns (cdr (assoc 70 elist)))( M( R& s8 A- Z3 p( K
- (set_tile "columns" (itoa columns ))
* I3 G' W2 ^, ? - (setq rows (cdr (assoc 71 elist)))
$ K! L( F3 L [; f; f; k/ k+ l - (set_tile "rows" (itoa rows))/ ? u5 e8 {' c2 R7 B& M- N: W* V
- (setq col-sp (cdr (assoc 44 elist)))
# p; n% I( x! i7 } i - (set_tile "col_sp" (ai_rtos col-sp))0 _0 q- r C; n+ A$ D
- (setq row-sp (cdr (assoc 45 elist)))# l1 ~1 u* ^% E$ {
- (set_tile "row_sp" (ai_rtos row-sp))
: N6 l- F. v# h - (if (/= hasclip T)( b( o8 ~7 \* t9 K5 |" \& C( W
- (mode_tile "xcliponoff" 1)
6 ]: N+ I, U* A! t6 E* ? - (set_tile "xcliponoff" (itoa xcliponoff)). a. t6 Y5 H7 X: {+ P3 p; [3 ]
- )2 f N/ O0 D6 N5 V0 z
- )6 L, X" n) [* s, Q3 v) d% C6 v8 M
- ;;1 g5 _% _1 j, C. K0 ~7 ^9 O" K1 x
- ;; Invisible edges for 3DFACE
/ ~6 g3 Z" E3 R2 U - ;;$ P$ u- ~ R" U6 x# Q7 q+ h% @
- (defun set_tile_edges ()
0 W9 U# f7 Q# V# K! G - (setq f-vis (cdr (assoc 70 elist)))0 ?7 m2 g% g7 t! U9 }
- (if (= (logand f-vis 1) 1)
; F5 b8 B7 o2 ?/ H - (set_tile "edge_1" (setq edge1 "0"))
; b% D8 w6 @/ x; ?( r L* L - (set_tile "edge_1" (setq edge1 "1"))
! d8 {; Y( A6 s- b - )
+ ^* N0 s2 ?! d7 Q; B - (if (= (logand f-vis 2) 2)
% H( m6 D& D3 _, p C6 K- C: Z - (set_tile "edge_2" (setq edge2 "0"))1 W) m# d5 J! {+ H' \4 {
- (set_tile "edge_2" (setq edge2 "1"))
' d% j5 f% G% m- J/ V - ); K" A+ E; O5 ~$ {& x. ?
- (if (= (logand f-vis 4) 4)
8 s; B8 m* L* l4 g% t: m - (set_tile "edge_3" (setq edge3 "0"))
7 T d- p/ \0 s5 V! t - (set_tile "edge_3" (setq edge3 "1"))& o! ~3 p0 B3 e. o4 q- A$ A
- )5 L$ b; m6 ^) a" B% I; H
- (if (= (logand f-vis 8) 8)& \) l( D6 L/ ?
- (set_tile "edge_4" (setq edge4 "0"))
2 Z7 k, s* [* r4 Z5 W - (set_tile "edge_4" (setq edge4 "1"))9 l2 F1 g* ]+ v& m5 s# n U+ G$ R
- )
7 C( i" t. V# Y/ I8 n. d. m& j - )
) U' n2 ^$ v+ t* A T - ;;
' j5 w: p, H- C- d3 ^ - ;; XYZ Point values for polyline vertex! A" V' T: l2 G) w2 P
- ;;7 b, T+ o7 R+ z+ R, W `
- (defun set_tile_vpt (ptype)4 M( @% P* t! l/ J6 r; _
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")8 ]. b$ C( `6 ^9 ]+ i! K$ J
- (progn
1 G( X- _ d/ x3 ]4 v; Z - ;; ctr is 1 based, vertices are zero based.2 T! A; ^) K+ ?7 G& i* P
- (setq vpt (cdr (getLwVert (- ctr 1))))% K. j) g3 H1 y( {! q
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
& e8 Z1 f4 Q0 X% M - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
- m' d* Z& j$ V+ O. V' L - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))1 [; l/ B' J# D% y1 u, I. u( Z
- )
2 d6 Z( F$ |0 x1 t - (progn% |3 }7 f! R2 V+ p+ @
- (if (= ptype 0)* c, C. X2 M8 I9 c. @
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1)): F; ~5 _# h2 _3 w# v9 {' r
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
1 \, C1 \2 m3 k, c1 o z k: c. P% E - )
- k$ r. ?4 G# e1 \
4 ?8 s; p4 m) [5 q9 R/ U- (set_tile "xtext" (rtos (setq x1 (car vpt))))
' s; f' w. A1 r0 z H - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
6 v7 @6 q) r" ~. u% g& L - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))' n4 I9 A- E" ]0 _9 G, J
- )
: ]+ r: }6 r. p2 J; A2 \# I - )
: V% D2 z* `! i4 z2 O; `
3 U. G1 q! Y$ h& l1 O7 e# }* x* E- )
] T( ^5 a$ u% ~4 w, ~ - ;; This is the equivalent to doing an entnext on the heavy weight
% s1 d: \& x% g/ f7 W' S9 j6 n - ;; polylines. The hard coded '4' below allow stepping over the+ [* ?$ O4 H7 R) K- d* C
- ;; 40 41 and 42 group code information. The while loop finds the
8 G$ Z3 y( }! ]. {# P7 q - ;; first vertex which will be used as the starting assoc in the# T3 o7 e5 \/ e8 B1 n
- ;; call to nth.
" h, K. G* f3 M5 }" q1 y - ;;- f6 N* E6 m8 O4 m* N
- (defun getLwVert (tmpctr / count tmp)
8 b+ Q9 ]5 @' S1 N* T: s- M - (setq count 0)
6 T; Q c9 {2 L. i+ ` - (while (/= (car (nth count vlist)) 10)6 R6 w8 @- x, @; L6 v3 q
- (setq count (+ count 1))( u M. s1 y9 J
- )
% }; \* H' i3 _ - ;; If the counter reaches the number of vertices,
' I# H2 R5 E( i - ;; reset ctr and tmpctr to zero again.
[1 J' G X9 B) b - (if (= tmpctr (cdr (assoc 90 vlist)))$ e! h7 [1 S/ C6 l5 e
- (progn. v: C R! w) p# c5 D( \
- (setq ctr 0), J" ?) l! ^2 D L* K0 `
- (setq tmpctr 0)# I( o% z: y) I% }) z/ @
- )$ ^2 u; E' x0 b# @! G2 r7 U
- )8 \" \' J% R- V9 {6 y2 T4 V
- (setq tmp (nth (+ count (* tmpctr 4)) vlist))4 v" |4 K* O& y$ p0 z3 Z4 v( F
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
" i9 y6 T6 r: {1 X/ x2 v' p2 E2 { - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))# y5 y% c; \' S
- (setq tmp (cons 10 pt1))$ `/ h' m G6 Q; a
- (setq tmp tmp), l* g+ U- F' C* G7 b; |
- )1 H! q" X6 {3 \3 Y2 l
- ;;
/ J( l* j3 ^; ~3 `" k& S - ;; Set tiles for Spline properties. If the spline is rational then we
! r3 ~8 l3 l! T5 ~# m+ e9 I - ;; need to display the weight values of the control points, so set! v! M4 {4 Z. I4 @1 X/ m( Z& i- q
- ;; flag to 1.% \$ p; ^/ Y1 l) B
- ;; 1 = rational spline
, w+ V) F! {+ X/ c% B* }- _ - ;; 0 = non-rational spline
1 U8 n' ~8 {$ ^. ^ - ;;& Y# d% |# G% b" j, f3 G
- (defun set_tile_spline_props ()
+ L% V$ W* d* y$ L6 H' z5 H - (setq rational_spl_flag 0) ;; initialize rational spline flag
9 z$ C: r2 {, | v2 s6 S, Z - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))* ?' C9 h6 D* p* `6 j8 ]# \; P H
- (setq bit70 (cdr (assoc 70 elist)))
, z# }' ]) h! R, R/ R - (if (= (logand bit70 1) 1)
9 F p5 L. W$ T - (set_tile "SpProp4" "Closed")
# v4 m, _7 } ]! |# ~ j - (set_tile "SpProp4" " ")
- q5 f3 c- S4 m: x - )$ D5 c* g3 J/ ?0 O$ g V5 V
- (if (= (logand bit70 2) 2)# R4 p' [+ A! U/ f7 ~; y
- (set_tile "SpProp3" "Periodic"), G d I( y1 X$ A' l4 ~1 h
- (set_tile "SpProp3" "Non-Periodic")
8 j0 O* u- e, z' H7 m - )
+ _: A' `* v6 x1 z Z4 t1 o - (if (= (logand bit70 4) 4)
( O; M; ?/ k; h& y+ K - (progn
# `1 `7 |4 a1 S - (set_tile "SpProp2" "Rational")
+ v4 d0 g7 Z9 C" W/ I) B9 T8 V - (setq rational_spl_flag 1) ;; this is a rational spline
8 E/ v5 v# G+ I+ G4 S) K# U- ]2 g& T - )
/ ]6 m% o; c T/ U; G v- O+ m E8 V( B - (set_tile "SpProp2" "Non-Rational")* y* o2 u7 K- G% K& D+ u8 l
- )& N c$ q+ M1 U# W6 g
- (if (= (logand bit70 8) 8)
4 B! R8 p9 u1 `2 ^2 E - (set_tile "SpProp1" "Planar")% q9 Z+ ~- P2 h" c
- (set_tile "SpProp1" "Non-Planar")
2 Y/ } s; O3 f% Q" l - )
* F0 T, i% V( N* m/ ? - (if (= (logand bit70 16) 16)
* f( ?. i& F- ~; m - (set_tile "SpProp5" "Linear")
8 p |9 c( B9 m% M - (set_tile "SpProp5" " ")
$ [4 C. p9 b0 y - )" [" G G. ?- Z( J8 f' n
- )* S( Y) `5 B" Z# W9 [% k
- ;;* W2 C6 B( e- ~. G3 a, o
- ;; XYZ Point values for spline points
" J% T' ~! f; _6 M e. O - ;; Need to account for WCS/UCS. j/ D: z* n# O+ N
- ;;
% ?0 o7 d. C( _/ O- F9 P$ } - (defun set_tile_cntl_pt ()0 s: Y2 W$ Y3 _ P2 V" l
- (setq cntl-pt (cdr (assoc 10 elist)))( X) D" u+ R% R5 v$ W" I
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
/ o5 E: ]& x" z3 C6 j - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
1 p/ `0 b+ m& d) o) P - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))4 M4 \! E9 g6 [- }% q
- (if (= rational_spl_flag 1) ;; if rational spline
8 ^5 Y4 y1 t1 u/ T n/ O; n - (progn ;; show weight1 @5 d& Z: K6 _; q& j
- (setq weight (cdr (assoc 41 elist)))* g9 E$ T$ t* n0 Y5 T& n
- (set_tile "weight" (rtos weight))
1 L1 O; ]$ j* f+ I - ) ;; else
# G5 l2 n# M% F/ K _' a - (mode_tile "weight_text" 1) ;; disable weight field; E$ S/ D# X. I; j( c
- )
$ k, e$ q2 n, a( A! A# J5 z0 v - )0 c, O, P/ ]5 j# M) I
- ;;8 j" `5 O! ]/ z5 \
- ;; XYZ Point values for spline points
& t9 {9 Q8 P1 R- ~" |, i5 F - ;; Need to account for WCS/UCS0 ~' p C" x: K8 b; S
- ;;8 g6 h$ a: Z, n O/ @" t# A
- (defun set_tile_data_pt ()
. f% h7 ?% y4 f0 g3 E+ F4 t# | - (if (not (assoc 11 elist))
/ K6 X2 ` H! p& h% I - (mode_tile "data_pts" 1)
$ _' t* v# @. W" \* K1 ?7 X - (progn$ |- }6 H; [( D0 c
- (setq data-pt (cdr (assoc 11 elist)))* P6 T/ X1 F, z1 y5 q
- ;; display points with current precision.3 M# H+ L0 t9 V) [
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))4 K. w8 l; V6 ]% G" M8 ]7 o
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
$ Q5 J c% x- i4 a5 t; Z - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))( P- N- a+ W Q- u* V/ e8 r
- ): k$ s1 C7 ~ Q0 z; G
- )
, X& T: I$ |3 V g) @; Q - )6 T, q" s3 t6 q1 p
- ;;
5 X, j @3 e, @8 b8 v" C2 @ - ;; Fit curve, fit spline, or smooth spline surface setting3 C/ [2 ^$ k0 W* |
- ;;
+ @% V# n$ i$ h, \) Q0 ` - (defun set_tile_fitsmooth ()1 p' t4 m: y0 _3 i1 w" |
- (cond6 `9 {* i$ q$ g+ {$ ?6 T
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
* T' N# S& r! H' U - (set_tile "none" "1")/ b- u2 o0 Y+ S+ b4 _' U$ H) c
- )7 ]/ S" J% M3 X" j1 Y8 K
- ((= (logand bit70 4) 4)& ^; x/ o# G+ ~7 J# e. H, }
- (cond
: g% D' Q$ t, @ - ((= bit75 0)+ u6 ?" b4 q5 ^3 O
- (set_tile "none" "1")
+ d8 U; y* F$ ~* \4 d4 y - (setq spltype 0)
% ?( ]% ?" ~% E, ~/ J2 a! F0 P - )$ X5 O8 U! y- A% s0 I* R6 o
- ((= bit75 5)* P* T$ Q/ }: _3 O( T
- (set_tile "quad" "1")
- f/ F' E* c& E! Q/ l3 J - (setq spltype 5)
; k# A& g4 P9 t) T' ]1 o e - )3 i6 P6 j, U$ d0 |
- ((= bit75 6)
4 Z; G) u" G5 v- o/ t7 b - (set_tile "cubic" "1")
9 u. T. ^9 x! n2 Z - (setq spltype 6)0 [+ z3 |# l9 t# d% u6 R1 l
- )
7 c" }3 l- Q! s7 J3 t - ((= bit75 8)
# O# b( N# J2 ~) `7 W. o - (set_tile "bezier" "1")
" B& F; s- C" R - (setq spltype 8) ]* Y( U% f: R( j ^* O
- )
* ]; u! e: F- D8 \ - )/ d0 e: X# i8 [
- )& M4 y" a' H- [) B6 C
- ((= (logand bit70 2) 2)
% I6 o% H( Q/ l0 h- \ - (set_tile "fit" "1")+ Q, w/ f$ f$ l' X& v Y! U
- (setq spltype 1)6 m+ V$ ?4 {* m* C: a. N8 O4 t' T/ I
- )
# O9 m. J6 t5 X! m- u, H) Q - (T (set_tile "none" "1"))$ f/ O$ \$ f" X" D" N
- )
0 m9 q! o# X; V2 A9 n! H/ ? - )( m6 k7 N& n" M
- ;;5 o! C5 P$ k4 G: Z
- ;; Closed or Open mesh and polyline setting. i: u e& a- }6 a
- ;;9 a. ^ j/ k) R- q8 x9 Y
- (defun set_tile_closed ()* K9 X. l8 L+ C% o6 F4 M6 s
- (if (= pltype "3D mesh")& f% n# V5 i. W8 h0 w3 n5 \- {* L
- (progn/ u" L* w0 [4 o/ N. ?
- (if (= (logand bit70 32) 32)
. m7 c) s; F% y5 t - (set_tile "closedn" (setq closedn "1"))
% i* X. ~1 i# g - (set_tile "closedn" (setq closedn "0"))
2 h- {* q2 f+ U) i - )4 K6 E m7 |! B6 a2 B) b
- (if (= (logand bit70 1) 1)4 n' A0 J/ M" e8 e( v
- (set_tile "closedm" (setq closed "1"))
4 t) R; ]( Y2 G - (set_tile "closedm" (setq closed "0"))7 I, u% i+ U8 X5 I
- ): q1 F4 s/ r) j3 N
- (setq old-closedm closedm old-closedn closedn)
5 g7 }) N- z: e' H2 _# f6 n - )
6 v) d4 y8 }4 ?' ^; p - )" p, L( z% z- M1 M& O6 J- A) S
- (if (or (= pltype "2D polyline")
l& D! }( G# ~3 Y+ e- ^ - (= pltype "3D polyline"). \$ a% b A& j4 R4 j; D6 @3 \; W. m
- )
; b0 S, H4 \2 U - (progn
% m4 v- F$ ~9 x/ N9 r, R& C - (if (= (logand bit70 1) 1)% u0 s% N3 W+ J9 r
- (set_tile "closed" (setq closed "1"))) y2 }/ B6 D q. m6 ^6 r n
- (set_tile "closed" (setq closed "0"))
5 _8 f" a; u7 o - )
/ M( E" R# ?0 Z4 L. H3 ?, m - (setq old-closed closed)
4 Q! s$ G2 y0 j* z6 g+ ^ - )! O5 S0 V, K* n" ], E
- )
4 z6 e5 l, w" g - )
* M1 E- M1 N9 W) ?$ t+ i ? - ;; Set common action tiles& J: C3 B' E) N0 F/ h
- ;;- a+ Z2 a" o9 P# g+ U
- ;; Defines action to be taken when pressing various widgets. It is called
7 }& P" l- u) J/ }" } - ;; for every object dialogue. Not all widgets exist for each object dialogue,3 [2 w/ ?+ E. W
- ;; but defining an action for a non-existent widget does no harm.
+ K! K5 k$ G8 A+ u! d - (defun set_action_tiles (), z2 m6 Q( Y C$ S. o
- (action_tile "cancel" "(dismiss_dialog 0)")
9 J9 X8 S8 l( i% \1 m& t5 u% e - (action_tile "accept" "(dismiss_dialog 1)")
( A0 v( J! l' J1 v# l1 s+ \+ L) Z* c" l - (action_tile "help" "(help \"\" help_entry)")* c8 U# O" m1 y0 [& L" Y8 L# U
- (action_tile "b_color" "(getcolor)"): }3 D/ W9 u$ r8 r& S# J* \
- (action_tile "show_image" "(getcolor)")
/ T) j; M# S% k' ~$ x - (action_tile "b_name" "(setq elayer (getlayer))")- q/ ?* q+ k+ |& c. X7 F3 R3 y
- (action_tile "b_line" "(setq eltype (getltype))")
* M0 y7 H- L1 J( q* N - (action_tile "eb_thickness" "(getthickness $value)")
. h H$ }. Z. G& E - (action_tile "eb_ltscale" "(getltscale $value)")' H! w+ S# i7 K3 {( Q
- 3 x# c/ ?' B3 O' {0 \- W, V( D2 v
- (action_tile "pick_1" "(dismiss_dialog 3)")* a7 ]" [0 l$ o+ b4 q# n
- (action_tile "pick_2" "(dismiss_dialog 4)")
) k- p# ]) `" M8 j# F2 H - (action_tile "pick_3" "(dismiss_dialog 5)")! ?. g1 F9 Q5 v# G# \, R/ |4 {
- (action_tile "pick_4" "(dismiss_dialog 6)")9 g: h' S! D( v3 T4 Z
- (action_tile "x1_pt" "(ver_x1 $value)")
' h, }+ y& Z& A - (action_tile "y1_pt" "(ver_y1 $value)")
. e0 u6 |* X( T" L% w! N - (action_tile "z1_pt" "(ver_z1 $value)")
7 j- h9 D; C" g t$ m, c - (action_tile "x2_pt" "(ver_x2 $value)")
! N( \ h& l$ {8 s( c- d6 R - (action_tile "y2_pt" "(ver_y2 $value)")
8 e+ c! }1 N6 f2 O/ [ - (action_tile "z2_pt" "(ver_z2 $value)")
# U8 s7 f; p0 t% v5 L$ } - (action_tile "x3_pt" "(ver_x3 $value)"). b+ X8 V- P) D/ W
- (action_tile "y3_pt" "(ver_y3 $value)")
' K1 X8 @1 R: e/ q# s# U" O! o - (action_tile "z3_pt" "(ver_z3 $value)")9 G, w, ]1 Q0 @& ^+ Y3 R% x
- (action_tile "x4_pt" "(ver_x4 $value)"). L7 Z6 v& w9 P) p/ s! W; V5 C
- (action_tile "y4_pt" "(ver_y4 $value)")
E9 h5 n4 f* u4 ~2 @ - (action_tile "z4_pt" "(ver_4 $value)"), O3 B1 ^4 L( J% e7 O' A
- v' \: m1 m9 ^& t3 Q% H! z- ;; Action tiles for Xline & Ray M, K2 e+ L. X2 ~
- (action_tile "xline_x1" "(ver_xline_x1 $value)")
& m) y% c% p$ g! u. n- Y1 | - (action_tile "xline_y1" "(ver_xline_y1 $value)")4 m4 w0 ^" J" M
- (action_tile "xline_z1" "(ver_xline_z1 $value)")6 M+ v4 T7 g) T, J& C
- (action_tile "xline_x2" "(ver_xline_x2 $value)")
1 i3 W E! X* U( c- w; q - (action_tile "xline_y2" "(ver_xline_y2 $value)")1 [5 k. z4 z) ^1 y
- (action_tile "xline_z2" "(ver_xline_z2 $value)")2 w# B3 e% M' e6 `
- ( m9 r3 R3 G6 h! o
- (action_tile "edge_1" "(setq edge1 $value)")
6 e! Y! h n6 Y - (action_tile "edge_2" "(setq edge2 $value)")
5 O5 ?) o* G2 M- J, W0 m0 l - (action_tile "edge_3" "(setq edge3 $value)")& l( S* U& h" ^. O* X2 k Z8 }' ?
- (action_tile "edge_4" "(setq edge4 $value)")
5 `+ J1 f7 I* |+ ?" F
5 C8 e' P! E1 L" q- (action_tile "radius" "(ver_rad $value)")' w+ Z' Z- ]( ~
- (action_tile "st_ang" "(ver_ang1 $value)")
: w7 S0 @0 ^4 f. E+ \) i% P - (action_tile "end_ang" "(ver_ang2 $value)")
7 C& b# u/ O+ } - (action_tile "end_eang" "(ver_eang $value)")
' `8 q# V0 [+ ?/ @# u! v! f! Q; w6 k - (action_tile "minrad" "(ver_minrad $value)")3 ~: ~' ]' H4 j/ D; h9 M
- (action_tile "majrad" "(ver_majrad $value)")
1 z# x$ C, O2 `% d* h4 W! A4 f - 8 w: j) ? X I8 R
- (action_tile "xscale" "(ver_xscl $value)")
( C/ T& ~7 |& s8 C5 O - (action_tile "yscale" "(ver_yscl $value)")! J `5 _; d! J0 w) G; m9 r) s
- (action_tile "zscale" "(ver_zscl $value)")* }) s6 {: c9 t, U$ @( J# g8 W( J
- (action_tile "rot" "(ver_rot $value)")0 y2 v* }( Q2 ]& x; h3 J
- (action_tile "columns" "(ver_col $value)") Z2 V9 v# `( x, Y% ~, @
- (action_tile "rows" "(ver_row $value)")$ l9 f0 {4 @: X! \, X
- (action_tile "col_sp" "(ver_colsp $value)")& A; o. G$ @0 n: @4 B* _) r6 Y
- (action_tile "row_sp" "(ver_rowsp $value)")- G. l% y. E* U" s, ]' U# s
3 F5 k2 a: T& i3 P% u% K6 G9 |- (action_tile "hght" "(ver_hght $value)")
2 i3 B9 `' ^- F% p! A - (action_tile "wid" "(ver_wid $value)")8 G9 J8 Y; c! e* J/ \1 B* _
- (action_tile "obl" "(ver_obl $value)")
1 {( f4 C; _4 x - (action_tile "style" "(style_act $value)")
( w) t4 o' D& Z8 d - 7 _' P: w/ g. u6 U$ ]3 w& w+ b
- (action_tile "t_string" "(ddgettext)")
6 ]$ _" Z. L/ _( \+ C5 H - (action_tile "tag" "(ver_tag)")6 y3 A8 _7 v, F& N ^
- (action_tile "prompt" "(ddgetprompt)")
% k: W. g& j% J* \* t - (action_tile "bkwd" "(setq bkwd (atoi $value))")
% |/ W# l2 X8 W) h# Y! L - (action_tile "upsd" "(setq upsd (atoi $value))")
/ h6 v* a# Y" i6 P% F2 \4 q: U( T - (action_tile "inv" "(setq inv (atoi $value))")
9 y' E) D M. ?$ S5 q - (action_tile "con" "(setq con (atoi $value))")
V7 g2 {% w' K. j - (action_tile "ver" "(setq vfy (atoi $value))")8 F1 `' ?2 @# L3 W. t
- (action_tile "pre" "(setq pre (atoi $value))")
* U' K; x* y! d+ @- Q - (action_tile "popup_just" "(jlist_act $value)"); ^9 }% v; S0 I7 p7 B
# b4 [$ Z. d9 @$ \7 ~% e2 |- (action_tile "closed" "(setq closed $value)")
$ Q+ J. D& r4 E& ] - (action_tile "ltgen" "(setq ltgen $value)")
) D: m# q4 r+ Y5 m - (action_tile "closedm" "(setq closedm $value)")
, @) i6 S! K8 W' B9 e$ g) ?: } - (action_tile "closedn" "(setq closedn $value)")
1 @8 `. w# Z' H2 Y: u3 | - (action_tile "next_v" "(next_vertex)")
0 m8 _3 N$ i; J8 `+ M% x3 h5 E0 G - (action_tile "xcliponoff" "(setq xcliponoff $value)")
3 G; a, B- d i2 A% [ - 6 E' i* t( }( Q
- (action_tile "next_cntlpt" "(next_cntl_pt)")
6 O. t! q9 F1 y$ g" E - (action_tile "next_datapt" "(next_data_pt)")
^8 w6 _( A% y5 @! Y
- }* P! a3 @1 Y' ~+ J6 F. I- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")5 t0 H* R0 f# _
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")) t" C# C' _9 ]2 H$ p5 W
- (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
, Q! l5 t0 A3 t( j ~: c" W6 V - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")2 e* u' S/ e! b3 p
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")( T6 V2 L) [' i3 z1 a
, ^7 G% B( n" g6 K* B, O0 _6 W- (action_tile "u" "(ver_u $value)")% Z3 \: U2 ?( s$ R" z
- (action_tile "v" "(ver_v $value)")
7 A9 _( @" J: g0 h6 M4 x - )0 o0 J' V/ _' m; P, M% R
$ H: O5 H- Z, g5 _8 [- (defun ddgettext()
+ U- v7 M7 { h& }* N - (setq text (get_tile "t_string")); D# @& z( U. H
- )
8 j: s$ g9 z+ F8 I; a5 O3 G - " A( o- z& G4 k3 S f2 h* z/ Y: T
- (defun ddgetprompt()
1 A1 ?; ~$ n% S, u$ {8 P: }7 ~. Y - (setq atprompt (get_tile "prompt"))# C2 Y7 I9 f7 I {/ T
- )
6 C* b3 ?) `' M) N* b
, W: }$ ]5 S; Q- C. Y" e: ~4 C& C- ;; As OW doesn't support disabling of individual radio buttons within
! ^% h7 Z+ m# a+ j - ;; clusters, a check must be performed as to the legitimacy of the% ]9 G& O0 m: ~- r* V7 M$ Q
- ;; button pushed and reset if necessary.
, J& j0 @& A: d. _ - (defun radio_gaga (pushed)
# O) E/ T- I: c/ O - (cond" U8 s6 }6 ]; K+ H* t2 h" v$ a% L
- ((and (= pltype "3D polyline")
% M! o; u8 o1 m Z8 I- O4 B4 w - (or (= pushed "fit")9 ^1 W* s$ p# y8 B% q
- (= pushed "bezier")# y m2 ~5 W# Y5 V! ]4 T
- )
3 P& c0 f; w! d9 O* i+ ~- y7 ^ [ - )& I# s6 b% l- U% N* [
- (set_tile "none" "1")9 T* Z$ d/ c' N- K* ^ p: H$ c7 B& z
- nil
5 @4 Z2 q4 E$ ^: O - )! H& p! b( ]; p* s/ [, V
- ((and (= pltype "3D mesh")
; ~; H$ g3 P) F$ P1 Y2 Y - (= "fit" pushed)4 D g0 [1 G0 p2 k
- )- J t# ] y% m- B( n* {; r
- (set_tile "none" "1")3 G! B ~5 r6 _$ F; J
- nil3 V" K7 Q/ [# D% n. `
- ). v5 ~- ~8 Z6 N F$ s
- ((= pltype "Polyface mesh"). c5 D7 d9 J$ S3 E7 t/ c
- (set_tile "none" "1")5 Y! X0 [+ z( `$ D4 _
- nil
! n. X5 L5 U" ]! x* p8 b - )
: }+ \# S9 s6 n3 T/ ~9 L" ? - ((and (= pltype "2D polyline")+ J5 z+ N' O* i& j p
- (= "bezier" pushed)$ W* r% w) X9 A" `& k
- )
* l3 I+ ?0 F$ i! b3 R( l - (set_tile "none" "1"), W# ?2 v J, }' h8 F
- nil- T( e2 Q; V- u+ D6 G, m
- ): B+ G, x; t1 ^+ R+ R
- (T)' c( } e) c) a5 {" g: _0 N
- )& t, P! O/ ^" T) i8 C
- )
1 Q/ j3 c* R; P - ;;
- M3 E9 y3 c p. A - (defun set_uv (type_n)
' _) i/ n' {8 I1 }3 P' f, s! x - (setq spltype type_n)
- n _& F) b3 k K: W - (if (= pltype "3D mesh"); W, _' [7 f% e" i
- (if (= spltype 0)
) K: Z: v: Q7 @ @, r* [6 K - (progn+ H0 ^" ]; @# x9 {+ L
- (set_tile "u" (itoa (setq u 0)))' _3 W4 Z6 K1 S% y" O! u6 T- |
- (set_tile "v" (itoa (setq v 0)))5 v8 d& c. j! L2 u; m) X
- )8 s7 S( c9 o( B% N1 @: x+ \. b9 m
- (progn
2 ^# b' h7 h9 E$ j* R/ u9 f9 B - (if (= u 0)& b. m5 c* P D# u0 I T
- (set_tile "u" (itoa (setq u (getvar "surfu"))))
. E1 c" |% R7 Q% v$ j1 V - )
* W% W) ~, |6 t2 L - (if (= v 0)* E4 l' p" ~ N8 z
- (set_tile "v" (itoa (setq v (getvar "surfv")))) C: f2 z3 J K/ |9 R& Q$ {
- )6 C- e; R" L& w: I* H" W
- )
4 G. T4 N+ S4 ]4 m( S$ |: b - )4 o& M! H/ u. O& s4 o) ?& n4 P% M
- )
9 J2 O6 [/ J2 s1 ]4 g - )
, I0 W/ R' }) i. t6 X& m+ A$ ^" b/ |5 \
! g$ {, v4 b. l- H+ P M- 8 u9 Q& N6 Z- n3 W0 ], b. W( K( J
- ;;
* X; H; O3 s/ J* q" a' s- T Q - ;; Verification functions; u7 p8 e2 n) J' ~
- ;;
5 m5 t5 z; d# c- k$ F$ | - ;; Verify distance function. This takes a new X, Y, or Z coordinate or4 V7 \' z' w4 H6 e: l3 P
- ;; distance value, the tile name, and the previous value as arguments.
1 q, Z$ e2 |! R3 X5 p0 {4 r1 D - ;; If the distance is valid, it returns the distance and resets the tile.0 T+ R& a( J6 s" M2 a' D; Z
- ;; Otherwise, it returns the previous value, sets the error tile and keeps
" I1 i0 _( [+ y1 P# l - ;; focus on the tile. Shifting focus to the tile with invalid value can' V, r: g; Q# H* ]2 d4 G' u6 M+ r
- ;; trigger a callback from another tile whose value is valid. In order
' G3 Q [0 Y" s0 I! Z" F } - ;; to keep the error message from being cleared by this secondary callback,; D$ B5 X* e0 X( c% m
- ;; the variable errchk is set and checked. The last-tile variable is set
6 s8 {1 w; ^/ V+ t8 k - ;; and checked to ensure the error message is properly cleared when the
( _) f+ ~- N" ~! h - ;; user corrects the value and hits return.
) Y, q4 ]9 B8 W* I2 o3 O - ;;+ G! X% {) U& M$ L0 W
- (defun verify_d (tile value old-value / coord valid errmsg)
5 y& W+ y+ Y) S! ?3 e& Q; N - (setq valid nil errmsg "Invalid input value.")3 x5 v, c- W! p' W8 V
- (if (setq coord (distof value))
% T4 j- D8 I% w3 c0 \9 r7 s - (progn) T; D, o3 K4 J" F, v6 n( X/ {
- (cond" |, J" f5 w$ M' I8 D2 r0 K
- ((or (= tile "radius")
% o" j8 y' V# l, O: j$ K2 ^ - (= tile "hght")
. y0 @* @6 W2 n! a% t - (= tile "wid")4 T" o1 T) t. G4 U/ R
- (= tile "majrad")
. X- z; \, \2 Y - (= tile "minrad")
# b1 z9 R$ N7 L* n7 h2 m& u+ n! Y4 T - (= tile "eb_ltscale")
2 X E+ ]$ a; g1 B* p/ w$ ? - )
, C5 R- I8 l9 H+ U; t$ T - (if (> coord 0)4 h D3 b9 H& i' C# L2 _# c
- (setq valid T)
; S* c" W2 U$ }) G- x, t - (setq errmsg "Value must be positive and nonzero.")% d$ { v+ F3 p/ y2 ^
- ); Z0 F7 w, u. I: y0 E
- )
1 r% I/ G) R& P6 p# H - ((or (= tile "xscale")
/ J' r( j# G& P- { - (= tile "yscale")2 N( ]/ y4 V7 @% R1 x- K
- (= tile "zscale")6 x- \4 a2 c( L3 B# S7 y( [0 h
- )
" C& s* ]$ q) _8 n - (if (/= coord 0)
" e' H7 f5 [3 `7 H - (setq valid T)
* }1 s" j4 X! N% a0 n; P- ] - (setq errmsg "Value must be nonzero.")5 z% o. u- A$ w( y- _. }
- )
L6 K; [# S0 y0 x5 ^ - )
7 }* h4 c f' k+ R1 c* M - (T (setq valid T))
' U& S1 M1 M9 f" n" z - )8 @* Q' j: A" K. k" B8 l/ h
- )
8 C5 J& g$ C9 G5 v# P1 k3 G - (setq valid nil)
& ^3 D+ z1 I2 U% w- K - )9 i( a# m: |) E6 P. j9 ?
- (if valid
9 @7 W: c! ?# s1 j ?7 ^ - (progn/ p" v0 \$ \/ c+ {8 Z' D+ b
- (if (or (= errchk 0) (= tile last-tile))# Y# N" V- z5 j) F( i
- (set_tile "error" "")" {1 B2 J3 u' N: @2 C
- )
* F" W! O2 {$ Z - (set_tile tile (ai_rtos coord))/ i2 R" S! X. E$ S
- (setq errchk 0)
; ~7 ~8 z7 E+ {; r0 j - (setq last-tile tile). a4 m% ]; n1 h5 U
- coord1 {. N6 `' R/ C
- )
8 q- b. _$ r$ [6 |( v! e - (progn
, T5 }9 V( s7 U, q - (mode_tile tile 2) ; Move focus to offending field
# M7 k! s, R- j5 @' h& S - (mode_tile tile 3) ; Select offending text
- F& v9 n' I' ^ - (set_tile "error" errmsg)
" s' W+ s7 O8 _1 { - (setq errchk 1)7 q8 F& e" j/ u3 Q4 Y: L/ `
- (setq last-tile tile)+ W* h$ A2 E) W3 l0 M" X& r
- old-value
, n( E2 e% c1 b+ H0 G1 M$ ~ - ); {9 \7 @( `. |6 J+ D* d' ?
- )
& z; N* L& Q/ e5 y5 ~* X - )" A6 y I; {6 p( j, ]
- ;; Function for Xline coord edit box checking.2 S0 n. p8 Y* } B$ c4 _
- (defun verify_xline (tile value old-value / coord valid errmsg)
" d5 O$ S6 P$ d! |7 e6 Y - (setq valid nil errmsg "Invalid input value."). g7 _; R! B, ?/ c
- (if (setq coord (distof value))
7 }( k& C' Z8 f0 p% n: \ - (setq valid T)
/ S, Z$ e8 v$ Y3 [2 O/ M - (setq valid nil)2 |7 P7 ^8 Q5 l: {
- )
( a' w. y. l- S: L; k: ^ - (if (and coord
( G) O" d, z$ B; f - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) ): Z1 o) z, f& [ Q- _5 ]
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
$ Q3 J! ^! c" f - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
- T# P) Z$ O% {, Z: G - )/ b, u( p r" ?1 t8 I( O$ f
- )" l7 u1 l$ X/ r
- (progn6 E+ H4 v4 }- b( X: \6 `# s! Q
- (setq errmsg
7 \8 o" S( r3 ~! O# B - "The Root point and the Second point cannot be equal.")
% b& t3 e( P* I - (setq valid nil)) |9 A3 P1 X9 T2 c
- )
7 W/ i, I4 v& d- i. W - )
$ B& T9 b, T/ Z: a - (if valid- C$ f1 n" Q* ]) y" _4 @
- (progn, l/ u9 }1 T3 c2 ?4 T0 O. O$ w
- (if (or (= errchk 0) (= tile last-tile))3 b# V. W6 |8 ]9 l+ f8 Q% F% g1 B: ~
- (set_tile "error" "")
7 d0 F: D1 v8 r$ r. e: r! E - )
+ m! S( j! f T( { z - (set_tile tile (ai_rtos coord))
/ v5 Q2 [% e/ k5 }0 A* O - (setq errchk 0)
' s# ~# r6 b8 B$ q' p - (setq last-tile tile)7 c! U3 ^) u; o2 z. |8 l* c
- coord
# A8 J# W4 g' o" i' H - )4 u. K6 w4 t6 D5 v, p; f
- (progn9 l6 k2 I! t; I V& Z" i
- (mode_tile tile 2) ; Move focus to offending field( ^) i* t) Z1 C: E( @. a+ q6 y' P
- (mode_tile tile 3) ; Select offending text2 D7 @( E& t2 f3 X
- (set_tile "error" errmsg)" j/ X5 k5 k6 A8 B
- (setq errchk 1)
8 f; d# s1 N5 R - (setq last-tile tile)6 q, o4 r( I( i1 j! I& a% A/ q, W1 Q, M
- old-value
: X" J! @( G2 O0 X* }+ a - )7 R0 W" T0 ^8 @" G. m8 W
- )5 ]& n9 }( M5 D% B' Q7 P! h
- )& j1 a0 F! T9 F5 U7 Y. k, W! O! ~* a
- ; T; @/ A. Y" C
- ;;
9 w% v0 m7 W; o1 E$ H - ;; Verify angle function. This takes an angle and a tile name as arguments.
$ \& |9 Q& [! v9 }* W - ;; If the angle is valid, it returns the angle and resets the tile.
- `4 h0 z: Z; ?7 Z: q - ;; Otherwise, it sets the error tile and keeps focus on the tile.
7 c# T/ k0 e& U5 Z. t5 T5 p w - ;;9 y/ N* ]: ~9 o. w" ~( ^. {
- (defun verify_a (tile value old-value / ang valid errmsg oblqmax)0 `! Q& X1 U8 t/ `
- (setq valid nil
; W2 c2 p" ~4 \' G: c8 z - errmsg "Illegal input value."# F% _' G. x9 z0 q1 r" c
- )
, n# w% W: ^" l* {' | S, ` - (if (setq ang (angtof value))* g& k& b6 H: k5 P
- (cond* g7 s. F1 ]7 X& u) ?* E( g+ k
- ((= tile "obl") ; Restrict obliquing angle! X5 u9 Q3 x, b8 @ F& I# c
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001)) r, q8 r. L- ?
- (if (or (<= ang oblqmax)
- S- R9 h7 Z; H* j3 R+ U$ t# B9 s - (>= ang (- (* 2.0 PI) oblqmax))
% C, e3 E4 A- z% a; L9 E/ z% G - )$ U7 t( ]! E. |5 r, E! g
- (setq valid T)
# m% Z, b( I8 U9 h2 Q - (setq errmsg
' j3 ?* e: f( {9 k) I - "Value must be between -85 and +85 degrees.")
7 G. P2 U5 d5 C% r, ?6 K - )
9 u8 _, T3 N2 I- b - )
2 A1 ~ s- e- T/ g' [' w, r - (T (setq valid T)) ; Other angles not restricted
3 X5 x8 Y! V5 N) _, W) B - )+ V( l! b5 [+ k% Y
- (setq valid nil) ; Invalid angle input; E7 z3 k; m6 x
- )$ q& T' I% S" O8 o) M
- (if valid+ ^( ?+ A9 L1 q5 ^* U& j
- (progn
. D4 c/ \3 q* B+ U4 j - (if (or (= errchk 0) (= tile last-tile))
6 z- N# B& l2 O - (set_tile "error" "")6 p3 ~8 {" |+ ]2 x6 y: P
- )7 J' b7 h. h; f" A2 g% j
- (set_tile tile (ai_angtos ang))! i- I$ G& l# l; e1 r2 p. Q* n
- (setq errchk 0)
5 x. a) e" o3 ^- \ - (setq last-tile tile)
! n8 y5 u7 ?+ z - ang
# u! q, U& l9 Y - )- W% v5 Z$ R" ?+ \" i
- (progn
$ C5 Y' B# L5 q7 D! m# I - (mode_tile tile 2) ; Move focus to offending field( N- u9 M* ?0 W# g+ s- Q \% w# v
- (mode_tile tile 3) ; Select offending text0 K' G6 Z# U9 T ^# b8 y
- (setq last-tile tile)/ Q4 n# N) p$ Y
- (setq errchk 1)
1 s9 j/ Z0 ^( ~: Q) a& h, Z) H - (set_tile "error" errmsg)6 w w2 A: R2 v) J& F2 i
- old-value `( S$ O6 m. s r. R2 B0 ?4 E
- )$ c5 i4 k" L8 k5 v& t: u
- )
E1 Y; [ ^# e - )
5 [- r! H, G3 t, }! O; [ - ;;
' C) R, u9 k) U0 r - ;; Verify angle function. This takes an angle and a tile name as arguments.
0 i" X+ i0 _, h& F2 J9 W - ;; If the angle is valid, it returns the angle and resets the tile.
6 b) |2 d; o8 `- u( U5 b - ;; Otherwise, it sets the error tile and keeps focus on the tile.
! N6 l4 h) [0 ?3 p6 o& N" p' L - ;; This function is specifically for the end angle of the ellipse object. If! y% D" K U) \5 ^2 c4 G
- ;; the end angle resolves to zero then we want to display it as 360.' o' J K" k9 f8 W
- ;;# X4 x' n7 \: I6 P: L6 l
- (defun verify_ae (tile value old-value / ang tempend)
Q* }6 o0 w: ^9 S' @ - (if (setq ang (angtof value))1 S4 z. U' F2 W4 H; F% U
- (progn% I* v$ ?, q4 ~5 D/ D( l
- (if (or (= errchk 0) (= tile last-tile))! N, ^( [9 u% R9 F/ }6 N, L
- (set_tile "error" "")
& Z: K5 T; H5 Q - )
# z3 w( W( X5 R- Z n0 q - (setq tempend (ai_angtos ang)). u. E* ]. S. B. C6 u5 _
- (if (= tempend "0")6 f* H& }) s4 U
- (set_tile tile "360")0 h! z; F9 j' k
- (set_tile tile tempend)
& R, O }* \7 }7 y - )
- p3 n7 Z/ L9 D! ]2 F- l - (setq errchk 0)) q* D0 f0 G7 S# @& R& y
- (setq last-tile tile)
3 }. x* M0 ~9 a$ d$ l - ang
7 z! N/ T5 H$ _6 Z2 H - )' V+ X: m' W% s1 Y2 T% |1 O
- (progn8 L; A1 R" Y. o$ e4 a5 F! ~
- (mode_tile tile 2) ; Move focus to offending field
$ M- y$ k* ~" R1 X - (mode_tile tile 3) ; Select offending text% c3 H# y7 j) Q- J! W
- (setq last-tile tile)% @. x5 o2 | i+ D# d _
- (setq errchk 1)
( n5 Z, f+ i1 o9 B - (set_tile "error" "Illegal input value.")
" D/ P! F% E" v9 Z- e" j - old-value, {6 Z+ i" _7 ~5 B
- )
0 y) I3 m+ O [4 v - )8 N; l) H, G" Q }/ M$ T
- )
# z" N, L4 H2 Y* Z. F; Z: Q5 ? - ;;
$ |" |9 X, f9 u - ;; Verify integer function. This takes an integer and a tile name as
1 E; V" t. M" M - ;; arguments. If the integer is valid, it returns the integer and resets the3 R E3 C; R! ~& z4 q* P A9 k
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
( z5 N. j. f" C1 M - ;;% D1 V6 C ^4 o+ [* y- r t9 \1 {
- (defun verify_i (tile value old-value / int valid errmsg)
# j) Y) W# w; {+ ` A+ m5 W: T0 _ - (setq valid nil)
# H$ e5 N9 F/ V1 a1 { - (setq errmsg "Value must be an integer.")
# S' Y5 a& k. x5 o - (setq int (atoi value))" `* e, O7 n% v4 B2 u6 m( d2 T0 T
- (if (setq intchk (distof value))9 X x* F* |1 M+ i; F6 d. Q
- (cond
' M3 w# L& n/ c - ((or (= tile "columns") (= tile "rows"))( o7 r C0 r/ k# r
- (if (and (= int intchk)$ Z' ]/ _' y \! F8 O
- (>= int 0)
- Q3 o; R) [. B3 z: r: H& `- @0 N - (<= int 32767), A" y! Z8 K3 r! H' L/ {' T
- )
$ |: u1 |6 }6 W* i* H - (setq valid T)+ k; ~0 R( C, `" R
- (setq errmsg "Value must be an integer between 0 and 32767.")
; H" Y6 }9 n/ o( w7 h. d3 b - )
Y) z* A, g0 w3 G0 W! V- N+ {3 C - )
9 j l0 K$ X8 \0 n - ((and (or (= tile "u") (= tile "v")))
. J5 {4 l2 L! x ?* ~ - (if (and (= int intchk)% }8 p" z; d2 P
- (>= int 0)
& j1 O l/ w! n; i2 Q3 I& e - (< int 201)
) Q; r. `7 O8 E* e, I$ ~ - )
6 U1 F) C0 C5 F0 m( d& q% T2 y - (setq valid T)7 f" G% f( W( C, q/ M+ t
- (setq errmsg "Value must be an integer between 0 and 200.")
# J1 O3 l0 B/ s" u) M2 T% V( _( C9 q- w( O - )
% B% b. j( Z! k* L/ Q - ); f3 x9 ]% g5 c( a# m) J" }
- )
! G0 h7 e* ~ t3 p5 c - )5 r7 k1 p F0 g3 ~
- (if valid7 g- M! L: B$ S
- (progn
& e: A. E1 E+ e% `0 P3 m - (if (or (= errchk 0) (= tile last-tile))
~# J5 q1 n. ~) b/ \( q( N; ] - (set_tile "error" "")
( K/ z3 F- l& _4 m2 j7 i - )
% `4 h/ ~3 {' ~( u3 l7 W# v2 s - (set_tile tile (itoa int))$ o& s8 U7 S# \1 A
- (setq errchk 0)
, Q& J9 N) _0 o, o: j5 a1 L - (setq last-tile tile)
% h% o2 j$ ~ }' k4 u - int+ Y2 g3 o1 T7 _. t' ~; G
- )
$ _1 F9 Z9 v; Y- V( [& n - (progn" p, L g2 O9 K1 i1 z; Y
- (mode_tile tile 2) ; Move focus to offending field" w! q8 _( t) [6 \/ n
- (mode_tile tile 3) ; Select offending text
7 Y) C8 o' q* ?0 F - (set_tile "error" errmsg)
- c) | S; E' R5 }) V% T$ Q# E - (setq errchk 1)9 K9 l9 b3 L; H: t8 G" w6 }
- (setq last-tile tile)
5 Y) T' c' M& S8 v: |5 A7 J - old-value
5 H6 S* v* K0 W' r4 M" y7 I - )
' K; C* I# p$ F5 g9 v- | - )9 V. a m W- D! N5 @
- )
7 V2 ?9 V3 X. F+ G+ N - ;;
5 a9 p! w% q4 f1 ] - ;; Functions that verify tile values for integers) U' ], {( |: J, |% ]. |
- ;;
, x; Q( b0 [8 q* Z8 \! B - (defun ver_col (value)/ z3 |: \" O) }' z! v( H
- (setq columns (verify_i "columns" value columns))
! ^5 i, `& X% Z% L1 p - )
# o( [4 u" u0 U5 m# P8 Y. l; _ - (defun ver_row (value) G" Q) Q: w7 y5 C }6 {
- (setq rows (verify_i "rows" value rows))
* m& z& v& t4 U' ~! G) W - )& s, a* V6 E' N. d2 V, e
- (defun ver_u (value)9 m8 J; S* ^3 u& Q/ S) q% H
- (setq u (verify_i "u" value u))
! O7 ^% D+ R, j( y - )
+ R8 M; X, i" l- k* A7 y! x F - (defun ver_v (value)( w" c( |4 m9 m8 H* @' _
- (setq v (verify_i "v" value v))
$ }- R) {. R) ]% W - )
; ~( {. E) h0 o6 `2 ~: h - ;;, P( W5 B" T6 J+ ~: \ m
- ;; Functions that verify tile values for reals! Q z7 \1 k; A
- ;;) X& k$ p0 t1 |$ _1 ?% g# Y$ t, S
- (defun ver_x1 (value)3 [: r; k5 k* R
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))( O% A+ ]; d" E. D) o
- )
; w; V! h% j) J5 G6 \5 H5 T - (defun ver_y1 (value)
`: n9 [4 U, Z3 i& Z; W$ y9 R - (if (setq y1 (verify_d "y1_pt" value y1)) (calc)). l$ I2 H4 E& @* b
- )
4 N# `' I1 K, d; U% ^; G - (defun ver_z1 (value)
7 ^ ?7 S$ N# Y - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
5 U9 \/ D: L$ A - )
; U: t2 f$ E3 j; c4 A2 h - (defun ver_x2 (value)
9 x1 e( R2 [6 i8 P# e - (if (setq x2 (verify_d "x2_pt" value x2)) (calc)). _ b+ g) `) h2 v+ ]$ Y; L9 l
- )0 r% Y9 b$ {- k: {) W( q% t. H x' \( F+ ?. \
- (defun ver_y2 (value)
- K* W3 ? H( Y8 x - (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
& s% B" o! w1 ^3 d2 Z/ @ - )
- K# e/ Q8 v$ N1 z+ q4 {+ { - (defun ver_z2 (value)
0 x+ w/ h( M# z' I$ t - (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
% _. i! @5 v' ~+ O! ^. g3 B. @6 ~ - )0 x; e6 J8 G4 C5 m, q8 C
- (defun ver_x3 (value)
, S1 Z) v. D( C6 w i [0 x, G - (setq x3 (verify_d "x3_pt" value x3))' U- o! `1 l" z) p$ f
- )0 Y8 ^9 G* \5 W2 J$ M
- (defun ver_y3 (value)3 s" h w2 s3 F1 M1 f% R
- (setq y3 (verify_d "y3_pt" value y3))
- Y5 _5 }3 k% w$ |- ~+ [% c. ~- { - )
5 t+ s: U3 \. Z6 e0 d - (defun ver_z3 (value)
2 d1 i. S i. L) e) B# w+ {! R - (setq z3 (verify_d "z3_pt" value z3))6 H2 v) y* x7 E
- )
4 }" M; @, A$ {) J# w - (defun ver_x4 (value)/ ~+ D. w1 B x9 o2 e
- (setq x4 (verify_d "x4_pt" value x4)): |7 b- T I F, e* Q, C b
- )
; a) t' K6 s- P - (defun ver_y4 (value)) C h, x9 s( V/ Z
- (setq y4 (verify_d "y4_pt" value y4))8 Q) O7 H' r v" A8 B! T
- )
# n+ U1 X6 R/ }8 a6 C D - (defun ver_4 (value)6 R- ^' I A) {; b
- (setq z4 (verify_d "z4_pt" value z4)), K# ~; |' j7 W. |3 b4 Q- `
- )
m+ f2 Z0 G# Y1 b, ^1 v1 C7 ^, R - (defun ver_xscl (value)0 K& ~/ N7 v4 y* w L4 g4 r
- (setq xscale (verify_d "xscale" value xscale)). Q+ m6 F3 o) b# p/ _8 r; }3 K
- )
- n, y# d) q* G5 n$ G! A - (defun ver_yscl (value)
; z3 T& p ]7 c1 {( s1 C" s - (setq yscale (verify_d "yscale" value yscale))
" i! Z! ]9 U0 [ W# \% K7 ^ - )% {# i% j1 Q1 ?9 r, q
- (defun ver_zscl (value)
F# F! A! G; b& Z1 Z; i; @ - (setq zscale (verify_d "zscale" value zscale))
$ n) v! v9 G" u. [; h: T! W - )
0 n3 I& R6 L1 z" o& p% S' c - (defun ver_colsp (value)
8 Q( X: K. y/ \; i3 [- \, V - (setq col-sp (verify_d "col_sp" value col-sp)), R( h0 l$ \2 h2 A# I# }0 y
- )! z) m7 B# {9 b
- (defun ver_rowsp (value)
, E+ c; c, K) C% ~3 s, A, X - (setq row-sp (verify_d "row_sp" value row-sp))
% L$ Z2 Q1 D7 U/ d: m - )
) n% R. Z7 w$ f! S% B - (defun xclip ()+ ~0 X! X2 t" A0 ]% _/ m% I
- (setq xclipmode t)
! M% T0 u# q6 N1 t - (if (= xcliponoff "1")* ]8 Q' @1 h. B, v* n- U& t/ M9 R
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")) q7 e1 d6 W6 g9 B' V
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")" }* C5 R, b7 Y1 m( t, n3 r
- )
O0 M3 G7 Z# M9 m! ]8 w8 v - )
% m# C! f) ]1 U1 J) v - (defun ver_rad (value)
7 F8 u' F5 L7 v1 i/ u A6 G# N - (if (setq radius (verify_d "radius" value radius))
2 G1 `$ H# r9 V0 P n: O3 x8 H - (calc): ]( F. T3 L3 G8 I- A8 i
- )
/ |& h+ C8 s! z( T - )
" E, @1 W8 R7 W% @& B) {$ j9 i0 I - (defun ver_majrad (value)7 \/ M5 Q: D3 U, t4 G( X
- (if (setq majrad (verify_d "majrad" value majrad))
9 ]* f2 j& D: R$ d# k - (ell_calc_newval "majrad")
% D4 G9 ]0 t) Y6 a& ]8 ? - )2 q3 X1 Z { R, }8 F
- )
* ~7 H# c3 e* i% d+ m - (defun ver_minrad (value)) J. {1 a5 ]! J7 T3 K
- (if (setq minrad (verify_d "minrad" value minrad))
) n1 B% l- u5 ^/ m1 Y H- v - (ell_calc_newval "minrad")
! n2 v' y3 q- S - )
" s3 Y# H; s* }' Y3 W9 J - )
$ U- t, j0 Z9 A4 `7 n: T - (defun ver_hght (value); e( ~8 J, U3 ^/ R
- (setq hght (verify_d "hght" value hght))$ A$ a1 p# n, b: d) C
- ), c8 l4 n* W" X3 W8 j, _+ E2 B
- (defun ver_wid (value)5 u* u; o( t ]0 C* a
- (setq wid (verify_d "wid" value wid))
, j) K* u1 I- j) H - )
5 y9 ?: `& F4 N: l8 h - (defun ver_xline_x1 (value / temp)) T: y2 ~7 T0 F( U$ F
- (setq temp xline_x1)
; p% e( P/ e, \9 x; t; g+ i5 e) ` - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
4 a% l6 G: D0 U/ S/ f T - (if (/= temp xline_x1)
: f8 `9 D" h# C - (progn (modify_xline 0) (set_tile_dirv) )4 _- _: j y- }/ g" q, [
- )( S M# |+ K. \
- )
) @/ T! |% [2 k+ ~% ]; S9 Y9 G - (defun ver_xline_y1 (value / temp)% X/ z5 ~) z' {# A, y: _7 ^) ]6 \
- (setq temp xline_y1)( `# o- | ]7 y& j3 \* z$ Z, U' Y
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
0 H7 Y2 C; r7 r! {! Z8 d - (if (/= temp xline_y1)
0 ^$ z' o9 o5 H3 j - (progn (modify_xline 0) (set_tile_dirv) )" M) i- ?- o/ k. H
- )
" x( u: K( R2 M6 W' {* @ B - )( d6 |4 }; i! _8 S3 z8 W
- (defun ver_xline_z1 (value / temp)
" [$ ^3 h+ W: K2 _. i - (setq temp xline_z1)* C9 A- K2 F* G; \
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))/ _+ w8 v# O: z3 j
- (if (/= temp xline_z1): I! a1 G) U: W% h X4 y
- (progn (modify_xline 0) (set_tile_dirv) )
1 t; o/ ^# p2 X0 Q - )
9 F5 Z2 J( H: q4 R& W( U1 r - )$ h1 @, z' p9 C( D
- (defun ver_xline_x2 (value / temp)
$ b v0 C: ?# F/ k- J: ] - (setq temp xline_x2)! X2 }7 {+ O& ^% C ^" Y6 M- W
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
, l9 b% |4 T, Y# K! G# \8 w; T - (if (/= temp xline_x2)
9 p# F6 g" c& e% P7 H - (progn (modify_xline 0) (set_tile_dirv))# I ]- l8 I# f: W) e, f
- )! H$ J( c1 t; U Z; W1 H
- )/ X! Y" {! b% `; q0 ^" I
- (defun ver_xline_y2 (value / temp)
5 _ g T& P! ~( Q8 f& }8 b( a - (setq temp xline_y2)
0 Y: K3 @. x' k8 ]0 K - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))- m0 T( Y' V A6 ^
- (if (/= temp xline_y2): E$ d: W' c2 c5 }8 s
- (progn (modify_xline 0) (set_tile_dirv) )
: A" [! F# k4 e" j" | - )
! Y1 D0 X4 s& h6 p4 Z6 ] - )
, D8 C# z/ P) N! ^! l+ f - (defun ver_xline_z2 (value / temp)
; `* i# H1 [) S - (setq temp xline_z2)
+ Z) H- M5 C/ G& [5 g$ k( h - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))" V: J; |9 _& \* R9 _
- (if (/= temp xline_z2)' d& F3 x& D$ q6 ? O
- (progn (modify_xline 0) (set_tile_dirv) )+ S% d1 M% {, t/ G( y
- )
. b% I2 m$ K& D- I8 N/ }1 b- L - ): U1 k$ I9 [, @) j0 Y8 [
- ;;) A$ e! J) F6 R* B0 U2 _
- ;; Functions that verify tile values for angles9 y2 T& K2 g, E* z9 W3 X8 u* f ^8 t
- ;;
) C( ^$ g& m2 ~' n& D2 V - (defun ver_ang1 (value)" G: u9 y3 T1 @1 K) C. A: J2 a
- (if (setq st_ang (verify_a "st_ang" value st_ang))
4 ]4 N. E( U; z: |: Y - (calc) a$ |1 Y6 ]1 H1 s% u6 K
- )
) l# D8 }6 i5 S - ); M, f& o; i1 o" y8 i l
- (defun ver_ang2 (value)) C2 Z3 y. h" M( ^' `' h6 Q
- (if (setq end_ang (verify_a "end_ang" value end_ang))
2 u5 q: a( ^5 i - (calc)# z, z* u3 ?1 b7 ^+ |
- )* i" A" z& _, k, T) N. W; O2 P2 m
- )
' y* u+ v2 w: x0 Y - ;;
9 T! \& V0 m. A$ F' H/ r" b - ;; Verify tile value for ellipse end angle. Handled slightly+ \4 C+ q+ o! {5 |7 e! x e
- ;; differently than the other angles.# C2 M( `. F) E" a+ i* r
- ;;
5 g' F" m2 P. M- z i( B - (defun ver_eang (value)
& S# j5 i6 w8 }) \) J6 @3 n8 t - (setq end_eang (verify_ae "end_eang" value end_eang))
) P) p3 L' {6 j0 |. o9 F - )8 M5 m! l- D7 E
- (defun ver_rot (value)0 ?; v, a: h2 J
- (setq rot (verify_a "rot" value rot))9 h- Q9 O( o! Y6 X3 |# v' }
- )
, `& A, ]) y' a" }6 [ - (defun ver_obl (value)
X) T: V2 X) O2 E: q - (setq obl (verify_a "obl" value obl))
7 K7 t7 _3 I7 m+ {7 o$ m* _ - )
7 M. V, o# c/ h% c' k - ;;
3 f! [: d) Z. K - ;; Function that verifies attribute tag field for null string,8 C9 \' y$ x3 z. x" {: Y+ P
- ;; or a string that contains one or more spaces. Tile value' |( Z$ W# r9 k- W+ f8 ~
- ;; is also converted to upper-case as well.
/ b! A4 K L: m4 y! N- \ - ;;5 \+ ?; H) _( `' w& u
- ;;
# r; f4 k6 n6 b3 g( m - (defun ver_tag ( / tval)5 {- l4 \* l1 Z: A
- (setq tagval (get_tile "tag"))0 L) Z N. p+ @, N; r: g
- (set_tile "error" "")' p; Q$ q- d1 W/ E' T
- (cond; a* Z, N/ ? i
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
! O! r0 e7 |7 O& t - (wcmatch tval "* *"))
1 `# f/ M y* Z - (set_tile "error" "Invalid attribute tag.")
, \. S W2 t& u2 I- @ - (mode_tile "tag" 2)
* o4 U( m" q6 R: n1 H - (mode_tile "tag" 3))
( Q3 F( o. ?0 z& f, z - (t (set_tile "error" "")
* t2 A- Z' k/ L* c; |7 ^ - (set_tile "tag" tval)
/ d6 q% y3 f& |2 |( m; p5 |, ?9 k - (setq attag tval))): `. k+ X4 D8 I0 O/ H! x3 F/ r
- )
) Q7 X' I! v/ Q0 v - ;;
r5 S: h) T8 U0 B - ;; Calculation functions# Z6 [+ U/ P+ N3 Y" z
- ;;& M5 R, l/ E9 g5 L# P6 C
- (defun calc ()% n2 V: V( ]$ w1 A! {; p1 j
- (if (= etype "LINE") (line_calc))% a0 Y6 {- X3 D
- (if (= etype "ARC") (arc_calc))0 A7 }3 g% \" @, b
- (if (= etype "CIRCLE") (cir_calc))' ?/ {& j1 X# q
- )
) q9 s% H& F4 x, X5 v - ;;
6 L3 Y- [. f/ _9 O% _& Z - ;; Calculation functions for lines, arcs, and circles' f4 e9 c4 i, R
- ;;- n7 N/ d6 Z) r" w
- (defun line_calc ()5 P1 R! n) F1 V& Q, q0 C4 Y5 i+ P
- (setq stpt (list x1 y1 z1))+ x6 z9 `; @8 H, {: J& }
- (setq endpt (list x2 y2 z2))
+ F2 Y! e# E+ N3 T - (set_tile "delta_x" (rtos (- x2 x1)))
( F5 Y. o' R( [( c - (set_tile "delta_y" (rtos (- y2 y1)))" b) P+ A7 f$ J8 T4 a4 u
- (set_tile "delta_z" (rtos (- z2 z1)))
+ t0 ]: O/ p6 U6 x: x b, E# e - (set_tile "l_length" (rtos (distance stpt endpt)))
. S1 c/ Q* K& ?' C0 y8 N - (set_tile "l_angle" (angtos (angle stpt endpt)))/ p& N; J) b) e9 x* q5 X
- )
- f0 e% j: L, F5 N) Q, m/ B4 M - % [6 p. h$ N2 n1 h2 O) |$ F
- (defun cir_calc ( / area units)
9 p+ c4 F" w. P3 S" R9 J - (setq radtest radius)
! u3 T/ ^; g8 t* V$ x - (set_tile "Dia" (rtos (* 2 radius)))
- M0 X& A9 o. `3 U6 O - (set_tile "Circum" (rtos (* 2 pi radius))) W3 V' `; Z5 _8 F+ {, |1 M
- (setq area (* pi (* radius radius)))0 p" F* G9 C' c1 r
- (setq units (getvar "LUNITS")): R3 F7 q9 Z7 A9 { a2 ?2 F
- (if (or (= units 3) (= units 4))
4 n$ l j& P/ Y- C/ H% ^9 ? - (progn( O' Z' f/ c( M3 ?7 O5 G
- (setq area (/ area 144.0))& ]3 k, `& D/ g/ ]# u/ |/ }
- (set_tile "Area" (strcat (rtos area 2) " square ft"))4 n+ R1 N. v2 Q$ D8 o+ `. x
- )/ q5 z" g3 K3 Y- f7 H. i
- (set_tile "Area" (rtos area))
. u* c& H% S3 q2 n7 \5 _/ P - )9 H3 }2 l! h: J$ {
- )5 N; J9 u! m' u9 x
$ C+ u6 Z q4 ?1 P" l Y" r- (defun arc_calc ()
4 }2 s3 B% V9 Z4 _ - (setq totang (- end_ang st_ang))/ x% E& _6 ^) X, b% ]7 |# _
- (while (< totang 0)
7 G$ x( G+ j X - (setq totang (+ totang (* 2 pi))); R* b' n% B6 q$ h* N; R
- ): `# n9 ~6 a: \. n7 D, V
- (while (> totang (* 2 pi))
+ e8 E0 K3 l; t - (setq totang (- totang (* 2 pi)))
- U' s" m$ m3 d' Q - )* k* m2 W- H3 G4 p. w
- (set_tile "tot_angle" (angtos totang))
# M9 N/ c3 `9 s( K8 j- L: b - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))! d1 s4 U7 \' S/ k. S
- (set_tile "arclen" (rtos arclen))! J* F1 a& p) Y+ N" p# p/ {6 `
- )
! _7 P5 X2 W$ E4 V - ;;
" c, D! a6 L" M. I; f; P2 |: o - ;; Calculate the major radius, minor radius, major axis direction.
. M2 X& x1 A0 s& N" x- x - ;; Get radius ratio. Convert Start, end parameters to start and end
) D, L" s; e9 f2 G - ;; angles. Save Major Radius value in "old_majrad" in case the user4 C! b9 J# _( A; a9 m
- ;; chooses to input a new Major Radius value later. It's needed to) |0 T6 n+ V. [! {5 u0 C
- ;; calculate a new Major Axis Vector value.
S- V- e7 Q! l' F# L% o6 n - ;;
" L& a9 C2 S% @* |- b2 {5 h9 h - (defun ell_calc ()% _9 @; N1 v0 R2 m0 l
- ;; Get major radius from the major axis vector.
# `8 \- g9 A- S1 A - (setq majaxis (cdr (assoc 11 elist)))
1 p5 `; |! r# P3 w - (setq xx (car majaxis))4 p) _' k0 b/ l/ O
- (setq yy (cadr majaxis))0 q9 v( G$ n e5 i& j
- (setq zz (caddr majaxis))8 N8 X1 C* H6 i0 {# _
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
K/ v+ i# y) Z" b) T - (set_tile "majrad" (ai_rtos majrad))
2 J$ H n: a& d2 }& R. M - (setq old_majrad majrad)) \4 y* ^- q. C/ h% A2 \# W
- ;; Get radius ratio
A* d# ]. {/ D5 c2 l1 m0 n7 ~4 P9 b# L - (setq rrat (cdr (assoc 40 elist)))* M# C4 P7 s: L) B
- (set_tile "rratio" (rtos rrat))$ B! T! v# C: v, ]* ^
- ;; Calculate minor radius' M4 ^4 z' w; A% L3 R1 z& V; {
- (setq minrad (* majrad rrat))
1 t4 L7 A+ d; O. N- H4 E% T% X- U - (set_tile "minrad" (ai_rtos minrad))7 A3 i( C0 y) D1 L* z: J
- ;; display major axis vector( A9 k5 J* g& J) J+ Z- e
- (set_tile "Majraddirx" (rtos xx))4 p. t7 C6 [% o# U, m- [* |
- (set_tile "Majraddiry" (rtos yy))
# N( D. Q: @1 p - (set_tile "Majraddirz" (rtos zz))
. n" k5 W- g/ [
/ p' B* g1 n S2 B+ _) V- ;; Convert start parm to start angle; q- T& b1 G$ L
- (setq stparm (cdr (assoc 41 elist)))
7 O6 S6 Q2 v9 `) v. x( x. {$ D - (setq vecx (cos stparm))( u% K! ]7 G2 W9 G
- (setq vecy (sin stparm))
) a! l6 G- b* d# e7 F; F' @+ k - (setq st_ang (atan (* rrat vecy) vecx))2 A3 V4 S* l4 [4 |8 s# t
- (setq tempst_ang (ai_angtos st_ang))' r+ Z# k4 S4 E
- (set_tile "st_ang" tempst_ang)1 w" y; Y# z& O# K8 ^
- ;; Convert end parm to end angle. If end angle evaluates to 0
1 I! m# M, C) I H5 F - ;; degrees then display it as 360 degrees.& s( {3 b$ D; w3 o( x
- (setq endparm (cdr (assoc 42 elist)))
6 T! v! A/ D& e! |& j* |7 T! z - (setq evecx (cos endparm))
2 K' |" H9 g' B+ G L& F; E Z$ y& R - (setq evecy (sin endparm))8 r* t: B8 K$ J# t" L5 b
- (setq end_eang (atan (* rrat evecy) evecx))# D7 C. w$ `9 H3 m0 c* M4 T( ~
- (setq tempend_eang (ai_angtos end_eang))5 ?, E' y2 C* I6 `( H" D
- (if (= tempend_eang "0")& |$ H2 ^; P% A3 p/ r! s
- (set_tile "end_eang" "360"): d) H3 Z; E, [. U. G0 H. ~
- (set_tile "end_eang" tempend_eang)1 Q) T& E4 k- S
- ); J F' e" W9 G6 T: ^7 ~& A8 U
- ;; Get area of the ellipse.
7 f7 C6 M0 q+ o% y" X2 s - (ell_calc_area)6 n$ T3 w+ d) W- \( k
- )0 L; S. h$ r( E$ p6 a
- ;; Calculate area of ellipse. If it is an arc then2 B, K! Z& @: `; F" C# R
- ;; grey out area display.
9 X% d; Q* Q6 C( x) H3 b8 M - ;;
, P9 L, j7 {" }8 s" R - (defun ell_calc_area ( / area units)8 R0 C- |8 r1 o: M Z Z B3 B% l
- (if (and (= tempst_ang "0") (= tempend_eang "0"))
, G9 A8 w: e/ D5 Q - (progn
6 H; n I8 K! {; V8 G2 E - (setq area (* pi majrad minrad))6 Z' J, u' t! R9 V8 p7 i" Z
- (setq units (getvar "LUNITS"))! t2 C) m- X$ I" F9 A4 ?( Q
- (if (or (= units 3) (= units 4))
* {' X9 I! G7 ^; B5 W, Q - (progn
; ^$ Q- Z5 L. F! B - (setq area (/ area 144.0))& m" M4 B+ L1 A* \& i0 [, }( y- R" ]
- (set_tile "Area" (strcat (rtos area 2)" square ft"))* Q F/ c+ F) b2 n% H- w( f
- )
- b) \, \* o# l5 h: K# c - (set_tile "Area" (rtos area))
2 W( c1 S# x' t7 ]2 J- j2 E - )
+ r% L( [; i5 z" d* t - )
t, z" t# j b! o, [! Q - (mode_tile "Area_text" 1)9 w3 Y; e- w* A) X
- )1 y& C. r9 [1 |3 D8 ^) Q
- )3 S5 G4 H! s" s3 Y: o1 E
- ;;
0 X' K3 e0 z, \" d3 y - ;; Calculate new values for ELLIPSE
g% O: G0 F$ d2 J - ;; Minor Radius, Area
A& S! i: `2 w: w9 K - ;;- z: g) B: A" r
- (defun ell_calc_newval (ell_tile)+ y: l/ F0 _- F( L% m1 H
- (if (= ell_tile "majrad")
- ?7 G7 r) O& p* f+ U - (progn0 E" g. F* C7 v# k7 w
- (setq rrat (/ minrad majrad))6 {+ d6 N9 W' v6 F( C; j# k
- (set_tile "rratio" (rtos rrat))
% }8 |& a+ u1 @! x5 ] - (ell_calc_area)
$ b+ Z9 e$ v4 `7 ]3 t - )& f3 v3 K2 h7 O( D5 }- d# U
- )8 {% i/ l* q1 d7 m0 z6 q( m
- (if (= ell_tile "minrad")
. ?5 ?$ A8 ]) u( R. r0 c. E$ v - (progn
. q5 t4 N1 N$ x5 l, H- p5 P E; z - (setq rrat (/ minrad majrad))! s/ a5 N: m4 r) L/ }9 Q* m3 V
- (set_tile "rratio" (rtos rrat))
& x) u5 w" {5 s. {1 ~* v - (ell_calc_area)8 a( |3 ]. S W5 J
- )3 Q1 _ a1 [# a8 A& N" j8 u
- )
% `: |0 ^, a+ o+ L' B0 @ - )- W2 S4 k0 ]- d; W, W( w
0 v4 K5 @) u/ H& B7 e- (defun set_dimen_props (/ loop a stl txstyname)" m) o0 U8 M* Y Q, N
- ( y8 ^, F3 f% [/ }, p: G
- (setq stname (cdr (assoc 3 elist)) ; get style name! `$ m2 R Z7 n, q- m: H
- stl (tblnext "DIMSTYLE" T)1 F4 a3 P! k( x2 L& L
- stlist nil)
5 M$ O P5 p; } y3 |/ K9 b - ;; Get all style names and list them in alphabetical order
6 D. E2 m+ t. r8 N - (while stl
# n0 P) R( _5 R1 O, F) w$ B9 x! K' e - (setq sname (cdr (assoc 2 stl)))' u' x' l" s* a+ ]6 `' e* ~+ e N
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
; C" Q) a1 P8 h - (setq stlist (cons sname stlist)))
, o0 K8 N6 z) ? - (setq stl (tblnext "DIMSTYLE")))
4 C5 a( R5 h8 @7 d - ; M7 |% O3 h. M+ a
- (setq len (length stlist)+ N$ p: L& [5 p& l
- loop 0
1 \8 v/ y4 z0 Y, g# ^( v: Y8 R2 I - dimsty stname3 _# e2 S5 Y' ~) D q
- )# I9 q% k% u( E$ d8 d0 m R
6 |6 a7 x1 ^9 ], ~ T I- ;; alphabetize style list, depending on maxsort
4 i+ a/ k9 _+ `; ^5 d! L4 D - (if (>= (getvar "maxsort") len)6 d5 D$ c% R8 @: M3 K9 ?
- (setq stlist (acad_strlsort stlist))
7 f5 x. C* K9 }# T9 S - (setq stlist (reverse stlist)))
/ R& z0 `) ^& [5 Q; O
& v3 U! T+ y3 x% Y1 d$ D- ; *UNNAMED style (dimsty = nil at this point) is replaced with% f# I j* N; x4 b6 p6 g% `
- ; the current style. After R13, we require dimensiosn to have a: X2 m0 V7 K$ e2 E
- ; dimstyle, so we plug any holes where we find them.- f6 T' ] T) J7 [. K9 M
- (if (null dimsty)
: o3 ~" u% T' X t# o6 J - (setq dimsty (getvar "dimstyle"))$ N) C+ }0 S' d' ^4 S
- )
5 P4 O/ @: E6 t4 R8 X - ; Show the styles in combo box
0 K" j( v: ~! M) U6 S. M1 i - (start_list "mod_style" 2). N8 J2 O" I) q( b. H6 }* z) d
- (while (< loop len)$ B0 s% I9 C: h/ W$ b$ y0 C8 ?
- (add_list (nth loop stlist))
! w! o! x% f5 A' W% x - (setq loop (1+ loop))* w, G& @: N* f# Q* ]+ }
- )
- q: g7 N4 [/ @7 f9 W
3 g0 f! \; W7 {* o m* B# @- (end_list)) [8 m+ r" g# h( i! `
# [+ Y" L" T F8 F- ; Hilight the style name of the selected entity
3 \ _ I& }2 p# I7 T, C - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))# D& s' i- l8 s7 I3 _
- (setq loop (1- loop)), g6 @& ^* {& u2 ]3 ]* n+ W
- )1 R0 v3 M/ _ H
- (set_tile "mod_style" (itoa loop))
" W- `* n# p6 h9 Z- L
& n! k+ h& S9 T( a- X3 ?- ; The following is the list dimvars. It must be sorted in the same
& q3 M: E1 V9 p% Z- Y6 s, f - ; order as the resfub returned from DDIM (ADS module)." ]/ V8 Z/ G9 l
. C; i6 m" |. D8 m- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values" Q3 m" r! z& }0 f2 l' a- Z* z
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"/ L2 x) l# m" U& h
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
0 ?8 u _/ y8 b Q! ~! j' a - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
' k1 N6 S! T1 [4 h0 J, N2 } - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"% _6 Y0 C5 o$ _6 V( f4 S
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
0 r6 [0 a3 s6 e, N, y0 E4 b - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
/ r) X1 k' I! T- i3 q1 ?, } - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
6 |. Y4 B3 [. p3 ^' s* f- ^- _ - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"% e2 _6 a ?# J$ i% ~- m3 A0 J
- "dimdec" "dimtdec" "dimaltu" "dimalttd"! h* Y! k) b! G4 h( W3 W
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
" Y5 K5 E4 u8 ?) U* W - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
% |; H( R" t, i' I) b( t - "dimtxsty"
: r! u( B: e% P; L - ))" T, V: B* f% T
- (progn
+ H/ k/ W3 c& l; S# d; z$ g0 P - (setq sv_dvlist (ddimen_getostate dimsty)
% U% ?/ k; V( s6 x$ W - txstyname (assoc 340 sv_dvlist)
' B. t( s+ A3 P' B" d' ` - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
, O4 d1 V0 Z% |6 _. D4 Q& r - txstyname sv_dvlist)
, S6 h! o; Y7 N6 a1 r - dimlist sv_dvlist4 v5 r* k; o6 ~
- )
& E; k% H; q. ^5 w: t( T b - )
1 Y* J' k. L [, C# \( ^( b - (if (= dimtype "DDLEADER")
) C$ Z2 n ]# t: _ - (mode_tile "mod_format" 1)2 E: {% Y& a: L# ?+ ~+ C3 s1 r
- )
$ }9 A9 f+ `+ ^) X( K - (action_tile "mod_style" "(setq dimsty (ddimen_style))")' N6 S; {* g7 k% P% W
- (action_tile "mod_text" "(done_dialog 4)")* E9 w/ \, x( Y0 l2 a" l: `
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
* |( c9 @# R7 } H - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")0 ^& L, b$ ?3 j2 z0 I/ s
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")+ l: P4 R3 w! J1 C$ g# r9 H
- (action_tile "accept" "(done_dialog 1)")
& J/ b8 ]+ H2 G! [+ O - )7 t* K, c# W. ]$ f! e0 h
- ;;
# [0 \: f% Y+ X8 h# t$ }5 }& r - ;; Get dimvars that have been restored., Z% f: W+ w. G" D1 `7 q- J e
- ;;
' h" ?" W# E6 R% t7 a8 [& j1 u - (defun ddimen_getvars (/ elm dvlist dv i)
' S) B: ^& v: X& z- ^, Y, M5 k - (setq i 3
- }% S; M) ~& p6 M$ Z8 w6 H' @ - dvlist (list (cons 0 "DIMSTYLE")
2 g& _3 E3 \2 M$ y% v) g( ~/ R - (cons 2 (getvar "dimstyle")) (cons 70 0))
8 o% y+ _1 s& U# F7 n1 J* Q: h - )5 m' ~ O% h+ B$ d
- (while (setq dv (nth i dimtbl)): d3 B4 p6 I, u) x& C5 z
- (setq elm (getvar dv)
5 M. A# ^; G/ V9 n2 [% g - dvlist (append dvlist (list (cons dv elm)))
1 C; h. }- @% \ - i (1+ i)5 S$ L: M3 z" Q' L/ V
- )
# \- k8 P4 `1 D# }# Z1 _" Y ] - ), r' ]) W9 ?% Z4 K1 r
- dvlist
2 I6 n$ n* D- F" r( |: a4 y P - ): e3 q# N( g* n
# {" p& u$ d4 B& `- F6 u- ;;, l. I' w# x+ j9 ]/ i
- ;; Get the original states of dimvars. This is for DIMENSION entities.
8 N! q, \: _5 C! R8 v, V- s - ;;
/ e5 r4 z2 a1 K4 z8 u+ y0 Z - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
8 e. L H% U, W; x; v - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
: D* a7 ^/ o1 Y" O) U* i i - dvvars (ddimen_getvars) ; Get dimvars for that entity
* O: w3 p- b; e3 L- t - i 1) o0 N6 k1 b/ [: w, ~
- )0 a# ?, r! d5 z, G t7 |5 a$ C; \8 k' ?
- ) y2 a+ {- w1 ~1 z u3 ?+ f3 _
- ; Create a list that contains values of the selected entity.* |6 M" B' E2 p+ V2 q
- ) I N# V( N. k# a: o, B
- (while (setq elm (nth i dvlist))7 R/ I& I$ u$ T3 m' s* C
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)& r3 n: W0 T0 c% `8 t; |6 ~! Z
- i (1+ i)" ]& O1 q0 `1 B0 O
- )
5 b" l9 J3 @ x# w6 f - )
. L3 Y0 P" T7 U - dvlist
" h' O/ w6 X7 ]! C1 e; m; I1 s - )
: [: |, | d/ N - ! a, q6 [1 k: `& J9 D! l
- ;;. n" }2 L: ?/ V% V
- ;; Restores dimvars of the selected enity.8 a0 x6 f: t* Q, \+ i3 f
- ;;
0 |4 H- Q2 ]6 z4 T* P+ Q( j% i D - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
& N8 T9 ~! L: X - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"2 ~% g! F6 ]2 y9 C( i
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"6 u! o4 r) v' T& P q2 g
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
9 h6 ?, H/ ^2 ^ w; o - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
) {( `+ ?2 D6 c* Q - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
3 A/ d6 t% m" h) R! g/ C- I& A" ~ - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"+ ~8 ]# K& B+ h* ]
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
9 m' p+ L6 m6 }" X0 T# P - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
: G5 e$ s' R! `/ s" z* V - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit". N; U) y; _- K! q5 j1 M5 Y
- "dimdec" "dimtdec" "dimaltu" "dimalttd"# s$ y1 l! u- B+ u
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"" ~& q9 B' b4 w" Q4 V' x8 n
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt": h/ O+ \0 k& V# @
- "dimtxsty"# \1 P3 S b3 c) F+ ]
- ))- C0 S+ |# }8 M5 f
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings) x! N$ S/ C* H6 y+ C
- (progn% v& |7 v0 |3 t' ~4 K
- (setq en (cdr (assoc -1 elist)))& c1 h3 q9 D! e. s7 t) O3 I
- (command "_.dimstyle" "" "" en)) N# d F$ X) F7 O
- )7 R- c; h4 A2 Y- p2 W; T2 H) G+ K
- dimsvcurset
9 l \% e0 Y9 M - )
7 Y+ F% r2 x4 v) k& b( T! F - ;; q) N# L" Z2 a6 N( f
- ;; Modify Leader$ N8 a/ L/ q- Q& l9 i. z
- ;;
- d- I/ E; D$ h& Y - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl" U2 j# i5 [* c' a- I
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
+ C, z# H' X8 q& w5 D& R1 s - dimtype dimsvcurset)$ R. ` r! X9 |6 c: `
- (setq dimtype "DDLEADER"
. O z' e3 I; z K2 W4 {, x/ j - dimsvcurset (ddimen_dimsty_restore)
# K1 L- b$ Z8 |0 _, [0 G. e - )0 U; p& {, I7 p0 {
- (if (not (new_dialog "ddleader" dcl_id)) (exit))( k/ C9 p* Y2 S) ]4 G3 W
- ;; Set initial tile values
}5 R* \3 H8 ~8 S U! P- V - (set_tile_props)
0 z" i9 B8 T5 _, {! b - (set_dimen_props)
+ l& t a& ]8 B6 ^: E - (set_tile_handle)6 r8 [, Z1 U3 h9 n$ z0 B3 ^
- ;; Define action for tiles) f6 r0 h W, J ^
- (set_action_tiles)$ h9 B+ L( u+ g" C, W7 D, V6 M% d
- (mode_tile "mod_text" 1)
# D. X8 X6 V# q! }0 n2 {& [, z
$ r) T# Z0 g2 h" W0 s) l" H- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
- l& h+ v. F% [! \. C8 I; c - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")* A7 c) c X: M1 s- w8 C
- ;; Get ARROW and TYPE.
9 x4 F7 \# a& Y0 Z - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1")): n( \9 S6 h/ V3 C9 Y0 Q* f
- (if (= 1 (logand (cdr (assoc '72 elist))))
# Q' F) b/ c, y7 \% Y- P( ?( c% r6 s% K - (set_tile "s-s" "spline")6 |3 d! C5 k" |7 y- l+ F0 q" k
- (set_tile "s-s" "straight")
+ H4 O8 I7 W1 e" V - ), s" I3 C4 ?5 t: H+ m
- ;; Start the dialogue.
: a1 `) p6 ?& @3 G( M - (setq dialog-state (start_dialog))* V- n: @9 E; W
- (if (= dialog-state 1)
& n5 q5 h5 O0 P$ x - (progn0 q$ P3 H: b# Y/ r1 y, Y
- ;; update the style
7 C; V* D5 K3 m& u) f, S5 { - (if (/= dimsty stname)
) X% }9 E/ A0 ~5 U$ Z - (progn$ v* O; O& g) y# ^$ `. t
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case i: C. v0 @+ w9 [5 ^, k
- ; doesn't have it.% S6 L+ u! M3 `" I4 i
- (if (null (assoc 3 elist)) U% @9 l' f V- @9 z) O! G6 ?, ^
- (setq elist (append elist (list (cons 3 dimsty))))
( L: z8 T8 A& F - ; else just replace it.8 g2 v) o* ^7 X4 @7 @1 Y _ B
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)). f; [, `; q' C) K& ~9 P
- )
' b) F3 O. P& f( N - ; refresh sv_dvlist with new dimstyle. A8 Z! d1 F% M Y8 y3 a; ^+ Y4 g
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
/ _6 X, Y1 ?- U( k/ f% D/ m, W- a9 d - )
2 {1 j7 u D) G! H9 d# I9 t* ~ - )
- q: G8 B/ X; F" g" l; { - (if (not (null dimlist)) ; attempted to change dimvars
2 G) J, v, d* J1 Z, [ - (ddimen_complist sv_dvlist dimlist dimtbl)
; k+ j8 H- n ?( n0 E" O5 ^ - )
/ ~3 A0 C2 r) |$ u* ~ - ;; update for ARROW.
4 N0 K1 s6 e) F" q; g; E - (if (= "1" arrow)
k/ B& p/ P" T( O - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
4 g u# { L$ t" k+ [" m* ^; B - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
$ I- f" z9 t. t6 s& ^$ v' F$ s - )
) m: C; e. I/ E! `# Q/ S3 Q - ;; update the TYPE.
0 Q7 f- i) c* z5 _: W - (if (= "spline" leadtype): i+ z5 I1 h9 G6 p
- (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))8 j2 n" l) v: k2 e+ n) {; Z+ n
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))" E0 ]; C8 r6 q
- )
. A9 H+ O/ I5 o0 J8 M" F; U2 y - (modify_prop_geom), m! P; E. W8 }* f) Q3 m* V% i
- ;; update the Color9 d7 }" D; v3 h* d" M; \" L: {5 r
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist)); Y1 v. }. m% D. N# T# a
- (entmod elist)
9 w0 R8 ?: s8 I - )
) D0 x: J3 y, L, J3 G$ y8 P - )
8 p, h& S. G. d" G8 s0 H; ? - (ddimen_setvars dimsvcurset) ; Prepare to exit7 L* G' d' o& l o w" ?1 R, i
- )
: X) k1 L3 P: }: v# o& f
& Y% x7 ?" Q4 ^9 x3 x; Z+ B9 }0 ~5 }- ;;
; P7 F, ^4 ^: }; o - ;; Get dimvars of a dimstyle with overrides.4 B/ x+ R$ A. @; s
- ;;- M: g4 m' g8 N; Z
: d5 o7 D. ^2 a, [3 t- v- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)- P/ b" T) p( v) k' [
9 o, o9 [" i' g( I' a9 i- ;; Get override information for the specified entity.
, j- d* U( _) i' \& W4 t - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we; i, I/ G8 K: f- X) z8 V
- ;; must obtain override information through this tedious operation.
' ^. Z: v* O. b4 b3 `" r0 B3 D - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
3 i0 l5 H9 k8 `. e8 `# V - dvlist (tblsearch "dimstyle" dimsty)
5 J) S [' X# f: R1 T+ y - i 2
5 a% j- a/ C4 {& d. l6 i - )- n. J: @# t+ I+ n5 n" s$ o
- 0 M. t) S- Y, J4 l9 Q" G
- ; Update the list with overrides if overrides exist.
! D0 A6 Q( I8 L' A O
4 N) U& p3 x- R9 p- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))9 l0 p0 M R/ b/ ]
- (progn
: B9 Q# d. k; \ - (while (setq elm (cdr (nth i dimovr)))2 p7 [4 K$ k" V+ j' T/ q
- (progn/ K- H$ t% v$ ?$ h& G+ `
- (if (or (= elm "{") (= elm "}"))
$ q0 \+ G6 z t9 P6 Z" i- E0 Y - (setq i (1+ i))
7 [' e7 j. F' d9 } f# E3 g! ~ - (progn
, S# \( R* z* Q4 A1 c - (if (or (and (< 180 elm)
3 v+ V( ?4 T- ~3 D: t - (< elm 190)8 @: ~# ^ d: F3 z3 s) A
- )
8 V6 H/ a7 g! O0 F# \# r" D! |/ l - (and (< 80 elm)6 S4 r% e* v; i" M% A" k" x
- (< elm 90)
# r4 m2 B" D, }3 x. e) D - )9 C; y6 K5 E; E7 v1 S& S+ @
- )
$ w/ k% L5 t7 v( E" `1 f - (setq elm (- elm 10))
6 b: K+ X4 ?2 F+ } - )
/ X6 e! c: a/ Y. w$ h6 ] - (setq i (1+ i)
+ I, q R4 o0 S - elm (cons elm (cdr (nth i dimovr)))! n) ` V" ~$ e! V. c8 ~
- dvlist (subst elm (assoc (car elm) dvlist) dvlist)
5 O( d3 d w, h - i (1+ i)
$ D1 ]% K, F- q, M2 [, n% y& N - )% Q2 S$ A5 Y8 t
- )
3 s3 {6 R/ M4 O; J6 i9 B - )
8 ^$ O$ U* A9 I1 U, J5 f( T8 I - )! K. `* G$ I2 d5 ~$ y3 k
- )2 Y* B( q; j! f8 D6 L. M: a0 x
- )
$ ]! N5 g% v2 J. X9 C - )# w2 [# Y3 d+ E% @
- dvlist
/ W1 X$ e( L2 _" b - )" {/ u ^/ K& J, J4 Q! n+ F3 f
- ! w% N9 w3 ~$ T3 X. G* H" D5 e1 w
- ;;
$ f# G G; G) v' f; \* K8 g" y) ? X - ;; Modify POINT+ u- K& U! f$ K
- ;;
: F1 C. |5 o$ E! H3 a - (defun modify_point ()" E0 r; H7 Z* |( C
- (modify_properties)
1 Z5 V/ v- J$ R4 ^3 B* Q - (setq pt1 (list x1 y1 z1)) ~- x8 ~0 H" T4 N
- (tempmod pt1 10 0)
Q6 J8 j: e4 A8 \- a4 ?! E: p - (entmod elist)
& s4 V7 A' z7 M2 }* E; F8 M/ P - )
0 d4 n& r' }3 A4 j8 S, W - . E! L* I' a7 ~
- (defun ddpoint ()
, v% J8 |; j" I$ I - (if (not (new_dialog "ddpoint" dcl_id)) (exit))/ @8 s! Q* x9 E9 C% Q; w3 g, v; I8 N
- ;; Set initial tile values6 R8 z2 p4 x+ {* y% W% \2 E
- (set_tile_props): ~5 T' X4 y5 _. @8 G
- (set_tile_handle)3 B0 s/ P- b) C$ u2 T. _6 q: c
- (set_tile_pt1 0)
! f5 t% X, w7 `# C, l - ;; Define action for tiles
' D: `3 N" l8 m7 D/ }0 Y2 y - (set_action_tiles)
8 K [' |& x8 v0 f; G - (setq dialog-state (start_dialog))
# f% L- O0 Y! o( `7 q5 F - (if (= dialog-state 0)
& Q) n) S# [& }7 j6 ^ - (reset)
6 S6 v3 c& Z: X8 t - )% J$ N6 y9 q' n
- (if (= dialog-state 3)
: S( U8 ?) [6 j8 J! ` - (progn' d3 ?( |+ W2 p" f n! I! J
- (modify_point)
7 n3 ^& K& ?5 X - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
( U+ d+ e5 z/ c) S' y - (ver_pt1 0)- w2 ?- O3 Z: j% |1 H4 x5 |* S
- (ddpoint)
7 q1 H& \! v( z! P8 H - )& ?% ~2 c/ e' a1 d; g4 Z- v
- )
- j6 c/ P1 p1 k% Z" H5 ~% _- J3 B - (if (= dialog-state 1)
" }- \6 y' h+ s o- w+ V# B - (modify_point)7 I% I5 N+ L5 v
- )4 w# r7 F, @# u
- )! [6 L/ k+ D5 P5 O* |+ E$ ^/ h9 k
- ;;4 X# i7 A* a6 g6 \( R5 |
- ;; Modify LINE
$ p N1 K- l3 y& Z - ;;
7 c3 {$ R' A" {- E1 B! A! L8 f7 m - (defun modify_line ()
5 o$ a6 Y' F4 [. m - (modify_properties)
1 j! N" ^8 ?/ s: U+ m( X7 } - (setq pt1 (list x1 y1 z1))
9 ?6 m7 {9 q1 w: @% K4 ~ - (setq pt2 (list x2 y2 z2))
$ h1 n3 E6 R& X7 X# B - (tempmod pt1 10 0)% w. n# P6 b9 c
- (tempmod pt2 11 0)6 w4 F% Y# k3 J7 l$ J$ h" L' g0 ]0 i
- (entmod elist)5 f* _. g1 K) ^: i' ?
- )
" q/ c, {! n: g# ~* p4 C - (defun ddline ()
5 U$ L( B9 G. x$ A - (if (not (new_dialog "ddline" dcl_id)) (exit)) s; p3 f% c9 M! S. @% ~$ p
- ;; Set initial tile values
5 ~/ A1 c3 f8 D6 J7 K - (set_tile_props). X/ B5 o6 I1 J4 Y& e; o
- (set_tile_handle), A. k& Y, K( h- U Z- o3 a2 S
- (set_tile_pt1 0)% B0 ]; f5 C: ]( N
- (set_tile_pt2 0)
3 s8 T x# B+ T9 G* ]6 Y% |2 r - (line_calc)
: E' R+ q& D1 H/ _' r- \! @1 }4 e( g - ;; Define action for tiles
9 S7 t; [# \/ A, F) a" c - (set_action_tiles)
4 x* C/ g' }, i4 S$ F4 w3 ^- S - (setq dialog-state (start_dialog))
& i" `* g* {/ _' ~ - (if (= dialog-state 0)
9 g% ^: b0 }( O9 }4 z, B+ g - (reset)4 |6 @2 |: k% F( i
- )6 n0 Q. U1 l; g: {! m6 J/ J
- (if (= dialog-state 3)" f* t- \; r* W- T0 o/ O$ ^0 W
- (progn* A% P' W1 q% t" J3 q
- (modify_line)
, F2 A+ y& I! ?* O - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
* ~, V w& K$ W - (ver_pt1 0)
: X/ a/ F6 t. s3 r: X - (ddline)8 g5 k- s) E) R7 v5 r6 M
- )
- l- o: p1 k# N' S, @+ E! C$ O - )9 O& G( M5 Z; G6 ]6 S0 n9 _8 Y
- (if (= dialog-state 4)4 q7 P/ x8 `$ O5 N0 B1 z
- (progn
! |- S) q- G8 W6 A$ q) T+ j - (modify_line)9 w5 F# ~7 X" d: a4 q# q
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
, I* w; v, p4 S, p3 O! w$ _ - (ver_pt2 0)/ n& N8 w, x% E" {, S; Z8 o# z% G
- (ddline). W6 D* S- u5 T, Z8 ~5 \/ Y4 U
- )2 i3 E! r( G% ]8 d( e! W
- )
# L; B9 d: _$ W! Y5 e - (if (= dialog-state 1), @" \' Z: e1 K! T3 P1 K& S
- (modify_line)
/ u+ F$ _1 b: B; t9 E8 e& l7 S - ), F& j5 P- D. N/ s( B+ u
- )* ]' h1 X, ^: l! k1 u2 }4 t' a* X/ ~
- ;;
* J0 p @% z7 a, [& R8 ]( G - ;; Modify MLine7 P0 z7 }, b; H" b& E% ?
- ;;4 z9 ?) L6 Z) K b$ `+ e4 r
- (defun modify_mline ()
" ?; L# W S5 ~+ z9 R; e9 d& v - (modify_properties)9 L' I* }- ~% D2 r" C
- (entmod elist)
9 `6 H% ^) d4 Q0 o( ] - )# P9 N; S3 n0 b$ D# S
- (defun ddmline ()
& s n/ o# a7 M' M7 y; {1 M - (if (not (new_dialog "ddmline" dcl_id)) (exit))
W' R, b" S" h. t3 G" w8 w% A8 \ - ;; Set initial tile values
9 x/ i% \/ v9 f - (set_tile_props)+ i& C, B9 M- l# a
- (set_tile_handle)& V' b ~% @" N' |1 P
- ;; Set mline style text field.
% i/ r* p' C) l& ~ C! Q - (set_tile "ml_style" (cdr (assoc '2 elist))) j: [" v" w% l* J: V* \* {
$ L% w' d4 F2 }+ R( ^! p- ;; Define action for tiles$ B/ M+ b. f3 E
- (set_action_tiles)2 ]. Z5 B& y& x5 A: y
- (action_tile "ml_edit" "(done_dialog 3)")* r" z1 u/ k/ P
- (setq dialog-state (start_dialog))
/ I1 `+ {8 {: U - ;; Dialog cancelled, reset to original values.
& o9 [& c) a$ ~- ] - (if (= dialog-state 0)
0 }. \' J3 `: r: Y* F0 g0 b - (reset)
) ]4 G w- b( ?2 L0 C4 [5 \ - )- Y6 I2 Y! j! e$ g& l, J) k) v/ m
- ;; Dialog OKed, update the mline.% h2 Y* |. z. W; Q$ [$ t" _, [
- (if (= dialog-state 1)
+ }3 `: A% S! r - (modify_mline)* m5 R& D% y& _# w( E" }' l
- )' `2 I d# j" |0 t) C; s
- ;; Edit Mline, call MLEDIT.
3 w! r8 L# r4 x) E0 D1 [ - (if (= dialog-state 3) i, Y% M! P2 B4 m# H) {7 [% g
- (progn
" p' t1 K1 j' N2 G7 r1 L7 a2 _; Q - (modify_mline)# {2 C2 u/ Q0 g8 V& A" L4 R, m
- (command "_mledit")# b( u$ b4 b: C8 E4 K( C# M+ |0 A
- (ddmline)
% Z8 B+ Q1 K, O2 w0 v) T" Q2 l - )4 e! F( G+ s: H ?' R; m
- )
- c, T+ o3 P" U/ i( Y5 r X - )
- r' k+ r! g3 ^- p - ;;4 W9 A0 [) P! j( x) ] Z3 p, ~
- ;; Modify Xline
4 ~8 ~# G$ \& w: F - ;;
' l4 Z9 \; _/ B - (defun modify_xline (flag)
$ ]5 `0 m2 u0 { - (modify_prop_geom)
5 @5 }$ S. T: ^' {, D# S! @* z - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))7 G, Q% O& U6 C5 v. f
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))* [/ U" i4 P8 x; n3 F
- ;; Update the Root point.) m) G( Z, d4 K- j& W2 q. w
- (setq elist (subst (cons 10 (trans xline_pt1 1 0))# f6 z% Y, u9 b4 a& X+ a5 }
- (assoc 10 elist)
# _& f4 M- z P" K: Y1 b) v6 M - elist! Y' o5 `8 `7 |7 x' z
- )& U; S, X0 s# K3 [
- )7 O v% k0 `+ ]0 J# f/ |0 f/ c
- ;;
) o7 b' c/ d6 y O0 @5 ~ - ;; Calculate new Direction Vector WCS
1 w4 i- m4 C, Z) |! G - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
0 m; @; O1 L! `% x! u - + w" S, a% B2 \0 B4 l# Y% B+ d
- (setq temp_dir (trans xline_pt2 1 0))
5 }0 a& }* h9 B - (setq temp_dir_x (car temp_dir))
' y" J+ k( W. W* a h' | - (setq temp_dir_y (cadr temp_dir)). f) k, V! S8 n) a6 c# _* {
- (setq temp_dir_z (caddr temp_dir)); A4 u# C9 i. G
- / e. M: O3 i/ S9 z7 `% `
- (setq temp_xline_pt1 (trans xline_pt1 1 0))9 }- g+ S- P3 |/ V
- (setq temp_xline_x1 (car temp_xline_pt1))
# ?. A+ T# d1 m2 |; i9 t - (setq temp_xline_y1 (cadr temp_xline_pt1))* J, c& _0 i0 z' J
- (setq temp_xline_z1 (caddr temp_xline_pt1))
& p$ {: p w$ Y/ F
) P& o5 R, b7 R& G- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)& \2 p Z5 V: ?, y& |* \
- (expt (- temp_dir_y temp_xline_y1) 2)
" o6 U0 X1 R: c4 Z5 E1 Z) C1 I - (expt (- temp_dir_z temp_xline_z1) 2)
# _ G3 q9 a+ S9 ]9 N - )))
# a2 b& z8 b3 q! o. a8 V - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))+ v/ }7 w/ ~3 F5 j3 W. U% ~
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))# s6 s F, J; w7 y# d
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))9 o0 Y6 e: A2 @
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))" u6 A: G0 L; O( S2 M% Y, _
- (assoc 11 elist)
$ o& u+ m5 B1 h - elist
& m0 d' i/ s6 F; A8 e2 Q - )
4 D5 Z" |: Z+ K - )+ j, _) L0 F* ?1 f5 A9 x$ S
- (if (= 1 flag), f% y5 V" j" Y! ~+ |, R! M. h
- (entmod elist)
$ b6 {9 d! ~/ N - )
1 _0 ], S. g0 F- d7 G - ): s; Y% j$ ?' ^* m* k( S, b; D N
! q4 a, Z* u+ Z9 j- (defun ddxline ()
) v/ Y7 ^$ N! K0 [ - (if (= etype "XLINE")
, w" s) ] ?$ G ^' H) S - (if (not (new_dialog "ddxline" dcl_id)) (exit))
( _% a7 f- r2 E9 g, a" z, g. X - (if (not (new_dialog "ddray" dcl_id)) (exit))
; t1 ?$ |- t8 G3 v4 R - ); P1 l$ O8 ^* D& p' n0 S* }7 H$ E
- ;; Set initial tile values( R0 i* C( N( } x4 `) u( m
- (set_tile_props)3 n5 e3 ]/ a K+ N( C% d
- (set_tile_handle)0 J z4 j5 t: x' Y( e; r! a# [' t% k
- (set_tile_xline_pt1)
! Z9 V* U" }9 X - ;; Convert to UCS and post Direction vector.
# j. K5 y/ p! g& {; K - (set_tile_dirv)
7 d7 D* b) y" d5 S3 w$ ?0 K - ;; Calculate second point by adding Root Point + Direction Vector.
. n! N0 Z8 F6 l: M' \, { - (set_tile_xline_pt2)9 ?5 F* ?" l; d: q, M9 B
- ;; Define action for tiles( a T# b2 D; T( X. Z5 ]- B
- (set_action_tiles)
Q# k2 _& E e! ~ - (setq dialog-state (start_dialog))! S) e! L8 I4 R9 ?
- (if (= dialog-state 0)
& g8 {/ k3 w* A& a. O+ S - (reset)
: z1 r7 c3 q$ Z0 w- _ - )1 M2 \3 L+ U1 P
- (if (= dialog-state 3)) q; e R/ @$ k, l. ^! Q9 [
- (progn, U) Q6 d& J) \5 W [
- (modify_xline 1)
/ F$ S) D+ J: F3 e; Z% w, p/ ]- i$ g) b - (while (equal xline_pt2
2 g4 I0 R8 W% `3 n3 R2 k - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001), F+ }" K. |7 b6 X& A( w* A. t& E/ C% {
- (princ "The Root point cannot equal the Second point.")
& g$ A' `7 h# p$ k( N; M# q* X6 ]& H - )2 V$ M$ h/ b1 k/ o1 O
- (ver_xline_pt1)( z4 b+ T2 g& b! v4 A, `5 g
- (ver_xline_pt2)8 E" p8 K( s$ u4 q+ w; M
- (princ)
* k5 Y; N p; I5 ? n6 g4 m - (ddxline)
! X; C! }7 S5 j. p/ I" o - )
; S% p/ Q4 x0 n* b - )
* \" d% e( f! ^3 H - (if (= dialog-state 4)
. R1 a$ C$ ^ J) X7 n - (progn: H; a$ y( ]8 Z0 q- ]3 l+ E3 O' h
- (modify_xline 1)/ `/ P/ f' W; O4 f
- (while (equal xline_pt1% S" a6 w3 o3 _
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)/ B0 W4 u! g3 ?: p" D& C' }
- (princ "The Second point cannot equal the Root point.")
/ r: {8 q# \- e - ). H: e1 M" T/ X0 R
- (ver_xline_pt2)' g1 T8 u% R, [# \
- (princ)7 @5 ^8 l! s& _1 J9 `/ @9 |; q
- (ddxline)* A& Z9 v0 X$ n0 @
- )3 M+ ~1 J8 N6 C, ]$ e, N& A
- )
o5 d( E- z$ F. z$ Q3 f: Q - (if (= dialog-state 1)
' c1 |: D+ V; o# k3 Q2 V# t3 \4 E - (modify_xline 1)4 F6 \* Z/ [- W' ~0 _
- )
* K! i& b) n" Z+ V9 q6 O - )
. ]1 E5 v2 x: b$ E4 Y7 Q; J - ;;/ f9 P* T' J6 L2 S3 p( r
- ;; Modify ELLIPSE8 E% |1 ^1 ]/ A! }: ? |# A/ p
- ;;
& \( p' }. a; \! L4 Q2 f" ~: o - (defun modify_ellipse () N( o4 `6 V( X3 J2 T, b# A( j
- (modify_prop_geom): u9 q; j) C. n( c6 G( N
- ;; Update Ellipse Center Point value.
* N& O3 U; i( R' _0 x! ` - (setq pt1 (list x1 y1 z1))2 C0 `6 {. j* I! p
- (tempmod pt1 10 1)) b- J F+ B3 C+ N$ U
- ;; Update Start Parameter value.3 d9 ~, A+ c7 a f
- (setq y_val (sin st_ang))
+ X5 O/ r# |& \ C1 V - (setq x_val (* rrat (cos st_ang)))3 B/ h$ J7 Y) E* t. d
- (setq stparm (atan y_val x_val))
( D. y% s1 F, X: l - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))- ~$ K5 M$ m/ x) e' l
- ;; Update End Parameter value. Normalize it, if it's less than s4 v, i8 I. Y$ |# W; q3 ?; p
- ;; the start parameter.
' c2 a y6 R8 X0 e! x. j5 Q) ?8 @ - (setq y_eval (sin end_eang)); ~* Q4 l/ \6 `' q/ T5 _/ i
- (setq x_eval (* rrat (cos end_eang)))
& w; N4 V( w: z) L0 { - (setq endparm (atan y_eval x_eval))& y6 h2 \* @4 L% C6 b4 W3 j
- (setq diffparm (- endparm stparm))5 ]/ _3 ?3 V# R* c9 G4 C
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc.- R; C. V) v8 e/ O0 L- X
- ;; Since zero length arcs are not allowed - construct the full$ V3 J6 O/ L2 G3 ]2 r) Z
- ;; ellipse in this case.% t8 B& x/ M& r3 S: k+ F, H* \
- (if (<= (* diffparm diffparm) 1.0e-12)
" k2 R% B3 W( u; s" z - (setq endparm (+ stparm (* 2 pi)))
# K- B9 |+ H, n4 x0 f' K - )& ?& f8 u% U: b1 z9 B
- (if (<= endparm stparm)6 b* `. @0 ?2 j( b( X
- (setq endparm (+ endparm (* 2 pi)))
8 q2 ]( u0 _5 H - )
% d! f% f5 @2 u) y* Z, S9 w/ M- e - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
2 c% L+ q6 j4 ^6 ], z% _ - ;; Calculate the Major Axis Vector by first calculating" Q, q$ L; u1 B2 V0 s
- ;; a unit vector using the old Major Radius value. Then3 Q, A( t% Q$ u
- ;; Multiplying that by the (possibly) new Major Radius
^6 S5 j0 B; L: ?5 t& J - ;; value to get the new Major Axis Vector value.
) V, Q) h7 o& n5 I - (setq unitxx (/ xx old_majrad)), ~% z+ d4 W9 N& I3 L, ^1 q
- (setq unityy (/ yy old_majrad))
1 Y6 f0 }8 h9 h- p - (setq unitzz (/ zz old_majrad))
( V H, ?2 i" b. Y% M9 B - (setq newvecxx (* unitxx majrad))
8 D1 Q! w& V7 E1 ]) c8 Z# u1 \' D: B - (setq newvecyy (* unityy majrad))
0 Z- D% h2 @5 D- G3 X - (setq newveczz (* unitzz majrad))
{& Y* s. K+ x* o# `/ h - (setq newmajaxis (list newvecxx newvecyy newveczz))5 t$ e. U; U2 ^" q! p/ Q" g4 x
- ;; Update Major Axis Vector value
9 {, ^9 y: F4 r1 q - (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
k+ l+ P) O2 z4 b) h - ;; Update Radius Ratio value7 w! `9 V1 `7 S( L7 i" {( Z
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))' A' |( c, k0 ]1 v4 W5 y
- (entmod elist)
/ `* f' a0 [2 i% l' e3 s- ^6 O - )! ~. R& S& ^4 h" |+ x4 O* \- R0 E
- 4 Y5 k+ t7 s" B6 P2 R& g, H# z
- (defun ddellipse ()
/ t3 S S; M) ]: f, f* H p$ n - (if (not (new_dialog "ddellipse" dcl_id)) (exit)). R( j& W4 M R9 e
- ;; Set initial tile values$ G w3 A, Q1 \
- (set_tile_props)- L8 E& l" {% M) ^, ?: P$ X
- (set_tile_handle)0 C; a2 J# X a, j$ S$ n& I. u
- (set_tile_pt1 1)
# U4 c& _: F& D - (ell_calc)# |- i% U, Z0 Q
- ;; Define action for tiles' G7 F* U. K9 ^2 Z& }: g2 Y
- (set_action_tiles)5 m* b0 i6 P' X/ f$ y
- (setq dialog-state (start_dialog))$ z' H0 a! i* ?9 U7 e
- (if (= dialog-state 0)
' Z7 v7 f. b- O: {) B' Z. O - (reset)' B5 ]! s9 D! l. B: w5 u2 B" I
- )0 l9 v+ l5 B8 w; V) A7 Z
- (if (= dialog-state 1)! n9 N7 X( T7 X; z% v5 M; \
- (modify_ellipse)# [7 [1 m% m2 _ L6 C- O
- )
: d8 Y6 D& t" l+ \7 f6 Y - (if (= dialog-state 3)
R2 u: b3 e3 u& Y - (progn, r) X! ]! n! Z$ B1 R- r
- (modify_ellipse)) n' f5 O/ o* }& e5 k6 `
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))8 q n4 m8 G: x
- (ver_pt1 1)
* f& I5 ~ b* y7 P: L( F0 n# D - (ddellipse)2 `. D1 x* H5 e
- )2 q! w( K% J+ Z7 }: S2 ^% i I
- )
% t: [. c6 v2 {8 J - ); @; s1 C* G+ q9 c; ]" S
- ;;
& j8 d/ k. h* i4 V; Q4 _ - ;; Modify REGION& j1 V/ W/ G* U' ?2 ~3 i$ _
- ;;, N% N# N5 c$ z8 C# h( s
- (defun modify_region ()4 ^6 \) [& A, M. ^; p3 k
- (modify_prop_geom)
* z( }; t) T n: X - (entmod elist)( z2 {; p7 L0 s% w) o: a9 c
- )
0 z( W& n g% ` e3 q$ i - ( G, g/ Z8 R7 o" P3 b, v3 X' \9 P
- (defun ddregion ()5 G: D. {) F& U
- (if (not (new_dialog "ddregion" dcl_id)) (exit))" \& W( Y/ a W: C. j" H
- ;; Set initial tile values
* T; z4 D6 ^2 Z- h. w# { - (set_tile_props)* _3 D& {& z& O9 I2 ?
- (set_tile_handle)
4 t, H, B0 B7 c% M - ;; Define action for tiles$ _- Y5 @: x" K8 K) i
- (set_action_tiles)4 c2 z, Z* A3 u& c1 e4 j/ r3 _8 G
- (setq dialog-state (start_dialog)). m* T! q) y8 y2 G: [
- (if (= dialog-state 0)
: u2 h: t0 U4 { - (reset)6 f: z6 W, K3 p9 w" D
- ); x( r! ~1 A7 M( i
- (if (= dialog-state 1)
6 {( Y7 {- W# }6 e( J( m! P - (modify_region)
2 [7 Q' m4 p/ m1 K* x( y - )
L" g0 ~: o. [' w/ m# k - )
4 e2 ^- w1 j3 P+ | w, G* D - ;;
) h% R9 v h- b& z# k1 `6 W# h - ;; Modify 3DSOLID
: h3 s4 O! t8 C* b8 H9 _1 c - ;;
) D1 R+ s8 i1 @5 [+ s% A4 h; Z/ g- Y - (defun modify_3dsolid ()1 b: i7 v$ C+ E9 `" W
- (modify_prop_geom)- S% {! V% S- N) i' V8 U% I) ]8 f0 B
- (entmod elist)
8 S# V! `1 l9 ] - )
6 s! e% W6 X0 k d - . K4 R0 V" N( u" A& M- G
- (defun dd3dsolid ()" S. ~+ h! p$ x: h: R" S2 d
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
9 ]: O/ v1 ]2 \ - ;; Set initial tile values: }! J1 y/ U2 f# H% W; Z0 E
- (set_tile_props)
8 t9 S2 W3 [: } R - (set_tile_handle): {, N5 Q9 B2 H" \5 G; P
- ;; Define action for tiles K, j+ K2 R D
- (set_action_tiles)' m9 [/ ?. I% v6 p* M5 E* b
- (setq dialog-state (start_dialog))
2 J k& ?0 B/ L) ^2 }, N - (if (= dialog-state 0)
! q R8 P9 X5 @ - (reset)1 V& W; A2 i* h/ Z- h% U% x
- ); ~3 P r5 b2 l6 I {
- (if (= dialog-state 1)3 i2 R" b2 F5 F* R% D( t
- (modify_3dsolid)6 G/ g0 J2 H0 V K- F f
- )
' Z. E0 ^& }6 ]5 g - )/ H7 ]- G1 R# N3 t1 z' \- _
- ;;: R9 Y. i+ P- F
- ;; Modify AcDbHatch( U, J+ k$ b5 x# b+ u. W/ P3 z4 l: G
- ;;0 }) P2 ~9 j8 C: R
- (defun modify_hatch ()1 `. {( b: Y: i V( \ R
- (modify_prop_geom)% i/ P$ Y2 K0 w, F% s
- (entmod elist)
, |9 ]7 a* v$ Y, F) }7 e - )
2 @, U2 e1 e; c% e+ q
) f" A& Q1 Q6 c4 y% P1 I4 ^- (defun ddnewhatch ()
4 d" M+ e6 F$ O - (if (equal hatch-elist nil)" }% c% ?5 ?6 S0 g4 \0 o6 S8 H4 @
- (setq hatch-elist old-elist)
* g4 _& D+ w, j( D9 C. C - )% c* A m/ l& M
+ Q# ~4 ~# P+ |0 \, P) ]! L- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
/ i8 d$ C8 d( n1 Y" G
! p: n# B8 ?' B- ;; disable the thickness tile
$ `* Q+ _% A* {8 G& N - (mode_tile "eb_thickness" 1)1 v* R+ t: D- p7 k+ ~
- (mode_tile "e_thickness" 1)" \7 q. H' C+ ]# r+ j% I! W
- % B. W2 O0 E( m6 b0 v% F w
- (setq help_entry "modify_associative_hatch_dialog"); s" \, T, L8 O$ n% B
- (set_tile_props)
9 c* C3 |( K# F2 ^ - (set_tile_handle)
5 ?3 y% H a$ N# s: | - 0 Y$ [2 r. j3 @5 G
- ;; Define action for tiles! b0 R X9 @9 \- N0 V0 H$ |; n5 ~
- (set_action_tiles)
8 J* x9 y1 |1 X( _* T - (action_tile "b_hatch" "(done_dialog 2)")
) q( B# A6 a7 R9 u - (setq dialog-state (start_dialog))" u V1 P6 @3 i+ J- r6 ]: h
- (cond
! f. S* s8 T; c, S* r - ( (eq dialog-state 0)! h6 H3 p1 u& M
- (setq old-elist hatch-elist); A& i. e3 F6 v0 N1 y
- (setq hatch-elist nil)+ ^! F: A1 f4 i6 f" B
- (if (= (checkforlockedlayer ename) nil); e. @3 r2 P. Z6 j- Y! E
- (reset)
0 r3 k$ o; u' \" d - (progn ;;; special handling for locked layer reset/ G6 l0 o+ o: f. g( a* U
- ;; unlock the layer1 ^$ X# ]6 i; O* ^& N
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
* G) V4 j+ a, P+ B - (command "_.-LAYER" "_Unlock" layername "")
( F) v! |% P% h7 t - ;; reset modifiction
z- L& V1 P! X - (reset)/ ]) Y5 o# ~5 @! ~7 h0 `
- ;; lock the layer again
/ d8 b- J; {, Q, k* k - (command "_.-LAYER" "_Lock" layername "")
: x: m' e7 }/ O: O - )3 N, _' \' e, ]$ d* ?4 V" K
- )
$ ?6 f6 R7 [; E( Y - nil ;;; makes (ddnewhatch) return nil for Cancel6 N& e" s+ v6 Y/ o- b5 o; G
- )7 v+ |* K4 m% r9 {$ a7 E* ^" Q
- ( (eq dialog-state 1)- X$ ^2 h# c) x3 L
- (setq hatch-elist nil)
: g: b/ B- t3 `3 ^3 u# q# e - (modify_hatch)
9 Z# R# p8 w; p8 t+ C$ ]# ^ - T ;;; makes (ddnewhatch) return T for Ok+ r" W; U$ K( m m7 Y
- )4 L) Q) v9 P1 \/ G1 k8 \9 ~
- ( (eq dialog-state 2)
8 ~ B# }& A r: K1 i% W - 2 b1 J1 f- p. t* t6 c3 `) m
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))" R( w: _" E e, V: [
- 4
8 m3 o2 V! V1 s0 j* K$ e7 U1 k - )
; i4 j) M& f; B1 K: g% f2 { - ;;; new selected layer is on a locked layer
: p/ N$ K5 i; x) m$ F$ \ - ;;; we can simply modify the hatch properties/ @) E+ @8 w) v8 @, q; m
- (modify_hatch)
$ l" G& l8 o( j: J. E1 D$ h - (progn0 R$ P% {! S+ i6 `$ K
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
" ]7 d& L6 I7 h( D; `$ Q8 y - 4
* I/ j$ A& [2 Y' G' D! o" x$ q - ) v+ z6 V' ]/ k. M. R2 g Y
- ;;; We changed the layer previously and now the hatch lies on a locked layer.
8 X+ c" u8 c2 _8 N+ T - ;;; We have to unlock the layer forethat we can update the hatch properties.& G4 P6 L+ P( R
- ;;; If we don't do that (entmod) fails to update to the new layer.
2 W$ L& }) z8 I- Z' g - (progn. Y$ Y- a% H5 r
- (setq layername (cdr (assoc 8 (cdr elist))))0 R- l; B7 Z8 |0 M0 v
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer7 F/ e- \: Q2 n% u
- (modify_hatch) ;;; update the properties
2 L0 S* c+ r: q8 m8 L - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
& o: H w" w) W9 t* z: G( d; f+ z - ): w, B) i7 z3 b3 ~& y6 T
- ;;; All other cases we simply update the properties3 Z5 Z: V' @( O
- (modify_hatch); \* [! A7 e7 B7 }) j' k$ ?5 o7 ^4 I
- )
3 |$ u8 s2 B% G - )
: w# O$ }- F4 \8 @ - ) 6 N) H6 A q2 p4 i$ U
- (if (= (checkforlockedlayer ename) nil)
: w$ J2 ^: K9 o' F/ S% |4 B, @ - (command "_hatchedit" ename): R5 Z% `( v3 s& _
- (alert ;|MSG111|;"The hatch object is on a locked layer.")& i0 ], `2 b Z& f2 i# B. V7 [
- )
! ^7 [) y: N) @' S- m - (ddmodify ename)
8 O9 L1 p7 K$ w _. f% D3 N) P2 u - )
, }; x6 }2 Q0 g$ w8 w - )" U3 _: f4 r9 ?; L) g
- )
& A, F8 V' }% ] L3 K/ c4 m# b - ;;
v8 y( n; V# G7 l, ~ - ;; Modify BODY
H, U8 I3 o% f, @/ r - ;;
8 `& [" r+ Q+ b2 ?0 [ - (defun modify_body ()
/ a" r$ a& V4 l - (modify_prop_geom)/ j3 h& z8 d+ t% B
- (entmod elist)
* ?$ s$ B# z2 f- O - )
+ h4 N ~' `# I, P% C3 Z* p
$ w( _ H4 ^" \- (defun ddbody ()
0 j1 H a8 S/ g$ K% g - (if (not (new_dialog "ddbody" dcl_id)) (exit))+ C! U+ x! e, p" r( Z, D$ J
- ;; Set initial tile values& {) |% Z1 D/ \. g
- (set_tile_props)
' `8 n. s+ @# t - (set_tile_handle)
9 k8 \5 E3 B$ r6 G - ;; Define action for tiles; ^" t+ k! g, w/ x' ]/ Z
- (set_action_tiles)
2 e4 H' X% \: s3 u: n; s* e - (setq dialog-state (start_dialog))
# l; r, j4 s8 h7 b" U8 [2 r - (if (= dialog-state 0)
1 \( C4 h' Z7 M/ o - (reset)
7 m. o% g% T) F$ S - )
1 N5 {7 \$ c, J; ^3 h* w# l a( f7 _ - (if (= dialog-state 1)
5 [# E) {+ H- W1 L! N - (modify_body)7 g7 T0 J, ^& Q9 H; j
- )" R+ o# x4 E9 X
- )
( c% ]7 A- j, U - ;;3 J% S `4 c9 Z1 s: y* k6 G
- ;; Modify CIRCLE5 B2 \+ s4 P8 R! J& B% u/ L8 F4 e
- ;;
- t t, F ?5 b7 ]# i6 @ - (defun modify_circle ()3 G S1 S$ M x: ~6 j
- (modify_properties)1 ^4 z- `( Q$ r' v0 ~
- (setq pt1 (list x1 y1 z1))
2 m4 p- [" r: Y: H" [: }) \$ u - (tempmod pt1 10 1)4 x. T! A1 `0 o; ^. s
- (tempmod radius 40 nil)0 x( H) N% z1 j, P
- (entmod elist)" w2 \5 l2 V( Q; S
- )$ v$ ~5 [2 k) e: M3 I
5 V7 L' V7 P- v$ h- ^' n2 B& y- (defun ddcircle ()$ N# T3 h* T/ @* B+ t1 A6 h) w
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))& j5 X# d5 i1 @! @/ }9 F+ [4 ~ L
- ;; Set initial tile values- Z/ a* g+ H3 |( j3 z6 L
- (set_tile_props)* S; q: i2 w1 c4 r( h# ?
- (set_tile_handle)
5 t- |3 h$ g( | - (set_tile_pt1 1); p) @4 W0 B4 C
- (set_tile_rad)
% q7 ?. I# x$ G' @& @3 D - (cir_calc)
. k% D" |4 ]6 L5 d2 T9 e2 V9 k - ;; Define action for tiles: u- B" j. e. W- g/ u5 ^/ N& ^
- (set_action_tiles)
! N b/ L6 B3 a" t. ~$ M( c - (set_tile_pt1 1)7 Y/ Z1 r& `2 L& ^6 M- }2 M
- (setq dialog-state (start_dialog))
6 [6 J2 v" L1 Y: C% h; J - (if (= dialog-state 0)$ l5 ?1 @+ |( P7 P( `2 j
- (reset)2 R& E! r2 Q6 J- X: ~
- )
& m) _! _) e# s7 a4 I - (if (= dialog-state 1)1 @# n) t" x% P. O! y! z5 V
- (modify_circle), r2 S( {6 v( T. }5 Y$ Y- k9 O
- )
3 t0 C' W: L+ H - (if (= dialog-state 3)
- i4 ]" q- _$ B7 i0 y* l - (progn X/ F9 d4 ~1 t
- (modify_circle)
/ {7 U5 i* M o- Q- G3 s - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))2 J* y% D- q6 A# S1 y8 o
- (ver_pt1 1)7 ~# i, o! P" y$ u2 Y3 W" H
- (ddcircle)" {4 R( b# ], a5 L5 u
- )
! m& g! L; ~9 d( B - )
* Q- ~* M* @9 g- s/ W3 V: M - )0 j. \0 J2 X# ~- M$ X; R5 S
- ;;* M+ p/ e) X8 G, p. j3 t# T
- ;; Modify ARC& O7 H: j# M# P; A
- ;;
$ s+ {9 t* K' J* q' W - (defun modify_arc ()5 k- K" Q6 R) K. ]' A
- (modify_properties)
' N: {8 c" a- M0 @+ ^; b! K - (setq pt1 (list x1 y1 z1))( n( ~# r* E, M
- (tempmod pt1 10 1), Q! `2 |' l/ y. W9 i2 S7 m" p
- (tempmod radius 40 nil)
1 W2 B$ |- Y( N8 f ^: V - (tempmod st_ang 50 nil)1 q( o, w9 m. B. g
- (tempmod end_ang 51 nil)
8 ]% |% S' `% R" J) p - (entmod elist)- q, f1 R) T9 C- ?
- ). V& ]. A7 `; s& T& q* Z; T
- (defun ddarc ()8 j, v+ M) q* Z b6 Z' L
- (if (not (new_dialog "ddarc" dcl_id)) (exit))% k1 B/ C) f; s3 y; Z. J
- ;; Set initial tile values Q1 C# { i# L! n8 |- d
- (set_tile_props)7 y8 g% a4 [2 V1 `, G
- (set_tile_handle)' \: t7 o: u& a; a" }+ }+ s6 T
- (set_tile_pt1 1)6 t6 g j; w& a7 v4 c0 U
- (set_tile_rad)/ j8 T; c7 E2 j) K$ j$ E- p5 [
- (set_tile_stang)( R* w* j0 ]( H$ S
- (set_tile_endang)+ Y& u) w* ]. @/ T0 z M
- (arc_calc)
6 I/ z5 l6 @* l/ V - ;; Define action for tiles
0 C# @- g9 Y" | - (set_action_tiles)
; m9 ~! P9 O- B/ e7 ?' [ - (setq dialog-state (start_dialog))/ N0 T0 ?$ \! g6 e6 Q( ?
- (if (= dialog-state 0)) E+ p* a [. e; C
- (reset)& @7 R' U. K6 E n( Y0 k
- ) Z+ {$ \/ b r: \ y
- (if (= dialog-state 1)
. [" A) n$ [/ X8 G Q - (modify_arc)
% G$ D$ v0 A% [1 e/ |% ~ - )
+ X7 l2 U+ t l1 z' u$ N+ ~& M - (if (= dialog-state 3)4 _" a. `3 K2 K L& r% G6 u& U
- (progn; A) t3 }0 t+ `5 H* r
- (modify_arc)! a$ H3 ^6 d) w6 w
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
) {; ~! Q; C; @7 f) h - (ver_pt1 1)4 K8 N" z# c" v; z" `/ V' ^4 }
- (ddarc); P$ U+ s$ X# a- k9 K
- )
( a% m L( v9 m, ?) `# Y - )
7 c/ p: e. ]4 q3 Z& \9 I% L - )
& i, |- ?+ ~& t# ]6 [, o - ;;) p, m; i% L) z$ O9 K4 C. o9 y! o
- ;; Modify SOLID or TRACE
5 n' t4 G1 y8 a4 s" C - ;; Note the Z value of the object is determined by the Z value of the fourth4 S* c( T- z9 h( B
- ;; point - code 13. Changing the point values of a solid or trace from a UCS# X0 o4 K, [" S4 j
- ;; that is nonplanar to the UCS the object was created may confuse the user.
; ~( L$ Y! k: B! b# Y - (defun modify_solid ()3 D% B& e A$ e
- (modify_properties)
; Y2 E) e! X+ E$ [- O - (setq pt1 (list x1 y1 z4))
: R4 g* Z/ P: m4 s& n) m - (setq pt2 (list x2 y2 z4))1 I$ m) H+ C- Z# o* O' ]
- (setq pt3 (list x3 y3 z4))
8 V5 D$ M' l t1 w" I5 g* b8 M' J - (setq pt4 (list x4 y4 z4)). Y5 ~2 v" A$ O( z5 {
- (tempmod pt1 10 1)
z7 D8 ~. {0 A - (tempmod pt2 11 1)
% e0 k% R9 a, ~- f$ M, n$ w0 ^4 j - (tempmod pt3 12 1)
8 U0 H" O& a& ~) V6 V - (tempmod pt4 13 1)' j, j2 F: h0 h
- (entmod elist)3 k+ ?" \) [. T9 U3 a! V: t
- )
: f' y4 d, [% Q/ s5 q; u
1 O6 j h% U4 b2 d! k/ Y( ?- (defun ddsolid ()& g! |' z8 U5 c+ c5 G( G8 u$ x: H( [
- (if (= etype "SOLID")$ ~! E R3 f) {" D* L4 M' l
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))
* V- Y5 N1 f( w% A# d' V) k - (if (not (new_dialog "ddtrace" dcl_id)) (exit))
) Q% W+ W$ U( M7 J" T" Q4 d" E1 @ - ). B+ I6 K8 r5 E1 G( K) t
- ;; Set initial tile values( T* j/ Y6 v7 l1 G" ]6 @1 v
- (set_tile_props)
# c- `+ j. W% E! K# G/ O, p - (set_tile_handle)
: j: A y* I9 Q5 N# h - (set_tile_pt1 1)" d- V3 s) [1 W' ^3 N J
- (set_tile_pt2 1). T* K3 x8 j8 m5 l" `- V
- (set_tile_pt3 1)
/ b9 g* n% n: w" q - (set_tile_pt4 1)
6 F) O/ b2 `+ s - ;; Define action for tiles+ \' r: Y- o: b$ o5 q/ A
- (set_action_tiles)$ } T9 L# o% I1 q
- (setq dialog-state (start_dialog)): O# b0 M8 I( A) J
- (if (= dialog-state 0)& x7 C* @, _) q3 \0 U8 Y
- (reset)
, R6 E8 c5 E" M& }5 ^" p- z2 { - )
, E) ~ U a& i, F# [/ | - (if (= dialog-state 1)
: q* v6 Y# s. a0 o2 K6 t% m& g/ Z - (modify_solid)
) f1 T) R: G& K2 B _' S - )
2 w: I6 b2 N5 _$ Z, \ - (if (= dialog-state 3); M7 U3 v3 B2 W
- (progn% ^; |# W$ h* o: V, v
- (modify_solid)
1 N/ c$ l2 E$ k# | - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))3 L* {8 G. W( C- H. S
- (ver_pt1 1)& P8 \& s- Q. w: {
- (ddsolid)
4 a [5 }2 |) j4 T( A( c: |2 Z: L/ P9 \ - )
- E2 u6 M' D \2 y, l& ?! @ - )
7 O, X& T0 m9 n+ K8 T9 x - (if (= dialog-state 4)* r4 f4 @3 Y6 g4 o/ O V8 J
- (progn
: \3 b/ }7 r% Q @; b3 f - (modify_solid)
9 S$ J- E; ]5 ?$ K ~ - (entmod elist)
3 j/ E( D H, f" G" \; u% f - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))" j1 W; K& i2 n4 S
- (ver_pt2 1)' f: a( q/ l: S+ L) `2 }) }( m
- (ddsolid): z4 V4 a4 a6 t/ A' T3 X9 v
- )8 z1 W( ^5 Q5 F/ p* z4 [
- )
$ |2 l! W" j# H! U6 w0 p) z% q - (if (= dialog-state 5); D) } {5 }) q
- (progn
( B) j& j, \) K. o - (modify_solid)6 k% f) k2 b1 e* H8 G# x9 `3 ?
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))1 b: h$ c) m- s9 p
- (ver_pt3 1)
& v) g( ~; U f) P - (ddsolid) K# R5 m" {( m4 ] z" ?) o/ t
- ). E" g0 U0 _" ]3 u. z- {0 ?
- )
' S2 S. h. e% F0 x3 w) u - (if (= dialog-state 6)
; e" p7 T6 H5 ?& C) ?* @ - (progn
( E$ K: Z9 g+ l3 B5 X/ f - (modify_solid)- b3 n7 c! I- E3 r% D4 ]1 S
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))6 e, e- L7 f t8 n
- (ver_pt4 1)9 o* S, \* d2 A& p
- (ddsolid)' p, C- f& L5 K: P+ D" j
- )) D: R8 Y. \ ]7 A
- )2 D) f5 O. f# z
- )
W3 c0 A2 u: G: m4 g+ L3 q+ ^+ F - ;;
7 X W! M# @) E4 `+ ]. C8 T4 J& | - ;; Modify 3DFACE* p e' e6 u+ A/ v6 B1 y* H' l
- ;;
0 C( J* s5 p1 `# ]1 s - ;; Check visibility of edges
) W1 N I0 w6 i& S4 t - ;;5 Z+ q9 G t/ U5 J
- (defun edgetest (/ bit1 bit2 bit3 bit4)
. [; f/ W7 i" g. C, O- V5 z4 Q$ A - (if (= edge1 "1") (setq bit1 0) (setq bit1 1)); v) N; g6 d$ b- c# }, i f
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
/ T. K& E! ~7 }" W) _ - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))/ k2 p# u% h8 I8 ]3 N. _! L
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8)). {' u. d9 b8 B4 J
- (+ bit1 bit2 bit3 bit4)
7 s- W; k- `% P$ V* L* w. j% ` - )
' V2 Q( h i0 A/ l7 @ y9 j6 P
" b! {* o, b0 k+ k- (defun modify_3dface ()
6 V. Q. v2 b& Q9 N - (modify_properties)5 j6 w& w+ o0 k8 F' L5 p' S5 O
- (setq pt1 (list x1 y1 z1))6 X( W( b8 M& m* O, s
- (setq pt2 (list x2 y2 z2))+ g, M" ^; n% M8 m
- (setq pt3 (list x3 y3 z3))" O+ a" i7 }' j+ j( t9 J6 V
- (setq pt4 (list x4 y4 z4))
, |9 O( s. b! {& x9 B& r - (tempmod pt1 10 0)' D# t0 D3 H) U: R& ~
- (tempmod pt2 11 0)& _" _6 L2 D- d4 P A
- (tempmod pt3 12 0)
1 R7 N/ @7 E% _8 }8 A - (tempmod pt4 13 0), t. |6 j6 H# G. z
- (tempmod (edgetest) 70 nil)3 S W1 k: s. ]1 ~6 p
- (entmod elist)9 e; d3 Q; g1 c. [# V% ]
- )% r0 }' a- G! A! N7 v( H
( _" N* a8 `5 t+ c/ Q- (defun dd3dface ()
( D* `# u1 v, U" F7 K. w7 B0 O - (if (not (new_dialog "dd3dface" dcl_id)) (exit))8 y1 F4 }, X9 V' U
- (set_tile_props)
0 |% m0 `3 P" Z' c) ]: g/ x - (set_tile_handle)
I* Q/ t/ l1 n9 V+ Z5 j( v# z - (set_tile_pt1 0)2 U# o% X# h3 _% d+ l1 B4 F, w
- (set_tile_pt2 0)
* I* |9 \: K2 C# t - (set_tile_pt3 0)
, I& k& a9 ~/ r. n- v* X h - (set_tile_pt4 0)) L* p2 [/ ?' w0 X
- (set_tile_edges)# _0 X" f+ C' a& ` F1 k! F) {
- ;; Define action for tiles; d, |+ V, C0 G( u: N
- (set_action_tiles)
! w, U8 Z# z T - (setq dialog-state (start_dialog))
) F( M2 |' [1 h, ? ~1 ] - (if (= dialog-state 0)% @2 I4 d! V' Z e, D- j3 g7 G' f, I
- (reset)
* Q8 D9 Q" B! W; C - )4 I9 ?$ F6 }# }0 C& q
- (if (= dialog-state 1)
! b9 J: Q( ~* i* _1 F - (modify_3dface)8 K5 M9 ]" P: E" Y1 w/ r5 p
- ); h# u+ p4 L: `4 R. i
- (if (= dialog-state 3)
0 Q5 R2 J: P6 f+ j - (progn1 n1 p) n, ?+ g* y4 X* M
- (modify_3dface)7 y: ?+ W8 U& m: N% _$ k- p
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))$ @- t4 j# q) s( @, a- I
- (ver_pt1 0)4 H4 k/ y+ R/ T! f# k! s
- (dd3dface)
3 @ ] x+ ]& P% L" A$ @ - )6 a. p; \. P4 Y% P; N5 K/ R3 _
- )
3 x2 h0 b' g/ s* ?3 n, H3 ~ - (if (= dialog-state 4)' ~ U$ l& S9 _& k3 P' j9 j; A
- (progn
' Z. d" h6 y9 n$ K - (modify_3dface)
2 X$ v& ^$ H- X' O - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))! O) n4 u) k3 \9 ^* b9 j+ _& M
- (ver_pt2 0); @) O3 n6 I+ H; C0 A# } W. j
- (dd3dface)
* N5 v( u- Q. N" h! e/ x( V5 e - )
. H$ w/ M7 g! [0 x - )' W$ s+ [0 g+ C3 E( i `
- (if (= dialog-state 5)
4 C: h! I/ t; C! _ - (progn+ \" c% k- l) f5 k9 u5 g
- (modify_3dface)$ @8 E* l5 F7 v3 f* W" a
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: ")); j% V! v) O8 b4 v) `! V- d- p7 Q
- (ver_pt3 0)* {- y; T$ D, t& Q3 u
- (dd3dface)
4 N3 a1 Q# U! |( Y$ \' q, W0 } - )
* R6 M* x% ?! Q" ~1 [# t; k - )
2 ]) @! t# t* z+ D8 d( B - (if (= dialog-state 6)( Y3 g4 k; z3 ^+ q! q0 s4 ]6 M4 E
- (progn& a7 u+ f' r2 R: Z
- (modify_3dface)
; p* p9 t! E7 o - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
: g; i# I6 `3 _8 ~: N - (ver_pt4 0)# t5 }0 }% {, W
- (dd3dface); L% x5 W. X; M' d% I" b
- )4 D$ k2 A5 q0 o9 i( y+ M) f+ b9 r
- )
1 _ V$ N8 L! c$ @" @. F - )
' n/ [: U/ R2 f0 o
4 x- V" u. f4 A& Y' w- ;;
) k" ^; x( H# { - ;; Image functions
( |1 s& z) Z& W7 U1 f1 ` Q* `: F - ;;/ c1 T; N6 @3 s% Q- c1 X; J
- (defun image_scale (/ upixel en n userscale temp)& @" J k1 {/ x& W+ Z8 o2 w
- ;; Calculate the size of an image pixel in AutoCAD units
/ w. s H; E( \& t- z+ V3 J - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))+ d9 |5 U9 x2 @* T
. e8 b! [, W; X! _( P2 H1 u$ x- ;; Retrieve the user scale
4 m) u6 h$ l: ?* j! [0 J. g - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))& y" w1 o M, T" ~& T
) X4 {* Z H& F; W9 h: E- ;; Next, extract the image units and pixel resolution
1 D0 {1 t ?+ O9 y - (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))- M0 |* x6 |9 {& u' p! \
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))! z2 a3 ^ L; B/ h4 I' p
- (progn- Q4 W) V2 s0 Y9 E
- ;; Convert the user scale to the proper word, a: Z" ]5 D* f" k0 w4 l* a' |
- (setq n (cdr (assoc 72 en)))5 _/ S: k# M1 O& ?+ ]2 d- m! N. k% K
- (setq temp (getvar "LUNITS"))9 {* Q' i8 I; f' v5 ]' N
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5)). w' x8 q- q# P% T
- (if (= n 1) (setq userscale "Millimeter"))' c' w: u8 X+ G, Y0 t- s* ?8 P
- (if (= n 2) (setq userscale "Centimeter")); z# C7 i% t! u4 R7 C @# O
- (if (= n 3) (setq userscale "Meter"))$ z4 L# E( j6 J2 y
- (if (= n 4) (setq userscale "Kilometer"))
& I$ ]2 S, k/ p; f - (if (= n 5) (setq userscale "Inch"))
* y2 J8 r$ Q. E4 w, a+ }& J4 C# W - (if (= n 6) (setq userscale "Foot"))
6 {) A- Y! I: _1 {& ]3 P9 K& B - (if (= n 7) (setq userscale "Yard"))
& O: d5 _! f, J4 j$ o - (if (= n 8) (setq userscale "Mile"))
* b( G) M. m) F9 ` - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))* m5 |9 d V9 A6 [
- )% G$ c6 W% o; f: G
- )/ ?! t% h; l" Y- k
- )
6 S7 D/ K- d& }( n5 {6 o* p - * T5 C0 R: ~7 ^9 G4 u
- ;;( u0 b$ A4 s. A% v+ K, y5 T: B
- ;; Scale factors for block insertions& |% X. K, r1 w6 }: z
- ;;9 O( ^ r/ w5 s4 D2 @
- (defun image_set_tile_scale (/ temp)4 d3 i" V$ D7 X4 m! k/ R# |: L
- (setq temp (getvar "LUNITS"))
8 D' F2 d0 I/ @. z# [& S7 d& ` - (setvar "LUNITS" 2)$ |4 o+ V$ b9 H+ g @! Z( ^: D( b! d
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
- b3 r% U* w$ i4 R# d4 e+ N" h - (set_tile "wid" (ai_rtos (* image:width image:mult)))
! k3 K( Q; g6 f* T - (set_tile "hght" (ai_rtos (* image:height image:mult)))
; P' b. n+ c8 n$ p - (setvar "LUNITS" temp)
e' Z7 z3 V' t H' m - )
1 @) u0 {# J6 P3 h9 M4 v
- P- Y8 t( s: i- ;;
9 d9 g* R1 c; y% i- O - ;; Set the scale, width and height values appropriately.0 K1 w5 t2 s3 C5 D. w$ ?, p& b! T
- ;;$ e5 a# _% w, M* T# [1 K
- (defun image_update (field value / orig_value new_value mult)$ O/ x8 o7 V e! E! Y4 \
- (if (= field "xscale")8 Q6 J5 F* \( M3 t* c) N& i
- (setq orig_value image:scale)- D8 ]0 J$ j0 f; S. @; ~- c
- )1 z0 t. N& f+ P# }
- (if (= field "wid")
' e! ]2 u6 }7 z1 P$ D - (setq orig_value image:width)
) ]& G. `5 v! p, S( { - )) J( C9 Q) D* S/ r" [' V( ?
- (if (= field "hght")
5 r/ S1 r, W# _7 R" D! L - (setq orig_value image:height)
( B; y" |# v7 ~6 C. ~, J - )
, M$ z* R" q3 h) y+ N - (setq new_value (verify_d field value (* image:mult orig_value)))
: N H4 j# v+ i. h - (if (/= new_value old_value)9 I' M0 O( [* T6 {3 E3 N# l# Y
- ;; Make sure the user has entered a sufficiently large value2 |6 `- U: K9 k- |6 B
- (if new_value5 Z2 D# x) H* X1 _6 P: X
- (progn
" J: T/ l& z& d3 G - (if (< new_value 1e-8)7 L2 p1 e a4 ~3 b
- (setq mult image:mult)
- w5 V3 n1 z' m2 u; G0 Y5 I, u - (setq mult (/ new_value orig_value))! ^/ X, Y {" ^& t7 ]* k1 T2 K
- )' J9 s% z, K4 z. S" d1 j3 z% w
- (setq image:mult mult)
) T& Q' l9 @2 b3 p. { - (image_set_tile_scale)
! F* Q8 ?0 ]# S% ?% @' z, R1 [# ^9 E - )( M& R4 @) u$ R7 Y/ N
- ). F# s, S! _1 ~$ Y
- )3 K$ R) H" C$ F& i F
- )
9 ^: B1 d# L* ]' U& T4 z! B* t6 l - ! v8 Q& G3 i& w, L( Z
- (defun image_disp_opt (bit)
{$ v w; [; g) U - (setq image:options (Boole 6 image:options bit))
! D4 m& d3 Y. v: z - )
: K i# k- ]' F. P. ~* P - S" s* L9 n9 N3 b& H( N
- (defun image_modify ()
# S- q2 f2 k9 ?( w - (modify_properties)* Z0 }, c+ e, ], ^3 X% I5 O4 u0 J: Q
- (setq pt1 (list x1 y1 z1))! @* L S+ N: K; [& ?. m: k& F
- (tempmod pt1 10 0)
; o/ u. j( f% Y3 y9 H - (entmod elist)
) b x0 {( @; H# ` - )
6 P3 ?' {1 Z# d4 B+ U1 i - + J0 t) a2 C$ V; r9 Y2 a
- (defun image_clean_variables ()9 N1 P: s. \0 N" [& e. T
- ;; Clean up global variables used here. @1 {! w, R% p d( ~
- (setq image:scale nil)
?) z, y& `) t - (setq image:angle nil)( ?' I# j% X" p4 Q: [0 `
- (setq image:width nil)
0 l0 S& X/ d( a k: O: D - (setq image:height nil)" A, [! D4 [, g/ \" n8 k5 O' t
- (setq image:options nil)
3 X5 S) Z$ v8 s% z) F& \- ? - (setq image:oname nil)
2 b6 E3 ?2 g# y' g - (setq image:olist nil)/ |4 D/ H: w* a9 Z I% Y; T1 f
- (setq image:mult nil)& P) m3 K! N' U1 o" T! F
- (setq st_ang nil)5 i; B! ~5 M% q3 O
- )
$ b) m5 _2 r! }$ Z - 9 I1 n8 {+ Z' ~9 B5 Y, ~, k% L
- (defun image_scale_vector (v1 value)' C- J, F" m! q! A$ ^1 k
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
+ e. x# a$ q0 h; u0 }- D+ ?$ F8 ` - )) V; |+ s* }$ x8 T
2 ^5 I% J" i" h% n- (defun image_cross_product (v1 v2 / vx vy vz)
3 S2 v! m5 P/ n% U1 L% I - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))* x- `! {2 @2 ~) @
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
1 Q4 y; ^ ^$ \8 d- ? - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
0 B6 `5 T6 w: u/ X; T8 x- m1 \0 L - (list vx vy vz)0 D4 \3 @: e) ~% J3 i1 T
- )
% y4 N0 y! H( W - 5 e9 b# V9 ^" M
- (defun image_dot_product (v1 v2): y* _# F6 B+ k0 T2 w# X f
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))$ t! i E: ?" x5 y+ }+ P. G/ e
- )
/ v& _. D" r E3 T6 R8 D, V - + ]3 J2 d1 }4 m8 R, ~( d8 @5 o; B
- (defun image_add_vector (v1 v2)0 q, c2 }8 ]% T
- (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))8 y7 Y) s* }$ Y# k0 A
- )
A( s2 h" l, S( j( Z( Q. S- E+ J. U" t - 0 i4 W- U- p/ q0 z# c' t) c
- (defun image_subtract_vector (v1 v2)# h& Q7 q% V5 o9 b2 V& p# l2 M
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
* i) _* L3 C; N - )0 G7 x( ~3 U; [1 W, c, {* }
- 6 s5 {8 X9 Z$ a% A
- (defun image_normalize_vector (v1)1 o' R% G; l6 `
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
4 u6 Z" R7 }7 ?& _* M - )
- v4 o- a7 B o' S S+ g3 ? - ! {, C% z$ y3 p% u, a. X; x; K
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
1 \3 u' {, T) X - ;; Normalize the axis+ E4 C3 r% x" V. p7 _7 A" a R# Y
- (setq axis (image_normalize_vector axis))
' @% k( _2 [4 y6 @, R - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
) S. x1 m( ?! }8 D$ [ - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
2 f2 j- \ o8 o - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))3 [5 {: L- M8 F5 m
- (setq in_rot_plane9 p( Y" R, C4 |6 S7 N
- (image_add_vector5 ]% g4 @9 H$ Q$ o+ X
- (image_scale_vector axis_x_in_rot_plane (cos angle))
# \' A0 K5 u' M2 w$ X6 f) T - (image_scale_vector axis_y_in_rot_plane (sin angle))
9 o6 H7 V) _+ r4 } w - )! `5 ^; |6 Y) e. ~3 X/ _
- )
/ F4 E) }/ i) z/ R( x# e4 _+ K7 k+ g, @ - (image_add_vector along_axis in_rot_plane); K4 B) y: T. d/ B. r
- )
" m" X f4 m; D
; v. }( w/ k6 O k+ U- Y- ;;9 I: U8 m+ k* W4 i O. L
- ;; Calculate current rotation angle if appropriate.
9 |6 ~9 O9 @. s; [) i1 _$ S - ;; If not, grey out the rotation field.
- \2 G+ n1 Y( r7 y) X5 N3 T - ;;
$ }- |( J2 \' Y e% p0 l3 K x9 ] - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
8 {6 A7 e& Q8 ~) u2 [# | - ;; Determine if image normal is codirectional with ?# y9 q0 W, ^3 J% u7 F5 W
- ;; the current UCS Z-vector.
# a) s2 q) f; N5 g - ;;
& `3 n; G7 ?7 j# ?* | - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))/ ?1 Z; c o, W
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))% F1 W/ A' o- Q5 R: [' t
- (setq zlength (* (last normal) (last normal)))
: H1 r' a# h% k7 g+ q - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
5 J* {' `1 U1 }% u* z9 M6 i7 \. _8 r - ;;( h, ]/ k2 S& u1 E! F0 L: L
- ;; cos(.0001)^2( q% J2 O3 s/ B; R6 W# i5 f
- ;; Tolerance = --------------1 W$ g; a" @: }: m' K# b: v
- ;; sin(.0001)^25 _& [( V j; d$ {, C6 \
- ;;) i, n# O$ O! d3 q' f: F7 T7 E0 |
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
, L1 E7 V( T& L* x. B `; ?8 ~7 c+ I - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))5 A& F1 t8 ~: U4 u, _4 H- w
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))% S. @9 C. t6 w6 ]" i8 t& m% C% J
- (progn# }9 g3 [9 O6 ^4 ~! m1 b# `
- (mode_tile "st_ang" 1). P* _7 j7 D9 b" B
- (setq image:angle 0)+ z7 f1 [3 ?! G E5 C5 _
- )5 W: o% b% E/ O( _! r
- )
5 F7 N) r* l" K! g - )
+ n8 @0 b G% r/ E) o/ B' |5 B - 3 H& b R* W. x5 k; b, M$ v( q
- ;;3 X3 ~3 [/ x5 |6 n4 _. a( H
- ;; Modify Image
* q, W- _- P1 s - ;;: j* C" T3 A* g
- (defun modify_image (/ u_vector v_vector z_vector)
$ S" F. p+ e' ^ - (modify_properties)* w+ U7 }$ Z) u5 H0 m
- (setq pt1 (list x1 y1 z1))
7 h* t: L6 }9 t2 P( T - (tempmod pt1 10 0)
3 h |* V( k k/ Q% G; W7 U4 x) V - ;; Make display option changes to image! e+ {4 C1 t& `( A( ]/ M0 C
- (emod image:options 70)# U! E) a& D0 B# F
- ;; Get the u and v vectors
9 l# ~% A! x% {+ j/ D: H7 H - (setq u_vector (cdr (assoc 11 elist)))
. z4 N8 u8 `4 J/ P8 \ - (setq v_vector (cdr (assoc 12 elist)))" n+ ^) k, {7 k9 ]: @
- 6 r2 L7 W; K( e, s& j1 x
- ;; Make scale changes to the vectors" x! S# P$ q6 n0 Q- c
- (if (/= image:mult 1)
* C& w* ]! g9 i ^1 _ - (progn2 W% m7 S" O( w. D/ A- ^9 i
- (setq u_vector (image_scale_vector u_vector image:mult))
4 j: b. _0 n" o3 h, L - (setq v_vector (image_scale_vector v_vector image:mult))8 {( X8 ?$ w$ `8 b' R
- )
3 y: w# l4 r3 j; W+ H - )- l& g, \ E' h$ y a- |. p
- ;; Rotate the vectors
?$ f& J; g5 k. F- t8 ^ - (setq st_ang (- st_ang image:angle))$ c5 i2 p7 e) S( v
- (if (/= st_ang 0)
8 m% ~/ P" ?- y7 W P4 E" s' i - (progn$ [% B/ O8 V: E! l3 P0 S! ^
- (setq z_vector
. B1 a* M% S! H' `6 i' t; _0 ?) J2 ^$ e - (image_cross_product
4 o2 }8 ^! U. E+ Z( O6 b4 Y/ l* r - (image_normalize_vector u_vector): l% _, @+ U- h" b9 ]% y
- (image_normalize_vector v_vector)& {' v- B: ^! D4 ^4 q& m; G
- )1 p- ~* R5 }/ m* p5 a# x# J
- )
! z! U5 t+ g! o# P6 A# y8 b% e - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))- h- \9 N1 o- ^3 `' a" J
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))9 C- ]) E$ z. U2 E' a% ?$ L) V
- )
6 w* S- { U1 Z* P; W - )
( u2 R) m/ N% I/ [ - (emod u_vector 11)
J7 q7 q( ~3 t - (emod v_vector 12)
: ^4 h7 m% F. b$ `8 k7 N- r - (entmod elist)% i( A0 B2 o8 Z; \, `% b5 h( D- i
- )! {' D% R/ D# I5 _' m4 m
- * O1 E$ X/ s# i1 f4 Q1 g5 V
- ;;, |% e6 a" ~7 @6 h1 J7 t5 B' v7 z' v$ O
- ;; Run imageadjust on given entity, working around possible
: k0 w8 D% W! y6 ^1 d) A$ C - ;; re-entrancy problems p& U: ?6 }# Z; a
- ;;* ?" ?1 C* @2 m- d" r1 h
- (defun image_adjust (ename)
- L% t( y8 u9 `& v5 ~8 T - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...8 f5 a$ ~* i2 h$ v. N5 ]0 W8 H
- (imageadjust ename). |- Q% E" G! p3 t
- )
9 H3 ~8 H- s' a" H( e: W; g5 F
( e) V/ P% f' J9 D& r. F: P" j1 G6 q& q- (defun ddimage ()
% k, \; g: @9 Z% x1 }+ c$ W - (if (not (new_dialog "ddimage" dcl_id)) (exit))( M$ B% x/ \6 q) Y" S, t
- 5 n3 d/ O( \! P
- ;; Grey out the thickness field.
; o' C' |3 {5 S9 E - (mode_tile "b_thickness" 1)% f8 O* q A1 h! I4 u* p
- (mode_tile "eb_thickness" 1)
% B6 m: B! b, s- o9 p7 y
4 D" y Y% m ?& Z0 X- ;; Get the associated def object.6 p Q* _; l- X* X
- (setq image:oname (cdr (assoc 340 elist)))
4 [ P; W a, U - (setq image:olist (entget image:oname))
5 O% \7 n7 q* a; z6 S$ h - & y4 u$ a. ?; y- l n1 m g
- ;; Set initial tile values
4 M4 c" w: Y* X! [1 ` - (set_tile_props)
# g) f% }& G! {/ r - (set_tile_handle)
" k8 P: t- q9 t7 A6 j$ B' f - (set_tile_pt1 0)4 H3 s+ w9 @4 ^) t
- (setq image:scale (image_scale))
' b/ F) W- g: F) L' o: C) m/ T - (setq st_ang (image_rotation))+ @3 X4 L# L: W1 p( z
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))/ T: ^* |. E% |
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
. u% V% n% x5 R" Z - (setq image:options (cdr (assoc 70 elist)))
3 U8 z; e; x, O9 L - ( K0 W3 n# m1 f P
- ;; Record the last multiplier for use in image_update function) W' F: a) b/ E. q
- (setq image:mult 1)
, F; p; C' p. A6 a; s& J! g% e - 1 T' r6 a( U J3 O
- ;; Retrieve the image name; R5 y I; n' W# k& I: z
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))
) L+ @6 J" u) }) Z. i: Y - (setq flag 0)
' w7 L/ _$ _+ g* d - (foreach n fn
1 _1 Q3 [% L x6 j8 \9 Z" | - (if (= flag 1)& B. s- t# w4 W" E
- (progn
; s& I" }2 q* z% r, v2 I/ }* ~/ C - ;; Display the image name: \- q4 S( T7 k- \7 y( C3 B
- (set_tile "image_name" (cdr n))# k+ d3 g: U$ Q2 B- p' q, h" y# ^
- (setq flag 2)
7 U3 A _9 O& _# u( A& x* ? - )
, R& C$ R* N7 s4 {2 g5 t5 U - )" F/ R+ a; B: e4 Q8 c& E: N( A# i) D
- (if (= flag 0)
7 r) L; l! N9 r - (if (equal (cdr n) image:oname) (setq flag 1))
* F T5 e- ^* a7 I - )+ h5 _, Z7 E) b( j3 p: g+ S
- )+ f7 T4 V& H e$ x; x. |
- , Z0 }" ?! F" G. r
- (set_tile "image_path" (cdr (assoc 1 image:olist)))* C2 U) t3 \( e
- (set_tile "st_ang" (ai_angtos image:angle))
8 M6 W" C* E1 N, Z) y2 ] P* I - (image_set_tile_scale): k2 Z2 K0 l! x8 q* v# Q, O4 ~9 [
- & c# f5 j/ W1 P) v' w% T
- ;; Check the appropriate boxes8 `* z) O2 \" t2 u
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))) S4 f. X: X( H
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))$ n8 N" R3 o. T8 `+ v
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))/ a1 s* w6 D5 G* I) ^- i
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))( S% C1 x4 i' Z# H& I r
! M. i/ R# Z+ I1 u4 t9 C; \- ;; Define action for tiles
( @- z/ n6 k% T0 { - (set_action_tiles)
- }3 Q( |7 ]6 |/ Y7 ? - (action_tile "xscale" "(image_update \"xscale\" $value)")
* L6 x) r+ K( x, J7 c* [: i - (action_tile "st_ang" "(ver_ang1 $value)")6 L& Z" g. y! l/ ^6 [# \
- (action_tile "wid" "(image_update \"wid\" $value)"): j. N1 W$ l$ _6 ]
- (action_tile "hght" "(image_update \"hght\" $value)")
- _. n+ ]) `7 a6 _" @: e' h) q - (action_tile "image_show" "(image_disp_opt 1)")
) P. T- K, z" P0 a6 m$ i8 L- C+ z - (action_tile "image_non_ortho" "(image_disp_opt 2)")( p( n6 c% o3 ^
- (action_tile "image_clipped" "(image_disp_opt 4)")% {& L$ F3 l. B2 L- j1 b/ \' l
- (action_tile "image_transparency" "(image_disp_opt 8)")
$ R2 z- B6 f# k( n' j" Z, V/ I - (action_tile "image_adjust" "(done_dialog 4)")" V9 U( A5 v$ A
- # b% ^! k. Z$ \5 K+ u
- (setq dialog-state (start_dialog))
0 u# r) }- O1 s' l - (if (= dialog-state 0)
0 m( W5 S0 H7 Y8 j* A* E - (progn6 f: g# f9 s: q2 O) U
- (reset)
) \ X9 m0 L. X! [1 N - (image_clean_variables)
1 E1 w& L: q, a( @0 ? - )6 _4 Q1 }+ A& w; L0 d- ~
- )
. T" W1 d- l2 Y7 t$ G+ h. e1 V7 Y - (if (= dialog-state 1)" L& r8 O/ A1 [: N5 D2 v) P5 c/ b
- (progn
& p: p# v! ~+ q# ?7 ? - (modify_image)( k$ A9 g, e/ F$ a/ O& Z+ [
- (image_clean_variables)6 [+ i7 b, B, \; Y7 ]) `3 X7 d
- )
. ~" T) u+ f6 C# S3 D- M w1 Y0 A* x - )6 X3 x; d m h. c1 ]
- (if (= dialog-state 3). B) X# [# T/ j- X7 `
- (progn
1 @) O+ w7 [1 X3 T - (modify_image)3 |; H; G2 u' ~) s% F( O
- (image_clean_variables). K0 P* i5 S6 q* W* ?- h; x
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
4 Y4 e8 F. ?7 _' k8 V - (ver_pt1 0); G5 Q$ o4 T4 X$ f( T& O
- (ddimage)/ G: U, T- Y! Z L: J
- )
- S. A2 c" z% }" C2 E - ) e, g0 t) u* @9 `6 `
- (if (= dialog-state 4)
i4 N& J( W' E$ j- k - (progn
! b t' |, ~0 @2 c' j# B - (modify_image)4 X. I9 W. i0 C% ^! v+ s
- (image_adjust ename)/ A. @7 {* U$ p
- (setq elist (entget ename)) f9 z/ Y) ]& `6 s3 ~! G* ?' g
- (ddimage)7 M' k3 }/ d8 r* [- B& @7 N2 `5 [* B
- )
1 p( u& s; e+ a- j - )
8 D0 h! C4 q5 ~% l; k) n - )
% [5 I% P* d( l& ]5 U0 p+ @ - 8 B1 M' X! [- S9 e) r( r+ |6 X
- ;;
1 p& @3 K0 Z4 ] - ;; Modify BLOCK (and its Attributes, if any)
$ l* m8 u, W- P: U9 ` - ;;' A; f; A7 ~/ c4 q
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
2 u1 z, o3 s4 V0 s2 } - new_wid old_wid old_rot scaling old_scale4 q$ M1 m7 k9 [7 Q
- xdelta ydelta zdelta xbase ybase zbase ipos)
0 p; K+ ~' e2 s4 b+ v% U - (modify_properties)
, G8 u/ p, B. S' ?5 e
" K0 N3 ^5 i8 e- ;; First, translate and scale the Attributes, if there are any. G5 |8 A) d; l" `' I
- (setq old_rot (cdr (assoc 50 elist))( Q1 E' ^4 X4 Q- [' y
- old_scale (list (cdr (assoc 41 elist))2 a z6 z7 I7 Z& [; d
- (cdr (assoc 42 elist))
! D x/ c0 j$ u5 v/ N p; q - (cdr (assoc 43 elist))5 p$ U: L& j! b( W# }' g( F
- )
1 z2 v- V- u( J0 r* Y X - scaling (or (/= xscale (car old_scale))! D7 B$ U# ]* L0 a
- (/= yscale (cadr old_scale)), f9 i9 P/ s. w% I1 m& `& Q) U
- (/= zscale (caddr old_scale))7 P3 o& {; y, z8 v3 D0 c2 u( r1 _% R
- )
+ [) j* B) e. Q, c" G - attr nil ; No Attributes modified yet
$ Y e4 c4 Y* c7 O% E, E8 {3 C - )
, J. Y" q( t; A5 p/ z4 T - (if scaling$ _& v( r. V% p. y* L5 ]5 ^; E: I
- (progn
, G8 _5 ?/ d- L4 | - (setq xdelta (/ xscale (car old_scale))4 D0 I8 {( g! p3 a. s/ ^$ w) p
- ydelta (/ yscale (cadr old_scale))
3 k% r9 a: q, ]5 U/ ]2 h: U. ~6 ^ - zdelta (/ zscale (caddr old_scale)) b: i, G/ e% T9 o4 d1 y% T1 t6 o1 o
- ipos (cdr (assoc 10 elist))
* Y: P1 e+ T2 [* K1 d. N( d" x - xbase (car ipos)& a& e% x+ S7 R
- ybase (cadr ipos)
, F6 g4 ]5 N2 E - zbase (caddr ipos): F9 X% d( b5 G' v. ^
- en2 (entnext ename) ; First Attribute
0 F, N: a- p5 E0 b* p - )7 @% s: Y0 K" K7 j; Z- q
) D3 r2 i N2 ^- ; If the Block is rotated, temporarily un-rotate it, along6 F1 A! P8 a0 h, C3 E
- ; with all its Attributes, so the scaling/translation of the
( u' W' G: U0 c, ^ - ; Attributes won't have to take the Block rotation into account.6 \, s. y) K" ]/ v
- (if (/= old_rot 0.0)% t" h2 Y" K. b9 D# a
- (progn
& n3 h+ _ v6 t; l9 W7 G - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
: w2 h4 j9 G8 M - (setq old_rot 0.0
+ ^$ l2 ?! G X4 u) a4 i# j; B1 F" H' R - elist (subst (cons 50 0.0) (assoc 50 elist) elist)
& `& c: F/ Y4 z# M; I; B - )( d$ J5 t# J4 ~. P
- )
$ e+ r9 Y" {4 J, V V X - ) v# W7 A/ m! ~. i
- 7 L T6 o) h8 h$ {3 q+ B) v
- (while en2& @0 {* l6 o/ A7 ] y0 z0 T
- (setq el (entget en2))# L: w- P2 v- L; c
- (if (= (cdr (assoc 0 el)) "ATTRIB")3 W" ?5 P5 l, i+ f
- (progn
. i1 [2 m! G: t0 G8 d - (setq old_hgt (cdr (assoc 40 el)) ; Height, x$ W, K3 j) p1 v$ p4 e
- old_wid (cdr (assoc 41 el)) ; Width-factor
u+ X9 z$ h6 Q# P - oldp1 (cdr (assoc 10 el)) ; Generation start point
& v2 i; q m7 @; @6 B9 O - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt T. d3 j5 L( Z1 y- O! @+ }
- ha (cdr (assoc 72 el)) ; Horizontal alignment
( {8 C$ K1 v) H& L - va (cdr (assoc 74 el)) ; Vertical alignment8 P c3 g# R5 f' ]9 c
- 4 L* Z3 M0 k% d
- ; Translate gen. start point
+ j: Y0 Z; g" f9 C - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
6 q9 \* T2 A, x6 ?: i! ~3 y$ I - (+ ybase (* ydelta (- (cadr oldp1) ybase))): w- f0 L# h2 ?# V! H
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))8 Y5 h% M6 T$ f A0 S- q
- ): y \) I+ g- ~1 _' `) e% e9 I
- el (subst (cons 10 p1) (assoc 10 el) el)
4 J1 `6 F% t, {8 [5 G: P% F. D - )" X% T& y1 M5 a2 A; {* q- |
( M9 _1 N. U, m0 _8 ^- ; Translate alignment pt similarly, if present and applicable; Y' O9 D( K& O1 I$ J
- (if (and oldp2 (or (/= ha 0)* C; p: I: d/ ]8 G( x5 y" l# w$ s
- (/= va 0)
; I6 A" |# N2 w; h7 ` w. }. o - )8 @. Y# k1 _3 ^ H
- )/ s" j |9 }2 l" @) i; @ n
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))8 V% t. l8 @: B; l
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))
: C2 }, `2 e& ]" ? P& E+ s - (+ zbase (* zdelta (- (caddr oldp2) zbase)))
9 g$ p( L" p! B1 u - )
7 q3 x$ f$ O1 t - el (subst (cons 11 p2) (assoc 11 el) el)
\# w4 Z4 |3 ^& F - )# ?# Y7 h D# d) x
- )
9 |% ^. ^/ n5 k9 D" b! l - & q. o( g O+ a* D
- ; Each Attribute's height and width-factor were computed
8 `: i0 _+ ^8 D6 @4 Q% U* F& u+ o - ; based on the Block's scale factors. Adjust them now,
7 ~* c/ n4 W+ Z* X - ; by first reducing to values for 1x1 scale...
4 i: w( l, a" {. ?( ?" G F - (setq new_hgt (/ old_hgt (cadr old_scale))9 |+ ]: K" t" ]3 r( m# x
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale))) u5 f) ^) Q; g# s
- )
# \4 C, W7 ^; M! T - ; ...and then rescaling.
! h4 ]* m; |! ~, C/ ~ - (setq new_hgt (* new_hgt yscale)$ B8 u( y# @% T7 U+ U& X* ]; M
- new_wid (* new_wid (/ xscale yscale))
/ a) r/ z6 ]3 a0 K$ o; j - )
" X( d2 P0 |' O - (if (/= new_hgt old_hgt)8 Z0 Y, B$ J1 N8 h
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
! g: N! |% a( y" ` - )
. X$ m- o4 l+ y$ r3 w3 b4 q - (if (/= new_wid old_wid): G" F% l) V% t
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
9 g0 ]0 f8 F+ Z- H - )
' {* P& a* x% T/ p% o1 u - (entmod el)
: P: S& x7 w8 |5 h - (setq attr T ; At least one Attribute modified
! D) }+ Y9 |2 y, c' c! K6 y - en2 (entnext en2) ; Next Attribute5 ~, c7 |0 h& E- ^
- )
' K+ K$ E; I6 \- H - )) o# ?$ O" P& H3 t" s0 ]
- (setq en2 nil) ; No more attributes
- `; f5 z! I1 ]7 K5 O" i) C Y+ t - )& ^# _9 m6 m7 w( p M' x) [
- )
6 [) \0 u- B- L. e - )
! _) E% i/ }0 j4 a5 @" M - ). n2 G0 O9 g' a* @, W
- ! j( D; Y& r$ ? Z- s
- (setq pt1 (list x1 y1 z1))% V" J6 J8 [7 [( d2 h: ?
- (tempmod xscale 41 nil)- V& O/ @, V4 k, Y& a
- (tempmod yscale 42 nil) S( T+ ~& c4 @. U0 Q M
- (tempmod zscale 43 nil)
* U; e. Z \# r% `" ?, A" m) _, c" P5 C - (tempmod col-sp 44 nil)
6 E$ v5 r, `- K% _2 H - (tempmod row-sp 45 nil)9 }+ G: P3 d; \. e; s7 ^1 X
- (tempmod columns 70 nil)$ }, y& g. X& y+ c
- (tempmod rows 71 nil)
0 B! P6 ~# J9 a8 z - (if (= xclipmode nil)0 w; s- {% _$ W
- (entmod elist)
4 q2 n0 t9 }0 t* ~ - (setq xclipmode nil)
9 n( C j1 h) `! ~6 k* _& c7 `9 K - )+ f) ?* I7 N6 j1 ~1 m
- (move_pt1 1)! k" a& \* g. K$ a V# X, f9 E3 c& U
8 s0 M0 I+ ]6 `6 P$ k- ;; Now do the rotation with the ROTATE command.
. Y# V' j( | n' ^ G9 V - (if (/= old_rot rot)( J7 n- c9 P! ]% w& W+ ?
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
$ {% y( K1 j0 v' u' t, h+ D& M, n0 c - (if attr ; Else, if attributes were modified,( u; x* e' @: i* u9 ~
- (entupd ename) ; just regen to force attrib display
" O8 d1 _# e( u# D - )" x. H- ~/ m0 `
- )9 L6 g" c2 @8 e" {# J" U; k R
- (setq elist (entget ename))
5 a6 ?3 X, n7 m q( Q- C, D7 ` - )8 Y& F5 N* e" Y5 G
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)' J! M. L% @: |, e) L( V
- (setq newhatch 0)0 V7 {/ W6 T, ]1 {9 n6 u/ q
- (setq blkname (cdr (assoc 2 elist)))# `. h( x! F* G* j% S; l* W
- (setq blklist (tblsearch "block" blkname))
8 T }! q" }& @" P$ k" l - (setq blktype (cdr (assoc 70 blklist)))
0 _/ I; d8 V/ c9 S- e - (setq xcliponoff 0)5 F, C) L& {- D' @' F7 Q
- (if (or (= blktype 0)(= blktype 36))
3 O' I G7 y7 C2 X1 t) C. b8 k! o - (progn
' F0 Y6 Z; h' v5 ~ - (setq xcliponoff (xclipon elist))
, \: `+ I( i/ T& E. b - (setq temp_xclip xcliponoff)0 n; P0 i, E( @% u; Y0 f
- )
' n) D: q8 {. D: S - )
4 u' W9 x9 d5 I$ e. s3 s" u4 F1 u6 i - (if (= (logand blktype 4) 4)
& j; E# D7 X- d - (progn
" D: A# N) R3 f, s - (setq xrefpath (cdr (assoc 1 blklist)))
6 H+ ~& h7 m* _ F$ N/ D - (setq help_entry "modify_External_Reference_dialog"); P" t& F6 z! G0 W/ ]9 I3 y
- (if (not (new_dialog "ddxref" dcl_id)) (exit))- v8 T. ~5 S4 g
- (set_tile "Bl_name" blkname)
. N6 u" J- F4 J8 p - (set_tile "path" xrefpath)/ T4 U1 q" H5 M6 G4 w
- )& c" F c* b, ~( C
- (progn, e Y& p, h- L1 L- S% `9 k( g9 x
- ;; Get program name for use as Xdata app name# {; q. Q2 x* g; l. p$ |! C" y
- (if (not (setq program (getvar "program"))): K7 h% K+ L: O! j" }9 b
- (setq program "acad")
: ~4 J r; F% A. t0 `. G - )
2 Q0 D$ B/ }1 X+ W+ G - (if (and (setq temp (assoc -3 (entget ename (list program))))
; W/ s6 U* ]) `' r+ \- B* H - (= (cdr (assoc 1000 (cdadr temp))) "HATCH")) _9 c3 _( ]0 X2 R2 K
- (assoc 1005 (cdadr temp))
, _! q+ |: p! q1 D A - )
+ R/ } a9 g0 e# S( H* U* P - (progn
3 C4 i; u3 [3 Z - (setq newhatch 1)! N6 ]# \" }( f/ o% K! k
- (setq help_entry "modify_Hatch_dialog"): i1 x, T G2 `& U& N; A
- ;;; convert the object into a new hatch5 b* G3 |0 r8 M! Y8 u% m
- (ai_undo_on) ;; enable undo. c( s& Z; K/ J9 I, ^6 P! i: X( R
- (COMMAND "_.UNDO" "_Mark"): O+ S& I& A; i _
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")$ t& o! ~' j/ S- d. ^+ C( P2 r
- ;;; suppress nasty message from convert command
, A8 t3 L4 J: X: u - (princ "\r \r")) Q# J1 ~& I. f( O5 D3 B# c+ _
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))3 b8 H4 b9 {8 u( J
- (setq old-elist elist)
# B( o8 A5 ]5 E/ N' I' w - ;;; If we have cancelled ddmodify
1 C8 \5 f, J% P0 O. F0 s - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
1 R Q7 j `% u$ U' ~" y' v - (command "_.UNDO" "_Back")- r) F1 H3 l8 H8 a( ?
- )
* y) o1 X1 u4 ~: K - (ai_undo_off) ;; restore undo state" ^1 [8 _2 N' ~* M( N' [( l+ h
- )( F" D0 W% g$ f
- (progn. J- y# l" q6 b
- (if (not (new_dialog "ddblock" dcl_id)) (exit)) q5 b9 C) G% a
- (if ( = "*" (substr blkname 1 1)). K7 Y: ]& d$ K5 q p
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
% [, m: K* c$ _! e5 D5 ?# v( s - (set_tile "Bl_name" blkname)
/ ]. _* \, k0 b' C* f/ Q - )
" i/ |: k+ u1 I2 N - (setq help_entry "modify_Block_Insertion_dialog")9 Y/ e4 L% I4 K W5 c7 W( V
- )
9 I @( N' {/ _% ~+ p - )0 E! V! J' C5 G# [9 C2 g# s5 W
- )
' [1 T% D- G1 v8 g- d - )
" G4 ~& S$ ^' j" e* N. }. U3 } - (if (= newhatch 0)
; H% J7 K& Q7 S$ S* y3 {( M) | - (progn ]- D( a' s4 S3 \! i5 g- x
- (set_tile_props)
* X8 g D8 Y$ a - (set_tile_handle)/ Y- G- L2 A% Y+ _
- (set_tile_pt1 1)3 h+ |7 n5 ]& \9 P* ^# H
- (set_tile_rot)
6 j3 V5 S* a' v/ \2 @3 k( s - (set_tile_scale)
c5 `. w+ k) X' ] - (set_tile_rc)
2 B/ h7 O9 y- C: c3 T - (if (= (logand blktype 1) 1)
h" t. \' V# d* X8 [8 f - (progn4 R! `( `% O& M( D
- (mode_tile "xscale" 1)# }8 p" C9 e" E4 h. n4 y, `* Q; s
- (mode_tile "yscale" 1)
! Y/ X# h4 d3 t9 {+ p8 C- o - (mode_tile "zscale" 1)7 n4 [9 W5 `( ^8 X+ R9 N8 y
- (mode_tile "rot" 1)* Z) u0 K8 d2 J, l0 i, z
- (mode_tile "columns" 1)( o+ V; C; M( Q/ j" S6 F
- (mode_tile "rows" 1)
4 G$ `1 i* ?5 }# i" p& w - (mode_tile "col_sp" 1)
* u* m" \+ ?" t( k Z1 f9 M - (mode_tile "row_sp" 1)
, } e- F+ W+ [$ M: C - )
: V' r( c! T2 n4 L! m - )
2 y( R. t% b/ @2 X - ;; Define action for tiles
* M1 k- w0 i% f - (set_action_tiles)
) u! K3 w" L/ r K! Y, X - (setq dialog-state (start_dialog))0 G4 P( Y3 A3 ?9 x6 V$ n4 R
- (cond
* a2 ]* N" @- m2 f/ o- c0 @ - ( (eq dialog-state 0)0 [" a) }4 x2 N% Z/ ~8 P: x
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
. x4 f6 b( c2 E - (move_pt1 1)
6 Q- r0 s2 }5 p, Y- ~: g* Y; G" U - (reset)). Z1 m# R4 H. U/ n' F
- ( (eq dialog-state 1)4 K) B4 I$ P: r3 ^6 D: G
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
" }7 w: q- B: {3 c- I2 i - (xclip)) z: R+ A6 V c
- )6 O& ]0 R4 R; m! I, ?) S
- (modify_block))
& o6 p" y4 c$ ?. {; S - ( (eq dialog-state 3)
$ o4 l( _7 W' Q3 c) o ? - (modify_block)
% L2 X1 T* L* d9 i9 E - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
" q2 A2 |3 m1 z& `1 v - (move_pt1 1)2 \) ]& i5 h7 w9 V O
- (ddblock))) v) Y/ `$ r6 O% K) z4 _ e& ?' A
- ( (eq dialog-state 4)6 }( a# w: c5 {: d% _: n5 {7 o
- (modify_block)
" A/ f& S3 O$ v; _& w - ;; Get current handle.
% u7 q6 F& v0 t8 R, B - (setq hand (cdr (assoc 5 elist)))
7 E/ W! B% N( b* N - (command "_hatchedit" ename)6 h. c+ Y: t% B
- ;; If OK in hatchedit, a *new* entity is created and the old one
0 J) v( Q- p% S& X8 _. ~' H' J% t - ;; is deleted. So if the old one exists, it must have been a6 }7 L( v( \' c4 }3 U- ?; H
- ;; so rest the entity.
; j. X2 ~) A/ J8 O9 c - (if (entget (handent hand)) (reset))
! o- ?5 a1 ~# ~0 i1 j - )# r- u" u+ t2 l7 K2 g4 W
- )
7 Q0 R; ~% {' ^1 \) w! n) P+ I5 G6 y! m- g - )
/ H1 {, j6 B U A/ V2 `* p - )& z' x' u, o. \9 _3 Q9 V; R0 j$ o
- )( ~9 o( k, i7 b3 V
- ;;
2 m& s) r' I* h9 {# P; o) h5 S; t - ;; Modify SHAPE9 O1 v% o: Y6 W/ `7 q0 X c
- ;;
9 t& x4 _! X% s! Q$ u! r0 I/ w( N - (defun modify_shape ()$ k" S8 l7 J! }" p! ~& ^
- (modify_properties)
% B% _' }1 b( r7 i - (setq pt1 (list x1 y1 z1))
j. b u, ^4 k! s - (tempmod pt1 10 1)4 i* v! x) w- O% x2 }4 i# i
- (tempmod hght 40 nil)/ h4 P, V; ~, H& r. Y% h
- (tempmod wid 41 nil)3 Y, v! Q H0 J( t* I
- (tempmod rot 50 nil)
' z9 g( j* Q- E - (tempmod obl 51 nil)
- G; p6 F) T0 L* h - (entmod elist)/ {) ]6 K1 K7 _2 q) y4 h( R
- )' o- V6 L1 w( N& E% u; ]
- 9 u( Z; L" J- [' ^- W# o
- (defun ddshape ()
1 m1 k9 C. V/ J d - (if (not (new_dialog "ddshape" dcl_id)) (exit))
$ B+ [2 ^5 C; f - (set_tile_props)
9 Q6 s# e3 u* d: K5 b5 Y4 k - (set_tile_handle)
( z5 f6 n- t, H" K - (set_tile_pt1 1)
) j* q) x! [# C) O - (set_tile_rot)
( r1 i$ R# f: I, W3 [& e/ \" r - (set_tile_hght)' I. r) l& H R: c6 [ C0 f. v
- (set_tile_wid)
- z) ~! M6 `/ J0 F - (set_tile_obl)& S( P( [9 }! Z4 [/ X/ e4 ?* m& w
- (set_tile "sh_name" (cdr (assoc 2 elist)))
4 _+ L- x9 b8 U; H - ;; Define action for tiles+ S4 z( t* N& N3 S1 ~0 K" Q a0 n: \
- (set_action_tiles)* y( T- A/ R8 P
- (setq dialog-state (start_dialog))
7 c3 y' [% n, P+ P' m) ] - (if (= dialog-state 0)7 p# F1 o) _9 ` _/ }
- (reset)
/ S6 P" {' n* a" C( f - )
, g: N2 N& g4 P6 S4 L' b - (if (= dialog-state 1)
, [2 ?$ N) a; q5 _6 }2 @8 D# \ - (modify_shape)* C: R$ [ h( Z3 Z8 n* ^
- )
7 }3 @; q# [1 a, Q! F. l - (if (= dialog-state 3)" S1 m0 {* `: x. ]. X4 u6 N
- (progn2 G: l; e- T* I3 {6 _
- (modify_shape)
& i5 y( l# i- b! {, C8 H - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))$ q: X8 G% r; h) g8 Z" M1 e8 m
- (ver_pt1 1)/ S6 M" x& J/ I! ? T
- (ddshape)7 J/ Q% \& V1 C1 M
- )! M- P% ~4 k0 `1 j( j' `6 F
- )
( M7 B5 u" q& b" z. K! U T - )
. d" E- b2 p8 _% @) ` - ;;
' @7 a/ B4 e% _% l. c - ;; Modify TEXT or ATTDEF
: Y$ M% e) l8 N: x* X% h, W - ;;
2 O1 v- D; q8 z( [ - ;; Set bit code for upside-down and backwards setting
3 P% B9 F) y" J - ;;6 H: Y/ b& x: s' i7 [: B5 k2 Y' K
- (defun code_71 ()) b$ u7 F+ s! D, w
- (cond ((and (= bkwd "0") (= upsd "0")) 0) x# [' b1 ?, {, f" _+ C! b
- ((and (= bkwd "1") (= upsd "0")) 2)
5 T7 B4 V; u$ c1 v2 c+ o% V - ((and (= bkwd "0") (= upsd "1")) 4)
4 H1 \- Y* U# I p1 w( H; x' m) Z - ((and (= bkwd "1") (= upsd "1")) 6)
8 a/ K# k' s7 m' X - )
+ n, | S6 {" x - )/ H3 P$ o- i4 l5 a4 _: D
- ;;! U7 }, t: }6 _. X5 Z* x3 w8 z* c" W
- ;; Style action. Reset widget values to style defaults
* _ z. k; o4 g) j- b/ D - ;;. v0 x6 \- E% W: X
- (defun style_act (index / style-list)6 N5 c" |/ z" Y* u3 h5 @5 E8 I
- (setq style-idx (atoi index))% k) v( G2 }! |& r7 y/ F
- (setq tstyle (nth style-idx slist))
6 B% T' F- _2 |4 |# }5 y - (setq style-idx (itoa style-idx))
7 v/ f4 l5 N; ?2 y( v# B# `. ]0 M G - (set_tile "style" style-idx)7 Z2 s( \" p! i1 s I3 ?
- (setq style-list (tblsearch "style" tstyle))
3 L" g3 U* y$ H; n7 \ - (setq shght (cdr (assoc 40 style-list)))- c+ V; c I: E3 [5 t
- (if (/= shght 0)( U+ R% i$ U R; h; L
- (progn
( F8 x- l7 F1 Q9 n - (setq hght shght)
+ J! G2 t* x( `& U" B5 L D* W - (set_tile "hght" (ai_rtos hght))8 k x; t: _, k: [( l' }/ f
- )* H/ H6 w# b8 |3 q( j% d6 H$ \
- )
1 G% }7 ~3 `7 e" d! M5 F$ i - (setq wid (cdr (assoc 41 style-list)))
9 s0 N* Q9 }6 y& H" ^ - (set_tile "wid" (ai_rtos wid))# U/ Z% \7 m" H3 o z& z8 n
- (setq obl (cdr (assoc 50 style-list)))4 v5 A" p* w* b$ z& T
- (set_tile "obl" (ai_angtos obl))% ^' j8 k* m! Q1 L: Y j0 e8 H
- (setq bk-up (cdr (assoc 71 style-list)))
3 b" |/ x0 C' R. u! }" ]; D - (if (= (logand bk-up 2) 2)
8 v- x* E) x& Y( s+ D6 M. ]0 F - (set_tile "bkwd" (itoa (setq bkwd 1)))
, {: n0 r+ D! I& f - (set_tile "bkwd" (itoa (setq bkwd 0))): X+ K6 [! Y+ q0 f1 s: w3 g% l
- )
& ~; r2 R* O$ e d$ @# o: i - (if (= (logand bk-up 4) 4)
: K/ k4 a/ f) \4 R - (set_tile "upsd" (itoa (setq upsd 1)))
1 O+ V, V! Q* y2 k9 Y$ S7 Y4 p( o - (set_tile "upsd" (itoa (setq upsd 0)))
* {( F* V& E: i* H - )1 s. Q) Y3 V( q6 a. Z
- )
4 ^, |; i& o5 J, r* l, n - ;;
" r5 m2 M- n2 j' p; j& u' Q - ;; Justification action. Set vertical and horizontal alignment variables,
- T% t. b% c6 R4 z, L" I) Y1 h - ;; grey out rotation and height if alignment = "aligned", grey out rotation
! v6 T8 J- K8 X - ;; if alignment = "fit".
. d. ]! {8 s: Y4 ~, s; p( E) a - ;;
3 n* |# w$ k8 }8 K- b - (defun jlist_act (index / templist)9 O9 o9 P! K6 h* S& w
- (setq just-idx (atoi index))
% q+ \5 B% q# i- k/ z0 T) I - (cond3 I. Z& \4 @/ b+ z8 R' m
- ((= just-idx 0) (setq va 0 ha 0))
2 T; m: Q* h) B7 o1 L - ((= just-idx 1) (setq va 0 ha 1))
( M+ W- l6 Q9 x - ((= just-idx 2) (setq va 0 ha 2))
7 I) w$ F3 \( J - ((= just-idx 3) (setq va 0 ha 3))
* ?4 N% T( R2 u# T" e) A - ((= just-idx 4) (setq va 0 ha 4))! K" }" q; b$ Z* r% E; {; z
- ((= just-idx 5) (setq va 0 ha 5))
* w4 A( M: A# l5 z: H. S - ((= just-idx 6) (setq va 3 ha 0))
2 _) W& M* Q, Q' _. |9 @ - ((= just-idx 7) (setq va 3 ha 1))! s- C; S3 w! }8 P
- ((= just-idx 8) (setq va 3 ha 2))
' }* v4 h* S5 u$ x- W0 G - ((= just-idx 9) (setq va 2 ha 0))6 v' @7 y6 O& H) @
- ((= just-idx 10) (setq va 2 ha 1))
o7 I" `0 d. u4 I3 j/ l - ((= just-idx 11) (setq va 2 ha 2))
0 N3 ~/ ~$ h/ o) t0 N. X# F - ((= just-idx 12) (setq va 1 ha 0))
" ~8 J# C# `3 e9 n: c3 b - ((= just-idx 13) (setq va 1 ha 1))
4 \0 [9 f+ _9 Z - ((= just-idx 14) (setq va 1 ha 2))
( w+ @4 }) ~' W. H& n/ ] - )% C. n( d3 o" O0 w) D
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text5 I2 p" ^9 X6 Q3 v$ U/ ^" Z
- (mode_tile "rot" 1)
5 T4 C" H5 h" P* ]" g4 h - (mode_tile "rot" 0)
" h2 H8 G- f r' |7 j/ Q9 s - )" \4 S# v9 r C- m, s
- (if (= ha 3) ; If Aligned text
+ I5 F2 X, {5 {) o - (mode_tile "hght" 1)- M* d& P0 d# ^" \, V
- (mode_tile "hght" 0)7 l8 A) v0 e7 a6 V4 l! T- v
- )
+ k. P+ t+ [ U9 k q4 y7 V - (if (= ha 5) ; If Fit text( k2 G. Z# {8 c9 X# O' n* X
- (mode_tile "wid" 1)9 o) U t) _& Q u' d
- (mode_tile "wid" 0), k5 G' E( L y3 a6 ]2 y
- )
9 W& _$ O; n6 H' i - ;; Reset rotation and height if changing from aligned.
+ q% w) o$ l3 A( t( O - (if (and (= ha-prev 3) (/= ha 3))+ R: ~ l1 K0 ?+ f
- (progn2 p1 x1 K4 ?" v, j! b
- (set_tile "rot" (ai_angtos (setq rot 0.0))): E( R1 z( c4 P% t" Z! R! C
- (set_tile "hght" (ai_rtos (setq hght 1.0)))
_! |0 i5 |2 o5 A+ `' F# N - )5 R- v. |8 ^$ _+ P
- )8 q2 R, i, |2 U: f5 `
" ?$ `" g2 W; l. V- ;; Reset rotation and width if changing from fit.
' ]3 P* u7 l' v, ] b9 t( r- @ - (if (and (= ha-prev 5) (/= ha 5)) c' j' E7 `# L3 e6 f7 y& d
- (progn* x# b6 _" b( d$ f6 Q; P: a
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
4 E$ P6 T* `3 R* ?8 j& j - (set_tile "wid" (ai_rtos (setq wid 1.0)))
8 F( g; A4 t' Q$ j - ). f k7 T$ p# p
- )
+ r0 |. @- Z. d7 g8 _# L
6 d- ~* }% V e0 X7 H5 j# |1 t3 Y- (setq ha-prev ha) ; update ha-prev for next time3 E# x& ^6 F/ E- d I# b3 W
- (setq just-idx (itoa just-idx))$ R! N: n4 n- H1 g8 P/ y0 L; m S
- ); ^' I+ r/ j6 t# o' v; \
- ;;3 `( W f6 l& j1 F, P
- ;; Set intitial alignment setting based on vertical and horizontal alignment
5 n( x: h# l8 _" N! q/ I; \1 U - ;; bit codes.
. N$ j( X1 u) B4 X$ | - ;;
9 x: O9 F& I( U( X3 e' a - (defun set_just_idx ()- ]$ p4 o! h# S% ]6 ]& |
- (cond
+ G2 |3 A! D1 a) y4 F5 m - ((= ha 0) ; Horiz alignment = Left5 d1 o8 x+ I! T! x; `9 P0 U
- (cond, B% d2 D3 ]# T1 g3 P- S- R8 A6 a
- ((= va 0) (setq just-idx "0"))
$ g3 f7 g" m7 L1 z7 I$ u - ((= va 1) (setq just-idx "12")): }: t5 b* f/ T/ Z
- ((= va 2) (setq just-idx "9"))0 ^2 Y0 w0 }/ z1 u J4 g
- ((= va 3) (setq just-idx "6"))
) @, f( b0 M6 I1 C/ @3 U - )
8 z6 G# R3 V$ Z, K; N* x* g# z @% { - )0 K! s0 ]6 b# u1 S
- ((= ha 1) ; Horiz alignment = Center
& U3 x! Y X3 S. X' N - (cond' V0 S7 R5 ?, @' j. Y7 V8 h: j
- ((= va 0) (setq just-idx "1"))
9 v, |- g% o ? - ((= va 1) (setq just-idx "13"))! E3 G' L7 d- D/ S" } f
- ((= va 2) (setq just-idx "10"))$ b# c4 Z6 J, y6 h# A
- ((= va 3) (setq just-idx "7"))
, p& |' X6 ~! I; z) x& ? - )
4 u. n* x- c) Q; W% O - )
) D( u6 [* O; ` - ((= ha 2) ; Horiz alignment = Right( V/ G0 d. ?. D: @
- (cond* E7 h5 o! z$ M+ n' m4 v; u
- ((= va 0) (setq just-idx "2"))
$ K/ d9 W3 L4 \ - ((= va 1) (setq just-idx "14"))
% _) v: E+ o* m% N7 H9 x8 x0 h0 a - ((= va 2) (setq just-idx "11"))5 d" J+ T9 }4 |6 U
- ((= va 3) (setq just-idx "8"))
/ K: N# V9 S# E9 b! _% } - )* @' i( d, z1 ]* D
- )! f2 B3 F* _' d! w* f- x. V
- ((= ha 3) (setq just-idx "3")) ; Aligned# [. [' _7 l3 s
- ((= ha 4) (setq just-idx "4")) ; Middle9 C) O$ X/ A# ]% Y% I( n1 S
- ((= ha 5) (setq just-idx "5")) ; Fit+ o3 k. m& x2 r) w
- (T (setq just-idx "0"))( m/ L7 l( Y4 w9 Y1 d
- )1 i: g/ f8 n5 h) T1 B0 \
- just-idx
) a; _5 @, q# ? l' [1 W0 b - )
2 H4 `+ l9 F* x- M5 t% c - ( D4 o2 I4 P* N" b- d
- (defun modify_text ()9 Z- D: |+ L8 H# t
- ;; insertion point
5 [' N: f% v7 u) O6 y' x - (setq showpt (list x1 y1 z1))
0 c$ v) q# r' J- _9 l( u2 X - (setq bit-10 (trans showpt 1 ename))- U3 F- K* g4 a+ h. f& w1 |
- ;; alignment point
7 j! H8 l- C5 ?( K x - ;; for 'Aligned' or 'Fit', alignment point must be different" c6 P2 {: c% \" h O
- ;; for all others, use insertion point
9 \5 Q- g; t5 ?" i, [7 b4 I2 l$ i( Z - ;; (ACAD will recompute insertion point): O1 a" w+ k( a6 z( o) j
- (if (or (= ha 3) (= ha 5)); l/ K& X! ^/ r" ~0 F4 }
- (progn
& h. ?$ B5 Q) I5 L- L - ;; if no alignment point, fabricate one
. D' ~2 _- j; @8 O0 F - (if (not alipt). k# S* K4 J& a. c, r, T. k
- ;; add text width to insertion point- `" k# N$ o+ g$ \" A; L7 e2 t
- (setq alipt7 e2 w: Y6 W* B0 u
- (list (+ (car showpt) (car (cadr (textbox elist)))); J* k) u; m+ ]$ L" q, I
- (cadr showpt)' V, w! j, a* \+ c, L1 G
- (caddr showpt)
; Y9 \ h" `+ s# G - )
: C0 ^5 ~% y1 P+ q% _, y. o* o - )8 u! g: Q, k1 o* h8 ^
- )
8 h9 u" } T6 b: L D - (setq bit-11 (trans alipt 1 ename)): }+ U! w! ^- z( x0 H l$ r
- ), H4 v2 T& D; O
- (setq bit-11 bit-10)1 G( L% l* ]* O& W+ }+ [
- ). t7 `# e" ]0 M* g" a
- (modify_properties)! U, f- b& \2 J1 \
- (tempmod tstyle 7 nil)& M' V8 {! e+ A) n' D( P# C. k
- (tempmod bit-10 10 nil)
. {9 i9 H3 X" [& z7 w8 E+ R - (tempmod bit-11 11 nil)* i9 E& }( e+ l/ v
- (tempmod text 1 nil)( X6 K5 G# E; L
- (tempmod hght 40 nil)
9 _, I& G9 k+ D - (tempmod wid 41 nil)
$ M& m" X9 N4 P9 W! `, O1 n - (tempmod rot 50 nil)4 S' O& {3 K% |
- (tempmod obl 51 nil)
; e: S) [) Q7 J; H( s" W4 Y; M* E4 ?4 r - (setq bk-up (+ (* bkwd 2) (* upsd 4)))
/ ]; C8 a2 N1 l8 r$ p. D6 s - (tempmod bk-up 71 nil)4 e% h6 H, A& i$ ^5 u& [ t* q
- (tempmod ha 72 nil)4 {2 h) e0 Y, }- y
- ;; Attdefs use 74, text 73
7 A# E6 L1 V X - (if (= etype "ATTDEF")
( S# J$ ]; z" o - (progn
Q; j3 a( |! b; y/ Q, c V - (tempmod attag 2 nil)/ p, Z' Z/ c" N& v
- (tempmod atprompt 3 nil)
5 b0 o% S/ \, z. o - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))2 R* t3 t% k9 L. b$ @, W* s
- (tempmod icvp 70 nil)& W1 i! Q7 b1 F }; h% v
- (tempmod va 74 nil)
$ M) U2 ^& @' ? ~2 } - )+ k! k: c) s4 z8 _ C3 z
- (tempmod va 73 nil)
7 k. U5 u) C$ q, ~ - )+ h& e. n1 x! G9 i
- (entmod elist)
3 q! |- o8 e- \ x$ v; V - )
# m7 R. ]8 _( Y# x0 Y% j
3 Z) C/ w3 ?: K& M0 ?- (defun ddtext (/ 2ndpt slist i) V* H5 r+ F2 x7 u$ z. c
- (if (= etype "TEXT")$ S7 y# y Q7 q2 M/ Q
- (if (not (new_dialog "ddtext" dcl_id)) (exit)) P- D! e5 r/ \ Z7 T! a
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))3 ^) i# s# @5 B8 k6 ]& y7 s! C4 i( u
- )
4 f) B% k0 v& f. _" Y; L) M - (set_tile_props)! c9 ~- E; s2 M5 \7 ?8 Q! i
- (set_tile_handle)
9 T: x! J* E; z, L3 ^! }1 \0 A - (set_tile_text)
" k: \+ q, o! D - (set_tile_tag)& Q6 f$ o% |1 D/ b
- (set_tile_prompt)5 C t1 a2 n% Q- Q g8 G
- (set_tile_hght), g; ^7 m9 C9 v$ C2 M# e) L. z
- (set_tile_wid)- }$ d' k: d; C& }& |) o) C2 {
- (set_tile_rot)( V! L# |6 _ `
- (set_tile_obl): M, C/ I" D! T& C7 c
- (set_tile_bk-up)
$ c7 N, y z7 u( I. I0 P, a - (set_tile_icvp)
: G' U1 m5 B$ {. O - (set_tile_style)
; u3 y0 \, }# B+ ~- d' z - (set_tile_just), \& S, [- @* Y
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
$ m9 F$ S6 y, J" Y6 q - (if (not (assoc 11 elist))
1 D9 n" o0 N8 s, R) r* \ - (progn (setq pt2 pt1)
1 f6 M" l6 X7 F, } - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))& A' x6 G7 F4 x2 ^
- )8 n# |2 Q& u8 c
- ;;(trans '(0.0 0.0 0.0) ename 1)): H/ P! i6 W$ m$ a2 C
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
4 Q4 k$ W, t \4 ?: C - )
8 D) p* u3 E+ `, o _1 d - (if (or (and (= ha 0) (= va 0))% v, i. j( x9 Q4 K3 |" z
- (= ha 3)/ I( Z9 ]$ Q: y3 p$ s
- (= ha 5)
- A; o1 j" }% I5 g2 B9 r2 ^0 _ - )
9 L2 P8 ?% a2 R5 o- k) D - (setq showpt pt1)8 V' v3 @& s) ]
- (setq showpt pt2) d5 V% p% ^' m: X
- )
# \3 n7 j0 i2 h/ g - (if (or (= ha 3) (= ha 5))% j, z' `$ B/ [" y1 K7 _% m- ]
- (setq alipt pt2)
: O/ t( v$ X0 m% Q; _ - (setq alipt nil)
$ K5 w: O; m4 K S x& h, u - ): M/ k! ?' m' A. i X3 G1 W
9 R5 b/ M; ?! A% h! p/ @2 Y- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
5 i9 q8 r' G) b$ a/ R( |) U+ R9 L - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt)))): G, B. Z, y6 q
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
/ A# t) N5 h& G6 h& ] - & N1 D3 Z: E/ i" f* E
- ;; Define action for tiles
& L4 \/ `- I3 c) X- K1 N5 |/ Y - (set_action_tiles)
1 p1 }: ]2 P5 O( Y0 ?) ?" M - ;; Set focus initially to the text edit box.
. t' W9 v; N) `; C - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
. f9 o. V+ S; C$ R' L) k - (setq dialog-state (start_dialog)): n" {6 Y+ x6 w2 i" l
- (if (= dialog-state 0)
8 s$ o& z/ s0 }0 Q3 {1 q m9 Q - (reset)- s# y4 F* j6 j+ s& m% P& Z* d9 M
- )
; @3 D2 Z1 x3 Y' Z: ~4 Y4 L - (if (= dialog-state 1)
3 f" d8 d2 {$ B+ Z3 w K - (modify_text)# v* g5 r) L6 F# e; j Q$ y% a
- )
9 t- i/ ^% m! D4 u - (if (= dialog-state 3)* C; ?, `1 D! v, e
- (progn( w! R1 G( n6 r/ Z1 w" g
- (modify_text)
* j7 z! p/ B2 m' h1 X: [ - (if (or (= ha 3) (= ha 5)): O5 i0 n. G4 M1 |' v: X6 `8 C
- (progn
% q5 I7 Q7 T5 B- h - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))' j. A$ w _! L4 A
- (if (not showpt)4 P, R, z) D$ i
- (setq showpt (list x1 y1 z1))
1 B9 s* L0 A: t - )
" {) N2 p! R* ]$ f - (setq 2ndpt (getpoint showpt "\nSecond point: "))
" |$ f- R* J2 ?' S - (if 2ndpt
: J( v- C2 l7 ~+ u2 @ - (progn- Z8 X' ^4 d" m6 l. x
- (setq alipt 2ndpt)5 B# b2 c3 N6 w9 [. n* y4 A- Y5 B7 D* X' G
- (tempmod showpt 10 1)" J# z; Z4 }' x: r
- (tempmod alipt 11 1)1 t* }: ]& C) ~, V3 J
- (entmod elist)
% p+ N9 W% C% u: Q - )! J/ C5 V9 H( J! V
- )2 ^+ M6 \( t* x L2 x* U. c- ^) V5 c
- (setq elist (entget ename))
9 v$ `$ [2 Y' G- S. H( H O - )6 i+ _/ w C7 m' k$ F
- (progn
) M' R U' n: i4 w7 } - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
3 p2 C; d4 ~4 R3 q, j3 |; o - (if showpt1 c! u+ J% ~/ J4 |( a8 P" c- F
- (progn9 ^1 X4 ^8 e3 a/ c; [
- (if (and (= ha 0) (= va 0))* ^/ p1 M% V# f& |- \! p
- (tempmod showpt 10 1) B' h1 ^% Z/ S$ @
- (tempmod showpt 11 1)
: N6 R- s n4 P1 v: b! | - )
( e% F- A+ C5 z, o: ~& f - (entmod elist)0 J- V& E' A( g
- )& F; _* e- G0 }- x
- (setq showpt (list x1 y1 z1))1 u; N% u; L# e6 q2 ~3 v; n
- )
' [% B$ J* L4 ^$ \9 ` - ). U) N6 U, L, o8 P. K3 h N
- ) d& g3 [- [$ d* b, x$ K
- (ddtext)! L9 h# o3 f, m- l2 ^- p9 n* L! `" r
- )& x$ p! B( _/ j, B# p* z
- )! @2 t/ v) }9 B7 o
- )
2 I& m# _) B9 O) R- Z. D9 V
- A! A0 W7 ^- V. V. b" y! b- ;;* X" i9 D ?' a2 q( Y `+ K- u
- ;; Modify MTEXT
P9 u* z! {" ^% ^: f! q% H- } - ;;. R, a8 K+ ]) t: ~' W& N
- (defun modify_mtext ()1 C' c2 w2 L' Y
- (modify_properties)/ w3 x8 {; M6 B6 k/ E' ~
- (setq pt1 (list x1 y1 z1))
9 X1 s; c, d; y( E# Q- M# |; U1 L - (tempmod pt1 10 0)
8 l R! O0 S' ?7 e - (tempmod text 1 nil)
4 \: W. d R, {2 w - (tempmod tstyle 7 nil)* c$ c' _: W% ?2 B. f1 C" g
- (tempmod just-idx 71 nil)7 T9 f: V. \9 F# b
- (cond2 z3 h0 |# p/ f/ ^8 h" R! E% W
- ((= dir-idx 0) (setq dir-idx 1))
3 ^* i# o) `3 H7 N; R- f! |, ~& \ - ((= dir-idx 1) (setq dir-idx 3))
: \$ d$ j; i5 P5 q& U8 j( d+ Z - ((= dir-idx 2) (setq dir-idx 5))
% z- R- T) `7 o- i! W4 l6 b - (T (setq dir-idx 1))/ L& h$ P, q V& J# k2 o
- )2 x. U ~/ b$ ]/ S8 X4 d6 z
- (tempmod dir-idx 72 nil)
/ K! X/ C2 j3 K/ c( r4 F3 w: J* c - (tempmod hght 40 nil)
+ v7 N& h/ n- v - (tempmod wid 41 nil)+ M1 ^# A2 g+ W! q m
- (tempmod rot 50 nil)
2 _+ ^3 f. D& j9 W. P - (entmod elist)
( X$ Z0 p$ x- {5 c! q2 ? - )
" `% K2 J0 N" M. u4 P- _( V
' _/ C; [' C9 N9 U% A- ;; Set MText text style4 O2 J! H/ R L: R, L, `2 {- @
- (defun MText_style (index / style-list)
7 ?" ?9 s3 |, X4 V# `, ?# j - (setq style-idx (atoi index))
9 @ N8 I; d# I D- Y - (setq tstyle (nth style-idx slist))
) d( k" n/ h5 Z/ Q, V) ]# h - (setq style-idx (itoa style-idx))
! k) C5 M! _. j) Z# K' `! r( _+ B4 U - (set_tile "style" style-idx)
7 A. T' j& k( ]8 S: A - (setq style-list (tblsearch "style" tstyle))
, H1 ?7 w: E* b1 U- {, c8 L) @ - (setq shght (cdr (assoc 40 style-list)))
& j. \: ^2 S6 C* M. U* X - (if (/= shght 0)7 V9 X, S Q3 C* C/ Z
- (progn
1 R* l9 r$ g, j& v# h, l0 S1 J - (setq hght shght)
- Q) g4 F3 C) M: n" ]& o - (set_tile "hght" (ai_rtos hght))+ \9 |1 p. E, g+ ?0 U' }
- )
/ D6 P S, e$ R: ~2 `+ P - )6 u1 j+ Q! H; m$ c. a
- )% p* o. N1 D4 c; W) O5 Z
8 p6 r6 F7 F1 c' r* f! T; P- ;; Run DDEDIT on given entity, working around possible re-entrancy- O9 f9 `, d, P2 U% a0 `) A8 N
- ;; problems with MTEXTED F* O9 z; L9 K5 u& e0 s" Z
- (defun safe_ddedit (ename / orgMTextEd work)
8 h( @. G2 i& }& L; J - (setq orgMTextEd (getvar "MTEXTED"))- b$ V9 w1 [. B N D
- (setq work orgMTextEd)2 H- U5 [) m4 }2 E
- (if (= ":" (substr work 1 1))' g: n8 q8 g3 W/ i
- (progn
+ V: l' z! |& m% {: { - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))3 j1 }8 ]4 z! C6 {
- (setq work (substr work 2))" `" _$ Q/ e x7 M) n; C1 t) Z
- )2 L/ f2 R9 `; F' t0 ^- N
- (if (= "#" (substr work 1 1))
4 V B& Z0 ^) B/ i - (setq work (substr work 2))
! @4 d5 D2 P& L" S1 T, V - )
% `0 n+ ~ i+ e2 p& s4 D" O - (setvar "MTEXTED" work)3 q. v- M7 q& }! u2 h3 D
- )! y; |+ o2 S: v) I
- )" Q! W% _, E5 m7 Y( ^( C+ U
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
3 r# {+ P* [- _: ]8 p. ?& C - (command "_DDEDIT" ename "")
$ H& A# o9 B2 D - (setvar "MTEXTED" orgMTextEd)& S9 U) K. H( N: h
- )
7 M( q0 ^, a# M) v
, ?2 a1 o* L( Y6 y, I7 X- ;; Verify MText object width
/ V% ]) b* u9 x" M$ W& F- r/ B. ] - (defun ver_MtextWidth (value)$ ~4 m$ ]/ N0 t# u
- (setq value (distof value))
) f2 C& _3 L, E5 E - (set_tile "MTextWidth" (ai_rtos value))8 n9 m7 z7 Q( ^
- (set_tile "error" "")/ ?8 s9 }- G3 p5 v9 ]* ]
- (if (< value 0.0)# `% ]4 C( d6 F1 A: g
- (set_tile "error" "Value must be zero or positive.")
& D" B3 ^. O1 v - (setq wid value)2 o( Q! K* O% y
- )
$ w0 S: s. p' L! q3 i S - )
C* |; e k% I, \* }1 Y0 Q - 9 N5 H, |$ |3 H8 X
- (defun ddmtext ( / gc3)+ s+ E3 ]% I- K3 ?3 \0 Y6 r
- ;; Get dialog0 _4 I I& K2 @- q" N1 _1 u
- (if (not (new_dialog "ddmtext" dcl_id)) (exit))
9 A) Y. U+ U2 k$ O
4 }& \% s& H" i5 M) W7 D- ;; Load list boxes: M$ k, ?& i) E) U3 u- R( \
- (start_list "MTextJustify")2 Y6 S* V; C6 |7 H7 i( m% G9 v) b& l
- (mapcar 'add_list '(. I' t/ W4 {8 o' f8 j# q
- "Top Left"
- w' a, r! q0 v1 \' A - "Top Center"
/ e Z' ?* X4 ?2 C$ B - "Top Right"% k, O1 N) }# Y3 ]
- "Middle Left"4 ]. M [8 X: R" Z0 |! h
- "Middle Center"
% E/ s/ O2 w& {" Q* l* ~: k - "Middle Right"
, L: E' C% R* Z8 N. n" m9 e - "Bottom Left"
1 C3 y6 [; j, D8 r0 N1 b - "Bottom Center"
4 t1 P5 h+ X& V* I; H) f( X: ~* J* p - "Bottom Right"8 U/ }$ F {: M7 h1 r3 s
- )
2 d; G# c6 E+ l# k( ^$ D! U - )2 k1 L& V8 v! b4 Q2 r- P
- (end_list)
7 Y- o% U, x$ m& P3 E - ) G* q$ a. ], B$ Q0 p# `
- (start_list "MTextDirection")
3 H. N8 s8 V0 Y- l - (mapcar 'add_list '(
0 q, i7 j# V2 R7 R( r, j - "Horizontal"; h1 H6 v! W& p0 y
- "Vertical"+ L6 [, v F" G: J8 x7 u/ {
- "By Style"3 c$ { |. E6 X0 @1 t
- )
( ~5 r& e9 I1 x1 h$ b - )7 `9 K: e; z8 m) T' ?) S" J! P6 f/ A
- (end_list)
2 s V! A4 e: Z/ V \# O% k. a
" W( Q$ P7 }& P8 u8 H6 u- ;; Set initial tile values# l6 q. p L( R3 H/ j O; L8 I
- (set_tile_props)" H; Q9 z6 c0 X8 K* c8 f3 ?
- (set_tile_handle)4 @5 @7 w: x; b! s! \2 b
- (set_tile_pt1 0)+ S- P, I7 ^, i) U( t9 S5 P
- (set_tile_style)& M1 R% B7 a& O! \; p
- (setq just-idx (cdr (assoc 71 elist)))
3 c) i, V# N( z - (set_tile "MTextJustify" (itoa (1- just-idx)))9 G: R0 P6 h0 W4 H# w9 m" X) q j
- (setq dir-idx (cdr (assoc 72 elist)))* O% C, {5 K3 O8 F$ }" d, m2 l
- (cond
- S* B( |, j' b* i# X" f- q - ((= dir-idx 1) (setq dir-idx 0))
6 p' w2 J( g. l - ((= dir-idx 2) (setq dir-idx 0))
k. z& |$ ~# g3 O - ((= dir-idx 3) (setq dir-idx 1))0 w x h2 g. V* }
- ((= dir-idx 4) (setq dir-idx 1)); t1 h0 g# o& U; T. @4 A7 x* e: p
- ((= dir-idx 5) (setq dir-idx 2))+ b1 `3 x2 j9 \4 g, B7 s4 Z
- (T (setq dir-idx 0))+ v" V7 l( I' ^
- )
/ L6 G; O% G4 [4 n1 b9 S1 C - (set_tile "MTextDirection" (itoa dir-idx)). K9 o; A! C8 D' m$ x# k
- (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
# R% a9 n: N/ |0 W - (set_tile_hght), ^2 |# |6 b9 x; o: ~! o! O
- (set_tile_rot)
) K B1 S% C" k( C
9 @3 Z' I% q' {$ y0 u0 Y, I- ;; Set edit box, disable if too long' l5 ^# |5 D& `& x
- (setq gc3 (cdr (assoc 3 elist))7 ?+ @# U/ u4 F3 J$ @2 L
- text (cdr (assoc 1 elist)))0 F P B9 p$ w! G" w( d+ S
- (if gc3
2 J' c3 F _# R1 C% } - (progn ;; Text is over 250 chars, disable edit tile
6 \6 {4 z& N6 h- u& L - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
" v* F8 D1 e$ {2 s0 ?) z - (mode_tile "t_string" 1)
' @- F. _+ ^! K% U - ): a2 |% z$ a& Q! E }0 y) S b
- (if (> (strlen text) 80)" U' V& s/ @8 t! g7 t& g: D
- (progn ;; Still too big: S8 l* A8 x9 }7 H
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))2 Z" R7 G- d. ]4 W/ ~
- (mode_tile "t_string" 1)2 e9 q3 V3 B, s+ I* O
- ), t0 e/ s$ a6 R, X) f2 M# O' s
- (set_tile "t_string" text)/ w& C6 x# ?3 \- K4 w- [
- )
: ?3 V# Z& A# a9 p( o - )8 F( i5 a5 i; F! N/ f$ k$ l' n; N
- 2 X" a5 J9 f6 P
- ;; Define action for tiles
2 E: R: l T- t, o& q7 U - (set_action_tiles)
' O+ D8 }2 T- \2 r5 a! O - (action_tile "style" "(MText_style $value)")
& N2 }8 {( [7 _; s; r( { - (action_tile "MTextWidth" "(ver_MtextWidth $value)")$ _0 p0 o8 Y4 g' g
- (action_tile "MTextEdit" "(done_dialog 4)")) p U4 ^% G9 d* x3 k7 M8 a
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")
* b$ l" e# `( [& y+ w - (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")2 @4 `. r; O. j1 f' C' l7 Q* v' G# h/ ] K
: b! Y) q) M' B& g9 ~, Q- ;; Set initial focus to text edit box.7 j. y* \( C* [7 S/ S' [; k
- (mode_tile "t_string" 2)+ T" r2 ~: Z' M: |
- q5 Z; ^. z) k- {0 k+ k
- ;; Run the dialog0 |$ ]3 ]9 r. L; w4 I8 \6 U2 ]. s
- (setq dialog-state (start_dialog))
6 h6 @) t* g- A0 T - (cond
, p0 b0 _) |: \& a - ;; Cancelled - restore saved data
( \* R; \7 m# u! W - ((= dialog-state 0) (reset))
! b. `9 `# n9 E. M0 H- L, q - ;; OK - save new data5 A7 b- y& f& L
- ((= dialog-state 1) (modify_mtext))
2 [+ x# P9 {# m$ X. M - ;; Pick new insertion point
7 y( h- R0 V6 y - ((= dialog-state 3)
" p+ E/ x7 |! @/ ^ X - (modify_mtext)7 B0 A# |6 j) B. H
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
# ?0 }4 @' o$ N! Z: h - (ver_pt1 0)
2 r2 V& r: [, E6 a6 O - (ddmtext)0 G0 G0 W, b( i! o
- )2 p1 H9 K/ t" w/ h [0 S
- ;; Run full editor
u' N: {3 ^9 O0 J/ ^ - ((= dialog-state 4)( P; H5 v5 A1 w% C2 S5 f% h
- (modify_mtext) ^5 c# I4 o& z# g/ Y1 q2 n
- (safe_ddedit ename), d& d# F% z; F4 V: ]5 c
- (setq elist (entget ename))
& v7 k8 s" z3 R- M3 N - (ddmtext)
: y4 g7 B& [6 A/ r& O% J - )
& ^$ M: t9 v+ |0 t9 b+ h$ O - (T nil)- V$ O$ }3 T# {
- )
) U8 g' Q" O# a2 F; m - )
( G4 P& V9 c, T, o- R& P, [
5 _& _, _/ S/ | G5 u, L1 Y; ]- ;;
. ^) O- F0 C9 s J; X3 v8 k - ;; Modify VIEWPORT
4 G5 y" R; ?' t' K* ^4 x - ;;
+ O" N/ Z3 @& t. V$ X
2 v' ]' p; d. J# j7 r- (defun ddvport ()
$ r0 S2 \. c" B) y; y( g; T# \0 S - (if (not (new_dialog "ddvport" dcl_id)) (exit)). A9 J3 j y+ d0 J9 F r- x L. Z
- (set_tile_props)
+ W. o0 M, z4 x' I! D* o1 w" t - (set_tile_handle)
8 u, [0 m4 ]. _) [8 ?4 |' e% A - (setq vpt (cdr (assoc 10 elist)))1 O- F* w7 A6 P. a9 {
- (set_tile "xtext" (rtos (setq x1 (car vpt)))): D1 U6 t. S# F2 s# q" Q. M
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
/ H5 {8 D" U: R, U+ p F2 m - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
. D/ a4 A& Z! s% b6 d. h3 {+ E - (setq wid (cdr (assoc 40 elist)))+ t6 b3 F9 \. E4 v
- (set_tile "wid" (rtos wid))
8 }- f$ j1 ~# U! s- o: a# T0 p - (setq hght (cdr (assoc 41 elist)))
( J6 o" \( K4 C: {0 A9 s - (set_tile "hght" (rtos hght))
% E; ^5 c+ W& B4 n0 q7 V+ q - (setq vpid (cdr (assoc 69 elist)))
' v0 G$ N/ W" O: d - (set_tile "vpid" (itoa vpid))
+ W0 L- ~7 [$ h5 X, i - (setq on-off (cdr (assoc 68 elist)))3 d& Y" P) Y( S6 x2 t% j/ k
- (cond
. i, `. M4 f6 M) V8 T - ((= on-off 0) (set_tile "on-off" "OFF"))
7 y; ~# ?! A8 m5 Z( {9 i5 ~ - ((> on-off 0) (set_tile "on-off" "ON and Active"))
5 s* _- J' y% D' ] - (T (set_tile "on-off" "ON and Inactive"))" Y& G) V0 y) A6 }# c
- )
7 t& E1 d1 T: a# Q - 9 O0 J$ O) m# Y4 M
- ;; Define action for tiles4 N4 e* T/ v. ]& \# _
- (set_action_tiles)
+ ]2 s& A8 l3 B
3 {4 n( U# ^) c+ z& ?- (setq dialog-state (start_dialog))+ Y4 c3 N( T) H0 ~ {: Z! C
- (if (= dialog-state 0); {4 D0 n% D1 t3 [9 \
- (reset)
y9 l) ?/ A- r - )
! T% s& V/ b# } - (if (= dialog-state 1)6 M, p) w: U& U0 Y. p; Y
- (progn
0 I! K# V, N/ ]% v3 H* o9 Q - (if (= ecolor 0) (setq ecolor "BYBLOCK"))8 B* b( j$ C0 G) ~5 `; d& V/ @# y
- (if (= ecolor 256) (setq ecolor "BYLAYER"))
# I# y0 `( I' J6 P. I - (command "_.chprop" ename """ F! R8 i( z- L2 F2 K# I
- "_la" elayer- d. b! ?$ n3 k y$ v9 Y
- "_c" ecolor "" D) k- g9 s+ X1 f2 i
- )! j+ D- r2 ~# `4 T( O- K
- )
" R3 e/ b! K: k$ u0 I; h; P - )
0 z. F2 e: s; k$ V4 n3 p - )) L& z" r% {" U& }
- ;;
& m, q' k1 o" `, S - ;; Modify POLYLINE
. q7 V4 ?9 F: P) n" }- u4 B* q - ;;3 t+ x l/ M/ r' G7 m A% B
- (defun modify_polyline (); V9 q v" |, @9 Y* m
- (modify_properties), B6 t. }; {9 L' E2 ]% }+ o3 U2 ^
- (if (= ltgen "1")
2 }4 l2 c5 E$ J% ]" J, D, } - (if (/= (logand bit70 128) 128). ~/ F9 [/ [' F0 K' \
- (setq bit70 (+ bit70 128)). e: C+ f* e7 [9 }9 M
- )
1 `( M6 [. V# u! `$ q& U4 ~ - )! Y2 I5 b! ~7 ^) O
- (if (= ltgen "0")% A5 g( h, K5 k, z' ]) d
- (if (= (logand bit70 128) 128)( m( r$ A; I: n% s/ _% k
- (setq bit70 (- bit70 128))3 D2 J! Q/ k) M9 V c, }
- )" o9 C* {" o/ D! d5 F. C; x
- )" o& a5 a! }' U/ {& C* v# X+ t
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist)), }3 j- ^2 r- P. r# q/ z% }
- (entmod elist)
, z3 T: S+ x' T, b b - ;; Added to take care of updating Vertex information for color
- l& X8 I( V( `8 M! A - ;; and linetype.
7 W- E* G; t& D2 X: g$ j - (setq save-ename ename save-elist elist)% M1 Z3 }9 b; i; C0 Q9 W
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
8 y6 [4 s U' _& y7 k - (progn' f- j) B) _# x3 A8 D9 ~- \
- (emod ecolor 62)
! W' j' \; Y: S1 J" c5 F5 g - (emod eltype 6)
& u" m+ i2 P' z5 k - (emod eltscale 48)
: Z1 m( V8 C9 z& t: t - (entmod elist)+ |* k, K+ i3 F
- )2 _6 P1 @! n+ g" {/ ^2 {# H
- (progn
2 L `" H$ G A. O0 y& w( x - (setq ename (entnext save-ename))
* s& p% c$ x4 d! k - (setq elist (entget ename))+ _; G/ I- k. T- R: F6 Q9 z! w9 z
- + e8 h6 l: d$ T
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
: z5 Q' X' P6 _ - (emod ecolor 62)
1 n1 U/ H1 o7 t5 ?3 { - (emod eltype 6)
U" z% u2 D8 @, d; `! _9 u5 o - (emod eltscale 48)
- O( p7 @# E* ?& D4 y - (entmod elist)1 [9 e( A0 p; W5 ~$ Z) H
- (setq ename (entnext ename))- H Z& I) f' {3 k
- (setq elist (entget ename))" Y i' _# n3 Y4 E7 g- x
- )7 B0 I# H( S! _# v& _ {- ? H
- )
/ Z4 T8 H6 F4 v A2 M1 W+ L - )
9 V. D, K; p$ N1 g, w - ;; Update the SEQEND. Q2 m' v' y2 n1 G. `2 r
- (if (= (cdr (assoc 0 elist)) "SEQEND")" Q- \* m; F3 _1 H q0 h
- (progn
8 ~2 Q. U, s$ d Z - (emod ecolor 62) F( n+ S& f: K* s
- (emod eltype 6)2 M% Y. x7 ]. u( G6 G/ P
- (emod eltscale 48)2 B9 ~6 p4 h6 |1 N6 J" o/ ]
- (entmod elist)5 ]& o% i7 }5 ~
- )9 e5 \1 v; s& w$ W
- )
! K5 Y% U2 q1 F* z j - ;; Go back to header.
7 ]1 l# I2 L* ^, ^. c3 @+ s - (setq ename save-ename elist save-elist)5 e0 x2 F) i; _7 }' v
' Y" [" N, [3 S- (entupd ename)
& v- I! ]% f: U: n3 c - )" u% [) e$ k0 A
- M1 |" ~1 F$ Y- ;; Increment vertex. Set tile values to next vertex
. j1 I& e' q+ {2 Y8 X7 T3 N - ;;1 X1 X9 K1 T Z; P
- (defun next_vertex ()+ W: Z- d& M) k8 i% o# T3 I
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")' O6 \$ s* k# k F8 ?6 n' x
- (progn
& s! ~+ ?, Q& }5 R - ;; If the counter reaches the number of vertices,
4 S( H7 W3 Z$ U1 [ - ;; roll it over to zero again.- v/ J- K% T# B! H' f
- (if (= ctr (cdr (assoc 90 vlist)))
- X0 H' j5 n, s! z8 _ K - (setq ctr 0)
/ v3 M$ O7 \& o0 S* R5 Z2 @6 w - )8 L# l! J' w: G5 k) D8 e; Q) E. r
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))" Z5 `, L% D3 b2 P% n6 S, r$ y& u
- (set_tile_vpt pointype). S9 C+ A( z2 x
- )5 O, M9 H( O2 a7 B3 Z5 r
- (progn
X- D- Z3 g3 m: C' W9 m - (setq vname (entnext vname))
; j! L& L( y3 A6 J' a0 Z - (setq vlist (entget vname))
! {5 L4 S$ g5 Y8 ^' |2 J - (if (= (cdr (assoc 0 vlist)) "VERTEX")5 A: D& U3 E7 _ \- i X. S$ z
- (progn6 o" b* g, w, r& ?2 U% Z) l
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))$ c: R& F7 P2 H3 E
- (set_tile_vpt pointype)
' a4 r" H3 W5 w- L: |: b/ s9 M+ q8 W - )3 A6 Z/ e' ^: F0 s8 j
- (progn0 x5 k3 H/ d9 T5 {; m7 m( Z4 ~# t! J. F
- (setq vname (entnext ename))
+ J& X4 H6 P7 [+ _4 G - (setq vlist (entget vname))+ |/ F/ i {) _' ?2 u' F! O# C
- (set_tile_vpt pointype)
I; Q. B& G; _9 j; J7 c - (set_tile "ctr" (itoa (setq ctr 1)))
- W4 ~2 f. R& d8 Z( [+ w4 @8 @ - ) w. v7 M$ r, w, @& q9 Y `
- )/ p, V% U& h1 C9 v
- )/ x, B$ p$ l3 d% ]+ @0 Q
- ). \( J8 |, ]2 d( u4 V
- )
$ _, A* c% w. v0 }9 V! |
. t- c: z( g. e- (defun ddpline (/ oldecho)
@7 _1 d; u& c' X - (if (not (new_dialog "ddpline" dcl_id)) (exit))& c. [) Z1 f, Q1 q: ]
- (set_tile_props)% w6 L6 Z' z9 b1 T5 s
- (set_tile_handle)
/ x1 D i M7 d% d - (setq bit70 (cdr (assoc 70 elist))) b* n) C7 a, E: Z- ^) v5 h. k$ [7 y
- (setq bit75 (cdr (assoc 75 elist)))
9 P5 d) h4 A' ?' E" D5 @7 d - (cond5 Z9 u2 \. w2 r) R7 P
- ((= (logand bit70 8) 8) ; 3DPOLY
0 ~" u8 I+ l4 V' k1 n - (set_tile "ptype" (setq pltype "3D polyline"))! o( J" k) N R" I) D% X
- (setq pointype 0) ; WCS or ECS point values
O; V9 M4 s8 l* p - (mode_tile "fit" 1)% i+ q$ x) _# H) G
- (mode_tile "mesh" 1)2 ^& P* G9 m( S% V" W
- (mode_tile "bezier" 1)1 F8 Y6 B1 K8 l6 j3 t9 y. B/ z
- (mode_tile "ltgen" 1)# Z8 w8 [/ J1 U" _1 C
- (set_tile "none" "1")
0 c# [* ~& J3 t3 }" P9 [) w# r - (set_tile_closed)/ ~. q/ w8 _ f3 D6 Q
- (set_tile_fitsmooth)
1 _7 C: ^: z% l% o7 N2 y n5 ?$ x - )
7 {/ y" M& z( l7 M4 P. \ - ((= (logand bit70 16) 16) ; 3DMESH) j6 w, U* i" S; e# h# M0 e
- (set_tile "ptype" (setq pltype "3D mesh"))
4 t1 I- N$ D8 K5 a- A0 ~* H - (setq pointype 0)! G# }" O4 c/ G' I
- (mode_tile "pline" 1)8 E" E% ~" c, Y. {$ |# L
- (mode_tile "fit" 1)9 h8 R: O! ^0 x# r: \1 L: F
- (mode_tile "ltgen" 1) F0 M6 `7 Q7 K2 e
- (setq m (1- (cdr (assoc 71 elist))))6 |7 \& k( {: Z8 j' L
- (setq n (1-(cdr (assoc 72 elist))))8 W9 }, S6 Z- i9 B0 }. a
- (setq u (1- (cdr (assoc 73 elist))))
8 ?$ d7 v- r3 @0 \1 j - (if (< u 0) (setq u 0))
: `3 H* c$ Y' g- O6 H0 [& e3 t( W - (setq v (1- (cdr (assoc 74 elist))))
% Z9 M' f8 S& P& A - (if (< v 0) (setq v 0))
. B6 s' O# R( y; L0 R - (set_tile "m" (itoa m))5 u/ P q& S3 Z0 g8 U4 @
- (set_tile "n" (itoa n))
% L. U# C8 N" c8 e* D: y7 X8 T - (set_tile "u" (itoa u)). g+ N- S$ j0 y! x: E' q
- (set_tile "v" (itoa v))
- A$ U% H' o Z q/ f - (set_tile_closed)
# q \! \& t! G/ }5 K" u# P+ N& F* g - (set_tile_fitsmooth)
$ X @, [0 @5 n# b - ) _4 n1 W i9 y
- ((= (logand bit70 64) 64) ; POLYFACE MESH3 i3 r( c4 T ~% v% W1 [6 P
- (set_tile "ptype" (setq pltype "Polyface mesh"))
7 a3 ]( v2 ~8 G- k' P5 G8 E9 l4 k - (setq pointype 0)
5 F" ~! N3 W$ o; B0 C. ]% j+ O - (mode_tile "f-s" 1)4 ^! s9 R9 W, q! A5 v, g; N
- (mode_tile "mesh" 1)- x) e# y8 g* h7 A2 I
- (mode_tile "pline" 1): s8 J9 Y! @; o8 s5 t- ` M
- )
0 N6 Z5 v: m9 S; q& b s - (T ; 2D POLYLINE- y8 t- b) m# y3 K9 N8 w ~
- (set_tile "ptype" (setq pltype "2D polyline"))" X3 e1 \# E% T4 S; y# A
- (setq pointype 1)
4 C3 R& A( r3 z6 l - (mode_tile "bezier" 1)
n n2 e: O8 B; F* S' \ - (mode_tile "mesh" 1)0 D/ L! W2 o6 k- F
- (if (= (logand bit70 128) 128)! b+ ^; t) E6 N# Q
- (set_tile "ltgen" (setq ltgen "1")) M) ~1 v& J" q% v1 }* m. l
- )( @- o& L4 T0 X8 g$ C
- (set_tile_closed)
; \, D( t. r, } - (set_tile_fitsmooth)5 E3 _2 z. t* O9 r
- )
# o5 A4 U4 \: y/ K. y - )
8 ?3 k( K$ t) q& g2 N; ~ - 9 p( F7 q/ s0 J- p
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE"); ?4 `1 {3 p, D/ L. s5 t
- (progn
( w3 v1 w7 r- l) ~( V2 \5 T - (if (not next) (setq vname ename))$ Y H0 _6 ?5 a5 n; j
- (setq next T)& ?4 ^8 S6 R8 c6 B+ F
- (set_tile "ctr" (itoa (setq ctr 1)))) N- M4 _- I5 C' r- M
- (setq vlist (entget ename))6 G( @, r. m: q+ t
- ), ~1 r- k* W- k, g, b$ }
- (progn
. ]# }) p+ { | O5 o - (if (not next) (setq vname (entnext ename)))% I+ d1 J# }) [3 f. E- G5 S, t
- (setq next T)
# F; q2 M, t6 M$ n8 O& b0 ?2 D - (set_tile "ctr" (itoa (setq ctr 1)))4 y: M* H4 i9 |
- (setq vlist (entget vname))4 O" N$ W6 i0 ~
- )+ p2 s; E( o" K I M% c
- )
$ C- O, y. ?2 B' i$ T - (set_tile_vpt pointype)
: I9 L% d& J" t& Z - ;; Define action for tiles
+ y8 E" X7 `! T: n - (set_action_tiles)# F) I' M4 t: \ g$ m v
- (setq dialog-state (start_dialog))
& m- F* T( K; @% p- v) K @
0 W# N1 _2 S' _# L" ~- (if (= dialog-state 0)
9 O/ C; `: e* \1 [' u7 Y: O - (reset)
_ ^$ x- c4 g' {0 O - )! n N/ |! {# w- S
- (if (= dialog-state 1)7 G$ L% p7 f0 c# v7 E
- (progn
& l0 D. f, M* F s! K/ | - (modify_polyline)/ |) J4 q. \2 S: H
- (if (or (= pltype "2D polyline")% l3 V( D- R% Y4 O; B& t" G9 O
- (= pltype "3D polyline")
, }* O* R( }% u+ E0 x - )
! D( U- l! i; u) c8 c0 J/ s, d. n - (progn
$ ?6 l$ M( O7 s. H* J3 l9 O# _ - (command "_.pedit" ename)! ]8 k2 C! r' e5 ?0 b& K J y. l
- (if (= spltype 0) (command "_d"))
* z0 c- X/ w, } - (if (= spltype 1) (command "_f")) `" R( K6 c' Y% x( |6 U
- (if (or (= spltype 5)
1 O6 x% N$ ^, ] w - (= spltype 6)% r: m0 g# g' A8 f4 @
- )
# N$ z8 X) z8 ^0 V! ^% s" f - (progn
& k4 Z: F8 C2 \! |" g& { - (setvar "splinetype" spltype)
3 {5 U- d7 Y) f - (command "_s")3 u Y& T( y7 _( Q
- )* ^ t1 o- c2 _( b
- )- e+ x( R" H8 x k! o0 W2 q
- (if (= closed "0"): s2 K) I/ X$ z# [! M
- (command "_o")1 F( P& W1 I; `
- (command "_c")
" q7 O$ Q! {# u8 `0 s/ f - )) _: K/ A1 {4 Z1 {1 m4 u
- (command "")% M1 v# |& f9 J4 V) Y* @
4 D. r r1 i( r( W- (if (= spltype 0)$ ]0 U4 k6 r$ i; S, c; y7 w
- (progn8 O# x1 x% f' K# W. D
- (setq oldecho (getvar "cmdecho"))7 x" l: {/ f4 e
- (command "_cmdecho" 0). j' q% `) e% S, N
- (command "_convertpoly" "_light" ename "")
! L8 @) l- V" P - (command "_cmdecho" oldecho)( | }* G6 m4 y! Q$ X
- )
: G1 D% \% y0 N - ). d/ M+ N: V: ~) g+ C# u0 u% ]* X& N
- )/ Z3 ^8 Y/ T9 _1 M
- )( M7 C3 \* r, i* L( Y3 T$ |
- (if (= pltype "3D mesh")
`! y# a0 M# ` - (progn
$ J0 v" B8 c! E - (command "_.pedit" ename)9 G9 B2 J/ J. d+ t* [
- (if (= spltype 0) (command "_d"))
/ O% N% R( d1 ]3 @; h - (if (or (= spltype 5)
4 P/ b$ o+ y9 B0 q+ t* n# t - (= spltype 6)
" T7 q% \$ @ v! O' F v7 r - (= spltype 8)( T4 j0 [, K% p
- )
# }9 \: p* t( x9 r9 h# F) D( ? - (progn) e! }5 t. @+ K, m3 Z. S$ z- X8 w
- (setvar "surftype" spltype)
5 @6 Z# [: L' r" }/ _1 l - (setvar "surfu" u)
2 ^3 s9 Z; p3 t, Y# H0 W - (setvar "surfv" v)0 B/ a% `/ z: X: Y& r
- (command "_s")
- e2 q# a. [. }4 X! F - )
l" n! W6 L2 f" r- T - )
0 g" a' t( f) a( X/ B - (if (/= closedm old-closedm)# w7 t! c, L) g* n+ d$ t
- (command "_m")# ^% k& v' T. W
- )
/ R8 B9 k4 ]4 a+ Y e - (if (/= closedn old-closedn)+ t2 n6 d/ \4 u2 E9 b3 ]# G
- (command "_n")
R- v6 X/ b# Q) f# [. {3 N - )
7 |' ]& c) Q, U - (command "")
8 u F5 I0 k! v$ A& H) w - )7 G% E) _' I* A* g+ m' e* L
- )
- \) z, s( k6 { M. b0 J/ W C% A - )
0 [2 l; ~% U5 H0 i9 Z7 i6 b% S" e - )
- N. C1 D/ w I4 b8 s - )! j, T) |$ ?' L& V7 F+ l* [! I
- ;;
% J5 F- B" D4 X; i- D - ;; All the spline data is contained in a single elist. We must do some W6 N, E+ u! Q, M/ U. F
- ;; tricky list processing to loop through the elist in order to display; t' j* N( `1 y! S* c* _
- ;; all of the control points.( p* o3 T7 k2 b2 c2 o8 Y7 J
- ;;
0 K/ l% u8 H* V - ;; The structure of the elist is different for rational and non-rational
6 Q8 M8 _, e) f( ~ - ;; splines. Therefore, we check the rational spline flag.& p; f0 c0 G# u. [ q6 Z
- ;;) H! x; W2 c- q4 b" Y
- (defun next_cntl_pt ()* I8 w& ?' W& k: B: g; R
- (setq elem-no 0) ;; elem-no = element counter
, }- B j+ [$ J# x3 k+ D - (if (= first-10-time 1) ;; If first time, find location of first
6 V: Z9 z& v; x5 o* l0 j9 N - (foreach list_item elist ;; cntl point element in elist
; c9 o$ g" N7 r1 t/ z: H# S) ]* S) ^ - (progn
$ L/ y. y" ~/ {+ |% j - (setq elem-no (+ 1 elem-no))6 V5 i' ^' N ?* V+ _
- (if (= (car list_item) 10)
* `1 z) P, p: |, E! x - (progn
9 f2 X& T# S/ \# L/ R; |! w1 s& u - (if (= first-10-time 1)
: A4 {& G4 s* F& \2 s& N - (progn
* e9 G* y1 ^6 n/ ` - (setq first-10-rec (- elem-no 1))- l* h8 Y: R0 B) L3 U! }
- (setq first-10-time 0)
: K, v3 p3 Z1 v8 y6 r7 m6 N- ? - (if (= rational_spl_flag 1) ;; if rational8 e, B. p% F: U/ F/ M- x8 E
- (setq cur-10-rec (+ elem-no 1))
* `& h$ l5 j" Q3 j' _. }0 v - (setq cur-10-rec elem-no)& [' j `$ y; |- Z `
- )
# t2 W% X$ A. P" ^( d - )
9 h2 C4 }- h+ i1 D6 b \ - )
' ^$ F! X L8 e: @5 v$ R6 t - )7 q" ]2 S4 M2 V* X# e n
- )2 i' e& v5 C1 S+ U/ C2 ?
- )+ s i/ m2 |+ a& e
- )
- M% P9 w- U. ~& w$ ? g) r - )
' C) R7 X$ M9 f# L+ _ - ;; Now we know the location of the first "10" record; it's stored
; `- P4 d C& U2 G - ;; in first-10-rec. The first 10 record was already displayed when
, t% e8 f, K- G - ;; the dialog first came up so let's display the second one when
X" @" `( L" h+ h - ;; the user presses the "next" button (the first time through).
5 ]" ~; p% G. T& M# l- a - ;;8 j2 T2 g( G& l0 D1 [
- (setq temprec (nth cur-10-rec elist))8 R# w4 `) S/ N& o0 K3 W( X
- ;;
# \0 c8 b' ]4 b4 u- f - (if (= (car temprec) 10) ;; if 10 record, {# P, j3 T) L
- (progn
* T, T3 A8 [" x' \ - (if (= rational_spl_flag 1) ;; if rational spline
2 V1 X# I- c, [7 u+ q; G/ m - (progn
% b1 i p; p7 z5 q - (setq tempweight (nth (+ cur-10-rec 1) elist))
! q5 P- W1 U) A4 o5 Z0 t8 D5 v - (setq cur-10-rec (+ 2 cur-10-rec))
1 o; Y6 K, w" |7 N$ U. s; B: l- | j - )
: r4 h6 J T. [ - (progn ;; else
# m* E, P& V9 M, v2 O - (setq cur-10-rec (+ 1 cur-10-rec))
6 Q( A5 v0 Q4 [ - )
# E" a0 i! d! K7 l: r - )/ Q3 G3 B! l" g. p, J
- ) ;; end if rational spline
! l: F- W+ e& ? S4 P) C! D - (progn ;; else reset counters5 P" W2 y: q7 k3 \
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec. d. E9 J( S, V- j% ]! w$ {$ H( ^
- (setq tempweight (nth (+ first-10-rec 1) elist))
5 X1 w% {: p0 \( b - (setq cntl-pt-indicator 0)
3 ^( g) y. }/ n1 m8 k5 d - (if (= rational_spl_flag 1) ;; if rational
% R7 v: \/ ?' t8 F7 Z - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
8 j* D' \2 A: F$ S, A - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec+ W# l8 ?0 W2 B7 {4 Y; w
- )4 l3 O# k# e, E9 v6 h5 ]6 l0 g
- )8 b1 I3 N6 H$ J- ?! j
- ) ;; end if 10 record
# `( f' V4 {! a0 P" M
4 e, N9 ^$ W- Y" F: P. z$ ?; O: [- ;; Display cntl point, weight and ctr. Increment ctr.
; ]% S% C; y/ O) x& C$ C - (setq cntl-pt (cdr temprec))0 d9 N' |. x: K! |! G
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
0 D6 E; @; b7 [+ L+ H( m; a+ w& S1 P - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))" n8 c( @: h* b* Y
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
# O5 \% L; G/ n) X8 a& T/ O - (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))* N& X# ^! c2 M( s( F" L, ^: q
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
! E( e; W+ e1 H, [; O, V; O& j - (if (= rational_spl_flag 1) ;; if rational- a2 q- C' i6 {( Z9 [& x
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
. h. E! M( ~# j! H( b* j( Y* `" f - (mode_tile "weight_text" 1) ;; disable wght5 `7 [1 C1 h4 U
- )
0 @. G1 z" a& S - )8 e* V9 a8 f- c
- ;;0 ?. v* m5 K, a1 l
- ;; All the spline info is contained in a single elist. We must do some
1 J5 i5 ?# [; G - ;; tricky list processing to loop through the elist in order to display* P; o& {& V: n9 j5 A' Z7 c9 A
- ;; all of the user data points.
% \& i2 {8 j' m) ~( C5 E - ;;) Z4 W8 q8 t; N% t! Q
- (defun next_data_pt ()0 f- {* J$ Y! {. W% z; y7 U- ~
- (setq elem-no 0) ;; elem-no = element counter
9 S+ C! \" E2 O" m) l4 s - (if (= first-11-time 1) ;; If first time, find location of first
" D* \! C. f7 @! Y - (foreach list_item elist ;; data point element in elist8 o( Z( B4 k* s/ r' `9 t
- (progn
" E0 `% W! m7 L- V1 w# k - (setq elem-no (+ 1 elem-no))$ u) i% ]; b: U* O! S8 v8 @ [0 h0 s
- (if (= (car list_item) 11)/ f: X- I# }6 p2 v. k1 I) {* b
- (progn
- l7 @# H k) r' V4 I: x" N5 s3 U - (if (= first-11-time 1)
' ?: z6 _$ p1 p% c+ p5 B/ { - (progn
0 e8 H2 y2 S5 G! a j, W - (setq first-11-rec (- elem-no 1))$ n o. u' M: l, M' y' i; O' O5 k
- (setq cur-11-rec elem-no)( J1 V; M, K) {7 \. O+ J/ q7 s/ Z
- (setq first-11-time 0)* z; S. B' {: B# I* j
- )
3 z1 V9 S( S1 u# b% o& q - )( J4 y$ ^' J& Q4 G6 I
- )7 B5 z2 e5 V3 w' V. v. n
- )
c1 g( H' z+ Q, {! Z9 F& a7 Q - )
8 C& O2 G8 S8 V8 Z; N - )
3 ]8 J6 U! y; f1 K7 M - )
4 @0 w; X* X1 M# _. u - (setq temprec (nth cur-11-rec elist))
9 R" I7 a% q- }- J - ;; If it's not a DXF "11" element then we've gone past the last; B- W9 F; e2 }4 D1 F
- ;; "11" element. Go back to first "11" element. Reset counters.
6 I+ Z) }& _9 t2 D2 o% [ - (if (= (car temprec) 11): k, w5 r# F# _2 u# V! W: Z: N7 s8 i0 A
- (setq data-pt (cdr temprec))3 [: E) O# o3 ^+ G, V( J
- (progn ;; else' v" f; N H6 _4 X7 j
- (setq data-pt (cdr (nth first-11-rec elist)))+ ]& w) V* b. Y$ s# ^
- (setq cur-11-rec first-11-rec)
9 m$ t6 z; D9 ^ - (setq data-pt-indicator 0)+ g$ Y8 E5 H6 L/ T' y
- )# a' P6 ^! ^& {6 b# l/ A, t& \5 q' Y, x
- )
4 \' F. w* Z% T( d - ;; Display data point and ctr. Increment counters.
/ D0 k" @* p( D, w1 I! p4 Z2 X - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
8 p; R8 \3 \ o! t" C - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
5 t {$ o2 G) R% k2 l: }9 N - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
# }: X3 v9 |- ~ - (setq data-pt-indicator (+ 1 data-pt-indicator))2 F( G/ X* H; t9 B( z
- (set_tile "data_ctr" (itoa data-pt-indicator))
* G/ x1 R) i. [* Q - (setq cur-11-rec (+ 1 cur-11-rec))
7 F) T+ k8 L Y9 e - ); U+ |' x' s: l9 h( d
- ;;; ^. e( X2 p0 E
- ;; Modify SPLINE
1 \8 M5 H' Y( r7 Q$ D( ] - ;;
* ]7 R2 `- \: T: r: e - (defun modify_spline ()
2 L5 T6 x0 s) @- Y* ^6 D% k: @ - (modify_prop_geom)
% g& h# V: c6 y( u4 p+ B% M - (entmod elist)/ {- O9 C2 e% H! ~; H$ a; k
- )9 Q9 Y$ I& X! p5 Y0 M
6 |. o: q5 n! i' g& K- (defun ddspline ()- u$ y/ r H' P, }8 P3 M" m
- (if (not (new_dialog "ddspline" dcl_id)) (exit))
0 h0 Z5 U0 X$ t- n9 H& e& M7 X3 Q - (set_tile_props)7 h. |8 l' x+ O+ N
- (set_tile_handle)! D- n) V x7 y2 ~- J
- (set_tile_spline_props)
6 \/ y& i2 q* {6 n - ;; Display first control point
( z% P/ @- q8 `) C - (set_tile_cntl_pt)
+ M! D& ]7 W. f. J - ;; Display first data point1 [" p% F7 @3 L
- (set_tile_data_pt)
! K( O# C* u: T - 7 [4 e" f" T* v) H' R
- ;; Initialize flags to indicate first time through the dialog.
3 j6 {* B: ?3 i - ;; For control points and user data points the "next" buttons, J+ _3 @0 J/ P8 z9 Z. {
- ;; in the dialog call the appropriate functions.
- U) f& X& @/ O- k% p8 E - (setq first-10-time 1): X3 E- S" |; u0 G/ G
- (setq first-11-time 1)
* K, M9 I' O2 E4 J G0 N: z - ;; initialize control point number counter" k* @: V2 a' o1 H4 g
- (setq cntl-pt-indicator 1)5 Z: S. X$ A8 z/ D* c
- (setq data-pt-indicator 1)
6 r5 n i/ Q, B7 y1 f9 I - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))( X0 i$ x$ h; W8 W, p) o
- (set_tile "data_ctr" (itoa data-pt-indicator))5 I4 Y% M8 h- ]
- (set_action_tiles)8 h7 L1 ]; d5 |! b( M5 L
- (setq dialog-state (start_dialog))/ a/ s9 m1 T9 b" X' Q$ Q
& A6 q; e! s. u' p. B& |- r% s" }- (if (= dialog-state 0)" l" V3 o7 H. I) G
- (reset)
& n/ |9 \: X6 x$ e& X) f - ); A8 _; C: V2 ~ k* m
- (if (= dialog-state 1)
" v9 e7 `7 k3 D C5 V7 A8 r7 c; m - (modify_spline) K1 Z. P4 b' F3 f
- ), S. q! t& l$ _+ ]% _
- )8 N+ P( \( k! p b3 j
5 Y( U5 o+ S0 s! D: G- ;;
6 [5 D$ Y* h% j - ;; Modify DIMENSION, L4 `$ p+ U& y6 O. H
- ;;
" }) B4 c8 e2 ?( Y P7 z - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
' {. N' G# a X+ {# y4 e/ p3 d$ C - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist* r0 p8 n, [8 t4 C# i% X8 @$ z& t. |
- dimtype dimsvcurset)
$ r: g# F, r+ o" p, \/ r - (setq dimtype "DDIMEN". c$ g; C2 K; I3 l& M
- dimsvcurset (ddimen_dimsty_restore)$ h' W# T; y8 r z* f) b7 s& K$ l: U$ B
- )
/ F+ \. B4 H, t - (if (not (new_dialog "ddimen" dcl_id)) (exit))6 u2 Q0 `; u) V
- (set_tile_props)& D5 g* r1 @2 _. W7 R
- (set_dimen_props)" d% x* _; X; x5 ^. u( k8 S
- (setq dimtext (cdr (assoc 1 elist)))
) P( b* u; F1 V; e5 Q - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))% U) w1 c7 R1 n4 [
- (set_tile_handle)0 ~2 H- \/ B' A" C, \9 c* ^% d; p
- ;; Define action for tiles8 U8 L# K8 b$ O: O
- (set_action_tiles)
% M3 _/ q0 b8 u+ {
% z: g; L8 h9 N2 ]! R T- ;; Set initial focus to text edit box.
& ]4 f( T0 o. R- W, ` - (mode_tile "t_string" 2)
7 h8 }% z, l9 d" U* p
; p; p. Q; t. W5 q8 G$ K- (setq dialog-state (start_dialog))
7 l# A' A6 J1 Y! z& _" H - (if (= dialog-state 0)
$ i# ^( r* t3 m6 p. M- }) B - (if (= ddimmt 1)/ s6 v. @; O/ j" c4 C" y/ @ k3 m7 {/ i7 S
- (reset)
6 l: {: T$ T9 w) F3 {4 O% [- b - )) @& B& ^3 N1 G) w2 Z- k9 s
- )
7 A' c: B( T3 [ - (if (= dialog-state 1)
3 }" ?6 ]3 n! ]$ d - (progn
& f* @7 W$ ^' Y2 a - (if (/= dimsty stname)
1 X* m( Z" f8 l$ q7 R' v* p - (progn$ ? t. C S- b; r- u& z
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
0 {8 R+ _6 J" b9 c4 t - ; doesn't have it.: Z9 o/ \ g6 g7 O8 J
- (if (null (assoc 3 elist)); f' A3 n; @8 `9 {
- (setq elist (append elist (list (cons 3 dimsty))))
% t, n3 r& m/ w$ x/ G - ; else just replace it.
5 O. h9 O# L2 c9 k' f - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)); B8 b: e% B1 ?: U4 g# ?' F
- )* [ B9 O+ r% B+ r" Y
- ; refresh sv_dvlist with new dimstyle.
9 J8 ^6 D/ Y- e$ }! s& q - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
7 T0 R [+ H+ |2 Q8 Z" K - )& L/ w, ^, x Q" D1 h0 |) x
- )
: S0 b. C2 a/ E7 D" `0 |% i3 k - (if (not (null dimlist)) ; attempted to change dimvars0 g; n$ M5 h. l) J
- (ddimen_complist sv_dvlist dimlist dimtbl)
# G5 [; x6 _7 ?2 U; _9 p; {9 Y, _ - )' h$ M* ^/ w- f
- ; Modify dimension text
n- N: _4 y1 P' c( d7 L- \ - (if (/= dimtext text)
! U5 E4 S9 ?6 j' z; U6 j+ | - (progn4 U- V/ Z$ q0 v1 N% X
- (setq dimtext (if (= text "<>") "" text)); P2 W8 E/ L D2 x8 m3 }, D, s
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
; N0 Y: z: Q& r - )
& |: F# m) v2 r6 s0 T: u - ) }8 A x) \/ j3 {% Q# y9 `# d
- (modify_properties)
$ B' h3 n- a* r$ F j, O) M - (entmod elist)
$ |" C0 L: r' q/ d' C - )
9 Y' r; C9 {, f# }8 R0 q1 U - )3 h5 A5 g6 D2 n u6 z1 \% Y
- (if (= dialog-state 4)
( p" h8 i- x/ _ p - (progn
( Q4 N0 K8 Q# G3 O7 t0 ^; ] l9 d) w - (setq ddimmt 1)
6 m4 C2 b3 U2 W, G' h5 H5 d, T - (if (/= dimsty stname)
% a/ Q ]4 F) O* e; p - (progn. \, S4 w4 F; n9 F2 m. t
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case) J- V/ _$ o2 @
- ; doesn't have it.
8 v* L, k' V/ H8 M - (if (null (assoc 3 elist))5 X3 W- n9 a' I
- (setq elist (append elist (list (cons 3 dimsty))))
0 }1 D9 B! m' W: Q& w6 S - ; else just replace it.
# B: u; p3 G9 u$ d9 z0 \ - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))1 O" g# }$ l2 n% S
- )
& }7 V# ?, ^+ V7 H( B; k - ; refresh sv_dvlist with new dimstyle.9 Q0 ^9 c1 p& \' C7 z. m' J
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))3 h; K+ l; c3 j$ S4 C
- )' ~+ w8 w# V& x6 b( A2 x, f+ [; h
- )
" ]+ e7 o: P) d# f Q: f+ S - (if (not (null dimlist)) ; attempted to change dimvars
) _1 H7 W; l: w - (ddimen_complist sv_dvlist dimlist dimtbl)' V6 p0 C, }4 Z3 T8 n
- )9 V- u6 D/ ^0 W+ b7 D! ^& f' z
- ; Modify dimension text
( X& W2 g" g. R1 A - (if (/= dimtext text)
. ^% J1 z6 T' J' R$ U* h - (progn
: C" q9 b) v0 e6 j3 O! }6 ^# {( I - (setq dimtext (if (= text "<>") "" text))9 ~; i# T9 m- X, }
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
! }! k8 G* z$ d4 f - )/ W6 q& }3 x( P/ G+ G
- ): o, v- J3 P4 q$ F( H# u
- (modify_properties)
; } |9 x) Q1 B) @3 r: h2 M - (entmod elist)
9 T( c( [: F3 V7 c: Q- u - (safe_ddedit ename)
: a8 V* h" e1 s9 i- P - (setq elist (entget ename))
# L, d1 J w( m8 N0 j3 a - (ddimen)4 K4 r a7 K; C" l* o6 |
- )% {- T0 E' H, b, g
- )5 a8 @; G8 M8 V; P) D7 _: v' n% m
- (ddimen_setvars dimsvcurset) ; Prepare to exit
- h( H% m0 n+ S - )
4 M2 g! U& e, O6 X& d6 B - ( b, Y) s- v+ z* {* {3 `5 w& b* _7 F
- ;;2 l# Y4 e( H, s- o# \$ {
- ;; Modify TOLERANCE
7 G: H3 }, Q W8 Z! q8 S - ;;7 x4 e/ _1 z V, ^* C
- (defun ddtolerance (/ a stname n dimtbl
; b8 P* G$ A$ j1 I) s: N3 G8 F - dimsty dimlist dimovr sv_dvlist stlist dimtype
% J2 M1 l# V& z9 o/ e - dimsvcurset)
) k* h# P0 Y; r% F" C& q - (setq dimtype "DDTOLERANCE"9 g- g- H) C& S2 a2 K; c( b$ p
- dimsvcurset (ddimen_dimsty_restore)7 e) R- D, L8 o8 {
- )4 b1 R: }# C2 R
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
* c) b) i! n8 i! w! D - (set_tile_props)
; z& n# h) S+ s3 i4 H3 N2 ` - (set_dimen_props)/ b' l1 t' n# R C7 I2 x2 O& \6 X
- (set_tile_handle)$ O2 {" }( N0 }
- (set_action_tiles)
M4 |# T, \0 { - (setq dialog-state (start_dialog))
V8 H/ F$ X( P1 m M$ E: z1 h. F - (if (= dialog-state 0)
/ L! M: ~+ C2 S% ^$ l - (if (= ddimmt 1)# j% {( D+ B1 Q7 q$ H2 U
- (reset)
8 f; t G; R- d9 D - )4 w% l: s: R, T( f# [" U N
- )! ?- R5 [5 Y4 v4 J
- (if (= dialog-state 1)
0 p" S5 ?* G, f# } - (progn. R* G4 a5 g9 s8 v/ U2 u
- (if (/= dimsty stname)& p4 K1 e8 U' e3 m. K! l( C
- (progn
+ M* M8 ^: |' { - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case8 H' i2 G" f0 ?. U
- ; doesn't have it., W) H8 _, A9 c$ a: z4 W
- (if (null (assoc 3 elist)) F$ Q1 L* D4 e6 m$ a) J
- (setq elist (append elist (list (cons 3 dimsty))))) U7 l0 B- ]' V( M1 R' W/ S2 K
- ; else just replace it.
3 @( Q( m* K* l2 G0 U( p- `- X; W - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
" O" |6 G9 f! K - )
. v" e+ J. ^' t7 i7 d1 C - ; refresh sv_dvlist with new dimstyle.5 q0 `8 H0 c* @% c2 p6 \- w' l
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
, o$ a$ }% L2 C! x' P; P9 }7 X - ), @* m; o) v: C- C1 z* y7 p
- )
( v: E8 B7 X' G' v8 S: N - (if (not (null dimlist)) ; attempted to change dimvars( N$ E+ m9 \" y$ q- }
- (ddimen_complist sv_dvlist dimlist dimtbl)- N0 I0 n* Z) H+ P7 X! s! @0 Y
- )
/ b$ a# J5 p7 n, ]* ? - (modify_prop_geom)
$ b. Z9 d8 V4 l' S' V - (entmod elist)
* N; D+ m2 F/ e) l7 I" @' t - )0 j4 s, _' @+ x) p: r
- )
% `4 o: S7 J! Y - (if (= dialog-state 4)5 x! |, {2 b. g# y* S/ A* J
- (progn* K7 O, R6 K; d7 D
- (setq ddimmt 1)# y% B. c, u l8 s w7 }2 ]
- (if (/= dimsty stname)* L- a9 w' I% l6 g
- (progn3 R5 u! x8 [2 p7 L+ T1 S
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case3 l9 ~9 d8 o7 p& D2 c/ W% Z) E
- ; doesn't have it.
" p: ]$ H8 z0 @) a* k - (if (null (assoc 3 elist)); N9 Q2 Y1 q1 |2 c/ \
- (setq elist (append elist (list (cons 3 dimsty))))
h" _& f% L, T$ [! ~2 O8 Y - ; else just replace it.# A. M. m; R; P5 G
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
& M$ M! }" q. ]2 Q- C% ~- N - )* w3 _( \( b! K- V: @
- ; refresh sv_dvlist with new dimstyle.
t8 C, n/ w v- u0 u t5 ]( P - (setq sv_dvlist (tblsearch "dimstyle" dimsty))9 S" i- G+ g' N; u$ C
- )* k: g8 U! [+ c: c4 `; z* }& I2 F
- )
2 }0 H& G! N" D5 W - (if (not (null dimlist)) ; attempted to change dimvars, ~& F6 u+ n( q( O) b
- (ddimen_complist sv_dvlist dimlist dimtbl)3 f3 P8 V9 D% Q. z0 _( E) n
- ); ]' _% l; f1 O/ q$ g$ `+ W* `8 C
- (modify_properties)
4 _- P1 X9 {( j: Z. L8 ?9 c, S - (entmod elist)+ _$ J% G0 M0 W" q
- (safe_ddedit ename)" ^$ P( ?, _; ]
- (setq elist (entget ename))# ]6 o! I/ ~ q% L% i. ~6 V
- (ddtolerance)7 k2 e. h' W5 ^ Q7 g; v
- )2 T$ z: ~- I3 _* ^& k/ J q
- )
0 Q- d! k& A6 o* ^ - (ddimen_setvars dimsvcurset) ; Prepare to exit
$ ~, Z6 ~- f# G6 n5 |2 o - )
/ N( b2 ]: Q, W ~2 a
1 }/ a4 A5 h6 b( F- ;;3 @& {8 e# s1 K$ S* _+ y
- ;; ddimen_dlg - jump to ADS ddim module5 o) y. r+ {, ]' [
- ;;
$ P* Z6 a0 d' w& X - . d1 Z- W. W2 c u0 z3 @8 p) |4 ?, T
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)6 V$ `" M( Q' r* b" @
2 M+ N$ q& o# r( r5 [ J9 w- ; Jump to DDIM with overrides if any.
! C! n# [; i* \8 x) ? - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry/ f, P3 h2 S$ v- \5 R' N" x: E
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
: n2 S: |! Q$ r8 \ - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
+ f. z2 V0 j$ J* I3 J8 W- L - )" Y7 _4 a b% l7 l T' q
- )2 f8 y8 h) n) p M V ^
- 2 E( ^: a% H0 B% j: j7 {; _7 V
- ;;' ~/ ^2 D1 T) _5 k K) | J, g, H
- ;; Dimension variables updated are stored as overrides.0 F% E- Q+ s f
- ;;1 N! i) Y# Y4 o
- ! x0 `/ G# U; n# p* b. p4 y: u5 ?
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
% m0 a3 S% A. o9 D/ { o - dv dime commandIssued); [ I5 D+ u# U6 Z8 h
5 |) ~3 [# u( F* ], y- ; Here we skip the following first three items:
% m) l3 a/ k4 ^8 A - ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)+ q9 Z; ?7 n5 D1 u8 Q' {5 M
- ;+ U9 f3 ]- M& w' x( N- c
- ; The list comparison immediately begins with dimvar.
9 u6 {0 |' V5 U! ^' |$ w - ;
6 n: Z( W. d& m3 L+ J1 L" R o4 ` - ; dimolist - original states of dimvars& d6 s3 r0 q8 ^5 k
- ; dimnlist - new dimvar list which is of the resbuf's
8 V/ n6 A9 f; h' M. T$ V - ; dime - entity name for the dimension( r p2 ]1 c ^& j
- ; odvar - value of dimvar for the dimolist
& N7 ^$ J2 H' A% e0 J! U9 T6 ] - ; ndvar - value of dimvar for the dimnlist
7 \7 n. l, z8 Z - * t/ c! K! j \. J2 H1 n9 }
- (setq i 3; d" b/ F( M1 K$ j# Z
- dime (cdr (assoc -1 elist)): b5 _" _0 o3 L+ t7 i- V
- )* m1 n! R: `1 P) g5 T
- (while (setq odvar (cdr (nth i dimolist)))) B2 Z- c/ T0 S3 I. ~+ m# y6 x
- (progn. B8 i9 M# a+ J" n4 p: |3 |% a3 K
- (setq ndvar (cdr (nth i dimnlist)))
& z5 u+ c! P9 g+ E% Y7 F - (setq dv (nth i dimtbl))( o3 j7 y! H n/ O
- (if (eq dv "dimtxsty"). L$ B& m* x: `+ h
- (setq odvar (cdr (assoc 2 (entget odvar)))
3 v2 `1 W# v4 l - ndvar (cdr (assoc 2 (entget ndvar)))
! R; c, s" J8 P- ]/ Y' V- g8 L6 j - )
/ h* o# h1 p, k0 M1 F$ x* U% R - )
9 V% b7 _9 @9 Y9 C- {& s
7 ^) {: s5 B; Z9 _! l$ @- ;
( j# u- J6 @, C6 t4 ?6 T - ; In order for DIMOVERRRIDE to operate correctly with string
! ]* T$ t& [; U( \ - ; based dimvars, we must pass "." versus NULL strings.9 y- E) C! D" c" N0 o s+ H4 W3 L5 Z
- ; In this case ndvar is the new dimvar value the user wishes1 ^9 \# v7 Q; f" C0 y Y
- ; to update on selected dimensions.9 R) Z4 S0 k! t# ^: ^1 x
- ;
4 f. c) `* {4 w! d p# i - (if (/= ndvar odvar)$ i& W3 r5 G& J5 _2 i4 @
- (if (= 'STR (type ndvar))
2 s9 G. ?" \; j; m$ H6 m* ` - (if (= ndvar "")+ v! _! z' z. H( j* T& g4 {6 i8 J* v9 J( t
- (setq ndvar "."))))
# B/ W1 k, t5 I( K4 z8 u - $ C; Y/ t# ^4 e9 f# ~
- (if (/= ndvar odvar)
, I# a. x, d& H0 Y - (progn
) X: ]% f+ P% w, U - (setq dv (strcat "_" dv))
( H7 d; k- K) K! [; m9 W1 a5 Z - ;5 a+ [6 Y$ y5 {* W9 O$ J, V" b/ {. b
- ; Start the dimoverride command
4 g5 t% K0 K; r3 b - ;+ l' F0 L: y2 B5 y
- (if (not commandIssued)* M r. w- L# r
- (progn; T; }# h" t0 D
- (command "_.dimoverride")
, \/ M) D1 L- }& T% V0 N - (setq commandIssued "T")
. W7 G1 I) Q# R w - )
0 u) L% y+ o# L' P - )
* J0 U/ z) v: E) [2 ? - ;
* }3 f9 K3 E. l) m7 K) V% w - ; Issue dim overrides
3 _( y/ P' L' x0 ~ - ;( l8 [9 u2 W( w
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))$ ?. f3 C- h( ^1 h* h
- (or (= ndvar 0) (= ndvar 256))
" v* K4 F7 ~' I7 a - )
1 X0 C" ?; a" O, I* Y - (progn1 e+ _/ F; R0 f M( b5 ?/ h
- (if (= 0 ndvar) (command dv "BYBLOCK"))
5 G( H( b. O- i0 S: R4 E - (if (= 256 ndvar) (command dv "BYLAYER")). B) s( ^2 E1 D5 U; ~0 A5 ?! `
- )
) T- H6 v, p: {3 U) v' X6 i) X - (command dv ndvar)
! j& J: J' G" z4 X5 @( H, S - )/ L' m6 J! G2 [1 |
- ) Q2 ~. ?! ]* y) L5 ~/ Q' x
- )2 B- J. f! f4 C
- (setq i (1+ i))
5 v3 z0 Z+ X8 z" t# V2 B; {/ ^3 Y - )
0 T1 s/ ]: C! n2 | V# e - )
! q, n' L8 j: N! s7 K( r - ;
' f/ W9 j/ M* {) f- `; Z - ; Select Entity and terminate command3 D& E' a+ O9 G1 C1 G6 U! k! j
- ;. H. ^$ r7 P9 H7 S
- (if commandIssued6 o9 K9 B( w/ V
- (command "" dime "")
! W8 p8 M( Z* w# n& i( ~* D* c - )& [7 \5 K2 w0 {8 h/ I& U3 e% ]
- )
) J" u% ^3 l+ {7 Y
0 Q' l8 w. T! K8 w( p1 t- ;;
+ A2 Y6 t0 M3 b4 Z8 P - ;; Get style name currently selected style name." v; W! W/ V9 q$ Y* B, a/ e
- ;;
$ O t2 N2 S; A8 T- l; h3 ~ - & y+ m p2 Z+ D% e$ @' @
- (defun ddimen_style (/ dimsty)
7 f1 H) n8 K- @2 q: u+ \ - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
" y4 i$ P5 p6 p% I5 s - dimlist (ddimen_getdimvars dimsty)2 K* w2 Y# B7 Z6 u% _+ ^, Y! T
- )
, k' n4 h$ ^5 B; Z - dimsty
' [# U- I. {/ p& I% z - )
O' e* Z0 {1 \0 D - 2 i2 d j% g, [1 X% N
- ;;
/ ]. v/ g" x# J' t3 M; O - ;; Set dimvars
! z+ w$ [3 k' Z4 W# c4 l - ;;, K9 d) z- d8 @% x3 V
- (defun ddimen_setvars (dimsvcurset / dv i)/ d3 ]! Y2 v2 C" x8 t- f
- (setq dv (cdr (nth 1 dimsvcurset)))
6 C' Z4 |/ D9 a - (command "_.dimstyle" "" dv)
+ Z8 Q" L" A4 o3 I - (setq i 3)
% P- E$ r5 K7 g5 P! f. a# r - (while (setq dv (nth i dimsvcurset))
4 d- H& E, N J - (progn
: E/ L5 [8 n( M/ v9 R - (setvar (car dv) (cdr dv))" C6 ]- I6 I6 v8 [+ O: L0 {
- (setq i (1+ i))
# J# I! a4 {+ j) z0 {7 ?, i - )
# f3 y( v" T& F' A! y* t - )
* E! v+ g4 A1 t; u. m$ r, a - )( Y! s! C1 r" p2 l# _7 t5 y: p
- ;;* S( D- U# V: I0 {8 w' l) v+ x% n
- ;; End-of-dimension! g; M4 `0 L& g) }1 [$ u2 c
- ;; ==================
+ L1 U3 Z9 Y% Y; q- } J& ~ - 2 D) {/ J0 W- l: z1 W/ L1 P V
- ;;! O: {2 p+ F; J8 E6 E! v. j
- ;; Sub-dialogues for properties. Common to all object dialogues
- c1 a. @4 d0 P) U8 q - ;;& s0 Z1 b5 C# T) J) z
- ;; This function pops a dialogue box consisting of a list box,image tile, and4 W x2 R) [! Y; \: j6 T
- ;; edit box to allow the user to select or type a color number. It returns5 _/ G% K( H, V4 F; M
- ;; the color number selected.
* b( e& k( v) f - (defun getcolor (/ old-idx colorno cname lay_clr)
( P( m7 v8 Z: ]; ~3 M3 e - (if (= (get_tile "error") "")2 v# I( R! y. B- @7 r* W% H+ S6 |
- (progn
: a6 Z! E H6 \# [0 q' B8 R/ {: W$ G - ;; Get the color associated with this object's layer, for use6 Z$ U0 R, u: h: w
- ;; in the color swatch if the user selects color BYLAYER.) C$ r+ f+ J6 {* z. v2 V$ o1 F
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
( D. w& V) s9 A) z% S% A8 P3 W! V - (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))& G7 j& U2 j/ n& A
- (progn$ ?6 y/ c+ _* b4 z3 o3 W3 g V
- (setq ecolor temp_color)
/ e5 i* s8 W: `& G; A! E7 N - (setcolor)
6 d$ W+ {- O. Q% t5 R S/ b - )
8 d: A7 x$ X5 Q4 O - (setq testcolor temp_color)
( c! I- [# X) c' X$ r/ v! s' g- B - )
! d1 z! e; _6 W - )
, o4 L4 D) I6 e) x2 l - )! V8 @5 v Z. I1 e7 Y; V
- ecolor" f- u4 E6 l9 I- t$ d
- ); r+ T7 K/ S. U! j& O" H4 E* c
- ;;9 \' v O* X* _9 s' d
- ;; Function to set the color tiles.. H) H9 J1 ?/ J7 L
- (defun setcolor()) T* y* ?! S4 ~5 M( l* @
- (cond
8 k' ?: H: K+ O6 v4 b - ((= 0 ecolor)
# X1 F) o0 w, _( ^4 U6 x+ ?' B - (set_tile "t_color" "BYBLOCK")) n4 X' K* j% x7 |
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white% X8 A" x3 F6 d0 d+ j
- )
. i. t6 Z! |2 k7 @ - ((= 1 ecolor)* h3 Y, ]4 R5 `' z+ j: e
- (set_tile "t_color" "1 red")& U# }( w' S! \) U4 d& h5 P
- (col_tile "show_image" 1 nil)
: y w) r1 I4 F* G& z, X - )5 K* Q4 N1 N, L2 D# K( S( q
- ((= 2 ecolor)1 q* D0 J8 ?: q; ~4 l5 O& W) M
- (set_tile "t_color" "2 yellow")
* ], i7 [7 s$ g6 F# n5 z- J - (col_tile "show_image" 2 nil)! U* z5 Q/ e j! }+ r3 S
- )
- S3 M7 S$ X" d4 @ - ((= 3 ecolor)
, K% r2 j5 U" [3 p7 J - (set_tile "t_color" "3 green")
) m* B8 g7 d1 M1 D" n- s - (col_tile "show_image" 3 nil); o) A6 p* l2 z {3 v& e$ z! G
- )
/ B" H& u7 y( O: |) P- o% H$ M - ((= 4 ecolor)2 @* L# i* `; D# B% [( ]
- (set_tile "t_color" "4 cyan")
9 H) s* p' b2 k2 P - (col_tile "show_image" 4 nil)
4 w2 u) L& U a8 r, F - ), [9 N Z4 ]5 o( L
- ((= 5 ecolor)
9 |5 e: n7 C( ? - (set_tile "t_color" "5 blue")4 r1 L! V" a; Q1 _- U# T
- (col_tile "show_image" 5 nil)
% w2 F5 b2 p# W; I( J: t& ] - )
/ h% J$ @# g$ z* p! l - ((= 6 ecolor)" y5 w4 r6 A! h4 V [8 t
- (set_tile "t_color" "6 magenta")
( b- ?4 F, s5 \- r' G' `$ w5 E - (col_tile "show_image" 6 nil)' R& ~9 E( P4 w2 Y
- )( n$ x- y% S! p, u' R- z2 B _+ @) r
- ((= 7 ecolor)6 z4 |- L4 S4 C6 g
- (set_tile "t_color" "7 white")& N9 k" ~& c/ w, K
- (col_tile "show_image" 7 nil)
+ V3 p( G2 U; ^7 K( h+ ~/ c - )
e5 _7 Z9 R( I0 z( N - ((= 256 ecolor); {7 L9 V# R9 F, w! R
- (set_tile "t_color" "BYLAYER")
' |4 d N, f5 `' ~$ R! p, `' Y3 j - (col_tile "show_image" (bylayer_col) nil)
3 x$ H1 ]* G; l' d, {9 F - ); c X7 u7 x1 `0 E+ Y9 M, i
- (T
7 W: b+ L" B3 _& a - (set_tile "t_color" (itoa ecolor))7 ^$ v' j' Q8 r7 ^
- (col_tile "show_image" ecolor nil)
5 A7 H9 Q1 b7 p- W/ v9 J+ {; H& }8 N - )$ [" f# f" d/ X7 }" C9 U+ n1 E
- )
6 X9 B! I. J" I S: h - )
$ F: U# N6 ^% x+ V" Y, a - ;;
( j; a, |$ ?0 v3 B2 B* x - ;; This function pops a dialogue box consisting of a list box, image tile, and
: B3 v5 T, b W1 a - ;; edit box to allow the user to select or type a linetype. It returns the
. g( `+ L, s9 C$ x# e - ;; linetype selected.6 v7 X* h( t% n" ` G
- ;;# q+ O, l/ z! V# s
- (defun getltype (/ old-idx ltname)
/ t j. |( [' D2 v - (if (not lt-idx)' A5 s0 J! W# V8 {2 \2 ~
- (progn
6 P3 k7 X r9 |0 x+ K, r- A - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist3 [! ^* E7 z+ }; t6 S4 c6 J; {1 k
- (cond
0 d+ O8 q( S" p- T, `5 {+ Y - ((= eltype "BYLAYER")6 }" ^# d7 G2 `: S' y: e
- (setq lt-idx (getindex "BYLAYER" ltnmlst))) Q0 E& `3 y: H7 Q/ I
- ((= eltype "BYBLOCK")
( U. u2 T4 U* L1 P) I - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
3 h7 _8 t3 e) h: X - (T (setq lt-idx (getindex eltype ltnmlst)))
7 P2 ^7 T$ I3 j! |! D, H - )
5 U- t, o% k9 {' M& l% p - )
/ W; {4 @+ [4 U - )2 \+ R! w9 A9 ~8 i
) c* D: z0 Y, v( q" p- (if (= (get_tile "error") "")- W$ t* i' P0 k$ e. z/ h
- (progn
+ b( o2 T9 Z) V6 Q - (if (not (new_dialog "setltype" dcl_id)) (exit)), A* Q4 X& c5 B% ~) U. x+ J) u& W
- (start_list "list_lt") C. y% I: ^8 }+ q, p
- (mapcar 'add_list ltnmlst) ; initialize list box* n4 q4 i& @0 A+ ]0 n$ M# Y* w. c
- (end_list)! i, `' q5 y4 \. S6 E
- (setq old-idx lt-idx): w/ h! m1 V, u, A
- (ltlist_act (itoa lt-idx))4 x9 v# W8 ^4 [9 {5 Q% d
8 q m" u; F- v3 U: A# R- (action_tile "list_lt" "(ltlist_act $value)")
5 l! q; g' b' j: O* z5 W. E - (action_tile "edit_lt" "(ltedit_act $value)")% W' K: K8 w% @6 K, L! ]
- (action_tile "accept" "(test_ok)")
; h: b( Q- d7 a' J7 y - (action_tile "cancel" "(reset_lt)")
' s B' b; n4 [* ~; ~9 O - 4 Z" j- D8 P' X0 C0 i/ e* V; ^
- (if (= (start_dialog) 1) ; User pressed OK
5 w; |: U. a0 l6 p- i# E ? - (cond! q* v4 `% h0 {5 X
- ((= lt-idx 0)
" f/ W7 f9 r: R+ c; U H - (set_tile "t_ltype" (bylayer_lt))
2 X$ N& S5 X, b8 S/ x$ { - "BYLAYER"$ E( b0 O! E* |" u* \
- )
: p) j h6 n5 v9 e( J: V - ((= lt-idx 1)% O" X: Z4 y" S$ d4 |) ^1 I" u' l1 y
- (set_tile "t_ltype" "BYBLOCK")5 t; _" x! ], n) L- t
- "BYBLOCK"& L/ R. m9 j' f. o
- )7 W @4 e' a8 q- S
- (T (set_tile "t_ltype" ltname) ltname)% b9 e+ V d5 e$ Y2 d
- )
V$ D# t# @6 w/ S& M - eltype
, R( B% G& U' O a3 o1 X! l& A4 p - )0 W: W; Y' O/ o! ?; o/ X" D2 u
- )$ c; g0 Q& X1 i' I* P* }) a" y
- eltype6 V3 H0 f1 N) |' y% F
- )
6 S+ ?* z7 p6 i - )
X* r$ q4 E1 a - ;;& ~9 o6 t$ v! L% R7 B% f& {) g
- ;; Edit box entries end up here! n1 M8 L% ?$ Z) F
- (defun ltedit_act (ltvalue), n1 [2 O1 {+ R* _1 F( k2 d, O
- (setq ltvalue (xstrcase ltvalue))2 E* V! `6 [5 X- O3 c$ ?6 B
- (if (or (= ltvalue "BYLAYER")
6 B- P8 _4 b o8 t+ L9 @ - (= ltvalue "BY LAYER"))
@$ g2 F# U8 O8 z' Y+ {0 l - (setq ltvalue "BYLAYER")# I; _% P) m- l5 q! ^
- )
4 A2 W2 q: Y! v& ~ F - (if (or (= ltvalue "BYBLOCK")
9 g2 S4 j5 b( [3 M0 P7 q. M+ Q - (= ltvalue "BY BLOCK"))
# U# R. p- q% _# t! @ W, { - (setq ltvalue "BYBLOCK")/ u z9 a& u$ o7 a* A H3 S
- )+ o" w- j! J' }& i& H$ C% i
- (if (setq lt-idx (getindex ltvalue ltnmlst))7 L. B1 n* w4 b- l+ s, c
- (progn
+ F" B3 _. n# X( t" Z1 F, U - (set_tile "error" "")# m# S. _/ t, g* ?1 n
- (ltlist_act (itoa lt-idx))
6 D/ Z) t- G6 z5 S2 c# _$ I - )
! v; N4 j3 a5 \ - (progn
! x! K- d0 Q# c) _ - (set_tile "error" "Invalid linetype."), K* p, q! q1 t0 T& K" o5 i) y
- (setq lt-idx old-idx); L2 j; F4 [4 t( z4 h
- ;; (mode_tile "edit_lt" 2)
" ?, J" Z* ?' v4 W6 N) L: E - ;; (mode_tile "edit_lt" 3)
" f- P0 h" L) T& q0 J( j1 N - )1 |( D9 e6 F5 O& M
- )
+ p) g2 e( q" m. L0 @% g1 P5 t - )4 T3 X; X! h* m
- ;;
, c" |& r1 U- q+ R) G! d" j, t0 u- e - ;; List selections end up here. Update the list box, edit box, and color
9 e+ [4 R B0 w4 ^' e - ;; tile.
8 C! B$ W* W: t4 x - ;;
: e. v3 K8 n* \6 f2 I5 c - (defun ltlist_act (index / dashdata): { ?5 o. J& f
- (set_tile "error" "")
3 {2 V# p/ {4 C$ r5 I - (setq lt-idx (atoi index))
# E! a* } H0 h# l# a( i/ z1 P - (setq ltname (nth lt-idx ltnmlst))
) I$ l% ]1 b( K1 d! x1 M0 w, W - (setq dashdata (nth lt-idx mdashlist)), S8 q8 |5 h# P3 i9 C- A6 K, V
- (col_tile "show_image" 0 dashdata)
' }+ [) B( \+ t; w' C# Q - (set_tile "list_lt" (itoa lt-idx)) N0 D; D2 X8 i/ Y" ]
- (set_tile "edit_lt" ltname)
0 g% N' K6 @! K- z& Y" Z! v - )5 F2 y4 i( v4 m+ F
- ;;/ G% T7 S3 Y+ r+ g. f
- ;; Reset to original linetype when cancel it selected
7 X, i# O( B4 v m - ;;
( {# z2 G9 o: K8 t. c7 A3 {/ u - (defun reset_lt ()
1 V& o& `4 \" e5 }, ? z - (setq lt-idx old-idx)
+ D3 ]) y# H; g! ^4 a9 ~ - (done_dialog 0)" o0 h$ b8 N, }9 F. ^/ y+ ]
- )+ H w3 S" V. B% i" ]" }
- ;;# V& J7 ^3 k" e$ h
- ;; This function pops a dialogue box consisting of a list box,image tile, and
; Y/ m# X k; M" ? - ;; edit box to allow the user to select or type a layer name. It returns the n8 {, V; S* n1 r
- ;; layer name selected. It also has a button to find the status (On, Off,! Q9 I3 B o9 v& R* ~# z
- ;; Frozen, etc.) of any layer selected.
! j& d' R* u x+ e, E+ T2 C - ;;- H: Y& r5 J+ v2 i: Z
- (defun getlayer (/ old-idx layname on off frozth linetype)
' M7 @2 M/ ]( v - ;; Create layer list the first time the layer
% e) H2 t! I% M ~8 \ - ;; dialogue is called.
" q6 f% }- {. ]% ^5 S# S' S - (if (not lay-idx)1 B* o: Z5 `9 p8 D6 m% q
- (progn" o/ I3 L" V. F3 C( N8 G* E
- (make_lay_lists)9 R' b2 a% G+ T2 E) n5 `$ j) I/ Q, U
- (setq lay-idx (getindex elayer laynmlst)): O$ ]1 D2 {9 ~! ^) z
- )- S5 T' Q; V( g/ J7 E/ D
- )
% V& z% G0 p7 a. J7 u* S - 9 ]0 y& [- r/ p! K8 K) Z( L
- (if (= (get_tile "error") "")( |2 F' Q0 M6 x
- (progn! n# n, J: O4 T) R6 e, W `0 B3 c2 {( r
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
/ D& o0 U7 x7 X - (set_tile "cur_layer" (getvar "clayer"))- ?# C a0 U6 o
- (start_list "list_lay")
0 e. i" u b8 N8 {5 d& v' a - (mapcar 'add_list laynmlst) ; initialize list box0 K5 t9 E) n, b3 a+ i
- (end_list)
0 P0 U' ]: r1 O/ o8 n0 d - (setq old-idx lay-idx)+ q' w$ }$ e" T* R
- (laylist_act (itoa lay-idx))% S Y9 X8 p7 o$ F' H' N
- (action_tile "list_lay" "(laylist_act $value)")
6 S$ w1 A+ X* O; \' G1 y- E5 W - (action_tile "edit_lay" "(layedit_act $value)") v4 X, r& S" Z
- (action_tile "accept" "(test_ok)")
3 P, |. i6 J; N0 _ - (action_tile "cancel" "(reset_lay)")
( Y# Q3 F! D+ \8 L - (if (= (start_dialog) 1) ; User pressed OK
( b+ @1 u) x$ M P" H2 a s* ^ - (progn
4 G" _8 p: a/ | - (set_tile "t_layer" layname)
8 s# T* L: E; ^! M, C6 Z - (setq elayer layname)
& ~* _* c8 \( b* B; v2 k# i - ;; If layer equals bylayer reset color tile
- J* O, I8 B4 t- {& _ - (if (= ecolor 256)$ B6 {, o. S1 w; r/ ^6 _+ y4 R( C3 G
- (col_tile "show_image" (bylayer_col) nil)' U! g- v- z+ \: j2 W
- )+ O% k# d6 [% g( Q$ I1 ? _& N5 a
- layname% U5 k3 f: k7 \- T: {2 z8 e
- )
/ Y+ o C I' j) b. @ J+ U6 o; Q - elayer, c( t8 X) u0 b7 T% x9 y; v& L
- )/ Y) d) n: T2 y }( F
- )
; k* @3 z. [# S/ H% P6 h6 p - elayer
6 S0 _ Z" ~, c9 l- E - )
. N' ?# |2 b; m7 O+ I3 o! @ - )* a! s) k1 D4 l9 i4 x3 c. f
- ;;2 v0 r5 t( g+ n+ U8 w. ?
- ;; Edit box selections end up here. Convert layer entry to upper case. If
( S8 u9 P' C3 e( r- ^ - ;; layer name is valid, clear error string, call (laylist_act) function.
- C- k/ |6 k7 k* X* v, j - ;; Else print error message.
* y+ |9 o3 \: i" O9 y: v - ;;& o" Y: Y* p* a7 g# f
- (defun layedit_act (layvalue)
- l0 V5 z: c! M+ D - (setq layvalue (xstrcase layvalue))& L6 N# r7 ~, L! V! z
- (if (setq lay-idx (getindex layvalue laynmlst))4 I" h+ x. @5 u9 p7 h) O0 C/ ]( ^, f
- (progn
1 ~* N$ q1 ?" I8 V, D" e k - (set_tile "error" "")
& F Z3 E0 S3 b# j7 f! Y7 X) F - (laylist_act (itoa lay-idx))
2 L$ @ i' W) {5 T - )
0 X* R. |& |9 [ - (progn
2 w( f* @8 p7 C3 v; d+ d/ @5 p - (set_tile "error" "Invalid layer name."); u9 ~" y; X5 H. g& f& o
- ;; (mode_tile "edit_lay" 2)" [: T _; Q- Z: h; q: g
- ;; (mode_tile "edit_lay" 3)
9 l- {3 _7 X2 ]( n: F# A - (setq lay-idx old-idx)8 M% b( s- E: A+ D* s9 Z
- )/ c2 q# Z! m* S
- )6 j/ M6 u7 I. x, b
- )
$ @) k5 K; {: u* h/ [& _ - ;;, X+ L) D+ T0 G# N
- ;; List entry selections end up here., r- H1 P4 O) j1 B7 ]
- ;;+ ?% X# N) @; M3 N
- (defun laylist_act (index / layinfo color dashdata)
; s7 p$ N1 `! J7 t" d& a+ Q% c8 {. j - ;; Update the list box, edit box, and color tile.2 Q/ e' @$ Q' N. v" _$ S
- (set_tile "error" "") m) m& c* v# u7 w6 Q, k) w+ ^
- (setq lay-idx (atoi index)), y6 ~+ n# L8 p: }& v4 k
- (setq layname (nth lay-idx laynmlst))' T+ E c8 X) @% Y
- (setq layinfo (tblsearch "layer" layname))
5 @' @6 I: {. ^# A4 U# j - (setq color (cdr (assoc 62 layinfo)))
0 P, U1 v5 o. O/ \/ K7 c7 m - (setq color (abs color))
$ _- q. K0 q2 }& }2 \ - (setq colname (colorname color))( _0 k6 F$ M& L9 r" V
- (set_tile "list_lay" (itoa lay-idx))4 r+ f8 C& Z5 c3 H
- (set_tile "edit_lay" layname), @& h" @1 i6 g- ]- l+ A* k
- )
?4 a7 p2 r5 F% j7 ^6 S% o - ;;; A/ L/ l' T- `! p
- ;; Reset to original layer when cancel is selected.0 J" ?' r( y1 ]0 b5 P. K
- ;;
) z4 t* k5 C3 e, L( x+ q. z - (defun reset_lay ()9 {! G/ D& c4 u) y- x9 A
- (setq lay-idx old-idx)
( ~ v7 {8 M7 z2 l0 O' T - (done_dialog 0)
) H) p3 u6 F& [! Z - )
; }+ E2 ]- c" p9 @# B$ x - ;;
! p* T8 ~1 f% M5 {" d2 e# N - ;; Checks validity of thickness from edit box.1 g( D8 u7 X! H, Y& ]& Z
- (defun getthickness (value)
9 V7 D5 @9 n1 M B5 q! X8 Z0 j - (setq ethickness (verify_d "eb_thickness" value ethickness))
7 m( S( K; z0 A9 A& A( w - )6 @7 [# ]$ ]7 _" @& {
- ;;( k! Z7 z! U3 a8 r5 x2 q, z5 x- ~
- ;; Copy of (getthickness) for ltscale. If more, make this function) m0 j2 D* v8 z1 a' I: X$ |4 Q
- ;; generic.
0 T. K" V! \8 I9 j1 o: K* e - (defun getltscale (value)
. `7 S4 y9 l5 Y Q. Y1 B - (setq eltscale (verify_d "eb_ltscale" value eltscale)): i, v* _! J3 Y9 B
- )0 f4 H9 O$ ]( S- g+ ?
- ;;6 _' ~" |! v6 |( n$ p9 k
- ;; This function makes a list called laynmlst which consists of all the layer }) d/ d3 D5 D- D
- ;; names in the drawing. It also creates a list called longlist which5 O6 P5 G* h- t( x
- ;; consists of strings which contain the layer name, color, linetype, etc. a; ~3 Z# [% {, R6 o
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
) n# c. @: [, p2 K) x: }. N - ;; same.
' L, E2 l3 l T! b, f/ y - ;; V9 I7 p5 N; ]
- (defun make_lay_lists (/ layname sortlist name templist layer_number)5 c4 V0 M) J) P0 s% N
- (setq sortlist nil)# I; |3 ~! o8 S9 L7 b1 x; d
- (setq templist (tblnext "LAYER" T))
/ x9 }, B1 k6 ]2 R' A1 S - (setq layer_number 1)
0 w" Y7 _, g! r% b y2 K - (while templist P3 R4 t a6 t
- ;; No xref dependent layers, please.
' K: V& t0 i4 N - (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
6 s& m: o4 M7 p2 I, H; s - (progn) a0 n, v8 F8 ?4 H1 U$ Q7 ^
- (setq name (cdr (assoc 2 templist)))
9 _3 l& l. B1 n/ J7 z8 x- q - (setq sortlist (cons name sortlist))/ d. j. ?' \8 Y/ f0 ]* M
- )
, t# p, n$ Z1 V( `7 O! o6 z8 Q - )/ J! f1 X% p# X! {, F e( b
- ; Get the next layer.
4 I" s' I: j Q# B, h& O, ] - (setq templist (tblnext "LAYER"))2 ? Z! I. h; a* j
- ;; Not dead message...6 Z. g7 R% I. s
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))1 v7 r! g; [( V; v1 j
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
; V3 j2 ^( q: F3 K6 ] - )* Q: I, E* @; w* F2 A! x; X N
- (setq layer_number (1+ layer_number))4 x' f. [9 Y2 G4 X; E( ^
- ); t7 r7 h- V+ T% F7 g, g3 b
- (set_tile "error" "")/ x7 E( Z/ l5 \$ s) [
- (if (>= (getvar "maxsort") (length sortlist))
' ]9 h. p" o s$ r" h J/ F - (progn
7 q9 B5 F" @8 l: Z7 z: I - (if (> layer_number 50)) B+ D; r: {& f- g" ~' `( X
- (set_tile "error" "Sorting...")% M8 E* a( O' J. c3 f- m) Z
- )
7 z2 \& I) r" p! n1 }9 k - (setq sortlist (acad_strlsort sortlist))' Y: K& \' H% `+ }! v( W0 v& I
- )+ {% Z8 M0 h# r3 |- v3 }6 T2 p
- (setq sortlist (reverse sortlist))2 C. s, ?$ E2 }- ^0 L
- )# R+ a9 w4 O6 f W0 H9 ^
- (set_tile "error" "")
5 c3 i1 ?+ Y6 i! S0 d - (setq laynmlst sortlist)/ k1 ^' |% N8 P4 N+ l0 |
- )8 |/ s# |1 q; V1 ]) b
- ;;& E, n5 I* j) l% B4 }% v
- ;; This function makes 2 list - ltnmlst & mdashlist.
" j! L$ Z; i' K! Y3 x9 G5 S0 Y - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist5 [$ k2 f! L# U' n+ @4 a" H
- ;; is list consisting of lists which define the linetype pattern - numbers
3 v$ t6 e2 v! C% g, y - ;; that indicate dots, dashes, and spaces taken from group code 49. The list2 s* r( D. A8 J5 q
- ;; corresponds to the order of names in ltnmlst.
/ _8 c! z% W: X) Q - ;;+ v, x. P, R. J' }& X9 Y
- (defun make_lt_lists (/ ltlist ltname)( u% j% T0 t/ X5 s \9 j# J
- (setq mdashlist nil)0 e7 v/ }. N1 V! f' s: p" v3 Q+ l
- (setq sortlist nil)1 u# M% @) v! r5 b) O( f/ {
- (setq ltype_number 1)( b8 y" B C6 {2 D$ s
- (setq ltlist (tblnext "LTYPE" T))# \0 [4 O$ b. ~$ Y% q: i, t; L1 z
- ;;(setq ltname (cdr (assoc 2 ltlist)))1 E* I5 |0 J7 \+ H
- ;;(setq ltnmlst (list ltname))
Y$ y5 N# C! U0 r& x$ Q - (while ltlist
& P. }7 G- h7 u# B D! p - ;; No xref dependent linetypes, please.
, T' U4 l9 C ]/ [1 W; n b - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
/ E$ \7 u' i) m3 N( U+ d U - (progn0 {. g7 t( K) P( j1 q
- (setq ltname (cdr (assoc 2 ltlist)))
2 \% @6 W/ y: G6 _" o' Q+ c; I - (setq sortlist (cons ltname sortlist))% `0 h( | ]# }% r& T* b
- )* ?+ N8 d/ O/ S5 Z* t
- )8 F* z+ T1 e: }3 O
- ;; Get the next linetype.: `7 q: n% e7 ]3 k7 F/ o
- (setq ltlist (tblnext "LTYPE")), \1 Q3 \0 |: b. A
" r" `2 F7 i; m( `: X+ n; d- ;; Not dead message..." ^% l. O) k, ^( a* W
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0))), }% u2 P5 W& }3 H0 a
- (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
, x0 B: O- r/ | - )
6 K! Q# z3 R1 W$ y( e |: j - (setq ltype_number (1+ ltype_number))
8 f Y# u( t9 f% f+ G+ e - ; Z) _; G0 _6 i
- )
9 g" a5 G4 x) X" E, }3 W) I - 3 \; G1 o. m5 H8 ]- o
- ;; Remove Collecting message.
/ j/ C7 ]6 F9 w, Z$ H - (set_tile "error" "")
& K6 o5 x- |( ^. i# _) Q$ w - + e/ W# {9 z3 R* U' F0 r1 o. Y: a
- ;; Sort based on maxsort.7 g+ y+ \5 @, F8 ^
- (if (>= (getvar "maxsort") (length sortlist))
( ^6 L4 ^ Z7 E1 U6 y/ X9 O9 d, Y - (progn8 J$ x* k. o8 W
- (if (> ltype_number 50)
& ^0 E _0 { m0 G6 r - (set_tile "error" "Sorting...")
1 z" O E$ K$ h G# y! { s - )
5 k, g2 F" ?0 r) b% E9 W - (setq sortlist (acad_strlsort sortlist))+ a- h5 q d" A* B* t" m# O
- )- J; Y( F' B" b2 v# z9 n1 E" B; o9 f9 F
- (setq sortlist (reverse sortlist))
7 ]; {2 S4 N8 p% d" b4 V - )
" ^* W4 e' X: b0 [; u2 l - (set_tile "error" ""); ?6 K) S$ w6 e$ V* A
- (setq ltnmlst sortlist)
8 L7 J P& X u* o2 }& {: _! S3 R - " r) V$ L3 c4 N& x1 A8 I7 j
- (foreach ltname ltnmlst. X2 F' R1 h9 ]& X8 H/ e% n
- (setq ltlist (tblsearch "LTYPE" ltname))' u- U5 m" A6 I s
- (if (= ltname "CONTINUOUS")
Q4 @& ]3 u1 C4 y( P. @8 f - (setq mdashlist (append mdashlist (list "CONT")))
+ H8 ]1 ]. s0 ^- I! f; c$ J5 { - (setq mdashlist
4 ]/ k$ u0 u( h6 j z - (append mdashlist (list (add_mdash ltlist)))
5 N& m4 c3 r0 } d. M3 T" r2 r - ); j: [' Z7 K& c# r- K: n
- )
; j, T- n! B/ b+ M) F% D - )4 b, d4 ?/ y: {/ J
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
) E# v: N S4 a* ?) o - (setq mdashlist (cons nil mdashlist))4 j1 E9 {/ d8 _) s' b5 V
- (setq ltnmlst (cons "BYLAYER" ltnmlst))6 [( l' o" l9 W; C- r/ m% I
- (setq mdashlist (cons nil mdashlist))
7 ?+ B' [2 n& g - )
2 n1 U) I4 O- h V( I ? - ;;
0 @( n) [% _5 m% P0 Q, K - ;; Get all the group code 49 values for a linetype and put them in a list7 f, ^8 j) G8 x; U
- ;; (pen-up, pen-down info).& `# ~! E# v3 Q/ N
- ;;& J& l4 @* ?. V. E" O$ O. q" R
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)$ G: |9 K/ f. T' V1 S
- (setq dashlist nil)
$ p7 t" }" R* A! z* F3 R( D - (while (setq assoclist (car ltlist1)): L9 w4 [7 x U2 F4 |' n( `- e
- (if (= (car assoclist) 49)
; d; L! m8 G0 y* s& O( A9 M - (progn
( z) ^7 }) {# e8 I4 B - (setq dashsize (cdr assoclist))$ d: {5 T$ V- f: E; F
- (setq dashlist (cons dashsize dashlist))
( z4 ?' a5 f" p2 S) @5 j( i( w: Y5 C! c - )" ], r5 z2 X2 W: l3 Q
- )" F- Q6 }6 [$ G
- (setq ltlist1 (cdr ltlist1))$ ~- Z6 S% z8 S; W V7 U" y; D
- )
% z# a) A% Z: G6 R5 F: b - (setq dashlist (reverse dashlist))
) U9 d& E+ {( i T* J* V7 p - )
9 M, g& q1 o/ N. |; U) ? - ;;
2 N; l9 m8 {7 r - ;; Color a tile, draw linetype, and draw a border around it
( J8 Z+ D. T+ t4 T8 p - ;;
- b- A0 J! E7 p7 r$ I5 q& Z# u2 ] - (defun col_tile (tile color patlist / x y)
8 O. i; n% o7 F+ c& q1 c t - (setq x (dimx_tile tile))* Y- N! T' j" B$ z" A' g& K
- (setq y (dimy_tile tile))( n- D, I# H6 S+ D
- (start_image tile)7 n" g) g4 e+ S/ Y& Q
- (fill_image 0 0 x y color)
7 _% t* E- w+ K4 K - (if (= color 7)
" ^7 X7 ~0 r/ M7 o - (progn
0 ?' |$ f4 N5 I; W: r) q2 k - (if patlist (drawpattern x (/ y 2) patlist 0))# P2 ^9 R! \% [; s" h
- (tile_rect 0 0 x y 0)9 e% H, r5 R5 n9 b& U- }
- )6 ~4 }" Z" g3 V5 L8 D
- (progn
* ]& h+ J s8 {' s( v1 v( | - (if patlist (drawpattern x (/ y 2) patlist 7))
1 M- k9 f4 m1 o6 ?2 @ - (tile_rect 0 0 x y 7)
: |7 e/ u3 Z" f/ f - )
. x2 A) a' S N5 i1 q - )
* O# Y& n* M+ v" Q7 r - (end_image)
, h1 X$ ~( l% u) S4 T4 O5 C - )) |3 a9 e: b% @' v y
- ;;
' B) X" `& g/ r7 [; `% O1 [ - ;; Draw a border around a tile2 L8 `; S4 A; P5 ]( `1 L7 @
- ;;! e9 w, h1 l- H' j# s
- (defun tile_rect (x1 y1 x2 y2 color)- M9 ]7 j* v: N8 t' v1 P
- (setq x2 (- x2 1))' M2 i: W, _ Y8 y4 b4 q) g$ i: V
- (setq y2 (- y2 1))
) l8 z" J/ h- h - (vector_image x1 y1 x2 y1 color)
0 g; B0 D7 L+ K; _( W. N - (vector_image x2 y1 x2 y2 color) ~; b+ f# Q- t8 r# |1 S8 k1 b
- (vector_image x2 y2 x1 y2 color)
" a3 a: Q. c; c( f. H8 V - (vector_image x1 y2 x1 y1 color)
. B' T8 u- S' u/ v% x. K - )
9 R3 n% k( f* |' a - ;;
5 p8 `4 U; v' t - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image/ e* x9 M+ y9 V1 y# Y& u: S/ L
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
& y- ?3 V/ v& l- _5 f - ;; list of numbers that define the linetype, and color is the color of the4 I# ~) L1 x' e8 H6 N6 b
- ;; tile.* Y5 z; m- p/ Q- Q
- ;;
1 E5 x9 C: a0 H7 a - (defun drawpattern (boxlength y2 pattern color / x1 x2- O- |% P( {: L0 |1 K! t; L
- patlist dash)& I) ?, G3 n# W$ ?) C( S
- (setq x1 0 x2 0)0 q4 V6 U9 W' A/ \
- (setq patlist pattern)
7 g6 s0 m4 t& | - (setq fx 30)
. ~+ C3 V I/ T( ?& i% B - (if (= patlist "CONT")6 g) o4 K, ^# p! I! t; R2 i9 L. [
- (progn (setq dash boxlength)1 n0 n5 f6 E; ^8 K
- (vi)1 D1 ^% e, P$ Z: W. G8 n5 k7 `
- (setq x1 boxlength)0 T" s. t: k& m/ i% I
- )# F) X" Y2 `* c& F
- (foreach dash patlist$ b7 M' j0 E4 L' H# ~7 `+ N
- (if (> (abs dash) 2.5)3 Z( k8 A+ y* E( J/ b& q3 z- a
- (setq fx 2)
- O$ g s' x" U% |8 [ V - )
0 {: b1 k( P1 Q1 [. C' | - )5 K3 \0 l( V% v
- )
2 n* w. D" s1 n$ C - (while (< x1 boxlength)& K( g* d" e9 y6 y* p
- (if (setq dash (car patlist))
/ j- }# D- t0 M - (progn3 F& i3 o. O: m$ T
- (setq dash (fix (* fx dash)))
* ]! ?" p; Q- y. s - (cond. c8 r8 t$ C3 q& J
- ((= dash 0) (setq dash 1) (vi))+ J! q2 B9 D# i' p- K$ y: t, ?' z
- ((> dash 0) (vi))( Y( k3 C" ~9 Q4 K; B
- (T
2 e0 X( H% l0 M. D. k, r - (if (< (abs dash) 2)
8 a8 O2 q' R5 B6 K; j) G% c1 o! f' c J* q - (setq dash 2)" C7 k+ ^1 V z; Q( V/ ]
- )+ H4 F* ~4 z2 C
- (setq x2 (+ x2 (abs dash)))' A: H3 B2 I5 C" n$ I$ q- [, G
- )6 K; s$ z; e$ m1 l7 g2 b1 R# [3 t7 M
- )
% u& w: j' R% u+ w! w1 z/ u - (setq patlist (cdr patlist))
( W f, u6 M0 V( ~ - (setq x1 x2)
. y5 I+ [( K; S9 A - )
* z( s1 O# B8 L) M0 z) I/ i - (setq patlist pattern)7 D4 L4 }" l9 t, ~- o9 ]) ]. w3 ~
- )9 L5 b6 K1 z6 w) |: @ k1 e' V' h7 q9 q% C
- )
2 l1 S4 k5 K( k& q% }+ ~ - )3 E7 y2 ^2 { m1 H* Y" v0 H
- ;;' ]# u. ?; ~6 Y7 p
- ;; Determain state of xclip" ~, D% k/ h2 U* y* Z. k. b
- ;; Returns the group 71 value of the spacial filter dictionary.
& E0 [6 z; b# J+ [1 S! v9 p - ;; If the entity doesn't have a spacial filter dictionary, this
/ J( Z5 ?' S. z: v" t3 O6 L( ~5 x, d - ;; returns 0. If it does it will return 0 or 1 depending on the) h4 J* h# f2 y8 w
- ;; current setting of the state of the clipping visibility.
1 P7 ?6 N, X6 x8 E' ^ - ;;3 B9 Y" F: p- |" @9 a. f' k, A$ ^
- (defun xclipon(elist)
6 o$ y$ q' A5 s/ T" J+ y - (setq hasclip T). i! t- N0 z# i
- (if (/= (assoc 360 elist) nil)
" t& J, r+ H3 d! c% s1 a - (progn
- Q K& ]* K- k( H4 X0 [. y. O - (setq tmp (entget(cdr(assoc 360 elist))))
9 |- R/ g/ N* B( P* D - (if (/= nil (assoc 360 tmp))
* |$ r) G5 m6 _. f% m - (progn
/ o: a' ^0 O+ [- X - (setq tmp (entget(cdr(assoc 360 tmp))))
( J# M7 R- W A; C - (if (/= nil (assoc 360 tmp)). d9 P# a' f8 r- W9 } m; R) |
- (progn; }2 ?$ R* B* }3 g/ H# @0 f
- (setq tmp (entget(cdr(assoc 360 tmp))))" O) Z( O$ z5 |+ e) r
- (if (/= nil (assoc 71 tmp))' S/ z1 A$ g+ q, I2 y) r* D& J
- (cdr(assoc 71 tmp))
) j* e" K4 j- y4 v - (progn ) w( o9 e* D. a. g, z- W
- (setq hasclip nil)/ f# X- N8 ~6 X: F. i
- (eval 0)5 D+ K$ N' |& \1 O: W
- )
0 l- T- q* p s, d& s - )
, g3 r; J2 u" {) ?5 J! z - ). L9 E& w7 G# ^. z
- (progn 2 d% p. [5 s/ h
- (setq hasclip nil)
: ]5 _; L, I. e' c4 p% Z3 q - (eval 0)
d3 g% B: U. h, [) H* l - )
; m0 |; o# j1 j. r4 q0 z4 H - )
& A$ k4 m% P/ ^6 N5 v) O" e - )
9 ]& L# O9 G- a; x9 h/ T, a- v* ` - (progn ) N7 h9 z! h- J- J* A( A! k1 o- b
- (setq hasclip nil)2 @ i. } W7 Z5 j2 ~2 l% d3 L0 `
- (eval 0). U. @/ L% t. u) t5 Y C# ~0 {
- )1 n/ [3 @0 F+ `0 Q
- )
# j. } R4 F# ` - )
" K6 r6 N6 K2 _: z/ J' Y; e - (progn ! d# k! w8 a& H& m
- (setq hasclip nil). X3 Q- D- D% m
- (eval 0)
% S- C, U1 W) R* E6 i - )
( E0 H% x5 T' S; [- b3 D; G3 Y - )
$ ]3 b- f2 t0 [* E - )
/ C- r! B- v6 z, v$ Q V" k& [( y - ;;+ s; V3 Q, v r6 p/ j0 |! n
- ;; Draw a dash or dot in image tile
' {8 a0 k0 T" W0 A4 j - ;;
- P7 n6 Y) F5 A* K; c - (defun vi (). M A2 ]1 J8 |$ e1 j$ M
- (setq x2 (+ x2 dash))0 x' L4 ^( K$ G% n# s
- (vector_image x1 y2 x2 y2 color)$ R- k/ C+ K% W5 D( g
- )
) Z! W# _! M" O+ O" u3 v - ;;
# M/ W6 P, } j& `6 M: i% D. G8 f - ;; If an item is a member of the list, then return its index number, else2 q0 @! V# H2 _ s+ L
- ;; return nil.
& N1 B- g, G1 Q! C% s( Y% V - ;;
$ `' b1 t) ~, B- O - (defun getindex (item itemlist / m n)5 ~' f; F5 ~9 t3 m
- (setq n (length itemlist))
- @) }) ~" D0 p8 O - (if (> (setq m (length (member item itemlist))) 0); R3 P" ]7 A& g! c" {
- (- n m)- h# V Q+ ?( l. Y* p
- nil i: k6 Z t5 m4 o% [* s. ] }
- )
7 W9 h% Y( _8 H, T - )8 Y+ r8 x/ C1 e0 L# F
- ;;
" p _+ I3 M" f0 T2 L. ? - ;; This function is called if the linetype is set "BYLAYER". It finds the
, F) l7 q! U. a+ X1 ?5 P$ c! Q% v - ;; ltype of the layer so it can be displayed beside the linetype button.1 }0 d4 _' n/ O) K' m5 x
- ;;. S/ @7 d; d; h" V/ B
- (defun bylayer_lt (/ layname layinfo ltype)' x! V$ G( L- k1 ^6 [
- (if lay-idx
4 @" D" X7 L4 z% I# M - (progn3 _3 ~- x" t. N4 R- h+ _0 D
- (setq layname (nth lay-idx laynmlst))
, w- e; l% X% I' |# |; j - (setq layinfo (tblsearch "layer" layname)). E$ f4 W: M$ ?! j
- (setq ltype (cdr (assoc 6 layinfo)))
2 u: C! `! V; V0 s' y3 K4 F: _. f: r - "BYLAYER"& K7 C! H) u8 t( ~3 q
- )
$ S8 }+ c! b0 a% c% g: r+ X4 q - "BYLAYER"
" k# ?, E' x* m& E3 F - )
7 \: Q3 h0 @6 w2 n, } - )
8 F0 v0 y4 j! C! S0 A1 ` - ;;# C$ ^+ }1 m+ D
- ;; This function is called if the color is set "BYLAYER". It finds the color5 A$ V, y! M7 k4 O4 [' A4 W
- ;; of the layer so it can be displayed beside the color button.
4 j. B7 E# O( X" f; l$ t - ;;
# V4 p2 C. v5 | - (defun bylayer_col (/ layname layinfo color)
+ S8 s: p+ _5 o- I - (setq layinfo (tblsearch "layer" elayer))
% @) ?, n3 v9 q( w2 c - (setq color (abs (cdr (assoc 62 layinfo))))
( W- F0 L5 N4 M - )
: m7 ^- u; U x- D$ [ - ;;3 N" F3 [ }( T# m
- ;; Used to set the color name in layer subdialogue.
6 P4 ~) X5 v: a" m6 g1 J - ;;. q' {& b2 e6 k/ ~7 U
- (defun colorname (colnum / cn)+ t6 ~0 Q3 w/ r" T
- (setq cn (abs colnum))& P. x2 W9 w, f0 G" m
- (cond ((= cn 1) "red")
& Q( X4 _0 J* K - ((= cn 2) "yellow")
# r& Y. b2 [/ |" T. j; s7 P4 t - ((= cn 3) "green")0 i. b3 U2 Y: D
- ((= cn 4) "cyan")
' O$ l" W3 q; L# H/ j- t& H - ((= cn 5) "blue")) M( ~' j* b, r3 M' r
- ((= cn 6) "magenta")
) Q5 d% s; D1 x. r5 K) K* ^* y - ((= cn 7) "white")+ ]% z2 M6 C/ C" O
- (T (itoa cn))' q$ z- g2 I& G/ {
- )
" A% f! j4 k" b7 W, z - )8 |9 q" Z3 X+ `% V( ^$ A1 W! R
- ;;
- D2 _$ [2 ?4 c1 s* ] - ;; If their is no error message, then close the dialogue.
, I `5 i$ T0 y6 E* B" Q8 m9 k3 A - ;;
& ^- r7 n* a" Y) V- i3 h7 r - (defun dismiss_dialog (action)
) \9 X$ m: ^/ U6 k" y! t - (if (= action 0)( C2 M4 D7 v0 I
- (done_dialog 0); b- C, C4 n; B% c" S. i" h
- (if (= (get_tile "error") "")
8 N# A/ h( E5 h4 @ - (done_dialog action)
6 |2 J! h, L9 r. }2 ] - )
* P/ P3 N, U* r e" L& ]: f - )3 v7 G/ D" u+ {4 \8 D
- )% v1 x# q" f" Z* q
- 5 D) P) i- W% ?, A0 P& Q! g9 X2 i
- (defun test_ok ()# S& h4 V* U. h9 E! x; C
- (if (= (get_tile "error") ""): n& n) G7 T5 q5 D
- (done_dialog 1)
+ w1 j. o1 @! D$ ]0 c$ u6 [ - )
# U6 m6 o* {1 b9 F8 h, _3 }8 L4 T - ). J, _, A" S' A1 T N, K
- 7 Y0 t) H0 T, m& Y4 i( @' @
- (defun cancel ()3 G9 q( ?. q' y8 P
- (done_dialog 0)
1 X8 e1 C3 _7 X5 z7 T/ Z% ~( j8 K - )
2 Z# g$ ]* Q2 k% A$ i+ `" Y
: l, q2 k' j6 Z q- ;;; =======================================================================
, n. C& p- o! d - ;;; SETUP layer and linetype lists for application, and initialize all
) E8 f" d* k! M4 x6 w - ;;; program variables./ l( W! W" L1 p% O' `
- & n1 z6 E0 o2 F: l& A! R+ o G' i
- (setq elist (entget ename)
5 D) f1 R2 k6 }# O" F8 _' H - old-elist elist
0 \7 h3 }+ M, b+ ]/ P/ V - modlist elist# x% W5 S" ^9 q& Q! | ~; A
- etype (strcase (cdr (assoc 0 elist)))6 I& {9 @7 v. t! X z! i3 X
- ecolor (cdr (assoc 62 elist))/ \; u, b5 e) |4 n g6 c" w8 J
- elayer (cdr (assoc 8 elist))
! F& y7 w/ H+ v; T \- D6 l - eltscale (cdr (assoc 48 elist))
, g" ~' M/ s! r, ^- G( ?0 t5 p1 A - ethickness (cdr (assoc 39 elist))
5 o# U4 E2 o% S! ~ - eltype (cdr (assoc 6 elist))% j5 _2 ] R# }/ C8 J8 p
- ): U( t# ]/ G$ X' L6 I) [, C
- (if (= (assoc 210 elist) nil)
5 c" \' l, m& Q$ G - (setq extru (list 0.0 0.0 1.0))& S( F, s2 f0 W9 {3 V3 @0 @
- (setq extru (cdr (assoc 210 elist)))' c( z2 `% X4 V, T" q
- ), S, g1 W9 Z6 V& _$ s7 B- Q" [
- 7 J) d2 b: |( h _' g
- (if (not ecolor) (setq ecolor 256))/ z/ [2 a2 w6 x2 K7 A' h
- (if (not eltype) (setq eltype "BYLAYER"))) x( u1 y( `+ R( i8 r9 |! p
- (if (not ethickness) (setq ethickness 0)). _# l* x" z- [
- (if (not eltscale) (setq eltscale 1))
: V$ l/ {/ { X8 `2 F - ) ; end ddmodify_init
' H7 R0 d) O3 a3 A* H9 I
& E* {% c0 ^3 I3 H* o- ;;; --------------------------------------------------------------------------
, H" y9 ^& c, D - ;;; Function: DDMODIFY_SELECT0 L6 q2 H: z% u j7 o! {0 m7 p \
- ;;;
9 p2 E1 f! I3 o2 `1 f8 v- U - ;;; Object aquisition function.
- p" S) m4 V! j3 @ ?2 m% W - ;;;% Z9 V8 ^/ `1 ^& q
- ;;; (ddmodify_select)& F, ^ D4 q) d/ S6 a
- ;;;
6 W9 Z/ T( B: Z$ ? - ;;; Obtains object to be modified, in one of three ways:
8 E, ^+ a5 p V - ;;;
; Z' D' z7 C, \' k - ;;; 1 - Autoselected.
4 W! x2 S. b- A: N( N+ X/ z% n# x# ] - ;;; 2 - Prompted for./ T4 ~; `' R1 b& T, E. ~# V
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
$ n. S d e5 L. ` x - ;;;
1 `! ^6 [& |) r y! b - ;;; The (ddmodify_select) function also sets the value of the5 [8 K1 b, F. e N! H
- ;;; global symbol AI_SELTYPE to one of the above three values to" {+ q; j2 }% z; Z$ P$ V
- ;;; indicate the method thru which the object was aquired.
; O* \0 P/ u/ b5 A; l! o - ;;;
6 K5 `8 @1 h1 f6 F- z0 q' Y - ;;; This value can be useful to applications that want to RESTORE
: r6 T* f7 k! ^4 g! m1 O4 Z. ` - ;;; an object that was autoselected to its previous selected state
3 t* l/ P& z0 T - ;;; when they terminate, although there doesn't appear to be any
% @( J& Z2 l2 m$ p$ D5 o2 ~) C - ;;; way to do this right now.
7 N. R/ q0 E9 K w5 @* y. g" a
d: e6 h+ ~" m- K+ l& A- (defun ddmodify_select ()% C0 d2 r# \' P& [6 m2 B. y( {
- (cond3 e$ F8 T; L- [1 p, r
- ( ename ; (ddmodify) was called
2 Q# A2 w& o: z3 ^! _! X! F - (cond ; with an <ename> argument; f7 J3 F; ~4 y/ Z, a4 A# w
- ( (entget ename) ; If object is non-deleted
; I0 v3 Y) C5 v/ K - (setq ai_seltype 3) ; then return its ename.
4 J" Q: O6 C: N: P$ i/ N - (ai_return ename))))3 |! ]- C2 \& C6 d5 c
- # p8 o7 t* J+ V1 R' c% g! s9 g0 \
- ;; return auto-selected , see ai_utils.lsp( ~% t7 B" i8 I2 u( [. D" Z
- ( (ai_autossget1 "\nSelect one object to modify: "))7 E! G1 P* Z5 J$ N r' u5 t& A
; a" p5 y# S$ Z- (t (princ "\nNothing selected.")
- ]3 H3 ~# ~6 f3 J - (ai_return nil))
5 A8 f- W7 [ y( U' _5 J9 R - )1 n8 t1 c1 g8 `
- )5 n- I+ E( G2 E: l7 q
- 3 ]* g' l) B% H3 {
- ;;; ============= Command line interface function =======================
& Y3 T X) Z2 D/ w
! W7 t% O) M0 _- (defun C:MMO ()
, t1 t$ t. d" ? - (ddmodify nil)
! R# n4 ?7 H4 N/ I: u - (princ)
8 _1 z9 e9 g2 L5 m, O% D - )( P9 i1 t5 g& e! o0 _
0 \$ o$ b% Y2 v! G3 }1 ~- ;;; ================== (ddmodify) - Main program ========================; b" G2 W; v9 @7 | F* B2 l
- ;;;
3 S3 w- C0 E/ T ~' k - ;;; (ddmodify <ename> )
) S$ t% ~4 F! D) G3 R - ;;;
# p7 z4 M% j7 Q; z) @8 p1 |) ~: V# y - ;;; Main program function, callable as a subroutine., z# @6 B8 X& _0 S" T& O
- ;;;
4 K2 f( i+ S s# L9 D - ;;; <ename> = object name of the object to modify.
5 e: w# j; w' B# D$ @/ Z/ r$ Y - ;;;9 g, @, b( V% d' o7 R
- ;;; If <ename> is nil, then user is prompted to select& k- P1 ~5 F8 r& g) k2 z
- ;;; the object interactively.; `" T, s, h- |5 t
- ;;; T, n' P' P4 e) C4 B# h: v. W
- ;;; Before (ddmodify) can be called as a subroutine, it must+ o* k( t8 L9 i8 q- a
- ;;; be loaded first. It is up to the calling application to/ a# e$ q x* F( r) g& z
- ;;; first determine this, and load it if necessary.
$ M$ S! D& G) k9 W9 B - / P U5 M+ M6 N) R
- 8 K" o$ {( d* L5 {7 j
- (defun ddmodify (ename /
7 |/ m1 w" g1 r( ^" S9 h - 2ndpt ell_calc_area move_pt1 templist
* U! u I& ]$ Q ? - add_mdash ell_tile n tempmod
) U/ A+ I( L2 z# L0 \. b4 ?6 b - alipt eltscale name tempst_ang
/ e1 U' _6 p( ]6 X2 i( _+ {6 S# l - ang eltype newpoint test_ok0 i3 m. Y2 b9 J, `+ ]+ L1 V9 R
- arc_calc emod next text; P1 N' s+ O5 M, i. R- j
- arclen end_ang next_vertex th-value
6 b" a3 |1 b0 H$ |9 J - assoclist endpt obl tile
+ m2 F7 r2 T/ F1 W: z - atprompt errchk off tile_rect
O, e. L. z+ W. ^: G* n$ w - attag ethickness old_majrad tilemode
* ]# N2 @' s" u$ w! f* s- { - attprompt etype old-closed totang
' ~1 f$ t; [! f7 K# B, t7 m- | - bit extru old-closedm tstyle. V; W1 i! A% {+ O% I& L
- bit1 fchk old-closedn u
& y0 V! _# t6 F9 \% F; D5 T - bit-10 first-10-rec old-elist undo_init. {) x, i' M( ?8 w
- bit-11 first-10-time olderr upsd
6 ^$ J7 [0 ^4 `! k0 i1 \; V* _: A - bit2 first-11-rec old-fit v
9 O& C `9 ]: G! l5 G: ?( r, A2 r - bit3 first-11-time old-idx va. f3 V' q& Y% c p0 }# O
- bit4 fit oldlist value
8 u C# g- F# q8 {& L- i2 g - bit70 frozth old-spltype ver_4
1 _ C8 z1 T' ^4 V - bit-70 f-vis old-u ver_ang1 c1 C. z' T- Q2 ]4 z
- bit75 fx old-v ver_ang2
1 T# T5 s6 f. J' L6 d$ s - bk-up get_color on ver_col9 p( r$ p, S7 F" b7 W7 v
- bkwd getcolor onoff ver_colsp! Y2 D. w0 ?/ ~ G
- boxlength getindex on-off ver_eangle+ f: W5 e* m7 I+ J2 T4 r
- bylayer_col getlayer patlist ver_hght
4 W; r, B0 t5 H( G5 G - bylayer_lt getltype pattern ver_majrad
& o! Y- Y5 ]. ?% i* i9 M! @ - calc getthickness pltype ver_obl/ ^( Z* m7 f. A7 |) R
- cancel globals polytype ver_pt1# K# H$ N! G, C9 o
- cir_calc ha pre ver_pt23 L: g+ }, _2 [3 r4 F
- closed ha-prev proplist ver_pt32 T* D9 M6 v/ D( a& X& k2 y# T
- closedm help_entry pt ver_pt4
/ D2 R+ L3 F& P, |6 y - closedn hght pt1 ver_rad G7 w/ a$ @ U) P) }
- cmd icvp pt1_eq_pt2 ver_rot: U/ Q' E- o: y. s
- cn image_add_vector pt2 ver_row% |) j- Y3 z: Q2 x
- cname image_clean_variables pt3 ver_rowsp
0 }8 i5 }, u# |$ \; R: D - cntl-pt-indicator image_cross_product pt4 ver_tag
( P3 T) @/ h7 [. U9 j7 r7 P - code_71 image_disp_opt ptype ver_u9 U, p0 c S& U$ [: q
- col_tile image_dot_product radius ver_v
4 P& q7 h( [# ^$ N& D0 F - col-idx image_normalize_vector rational_spl_flag ver_wid
. j& ~$ M0 i9 x% j# y7 G* ? - colname image_rotate_vector reset ver_x19 N2 Z# f# ]' O% T" F
- colnmlst image_scale reset_flag ver_x2
. x1 M" \+ k4 i& J6 e: g! Q- i - colnolst image_scale_vector reset_lay ver_x3
3 ?' |* ]* h2 d) n+ W+ `% W$ p8 k - colnum image_update reset_lt ver_x4
0 G! a% {& {5 f4 g# G' [ - color index reset_uv ver_xline_pt1) F/ `4 {: L# X6 J
- colorname inv rot ver_xline_pt2. B& }9 J9 a3 [9 T: d$ M c
- colorno item rows ver_xline_x1
( ~1 z$ h' E$ t- U - col-sp item1 row-sp ver_xline_x2# G. r8 j8 C+ ]
- columns item2 rrat ver_xline_y15 X; c6 V! x2 K5 x" L
- con itemlist s ver_xline_y2
3 w- i' H1 I- H9 J0 ?8 j; ~ - coord jlist set_action_tiles ver_xline_z16 Z, q2 q- {" @6 B& F
- ctr jlist_act set_just_idx ver_xline_z2
4 U9 d( P* L6 C& \7 ?5 M3 J - cur-10-rec just-idx set_tile_bk-up ver_xscl
9 @4 X- w- b% i, l" |1 l0 O - cur-11-rec layedit_act set_tile_cntl_pt ver_y1" l) Z5 |1 v9 o. {( \# {8 l
- cvpname lay-idx set_tile_data_pt ver_y2
4 u6 [5 U% F4 ~& k8 S - dash layinfo set_tile_dirv ver_y3
% m# c7 J9 f4 W5 h3 W# o - dashdata laylist set_tile_edges ver_y4# m, O6 B$ A* w6 l1 |
- dashlist laylist_act set_tile_endang ver_yscl! A1 @: T! d! g4 t g6 u& @
- dashsize layname set_tile_hght ver_z16 P8 J% x) W4 ^, I8 F) ]7 G$ C! k4 w
- data-pt-indicator laynmlst set_tile_icvp ver_z23 P# V/ K3 ]$ V8 E
- dcl_id layvalue set_tile_just ver_z3
' k1 l" U& w5 K3 P+ R - dd3dface line_calc set_tile_obl ver_zscl. p& S* g: n! p: G Z7 T% Z& [- P
- dd3dsolid linetype set_tile_prompt verify_a
* u' A" g) U6 w% K& [3 ^, s# ]- c3 @1 u - ddarc list1 set_tile_props verify_d
/ ~; k& M. [- D - ddblock longlist set_tile_pt1 verify_i
' x5 l# F* t7 S0 x Y( x - ddbody ltabstr set_tile_pt2 verify_xline
+ X' `$ m9 X0 k, q P0 E/ S- j - ddcircle ltedit_act set_tile_pt3 vfy
; C' W" L/ k/ N8 ~* L% K - ddellipse ltidx set_tile_pt4 vi
4 t7 e$ {+ B: t - ddgetprompt lt-idx set_tile_rad vlist& i" n- j# x8 Q5 Z2 T& |% f
- ddgettext ltlist set_tile_rc vname
2 X% Z& Y2 ^" a9 t - ddimage ltlist_act set_tile_rot vpf
; N* H' Z* q1 o - ddimen ltlist1 set_tile_scale vpid4 ]9 ]; ^4 J/ m. K u6 \5 r. k
- ddleader ltname set_tile_spline_props vpldata: p( p! d, H8 \, c% T
- ddline ltnmlst set_tile_stang vpn. w9 `" u! } T! t
- ddlist ltvalue set_tile_style vpt
( I& M" m) ~) Q! K5 \ - ddmline ltype set_tile_tag which_tiles
( z" m( E# i4 E2 x6 ~$ G# i - ddmodify_err m set_tile_text wid+ S% E( b: p) }; r
- ddmtext majrad set_tile_vpt x R' o) X% a4 u" @, ?2 e% j' y# T
- ddpline make_lay_lists set_tile_wid x1) `3 |& R' x" W- [( e5 G, j& M
- ddpoint make_lt_lists set_tile_xline_pt1 x2
/ \" W. e# V9 J5 j w - ddray mdashlist set_tile_xline_pt2 x32 m7 E; W5 d! o/ h, Q& z
- ddregion minrad setcolor x43 j- x( ?* N9 w# b$ l
- ddshape modify_3dface shght xdlist l7 O8 z: F" n* _6 C! c
- ddsolid modify_3dsolid showpt xline_pt1- |8 X/ e+ D w" G
- ddspline modify_arc size xline_pt2
& A+ @4 H: u6 A8 B) f e" f3 v- b - ddtext modify_block slist xline_x1+ Q0 r S% W: p8 y5 z
- ddvport modify_body sname xline_x2
7 I4 @' |6 a9 B( G0 Q - ddxline modify_circle sortlist xline_y1
4 |3 g$ l7 O" ^. V) V9 v+ L$ @" I - denom modify_ellipse spltype xline_y2+ k- t% z4 O/ V& @ m H
- dialog-state modify_image ss xline_z1- H7 A: ?5 e. n! j: m* G
- dir_pt modify_line st_ang xline_z2
/ ^5 d8 o* N+ d, l& c - dir_ptx modify_mline stpt xscale
' }8 g; P2 g9 j! T1 f - dir_pty modify_mtext style_act xx
1 k) a8 R( f3 n - dir_ptz modify_point style-idx y
6 `' F7 G( ?9 A1 T! w- G2 F - dismiss_dialog modify_polyline style-list y1
1 o3 S+ d- `0 S* e: W$ q - drawpattern modify_prop_geom tagval y23 a( n% j! ?8 F% q1 e7 ^& Y
- echo modify_properties temp y3
% b5 _! G1 ~; H6 X8 S - ecolor modify_ray temp_color y48 M) E6 \+ }2 [+ V4 c
- edge1 modify_region temp_dir_x yscale6 K' A9 T' Y. P3 \5 `3 Q @9 a
- edge2 modify_shape temp_dir_y yy
2 l0 M% l# x0 W: b - edge3 modify_solid temp_dir_z z1* k9 \3 A4 w$ a& r
- edge4 modify_spline temp_xline_pt1 z2
# p7 c. s/ V8 G& Q - edgetest modify_text temp_xline_x1 z35 b* l7 R( v# |# o0 n
- elayer modify_vport temp_xline_y1 z4
' D6 m$ U9 I3 H# v - elist modify_xline temp_xline_z1 zscale9 q$ f4 W! E+ u1 g( t
- ell_calc modlist tempend_eang zz
u- q; J: C: ~ - dir-idx safe_ddedit ver_MtextWidth xcliponoff
2 M! b, e1 i1 a+ V* Q* Q2 W9 R - MText_style
. ^! \, W( u1 K - )
' l9 I# n1 |% I8 Z* M7 o- p
( `& O+ r- w* V8 ^" y+ M- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho# g, D7 w, i& }" J# D( e6 H
- old_error *error* ; save current error function
- u7 t! r/ W7 Q/ ~# `; V - *error* ai_error ; new error function
5 M1 c) X/ V& |9 ^) x: D - )
% w- L/ S4 c: J, x0 k - 7 G2 k% ^3 ?: g% e$ C9 H
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
# |9 ?/ B, M5 H3 D9 B# e - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection9 ^9 E! D: F/ u M7 I
- (setvar "pickstyle" new_pickstyle) ; bit and set to new value' }! m3 ^, Z: e. V7 t+ W& R
! k" ?, z6 R; u3 M6 Y5 F- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
& C' ]7 z4 y* u; Z0 ^/ b - (t 1)))
* V! z* T" I; J) p9 N w- r+ M - (cond8 u- s. _4 _$ R" a X) f3 F0 y& M
- ( (not (ai_notrans))) ; Not transparent?. b4 C- n2 b, T
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
3 ~' x [8 J" s# N& s - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
2 y' p" B" I% x' \. j+ s - ( (not (setq ename (ddmodify_select)))) ; object to modify?
' b# o2 f, {3 }- r( q6 x
* J. k0 l8 Y2 D. `- (t (ai_undo_push)
0 o5 h# H( [% B; S - (ddmodify_init) ; everything okay, proceed.
( h7 S6 a4 X( S O# D/ \! p5 i - (cond
" A* G( s1 L8 N6 V" I; g0 v, K9 e - ((= etype "LEADER")9 s' U7 L2 m4 e' k% M3 r
- (setq help_entry "modify_Leader_dialog")! N( R! R8 M+ U
- (ddleader)
* r) H1 Y8 _) Z1 E" |8 v - )
1 R- g4 j c8 l9 r - ((= etype "ARC")
$ Z+ v% D! _/ ?% B' z/ s7 H - (setq help_entry "modify_Arc_dialog")
* Y8 _6 j0 j4 l4 x5 h - (ddarc)
5 m# w D, L2 Y g6 M* I o - )
9 r; }5 A. z Z( l2 x% l - ((= etype "ATTDEF")
0 c& E5 T& C6 z" P+ {5 \ - (setq help_entry "modify_Attribute_Definition_dialog")% U& E& ^0 b, S+ S/ b1 E9 f
- (ddtext)0 i2 y% ^! y3 g& J( f& g; k
- )
- H( X1 I6 @6 P% h; `; D - ((= etype "CIRCLE")
" m" r- u: ]) s6 u - (setq help_entry "modify_Circle_dialog")' V) a$ g) N! \' D1 p
- (ddcircle)( ~/ M: K D. B% [/ _2 `& J3 ^) z8 A
- )6 U3 W+ i+ b& o) \& `
- ((= etype "ELLIPSE")' F* P. u% _" U! T: w* N
- (setq help_entry "modify_Ellipse_dialog")
* x/ X9 v: l; _. m0 c - (ddellipse)) w* B7 I( b6 g* F$ O+ L* T
- )
5 C! o% R/ S/ ~5 F5 {& s2 J# @9 x* n9 J - ((= etype "3DSOLID")
! k7 k5 G& k+ ~4 m6 h+ M - (setq help_entry "modify_3d_Solid_dialog")
/ F- U# x2 X7 O9 J4 Y - (dd3dsolid). E* ?/ a$ Q7 F N% O( D0 p
- )# v% `" G9 J9 [* ]1 Q, o: s
- ((= etype "BODY")
6 q" L" Y/ [5 f- G - (setq help_entry "modify_Body_dialog")
, v$ Z _: S' t, p' X) Y - (ddbody)
" U* i+ N( ]8 Y( C3 X - )
5 K3 P9 f' j! b8 w; Q2 h - ((= etype "REGION")
$ p) ~0 s& D2 h- q - (setq help_entry "modify_Region_dialog")$ c2 y8 ~) ~, M- F* L
- (ddregion)8 y% C; ?+ I" D& I) Z. C, H
- )3 Z: @$ y3 K, a7 ~3 F4 v
- ((= etype "HATCH")* D3 I6 _, D/ @* W, U2 T
- (setq help_entry "modify_Hatch_dialog")2 A7 \+ ]7 \2 J$ N7 P, ~$ D
- (ddnewhatch)5 X3 B7 Y7 B+ \# z' V- W
- )
t; c+ W6 H/ p/ M* i - ((= etype "SPLINE")( i( _3 I( o$ R
- (setq help_entry "modify_Spline_dialog")
6 t2 b; M( X3 A5 S4 L& ^: F. _: e - (ddspline)- d* [. m7 H+ Q! q$ w6 N% ~# }
- )6 u a# a+ P5 N: ~6 s1 f
- ((= etype "INSERT") ; see ddblock for help_entry% K" b$ }9 W0 J9 ?& ~0 N8 W
- (ddblock) C. T$ w f4 B* ?
- )
* w% v4 P1 g& m - ((= etype "LINE")" S1 A9 `0 O; r( h! Y
- (setq help_entry "modify_Line_dialog")+ |1 m% J' }9 j" }0 `# s
- (ddline)
$ x5 D2 S+ [" I/ H$ D - )2 c0 k7 q& @$ P I0 y9 I
- ((= etype "MLINE"). {3 v6 o( ^$ t7 u" Y2 N
- (setq help_entry "modify_multiLine_dialog")# O' `6 Q5 X; u2 K0 U& ^
- (ddmline)" W' U( T7 G1 J$ m/ U
- )$ S; k( s! F8 l, _
- ((= etype "RAY")
+ R7 m, I; Z, p: e6 k, B - (setq help_entry "modify_Ray_dialog"). a7 b$ s. w. L- h4 U
- (ddxline)
) H) I' I9 |3 P/ h8 ~& D2 O - ); [! C: w2 p; S/ m9 V
- ((= etype "XLINE")
6 I4 J5 |, V$ {5 ] - (setq help_entry "modify_Xline_dialog")
5 ?! x; `' ~) M: i" P4 F - (ddxline)
9 X5 p3 m% N0 H% S% r - )
3 R/ H5 m; L& a0 V# w! ] - ((= etype "POINT") E& E3 c0 m, Z) g
- (setq help_entry "modify_Point_dialog")
- ]2 w: P( C" a8 l4 g$ r# ~ - (ddpoint)! t1 w0 Q# t# T5 }
- )6 {( F: G0 p; B- y2 ?
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
5 m* D2 F3 W3 c9 z4 C: Y - (setq help_entry "modify_Polyline_dialog")
0 U7 l2 j9 s U/ i- X - ;; If a 2D pline, check to see if it is planar to the current
# {: o+ s: _6 s- |$ |9 n2 X8 x4 Q, J - ;; UCS, reject if not. To see if the pline is parallel,
8 ^, v% E8 i3 Q - ;; the 210 group (WCS) is added to the current UCS origin (WCS)
6 F& Y, @' E& i I3 M* Y - ;; and then converted to the current UCS and checked to see if, y+ C; w; C/ o2 q
- ;; it is equal to (0,0,1).
5 R+ [- z+ t! W) Z! r; j0 R* x3 m- s. f - - C5 n6 W) ]' [
- ;; Incase the 210 is default and not in the dxf list.
# I7 }' _' Q/ `5 E - (if (= (assoc 210 (entget ename)) nil)6 c8 D+ `# ~- |0 r
- (ddpline)7 D6 E! @6 q# \9 E( G* f
- (progn
# O% P# t7 o( t - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename))))) S9 l; U5 s3 ~ v3 R- @
- (not (equal '(0.0 0.0 1.0)! u( O" O# ~: }! E. |
- (trans (mapcar '+3 I$ d$ z" ~8 N
- (cdr (assoc 210 (entget ename)))
T: g5 [% y8 O/ p+ j$ b% y - (trans '(0.0 0.0 0.0) 1 0)
# N6 e! X7 v, d) `: ? - )( G- l* \' C, n/ J% H O) N# N
- 0 18 ?* b. B( g" \5 B* A
- )" E2 c% _( {- \' e6 _
- 0.0000000001 ; fuzz
+ S/ C% @& J7 [& N! L - )
8 C3 c) j( _- x2 ~ - )
4 T& P4 W, F. E6 H2 ~0 k) D - )* n) B7 F9 K. V c
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")
0 O% }# C. h2 j) `% M - (ddpline)
* J9 o3 k) A3 e3 ]3 u" e - )
3 \7 ?' M( W- D0 J - )/ K! V4 H' e! ]. h5 e2 k. W
- )/ @7 {, i7 P# r; ~ H7 K. T
- )3 Q4 q0 c- P; g( i Y
- 3 Z8 @' h. e: g, @, O/ _ l
- ((= etype "SHAPE")
( C7 J7 r) _/ V3 O8 a - (setq help_entry "modify_Shape_dialog")
; t! x4 z4 m' |+ ` - (ddshape)7 k3 f$ v- q" o( `% o# s5 W
- )$ B1 [; H* F( s6 ^6 o" `
- ((= etype "SOLID")8 k( I2 L5 [1 u6 @7 j
- (setq help_entry "modify_Solid_dialog")" M% v0 |: w: _/ C% c
- (ddsolid)
; D8 r$ g$ }( f- e5 x - )% o# m6 G* \1 J7 f$ m% [6 }$ e
- ((= etype "TEXT")$ F, x5 k) t% J4 A
- (setq help_entry "modify_Text_dialog")
, r: S/ Z* ~& U C6 U - (ddtext)
% n9 I6 c1 q9 c8 x. L. I, R - )
9 i" h5 G* P0 D6 A# f1 M* ]. |9 { - ((= etype "MTEXT")
4 i0 T' Z% U4 P0 |$ i+ t$ B2 C - (setq help_entry "modify_MText_dialog")8 R$ H8 j4 R( q
- (ddmtext)
6 a, K8 @! p2 J a. p8 s - )' H; O8 q' `% [$ l) _5 f) \
- ((= etype "TRACE")9 h) X/ l) Z- q0 F5 L( w
- (setq help_entry "modify_Trace_dialog")
4 r& z* ]" V+ _ m& y5 {$ m - (ddsolid)
% j; @5 d1 ~4 e8 Y5 Q/ d - )* j7 c# {$ U/ O) I3 L2 }6 `
- ((= etype "VIEWPORT")2 B/ N% q# q2 T! r1 }# ]
- (setq help_entry "modify_Viewport_dialog")
6 t \5 x( a4 ?; g& l4 j' v0 p - (ddvport)3 b( N: w) F1 U) _: l
- )
7 s4 U. M) z$ ^4 k( C; e- d4 y - ((= etype "IMAGE")
+ U4 y; X5 M! i - (setq help_entry "modify_Image_dialog")
# \7 E3 G7 Q. o1 A6 S7 Y8 l - (ddimage)% S( u8 w2 K) F1 D/ Q+ L0 e+ W* \1 W5 n
- )
; E% t5 e' @# ] [ - ((= etype "3DFACE")- `8 ~* o( F% U, G* E+ A
- (setq help_entry "modify_3D_Face_dialog")
5 a. G$ `8 ^0 j4 r - (dd3dface)
0 p4 W, g2 O5 K, i' X - )9 a1 }! v% P# i& d$ q. o5 w5 x) R
- ((= etype "DIMENSION")
3 w9 v, v, z- `& U; B0 r, u; O3 z - (setq help_entry "modify_Dimension_dialog")
5 v0 @' n. z3 R0 f. H, f5 A - (ddimen)! u0 a; d" l- I
- )
+ t& U& o8 q2 n0 F6 V - ((= etype "TOLERANCE")2 m+ f; V% F0 S, n5 C
- (setq help_entry "modify_Tolerance_dialog")
/ ~- Q( O" m) v$ f# x( ]% \ - (ddtolerance)
* M2 I" J, }4 q; {1 Y - )
0 l, p, `. H& k8 h$ x# E' Q3 M- s5 L - ;; Fall-through condition changed by MCAD for MDT 1.1 release.: z2 v) Q. v& o$ c& @- V) H
- ;; This allows DDMODIFY to work on any custom object or any new object type
5 \) D- a, T, P2 E3 n8 i' x% l& Q - ;; that isn't specifically handled above by calling the more generic DDCHPROP.
# t; I9 y8 a1 R4 A - (t
# t" C$ @& I4 B9 f# P9 R. F - (if (and (not ddchprop) (not (load "ddchprop" nil)))
% B4 Y0 Z( N/ b4 [: u, ` V/ w - (princ (strcat "No dialog support for object type: " etype ".")))6 P" `; Q8 B" o0 r4 M8 }: J0 |
- (progn
) j* D6 i s; }% m4 y" }% ~1 U9 y2 P - (setq tempss (ssadd ename))
: G3 w/ j/ M8 R, q6 V - (ddchprop tempss)$ c) s9 a+ x% R$ \& ]
- (setq tempss nil)
1 @" d. `, `% k; S - )
& u; }7 X8 t# F- i - )9 y" k+ [4 X9 _& P* I7 F+ n
- )' X6 c4 u) O* H, n! T6 O ]
- ;; Previous fall-through condition.
8 i' v: q8 z$ r0 N- ] - ;; (t (princ (strcat "No dialog support for object type: "' g1 }6 \6 A2 Q$ h# }3 J4 u( L
- ;; etype "."
- a) ?; v! N$ A% X; X+ n - ;; ), R, [/ f0 U) U3 F' f
- ;; )! e, Z+ Q4 {* t- u) h# F
- ;; )9 u: ]0 Z$ a7 G; R( _$ G1 M( M
- ;; ), n' ?% L- M# T U, f/ a; z$ V
- (ai_undo_pop)
0 w% z* l- ?7 G; y5 f2 H* t4 ~ - )0 E J7 z1 c- a7 u, ^- c
- )
O/ v3 y: ?4 }2 W- c1 m - # U! f) L/ @. W* `
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle, E* B0 m2 e) S+ Q6 s
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
4 ~; i# T5 e1 x$ N7 H+ n - ) ; to what we started with! x5 `0 e* S/ W' [' f
- & b o* y7 \4 X' j8 e' }7 J. q5 Q
- (setq *error* old_error)/ E( `' r& I: I3 W) X. R7 N
- (setvar "cmdecho" old_cmd)$ a; h9 r: D! G+ x" ~
- (if (not reset_flag) ; if object was modified, then; e7 m) }+ }# W5 X
- (ai_return ename) ; return it's ename to caller$ J9 h1 P$ t0 j' h( @/ H1 w6 K
- )
* S* V/ X* a; M% R - )6 i$ b6 a, p' G7 ]
+ ]6 @ B! m3 u* v; L) c- (defun checkForLockedLayer (ename)
& j: Z; G6 L! m: m4 x* F - (setq layername (cdr (assoc 8 (cdr (entget ename)))))- s* m5 J' W8 l7 T
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
) @; K- K, o+ o3 E7 K - (if (= layerflag 4)
3 l; n8 r/ \9 m! }/ S, u% I - T8 b: I- i" R9 ?4 r" e2 _
- nil
( K& S: Q9 K2 Q% `( V( J8 U - ) g3 r" `7 j. w. a4 ]! _6 p4 H
- )' w+ b1 n9 [, a9 P3 I
% L, J8 m! b+ ]' `- (princ " DDMODIFY loaded. ")
* { W' X/ R1 y - (princ)1 k4 k$ `" R; R, g# }9 C" E* A' B
- ;;;???;;;---------------------------------------------------------------------------------------
9 v: D, k, f4 d9 B - * V, t W8 m1 ]6 b0 F b
- ; Next available MSG number is 8 / b2 Y. p V( M. q' m
- ; MODULE_ID DDUCSP_LSP_, F3 s3 w; L A2 P' W
- ;;;. }2 b+ A7 c7 {' r; ]
- ;;; dducsp.lsp
, R0 n |, G) ^$ E: R2 N - ;;;. P( t6 f7 B1 S- b6 C$ ~2 q
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.- v9 u7 H1 Z' f9 Z7 Y( A$ F
- ;;;5 m. G; B/ j& S, d9 i! x
- ;;; Permission to use, copy, modify, and distribute this software
5 j, M1 S- R5 ^6 z8 [) @0 S, T - ;;; for any purpose and without fee is hereby granted, provided
9 E5 _) Y. m8 l0 W. `& h* Z - ;;; that the above copyright notice appears in all copies and3 S' k% e# p; K4 P# Q
- ;;; that both that copyright notice and the limited warranty and
: N: }% F% I5 u4 n# ? - ;;; restricted rights notice below appear in all supporting4 [. Y; S4 Q' G% v
- ;;; documentation.
3 c- z: }! E7 l - ;;;
$ G! [$ {3 J3 z# |; ? - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.' N' W. ]3 F i( T
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
- _! @- q5 _- H2 r! E( n9 @+ v - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.! r6 _4 ^; r6 ~% M: T1 R
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
( H9 {( ~' i8 @. D - ;;; UNINTERRUPTED OR ERROR FREE.$ a# W( i7 S, F# V! X: H( Q* N$ j
- ;;;
% M/ m% [1 {4 ~ - ;;; Use, duplication, or disclosure by the U.S. Government is subject to+ I7 O; g/ C" ?4 H3 d
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer0 s5 s! g7 _% V
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
! S/ S5 ?# C0 J4 c) ]9 {6 l - ;;; (Rights in Technical Data and Computer Software), as applicable.! e: P4 ^8 D& ]0 D9 n
- ;;; ?9 M% e9 v8 C) x/ x6 ~
- ;;;.( S( Q! P2 J% V
- ;;; C:DDUCSP - User Coordinate System presets dialogue./ h. y1 m/ S; R9 r2 T! Z8 M: t
- ;;; % j T4 j: C. P: `
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
2 M( D1 ]& n v- L9 I" I L7 g3 _ - ;;; slide images are in ACAD.SLB.
0 {; |/ K6 E7 Y: u& x! n - ;;;
& x7 I: l: t; N/ Z; V7 H- ~ - ;;; ===========================================================================4 L6 H+ N+ }* p+ D3 I
- ;;; ===================== load-time error checking ============================
( r) J: d+ t/ w$ l - ;;;
9 n, t" I# k0 L6 |- d - 8 o& `1 b5 M$ ]0 _
- (defun ai_abort (app msg)
5 f7 E+ ]! f, r! T5 ? {# W. K - (defun *error* (s)6 L( {* f" ]$ N: |0 L
- (if old_error (setq *error* old_error))
& n& p! H2 }" U0 L4 x - (princ)
4 H+ [# r- E, P# k- ~6 N, b* E A - )# `; X' R4 ?' {1 r
- (if msg
" E( I- ^0 G) g, n8 G7 p - (alert (strcat " Application error: "& e) f7 ?% \2 C, ]) @1 @# ]
- app2 X5 p% u% v" w5 s( b1 P
- " \n\n "& R2 `) r2 c3 h* n# r {) \# N
- msg8 ~: N/ |! ^; P
- " \n"
& ^7 V# s" x# i - )) P% U( I% [5 a' u9 l& t( ~# \, t% y
- )
2 ~# u1 Q; O1 K% Q: p2 R) { - )
4 G. B7 `3 Y) b. H3 V - (exit)( }- @- k% D6 g3 J
- )
' h- u( g" c7 Q - ' R& [* d/ z; T3 h
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
2 N- R) ^9 M* J9 Q& z+ O - ;;; and then try to load it.
. D1 X4 y# w: w9 G7 L - ;;;3 A0 O R1 a2 i
- ;;; If it can't be found or it can't be loaded, then abort the
5 t, ]+ `% B1 T - ;;; loading of this file immediately, preserving the (autoload)
9 p# B+ I. U2 b1 R6 {+ ^& x$ X - ;;; stub function.
! a3 {4 A" |2 s7 ^ - 8 s9 a# q- j6 J
- (cond
0 S4 H' Y7 }6 a - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
# H8 S3 K5 p- m1 s+ X5 p* U* g - : Z$ F' b! R" A! e; n
- ( (not (findfile "ai_utils.lsp")) ; find it/ R n3 D- y, V2 T2 Q5 I( R& [3 {! Q# _
- (ai_abort "DDUCSP"
: N' X% @: F- h* Q) m - (strcat "Can't locate file AI_UTILS.LSP."
& S# H% o/ [2 [7 X' D - "\n Check support directory.")))
7 U/ I" l' b# _& u3 E
3 K7 o+ c; x; c+ k! |6 h- ( (eq "failed" (load "ai_utils" "failed")) ; load it
* \; E! z8 C# |0 w. G3 m+ R( K/ T - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
; }, v' R7 r; v3 Q - )( a! ^* u/ S6 B+ H+ b
4 c1 X; P7 U c/ n; o \7 I- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP6 u& D3 R; y M" c' T, q1 s6 j. [
- (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
7 b" D, t4 l1 c - ) ; ai_abort's alert box dialog./ n! z5 j! Y( G( o, |2 l5 M9 R
- # [5 i. t! `! ?- y M' @
- ;;; ==================== end load-time operations ===========================
& f+ g9 S; z) M) \& ? - . y, r2 @1 t- @/ F5 k
- (defun ai_ucsp_start ( / program)
! i4 |) X1 A$ |! n - ;; Get program name
4 u% ?2 P$ x# { b - (if (not (setq program (getvar "program")))
J9 A8 h1 G4 K - (setq program "acad")
) t0 |$ n+ B$ h2 j/ s( q( f9 C: v - )
3 C5 K) s1 g4 _( R( v# `, u! k' K d* ` - (foreach v0 '("world" "left" "cview" "top" "front"
! B& q' p7 G6 r( v' s - "bottom" "back" "right" "prev")! K7 Q! l' G% n2 j0 n; R1 J
- (start_image (strcat "ucsp_" v0))0 X2 W! p6 |( h
- (slide_image5 P$ C: t+ K% p; i/ M/ g
- 0 0
% d& a( d( n5 Y - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)( ~% \0 l3 Q1 v( R6 k9 y: N: z9 D
- (strcat program "(u-" v0 ")")& h5 E" F" \, P: j4 f$ c$ u2 K
- )7 L! N0 C/ O- f# {2 E) C
- (end_image)
9 L- |, {( L3 T% G# g4 ^3 B* u; W - )
2 ]. X' Y- C3 {. W- | - )* g+ O) I, _' F9 A9 i: g
- 8 A1 x- m9 P% x0 J- _
- (defun ai_ucsp_set ()2 T6 }+ S; J# E N- S/ P# q! E4 [
- (if ai_ucsp_sv! Z9 R( d& S3 L6 d- N1 u
- (command "_.UCS" "_V")+ l! A) o2 x/ w5 \( E
- (if ai_ucsp_prevs0 w6 U# `- e% M; h: X; N4 s" r
- (command "_.UCS" "_P")7 V8 m3 G/ i, n& {% b: O, ~( y+ h
- (if ai_ucsp_chg
. r; g/ m S" T9 F - (progn! Z. R8 E: _0 E
- (if (/= ai_ucsp_a "*")
5 S" ~( z# r2 i' [! e - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))# ]. x4 P+ X0 V- \3 A
- )0 G* E4 G* B2 M/ g. A) k
- (if (< ai_ucsp_pick 6)
; I. r5 r+ t5 Y- V" c6 q1 G' y7 Y - (setq ai_ucsp_set0 "@")9 V) R$ m6 ]) {& Q @
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")* s+ M, {% x4 G( u( ~
- )
; }1 |; m7 Z% w1 q - (cond ((= ai_ucsp_pick 0)
7 c2 T7 U$ o9 X2 X- R$ ~ - (setq ai_ucsp_set1 "0,-1,0"
( B0 k/ A$ y+ {8 m( ~+ q+ C3 g - ai_ucsp_set2 "0,0,1"& C0 ^" `" G, {+ s# p" W$ l
- )
/ D) U) T1 n# h: `& R( A8 Q, Q7 S6 l - )5 T6 e7 x2 n" |9 W' f# s( A m+ j
- ((= ai_ucsp_pick 2)
) |" b& z( t8 Z+ t" @: C* ^ - (setq ai_ucsp_set1 "1,0,0"
: ]. ~" I. r7 P( q: j - ai_ucsp_set2 "0,0,1"
4 x8 n$ q5 N9 a2 { k$ Q - )) J. ]( g U) B# J9 x& ^' J
- )0 p: {) O3 c2 Z; w4 N7 `, q' E: E
- ((= ai_ucsp_pick 3)
& O D/ o7 e+ V3 ~1 o0 f - (setq ai_ucsp_set1 "1,0,0"4 [2 x3 C" n: ]- C! X8 w
- ai_ucsp_set2 "0,-1,0"% W1 n9 V( s. D! O
- )
I, P* I% [8 }/ R, X( P9 [ - )
: r+ j$ Z9 y& Y - ((= ai_ucsp_pick 4)
9 w; W' m0 I7 v9 X. b! g; V+ P( _ - (setq ai_ucsp_set1 "-1,0,0"" L( U1 |. `3 r/ ?! `; D; y2 {& h
- ai_ucsp_set2 "0,0,1"# g$ N6 Y8 _; n7 D; |% o
- )3 _8 g/ ]9 b4 b! n e) w, a& M3 k$ @( L
- )
! w+ u, k3 U0 ] i- Z" h - ((= ai_ucsp_pick 5)( j/ K, j3 z# w( N% E9 T
- (setq ai_ucsp_set1 "0,1,0"
2 k* s4 @- k# t _; y- n# j* W" _ - ai_ucsp_set2 "0,0,1") f7 S# J" r& `% T3 k6 w( d
- )/ {1 Z+ y1 ?1 V
- )
: K; T* n5 b% r% C3 {) @) ` - (T2 ?% \; e4 l0 `; G2 |* A8 b. M5 M, O6 V7 a
- (setq ai_ucsp_set1 "1,0,0"
x; r+ N4 H- S - ai_ucsp_set2 "0,1,0"
8 [2 A, t7 S) w$ A2 y - )
9 i+ Z" B6 f% ~+ j/ K. o - )" L1 q% t+ L4 _& N" I- b" u
- )
* ~. K1 E/ N, m, S - (command "_.UCS" "_3P" ai_ucsp_set0
3 N% u/ G |: a+ P1 I - (strcat ai_ucsp_a ai_ucsp_set1) 2 h" m7 R9 d v D U' L+ S* t
- (strcat ai_ucsp_a ai_ucsp_set2)
" b2 k$ Q5 B3 m+ e - )
1 Q/ C; |( M' r2 G - )
) @$ ]0 `% C Z* k - )1 T5 i+ ~$ B# n- N0 y% [/ J1 D1 F
- )& q6 w/ K+ [7 {- s% I2 ^6 a
- )1 c3 a3 z0 V: T) q) f5 \4 b
- )
+ D% \( v0 D3 u' ]' K. V$ T3 N
/ O4 I% ] d1 p" _- (defun ai_ucsp_p (val currtile)4 ]8 \' X" E8 S# X8 M: [
- (mode_tile ai_ucsp_currtile 4)# w8 K% C" j( c9 i+ n
- (setq ai_ucsp_pick val' Y) x/ J; T Y
- ai_ucsp_sv nil
! s5 ~5 D3 k' T, K - ai_ucsp_currtile currtile) C5 M, w9 g$ C2 N
- )/ U3 ]) z6 m" E7 ?8 W N# ^5 y
- (if (/= val 1)
; {' g+ s* T1 A# @! { - (setq ai_ucsp_chg T)
& J& P/ L' e. t8 b @) o - )
+ e& ?5 }( a' f2 w$ }$ A9 S - (mode_tile ai_ucsp_currtile 4)4 z& T4 _8 r0 M7 h
- )
) w! N+ k$ R& g! L) ] X; `( e - ; m- @: s7 V5 I* o& h) ^
- (defun ai_ucsp_swcs ()1 ?4 [9 W' p- v
- (mode_tile ai_ucsp_currtile 4)
2 B, M$ X8 c* M) [/ c - (set_tile "ucsp_a_wcs" "1")
D- h4 v( F/ h7 K% E! R - (setq ai_ucsp_pick 6 C0 {# `5 V4 c( m. U% e* A% \
- ai_ucsp_sv nil1 N9 i: x) P4 T# z# u
- ai_ucsp_currtile "ucsp_world"
" Z7 n! d% }3 o - )
0 s1 h% R* {5 h6 Z# n - (if (/= 1 (getvar "WORLDUCS"))
8 X" L5 d, ]& A, X. _( g - (setq ai_ucsp_chg T)8 x1 A8 I1 R: p. A
- (setq ai_ucsp_chg nil)" A; L/ P8 [+ x9 x: ?1 y
- )
( x) P( [3 N0 H, W. z - (mode_tile ai_ucsp_currtile 4)
6 [2 d9 X. R5 P* \/ i% J - )
% d7 C: U/ w! H7 h; L3 O- u. G
' v# B4 W- D5 N' `1 E/ R- (defun ai_ucsp_cview () J& R% m1 R' r+ {) K
- (mode_tile ai_ucsp_currtile 4)2 Q e( h- }5 c, ~9 x* P
- (setq ai_ucsp_sv T % N3 K5 ^( [6 Q# u+ j
- ai_ucsp_chg nil9 N4 s8 l! X( V2 ]; N d1 |
- ai_ucsp_currtile "ucsp_cview"9 B: c8 U/ q5 N! w2 h
- )+ v/ j8 f/ ?9 D S
- (set_tile "ucsp_a_wcs" "1")
: y$ p; v4 \4 O% c+ @ - (mode_tile ai_ucsp_currtile 4)
# o; ]9 \0 V' _5 K% { - )$ W! t, H. w7 I
% O8 l6 a9 [: d# C+ w: ~2 Q- (defun ai_ucsp_rucs (typ)
* B' n, {6 U* d - (setq ai_ucsp_a typ)
- T. Z3 W! N+ |+ s6 g" f- S - (mode_tile ai_ucsp_currtile 2)1 \" X3 M$ D9 n/ V2 L* L
- )
; g" D$ u- s" ~& _ - 3 F& P+ ?0 T5 I' Q" A3 o, ]
- (defun ai_ucsp_prev ()1 X& i0 y& {* ~% P; |. o+ p& K
- (mode_tile ai_ucsp_currtile 4)' b; Z) H9 l1 M2 \( v9 T7 B
- (setq ai_ucsp_prevs T0 ?1 {: ?" I* k
- ai_ucsp_currtile "ucsp_prev"
) `- a5 Y( K5 _ `4 z' ~. u - )* l4 ^4 M4 N1 \
- (mode_tile ai_ucsp_currtile 4): _1 G) [2 W0 i6 h# L! W2 Y I
- )
1 `9 S9 F' H7 [ ?
# s6 }9 }! d/ a5 v- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)' h1 v! k. M, G/ }- f6 @; V% f
- (if (not (new_dialog "dducsp" dcl_id))
) ^: l# d# h" i3 y - (exit)
8 [4 w4 d1 ?4 S4 T - )! r7 |. n+ |: e
3 x, s3 n3 G. Z9 p8 ?% i- (ai_ucsp_start)
7 U0 R# ^6 \! F, f0 d1 H - (setq ai_ucsp_a "@" 9 Y) D F/ U1 I% `& Q! w) P- I
- ai_ucsp_pick 2& h% L, w3 G7 n& ^; `$ i0 z# f
- ai_ucsp_currtile "ucsp_top"7 ?6 b% _- e- y4 Q
- )
. _, f7 |/ X$ Y! [, u - (if (= 1 (getvar "WORLDUCS"))& G/ Q* P* U2 `
- (progn+ u0 ~, L! }) V
- (set_tile "ucsp_a_wcs" "1")
' X* H0 u( E/ p) R' F - (setq ai_ucsp_currtile "ucsp_world") ?. z9 b. s9 Q( k
- )
4 p! u* S# w4 G) b: W* N. b& u3 ? - (set_tile "ucsp_r_ucs" "1")
$ R7 l: P. T9 W - ), z9 E1 ~3 T2 S7 D/ Q
- (mode_tile ai_ucsp_currtile 2)
- r9 O! A# D+ \; O# Z: S2 Y4 ? - (mode_tile ai_ucsp_currtile 4)3 R$ u6 E0 C X/ _
- (action_tile "ucsp_world" "(ai_ucsp_swcs)") j' d$ `- ^( T; ^/ U" o
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")
2 w T3 L/ k# I2 O* @& E+ n4 D8 t - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
b* \9 }1 Z0 P, u0 `$ i2 O" v - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")8 p2 }0 m# v+ G2 [ [+ D* w$ m
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
6 [" X# ^" B: i8 R! d - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
$ D& I% _2 g" N( S. I" x - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
& M+ p1 e6 O' ~4 ^ - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)"), e% k: A7 S' P1 I( A# H3 |: h
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")$ h: m0 o. ], U9 K
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
( M- _" X: p; v6 |4 r - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")! _9 S8 W5 L* N' F2 G i
- (action_tile "accept" "(done_dialog 1)")$ {+ X; g" ~% p9 |, y1 l+ B) A
- (action_tile "cancel" "(done_dialog 0)")" N% E [- H/ ~4 @' ]0 ]" M
- (action_tile "help" "(help \"\" \"DDUCSP\")")
8 \6 l+ M; g2 [2 ~3 `; M( s+ ] - (if (= (start_dialog) 1)
% G1 p7 W, F4 M ^2 K - (ai_ucsp_set)
$ I5 ^& N& G! X8 m7 [8 k0 ^ - )
* ~3 s8 ~. o H1 R3 J9 M8 V - )! B$ o: w' }) G' [. z% m
* U- {2 I) [* L$ Z1 ?4 y, j2 u- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
3 H' k" P& j2 e, c; a0 l2 ~; A - ai_ucsp_sw undo_init)
6 q w, {& D+ B
- I: N7 b, V& u, [1 |( Z6 [4 [- ;; Set up error function.
; f7 F: _# ^+ ?9 {3 s - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
4 t6 X. F& y: B1 f - old_error *error* ; save current error function& }. I: b, Y7 q! \1 T; Y
- *error* ai_error ; new error function# `1 o( K7 T: L2 }, c
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration
# U+ D4 e$ q- X - )
% u8 V9 }: z9 A/ L" | C* X - 8 A8 {: o& |* G9 L/ V" G; O
- (setvar "CMDECHO" 0)
+ m8 P; E- R7 n; q
0 @. Q2 c! m. {* |$ u2 V3 [- (cond
( K4 ^/ l/ ?8 h) ~& z8 R& H - ( (not (ai_notrans))) ; transparent not OK" B/ P; K/ t' @- {' E' q
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?( E8 l( b6 x+ F4 D( J6 a
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?- z1 b8 V5 |+ U
- (T (ai_undo_push)
! @7 b; O$ J: @- a - (setvar "OSMODE" 0)' O. H; e! O- h* l) T1 c
- (ai_ucsp_main)* h" \ u& f( \* C( h$ Z, p5 u5 J0 {
- (setvar "OSMODE" old_osmode)
" r* d7 z0 ?1 a/ j - (ai_undo_pop)7 ^' j) p% u& A5 A2 L" S
- ); t: K6 R) y: D( c& a; p: n
- )8 O+ |" s! B! k o7 K
- " F1 E' w. C2 s% G: `/ V) B; a
- (setq *error* old_error)
" Y9 P4 e( I' R5 Y - (setvar "cmdecho" old_cmd)
|: I/ N: q0 `3 \; c& U - : l G8 L& P/ V( d& e
- (princ)
6 B# j* x1 N* | - ), P( t( ?' h/ N+ n- t8 N
- ; h' a% P+ Y M' @& K5 [4 c
- (princ " DDUCSP loaded. ")
2 U" S5 b. b" v |6 d - (princ)! } ?1 F3 Q$ x: d- ]; U; s
( d5 `# s% t" y5 M. w- ;;;???;;;---------------------------------------------------------------------------------------- m( T7 U0 a' V( V
D& c7 D7 } f0 L |- ;;;----------------------------------------------------------------------------' M! V3 B( `6 e7 L, q: K. P: R
- ;;;
0 d8 L8 r, i$ |: c8 N - ;;; EXCHPROP.LSP
3 Y. l% A9 u$ a, p% r - ;;; Polyline and text modification capabilities added by ' J3 t2 Q5 e! w, s4 i
- ;;; Randy Kintzley
0 Y( h$ |, M7 g3 q9 ] - ;;; ( ?: C9 \; L& O6 U5 K' `, l
- ;;; Copyright (C) 1997 by Autodesk, Inc.6 `5 q0 E7 R; Q. ]. ~4 g) X: r: g
- ;;;- \$ W& g K2 w; A, @# Y( {" m
- ;;; Permission to use, copy, modify, and distribute this software
. H: J6 I; C0 M) a - ;;; for any purpose and without fee is hereby granted, provided
7 Z: g j+ R6 n - ;;; that the above copyright notice appears in all copies and
' Y4 d" f& k0 M1 }/ ~ - ;;; that both that copyright notice and the limited warranty and
7 p% q& y/ E7 o6 a; V& b4 E - ;;; restricted rights notice below appear in all supporting
; T4 l" O% r. h1 m2 O% u - ;;; documentation.( N) a: e5 Z! f# `4 F! Q$ R
- ;;;/ v1 y5 ?2 E- V8 K, B
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.3 |% L$ B, `' o) e+ I& \6 a
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF# N' T: A; U& H( p5 F4 `
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
2 f) z8 |/ Y4 ^( h& p& o6 Z - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
O3 P% C& x G' J - ;;; UNINTERRUPTED OR ERROR FREE.
- R1 J# d! v, }& F - ;;;$ N. R0 n$ n8 R6 u5 d
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
0 A( G5 v$ r6 ^8 \: M, r; V; p - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer% y( P4 C& V, C7 I; a
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
- _% B2 J! A6 F# p( a# j, P - ;;; (Rights in Technical Data and Computer Software), as applicable., O2 J4 o5 v/ }2 L
- ;;;
; W" ~& n3 l- B% S* a - ;;;.
( ~' B$ z( T: n7 B2 |$ x8 q3 F - ;;; 28 February 1997
+ M( ]3 K5 C! }# E& d - ;;;
/ H6 U5 [7 }8 f( A) D8 x - ;;;
- d: v1 z9 L+ U0 X- ^" J - ;;;----------------------------------------------------------------------------
$ Q! b, N' h$ y - ;;; DESCRIPTION5 D% _: z) q* R8 L7 ^
- ;;;----------------------------------------------------------------------------: h- f) }0 z7 }3 B+ X4 j
- ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
! h( f+ m0 v$ k2 t/ t8 ] - ;;; command gives the user the abilitie to change several characteristics
0 J2 p2 l( U$ u6 a# O2 w7 R - ;;; of selected polyline and text objects.
1 k& J, j4 V# a - ;;; The style and height of selectected text objects can be modified 9 ]6 Y! }) c/ _& D, e' o
- ;;; (including text, mtext and attribute definitions) as well as, width and
0 q/ M l0 Z2 N" r - ;;; elevation characteristics of selected polylines (includes lightweight and
" U" Q% R6 ~: G4 S- u - ;;; traditional polylines.)
4 H9 b$ i* _, U* ` - ;;;----------------------------------------------------------------------------
7 E* k2 O' k9 z" e - ;;;----------------------------------------------------------------------------$ \: d' q7 V9 y' o& s' Q
- ;;; Prefixes in command and keyword strings:
, J. d* w0 ^; o0 ? - ;;; "." specifies the built-in AutoCAD command in case it has been% _# s1 V- }& k: M' h9 c/ ~! a9 M* v
- ;;; redefined.
8 o: r1 @" Q# Q5 [ - ;;; "_" denotes an AutoCAD command or keyword in the native language
9 U& b. i' z% O - ;;; version, English.. A, t0 G" _, ^
- ;;;----------------------------------------------------------------------------( ], S+ ~, D4 n
- ;;;/ I% s2 N% W! U. B( x. ]4 s
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
: A! T1 ^3 D$ {2 ?5 W- e - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;- ^1 Y. d, B+ e: F
- ;Functions created as result of loading file: exchprop.lsp! t3 Q# u$ y; D z. ~ p, Y
- ; DDCHPROP22 L( g! f1 T7 ]2 V# N5 e
- ; DDCHPROP2_INIT! Y0 e5 V; _2 `; d* \
- ; DDCHPROP2_SELECT& {" d2 d2 C0 f' _- _
- ;+ u# l5 K ^- x8 Z
- ;Variables created as result of loading file: exchprop.lsp: c J5 u" i8 U O4 E
- ; OLD_ALLOC2 ^( ]- {" _ f5 u2 X
- ;
3 `# u7 k# K7 e; b* n! |9 l - ;Functions created as a result of executing the commands in: exchprop.lsp. p. G! r; |0 f- W$ L
- ;+ Y& K- C* Z' {! h2 |" J9 y
- ;Variables created as a result of executing the commands in: exchprop.lsp
3 t! Q0 Q) `( ` - ; AI_SELTYPE
. U- v0 L8 B; N6 f" ~0 P - ; BONUS_ALIVE
4 k+ d6 c$ l7 C8 T7 y# X; r. h9 s - ; BONUS_OLD_ERROR4 g1 h# e0 d, X1 N- p
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
) i6 b" ?% u+ d$ X3 o7 | - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4 S6 M* x1 D/ V! ]
s1 ?1 |3 ?! x7 F9 H/ J9 _; z- ;;;
( [& k$ b+ ~6 B" v! {1 C b - ;;; Avoid (gc)s on load to improve load time.' U' t- K8 v) A9 }& T) d
- ;;;8 V: R" f0 T6 \! U, I6 L
- (defun do_alloc (/ old_allod new_alloc)
5 _. t5 R) v% G1 ?; F - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
* Z: {5 J: _+ D0 I. K5 O - (expand (1+ (/ 4750 new_alloc)))
9 p$ K2 i( Z8 ? - (alloc old_alloc)
% C3 A4 j' R( R - );defun
% L e5 e2 _* ?- Q3 d5 m7 r$ I9 ]' i- F
; Z z" d8 x! o* m. Q$ ^$ X7 E- ;runs at load time - rk
# W1 G) O# L% k$ V% t' K - (do_alloc)
M* O5 f6 W4 f2 d8 V - (setq do_alloc nil)* M: L% J8 o* M& }
- ;;;
. n7 D, \ o) G5 o/ X - ;;; ===========================================================================9 `% K3 y; [. I$ L& {% ]
- ;;; ===================== load-time error checking ============================4 x9 V1 ]9 K' j$ R4 }# I4 m0 Z
- ;;;
0 a5 ~' R3 |% H/ _3 R, L) n - ' C) @8 f& ^" s! Z+ D
- (defun ai_abort (app msg) ) Q" p1 g1 E1 t, K+ O- h8 y
- (defun *error* (s) J; I( u% c- v' E, H& h d
- (if old_error (setq *error* old_error))
6 L, W- L0 O4 F) J+ l - (princ)
' q2 M2 f/ I* L+ u8 E5 v( v - );defun! {. W, w; P8 L$ d$ z& v7 B- p2 l
- (if msg
7 H$ N* ~. A4 P0 m - (alert (strcat " Application error: "
5 U" C8 @( ], s, F, w2 Z - app% D$ T2 a4 c/ P
- " \n\n "
5 u% |6 J9 u% z - msg
7 B% f3 \$ u, h - " \n"% l. ^# k# H% U7 l
- ). p+ E" n. x$ i/ P! P! r& Y
- );alert5 @% g& `! k" n3 e, B. B( i
- );if
( ~* a: J) E1 c( C8 A2 R9 ? - ;(*error* msg)1 ]6 p$ b/ {: d' }
- (exit)
9 b- v& I& W, w: }1 b @# z - );defun ai_abort
3 t8 \8 B1 \0 N4 j, F4 m# b5 f
: w) B$ F( Y0 \0 o' q- ;runs at load time - rk
9 Q8 E- N- K/ e) T - ;(if (and *error* ;added the if wrapper around this - rk.
/ G# J+ c% H. @% J - ; (not old_error) : d) r8 e% v4 H; u P% j
- ; );and 1 I9 P. o1 C, o- l- A
- ; (setq old_error *error*);setq
' I: U3 |7 a! l/ o( h' U - ;);if
$ w( y4 X; E' n0 q9 q- \1 i' r - 7 d( P; P, d# M7 C3 l; A: x; I
- # ]; d* S8 f( W' g! i+ n% _# x" V
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
3 x9 X) y% d6 L5 ~8 L" e - ;;; and then try to load it.
. s3 o( J& H. G5 J7 F( L% F, F - ;;;
. j# G9 i% h6 _& q. G& P - ;;; If it can't be found or it can't be loaded, then abort the# I5 _! B1 g p8 p
- ;;; loading of this file immediately, preserving the (autoload)" F/ y+ R( k u
- ;;; stub function.
7 K. w7 f; `7 r C; z
. I9 Z8 o# p3 r. [) I) {- ;runs at load time - rk.* |: y- X! ~, p6 y( _2 C
- (cond) j# Z, j3 i: F
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.2 N) |/ N- e# n, `2 |+ a# K- ~
- ( (not (findfile "ai_utils.lsp")) ; find it- ^% G6 S5 m( o& @ v. I9 }7 ]
- (ai_abort "EXCHPROP"
) z# }/ }" F) \' g# y - (strcat "Can't locate file AI_UTILS.LSP.", c. k* ]- A# y$ g. c8 u+ |0 y6 R
- "\n Check support directory.")
9 S. |; A6 A2 }" I' S) [/ {, ^ - );ai_abort6 X4 [5 A, G/ w% o* h- I& H* g" {' D
- )
# Q6 H* ~$ q( M% M8 K/ i - ( (eq "failed" (load "ai_utils" "failed")) ; load it* r9 x. Z4 M$ n) K( p4 ]
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")9 R7 U. N0 w3 Y, j2 f" W
- )
% s" S5 r% n* K* y - );cond close
$ v1 x' B4 O8 P - 2 o- k0 c) s, U7 ]* \
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
' z/ r: e( Z* M. i1 q5 O1 z - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses9 z0 `5 t8 V8 l, Q* T+ M( d- O) P
- );if ; ai_abort's alert box dialog.
8 Q& Q5 n4 Q+ K7 M' N1 m - . l! L1 f* P/ Q- x5 ~
- ;;; ==================== end load-time operations ===========================
3 U2 S( e; t6 [9 I0 Q8 u - . W0 }1 M! ^, B' _8 |* B2 z, _
- ;;; Initialize program subroutines and variables.
* D$ i) }5 ^ \1 k, x - G$ {# L* \4 x, q) d2 z, @
- (defun ddchprop2_init()
0 A4 `; u b, u+ ~* o/ d$ c - ( c/ J) s! O& S$ l$ r @- H) s
- 1 k; J, \; K- E I4 T p
X" L: S9 o6 p9 Q- ;;
2 _" g7 V2 [2 w/ X( E - ;; Define buttons and set values in CHPROP dialogue box! J R. @ `' _' k/ E
- ;;1 A, w% q3 D" E
- (defun call_chp2 (/ cmdact p1 p2) Z [$ l; X& n" v, {2 z9 G
- , y2 L& N, t- A2 ^( u0 _
- (if (not (new_dialog "ch_prop" dcl_id))
( E" v- E" L% M V - (exit)/ ]1 V4 n+ U7 u. z, g, f6 B- {
- )& c- d6 _9 l; f! h8 r' R/ k
- 8 F4 ~; S% }/ b/ a1 c# G/ I+ j, t
- (set_tile "error" ""): f1 Y" Q$ m' S
- ;; Set initial dialogue tile values# ` @& `0 g3 A' s7 G5 h% f
- (set_col_tile)# F l. m& r& U3 d( x, A; \0 S
- (set_tile "t_layer" elayer)8 [: b& m, V! u9 S
- ! N+ c B5 [. t& G( {3 S; E
- (cond4 p4 E6 W# O) T9 n; P9 d$ x
- ((= lt-idx nil)
8 M: @ [2 A! O3 A2 x' u) A - (set_tile "t_ltype" "Varies") [2 n8 @+ u( R2 Z* B4 d: Q
- )
5 W5 L/ S0 X% z3 s9 P5 U, y - ((= lt-idx 0) ; set tile "By layer & layer linetype"( F2 R2 }( m( ~) z+ Z1 a8 n4 E
- (set_tile "t_ltype" (bylayer_lt))# x) f6 p e/ t* N7 {% _
- )2 V" ]- }. v" X, D8 t2 c0 u
- (T
; Y+ M. t, f! k0 ]8 E1 M+ N# R$ _$ \ - (set_tile "t_ltype" (nth lt-idx ltnmlst))0 ]7 K) w G# s$ i
- )& S( R2 z" T e4 v, G* T9 p+ h
- )
0 [9 V# a' o4 e7 i) L# D- I; B0 ^ M - ~, |+ G& k( s. p) ?% b$ B- X9 F
- (if (or (= ethickness nil)
; q# u$ ^- q u! ]2 i - (= ethickness "")% \9 H2 I$ \% z8 e
- (= ethickness "Varies") 9 f$ {: R* H8 a) m/ o+ O! y
- );or9 z& `4 P$ x8 w9 m
- (set_tile "eb_thickness" "")% ?) r" G6 o) x0 u& z
- (set_tile "eb_thickness" (ai_rtos ethickness)), B G8 T7 B( _. Z1 Z5 m w
- );if
2 f Y" ?0 }% t7 E - (if (or (= eltscale nil)
/ X/ a B. S2 @3 @ - (= eltscale "")
; K3 e$ P8 g1 z - (= eltscale "Varies")$ b# d* p+ ~' Z& b* m
- # _3 K% s [# d. J( g) P# i9 p
- )
* z _- `- q: x0 }; E b - (set_tile "eb_ltscale" "")
. n, F: m8 n! [" |" f - (set_tile "eb_ltscale" (ai_rtos eltscale))
" L4 N0 v+ ?5 O' D' G; v3 e5 l - )
, m* l: c. h) K& ^9 z - (if6 x2 O; q2 ~ r+ W
- (numberp ewidth)
3 x! S$ G ^" z1 W$ |) F - (set_tile "poly_wid" (ai_rtos ewidth))
0 h! a8 p% o, i+ k0 R( w - (set_tile "poly_wid" ewidth)4 M: h+ w) w% x# c
- )( ]1 B% j u' E* m' e$ H
- (if& y" a! A( L; g, w$ ]) g
- (numberp eelevation)+ u$ l% }* X+ j7 b5 _! l9 W
- (set_tile "poly_elev" (ai_rtos eelevation))
K) Y" B$ Y* D5 ]/ q& [ - (set_tile "poly_elev" eelevation)1 F% {0 s( H1 P; [/ E4 E/ f9 U
- )' T+ y0 f- l; S
- (if
4 \ f: y! T9 F. ?- z9 V8 w9 E - (numberp eheight)
0 \' O+ s1 P: x5 t - (set_tile "text_hgt" (ai_rtos eheight))
0 S0 q0 \3 U" Q, P' F - (set_tile "text_hgt" eheight)
9 n$ I7 I* s& T( N& w - )+ g; n) r! Y5 T: O8 G+ J
- (if (not estyle)2 ~/ c& h( _' x& }
- (setq estyle "")
3 c# Z g/ p. y) N; `7 K - );if $ _1 u3 S C- J' R+ `1 r
- (setq hair_style_list (tnlist '("style" 16)));setq: u& V' v; S$ T( d2 l5 z8 W8 I
- (if (not (member estyle hair_style_list))$ t( b% b3 h' u# I5 O: U* E1 s' [% E
- (setq hair_style_list (append hair_style_list (list estyle)));setq5 i4 F% y$ e: d/ _- r9 R' p- F
- );if
/ ?; L" w" X5 C' G% J/ G( k - 2 N! E5 f7 h& F/ _" S1 h( Z
- (setq hair_style_list (acad_strlsort hair_style_list));setq% I5 u- ]% I6 E. t) T" J% ?0 Y" e& Z
- (mpoplst "text_style" hair_style_list)1 j O- D; V; h! `$ _
- (set_tile "text_style"
& W* X4 u+ \5 G8 f9 M: z7 H - (itoa (position estyle hair_style_list))" W: b' \& i* Z, T
- );set_tile : T4 O V' J0 v8 A8 ?% B2 P
4 n: s$ N3 Y; L, a& Z- ;; Disable tiles if need be... ;@RK2 l z' `3 G" n, N
- (setq a 0)" D! ~7 p) e, r. t0 S
- (while ( < a (sslength ss))( Q, N1 _3 B3 B1 M7 d$ K
- (setq which_tiles0 P* |8 L) S Q0 X; w2 I9 A$ V% |
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))2 Z) m0 G( w! w+ k F3 O- d1 X
- 3 p- p* o% l8 @7 w
- ;; If all fields are enabled, don't bother checking anymore.
6 ^% z! @& g, c/ g - (if (/= which_tiles (logior 1 2 4 8 16))
* z: K& ^$ S F - (setq a (1+ a))
9 O1 Y* W6 w. e. ^. s& m - (setq a (sslength ss)) c" F ~* h& b: {
- )8 Y6 @2 F+ [: M
- )$ T% \: i- e. Z" r. W& K
- ;; Layer Button and Text Field0 |" { X6 |# r
( t- o0 n* K! \) N. e- (if (/= 1 (logand 1 which_tiles))
. t4 O; W' t T0 I - (progn
|1 C1 E [2 f9 \5 W9 ? - (mode_tile "t_layer" 1)5 E. E1 }: \1 N& q/ W& f
- (mode_tile "b_name" 1)
9 m% e5 j" q2 E& c7 L& S - )
% ~1 x; ?2 R' j! H - )* x& Q# v3 a/ L0 V( o
' y9 D: z4 U! T& A" q" x- M- ;; Color Button and Text Field/ ?5 o0 A- @ E) X [, B4 j
- (if (/= 2 (logand 2 which_tiles))
" }! t. J, w, N6 F - (progn/ j a0 S9 T# O, |
- (mode_tile "t_color" 1)
& Q7 F) C9 `& R4 r' e - (mode_tile "b_color" 1)
1 E- a6 Y, ]5 z |8 w6 s2 R - (mode_tile "show_image" 1)/ l$ K b$ m: Q: y
- )
8 w% o# U: D Z - )) J3 j' D$ d( K; L: k6 |
- ;; Linetype Button and Text Field( x/ ]. e; E6 y8 {+ B1 `/ a2 a
- (if (/= 4 (logand 4 which_tiles))8 n$ m0 Y, y5 D/ B. F
- (progn ?% E8 e- c! R' l; r/ t- `2 L& l8 ^
- (mode_tile "t_ltype" 1)
$ T+ P) x J+ S" r" n1 \. v - (mode_tile "b_line" 1)
J( }8 z& W7 N, U, \$ j - )- Q& {& q: w2 q9 d, t
- )
; s- d1 e" C: Q, c& q - ;; Linetype Scale Edit Field# h# B: M" V; i6 Q
- (if (/= 8 (logand 8 which_tiles))
' D" ~, Y' M0 U2 S* w4 B* i6 z7 p - (progn
. ]' b# b5 J% {. P4 e$ J - (mode_tile "eb_ltscale" 1)9 D; X$ m$ g3 F6 I4 g* B
- )9 n( E" n! |8 A9 |
- )
2 y. t5 E% I8 [1 \; ~ - ;; Thickness Edit Field.
8 q) `% M5 J( c1 O* E7 c - (if (/= 16 (logand 16 which_tiles))
* z* I$ x% ^5 [" }) I - (progn
$ e& K4 \: I! E& l - (mode_tile "eb_thickness" 1)+ Q1 ?( p3 K' S
- )
# q, a: G% z6 A' N! R0 S. G& k: q - )0 V7 p: x, n3 O; D/ L
- 3 j0 d d' K4 W+ {$ C
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97, J3 h6 u, U/ a+ K/ K; s7 Z) k
- (if (not (= 2 (logand 2 eflag)))
' Y; c8 u i3 k+ l0 ?' T" P, [ - (progn. _& b% s z! g/ c9 g6 w
- (mode_tile "text_hgt" 1)
7 \' X& @) `/ Q - (mode_tile "text_style" 1)
3 ?" t8 u6 H3 p - );progn
( e/ Y0 h7 `) d% i$ o - );if
3 h) J" f! J! O - (if (not (= 1 (logand 1 eflag)))
3 j6 |1 f7 G/ S+ f) `. M- L - (progn : U& L* R6 S, L- x; A
- (mode_tile "poly_wid" 1)
; v$ T. A$ ]! ]2 o6 ~5 d' i( s1 t - (mode_tile "poly_elev" 1)
4 K+ }3 ~7 g/ ? - );progn then disable polyline fields x# x% z) `* \: D% x
- );if5 l8 y# ]% [- A5 ]
; V& h- R0 L* z; w- x3 w- ;; Define action for tiles! c2 p/ S$ p5 p. W; @* |
- (action_tile "b_color" "(setq ecolor (getcolor))")* J, B7 g* d) G( x, n" A4 ?$ u" S
- (action_tile "show_image" "(setq ecolor (getcolor))")0 v* f: F* ~( Y/ S, S
- (action_tile "b_name" "(setq elayer (getlayer))")# E. z0 s$ r1 I$ R6 s% ^
- (action_tile "b_line" "(setq eltype (getltype))")
& V9 w: k! C$ r( O! F - (action_tile "eb_ltscale" "(getscale $value)")
3 ?4 U" d* M: s - (action_tile "eb_thickness" "(getthickness $value)")" @$ i0 \' S4 Q1 w2 v. e: P
- (action_tile "poly_wid" "(getwidth $value)")
: F% p+ Q9 Z3 Z' O$ k - (action_tile "poly_elev" "(getelevation $value)")
8 n/ {; ]. @, q& ]* ]" q- i - (action_tile "text_hgt" "(getheight $value)")
* h! ~1 X; N" F, O) R9 g - (action_tile "text_style" "(getstyle $value hair_style_list)")
4 E! n) z5 W) t - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")/ w0 C; ?$ t" W* y
- (action_tile "accept" "(test-main-ok)"); h; P2 A$ K1 F/ B) ]: W
% G; s. I' {7 f: z6 u$ T- (if (= (start_dialog) 1)
8 f( j/ \& ]! e+ T& e4 L& N - (progn
9 F. ^! m! c" X6 O4 M - ; Update special properties for polyline and text selection-sets.
* I- @9 ^5 |7 y/ K -
% ?, Q/ M( F* z8 [9 R3 j - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop+ b9 v) L4 B4 L. {
- (or ewidth
! p7 |2 H8 s, i% [* n6 Q/ c - eelevation7 U7 |" o0 @! E
- );or" Y& }1 ~9 D4 g
- );and
4 F/ v& Y: {, Q) c - (progn' V: O7 r% b3 m. K6 }) x, W" `- m
- (setq ss-index 0
6 u) g ?: f) i) ~( X& C - ss-length (sslength poly_ss)% v! b# z; Q% p' f
- );setq
. R9 }# v( n2 A5 D1 D! N }) w - (while (< ss-index ss-length)
( e7 d3 X1 r+ c$ l, P' D. Q$ ` - (setq ename (ssname poly_ss ss-index)
1 c# J, w1 o. W8 a( D1 X! L4 v - elist (entget ename)
$ M$ ^6 d8 P& ?; _ - );setq
( g" Q0 D8 g! v( o2 O - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp. A7 s- `4 _9 }% ?/ @, D
- (if ewidth - _1 Y( @# a( n
- (command "_.pedit" ename "_W" ewidth "_x")
- [) n" B: |0 @1 p" n - );if 3 L- ^% B/ m- ?
- (if eelevation
7 d) Y4 F* R1 W) F# h - (progn
1 T) q6 R5 S& w. z - (setq p2 (list 0.0 0.0 eelevation));setq( l8 Z4 E5 s( z, Y$ o3 E. |4 V
- (if (equal (cdr (assoc 0 elist)) "POLYLINE")
6 j: ~' @0 j. @: I4 b, ~ - (setq p1 (list 0.0 0.0
1 i! z2 s5 ?) B2 _' p% t - (caddr (cdr (assoc 10 elist)))
' h, a; g8 n9 c( n+ t* U - );list2 u$ E$ X+ Q1 Z% w0 @
- );setq
: M* l) k* [, U' `3 s+ Q - (progn& m/ F9 E5 b$ c, h# l; l# }( a
- (if (assoc 38 elist)
' P3 j- u* [. ~: b4 U1 G - (setq p1 (list 0.0 0.01 [) v- D* q4 Z& n( C* I
- (cdr (assoc 38 elist))4 v/ W: W$ n+ `% X
- );list
: H' W I1 g$ \4 G0 O g: |2 q% S - );setq% q, ?% L% K; G L: p0 l5 P8 U P
- (setq p1 '(0.0 0.0 0.0))
/ N# N7 P% G2 @ - );if3 x' ^0 J$ O6 z5 a W
- );progn ( J* b/ }' ?' g ?2 R
- );if
/ B/ H: ]; a0 H' F, ? - (command "_.move" ename "" p1 p2)- r- {- V3 W! H, ]4 o! \
- );progn then change the elevation of the polyline
& p# K/ `5 y: M0 y' g4 A/ V W { - );if
/ z5 d7 x7 A }7 q5 W- o - (command "_.ucs" "_p")
9 J) I# o1 G/ W - (setq ss-index (1+ ss-index))5 P" T! d9 B- z* ~* ^! Y
- );while
1 u# v$ J9 G4 ]# {) [/ Y- v - );progn then polylines are in the selset
. |; ]* }- p' Q5 j6 ?+ t' f - );if1 ^7 O2 b3 Y$ y, T
- (if (and (= 2 (logand 2 eflag)) ; text) d+ P6 B6 L- R: L6 i
- (or eheight , b& W- G# g- T# U7 }% q
- estyle
( I% U" O' g6 R0 o8 R - );or
5 O+ ]) ~& h6 T, s5 ~+ R- T - );and" `' ^4 B/ H w! y4 m
- (progn
& w4 P8 h2 [$ d. ?# ` T3 @$ _" p, l - (setq ss-index 0 ss-length (sslength txt_ss))
1 x2 r7 B1 \2 {# z' ? - (while6 A( v1 W5 ?% \/ ^4 k/ _ Z/ C; z' p
- (< ss-index ss-length)
0 ?& n+ p, E, k0 m. q: ^ - (setq elist (entget (setq ename (ssname txt_ss ss-index))))4 c" t1 _, S6 Y5 ?3 m) l
- (if (numberp eheight)
7 c; N; C c+ u9 j; G9 J - (setq elist (subst (cons 40 eheight)5 o) D5 d/ S0 N" b0 |
- (assoc 40 elist)( z+ m0 q' x/ u
- elist
3 b0 v' v* t+ B# q) Q5 l7 F, c - );subst
3 ~* W% @- d& ~% q) L' Q3 Y: } - );setq
' L% M$ Z, g: q+ `$ N/ X - );if
! C5 h, b. [* i3 `1 f5 G - (if (and estyle ;(not (equal estyle ""))( _4 g, X1 q$ M2 l5 G0 a1 |
- (not (equal estyle (cdr (assoc 7 elist))))
( s" O! Q" `. y1 B$ A/ u9 A - );and
& {1 N& z& P% Y! V/ T - (progn 2 c4 e3 v6 y- y' Q* B2 z' T
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt , c: C' {- o( _- [
- ;(if (equal "MTEXT" (cdr (assoc 0 elist))). U8 X' M ?/ j7 m
- ; (setq elist (fix_mtext_fonts estyle
( C# E0 d9 Z# h8 j2 o8 e - ; elist; i8 ~+ H3 I: }$ {
- ; )/ l$ t6 x X: D( q( Q
- ; );setq then' j8 q9 E: p; P7 v$ K7 Z
- (setq elist (subst (cons 7 estyle)
) F* f& w4 X' i" C- \( d - (assoc 7 elist)
j2 q. [5 W; w$ r8 n/ D - elist
: H/ A) `9 ~, f& _& U* b - );subst
* ?2 B/ ?: A2 ?$ O0 z: b' ~, b - );setq else! n4 y+ m4 z4 D3 D7 ]
- ;);if : d3 A, r7 X2 n" |2 ?
- );progn
' H: a/ Y. i, D9 h - );if
$ p/ Q$ k! j# Z1 F+ D$ D* Y( ~ - (entmod elist), ~: J6 v- p# l1 O7 B1 I
- (setq ss-index (1+ ss-index))
5 h; e* B& q8 g - );while1 ~ b! i4 g4 h( y
- );progn then
) J* x0 u& S9 F - );if5 w0 \6 i; R* l# W% b5 k. h' d6 G
; t' x9 g* H9 c9 H$ h. `0 Z3 k/ J- [0 }- (setq cmdact (getvar "cmdactive"))
0 c. w4 D8 v9 @" g4 S3 o - (command "_.chprop" ss "")
* } g4 O% K; b4 S - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?7 |" @$ y5 E. S; l7 r
- (progn
* _! T) D" _: V N - (if ecolor
; _2 t2 s V3 [/ U2 h4 K - (progn+ E6 R0 ?- {+ a& z5 {5 ?
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
" F& _, \! N# a1 \( w2 ` - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
! i8 ~9 o7 @ \6 D% N - (command "_c" ecolor)) n6 E8 D6 E; h5 \/ X$ ?
- );progn then
4 g; _# @/ ]. ?6 H3 v# \ - )
8 s6 e# I0 U5 x' P- ~. R. [: d - (if (and lt-idx
( h, Y! B5 G6 `$ H* ?+ N% _ - (/= eltype ;|MSG0|;"Varies")
9 O5 n" m6 R K% { - ). ~' j+ E, ?* ?, K
- (command "_lt" eltype)
) h) o% D# m* m2 \ - )+ N6 a- n7 k9 z* |/ X3 k& R. C, N- _
- (if (and lay-idx - ^- b9 H4 ]: Q( j6 _ J& \/ M& W
- (/= elayer ;|MSG0|;"Varies")9 y; e; }. `& L; B1 f' H# P
- )
. @" s7 S0 h7 Z - (command "_la" elayer)9 Y1 m! q1 V$ k8 A3 A
- )
7 T& P3 {2 o+ B, _9 [ - (if (and ethickness
( U" ?, Q% i" J9 K) p - (/= ethickness "")$ c+ ?# {* q" \8 N+ H) ?2 z
- (/= ethickness "Varies") + ^$ A, W8 `, _$ ^' c4 {3 w& K% w
- )
8 a' ]0 H3 u$ K Y& f - (command "_t" ethickness)
: M9 ~+ b4 B+ l! d - )0 U6 K$ z o0 M: F
- (if (and eltscale (/= eltscale ""))
* ?/ i" n* r4 X; k; ^ j& P - (command "_lts" eltscale)
8 }9 t: f4 e ~5 }0 L - );if
& c' F5 U! t" ? - (command "")
6 c u4 q- }6 S& {" H& l8 x: C - )
( ]+ k2 y3 T# ~- j2 Q( g: C0 r+ g - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
5 m/ Z2 _; k4 a: S: M0 H5 X% z - )8 Y9 Q" i/ i p# o
- & v' t! n! G8 N U6 y& R
- );progn then OK was picked in the dialog.
+ o8 o( J5 D; }% I2 N* n0 m4 U - 4 Z% I1 m- ^! q( J7 g4 |
- ;; Fred GERBER - 25-AUG-944 C3 q2 k- V) L! I9 x9 Z O: I
- ;; Don't print the "Properties unchanged" message when the user cancels# j1 H R: s/ Q$ R. \ W! ?
- ;; the dialog because he knows that already (otherwise he would have
/ S! w; t p& O5 \0 ? - ;; hit the "OK" button). Display the message only if CHPROP fails for
! a2 z; B1 c* F8 K0 g - ;; some reason, because it is not the expected behavior of the command.# Y& M( i0 D+ H* l5 I
- ;;
8 k- y3 D5 p) Z) V/ H+ e# }. l) {' n) { - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
: A3 I2 X- u- Y" m1 T5 a - );if
7 i8 }& Y5 ~' m6 r3 a2 @2 }' ] - (princ)
. C2 b' ]# x& m - );defun call_chp2+ V; G5 q( Z9 X- d; ?
- ;;
" r9 n- }: ~& b- N; \- a9 m - ;; Function to set the Color text tile and swab to the current color value.1 O- D6 T/ Y- Y4 v
- ;;/ Z0 p) }& T% y' B0 a( F* O3 v
- (defun set_col_tile()
, _; M( p$ M9 r8 b/ i - (cond9 ^3 w) H2 F; k! X
- ((= ecolor nil)
2 C1 G% W; H( u. M( }6 A - (set_tile "t_color" "Varies")
/ H$ m$ _! Z2 L$ j - (col_tile "show_image" 0 nil). u) ?; ?; F% y* W U+ Y+ _
- )
8 G8 C- C! \! p9 l2 w - ((= ecolor 0)
8 Q: B; T3 d8 X" T - (set_tile "t_color" "BYBLOCK")! Q* Z$ b* _! Y) d
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
; f" o$ K, X% C) R: v& c( e - )
/ H, g0 k: M9 K; o - ((= ecolor 1)
" _% c3 B" A( y& m8 c1 T# `0 Y$ J. ` - (set_tile "t_color" "1 red")
8 Y( U1 }& O3 L4 e - (col_tile "show_image" 1 nil)9 C! L7 R# w0 \, ^& f. r
- )
$ ^) E8 R; P( w6 s' T0 S - ((= ecolor 2)6 v1 b/ I D% A) H
- (set_tile "t_color" "2 yellow")
K8 I% ]8 x6 T& y) F - (col_tile "show_image" 2 nil)& y( D( S! d: F- c; d
- )
- \$ z! y6 Z& r; ^9 f3 c - ((= ecolor 3)
. w2 A7 k1 n+ j# e( ?2 Z* l$ O - (set_tile "t_color" "3 green")" g7 O$ m2 w/ I$ Y1 b
- (col_tile "show_image" 3 nil)
+ s3 p* G3 R! ? {4 o1 U4 d8 b - )% @# g: V: T8 @9 x, k, A' K( q
- ((= ecolor 4)
! p7 D$ g" ]9 ]% N - (set_tile "t_color" "4 cyan") y# l# v6 v4 I7 z
- (col_tile "show_image" 4 nil)
/ H9 x8 I, `: }2 U' H - )0 B; } |: I4 G3 I6 F0 b4 J N
- ((= ecolor 5) B. H+ u/ h5 r& J9 \- Z
- (set_tile "t_color" "5 blue")
h n) M* a' h. c4 n - (col_tile "show_image" 5 nil): _& Y3 X6 O. E) ?% O
- )2 L8 V7 u2 i, `" G
- ((= ecolor 6): g/ ?& q: C+ [
- (set_tile "t_color" "6 magenta")
# F7 y c9 Z# x6 I( P - (col_tile "show_image" 6 nil)
" P, Q+ ? ^+ H6 S W, D - )
) M( d9 S: j* s( g+ _! {# M5 V - ((= ecolor 7)1 `& I8 N9 C3 i
- (set_tile "t_color" "7 white"), e$ _2 Q/ G2 G7 _6 h8 \4 C
- (col_tile "show_image" 7 nil)9 o, X8 M! _0 ^* |" d: c
- )
+ q$ P! M4 Z0 W - ;; If the color is "BYLAYER", then set the tile to) k9 }: Q8 O! W% f! y3 }3 s
- ;; show it's set By layer, but also indicate the1 E" F2 C3 ~( v# |# x
- ;; color of the layer - i.e. By layer (red)
# ]4 v4 ~3 g, P" ]; A: Z* K2 [2 [ - ((= ecolor 256)6 H! i+ G& D% c5 N( x
- (set_tile "t_color" (bylayer_col))
0 j' h! a3 | L: z. h5 z$ Y3 A% n: w - (col_tile "show_image" cn nil)0 K8 q( |- M% t
- )9 e( S" C! L8 ^4 c$ I' `1 y
- (T
$ P# K5 R/ s/ L" e - (set_tile "t_color" (itoa ecolor))4 p! E$ c! X3 w- W% E: @$ |: @7 q( Q% B
- (col_tile "show_image" ecolor nil)3 k9 l! z$ s& W. h
- )
( [/ S0 y' Z& T( f9 t! V - )
) |8 z: _: Z% l6 { - )
, K: h9 ], @8 I- A8 v; j+ o2 O$ ] - ;;. {/ _1 V" x6 z+ S' Z- u; o
- ;; Function to put up the standard color dialogue.8 }9 H* `* n5 `0 \7 y( e
- ;;2 e ?9 a5 K8 c- `% P
- (defun getcolor(/ col_def lay_clr temp_color)
+ O9 |+ H- Z% p/ t - ;; col_def is the default color used when rq_color is called. If ecolor
( M3 ] N, }5 Z- `1 p - ;; is nil (varies) then set it to 1, else use the value of ecolor.
) h( E- A t4 c' L - (if ecolor4 Q) P1 I& ]- f; _$ H* j
- (setq col_def ecolor)
. Q/ D- d; P6 }0 {6 j - (setq col_def 1)
" E- P/ Z0 ] M, m" c - )
3 D4 n# T7 e( I8 ] o - 6 l/ d2 j! V3 U5 {1 A9 t0 W+ t: f
- ;; If we're working with a single layer, get its color2 f- z+ j1 C4 A: v
- ;; for use in the color swatch if the user selects color BYLAYER.5 _" I& ?: E, o+ H# y; s
- (if (/= elayer ;|MSG0|;"Varies")
; q8 l& \* n: a: x P - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
5 G9 t# L$ f+ S2 s, I - (setq lay_clr 0)
+ o$ Y4 |+ G ^% G* a: n - )
8 P8 z/ p0 k! H" z6 t( O1 v - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
0 e4 [. L; `& a) n" q ? - (progn
# p: Y) o& Z3 n6 _0 [, l - (setq ecolor temp_color)
7 U- r' [1 m6 p# Y6 t$ n - (set_col_tile)# H8 d2 d4 O6 V: w3 ~
- ecolor
5 z* w/ c. g' g2 n" p! o - )# q5 j4 ^ W% C
- ecolor
2 }5 Y" r! i! n - )
; X" j! M7 g. L: y6 k% p - )
~7 v" O# ]! @! p$ r - ;;
8 t3 @' B) S5 e& G - ;; This function pops a dialogue box consisting of a list box, image tile,
, R! N9 w* C V3 u! J& E& N - ;; and edit box to allow the user to select or type a linetype. It returns9 \' T) F* r. o0 e9 `
- ;; the linetype selected.
( L& u1 Y+ ^5 k5 D" l% w5 s - ;;4 t: E# S; i9 n$ K4 W4 ]& _
- (defun getltype (/ old-idx ltname)& {5 T9 D; G o6 A a# l
- ;; Initialize a dialogue from dialogue file
5 T1 k4 n$ w2 R. A" r - (if (not (new_dialog "setltype" dcl_id)) (exit)): q% V7 Z; q. v/ w! h& J
- (start_list "list_lt")
L8 _! s; D l% V( a3 I - (mapcar 'add_list ltnmlst) ; initialize list box2 y2 S8 } Z* X/ W) q& m
- (end_list)6 v; O0 _# [- u+ z; {
- (setq old-idx lt-idx)
2 E& M8 |& w( \& F5 V - ;; Show initial ltype in image tile, list box, and edit box
& q0 A/ z# C% |& }0 j, J" q - (if (/= lt-idx nil)
! f& W3 ~1 ?, Q2 ~& b) {- t - (ltlist_act (itoa lt-idx))
: f" ~7 j* I8 j" f - (progn
6 G: s7 Q& F' T* I( ~ - (set_tile "edit_lt" "")
- E9 T1 j. t4 ?# ~" E& B - (col_tile "show_image" 0 nil)6 E7 S/ Q1 ?% J; z$ s; p
- );progn else& l4 [* G* X, P: W$ o! v
- );if
$ ?# R4 }; R+ r! V1 t - (action_tile "list_lt" "(ltlist_act $value)")1 j4 M) Z+ @$ ]: r
- (action_tile "edit_lt" "(ltedit_act)")8 E3 J: c# U4 ~5 O4 U
- (action_tile "accept" "(test-ok)")3 L6 ?( U7 p/ i" g; Y5 `
- (action_tile "cancel" "(reset-lt)")
( e3 [4 W; o, J# P( p - (if (= (start_dialog) 1) ; User pressed OK
1 q' u1 o0 j4 z; f1 P - (cond' }. s$ Z! W" B/ n2 v4 B3 P* E; m
- ((or (= lt-idx nil): ]# F" o* f7 g+ n
- (= lt-idx (1- (length ltnmlst)))
& G- e; Q2 w: o" {$ W7 ]8 H - );or1 x6 n3 W& g2 ~4 w- V G
- (set_tile "t_ltype" "Varies")
& ~# J0 s+ y" f+ _- I8 c - ;|MSG0|;"Varies"7 m4 i9 H$ [0 t; N
- )
5 R& D" [2 g% M/ ^* \ - ((= lt-idx 0)
: U$ B' ?7 u2 c - (set_tile "t_ltype" (bylayer_lt))) Z3 Y v: p/ T7 `8 Q% ?2 m
- ;|MSG0|;"BYLAYER"7 G& y- U4 O t6 i
- )
8 f* i% B# I7 I% `; T5 Y - ((= lt-idx 1)
* X) I8 W# M& E$ P - (set_tile "t_ltype" "BYBLOCK")2 K3 N0 ^3 L% M# l; n1 i2 Q
- ;|MSG0|;"BYBLOCK"& E, ^- l7 w, s0 |. L8 N
- )4 ]3 ?3 y8 {( t. O0 I, A
- (T
5 a$ o. v+ s, Z7 {5 y - (set_tile "t_ltype" ltname)% K+ j6 f! p6 Y; ]4 H
- ltname l) D9 R/ N% ]) P( L4 M. f. W
- )4 {" b0 ~$ p3 g+ G( P' D
- );cond then; P/ o! b# f5 d* V6 [2 w6 P$ u
- eltype! @) S0 Q+ B. ?- [. f: `( c
- );if% {& o) a) L' U9 d2 j8 k; T
- );defun
( M7 [3 |2 T( G( i - ;;
5 o0 p { v9 }$ r9 @ - ;; Edit box entries end up here. {8 j' T1 Z+ e; ^) }
- ;;0 R0 q. H, e3 a* v% \
- (defun ltedit_act ( / flag)9 E! r1 q; A0 }' w
- ;; If linetype name,is valid, then clear error string,
/ U+ u: H. S; O# D. K# H - ;; call ltlist_act function, and change focus to list box.
/ c6 W) l, ^2 ^$ k6 d$ ^ - ;; Else print error message.
, \& g9 ^3 I1 E2 w* j# P, @ - ; {' L3 m" {8 n% n3 f7 F
- (setq ltvalue (xstrcase (get_tile "edit_lt"))): m( M' G8 n& C
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")6 Z7 a! Q$ Q' v, t
- (= ltvalue "BY LAYER")) w9 d5 r( X' `2 k. B4 B
- )- z6 {, q6 ^' u: v6 Z% N
- (setq ltvalue "BYLAYER")
" Q) H& W) d2 x1 s - )$ W" ]$ m, R# n, H. B" }2 _' \. n
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK")- a- b: u9 G* R
- (= ltvalue "BY BLOCK")
^* e/ ]" S) Z; ]8 B* m3 }0 I - )
* t7 G% V. J# ^2 B: ?% P: K! P" ` - (setq ltvalue "BYBLOCK")$ H$ o! i4 O+ A1 j8 k( ~
- )
0 j3 c" W4 X H9 c! }* S3 t% B - (if (setq lt-idx (getindex ltvalue ltnmlst))
7 }9 ~1 l) i W {% N# r - (progn+ [8 U S) k0 @# `
- (set_tile "error" "")
4 X+ y5 i0 u( ^5 V6 n - (ltlist_act (itoa lt-idx))' U% q u8 X) `( l& ]% J Z
- ;(mode_tile "list_lt" 2)
9 L& n- O- C. k - );progn then
3 C: r9 }" a; Y - (progn" J# N- w+ N7 {- F0 b/ U0 u" Y% B
- (if (/= ltvalue "")
: ^% p: y( c) ]" a# K0 o - (progn
% ?5 }- R$ S- {; g6 [" w - (set_tile "error" "Invalid linetype.")# V9 I8 U1 N! A; y# S; s7 V
- (setq flag T)6 z5 C; h1 S: m2 |. l4 Z5 {
- );progn% }7 |2 _0 J7 I( i2 H3 u
- )! \0 r1 F2 h; K
- (setq lt-idx old-idx)
3 z+ Q9 h1 h* N7 C' l2 L7 B2 N - );progn else( i o2 ]4 ^3 }- e( \ A% Z
- );if
7 M( g9 Z6 r0 V) P6 E3 W! x: o3 Z6 K - (if (and (not flag) ;added so a return will take you out of the dialog.
4 i2 J) Z7 J/ {: t' T - (= $reason 1)8 L) M$ P2 {! G4 B- f# X. K
- );and
# T1 |+ D2 |7 W6 A7 h6 N$ m - (done_dialog 1) " D! i0 \' Q h
- );if + ? }5 P( a- F, N
- );defun ltedit_act% r% x) t3 |+ X" s6 w' v
- ;;
2 ~2 @2 y: {( S& a. Z - ;; List selections end up here3 U1 ^' [5 c$ y- s& o5 _. V9 [# P! y
- ;;
8 C5 n \5 W" b V! L: m - (defun ltlist_act (index / dashdata)) q' @, c. i3 s7 I( ]
- ;; Update the list box, edit box, and color tile
8 O( _$ g, R- Z+ ~1 r5 w6 [' G - (set_tile "error" "")( }* d1 L3 O/ ?- B( P1 t- Z7 B' Z
- (setq lt-idx (atoi index))
' T/ u& h' i$ l5 Q3 y" i1 C - (setq ltname (nth lt-idx ltnmlst))
" p4 [! m: S) Z$ {. x9 _' p - (setq dashdata (nth lt-idx mdashlist))3 M; g2 L4 H1 C
- (col_tile "show_image" 0 dashdata)
! D, f6 J; v. X9 ~+ N) o - (set_tile "list_lt" (itoa lt-idx))
4 w7 p( x- d' A/ t& o! B4 M - (set_tile "edit_lt" ltname)
2 }7 W9 l; c2 e - )6 n2 u0 H3 p6 o {1 ^7 Z
- ;;
" L. i% M0 u) }: |- w& h. U C - ;; Reset to original linetype when cancel it selected
6 T9 N! y; T2 m. w3 E( H - ;;) Y2 w( O! h- u* Q9 x" B" l
- (defun reset-lt ()
- @5 j" L8 i( l. g - (setq lt-idx old-idx)
m. s0 m* K. O ]7 z - (done_dialog 0)9 V1 f' O# x6 T$ T, a" H- D: R
- )
2 K4 G5 F$ }4 D# ~ - ;;
) [4 [2 b K! D; ~1 R# [0 @0 H - ;; This function pops a dialogue box consisting of a list box and edit box to
- e# ~4 k+ ^& J* A& O - ;; allow the user to select or type a layer name. It returns the layer name) x* o, @* S) q* S5 ~
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the7 z2 m5 x, |, B5 ]( r2 T
- ;; drawing.
, O' L# D a' B" z) F) i* d - ;;
, t2 ?) b( Y4 \- r - (defun getlayer (/ old-idx layname on off frozth linetype colname)
' Z9 q: K! v' j, J( m - ;; Create layer list the first time the layer/ ^9 {: a/ l8 W& A7 K6 |
- ;; dialogue is called.3 o# o; b5 F9 H7 |9 ^
- (if (not lay-idx)
, q+ w: Y& y, R* i - (progn
W8 U$ u& T; T) s( k+ O3 ]- J - (makelaylists) ; layer list - laynmlst6 c' x: c6 c+ t! j6 U
- ;rk8 Q6 D4 d) `) e3 Q7 I
- (setq lay-idx (getindex elayer laynmlst))
, x1 Y2 Y, o3 u( Z - );progn/ h* v& H! S$ v5 T5 Z
- );if
8 b$ S6 Y; z, B% H& R m
; Q3 ~" N9 h1 n- ^: Y, ]- ;; Load a dialogue from dialogue file( }' H( u! r6 x1 Q' f
- (if (not (new_dialog "setlayer" dcl_id)) (exit))" Z9 `- P* {6 X9 J& \2 K7 [/ f, U
- (start_list "list_lay")
4 O* \5 L, p+ j& @ - (mapcar 'add_list longlist) ; initialize list box& I7 X" v- ~; x3 K; p$ B
- (end_list)
6 R& }' [: C9 P. I/ W - ;; Display current layer, show initial layer name in edit$ o" U: h h- U7 `. D7 r I
- ;; box, and highlight list box.9 @7 ^ t# b0 |) c! c& f ]
- (setq old-idx lay-idx)2 L! t% ^5 G5 _ b
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx))); Z: \7 `9 T3 J
- (set_tile "cur_layer" (getvar "clayer"))8 `0 i: R3 F0 ^2 u
- (action_tile "list_lay" "(laylist_act $value)")- z2 N8 s4 o% T! G D( H
- (action_tile "edit_lay" "(layedit_act)")
8 j* E" ^$ ?9 M& _9 J; X - (action_tile "accept" "(test-ok)") p& ?' j7 U! n4 B: c' `8 F
- (action_tile "cancel" "(reset-lay)")
3 O( r) L) ^' o$ f. S. q/ v - (if (= (start_dialog) 1) ; User pressed OK
/ e% F$ T6 l3 U L - (progn( T1 Z: a+ m7 ]. r( k- a5 c) E
- (if (or (= lay-idx nil)4 S: o! N1 F T. I8 E- ^7 }
- (= lay-idx (1- (length laynmlst))); a7 n. a! B: b+ P$ }6 y! S
- );or+ A6 d& |9 R& |: f7 a9 `
- (progn
- Q b9 y# t; a6 N2 \ - (setq lay-idx nil) / t" p7 J7 y0 T
- (setq layname ;|MSG0|;"VARIES"), V. `1 r! R: @. s3 i& l
- (set_tile "t_layer" "Varies")
f2 v) ]$ v, w, n7 ` - (setq layname "")7 p k# B s* @' n# n
- );progn
[% J$ @; A5 h# U7 { - (set_tile "t_layer" layname)3 C; Y: p, G( ?7 T
- );if0 g: P% G& m$ \3 k2 M/ A+ T
- ; If layer or ltype equals bylayer reset their tiles
1 H6 X+ ~' D, v% }9 U9 g( S - (if (= lt-idx 0)
8 Q: X' d& C0 T+ K5 r% @; A# h! c( ~! i - (set_tile "t_ltype" (bylayer_lt))
" s: @1 ^4 _9 L* D9 |% i# ?/ G - );if
6 O W9 D& P+ T2 u - (if (= ecolor 256)* ^% s2 y; T) n( G. F/ P r8 H) g
- (progn
: O7 U$ b9 b/ L, u2 V7 M - (set_tile "t_color" (bylayer_col))0 v6 L* z3 H2 F- V" R
- (col_tile "show_image" cn nil)
7 p& O8 t G$ p% g4 z& o - )
2 ^; s7 R+ B( A8 _' M - );if( C9 Z+ V; `7 Y7 i
- layname
& {. O; l2 ]8 p( r/ _, p6 q* b - );progn w: S6 `( v: f! ?. Y) ~; A
- elayer
: }) X9 b' ^% u: y( A - );if
, ]$ o9 T$ e$ e - )
$ l; m& t" X# Z' C/ L3 U - ;;/ e3 c& s7 Q' ^+ Y6 ~( J
- ;; Edit box selections end up here
, N, N1 T/ w7 g; g# ~# w" ] - ;;
7 B0 t; s+ Y8 U8 t6 k4 n1 h - (defun layedit_act()
. ]- Z! ]: ?- e9 ^' D! e - ;; Convert layer entry to upper case. If layer name is# Q$ N! N P" f2 o
- ;; valid, clear error string, call (laylist_act) function,
3 S9 a( b$ _ B, X - ;; and change focus to list box. Else print error message.
: a0 D3 p6 n5 r5 I( k - (setq layvalue (xstrcase (get_tile "edit_lay"))) A; o5 D2 D2 l4 S, B" R
- (if (setq lay-idx (getindex layvalue laynmlst))
+ D4 u4 M& }; u: V( o/ s2 ]5 s8 J# }) b x - (progn) M. E0 b( ]# `/ C% \
- (set_tile "error" "")9 J1 x: {1 y- n9 ], f0 s1 K2 J
- (laylist_act (itoa lay-idx)) I- C4 A( V( V4 G5 o% w# T* C
- ), Z \4 h P" j7 r
- (progn
1 p/ K/ f9 @5 q' [ - (set_tile "error" "Invalid layer name.")5 q. g$ t2 P4 u y
- (mode_tile "edit_lay" 2)
( ]( @$ {& f4 C( m! a - (setq lay-idx old-idx)8 Y- v! C* b6 R& o" c
- ) A5 Y( e# d7 C3 e. g" @
- );if( r1 `: L! M% L, P# P
- );defun
3 S5 M/ K2 b: J/ l" B - ;;
: W" i* t( K* @2 N' Z( S - ;; List entry selections end up here$ D9 p5 r- ^ w
- ;;
# d; Y5 W1 P* b! | - (defun laylist_act (index / layinfo color dashdata)' E* h" Z+ b- C
- ;; Update the list box, edit box, and color tile
# f- ~% s8 o6 E+ X - (set_tile "error" "")) G% f% d0 g) x' O1 O7 w8 W' |
- (setq lay-idx (atoi index))5 z3 ?9 h" c5 `7 g! `; t( o
- (if (not (equal lay-idx (1- (length laynmlst)))); X' H; n; C% i3 u+ @$ Z
- (progn . ~ D5 q% ~+ U2 K9 ~
- (setq layname (nth lay-idx laynmlst))
' @) w! c4 G+ v; l3 `. V; N - (setq layinfo (tblsearch "layer" layname))% V* f: h" G y4 z/ }( }
- (setq color (cdr (assoc 62 layinfo)))/ w4 t, x# |9 D3 v
- (setq color (abs color))7 Z }+ L* r8 c3 p% E$ U
- (setq colname (colorname color))
/ r1 u3 m- a' [' | - (set_tile "list_lay" (itoa lay-idx))
+ W* h( b* n/ X: O: b1 M - (set_tile "edit_lay" layname)
; K0 j& S: T3 g1 u - ;(mode_tile "list_lay" 2). s* i3 X5 x& Q* E# f
- );progn then 0 x# O, N4 o! Q' [# K
- (set_tile "edit_lay" "")
+ ]" m' h" e' K. s& C9 l% S( L, } - );if
) h. Q$ d; O4 { - );defun laylist_act
) u7 n1 d/ h# ]: i% ^0 o1 P - ;;, o7 c/ I8 ?0 P j
- ;; Reset to original layer when cancel is selected/ y4 n" p5 o! _( E5 T: x
- ;; Q8 }8 j. j5 ]) r1 m* b* Z
- (defun reset-lay ()2 j% ~7 {1 {$ \/ T$ O& M
- (setq lay-idx old-idx)6 [8 Q) v" L! C% ~+ W2 e* K9 {
- (done_dialog 0)
3 E! J$ v6 k; T4 C - ) A. i( z d( B- d. ?' k
- : M( a0 G ]$ J, \ P3 d+ A$ a: ]
- ;; Checks validity of linetype scale from edit box. It checks to m* z' C: K3 e+ {
- ;; see if the value equals "Varies".
: n+ l3 R) ?' ^# [ - 0 O& S U3 \; D2 o
- (defun getscale (value / rval). A5 |% s n y) e- }" f. o$ E
- (setq value (strcase value)
7 ]3 n E' d! E - rval (distof value)5 k; i M4 R0 \! E& C
- );setq8 Z. D) S6 A' l
- (if (or (= value "")
7 g; C8 w. H) f5 U, \ - (> rval 0.0)9 M; c# a8 m2 s6 D p# M0 ]0 u. O% j
- )% f+ Z# @& I R* U9 Z5 B6 Z6 m& r
- (progn* J& g2 f' \% U. |4 A8 w3 p
- (set_tile "error" "")
9 l0 W# B& {; E( C - (if (= value "")4 K. Y- ^! _: ^0 H
- (progn2 W7 O0 z# p2 Q4 _; u8 y3 F
- (set_tile "eb_ltscale" "")7 m" L+ O. o& f3 P
- (setq eltscale nil)
2 a1 Y1 G6 I# Z# n - );progn then; j; W/ H3 F5 O$ ?* a
- (progn; P; I% E$ L5 q% w1 G
- (setq eltscale (distof value))
3 \+ u/ h% v4 `! E8 A d& \ - (set_tile "eb_ltscale" (ai_rtos eltscale))
/ T; D+ }+ H0 _" u9 r- C - eltscale
8 r; x" |0 Z; @3 T% {- h - );progn else. L/ e) u5 a3 `7 j& v3 |
- );if" X# i- ^# y) F/ u! K
- );progn! d$ {5 `" h% U& u, G; ~+ Z: z2 Z
- (progn# Q& A5 O- h; |, _
- (set_tile "error" "Invalid ltscale.")
1 R" G! r! \ r. n& R# W3 H - nil4 H- x) H1 q! _3 T6 ?% p& Q+ H) ~
- );progn else
2 [$ a# H7 ?3 V* g+ a8 x N* Q - );if; X( x" J9 `0 R6 f" p
- );defun: g* Q' U9 c7 {9 ]
- ;;, z# o. b6 U' a* P# c
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
' [# y: n; w. Z0 f - ;; string can't be converted to a real, this routine checks if the first
/ `9 e6 f) W ~; f0 L& ^/ Q" x - ;; character is "0". It also checks to see if the value equals "Varies".
, e: \8 V0 `( I. t9 U6 L; p+ V - ;;* R& x6 b$ R) @8 m# V
- (defun getthickness (value) s- ~0 r( W- F* s
- (setq value (strcase value))5 n# V1 `# m$ W. {& M; t
- (if (or (= value "")
1 A B! c$ r2 Y( k - (distof value)
3 q% _1 n z& F7 }, A - );or
' N& u' R( R# w; N, I2 L/ y - (progn
# X4 T1 G4 Q) e0 P% K3 q1 w - (set_tile "error" "")' b: ~0 C4 U, Q( h! z/ ^4 ?) _
- (if (= value "")" \8 t- L* g2 t2 G& t% z
- (progn, s( {- j$ B) o0 }
- (set_tile "eb_thickness" ""), Q5 A' Z2 ~1 @' z& f
- (setq ethickness nil)# x+ n8 W& `9 e/ v; g; \
- );progn `+ H2 O; t4 X0 p0 W
- (progn/ W# f: o1 f |, f% A
- (setq ethickness (distof value)): l9 `8 Z/ L. L% Y' l
- (set_tile "eb_thickness" (ai_rtos ethickness))
$ {; J4 i6 [- J; R - ethickness O, V; I0 r; A$ W6 H, \% @
- );progn
% p' _0 ?# u5 v3 [3 h2 l5 w# W1 ^" q - );if
% n0 v1 P0 d/ b# [3 P4 G - );progn' `+ S8 u# U' o- u7 L
- (progn
`( v1 j( k+ U- t - (set_tile "error" "Invalid thickness.")* z0 ?; V) n) K2 k; B. Y* }
- nil
: c6 O& `$ k9 i4 V; }. q9 z6 ?( g - );progn
, j- s9 R+ t/ P8 R, v - );if/ U4 B) b: s6 Q
- );defun . x* h" F, W+ s- t5 j
- ;;
- p5 z' O. t0 e, ~+ m - ;; Checks validity of polyline elevation from edit box.
/ G: M( F# d9 Q3 W/ ^+ F- P! |% X - ;;
$ J. k3 S- A S) M4 u/ Q - (defun getelevation (value); N7 k: c! R; z
- (setq value (strcase value))' z" P5 e% {: M
- (if (or (= value "")- k" B- i3 j0 {
- (distof value)% [# K3 j$ y1 b6 h
- )$ Z- \; y% k; k8 v7 b
- (progn% {- `( M( o: s$ C( j
- (set_tile "error" "")8 M- _2 N2 ?3 b$ V
- (if (= value "")
0 E5 _0 |( Q P5 Y - (progn
7 W2 d' B' Q: r( w7 [4 _ - (set_tile "poly_elev" ""): y, L }, i" c$ {" }
- (setq eelevation nil)
5 ]- q Z+ B5 o" E, v4 | - );progn
: T$ d' X3 P! I6 S$ } - (progn+ r4 w' b+ O4 _# H9 ~( c
- (setq eelevation (distof value)); K, [0 W9 e( @8 {: ]
- (set_tile "poly_elev" (ai_rtos eelevation))" K+ A' ~1 D' `' l6 p
- eelevation: w% s( P* {+ P0 {1 s
- );progn
9 S+ S- i* i _8 L - );if+ O# n. |; z7 v2 O* g
- );progn9 B0 l' d' m3 ~! H( j) N2 L% C
- (progn
' S& { R, ?" ^$ ~. M& x0 B - (set_tile "error" "Invalid elevation.")
( b7 T2 g: F2 h0 g! z" i$ `- ~ - nil
* P( Q. [ W: a+ P1 i& b" G. ^2 v - );progn
! ~) [2 c* c/ B2 `3 y4 w Q - );if
" w: ^, H; {+ e4 F% I - );defun
4 g: h) i" Y/ C1 e - ;;
( k! z$ ]3 u. E$ F - ;; Checks validity of polyline width from edit box.5 K/ l4 v$ B m+ E4 H
- ;;7 x) x. i: L( a D8 \1 i* O
- (defun getwidth (value / rval)$ l0 [7 o8 g5 Q3 I& t0 \0 Q, z
- (setq value (strcase value)$ b' G7 H6 o; k: h
- rval (distof value)
" O' S+ R4 R7 [- q6 _4 [! V$ y } - )! _# U! g0 z8 L* V$ i" k0 n* ~
- (if (or (= value "")
- b$ }1 {0 `3 @* ~! O, F! ^ - (>= rval 0.0)
& J f2 R# N t0 p* w& a( ^ - ), Q0 |. c1 y! k
- (progn
% U' U% J% ~. N) Z2 I" t( Y! @ - (set_tile "error" "")9 i, I) Y: @$ ~! ~* Q! ]- o: u6 @2 ?
- (if (= value "")
4 W3 P1 s B$ _6 `0 r2 Z8 i - (progn
- ]* a4 W8 \ x3 B. E - (set_tile "poly_wid" "")0 N* j+ h: d3 M8 S* ~
- (setq ewidth nil)
5 l- d9 _! Q: ^1 `# `) F" g - );progn/ |$ ^! D. [ |: t
- (progn! J2 T5 w8 B' n7 R
- (setq ewidth (distof value))
# K s$ b; d' X* e& k) z - (set_tile "poly_wid" (ai_rtos ewidth))
4 @# ]8 M; M5 t- i1 T6 f* S8 Y - ;width
# R6 p' y& T) I- J5 L' E" ~; h+ _ - );progn
1 J+ ^ y1 v0 P# K - );if
# l/ C5 o$ o+ x: S! A - );progn9 j8 d2 J3 _* W- V% {; g( K8 P( [
- (progn
4 {# H% x2 {$ j F - (set_tile "error" "Invalid width.")3 z, M+ _, k& j
- ;(setq ewidth nil)6 h6 L3 V, \( G8 c/ u. y
- nil 6 T6 J4 g. Q1 m0 r" ]9 \3 P7 S% b0 |
- );progn# {) s$ R% e1 }8 A% d8 K4 ~
- );if
" Q s- R) d- y# o - );defun9 W: W! e/ J5 d6 V4 }: W
- ;;
3 t9 `, m; B$ a2 a; ^ - ;; Checks validity of text height from edit box.
) y, `7 d/ s! S2 ?+ P6 X$ g - ;;* y. P0 A; c1 |8 c2 V D/ |" u
- (defun getheight (value / rval), a9 D( S, j& Z) \% J
- (setq value (strcase value)
, A4 ~, D# n0 {: [: K/ e - rval (distof value)& n* S5 X+ D- M6 h9 C
- )# k5 v j% z0 u8 P
- (if (or (= value "")2 i+ _1 Z H' @( p" A/ h! q
- (> rval 0.0). [ a$ ~, d [/ P. g* g4 |2 j( D
- )
: u* s( m& a- E/ ~ - (progn
+ k* H+ N( m0 J' ~0 D3 F - (set_tile "error" "")& w( W9 l1 G$ _) s3 r( N0 `
- (if (= value "")3 j n0 }+ `6 @; w2 c5 [
- (progn
# t, O r# s* ]0 \: R - (set_tile "text_hgt" "")9 Q/ _, Y- ?: @, G$ B$ F5 E5 w
- (setq eheight nil)
* j- H4 @6 |1 Y2 F1 ?$ t - );progn
# o" V5 z, x/ A! C - (progn
1 W$ e) y# X) z) m# Z5 A - (setq eheight (distof value))% ~8 G( b. c: W, ]0 u6 @0 Y- _
- (set_tile "text_hgt" (ai_rtos eheight))3 `9 }$ o7 ?, b) w
- eheight/ x. @5 C( [! c# f7 B% p$ L$ J7 q
- );progn
0 H L! ^) g9 z# ~- `( ^: o - );if. f. d& c3 d0 w& r( k' Z G3 X
- );progn
7 m6 ?' ?: R9 n E. z" h - (progn
0 N* P" e6 |3 O- q" u - (set_tile "error" "Invalid height.")5 E0 P2 [$ H m# p" J
- nil7 A( _) Y _4 p! a9 ~
- );progn) o2 H7 o u5 J. P
- );if8 ]$ O& l+ r* A z. a& C1 b
- );defun
/ o. n8 C9 O* e4 C1 \& \ - + |. o# X0 k) |
- (defun getstyle (value lst / rval)
7 F; l8 S+ W! v8 A" T - ;(setq value (strcase value))& N" R5 e9 L5 I( \: t, o
- (set_tile "error" "")
5 i: D3 c/ o7 }1 S0 I: p& O - (setq estyle (nth (atoi value) lst))
( [7 @9 \7 f, T - (if (equal estyle "")
% U7 r" R4 Q; k( k9 \ - (setq estyle nil)" y* z. A# m8 u: p
- );if
% Q7 P: K7 f+ ^& D, u9 D) B -
1 \6 u5 T& U9 P9 f - );defun getstyle
. u& b6 U; u8 [
1 h. |/ }/ G* T7 D" A- ;;
+ j W! ?- w/ ~, s - ;; This function make a list called laynmlst which consists of all the layer
6 P. e9 Q; ]9 ?# Q$ x - ;; names in the drawing. It also creates a list called longlist which
# _& i5 b. c0 H. A u - ;; consists of strings which contain the layer name, color, linetype, etc.) n% U0 P4 u( X1 b/ e1 U
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
- n8 d7 q; T! A9 e" N - ;; same.5 p& e! m- ?" D' P, B7 y) S& V
- ;;
7 o9 _8 K2 R N9 f( o6 t, E" z$ y( J - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
- h: N: ~: T8 W/ q) |0 g - xdlist vpldata sortlist name templist bit-70
2 P0 Q ]/ Y& [5 O2 A# y - layer_number
1 L, W. V9 m0 p( D( H - )2 H/ q3 m8 w9 Q
- (if (= (setq tilemode (getvar "tilemode")) 0)
7 ~- x r) n! O' E; E0 l - (progn
5 O2 }. {( Y5 R7 F$ l - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
' @; ^ n! a' S/ P - (cons 69 (getvar "CVPORT"))2 b" q1 V( { Z# X! G. N; d! t8 }
- )/ J+ A0 f9 N# ?4 \4 G2 d y# m! b& w
- )% v3 o' Q6 r" _
- )
$ p: _( D2 u& q3 G( [6 X - (setq cvpname (ssname ss 0))1 g$ l0 A6 k& d
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))) u3 Z/ T/ ^3 P I) s* J
- (setq vpldata (cdadr xdlist))
& o, |1 s4 q1 q - )
+ X2 I0 }7 y) O d* Y9 | - )8 F) b: B" M0 K9 L# u
- (setq sortlist nil)
8 v* J: O$ S/ |# U" W - (setq templist (tblnext "LAYER" T))
S4 m* a" g2 }; U! O% f' P [ - (setq layer_number 1)+ @1 z; D5 d, i
- (while templist4 N$ E4 G& X- G7 \* z6 I
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))5 _) n! j- R) `, C0 T) l
- (progn 4 r8 Q0 U/ p5 ]) e8 q% A5 F
- (setq name (cdr (assoc 2 templist)))
7 k% N+ V: d, m3 a; P3 u/ n - (setq sortlist (cons name sortlist))/ w$ c- ?, h' Q7 p
- ;; Not dead message...) ^ F8 R- w7 Z, x; \
- (setq layer_number (1+ layer_number))+ k' e4 `1 U. c& G! G- ?
- );progn
! N9 S9 W8 |% U x - );if
" b' D M( a+ | - (setq templist (tblnext "LAYER"))2 k2 k; h& i5 W2 H' ?
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))$ k M9 ^9 h2 D/ x+ X: s
- (set_tile "error" (strcat "Collecting..." (itoa layer_number))): [& U( C- S3 Q. \9 l4 n: u2 R
- );if* o* z# U+ |" F) g! X! T" p* q+ g: {
- )1 c0 V3 ] E4 ?( A
- (set_tile "error" "")
/ h0 {" J S5 _7 } - (if (>= (getvar "maxsort") (length sortlist))
) E% S2 v" ]$ x$ i) a - (progn
/ ?+ X6 Y2 S- U1 w - (if (> layer_number 50): G( G+ E K- x
- (set_tile "error" "Sorting...")
) [' I1 n9 E3 F- S - )
2 q3 o9 }$ o+ L0 H2 |9 s1 z/ W - (setq sortlist (acad_strlsort sortlist))' x; t) P0 B1 z8 \2 `6 m& A/ i1 D# D
- )
( L5 J4 c) h; L$ ], G3 A4 Z* N - (setq sortlist (reverse sortlist))
7 p+ S) d! d$ J. T - )8 ]/ |4 M3 ]9 @, H7 G- h
- (set_tile "error" "")) [1 t: ?- ]3 G
- (setq laynmlst sortlist)% k. C3 m& V' y6 }6 X8 Z3 C
- ;rk : Q; O! T+ [0 f6 [4 V/ Z
- (setq laynmlst (append laynmlst (list "")))
& h; P" P$ K3 Q! a9 U& t - 7 e, k$ N& T2 G( A0 M
- (setq longlist nil)6 c; m! E. Z- A1 [$ R: J' Q7 R
- (setq layname (car sortlist))4 k; ]0 i! l- }- `- r) h7 |" i2 K
- (setq layer_number 1)
( r) i2 C0 R2 l$ v* W; p - (while layname5 K* E0 S' Z; z( v/ m: E! A# Z) t
- (if (= (/ layer_number 50.0) {. z1 C' u- S* B/ k; T0 i
- (fix (/ layer_number 50.0))
& Q0 j5 a4 o1 i& h - ): W1 ?; p8 g* t6 f' ^* L
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
! [; ]0 I! C7 S" v% Y' ] - );if9 j& v8 j. }% J
- (setq layer_number (1+ layer_number))! ~+ k/ @7 p% m) L+ { e4 q
- (setq laylist (tblsearch "LAYER" layname))4 J7 Y! |& a4 L) H# b: d
- (setq color (cdr (assoc 62 laylist)))0 `% z2 ^5 i9 s- M) x6 p6 D
- (if (minusp color)
* _7 f$ S. ]* V( n" P/ n - (setq onoff "."); K7 Z+ p" `1 }
- (setq onoff "On")* ?* b# G. {4 n+ g+ S$ Q5 |; M
- )
9 {$ t( {* O/ [2 ]+ Q& L* ? - (setq color (abs color))
, k& i0 f; O, C v( T$ q5 M - (setq colname (colorname color))
, c" b/ w* q E8 c; o* S& X - (setq bit-70 (cdr (assoc 70 laylist)))0 j9 `! Z5 i( V5 @& Y3 E3 j
- (if (= (logand bit-70 1) 1)/ U) Y. R, t4 N1 d
- (setq frozth "F" fchk laylist)- V4 c U0 @0 b; k) A% s( t1 x) b
- (setq frozth ".")
& T' k% ^9 |! p9 ~ - )& e/ b2 C6 M% E1 J' F- v7 y
- (if (= (logand bit-70 2) 2)
, E! H O8 P! [ - (setq vpn "N")
1 r3 I6 T s' M$ D7 m, F! K; {+ s* w - (setq vpn ".")$ x7 G4 e; m' J/ Q4 o6 W: M
- )
& z9 r' I9 n- N [0 c) W( ~ - (if (= (logand bit-70 4) 4)8 i7 T; b6 F7 E% X/ W: }4 d
- (setq lock "L")9 O6 k5 x7 V2 u$ u% c/ G* [
- (setq lock ".")) x) g8 h5 O( b4 Q
- )
' |+ r- q( N: s$ @0 j% J - (setq linetype (cdr (assoc 6 laylist))). m9 d5 a& d b8 U* T$ k
- (setq layname (substr layname 1 31))9 s$ J) y1 D9 j$ R4 y6 w9 @& {
- (if (= tilemode 0)
# j- q# t ?4 G$ c! {3 V0 k+ o - (progn. U1 I/ Q9 A% A7 E( ?9 \1 o) i
- (if (member (cons 1003 layname) vpldata)0 g3 O0 ?: N& p: i' C5 r5 m
- (setq vpf "C")
2 W- c O4 m9 P% \( m4 y - (setq vpf ".")1 l1 Y7 z. r7 R. J
- ). @( Q8 D, j; U
- )7 Y- K+ x; z; o
- (setq vpf ".")" n, {+ r) W% |& I3 y0 X
- )8 r5 a" W. U B8 o) B! E
- (setq ltabstr (strcat layname "\t"
: s5 p% Y2 V: z, i% j& k& E - onoff "\t"0 W2 t1 Y& l- S | i. e j5 } Y# [
- frozth "\t"
3 f+ Z, t2 \9 b3 U( O+ |0 W- m, h - lock "\t"" k1 ] ^% z/ ~( q/ O* A# C& w
- vpf "\t"( Q7 m( B! i; C! X/ G' g
- vpn "\t"! ~- `* N$ w5 m
- colname "\t"
- j; W( @$ t" |2 R' F - linetype
1 o3 q. W, O4 U# m r Q - )" m0 }7 D0 C2 h s! }7 `: |$ A) Y
- ): u% {3 M) B p. q; z/ M: I
- (setq longlist (append longlist (list ltabstr)))- ~4 g n( M7 M9 i1 D5 a6 `
- (setq sortlist (cdr sortlist))4 W5 U* U& k, b5 i" d( w7 U
- (setq layname (car sortlist))4 T3 d7 V$ U. O' q6 ?1 v+ x
- );while/ c3 s4 o: {' i; q
- (setq longlist (append longlist (list "")))
; Q1 b3 O5 [) O1 H" A& Y+ r - (set_tile "error" "")/ D' u, h( Q _) x# L/ K# d
- )0 S+ c1 w/ R' q: r
- ;;
# D+ v) e; M1 R, g' W2 { - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
- D0 y" W9 J2 u- g1 O - ;; linetype names read from the symbol table. Mdashlist is list consisting U. ]7 M7 {4 ]
- ;; of lists which define the linetype pattern - numbers that indicate dots,
: C, T: z2 V8 A7 {4 b3 b8 ] - ;; dashes, and spaces taken from group code 49. The list corresponds to the
H0 i2 S2 U' f) D - ;; order of names in ltnmlst.
+ G; W0 ?$ W$ |, G& v - ;;
1 r" \) \& D/ i9 t - (defun makeltlists (/ ltlist ltname)
8 M& W$ k/ G/ N* }. ~9 k4 e% X. i - (setq mdashlist nil)# E/ \' u: T9 C6 v" ?! B' _
- (setq ltlist (tblnext "LTYPE" T))0 G' g* q+ V8 |' _0 x8 K% P
- (setq ltname (cdr (assoc 2 ltlist)))
4 F$ |& h+ o' J, T - (setq ltnmlst (list ltname))
# v4 l# V! B# s' Z% b; l - (while (setq ltlist (tblnext "LTYPE"))6 W! F/ k) r$ L9 p- s
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
# F" ]* {: e; C; H' d0 L - (progn
, M0 a2 p, S- ~1 K/ @ - (setq ltname (cdr (assoc 2 ltlist)))* J8 @! b( u! G% }+ @) U
- (setq ltnmlst (append ltnmlst (list ltname)))
8 Z1 a8 G3 J V( W2 } - );progn
& y4 i, a6 V* u" M- c$ C& f" m - );if
. `$ \+ D/ Z- U8 Z6 X - );while$ {, f: O; L2 _. n0 j
- (setq ltnmlst (acad_strlsort ltnmlst))4 E+ v. Z" J' M, m- F
- (setq ltnmlst (append ltnmlst (list "")));add by rk + n% @$ A1 ^# U. [7 j
- (foreach ltname ltnmlst
$ P* K: ^9 }0 ~4 l) `) \) m - (setq ltlist (tblsearch "LTYPE" ltname))' y2 K& i- X5 M+ e" g$ \
- (if (= ltname "CONTINUOUS")
6 f g9 M3 `+ i5 E% I: i - (setq mdashlist (append mdashlist (list "CONT")))
0 F4 I- }0 o$ F7 `: a1 Y% U( P - (setq mdashlist% T4 j9 h2 Y. A& A. ^5 V, P
- (append mdashlist (list (add-mdash ltlist))), K x- N6 @' B# h( y
- )$ U2 M) Z9 z% R
- )
6 S+ H [3 X$ Q; t) U% C3 [ - )9 {+ ?+ M) {4 p& W2 D5 t
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
/ {% a( U+ n6 {. |/ w2 P# V% W - (setq mdashlist (cons nil mdashlist))
4 C8 U3 ~" H/ b - (setq ltnmlst (cons "BYLAYER" ltnmlst))
0 F& U8 |+ T3 l3 k - (setq mdashlist (cons nil mdashlist))' C! _1 w# K( V( q S2 s8 {! s
- )2 N3 ~- G, E# A' P* ?1 H3 F
- ;;3 }( ^# j/ E1 W( R. L
- ;; Get all the group code 49 values for a linetype and put them in a list
3 D- c; q& E4 c& y* e: X* F4 V7 R - ;; (pen-up, pen-down info)9 P6 o5 F2 t& B6 V: }3 L; \: W) W
- ;;" S s+ J6 m, M
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
6 i1 {2 G! d; _" b8 s& E - (setq dashlist nil)! q5 R7 P& n1 T. E( A, j$ l
- (while (setq assoclist (car ltlist1))3 R; I2 X% R5 B1 r4 p
- (if (= (car assoclist) 49)
/ e! {6 _. b0 P! W. r2 O1 O, K - (progn
' a0 B2 Z3 p7 w4 Y/ O& X - (setq dashsize (cdr assoclist)) }) Y$ y2 V# y. C2 {
- (setq dashlist (cons dashsize dashlist))
' M: X4 ^. H- e5 y0 p7 r6 y! w6 B - )
& B' c w3 B, c. Q$ { - )
2 K0 u5 j! b( j# C( G* | - (setq ltlist1 (cdr ltlist1))
# ~( m2 y1 f; Q0 ]& D# B - )
/ s" x- {! `/ r0 `4 H - (setq dashlist (reverse dashlist))
+ i) `9 {: [6 X - )7 ~) Y$ Z) Z3 g: [/ f, E) b
- ;;& ^ B7 ?) [: A! R; a& e" U, n
- ;; Color a tile, draw linetype, and draw a border around it
& J( K5 O1 I/ d1 E; s3 h& h - ;;" c' Y8 M& @! b$ i. g9 [# X6 r
- (defun col_tile (tile color patlist / x y)
1 x1 ]6 o) z2 Y. R* `( v - (setq x (dimx_tile tile))+ B( h' ~ ?( v1 }$ {+ X
- (setq y (dimy_tile tile)). f$ X( {) ]* v0 S$ m
- (start_image tile)/ {" d! @4 R9 I7 {, e% m3 B
- (fill_image 0 0 x y color)
( C8 c$ H4 D2 z( F - (if (= color 7)
' u5 Q9 h! g' J - (progn
' q4 f& Y6 s$ r4 y" c, o2 s; @ - (if patlist (drawpattern x (/ y 2) patlist 0))$ [. c' P7 q5 C7 V( ]
- (tile_rect 0 0 x y 0)
- x |: P% A' W7 ~, `( R - )6 T/ d* T7 e0 A, R# n9 ^. L( [1 ^
- (progn0 M- p+ c% ] d* K( e
- (if patlist (drawpattern x (/ y 2) patlist 7))! S1 a F: V$ ]! Z3 D+ W0 d
- (tile_rect 0 0 x y 7). z: \0 T H2 y& S/ h/ Q1 t
- )
! j5 A; R9 m* \ - )
$ \6 P) G6 t' w) }4 j - (end_image)& R/ [! u& t$ G/ r, l$ S0 v" u
- )
. W# o4 ~, `/ \$ N" C7 w; T - ;;
+ v/ F6 k; T& b - ;; Draw a border around a tile8 A2 G! `& r2 B6 r
- ;;
, ^7 h! k9 r: _" x - (defun tile_rect (x1 y1 x2 y2 color)
3 Q* e. y) [) t" R - (setq x2 (- x2 1))
; `1 u) z/ r" G" s - (setq y2 (- y2 1))
- y# R: O4 N t$ R1 E - (vector_image x1 y1 x2 y1 color)# R, o+ o8 [. u/ e8 M( b( n
- (vector_image x2 y1 x2 y2 color)2 J' j1 D- g2 p2 K* o
- (vector_image x2 y2 x1 y2 color)+ g0 w! z- d1 q4 g" g' @, m9 ^$ }
- (vector_image x1 y2 x1 y1 color) ~7 D# C3 I& d- ]2 R
- )
/ r+ \, X m- v& {- Z2 {$ z; E - ;;
3 y& W" s2 `* V. c1 v3 G# | - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
7 q( x% b! V& _* m! U - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a$ k$ D5 `5 f* P5 z
- ;; list of numbers that define the linetype, and color is the color of the- ?0 \! T3 D" r5 Y, M0 W
- ;; tile.& b; {$ }5 U- i7 b( \5 N+ o h
- ;;
3 k% z2 [' N; v3 A - (defun drawpattern (boxlength y2 pattern color / x1 x2
: c- j$ J- r/ G# C- T# j - patlist dash)
0 q# V h& X z* H* u, g - (setq x1 0 x2 0)# N! X- {9 h* v8 e( E4 \* C
- (setq patlist pattern)' P& X: z- ~$ i, y: Z W
- (setq fx 30)) X" n" O: u$ p* `1 w
- (if (= patlist "CONT")
, C2 p0 R( W W. g! y0 q - (progn
! G# D& o) Q" w! p: V - (setq dash boxlength)
- N' T4 p6 G2 x! L' j$ d" a. b3 c - (vi)
, a, Z/ t& m- j2 } - (setq x1 boxlength)
/ d# K/ v" ~+ W) p5 h# E - )
1 X9 I# t- k8 |4 k n7 c - (foreach dash patlist
# G* h/ P2 ~. G l2 o+ T3 X C - (if (> (abs dash) 2.5)5 D2 t! O: V5 K0 R; h. t, X% {
- (setq fx 2)# w+ d* {, z$ r, _4 a6 p% R; I& S
- )3 E% {7 e8 D `
- )
7 c3 y9 M$ K" o" _% A - )
3 L# ]) d, ]# `) a! r: R/ ] - (while (< x1 boxlength)
+ ?; L% {1 C, @! o9 e* x8 h% B- E - (if (setq dash (car patlist))
* I4 n% O0 i u$ p- d/ E4 R' K! O( P - (progn3 H/ x6 x7 ?2 I8 W I# w& l
- (setq dash (fix (* fx dash))): z4 N: |9 M2 Q, n6 @
- (cond
7 h& G: y2 l6 A& q$ n& d - ((= dash 0)
* m N$ [0 P- t' z/ E; b - (setq dash 1)
+ ~8 f+ s+ c8 J0 J& ]' B' v$ w - (vi)
2 S4 C l+ a6 @' S ^* t' R: F - )3 \5 m+ ]* U. H* ?
- ((> dash 0)3 n6 W% l0 _, o7 x5 [1 ?
- (vi)
( S" O3 `+ C$ W7 Y7 B/ t5 r - )
3 u* D: r- a! a+ q9 w - (T) h% y! w8 L: L$ o# b) S
- (if (< (abs dash) 2) (setq dash 2))
9 e0 A5 z+ S& n. W - (setq x2 (+ x2 (abs dash)))" V/ E7 O+ h; ~% U3 R
- )
& t7 j) x' K) @( m/ | - )
: d' Y/ K* R+ q6 V/ k% n4 G - (setq patlist (cdr patlist))
* J8 t& d8 r/ T, T1 J - (setq x1 x2)
}- B. t* i4 g/ M - )
9 [* n! Y; |$ n* g - (setq patlist pattern)
+ w7 ]4 @/ D9 {: o' i2 [% y7 Y - )& u1 t$ m' s9 T+ x
- )
! d) O; s9 {8 L$ K* P - )! z1 {! a0 }, x% m- Z. ^
- ;;$ r3 o2 m5 @% D
- ;; Draw a dash or dot in image tile
9 N: ~5 _+ ]3 A5 n- v! m0 A, C- R7 Q - ;;
7 G+ R& Q& e5 U2 q - (defun vi (). S ~: L4 @- h
- (setq x2 (+ x2 dash))
' `! X* G g; P" t3 q7 m - (vector_image x1 y2 x2 y2 color)0 P9 T( t5 c; j
- )
. N9 Q6 P/ y; ~$ @8 m8 | - ! n3 f( b" `8 {# d! n4 z
- ;; This function takes a selection and returns a list of the color,+ R0 x$ s6 Z+ ?5 s
- ;; linetype, layer, linetype scale, and thickness properties that
/ p! s4 j6 D) r$ k% v% q+ A - ;; are common to every entities in the selection set - (color9 L9 D: D6 w1 v/ j9 m5 ]" V/ J+ `4 [$ _
- ;; linetype layer thickness). If all entities do not share the same: |" Y3 T7 z; x2 W' h! X* t/ \# e
- ;; property value it returns "Varies" in place of the property
, R7 o( n* Y- x - ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
1 Y3 G! ~% R% H R/ A5 W - ;; The last item in the return list is an integer flag for the: x2 E3 g7 h3 {; d. j0 f1 c0 n
- ;; homegenity of the selection-set object types.( i: j! b* J m7 [
- ;; 1 = All polylines
% K6 `4 B% T' k2 Y: v - ;; 2 = All text or mtext or attdef, or a combination of the three- w" Y! s5 t* x' X
- ;; -1 = Any other mix of objects9 K4 s1 h( h6 n! R' M X! p2 ?
2 b T+ d' s" t D6 J4 ?- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
* t! q" U- n" F9 v - width elevation height go ctr
5 a$ ~8 ^' Y e, [. a - eflag 5 w9 }6 m0 r5 A0 X9 a7 @% I. k
- etype temp 8 B z. @% J! G3 x" ~
- txt_ss ;;;;rk 11:24 AM 1/30/971 s6 b( Y. ?. [4 l' p) x% _4 |
- tmp
% s5 z9 F$ r5 N% N J - poly_ss
6 ^/ I' l; z/ n$ u& E. k6 ^ - style& n& i" \+ G6 V2 L% h3 O* v/ [
- )) c; ~) Q# e0 q! D' D: h
- 3 s5 f& x! e6 Y w( }+ [
- ]+ ?$ s8 @+ b0 w
- (setq sslen (sslength selset)4 E; J& o N0 S0 Q% m# T
- elist (entget (ssname selset 0))
, d8 n) ^# m' o0 z$ ^- X# } [ - etype (strcase (cdr (assoc 0 elist)))
% G7 q6 U& c" O3 b/ I( y+ E8 g - color (cdr (assoc 62 elist))( G/ W& n" h8 \0 t' w
- ltype (cdr (assoc 6 elist))
! i& \( H# p" r: q+ B* N' e; s - layer (cdr (assoc 8 elist))/ k4 M1 W9 O4 m
- thickness (cdr (assoc 39 elist))3 F3 Y9 S6 _: p2 s1 h
- ltscale (cdr (assoc 48 elist))
+ a& N$ z( s T3 t0 [! X1 W) f: a - );setq
; A- j9 P" }0 O, ^' ?
$ `' ?, C; F& F8 z) ^) K- (if (not color) (setq color 256)): h- I# ^) B9 M- d1 V- ]$ O
- (if (not ltype) (setq ltype "BYLAYER"))
4 W9 T+ B, g, k. W - (if (not thickness) (setq thickness 0))
5 w3 q' _& s* S6 L* K) V, v - (if (not ltscale) (setq ltscale 1))$ {( h0 x0 _& S0 D% m* {8 u% a
2 o! p- k' }+ V5 l- (if (not width) (setq width ""))
4 a, E9 C8 F. r! ` - (if (not elevation) (setq elevation ""))
@/ N+ f2 x4 @ - (if (not height) (setq height ""))
" @4 s6 O _& J2 n0 {( q
8 Z" Q r4 N: [) `' t- (setq go T ( n! b0 C7 F8 ^
- chk-col T ; a* R+ C9 n+ ], [1 C
- chk-lt T & r S$ m0 e9 a3 T* I9 J5 |
- chk-lay T ' s8 }5 Q. `/ s+ Y0 q( m
- chk-lts T
. c' w- P0 z g) P; @ - chk-th T
2 D4 c/ }* @9 @4 } - ctr 0! x- R8 v! }/ s% d
- );setq
4 N i! `+ J* e - 8 W& J2 D7 Q( Q
- ;; Page through the selection set. When a property2 D) u! D2 U, I$ \* m. ]4 U
- ;; does not match, stop checking for that property.7 _1 a9 b8 ^* |/ p7 |" ^" B" A& D% X
- ;; When the selection set is not homogenous, stop checking.
2 Y3 q- _* h& O8 _. U: u1 N - ;; If all properties vary and the set is not a type 1+ z9 u0 n/ {* t3 O
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging., _( z0 ?% w6 T3 a9 R' n
- & I2 a. R1 ^" J& s1 P
- ;Lets set the eflag so we know if the selection set includes any & p. G. T* N4 _' a
- ;combination of polylines, lwpolylines, text, mtext or attdefs.9 b0 K( ]& q7 }6 O1 d3 Q
1 P5 D2 e& e. B, I: w6 k8 |1 l& T- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
- V1 G9 O4 |/ S4 A' @. J - (setq eflag 0)
# z. L) {/ | L+ w5 \' h$ q - (if (setq poly_ss
' Y, I4 U1 P& N& f: {+ N) m - (ssget "P" (list '(0 . "*POLYLINE")+ O, W8 C9 p" |. O0 t# ^& _
- '(-4 . "<AND")
" J0 T9 j$ x$ s! D5 E2 A - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>"); S7 X" m0 h) q6 O
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")- p1 R" ]: L# I, [
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")2 l3 ^! W. h, \
- '(-4 . "AND>") # s, B3 {' ^5 j! w' v
- );list7 A P; b+ t( d$ ], c! z$ [5 A
- );ssget get 2d polylines (legacy and lw)
% z9 v, Z9 v; G# T8 T; { {; S% X) [, m - );setq9 V3 B6 A- q/ L! y) k! C/ O
- (progn
, R3 x" O. o. L) l* `/ I - (setq eflag (+ eflag 1))
; M# r; i. E, J% o" { - ' q3 L9 f1 P6 N& [
- (setq tmp (entget (ssname poly_ss 0)));setq
. q- ?4 T1 ?- p8 [( H4 Y
8 Q) l9 X6 L" y+ D+ T- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
% W3 ?1 I' X1 m% S& {! E" O - (setq elevation (last (cdr (assoc 10 tmp))))0 ~. L- G( N! u/ ^1 f1 ^! L% D
- (setq elevation (cdr (assoc 38 tmp)))! E+ f5 t: X( o* z" e2 D
- );if
7 }) S- R) v+ K- } - (if (not elevation)
; Y8 J9 j T6 n: v7 T - (setq elevation 0.0);setq6 B) ` C: V: c! n- D9 k$ y- y
- );if
6 h/ y9 J( Y r! f9 g; ~8 w
, R Z# N5 M0 u& M4 L7 L- (setq tmp (ssget "P"
& k6 ~9 _1 m* _1 V9 g E5 u - (list
& q8 p* X e- O5 f - '(-4 . "<OR")/ Z& A/ b5 e/ ]. L1 R3 c. o
- '(-4 . "<AND")
6 J9 I" T- O; b) |) o; r - '(0 . "LWPOLYLINE")/ D$ [2 Y2 M8 L" ~: {/ v
- (cons 38 elevation)5 ]3 C4 h% z, L
- '(-4 . "AND>")
3 v& M& m8 l: A - '(-4 . "<AND")
4 ?5 r2 }0 p0 g/ [+ U - '(0 . "POLYLINE")" o$ Y; _4 h3 o9 I4 I: Y" j/ Y" M& v
- '(-4 . "*,*,=") + e$ K6 W1 Q$ X5 L- ]
- (cons 10 (list 1.0 1.0 elevation))# V1 K6 M2 d/ P& Y0 Z, T8 g- E, l4 i
- '(-4 . "AND>")
8 B" E6 L( ?. B) M7 ~ - '(-4 . "OR>")
; x3 S# i2 Q$ S3 u0 A - );list
7 b- t; b) P! U1 z8 d8 s# R - );ssget( l4 b- x0 s* y$ s: ^% ^
- );setq, ]" l% W. t' }) K2 ~, b; {
- / i [) D3 y# T, u0 ^7 J1 e( S
- (if (and tmp ) [4 L% }- o! e) B& n
- (equal (sslength tmp) (sslength poly_ss))
# d) M: C/ c' {6 \+ v! T - );and8 ~' U5 N+ i L V
- (setq elevation (ai_rtos elevation));setq
9 v: m& L5 V- _" K; j, ? - (setq elevation "")
( U) u0 I, S8 g+ U - );if
7 {, v# c* s, z+ M; U/ }8 v -
/ p. D$ u, \1 I" w3 x9 Y% v - (setq width (pl_width_getter poly_ss));setq- _$ z) o9 j9 U" W* y) m6 I
-
' ?0 }! e% S( `3 y% c2 P - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
. t( [6 Q$ C6 u( p2 I. ? - );if
" {' y4 y/ S! k- _/ n( R9 b+ J - (command "_.select" selset "")
) _/ [" T0 g+ b+ z - ! M; K) A; u6 v) S* W( n1 D9 [7 H
- (if (setq txt_ss
8 C) C: b- S5 z/ V2 T- |' ^9 O, } - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
: p) Z# J# I( p6 D. N- \) } - (0 . "ATTDEF") (-4 . "OR>"))
$ Q t' d) d% G- r - )
9 k8 p& o5 ], z. _# u! M - );setq
* C ? j6 A; u. j* k7 w% N - (progn
* W+ @6 S1 u- V4 F v8 P - (setq eflag (+ eflag 2))
9 S& ]0 c# |/ q U. E/ c - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
% G" D! y, \' i0 w% ?2 N - tmp (ssget "P" (list (cons 40 height)))
' k( B5 `9 B6 T - );setq
0 H4 O/ ?+ Y% S# b8 z! X2 y - (if (and tmp
' D7 N7 X- N3 {/ ?, O5 l - (equal (sslength txt_ss) (sslength tmp))
8 f9 ~, {; K$ X( w' H6 s. R2 w - );and
" t* G9 w5 H j5 c' X9 _5 |2 N* B2 i - (setq height (ai_rtos height));setq ;@rk need to translate from float 9 ~/ {) v+ J4 [3 W. c! ^
- ;to string and back again easily
4 m, x0 H. M, X1 K. z+ h& m1 E3 g9 \ - (setq height "");setq else the height varies
9 q @( v+ H7 x- {2 D- Y0 T% Q - );if
% {1 i- i' H7 s' Y1 C4 d0 J1 ]- @ - (command "_.select" txt_ss "") 9 X! F. y, ~) b! f3 F/ Q Y
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
% N9 g+ x' h m1 c e2 T - tmp (ssget "P" (list (cons 7 style)))
' Q0 L I7 G& a$ Z# f, P3 K - );setq # f! e* l7 E' d6 i
- (if (not (and tmp, Z y( a; P. K& Y7 h! h" w1 M
- (equal (sslength txt_ss) (sslength tmp))
& K* e# |5 R# s& k5 C - );and
) Q/ v: N, l" V0 U - );not( \9 A7 E. x! p, a' l- ] m
- (setq style "");setq then the style varies
5 ~! ~. {- X3 f- ~ - );if) L4 J3 c- T9 ^( G h# u6 k
- );progn the text type objects are in the selection set4 l- m, U( e3 f t
- );if
; ]; v5 X- Q5 B; M$ O, o2 q - (command "_.select" selset "")
1 T4 M( b# L/ l; c7 v; S- M - - S5 p3 e. D3 r- P# o* l, g
- (while (and (> sslen ctr) ) Y3 s* f3 S$ q2 ]) L, r, z
- go, G" ?' G1 \! K0 \0 C) s
- );and5 ^/ Z6 ?( S' _$ p
- (setq elist (entget (setq en (ssname selset ctr)))) }0 l. A3 W$ C9 S8 S7 [+ U* a, }
8 v" i4 O5 n" _% M v2 p- (if chk-col (match-col))
( {) b$ O; ~3 T2 w - (if chk-lt (match-lt))5 }8 z7 }' y+ N" B. l# w$ O
- (if chk-lay (match-lay))
4 j! A9 R1 v/ u; W/ T6 e - (if chk-lts (match-lts))
/ m7 w, [( V3 R+ U# L - (if chk-th (match-th))
( J% \5 V( F7 a3 z" r
# x) {8 d7 v' p ~3 e- Q" e0 l- ;(if chk-etype (match-etype))* A9 |7 E% Z1 n; L3 {( j1 e
1 r6 O; E9 e' f/ |- (setq ctr (1+ ctr))# n: N; g2 K( d3 S) \1 u' g. T
- (if (and (not chk-col)5 r! a/ a" x) n' f+ m2 B
- (not chk-lt)- U% U) j* a) L/ L9 a
- (not chk-lay)$ V8 `8 [; Z6 g }1 L* S# q
- (not chk-lts)6 V' {; W. _4 [$ W
- (not chk-th)4 L$ ~6 y5 D# M: V
- ;(not chk-etype)
: G* i4 @1 f4 t! |( g' m. j6 E - );and% b; r) ]: ~: _/ P
- (setq go nil)
. r; {7 g& Q6 S( ~ - );if
( [. T1 P, ]' |6 b0 X - );while
; X4 B5 }$ ~- z! B( V) P/ s - [* c" Y1 k: N
- (list color ltype layer thickness ltscale1 i. U ^% }8 b8 c- j8 n
- width elevation height eflag 5 o3 D+ `% n! S: [0 y; J- m
- style poly_ss txt_ss' [' d4 K0 w# C; g
- )% ]! X# C3 e2 N- k
- );defun getprops
" Q: a/ d2 o6 S) F% d - 7 K- w' E$ L) U6 Z
- ; This is a speedy little routine to tell whether the polylines in
& u, f# N) e. \+ k - ;the selection set argument are of varying width or a constant value.
* T2 Y& P' W. ]- U& m. J9 l - ;Looping through the vertex's has to be done for old polylines when
/ R3 J( y% `$ l/ a, n# B* ^/ E - ;the polyline header has width values of 0.0. Basically, in this case,
# J* l. z& E, e$ X - ;information in the polyline entity header is abmiguous. Width values 4 F9 C5 o8 r7 r6 n2 _& m( a
- ;of 0.0 in the header entity could mean the polyline has a constant : b2 a( N0 i0 |" d& q
- ;width of 0.0 or it could mean that the polyline has vertex's of varying
8 E+ _, T+ N# \4 {8 D5 b+ p - ;width.
: i- D: I% B2 ?- f/ P - ;
3 u. _6 c' ~! a( _: Y8 v - ; It's all in wrist. Err a.., I mean it's all in the 'if'5 O- [* W+ t& Y
- ;;
+ z" A8 K& w2 |4 b; _/ x7 J' v$ ` - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)/ u+ S: w% e& R- r! b# W
- % [: J) j- U6 C
- (if ss
$ C: }1 C- B' m' `( _ - (command "_.select" ss "")
% ^1 B- u- C$ h6 q% v7 q1 ? - );if
& Y3 H+ N! M; g& ~% z - (setq width ""! V' R: |" u' @+ S9 R
- flag nil7 {1 s0 j. m) T" {" o
- flag2 nil
$ G. d) i; Y/ @ F - );setq
4 ^9 p6 b; k% @- [4 S" E - (if (not
K( W! z8 q! H9 I2 C - (and ss
+ V% X5 T+ d6 X# B/ j. y Y - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq9 x2 e9 u. A# @- O8 @
- (setq na (ssname ss2 0)
% ]7 J. R0 w3 ]8 C: _, i - width (cdr (assoc 43 (entget na)))8 Z6 m& r n* K: W3 {
- );setq
8 v$ d# n7 z& b3 {* `/ T/ K - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
+ K% H5 A7 M! b" B - (cons 43 width)
9 v' D7 N M9 H1 u5 @2 a - );list
) F: H: S" t8 q7 D6 b) A - );ssget5 U( P1 w" P$ u0 D. R
- );setq0 N( ~/ e+ c) {0 R* B* [
- (setq flag T) 6 I5 ^) y; j5 n" ~$ _
- (equal (sslength ss2) (sslength ss3))- E* V$ G2 C* A+ T' n! l
- );and: v, T$ j$ A. f5 {; h$ S
- );not8 |. ^2 L' Y: `' W/ K! N
- (progn( u9 |" |6 ^+ f2 ~3 d4 H2 q/ u6 p
- (if flag
5 ?) H+ p8 g& j3 Z4 |6 p - (setq width nil)
2 b) U5 n" Y/ \5 `7 l f( A9 v - );if4 u2 j& Z1 M) j$ V/ B
- );progn$ V. L: A; v x0 K" R, |: x7 b
- );if
`" @8 e% n% J, p -
" O$ r2 s$ E2 ?5 i - (if (not
6 D& j9 s+ o- X4 A9 H1 f' b - (and
$ T7 h0 O' y1 o( b% }7 `! ] - ss @$ G/ E0 k) u" t( r: \
- (progn (command "_.select" ss "") ; b( H! Z. S4 I0 f5 p6 N/ Q* h
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
* m, x- c5 l3 U( p - ) ; w8 [' C: }; e: q. S* ^. a0 K6 E
- (setq na (ssname ss2 0)% I+ ~( J$ f5 R, [7 R0 N, G5 C. [) E
- e1 (entget na)5 p8 j9 ~# v8 j/ y
- width_a (cdr (assoc 40 e1))$ o9 h b( R( U2 L) u2 u
- width_b (cdr (assoc 41 e1))- X( U9 B) Y1 B4 f- F1 Q
- );setq
9 C5 W2 c' ~% F, A- } - (equal width_a width_b)
3 r* Y- y- D" d - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
9 K; n- H' C3 o& B - (cons 40 width_a)
. g" I6 `6 O' n: `( Z - (cons 41 width_b)
% A5 V) k; \6 T0 O; {8 p& b0 d6 { - );list
. m6 l- ]$ s5 e, B$ Q# p) Y2 U - );ssget
8 m' B/ Y3 @2 I3 p9 ] - );setq; `$ B% c. H% M; ~- l
- (setq flag2 T)
" i4 O0 o: R0 k& M8 A - (equal (sslength ss2) (sslength ss3))
/ ^. {- y) F: Z' E0 v - );and 0 P# I+ N! {; q0 t
- );not 4 `; p0 j4 D. z7 n& u; e
- (progn
6 n9 t6 n5 Z B$ J3 T0 I6 } - (if flag24 f2 F; k, i6 J! k. T( r5 v
- (setq width nil);setq4 Q+ y/ ~; E: M6 h9 M8 V" P# p3 f
- );if
9 R4 | e# q; ^5 p - );progn then- a$ K' [2 Z. Q% ]# @) M9 D# U
- (progn
^0 c3 ]5 O; w/ P3 k - (if (or (equal width "")& q, Y; y( p* V* P
- (not flag)4 T0 i* @3 e, p$ s5 Q8 M8 z
- );or9 m2 p1 c) {" a% x+ _& t
- (setq width width_a)
4 H( _, Z! l, `7 V - (progn( f6 ~+ F1 a ?2 ^/ l; U, j5 l
- (if (not (equal width width_a))
0 _- @) f6 Y7 P% Q0 W, P( @ - (setq width ""), K; J- S- r# {9 k2 m* ]1 _
- );if
) T) j" W i A$ A - );progn
' o8 R& ]" z j$ K9 d: {9 U6 k8 ~ - );if
6 ~; l& [2 n1 A! w - );progn6 A0 ^0 ^$ @5 B5 ^7 y
- );if; z6 X- z# ^6 f+ C( @
- $ E4 F; r$ y. H: U' J j
, J- W+ D! c! X$ _- Y# g3 L- ;now for the special handling for old polylines) F% K3 R; Z1 X, k/ X9 I
- (if (and width
* i6 t+ |2 L) d P - (equal width 0.0); w$ o1 f( g; s+ c3 p
- flag2+ r. g! K* U- ]/ }: X3 k- R% h8 R
- );and
" |2 n0 W r1 e: L0 f) b1 F - (progn
; p% ?2 l* v! b -
5 e9 K+ Q& r: f7 ^7 |- w- y% Z t - (setq n 0);setq
- c, [3 c: c9 h+ Z+ C" B) ~$ y - (while (and (equal width 0.0)
) t; V- E" V9 @ - (< n (sslength ss3))7 X, e. e; p; f- e) K# y& B# [- n
- );and
) \) H; J8 ^1 T6 H8 r - (setq flag nil
u f" T) F: ` - na (ssname ss3 n)
. e( g! g/ j; ] M; q. R - na (entnext na)
( j0 A% }! t% l: Y! g; K- W% ? - e1 (entget na)8 o7 ^, [% U& H' l; Q v+ R6 n
- );setq# a! |; l: ^1 F' T' F& y5 A* N$ p
- (while (not flag)$ t2 v8 Z) F. _0 m/ P
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")1 m j1 l! d5 z4 S4 x N: x/ R- [
- (not (equal (cdr (assoc 40 e1)) 0.0))
- G3 u7 A5 f5 }& \' J - (not (equal (cdr (assoc 41 e1)) 0.0))2 |( ?. F) S" X# k
- );or
0 }: A5 K1 W2 c* I A' c* b - (progn
: Y' y! i; s, o3 @/ b9 P8 P - (setq flag T);; Z$ f( N: d, D# _; W! t7 u4 h
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND")); }1 y8 M: p4 q2 P) R
- (setq width nil)
+ `. b/ U- @8 z0 {) O - );if
" d5 Q& X$ s# ?) t# ^+ V4 S! _. d! T - );progn then jump out of the loop1 U3 z( a, R( l6 s" W8 y `
- (setq na (entnext na)
: l7 l6 B- C ?8 r! q, q6 ` - e1 (entget na)
$ e) ^! p/ f+ }* ?6 i# d5 l - );setq
6 ?0 `% b5 D% t - );if 9 {+ [; a* y" n* F: @3 x# Y5 H1 C
- );while
. ?3 ]" M- v; r- z0 p* A! [& k - (setq n (+ n 1));setq ) ]$ {7 | Q5 y/ h8 w
- );while 1 o" v0 Q7 `4 i h7 H+ L
- 2 b J" q; z0 G {4 f
- );progn then it's a legacy
* r6 y. t7 C* s: ^- V - );if ;legacy polylines that may have varying widths
4 \7 g0 p. B" t; V3 C - 3 u' M; @; j2 r+ J8 D9 u, X
- (if (not width)5 R" b/ P8 M4 {; j2 T. K7 k. w
- (setq width "");setq
4 U/ i1 L# Q8 b$ M, m - );if5 B0 l1 k. P+ s2 L, o
- (if (not (equal 'STR (type width)))7 v( O, R1 \, x' E, J) m) P
- (setq width (ai_rtos width));setq
9 i) b! `8 H9 Y$ D" h& Q0 _ - );if 1 l# V" M7 d. W' \
-
/ L. ~3 a: p" o: x3 `; B - width ( A" g H# U8 q L7 Y! e
- );defun pl_width_getter. i! ?) `1 |3 U9 o$ x |% o
2 H6 \8 {* A& l& V* C! m1 Y-
4 l- @/ ~0 D& u1 T* B: n - (defun match-col (/ ncolor)1 Z0 @: }6 j0 D( F: [ j( r7 d
- (setq ncolor (cdr (assoc 62 elist)))
/ O4 K; p, U4 W: n% }0 `9 c* ? w - (if (not ncolor) (setq ncolor 256))
6 B8 o" F- Z5 H4 e - (if (/= color ncolor)
+ o. F- D& h( O3 H3 Y - (progn Z, a6 k% s9 r7 Q( S
- (setq chk-col nil)8 }0 ]! A% S( f
- (setq color nil)/ H% `1 i# {, F: I* H% \: o
- )7 [/ {( w7 ]3 v& r# E ^
- )8 ~# a! X$ C0 r9 J6 k/ f1 I E$ M# F
- )
& P1 a( P4 L) `- T' m - : P9 S6 c: ~0 T; `4 B1 D7 ]
- (defun match-lt (/ nltype)
8 J: j; x5 l6 |8 u; D* X - (setq nltype (cdr (assoc 6 elist)))
8 N) B1 I% p, P+ W+ N C9 r5 O6 D - (if (not nltype) (setq nltype "BYLAYER"))1 y+ W6 W: _6 w9 W
- (if (/= ltype nltype)9 Y: k% A: @. l+ M0 g0 X6 ?' l
- (progn
: R# j; j5 Y& l - (setq chk-lt nil)
# ]! b- W2 k+ U - (setq ltype ;|MSG0|;"Varies")! U" I% j* o6 }/ Y: t
- )
; W h) q5 f& J' S( b8 a- H - )
! }- i# T! f9 J: l - )
7 F3 o9 b; {, v: K! h
# W& {2 m( J! m. U& n, p- (defun match-lay (/ nlayer)8 ]+ x D3 h/ z; n1 b
- (setq nlayer (cdr (assoc 8 elist)))
) W: ?+ |) h' ^7 w1 o; G - (if (/= layer nlayer)
" a3 q r' E$ `& I$ _0 n4 e - (progn6 M2 r+ o' ^: S- I
- (setq chk-lay nil)7 J, m X* h& f9 x# o) p
- (setq layer ;|MSG0|;"Varies")) n8 }& H2 }5 a0 q( Z4 ?5 }
- )
7 X* [4 D3 M- s. K" x/ C - )
# p5 J+ N, k$ m! k4 V" A& }2 x) U - )
+ G3 J' c% K/ t _
- j6 j2 @. a9 @4 \- (defun match-th (/ nthickness)
4 @9 e) k) a: L - (setq nthickness (cdr (assoc 39 elist)))" n! f+ w, r8 [7 U
- (if (not nthickness) (setq nthickness 0)): }4 v. N' E3 X, B K7 U
- (if (/= thickness nthickness)
7 j$ x! {+ f1 Q% w: J6 y - (progn2 G; C% _* }4 U% W) K, F; ?
- (setq chk-th nil)
0 }' Y \! j5 B3 F7 `9 j" j - (setq thickness ;|MSG0|;"Varies")
- V9 P d$ p: N9 s( Y - )( m" B7 ~$ |, Y+ O
- ). A) V3 Y* f4 K
- )9 l/ q1 Y& v! K1 z1 @" Z) C) S
- . Y7 \5 I' N3 r
- (defun match-lts (/ nltscale)
; ]$ E# ?$ e3 u5 C" {) Z& d - (setq nltscale (cdr (assoc 48 elist)))- Q7 ] g9 d( M" x. f- w
- (if (not nltscale) (setq nltscale 1))+ G. T' P! w2 U5 X/ i0 [9 G
- (if (/= ltscale nltscale)' |9 p' ~% S+ q' n$ p9 j9 W) _
- (progn; |5 w8 [0 p3 F7 x" _
- (setq chk-lts nil), T1 g9 k- ]- [+ w W% j/ i
- (setq ltscale ;|MSG0|;"Varies")7 K: a9 A# S# H2 E: Q9 L# t
- )
" u9 P9 H) B* k) @: g5 m. n - )
5 s6 \% y; e) N4 G* E& t, ` - )
5 d$ m0 [8 W' n' d3 u - 9 Q8 P. N* R# L1 g) C* E+ X. I
- ;;; p* f O: |) s9 g
- ;; If an item is a member of the list, then return its index number, else
( s8 M9 v" s0 ]' d - ;; return nil.5 Y: y" G( N* y% ?. U' {
- ;;
5 e4 l1 p- C# ?( v% Q. a H/ f - (defun getindex (item itemlist / m n)
: k. K% b7 i' F& j+ K( D9 \5 M - (setq n (length itemlist))
6 x7 i: C B+ U9 u+ s$ p - (if (> (setq m (length (member item itemlist))) 0)
' V, s K, }5 I/ y! C% { - (- n m)
$ V, m5 R) K* j4 N4 D; J - nil) ]# Q7 W/ U8 F. m6 z+ B. f
- )# h4 c. j5 j8 _6 v, K. R
- )
5 b& U/ t. ^7 }% T. E. b - ;;: Q- y: l% R- P
- ;; This function is called if the linetype is set "BYLAYER". It finds the' S+ |1 P) {1 n5 Y I3 [
- ;; ltype of the layer so it can be displayed beside the linetype button.
2 Q: s8 v+ F5 p - ;;/ n& o& h% Z5 J( G1 k& m
- (defun bylayer_lt (/ layname layinfo ltype)
' a! U; x+ s1 V - (if lay-idx
4 p7 W) h: b! {2 r- y3 S - (progn+ B- M- V1 O" I. |7 e! l/ K; K0 }
- (setq layname (nth lay-idx laynmlst))* d1 i4 F! D$ G% Y ]1 ^8 c9 d4 u
- (setq layinfo (tblsearch "layer" layname))& Y4 z* c' o8 `9 M. p) l* L
- (setq ltype (cdr (assoc 6 layinfo)))
% b& Y- w5 l; A% A8 f5 M: s8 | o - (strcat "BYLAYER" " (" ltype ")")
- g% C9 F; _- M" u - )
' t' a% E4 h+ K2 |+ s - "BYLAYER"; }* `; Z. @0 K- A2 Z" h
- )
: W. m5 c$ i7 F - )
+ J4 f3 F* c( Q - ;;
V- |# S% k$ x, D% J - ;; This function is called if the color is set "BYLAYER". It finds the% d, l6 ^; F' k5 n" y
- ;; color of the layer so it can be displayed beside the color button.2 {4 V* s+ s1 H% z
- ;;
9 y- j8 G! o8 Z6 Y& X A* t9 ^ - (defun bylayer_col (/ layname layinfo color); i# E, u! p$ D7 C- \
- (if lay-idx
6 t" O. b9 W$ Q+ D- [2 i6 J - (progn
8 V' S( c* f3 l" J - (setq layname (nth lay-idx laynmlst))
; o3 J. h+ N& }& @ - (setq layinfo (tblsearch "layer" layname))+ r, v6 I* M4 u; e
- (setq color (abs (cdr (assoc 62 layinfo))))0 \1 ^9 o# p2 l9 y( U) u/ d/ p
- (setq cn color)
" u6 Q. e, K' P& O" G6 z7 X c/ x - (strcat "BYLAYER" " (" (colorname color) ")")/ v# k6 o5 v1 ]7 `
- )2 z$ r+ k5 N$ k2 M/ V
- (progn! n* X/ t0 c4 a! s: E3 g+ a* @
- (setq layname elayer)
: p( @% V; L7 Z9 N' w - (if (and (/= elayer "")5 y/ o$ K: h( B% n5 W' B1 T
- (/= elayer "Varies")
C8 ?0 l6 f: Q, {7 y0 ]5 k - );and: N' G) |6 t4 M: i5 {
- (progn, f; @- o7 H4 @" Y) B( K
- (setq layinfo (tblsearch "layer" elayer)): H/ d' t |% I" E0 O( R" ~7 S6 z
- (setq color (abs (cdr (assoc 62 layinfo))))
$ U: P5 g+ z- S$ e+ H% f* V - (setq cn color)7 t4 y2 c1 I9 I* f
- (strcat "BYLAYER" " (" (colorname color) ")")
3 Q% ~, ~& ]" W8 A& k& ]( R/ V - )
3 ^1 F0 d3 M- N6 [9 x - (progn
! B0 y" n5 b- g8 \! c5 r4 d - (setq cn 0)
( @' ^. Y# Z1 i% y - "BYLAYER"
' p1 n- H* a0 A" r+ u/ M - )
! F6 r0 Y3 O( v- S - );if
+ J+ r0 y% [; E1 T/ [ - );progn6 M6 v" E1 E' t) z8 i
- );if
( _# B) f9 f& z0 w1 U0 Q" w - )
?% Q) I! N8 `+ d, P+ j - ;;& B* V" W7 c$ M! U" u/ A
- ;; If there is no error message, then close the dialogue
2 T A5 L: g% y5 ?5 T8 ? - ;;
8 U8 R4 {; K0 e/ D) l9 ]) `4 V - ;; If there is an error message, then set focus to the tile0 W- ^) w& b0 i1 ^# G8 E
- ;; that's associated with the error message.5 V: z$ F. h0 u b; i& C O
- ;;
4 H6 B8 `. h9 Z3 R$ \/ u9 F - (defun test-ok ( / errtile)
: S7 b: [. H5 {0 M - (setq errtile (get_tile "error"))" R, J! e: Q5 [7 w* o2 O$ f
- (cond' T" f+ e1 a& I9 z+ b5 c& [
- ( (= errtile "")$ d# ^+ |( f( M1 u; T
- (done_dialog 1))
2 l- ]' s4 ~: R& k9 { - ( (= errtile "Invalid thickness.")
/ W3 n) G% I0 E7 V9 W: E2 q3 H - (mode_tile "eb_thickness" 2))
" z: R! r# s/ f' N, y4 N! q - )
, k; R; M+ U) Y' z - )% o: C: q# X6 B: {/ z7 S. Y' t
- ;;
4 m* r7 Q; _7 m, h& [ ~( L - ;; OK in main dialogue.
$ i/ c6 T+ S/ E( q8 T - ;;
' z! U( d9 O. J% Q0 B& h7 z A, [ - (defun test-main-ok ( / flag)
7 v. x. M$ E, f! D( ? - (setq flag T)
8 E S9 B# G- l+ y" I# L0 f* D" c - (if (not (or (distof (get_tile "eb_thickness"))
: Q0 o; I. s. [2 o: j - (= "" (get_tile "eb_thickness"))
& S: s& n' `$ H. r - );or
9 f2 d* ^* ~( ]$ s' p2 M: ] - );not) N- Z* i" T+ U. @3 t! r0 P& a6 V" P0 }
- (progn$ x; Q- T( L: `" X3 D- M1 \
- (set_tile "error" "Invalid thickness.")
3 z: h/ x2 n1 t1 f - (mode_tile "eb_thickness" 2)+ m# X O. u0 a
- (setq flag nil);setq. X3 ^) E8 y6 `5 q. u3 ^" u
- );progn0 w' A, ~! T0 b7 [- _9 v
- );if
- H$ v$ K3 h2 b. X% O2 h - (if (and flag7 r+ p3 q- N+ z- P$ n; N# P5 z; B
- (not (or (< 0 (distof (get_tile "eb_ltscale")))
T- H- f8 N8 r3 x - (= "" (get_tile "eb_ltscale"))
3 B* r& q5 I. w' a. h( e - );or 0 L7 e& O! b& M* b
- );not) G' x* p0 P {$ F" q. C
- );and
+ [8 [0 o( v; f - (progn
# }0 ^3 K( V$ z0 ~ r - (set_tile "error" "Invalid ltscale.")& ~- x" w! u4 J. A0 t6 D+ T# _1 W
- (mode_tile "eb_ltscale" 2)/ N; ^; @5 j" A( {. ^: Z% H$ }# j! y
- (setq flag nil); / h% h) f3 i) @: Z8 L( V
- );progn then7 @, w# L/ a( B3 F y1 h
- );if
$ e: }" X" l4 L) e4 Y - (if (and flag
* S+ x* v0 G) ]" b$ A* }& H6 o - ; Don't test the tile's value unless it's enabled.
; B' c' [; B" z' ^ - ; We're not set up for the display-only value7 T, S# Q/ ]& N& I7 y1 G! K0 C
- ; of "" here in the error handler.
! B1 m% r2 S. C7 q# q. Q3 Y- y - (= 2 (logand 2 eflag))
* M. b, J! M9 z) g r' o - (not (or (< 0 (distof (get_tile "text_hgt")))
H P6 b! f) e, H! \ - (= "" (get_tile "text_hgt"))
4 m& i z3 Z( S7 u3 m; Z7 U8 X - );or6 s* l6 {- y7 @+ A% ]4 D
- );not
% [& j$ O$ s5 c% Y - );and
) I1 }+ K0 ~% S - (progn
- W# H! ?# y* [4 X' ~ - (set_tile "error" "Invalid height.")6 D. `7 q" ^, `" O
- (mode_tile "text_hgt" 2)
. [9 X+ g; A* x1 l3 S- E - (setq flag nil);
8 g( P, _. l* c4 ^9 e* \: \ - );progn then
% q8 M1 |. g3 Q: T6 j# A2 s - );if/ w0 t l! u7 d$ e0 c, C: @! q
- (if (and flag" {" p7 |% _/ H
- (= 1 (logand 1 eflag))
# r4 d C {. f$ c. |0 T8 k/ @1 o+ X - (not (or (<= 0 (distof (get_tile "poly_wid")))& o# i9 [, J1 j& ?$ L6 t$ r0 R+ `! |8 s
- (= "" (get_tile "poly_wid"))
" Q" v5 o6 P. a. g# y8 B2 U - );or
. r, n/ o% [( u# ?9 A4 ` - );not% |* D4 h) D1 S2 ]3 N/ i
- );and- l3 F4 l+ Q+ s* z
- (progn Z& Q+ f; _3 y' C% j5 c" X$ q
- (set_tile "error" "Invalid width.")
! q2 r" t9 |/ O" l6 Y - (mode_tile "poly_wid" 2)
( E' \4 f4 Q" w' Z6 n - (setq flag nil)
+ _0 R( J2 ?+ b/ K3 d7 ?' V - );progn then
' a6 i; r. a+ l - );if
$ C$ [& O1 R+ I) E6 l8 w - (if (and flag% ~1 v) Q# s g" ]
- (= 1 (logand 1 eflag))
5 n' q. _$ R$ I* a# g3 ]& w! z - (not (or (distof (get_tile "poly_elev"))2 U1 h# p9 G0 }9 K6 G; s4 O* [
- (= "" (get_tile "poly_elev"))0 }- }' G0 _- W7 A
- );or; G6 o- y5 K/ ]
- );not- X9 u9 V. \, W% Z ?; i: U
- );and
4 w5 [) I% w5 V' O - (progn' l- z5 Z( ]2 D6 R
- (set_tile "error" "Invalid elevation.")
Z; r( B' q4 x. z - (mode_tile "poly_elev" 2)$ w5 ^6 i/ A1 I1 h; |8 L- v8 F
- (setq flag nil)
8 O5 a7 `9 {( j8 l" L2 L - );progn then' Q; H4 A8 T/ A
- );if
* _8 ?; j" u/ m1 Z0 I0 ]; ^ - (if flag
. b; i4 ?( x, s9 N# _0 y0 u$ n - (done_dialog 1)4 y, J# |$ C8 ]4 z+ `' g
- );if5 n% @+ v& s: |4 p
- );defun test-main-ok6 R, c& L1 L3 O& r6 e+ m
! r1 p) v. Q% R( }1 [9 @4 m- ;;5 ?+ i% X0 C' Q3 [4 O
- ;; A color function used by getlayer.
6 g& v3 G7 s8 `' g x - ;;7 p5 c" O; l3 z1 Y# d2 E
- (defun colorname (colnum)
+ V0 z# k8 U4 I, F0 | - (setq cn (abs colnum))
( @. q2 B& \) G. C8 _ `( g - (cond ((= cn 1) "red"): j9 k. n6 F& A! E
- ((= cn 2) "yellow")+ d* D1 g; D' K7 u$ ^' G
- ((= cn 3) "green")& s2 J( U0 n j* _
- ((= cn 4) "cyan")
' y7 P: Z' @2 r9 H - ((= cn 5) "blue")& e# W/ Q2 q( D; X
- ((= cn 6) "magenta")
! _7 _% e0 l6 n2 x* I - ((= cn 7) "white")1 G& |( c6 Z. N8 `1 m! `- g. L2 @
- (T (itoa cn))
- g/ B8 D8 x% m6 k - )1 a* I$ m! J: z
- );defun6 {2 h2 |3 d( E) @2 s
- 7 Z8 J9 c% ?4 b4 k6 ~
- ;;; Construct layer and ltype lists and initialize all6 y, W8 q: ^; U' t" N
- ;;; program variables:
; i' z* `/ h# h4 \ U, I2 t
+ G& j: V9 M" o1 T- ; (makelaylists) ; layer list - laynmlst
# q+ a5 G" R" |& S - / L/ D5 s4 ^0 `4 l4 s# e y- W
0 Q6 ~0 R/ V8 I- (makeltlists) ; linetype lists - ltnmlst, mdashlist
% }- d O+ q7 ]) [& h
$ J) } _2 e: q, {/ O& R$ v- ;; Find the property values of the selection set.
; K, N, S* r$ N$ V5 |' B - ;; (getprops ss) returns a list of properties from5 {7 S, o! t6 w$ U- N
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
7 L* H; S# d( q5 m$ b, p - 3 z/ @; C, @/ n+ p" E8 i' k( _( o
- (setq proplist (getprops ss));@rk interesting things happen here% i8 C) j% K0 i$ T( R1 `: L
0 I9 e& V2 |5 _) q" s- (setq
5 l w" W5 O+ H6 t - ecolor (car proplist)# c& C: {* p# s6 x. Y" V6 e9 j
- eltype (nth 1 proplist)
2 g) \! {2 K/ {% k# U - elayer (nth 2 proplist). T ]6 Z1 @/ ?( n T1 r
- ethickness (nth 3 proplist)
1 }' A: V' e2 ~3 W3 b' E - eltscale (nth 4 proplist)
1 O+ d! e% j- S& J0 g5 f, T - ewidth (nth 5 proplist)
9 A+ a) s7 |& r" q8 T - eelevation (nth 6 proplist)' L5 J% R! b9 R# Q8 q
- eheight (nth 7 proplist)
* t, p# g# r- O; ] - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
' b6 _2 A! W! T% L - eflag (nth 8 proplist), @% K4 C9 F0 R
- estyle (nth 9 proplist)
% M8 A/ }# v4 F2 Q$ v& X - poly_ss (nth 10 proplist)
: [' v$ S9 ~, u/ `; | c - txt_ss (nth 11 proplist)3 z1 }) d9 y( T" O5 m5 ^
- );setq9 ?8 q) R% w: B, Q" H6 k- u- e
- f6 Q, `* S/ n- P2 {5 x) S' o
- ;; Find index of linetype, and layer lists
3 S* {& q+ W$ z- Z3 h" ^ - (cond" J6 m' y' D \+ R$ D
- ((= eltype "Varies") (setq lt-idx nil))- ]" S5 u9 h0 Z5 p
- ((= eltype "BYLAYER"), {; S5 E. m* A( \: X+ ]( \5 t
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
2 s/ r! i0 P/ w: W% ]/ ^ - ((= eltype "BYBLOCK")
+ c" i% T& y$ @& s S6 e* v - (setq lt-idx (getindex "BYBLOCK" ltnmlst))); x' I$ Y t) u' a( @- Q) ~
- (T (setq lt-idx (getindex eltype ltnmlst)))
2 i/ I7 h3 ^( Y4 i( ^. L - )
3 F9 m* v6 S3 }8 a$ I) b - (if (= elayer "Varies")/ Z2 e! {& [4 e
- (setq lay-idx nil)+ X" e: Z0 f& [& R& L
- (setq lay-idx (getindex elayer laynmlst)), L) A8 `- r \. v
- );if8 c: } Q3 l6 N6 ~" w
- (if (= ethickness "")
- H3 L1 Z, W1 u. z5 ^" D/ p- _& b - (setq ethickness nil)" p/ b" T* Q/ U( k5 x: I+ C
- );if% A4 u" Y9 `( G! W" j5 c
- (if (= eltscale "")
) x3 |* s) p+ F/ d! }5 ` - (setq eltscale nil)
9 s" J9 a _8 ?$ W7 [9 o2 w - );if5 x ~3 Q3 _' q) B% O1 R
0 s+ T7 x5 f1 {7 N3 A- );defun ddchprop2_init ; end (ddchprop2_init)
7 r% V# b" d+ v
0 h) ~# @* X+ j. U+ t- ;;; (ddchprop2_select)
t) v1 Z1 n4 C' ]; e1 u. S; |; I - ;;;
7 ~4 `% Z+ |6 F4 Y2 z3 L - ;;; Aquires selection set for DDCHPROP2, in one of three ways:
3 [+ J2 T0 |& P! g8 h, y - ;;;
; b* J2 W2 a; r( a9 S5 N - ;;; 1 - Autoselected. [0 h4 y: v' q& I
- ;;; 2 - Prompted for.5 H% [1 ?& O8 U( r8 I g+ ~
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
# m z# X8 D0 [ b( e - ;;;
3 e. ]" l# b# i6 ` - ;;; The (ddchprop2_select) function also sets the value of the
# P2 b6 d+ x' t - ;;; global symbol AI_SELTYPE to one of the above three values to5 b6 {9 E% L$ }" U) C u- H, y
- ;;; indicate the method thru which the entity was aquired. h. {& }2 S# b% t6 y' B
- ; o+ e( N! t _- K
- , n0 H1 z( X! S0 c
- (defun ddchprop2_select ( / )
6 R4 G0 M; r, \) e - % d2 q e- D$ p6 N7 |3 ]. g1 t
-
: o* M0 Q5 c9 P2 w& k( d4 }/ C - ;returns only entities in ss that are in the current space.
, ~) l' X+ u" ]5 H* h - (defun ss_in_current_space ( ss / a cur_space ss2)
% D3 C8 l# ^9 g- e
, G' q: A" g8 u) j( H, S5 F# j- (if ss
0 P5 M @! {8 X8 U# q+ a - (progn
( ^$ @* N& z2 |8 J0 _. a8 D3 W- E - (if (and (equal (getvar "tilemode") 0)# K8 E! Y( B) T8 I7 j& @
- (equal (getvar "cvport") 1) V3 s6 `9 {8 W7 E1 U
- );and
5 t" X2 p8 w* W8 N' S1 l- E P - (setq cur_space 1);then paper space is where we are.
. M6 x7 q1 j( ^, h9 ` - (setq cur_space 0);else model space.
+ v# ?5 c1 N( T - );if
" o* r* i# r; @( f, T* ^8 ] - (command "_.select" ss "")
@3 Y T. Y. L' b& x ~ - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq2 X- b- B/ f" p j
- (cond ;;;;;tell the user what's going on.
6 x; s' S# f; |/ C. j! R. x) v# E - ((not ss2) (princ "\nNo objects found in current space."))
% @. ]2 l+ r" R; l% ~; a% [ - ((not (equal (sslength ss) (sslength ss2)))3 z3 K$ ^& N0 ]2 K/ E4 a- s3 e
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2))); k( a. |+ ^& v
- " object(s) were not in current space."5 l, b) t2 m( y1 e0 M9 J/ o$ E/ L
- )
6 q4 ~6 t5 q4 U) G1 A. s - )
) P- u% u* a; t C - ) $ T. u9 H% q9 H |3 U# V* u
- );cond
5 y5 N, \ P) w5 c) l( h( i - );progn then
/ I6 O. B9 r; Y9 c/ j6 L - );if
: y2 E1 m8 ^( v2 L5 U+ j - ss21 a" N: @! J2 y/ V4 l7 Y
- );defun ss_in_current_space( F& Q* C, N6 G( _4 ]
0 z$ ^- B8 l) O3 \: B8 P9 K
7 d: T( D: V4 z: m" C# l1 V- ;;;begin the work of ddchprop2_select
h" h. O, U7 {% f7 s -
; W* S: O3 b( U% G6 @% M, i. ] - ;; temporarily restore original highlight setting.+ W7 s) i1 ?7 k$ G! J1 r* z+ W
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))7 G1 T2 C% T$ _+ @. S2 n' h+ A
- (cond I7 [& j6 O4 Z: ~' W
- ((and ss ; e3 U2 t; z; @: K0 M
- (eq (type ss) 'pickset)* Q- N% T5 X+ `2 h5 C7 i; j6 z9 j
- ) ; selection set passed to
9 b- C) _1 h% h' \0 w - (cond ; (ddchprop2) as argument
& U3 [) t- N9 A* w4 x* q - ((not (zerop (sslength ss))) ; If not empty, then4 J) k3 P4 _- L0 R8 R& B
- (setq ai_seltype 3) ; then return pickset. t" _: S* I' e/ o0 L' U, t
- (ai_return ss)
: o& F& M1 i/ {+ f- Z5 b2 a7 N% R - )
. `* l/ \6 W+ l; [$ \* i - );cond close
2 R& G7 B. f, y - );cond #1
! K4 G: T. V& n0 I5 P4 ] - ((setq ss (ai_aselect))) ; Use current selection
- A; |" i: B3 M1 H; }+ y; s8 Z6 } - ; set or prompt for objects [, @4 S( q! f! U: W
- (T (princ "\nNothing selected.")% b% E9 j) \( l# b8 q* `+ v- l% V0 u
- (ai_return nil)' n( c( }) K' a. h8 {
- )2 F! {/ R; N3 a1 E* T' R
- );cond close1 w. X" o' d6 y
- (b_restore_sysvars)
1 R6 B4 Q+ p: j4 u5 y* K$ g
( i# J# c0 l/ @ ^9 K9 b0 J- ;(if ss
1 K$ ]& L+ O& [# Y - ; (setq ss (ss_remove_locked ss))
9 R5 a0 K3 e; a- q, g, [- f2 q9 m$ Z - ;);if) c# h1 f, Q3 b
- (if ss3 D: ?' e- \, v! y3 ]: }( m
- (setq ss (ss_in_current_space ss)) 0 ]# n' B4 J' I
- );if
& g7 A6 b* b9 O3 R6 {! k+ `$ B - . |1 C' Y E( a6 }4 K, H; d6 O! G
- ss
( c9 K/ C- d5 n! O$ `5 m - );defun ddchprop2_select
{6 t4 C& Y( r+ P
6 m, z+ U) ~, t6 ]+ S- 3 P$ P: C$ r: E4 i6 V6 |. d5 U
- ;;; Define command function.% K- |# @1 Z9 q: E8 n& ?; ?" j( b4 I
- (defun C:CCH ()1 \6 O6 E/ g8 H/ j" c, }5 l
- (ddchprop2 nil)
/ E: c, V/ c4 U# k - (princ)& N- c* k0 q1 x" g/ ]7 E1 n: p' \
- );defun3 u0 a. p- w/ U+ d. v, ]
% r- E( G0 x9 r9 m! n
7 c" U9 y! O) X6 q6 c& X6 p2 e- u- ;;; Main program function - callable as a subroutine.! M. c0 o3 e; L
- ;;;
$ E. _7 @5 l0 H# X5 W - ;;; (ddchprop2 <pickset> )0 L ?: R( g0 Q$ L& C ^7 E( a4 l4 r6 g. g
- ;;;: @2 B) `7 F0 @3 T
- ;;; <pickset> is the selection set of objects to be changed.
. X$ h0 u8 c$ y- h- d - ;;;% ]- ^! N* ~$ u6 z
- ;;; If <pickset> is nil, then the current selection set is- X4 x9 Z$ z# t# ^) [
- ;;; aquired, if one exists. Otherwise, the user is prompted8 q1 O9 j7 e/ V$ [2 a4 ]4 @
- ;;; to select the objects to be changed.
/ ~8 X) p; F' @ t |7 D - ;;;
( q; F* f5 Q: c7 Q1 v3 f, r" V8 F3 H - ;;; Before (ddchprop2) can be called as a subroutine, it must
5 \ u! x; w1 U, |% `% e - ;;; be loaded first. It is up to the calling application to% ~- N; U% f" Z; ?
- ;;; first determine this, and load it if necessary.
% P2 {: Q1 A1 Z2 j8 E - # ?% K# _/ ^/ ~; C
- (defun ddchprop2 (ss /
+ N7 r- Y& X2 J3 c5 ^ j
5 E7 O3 A! T! a& y* e; H- a) t0 s: H7 s: {; c; W* ~
- add-mdash
4 w6 [7 B% }$ V$ c: H8 t. O - assoclist
9 m9 l3 X! k. k% z) B0 z - bit-70
/ v, @# W, s: ?) K: r - boxlength
& W* m, Z+ [) r) `+ e - bylayer-lt
; `4 ^: N1 @% Z4 p6 H( L8 ]/ C - bylayer_col
. }. h( i0 C% ? w& W$ O" Q - bylayer_lt
2 z7 h6 Y' {7 o- I - call_chp20 t7 {) K- M0 ^- d" ~
- chk-col
9 o1 Z& ]3 Q& h. E% b H! i( | - ;chk-etype ;var removed by rk
6 R: F- B! u7 G* B% z - chk-lay
5 k! h1 Y0 u5 O4 P: r. O2 p7 W8 P9 z - chk-lt! {9 q/ q( e. h
- chk-lts ;var added by rk 9 N# H& _7 ]7 \! `4 ~1 b' I
- chk-th+ o$ H" K5 w8 |/ R! ~7 O
- cmd
1 ~3 Z& k& B0 K" p" Q1 O, } - cmdecho
4 }4 u4 N! D/ v! R$ D. p8 m - cn# l' {* Y9 \& |
- cnum
; Q; n- D- v3 ~% U5 D( E - col-idx9 q$ ~ ^/ Q c( l! I7 M
- col_def
4 ]) L/ G/ X* B' K4 q& [- z, j$ x# h - col_tile
2 T8 ~6 O4 q8 b$ {0 Q5 \6 H. f - colname
: k& `* E$ d! t% f2 _) R - colnum% D; Z3 t# O: J; {! M9 v; h7 T1 g+ i
- color
7 h$ i0 l+ w* W3 H1 A - colorname- p% f4 n1 w$ o' A$ u+ k* O
- cvpname# q5 h; g& h: ]: S" Z5 K
- dash) C9 H2 \2 t1 |9 u
- dashdata
R; a5 U1 _+ E* u - dashlist
( ~6 R. J8 e' Z: {5 L, y - dashsize% |1 T) u0 W5 ?+ o6 m$ L
- dcl_id
, }4 N! p% {% F7 N4 h - ddchprop-err
+ _3 o% D( K/ ]7 q6 U# B - drawpattern
/ ^5 @8 w. J2 l, G+ h( t* J, L4 [ - ecolor' i9 t% p* _3 j' E9 o2 _
- eelevation+ a. x% m. B/ o. V+ X
- eflag
3 B- |' w9 E4 H8 ]. t - eheight
2 y- |" ]0 P5 e6 X( S - elayer, ]7 k* T7 x O- Z7 W# Q: K
- elevation9 h5 h2 i/ N; f( `+ }' K" w
- elist& i' X( E- E Y5 b5 C. y/ L, O% B
- eltscale: a" c) n5 U, i9 k: k/ ]
- eltype- n9 r7 `4 O3 S$ f+ ~& w2 e& `
- en
6 Y* |6 I' Y8 w. s7 W6 { - ename
; i/ ?% |2 V, j. n4 z* U - ESTYLE ;var added by rk
9 t2 R. l" H% Z* Z7 M - ethickness
4 B$ {. J ^# b$ ?. y# h - ;etype ;var removed by rk
$ z# _: W5 ]- G - ewidth
( b! g! ^# i1 k- X7 T - fchk
( c+ X g! r" z g) S# T( L - frozth9 J( u0 J% [$ Q# s# Z
- fx3 Z0 k, g5 Y2 C- F+ K1 o. c3 ^9 ~+ E
- getcolor8 o- a" M) u% w& T3 V) B
- GETELEVATION ;function added by rk u) P% w4 i+ r# I, W" e) H
- GETHEIGHT ;function added by rk( W; s2 c) b' t3 h
- getindex
+ g% Z% j" Y# E8 p* @1 Y4 W* q$ z - getlayer+ E# O, U" C' H' z
- ;get_locked_layers ;function added and then removed by rk
; _9 D) h0 J$ i3 N* A/ N - getltype; z. O, o+ [& q3 w( D
- getprops8 a" [8 w% p/ d" U. ~
- getscale ;function added by rk
* a$ h0 x8 N* m+ s! I+ B/ e7 P - GETSTYLE ;function added by rk
, a8 C) g5 r+ e G; ~ - getthickness
- N3 \- Z+ I6 X6 @# o% d4 N - GETWIDTH ;function added by rk
4 c) B) ?8 F0 ^ - globals7 S M. y+ u2 J$ G0 k M ]
- HAIR_STYLE_LIST ;var added by rk
6 c, G* r/ `8 i7 \: z# T - height: b5 e' O q* N/ @4 `* r2 z+ V
- index" H) _ x9 s% F' x8 I% v
- item. q# M. I I _' [
- item1
9 \- t1 d! y8 m% Z" t9 U8 ~ - item27 `6 K8 V/ E0 P7 \: T( u
- itemlist$ ]" ~* [& V7 }! g- W1 j
- lay-idx
" m$ X; w5 d( b' h: W" | - layedit_act: E; w- B& u, A, o5 ]
- layer
& i& x# Y, p( R) l6 d - layinfo+ F( U% f; | Z4 J
- laylist: W" U! |0 z# Y$ E
- laylist_act
6 b+ u, Y, t& B7 g' @ - layname
( D; @/ i4 b/ S3 m) ]% N" r, { - laynmlst
4 h* b# m3 w$ E$ g2 h7 g - layvalue
# X2 r' g$ D/ e" K( _$ ?. z' G8 g - linetype2 O9 }* n( H/ z8 H$ C# R( z
- list1
; i1 ^1 d' R3 T - longlist
8 H, K0 G+ o) F! h - lt-idx
5 S: I' D9 l* o4 D) O - ltabstr
& ]: u4 k0 l: g- n2 c' B m- a - ltedit_act
3 Z! Q4 S) V6 W. r& \% y - ltidx6 z9 c Q9 j1 O* w
- ltlist8 e3 ]2 f2 H0 l5 I4 o& X
- ltlist1( V* t a4 w: N; b" R
- ltlist_act
4 K# i5 ]& {( E+ z! h; {' f: |/ X - ltname+ _* x& m9 E/ ?) j! I% ^* [
- ltnmlst6 d8 z( J% A9 f4 s* y4 l& |
- ltvalue
$ T, o, z" V- T+ b; l* `2 F - ltype
6 r3 S z; U* x9 E& W6 [2 _5 i; @7 C - m
$ l& {$ k$ r1 i5 B( N; t: [" R - makelaylists- ~- N4 W9 U2 l
- makeltlists5 e3 K8 I3 h. J; t! I
- match-col
% g% Q2 X0 }$ d! M" I4 h8 r - ;match-etype ;function removed by rk$ i1 U, U9 q Q
- match-in
9 _7 _ \( b) s2 u3 J1 T - match-lay& w; h& l8 u; T3 t
- match-lt
0 H/ N- F* s" ]4 ]( r - match-lts
/ i4 h3 V/ ^+ d3 v3 L6 O& t @ - match-th
; S' ?( ]) V% |: r - match_col
% i( S4 e, E: j' P$ v- i. ^ - mdashlist) Q3 B( H' {. M3 S" F7 g" L0 ]" N
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
& W2 t" y3 H, X* y7 B& r - n% U& @8 J& ]! G7 F
- name
9 I* [9 ]. B9 H - ncolor
# _0 w% Q# O* k& O% Q - nlayer
4 ]7 h1 m3 s+ [ - nltype( [$ r4 l* ]0 Y+ r7 x! ^4 j
- nthickness, x2 y; c2 t% K2 V+ [
- off
+ }; `+ d* a7 A) X4 r& T - old-idx& o/ ?+ I/ Q6 B3 H* C" I
- olderr3 C3 [5 f7 S/ E& P+ Y L
- on4 o- n" |9 Q* a' o+ `2 o5 |
- onoff- M# f. ~3 D! m3 _3 I% }0 k9 L
- patlist
, w( m/ y! s4 m! I+ J5 D' e - pattern
@, [0 u1 M$ [! @! r; | L - PL_WIDTH_GETTER ;function added by rk
% f3 R2 X. |& j) V- }, t - POLY_SS ;var added by rk+ T( Y0 J- O' d1 f/ ~" }' d* n
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp% R5 F5 j! n2 o5 K0 _. ~, ?
- proplist
. w& c2 g/ h) @9 M I - reset-lay2 n @8 k' U% Q- M
- reset-lt1 L6 p! Z/ P- F; B) a! k
- s
( `1 u0 E8 e h) `0 h - selset
, A+ O( z @8 K+ k - set_col_tile
1 F+ F2 ]1 M7 O1 \! I5 Y - sortlist
- Q5 l1 C4 f+ S- m2 l& @ - ss
& r- z4 [9 X/ R7 N3 e) J) Z# B! N4 J - ss_in_current_space ;function add by rk.3 ?2 F3 a1 a- G) @
- ss-index
1 U" S* M O" z8 | - ss-length9 C% \. }4 z) ^( C& z
- ;ss_remove_locked ;function added and then removed by rk. R) ?- B8 q! |, `9 W. {0 x6 @
- sslen
" I8 {2 Y4 H% s% S - temp_color8 n8 f, q1 ]: w4 r8 n7 G# r
- templist
& Y( @% F n0 f4 L - test-main-ok
1 A, Z% W/ u' t - test-ok
- |% Y1 q( c' ~' [/ B( c$ |; ]* V - testidx% C" I* A4 K1 Z3 m4 b
- testlay1 m& X! ^0 R; Y
- th-value; _$ y3 N Q, c6 [
- thickness" v. c6 O5 G9 J8 ^+ b- m
- tile/ k I; T2 F t& {6 p! P: F
- tile_rect
, c, i: ]/ G7 Y+ H& w4 Q7 a: o0 ^ - tilemode
' {4 ~! B) ~. ^& L: |! V) T - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk5 C# m2 e# N' X) P7 b" \4 ^
- TXT_SS ;var added by rk
+ U% _, Q7 ~& \/ B% j8 j$ p - ;undo_init ;removed by rk.( x+ t4 p! o- K" @: [; a
- vi" P6 P% e4 X1 X7 L4 w
- vpf
( u& Q/ o- f7 H3 y# d- a& g - vpldata0 F# U, o0 ^* @4 N# t: I$ z
- vpn+ C9 J% u5 g4 Q5 H) r' @
- which_tiles, D; x; Y1 Q* @: x! q2 v+ [
- width; q) W6 K7 B9 p4 `
- x
) R) ^. D4 Z/ I" k - x1 ^6 }& `+ O- |/ k; p- p2 c
- x2
9 k" F* \: [3 o ~) ~ - xdlist
: A" E' ]& \2 w* [" R8 B5 Q - y3 w% f4 @5 h- L; J7 m2 B1 @, g( O
- y1
0 h5 H9 L3 ?/ `" ^ - y2
, R; \' P7 x! ^, L - )
0 Z6 V- J$ j% a3 @6 J4 D - # J! l! [( V2 }" ]6 j- ^
- (if (and (not init_bonus_error) 1 `2 y; X8 {8 d4 [
- (equal -1 (load "ac_bonus.lsp" -1)) 6 l" x, n( E# z( M3 z3 O. Y
- );and: }4 [6 C$ X S) T. z- V2 D0 H* n
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))" f! N; y5 _8 Q3 g* T
- );if" j u1 y; @2 V0 l
- (init_bonus_error (list
6 J: L; z% ?/ L2 K - (list "cmdecho" 0 8 @% E. Y8 I& a* ?3 y' E
- "highlight" 0% ]" c1 g6 X, o% Y
- "regenmode" 12 S |' y! Q. K- w: ~, U5 ?) }& M
- "ucsicon" 00 o, G+ ?1 e% p& l
- ) 2 F4 z ^4 j# ^
- T ;flag. True means use undo for error clean up.
9 f8 m/ \* W7 h- T/ ? - );list 2 Q$ U+ e( ~1 o( U
- );init_bonus_error/ \$ `% f8 \9 V; R0 t1 i: ]
- ) P& j& a( B4 v1 h
- (cond$ N7 }( N1 ^/ s: p9 v+ J
- ( (not (ai_notrans))) ; Not transparent?' T+ H/ R. |# i0 B$ U' i; @
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
, k4 [$ {6 |! V4 |9 e: l( @" D - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?0 ?9 l+ i' [. B1 x2 [/ N" s
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
- N# ?; G+ r+ l1 @% l5 M - (t 1 F. t- H0 ~6 m
- ;(ai_undo_push)
& @6 _, [( f: _" y( \9 {4 T- V. I - (ddchprop2_init) ; Everything's cool,
% @. y- T6 q# J2 L+ t - (call_chp2) ; so proceed!
+ {1 d4 s5 E- A - ;(ai_undo_pop); H2 R) f) H( `0 C
- )( O; z. }# `% h! f. d8 k/ u9 W/ C
- );cond close- P% O7 M- w; S( _
; a P, h% E6 p9 Q# C2 s/ \, t9 W- (restore_old_error)
$ [! y3 m0 ]. b# v. o - ! \4 M8 B( n9 t" t' E; M4 j0 M
- (princ)$ r$ ~# C4 G( p. Y5 l2 a! N
- );defun ddchprop2
6 o$ @/ V# J6 X& T. E0 P6 v8 j - . @1 ^6 T7 Z% `# Q* Z! }
- ;;;----------------------------------------------------------------------------
2 P% e7 J& N6 |* x - 1 Q2 L& ^0 o/ x4 n
- (princ " EXCHPROP loaded.")* D2 v% e& a* @ o, }- P1 W' C" }# {
- (princ)4 h& h" J4 q; P, A' _( C
- ! b' w' Y3 C1 l2 U& y6 R. ]6 x8 ]
- ;;;----------------------------------------------------------------------------, @7 h/ P; z. Z5 b1 [
- ;;;---------------------------------DDCOLOR_LSP--------------------------------9 `1 g& g% X" c4 x
- ;;;----------------------------------------------------------------------------
$ |# s* f/ s* g
7 N/ U- j4 F$ t# d( {7 M, s8 L' `- ; Next available MSG number is 24
3 |" M# L Z; U c% @3 R+ y, O3 b - ; MODULE_ID DDCOLOR_LSP_
k0 A. [' G2 o0 l9 D1 A9 A - ;;;
( [6 O, h( X1 a- s; J" R7 }% `4 E - ;;; ddcolor.lsp7 h% J$ o/ w4 ?5 [! v
- ;;;
: |; x7 e# C" t( ? - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
" c# w) r5 i9 i) g - ;;;2 J- ^$ j( z$ ^" Y3 ?
- ;;; Permission to use, copy, modify, and distribute this software
3 {7 e# J0 J/ K2 o2 A6 }. B - ;;; for any purpose and without fee is hereby granted, provided4 D7 W8 y7 ~" s/ h* }: \% t
- ;;; that the above copyright notice appears in all copies and- A ^3 n% m/ a7 G7 C4 X" g( G+ W4 a
- ;;; that both that copyright notice and the limited warranty and
* l ~7 ]) _& [6 N - ;;; restricted rights notice below appear in all supporting- g$ y. V- d; A: t6 q
- ;;; documentation., |! z9 W, Y$ j$ y8 V
- ;;;6 q- C p* b3 \3 j1 A5 l0 K
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
4 i& b/ m! `0 \+ M& u. Y% f6 ~7 W - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
: C% E: [8 a; S4 B - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.3 X) `% n) n. ~3 m' J" W+ F
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE9 ^* K( d6 [) Y, u: l, c5 ^
- ;;; UNINTERRUPTED OR ERROR FREE.+ k% G, c8 ^3 d: R
- ;;;' G4 |1 g* o2 d: w& M \% O
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
4 V% F: Q8 V5 a2 u2 e% s - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
4 O( h! o+ l# N - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ) J( r" t, @& L! a- X7 f
- ;;; (Rights in Technical Data and Computer Software), as applicable.
p) _3 n* @4 ?/ R# y - ;;;9 k% V, Z# ]6 v) F q3 ?
- ;;;.
+ b3 A6 X$ i& m ~4 |* o - ;;;* a2 y; l% P& I! }
- ;;;----------------------------------------------------------------------------
; }. [& e* f* u# ?+ b. ~ - ;;; DESCRIPTION1 \; y L4 |4 D9 x ^& `6 p+ S
- ;;; 4 L/ I0 R. W% r# g: L9 m
- ;;; Chromatic Pallete style color selection dialog.
1 k% n5 B7 i0 v) A/ U' D - ;;; V4 b' h F2 C0 K' r% f' a
- ;;; Globals:
) Q$ ?5 V5 k3 x K& I - ;;;
8 F( {( G* M( {) V' c - ;;; chroma_color - Integer color index. The last value selected. l5 b. h% Q1 A/ K6 |
- ;;; by the user in chroma dialog. It is not cleared or reset# q7 G7 ~. t" V5 r* H f/ Q0 Q
- ;;; by a cancel. Only used for communication between callback
/ n, }) J6 m; w _ - ;;; functions and the (chroma) funciton.
5 ~8 v) v$ d8 q, F" a - ;;;
# {& Q. j( U9 e4 Z; O) J - ;;; Depends on the definitions for the dialog provided in chroma.dcl.
' z, g3 g1 o' f! V, t: D* z6 E% f( a - ;;; 2 W; P. {0 N$ |1 N9 S; j
- ;;;
3 [% F# C* K9 F. V4 g) { - ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma 7 Y; R' F" y4 m' t) c f& V/ Q, K
- ;;; pallete style color selector. z$ t, y& y. u/ B! o( ?8 ?
- ;;;- i7 U+ G" M k" c' B& @
- ;;; ===========================================================================. A4 ~: P2 H3 v* t( C l
- ;;; ===================== load-time error checking ============================
$ O4 Y% j$ u; ?+ n - ;;;8 B' x: R) P6 N. q
- $ X% \3 h+ d0 o: n2 Q; x7 v
- (defun ai_abort (app msg)
7 N. ]' I6 ?- x- B - (defun *error* (s)2 q; g' N* H# a* @+ I* x3 b
- (if old_error (setq *error* old_error))5 h: b5 k; L" `0 I. W: C
- (princ)6 p- D/ Z1 Z# ~1 x+ x( V7 R
- )
7 V6 H* Q$ B/ h1 D& J' w# w2 [ - (if msg
: n5 v, Q" f6 D - (alert (strcat " Application error: "
( \# f- z5 s( b3 t - app
) A& e2 f( W3 o ] - " \n\n "3 V! a/ \, C* Y9 O8 v# x7 F( t
- msg
0 B( ^( {# J, W- n/ z5 D - " \n"/ H9 l: \! h+ ]1 V T$ S6 i) P
- )
l" u1 j' u+ r/ g: g& V - )
1 ^" s+ y8 W! {: z3 Z% Y. V - ) V$ F! r [* q1 I
- (exit)* H6 R' X" l1 P
- )
( G4 E; S& Q. }& W! ?8 V6 B$ Z - ) x9 z/ P8 u% B. p$ _7 E
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,. m& q6 [+ i& O) x# C
- ;;; and then try to load it.
6 |4 S' Z6 n" w) e7 j4 u2 {0 I* u - ;;;
& Y" ?/ ~% I. `6 g5 R - ;;; If it can't be found or it can't be loaded, then abort the; V3 d6 ~, _% C& X$ J4 H
- ;;; loading of this file immediately, preserving the (autoload)+ b, _; a1 n. I- j5 j, V3 O
- ;;; stub function.
; @$ a" w' C( o. X - % F4 g. z9 M7 `1 x. R& n) U
- (cond
9 H" `7 E6 B. \/ x - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.& `+ V) h& [4 H8 E, \) ~
) s# b& I. p1 R, U& O/ t% Z7 w- ( (not (findfile "ai_utils.lsp")) ; find it
2 V, O Y: j }3 J* E - (ai_abort "DDCOLOR"
k" C0 m4 z$ V" { - (strcat "Can't locate file AI_UTILS.LSP."7 v( d7 \/ q/ y8 a& ~$ v* X' @
- "\n Check support directory.")))) F$ e) C; ^, \, P) z
* O7 z4 ^5 e+ N- ( (eq "failed" (load "ai_utils" "failed")) ; load it8 g( w3 h0 F! L6 K
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
9 O* {1 n' K Z; L4 H- o; P - )' g/ d5 z0 A, b, s) q; b
- / c2 {6 O7 C0 \* H! m" J4 F
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP# m! Q# w0 V9 X5 y/ l4 j1 r0 l! h- X
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
# u, b* z! N" z! D) j, |' j - ) ; ai_abort's alert box dialog.
8 j7 D ^" ~! R6 E
* l- j( z! U- e( y- ;;; ==================== end load-time operations ===========================" t# [2 R8 r3 y" J" `( _
8 d" q% [4 ^' W/ r- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
) Y: R* y- W- u# T8 \/ _ -
# u% f! F) H; X - ;; Main Color function, called by setup code.
\; ?8 K, b; b0 F: h/ G - (defun ddcolor_main()
1 X! m$ I! n3 v9 I1 n% a - " E+ k( v; R: |" D
- (graphscr)
1 R! @% M4 g' }" p: b% b/ v - # O+ M, Z) X3 ~% M; ~8 q+ O
- ;; Get the color of the current layer, for possible BYLAYER color swatch.2 O! S' ?1 G& {) }; b0 E- _' c
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))+ S7 K* w- O0 h7 J
- 8 s1 G7 P2 u, H* V8 I1 ]
- ;; Call the dialog here...
: Z& D. w3 Y+ w G6 ~0 A( P - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
. F5 k& G Z# N; k$ G" }
) `# b1 _3 V: K- u8 o( J- (if clr% `5 C/ a9 \ E, k9 l
- (setvar "CECOLOR" (citocs clr)))+ p: q$ x9 o/ g( q. i% P2 L
- )0 \3 Q) _! |: ^) G- D! m; e0 u: c& G& {
4 {2 H( w& C: U7 L- ;;;7 c( q& _7 N8 |4 g
- ;;; CSTOCI -- Color string to color index
4 i% D h- Z- V% p - ;;; Convert an arbitrary case string into a color index.
( e# o8 R9 t9 j9 ]6 a - ;;; Returns nil if string is not a valid color.% h; G9 O5 b# n6 a/ T! k
- ;;;; C9 j% G' b( R4 O6 U$ B
- (defun cstoci (str)
) k; s, w6 p+ \' o" r0 C. v - (setq str (strcase str))/ m6 l; r, s2 z' b/ @* q. Y
- (cond1 U7 h& n" K6 x" x9 M u1 c
- ((= str "RED") 1)
! u6 N) z4 \. e' @ - ((= str "YELLOW") 2)1 y5 S* [; {2 G/ ^$ o$ }& c8 _
- ((= str "GREEN") 3)
s8 o1 g3 k7 H+ G! J' T - ((= str "CYAN") 4)% ?( T4 H( G" m+ x
- ((= str "BLUE") 5)
& j d4 X5 k4 i4 Q+ ~! j3 q% X* S% A - ((= str "MAGENTA") 6)6 F1 u! G3 \* k" w. F4 M
- ((= str "WHITE") 7)7 j7 L, R# G7 }0 e
- ((= str "BYLAYER") 256). m5 b- ~; e3 E) Z: a$ ^" {0 U# D
- ((= str "BYBLOCK") 0)
+ V3 `3 k* I# } - ((= str "BY LAYER") 256)- g; \# y3 |6 e/ Z. i$ ]
- ((= str "BY BLOCK") 0)
" `& l$ D" e: @' j - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))+ h2 g/ j) ?& X
- (nil))
; o5 ~8 {& _) L6 [ - )
' U: P) p* z# k/ X5 b - " F, L1 m! T& y9 l. o
- 9 T' X. y" ]5 @% L3 D0 @3 ?" w) D
- ;;;
( f: h( Y5 i2 l - ;;; CITOCS -- Convert color index into standard color name.
# Z% ^. L' y3 E' ^5 G: s2 x - ;;; Will return the standard and logical color names as text6 g8 S! @! y2 \
- ;;; strings. Returns nil for out-of-range color indicies.' R5 a$ [3 f6 m$ Q7 T \* q
- ;;;
# l( B, G; U0 E% @/ E6 i - (defun citocs(i). P2 c2 ]* M8 V; \7 J
- (cond
) a% J) \& S6 L( ?5 J: Z5 }# y) m - ((= i 0) "BYBLOCK")
2 Z q/ A; b& r ]' o, s. t - ((= i 1) "red")$ w4 R% d8 b1 K8 a# @
- ((= i 2) "yellow")
' I5 y/ Q, u+ d0 p - ((= i 3) "green")/ n3 x' c. ] R/ `/ q& A3 d3 J
- ((= i 4) "cyan")
- R* F7 t( ?! y3 \& X4 q8 B - ((= i 5) "blue"), l: w+ g- O9 V
- ((= i 6) "magenta")
& H, Q# F5 @ ]; [, @4 ^ - ((= i 7) "white"): f. d }, P! a' f) n; X& N; V
- ((= i 256) "BYLAYER")7 Z5 k" L4 q. s$ Q6 b
- ((and (< 0 i) (> 256 i)) (itoa i))3 r% G$ }/ _, ]. R
- (nil))5 k$ j! w1 g8 g! p4 v9 G- u5 l
- )+ Q3 B0 [0 ~4 z% N e$ ^7 }
- ; x/ H( C, s0 e7 u; d9 \
- ;; Start of ddcolor! I% ?; B8 I+ X' N; Y
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho& ]1 g, e" P. e7 v
- old_error *error* ; save current error function
: w z; U# H1 b0 m! r - *error* ai_error ; new error function1 \/ i! o7 S3 K% ~
- )6 A" U h" i/ O4 O: P3 F5 G
0 m5 B3 c0 T! d( u( ~2 D" o4 n- (setvar "cmdecho" 0)* b0 d! u. @8 F" H5 z
- D( E, B+ [8 @4 W
- (cond
/ _* O2 N t) X( j& L - ( (not (ai_trans))) ; transparent OK
& ~+ K/ H- `/ O' J! U( B- K! N - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
* A' P/ Z$ ^$ c y - 0 @5 v, w+ d% O: D$ u
- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
" D/ ^& ]+ P, q0 W# y; W - (/= 8 (logand 8 (getvar "cmdactive"))), Z( S# a1 l8 L8 L
- )6 c" g8 a8 |( n8 |1 n3 G
- (ai_undo_push)
" P, j4 v4 R* q - )
' S+ k$ x& i& y3 `4 N- b
& ?, R" A, s4 M- (ddcolor_main) ; proceed!1 ~# ?, y# C" V) ^% c( f$ D
: ~# A* P% L" a5 S: s: v; Y' ?- (if (and (/= 1 (logand 1 (getvar "cmdactive"))) y0 _" `! s4 R* v+ _6 v3 T# r
- (/= 8 (logand 8 (getvar "cmdactive")))' o" B4 k6 M% ?, m! w0 o
- )0 r" G/ F \/ J' m6 s: N
- (ai_undo_pop)( h' `9 L% p! {+ |) E' u
- )
5 j2 g; i ]4 k5 x! Z - )
( b) V" x& i5 o0 Q6 S2 K! Q* z - )7 W* P' o9 C g9 U7 o$ J
- 5 [) K1 H6 V8 k! ~4 J
- (setq *error* old_error)
) O7 U: |& S5 h4 H4 ?! ` - (setvar "cmdecho" old_cmd)& X9 f U( }# @1 V6 z
- (princ)! ^$ h& b2 ~8 V, w W9 g$ V# \
& U' Y' @8 h$ v! h) ~- )
, n' {* p4 E a: m - & v! E, l) U/ M9 a2 V
- ;;;----------------------------------------------------------------------------: h) E( W! Y8 X! w% _" w! _7 X
1 n4 V: d6 S6 d9 H0 ?- (princ " DDCOLOR loaded. ")
! Z1 e6 d T6 @& A2 e0 i - (princ)
6 B3 U- N: Q- H8 M - N, v' W9 _6 [5 W- m
- ;;;--------------------------------------------------------------------------;
3 Q+ B! J5 Q# k - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;0 Z0 `" j( e @. O, B: b7 m
- ;;;--------------------------------------------------------------------------;
/ z' d1 }% V! w9 e - ;;; ssx.lsp
+ }7 q# [; k m7 T - ;;; Copyright (C) 1990 by Autodesk, Inc.: m5 x8 V4 P8 n+ c! k! K
- ;;; Copyright (C) 1991 by Control Systems, Inc.
. y0 ^% K- F9 Y2 P2 B - ;;;
# X' l' h/ ? K7 b5 i8 V - ;;; Permission to use, copy, modify, and distribute this software and its, V9 x( _4 s$ ^! V* n7 d( ~
- ;;; documentation for any purpose and without fee is hereby granted.7 R5 W* B- g W6 J; r9 \
- ;;;$ m' z. Q/ B, k4 u% V0 l
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.; R9 c. O1 S9 |6 q/ Q* w3 i0 n
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF$ e0 s% f( p, b+ X# F. x F, L+ f
- ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
0 Q" A2 ~$ S) S, L# \2 I) V - ;;;
% O+ c; o5 m8 U( h% x9 o, I6 y - ;;; Larry Knott Version 2.0 7/18/889 d8 [- e8 V7 ]
- ;;; Carl Bethea & Jan S. Yoder Version 3.0
, @' [! L6 H) O2 |0 ^5 c/ d/ ~ - ;;; Enhancements to (ssx).
3 ]. M8 B! Z, J2 f8 y4 ^ - ;;; 15 March 1990 + R1 F8 G% d" _8 L- _( ?% |
- ;;;
$ n' h/ m+ W% {5 O - ;;; ARTIST Software, Inc Version 4.0 December 1991
; Q) m4 I# i' r! ^ - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,# J b [; d7 f9 ?/ c
- ;;; use Flexicon menus
# ?$ [0 H, i4 n) J - ;;;9 C2 f E& O- S0 y1 u" A" D% D# x
- ;;;--------------------------------------------------------------------------;
8 E, J+ F, E4 ^3 b! q; k - ;;; DESCRIPTION6 h! ]/ z- M" n& D8 s
- ;;; SSX.LSP 4 H; O! f7 Y% r- b7 F, ?9 N
- ;;;
( _! Y+ u9 ]" H$ }, L - ;;; "(SSX)" - Easy SSGET filter routine.
3 Y3 M! A8 Q- N- u. W8 B" ^" D - ;;; 6 J$ s. D2 l# W% v* b4 y" l& ~+ G8 F
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt $ D! I* E/ M r
- ;;; to create a "previous" selection set or type "(SSX)" in response to
: I8 v+ }9 ]' |2 I9 A" f8 u - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add 4 W t5 L- g5 A9 B+ @
- ;;; entities and "(R)" to remove entities from a selection set during 4 s" Q4 u0 h0 [' V3 h# i/ P
- ;;; object selection. More than one filter criteria can be used at a
3 N8 o" [6 v8 s/ | - ;;; time.
8 m& {* q3 E; w* U9 F& s5 a - ;;; : p* e) Q4 A/ N) `% w- i
- ;;; SSX returns a selection set either exactly like a selected; w$ C* {1 i: A0 q7 K, p
- ;;; entity or, by adjusting the filter list, similar to it.
3 g, A4 d' `0 ?1 _& M9 B - ;;;
Y* O4 g% U) @+ d# S - ;;; The initial prompt is this:! ~9 ^" p ?3 H" {- x. Z
- ;;;
9 s- [1 e! |6 H - ;;; Command: ssx. a0 b; r0 R1 s) [
- ;;; Select object/<None>: (RETURN)/ j2 |5 u+ }/ v& D
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
7 S* }0 }6 R+ V0 N+ R. i7 X# p - ;;;
: R, g2 t: C( k7 Y - ;;; Pressing RETURN at the initial prompt gives you a null selection 4 i$ \* h3 p- [, O
- ;;; mechanism just as (ssx) did in Release 10, but you may select an / p7 w+ l) K5 c6 d5 H- `. o
- ;;; entity if you desire. If you do so, then the list of valid types 5 m% d: a7 ?1 D1 E
- ;;; allowed by (ssget "x") are presented on the command line.
+ r7 N/ P: O% [, _* |# L - ;;;
1 p1 y, }! n3 @; d" `+ c - ;;; Select object/<None>: (a LINE selected)9 o8 e3 n4 K u8 W- H2 |& p0 j
- ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
7 Y$ `, b/ ]8 M8 h( D7 C X - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
9 j3 l( I/ q2 s% h# _% a - ;;; $ `8 E8 O; I& k. M
- ;;; At this point any of these filters may be removed by selecting the + E( w7 K6 d5 j: Q( w6 Y
- ;;; option keyword, then pressing RETURN.
) J6 Q6 @- ?5 F# D$ Z _1 G: t - ;;;
9 A# v& I6 @- N: ]( ?, ^' f - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
0 L8 o/ P6 g) I3 z8 j/ k& @+ j - ;;; 1 P" U0 z* k, N5 {" c* u* R# z' ^
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
2 y7 O! ?! O1 ~8 E - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
6 t! {7 H6 H) o6 |# a5 t2 l( m - ;;; 4 ?. V# g; F: E! v9 v
- ;;; If an item exists in the filter list and you elect to add a new item, D5 T& k( H6 h" j: u7 _5 N
- ;;; the old value is overwritten by the new value, as you can have only
+ z3 U" m' c. r8 }: H/ H( Z4 M' z2 h: b - ;;; one of each type in a single (ssget "x") call.
1 {1 P8 ~9 w+ U* x, y' S - ;;;& E7 X* w" e* L1 e. Y
- ;;;--------------------------------------------------------------------------;
& P( }% E/ C$ p; d$ x% T9 I - ;;;
# m9 n. `5 W6 K) `2 u4 R - ;;; Find the dotted pairs that are valid filters for ssget8 H& l8 }4 H K* F( v
- ;;; in entity named "ent".
( X# s3 _9 }! F4 M! W1 v! Q - ;;;
! K5 ]% z1 u# v) @( [ - ;;; ssx_fe == SSX_Find_Entity
! y% n) h- N4 p5 z- T" D - ;;;* v0 h& J0 S) t# |% ~8 j% c
- (defun ssx_fe (/ x data fltr ent)4 I% a3 ^4 l7 M# f
- (if (and (= flexvar 1)(/= t2 "Pick"))
1 ~" G; d2 Z, q" L2 X P; f# C - (setq ent nil)4 n1 g5 V; h/ K% ?6 E
- (setq ent (car (entsel "\nSelect object/<None>: ")))0 R6 m9 C& _, e* [7 B* |
- )
% a+ V2 a/ q& a" r# h" g: ?3 E: U - (if ent
! ?0 l; V# x$ Z. u* C+ _; D: ^ - (progn
& x7 ?8 i9 S1 b4 v - (setq data (entget ent))
" ^8 S+ l' p6 s. u% i3 K+ E - (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
' T5 E* i. W' g$ J- n - (if (assoc x data)
/ Q" v# k: v4 o! j& ]5 p - (setq fltr
/ u5 d' L% S" C7 N6 z - (cons (assoc x data) fltr)
- n/ A+ g( B% Z/ ]/ J - )7 T$ X! W8 P5 V8 ]$ ` d+ C
- )
% m( q, A3 B! Q# j2 f, p - ) 9 w. ?% m; N: b% l* _4 Y' |4 ]- \1 r7 X
- (reverse fltr)
8 Z- [* V6 Z2 C* z9 z( S - )! Z' ?7 G: [/ A; b4 N- `' q
- )
4 j) O% K; L4 [6 R - ); G6 d, r3 w" K# T
- ;;;
, ?9 l4 f6 b/ W3 X! n- F3 ] - ;;; Remove "element" from "alist".
; A, {; j( a% ` - ;;;7 z3 O& \. F4 v) z9 j
- ;;; ssx_re == SSX_Remove_Element
, {+ y5 p# g1 Y5 y - ;;;
) B6 U/ z0 _: n - (defun ssx_re (element alist)% M' z2 R! @* H) L1 w3 B0 G
- (append# C9 p; L$ Z# L: o
- (reverse (cdr (member element (reverse alist))))
1 Q% N& ?& i% f3 ? - (cdr (member element alist)) - ?7 _- C$ n( M
- )7 e {3 N8 a1 q& [; v |; ^
- )
% m4 {9 P; U$ W% X" y - ;;;
9 p% B2 D! W3 I6 e! W; D - ;;; INTERNAL ERROR HANDLER 0 y9 V. Z4 e* z4 r" r& l
- ;;;7 I8 G5 W- a9 K! U0 Y' T0 [
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs5 x" b" ]( ^: ?) o) I& T: {7 }( M& D+ E
- ; while this command is active...
" R) K8 L4 a+ Z% w: q - (if (/= s "Function cancelled"), b! M" \, o2 V. N( G( a
- (princ (strcat "\nError: " s))4 s# r0 `) _- ]% K
- ) v% j( m4 y U0 W1 o
- (if olderr (setq *error* olderr)) ; Restore old *error* handler
[7 V( z2 y* ^; ~' v7 a - (setq flexvar 0)
, |# h0 S# T+ V6 F) D% y0 Q; A - (princ)/ d. F/ j) d \7 R) d. |
- )
7 n. n* P0 e' o( K; _% G - ;;;
. Z) w" M7 k( D. \/ J - ;;; Flexicon call routine
8 A* N; y8 I) o( I7 } - ;;;) Z1 L) W7 Y. Z, N( T. t
- (defun flexmnu (a)* _! g) M8 c z9 E) R: R( n6 F+ m
- (if (= flexvar 1); l" S4 t0 \1 p- v. s; `, d
- (command "FLEXICON" (strcat "FLEX" a))
0 b% K# t2 T* t# {7 {, n - )
) O" @5 F& y- L1 [% R - )8 L8 e: k( Q: Q/ q
f) g9 I9 `# V0 R6 _2 f% e- ;;; / b# c7 ^' y' B" P; f8 ^# F
- ;;; Get the filtered sel-set.' Z" W/ _# h& w
- ;;;# D6 J2 T( }4 M% E8 r
- ;;;9 \+ V3 J( t# [; m0 `
- (defun ssx (/ olderr)
$ \; T D$ N( n' ?4 u! z1 m - (gc) ; close any sel-sets , ~2 a2 A/ W! T3 ?- C! Y, Z
- (setq olderr *error*
3 P0 c: x; O) B. _ - *error* ssx_er 1 P; w# E4 O) {: v
- )
X% T* g# n6 G* D1 f' S - (setq fltr (ssx_fe)) + [/ c( S; [- X
- (ssx_gf fltr) 0 n& F; k; L! u( A
- (if (= flexvar 1)9 g& J& H' J: ~# u6 V% @( q
- (progn. r' E! Z7 @0 w" B. t6 y* _
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
) r! _( `* \* m8 f; j' [ - (flexmnu "EDIT")
7 P( _2 n7 [% K Y, f. w - )
* P4 I1 a4 a8 b3 g - (command "p")
' B' {: X: g) P3 o* x5 w' p - )
) c( x1 s* \% C6 I" b& H5 A - (princ)* a0 c# a/ ~2 R* d% _0 J! T: d
- )
5 O* O5 o1 [- I0 E) _5 J% m8 Q - ;;;" K. c4 j: n$ I+ h1 s9 v
- ;;; Build the filter list up by picking, selecting an item to add,
* C) |6 S+ r2 y. a6 r+ h - ;;; or remove an item from the list by selecting it and pressing RETURN.0 m& l! _! ^& a+ L) t
- ;;;0 I7 x- N8 Z% j q; u* h
- ;;; ssx_gf == SSX_Get_Filters
% K8 O3 a% `; ]! C- L i0 I - ;;;
9 F7 |: p0 T6 E+ m2 u - (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
# F0 I& g/ `4 h% Z) s+ f - (while & @2 D* P8 O# @1 N" u
- (progn$ K! c, H" V5 \6 D
- (flexmnu "SSX")
# T* `$ A+ t: I; Y! w, m8 a: N - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))* L- z5 z# I6 x2 A7 X' P
- (initget
8 u! L9 D- }. T8 W/ f. \ - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")+ `! a0 N+ `" b- |' ?
- (setq t1 (getkword (strcat7 g& i+ k9 v; o1 I
- "\n>>Block name/Color/Entity/Flag/"
, L- m0 X, P3 K+ R! A - "LAyer/LType/Pick/Style/Thickness/Vector: "))) ) L% l' ~9 ], K8 t- O; X1 t
- )+ V6 w9 t% I- W/ }) v: b' R" l" Q7 e
- (setq t2
@/ f4 C$ [' n - (cond
* a5 x1 r, M4 D! e3 g& v$ [ - ((eq t1 "Block") 2) ((eq t1 "Color") 62)
9 A! q$ J; A( z- E - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
" A/ g; c$ C& u2 t. _, e' t - ((eq t1 "LType") 6) ((eq t1 "Style") 7): }5 w: g5 ?9 G# f4 e% ?1 k
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
( L e6 E- z9 H3 j) p - ((eq t1 "Vector") 210)
8 H3 |+ d. d- C. i2 F, o$ l - (T t1)
& z" l5 Y6 K3 H" Y# c3 Q# L( d8 ? - )
' |& n. ~& h* }2 ` - )4 n: Y9 ^. A. b( k V& p
- (setq t3
q# p/ }" z7 O3 V - (cond
K! u. O( P# n* u - ((= t2 2)# Q" Y* c! j) z4 N+ ?# v
- (if (= flexvar gtads 1)
. s) d# k m/ Z - (progn
2 _8 t* J6 z( f( D! E! W - (prompt "\n>>Block name to add/<RETURN to remove>: "), |% l; ?; v- b. F0 S4 g
- (gttable "BLOCK")1 N9 q: E! i2 O% O2 S: L2 G
- )3 u& O/ U) _! M5 z6 I
- (getstring "\n>>Block name to add/<RETURN to remove>: ")
( o, D1 ^3 {/ c# w% F: F+ ^ - ). j" Q, V5 H& B* b
- )
9 m/ ~ J" h- N/ V - ((= t2 62) (initget 4 "?")
' {9 h% C! ]! y: w) i8 h8 D - (cond
2 k& {; Z9 q0 g& p8 u { - ((or (eq (setq t3 (getint
" R) {- r2 o+ C& L( z( X: j7 { - "\n>>Color number to add/?/<RETURN to remove>: ")) "?") * S: {3 k7 x4 Q; d k$ s& y9 m
- (> t3 256))7 L6 i2 D, a! k6 i' v" t
- (ssx_pc) ; Print color values.
8 \# s) \5 t; t. H- d) R. g - nil. [: `; T; e, p5 e2 N, A
- )- K+ b0 c: y! f0 O# _1 t O. k+ n9 A
- (T
9 h: v' q$ _1 k7 B: `, { - t3 ; Return t3.
2 H: F- v7 d" [$ z) o - )
1 m' L. b% e/ |8 ]( n - )
, B9 b$ ]% c& |1 t- J - )
5 Y/ E# }9 c! ~4 ~ - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
" R0 I2 d; U4 E8 a- K$ O1 Q# Z - ((= t2 8)
0 r9 y% c* v$ V/ x% @- a - (if (= flexvar gtads 1)4 k; [7 ~# S2 E; @. w7 r
- (progn
# q* d" M% [( u( P - (prompt "\n>>Layer name to add/<RETURN to remove>: ")4 b' T0 D9 F. E
- (gttable "LAYER")
; W+ i6 u& x% Y( i: }8 w - )4 Z/ U% J) F( b1 @( X
- (getstring "\n>>Layer name to add/<RETURN to remove>: ")
. a N% R- Z2 ^: Z$ M4 L - )( Z" J+ a8 V: A ?$ q$ \" p2 j9 @* U
- )
% _6 {$ ? M0 h$ N4 S$ G - ((= t2 6) 2 }. F5 z$ O! [ j/ u Y6 g! `
- (if (= flexvar gtads 1)
3 s ]5 G/ T# P, N! Q) c/ V6 b - (progn
6 F8 R+ P3 e5 @9 E$ k" `- @5 J# J - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
" o# z. H4 z2 S. ^ - (gttable "LTYPE")1 _* r/ I' c s- W+ }
- )& S! H5 }0 v& A% _: k& |1 Y$ Y2 U
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")- v4 K! \) V$ j+ t0 q
- )
/ O4 W. d+ l4 F2 J! D) E+ e - )3 o. ^5 a9 ?6 B6 t% U' N
- ((= t2 7) 3 c+ S" l# F6 }+ Q0 ]
- (if (= flexvar gtads 1)
) ]6 m% }; p( Z F4 V1 t - (progn
, i+ w% U# V1 Q. d$ F7 D - (prompt "\n>>Text style name to add/<RETURN to remove>: ")6 d; ?* N/ h8 E/ x' h
- (gttable "STYLE")% M- b7 f0 M2 T- K( ?
- ): k! ]2 D7 o3 f
- (getstring "\n>>Text style name to add/<RETURN to remove>: ") M7 P- M3 b0 I* y% M& A
- ), b5 {/ l0 ^ T# `
- )* C, a2 [+ f- w$ H; p( F; H
- ((= t2 39)
" y8 X0 q- K0 T, l+ L - (prompt "\n>>Thickness to add/<RETURN to remove>: ")+ q1 }4 ?# g- w2 y
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))! S. X/ b* N* u+ L, D8 m7 A
- )* V0 m! P0 p# G, p- L5 }
- ((= t2 66) (if (assoc 66 f1) nil 1)), q3 c, x ]: D1 ^
- ((= t2 210)
5 H' T: O6 |, h( [4 _9 K - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: "), c2 H9 G8 h3 C+ d
- )
% {& |3 O9 k M; y2 a- U. D3 Q/ { - (T nil)' d7 ~0 Z: F* |- d" F/ _1 a9 ^
- )! Q* H* G. J4 O* f9 ?% S- K; Y: o
- )+ f3 A7 ~1 o. K9 a( _6 `
- (cond! o. q4 f6 P# F8 {8 P* i M) Q* }
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
k5 H8 h7 i% p; d j - ((and f1 (assoc t2 f1)) ; already in the list/ `. L* z& R5 H% `! ?, H
- (if (and t3 (/= t3 "")) ~* {8 U5 m0 F' ?, n2 @
- ;; Replace with a new value...
3 D) M. p3 s" @5 M j - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
3 e/ _8 _6 J$ i6 f - ;; Remove it from filter list.... s$ w6 L1 J* b& q6 h
- (setq f1 (ssx_re (assoc t2 f1) f1)) % r" N- H; `% G* {5 T* x6 s
- )
/ s$ B2 q" y. w* r - )9 N3 G" {9 ^3 e4 ~3 l
- ((and t3 (/= t3 ""))+ r W. ?6 X V6 u% Q
- (setq f1 (cons (cons t2 t3) f1))
2 q2 d5 S. N; Z k7 }$ r+ i. j - )
3 J1 q1 f2 h. s! C - (T nil)
: `2 X% i' s, b - )
. k1 w5 @% T" N8 ^& b$ E6 n' R - )7 B6 L- q8 D* \1 g, I; o; Z
- (if f1 (setq f2 (ssget "x" f1)))
$ V2 [" @7 ^# l8 Y) i - (setq *error* olderr)0 k* \4 F) P+ \! ?. }* K$ k
- (if (and f1 f2)
" D2 q9 y1 O6 m2 I( v7 z# D; Y) X6 @' \+ C - (progn/ O$ T8 [/ O8 W0 m
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))
2 P) `; B5 I- n) [$ L' z* g" n9 o - f2
* e: g% C" P2 ^: [4 a - ) E9 ~1 e# b5 g" o- Q& K) @, \
- (progn (princ "\n0 found.") (prin1))
- U) ~0 s# i) Q! u5 d' d9 J - )
. A9 i$ P+ A" \ - )6 C& U9 u8 U$ o C8 b8 F# X
- ;;;( O' A; w7 R+ Y6 _. v* R8 U: i# N
- ;;; Print the standard color assignments., l9 i6 B! m+ G$ o6 X X1 M3 u
- ;;;
5 r1 V! m! K9 e* ? - ;;;
7 e1 L5 A6 ]" E! j4 F - (defun ssx_pc ()
. T) T( N& F C - (if textpage (textpage) (textscr))( p# @! s1 O/ l0 O$ Y7 W
- (princ "\n ")
' O- B! `! {. G$ z2 B9 m - (princ "\n Color number | Standard meaning ")
& y% |" e4 P" n% A9 U; ~ - (princ "\n ________________|____________________")
2 U8 A- f+ w- s4 S5 o. q( S, D - (princ "\n | ")
1 k5 U$ k7 `0 v7 Q9 V. z+ s. V: I3 E - (princ "\n 0 | <BYBLOCK> ")$ L, j8 a; \0 i& F
- (princ "\n 1 | Red ")& J3 c1 ]2 L4 q- q
- (princ "\n 2 | Yellow ")* s J! V7 _8 r! O
- (princ "\n 3 | Green ")
2 g. a- L' H' A! h - (princ "\n 4 | Cyan ")
7 O5 {1 L. Y% |0 f+ S - (princ "\n 5 | Blue ")
$ f& }8 T7 Z t3 |% L5 [& b' p - (princ "\n 6 | Magenta "); b1 `. r K/ `2 T! w6 f6 t
- (princ "\n 7 | White ")
5 J- L: h3 Y, p+ l( G% | - (princ "\n 8...255 | -Varies- ") U+ p2 G: _6 g9 u- I Z
- (princ "\n 256 | <BYLAYER> ")
2 p0 l* B( s k X6 k - (princ "\n \n\n\n")5 m7 b, w) b+ i- Y* K
- )
5 r3 x, q$ y+ ]: Z; f% b - ;;;
Z. f& G) T6 q4 j4 G - ;;; C: function definition.0 q9 i1 {( ]) {; k" y5 V
- ;;;- ]* A3 P5 W9 N6 ~: J( Q! M
- (defun c:ssx () (ssx)(princ))
2 ? ]& [- V8 | - (princ "\n\tType \"ssx\" at a Command: prompt or ")& J1 x1 k% k) f+ U
- (princ "\n\t(ssx) at any object selection prompt. ") G. f1 v. a: V. B1 t6 p5 x% ]
- (princ)
" c! ?) p* \! N$ _# Q& m
# a/ ?$ ~6 l: z. O; {; ~/ l+ @- ;;;--------------------------------------------------------------------------;# t# Y# P" l9 q( ?% o0 o/ x
- ;;;--------------------------------------------------------------------------;# W0 F* V# @% G# T8 @
- ;;;--------------------------------------------------------------------------;& G0 Y3 A$ _6 Q: t. U
- (defun S::STARTUP (): H! A N% X, b2 M0 P1 h+ o
- (setvar "cmdecho" 0)
( ~+ U. d8 D2 I+ y. r" Z# { - (setvar "cmdecho" 1)
9 F3 f* }9 ? S, @1 N$ m4 E - (setvar "LTSCALE" 10)
4 `$ b$ v" I* z9 h
' x& k8 {9 w2 O! s- ;(command "_load" "chenKH.fas")
+ [$ u5 d; c2 ~: a4 w - ;(command "_load" "ctcot.fas")
' n+ ?3 Y- a3 R* x9 z8 a& K - ;(command "_load" "damdoc.fas")+ j) j* s/ {% A; ^" b, a
- ;(command "_load" "ghichu.fas")2 ?! E* `! _# E' Z7 N* {
- ;(command "_load" "hamtutao.lsp")
6 }9 B+ T* g% M8 K+ d1 F6 ^ - ;(command "_load" "KHOITAO.fas")8 w0 E* m& O0 q2 R+ B+ K5 P$ c
- ;(command "_load" "KHthep.fas")
5 P( G; f- D& ]. i: s5 Y - ;(command "_load" "mbmong.dcl")
X! E% [7 V6 A- D, u- B+ N - ;(command "_load" "mbmong.fas")3 D, Q( W. D$ _
- ;(command "_load" "mccot.fas")
+ S% X. c( f9 Z+ l8 }( ~ P: N: @' ] - ;(command "_load" "mcdam.fas")5 M' i; x# w8 S3 N# x
- ;(command "_load" "mcmong1.dcl")
6 u6 v/ j- T+ k1 N6 o - ;(command "_load" "mcmong1.fas")
& z- U+ X4 ]' y* s$ n4 H - ;(command "_load" "mcmong2.dcl")
: \. ]5 t% K, W1 ~+ V: g - ;(command "_load" "mcmong2.fas")2 K. r e- w2 U6 ~! D5 ?( X
- ;(command "_load" "mcmong3.dcl")2 ?% q1 j- C* E( I. \/ Y/ d
- ;(command "_load" "mcmong3.fas")
% A' Q& d7 H: b1 N& @! e5 v* N - ;(command "_load" "mcsan.fas")
. E4 Z" Z3 G* h - ;(command "_load" "thepdai.fas")% d# z$ {+ u Z* [- Z% i9 G
- ;(command "_load" "thepdoc.fas")
! d: Q/ D2 ^4 a - ;(command "_load" "thepmb.fas")
% p1 b& u/ O- P$ y - ;(command "_load" "thepphbo.fas")
+ R/ Z" Y4 ]4 N- Q7 i - (command "_script" "thongso.scr")9 l0 t/ E1 ^: U) k
- ;(command "_load" "thongso1.dcl")) E0 p* d3 v! l% N1 W/ g
- ;(command "_load" "thongso1.fas")
6 [0 Y4 D/ i5 Z, I4 U - ;(command "_load" "thongso2.dcl")+ H3 F2 H' g' m. N& h) L) e5 Q
- ;(command "_load" "thongso2.fas")
1 S2 V. q& x9 C1 y# u - ;(command "_load" "tietdien.fas")
$ T# d7 p/ M8 f' O - ;(command "_load" "vehan.fas")- l- F4 \* J% {$ }2 o) B# c. t: G
- (command "_load" "phamDuy782006_TKT.lsp")
8 ~& Y; y+ O% J - (command "_load" "phamduy782006ganhtd.lsp")
5 D" J8 q# ~9 V7 v9 A8 N3 l - (command "_load" "phamduy782006ganhtds.lsp")' k/ S* \" X; Q
- (command "_load" "phamduy782006htd.dcl")
6 W6 C; |$ h2 b7 W' [7 i' |$ s - (princ)
}0 d; R- }; n$ G - ); f& C5 d1 X, V+ ?$ Y, t! ~: O; P
- 6 c8 o @ @3 H5 t8 ]
- ;; Silent load.
3 ?8 \5 O/ D1 B% ]: x0 d - (princ)
$ S- v9 P9 |: @" g9 }* \
% X2 v' @. L4 t( t- + s- b3 M; {7 B7 V/ H" F
- ;; Silent load for the Express Tools.
. I: k2 q( ?+ f; K! w - ;; Altering this line will affect Express Tools functionality5 `1 {% z- y2 Z( r
- (load "acettest.fas" (princ))
3 t$ i1 T& i" A+ S* @% W1 j0 o1 Q - �32
Sao chép mã / c* b+ [/ _7 s) z4 f* @0 K$ }* _% Q- v
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ+ {: h8 ^1 `( p7 ?' n
|
|