|
|
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 |
- ********************************************************************************3 `7 J9 n) S% K4 o+ M0 L) D
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *( f1 d6 O0 C4 R) t# g* Q
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
/ ^' O( Q- ~1 }# A+ n* L: x$ D - * Suu tam & Soan *7 f, i, s2 }6 N' X; B
- ********************************************************************************
6 J4 o6 k& q/ | - ) u4 m- w: {% n4 q3 n
- ; Next available MSG number is 104
a4 q: l$ ^! Y - ; MODULE_ID ACAD2000doc_LSP_! R0 K$ u7 F7 L$ ~: \0 v" K- b) Y
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000. \: x0 R. G/ M% Q6 M; c; e. x
- ;;;; z7 v& z$ T' s, b* m* @) I* s0 ?
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.3 y& P5 b$ \# L* Q
- ;;;" h, D: X8 s# g
- ;;; Permission to use, copy, modify, and distribute this software
& o/ k) Y7 M9 t5 D7 I; D/ G, v3 e# U: e - ;;; for any purpose and without fee is hereby granted, provided
8 {2 |1 u: F- q0 y! r q9 P1 ^ - ;;; that the above copyright notice appears in all copies and8 }: ?; E: w& Q3 \. j
- ;;; that both that copyright notice and the limited warranty and( b! U( Y" N+ ^% t8 V! } M' B
- ;;; restricted rights notice below appear in all supporting2 g8 l' d) \% |* D9 a8 K0 f
- ;;; documentation.( v/ p9 ^6 g% p1 V. N d
- ;;;
1 h: j0 e' s! Y, ^ - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.1 j v8 F2 }7 y
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF9 ~1 U- q2 r* ]$ d5 c+ j7 c
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
$ A; |* B; V% r9 M' e [ - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE: Y5 V: h3 k8 {6 z
- ;;; UNINTERRUPTED OR ERROR FREE.7 ~) f2 t4 A6 i8 B% w9 \: b
- ;;;
' Q9 _/ j# p9 L$ { - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
0 X( x4 [) K! r5 L - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
9 g; E. O2 Q% I$ p6 z% d, C y - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
8 s% D) c z2 b$ U - ;;; (Rights in Technical Data and Computer Software), as applicable.& v8 C' r& ?- B" ~! O) @3 v
- ;;;
) ^" v6 r& n6 d: b! @7 ]6 d - ;;;.- G: P9 E0 L9 L7 J) Q% S3 e: \$ h
- ;;;
, S6 n0 M8 F. C- a, h- t - ;;; Note:
9 c& B0 @) s9 X' I& G% A - ;;; This file is loaded automatically by AutoCAD every time 1 V8 O# s2 g0 }5 @2 W! \
- ;;; a drawing is opened. It establishes an autoloader and
0 y6 H% I: i" O4 _% Z - ;;; other utility functions.6 q$ D, B; u* X$ k
- ;;;8 O7 `( n5 L. p" N3 g& T
- ;;; Globalization Note:
6 W7 m% \& A) ]! P: S8 E2 V - ;;; We do not support autoloading applications by the native
( p- j, S) I+ Y& P - ;;; language command call (e.g. with the leading underscore: K6 T1 i6 E" f F) p
- ;;; mechanism.)0 x! n7 n4 x y% A# ]! Z+ S
- . x$ t9 b7 T8 A% q
4 u+ E* r% J5 u3 c3 b# A- ;;;===== Raster Image Support for Clipboard Paste Special =====
/ t8 ~, K2 Y1 f6 t% H - ;;" m' q k1 ?4 g: \
- ;; IMAGEFILE
2 \* f4 O$ G1 R0 a - ;;; ^8 q" Z5 R2 @4 E' H( u# E
- ;; Allow the IMAGE command to accept an image file name without4 V+ v0 L+ i8 R! H% g
- ;; presenting the file dialog, even if filedia is on.& B1 _! [; I5 F! K' e" s i) K1 n" X$ T
- ;; Example: (imagefile "c:/images/house.bmp")! T) `& f2 z1 F6 @/ A; W
- ;;0 G3 W, p6 ~: z H% j
- (defun imagefile (filename / filedia-save cmdecho-save)) k* [1 v+ Q v% S* A6 N( M0 C
- (setq filedia-save (getvar "FILEDIA"))5 x3 t+ N O7 N& c' u1 Y$ h
- (setq cmdecho-save (getvar "CMDECHO"))2 W* ?; e, H1 i1 E# Q
- (setvar "FILEDIA" 0)
% j- G( [2 I- m7 |# w8 S0 ~ - (setvar "CMDECHO" 0)( i7 y' H1 S2 v* v1 |5 v4 w% @
- (command "_.-image" "_attach" filename)
2 F5 L! g0 H& n6 ~ - (setvar "FILEDIA" filedia-save)6 i8 |4 r2 p$ x3 G" e
- (setvar "CMDECHO" cmdecho-save)3 ~& _7 x+ E: v1 T, Y
- (princ)
. q2 I, F0 _! G1 w B, Q - )+ Z g+ a1 M {* L+ Z
- ! x y5 r6 J' e6 D, E, s
- (defun c:zx () (command "zoom" ".5x"))% y# E+ {( A& r$ C! X: G
- (defun c:zz () (command "zoom" "p"))( O4 T/ {& z4 O0 A
- (defun c:za () (command "zoom" "a"))
3 M$ Z: X1 @+ i7 a O- U( G1 \ - (defun c:zd () (command "zoom" "d"))& U# [3 f+ |- y) m
- (defun c:ze () (command "zoom" "e"))' ?1 N* K x3 o$ |$ R4 {
- (defun c:zr () (command "zoom" "" ""))
- f8 s1 y5 t0 ]" k" m( a) X - (defun c:vv () (command "ucs" "v"))
, {. D# r5 V' {' ]/ \ - (defun c:co () (ssget) (command "copy" "p" "" "m"))9 O: ]- j4 {$ g; W* k9 _( b* I! O0 C
- (defun c:c () (command "circle"))
3 j& R* U! P/ ` - (defun c:rt () (command "rotate"))
: R1 q, }1 n4 n) x8 @( i - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ))). B0 m* O" ]' q* N' c! P f
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
7 \2 m3 H+ Q1 f; c/ U! `* @ - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
# m( t, I: ]# M) W. ? - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
, ?! P+ r0 B+ l( ^ - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))1 ?1 x7 K2 t( s- g9 e
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
c8 F- r% Y- u6 I, v% ?( A2 ^5 k! ? - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
% J3 J4 o4 f- m - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
8 l0 c) U' i( v5 f - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
- ~% w7 o1 o& | - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
# |( H! }& ~3 Q1 F% v9 t - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
+ W2 c* [) ?6 M0 }) X - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
4 h& P7 Y3 p8 g& X7 P2 y! j - (defun c:fd () (command "find" "p" "" )(princ))(princ). d/ Z: u1 C$ Y
2 y( [! Y4 p+ ?1 n5 w3 g+ x4 g- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
5 l$ Q) C$ C+ l$ N5 s5 P8 D8 d) z$ C - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
0 b6 H4 V5 N0 z' x$ M - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
+ ?9 o+ f0 l) ~+ N. Y8 c- ~ - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
5 a* O4 x' }, X B8 F9 c# d - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
5 D; H$ n4 g! i b2 Z; j! O5 h - (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))# C @# @4 ?* B1 R( g
- (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
6 @) |# A$ |# N: k6 j
2 N+ x( t+ ~* k7 n2 i- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))1 \$ H# ]5 f1 J: k1 c4 A2 r
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
9 n4 ?$ m9 t8 w* N+ v - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))! B% g0 Y9 ]/ B2 | s& t5 _
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))& F+ K0 ?( x/ e4 K
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))5 p/ y% U! S% k( n) e& a
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))- u" q& U) S/ H4 Y* O
' j# Z& }: u B+ [2 l( o+ y ]- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
$ I2 ?6 E( x: z- U, c - , k! O" N& f1 q; v) {
- ;free lisp by cadviet,cd2k44
+ ?* s7 c% R8 U/ H - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830$ Q& }! L/ Z" L
- (defun c:FTEXT (/ ent tstyle )
- F+ ^3 U7 F. Y - (command "undo" "be")
, _, h% V3 h% ^; s& n' ` - (setq ent (entsel "\n Pick text :"))
- |( W9 \+ I/ M! p: z2 l* q/ t z - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
* {& z8 ~/ ?. ?* G" } - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")% _4 k) l9 ?& f4 E* [
- (setvar "TEXTSTYLE" Tstyle)9 Z/ T1 t7 i4 Y1 F8 a0 \, o
- (command "undo" "end")
/ k' ?" k4 b: h- E% B - )( A4 [, S" m$ ~) x- T* n3 J
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
+ j# ?4 O5 V2 w9 H, X/ Z/ c - 3 S5 g- f; `5 T0 g
- ;free lisp by cadviet,cd2k44+ Y3 g& V/ x1 N
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
3 p g7 u. c3 s3 Z+ A8 J - (defun c:Fvnh (/ ent tstyle )7 y% k4 ^* [2 {6 {6 y( v
- (command "undo" "be")
7 }) Z, M! ?! x0 ]& t, h2 L" e' a" } - (setq ent (entsel "\n Pick text :"))
% h, Y+ y/ k/ N% ] - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
* i8 m2 J) N9 c! P/ ` - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
/ k1 ~9 l; V6 Q/ Q2 [8 b - (setvar "TEXTSTYLE" Tstyle)+ h# d; y) e8 `
- (command "undo" "end")
+ W1 n" @+ J/ [' n5 @4 {$ r - ): w- l j' h' N1 I4 u" _/ x
- ; t% M4 `2 ]! G
- ;free lisp by cadviet,cd2k44
- k9 x4 Z+ S7 k M B/ V - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830# i* `6 Q0 E# M# Z( U" ~" ~) k3 x
- (defun c:Chbg (/ ent tstyle )
# H, f6 r1 E& A' N - (command "undo" "be")
" z+ Y; ^& x/ G& Y1 [1 L - (setq ent (entsel "\n Pick text :"))2 ?+ b" u, A* n& Z, R4 G
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
5 v; \7 C P: Y+ u - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
, c8 c! |) \) P - (setvar "TEXTSTYLE" Tstyle)
( x7 a: U! e4 @' {( f - (command "undo" "end"). @ \- Y' s' d: n
- )
1 B. c; }2 x& k$ |& q
e3 v3 J, Y/ _" V2 B- ;free lisp by cadviet,cd2k44
& R+ u7 H/ ?/ D6 `" R2 w - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830/ k' a8 g- p+ {
- (defun c:Chsm (/ ent tstyle )
/ Z- m) o6 K% @) G - (command "undo" "be")
- [: f3 ?$ O. p2 y* ?: p5 _7 Y0 o - (setq ent (entsel "\n Pick text :"))
8 j `% c8 |$ U; ~0 [ - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))+ U. @2 v7 j% Q* i9 ~; M
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
* ~% J$ ?; m0 X - (setvar "TEXTSTYLE" Tstyle)
; {: @2 o7 _/ S o - (command "undo" "end")
) V+ @* `6 n1 Y7 Z. c3 o - )
+ v# T8 C! J/ k. Q, Z$ ~( }
+ U u! d8 {9 M- ;free lisp by cadviet,cd2k44
( s* N8 V8 z6 ^5 P; p - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
7 o! z3 e! Q7 P6 F, J3 d - (defun c:Fttf (/ ent tstyle )+ T, n/ k3 W9 V& _' N
- (command "undo" "be")% Q' c" \. K* y2 B* m
- (setq ent (entsel "\n Pick text :"))
& O% f' W* R9 ~& q - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))2 ]4 {0 u$ r; v/ P3 @ g0 @
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
7 R& O5 }) @& H1 c$ X, V2 y3 } - (setvar "TEXTSTYLE" Tstyle)$ _/ }7 V. o& E" v
- (command "undo" "end")
2 X. ?. {9 B# ?/ N; f" m - )
8 ?0 Y) g& y. o6 k } - ( s$ I! U z A+ o/ v3 k
- ;;; ============================================
% e7 _" w0 v+ _2 }& O: s - ;;;
6 u0 h- M9 Q( b' K+ D0 a" S+ b9 j - ;;; LISP Creater Tao Duong Dan AUTOCAD2000/ B1 j+ M+ J+ C1 F$ a+ B
- ;;;0 H3 j. X2 o2 e4 a( i
- ;;; ============================================
3 w' B c$ ` w* q& D
' V2 |% m( ?5 k% Q* u* d) u7 h- ;;; ============================================) P3 ]3 e' j( D' L
- ;;;4 l5 F. H* U, R' D6 v! ?5 K
- ;;; CREATING FROM AUTOCAD2000
- R: @4 r9 o# S4 s4 z* ^' J - ;;;6 x N4 ?( A9 h5 b w/ Q/ s
- ;;; ============================================( Y; t, G! b; a) {' y7 r4 g
- 3 }8 u- ]* [6 @& k
- (setvar "INSUNITS"4). F5 Y [" a5 t& m: k! @
- (setvar "ANGBASE"0)
8 x; d4 P. | |2 n+ J - (setvar "ANGDIR"0)& f' r, C' g! F3 \3 l m
- (setvar "AUNITS"0)
5 [& Q( `& e; V2 x! z& S - (setvar "AUPREC"8)
1 i; e, F6 J; E |3 X6 N - (setvar "LUNITS"2); _ @6 Z0 T- c. m
- (setvar "LUPREC"8)% {( p, x7 Y7 A- W d. j- F. K
- (setvar "ACADLSPASDOC"1)
5 Z0 c0 d- f! _9 d2 P1 t4 J, B$ e - (setvar "pickbox"5)
- H& V. G2 b/ m5 y! ]- l2 }* k+ ~" k - (setvar "blipmode"0)
# b; l# g/ n5 _ ]1 @: c - (setvar "mirrtext"0)
; W( U: r0 g! n, P: H - (setvar "cursorsize"100)% `. @! N5 U, h: Q* s" B
- (setvar "ZOOMFACTOR"75) q7 s3 g) H( c; x
- (setvar "LTSCALE" 10)
1 G! z; b. |8 ^& ~" ~* ` - (setvar "lwunits"1)
4 [. S; I/ U- j5 L [) w - (setvar "DIMBLK" "Closed")8 O/ ^( l: [! l( R. L
- (setvar "DIMGAP"0.0693)- R, I7 X& @% r% l
- (setvar "DIMASZ"0.20): h% }2 h8 L: D5 [9 v( L$ b: \
- (setvar "DIMCEN"0.2)' W/ ^8 I- m* h8 J
- (setvar "DIMDLI"0.1)
5 V2 H5 w+ q" u! ]2 f - (setvar "DIMEXE"0.0693)
+ P/ J2 l+ o. H5 U3 X. U1 ~ - (setvar "DIMEXO"0.25), H( Y& c& {: K! V4 s) u" O
- (setvar "DIMDEC"0)
" } L$ q% v8 [1 s - (setvar "DIMTIX" 1)5 N c& U5 X V
- (setvar "DIMTXT" 0.099)/ M- Q U/ r( b. ~* Z8 N2 e0 K
- (setvar "DIMCLRT" 7)
( P( b, G. l% o - (setvar "DIMTVP" 1)
' l: s1 `2 M6 y) j6 N8 f% o - (setvar "DIMJUST" 0)* G% \1 b' R! B! [, L" ]0 Z
- (setvar "DIMTIH" 0)
1 o4 H$ I+ L4 M - (setvar "DIMTOFL" 1)- L6 L: o6 ?" K
- (setvar "DIMSCALE" 1111.1111)' z, @# S( }+ k; R# G, r8 u
- , O5 O3 R& |, z
- 9 {( l5 q' U) I- ~1 V
- " D, o3 V8 ?# [" [. P+ f7 F
- (defun c:zp () (command "'.zoom" "p"))
# ?$ _4 I4 z, V) ^ - (defun c:zz () (command "'.zoom" "p")) j* j3 l# L( v8 i
- (defun c:ze () (command "'.zoom" "e"))! B! @- R, S' b* j5 e
- (defun c:za () (command "'.zoom" "a"))
# D: {+ M& ?8 Q) o+ x% z0 [ - (defun c:zd () (command "'.zoom" "d"))
! c2 j2 h, b2 _ - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
! O; i( E$ G) W& `) W - (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
$ K" n1 S5 Q3 s' ~ - (defun c:de () (command "ddedit")(princ)); @; n' a- n6 p" D5 w2 B0 f
- (defun c:dda () (command "Dimaligned"))
! S+ R2 E' n; ~4 N" q5 E9 n - (defun c:ddb () (command "Dimabaseline"))
9 {; }4 Q/ k& w( d- ~8 X - (defun c:ddc () (command "Dimcontinue"))3 j! N, Q: I0 g5 l4 k
- (defun c:dde () (command "Dimtedit"))
6 O2 } N+ ^6 R, C5 H d7 r - (defun c:ddf () (command "Ddattdef"))0 u! D+ T/ t+ F/ m9 D* q }1 g
- (defun c:ddi () (command "Dimdiameter"))
( P5 j' r( x$ I' h( z: M - (defun c:ddl () (command "Dimlinear"))" Z7 X$ t) g! z7 e6 e# M# p
- (defun c:ddn () (command "Dimangular"))7 t- ~/ x3 ]! n% b1 {; |
- (defun c:ddo () (command "Dimordinate"))2 C$ l1 _- s4 |
- (defun c:ddr () (command "Dimradius"))- |5 \. F$ ]/ P! l4 T4 S6 u K6 O
- (defun c:dds () (command "Dimstyle")): r5 i$ E6 i5 m5 a# K3 X' b
- ) |4 b, D4 @! a. Y
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)5 n6 z$ }8 Z' y' `' J f' @5 A
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)8 W" k; q- z, O9 X. l
- (defun c:UU () (command "dim1""update""all"))) r3 J' z6 s6 }3 m% Z7 x3 c8 U K
- (defun c:ded() (command "dim1""tedit"))
! n e0 ~% @5 X. R+ g - (defun c:da () (command "dim1""ali"))
! `& _2 D0 B/ i# c1 T u: F2 O - (defun c:dll() (command "dim1""l"))8 i$ Z) I B R1 H7 D+ V
- (defun c:dan() (command "dim1""an")): D8 ~4 ` h% _# e3 @
- (defun c:d1 () (command "dim1""ra"))" \- g( \- h6 k
- (defun c:n () (command "dim1""new"))$ M: H) G; v' q8 @
- q5 N! S, N8 z$ V) U- (DEFUN C:PE () (COMMAND "PEDIT"))9 f: U9 J @! p# ~
- (DEFUN C:PL () (COMMAND "PLINE"))" V% c$ r) H3 P8 U1 b) X
- (defun c:dd () (command "dist")(princ))
c$ |5 ^& @" Q0 W - (defun c:w () (command "pedit" pause "w" "au")(princ))
- V; L0 V2 c* b* ^' g" I - (defun c:pg () (command "polygon" "polygon"))5 D) _# [4 t7 f9 i4 D
- (defun c:el () (command "ellipse"))) O, C. Z% o9 z8 J6 k$ e$ p: S a
- (defun c:xe () (command "explode"))8 E% v5 @; @/ z/ H, w
- (defun c:eex () (command "extrude"))6 p5 B3 b2 m3 V9 ~# b0 }0 F0 U( ?
- (defun c:xg () (command "xline""a"))2 x- s8 k$ U! g. H
- (defun c:xh () (command "xline""h"))
1 c" [! T3 P3 f9 ~$ \9 D$ X - (defun c:xv () (command "xline""v"))
0 K1 o8 w" ? I% {( E - 0 f7 E; k& [# O D ~
- (defun c:oc () (command "osnap""cen"))
# H- _! E3 N& @9 r, `# h3 _ - (defun c:od () (command "osnap""nod"))
# V; I N6 y: M; s, f. p6 t/ ` - (defun c:oe () (command "osnap""end")) I: l( F G' f& E5 Y
- (defun c:oi () (command "osnap""int")) S9 \ I \& t; K" V) N% e8 R
- (defun c:or () (command "osnap""per")) G/ U+ C5 W# y% u$ A
- (defun c:on () (command "osnap""none"))6 X+ I) a# ]/ n- Q# ~/ j7 S R5 \
- (defun c:oq () (command "osnap""qua"))
2 j- Q5 g4 J& C - (defun c:om () (command "osnap""mid"))
; ?; G! A# k$ @( W2 w3 @4 }( S. v h - (defun c:ot () (command "osnap""tan"))- N- n, ~' ?- [9 w' ]; c
- (defun c:oin () (command "osnap""ins"))
# U' R9 n) n8 [& h - (defun c:oa () (command "osnap""nea"))# N E5 I* I- H c& E0 R; o
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
" y; J, N4 H5 G# s - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
& Z8 R6 A7 H& [* h; P" S/ z - ;(defun c:nn () (command "new" "y" ))( i/ k# Z7 I! N
- 4 q0 s/ i, y* @
- (defun c:/ () (command "limits"))
7 ]% D1 s) |9 I l% ` - (defun c:`1 () (command "region"))
: U8 k" Y$ U& T! n9 M$ ? - (defun c:`2 () (command "subtract"))
* z0 ^6 R. k8 Z8 a+ ` - (defun c:`3 () (command "union"))
4 u/ y7 E `& ~' p% P - (defun c:`4 () (command "intersect"))
) v7 x: v: R( z) s6 i% u - (defun c:`c () (command "cal"))( a+ y, N: u6 _* I' r! k
- (defun c:`g () (command "Polygon"))/ d. n% Z9 o0 p* k j% a
- * Y( t) d8 Z9 r/ ^
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))) e4 |8 | d1 U1 D* o( i" j
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
0 S, B' i- p$ u - (defun c:ip () (ssget) (command "print,_plot" ))(princ)
$ I( R$ W: J( x
2 E( G! K7 j2 M+ ?& P- (defun c:ddm () (command "ddlmodes" pause))" _: @- r+ g# @
- 6 R# N9 v; y0 H; ^
- (defun c:sha () (command "shade" pause))
. v8 @2 {3 T, ~ - ( P8 Y ^: z- p8 @2 x
- (defun c:sr1 () (command "surftab1" "p" "" pause))5 \. ? n; w' _& A: k% p
- (defun c:sr2 () (command "surftab2" "p" "" pause))
; c( h @9 W [& E6 N - ; U* e& |0 C6 u1 R
- (defun c:ad () (command "audit""y"))- f; j: ]4 q8 ~( ]7 ?: e* M0 [
- (defun c:q () (command "quit"))+ M* ?% n/ J0 A' O) \; z, q% S
+ u' h7 [$ \: h" o' `/ r- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))$ i6 l$ B5 W9 x/ h% D8 o% m' o
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))& O; N# ?" P: i# L6 m" i
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
% r' H6 m+ t9 ~ - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))5 s' Z; ~5 r8 X& I4 M
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))4 s+ o" w9 H- K o& g3 D
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
, o9 o9 ?7 }$ p6 @0 P# _ - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))2 i# a% h9 I7 W) \* H: o( t
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))* z& y/ B8 x' `9 Q( ~# j
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))7 X! M2 C2 W s6 T2 |( D, A7 ~
4 V; i B1 S) Q- (defun c:u3 () (command "ucs""3"))
' d+ _5 F+ e, g3 Z - (defun c:ue () (command "ucs""o""end"))
6 A m" h8 L% v: _) G8 X - (defun c:ui () (command "ucs""o""int"))7 v5 A. x! N5 }" Z, E
- (defun c:um () (command "ucs""o""mid"))
! B0 s, W! z8 B' K7 i. I/ a" T' T - (defun c:uc () (command "ucs""o""cen"))3 M- v7 `* C% x }% y+ a7 u
- (defun c:uq () (command "ucs""o""qua"))! {8 D; a" q- E9 r: \
- (defun c:3s () (command "ucs""3"))1 d! v( B9 c& b; x8 V9 l" a$ S- |
- (defun c:sx () (command "ucs""s")), r; o; u2 G' C2 a. \8 ]
- (defun c:sf () (command "ucs""o"))8 g$ o, o+ I" W& J
- (defun c:sz () (command "ucs""p"))- Q! k; d! x0 o e) m0 {
- (defun c:sr () (command "ucs""r"))
7 r7 j3 r* |( g - (defun c:sw () (command "ucs""w"))
# x. J+ f$ T# z- @# Z) c+ W; \$ k. w - (defun c:fv () (command "ucs""v"))
/ d9 s6 |/ S j+ L0 \3 S3 e - (defun c:ux () (command "ucs""x"))
" O! m5 s7 Y& `/ y, L - (defun c:uux () (command "ucs""x""90"))
" q* f' B4 y* `: m - (defun c:xxu () (command "ucs""x""-90"))
% W/ Q6 i2 x8 { - (defun c:uy () (command "ucs""y"))6 g( _; y8 U8 z8 |! W3 b
- (defun c:uuy () (command "ucs""y""90"))0 z! T8 v7 n! G* L5 P2 l
- (defun c:yyu () (command "ucs""y""-90"))
5 r+ {7 Y" _1 t+ ` i5 R - (defun c:uz () (command "ucs""z"))
$ L5 o4 w( c% f" H - (defun c:uuz () (command "ucs""z""90"))
, e& W$ d; n3 E. q* V) Y - (defun c:zzu () (command "ucs""z""-90"))
- c6 E) }9 T8 Y& I - (defun c:uci () (command "ucsicon" "Properties" ))(princ)4 Y8 i d! Y5 T, r1 Z( M6 O! S( a) i
- (defun c:ucm () (command "ucsman" ))(princ)+ \+ y( m1 S6 Z' E
7 A$ {* u% n, p2 b* p- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
% N* n3 F/ X5 D9 c3 Q9 q, @ - (defun c:sd () (command "vpoint""_non""1,-1,1"))
6 m7 d/ M1 \& A - (defun c:se () (command "vpoint""_non""1,1,1"))
) i9 k# h" S. h, c0 | - (defun c:sq () (command "vpoint""_non""-1,1,1"))
^" |! o7 @2 v! h+ y" h - (defun c:vc () (command "plan""")); j, o W$ l/ O5 @" E+ ~
- (defun c:vd () (command "dview""all"))
& M3 `3 e8 ]0 E* ^, _7 p2 D* e
\6 z7 T/ V! {! v) W: h0 J# k$ q! p: a- (defun c:TT0 () (command "tilemode""0"))( D9 ]" d2 u6 n
- (defun c:TT1 () (command "tilemode""1"))
" H8 ]1 q2 {# u* ^8 Y5 c" D/ J - ( N3 n4 N7 p( P$ p) b
- (defun c:vt () (command "vpoint""_non""0,0,1"))
. t$ I, O- q O9 T; F0 t - (defun c:vb () (command "vpoint""_non""0,0,-1"))
+ H2 c: S0 R, ~3 D7 L - (defun c:vl () (command "vpoint""_non""-1,0,0"))
) T! Q+ H3 e$ S$ d/ P5 d$ X( u0 S. ^( r5 o - (defun c:vr () (command "vpoint""_non""1,0,0"))' w+ @; m) @3 o+ _! F3 g8 j
- (defun c:vf () (command "vpoint""_non""0,-1,0")). E7 ? i) o- T7 s
- (defun c:vk () (command "vpoint""_non""0,1,0"))
) B" Q' R Z* I; A" q6 R
8 p- c2 q/ \; c/ A1 i- (DEFUN C:MM () (COMMAND "MIRROR"))
: ]6 t, U' y' w- u5 J: Z! L8 ` - (DEFUN C:MP () (COMMAND "MOVE" "P")); k9 e _( K2 K/ t6 Y8 y
- m% _0 ^: T3 S- t: q9 b2 I9 y- (defun c:mee (/ a): d2 ?0 v" M" N8 \+ [2 G+ N: F
- (setq a (ssget))(command "move"a"""end"pause"end"))
. k1 Q# \% I' ]1 U1 H8 ~ - (defun c:mc (/ a)
U0 l# ]3 g& N. x5 H' ~9 a - (setq a (ssget))(command "move"a"""cen"pause"cen"))
, ^: S3 |$ |3 A+ i$ J8 L" B5 D# K - (defun c:cc (/ a)
& p# Y+ W+ \" \9 H - (setq a (ssget))(command "copy"a"""m"))
8 j% X0 X& v( s- V- x - (defun c:ce (/ a)
7 ]# D% ~- L6 r/ Z% D - (setq a (ssget))(command "copy"a"""m""end"pause"end"))
' b% k/ z4 c) S( V - (defun c:cn (/ a)
3 u0 ~) O' _4 ]! j - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
( @4 x; n$ v* S - (defun c:tl ()(command "trim""l"""))
5 X0 A' l: T" O% G. F3 T( ]2 } - (defun c:tf (/ a)
6 h, s# m% H' @& Z& Z2 y; N - (setq a (ssget))(command "trim"a"""f"))+ D( W- L) H0 S0 a! Y! z
- (defun c:el ()(command "extend""l"""))
# [. c! z( F; P- t7 [! n - (defun c:ef (/ a)$ W- B0 j1 v. |* J5 _- D
- (setq a (ssget))(command "extend"a"""f"))' n- x* }4 \7 o0 s
- 0 T9 Z( W9 X6 T/ {7 l" K
- , z }0 Z1 M& I
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))7 M/ G, W, \* r' d8 e
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
9 }; a& f3 t1 ^$ w7 U) q4 g7 ?' ` - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))" h+ Q7 d6 T* F: y& A3 V* ]8 Q
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
# E3 O/ _9 Q" I/ |+ P; l6 Y- l4 O! i - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
, c. x, b* H b8 a$ P# ?, g1 x9 {: a* F, N - (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))6 J& |; A2 \: R! J8 m
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
. a$ Y6 |7 ~+ w& @7 i( o7 H4 W! ~: d - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))6 X/ w, A$ e7 o H, o
- (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))% o8 W; D3 A# \; j( c
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))) L+ W8 o5 n( p+ y& y" j" c2 l) v4 N
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
" L$ x! B- A( p3 q+ j! O - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
8 u3 k% \1 l! }) B0 m$ \ - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))) O- C0 S3 ^# R" `, o
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
& ^3 Y. e7 j4 w1 Q& c& k - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))& n2 B- |. {+ P/ L4 I2 a
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))0 p) Z5 a/ J1 Z" m
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
* J! w0 W5 R E. x0 h7 t5 ]3 k
4 j2 X" u" h5 V1 @( R& w& x. D. ^ ~- (defun c:mla () (command "-mledit""av"))* p* [# I- i& v
- (defun c:mlc () (command "-mledit""mc"))2 J! |2 R2 f3 W- v* H
- (defun c:mld () (command "-mledit""dv"))& e8 Q* e# i0 e, K# G& z. m
- (defun c:mle () (command "mline""end"pause"end"))- n5 [$ U3 V0 c" O& h3 m b8 k; M- u
- (defun c:mli () (command "-mledit""ca""int"pause"int"))
$ Z# U' B! r2 Y+ V - (defun c:mlj () (command "-mledit""cj"))
% M% j9 \) g9 V8 r1 P/ ^# X! A4 M2 w3 M% W - (defun c:mlt () (command "-mledit""mt"))
* C2 g7 Y9 T, H1 a6 ~% x2 S D - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
* \7 g3 _" S* a6 b* _0 |( R0 y' d - (defun c:mlw () (command "-mledit""wa"))
7 L; H$ t8 I$ F" U+ }* A4 Y
* }0 R" P/ \; Y! |8 X' @/ ], i. P1 n- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA")); N; o+ U7 }4 ?7 G( }" |$ N4 s" B! R
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))1 O H. B% L! t# d
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))9 B( x; G& {; w/ D" B2 ]
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
& M3 \. p5 E! O$ n& { - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
g2 J4 Y3 ` i, a
, q; e6 [( H. T% M6 ^- (defun c:p0 () (command "pline""""w""0""0"))
, D2 F: ^; U0 M' ~) p3 `/ U, @ - (defun c:ot () (command "offset""t"))
, ?9 [7 I. v' w, f9 m - (defun c:t () (command "mtext"pause"j""bl""h"pause))5 }% s! g! _2 C, W( V% h3 @& g; h
- (defun c:uo () (command "ucs""ob"pause))
1 h7 C! T! f( ` - (defun c:f0 () (command "fillet""r""0"))
* A/ T: g) h$ i' m - (defun c:fr () (command "fillet""r"))
, h# n/ Q) c; h
. M+ H2 l. F+ |& m- ;CHAMFER
9 w% |. k; Q4 O5 `: F+ T4 k9 L - (defun c:cf () (command "chamfer"))
" x2 r; i# w& s; K: [+ V' D. ?' c+ T - (defun c:cfd () (command "chamfer" "d"))7 |, ]! |( Z2 k4 o/ O- n! K
- (defun c:cf0 () (command "chamfer" "d" "0" ""))
2 X, C' W' E+ O2 T# V+ N
" D% U1 m6 I+ B4 K3 k2 q- ;FILLET
7 Z5 }7 z% n5 |/ N - (defun c:f () (command "fillet"))+ \" V+ R8 S" o6 V% V8 ^
- (defun c:fr () (command "fillet" "r"))
3 i% X" z K! q# L - (defun c:f0 () (command "fillet" "r" "0"))! O& ~8 O4 \; C! F1 I2 c
- 3 P6 E: K7 f, a/ S# {
- (defun c:OO () (command "oops"))
6 \. K% J5 q: X' u - (defun c:dln () (command "dimlinear"))
6 i# f: V* U+ M! E, h - (defun c:dan () (command "dimaligned"))
, _% o9 D# b0 t* ?( _% ? - (defun c:ddc () (command "dimcontinue"))
4 z& {, E" p' j- i7 z) h1 V) Q
" ^, q1 E) r7 ~4 ?$ O0 {' H- (defun c:sc () (command "scale" "auto"))
! a* n7 t: t# b9 Y - (DEFUN C:XO () (COMMAND "snapang"))# B9 T/ J3 |3 d
- (defun c:cc (/ a)
( v9 O# ]/ g' O. \+ W# g - (setq a (ssget))(command "copy"a"""m"))
$ T5 b! m0 t5 m5 k$ M& C- |& b8 g - ) P2 m. O7 R/ N$ O. r/ k
- (defun c:PJ (/ a)
! z3 u D6 x x+ F - (setq a (ssget))(command "pedit"a"""j""all""y"))
9 ?3 O' o' G% U2 [3 M - (defun c:JJ (/ a)
& c& {8 K7 X% S$ z - (setq a (ssget))(command "pedit"a"""j""y"))
5 S' j+ I: q; n - (defun c:TN (/ a)
( T$ ^! F: u8 d. Y- S6 v7 ] - (setq a (ssget))(command "change"a"""p""T"))
& P$ i) ^: v; L& i* I - 0 R$ m. P1 j; T s0 @- w
: Z. A7 H) Y$ i9 V0 @- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
/ \7 x: C0 d9 t% J) [$ Y
. O! q/ Z6 \3 B S8 n- (defun C:IB ()(setvar"cmdecho"1)
; B* r1 H) @. R( b - (setq pt(cadr(entsel"\nSelect Block:")))
7 [8 X. Z% a# J - (setq e1(ssget pt)) " @ N% k. P9 {0 C) Y0 T) ^! j
- (setq e2 (entget (ssname e1 0)))3 V0 r5 W, P3 `9 F; G+ p3 z
- (setq blname (cdr(assoc 2 e2)))
2 o% i/ q8 i, X; V9 j; P1 j - (setq oer *error* *error* err2)(command ".insert" blname))# w) m: d6 {: o. e$ c; R+ \
- 0 P6 {+ I) G" h* Z" R" v
- (defun c:II ()
) _# h& u5 {* W+ e. l. r - (setvar "cmdecho" 0)
" \9 E% z4 t3 x2 u3 m - (setq olderr *error* *error* myerror)
7 N: ^! M l j: B6 U - (prompt "\nSelect objects: ")) X3 l2 E$ p. H9 [
- (command "select" "au" pause)" W! |& G3 n O W& v0 v' q9 G
- (setq sstxt (ssget "p")
8 Z0 ?! P% v5 K0 ] - sslen (sslength sstxt)$ n8 Z( R. w& K+ m
- ctr 0) N) Q7 G1 j7 m9 {, v2 i: G) U
- )5 l8 C) U9 g+ Z P! F
- (command ".undo" "mark")% j( d" c1 @9 U4 A+ Y5 T7 W
- (while (< ctr sslen)4 V9 H7 R( U" m+ N2 V r/ u
- (setq listxt (entget (ssname sstxt ctr))
) I- K5 ]& e) j! E - txttxt (cdr (assoc 1 listxt))
; {! f; h0 y$ _2 t$ d. O; [ - enttxt (cdr (assoc 0 listxt))
# F1 V( V9 K' m* M; F - )
8 C/ k, z; |$ j2 l3 Y& L0 V! v - (if (= enttxt "TEXT"); F" Q: @. S: {+ B5 @
- (progn
* ^+ Z8 z& H7 ?! g: Y; {9 n: m - (setq testxt (substr txttxt 1 3))
7 [& l! z' F; x - (if (or (= testxt "%%C") (= testxt "%%C"))2 e) l3 I$ E* Y
- (setq newtxt (substr txttxt 4))
3 n* \" L! S6 P- i - (setq newtxt (strcat "%%C" txttxt))
# P& f$ N* \7 O. a7 B" G. G. p - )6 u& k: P8 {% B, S
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))5 G9 U# A9 C! T2 [$ [
- (entmod listxt)
$ m; q4 N3 C# x# k8 z - )
, i; ]7 U7 V3 y3 e: w W Z - )
' t" B5 {. L: I- x - (setq ctr (1+ ctr))+ |* O( |2 @. D: v
- )0 M4 X5 _; s7 f8 Y
- (setq *error* olderr)0 G+ b G/ X+ j
- (setvar "cmdecho" 1)
" l1 ?$ L: I. W5 q( |8 n4 ^ - (princ)
7 U# Q- H' q6 Q* M - )6 X, ]& I; m7 z
8 X5 h7 a2 S$ G j/ a H2 h D6 E. Z- (defun c:DG ()" N$ f$ K2 ?" U5 i* J
- (setvar "cmdecho" 0)8 p1 P1 X: Y9 y; Y
- (setq olderr *error* *error* myerror). h3 ^2 p& [$ \2 y6 {* W0 m8 j+ _
- (prompt "\nSelect objects: ")0 G; B' \. Z, Q+ M, h/ ~
- (command "select" "au" pause)' E/ N8 f4 j2 l% s/ b- h% x
- (setq sstxt (ssget "p")8 E8 `, z( N Z- @4 }5 P' l
- sslen (sslength sstxt)
# E9 l* j% L4 R) j5 \+ |' | - ctr 08 i( ?6 a1 y7 ]5 c' H( U m
- )
) [; S( K8 N( |8 N - (command ".undo" "mark")7 x0 v7 U8 l1 Y( V `
- (while (< ctr sslen)
% Y# y) U# n. B0 h' h9 w - (setq listxt (entget (ssname sstxt ctr)), n* X2 E* v$ O8 P# c6 ]
- txttxt (cdr (assoc 1 listxt)): ]3 p' |5 M! O- r. K! e* S
- enttxt (cdr (assoc 0 listxt)), a. k; Y. _; C, M: ?4 J
- )8 h0 @3 T' K1 a7 f& U/ c# E
- (if (= enttxt "TEXT")
/ J) T6 x& n) w! H, R4 e- i - (progn3 V/ M9 M3 l; ^$ D
- (setq testxt (substr txttxt 1 3))
" N0 u* L5 D2 P0 g( y- ]; n5 g - (if (or (= testxt "%%d") (= testxt "%%d"))
4 m" }0 N+ P, }% U" U' S - (setq newtxt (substr txttxt 4))" r" Z! t$ _8 j2 {( r7 r- }& m
- (setq newtxt (strcat txttxt "%%dC" )). b2 f/ E0 x v% P: g
- )
1 }; n7 b$ [6 B" P - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
& R1 g/ Y {5 Q' U3 k R) p) g - (entmod listxt)
& k; [0 ^& J# m( U, Z2 L - )
d6 H) b) s+ \0 i# g4 t - )
" G/ G: {' P+ m3 X9 K - (setq ctr (1+ ctr))
8 }& D \. j7 d - )5 C9 V& o9 @4 l# z4 `
- (setq *error* olderr)+ | Z& b9 R- |* U9 a; C
- (setvar "cmdecho" 1) t5 ~" H" r6 c; ?) K% H7 ~; F: P
- (princ)
* b2 |% m, p5 V g: o ?, h - )4 c$ K4 x. h" v) I
- " z9 v" Z3 v4 A1 n
- (defun c:PI ()% f* x( e. `6 H& i) U
- (setvar "cmdecho" 0)+ d) t E+ j! F5 \" u+ k. l
- (setq olderr *error* *error* myerror)
. L2 Z5 |0 B( Z8 E# u$ Z1 T/ e: U7 C - (prompt "\nSelect objects: ")
# }) M) R0 g. I0 F - (command "select" "au" pause)
4 E+ a/ k+ O2 H9 ? - (setq sstxt (ssget "p")
! `8 q c3 u. F, l* J! b - sslen (sslength sstxt)& w$ l9 G7 z7 `7 t) @
- ctr 0
' m1 Q, U: C( W: r5 _3 P: \+ E" X! Q - )+ Q w( u+ D( p z7 I
- (command ".undo" "mark")/ x+ I1 o) t- K
- (while (< ctr sslen)
! M9 W: I! }2 y7 m - (setq listxt (entget (ssname sstxt ctr))
4 ~* q. ?9 ^4 ] - txttxt (cdr (assoc 1 listxt))2 q' z1 Q1 ?3 z) h2 r e
- enttxt (cdr (assoc 0 listxt))
- L& P! F* x- u - )
6 s- ~! f& E) w- c& d/ |' F1 C - (if (= enttxt "TEXT")& z, [& Q ?$ ^! \1 v- s' D. N& }; i
- (progn
! R: F! o& E4 i+ S# s4 \4 @ - (setq testxt (substr txttxt 1 3))1 J/ ~9 p; |0 d, s; [, T* w
- (if (or (= testxt "%%p") (= testxt "%%p"))
) H# w8 v0 H7 z' f - (setq newtxt (substr txttxt 4))
9 x4 H& ?0 V; L$ x - (setq newtxt (strcat "%%p" txttxt)) t9 {" b6 V( ~' e/ Q/ i
- ); o- r# g7 ^) \+ W: @. N0 ~; q5 i" b
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))! W4 e$ p# p8 j4 @# y
- (entmod listxt)" j, X6 V1 L0 h5 Q, o% V
- )' O. U0 q4 e( h! N
- )! l! M- H$ g# C; ?# i5 o
- (setq ctr (1+ ctr))
/ J G6 P' P- } P8 ?5 W - )
Z2 `/ p) u0 k; Q3 A - (setq *error* olderr)
F* s& y5 [% Z' p" W - (setvar "cmdecho" 1)
: x" l# F8 y- M; Z - (princ)& f/ K7 Z3 n: m4 Z
- )
4 P; _$ F" v9 k4 G# x - 0 Y8 x$ U6 R- M# P# e: w' m9 w
- (Defun c:CB (/ a)
! n( |# I3 i+ n" K; D$ D2 C - (setq olderr *error* *error* myerror); L- K" h) s( w1 n3 n, u+ H" v
- (setq ocmd (getvar "cmdecho"))5 `% K6 v/ [3 b- Y& {
- (setq oblp (getvar "blipmode")): G6 e* c5 x* h/ x/ N3 z K3 Q
- (setvar "cmdecho" 0)6 b$ E) t1 J6 B& ^, r
- (setq a (ssget))6 s% h C% R% d, X# M. z- a
- (command "CHPROP" a "" "C" "bylayer" "")( h& w/ ~& s# w2 A$ |7 q; r/ l7 h
- (setvar "cmdecho" ocmd)( w* Z! n0 p/ J E
- (setvar "blipmode" oblp)
7 K, {' C# E8 s r8 Q" ^ - (setq *error* olderr)9 A" ^1 f0 f/ A( h$ ]
- (princ)" o# M- g, n) G+ i+ s, b
- ), }) D( v E+ v$ O
- $ H8 ~# h2 D7 @5 h
- (defun c:LCC (/ co43 obj23 la23)
0 C0 b0 \$ ^1 f8 |6 c, J$ A5 r - (setvar "cmdecho" 0)
: W9 r: N: c8 y) A - (setq co43 (getstring "\nNew color : "))
" N5 p) Y m" u6 ]: C: U: v' P3 d - (setq obj23 (car (entsel "\nPick object on desired layer: ")))
/ ]+ D; g' a& S- L p - (if obj23 (progn6 a |; p' j1 H" d" ?
- (setq obj23 (entget obj23))
* c0 W. M" _0 y6 [& a - (setq la23 (cdr (assoc 8 obj23)))
6 R4 z. A' f; [( p9 n y# p# V - (command "layer" "c" co43 la23 "")( S# e, x. \6 _
- ); d: m d7 F) F
- )
b/ M% v" t* b8 L* F - (prompt (strcat "\nLayer has changed..." la23))
. s7 z/ d7 Z. k3 k! c - (setvar "cmdecho" 1)
9 s u' o' @ |; E4 D- y' S - (princ)
7 \+ _8 I# ?' G7 |+ D - ) * H. j) O' u" i: e
Y0 F9 P1 @7 h& ]& \6 Q; B/ V/ l* U- (Defun c:RP (/ a)& z! b. A: f4 u3 i- W+ D5 p
- (setq olderr *error* *error* myerror), ?9 n: S0 g0 u2 k
- (setq ocmd (getvar "cmdecho"))
G+ \( W! e2 ~0 W0 t6 J - (setq oblp (getvar "blipmode"))8 f# q; d7 V5 |) O' c- g) T ?4 f
- (setvar "cmdecho" 0) I; T$ _9 y8 D0 i& y; t( X
- (prompt (strcat "\nUSE: Delete object(s) belonging to"
/ V6 U. e* Q4 `6 ~, ` - " the layer of the entity picked...!"))* f% W9 a& X- b, t
- (setq a (entsel "\nPick the entity with the desired layer to delete: "))
: j6 l% B# q6 X/ k7 U - (if (/= a nil)& Y( n+ |5 t. o. b& F0 s/ w
- (progn (setq a (cdr (assoc 8 (entget (car a )))))2 e5 @; \+ r7 e, n
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))* Y* r1 f; Q! D7 C# U( x1 q7 e
- (prompt "\nNo entity selected!"))
. r; D5 ~& N) i& u - (setvar "cmdecho" ocmd)
1 S7 F6 k+ b g% z8 s - (setvar "blipmode" oblp)
" N4 h0 z$ q s a, m - (setq *error* olderr)
2 H" l8 I) s5 e+ l2 {6 g7 K - (princ)7 D5 `; _$ Y( ^
- )+ G3 _1 o2 L0 \+ o9 x- p3 v; l
- & f, F! {, y& N4 h% s4 P
- (DEFUN C:WL(/ SSET NET SSL M)
, f+ ]; f7 x' P - (PRINC "\nSelect lines :")/ w7 @6 o( u- ~7 w
- (SETQ SSET (SSGET))
, x$ m* w+ d+ ~ z: e% f - (IF (/= NIL SSET) (PROGN
+ g( @8 k7 J3 T x# |: F6 [ - (SETQ SSL (SSLENGTH SSET))& v) o% S% ]9 l! @$ ~
- (INITGET 4)
* |& h' E' h8 `( w, i0 ]3 v - (SETQ NET (GETREAL "New width : "))$ Q$ I& r* m( |! b$ {* V
- (IF (/= NIL NET)) y# i& d) v3 _6 P: M r
- (WHILE (> SSL 0)
9 Q+ H- Y$ m0 [" _" Q1 B. V - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) )): A% w% Z1 U' G
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") & O- U: M1 j" b9 n
- (COMMAND "PEDIT" M "Y" "W" NET "") ( E( h" W3 a7 |9 I7 G9 C& H
- )
* x% ]/ k( |* b; [" t* o - )
4 X1 _1 a3 e$ E) r: s - )))# v8 @8 u" _" F) M( F
- (PRINC)
& u( Y/ R5 q$ i5 M5 c$ q8 z - )
5 D& A& U; z! {' o - 9 l! `! k; l7 ~3 l* D$ A
- (defun C:MML ()9 n( I, q( ?) i- \5 Z }8 M
- (princ "\nSelect objects to move to another Layer.")' `" H8 J2 R9 w4 V3 b* P
- (setq ss (ssget))
4 l' d3 ?8 v2 P. e - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))- [. C+ B, j* j/ \" o& ?
- (setq counter 0)2 W- k3 T/ ]6 o: C J
- (prompt "Moving to layer.....")(princ ul1)& r7 r$ w4 P6 x) F* g
- (setq e (ssname ss counter))
5 B) G. k- ~3 ] - (setq l (cdr (assoc 8 (entget e)))), @+ o! y0 n1 y8 V9 }: r3 x
- (setq S (ssget "X" (list (cons 8 l)))), A$ @& w: ~: @6 L
- (command "CHANGE" ss "" "P" "LA" UL1 "")
" |) J1 ?- ~6 V$ G+ O - (setq counter (+ counter 1))
$ N. b7 N1 Q: h9 {" J+ W' m - (princ)0 X0 P' w- ^% D
- )
$ J. W1 |& o; A: H8 Q; h$ F - % j6 r& t5 `, u v
- ;;; ================================ GHI CHU ============================6 W1 y6 Z, T0 C' D
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
0 X0 x( d# g3 Y* Y/ d - ;;; =======================Thuong Dung Font Romant.vnh===================
& X3 @6 t0 Z. @) ]; \1 Q0 M- p
' d0 f' e7 H3 _: G- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
* _9 s& X0 N) v; ?: Z* Y - (setq oer *error* *error* err2)" {5 j* P! _% F5 t: i( z1 o1 k1 J
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
' ^/ f$ Z; p* J, G - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))# \. R& v1 U( K z8 v
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))
4 ] g9 y" z# S2 M/ q - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
8 I) Y. p% p; F% T2 E - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))5 m0 o/ O) M3 W9 u0 v7 V" O( k/ H3 ^
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))! Z9 s# V6 `& Z
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
/ a8 o! n7 {, P - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
' c! y! q1 [4 u% A/ |* G - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
2 L% F9 k. p; q6 H - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))0 H; X/ Y# S6 Y4 n% s
( {2 D( a% c3 I d- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp")) ~( C. E3 T' G4 j+ J
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))) a/ k# H, p, m5 X. H; o$ f
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))& O d8 O6 v% R
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
; q, I9 Q2 \- N - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
: M: p7 y4 W5 y4 I- f4 o - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n")): y7 R: w( F" T0 M0 A
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))# e, C- I; E" T$ H
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
, L/ q2 S. H' y2 v- P* }, o( I U - 8 C! o& y, X8 T% J, }, A
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP")). ]5 v7 j0 r4 _5 I8 [
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))2 [' ]# ?: ?/ _$ X
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))" K7 X' H) L9 s3 A- { Z
- (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
) s) Y `6 D6 Z7 B - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
2 d. Y1 w5 T; S. I, b5 E& V1 p - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))- r- |3 L5 m W! P. n8 d, x
- (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
* X0 l v- F P& }! E+ ] - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))6 z+ W R+ R) K1 d7 G
- (setq pta (getpoint
S, z$ C3 p% J( ? - "\nPick first corner. : "))
' Z: E0 m! o5 b - (setq ptb (getcorner pta) x1 p3 j6 E+ L4 `& E
- "\nPick second corner. : "))
+ S% B0 Q3 i; ` - (setq ptc (list (car ptb)(cadr pta)))" a* e0 h1 D6 T8 Z/ J
- (setq ptd (list (car pta)(cadr ptb)))
( ]9 g# B& y$ d( {& j/ j( f& U - (setq ang (angle pta ptb))2 {, ~: T# m1 r4 B! ^; [
- (setq d1 (/(distance pta ptb) 2))
! u v. o0 @! [2 R) g - (setq cp (polar pta (- ang (dtr 0)) d1))* k0 v: L/ l! C; c! i$ V
- (setq X (distance pta ptc))$ U) T3 Y# C7 J' d |. s
- (setq Y (distance pta ptd))
5 H" b- G l% Z- K' i/ P& V# m - (setq X1 (rtos x 2 1))
: D r+ s( z$ S- Z0 I( J - (setq Y1 (rtos y 2 1))
- `1 h1 }3 E% H8 A6 q1 i# _6 L - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
( ^5 m- w, M' k9 O - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
! U8 j" x" B- C/ o4 S& e5 t6 _3 R& s0 M - (defun dtr (angg)5 C2 D% N* }" |
- (* pi (/ angg 180.0)))
! g' j) O. S" v5 I - % e+ t- I5 j' I5 t/ h; I
- (defun c:WS (/ pta ptb rmsz pl1)9 @ W2 g" {1 t
- (setq oer *error* *error* err2)
5 t6 C; B" w; |3 d* L( r - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")) \4 ^% \2 P/ T- r! S7 D6 \5 |1 {- ^
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))2 a0 `2 q2 F0 b6 X- Q
0 _+ y' W" c3 g8 b- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
: t' O9 q2 ^ J- c* m- i8 A$ z( k - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))! p! f' ~6 ] L
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
- Y7 M' x! Z" j1 H. Z2 H) m - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
: f( P3 ]' k: l: k: N7 w - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))+ n) Q+ \* B2 q4 w* W
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
2 V" W' C$ f% C) Q - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))8 z8 m: X4 ~' v) W# } n2 _6 p/ B2 ]
- + Z/ w# ~) e% `" C8 c4 K# v
- (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"))
0 q$ O" c1 O0 x! m* \ - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
; ]0 ]" D7 [" L+ H1 d5 ^: X! a - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100")): H7 z1 _2 X$ A0 ^2 v
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
7 t p2 n9 l2 q6 O. [4 _. [ - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
2 ?* s5 `! B; a9 p5 R; \ - (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"))9 V- d" N/ ~# Q( |3 G9 R
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
e5 E; z4 @$ L - (setq pta (getpoint/ p0 @" g5 o _7 ]
- "\nPick first corner. : "))
; R7 N# r8 ^1 M - (setq ptb (getcorner pta
) c8 W5 C( [, t' s+ a# j F! _& w1 N - "\nPick second corner. : "))
& U' V; j- M$ ]# g- V4 ? - (setq ptc (list (car ptb)(cadr pta)))# s7 A! h8 e- ?/ x; l- E$ f
- (setq ptd (list (car pta)(cadr ptb)))
. Y5 F( B3 |! Z0 f6 U5 j - (setq ang (angle pta ptb))
2 v$ K. ~( m2 l( u - (setq d1 (/(distance pta ptb) 2))
, c' ?# E2 E i( O) S9 o$ D2 O - (setq cp (polar pta (- ang (dtr 0)) d1))
& A! V. u, f; I" j2 C - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz)). C1 N. x( V- j3 e$ ?3 q) g) n
- (defun dtr (angg)7 A% t ~+ y/ \% T, z
- (* pi (/ angg 180.0)))9 k- R7 m! ~; j
- - y* r2 w* V }9 @; ?# c4 ~/ f) s
- ;;; ================================ GHI CHU ============================5 C; \' ^/ O* M# k* B( \$ x
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
$ O6 [6 s& |4 M" l7 x9 V - ;;; =======================Thuong Dung Font Romant.vnh===================
0 \% k) ~$ a7 @9 { C - 7 C, t; Z) p; g& O$ {0 B- P
- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
$ a; ~" s9 K3 G - (setq oer *error* *error* err2)
: C3 S* q8 v) Z9 s, Z" D - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")) N$ z+ x7 `' u% x
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
; x+ c/ \' ~8 {; g# e - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))
, m5 e! q/ f, L) c5 T - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))2 h6 v, T s1 Z+ Y: A
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p")), ?# D3 x, D$ m b& ^1 r7 J1 Y
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))
- _ Z+ y @9 S: [# N - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))1 ^" h/ [, {, l9 A! J) g
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))! F/ V2 a6 _/ g9 P& E+ ^% {2 `
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
8 E6 m# H$ [* a2 S. ~' e! X9 G - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
% s: a& y3 H& D3 M Q d) ?; \ - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
- w( a# G: t: H6 l) ~, J" E6 [ - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
( O4 S- `) G* x# Y; T4 l. N, \( b - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
8 z* `0 x* ]! v: @% b - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
, `% w( d: |0 K( D, C$ U) I - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
% h( ]8 `9 ]* I3 \. r+ C7 W8 l - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
) s' D( X' N! { - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
0 T5 t5 t3 l2 p, z - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
* I* u* `6 h8 v - (setq pta (getpoint) ~/ I% H6 t6 V: a
- "\nPick first corner. : "))( U" c$ O( i1 A
- (setq ptb (getcorner pta7 M! U* X/ a6 i# L8 ?, H
- "\nPick second corner. : "))
) U3 V! j4 l' k, w0 ^ - (setq ptc (list (car ptb)(cadr pta)))
! U: A5 R/ L/ ]5 |* B* i5 \+ H# C8 M9 { - (setq ptd (list (car pta)(cadr ptb)))* W% u" r# u( q1 a( c
- (setq ang (angle pta ptb))4 o: l4 q( t9 I7 L% r
- (setq d1 (/(distance pta ptb) 2))
/ A h6 ?9 m4 w& Z$ Y - (setq cp (polar pta (- ang (dtr 0)) d1))' i+ m. W5 T4 Q* {
- (setq X (distance pta ptc))
& k8 C3 E5 {* R6 E+ v- @2 J - (setq Y (distance pta ptd))
# E6 \0 S+ C( ^/ H - (setq X1 (rtos x 2 1))' W3 @, o) g+ q4 A5 W. q
- (setq Y1 (rtos y 2 1))- o% M- ^, v! t) V7 ~: J
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
- P- r6 _; y7 L6 T4 k - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
6 g3 q6 A0 H/ m2 Z% m - (defun dtr (angg)
! l2 l1 c% z9 S4 S- ^" @3 J9 U - (* pi (/ angg 180.0)))
1 k! Z( A9 n4 c# W) r
: O! e* q( T8 s3 c% T- ;;; ================================ GHI CHU ============================
- c- x0 N" a5 n/ L8 J. g$ ?# a - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========" @ r) T: p* z8 W2 @
- ;;; =======================Thuong Dung Font Romant.vnh===================
1 S! n6 H7 q( b1 |# g; V
. n6 d9 y' ]' \" T+ {6 A( h$ z- (defun c:GS (/ a b c d)
2 `9 A) T* @# W; O - (graphscr)
% _+ J- Q0 \- k9 [# J q' W - (prompt "\nSelect text to set style....")
3 f7 S% x d. B+ Y - (setq a (entsel))7 Z- A7 q- ^1 ]' b$ J
- (setq b (entget (car a)))
) v7 L+ b0 t1 U$ Y - (setq c (cdr (assoc 7 b)))
* S# U/ ^% @ Y% n- E - (setq d (cdr (assoc 40 b))). d/ \) l/ b2 u7 j
- (command "style" c "" d "" "" "" ""))* h, M6 ?) E& H: ?5 M8 q5 q
- (princ "\nType GS to set text style.")1 u1 t$ @4 ]* k
) ?( P7 W% s- s- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)4 ~6 P, o0 Z2 T
- (setq olderr *error* *error* myerror)
6 ]8 q9 K, w2 {$ o& _. U3 }& ^1 p - (setq ocmd (getvar "cmdecho"))
W: B' l$ d6 a0 G$ j - (setq oblp (getvar "blipmode"))
5 w6 L) h4 m) B- w; A+ Q - (setvar "cmdecho" 0)
9 e1 t. L; e: M, r$ P, ] - (initget 1) ;3D point can't be null" t* u' ^, ?" H6 q$ a5 X. V
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))7 ^) R8 {4 u7 k8 Z
- (setvar "ORTHOMODE" 1): X4 _1 o; O6 b( g- C6 y% c) T
- (initget 7) ;Length can't be 0, neg, or null6 S# [$ B. y% `4 C6 n
- (Setq l (getdist pt1 "\nLength: "))
+ C% Q; a3 X! I8 S* D) B1 k - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))$ u4 _/ \6 M/ S9 G7 ?
- (grdraw pt1 pt2 2)
2 K# Q3 U/ D. P - (initget 7 "Square") ;Width can't be 0, neg, or null5 g3 D: s3 B3 |- |' D# Y
- (setq w (getdist pt1 "\nSquare/<Width>: "))
* z$ I. n" ]' u( O0 u - (if (= w "Square")
6 m4 S' n% u" s+ {( } - (setq w l)
2 W/ e9 b$ F1 k* k& c - ): O! O2 ~* u: E! \ j% s+ Q
- (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))* a/ b- n- h2 |0 B
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))8 ]$ e7 N* }0 N$ Y: q6 m* |7 E
- (grdraw pt2 pt3 2)
' n- _/ g* G" `! p! H - (grdraw pt3 pt4 2)
3 z9 E# O T. K: b5 }/ G - (grdraw pt4 pt1 2)
2 S# E$ `* T& F9 _5 U# w - (setvar "ORTHOMODE" 0)
, \2 G% A2 W6 \ - (command "pline" pt1 pt2 pt3 pt4 "close")7 j* @7 P' G7 l( T* [
- (setvar "cmdecho" ocmd)
$ O: j/ n3 B$ B$ }# U* b. B - (setvar "blipmode" oblp)& s9 k+ D& ?+ ~, Q7 V- l
- (setq *error* olderr) ; Restore old *error* handler
4 D% r- Y( V6 u0 C8 Q - (princ)
6 F1 W* O* s; O! } - )
4 w& f( c& r! \, Z1 D3 h - * G; B5 x* i i1 {5 [) T
- (defun c:SG (/ ent pt1 pt2 ang)
6 |- t1 |0 B2 z U/ p0 k - (setq cmd (getvar "cmdecho"))' y, r9 x' x) k9 V" q* o8 h
- (setvar "cmdecho" 1)% N* w3 v- c, h, v
- (prompt (strcat"\nSnap angle will be set to angle of line"))1 g, T' ]$ s( Q1 K& T
- (setq ent (entget (car (entsel))))% u9 S0 e9 n, f9 M- A: ~) \5 a
- (setq pt1 (cdr (assoc 10 ent)))
2 g5 y, c! y( V' D4 E$ D6 p0 f - (setq pt2 (cdr (assoc 11 ent)))7 D o- g4 ^, n
- (setq ang (angle pt1 pt2))$ I9 Q. C9 ]+ @+ c
- (setq ang (/ (* ang 180.0) pi))
4 b# M s; G3 y9 T/ I2 p - (setvar "cmdecho" 0)" o. z" T( d- H/ S* Y/ z6 D, v
- (command "setvar" "snapang" ang)
' B- M* o/ h8 k! h l - (setvar "cmdecho" cmd)
) d1 c. k5 v( Y, n7 w, X - )
2 o0 X4 p9 L5 K% y+ b7 V- ^ - : Q3 I- ^- t; G; F
- (defun C:TG ()! x$ M1 ^: j( D p* |! W# P
- (initget "Increase New")
6 ^' H- l3 p1 Y/ }4 p2 L - (setq ans (getkword "Increase/<New>: "))
& u' _% f4 b$ i. d2 y T: j& |# A6 c - (modang)# J& C0 T* K$ H/ p N5 t5 i
- )$ ^; q# C+ N- z% P, `8 I7 C) J
- (defun modang (/ ang ss ca e na ssl)
& a. Y8 ~2 E4 @' ~ - (if (= ans "Increase")1 C* f4 N Y4 P# B8 V$ x) e7 c* Z
- (princ "\nIncrease angle for text by: ")
7 _ `% ~% @+ Y2 D! g$ l4 P - (princ "\nNew angle for text: ")4 m# f0 j$ n& e4 a, g& B k2 a
- )
9 R) D; l k% ]6 o: ]+ A - (setq ang (getreal))
2 c/ a* W. O7 [ - (setq ang (* (/ ang 180) pi))% s" N0 i* L9 k& n; ]7 ~/ t9 s& h
- (setq ss (ssget))' @$ T9 f9 H6 w6 i$ _' P2 Q
- (setq ca 0 ssl (sslength ss))
$ I1 k7 G+ p. N& l" @* {( I# h8 E4 S - (while (< ca ssl)
. w8 G" f' ?" M5 O - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))6 T, R9 F" b6 Y
- (progn$ B. s* z& D2 D- L& L6 P. R" D& i7 V
- (if (= ans "Increase"), ~! g" ?) H- I. ~+ s3 k
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))& i) S: _1 j- W' g! j/ t: Q& n
- (setq na (cons 50 ang))8 O% }' |5 x: y0 p
- )
. j+ r* S$ Q( }+ i3 T - (setq e (subst na (assoc 50 e) e))$ P8 L: h' {' j% ~* _
- (entmod e)
/ K% }- w/ N5 p3 V$ k8 L$ P' ? - (setq ca (1+ ca))
4 i( Y8 o5 r# |) M( K9 ^- K0 v" C' D2 v! o - )8 d" g( p% p+ Q3 ^; K
- )/ ]; D" {& h3 m4 W1 F5 [6 P
- )% l0 f: Q- {6 N3 V* P6 W
- (terpri)
7 B$ w7 @4 H4 ]& e0 x1 b, k2 w - )2 `/ Q' c' M n7 q- |6 w6 ^
- ) g! Z2 j8 F/ p! \
- " \, n" a" s9 f1 p: a
- (defun c:WL ()
/ P& L" o4 [- U - (setvar "cmdecho" 0)5 ]3 _) N) `5 U+ e4 y/ |- S
- (setq a 1)
* I" N4 }: O; n' K! b$ C' a8 B- }& j - (prompt "\nSelect Polylines to change: ")
+ B+ W3 F! s+ A# | D% s+ M - (while (/= a nil)9 h) g* D4 l$ W& j
- (progn$ Z7 O* O9 i, d ?& {1 |
- (setq a (entsel))
7 { y5 b# A* m6 h9 ~ - (if (/= a nil)" n3 g6 q5 R7 M4 a
- (progn
6 N2 s. m* P! W3 b d - (setq b (entget (car a)))
9 p/ f m R6 I# T1 I: P - (setq c (cdr (assoc 40 b)))6 g( ?6 v" }" g! p! Q' |2 b
- (princ c)
0 `; U) W8 U, w7 Y) i - (command "pedit"a"w""lw""")' j+ }" ^5 A3 M& l# J
- )))) : X& T' |4 y: y7 |5 P8 j. t
- (princ)
4 G' }4 H! y' G. c/ z/ E C - )7 I2 j: h& z# b" r2 d- I
: I: x( {) @" }- ;;; ================================ TEXT FIT ============================2 [0 N; ] j0 B; g' A, M
- + K4 }& Y% i5 B, M0 F* e
- (Defun c:FT ( )
. A1 X) n9 y7 O8 O7 _ - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )( j, C8 ]2 K `/ t8 s
- (Defun LL-xyz (arg) (CAR (TextBox arg)) )
$ ]$ F* Y! K, ?) z9 }) h1 g7 l1 T7 ]# b - (Defun UR-x (arg) (CAADR (TextBox arg)) )8 h: E$ s1 X' }& O, B, v4 K
- (Defun LL-y (arg) (CADAR (TextBox arg)) )2 M$ O1 Q) Y( G6 c9 T
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )# D7 } }: u" O+ v. V+ F. Y- L4 e
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
S8 {. h( a3 D% @9 `+ M: X D - Textent (If ename (EntGet ename)) )
8 E3 |' \9 P8 R - (If (= (CDR (Assoc 0 textent)) "TEXT")
% ]' i2 u& J, ` }* e; b - (Progn (initget 0 "Start"), Y8 ?7 l/ X+ q( r% P( s( I8 N- Y/ ?
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) ); a. w" \' h, E! I7 l" `3 J
- (setsnapang Textent) ;set snap along text entity
7 x- R2 x' f: N - (setvar "ORTHOMODE" 1) ;drag along the text
" `$ R4 H' z+ A3 f0 P! B - (setq
: w, x0 f1 G1 l( m3 q/ F - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
2 f7 R8 W1 M4 Y, N - (setvar "snapang" 0)
1 u# Q. B& K7 |; @* R* t5 d - (cond J, L2 K1 o% h9 ?: I' Y
- ((= (type TMP) 'STR) ;;new starting point to be selected
3 J+ e; c; U* i# q5 q) \2 q - (setq Start (getpoint "\nPick new starting point: "))
4 v4 w+ Y- D3 c! ?' k2 p# k* m - (if Start (progn
/ v+ w7 p- F( |: z - (command "_UCS" "_E" (cdr (assoc -1 textent)))# F. K$ i0 @( h; S: c2 E
- (setvar "ORTHOMODE" 1)
2 P7 J3 Y# l! Y/ x - (setq NewPt2 d6 W7 n; F% J7 }" Y& g
- (if Start
- c$ O1 @- G; _4 ~8 b/ U9 Z - (getpoint (trans Start 0 1) " ending point: ") nil ) )
/ w4 ?; I7 ^% m6 _ - (if NewPt (setq NewPt (trans NewPt 1 0)))
: W5 ]( P: j+ p4 C - (setvar "ORTHOMODE" 0)
' ~' ]7 z& E" d1 w, k9 l2 O - (command "_UCS" "_W") ) ) )2 L9 M/ G% S+ ^2 v$ d; v" P9 i
- ((not (null TMP)) ;;new ending point selected4 v3 A) X7 Y x8 E% J: w% D/ ]% @
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )' a( U9 F0 b- \1 D4 G' B
- (t (setq Start nil NewPt nil) ) ) m' P* y5 f& U6 @9 `
- (if (and Start NewPt) (progn
1 m. _" f d+ P! p - (setq Val (Assoc 41 Textent) ;;current width factor
0 u6 j! m8 [4 p7 M5 { - Val (if Val (cdr Val) 1.0) LTC_% 8 Z. [$ i# _: T3 J- a# M) _. Z% g
- (* (/ (Distance Start NewPt) NewEnd ) Val )2 Q9 `* u1 J1 a! q5 p: K
- textent (Subst (cons 41 LTC_%)
' c* P) X S- W3 n, N. V. c7 h - (assoc 41 textent) textent)* s- s" \) `( Y3 O! d/ @
- textent (subst (cons 10 Start) (assoc 10 textent) textent)2 U2 ]/ H# w( ]% N! Q
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )* N# f9 u9 x4 R8 u$ Q$ J
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
7 u2 e9 k2 e. L# K
) ?$ {/ z: _/ S* ~ U4 w5 s& G- ;=====================================================================
1 _. T% l. A4 v% P1 g! G9 c% a - ;=========================COPY + ROTATE ==============================
5 u0 }7 a) s9 s# X- m! x+ r - ;=====================================================================) g7 \3 p+ ~% I; K, D1 D
- $ t( I, |# ~; Y i/ l% N
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)8 _- p0 w" l! r8 n1 ?
- (setq olderr *error*' Y9 f5 G8 q; M1 F% a
- *error* croerr)
0 a+ w4 R7 j1 T7 d8 K6 Z& K' { - (setq cm (getvar "cmdecho"))
7 w* v6 y3 m. J( x) c9 T- b, P& a - (setvar "cmdecho" 0)
6 j1 w6 Y) f6 l" h - (setq loop t)
6 J1 [3 D7 K5 b6 ?0 {( x$ j - (while (not (setq ss1 (ssget))))
9 S; `6 I0 n( S7 `7 ~$ H; E5 a - (initget 1 "Multiple")
0 q J% U. ?# E1 r# l+ C w - (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
~9 R! ~8 m% c+ F - (if (= bp "Multiple")% A8 s+ }2 a$ n5 W$ _$ C5 e
- (progn& r% k# h) N/ O
- (setq bp (getpoint "\nBase point: "))
! Q C' z9 B: |+ f. D! U4 h - (setq mult t)
/ n! k( g& _: | - )
$ q* }/ c& {, o1 _% c- r - )' w! e; V: o" n! j% B6 C
- (while loop8 d8 M9 X7 t! l' u; v
- (setq loop mult)! P) b7 c% E$ L6 h8 u: v, k
- (setq lent (lastent))
- c, I7 i6 D2 g7 b% v+ _2 \, _7 v3 b7 f - (command ".copy" ss1 "" bp bp)* z3 Z: [( v- {) c" {, S9 t- R
- (setq ss2 (lss lent))
# @# p( V y! \. O! l - (setq lp1 (getvar "lastpoint"))
' q7 s9 ]2 H% U) p( E! | - (prompt "\nSecond point of displacement: ")7 a2 H, ]. q; E! G- k
- (command ".move" ss2 "" bp pause)) U% {5 l1 J) M9 R( a2 ~
- (setq lp2 (getvar "lastpoint"))
E1 _1 {* Y1 d" M - (redss ss1)! L3 e5 A: {9 H+ E* n; X0 Z+ R5 J
- (if (and (not mult)9 o$ e# I. }5 t- S3 V
- (= (distance lp1 lp2) 0)
b" `# F2 k2 l; { - )
4 v5 e, ?2 h2 ]6 U1 G, o' J - (setq lp2 (getpoint "\nRotation Point: "))# G' P! X' M1 c
- )
, d; k, i7 ]; q! I Z% i) N - (if mult
! g( }# n# j$ ]. u" @ - (prompt "\nRotation angle ")
& Q% i4 k' _8 w8 ]6 {0 [8 ^ - (prompt "\nReference/<Rotation angle>: ")5 G0 U: l M/ J9 ]# _ {4 u
- )
9 _2 Q B O Y/ E% m - (command ".rotate" ss2 "" lp2 pause)
+ q* E1 r& }! C1 f - ). T4 [4 h6 {, e/ @) o# h
- (setvar "CMDECHO" cm)
" ?1 V3 H0 s2 O F4 X - (setq *error* olderr)
; T- `7 }+ j t - (princ)3 B/ F( X5 y7 V Y2 O* [1 H V
- )
$ v3 _' ]8 V( ]' H) v' \ - (princ)
% f# ~+ v! s! F - (defun croerr (s) $ L8 Z) _4 Q/ z' D" W! c# p
- (if (/= s "Function cancelled") ' b2 ]4 K0 l6 G; ?) V! r! V* v1 V
- (princ (strcat "\nError: " s))- k0 t' t8 ^* |
- ) + f$ L/ ?7 g7 A2 T4 w8 |) T
- (setq S nil), C6 S$ ]. y, U+ [
- (setvar "CMDECHO" cm)
, c: F1 [' ~% t9 u& n/ v - (setq *error* olderr)
# b" a# M4 E* m) h' Z+ x8 h - (princ)7 [5 x+ A" h) w- ?# y* `
- )
! ^* @) |. Z4 Z, w+ \% m& x - (defun lastent (/ a b)$ K$ S. o! F; s6 Z3 I" R( A
- (if (setq a (entlast))
5 J" I4 m0 L" c% A; k - (while (setq b (entnext a))) g# p2 c% b1 K+ Q5 S7 o) y
- (setq a b): }4 U, S1 v7 S, y
- )
3 @- j" }6 Y& ^, p - )
b g1 N1 y# ^% i* J - a6 A! d. b- q6 j. {. D2 p
- )7 m9 p: N/ z& X3 m$ |& s
- (defun redss (ss / en i)! k( o y6 S) c/ F5 x& ]
- (setq i 0)
. n8 E3 ^5 c: T8 D9 x8 u - (while (setq en (ssname ss i))( c3 o/ F; y0 {. o* m- L7 i1 C( T9 b% {
- (redraw en 1)" [4 w" J: k6 k( A- w d3 X C
- (setq i (1+ i))
2 W7 d' |; p3 N# p& j - )/ k6 D& l d0 P. g+ i
- )9 [6 [: D$ e" ?, L/ O5 Y
- (defun lss (en / sels ed)
1 s7 C* U2 \7 ?9 z - (setq sels (ssadd))
3 s; N+ D0 \# n: U - (while (/= en nil)
! w" n+ I9 q5 m9 P: l! q) c* c/ P - (if (setq en (entnext en)) (setq ed (entget en)))
1 o$ j& K: B1 m: Y- O) O - (if (/= en nil) (setq sels (ssadd en sels))), _9 k3 R" ~+ J+ T# r
- (if (or (= (cdr (assoc 0 ed)) "Polyline")1 C, W) s6 Y* h. n6 V3 ]6 n
- (= (cdr (assoc 0 ed)) "Insert")( t5 Q) L" }# e
- )7 U, y: t- A/ W' C
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
6 J4 T0 |( E% ]; E" l3 Z8 k - )' Q9 T8 A9 ]: ^( c% A+ Q2 N# t
- )
# s" f% _( y e0 h/ s5 Z# \ - sels3 o5 ]+ c. i( R" K
- )5 H! Q0 J7 I' \+ \
& `; }/ `8 x- f& ]3 D. P" y- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================# m' O, k6 k' [. Y
- 2 t, \( b1 L$ v) A7 c5 ~5 n( m
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))0 G6 n5 x5 Q; R7 {. y
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
8 \8 g$ O# {, Y3 ? - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))3 f* Q' t4 a# }" V* ~1 k
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
; e/ T9 O4 M7 x$ J. ]3 W4 H. z - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))& {5 b/ ^" d. `0 o2 p, {
- (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))$ B; h2 d+ {4 g8 d+ p L7 j
- (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
8 b+ _' R& E* i6 M9 m& d - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
' E( `" G' L/ n; j7 \3 n5 Z+ T - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))- W4 q7 X4 C) I1 H) q; B
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
% A) h c2 T- q/ ^% E, B - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))5 S6 o/ R m- t5 s$ z! o/ q/ C0 B% E
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))6 S3 ~8 K* [1 S6 |
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))1 }* K2 H$ _! d! a8 w& Y
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
" l5 q- G$ Q4 {2 p7 c: o( F - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
9 e/ ] \/ X3 s6 `# T: S3 x' z - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))0 V; Y7 x2 u5 y& i: f, t' L$ q
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
* h/ ^0 X. Z# ^0 d) y - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
, _+ U# \0 ^+ b* I+ H - (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
" n2 G, l3 w/ N& @' W# \ H' V! f - # B3 U$ O, V2 t4 }7 |# x* B
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
8 F/ f- |7 i( v e/ _& L - c: C7 \7 b \; g; B
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============( I N% O9 R! M
& L$ J5 h0 H9 D9 R# c" u& Z! e- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
1 A) N$ l& i8 i5 v; y1 n - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")2 ^( f% Q7 m( K1 B
; m1 \" {6 J( J" e2 h- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
& T! T" z; }5 U4 X1 L( N- ]' e F" `/ |
8 Y: C+ g' P' A% f- ;(DEFUN C:netxuatanh ()/ e% |1 @# g% z- Y/ f- B4 o9 G
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" """ T+ @5 ]9 c4 U P7 A
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""0 r% w4 [0 }; y2 h: y+ r- l4 P
- "M" "MANH" "C" "9" "" "Lw" "0.5" ""# e' J( Q g4 r3 H
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""6 {" D: z! P6 [$ R- ~# r8 y
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""
, c& [8 T7 i2 y, G - "M" "THAY" "C" "7" "" "Lw" "0.7" ""3 S! _7 q& v2 h" a. k3 Y: f6 O1 K
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""
1 L# ?4 i/ ^2 Y1 S' s8 G: z8 v - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
. b% _+ v1 [5 R; n& y' q0 F, R - "M" "COT" "C" "2" "" "Lw" "2" ""
" P; Q9 O1 m% D9 y - "M" "Defpoints" "C" "7" ""' C, G5 j& c5 e$ V5 L
- "M" "0" "C" "3" "" "Lw" "0.5" ""8 p8 O; |- n6 c. d
- ; "M" "1" "C" "1" "" "Lw" "0.5" ""0 ~+ a# B$ _5 _6 e
- ; "M" "2" "C" "31" "" "Lw" "0.5" ""1 {$ ^( k% t( w3 f
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""5 k9 D. Z( y% Y' j+ e1 ?' I3 o; J
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""2 Y/ m8 @" H, P
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""/ P3 O# h8 Q' X6 n. u" Z
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""
- e. I/ U3 z& F; c: o - ; "M" "8" "C" "8" "" "Lw" "0.35" ""2 [* o$ D- N& m% Z! J! d: i) p0 H
- "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""# `1 V. I( q8 o7 s
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""4 t% s6 M8 c% Q: E" y4 H: p
- "M" "KE" "C" "8" "" "Lw" "0.3" ""8 E; ]1 y; o- w# X; x/ E
- "M" "KT" "C" "9" "" "Lw" "0.35" ""- R( B6 C }/ _ Q; M
- "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
3 H2 S1 s* @3 _ - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
6 A. N! z/ R* e - "M" "TBD" "C" "2" "" "Lw" "0.8" ""
2 }2 [& M% t; n, ^4 F P - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""
" z# ?+ b& N& I. E0 u1 [7 z - "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""0 x- f0 r2 i0 {: `. O- |
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""5 I' P) C' T& g1 r I8 Z' D
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
- y/ q2 v8 b, f( a - "M" "CUA" "C" "6" "" "Lw" "0.5" ""1 T% X4 N k9 |. h% r
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""# v5 W2 D2 }! g
0 }. l2 K/ ^( O* h& Z+ N) `4 E" N& X- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
) R! M0 t7 j+ k# u$ C0 y! q
" h4 X* F% A$ C8 {- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" "") z2 w6 I8 P8 Y! M+ B; r
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
- N' C2 ]" I$ T: M3 ` h& q- X; [ - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""5 i) i% q# N* Z6 W. N8 [
- ; "M" "250" "C" "250" "" "Lw" "0.35" ""
0 W$ `2 k2 P. @ M- r - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""8 v$ x9 r9 N# x0 {. ?$ E, d/ a6 N) u
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
4 a% x+ R+ u e% X
) a' n) l, f- V4 q1 G/ S- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
5 R" y6 [/ u8 D( X% ~, \6 E% F - ;===================================30|04|2024==============================: O' w- }$ L. Y
' v; k3 n; Q1 s" Y: ?- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
: R m4 l1 o+ u. q - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
0 ?# R4 M8 g% P - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" ); s4 k2 F+ ] P( E! ^, `- o% A+ x: u; T
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
* T6 r2 R- n. R& R | - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
/ g% X$ ]( C& _( ` - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )+ N- d/ m8 v. T8 Q. e% S, d
- (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
2 E) w/ a3 u% I2 y& p) o2 o - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
8 l( H5 y( |: x5 g0 J* h - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )' e: _ A8 V1 O9 k( E' v) }
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)( k( C$ V' J6 x! X
- : y8 S U; Y! g9 w: P6 a' G2 v
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
6 D X/ y/ d, _, Q) v - ;===================================17|10|2024===================================
- L7 Q! e2 o% L; q9 q - 0 f4 }0 C+ t5 X0 o. x: L# H3 E
- (Command "DIMTXSTY" "ROMANT-DIM" )/ n; k! {3 j; b& c* m `
- (Command "DIMBLK" "" "Closed" )
0 a' s$ U- h4 q4 v8 f$ H9 o - $ @) e! E8 I6 N+ K( ?) d
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
$ K) ?" x. O$ J, H: S5 L - ;===================================17|10|2024===================================
( h. Q# |! W# e$ `1 J0 n- k0 Y$ f - % p5 E5 O! Q+ O* t3 t
- ;(Command "-units" "2" "8" "1" "8" "" "N")( P; M3 k* U, B% G. `5 ?
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)) P9 Q' w' k; L: z
- ( a; P% J' U4 G! O8 T- o
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=% q' J2 U5 {/ Z
- ;===================================17|10|2024===================================
8 v1 v/ P8 z! J$ m& Y$ F: b3 D
0 ^% r; @2 j! s* e- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====; s0 g* {9 T+ F) E
- & h2 T+ ~" A1 e4 g+ v$ N+ V* s' a8 k
- ;======================== DAT NET IN & TI LE BAN VE =============================
8 `" ]1 L# `* R" H$ e1 z0 C - ( F/ A4 x4 i" V
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================8 h' ?' V6 U3 p
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================! B2 @, _/ N1 p# W: c& p2 ], G
- ;=============================11|07|2025==============================! P3 M2 D5 D2 ]8 T
- ;Ti Le Ban Ve - 1 : 100
* H* `6 ?5 F- \% u - (Defun c:kta4 ()/ g4 k; A% n. r4 b- o4 F+ H
- (setq mv_sc 100);Ti le ban ve
3 q$ J: G$ k; p7 b. \- r( A - (setq x4 297)
, U1 X3 B7 E x+ F: T: A - (setq y4 210)
+ j4 R2 U* r" u& L - (setq x4 (* mv_sc x4)
9 z3 J4 u' q9 v' v7 }" [ - y4 (* mv_sc y4) )+ t* N+ c2 K' P6 V) u% Y' P/ b L
- (command # U: B) j: J( F5 L7 p6 h
- "LIMITS" "0,0" (list x4 y4)# [& e9 g H) K" x) v! Y4 x
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
& p# a0 p! |+ J+ k: k7 z - ;Khung CHU NHAT Chinh 4 x4 x6 B5 {; X
- "RECTANG" "500,500" "@28700,20000"
5 p7 _' I+ @; T! m - "RECTANG" "700,700" "@28300,19600"6 \- j3 E- c+ f# H( q
- ;Khung Ten Chung5 o% x& t( ?# L
- "RECTANG" "700,700" "@8000,1250"3 |! s/ E4 Q: t! M" E* C
- "RECTANG" "700,700" "@17300,2500"
2 [3 U( G# \# Q6 |5 k- v4 N - ;Ten Ban Ve
+ q& ]/ n: O8 h. H; s& k - "RECTANG" "18000,700" "@11000,1250"2 u' |/ }9 }1 g- e1 Y
- "RECTANG" "18000,700" "@11000,2500"
0 T/ Q# x" R; H9 y- E7 j3 f7 F - ;Khung Ti Le + Ngay Thang Nam
0 u% L6 O+ b: q! Q* h& @( E - "RECTANG" "22500,700" "@2000,2500"9 p }1 q6 v% ~5 P& j
- ;Khung CHU TRI; b1 n- a, I" y; l5 i: f2 z3 O4 s
- "RECTANG" "8700,700" "@3800,2500"
3 n3 |( }# c7 k: [ - "ZOOM" "_a" ))
! Q6 U- C$ s+ R' _6 T! Q - ;=====================================================================& w+ D% w: s _4 O
- ;Ti Le Ban Ve - 1 : 100
0 G1 u. X5 Z3 ]4 d - (Defun c:kt4a ()
) f A1 Y1 V+ Q' h1 B: I2 l. R - (setq mv_sc 100);Ti le ban ve
, z% W% J* i2 x- s- h: [ - (setq x4 297)( q8 u8 W0 W/ u) n$ K$ ?( _: ]
- (setq y4 210)4 q+ R0 S* o. V" C
- (setq x4 (* mv_sc x4) ; K0 j0 h7 ]9 F; y6 O
- y4 (* mv_sc y4) )
; I/ C; d8 T$ g+ v: a" y - (command 6 T6 I2 I) T. |7 H
- "LIMITS" "0,0" (list x4 y4)
' ^- b6 s: ~; \! v - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
; w+ g8 k, T- u; \! s' J4 Z# |# x - ;Khung CHU NHAT Chinh " m, O3 P+ f4 i E$ l
- "RECTANG" "2000,500" "@27200,20000"
5 A+ m; G7 ?( N# k: x& L1 ^ - "RECTANG" "2200,700" "@26800,19600"
2 a0 Y% _) j" x - ;Khung Ten Chung* N( d' v& K+ L8 q% q
- "RECTANG" "2200,700" "@6500,1250"% _6 a" C/ l0 B1 V% i6 Q* H
- "RECTANG" "2200,700" "@15800,2500"3 m; N, `/ D* t9 t3 r
- ;Ten Ban Ve# Q! M+ h+ Z2 a1 U0 j' O+ s
- "RECTANG" "18000,700" "@11000,1250"
, _( k6 _8 R6 C$ V - "RECTANG" "18000,700" "@11000,2500"
4 Z0 T: j& y+ A* R1 i% g1 Y1 t - ;Khung Ti Le + Ngay Thang Nam
0 q& J2 p' {1 x5 W+ \ - "RECTANG" "22500,700" "@2000,2500"/ Q. D4 z+ S4 ]' H6 u: P: |
- ;Khung CHU TRI
! `2 S) L. L4 R2 X) Q( a - "RECTANG" "8700,700" "@3800,2500"& j8 J$ ]4 N6 c
- "ZOOM" "_a" ))* j, t$ D9 `+ C1 y* `- f5 h8 F6 w
- . o; X! ~) x0 k! T9 ?, j7 O7 t
- ;;; ============================GHI CHU Khung Ten========================
+ i0 g8 N, t7 D1 l - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
3 W$ R j" T& v5 h+ Y- M/ F+ t! v - ;;; =======================Thuong Dung Font Romant.vnh===================" C" v3 E% _5 ~/ `3 E% H1 m$ h
( p* X9 R v! f- p0 K% s- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
% b z. }/ c/ U/ H: x - (setq oer *error* *error* err2)
* G6 B" G) r; l - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
/ ^0 ~; \$ Z) }) y - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))$ l: d1 B8 N" X. A* x3 ~
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
+ X$ k8 [# y9 r( d - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))3 m, B: X5 v8 V5 q! g
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
# z" f f9 _! Q; D; X4 C" j - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))% d5 C5 @0 F' |) Z0 \# B6 k+ ]
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))& }5 x9 [: H2 Q: V: t$ f
- (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
1 W# I* ?. T, \- q5 ~% f% G& U - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :")); m' O+ [& B( |2 q9 y/ o
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))+ @- H7 k& c/ y5 ]# Q1 a% s9 c5 I
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))2 L5 \: e; g% Z. V; K+ v
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
+ a6 ]. k6 }& i/ D% G - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))% y) c# X7 q" J* b% w0 p
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
) ?4 j5 ~, Y/ t% x - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
5 V! j3 n$ w8 z& u8 A - (setq pta (getpoint: m- H9 V, d3 @+ Y1 b
- "\nPick first corner. : ")) o* X$ e6 v$ T/ a! I/ A" v' \
- (setq ptb (getcorner pta
X" J/ z- D/ M- k/ a - "\nPick second corner. : "))' T8 ?( t/ f2 V' M
- (setq ptc (list (car ptb)(cadr pta)))
t1 W% [7 S: P* ? O" f( ]9 D# | - (setq ptd (list (car pta)(cadr ptb)))
4 _% l( R/ L( o: C - (setq ang (angle pta ptb))
% X5 A5 l L# x - (setq d1 (/(distance pta ptb) 2))
& @+ n- T' t1 F - (setq cp (polar pta (- ang (dtr 0)) d1))/ ]1 J* a1 H0 C( m. z6 D
- (setq X (distance pta ptc))" F# C' V9 Y5 `, `/ r+ f: \0 _
- (setq Y (distance pta ptd))7 B, U& Y _3 J
- (setq X1 (rtos x 2 1))
6 w. b, v3 i; u- v6 D0 R. q - (setq Y1 (rtos y 2 1))
# e, C' v- i9 z G( n - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
: O t( D5 k% g8 l0 f: o' `* @ - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))) d- A5 g7 K/ Q$ j0 v0 P' {
- (defun dtr (angg)
& k9 ]; v" r5 b. I. ^$ t7 u7 z - (* pi (/ angg 180.0)))! ]5 i/ Q1 ^0 r" A
- # b9 a D6 V1 q+ A( [
- ;=====================================================================2 g& ^6 i! E+ P% Q6 `# y1 a
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
- ^ t. T) J* d$ N - ;=====================================================================$ \% {$ A+ h( i5 f2 }0 Z
- 2 F# [5 C. A- U" V# E) P8 x! P
- (Defun c:a6 ()& A/ `, l! I5 z& z" j+ R4 M' w
- (setq mv_sc 100);Ti le ban ve6 ?- I2 f* x. V
- (setq x4 74.25)4 [: i3 B0 P5 V- c p; j
- (setq y4 52.5)" W3 N6 y& { y$ H
- (setq x4 (* mv_sc x4)
1 @+ F' b( @( M+ G5 @& S - y4 (* mv_sc y4) )
% U) ~) Q& n4 R0 n& j, \ - (command
! a4 F# J" K8 V - "LIMITS" "0,0" (list x4 y4)
" c( l3 u% D/ h3 M1 W# U) Y - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"2 [& I$ I8 G( _' ~! Y' M/ }
- "RECTANG" "125,125" "@7175,5000"
; D7 a& B( ^" Y8 ^/ g) T: g4 M - "RECTANG" "175,175" "@7075,4900"
) q. K/ P5 Q0 n! N" G5 F( v - "ZOOM" "_a" ))/ L+ H; ~+ Q* K0 f0 t: ~
- ;=====================================================================
3 X& M0 k8 `7 M! A3 _6 T9 ~+ z8 I( Z - (Defun c:a5 ()
0 P2 M, \; J9 X9 X- h! @ - (setq mv_sc 100);Ti le ban ve
w/ @$ c. G4 A0 h. k* A- g - (setq x4 147.5)6 [; M' P y& ]- v9 c; Q
- (setq y4 104)
; E, I/ a6 _0 _3 L" B( e - (setq x4 (* mv_sc x4)
! p, l* k9 s, q* U# t2 g' V* _ - y4 (* mv_sc y4) )+ u) L9 }5 C" s. h" J0 Z- W/ p
- (command ! q, k. T) f- R$ R3 K! e8 l; o; {
- "LIMITS" "0,0" (list x4 y4), a+ t5 R; C# `& a# I! e4 N0 q
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"4 q! P' k* K% {- [; n- _) ~- l
- "RECTANG" "250,250" "@14350,10000"
& v6 t% H/ d% d0 l: C, F! r - "RECTANG" "350,350" "@14150,9800"
\ O$ A, M- c - "ZOOM" "_a" ))* a6 ~. L; r! u) K$ s# P
- ;=====================================================================
4 p' J' B' R. F7 Y7 Y - (Defun c:a4 (); [$ Y/ U$ U0 h& p( {1 N$ o
- (setq mv_sc 100);Ti le ban ve* k4 `6 z9 A% |& o: z
- (setq x4 297)' W+ Y, l( K/ N. @" T8 ^
- (setq y4 210)
) N% q7 r2 t: } - (setq x4 (* mv_sc x4) 0 `) Y2 J$ J& g$ @; O$ H2 R1 a8 ?( W
- y4 (* mv_sc y4) )
( G, `7 m2 X/ D' i8 Z - (command
5 r; \; q* D Y ? - "LIMITS" "0,0" (list x4 y4)& I. `5 |8 `1 y+ ~
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
2 s' x) V- `1 G5 \ - "RECTANG" "500,500" "@28700,20000"
4 e- x0 k: v; c) U8 c( S4 I - "RECTANG" "700,700" "@28300,19600"/ E# `# e$ @- n: O7 I
- "ZOOM" "_a" ))
+ i: D2 {0 E/ I, ]7 J3 }6 C2 R" v - ;=====================================================================
( }" I1 u$ y4 G$ \3 W# H - (Defun c:a3 ()2 u8 T: z' U3 k# j7 e7 n3 y
- (setq mv_sc 100): w6 n4 H7 m9 K9 H# M0 Y: [
- (setq x3 420)* p$ a! n3 Q5 j3 m8 p; w
- (setq y3 297)3 G w# }' y1 o8 _
- (setq x3 (* mv_sc x3)
1 i7 ]( B+ B- ?. ~' K: L" v0 k - y3 (* mv_sc y3) )
- j9 U) O, X: `; t9 b - (command 1 z9 i! x% i2 r# G% f1 c/ y: W
- "LIMITS" "0,0" (list x3 y3)( _5 [3 [' ]& q3 }5 z
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"4 Q& _% Q7 J1 M' k: T% t
- "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"9 K) \ \& e0 u: {: E: |
- "RECTANG" "990,990" "@40024.28571429,27720"
2 `3 d- L& J/ n5 L" H5 a% G - "ZOOM" "_a" ))* j7 K8 A+ ]5 B" ?6 ~2 ^
- ;=====================================================================
0 X% Y# Q' R- O' r0 c/ H D - (Defun c:a2 ()
6 |- Q# ]9 K0 [; ~/ ^ - (setq mv_sc 100)
8 h+ P& ]6 k) c4 G3 ? G4 H1 ` - (setq x2 594)* I/ ]9 }2 l: h( e0 m
- (setq y2 420)
1 c, A3 A, k% N. E - (setq x2 (* mv_sc x2) $ w2 ?, A- P3 }" H
- y2 (* mv_sc y2) )
5 \% l1 P+ V }: P' v+ H: z - (command
1 E x* p$ |- c6 \ - "LIMITS" "0,0" (list x2 y2)5 o% C! S3 O7 d V* }8 V
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"8 \% a! I: u. |. K* S. @2 @
- "RECTANG" "1000,1000" "@57400,40000"
4 B: o$ g' o+ K1 z - "RECTANG" "1400,1400" "@56600,39200"
0 S6 l k, Q6 F& z4 N5 \# y6 f" \/ C - "ZOOM" "_a" ))8 m- w+ j) C+ a/ \+ C
- ;=====================================================================$ G9 {' b6 X9 B4 R
- (Defun c:a1 ()- c8 Z r( U0 B5 T+ z. m
- (setq mv_sc 100)! }3 r+ G- Z+ j( J* k
- (setq x1 840)# g$ l: b) F# M, }9 `* I2 n- p# t
- (setq y1 594)
9 x6 u) S0 f: I4 I5 O, S - (setq x1 (* mv_sc x1)
0 e: u/ h) p0 x v, c0 k - y1 (* mv_sc y1) )
% \' O! K% V$ d% [ - (command 6 k1 Y d. N/ [3 e
- "LIMITS" "0,0" (list x1 y1)
$ ^. Y. ?# d; K& C - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
9 N. G; P$ b" U& b. ~. C5 \ - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
9 }; a2 K4 k$ @- a' Q: { v% n/ E8 E - "RECTANG" "1980,1980" "@80048.57142857,55440"
( F5 U1 k5 W1 S. A& B - "ZOOM" "_a" ))( i( y: Y" u ^, Y1 u) @
- ;=====================================================================
% l; o7 @ u- I. P - (Defun c:a0 ()
9 u |; i& l3 r' L3 ]* O - (setq mv_sc 100)/ i- S6 k0 a; P* k/ t
- (setq x0 1188)- h: p0 }$ v7 o2 o) y1 ?
- (setq y0 840)/ Y' a7 B/ h+ D
- (setq x0 (* mv_sc x0)
" S8 u# w2 ~* i0 @7 u& U - y0 (* mv_sc y0) )% z" F3 ~4 M* O% J! a/ I9 J! l
- (command 4 `% i( Z* e6 t" Z* w1 J
- "LIMITS" "0,0" (list x0 y0)
4 y5 \ ?+ Q& I$ p& V& S- _4 G - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
7 l* ], o$ \& F( J- | - "RECTANG" "2000,2000" "@114800,80000"8 c4 s9 _' H+ x+ q' F& _$ ?. u
- "RECTANG" "2800,2800" "@113200,78400" A. k& B) T$ D3 s) Y, b; D
- "ZOOM" "_a" ))
$ \# o# h. q1 A; q1 n6 T; l" Z0 n
, F7 [- u( j7 m9 H3 T2 \% R1 ~! K- ;=====================================================================0 w3 k( K5 F9 J0 z0 v" p8 B( z+ ^
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================2 A# C5 R) W- g2 |/ m
- ;=====================================================================
& H* J- Z5 g, d- i( Y6 c6 V7 E - ; b' ~: B. v3 f6 N# ^. N
- (Defun c:6a ()
: i( I, A ~5 E+ L) c& q - (setq mv_sc 100);Ti le ban ve- @* y. ?/ q, O- _5 I( n
- (setq x4 74.25)
8 s6 I1 I! l4 j - (setq y4 52.5)
1 C4 r, \0 N% e) s" D - (setq x4 (* mv_sc x4)
+ F1 q4 \- y) ^ Y5 K - y4 (* mv_sc y4) )6 o6 ^& j$ q; P8 d. S% p
- (command
) w+ b! l4 }; v2 c+ Z2 r0 W/ k, b2 g: U - "LIMITS" "0,0" (list x4 y4)
# z- x5 M: K9 S; o; V% V - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"- I2 a' q1 ]* T( f6 X
- "RECTANG" "505,125" "@6800,5000"3 N5 t; b9 Y: g
- "RECTANG" "555,175" "@6700,4900"0 ?8 V( e* Z* b7 t
- "ZOOM" "_a" ))# X/ ?. r3 d6 U2 J* |
- ;=====================================================================
0 z8 J3 o, B, Z - (Defun c:5a ()
7 O$ o) @) k- J* A# f3 L - (setq mv_sc 100);Ti le ban ve
7 `# O) o! L2 j3 G, l - (setq x4 148.5): ^, {8 E& s' H# u
- (setq y4 105)3 X" d/ m, o. k4 G, z
- (setq x4 (* mv_sc x4)
9 D, F- K, J, Z: x: h) a - y4 (* mv_sc y4) )
% b! L2 Z1 X" Y6 ]; K - (command 8 u& Q1 ]( Q1 V1 u6 b; y
- "LIMITS" "0,0" (list x4 y4)
* h; A q$ P, f7 g3 ?8 g6 w - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
2 T, b- A5 \' c' N) q" | - "RECTANG" "1000,250" "@13600,10000"
y: n3 f% A: ~; e - "RECTANG" "1100,350" "@13400,9800"8 ^: C( _2 Y" W) \
- "ZOOM" "_a" ))
( @. n7 J6 y) ~ - ;=====================================================================
G' Y( O5 C/ o0 h1 O/ U* E - (Defun c:4a ()
# |3 x0 D( W+ {% F& }7 S - (setq mv_sc 100);Ti le ban ve4 S1 A7 }( Z$ \ P4 w
- (setq x4 297)
- p( V. ^( P; \/ g3 ]6 I. n2 ` - (setq y4 210)
0 e) Q/ L9 m& I& d - (setq x4 (* mv_sc x4) ) L; F1 j* p4 I7 w
- y4 (* mv_sc y4) )
% Q( j7 {5 @& w7 i) B" }( s# o# L - (command
# k9 l: z8 v: y# F! s* Q9 Y6 d - "LIMITS" "0,0" (list x4 y4) Z9 D- ~1 A$ Z+ F% v
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"/ t/ V( T6 J9 G" f8 i- t
- "RECTANG" "2000,500" "@27200,20000"" W! S( _* V3 m( p
- "RECTANG" "2200,700" "@26800,19600" S3 m% H0 B2 p( m2 s% B. r
- "ZOOM" "_a" ))
0 ^$ k2 |) K- Z* Y! r% k - ;=====================================================================
. `- Y) m, }6 I$ l5 t* j$ d5 d - (Defun c:3a ()
1 Z0 F1 ^$ W0 f6 v3 d% p0 a - (setq mv_sc 100), T# V7 S/ p7 x' s5 I' ^% g7 y
- (setq x3 420.0428571429)
; r2 j! }% k. B4 ^7 q; f( R - (setq y3 297); t: q6 f7 x5 G# D" L( Y
- (setq x3 (* mv_sc x3) 5 a6 M1 B9 i# i2 j5 U4 i3 i6 z
- y3 (* mv_sc y3) )5 u' N& M6 T# X m0 ?' m" G0 _. K
- (command
0 t7 B* K6 k' Y! B3 U; N$ f5 D - "LIMITS" "0,0" (list x3 y3)/ Y. Z* T; G) c4 W3 @& ~
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"7 r8 f$ P5 g2 j( c5 @
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"3 h5 I3 }& q% R4 ~
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"5 }$ y) _- e( `
- "ZOOM" "_a" ))
9 j' k$ h- l" ~! y& s+ w - ;=====================================================================
( N0 R7 R7 s5 b4 Y/ b - (Defun c:2a ()8 W% C( X* j$ c
- (setq mv_sc 100)2 w" C* E! I5 p
- (setq x2 594)8 X" n' P7 z4 |" e, _
- (setq y2 420)
S: r3 H; `, C2 } - (setq x2 (* mv_sc x2) ' c6 \1 N% S9 M8 `" B
- y2 (* mv_sc y2) )
! x6 A7 g* v: ]8 B - (command 3 p# ~& J0 i0 O$ J# o- Z! k
- "LIMITS" "0,0" (list x2 y2)3 \; z3 G# \+ A6 X. Z
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
. `& G8 x/ {( `' [0 ]# U" s9 x - "RECTANG" "4000,1000" "@54400,40000"* @8 a$ M- X; |% c! T/ {8 R
- "RECTANG" "4400,1400" "@53600,39200"
! W) N* X; P. Y2 t - "ZOOM" "_a" )), J0 s: V9 \, y/ b d0 u/ f
- ;=====================================================================
& b7 |9 ~, F. H( V+ x$ i, S! J4 { N - (Defun c:1a ()
3 n5 ]/ Y" O) P" v |! U - (setq mv_sc 100)
1 m: s) W: F6 B) s - (setq x1 840.0857142857)
# F7 h0 k, a% f- _: T, L: G - (setq y1 594)3 {* z! ?/ i J& _* K3 I) Y
- (setq x1 (* mv_sc x1)
2 ?9 s! H) Y+ d2 c3 C7 [ - y1 (* mv_sc y1) )8 s+ ^3 [/ @- x
- (command
8 \4 F' Y% T/ X2 B: O - "LIMITS" "0,0" (list x1 y1)6 g5 R7 H. u0 q
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
J' S' Z# l% Q; h2 z9 W* n - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"3 z$ h% j3 j; c! d9 @- H, W; D) L
- "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"
1 T& G! J) {# @ - "ZOOM" "_a" ))0 x% ?# E- [% f' W4 o, X; `* X
- ;=====================================================================
& @6 s5 t7 v: J; W4 ~; P3 N - (Defun c:0a ()
& H) ~, G, K3 M* ]: v - (setq mv_sc 100)# v [- | L) Y+ }& K
- (setq x0 1188)
, N& i% E7 L& P1 ?2 o9 D( O7 ?- B - (setq y0 840)
5 }5 |1 D' P. a8 L2 A - (setq x0 (* mv_sc x0) 1 D) Z1 w( d2 Q4 w! C$ L% @* f6 R
- y0 (* mv_sc y0) )
+ R" c1 o2 D- T5 \- E1 {7 _; k4 H - (command
6 W% b" ~8 q. A4 J( W2 O - "LIMITS" "0,0" (list x0 y0)
) f2 n% |- F7 R. m - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"; W4 \/ P# X0 {( ?
- "RECTANG" "8000,2000" "@108800,80000"4 P2 e8 `3 T* u; `. u
- "RECTANG" "8800,2800" "@107200,78400"( O8 H+ Y. Q5 C& _6 S) X7 N
- "ZOOM" "_a" ))! d- r: S, x# j! T- {8 B5 p$ T3 l
- ) O( I' n {) F- ?; b8 U
- ;=====================================================================, p H1 E$ e' J V
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================- w% E4 k1 O5 Q
- ;=====================================================================2 B) O9 J4 |6 O% P0 b
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)+ ~, T m5 K9 T7 B
- (command "undo" "be")+ X. z y- [' p- [) Z
- (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor"))). U) c& c: _# k I- N% o/ L4 |
- (setvar "CMDECHO" 0)
3 J4 F; t5 W9 Y$ ~! r) o, f - (setq a (getpoint "\n chon diem chen :")): q" b% X: M5 C d: r" }( @
- (if (not TL) (setq TL 1.00))
/ @. l S; a2 j; U. P3 Q- \ - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))
' f2 q% C, ?; M) {# a - (if TL1 (setq TL TL1))9 W9 h: m/ c; t2 q3 w* L8 N
- (setvar "osmode" 0)/ e" ~8 m% L' p0 ]+ C
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
8 w) U: u0 d. |; e - (initget "0 1 2 3 4")3 P1 a: Z9 d, w: V
- (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
* ]: h" m; D7 j) e" R/ | - (if (= kho "0")
' T$ {: V9 w: x' z2 ~' c - (progn
6 k3 b( a' h/ Q; i. H - (setq b (polar a 0 (* TL 1189)))
$ a7 q B+ i; L' p. \ - (setq c (polar b (/ pi 2) (* TL 841)))5 I" ?! J6 R$ x' S- n$ U
- (setq d (polar a (/ pi 2) (* TL 841))) R, f; D6 ]* o( N+ ?/ I
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))8 S% k8 P+ q$ W2 c5 M; O: [3 d+ o
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
7 S- \& a) n4 X% R - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))7 X5 `; m% [, Z; K) C$ u- u
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
4 I- F- T' Q2 W/ l: x, \) L/ z# t, } - (command "Pline" e f g h "c")
, R0 p! @+ Q5 D n ` - (command "change" "last" "" "properties" "layer" "0" "") r' y6 [7 c, K2 t* n8 c: N
- (setvar "cecolor" "4")4 ?; ? B$ i) {8 I! @$ ^/ f+ z
- (command "Pline" a b c d "c")0 ~5 X0 L7 y# l0 A1 c4 W* t
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
, I6 A) w5 ?# i3 h" G: L/ P - (if (= kho "1")
- t# W& R+ I3 m9 d% W; { - (progn
7 K. V1 I+ ]- P2 j - (setq b (polar a 0 (* TL 841)))
: f6 D7 t) l7 b - (setq c (polar b (/ pi 2) (* TL 594)))
6 C+ ^# |# O4 ~3 O - (setq d (polar a (/ pi 2) (* TL 594)))
- |5 u: A6 o* o4 {4 Z1 Y/ T; t - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
8 p- S2 B' N1 e R6 Z6 C( O1 r2 m) x - (setq f (polar e 0 (- (* TL 841) (* TL 24))))
2 I6 n+ H- u& k" Y i& F: ? - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))" f1 `7 \$ q( i. O
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
- N) V/ D# v( @, X - (command "Pline" e f g h "c") 2 F" ?# b# C: z' W- T y* R5 I
- (command "change" "last" "" "properties" "layer" "0" ""), {$ _9 ^, Y8 J
- (setvar "cecolor" "4")/ j: e% x! _' f
- (command "Pline" a b c d "c")
$ ?7 |' I! C) H- |( n! h3 g3 ` - (command "change" "last" "" "properties" "layer" "defpoints" "")))- o7 s: s2 _0 p c* v! D: f
- (if (= kho "2")
( S/ G( Y: a+ P: N0 b- t+ T - (progn
, Z0 t% t# E& _/ s. G - (setq b (polar a 0 (* TL 594)))2 b/ ] j# a X
- (setq c (polar b (/ pi 2) (* TL 420)))$ L3 f0 ^$ A$ K# V6 x
- (setq d (polar a (/ pi 2) (* TL 420)))
7 i: O, u: }3 Q; P$ x& }7 w - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))2 e! U0 K9 Y5 U. y* D
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))
v9 R+ h8 f% [# ^4 B7 [0 ? - (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
# k5 Y- V# b9 |0 E/ M - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
/ M3 x5 G A" a" n( S [& ? - (command "Pline" e f g h "c") " w4 S0 T# x# T4 F
- (command "change" "last" "" "properties" "layer" "0" "")- `; `, t( N: |- `
- (setvar "cecolor" "4")7 y* `1 T5 o* R7 U2 s/ h
- (command "Pline" a b c d "c")# Q/ E. w) S) A% ^# M+ V6 s
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
& u; G1 [0 _! b8 X5 D2 \% l4 @ - (if (= kho "3")
4 g* R- m& S, e - (progn, [$ j0 J( }% w1 ], J- d
- (setq b (polar a 0 (* tl 420)))9 I! F0 f; @( s2 z1 y/ ?
- (setq c (polar b (/ pi 2) (* TL 297)))
0 ^7 L8 u8 [1 r, Q. a - (setq d (polar a (/ pi 2) (* TL 297)))
; [% }1 s; o7 v, g4 `6 L - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))# V: U, {1 ~0 C( k2 b2 X$ a, l2 u0 I
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))
$ p8 e, Y. @2 n: ] - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20)))), S4 n8 f4 D' W* U$ J
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))& x6 G2 B6 h3 R* H6 A; q8 T) p- x
- (command "Pline" e f g h "c")) j2 F) s/ L2 \ `9 U: v% X
- (command "change" "last" "" "properties" "layer" "0" "")
* C% y- f- V# f% T8 m: I* @1 z - (setvar "cecolor" "4")
& ^; w1 ~- V& B+ [ - (command "Pline" a b c d "c")
# O$ N3 [# y0 o - (command "change" "last" "" "properties" "layer" "defpoints" ""))). F. m- }/ k5 J2 V1 |
- (if (= kho "4")' R+ H1 ~, c" x+ O. s
- (progn- d" E/ p, j' X) F
- (setq b (polar a 0 (* TL 297)))3 w! b5 Z/ u8 s
- (setq c (polar b (/ pi 2) (* TL 210)))( d2 m" A3 l0 _9 s" M/ Y$ S
- (setq d (polar a (/ pi 2) (* TL 210)))- X& _0 f, v- B- l$ p
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
+ {9 @- Z: Z8 u6 F% [" g - (setq f (polar e 0 (- (* TL 297) (* TL 18))))2 r/ [' A+ n3 \
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
: Y) O: D |( V7 L - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))$ ^# I4 v& v2 m4 u. C! n6 u7 }7 O
- (command "Pline" e f g h "c") 2 q+ |3 c# b/ p+ R' S& B7 d; B
- (command "change" "last" "" "properties" "layer" "0" "")& a! j* G/ ?6 d6 X4 Y* o
- (setvar "cecolor" "4")
2 @6 @, O5 b: F2 w - (command "Pline" a b c d "c"): I G7 b% T! e9 _* {5 J* \
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) W8 {" ^! G5 f9 a5 ]( Q+ G
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
* v2 R2 `& s5 j. | L. j0 p - (command "undo" "e")3 ?4 R* v0 k/ l8 A* D' r' s
- (princ))
8 W/ u! k% p. L# d4 {' ^ - ;=====================================================================
/ t5 t; T- K( e% M& }7 j$ N - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
, o6 N' {$ q. A" V - ;=====================================================================5 Z$ f5 Y! B3 j) B
$ n6 J8 h/ N' q3 R- n1 o- ;=====================================================================
$ n& h6 z/ ~/ O" J, G - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================8 s' t, e2 F7 E8 d, Z+ w/ c
- ;=====================================================================
1 t @2 z+ o4 P) [' ?5 h/ N - ) V6 v: E: D9 R+ V u
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""7 k+ h+ N+ Q. w- Q, x
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""& ~; Q n6 e! X, F
- "M" "MANH" "C" "9" "" "Lw" "0.1" ""
' t% c: Q8 C; V, | - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""$ h% ~* F- M; b1 A4 a$ v
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""( F% s/ s; J: j: m- o) z, \1 r; f( G
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""! Z1 Y4 X; b9 s% E& v
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""8 q9 E; e4 T4 |7 k, B" ]7 U' @
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
, @3 m" a' `' [& E1 k6 v1 M4 B# @ - "M" "COT" "C" "1" "" "Lw" "0.3" ""' }8 Q0 D- ?' H
- "M" "Defpoints" "C" "7" ""+ L- f; o' s1 y! I' q" s
- "M" "0" "C" "3" "" "Lw" "0.12" ""
, ]7 C, V A) Y' P W& u - "M" "CUA" "C" "6" "" "Lw" "0.12" ""; i4 g# ` D$ i$ x8 T- m
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""# ?0 S0 u* s/ I2 X& w" Z
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
, [* i' F: B @) U( | - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""7 n* f4 |3 a* \- R1 J4 u
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
/ C7 E0 a8 S& N m/ V. H - "M" "MANH" "C" "9" "" "Lw" "0.12" "", X1 R: K# I! j
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
3 B& n( w) W! R2 A1 ^* b) Q0 Q - "M" "DIM" "C" "1" "" "Lw" "0.2" ""
, V) H4 y+ r x! h; R+ ^( q/ [7 Z) n - "M" "THAY" "C" "7" "" "Lw" "0.2" "" z! K5 q- @- z0 l; ^+ \* n, z) K
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""
' K" G+ l/ E" B2 e - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""# ]9 f5 y7 J; S# E$ ^: j
- "M" "COT" "C" "1" "" "Lw" "0.4" ""
6 N7 g1 \* t( R. N - "M" "Defpoints" "C" "7" ""! {. ]7 d; N& j( }4 s; G
- "M" "0" "C" "3" "" "Lw" "0.2" ""
) q' u: v7 F# J! p5 P4 I9 h - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
. c" d2 [. _1 M' ` M1 u0 r - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
: @ ?) R" W1 \; J6 J+ j x - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))) i( ]9 w# l4 Y+ e$ ]6 B8 {
- (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
! d: D6 O; f/ | - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""4 K8 j/ f7 @' R# e
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""6 c9 v% m% @( J) y; `
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""- e- w& T1 B! |; M
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""1 H) t' L1 O1 k# Y. }( X x
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""3 C0 @" E; s9 F2 @0 n
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
t) k$ W+ B0 V5 L1 i: s - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""1 q7 h( B7 [3 B- w+ S
- "M" "COT" "C" "1" "" "Lw" "0.6" ""7 u3 ?" v5 f2 A# _
- "M" "Defpoints" "C" "7" ""
) Z- [- T, X* ^3 Z - "M" "0" "C" "3" "" "Lw" "0.25" ""$ R, B. e" d) z* G, s' K3 {
- "M" "CUA" "C" "6" "" "Lw" "0.25" "") o+ l6 u: t9 k, u/ r: o: J" s* F
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""- K5 x& j1 l9 Z i' [: i& R+ v
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
Q' ?4 m; g u' L% Z0 ?& o! E- S -
" ~7 i9 J ?6 D6 | - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
9 y! n2 a7 u8 P, Q0 [# h - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""9 `2 |% F! e0 \/ |8 [6 {
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
' T8 z1 h- k5 J3 y- a. F# ?" V/ m& U - "M" "TEXT" "C" "7" "" "Lw" "0.2" "" \8 L; V1 r& |: I( f/ U
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
6 X2 D- L: V1 @( g( v - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
- L& J% R5 u6 F1 } - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""$ J% V( F8 t) r& g4 p5 u8 @# n
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
# J9 a! A9 g9 A* X - "M" "COT" "C" "1" "" "Lw" "0.7" ""
4 z: y3 W; q7 S5 U - "M" "Defpoints" "C" "7" "" D" f) g r4 r H2 T
- "M" "0" "C" "3" "" "Lw" "0.25" ""
# f- x) d8 v9 V0 o! | - "M" "CUA" "C" "6" "" "Lw" "0.35" ""$ D6 x! Y) O& A- [+ a
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
5 h$ p4 {% e' x3 A) L - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
7 b& }2 C6 o. p) G. y( _
, s% _( Q, W9 l+ T( {( R- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""% j* M, R8 \8 p8 t$ ]
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""$ e1 A, T/ f2 G, r
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
: I3 s' A0 |4 j2 U' Z0 }/ o5 J - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""4 |- k+ V6 a0 {( ]
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""& y" m2 Z! ]8 A4 c' g4 Y
- "M" "THAY" "C" "7" "" "Lw" "0.4" "": s! Q2 L3 N2 f6 m4 Y
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" """ `$ c, n$ W1 J7 N
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""9 g, R: c0 h [3 G7 u/ y
- "M" "COT" "C" "1" "" "Lw" "0.7" ""$ E; F* |/ b7 Y/ ], U: i
- "M" "Defpoints" "C" "7" ""- e4 C5 y$ t6 ?8 F- I, \
- "M" "0" "C" "3" "" "Lw" "0.35" ""9 ^; m) ]9 e, l" z1 ?
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
& \& D$ ]0 o, r' w - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
: w# Q% t+ o3 \% ?) R: Z3 u; K+ P( K - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))9 a8 ?% \' [" e9 L, M
& p7 r. }: S4 M# p+ ?4 Y/ @- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""6 z0 S T! W0 `- g& l
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
7 P( ~, ^0 b3 ^ m - "M" "MANH" "C" "9" "" "Lw" "0.35" ""9 s% {" x( Y6 ^/ K7 G( V# [/ `5 j
- "M" "TEXT" "C" "7" "" "Lw" "0.5" "" K) k9 @& W5 ?) t ^! S1 ]+ H
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""& ?$ T) ^( y2 `$ W* _7 g
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""( \* v/ P8 W0 T4 _9 i
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
3 Y- Y" {1 w; w8 m - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""6 Y+ `; j; p1 q: J7 A
- "M" "COT" "C" "1" "" "Lw" "0.85" ""% ~2 S, J: H0 O% _' Z' v
- "M" "Defpoints" "C" "7" ""
, G, d) U( y& r1 n9 X) b+ M - "M" "0" "C" "3" "" "Lw" "0.35" ""
; u) q0 z$ }, k! c - "M" "CUA" "C" "6" "" "Lw" "0.4" ""
* x2 V" i8 f7 L% q) V" |1 a. B- H% Z - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""! I! C9 F3 s* B. z. b" A
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
6 i N; N I/ ?* [* g+ E! v - + K5 p8 L& G4 w8 [* c! b
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""6 i- V+ y) ^& m
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
' H% L, V0 K9 B, n- U: J - "M" "MANH" "C" "9" "" "Lw" "0.35" """ ]! H$ I) `/ Q* o- l- ~' Q
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
1 a9 w9 d. v/ l, h* T, } - "M" "DIM" "C" "1" "" "Lw" "0.35" ""6 Y' g l$ e0 \) x) `4 S/ O: e" x
- "M" "THAY" "C" "7" "" "Lw" "0.5" "") \6 m2 }4 l4 h" V
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
5 X! k) m% N. K - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
" I5 }3 Q3 d3 t( o, k4 I) @ - "M" "COT" "C" "1" "" "Lw" "0.1" ""+ q( B5 o6 h- U8 `( Y6 _7 K
- "M" "Defpoints" "C" "7" ""
+ H; W2 [: p6 s! v5 E) v$ W - "M" "0" "C" "3" "" "Lw" "0.5" ""3 @$ G) \; b; p
- "M" "CUA" "C" "6" "" "Lw" "0.5" "" x T6 U) b. w, k
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""8 {9 {3 S% U& T# k. m
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
, h% f, d/ U5 A0 U+ ~" C - (DEFUN C:O () (COMMAND "OFFSET"))
, n; H+ i' y2 [- t- V* Y - (defun c:s1 () (command "surftab1"))
9 Q4 Q* E7 T+ g! A1 u( G5 H - (defun c:s2 () (command "surftab2"))
8 j. r& F0 X9 r% ~ - (defun c:ep () (command "explode"))4 B1 l- S4 J: P2 h3 ~
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
7 }. f' d2 r3 g/ e - (DEFUN C:QV () (COMMAND "QSAVE"))* d: n; K2 b# L0 u: ?
- (DEFUN C:S () (COMMAND "STRETCH" "C"))
; N9 G) M) u$ _7 r2 I: m
( m% W/ i, x, U: Q- ;************************** CAT DIM **************************" v+ b N+ {. ^
- C( z! f! w6 i5 a7 v* ]- ?- N* {6 f- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I7 X2 q/ y, N6 w# I1 R! I) ~
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
2 Z) X" X% d+ K4 F# ^% w - (SETQ CMD (GETVAR "CMDECHO"))( A y' O1 K4 ~6 f* X- n) ~, ^
- (SETQ OSM (GETVAR "OSMODE"))0 m, j2 m: w" O& U5 s+ U+ h
- (SETQ OLDERR *error*& j! `$ j" V4 |! E$ ?& b' o4 q+ @
- *error* myerror)0 G$ l& _6 e* `% U5 E( r" O1 Y
- (PRINC "Please select dimension object!")- p7 K2 q' O! v$ n
- (SETQ SS (SSGET))+ l( {/ Z% r; ]4 w4 q G
- (SETVAR "CMDECHO" 0)
7 x' G3 C- w, a$ g - (SETQ PT (GETPOINT "Point to trim or extend:"))0 m0 l' W& \* u: c' Z6 S1 Y
- (SETQ PT (TRANS PT 1 0)) ~% X% L4 x6 n% C: m" x% |
- (COMMAND "UCS" "W")! Y. _' _ C9 w
- (SETQ LTH (SSLENGTH SS))) r0 ?+ a; u n7 n; i
- (SETQ DEM 0)
0 b/ r: r2 G1 `- j1 D$ { - (WHILE (< DEM LTH)* q% N3 L: Q" ]! V5 e, i6 H6 s
- (PROGN; T, o7 S1 v6 n! M
- (SETQ DS (ENTGET (SSNAME SS DEM)))$ {' V' J P; k
- (SETQ KDL (CDR (ASSOC 0 DS))): j$ w9 w5 z( p) \& S
- (IF (= "DIMENSION" KDL)
) U( x, ?( v0 D6 ]% ~8 j! h/ }# K - (PROGN H* N7 F- O, c) r4 G
- (SETQ PT10 (CDR (ASSOC 10 DS)))
6 `1 K: o' m: P l& A4 Y - (SETQ PT11 (CDR (ASSOC 11 DS)))9 w6 k5 v. S" \ z6 T. y
- (SETQ PT13 (CDR (ASSOC 13 DS)))
- f( u, G F1 i' o$ ?: n8 P7 C - (SETQ PT14 (CDR (ASSOC 14 DS)))0 a @) ?+ w, h* Q
- (SETQ N70 (CDR (ASSOC 70 DS)))
3 B" Z$ b, k5 C) q - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
7 R/ Z- q6 i, a% R% Q$ p0 n0 M - (PROGN$ p7 ^" U1 C1 X; [! }1 j
- (SETQ GOCY (ANGLE PT10 PT14))7 H; w: `1 n% \1 z4 E% _" C' h
- (SETQ GOCX (+ GOCY (/ PI 2)))& U( m1 r1 F# X
- )
% g B! r- s4 j7 M$ c - )! x! Y [1 n3 S+ x- K
- (SETVAR "OSMODE" 0)
; s- M0 k Q P8 x8 y - (SETQ PTI (POLAR PT GOCX 2))
( |7 j) b- X' P - (SETQ PT13I (POLAR PT13 GOCY 2))8 r+ |) d$ A) [3 b" {; d
- (SETQ PT14I (POLAR PT14 GOCY 2))0 F3 V0 w5 G0 s! d
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))( x2 P/ Z/ a- w! P5 Q' P5 p4 u
- (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))! @* v _( {; D; }
- (SETQ O13 (ASSOC 13 DS))
8 m; ~$ \2 Z- | - (SETQ O14 (ASSOC 14 DS))
: ?2 c/ D4 X5 V% t G0 J/ D9 Y - (SETQ N13 (CONS 13 PT13N))4 `# i6 p, g" @9 Y1 H* _5 N
- (SETQ N14 (CONS 14 PT14N))
8 w) {5 b2 }2 u9 V B3 M( o* I - (SETQ DS (SUBST N13 O13 DS))
4 z( K- r5 c: M* C" Q. O - (SETQ DS (SUBST N14 O14 DS))! R0 } A! E# u; P( F* {9 w/ U
- (ENTMOD DS) C7 d' r2 E3 O+ ]8 r3 n
- )
9 o9 J4 ?- ^# k; W$ l" v - )
/ J+ E% g' E [% m1 D* x - (SETQ DEM (+ DEM 1))
, G7 L( w) ~. o" G: l6 l" e D7 _6 y - )5 E0 O7 A4 J5 X) r
- )6 P- _! z) R, E+ g$ ^* j1 k; N, j
- (COMMAND "UCS" "P")2 R) t/ `6 r7 P+ \" k
- (SETVAR "CMDECHO" CMD)' c1 c, J; D- s( S/ w% W6 O
- (SETVAR "OSMODE" OSM)
' w$ M) i3 b/ E8 z2 W - (setq *error* OLDERR) ; Restore old *error* handler
! d7 G- \. S5 E7 b$ s - (PRINC)7 {2 o( O8 a: g( m1 c' }% T! t
- )
2 f% c, ^4 U$ R8 H2 S) g* y
& H0 u' ], A8 r5 i& e/ @" S- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI1 S& D6 c* [; u1 Q
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
# r3 n% w6 Q+ F. T+ k+ _ - (SETQ CMD (GETVAR "CMDECHO"))
6 l7 Q" ?& I+ S% j! V - (SETQ OSM (GETVAR "OSMODE")); `( J/ v( \' }& M0 l) g+ W% V
- (SETQ OLDERR *error*
8 |2 m7 O: _5 t/ ~0 i( D - *error* myerror)
6 W8 m& F) b1 x- T; F% L, y - (PRINC "Please select dimension object!"); J; V# [5 _& @8 L5 {8 n: D: c
- (SETQ SS (SSGET))- E4 Y) }* q$ F
- (SETVAR "CMDECHO" 0)
* ?6 x" q3 g6 J/ P4 b! ?6 U - (SETQ PT (GETPOINT "Point to trim or extend:"))8 }8 a1 }4 x% `6 e7 p2 e' F
- (SETQ PT (TRANS PT 1 0))
& `( g% E) B) x4 m - (COMMAND "UCS" "W")! x1 }5 t4 c8 \2 q4 p- b6 X
- (SETQ LTH (SSLENGTH SS))1 C, O7 G/ t+ G3 ^! V0 m
- (SETQ DEM 0)- a: B& v1 x' C0 a
- (WHILE (< DEM LTH)9 @2 I! X6 Q( C6 m1 Y$ q2 ^/ z1 ^" Z
- (PROGN
! B3 K) a5 N7 l' _ - (SETQ DS (ENTGET (SSNAME SS DEM))); C& Q8 e, k& {# D6 Z: Z; v2 M# s
- (SETQ KDL (CDR (ASSOC 0 DS)))+ c( J8 u1 N4 W, @/ a
- (IF (= "DIMENSION" KDL)
8 R( u; ]9 m+ T: w, z `# D, L3 r - (PROGN
9 ^& `: ~4 n6 p - (SETQ PT13 (CDR (ASSOC 13 DS)))
/ P% ^9 j; \( Q: V - (SETQ PT14 (CDR (ASSOC 14 DS)))/ f8 ^* f: D* K, E
- (SETQ PT10 (CDR (ASSOC 10 DS))), Z* [, F7 [) ?( U; D
- (SETQ PT11 (CDR (ASSOC 11 DS)))
* S; [2 B# a6 [, I& {7 R4 Q7 z - (SETQ N70 (CDR (ASSOC 70 DS)))
( d$ U% _' J& P1 O - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
7 Z2 Q6 g" c0 L. I1 W - (PROGN
- g8 m5 b7 u9 X - (SETQ GOCY (ANGLE PT10 PT14))5 [. _: S. e, c& c4 Y
- (SETQ GOCX (+ GOCY (/ PI 2)))6 ?. }+ U( Y1 P9 A F
- )4 o6 F8 g7 P- }* X- u& ]5 x: F
- )5 i3 ~ {0 ]" q+ j
- (SETVAR "OSMODE" 0)3 ~: l0 p9 J" s6 R$ C
- (SETQ PTI (POLAR PT GOCX 2))3 h- O Y6 T% K0 R6 _
- (SETQ PT10I (POLAR PT10 GOCY 2))
. {7 [) g" F, \ - (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
, B" s) G; e$ i6 q) Y5 O( E8 L - (SETQ KC (DISTANCE PT10 PT10N))
+ e( i0 T( x, d/ o - (SETQ O10 (ASSOC 10 DS))( X# u8 H0 w9 Q7 g. S
- (SETQ N10 (CONS 10 PT10N))% b' E" {( R+ {; E
- (SETQ DS (SUBST N10 O10 DS))
$ p# K. `* E" C* A" A - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
! q% G+ ]; |$ h9 ^ - (SETQ O11 (ASSOC 11 DS))1 G6 S! C( [# ]4 ?: d6 E$ j5 z
- (SETQ N11 (CONS 11 PT11N))4 f* q+ F% M# R/ s" \
- (SETQ DS (SUBST N11 O11 DS))" U8 } M' {" v. E! l0 g
- (ENTMOD DS)) Y; O5 J5 m% V3 \' q' G
- )
4 O. x) { A+ P7 F% a4 n - )
7 k# }2 c7 E: q5 l) d) J. i - (SETQ DEM (+ DEM 1))# u. @! W) a: y4 w
- )
9 |5 k. C7 A1 r - ). X$ M7 D4 x- p9 R- p4 ]9 f2 X! V/ t
- (COMMAND "UCS" "P")
/ x( w9 n. e+ Y- U - (SETVAR "CMDECHO" CMD)
' ?% y5 z: s; i6 o5 [ - (SETVAR "OSMODE" OSM)* u9 ]6 r% }+ b k. K
- (setq *error* OLDERR)4 `+ C& d+ B% M' d6 M- k; a
- (PRINC)
; \$ ]' q% q; t! t - )
; a$ ~# ~) H d( c0 v
% H" S( O" R! Q5 |# H( N9 K- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
! i$ @: [+ }* A' q4 Q' v - 5 l* n% F- \5 ~% p) n7 q$ ~
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")' G! a% u; @, p# z9 g+ c( U0 ~0 ^$ K
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
# W0 J5 i: L* q8 L8 } - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt: ^4 M& s+ d: {8 |# Y
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
$ b! j( n& w# F/ [0 g! u - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")0 o: X7 T) u* T( G1 e- }
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))1 Z- {! \" q8 P
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
1 Z5 K+ ?! U8 e% [ - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))2 L; t$ D( D. P0 V
3 Z6 p1 R5 \- `6 `- ;;; ================ CHEN COT (TUU) =================
9 Y, H3 Y. A3 [' z5 S* e - " ^3 }0 s( [$ Q: u. @1 I
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")7 Q+ C5 R1 | V# v7 v, t
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p") L5 \5 k: f; I& Q5 m
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
5 Z9 F7 s" ^: k2 ^( g; m) Z - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))4 r( \, n9 |+ [0 C( O
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")6 Z. J# x$ @8 L( |2 u# }0 N
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
6 H/ I( U, U1 y/ O# g' X! m$ H1 r: ` - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
% u% u, y- {8 J6 s% ? E. i. f; k - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
8 a# ]+ Z: e) T2 ]2 R - K4 p% G3 P' Q7 D; {
- ;;; ================ CHEN KY HIEU THEP (TP) =================
, a1 x N/ Y1 H7 e
% c& L: A* h! i; |) B* U- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
9 h) v9 {; m t9 ^/ T. x4 X - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
0 U( s1 L6 J4 B, Z2 L - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt9 Q' ~- ^; m0 o! v! j
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))! W& h' Z) S# x! q; P
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
# Z+ ~) B) ^; Z( P/ G8 g4 P - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))& |* h& w2 K) {9 r
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
& O: ?: w( G3 k4 H - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
G8 O) N6 A4 Z b! H - 0 e0 [8 n& i3 Q f2 ?8 D7 J8 T' ^& }
- ;=========================== TAM TUONG (TAM) =================================4 h9 T U3 _5 H6 j: s4 w. b& h
( p$ q1 R2 b0 q- (defun c:tam(/ data_m)
1 _; G0 n1 x$ I; N$ n( F6 k" u - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
5 x6 m- I4 @8 P7 n1 s2 e' T7 T4 {& j' W - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
( G0 H; Z& ?- D$ _4 G" R H* I - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)4 Y' W; P5 ^5 C5 e$ b( a
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset! ^+ A$ O# \' {& W% _
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr" _! s8 X! Q8 J, N9 s
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
* W4 V2 A& T& y( r+ C i - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if& u+ a9 z, [! L" B7 K% m& w
- (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)) [# q$ p: k( `. \1 y$ e6 Z
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
/ ~1 }; ]( W+ ^4 {9 H3 |" p% F - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))- _# P! U3 r1 E- h
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<9 O5 Y+ M8 } j6 w+ n# D
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
% ]5 h7 P- [4 y - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))$ a/ p* Y( _$ v; Q7 ~
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4) j6 H: ]% W2 E- f& `. J
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
% B8 F: f% L* W - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
2 }) `8 w1 G7 U0 Y/ d - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))3 y) `5 ^3 Y1 {6 Q" r4 Q
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))0 j N$ Z! t/ J9 s
& A7 m5 i1 \) g- ;============ GHI CHU PHI (T1) ================
8 J# B6 e' D- F- j( s
# o! _ ^; Q! @- d# Q$ v3 H- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
2 C$ P4 }( C/ p @ - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3- z+ E7 \0 R4 Y. G/ B
- (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
- \( A& d+ I e: a* T* d - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)& P' m/ i; d) @
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
' ^/ Y8 H# |) V - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
/ t& n$ d4 i! y f - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
. g O! E) j& R, X' w9 C - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
% T, [2 ^2 w# B9 g3 w% G, F# D8 u - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
* R5 T' \( n$ J* }* T* B) |' B" |" r9 c - (command "ddedit" pause))
6 P* K7 [ f1 P8 B5 b* `; m' W - 6 E6 a6 V( q4 ]( G1 C4 K! d+ ~
- ;;; ========================== Join (J) =================
Z r! q$ A4 `: @
2 H8 C; w# S1 l/ H" k7 u; x6 R- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget)). _! U _/ t4 ]& S
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))" c3 o$ w5 O4 A- w% g
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)' F5 n& x# d9 a9 F/ t/ w. e, |
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
" L9 |$ ^5 B9 ^3 j. V$ s( W; d - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
' I& [- W6 p: P0 w* O: s - (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))8 z% P8 @! V* {3 e
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
) I' E1 ^$ d8 z. F9 R; B; W( f - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))) o q# g, F) A, u/ p) N; t: L
- (setq *error* m:err m:err nil)(princ))
+ E+ Y' p; A+ R5 x - - f L! x0 j3 o$ {% H
- ;=====================================================================/ @4 Y3 Y7 {0 b
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
; w( n& r0 |% o, ] m# o - ;=====================================================================
7 k, a/ l& ^, F5 S/ B: R - 8 b. j% l6 u& m
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
/ _- d7 n5 ` \. Y0 W# R+ d - (setq old (getvar "OSMODE"))
5 w! |' M: H) h - ) B0 ?4 D' W/ b) Z/ F; y
- (setq p1 (getpoint "\nStart point:")). v0 k. a1 X, w
- (setq p2 (getpoint p1 "\nEnd point:"))6 F: |1 z7 _: w) C6 P2 I* R
- (setq side (getpoint p2 "\nOpen side"))& c" t; o; F! }) j0 \: ]: _: F- F1 g5 z
- % m: b d/ c% ]0 M
- (setq dis (distance p1 p2))/ w0 P6 T* n- Q- |5 J
- (setq ang (angle p1 p2))
: [( r! e' F# N$ C4 d9 @8 q6 c - (if (< ang (angle p1 side))
; G/ q, ] J4 v( c- k2 V - (setq angside (/ pi 2) )3 b/ j# ^* L: } ?
- (setq angside (- (/ pi 2)))0 C' f; X/ q& z/ Z
- )8 r+ c, G$ p6 i
- (if (>= (- (angle p1 side) ang) pi)
5 B0 k2 B4 v, r$ m - (setq angside (- (/ pi 2)))
4 n& Q# n/ {: T2 i5 p2 B - )4 m; J. Z: g' H v4 P
- (if (>= (- ANG (angle p1 side) ) pi)7 x: [8 b! C: s" ^$ f* V" }
- (setq angside (/ pi 2))3 N! w3 {3 J6 R! G% z8 F7 D
- )
% s6 l- `# N6 z, }" I4 P; \9 \
; Z- [# u% K5 U- O* B+ l- (setq p3 (polar p2 (+ ang angside) dis) )
. z5 e1 S, X% E: v+ e- A - (setq p4 (polar p1 (+ ang angside) dis) )! J J3 U) o3 [& b2 J, g7 B8 Z
- (setq wid (/ dis 15))
1 b7 Q9 T1 j5 K/ a; ? C - * j, r2 t3 q9 }1 e% {. o8 T
- (setvar "OSMODE" 0)
4 R0 `. V# }& i, v& a - 3 y1 Z2 f3 g( d+ W# H: {
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 ! h- I0 K1 G3 L- A. O. i& Z
- (polar p2 (+ ang pi) wid)
- o) ^/ X& ?, D$ v - (polar p3 (+ ang pi) wid) 4 l2 R. r/ \. |
- "")
" l! e/ j) L# t% }
+ u% E8 Q9 H0 }5 ]( u9 O8 O- (setvar "OSMODE" old)2 N/ i9 l5 `1 F* k
- (princ)
9 l; u+ C9 l3 F - )
4 }3 a, V! H0 m! \0 P7 r. c5 R# O$ Z
& G) z. e$ l$ [! Z3 q0 g- ;=====================================================================. F3 ]' o" X1 I8 [5 s5 K$ ]) G9 r
- ) v9 m: i" \0 ~' H4 t
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
, B) U% P2 Z/ m3 Z - (defun cua1 (pt1 pt2)
; \' f- E1 f5 B1 P - (setq p1 pt1
* b ?; X" s1 N; s" ?" a - p2 pt2)
! h7 {+ g: Y( P5 C/ o
* F& T; [9 i3 M& K+ ~- (setq ang (angle p1 p2))& Y( Y+ T; h8 e5 |/ k! ?% V
- (if (< ang (angle p1 side))
2 D' e" H# V' S$ h9 a - (setq angside (/ pi 2) ); J1 X; m3 ?4 x
- (setq angside (- (/ pi 2)))# s. ]" z3 I; }% q, \& l4 a2 ? Y
- )- K6 ~' C/ B' W1 `1 k$ P
- (if (>= (- (angle p1 side) ang) pi)/ @5 v. Y- M9 P+ l) _* d7 A* a4 s7 U0 P
- (setq angside (- (/ pi 2)))
: F8 `% L6 J* K: M$ K& U& ] - )8 A6 s& ~7 h) @4 V" \
- (if (>= (- ANG (angle p1 side) ) pi): Q2 k, w. n2 U- T+ B
- (setq angside (/ pi 2))7 K* u7 y! o6 \! s' H' ]3 ?
- )
$ p4 G2 A$ Y7 a - 8 g _8 S6 Q% Q( B
- (setq p3 (polar p2 (+ ang angside) dis) )
+ W Q, q5 T/ ^; [) O - (setq p4 (polar p1 (+ ang angside) dis) )
# I6 ]( [0 V' n( ]% A1 E+ W6 l' n' S$ I - (setq wid (/ dis 15))
; i* a1 F2 k3 D5 M6 b* j - * K5 d" |7 k3 u0 J* {5 P `4 ~
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
/ ]3 E- O/ g0 X3 R# n. y - (polar p2 (+ ang pi) wid) # U( k9 B$ F) ^" d
- (polar p3 (+ ang pi) wid) % ^: k* \* {9 \) J4 q
- "")) T5 X: `% G m* e* g+ r+ P6 E5 y
- )
# T) c3 [5 v& d& t, m6 ~8 ]( C% l - ;=====================================================================
7 ?) k# k: o0 A* p+ G6 Q. j - (setq old (getvar "OSMODE"))
3 j( V A" A) f5 B
/ W ]0 G0 N0 ^& T5 j- (setq p1 (getpoint "\nStart point:"))
5 }: I! o5 d. o& K9 w* \ - (setq p2 (getpoint p1 "\nEnd point:"))
) j# ?4 d2 a3 y( t8 K6 S - (setq side (getpoint p2 "\nOpen side"))
$ C" }& }7 I2 r& h6 {/ L
$ o. b! Z. G. P- (setq dis (distance p1 p2))
8 O" @- Z- k8 e: Y- o/ d - (setq dis (/ dis 2))
& s6 i: `9 U( \0 H0 o+ w - 0 N5 _6 e' f$ T
- (setvar "OSMODE" 0)2 L! b3 L2 R& G2 m0 r
0 ]2 Z% d5 i2 s9 f- D8 p- (setq p1 (polar p1 (angle p1 p2) dis))1 j* e3 c' m4 C
- (cua1 p1 p2)
9 g$ B# C3 j. ^9 c0 f2 z: @ - 5 d1 W# y% Q# E1 S* x) D
- (setq ang (+ ang pi))
7 h" @. b3 Q( _; B - (setq p2 (polar p1 ang dis))
! b+ \+ S3 V- J# q A - ; (setq side (polar p1 () dis))
4 h6 |4 T5 @+ z6 R# o - (cua1 p1 p2)
; @, R I4 C- i0 k8 C: w7 K - 3 k* C l5 w# R4 d& m- {2 r: j
- (setvar "OSMODE" old); k; M _- K$ d3 N/ P& |
- (princ)
+ {. f( T' `: z: V - )# p {$ i* n& }! H+ a4 [! u. c4 Z1 k
- , ]+ m7 e# N" p$ K
- ;=====================================================================
; {2 `1 F" C2 V+ a5 F6 J - ;"Glue" text strings. All adopt first's properties.
# o; X! G6 H& ?3 ] - ; Author:
* i' O* g' ?# { - ; Henry C. Francis
6 q" `1 h7 s5 {6 C/ { - ; 425 N. Ashe St.) B0 J0 f8 ~1 R7 M! M2 D7 g
- ; Southern Pines, NC 28387, O9 Y3 E4 N/ V! k3 _9 ~' g+ X
- ; http://www.pinehurst.net/~pfrancis
; _# f X* F, }9 v5 U - ; e-mail hfrancis@pinehurst.net, V# T$ l( s* y
- ; All rights reserved.
! F2 X+ q$ Z" f% I: d - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)/ v9 s/ I0 k4 l9 k9 Z
- (while
, ^& b$ p( K: m2 Y2 W W - (not
h' [8 J; |: P3 }" k K3 Q; U/ J0 s - (and9 M$ M( G8 @1 U9 T1 @
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))
( J. ?0 y1 @% q* C5 H - (setq ent1 (entget ename1))7 V5 g3 q. @: R% S! j
- (eq(cdr(assoc 0 ent1))"TEXT"): x& S d) k6 M; C* z6 n- @
- );and; X' c1 i3 c" l5 f
- );not2 Z$ H8 P5 V/ h, [- J$ P) d7 c
- );while5 V8 i: E8 E! Z& E
- (setq old1 (cdr(assoc 1 ent1)))
7 d# ]% ]3 `' T& A/ O# d - (while; W( |8 t) B" {3 G$ B- B
- (not
4 @6 }! ?; _& \9 c6 F5 G+ v - (and0 K$ V1 ?+ ~9 W1 j7 i1 w: p
- (setq ename2 (car(entsel "\nSelect second text string to join: ")))
; n, @- B" k6 @. M9 z - (setq ent2 (entget ename2))$ b! R' V4 F" x% A. m* j
- (eq(cdr(assoc 0 ent2))"TEXT")8 W/ E5 Q) b* I# {8 q+ Q
- (not(eq ename1 ename2))
5 m1 K4 r! Z2 B& p' C. ` - );and
) E7 a' b# d$ C- O* x# L - );not
; p* U; {; n- e2 g! ~5 P7 J - );while
. W# S9 k9 I) O' n2 p! a - (setq old2 (cdr(assoc 1 ent2)))
" t* @2 l" f, W, X3 Y( | - (setq new1 (strcat old1 " " old2)
: J: \8 @2 H( f9 p* t - ent10 ~$ g1 V7 C! r0 C) E1 P1 g, s
- (subst (cons 1 new1)
" _/ a6 c4 k! {% d4 G3 K$ F - (assoc 1 ent1)- i7 f! R( L. m6 ^0 |
- ent1), M( v3 R1 ^$ u7 y: e/ E o% C+ U
- );setq
* B, j5 p1 f# |) D - (entmod ent1). H; ^# Y( @& `( A/ }9 ?9 G% S8 `
- (entdel ename2), u; H& Z5 x. W
- (princ)
& U, q5 r3 S$ x3 \ - );defun
+ [; F9 v" C& A' X5 T* Z
( c! L( E4 c' d0 E# {( }- ;=====================================================================
0 z1 w5 v( R* e. e - 9 R) _% S2 o5 l: l3 i1 V8 m, }3 D
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
# {6 m% |6 M x1 D8 ?
7 E/ @2 @0 ~: O& G- (defun nterr (s)
, W) w2 M, H( d) e! H! \. R' X - (command "_.UCS" "" "_.UNDO" "E")
) f% g4 X. {$ g/ o3 y2 `& A V - (setvar "cmdecho" 1)3 ?5 s1 D: w) W0 D
- (setvar "blipmode" 0)% d B; ]( y2 e2 n
- (setq *error* olderr)
0 v/ w+ r6 O* H* ^9 n7 {7 c }1 _4 O - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
% p/ y" f6 s/ \( { - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil); K9 y$ l5 H0 }" q% v8 i2 A
- (princ)
) Z% a8 ^3 T0 e+ [+ V8 o+ Q - )
; `! S/ p) j# m' ?$ N3 K7 g! A
; o2 }/ f/ p) y* ^' w) u2 c& V. e- (defun tim_in (dt / p01 p02 ktra)
# }! Q! l* S9 r* t# u/ X - (setq p01 (cdr (assoc 10 (entget dt))))
$ q0 y3 [. H8 `9 Z: M - (setq p02 (cdr (assoc 11 (entget dt))))4 {5 P$ H$ |% I
- (setq ktra T)
) |# G' T& P/ _! S1 Z; J - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
9 c9 F+ q: T0 X1 X" P: e; r* T2 o - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
2 V' B' s, u; p( y - (setq ktra nil)( I( G; B3 d# }( I' L. N
- )( N) s5 y! k A( c+ S) V0 N- q- W" x: L
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
; B. m* P9 ^: G) L, m z4 W - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
% Y. |" T4 p& x8 `) l! t' W, A1 s - (setq ktra nil)
e; b" S7 j [, ?$ W9 A - )
" ^5 @+ E W* ] - ktra/ Y7 z6 s# f$ O4 c
- )
2 ?9 g2 I: C1 O1 Q6 t - 8 Z) u; S# B3 C) `9 ]
- (defun timdt (dt1 dt2 / p01 p02): X& j G1 l* h$ \
- (setq p01 (cdr (assoc 10 (entget dt2))))
- F% t' X# H' X. m. f) X - (setq p02 (cdr (assoc 11 (entget dt2))))
2 z" z3 i/ I6 |& K+ Y - (setvar "ucsicon" 0)& C) g2 L8 C' s( c" V
- (command "_.UCS" "E" dt1)
0 l1 X2 B# }9 M$ M0 h; K& S - (setq p01 (trans p01 0 1))4 d& `* A& n8 {$ r ~) a
- (setq p02 (trans p02 0 1))) |$ v9 L4 z* L$ b8 H
- (command "_.UCS" "")
) A$ ]% Q2 X& A - (setvar "ucsicon" 1)1 f7 Y6 K7 w: l r! ]' L
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
& T% k- T1 [$ {5 c% h2 M6 d/ c/ }! C8 p - T5 n) ]" U; x7 C: r8 M4 M! M
- nil
5 z. p# E6 z+ l - )7 d8 x( c' I$ V
- )
; y/ G0 L4 g0 r0 [: d5 D
" }- h+ \6 o& J2 i9 C! ?- (defun tim_out (dt / p01 p02 kt)
6 q( m" _" Z% `+ h - (setq p01 (cdr (assoc 10 (entget dt)))); v* \/ {, l7 M ?
- (setq p02 (cdr (assoc 11 (entget dt))))* f2 C0 ?. `& A- @+ K$ L
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) & R' [# G" \9 U: u: R6 V: M5 ]
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))2 l% g' t0 L% \9 a5 ]2 D, E9 k
- (setq kt p02)
; o3 R9 g1 G4 a4 a. j - )
( k v/ M3 c# s# o - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
3 i7 z5 r9 C w) w) J - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
; n% j3 y; i- ]$ S3 ` - (setq kt p01)
2 ?, B) V* c# ~; k% `8 S - )
( Z" U ^" ^. U. h0 x - kt 7 {/ ]; Q" I- E
- )
1 A* ~% f! [4 P/ V3 j1 h
) \3 K9 e3 D% Y6 j k/ r7 l- (setvar "cmdecho" 0)
$ f! }6 w5 b: y1 E$ A, C - (setq olderr *error* *error* nterr)* t' }1 g! `/ E7 {- x# Z z, K, f x
- (command "_.UNDO" "G" "_.UCS" "")" k! b/ i: B a; p
- (while (null ss1)
7 P% q' g! u% T - (princ "\nChon tuong muon noi...")
/ }! F( S. v: ~2 K$ u( U - (initget 1)8 s- j2 J; o2 l* N
- (setq g1 (getpoint "\n>Goc thu nhat:"))
; F7 R5 b% p9 }2 j1 X - (initget (+ 1 32))0 t j7 \( w1 u, F) V
- (setq g2 (getcorner g1 "\n>Goc thu hai:")), i1 @) o: ^1 L3 ?
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
4 M, a1 S! ^( t. F - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))% x- x: N# v+ p4 X
- )
& v' U+ u- u4 F6 F5 x - 9 N/ A+ B" ?9 W$ E6 J3 a
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))( G: I) a' A2 w) H$ \7 [
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))2 c: X3 z8 l+ L
- g1 temp) Q6 l# u% | z. ]1 f# ]: p
- (setq ss1 (ssget "w" g1 g2))
. J9 s+ }$ \/ p9 E7 K1 w0 v - (if ss1 (command "_.ERASE" ss1 ""))& @$ M$ G" r" v3 s9 D
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
" s2 P d2 N( _6 e' T2 v5 e. ? - % n3 F0 ?6 R0 H; X
- (setvar "blipmode" 0)
9 Y, T% E8 W$ C& H - (setq i 0 l (sslength ss1))8 p' W$ t0 P; f3 x9 x
- (while (< i l)4 q, \* x/ U3 X7 r2 m& V0 m
- (if (tim_in (ssname ss1 i))
) ~7 J2 A3 ^2 S( ~2 V - (progn 4 A- z3 b9 b7 w4 {2 @( E( {
- (ssdel (ssname ss1 i) ss1)
" G3 r" L4 q6 P9 I) y4 \ - (setq i 0 l (1- l))
5 R5 m @7 V% P$ G - ) - r; M+ |; @* j+ P& H
- (setq i (1+ i))# ~- ]7 v! ^4 y& X1 C2 i5 R
- )8 M4 n- W) m1 P0 ?! a" v
- )
! ?; h; R0 j8 C - (setq l (sslength ss1)). q# A( m8 r$ r) o
- (while (>= l 2)
6 \6 \5 }9 D# `$ S: t" n( O - (setq e1 (ssname ss1 0))! h, L% t% d8 H) z
- (ssdel e1 ss1)( ]8 O+ @, @: K/ ]% J/ S# u
- (setq e2 nil i 0 l (sslength ss1))
5 u" A7 G$ ^" A) v: F0 q7 w) H* t( A - (while (< i l)
# R _( t6 [5 V A8 k - (if (timdt e1 (ssname ss1 i))* [0 v0 ]+ y# A* R7 {9 N' d7 l2 y
- (progn
) F7 _6 U1 {# c: `; o9 _ - (setq e2 (ssname ss1 i))
4 G% g! k1 ]; t4 [ - (setq dd (tim_out e1))
. l5 i. |& k6 l( Q8 d6 ]1 i" k% F7 z - (setq dc (tim_out e2))
4 S% j5 \& m) f$ h - ); c4 R9 s. L7 B# n
- )# P2 L3 ^8 L$ V' e" G0 n! e
- (setq i (1+ i))
. D$ e% n2 e' }% S% b" @: R) o - )* `5 D5 n* I* M6 ^4 ]
- (if e2 (progn
( u2 X" t$ l- Z7 Q3 H9 Y - (ssdel e2 ss1) / q" I) \6 z) S* T/ A# I9 G
- (command "_.ERASE" e2 ""): B/ T# |7 H; n, M5 z
- (setq temp (entget e1))' v+ M+ O/ ?# b/ X/ \1 ?
- (setq old (assoc 10 temp))
! H& q% a, J; w! @/ x2 ~5 |, F! L - (setq new (cons 10 dd))4 Q# S; R) a7 B6 x, R" h, Z; X( M- g
- (setq temp (subst new old temp))( Q# f* V/ e/ I- t+ U" X
- (entmod temp)1 K$ Y, H! W7 R$ | F s8 z
- (setq temp (entget e1))
. D: O: [! [& H" b# y( @# d9 u8 V+ \' u6 N - (setq old (assoc 11 temp))
. M; u1 }; i; O4 I - (setq new (cons 11 dc))5 T6 i0 `+ c1 H( ~
- (setq temp (subst new old temp))
! a* A, P @! l% `# c$ G - (entmod temp)
% j4 t, A% d+ w& b+ L" R - (redraw e1): ~( _1 s5 r2 p
- (setq l (sslength ss1))3 W! |8 G' z1 C# b
- )
, z' t! I8 h2 `4 _" U/ |5 {% @ J - )
0 r* l. W0 j) n7 g - )7 L2 }* q9 s; X0 N3 \$ ?
( Q$ e$ `: u. F/ M9 F+ G4 N. W- (command "_.UCS" "" "_.UNDO" "E")1 f- Z8 K1 T2 T* Y% s1 k
- (setvar "cmdecho" 1)
1 E# R2 s4 m6 p: F+ S - (setvar "blipmode" 0)$ O/ j- ?2 R2 x6 C: B
- (setq *error* olderr)
" k; Q6 s2 R7 l - (princ)
5 x) V0 d7 l# A& C- | b5 t* y - )8 z$ j* J" D3 y& S' a
- ;*********************************************************************
/ E, I- |0 G4 k5 N - (defun ketthuc (). K" B- w$ a' m1 m! h7 v
- (setvar "cmdecho" luuecho)4 w/ j" |- q# R r$ |8 r2 Z
- (setq *error* luu- H5 `( f# n& Z
- luu nil 4 \6 ^+ w/ ]6 g8 j4 f5 e( g
- luuecho nil( I( Z4 N9 R* v7 G8 d
- );setq
+ b+ v0 @( v" g% n3 C6 @1 t - (princ)
3 F1 K. n2 _+ k8 t - )
& A3 |9 {! i- _7 v. _- x y' n0 G; i - ;*********************************************************************
3 D6 ]/ _) }% v$ C5 e - (defun modau ()
7 M. k& ?/ B% l3 y( B - (setq luu *error3 j: w. O! W+ O( g
- luuecho (getvar "cmdecho")+ g; V' u- q D2 u, U, \
- *error (ketthuc)
3 `1 o: J* F) K4 W# ? - )1 b4 X# d6 p3 b
- )
. f" t( T- ~/ ]: c" \& P - ;*********************************************************************: i: ]+ \; ]1 N+ F6 Z" H, T+ J
- (defun xulytext (text / kytu ma sokt luusokt lui )
2 g3 J; j( w* o$ R9 o - (setq kytu (substr text (strlen text))
4 l/ k! j2 ?. @, |6 S" L: @ - ma (ascii kytu)- D) q% V* f: ] m$ o
- sokt (read kytu) ( l2 K6 ?6 e: f
- lui 12 H9 F5 P! b) n% \5 D
- )
: q0 n- s/ F& ^( m9 ] - (if (numberp sokt)
, i* y" w0 j- b& a6 L: x - (progn4 B" F. p/ Z, f- Z X1 O7 H9 D
- (setq luusokt (1+ sokt))
: d: ?6 }: b$ X* F# x - (if (and (numberp sokt) , H `* s! E+ q V- }$ @/ R n
- (> (strlen text) 1)$ |/ _ L( o' R8 |& [: ?0 l% q. n8 D
- ) ( p6 i! ?5 v+ V# @6 |4 l
- (progn4 |# {0 R6 o8 S0 v
- (setq kytu (substr text (1- (strlen text)))
2 y4 b1 r3 p/ u) Y( x0 B - sokt (read kytu) * C/ v) C8 n, T5 }/ d* t" U
- )$ p1 o: \* F( M- k5 K
- (if (numberp sokt)
6 X5 N* W7 O2 ?& [4 \& j - (setq luusokt (1+ sokt)* _% a, k. J( u) D3 }
- lui 2
! e% U$ S/ N$ \$ K: J" T - " z7 P3 D8 v+ I$ [+ r, X: p: ]) C+ \
- )
: }: M5 d' t: r. q% M0 _% v8 K! ~ - )
# [3 `% c1 X* U& m5 w* }5 e; g - );progn
& |7 ~' |2 [( X) @ - )8 `6 Z6 ~' E$ g5 Q/ g6 j' G
- (if (= luusokt 100) (setq luusokt 0))* @' o* z d; n* e8 I6 y: E
- (setq kytu (rtos luusokt 2 0)
+ x, k4 c; u; v* e j -
& N$ S; Y- X; \ - text (strcat (substr text 1 (- (strlen text) lui)) kytu)- V! {* J5 ?6 B; m N# G E
- )
+ w. |9 G+ X3 M7 y, A0 L) }" x - );progn
: o0 j, c5 j; G4 N/ x9 j - (if (or (= kytu "z")2 t$ l2 b- L8 p; H- N ^
- (= kytu "Z")
* x8 g8 g1 ]( f' J# I - )
1 k- f# y" E1 b+ _ P) `. { - (setq text (strcat text "0")9 j ^0 ]' H+ v; i- g1 i
- textxl "0"; Z' D, D- m/ J* a8 Y/ P0 ?- B% m
- )
L1 J4 q% t- t) @8 l4 H - (setq ma (1+ ma)
+ E& u7 n, f4 D6 s2 `7 h% Q - text (strcat (substr text 1 (1- (strlen text))) (chr ma))
5 G9 V# ?3 Q0 i- j! X4 P/ V - )
8 z1 Y. ?1 y8 E5 ?* _9 O" c! Z - );if; G; P: k( P n& P7 }2 n
- );if4 O: A0 Q0 F2 K
- )" E0 J2 A3 Z& G% e
- ;*********************************************************************
" n" G1 a! N: w! t( @ D& ^" s* y9 ^/ M C - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
B3 g* W' l6 T' W - ;Neu doi tuong la text thi tiep tuc
) P2 m( I+ c& ` - (setq doituong (entget tendoituong)
1 @' _/ l2 n g& D8 _! G( q. y" h. a - kieu (cdr (assoc 0 doituong))
# q6 }8 J# A, I' l( k) i; u2 F2 @ - canle (cdr (assoc 72 doituong))- u# ~ O* K: u0 }( e, w( M
- ) m2 [. T4 n/ I* A' m" W
- (if (or (= kieu "TEXT")
% b( f$ k( q' `. m - (= kieu "MTEXT") ! n$ G1 K" q# ^' v; ]
- ) 6 @ K5 h4 @8 q$ C/ W
- (progn
2 h* p5 s% j; Q5 f3 m7 W, l - (setq textxl (xulytext textxl)' @" n; T. `9 M* n4 @1 B' q j+ | U
- text (cons 1 textxl)8 x0 i% X: s2 w' Y, d8 u' {
- vitri10 (cdr (assoc 10 doituong))
8 c0 Q4 K3 _+ I# `) r I! { - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
7 f; ]; C$ f t; `1 A; T" u - vitri10 (cons 10 vitri10)
' x* H4 B6 t g- z! Q - vitri11 (cdr (assoc 11 doituong))
. `, j7 I, e0 u, P - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
6 K, k' V) W$ e1 W - vitri11 (cons 11 vitri11)
" T( H) R2 C+ q7 b# f; V3 l - dem 05 ?' t; S+ t- Z& H
- dsach nil% r& D* [$ [4 _; L& R: |
- )
v- m2 |3 G8 [7 y) W$ |) N) Y - (foreach tam doituong% Z c5 K$ i3 K E9 Y2 k& e6 p
- (cond
- V0 K, e5 E6 @+ h$ G* @7 F - ((= (car tam) 1) (setq dsach (append dsach (list text))))
Q8 W: R* r; C* t, D0 p- z - ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))) Q7 K- [) D/ t) h, R
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
0 c7 J. d4 E7 ^! ?" Z - ((setq dsach (append dsach (list tam))))
O5 ]) {2 G( ?# O+ @" X* H. | - ); ?( n: P; Z! D' d. O0 n
- ); @7 [. e' ]2 }% Z: T( L \
- (entmake dsach)% G& d: \6 L6 U: u* A! u! w
- );progn$ A6 {2 d+ ?! B( f: y. {3 P
- );if& j6 `& Y' g9 z, @
- );* ~2 `, }5 g: A# h! w; ^
- ;*********************************************************************
5 B( D0 Z c T3 I/ Y0 C! @5 _ - ;sao doi tuong cu sang vi tri moi3 j& e) L! Q" m0 B
- + I" ?$ w E+ X: s& K; h9 y$ a* R) J
- (defun copy_dt (tendoituong )
# G4 y3 a7 W7 W - (command "copy" tendoituong "" goc toi )3 h* F$ }; q7 n) ^, m
- );defun
6 V" ?' H# t5 M/ R8 ?; h - - k* H. o6 G6 w6 I! S
- ;*********************************************************************0 D. D) P8 p( y; `( z) z) k
- / K; G" j2 Q2 k
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
, @7 [ A# b3 i! c, p' [+ J - ; Khoi dau cua chuong trinh
8 u$ e- f/ L3 w9 b! F9 n - (princ "\nCopy Inteligent...\n") ^" L0 {' v& {- c5 Z
- (setq luuecho (getvar "cmdecho")6 H' ?3 X1 a0 l/ v7 A% J; t( P8 e
- luu *error*
+ [0 ?' a' U1 v - *error* ketthuc$ O0 b$ v1 L+ K6 m2 N; W( b4 o
- cumdt (ssget): p9 y$ m; M P8 a6 l2 Z( S
- dodai (sslength cumdt). _$ Z, n0 k% i- Q
- goc (getpoint "\nSelect base point:")
1 M+ I( V0 G' W9 v - thoat nil$ ~2 _& k- R- Q+ w9 Z- s% P
- dem 00 L1 C- W* W8 Q) K& e
- textxl nil" G1 F, @" X5 x
- );
& m1 E6 S+ S5 V, y" e - (setvar "cmdecho" 0)" Y! }: U' \6 n5 e b& J- K7 I/ F
- ; Loc ra duoc ong text de xu ly
* p, \5 V- c4 p2 s' y# h# { - (while (and (= thoat nil)( @, p' W) l2 A
- (< dem dodai)
) x1 J# W% J% S$ N+ P - )9 T/ B, d4 f/ h0 b
- (setq ten (ssname cumdt dem)" E- S7 B0 S0 R' V3 V% f& O c5 q; Z' j' A9 L
- dem (1+ dem)5 z* ]1 m" n6 ?: \) ^; Z
- doituong (entget ten), R3 g7 P" U6 N/ w6 n7 ^
- kieu (cdr (assoc 0 doituong)) 4 l/ f3 U0 q/ Z) f: Q* H* r- m# |
- )
3 X1 w/ l# P) {, `! A* } - ; J) Q/ m( _' \' c6 d; ]* ~, D
- (if (or (= kieu "TEXT") }9 F2 ?- p. v
- (= kieu "MTEXT") ) ~) O& l/ b+ r. ?( m2 O L& @8 e
- ), Q& W- M/ _# {$ H0 A u
- (setq thoat T
4 X$ r. r0 Z! D1 v) R J - textxl (cdr (assoc 1 doituong)) " O4 L- Q( I$ d0 w3 Q
- )
0 \* k% H4 L0 O% o. y! m. z - )6 }- o A9 i( L2 ?) X: c$ t. u
- );9 o! M- Q5 J$ A% `
- (while T - ?, Z* M7 c# Y1 s. u
- (setq toi (getpoint "\nSelect next point: " goc)
' R0 n3 i( m/ X* } - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc))): _- s6 A7 z6 }% }
- dem 0
) A2 u8 S9 }$ U6 ^ - )1 w: g" k) l+ d/ W1 {* Q
- (while (< dem dodai)5 a) m5 m+ f8 m. X# i0 x, X. z% U* O, w
- (setq ten (ssname cumdt dem)- G, x. N4 x' K, n" u) ? J: \
- dem (1+ dem)
4 K7 Q( y$ x, n6 |; m6 C# F - doituong (entget ten)) e3 p; W/ W! g% `' ]# j
- kieu (cdr (assoc 0 doituong))
# ~- g+ Y ^) V3 n' V - )
* I4 ?2 h: A. g% I6 x; G - ' ?4 J* {. u3 F, w6 C+ u' m
- (if (or (= kieu "TEXT")- V; E2 ^: Q5 y9 u2 m, [
- (= kieu "MTEXT")
/ v. c9 ?3 j& J% H/ e - )/ Y- f3 n+ h+ `7 Z
- (doitext ten)5 B( A7 F m( X; s$ v. g" c
- (copy_dt ten)' a" o) ?+ ~$ V" |
- * D$ |9 u! L7 V% R% Y/ M" B$ G
- );if
* x" b* |+ I* c - )% ?! R# n* \% u7 b2 G$ C. e
- );while
. R; A& y1 p9 b- n( c8 | - (ketthuc)) ~9 ~0 v) o! u0 l6 S( s
- );defun
6 J3 d8 R' I3 u - (princ "Type \"DG\" to start")- b7 P' k; o3 R1 y! K
- ;Note: bien toan cuc: textxl vitrilech
# F+ h& p- e3 |) ~, @: I
; n" X3 E/ b, B4 y7 u' W- ;=====================================================================; b, T+ D8 C: M
- ;;; PLJOINFUZZ.LSP6 P' q. t# L5 G; B5 N' l
- ;;; Joins lines, arcs and polylines using a fuzz distance
m, f- n" }& m F" M6 ? - ;;; If only one object is selected it tries to join to all objects that are possible
, t- F% I+ } k: H6 L/ i - ;;; By Jimmy Bergmark2 N% _( c S! U- a
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved# Z8 F, _* h7 N7 `/ e5 a
- ;;; Website: www.jtbworld.com
$ K6 H+ ^) j0 A& [: N; D# D0 l - ;;; E-mail: info@jtbworld.com
/ z7 e2 f" m, ]9 J - ;;; Tested on AutoCAD 2002,2004 and 20057 D: c% U3 \- f, L* W7 w% B, Y$ h
- ;;; Latest revision made 2004-11-11% ` ^0 X0 P# I: t B
- ;;; Minor code cosmetic change made 2004-11-13
4 J7 }( C+ B+ ? - ;;; Bug corrected 2004-12-23
- r. O- z# W2 b - + v1 t% l* E* N K
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf- Y a$ v; m/ M* W; L
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
: U+ n* X* U+ r* j - (setq oldcmdecho (getvar "cmdecho"))
% N& a0 q: K& S: P6 \/ ^ - (setq oldpeditaccept (getvar "PEDITACCEPT"))' L" Q7 V) [8 z' u
- (setvar "cmdecho" 0)
! D& I! a2 ^& n' ]& F- t/ Y - (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
B* |- R; {! | - (if A2k4 (setvar "PEDITACCEPT" 0))
5 b2 ?! Y2 s6 C0 N: C: D - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))* }/ @9 L6 T; V, N8 R8 F0 r2 v0 h
- (princ "\nSelect object to join: ")# S3 ^( y2 b/ ?5 D9 s, F
- (setq ss1 (ssget okObjects))0 k6 E; ?9 b$ E+ v7 i" f
- (setq fuzz (getdist "\nFuzz distance <0>: "))& f: J# _1 Z5 |/ X y1 G2 p
- (if (= fuzz nil) (setq fuzz 0))
0 i% d, C/ J6 Z, C9 q7 _: d. n - (if (/= ss1 nil)7 a' |! z' o F2 C+ T4 f
- (progn! T, S( c0 s1 c
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))- `* x a9 G, f# g
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))& R* j, Z# ~/ k) {' I. T
- (if (member objType '("LINE" "ARC"))1 m) A; |. W0 v9 B+ _6 L! |% M
- (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
9 J! n* w% Y4 o" f2 r) O. k( B2 d - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
1 ^1 K* b. M- R- K - )1 e2 O4 d& U0 e! L# i8 d
- )
' p# g( U8 g* K( t6 O; ~' q - )
% K9 t; K( r, | @; m0 T - (setvar "cmdecho" oldcmdecho)4 k% r8 ]2 {: h& Y |4 q
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept)), L# v- Z0 M' d4 r4 ?7 z, n
- (princ)0 p" u0 c9 i: `$ l( p5 w
- )
7 c( b. M% w+ t; B `( b - 1 w9 c7 w2 T4 R3 U
- ;===========================VE CAO TRINH===========================. A p4 Q9 [! N, ]
/ m( y. D/ l- {9 q$ @" `/ K, J; e- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL) F+ B( H5 a; c# [ _1 n
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)/ e, s0 m/ u! y+ u2 R- X# o
- (SETQ OLDERR *error*3 l; ?0 ?: c" D ^/ R4 |
- *error* loisb)
0 D( j$ Y0 {% m - (command "layer" "m" "dim" "c" "" """")
1 p0 ~7 o, |) }( E, v2 C7 m - (SETQ CMD (GETVAR "CMDECHO"))8 L3 V/ s1 Q" }4 n0 o* J" ^
- (SETQ NBC (GETVAR "CLAYER"))
$ _0 L$ \1 L4 `% R% x - (SETQ OSM (GETVAR "OSMODE"))
& i7 G/ K( |4 H: H# t( c - (SETVAR "CMDECHO" 0)
1 C4 N; \$ e) C- |3 A: o - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
5 P6 t* o) i2 ]) l q - (SETQ TX (GETSTRING "\nCao trinh:"))9 z4 I" Z7 s" X
- (SETQ FCH (SUBSTR TX 1 1))
' {0 ?% x& g$ x - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
7 j. k5 z+ B- o - (SETQ CRST (GETVAR "TEXTSTYLE"))5 e- e" O6 G2 M5 o* t* P8 v
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))( U0 v: ^% n" S& i
- (SETQ TSIZE (GETVAR "TEXTSIZE"))
* L$ E7 b6 G- Y/ \# B - (SETQ STR (RTOS TSIZE 2)): v8 ~7 ]6 c1 z% S9 B( q, M3 h
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))
+ A. y+ s$ ]8 V; h4 a7 i - (IF (= RSIZE 0)
( b5 L5 {8 T- a) p: [ - (PROGN
3 r2 _& T' o* N% _& z! H* f - (INITGET 4)' i- c- ~2 @$ t. _
- (SETQ TSIZE (GETREAL PRMT)) E4 a. S1 x2 j( T, S
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))2 J5 g4 `" ^( Y S' t0 s8 _: [: G) ?
- (SETVAR "TEXTSIZE" TSIZE))
5 p9 Z- H3 T6 L* j! ^/ h" M: r - )
6 u: H% _9 z+ _1 P: } - )
! x$ l/ R G0 S- e" ? - (PRINC)
9 T# g& q3 A& k4 f5 c5 ~5 i - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))+ V8 i( P) {4 }3 T. D# s
- (SETVAR "OSMODE" 0)
! w2 ]2 M& j; W3 J" d7 t# ]% M& Z - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
, j1 p* t! G* `! T+ F - (SETQ NPI (/ PI 2))2 @' e7 ^$ c/ m% n# u' e
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))5 v7 H3 v1 O6 q
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
- t9 z5 I- A2 D/ d - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))7 j9 X& }+ v& ?! ]. f/ H
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
; d" R! ]6 D G+ o6 @: I+ J3 y" D - (SETQ PT6 (POLAR PT2 NPI TL))
- m- v9 B0 ]" L2 q0 } - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))+ g* g8 N0 I% o/ O4 v) E3 t% C7 h# c
- (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
0 q$ Y/ C1 l+ q+ J - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
& { {8 _' N$ N. w' @ - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))" X5 B8 _/ K' i$ x4 w9 X
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
4 J! h+ A# W( `9 L' T! I4 m: r - (COMMAND "COLOR" "7" "")
! I- o! v4 w6 U2 ` - (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" ""); U: u! U+ W* h' z. K
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
9 U0 j$ [& R1 A7 Z2 A" B - (COMMAND "COLOR" "BYLAYER" "")
- x8 ^* }' U1 z! s2 N - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
; W# [$ N7 j, Z G; v( z: h - (COMMAND "COLOR" "BYLAYER" "")
" s, Y2 |, P Y {4 m - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
4 v: t7 \7 ` ^ - (SETVAR "CLAYER" "0") B2 B6 w7 A. N( E7 X! ^
- (command "ddedit" pause)3 s1 Z8 V4 ]( G, f" k# n3 j3 E9 B0 G
- (COMMAND "COLOR" "BYLAYER" "")
8 }% d0 P' `+ N. Q - (SETVAR "CMDECHO" CMD)2 X9 `' L) k* a! i* g4 F$ v* ~
- (SETVAR "CLAYER" NBC)
8 G! s9 r. s `+ b1 @3 @ - (SETVAR "OSMODE" OSM)
3 C% @1 l }4 f4 w. z' `2 E - (PRINC)1 W+ {- z% n/ L+ {
- )# ^% y2 s O5 B, P
+ y4 e5 T9 u: r& @6 |+ ]) d8 G- ;;; =========================== VE NET CAT CHEO (GC) =============================$ _0 v5 ]" g: Q# ], E
-
. {" q. U0 G" R4 U1 J6 Z - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
O, z9 {( d. A5 R. I$ n. {% t ^# d - (setq x (getvar "osmode")). `8 \# ?: E+ }( Y- _
- (setq p1 (getpoint "First point : ")3 O5 U. m1 H9 B/ c" [+ F, _
- p2 (getpoint p1 "Second point : "))' C7 ?6 _4 V4 \& D' {. `
- (setq l (distance p1 p2))
* b' j$ m1 N$ Y0 w1 f2 |, Q1 |/ P - (setq p11 (polar p1 (angle p2 p1) (/ l 5)), J$ v0 ]% q; j$ {5 ~7 r9 [! K
- p12 (polar p2 (angle p1 p2) (/ l 5)))4 D: G% p. X: X0 ?1 `! r
- (setq ang (angle p1 p2)); d" U' Q! Y7 @( j8 i' M. l
- (setq p3 (polar p1 ang (/ l 2.5))
5 S7 D% y- i! a - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
1 r" N8 h( Z, v9 O - p5 (polar p3 ang (/ l 5))9 X6 T, E6 G6 h& t; e' G; G* c( `8 I4 \
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
; E, k r3 w" G @9 U$ o - (setvar "osmode" 0)$ a$ f7 B/ d x' I1 T- Q) x
- (command "pline" p11 p3 p4 p6 p5 p12 "")
7 b: P8 V& m! X) q4 b4 C! q. r - (setvar "osmode" x)8 T: t2 a% L. g
- )
, H6 I' A! r2 |; M+ W# ]4 V0 Y8 R - ;----------------------------------------------------------------------------------
9 k T7 J( t6 y! Z - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6) r; N- G: K% c9 o
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
( Y; X' m; I0 g- e' i - (setq ps1 (getpoint "\Chon diem thu nhat: ")); x7 [! b8 k$ F
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))( Z5 Z) q/ B+ u7 ]+ @3 w
- (setq sb 50.0 sh 200.0 se 20.0)
% U0 ]/ x/ g! T# M T9 _1 b- U - (setq ang (angle ps1 ps2))3 D4 I# X' _6 a' _/ k" D/ j
- (setq pf1 (polar ps1 ang (- 0.0 se)))
# G, P' i, A, @6 B5 ?4 `. c - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
1 S3 `' V+ r! P$ h5 } ] - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0))), U$ ?$ @# E, n( t$ ~* v; E8 g" m
- (setq pf5 (polar pf2 ang sb))! p7 l6 Y1 I4 F. M4 P' _7 R, b
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
5 W' ]- t9 Y8 G7 ]. o- @/ H# Y1 {6 V - (setq pf6 (polar ps2 ang se))
) C, `! {( T9 k2 b' b9 D - (setvar "OSMODE" 0)
5 Y( B$ U1 a% @- i8 X4 w% _: S4 J - (setvar "BLIPMODE" 0)" d0 I0 }+ P3 G- I7 w, h8 c
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")4 Z* z; }6 b; t7 @. X2 l
- (setvar "OSMODE" 703)0 t7 d3 C0 c* z3 Y! J8 k( H! c4 q
- (princ) )- y7 k* }4 G+ Q7 y/ Y) j9 N
- ;----------------------------------------------------------------------------------
! k9 K" K( e8 O, Q, u - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
) M# ^$ r' v* w* N- M - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
8 A1 {, ^. J- i; ^ - (setq ps1 (getpoint "\Chon diem thu nhat: "))( B% l( L) _2 j* {: H
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
9 g, e4 v6 w( ]) G2 W+ d" m - (setq sb 100.0 sh 150.0 se 20.0)/ C7 {1 M; P: q- g, y) u+ @
- (setq ang (angle ps1 ps2))
\; J5 l3 U5 H$ J @1 w - (setq pf1 (polar ps1 ang (- 0.0 se)))
! _' T+ k$ b9 ~/ M; A - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
* H) H7 H# v# G0 g: \ - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
# E. v7 v! _) X; P3 H - (setq pf5 (polar pf2 ang sb)): E! M9 C) `6 m' [2 `3 s" K* u
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))9 ~- O. |3 k; k, t2 X) g: d1 G9 c
- (setq pf6 (polar ps2 ang se)): X, W. N: _% k' j
- (setvar "OSMODE" 0)
6 e4 ]5 `# l s$ R - (setvar "BLIPMODE" 0)
; U" \* T s9 n5 E& G - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 ""): J) n# {) k z
- (setvar "OSMODE" 703)
@( ]: `$ {3 J- g+ X - (princ) )
- f, o C `6 @* ~2 Q* H6 v - ;----------------------------------------------------------------------------------2 {" ]* B2 I/ {( ~0 O% H$ [2 n
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
( E4 |& F$ M- e7 l+ ~ - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
4 o3 d. Z2 i) l - (setq ps1 (getpoint "\Chon diem thu nhat: "))) l/ R0 S3 m4 w
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))& [$ B% T. @" d8 }
- (setq sb 100.0 sh 250.0 se 20.0)
+ M3 |( J7 ~& S* e9 K8 U - (setq ang (angle ps1 ps2))
7 _4 W' Y) g2 Y; X - (setq pf1 (polar ps1 ang (- 0.0 se)))" j2 \3 g# S0 i$ ` }' ]
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) )). q9 Z$ ~% p& _+ O, m' E: p
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
. d1 ?; `$ i1 {. I' ~ - (setq pf5 (polar pf2 ang sb))5 p" P5 R8 [- }' M- F
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
: ^0 Z9 Z2 M1 \6 |# y1 q - (setq pf6 (polar ps2 ang se))) T* f6 y, K' q) Z
- (setvar "OSMODE" 0)
0 M" O/ |: G1 u - (setvar "BLIPMODE" 0)9 ^9 z, F a! N/ j. w h
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
7 k6 K' J& w" Q7 a - (setvar "OSMODE" 703)
& w! d, Z& i3 H% Q- |& b/ N - (princ) )6 N9 X: e' D; |% f* M
- $ o8 i, ~# v+ F; E: t- g/ |% |2 Z
- ;==================================================================================
- k( ~0 ~, A4 _4 Y - (defun c:ang (/ ent pt1 pt2 ang)
8 b3 I, K6 G* f; |; _" } - (setq cmd (getvar "cmdecho")): f$ q5 k5 _6 D- t# @2 G* {
- (setvar "cmdecho" 1)
/ W; e7 f, P4 N# C! ~ @! @ - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
/ O6 J% T) K, L7 \- s5 b& I( ~ - (setq ent (entsel "\nChon duong thang:"))
) `1 i( R2 _: x - (if ent T) z- c" R3 ~. B
- (progn! [8 r/ p L" g6 P: ~$ q D. j E. D
- (setq ent (entget (car ent)))
8 V- Z8 w7 u/ P% L% q - (setq pt1 (cdr (assoc 10 ent)))
* i: S$ U) T B9 m/ Z- M( B - (setq pt2 (cdr (assoc 11 ent)))" [1 o, n+ R# \( T' J$ G$ y' @
- (setq ang (angle pt1 pt2)): r0 @7 O7 h1 Y; ~4 W: D
- (setq ang (/ (* ang 180.0) pi))5 V8 R8 o& C; @5 n8 Z
- (setvar "cmdecho" 0)
& S+ I+ A8 Z; k4 L - (command "setvar" "snapang" ang)' a2 y# [! ?8 g j9 v) n- K
- (princ "\nGoc cua truc toa do moi : ")
! l+ u; y# N2 ^- b: L2 U3 p% { - (princ ang)( k) W0 Z4 d4 L8 a/ H# L" @3 l
- )
" T) Y0 g) Y8 D - ); n" N( ]+ ]2 j( Y! w
- (setvar "cmdecho" cmd)
7 h- C& Z" }4 z2 @& D' B( H/ [3 G+ h - (princ)
5 O0 l2 d% v) F. E - )
3 U2 N4 ~8 B( \& h - ;==================================================================================
& J2 P, @" F7 V/ N - ;============================== KY HIEU DOI XUNG ==============================9 m1 J4 }. S6 P V% D. z
- ;==================================================================================
$ S8 M$ p$ u- H+ t! O
( {: o, ]! I% U% X9 k- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT91 I: p, i: P, p" X; q# W3 @$ o; t; I
- SZ G45 G135 G90 G180 SS loi)- C% k) o3 \1 m( L+ E
- (defun loi (s)6 D! a$ O* U4 _+ d
- (if (= s "Function cancelled")# G' S$ u/ u. ?/ s
- (princ)
+ l$ ^9 k. O' ?# C' i; b$ k0 k - (princ (strcat "Error:" s))
2 ]2 T9 g! c6 K+ g( R1 F: j$ i - )
3 H8 D' \/ H1 D2 W - (SETVAR "CMDECHO" CMD) T/ k! ?) c$ l# r" ^/ k
- (SETVAR "OSMODE" OSM)
9 U5 r; a1 ^" P* v - (SETQ *error* OLDERR)
# Q- ?4 o( S; Y - (PRINC)9 Y X& H4 A+ l m1 w- |
- )
9 W6 j' {0 A3 K7 `- t0 o) Q! ? - (SETQ CMD (GETVAR "CMDECHO"))
2 i& `+ Z$ I8 V; S+ R" ~ - (SETQ OSM (GETVAR "OSMODE"))
2 B; M+ Y, r- P6 s8 v - (SETVAR "CMDECHO" 0)3 v$ A& }! q! }
- (SETQ OLDERR *error*( [& [8 |- F2 J; F/ h
- *error* loi)
5 [ B# A9 N- H( M - (SETQ SZ (GETREAL "Size <1>:"))
( z+ H# B$ @( n - (IF (= SZ nil) (SETQ SZ 100))
9 N. f4 q5 _' ?( v0 d; u - (SETQ G45 (/ PI 4))( V. n# j1 f2 A6 c4 ~- [6 z
- (SETQ G135 (* 3 (/ PI 4)))
0 O3 p* x% z) R0 Y, O - (SETQ G90 (- G45 (/ PI 2)))4 b0 V7 Y+ F- s2 }8 ^: Z9 v; W
- (SETQ G180 (+ G135 (/ PI 2)))5 |! B4 p8 C- E1 q% h
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))/ x9 Q r* O9 `; R- s' t8 Q
- (SETVAR "OSMODE" 0)* e$ ^0 [+ U/ {& n
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))& c/ B J9 A5 ^* |, k
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
$ D+ P- r9 |. A - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))2 e" x# K2 G& Y! _; E/ {$ w
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
) p9 I' w" a% Y - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
`0 Y& R" `7 l& d I4 g! _ - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))4 W2 e1 I) I4 w; x1 t
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))5 O. I' S* q9 R
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
5 I! |1 s* Z7 o/ A! s - (PRINC "\nGoc quay:") I9 c, _7 x0 }- ]; G- x
- (SETQ SS (SSADD))
" v& Q( R5 |$ n: | - (command "layer" "m" "Dim" "c" "" """")
- r$ x. Z5 x. C0 Z9 i: X - (COMMAND "COLOR" "1" "")
" g% S2 B) O, v W - (COMMAND "LINE" PT8 PT2 ""); _5 `% g! U: X7 m' W/ `: R
- (SETQ SS (SSADD (ENTLAST) SS))
) k5 w2 j+ s2 k - (COMMAND "LINE" PT9 PT5 "")
) o1 b, _# y8 C+ ] G2 d - (SETQ SS (SSADD (ENTLAST) SS))3 ^$ ~6 ?8 ?7 v, y9 n' D% T% m
- (COMMAND "COLOR" "1" "")
' y' g! s i$ v/ h& r - (COMMAND "SOLID" PT2 PT3 PT4 "" "")
6 a, e8 w2 C( C0 V1 l# C - (SETQ SS (SSADD (ENTLAST) SS))
# f2 q3 f2 u1 w: P/ Q) c& ]5 n1 U - (COMMAND "SOLID" PT5 PT6 PT7 "" "")$ K* x6 V( a3 K: v Y
- (SETQ SS (SSADD (ENTLAST) SS))# K. a. D- f) m; u! [8 ^1 E: j( g# P
- (COMMAND "ROTATE" SS "" PT1 PAUSE)
" S* u5 g, N( S2 W4 Y8 L& l - (COMMAND "COLOR" "BYLAYER" "")
( [+ j: _; m; o0 \( z - (SETVAR "CMDECHO" CMD)) v: u, T$ O+ @1 ^2 u8 r
- (SETVAR "OSMODE" OSM)
. U+ Z3 m/ f. _) m* f/ D3 y - (SETQ *error* OLDERR)6 s4 b% ?) `# M
- (PRINC)
0 h, @% ^" s4 ^( q% b, P - )
# s, i7 C1 ?" _5 Z5 e - 8 x" ~0 v) T% {) I9 |8 a
- ;==================================================================================
7 K+ ?1 w4 X+ q0 ^3 Y' f4 U5 @9 D - ;================================= KY HIEU TRUC ===============================0 Q% c1 {4 Z( |; ?& R) @
- ;==================================================================================
7 @/ z0 l8 h0 D! E" o) b - 5 L0 i5 v! x7 k4 K0 N! R7 b
- (defun C:vetruc ()! }/ X1 H. X6 ^
- (setq bk (getvar "USERR3"))4 V6 u% X* R4 d$ E* d2 f5 V4 r5 v
- (if (= bk 0)/ p, C: D. l- ~6 a( z
- (progn' G. G& A( _; f. v: |2 o
- (setq cont "1")
7 G2 B3 } C3 H8 r+ E# v( K - (setvar "USERR3" 1)
8 t- |5 ?) W" g6 z" l, j1 D - ): r9 z g3 |$ p: U( b
- (setq cont (rtos bk))6 ?7 M3 ?0 a9 R* Z" X
- ), K7 ?+ G$ i* n2 c- o5 G9 K# t- a
- (setq pt1 (getpoint "\n Nhap diem dat:"))
7 t% X1 W' F: M8 D# v, G0 K - (command "layer" "m" "Dim" "c" "" """"); D% ^6 D% G8 J/ E4 b: f4 t0 [% Z
- (command "osnap" "")" x! n5 N6 \: ~* n
- (COMMAND "COLOR" "7" "")3 S& V4 z3 l6 {6 i
- (command "circle" pt1 150 "")% S' Z9 G$ m( y1 p3 G' `1 V. o
- (setq pt2 (polar pt1 0 150))
' I8 K: v0 Z, L Y3 q - (setq pt3 (polar pt1 (/ pi 1) 150))
4 \% m: z2 i" l- R* |) u' j+ w& s - (setq pt4 (polar pt1 0 300))
- F: c r S# d/ W; V/ i( O - (setq pt5 (polar pt1 (/ pi 1) 300))
) M+ s9 ]( _( P$ c" @! p" L - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))& Y& B3 l: l2 o
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))' G6 |4 P8 i) Z0 [! u7 v
- (setq pt8 (polar pt1 (/ pi 2) 150)), M2 k% d) K" S! Y- Z
- (setq pt9 (polar pt1 (/ pi 2) 300))2 C4 V2 y6 L1 a# |. g3 Q
- (setq pt10 (polar pt1 0 150))
. O4 }6 E0 w5 ] - (setq pt11 (polar pt1 (/ pi 4) 150))0 U+ l5 S: i5 k3 Y# P4 i" Z
- (COMMAND "COLOR" "BYLAYER" "")
1 u, I6 Z3 L2 N; L - (command "line" pt2 pt4 "")9 v9 h; c5 Z) z3 j3 F4 [# d
- (command "line" pt6 pt7 "")
) i' K% c& P+ p% W! d1 T - (command "line" pt3 pt5 "")
4 V, X- K3 K, K+ b# i2 _! r - (command "line" pt8 pt9 "")
8 l' i3 u, q$ K8 `5 `" u - (setq dk (strcat "\n Size:<"cont">")). E. k0 v- g( P |1 w1 Y
- (setq bk (getreal dk))
# \5 d/ ]1 a3 n - (if (= bk nil)
: }3 G" i' }1 L. n) `" X5 X - (progn- ~5 P; ?$ }. P S3 X; m1 A
- (setq bk (getvar "USERR3"))
+ {/ L! T6 r# o8 k( q3 p5 [ - )+ z6 {5 j+ r: c: V+ s
- (setvar "USERR3" bk)
( @; H) I0 D# ]2 z2 o - ): W' H6 G0 }9 H" g
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")5 V+ |8 f( C0 J" V) T R
- (COMMAND "COLOR" "7" "")4 M. E' t/ q9 `+ @' J8 \
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")$ @. r6 P8 x M/ M
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
M$ w( `7 j# M - (COMMAND "COLOR" "BYLAYER" "")
# `: M7 Y5 r, A, Y - )" ?8 v1 u, ?0 R8 b: L5 Z c
- ! d: G& ^- x3 K8 E) `3 h3 c
- ;=====================================================================
3 X4 E0 s' j! U" J( | - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)+ W' Y2 O: ?# X4 V5 ?
- ;0 {/ A) l& X" A& F
- ;Jeffery P Sanders# Z8 R: c; j0 s9 j ^" z- m" U. \
- ;
2 c2 a/ d3 s/ Q6 V( k6 m) o - (defun C:CA(/ en enlist tx newtx cnt tp asc note)8 a" H. d: A8 y3 T# N& g1 a
- (setvar "cmdecho" 0)
* P, ^1 ?% x/ J+ ~7 u - (if(setq en(entsel))8 L) D0 f7 ^% f) q! P5 C
- (progn5 d: ^, t+ A$ r* t `8 P$ [
- (setq enlist(entget(car en)))( H) W% S0 q- `+ j2 u
- (if(= "TEXT"(cdr(assoc 0 enlist)))
- }# M$ F$ a, y' q; V8 o - (progn, I8 }1 j" o# z6 |" O
- (setq tx(cdr(assoc 1 enlist))
" |5 s; ?/ z* q0 Z - newtx "" cnt(strlen tx)1 X- R6 }% M& ^% {6 F/ }! a
- note "\n...CASE Reversed. \n "" s7 p6 A: Q5 P! \$ J/ U; v
- )
8 W G) l5 D( p$ I8 m - (while (> cnt 0)/ z2 X( N# @2 h+ D% I* ?
- (setq tp(substr tx cnt 1))/ P+ P5 S- n8 ?+ [
- (setq asc(ascii tp))
. L# g7 `2 b: F; k9 r. M - (if (> asc 96)
9 _: R( z/ x* v' u6 ~ - (setq tp(strcase tp))
8 B( g* r/ c& }/ y. @ H( w n - (setq tp(strcase tp T))% m. p9 H/ _2 |8 J- N" v
- )2 `0 L9 K8 E4 W- l
- (setq newtx(strcat tp newtx))
0 ^" ]1 S$ p9 E1 o( H; [ - (setq cnt(- cnt 1))) g. m1 a5 \. {" G' \# s3 j3 J# t
- )# e' }$ B6 `9 v6 E5 W
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
: P2 N- ~3 O }& R2 T+ A7 c - (entmod enlist)
& S* y. x5 a$ K% [- o+ B - )
) z I* o2 Y- T7 a' F G$ t - (setq note "\n....Text Only Please. \n ")% `' D* `6 S: b! l/ m: T, C
- ): C) w( [5 G# g/ c2 {6 x+ X7 Y2 H! d5 m
- )3 \: c& q+ h4 c4 K3 U
- (setq note "\n....Nothing Selected. \n ")$ b- ]' t2 a; E5 Y4 `3 ?
- )5 g5 m# E; o8 T+ R+ r
- (setvar "cmdecho" 1)
3 D8 e+ H* W0 [: ]3 G4 V- p - (princ note)
l7 Z9 E7 ^! _( B0 L; _7 ? - (princ)% u% Q, M2 r) \1 \3 p
- ) F6 V9 Y3 b8 L6 Z0 U
- - a! N$ L- Y, M
- ;=====================================================================
/ Z+ n# W' E) G* C4 x! @5 i - ;==================== NEW TEXT STYLE UPDATE ==========================
$ g3 ~7 C0 z! T. b. m1 ]6 h. ]* Q - ;=====================================================================+ r2 l3 J |* c3 G. o9 o
- 6 W* T. X% Q, _$ N+ n4 a/ B e$ M
- (defun c:nS (/ tdt ssdt sodt index)) |6 h' E; r$ t* K2 X& b) I( }
- (defun ObjName (ssdt /)
) ^- ~6 h! k- W6 v3 \6 m4 V/ Q9 j - (cdr (assoc '0 (entget ssdt)))
* [2 f- \2 M, a0 l D$ B0 a2 } - )
g8 r5 C& ~/ g. P# e2 a' }, v - (defun MoPL (ssdt /)! D. l* i6 X) `: y* {
- (= (cdr (assoc '70 (entget ssdt))) 0)
' |7 X5 S" B6 V' k- F$ v+ d* b - )
3 o. J& y4 f% y0 f! Z( u - (defun NoiPL (ssdt /)
/ S6 L. x1 c7 m& N: }( k: B - (if (MoPL ssdt)0 B% F. T' {5 D' G! @0 f
- (command ".PEDIT" ssdt "J" "All" "" "X")
* N( m5 H- d: Y9 C* l - )
8 G. n) A# \: `* E1 e- X5 h: h - )
0 l2 L9 E) S P/ i2 ? - (defun NoiLC (ssdt /)
- Y9 o9 d7 G( U! F - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
7 U& | {8 i9 _- y: e: ]; l4 T - ). ]& g5 t0 B% [8 ^! w4 W3 ?
- (setq* q2 m7 p5 m4 H7 [/ k9 I
- tdt (ssget)
3 j2 R" R* b2 h# f2 c - sodt (sslength tdt)% ^! t. W( c9 {; U4 W' k; `& A+ P4 q; g8 _
- index 0
$ b$ c% v2 m' E3 X - ), Z Y1 W9 l2 l% h2 i
- (repeat sodt
; ^4 G+ `5 y; o) n - (setq
8 g' X8 ?4 N. m. E/ J - ssdt (ssname tdt index)
+ A1 F G- B) `9 d% F - index (1+ index): z$ ?$ [1 O, C: j9 c* _
- )
; `& ?% t. O- b - (if (or (= (Objname ssdt) "LWPOLYLINE")
, M6 |+ o& A$ g# l - (= (Objname ssdt) "POLYLINE")9 K% m7 S4 v ]! J9 k7 @
- )" v+ ?9 k D7 c- e' h( W
- (NoiPL ssdt)
0 t' R' z2 ^* u- t - )' l( c' F3 A5 K+ {. |6 E0 n
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
0 m2 P4 h4 v4 I# q - (NoiLC ssdt)1 S4 H# y* z- V
- )' W3 [& k$ g* ~) M
- )
& W% s' B+ C! `7 B" _! ?4 ]: j: d - (princ)
9 P$ ?% n# b: Y# ]+ e5 t @. b - )
( d# e/ M6 |' |
# b A1 A! {8 S# `- ;=====================================================================0 r1 P$ h) c# W& _3 Z2 I C" c B
- ;;; AREAM.LSP
5 M2 g+ C9 l8 } - ;;; Function: Calculates the total area of selected objects
6 k& a- a, [' o2 \+ n3 x - ;;; By Jimmy Bergmark1 \" n. y' f0 h$ S/ A
- ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
M* _8 o) T' U7 h! s - ;;; Tested on AutoCAD 2000/ d {5 I9 q/ z4 v# \
- 5 D4 i. A& [8 y+ A+ P% V' I
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
, M+ g) s4 @; u# d0 X( X( y( T6 N - (defun errexit (s)
& |/ R; g# S; q3 J* g - (restore)8 n' j3 n6 f0 H3 j, p$ [
- )! o; z2 U- p% Y3 l( ~7 l
7 @2 a( s: t' }( W, a# Q- (defun undox ()
& p! l5 D* \2 v y4 X - (command "._undo" "_E")/ A9 a0 h5 }3 l+ b% S d
- (setvar "cmdecho" oldcmdecho) `% ?- G4 K4 H. B
- (setq *error* olderr): _5 F9 }/ ^ N) Q9 y
- (princ), [% M# c0 F; L* B5 V; z
- )7 U! E8 {% }7 C' R( W" V
- 6 x7 t3 @) S- e# Z1 I7 o
- (setq olderr *error*
2 F8 W( h* s. _ - restore undox* J$ e2 v/ c5 N N
- *error* errexit* g8 w, u! j1 M! ?3 l4 ], M. P4 F' u
- )
/ F& F. E! m4 M! L; ]; i6 X7 ` - (setq oldcmdecho (getvar "cmdecho"))2 }3 l; s$ B/ |/ g
- (setvar "cmdecho" 0)% s( y2 @! b! {+ ~) |) r5 P
- (command "._UNDO" "_BE")/ C3 D1 I$ y5 L( T5 w' d2 M) F
- (if (setq ss1 (ssget '((-4 . "<OR")' @+ X+ p" H5 [$ k/ x4 f4 \
- (0 . "POLYLINE")8 Q" P5 q2 f4 i1 n+ c. C( X
- (0 . "LWPOLYLINE")6 S+ k/ X5 x" V0 W
- (0 . "CIRCLE")( W7 }/ `2 F" z: ?; W
- (0 . "ELLIPSE")
/ }, n$ c+ |3 o: U" F, t - (0 . "SPLINE")
3 B# M2 a n5 [( K" | - (0 . "REGION")1 B0 Q$ p% ^+ z' X! P9 d
- (-4 . "OR>"), F# ?1 b# q. w0 h+ A% q
- )! G" ? u3 s v$ C1 P+ |& z" v; p
- )7 X) S7 T9 Q8 s: b4 r
- )
, S0 n" x2 } I _9 W - (progn' v0 { Z; X* \- ^" C
- (setq nr 0)
+ F2 b- T6 E: g v. i- J" Q - (setq tot_area 0.0)
8 M# ]: k9 K, a. r - (setq en (ssname ss1 nr))
9 I" j9 D& Q, p' x; z; s - (while en: Z ~& A0 m! }
- (command "._area" "_O" en)
- N/ k+ Z' M: I5 c9 L( D! _4 l% e - (setq tot_area (+ tot_area (getvar "area")))$ O- J8 M1 v6 ]2 q
- (setq nr (1+ nr))
% }+ D3 ~, I2 }2 d. b - (setq en (ssname ss1 nr))
( i$ _' x/ ]$ H2 S - )% V8 q0 R" q& j8 W4 O0 U/ M4 l
- (princ "\nTotal Area = ")0 L2 r4 N% `! {' q! Z: N
- (princ tot_area). `3 @% _! O" `$ [8 C1 q* ]! q
- )
' {/ s" Q6 T0 U6 G, N0 W/ n - )- J5 L- ?' {" ]3 d0 U J
- (restore)6 i4 R" k( ?9 |" J% a% z
- )
) \4 V7 m& \* y
7 k+ C) [0 [ {; X1 M0 B- ;=====================================================================+ Y, d. n1 l5 M. c: R9 Q
- ;;; By Jimmy Bergmark
% a& |6 o# w) q& e( V8 n, q! w+ v - ;;; Copyright (C) 2008 JTB World, All Rights Reserved$ d: ^, w) N; [6 C/ z; p/ n5 T
- ;;;
3 }% A0 ]# j/ T0 T3 C - ;;; Created: 2008-03-31$ u/ s' Q; \) m# j$ t' o; Q- Z( ~. K
- ;;;
% O& D: o6 D: K3 Y3 @2 X# O! I - ;;; Convert Attribute definitions to mtext
4 s; U& m" J2 a4 a6 {) d! u - ;;;3 [. A* p8 Z# {. r3 G3 J
- 1 e: r8 U& ?; v/ |5 u, A' B' m T
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
0 h. Y% S- n: i8 Y - (setq eset1 (ssget (list (cons 0 "ATTDEF"))), c0 z% d5 F# p; u' t/ w' P- r
- blkcnt 0 T$ h/ z6 W4 |# |& o
- )6 _1 C/ y# c: u1 y. T
# Y* |5 O _) x' e' b- (if eset1; [" C1 T% P8 o+ c, S
- (while (<= blkcnt (- (sslength eset1) 1))
2 s+ J' C- v* k/ S: [8 v& U% Q& X - (setq en (ssname eset1 blkcnt)
- |# P) T- Y& v8 |* U6 h - enlist (entget en)
$ M% N7 T! t( d7 w& k - ht (cdr (assoc 40 enlist))
' t1 }: a9 H& P7 ~- a& ? - pnt (assoc 10 enlist)! B( e0 z7 \( c4 w3 S
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
2 p+ _3 j1 x l - space (cdr (assoc 67 enlist))6 U+ h D4 p& {& k* u, ], C
- )
; D+ F d( L* t/ f1 [0 L - (setq vl (list
4 n, @# A+ Q f, e. o& A" l - (cons 0 "MTEXT")1 f; ?+ p0 ]* y7 Z. F3 X
- (cons 100 "AcDbEntity")1 m* }0 x3 K0 m o o" u; E$ \% p
- (cons 100 "AcDbMText")
. C8 O2 V2 }( e" u - (assoc 7 enlist)' Y* a; n- u4 s0 j8 `% q
- (assoc 8 enlist)' ?8 W4 K, N7 V' h4 z
- pnt
2 N& [ M6 h% M) J- ^ B _ - (assoc 40 enlist)& v$ r/ j; W5 H. y9 q
- (cond ((assoc 62 enlist))8 c" v# Q# q) y# O+ Q8 E
- ((cons 62 256))
; x; x* r# r0 f! }9 B - )
9 p5 I* e2 B( O! f - (cons 1 (cdr (assoc 2 enlist)))% p+ J: ]+ ]$ G
- (if (= space nil)
' e9 A- i$ n! E( G; R - (cons 67 0)
: h/ n& H# A9 j0 I - (cons 67 space)
# `5 Q; z$ v! x - )+ f3 b( K6 @! D2 ^. @
- )
2 P) W( J# g4 V! K2 f6 l - )
4 B4 n7 U6 Q6 ^3 @- g$ `' P - (entdel en)( Q" ?7 Y$ \/ h
- (entmake vl)! U4 x$ F. g6 G; u3 h
- (setq blkcnt (1+ blkcnt))
2 Z/ O8 e1 @" b - )
6 J) t6 r$ Y) [/ N9 G - )2 O% I7 d* B8 W6 i
- )" T& M( N# c" e
8 X% J$ R0 x- p$ [' E" `( d! L- ;=====================================================================
) J+ j Y s0 `0 i6 ?8 u' }* K - 2 A- E1 m' f8 t4 J1 T3 f
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi) I# r/ d# k: v% V
- ; Khoi dau cua chuong trinh
0 o3 v1 A- z* c- }+ d9 }. q - (princ "\nCopy Inteligent...\n")3 u7 S, M+ P9 B2 H9 _- ]
- (setq luuecho (getvar "cmdecho")( ^% b' y' a; G! c1 P
- luu *error*. B0 H5 X9 }( H4 o4 y0 d
- *error* ketthuc
) M- j+ R7 Y/ X0 ^ - cumdt (ssget)! p) E3 s; X+ i* P! L: {# p) o3 E
- dodai (sslength cumdt)
& s1 _% X- f; s1 r1 i4 \% Q - goc (getpoint "\nSelect base point:")
' B5 o5 Q: i- r' _ - thoat nil
8 G9 L9 J7 c1 A/ E( b. ^/ ] - dem 08 M2 b' p L6 k% V
- textxl nil: [7 H) G8 B; F @
- );
. H( Q& Z0 z6 \4 u0 B4 u) l - (setvar "cmdecho" 0)
& ^# s5 |% M& r - ; Loc ra duoc ong text de xu ly. A% p; r* d# v
- (while (and (= thoat nil)( X. Y8 b# H: y8 Q
- (< dem dodai)/ X u' i6 A5 G6 v
- )
, g6 |7 {+ O' c: s - (setq ten (ssname cumdt dem)% @: z5 M( n1 Z# L' y: j
- dem (1+ dem)
' j, R! j) I/ |' {3 A - doituong (entget ten)
5 H, w* N: G( \/ i# a$ r! g - kieu (cdr (assoc 0 doituong)) 6 W- _8 t: S8 m) l9 ^( J
- )
$ A1 s6 T. b5 D. p9 W f' z/ L2 | - / n( |* G3 V/ r9 Z' W2 s p; U
- (if (or (= kieu "TEXT")- a7 c+ a) A0 a% w. Y& w! n2 d
- (= kieu "MTEXT")
3 c0 W% [- y8 t H - )
$ j& s1 x& w" H+ l - (setq thoat T4 L" N5 a3 o5 U& D' T
- textxl (cdr (assoc 1 doituong))
, S9 r7 }( K3 l% w7 X, Y - )& W0 x! c4 d: H4 u; R4 @- Y
- )
; R1 v( ~$ ^ u( Y: W/ g - );
1 n$ d3 h1 v9 N0 \' R - (while T 0 b7 o! q4 U: J) F
- (setq toi (getpoint "\nSelect next point: " goc)% `+ V; L+ Z7 X6 N
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
) h/ F4 u0 X9 X4 L% n1 Z3 m - dem 0( f5 L* U# a \
- )' J2 r* V' _4 f# D
- (while (< dem dodai)
9 k0 ?* G6 f% p3 M9 C; j - (setq ten (ssname cumdt dem)$ G3 |7 r! @8 j, V) m
- dem (1+ dem)9 W4 ?8 P7 h' F6 Z0 ^/ U/ Y
- doituong (entget ten)
5 K0 u8 v; w) d3 ^( S% o7 ` - kieu (cdr (assoc 0 doituong))
" W, S! G8 a$ M9 ~% F; ~ - )
% m& ^, L, k: I - 1 S* x5 ]& z1 p5 s0 ]' I# z
- (if (or (= kieu "TEXT")
: p5 ^1 w& g8 `, d* e5 i - (= kieu "MTEXT") 1 ?( M$ C, {! N" W2 D! G I9 c' P
- ). I! R2 N) k5 ?& R- Y& w; Y2 Z) Q2 R
- (doitext ten)
( ~0 M) p/ x) F: K& W3 ^7 t - (copy_dt ten)9 X; H+ P u2 P
- 7 T" V3 ]" [5 W+ D; S
- );if4 o0 }* @0 a* e4 W8 e) I
- )
' k* Q. W1 G4 W! d7 r5 e z - );while
$ e0 W i1 Z3 p9 y - (ketthuc) T) |$ ^# d# V- }% w* x( K
- );defun
9 N' I4 ~$ ^ o4 k- t - (princ)9 y# F& N' ?( p' N5 N& f
2 l& \* l* v9 P) f1 V/ l- ;=====================================================================! j9 u* }% t4 x6 P3 M+ [& D, y
- ;;; By Jimmy Bergmark
- V# K% Y4 T* w$ t6 b" `9 M& J5 u$ H - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
% G* }2 n; a! l8 Q - ;;;
) z( T' G4 m2 M* c$ h" ? - ;;; Created: 2008-03-312 M" P6 L% r0 ?' M5 C; V: N
- ;;;
* L# A6 r* u9 d, v - ;;; Convert Attribute definitions to text
% M8 U" J( K# J; p% r) I - ;;;
. r4 ]: l( t d3 \0 p9 M
- V9 T7 V. k# e W( F- (defun c:ATT (/ eset1 blkcnt en enlist vl space); z- a4 a0 l/ `+ ^
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
6 g& A$ T) ]1 x l3 O" g+ V, f - blkcnt 0
) ^& q" u- N |* E; `, r - )0 f$ z% J9 h, ?
- - [ X5 N! l* H: l: @
- (if eset1
5 }1 i; l$ t3 } - (while (<= blkcnt (- (sslength eset1) 1))
0 X! z: g" V" k O$ c6 n8 u2 S/ Y - (setq en (ssname eset1 blkcnt)- g6 U( S9 l X1 c8 t
- enlist (entget en)
, Z# o u. h6 c3 D - space (cdr (assoc 67 enlist))
: p2 R5 T' I' y% ~/ [ - )2 z9 K3 r. }- ^$ a
- (setq vl (list1 `8 X/ v8 l& P. h8 V, W2 c
- (cons 0 "TEXT")
. R U+ v! G) S0 U# R0 Y% l - (cons 100 "AcDbEntity")
% ]5 B' \& L4 h3 ~ - (cons 100 "AcDbText"), r' m J; _$ L/ _3 K2 g
- (assoc 7 enlist)" a$ N* ]! Y* a B
- (assoc 8 enlist)4 R2 u! ^- ]# ^! X( X" b
- (assoc 10 enlist)
5 P$ a' m5 M1 C( j9 e - (assoc 40 enlist); M- c, s, q* p" k+ l
- (cond ((assoc 62 enlist))
/ `( O( s$ m+ s5 J - ((cons 62 256)); g# B/ h' f" u! l/ u
- )
g( s0 I; r" @) V; D# Z0 [2 D - (cons 1 (cdr (assoc 2 enlist)))$ j! W, I3 Z& \2 H3 q' i
- (if (= space nil)7 u; Y2 ~% t% L; t6 f& a
- (cons 67 0)
1 g1 Z6 x# R/ }7 Y# B# s1 \8 w - (cons 67 space)% d5 O: s/ C# r" W" T- \
- )
F6 l) s( t. Q+ j9 I! W7 y' | A, B - )
- |5 n% p& V- i" K8 i0 n ? - )9 i; t! B+ d! H8 K+ }/ p4 H
- (entdel en)* {: y$ @8 u% Q
- (entmake vl)- N1 e) H9 E7 u7 M0 W0 t9 {
- (setq blkcnt (1+ blkcnt))7 ?1 Q" g3 c" ?! K
- )# }8 D/ E! \3 ]* l: Y) p6 H. w
- )1 d0 p+ m* X& a: R5 I8 w4 Q
- )
! E1 @4 t9 f4 m& F - ;=====================================================================
. ]0 i. _& B! C1 `! I: d. O - ;============================ Doi Truc ===============================$ T4 y: j( M6 l& W
- ;===================================================================== b& Z8 ?. f! n5 F8 u1 \# U! G" }
- 5 k; n8 [6 ^( |6 [2 Q
- ;=====================================================================
- T% d. _5 P: [: k+ }( r - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============- q3 @& q: ^9 ^- F$ ?. O% i# J
- ;=====================================================================
* ]) C+ L/ }/ N3 v; ^4 [% l" K4 x - (defun c:ga1 ()
1 c% T0 G z0 w - (setq a (getpoint "\nChon diem: "))
( T; F% W+ V. H! e - (setq b (getpoint a"\nChon diem: "))- _0 f- k5 Q5 i/ h1 X
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- F ?2 n7 D4 ` - (command ".circle" c a)
" i/ o* e0 U$ @% A - (command ".line" a c "")7 y* ]/ S+ Y$ \0 }9 s
- (command ".array" "last" "" "p" c "1" "" "")
7 | a' ~( a' ~+ R! h- h; A - (princ))
$ @( V2 U5 W5 j, v - / ], o8 G- [" Y7 y2 ^
- (defun c:ga3 ()' [7 [3 r) r% O1 J/ M
- (setq a (getpoint "\nChon diem: "))
% H+ s0 ?7 Y$ {' ^( A+ V' b - (setq b (getpoint a"\nChon diem: "))
9 N. O' O7 w) _0 W - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' [+ Z' w6 R% S5 T" [. b. `8 b - (command ".circle" c a), I+ R, u _9 ^ y9 Z! V X1 _
- (command ".line" a c "")- i, A$ |* h, c
- (command ".array" "last" "" "p" c "3" "" "")7 b* O- Q2 N. L/ g
- (princ))
2 r/ Z3 @, ^$ H8 W }
' Y- J; D# P; ]# }6 k- (defun c:ga5 ()( k7 K8 e! H1 p1 {9 \" h
- (setq a (getpoint "\nChon diem: "))% @/ \+ c5 H8 C# L
- (setq b (getpoint a"\nChon diem: "))
3 s0 k8 ~- j& F - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
) ^- n, d, }* L3 l; p) G9 s" } - (command ".circle" c a)
T, A0 d3 L8 Y- @# O - (command ".line" a c "")5 E' M' t* M2 a! p9 V
- (command ".array" "last" "" "p" c "5" "" "")& T9 u5 t$ r& W
- (princ))
% {9 r0 y; }- T4 p! @% E - 4 {' m' F8 f! x/ r1 R- E. x1 |
- (defun c:ga7 ()
- d7 B) u4 N/ j$ P" P - (setq a (getpoint "\nChon diem: "))( b5 o* s& r8 r
- (setq b (getpoint a"\nChon diem: ")), N- D# l9 M) I! n' x
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ y* J0 W# @" p' I) ^; B - (command ".circle" c a)- v6 Z+ N& D# N8 S- e
- (command ".line" a c "")
: k `! h7 _1 r, C% a - (command ".array" "last" "" "p" c "7" "" "")
0 \3 r9 G" W3 l* L, V - (princ))
+ G# p8 `3 P: Z - $ ]: J/ o) o4 m: `4 {# Y
- (defun c:ga9 ()
/ X7 u6 ^$ G7 K; C: q - (setq a (getpoint "\nChon diem: "))- [" K5 C$ s% o- c( E8 c' f/ R* j+ M4 H) ?
- (setq b (getpoint a"\nChon diem: "))
9 ^ s" y8 D6 t9 n7 D- q l. N - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 W3 Y O+ }9 w" q! A - (command ".circle" c a)9 G& m. C+ A# }) l
- (command ".line" a c "")( d! `8 U b% ?9 R8 B
- (command ".array" "last" "" "p" c "9" "" "")
$ P; z N/ f8 W" ~4 b* }, d/ d - (princ))4 F) o' y- `' r! D
- ( C; F4 y n1 W5 O
- (defun c:ga11 ()2 [! u6 z& n, w, [/ Q. n( d
- (setq a (getpoint "\nChon diem: "))
8 c4 J- w+ A) E- B - (setq b (getpoint a"\nChon diem: "))
: I5 _! q) {" }3 d - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' C) I, u# `" x( B - (command ".circle" c a). s2 T0 j2 }. h" p, @
- (command ".line" a c "")3 M" E+ X6 v5 Z/ ?
- (command ".array" "last" "" "p" c "11" "" ""). g6 ?) [! c) e* a1 {6 x" e7 F8 Q
- (princ))
2 S1 Z; S$ _ ?+ w0 ^& y$ m
5 Y3 W; U1 G9 L- (defun c:ga13 ()
3 M2 n) b3 H9 G$ k8 y0 F2 W6 L - (setq a (getpoint "\nChon diem: "))
0 v% p* U- N) h - (setq b (getpoint a"\nChon diem: "))3 J) q# n, T7 ~& f- m. I2 d, R
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), W! [- b' W+ i. Y
- (command ".circle" c a)+ p# c6 J$ n, w3 l; a' n) s
- (command ".line" a c "")
, U3 Y% D& y( o0 t" |- U - (command ".array" "last" "" "p" c "13" "" "")
$ @1 p% U% i! W, q* ?/ J1 g( O$ Q$ F- } - (princ)). |2 V: W2 A& Z7 d
* n+ t: j2 S2 V: ]* D; W/ r- (defun c:ga15 ()
" H- A9 x5 r; R2 f1 ~ - (setq a (getpoint "\nChon diem: "))
4 I1 \( E0 T& n4 c6 y9 c - (setq b (getpoint a"\nChon diem: "))( J+ C7 M- u1 @# U# ]' e ^
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 A$ ^% } x, h5 k) s4 e+ c - (command ".circle" c a)( q$ i* E9 z% X/ h" m& k
- (command ".line" a c "")* q) ]" y9 z# b M2 Y( X9 U) o% W; a; D
- (command ".array" "last" "" "p" c "15" "" "")1 }$ T0 U# u% L' P: |% l
- (princ))
& y9 }* T+ m J
& [, ^2 S- p5 {* g8 R- (defun c:ga17 ()
+ |3 p0 K. f% T3 o; ^ - (setq a (getpoint "\nChon diem: "))
- a& G4 @; C7 m% d - (setq b (getpoint a"\nChon diem: "))- a* m, ?# J' O
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 W* A. G: p3 G3 l - (command ".circle" c a)
! A' \6 l* n( b% g* l2 x! |: B' [: q - (command ".line" a c "")
+ L* o) e* L+ g n* G - (command ".array" "last" "" "p" c "17" "" "")
# I5 X4 l# [# C x% k0 z- z" O1 y) x - (princ))1 N$ g) c! U u' g$ ]9 c) o
- 2 Y) A) N8 u4 r% e- ^5 V
- (defun c:ga19 ()
3 @* g/ j6 C* X( y" W( I - (setq a (getpoint "\nChon diem: "))7 b/ f7 w( @1 P2 O
- (setq b (getpoint a"\nChon diem: "))
" F& @. X, d8 F& H2 i - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 [( @$ T* N, Q" L0 Y. A* [& f - (command ".circle" c a)$ T9 ]/ L& `+ R2 R- z- T
- (command ".line" a c "")- U( p9 g9 g! @( _6 O8 J$ |0 p
- (command ".array" "last" "" "p" c "19" "" "")1 a# n4 Z! l* a$ y; n# {" O" t
- (princ))
# G. o u; D; Z. y - * v, k% C7 o1 ]" o& C& h+ i
- ;=====================================================================
, I0 }: q6 j c/ L8 ~- r( v - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
5 z/ P6 G6 ^7 V& l, ]6 u6 M: A - ;=====================================================================4 ^) r! [( S8 s" D/ F
- (defun c:ga2 ()
3 E+ S1 C2 s! e3 y - (setq a (getpoint "\nChon diem: "))- Z8 @- |* M$ [& P- b
- (setq b (getpoint a"\nChon diem: "))( W$ t+ Z+ T; k& \+ o
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" b7 Q' U& i7 o, S% k, l- k* t - (command ".line" a c "")
) ~/ z: {, i4 S4 l4 W - (command ".array" "last" "" "p" c "2" "" "")* F, O2 H3 s' k. s4 v$ E
- (command ".circle" c a)
: i1 _9 V5 D/ W, j- d; h2 w# ^ - (princ))
! f& y0 O6 u) r2 y- E- z6 {) p6 i% d* S - ) i! F' G9 H6 ?, c5 K
- (defun c:ga4 ()
1 u7 j" {1 v* A; I1 P: C. S - (setq a (getpoint "\nChon diem: "))
5 S! M4 L) T! ]+ i" b - (setq b (getpoint a"\nChon diem: "))
9 p( \4 {% s. q. D" r" I% E! t+ f - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))7 Z; ?$ {9 _& A i9 x" I
- (command ".line" a c ""); o4 G* F6 m# g! Q6 y
- (command ".array" "last" "" "p" c "4" "" ""): r6 ~4 \0 J, }- @& l
- (command ".circle" c a)' w+ f1 y# O, L3 h1 ~. D
- (princ))
- k, p" [ V( T; E - 3 h6 ~) U; L- ~* G2 I n' B p3 E
- (defun c:ga6 ()- D9 m1 n& ?' ?5 r2 d
- (setq a (getpoint "\nChon diem: ")) B2 z# [% b9 d: I
- (setq b (getpoint a"\nChon diem: "))
# R* E- v0 `, x$ a7 M( K - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 K" C1 _$ C' M" j+ l3 C - (command ".line" a c "")
0 C% R( K( T' j$ L3 M" q7 I! n; z - (command ".array" "last" "" "p" c "6" "" "")5 w4 [/ t: }& S/ r! f' {4 v
- (command ".circle" c a)
: c% c" Z2 [/ Q+ B: ] - (princ))* d' Z0 a( U$ D$ A5 ~% M
- # f! [$ c2 t, ~2 o" ~
- (defun c:ga8 ()# B0 t4 W9 `0 a! j6 o- D
- (setq a (getpoint "\nChon diem: "))
+ d! z; R+ M- v! N; | - (setq b (getpoint a"\nChon diem: ")): N1 b2 ^0 l: \3 e* [
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 d1 z2 `# Y1 W; W7 G5 R) B; z
- (command ".line" a c ""): l$ {- f) m) H' @) l- ~7 F9 o* r
- (command ".array" "last" "" "p" c "8" "" "")2 Q K, H) J2 ^+ [
- (command ".circle" c a)- N! }$ j; L! Z& y; d+ M
- (princ))
# d2 U) z! P3 w0 u5 s+ c - 5 i- B3 T" }4 I' C/ r0 |4 d
- (defun c:ga10 ()
4 H' V5 s1 {1 f; H! J/ G4 r3 Z7 ? - (setq a (getpoint "\nChon diem: "))4 G" I% k' Y3 S1 W( K* ~5 N8 o
- (setq b (getpoint a"\nChon diem: "))
1 Z9 c9 V5 s6 ?2 e, t C9 N) e' B - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) v, H" w2 z# E5 _4 O% x( Z! m
- (command ".line" a c "")" P8 @0 R. I* y* N, J" N0 U
- (command ".array" "last" "" "p" c "10" "" "")) r4 g) M% H: v
- (command ".circle" c a)
- v; p; k& @8 N4 @0 e4 J - (princ))
, x$ u% h) `/ C0 N1 _# s2 W - 4 e, X% F1 h5 L" p' ]5 h% G
- (defun c:ga12 ()/ T9 S. Q: X4 F
- (setq a (getpoint "\nChon diem: "))
6 P6 J( U$ O; K8 b! `" a" J" B - (setq b (getpoint a"\nChon diem: "))* W/ b8 b, x0 [0 Q. r
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 Y: l' L! I% ^1 h' S' B
- (command ".line" a c "")# H. R2 _9 L0 M0 Z4 C7 k
- (command ".array" "last" "" "p" c "12" "" "")- h8 p: t2 h* f
- (command ".circle" c a)
5 c2 M% f) U5 ^: q% y - (princ))& f3 n+ ]; U: \! b- J/ g6 [
- 4 w; I, d6 S7 ^, _
- (defun c:ga14 (); P& _. [# U( }! `# f
- (setq a (getpoint "\nChon diem: "))" c1 W! m* j1 ~. A' g) q) r" [
- (setq b (getpoint a"\nChon diem: ")); _5 Q% \ G* q0 b9 e4 a# R; d( ^
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 |" }$ l) ~. S4 e: F7 t8 ]
- (command ".line" a c "")
9 S9 b* z G& T; u' A - (command ".array" "last" "" "p" c "14" "" "")
. y9 G2 A: p+ V" s - (command ".circle" c a)
" q4 ^" _; ^3 T& p - (princ))
' {. ^* G: V( l+ j
; W3 C9 L( v0 M. n! w! f4 U4 a- (defun c:ga16 ()
) U& }( w: G6 G. k6 U1 G - (setq a (getpoint "\nChon diem: "))/ s" \3 K6 u G, R7 H# l& q }; |
- (setq b (getpoint a"\nChon diem: "))
6 k V& Z; U6 A - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))7 O& M2 t! u% W, y# y/ R
- (command ".line" a c "")
2 m& E8 [ S4 o' G D - (command ".array" "last" "" "p" c "16" "" "")% r$ e0 z8 p# q4 l
- (command ".circle" c a)
! Q) `/ k. a8 k: a { - (princ))5 M8 ]; j; b8 a( P1 S6 H
- 8 b- w$ ~6 s9 P$ x# t1 A# Q( ?
- (defun c:ga18 ()
$ B4 d; M1 O! ~8 \7 ^ - (setq a (getpoint "\nChon diem: "))- E+ C/ n0 X! {$ s
- (setq b (getpoint a"\nChon diem: "))& V) ~+ K5 U( s9 ^6 U3 |6 `, o
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); O& }0 T8 z/ M( ~& I3 [6 C
- (command ".line" a c ""), q g" Y h- E7 ]7 g% h# ^
- (command ".array" "last" "" "p" c "18" "" "")
2 M# a/ m$ H3 S* E - (command ".circle" c a)
+ h6 h ^! k9 ?: m/ l - (princ))
$ T, U0 \+ j; W* W) D" K( q - + F4 e7 t, U( R( K
- (defun c:ga20 ()
- J* S7 i! R7 B8 R - (setq a (getpoint "\nChon diem: "))) | E5 f) f/ O1 Z- B& Z8 E
- (setq b (getpoint a"\nChon diem: "))2 Q; x; N0 L9 _+ {% V% N
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! a& c; P6 K8 J' x# a9 n( v
- (command ".line" a c "")0 Q6 g7 v9 B0 n
- (command ".array" "last" "" "p" c "20" "" "")$ [* b$ |: d( s: L0 B
- (command ".circle" c a)
" @+ d( \, K( \+ f9 [) f( h - (princ))
7 R2 n. o4 J1 z1 A0 z) n% ~ - 0 Q3 A5 j3 p! l; t% D z) o6 t$ B
- ;=====================================================================
4 f% U# A& T4 g - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============
' M* h" n, D* |# q; n( N1 k - ;========================== 06-11-2016 ~ 18h00 =======================
- `- L% ` O6 q* M) D6 s - ;=====================================================================
$ U& [1 {( p) Z: k7 I - (defun c:ga () g0 w" C+ P" G, H* _! U8 ]: l
- (setq a (getpoint "\nChon diem: "))" X2 k, Q9 h" s* y/ J8 y7 i
- (setq b (getpoint a"\nChon diem: "))& @" P2 }# k, h, p S7 G
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), h4 f) R/ W% U' M5 Y! g7 a
- (command ".circle" c a)
5 O; G c# x6 ? - (command ".line" a c "") ?' N, P* q7 ?1 `
- (command ".array" "last" "" "p" c "NUM" "" "")
; Q/ A, t9 e9 S - (princ))
( W( Y7 V& z4 @. T4 m5 ^! q0 w- h
* T- m! e, ?$ Z, O4 P3 N5 r C- ;=====================================================================9 k4 c( ?: `) e
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
: b" [. d% e i# j! r - ;========================== 06-11-2016 ~ 18h40 =======================
6 \. s8 u* y X - ;=====================================================================# S* u+ q A# {, A7 O
" I5 u$ w( P( ^- (defun c:hoathi (): X0 ^' [' }: ^0 x; t) f
- (setq a (getpoint "\nChon diem: "))
) J3 I) m5 k/ h - (setq b (getpoint a"\nChon diem: ")). ^ a9 z) H; H5 y, m4 X
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 y! a c3 P. r! ]1 j3 P9 X7 V( [
- (command ".line" a c "")! r* @3 m( y* _) Q
- (command ".array" "last" "" "p" c "NUM" "" "")
7 N5 v% k2 M" \) { H, u2 y - (princ))/ A* D2 F' p. v3 a0 L- n
- # f; `& l/ C& l% f& E8 @; a
- ;=====================================================================/ h( i# \: u/ C
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============& W$ @. g3 H% _, B2 K3 D
- ;========================== 03-11-2024 ~ 19h33 =======================& ]3 i. b3 }4 ?: B2 p/ i+ s
- ;=====================================================================. T0 m! O! l' u
- 3 Q L7 h) q/ a2 D* D$ H
- (defun c:cung ()
% s# E/ n3 k5 m# @. K6 d; [. V - (setq a (getpoint "\nChon diem: "))) F% O. V0 w; x# Z1 v: O5 C# K
- (setq b (getpoint a"\nChon diem: "))0 M! W, Y5 t: i# [0 T4 x5 D; w
- (setq c (getpoint a"\nChon diem: "))
* {) M5 ]! B. h/ r - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, _ o& Z$ z% r - (command ".arc" a b c "")' C7 W. Q- g, {) a
- (command ".array" "last" "" "p" c "NUM" "" "")
8 v) W5 P/ r) a# Y - (princ))
3 ~0 y0 \7 [. n4 z3 Y7 ? - 6 [# ^; k( \! v* T% b
- ;=====================================================================- r& n- m3 w2 E3 ?- `5 S/ i
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============) d0 Z# `9 y( ?: k" h4 a
- ;========================== 03-11-2024 ~ 20h02 =======================( W% V; @: U% z9 C1 w* k6 h) Q
- ;=====================================================================
" C. I' p2 A3 P) i( f6 u# o& t& J
. ^6 ? f% @( I5 N2 e& ]' Q; G) r- (defun c:hecloic ()
; x$ _ Y7 J' j: V - (setq a (getpoint "\nChon diem: "))- F5 g d' h; j! e" u$ W
- (setq b (getpoint a"\nChon diem: multi "))
) N* ?6 ]1 r3 M7 y- r - (setq c (getpoint a"\nChon diem: "))(princ)
& k" x8 u V% W* U% Y - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 Z* f. w5 [! ` J4 _# |3 S - (command ".arc" a b c "")
; C0 _* k! F& a/ L - (command ".array" "last" "" "p" c "NUM" "" "")
# g1 S7 f ~" }6 K; O - (princ)), j; w$ [0 E7 n0 K- `6 n) W3 g
9 R) d' ~* n) p0 x9 {- }5 W# U- ;=====================================================================+ Z2 J1 N: x& A5 Q! a5 p
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============/ U8 Q; W$ q* Z* O5 M* r
- ;========================== 03-11-2024 ~ 19h38 =======================% u! e) Z9 M) i6 V; s& W2 x: u
- ;=====================================================================
5 ^9 j& f/ i% W9 u$ i( k u- q5 c( n
. q0 t; {# m8 Q6 ^8 |0 d- (defun c:gay ()
; N& l( }. B. D" j - (setq a (getpoint "\nChon diem: "))
W( b, W. ~9 B6 p# f, S. l* B B - (setq b (getpoint a"\nChon diem: "))6 V' `4 T, v- O$ n2 |/ i1 ?' ~
- (setq c (getpoint a"\nChon diem: "))(princ)8 {: z' Q1 M- b. t
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ k) t3 [! o3 n P* b. O8 ^
- (command ".pline" a b c "")! t- M4 ^4 P" a6 `7 t
- (command ".array" "last" "" "p" c "NUM" "" "")
0 Y8 ] G' P& d% \# M8 n1 H5 { - (princ))
& l7 l; ^- A) X6 y3 Q# b) h5 C
; ~. n" ~# P% w0 m: r- ;=====================================================================# [4 {$ O; Z; O
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
$ D; i. D( J& D+ D# P* H- U1 p - ;========================== 03-11-2024 ~ 20h02 =======================
U$ \) a B' r* V C8 d/ u - ;=====================================================================" Q! q0 Y1 Z# w3 u! H
# ^7 ]' [. V8 W, Q4 X7 d# ~- (defun c:hecloit ()4 j) p+ w) m1 N
- (setq a (getpoint "\nChon diem: "))
& V( D8 Y4 k+ L- Q/ F. P - (setq b (getpoint a"\nChon diem: multi "))! x5 |/ E, }# s q) T2 r' z
- (setq c (getpoint a"\nChon diem: "))(princ)
$ j/ e4 J' \. B9 Y - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ D0 ^/ h( Z& @$ ^9 J
- (command ".pline" a b c "")
7 g0 `7 }* K5 y- T) h - (command ".array" "last" "" "p" c "NUM" "" "")' u2 g' |. L: H7 ]2 V: y
- (princ)); @0 x6 z0 i& o- x% c
- / D. G/ y# i; s# t/ N# U: g
- 5 L( ` t: M4 o3 H
- ;;; ============================ Merge Hatch =============================& {8 r" Q( [! X* S! |0 W
& \ M; R9 C6 y" w+ T( @+ w- (defun c:mh (/ ss entht sl i dt dtht)
3 p, F6 p# g# `
; A; Q: C# W* o8 \* _- (princ "\nMerge Hatch - free lisp from CADViet.com")* i, {- P7 ?/ t- N, b2 o; V+ Y
1 T% R* |( A! u: [ _- (setq
/ v$ H, Z& P m# D3 m& E7 F - ss (ssget '((0 . "HATCH")))9 p1 Q, Y8 R d2 g0 x
- sl (if ss
# y% l$ I! m- X3 p, ] L - (sslength ss), @. o0 F& L* D# {2 o' {& B8 v& ~
- 0
9 p& v' F* z& `4 }* }. k - )$ [& j% @- K" L
- i 0
& t: c$ ?, ~' M8 |/ `# q; x - l 0
$ E3 G$ q2 i' A - )6 i3 v. z. W; ^
- - w: x* B2 g. z8 T- ]
- (repeat sl9 t' S s, H* j0 O5 @+ m7 ]" _6 `9 l
- (setq
, S6 }7 B: v9 E* n+ \; g' l7 P) H - entht (ssname ss i)
0 K7 X( L+ n$ D4 ~# J - dtht (getbdata entht)8 E% F3 B2 i0 u" }. f6 f
- dt (append dt dtht)
: h$ k6 q! L- Q' @3 ^! c - l (+ l (cdr (assoc 91 (entget entht))))+ E+ F# a4 c/ ]. ^9 `: E- \
- i (1+ i)
; T w' w, T+ b/ W& t - )* v8 Z- f/ L1 y1 |. w
- )
+ E" q b+ d8 W: H d$ V, {& w8 _
& m6 A/ ^( g' Y( e. D/ H- (setq ent (ssname ss 0)* z4 v. X9 j* C0 a) }. w
- ss (ssdel ent ss)" m/ c% h, w8 c! g
- tt (entget ent)
+ f/ { e2 p w% V" Z( D - duoi (member (assoc 75 tt) tt)
5 V. q& R) I% ~1 u - dau (reverse (member (assoc 91 tt) (reverse tt)))+ r/ P2 d. Z+ q7 U4 U' e
- tt (append dau dt duoi)
. d( M/ o' ]. R/ E9 k9 y - tt (subst (cons 91 l) (assoc 91 tt) tt)" r0 f% W6 o7 w0 M7 v
- )
& j% @4 b5 V6 ? - (entmod tt)9 v4 g! s4 t p
0 a# d/ g* c" S( X& v- (command ".erase" ss "")2 Q( R; a+ x/ h ]7 g5 |
- (princ)
1 ~+ P q! l; h6 W+ Y - )4 A) f2 e) Y) t( t- _$ n+ I
- ; ] [3 x$ M, Z Y
- (defun getbdata (ent)
) ~( V% T1 P- S7 q$ o# V, c - (setq tt (entget ent)
6 d5 W5 O) I) s9 ]/ Z6 I - tt (cdr (member (assoc 75 tt) (reverse tt)))
6 h1 ?, ~! \' d) I7 j5 T" C3 s - tt (cdr (member (assoc 91 tt) (reverse tt)))
- ~+ ~& @/ j* v7 R - )
' h, L7 S" k/ _/ R* l' s8 H% J - ). A, i5 F& U( `# Z1 i ^7 h1 y
- ' z* S' S1 U" S/ M, `
- 8 M' h$ L+ b/ l C" g1 ]9 }9 m% z
- (princ)
% E6 _% U7 b, O( Y, H3 r1 m
( U) M6 [. Q9 i+ H- ;;; =========================== CAC LENH LAYER ==============================- q8 `3 T7 f! `; C
- ;;; =========================== Layer hien hanh =============================
! A( g# m1 p0 ?; Q: v! I
! e% I( d: {$ r# \. G& [: u4 N- (defun layset (/ LAY) (setvar "cmdecho" 0)* ]8 z1 e: o" e; ~* R$ X& l
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))6 K* i9 g9 s; E& g s0 y( |# P# A
- (if LAY (progn ; ~* A. C0 U* L: T/ e9 N, _- A- ~& J" d
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))/ a0 p- K1 I9 m9 k6 x1 {
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )3 q9 k4 t8 t, S7 z! X$ @9 Y) w0 P
- (progn
5 N( C4 b5 `- c% a1 K3 e - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
7 @0 [; | `5 x' y) j) W' c# a& l - (progn
' ?1 f& O2 A2 y0 E4 n; q - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )$ I I. Y- E/ u4 e0 N* O' c
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))
9 n8 y$ ?" B7 U' l
% D1 T9 ?$ z0 a) R0 V; p- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
4 b3 B" Q! V& [9 C+ C+ m8 } - % b* W1 X/ v& T4 @
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0) Z" L1 f G5 M' k
- (if (not (setq SS (ssget "i")))
' |" i- h3 v0 E1 W/ e6 g - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: "); p6 a' ]( D% `& O+ F
- (setq SS (ssget)) ) )
2 }9 D7 O% \3 ?1 w - (if SS (progn' I* s3 U0 B9 R b5 E! ]9 N
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") & g# |( I7 F: Z) K
- (if (> (getvar "cmdactive") 0)
" Q0 e; h" i' a9 ~ - (progn
+ ?* p1 |( O( }+ m9 k$ u - (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
( d- x; c* P" {2 B- V - (setq SS nil) ) (if (> CNT 0) ) m2 ?5 @- G B2 G
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
' W+ D, q; w9 w9 `" v( s$ |6 F - (if SS (progn
/ \6 G1 P. }/ z3 o* \. Q V - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
9 Z( o/ k- u& f# o( ^ y8 Y4 I - (if (= (sslength SS) 1)
1 p2 M; h- J" s5 T% C3 U# p - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
. ^8 ?6 u3 m& C* H2 m; ^0 K: s8 G% j - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end9 Z* |5 _/ v! F! ]2 x, m
- (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))9 `$ {+ _/ ^$ @% r2 u
" s# ?9 \( v" }$ C; H. N- ;;; =========================== Layer Iso ===================================% \& k7 H/ K* J! L, d: r1 ^
- , M7 k6 K, ]6 V. D; {3 f2 j! y
- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
5 K3 ?; z" n6 x; u$ ~' `1 C - (if (not (setq SS (ssget "i"))) (progn! |+ i" }6 g, E+ m9 q) s
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")4 c1 k! @6 I# Y. t y: ?# ]
- (setq SS (ssget)) ) ): s0 ^ F3 B3 z$ Z) ]
- (if SS (progn (setq CNT 0)
$ _% w' U3 w$ k- a - (while (setq LAY (ssname SS CNT))
a1 |- c) ^% B+ J, A' @6 t' P' _ - (setq LAY (cdr (assoc 8 (entget LAY))))# u. q7 p( G, N3 w! ~/ Y
- (if (not (member LAY LAYLST))
1 L8 R5 ~% b# c4 ~( W9 W& t& V: X - (setq LAYLST (cons LAY LAYLST)) )8 H3 G0 |" E% }" A# ]; [$ e
- (setq CNT (1+ CNT)) )1 s" x0 O7 n; ~% e3 `+ I/ j0 V a" {: b% }
- (if (member (getvar "CLAYER") LAYLST)
% R$ N& c9 ^* ]; h$ j! [# G6 l - (setq LAY (getvar "CLAYER"))( J) V0 c/ Q, S. m* h7 S
- (setvar "CLAYER" (setq LAY (last LAYLST))) )0 Z1 T/ h- \ i, G- }# X) D
- (command "_.LAYER" "_OFF" "*" "_Y")
& j* C- \$ v3 h3 [6 z - (foreach VAL LAYLST (command "_ON" VAL))1 \3 q) j% P. r) Z5 C7 k
- (command "") (if (= (length LAYLST) 1)
5 R) f$ u$ U2 e: @ z - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra.")). q8 J; M! B4 R8 M' r
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
# ]( ]; O, I+ B2 _- l& I7 p - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
- J2 V/ f8 |# `7 m- Z9 b! ? - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))1 P. j' @% e; h9 B! W! O+ Z. ~
- 4 o5 j8 |! i4 ^ M& W5 v# S
- ;;; ========================= Layer Match ==================================7 f7 U9 ~ d4 T9 p9 i: d! X9 u
- 1 f# l) d% Z7 `& W' V. V
- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
p Y2 [ X0 U9 V) }5 N3 F - (setvar "cmdecho" 0)6 x- {) X, }; S8 B; @+ c, i0 Q: U
- (if (not (setq SS (ssget "i"))) (progn( @' \2 r( f1 [8 i/ v
- (prompt "\nChon doi tuong muon thay doi Layer : ")
5 ^$ ]6 B' \3 o5 ~; r - (setq SS (ssget)) ) )2 b, k M; `7 R$ @
- (if SS (progn
3 O0 k; R" `1 s$ W, w3 b5 X - (setq CNT (sslength SS))
9 B- ^3 I# {# \0 `; g4 Z" v5 ~ - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "")
4 a1 U& {$ N1 i! f) x3 e - (if (> (getvar "cmdactive") 0) (progn" \8 j) w) o W( u" G# E) h
- (command "0,0" "0,0") (setq SS (ssget "p")1 B; K, v+ f B/ y" N
- CNT (- CNT (sslength SS)) ) )
- T% ?7 B) o! V - (setq SS nil) ) (if (> CNT 0) : h- {3 g! a: c7 D' }
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
6 N1 T @$ C6 ` - (if SS (progn
3 ~7 J- b- G6 {2 a/ s - (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
9 p# m4 I$ M/ @5 b; w - (while LOOP (cond
1 |6 h5 r7 R/ z$ Z3 Y - ((not LAY)
- O$ w' m5 m5 F4 R: I - (prompt "\nKhong chon doi tuong.")* K: z' x4 Y! U, a7 z
- (prompt "\nSu dung layer hien hanh? <Y> ")
2 d; \! J) i5 R - (setq ANS (strcase (getstring)))
) o6 Q3 H0 C" r( R - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))$ w% O: z: }8 ^: L7 _' l- G
- (setq LAY (getvar "clayer") LOOP nil ) ) )
0 g2 a6 x l% p0 F5 W8 G6 A, |1 n - ((listp LAY) (setq LOOP nil) )4 Z' }4 v% v+ S6 ?& Y% [( K
- ((= LAY "Ten"), m: o# ?1 y- w& I& t9 D
- (setq LAY (getstring "\n>Nhap ten layer: "))
# ?7 q- k: E/ d3 o# O$ k - (cond
5 P" B, Q5 g1 t. a. q F - ((tblsearch "LAYER" LAY) (setq LOOP nil) ): x% e4 K$ C- I4 @( z" _
- ((/= LAY "")+ a4 m9 g2 _* j( U% t( H% u
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")# k: p% M# K% X; D' `; T6 G
- (setq ANS (strcase (getstring)))
7 M; z' F1 H7 h0 E - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
6 {! E) S' f) e. V } - (progn4 U+ |' \3 k) [6 A& W. C- P7 }
- (command "_.LAYER" "NEW" LAY "")
$ ~: O& |4 a, I- ?$ o Z - (setq LOOP nil) ) o: m( `: n# Q9 d! U4 O
- (prompt "\nLoi ten layer.") ) ) ) ) )
* Y. h: a! n0 v) _; |1 A0 s - (if LOOP (progn (initget "Ten")) A$ N( u& ^; D; J( g
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP) v B8 d$ ^9 g- z9 K
- (if (listp LAY)
" P" M2 |) k( c6 B5 C, M - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )$ |6 W6 O2 F- V/ q
- (command "_.chprop" SS "" "_la" LAY "")
: `8 E2 N: c3 h, H1 j0 n - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
) z- g* {" U8 Y - (if (= LAY (getvar "clayer"))
- [8 P7 d5 H9 Z5 \( R- c# V - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) ): g; q+ ?8 x, L! L% T
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
( @) X; ]- R; i+ ?0 F6 W- ~ - 9 ^7 g4 T) {0 ?, n$ Y% u* [ k
- ;;; ============================ Layer OFF =================================
4 e. M3 k( }4 P, O7 y
- N5 S' o) a3 x2 t5 f' x- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE), K) W- V0 X, \6 i2 | e1 ~8 C
- (SETQ SSET (SSGET))" V/ B7 Q7 o6 X
- (IF (/= NIL SSET) $ g% ^5 _! g, g; d
- (PROGN
- @2 H1 `/ F4 x+ D$ b: q1 m - (SETQ SSL (SSLENGTH SSET))) S8 L# q5 n" ?
- (SETQ LAY ""); [3 C7 l- s: s9 }2 F3 W
- (SETQ I 0)
" F( p+ G% h# p9 c+ m. i, L% o2 } - (SETQ MODE 0)
3 V% O8 _" @3 l/ ~7 T - (WHILE (< I SSL)( Y% T, k2 H* p! C' b
- (SETQ ENT (ENTGET (SSNAME SSET I)))
6 s+ k; w( |" a1 e - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
7 U% M0 h9 n i, l8 s6 v( j - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))- ~: I3 `1 K [! O7 Q9 x1 M
- (SETQ I (+ I 1))2 P% W' S5 N2 u9 P3 {# p
- ). o, `! b b( ?1 y
- (COMMAND "LAYER" "OFF" LAY "")
* T- G H( J2 u" b y- f - (IF (= MODE 1) (COMMAND "") ) s0 R8 w, i- ^" q' @4 T
- )
& ~; k7 j1 S P, o7 q7 h" V - )
: q e7 l2 i& u" o0 I: b) z - (PRINC)
- r- ]0 G& x2 C7 @1 a- U6 o, d) m - )
. A& w& V3 |$ z8 Y9 j" O6 Q
3 W4 P0 L, @% E$ S; D! d- ;;; ================================ Layer ON ==============================5 v/ N; F& W9 L* X0 M0 }5 V% A
- ' D* R( ?- s/ {" \( K* Y
- (Defun LAYON () (setvar "cmdecho" 0)
% ]1 @4 W) }3 K9 t; [* Z - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
3 q5 X2 _+ O( N6 U0 I - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))' U4 h! A4 D6 c& ?7 I, ~& N& ]) i
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))
. U1 ~# {' q& h/ r+ p4 ~3 H# L - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
; E% L- j# A; x; X2 D% I' A% C# G - % ]; A, J, c+ |* [6 K+ K4 R
- ;;; ============================== Layer Freeze ===========================
4 w4 T6 P% S, U) w; E: p
3 p- Y8 D' ^2 m) y" h- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) $ q# [, Y. J: Z; s' t* N
- (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
3 T+ J7 B$ \. T* e# [; d, v - (IF (/= NIL SSET) (PROGN
& r* Y" C) I% F; b% r - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) 2 a" E7 B, e% f' d* J
- (WHILE (< I SSL)
! m2 b$ ~0 x. [' r c8 p - (SETQ ENT (ENTGET (SSNAME SSET I))), _7 ~. j/ Q- u1 m1 ~3 z" q
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
+ e S) t { c: { E3 { - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
* C9 w7 v: U* x" Q$ n2 @, k; e3 Y6 ^ - (COMMAND "LAYER" "FREEZE" LAY "")4 a+ M" G! W1 c$ w/ k; b4 \
- (IF (= MODE 1) (COMMAND ""))))
4 L2 ^, p/ I, K8 A }9 ` - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
: r; g+ J, ~. j, Q2 L0 j! U2 ~3 [ - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
: z+ C% d& o! g% ]* T! _! L# K - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))* b6 U8 D& L( {
5 Z& k m, U, [- ;;; ============================== Layer Thaw ===============================
( h0 D: Y s( {0 z$ R - 2 _6 t; Q+ C) g2 S3 @0 K6 c
- (Defun LAYTHW ()' H- _7 z+ d& f) Q) j
- (setvar "cmdecho" 0)& P" K Q6 j/ L+ R2 L7 o( X9 `
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
. G' j/ m- Y1 C) j1 j8 x5 }9 Q - (Command "_.LAYER" "_THAW" LAY "")+ M6 C$ i( x6 v z. _
- (princ (strcat "\n Layer : " LAY " da THAW."))
) j- b2 y7 z3 c5 v+ ]( ?0 i - (princ) )4 [. {, g f2 T- p* x* w/ m
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
" e. f+ M2 v0 w% o/ w7 S7 ?
0 Q7 \2 U; |6 k: t1 w- ;;; ============================== Layer Lock ==============================1 f+ k- ], ~2 v5 g3 S0 |" n' O
- # K+ ~; |+ w2 L+ E
- (Defun LAYLCK (/ LAY)
- J) h6 \9 n1 C4 [0 c$ P4 u$ d. p - (setvar "cmdecho" 0)
3 T* r. g0 D: F - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))4 ^) D8 g7 o8 } q9 y5 r7 Z8 K5 p1 ]
- (if LAY0 ]$ m1 ]; q3 y# T. `* b
- (progn# X% Y6 |, u, Y+ H
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))' q4 {2 F' f5 o( m/ W* [
- (Command "_.LAYER" "_LOCK" LAY "") |, z$ T c5 |
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )8 [7 h) t" c7 c' M- {! Y
- (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
1 n) d% |" {* z5 u" N' d. M5 \' ?7 G - x! Z) ]) \8 B& t* @" J0 j
- ;;; ============================== Layer UnLock ==============================
- R* R) W, Z# }4 o3 o0 \% ?
1 L3 ^2 s( N2 ^5 N2 H4 M: r- (Defun LAYULK (/ LAY)
3 X4 C" R2 U# n9 O - (setvar "cmdecho" 0)
' H" R( \' |' h, v4 n. K) C - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))6 M- a, e" ]* z2 [2 o) \) \3 F$ A
- (if LAY1 y7 q4 I: G& y* H" ~% R
- (progn
( l, k4 u2 v* f9 ` N( p, K u - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
W2 P @, ]7 A8 [$ C# b - (Command "_.LAYER" "_UNLOCK" LAY "")
" [1 p) l5 M0 P$ A3 m, D& T - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
0 y5 P' T y' @# ^4 a3 ` - (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))& a5 V8 E9 B3 G0 K
- 7 u# u* I3 @/ |! K! [
- ;;;===================== Delete all objects of Layer ========================' |/ g- L- i/ a: `- V7 B3 `
- 0 v3 L' P$ K1 |& G' A! A% R6 i9 E
- (defun DELAYER (/ ocmd L S) 6 I4 o5 ^/ f& I6 y/ ^9 \ Q' C
- (setq ocmd (getvar "CMDECHO"))
/ S2 r+ L5 d0 I - (setvar "CMDECHO" 0)
- q. s7 K( h+ x7 e. U; o - (setq L (strcase (getstring "\nLayer(s) to delete: ")))- z H2 Y- q! U8 O; Q
- (setq S (ssget "X" (list (cons 8 L)))) ( V# Q, h( x( q
- (if S
: c6 _. A4 Z' @- w& \8 j - (command "ERASE" S "")
4 Y: Y; O) L% q7 F' h+ r) Q$ b( U - (princ "Layer empty or not a valid layer name.") ) ! `) n; _) K% I& ?, K
- (setq S nil) ! Q/ \$ G$ `7 k6 o
- (setvar "CMDECHO" ocmd)
7 o' k& \0 K5 G, s6 L' v/ z - (princ) ) , k- e8 G z/ C( O6 l# z5 d
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer)): [" ?2 o/ ~0 ^5 d" S
( ]% p7 I% [% e9 P4 e- ;;; ========================= HET CAC LENH LAYER ===========================
9 O1 p! T. Q: N5 w5 `8 r - 1 Z# O7 U$ M5 N6 F! h
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
3 u4 I9 ^ S" Y; J; m
! y# Z+ Z0 j( \* |( D- (Defun C:EET ()
2 [6 b0 h" ~) ~ - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)7 y# L2 A7 q7 H3 [7 ^. d8 ?
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget)): J, F# g# z3 \$ J& H
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))) M. x3 Q4 h" g) t) E# H# G- ^
- (Setq I -1)
' T2 E0 V" D' P4 |0 r. r - (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "") u6 P4 X6 n- P7 T2 X
- (Repeat LEN* v5 ^4 ^. x6 U2 h8 l
- (Setq I (1+ I))" D6 n0 U4 j& }4 S
- (Command (List(SSname SS I) SIDE)) ) (Command "")
+ ]! y1 O' n f; b - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
) ]" |8 i/ F. S) R
* c4 [0 b9 b5 d0 q3 B; E- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
8 T& W: c4 p- J: \* c- u# A2 y - 9 J0 F3 I9 o% L( W7 c. m9 ^8 ~
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)/ [ `3 A) ?$ y* e! n5 [# W
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
! z6 W2 F8 B4 T5 S- L; l - (setvar "osmode" os)
- T$ h7 v l0 E7 u+ o9 w& v, U* Y - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))0 T9 ~# W0 J' m, h( }4 ~1 O
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
% N7 ?% k, a4 ~1 b1 n
) D. }2 r9 x3 T- S! ?. j- ;; ================ Change width of polylines =========================
% s- c. n3 C$ o8 ~
/ L7 ? t2 g/ r9 W. ~- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
) |+ L" t0 ? U" I% P+ s* H8 I - (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
/ v* n" ?) b. q, c - (setq b (ssget))
; g* X# ~ ^( ^ h8 U5 n - (setq sophantu (sslength b)) - H! f+ T. M% ?5 M+ [- @& E( t. O+ ^
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))( p9 S; w3 Y) W4 A7 D/ A) [
- (princ "\nDo rong polyline <")
- |$ h8 Z% g: a+ } - (princ ha:wid)- j$ a& t2 A: W* S
- (princ ">: ")
1 i" \1 }- p9 S: ^ - (initget 4)& a- P- |6 k- m1 M: P+ M
- (setq ha:wid (getdist))0 ]% E& ^2 d$ x$ a
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))9 U% L! a0 P3 W0 _
- (setvar "tracewid" ha:wid)$ S# A N( b) j, r% P6 ?& I" M. k2 k
- (setvar "cmdecho" 0)8 a+ t1 I* O* K* h5 w) [
- (setq sodem 0) : E9 k+ {0 s2 f& ]# O4 S7 N+ l
- (repeat sophantu( {: `0 Q8 o4 I9 o3 m/ U
- (setq a (ssname b sodem))
- [- Z& j& O! r- B! ? - (setq list1 (assoc 0 (entget a))): i/ I4 P& Q& [) T7 R- b
- (cond
4 K) D- |7 A9 r& V. w% Z% E - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))& Q9 z+ q8 c/ e/ v& _ Y
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
5 z4 i9 ^# m$ R - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
. h8 L) y2 K, U1 a: f - (defun c:wp () (wp)) (defun c:pw () (wp))
1 o- H6 g* I; W5 T! e9 H" ?, |1 y
; T7 i( ~9 ?0 T+ c; Q$ A- ;; ================ Change radius of circles ==========================0 X+ B7 u. o" A, \& s$ |$ `
- 7 v# }9 C" f4 \
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
2 _# p% C+ s1 _9 q* o - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
2 k/ n4 a9 |: d/ t4 T2 W - (IF (/= RD NIL) (PROGN (SETQ I 0)/ ^1 R0 C: T( O; t7 ?
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )2 S& \! M+ {1 ?+ [& a
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN3 x* n( a+ |7 n1 Z! M. K; T
- (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )) L1 [$ y) i: v8 i2 ?
" T4 Y# ] i% V% e- ;;; ============================== TEXT Hight ===============================
2 ?: [& Z3 R0 ^3 t7 ^7 Q - + {. e% o: Q2 M$ I8 y
- (defun texthght (/ ent hght)2 K$ }& B, H6 r# P2 v/ v* M
- (setvar "cmdecho" 1)5 T; X- D) g. o; O9 h( A: R
- (prompt (strcat"\nSelect text entity with required text height"))
+ e2 |7 v6 e/ U1 w9 M) [! _% e3 q - (prompt (strcat"\n."))- B j" b( e* ~9 o; V' g
- (setq ent (entget (car (entsel))))4 S0 U; {2 L6 r
- (setq hght (cdr (assoc 40 ent)))
) v0 N4 A! Y% \ - (prompt (strcat"\nText height now set at "))(prin1 hght)0 O" s5 }6 L" x! m6 k2 [0 m
- (prompt (strcat"\n.")) 8 [& t7 h8 U: {1 K
- (setvar "cmdecho" 1)& N& S$ y' ]5 v
- (command "DTEXT" PAUSE hght "") )# {# ^0 R2 H4 G1 p
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))6 e7 j+ F3 K5 o' P3 @5 c/ x2 r/ @
$ K6 r, U+ C$ ^" @, p! v! r- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
. U1 p) M7 V6 T - 8 t( I; [; N: ]
- (defun c:tuu () (setvar "cmdecho" 0); d |3 m) E/ t4 M& h& e
- (prompt "\nHay chon dong TEXT can gach chan ")
5 k2 @4 N5 I) U s - (prompt "\nSelect objects: ")' X# v% q3 U" G9 W- @
- (command "select" "au" pause)
. F1 z8 J, p$ M2 I X4 ]& ]' q. ~ - (setq sstxt (ssget "p")6 M; Y; t& s6 f% O
- sslen (sslength sstxt)
7 q: g; n0 Q4 Y - ctr 0 )
2 P0 V2 J. ?8 I* w* U; n - (command ".undo" "mark")
* P9 W- V$ B3 P8 O - (while (< ctr sslen)
! q2 |/ e7 o: _- s: l* X) _' C3 T - (setq listxt (entget (ssname sstxt ctr))! w4 k0 ]% ~0 i1 M
- txttxt (cdr (assoc 1 listxt))
% b: X! @- [! x: ]% x - enttxt (cdr (assoc 0 listxt)) )- S) P( c# V+ X }6 }; }" m/ G0 F% M
- (if (= enttxt "TEXT")
8 R% P5 |9 ? j% b - (progn
; s4 ]* y/ h" {; [ - (setq testxt (substr txttxt 1 3))9 M. @5 v5 J! S# J; t3 g
- (if (or (= testxt "%%u") (= testxt "%%U"))1 M4 Z) o3 b% O; X! g2 r# A% B$ r
- (setq newtxt (substr txttxt 4))
! [+ I( |: y i- y# W - (setq newtxt (strcat "%%u" txttxt)) )
: h2 M( M0 N6 g3 H$ t - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
6 W! [' f" n0 D9 P7 m - (entmod listxt) ) )
( }0 t$ M. O ^! C5 p# K2 f" i3 f% S - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)); m, Q# C- j9 y; N
7 U+ {+ k6 }5 X2 K% z- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================7 S8 R; c* k: o% E) g% ?8 E
- 4 [0 E! \" w$ T0 p; `& G
- (defun c:tob () (setvar "cmdecho" 0)0 ~ F* y/ s, V
- (prompt "\nHay chon dong TEXT can gach tren dau ")3 @5 h9 b& W1 w
- (prompt "\nSelect objects: ")
4 Y0 p/ r1 |! d* x! O- v - (command "select" "au" pause)
. r2 G3 |/ F; \% c - (setq sstxt (ssget "p")
2 o- K* f9 C' d5 J1 w - sslen (sslength sstxt)$ x, b( Q: a: D3 w
- ctr 0 )8 Z/ c0 z6 b8 `3 J3 f2 K; V
- (command ".undo" "mark")4 ~) M7 F' o5 P9 K# N$ X- m
- (while (< ctr sslen)! b0 E; @9 I6 U0 C& W+ s# W
- (setq listxt (entget (ssname sstxt ctr)), ]1 Q! I! u. Q- }
- txttxt (cdr (assoc 1 listxt))
~" ?, T( T' u - enttxt (cdr (assoc 0 listxt)) )
% x* S5 f4 j1 Y. ^6 }, ? - (if (= enttxt "TEXT")& v0 o7 L+ O Y
- (progn
% _! K6 J) {+ V" ?' _ - (setq testxt (substr txttxt 1 3))* s5 a, |# r" ]2 P0 }$ |6 M& |
- (if (or (= testxt "%%o") (= testxt "%%o"))
! F! x9 [, S, C3 v) T4 W5 K [ - (setq newtxt (substr txttxt 4))
9 i, I- Z% J, Z% ]' v; B, W - (setq newtxt (strcat "%%o" txttxt)) )
3 d# D4 v* J. S: I: P7 W# E - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))( k; n' N, d. r" k
- (entmod listxt) ) )) _/ f6 b4 Q/ Z
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
1 L3 ~1 A+ s/ `3 I
( F" g: |* z# ]; J- ;;; ========================== Tim & thay the TEXT ==========================
" C( w _( O$ {2 I5 [; I: w5 L - 2 e& e9 A4 O, R' W( r0 }/ T
- (defun frstring (str search replace / str1 str2 index find) Y; ]1 ?, M/ L0 D# K- }$ f, T
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
9 \. W$ J" m( A( E% x - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
5 G' |. z+ Q2 ^! w - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
' H" J! }# O3 E2 w# x - (defun hai (/ dial)! R+ f: v5 P, X* p- y9 }
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog
. f. d/ N5 Y+ j- ` - (if (not (new_dialog "find" Dial)) (exit)) ;;! H: ]! L* h* t7 V. C
- (mode_tile "find" 2); Tao dau nhac tai hop thoai6 f# n1 [7 ~! t% t
- (action_tile "find" "(hai1)")$ i8 _; F( e+ Y# l/ A
- (action_tile "replace" "(hai2)")+ b. L- D4 g& B2 P% U. d4 H9 `" g
- (action_tile "cancel" "(done_dialog) (exit)")4 ]) z1 m" j9 r# Q& A* ~( X! Q
- (start_dialog) 4 a: g6 I( m# `8 q- Y% x& u
- (unload_dialog dial))7 j7 T" n( ^: k+ P5 d
- (defun hai1 () (SETQ str1 (get_tile "find")))
) N9 Q5 g6 i8 r3 c - (defun hai2 () (SETQ str2 (get_tile "replace")))
' L) f, I- ^) z
v+ |9 v$ q7 m/ \& K z) w- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
: V" w% O i" x% y+ j' N - (hai); @7 B; [2 t2 c4 d0 T
- (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")+ k7 M2 j0 f, W7 N8 R7 T
- (progn' Q, d8 h* M. U/ {' i/ Z
- (setq taphop (ssget '((0 . "TEXT"))))
9 w5 d$ I7 Q' R+ M3 X - (setq sodem 0)
& m' f m, [ p* X, t - (if taphop
7 ]3 F' Q7 h$ w" O+ b - (progn/ t8 F' l! t, E
- (Repeat (sslength taphop)
, H8 b! Z$ ^3 N6 `/ j/ k6 C. W - (setq a (entget (ssname taphop sodem)))9 U1 l- u# B& A& H5 ]
- (setq str (cdr (assoc 1 a)))
) K. \; V) S* k: t K% v - (setq newstr (frstring str str1 str2))
- {7 z! T$ y3 d0 U - (setq a (subst (cons 1 newstr) (assoc 1 a) a)): v/ X! J& j, k. b/ Q
- (entmod a)
2 E* D" @! r3 y- a0 l- x0 t. N - (setq sodem (1+ sodem)) ) ), c, i+ ?% ?' v6 `: a1 x
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
7 g6 E# O, C& A6 w2 w7 O - 2 N& w+ m F2 }$ p
- ;;;============================= CHTEXSTY.LSP =============================
" d# A0 |/ R- y' B7 n- t
3 Q5 g; T/ v* k0 a( e2 U) w- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST "), P l/ h& O& L0 ~9 m6 K! {+ @0 _+ c
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
* M H8 W7 {! o+ Q5 f* n - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
~: N: ?; H9 Z/ D0 [+ n - (Initget 1) (Setq C (Getstring "\nEnter new text style: ")) v& }3 x' {, @ Y# P n
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
6 Z- d A# |5 P, n( d+ C5 B - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))4 y4 r. g6 R' h! Y3 O6 l; T* p
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))" t4 t7 U+ z( W& q- k# T
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))0 u* Z; _3 q @+ n% |
- (Initget 1) (Setq A (Strcase (Getstring
1 ^% @& s6 C" G7 ^3 Y - "\nEnter text style to change: "))) (Initget 1), ?/ ?' r/ @+ h' A( K4 {4 r, [
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext)): w s0 g b5 d A1 w
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
$ M: J# W% k+ I$ L! Q# T0 r - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
% D8 J7 h6 [8 D: j4 ?" Q; c - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))8 B6 g% n) h1 t) x- _1 B
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
! l. O7 v8 u$ R3 A* n$ I - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
/ j3 ^% a5 ]6 D/ e+ j - # G. T$ p1 _" }7 V3 }: Y
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
/ ?6 V5 ] A1 f2 B( k - (Setq J (Cdr (Assoc 50 A))))
# Q& h* e# @" R, n+ a
+ S2 T/ e9 I/ M- ~- ;;; ============================ DRAW CLOUD =============================9 M* J& Q, V$ E0 D3 ~6 K% O; U
- $ j; q% Z7 n% g: n# f7 r
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)8 r1 L& e3 R: O- [. Q
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")& z' f7 R& E$ r2 ?/ n5 z5 C
- (setq la (getvar "clayer"))" S7 m& R, a" [8 L! i1 B
- (command "layer" "m" "cloud" "c" "5" "" "")
! _% m& L$ a/ g+ h6 E* ] - (setq pt1 (getpoint "\nEnter first point of Cloud: "))
5 I% F, V, f/ h5 F) @ - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))2 n- w2 w* H- E& ~, s5 s
- (setq cnt 1 ss (ssadd))" B$ \) ]- v7 B" Q5 _
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))* y- d$ x& T# m
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
. }* |+ ]/ b D1 e4 W - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))7 M9 `1 T- q5 _9 q
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
$ O0 S; s( H) S' t( R3 P* h - (command "pedit" arc1 "y" "j" ss "" "x")' U: S. n6 i, r5 u9 c T
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)- u( I8 ]4 H! n5 e
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) 8 \+ P$ p0 L8 F8 ?3 u$ Z
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))# J$ o% g% O# K1 }
- 8 _* K5 E$ b8 L3 n
- ;;; ================================ Funtion-Dulieu ========================
9 F$ B8 Q* d8 D( e% g2 D& P$ Y - ;;; ================================ Funtion-Dulieu ========================
/ P. t( ]: d# G3 N6 |& w - ;;; ================================ Funtion-Dulieu ========================
* C3 p4 k- a0 d! o8 X3 N - ! a U3 Q% X8 W1 N; _
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
; \ H( V }7 X$ O" e& d7 E1 T) e# P - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
7 D9 W& D- j& {0 I, h5 ?1 p - (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))4 k2 e7 u- g2 D; E& T4 ]
- (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) )
I+ k1 c4 S8 ]! K) S; b - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))* z4 m, n$ [+ |2 x& G
- (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
& C8 L+ h' J7 F1 s! p* U" { - (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))0 v3 f, ?2 s" a5 [% A( z- w- |; D
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))( `5 f. n& |/ h% _; J$ M
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))% K) _3 d5 r) r. E
- (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 p D- B" o! l6 U+ l8 m9 c - (defun dtr (dtr) (* pi (/ dtr 180.0)))
3 h& P/ ?6 e4 d" W- A - (defun rtd (rtd) (* 180.0 (/ rtd pi)))
. H' `' C" B3 C! [$ u - ) ^0 ]2 C8 Z. E3 l& [: M
- ;;;==============================PROGRAME===============================" Z" Y( G. Z% q, z V
- ;;;=====================EditDiM Hien Hop Thoai Dep======================
8 j7 U3 O: u$ p0 {# O5 U( K - ;;;==============================PROGRAME===============================
& o4 R) b5 G# ^) u4 P! } - 4 z) e) r! A2 Q" q1 `
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh) b: J9 l/ E; L! s* |: H
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
* {$ n1 r8 O- K* E) d( G1 }* p - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
. j5 y i: f4 B% o) p# p - (Setq Oldlis (Entget (Car Chon))+ v% G. N, {( n, A' p0 ~
- Pt10 (Cdr (Assoc 10 Oldlis)): K8 ^. r1 t9 w" @. j
- Pt13 (Cdr (Assoc 13 Oldlis))& v. ]! S; o! A. E
- Pt14 (Cdr (Assoc 14 Oldlis))
1 O' Q, _- O; E, [! d6 ? - St (Cdr (Assoc 70 Oldlis))
6 x9 @3 ]0 I ? - Dimdefault (Cdr (Assoc 1 Oldlis))
y& U M% t9 ^# @6 b' r" c - )$ s: Y. u( f" ^
- (Cond, }2 X% u7 f- @$ ^& {% i+ ~
- ((Or (= 32 St)(= 0 St)(= 160 St))- _& e0 S" |0 `. l0 @ V5 w
- (Progn( S; |9 S) u/ _ I: W1 @
- (Setq Ang (Cdr (Assoc 50 Oldlis))$ u G; ^6 P- V+ [
- Pt (Polar Pt13 Ang 500)$ t7 ?! a4 M. w$ b' _/ M
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
5 O4 m; B& y {) O3 S: m+ `9 Y% c - Dis (Rtos (Distance Pt13 Hc))- m% m( i6 k0 W- _% s
- )/ w& Y# p! R3 z' | {& `
- )
8 y, G) U& N. P - )
2 @0 j" r5 [) D/ p - ((Or (= 33 St)(= 1 St))
0 O7 y/ s4 p: O5 O* t - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))" O6 ]; t: J. e- A3 v
- );;End Cond
7 U2 w* s" Z% q _0 t! T) n - (If (= Dimdefault "") (Setq Dimdefault "<>"))9 F: l4 i7 G3 o* Z8 ^
- (Setq Dial (Load_Dialog "Hai.Dcl"))
- A( {! r& G$ c0 M, U - (If (Not (New_Dialog "eddim" Dial)) (Exit)), D( O k" {- D( ?! A
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))1 A+ h8 \. l) B% `; k
- (Set_Tile "text" Dis))( p) d* i. x# Q
- (Set_Tile "ha:edim" Dimdefault)
; h1 m y5 s4 P$ l5 V9 u/ P - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
; N4 x( f# [" g8 l" ~$ S# R2 e - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")6 O8 M: F0 ]5 H
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
4 ]1 k' n! Z5 ]. R8 j5 G - (If (And Str (= 3 State))% M( N! B! l5 S3 G+ J" t* H
- (Progn
3 y# E" l, }& _( @ - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
+ I1 d [ O& d - )1 Y+ z7 n2 Q5 w! r! z
- (Defun C:EH (/ Chon Name )5 h3 K' S: q4 q; j" |6 e, r
- (Defun *Error* (Msg)
# G; W: ~4 Q* z) A* N0 H - (Princ "\nerror: ")(Princ Msg)(Princ " ")+ O# B( e" I `, G! {( D# k! K
- (Start_Dialog)(Unload_Dialog Dial)% a2 g, r9 W2 j; s' d
- (Setq *Error* Olderr)(Princ)
" t3 [! O l, S% K- ^- o3 n( X - )/ P1 s. I+ s3 r0 g! \: _+ g
- (Setq Olderr *Error*)
9 f! P) @# x8 ~5 l* A z r0 g) F - (Setq Chon T)7 R- ~8 Z( n7 y1 N3 C" E5 ~
- (While Chon3 V9 y1 h& q( L& ?/ ^& K. r) d5 E( i
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))( Z6 P& u4 E5 l% N
- (If Chon) a* [2 v; Z5 z. `- @! ~
- (Progn
! m+ t/ [9 R6 ` - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))# k1 i/ I$ X9 M
- (Cond
3 y* W% j; L9 x& h - ((= Name "INSERT")(Command "Ddatte" Chon)), M4 [ o* ?( J) w: q! a
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
) t" o1 i9 i. H; b( X) x( p - ((= Name "DIMENSION") (Hai_Edim Chon))
0 e+ h) {- C1 @% @- E& n! b - )
9 C) _7 y/ V- x. j! g8 K - );End Cond
: K3 _+ v" K! @; _# y, Q - );End Progn0 G, s% {* {; V8 v% |, z1 P
- );End While
7 C* k" R# {2 e( U& H - (Setq Olderr *Error*)(Princ)
( Z" U5 P( s3 W3 v2 ^ - );End Program
7 a9 V( T- G" T5 F2 ^. I: B - ) i1 r( x! t6 _# W6 }" p1 L6 O4 \2 [
- ;;;====================DDeditDim=====================
+ j* ?" y3 O5 m+ C/ g( c - ;;;=====================Hai.DCL======================
5 P- o' s3 \8 o+ H - ;;;====================DDeditDim=====================
% K( C) O) z* |- Y - 7 g5 N4 l Y) v/ C6 W: Z9 H
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
: N( Z' |) ?. `3 O% K! ]8 k - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
' ]" t# O/ _4 H2 V5 J0 B' W, d/ n - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
, u0 W, x& B6 _. B - (Setq Oldlis (Entget (Car Chon))& v! z+ b+ O3 S( Q1 q
- Pt10 (Cdr (Assoc 10 Oldlis))$ y$ D7 N2 ^7 u
- Pt13 (Cdr (Assoc 13 Oldlis))
( B% ~3 X- v5 t% k3 w" [1 ?+ E6 \, h - Pt14 (Cdr (Assoc 14 Oldlis))
: p" |1 K1 g; ]7 v5 x0 x; x - St (Cdr (Assoc 70 Oldlis))6 u/ ~* J" _9 `% f% |
- Dimdefault (Cdr (Assoc 1 Oldlis))1 P; y) J$ e+ s
- )3 B+ ] X9 t9 O& n
- (Cond- @8 Z8 f* ^) ~
- ((Or (= 32 St)(= 0 St)(= 160 St))' ~& a0 t: b; \
- (Progn
* `% j! ~: y" w" T - (Setq Ang (Cdr (Assoc 50 Oldlis))
' O0 W' a V4 c4 b - Pt (Polar Pt13 Ang 500); e) F6 q. a. B1 A0 A8 S
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)- m# P$ d% x+ u0 J6 h
- Dis (Rtos (Distance Pt13 Hc))+ x. k' h0 B9 [2 ]+ F1 _0 v
- )
# K, Q4 G% Q' C% G - )
3 j$ K) u! V- w. {; g$ R - )
' Z9 e0 j9 X: \ N - ((Or (= 33 St)(= 1 St))
$ d3 t! K2 f r; B9 r7 m5 @, q - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))" z8 o+ z1 u/ a1 s6 K
- );;End Cond
- p" b/ K* B4 n' N7 K - (If (= Dimdefault "") (Setq Dimdefault "<>"))
7 a6 e- c3 F$ s2 X% E' E1 @, b - (Setq Dial (Load_Dialog "Hai.Dcl"))! D! x5 y. A' ]& o
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
5 U' C/ }, ?3 Y/ { - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St)): J" g+ u4 W& R
- (Set_Tile "text" Dis))7 T, a4 d$ z& `: l D3 J' f
- (Set_Tile "ha:edim" Dimdefault)$ x$ L6 m7 b1 F& |0 G
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
9 L; {8 o. E' ~ - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
( U1 r. J, ?& w8 |( s - (Setq State (Start_Dialog))(Unload_Dialog Dial)* G- h3 v* a! `* }$ w7 ~
- (If (And Str (= 3 State))+ r" M: X( x! e5 p, W, M( _
- (Progn
4 t$ ^ S6 X' U - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
7 }- l) }8 [/ m2 |7 h: H - )6 V$ J% v' v/ J. r
- (Defun C:EH (/ Chon Name )
, l- o+ T6 z! G; j' q8 X
6 k6 g9 R+ E+ L6 x- ;;;********************Du Lieu********************
# y3 B3 M5 ]9 m" u7 ]" J - 8 S5 _% D) z- h# c. X( ?: ^2 {5 ^/ q
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))8 o/ c& \$ x' ~& m
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
. }. u; v$ Y8 h( P - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))# n; ~/ m' n7 q6 ~6 Y: k0 S
- (Progn
$ k4 C) X" a. k) S; c - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))2 q0 [; Q, l: {$ b4 \2 k
- (Setq Chon (Ssget Hacat3))
0 D' }9 t g9 f" ^/ t, K$ x" l - (Command "Break" Chon Hacat1 Hacat2)' g$ N6 ?, Y( @
- )6 u7 Z9 i$ y0 @$ ^; u: o( s
- )
7 W! N' C& b$ o9 F% E9 u; G: k - (Princ)' J: p/ O3 g. V& U7 A: f" z
- )- y/ X* b1 |' O, m. w
- ;;$ z2 J1 ~& e8 W; ~$ ^. N( ^7 d
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
: @# i ^+ [' [+ M P0 J - ;;2 P+ O4 O: T* }# ]7 h
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))- S6 n4 o; Q Q% S+ e; {
- ;;- U5 p7 t) L7 a5 N0 w) w
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))" T' A6 F8 Z" F* y9 |$ ?
- ;;
' `& v' k/ b6 C6 w) [0 Z - (Defun Reinit ()(Setvar "Cmdecho" 1))
+ `- I' n, L& Q$ o: K+ N4 w - ;;
) F# W0 W0 J: u; m9 X& \ a+ x - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
/ e* ^6 ]3 o# N/ R8 ` - ;;0 e y- A% s( O. v) k m7 W
- ;;Cho 2 Diem Tinh Ra Vec To Phap' E7 `2 a2 ~: W# I" K7 Q5 ?7 k
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
9 Q: y" K7 a" u - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang: ^' f: d* v" `/ N
- ;;Da Biet 2 Diem Thuoc Duong Thang
' I2 [3 a" k* t0 K+ Z, t - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2); _ Q! I. u( G) U
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
b# H& w+ ^* v. O2 Y# @ S- T - Hc (Inters P1 P2 Dc1 Dc2 Nil)))+ z/ w$ e5 h9 j
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang8 a7 O* S# g# _$ b% r) m
- ;;Da Biet 2 Diem Thuoc Duong Thang' Z& |$ ]% o+ N- V* w. O7 F
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)" T( d& D6 o: [+ a+ L" n
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)% ?4 Z% Q' {+ L* A0 L# y
- Hc (Inters P1 P2 Dc1 Dc2 Nil))1 W* w) E5 |8 @ H* q
- (Distance Dc1 Hc), U6 W* @+ r1 G; \* j1 {: u
- )" F8 k# ?& O7 `' |# r: J/ r0 B7 Y
- (load "nhapcua.lsp")
) P* V2 ^' w; ]5 Q; r2 i8 ]3 P - (Defun *Error* (Msg)
# c5 @# ]5 ]; S5 v - (Princ "\nerror: ")(Princ Msg)(Princ " ")
& y9 D+ m( K. |, v4 X/ s, ~ - (Start_Dialog)(Unload_Dialog Dial)
" P- S% s2 k2 I& L$ H - (Setq *Error* Olderr)(Princ)1 p( O7 ^7 N3 V7 T0 Y
- )- e- B: l A2 C) C# {2 ~
- (Setq Olderr *Error*)7 @7 X& Y0 K# @/ _# E( ^
- (Setq Chon T)3 E1 g( T" n, d5 o: |7 J
- (While Chon+ H+ J9 i( ~. Q4 E
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit...")); s. Q! ^% x3 h l/ Z% ~
- (If Chon
+ l1 L& F/ f2 F E, k - (Progn
( N; f5 Y7 X0 t1 u - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
: n4 t1 L: \& e6 m( m( |! b( B) D! B - (Cond
1 n. b- K0 h5 }8 |3 F - ((= Name "INSERT")(Command "Ddatte" Chon)), P- [" q: p0 ?. o$ ~+ r; A
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
9 R x/ Q) f6 q: \- h - ((= Name "DIMENSION") (Hai_Edim Chon))8 g* e5 F# @ y% S! s
- )0 @3 Z# J8 ~. Y% P! ] D4 I! n
- );End Cond4 T0 _8 S* B* [# G
- );End Progn
" r j/ f/ o/ ~$ d T - );End While( t- U5 k, z! n6 Y
- (Setq Olderr *Error*)(Princ)1 u, S# }8 e6 Y6 l. P7 ^
- );End Program' b" b6 v% r0 Y% H: N Z
- 9 _( l+ f& A5 V: M. W+ Y
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================6 @ w; F3 f& y6 }: O
- ;====================================Nhapcua.LSP====================================) M2 @4 z* [0 g3 }+ W
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
. `1 t' u* O, T, O2 n - 3 i+ I Q( o/ p; f0 `$ Z! B
$ o. g' g# q5 Y$ |- ' t2 C5 u# S/ O5 m+ b" `% L1 e
- ;*******************;*******************;*******************;*******************. [# R6 M7 s$ F7 N0 T$ W5 w/ K
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
* n/ T* k3 L0 Q7 P - ;*******************;*******************;*******************;*******************
3 q1 L: x# T7 c& ~1 A5 ]' z - ' e P8 F1 F5 ?. |: Q: C, o
- ;VE HINH BINH HANH0 a3 z& u" o3 M1 X" r2 [
- ! B3 m- o' A! K& [
- (defun c:binhhanh (/ p1 p2 p3)
0 M& |1 p; q) }5 q - (setq p1 (getpoint "\n Nhap diem thu nhat:")), {, V9 h. \# Q0 ~- B
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
5 X# @, h6 `* ^: } - (setq om (getvar "osmode"))
: }( S' n" o3 x - (setvar "osmode" 0)
d: k/ u- n3 C6 z8 }7 o - (command "line" p1 p2 "")! w; |5 I6 d8 c$ |* i
- (setvar "osmode" om)
# q/ X5 {; h( b - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))9 X S2 A$ ?, u6 X
- (setq a (angle p2 p1))0 y9 ~2 f/ \/ ^4 S) _ y
- (setq d (distance p1 p2)) T& o# n) K7 T
- (setq p4 (polar p3 a d))
+ D7 B" F) c, Z# s0 N - (command "OSNAP" "none")
2 j- G( h; |- R: {: F - (command "erase" "l" ""); ?5 C7 Y# N# z% n
- (command "pline" p1 p2 p3 p4 p1 "")
' } X$ P" {3 k. A F* ^0 F. X - (setvar "osmode" om)3 `) C+ ?5 O4 M8 m5 k
- )
% k2 G; G3 F+ K& X$ e - 9 T( d4 C0 S3 h4 F
- ;VE LUOI COT( ~ G: L c2 M4 T; [6 G
0 T% Z" n0 Y+ q1 g- (defun c:LuoiCot ()" N0 H) z" i r( L9 G1 W6 [% d
- (setq om (getvar "osmode"))7 M5 f! M! g, N( e( I+ Y
- (setvar "osmode" 0), ?6 k( d1 [" b) B' Q
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
% }/ C' j. B" u. H+ n$ w3 Z. x - (setq p0 (getpoint "\n Chon Basic Point:"))/ y% \5 Z' ]* d% X+ G; ~ g, s
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))1 `" F- y- t* l/ I
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))1 r. K- U* s% R- i1 ?- i, \7 B
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
t1 H6 x( w4 R5 [- i9 V - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
% v: p" O3 R: l7 `5 n8 S" N- ~ - (command "rectang" p1 p2)
3 b# u- J7 {1 `1 G" G' {! j - (command "hatch" "solid" "l" "")
2 R. ]3 M* _6 g8 j: U7 l - (setq bcn (getreal "\n Buoc cot theo phuong ngang : ")), D( P: I7 i# h
- (setq nn (getint "\n So buoc cot phuong ngang : "))" b$ o: V3 ?1 `
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )$ S9 E- |4 w7 h4 f
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
+ ~4 P+ s/ y! n% m1 x c - (command "select" "w" w1 w2 "")9 Q! S* _0 h$ f* Z, `
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
6 \% o5 M6 }+ [' P8 e, E - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")* q. G" V9 U# ^& [1 S7 y
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
p8 M `; v7 F. m - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))) f" r5 G& K) S4 K
- (command "zoom" "w" w1 w2)
. @& ]3 Z5 M* X5 e. H - (command "select" "w" w1 w2 ""), i8 j* H6 O( N% T8 o* B2 Z+ ^3 ?
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
$ p( j2 @ y- z6 W. _/ a - (setq nd (getint "\n So buoc cot phuong doc : ")), p" Q. N' x$ E L# f$ D
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
! u4 W: c( {/ P& J4 i8 j9 a6 Y - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")6 J1 `- e6 P0 w3 o0 \: L5 ?
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
. X- K3 s" S F: _ - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) ; c: s: g* s8 V( Q
- (command "zoom" "w" w1 w2)
/ E6 z, {) b$ d- H4 e$ U - (setvar "osmode" om)
) {) K, A$ y2 c# A - )
3 J$ D& t1 z$ R# ^
) q/ l3 e$ C8 `5 Q8 u% i- ;VE CUA DI
3 ?& [5 F. h* \5 d9 D. c
' g' |6 Z" V# l- (defun c:cuadi ()
- @! p% S3 D+ t8 c' w: S( t/ v; {; q - (setq om (getvar "osmode"))0 f; G! ^8 Z/ H6 V. ]
- (setvar "osmode" 0)- `5 O: m% x' Y! b, f. I1 z: q6 D
- J9 n, A2 q6 F0 N- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
`- D/ M4 q$ n! k8 I% k - (setq b (getreal "\n Nhap be rong cua : "))2 I5 i! T: K5 J' p8 o/ b
- (setvar "osmode" om)! i8 K6 ^$ h; L, F5 r5 e2 U
- (while (< 0 1)5 v: {$ V M7 `6 J3 ^2 I6 V% U/ Y. A
- (progn
, I; }' O* n: W+ d - (setq p0 (getpoint "\n Chon Basic Point:"))
, w( x# T" E2 b; Q l - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
2 b- T3 z) Z' P3 s; h; C6 V; q* i - (command "osnap" "none")2 x2 A2 p8 Y7 ^
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))# [/ M: ~2 |4 k$ B- H" {/ b6 c; h0 f
- (setq a1 (angle p0 p1))
- x" ]2 {3 n* ] - (setq p1 (polar p0 a1 (/ (* hstl b) tile)))! N6 v/ ?" k( ^* A {7 c/ M
- (setq a2 (angle p0 p2))" `9 S1 }: l0 F( d- b# d
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
" j/ j$ E5 |& u - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")5 H, }! [4 h9 t/ x/ Q$ f" K9 E
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))) x/ U `/ x4 f/ G/ _0 p
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
" v. m" b7 p3 }6 t" J( H$ D - (setvar "osmode" om)
1 \% u0 @9 {* K - ))) y. S" U- C ]1 c
- )& B( n& \' j& F$ A
- ; C3 V8 z2 Y$ V5 Y6 _
- ;VE CUA SO" W4 {. [/ V$ ~, ~
% t! ?, a5 N3 a* l, |- (defun c:cuaso (), c4 v% W8 \, R/ ]! w
- (setq om (getvar "osmode"))
! X( W3 R! G9 l: U! {* M0 |% L, j - (setvar "osmode" 0)
) b% x! l8 M4 E) y
8 x; V- {7 `) X0 D- ^- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
2 F# `# P+ B2 v( a7 ] - (setvar "osmode" om). L2 b8 H' E: p" a
- (while (< 0 1)
$ i+ R( f5 E) M$ a, q! z - (progn
/ n* w J: h" b9 p6 B5 Q$ C - (setq p0 (getpoint "\n Chon Basic Point:"))
1 t G5 x7 {% a0 Q) X- } - (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:")); M1 F [: T0 E% ^. |& _
- (command "osnap" "none")
4 W7 X1 }2 K3 R5 q0 T8 R ]6 A - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))% G# k; C8 U6 Z: @% ^' Z
- (setq b (distance p0 p1))0 `0 m9 z. R$ W7 T
- (if (< b (/ (* hstl 600) tile)) (setq du 50))1 F/ `- Y3 ^6 u3 X% Y }
- (if (> b (/ (* hstl 600) tile)) (setq du 150))
8 n; T. T- s8 X/ c - (if (> b (/ (* hstl 1800) tile)) (setq du 200))3 |& l) z8 z3 T! l7 L u Q
- (setq a1 (angle p0 p1))
# p& F* Q) A# X w% h% h - (setq a2 (angle p0 p2))1 O1 h; z) A" D9 s2 ]
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
* C! j, @. ]- t+ Q% k8 M - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )7 I! ?4 |; u: k; k& |0 e) k: S
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
, x$ @, J. `2 }: } - (command "pline" p0 "w" "0" "0" p1 "") u* }, ?8 t G+ K$ z: T
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")3 R& l# C4 ?4 v1 o- N8 E. t# ?+ e
- (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")' {, o, R0 {0 F% T/ [) K
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) / T8 ~! J. N6 `$ l' K2 M
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
' ^& Z0 ^; c( [! t) [! C - (setvar "osmode" om)8 Z3 D" @- y5 g$ V
- ))
' K: ^+ H2 \2 ^, f9 l/ s1 z, G! ^. I - )
$ @/ r7 u3 D8 n - 2 L1 `0 w* `( u1 L
- ;;;=== General Utility Functions ===5 f/ D: p' }7 M5 P4 F2 p
- ) i3 O" G1 ?# e$ Y7 @2 n
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined 5 B" @8 q0 L% X' V+ T6 b# b
- ; ADS function. Now it's a simple AutoLISP function that calls the 7 K6 D/ {, Q" R9 E( ]9 Y
- ; built-in function (help). It's only purpose is R12 compatibility. & K# l) q6 @* [/ i' ^5 }
- ; If you are calling it for anything else, you should almost certainly
: e1 K& e' ~( c4 Z! U1 h8 B ` - ; be calling (help) instead.
; [) W. W+ {5 J/ z6 c. y" i -
6 h) v8 c; b1 @5 C3 ~! X7 B- ] - (defun acad_helpdlg (helpfile topic)
$ C& U% f0 K- A7 w) V" L1 n - (help helpfile topic)
9 E& s+ J& M# `3 J - )2 _( A9 ^& w% E: f7 x
' n- t. W8 b% [4 ^6 N* t" y, ]: t
1 g2 T1 X- M, L* x# _- (defun *merr* (msg)# |" j* c9 u% Y- _9 e# _
- (setq *error* m:err m:err nil)) d2 {" ~, n1 _5 ]8 K
- (princ)
! x$ f& c) S! ~3 k7 b$ s% h - )9 t C6 ?3 f! L+ E3 K; X( _ _4 j
% E) t7 p& \& ~; i2 q& `- \% M& G9 m. |- F- (defun *merrmsg* (msg)0 {; p" ?/ p/ u }
- (princ msg)4 I6 J3 B% r( ~) g) X7 J
- (setq *error* m:err m:err nil)
0 m( V& a9 Y% z- G, T7 G0 } - (princ)
- u A! J* U( J, F/ w - )
- p- B/ s/ o: J" B* b% N- D/ U - ' ~0 O3 P" R4 G' n Z* n
- ;; Loads the indicated ARX app if it isn't already loaded
- k; x/ M: K! q - ;; returns nil if no load was necessary, else returns the- L# U; w9 K. w
- ;; app name if a load occurred.1 i% t+ r- i. W2 p$ M4 X5 n4 f
- (defun verify_arxapp_loaded (app)
5 m3 R# f, f: C3 j4 Z - (if (not (loadedp app (arx))). X ]8 R8 ^& h/ \ O
- (arxload app f)
8 m8 z2 E: P# \ - )
9 Y/ m# ~4 v4 V - )
) N) G1 H6 z5 |3 i* y: | - $ \1 f+ o1 W; r6 K' D% V; }
- ;; determines if a given application is loaded.../ {( [2 s* S/ q2 d' {
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....( d- n6 T' Q& t2 ]; Z% d
- ;;1 E: h) H6 m8 w# ^4 M8 E4 ^
- ;; app is the filename of the application to check (extension is required)
: z& u# @* j+ G: u - ;; appset is a list of applications, (such as (arx) or (ads)
$ z3 r* G+ p7 N: t% | - ;;
7 x: v. J" M+ n2 s4 h E - ;; returns T or nil, depending on whether app is present in the appset
% Z+ @0 ~% q2 p% K8 y# h: ]4 C - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"8 m1 N0 N- |2 G c
- ;; Also, if appset contains members that contain paths, app will right-match
4 k- z; p, [5 y7 \: u - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
( Q+ i1 P5 c# U" ?5 L+ ]1 d# b - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
' n! M; E' B. }, _5 ` - (defun loadedp (app appset) O9 `& u/ N) Z7 O9 [ I8 B4 [! t
- (cond (appset (or
; {) E8 ~+ g1 H, H/ m% ~1 P: E - ;; exactly equal? (ignoring case)
9 H1 r2 I+ }8 u3 b& U2 y - (= (strcase (car appset))
: o: {& @8 s/ B4 ` N0 k5 E - (strcase app)), ?/ c4 J; Q+ h- a! W
- ;; right-matching? (ignoring case, but assuming that) ~2 s6 p" L7 z+ u1 L7 I9 c; K- p
- ;; it's a complete filename (with a backslash before it)# Y' Y$ x D; r6 U3 ^. e+ Q
- (and
" B# e8 i: T5 b1 z- x9 W+ I, V: G - (> (strlen (car appset)) (strlen app))( J; [! c R5 Z) L% b
- (= (strcase (substr (car appset) 2 ^0 v3 _) b; D |0 `, [
- (- (strlen (car appset))
- q2 E5 j! n* M0 | M: x - (strlen app)
. b! i: T* i0 F, f& l - )
' I8 |9 y* J e - )- V; b7 D, `4 J3 B& P& n
- ) 9 V$ n: l5 _2 K
- (strcase (strcat "\\" app))1 |6 b2 T" V3 r' g# I8 a
- )
0 U% S2 a% Y" s9 R' E/ x/ N8 T - )3 G% F3 T5 l4 h( A4 U4 r6 A; @% \
- ;; no match for this entry in appset, try next one....7 f7 J C' s7 Q9 [: J
- (loadedp app (cdr appset)) )))8 s$ h6 ~/ J, h. p! T7 W
- )7 q$ h; j8 T# h3 X, I! I, B
- 5 w$ V& h. o2 O
9 L4 y+ y# o; N7 j6 [* N* D- ;;; ===== Single-line MText editor =====* z/ H- i4 e* b4 Y% }8 P* z5 n
- (defun LispEd (contents / fname dcl state)
% m, {- L6 i1 J& V+ M - (if (not (setq fname (getvar "program")))
+ F' ?$ Z( W" j7 ~ - (setq fname "acad")4 e! o% i$ i( s, v- v% W5 W
- )
3 M$ Z- g$ ~/ R: ^! C1 E - (strcat fname ".dcl")
4 G b' @$ a7 O8 T$ z - (setq dcl (load_dialog fname))
0 o" O) ^. p' {% p" s3 B d0 D - (if (not (new_dialog "LispEd" dcl)) (exit))
! U4 W1 c* z- O8 Y( ~2 M - (set_tile "contents" contents)
8 M t: T+ ]* h4 L - (mode_tile "contents" 2)
; i5 _5 p* i/ D0 T( b0 h - (action_tile "contents" "(setq contents $value)")
c3 g- P) v3 ]$ z* F/ J( n# Z2 n - (action_tile "accept" "(done_dialog 1)")% y; ^6 y* k2 S8 c
- (action_tile "mtexted" "(done_dialog 2)" )
$ u* J& F) F1 d( y* X) r - (setq state (start_dialog))
. j9 }" k' B' b) v% J- C ` - (unload_dialog dcl)- k; Q' Y- e. `1 C! K& m& p( U
- (cond n# ^* Y# s; x8 m5 D
- ((= state 1) contents)/ E, u4 ~" p- |
- ((= state 2) -1)
6 N, j) r9 Q0 s, Z$ f - (t 0)
; ]! Q) \7 X. M W, |2 N* _- Y @ - )
( v' }, b+ o! }* I - )
. p, g5 j; T% B% X S; K+ ]
/ \ O: c3 ?! S h" P! f" z- ;;; ===== Discontinued commands =====1 d4 _; k0 t8 @( d- M1 q: s
- (defun c:ddselect(/ cmdecho-save)
. a. |( e& J9 {% L- x - (setq cmdecho-save (getvar "CMDECHO"))2 c0 |. b/ o4 L" }: F: B
- (setvar "CMDECHO" 0)
, u ?& E- C& B - (command "._+options" 7)( X8 q; M0 Y5 g. \8 B* z5 ]' }0 r# J' g
- (setvar "CMDECHO" cmdecho-save)
. o( D' H5 ~. L9 J5 ^ - (princ)
7 t; d- P& a/ C8 i+ B - )
" {% t) J6 l. I4 e3 l; [9 i - 0 A& b- p" c5 E/ f* n
- (defun c:ddgrips(/ cmdecho-save)6 r3 V: A7 [/ p2 J# o
- (setq cmdecho-save (getvar "CMDECHO"))% x9 m5 _8 c6 H6 ^7 z& \
- (setvar "CMDECHO" 0)/ v% J1 W8 z6 }% B7 l7 G
- (command "._+options" 7)
r! u0 r! F4 b1 M - (setvar "CMDECHO" cmdecho-save)
0 j+ _, p) b0 o' n! v7 b2 Z - (princ)
* \5 ` d. k6 R) w( f+ y$ ? - ), X9 n/ ^, T/ j2 \7 f* D: p4 Y7 }
( @) J1 S/ C# S( e- (defun c:gifin ()
# O% I: P: h4 C$ j. V - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
( U8 I1 J: A/ D8 X: D - (princ)8 y0 b2 ~! [5 T6 V% j$ C! q- P
- )& o+ Y8 L: `! L: [$ X1 H( [# o
- 5 E5 e: }/ E8 k! F
- (defun c:pcxin ()7 f& T, Z. V0 R( {4 ?
- (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")0 C. u- A) C7 n+ ?
- (princ)
% V, M& S# `, N) a# i A. c9 y - )
" O7 e$ W% z" Z! f5 G' H9 j* U! ` - # J: N+ @/ F; C! N1 m
- (defun c:tiffin ()3 u+ R- }9 U2 h, ~7 [/ C
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n"), c2 b6 \/ r& Y4 q3 ^9 h
- (princ)
5 d! A* G& E- Z$ N - )2 I t: [7 H& d' a; x
- - ?# k. W7 M; `2 c5 C
- (defun c:ddemodes()+ m" f: q" H9 _) b8 _' }; w) ]1 d" D
- (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.")! J* r- X& A& H" B( p9 T* }
- (princ)/ N" P v" t) T+ v! t
- )3 S# F; g" p; \0 h; X0 D9 q7 q
" o7 D8 o9 j+ c+ O% }# Y- (defun c:ddrmodes(/ cmdecho-save)1 [0 `0 H* n' I4 O) [
- (setq cmdecho-save (getvar "CMDECHO"))9 x) R4 h4 P7 N9 X7 C6 i b; b
- (setvar "CMDECHO" 0)
" y0 @3 i. X) `) U0 }& f - (command "._+dsettings" 0)
2 `9 l- _2 U- Y+ C t - (setvar "CMDECHO" cmdecho-save)6 w% R$ o' Q' f: S
- (princ)
5 C, M4 P& v: d; _9 @, o- I - )) k B& s5 B# \$ }. \- Y0 G
7 ?4 A3 Y8 b" k/ ?: h- ;; HPCONFIG) v$ T, u1 F- W/ V$ a
- (defun c:hpconfig (/ hlppath)! `3 {7 u) b$ \4 L' O# Y# m- N( r
- (if (not (setq hlppath (findfile "acad.hlp")))7 c( |& K" V" t
- (setq hlppath ""))
6 ^2 Q$ X/ b0 \* _8 P, S; z - (help hlppath "hpconfig")" N! }: @; O/ H: l6 j
- (princ)4 R/ O3 a) _1 a: Z1 d3 {5 W
- )! n7 E* z, q7 x; i5 E2 ^. n2 v
' ^+ ?1 a" b/ G4 S! T$ e- F. K- ;; OCECONFIG" z& u0 O7 ?3 z
- (defun c:oceconfig (/ hlppath)1 ?+ q8 z+ ~: \ ^
- (if (not (setq hlppath (findfile "acad.hlp")))
5 y J' c% k2 {. d6 V- }+ F - (setq hlppath ""))- j9 ?) E. j' C" L, l
- (help hlppath "oceconfig"); N! ~" z m$ e1 A# v) D
- (princ)2 Q' J- p. w) l8 j6 b
- )5 K0 ]: u& W( Q7 W% a
& i" n! q& S# u6 b- ;; CCONFIG7 I- ~0 X4 v0 V& T5 A
- (defun c:cconfig (/ hlppath)
3 c& `6 N5 ~2 ]# G: Y - (if (not (setq hlppath (findfile "acad.hlp")))8 M, J6 c: \, o. H9 C! d5 ?/ w
- (setq hlppath ""))
3 q6 t. R, A3 v, f" f/ q - (help hlppath "cconfig")) }, t3 L% g$ p# S+ q( v! J* q
- (princ)
7 f! e6 S l% N - )
# U' d& X' I* G# X- L) d( a- n1 y; C - Y) G1 z: g: ^9 z3 b- o
- ;;; ===== AutoLoad =====
% w8 W# I* R$ ]' `' R
. s$ ^# f# H5 P5 k- ;;; Check list of loaded <apptype> applications ("ads" or "arx")" w2 |( A& p% ~5 d
- ;;; for the name of a certain appplication <appname>.( g8 \, o! }$ l- C0 @; b
- ;;; Returns T if <appname> is loaded.2 o* w! X- p- r1 P* D& ~: c# @
- 8 C5 Y9 ]9 d" H' |6 i
- (defun ai_AppLoaded (appname apptype)
9 C. i* [6 K( ]" B - (apply 'or
7 y9 }; I& p! a - (mapcar
& x' T& s4 T/ R$ W' u/ f$ }2 A - '(lambda (j)
; j, D0 f' ~ I/ i" ^: B - (wcmatch' G6 Z% `/ L2 E% x
- (strcase j T)
2 D; r/ ^1 l7 t3 ?" m, P% a; ^, P - (strcase (strcat "*" appname "*") T)" e* G0 ]: R% J
- ) ; t2 d% X* b1 f: d' ~, @
- )
7 Q$ X- L9 R8 B2 l* w4 C - (eval (list (read apptype)))5 h; Y. B. J X% j0 ~
- )2 Z+ I6 P& Q2 S0 {: A& `/ t; L; N
- )5 K* P- I) \* k
- )9 ]! z$ t f& _, C) c
- ! u B! q4 g/ j& ?# G
- ;; 7 q; w/ P3 E3 Z, ]3 r
- ;; Native Rx commands cannot be called with the "C:" syntax. They must 2 t! G2 M4 o' x# p. s. a+ q# A& X" O5 ~/ F
- ;; be called via (command). Therefore they require their own autoload
; q% u# c# m7 u0 e' o% C - ;; command.: s3 x) n/ P$ S: Q
$ Y8 q: f B& ]5 p7 R/ A$ ~- (defun autonativeload (app cmdliste / qapp)
6 U6 H1 A! h! K3 H - (setq qapp (strcat "\"" app "\""))1 n2 W4 ]! F- r1 _
- (setq initstring "\nInitializing...")
# j% f5 b( y7 l- K% c* ^: V% n - (mapcar
, p& p( m: L4 V, D0 N* Q5 ` - '(lambda (cmd / nom_cmd native_cmd)* `' [& x0 F2 m
- (progn
" M& `( ~2 D6 c3 B! @3 ^3 Q - (setq nom_cmd (strcat "C:" cmd))
4 _( |& C7 H. ~5 d* {% x8 i - (setq native_cmd (strcat "\"_" cmd "\""))+ b' G" z- N7 p7 l
- (if (not (eval (read nom_cmd)))
& f. j1 R# h7 a! J# y7 p - (eval
- i% `0 D% f) r8 Q+ l - (read (strcat
% w+ c" e" c: I* `5 v/ E. y3 N! X& Q - "(defun " nom_cmd "()": o/ z3 Z: N: q ]$ w
- "(setq m:err *error* *error* *merrmsg*)"
& H1 K1 Y, c% y- {, ?' b4 I, f - "(if (ai_ffile " qapp ")"
# M6 T; N4 X* x6 P0 H U; k - "(progn (princ initstring)"
6 k6 ~, C& d- z: z0 P - "(_autoarxload " qapp ") (command " native_cmd "))"2 m* A: R& x) G; H3 L
- "(ai_nofile " qapp "))", d, L0 E0 I5 W! k! B G1 d: h, G) w
- "(setq *error* m:err m:err nil))"# | N% J, b0 a, t4 U M/ h8 L/ U5 V, A
- )))))); s4 v$ N m6 f. O
- cmdliste)+ ]: ?0 x# t* Z9 d
- nil
! y( }3 P ?8 B* h8 o' G - )
; O* Q7 p7 T7 }# ]& H; c - 1 O- K& ^1 G# a) W, g3 @6 E- ~' o: Q
- (defun _autoqload (quoi app cmdliste / qapp symnam): P0 M) Z" I, I7 {
- (setq qapp (strcat "\"" app "\""))
8 u: B/ L- D. j1 b5 Q9 e2 g( U - (setq initstring "\nInitializing..."), X. y. Y2 [; Z8 c0 k" m
- (mapcar
6 @% T* R6 x1 s# B" V - '(lambda (cmd / nom_cmd)
1 m5 Y) s! h$ w5 X; b; ^ - (progn) z0 [8 |4 ^( |% ?' C5 ]
- (setq nom_cmd (strcat "C:" cmd)) W! x0 b7 Y7 i
- (if (not (eval (read nom_cmd)))! p, }2 N8 ?: x ^( U" Q' P, A
- (eval8 L, E6 S; G: a d% S
- (read (strcat8 V6 a7 @) n4 N3 A0 @& c/ G
- "(defun " nom_cmd "( / rtn)"" C! Y2 `5 s# B- u9 s
- "(setq m:err *error* *error* *merrmsg*)"9 b3 @8 z9 t, ?! W3 J
- "(if (ai_ffile " qapp ")"4 I# {' G) q1 b5 t4 h
- "(progn (princ initstring)"
' S% a8 e7 A+ C/ h# } - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
' G& ?0 ]! k8 `5 w" i - "(ai_nofile " qapp "))"2 u& [' \& Y0 o& J0 p' t
- "(setq *error* m:err m:err nil)". G8 y+ b/ I, h! Q
- "rtn)"
2 l+ u. J0 R& E( U - ))))))7 S, R! |9 ^! [# d8 U+ O7 Q. L' A4 w
- cmdliste)
- N: F5 v6 ], c" ` - nil
( N+ Y0 ]+ x1 |& d2 s: [ - )7 j' o) H4 s6 c9 l0 v9 _
- : c3 \6 C% s( \) x; z/ y
- (defun autoload (app cmdliste)
4 S3 R% ?$ O; k* T# ` - (_autoqload "" app cmdliste)
" _) _% z/ f- X3 u3 T/ e - )9 ]) \* S( A$ |4 ?7 [$ E4 K: G7 b
, O$ D/ c/ z: c5 Z- (defun autoarxload (app cmdliste)
' u" l2 F' n2 C( | - (_autoqload "arx" app cmdliste)) s1 m: n v8 y( ~3 A: N7 Y8 {$ ]! D
- )
. i" s+ p! L( |4 }8 f) u# ]( ~8 \/ f
# {, R1 C9 Z/ J8 q- (defun autoarxacedload (app cmdliste / qapp symnam)% R8 K. {* |9 \% X8 ]! Y" A
- (setq qapp (strcat "\"" app "\""))
1 J& C$ ~: o9 t+ I f \ - (setq initstring "\nInitializing...")' C3 G4 H' E, ?# C' P9 }6 I. }
- (mapcar
0 ?0 k. w3 C) J! ~3 g( l% [+ ? - '(lambda (cmd / nom_cmd)
0 U) s. v" [ E4 ?* f! H$ b7 W - (progn) c' w E% A8 N7 D6 C. N
- (setq nom_cmd (strcat "C:" cmd)), ]/ b# I* u( I' p! \( b
- (if (not (eval (read nom_cmd)))$ R' n6 i1 L/ P8 H0 e5 m
- (eval
: m1 l. l' i, B( W9 r# d+ x" p+ Y" d - (read (strcat
& ~2 p; ^( i; t6 ~0 L, ^ - "(defun " nom_cmd "( / oldcmdecho)"
; E0 V7 m3 M, l0 X+ k( d9 o% [. A - "(setq m:err *error* *error* *merrmsg*)"
4 f. a5 C& s; ` - "(if (ai_ffile " qapp ")"( C) F" x' V7 ]' Y( l' {9 X/ s
- "(progn (princ initstring)"2 E6 F, m- L% A% H# w! |: M
- "(_autoarxload " qapp ")", }( W9 x% ~) M6 G& }+ E! I
- "(setq oldcmdecho (getvar \"CMDECHO\"))"
) U0 J6 ^+ G8 V% u# ~4 w - "(setvar \"CMDECHO\" 0)"% M1 V; `* H8 R% b
- "(command " "\"_" cmd "\"" ")"
7 J* I- `/ j2 v0 {7 R% f - "(setvar \"CMDECHO\" oldcmdecho))"
' N0 E3 S5 w1 P. S+ R - "(ai_nofile " qapp "))"; k- g; N/ i0 q
- "(setq *error* m:err m:err nil)"
) S2 T1 G) o! V - "(princ))"2 x, C/ @5 l9 w# @; s
- ))))))
: Z, s( j3 I% p$ _1 _+ i* ~ - cmdliste)
0 ^# I. K$ R1 Q1 _8 I' [+ B - nil: `5 W7 `/ x5 A, U# m
- )/ O; c" a6 c; k* }
' X- }" ?$ r, ~: K% Q* z }7 A- (defun _autoload (app)" w" s" M# m# [6 }
- ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
. G9 @+ O7 D2 o - (load app)
. \$ ^" x. o" v" ?6 y( U5 s. M* r - )% e5 r! Y; x4 u$ w2 R
- " E" m6 N Q. @" L \$ [
- (defun _autoarxload (app)1 n& k4 B% c7 o: O( `
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)" x* t+ T8 u1 u' k8 R
- (arxload app) s* A; Q3 @6 ~. x g
- )
) B; }+ i& ^8 X: c s0 ?/ o4 H - ' q% Z$ r$ C; c" \4 H
- (defun ai_ffile (app)3 E) ^* E2 {! O+ ?# g5 P- T
- (or (findfile (strcat app ".lsp"))
7 \! d1 z& `' s. c F - (findfile (strcat app ".exp"))+ ^6 w A3 C; P: I! E7 y7 Q& |/ V* M
- (findfile (strcat app ".exe"))
1 v4 }( ^8 \9 g9 |, U( a# ^) u# A - (findfile (strcat app ".arx"))' k" Z3 K! R! \2 \5 r
- (findfile app)
/ I# K: {! w6 W - )& u" K1 p1 A, }) ^! {* l, l* l/ }
- )+ w: i! r& r& x T8 K/ v+ ]
' p# O/ n) p, z$ o! N& S, T2 C( V, }- (defun ai_nofile (filename)
. B- J. I8 O" r( Q/ Y- N/ L - (princ' p8 N2 O( U. b
- (strcat "\nThe file "
9 @, k9 q9 J. Q' g( K/ W: K: U - filename
& M& \6 W6 f! _/ R. ]7 b0 m, @ - "(.lsp/.exe/.arx) was not found in your search path folders.") K. l; \0 p' d: m4 h% y+ b. J, t; w
- )
6 z& r% k* `- ~2 q! ^) R# | - )# r0 _% f$ R h8 g/ `1 ~
- (princ "\nCheck the installation of the support files and try again.")
" B9 i1 |/ Y0 k+ v6 D' ?' a2 F - (princ)
# z: o2 k! i" c# l% x3 T* T2 L( k - )% o. N9 t2 Y' u2 I1 E( ~
, A- k5 \& t4 U6 g% d- 9 F/ x1 y& b- B- Z
- ;;;===== AutoLoad LISP Applications ===== j( e; k% q* ~- p4 O
- ; Set help for those apps with a command line interface
: z1 _+ D q, t: I
0 \4 Q' a% ~/ k4 {2 h2 W; t! S- (autoload "edge" '("edge"))
# M& R1 [% L3 Z" [+ j# ?3 S! d! M - (setfunhelp "C:edge" "" "edge")9 N) A, w2 T. C) \
- / p$ E8 V$ B* y$ ^
- (autoload "filter" '("filter " "filter"))% c* i6 P6 x6 q. k3 B" P
- / d P( n) y1 y3 [; V2 u! x% b
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"" H3 T! L1 G1 J Y% u
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish"): H+ W0 C; G: k9 T* o
- ). C) e. y6 f6 O% Z4 G
- (setfunhelp "C:3d" "" "3d")' A3 z# d& Q5 }0 D% }% L3 J1 T1 w& }0 t, U
- (setfunhelp "C:ai_box" "" "3d_box")
0 l1 I) }& A; W8 h* }0 e - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
/ O n" R5 Z9 B! Z - (setfunhelp "C:ai__wedge" "" "3d_wedge"). v/ _; K4 w) b' n
- (setfunhelp "C:ai_dome" "" "3d_dome")
' N) L. y5 l; d# G - (setfunhelp "C:ai_mesh" "" "3d_mesh")
0 ~' c% u. O. l6 v/ Z - (setfunhelp "C:ai_sphere" "" "3d_sphere")
0 T6 F* c# O% L" l/ d8 H/ r - (setfunhelp "C:ai_cone" "" "3d_cone")
$ s4 G" f) e$ I' O - (setfunhelp "C:ai_torus" "" "3d_torus")8 @' ^9 t" @: j. U# M* H
- (setfunhelp "C:ai_dish" "" "3d_dish")
/ ^1 W+ l$ h& o% O, `# A" f
' p) R; z A v% q5 p0 u6 k: f- (autoload "3darray" '("3darray"))
: G) t; _& K5 A) e8 M - (setfunhelp "C:3darray" "" "3darray")7 K6 @. d+ b$ _
- : z$ ^* [5 Y3 R; o8 N& O
- (autoload "ddvpoint" '("ddvpoint"))' ]7 L. K" M( J
" U: Q* K9 }. b6 u. w/ `* Z6 o- (autoload "mvsetup" '("mvsetup"))8 j( _+ P4 M1 Y
- (setfunhelp "C:mvsetup" "" "mvsetup")
% F$ _+ B! Q5 K Z - # i: N- ~2 ` l) @, ^6 G3 x
- (autoload "ddptype" '("ddptype"))5 b3 f4 _: s' i0 ~$ ^
- j0 b* X. R& T: V
- (autoload "attredef" '("attredef"))
* C+ c, _* Y* k: v6 M; ^ - (setfunhelp "C:attredef" "" "attredef")2 n) L* V ^! [8 V+ v
- 8 s; a0 U1 P- g7 p6 ^. Y
- (autoload "xplode" '("xp" "xplode"))
( _$ h! y" i- ^- F7 L - (setfunhelp "C:xplode" "" "xplode") p# @6 ]$ E$ J% i
4 W8 v) N9 |) i2 j! e# w: n- (autoload "tutorial" '("tutdemo" "tutclear". }4 t' D; ^* U' A7 o% n! B
- "tutdemo"
, w$ K# V& `) K. h - "tutclear"))
6 z% f/ c% h+ e% Q) k1 S - & M4 R [ c, O3 U5 N- M$ o3 W
- ;;;===== AutoArxLoad Arx Applications =====" m* K' [3 c9 U4 F. H& I" f# @& E
5 f+ d" N( {$ L: V# B4 g4 }- (autoarxload "geomcal" '("cal" "cal"))
- m* o! e6 {8 n) R+ ^$ \( D* @ - 1 f6 G6 {5 n* G7 f j1 Z, }
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
4 z" f1 m q/ L% n0 ?; c4 } - "mirror3d" "rotate3d" - `+ \5 b! x6 N# O2 Y1 g
- "align"))
6 q$ _+ F$ B& I3 L( W# Z; s2 l/ U0 [
3 w+ K- [" [! h
5 j6 i& n c, A- ;;; ===== Double byte character handling functions =====2 m l. G9 Z; X
2 Y1 e* Y; _8 p; X: P/ j" N- (defun is_lead_byte(code)
+ @2 K0 M" \: k$ H& o4 n - (setq asia_cd (getvar "dwgcodepage"))
7 m! c' \% r2 U/ Q( }) X( d S - (cond: M/ }& M1 ?2 ]; X
- ( (or (= asia_cd "dos932")
" v/ p$ ~% m, }- l0 e) h; ~ - (= asia_cd "ANSI_932")* ~$ ^/ B/ Y* r: K) h
- )
! ~5 W* k7 P0 T& ] - (or (and (<= 129 code) (<= code 159))# ^6 e9 A9 r, R, w, l
- (and (<= 224 code) (<= code 252))8 f9 H% v9 S! U. ~4 p/ k/ z7 o& ^% D
- )
" t" ~3 T6 M3 d/ H9 F- h- X+ Q - )0 n7 P) [+ w! ^2 _% P, r$ s% U8 N
- ( (or (= asia_cd "big5"): @& p6 t! q" y8 P
- (= asia_cd "ANSI_950")
% i1 n- u4 o- i6 g5 N - )5 ^& a% B* r2 N- R8 q
- (and (<= 129 code) (<= code 254))
7 Z9 ^" |2 \: z2 O/ Y/ { - )0 f9 O; i$ E9 j ]2 W
- ( (or (= asia_cd "gb2312")
: c$ x# X1 s+ k# l8 i4 ^4 [ - (= asia_cd "ANSI_936")
$ l9 ^8 [- P% t2 p- Z" q, M9 c - )
% I8 {& S. O v& ~* ^ y9 s - (and (<= 161 code) (<= code 254))/ p b" _$ v7 j+ O x
- )9 M3 ~* t9 j# E$ @
- ( (or (= asia_cd "johab")
$ }! Z' ?" R4 T' V5 }; `3 @6 f - (= asia_cd "ANSI_1361")& n! _' ?7 H3 @4 x: N6 w
- ). z% `; b& g4 |6 R
- (and (<= 132 code) (<= code 211))
3 Y6 _% a$ V; p8 l* @7 R5 g( C! x4 X - )
7 C N) l2 s$ q - ( (or (= asia_cd "ksc5601")5 U: W* v0 j1 U0 O+ z$ X
- (= asia_cd "ANSI_949")
# A0 O/ @6 ]1 J0 I% C2 ~/ j - )/ U2 H0 c9 {& m1 e' s
- (and (<= 129 code) (<= code 254))
2 x2 @2 L, ]1 P2 J+ T, _ - )
8 N: G! n" y8 j+ r* v - )
% w: J: o" V3 A6 K% h - )
* F; U9 J( }9 R' |0 ^9 N - 1 X1 l3 k% [/ G4 I( c* |' M
- ;;; ====================================================, R7 P+ H( }: N; l# @5 F! v' P
& C, x2 }. q, R+ \$ o/ U u* {* L- ' U2 u$ X% e" l6 ^6 b7 N4 }
- ;;;/ ?0 c( h4 B# @; j5 g
- ;;; FITSTR2LEN
" K8 |1 v9 E8 \- ?$ } - ;;;
9 K4 O) Q+ D3 g( J: E! u - ;;; Truncates the given string to the given length. % E1 D" F9 z8 v- c
- ;;; This function should be used to fit symbol table names, that
' N1 r6 n; N$ Q1 |# ]" ~8 \ - ;;; may turn into \U+ sequences into a given size to be displayed
8 A- N7 ?4 l& K- z - ;;; inside a dialog box.+ c I% B# g, e
- ;;;
! q5 U- M5 r6 Q: Z - ;;; Ex: the following string: ( Y Y% Y! T d1 e
- ;;;2 N$ s3 c6 s; F+ \
- ;;; "This is a long string that will not fit into a 32 character static text box."
, C, T* v' \5 C- E+ e, h - ;;; `5 W, G4 J* m0 I$ `* _2 f$ B/ Z
- ;;; would display as a 32 character long string as follows:
7 ?1 G/ n) P5 g0 g7 X- E - ;;;
) x2 j8 F( ~* G3 @) k6 J$ X - ;;; "This is a long...tatic text box.") Z' F' H% J% h4 H! b* v9 K% F$ @' [
- ;;;
# A9 L# H& q4 ~0 J' I, g$ R - ! K9 W; }6 g8 \5 Q& K6 o
- (defun fitstr2len (str1 maxlen)( V! B+ A/ O# n
- . J* h. }, _# @3 n# ]$ U9 n+ s
- ;;; initialize internals/ w0 W% U# q' i
- (setq tmpstr str1)) p) e7 J: `* h* L
- (setq len (strlen tmpstr))1 N1 C* I* p" c( [$ `
1 d* H [1 M: ?) o' j8 a- (if (> len maxlen) 6 k/ J f4 j6 f* a, M1 X
- (progn
- S) F' l# f" f* v# `+ |1 @ - (setq maxlen2 (/ maxlen 2))
% z+ P1 R0 O" b5 \( L J8 X - (if (> maxlen (* maxlen2 2))
: P* G# ^& a8 @1 U+ \9 G - (setq maxlen2 (- maxlen2 1))
8 M, Y( `& P: |/ e* ? - )/ i, P1 u7 V0 ]3 D$ O
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))$ a* m" {7 u( l$ R# c
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))" C1 {1 W t. J" a' Z+ g
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
/ X. N6 R4 J4 r2 J - )
! X j2 c# P) ]6 e1 T8 I - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
5 e$ D8 Q* y! o& z. \! N - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
& q0 M" d# q& P3 y: m9 r - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
7 n* g. _, [$ w) ? - )
1 r7 \) Z5 J7 @9 M2 T7 M; h6 Y - (setq str2 (strcat tmpstr1 "..." tmpstr2))" u/ y/ z" N8 S. k; I! `7 ^+ m
- ) ;;; progn
8 d# K( ]' H! Y* G) Z. m V. C1 U - (setq str2 (strcat tmpstr))
$ U4 y4 Q7 c0 n, f& w: t - ) ;;; if
* J, [ b) _4 ~* ]& n - ) ;;; defun
3 M" \" N% ~8 `1 J9 L
8 s' H m8 i8 S. z: T/ ^% A; d- % [& x. _( k; F1 V. g
- ;;;
% ~( q& L) O0 n4 M, O% t - ;;; If the first object in a selection set has an attached URL
+ d$ n9 N* c+ x' T: y5 A - ;;; Then launch browser and point to the URL.
6 h- i8 f |0 I' E# Y/ B B* z3 @% o - ;;; Called by the Grips Cursor Menu
* }0 Q& b6 E6 j. E0 K2 h - ;;;
+ v+ v# {0 F9 n" N* F$ C) G2 A - 9 S" L. T" b7 J1 F9 v5 G% A# @
- (defun C:gotourl ( / ssurl url i): @, [- V4 K0 Z
- (setq m:err *error* *error* *merrmsg* i 0)
7 t/ x* M4 x/ a' E9 D
2 {+ }2 m- o8 `' K1 X- ; if some objects are not already pickfirst selected,
& a: v& i- G; O, S; c% i - ; then allow objects to be selected0 Q. \, _1 Z; R$ M6 E; U
# `8 d" a9 @. ~6 \5 T; `8 K: J- r4 [- (if (not (setq ssurl (ssget "_I")))
6 `3 L, G: s; J3 s4 x% u+ k - (setq ssurl (ssget))1 o! k7 @$ ]5 t5 a# g; } z
- )
! {, n1 v/ L" {- z' ~' { - 5 u1 g6 ~ H4 |& z. C; ~3 _9 B
- ; if geturl LISP command not found then load arx application- O: V$ s/ K6 ]9 T+ u8 f
- ; A( Z( v5 _4 N8 j+ |) b
- (if (/= (type geturl) 'EXRXSUBR)! {& u: o" h5 }0 @
- (arxload "dwfout")8 f2 O( ?0 Z9 [. C4 Z" B
- )& h$ h8 q" k% a$ A( s
-
3 v% g9 ]# z O9 g - ; Search list for first object with an URL
" p8 I6 V( k, J% {5 R* ~: O! u - (while (and (= url nil) (< i (sslength ssurl)))" N' q5 d5 B, P( z
- (setq url (geturl (ssname ssurl i))3 S4 u0 t6 h7 n) _6 v
- i (1+ i))3 e: B' ~+ _, z& m, J
- )8 c1 O( Y5 n6 d9 R
& p! C, T2 U0 k0 Y0 C. W- ; If an URL has be found, open browser and point to URL
V% I. C* W$ x( G - (if (= url nil)
% z$ i' K. R4 v" [! F# j - (alert "No Universal Resource Locator associated with the object.")
0 ^7 B& y9 L- ]' t - (command "_.browser" url)# C8 T) W4 d& b& q3 B
- )! H( |; j& C6 G0 v& W7 {
- 4 e6 Y+ ~9 m+ W- g- w
- (setq *error* m:err m:err nil): C8 G5 G# Z1 a
- (princ)- v! N$ i/ a5 O0 S5 v W* e8 B
8 d$ W, J) L8 _5 {: }- )
( c* O q/ V: d( y* f Z: Z4 G$ P% Y
* }+ z) t1 z$ v- ;; Used by the import dialog to silently load a 3ds file% o) N" @& `) M
- (defun import3ds (filename / filedia_old render)! d8 `" @, h! W) P( q' G, p
- ;; Load Render if not loaded" k5 }# j9 m2 n3 G8 M' |6 R8 B
- (setq render (findfile "acRender.arx"))0 [7 E/ N n, I S8 \4 l8 g+ t
- (if render' l% E) F3 h* I4 H1 h
- (verify_arxapp_loaded render)
) j3 \: C/ W" Z - (quit)
. @% H8 Y; d6 k - )
6 K) e4 Z g d: L0 h2 Q8 g* n - 4 N5 g; \. ]! r% W/ F- R( S
- ;; Save current filedia & cmdecho setting.
+ X S5 e5 Y5 ]& f1 O0 H - (setq filedia-save (getvar "FILEDIA"))
/ V, @- D) w- G6 a& [$ F - (setq cmdecho-save (getvar "CMDECHO"))
# }! t+ A% J2 z: P$ l" V2 d! R7 { - (setvar "FILEDIA" 0)
$ H, q" \% m" t2 p8 b- P - (setvar "CMDECHO" 0)* i6 \. y8 n' R5 a' u
- 1 H3 ]6 j% k4 r" n7 w
- ;; Call 3DSIN and pass in filename.3 J" ^3 ]* W- T/ M- r) q
- (c:3dsin 1 filename)
' o, m z. B; a% l - & x; A* c( M) s/ r+ p+ l/ h
- ;; Reset filedia & cmdecho# I* G, c+ B5 y" M, N
- (setvar "FILEDIA" filedia-save): k% w5 O; m0 R8 A
- (setvar "CMDECHO" cmdecho-save): x( ?; [, f; k; d
- (princ)! |& x+ s ]9 l5 f
- )
5 J; k, K0 J& q
3 l) {+ `) w; ?- & D% |# ^( M% c$ r" J; m8 e8 E
- ;;;=== Menu Functions ======================================
+ ^7 ^- E; @7 s+ [ - 3 y4 S4 m9 \" j: m- R; I
- (defun ai_rootmenus ()
( [5 |, [% k j) D/ {6 G* ~ - (setq T_MENU 0): O: B( A' W Y7 O' K* M4 c
- (menucmd "S=S")
2 k+ k. W+ [. n) Y - (menucmd "S=ACAD.S")9 X$ l* r9 |; e' Y1 ?
- (princ)
" B$ Y# f4 n: I1 K# \8 w+ c" d( K - )
9 [; | s( }& s$ ]. ?' j7 J
, g, D2 W7 k/ x- (defun c:ai_fms ( / fmsa fmsb)5 d" H; E* j0 b1 t- q4 O* A
- (setq m:err *error* *error* *merr*)
1 a; e' j, h3 }+ Y: { - (ai_undo_push)
3 X4 e- w+ }( o0 h. Z" e6 E( a - (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
. `$ p1 H% H# z \4 i& p - (setq fmsa (vports) fmsb (nth 0 fmsa))+ J2 a4 h P% J4 _- n
- (if (member 1 fmsb)$ B* [( F" }$ b5 ], V' V
- (if (> (length fmsa) 1)6 s& L' h- b6 O0 Y9 y9 K# M( D# @
- (command "_.mspace")
6 k0 O `) M& ~8 b$ U - (progn
4 X1 W5 e' \4 T/ I, C! D3 _ - (ai_sysvar '("cmdecho" . 1))
, T# ^* u* a& _1 w M' Q" Z0 H - (command "_.mview")
% l9 K' E C6 \$ Q$ E2 `# N3 v - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
( w8 ]. D4 W% h2 y# d - (command pause)
3 y- F7 u3 i) ~+ j) P) K- _7 a - )
# n0 `( Q, j" |/ T - (ai_sysvar NIL)
) V0 {3 z# z, K! l! U$ K - (command "_.mspace")
5 b9 c. P# [4 N3 n$ D4 r; |4 S7 W - )
7 C$ T2 Z5 K x8 L4 f7 R, d - )
- Z0 X) G% D. H5 ^# J0 I - )
$ K7 D; F" c: _' Y) a% R! \ - (ai_undo_pop)
3 e* c r9 C& X, { - (setq *error* m:err m:err nil)( `5 G$ C D8 ~. e9 C' ~$ C5 q
- (princ); ?. c( Y! p# R- {8 a% w- J
- )
* E, y$ s2 m2 z( y" E9 {
/ h0 N* d0 p0 B1 d: f' P- ~3 [, u% `7 }( u- (defun ai_onoff (var)3 j: L7 l) X1 x2 n5 D* N
- (setvar var (abs (1- (getvar var))))2 `0 p1 E% R; ?. {
- (princ)
6 m" b9 Q0 J5 O1 D - )
7 |/ L$ f5 S' A# |$ S
1 ~4 A& z3 X1 ^& m/ e! ^& b0 [- ;;; go to paper space
( u& \6 o3 [4 u/ K$ F$ {, a/ [: d) _- ` - (defun c:ai_pspace (): b% I: a" }9 E& b5 k1 I: {
- (ai_undo_push)
4 i, m& \& _6 i - (if (/= 0 (getvar "tilemode"))
; E; M6 ^" a! k& N$ x - (command "_.tilemode" 0)
6 b7 V% R% A( `! p; F - )
" w, r1 F1 D7 Q* X- z1 u - (if (/= 1 (getvar "cvport"))& j) o. D/ C# U- e# R
- (command "_.pspace")
. x) H6 X; m) t+ @! x) G& D - )
7 N; X; `1 d3 U R9 d2 ? - (ai_undo_pop)
; I x& y- Q! Y8 f5 l - (princ)
* d, E i* D+ e& Y - )
$ z6 P0 Z* A3 [" w3 i, f# C9 X. z - " K- p5 A3 }- r
- ;;; go to tilemode 1
% y# V6 V" |; g8 h# r1 Y6 p$ [ - (defun c:ai_tilemode1 ()
9 k9 L: K4 `3 u - (ai_undo_push)4 ^, ~* @" m$ T) d; L
- (if (/= 1 (getvar "tilemode"))
`2 V1 i. T: Z8 M - (command "_.tilemode" 1)9 X0 x5 j8 N, L* L
- )/ }! @5 {& S/ [6 z0 p
- (ai_undo_pop)
: B0 E5 a5 J3 i: ] ^4 N+ K - (princ)3 I4 ~3 R1 @+ \
- )% d4 d. Z/ n/ n; \- Z! ]
- 1 W( J4 x) g1 {$ k! d
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
% Q8 `( k8 B$ }* e: i4 { - ;;; Toolbar Dimensions/ Align Text/ Centered
8 K+ w% N$ t& h! V# }# U - s# s9 x% V! ]6 g" S2 x7 f" A: ?- ]
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)' w) f! a' ^4 H( w
- (setq ai_sysvar (getvar "cmdecho"))1 o( Z% T- k9 y2 V4 `% y3 J
- (setvar "cmdecho" 0)
, l X" z% z4 [; V4 [1 G l! V0 ^ - (cond
" m' U" D; H, v" l% a9 N# m - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION")))); ^. G% A. T; j+ ^8 }& q- J
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
/ x5 I5 M/ m+ T' n9 M - "_.dimtedit" ai_dim_ss "_h")4 l/ i0 S0 q- l; H4 Z8 ~; _* n
- )* Y* W1 h2 a6 F6 e+ a9 w
- (T nil), @, J5 f9 {9 v$ |7 P
- )
4 {3 m8 Y" t- W7 B2 K - (setvar "cmdecho" ai_sysvar)
# k7 S* A3 @ z1 V1 ` - (princ)
/ v2 ]& Z. [) G' f! @ - ) E* @" p2 i/ J. I2 W
- 7 W% C0 i: V0 p2 r
- ;;; Shortcut menu for Dimension Text Above C) d# @% f& s/ g+ f- Y
- ' \& E' B7 I2 q4 F" c4 F
- (defun c:ai_dim_textabove (/ ss)0 T8 {; G& I3 }8 w! {$ h6 J+ ?& M
- (ai_sysvar '("cmdecho" . 0))
9 I, S, U0 |0 K* u - (if (setq ss (ssget "_I"))
: Q7 U$ `6 m( v- K% d( m - (command "_.dimoverride" "_dimtad" 3 "" ss "")- n6 b1 k$ d' I1 H/ P
- (if (setq ss (ssget))1 p2 x) t! u0 i) p- h
- (command "_.dimoverride" "_dimtad" 3 "" ss "") 3 f8 I/ F, o) f, B O5 J! I# P( O9 X
- )/ N3 v" R6 L2 Q' c4 j) E
- )
+ w3 D, m( z5 j' {. Q - (ai_sysvar NIL)/ o Q, c: G& Y* s2 A5 D1 U8 C7 G+ i
- (princ)) i6 ?" {: I/ M$ L
- )7 s9 K, B; t% E
- ! ]5 o, K7 w t. U
- ;;; Shortcut menu for Dimension Text Center
8 v2 y/ {7 N- X- t8 m
& R9 ^ g, u3 w8 ^* U- (defun c:ai_dim_textcenter (/ ss)+ O8 O; F- m! S( h, s& W
- (ai_sysvar '("cmdecho" . 0))6 v/ ~0 i! F3 m) v
- (if (setq ss (ssget "_I"))3 D: \# f% E& d; J! Z' a" u. u4 e
- (command "_.dimoverride" "_dimtad" 0 "" ss "")* U6 Z' }& f V, H: ]
- (if (setq ss (ssget))
S8 D& J/ h& E* o h - (command "_.dimoverride" "_dimtad" 0 "" ss "")
2 Q9 t, C7 W1 b: t, I, U6 S, u4 P - )2 N- V, b' D! O2 K! O2 i; P0 O
- )
7 G% s) x9 J7 V2 f+ a" u. h - (ai_sysvar NIL)
0 B5 A# E7 V i& a- j! M2 S" N - (princ)) g, u5 e6 i/ @& O$ d# L! ~& M
- )1 H- V; k- H1 _- b2 _- Q: O8 [% ^
- 2 u7 j/ {2 ^0 V5 K- S
- ;;; Shortcut menu for Dimension Text Home & Z* j9 K7 L- P9 `' j
- & v$ W7 B; Q; r% v0 |2 D3 z1 G
- (defun c:ai_dim_texthome (/ ss)
+ C: u5 }9 c# k8 X0 H8 |* O, R+ E - (ai_sysvar '("cmdecho" . 0))0 D% D" M0 O) l9 \4 I
- (if (setq ss (ssget "_I"))
0 u, s2 j, ?/ ? - (command "_.dimedit" "_h")
2 C R' Q* \* w' L: a* ]1 ~ - (if (setq ss (ssget))
- ^+ v* I3 h3 w3 O7 V$ O - (command "_.dimedit" "_h" ss)
" g) R# n: }( x: y, _: Q" g. T* d - )# C* B% I; s# u0 S, j4 Q
- )9 I8 u' H9 m/ j: O o
- (ai_sysvar NIL)
* q B8 r& w4 f+ V - (princ)& P1 G" A9 l* b
- )/ k) U* P9 O1 `
- # f2 P0 N' B- ] m$ j/ |& d" `5 v- j0 w6 j
- - k+ g3 ?6 l6 r+ {# h
- ;;; Screen menu item for CIRCLE TaTaTan option.6 G+ r; I J( M. j2 ?6 d
- ;;; first, get points on entities
7 u1 v/ K X; ^9 Y, {* l, s - (defun ai_circtanstart()
( m8 n: B* T8 c% w( ] - (setq m:err *error* *error* *merr*)/ l$ e) A7 Y3 P! p9 Z' S& ?
- (ai_sysvar % ?$ ^2 c! _: j2 q! q) Y! r9 ~
- (list '("cmdecho" . 0)# h! \- N7 B7 n( f$ f5 T
- ;; make sure _tan pick for CIRCLE gets same entity& {+ y) F: q# X( c
- (cons "aperture" (getvar "pickbox"))' P2 J3 W/ K# N. H
- )
, Z+ _1 U, A, V: I2 _/ o1 a - )
( g' \/ h8 T! c! ]* v7 c3 P - ;; prompts are the same as CIRCLE/TTR command option: U& T3 b9 i- S/ v3 g" a
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
5 S! A" a' Z9 R. r0 F - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
: J" L% H; e; N I - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
% b$ |% k& w, {$ T0 ^ - )
# Y) }4 H. z8 T! n3 u5 u Q3 g - ;;; Command-line version* k% R m+ V) Q. T, Z9 u0 t
- (defun c:ai_circtan (/ pt1 pt2 pt3)
( A, ?2 I" l: {, Y - (ai_circtanstart), `9 q7 `- j S5 X5 K' S, c! ~
- ; o. [9 f& B" N! T6 o+ e
- (ai_sysvar '("osmode" . 256))2 O) c& N$ e' Z: P9 u+ R/ S
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)4 V; m+ q" O5 Z; ?! l3 @' A- B0 p
-
/ o3 L9 I2 P4 D4 M* j5 G6 _1 x - (ai_sysvar nil)$ X) f+ e5 Y; r$ \
- (setq *error* m:err m:err nil); v# }: Y- h/ O7 u7 T8 `
- (princ)" U' Z2 z$ y* G' R$ t
- )
# l$ o% P5 X2 x# F - ;;; Use this if CMDNAMES == CIRCLE3 V' b7 Q7 [; \ O+ u
- (defun ai_circtan (/ pt1 pt2 pt3)0 _4 y. L; T/ N
- (ai_circtanstart)% n* K7 s* n. N" C+ N
3 \( E8 R2 L/ g# ]4 u. J- (ai_sysvar '("osmode" . 256))7 }0 j7 v1 `# u' l* M& I
- (command "_3p" pt1 pt2 pt3)2 h& z* _7 {% {; ^
- . e1 Y! F- c l' P/ E# D* C
- (ai_sysvar nil)
F- ~% L: J% L# z" c+ g - (setq *error* m:err m:err nil)4 K1 s) g+ d* U, f$ v! Q2 ^; Y0 Z
- (princ)
W5 m( d1 U2 G( {( K7 X# | - )
1 c0 j! q) @4 E9 w - 7 Q, Y2 D: ]- A# f
) g8 \0 E$ w: k2 \. m D* h5 r- # Q/ q" k0 l( K( N( b
- ;;; Shortcut menu Deselect All item.: |% e1 K, L* Z6 p5 G
- % T; Y8 c( j' u5 {% T3 l. o$ x
- (defun ai_deselect ()
- S5 e J; m: A" \- I - (if (= (getvar "cmdecho") 0) ;start if
. h8 k z# Z, X. c - (command "_.select" "_r" "_all" "")0 w9 J* }# p& \9 P
- (progn ;start progn for cmdecho 1" c6 X9 N V9 g( T2 p0 u6 @( W
- (setvar "cmdecho" 0)
! b! t: F" W& x; H0 l& t2 C" N - (command "_.select" "_r" "_all" "")$ \! Z3 o2 k& t* g1 z- W$ H
- (setvar "cmdecho" 1)3 h1 T. ?% i8 _1 o5 b' N7 ?4 ^+ H+ L- [
- ) ;end progn for cmdecho 1
" r! N7 c8 g+ e- q - ) ;end if0 e* [" A- a' v$ ^" M" P
- (terpri)& ?% Y+ R' X: ]- g& L0 c* u
- (prompt "Everything has been deselected")4 Z V0 m. [0 U7 K" ]. Y
- (princ)1 h8 M1 H/ O+ c9 ^8 k. k
- )
: c+ j. q/ p/ _. U. q$ J' X& ^ - ( G% k+ `- T$ j9 X
- ;;; Command version of ai_deselect to be called from the CUI# i, i2 F& p" E3 S% `% H
- ;;; so it gets properly recorded by the Action Recorder# g% D1 O- K' G( s# m4 z; ?4 i7 E3 W
- ;;;' e- B) D! h- N/ h$ V w
- (defun c:ai_deselect ()! g5 E5 J3 f$ V5 @4 X
- (ai_deselect)
2 ~. `9 X3 o4 a- ?: s - (princ)% b: w C& s w# z6 B7 l
- )
4 {. E: Z, ~8 K; r/ W. u
" F5 T( I! [. t2 ~( P- ;;;( w c, z5 b* L- }1 p }; o0 j
- ;;; Enable Draworder to be called from a menu
, p$ F' h: ~6 ]4 d4 R - ;;; Checks for Pickfirst selected objects$ n* _ A. _) G1 J
- ;;;
5 f! @3 f- S5 U8 M4 e8 R - " b# | V( g. E+ O5 q( u
- (defun ai_draworder (option / ss )5 {/ h! B* w. p" c- m
5 R. g k" m$ u+ \1 t9 u6 m- (setq m:err *error* *error* *merr*)3 `2 {7 }. x+ z# b" X
- (ai_sysvar '("cmdecho" . 0)): U- b n2 r& O( x
( C$ m/ U3 ^0 q% C8 K3 L* K5 ~- (if (setq ss (ssget "_I"))0 L' l" c8 A' s3 x: Y6 _7 Y
- (command "_.draworder" option)
% v2 a; h- T+ `0 H - (if (setq ss (ssget))
/ j, D7 C- f8 v - (command "_.draworder" ss "" option)
8 v3 Z" e& k8 P% \- ]) y3 Q - )
4 g1 J" C" R: h+ M3 G5 C) ?5 m - )
3 j8 y% q: q3 V% }7 S. N - (ai_sysvar NIL)& ~ t6 c. N y, r/ h7 g3 ?
- (setq *error* m:err m:err nil)
; E' A* Y- c; _$ ~& B8 N - " u' W0 O& ]2 U Z4 H* b
- (princ)
$ \$ D% U0 u; v/ A - )2 k$ z1 O6 g; P! ~! U2 k
- 3 i& z7 }2 {# z( q9 o+ }/ P
- ;;; Command version of ai_draworder to be called from the CUI
+ k% \1 ]+ @0 m1 h- ? - ;;; so it gets properly recorded by the Action Recorder
% @. b; n4 _% a( @ - ;;;
( B& x+ ^, A1 c/ V9 T9 J - (defun c:ai_draworder ()
" E% U1 ?9 c7 h1 X$ f2 @+ A! T - (initget "Above Under Front Back")
) }( L0 k. k |8 F! Q! n - (ai_draworder (strcat "_" (getkword)))4 Y/ l Q. P8 \2 |5 x
- (princ)" n5 s/ L( w) X V6 K0 v
- )
* R' u5 Q8 w+ l K - 0 k( c I7 k, n8 N& w- } T$ e4 k& b
- (defun c:vlisp ()
6 `3 S0 U2 \$ p% N a - (if (/= nil c:vlide) (c:vlide))) p/ h2 D7 k3 ~* x/ A
- )
6 G, R3 y7 m" W c8 d& |8 }& u
7 ~6 Q3 ?, B# _8 T6 O7 ?- (princ "loaded.")2 C; \/ n( l1 P* L: g% w! Q7 O
# d5 c$ ?( A1 w) O2 r- ;; Silent load.
7 @, ]% b1 }- ^5 |0 W0 ^# J1 c - (princ)7 M, Y- M+ w; F: O
Z/ g$ l3 I4 F+ Q- ;;;----------------------------------------------------------------------------
$ m( H; D& M& z/ I - ;;;& j/ `! B% A# U" R, v$ A
- ;;; DDCHPROP.LSP Version 0.5' K9 T l9 w9 J# w& z+ b
- ;;;
* t" c( m4 {" h, D2 C0 Y - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.
; W# y) V3 K" Z& j( r% a0 H# M - ;;;
9 F$ ^, I$ k9 b: t4 c# }/ A8 w - ;;; Permission to use, copy, modify, and distribute this software
1 d. o+ Y, z! n9 U" k, C/ z - ;;; for any purpose and without fee is hereby granted, provided
7 Z7 O2 k% k# V- _ - ;;; that the above copyright notice appears in all copies and that
3 D9 e8 t; k9 t- c( L3 S - ;;; both that copyright notice and this permission notice appear in
- {& _: x8 `- J& X - ;;; all supporting documentation.6 }0 _* m# g# G+ \ }% w
- ;;;( V0 I3 _' a7 @' ^8 r+ S" d
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED5 d/ v, `# ]3 V# {
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR) a' L- P" h3 w! J# X J: q
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED./ y% r& y4 x1 I# M f% d4 Z
- ;;;# @2 F1 v6 t8 `! h9 U
- ;;; 2 February 1992; l. Y0 |* U: q* \- W8 P$ Q# }
- ;;; ; ?2 U4 J) Z) q7 n% [
- ;;;----------------------------------------------------------------------------+ ]2 ~- c* b& D
- ;;; DESCRIPTION* c* p' ]+ s+ ~& J, [8 Z) v9 D1 W$ D3 U
- ;;;----------------------------------------------------------------------------' U: m" T) P- C6 L) c3 {
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
& Y; \+ f8 f' c# n5 V( N - ;;;
# R" v- _4 w! b: \: B: G' T) t# T - ;;; The command looks similar to DDEMODES. The main dialogue has an image
" `( L( J; G z* ]; A: o - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
4 e; f. h4 I' h6 l# [( V" ~ - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. . |* w6 _3 @" L6 M
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.; U3 f. ^9 X& m# B0 w& J, [
- ;;;7 z' z3 ^8 ^& X4 O; f* u0 p
- ;;;) r% K. Z2 ~8 x
- ;;;----------------------------------------------------------------------------) R' Q: L$ p$ Y4 n/ B
- ;;;----------------------------------------------------------------------------
9 c; y; V6 s- C @! i/ K) K; C - ;;; Prefixes in command and keyword strings:
. |8 K; C* T% }% p3 M: { - ;;; "." specifies the built-in AutoCAD command in case it has been * F3 j# O/ S; B0 A
- ;;; redefined.& b$ ]1 M% ^4 j' z
- ;;; "_" denotes an AutoCAD command or keyword in the native language8 F P/ r& l* W+ }) X5 A
- ;;; version, English.
/ I. L3 ^' b$ F9 @2 I - ;;;----------------------------------------------------------------------------
& T8 R* F+ s4 I! h, x( ~ - ;;;% a9 e( x: a3 [" Q, `, \: e
- ;;;
- S/ [* K+ T& G& R1 T& T4 ` - ;;; ===========================================================================
1 d4 @3 C, C2 {; A3 h - ;;; ===================== load-time error checking ============================) a" a" a+ o, p( ^$ ]4 O* E9 E" K9 \
- ;;;
( G( g9 l, ?$ a - 3 M# U7 R# _* `) C7 t5 x$ l* T
- (defun ai_abort (app msg)
7 j1 ?/ K/ l7 k' W2 ]% Q5 O - (defun *error* (s)
- g% ^( d3 I4 \- S - (if old_error (setq *error* old_error))
& d, e$ \3 h- N% m& h - (princ)% l0 {7 S# R+ {& S x. V
- )$ p! O/ l% r' j; b1 `3 [
- (if msg0 j! f$ o- r* t( Y6 `* F
- (alert (strcat " Application error: "
1 E; F ]( Y2 k; I; Z9 X8 k - app
. I% g, I# l9 R) b* r- | - " \n\n "$ C, p) J4 u* h7 D `+ I
- msg
( f" R2 O0 U" [) W' ~ - " \n"
T# Q6 `# i# C! \+ t! j - )
1 c2 O3 F$ o5 q/ K! T - )
# P) j% T% R2 l/ D - )4 a* M5 V6 `. y2 L+ f9 X
- (exit)9 w- k" U6 v1 @ P& \. B
- )
6 H2 C! h# k0 B8 X0 T+ B
3 j; ?7 Q* v! h! b& L: u6 m- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,# F* ? b$ N @
- ;;; and then try to load it.
" _2 x0 l- |0 u+ z - ;;;3 A$ m$ u$ V( a5 U
- ;;; If it can't be found or it can't be loaded, then abort the
/ n7 s) M+ Q3 K+ T4 b- a - ;;; loading of this file immediately, preserving the (autoload)/ { T( H2 C3 s. ^
- ;;; stub function.4 _% J1 i N( S& m% Y
# ^. U0 ]1 d8 a0 T* W2 S! w' W- (cond( r, f: C w: v
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
# b0 l: X% F9 y6 L+ o1 S/ @ - 6 N* c2 y/ s& n/ B6 O
- ( (not (findfile "ai_utils.lsp")) ; find it
( i8 p+ Q+ H7 I9 {3 E; l! [ - (ai_abort "DDCHPROP"% N/ }3 G t2 A( A/ l
- (strcat "Can't locate file AI_UTILS.LSP."% V6 _: u" [$ e: F8 @$ Q+ ~
- "\n Check support directory."))): u9 X( j. T b, m, [8 P
- 3 ` Z5 b s: Q8 \/ `" F& |* U# z
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
$ X! C; o1 V2 D! h! z4 {6 e - (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
/ U. [" i2 e' A' Y - )( I/ F; q3 P- U
! Z0 Q9 ^ ]/ \* `- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
1 b% Y, P6 p; V1 n' n) W - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
' o: r( f! F. r4 D; y - ) ; ai_abort's alert box dialog.0 C, a6 ?% k8 w7 i! H
- 0 R2 \6 F( N" q% ^
- ;;; ==================== end load-time operations ===========================
0 Q- c7 ~" i" v( n
; R! C( T: M: W: n$ n- y2 }9 c- ;;; Initialize program subroutines and variables.
" o3 p7 K( F6 x3 ^" V* G - - C1 ?% ]! K# o, N" }, J
- (defun ddchprop_init ()
' C s T8 t6 A5 e, ?2 A8 j - ; I& ^( E! G8 h1 c# x W
- ;;
. z$ Q \: q) u9 S - ;; Define buttons and set values in CHPROP dialogue box 5 p0 ^( Z$ j; Q/ t2 F( i- x
- ;;
& M4 ?: t' ], `$ d4 M) P( g. P - (defun call_chp ()( ~+ `; }1 q, l! z! E4 Q2 l+ p# c
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))( }8 [- x3 _3 f* @% R. [
- (set_tile "error" "")
/ f5 r& n8 S# O z( X+ u3 n% Z - ;; Set initial dialogue tile values
7 j8 O0 u0 J0 S H! b ]: ]2 [ - (set_col_tile)# L# k8 c6 O6 O' k; ]* w: h/ V# x" Z
- (if (= lay-idx nil), ?; ^7 _5 d: k; u, P( i5 h
- (set_tile "t_layer" "Varies")
% ^6 y S) b' c$ _4 g ?- C: F( S' l - (set_tile "t_layer" (nth lay-idx laynmlst))7 J8 } Y5 b G" p# Q1 k, F
- )) y# d8 g8 M; F8 N7 M+ }8 k
- (cond & w- Z8 o5 C+ M! A3 v+ J) o1 F
- ((= lt-idx nil)3 I) U. o U) i, l
- (set_tile "t_ltype" "Varies")
, L& f+ ]+ U; ^* x% J: R( H) M - )
6 ^3 g8 ]7 [4 c( ?( ^. c - ((= lt-idx 0) ; set tile "By layer & layer linetype"
9 Y& C$ d' _! H Q9 z* G, N* j - (set_tile "t_ltype" (bylayer_lt))
; w5 F, t7 n2 h1 D! T6 F- o - )% D& o. |. \0 F
- (T 1 x; C& m9 @# V! a+ O2 c
- (set_tile "t_ltype" (nth lt-idx ltnmlst)): ]2 R3 P* M- f
- )- |. h; l" w( @& i: H
- )* N# K4 P, t8 O$ I# x+ ?
- (if (or (= ethickness nil) (= ethickness "Varies"))
1 t R( E U7 [ - (set_tile "eb_thickness" "Varies")1 M7 ~7 }! W5 C1 ?' Z
- (set_tile "eb_thickness" (rtos ethickness))
$ ?/ s8 [# e! A+ Y: B) Y+ Y - )4 b5 l8 i0 ]' a6 L$ [8 E# z
- ;; Define action for tiles; L' H' |0 G% V8 w( f8 e
- (action_tile "b_color" "(setq ecolor (getcolor))")
. L: H% J- @( L4 t6 M - (action_tile "show_image" "(setq ecolor (getcolor))") j3 T3 y+ \( }3 G
- (action_tile "b_name" "(setq elayer (getlayer))")
; t3 u4 Z! j3 Q7 V& c$ S - (action_tile "b_line" "(setq eltype (getltype))")
& D9 b* h7 c; N4 A2 F- _) t, H - (action_tile "eb_thickness" "(getthickness $value)")
8 V& y1 D2 q" \; } - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")$ Q- i8 J( ~6 J4 ^6 m5 ^
- (action_tile "accept" "(test-ok)")
7 T8 l, c/ B7 |7 a6 B - (if (= (start_dialog) 1)
- N+ Z; Y2 e# c8 U" ^ - (progn" V* Y8 z6 `# J# ] n# V
- (command "_.chprop" ss "")
1 v K0 N9 S, R- m. ] - (if ecolor
* u; w% ^ g' H- V' e! m# m+ O$ ]1 [ - (progn; C! g( s* _& n `
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK")), F& O( T: s4 m+ s+ s% ~/ @
- (if (= 256 ecolor ) (setq ecolor "BYLAYER")) S! l; @2 _9 V- u A4 U/ O
- (command "_c" ecolor)
, |' @( X9 }: W - ): V+ b _2 M e) w" m; R' i2 C
- )9 U9 C( q/ _' F
- (if (and (/= eltype "Varies") lt-idx)
+ h6 \$ @: S! D, C - (command "_lt" eltype)4 r. A6 V' N( M* r
- )7 _9 [$ u3 O# S& F( @. R1 a
- (if (and (/= elayer "Varies") lay-idx)
, @4 w. M% J" R5 {3 D0 Y - (command "_la" elayer) M$ m2 m& K% Q) I/ ]. E
- ) l7 k) q5 R2 v p* N
- (if (and (/= ethickness "Varies") ethickness)
" W! f. \2 k$ `$ s9 F* R( w - (command "_t" ethickness)
. S l, p; k' _ ?" T - )
7 `9 P. k: {( a0 w; h" d% p | - (command "")6 f1 S) q4 A4 e" Y
- )1 y4 w0 d0 b4 ]( d7 H% P* |
- (princ "\nProperties unchanged")
+ [& P; Z" H4 F; M/ a1 I9 ~1 l3 } - ): e, l! W8 Q5 C; H' C/ O
- (princ)+ \9 o( h/ A# [" H7 C( K" X* r
- )
! Z% w% E) y# _3 M+ L. { B - ;;
) Q! h: S, a: n3 v - ;; Function to set the Color text tile and swab to the current color value./ g" Q, V4 n; x* [% Y7 b" ?
- ;;* l; D' F2 E1 V! ?) y
- (defun set_col_tile()+ E/ a1 { f* x' I- d% M% U
- (cond
' p) \" P0 [/ S* T - ((= ecolor nil)
+ c! B: r$ z: r9 h- C. ? - (set_tile "t_color" "Varies")
: x& ~9 ~2 o' b1 k7 e4 H - (col_tile "show_image" 0 nil)
) s% `7 E Q0 P P. x - )6 o g/ K$ g' k ^0 |! v
- ((= ecolor 0)
& P: V! d- d+ j, A& h$ u - (set_tile "t_color" "BYBLOCK")! J$ E* b, V$ T; c
- (col_tile "show_image" 0 nil)
* X( N/ ?4 s) ` - )
) W' Q0 b; Z# k8 d' a - ((= ecolor 1)4 R- P" ^3 e! R& ^1 t1 d
- (set_tile "t_color" "1 red")
% K( t+ x5 { b2 X4 C - (col_tile "show_image" 1 nil)1 a* g% O# b6 V, z; c! c
- )
" j2 |0 N8 S, H" v% j! U: s - ((= ecolor 2)$ n1 q/ S( N) l
- (set_tile "t_color" "2 yellow")
1 b( ], v7 u9 w7 f( Y" a - (col_tile "show_image" 2 nil)
, u% ^, [2 v( [ - )
3 Q( K, M6 ^5 z) S2 o - ((= ecolor 3)) t1 S: U" w7 Z+ k7 e( Y
- (set_tile "t_color" "3 green")
* M2 s1 S: A4 r9 F" b: F& j - (col_tile "show_image" 3 nil)& e1 ?% |$ ]1 P& O
- )# q% v* e9 A% s2 r( i" |
- ((= ecolor 4); B& ^* W9 H- o }6 U% G& P3 X
- (set_tile "t_color" "4 cyan")
* g$ ^# R4 ~# \5 b) y5 i! ^ - (col_tile "show_image" 4 nil)8 l# x: x$ g1 p: Y- \: y2 @+ c' O
- )7 Y* E+ v5 Z- f
- ((= ecolor 5)
% s) Q7 i) x9 f! e) K - (set_tile "t_color" "5 blue")# }) \$ \: A- y: e& O/ ~ J% n1 `
- (col_tile "show_image" 5 nil)3 h' y7 F8 \) M9 c0 ~
- ) o( e z% a( L. I
- ((= ecolor 6)
0 j" y/ v, o, v) H8 W) ^6 Q - (set_tile "t_color" "6 magenta")* T- U; R8 F. J
- (col_tile "show_image" 6 nil)
. Q2 N" N/ k `8 |1 o) | - )+ V! U8 `+ a9 d
- ((= ecolor 7)
W- _% {' n; r; C - (set_tile "t_color" "7 white"). s0 E7 K% b) f: D4 c; d q: {
- (col_tile "show_image" 7 nil). N1 m" k1 B6 B
- )% D6 b R! H4 R4 d0 ^4 }+ Q
- ;; If the color is "BYLAYER", then set the tile to- [6 R$ |) Q" `. |2 k/ Q
- ;; show it's set By layer, but also indicate the
( y8 ^' c1 {4 i1 i3 t5 Z; Z5 I - ;; color of the layer - i.e. By layer (red)
3 @4 h" V! f V# h0 t6 S0 p ] - ((= ecolor 256)
5 r0 C6 X+ f5 p/ h: @5 U - (set_tile "t_color" (bylayer_col)); o% I7 O$ X- \( Y2 ?
- (col_tile "show_image" cn nil)
4 c" c9 C- H5 L y, f, q9 v0 C - )3 L+ ]4 n+ i" U e- H+ \
- (T
6 \& L, v$ f1 h. \4 U - (set_tile "t_color" (itoa ecolor))# q& E: W" q7 p* R* r; M
- (col_tile "show_image" ecolor nil)
' l$ Z- z# ]( o& Y( U; h - )% c! ?7 l! `2 t6 ^3 ^# o6 z2 ?3 k
- )' H7 B3 a% A1 o& i: l" K
- )
4 e3 o! c- `. s& ?+ h/ i9 A7 } - ;;
) w' j+ \1 L# `3 p - ;; Function to put up the standard color dialogue.
+ \7 s6 A5 ^( p - ;;
7 M' O9 V7 \. {' ]- ? - (defun getcolor(/ col_def lay_clr temp_color)5 g4 |6 ~8 J2 L) p" c; o
- ;; col_def is the default color used when rq_color is called. If ecolor 1 l7 I" F& Y. [& @. d! Q
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
2 h+ H9 I& i) X# C$ P- k - (if ecolor
! O1 u) _* T6 p. u0 O# i6 K - (setq col_def ecolor)) m; o) d6 u+ n' B5 y7 `6 x
- (setq col_def 1)% V9 f+ d( |* l- i' R
- )7 ], |3 R: U6 t+ [9 |; F
-
! |2 P, t, F6 ^ - ;; If we're working with a single layer, get its color. q' z4 A* I* w# `4 c# A1 [
- ;; for use in the color swatch if the user selects color BYLAYER.
* M' z( z6 w ~7 _* d - (if (/= elayer "Varies")
$ l7 a* W! X3 l# c) f% G4 @* L - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
3 p. _2 m. C: }' O, U; F - (setq lay_clr 0)" f$ [: u+ U$ y- V; e% X* T+ b
- )3 o6 c" Q! V2 w
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))4 V# Q' t' g; u j+ `2 j9 k
- (progn/ ?9 h0 K7 L" y4 _7 R9 L5 u, ]' h9 e
- (setq ecolor temp_color)
" S1 Y8 T/ n" A7 \7 D& Q+ E: z+ F - (set_col_tile)4 q; C( |8 A* y: m9 K
- ecolor1 G& V# U7 q- ~
- )+ K( ]' x9 d& q2 B. q E1 y
- ecolor% e1 w, ?3 ]6 Y0 o" g" n
- )
4 M( G% p% d8 V' l1 N: J2 W/ Q% E - )
% q, N* X/ J# F$ @5 F& W - ;;2 X- z# N% }3 U5 H& c) |0 o2 J
- ;; This function pops a dialogue box consisting of a list box, image tile,
_# o, M+ ~4 L - ;; and edit box to allow the user to select or type a linetype. It returns
# V8 I" }/ ]; |4 ~' A4 i6 ` - ;; the linetype selected.
8 ~& i/ Z( z& s' f. D- b - ;;
) J* e' T9 w, Y/ ^" z - (defun getltype (/ old-idx ltname) G7 C. T, n" b6 f# E
- ;; Initialize a dialogue from dialogue file
w$ Q- U) {; _, z( O. F3 n - (if (not (new_dialog "setltype" dcl_id)) (exit))- h2 h U/ o1 b, m3 T
- (start_list "list_lt")
( k$ Z4 R3 e& `* z" u - (mapcar 'add_list ltnmlst) ; initialize list box
0 P* A7 E7 A, `; X6 M# C. E6 k - (end_list); m0 {: l4 i4 W$ ]6 d
- (setq old-idx lt-idx)
, ]; X( `! ]* H8 H - ;; Show initial ltype in image tile, list box, and edit box
' J' @3 e& S1 |% ^ - (if (/= lt-idx nil)7 p5 N8 `- F' U# H
- (ltlist_act (itoa lt-idx))
! H B; B# \5 P4 q, `( z2 H - (progn, U+ |* S* [$ k
- (set_tile "edit_lt" "Varies")
+ {- Q* m6 ]% U! `1 R; ]6 ]2 g* m - (col_tile "show_image" 0 nil)0 m: `6 K, E$ F7 ]) @
- ) s8 r4 k( _2 x$ {3 ?' I+ z
- )9 G- U/ d5 v' `/ H( p% f- X9 }
- (action_tile "list_lt" "(ltlist_act $value)")
5 A3 @! T2 `7 i9 y5 a- s3 k - (action_tile "edit_lt" "(ltedit_act $value)")
- P K) n/ F* c: p - (action_tile "accept" "(test-ok)")
5 U1 y- X3 u) U3 g - (action_tile "cancel" "(reset-lt)")4 }6 L7 G1 |# F1 Z! O
- (if (= (start_dialog) 1) ; User pressed OK ^3 P1 T( v( w( C) c. F
- (cond / l7 [5 F5 ?6 g! Q! t- {
- ((= lt-idx nil)
2 s' ~! [& C( o* L - (set_tile "t_ltype" "Varies")
$ D8 I' F# @2 I$ q* \% S9 M - "Varies"
3 Y. z b" s% ` - )
H4 q3 l' b9 O0 m! k* F - ((= lt-idx 0)& h s/ M% U; Z8 s
- (set_tile "t_ltype" (bylayer_lt))
! u" w3 @8 X6 Y* W" d - "BYLAYER"
7 Y A) M s% G3 t2 ^* D& \' F9 g - ); c9 T' v6 s9 [( I0 m" Z
- ((= lt-idx 1): F. |* p0 V4 k
- (set_tile "t_ltype" "BYBLOCK")
5 ^! X! _# b2 ^' k: L - "BYBLOCK"
; e0 h1 ^% b# L S! K" \1 `" K - )
1 h, B8 W' c. [- |$ M2 j# {: Q - (T + l" S5 E/ U. H7 E3 X
- (set_tile "t_ltype" ltname)
4 [, x3 a4 [$ w% {7 | - ltname
: E' Q5 G& s( Z7 k; J; A - )2 C, T7 M! N) H: h( F/ c$ M
- )
' k1 |6 [+ W1 z6 l# c - eltype
9 M6 i, i) {. n! b) j - )
* V" ^' R; P N4 |) C - )
6 _- Z7 O4 l8 J3 X" \ - ;;
1 t' K% O: q: I9 a( n1 b - ;; Edit box entries end up here3 G# y( S9 c" j p& o$ X# @
- ;;
/ X4 F9 P2 G4 y( X- E - (defun ltedit_act (ltvalue)
5 {, ~' Y' t$ E) l, y - ;; If linetype name,is valid, then clear error string,
1 H% A/ p, W8 g6 y2 ?7 C! W - ;; call ltlist_act function, and change focus to list box.
: l9 T8 H' ^/ E! V2 P - ;; Else print error message.; A: z. E3 x- }" u4 f3 _* q
- (setq ltvalue (strcase ltvalue))
, V" j! ]+ d6 h. F( c9 | - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))' Y. D: ~* ?/ j4 u: L3 n, s& O
- (setq ltvalue "BYLAYER"): W" F$ _* n, i& E
- )% l' Y" j4 B2 F* @0 s- ~- e. v/ x
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))8 K- r, w0 G. [. U0 M( C7 o
- (setq ltvalue "BYBLOCK")+ c4 \ L# F2 h
- )
- D3 X! p% a6 l - (if (setq lt-idx (getindex ltvalue ltnmlst)). ^/ r$ T: o/ }& b! W
- (progn
. I* g0 Z# N! [. x! X - (set_tile "error" "")
9 r9 L7 L2 h0 \# k - (ltlist_act (itoa lt-idx))& u y) E, v+ K0 Q+ r6 e
- (mode_tile "list_lt" 2)
6 e: _) |$ t0 s8 W - )
2 d. x% v$ \. b# v! p9 U; _ - (progn; R. b' \& @% d
- (if (/= ltvalue "VARIES")
4 k1 R) H8 m: i6 W4 F - (set_tile "error" "Invalid linetype.")& J0 n4 I6 V/ i) x
- )$ x. U% a" }& q" _. Q" b
- (setq lt-idx old-idx)' s: u2 m$ X! r8 X
- ) ( d4 x% G: _# V$ m9 x. Z1 o# S
- )
8 s' d+ T+ p r( M" ^, d - )/ Q+ k) Q( F! ~# N) @: s! E; K
- ;;6 g, i) R( P3 T; u
- ;; List selections end up here
; p `$ a2 z, j' N* \ - ;;' ^' \' | w8 _0 X
- (defun ltlist_act (index / dashdata): W. S& r* B" u3 {8 _
- ;; Update the list box, edit box, and color tile& P5 s8 d& K2 ?, h3 P9 M, b
- (set_tile "error" "")8 J8 m+ I9 }/ W/ K, c) y& H
- (setq lt-idx (atoi index))
9 o6 ^/ R# {+ y% s; P! w# \ - (setq ltname (nth lt-idx ltnmlst))
5 P" V; c+ J; ?: `& x! v( l - (setq dashdata (nth lt-idx mdashlist))
. W/ }) e5 ?4 D [' ]5 l - (col_tile "show_image" 0 dashdata)
% y% V: B$ S5 D9 |2 a8 \# m - (set_tile "list_lt" (itoa lt-idx))0 f1 j! Q7 Y% u- g* ]/ H
- (set_tile "edit_lt" ltname)
$ h$ a& y7 b3 U* m7 E$ @7 h - )
8 T. K. i# L% D0 D - ;;0 `; g V8 @" l
- ;; Reset to original linetype when cancel it selected8 P& N0 v: S N. Q' S% |
- ;;
S* X. ]/ q1 [* r6 u - (defun reset-lt (). N: P3 q4 t8 y9 k) q
- (setq lt-idx old-idx)0 P8 v7 X7 P& ^
- (done_dialog 0)
# T: ?! }2 L8 O( Q0 B, ~: V - )+ U7 ^9 [& C0 h; |
- ;;
. U% a) R5 G9 m- E/ t6 N0 ? - ;; This function pops a dialogue box consisting of a list box and edit box to
F, W3 E! X+ x- Z+ c - ;; allow the user to select or type a layer name. It returns the layer name * @+ @1 ?( L- z( ~
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the 7 z( ~, m% a3 s( v- O
- ;; drawing.
% I: b) `2 U9 C" K4 y* T - ;;% B# R6 m$ F+ O8 k; O* H# k) g$ O
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
1 g! F4 i" z. [$ K3 U& W/ v - ;; Load a dialogue from dialogue file
! p5 ?' Q4 U7 e3 I: G - (if (not (new_dialog "setlayer" dcl_id)) (exit))
- p* H, p+ S$ N3 i7 M - (start_list "list_lay")
! Q, A! a: j" `7 f3 `. z - (mapcar 'add_list longlist) ; initialize list box$ I, I+ P' ]1 d4 e$ u/ u
- (end_list)9 t7 a* @! w5 z
- ;; Display current layer, show initial layer name in edit * P3 H! Q* c, a$ c' T1 p9 L
- ;; box, and highlight list box.
' ^3 \! Q8 ~; c; b% G" [- i - (setq old-idx lay-idx)' x/ ]- {9 W, c# r3 K
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
. V5 |9 h& k' ~ - (set_tile "cur_layer" (getvar "clayer"))) q- \* C8 K' K& H( ]
- (action_tile "list_lay" "(laylist_act $value)")
, a, V% y$ v) n: Y5 o4 j8 l - (action_tile "edit_lay" "(layedit_act $value)")
" c6 [) z" k; A - (action_tile "accept" "(test-ok)")8 k/ t9 S6 r: A8 k
- (action_tile "cancel" "(reset-lay)")
' S( B2 o! V. ^; a - (if (= (start_dialog) 1) ; User pressed OK c% y0 F6 I7 H- p( c8 t& e$ }
- (progn
- x& ^/ ^& M( S" B7 [2 p8 G - (if (= lay-idx nil) (setq layname "Varies"))& B0 y( @/ m# V! P2 d8 N- y& i; h
- (set_tile "t_layer" layname)! j! ~0 M8 t4 z: t
- ; If layer or ltype equals bylayer reset their tiles
+ {7 I& |% I$ l2 V) A- [( F, O) X - (if (= lt-idx 0)! G9 k! K9 h# X& k+ C
- (set_tile "t_ltype" (bylayer_lt))
0 D. S# R6 U, q# P9 d; K c/ j - )! [, d9 W0 s, P b, D- \% M/ N1 X2 F
- (if (= ecolor 256)
G5 M% c* s' ~+ y# a5 \ - (progn
1 r4 h* T- U8 g% X - (set_tile "t_color" (bylayer_col)) D& E0 H& w" |1 y! G
- (col_tile "show_image" cn nil)' `" p* u; Z2 g% a$ ]; `
- )
! [4 v7 z# C( q% [0 D" b - )
" J1 U0 L! B" ]8 R8 B' d1 I# o' N# n - layname
# `4 S- w5 J& M" e - )
7 S1 U. f; n" @9 p7 B7 D - elayer
( [' r, ^( {5 Y) w+ F - )
9 y8 [6 Q. `( D7 f5 T5 w - )8 S$ p+ a; }! g& {2 r
- ;;# ?" f& S8 A: h- V7 o- s
- ;; Edit box selections end up here
* l i! e% r, Q/ j - ;;4 e3 l0 j! C0 V
- (defun layedit_act (layvalue)7 R8 P: ?1 x; O' ^2 f X( @
- ;; Convert layer entry to upper case. If layer name is: P2 i1 ]7 \! S% b
- ;; valid, clear error string, call (laylist_act) function,. I9 m+ A3 ~' k' `( G! h7 Q4 j
- ;; and change focus to list box. Else print error message.
' A! Q% L% i8 K" g, U! T; @ - (setq layvalue (strcase layvalue))
- O5 @- W. O& S6 q - (if (setq lay-idx (getindex layvalue laynmlst))
9 r: X+ {7 [5 f V' ^' s - (progn
" c) z$ p1 q) f5 [$ Y) P - (set_tile "error" "")& C& V+ x2 P% }+ n$ G# W
- (laylist_act (itoa lay-idx))5 I [3 u8 I! m! A! z* i# N
- )
X) Z- ]2 I, m. v* @! W - (progn
3 T/ J! |2 ]' Z" `! L1 O3 B - (set_tile "error" "Invalid layer name.")4 ^$ D4 j' r: B0 v
- (setq lay-idx old-idx)
! u+ I% B" _& H1 q - )7 i( f% r8 T% k5 d
- )
* B6 A9 J& M- l - )5 Z5 y0 U. u. [) c5 b
- ;;/ {: U# a r5 K* I! k% M% J8 Y/ u
- ;; List entry selections end up here
8 I2 H- f) z+ S. w! v - ;;
- j) t2 E, b* k - (defun laylist_act (index / layinfo color dashdata)
" u% D8 g% n5 U! f2 {* c - ;; Update the list box, edit box, and color tile
) s; }. Y* s3 x& s8 g8 ~ - (set_tile "error" ""). [! Q0 O! g2 Z, d& O
- (setq lay-idx (atoi index))
~8 N$ B- r" v5 R4 j - (setq layname (nth lay-idx laynmlst))
2 f: o$ Y; F( {$ P" @" S4 k - (setq layinfo (tblsearch "layer" layname))
1 y+ q; }" a, Q k# O - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
9 @4 d& d+ h) y( m, P& z - (set_tile "error" "Cannot change entity to locked layer.")
9 F, G6 ]' d1 ?6 d/ ^. y - (progn
A( T* q$ o0 b5 [9 p( q - (setq color (cdr (assoc 62 layinfo)))
( Z$ A+ E1 g% q - (setq color (abs color))
, U" s( X3 H" P w7 E - (setq colname (colorname color))
9 @+ t; [ _( P6 Y: V, y( ^ - (set_tile "list_lay" (itoa lay-idx))5 g) C F! d8 z" j4 F. F$ h- s
- (set_tile "edit_lay" layname)9 e; A$ X0 q6 ^1 O1 s% f x; Q# H& X
- (mode_tile "list_lay" 2)
" k$ T1 Z$ ?6 v- A! F - )
4 V7 C' p3 i, i, E; g% q& i - )# f9 X2 I- ~; D/ r5 E4 }
- )
( i( [& W4 |- r0 j - ;;. \" o* V& x, U8 v
- ;; Reset to original layer when cancel is selected
9 f9 E/ {& J2 Z ^0 @ - ;;
. l/ ^+ o" Z! N# e5 O - (defun reset-lay ()4 t4 j; C1 X; Y' W
- (setq lay-idx old-idx)! y u7 Z5 g1 |/ c% o
- (done_dialog 0): D+ @; ^9 f, C+ a- B
- )' S4 R. Y( `$ }/ V; ^- B
- ;;
/ q/ A( x+ r6 ~* L - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
' t5 r: i6 i& Q! j: L$ I! u' r - ;; string can't be converted to a real, this routine checks if the first
, Z' P) Z1 m/ {) D6 j - ;; character is "0". It also checks to see if the value equals "Varies".
# x' \" D. Z+ K) P3 [. j - ;;" @! V% Z$ q) t( F
- (defun getthickness (value)
+ f) _: u8 C: y - (setq value (strcase value))- o4 _, j" [, C. r* W
- (if (or (= value "VARIES")
% h% U& F2 @. q5 s$ o - (distof value)/ U. ~1 i2 \3 |, U. w. T
- ) i V1 M& M+ [% v
- (progn* n+ v3 j& e. @) Z
- (set_tile "error" "")5 N: o- N# M5 x1 c1 q# w; `( `/ v
- (if (= value "VARIES")+ \* W" A4 f+ s5 w( }
- (progn, T% c$ P# M# }/ ?
- (set_tile "eb_thickness" "Varies")
$ n. H1 A; \/ P" D1 b - (setq ethickness nil)
: w% u: a& g2 i9 _0 ]+ n - )
, S. ^- ?- h. O! s' E1 i - (progn/ J' K7 ]# ` \/ J( O# M: L( e
- (setq ethickness (distof value))+ u* E8 d! r6 Z* }
- (set_tile "eb_thickness" (rtos ethickness))( @, l, h; C7 {) L) ~4 z0 V
- ethickness' U, ^3 H) f; r
- )$ R2 Z {% i2 ?* p: {$ }: F
- )0 [4 a9 h) j6 c6 K
- )
( H0 q- J" n1 B! x. ?7 {' @ - (progn1 Q6 _9 r: f( J8 P7 x
- (set_tile "error" "Invalid thickness.")
* ?3 T2 J& b8 w2 j - nil4 t* f: l0 T: G" ?# G, o- Q- ~1 M
- )
( a1 A' W; ]) k6 r& ]- f - ), w8 c2 w! f8 S d
- )# z9 ^3 W& @, I' g
- ;;$ Y* ^5 M6 g u2 h6 ~- w- ]
- ;; This function make a list called laynmlst which consists of all the layer
d0 W9 _$ Y# A0 R* g, e - ;; names in the drawing. It also creates a list called longlist which " y o9 Y. N6 S: O V5 a% }2 Y# Z
- ;; consists of strings which contain the layer name, color, linetype, etc.
" ~+ U1 m$ }' _+ V6 x! y - ;; Longlist is later mapped into the layer listbox. Both are ordered the
$ ]2 R' z+ E4 [1 }, z5 n7 P - ;; same.; `5 K6 V9 a3 A% e" X8 B x
- ;;
* M7 B0 c/ E% V - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname . H: {$ O, ^4 \
- xdlist vpldata sortlist name templist bit-70- N& V+ E+ b* w! G/ O4 C7 Z! c# _
- ); b p; u' T$ v- Z4 j
- (if (= (setq tilemode (getvar "tilemode")) 0)
5 P' e6 C/ A2 V& B - (progn: p! Y2 E0 X+ v- ~$ W2 ^% c
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
+ K$ U/ V& M5 o$ V! f - (cons 69 (getvar "CVPORT"))
7 d+ W' V4 m$ P5 ]7 ~4 M - ). y7 h# C" |. h" m5 W
- )' {* K2 ^, \, {8 ~0 C
- ) 4 W0 Q' r8 p) s4 ?/ E
- (setq cvpname (ssname ss 0))
5 W' i) X5 @* j6 c9 x - (setq xdlist (assoc -3 (entget cvpname '("acad"))))
. Z/ v; L* ~! u/ \# n+ k - (setq vpldata (cdadr xdlist))
4 V" G3 p" ~8 u" b - )+ l3 O6 w' {8 z, R/ m. p
- )
$ U% I- c$ t7 w6 x - (setq sortlist nil)
7 _4 T6 G& P. W4 ` - (setq templist (tblnext "LAYER" T))
6 h/ W$ ?+ h0 E% U1 M - (while templist( _! o3 n! m; t. {# a# @
- (setq name (cdr (assoc 2 templist)))
0 m0 S# m4 d h - (setq sortlist (cons name sortlist))
7 Q5 ]6 T, m, X - (setq templist (tblnext "LAYER"))
3 U' L$ G3 Z& M1 E - )
9 C! `6 R! ~/ s) w - (if (>= (getvar "maxsort") (length sortlist))
( b/ r. t* U; M/ [. P# M - (setq sortlist (acad_strlsort sortlist))
+ Q) A8 p3 u$ \ - (setq sortlist (reverse sortlist))
" q" O6 Q! u2 A. q6 J% T5 e3 k - )
- ]) v3 o' c& A7 {/ g q. t4 ? - (setq laynmlst sortlist)
. [! H( ?7 }& K: {# H% t: ~ - (setq longlist nil)* I* \9 u! Z+ k1 o) w) H
- (setq layname (car sortlist)): y( G. L s/ u: L6 ]. T/ y
- (while layname+ O9 w9 B) B+ {, n6 V) T( j) ?6 {
- (setq laylist (tblsearch "LAYER" layname))( n- X6 L( j7 H/ T
- (setq color (cdr (assoc 62 laylist)))$ a; V, B( g/ z& h. Q$ U9 O
- (if (minusp color) N: Y% y: K/ _
- (setq onoff ".")3 t) c9 L) K% K' t
- (setq onoff "On") y' H, \5 F* V, f* C9 G0 D0 H
- )
R! x) {, m1 l3 t - (setq color (abs color))7 ~) r' B' i4 i1 o3 @
- (setq colname (colorname color))
1 K5 B: w, Y. x* F- w# t1 G ]7 ? - (setq bit-70 (cdr (assoc 70 laylist)))
& L$ E3 g9 [4 S3 u) e, ` - (if (= (logand bit-70 1) 1)
9 E. o" X3 b1 N0 [2 }2 x7 V/ W - (setq frozth "F" fchk laylist)
3 T' @' q, X ~0 q - (setq frozth ".") R! \" U: z* X
- )
: S, [9 G! e( D+ K" N - (if (= (logand bit-70 2) 2)& C2 W4 X8 c3 l6 W/ j- U
- (setq vpn "N")! ~ [ f5 ~5 I% W$ \
- (setq vpn ".")
0 Z$ t9 k3 p- `6 |. A7 U6 ~ - ): J/ F: \5 S, Z: U! C1 C6 G# R
- (if (= (logand bit-70 4) 4)
# x0 g% u% Q" o7 O! c% a4 m - (setq lock "L")
4 D, e8 z6 O4 C6 d& m' H - (setq lock ".")+ p7 N7 _" [! M* E7 O9 O8 {: L
- )4 }6 @4 z+ M4 C( I- ]7 v. j1 K& U
- (setq linetype (cdr (assoc 6 laylist)))! w m# n7 W9 K9 ]
- (setq layname (substr layname 1 31))
4 r P$ |& e C4 A, V - (if (= tilemode 0)
- U/ }3 B8 t- f - (progn3 m! {+ T+ L4 y+ V1 N
- (if (member (cons 1003 layname) vpldata)/ A2 A5 N) t. C; W* c: t$ i
- (setq vpf "C")
8 q* \% g/ K U2 w) {( U - (setq vpf ".")
4 @' X) i% p7 y; i2 @ - )
9 _! x# |6 U4 r - )1 j% F. p; [! Z* a( E# H* w3 _
- (setq vpf ".")1 w! ], A1 Z( {4 ]0 y% z# b+ `
- )
' z! W7 Y7 L* X1 i - (setq ltabstr (strcat layname "\t"7 w) _2 Q: L, T8 w! m
- onoff "\t"' q+ c) M, L/ A5 O3 v
- frozth "\t"$ c) e$ s! b5 s) @
- lock "\t", d: Z: N" v) _1 @
- vpf "\t"
H, P2 L8 U- g5 T! l5 T2 ?: j - vpn "\t"
( d( B, Y' s! g+ a& V - colname "\t"
6 `2 s3 T5 t. n1 N* M, l - linetype- S6 l1 t: `9 [- X' d
- )# [# l* q9 b$ ]9 b$ D- s6 o
- )
- h( [. Y* i% n: t2 ~2 d - (setq longlist (append longlist (list ltabstr)))2 V0 [0 R6 E& d, X, w1 b- H
- (setq sortlist (cdr sortlist))
8 E, `' g- F! k* u) V( Z) J4 { - (setq layname (car sortlist)) K! t y8 ? w- \! T3 }# K# t
- )
9 C8 b c# A5 ^$ Z9 W/ h - )
1 k: M0 h, s& ~1 `7 m4 o" M. o - ;;5 k# {6 N7 R1 L4 _ {
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
: U% a! g) K5 m - ;; linetype names read from the symbol table. Mdashlist is list consisting 1 J' e' l* s) W! J K& ^* a- t2 R
- ;; of lists which define the linetype pattern - numbers that indicate dots, : x$ x5 b9 ]; S' \: }$ V, C' a
- ;; dashes, and spaces taken from group code 49. The list corresponds to the 4 t2 b% {* q9 P. n" S: U# Q
- ;; order of names in ltnmlst./ L- u' M6 g* ^+ d
- ;;+ z1 D8 O% R; t* ^- b. m
- (defun makeltlists (/ ltlist ltname)& P: T" L% f Z& P7 n, e# L
- (setq mdashlist nil)- n5 G) E: K, Q9 \1 o
- (setq ltlist (tblnext "LTYPE" T))
% ~; U! r. H7 G) U) f - (setq ltname (cdr (assoc 2 ltlist)))9 p! x2 ]0 y8 u3 j6 Y0 C7 j
- (setq ltnmlst (list ltname))" x5 C; w7 m! p( A! s$ A
- ! e- B9 x3 p+ x, i! I2 I
- (if (= ltname "CONTINUOUS")
' @; F, L- ? r# ]4 R: M- V# j - (setq mdashlist (list "CONT"))1 c7 H) N2 I' ]" t1 X) ^
- (setq mdashlist ~ p7 V5 y' N0 @/ T
- (append mdashlist (list (add-mdash ltlist)))
( ?2 U# \( I3 J' N/ X1 e% ` - )
/ u0 R l9 k. q$ \% X+ ^ - )
W$ w h w1 ]4 _ - (while (setq ltlist (tblnext "LTYPE"))
" v3 g: n3 m* @ - (setq ltname (cdr (assoc 2 ltlist)))
& [/ \- s4 f; U4 ^' z# y( I4 M - (setq ltnmlst (append ltnmlst (list ltname)))- {9 c) c- n3 ?( B2 | f
- (setq mdashlist 5 ~3 m2 N. E: A2 z9 H
- (append mdashlist (list (add-mdash ltlist)))$ ~1 g7 e0 S9 U! N @3 b
- )
. N: r7 @* e b0 d - )
8 D% R9 [! ~! ^& I# ] c- v - (setq ltnmlst (cons "BYBLOCK" ltnmlst))* d; F% |7 ~* f! n6 R- f
- (setq mdashlist (cons nil mdashlist))
2 s" v8 l! U- h3 x( s - (setq ltnmlst (cons "BYLAYER" ltnmlst))
* o) |) F) t ]. F. M0 C - (setq mdashlist (cons nil mdashlist))
2 `7 T3 D% M* e9 P4 d7 o) j - )& Z6 y/ g: g0 s% _
- ;;
6 j0 h1 J' B" i2 E( @ - ;; Get all the group code 49 values for a linetype and put them in a list 1 | S& C7 S1 {
- ;; (pen-up, pen-down info)( N% L7 ^1 y {1 n# `. K
- ;;3 n( m! e- n6 d
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
4 V) D, a# c6 D& F) i5 p6 T - (setq dashlist nil)
5 z- j& ?1 \# U& Q - (while (setq assoclist (car ltlist1))! ~; ]1 U$ h5 x: D7 \# _
- (if (= (car assoclist) 49)
& D' {* Y& X8 ~$ ]1 o3 q/ G: f9 l1 G8 w - (progn
) W! H) _5 j" r3 ?9 R1 _4 z: z - (setq dashsize (cdr assoclist))& ]1 B$ A& t0 ]# i0 K( ^6 c- y
- (setq dashlist (cons dashsize dashlist))) h p! t6 j. B: @
- )4 K+ k; v& y% r% m% b7 w4 k2 ^2 K& {
- )
3 _" m% w" r! l+ R) Z - (setq ltlist1 (cdr ltlist1))
; J/ D; M$ w4 z; s2 b - )& D+ {: _% r( Q
- (setq dashlist (reverse dashlist))
! F. z% |+ R9 {( v5 A - )" D) ~5 V, m! s( P- y
- ;;
* i" p2 w2 Z, q t - ;; Color a tile, draw linetype, and draw a border around it
2 K2 d: t0 ~# j9 C - ;;" N; t& q( g' i) X- i
- (defun col_tile (tile color patlist / x y)8 n1 c4 z! g- T/ V# [
- (setq x (dimx_tile tile)) P; e# M4 r {* s+ A0 @
- (setq y (dimy_tile tile))
, k% {8 [: s" P' P6 G6 D- b - (start_image tile)
/ i1 [+ E3 Y; ?/ P S - (fill_image 0 0 x y color)
9 G. y7 I6 Z+ C - (if (= color 7)
% E# f9 y7 W( j, F# @" `+ }, V - (progn
: I' T8 Y5 k: S8 E - (if patlist (drawpattern x (/ y 2) patlist 0))
$ [4 {: D8 ^7 I1 u+ t+ W* _+ p - (tile_rect 0 0 x y 0)
$ W& U; @* v) O7 \1 P - )3 h+ z/ b8 B6 x! g
- (progn% u( l" c, C9 H1 j& g3 f
- (if patlist (drawpattern x (/ y 2) patlist 7))
; f9 L& V0 X2 C0 q* s' t0 n. v - (tile_rect 0 0 x y 7)* E( L6 J9 C* z0 V" ?% i
- )& [4 @( ]4 N9 r9 o0 s
- )
# o1 d1 z: t$ E - (end_image)- d1 q1 \5 ?0 z% y
- )
; [& G; [% V+ `+ }& r9 O+ Z - ;;
! i6 U. u% i, ~4 ?# \, m0 W' W - ;; Draw a border around a tile3 R7 ?9 I1 {# {/ E
- ;;6 q. y6 |. T6 U6 z, ~
- (defun tile_rect (x1 y1 x2 y2 color)4 x! ^* Z( j1 |$ Y# W3 d
- (setq x2 (- x2 1)): e8 @% q" p* _
- (setq y2 (- y2 1))
! X% w. c9 o6 Y2 g. P - (vector_image x1 y1 x2 y1 color)* l+ F. J2 G" [% B
- (vector_image x2 y1 x2 y2 color)# A3 t; ~4 O/ W
- (vector_image x2 y2 x1 y2 color)1 d' H3 }7 L9 |1 C3 p
- (vector_image x1 y2 x1 y1 color)
+ x% c' R0 N3 L. r - )
; y: H y) y7 Y$ @" N6 F. s - ;;2 Y5 @( n6 e& ]! p) V u" O- v, d
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image 7 d# z- z+ e7 F$ `) z, I
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
3 b$ N8 s6 N& F8 d+ B0 n- Q - ;; list of numbers that define the linetype, and color is the color of the
% y) c) u) p6 y1 P - ;; tile.$ @2 x5 X- ]' T2 x3 Y
- ;;
) p1 @" e$ |0 Y7 ` - (defun drawpattern (boxlength y2 pattern color / x1 x2" H; n* \9 Z) G, N
- patlist dash)
5 Y- c# i5 f3 [9 S t - (setq x1 0 x2 0)
3 s. @ _& a8 H5 b7 G0 m( M - (setq patlist pattern)' M' H# L( E; X/ ^7 L0 Y+ }: v1 r
- (if (= patlist "CONT")- Z! |0 B S1 |- R+ _: ?( ]
- (progn
2 j% b d/ K2 R; `- v. G - (setq dash boxlength)
5 l% J6 B* j2 Y" J - (vi)
! g$ c2 O+ D/ ~. B. K% E - (setq x1 boxlength)
" g8 X" |; h' G4 h - )
/ O2 z+ W( y( V- Z5 E - )+ U% h5 G- Q9 \" c8 }: Z/ {* r0 [$ a0 K
- (while (< x1 boxlength)
' {6 |" N2 m- T9 h$ ] - (if (setq dash (car patlist))+ a4 i3 ^+ z- q( h7 v' C
- (progn8 n9 n9 [: z7 G7 n: @% P/ r
- (setq dash (fix (* 30 dash)))$ G9 V, v. N7 P: Y2 d W
- (cond
/ U7 w6 |, v) O7 d; Q - ((= dash 0)
! v0 k1 \) Y1 \: _7 P2 g* E - (setq dash 1)
9 b5 T& T% \/ p+ A4 p1 v - (vi): f' A5 g, K) B' q T5 H
- )
4 |% x8 } S7 b$ | - ((> dash 0) 0 T/ P* } g2 j- \" Q
- (vi)( L3 j. x9 U! B) P/ F
- )
2 Z0 j( K) q8 v - (T . _' w H& B9 j9 v
- (if (< (abs dash) 2) (setq dash 2)), J4 {( v! {: g9 [- A1 F
- (setq x2 (+ x2 (abs dash)))
8 k4 v/ H5 a4 l4 j1 E9 G: _ - )3 t) ?( _+ ?; s P0 [( q
- )
) ] p& u0 r, u6 d. N& t - (setq patlist (cdr patlist))
3 |' e& j: X2 H+ I - (setq x1 x2)
. J, I- y5 s+ Z - ); l, {9 E, n7 G% q
- (setq patlist pattern)
5 K7 R% B* [/ Y+ \8 X" G! L - )
. @& I, I: T( p" b, P0 h - )
+ j. a) E9 ]( T* [: a - )
8 Y% k3 t. G- {. C: o - ;;
6 X* N( R5 B0 W - ;; Draw a dash or dot in image tile1 H4 O3 f6 [4 W7 L
- ;;
0 {0 U/ C' \% g - (defun vi ()$ [. Z% p6 L- j6 [: b
- (setq x2 (+ x2 dash))
% `3 f7 }4 D5 b - (vector_image x1 y2 x2 y2 color)
8 J$ X, L" g* d& d: k2 z1 K - ); K; x% a3 f* F" `
- ;;
- I* L6 i, i% Y8 `6 u - ;; This function takes a selection and returns a list of the color, linetype,
4 V8 V$ p/ M+ o' b. z8 m6 e - ;; layer, and thickness properties that are common to every entities in the
7 Y+ x" l! ~7 m w" o - ;; selection set - (color linetype layer thickness). If all entities do not
k7 Y7 t- f! ^. H" } - ;; share the same property value it returns "Varies" in place of the " a( U" q: E( b5 u0 l$ f
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
z* @6 z& N# [/ s - ;;6 z: O% n2 O6 Z2 n' g. E+ A* K
- (defun getprops (selset / sslen elist color ltype layer, u# L" F; T8 f
- thickness go chk-col chk-lt chk-lay chk-th ctr)
: W% b! Z; Q8 @2 U* x - (setq sslen (sslength selset))
* x3 n* c9 l2 l# R - (setq elist (entget (ssname selset 0)))
. @: V, {. P$ Z3 P7 M - (setq color (cdr (assoc 62 elist)))6 ]. I- p, O- g& Q3 `8 G+ M
- (if (not color) (setq color 256))
$ w" H1 ]7 E6 {0 H - (setq ltype (cdr (assoc 6 elist)))
- x; v4 m' ]) C9 }* y* {; L! ` - (if (not ltype) (setq ltype "BYLAYER"))* Q2 ^8 _6 P& ]
- (setq layer (cdr (assoc 8 elist)))- ?1 J5 _, y' j# F" F
- (setq thickness (cdr (assoc 39 elist)))$ o4 i4 S8 G7 m" K8 t3 `% M! ^
- (if (not thickness) (setq thickness 0))
" [% a2 w" O# p3 g - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
8 B) b* D- N2 L# _$ b- c - - t( }& g/ F. U1 {2 [
- ;; Page through the selection set. When a property
. k, [# R$ ~7 k( [ - ;; does not match, stop checking for that property.
' W. L5 M2 P, }7 ]% P8 {- \ - ;; If all properties vary, stop paging.- S0 P& Z$ L9 |4 Y& z" }2 i
: H7 }" ~& y3 Q. z5 Z# J- (while (and (> sslen ctr) go); w0 D: N: ~* I7 ~4 [; s+ C0 f
- (setq elist (entget (setq en (ssname selset ctr))))5 _; K" r9 Y3 ]: L9 A
- (if chk-col (match-col))! n$ Q8 \4 r2 v3 b. u
- (if chk-lt (match-lt))- U$ L2 [2 s: \+ G! F s+ R6 Q
- (if chk-lay (match-lay))
; H& D; `4 T Y: p" C - (if chk-th (match-th))# ~3 ?5 _$ w" p
- (setq ctr (1+ ctr))
1 ]3 [' M/ S+ t7 X; s' b - (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
( B/ w9 l# d6 I. l( T6 ~0 w - (setq go nil)
: X+ A& z1 |$ ^7 U - )" h" T+ @2 v$ u
- )0 Q0 ^# H( O# n. ^
- (list color ltype layer thickness)
0 }: H# E: }# H% p* m, s - )# i4 g0 y: R7 G% V
- $ j3 r5 E& A" C0 K! a
- (defun match-col (/ ncolor)
2 x$ F! P% a- z! T9 O% t4 C - (setq ncolor (cdr (assoc 62 elist)))+ L) D6 m! F; \& r
- (if (not ncolor) (setq ncolor 256)); H, _+ A! v& ]3 o+ k Q
- (if (/= color ncolor)2 z# d( I* J# Q+ @1 ^2 N/ J
- (progn
2 @8 q/ m5 D* R5 I - (setq chk-col nil)& ^! R0 S* f' r9 X% G. F$ ^
- (setq color nil)
! c: ^# J( x" l - )% s/ f, k6 e( J' l9 g3 X( e7 ~
- )- G0 w) p- m j0 x# T' K
- )- b4 K8 N5 H& c- v0 D' k6 X
- ) x A& e, A0 a h
- (defun match-lt (/ nltype)
2 Z$ s9 i& J$ `" ~/ k( ^' E# Q3 l0 p# w - (setq nltype (cdr (assoc 6 elist)))
o6 @& \( ~& B8 \+ j" [* ?) x - (if (not nltype) (setq nltype "BYLAYER"))
# R2 ?: p% d+ j3 m- E, c - (if (/= ltype nltype)
$ y# k& A- B4 }6 ^% S - (progn. ~! \, x5 \% E( O* N
- (setq chk-lt nil)
* F5 @ S7 K' ?! A. s& @ - (setq ltype "Varies")
" R2 A8 t. x' o - )9 q( D" k4 \9 A$ Z! f
- ): x/ M$ \% a) ]4 ^% N x& Q1 R
- )
7 u0 p v2 _/ o - 0 x0 \ w i1 J; [9 J$ ]6 g
- (defun match-lay (/ nlayer)+ j; a1 A4 f% w; ^0 E) R+ y$ d
- (setq nlayer (cdr (assoc 8 elist)))
2 _) ?. V, W" L* F - (if (/= layer nlayer)
+ e3 L' I9 j) y" ]4 U - (progn
. u/ s* J0 l- t: u. C9 h7 A8 t: a, p - (setq chk-lay nil)6 `- V; H3 R6 k
- (setq layer "Varies")
4 ^( R0 }/ z/ s - )* x% P) u: `7 P% {& O" z7 D4 y
- )
2 K9 s3 j( u, |% ]8 K; i - )
# Y, w' d: D: c; W - 8 O5 u. j' b. S8 c: P5 L4 A
- (defun match-th (/ nthickness)' p" k( _ U% [( z0 n- b1 I; D* x
- (setq nthickness (cdr (assoc 39 elist)))
k, M, G s% q% | - (if (not nthickness) (setq nthickness 0))
( ]2 T$ O4 ~3 Q3 z6 K, k - (if (/= thickness nthickness)
8 {4 E6 [: {/ `0 _ - (progn; _ B8 @3 w* b& c9 S! y
- (setq chk-th nil)
- H) }# X3 p$ | R! Q - (setq thickness "Varies")
2 c8 F8 ^% T6 b% C# v1 t - )6 r6 L, n9 w& K# I( @
- )6 C4 b1 U& ]- w9 R$ c) H
- ); l! M1 \6 i3 t0 r
- ( X) a5 W a! ?( v9 M
- ;;
9 M' N# M# K( p0 ^ - ;; If an item is a member of the list, then return its index number, else / f5 b, z( r; M
- ;; return nil.; ~) B8 f' a+ U' ~& J! E0 q
- ;;' M& |0 x, u' V0 [( Z5 ~
- (defun getindex (item itemlist / m n)$ A( _" e$ C1 Y0 o- y9 |
- (setq n (length itemlist))
( t4 ^1 S! q: y& a - (if (> (setq m (length (member item itemlist))) 0)
. T6 e1 X% Z# y$ I - (- n m)6 D7 ]" z2 r* E% m& S6 o# d+ [
- nil; K& {0 Q( [" k3 l; y* I0 S7 C
- )* v6 x5 L/ y \3 V" ]
- )
' ~1 }) B8 f, h# U9 L - ;;# ~) e( p% M8 A" i3 D( V/ A0 G( ~5 _
- ;; This function is called if the linetype is set "BYLAYER". It finds the + S2 I' e( Y7 d6 U2 e* x \, O
- ;; ltype of the layer so it can be displayed beside the linetype button.
* X }% F5 P5 n - ;;5 @2 F+ f) w/ c+ L* k
- (defun bylayer_lt (/ layname layinfo ltype)
" b2 N3 {1 ]) p0 |! H - (if lay-idx( u* O. z7 k- k- `2 x0 S
- (progn( k( x: k, U& a8 d9 M; v
- (setq layname (nth lay-idx laynmlst))7 H. q& b; ]8 E l! y
- (setq layinfo (tblsearch "layer" layname))
, H8 Z+ u6 @, E/ F* i - (setq ltype (cdr (assoc 6 layinfo)))
' O$ u; |& p2 E2 e3 }' z - (strcat "BYLAYER (" ltype ")")$ `. ?* i- ?' a
- )
Q7 ]0 N/ z) t4 y5 ?( Z: P. n - "BYLAYER"
0 ` {/ G( e Z; c/ m/ o1 @6 O) U - )0 O! L% W8 D3 g: O8 X
- )
- h# q7 I( T8 N0 n9 { - ;;9 U& ?+ S' r* F% g( {
- ;; This function is called if the color is set "BYLAYER". It finds the + f4 _& n7 S9 i) Z' K' w/ ?6 E( e
- ;; color of the layer so it can be displayed beside the color button.4 i( g5 p- u! h A& k$ @, d3 k$ V
- ;;3 e* }; @! r" M2 M) J" I- q3 N+ X' Y, V
- (defun bylayer_col (/ layname layinfo color)
% Q1 h0 G. g" Y - (if lay-idx
4 N8 b9 M1 j, q- f; a - (progn
7 k- f8 V2 [% m' \" A - (setq layname (nth lay-idx laynmlst))
8 d" t9 `& n7 @ }9 K - (setq layinfo (tblsearch "layer" layname)) F5 O5 l1 {8 p( B/ k* q# r
- (setq color (abs (cdr (assoc 62 layinfo))))
: G4 Z t5 b3 e - (setq cn color)
Y& j& k/ Y' s - (strcat "BYLAYER (" (colorname color) ")") H$ `+ v% w5 y# r8 }
- )1 i- Z& O- e6 a# n0 l
- (progn
9 m) C; g! V- A6 a- a8 ^8 Q - (setq cn 0)# H! r- e& O B1 ]5 u+ J6 x
- "BYLAYER"
# K% B5 S& }1 o- R" [ - )) X5 S# }. [7 x# k5 B
- )
. {4 r2 N& ]! v. g$ I9 H - )
8 p. o L+ Z7 O& K4 I - ;;* @7 }7 G+ n; U
- ;; If there is no error message, then close the dialogue
2 u5 `1 A2 ]: c- q' B6 p' T; D - ;;) K/ ^5 `# A! m4 J0 G. F) p- d
- ;; If there is an error message, then set focus to the tile1 ]; u; [* J) N+ A- F7 o
- ;; that's associated with the error message./ }& D/ q9 K/ I9 H, F
- ;;; d2 t. |$ C0 {9 b! L) L! s
- (defun test-ok ( / errtile)" A9 N% f: x1 l: `, v( z9 n: z3 S: _+ `; s
- (setq errtile (get_tile "error"))
8 q+ q" L; i$ K7 G- j4 c; j! ]- { - (cond
. H2 Z9 }- U. O- i8 Q$ o% Q+ T4 G - ( (= errtile "")
0 V% p8 U( g0 k7 p- c; } - (done_dialog 1))" A* R, ~- t1 Y# W2 ?& \8 ^2 g8 A# W7 w1 s
- ( (= errtile "Invalid thickness.")7 f0 z% f' E5 |: _' S& o
- (mode_tile "eb_thickness" 2))
* g3 k8 H+ j) s* }* p! f+ P - )
& @5 u: d$ O+ o6 ` - )& p$ g2 l0 ?) @: z n' X) B
- ;;
: j# q i( B2 @+ T4 \3 `0 r - ;; A color function used by getlayer.
- Q5 H3 g) D2 u- O6 h( N. c7 r - ;;6 I8 x3 a4 @, R. n! K# [( ?/ n' w* Y2 `
- (defun colorname (colnum)
# t3 g z2 q8 l* ]( ]" b; A" T - (setq cn (abs colnum))
8 P) _; P# S+ F, R - (cond ((= cn 1) "red")! a7 _9 N( r4 _! g* \1 c5 m8 v
- ((= cn 2) "yellow")2 q2 s* s' O' I1 @5 {' u8 z
- ((= cn 3) "green")7 I/ r3 x1 ^8 z! C+ P1 ^/ U! m
- ((= cn 4) "cyan")6 I- B/ h: A5 a
- ((= cn 5) "blue")
5 B7 K" e% i2 k - ((= cn 6) "magenta")
, E3 a* `# ]& v) C7 D- m+ m - ((= cn 7) "white")
* S9 A' ]% g! S - (T (itoa cn))
* h0 Q" Z/ X) V9 V( X9 Y - )
# e: e9 w' e; H2 v: ~9 T - )! c6 f/ u" }$ R) X" X1 m
- / Y( w S+ s/ X: I. G
- ;;; Construct layer and ltype lists and initialize all9 y, W7 a# b' |# [" k7 O
- ;;; program variables:8 c# u4 ^0 O( \& N' l2 y
- j$ L( n# U" b8 U/ }) T+ c- \- (makelaylists) ; layer list - laynmlst
1 }7 R! g" f: A* W - (makeltlists) ; linetype lists - ltnmlst, mdashlist
( R+ Q& [3 S0 v/ D4 D5 C$ g; F - ;; Find the property values of the selection set.# e6 l5 X0 z' F4 b, L' ?
- ;; (getprops ss) returns a list of properties from
9 x9 ]6 P) H: H7 ^/ `8 H - ;; a selection set - (color ltype layer thickness).
* C" H5 a4 b+ I+ r. @ - (setq proplist (getprops ss))$ s u! `& ? H Y S7 Q: v
- (setq ecolor (car proplist))
% C. O4 ]# M. C8 H - (setq eltype (cadr proplist))
* ^$ ], ]# A' o3 {( `- Q - (setq elayer (caddr proplist))
8 P. K2 J3 d6 b% K% a7 N8 n! _ - (setq ethickness (cadddr proplist))
" p5 u3 Q6 G6 C8 r" l( B, u+ c* j - ;; Find index of linetype, and layer lists9 o: a. l6 a9 z3 S
- (cond5 d3 E1 _9 A2 C, J
- ((= eltype "Varies") (setq lt-idx nil))$ P1 i5 r* F8 M7 _* V
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))9 S$ s2 M/ H f: Y
- ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))) O3 R+ o8 w/ _9 I* i: N% H
- (T (setq lt-idx (getindex eltype ltnmlst)))5 _( H8 h) N! d _8 u: _
- )
- e# f5 m! u- z2 X* S - (if (= elayer "Varies")
& m( J6 X7 B7 H4 U - (setq lay-idx nil)
: S0 q: a% Y) D5 V7 @# t( G9 X - (setq lay-idx (getindex elayer laynmlst))
4 ~1 e/ X! @& k1 @+ n+ e. _ - )! _6 R$ I" ~. o: `
- (if (= ethickness "Varies")
9 q5 G3 @; ^7 g - (setq ethickness nil)
8 @, [- V/ S& N! |) _ - )
5 \6 X: f6 ^) y3 ~1 B- C& P - ' K) |) V6 [$ H5 D( X# h5 X
- ) ; end (ddchprop_init)
+ w3 r# P$ M- D- G2 Q4 |
6 C7 O5 `( s) [. h9 L* H- ;;; (ddchprop_select)
* I. J* e2 h% ^2 P% y. ?: T+ c - ;;;
2 f ~6 q: o. h" v - ;;; Aquires selection set for DDCHPROP, in one of three ways:6 P- P" O! d7 l+ Y( {
- ;;;
" l0 [ o( \! k - ;;; 1 - Autoselected.
% a) E6 L3 a5 M4 B' ] - ;;; 2 - Prompted for.
2 R1 n n9 k. e! A1 D' [; P& u6 h - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
, X3 G) X t R& s# |9 d - ;;;
# ^; L' z1 _; B - ;;; The (ddchprop_select) function also sets the value of the) C7 R9 ^$ M/ g) N0 U0 e0 W
- ;;; global symbol AI_SELTYPE to one of the above three values to
$ @; |- d2 T/ T; Q4 B! B) M - ;;; indicate the method thru which the entity was aquired.0 L$ a: t H8 g! C6 r' g3 T
$ e, }2 |# X; D
* f2 v, i9 v, o' q. q& P& f2 Y2 @1 I- (defun ddchprop_select ()4 D# ]; r9 A$ h) L/ d
- (cond0 q) ?! U7 w4 y B" H
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
0 J# J4 i* J2 a, k - (cond ; (ddchprop) as argument
j; u, N9 G. C+ u, H4 C% X+ V4 m" ] - ( (not (zerop (sslength ss))) ; If not empty, then! s. j. c# U5 A$ }, s5 r# ]! y
- (setq ai_seltype 3) ; then return pickset. k/ f' F' {8 T# Z( g) f( ]
- (ai_return ss))))
1 L! H: u/ a' a7 Y0 @9 [) | - & Z4 h/ |( n; c$ E
- ( (ai_aselect)) ; Use current selection3 Y. Y% ~, I6 I) M$ J1 s, m
- ; set or prompt for objects. Q: N, J) {1 a* S2 |$ z4 D
) E8 L x8 X$ B! Z# o4 g- (t (princ "\nNothing selected.")( ]+ P# v* V8 r
- (ai_return nil))
( C; g* R4 O0 O% @8 v' [( H7 z4 {8 {$ O - )3 y* o8 v( F$ S. g3 M0 O- A3 E9 y
- )+ h4 y" E$ q" \) ]# R: i
& R! c. g/ R/ @- x% b- ;;; Define command function.! }5 s' r7 G7 k/ `# T' R
- 6 m+ ]" `" U3 k* p8 y
- (defun C:CH ()6 I' e5 \- C/ _6 ]
- (ddchprop nil): T, `" H6 s5 }4 T- ~
- (princ)7 u1 r# S/ C$ Y' R6 c7 ]
- )2 v1 h' I! O3 _& d
+ E: l$ K$ B+ k. ?* z
$ {% H; N* H' o: ?% N3 s, k- ;;; Main program function - callable as a subroutine.3 k" |' a) E- b: L( S4 a
- ;;; @) X3 w$ k0 U; D8 z. \
- ;;; (ddchprop <pickset> )
! I- O0 M' P1 z' u& h8 J - ;;;1 u4 p/ F/ ?2 Y
- ;;; <pickset> is the selection set of objects to be changed.
. e# O. K( z* B1 y5 U - ;;;
8 [! J$ ~: v" d' b! m5 V4 k - ;;; If <pickset> is nil, then the current selection set is
@) ` n/ D$ i0 {+ R3 k - ;;; aquired, if one exists. Otherwise, the user is prompted- x& o: n4 R7 n- r
- ;;; to select the objects to be changed.3 L' ]* c- x1 ]
- ;;;
7 O9 r4 S) Z A; t - ;;; Before (ddchprop) can be called as a subroutine, it must0 z8 I5 _0 \$ N1 p' b. v. G
- ;;; be loaded first. It is up to the calling application to
3 l4 }. O# R4 v- r1 o+ @# j B, }( W2 w - ;;; first determine this, and load it if necessary." T+ [' Q. ^) Y8 w# H% [, f% K
/ ~: d3 p0 G8 p- (defun ddchprop (ss /4 e: @/ x8 v5 C, Z9 w1 f! n# j
) W& y; o% y: |. x' `& i, e8 r- add-mdash ecolor ltedit_act s
# N4 Z% t7 M, ]2 W7 o; X' } - assoclist elayer ltidx selset, i+ u* D- L& }
- bit-70 elist ltlist set_col_tile
( A# E0 c4 l" Q) V" E g - boxlength eltype ltlist1
" u" T: A" T$ S4 v% L - bylayer-lt en ltlist_act sortlist
* |. n, `* b6 x- M! r; w - bylayer_col ethickness ltname& C" x e* T* J. z9 V! I! o& U, h
- bylayer_lt fchk ltnmlst sslen8 M$ J; o" J# r4 a; P
- call_chp frozth ltvalue templist
' Q7 x) w$ `7 s* A - chk-col getcolor ltype temp_color( p$ t* G$ I3 }, ^" M+ E
- chk-lay getindex m test-ok
1 H b$ h. X. m1 j- e" b, _ - chk-lt getlayer makelaylists testidx) Q' i# x0 ^! K: y/ E+ `
- chk-th getltype makeltlists testlay' F" m m/ [4 u' s5 o
- cmd getprops match-col th-value8 C1 @& C$ j# H4 F
- cmdecho getthickness match-in thickness
8 K' v9 v5 ~% g+ G$ [ - cn globals match-lay tile* n$ ^' K0 I9 }" o
- cnum go match-lt tilemode+ N. M; X! b0 W4 @
- col-idx index match-th tile_rect
5 p* z; ~4 i1 F. X: ` - colname item match_col vi
% n: ^ I/ T. p - colnum item1 mdashlist vpf
0 D% b( ]' d# L# P - color item2 n vpldata
8 ~# S% T! A& k0 S7 K, m, f - colorname itemlist name vpn
2 h8 ]3 o. [1 m- ~: U. g" o - col_def lay-idx ncolor x
5 r# m' N* e# I6 S* w8 D& i! c - col_tile layedit_act nlayer x1
+ Y% F6 R/ |- r3 c/ E - ctr layer nltype x2
5 S1 z' V m n, h4 N/ O% |% E - cvpname layinfo nthickness xdlist
6 K8 X5 i! Y: `5 h: C6 | - dash laylist off y* q/ Z, k) S" J7 U- [; H6 o
- dashdata laylist_act old-idx y1: N) G U/ h: \9 t0 a! W
- dashlist layname olderr y2
4 z. p* c# L( [ - dashsize laynmlst on undo_init
8 \9 D; J- r% @" _. |' C - dcl_id layvalue onoff
) b: E$ G; B' C. J- k& u8 K - linetype patlist
9 ]' _% w$ w! q- q4 `7 g0 } u! j - ddchprop-err list1 pattern
# ~5 Z, O. X: S$ l9 V& X - longlist proplist6 U! ]; N* Y$ G* @: M
- lt-idx reset-lay
8 P# |3 H. K1 y7 B! R; c7 e1 j* r - drawpattern ltabstr reset-lt
6 Y5 b" [6 l' O - )
8 ?6 d, S8 R: k) e6 X. u/ \
/ d2 {2 L" v! y& v- w+ A; s/ J4 ?' F2 t' t- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
. J) W; e) j' H' ^2 E+ Z. S - old_error *error* ; save current error function' W7 ~6 w9 C; [/ Z, N
- *error* ai_error ; new error function4 Q/ n" p2 J# k& t0 |' c% ^- x
- )
- ~4 h4 `5 A: N2 p+ `
7 h) m7 d4 D/ x$ H- (setvar "cmdecho" 0)
" j* e# W2 S" ]3 A, c" { - : z3 i" T$ ?1 B$ k
- (cond, C9 V* Z: ~% a
- ( (not (ai_notrans))) ; Not transparent?
6 E2 O q5 K& _' D5 F - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
/ L# P/ k0 M1 q0 } A8 a3 G+ u - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?6 g! D( G) W! g
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?8 t! w/ U4 Z, Q2 _4 I
0 N# E" M, C# Y# v' Q; \4 D- (t (ai_undo_push)
, r0 J {! [3 w+ A - (ddchprop_init) ; Everything's cool,2 V" p; ]3 ]& R
- (call_chp) ; so proceed!2 D" M+ j [/ ?
- (ai_undo_pop)9 O- Q" J0 g# q
- )
9 ?& f+ f& y4 i8 C- X e- ]0 n - )
5 {6 t+ T" ]! q, { - ) a2 X3 Z) N$ U
- (setq *error* old_error)
- |6 [4 ^3 p7 Z, R( D% E- a" h7 ~ - (setvar "cmdecho" old_cmd)
3 Y8 z: S: ]9 O$ U- e- J) C- h - (princ)
" U9 I. i4 l s) U( R - )& s% Z0 G P# o9 c& w4 ?( ^5 H N
- ' y; l% B* O6 k8 @
- ;;;----------------------------------------------------------------------------
8 v& l; M: N7 y$ m( P! a0 j
8 |& R+ n3 l6 U5 p) u& D& P- (princ " DDCHPROP loaded.")+ P+ i. p, c4 f4 S( Q. C
- (princ)
3 a9 M) X* {' }, b
" h; F0 W/ e* k0 b& s4 ]. t( u- ;;;----------------------------------------------------------------------------
$ P+ M6 g) `* t+ ~# S
% i. [+ B: i5 p) G- ;--------------------------------ddmodify.lsp----------------------------------) a& j1 e% Y0 u* t
- ; Next available MSG number is 111
5 b+ `8 C; d0 m; m: S( A8 A - ; MODULE_ID DDMODIFY_LSP_
3 h9 V/ s8 y/ a - ;;;----------------------------------------------------------------------------
: }/ k/ P; Z% V# N0 K - ;;; DDMODIFY.LSP7 h3 v3 K& Z) V' P. B9 j
- ;;;5 e: g4 z4 v+ N
- ;;; Copyright 1997 by Autodesk, Inc.( T9 k) M8 o: n8 J
- ;;;
! v: \# s1 Y+ b" ~+ R, e0 y0 ^ - ;;; Permission to use, copy, modify, and distribute this software# P% J3 E4 F, I% I4 _( g
- ;;; for any purpose and without fee is hereby granted, provided$ x9 f1 o4 [8 ?6 c* e3 i" R' b
- ;;; that the above copyright notice appears in all copies and# j: c0 r3 x. t! u
- ;;; that both that copyright notice and the limited warranty and
1 g. y- W" j0 M" L' e5 ~ K - ;;; restricted rights notice below appear in all supporting
+ ?: P* r5 b0 y: t4 x) O - ;;; documentation.& E$ w- u6 Z; Y! [
- ;;;
# e" v* b6 Y3 I& w! c. X - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.0 T% p5 \' a* s7 s: w
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
& A# t' ]6 d- v& D, u! O - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
- D9 V5 m8 T9 \ C, ^) k - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE8 F/ D6 a; {* A: J% F
- ;;; UNINTERRUPTED OR ERROR FREE.
' @7 F5 v- b* w7 s; ? - ;;;
4 i2 o- h2 _- J5 T J" W - ;;; Use, duplication, or disclosure by the U.S. Government is subject to6 H2 A' ]8 h1 z. N4 n
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
) {+ _* t0 O& W - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii). [, S: Y# u6 N
- ;;; (Rights in Technical Data and Computer Software), as applicable.
! E2 ~+ S+ \/ b+ T. G - ;;;
. `: p* G, e0 d e9 m K - ;;;.% E3 F7 B+ W4 ~$ c B0 ~
- ;;;& M9 ?/ p5 M5 `: Q
- ;;;----------------------------------------------------------------------------3 Q2 n) N- S5 S& X9 j/ q* H# `
- ;;; DESCRIPTION
' u( A* U; ]; W0 v - ;;;
- z9 s+ h) A* G8 T; B/ k# [ - ;;; This function allows the user to get a listing comparable to the LIST
* x c; ]% E" [$ f; @ - ;;; command for most objects. In addition, most object fields in the
, I" N [' A2 g - ;;; dialogue box are editable. Points can be specified dynamically by3 `4 i: E H* }& \5 `( L) i! y
- ;;; temporarily dismissing the dialogue box. Each object has a unique6 T/ @$ a6 j g; z- v- U
- ;;; dialogue.6 t' q* e5 A; c3 A
- ;;;# E; c. E& z& m7 H$ g- ?
- ;;; Naming conventions
- X" q7 D; I7 P" ?+ _ - ;;; Long function and widget names may use an underscore "_"
$ Z' W# M0 P7 f" r - ;;; in their names to make them easier to read, long variable
3 A% \. }# L0 K( i4 _8 d* w - ;;; names use a dash "-".. o! e9 A3 [. |! {5 i- n! r6 U [
- ;;;----------------------------------------------------------------------------9 j- A/ Q: ~6 @' r
- ;;;----------------------------------------------------------------------------# y3 m, [, s. K T1 f8 J
- ;;; Prefixes in command and keyword strings:
( _ n0 u% R- S6 I8 n! k S - ;;; "." specifies the built-in AutoCAD command in case it has been. y2 d6 P, h# r$ d" w0 w0 N
- ;;; redefined.
6 F I5 {. A4 T* _ - ;;; "_" denotes an AutoCAD command or keyword in the native language5 i- w9 O) a6 R0 q0 r
- ;;; version, English.8 L. M# k4 |5 a7 W, Y- j; J
- ;;;----------------------------------------------------------------------------3 m/ o. i: r& J" M/ A8 P8 e8 o
- ;;;4 R1 ?4 \; D( B
- ;;; Avoid (gc)s on load to improve load time.4 { H+ V% K0 u9 z
- ;;;
K+ I {7 `9 z. b5 F+ Q - (defun do_alloc (/ old_allod new_alloc)
0 k @( {; q3 b$ [/ [ F - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))7 R; C& X/ X7 n8 k( D* Z9 T0 K
- (expand (1+ (/ 17000 new_alloc)))$ r; b6 N5 }; y$ \0 O+ J# O
- (alloc old_alloc)0 x9 ?, H$ I0 _3 l! y7 u
- )
* E% ]' T& |( J - (do_alloc)
( Y2 X, q/ S/ ?0 K1 M2 F* j- S - (setq do_alloc nil): W5 M4 @$ I) [% {' `
9 T7 O# `; h4 [- ;;;3 v5 E9 h) L8 h% n+ G1 I! @4 n
- ;;;' J- D4 ~" ?# z6 B! M+ u( j" M
- ;;; ===========================================================================
6 G$ ^0 w* i7 |# A$ t( b# E0 m - ;;; ===================== load-time error checking ============================
9 z' C5 ^# I2 C' u9 h
$ i9 j, ]( B* C7 @+ B- (defun ai_abort (app msg)
) e6 {8 o2 V1 p+ a# ^+ e# S) e3 J - (defun *error* (s)) v W6 {" v& W) ?
- (if old_error (setq *error* old_error))
9 u6 H6 L: d K e, ^ - (princ). ` |* O6 x0 r/ U# l
- )
2 {3 f) k3 N4 c& { - (if msg7 g5 U) G9 x: Y1 C- O
- (alert (strcat " Application error: ") I; O7 t6 K% M8 z
- app+ k; U' {* h7 F* z( O* B
- " \n\n "
9 X0 i% V8 r1 o; P - msg! c0 I7 O7 Y$ A7 h, D4 d; F
- " \n"
. {4 p% e' s2 Z. R - )
5 G+ _1 k. ^, p% P# ~2 } - )
8 W3 q7 j/ }6 Q4 o: D3 F - )6 n. B& t4 l, P1 F1 f7 t& J
- (exit)
' v4 J+ Q# {" I( o - )
) j3 d3 M+ n1 E) w( ^4 p* j+ i8 b& r. ^ - 5 O( z7 _- o) [9 F0 H, M: U. _
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
9 u/ L4 o, N. z" i6 S - ;;; and then try to load it. If it can't be found or can't be. v; d9 F) p5 q2 a6 m9 u
- ;;; loaded, then abort the loading of this file immediately.. a0 h' p9 g0 ]: ]& g. `) q0 W
" L6 T2 e% C6 J8 ]) H6 m- (cond" s2 j7 f+ ]8 A+ y
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.' `7 z- o8 u! F6 g; r
8 n9 V7 X$ q( d/ ^- ( (not (findfile "ai_utils.lsp")) ; find it8 e5 J, T# K$ {, y# m5 L
- (ai_abort "DDMODIFY"" Q5 R" a1 J6 i$ P/ _& @% `/ Y
- (strcat "Can't locate file AI_UTILS.LSP."
2 k$ ^) @6 O( r; A z' X - "\n Check support directory.")))6 ?5 F6 l( i) Q2 K
- 9 i# @7 o3 L7 l N1 b) y
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
T& F: j, P9 L& |4 Z - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))6 Q& {, r# C/ Z( j# K9 z6 e3 K
- ): ]* S( T4 p+ t/ v
# }9 G/ ~/ n/ {5 K* l' ~9 W- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can
- e' ]2 {( t0 @* } - ;;; be assumed that all functions defined therein are available.5 u; |+ v! d1 }1 u$ q
- 7 [2 t! q0 \% R! r, \# t
- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
( W/ Q3 c/ N' ?6 X/ l - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
$ Y% F0 ^/ B1 i. O - ;;; does not abort the running application itself (so that it can: h% T% _* [" e
- ;;; also be called from within the command without also stopping
$ w* t8 C9 W7 p. \& \ - ;;; an AutoCAD command currently in progress).
) n+ j) ?! ^3 G) u+ V. f
U0 P4 B* ?. q4 h" P- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP+ e: u0 _* ]7 Y+ x; v+ T
- (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses8 E4 P* ?6 X1 j9 N$ |
- ) ; ai_abort's alert box dialog.
7 e! s v6 d8 E4 u. {4 v - # P. |% G; i; e# R
- ;;; ==================== end load-time operations ===========================, ]1 t% v5 v8 n E2 `* P
- ( g- I( T0 U2 E. f
- ;;; global variables
5 Y: g2 o% f- Z
. N+ n! [: R: U. a- (setq hatch-elist nil)
& b: I2 a) [: T% G. {9 f - 2 T g" \$ e, x& ]8 W- s6 i
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
1 C4 j, m7 K8 {5 H( W1 R - ;;; assumed to be available.
. j- [: l6 M3 s5 w& a0 A: L$ ]( i+ I - ) R/ l) n( L8 X6 [# B* w
- ;;; Define and encapsulate all subroutines that are declared+ x+ ]( T( y* C( E) u$ R+ }: b
- ;;; locals of the (ddmodify) function.8 Z0 e* K+ R! v, A( O( k
3 H5 |& T2 _. f( w! R6 W! O4 l- (defun ddmodify_init ()
% r4 I. B7 j: H - ;;
. y! j- v4 {& z2 |9 z - ;; These three functions modify the enitity list for common properties. Since
$ d' R1 @& T, ]( P* p8 l) v - ;; color, ltype, and thickness are absent from the object list when they are
$ u' F8 b: V$ J. o- t - ;; set to their defaults (i.e. color = bylayer), a simple substitution using$ `9 L7 z6 p& Y' F2 `
- ;; SUBST is not possible.
3 U$ ?; g7 i4 A( R" V/ Z - ;;
1 l( H: N) |. \ - (defun modify_properties ()
) @7 F, V* P6 j$ s/ Q* F" O - (emod ecolor 62)5 T- o( k2 H/ p$ ]/ [. |7 D
- (emod eltype 6)
8 C. V7 a& L& [0 D: g. K* w8 p - (emod ethickness 39)' h, U/ d7 Z) B
- (emod eltscale 48)
- I% X9 |& c: c" i. W, {1 i - (tempmod elayer 8 nil)) j# D8 ~4 ~* A" V+ ^$ V/ M3 Q
- )
! ]) e8 Z2 o! |/ {+ P& z i" ` - ;;3 U& u! D+ i+ V# y: E& l( \
- ;; This function is used for modifying common properties of the ACIS
3 p4 w+ h# R! [+ y; B( ~& I6 O - ;; based geometry objects. Thickness is not valid for these objects
7 \9 c3 r" U; S! j- c4 u - ;; so it is left out.
5 k! H6 h" h2 i, m6 B1 J, f - ;;% C6 ?' d( ]. J, l
- (defun modify_prop_geom ()
# p. x5 S( S3 W9 u - (emod ecolor 62)6 K z R/ j M* Y) Q5 g. d
- (emod eltype 6)
# m+ K2 W1 b6 Z9 ?6 G' { - (emod eltscale 48)
# L' w9 W; H/ _7 }3 _ - (tempmod elayer 8 nil)- L( X$ d+ B, z! F
- ), _7 } B! ?2 N. k
2 G& W" ?8 m7 p/ b0 C( r- (defun emod (value bit)
: [' X5 D$ G0 y - (if (= bit 62)
8 o) c! ?' q4 E! j/ j4 o4 v" C - (progn3 i+ a6 h! j I) N3 H6 y0 S& k
- (if (or (= value "BYLAYER")/ V3 x( g. }5 E
- (= value "BYLAYER")) (setq value 256))
& _) M4 }( I/ o' J+ K. t - (if (or (= value "BYBLOCK"); K3 g! E; r; [
- (= value "BYBLOCK")) (setq value 0))
; o# m' ]( N# z% ~, h. y - )
& F9 e( n7 F- S3 I3 h - )
1 M Q0 x. X G9 B7 w - (if (setq oldlist (cdr (assoc bit elist))) E% w% z& ^3 ^" V2 p0 x
- (tempmod value bit nil)/ H. S# R7 h, W0 n3 E
- (setq elist (append elist (list (cons bit value))))
3 _) Z# i4 I9 f# h3 n8 A - )
. v6 D" c) P% ~' j8 q - )
1 t7 s+ c, |# w( S3 ]# @ - ;; f4 f3 [4 @6 [: J+ f Z: t. M
- ;; Resets object list to original values. Called when the dialogue or
8 k1 C$ P; }: O% d+ | I5 B - ;; function is cancelled.) l" g- z5 j- ]/ i
- ;;6 N6 U3 q7 P4 ^6 r
- (defun reset ()
: E' Y+ ?- x+ _) _; O$ B: P; I - (setq elist old-elist1 e( v$ ~9 x& G: }
- ecolor (cdr (assoc 62 old-elist))
# y) ?9 S) `& y; A! x - ethickness (cdr (assoc 39 old-elist))% y* Y) `! O1 }3 J( `; O
- eltype (cdr (assoc 6 old-elist))
- w) L9 \5 m5 S( Q6 k - elayer (cdr (assoc 8 old-elist))
5 S2 n5 x8 V" Z9 r - eltscale (cdr (assoc 48 old-elist))- \ Z0 C5 z! D: r
- )
. k! V5 E, X% l1 t Z8 e+ ?# g - (if (not ecolor) (setq ecolor "BYLAYER"))
7 L. ]; }8 b# Y( D# A; M# ~ - (if (not eltype) (setq eltype "BYLAYER"))* X5 m& T8 o" \! t# i+ w! X2 G% Y
- (if (not ethickness) (setq ethickness 0))
& }6 _# J. d+ B h8 J: T - (if (not eltscale) (setq eltscale 1))
( }0 H4 \, s7 W e Y S" z - (modify_properties)
0 d; ]% W/ R6 y3 G! b# N2 x3 } - (setq reset_flag t): s( u. X; `2 S
- (entmod elist)
+ F. K C' [* m: p$ m - )/ R9 \, m4 u/ U
- ;;
/ S7 V) M( E9 U' M5 m - ;; Modify object when dialogue is temporarily dismissed to reflect latest
" q2 x. A8 a( Z3 C - ;; settings of dialogue. It converts the point from current UCS coordinates to4 I9 d4 i8 _. f% U9 G& V/ f
- ;; the proper object coordinates (world or object).
# T9 o3 U, @( ? d" n' n7 S- a - ;;
+ A- N. M" _9 C: X" ^ - ;; Arguments: value - in current UCS coordinates* t5 K, R" H3 U. L: g+ u1 E
- ;; bit - object code (i.e. 10 for start point)
' ?. w0 I3 F6 l1 p3 g- x3 x - ;; ptype - point type 0=world 1=planar
/ e1 L6 t4 P1 @: L - ;;' `: T9 h) B& P3 K6 G
- (defun tempmod (value bit ptype / newpoint)
' R" Y9 s1 @) _% z* z, k - (cond. f# h- _/ x3 p7 u8 ?9 y
- ((= ptype 1) (setq value (trans value 1 ename))). S* n$ W% d/ M
- ((= ptype 0) (setq value (trans value 1 0)))
0 }+ ~3 x- X6 m3 L! z& c - ), ], ^4 X+ j( G1 i& r ~
- (setq elist (subst (cons bit value)
9 ]' M; R J1 o - (assoc bit elist)" K( O0 u8 B. ]+ [1 L
- elist
7 t" I% C6 [3 [) t; F0 ? - )
3 f/ D2 L v" i; F9 { - )# n( i# p: _2 G: z% ^1 {
- )
0 r$ z& v; h% @+ j3 @- d: ?5 h - ;;
* k. A- _1 f# b/ s4 m9 ]% y - ;; The following functions are called after a dialogue has been temporarily
: ~ \, K" F# L. J+ k1 n- p - ;; dismissed and the user is selecting a point. If a point is selected the" Z! v4 O- z: Q, K0 e
- ;; object list is modified and new X,Y,Z values set. If no point is selected* O* C7 F) E8 ]+ M$ M' @7 E
- ;; (null response), then the point is reset back to its previous values.) B# S& T0 @* B9 X3 u3 s& b2 x( v
- ;;$ z& c2 w3 d, O2 d, c
- (defun ver_pt1 (ptype)8 E6 v8 G# ?0 ]
- (if pt1
$ d: X6 `1 N" g& J1 d - (progn7 w6 k+ W4 R8 H# [0 _
- (tempmod pt1 10 ptype)
& @! [$ S) Y8 s5 Z: x$ a6 v, u - (entmod elist)
$ U: M& m7 |$ r - )
1 |! M$ I5 ~0 a1 K - (setq pt1 (list x1 y1 z1))! K7 X4 s5 u% Z- P1 ?
- )
. g; C+ c; T. `1 p - )
! c, e6 \. f' \* y - " v$ _' `- F9 ?/ A
- ; (move_pt1 <ptype> )
0 j4 N' d5 ~* J4 W' k - ;- b2 r- X. U8 J& W2 C9 r
- ; Called in liew of (ver_pt1) to translate block insertions which
# p% c( @0 k$ N; _. c - ; might have variable attributes attached to them. If the distance
9 I' |; O, D& i1 [ - ; the block is to be moved is < 1e-6, the move is deferred.: f3 A4 A4 V) S; y4 z
- : y' i: S( I* G# [9 A
- (defun move_pt1 (ptype / basept hi)$ g3 f4 j7 @" i- t9 Z
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))& n9 a- ?5 n3 q( N* n
- (cond0 ^2 |, c( K- Z- W8 `7 q
- ( (not pt1)% Y! ]# o5 }3 Z G4 s
- (setq pt1 (list x1 y1 z1)))) G" b# ]9 G' \) ]5 z9 E. a
- 3 @9 |5 Q- h |% `! y
- ( (> 1e-6 (distance pt1 basept)))
) ^8 s. e8 _! V# }* V' m8 Z - / Z0 z$ k$ c# ^
- (t (tempmod pt1 10 ptype)
% v6 L+ G5 B. n6 B- ?2 M - (setq hi (getvar "highlight"))
" i% `/ l, N6 U- H - (setvar "highlight" 0)( p4 u+ j) d, O/ n" k
- (command "._move" ename "" basept pt1)
5 E+ M& k' ]+ S" m* a e - (setvar "highlight" hi))) s8 P7 I# g/ }; \ P" j
- )
7 `8 E# t+ n+ @5 [4 Z& W - )
( w1 m) m _ @5 K; X
3 c' ~1 T4 \* k, v4 b5 W- (defun ver_pt2 (ptype)
$ z4 ?6 o& V4 s _0 C* F) G# q - (if pt2
7 [' S+ i5 ?- u! ^ - (progn* v+ [4 d& J3 h6 B: W. Z
- (tempmod pt2 11 ptype)* T. G5 Q; n9 T$ Y( m. X
- (entmod elist)' }+ @7 y9 }9 u+ @6 [% w0 B4 X
- )
, A0 M3 k8 | y/ L! E$ G - (setq pt2 (list x2 y2 z2))
5 @/ |% G3 V8 m6 n! t: j/ R - )
* _7 n; G, y7 q6 ^/ d - )
- X4 H( g( B1 p6 p) w2 d9 e- T
. f$ D- C) }& y; z9 r- (defun ver_pt3 (ptype)( Y/ j. ]& L! i. C
- (if pt38 i8 G; ^7 x0 _
- (progn
2 P& M8 k; D6 R1 ~$ a/ x( F$ ~ - (tempmod pt3 12 ptype)
2 \/ G+ A" P# \2 [, O( M4 N - (entmod elist)
W5 [) I7 ]( t% T( C" V# C6 | - )
1 j4 U0 C0 n, L - (setq pt3 (list x3 y3 z3))
* \5 ?+ I$ ]; y( Z1 N, q - )
( H, \5 B+ Q0 [% D0 ?2 Y. h! C& {. ` - )
+ I& v% y- j3 Z( i- G6 {+ `" C - ' n) t* u( W& m9 |7 M+ i- J) `
- (defun ver_pt4 (ptype)" k y6 F* M. U X) c6 {: @
- (if pt41 X0 P; V9 A& C4 Y; W
- (progn
! Y0 v9 e! \+ o5 N' V: V6 g* m - (tempmod pt4 13 ptype)
- a0 C1 C' _/ {% _9 @; w - (entmod elist)
) C" ~& g. k' _ L9 o- ^2 J - )' k3 V- H$ k- m! E0 ^' ?4 k! s; W
- (setq pt4 (list x4 y4 z4)). t' X1 }# u+ x, c/ q N
- )2 T8 T2 ^. S, Y# P
- ): @/ s, O$ f! W- [" x! g& {; O
- ;; Xline/Ray9 G. N9 G' H, i7 H, \
- (defun ver_xline_pt1()% K S+ b: q' [/ p9 z
- (if xline_pt18 R8 n2 G! U6 O8 w
- (progn
/ N' B+ I/ r8 F' ~ - ;; convert to WCS.
& r& u; ?2 u) n" A+ M - (setq value (trans xline_pt1 1 0))* K3 ^1 `6 |) x. B, r4 h; U% q1 w$ ^
- (setq elist (subst (cons 10 value)
" X v6 Z% H& T' N2 }, B - (assoc 10 elist)
/ ]4 ~, g3 X2 N! a, t - elist- k9 q1 Z O3 `: Z" I7 Z
- )! ]6 k) K3 x x- ]0 y" x
- ) ]; g* O. |6 e/ Y0 O, G
- )
* I7 c- w1 v6 f% ~- V - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))" Q4 {# Q7 S- V5 k# Q% W
- )
6 P9 x3 D& G; ^* S - )9 k2 O6 z. M n9 M6 `8 h/ z
8 n$ n3 k7 b8 R @+ t! f- _5 y: w7 n- (defun ver_xline_pt2()6 z/ Z3 ?) K8 D) m5 A8 ^
- (if xline_pt2
: i6 z* [% w! K- q" v3 @. U7 C' e - (progn# _; Q- D! X t9 D6 ^
- ;;
" c" K3 r& s6 C5 h8 x. M - ;; Calculate new Direction Vector WCS
0 U8 s! M4 i6 r9 J' d- k - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
, [$ K$ _3 `. I+ x- R) S - (setq temp_dir (trans xline_pt2 1 0))) j' M+ y1 _4 H0 H; N/ J' c
- (setq temp_dir_x (car temp_dir)): s9 ?2 [ q1 P9 `. x; G. _
- (setq temp_dir_y (cadr temp_dir))
. y, o$ e3 Y; B( w/ w3 W - (setq temp_dir_z (caddr temp_dir))
R5 n c3 m8 y9 D1 k {: k - " v. ~- V" T6 f+ k Q- H
- (setq temp_xline_pt1 (trans xline_pt1 1 0))7 `. t$ v" C V9 L! E6 d
- (setq temp_xline_x1 (car temp_xline_pt1))* e( g7 O! |4 m7 S
- (setq temp_xline_y1 (cadr temp_xline_pt1))
9 Z t3 Z3 U$ X) m - (setq temp_xline_z1 (caddr temp_xline_pt1)): k, u: U1 q# g7 W
- % T. W. K; d6 {; E$ _
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)1 g2 \! E/ o: o" t+ v( _
- (expt (- temp_dir_y temp_xline_y1) 2)
& y4 m4 E$ u& T7 [ - (expt (- temp_dir_z temp_xline_z1) 2)3 S4 t9 w( P9 g/ z7 j; H
- )))& S" ~% |, H1 ]% N2 a( B8 Y
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
+ {3 `0 @6 x3 D( ?% {" d - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
+ {5 R3 M$ Z# d1 {% @( M' N' m - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
5 E8 L7 s9 t# h0 h - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))2 s E" K. v8 S* U
- (assoc 11 elist)- m: y. R/ X/ A$ Y h' L1 z6 s' F
- elist" _5 ?/ n3 @ Y& {' a' w% ^" P
- )
, d! L( G& T: Z' Y - )
. v* O: v' u( F" K$ h - (entmod elist)9 [) F( A6 N/ k l/ p
- (setq xline_x2 (car xline_pt2))
# |5 y! q# c* A" N$ U: t: y - (setq xline_y2 (cadr xline_pt2))) L$ G# ^) n5 U9 b2 W/ K
- (setq xline_z2 (caddr xline_pt2))
: D2 X/ P0 o w, z+ J7 D2 J - 3 b, r4 b& w6 r1 v" j5 T) w4 {: r- }
- # G) J- k* s: B0 t) I! ?/ E8 m
- )5 r( G% O# |. v% w3 I e
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
; X9 K6 f0 ^7 Q/ B% | - )1 p( v- e& H0 m! B& C7 V% R7 V
- )
+ s: Z2 J; k. K3 _9 p - 1 u* X5 x+ f: K7 S8 B
- ;;$ ? B. Y0 M: J% z5 M! v* k7 h6 m
- ;; Common properties for all objects+ ^; x' k+ f. q
- ;;! M& m, R5 @/ a9 ]+ A* r" X, y
- (defun set_tile_props ()( y; t8 `# p8 V0 [
- (set_tile "error" "")
( v+ j7 E' v# m - (setcolor)
3 R# O1 d; d0 k9 }( K% p - (cond/ Y& k ~' p& P0 M& |
- ((= eltype "BYLAYER")
4 x6 R7 [0 L t. `: q8 | - (set_tile "t_ltype" (bylayer_lt)))
+ r' }* F! ~: i+ a7 T% |$ v - ((= eltype "BYBLOCK")8 B3 R4 [8 n9 k
- (set_tile "t_ltype" "BYBLOCK"))
}6 _* ]: \1 T; d, ]0 I! o - (T (set_tile "t_ltype" eltype))
6 U* ?' Z' ] ^, Q- e - )
$ v# W: j" L, c4 @$ \3 r - (set_tile "t_layer" elayer)4 y5 C# C) L5 R& a3 B! v
- (set_tile "eb_thickness" (ai_rtos ethickness)), w. E8 [/ @% O/ D ^+ I
- (set_tile "eb_ltscale" (ai_rtos eltscale))
) _& z) r3 s+ s( y* ]$ e* l - (setq which_tiles (ai_common_state etype))
6 O6 j8 x7 a( R; `$ p5 F - ;; Disable tiles if need be...6 d) ?& r) H. i: u
- 7 Z. ]( w8 L' Q A' L0 p
- ;; Layer Button and Text Field' n1 U# @+ D2 [- V4 \
- (if (/= 1 (logand 1 which_tiles)); I0 ?8 n; A+ O' E3 o. _+ ~! v
- (progn& `; m) _6 V* w% \( y# D
- (mode_tile "t_layer" 1)
V3 S8 m: J; B U - (mode_tile "b_name" 1)2 O1 N( y0 a, m, A5 z1 @0 H
- )/ _' I% t+ i" ?( R" c. B
- )
. a# W0 E" ^$ {! q* P - ;; Color Button and Text Field
- R$ w( S) t8 W - (if (/= 2 (logand 2 which_tiles))
0 g: J/ M5 q' p. p% g9 q* | - (progn
B' F" [ A: l4 s) z8 _& h1 k - (mode_tile "t_color" 1)
+ z4 S$ ?' Y8 T e+ i - (mode_tile "b_color" 1)* Q+ }% I0 [6 B; t+ Y
- (mode_tile "show_image" 1)
" `9 l' {0 C/ y - )* a6 I4 J7 P0 ]0 E1 _+ G
- )
4 _5 @0 E1 h/ B# L% u X" g - ;; Linetype Button and Text Field
- O& ]' A, V$ E) b, Z - (if (/= 4 (logand 4 which_tiles))
* k4 J$ F$ K" c; v: G; L0 C - (progn% ^. u [' ^( r+ ]1 x
- (mode_tile "t_ltype" 1)
% N( c: u+ ]& J& G& x: i8 b - (mode_tile "b_line" 1)/ X" y6 q6 j, B$ j
- )4 n+ C! y* v" ~
- )- C* G, V' P. }' V2 n
- ;; Linetype Scale Edit Field
' w% S0 n Z; u0 m4 H) o* Q) d - (if (/= 8 (logand 8 which_tiles))) B o$ ~$ M7 H5 D: z% ~/ n
- (progn
% n, r9 @7 U( s% b" q/ Q - (mode_tile "eb_ltscale" 1)
* A2 ^0 l8 ?) k" d. D% i; E" Z( ^ - )
9 n1 V4 j- u. I/ D) N4 E - )
' ?$ G: d% [* Q. s6 y5 } - ;; Thickness Edit Field.
) C: }1 j j* ]+ G4 ?8 m - (if (/= 16 (logand 16 which_tiles))
* \% h; u5 a. j( Q - (progn3 A* V9 X+ A" _7 f- s9 g W+ b! ]
- (mode_tile "eb_thickness" 1)# T- K! T# ?" C. M2 |6 e( u. @
- )
! W! }& V8 l9 y7 [6 P5 v+ X7 h - )9 w% {( r+ C+ H4 v) `; E* M
- )
$ _$ Q) q" H9 m - ;;
+ e3 U& t" o6 g. e/ F - ;; XYZ Point values for all enitites/ ~! _1 p8 m' o; ?; R6 e
- ;;
% y" ^0 c% x5 S; t" i E - (defun set_tile_pt1 (ptype)
1 M9 v2 s3 z& ? - (if (= ptype 0)
/ O) b# m3 ]; n5 M" ` A - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
% K4 S4 Z& |' T* l) ` - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
' R- u$ p" p2 X7 f! n - )
' x- a- M# t! l8 b5 Y C3 ` - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))
% I8 p8 ]0 m/ z9 L# c- @! ]4 D5 H* E' c - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))
3 A* X9 H9 s, t" `) V) t" K5 @ - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
- K9 K- j8 F. K0 ?4 T- o - )' q: |3 X, `8 {! l6 r' c
- (defun set_tile_pt2 (ptype)
8 B. Q n: z( ^3 G6 a - (if (= ptype 0)
: E4 }/ y/ D. `) ?) P0 ? - (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
. I) O U( L6 B; O6 ~) ? - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))( Z9 @: v/ a2 h) r M% z" D
- )4 ]+ S6 d7 k6 m' F
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
/ F" d7 B, B% X/ s0 X$ t6 P - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
: J$ y0 f4 o2 }7 X( i1 t - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
# v; |8 E- d/ Y9 o" w( _ - )) H, W. ?* {: \' l, ?& b
- (defun set_tile_pt3 (ptype)
8 i1 C- P# s% J5 I. J6 T( T - (if (= ptype 0)
6 N8 R2 ^8 m. r# |6 d - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
/ d- ^7 b( b8 e) \ - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))+ M! m$ u; L4 ~$ i6 m
- )
' @$ {9 b7 J6 z/ Q: A" J - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
+ N8 ?& L! Y2 r% a0 M& I' | - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
4 D! V F2 d5 R9 R" T" w0 x. r$ J( p - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
' l7 n/ [; R3 Q5 p) `. H - )& ^" V" y9 o. N; G; Z- e$ M
- (defun set_tile_pt4 (ptype): y$ Q% ~/ @1 i& k; H: ]. B
- (if (= ptype 0)! B8 I8 ]4 o+ _
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))4 g1 O. x) @2 e
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))5 @1 N5 O" M" F4 |! _- Z7 R( C
- )
6 t6 z: a1 z# W; x- @+ | - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
2 o0 F4 F. _2 L0 u: B* ` - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
1 L3 ]3 b9 C. r$ b; _* l6 s1 h9 S - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
% n3 L9 B2 t( f, c/ T4 M/ N. x - )" }6 J* _, _# Z) ~# Y3 D
- ;;
; J) P, |/ {3 }- Y5 Z - ;; Xline/Ray
/ K+ r, p {9 s) X; w - ;;4 p: {8 J3 c$ I K" ^+ n5 q
- (defun set_tile_xline_pt1 (): D3 B, O' T/ v; s, f v8 U0 d
* Y( ^8 d% T3 p/ b# w% Z- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))( h4 b" }" R. |9 \- \
+ }. k6 c# C1 O! L: }' _- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
! e9 \2 u# }5 X$ c* E - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
5 K3 A: X" x( z- X/ H8 c - (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))! ]- I9 [8 I5 L3 C. e) p2 t& ~
- )
8 G2 U6 s! V! Q6 e* F - (defun set_tile_dirv ()9 \# P' P# V: R4 ]( G' @
- ;; Convert 11 group to local UCS (displacement)
1 f) ~. B1 H' h - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
0 }/ r# I4 j9 \5 k- G - * \- j$ r7 Y4 Z! k1 p
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))& M. q6 u; h# L
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))
1 x6 }; `. X/ }: j/ b - (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
, G# a# Z4 C$ X2 {$ |- C - )) [6 P, K" r2 i7 e" b
- (defun set_tile_xline_pt2 (). c: T" m, X/ J1 N
- (if (not xline_pt2)! n% C9 y: |% d" Y M0 p4 v. ~+ R
- ;; Initial second point is Root Point + Direction Vector
: l/ n1 I# M% q$ N - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
( E- o9 c4 s9 b7 M. x! a- j - )3 c2 s4 c, A+ \2 |4 f; g
- (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
* S- ^4 q7 O. C0 o0 B$ M - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
! u8 P7 P& s3 `* d - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))& l; V6 {2 e, d, q& J1 T
- )" r- S* q$ T# A3 ^5 y/ W
- 8 L% \" E2 S! ^. [/ t, u
- ;;2 c; A) I: d6 q( A) Y1 ^, l1 c
- ;; Handle for all objects) y: F5 c: G* T& K, S
- ;;
- v. N* `- U; J- J/ N, g - (defun set_tile_handle ()
9 }" _" ]6 C, F, w9 N, z: L - (if (setq hand (cdr (assoc 5 elist)))
7 i' a% }4 Q$ ]' M - (set_tile "Handle" hand)
- n* d( s; ~+ L2 Z+ a1 z, q - (set_tile "Handle" "None")
, b# u* y% M( g1 u( D - )1 s( o! C; e2 {- L6 w
- )
- z4 |8 v; `" N9 |" B2 L - ;;
5 a% v- X$ ~' l - ;; Radius for ARC and CIRCLE) N/ Y0 c2 K8 R1 l; ]5 w1 T
- ;;7 Z! u6 X/ c# }) R5 q) r$ H( h
- (defun set_tile_rad ()6 Y% r/ g' I9 G4 Z e
- (setq radius (cdr (assoc 40 elist)))) M. r2 J, q9 X, U; C' q: q/ n
- (set_tile "radius" (ai_rtos radius))' j9 m* Y; w. U+ p5 ]
- )
% v( i7 o+ V' Z8 t) Z7 {' B - ;;, }8 I9 ?) e4 R
- ;; Start angle for ARC- Y2 x1 }/ c M/ ]
- ;;
8 b: w& Q; c" r- }# [! j- I - (defun set_tile_stang ()
+ b* b6 x+ i: g* C" D5 ~: t - (setq st_ang (cdr (assoc 50 elist)))' m9 N' ~8 {7 x5 P4 f
- (set_tile "st_ang" (ai_angtos st_ang))9 z% T0 ]6 \! o4 v& W8 W+ n
- )# |- L2 y. I. ]- f, w8 T
- ;;
' w x9 i6 m$ ~) U! B: ~ - ;; End angle for ARC- j7 K3 q2 _2 p8 U% J& F2 B
- ;;! n1 m O# l# }0 D4 R3 T3 p- D
- (defun set_tile_endang ()
8 x* @' L& ]' {: L+ ^) o - (setq end_ang (cdr (assoc 51 elist)))
& Y( m! e3 H7 \$ `9 P5 H - (set_tile "end_ang" (ai_angtos end_ang))9 y( K9 J% q+ r
- )
9 N+ b5 T: S! p/ t - ;;
! [* e7 l$ z$ k: c - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes+ M* e" d n" X( |. q
- ;;
5 |3 z2 _3 r' R& G: n2 |; c- R - (defun set_tile_rot ()
1 \6 K( S1 Y+ `% Y - (setq rot (cdr (assoc 50 elist)))
0 f! Q* x5 y2 z" ^ - (set_tile "rot" (ai_angtos rot))& }' A$ L+ ^& H% z( j! w* R
- )! u& `" Y) \' ?% [2 a* A
- ;;1 d5 c8 R$ Y! G2 O- r$ r' `
- ;; Height - Text, Attributes and Shapes+ a' N0 Q' h( H, n: x4 y, y( @
- ;;) _0 w) i; k7 F( I: }
- (defun set_tile_hght ()+ o" S- X6 X0 T0 U( }
- (setq hght (cdr (assoc 40 elist)))7 }& T" G; }" u0 A$ H
- (set_tile "hght" (ai_rtos hght))0 a8 X: B: d! Y8 z+ b" N
- )
1 `: h" B( K2 R6 y$ Y+ s - ;;. |7 b- c" ~9 T) P% Y. t
- ;; Width Factor - Text, Attributes and Shapes
, D( o; O$ h) m X4 a+ }0 ~, b% L - ;;
5 i' U( d& [4 g" U& h9 b - (defun set_tile_wid ()2 o3 [3 ^/ ^7 J: A1 B# F1 A; W
- (setq wid (cdr (assoc 41 elist)))" ^, v O2 p, F; r
- (set_tile "wid" (ai_rtos wid))% M$ P0 I& T. Q' W0 G% D
- )& k- f2 A6 K( c! @8 P5 F1 d
- ;;
+ O" E) ~2 x% ]2 |0 O% D - ;; Obliquing Angle - Text, Attributes and Shapes( e) [1 x( `* z
- ;;9 h4 f8 G1 p+ k9 A! U
- (defun set_tile_obl ()
3 m: }) _8 W9 u4 B - (setq obl (cdr (assoc 51 elist)))
8 g) a7 R7 H+ M) y* {" s& y. A - (set_tile "obl" (ai_angtos obl))
3 `; B& v- v* h - )
9 D, s, `& P: l1 o, h - ;;
' E6 d: ^4 P/ I1 w - ;; Text string
8 y0 C- z/ e/ v( {; n/ D2 U - ;;
- j, L& i% B1 b4 v - (defun set_tile_text ()1 P! {3 Y/ Z1 N s9 v$ S
- (setq text (cdr (assoc 1 elist)))* N. @; m% k/ ^0 l8 @; e+ e* M
- (set_tile "t_string" text)
/ C" Q. M+ e. I w% o3 ~4 Z - )
* n# e: `- |" J" f1 N, ^ - ;;
; r4 J( q! H0 V# v4 K5 ]) q3 o - ;; Attribute Tag
1 t* E B- w: d - ;;
( J5 k# `: f& m" D - (defun set_tile_tag ()0 X, |4 K% |( E# ]" a
- (if (= etype "ATTDEF")
# x4 s( a: c R3 | - (progn
! i1 B3 u z- z/ M3 w - (setq attag (cdr (assoc 2 elist)))
0 @5 \6 B/ L# E. G9 X- G q# W - (set_tile "tag" attag)
) e6 P7 h1 F6 F' c. m% n - )
6 K! [: P0 Z/ V6 G+ M# u - )
, N! S$ c) J3 F - )
T7 I. w! K& Z P - ;;0 Y5 Z# i2 Z+ }. Y
- ;; Attribute Definition! g" U3 N4 M) @+ W
- ;;/ y3 f& X9 B2 Q" S1 l. E; Z- K* U! n
- (defun set_tile_prompt ()& O- Z- h8 q9 V4 j8 n5 M6 G$ k
- (if (= etype "ATTDEF")
6 m9 j/ V6 G- P- N7 K4 ] - (progn; q2 |" ~5 s) E( ^& [. F
- (setq atprompt (cdr (assoc 3 elist)))+ o! k# P, k! [) K4 i
- (set_tile "prompt" atprompt)
, g, }. w. h1 W2 u! l - ). a d2 v) M. o; H' T2 O6 H8 @' I
- )" U5 n+ n3 M d+ k" u* \! f
- )5 y4 h% a" j/ {$ B3 Z9 a' ~# J
- ;;
) y9 |4 S! z# u2 c" K6 | - ;; Justification setting for Attributes and Text. Initializes; R" K0 P; W3 W$ X5 Y b# Q) i
- ;; popup list box
. A5 \* t0 I$ d+ K1 g1 B - ;;; `5 K5 g$ U+ S! b5 {. y
- (defun set_tile_just ()
1 n2 t0 K# `) m$ \! b. Q' G - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment; u& B) ]( \0 t2 P4 d
- (setq va (cdr (assoc 73 elist))) ; vertical alignment
5 s; A5 V' K# Y" g$ X) _* ^6 [" Q - (setq ha-prev ha)
. G1 F2 `4 N- k - (if (= etype "ATTDEF")
5 y7 p) m0 { S8 F6 O - (setq va (cdr (assoc 74 elist))) ; vertical alignment
4 ?$ p5 F% k7 Y. H% R+ a - )
4 K; M5 l4 |+ f* y9 A) B! r, U+ f - (setq jlist* x$ q4 [. e( N- i8 R
- (list "Left" "Center" "Right"
) w0 _" S9 w* ~ - "Aligned" "Middle" "Fit"5 S$ ]% L+ [. e0 O1 ^
- "Top left" "Top center" "Top right"
. F$ R4 h% B* m* f; E - "Middle left" "Middle center" "Middle right"6 S( z( Y K, R; H& H4 a* W
- "Bottom left" "Bottom center" "Bottom right"
$ w1 L& y0 c; ? - )
" |' h1 _$ F8 A: ?0 q0 Z5 x9 M" [ - )
H; X# }! y o; |" {" V, J - (start_list "popup_just"), V* d# A' ]9 h1 O& V
- (mapcar 'add_list jlist)
: S/ U6 D1 w$ Q/ g h, c) L - (end_list)
2 G2 _& G/ \9 d/ F+ p2 h - (set_just_idx)* f* J7 s" ]* Y* ~' @1 Z
- (set_tile "popup_just" (jlist_act just-idx))6 C/ }! N! w z ~! z( r1 I
- )
" r4 M" Y+ V, N6 `" ]$ ~ - ;;
$ G+ G) Y6 J( f; O - ;; Style setting for Attributes and Text. Reads symbol table for popup list$ x6 U$ Q7 o* q/ M) _, ?' J
- ;; box.& T' |, X" `! D' N* t' ?! k
- ;;9 h- N' z0 i, O0 J
- (defun set_tile_style (/ sname style-idx tlist)$ M( g$ f& Q8 @$ z3 A# G7 w$ Z/ T* N. A
- (setq tlist (tblnext "STYLE" T)
. H0 H/ I' @3 D1 }' t" c - slist nil)
8 w' t. F8 f5 p9 t3 Q+ v - (while tlist
, Q7 F8 d1 j8 o% ? - (setq sname (cdr (assoc 2 tlist)))4 s8 H$ C, ], k! b& \! b! R% G5 Q
- (if (and (/= sname "")! {$ q5 C- J4 G. S
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))8 o; [* |; p: Z. q# b, g
- (setq slist (cons sname slist)))
' G$ m$ M' O+ k0 i - (setq tlist (tblnext "STYLE")))
. [; \- E8 ^, S% q* g5 S9 B9 t6 ? - (if (>= (getvar "maxsort") (length slist))
# }/ y; R4 b" l - (setq slist (acad_strlsort slist)) ; alphabetize style list) W9 B2 b1 Z% ?
- (setq slist (reverse slist))) ; or reverse it to put it in DB order
; O- U4 i4 `. m' T6 D1 L* u - ) P4 x1 }, B) f9 z
- (start_list "style")
4 |( D- D3 @) ~ - (mapcar 'add_list slist)! p+ [& j) F! E0 @( q" w
- (end_list)3 z/ U6 l) L$ T+ Q: c' m+ u
- (setq tstyle (cdr (assoc 7 elist)))9 }% d: z3 h9 K: E
- (setq style-idx (getindex tstyle slist))
( @ A _+ m; H! z$ E3 Y$ t! B - (set_tile "style" (itoa style-idx))7 N. ?$ i3 K5 u; ?+ s' K
- )" H) O- _' K9 P. v7 I1 X' x0 g
- ;;) o0 O! J) X6 N0 L* O
- ;; Text and Attribute setting - upside-down, backwards C7 _) I& V2 k, v% H& U$ u. f
- ;;, }7 a: j( c' T: y7 A
- (defun set_tile_bk-up ()2 ?/ |- z7 z6 H
- (setq bk-up (cdr (assoc 71 elist)))
& _6 Q) K6 o& Z2 f# @9 D - (if (= (logand bk-up 2) 2)8 |( V! l' L- K, ^
- (set_tile "bkwd" (itoa (setq bkwd 1)))( D8 V8 N- Y' U+ K. u! e
- (set_tile "bkwd" (itoa (setq bkwd 0)))
' l: b: x; L) K( M G& T) D - )/ i# i. K% E$ N; z0 o" ~
- (if (= (logand bk-up 4) 4)6 F: t U' }& o; b5 O: ?
- (set_tile "upsd" (itoa (setq upsd 1)))
+ @ U4 L m6 x7 H0 M - (set_tile "upsd" (itoa (setq upsd 0)))! d' W- M+ j* ]" l' [1 M8 [
- )
! U' t3 N' c9 r0 B) _3 K5 ~ - )- j* T" L& {- G/ F- t2 O
- ;;. ~! D- T$ B+ i+ t
- ;; Attribute setting - invisible, constant, verify, preset$ |6 O/ J5 e& c( ~# y, n! v& ]
- ;;
/ Y! S8 h' [! K: y* Z7 m, S - (defun set_tile_icvp ()' n) N' k: o2 }7 C- l
- (if (not (setq icvp (cdr (assoc 70 elist))))& k ?2 V1 _; A, q
- (setq icvp 0)4 l+ Y" i3 K1 V* `1 D6 W9 H
- )0 ]2 r0 K0 F9 V. g: G! I
- (if (= (logand icvp 1) 1)' q8 q0 A1 L' L7 `! _
- (set_tile "inv" (itoa (setq inv 1)))
4 u$ {: z& p; ]5 h ^* Z - (set_tile "inv" (itoa (setq inv 0)))
" @# o* d7 X* z0 A - )9 y) D5 x; f/ G* q6 c9 }
- (if (= (logand icvp 2) 2)! Z! [( N5 M# i: i6 O7 i
- (set_tile "con" (itoa (setq con 1))); {( t" i$ `, G6 T
- (set_tile "con" (itoa (setq con 0)))
& }; W j2 v6 P$ L - )
! x, I" U" z% g - (if (= (logand icvp 4) 4) g4 n r8 ?- o! K
- (set_tile "ver" (itoa (setq vfy 1)))
' g4 m; L% a9 C2 l) o5 V9 i+ E3 f - (set_tile "ver" (itoa (setq vfy 0)))
$ m7 {( j [% t$ Z+ ~" `! I' a - )
; r' s. [, L1 e7 A$ j5 t - (if (= (logand icvp 8) 8)
% @5 V- l! K, Z* o2 X' T) t5 p - (set_tile "pre" (itoa (setq pre 1)))' P+ r/ @6 [% w+ c' F' u
- (set_tile "pre" (itoa (setq pre 0)))3 V, \/ [, v! |; z% O" Q
- )# i! ~7 u5 T0 n% B8 u8 |
- )7 S1 p& |$ J& f; q8 _
- ;;
0 q* l- r7 t, j& J: p& q7 G" O - ;; Scale factors for block insertions
% q* n8 _8 O6 u0 C5 u. W' J2 I: M - ;;! d; I3 }) O# F0 K3 n, J9 t
- (defun set_tile_scale (/ temp)5 Y$ f& w" b- P3 x# i! C5 q8 |
- (setq temp (getvar "LUNITS"))
( K% p* ^ E. b8 q' W, {( p - (setvar "LUNITS" 2); Z( \/ o. I9 d3 V0 g. g* H& J& H
- (setq xscale (cdr (assoc 41 elist)))4 M. }. p! y! `. H
- (set_tile "xscale" (ai_rtos xscale))% W. K% F) f/ v$ M) Z( V4 V- y- A8 C9 Z
- (setq yscale (cdr (assoc 42 elist)))
* D* }" X& c d4 @$ U: m' W9 P - (set_tile "yscale" (ai_rtos yscale))
/ e. e. G. g0 J2 o& ]/ Q - (setq zscale (cdr (assoc 43 elist)))
% j& Q% [$ r1 ^4 ~. p - (set_tile "zscale" (ai_rtos zscale))
# v. K: z# k5 z$ l3 W" L - (setvar "LUNITS" temp)
' h4 y" v: R1 F- k: W- Q( g - )
8 s9 F0 S5 ]5 Z9 t( f" M" U0 M7 Z - ;;# z2 [: S* |. }( c6 a M
- ;; Rows and columns for block insertions
+ ~$ ^ S4 g1 B0 |# W0 f' O - ;;
w7 o* Z0 f' S7 z0 w3 N$ x - (defun set_tile_rc ()
, M; O* v/ h) F9 i7 ^6 b; } - (setq columns (cdr (assoc 70 elist)))
; q2 }0 V( g' ]& {! _8 y - (set_tile "columns" (itoa columns ))# t# b# p: o: v2 S+ a
- (setq rows (cdr (assoc 71 elist)))7 z: l$ K" Y2 Z; C$ _! a# d; A+ ~
- (set_tile "rows" (itoa rows))
O$ v9 y, }7 D - (setq col-sp (cdr (assoc 44 elist)))
- r& ?+ Z T E" o' n, n - (set_tile "col_sp" (ai_rtos col-sp))) a" o) p5 O K5 Y: Z
- (setq row-sp (cdr (assoc 45 elist)))
5 O+ p& T" T* p# h' R/ W. v - (set_tile "row_sp" (ai_rtos row-sp))9 o( q8 u) r( m1 g' \) X# ?$ b* g$ w
- (if (/= hasclip T)
p; G! k( X# {( u) j6 u - (mode_tile "xcliponoff" 1)( }7 }/ H, r- s2 }/ F k8 L9 y
- (set_tile "xcliponoff" (itoa xcliponoff))% _4 j0 v8 p; v
- ) f" z! g; M* Z# F0 Y1 i1 ^
- )0 Z9 n: L- c2 R- X
- ;;0 V, |3 Z% n% R
- ;; Invisible edges for 3DFACE
$ Y- G4 s- g: \3 \. ] - ;;
5 ^' S1 e& v" ^/ u" \" e - (defun set_tile_edges ()
0 J9 q- {/ r2 N! ? - (setq f-vis (cdr (assoc 70 elist)))4 G3 U; i, ]4 o+ Y s" Q9 P
- (if (= (logand f-vis 1) 1)+ ]& N) @( X" m7 M' D+ o$ H
- (set_tile "edge_1" (setq edge1 "0"))4 G3 G1 C( U4 ]: c/ H* `
- (set_tile "edge_1" (setq edge1 "1"))# A: S% J7 S9 ^% ~( t0 n
- )
$ s w; A1 Q& g) q - (if (= (logand f-vis 2) 2)
9 e u9 z) ^6 D7 G; J9 A - (set_tile "edge_2" (setq edge2 "0"))1 v( C- R; E/ m' W D3 b- H
- (set_tile "edge_2" (setq edge2 "1"))
3 {4 Q* b+ u# _, U; X - )
: z) @6 }$ i e1 g. e - (if (= (logand f-vis 4) 4)
& M; W6 b9 b1 `6 u - (set_tile "edge_3" (setq edge3 "0"))+ H9 j5 j! P6 T. k* e0 X
- (set_tile "edge_3" (setq edge3 "1"))
, Y5 F2 V: E# M5 H. X! K/ Q - )! K+ |/ Q$ `0 H. K2 v
- (if (= (logand f-vis 8) 8)0 K9 }% L: t/ X
- (set_tile "edge_4" (setq edge4 "0"))9 v( H& t% g3 X4 d2 `
- (set_tile "edge_4" (setq edge4 "1"))& @3 Q6 `( N) M1 W, ]5 L
- )" \2 E V4 L% _1 m7 {' y7 z4 z: o; T
- )3 \$ [7 w( E- _
- ;;( I( N- {: \2 ^' j
- ;; XYZ Point values for polyline vertex3 e! O% h7 A7 ?, F. q
- ;;
" m/ o i2 x- ~. [ - (defun set_tile_vpt (ptype). D' j8 W8 Y- |; F$ E+ S# I
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
$ l$ k1 x% A& _$ q: C7 u. F - (progn8 D( X/ W" `8 ~3 A. @& S! Q0 A
- ;; ctr is 1 based, vertices are zero based.
/ e: O) T2 M" \3 ^5 M; B9 J - (setq vpt (cdr (getLwVert (- ctr 1))))
. }6 q {6 L0 {3 F" e3 G# d - (set_tile "xtext" (rtos (setq x1 (car vpt))))' l% J0 t% x) N
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))9 r% }3 j( h u$ l
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))2 Z* ~! y3 Q& a8 o% n* p
- )5 @" l: T4 c. w/ u l
- (progn
1 s8 {; Z: |: k* y% t4 K - (if (= ptype 0)
/ x- k/ ^- V% z8 X; @5 S - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))( Z5 {5 k$ z1 ]0 l0 x
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
" a" e0 Q, ^* P3 N9 R2 l& z - )+ b) U& M4 c. ?
- 7 P. e/ ^. O9 O0 w7 w
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
: C$ _! [7 \' a - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))8 N1 O& {* I# K% Z: K2 e( \
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))0 c" G4 w- w, `& |- {' ^8 `
- )
# v: Q5 g v& t; ~+ L- Z0 w - )3 x- o' K+ N2 O- W
& u5 u! R9 q" ?0 y( S) b" P9 @0 Z- )" D1 d( q7 J8 a( i; G8 g7 F
- ;; This is the equivalent to doing an entnext on the heavy weight! G( p; q% M8 v9 @
- ;; polylines. The hard coded '4' below allow stepping over the1 @0 \4 v+ m/ N
- ;; 40 41 and 42 group code information. The while loop finds the
, n# |; t( R& V- s - ;; first vertex which will be used as the starting assoc in the' j2 [4 l& U0 D5 O2 z
- ;; call to nth.
- Y1 ?+ G4 E5 U/ D* t - ;;0 N! Y G" Z0 W/ @3 J9 l: f
- (defun getLwVert (tmpctr / count tmp)5 F6 ^7 Z6 G4 j5 J7 _) m" C5 \
- (setq count 0). l6 i; O$ [# C7 }& j3 p, C+ }7 e5 O
- (while (/= (car (nth count vlist)) 10)
, F" x. A6 _# U) ?+ `$ O* O% y; O - (setq count (+ count 1))
* a* I1 q. r. q) M - )8 k- H; ^' p9 k' [; T
- ;; If the counter reaches the number of vertices,
3 q/ X: m9 ]5 w - ;; reset ctr and tmpctr to zero again.
8 v$ {) y( }# J; {4 z - (if (= tmpctr (cdr (assoc 90 vlist)))
/ M: h! {' b. D2 s4 N M - (progn. _, z+ y0 I( Q
- (setq ctr 0)
' P& H6 P" B8 U4 f' b' h3 ] - (setq tmpctr 0)
. r4 z& ?- X& A; V0 t: h - )8 r7 C+ @' P* g+ K) o
- )
9 a% ?, `8 P/ u4 ` - (setq tmp (nth (+ count (* tmpctr 4)) vlist))5 Q4 H: K1 A h, f8 b& E7 g2 U
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))2 }& t. \ l0 s/ Q) f9 x. i
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))& m ^4 _' h" E( x, W
- (setq tmp (cons 10 pt1))( N* G1 C* |2 d" }' G8 F. j+ B
- (setq tmp tmp)
. f: |& A% H3 ]+ ^( i+ u - )
6 r" s$ f- d2 l" Z0 k - ;;: S2 s, G$ k: U+ {0 k5 J
- ;; Set tiles for Spline properties. If the spline is rational then we4 A% l [$ \, n* q
- ;; need to display the weight values of the control points, so set
+ E3 L7 q# j8 c3 T( F- R; p0 X6 C - ;; flag to 1.
* D3 y6 F u4 P# m - ;; 1 = rational spline; z: l8 p( C' i' ]* p
- ;; 0 = non-rational spline
1 U2 d1 N3 f1 C G- A s - ;;. X6 B1 m+ D& T( g7 F I4 D: r3 {
- (defun set_tile_spline_props ()$ e+ E( _ k' h9 n* V: e z) @
- (setq rational_spl_flag 0) ;; initialize rational spline flag
3 I1 H' W, i7 [4 D - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))# u7 u4 U$ v% s: S3 a
- (setq bit70 (cdr (assoc 70 elist)))
" t d+ L& y& `, V. M - (if (= (logand bit70 1) 1)
9 O) `: q, v6 C( G' F9 A - (set_tile "SpProp4" "Closed")
$ Y+ o. ]" B+ ?" Z5 E& x - (set_tile "SpProp4" " ")
, W0 T: X. T" O/ l6 I' F; e: D - )
% f* `% R) `9 W9 K/ F* g! h - (if (= (logand bit70 2) 2)! ~5 H5 \' ~3 {9 F) Q7 {
- (set_tile "SpProp3" "Periodic")* D4 l E+ @0 K
- (set_tile "SpProp3" "Non-Periodic")
, D9 j7 c @; a# y* z - )
) y, K0 X. a( |' T5 Y: k* _ - (if (= (logand bit70 4) 4)- d5 j m0 R% `& F' B$ x
- (progn
; } R( U \" d1 `9 b" g" | - (set_tile "SpProp2" "Rational")6 I6 E) X7 i" V4 ]3 t
- (setq rational_spl_flag 1) ;; this is a rational spline
7 Z* t6 P8 E' F! _6 } - )
, [& i1 A; {" t: A9 D* M - (set_tile "SpProp2" "Non-Rational")
& B& ?' y' \+ C% [0 F - )
( X& H$ r. F/ L$ P5 R- V - (if (= (logand bit70 8) 8): l# T N" M3 Z3 g" h) q4 n9 W
- (set_tile "SpProp1" "Planar")
1 Y' v9 W1 m$ \ - (set_tile "SpProp1" "Non-Planar")' z2 p; V' a9 k0 _, h1 W0 i
- )
+ v) J. G) C/ Y; f4 D7 s, f - (if (= (logand bit70 16) 16)
# V2 ]8 C) m4 ^" r0 P- b - (set_tile "SpProp5" "Linear")
- m+ J1 Y/ z5 A3 I; t - (set_tile "SpProp5" " ")2 R4 T) `1 i* ~8 H( O! }
- )
1 K& i# i" w6 o* V - ), r W" J, \3 K U! ?/ N9 J
- ;;8 b$ v* o2 f" H
- ;; XYZ Point values for spline points
3 k @/ R; [! A1 c6 y! ~ - ;; Need to account for WCS/UCS
' f3 _/ g, Y; U" @* X& v - ;;
/ y7 N% C& x( s- N" O8 o - (defun set_tile_cntl_pt ()) M6 D" n. I8 O5 @% f2 X. l
- (setq cntl-pt (cdr (assoc 10 elist)))
7 i+ ]1 A, I# D* Q - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))- `$ l8 ^+ {6 m! {) s% r1 @
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))" ^+ z j) z) n# F
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))0 p5 H) X7 U) y4 k# r6 l/ V* b* V
- (if (= rational_spl_flag 1) ;; if rational spline5 a1 X1 [- Z& p* R4 j
- (progn ;; show weight! E# T6 K, X1 c9 M* f0 s! A; E: \: L3 F
- (setq weight (cdr (assoc 41 elist)))9 ^7 u6 A# l9 I, K
- (set_tile "weight" (rtos weight))' c z, Q9 v, ]$ D+ O, ^; l, L
- ) ;; else
( \1 h( p7 c2 H2 m: ^$ Z0 H/ O( e - (mode_tile "weight_text" 1) ;; disable weight field ? x# c! o& ~9 r9 V A8 [4 b" O
- )* d' y8 v$ Y& ^% V: l. | {3 f. z" j
- )% g* d7 g8 y) `: U2 K) h5 X
- ;;8 B* S( O' y+ {' P" A& A8 T. Z0 ~
- ;; XYZ Point values for spline points- V! n v, m1 y" p
- ;; Need to account for WCS/UCS
0 q1 n. t0 b6 H3 N% }% } - ;;
+ X9 p, Y( ^& j8 r0 Q: ^* | - (defun set_tile_data_pt ()
7 i5 P, Q' Q; k# d- y/ y - (if (not (assoc 11 elist)). W; K; M* @! V$ u" t
- (mode_tile "data_pts" 1) N9 U+ u0 o) q$ C* ^# Q
- (progn( v. x1 T4 k- X; }& h' Q
- (setq data-pt (cdr (assoc 11 elist)))9 j, Q- ` b( J" t" s$ B3 c q; B
- ;; display points with current precision.
0 p) b3 P" N! k: N, Y- }2 L: R$ S - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))% @* h7 C3 m- q% w. N% P) i* w
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
' Q$ l3 M" n: B4 S- k- z - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))- I# U+ m' l: j" a7 U1 m
- )
# g; o$ v& A% b3 G/ {+ u - )
: s1 ?& {- J( G' y* B$ C% Y - )
- w" j' L1 _: ^9 n( F* M Q- I1 V - ;;4 b' v( \. m u3 \6 }; r
- ;; Fit curve, fit spline, or smooth spline surface setting _4 @4 F o% r2 [
- ;;
- n1 |$ B9 ~" t6 f$ x - (defun set_tile_fitsmooth ()' j( Q/ J1 V; r: O1 c
- (cond
( X( `* J- O3 s' j" F! v- E) o - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
# P2 G! w- N4 z6 P" r' O( e9 Q5 {0 q - (set_tile "none" "1")
: y* Q8 K# C$ K8 U; \) E" D, R - )0 U" i( Z* O( A1 M- D% B, e8 i
- ((= (logand bit70 4) 4)
& k- o# ~5 S2 S. V, ]# i! o - (cond
! O1 N7 L/ t, V; e- L - ((= bit75 0). Z. l/ @1 l; z) m
- (set_tile "none" "1")3 C8 w- m7 e8 P7 D
- (setq spltype 0)$ x' y, c- l1 @4 j; j+ i' T) W
- )+ {6 J# U5 Z8 |
- ((= bit75 5)7 ?9 X" u( L1 o2 ], ]* _8 R$ B
- (set_tile "quad" "1"): q m: @1 c2 r8 I: ~# p" `
- (setq spltype 5)1 [2 Z* L+ s5 h* m* N, q3 C: E. G
- )
# `6 d! s: p8 I* u: l2 Y - ((= bit75 6)5 l# N! J8 k' S! t6 K9 m$ l
- (set_tile "cubic" "1")
- y) U* V: d# b - (setq spltype 6)
/ J f" `5 s) U/ s* ] - )
$ i, [: b) {+ E; _ A( V( [( A - ((= bit75 8)# {$ @9 a" s3 E9 |, }1 e: J
- (set_tile "bezier" "1")
, Q" P( e' E! K W - (setq spltype 8)( u; r$ k" x \6 B% U
- )
S3 }+ x* _. m+ |8 ] - )
4 _5 V W& @9 e. z" X$ ?- H* b" W - ). H3 s5 | p: X8 e$ Z
- ((= (logand bit70 2) 2)* R& ]# h, R+ Z5 k4 m
- (set_tile "fit" "1")
2 o; ?- U2 I( E* j ? - (setq spltype 1)& X0 q/ t6 ^$ {* ~. l! F
- )
2 \% v' C2 M0 M3 W h( m0 Q - (T (set_tile "none" "1"))
0 M$ ~* }5 P2 A% q( ~$ ^1 E% Z - )8 v6 F+ X" x) H( ^6 c; _; c
- )
: n; o9 o0 k$ o S& u& j - ;;1 d: F2 C2 u$ \; O: ?* y- B
- ;; Closed or Open mesh and polyline setting/ O: A, S3 G+ Q( C5 x: \
- ;;3 D# e) C. @- Y s
- (defun set_tile_closed ()
# y: b( R- ?+ Y6 s: N0 m+ J! Z - (if (= pltype "3D mesh")
) }0 o8 o# N8 _+ p - (progn
" {1 v9 k6 C4 f* R5 ^) x - (if (= (logand bit70 32) 32)
4 u2 k+ r5 @4 }0 P" L, A - (set_tile "closedn" (setq closedn "1"))$ o& }( i" t6 u1 x* Y6 r9 h' p
- (set_tile "closedn" (setq closedn "0"))2 |, z% N. }! h' e4 U- U
- )) [2 Y; M. O: V* {+ [+ e3 g" I( U
- (if (= (logand bit70 1) 1)
: h0 ?1 N P3 }7 W$ h) T: D* F - (set_tile "closedm" (setq closed "1"))
/ y1 C$ w$ z" q1 H& j, ^ - (set_tile "closedm" (setq closed "0"))
+ E! U) [! I& u. k9 u: [1 ^" k: B( W - )* _$ o6 [" H. i8 h9 x/ y0 _
- (setq old-closedm closedm old-closedn closedn)
3 X6 Y! s+ c9 ^( f$ d. N - )' Y& P; c; g: i$ Q. ~) W- V
- )
( \7 F! h: V" j% P2 J( v4 C( T0 ~ - (if (or (= pltype "2D polyline")
- ?, R2 T* G6 I; Z+ e8 q - (= pltype "3D polyline")
, z. {: }% h7 ~) e$ j8 Y - )! Z* ]4 U9 r; O# _. F2 V8 ^. {" O5 K1 U
- (progn7 S: }+ J; E) ?5 ?7 |
- (if (= (logand bit70 1) 1): D. E- N3 h8 [% Q( C( B
- (set_tile "closed" (setq closed "1"))) L& O5 ^* Q0 W. I
- (set_tile "closed" (setq closed "0"))
+ c: ]7 m( j, q& Z3 M, i$ i) ~ - )
8 N% F) L( r$ Y3 S d+ v - (setq old-closed closed)# R, K( N4 L& k, C' T
- )
; s7 @# W# v2 p; ~: [$ X - )
, _& r$ I! @/ G7 K3 E - ); w% \- Y/ d3 F
- ;; Set common action tiles2 P" l0 Q' j/ K. n4 m
- ;;5 O8 @, A" F0 Y6 @; V
- ;; Defines action to be taken when pressing various widgets. It is called# U" H7 y9 H) z% ?: U
- ;; for every object dialogue. Not all widgets exist for each object dialogue,
% y- V+ X! }! V2 W) n - ;; but defining an action for a non-existent widget does no harm.& x' Q; _# w( u* m- v
- (defun set_action_tiles ()* {% D# v* C8 O
- (action_tile "cancel" "(dismiss_dialog 0)")
1 Y0 F v" h" F0 h& a - (action_tile "accept" "(dismiss_dialog 1)")
: o' U" O. W4 g$ |) {9 _) f- \ - (action_tile "help" "(help \"\" help_entry)")- |8 I: C+ Z. X
- (action_tile "b_color" "(getcolor)")
: v9 e6 E' \, o+ M' k) h - (action_tile "show_image" "(getcolor)")
* C0 Y5 i7 y& {& F2 T - (action_tile "b_name" "(setq elayer (getlayer))")# T, \2 m, H6 X6 h, p0 I
- (action_tile "b_line" "(setq eltype (getltype))")
, X% V$ `) z+ E - (action_tile "eb_thickness" "(getthickness $value)")+ t) B; l1 ?% V- D: |9 a) t2 i/ E4 u
- (action_tile "eb_ltscale" "(getltscale $value)")
, D( y* s9 B$ x% j* b - ( M& v: K+ n: J: w1 k' B
- (action_tile "pick_1" "(dismiss_dialog 3)")
/ j) n: @ O+ @' r9 s8 A- s - (action_tile "pick_2" "(dismiss_dialog 4)")) ^: U1 |! H ~! D# n
- (action_tile "pick_3" "(dismiss_dialog 5)")2 c8 i$ A6 R& `( l: u
- (action_tile "pick_4" "(dismiss_dialog 6)")
) q( s6 I" _) f' ^( J$ x8 [6 d, C - (action_tile "x1_pt" "(ver_x1 $value)")
4 n: a1 p% X- r6 m. n - (action_tile "y1_pt" "(ver_y1 $value)")
) e! H ], a3 D# @ K: L - (action_tile "z1_pt" "(ver_z1 $value)")
) r$ ?" u. K r6 f8 p7 Y f2 Q - (action_tile "x2_pt" "(ver_x2 $value)")
. I) S! g7 [9 i8 G, B6 u - (action_tile "y2_pt" "(ver_y2 $value)")2 u0 r& }6 B; Z g
- (action_tile "z2_pt" "(ver_z2 $value)")- ~( a( X& ^- f& Q& d
- (action_tile "x3_pt" "(ver_x3 $value)")9 z' p" [& A. ]8 f
- (action_tile "y3_pt" "(ver_y3 $value)")
4 [- n, U% Y, p; ^# X: y9 {; a9 } - (action_tile "z3_pt" "(ver_z3 $value)")
+ v+ X4 P- D9 ]6 | - (action_tile "x4_pt" "(ver_x4 $value)")
7 j% n9 j0 K2 F8 G8 J; L* R - (action_tile "y4_pt" "(ver_y4 $value)")$ }( y/ C; e+ `2 K6 f0 u" O0 {
- (action_tile "z4_pt" "(ver_4 $value)")
5 Q% Q4 }- c# w4 H - # L+ H+ p* `3 c8 }( O9 M$ y ^* `
- ;; Action tiles for Xline & Ray4 J" v( r6 I R2 @- A9 ?2 i3 N4 a
- (action_tile "xline_x1" "(ver_xline_x1 $value)")
; k/ d0 H$ b/ b# | - (action_tile "xline_y1" "(ver_xline_y1 $value)")& @8 Z2 M% M y2 K, h) M
- (action_tile "xline_z1" "(ver_xline_z1 $value)")
0 \& e* F3 v8 ? - (action_tile "xline_x2" "(ver_xline_x2 $value)")4 l$ L; w4 d! N: I- q1 j
- (action_tile "xline_y2" "(ver_xline_y2 $value)")
5 d$ j7 C( E3 n! Q - (action_tile "xline_z2" "(ver_xline_z2 $value)")! J8 D) l Y9 E& \$ h; e
- % x! ~) o" T0 G: }( K7 _
- (action_tile "edge_1" "(setq edge1 $value)")
& G8 C) [4 C7 q - (action_tile "edge_2" "(setq edge2 $value)")3 M4 ^4 y( q& X5 Z1 I z7 _: v
- (action_tile "edge_3" "(setq edge3 $value)")
" O0 b2 K; Z" _4 j" D$ [ - (action_tile "edge_4" "(setq edge4 $value)")$ N- P+ ~7 c- X. W
" h+ U7 p& I/ Q% |, m, G- (action_tile "radius" "(ver_rad $value)")
5 D F. z' [" q. v - (action_tile "st_ang" "(ver_ang1 $value)")9 W2 ^6 g3 L3 T4 l
- (action_tile "end_ang" "(ver_ang2 $value)")) f4 C0 H: B; i9 {! J0 V5 T
- (action_tile "end_eang" "(ver_eang $value)")
6 q) Y$ P+ S# ^8 {/ [ - (action_tile "minrad" "(ver_minrad $value)")$ w0 w o$ W" x+ Y
- (action_tile "majrad" "(ver_majrad $value)"), D# I V1 V, y( f- F
$ F5 {7 q$ z6 t$ ?8 W- (action_tile "xscale" "(ver_xscl $value)")9 e( n: c6 z* I# b3 k) T# S2 A/ c
- (action_tile "yscale" "(ver_yscl $value)")
, ?" e3 m2 H$ `' F, ^3 A. h - (action_tile "zscale" "(ver_zscl $value)")
) q" ~3 ]: x; y4 B# ]- X - (action_tile "rot" "(ver_rot $value)")
, f1 l2 w3 M: J' S - (action_tile "columns" "(ver_col $value)")
+ A! X, {0 Q7 g0 Z# e" m - (action_tile "rows" "(ver_row $value)"): k2 B O' d7 _+ O
- (action_tile "col_sp" "(ver_colsp $value)")
- K$ @8 W1 l1 n: h' G& F& _- l+ w - (action_tile "row_sp" "(ver_rowsp $value)")
* c/ b j& l) T) g' l - 5 s' E ?- t1 O6 h' p
- (action_tile "hght" "(ver_hght $value)")
5 f9 J4 Y. i5 D: g% Z; a - (action_tile "wid" "(ver_wid $value)")# {8 A) _- j& ^, j2 Y" o; m/ l
- (action_tile "obl" "(ver_obl $value)")
/ p" M7 {7 c6 i0 n3 s& y" \( p - (action_tile "style" "(style_act $value)")- g3 S3 P( b9 I9 ^: Q
" t6 T- p" [( _: `0 ~- (action_tile "t_string" "(ddgettext)")3 `4 V5 j. O1 M# W6 G
- (action_tile "tag" "(ver_tag)")
* @" S+ M2 {/ Z6 Z - (action_tile "prompt" "(ddgetprompt)")
4 c& {) D$ z' T* { - (action_tile "bkwd" "(setq bkwd (atoi $value))")6 ^5 G; W# G+ n- B- b
- (action_tile "upsd" "(setq upsd (atoi $value))") }+ U% s0 o4 L" R
- (action_tile "inv" "(setq inv (atoi $value))")
) H! o/ F' w' Q3 `" [( x) J - (action_tile "con" "(setq con (atoi $value))")
8 L/ S6 y) p4 y8 c - (action_tile "ver" "(setq vfy (atoi $value))")! b- Q8 o* K8 m) Q; R2 s& D- Q
- (action_tile "pre" "(setq pre (atoi $value))"): R( @# Y2 l9 L# C! a
- (action_tile "popup_just" "(jlist_act $value)")
* R. p& T. p1 z6 U B8 e! s w( r% ] - $ L7 B6 ]' m) V
- (action_tile "closed" "(setq closed $value)")
- Z% L4 X( m3 j, K - (action_tile "ltgen" "(setq ltgen $value)")' h5 {* C; h% O( Q
- (action_tile "closedm" "(setq closedm $value)")1 |% R6 j2 A+ t# W
- (action_tile "closedn" "(setq closedn $value)")
$ u9 ?, i( L' S/ u5 q - (action_tile "next_v" "(next_vertex)")
# Z" C* b* q! G: b - (action_tile "xcliponoff" "(setq xcliponoff $value)")
0 t; Q( l$ J, q6 b# F6 I8 K - # S6 k6 e8 X, E# O, s i
- (action_tile "next_cntlpt" "(next_cntl_pt)")
/ r1 q, d" P# U/ K: r8 @) e' U - (action_tile "next_datapt" "(next_data_pt)")
8 |. N6 x2 ]1 C3 v
" G6 ?8 P# r1 J8 r4 B- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
/ [ i! W$ c2 W/ n - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
+ L/ w9 ~4 H9 f: S! u4 ]" u6 W0 N - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
; a9 U. r% ?" Y - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))"): O1 r1 }5 g1 S/ k5 K2 t
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")( y" i, J( z0 Q! ^
- ; `% Z+ F' j# Y& F
- (action_tile "u" "(ver_u $value)")
7 D! B+ A; Y7 n/ h6 S7 ~" c* q1 P4 Y' c - (action_tile "v" "(ver_v $value)"). w) K- }. N/ \8 ]2 A& h3 z% w# P
- )
- w) V, V0 D4 Q; s$ A5 m
( X# |" U4 j8 B$ a7 F- (defun ddgettext() J4 w+ U m: D" v4 S
- (setq text (get_tile "t_string"))
- e- {3 C6 ]7 B6 E% H - )6 v, r& c$ X- u+ ]; @
- 5 \. d% H0 m' C% k( L1 v# a3 U
- (defun ddgetprompt()
" o2 n$ _# b$ h( b - (setq atprompt (get_tile "prompt"))% T7 e$ G$ l3 p$ }' v, f
- ), h& z! ` o# e9 I. {
4 n& ]* [ b! I- d8 S- ;; As OW doesn't support disabling of individual radio buttons within
/ ?( m/ I: g% I H4 \" c0 K - ;; clusters, a check must be performed as to the legitimacy of the% ?; ?# G, L1 H9 M$ G; q4 V! w
- ;; button pushed and reset if necessary.: t; V# S7 p5 O- y$ Z; q; @4 g
- (defun radio_gaga (pushed)
; W$ H; I' f4 t* Y, y1 s; @# G - (cond
% t- z/ k M S1 a: u0 {. x - ((and (= pltype "3D polyline")
) d8 @; B) b/ `3 k - (or (= pushed "fit")
5 B9 j1 @' i J: N - (= pushed "bezier")2 R# H- G' p/ q: [* w
- )0 a: D5 n8 Y9 p& I! ^3 j% d3 \# n
- )8 l; k% o% ]+ o, A
- (set_tile "none" "1")1 Y/ E% Q( F) l
- nil
8 I/ e" s2 h" U: N# {5 p - )
3 [" O2 P& Y7 B' c - ((and (= pltype "3D mesh")7 B; W: {& F7 X; Z( p
- (= "fit" pushed)+ T1 o! i; k% j5 ^! b" _! K
- )# s; l* ?2 o* g) B9 k! m
- (set_tile "none" "1")
+ }9 Y; o" M( W M' I1 B; e - nil0 }5 T3 f' h! g* H
- )/ T: y4 p' Z, h2 m9 m
- ((= pltype "Polyface mesh")$ |! W/ w: E/ O, C7 l
- (set_tile "none" "1") M& @5 |" D, `$ h* q& j
- nil$ U" R% u" g" V
- )
9 Y2 {& B! q9 ~$ v) b - ((and (= pltype "2D polyline")
7 ~' [ {5 D2 X6 q6 h0 M! v - (= "bezier" pushed)8 z3 v3 I7 s+ d2 v
- )& E. }2 a& |5 B3 v
- (set_tile "none" "1")
: \3 r+ e: G% {7 L: U& o8 A" q - nil
& J5 n: u/ W$ I& G/ @: D: W - )( R0 a3 s: s1 { e
- (T)
8 @5 M2 G' c9 U C0 y - )$ C" K& n7 l9 T8 r6 m- m
- )
5 E' ^; v1 q7 p Z% c: K - ;;
9 Y+ f9 `- S- M4 A8 b - (defun set_uv (type_n)
& ]% |# s& J- c0 @4 L8 f - (setq spltype type_n)
( O3 T v. P" e4 W9 w4 k5 L - (if (= pltype "3D mesh")) I5 j% P- F7 h4 ^- v- m
- (if (= spltype 0)( H% P* Z8 i6 O* Y* Y I
- (progn
+ O9 b" Y/ D: d o6 _" Z# G3 w - (set_tile "u" (itoa (setq u 0)))$ ~/ ? J: Y% z" s; O* q; c5 _5 R
- (set_tile "v" (itoa (setq v 0)))
, W2 P! E- {4 E9 T m# e - )
" r; D; e# f: S4 B8 N6 o' x - (progn
s: p+ I( ?6 H - (if (= u 0)3 _' V" G' D, l6 x9 ]: ^
- (set_tile "u" (itoa (setq u (getvar "surfu"))))
; w) F* B5 K3 ?4 _# G0 t* g - )1 o3 D2 f2 h, W6 f5 v' x- A6 K
- (if (= v 0)# A8 _1 Z, e, x, @: H; N, n
- (set_tile "v" (itoa (setq v (getvar "surfv"))))
, c* _8 M; h2 ~' I" ^ - )8 N& s% |- q7 Q3 {. l
- )
+ w8 {8 w& p# \, Y% H# E - )" r% u9 H$ b* h# Z( m7 @
- )
, E$ ]5 f, }; C- S) h/ d - )9 j: p2 V7 z2 B# F W- e
- ' l) b. S+ N' [# I- v- Q
C5 V9 T! i. q7 V e+ U0 `- ;;" O+ J2 m; S" [0 z! ?% V
- ;; Verification functions* A/ i& v* v4 n) t
- ;;- M* W6 J/ u* d$ ^* q( s
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or/ C. O8 g7 |: `) x
- ;; distance value, the tile name, and the previous value as arguments.* @: J8 C2 z) x) {, m
- ;; If the distance is valid, it returns the distance and resets the tile.
+ B4 z# C2 W0 L; \# ]1 C, K" z - ;; Otherwise, it returns the previous value, sets the error tile and keeps
3 v3 G5 `$ I k - ;; focus on the tile. Shifting focus to the tile with invalid value can% V F" e! B9 V' x0 r
- ;; trigger a callback from another tile whose value is valid. In order
* V: q$ S& |" N9 Y/ h" O3 O( h - ;; to keep the error message from being cleared by this secondary callback,- X" ^; g8 [ o$ l, @4 E
- ;; the variable errchk is set and checked. The last-tile variable is set
! p" j/ Y4 y+ Z" T8 Z {: ?& ~$ m - ;; and checked to ensure the error message is properly cleared when the& N0 x5 @% l6 Q* ?
- ;; user corrects the value and hits return.
" q$ ]$ O& \& X7 Y# B J& y - ;;4 J* `+ u8 q# k v% P% y
- (defun verify_d (tile value old-value / coord valid errmsg)
" ~% \3 Q; H5 B/ |0 m - (setq valid nil errmsg "Invalid input value.")
1 ]0 z; H/ S" l - (if (setq coord (distof value))9 }3 g' R7 v& D5 z
- (progn) A+ v% L2 X0 Q& Q9 T* a; {
- (cond
, z! V1 q; M" |4 F+ J) g4 i2 D - ((or (= tile "radius")
2 J4 j5 w3 M9 M; \+ G% {3 g - (= tile "hght")
( ]3 n/ A3 ^9 v$ }; `& \ L" A: r - (= tile "wid")
2 g" F* u: c8 ^- X1 H- C; ^# ~ - (= tile "majrad")3 d( v/ T @' K4 k
- (= tile "minrad")" Q; t5 ?5 x) e$ W$ K5 V
- (= tile "eb_ltscale")
- j0 c& q8 v5 A) ?6 ^ - )
Z n; v# m) t4 n, c. O - (if (> coord 0)# }) v: _! B4 f$ ~5 n q7 W# r
- (setq valid T). A* T& L! Y5 X2 K9 M
- (setq errmsg "Value must be positive and nonzero.")
- b: |( m5 h, ~; A) i - )- @" t& B; O( N$ H' D8 }
- )
# I+ z7 H I7 \5 U - ((or (= tile "xscale")$ Z* X7 q, _0 a
- (= tile "yscale")1 q" W8 r# s$ U6 n: `2 H
- (= tile "zscale")! G7 o& K; T7 j6 Z4 c0 q+ [" ]
- )
- H3 o/ i( ^' o$ ~8 t* T - (if (/= coord 0)
; B0 b- W5 b* H) l* `; _, f - (setq valid T)
" W' D/ F) @0 w" C1 V - (setq errmsg "Value must be nonzero.")) \% J' k9 z4 g; Z
- ): @' Y) ~* h9 C3 O9 B$ V# N
- )8 q3 ?' h* _4 `# V6 ~5 p
- (T (setq valid T))
: q1 `: k2 S3 r2 ? - )
6 R9 ?* j1 p% b r2 ] - )7 a b2 t- ]3 U# @2 l
- (setq valid nil). U W% r7 I8 L# Y4 c6 B5 f( r
- )
9 u* X" V$ P* ]4 g - (if valid
; p! w1 D' F9 }) A6 V6 s - (progn
" B, V- _; y; a - (if (or (= errchk 0) (= tile last-tile))( W% ?! |; ~; f% g9 C
- (set_tile "error" "")5 m) \" _" H d+ i3 p$ g; V5 q4 [2 h3 b
- )0 k# F7 z8 t* g+ N
- (set_tile tile (ai_rtos coord))
# d5 F" u/ r0 N/ g - (setq errchk 0); k) M9 D- M( t9 P! M2 [
- (setq last-tile tile)( y9 W, c* R0 S
- coord U2 E8 u D: }$ y3 c! h
- )
: F* ~6 d9 `8 p6 q& h5 i - (progn
, K( Y- @( w( N! A - (mode_tile tile 2) ; Move focus to offending field
7 a1 f, d$ [4 m5 l& L - (mode_tile tile 3) ; Select offending text
. i% g' A2 {/ `. h8 l3 x! C5 ^/ p. J - (set_tile "error" errmsg)
7 p* y. k/ t9 P: q - (setq errchk 1)- w2 ]4 [4 l: i- _$ ?
- (setq last-tile tile). S" ^$ V0 ` E* A
- old-value6 f) ~ H9 L+ }- Q, r
- )
) _: z) s3 f. T6 a3 B& q% N0 W - )9 {( c* X3 O w9 l) x4 I
- )
. g/ O* k- H& c5 U' y9 i - ;; Function for Xline coord edit box checking.
' L! ~9 C" P$ B( } - (defun verify_xline (tile value old-value / coord valid errmsg)% p4 A6 N1 i9 w7 h. u, V6 F
- (setq valid nil errmsg "Invalid input value.")& d2 _# T ^5 D
- (if (setq coord (distof value))
% N; g; i* S4 a" C+ T& m5 L7 x# h - (setq valid T)* X M' A0 c3 k7 ?0 ?
- (setq valid nil)
5 z: e: X, e) x0 A - )( {, Q. p2 Q ]- e. S6 B$ G4 m
- (if (and coord
* L! ~4 u" U$ F! G2 P8 S V% t' o - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) ), p" W) j# S% h
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
2 s+ L) b3 ~2 {* B - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )4 M! D; d, p- f' d
- ). z1 b) ~9 ~: x7 \
- )( z6 _; k) L O% l3 v& W
- (progn/ O: L. |/ N1 C* q- j" y
- (setq errmsg
- g3 ~6 q) P! B - "The Root point and the Second point cannot be equal.")
( T$ @$ z4 V! U9 O r2 C0 O3 f5 F - (setq valid nil)9 D3 H1 X4 D* Q {! O
- )
$ [, q5 z1 N( ] - )! B; u$ [: n5 _! c* L6 l
- (if valid
6 ?+ K' T; a2 s - (progn% B% Y; ?- J5 N; ~; \' M2 w( e, P m
- (if (or (= errchk 0) (= tile last-tile))# s o. }4 Z; ^% t8 \9 R& M Q$ A
- (set_tile "error" "")' j* G, p2 p: L1 v9 [( F" y: i1 s* G$ ~
- )3 N: Q) f" p- S% K) J/ x
- (set_tile tile (ai_rtos coord))0 g# R6 ^( l7 |
- (setq errchk 0)
4 E) Z6 c$ Z2 O& z - (setq last-tile tile): c$ |; a% C/ {) K* P6 ]
- coord
, K. P( g5 ^/ j6 D - )
; m# u ]0 d$ i& E" l @ - (progn* _+ [8 R+ i4 [" K; M" H% j+ X+ k5 T
- (mode_tile tile 2) ; Move focus to offending field6 y& l( e; u) ~% A
- (mode_tile tile 3) ; Select offending text# ~5 T! I( [6 i/ ~# |; i5 W4 g
- (set_tile "error" errmsg) s5 Q! g' Y$ T+ X
- (setq errchk 1) H! s- S* h0 `2 P
- (setq last-tile tile)2 I' E" I2 n/ v. a4 x# n) B$ N
- old-value
8 T0 m/ Z5 W5 }& X - )
5 T, {' a0 g* u* D - )1 ]/ } P+ ?+ x1 O5 M
- )
: O) E8 H1 \! U1 O+ a
3 f; Q* {! m4 T3 S- ;;
- a/ h2 h/ b8 V1 x' i - ;; Verify angle function. This takes an angle and a tile name as arguments.
( r7 Y( ]( m# c7 Z# z. M6 b. m - ;; If the angle is valid, it returns the angle and resets the tile.
4 E. t$ V: k" ^ - ;; Otherwise, it sets the error tile and keeps focus on the tile. ~1 p9 o a' [5 k8 t
- ;;
( m. R# }) u6 D& V9 b - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)( z8 V3 m' J4 }5 L3 H9 @; {
- (setq valid nil2 Y4 L. J0 q$ N7 D- Z# U, `) H* S
- errmsg "Illegal input value."' o4 f$ n% G- c. l! j {4 |
- )1 k- R( U( n& u4 f) U+ G" }
- (if (setq ang (angtof value))$ ^# r& d- ^* p- K; j' W0 H
- (cond8 s9 Y" |1 e \* _0 }2 F# S- E
- ((= tile "obl") ; Restrict obliquing angle6 K) L' P c0 I2 g8 v% c
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
% A* h+ k* ^" ]9 @! c3 G8 s; i - (if (or (<= ang oblqmax)3 \: x4 D X7 x( B, @: b: `3 X3 t( C
- (>= ang (- (* 2.0 PI) oblqmax))3 b) e$ D6 b, M
- )
: d) F$ T4 H7 o1 P& t4 w" Q - (setq valid T)
# f' V8 Q; z7 w: h% D1 r/ N - (setq errmsg
7 a( R, w6 `1 B' A/ |# T - "Value must be between -85 and +85 degrees.")
! n" Q- H( K3 ^4 p - )
9 W b% d' W' ~& n* l0 W9 \ - )+ u- ^* p$ |! V" [1 [7 x
- (T (setq valid T)) ; Other angles not restricted
6 i9 }3 U; D0 D - )
7 ?& l7 B9 a8 U$ b( i2 g - (setq valid nil) ; Invalid angle input
7 @2 X8 M4 O) m3 Q& D! m - )" x; I1 D& g) m# ~' ^+ p
- (if valid
9 z1 w ^: \! K2 D& @ - (progn
/ b7 n5 o3 \" y b0 J' P* r+ c - (if (or (= errchk 0) (= tile last-tile))
9 D7 c" u' ?( ?, m" j3 b - (set_tile "error" "")
( @, L8 N' d) F2 y. k - )1 p9 R# j% N4 s
- (set_tile tile (ai_angtos ang))
' ~" d& X- r& \5 _$ k - (setq errchk 0)
& L2 [; a L6 K/ i4 H1 U+ Y) _2 M5 v - (setq last-tile tile)
N4 g: J" x9 I$ D* o& H8 h - ang; s; j( t* ~5 F
- )# ]7 L5 K$ N: ^; C i1 l
- (progn
) C& G# g( U' S* o. {8 s5 _+ Y ?1 ^6 C - (mode_tile tile 2) ; Move focus to offending field6 _3 t5 |% }, i) q' ]: H% S2 f
- (mode_tile tile 3) ; Select offending text* T. p6 }$ _8 X3 [# y
- (setq last-tile tile)) w2 B- {- [5 M3 d7 B9 ?2 R
- (setq errchk 1)9 K4 i& g6 y2 d2 K
- (set_tile "error" errmsg)
/ n7 C6 K$ ?. g6 h6 `, f8 b - old-value
* ^% r% G m5 `3 [7 V - )
4 X$ `3 E: J! R+ F - )
7 h: z: Z9 k7 G, ^ - )
, p+ D. y3 R$ _+ _ - ;;" P2 m9 K/ P* B# |2 l4 Y
- ;; Verify angle function. This takes an angle and a tile name as arguments., ~! L0 j: @8 u5 o7 O. D7 Z& d
- ;; If the angle is valid, it returns the angle and resets the tile.
( V T( m9 u$ J' b9 \' P+ |7 P - ;; Otherwise, it sets the error tile and keeps focus on the tile.8 ~% F! |7 O5 T8 ^% u- R
- ;; This function is specifically for the end angle of the ellipse object. If9 ~# _! a5 p1 v) V. V V
- ;; the end angle resolves to zero then we want to display it as 360.
* U) u6 h* X7 K4 j" c( M9 Z, b - ;;
8 \; Y( s& [# `( v" j - (defun verify_ae (tile value old-value / ang tempend)6 P9 Z! Y& B' Z0 E' p; ?. b; m/ o! H
- (if (setq ang (angtof value)); A8 B- f; i9 w9 C- x e9 ~* `' |
- (progn
7 a# K4 E1 C; o! Z - (if (or (= errchk 0) (= tile last-tile))
/ S; n5 J: t) W- N+ f' l# Q - (set_tile "error" "")$ _! @ m; ? w+ c* @9 Y+ v' W
- ) }4 i; X6 W, E8 N6 T3 H+ Z
- (setq tempend (ai_angtos ang))0 e5 u3 A$ S$ b4 l
- (if (= tempend "0")
5 i- {0 H7 y+ [2 l' E. c - (set_tile tile "360")
0 Z& m# r/ \2 u& F% y - (set_tile tile tempend)
, V1 G) C2 z* p* P0 ^0 ~ - )4 N& a9 q" z& a# P: M
- (setq errchk 0)
. L4 n$ R) Z$ ~* l - (setq last-tile tile)
, g& D# k" K. @# A+ P* ^' v6 n - ang
/ C: p3 J8 V; }* w* p* Q - )' d3 ?9 y! n: h& x5 Q) n( A
- (progn
0 Y- h9 _5 O8 V2 e9 z' h - (mode_tile tile 2) ; Move focus to offending field5 p% x# l3 j7 s
- (mode_tile tile 3) ; Select offending text
2 B% q+ q; J, S0 n' x L# S - (setq last-tile tile)
`, F3 U- y! z6 P) M) F - (setq errchk 1)
* h: L& y# b8 q# b - (set_tile "error" "Illegal input value."), R, |/ k( }1 T5 m# X
- old-value' h. J$ M1 n5 k7 a) W# ?
- )
) k, H& T& n r - )
& i+ W: d- L2 f3 a - )6 ? s* x7 R) O |( e7 o
- ;;
4 i' l+ [, [+ B& g - ;; Verify integer function. This takes an integer and a tile name as
8 c, o! x4 R7 a0 E - ;; arguments. If the integer is valid, it returns the integer and resets the$ t# m* n, v: X- Q3 l5 l. [! m8 E
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.3 @9 u3 f1 l$ w5 E6 m
- ;;; ?" t8 v8 k* J V' g) M0 U( a
- (defun verify_i (tile value old-value / int valid errmsg)
( R( [. A( W* r- W9 ?) C4 C6 { - (setq valid nil)
- y% b5 v; x% c% D8 }, u7 j - (setq errmsg "Value must be an integer."); _! S4 b$ l1 z- @1 } v
- (setq int (atoi value))( l, X4 A7 l5 O/ m* \% J+ \) F% S
- (if (setq intchk (distof value))
; v! W9 f5 }' H: T6 I2 c, g - (cond! y. ~' u# _6 |
- ((or (= tile "columns") (= tile "rows"))
. m+ z1 W2 B, J! C - (if (and (= int intchk)
" m2 X1 x( L) C. F0 }, k' p - (>= int 0)+ o0 d+ [5 B$ Y" S
- (<= int 32767)
- z" S$ a! ?' E' ?" Z - )/ t E& J6 L D! Q, g# L
- (setq valid T)
, f4 R# R7 \6 b4 f; q- Y$ g - (setq errmsg "Value must be an integer between 0 and 32767.")
% ]+ C. }7 `1 Y; E4 q7 _$ g - )
5 J* Q6 L/ o! I8 _ - )3 D8 }( E* g" s. C! w0 B
- ((and (or (= tile "u") (= tile "v")))! b7 u2 d4 G3 H
- (if (and (= int intchk)
5 }$ H+ Z* H/ A: e - (>= int 0)
# N) K* V0 c% ?6 m) {' t2 r! A - (< int 201)' L- v* ~: R# X# f2 p- l& O; Z
- )4 g1 c+ A% {4 N5 D6 I: u. E- X
- (setq valid T)
; I8 C; g! u$ `1 q+ U9 y7 m { - (setq errmsg "Value must be an integer between 0 and 200."); ]6 A# l, m; G8 G- a: L8 f
- )
P- D. R V# ^( }7 @ - )
7 z! C2 K c; Z - )
# N7 q& M9 X1 t - )
, i5 K& C! u/ c/ i5 p" A$ _( R5 X/ x - (if valid
; K2 r" O7 K g - (progn
6 b& x) h# u- t0 K8 {4 g - (if (or (= errchk 0) (= tile last-tile))
. R7 Q3 N* o7 ~5 C) Z - (set_tile "error" "")
- s. F& u# I' G! M3 D6 Y - )
- R9 {1 R. `; H. R7 e$ h - (set_tile tile (itoa int))8 o# C; `1 Q' w! l) j' |, [+ Q7 B
- (setq errchk 0)" B, z8 E% A& v7 Y7 U2 j) H
- (setq last-tile tile), S0 [$ e' d0 {" ~
- int
9 e3 T5 W2 B! X- I6 G - )
1 h9 A8 b. i4 f. x8 C - (progn
, m/ m& M8 r; C4 E$ Q+ f, V$ q - (mode_tile tile 2) ; Move focus to offending field3 t" W- O5 o0 H) d# C r2 D
- (mode_tile tile 3) ; Select offending text( U+ y t2 @& O
- (set_tile "error" errmsg)
1 P3 f! U- Y7 _& B- \; T - (setq errchk 1)
$ ]6 `) o$ i6 n/ }, n - (setq last-tile tile)
5 ~8 u" K' p1 w2 [4 r - old-value
; x4 i: ]! n: Q3 z y6 Y - )
2 x4 X4 M w0 Y1 a - )3 G0 ?3 M2 s. G( r: u9 e! `7 S0 \
- )
! C" d$ z" ~# l1 b! c - ;;
) U: x& D Z+ p6 t% \1 f" M6 `4 s - ;; Functions that verify tile values for integers
" ^2 Q1 D. A# M2 p. N/ R, }; w - ;;, \+ L% P8 |/ \0 }7 K) A
- (defun ver_col (value)
& B7 B. C0 m" I6 m* x7 l8 B - (setq columns (verify_i "columns" value columns))
# [2 G* t D0 v+ r* |' D# k - )! F$ B1 |( Z# s8 S5 y+ f- q
- (defun ver_row (value)
2 \5 h5 A4 `) A4 P5 O( {- q r2 V - (setq rows (verify_i "rows" value rows))
n$ o# F# ^- I1 U& z8 _' D7 S - )
+ _5 Q7 G4 I0 K. t+ t% r - (defun ver_u (value)2 v0 z9 d' H7 i1 B' J
- (setq u (verify_i "u" value u))
2 R: P- u' j4 S; { - )2 u) G4 Y: u6 V% _, c R H) Y- R" z
- (defun ver_v (value)! w3 o7 m% `" b5 d& K$ p
- (setq v (verify_i "v" value v))
: P9 H2 R! N% p( b) u" d - )% n/ @; _9 G) L" b2 s- {1 A3 y P4 U2 o
- ;;* u: {( n2 F4 v( V, O- B5 t
- ;; Functions that verify tile values for reals
" M! `. `% e0 k - ;;
" @/ ^1 m! H7 t* X* J4 r) V - (defun ver_x1 (value). ?4 B$ q! G" o: [4 C) K7 |- |- ?
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))# H' `1 r5 N" I0 Z, Z
- )7 l$ U+ i" l6 U, I q
- (defun ver_y1 (value). w" P8 {) l+ I5 E
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
* p" L8 t: T3 d - )
3 e+ W- g6 G# X4 G0 h - (defun ver_z1 (value)' j0 r" L8 U, W, [3 B f2 x
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc)) e7 G- }1 P! K) S2 {5 D
- )
. N8 U4 R; F1 f - (defun ver_x2 (value)3 ~3 j& Z$ t* P/ }+ q& w9 x
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc)); a' G, d$ d6 f! P- Z W
- )
5 a9 V- H1 J! P6 W6 q - (defun ver_y2 (value)% Q% Y' l. e: M- d1 E, `& H( A
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
; M T% L6 S1 ` a+ H ? T - )
6 J( n# G5 N+ Y. I - (defun ver_z2 (value)+ }+ v% W% g. E# `
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
: O9 b: J8 P# R4 M& I8 O - )
& f0 u2 V* Q$ `5 h1 H - (defun ver_x3 (value)
7 X, R ~: I# {& ? O* \! v - (setq x3 (verify_d "x3_pt" value x3))
0 f$ e, p1 h. H! X7 o3 n - )
. t q* p, N1 E* O - (defun ver_y3 (value): z2 u; r' l1 Z
- (setq y3 (verify_d "y3_pt" value y3))
$ ]! ^% ?, p" z2 g/ s/ _& _ - )
& a9 K0 R; ?( Q5 p6 ^ N$ U - (defun ver_z3 (value)' ]8 }4 G" @9 ^0 z8 w" U/ l
- (setq z3 (verify_d "z3_pt" value z3))5 ?3 R& i Y; q4 {) T
- )
+ U" n+ F, W1 b. z1 Z - (defun ver_x4 (value)
5 i: t5 Y* e1 r, F/ b X - (setq x4 (verify_d "x4_pt" value x4))+ U4 K2 I% g( f8 S5 f. f$ h2 b4 K: ^
- )
1 g5 k, t5 \ i- L - (defun ver_y4 (value)
5 ]: m l+ A9 L) e: L2 U! i/ G2 d - (setq y4 (verify_d "y4_pt" value y4))
4 i- L# X) V `9 P - )' |5 R9 f: |8 @, b$ q/ X
- (defun ver_4 (value): f4 L$ \, c M' o, _2 I( x
- (setq z4 (verify_d "z4_pt" value z4)) W* P7 H6 A: n; W
- )5 s+ t5 _5 T4 W, B4 }% }* o# \: z
- (defun ver_xscl (value)3 {: A+ j3 a' j2 m$ f; g
- (setq xscale (verify_d "xscale" value xscale))& I5 N0 u W6 h- v
- )8 _. p5 g x4 ]' C4 |
- (defun ver_yscl (value)
. L( m4 l$ i; m! C6 h6 ? - (setq yscale (verify_d "yscale" value yscale))5 @% v+ w3 R: f/ V, M- \; F# R
- )# b# ]+ Y$ Z3 o8 s1 n9 ^
- (defun ver_zscl (value)
0 q8 r3 V$ u' p9 ~0 W! x- ^6 I/ u& f0 Y - (setq zscale (verify_d "zscale" value zscale))8 s! v* g# M) }4 J
- )
9 G# N' T& L. ^- N0 p9 \$ x - (defun ver_colsp (value)7 U* g4 I# Y2 ^, G1 b @
- (setq col-sp (verify_d "col_sp" value col-sp))
4 V) H! y) h% i: |9 O4 p - )' Z/ j" H) s; m5 ^9 T- a5 I
- (defun ver_rowsp (value)) ?: i8 ]$ y8 h2 e6 E8 m) h, f
- (setq row-sp (verify_d "row_sp" value row-sp))
4 H j1 W3 F( O3 u& _ - )* r. L% J+ A. X; m$ M* C0 e+ ^+ l
- (defun xclip ()! c0 n1 J/ V( N
- (setq xclipmode t)
( }; A8 ~. C# B$ T4 b; H- m - (if (= xcliponoff "1")
W4 q/ Z- O" q0 W' ~ - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on") D! h; ?* I, R$ j0 d# U* p) L) z- ~7 ]
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")
# X# Y1 X: n% ~ b" c8 w+ n - )
8 v0 C) u" }7 I0 i& _' ? - )7 m; V- E3 ]4 X+ V7 A
- (defun ver_rad (value)
3 Q2 D S$ H2 g' m - (if (setq radius (verify_d "radius" value radius))6 e; h E, A( K, O6 F
- (calc)
: L" g& Y" N* y8 }, T- D1 }, l - )3 `5 B+ G( b2 O+ s
- )$ d' c2 S O6 g& M8 q
- (defun ver_majrad (value)$ \. G+ Z$ j: e+ ?1 i @
- (if (setq majrad (verify_d "majrad" value majrad))$ S- p1 x' `0 {& k% P5 Z
- (ell_calc_newval "majrad")) u4 B. @) g1 ]5 y' \
- )
4 t, @7 d/ u6 ^( I7 e1 D q - )# n% H& ^# e- N. ]( f
- (defun ver_minrad (value)
' X S& W X% f8 t' ? - (if (setq minrad (verify_d "minrad" value minrad)): m. {' X. m8 u" p& Q+ K0 q6 g# p' N9 v
- (ell_calc_newval "minrad")
0 _+ f0 K6 V* t3 c% Z - )% D6 I6 X. h" X) L( p6 y3 W6 t
- )% v8 m$ N5 L- \! J) _
- (defun ver_hght (value)' f( H+ d1 Q+ d. N
- (setq hght (verify_d "hght" value hght))
7 H2 h! `' ?, o4 e) _' Q' o2 g/ a - )# U6 K3 H+ B! z( ~* |1 X/ V
- (defun ver_wid (value)
. l" n# {) N, w5 ~" H' j# H - (setq wid (verify_d "wid" value wid))! x+ c: d$ E7 _, N1 K l5 G
- )
# o/ \/ @2 B( @4 u4 C2 z( f, D0 N - (defun ver_xline_x1 (value / temp)
; m$ n A# y0 L) f; P- u - (setq temp xline_x1)7 R8 f9 A& u4 H
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
) K0 i8 |$ t J6 u6 n, t V - (if (/= temp xline_x1)6 z" J$ s3 f5 x. o& N2 C$ Q# b: H
- (progn (modify_xline 0) (set_tile_dirv) )
. O4 R5 f3 m, g3 l! b6 s5 k - )5 Z3 v" f, Y8 N6 ~* h4 A9 R
- )
0 [' a' {. q8 C, f* e y - (defun ver_xline_y1 (value / temp)
2 L! O' @- `) t2 } - (setq temp xline_y1)6 O$ {5 n* ]& f! D) |
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
! E5 ]. }& O2 C0 d - (if (/= temp xline_y1)% h5 S( s% ]1 K$ t# z0 l8 [7 g
- (progn (modify_xline 0) (set_tile_dirv) )2 U/ ~; @1 a6 B7 m6 v. r7 {# S0 H( s
- )( S0 q: |2 D) W2 C( t
- )# z& m: ^& q$ u) p: g* ^- M6 ~
- (defun ver_xline_z1 (value / temp)
6 o2 c) q3 x* R- a0 ^ i - (setq temp xline_z1)! A% T2 c7 q% k% t2 `: m6 R
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))& e6 V; ~3 c0 ~0 T
- (if (/= temp xline_z1)- c5 G p9 W/ o" C9 J
- (progn (modify_xline 0) (set_tile_dirv) )
# H2 a6 @2 \8 U% v: x w8 x - )% r! s: M! U( X
- )/ e& [# E1 O! d1 k/ u( Q& u
- (defun ver_xline_x2 (value / temp)
6 O4 H4 R! |) u" u+ n5 H$ } - (setq temp xline_x2)/ A' ~# L4 z/ b# g4 e" A
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))/ t3 ]: L% N6 F, U3 y2 [
- (if (/= temp xline_x2)4 C3 c3 t9 k1 }9 b# S+ y
- (progn (modify_xline 0) (set_tile_dirv)). D% m+ j5 ]9 f3 O. z' T
- )# ?& z& N2 Y1 w4 j6 F" T( g& r- n3 _
- )1 D! k/ h0 V5 S+ d
- (defun ver_xline_y2 (value / temp)5 x) A: H; t/ y
- (setq temp xline_y2)
1 ^, H" a# N( X9 c# c; L - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))* O( ~2 h" e/ F* D3 k
- (if (/= temp xline_y2)* D6 \: ~. D6 E
- (progn (modify_xline 0) (set_tile_dirv) )3 Z0 L' E1 I3 C8 z, v! q- l
- )7 z) P5 L( U2 X3 T3 n8 M! D
- )2 m: u+ Q) g" X
- (defun ver_xline_z2 (value / temp)
3 @5 B8 ^0 Q U0 e - (setq temp xline_z2)
7 B/ q: w- E7 k1 f8 x9 I7 ~ - (setq xline_z2 (verify_xline "xline_z2" value xline_z2)); r: |8 o. Y; S1 j7 }
- (if (/= temp xline_z2)
9 s4 j6 _% V0 C, C9 S - (progn (modify_xline 0) (set_tile_dirv) )# R' F! D, `" g2 v2 ?6 |* x) G3 o
- )
, O$ Q% B- l# p6 k, Q - )& b r- h" ~0 Q0 L; L: |
- ;;4 o3 v/ m9 |: f' {0 y! Y
- ;; Functions that verify tile values for angles
0 I' C$ G% S& i2 j/ M6 p1 q s - ;;. A* ~( z7 ]" q6 g7 t5 M( A
- (defun ver_ang1 (value)
& P: X! r6 F* R* F$ I& P2 O - (if (setq st_ang (verify_a "st_ang" value st_ang))
' @4 Y, J6 E$ f8 a, D A - (calc)6 T+ ^( `+ [ Y) ~1 i9 j4 I5 G& ~7 S
- ) v( c) d: v, N$ O
- )" P8 a& H& ?; ^1 `6 w
- (defun ver_ang2 (value)7 y) Q* z9 S8 u: d
- (if (setq end_ang (verify_a "end_ang" value end_ang))
. r1 f4 n$ L$ L; ?7 i0 T0 N - (calc)' u4 x i1 h0 S% ~3 b5 [" H
- )) ?- k& [4 d6 ]! M, p$ H' j
- )* R) }8 G4 q* T# | G/ K W
- ;;9 p6 I& V) m8 O# g4 \
- ;; Verify tile value for ellipse end angle. Handled slightly
: i# ? V+ z: [7 W' ?( g - ;; differently than the other angles.
* {# i* {$ Q. T" X# R - ;;
3 ^( _- w0 l+ v7 p. n# W& R: p - (defun ver_eang (value)# \6 k1 o) Q c0 j0 E
- (setq end_eang (verify_ae "end_eang" value end_eang))
9 p' i1 ]' w) d - )
9 Q% Y( {) o8 ^- z$ V0 `, V - (defun ver_rot (value)
) h' ?% C1 w' u+ [ - (setq rot (verify_a "rot" value rot))
5 G4 N, n# V7 f' C - )
4 h# s8 C$ {3 {" q2 n4 t - (defun ver_obl (value)
% x( \9 P3 U* T- [ - (setq obl (verify_a "obl" value obl))! h# f# d, q3 d% @" K/ n
- )
4 z3 Q; R' b$ ?" n A& X, T - ;;& `1 s& Z' H( H- e
- ;; Function that verifies attribute tag field for null string,8 z9 z6 i; N$ E& ^* C" N
- ;; or a string that contains one or more spaces. Tile value" o4 v; H. Q) f0 {3 Z9 n, U) @
- ;; is also converted to upper-case as well.
" n" O% l) r- P& Y2 X! [ - ;;
3 s4 T# I1 n# [) y5 A( F4 S4 R! E - ;;# O, P, l! l& V6 {* P
- (defun ver_tag ( / tval)/ e- V/ ?: Y; ?
- (setq tagval (get_tile "tag"))
# u9 G8 B2 ]- F$ j- y4 E9 ^) z - (set_tile "error" "")4 } V0 A! Q4 K1 B% x8 S) L
- (cond6 U' |& _+ ~: V- a: i& t
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
: d, e4 J$ q# I3 Y2 p9 k: Q; L - (wcmatch tval "* *"))
2 c. N2 J6 l5 C7 Y. | - (set_tile "error" "Invalid attribute tag.")% w+ {/ Z9 T# N9 O( ~8 G: G
- (mode_tile "tag" 2)2 C# x. n! s" g) g& L( \( @5 ?" g
- (mode_tile "tag" 3))0 q3 Z5 d; s: t# E
- (t (set_tile "error" "")# f! n$ ?8 | F; e
- (set_tile "tag" tval)
/ X1 T; k( T9 n' B) X' O- _ - (setq attag tval)))
/ ^8 W+ Y9 h, j/ \) `1 w8 `; Q( R - )8 j7 L, {- j: `) }- I( V' N
- ;;" o5 i9 v/ c# K* u+ H0 y
- ;; Calculation functions1 | r! S; { f* N: L6 |
- ;;$ C; s$ x8 n# s; |5 ]2 K. a) e
- (defun calc ()- y# t) ~2 f$ _6 s
- (if (= etype "LINE") (line_calc))
. u& x2 B( w* J5 a7 R& B# ] - (if (= etype "ARC") (arc_calc))
7 E w; f1 k4 ^; i - (if (= etype "CIRCLE") (cir_calc))
( r+ q- Q9 u4 g+ t" u5 r: h - )* ?" S5 {4 u2 i1 z
- ;;8 H, {% ~9 ~7 D6 m: h* } y
- ;; Calculation functions for lines, arcs, and circles
5 u- y/ U ~6 w3 G2 I0 I3 u - ;;
# ?! ?& }6 J, e5 M) a - (defun line_calc ()
/ N, I! Y1 E: j+ k5 I - (setq stpt (list x1 y1 z1))5 P, d: H9 `! S
- (setq endpt (list x2 y2 z2))5 g" |9 W8 T, `) g6 |. L% q
- (set_tile "delta_x" (rtos (- x2 x1)))3 i( u$ W$ \& X/ W( Q
- (set_tile "delta_y" (rtos (- y2 y1)))
& l1 b3 g7 j, z5 h% ~4 o, u/ H - (set_tile "delta_z" (rtos (- z2 z1)))9 Z/ C4 S, J9 ]( f+ b
- (set_tile "l_length" (rtos (distance stpt endpt)))
( I+ C- e6 F) b" h& O - (set_tile "l_angle" (angtos (angle stpt endpt)))" T3 M+ t! m0 q! M% S: S
- )
% a' R S. Q4 |% h0 W ]
; ~. o' [+ m! v" N/ ^, S- (defun cir_calc ( / area units)
$ x$ l6 v+ v7 I2 ^' v/ G; d' ~ - (setq radtest radius)
* o7 p& S, T3 }8 K, G' a - (set_tile "Dia" (rtos (* 2 radius)))8 n Q. H3 {( a3 A+ P; K
- (set_tile "Circum" (rtos (* 2 pi radius)))/ L: R5 h0 e8 U8 p5 G( T$ P
- (setq area (* pi (* radius radius)))
3 I! h6 @( ?8 H: @ - (setq units (getvar "LUNITS"))- C( Q8 D1 q- w& a5 y* v/ l- t: v* J6 ?
- (if (or (= units 3) (= units 4))
: `4 P+ i$ ~3 P3 k6 d' @ - (progn
3 [8 Y, D. K# B* w" v. S+ ] H6 H - (setq area (/ area 144.0))
) G& S( {+ t( Y4 O* e8 a - (set_tile "Area" (strcat (rtos area 2) " square ft"))* ?" L& u# W' W( C/ W& c& c6 P/ j
- )
8 h+ Z: U8 | J0 |! k1 W" \& y - (set_tile "Area" (rtos area))
' H4 D8 v: u$ s - )
& l: I; t/ k% B, s) c/ p3 ^ - )
7 j$ n. D5 V, p* k - . u" {# f3 R- `- F/ Q
- (defun arc_calc ()6 a5 d# B8 [/ h1 A+ l+ F: O
- (setq totang (- end_ang st_ang)): g0 x, g$ v( D/ G6 u b: k3 t0 M
- (while (< totang 0)
) y, I+ g+ w7 z - (setq totang (+ totang (* 2 pi)))# k% V% z* T3 i& Z. S
- )
( U& S1 c; @7 ^& m - (while (> totang (* 2 pi))7 B8 Q2 k1 j$ l# i: T
- (setq totang (- totang (* 2 pi)))* b" A) @7 \+ U# v' H% U' m3 G
- )
. N( \9 `5 x3 N6 u7 n - (set_tile "tot_angle" (angtos totang))
# s: G. i# }; @/ ^0 P" F4 b* Z - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
5 S1 K) ~1 U0 j4 Y% o - (set_tile "arclen" (rtos arclen))
0 U# w# X1 |) J7 [+ M5 t/ a - )
# H& ~: Y, f2 C. _4 H - ;;
" x1 J+ V; F i0 r& { - ;; Calculate the major radius, minor radius, major axis direction.
$ a% y- T9 [4 E& O6 o8 @! L - ;; Get radius ratio. Convert Start, end parameters to start and end
& A2 G7 j* v" K1 \9 d: A L: C1 j - ;; angles. Save Major Radius value in "old_majrad" in case the user
) s, M$ e( j* c" H" A' W: ^; @ - ;; chooses to input a new Major Radius value later. It's needed to0 g7 x3 p6 s1 g* }5 T
- ;; calculate a new Major Axis Vector value.4 A9 `9 A/ x# u& {, o8 q) e% ]
- ;;& y) B! p3 }9 J) L
- (defun ell_calc ()
# R" U- i, `5 p8 ]0 ^2 S - ;; Get major radius from the major axis vector.
' Z! G( |/ A$ b% {5 U2 B - (setq majaxis (cdr (assoc 11 elist)))" }* H5 D1 R ^1 i" T
- (setq xx (car majaxis))/ i% G1 E+ a" }7 O1 g
- (setq yy (cadr majaxis))7 b; T* c/ X W5 H, |8 q
- (setq zz (caddr majaxis))
4 H2 e/ J6 {3 j - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
+ y+ P: Q& F" F - (set_tile "majrad" (ai_rtos majrad)); L# p" ?0 q" N3 u( }% }
- (setq old_majrad majrad)5 H& M2 F2 U5 g4 [4 O
- ;; Get radius ratio- i/ d0 w2 M6 Z- E: h+ Y4 g
- (setq rrat (cdr (assoc 40 elist)))
; Q- c' Y! H- y( g; f8 z3 N - (set_tile "rratio" (rtos rrat))
: C2 }6 t1 ~. ~" T) |7 W - ;; Calculate minor radius
. v1 r R- }* Z2 i r5 | - (setq minrad (* majrad rrat))
6 V* Q, u/ d* c1 R - (set_tile "minrad" (ai_rtos minrad))0 p2 S9 @) I9 Z% q
- ;; display major axis vector C, T2 n8 U* A2 M1 p
- (set_tile "Majraddirx" (rtos xx))0 t+ V$ t# O5 ?1 J. Z
- (set_tile "Majraddiry" (rtos yy))% `8 V( B6 d5 e" S7 J8 b& c% s
- (set_tile "Majraddirz" (rtos zz))
+ I5 d+ v# x9 `
6 m1 _) N- F z- ;; Convert start parm to start angle
5 x1 V" J: S: l$ I: L - (setq stparm (cdr (assoc 41 elist)))
$ c- L& {6 Q* X0 N( z" I- } - (setq vecx (cos stparm))
/ i4 b6 I* r$ V+ Y - (setq vecy (sin stparm))& I! J4 B. m4 o7 G; G# Z9 E3 s9 t
- (setq st_ang (atan (* rrat vecy) vecx))
( f) }, q+ P l - (setq tempst_ang (ai_angtos st_ang))
! g2 X& j; B) y - (set_tile "st_ang" tempst_ang)
* G4 e9 y% \) ]$ [- N3 ~; H - ;; Convert end parm to end angle. If end angle evaluates to 0
% j/ e) ?& x& z - ;; degrees then display it as 360 degrees.
. I# k k/ d Z# y) P - (setq endparm (cdr (assoc 42 elist)))
; T4 d3 y! X2 N& `: l) B% J - (setq evecx (cos endparm))' U% M) M, [, a, j& {1 f5 ]! K2 b
- (setq evecy (sin endparm))$ d$ D) y- G, x$ U; J
- (setq end_eang (atan (* rrat evecy) evecx))6 e, F: @1 A9 D2 M
- (setq tempend_eang (ai_angtos end_eang))
6 R* x( B5 l. o) r3 j5 m - (if (= tempend_eang "0"). @- v7 K b! l7 {! ~$ W
- (set_tile "end_eang" "360"), Q2 v7 U4 I p7 V5 X+ D: i9 X
- (set_tile "end_eang" tempend_eang)* Y6 J; }# G7 P3 U& `4 |; x: m* V. R& A
- )9 ]" M, d& m5 u$ j
- ;; Get area of the ellipse.
3 f" s. n8 l; E0 N! g - (ell_calc_area)5 v1 D( Y! \+ Q. m0 X
- )
6 S+ @( J! L2 Q( i6 i3 o5 w+ T, q& C - ;; Calculate area of ellipse. If it is an arc then
! H- ^, g" ]# K: t+ B - ;; grey out area display.
g8 A z4 S/ m* O& j" F( A - ;;& U1 x2 p% n" l$ s. h/ p
- (defun ell_calc_area ( / area units). [. j, [# }: h. W' W/ @) s. h
- (if (and (= tempst_ang "0") (= tempend_eang "0"))( S# V& l5 h* ~# }6 x8 f1 m: B! r
- (progn
`: V8 a$ b8 t" C$ Q - (setq area (* pi majrad minrad))
$ a8 G$ G9 o% {$ w& n - (setq units (getvar "LUNITS"))
) h/ z9 h1 e. W2 p# c - (if (or (= units 3) (= units 4))
& K# [7 a A: l8 U1 \, o- t. X - (progn
; E3 ?) `! o7 i% z! l7 \8 m& z - (setq area (/ area 144.0)): y3 A% g7 S/ |0 j, \& w
- (set_tile "Area" (strcat (rtos area 2)" square ft"))
) ~6 h/ c. B( o4 G- G6 {3 Z - )! ^1 ]& ~+ m% z% o
- (set_tile "Area" (rtos area))
$ T) A Z. k0 k9 u - )
6 A3 ?! O6 P o2 w) x* {3 I# r. i - )5 a" z% {8 G, W- y& E U* W
- (mode_tile "Area_text" 1)
' ]5 ^" Y; u, j2 z# z3 ]! X8 @; B - )* b; w& K$ T/ ?$ F C d
- ), @& ?4 Q$ r+ e$ E3 a ?
- ;;& _) O" u3 i) g. b: j: c& R
- ;; Calculate new values for ELLIPSE
( W2 T) M& s; R7 V# H/ ~ - ;; Minor Radius, Area
% O% e; }2 f0 f+ ]$ B6 }; z! l$ { - ;;
: h$ I9 M. K& m' X8 I - (defun ell_calc_newval (ell_tile)
( _$ c! i. g$ O* h. N7 M - (if (= ell_tile "majrad")
3 f8 f9 r3 @' Z- Z - (progn
7 ?8 J; P% o$ I' k1 {7 U& d- |2 _ - (setq rrat (/ minrad majrad))
, k+ t, r7 b, g4 H: _! l' k - (set_tile "rratio" (rtos rrat))! `3 g7 b. W$ \4 F. f2 M
- (ell_calc_area)" [6 V- d; g% C1 {+ } q
- )
# w$ t9 E: R& E* R - )
: L5 [- `7 r; X0 @ - (if (= ell_tile "minrad")/ _7 ^2 C: z; I4 o" G4 V
- (progn- z/ F: I, B, G: i0 l
- (setq rrat (/ minrad majrad))! o, t& ^6 C9 {3 a
- (set_tile "rratio" (rtos rrat))
+ v! y( o$ B% i$ _3 b1 { - (ell_calc_area)
2 b4 ]1 W4 L( D. b! ~% |# R - )
7 S' H7 d8 h* E8 H( G* u - )' N5 w, v& R+ x* A0 u8 ^1 Y a# D
- )
8 K4 f# Q6 Q8 d" D1 L
# l1 L% L% ~& W: j- H! ]" N: _- (defun set_dimen_props (/ loop a stl txstyname)
6 O. g- g6 v7 {( X4 L" A5 y - ; k; t3 Z7 E5 Q4 t
- (setq stname (cdr (assoc 3 elist)) ; get style name
# b+ F# a( e* A, x0 M* N) a - stl (tblnext "DIMSTYLE" T)' M% }- m/ s& w
- stlist nil): C) C+ N# ^6 U( n0 I
- ;; Get all style names and list them in alphabetical order8 M E3 J( _' }1 E) B. }
- (while stl
& f, U. c4 b6 @. T - (setq sname (cdr (assoc 2 stl))), g2 Z7 S$ I% g% \. K4 d
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
7 z+ F. ~% ~. d( I5 X3 E5 l# R( d - (setq stlist (cons sname stlist))), e3 d9 f- l: I O6 j3 }
- (setq stl (tblnext "DIMSTYLE")))
& g; M4 O+ u: @. s$ Z6 t
4 h8 E4 Z( `# u; j8 F( p( S1 b- (setq len (length stlist)7 _) _- M/ [# ^
- loop 0
, ]% K+ W# P x8 ?# S) ]! R, d3 m/ b - dimsty stname
. n0 q" R' E. N* O7 a6 N - )
! h! s, Q# {! }- k3 F* S - / l) C, C# ~% A
- ;; alphabetize style list, depending on maxsort& Q. J, i; m0 G/ M7 c' h
- (if (>= (getvar "maxsort") len)
: n! I7 I3 L7 ?5 q" r" [5 n- } - (setq stlist (acad_strlsort stlist))0 G# W' H8 M% j) f% d( [# p7 a/ Q/ R
- (setq stlist (reverse stlist)))
$ Y0 o) z4 ~* Q7 r3 h# \ - 6 B0 @6 e' F$ `. e' j w$ r
- ; *UNNAMED style (dimsty = nil at this point) is replaced with
/ V* ], E h5 J- M1 e. J V - ; the current style. After R13, we require dimensiosn to have a
# x& g# ]5 a/ z# G - ; dimstyle, so we plug any holes where we find them.2 p6 C/ }9 G# _
- (if (null dimsty)
- B/ \, I' g1 f5 ~2 R: Z: P - (setq dimsty (getvar "dimstyle"))% }$ q7 Y; b) M; x& v. M
- )
/ `2 D8 H: Z* e( _1 n: _! q - ; Show the styles in combo box
F: Y7 ?" I" R3 o# Z/ a* X - (start_list "mod_style" 2). T9 u3 c% Q3 M" U. D7 ?
- (while (< loop len)
' j; O' ]$ [# m/ |! q5 `' k - (add_list (nth loop stlist))- x; q* q7 ?/ G/ q0 y
- (setq loop (1+ loop))7 X" |4 z) S" j
- )+ D% a" U8 L+ ?( n' |
- 9 a/ Z# ]! I/ d: M1 @
- (end_list)
$ X8 S: v# t5 n7 B - ' _) g) J# l! T" c9 e/ s _
- ; Hilight the style name of the selected entity
9 u/ T+ h5 i/ j2 j) c5 K* B' l - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
, x/ ^2 G' E6 A& X& x/ k2 ] - (setq loop (1- loop))4 K2 @/ O* C. f) d' d
- )) `- p/ h! m2 p0 p
- (set_tile "mod_style" (itoa loop))7 M' F X& Z& r7 a$ C! ~7 g
) {" s& d: ^# F' q1 P0 Q1 I6 N- ; The following is the list dimvars. It must be sorted in the same
' d4 n( p$ c# S/ M - ; order as the resfub returned from DDIM (ADS module).
F7 F6 `$ ?* M4 g& }+ ~ - 7 [7 Q/ y9 Y$ P4 M+ W
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"0 i0 S. W7 X$ s
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2") f; w, o- Z$ }1 ]
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
/ _5 ?7 h! E" Z% r& E - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
4 q& G( z. U7 m - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
, @9 C# u1 h: k) }8 E - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih": O7 _ q: R- U" f
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
' x* R6 J; @7 b, `' s$ Q - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
5 J" H/ M. j4 E& n/ c* t( q - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"1 d; H+ s, n9 g/ {( Y- f) M) f" k
- "dimdec" "dimtdec" "dimaltu" "dimalttd"4 x! E7 A% ]7 l' J8 C7 B: D3 L
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"" N9 ~. d$ ^ [2 q' l
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
( @( ^) V0 u I; d7 T9 J0 ~ - "dimtxsty"/ }& h: }) @" A$ {. |' b
- )). _5 _, y7 _ G9 @2 H
- (progn; h; |% ], \# q5 t" L( b
- (setq sv_dvlist (ddimen_getostate dimsty); I4 L% A3 R h& g5 h, o+ r: F3 r
- txstyname (assoc 340 sv_dvlist)' a* L: S% ?% N1 Y& `/ C
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))5 P' ]5 }5 u6 S* [: G, ~+ o8 l6 F
- txstyname sv_dvlist)
" v/ u) s0 a' G/ W( O8 O2 ] - dimlist sv_dvlist6 }+ f) k; J% F# `$ M0 T
- )
" N. [- A- R' U+ r1 o4 q- |1 G( l - )
3 d0 ?+ X# t& V; `/ m - (if (= dimtype "DDLEADER")
% a7 j1 U, [2 g- y/ T) W - (mode_tile "mod_format" 1)% K Z4 m! Y' g0 g
- )+ Y0 R0 [- Y9 ]4 Y- Q' Q2 g
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
' I0 O9 i5 O, F# S - (action_tile "mod_text" "(done_dialog 4)") |* g. f- `* s
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
3 h: i4 c4 Q# S+ ^( w/ _1 w! ^ - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))") m* E6 X6 J+ Y7 Z' M w; ~
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")' R. w; |. i1 n- S# D; E0 }
- (action_tile "accept" "(done_dialog 1)")
+ l% D7 D {! q6 j - )
: s! \8 h; s) v; h4 y - ;;) S+ R$ ^1 y+ ~3 N) {2 r7 t" Z
- ;; Get dimvars that have been restored.) N. H3 F7 B' b7 l* N, \; D
- ;;9 e# H w1 g$ y, h8 ^, z
- (defun ddimen_getvars (/ elm dvlist dv i)
6 G+ @6 @/ O( b a, V/ b - (setq i 3
( T# T N) L! s) R* l0 w - dvlist (list (cons 0 "DIMSTYLE")
" C# ?) K( }: {! w+ O - (cons 2 (getvar "dimstyle")) (cons 70 0))
; @9 J/ f( A; y; _ - ); o5 O! v- Q( ^7 T# y3 l
- (while (setq dv (nth i dimtbl))
0 W, d2 I, X% j - (setq elm (getvar dv)
3 T( c" n/ y3 r( B* L - dvlist (append dvlist (list (cons dv elm)))' }4 t6 i* W. X: z
- i (1+ i)
; o' e b7 i& \/ C* u - )
/ H& x/ [7 F/ K: @( D' t - )
& ]. E) p1 S) K* R/ M& X/ x# p7 J - dvlist
! M( f! Y4 D' k) K/ D# R - ), W6 i% Y6 J& A( M
- ) T/ f& V/ C. M: A S& j( x0 F
- ;;
' @3 a) k2 ?1 l& c - ;; Get the original states of dimvars. This is for DIMENSION entities.
8 F6 X3 z1 z1 `7 k, N/ p+ w - ;;
1 U) z; ~" d3 `0 A! i0 g - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
* t; @ |' P9 b c - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list& O1 _" F4 R4 m4 c- S
- dvvars (ddimen_getvars) ; Get dimvars for that entity
, ^5 U6 M B% d$ v0 j% H* A' ] - i 1* u- _% e3 [5 v
- )6 z k4 F) j& t
. K! D3 {) S' i# L& V; \, _& l- ; Create a list that contains values of the selected entity.
/ l4 [3 e. I& f* D, m - 7 p6 M0 \. G3 r" H1 w- h
- (while (setq elm (nth i dvlist))6 u+ ~( E0 r8 j0 Y- v
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
& d, W l6 W, W0 C - i (1+ i)5 ^3 _9 u/ g( r% `: v
- ) S( V4 @; n$ ?1 s' K9 d. Z3 M
- )
' b4 x z1 ~6 T* m7 l' F. D0 _ - dvlist$ z( c9 @" C# d* A& g, W
- )& ? _3 E# i6 C% b9 o3 r; S
# ]2 T6 R: B0 {. n2 z5 {& P- ;;
Q" V( ^8 @3 }: z& R - ;; Restores dimvars of the selected enity.
" w; @) n Y3 P3 L: Q - ;;, h/ x' R! H1 U9 G
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
9 J2 V) [# ?6 q9 x" o - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
7 N5 Z) s% ]7 W( d* f* C - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2") {/ S2 z& { o( H: M& z
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"9 A0 W$ K- \: m/ W* b: {
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"& {& N9 J2 G, W: v* Y
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
; f! w& {5 o+ Z0 c% x, ^% Y: P6 ~6 ? - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"% H# _* T4 {; ^1 C8 p8 Z/ N
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"% T1 G+ q& ?5 E. P
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"+ m' ]& E1 y6 R: `, s6 W
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
, R+ ~6 K+ {0 q- j" s0 r: H5 k; ` - "dimdec" "dimtdec" "dimaltu" "dimalttd"
* O/ c! d+ o6 q4 H5 I - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"0 N$ f, @1 A% t- t7 L" T% }. T5 `2 m
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
- V" ?0 R& u! D! q3 O - "dimtxsty"
/ e, v# E7 c0 Y* M( H - ))
& K! t) D5 Q2 q/ f, G# w# {: j - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
: J! F" D0 K6 Y+ c - (progn
, ]# k$ n7 y( g% _8 ] - (setq en (cdr (assoc -1 elist)))1 B$ {6 s, A5 Z j
- (command "_.dimstyle" "" "" en)
3 e5 H% y2 [. g3 {1 N - )( x' _% S0 |. f. S
- dimsvcurset$ U# E* }( r) H! E; k
- )
( d7 [/ G2 X! Y7 `1 n" b; ~2 i( m - ;;9 L) c0 h1 A: \5 W/ e5 z T- Y! P
- ;; Modify Leader
5 |5 n0 o: f) ~) z5 H% o- u \$ ] - ;;
# g1 B$ H' r* V& z0 X - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
% r8 a x# w. Z1 c. Q+ W - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist& {/ _2 d% G U) L4 Z
- dimtype dimsvcurset)5 Q t! N( }6 @6 c
- (setq dimtype "DDLEADER"0 M% ~2 w) P- j8 t! W3 S
- dimsvcurset (ddimen_dimsty_restore)% F' H0 V5 Z5 p7 u) s: W
- )
5 X# \9 V" d, S7 ^ - (if (not (new_dialog "ddleader" dcl_id)) (exit))
. k" Q' B5 Q" Q3 Y' W - ;; Set initial tile values
! y5 @. j2 R2 h* Q H* \ - (set_tile_props)+ d# u- P1 ^7 c, I4 ^
- (set_dimen_props)9 x. D# Y/ d6 h6 n8 s! O2 E- `
- (set_tile_handle)
7 s: Z( m ?# O! M0 G* u - ;; Define action for tiles/ c$ F& J5 d/ W" V+ n1 Q5 |
- (set_action_tiles)) U/ x$ ]9 ^9 g% X, O q
- (mode_tile "mod_text" 1)% n% x1 y: d$ B% ~( N+ I
( {) |: M( M; m6 M0 T0 Q4 b" T- (action_tile "mod_style" "(setq dimsty (ddimen_style))")# `( \# a: F4 _0 p- @0 [7 D
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")3 D- T b. e% i8 b
- ;; Get ARROW and TYPE.5 o. `. f. D: T3 E" ]" W! f* M( }
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))9 x7 A& A% n7 a( K1 u6 {3 G* B
- (if (= 1 (logand (cdr (assoc '72 elist))))& n- a1 C+ D+ M2 q. B" |( U
- (set_tile "s-s" "spline")8 A% G$ x+ H1 k" B ?5 G- }) @6 u
- (set_tile "s-s" "straight")
. u/ y9 L! p1 B* U. |& m2 Y3 O - )
& m! ^$ V/ B9 b p( J - ;; Start the dialogue.8 N% i% G9 l% T
- (setq dialog-state (start_dialog))6 T- H, l+ ]9 {4 V' I5 u1 {
- (if (= dialog-state 1)
& B$ o* K, S! Y - (progn, y9 i$ @1 Q; C& _9 _
- ;; update the style
6 p- J1 B2 y0 L - (if (/= dimsty stname)9 o' l; {* E/ T0 ^
- (progn. [" m* w) Z% \5 ?6 Q( [2 @
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
# @/ X U( q. L9 P6 \ - ; doesn't have it.
1 z. N6 L( d0 N" g6 }" C7 F - (if (null (assoc 3 elist))2 @! k2 _ F; R+ ~9 l
- (setq elist (append elist (list (cons 3 dimsty))))
% q- Z! a- Y( {' t8 K9 C - ; else just replace it. v) r3 S3 r! H
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
0 [1 [9 {2 y( B9 x2 A9 i. q - )
! m' i1 I- D2 C9 _. C# u - ; refresh sv_dvlist with new dimstyle.
9 Q8 O; z5 m$ e) _* ` - (setq sv_dvlist (tblsearch "dimstyle" dimsty))# O, m4 s% A R; ^/ J. U
- )/ U- P2 S6 h |' h5 {3 k
- )
1 m1 {2 `0 O* X, u8 \ - (if (not (null dimlist)) ; attempted to change dimvars' `6 ^+ x- B, b5 a: q
- (ddimen_complist sv_dvlist dimlist dimtbl)
, `4 Y! ^, }5 q1 U% I2 V) y - )
1 \3 R$ F, \2 r7 g - ;; update for ARROW.
* {" w( g; t4 C! A% R - (if (= "1" arrow)
) F# |' Q" C' K - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
7 w7 `# m/ r3 o( ^2 R1 F4 u - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))7 T+ c7 o& d7 X1 T8 ?
- )9 U- H& A9 S5 A+ ^& y8 C4 W9 z
- ;; update the TYPE. Q+ ~+ X6 b7 R% c# |5 _$ i$ c
- (if (= "spline" leadtype)
j1 w: ^! k$ k3 W$ r/ I6 k! n - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))9 x2 \% Y5 O3 _$ |' A
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
9 G1 C( U& F+ ?' K% | - )- }! B2 v: j2 a# J U; U$ L
- (modify_prop_geom)
$ u0 Q' r: L2 u0 C1 i& D4 v5 f - ;; update the Color
6 ` O# X# R0 T0 L+ ~1 M5 |. C - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))& e- O7 F% X% s/ Z5 O
- (entmod elist)9 I; ~( x5 P+ `4 R: X
- )
) {7 U5 X" F# P0 Z$ t' Q - )4 p+ N& A" [ O, C* u
- (ddimen_setvars dimsvcurset) ; Prepare to exit- N, R8 C( E( Q9 z& S+ `# B. K
- )# b8 t- v$ C8 p$ I+ w6 |- s
- 4 N" q( S) W$ y9 p' M9 ^# S
- ;;
! \; {) @; z8 i8 L; a - ;; Get dimvars of a dimstyle with overrides.
: W5 C+ b2 j- r4 O& B - ;;1 G2 R4 C$ y: Q
- 2 K& x& U* ~2 c$ L: X
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
0 {% |/ g2 A- H7 s% l
! F/ x1 f- h q" z- ;; Get override information for the specified entity.9 q; C8 {' _( w2 h. e
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
: r" x" I( _8 F - ;; must obtain override information through this tedious operation.9 W: E) h6 q {
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))7 y! x4 i; L; X: c7 g
- dvlist (tblsearch "dimstyle" dimsty)
M4 D6 e6 \) Z$ @& @# j - i 2
4 @& u- r+ s5 d1 w - )! J, T* A! `, \' V4 K
- / B |4 n7 E$ f9 o3 i
- ; Update the list with overrides if overrides exist.
+ l" {& t9 ?7 V I+ ^8 O' {& ^
; Z; ]( y- v9 `, F( ^3 F: }( y- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))2 Y' ^% U# g+ c( n
- (progn
! y; K: R2 y0 c - (while (setq elm (cdr (nth i dimovr)))/ K4 q9 d8 y' B1 K/ p6 k l
- (progn6 @( h7 ? {3 ?9 W; K
- (if (or (= elm "{") (= elm "}"))
" N U1 x+ B1 [4 M - (setq i (1+ i))" i i3 S6 G0 n5 I0 t- a
- (progn$ d" M3 b! L6 t. Z2 {6 K* g
- (if (or (and (< 180 elm)
! _3 W4 q* Y$ z( i; w( b8 q1 ~ - (< elm 190)8 x; {+ o0 ]: D6 z$ r$ ]% R; j0 m
- )2 [5 n5 U2 \& F7 u( T* x) s
- (and (< 80 elm)
! Z. w* R8 K2 b# `1 @9 u( O& q - (< elm 90)
( l! e1 V+ |; B5 f9 F$ z& O) B - ). q% J/ E9 M8 G/ S4 d' j
- )
/ R3 E7 l9 Z1 |' j1 `' x# w" E7 C9 _ w - (setq elm (- elm 10))7 V% K }4 Q5 W& { M2 g
- )
, T8 [" b4 a: k6 G. l3 Q - (setq i (1+ i)
- s2 P& a& F" n. F - elm (cons elm (cdr (nth i dimovr)))
. J+ E5 K5 s4 T5 _- I4 [; B - dvlist (subst elm (assoc (car elm) dvlist) dvlist)
2 {' L* s$ |, F; |2 L$ J& z8 H8 o - i (1+ i): Q* J1 z1 n2 J, u* q }
- )4 m8 n% t; ?: B: C1 L5 h! l
- )$ J7 \! G* J0 M2 G( F0 H) I
- )
* [0 C: x! E. M# J; N9 h h - )9 a. v, M- x* \3 K! H( {! h! u
- )
9 d% ^# ` P9 A W - )& A2 i+ }/ n6 s
- )- d- e+ C4 q% y# m
- dvlist
% ]5 P' s. N% M1 A+ n7 \; X+ o - )
, L4 g3 h, ]/ g5 Y$ y. O; u
% ?9 g# u9 f% o4 n% J2 U) g* O- ;;
8 _: \, z3 r% b I" e; m! Q - ;; Modify POINT$ `7 k4 B( N( o2 _
- ;;
: ^9 l$ J: _8 N# W1 z7 b - (defun modify_point ()" F0 u: h" l, |" }$ Y, \. z" k' ^
- (modify_properties)+ U" y% |: F" _$ g: g* I9 P/ {
- (setq pt1 (list x1 y1 z1))* K5 z( \! H y* U! s
- (tempmod pt1 10 0)
( E: Y$ M- L9 Q/ `3 n - (entmod elist)% [- n( H; s9 {
- )
7 F) ^5 z. m+ C7 |# | - ' j* y+ N. K8 _2 _
- (defun ddpoint ()
* \8 R; F$ c' ~' N- M* t! S/ X/ h - (if (not (new_dialog "ddpoint" dcl_id)) (exit))$ \) X1 ~* S2 o; y; |4 t& \3 m
- ;; Set initial tile values( z6 ?5 X0 G) Z V" h
- (set_tile_props)
6 S Y3 f. Q3 j6 m - (set_tile_handle)1 m4 v6 z y' Z) m8 b4 ^& n
- (set_tile_pt1 0)5 v6 q& K3 b$ y6 x
- ;; Define action for tiles3 Q# N+ G7 k, I5 t
- (set_action_tiles)+ x* P! W* z3 D2 ~+ f2 ]# O
- (setq dialog-state (start_dialog))1 l; ?4 J5 _& i* Q
- (if (= dialog-state 0)
/ {7 u0 L! ~# S% t G6 q0 ] - (reset)
+ @8 T! X9 v; v1 P4 L2 J7 T. I - ), l! @7 v: T) {2 Y! m% y: I. f8 ]( X
- (if (= dialog-state 3)
+ S" C8 N* o+ p - (progn
- K2 p0 J* E3 Q$ x7 N6 N - (modify_point); \/ q2 K9 r& k1 }* T* B
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))) G" Z# ]( K& q
- (ver_pt1 0)
6 Z* F% H$ E( Q: ?& v, m. s - (ddpoint)
) Y2 @1 L% j( Q - )
% m7 x! n5 ?3 j1 _5 e; `$ C - )0 Q o1 n3 J9 w( l/ A& Y( @8 B I
- (if (= dialog-state 1)+ [, j% g6 D) @/ ~: c8 s* q
- (modify_point)4 w/ R0 H# a& l" `6 r; F3 F
- )# Q _2 Q- w! i2 `4 D% V7 Q
- )
5 Y, e" U" v* s( y. D7 `" M: L - ;;
( s4 @. j/ q/ E. H! q6 y - ;; Modify LINE
- n, s. s/ n' S( H0 i! I - ;;
0 f$ z1 O# ~. x4 i - (defun modify_line ()3 E! _5 j% d2 y; s! N
- (modify_properties)- l; a4 W! j! K
- (setq pt1 (list x1 y1 z1))
: y! ?* r6 y+ }. G4 e7 b$ j7 D7 p' c - (setq pt2 (list x2 y2 z2))
8 w. |3 `# Y R - (tempmod pt1 10 0)
5 \& B1 e- U5 I- u( z' s( C - (tempmod pt2 11 0)
" j( f; B/ Q# [ C7 V+ }" T: n - (entmod elist)* I; v$ B" y4 j) @* u# x
- )
/ D( I, Z0 f3 I, V% e2 t - (defun ddline ()3 p* n; G6 G: e% l" `, G
- (if (not (new_dialog "ddline" dcl_id)) (exit))
+ V# o' O% _0 q( c5 N4 H- m - ;; Set initial tile values) M" n$ U" R9 G3 N0 t6 g+ J
- (set_tile_props)* B8 G; e+ ?& C& E9 Y
- (set_tile_handle)6 D+ t. }9 }2 r5 @
- (set_tile_pt1 0)
* \$ ]) b6 i/ m8 v% v! ]5 q - (set_tile_pt2 0)
) q7 r0 Q5 N. I - (line_calc)! T1 W2 C/ d- L1 Y4 c- a/ n5 h
- ;; Define action for tiles
. R/ Y; @ m! N* G - (set_action_tiles)
' ]# j' J: J+ F5 _* K& i! P: M( D - (setq dialog-state (start_dialog))
. ], _; A" d- u0 R# H" C* B! { - (if (= dialog-state 0)* d" I% C0 V3 i# @' v- G. C
- (reset)
& W# }0 s. x) M - )
1 l* C& I/ p- h+ F' ~. s6 |$ R - (if (= dialog-state 3)4 W# E8 y6 J0 x9 S
- (progn) z+ G( Q) G9 w, q- w& J
- (modify_line)5 Q/ D7 G; |+ i& ^. o" H+ {
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
* I. \3 E8 N# `3 O - (ver_pt1 0)1 ] ~7 _- K3 ?1 Z' r
- (ddline)
& \( _" U: c: J$ T9 C& b x4 C - )
2 F; g7 T9 Y9 ?! v! m - ). D( R$ R3 r- T) U
- (if (= dialog-state 4)2 D3 d1 O1 X0 H8 {4 ]- }: f# m$ Q
- (progn, m& P5 q( k) A. F/ t
- (modify_line)
5 T. _9 p/ K5 Z: d, o - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))8 l+ x5 K% W7 ~# ?" l$ Y s2 e
- (ver_pt2 0)6 w8 n8 _6 d5 O: Q- `( j# m
- (ddline), C7 |. h8 H+ g7 t
- )7 Y% L2 Q4 ^& X
- )
) A- U$ Z0 P/ X [3 R0 o2 ` - (if (= dialog-state 1)3 O; Y2 p+ w* P* f
- (modify_line)8 v3 A$ q0 v, c! G
- )! Y) _! Z2 K X3 M
- )( X: L$ `% \! T- _" d
- ;;5 u1 I7 Y2 Q8 X$ r, j; m1 I
- ;; Modify MLine
6 B& P* h$ Q2 ]+ H - ;;8 N1 }; ^! h- d: `. `
- (defun modify_mline ()
/ m: T( b2 G8 l9 c) i: T* k - (modify_properties)- A1 q* G) w% s: V! u# A0 a
- (entmod elist); J! s G: S$ ~6 H
- )% H& P+ S* x, u- {& G
- (defun ddmline ()
" ]- q8 { W( U% K* C) K - (if (not (new_dialog "ddmline" dcl_id)) (exit))5 b, @ D$ Y: _! e4 ^/ e
- ;; Set initial tile values8 M+ o, t3 p; |1 |3 m
- (set_tile_props)$ d2 [, }5 t. c0 K4 s# E; X: e
- (set_tile_handle)
% g# [$ k; _ W4 F5 O - ;; Set mline style text field." v+ j- \$ z4 J; F0 _0 Y" s
- (set_tile "ml_style" (cdr (assoc '2 elist)))
. e9 r- T4 y4 u1 v+ J
: i5 h7 u/ O/ B) l- b- ;; Define action for tiles2 h8 `- m5 `+ X7 K- l3 v7 q) ~" [+ _
- (set_action_tiles)' r4 w% e& o0 i
- (action_tile "ml_edit" "(done_dialog 3)")
" I+ c+ V* v$ }, q6 ^ - (setq dialog-state (start_dialog))
9 R9 t4 M# s P E- L5 T - ;; Dialog cancelled, reset to original values.
- R/ S8 c" [8 x - (if (= dialog-state 0)
$ ], J1 w. e/ z) @ - (reset)
9 s3 j1 c8 l2 b/ p4 n# Y* C - )
- t! K" {; }* C. W4 ~ - ;; Dialog OKed, update the mline.4 c0 D! ~( I' ?. d2 R# u
- (if (= dialog-state 1)* }+ @( V, f" T1 L2 J) O
- (modify_mline) l+ d3 B" d$ V3 `8 {# |
- )
# h% o. y& p/ W& P8 Y% I - ;; Edit Mline, call MLEDIT.! ]% Y! B( a F7 c( p: E7 |
- (if (= dialog-state 3)& V- S j1 R V* F1 `6 c
- (progn
5 `! N& A6 d; b - (modify_mline)* A! t$ C0 F# K& ~4 ^
- (command "_mledit")
6 s: s$ R: Y0 {- M; Y' M - (ddmline)
) J0 o- V4 o7 s# j+ M3 ? - )
. y) [1 {+ f R2 W A# x c1 `8 E - )- N0 }. F9 k1 N: i! U; _* O' O
- )( g* Q; I9 T& }
- ;;
; k' M/ k2 @* l3 P- O/ ^6 ?. ]3 f9 i0 s - ;; Modify Xline
% w% Z) O; A7 k& D) ]' C - ;;# k$ p, w& O8 Z+ U8 L" P
- (defun modify_xline (flag)
+ S+ H- ^6 i6 P. k, p$ @" q$ v - (modify_prop_geom)
3 q2 N+ l) |: A& L3 Q - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
: h c! O4 S6 g. x2 P0 S" z - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
( f9 k, V( ?5 H5 i4 e - ;; Update the Root point.
- s+ {8 y! J" `$ f5 t; z+ O - (setq elist (subst (cons 10 (trans xline_pt1 1 0))
~6 b6 F6 ~. C, W+ a - (assoc 10 elist)
) F& m( I/ L! l: C - elist9 O' {+ G; _3 w2 ^: m
- )
4 s5 O( B- X4 k' p! l' d - )
1 K6 G- b. K4 p - ;;% ~% c# q! `2 Y. `' p
- ;; Calculate new Direction Vector WCS5 S9 p- a: V0 n5 m) G) N3 B/ ]
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))8 X8 J) J4 @4 W, j0 ]
! g5 g4 P2 `4 M- (setq temp_dir (trans xline_pt2 1 0))% _) B6 {) U; f+ h0 i' P- j# F
- (setq temp_dir_x (car temp_dir))
2 V7 y: X; n0 B { - (setq temp_dir_y (cadr temp_dir))5 D7 ~3 U' T& J; T
- (setq temp_dir_z (caddr temp_dir))
/ w( x8 V2 I& A( x
: u5 u$ E: u2 M9 M- (setq temp_xline_pt1 (trans xline_pt1 1 0))* F- r3 ~* D. @; |
- (setq temp_xline_x1 (car temp_xline_pt1))
) g9 u+ G7 r& \9 D! h1 G# K - (setq temp_xline_y1 (cadr temp_xline_pt1))* }% D# _7 B* w' |5 j1 I
- (setq temp_xline_z1 (caddr temp_xline_pt1))
/ M) S# i% d* R& e* y9 j/ G9 b
7 Q; a D: f$ y& x6 K) \0 c- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)) h5 h' \, }" \% Z) p
- (expt (- temp_dir_y temp_xline_y1) 2)
5 b9 ~ [9 f/ r6 o3 z+ H. r4 o - (expt (- temp_dir_z temp_xline_z1) 2)+ ]# o9 K9 ?5 Z2 P& a
- )))' L# G1 X) m6 n1 d; l' T
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
: a7 P& F, R' W/ ^& o" C$ U' |) n - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))1 [. s2 [+ e/ \* b! K
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
" T5 Z" d1 |' s/ S - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))9 ]1 c W; H& B
- (assoc 11 elist)& z3 j+ c1 Y q' w9 a( v
- elist
* A$ v8 \" n7 i% ^+ n Y, T - )6 U) q+ _7 \4 H x, E" X
- )' V% V6 h9 L2 z: E) I- x% U/ i; g
- (if (= 1 flag)
' E; ^ F% @2 D c( D - (entmod elist)6 c. |" B9 A0 _7 Z( U8 a
- )- ]% k ]! l+ s9 H b( f/ ^
- ). ^( q. t4 [; d) A) r) O" N
6 V' a( L' ]7 N$ Z/ {& I- (defun ddxline ()
) p |6 n9 ~5 b/ [4 V; Y - (if (= etype "XLINE")* W+ q( k1 t) L# { O
- (if (not (new_dialog "ddxline" dcl_id)) (exit))
3 Y& G8 o- J* t5 E8 n$ T/ G - (if (not (new_dialog "ddray" dcl_id)) (exit))1 W/ q- R; M0 n0 m( a
- )
9 N) }) ^9 d$ E- J( d- [0 m - ;; Set initial tile values+ e+ E- g* b3 V" n0 g" ? U
- (set_tile_props)' C: P+ ~& ?: x. o$ a
- (set_tile_handle)
7 i. l! A& m0 s - (set_tile_xline_pt1)$ u# n E% Y& e, { y& y' H; S
- ;; Convert to UCS and post Direction vector.! R; M; _, h* p* p* ?6 G7 ^
- (set_tile_dirv)0 p j2 @- f _' e( S( p6 W
- ;; Calculate second point by adding Root Point + Direction Vector.$ g* z* U% g' v2 }" d
- (set_tile_xline_pt2)
0 K' Z- S O4 l0 k/ w7 y3 ?' a - ;; Define action for tiles
% F+ w, Q. x: ^3 G6 t3 u - (set_action_tiles)
0 s) k, V$ I' M! } H5 z - (setq dialog-state (start_dialog))
0 w7 {9 n# X4 k% D8 H5 z0 l8 ] - (if (= dialog-state 0)1 B) r( u+ i w* K- k/ w
- (reset)
: W' t, p; h8 p% C S: a" o - )
. Y7 h& z1 _6 d - (if (= dialog-state 3)( d4 G8 I% e8 E* X" A, V4 \
- (progn2 o) _: } v3 ], n0 `
- (modify_xline 1)# |. Y+ E, y$ P6 W$ z
- (while (equal xline_pt22 M0 {! X8 k$ [7 n* n
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
4 t1 e' t% s1 H8 B, v - (princ "The Root point cannot equal the Second point.")& I! F; I0 O' p4 x5 B7 |
- )1 p# s- a' j E! x, ^" a0 J
- (ver_xline_pt1)
, ?) @, s* E% N* S# n - (ver_xline_pt2)& Y+ _) V( B8 W8 B% k
- (princ)5 L8 I" D( n+ ^* F0 f
- (ddxline)6 U* t& K; k- W" M' N
- )0 O1 n. H' t' g: h: S: O, d
- )3 l5 w) T) W8 S7 h' q
- (if (= dialog-state 4)
9 h7 B$ g" K( N% D4 c - (progn
* J( {3 l% ~6 q: _# e8 w4 f - (modify_xline 1)1 A9 S! L' n: \6 W1 O
- (while (equal xline_pt15 O9 C/ g1 T4 R5 _* p2 N1 A! H. h
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
! x$ m) v4 h0 F6 G6 ~ - (princ "The Second point cannot equal the Root point.")
( `7 F/ \& ~3 h9 ~- ]7 V - )
: S* @4 T- z* N1 [. ^0 V/ l - (ver_xline_pt2)
2 o" ^2 g- U2 r, _3 ~# p$ w - (princ)
2 \( @- C+ l" _4 k( B - (ddxline)
3 N( ]2 G+ F, {0 y! n9 _* u - )
- E, J) x' J3 P- } W, V2 H: ? - )& ^* s' k/ M* {5 M: L# C3 r
- (if (= dialog-state 1)' J7 u) r2 s0 `
- (modify_xline 1)1 u; @( g" S. O# H
- ); Y( H! s) O. X' Q8 I
- )
: g& c3 N6 j! X; p7 q. J - ;;
4 j+ Q9 U; f! ^$ U' n - ;; Modify ELLIPSE' v X. Z1 p/ |3 |0 M6 M/ \
- ;;8 U( m0 z/ D. q
- (defun modify_ellipse ()
. m( s6 j7 n2 Z+ g2 ?+ U4 G- G - (modify_prop_geom)
C" o- a3 [* Z - ;; Update Ellipse Center Point value." T }5 I- x/ R/ Z* R
- (setq pt1 (list x1 y1 z1))7 S* j5 F7 j$ R W; ~* P: [2 N
- (tempmod pt1 10 1)
! }2 m: {' f J9 v, ? - ;; Update Start Parameter value.( {+ f4 q$ Z; Z
- (setq y_val (sin st_ang))8 J5 I) q, r! ?' r
- (setq x_val (* rrat (cos st_ang)))
1 O" L# O2 |2 ]) R: f - (setq stparm (atan y_val x_val))
1 u. R, Z9 J! j' L( [ - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
" m% P: r3 e u8 ]5 _' } - ;; Update End Parameter value. Normalize it, if it's less than$ o" |8 T6 C3 Z' m+ [9 I
- ;; the start parameter.
8 s3 ?7 V! A8 D: g5 Z V, ] - (setq y_eval (sin end_eang)) D' P& J Y) b3 ]4 j' }0 s$ D
- (setq x_eval (* rrat (cos end_eang)))+ f7 R- ? ~- T8 T; C) }
- (setq endparm (atan y_eval x_eval))
2 y$ {+ p' | e$ F ]: E - (setq diffparm (- endparm stparm))
3 F& j4 c$ f6 Q8 r! m( S# k - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.0 ~+ G% x& e6 u4 C: c
- ;; Since zero length arcs are not allowed - construct the full
* n2 P$ @8 p, Y4 ] - ;; ellipse in this case.+ C7 n8 a6 H2 x i
- (if (<= (* diffparm diffparm) 1.0e-12)
& x w) o$ v: T: u2 F: h - (setq endparm (+ stparm (* 2 pi)))) g& N- U/ I% @8 D/ l5 l
- ) Q% ]2 g7 w4 A
- (if (<= endparm stparm)
, |: G1 s$ J5 O9 a- s - (setq endparm (+ endparm (* 2 pi)))& A( d/ W, O+ N- O: ~
- )/ ]! w0 V( f/ \$ T6 p3 d
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
$ R, G1 i: i% I+ p6 i) i - ;; Calculate the Major Axis Vector by first calculating; w2 e* i. b7 `1 Y7 M
- ;; a unit vector using the old Major Radius value. Then
& O& e! F+ F# N8 W( k9 l - ;; Multiplying that by the (possibly) new Major Radius0 u/ H: O' |1 y4 u |# P7 n0 f4 g0 y
- ;; value to get the new Major Axis Vector value.
" t! V6 I8 Y" J0 m - (setq unitxx (/ xx old_majrad))
5 `6 p3 j" u$ p( g0 A3 F' k - (setq unityy (/ yy old_majrad))
0 k3 a1 L! t% F$ k: _# s - (setq unitzz (/ zz old_majrad)). T- J. D; y7 q: ?
- (setq newvecxx (* unitxx majrad))
" u! R n2 U: h5 `" m* a4 u - (setq newvecyy (* unityy majrad))% e# W; E2 i+ ]- C
- (setq newveczz (* unitzz majrad))1 k: e& z4 I/ K/ f. N
- (setq newmajaxis (list newvecxx newvecyy newveczz))
/ c6 t9 _. j+ q. f - ;; Update Major Axis Vector value. h/ ]( g4 R( Z! ?, M
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))# O8 b7 h* L X* |# b
- ;; Update Radius Ratio value& j' p E/ z8 s- H. j$ I% ]" [
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist )); f' l6 d; C! Y! o& b
- (entmod elist)
V1 Y# O0 ^. O3 V& S6 f+ ~ - )
3 T( N% Z# W) R, _5 F. X! | - ! ^+ o B; w6 U9 X0 H. l( N
- (defun ddellipse ()
9 O; s- I( Z H* }8 a" _$ M - (if (not (new_dialog "ddellipse" dcl_id)) (exit)); O/ b) w+ k. w! a; Z
- ;; Set initial tile values# e( q0 \& A& P& d
- (set_tile_props)9 S9 h% @6 R$ A1 h' e
- (set_tile_handle)
/ ?6 N6 f; F* F9 c - (set_tile_pt1 1)' }( S: ~- n" ]
- (ell_calc)
6 C/ C( u! S. O" j: D3 Z9 e/ W; P - ;; Define action for tiles3 r3 N6 ?) a( x: U% e" B+ ]
- (set_action_tiles)/ K8 o% a# t: B6 ]7 k( P6 k) \' A T' J: N
- (setq dialog-state (start_dialog))# \% \0 W# L. r9 x0 |% p/ W
- (if (= dialog-state 0)
. y+ W- f' U1 y3 _ - (reset)' f5 \# ~; n" g2 h; b& g
- )
$ H( M* X5 l7 v' L- s" |9 N - (if (= dialog-state 1)
, [* }6 S* ~8 Z - (modify_ellipse)% }" W, ~% w9 S/ e9 `% U
- )
3 `$ \0 b9 o; R5 I F - (if (= dialog-state 3)' a4 {; j( R; z$ d$ s* X4 h% `
- (progn
! v6 p% f2 N i' u: X+ H - (modify_ellipse)
4 ^- N6 C2 F) y) }: u - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
1 \8 u2 V; I- Z+ M2 ?) x3 a - (ver_pt1 1)
: W$ {0 C! H& n( L! I - (ddellipse)! J/ o7 }( K1 ]5 j' M% L- S$ f
- )
5 G& j- }6 t5 x# V, K% g6 } - )2 G V' q$ G2 B- \0 Z- b4 l
- )
% J* u. f# X, V! \: [# L% m- z - ;;9 s9 b! Y3 j! y4 r
- ;; Modify REGION
3 y6 L. w$ O, {9 l! K: ~1 ?3 C - ;;
+ Q- Y9 `" d/ O z - (defun modify_region (). T8 h+ M" E2 R3 C( L
- (modify_prop_geom)2 M% L m% u# R2 s" H& P
- (entmod elist)
* Q0 b/ B$ w$ b; \; y2 I: m" P6 L- q. o6 h - )" t" _# s/ K5 O' p* R" c" d! L9 h5 q
- " n* l; O, ~5 f$ U) x
- (defun ddregion ()
Q/ `; B8 T* J* c - (if (not (new_dialog "ddregion" dcl_id)) (exit))3 H' X# X$ Y* N! `+ ?5 a
- ;; Set initial tile values u5 B6 N7 C) C& p
- (set_tile_props)
! ~9 E& b8 O6 w% ~3 a. s - (set_tile_handle), A; f, f: ^9 ^0 W* @
- ;; Define action for tiles
& ^- r1 K9 J3 Y - (set_action_tiles)$ P# L8 m1 ]% y+ q+ a
- (setq dialog-state (start_dialog))
' v; z) s5 @1 ]6 ^5 K6 J4 } - (if (= dialog-state 0)
% w# R- T/ l( f3 r! m" l. Z - (reset)
1 h6 l7 f! K1 |2 h9 F$ j* A1 _7 x - )! P2 e; |4 p; w( k5 |* u
- (if (= dialog-state 1)5 a- T- i( S0 [
- (modify_region)
& d- T3 t, c* q7 W( ], Q E$ T4 W5 h - )
( |' Y0 q9 {& c* R - )
' E/ v% z. p$ Z! P, J) Q" U1 ? Q. t - ;;
1 N* ^& M7 k( G+ d! L, q. f - ;; Modify 3DSOLID. b& ~$ O1 s1 j4 D% A& M5 @, r4 m) A! W
- ;;" ~. d( o- {7 v, C8 z
- (defun modify_3dsolid ()
0 x2 d. S$ ]) [- M - (modify_prop_geom), }2 I9 E, h0 m7 T# `9 {
- (entmod elist)
G0 `# y( F! y3 |0 E# O. r - )
7 a7 B. u8 K3 p9 r5 `! ^+ b6 } - - Z6 {, r1 M8 j: w" g$ i8 p& O
- (defun dd3dsolid ()
5 c Q5 p3 F+ n/ G4 b/ Q - (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
( k2 a& d9 S. t7 I; u- H - ;; Set initial tile values
' c( {: s& L/ k! \ - (set_tile_props)
8 q% ?) K- X- a+ ^ - (set_tile_handle)6 m6 x. i7 S K! p2 V. E) @9 p
- ;; Define action for tiles4 _7 K4 v1 M9 [
- (set_action_tiles)
0 O6 a0 Z5 y# \! l3 F0 N2 @ - (setq dialog-state (start_dialog))
3 i" R# l7 G! L' \ - (if (= dialog-state 0)
- F4 a6 R, O! V8 O) n - (reset)
+ u6 B; x( U% m8 A( K, K' n6 f - )
/ [( {# m* {9 ~; E1 Y! E! H - (if (= dialog-state 1)- I" C6 E2 I. N' I+ m
- (modify_3dsolid). t, j: I8 N/ p2 v; `
- )
$ S( R& F/ [2 s+ g" _# h - )- d# P0 @8 i* J6 [6 S
- ;;
! C9 ~5 T$ n/ M6 T# w - ;; Modify AcDbHatch3 [$ r& R' X8 L. k# v q
- ;;& d8 [7 \) Z9 }4 s# [" V
- (defun modify_hatch ()
2 C# ^$ y7 ^2 T/ T a; D" ^* P - (modify_prop_geom)
; |0 T" Y( Q- i* { - (entmod elist)
7 J$ e8 w9 {- ^( b: S, Q0 S/ J - )
* J5 V, Q- k$ [8 U4 s2 q) F& j9 t - 2 p, Q2 i X4 @. ^- A2 H9 T% Q
- (defun ddnewhatch ()
( n4 b+ C" O+ T: G# \( S @ - (if (equal hatch-elist nil); P% U/ ? L: i; F- T1 d q
- (setq hatch-elist old-elist)/ ~0 y+ F, S% J' U& m
- )
2 D# _! [0 `3 F: u3 i - ' w8 r: T ~4 ?) y3 j
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
& F/ P& j! G; |1 q5 n* [
& J; }3 l9 m2 t8 I- ;; disable the thickness tile7 R3 d6 U8 X2 c2 d+ e) Q
- (mode_tile "eb_thickness" 1)
* e2 v" y R% P/ K) o - (mode_tile "e_thickness" 1). F1 H9 d- N# T# Z' M- ~
" r5 m+ e+ o& R7 i" _+ x9 i9 V- (setq help_entry "modify_associative_hatch_dialog"): R4 h7 n; g- R3 i4 z9 u2 n
- (set_tile_props)
0 R, F# J+ [" l+ U$ n - (set_tile_handle)+ @6 n$ C. z& x9 g
- * Y8 e7 }; \- a9 D: D
- ;; Define action for tiles
$ r3 S) N* u' I0 [* ^ - (set_action_tiles)
' R7 }! u4 f0 P( M4 r - (action_tile "b_hatch" "(done_dialog 2)")! p# ~3 ~( \# `, G5 A8 B
- (setq dialog-state (start_dialog))
) L/ u1 I% z/ O - (cond
: }# H, x# S2 M8 }! Z+ A( D/ j - ( (eq dialog-state 0)% }4 _& Q% c% V
- (setq old-elist hatch-elist)+ ^9 }: U, J9 ^$ {6 f" u* a
- (setq hatch-elist nil)# A \2 M4 b0 U! @) k$ F
- (if (= (checkforlockedlayer ename) nil)
. B0 R2 m& Z9 O, e# M h9 ~- {8 Y - (reset)3 p6 D; {" V+ x, D4 N9 b1 ^( s- S3 S
- (progn ;;; special handling for locked layer reset
3 X& ]4 e5 g" X% L7 X+ s - ;; unlock the layer Z- _( U& ?( V/ q0 q
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))5 `" {# S, f b5 d9 I. h" r/ Q; u0 C
- (command "_.-LAYER" "_Unlock" layername "")& ]0 D2 D2 f( O+ X
- ;; reset modifiction
& V7 Q$ f1 s/ a - (reset)/ {% j5 C7 A% r3 E2 Y
- ;; lock the layer again
: u; I+ {5 X9 i! B H& c: t - (command "_.-LAYER" "_Lock" layername "")' V% i7 e4 g- n- ?! { y* x3 @& Q
- )
2 f% y5 W( D/ Y/ W7 n - )
3 V' X$ z. x+ d. K - nil ;;; makes (ddnewhatch) return nil for Cancel& [/ a$ g. P! h# x% _! T1 V
- )
$ h* k7 W4 u' E* @& L+ d& I - ( (eq dialog-state 1)( X6 K" n0 G" D; y9 i# i
- (setq hatch-elist nil)
1 ^1 l# s8 ?2 W7 \$ b1 l5 L - (modify_hatch): h6 f0 w% q, S8 ^, H% T
- T ;;; makes (ddnewhatch) return T for Ok, s& v- B f# I4 J$ R H1 z
- )+ `5 X3 V6 A% P/ W% F
- ( (eq dialog-state 2)$ u/ [9 g4 W6 C6 R
- . C% {( F3 Q) J. I6 l
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
* i* e" h y& A7 b5 o - 4, Z' b5 f/ O: h. Q* m8 n
- ) # m$ V) K9 r+ t4 `
- ;;; new selected layer is on a locked layer
) L4 R0 b' j. H; { - ;;; we can simply modify the hatch properties
+ C7 L6 S; @3 v" I) | - (modify_hatch)' Y9 E# d! \! j, i0 L( y' ^8 S
- (progn
& f6 K7 d. D5 ~$ F+ ], z+ X - (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist)))))), @- y2 Y- K d
- 4
3 P X5 H1 i% W9 U - ) % S& H" l! ]4 O( T! ~! l! Y
- ;;; We changed the layer previously and now the hatch lies on a locked layer.. P# T3 _. i- f; x- o9 l
- ;;; We have to unlock the layer forethat we can update the hatch properties.
) F# A$ G3 h3 G% |8 v5 x. }7 k0 c - ;;; If we don't do that (entmod) fails to update to the new layer.% s1 h* S& ~" R/ q; L
- (progn
# W x3 @6 R9 n `/ c5 H - (setq layername (cdr (assoc 8 (cdr elist))))% S" {$ R! W4 o8 Z p" Y9 N% {) f
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer2 R( B: E+ q2 r
- (modify_hatch) ;;; update the properties
' ~5 U. \4 Y7 Y - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again/ Z. l. X; C0 [+ t! F$ b
- )
( m9 I0 |% G/ L# q3 h+ h - ;;; All other cases we simply update the properties/ i( e1 t$ T9 I. f5 @
- (modify_hatch)
- e8 _# d, Q0 M+ m, X - )
~3 \2 s, D) ~, a9 o' b# X - )/ G9 z, j' y& P6 m3 V
- )
9 {" |" `( S6 X& V& q - (if (= (checkforlockedlayer ename) nil), I6 ?1 {5 o, ^( H
- (command "_hatchedit" ename)- N% E5 ~. d7 h# ~7 v5 }* w$ h
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
. A# N. D' u! H* R: o - )
! W; f! N( h# _( B& B - (ddmodify ename)
# m& K& y+ e; C$ K3 o - )
0 n) U9 F$ @2 n! v- { - )/ ~# @7 ^! ~/ i9 j ?+ Q/ c
- )
' o+ M8 |6 Q5 e - ;;
" h: q4 @: `, w' w - ;; Modify BODY
, y I2 w& _4 u9 F! J$ C2 M0 w - ;;3 X& N. z, c5 h* \- V8 L
- (defun modify_body ()
5 ?8 g4 p9 t2 k - (modify_prop_geom)6 b# b2 J+ m9 O% g! U! T
- (entmod elist)
* F b6 c! l+ `' Q - )
# ` H7 C' R& v8 Q; n - , ^% W. ]. v* o! c- Q4 E' J
- (defun ddbody ()
9 z3 q- V% l* m7 I7 Q - (if (not (new_dialog "ddbody" dcl_id)) (exit))! U' [5 h( Q0 h4 B( f9 Y( l1 B
- ;; Set initial tile values
0 x* h u, ^( V# Z& O+ u - (set_tile_props)1 ^1 s, V- s2 |" M. [. J
- (set_tile_handle)
" E( f( o; p M) N# m: b0 b" W - ;; Define action for tiles
; q v+ V3 K, t# x3 B+ U - (set_action_tiles), A. n( @5 r; u& w. n
- (setq dialog-state (start_dialog))% C0 N! b, [& |! E- g/ K$ Q" M
- (if (= dialog-state 0)
+ d7 |& e: z7 J+ I - (reset)3 m2 J' @$ a1 z3 {- Y- \
- )* u m/ ~. I8 ~
- (if (= dialog-state 1)
9 _/ y( T: |% J3 b- E - (modify_body)6 g$ Z" m: Z, f8 Y. o
- )
7 A4 J- I! [2 h; p - ), T8 C4 X: q) y7 B
- ;;' [* {# T1 L; g0 e8 x# A" U
- ;; Modify CIRCLE+ W# z( H, k7 @: {
- ;;
6 V( U3 J; z) v% d, s2 v) w - (defun modify_circle ()+ P/ C) Q) {6 g2 i1 }$ Z
- (modify_properties)4 M6 b$ {4 D' C$ L/ }( t
- (setq pt1 (list x1 y1 z1))! S- R0 e6 q$ v! J" `8 `3 f, W
- (tempmod pt1 10 1)
# S' Q! ^/ a" O& @ W) [ - (tempmod radius 40 nil)
5 s# Z* ~# r' s4 E# R4 K3 S - (entmod elist)
$ a% M# e% `7 n0 K& _! O; W - )& S/ c5 K, W, \& G
- 7 k* @' d( S8 h3 l% A2 j6 N+ X
- (defun ddcircle () x, U/ i) k( d1 v
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))
3 ~- p7 L. A, I& c, C& k# ?, i% _' p3 ] - ;; Set initial tile values
7 @. d0 l* Q9 ^9 e! W, c+ r8 O' r - (set_tile_props)
' w# [& }/ u1 ^9 M& Z - (set_tile_handle)9 C; J0 q# e$ v- C6 {
- (set_tile_pt1 1)4 u2 c4 X/ v/ [! s
- (set_tile_rad)
. I6 s Y9 C& F" I8 g - (cir_calc)
* R. [* }* e) t/ ^5 X6 J2 F - ;; Define action for tiles) e2 t' V# W9 ]1 V, ]
- (set_action_tiles)# Q' O' O; o+ b" h+ P2 J
- (set_tile_pt1 1)
/ q/ @. u* }& f - (setq dialog-state (start_dialog))
! D0 u, N. [$ [ - (if (= dialog-state 0)
K' J8 M; l2 f) c6 h - (reset)
& z* E: L* B2 e& Z, d3 q - )
) W" q8 y1 I" \' ?! u! t - (if (= dialog-state 1)
# v8 o0 }5 a8 S, U0 z+ s$ M- \ - (modify_circle)
( b, Y- x# T, }& O6 j6 W - )2 k9 ?6 W. b, j, d
- (if (= dialog-state 3)+ E- ]9 s' P. q
- (progn
6 v" ^& S5 |. y9 U6 E - (modify_circle)1 n( }! o4 T+ ]0 G4 K
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
1 H, M+ ~) b& Z8 T- o+ Y - (ver_pt1 1)
9 `; @1 W" h' s: ^ - (ddcircle)
$ X( Y/ A: k. _1 k: x d - )( }- \9 u8 l m! J
- )- t9 Q* a7 [. U# B1 O- `: ]3 x# K% j
- )1 i6 Q7 ?+ B& E% Q7 C4 V
- ;;
7 D7 {7 i; O a- Y+ r1 n/ ] - ;; Modify ARC
( F* E! i" r5 j: h( [8 g3 H# } - ;;
( G; y1 G' H0 G* ]. s' R! P - (defun modify_arc ()
0 N5 x. r7 D! ^6 i$ i - (modify_properties). S' h5 k; I) Q
- (setq pt1 (list x1 y1 z1))
5 f. L! Q$ q% W* R$ w - (tempmod pt1 10 1)
% ]/ m% y: j" M$ h% t4 N - (tempmod radius 40 nil), V% }& q* C1 _$ X+ D- g7 _) {2 m
- (tempmod st_ang 50 nil)9 n) a- u$ O! Z( Z8 Y" Y7 h
- (tempmod end_ang 51 nil)
}) n3 S2 I5 ^4 T! w - (entmod elist)
: c; y) C* s1 h2 |/ n7 s - )
$ J+ u: y% i7 t! O7 u( y3 ^ - (defun ddarc ()
" {! W" k8 I3 x7 h - (if (not (new_dialog "ddarc" dcl_id)) (exit))
7 M# p6 T( g3 b - ;; Set initial tile values
) [* p# k3 H0 c - (set_tile_props)0 d' L; b' o4 R, b! x) z
- (set_tile_handle)6 A, B: I( {8 Z/ }, `; k# L2 e# C
- (set_tile_pt1 1)- g- T( J& a4 _$ p( k
- (set_tile_rad)
6 b" E1 w& f. e4 z( Y7 } - (set_tile_stang). R* Q2 j1 h3 u: o: J& S
- (set_tile_endang): v7 f. c7 g, ~0 S; W d
- (arc_calc)
$ O# y9 h( ?) l - ;; Define action for tiles
$ `" ?0 v' B' h - (set_action_tiles) M) m* V/ t2 W9 g! s3 x
- (setq dialog-state (start_dialog))7 H# e3 ]" p- n) A. `& j C
- (if (= dialog-state 0)" ?) @& d* x# L4 X
- (reset)
; B, X+ J* ]2 A: E - )
& A, h& ?, k! u8 K& l - (if (= dialog-state 1)
: ^+ o2 |) L& C3 s8 f& y& C - (modify_arc)
+ G" y# z: B9 x% A4 o - )
3 ] n+ W% _2 }2 \( _5 D - (if (= dialog-state 3)
' D0 |" I$ X H; {8 V! H- g - (progn* G$ V6 L. z8 Z/ D# S$ S
- (modify_arc)
+ z9 o: d6 C! V - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))5 G( R! h5 a% b4 b' I
- (ver_pt1 1). K" W! V3 t, {5 z6 K) D% O
- (ddarc)1 m. Y6 g7 ]) ]) ?4 L
- )
. i* Y8 i- o$ Z5 {3 ^ - )/ N* R; x* x5 v# ?
- )4 q! b! P9 O4 c/ `
- ;;
- u: }* o% X, _5 s - ;; Modify SOLID or TRACE
1 F/ b2 S0 U% c& D% z& g - ;; Note the Z value of the object is determined by the Z value of the fourth
4 i6 h$ V9 f9 G& C; S - ;; point - code 13. Changing the point values of a solid or trace from a UCS% v. I* I) u; W& j" C/ y0 L9 E
- ;; that is nonplanar to the UCS the object was created may confuse the user.
, a3 p; _' \1 c3 H - (defun modify_solid ()2 w) Y1 {+ U$ d3 u- ?( y- W
- (modify_properties)0 e$ U+ j& e) ^ G+ e
- (setq pt1 (list x1 y1 z4))* c- k4 [3 z3 G4 M
- (setq pt2 (list x2 y2 z4))
/ e9 G0 k# p9 g, @# X) n9 ~- _ - (setq pt3 (list x3 y3 z4)). `8 y: f# n( \, q; e; E
- (setq pt4 (list x4 y4 z4)). X, _$ y7 W; [) p% ?/ P0 J$ P7 G0 C: P
- (tempmod pt1 10 1)' h! k+ U9 k! u& o. \! u. ~
- (tempmod pt2 11 1)7 V, f- P+ A% M v" e/ ?! j
- (tempmod pt3 12 1)
- S9 Q- j" h" T1 W8 ]7 d - (tempmod pt4 13 1)7 u5 `4 S! A8 d/ L" y
- (entmod elist), \$ j+ ?7 }% g3 O
- )
% @0 Q: N7 h( Z$ U - * k x4 ]/ G- [ \! W5 a
- (defun ddsolid ()- C" E" P8 X6 H+ b
- (if (= etype "SOLID"), f' t3 [# \8 ?" T' _3 G
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))
# f: o% E' B$ j. d5 i$ \ - (if (not (new_dialog "ddtrace" dcl_id)) (exit))
: g$ H* A/ x' y7 Z+ Y! X# s - )
- z- K4 n! ?8 s" i9 \ - ;; Set initial tile values
) }, x( `) `2 v( X% I - (set_tile_props)) u/ R, U& x; g, j
- (set_tile_handle)
0 {7 y$ n* S7 m7 `1 Y6 _, L5 v - (set_tile_pt1 1)& R$ o0 h2 a/ @. p; r! [( H
- (set_tile_pt2 1)' D6 v. a' P. I% D& q: {, X V/ _
- (set_tile_pt3 1)1 n# @/ [6 ^# T" |) b/ c4 J" q
- (set_tile_pt4 1)
. r( f. V* H3 F' [3 ?% T: |1 u - ;; Define action for tiles
) ~: ^) B3 \/ x# `/ c& f# d - (set_action_tiles): x% d Q1 w* z9 x. M& V2 A
- (setq dialog-state (start_dialog))7 ^+ h( Z- @9 W0 Q s) F* W0 M+ ?
- (if (= dialog-state 0)
& B( s) ^% y9 C) @ - (reset)% `0 L3 G1 ^3 V: d4 d' J R
- )
O Z3 p$ S0 ]6 [2 L6 @# V8 ~ - (if (= dialog-state 1)
+ B" p/ P J4 ~7 q - (modify_solid)! N6 d! @1 i L& A2 B! n
- ): t z. l) S, b2 L4 }0 j
- (if (= dialog-state 3)7 [* c8 R# t1 _ c
- (progn
& r2 X. W9 K ?8 r - (modify_solid)- n ]4 |1 Q* ^# U* |1 U# R
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
; ]* r/ @- [9 n W7 \) h - (ver_pt1 1)
! Z& c: t/ y# k2 M+ i- U- ~. f; h3 f - (ddsolid)
0 X% D* J4 S9 B; q3 z q# @! M - )
- A. c' X% ]) D8 t0 C! I8 ~) j" o - )
% Q( |) T1 a5 a7 S8 M - (if (= dialog-state 4)1 d a& ^8 p9 o- \/ d7 t
- (progn
) h- x7 {5 m) o" J D3 E) b) P - (modify_solid)2 r6 Q- d. D0 k, _7 L' W
- (entmod elist)
) _( I9 l& j; _0 V: c - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
1 Z( J8 L- U. ]+ w* R; I0 \; L - (ver_pt2 1)
2 ?' u" ?0 m0 J - (ddsolid)
7 R9 ?/ u$ U B6 @6 e' v# W$ P - )2 s; H1 g1 p/ t& H6 o7 b
- )
: U- n# P& K) y/ j: | - (if (= dialog-state 5)
. P. H8 }7 v; B/ w0 ^ - (progn. W! N9 f3 s& P; L
- (modify_solid)6 D3 T( N2 G5 _$ i9 h1 G
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))& D" T9 {* K" u0 `4 K# |
- (ver_pt3 1)1 T, X# V; M) E% O# B9 W H& ?
- (ddsolid)4 U$ o' m) ?; n2 @
- )
0 u8 n N! s# V4 ^ - )
5 a& w( a' I# o, V3 m0 B2 N - (if (= dialog-state 6)
/ ?, K% u- s1 @ K }- b" {5 |+ Y - (progn: S% B7 ]" |$ n X$ V9 y
- (modify_solid)
+ B8 X5 q' z' K! B4 V - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))$ \$ P& o. U* L8 B! T/ H4 i
- (ver_pt4 1)
) j) Y# M4 ^9 S% q$ l - (ddsolid)1 y1 s. M2 @4 l/ ?$ S2 ?8 ~( v
- )0 U7 z4 o6 B+ ^) F* ]6 R( O/ A
- )
5 a- t% F. x3 O+ e" R. s6 j - )
7 d& A: x+ t. ? - ;;' G) [- }, m4 v. G4 M0 m1 r
- ;; Modify 3DFACE
& ]- O R3 ?& ~: |$ i2 V - ;; H+ k7 E% T5 o8 ~$ ~4 T
- ;; Check visibility of edges: l! @& u- \) ?1 R9 w! M8 V3 f
- ;;
/ b$ v2 {. e7 n - (defun edgetest (/ bit1 bit2 bit3 bit4)5 D4 m: H8 f, w" n- U, a- B$ U
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
; O- Q( u2 `" _( b4 Q2 | - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
9 \" p4 V0 {4 f" w( U- h# Q) s - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
- w% {, C" \5 b9 M. ^$ I1 t x - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))1 K0 r h& V' I6 c% P# ~; |
- (+ bit1 bit2 bit3 bit4)
% K+ j1 R3 n# B' o6 Z" \0 W - ): \) |# Q! m. b7 u1 O3 B; q8 T7 }
7 B- f" |* N# U7 C, n9 M- (defun modify_3dface ()* ?' Y1 k9 A/ V, w, T T* Y8 S* _( \
- (modify_properties)2 v) \. b/ }) E% g+ G
- (setq pt1 (list x1 y1 z1))
4 c2 f, R1 g- m: O/ r) I3 e5 w9 l* V& Z - (setq pt2 (list x2 y2 z2))5 G$ O- L9 X- G; I9 a
- (setq pt3 (list x3 y3 z3))
4 b3 W7 g. a9 n; N9 W4 u+ _4 H1 ? - (setq pt4 (list x4 y4 z4))
]& }! F& _3 | - (tempmod pt1 10 0)
; t7 B* r! y$ m R9 x6 z1 q - (tempmod pt2 11 0)
. R- w/ D9 ?9 r4 k - (tempmod pt3 12 0)
. ?' G$ Y5 c' |$ d* x/ y - (tempmod pt4 13 0)3 S; `& s$ s4 {" G$ T. D$ r; E, O
- (tempmod (edgetest) 70 nil)
/ \3 \: k" b( {9 l \3 P( F: t* m - (entmod elist)
0 F- e' d7 o0 L/ |1 G - )
+ A8 E0 X l! u, n - & T* p% @7 K9 l2 H
- (defun dd3dface ()
. \1 G1 d7 v8 `3 }4 A5 F6 Z1 h - (if (not (new_dialog "dd3dface" dcl_id)) (exit))
; E. I b* M8 o% R* ] - (set_tile_props)
+ R( V. e+ J& C$ q3 A- D3 C - (set_tile_handle)2 _) [4 y4 G5 X0 d2 u; q& [, c
- (set_tile_pt1 0)) x. ]5 a t3 D7 Z9 t
- (set_tile_pt2 0)' V/ k9 P8 Z. K# ]0 X
- (set_tile_pt3 0)
( `9 x, M- w' i - (set_tile_pt4 0)
" I" ]3 } G0 ^* s9 @5 G3 J! \" R" S - (set_tile_edges)
! V) m- l2 s, [( d3 O5 E5 v - ;; Define action for tiles
. J9 N5 }: V7 S$ N% c' p( b4 x! v - (set_action_tiles)
; y3 g5 y7 {) k; T6 u - (setq dialog-state (start_dialog))1 X3 v1 m2 k6 b) C1 }9 P
- (if (= dialog-state 0)% ]: z0 j7 P! v" W
- (reset)
3 {8 ~6 X/ Z4 i% T7 y p4 V - )
" C# ]1 z9 x6 G+ |' o( }/ Q - (if (= dialog-state 1)
, x# V5 D0 m4 O D n - (modify_3dface)
. [( y+ Q" j% Y% @0 ?- R - )
# X& a! f# ~ n* }! S; _, R - (if (= dialog-state 3): W3 j3 n2 V( L2 g) W7 r
- (progn$ N5 [: e+ H$ ]) q# c) }
- (modify_3dface)
_. V6 @% Y# n2 a! Q* D5 G7 A - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
7 |& J ` U1 N% a+ b0 V5 t1 M2 n - (ver_pt1 0)
. w2 X4 i; ~) \0 f - (dd3dface)$ ^# m" Y" O; Q9 C7 ~' y
- ): Q" A5 c( [* y; |
- )
- E+ |8 q/ I, }& v - (if (= dialog-state 4)
1 g- p% h/ |4 Z0 H" Y/ l/ O - (progn
% t* G# }( X+ {; d$ g - (modify_3dface)
* c: ^& ^/ T9 | - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
/ ^9 h" p0 B4 j8 P2 V% h7 Q - (ver_pt2 0)( k" x4 o6 e; \+ ~$ b* ?
- (dd3dface)
' X# y. q) Q$ x0 [7 @3 l. w - )
7 U( t% x# |# c: w - )* n/ }: O% @4 o, [! V& x+ @
- (if (= dialog-state 5)
1 P" _: X `4 K) o) d) x - (progn! j& a2 G% u4 E4 m4 y: T& [
- (modify_3dface)
~. S9 z+ ?7 q3 ? - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
* z' p1 m1 ], @ - (ver_pt3 0), e1 u( s( `& q# A8 k2 ?( l! W" k
- (dd3dface)
4 l+ {8 e6 R7 ]. D - )
5 [+ l3 U" m n" D) Z" u - )
/ |1 F5 X% M; I; U. s. m% Y8 L - (if (= dialog-state 6)
$ L6 o- o9 r! E$ [( ]6 l: j - (progn% ~9 T2 Z. G& u4 I$ A/ ]
- (modify_3dface)) p4 _& u- e0 E2 Q, Q
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))' ^+ C8 @6 A5 q+ H
- (ver_pt4 0)
1 z9 a/ |% j8 v, \$ v - (dd3dface)5 q% z1 Q( E4 W) }) {+ }! c0 @
- )( j" N1 c0 {. Y# ], F
- ): R% ]; H: b- v7 o' q, l& ?0 n! |
- )" v# V' ]) f- W+ W2 Z. s$ \& @8 o
7 Q& Q0 d% M) E5 j+ o8 [4 O- ;;
) B( t. j) t3 m6 y9 ^ - ;; Image functions
8 Z' V. Z4 i) P9 c$ M" f& M - ;;
( T$ G. n6 e0 j) G, o" y - (defun image_scale (/ upixel en n userscale temp)
8 ~& {$ Z, N. i' [- s m) o) N$ Q - ;; Calculate the size of an image pixel in AutoCAD units
* s- x9 m: y: F. D - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))$ B! I8 j4 |& ]8 _
% F( W) l7 U6 o3 l8 E+ i5 t7 C- ;; Retrieve the user scale+ S8 y" B# x0 g3 p& X
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
: A! n) ?/ S. Y* V( A$ N+ U - ]! w" |1 `9 m( X! a) W% R
- ;; Next, extract the image units and pixel resolution' X& I6 a4 D: r4 {! f9 a: O
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
, {, u8 K, \# t, `$ W& b) d - (setq image:scale (* (cadr (assoc 13 elist)) upixel))7 X3 H' [" n1 j! M; Y0 `
- (progn# |9 @ T9 F/ A
- ;; Convert the user scale to the proper word
' ], n' S4 p& L* a( h, a5 S; T - (setq n (cdr (assoc 72 en)))
+ i+ W, v, H' R U5 N# Y - (setq temp (getvar "LUNITS"))
$ J7 c: P6 p6 e6 Y" e0 Y - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))' s8 u7 M4 e r* ~
- (if (= n 1) (setq userscale "Millimeter"))
8 D* V }3 y: C) y - (if (= n 2) (setq userscale "Centimeter"))1 i- H+ m+ k+ U6 l
- (if (= n 3) (setq userscale "Meter")), T# v/ v/ G5 Y; c6 {
- (if (= n 4) (setq userscale "Kilometer"))6 `, K( r# A6 U! @( O, c
- (if (= n 5) (setq userscale "Inch"))2 F! J* ^; ?" r( h" q
- (if (= n 6) (setq userscale "Foot"))" h% k f: T! J. q8 I) r
- (if (= n 7) (setq userscale "Yard"))
7 A" Z$ r( @) [* C! M6 b - (if (= n 8) (setq userscale "Mile"))2 x+ _) D' y* X, o
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
3 U" Z n+ ^9 ~/ c1 o - ); f0 d* k5 C& Z% Y% c9 _
- )
7 W, I7 p3 W* Q J2 S9 N$ N - )/ t! D0 H4 W& @( V6 R+ w
! F( X; z, Z+ I. X4 n8 E( o- ;;6 O1 A6 _# O6 m/ N5 l+ ~: {
- ;; Scale factors for block insertions
( P, E$ @; b4 W0 b% Q - ;;. b* X z' M2 g
- (defun image_set_tile_scale (/ temp)
! y9 c6 k; E' e* T4 I! I- a - (setq temp (getvar "LUNITS")), g# `4 F& o' g( T& B
- (setvar "LUNITS" 2)5 E0 ]: B9 C3 ^" t z
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
6 V7 N7 _# _: _, m- Q. A, |- b& W - (set_tile "wid" (ai_rtos (* image:width image:mult))); O% f, N; i1 l9 u) d; L
- (set_tile "hght" (ai_rtos (* image:height image:mult)))0 l" l, G6 j8 O
- (setvar "LUNITS" temp)+ z6 Z* F8 Z4 e% r
- )
' d8 c; a( G# s/ A5 G/ {4 w( m - $ A5 ^7 ~. i7 {4 M2 b+ \
- ;;
2 |) f" Y6 Q9 j( P: D2 ^7 t - ;; Set the scale, width and height values appropriately.: b: q5 t$ n$ O. Q
- ;;
4 I% N$ T }$ j' v! J! L- E; j3 R( t) E - (defun image_update (field value / orig_value new_value mult). |4 x7 z/ u) m# ?# N4 Z2 s: V
- (if (= field "xscale")* b5 E7 R8 f# |- z- |
- (setq orig_value image:scale); d) k }6 u0 f) m
- )$ w% s5 Q! j( T' `0 ^4 w
- (if (= field "wid")$ Z# {9 m7 u4 ]; f4 t6 g9 G0 y
- (setq orig_value image:width)' j& {6 O5 [/ r0 k, v- @
- )8 K1 H2 V- n0 N* ~+ j2 m! T8 `
- (if (= field "hght")
1 R- N; c8 K4 H% p. @( o - (setq orig_value image:height)
% u1 ?" w! B2 q" U: L9 ] - )
$ K* p& ^* D& y& T6 x: L - (setq new_value (verify_d field value (* image:mult orig_value)))
- r$ y3 w8 y4 E- X, |* x - (if (/= new_value old_value); m% ^) R) K3 e! j
- ;; Make sure the user has entered a sufficiently large value
7 I# H1 x/ `+ m" F% s - (if new_value
% F* ?! C4 R/ N7 a& U - (progn* P( p" |* F" {( P% f" }
- (if (< new_value 1e-8)
* w N& X# c6 J5 v - (setq mult image:mult)
! `9 r R+ a c l; v n - (setq mult (/ new_value orig_value))& x/ x# X" U# s. ^1 e+ c
- )
! X; E5 p" y; \' ?5 m) X - (setq image:mult mult)
1 e' E6 e" V) X6 }7 _, W+ _) \5 G - (image_set_tile_scale)7 R4 ?5 k3 p* d& a! J, U
- )9 u1 G2 M, ~3 w$ x! @7 y6 y
- )
% H- Z0 L* k; Y0 M$ ? - ); ?+ Y6 B5 M$ E+ U" t" b
- )
0 X: U0 s8 o3 w* t$ P' O" N
5 n9 H8 T3 k$ Z7 u- (defun image_disp_opt (bit)
' u' K& y B; ?( s, P2 H7 ~0 s - (setq image:options (Boole 6 image:options bit))' m4 B7 q) k2 ]3 O3 V
- )
) f, b8 Z; j3 ~: C9 s3 { - 7 d) h/ d( M1 R
- (defun image_modify ()
# l2 A! `) e" [; H - (modify_properties)
, ]" Y# ?* c! M - (setq pt1 (list x1 y1 z1))
0 o+ f. `, q0 p# [/ r4 \' W( D5 V6 I - (tempmod pt1 10 0); T4 \3 R0 s0 {" X% j' i, j
- (entmod elist)
) M1 i" C5 O. r: Z4 z - )
$ r [% c3 _# w6 ~% `, m - 2 H9 D; B2 o8 i& D2 t
- (defun image_clean_variables ()5 I+ F2 z# O# z, O! {9 f
- ;; Clean up global variables used here" m' v6 \: c9 z% k' Y0 I( W
- (setq image:scale nil)
& z h+ q* k8 X8 {+ X - (setq image:angle nil)
( c+ R7 F, ~7 O- K - (setq image:width nil)
" }" f$ K. ^* q8 s - (setq image:height nil)/ K/ S) Q5 c: Q, j- v
- (setq image:options nil)1 v& m' M% G* s0 I, K1 l1 n$ B! \
- (setq image:oname nil)
' Z% u2 Q0 W% S7 @3 X6 W - (setq image:olist nil)
, W$ s& }+ v* P8 v1 O - (setq image:mult nil)
2 ~% H& g1 _) e2 \* ^$ @ - (setq st_ang nil)! U+ N; G! P5 G9 u
- )
# O1 g& `+ ] y% G, ?0 ~
7 X7 l2 {, X7 N [- (defun image_scale_vector (v1 value)
5 S% ?9 j7 K6 F* H9 ]$ ? - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))& S9 F, Y) p: ^6 D
- )4 ], c" r! L; O; U& a8 O9 H
8 Q) p9 z% T" }! A" f- (defun image_cross_product (v1 v2 / vx vy vz)" R i& @% ^0 t6 ?
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
7 f$ L! p- L1 a - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
6 G# S6 W8 q: x( Y: u - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))1 W! K9 O( f0 ?# G+ ]$ K8 {+ Q- n" Z
- (list vx vy vz)( c0 x' _; o0 I! I5 F' F
- )
! g) O8 F0 {, \. ]7 I" F
3 M& Y7 V; U7 r- T; [) w- (defun image_dot_product (v1 v2)0 ^$ n: k: R5 J% B9 x w4 ~! ^! X
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
/ C7 Y1 g/ X( ?; [2 C4 K - )
; p ?% d9 F6 }7 o9 J: e9 s" O - ' N/ r+ N4 K& w7 ?% U
- (defun image_add_vector (v1 v2), m0 s2 _3 g& Q( @4 P& V; f
- (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
/ i5 r) K8 s5 }! {+ K - )
$ o- p1 X r0 b6 t" I* | Z
8 E8 @ ]% r, t' G, A+ I$ b- O$ t- (defun image_subtract_vector (v1 v2)& j$ ]! Q, @0 T: R. N. U6 v
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))8 L% g* o) h. c: `* Q
- )2 v1 A( W7 h9 I) c, \& M: Z: V( h
}4 W# q+ _% t- (defun image_normalize_vector (v1)
( A$ L- |' \- A, S - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
" Q8 r- J7 f6 [9 n - )
# l7 S* e2 \0 M, A1 y1 B
2 l& ? X: g( r" B- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
" i# T: a' m3 \' L - ;; Normalize the axis+ }. R& I N; {) `7 } n& h% q
- (setq axis (image_normalize_vector axis))
" Z& z8 i4 b, t - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
- f8 O! z! J5 O* B; y' G0 h - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
* v- ]. E c+ A- s8 X - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
; ? @) m3 h* G3 [; D! L - (setq in_rot_plane; V7 ?* ]# E/ t$ X3 U4 r
- (image_add_vector
' n" D( T# C4 C4 ?( { m - (image_scale_vector axis_x_in_rot_plane (cos angle))9 X0 b2 R0 Y* m
- (image_scale_vector axis_y_in_rot_plane (sin angle))* w+ w0 G$ ^' x
- )
* c# S. _. l+ I; r- U1 S - )
- n0 Q# W) C; j - (image_add_vector along_axis in_rot_plane)5 n! h5 K. l' v" s, I U3 ?2 X9 @
- )
4 g% m" L9 g+ L
0 ? t/ f- |0 _( | A _5 E- ;;
/ G! r# ~0 i$ J1 ` - ;; Calculate current rotation angle if appropriate./ } }; |9 ?! g
- ;; If not, grey out the rotation field., V4 l! m# O2 ]. n/ d& Y, `8 B6 O
- ;;9 V0 K8 ? z" ~3 L
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
- g# r( z/ t$ S - ;; Determine if image normal is codirectional with
0 Q- N2 ?0 L. r* c - ;; the current UCS Z-vector.
" C, A# C* V' k, F# C - ;;( u i" Y1 @/ v/ Z
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))! T1 |; a+ b0 Y v4 g
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
' J& D$ X- d3 N$ @0 M; C8 o - (setq zlength (* (last normal) (last normal))): q% S( L- w f! _) f# p9 v( F) @6 D
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
8 k! \9 y! R+ U c: m6 r' P - ;;
+ I0 G B5 |9 U7 a. y2 R o - ;; cos(.0001)^2
5 e2 U& l$ W0 T* I - ;; Tolerance = --------------
0 R4 |) s4 O S( F# {, x; y, h - ;; sin(.0001)^20 I* |6 \- S, K% F* g
- ;;
; G6 Z& C' N8 v z - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))# Z# m. P4 Q/ m0 }" x. ~) B- K4 r; z
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
5 x: B/ r/ ~- C4 A1 [( `/ I - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
+ b$ {4 [2 ]- n+ g/ x) x2 B - (progn
+ T" q# x C' B# }; O8 @% {( u - (mode_tile "st_ang" 1)
# v/ I+ t' Q o8 ~+ g$ z- j' X# F5 O3 q - (setq image:angle 0)
3 B9 g& K2 q4 x. C( m - )8 y2 f! P! |6 g
- )8 N# e0 y/ K$ Y# L- a+ r/ m1 l
- )
2 Y- r/ X% k# L7 s, ~ - & ?% t3 i+ l: a9 P( ]
- ;;
+ L/ x K' K$ |% X, H: h - ;; Modify Image" G- z' Q. l p% H+ E4 b
- ;;
/ M) q* Y: U+ S* T. E& W( _3 l - (defun modify_image (/ u_vector v_vector z_vector)
3 D5 v( U# f# V. E- |5 I - (modify_properties)
$ S' x6 u; O0 W- t4 n - (setq pt1 (list x1 y1 z1))
- H) G1 |+ @. R; F6 H: d0 T+ o - (tempmod pt1 10 0)1 n5 Q8 T/ H6 k, [) m
- ;; Make display option changes to image
- U1 f; |& m, g - (emod image:options 70)% y: D: Y) Q8 F E+ r
- ;; Get the u and v vectors6 \3 G( `3 R# |. x7 @3 C
- (setq u_vector (cdr (assoc 11 elist)))
1 b* }% u1 b2 l# r1 d - (setq v_vector (cdr (assoc 12 elist)))4 ^% r" K, c/ W6 W1 C' N! H3 p
- * q& T% j+ s$ s5 V8 e/ N9 }# x& q
- ;; Make scale changes to the vectors/ i. M5 ?# P% T* m" `
- (if (/= image:mult 1)
; q. t& g) a& k% c8 ]* Z/ H+ A: b. L - (progn
6 b0 U% U* o9 b' ?" U - (setq u_vector (image_scale_vector u_vector image:mult))
0 m$ F4 L1 ^0 m7 Q - (setq v_vector (image_scale_vector v_vector image:mult))! g1 q' H5 e7 w7 Q- [% {
- )
5 ^* t; S" i3 }# Z4 Y# ~ - )
( g+ b8 w* }+ o& M! K( W& L - ;; Rotate the vectors
1 ]' M5 @7 v) x, K$ I" ^5 |0 t - (setq st_ang (- st_ang image:angle))
5 B6 u7 P; d* w' U/ r. e6 y - (if (/= st_ang 0) @! ]7 D- i( W3 Z7 `" l, A+ L; r" i
- (progn. P- E4 N. p" H$ ~7 H' y3 ~" |
- (setq z_vector
8 B- K" m6 x! i! m' k! f - (image_cross_product
; ]' t* x1 O6 j- C$ K; V' U5 K: C& u2 l - (image_normalize_vector u_vector): `, ?8 b3 S4 X. u
- (image_normalize_vector v_vector)$ }! m6 R d2 @* [* e
- )) e0 q2 H |9 f
- )
% W5 V. R5 N( i) F, V+ X - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))1 j* }+ J: w# e0 n8 c
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))' K, E7 R6 S. Z. N
- )
$ B. s9 D5 J" {) P2 y - )' t8 a& W/ N5 _$ q7 K, T% ~
- (emod u_vector 11)9 M q% g2 g/ ^+ |0 m
- (emod v_vector 12)
3 A7 j7 ~, _5 S, _ - (entmod elist)/ J7 O5 o! c0 }$ \0 x
- )
2 k6 M: I4 I% \) ~) X
+ f6 b* J% e W6 L. [6 M3 H- ;;5 ^) ?$ |7 l. L; b3 @ _
- ;; Run imageadjust on given entity, working around possible; v9 L+ V* E! V/ F/ m) b
- ;; re-entrancy problems
) i% ` b4 S1 B7 Z$ |1 B( u - ;;+ D$ L& A$ @2 E& W/ C
- (defun image_adjust (ename)
/ g6 l |: B# A9 `) }" t5 u( z - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
: _ S. p1 B6 g& @ - (imageadjust ename)
9 C$ ?* F$ Q5 N# ^3 N- A) X- M - )
9 _$ d0 e% g- e$ Y8 q+ p; M - + x. }& M; t7 p* n* b( s. f
- (defun ddimage ()
) ~8 k3 V, ~2 U! U - (if (not (new_dialog "ddimage" dcl_id)) (exit))
' \3 [* `' @' g* V- X - 0 ?# M/ Z/ q3 t* a3 x+ w! d
- ;; Grey out the thickness field.
3 i) {/ O6 d5 q: K( z$ E - (mode_tile "b_thickness" 1)4 K% ~3 i6 A+ n" d4 Z4 y5 U4 t
- (mode_tile "eb_thickness" 1)
' {- L+ P: n; r3 }9 J( b- L - 2 A7 d) w# ]4 }' H; s
- ;; Get the associated def object." `3 z" W: [+ c% Q, A# k s
- (setq image:oname (cdr (assoc 340 elist)))6 S! R S k6 D. @# A9 O
- (setq image:olist (entget image:oname))/ A5 U& m8 {. E4 ~) j) b" @3 O
- $ W( ~. P) x9 e* K" b! y
- ;; Set initial tile values
/ R! E7 k/ p& ]5 o' B# z6 o1 J. s - (set_tile_props)8 r- i+ u+ I7 d
- (set_tile_handle)3 u P: e# D6 h% q
- (set_tile_pt1 0)5 A& H9 E/ d3 `9 A2 n
- (setq image:scale (image_scale))
, e5 l x! [, \, d - (setq st_ang (image_rotation))* e* G8 A$ m+ Q$ j
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))+ c5 }+ D4 z2 ?) m
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
]) X5 U- z v$ o5 h L - (setq image:options (cdr (assoc 70 elist)))# L# q; e% U: `# K, H; ]
- * r E, M0 A% O, N
- ;; Record the last multiplier for use in image_update function0 }3 I" P1 x* \ _' O. G
- (setq image:mult 1)1 j* R/ C) R0 B9 g" N1 |8 C
- x2 h. \3 s: n9 w; s- ;; Retrieve the image name% |( G0 u: a2 H& G8 D
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))* n) n( Z# c# u* c
- (setq flag 0)
: B! b# k+ m! x - (foreach n fn% b1 g Z+ N- B0 Z" F
- (if (= flag 1)
5 a* j p, V% N% G; n7 W% P8 K - (progn
9 ?5 O* W# p6 J5 H - ;; Display the image name
: z6 @4 h8 W/ R1 T - (set_tile "image_name" (cdr n))( L' S1 ]8 P& T1 b4 F+ Z
- (setq flag 2)2 C; y" u& z$ G: P6 Q/ G
- ) z G" [( `) h9 s
- )$ s1 ^1 [5 U# x
- (if (= flag 0)1 Z' {1 Z* b# C5 Q$ w
- (if (equal (cdr n) image:oname) (setq flag 1))9 a/ W9 t9 U/ g' [0 Q: F" o
- )
: T" a! G9 I% r' g9 m& T% b2 s - )
, Y) M5 ]* q7 @! U W: y - - t: h) X# v/ s! p$ k+ g0 l( @: C
- (set_tile "image_path" (cdr (assoc 1 image:olist)))
_' j; i) W9 K: g+ b0 E/ D0 e - (set_tile "st_ang" (ai_angtos image:angle))
9 ~* |) n( g! h+ w - (image_set_tile_scale)
' I" g) }( H/ R7 H" |8 M( y' M+ d+ I
2 f; M; E/ S# X( @; C- x- ;; Check the appropriate boxes
- U3 z% T/ q9 q" l- }4 R+ C - (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
! N8 ]) b$ A& T: H: I$ W - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1")), U& ~5 ~9 k1 ]0 d) d2 D3 _. P# M
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))' l8 z; o0 l1 O6 E9 C! v
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
" N+ o; @& W, |) e& ?& ]
8 x' f. b0 F" ] t7 j3 j# h- ;; Define action for tiles
7 L- q; N# Y+ j. Q7 K d8 d! Y - (set_action_tiles)6 l9 M+ @% r E# P3 {3 g
- (action_tile "xscale" "(image_update \"xscale\" $value)")
+ t. ~3 F+ l4 I( X, v5 r* d - (action_tile "st_ang" "(ver_ang1 $value)")9 |- h2 v* i( v$ R3 w5 k
- (action_tile "wid" "(image_update \"wid\" $value)")
# Y% P2 N1 }2 Q, e1 r+ U3 h - (action_tile "hght" "(image_update \"hght\" $value)")
5 x" J) M7 ?# L# G - (action_tile "image_show" "(image_disp_opt 1)")
s2 m+ Y0 G5 `/ B: k0 I - (action_tile "image_non_ortho" "(image_disp_opt 2)")
4 c% l5 M& V0 F0 i4 P- A2 [1 N! z - (action_tile "image_clipped" "(image_disp_opt 4)")
+ m- T8 N! u/ O8 L! ` - (action_tile "image_transparency" "(image_disp_opt 8)")4 c+ M ^- y' B+ ^1 \- [ a' q
- (action_tile "image_adjust" "(done_dialog 4)")# @: A: t$ O' B) P
- 3 ?/ h$ f3 r0 }! [: |7 E0 H. @! S
- (setq dialog-state (start_dialog))) y, H6 T* a- ?- O" I$ c
- (if (= dialog-state 0)1 f) i" c% W0 A% f
- (progn
8 U, G: o2 Y) {9 ?: K5 ^& N - (reset)
& ~ {! ?# c/ x/ I - (image_clean_variables)
6 B& I3 Z6 b1 [+ r6 \% i5 k - )
( L5 j+ I* @( y! j2 K" v - )
8 x& J2 q1 j. ]& r* N( u6 e, \ - (if (= dialog-state 1)
6 Z# h$ t! }( m, `1 y5 ]+ v7 b - (progn
4 s3 m2 R+ N8 I, }# M/ H7 D. g - (modify_image)/ O t+ L# G; z Y7 L* O; m
- (image_clean_variables)' n+ A5 C1 D8 u% t' F0 @* x
- )
5 U4 p7 o2 f* }. u M+ N( ~( z - )
& D7 H9 }% T( m$ ]9 X `, L& s& S - (if (= dialog-state 3)
) U' Y) h$ h; E, Q7 o @ - (progn& c3 X0 ?: C. d5 @' M) ?5 [6 K! x
- (modify_image)! h9 }- |+ l, l4 L4 u" D3 b
- (image_clean_variables)$ a( d2 l8 N. J: g
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))# o+ w3 A6 M) z$ n& ?5 v+ U3 f
- (ver_pt1 0)
. B- A; K N5 e3 E {* g2 F - (ddimage)
' G: [. X9 f% N: o0 I' H5 q - )
' @4 d; H- F( m! F# M - )+ d3 R0 b9 I. g+ \: L- V- j$ T
- (if (= dialog-state 4)/ X# H1 E1 h0 d( N& H* ^0 `' ]
- (progn
/ K1 Q. Z4 F4 [- Y - (modify_image)
6 j+ v/ a' N Z+ c% |0 C1 h - (image_adjust ename)5 |: c' V3 ~! N3 O" O- Q
- (setq elist (entget ename))
' {& K& Q: A, Z F. f2 q2 {4 z - (ddimage)# l1 x: p) V: ^0 K1 S- y
- )
" s0 X! ^( Y' C& f/ t2 K9 @5 E - )- v/ r# E8 T. `1 L1 b I
- )7 p I s: Y# L; ^( c) B
- 0 M# R( l# l- s
- ;;) e( e1 a/ A! C h
- ;; Modify BLOCK (and its Attributes, if any)- B* a; q( d0 x5 b- Q# r
- ;;
8 Q. c- v, k8 l/ C! p; {- G {0 v - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr5 @9 f+ O0 A2 u: X! s
- new_wid old_wid old_rot scaling old_scale+ f3 s" C1 Q! q
- xdelta ydelta zdelta xbase ybase zbase ipos)
7 y0 U. r# H0 _+ U - (modify_properties)
& m$ f, ]: T. C( O% Z - 0 D3 f# _ Q% Q! F0 h
- ;; First, translate and scale the Attributes, if there are any.
* X( {( l1 z5 _ - (setq old_rot (cdr (assoc 50 elist))
" s5 {; @4 U8 X @! L - old_scale (list (cdr (assoc 41 elist))/ }: c$ b+ m0 J1 x8 w9 L! G; `" _
- (cdr (assoc 42 elist))9 i0 e9 O) O9 Q7 a) e& H; G
- (cdr (assoc 43 elist))4 d1 V0 T6 S' V. ]
- )0 v, s V4 X+ z' k9 x
- scaling (or (/= xscale (car old_scale))
- U, X- G/ n+ }$ Q; R# Z( f H1 U - (/= yscale (cadr old_scale)). a) }+ y% L5 ?& |' q% J
- (/= zscale (caddr old_scale))
8 v8 T' \0 n4 Z& } I - )5 V# j# K+ T, U: Y6 B/ v0 l
- attr nil ; No Attributes modified yet0 |% H+ V2 j1 k8 c4 L
- )
' w4 ~5 z9 H2 u8 W- {- {- e - (if scaling! j9 i+ |: ], R: _# c) n* {. Y
- (progn
8 U4 Z$ l% ?# E( _ q - (setq xdelta (/ xscale (car old_scale))+ i4 E1 ^$ z Y$ v' |8 f! d; |
- ydelta (/ yscale (cadr old_scale))
8 B( c1 p: V! q0 G+ r8 }, W% B5 ]+ ] - zdelta (/ zscale (caddr old_scale))
" y3 J" {( B' p8 p' n) d - ipos (cdr (assoc 10 elist))
. m( B5 \5 y \ - xbase (car ipos)7 d. a) ]9 F1 g* D, m6 l6 g
- ybase (cadr ipos)
/ r& X. D) Y9 v, ]* C: F - zbase (caddr ipos)2 R- J7 j" `9 F% \
- en2 (entnext ename) ; First Attribute: f+ X$ |' p0 I7 u/ f
- )! k2 w7 S5 ^' t
- 0 _. D0 Q8 i9 P7 x
- ; If the Block is rotated, temporarily un-rotate it, along/ b! R7 \/ _$ F* Z
- ; with all its Attributes, so the scaling/translation of the* @' a3 x3 _1 |) L1 W6 d
- ; Attributes won't have to take the Block rotation into account.6 q2 i, b* a5 q2 K) i
- (if (/= old_rot 0.0)
1 l- z- y8 ~& D! X+ x% u - (progn. s6 j, E: [7 z3 v% Z
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
) y) e6 g/ \/ k0 x - (setq old_rot 0.0
, k- {4 n b# Y8 q/ z - elist (subst (cons 50 0.0) (assoc 50 elist) elist)
2 l( S7 O7 `) V4 Y! Z - )
1 b. c6 \7 t/ x3 @3 Q# O - )
0 S1 F+ | f# [7 D - )7 z ^8 u- z+ `) R: o& u
- : p; B, j6 y2 d+ h
- (while en22 z3 `' q7 O' s8 K5 A
- (setq el (entget en2))
_. P+ J- k0 U, a0 X5 Z - (if (= (cdr (assoc 0 el)) "ATTRIB")9 l- r5 m, m$ V( B7 V
- (progn
# Z) \) I& H8 x2 j7 o2 U - (setq old_hgt (cdr (assoc 40 el)) ; Height4 I5 S" |: D9 K3 e7 g0 g5 a, C$ T& X
- old_wid (cdr (assoc 41 el)) ; Width-factor
0 c" b* Z. x1 Z5 p. i4 b+ n - oldp1 (cdr (assoc 10 el)) ; Generation start point+ @8 Y* E" _+ b# r/ n$ Y
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt- g& y7 y+ o. M' g3 P
- ha (cdr (assoc 72 el)) ; Horizontal alignment
% K' |2 l) _, z [ - va (cdr (assoc 74 el)) ; Vertical alignment% _+ n0 f2 ]! v! l
- ; ~( C d* Y9 n5 O, `
- ; Translate gen. start point
; \& b( x5 G) I9 y+ u - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))2 s( M( q2 [: k# K" `4 r
- (+ ybase (* ydelta (- (cadr oldp1) ybase)))( y1 W+ A" j A- h
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))0 R$ W6 E+ \- y4 `! m
- )
# S; k5 k: ^; T5 \- Y - el (subst (cons 10 p1) (assoc 10 el) el)! m% r% |' ?; k; b, Y# J3 L
- )
# P8 f- t5 G" ], T/ U
; n6 A4 W: O( ^: B# I- ; Translate alignment pt similarly, if present and applicable
5 M; Q! }- a9 B- g. {$ V; D - (if (and oldp2 (or (/= ha 0)
: k$ g+ U7 n1 L2 V" h2 n7 a - (/= va 0)
6 f. r3 O. G t9 q" X, B- \3 J - )
1 y! Q: W3 G, S9 h& y. K, M - )- ^" z1 T2 Y& k, s
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
1 F( V! y N" A. V - (+ ybase (* ydelta (- (cadr oldp2) ybase)))
5 b% q5 ~0 t! n8 ?' g. X - (+ zbase (* zdelta (- (caddr oldp2) zbase)))
$ w2 b2 ?9 v, D - ). \ o% ^' T0 m3 ^9 ~8 A1 z0 J
- el (subst (cons 11 p2) (assoc 11 el) el)1 G; f p; V$ [5 i& w( E$ `' O
- )
a' u! K0 Q4 f& {% K! j+ l - )
) L- [" W. r, P0 Y - ; t( }, L$ F% W8 [
- ; Each Attribute's height and width-factor were computed
; d# u$ M! J" k7 b# P - ; based on the Block's scale factors. Adjust them now,/ u2 v+ w4 V* N4 f- x& A' Y. Z
- ; by first reducing to values for 1x1 scale...
5 I% @/ X, @8 G i" j4 O - (setq new_hgt (/ old_hgt (cadr old_scale))9 T' ?. `6 D1 A9 q
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
/ T1 z- f6 Z. M - )3 t% u+ f! v; @, D
- ; ...and then rescaling.. l( e$ M% {. ~* p! X/ n+ K' l- B# m
- (setq new_hgt (* new_hgt yscale); Q( L& V# ?- X$ M8 G% g, v
- new_wid (* new_wid (/ xscale yscale))+ K( V/ B" I @ B) k: x
- )
0 D& e( v, U1 ~( s3 U, } - (if (/= new_hgt old_hgt)4 Z7 r9 R u2 N' j8 `6 P- f
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
# k( c& K3 Z# n - )
. @3 R0 g+ L2 n4 p$ C0 r$ K9 h - (if (/= new_wid old_wid)2 ?. X; R7 v; y- M3 `3 x; n
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))& }) Z4 K" x- V. D. `
- )
( d3 J4 s0 n0 l8 f - (entmod el)
% i1 G' P) c4 s - (setq attr T ; At least one Attribute modified
# N% J8 F: m; @$ t+ S& j2 G0 A5 T - en2 (entnext en2) ; Next Attribute
1 s" o8 @; d1 s% z - )* ~0 w$ K8 Q. y0 g/ s2 D
- )
5 |8 O6 A" H- J) b; A - (setq en2 nil) ; No more attributes3 \& E8 r* M: q# k7 u! [% {
- ). g% @0 D/ W1 }8 ^- s4 c
- )
' _+ o* R5 \, e: c3 }, q { - )% [4 _: K5 {$ H2 V/ i6 {6 G: Y6 v
- )8 {$ S2 p p& w) W) b
Z% L, I( ]2 s' ~- (setq pt1 (list x1 y1 z1))3 a* V) x) c! X" ^
- (tempmod xscale 41 nil)
5 x" Y9 ]9 c, a0 _" E6 c* m - (tempmod yscale 42 nil)" a8 t1 o+ N2 q
- (tempmod zscale 43 nil)! O- u2 r5 ~; p
- (tempmod col-sp 44 nil)
1 {1 a) H$ Q( _' u# Z$ ] - (tempmod row-sp 45 nil)" ~, D4 B/ k3 a# S4 `
- (tempmod columns 70 nil)/ B& @/ {/ Z4 d0 n) V' n& N2 d
- (tempmod rows 71 nil)
r( J7 X$ m8 _ - (if (= xclipmode nil): F! ?/ K0 h# p; e; h. A9 o
- (entmod elist)# ?& e- }) F* y* U, x% G
- (setq xclipmode nil), c% \9 O2 f5 b9 _) O: D' L
- )
) T; e6 H7 g" p - (move_pt1 1)
4 {# P9 h8 R+ X3 w7 [ - 0 l8 |; O, e0 w g. h; O; c
- ;; Now do the rotation with the ROTATE command.
- t' b; k! K- v$ z+ {% ?( P - (if (/= old_rot rot)! l8 Q4 I! I; c1 M2 A6 U0 Q( |
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot))). _- B$ _. f! N5 r1 C) e: E0 B
- (if attr ; Else, if attributes were modified,7 u4 y1 ?* D: r( C/ U) W/ z
- (entupd ename) ; just regen to force attrib display/ Q9 p( G' W Z) A
- )
n$ ?8 `) s5 A" r) t: ` - )
) C' _' _+ T; D" M" B: b - (setq elist (entget ename))
6 P R3 U6 V- n3 p5 @+ Z7 b& Z2 ^ - )7 u, L; U8 Y7 ], H. E# f
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)0 c* w& t e, _- l. p7 a) g4 k; N( N
- (setq newhatch 0), w& s: F; K l1 N
- (setq blkname (cdr (assoc 2 elist)))
7 g( B0 T C; @3 K - (setq blklist (tblsearch "block" blkname))3 k1 n" d4 }3 ]+ k% @5 g% q
- (setq blktype (cdr (assoc 70 blklist)))
4 L; q5 \% C) B* _) p2 ^ - (setq xcliponoff 0)$ H6 k% A( _% G2 M: y; G9 g) { N
- (if (or (= blktype 0)(= blktype 36))
4 `1 \" {6 O: _( D5 l - (progn8 |8 }" _) d. e/ _6 X) x4 E
- (setq xcliponoff (xclipon elist))
' h' p; z. `5 k8 C - (setq temp_xclip xcliponoff)' S5 d8 R7 H2 R; m/ @
- )
3 g+ {$ h0 \% q1 F - )
- q7 H% _0 }& P - (if (= (logand blktype 4) 4)0 t' M4 k# B7 S
- (progn
/ b. ]! T) V3 ]. u7 w# x+ q - (setq xrefpath (cdr (assoc 1 blklist))). ]: n% i$ l( S( _$ D& D! ~
- (setq help_entry "modify_External_Reference_dialog")
9 Y G% Z h/ F9 {" b5 E - (if (not (new_dialog "ddxref" dcl_id)) (exit))3 g% I: ^7 T* f& d" ^. v1 {) c
- (set_tile "Bl_name" blkname)
& ^. O1 U% C2 V - (set_tile "path" xrefpath)) j6 z8 L) i/ [/ v7 t, w: e
- )
0 d2 b) D# ~$ `0 m+ f - (progn
- d! o# Z. `; T8 i! _ C6 } - ;; Get program name for use as Xdata app name
; ~, f1 n1 }, E1 g. |: _9 Z - (if (not (setq program (getvar "program")))
+ Z$ E- O: q6 \) } - (setq program "acad")" a: H6 X8 p- s. x6 o- z8 _
- )
" F1 R* B& `4 N( H+ a - (if (and (setq temp (assoc -3 (entget ename (list program))))6 m9 n- j1 q* t9 j
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")) |) n* T& l) P2 _' _+ r2 n
- (assoc 1005 (cdadr temp))
" _; i& z ]4 y7 o8 J - )
* B( O1 J2 [ N; [( y* d5 _ - (progn5 O# j) T3 D; M& Z ~/ z" `- V+ z
- (setq newhatch 1)8 F- N. F1 p$ C+ c. b( U
- (setq help_entry "modify_Hatch_dialog")
% j$ Z- K8 a8 F2 \* `" {7 b+ j - ;;; convert the object into a new hatch
O* `. L# G+ P# S5 t0 \3 x - (ai_undo_on) ;; enable undo7 |0 j5 Q2 ^& Q: u
- (COMMAND "_.UNDO" "_Mark")( L7 E: J% p" Y/ A
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")
2 \% `& \; f; ]( w( H - ;;; suppress nasty message from convert command
% q. ]2 z: Q, T R - (princ "\r \r")
. c% D& \; [8 @* X - (setq elist (entget (setq ename (cdr (assoc -1 elist))))): N3 {' `1 I6 y" ^# @
- (setq old-elist elist)
7 A, ?, d" H: y5 t" _3 U8 y, s - ;;; If we have cancelled ddmodify0 o; ]0 [2 n) h: ^- h: ]
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok c7 q; @# y7 T% F4 l. R
- (command "_.UNDO" "_Back")
$ }" {4 g* {7 e, H/ p - )) r7 m6 K) O6 [( P- X
- (ai_undo_off) ;; restore undo state
3 z8 n( }8 e3 y5 o2 ]6 U' G7 b# Z* d - )2 w8 B- M. a. s' @ u9 E9 G/ p( `
- (progn+ D' a3 a' C% R
- (if (not (new_dialog "ddblock" dcl_id)) (exit))5 ~1 B4 Y, P2 P
- (if ( = "*" (substr blkname 1 1))
$ v( ]* F! R+ e( i' w - (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
9 h3 ^* ?# \4 i - (set_tile "Bl_name" blkname)
2 R" q2 l7 W" {$ g O - )
2 h0 D9 q t5 R& Z5 M - (setq help_entry "modify_Block_Insertion_dialog")& {& n- e0 e- y" f* J% r
- )
0 k$ ~+ u( @8 | - )
+ t$ m2 v& [" W* |4 j R$ y9 E# e: } - )1 s- [( ]2 u0 a& i Z+ \! k8 l
- )5 g) R9 N7 A- D$ x: F' w
- (if (= newhatch 0)) [8 t5 ]6 _$ o$ ]8 J Q
- (progn
4 j* n; W0 c% |( T7 U - (set_tile_props)+ J( W$ ]1 v# }1 v. y5 L! M
- (set_tile_handle)! W1 O8 p5 d7 D( Z/ d
- (set_tile_pt1 1)
( D( H- Y, o: m( L - (set_tile_rot)/ l% g0 e. A) e3 P2 q4 l' E
- (set_tile_scale)
6 A4 } m0 s4 U: M! a - (set_tile_rc)
' }$ [9 `: T" G - (if (= (logand blktype 1) 1)( o5 j: [6 e$ P |
- (progn! v3 a0 o* I( T2 J: Q: F1 g
- (mode_tile "xscale" 1). u& y& `' P$ t
- (mode_tile "yscale" 1)% V& f9 J& @% X6 m* T. N/ I
- (mode_tile "zscale" 1)" A2 E/ n' x/ T+ ?1 i- F
- (mode_tile "rot" 1)
* h/ S. _( h H) D2 Z - (mode_tile "columns" 1)$ V4 M3 N6 @+ r9 Y" ~- e- [
- (mode_tile "rows" 1)
- j/ f& j# K4 z* M g3 B - (mode_tile "col_sp" 1)
. O; h. W& D5 Z; m - (mode_tile "row_sp" 1): ~. m; l; ~3 m3 |4 a$ @
- )# ?; `# X2 `; x; D2 `
- )1 @$ ]5 Y: B. C8 G& j# s; K+ s
- ;; Define action for tiles, P/ L5 _" k- ]- l' x4 i$ V& h6 k
- (set_action_tiles), n$ i6 B% L0 m ~( Y
- (setq dialog-state (start_dialog))3 H3 P- g; o2 S# O0 O
- (cond! C$ t7 U4 a" \( m8 v
- ( (eq dialog-state 0)4 p2 Y" P9 C5 V5 U- a. A1 K
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))7 F, ?/ R/ h3 D5 A1 u: z
- (move_pt1 1)6 \! l% p* N& B2 @5 ]
- (reset))+ r- |7 m! c/ H2 A% a# A4 Q
- ( (eq dialog-state 1)
% y- V- K9 s) s2 g; h) r y - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
7 o! p" a; x9 k0 k7 a/ Y' `4 V: Y* P - (xclip)
- M5 y9 e/ _3 K5 P) z0 S% E+ p) g+ Z - ): s$ i" r: f% V. S- G. H- W/ H
- (modify_block))7 T; i# Y) F" [( Y4 O5 C1 M! U
- ( (eq dialog-state 3)5 {! ?9 O5 O5 W6 v r
- (modify_block)& d2 P/ @* ~7 G6 \- U' u
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
2 O m( a' H! x3 f- h - (move_pt1 1)
- }+ Q ?5 `/ m4 ]: v. c - (ddblock))3 m8 _4 c" p5 d4 b1 t" v3 S2 ~
- ( (eq dialog-state 4)9 l* i( l/ l0 g" n0 x
- (modify_block)
( ]9 ~2 i" R5 o# s4 q' l1 i& b - ;; Get current handle.7 ^9 o- u9 W2 U
- (setq hand (cdr (assoc 5 elist)))9 F, U6 m9 D% P5 U# v( S; g3 I( [ K
- (command "_hatchedit" ename)
8 ?( ^7 o }# t8 K' K& F% o - ;; If OK in hatchedit, a *new* entity is created and the old one* a; a. y* @0 }" }3 _! }
- ;; is deleted. So if the old one exists, it must have been a
% w/ x- a, i& g/ q* |0 @9 E - ;; so rest the entity.
; Q1 T; K5 u4 _ R1 X - (if (entget (handent hand)) (reset))
, _; t- c3 F; @8 ?. C - )6 k9 U6 n- l: B/ _. A/ U
- )
* j8 [) c5 T, d& c - )
5 p/ M# f R% V2 Z7 Y, f - ) K9 u! @+ F k
- ). y q! y. Y! A& Y, x: W3 r$ `! @' v
- ;;
; M- t6 H) d: y0 O4 s0 _ - ;; Modify SHAPE
8 Q' {" v9 T7 X; g$ m/ S/ ~" v$ [ - ;;9 d, ^; a9 ^. g
- (defun modify_shape ()
. Z5 F8 m# v( S3 h7 x - (modify_properties)
4 Z V% N/ _* \5 E% g- f& B% r( m - (setq pt1 (list x1 y1 z1))7 e/ z% i" W( Q: [* H1 R! k
- (tempmod pt1 10 1)
2 F0 i5 e( d% v - (tempmod hght 40 nil)* t: V6 Q) p2 q! b
- (tempmod wid 41 nil)
! L1 z8 }( p+ z' x, k - (tempmod rot 50 nil)( ?0 g! |# Q* c& z) O- S0 ]
- (tempmod obl 51 nil)
1 {* A% x2 f. i8 w S6 a - (entmod elist)2 ~& a8 z) u' u9 R5 ?. P6 ?
- )
% @; H% s3 E% B( p+ z - 7 j5 r# [: f8 l9 k) [
- (defun ddshape ()
1 ~- Y+ b" T3 p) d* M5 ]+ ^, L1 x - (if (not (new_dialog "ddshape" dcl_id)) (exit))
% f% t# t4 m$ A( o - (set_tile_props)
8 V! K1 E `! y - (set_tile_handle)$ F$ E; ]) e h9 `
- (set_tile_pt1 1)
2 y7 f, U- T$ d2 ]# @" K - (set_tile_rot)
! i. Y' M1 Z1 X$ d* N3 h" v1 ] - (set_tile_hght)
8 L( z" G. H5 ^* _2 p - (set_tile_wid)+ d6 e% L9 _# H$ D! R/ a
- (set_tile_obl)1 b# W2 ?9 } S( E
- (set_tile "sh_name" (cdr (assoc 2 elist)))7 ?' [9 c; M% H
- ;; Define action for tiles4 b: w* T& j! E2 j$ c, N
- (set_action_tiles)' o; `8 C/ \- ?" m5 _1 c- P
- (setq dialog-state (start_dialog)), ^5 `% v& l: m5 E: I9 s& u
- (if (= dialog-state 0)
3 L6 k+ u, D# A: F; I9 c4 L5 ~% g - (reset): V' v9 ]5 ]% R, E& B& b
- )
5 q8 [) E. {% j+ i - (if (= dialog-state 1)
1 L- P) w7 d3 v0 `/ p$ h9 f - (modify_shape)2 X: `' k% H/ ?; ~4 Y
- )% _ `: B! j |6 w' T
- (if (= dialog-state 3)
7 _8 k6 X3 [6 F8 F o4 H - (progn2 s `$ q. Z h y R
- (modify_shape)
7 m( w' Q5 a' v5 N6 U; \5 W B5 y - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))* t7 R% \6 s* `4 G" i0 r6 q1 @- t
- (ver_pt1 1)
; f1 k! h' H9 l$ y7 R: H: P4 B - (ddshape)0 U3 p( F) Y0 P* y. c6 m/ R+ \+ r
- )
E% W% O5 J8 z3 ]( ]4 N4 r - )" L- _! M* r: U. }/ d2 j
- )! o' K1 Y' u' v5 y2 D4 c8 b* e
- ;;
- r. s' O" K" H: ]5 f7 C - ;; Modify TEXT or ATTDEF+ L" Z- L3 e( f: D7 b* K+ g+ T8 m
- ;;9 j5 R: A4 t% y& z3 m
- ;; Set bit code for upside-down and backwards setting
5 o! t; c$ V5 W0 ?) q: Z3 b - ;;
9 \) J7 j2 B" p3 [. p/ f3 Z - (defun code_71 ()
0 Y8 X, ? m, J/ \' ~: T; A1 o - (cond ((and (= bkwd "0") (= upsd "0")) 0)( _4 y p$ }6 V6 |9 h) W& M; W2 s
- ((and (= bkwd "1") (= upsd "0")) 2)
# | Y# G$ B" v" l0 n0 p* l - ((and (= bkwd "0") (= upsd "1")) 4)) M) }" u, O7 b! z! i
- ((and (= bkwd "1") (= upsd "1")) 6)
" F3 K( ]0 `1 i9 u1 T8 V- L/ A - )& R: Y$ ^9 r6 f1 b, f& @3 _6 @
- )
: r9 k/ d- B7 D% m+ n y$ t - ;;! C% _" d6 [% W3 l0 K
- ;; Style action. Reset widget values to style defaults
; k; m' `8 D, o( R" ?9 V - ;;: M* @0 K0 M% d8 f! C: d: l
- (defun style_act (index / style-list)
6 }2 F& p9 y+ K3 ?& Z) u - (setq style-idx (atoi index))0 f% A8 z6 G4 T" G" Z& O' k' v
- (setq tstyle (nth style-idx slist)) R" ]$ w* O0 y0 }3 {8 g8 F- Y/ Y( ?4 s
- (setq style-idx (itoa style-idx))& o" V+ N, `( P2 Q
- (set_tile "style" style-idx)) u' g, U9 v. M/ R V
- (setq style-list (tblsearch "style" tstyle))
' _/ g1 S$ V; V - (setq shght (cdr (assoc 40 style-list))). i: X u3 y' N9 U+ m
- (if (/= shght 0). d+ t8 L% i9 a [1 ]. W Q; |
- (progn0 T% M* a6 s( b7 Z* M5 ^
- (setq hght shght)% G2 I$ y# f: c7 D4 B9 l
- (set_tile "hght" (ai_rtos hght))
1 N% p) ]1 q5 a3 v - )9 d7 Z- V2 \; y' G- l" x
- )
I. {' Z& u4 d+ A5 G1 R% r6 S6 v( X - (setq wid (cdr (assoc 41 style-list)))
0 l1 n1 I+ p" z- s- N% o5 z - (set_tile "wid" (ai_rtos wid))" y3 i7 E' `" ?& t6 |
- (setq obl (cdr (assoc 50 style-list)))
4 N; }- d, z; K - (set_tile "obl" (ai_angtos obl)); J) X6 q# c! [, s& t
- (setq bk-up (cdr (assoc 71 style-list)))
; u: I) q/ l0 q) Y* L - (if (= (logand bk-up 2) 2)* N0 w: k3 L# d& P
- (set_tile "bkwd" (itoa (setq bkwd 1)))9 J3 n0 W) |( I& K: K
- (set_tile "bkwd" (itoa (setq bkwd 0)))
) A% m# g5 y+ @' g5 H - )
& S" A7 p$ a) ^" i0 h+ L - (if (= (logand bk-up 4) 4); w- ^5 O9 I( \8 E
- (set_tile "upsd" (itoa (setq upsd 1)))
% V9 n* S1 K0 D' U% N - (set_tile "upsd" (itoa (setq upsd 0)))7 ]/ v6 `& F6 `$ E5 ~
- )+ T, L$ s$ S1 t4 I
- )
# F: C% V3 ?+ |) W! L& K, y- X - ;;
. |: Z: g2 u1 D/ m8 C. C4 G - ;; Justification action. Set vertical and horizontal alignment variables,
8 `3 c. x! Y* b0 X6 {$ {& l2 c5 ^4 V - ;; grey out rotation and height if alignment = "aligned", grey out rotation
) V! p: ?9 J, o" A - ;; if alignment = "fit".& Y3 P7 E7 j4 d+ F( W; k) \2 ]
- ;;
' o5 I/ F2 |. a. g# b - (defun jlist_act (index / templist); L, O* S, S0 f
- (setq just-idx (atoi index))+ u# v$ a. W. l |4 G8 w
- (cond& M- d% ^( [# f9 G3 r/ T
- ((= just-idx 0) (setq va 0 ha 0))
, q$ j1 C4 ^) j1 \ - ((= just-idx 1) (setq va 0 ha 1)), T: Y+ a* @. F9 f! a) Q2 U; L
- ((= just-idx 2) (setq va 0 ha 2))
" x) d" ~! B+ o! X - ((= just-idx 3) (setq va 0 ha 3))) ^9 ]5 Y$ s' N0 E
- ((= just-idx 4) (setq va 0 ha 4)). o% r. ? s, [, S
- ((= just-idx 5) (setq va 0 ha 5))( O7 P8 z6 o$ W u5 Y1 R9 C
- ((= just-idx 6) (setq va 3 ha 0))5 s( q' Y" I0 R8 i8 D* c5 {
- ((= just-idx 7) (setq va 3 ha 1))
* m# V( K4 {; }7 ^% p" g5 B - ((= just-idx 8) (setq va 3 ha 2)), Z$ B) z r) e" f
- ((= just-idx 9) (setq va 2 ha 0))2 ]. K, G6 Z7 c+ X# I' N. V$ r
- ((= just-idx 10) (setq va 2 ha 1))( t' U: M- O2 l$ d
- ((= just-idx 11) (setq va 2 ha 2))
! ]$ l( e6 E% P; M - ((= just-idx 12) (setq va 1 ha 0))
7 s; S/ W( c1 }: S7 z$ {, y - ((= just-idx 13) (setq va 1 ha 1))
1 T$ m' B5 m4 C. w- j - ((= just-idx 14) (setq va 1 ha 2))( m: A$ ]1 k% {7 M( a- p+ R5 I
- )3 R: G' e; v0 K; q! p
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
4 u7 `9 o* l0 V, a0 }: I - (mode_tile "rot" 1)
! y. k; O6 G" r2 n - (mode_tile "rot" 0)& ]: G2 U7 q; y$ U
- )
: `6 f- s- s' p" [3 S - (if (= ha 3) ; If Aligned text9 X. u3 V$ [ s' @$ U9 s: K
- (mode_tile "hght" 1)
0 [1 e5 m# X8 }% [( b - (mode_tile "hght" 0)) X) w3 D) F4 T8 n- W
- ), U# Z5 Z$ Z6 Z J4 g7 W) ~- A
- (if (= ha 5) ; If Fit text& [$ k' Z# w. B- H. e
- (mode_tile "wid" 1)7 r- {/ f( g9 F
- (mode_tile "wid" 0)
5 n6 u7 r# K7 m5 T - )
/ y3 \1 D( Q/ h" H8 F& a9 H - ;; Reset rotation and height if changing from aligned.
$ {) i1 S2 z, A$ o( m, D - (if (and (= ha-prev 3) (/= ha 3))0 h2 k7 N3 }( J4 a' q5 j; z
- (progn
3 Q/ k: O6 {# V$ _( K4 H! _: @+ t - (set_tile "rot" (ai_angtos (setq rot 0.0)))# c2 F, F4 d, A6 _6 \: g
- (set_tile "hght" (ai_rtos (setq hght 1.0)))0 i) }: k) ?0 l% N; P+ T# u
- )- o7 r* D/ Y5 u, Q
- )# l$ G- W! ]8 G- b
- ) x0 m" B8 \& w2 }! \* {) U2 i5 g
- ;; Reset rotation and width if changing from fit.+ ^2 j3 A6 f- l) O6 g3 r
- (if (and (= ha-prev 5) (/= ha 5))
1 e( g! F2 @/ s B# ? - (progn1 U Z/ o2 W5 b
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
( ?3 M/ J* l0 |$ I ~ - (set_tile "wid" (ai_rtos (setq wid 1.0)))# c$ x9 t3 E" c1 p9 k
- )
6 Q6 s; ^1 C! _5 Z6 K4 W: }2 T - )! O" S) @ T5 {) o+ M# X! u# b) y
+ J& C2 k* s1 g( I: t, z- (setq ha-prev ha) ; update ha-prev for next time
7 I6 W+ [3 m2 {' O5 C9 e" m - (setq just-idx (itoa just-idx))
9 Y$ G9 O9 N" g' j! k- [6 T - ): k! S* Z* ?- |6 U# t$ s
- ;;
9 W" w* m+ L& w* X7 U7 { - ;; Set intitial alignment setting based on vertical and horizontal alignment
! K1 I* Z* e* [! O# E- W - ;; bit codes.; u {* _1 v4 M$ Q q
- ;;0 R8 _7 m8 D! M, D5 n
- (defun set_just_idx ()
" m2 Y. b: o9 b& e" i1 D+ P8 i - (cond
2 {7 ~+ Y0 ], u) W) t/ t - ((= ha 0) ; Horiz alignment = Left9 H4 W! ^& h. v1 V# I
- (cond, M. E8 ]6 W a2 o; s( }7 @( P6 k
- ((= va 0) (setq just-idx "0"))
! R3 }# t" x8 ]! \ - ((= va 1) (setq just-idx "12"))6 [( y& \: V& g, {4 d% v
- ((= va 2) (setq just-idx "9"))
6 `, M3 N: A) n+ v - ((= va 3) (setq just-idx "6"))
& z% n9 |# h$ f4 z# A - )
( U3 k6 }+ T7 s6 D3 {, E/ i3 j - )
+ f# V V& A* I* @6 A! q - ((= ha 1) ; Horiz alignment = Center
( T: F9 e5 o' H3 Q6 J - (cond$ a) x6 J; S& {" \/ f
- ((= va 0) (setq just-idx "1"))
) F) Q# ]' \9 `0 h* @/ m/ B* O" S - ((= va 1) (setq just-idx "13"))# W5 o6 w9 l+ ?$ A1 y; u
- ((= va 2) (setq just-idx "10"))
. g% D+ |+ J) }5 x( H6 c - ((= va 3) (setq just-idx "7"))
* |% s) [- P5 ?/ ~7 T d' } - )
9 }* a' U2 t, D% n5 e& k7 k - )
, E7 I! y" s. H - ((= ha 2) ; Horiz alignment = Right
1 t* t: ]! m* @ B - (cond& m) g7 Y) \. M1 B* p* h
- ((= va 0) (setq just-idx "2"))
/ ~4 E6 s' L% V2 v6 D - ((= va 1) (setq just-idx "14"))
5 _4 }$ W3 x# o' X, Z. \) d+ ~) B - ((= va 2) (setq just-idx "11"))! ]' o2 l) Q H! k- d1 }; u
- ((= va 3) (setq just-idx "8"))* ^+ z# P$ ~" ]/ Q
- )8 J: S; | m) C6 c2 _ }% V) k' s
- )
6 r! s0 F$ `5 O) N) ~ - ((= ha 3) (setq just-idx "3")) ; Aligned+ i9 u2 D! c, h, x
- ((= ha 4) (setq just-idx "4")) ; Middle
4 v" q3 X6 W5 |: X* @$ @ - ((= ha 5) (setq just-idx "5")) ; Fit
, Z P6 m6 P" C1 Z - (T (setq just-idx "0"))! a( ^' ^# d6 t( X# A# d/ ?. u
- )
( ~% A# u! e6 I9 M; ?- k! V4 k - just-idx
' H# g5 M" ~" Q* L - )
( z. D- o2 G; w x! ?- S8 e+ E
6 A1 s/ q) ?* q$ j3 {( u- (defun modify_text ()
& b9 r5 Y Z+ i: b3 T- r- Z - ;; insertion point
, l9 \7 f. t8 W - (setq showpt (list x1 y1 z1))
- x( G5 ^( z! t7 Q% X7 d - (setq bit-10 (trans showpt 1 ename))
1 v: w0 t/ L3 ^& @1 }7 v - ;; alignment point: F( ~# \1 s- z7 u
- ;; for 'Aligned' or 'Fit', alignment point must be different
, d$ ?8 H f/ H6 Z - ;; for all others, use insertion point
- R. U" T# w6 M' j9 E+ t/ Z - ;; (ACAD will recompute insertion point) j# N2 V7 u2 I, w' r
- (if (or (= ha 3) (= ha 5))
1 t) l2 i: X5 Z3 w* T% |5 [* N& F4 l - (progn/ k" g* o$ s' ~+ X" w0 X4 M* Z
- ;; if no alignment point, fabricate one8 W& ~! r9 P6 ~6 H. q$ s4 y) v
- (if (not alipt)) B! l. Y- D8 r, _5 I
- ;; add text width to insertion point
4 P; i0 L( {5 M - (setq alipt
4 ~4 L0 v/ {; {! w - (list (+ (car showpt) (car (cadr (textbox elist))))5 P0 k/ [+ g6 C: }9 \
- (cadr showpt)
t( l' K: x$ V0 _ - (caddr showpt)2 t1 N9 }8 ]8 J; w
- )4 y2 ^! f9 ]9 C
- )- t. L$ O; m) h1 E4 j
- )
7 x( Z$ z2 m, [$ y3 g6 K - (setq bit-11 (trans alipt 1 ename)) N' `- n( S/ b3 H
- )
2 M1 \/ y) d) a K) ?( g - (setq bit-11 bit-10)- |# S, I( W# [1 E* h
- )
: z4 x" ^3 E: Y" V: ^3 t- [ - (modify_properties)
+ _# x6 r& n9 h8 q/ t - (tempmod tstyle 7 nil)1 Z& Y5 @: v9 I5 |9 R- B" H
- (tempmod bit-10 10 nil)0 @ I( S1 Q7 g4 W3 d6 b+ \ e
- (tempmod bit-11 11 nil)) [' u3 E$ ~. ~
- (tempmod text 1 nil)
: H5 K7 r. g+ m- ~+ i" n - (tempmod hght 40 nil)
5 }1 k9 A3 G9 x% B6 M: v7 ] - (tempmod wid 41 nil)
. s" R! u' b9 A6 }5 F+ G/ ? V - (tempmod rot 50 nil)+ O/ g* l% R% |& q
- (tempmod obl 51 nil)* x6 V* U1 h' K5 v( v) R/ n6 x* b2 l
- (setq bk-up (+ (* bkwd 2) (* upsd 4)))
9 v; Q K( ~+ Z2 h: z' [ - (tempmod bk-up 71 nil)
0 l8 j3 I' ] J( a - (tempmod ha 72 nil)/ l$ v' c; c, d( W# S# |
- ;; Attdefs use 74, text 734 k2 { D8 w4 h9 o; G k
- (if (= etype "ATTDEF")
- A- a5 E9 x: n" M! [ - (progn
, L5 B M) N. n - (tempmod attag 2 nil)
1 F* k E. i& {+ y6 h - (tempmod atprompt 3 nil)% y) o: _0 I7 l' o9 J! s
- (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))8 @) |' G. T) C x1 x2 m
- (tempmod icvp 70 nil)+ X* Z& p; x6 J5 C! D. u' }
- (tempmod va 74 nil)+ R5 @4 I( N+ B, Q
- )# Z% ? ^6 a1 T0 }( i5 I, W- `
- (tempmod va 73 nil)
: D! A% q4 B/ q/ Q6 _ j - )4 W; O2 i( k2 W! p8 B
- (entmod elist)
) s! U( G* v2 k - )
/ u% G5 c/ M" _% v9 _- ` - 3 a! q. I: o, j( a" q. P
- (defun ddtext (/ 2ndpt slist i)
, t/ R* Y2 K4 c- ? y, E# z4 r - (if (= etype "TEXT")7 a8 q* ?7 n3 `' `1 g8 E7 m% S A5 Y5 Z
- (if (not (new_dialog "ddtext" dcl_id)) (exit))" P& s# s( F8 ^5 R4 |
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))
# G4 L) g7 Q( T% R - )8 c* n$ p* l# ?( O' w
- (set_tile_props)+ c, s( H) i3 K" y
- (set_tile_handle)6 d2 d9 w# \/ e2 W8 T
- (set_tile_text)
& I% H; n# q5 N0 Z - (set_tile_tag)7 ]7 H5 y% \. k' k" h( T: p6 ^
- (set_tile_prompt)
: F7 j' ~+ n# I - (set_tile_hght)7 P9 N& D, f C2 w# }7 T0 e$ o
- (set_tile_wid)
1 x( I, { w B( _8 j/ D+ t+ } - (set_tile_rot)
5 c3 r& r F, j( x$ x4 U% e% z - (set_tile_obl). S1 ~' N% V# ~
- (set_tile_bk-up)& Z: i- b3 Q( p) a+ q
- (set_tile_icvp)
2 l, Q |8 K8 F' m/ ~9 s - (set_tile_style)
1 o! @7 p) F8 q1 U4 M5 p5 G - (set_tile_just)) f, J# q; s" A
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))( T0 h# k) j/ Y. X
- (if (not (assoc 11 elist))
7 u. w. ]% \/ X$ h. e( ~0 Y - (progn (setq pt2 pt1)
; a7 E% B7 z2 i9 ]5 D - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
% ~! Z; H5 g5 r4 [& r. U! { - )
; F2 h- e/ t' _* n# p3 g - ;;(trans '(0.0 0.0 0.0) ename 1))
# W* }2 x" @5 x/ S - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))4 ?/ _' U6 r. ~# X6 a* E
- )
% E% l! K7 l p# ^4 E( ?) T" \ - (if (or (and (= ha 0) (= va 0))
9 k6 {. |& a$ W7 m - (= ha 3)2 X; x6 Y0 `) j8 W. x
- (= ha 5)# w$ ?3 B8 C1 d! B8 ~; T
- )
s3 x: I+ |! i( }! J - (setq showpt pt1)
" U, g) J% j' ^9 Y, h - (setq showpt pt2)
# S) `' O( k' H( l9 [$ } - )9 I. A/ e5 A2 |& U2 Q
- (if (or (= ha 3) (= ha 5))5 @3 V# h9 I8 Q- V
- (setq alipt pt2)
( X% T+ {7 J' H; V2 b9 A2 X7 z - (setq alipt nil); d% v4 [' ]7 l6 v: M
- )/ u2 D5 d! |+ b8 W3 Y0 ~* O0 t. r
- A4 s: d9 T+ D3 |* O1 o
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))2 ^0 J0 b2 Q0 D D1 p& d1 k
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
! q0 M6 q% G1 u+ @. R& o - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))' }% O7 [; N0 R) a( E
- ) \, n" N% Q5 ~! H" b
- ;; Define action for tiles; G& }2 E' ]; q7 b5 o9 o1 `1 }' d. t& s
- (set_action_tiles)
c8 M' r3 r- h$ J4 J - ;; Set focus initially to the text edit box.
8 C8 c# Z3 p! W3 X( M4 s - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
3 R* y" t6 o4 j6 d+ {0 a% ?4 Z/ ~ - (setq dialog-state (start_dialog))
1 Y7 o& s# s R0 u' k f" v! Q; C - (if (= dialog-state 0)
; L Q% G: k/ X4 W6 Z3 C: y& d' y - (reset)0 I$ r2 q* M/ h/ a6 O: G- l
- )
a: \% f5 H! { A - (if (= dialog-state 1)7 s# J1 J* Q8 o+ v2 Z0 [7 h
- (modify_text)0 B9 J2 q' ^) F( _# G |8 Z
- )
/ Z G% ?- I2 A a) m - (if (= dialog-state 3)
# `+ t# \3 C; q" O2 I- }& O; p" q" C$ { - (progn Z4 L7 \* z5 h. ~7 S7 ^1 f
- (modify_text)
9 Y5 O @+ R' G% v7 K; [* v - (if (or (= ha 3) (= ha 5))
2 y% Q* O6 W( y$ \ U+ u - (progn6 N' l" [1 a* M3 H8 j. }) _
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))8 N6 |2 q2 L. [' D
- (if (not showpt)
* w/ Q1 w0 Z* S - (setq showpt (list x1 y1 z1))
; l% x$ d- u. |8 ^5 B# t$ @' Z - )
! A7 n4 A3 ], E @5 N' d' f/ _% ? - (setq 2ndpt (getpoint showpt "\nSecond point: "))6 E) L; h" _$ `2 M/ l. G
- (if 2ndpt. L+ s8 M; ^* i
- (progn3 h$ h5 {6 j+ s, E4 k [
- (setq alipt 2ndpt)
2 K8 p! P5 Z1 b* L5 Z- u& d$ [, | - (tempmod showpt 10 1)
% g5 m8 C2 r" C* m& Q4 t - (tempmod alipt 11 1)
. I [" l% f1 ]- q - (entmod elist)& T& B/ [+ b! w B3 c, p
- )
3 d. I" ]7 P7 q - )2 o+ u5 i! g9 o7 ^, z0 o* w
- (setq elist (entget ename))0 D/ h; z4 j7 I3 e' V% O
- )& L( e {/ m* V1 J' S
- (progn
" j; l7 w& e, i9 n+ E/ y - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
# r0 `2 G9 M; ~8 i - (if showpt
# X& [& V. g* p9 J/ T - (progn* U. f0 }# ?. x! y
- (if (and (= ha 0) (= va 0))/ y) R" w1 L9 M6 u5 \5 H
- (tempmod showpt 10 1)
9 Q' R, t# ]$ z: v; h' n - (tempmod showpt 11 1)
, F9 B* K) ?$ H7 C - )
7 |& a2 n8 [& C - (entmod elist)3 J: `" j+ {1 T/ K: S# d' P
- )
2 |. [8 Q1 V" L& G% R - (setq showpt (list x1 y1 z1))
: i& h% {! s# A: D/ K& h, a - )' d( i3 V5 G$ T% R0 `; F# v
- ) L+ j# A% s3 O" F% r
- )6 a! B* o$ h' x+ M6 O) u: e& ]
- (ddtext)+ _4 b. ?- x- T2 m" K# A+ _9 f
- )
0 n; J+ k. R o3 J9 E - )
! i% ~ G4 e. O& Z - ) i% S1 G$ N. [+ X
e) D( C+ f& W1 Y4 {- ;;
/ b+ @5 \$ n, S* Q2 r: K K/ ]! w, A - ;; Modify MTEXT B" w. n+ e1 l- ?6 b
- ;;1 n/ R" Q" @' \+ @$ ]% e
- (defun modify_mtext ()
4 m; S. c$ i) Z) a9 x" X+ s, j - (modify_properties)6 L/ T) j" O8 r0 r }
- (setq pt1 (list x1 y1 z1))% d# V8 a; z7 w* A1 R6 @% J
- (tempmod pt1 10 0)
- G/ A* A, D1 [" `9 E - (tempmod text 1 nil)" R, o. f0 C L: G* m1 L( L! t% y
- (tempmod tstyle 7 nil): A% ~0 L# r L" s" _3 \; m
- (tempmod just-idx 71 nil)
0 V$ P$ z3 K% [3 W - (cond0 f" s3 Y) B3 c2 B. U7 Y
- ((= dir-idx 0) (setq dir-idx 1))
& q4 [3 C1 U! D% L - ((= dir-idx 1) (setq dir-idx 3))) G6 H8 s$ R: N& {
- ((= dir-idx 2) (setq dir-idx 5))& Q+ A: q: f q% G; N, N
- (T (setq dir-idx 1)), A- t R" @' u' s# s4 w# ?
- )& z* ~ D/ \) }' h7 S
- (tempmod dir-idx 72 nil)& u/ m+ C* U% c% n, N
- (tempmod hght 40 nil)
7 R2 }4 ^ F* \' i - (tempmod wid 41 nil) j, l. p3 r0 o5 }& M) h
- (tempmod rot 50 nil); Q s) R2 l% P, C
- (entmod elist)
& [' n5 M: |' n4 D* d - )6 w8 X; O0 {' t# f0 M
" d! V5 [1 ?; i3 K, X3 b- ;; Set MText text style4 b6 B0 p# A3 ]/ ?3 e1 h6 ?8 k8 z* g
- (defun MText_style (index / style-list)
p/ H# Q. D: } - (setq style-idx (atoi index))
1 B2 P3 C7 h/ o4 S, ^1 Y7 R2 E3 ? - (setq tstyle (nth style-idx slist))/ X6 h e9 `3 s A( f) f! ~% D; R
- (setq style-idx (itoa style-idx))( |6 ~" z @1 M% b
- (set_tile "style" style-idx): f: i, D3 C& ~# \! m: n, r1 \
- (setq style-list (tblsearch "style" tstyle))& `* L' o0 p% X* r9 f
- (setq shght (cdr (assoc 40 style-list)))' q2 L4 E O# p/ ^2 a
- (if (/= shght 0)
) d6 G; w- R7 ]2 {5 Q: v4 `# G! n - (progn
# H0 G' V5 [. g; A - (setq hght shght)
" D4 |4 A* s ]2 `( \) h N - (set_tile "hght" (ai_rtos hght))* A. n" A `0 X) ?! I
- ): b6 G0 k9 U. l" H9 o8 T
- )
& R0 q" C& H9 J7 a5 d) g - )" N/ `; H) Q) v$ u9 Z+ N! v
% o# `' j% q& l1 c- ;; Run DDEDIT on given entity, working around possible re-entrancy& o2 h* x2 L9 Z& N
- ;; problems with MTEXTED z5 X0 b5 N8 a; H
- (defun safe_ddedit (ename / orgMTextEd work). N, j% F( k# F1 c: z. _ P
- (setq orgMTextEd (getvar "MTEXTED"))
2 U! U# P" b; l - (setq work orgMTextEd)
, z+ {9 F1 f/ d - (if (= ":" (substr work 1 1))2 B9 g& p t3 ?+ ~, ?* @: `: h1 `
- (progn1 T8 L! ^% e7 C
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
% p2 |# ?3 h" p i1 A: [ p - (setq work (substr work 2))1 t. n# W0 ^/ Y2 a( _+ Z
- )6 |4 E `6 s* l" s2 S |
- (if (= "#" (substr work 1 1))! H1 x* i0 w" Q) f: p
- (setq work (substr work 2))
4 X) \- B# b! t$ z& h7 I, q - )
7 ^, L; @* j4 r1 ?: V - (setvar "MTEXTED" work)
# H' |3 L1 B! Y5 M7 N0 B n$ X - )* m- d T* b4 v1 ]. u% P( }' V
- )
, b8 Q' K: X' G1 t3 J5 ]2 R - (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...% n; |& ~; K2 t9 o' Y/ q+ K
- (command "_DDEDIT" ename "")
7 g9 K9 g: R$ S2 n) K - (setvar "MTEXTED" orgMTextEd)& m& ~2 G5 X/ C' R9 f( Q
- )
% B& M9 A5 }9 t7 O$ y - & n V" e" W" b4 R2 A" Z* N
- ;; Verify MText object width, d: P. f% L$ C
- (defun ver_MtextWidth (value)
# f9 F- `! ?0 k - (setq value (distof value))
1 ^- W5 j7 l2 B0 W2 u1 o - (set_tile "MTextWidth" (ai_rtos value))
4 `; z6 u! r0 G, t t p - (set_tile "error" "")
. d/ _1 ~ ~$ d# m+ r - (if (< value 0.0)) E; {% y% v) n4 |' m& W- @
- (set_tile "error" "Value must be zero or positive.")
8 ^" N$ W& |% `0 w - (setq wid value)
! S" A) o9 j7 U* L k - )/ a" `, O1 a! }% m/ w
- )
2 p/ e! ~6 Z/ ^8 P, ^
0 Z7 F) \# H' P a0 @' J- (defun ddmtext ( / gc3). [* U# L% S) c2 C8 `
- ;; Get dialog# }6 d' ]' E& M/ C) C
- (if (not (new_dialog "ddmtext" dcl_id)) (exit)). M6 r% X! U$ `
* Y. n9 [5 a' N9 {$ V; l5 L- ;; Load list boxes
" s* X i' O# u/ I* Q - (start_list "MTextJustify")( x3 J: G; T% L+ [) W. M
- (mapcar 'add_list '(# r+ s5 R T1 O# H9 z2 b
- "Top Left"& f( [4 ]+ J0 x: i
- "Top Center"
0 V1 N6 v5 _: G - "Top Right"/ v* ^" ~3 f& m+ _; g
- "Middle Left"0 o$ a# i# ?8 W$ F& A% E
- "Middle Center"" ]' q0 M# w1 R
- "Middle Right"3 f) [- D5 s/ O8 R0 a
- "Bottom Left"# r) t8 l" l$ q B/ n/ O: |
- "Bottom Center"4 F1 \; K$ w$ G8 U! V" o
- "Bottom Right"! r- R8 x: n. f/ {/ A
- )/ N4 j; O6 H& U) E7 o
- )* O# @0 H+ f$ [: g$ b" Q. z
- (end_list)" h4 X, p: {6 l! A
3 a. J# a# Z9 R) k- g- (start_list "MTextDirection") J5 J- X. A6 E7 i7 l
- (mapcar 'add_list '(& m4 V' L2 o0 ?# Z! }* s# G. a8 f
- "Horizontal"
5 [$ j* e8 A$ a4 m( F7 T& N ^ - "Vertical"' g$ N5 s7 q7 i3 ^% C4 Y
- "By Style"
% X5 R9 k' c& ~ o - ): }/ v5 k+ W' t0 G9 z6 k; m' w3 v6 B2 C
- )- p& O1 C% _5 b* D8 G
- (end_list)) y& o% V. c. l0 q. k- R
i- V, F. f% w1 e" l- ;; Set initial tile values" t0 f V" w' c8 z3 }+ U) _6 S/ X
- (set_tile_props)
' g: c% m8 G A4 H - (set_tile_handle)6 T; ~" W+ r! V: Z6 e$ g8 P+ }7 l
- (set_tile_pt1 0)% Y0 `( ^. h" n+ i& O; ?' s0 Z
- (set_tile_style)& i6 u; b: N: w, I4 f5 c1 d$ b9 N
- (setq just-idx (cdr (assoc 71 elist)))
# a% p- c1 [# Z; e. b% G - (set_tile "MTextJustify" (itoa (1- just-idx)))
# V1 H* ?- z* I! n5 j5 F K - (setq dir-idx (cdr (assoc 72 elist)))
- X- D5 F! @4 u% h/ {! i - (cond6 O. M+ M/ U# J% g0 t
- ((= dir-idx 1) (setq dir-idx 0))
" T; n4 y! }2 C1 | - ((= dir-idx 2) (setq dir-idx 0))
( p$ a1 G& x+ T6 c" S3 u) T - ((= dir-idx 3) (setq dir-idx 1))
7 a3 P% E8 M6 I" s. i/ T4 m |0 n - ((= dir-idx 4) (setq dir-idx 1))3 } s2 N Y0 `7 w9 [9 K. N
- ((= dir-idx 5) (setq dir-idx 2))( \9 G" E* D2 ]" H
- (T (setq dir-idx 0))+ S6 Z0 }% ?! {' `5 \6 P N6 n
- )
: P; ^0 z% [& f! K+ F - (set_tile "MTextDirection" (itoa dir-idx))
: Z" U4 \0 A& S e: m0 \3 u4 G - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
( H4 d7 |( ~# @$ q0 J" J% S! U - (set_tile_hght)
! A# ~2 j: `' t4 e( l - (set_tile_rot)! ]- f' R: ~, A9 g0 h0 m' ]) ^
- 3 @; t A3 N3 Y* i/ [, r! g' n0 U
- ;; Set edit box, disable if too long
* N7 \( \% e" z0 E5 E8 F2 G - (setq gc3 (cdr (assoc 3 elist))% s2 w9 |: e% S' ?2 R' s
- text (cdr (assoc 1 elist)))
9 G( ^& l6 K, n - (if gc33 I- M8 w: w) P
- (progn ;; Text is over 250 chars, disable edit tile/ L* }$ G Z. {
- (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
; z5 \# [: U) ^8 l - (mode_tile "t_string" 1)
2 Y/ q! y% O& q$ d" Z" c9 x - )0 q1 r7 v, L& h$ d! o* z6 v% A
- (if (> (strlen text) 80)5 X3 o+ C# D7 y( p" n
- (progn ;; Still too big
" e7 R3 j' a3 J8 U" z - (set_tile "t_string" (strcat (substr text 1 25) " ..."))- i* U4 }- Z4 V' t* o4 z/ ~
- (mode_tile "t_string" 1)
* I5 \% u& S8 @) {+ G8 l; k - )
! i5 @2 h8 i1 I% w$ f% f& u - (set_tile "t_string" text)
. S; [" w' }, z9 v - )
% d6 O3 B1 h) E& r" O - )
5 g4 Z- g! |7 y5 b0 m* P - ) y" d0 D' H! [; {- [
- ;; Define action for tiles
# B& q" I9 E: ?' `. J4 V- ]: b+ \ - (set_action_tiles)
, F- y1 w8 s1 d# b6 R6 p% M - (action_tile "style" "(MText_style $value)")
, v1 [6 V. t$ n - (action_tile "MTextWidth" "(ver_MtextWidth $value)") }7 ?& m$ \+ K1 e) O# k
- (action_tile "MTextEdit" "(done_dialog 4)")3 m8 }) F: y( P6 \2 z) U4 V& j' b
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))"). @! q+ f, u9 z9 q. |/ W. u
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")8 a: [* C2 q1 k. c# ~0 J
" [% ^9 w# A! y7 j0 @- ;; Set initial focus to text edit box.) @; s& Z; d g& n V" `, f
- (mode_tile "t_string" 2)
, e' L7 c5 E2 p- I4 ? - 4 o: k0 |# o2 R; S2 C* \8 e
- ;; Run the dialog8 \& `7 b2 q* M9 t' M
- (setq dialog-state (start_dialog))
& ?6 q; m- |9 J- ?: m- z& o6 ~ - (cond Q& _8 I5 ~( B/ U- h$ B* S9 ~
- ;; Cancelled - restore saved data
6 F! D/ N6 f a h - ((= dialog-state 0) (reset))
8 ?! ]+ b# u; X6 o6 y. {, @ - ;; OK - save new data2 L( C3 o& z( ?% r* Q
- ((= dialog-state 1) (modify_mtext))" Y- A. U m3 R. c
- ;; Pick new insertion point1 h7 t" ]# Y8 f0 q9 Q% L( J
- ((= dialog-state 3) o2 I- }: C$ I( m+ e1 X
- (modify_mtext)" S0 ^7 y$ D7 ?$ h& w. P) n
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
5 U4 m# Y0 O( E5 G( b" j( I3 _ - (ver_pt1 0)
9 F3 f7 n3 t/ N. v% s' d - (ddmtext)
3 l* t" @# W+ c: f5 k - )2 [4 V) u, s/ x8 n' S
- ;; Run full editor
( j% b! C- I# ^* ?9 f3 O - ((= dialog-state 4)6 z4 d. n- D7 p1 d+ k
- (modify_mtext)2 n- R) ~# J0 p4 X$ w
- (safe_ddedit ename)" z# }4 ^' n4 v* g
- (setq elist (entget ename))
3 C8 Q! W; { M% H/ D - (ddmtext)
! g7 T8 _5 U+ K+ } - )
7 W, M3 { }4 u+ Q# } - (T nil)* E) F, K% ^! }/ _$ s n. u, a
- )$ [; f) ]- a- S: g3 b) |! H* k
- )! q1 ^4 q! V9 A8 A, I. M# L
- / f! ^' S- U! j2 z
- ;;
+ D" X$ _# s+ @. y+ c/ k - ;; Modify VIEWPORT# h- i0 J. v+ U4 Y* Q6 ~; O
- ;; K' l" w6 C( W u
6 L2 ?: E- ~0 n4 \- (defun ddvport (): x. ], r9 w3 u$ R
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
4 ]( J6 z* W! E* Y - (set_tile_props)/ ]5 m4 T6 p/ M1 H" J# a/ C0 n
- (set_tile_handle)
8 Z4 w5 L" l5 r9 \' ~ - (setq vpt (cdr (assoc 10 elist)))
3 a: u- U: Z4 R( K - (set_tile "xtext" (rtos (setq x1 (car vpt))))
! @: F3 t- \) J2 w( H- `& _: `0 v - (set_tile "ytext" (rtos (setq y1 (cadr vpt)))): h: m/ H7 P5 n! X( m, k
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
+ R1 i, E: P8 L) w- \* h. Z& L6 [9 ^! g - (setq wid (cdr (assoc 40 elist))); ^) w* L; m5 L) d; a ?
- (set_tile "wid" (rtos wid)). E7 B6 r) o7 }2 \7 r! o: I {& V3 y
- (setq hght (cdr (assoc 41 elist)))
. y! O! M8 [; a$ |4 _ - (set_tile "hght" (rtos hght)): q; U, r+ \9 r. m- [, } y
- (setq vpid (cdr (assoc 69 elist)))8 h/ I V+ g5 h! u; ?) w# w
- (set_tile "vpid" (itoa vpid))
% ~- Y( w% P( f1 ~& s. N$ `( p" y - (setq on-off (cdr (assoc 68 elist)))
2 B9 o7 r7 {& N9 E- L# O( ?! j - (cond
2 S3 O% b' d+ @ - ((= on-off 0) (set_tile "on-off" "OFF"))
. |5 ]) d; H& e# m) I - ((> on-off 0) (set_tile "on-off" "ON and Active"))
" x$ m: d( ?9 Q* g4 p" i - (T (set_tile "on-off" "ON and Inactive"))
5 a& L& M! W' S3 p4 a9 k$ h - )
- y6 V2 Z2 d$ {- g4 Y+ l2 C
6 b7 \( x6 S- x# P7 v- ;; Define action for tiles
' q% ?$ B$ E) k - (set_action_tiles)
3 J9 s1 ^# ]: M
8 U7 B- a) l& c- (setq dialog-state (start_dialog))! g) `2 _* m% W1 ~: X+ L1 Y% y
- (if (= dialog-state 0)
% S! a7 a7 }. l2 e - (reset)
" `6 o; F, N6 I2 S' u7 h# ] - )
6 ?' |6 ?: X. C7 R* V0 n - (if (= dialog-state 1)
/ B A/ S# y/ o! [ - (progn5 F! f5 I+ P; R& x- N& K
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))) z7 n0 }2 Q4 M
- (if (= ecolor 256) (setq ecolor "BYLAYER"))% k0 M l9 F2 d+ C( I
- (command "_.chprop" ename ""$ Y/ R J0 F$ P% Z1 L* u
- "_la" elayer
) l. G) U2 z) T/ X - "_c" ecolor ""6 y% T" F+ O+ b5 o
- )' ?+ A6 a$ H+ g! W5 y9 l, w0 X, p
- )
! y$ A% H* f* K; K5 V5 K7 r' X - )! H) w5 i5 ^" f0 X z, K
- )
9 r- F# F4 m0 j' @, i - ;;( F$ N8 \7 [" ?8 f* J# d* m
- ;; Modify POLYLINE
! [# |3 F5 ]3 K/ u0 }, U0 {5 ] - ;;
) l8 I: t8 |8 [ - (defun modify_polyline ()
, V8 k. H8 c' h# \4 F6 q Z - (modify_properties)1 F& N/ c6 D. i( y' M3 m! Z
- (if (= ltgen "1")5 l* L+ C" I# v- H8 X0 N
- (if (/= (logand bit70 128) 128)
! B& L8 n: R: g, S - (setq bit70 (+ bit70 128))
* d+ q( }6 Z& r/ L. U9 ?: j; b - )
& T0 C( }4 C/ w' {$ l* D4 e - )
9 }4 `* ^ [9 V - (if (= ltgen "0")
7 H7 H6 w2 k' B4 p - (if (= (logand bit70 128) 128) d0 ]8 `2 V% s: \, o$ \4 G
- (setq bit70 (- bit70 128))2 G9 D8 u& M, X' f3 v, d
- )0 r* t4 @4 n8 g+ q
- )3 h. w% N! s# w' a- p
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
& u* t# P0 L6 A8 j5 t5 N# m% Z - (entmod elist)
E3 l% V1 d) r% Z9 G, d" a8 C' J - ;; Added to take care of updating Vertex information for color
9 V3 u5 j* Z l1 B5 J0 b' p) X. F/ T - ;; and linetype.
" b; m2 P+ d a( D2 p8 L - (setq save-ename ename save-elist elist)5 ?5 G4 A$ [2 v+ e0 {( ^% q3 ^
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
$ H( J$ M8 m6 u - (progn5 D0 g1 b; Q, i# [* r
- (emod ecolor 62)
% z l: Q9 V9 l, c0 z2 B - (emod eltype 6)
) t1 Z& B7 o% o) D3 ~( s5 |, x - (emod eltscale 48)
' l& l( L) E# N1 f( h0 ~* G- t - (entmod elist)
, A5 _! V5 c, J; L7 ?5 o7 i$ P% J - )
* f" N, I* q. I% v! f - (progn
* Q! [; f* r% v% t! ?4 S/ @ - (setq ename (entnext save-ename))
* q \5 ^) Y2 P& } - (setq elist (entget ename))0 j- {/ w6 j7 i/ z" H
4 _; ^3 }+ `8 D' G6 {% I- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
3 S5 ?2 s* H0 \ - (emod ecolor 62)' N& _0 K; y3 u! O+ @! P
- (emod eltype 6) y) C0 x1 \1 A6 g
- (emod eltscale 48)- ]( k% c3 |3 X$ Z
- (entmod elist)+ e; {' _1 d9 I4 p) Z
- (setq ename (entnext ename))
- f) }! X, |; M- t$ E4 i Q1 p - (setq elist (entget ename))$ H( K+ Z* w+ d9 y5 y
- )6 S3 m# }1 u0 A. \. b
- )
+ W* ^; E! r5 U) T# u" q - )1 h8 x8 F* Q" n/ D
- ;; Update the SEQEND, n# U$ u. z0 t9 D* K, B
- (if (= (cdr (assoc 0 elist)) "SEQEND")# i. U5 w; t8 C8 H J' l$ z9 B) W# D
- (progn! B% ]8 x7 O+ T! t% Q( C
- (emod ecolor 62)- f) ^5 N) U+ z! {, N1 j
- (emod eltype 6)
3 X# E$ c, U5 E3 {/ ^ - (emod eltscale 48)
( g1 Y% i* }0 g, I: Y - (entmod elist)
# @9 z! g; n3 l, |. W - )2 j' k) Y9 M F7 Y
- )! Y5 {: s1 ^: _ r% `- i: T
- ;; Go back to header./ u& j& A1 r# x) i7 Q- ^
- (setq ename save-ename elist save-elist)) N9 K7 V% u. g
' M$ l, F, i1 c2 q3 Q- (entupd ename)
, [; j8 ^1 w1 g4 ] - ); B, X; N2 g, P. l7 d* p
o7 |+ c. V i2 [- ;; Increment vertex. Set tile values to next vertex q7 Q y1 k) f, B1 |
- ;;. ?; a; c1 ]: ?, T& b
- (defun next_vertex ()
1 S$ w- r5 D4 N2 @ - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")8 e; |; \) X- t
- (progn
/ v9 q l# y3 T7 X2 w9 r& u$ w- V - ;; If the counter reaches the number of vertices,1 D# F8 T. t" p+ Q+ q6 C+ D: `
- ;; roll it over to zero again.
8 C w/ {0 k! g5 @* F( M - (if (= ctr (cdr (assoc 90 vlist)))( P1 l4 }6 B! ^5 o+ k
- (setq ctr 0)
6 ?3 _: L- w0 y+ v) {5 ] - )0 V* O6 q8 _" w N
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
6 b( p& f5 O- N! o0 B( l( B8 ~ - (set_tile_vpt pointype)' n# z2 a7 X! r3 Z% `$ Q" k8 w
- )
3 l' h! u% I' q1 v - (progn
! f7 u) O# b2 Z. Q& b8 u8 e. @ - (setq vname (entnext vname))
2 `# B n" C5 ]5 z- ` - (setq vlist (entget vname))
, p2 d" s/ u* f8 @- f - (if (= (cdr (assoc 0 vlist)) "VERTEX")
: ~2 W3 x& s d8 x9 ? - (progn
( W$ S* a. N6 l9 @- a* N( k - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))( l% ~6 `+ n& `$ i' U# q' E
- (set_tile_vpt pointype)- v; @8 b. D& r& |- B7 o2 T
- )
1 I) k* K/ M+ R) D" r3 s - (progn
) z& M* n& U1 D L8 G; _1 m - (setq vname (entnext ename))3 i, t+ |. J; @' y
- (setq vlist (entget vname))
9 z5 v+ Y# B$ t/ Z+ J - (set_tile_vpt pointype)
) F- |6 n5 k% Z6 D( Z+ I5 k - (set_tile "ctr" (itoa (setq ctr 1)))1 W# d( A5 Y) Z8 T
- ); q W, S( _3 j( S- B
- )
# z6 u( O# w3 w; |' }$ z1 ], Z - )3 w& \8 v4 H( O. @1 P3 U; c
- ) N2 J s: C# }4 x4 \3 a* t6 Y
- )
! B5 D2 d6 E! i# W3 T: i
; N1 y6 ^2 n/ y8 q5 Y6 a6 f- (defun ddpline (/ oldecho)
5 A8 B9 I9 [" P9 _2 X& \* C5 r - (if (not (new_dialog "ddpline" dcl_id)) (exit))3 `5 S) x# ^! `# n0 _
- (set_tile_props)8 |7 {- o. Y W# o7 s& l7 @" J @, f
- (set_tile_handle)
# ~ a: j6 h( o' E9 U2 ^ - (setq bit70 (cdr (assoc 70 elist)))
9 r# a) v" h% M& a$ R - (setq bit75 (cdr (assoc 75 elist)))" G" G i% V; k7 E1 Z
- (cond
+ b" l$ k& O. f' E - ((= (logand bit70 8) 8) ; 3DPOLY
, k; X" x/ m0 l - (set_tile "ptype" (setq pltype "3D polyline"))
/ o) ^1 S% ?" u - (setq pointype 0) ; WCS or ECS point values5 o/ H1 y. Y' Z
- (mode_tile "fit" 1)2 t8 }6 j6 P" E) ?6 e
- (mode_tile "mesh" 1)
$ T* }* g+ @3 x' t- Q - (mode_tile "bezier" 1)$ I' g5 R5 k! k/ p" F. |
- (mode_tile "ltgen" 1)
3 V2 \/ l/ x* U. t - (set_tile "none" "1")
/ W1 L1 X/ B" N' g& h( s6 [ - (set_tile_closed)3 |" B: }, `- d7 ~5 c" N' c
- (set_tile_fitsmooth)
( _* m; } c+ n$ v" Q/ b$ V - )
" Q9 v; @5 u5 X; z& J, ^ - ((= (logand bit70 16) 16) ; 3DMESH
- B. @; I* H1 O5 Z - (set_tile "ptype" (setq pltype "3D mesh"))
9 U8 }8 z) n' O; x - (setq pointype 0)
( @ g% A! n" f - (mode_tile "pline" 1)% B0 q3 c X, f. X! j! n$ r# T
- (mode_tile "fit" 1)4 W4 \! g5 u( c. |# i8 ^
- (mode_tile "ltgen" 1)
: k2 w! {8 N1 m - (setq m (1- (cdr (assoc 71 elist))))$ g) w1 R8 A' |% ?# N: C$ a- o6 q# e9 K
- (setq n (1-(cdr (assoc 72 elist))))5 i4 K2 l6 D% O% p
- (setq u (1- (cdr (assoc 73 elist))))
7 Q7 f3 y3 I: B% Y8 p" N - (if (< u 0) (setq u 0))
" g8 ~* ?/ l+ T* a5 Z - (setq v (1- (cdr (assoc 74 elist))))
7 Y8 H/ @2 N; }2 J3 e2 f' Q* P) U- B - (if (< v 0) (setq v 0))
8 s6 X$ e! V& \) i& V0 U - (set_tile "m" (itoa m))7 ~5 g t# ]/ e) C7 [+ k
- (set_tile "n" (itoa n)); F1 {* N3 T8 V; B8 |
- (set_tile "u" (itoa u))$ A) C: F: o/ u# y
- (set_tile "v" (itoa v))
4 e5 }) P* a8 M( \. b - (set_tile_closed)
6 l5 l8 x/ M& S( K& I s5 y - (set_tile_fitsmooth)
6 S5 M- J/ |! y) Y - )
9 L) K% D2 s: h - ((= (logand bit70 64) 64) ; POLYFACE MESH' Z4 a5 o% W* P. C
- (set_tile "ptype" (setq pltype "Polyface mesh"))5 s! Z( G( a/ W
- (setq pointype 0)
; O3 m6 u( F/ C7 ^; p - (mode_tile "f-s" 1)7 O( V8 r/ Y% W$ ]5 g$ n
- (mode_tile "mesh" 1)& W8 p( t6 C' H0 P* B; \
- (mode_tile "pline" 1)
* t. G. z2 @( x; z q; p) ^2 L - ): I4 ]% N" {, v& ^5 T
- (T ; 2D POLYLINE
7 n: k) i( x- m& A9 S! t" a - (set_tile "ptype" (setq pltype "2D polyline"))
1 c2 u7 ?; t& P3 b: i# Y - (setq pointype 1)
. y8 a- }/ H, b& B3 V - (mode_tile "bezier" 1)
# P0 x. ~ u$ |& c/ I - (mode_tile "mesh" 1)! ]: L- \* J$ F# f/ i# p
- (if (= (logand bit70 128) 128)
* l2 ]% P% S Q% _2 L9 G - (set_tile "ltgen" (setq ltgen "1"))
' D, L# ^: N: a o& y9 c9 ]) X - )
; U) ~7 |, `' D* O+ a$ h - (set_tile_closed)
9 G' S* ^! ~5 G$ w# H! b# L( ] - (set_tile_fitsmooth)! U) d' h" V9 o; ~( P- K0 K
- )
. U# x8 _; R& M- B r2 f - )
% j K! l1 {' F$ u- e% X - ; k8 Z0 o4 k8 X: z% f
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
; R/ ~% k" \6 _& L - (progn) J/ l% X% Q& \' a% x
- (if (not next) (setq vname ename))
- @( w. P% J. g: Q9 ~ - (setq next T)
+ P7 X0 s. Q6 H ?8 o D - (set_tile "ctr" (itoa (setq ctr 1)))
; z2 e+ C7 k3 u1 e" s, {0 `: p - (setq vlist (entget ename))2 }# j/ O2 n7 I! }4 c) I, K# p
- )
* [! Q8 k1 P% X - (progn
$ C1 [; M2 R# ]7 m* X# G( Z - (if (not next) (setq vname (entnext ename)))4 e% ]4 e. o* [
- (setq next T)
) e6 ~! p4 \; T. u0 s" j9 ] - (set_tile "ctr" (itoa (setq ctr 1)))
7 ]0 g2 Y$ g) }& n: L$ |6 ? - (setq vlist (entget vname))/ G9 L: O0 J" {5 f1 z
- )! h) G0 r) d# z: P' R( A
- )
9 P7 Q5 x* C. i3 ~ - (set_tile_vpt pointype)/ T& Y) }/ s: p% Q& ]3 ]
- ;; Define action for tiles
) W: Z( D: R7 f6 A) A8 s - (set_action_tiles)
6 k/ p' U" g% Q3 D" N - (setq dialog-state (start_dialog))
5 t* J6 a# s. D( X1 Z1 d
* r3 S" f; x& B, |+ T- (if (= dialog-state 0); j+ n2 Q# l9 A* a, U9 \
- (reset)' L; S. x" i9 D& n
- )
' _$ Z1 ~. S+ U* D. k: J/ A' a - (if (= dialog-state 1)8 R! j/ _4 q4 s- }, B9 M/ e
- (progn& M7 d* l. {- e7 u. _
- (modify_polyline)/ B4 x# a& S( y; U" x4 a
- (if (or (= pltype "2D polyline")
0 u) Y9 d" ]% y% [+ `, v( Z2 |/ Y* H a - (= pltype "3D polyline")
( S- p% g4 O0 O( @# | - )1 F) v% q0 [! e1 ?( l+ R
- (progn
1 y i5 `7 H% H8 P7 ~, g0 c# n - (command "_.pedit" ename)) Y# o( S) l6 ~6 w# K0 ~- E
- (if (= spltype 0) (command "_d"))
% Y4 d: @1 J3 h6 r% z/ _5 o - (if (= spltype 1) (command "_f"))
( H# n2 I$ f" ^ - (if (or (= spltype 5)
% \1 L& {% @, N6 F* o - (= spltype 6)
/ O- x2 `7 @) @4 u; R9 D- s7 [ - )
( a8 |5 F! ?+ b1 A. C" q/ Z% n; a - (progn
, {! {. k7 C$ { p2 w0 M - (setvar "splinetype" spltype)# A6 _+ V: W% v, j4 [& Q
- (command "_s")
: ]2 |* s+ V% ^3 p - ), I7 d. F$ A6 D6 k( B% O9 J/ I
- )) k9 y, K7 d+ b7 m+ q; {3 h
- (if (= closed "0")$ {- r ]5 [3 ~' M1 L/ [: W
- (command "_o")
! C+ B3 `' t- j2 \: F' s2 U# n" U) _; N - (command "_c")8 L* q4 f+ a0 G4 l
- )( s* y: x; `& D) t( t8 |$ R0 [$ r
- (command "")( `% t# T/ B$ d0 c# C! ]
- ! L& ~% Y. A l2 P. }
- (if (= spltype 0)1 l) ~2 e3 m& q9 t; A
- (progn
8 A3 A$ n) j9 a3 s+ j; W - (setq oldecho (getvar "cmdecho"))
^7 m3 H' r5 _1 x4 W - (command "_cmdecho" 0)
& g. F+ m, C( E - (command "_convertpoly" "_light" ename "")
. U$ J o4 }9 B& m4 U0 R( n: n! B - (command "_cmdecho" oldecho)9 B n$ D; E; q. M+ M" p
- )4 \8 B2 Q' G0 z/ @# z; t, g& t
- )( b+ V K: F6 x0 s1 m
- )4 L! Q3 Y# R; Y7 e s
- )8 G% [4 \& X- l& u# d
- (if (= pltype "3D mesh")
0 q( s* C0 M9 M% n - (progn
' w, o4 U0 ^9 |( ~& b# j - (command "_.pedit" ename)
) { V. \; Q; [2 O& p+ u - (if (= spltype 0) (command "_d"))8 F0 m( ^* s4 x+ z; w: K
- (if (or (= spltype 5)2 S# h& p; E; y: M+ H
- (= spltype 6)% |2 H8 t0 H. l o& o
- (= spltype 8)
) L O& n a+ K" G; @% Q - )* }( G! k( l6 A% ~
- (progn
. D7 `- y% N# A - (setvar "surftype" spltype)
5 Z% K. b+ ]6 }# n2 J/ j+ M - (setvar "surfu" u)
, D6 Z8 R% w6 U( E: Z% e - (setvar "surfv" v)1 z2 \. G5 u) C0 Y
- (command "_s")$ O9 {$ t6 D0 [. y. t, ]
- )
2 k5 H9 s" H5 o/ ^9 H, R4 k - )9 E% }9 j/ l+ E9 Z
- (if (/= closedm old-closedm)
# z' i$ G! A6 v& q8 G' p% L7 t - (command "_m")' x; d! @+ q: E V+ ?
- )
5 V+ d4 G& d$ m6 Z* ] - (if (/= closedn old-closedn)$ {/ |" Q' [; o2 @
- (command "_n")+ }6 d4 a, ^2 r9 Y1 D2 e
- )
0 y& c4 @0 g; ?. J( J, j - (command "")
% S1 }0 C) q, ~- ?+ U$ s# `: B - )- |: H5 j7 A& F8 @. q8 X% e
- )
4 q7 j, R$ T& b - )* B8 ?; K5 U3 @# H7 M* r
- )
2 g1 e( L$ Q9 y5 S' I; r - )
4 k; C0 ]! v3 T2 i0 D' n8 j - ;;+ |( R4 f x- B" Z _( M
- ;; All the spline data is contained in a single elist. We must do some
+ \% B# _4 c/ X, j5 i3 D' |* j - ;; tricky list processing to loop through the elist in order to display
n! D6 v, n& W* f) u0 i2 X6 n1 `. G - ;; all of the control points.
, Y# z, z8 w* p0 J - ;;
2 K2 Z6 G7 P& U5 Y7 G - ;; The structure of the elist is different for rational and non-rational% l% I; N i0 `0 d2 C5 v; @% Q
- ;; splines. Therefore, we check the rational spline flag.
# I& I/ {+ B; w- ]- B5 u - ;;9 O1 Q. H* s2 M
- (defun next_cntl_pt ()
$ g3 N. a& H/ A - (setq elem-no 0) ;; elem-no = element counter3 U/ c* v$ [* b. w& V+ S" L, S! u9 x
- (if (= first-10-time 1) ;; If first time, find location of first1 \2 K$ n5 Q- v
- (foreach list_item elist ;; cntl point element in elist& u$ v2 m( H/ G3 x. R( O) f
- (progn8 @7 x k0 r4 n0 {4 U6 T
- (setq elem-no (+ 1 elem-no))" }3 G+ d4 Y3 u7 a
- (if (= (car list_item) 10)8 d+ f7 l! e' T4 X9 n" r, s
- (progn
$ Q+ } P- N$ P. ` - (if (= first-10-time 1)% H) Q- P% E; t
- (progn" n) D. z- G8 M3 R# W* Z
- (setq first-10-rec (- elem-no 1))
6 q. g8 |* b) u) V1 m - (setq first-10-time 0)
6 d/ [& G( Z9 x x4 _1 ` - (if (= rational_spl_flag 1) ;; if rational
) T; m9 ^( W( T5 ]. E% S% }9 {3 G - (setq cur-10-rec (+ elem-no 1))# n- [0 U) Y q) V' C& O+ P
- (setq cur-10-rec elem-no)
) j( |( k: O0 V0 k" J& o - )
# P, y6 O! G f) w - )' D, m* X4 `) g7 Y, d
- )
# J2 `0 u0 t- z: |$ T g; Z3 g - )
0 g4 K; [& O7 j8 S6 H; A& D* U - )
0 u1 M; e7 E; O% W$ y - )9 I$ q7 F& p8 S/ h- h( \
- )* k) F' U' r$ ~& @9 _! s
- )
5 B" \. d0 n( r, x - ;; Now we know the location of the first "10" record; it's stored7 H d% }; G: O
- ;; in first-10-rec. The first 10 record was already displayed when
( y& Q' q2 P- n+ v - ;; the dialog first came up so let's display the second one when
! l7 T! A; E" ] - ;; the user presses the "next" button (the first time through).$ p3 Z" j5 b: G0 ]0 M$ r+ K( k: }
- ;;
+ Y3 \/ g6 T; T6 N/ ?% `" V - (setq temprec (nth cur-10-rec elist))
' e' Z7 Q! r6 m0 y5 U - ;;
- g! N4 l# n+ L6 q% D: C* j! ] - (if (= (car temprec) 10) ;; if 10 record
# `2 ` `! r/ t) X' I4 n - (progn/ W5 A) p9 _; L0 I4 E/ y/ _1 { m
- (if (= rational_spl_flag 1) ;; if rational spline1 b v6 I/ u4 Q2 V: g* P5 |
- (progn
! f0 |3 B0 r) h* Q6 J - (setq tempweight (nth (+ cur-10-rec 1) elist))! Q1 x- G! O& q3 C# q6 c9 _
- (setq cur-10-rec (+ 2 cur-10-rec))
/ k1 A! s' ~3 H: x- Y7 C - )* Y8 O4 y s" S
- (progn ;; else
" g D# `4 v: ^! r - (setq cur-10-rec (+ 1 cur-10-rec))& _4 N0 G: P* f/ z7 v8 S
- )" O4 R! m+ M$ o+ n, z
- ): l. j8 ?4 p6 F/ [' v
- ) ;; end if rational spline4 [3 F: H9 l2 \0 K
- (progn ;; else reset counters
' Z* e7 X2 D5 X# E% X$ J# e - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec- D* ]% x4 ^) K- ~2 u- n
- (setq tempweight (nth (+ first-10-rec 1) elist))4 S2 v0 q2 j6 |
- (setq cntl-pt-indicator 0)0 v4 [3 T3 U& f0 ] [% u
- (if (= rational_spl_flag 1) ;; if rational2 ]* {( Y3 C: Y' j- x$ n+ ~
- (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec4 n& O" U+ W" R+ l1 y0 a. V
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
4 u0 X: P) I7 g$ q - )7 ?+ |0 y% l8 { I6 _5 w& X
- )& ~* S" P- R$ E
- ) ;; end if 10 record, b5 B/ s+ I+ x6 W+ A$ h
- 7 { Y: x+ o- i) g5 \
- ;; Display cntl point, weight and ctr. Increment ctr.1 X+ Y) f. E- x3 ]; V2 K% h
- (setq cntl-pt (cdr temprec))( X2 N5 N$ k3 E% d% f
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt)))): W2 D; q1 s' H/ F
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
; f2 D6 g; _4 a Z1 n/ b4 ? - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))* L6 }6 S$ X$ r: z9 N$ V* M; e
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
5 m: e* J4 N# C9 { - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))5 x. F, g% Y1 v" |. c
- (if (= rational_spl_flag 1) ;; if rational4 A/ M1 ?! g( x6 H; X$ v7 x
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
0 ~1 N: b% G& h* `1 ?8 |9 ^$ p& x - (mode_tile "weight_text" 1) ;; disable wght& w! I# c6 e* ?! m7 s% _7 |4 A
- )' {( L( j7 |- e* ~7 [. E% J
- )1 c) H: m5 l" {
- ;;, E4 T9 c* S( C t7 s5 u) _
- ;; All the spline info is contained in a single elist. We must do some
" A; G, U) O2 r4 r - ;; tricky list processing to loop through the elist in order to display
. A" v* i% y% G - ;; all of the user data points.$ q- H u' u' {' i; M
- ;;% j0 b6 O7 ^0 b! S! h8 q `8 u
- (defun next_data_pt ()
4 @. @% [0 ?4 \3 S - (setq elem-no 0) ;; elem-no = element counter' @4 t4 B: y. F5 G
- (if (= first-11-time 1) ;; If first time, find location of first+ c; @) Q+ v3 G6 x1 m! A. |5 [
- (foreach list_item elist ;; data point element in elist
9 p; o" G9 I3 f" ^+ A T - (progn2 L$ }. z8 g, T& ?
- (setq elem-no (+ 1 elem-no))
' \. p5 C' j5 o* K - (if (= (car list_item) 11)* @! r! X2 e; c3 F, P" q
- (progn$ K8 K& z) S- [( ^7 M+ N! K& `& J
- (if (= first-11-time 1)
8 L3 _$ ^4 N3 v# C8 | - (progn
2 l: c+ f! E; G - (setq first-11-rec (- elem-no 1))
, v2 V$ b! G4 F0 D1 c: }# H - (setq cur-11-rec elem-no)
9 o: f6 Y0 T1 [& z# A' a - (setq first-11-time 0)
& f3 Z- E- G4 [. A# a# S- C - )9 Y. S: E7 \) ]# K: v/ [/ [9 A
- )
6 ]4 J) o& s$ C! m/ h: x - ), {, t: s/ Y+ V
- )
$ y& l! w( G2 A- Z0 n - )- u+ y( e/ P9 Y- T
- )
0 N. I4 W" l: `. S# w. T - )
( \ m' W; N, a/ q* [) x: M+ T - (setq temprec (nth cur-11-rec elist)). a7 k2 ~% d( r0 T# K. x
- ;; If it's not a DXF "11" element then we've gone past the last# { m9 d. ?" `/ K+ A
- ;; "11" element. Go back to first "11" element. Reset counters.
! l# s: B ? f) u - (if (= (car temprec) 11)
# k6 S0 o# u, R& P, L, h - (setq data-pt (cdr temprec))
; L. Y, {0 {7 o1 Q" ]; U - (progn ;; else8 [6 x# j V; |0 Y x2 R
- (setq data-pt (cdr (nth first-11-rec elist)))
$ ^; I# P' `2 c) h, E9 e4 M( q - (setq cur-11-rec first-11-rec)" b6 ^! a& b4 O1 W3 O* J( g
- (setq data-pt-indicator 0)
+ H, B. J# ]4 c0 m - )9 K. `0 R" Z/ c) b7 F) p
- )
! _: g2 h* ?2 b V+ K b d! U" o - ;; Display data point and ctr. Increment counters.
' r" O2 i4 A' g$ y- K- H - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))6 M- G3 _+ M2 @
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
, _8 ~9 t' j; g3 `7 l8 b" V3 m - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))5 ?# u6 P4 s- x0 Y, o, |
- (setq data-pt-indicator (+ 1 data-pt-indicator))
' @9 c5 W, i3 N1 u - (set_tile "data_ctr" (itoa data-pt-indicator))5 p! |0 Q% ~, t' X4 d2 Q, R
- (setq cur-11-rec (+ 1 cur-11-rec))
9 ^) U) O- Z' E5 N5 W - )/ L4 T+ D0 L- |% G; ]1 N8 d
- ;;4 b) P! f v! f$ m
- ;; Modify SPLINE o& x" O; `, h. ^7 t% P* V- e" d
- ;;
, l" F; N5 t& M9 x$ j- Y6 l - (defun modify_spline ()- E6 r, g. `+ A
- (modify_prop_geom)+ [3 w: A H+ t6 J
- (entmod elist)
# l9 |7 o# o1 h - )+ K0 v* n( `4 T" v6 q" q! I
$ ~) @# U1 \7 t/ R3 }# R$ M- (defun ddspline ()
1 a9 z9 L& G5 w2 K4 f0 o, { - (if (not (new_dialog "ddspline" dcl_id)) (exit))! a0 M4 @8 m2 X& Q" r4 ~7 o. x$ ^+ a( D/ V
- (set_tile_props): Q' d# j- n6 |. ^/ O
- (set_tile_handle), U9 ^/ {2 x+ v$ ]
- (set_tile_spline_props)
5 C' N1 J) D, Q* v* C6 b' G( _ - ;; Display first control point
+ t+ G$ b# h8 ^- d% l) o4 ~7 M# a! F - (set_tile_cntl_pt)( _( W3 f+ `: G
- ;; Display first data point
m; `% z" k' n! T5 G: Z0 m - (set_tile_data_pt)
4 ^4 L9 H& T, i
) K5 ^% f6 h, `, m$ w- ;; Initialize flags to indicate first time through the dialog.
$ a& E4 H" o9 l% p* j - ;; For control points and user data points the "next" buttons
8 N1 J' H& L% z$ M3 D" E+ E% A! J - ;; in the dialog call the appropriate functions.
* A( u) u0 ^7 ?1 \/ t5 [ - (setq first-10-time 1)! D8 d; ]2 L' E, A* s& [
- (setq first-11-time 1), c% Z! }; p9 r" h. K9 L
- ;; initialize control point number counter
% d' |) M: F" }# ]6 ~ C - (setq cntl-pt-indicator 1)- ?; n \" N5 c' F3 C- @
- (setq data-pt-indicator 1)
* Q. \" m8 ]' r! x! T - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))4 z3 o$ \5 F! s: t
- (set_tile "data_ctr" (itoa data-pt-indicator))
6 D2 M( V4 S+ r5 H6 p6 ] - (set_action_tiles)% F+ p5 O+ ^- H( D. V- j/ T
- (setq dialog-state (start_dialog))
: _2 V. b% E$ T7 R- |5 Q - " S( E* o3 o* G* Y) A1 a
- (if (= dialog-state 0)
3 L0 F: {" I$ m7 A! ` - (reset)3 \2 v' e. X( k; v8 ^+ w; v, p3 W
- )
0 M5 z% \7 k6 h; Q6 U( p - (if (= dialog-state 1)
4 f# Z( ~: ^( p - (modify_spline)4 |; z/ ^8 R5 J! K" [+ ~
- )
v- A2 Y3 _, A - )
( A7 W8 r5 ^4 @ - . H/ f+ u, J& C* ]+ O
- ;;
$ Y \! P. o+ Z+ @, L( q4 e/ W, N- u - ;; Modify DIMENSION8 q+ i* ~; P1 F0 \
- ;;# h8 h1 M: g* P" i( [# O
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl8 d- i* U, @! J
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
) k) I# P+ v% F) { y# `) a - dimtype dimsvcurset)
0 w3 u) G. W, v - (setq dimtype "DDIMEN"+ ~/ N4 \4 { G/ z6 p f
- dimsvcurset (ddimen_dimsty_restore)
3 g$ p! r3 [6 Q8 b0 U, i - )( e6 f% U+ O4 M( V6 x
- (if (not (new_dialog "ddimen" dcl_id)) (exit))& C w ~# s6 v' d9 J3 {
- (set_tile_props)
" ^9 }+ `5 j* j* F6 I8 g3 L - (set_dimen_props)( x: F+ f: s: l4 x( j3 v* @
- (setq dimtext (cdr (assoc 1 elist)))
( n4 p# U' @' F8 }4 S& E# k) H9 J - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))+ F; z5 C/ B; C3 ~4 s
- (set_tile_handle)2 Z$ t2 s- P& G2 {* L6 p1 q8 G' i( T* |
- ;; Define action for tiles4 ]! M' Z* y2 o
- (set_action_tiles)$ b! z9 G5 [9 q8 @1 [( _- a/ T
- , z3 p5 i) p/ ]% `( P- R9 n7 e! r
- ;; Set initial focus to text edit box.& X! \" _. I- ~; h; F
- (mode_tile "t_string" 2)5 I/ Q- R2 k/ N7 c
- , x4 y6 {. y3 N2 U. H4 \4 ?/ r
- (setq dialog-state (start_dialog)) h# i2 t0 G4 l
- (if (= dialog-state 0)
: T, u6 w' P. C2 e4 u/ J - (if (= ddimmt 1)
" V6 P% b2 m8 ~" q) Z7 b - (reset)1 ? W/ {' ? r T! w# ], n3 C2 m
- )
5 C4 q& Q1 t) O# V0 U/ b3 g1 ~ - )9 d: E5 c( {8 _1 f( h
- (if (= dialog-state 1)
4 i. e, E' M9 }+ q1 t0 b - (progn# M" [& @! ^- Q+ }9 G1 C' G7 `5 i* M
- (if (/= dimsty stname)
4 S/ c2 Y1 X/ V7 c/ j) V, I - (progn
6 j4 y; p0 m* A2 G3 \. V9 L - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case; j8 l6 ^0 B7 @, c" y( o c
- ; doesn't have it." i6 c( R* _6 Y% r( q) H
- (if (null (assoc 3 elist))
4 w* g# [8 H, b+ N - (setq elist (append elist (list (cons 3 dimsty))))
2 y6 t+ }) c1 l" y' W7 c$ _7 p0 | - ; else just replace it.0 C D& R% k1 W$ N6 T/ X! p1 q
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
. {- r( G0 s0 S: a/ ] - )
( O1 q% {8 I7 k0 _9 H - ; refresh sv_dvlist with new dimstyle.) l6 B% b% y( {* n
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
. {7 u* c% r. X. _* b, _8 A - )* T( f: i) H) |0 {. k& E. B
- ) b# p; s" g( N5 g& c
- (if (not (null dimlist)) ; attempted to change dimvars
3 |/ M; P6 I0 ?% Y& l - (ddimen_complist sv_dvlist dimlist dimtbl)& d9 {/ n) C5 X$ N8 Y5 [
- )
0 U1 p7 Q% n! X" A! H0 E2 J: _ - ; Modify dimension text# L0 r1 T( W* W
- (if (/= dimtext text)
9 I, F( @% [3 q- c o - (progn% B" q+ ]% u7 n5 ]) y
- (setq dimtext (if (= text "<>") "" text))- R3 L) L/ x2 b# _- ?+ r8 l
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
5 C" E. c6 _, z/ g$ h8 f - )1 X+ C# m1 v2 I3 D* D+ S" n8 Y
- )
! l& \ R( d( Q2 y/ |. S - (modify_properties): k: R' ~( F; T! g9 X
- (entmod elist)2 A3 T. K5 P% n* B
- )
8 G, W, k8 K) n4 z( r' Y - )
% A3 {" P8 I* k3 T, \7 g - (if (= dialog-state 4)' O/ x% W7 @ R$ d u* F( r/ j
- (progn
' [: H4 q" D! Z# x9 l* T - (setq ddimmt 1)
+ d7 S0 j% W; X- u; q - (if (/= dimsty stname)
% G9 {6 G }* Z h - (progn1 D ]2 @3 W1 u* y; `8 ~4 B. y
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
$ z7 l [( [: v$ d( M - ; doesn't have it.8 l) s. L" _" m" M4 v1 @
- (if (null (assoc 3 elist)): I& [+ [, g$ c; i+ F+ @
- (setq elist (append elist (list (cons 3 dimsty))))
! n: n" M2 A; P# r - ; else just replace it.
5 M x3 y9 ^3 ^, p/ L, Q - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
# L$ @9 F# X+ j0 _5 D - )
4 a8 C! `7 ?2 v6 \) @) ~7 m - ; refresh sv_dvlist with new dimstyle.
& z' a; v$ ?3 R9 E7 z2 {1 { - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
( e! F, n: ]; R3 } - )
' D8 P" Q- r/ |$ v2 R5 y - )% J4 w3 y* W/ |3 ?% t
- (if (not (null dimlist)) ; attempted to change dimvars1 t8 k; d# s# s
- (ddimen_complist sv_dvlist dimlist dimtbl)0 I. L5 A* @5 \2 U3 B2 \4 H+ d
- )
; C, l: I+ F9 B" E - ; Modify dimension text
4 N% c' o8 ~4 E5 k I& ` - (if (/= dimtext text)0 z/ X4 B5 Z: Z' x2 w
- (progn! p& Z. X. X" Z( v( v
- (setq dimtext (if (= text "<>") "" text)) w8 c$ X; D' a- P- m& \+ s
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
. b9 f6 W# t3 |/ A: X5 N - )
, ]# S5 r' w+ Z3 L7 d - )
8 t3 ]. `9 u- z3 _9 O; S+ c - (modify_properties)6 T8 Z9 w: b( e6 @* N
- (entmod elist)7 U) ~ ]7 E ^1 l/ ^
- (safe_ddedit ename)
2 l6 [; D* |" C) I' o; Z) e2 M - (setq elist (entget ename))
! ]4 m9 ^" q" [ - (ddimen)
) {' z0 n7 T9 s. {+ H7 W$ D - )
" J. ?+ ?* v' }6 c - )+ d8 c. A' k7 D
- (ddimen_setvars dimsvcurset) ; Prepare to exit
0 i, r1 p! J( h) d5 D5 o0 y' g - )
) v' h% D! G3 B$ n) Z - 3 p; P/ \$ ?7 s, C, Y
- ;; x) L6 c) C* ?* R o7 Z
- ;; Modify TOLERANCE3 {7 P. m4 @" p
- ;;
8 D. |4 N2 ]" u) {( H - (defun ddtolerance (/ a stname n dimtbl
" P* f- o6 f3 U' b - dimsty dimlist dimovr sv_dvlist stlist dimtype
+ o, [1 J! A: h! @$ q - dimsvcurset)5 Y- z5 j3 X O* _: g8 M
- (setq dimtype "DDTOLERANCE"- `! J) ^7 {8 I7 h! P9 E
- dimsvcurset (ddimen_dimsty_restore)
" j+ L( A" z i. s c/ D - ) V S5 q, K0 e( |! L6 ?8 a
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))* {9 M1 A$ [( @- o
- (set_tile_props)" l9 H% q4 W8 O* }: k
- (set_dimen_props). ^3 Z+ Z% E3 o9 A' B
- (set_tile_handle)' U' w. Q7 c# y. I
- (set_action_tiles). d i0 q" ^/ h0 m5 d% L' K& z2 i3 j- {
- (setq dialog-state (start_dialog))
' ?) m0 g9 G ?( }7 C5 W - (if (= dialog-state 0) U! j V7 s) B; H
- (if (= ddimmt 1) ]8 g& v" m! t
- (reset)
0 m5 \0 r( \) @1 \3 I! _/ i - )
( I! f% B* u0 `6 _ G) l, Y - )
- h ~% i" G8 t; P/ I - (if (= dialog-state 1)& Z, S+ B; i- N: f* L- N* |- \' C4 o5 N
- (progn
, o* A4 i4 Q: P' t - (if (/= dimsty stname)
6 {& \% _9 W, N, J* e8 G - (progn
4 E, X" I* _: A9 ?% X- {" O$ W+ ` - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
- S* [% i* X2 }4 x3 e8 ~5 o- r - ; doesn't have it.
* e! q. ~; c3 ? - (if (null (assoc 3 elist))9 i5 _- [% r3 t0 m, k3 X
- (setq elist (append elist (list (cons 3 dimsty)))), w0 Q7 Z1 ~5 v+ q: J& @
- ; else just replace it.
! C0 e$ b ?* q7 h& X - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))6 E& n, F- u# Z$ F' w3 T7 i
- )
, q. s( g2 g, ] m - ; refresh sv_dvlist with new dimstyle.
# D6 P$ Q: T+ E& A - (setq sv_dvlist (tblsearch "dimstyle" dimsty))) X& c9 g; s! Z: I: \% l/ U6 y9 T
- )4 p R9 l& |/ w @+ a5 U
- )
! e; D4 [ Q- z - (if (not (null dimlist)) ; attempted to change dimvars2 c2 |4 |7 v0 E8 H
- (ddimen_complist sv_dvlist dimlist dimtbl)
; A; [! G" Z% ]8 f7 r - )
C+ H* E8 v% }: C5 v/ T& F - (modify_prop_geom)
5 a9 T6 ^/ ?+ _ - (entmod elist)
# L) q4 o. j4 q) b" f/ l - )! {5 N! i4 T$ f0 y% I' O
- )
; w7 c8 O5 A0 c( A+ m9 D" p - (if (= dialog-state 4)
9 F1 n- k' B3 p1 d+ I5 @9 T - (progn
- p- x/ F! E; j7 C% l8 B. x; ` - (setq ddimmt 1)$ L. u6 a5 k0 q m
- (if (/= dimsty stname)) Z4 `" X$ }9 [( V' s
- (progn# Y8 F) v0 z2 m. Z2 z) @, r
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
0 E- {! y- R! x! j" ] - ; doesn't have it.
8 b7 l9 Q& d& g& \- ~: u - (if (null (assoc 3 elist))
; L O) W) H, H1 o: s" ]& T - (setq elist (append elist (list (cons 3 dimsty))))/ I9 V' z- R, K8 K: i+ ~8 T- v3 K
- ; else just replace it.5 {# @! b/ B& J5 G1 G$ A; o6 H
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))0 J5 g3 t- [+ }6 c
- )$ \7 B2 Y% `3 k3 k$ i
- ; refresh sv_dvlist with new dimstyle.
3 B7 C; X/ o- h4 W9 @ - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
; s% @ R H$ S* ~% H# N% Q - )
1 v. U J$ A' x4 e - ) z4 T7 O- c7 `8 E! N
- (if (not (null dimlist)) ; attempted to change dimvars
' I, @4 A" p; W8 B3 S - (ddimen_complist sv_dvlist dimlist dimtbl)
) X# b' G$ v2 U$ @9 G8 D& \ - )
' U7 w, I1 D% {) v t5 ] - (modify_properties): \! J* T& w6 B! S
- (entmod elist)' j( E2 H2 l8 ^. d7 U$ E3 `
- (safe_ddedit ename)
& f9 j% _" n: h* @ - (setq elist (entget ename))) Y( J6 q% p: O( y
- (ddtolerance)
5 ?' J' D8 [3 M* w1 J$ S - )5 [+ J! V7 E: b* e: ^; L' s- G
- )
! ]/ O* n* o. U# P. J% E# G - (ddimen_setvars dimsvcurset) ; Prepare to exit
+ ~0 w2 r2 D8 b4 `$ [( X$ X - )
9 Z1 x* a3 B; L# `1 n# w( f6 I
% G5 }% K/ u2 J( }" C5 s# T- ;;
% b. t( w! `9 D5 L2 w2 q ] A - ;; ddimen_dlg - jump to ADS ddim module
7 X; H$ v4 |' e - ;;
/ L5 x3 @0 w5 `0 f& }
# P2 ~4 h) M! n2 e. N# Q6 c- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)# i3 x6 Z2 U- b% X! v H& l9 S
- 5 ]2 v) M& R' Z* z& K' R
- ; Jump to DDIM with overrides if any.- ?5 E# g9 `1 a; X+ t; o
- (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry& n- U5 j8 _% B+ S) k9 u
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
% L2 X+ g5 B' ` - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
) m4 K& W$ x+ h/ u' \/ g0 [* \ - )
& k% E4 c2 j$ p) [( _- X) G. M: o - )
b( W8 L" y. d, F8 n - , Z: k& X! p% n: [3 I* U
- ;;
T# u3 a8 y( ]( I; b i - ;; Dimension variables updated are stored as overrides.' n4 b2 t, @/ L2 }- d3 C
- ;;+ T. N( r0 h3 N, x
5 ^! C; z0 a h0 J- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
. L/ T; `9 [; h- k0 { - dv dime commandIssued)
. N- a7 G6 B- s; e1 C. R
: k8 _6 ~. l+ e; U, H- ; Here we skip the following first three items:
. q+ x; l2 b0 x% I - ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
0 q5 Q0 a) a/ y' c( ] - ;
. w6 n' z2 F8 E" J - ; The list comparison immediately begins with dimvar.& @9 m% ?7 d% M6 L
- ;
/ R5 H: `( F) ^; M7 d - ; dimolist - original states of dimvars
7 R, W9 p- |4 p& V5 x# ^ B, A5 l - ; dimnlist - new dimvar list which is of the resbuf's6 ]: ^; N" Y& x' G1 a8 C0 \
- ; dime - entity name for the dimension) B+ f# y, x/ O" [3 x
- ; odvar - value of dimvar for the dimolist
j( u y s- f4 U* Z1 _4 C" V - ; ndvar - value of dimvar for the dimnlist
" E/ ?* j+ ] Z. | - $ i$ c7 L: F4 C1 Q) A- a6 ?7 Y
- (setq i 3
" Z( z$ N) y4 j3 T - dime (cdr (assoc -1 elist))
! L* w. f& R l- k, |+ R - )
: H6 s' r' F& x6 Z6 n2 U5 [$ c8 W - (while (setq odvar (cdr (nth i dimolist)))' r$ H- F+ `2 k- |6 b# _
- (progn
6 E7 }. a, [ o: ^ - (setq ndvar (cdr (nth i dimnlist)))3 ]* {) k: c8 C
- (setq dv (nth i dimtbl))
$ r5 l1 y Y# e- ?5 _ - (if (eq dv "dimtxsty")
% o; c8 G1 \0 o0 Y - (setq odvar (cdr (assoc 2 (entget odvar)))) t0 [: Z' r- ~( A1 f
- ndvar (cdr (assoc 2 (entget ndvar)))
; U3 V! K$ { x; Y( U8 G$ S+ R - )( e0 ^' M* @* P# `; @
- )* p- C) n, R, S% k6 D1 `
# k( x5 ~& ^6 c/ N$ l) y$ R- |- ;# ?8 D- [. w8 W' }7 `5 P
- ; In order for DIMOVERRRIDE to operate correctly with string
, d* p2 d7 e- U' f3 a3 H - ; based dimvars, we must pass "." versus NULL strings.3 J W' K) Q) D& g* V# V; ?
- ; In this case ndvar is the new dimvar value the user wishes, V: f) I5 C% G" F# `- z
- ; to update on selected dimensions.
; }/ S8 U n- r8 |7 [7 H - ;
/ r& a, h: g5 W& f# s - (if (/= ndvar odvar)- x) X' y- x' w/ l
- (if (= 'STR (type ndvar)). i7 H7 u3 b& f0 f6 J1 P1 N) u
- (if (= ndvar "")
8 [& d& r( {0 }- W D4 I2 q - (setq ndvar "."))))7 @7 a! C8 E" H: {4 `
- U5 Q5 r2 b' z) P1 g
- (if (/= ndvar odvar)/ Y/ u2 K% Q. u! G
- (progn
* p3 |( l# V! a2 h6 T* }7 F - (setq dv (strcat "_" dv))
% | I" ?- E. {3 a$ E( |- L8 ^- w - ;+ ?+ |& W6 [! l0 H6 Y
- ; Start the dimoverride command. n3 i) S9 V, P5 s6 q4 F2 E3 x s6 z2 K% N
- ;5 X/ D2 W0 I) \# H
- (if (not commandIssued)+ T/ \- k; b1 B. {3 U$ m6 v
- (progn
$ }$ s# c3 P! F2 c1 q/ M7 d! t - (command "_.dimoverride")7 A3 `' L E7 b
- (setq commandIssued "T")
! P4 C( n+ X$ F; i) c9 k4 {6 n - )
1 A5 }$ d) O2 R3 _6 z. I - )
0 a% ]( i8 C+ |) y0 q# a - ;
4 @. R; X7 K, B" s$ U - ; Issue dim overrides
! f: ]2 }' A# { - ;5 C/ j% O# @/ f' Y7 B
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))& N; U0 y" l8 I" C
- (or (= ndvar 0) (= ndvar 256))2 I7 G5 b$ ^* f6 V
- )
m& n, v4 S+ I( R* v) M - (progn7 O# I2 S$ Q7 Z$ X
- (if (= 0 ndvar) (command dv "BYBLOCK"))5 w- I3 T$ l5 [3 n, g: Q/ J
- (if (= 256 ndvar) (command dv "BYLAYER"))
+ y; o& I3 R) |+ ~6 A0 b* H - ). m# D w# v1 ?# ?" i
- (command dv ndvar)
, Z1 j+ e0 s; i, B+ { - )$ q3 K9 F9 a$ A9 k- T7 r# t2 b
- )
! U* F6 S& s! s - ) ~( y! m$ d+ F5 b) f/ r
- (setq i (1+ i))
0 l$ c/ a& B: w - )
3 y% W$ d, H' w - )0 d+ x# o, ?; \8 Q0 E; z+ f$ J3 n
- ;
& d/ p6 H* m# \ - ; Select Entity and terminate command
" T. p: H: R. ]# h+ W, _+ g - ;
6 s# L) a. _) g+ a - (if commandIssued
4 l% u& X' L7 W7 G; r+ ] - (command "" dime "")
6 U. j- {0 i' q - )
1 N1 y$ b R, X- b* W0 d. D - )1 l" O# n6 k8 N, [/ G
8 ^5 R+ N: j( T+ Y- ;;9 ~6 X& l- S: ~8 Y' Z6 Y1 C
- ;; Get style name currently selected style name./ F4 c( G4 d# }8 Z' q- x
- ;;
+ |) G7 l8 f ]5 ` - 6 w0 w9 f# V0 S# A
- (defun ddimen_style (/ dimsty)
! Q6 P5 q( Y6 U$ x% x" d+ u5 H- I - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)) N3 o4 h+ y, T" v
- dimlist (ddimen_getdimvars dimsty)
1 g0 P& g) ?/ k - )
9 n5 U+ m8 M4 Z4 t/ }) S4 @. e - dimsty4 j: ~2 e8 @& R! Z7 C
- )
" Q+ m5 V8 `7 ^3 _, u - * X. Q5 S, B4 H5 ~5 j7 x1 O# P
- ;;0 k: p& S! K% j/ W
- ;; Set dimvars
$ r- t' G3 I7 m3 V# O% V7 o - ;;
$ f9 l- C9 `; b8 E" ` - (defun ddimen_setvars (dimsvcurset / dv i)
' a$ a5 Z! o( i$ e8 h+ @+ t& Q3 S - (setq dv (cdr (nth 1 dimsvcurset)))2 Y% D. L7 v2 r+ a+ }# P
- (command "_.dimstyle" "" dv)
5 x+ {5 d5 X" p" W - (setq i 3)' s$ m0 B3 k- R; [' @- o
- (while (setq dv (nth i dimsvcurset))
' `; ^& ?' w+ Q" o, i - (progn
: w- `4 c+ x6 W1 L! O$ P - (setvar (car dv) (cdr dv))1 v! e- F* }5 q0 B4 c; w' ~, o+ P
- (setq i (1+ i))3 I! Z8 ^+ T' x o6 R
- )
/ ~8 p) U8 S* i- P - ), _9 I% r/ T. T8 r# D! w9 L
- )
. h1 r, X3 o$ `( B* }! R" H! ] - ;;) j6 v& `2 G$ |0 V$ v5 R( N
- ;; End-of-dimension
8 p$ B* h6 I% x( j/ ] - ;; ==================; U/ ]" x t/ G- y) w8 u: g
- # n9 k1 P* @ l* d3 Q. M
- ;;
- e. S$ x' r( R+ i4 i - ;; Sub-dialogues for properties. Common to all object dialogues `7 Q! ?6 q; e; U% k0 E
- ;;6 }7 D7 y; E. l6 m0 `- Y& F" R+ q
- ;; This function pops a dialogue box consisting of a list box,image tile, and, T5 F* G2 I/ H
- ;; edit box to allow the user to select or type a color number. It returns3 d3 i/ ~" z3 Z% O7 e
- ;; the color number selected.
w3 J& M' [7 u! S5 b! U5 u - (defun getcolor (/ old-idx colorno cname lay_clr)
3 B, J. z5 u/ n: j) I0 k/ Z: I& D2 D - (if (= (get_tile "error") "")
$ L. L+ w) }; _0 V, G& Y - (progn
& g7 {: x9 q) ^4 G- k% p. T' K0 U - ;; Get the color associated with this object's layer, for use
0 o d; q) k2 H# f: X - ;; in the color swatch if the user selects color BYLAYER.
8 v2 m: ]" \" C8 m: w; N - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer)))), O B5 H9 i* \$ U" d% H* e3 S! z @
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
& M; j/ d- T2 D - (progn
8 [, B% i4 `2 ^ - (setq ecolor temp_color)- Q1 i! ~9 r" ]1 ~1 T
- (setcolor)
9 f1 S& \* F* k I% _, v3 g8 \ - )0 |1 H5 m& z- r$ b/ W
- (setq testcolor temp_color)5 |' S7 B* r( O! g& _5 q( T
- )
% V. W! W3 I# b - )
1 O, \! u* \0 \; j* q$ W - )4 F, @7 c$ `4 C W+ e1 N
- ecolor
4 a l+ m: i$ q9 Y4 D/ \- N; B - )3 u; m7 g% o' [7 N6 `) c, d
- ;;# v3 m4 o2 Q7 o; S
- ;; Function to set the color tiles.
2 \/ \9 w0 Z) e. S9 p+ ? - (defun setcolor()
0 X0 M( K1 V8 E U' [ - (cond/ q4 m/ H& @4 B$ R# R& U5 B
- ((= 0 ecolor)( w- _3 V( \7 v1 ^1 r# A
- (set_tile "t_color" "BYBLOCK")
( }& [9 M; z& [( B* N7 V* c- X - (col_tile "show_image" 7 nil) ; show BYBLOCK as white' p* |) ]( C1 ?. U4 R+ _/ A
- )
9 o+ ~9 t- v9 I8 t2 p - ((= 1 ecolor)1 v, \) s. f. X# s
- (set_tile "t_color" "1 red")) u" D, E1 e ~- b: W- A
- (col_tile "show_image" 1 nil)! U* i# m2 G5 }9 y$ d9 y) a
- )1 ^' ? U# A i, O0 Q. [, @: Z0 u
- ((= 2 ecolor)9 U: P* P# V! s; o
- (set_tile "t_color" "2 yellow")7 h1 q2 z5 E( I# F7 Y3 h
- (col_tile "show_image" 2 nil)
% o. t2 ~9 J1 q, r - )2 @# Z$ P8 z0 c2 q4 x/ _
- ((= 3 ecolor)
0 w7 }/ l1 Y- S6 x4 @: a1 Q - (set_tile "t_color" "3 green")
3 u" \! }% F7 k0 r* M" k) ], { - (col_tile "show_image" 3 nil)* i% L: C' c& G Q7 @+ A! V3 f
- )5 ~5 U o6 @1 W1 I0 Q
- ((= 4 ecolor)) H1 E* [, e: l$ V
- (set_tile "t_color" "4 cyan")
2 B4 [7 M4 W4 [+ c8 t4 [7 C - (col_tile "show_image" 4 nil)
& I2 _; v7 ^: @0 I T - )& B. s0 \3 |5 t
- ((= 5 ecolor); V' f# N4 [3 H& |1 N
- (set_tile "t_color" "5 blue")
, ^ P& D/ w0 e; U! z0 w - (col_tile "show_image" 5 nil)/ O1 p+ N, g3 I2 z
- )' \) F/ @, v, t- H
- ((= 6 ecolor)
x2 p: I6 Z4 e% k; C: L+ D3 G4 z - (set_tile "t_color" "6 magenta")) Q" `/ r' d- M+ y
- (col_tile "show_image" 6 nil)7 e. S# f, P( v
- )& w7 k. m! Y2 v6 X& w' R9 W
- ((= 7 ecolor)
- C+ O$ g* O8 M# i - (set_tile "t_color" "7 white")
+ u1 c" L2 d6 f! f4 I9 u& E5 s - (col_tile "show_image" 7 nil)$ e3 U! E, m! F' z% o! D2 l
- )
6 S+ `* }$ J4 z! c; x) d - ((= 256 ecolor)
4 ~7 F% W5 ~# v; A# C - (set_tile "t_color" "BYLAYER")
2 \, T6 M1 A4 q0 V E - (col_tile "show_image" (bylayer_col) nil)
" T% g6 S! ?/ V* D4 S5 _0 W+ | - )
# p5 ~/ i8 G+ K/ T8 z& s - (T
3 X' o2 h4 l/ D" ~9 a& @! C& A; v - (set_tile "t_color" (itoa ecolor))1 @1 T2 a3 r, |0 X L8 G: H
- (col_tile "show_image" ecolor nil); |9 M8 ^* ~5 g1 u' W' U
- )1 X/ w/ Z! F* E9 B" ]" _' d4 d+ X
- )# P8 d5 I$ P2 c
- )4 O7 j1 T" J* ~ ~7 B
- ;;. n1 T3 w% Y) v' @5 z: S
- ;; This function pops a dialogue box consisting of a list box, image tile, and( T; K4 `5 D+ C6 L+ b+ S( N0 {
- ;; edit box to allow the user to select or type a linetype. It returns the
! L: R( {& X. g - ;; linetype selected.
z l7 p6 ^7 ?- o/ J( Q* ?" X - ;;
7 L$ V6 P4 y5 q - (defun getltype (/ old-idx ltname)
0 s0 v1 u J! Z" G3 w3 L ^- N; l - (if (not lt-idx)# u8 c+ M" ]* u7 g1 c& E8 {0 x* |
- (progn
: i r2 E9 l+ V a/ R- r; r - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist l4 O2 G+ c/ y; @
- (cond5 y3 a: K/ B4 x9 w9 e# l+ r7 U
- ((= eltype "BYLAYER"); o# O, _& F, Q: ?8 n
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))9 i2 g* X3 G$ x- B+ Z
- ((= eltype "BYBLOCK")9 Z6 f" @' u5 Y. }. v0 Z
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))9 ^ j1 E6 Z- i$ M6 g
- (T (setq lt-idx (getindex eltype ltnmlst)))
. g) J' l M. M$ ?+ x2 S - )
4 ?; P7 h" a5 G& E4 W+ Y. A; N. f - )
" E0 B p* q% x$ h - )
: M/ u6 J" h K K - % r4 x/ M$ I0 |* L/ g: M
- (if (= (get_tile "error") "")- r5 d' g1 v- c$ z) s' z/ \
- (progn
8 ?5 k8 c8 P0 @ - (if (not (new_dialog "setltype" dcl_id)) (exit))/ \* T6 ~! ?, ~. t% b
- (start_list "list_lt")/ t( b3 d0 w! ?1 x# `
- (mapcar 'add_list ltnmlst) ; initialize list box) X5 B1 `# W. a/ Q9 o0 u
- (end_list)
?# D X$ e& T# Q - (setq old-idx lt-idx)
9 o. t+ l9 J' Z - (ltlist_act (itoa lt-idx))
7 t+ n, O# Z* }( J# _) M. x - @% K9 w2 A N
- (action_tile "list_lt" "(ltlist_act $value)")3 i% }# ~2 A, E, G- x
- (action_tile "edit_lt" "(ltedit_act $value)")& A+ Y$ G* @' G% @, F
- (action_tile "accept" "(test_ok)")
+ q6 w9 }2 h3 ~1 r( W$ J - (action_tile "cancel" "(reset_lt)")$ u* V3 S: B: w {0 L$ ^
- 4 H* a3 R& ?) W) a
- (if (= (start_dialog) 1) ; User pressed OK
; K7 M" G) z/ `# |' ~ - (cond: B) l C4 ^+ t
- ((= lt-idx 0)) R3 ]0 u4 B* Q- a& o! d6 ~/ h
- (set_tile "t_ltype" (bylayer_lt)). e5 x: i) i7 e v
- "BYLAYER"
0 s0 P7 U/ u2 p% E4 f* h0 I7 S$ Q - )
, ^5 v/ }9 v. J3 m3 ` - ((= lt-idx 1)6 p3 {5 D9 r+ p: z# o1 |
- (set_tile "t_ltype" "BYBLOCK")% m& D, ]; G [( V
- "BYBLOCK"3 X' w0 v% d% ]. k5 H8 E
- ); V! c6 f, z4 M& D8 }0 W
- (T (set_tile "t_ltype" ltname) ltname)
' v6 z: M. Q4 x, v4 q, ]( [ - )
3 [7 J& {% @) u: _ - eltype% O( |- \2 D9 t( K) l
- )
" P$ a- t4 z( O6 g2 E _) i* Q4 f9 Y - )0 H# T" R, g: ~( H6 l) U
- eltype8 w( v6 ?7 R8 W3 v* [
- )
/ W6 X; i) A+ M7 L - )
9 l7 ~# [4 z* E - ;;
8 Y( ?% Y/ J) U4 q5 { - ;; Edit box entries end up here
3 L* ?% L6 l5 u, Y. v3 } - (defun ltedit_act (ltvalue)' w8 t8 \8 X4 W+ X
- (setq ltvalue (xstrcase ltvalue))2 K) a7 s5 r/ o7 |1 e
- (if (or (= ltvalue "BYLAYER")/ R3 l% {. M, c4 }% a
- (= ltvalue "BY LAYER"))4 W4 `7 i1 J D/ p. q2 i' @
- (setq ltvalue "BYLAYER")
+ D& o8 |& z, u" `# d) P+ j8 W- g) w - )
3 F- W; v* i/ \" Q6 d( I - (if (or (= ltvalue "BYBLOCK")
+ x1 W1 Z5 w+ h2 H- b - (= ltvalue "BY BLOCK"))
( l7 q4 z0 a8 b2 J7 E) q, o - (setq ltvalue "BYBLOCK")* O0 v: j/ A/ ]4 A( t
- ): J. T+ J- m r8 S* D( ~& {
- (if (setq lt-idx (getindex ltvalue ltnmlst))
/ h2 l ?# L* H - (progn. o- U" e$ D2 \; Q+ o
- (set_tile "error" ""): X! x. a1 t3 ~& B
- (ltlist_act (itoa lt-idx))
& l2 l% l, a; A8 k2 ] - )
: n# A; P6 T% @( @$ { - (progn+ W( s9 R. s* m9 c
- (set_tile "error" "Invalid linetype.")# _8 D; O' v2 ~4 | k' `
- (setq lt-idx old-idx) o& A' }* z# l/ P, M
- ;; (mode_tile "edit_lt" 2)( k) ~: k" n+ S! Z
- ;; (mode_tile "edit_lt" 3). N( B5 D% [8 u9 X, L
- )$ n3 o" `4 S( |6 R% ~* E. s
- )
: ]. B( [% ]9 o) e# T7 H. Z - )
; Q( l. b8 x2 x B, }; I& j; } - ;;
- L7 E2 }) O: _/ }! |& ^% f! B - ;; List selections end up here. Update the list box, edit box, and color, B7 A8 T5 z& l; K6 _, i
- ;; tile.
4 h, z% @( X: ~# W& N6 l - ;;/ h, E: a0 p6 L
- (defun ltlist_act (index / dashdata)
1 m9 q+ r- n9 E0 o& y - (set_tile "error" "")( f# \- F" G+ K% s/ g! d" {
- (setq lt-idx (atoi index))
( {' d" X% f0 Y3 a M6 r - (setq ltname (nth lt-idx ltnmlst)). p4 Y7 S; d% Y" c. c
- (setq dashdata (nth lt-idx mdashlist))" f' z3 B7 d0 X* b
- (col_tile "show_image" 0 dashdata)+ p, U$ @7 P, \
- (set_tile "list_lt" (itoa lt-idx))% I+ x0 T2 K/ n4 ?6 S7 N0 v6 t0 A
- (set_tile "edit_lt" ltname)7 m w5 D- W0 W `
- )0 C- w8 a) i t0 g8 r
- ;;
* X8 z# r" b6 p B' K. ? - ;; Reset to original linetype when cancel it selected: [1 v0 D! X/ b9 b5 _
- ;;
& s# w' C3 H9 p5 Q; p A - (defun reset_lt ()/ V1 n L) g6 c. y$ f
- (setq lt-idx old-idx)
' k/ {1 j! I' A F9 I& ~2 g - (done_dialog 0)
. s! l% E9 [) O - )
. c% ]# t8 N2 y" g' g - ;;. {! C0 s$ g" c( o+ X) g! b
- ;; This function pops a dialogue box consisting of a list box,image tile, and/ U5 Q. a p P% p! w; {
- ;; edit box to allow the user to select or type a layer name. It returns the9 J' B- ]! }# ~$ x
- ;; layer name selected. It also has a button to find the status (On, Off,5 F \. r& t+ i) a. `6 W: e" L/ G- Q
- ;; Frozen, etc.) of any layer selected.
% R) J% A5 G4 g - ;;; M6 D4 a3 f9 s
- (defun getlayer (/ old-idx layname on off frozth linetype)2 H9 ~- s. N" ^, V- a
- ;; Create layer list the first time the layer2 J, [) D/ h$ M. q! U$ \2 y
- ;; dialogue is called.
8 [6 P. G A" B6 m - (if (not lay-idx)
s1 t/ ~" L7 c' j - (progn
9 h% V7 |2 @+ N: K( f - (make_lay_lists)
" u; {# ]' ]% \+ ^) ` - (setq lay-idx (getindex elayer laynmlst))
( c; j/ R- x1 t8 y+ ~" ] - )
1 U u3 m3 h0 @0 h& S - )$ b g4 F. J7 G# z
7 s! T* k, i; K% R- (if (= (get_tile "error") "")
! P& A8 S& Z5 ~) m- f - (progn
/ v+ D) m9 ]* ?! c9 l A - (if (not (new_dialog "setlayer" dcl_id)) (exit))2 }3 H) [1 m4 z, L
- (set_tile "cur_layer" (getvar "clayer"))
# T0 G9 Z. W% x% A- F - (start_list "list_lay"). o$ I7 N" y2 J& a4 H: |& g8 q7 G/ f: t
- (mapcar 'add_list laynmlst) ; initialize list box
1 V0 M6 H$ O/ ], K5 V - (end_list)
8 H% k4 Q! I' E& S2 a - (setq old-idx lay-idx)0 \1 A; }! E$ ?; d; _- b! ~
- (laylist_act (itoa lay-idx))
; m% h: ~9 {6 N' R& X i" M: u - (action_tile "list_lay" "(laylist_act $value)")
0 ]0 ^$ }6 @! P- n - (action_tile "edit_lay" "(layedit_act $value)")! B5 P4 U/ t' l& k; I8 r; [1 `+ u
- (action_tile "accept" "(test_ok)")2 G( S+ ]9 m) r9 M+ K3 [4 y( M
- (action_tile "cancel" "(reset_lay)")
5 d7 \( `3 Q# a6 o3 I/ C" ^( { - (if (= (start_dialog) 1) ; User pressed OK, J6 R' W0 {2 ` I" b1 U
- (progn. H& ` W4 T, x
- (set_tile "t_layer" layname)
6 r. m2 a7 k) p - (setq elayer layname)
( b) P+ f" e) P - ;; If layer equals bylayer reset color tile
& Q/ w2 [' k" A& q( `/ w! o - (if (= ecolor 256)
7 ]9 @: E9 { b& D' t5 }7 V - (col_tile "show_image" (bylayer_col) nil)8 n1 F, z2 a% U( m2 _7 f( O7 X
- )
& z, r# O7 s! U' U - layname
6 R- M+ C& U, I- q. u; K7 C6 C - )0 z* e* f# K& t
- elayer
& k5 y* [0 `6 C" L) c* c - )) H0 M, h, z: S) _; {* U& R" |5 \" L
- )5 v/ \! d0 O9 O; o
- elayer' \( V2 f) ?2 c% x
- )
4 q$ v* N- t; L" \- [ - )
3 j" ~, f6 x! j - ;;4 d' g7 F$ w" o) K! ]
- ;; Edit box selections end up here. Convert layer entry to upper case. If' f4 Z3 r! F4 {- v" ^# D
- ;; layer name is valid, clear error string, call (laylist_act) function.5 T' Q+ U* W- n2 V
- ;; Else print error message.# d8 J, D( V" h- u. i
- ;;
# \5 S. h5 Y2 I - (defun layedit_act (layvalue)$ j' [) V8 ^7 c) o
- (setq layvalue (xstrcase layvalue))/ r, }* S& M& G/ i" i" a, S' C
- (if (setq lay-idx (getindex layvalue laynmlst))
1 F" ]. a' h9 z" C T- z) T - (progn2 r2 m+ Z- C# M- Q1 M4 q
- (set_tile "error" "")
: @0 H- g9 v# f2 a+ u; O( Y - (laylist_act (itoa lay-idx)): j6 r( V- s: L4 s; _4 D2 g
- )
2 @% G; Q3 x9 ?; l( W - (progn
- p `3 j6 |6 @8 M - (set_tile "error" "Invalid layer name."). i) X# ?, F) k/ G: B
- ;; (mode_tile "edit_lay" 2) Q" o. z$ D/ g% K: F( v
- ;; (mode_tile "edit_lay" 3)
5 O* C0 X( a( O* c+ r$ ] - (setq lay-idx old-idx)
# p- y. @% w( C. a( ]! w - )
h1 C; _# s$ o. p. N0 @9 r; m - )
4 p2 E9 i# u" [4 x. e - )6 [- B0 a9 L0 e6 U( I2 V
- ;;
+ V4 K1 k3 c" _* Z& _# m1 Q - ;; List entry selections end up here.7 _+ B" N0 Z7 s7 l0 n) \0 L; D
- ;;
9 m) _1 Y3 M1 B6 V - (defun laylist_act (index / layinfo color dashdata), X8 \. I: k# p( T
- ;; Update the list box, edit box, and color tile.
" k. ]/ Z0 M( @! V% B3 r - (set_tile "error" "")/ {$ n( B1 u% J- ~. r- L' E
- (setq lay-idx (atoi index))! d6 P* K/ `1 _" z
- (setq layname (nth lay-idx laynmlst))7 n1 c& R. ~4 u5 B3 @( M: m
- (setq layinfo (tblsearch "layer" layname))9 O; h6 Q$ _0 J2 T! y* U" w
- (setq color (cdr (assoc 62 layinfo)))
$ ^: L( W1 d- y6 N - (setq color (abs color))
1 A* o, z, y( ]3 c; d! ^: Z0 U7 f0 I - (setq colname (colorname color))' @5 l; b" {) z: _6 X% x; x
- (set_tile "list_lay" (itoa lay-idx))4 a" ~+ Z. K4 ]
- (set_tile "edit_lay" layname)( y$ \. B3 N$ ^0 V- n
- )
8 e$ S% R: ]" c/ \- @ - ;;
$ |8 [& A/ @! B% e2 s! Z - ;; Reset to original layer when cancel is selected.
`3 [5 q5 V' l9 Y - ;;
& [* [2 h$ k" ^& \1 v - (defun reset_lay ()9 Q, V p0 f$ B
- (setq lay-idx old-idx)' J3 t) v8 [$ r. q! d1 m/ _
- (done_dialog 0)
3 A6 @& X0 r1 [! S, @& }( { - )2 D' T W z% L* H- Y1 ?" j
- ;;
% V" O9 Q9 C" t: b# z4 x$ Y b - ;; Checks validity of thickness from edit box.2 W {+ G* s1 d
- (defun getthickness (value)
/ C+ Z e# U* ^% D: y Y - (setq ethickness (verify_d "eb_thickness" value ethickness))5 b! @4 C Z5 w% t; U/ v( i. q5 \
- )
1 q, n3 V* [# Z: E/ {) {+ F3 B6 _ - ;;/ h5 ]: U' `2 [ b9 w" Z6 S
- ;; Copy of (getthickness) for ltscale. If more, make this function% y9 t' Y& W" P
- ;; generic.5 A! C1 K+ o2 _' R
- (defun getltscale (value)
' F3 a( \8 Y) S, w) k) E3 d - (setq eltscale (verify_d "eb_ltscale" value eltscale))1 Q+ a, h' Q, _8 i' C! ^, Z- k
- )
9 c" L4 ?8 K C0 ?9 p: u6 I - ;;
! J C; p9 B7 X - ;; This function makes a list called laynmlst which consists of all the layer2 q; I% z% ~& K* b
- ;; names in the drawing. It also creates a list called longlist which
. i( q8 M# v/ s# o8 J) d' x7 `) Z8 q - ;; consists of strings which contain the layer name, color, linetype, etc.: ~/ H* b( r& o$ r3 V `$ F: a
- ;; Longlist is later mapped into the layer listbox. Both are ordered the9 @1 {- }, W3 o- Q
- ;; same.
a% s N' F, R2 R$ O) v - ;;! s! R; |' ~6 s) G
- (defun make_lay_lists (/ layname sortlist name templist layer_number)9 @2 q/ Q/ Y9 R4 m# `" G. W
- (setq sortlist nil)- w: |* Z, K/ b
- (setq templist (tblnext "LAYER" T))
; h% J' E. m# C. | - (setq layer_number 1)' o' l1 [ B4 f' h; h
- (while templist+ G9 j6 m% H5 n) z
- ;; No xref dependent layers, please.( Q9 c i1 M0 s$ ^& Z
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)5 O: s, h f* o" i! V @, [
- (progn
5 W6 J' s+ B; G G/ Z9 _1 r1 I - (setq name (cdr (assoc 2 templist))) q) r1 g: {; V# ?" g2 [
- (setq sortlist (cons name sortlist))
$ t* s$ \2 g& e6 n; m - ). y( V6 i- [; n& W# J* t
- )
- h, c; f" D; {3 j% l5 S; y - ; Get the next layer.
5 ?9 o( v: E- E6 s+ \: Y# ] - (setq templist (tblnext "LAYER"))
+ }9 I6 n8 z+ M% G* Z5 n( ^( l - ;; Not dead message...5 E6 Z* e" p8 J |9 a) ]
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))4 h# w: S' K1 y; a
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
, p) a+ u1 r& Y - ): C0 V$ l/ N2 m% V$ @ G, _5 b
- (setq layer_number (1+ layer_number))- f+ ]" X3 R+ X5 l R) }
- )0 a) A2 ]& h1 g6 `: T' T# n) o
- (set_tile "error" "")6 I# n4 l2 X7 S p/ U# n& [
- (if (>= (getvar "maxsort") (length sortlist))
" i+ ?$ m' b% q B- d; Z1 i - (progn
- e+ S I2 P. M) H - (if (> layer_number 50)
( f# q1 Z8 [; p ^ - (set_tile "error" "Sorting...")3 [8 \9 |5 E$ r7 l- D/ W1 y
- )2 H; B5 u. h9 [8 W- Q) N4 y3 j
- (setq sortlist (acad_strlsort sortlist)): ]5 b4 B% P' ^: K* w' \5 E
- )2 D% f1 ?% F2 _5 I; m
- (setq sortlist (reverse sortlist))+ o$ O1 b& z7 w% S
- )
! a1 S6 I4 e0 h T& o* q5 F: v - (set_tile "error" "")2 {; `5 S$ u: |# L
- (setq laynmlst sortlist)
0 Z9 h& v: {: n+ h4 R - )$ M* n4 @* u7 \4 _0 @ |
- ;;
9 R! l+ C$ |, X* b - ;; This function makes 2 list - ltnmlst & mdashlist.
) p4 _0 w: P i i - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
" f/ A# R1 }8 w# m - ;; is list consisting of lists which define the linetype pattern - numbers H5 g: a( l8 `# |
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list2 t7 k& q$ b4 Q) Q
- ;; corresponds to the order of names in ltnmlst.# P) K/ s+ p( z8 F
- ;;( {# k5 l* J5 ~/ i) K# M% J0 T
- (defun make_lt_lists (/ ltlist ltname)
- X. W- w4 z ? b( c+ w1 m - (setq mdashlist nil)" t8 N/ e3 N$ m1 v+ h5 c3 J
- (setq sortlist nil)* U" J2 M5 M! r
- (setq ltype_number 1)
0 t0 _* M& N7 x - (setq ltlist (tblnext "LTYPE" T))1 v5 H$ v7 v8 {6 a) d
- ;;(setq ltname (cdr (assoc 2 ltlist)))
+ _# P+ Z, r- t6 ?5 x/ @ - ;;(setq ltnmlst (list ltname)), K" s- H7 |" p: E4 P+ T q3 _, ?
- (while ltlist
% `5 n3 Y6 {0 }& y - ;; No xref dependent linetypes, please.
& |6 ~% z2 `& a: J2 B; m - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)& k5 Q) J+ x3 j+ x* p
- (progn
0 D/ _3 z; U: N) {+ ~3 v- D ` - (setq ltname (cdr (assoc 2 ltlist)))
/ u, p6 U5 D) n5 \- | - (setq sortlist (cons ltname sortlist))) X) R7 l1 S8 d
- )+ R8 R) g2 p3 Y, C( q& S
- )2 O) J& ^$ c5 ~0 b! m9 H
- ;; Get the next linetype.7 ^* g& h$ P) p) @
- (setq ltlist (tblnext "LTYPE"))
# h% g- g) T: }( k/ T w
7 j9 h6 @& |$ t4 {8 {9 m1 E- C3 a- ;; Not dead message...
( r8 {3 ^# v# g- J) O& C) w0 X - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
( g. e6 p }' I* h - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))& q8 j$ O0 M. A( }* |
- )/ u) x. l& e$ W2 C: s/ \
- (setq ltype_number (1+ ltype_number))
* l8 ]1 Z* _9 C0 H" B
% E9 b7 @9 F& c Y$ W- `- )
7 O, X3 K! ~9 v7 }+ V, i
" f, _' Z* N# @0 @; Q# p- ;; Remove Collecting message.
4 g- Y5 E) c) [6 E - (set_tile "error" "")
% y+ ~: ^5 ^- { H% V# k" y - . e1 z' Y5 g: X) ~ W
- ;; Sort based on maxsort.. O8 q; R/ r5 `8 s
- (if (>= (getvar "maxsort") (length sortlist))
" j4 l4 m& |/ L. q8 p0 z4 U+ Y: f1 K - (progn
9 [* C5 e, ~+ U1 a$ z - (if (> ltype_number 50)$ a3 j0 S, z( y) G
- (set_tile "error" "Sorting...")
% T g6 d; q8 n# L - )3 i3 }& `( B9 H
- (setq sortlist (acad_strlsort sortlist))
* G, e7 Q6 |: K2 O$ t' x - )
* X1 o/ Q+ x) s - (setq sortlist (reverse sortlist)); ^- ~! {2 V, _: X: w" Z. }/ p' c
- )" J, l7 R+ v |* \' K: T
- (set_tile "error" "")) ]" J/ ~* ?6 g& R( a$ v
- (setq ltnmlst sortlist)
n/ u5 P" m) Y
; _' ^. w0 ^8 G' f- b( l; C- (foreach ltname ltnmlst, @ ?# c8 [0 I& i5 o7 g( R: n
- (setq ltlist (tblsearch "LTYPE" ltname))
! V3 b7 r# @8 C/ H- H0 `( I, ^ - (if (= ltname "CONTINUOUS")
7 N, P$ k. {9 }5 l1 t. d* h - (setq mdashlist (append mdashlist (list "CONT")))7 H( T( K" D/ ?' {0 n8 o: T
- (setq mdashlist
6 q- t9 o# s1 [$ `: ~7 ?7 F - (append mdashlist (list (add_mdash ltlist)))/ k, v8 r. q2 t0 q3 J& d$ m
- )( K# q0 {6 S2 x! \" L7 l
- )( ^, B1 f& y4 k/ {6 v: K6 f
- )* k5 {% b9 c0 m6 y' T
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
8 y. A7 o) o- r4 l: f - (setq mdashlist (cons nil mdashlist))
; t7 ?# i1 P; A1 g7 z - (setq ltnmlst (cons "BYLAYER" ltnmlst))4 l/ M$ U) {1 k) y6 Q
- (setq mdashlist (cons nil mdashlist))3 `; L: r# W' k3 }( y* [ f" O
- )# i3 e& l2 Z6 v- I( B0 e: V
- ;;
: Q! m* o1 o3 ~" [$ y. |* \2 {- ~ - ;; Get all the group code 49 values for a linetype and put them in a list
2 e* T4 |9 {4 o - ;; (pen-up, pen-down info)." s. x0 ], H/ r( r9 A% O. K% V
- ;;2 w" J, `+ v$ B& U% M
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
6 y% \5 R# `9 k' A1 D% g8 o4 e - (setq dashlist nil)8 \8 C+ A0 U0 w7 _5 N2 o& D. Y
- (while (setq assoclist (car ltlist1))9 a z: c% a1 ]1 P
- (if (= (car assoclist) 49)
( n# i) c9 a( r0 l - (progn
) J1 W) g. P# n# t - (setq dashsize (cdr assoclist))5 k8 T+ {: @0 X. }5 T
- (setq dashlist (cons dashsize dashlist))
& ?! K, i( A) W - )
( ?1 t" F: @2 q* [! Z" w: M - )
9 ~9 e% A: w. P( V9 O1 h - (setq ltlist1 (cdr ltlist1))" b+ d- i* Z, K# L6 I( k H" G
- )
. Z/ j( J* G6 P$ p" k- E. r$ m$ j - (setq dashlist (reverse dashlist))
, k9 Q E- F- R0 r - )) U( c1 r1 K3 I8 |/ @. ?
- ;;6 O7 P+ v5 |6 |
- ;; Color a tile, draw linetype, and draw a border around it" @) P- {) h E
- ;;
2 q' n& z- v5 x0 l/ c - (defun col_tile (tile color patlist / x y)3 \3 |' ?% ?9 R: I5 F
- (setq x (dimx_tile tile))5 H& y. W+ V' I: K% G) v
- (setq y (dimy_tile tile))
6 B* I5 }! |. s; t - (start_image tile)* N* j' k5 N; ?4 V- _
- (fill_image 0 0 x y color)! _5 s% ]. x( v: F& D" `, z
- (if (= color 7)
4 L, W y/ X. L+ K - (progn( o. K# c$ S, t: U' T$ \' G9 O% E" I9 K9 g! ~
- (if patlist (drawpattern x (/ y 2) patlist 0))
; c# o+ I1 F8 F' l- e4 n8 l: I - (tile_rect 0 0 x y 0)- o9 N3 e6 M0 Z: q- e$ ^
- )
8 O# U' {0 k% y, M - (progn: y5 F: D7 a& T6 [9 _& {
- (if patlist (drawpattern x (/ y 2) patlist 7))
! ^2 F# @3 j) \" h6 I - (tile_rect 0 0 x y 7)" U) s( N0 C$ v, k- }
- )
5 O5 P/ [5 a, C - )4 C8 F Z# C& F+ [) ]7 F
- (end_image)
8 o$ t8 r7 V0 c" k4 K$ t - )
& E/ |0 s1 }0 Z# u7 `1 `4 a - ;;
8 i9 j- s* W! r- M - ;; Draw a border around a tile
5 v7 U8 i+ Z+ o- R6 k' d - ;;
4 ~, S! V6 S+ n& u - (defun tile_rect (x1 y1 x2 y2 color)
# M5 f% O/ o* {" h: M) C8 F3 Z - (setq x2 (- x2 1))
; S8 R y( Q% B% W0 T - (setq y2 (- y2 1))* @& a) m# V2 H+ f R/ ^ d" P
- (vector_image x1 y1 x2 y1 color)
' d! H+ ^3 G( P) L - (vector_image x2 y1 x2 y2 color)& O: `; Y. H$ V* F
- (vector_image x2 y2 x1 y2 color)
4 l! y" a6 ]# e4 H - (vector_image x1 y2 x1 y1 color)
1 Z4 d8 B+ F( V* t0 s% M; k, F - )
9 T2 F4 ^! T1 t- m4 m3 n - ;;
: h8 p* F+ {/ }4 q( P3 ^! H - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
& v4 O" L$ o2 U3 N6 L/ M - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
" G! p* a0 S. c0 { - ;; list of numbers that define the linetype, and color is the color of the
- L, \0 S# L; H( ]& A# k - ;; tile.
1 y# B7 F( o7 i- c6 u1 l+ A: F4 \ - ;;
2 k# D9 _' ^4 \# u8 `+ e - (defun drawpattern (boxlength y2 pattern color / x1 x2
$ C+ P" i. K8 {2 v2 \+ e( Z - patlist dash)
! d8 I8 a" ]. w5 h) x - (setq x1 0 x2 0)/ R; B B* s% P1 |2 ]0 f& h
- (setq patlist pattern)
$ H: z/ M$ V, X- s6 g2 e* ?+ j - (setq fx 30)
' V: @+ O" Y/ a6 M) `9 t - (if (= patlist "CONT")% w1 l {$ M' C4 E
- (progn (setq dash boxlength)
; S: {1 m, P! I4 B4 S% Y H - (vi)1 |. J- M$ D( T; q1 j
- (setq x1 boxlength)3 ?/ w- A! B' Z2 {- Q( ]0 B$ Z; |
- )
$ S; X0 T2 c+ N& Z6 ?, ] - (foreach dash patlist
% r" ]- p* @- f O7 u - (if (> (abs dash) 2.5)
) J, v7 W9 B; R0 B2 @ - (setq fx 2)
0 e5 \0 V; K5 P4 A - )
/ B j2 F$ E s - )
0 q4 g& g+ [% S0 {) M - )$ Y/ `% ^) I, S5 B3 x+ c8 ~6 D
- (while (< x1 boxlength)+ i% b3 H2 y8 q" D
- (if (setq dash (car patlist))2 c" H/ ? X# {1 t
- (progn5 }# F6 k. F% `# j5 I
- (setq dash (fix (* fx dash)))' h) l% b5 L: c9 z$ ]9 U3 A. \& g
- (cond& n1 V' g! X; N5 Y
- ((= dash 0) (setq dash 1) (vi)); ]: R, J6 ^9 l) V4 D6 r
- ((> dash 0) (vi))
. i$ Q8 ~, f- R7 ~, d - (T
; \7 J9 @; p, X6 x# j - (if (< (abs dash) 2); f# Y7 |' Q$ P7 ?: c
- (setq dash 2)
7 y* z& d/ E( V' Q$ Z - )
+ |" l* F! P, h0 M2 ? - (setq x2 (+ x2 (abs dash)))
4 S# O5 ^: D" b: M - )
7 c, e& O2 E0 Y' r. \& J - )( x6 b/ b* `& ?( K
- (setq patlist (cdr patlist))
1 C a$ W: S# e) ~ - (setq x1 x2)
- u, K8 r2 _0 t - )* l- a( J5 J" U1 g5 H3 V. C9 G
- (setq patlist pattern)7 ~: y: ~- p7 Y, [$ C& P% @
- )8 P, s! ~1 A, ]3 n
- )" F, j3 q# n% i5 y
- )
0 e4 e, z1 R! R1 [5 o$ v - ;;
: q7 ? P9 O( @ C: c5 Z" V - ;; Determain state of xclip
5 h9 ^! G0 @! k g' U7 B - ;; Returns the group 71 value of the spacial filter dictionary.
7 W4 F; Z& L; q& @7 ~ - ;; If the entity doesn't have a spacial filter dictionary, this$ F& J6 P7 N/ {8 ]- ?
- ;; returns 0. If it does it will return 0 or 1 depending on the
! c# z5 [) c! i. H - ;; current setting of the state of the clipping visibility.9 Z+ k l6 k# G
- ;;$ p8 i4 K0 K3 I- W
- (defun xclipon(elist)5 ^2 g2 D; _: g: }2 j
- (setq hasclip T)- M. D0 B" P+ f# L) A$ Z. g' U% s
- (if (/= (assoc 360 elist) nil)
0 y! t4 K* ^- _, c+ B; O - (progn
* D3 D) {9 ]- q' a) }+ a - (setq tmp (entget(cdr(assoc 360 elist))))
; Z3 A; x4 }9 L% Z" m; r9 v: V - (if (/= nil (assoc 360 tmp))) I1 M) a& m7 {0 h" m( _1 H
- (progn0 W) a4 r$ y7 c$ c0 s
- (setq tmp (entget(cdr(assoc 360 tmp))))& s o! |: ]5 R7 F, F
- (if (/= nil (assoc 360 tmp))
! F; G! Y% l o - (progn9 D! d- \* ]0 y2 c1 d j
- (setq tmp (entget(cdr(assoc 360 tmp))))
; _- K W1 `, N+ z7 t( U' y - (if (/= nil (assoc 71 tmp)) \; @9 X- x+ @& y* [+ B7 a4 A
- (cdr(assoc 71 tmp))- y/ J! F- P' x5 B; G' E5 M
- (progn 6 t. v, e; Y) A" s- b: }. I! H
- (setq hasclip nil)6 o! Y6 T+ N* N! Y& U
- (eval 0)
, O4 J/ S/ D! s - )5 j$ N' ~2 q. ~ g; l! G" z
- )8 `# i$ S' W& V. y$ A
- )
+ Z; m5 s7 i5 _! U' z - (progn + M4 W/ @' S* W1 r+ f9 }8 L
- (setq hasclip nil)
2 ^' z" @5 U* M0 [$ D# [ - (eval 0)* ]; b6 Z, X: ~* `+ Q0 \ ~4 Y' c
- )# S8 V$ g$ C- ?* c; w5 U( l
- )
p0 [8 X2 ~ ^5 L, t+ |% ?! A9 x - )8 a9 a) y3 G0 S4 a
- (progn
d# C1 r* I, Y2 b$ K - (setq hasclip nil)
/ M8 E# x4 y9 Q0 e2 H7 h% F - (eval 0)
" O1 n( {) R. I' m7 K; b& U - )$ x* t4 R, X+ U3 A
- )- L7 _2 i3 ]; f M
- )) p' f5 o' B) h X) _) M: Z- ~: g9 j
- (progn
, r3 M2 `, ^7 E. C% u' q: G- k7 f - (setq hasclip nil). P* r5 U; X! I" o
- (eval 0)* i; R1 v1 S4 _: Y+ z( C
- )
3 W4 C$ H2 @1 P9 b0 K4 ]% l2 r5 V/ v - )
6 f0 h4 m/ x/ g3 G: L: f$ N, { - ), f! c* N/ Z9 m4 W# }/ Q& x
- ;;
3 Z$ K8 ?3 I* K, H7 L - ;; Draw a dash or dot in image tile
# j, k6 b' |4 q# i - ;; d, t7 ^ X- v$ \( s) j
- (defun vi ()
# l6 q1 k( N' u, H3 v - (setq x2 (+ x2 dash))
( E9 \( a" b. m2 ]7 i* N - (vector_image x1 y2 x2 y2 color)
6 N4 N& p- m3 Z8 S - )
& h. ~7 e: `) L" j- K9 u$ k7 S% T - ;;0 ]$ D. G# T* a$ P) d0 G* {6 b
- ;; If an item is a member of the list, then return its index number, else: t2 R& N! O8 R; ?% N: c$ B
- ;; return nil." T) j. l8 @7 D
- ;;
, ?7 T5 u) v$ k) k - (defun getindex (item itemlist / m n)
. {& r/ w- S! u: [' M7 I* C - (setq n (length itemlist))
5 m; C! Q# u1 h - (if (> (setq m (length (member item itemlist))) 0)
O" Q" n( ^3 T! q: N0 Z; P( u - (- n m)
/ L, M2 P2 a; p. |! t - nil/ x. J1 R1 N( a. ^* Q
- )$ _5 Y1 \2 S7 X" ?- g
- )$ K2 w: j. W$ r- a
- ;;
* F- F% }1 k$ x+ O* i - ;; This function is called if the linetype is set "BYLAYER". It finds the% o1 q6 }* v" X! S/ z
- ;; ltype of the layer so it can be displayed beside the linetype button.1 Y& Q% V) Y' V9 r5 f5 p
- ;;
* j1 w, L1 b$ _5 T4 P7 Y - (defun bylayer_lt (/ layname layinfo ltype)
# O! D+ y4 H2 Z: h! P- c - (if lay-idx
7 A) B9 w& i6 h: ^6 y2 U' e A - (progn
! S9 D6 c4 g1 r" W2 {9 q9 y - (setq layname (nth lay-idx laynmlst))( b X" B: s2 u5 ^0 \6 F f
- (setq layinfo (tblsearch "layer" layname))* |5 f! z, h5 m5 p" V& k) f! z: p
- (setq ltype (cdr (assoc 6 layinfo))), I- I. ?. {/ `4 F: R- d2 h# G
- "BYLAYER"
" D' ^2 r7 g1 I7 y' [6 E - )5 u- c' c; d1 _6 b; {
- "BYLAYER"9 b1 L c1 I' U f& ]% G
- )
4 |: S, N( Q) b) x; a/ |' A - )
* t& X2 }' v `4 I - ;;5 h. Z& W; q( ?- g
- ;; This function is called if the color is set "BYLAYER". It finds the color7 `6 N. z" M4 u/ }6 q E' N
- ;; of the layer so it can be displayed beside the color button.. b9 v2 L: u7 {/ [# z: }
- ;;
F/ R% K: x' E: }( U - (defun bylayer_col (/ layname layinfo color)& A, e5 W% [9 _
- (setq layinfo (tblsearch "layer" elayer))# z( s, ] H. P" O
- (setq color (abs (cdr (assoc 62 layinfo))))& \# c' _; a! d7 n
- )
/ ~# Z7 _! E0 Y% h0 N8 C/ t - ;;
1 Q+ G& T; P# Y: Q! Y - ;; Used to set the color name in layer subdialogue. ]* Q' |. g! d6 k' a, B9 J
- ;;
0 T# D9 U% B( A2 U) _ - (defun colorname (colnum / cn)
- g3 ]) f$ i$ E4 |5 E - (setq cn (abs colnum))/ J7 s m+ h" M5 @. E" H
- (cond ((= cn 1) "red")0 R+ A9 o0 w y% g
- ((= cn 2) "yellow")
) x" g+ h, q T - ((= cn 3) "green")( h$ d0 U: B( }% M0 t# {
- ((= cn 4) "cyan")
2 s+ H+ r' e% W; x - ((= cn 5) "blue")% ?% Q" Z, r1 G6 q8 v; S
- ((= cn 6) "magenta")5 n3 n8 I( ~2 X7 o: X! e
- ((= cn 7) "white")
; [4 S, h4 W( o: a% s+ r% b - (T (itoa cn))
O! i; {; `( a - )
4 M @8 O+ R, }% Z, @ - )0 ~' _ D( B7 c8 C) ~' M
- ;;
# y# w* a1 o% a, ~ - ;; If their is no error message, then close the dialogue.
+ H# L- w5 F" p - ;;, b) d0 \9 [7 o* r! C2 S
- (defun dismiss_dialog (action) R: e5 w5 a% k4 N2 U, a( Q5 ]7 r% {
- (if (= action 0). h0 p% d7 [/ Y, Q& b
- (done_dialog 0)& N/ ^, I. l7 n8 k' l7 x0 L3 R
- (if (= (get_tile "error") ""); V3 J+ b3 h0 D
- (done_dialog action)9 r7 l" E N' h- _0 b2 q3 f8 D C
- )5 `! S/ ]# v( z1 p/ z* g" m
- )8 y4 l6 Z, x. o* U8 V# @9 x
- )
# E' h& f; l& T& @4 C+ T( c8 u
8 Y* B+ i0 c- E ^4 x5 A& C- (defun test_ok ()! Y: \ V& D- q
- (if (= (get_tile "error") "")
: K1 s% H: u; F# J0 C. p - (done_dialog 1)0 {) G/ U: t! J) R% e+ {
- )5 ~* }4 ^2 t" \ O1 u3 B$ ~0 t) @
- )
0 m/ \6 V w" `2 C: Z2 u8 A# v
& \2 l$ d. k) v- (defun cancel ()
; p! n3 k9 W6 \5 n* h - (done_dialog 0)
0 @0 A# I& ~& [1 [/ D; ?: @ - )' d8 x+ q" g3 P* h, {
- - U" [+ B5 r Q u+ s" c
- ;;; =======================================================================- X8 `: C* O s1 E7 K- D- l7 G
- ;;; SETUP layer and linetype lists for application, and initialize all6 j% ?# i `$ {' T% C8 R
- ;;; program variables. k6 _/ W$ _6 H
- 1 d) U* |4 W4 o* L1 W2 @7 A
- (setq elist (entget ename)+ D2 F2 \" r% a+ x7 W, M
- old-elist elist. D( w5 s: u0 d* a' z/ }4 K
- modlist elist
9 t* q' f$ \" _! @' ?/ q3 J& ] - etype (strcase (cdr (assoc 0 elist)))
5 G5 {5 e- p# R - ecolor (cdr (assoc 62 elist))( [0 m" k1 i) F; r$ {: N! G/ i
- elayer (cdr (assoc 8 elist))4 b$ p3 Y2 T3 M8 a
- eltscale (cdr (assoc 48 elist))9 @5 m* `9 P4 i6 V. ?
- ethickness (cdr (assoc 39 elist))
! m3 x* H# B( A) \4 T - eltype (cdr (assoc 6 elist))( p: b+ |0 Y- \% v: }8 m
- )+ A. d F0 v- v% r7 i
- (if (= (assoc 210 elist) nil)
G" J1 g$ k1 |3 t - (setq extru (list 0.0 0.0 1.0))
3 i# B5 s- _- j8 b* A% F - (setq extru (cdr (assoc 210 elist)))
$ Z+ n/ ] P& n0 _& |+ K7 ~ - )/ K# G% S& I( `: t" ]; Z& v
- Q* W$ Z9 c0 k1 Y
- (if (not ecolor) (setq ecolor 256))) ^* _' d- f* `/ w' v
- (if (not eltype) (setq eltype "BYLAYER")). T. Q" ]% c& G' q- Y8 Y! E
- (if (not ethickness) (setq ethickness 0))
2 N, J' h. a r. t* d: o - (if (not eltscale) (setq eltscale 1))
' m) a: W6 t0 d( g' O - ) ; end ddmodify_init' C! E6 \# l" L* |# n* X( b
- 7 ]' r# u7 s2 X
- ;;; --------------------------------------------------------------------------
# {& p6 O" U" e - ;;; Function: DDMODIFY_SELECT; J7 Z0 w+ m! A, \2 t
- ;;;
" V% a( t: X( ] - ;;; Object aquisition function.
4 r7 f( }: x+ R - ;;;
; P" s) K% a+ c# J2 K - ;;; (ddmodify_select)
' Z( a, c2 C+ H% H - ;;;
& d8 i, H( b% i - ;;; Obtains object to be modified, in one of three ways:; M* z1 Q* ]- h& _% N M5 e8 q2 e
- ;;;
' Z" L: b3 K2 h3 x - ;;; 1 - Autoselected.
: t2 h2 Y- g7 e4 I9 i2 U* b6 T: Q9 N - ;;; 2 - Prompted for.3 S, s3 Z0 B$ w j9 o: S
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
3 O w( [9 E+ c# a( r7 A7 Z - ;;;
y- u$ O2 J5 V/ Y - ;;; The (ddmodify_select) function also sets the value of the
+ X# F1 u: b8 r) ^2 ?$ x. u& m - ;;; global symbol AI_SELTYPE to one of the above three values to
1 k0 B* s1 ]# V% |0 O - ;;; indicate the method thru which the object was aquired.
# ?% S. _- T# D) G - ;;;
4 h/ _! }* U; [1 g6 J5 p/ b8 b - ;;; This value can be useful to applications that want to RESTORE
, }5 G8 X: R4 i - ;;; an object that was autoselected to its previous selected state
d# i" c3 {0 v7 i2 t2 R - ;;; when they terminate, although there doesn't appear to be any
3 B8 V5 B1 e, h: ~. z$ I# x/ N - ;;; way to do this right now.( U! h% h$ D) d
- 4 G. K5 L5 }% v( T: X
- (defun ddmodify_select ()" I- M8 h6 |, a5 b4 S5 F2 j5 H
- (cond$ @7 r$ c% i! ?( F& `% p
- ( ename ; (ddmodify) was called
$ K3 @3 A q8 F - (cond ; with an <ename> argument9 O% I n! B+ g- o# C# O8 h! c
- ( (entget ename) ; If object is non-deleted
1 p5 X0 v K4 _9 {' T - (setq ai_seltype 3) ; then return its ename.2 u! ?0 v% S2 K W
- (ai_return ename))))& E( J. y: n/ l" t R( s
- % { i4 _ V, d; c" @1 \
- ;; return auto-selected , see ai_utils.lsp' u7 m7 [, u0 q
- ( (ai_autossget1 "\nSelect one object to modify: "))
: j% X- {& G5 T6 t# d
$ ?0 K5 R# v C2 q# G E/ K6 G- ^- (t (princ "\nNothing selected.")
7 ?# K9 o9 K7 d% b4 ?5 A - (ai_return nil))( z% R9 z! i ~
- )" K- B O% g2 L- O2 ~7 s
- )$ O s. y2 Z9 d. E. C: M/ R
& w( k0 F- Z9 Z' G- ;;; ============= Command line interface function =======================0 Q4 r0 F9 m- d& k
5 h' w' U: o K8 O+ m# u, S# m- (defun C:MMO ()3 ]4 R. ~' c6 ~
- (ddmodify nil)" }; I; z8 _( O( u# M) b
- (princ)
# M2 p+ z! ^$ j- r6 U - )' D1 ^3 Q/ O2 S2 A
- 6 f& R9 G4 c1 s# d
- ;;; ================== (ddmodify) - Main program ========================" L7 l% o9 v. w8 j# r2 E9 Z
- ;;;
; u8 E: G* q" f* j0 D - ;;; (ddmodify <ename> )
! E) ?" u4 p: S( o5 y - ;;;
" s0 _4 D2 M/ q5 A - ;;; Main program function, callable as a subroutine.4 y$ @$ D! l/ G1 O! A/ E
- ;;;
t% K5 q' L' |7 J- |7 b; ~ - ;;; <ename> = object name of the object to modify.( }0 V# g8 G) ~; S: K$ m0 R
- ;;;
4 r4 U$ }4 @$ u: t" ?9 J9 ]* H2 Q& F - ;;; If <ename> is nil, then user is prompted to select D0 b" x' c3 D6 t
- ;;; the object interactively.6 U, t& z: d4 Z: U1 i- Z3 I7 y
- ;;;
5 t1 q' D* A% q8 w6 r - ;;; Before (ddmodify) can be called as a subroutine, it must0 ~! @# ^1 { y- r4 z3 a+ I8 F2 Q3 \- S
- ;;; be loaded first. It is up to the calling application to
' F7 E+ O. J. m6 R9 e. g0 v! W4 @ - ;;; first determine this, and load it if necessary.# u/ k: K# V8 ~
- 6 d% H5 Z4 U/ ?) b( w1 N4 l# V
- - Z( P; J' d) m; O+ ~4 }6 r, S
- (defun ddmodify (ename /. |$ L( r) P# _/ T0 U7 i' x
- 2ndpt ell_calc_area move_pt1 templist" `8 E5 D# G3 V' K0 u
- add_mdash ell_tile n tempmod- X9 g8 n2 n& N7 q l
- alipt eltscale name tempst_ang
% w1 v _! B, ?/ ~; ~ - ang eltype newpoint test_ok& U/ H a3 J: F
- arc_calc emod next text
( W( k ~% \2 C% B% d$ F' j' O - arclen end_ang next_vertex th-value8 \# L0 M4 E* C) s; s3 D
- assoclist endpt obl tile
9 P+ t$ t0 t$ |, W C7 k9 l4 H; R' a - atprompt errchk off tile_rect
* J! R2 w5 w6 @# _& g- V* B; P - attag ethickness old_majrad tilemode
! \' w8 \' O, X/ Z - attprompt etype old-closed totang( W& q9 F1 U8 M, `3 ]. e
- bit extru old-closedm tstyle9 b: J% m1 t* i- r8 p
- bit1 fchk old-closedn u7 m2 c5 N3 g. w- `
- bit-10 first-10-rec old-elist undo_init
7 W$ c- A& e \' u* v - bit-11 first-10-time olderr upsd a: d0 H" Y, E+ o C8 ]
- bit2 first-11-rec old-fit v. B! Q. ^ k; H% }: c# p
- bit3 first-11-time old-idx va2 Q: Z+ N) O/ Z5 x
- bit4 fit oldlist value V. R; x0 y4 p3 k1 a! c$ e
- bit70 frozth old-spltype ver_4+ ^ {( E1 u6 m' D: E
- bit-70 f-vis old-u ver_ang1
2 `7 C2 ?7 [9 X% h4 O7 l - bit75 fx old-v ver_ang2, p# D! v! f* F% S# F8 P5 i! w
- bk-up get_color on ver_col
- I1 {% E( e/ b# ~! G& a - bkwd getcolor onoff ver_colsp
6 F* U4 t% T- e1 F8 D2 F( l - boxlength getindex on-off ver_eangle
& e. B$ o; k! k+ X; Y! e - bylayer_col getlayer patlist ver_hght
: M8 G! N! v2 F8 Q6 D- g& G# p$ j) a - bylayer_lt getltype pattern ver_majrad& P2 l. N' q2 _
- calc getthickness pltype ver_obl
; x! g5 P6 R: c h - cancel globals polytype ver_pt1
: }4 x/ z1 T' S. p/ {; F - cir_calc ha pre ver_pt2
; }3 ~, S2 F8 B( R, k( y- ?0 h* v7 S - closed ha-prev proplist ver_pt3
( b9 y! e% E& i4 d8 w7 R3 P - closedm help_entry pt ver_pt4
8 a+ [( _) H, h2 A( P0 A0 O$ O - closedn hght pt1 ver_rad% ^& i+ W7 e3 S* r, y
- cmd icvp pt1_eq_pt2 ver_rot9 E* B0 W3 p9 k4 r0 |
- cn image_add_vector pt2 ver_row* f6 n! ^- t6 L0 w9 ?6 a
- cname image_clean_variables pt3 ver_rowsp& @# a. e' |* u8 |+ t% _0 V
- cntl-pt-indicator image_cross_product pt4 ver_tag
; I8 p4 C3 k P; h' v! T - code_71 image_disp_opt ptype ver_u: p) }" v2 o3 B; S# i2 I
- col_tile image_dot_product radius ver_v c! c; i' ~3 n `; t- d5 q
- col-idx image_normalize_vector rational_spl_flag ver_wid+ x) I: {9 b z- g$ M
- colname image_rotate_vector reset ver_x1. M7 j+ r+ w2 r' g: E# f0 s4 U/ T3 ?
- colnmlst image_scale reset_flag ver_x2* o& Z- D4 s5 L0 q# ?* C- p
- colnolst image_scale_vector reset_lay ver_x3
. C. a _ b F7 F$ A1 [7 G& Y - colnum image_update reset_lt ver_x4
. i! ~2 I6 m1 p* V - color index reset_uv ver_xline_pt1) N5 v4 l4 R: @5 X& W7 D
- colorname inv rot ver_xline_pt2
9 z9 m1 q0 N4 |4 y' w - colorno item rows ver_xline_x13 J4 ]4 F; t9 }# ~; T5 m' W. j) d
- col-sp item1 row-sp ver_xline_x2- m$ r$ c2 k9 j$ L6 v2 O7 b
- columns item2 rrat ver_xline_y1& L( W, W2 k/ C4 U( }
- con itemlist s ver_xline_y2& E1 k8 \+ j+ r: C3 |) e1 x: J
- coord jlist set_action_tiles ver_xline_z1
5 f( ?, \ C/ y5 R - ctr jlist_act set_just_idx ver_xline_z2
9 g! M5 z7 |) |6 G' X- T - cur-10-rec just-idx set_tile_bk-up ver_xscl& u E& _; U" f; D, o/ g. k
- cur-11-rec layedit_act set_tile_cntl_pt ver_y1
1 l% |% a0 K/ O" k | G. @5 B - cvpname lay-idx set_tile_data_pt ver_y2
& Y' D$ u: A0 X& F; j4 B - dash layinfo set_tile_dirv ver_y3$ W8 Y% T0 D( B# C& f
- dashdata laylist set_tile_edges ver_y4& e p% _$ j2 O3 \1 W
- dashlist laylist_act set_tile_endang ver_yscl
; Y1 m5 A! }3 X0 f5 S1 l - dashsize layname set_tile_hght ver_z1; d j6 s3 O$ L, C
- data-pt-indicator laynmlst set_tile_icvp ver_z2
- ]- T/ W& `# @/ O( a - dcl_id layvalue set_tile_just ver_z3( N# L5 I/ r, a" k; |
- dd3dface line_calc set_tile_obl ver_zscl7 n* b- v: M+ f7 _6 p7 k" z
- dd3dsolid linetype set_tile_prompt verify_a9 i. [$ t1 `# l8 c
- ddarc list1 set_tile_props verify_d" [7 F7 o4 C: d: e7 y
- ddblock longlist set_tile_pt1 verify_i
- H3 f3 j1 Y7 c. e) I" M' o" E( J% |9 C - ddbody ltabstr set_tile_pt2 verify_xline3 C, g! M; s) h7 N/ m7 p% N
- ddcircle ltedit_act set_tile_pt3 vfy
- M, j: i _% P - ddellipse ltidx set_tile_pt4 vi$ l/ I" W$ r. H9 O4 |8 K
- ddgetprompt lt-idx set_tile_rad vlist
4 o+ ]8 [" C. e, J& o# W( i - ddgettext ltlist set_tile_rc vname8 m, k0 r6 g7 J
- ddimage ltlist_act set_tile_rot vpf1 n% N9 G# V5 j2 A+ X4 t7 ]- H8 J
- ddimen ltlist1 set_tile_scale vpid" g- R/ c1 z4 W) [5 f
- ddleader ltname set_tile_spline_props vpldata8 |. T% c) z! W+ {, F G9 N6 @: _1 X
- ddline ltnmlst set_tile_stang vpn
# l- P+ p6 I1 J5 a - ddlist ltvalue set_tile_style vpt. R8 M [) V4 B3 k" V, x3 U
- ddmline ltype set_tile_tag which_tiles0 W; S/ Q& ]5 a
- ddmodify_err m set_tile_text wid' ~- Z2 G# y! ?# Y" B$ A
- ddmtext majrad set_tile_vpt x
- v1 m$ l, P' C7 \# H6 ?7 ~. i - ddpline make_lay_lists set_tile_wid x17 J0 S8 Z# r- z' x: Q
- ddpoint make_lt_lists set_tile_xline_pt1 x2
+ e- r4 O3 |+ s; c. R1 |% U: m* w - ddray mdashlist set_tile_xline_pt2 x3
* p; f& m1 S& M7 b* I* v - ddregion minrad setcolor x4
+ f( q, P2 o0 c$ d2 ?' X - ddshape modify_3dface shght xdlist
( |! m% a( S9 u - ddsolid modify_3dsolid showpt xline_pt13 E l8 P6 K; {
- ddspline modify_arc size xline_pt2) V! {* P+ V9 B& E; [
- ddtext modify_block slist xline_x1& j9 V1 v1 p3 N& F0 `, F) S9 L
- ddvport modify_body sname xline_x2: U5 x+ P7 ]$ Y( `% l/ K, q% s- Z1 a
- ddxline modify_circle sortlist xline_y19 e, }. l1 ?0 {7 n4 R% ?" k
- denom modify_ellipse spltype xline_y2
5 C2 r5 X& r4 m) a8 f - dialog-state modify_image ss xline_z1. U2 E, |" X: O7 z
- dir_pt modify_line st_ang xline_z2
% @1 Q! F6 N4 G- { - dir_ptx modify_mline stpt xscale
6 x2 E, k X# _6 B - dir_pty modify_mtext style_act xx
# i2 y9 p/ J# F* Q! Z% Y& e - dir_ptz modify_point style-idx y
* t0 l8 i1 Z& r4 L( C: l - dismiss_dialog modify_polyline style-list y1
5 w+ I/ v$ e' a2 \ T - drawpattern modify_prop_geom tagval y2
6 ?- n O8 n* ?' t& L3 A* I3 C- C - echo modify_properties temp y3, z& D4 ~- r$ D1 a! j
- ecolor modify_ray temp_color y4
- F+ n: U9 P8 o2 h - edge1 modify_region temp_dir_x yscale( U# Z1 e; T" v# q {8 Z1 b+ I7 e5 h
- edge2 modify_shape temp_dir_y yy
" ]: ^7 k) U! Q! k - edge3 modify_solid temp_dir_z z12 E) Y3 g9 d2 S& C, T. C/ }
- edge4 modify_spline temp_xline_pt1 z27 s" t5 E2 E+ G! [# V( ^( B
- edgetest modify_text temp_xline_x1 z3
' V& ~9 F" K6 h D0 R0 F; P - elayer modify_vport temp_xline_y1 z4
1 [& I( R( r. x6 n) ~ - elist modify_xline temp_xline_z1 zscale
0 c5 c/ W" V3 f \. E7 Z - ell_calc modlist tempend_eang zz8 b$ c/ r* O& f8 g9 f9 [1 Y; f/ t2 e
- dir-idx safe_ddedit ver_MtextWidth xcliponoff
6 V* e8 B- _+ @& m; V/ e* T4 S - MText_style
- \. o+ a4 }0 }+ j/ O - )
7 u0 @1 r, t2 J \ ~$ \9 Z
q |$ \# G* N" x8 c- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
5 d0 F6 A4 X3 M: ~5 O8 \- X. @ - old_error *error* ; save current error function
2 s% I e" a& N: @. r+ A( i7 s - *error* ai_error ; new error function8 T( g" M. H( o7 [: ?4 y
- )' `- u0 k. ?4 p
- ( k' e$ ]( V0 ]/ H) }- t0 O
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
/ `; V; r% Q+ P! G6 _8 \6 I - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection$ N* n- v/ z7 e4 W* b0 O
- (setvar "pickstyle" new_pickstyle) ; bit and set to new value
1 b1 M! }- F$ D& z* H3 A- h7 G' T1 C
& X7 g5 ]2 `- h# h- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)7 [/ w) `' k+ B. K# w
- (t 1)))
9 b* b! U% {- N# t8 u6 e - (cond
A7 X5 ^+ m: E0 K - ( (not (ai_notrans))) ; Not transparent?
$ I. K/ `% s3 F9 C/ I, V8 M7 ^! t: W - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
4 g: |: ~. j8 Q0 T; b - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
- J( H! f8 h6 G5 T. Q8 N5 ]2 r - ( (not (setq ename (ddmodify_select)))) ; object to modify?
! F/ o2 l/ r. S5 `9 n# n, d9 ~* @. f$ P - ; J4 W3 P' V1 o b
- (t (ai_undo_push)
3 z7 W5 {. p; h% H' u; r) X- E - (ddmodify_init) ; everything okay, proceed.
, x7 ?& f8 ?9 s, b5 D - (cond! j4 d) \0 P0 s& ^' A5 B5 w/ ?
- ((= etype "LEADER"). Z6 Q# p1 |) L4 L m
- (setq help_entry "modify_Leader_dialog")
0 s5 W1 ~* p/ S& _; P - (ddleader)
! ^$ Y. l% i* f5 W - )
* ?( b( O5 \/ s5 ^ - ((= etype "ARC")
' n' z7 ~' n& ]$ p6 T9 m - (setq help_entry "modify_Arc_dialog")5 {% l: t3 _+ }$ H( o1 V$ V
- (ddarc)3 U! A! m& h2 B) ^
- ), \) Q+ q2 ]9 j% u2 V. P* N
- ((= etype "ATTDEF")8 L1 N8 X- ?: t( }
- (setq help_entry "modify_Attribute_Definition_dialog")
+ |. p+ I8 ~. ^! B5 j3 Z( V& D5 J - (ddtext)- h) h3 u8 z5 k6 {( y9 M- {8 U2 h- @
- )
8 v/ x# \. {) d - ((= etype "CIRCLE")
. @5 J9 z4 k: E1 D - (setq help_entry "modify_Circle_dialog")
$ l4 A+ y* m: h8 e5 p - (ddcircle)0 a' T' Y( R, ?9 m# @) P, r# W
- )
0 S& e* S% M- f: g( e- V; W' u - ((= etype "ELLIPSE")
% c# j: r* G8 d& N+ F5 _ - (setq help_entry "modify_Ellipse_dialog")
+ m* b( D0 r9 U, d: D/ ]9 { - (ddellipse)
9 d3 {' B9 }# Y/ Y - )* K8 j2 w; f$ m
- ((= etype "3DSOLID")
. A: q# t1 ] L3 ~) H- S$ E6 x- H3 \# c- \ - (setq help_entry "modify_3d_Solid_dialog")7 u B1 E, H3 s2 |3 S
- (dd3dsolid)% ~2 Q4 ]! j5 `$ {% r+ z( E
- )
/ R0 _( d& ^% C& f) ^ - ((= etype "BODY")3 P3 S7 @; [6 H+ ?
- (setq help_entry "modify_Body_dialog")
$ g0 J& J/ Q: _# d - (ddbody)
3 o1 u V4 ?% t0 t4 l9 [) x g R - )' {, G0 Q- [7 ?/ D3 H& @. l1 I
- ((= etype "REGION")
6 J- y1 ^5 C y: c( i - (setq help_entry "modify_Region_dialog")7 K8 ~6 ?9 A" U+ |
- (ddregion)6 C2 ~/ u: \8 x" o* e$ l% e
- )1 S5 U- W: z- z8 o" j
- ((= etype "HATCH")& G9 V H& v0 u, b" S$ S
- (setq help_entry "modify_Hatch_dialog")
% T- R7 t: }8 q7 V4 M: K( e - (ddnewhatch)
8 q/ y7 J2 ~9 n) l" c - )
5 H2 p# m5 }5 }% g ]3 F - ((= etype "SPLINE")6 s7 B3 b7 d+ _0 _0 j4 w
- (setq help_entry "modify_Spline_dialog"); [/ x9 `& n% U4 g
- (ddspline)
) @( z) y0 R$ o# B% R' N7 D - )
5 |5 e& F- M% [# g" y+ Q0 p3 F - ((= etype "INSERT") ; see ddblock for help_entry1 f$ w" d* B# t6 R" p0 t: g X
- (ddblock)
9 {$ ~) D, V9 W/ s' _2 ` - )1 T' ?5 i# `+ F
- ((= etype "LINE")
& H. Q1 n5 w& [$ j* o# k# J" r& Q - (setq help_entry "modify_Line_dialog"), r/ t" b% {. O# u) C
- (ddline)
6 _, ]8 i+ ?- {* I- \" z& F5 G - )1 s: D5 _2 M) { m2 c
- ((= etype "MLINE")5 x9 O5 n8 `4 a: [5 Q" S
- (setq help_entry "modify_multiLine_dialog")
0 Y; g; \1 ?' B+ J7 ~ - (ddmline)
$ N( F( S5 a2 X( m; ~5 z - )
6 j, X; L; N9 y/ { - ((= etype "RAY")
4 W/ \. v2 ^. p* G' @ - (setq help_entry "modify_Ray_dialog")
& g P! p' i( b" I$ s - (ddxline)1 o) E1 n( X) z) c2 s
- )
) F1 P; y5 n7 j/ g$ Z - ((= etype "XLINE")2 K2 F) H7 t# v& n# G
- (setq help_entry "modify_Xline_dialog")$ S# k& w6 h N2 F! k
- (ddxline): X" t5 ]5 S f' A) |, o9 v
- )4 S2 J0 Y' _8 n/ W
- ((= etype "POINT")) r! ^# F$ ~8 }: c$ w, m
- (setq help_entry "modify_Point_dialog")7 c. T$ d( g$ E8 P1 j
- (ddpoint)
5 }, y3 k: z& ?' G& o - )/ C8 s$ y2 J! E4 c+ i- D7 G" b
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))6 @* f8 D, d* a# M& y# H: @
- (setq help_entry "modify_Polyline_dialog")# [/ ~4 f0 p6 {& Q1 P
- ;; If a 2D pline, check to see if it is planar to the current' L7 z$ ?* V; Y! ^
- ;; UCS, reject if not. To see if the pline is parallel,9 W) c! R1 k; w" i# X0 }& _
- ;; the 210 group (WCS) is added to the current UCS origin (WCS)3 o! p. o/ `) n, u
- ;; and then converted to the current UCS and checked to see if% Q) l. e0 A' I0 m) o; a, a5 A: n3 }
- ;; it is equal to (0,0,1).4 K6 e9 {% |5 F2 N
. a/ w+ ~: T6 w) w# v- ;; Incase the 210 is default and not in the dxf list., M* O7 C) t3 a
- (if (= (assoc 210 (entget ename)) nil)9 g- z# j5 x8 g& n" F
- (ddpline)
, G: x e1 e; ]; g! h( | S, O3 P - (progn
! ^% j( h# s8 w8 e/ | - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
! o7 Y6 m0 J$ z. I+ m - (not (equal '(0.0 0.0 1.0); \. v) a5 ?1 h) }% |( j5 t
- (trans (mapcar '+4 e& o) Y1 x6 o" e8 j+ p- h
- (cdr (assoc 210 (entget ename)))
! r$ `7 e% y" h - (trans '(0.0 0.0 0.0) 1 0)
h9 z ?8 W& ?! J0 A8 i' R: c; T - )
% P, o' |1 j( T) N f& W* K - 0 1
; O( A. f5 U, {0 @- E! H# c' h - )
& e) K6 b. n, Z ^ - 0.0000000001 ; fuzz
3 J! N2 D4 L0 q0 q" u - )3 z% w I4 A" b
- ) z& R8 e6 o( A6 G% R: e
- ): c2 T5 c6 B5 @ @$ S0 P+ v y
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")
& I2 i6 W; {, X$ h( J4 j - (ddpline)
q7 U2 P* C6 f) ], b. V - )
# V) L0 V7 m, W1 a& g - )1 ]8 J& E+ {/ U
- )- e0 z- Q5 a7 B+ o. m- w
- )% ^* i' ]8 H) j- v
& R7 V. P. m+ y- ((= etype "SHAPE")# _: [1 R. x' W+ _- j
- (setq help_entry "modify_Shape_dialog")8 \( @) L$ u7 `2 B
- (ddshape): ]" G6 n1 V# q4 C/ i6 i
- )
6 h% j& \; N; M2 V% z% y$ s k) L - ((= etype "SOLID")! t& N" j, o! m! K
- (setq help_entry "modify_Solid_dialog")
5 ^) y8 z+ ?+ P/ v, \# a" r1 D- a* t - (ddsolid)
$ u4 e3 ^" x6 _( Q6 e7 o8 f - )" V0 @5 G4 r6 e. F' |' x: D
- ((= etype "TEXT")) v9 Q* _( b. @( O2 W: `7 {! d# l
- (setq help_entry "modify_Text_dialog")/ D' V' V+ a+ ]( z. P: K
- (ddtext)' e& [0 }0 }. Y# x4 u! ]% _
- )
2 _: D8 v+ {! E/ n! W% v1 R - ((= etype "MTEXT")
~% Q2 L# f) r' f - (setq help_entry "modify_MText_dialog")3 i% q; ], Q, \9 G( t
- (ddmtext)
2 o9 z( q( ]/ p# X! }& N) W - )0 x$ E- r$ o6 W: |& v' w
- ((= etype "TRACE"); H$ S4 |- q0 G0 N$ Z% z8 u% D |
- (setq help_entry "modify_Trace_dialog")- y7 z/ m* S3 D C1 |3 y8 }" g, i5 y1 z
- (ddsolid)3 D, f4 e, R/ n/ m- b3 B
- )/ n, V: O- m/ T, K6 V% r5 j: V
- ((= etype "VIEWPORT")9 {2 @8 B% W3 D" R3 d$ B7 h
- (setq help_entry "modify_Viewport_dialog")1 C% ~0 g# j p; H m1 y/ Y
- (ddvport)$ A' t {& G" p$ N `7 C
- )
, F, u6 q' R% _/ _6 X" ~ - ((= etype "IMAGE")
# h/ S, N7 _* d0 e- j - (setq help_entry "modify_Image_dialog")
$ w0 I0 h( K, x; {7 o; f- S - (ddimage)" L% G4 f4 d" \$ Z" s* T
- )
& |1 y6 @ }- t+ Q5 ]: \ - ((= etype "3DFACE")
3 X+ F! Y5 Q' V7 S% Y/ v5 @0 N - (setq help_entry "modify_3D_Face_dialog")8 n) c7 f7 N# ^! K5 F, v
- (dd3dface) H( r6 u+ K* c M
- )
7 K/ V$ i1 p \8 R; r - ((= etype "DIMENSION")
! M$ g( h3 |8 h( N5 p( H - (setq help_entry "modify_Dimension_dialog")
) m4 ]0 _' W! \$ D - (ddimen)5 ]$ b8 Z1 v% f: I, G; W! Y6 z
- )1 D8 z* o# W6 V- _& E
- ((= etype "TOLERANCE")- O2 A( Z# I! O+ N6 q, y; d
- (setq help_entry "modify_Tolerance_dialog"): M; L; V% c4 H& x- r2 n$ S
- (ddtolerance)
+ @3 `1 s6 m6 T8 r4 M - ). r- t* p2 O$ x- F) ]& W
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.0 S% g8 R- s" X- Q# Y
- ;; This allows DDMODIFY to work on any custom object or any new object type
# q& @8 u2 {, ~$ c - ;; that isn't specifically handled above by calling the more generic DDCHPROP.( ]4 T' }/ g( d+ k
- (t
- i1 g z" X$ _6 D9 k - (if (and (not ddchprop) (not (load "ddchprop" nil)))- `$ l2 z7 J' f& n2 w8 s5 b
- (princ (strcat "No dialog support for object type: " etype ".")))% ]7 y0 b' l/ I+ T% Z
- (progn0 y3 `. S6 y% ^
- (setq tempss (ssadd ename)). a- N- Y+ a' M( x: h' y& P
- (ddchprop tempss)% _& W$ ]6 Y. {- r% Y* r1 w4 m3 j
- (setq tempss nil)
! s% `0 f( E1 Z" a9 N - )
$ k" e4 Q" z% y% ]: K( ~# Y4 t m/ ? - )
1 e5 ]/ e f& d1 w8 s - )
5 C7 j! X: L, q - ;; Previous fall-through condition.
* }% d% }2 @$ A4 v2 O* g; S- P% x - ;; (t (princ (strcat "No dialog support for object type: "5 C& h+ `# \9 J1 q3 L0 m0 V1 m
- ;; etype ".": ^- K* G- W$ U% {9 r) X
- ;; )
/ }& z- F3 u u9 z8 N - ;; )
% @9 _4 b5 D T6 u2 |% X - ;; )
w7 N$ s. f; L7 g6 N8 ^ - ;; )
9 F% K$ l/ X6 n; U/ x8 A# {3 \8 H - (ai_undo_pop)+ ?1 n. r/ O% Q6 ]7 ?6 _
- )
( P) H' G9 U. R* E! a; E# t) { - ): ?$ H1 M _- g2 Y
4 a F! W6 e& N1 j' K# I9 v- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle9 c- I/ n+ c$ {2 ]: t- o0 s
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
- t9 U r* v! l" @4 a - ) ; to what we started with; T% T* \& f. \' [% I: k* n/ l
- 3 Z8 a5 j9 s4 d
- (setq *error* old_error)0 I& _0 b k& s2 L7 s: b
- (setvar "cmdecho" old_cmd), t" A J, R0 l' v" I4 @
- (if (not reset_flag) ; if object was modified, then) d ~5 d7 r% m5 x9 m# I4 P5 e
- (ai_return ename) ; return it's ename to caller( B0 c0 ?' L# |0 U0 P
- )
0 K4 J- M( M# }! ~$ j& B3 } - )* W V" P, ?) D& m$ `
- & @) u6 k/ _( _ `, l2 i% |
- (defun checkForLockedLayer (ename)& Q5 t$ [% p) ]9 w/ I8 C% p- P u
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))1 ?2 _0 X* Q$ M/ j' ?6 q
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))' u; b" z3 J' X) a0 s
- (if (= layerflag 4)8 C0 L2 |* J$ h
- T
- |1 ~( O3 i$ ^- Q( e5 H, ~ - nil1 I& h$ h: H; Y# E' c9 \
- )
* i- }! L! H/ w' W9 g - )2 S0 r5 Q* U- {' @- q' Y+ P& @
- - X$ s5 a- ?' f/ Z/ p
- (princ " DDMODIFY loaded. ")
" F. i2 W" z* g9 b* a - (princ)
9 E$ P8 f- O& W, G) P - ;;;???;;;---------------------------------------------------------------------------------------/ Y; d5 K* y/ k+ f( k7 L) T9 X
' N% Z; E4 P/ ~ T8 X- ; Next available MSG number is 8 , R8 Q8 T! ^1 b2 p1 k/ t
- ; MODULE_ID DDUCSP_LSP_
4 |, d8 q3 w% Y' N - ;;;2 I: J; ~4 f# g2 U- y5 [
- ;;; dducsp.lsp
$ ~+ n9 y0 D. J' O( w$ n - ;;;
# U3 w; `+ V/ W! P U5 g$ _: D! e - ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
3 c1 s4 o6 _2 ^# r - ;;;
/ P |% ]" ?, H - ;;; Permission to use, copy, modify, and distribute this software
! ` s0 N0 Y) Z8 p l - ;;; for any purpose and without fee is hereby granted, provided
3 }1 F! h; D$ P1 A - ;;; that the above copyright notice appears in all copies and) n2 R. d/ g }5 G2 A3 D
- ;;; that both that copyright notice and the limited warranty and4 v& Y. r8 f- s6 e
- ;;; restricted rights notice below appear in all supporting
; M3 Y. G* t5 d) l# F - ;;; documentation.
" {' L0 M) m* O" ]& N! j( [5 e - ;;;
4 b: v3 W0 n* `& |9 B - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
6 x+ |3 d. n, I2 t" W' Y, N - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF: }' X8 _- h Y) L c/ T
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.8 J8 `) `, O7 \3 G2 p$ S
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
$ S! s9 G9 g0 ?; J* ] - ;;; UNINTERRUPTED OR ERROR FREE." F$ [' |' B# u3 Q/ `$ a
- ;;;: v: U q# X7 G2 z: K9 H
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to7 A7 e' ?2 r" d# }
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
% v; m* Y, ~2 p( t6 r- B2 q - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 3 M# s$ M6 \8 s: @
- ;;; (Rights in Technical Data and Computer Software), as applicable." F0 `, ~' y. Y+ U v, \2 S
- ;;;
$ L0 ?) i, v5 T2 g - ;;;.. }! `$ A- U+ J; V% U8 a
- ;;; C:DDUCSP - User Coordinate System presets dialogue.
) U- q0 X7 h. K% Y7 n% T - ;;;
. C2 d3 B0 h6 X* U, W0 { - ;;; Uses DDUCSP.DCL for the dialogue definition. The i! R* j e# j# }- U: S r
- ;;; slide images are in ACAD.SLB.: p9 x: z* c1 G3 a
- ;;;
/ b2 I" k8 D F& u0 v1 O& K# X# X8 a) l - ;;; ===========================================================================
# [ A3 [: n* ^9 t$ F* A) I% U - ;;; ===================== load-time error checking ============================
0 n$ d1 N& Y6 x0 h; g+ r4 l - ;;;" ~& g+ l) b( S1 `5 C
- 1 w8 T' Z' ~' k
- (defun ai_abort (app msg)
* J, {3 Q6 p8 t/ w- z: x( k - (defun *error* (s); y5 A& \. E; D# x1 T8 o) F
- (if old_error (setq *error* old_error))
6 X8 M _! V9 m3 H3 r a5 @ - (princ)
9 k) [! I# u4 g- j - )
q9 R/ h8 \2 F" e - (if msg% `) d1 _, k$ N7 b; K# Q
- (alert (strcat " Application error: "4 o" e: K: X/ ?; Y1 J
- app6 o) ?0 l. A: ]5 J
- " \n\n "! [: N/ S0 Q9 e3 x
- msg
/ T2 W9 D, Z/ J$ p. q# ?) A - " \n"
' [ K( n; J% U- I* G$ ~8 ~$ z8 \6 y - )
# }% m5 P$ K A* n; h: \ - )
: u; v6 s) O, ` - )
" V3 ?. O/ C# H5 V" G: D - (exit)
+ z. B) O, z# Y6 P - )
# Z. n/ u. h- ^9 A; W" _0 V
4 k$ R7 j2 }6 `' ?$ m& |/ L- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
3 I" d7 H& h- e+ b9 ~1 N& c4 G# } - ;;; and then try to load it.
% p) p( p- ]6 P( j2 X" \ - ;;;
# g+ |9 E, X0 y! ^ - ;;; If it can't be found or it can't be loaded, then abort the
0 _3 R$ p7 m- H - ;;; loading of this file immediately, preserving the (autoload)8 k* s- H1 U8 U g
- ;;; stub function.
0 Q. S5 K+ F; H0 m! H( R
7 i4 s1 Y; |, `+ V( n- (cond4 b. E1 z+ H- r; t1 d1 \/ _
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.6 d* `- a r! Z) e
3 ~, b" z; H0 J8 I- ]- t- ( (not (findfile "ai_utils.lsp")) ; find it
* ^' ]: `- ]' {# c# C; S - (ai_abort "DDUCSP"
) R$ m r, {+ x$ `/ B& L# O - (strcat "Can't locate file AI_UTILS.LSP."
, C$ U& y0 o P; Q5 O - "\n Check support directory.")))
- X4 Z/ v* Z* N7 \ - ( ~6 \9 {$ A" f1 |$ r6 f4 b
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
. s% p3 f( w/ c$ d7 e; c: W - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
0 d$ p! E/ d7 w+ x0 b, v6 _9 c7 [ - )
, X+ a u2 t7 m6 M0 | - 8 E g8 U) I1 s% k% W" X
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP7 N( f# `, p% N/ q
- (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
1 S* b1 L L7 _! ^9 L3 W$ b- P - ) ; ai_abort's alert box dialog.
! q0 s9 a8 ^: z# W6 I+ T" S W - + X) Y- V1 u! y4 l/ ~/ M! |
- ;;; ==================== end load-time operations ===========================
7 K$ E$ _6 i" f4 O- d
; r8 l7 G, F! N* I; u8 k- (defun ai_ucsp_start ( / program) i" |& W: y* ]5 |4 M
- ;; Get program name/ ?6 ]/ T3 ]" S( ?& A2 `! G
- (if (not (setq program (getvar "program")))0 ? F7 F- y3 } ~8 x- A* n$ Z
- (setq program "acad")& c8 K) \- n- B8 j/ f5 r7 Q- C, _
- ). t% I( D/ [% T; H
- (foreach v0 '("world" "left" "cview" "top" "front" ' E0 ^+ U4 }7 c. Z- t
- "bottom" "back" "right" "prev")* P% ?/ Z3 O7 H3 A8 W+ G' f" h
- (start_image (strcat "ucsp_" v0))( X8 @# Q1 O2 G. l1 O1 r! z
- (slide_image4 o( `1 d6 A5 P9 y8 i1 r
- 0 08 t+ M* B' V7 e- L5 y D
- (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)" A; f4 v' o4 B; Y% E8 }( p/ `
- (strcat program "(u-" v0 ")")( }: H& A5 \& s( X
- )
1 T) ]$ }' {- B/ z8 i" j0 R - (end_image)/ R0 a9 d# `8 \3 T
- )
- U! H* G- z* S( R9 ^ - )
3 q) ^2 I. M: o& I% r! {
- Q) A" I9 T l+ |% _0 T- (defun ai_ucsp_set ()! D: E# [ {& @ e8 `
- (if ai_ucsp_sv8 y5 B8 W. N% s* n
- (command "_.UCS" "_V")! C+ _7 Y/ u2 X& x S
- (if ai_ucsp_prevs
2 u7 d$ J% w. y$ `0 I - (command "_.UCS" "_P")5 i8 r' _% _7 H' I1 ~
- (if ai_ucsp_chg& n4 z/ h% V7 S1 E
- (progn
# G7 C9 d' z4 b/ X - (if (/= ai_ucsp_a "*")( N8 k' ]: g9 ^6 D9 W# ]
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1)); ]' F% ]! f, M- y) a [
- )3 l/ u- v# J. e6 |4 ]
- (if (< ai_ucsp_pick 6)& J! ^4 l# c% o3 b2 v. E9 q' A
- (setq ai_ucsp_set0 "@")& ~; Z$ h/ E: j& Y/ ~
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")9 w4 o6 S# D3 N& ]4 s' p9 s! y" i/ Z
- )9 ?8 [8 X3 }. C9 k" _: ?% `& _
- (cond ((= ai_ucsp_pick 0)$ V& Z0 U) k5 L0 ]
- (setq ai_ucsp_set1 "0,-1,0"
/ ]3 W% q! }8 C' P4 [+ B( o8 F# [ - ai_ucsp_set2 "0,0,1"
3 f) }, k. j5 q+ b& Q, O- g S - )
6 A' L3 G$ Q! N* M4 @9 o' Z1 a4 e - )
) `% m$ N4 F5 U1 _ i - ((= ai_ucsp_pick 2)
1 Z4 r C: ?3 ?1 u - (setq ai_ucsp_set1 "1,0,0"
" `- }: W, W- f7 } - ai_ucsp_set2 "0,0,1"/ A1 ^2 A) B3 u/ E$ [5 x3 H) L
- )
+ b q5 \6 q) V7 O5 s1 S - )6 ?$ B; M: v4 l7 [& v2 ^: S
- ((= ai_ucsp_pick 3)1 A) { {/ f: ~ I7 X
- (setq ai_ucsp_set1 "1,0,0", }5 w" o* f! X2 r! \, ^+ E/ o" J
- ai_ucsp_set2 "0,-1,0"6 C) O1 n. b) v1 S
- )
2 l& G" D. a! x, U - )
' F$ B+ G7 ~1 b0 q( {* y9 ^ - ((= ai_ucsp_pick 4)
1 R0 f8 Y( {2 \% }3 k - (setq ai_ucsp_set1 "-1,0,0"- O U. y6 b/ q6 D9 l* \3 R
- ai_ucsp_set2 "0,0,1"
6 V, B& c# c* A9 M- ?4 \' I - )# c/ v% Q5 [# H) L) \8 @
- )- N1 A: I }% X$ d
- ((= ai_ucsp_pick 5)0 ^( E9 \9 f% j6 T! F2 l
- (setq ai_ucsp_set1 "0,1,0"
* T3 y( G D' ]& e" S& j - ai_ucsp_set2 "0,0,1"' a7 e9 X1 I# X; p
- ): Q U. x1 ~6 T6 j
- )" n3 Z3 [. b1 ^ T0 n
- (T' P( J3 ?, ^7 b+ q& V* e
- (setq ai_ucsp_set1 "1,0,0"/ _0 L; M H+ `4 @# }2 T p3 Z
- ai_ucsp_set2 "0,1,0"
- n+ \ Y' J9 o* _) p. ^ - )
& n; L& |1 E2 g* T' V( c" b - )
6 }* a$ R- V+ p' A: L - )
3 W$ c2 f' r. v9 S - (command "_.UCS" "_3P" ai_ucsp_set0 % w o5 x! N) C8 y8 s% w- q
- (strcat ai_ucsp_a ai_ucsp_set1) ( s1 J% [5 g$ a. @* h" A6 ~% x
- (strcat ai_ucsp_a ai_ucsp_set2)
+ D" x" Q: G+ p$ p - )
. d& H% @6 p5 ~2 J* M( c - )) O1 y! e' D9 V+ f* c1 x* }/ G
- ) e# _ K8 ~" y0 q' F+ e
- )5 q6 [) g N, X' M
- )# t# a2 U) ^4 a5 N+ z7 B, J# [ l
- )
, s8 Z6 X+ F+ S3 V
/ K/ ^; z; K/ @$ W! ]- (defun ai_ucsp_p (val currtile)
* W. \; M5 p( ?, O- k* O - (mode_tile ai_ucsp_currtile 4)$ z$ [3 v8 B" A. Y. m' A6 }; |9 H
- (setq ai_ucsp_pick val
* {: J4 p- p6 N - ai_ucsp_sv nil/ c4 Q5 D" E4 v9 Z2 _
- ai_ucsp_currtile currtile
. b, M3 c" K5 g - )
2 g, f6 Q5 t. e - (if (/= val 1)! U1 |; U9 d4 Y* J& `) z
- (setq ai_ucsp_chg T)
/ g5 P& X& x7 b0 E* ] - )
- `, \$ n6 [5 F' C: G* k# R7 D - (mode_tile ai_ucsp_currtile 4), _/ ^: `. }* X; y
- )1 G; B J/ p* S/ U0 |) u$ M" \
- 2 \( i' x; a% D/ Z g+ R- d3 s
- (defun ai_ucsp_swcs ()9 t3 d) }; F" c4 C4 ?; `
- (mode_tile ai_ucsp_currtile 4)
! [+ f5 `. V8 s" T/ D# F9 S - (set_tile "ucsp_a_wcs" "1")
# C ?0 y7 t* ?) E( }4 K6 U - (setq ai_ucsp_pick 6
3 v1 S- d7 o! W5 g6 o: ~- B - ai_ucsp_sv nil, J' J: ` h9 p
- ai_ucsp_currtile "ucsp_world"
2 C6 o7 p! H8 j1 i - )
0 l$ p' c: a, q/ t- j8 T# g# a - (if (/= 1 (getvar "WORLDUCS"))
! @, p, e/ W5 b: z7 i: H - (setq ai_ucsp_chg T)5 Y; T& I3 C' C8 h
- (setq ai_ucsp_chg nil)# U& K2 w' W4 z, r) S8 a
- )( z- O5 Y! Y1 L% s: ?
- (mode_tile ai_ucsp_currtile 4)
4 n* X( e9 L2 u5 \/ Q1 W - )+ ?: h$ P; \0 `- `- f- V8 n5 ^
: g* `. ~# W5 K. ~1 s) L1 f* @- (defun ai_ucsp_cview ()
5 B, Y; \) E+ e" e4 C) ~5 E4 } - (mode_tile ai_ucsp_currtile 4)
! S6 t: N/ e, S& E+ G - (setq ai_ucsp_sv T
0 R. [ ]8 x o8 v - ai_ucsp_chg nil ?- n8 ]! M4 ^! E+ ~
- ai_ucsp_currtile "ucsp_cview"5 y0 X0 U/ T) I( H
- )
) L) i# W5 n: [/ }6 D' {3 E5 c - (set_tile "ucsp_a_wcs" "1")
; g7 N7 w" U9 y% C - (mode_tile ai_ucsp_currtile 4)
0 B- o8 O, V5 b- D: M/ E - )
6 b. p6 B: R9 _/ e" p1 N - % X* {) Z! y% h) `: ?, W
- (defun ai_ucsp_rucs (typ)7 ^. `% X' O$ l' w
- (setq ai_ucsp_a typ). U; z! _/ U0 h' w+ n7 ^3 E
- (mode_tile ai_ucsp_currtile 2)
/ P$ K0 L7 h! L5 u - )
. W# B' ^% M4 D. d, V: }' W6 G
) t7 h0 J2 X: o0 _- (defun ai_ucsp_prev ()' _( ]4 `6 g. E9 ^. u& k
- (mode_tile ai_ucsp_currtile 4)! M$ W; m! v( d; H/ k
- (setq ai_ucsp_prevs T
$ s5 r4 w3 N* ?" E - ai_ucsp_currtile "ucsp_prev"
* E% z: g) A! @) r: k9 R" c - )
" F# H/ z& ^5 r - (mode_tile ai_ucsp_currtile 4)
6 w! x1 W' _, u - )
/ A5 l, d5 c5 m
" F# O H" N- i# U- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
: O# c# |8 _- m% r! V - (if (not (new_dialog "dducsp" dcl_id))$ V6 P a: f& Z, ^# n! O% Q
- (exit)( \( c1 ` s0 ~6 n' H0 k7 q8 O
- )
( G/ ?7 F! z7 w/ Y& s- M. @ - 7 j, I% r8 y3 z0 ~9 S, e( s
- (ai_ucsp_start)% o0 S+ @. C" \: z
- (setq ai_ucsp_a "@" : G7 H6 Z$ E% E9 ?! n6 |
- ai_ucsp_pick 2
& \: t4 @9 ]: \& y& ~ - ai_ucsp_currtile "ucsp_top"" D4 X+ T; a) }& W- p b
- )
6 c E# g; d% [- v- o. P j/ b9 G" [ - (if (= 1 (getvar "WORLDUCS"))3 _# A3 M+ E& z
- (progn0 k( a% o3 I( a4 A6 u3 H, u
- (set_tile "ucsp_a_wcs" "1")# Z# {: B/ M! ]: g
- (setq ai_ucsp_currtile "ucsp_world") t+ j' a* S! b7 h
- )" ]' j$ \9 J1 ~( _
- (set_tile "ucsp_r_ucs" "1")9 `5 v9 e+ k& }0 n- x
- )
" r* Y5 G) _( G4 W2 m - (mode_tile ai_ucsp_currtile 2)
) L! n5 `; k5 X& }2 _% y& L9 \, B( { - (mode_tile ai_ucsp_currtile 4)! i7 z# m8 b0 z) L
- (action_tile "ucsp_world" "(ai_ucsp_swcs)")$ w& V: ?+ B! f% z
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")
6 R! j/ h7 d5 U, ?: n6 E - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")& [# p" I6 O9 C3 f: Q
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")% g% X( B/ F8 U5 w8 _
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")9 i1 L- J% Q: X2 u) ?
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
' c3 ] ?$ e% H& e4 V - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
8 H/ j, _" O: R/ o+ W/ [ - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")+ A0 U) E0 W J% r9 l
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")) [& B1 R5 T6 [' ]! }5 U! _
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")- {& d3 |$ r( ?* ^% x
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
2 j& [, `* {& P9 o! x - (action_tile "accept" "(done_dialog 1)")3 w. p% ~( r0 }0 A6 X, U
- (action_tile "cancel" "(done_dialog 0)")
2 S: z/ L o# W- x4 d7 k - (action_tile "help" "(help \"\" \"DDUCSP\")")
3 h7 r/ y J3 P - (if (= (start_dialog) 1)
; n7 l' @6 d. {, }2 X; I - (ai_ucsp_set)$ {2 n8 j. F3 ?& s' |. C
- )
$ h( \5 t' v! [ - )
* H) q# Q: o* t& g0 m& L - 0 t j/ U5 ~( Z% _8 a4 C
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs ' w9 _( ]; O [% l D9 R
- ai_ucsp_sw undo_init)
; K3 X- g M+ V% q$ l) R8 v
! j. x" q8 w' q- H: e; l- ;; Set up error function./ V1 ~: M# ^% R# z L
- (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho" p; Z' U. n+ e7 C% F6 @& D0 ?- D2 f
- old_error *error* ; save current error function
9 u$ r# t8 |0 G7 F+ O - *error* ai_error ; new error function
" `& J3 r% W9 I( H+ k% K1 q* ~ - old_osmode (getvar "OSMODE") ; disable OSNAP for duration7 A0 ~# ~6 g$ P# c$ X
- ), X/ w9 c G0 o4 ^
9 ?8 e& Y6 b% V0 @- b' _9 |- (setvar "CMDECHO" 0); {7 o. H3 E3 e ?) P! _) p" [
# X0 J; w) f9 E1 U0 N+ D- (cond) M7 @( r! G! J# A) \ u/ H' {
- ( (not (ai_notrans))) ; transparent not OK
( o7 G( j8 t! D$ l7 l - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?5 i3 Y9 U' Q& w* ^- s( B/ B' N% {* A' U& g
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
+ v' g5 i& B- W - (T (ai_undo_push) {! {0 V. s7 b, @% t* ~7 r i
- (setvar "OSMODE" 0)
. P) r7 c B& v" H1 d, o - (ai_ucsp_main)
: I3 P/ W* i( k0 P - (setvar "OSMODE" old_osmode)
( D0 P5 q" j- r8 d* C3 w Q - (ai_undo_pop)! y0 ^7 R# o2 F; N2 Q" {; b s9 u
- )
, O7 H; f I; S+ a+ I - )4 U$ I; L! |" l5 S, Y' P3 i* [1 D7 G
- ) `. c6 n% q# L3 n5 x& g
- (setq *error* old_error) 7 i# g$ B4 o! J, R$ |/ n
- (setvar "cmdecho" old_cmd)% s7 `- K# @' n0 P. b. z0 J4 P
- 5 t/ t6 N( k6 o+ P6 A
- (princ)
. q0 g# ^0 [0 D8 q5 \1 G - )% h* c3 q. k' l. Q- i2 S
! h q7 y0 m# a g0 |- (princ " DDUCSP loaded. ")7 k4 J; G8 s2 q0 M( i+ [) p
- (princ)
f0 \, |5 S! G' i+ }5 f" q. I" M
" W2 H( V; ] v* W- ;;;???;;;---------------------------------------------------------------------------------------
; V: J: c9 U$ }- N5 `6 s - ; v1 H& x+ f, c1 ^" l
- ;;;----------------------------------------------------------------------------
3 t/ H Y9 p$ ?8 o8 N1 a" N - ;;;, G7 y, @4 k- t1 b
- ;;; EXCHPROP.LSP 2 }4 W3 J. V, }
- ;;; Polyline and text modification capabilities added by
# G% h% }/ o: v3 G& G. y& C - ;;; Randy Kintzley ' u/ u. v) W1 T
- ;;;
: D4 O0 l q/ |$ L. L, ? - ;;; Copyright (C) 1997 by Autodesk, Inc.
+ D5 I, o) v; n- [+ A$ I( t- { - ;;;0 z. T' \1 _- B8 a* K
- ;;; Permission to use, copy, modify, and distribute this software
b4 f% `# R1 X/ X6 V" l) v; R - ;;; for any purpose and without fee is hereby granted, provided
1 Y9 \9 V# w) y0 K2 K4 g+ f4 l - ;;; that the above copyright notice appears in all copies and6 u: h5 x4 K2 E1 E2 k N
- ;;; that both that copyright notice and the limited warranty and2 C: W0 ~$ h- C) ]- P5 E( z
- ;;; restricted rights notice below appear in all supporting1 N7 I; i+ c8 D$ i% O
- ;;; documentation.
) U. x# O; x( |2 j4 E5 C. X - ;;;6 D" l: L$ _) y8 q/ x
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.- W+ ^8 l% |$ v) r" U' H
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
9 D* H" Q) T; n% W - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
}: l9 q( a3 ]$ O - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
! U; V3 C2 F$ w - ;;; UNINTERRUPTED OR ERROR FREE.
3 r5 E9 ?; `; N- K - ;;;9 x- z, A! w m$ ?9 ]
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to7 s! o) X! t* Z" Q6 y: T
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
9 S/ {( ^2 ` y" z* s - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
! _( N1 l N4 f1 r) j$ ?+ P+ Y# O - ;;; (Rights in Technical Data and Computer Software), as applicable.
, v8 v; W) X0 ~' R/ R - ;;;, P& K; A! J# o. V' V
- ;;;.
+ T+ D2 q) a1 L T3 f# F- b - ;;; 28 February 1997
. x+ Y) X* A- b, z3 d - ;;;7 f& k5 |- Q+ K6 I5 F
- ;;;
& Q# C; E, Y: K* d7 f0 R& i7 Q0 g - ;;;----------------------------------------------------------------------------" ?# V! `* O, T5 x
- ;;; DESCRIPTION. A6 c# j( R- G) i5 S& O3 c2 G' E
- ;;;----------------------------------------------------------------------------& e3 ]9 o) \- Q5 P( D# x
- ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
' I2 {$ N: L- U. g: y G0 N- _ - ;;; command gives the user the abilitie to change several characteristics
, e n7 a: W- U: n# D - ;;; of selected polyline and text objects.
, e" J/ D% `' P6 e4 S - ;;; The style and height of selectected text objects can be modified ; c% t$ t/ X1 \8 {2 m% X
- ;;; (including text, mtext and attribute definitions) as well as, width and # ~$ X- n" r6 [, w" ^7 _+ p, w
- ;;; elevation characteristics of selected polylines (includes lightweight and
- q/ o; g# c7 _1 J# |# I - ;;; traditional polylines.)
! b9 {' @: E4 Z - ;;;----------------------------------------------------------------------------
2 ]0 F3 L5 K* q: s( t: m: V - ;;;----------------------------------------------------------------------------
+ Y; v( C* D! Y) z - ;;; Prefixes in command and keyword strings:8 M) W( q% _$ j- C
- ;;; "." specifies the built-in AutoCAD command in case it has been
6 K6 |9 I! `+ V& F! N D - ;;; redefined.
4 N: ]9 l3 t0 n0 e9 F1 x" T: {" p$ x8 ` - ;;; "_" denotes an AutoCAD command or keyword in the native language5 J: p H4 J+ f/ h
- ;;; version, English.9 G5 P: j6 w, c4 U8 O
- ;;;----------------------------------------------------------------------------0 f, d1 i/ j* H
- ;;;
. D3 Y7 i! Y4 p# |7 d7 n - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5 _2 P! ~; M* a- K
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
% j( X0 w$ K9 Z# J! v, ]1 \ - ;Functions created as result of loading file: exchprop.lsp( v7 a/ E& r A+ J0 w
- ; DDCHPROP2
( A3 i8 L' v _ - ; DDCHPROP2_INIT9 {6 B! h' B% O+ s
- ; DDCHPROP2_SELECT
6 O+ i* \2 z& q6 D7 K" k7 A) d - ;
3 b# b& u/ C" H- s - ;Variables created as result of loading file: exchprop.lsp9 d- x B2 f# K7 l* V1 s
- ; OLD_ALLOC* @7 T) j: w0 W) u
- ;
6 t; J! d, U; j3 v9 O - ;Functions created as a result of executing the commands in: exchprop.lsp
" L1 _, _9 y0 y$ V - ;* V: m2 ~( c5 Z
- ;Variables created as a result of executing the commands in: exchprop.lsp3 ]$ }2 U. G: h
- ; AI_SELTYPE
5 S, b/ ]9 W/ F* b - ; BONUS_ALIVE
0 V2 Q: P5 S" n% f0 M) g" {+ q - ; BONUS_OLD_ERROR
8 b+ D7 Y' g$ z' ]( @ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4 o. E# i/ L: }. {/ @ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;& [4 a* a" p/ H: M
- - Y$ |2 Z% a. T' ?6 n8 S" j. P
- ;;;9 R |6 K3 J; |5 g& t& u
- ;;; Avoid (gc)s on load to improve load time., @: J1 ~5 ^% g& [
- ;;;
4 ]( Q0 x7 u* ~7 x - (defun do_alloc (/ old_allod new_alloc)
! d: b6 ]+ M5 d. J5 {. N! Y3 d - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))2 |" h0 F/ \% N2 k
- (expand (1+ (/ 4750 new_alloc)))2 I: L; P: r: c4 {
- (alloc old_alloc)
- r$ w2 E5 K1 _! v( t X6 ` - );defun
' X3 S( E Z7 V" k, I/ @ - 3 {& N4 n! G2 E0 ?) n
- ;runs at load time - rk
' H: Z; Q2 o4 E5 F$ L' H - (do_alloc)9 h3 R, i2 E; Z7 @; ]1 r
- (setq do_alloc nil); ~/ y" h1 p4 v9 n
- ;;; [: }' `0 [# D6 ^' D
- ;;; ===========================================================================5 {1 H3 I) s( P9 }5 D( L. V
- ;;; ===================== load-time error checking ============================2 K8 X) B. l l6 C. o
- ;;;
6 l% e4 l+ o+ ~& \( t" \
" r) Y5 V1 [" m; Z. e/ h- (defun ai_abort (app msg)
! ?4 D5 r* N" c/ X0 ?$ D - (defun *error* (s). |8 R% x# }8 j5 Q( O4 ?( N: o, }# R5 N
- (if old_error (setq *error* old_error))
9 @1 p( m2 L/ r: U4 n/ B - (princ) U9 Q9 [: u5 b1 y, s- d
- );defun
* ` j* z0 D: M2 A, D! W: Q$ q# C - (if msg) k& j! C+ r1 h/ z
- (alert (strcat " Application error: "( j; \$ ?; R4 F- z: B4 W
- app
2 A4 j. H8 r* }# e+ m, t - " \n\n "
- X7 N7 |' A. f' X* N - msg
! k1 ?. f. {2 P4 ^" v - " \n"4 |$ _; D! S% M+ }7 t7 d1 u
- )5 H% _- j% A/ y! j8 \7 t4 \
- );alert
z/ a0 s' [: t( ]3 Q5 x. _; G - );if
) T2 h! A0 e! D) w0 m$ ~ N Z; b - ;(*error* msg)% y: X$ L3 F8 ] ]
- (exit)1 V5 Y" `+ K# S) R- J; t; u
- );defun ai_abort
8 v3 G- B8 [4 Q8 ?1 l7 S - & ^* o5 r, [7 l+ n) O
- ;runs at load time - rk
0 |$ \% v4 C4 x9 k - ;(if (and *error* ;added the if wrapper around this - rk.
. {) H7 `8 R% `) l8 Y - ; (not old_error)
b# u/ e+ e4 L* f - ; );and , U+ Y2 M2 M! u$ l8 @) W1 }
- ; (setq old_error *error*);setq
3 x2 ]9 l0 m* @3 |% J) K4 S - ;);if
* A9 o4 A& |/ u; s& a& q% Z - % h' B. b0 x6 c$ J1 i8 C; I
0 {& X. I6 w- \4 S- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,- f2 F/ a! s( Z; {1 ?' G: x
- ;;; and then try to load it.7 [" \5 P* e, U
- ;;;; p; w1 C' ?5 v* C& b
- ;;; If it can't be found or it can't be loaded, then abort the
/ Z) I( } ?' w2 {& N: [! F1 K - ;;; loading of this file immediately, preserving the (autoload)1 u9 |2 A) L }$ Y
- ;;; stub function.
$ n# ~& y1 l F: R H; m
( S* Z/ ~3 i* P% R% R- ;runs at load time - rk./ x+ } ]; L6 C
- (cond1 ^+ P. _+ f. Q5 Z- h" Z
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
7 W0 F2 e! h5 G/ D2 ?$ T. a - ( (not (findfile "ai_utils.lsp")) ; find it5 p* d( ~+ V' G5 Y: u [/ u
- (ai_abort "EXCHPROP"
( `' h: w/ T0 }! V3 l - (strcat "Can't locate file AI_UTILS.LSP."1 c* Y! {. m9 c3 l
- "\n Check support directory.")
3 n; h; p2 h& F, H" Q - );ai_abort
6 X0 u+ c' R' r4 c2 M( s - )$ r1 b' e0 j" K! k" M) O) c. O6 Z
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
* w' a& K% w5 E; ~3 h$ y+ p - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
5 q. Q0 d y* _6 q - )& H% j' ^0 Z3 n. F6 D* T$ O
- );cond close
- K6 v/ p E k* n" ^ b
7 g6 g& W2 t& Z- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
- d2 Q! ]5 N9 h# x V0 a - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses; e! |5 J7 c1 _+ _5 S$ t% u
- );if ; ai_abort's alert box dialog.
8 b% A+ G$ A, q) q, R j7 y
1 z V& D8 g2 D3 o7 }1 H7 F) d- ;;; ==================== end load-time operations ===========================2 g* n s3 @% j h, X6 d2 {
" v% U9 u; t- k8 O, i9 }7 ~5 c- ;;; Initialize program subroutines and variables.
+ H& @0 M/ {3 s R - 6 h5 p, D# K4 R0 C; y
- (defun ddchprop2_init()8 I( `( F9 Z% H6 S0 ~
- . N+ }3 j: M$ G1 T) }; k% |' k: x7 \
- 5 ~; J0 G6 G* A5 i+ ]
) i" n6 F' }% F1 [" X( o# l- ;;
@2 V# h/ m/ G8 _' U8 a, ~# b - ;; Define buttons and set values in CHPROP dialogue box/ [% H/ y& P1 Q5 p9 p3 O" @
- ;;3 i- {: c! v3 n! P- K# T' e5 N
- (defun call_chp2 (/ cmdact p1 p2)$ s: G1 e% B' w; j3 F' E! ]. ~
- d8 M8 d0 g% ^( f( g
- (if (not (new_dialog "ch_prop" dcl_id)) ! f. [; P+ l( p6 n' J
- (exit)
: {7 s5 q. `# z - ) c# h) q: D; G* }6 C
- % Y; i2 B- t' t
- (set_tile "error" "")
% N. N7 ?/ e3 v% ^ - ;; Set initial dialogue tile values; \! G1 D; x) f: X' U c- O
- (set_col_tile)
( m K1 b% {. T/ D2 q% t8 F - (set_tile "t_layer" elayer)$ ? @" U& o3 A( B
- # Z5 L( r- z/ U* f: g) h
- (cond
: C0 O/ b l1 F+ P - ((= lt-idx nil); a4 d0 Y2 ~, s# O6 F
- (set_tile "t_ltype" "Varies")
% i9 u* Y/ U# E4 ^$ ~ m5 k - )7 t, J3 S/ U4 m6 H* n, L( @
- ((= lt-idx 0) ; set tile "By layer & layer linetype"0 w+ L m- i Y4 {9 i [8 Z! Q! y' z
- (set_tile "t_ltype" (bylayer_lt))
5 {% N% w- N+ B( N! u) [ - )' A2 X1 r/ O N* b1 t
- (T
c: T2 w1 E r4 A6 Y - (set_tile "t_ltype" (nth lt-idx ltnmlst))
! C) w9 ^3 ^) M | - )4 Q& C, z% E( ?% j( S- |0 R2 E3 f
- )
& v/ Y: q8 s4 V$ O# [ - # y8 \& o% y! ~
- (if (or (= ethickness nil)$ J1 \" Y y+ z
- (= ethickness "")
; m- f+ k, D1 P1 o% x6 R* T: v9 y- Y - (= ethickness "Varies") 5 Z2 @( N. I2 k/ L# i) z: n
- );or7 U: \% e' N4 ^2 b
- (set_tile "eb_thickness" "")
+ U7 R* w% {0 x0 T8 S, r4 @9 Z* E - (set_tile "eb_thickness" (ai_rtos ethickness))2 I3 Y4 M% n+ y2 c" \$ `& Z4 I
- );if
& F" l( y) Z2 I0 p5 q9 S1 B - (if (or (= eltscale nil)
5 O+ i" `' f& I* ]! s8 S$ m - (= eltscale "")
7 N6 N( \- J$ _6 c# k8 q' P5 Z - (= eltscale "Varies")
- w/ y1 U1 E$ @9 w3 K& j -
8 S/ d4 a# o, s - )
+ }- l: M) q u! ^ - (set_tile "eb_ltscale" "")4 p# B* {* h6 [1 \0 f3 P" K
- (set_tile "eb_ltscale" (ai_rtos eltscale))
/ r, {8 ?3 f* {& k4 p! \3 c8 x, d2 ?9 ` - )) C$ G4 D! P+ H" G& T
- (if
& a/ ?! a, C1 q' L" U2 o - (numberp ewidth)( k+ E& K+ D% M. s) {! Y/ z$ Z5 l) o# c; L
- (set_tile "poly_wid" (ai_rtos ewidth))4 ?# K5 M& V9 w t. o$ Y! D7 e
- (set_tile "poly_wid" ewidth)
n! A! U9 ^5 u% Q7 G; T4 d" y - )
5 e; k" q# n. R9 D4 C, g2 L5 r - (if
; @$ `9 I% X9 x - (numberp eelevation)9 X7 x! l# S4 p" o/ w2 z( o* N
- (set_tile "poly_elev" (ai_rtos eelevation))4 N' A& J( b7 G% ]4 D
- (set_tile "poly_elev" eelevation)4 N2 N* W$ o$ \) n% Q/ G
- ), s1 K& x; l% Q8 @+ y1 H
- (if5 j" d. \7 U) G# P/ D5 o# C ]
- (numberp eheight): o; r' [" T5 G' Y! d( s
- (set_tile "text_hgt" (ai_rtos eheight))) M2 U1 I0 ?& @
- (set_tile "text_hgt" eheight)
! n2 u0 @# v3 K( |4 e4 s8 B - )( a5 c% V9 o6 @6 d" G
- (if (not estyle)
3 n5 F5 A; O5 w/ L5 P - (setq estyle "")6 \! m" u1 f; ~
- );if ; X, j( e/ S* k; A& \1 m9 i* f
- (setq hair_style_list (tnlist '("style" 16)));setq
) T% ^9 H ?9 \& H- X1 E7 j5 r - (if (not (member estyle hair_style_list))2 c$ w! O5 |, r% I5 ?4 ?8 o9 R' X: L
- (setq hair_style_list (append hair_style_list (list estyle)));setq
5 F! x# } B* P' O' j/ A - );if
/ a' i+ ~ N, s( k+ @3 I6 x9 G4 H: G
7 Q+ |! Q6 N, b9 s' g: }- (setq hair_style_list (acad_strlsort hair_style_list));setq) }7 z; q M; S7 u( A# m
- (mpoplst "text_style" hair_style_list)4 f, `9 N3 w9 W0 r: W' |, {
- (set_tile "text_style" * X2 S8 t, ^4 g# a ^" t! X
- (itoa (position estyle hair_style_list))
9 F: o+ @% m% I0 t+ | - );set_tile
6 c! I5 I6 w! R3 J* i. c/ [ - # E% {5 F( B& S' ]
- ;; Disable tiles if need be... ;@RK( G9 d; c2 [& T( o9 E
- (setq a 0)
! b8 _( `9 M7 g N0 D% p& e% x - (while ( < a (sslength ss))
: a' e0 l u6 d a* x - (setq which_tiles2 R$ S! S! M U* a7 Z, a$ \
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
9 Q2 k" `) D" f0 R n0 v) ] - ; i$ o* E0 V* V o7 y, u$ G1 P: j
- ;; If all fields are enabled, don't bother checking anymore./ ]- Z( ~) c5 p# w7 I
- (if (/= which_tiles (logior 1 2 4 8 16))7 R3 J4 E, ^: a6 R1 s
- (setq a (1+ a))1 p f0 i0 c9 ?* T* n. b& j
- (setq a (sslength ss))$ L0 F* b; `6 J
- )
2 R. H3 v; m2 `- C9 c( H - )
5 y) m3 N0 P' b/ y/ h0 W) F6 [ - ;; Layer Button and Text Field
) o# n; `8 x# k+ |9 W8 f1 U
, l' K# i* O- X6 H/ J) y2 ^1 @' V- (if (/= 1 (logand 1 which_tiles))
5 E9 J' Q1 i" G. D+ B8 q2 g - (progn1 f# U! V: u) I( w% }) Y, u5 r
- (mode_tile "t_layer" 1)9 C/ V5 v- W3 t/ U. {6 D# @& |
- (mode_tile "b_name" 1)
" |& a2 _! g/ u% ^) w9 E - )+ Y) G/ n; Y1 x8 ~
- )
8 b/ A% O1 l- }8 ~
9 r0 Q1 m2 C( e/ \8 V0 h- ;; Color Button and Text Field/ H" p, B$ \9 g4 R. q5 S
- (if (/= 2 (logand 2 which_tiles))
7 M0 e0 T( |! F* O8 I - (progn
* V) F) z) g; T* Q - (mode_tile "t_color" 1)
7 I! x/ O9 K1 z; B9 O4 I; [ - (mode_tile "b_color" 1)
9 C1 Z9 j- q8 ]( a - (mode_tile "show_image" 1)4 Q" M( @- f$ ~' G! F1 S3 m
- )6 m+ q+ m3 o- w
- )
s& `) f; B ] - ;; Linetype Button and Text Field
/ L: Z) _% D0 V. N4 O - (if (/= 4 (logand 4 which_tiles))
* J2 o& L1 E3 I+ ]& v8 t - (progn2 Z4 z$ N S p3 Q6 P; C
- (mode_tile "t_ltype" 1)
! `. k% t' g0 N/ Z - (mode_tile "b_line" 1)
) Y" ^& P4 K2 y& `0 u! m- _ - )- d. R V3 w+ E* E. E
- )
3 _! s- N; k3 H7 z' T+ Y2 Z% j2 ` - ;; Linetype Scale Edit Field
4 j$ u1 m& D9 K) d - (if (/= 8 (logand 8 which_tiles))
$ C! O) E' d; o - (progn7 ~9 X2 F! D% n
- (mode_tile "eb_ltscale" 1)$ u4 n8 _5 i& u) f3 }
- )! U! A7 H! }$ e2 @
- )
$ W7 F0 t' {1 o1 V - ;; Thickness Edit Field.; Q6 Y( U6 r3 _# i9 u. H, O7 ]8 I
- (if (/= 16 (logand 16 which_tiles))
: l1 r6 G) [- c. o - (progn; b& `' M2 X$ K7 G7 ^5 u; t2 N
- (mode_tile "eb_thickness" 1)
3 ^7 I6 H9 _* B$ `3 ^ - )# W0 @ |# ?7 T1 C* P
- )
% S$ J# o7 Z$ ?1 u0 @. Q2 o& [# n" O
+ r+ D9 Q2 W1 V, V: W- ;; Polyline box and tiles @rk 10:05 AM 1/30/974 d& q, ]9 n) Q! r6 F+ F- [& F" ]9 z( g
- (if (not (= 2 (logand 2 eflag)))
& A' m! c6 s! c - (progn
2 Q- x! c/ [% U/ s. L6 ` - (mode_tile "text_hgt" 1)
+ j5 v7 X& X- t2 N: r* r, g; u& i - (mode_tile "text_style" 1)
$ \; G( l. u* U# Z2 T( o - );progn- g: D3 _0 _. N9 k% i
- );if
7 l* h/ ?* U8 h, R$ i: W/ `! P' [7 C - (if (not (= 1 (logand 1 eflag)))
- ~2 g+ B% I) S: U4 e* V - (progn
: H# d* F" F% f& u* Z0 {( C - (mode_tile "poly_wid" 1): K) Z* d K: J3 g8 f1 v* |
- (mode_tile "poly_elev" 1)" n# [! ?4 J4 S ]8 t
- );progn then disable polyline fields' N$ u' w1 }; n
- );if
t3 X; T8 E. ]1 m/ W
8 p* h$ U% n& P- ;; Define action for tiles& r% {0 O& R8 f8 p
- (action_tile "b_color" "(setq ecolor (getcolor))")! ~4 y, @9 N J, H- ~
- (action_tile "show_image" "(setq ecolor (getcolor))")0 {1 a4 V# p( a& u- p
- (action_tile "b_name" "(setq elayer (getlayer))")
% u% B8 T- d- i0 _% D - (action_tile "b_line" "(setq eltype (getltype))")) A4 X" {% i2 H9 I
- (action_tile "eb_ltscale" "(getscale $value)")% o/ o' I: w2 a( Y* u
- (action_tile "eb_thickness" "(getthickness $value)")
% ]6 W9 r/ A2 n1 g! e - (action_tile "poly_wid" "(getwidth $value)")( Z, y$ B5 F1 g# Q6 p8 u s7 Q
- (action_tile "poly_elev" "(getelevation $value)")% @4 D) q+ W$ i% X$ e+ H' ]8 U
- (action_tile "text_hgt" "(getheight $value)")8 r* |8 a3 T0 G* \3 X
- (action_tile "text_style" "(getstyle $value hair_style_list)")
9 z. s% G8 w7 Y- S( E% e8 `( t - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
5 D: s7 ]% j0 W! {6 m; C7 `& r - (action_tile "accept" "(test-main-ok)")
9 V' U3 f7 r2 ~, t, j6 P' S - : R. q! D- ^7 D' [ n' ?
- (if (= (start_dialog) 1)
7 w9 p- U; |( f - (progn
8 ]7 r5 s/ L2 i6 ~ - ; Update special properties for polyline and text selection-sets.
3 |- ~! `# D% ~) n -
: A Q( N, q0 r5 {7 O4 _& k - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop5 [0 M! E2 ?! A1 A9 U7 g; K' d
- (or ewidth
9 ^8 f: u2 ^( Z1 `5 @1 i - eelevation+ V6 a9 r) e5 H6 k* W7 h/ a
- );or2 q A! `# x3 U) {0 {0 u
- );and( l& p5 i3 |, h( g( e
- (progn. w; |/ K- T( a: M: [# s- }
- (setq ss-index 0
. {' X. Z* y6 _6 ?" j0 {6 e - ss-length (sslength poly_ss)
( N3 n% D- f2 o - );setq
; b$ }, j2 d" w7 a( F% V) Z+ }+ m! q' G - (while (< ss-index ss-length)
6 m1 x# m4 t* O4 H# G - (setq ename (ssname poly_ss ss-index)
4 s- ~# [3 T: `1 s - elist (entget ename)
\+ H2 J. B) ^! R+ J - );setq
- p$ ?9 Z- q& S& e# I5 F* x - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp# e4 i2 n+ N" s2 {9 \, c& B
- (if ewidth
" n* D4 i0 n- z0 L4 w - (command "_.pedit" ename "_W" ewidth "_x")+ U1 G3 Z+ ]3 j2 B0 `+ {$ M
- );if
# r2 z7 t# n0 D7 W3 A& n; a+ R - (if eelevation " k7 @2 U' ]9 p
- (progn
0 J, X! ~) T3 W( p: Z& m; _ - (setq p2 (list 0.0 0.0 eelevation));setq
' |8 d {) X! _$ r) h& m - (if (equal (cdr (assoc 0 elist)) "POLYLINE")
( |. {5 Z: T* o- c - (setq p1 (list 0.0 0.09 c/ V) `$ P( f1 a0 ]
- (caddr (cdr (assoc 10 elist)))7 F* ~0 e0 I+ ~, O' B- _
- );list
$ X2 h |* z) t2 ~ b - );setq
' Q: Z2 k% p# {5 R) N* V - (progn% K6 X) z& S% X; x f
- (if (assoc 38 elist)
0 u" ~2 A6 q) C. x- L - (setq p1 (list 0.0 0.0
9 }: F' W4 D p - (cdr (assoc 38 elist))
3 s, J3 f7 F& ?5 i/ e! W1 Q' J" o - );list
! N: ?8 V( r; k1 f* U( D - );setq
3 l8 @, b$ |9 C# Z5 v4 S8 K+ j: A5 P - (setq p1 '(0.0 0.0 0.0))
! `! M5 p; L7 Z( P% Q& [ - );if
4 f; l4 _5 ?- V8 P, y - );progn # I$ [7 W3 T* ]1 ]: m
- );if! \& m+ S: y6 w! a$ H
- (command "_.move" ename "" p1 p2)
R V7 l. R; L( H7 ^; ?. E - );progn then change the elevation of the polyline
k4 f y0 B# z* \2 A! ^ - );if
+ K, f+ j) Z8 A n5 R7 W8 R - (command "_.ucs" "_p"), A: G$ R) V, s5 `* l% x1 \+ U2 P% u
- (setq ss-index (1+ ss-index))
3 a8 h$ T. v- C - );while
: q* [; M' h/ K) j - );progn then polylines are in the selset
- _8 C' G3 b: S% l - );if: J7 p0 Z! |8 h& A' f! R& R
- (if (and (= 2 (logand 2 eflag)) ; text9 Y# W' b* ~& M. F% H5 z% r
- (or eheight
" k: H3 ~( e& o) x# ?, d - estyle0 w* A# f, b; p/ P& O g7 Q. x Q w
- );or
2 b: n$ ?- K. `2 P - );and
. f7 d4 j8 n5 N N ~$ b' y1 X/ w - (progn' ^- p' ^/ V2 L* n4 H6 o# \9 B
- (setq ss-index 0 ss-length (sslength txt_ss))8 j3 n7 p# a0 B: g, C& }
- (while5 {: W, D6 e; y3 h
- (< ss-index ss-length)
% A+ `8 l% Y3 i: x - (setq elist (entget (setq ename (ssname txt_ss ss-index))))1 ~* X9 @2 i# G) o) j, i' X
- (if (numberp eheight)
" z0 E! c! e; _4 K/ l - (setq elist (subst (cons 40 eheight), ]( w: D( a! w) ?
- (assoc 40 elist)
6 `: X& p+ L6 `5 m# d# D" ] - elist
" I2 [' V* a/ \* t$ e% \: ?& x - );subst/ t8 ~% |1 T8 ?. c- Y
- );setq
; p) c. {: c2 t6 K7 c7 {2 f2 i( X - );if" D8 {5 z% X2 t+ h$ Y* `
- (if (and estyle ;(not (equal estyle ""))
3 p' H& j4 `* _( W$ { - (not (equal estyle (cdr (assoc 7 elist))))$ ?; c/ K# v. y- e0 c6 C7 n! v, b
- );and
5 v" F, q# x9 M" [ - (progn ' T! K, _* |9 n! { ? p H
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
. i9 k: q; p4 Q: o2 A" F, r - ;(if (equal "MTEXT" (cdr (assoc 0 elist)))% ~8 [/ t. O) U
- ; (setq elist (fix_mtext_fonts estyle 0 y, u- e' W) E+ o; s
- ; elist
7 D; v- E7 d2 U7 f- d2 x. V! I - ; ). X/ O) S' Y- }2 Q# _
- ; );setq then
2 ], j% z/ q" `' p5 V2 R& D/ @# S - (setq elist (subst (cons 7 estyle)) j2 i' i8 ]6 @ I" @
- (assoc 7 elist)
: u1 E$ H* U9 i' f5 M - elist7 t0 h' J* e3 \* n2 v
- );subst. Q. d6 [. v& `0 O0 H3 C
- );setq else
$ |+ x/ o X0 D% Q _$ r% G- U - ;);if 4 z5 ?$ |3 P' Y8 [* R
- );progn: B: i8 x6 z8 N4 _
- );if7 B6 `* O, H( O8 X' d2 I. C9 y. h
- (entmod elist)! b* S! i- M1 g" @4 h: d& k5 C
- (setq ss-index (1+ ss-index))4 X+ s8 V( N0 l8 r
- );while# c, O/ l7 u# W0 O
- );progn then
5 m4 [. \# g: o4 t* B - );if
( C2 M3 w6 o7 l4 Y8 q) _7 c
& ^: j+ [/ J$ @: l( v- (setq cmdact (getvar "cmdactive"))
; E( B% G) w1 g8 c5 Y8 X - (command "_.chprop" ss "")
" v: y& i$ p- i! Q) F - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
) z4 X W- k9 x( n% O! N2 C - (progn
! I6 r1 ?6 N( h: n - (if ecolor: m k0 J6 u1 u
- (progn
: B: u6 E0 e9 H" K+ c) C c. S - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))% R; K4 s1 f8 H7 t
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
* C% X7 I3 J: c' S7 n' b; m - (command "_c" ecolor)5 y. w+ ]$ B" c
- );progn then
- ~% K/ q8 L+ _! l4 R" y# g& R - )+ Y% T. h Q0 b% T7 _+ {0 C) V) J
- (if (and lt-idx
, o% K( [. ?, P4 H& a/ ?- c% r - (/= eltype ;|MSG0|;"Varies")8 @2 T, _ ^0 U+ S9 Q" W& g
- )! _% t' z8 ~; T" U8 Y% U% B
- (command "_lt" eltype)
7 U Z% E4 \; c' X1 y# W' u - )
% C) _; ?% C7 _2 y - (if (and lay-idx 6 z4 F o, k4 p
- (/= elayer ;|MSG0|;"Varies"): X- E" l z! _; P6 h, n8 _
- )+ k- g# ^/ s2 {! H0 I4 H; B
- (command "_la" elayer)3 { q/ l: }/ |9 J; _
- )
3 q6 H0 Q# {$ y: c - (if (and ethickness ; j# X$ R$ g9 _
- (/= ethickness "")8 ~1 T' _, B4 L3 s2 D% H
- (/= ethickness "Varies") ) ]( q+ l8 ^* \
- )
# M8 ^$ d6 p( P5 i8 y- W' A - (command "_t" ethickness)/ y a8 p2 M1 h! P6 p; D- w
- )
1 N8 b9 @+ i0 X6 L. v - (if (and eltscale (/= eltscale "")): o* V8 g$ m t5 ?- s0 y: r/ x6 A
- (command "_lts" eltscale)) K6 g4 e# O. T' k! Q: e
- );if! L; D0 g% W! k. Y6 A6 F
- (command "")
; D1 @5 F( e6 S& C - )
4 ? q& R f" ?8 Y - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set K; y7 V7 a% S B! R
- )
v6 ~3 ~9 c$ t1 \; h0 d; H$ |! Y
% U- u. A/ Z( }' W- );progn then OK was picked in the dialog.
! g" ~. j3 Y: t6 s0 F - $ P" o7 z5 F. V: [8 a
- ;; Fred GERBER - 25-AUG-94
4 o; B; C7 {; f3 X - ;; Don't print the "Properties unchanged" message when the user cancels4 D! G& X$ \1 q; a, V+ z
- ;; the dialog because he knows that already (otherwise he would have
: P- R( O- g4 i0 A0 v0 C# c# x0 f - ;; hit the "OK" button). Display the message only if CHPROP fails for- w3 d+ I( }" S0 E
- ;; some reason, because it is not the expected behavior of the command.6 Q$ L& V: T4 G* A
- ;;9 t3 V% r$ a$ O, C- y* H2 C
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")6 ~/ [0 w& ]* p! }! y# w
- );if9 O( V7 ^4 O' w3 Q4 W: ~
- (princ)2 y4 ?* @2 F' k/ C2 U! W
- );defun call_chp2
1 k+ o+ C& G$ Q y" Q, M% w3 q - ;;( [' R$ a/ z% d! v1 u- w
- ;; Function to set the Color text tile and swab to the current color value.: r2 @* n* l- U, p/ R
- ;; e& h) z' c( T( ~
- (defun set_col_tile()
/ |' L$ x5 {* a0 g) ^ o/ E) d - (cond
4 e, e) l7 h. E H" b( ? - ((= ecolor nil)
9 L( s; J* v4 S( _7 N' t, a - (set_tile "t_color" "Varies"), c* a5 f9 b5 M" y4 C# h* R+ m* C
- (col_tile "show_image" 0 nil)) S, o1 u( H2 y, p, x3 s: c: x1 t
- )1 {+ v4 \% V% e3 p; q+ d+ Z3 H" u" z J
- ((= ecolor 0)
. s) o% b, j9 y) ]3 j4 O - (set_tile "t_color" "BYBLOCK")9 d2 s$ D! n9 O6 r
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white- S5 J# B. C7 m
- )$ G/ Z: f1 v; q2 @ y
- ((= ecolor 1)
2 v! [3 M* {% N' |* J5 s* D - (set_tile "t_color" "1 red")
4 r( l, G, b* z S2 M - (col_tile "show_image" 1 nil)
9 n. U' h8 e7 X; B - )
6 r7 Z! p% [4 ]/ R4 X2 ~ - ((= ecolor 2). i" `' g0 v/ n+ b) z ?+ O
- (set_tile "t_color" "2 yellow")
- g% u# K. y9 l/ `" e - (col_tile "show_image" 2 nil)& T1 A+ c4 e) e# Q
- )) s/ N* T4 A! }, n
- ((= ecolor 3)
: N, s+ ~! `) c/ T; E" j5 t - (set_tile "t_color" "3 green")/ m- S i# j$ w: x- E" T% a* j5 _
- (col_tile "show_image" 3 nil) \; h* H- _" c% g2 J* p
- )/ w2 `. W/ F% ]. ^ x1 J! U- R
- ((= ecolor 4)1 j8 g9 \9 x* r. [& N
- (set_tile "t_color" "4 cyan")
; u1 n) I* H% H - (col_tile "show_image" 4 nil)
% ^. {% }- }" Y - )
( z+ {! A2 V: r2 O - ((= ecolor 5)" g0 P5 I. [# J) u c' F$ ?
- (set_tile "t_color" "5 blue")
! E6 Q0 `: R6 Y! B# a( p - (col_tile "show_image" 5 nil)* e$ p& U ?5 h: H; Q0 ?2 P
- )
& P" F4 T1 F( e. K - ((= ecolor 6)
: S! R9 }( E+ _ - (set_tile "t_color" "6 magenta")
$ g/ K, ]2 h/ N1 J8 C8 Q* n" h - (col_tile "show_image" 6 nil)
& x! _. a- O9 J9 {1 A3 ] - )8 Z0 G8 i9 F0 y; O
- ((= ecolor 7)
0 F& E: [7 I c. i2 f - (set_tile "t_color" "7 white")' Z2 V4 {" I2 u* W1 {
- (col_tile "show_image" 7 nil)
7 l) G9 O7 w$ B) g- J - )4 T8 M M9 ^0 }. ^; [5 g
- ;; If the color is "BYLAYER", then set the tile to
$ ~& |3 j1 G. k( R, a - ;; show it's set By layer, but also indicate the# D: \& x( @% h
- ;; color of the layer - i.e. By layer (red)
) d& `; l; D; \8 f/ X - ((= ecolor 256)
. {$ r/ H9 R7 g1 ?: i- K2 a - (set_tile "t_color" (bylayer_col))
: F- T! |& _, k- i5 }7 K5 J- _- g# {6 ~ - (col_tile "show_image" cn nil)/ f0 ~; j0 V* o$ A
- )! p" `1 |6 S* @" o* D
- (T5 `8 S9 [2 M4 @" S# o8 }1 h* X
- (set_tile "t_color" (itoa ecolor))
! m9 J3 a' O. [0 p$ W% C. \3 [& S { - (col_tile "show_image" ecolor nil)2 z a7 t) u# q
- )
1 z( G: c7 v4 R - )+ `& j w$ r; J4 X- P, A* e* O
- )
- t1 d- J; u# i) e! ^ - ;;
9 p/ [3 v4 s. z. Y3 A, F8 m* [ - ;; Function to put up the standard color dialogue.7 D$ l, S. H% m7 t3 G) {6 I
- ;;
% {( Z- L% X6 s3 i% H% z; z6 Y0 L - (defun getcolor(/ col_def lay_clr temp_color), T2 Z7 X. I r
- ;; col_def is the default color used when rq_color is called. If ecolor' p* u. H; W' V% O# ]1 k, T( Z
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
# S% I; X1 @2 ~2 O' \ - (if ecolor
" n) T% H% u# K9 |0 r! O: g - (setq col_def ecolor)
u# s5 G6 V0 z" k, U" K - (setq col_def 1)
; ?9 P: ^' g1 ^# I2 q+ B' u - )
- k: e5 K( d# e! ~7 b7 ]! F
' c j+ o' i7 Z. H* z) c# I- ;; If we're working with a single layer, get its color; z" ^5 W* F0 x
- ;; for use in the color swatch if the user selects color BYLAYER.( F7 Z' X/ F r1 k, K
- (if (/= elayer ;|MSG0|;"Varies")% x, r8 ]2 V) X! p# Z9 E) s$ L; k' X
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
9 R& X9 B# o2 c/ Z R - (setq lay_clr 0)- O/ A2 d: z# y% X' I2 K
- )
/ l( O: s0 P2 Y) D - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
3 A8 d& t8 Y1 W7 y, r9 U2 b - (progn7 g7 q( x& O: e# D# U/ X1 t
- (setq ecolor temp_color)
5 b6 k1 a+ O1 b4 o - (set_col_tile)
' E7 h: m Z. h8 ^# G1 b6 \1 I - ecolor2 a3 T0 e1 d7 D V" X5 t1 Q5 X7 G
- )* m/ T6 s @) g0 k" \3 t
- ecolor
3 C, d7 _* G e3 z - )
' \9 I3 w9 v p - ), F5 l9 @6 a4 M, k8 p* i9 f% J& e# ^
- ;;
: p7 D0 O/ b/ n1 _0 |! ? - ;; This function pops a dialogue box consisting of a list box, image tile,
n( M6 O/ Q1 M0 V# d - ;; and edit box to allow the user to select or type a linetype. It returns
$ C3 Y5 w" u3 M" Q - ;; the linetype selected.9 e$ v) r: K @4 f/ |! H
- ;;
# ^$ ]- G+ i9 e F; \* j+ f2 p - (defun getltype (/ old-idx ltname)0 K7 ^; O) B& E4 [. n
- ;; Initialize a dialogue from dialogue file; \$ ^3 a9 m/ \0 w
- (if (not (new_dialog "setltype" dcl_id)) (exit))* `8 | D I+ Y5 n
- (start_list "list_lt")" H! ^, G1 g- P' @6 i4 v
- (mapcar 'add_list ltnmlst) ; initialize list box; [0 J: H+ X# d8 h: i- L7 \9 t
- (end_list)
" I! @3 `' c5 H$ F: T ^4 a# K* L - (setq old-idx lt-idx)( l, X0 {: l" V" m/ N2 T( o$ c$ ~9 l7 g
- ;; Show initial ltype in image tile, list box, and edit box
- ~2 q9 A6 W D1 l) B7 }) V - (if (/= lt-idx nil) A- a/ G2 ?& e3 j' e
- (ltlist_act (itoa lt-idx))1 v9 l3 y( E: D- R% @$ e
- (progn
; ^' s6 ?2 G- B+ P; _" e - (set_tile "edit_lt" "")0 e4 O8 { C7 j2 R4 o: n& r
- (col_tile "show_image" 0 nil)6 T, n3 n. w# J6 r9 U' \
- );progn else4 |& z* @9 M1 L0 h$ q
- );if
$ p9 T- ~3 v7 W' s - (action_tile "list_lt" "(ltlist_act $value)")
* T8 V; F0 {, M; g. F g - (action_tile "edit_lt" "(ltedit_act)")
) R `0 d: L8 O - (action_tile "accept" "(test-ok)")* V& \$ p6 q; x' V' d# T
- (action_tile "cancel" "(reset-lt)"). ?3 t# ], j0 b" f9 g8 E
- (if (= (start_dialog) 1) ; User pressed OK
0 M, F/ Y9 j( W0 c0 Z - (cond
9 F& o' m# `7 C/ e: ?. L$ \5 O. b# j7 K - ((or (= lt-idx nil)! n' }1 D- T& @& d; B- O( W
- (= lt-idx (1- (length ltnmlst)))
! Y. [& Y; b5 b5 a; ]* f, L - );or
5 l+ G$ b" X( m - (set_tile "t_ltype" "Varies")
- S4 C, _" B; `8 M2 g) G - ;|MSG0|;"Varies". K- k' n" Q' \% o* @; f: o
- )- q+ e5 u6 h2 x4 P
- ((= lt-idx 0): H: `+ x. n7 L
- (set_tile "t_ltype" (bylayer_lt))
3 ^+ A0 b- ~9 h2 Q! d! s - ;|MSG0|;"BYLAYER"
% i# g& R, j9 l) P' D - )
* ?( }7 J1 l0 D8 j* Z; l - ((= lt-idx 1)
' ]8 A$ c6 t4 H9 r* n$ n# i( f - (set_tile "t_ltype" "BYBLOCK")( B( E8 N4 O9 g# E5 ]3 }
- ;|MSG0|;"BYBLOCK"
% b. ~& c& [% }3 o- H( A - )+ J/ ]2 x# |3 f! {. v4 M
- (T
- l9 X5 o, B; R' A - (set_tile "t_ltype" ltname)7 R& g7 r+ r/ H' Q$ _ D! U' O/ m2 M
- ltname% }; w* F+ l0 R0 ? @7 X
- )7 w* t& o9 G" v0 y+ v; }
- );cond then# |- f! r; _8 M! `6 y
- eltype
2 {- C. ^' w2 h4 c9 Q2 N0 H - );if
9 Z* z' t) P6 x0 N0 p1 x - );defun& V: F$ X3 x9 A3 i
- ;;! o9 P3 C) t$ S- [: A
- ;; Edit box entries end up here1 v6 |) C% U4 k; W' Y+ j
- ;;- N9 _8 B% q; B4 m
- (defun ltedit_act ( / flag)
* L. w1 N. B$ P/ L& s9 k) L$ g - ;; If linetype name,is valid, then clear error string,/ b( Q! t( c! s! L: s6 E% Q2 J
- ;; call ltlist_act function, and change focus to list box.
: x% `, J! ]0 t - ;; Else print error message.
4 C2 C# Z, ^' D - $ B4 D: \4 C6 l' l6 c( Y7 D8 K/ n
- (setq ltvalue (xstrcase (get_tile "edit_lt")))8 F3 L. X. n& W+ n8 N
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")& x& _" E) H1 ], c, r- K/ Z
- (= ltvalue "BY LAYER")8 e& z& k1 q0 e, }) [
- )
8 E; S+ \2 |. H) g4 d) I; X' { - (setq ltvalue "BYLAYER")
4 o% S% M5 ~; W0 d - )
! `- e% z( M8 B# v5 a; s - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
0 T* N+ ]' Z: e z, a" L5 F - (= ltvalue "BY BLOCK")& x, g- e/ C% G) [6 R! E$ B
- )5 M$ R: G* O3 U9 ?5 j4 k8 Z
- (setq ltvalue "BYBLOCK")
4 g- W) l9 K1 f' i' D1 c - )3 q. h* k c% }( Z. N
- (if (setq lt-idx (getindex ltvalue ltnmlst))4 w2 V: _- d+ Y R. ~7 C
- (progn
2 v6 `; n) i7 L - (set_tile "error" "")
7 T' N7 j7 t: v1 p - (ltlist_act (itoa lt-idx))8 A- t1 |- ]2 D7 @
- ;(mode_tile "list_lt" 2)
+ p( h$ y6 q4 q0 u. m - );progn then
8 r- P* i: ]5 ~& F4 `$ N - (progn
* Y+ v5 Y" h" p! _1 ]1 m1 D% M' _ - (if (/= ltvalue "")! H0 J6 k3 n" O% O- P
- (progn0 ~" b- L% m, z5 ?5 P/ Y: J
- (set_tile "error" "Invalid linetype.")
. j# s8 J# j( O% m1 u' E+ P& a - (setq flag T)
! ^7 P5 O8 l: V* _ - );progn% |1 V6 Q1 s# i' k
- )
9 ?4 u6 ?. v1 k" v5 c1 {. S - (setq lt-idx old-idx)
: _& B) X) p3 o - );progn else
; p0 O. _ m/ c0 O$ s0 C - );if
d( \- I1 ]: f( p& x& m% Z/ ] - (if (and (not flag) ;added so a return will take you out of the dialog.
+ S5 Y# B2 f4 _% `* X% c! n8 `! d - (= $reason 1)8 L: _, K; T- W& `% o/ m/ E7 M( H
- );and8 Z$ G7 ~! g% u8 h( V! @
- (done_dialog 1) 8 ?) U# [5 _2 ~7 {7 N- h2 C
- );if * K- [$ T, ^: p: i' ?1 i# @- F$ |' \
- );defun ltedit_act2 R# e1 F3 L! f" n Y% J
- ;;
' L0 O* n( R/ C9 N; Y- |8 t$ c0 e4 p - ;; List selections end up here: [0 k5 M) ?/ B
- ;;
' ?" {' h" ]3 r1 w. t1 Y0 K8 N - (defun ltlist_act (index / dashdata)# V) \# h3 B5 z5 h. y
- ;; Update the list box, edit box, and color tile
4 R: |1 T* i* h$ e9 _4 w7 ?) x# s - (set_tile "error" "")" o2 M$ G1 V" ^" A4 |4 B! h/ T5 k4 }
- (setq lt-idx (atoi index))' t* g, X C0 {' k
- (setq ltname (nth lt-idx ltnmlst))
; ?) y: X+ Y3 H- J2 n2 J1 i - (setq dashdata (nth lt-idx mdashlist))
9 ?& e' O# p* r0 \' U - (col_tile "show_image" 0 dashdata); k7 O, N: B$ ?
- (set_tile "list_lt" (itoa lt-idx))0 ~( ]) t8 S% }0 k9 G
- (set_tile "edit_lt" ltname)' M3 J0 L$ T0 g8 _0 ^- B
- ): H- L: U" s: P+ v" F
- ;;
# E% E1 w6 ]- E4 k- H( ] - ;; Reset to original linetype when cancel it selected+ e2 i* _" P5 b c: D9 @
- ;;0 [9 s# E& N# B& ]7 S$ B O: g
- (defun reset-lt ()
0 _& H, ~7 N3 j3 J - (setq lt-idx old-idx)
& r( S4 [2 I @7 {# j5 f - (done_dialog 0)6 ?9 ], B1 v" O8 A9 @8 L
- )
% {2 P0 A% q8 e; b - ;;! Y2 G" M8 x" a) G1 E8 J
- ;; This function pops a dialogue box consisting of a list box and edit box to
1 X) N4 q9 |9 F. W$ ?' E q - ;; allow the user to select or type a layer name. It returns the layer name0 ?$ p% B0 E! k# Y) x0 D1 U9 H- |
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the1 l" f! [0 p6 F
- ;; drawing.
% ^4 [0 r' {+ n8 x9 _8 a - ;;
: H2 F5 Z/ W+ O ? - (defun getlayer (/ old-idx layname on off frozth linetype colname)& F/ g3 m: Z. Y( X8 q, h
- ;; Create layer list the first time the layer
; R# J4 ]1 Z e# f# x - ;; dialogue is called.! f/ o( e. p, P4 Y. z4 J
- (if (not lay-idx): `8 Z9 y' O6 }/ r F% i4 m4 J9 b! y
- (progn
' k: m# O A! K3 P4 ], O - (makelaylists) ; layer list - laynmlst! S( v7 G Z& R& Y) K' D
- ;rk. V* a/ n6 R! D- w& G# t% ~( s
- (setq lay-idx (getindex elayer laynmlst))3 L' M) r0 k# `2 w$ b. q
- );progn) Z1 L. N, p, h Q) n4 ~" L" U
- );if
9 o1 _$ e- T2 R n& y. m
) n& _5 d, ?; F, Z% s7 S- ;; Load a dialogue from dialogue file" |$ w9 i o3 \: p) B
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
( L: u6 d o+ l7 Y! g9 C3 d; @, t9 C - (start_list "list_lay"): P" v$ q; t" ^3 \1 f
- (mapcar 'add_list longlist) ; initialize list box
9 Q( ?) F- D+ k& X) S; I! y$ H - (end_list)
: x+ ^! ]7 r; a- j - ;; Display current layer, show initial layer name in edit$ V# f3 V0 y- x8 M- G
- ;; box, and highlight list box./ f/ _- _ b4 }! R$ { W
- (setq old-idx lay-idx)
' Z% @: e6 o" m5 b( m. h) P - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))) ^ C" P& D/ R3 O/ j* N. m
- (set_tile "cur_layer" (getvar "clayer"))
4 x+ E& y ^8 u' Q. d) a - (action_tile "list_lay" "(laylist_act $value)")! i: _1 M( d; P) I2 z7 k: e
- (action_tile "edit_lay" "(layedit_act)"): O& {4 m' Q; W6 G
- (action_tile "accept" "(test-ok)")
6 A) D: N7 Y3 V2 o p/ X n - (action_tile "cancel" "(reset-lay)")
2 S. u: K9 Z5 M5 T* X( t5 S. l1 G6 w - (if (= (start_dialog) 1) ; User pressed OK
1 d: q. ?! L, e! c - (progn
3 w% K9 I" D2 w' ] - (if (or (= lay-idx nil)+ J+ D4 m3 s: `6 p: J( t0 A. D
- (= lay-idx (1- (length laynmlst)))" S/ F% u5 f- F: _
- );or# `: g( y7 c# q: s
- (progn" K9 j1 V+ p: S' s |
- (setq lay-idx nil)
+ S0 F5 a g- a# O. |1 v3 ?& g - (setq layname ;|MSG0|;"VARIES")
6 L) a4 H N% L l, I9 N# o7 E - (set_tile "t_layer" "Varies")& j, C; }/ S# Y; R3 y6 d
- (setq layname ""); L! `. W* J# C r6 T
- );progn2 K# b% l, O" w( O3 N6 A Z
- (set_tile "t_layer" layname)
0 s e# J& u+ r8 h0 S - );if
+ m: T* H- h- b3 C* Q+ L - ; If layer or ltype equals bylayer reset their tiles
: Z+ ?( p: \( o/ e4 ]& i - (if (= lt-idx 0)+ w9 s" q' A% I( ?+ G: Z/ q0 v5 n
- (set_tile "t_ltype" (bylayer_lt))
7 o z$ V# b5 ^+ K9 @ - );if. I* q6 a1 v/ n: b" G
- (if (= ecolor 256)
2 [- h3 K0 U3 D! R2 J- ?! i - (progn
4 q* U( R( r V2 ^. U' B - (set_tile "t_color" (bylayer_col))
+ }6 T, T/ d& h2 Y5 } - (col_tile "show_image" cn nil)
6 I! h4 {5 {) D+ u - )
) o2 l/ c: V/ u2 e+ v - );if
/ @" H; l5 _ F; `) @ - layname
7 p6 L, v& f6 d5 ` - );progn
. X+ F) j5 s8 c* j& Q/ Y# {5 }3 m - elayer. _" _9 @- s) ^0 _( q; @) q
- );if; F- R: t, N2 h: O+ ]; O1 L
- )2 {$ N0 y9 I# |3 p0 p
- ;;
/ o, v8 d( d* T, X - ;; Edit box selections end up here# M$ F, R- K+ f% x& O: d6 A2 f$ ^0 P6 F, R
- ;;5 s4 u: H- q9 o" U
- (defun layedit_act()
" n# m' t5 p* g9 Y2 g' @ - ;; Convert layer entry to upper case. If layer name is
! h3 z+ E& V5 x! Z, B - ;; valid, clear error string, call (laylist_act) function,
+ }0 }9 ~" x( S1 B - ;; and change focus to list box. Else print error message.
$ S( D4 e9 k6 D Q - (setq layvalue (xstrcase (get_tile "edit_lay")))$ _$ ?& _" A7 j4 Z0 R u
- (if (setq lay-idx (getindex layvalue laynmlst))
; W& K9 u) d7 A; b - (progn, n/ k) T8 `5 [! W: ]) M
- (set_tile "error" "")
, K% V4 T! k* {+ W8 P. _ - (laylist_act (itoa lay-idx))
/ |3 y( y$ p# j, N - )
! @9 A H; c/ K# F# G& u - (progn1 ^$ r+ U% P2 G8 O4 P+ W* z: `
- (set_tile "error" "Invalid layer name.")
, X; D( M& ^) Y4 u - (mode_tile "edit_lay" 2)
4 Z: g; C/ @6 h+ @9 w - (setq lay-idx old-idx)' w/ s* a T2 n4 n
- )* B1 ~8 {# @* W/ l8 k9 k
- );if9 Y/ y2 l E k$ c) Q
- );defun
& w. \2 e9 F# u4 B/ T - ;;
& T6 J6 r5 t5 q' p, v5 e - ;; List entry selections end up here
6 K' P) R9 I. {' o1 `8 H7 z) t7 l - ;;
: d. ~- V5 b1 A s3 \3 D - (defun laylist_act (index / layinfo color dashdata)
% P9 [+ _% ^3 h - ;; Update the list box, edit box, and color tile3 w3 A0 w5 Q* g% }
- (set_tile "error" "")5 Z5 G2 O( K0 u- }' \ a! t
- (setq lay-idx (atoi index))6 u2 @, m6 l8 x: i( w2 f- P& m, T
- (if (not (equal lay-idx (1- (length laynmlst))))! N" D6 i. \8 b. ?8 D
- (progn M9 }8 F$ ^0 m9 _
- (setq layname (nth lay-idx laynmlst))
, n6 k; D$ T# n2 Y# a1 @( i - (setq layinfo (tblsearch "layer" layname))
1 _+ k& T. L# v/ v% U - (setq color (cdr (assoc 62 layinfo)))
. \3 m, ~; E R, Q8 O - (setq color (abs color))4 b/ g7 Q0 H, b+ q! a
- (setq colname (colorname color))
+ x9 O0 z) k O6 i' Q1 n - (set_tile "list_lay" (itoa lay-idx))* n$ @0 J4 Q# A3 z+ c
- (set_tile "edit_lay" layname)7 {" i" m5 W5 a- u/ l8 C: E
- ;(mode_tile "list_lay" 2)% e4 Q; D' O, U- T p5 C0 |, s
- );progn then
, b" x6 ~4 r3 X: w - (set_tile "edit_lay" "") * A' F5 |, W" C; v
- );if
! y/ w$ s7 I( r" Y - );defun laylist_act
, |+ l. k# f4 d- ] - ;;$ Y3 q' A2 J3 U; h% R' [% M# l9 Q
- ;; Reset to original layer when cancel is selected$ i; W6 f5 M0 p& ~- b# Z6 U
- ;;. N" _7 d4 J# l4 t* R _
- (defun reset-lay ()) |. u# s! n) t2 x( I, _+ F+ D
- (setq lay-idx old-idx)5 W% w( U8 g# J
- (done_dialog 0)
0 W& G4 K. N5 q6 a; i( Q - )" [" W9 i6 F$ b
- 4 c! f' }* r8 X! l5 t1 ^5 q8 [2 q
- ;; Checks validity of linetype scale from edit box. It checks to0 e: L& Y, {- r$ u4 A
- ;; see if the value equals "Varies"./ \5 `2 n1 g4 E1 ]2 s% @: w
- ; N2 k% V* b& F+ m, i
- (defun getscale (value / rval)' @# j8 `9 h; E
- (setq value (strcase value), _: x9 ?* @& K/ y" y9 T! [$ ?- k
- rval (distof value)! n! w6 b- ^7 b# X6 {, z5 u
- );setq
) t5 X8 L! K0 K, V. [9 @3 H3 W - (if (or (= value "")" \0 R9 w. E7 X4 K) \' b6 Q
- (> rval 0.0)1 o9 e. h$ v3 e: o) a6 b& g
- )
4 a8 A: m" c& U4 t) K! Z, ?* I" m& j - (progn
) o% h3 K4 z! K0 t. W - (set_tile "error" "")
6 L* x1 I- C- v: D v - (if (= value "")" C" A8 I" L9 ?& D+ G( X$ c( P1 p
- (progn1 t' q3 X. ` f$ V' D
- (set_tile "eb_ltscale" "")9 X, N* b' ~9 `( u+ U2 \4 N
- (setq eltscale nil)
* x0 I5 ` A/ l2 `; d: j+ ? - );progn then
. p" W/ g/ F v/ j - (progn' Q( N. ^8 N3 D1 A
- (setq eltscale (distof value))& k( H. \; \% `4 g2 D/ ~
- (set_tile "eb_ltscale" (ai_rtos eltscale))2 }, [; X9 }2 s8 k. d& ?4 q' n
- eltscale
+ s, O2 X. r9 Z3 N; u$ \ - );progn else
: v, {$ i9 U+ u s6 o# R# i - );if
; N# I2 e, L6 R" q% j- N7 r2 E - );progn
' |, e% Y: l \5 j$ T - (progn6 w3 @* i" O; Q5 Y
- (set_tile "error" "Invalid ltscale.")1 t' b; G4 O5 T/ z9 j7 E
- nil: v, g- f) c7 M: A% Y# i! K
- );progn else% A, {3 M3 F9 N( P4 H
- );if
( f0 s5 L* K8 i0 T - );defun+ X9 p1 b, D. \: l( ~$ P/ e
- ;;8 e4 S$ M; c0 \; F0 B# ^0 \8 B
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a. q- {: V! w. O- b9 |
- ;; string can't be converted to a real, this routine checks if the first2 Y0 t& l0 ^2 {* y" l. l% e' _' a
- ;; character is "0". It also checks to see if the value equals "Varies".) p8 Q l/ e% Z; x+ @- [
- ;;% v3 d: }( R+ ~& s
- (defun getthickness (value) N9 i4 w* \# D6 q8 z( v3 m
- (setq value (strcase value))
5 u3 I6 c1 G; f7 \- C3 c8 _0 K - (if (or (= value ""): K6 Q+ q8 J+ i( _! }5 Q
- (distof value)
/ K- |2 l' C. {/ f4 y - );or. z Z5 ~7 @( F1 }
- (progn* x# p% [- t6 N2 A
- (set_tile "error" "")
3 m8 t6 W- x7 \5 \9 {) Z - (if (= value "")
" i/ J, M% }7 t4 p: d - (progn* u. w6 o: F! D3 A" q5 Y s/ J
- (set_tile "eb_thickness" "")$ `. n$ E. J# w. c( `1 S/ J
- (setq ethickness nil)
3 d8 I9 w& e8 s0 ~5 l- x - );progn
4 c$ i1 e6 J; h - (progn& Y, v2 {2 G2 r% `
- (setq ethickness (distof value))
1 j) Z/ ^( V6 ~8 K0 o" C - (set_tile "eb_thickness" (ai_rtos ethickness))
# j |( a$ X" ^; ?9 y - ethickness
$ `+ C& K3 y9 W; d - );progn g) b6 F$ S7 c0 Q& K& [
- );if
# @( t8 h& R7 Y# e. q) k- I6 [ - );progn
8 a4 t8 V) V7 W' e0 ^/ K - (progn) Y9 C6 }4 { |7 V% S$ Z
- (set_tile "error" "Invalid thickness.")2 F% a1 s/ T2 I/ R0 [
- nil. M: d' r' O$ T7 Z3 l- j
- );progn
1 I3 \# a/ V2 b2 a - );if5 O, v! y7 \+ M6 {0 T
- );defun & c" s5 i" m$ x$ _
- ;;
/ _/ E l$ w3 b) @6 {: W - ;; Checks validity of polyline elevation from edit box.
, r& }1 f# v: d, G, z3 ^( r9 l3 l - ;;
1 z+ B1 k6 c f8 \1 s - (defun getelevation (value)
$ h" x) u: D- y# r1 o5 G - (setq value (strcase value))" L0 ?8 b6 O8 m# ?0 c3 p: j) P
- (if (or (= value "")
2 d/ e/ a/ n1 t. T - (distof value)- t A$ n- m& P, {0 p8 s: \
- )1 j0 a6 Y J8 x; R! v
- (progn
0 D& t) p; k3 J. P - (set_tile "error" "")% ^- i' }# u' n( k
- (if (= value "")+ U( z) r4 }8 A
- (progn7 Y- i; ]) ~7 b
- (set_tile "poly_elev" "")
; o: d- C( ` o# ]5 q) K$ \, u0 } - (setq eelevation nil)
5 {% i- \& ]! F- X( p4 J$ C - );progn
3 v" a* C/ U% W# l9 T0 x - (progn
; j, f$ ?9 U5 z8 D8 w3 s0 M - (setq eelevation (distof value))7 A8 n7 t# n: `0 B
- (set_tile "poly_elev" (ai_rtos eelevation))
" ]1 V4 `( I3 l5 a O - eelevation
! Q7 h$ C+ `* }, d* i9 [ - );progn
" f6 l) O# F: g' N& X. a5 e9 @5 j - );if
+ j2 U2 H8 ~5 E - );progn
4 U. t: N! R" m% `, d7 o& w - (progn
& j6 U. C( Z" A9 t t& a( e - (set_tile "error" "Invalid elevation.")2 {0 ?1 g; E4 @% Z( N( d
- nil$ D) [2 f |' k; o0 H
- );progn# P" m ?2 t( o1 u! k
- );if. m; f* d" f F' _
- );defun- w; Y/ B1 ~+ ?- N5 B
- ;;3 @" { M& k* o
- ;; Checks validity of polyline width from edit box.
, {1 B, _/ h8 f# Q7 L - ;;
5 F; T+ h& k e$ K5 L - (defun getwidth (value / rval)
* ^) V% R9 @) w( _: y) U, H - (setq value (strcase value)( b; b2 b2 ?# X" b
- rval (distof value)
9 s* q4 ?6 e/ Q& a; l - )
# l9 }' T! f- p- k0 y - (if (or (= value "")
2 k! M. c3 E; L3 w& `1 U i; t - (>= rval 0.0)0 D$ r% R/ w3 W- h) T: }; V% F
- )
: e7 c8 Y0 E* ?0 Y! F - (progn
# f9 ~# _% W2 b0 r1 ^& S$ p - (set_tile "error" "")
* P0 g% t4 s3 c - (if (= value "")
% a; C" ~' T+ K4 H - (progn
5 \) ?% p3 \ o6 e0 n' t' r+ e$ ^ - (set_tile "poly_wid" "")- H/ M; `+ \. h) q( F" _, w
- (setq ewidth nil)3 n1 R7 }% f6 t" V; V
- );progn
% a F" X5 W4 I% U0 E - (progn
* C0 u( ]) v; X5 H) q+ ? - (setq ewidth (distof value))
3 }. y3 D1 l% |; c7 ~0 @9 |9 H - (set_tile "poly_wid" (ai_rtos ewidth))
" h; Q. s7 w# q! v: n# l R - ;width
- x, ~% R, I2 K0 g& A) v - );progn
4 W* k( |8 A3 I2 `* d6 w) @. Z - );if
5 s9 l* E* y0 c' u - );progn
$ j# M# o- j+ h J5 b( e/ A" F0 S - (progn
8 b+ p, c8 j$ S" q$ m( h - (set_tile "error" "Invalid width.")
3 I. N: k# B9 c' S - ;(setq ewidth nil)
, o0 E) K9 z2 W) m6 E/ P - nil
2 q" U' e8 o h/ r - );progn/ G/ j( ?5 z& i/ w
- );if+ N$ g( ~; }. c: t
- );defun
2 a; Q! n; L5 [- f+ ?6 d2 a, f$ O - ;;
$ g& q$ ?3 ~# h& Q7 R. N - ;; Checks validity of text height from edit box.4 @# u; C" o6 `( @# c. `
- ;;8 Q1 E4 ~6 a* Y% h$ }: z; W4 I
- (defun getheight (value / rval)* W( W8 f5 s1 X8 [
- (setq value (strcase value)
, x# W- w% C) F - rval (distof value)
$ n l4 X+ E- p4 W. H+ O: } - ). x2 s% s' y e3 j G9 ^0 j
- (if (or (= value "")
" w: f9 A5 a: Y+ S* v/ y1 r- C - (> rval 0.0)
3 {- G- b( M5 m6 d# v - )0 r% f& s& u1 u" y
- (progn
/ z( K+ O: ~* n - (set_tile "error" "")7 e1 U5 y, K2 z( C
- (if (= value "")% G; o9 W3 O% L! L% \( y: X
- (progn
& D; c @2 P* c& F, t/ b" h - (set_tile "text_hgt" "")$ W' |5 M2 `) ?4 H* Z( u0 S
- (setq eheight nil)
7 J+ |! }) p% j+ a - );progn
/ \# S# l, E6 c7 q- L3 O4 c# [: x - (progn* b0 ^# c8 u6 s0 F: H1 b# ~9 I) g
- (setq eheight (distof value)); S1 m R: `7 e
- (set_tile "text_hgt" (ai_rtos eheight))
% a1 [. c2 Y5 u H* { - eheight
0 j$ Y9 B8 p2 Q$ v$ f( [ - );progn
7 G/ O$ R; z2 }& t, X - );if3 d f4 d( h7 Q$ R/ _4 e( q! i. A
- );progn
c0 Q9 u# m2 O: S( l4 z - (progn8 P" N% B4 F5 n+ B
- (set_tile "error" "Invalid height.")- h4 @) N% h; a/ P8 A( d
- nil9 {! |- a+ ]7 [5 @& q& _1 O# `8 \0 e
- );progn
1 y- y; |* z7 N - );if5 W# b( o4 t6 s
- );defun
5 A# `# B( e* I7 ?9 g - + `! u+ z) q. P. e# S
- (defun getstyle (value lst / rval)
5 i9 [% Z, V; @ - ;(setq value (strcase value)); i+ g( D# R& Q" e) E
- (set_tile "error" "")/ s0 h4 d) F- T) R
- (setq estyle (nth (atoi value) lst))) h' n2 r. l! q0 w, k& Q2 e* j
- (if (equal estyle "")
/ U: k- b3 V; G3 b - (setq estyle nil)( i. t1 B6 p# H9 U: K0 P v7 g
- );if
) g" P6 W* t% m- F8 D& G -
# m6 G) N+ h& x - );defun getstyle
+ z5 b5 g3 V& _/ g" J - ; {0 [; x d+ l
- ;;9 N4 \( Z3 r. R+ f" }4 M- \
- ;; This function make a list called laynmlst which consists of all the layer
, l9 p& [- N+ N' C3 l, | - ;; names in the drawing. It also creates a list called longlist which8 a- g1 W! H- ?8 e- E8 |
- ;; consists of strings which contain the layer name, color, linetype, etc.! `" ]- J! j% b8 U0 D4 b+ A
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
! N, J. o5 W. q) x) T' q - ;; same.9 l; k& g, o( F
- ;;7 I; z. q( g, x5 Y
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
3 O1 F4 R: u o6 o. v% b - xdlist vpldata sortlist name templist bit-70" T8 c6 e# i$ x4 W
- layer_number! p4 L& ]% d9 o
- )
& c5 J. @; E4 X. i* c5 B' p - (if (= (setq tilemode (getvar "tilemode")) 0)
" i7 O/ t b% v0 i1 J( D: t - (progn
! ~* G7 L/ f2 c* Y - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
2 y- m4 N% \- [- S4 a, A$ S# C - (cons 69 (getvar "CVPORT"))4 v8 {0 G4 s; A K, D* Z8 B" X
- )
2 Q' M5 N3 `( P6 \2 j - )4 j3 x3 O N: I" p; t) y
- )' x) g9 i7 |! ~
- (setq cvpname (ssname ss 0))
) c+ u2 i2 M% ~9 {) L - (setq xdlist (assoc -3 (entget cvpname '("acad"))))
, G& S, e7 ]: V+ w8 q& H8 R6 p) u - (setq vpldata (cdadr xdlist))
$ s' Y7 z7 }; P9 ~$ Z }7 l - )
9 o4 m) U; A/ F* V - )
5 c: T; X% H0 E+ n& i4 O - (setq sortlist nil)
. R8 [; }/ ^- `. Q" [- {, }# Z - (setq templist (tblnext "LAYER" T))$ O0 [$ _+ Q Z; c8 o
- (setq layer_number 1)! R% U/ U8 M9 b0 M+ N0 J* I$ t
- (while templist
' P( Y1 r5 `; K; @9 `' B* K - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))% m( |& ^+ r) U, |0 f3 F4 G
- (progn ! w3 I* K( D7 T1 m
- (setq name (cdr (assoc 2 templist)))3 f: n. C9 _+ |' h2 g) Z# w- u; u
- (setq sortlist (cons name sortlist))& ?# }- u! X& j) B3 @( d2 b
- ;; Not dead message...
' U7 N2 y- U& v+ Z2 A+ ` - (setq layer_number (1+ layer_number))
/ f8 P9 Z+ i# A2 h8 m% }$ N1 B - );progn
. b4 X" O& Z: e2 T, V - );if
}! P% F' T* y# V' M. f! J - (setq templist (tblnext "LAYER"))! m( K% u# n" h/ V, ]
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
- c; T3 z4 g- i8 K2 ~9 V4 P4 r - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))7 ?1 s& {8 b$ x! i& E$ p# ~* V: O
- );if7 Z, ?7 P5 r, }) F
- )5 P/ }/ b. Q0 b/ w9 ^# X/ o7 ^; i
- (set_tile "error" "")1 q z* d, s* ?& f$ Q- m) S
- (if (>= (getvar "maxsort") (length sortlist))
/ H6 ^4 e s! d) J# {) w - (progn& l4 Y% _- k/ `+ K
- (if (> layer_number 50)
/ P5 C; Z& C3 k2 ? - (set_tile "error" "Sorting...")
) L' J2 P" ]6 c6 E" L/ E! U3 u - )6 v" a N) D3 x) m7 t, k, Z- B; X
- (setq sortlist (acad_strlsort sortlist))
6 K8 G% D' {3 {4 {4 B - )# `+ t! r7 o( |! b6 Z
- (setq sortlist (reverse sortlist))
4 ?6 E' t, J# G0 v6 V/ T0 b8 F - )
5 M2 X/ y- H9 X' l& c+ n) u' y; I - (set_tile "error" "")
. `5 g6 i4 F( k! N9 O' q - (setq laynmlst sortlist)
' `3 i0 \1 @0 q: f; {* w- F - ;rk : v2 b8 _2 m; t n) [
- (setq laynmlst (append laynmlst (list ""))) $ g& x( c; g- U+ ]6 n4 J3 W
/ C- x2 u6 O Y- j0 J1 \- (setq longlist nil)
/ ~$ Y5 R. c& b7 u! [- H2 z" q$ ~ - (setq layname (car sortlist))
6 f8 Y. V9 I, M$ l( U/ t - (setq layer_number 1)) C4 I( U6 }! v' {; M B% Y
- (while layname
+ E: |. b* K. ?# }) q R - (if (= (/ layer_number 50.0) * T) n! k) t3 p* |
- (fix (/ layer_number 50.0))
5 x& K! m; T/ d' q: f+ C. k - )- j( U3 R0 g/ h) P1 q
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
, t4 P: M# d4 G% { y( H - );if
4 G8 k8 U0 ?( W( y/ ] - (setq layer_number (1+ layer_number))
6 M3 L7 ~$ Y8 v8 M - (setq laylist (tblsearch "LAYER" layname))
7 T; O+ n+ Q. H$ F - (setq color (cdr (assoc 62 laylist)))2 M- N. B0 c8 h$ Y0 R; m+ I
- (if (minusp color)
" j, ` m' O, v9 m0 M/ G - (setq onoff ".")) Z F; \0 F y* t
- (setq onoff "On")# A& i# H3 T5 H5 t. D' h0 M% |! c* ]
- )9 y, L& `3 n, u4 v5 `
- (setq color (abs color))' j5 ~4 V% P& o; v3 ~
- (setq colname (colorname color))2 i3 Y2 m6 ^. Z
- (setq bit-70 (cdr (assoc 70 laylist)))
" o- ]" D" h4 c2 ^ - (if (= (logand bit-70 1) 1)1 B$ {- t( W* Z: X2 c9 C
- (setq frozth "F" fchk laylist)
. }: ?9 E, G6 h3 h: [0 L6 G, Z) U$ R - (setq frozth ".")
! W& M' \* @7 y8 a" D) K - )
. c; t, r1 o/ |; O8 q2 E$ O8 D7 v% m - (if (= (logand bit-70 2) 2). n, Z" }! @# f& L" s- h
- (setq vpn "N")
$ Z e& T8 Q* R+ ^1 D W - (setq vpn ".")
, F. x/ l" L% Q5 ^2 s - )
% h4 t$ ~, n. W. A) P, _1 ? - (if (= (logand bit-70 4) 4)
+ r [" H6 m/ }% }" X0 o: B - (setq lock "L")
3 b7 ]) z' {2 G. ^# p& r8 s& x - (setq lock ".")
7 j$ L/ g( u- ? - )$ U2 J, E8 C% h& _1 G' W D
- (setq linetype (cdr (assoc 6 laylist)))3 I1 q2 F/ H7 X$ Z7 {% J% C
- (setq layname (substr layname 1 31))) k; b/ g' Y- A5 h
- (if (= tilemode 0)
4 I" H8 | m* k% X: D9 d - (progn
. c5 Q+ J' h$ L- J - (if (member (cons 1003 layname) vpldata)( r1 e ?3 W3 |* J% L
- (setq vpf "C")
6 [ M7 N5 l# P - (setq vpf ".")
, i9 D& H8 h" c - )# V; j5 H& {3 D+ I& y, j: }1 k
- )! C; i$ H: y. i, w s
- (setq vpf ".")5 ^* @) @4 d) H. O, s' I8 _, J: k
- )+ f3 ^; _2 F; p4 N6 y" c7 D
- (setq ltabstr (strcat layname "\t" E2 Y% o' @5 ~7 A
- onoff "\t"
3 S) ?. @ R4 b+ P$ v1 m - frozth "\t"( i: ^% _9 m% ?; c2 w
- lock "\t"/ N1 u( f9 ~- \7 ^$ a+ K; `
- vpf "\t"
! ^. o( j. x1 o2 b0 _ - vpn "\t"
?" m) M: o- j; C+ w - colname "\t", A# K: }, t: `% e0 w
- linetype# X0 D* V2 g/ ^1 Z, k: Z# U( L
- )
X. U$ i# W9 z3 z8 r7 F* H - )' l- D& C; D5 k' D
- (setq longlist (append longlist (list ltabstr)))
% B' u7 l5 }( s1 |" B. S" O - (setq sortlist (cdr sortlist))+ j( D+ z& q+ \" h' A
- (setq layname (car sortlist))
/ g7 ^ N9 b8 q8 S' B - );while" w# B7 y. Y+ _! @1 V
- (setq longlist (append longlist (list "")))' u1 B. i" C8 t; ]3 ^( G
- (set_tile "error" "")
% h4 A) Q6 c1 z e - )
* {( L7 W7 R9 h& y" a5 q - ;;5 i, S" S+ ]7 l0 {+ r8 C/ d. u$ u
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of8 r" k5 U+ n& D: \+ b
- ;; linetype names read from the symbol table. Mdashlist is list consisting" d; t. x- `( L. e$ o0 P P7 I7 r& G
- ;; of lists which define the linetype pattern - numbers that indicate dots,5 G- p Y6 O( W D+ E, L
- ;; dashes, and spaces taken from group code 49. The list corresponds to the& y4 R9 m) G4 P. X
- ;; order of names in ltnmlst.
9 v3 K5 J7 J3 ]# `8 f4 s3 M6 a' u - ;;
2 Q Z% q0 e2 _3 i# j) D! ^* A - (defun makeltlists (/ ltlist ltname)% \% G% W. V) d3 J6 V
- (setq mdashlist nil)7 E6 ~( I3 Y6 V" w2 U
- (setq ltlist (tblnext "LTYPE" T))" I6 Q/ f ^- d1 F6 q* u, s) o& l
- (setq ltname (cdr (assoc 2 ltlist)))
y% S6 u$ d' u6 b7 X9 H - (setq ltnmlst (list ltname))3 V" n# B5 ?/ B" i
- (while (setq ltlist (tblnext "LTYPE"))/ f/ f P0 l% z, N! D4 z
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))' D+ i8 o7 O1 K8 K- N o9 w
- (progn 3 z* g# q6 i* H, r; ]$ i" E0 O
- (setq ltname (cdr (assoc 2 ltlist)))" r6 v9 F& x4 i' N5 f
- (setq ltnmlst (append ltnmlst (list ltname)))
: D- U! v7 j' Z! \* ~ - );progn0 e3 n# L* b2 V2 _, l* C3 N- u
- );if 9 n# z( J2 Y2 J9 e J- C* Z
- );while# V1 ~9 a2 z$ d5 [0 i
- (setq ltnmlst (acad_strlsort ltnmlst))
. W8 o) f' B2 f - (setq ltnmlst (append ltnmlst (list "")));add by rk 3 O7 U6 N4 l+ t+ M8 J$ q& H1 y4 k
- (foreach ltname ltnmlst/ C" r( I) E) b6 v8 y' Z3 k
- (setq ltlist (tblsearch "LTYPE" ltname))
4 Q- c% Z# X+ @: f9 {( P9 M - (if (= ltname "CONTINUOUS")- N# k9 ~7 t9 J
- (setq mdashlist (append mdashlist (list "CONT"))); s7 F& m6 S$ b
- (setq mdashlist
$ X/ ^2 z- v% g4 Z - (append mdashlist (list (add-mdash ltlist)))
. W% n- c8 _/ v% o, C8 u9 \2 X - )
) i* P) I' @6 }8 [9 w$ c - )
9 e- q, Z% l! x: e8 B1 R3 N - )
$ I1 F. L* F C2 P+ P) ^! O - (setq ltnmlst (cons "BYBLOCK" ltnmlst))$ v+ E; F+ {) V3 q
- (setq mdashlist (cons nil mdashlist))0 z$ E9 s$ r3 l6 \6 O: h. O
- (setq ltnmlst (cons "BYLAYER" ltnmlst))9 p" P/ X1 u. |" B/ ?
- (setq mdashlist (cons nil mdashlist))* w q" p4 R. B1 s' v
- )* }, [. R' p/ T- t$ c5 v
- ;;
2 t F; W) e" l3 i* Y u - ;; Get all the group code 49 values for a linetype and put them in a list7 d1 N5 z7 v% D) L
- ;; (pen-up, pen-down info)
2 A. s& i' R1 @$ Y& D - ;;$ _4 i" D5 u/ b4 q$ k. ?; ~/ A
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)& Q" o; u- `7 E" I! K- J& i
- (setq dashlist nil)
2 n+ U7 A3 g$ V% A) g$ R! g - (while (setq assoclist (car ltlist1))' U' `3 B7 c# |, L7 ?* r* M! w
- (if (= (car assoclist) 49)' n6 {% Z8 ]1 ]5 x, {
- (progn+ h: b$ E6 V3 X2 h% h6 V) n+ j; b
- (setq dashsize (cdr assoclist))
' U/ M2 }$ c9 g - (setq dashlist (cons dashsize dashlist))1 _9 J3 {" k3 ]. q1 `8 U, n0 K
- )8 b: l- N* U4 C; B
- )
! R$ ~! B$ ^3 {" c - (setq ltlist1 (cdr ltlist1))
?7 x0 |8 p0 ?' ?( k) [ - )
3 M; O9 g/ Z4 A. t+ L" P - (setq dashlist (reverse dashlist))
5 S, |3 i. O" p( V- F0 F. q: q - )8 u* w( y" l8 v: H+ l
- ;;
: f/ A# q5 H6 L - ;; Color a tile, draw linetype, and draw a border around it+ m0 c4 a( X- a4 L% [& y5 A
- ;;1 Q1 o! G% U. r2 y. Z
- (defun col_tile (tile color patlist / x y)& V* X5 {; ~+ P& h8 h# p) ^! Q
- (setq x (dimx_tile tile))8 ?& g$ `" I0 d
- (setq y (dimy_tile tile))2 `% i( v/ V. Z" d; Y, \5 S# Y% z
- (start_image tile)
' F! D7 m) W) o- R - (fill_image 0 0 x y color)
- e4 ` m, C& v - (if (= color 7)
% ^8 v& |2 A3 a& b - (progn6 e' i0 @! k% ^: q
- (if patlist (drawpattern x (/ y 2) patlist 0))* z- n _' Z. W& G2 B0 d
- (tile_rect 0 0 x y 0)+ k0 q7 g. C+ _8 a4 j
- )
* r% W# {5 i1 c6 P - (progn! {8 f3 R- j% i# m- j8 A9 k0 o+ R C
- (if patlist (drawpattern x (/ y 2) patlist 7))
0 P' |6 Q9 G B/ z5 ]6 z - (tile_rect 0 0 x y 7)
) X, Z6 q8 B) m9 \ - )
/ k" t: J- b2 z# T6 ` - )
" U p7 [2 C! H8 \6 q - (end_image)
# d: b) i" o+ M: J7 r - ) m {; c# p0 F+ a8 T7 r8 R
- ;;3 S3 p6 }2 s4 P# Z
- ;; Draw a border around a tile
0 N/ K% |' T" d6 R7 @ - ;;
3 U# Q9 V# w6 Y2 o6 b. Z$ d& Z$ F - (defun tile_rect (x1 y1 x2 y2 color)% b. d9 y0 K9 N5 A6 q
- (setq x2 (- x2 1))" `1 r( |. k) K! F3 `. l0 q
- (setq y2 (- y2 1))
! A3 G3 t" V5 `1 T& {3 U2 I - (vector_image x1 y1 x2 y1 color)) m* a* P6 T4 o" d; G
- (vector_image x2 y1 x2 y2 color)
7 ` ]5 [5 }+ q: Y& q - (vector_image x2 y2 x1 y2 color)2 M- `5 r; s. j8 z' f! M# Q
- (vector_image x1 y2 x1 y1 color)
- u+ t) a+ {2 [- R - )) e z# l2 k$ V
- ;;3 {& D2 g- v7 i& \
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image2 o; _# b, p+ e7 m
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
$ x1 S; o; |" T1 P9 i" W; C' J3 j - ;; list of numbers that define the linetype, and color is the color of the$ K$ k' L$ t8 A7 @& D/ K" R
- ;; tile., F+ O1 h) F% t8 y
- ;;
m+ Y5 k) \' s2 D z+ L3 Y - (defun drawpattern (boxlength y2 pattern color / x1 x2% X+ @8 {! N5 C+ a1 u
- patlist dash)
$ E; ]+ M3 p% w% r4 b; V2 R! g - (setq x1 0 x2 0)' \: V! u% q" u# S h6 P
- (setq patlist pattern)& D; I/ o9 H, |) }* d9 z
- (setq fx 30), f5 m* _" q2 T0 i
- (if (= patlist "CONT")
% t2 q7 Q1 @9 W - (progn- R4 E0 p9 s9 y( x4 y b* |
- (setq dash boxlength)& l' @* \2 l9 X9 H$ m! Z
- (vi)
+ m1 R6 H, m1 i1 l ~ - (setq x1 boxlength), T$ q* b u$ W* p, O
- ); T- ]; O! I+ }+ k8 H
- (foreach dash patlist
4 l0 b/ n c, o9 L - (if (> (abs dash) 2.5)
e: _9 ~! [* ?4 r - (setq fx 2): r1 |" G* Z' A
- )5 Z- F+ K3 n J v
- )% F/ |; Y! ~ n
- )
$ K( a1 a, v( ]5 r0 Z" m5 ~ - (while (< x1 boxlength)
4 N# |% x/ M- Z4 S2 r - (if (setq dash (car patlist))8 Z/ x( I% C1 y7 l" S0 a: _
- (progn
; h- z" H, y5 e - (setq dash (fix (* fx dash)))
, j" v7 Y# a9 k$ ^ - (cond' G' B) N7 d" t* S
- ((= dash 0)
" j! M3 k F7 d0 b4 }6 E* i: h - (setq dash 1)5 k0 B f& m, A' I: w
- (vi)
% u7 V7 O) `1 P; v - )
, m5 ~/ f4 F- A- n - ((> dash 0)% b, ]3 W+ M. }8 n) y
- (vi) E5 D: Z0 G$ ^) @& D. M+ f
- )
/ X V: F0 s8 f/ X" { K5 f2 { - (T
; o% C- H- a6 g' l, w# _+ s! E - (if (< (abs dash) 2) (setq dash 2))" y7 i g: p6 J: M3 R$ J5 v% p
- (setq x2 (+ x2 (abs dash)))
- j8 V# ?. u! a O - )
: y1 N/ e& K1 @ U5 D$ c7 K - )$ N A3 d- l3 m/ M7 c5 m* ^$ W
- (setq patlist (cdr patlist))6 T/ O) q) S3 `/ D% B) W4 h" U
- (setq x1 x2)3 y0 X* n; r7 N" G6 J6 C7 c
- )6 l; K2 F6 M7 x" M% s# S
- (setq patlist pattern)7 e' T1 t( S/ I1 y6 V* O: j
- )
# m J! M& X6 `7 x - )
# w& _7 w U& `! O( Q - ); b9 [8 B( A" i& ]
- ;;) K' W1 }' [! h
- ;; Draw a dash or dot in image tile
; ~/ w# B2 O k: P/ Z; C) F - ;;
' O+ d4 V2 @6 ]5 J - (defun vi ()* T0 ~. o' b8 Z
- (setq x2 (+ x2 dash))6 x( E# Q- `8 J" M: |4 M J
- (vector_image x1 y2 x2 y2 color) G% g& F+ `# U; T8 o' E: s1 M
- )' d7 ]4 T$ O1 b! [. l; I
- 2 z. w* _( k% n4 N R
- ;; This function takes a selection and returns a list of the color,6 d1 C# j. K+ m* g/ ~# i& l
- ;; linetype, layer, linetype scale, and thickness properties that
* I* V* L+ q0 H" x ?" l4 J/ T - ;; are common to every entities in the selection set - (color3 J! k2 X Z; U( b9 M3 Y
- ;; linetype layer thickness). If all entities do not share the same
; k s. b% i! B) ? - ;; property value it returns "Varies" in place of the property5 r8 @4 s8 @- j# z$ Z
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
0 ^- V5 R' B# y5 E! { - ;; The last item in the return list is an integer flag for the
' H! d6 \' A, w - ;; homegenity of the selection-set object types.
1 F/ g4 v/ k# B5 y; [# s - ;; 1 = All polylines
& c3 I* s& Q% P7 l: {' p8 F - ;; 2 = All text or mtext or attdef, or a combination of the three
. p) B( f0 E4 O9 M8 |1 B - ;; -1 = Any other mix of objects' `1 ~" H) d0 a2 Q
& H$ z& J! w& J, d! {- (defun getprops (selset / sslen elist color ltype layer ltscale thickness. a- [- S/ k+ ?; z; `/ P
- width elevation height go ctr
. H: c k. ?; f: t - eflag + n' ?6 t0 b+ A# n7 Y2 F
- etype temp
~# l# ~. S& R: e - txt_ss ;;;;rk 11:24 AM 1/30/97# \8 G# ~( e& c' D0 E0 R
- tmp ( c% ~% x9 H) O. K
- poly_ss
( @+ r( Y9 J5 @6 T! o% a7 A - style$ `1 o% v2 a# V% ?3 t7 k
- )0 b3 j% ]: }# J) h2 d
) {& O" D+ {$ Y2 l- ^8 b! h; F
+ `" ^; ?; ]/ T7 Z- (setq sslen (sslength selset)0 D( F1 R/ e( ~ c9 t
- elist (entget (ssname selset 0))8 Z" b0 E- }1 g( H$ S, `$ r
- etype (strcase (cdr (assoc 0 elist)))
! b3 G; V! S9 W9 B: b( l- f2 g/ ~ - color (cdr (assoc 62 elist))
6 x$ a9 k- n& V( s$ T) s - ltype (cdr (assoc 6 elist))2 J& c: Z1 e& c H, H6 H: E8 ^
- layer (cdr (assoc 8 elist))
6 x; B; l! \, q! `) } - thickness (cdr (assoc 39 elist))
) b8 n3 t1 H/ Q" o - ltscale (cdr (assoc 48 elist))
4 N3 {8 `# ^) s; _ - );setq7 \) E1 Z* F7 D+ F1 G. N s2 o0 ~ [
- * f+ z5 e2 v9 Q+ D$ r) J8 E
- (if (not color) (setq color 256))# n0 `3 ~1 _) ^6 ~. w
- (if (not ltype) (setq ltype "BYLAYER"))
) n1 I/ h7 T% `: S' J - (if (not thickness) (setq thickness 0))
& a9 G% N* ?4 b. R) `7 H; E - (if (not ltscale) (setq ltscale 1))- F: \# A* m6 d7 J
Y2 U, s/ V( O* x* j# P- (if (not width) (setq width ""))
5 m8 B: m3 e- X0 f. {+ n; k) e - (if (not elevation) (setq elevation "")) _9 H: ^/ Q. @ V: \ c
- (if (not height) (setq height ""))0 c1 W0 m- i. d# k3 A+ W2 ~/ M# _
+ K% b' V1 \/ f1 o& ^' v0 e4 ]- (setq go T
! d2 R5 ?* h4 a) g5 l! t4 S6 x0 A - chk-col T 1 T0 T4 \; Q2 F& O) C8 f9 G4 s ^- V
- chk-lt T
( g6 Q5 Q# F* |7 |+ O, b - chk-lay T : @, F# o2 [6 p% n# [! u3 s
- chk-lts T . u# `8 K3 Z9 A6 c9 `& U
- chk-th T 7 m$ v# B: v0 @; A. j/ m {
- ctr 0
5 B# M# y+ W7 d, ?1 w4 X/ ~ - );setq
6 \( k* D: L. z/ q: E8 M - 2 d* G4 _& o: n/ G1 ~: s
- ;; Page through the selection set. When a property% Z: v/ }& G! |2 R4 D7 z0 a
- ;; does not match, stop checking for that property.
3 G/ r: F3 |" E - ;; When the selection set is not homogenous, stop checking." a* T* N: @ `( ^: d
- ;; If all properties vary and the set is not a type 1
! s# o3 }/ |# A: U0 p$ r8 H - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.! g; h, i3 y( u( x8 n
" v Y4 D$ N9 Y% S$ p6 [7 o- ;Lets set the eflag so we know if the selection set includes any ' d6 f: i4 _8 k5 {
- ;combination of polylines, lwpolylines, text, mtext or attdefs.
Y$ }9 l' A$ S
4 U9 D4 N- @8 l0 c/ O6 q9 b3 U, ?- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
+ z1 l5 j' `& V$ C; e# q$ L - (setq eflag 0)
, D# p% ?$ P( P - (if (setq poly_ss 6 ~! J$ K0 |# T. ?/ T! D
- (ssget "P" (list '(0 . "*POLYLINE")3 r r: R4 @4 v- C* v
- '(-4 . "<AND")
+ A1 Q8 ^) d3 @5 ]: V - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")" e; q. y* @. C/ V4 {$ e: K
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")
- R3 A, F' C; v- ^* T+ w# w - '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
) B4 i7 O! P; }6 J6 F( h# u6 V - '(-4 . "AND>") " ?/ f$ n6 g. B( w6 E0 ]# o: f; ]
- );list
3 e; b; N v& W T - );ssget get 2d polylines (legacy and lw)/ Z$ g: v8 m% J* A
- );setq
1 @$ j: n C5 L7 B/ J - (progn- U5 X# d$ m& b- ]5 ?# I( a3 { T
- (setq eflag (+ eflag 1))
. j( V1 ~: d R# f: k8 O. `- E - " v$ l: S) h6 J: i) M, `: Q8 _
- (setq tmp (entget (ssname poly_ss 0)));setq2 D5 P+ |4 ] p( p6 {
- ( ]; Q, e0 v/ w2 o
- (if (equal "POLYLINE" (cdr (assoc 0 tmp))); @; [, M1 ~) O' o! v
- (setq elevation (last (cdr (assoc 10 tmp))))! x( G4 }! @6 `
- (setq elevation (cdr (assoc 38 tmp)))
1 a. m) a. p' e$ E9 O4 S1 d+ B - );if: P8 r5 m _7 }( o4 y0 o
- (if (not elevation)" f/ r5 a6 F$ b- D1 }3 _
- (setq elevation 0.0);setq- X+ l! `9 b+ m* H5 N
- );if
4 D, g- V4 I) d, V6 _& R1 K$ s
- q6 t6 w. B/ K E- (setq tmp (ssget "P"
" L9 q* m& s. q; k0 \0 s% N3 O: a - (list
9 h) |$ K. }( f3 n* u6 z - '(-4 . "<OR")
# [+ P6 A6 r# o$ U0 L2 y' e - '(-4 . "<AND") 1 v, x5 @* H [1 U& d" D @ F0 C( Y
- '(0 . "LWPOLYLINE")
* H/ d: |+ ?+ A& i0 Y1 Y4 ?; Q' G - (cons 38 elevation)9 F0 ]; {2 s' ]8 P2 L
- '(-4 . "AND>")
: ?2 g- l. }' x( Z# a2 j2 o - '(-4 . "<AND")
$ z o# V+ g1 d4 K8 [- } - '(0 . "POLYLINE")
4 o: @4 k! m1 p) U" z* D - '(-4 . "*,*,=")
! d ?, g( M- b/ s' R0 H8 ] - (cons 10 (list 1.0 1.0 elevation))5 s" y" U4 @# k; W" p U
- '(-4 . "AND>") 4 E" e8 A# a; ]3 [3 ^; h
- '(-4 . "OR>")
; r9 [8 v! i+ a/ i i3 ^/ F+ N - );list1 v' N: U! h4 z) D
- );ssget! R/ }9 p- O# Q9 o C* l
- );setq) h& ~# M" Z) d7 L
! ^8 \ D; m! Y6 t; I: c" L1 g- (if (and tmp
# h. p" G1 N9 Q$ [) S+ v9 \ - (equal (sslength tmp) (sslength poly_ss))7 g6 M# M6 i3 }( C4 w: v
- );and
( q. S* z! I- ~ - (setq elevation (ai_rtos elevation));setq
& I m- ]* ^% Z" E4 t9 G' f - (setq elevation "")
7 Z2 R. r( y4 ~, Y - );if w9 L5 Y+ `7 C3 j" C8 ~
-
# K# P+ l$ X+ a: I3 J I - (setq width (pl_width_getter poly_ss));setq
- C- a% d/ }8 d, [! Y* O -
) r- y- z3 G" ?9 q7 h B! R* B7 A; y - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
+ M3 }+ ]7 C2 O1 B - );if
& t% H% x1 h2 d. t- f( b4 ^7 @0 h - (command "_.select" selset "")
5 T/ s# E3 c9 Z7 `) n D - " c& l6 c' j. ?% [, t
- (if (setq txt_ss
; ]: y" b9 ?( A+ l4 w3 `" I( b - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
; P K! M, P) @1 B. k - (0 . "ATTDEF") (-4 . "OR>"))
* q5 R- ^8 H+ {) } - )
$ W7 t( C* _) R1 Q% { - );setq9 ?; C3 A/ `, S" s
- (progn/ r! p9 T; N$ P4 o3 R
- (setq eflag (+ eflag 2))
6 M0 O* Z- q! C2 X& c5 B - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))# \0 m' l' j: }# w, I
- tmp (ssget "P" (list (cons 40 height)))
/ g2 B) D1 j% S8 | - );setq 4 u9 h$ [* m3 h! [8 {6 p+ @
- (if (and tmp
$ `9 M; Z4 R/ m1 T. q6 M - (equal (sslength txt_ss) (sslength tmp)) 3 [+ Z$ O9 K# I
- );and
& Z9 g, G9 L/ Y; I& H - (setq height (ai_rtos height));setq ;@rk need to translate from float * l7 v8 e: i% u. v' f
- ;to string and back again easily
- B3 B" O9 v% o - (setq height "");setq else the height varies 6 k0 i) X' ^8 O4 O' U' N
- );if
2 L: S6 `7 x: t+ _ - (command "_.select" txt_ss "") $ k) R7 c: v4 Z! }. S3 }- w& x/ B
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0)))): v' K' n$ `0 j; p! \
- tmp (ssget "P" (list (cons 7 style)))
" F. t& F4 g; e0 o - );setq I/ b# X! i [+ @
- (if (not (and tmp
2 n4 I' b z; o) E( i, b( r - (equal (sslength txt_ss) (sslength tmp)) 2 [/ D6 o+ d. e! q/ j3 {
- );and
& U" H! M8 h9 l4 B# b8 K" o, i4 j - );not, ]2 e0 l* |, _9 N6 P
- (setq style "");setq then the style varies
# F u/ t7 `8 k& b7 H, n - );if
$ h- V9 Z6 G2 y - );progn the text type objects are in the selection set6 ~7 @( g5 O/ E! h! s# g
- );if
& P1 e/ W# ^* ]; Y* X: K% s - (command "_.select" selset "")! k; F# b4 W2 ~/ \
-
. f# w( {0 N& v - (while (and (> sslen ctr)
& T# S4 p/ e/ z, f. |5 c$ R - go; F$ a, b D4 B6 E( x( W. L p
- );and
1 H0 m" d7 t! l1 I3 }" P4 J) g - (setq elist (entget (setq en (ssname selset ctr))))% c# K# V) a- H! X+ K! l
- . R. _; e* `. w+ ]5 n! t* T
- (if chk-col (match-col))
8 Z4 g3 _1 X- J0 d* g - (if chk-lt (match-lt))
r( ] ~- m( e* W/ |, v: ` - (if chk-lay (match-lay))/ @* q- T# b9 K6 w& h3 a+ A3 A
- (if chk-lts (match-lts)). z7 P. j& L8 P" g# s
- (if chk-th (match-th))
) d/ W O; m" a* _4 r - * {) D; ^3 A7 T g$ M. e, m
- ;(if chk-etype (match-etype))
3 ?/ U5 R! ^ H
7 x* B+ Z+ z# _8 _7 l9 E- (setq ctr (1+ ctr))
% {9 R0 r/ b) E/ Q - (if (and (not chk-col), @" b# [& Q- I9 P8 W$ v
- (not chk-lt)/ W! A/ h( L3 [; R9 q) v V* d
- (not chk-lay)7 S; g# R5 c, O; U0 _, G8 M9 q
- (not chk-lts)2 T4 |0 t% k) j* x) m+ q" t
- (not chk-th)
- o# r0 v. n8 M2 E6 L' ? - ;(not chk-etype)% ^1 w2 j9 s0 o
- );and
! C% ?4 d, v. n$ h A# q! m5 q+ A. W - (setq go nil)
/ @$ ~* q9 o* o/ C7 K+ l - );if) u" ~8 P/ E/ r+ s8 }
- );while9 E0 W. k6 Q5 f/ F1 Q5 q
-
+ O K% ~- S9 m" o+ Y C. E - (list color ltype layer thickness ltscale
: Y/ i. Z( C6 B* j' e9 T - width elevation height eflag * h- h- x' ~9 f0 r
- style poly_ss txt_ss
9 X6 C v5 q$ _$ G8 u - ): Q- c A5 \3 c# o( j$ R
- );defun getprops
6 ^; W0 _- ]. n) \# M
& w/ V3 M. D+ ?. b- ; This is a speedy little routine to tell whether the polylines in ! I% f: ^3 e; B) l- `$ c
- ;the selection set argument are of varying width or a constant value. 1 ~; d* u/ x* d2 a6 \* v
- ;Looping through the vertex's has to be done for old polylines when
7 j7 k0 L' s! u' d9 r - ;the polyline header has width values of 0.0. Basically, in this case, ; E0 A$ B' q0 h6 e: D- t# D4 a
- ;information in the polyline entity header is abmiguous. Width values
9 ]4 I& D1 p" h, B - ;of 0.0 in the header entity could mean the polyline has a constant
. _ [5 f5 n2 A% x - ;width of 0.0 or it could mean that the polyline has vertex's of varying $ V+ ^$ A$ h& L4 M3 w3 ]+ X5 g
- ;width.# F5 s$ a1 U$ @4 ]; P
- ;' x3 y/ T" ]% s( s% N5 t# H4 P- T
- ; It's all in wrist. Err a.., I mean it's all in the 'if'4 Q; w) U1 m8 g: Q6 X
- ;;
/ [/ E3 `, q- _* [: t, k - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)8 }7 H7 c( B% R& f' |" `( G
- ; Y9 y1 Z# ~! r r) r
- (if ss
4 F, B" `1 u& z, b+ k" o - (command "_.select" ss "")! X! ^6 `+ K1 D+ ]# C C0 i! X
- );if! [6 _/ m# w" |$ v6 S4 J
- (setq width ""4 c/ l4 ]0 G: B, M2 D
- flag nil
* Q) R [9 w$ L" ` - flag2 nil9 K! u; N3 c( ~1 @. r. r
- );setq+ d" z3 r, m6 W: I' K
- (if (not
A# @) G: z0 N: v0 \7 a x1 U - (and ss
0 z2 J3 D$ f1 j1 j+ g - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
; t5 u1 b* \% S$ H; m W/ J5 [& g3 B - (setq na (ssname ss2 0)
: W# N5 E5 R4 ~6 [9 K8 i0 x3 Z6 o - width (cdr (assoc 43 (entget na)))
# L `- N8 |3 d& B' l - );setq T( I' I6 K+ w
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")# I; E0 ~! G/ _7 y/ E, V1 w7 [
- (cons 43 width)
8 z. c+ l8 s. s( K - );list
1 M2 q* v5 P9 B' \ - );ssget
! V9 Q3 Q! h% Y6 L! P - );setq
& p& T' A# D( {; f - (setq flag T) ( f, d% H: H. s$ x, p( Q
- (equal (sslength ss2) (sslength ss3))
' b$ k$ G, r# t9 w9 P9 f/ w# ] - );and+ n( p% |6 {% c' x2 b6 b# f ^
- );not- f4 x i* X6 n6 j' }9 h
- (progn! j2 t" k. k" E% |# |
- (if flag. m) B* D" F' Z- m7 C% l
- (setq width nil)
0 D: k- [) K) M - );if
5 a- H$ a7 L" j9 c N, c; e - );progn$ I* Q! b3 |. a' x' c
- );if 5 G6 c4 i* w) U. J9 r$ S8 y
- 0 P( i+ w+ O; {
- (if (not ( y4 s5 ?' w3 m7 E8 r9 g
- (and
3 h+ m$ n$ x3 ?6 a% U - ss
I) d/ |1 f( J - (progn (command "_.select" ss "") 6 q! ^) W! f, A3 A7 V+ v9 i
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq+ P; p; D! g! f
- )
, O( V H- Z1 Q; \( ~ - (setq na (ssname ss2 0)
7 ^. ?$ [* L" ~( D8 w% q - e1 (entget na)" n. V' D1 T; ~! w& j6 w7 t
- width_a (cdr (assoc 40 e1))
! g3 `, O! d, g4 [; k9 a5 o/ x$ Y - width_b (cdr (assoc 41 e1))
+ G, l# _+ @) e - );setq' y( y, p$ C" K
- (equal width_a width_b). y( C) Z; L3 i4 F! M
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")4 ?( w' q" f( z6 U$ A
- (cons 40 width_a) C5 F* X4 t' J
- (cons 41 width_b)) H2 U, c. b) ?- m8 K1 k! n
- );list$ H5 l: [ p; ^, Z$ f$ Y
- );ssget
2 h# y& w7 e# m! w# W) O - );setq
! D* E& {5 x8 R0 k - (setq flag2 T): B' O! U6 p+ W/ q
- (equal (sslength ss2) (sslength ss3))
9 z4 `0 r0 y5 \, t; p$ T7 }0 F - );and
8 u" y( H$ c4 z! y+ @ - );not
: t3 k7 q7 ?( [ }0 M& t - (progn
1 e' R" x: @6 u8 _0 k - (if flag2
2 b- N2 j! R- H% B- u8 V - (setq width nil);setq8 S0 i2 A8 e/ G1 I; g7 V+ |% E
- );if
. f0 |3 A+ ^0 R: B$ z! c - );progn then1 ~" O8 @$ a/ Y0 ]
- (progn
( {: C1 o3 O7 J4 h6 i, S* B - (if (or (equal width "")
2 J" o* S- A) C3 s6 @% z: ?8 e% C - (not flag)& \. x0 y- t: R8 F
- );or7 O1 E! z/ g( x% h
- (setq width width_a)
# L: I8 K$ ]: p$ ?, @1 P3 e - (progn- \2 q r# `( p6 o2 H
- (if (not (equal width width_a))
' p* H' w- V) T5 w8 d5 H - (setq width "")4 r; J# f2 m9 r
- );if
" v2 |+ b! t2 q6 b0 V' W - );progn( `. D' r* J6 w8 h& F
- );if) ~. M8 r3 b; k; n; I1 M+ W
- );progn
: m6 m: y3 \' k4 B - );if
% s; s8 m- F9 r$ D" i - ' @- U. v. }% [
- 5 o( u0 C4 A* e+ p" W$ H9 u# v
- ;now for the special handling for old polylines
/ u1 D5 x3 v/ K$ y, e - (if (and width
% J* S; \: l# G) J' \ - (equal width 0.0)2 D$ A3 r% h0 r/ E' h
- flag2
7 w, f- N/ o q2 g% Y Z - );and ) w0 ^, |4 P: T0 ], ]1 W7 z
- (progn& H' W( ^$ l( x5 [: c S0 s# U
- 7 o, K, M& \. ~- T: n0 K! o
- (setq n 0);setq6 v) E$ C- N' a- K8 O- x$ W P
- (while (and (equal width 0.0)
/ s- M+ p9 o# k6 g5 ] - (< n (sslength ss3))
) y; m3 v3 m: e. _$ x I# ? m8 m; m - );and
$ z; d9 z0 i. ^ - (setq flag nil
2 H# ?& ?3 K6 z# z - na (ssname ss3 n). S5 b. `' y% h. R. z
- na (entnext na), [9 _2 s) t: b6 N, W
- e1 (entget na)
9 |$ p4 j! u' [. Z7 x - );setq7 D. O N# G0 F! D' }) Y* H( }9 v
- (while (not flag)
3 t, e* S- S3 \. G+ ?4 r6 h4 l. C& W - (if (or (equal (cdr (assoc 0 e1)) "SEQEND") J4 r2 X% V9 z( D! I( D( T/ k
- (not (equal (cdr (assoc 40 e1)) 0.0))
P8 G8 F! }& }! |$ F. C - (not (equal (cdr (assoc 41 e1)) 0.0))
% e6 f+ S- ]8 @& l9 O) `5 L - );or
. T$ \7 I+ L& @2 w1 c - (progn
! p3 v0 W' [) E - (setq flag T);
+ i9 B8 W6 G% ]. p! o m7 o - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))) i# ~2 `* n2 p/ D# t
- (setq width nil)
1 K$ B9 W5 e0 n2 b+ c4 n$ ^ - );if! X- _+ h4 [) t) [6 z8 s
- );progn then jump out of the loop
$ ~/ R. M9 O2 h - (setq na (entnext na)
$ Q2 a* V% r- p; I - e1 (entget na)( @+ J) K% b. ?" [5 e
- );setq
4 a' {5 J$ o, t" ^9 [6 t7 o A - );if
' w4 N# |3 D* { - );while
5 ^' y3 F6 E+ o - (setq n (+ n 1));setq 3 I3 v: h- U- k$ Q0 u& L, Z3 D
- );while % Y2 ]) N5 z7 C5 [
-
& N% r2 _9 y" F9 P. ?# n/ `; w+ V - );progn then it's a legacy . z+ R ?1 E- n5 C7 }
- );if ;legacy polylines that may have varying widths
3 }6 ^# Z& U0 V$ K" X# f A - 3 {% U h8 Z* ?: {9 A
- (if (not width)! a9 I/ ?/ V1 |% w6 A
- (setq width "");setq. y, H0 d5 Q( M/ `
- );if
! a2 |' D/ N6 |4 z! u/ R5 E& j - (if (not (equal 'STR (type width)))5 I9 x7 f' h: I0 y# c* B% M
- (setq width (ai_rtos width));setq - M& p- R! ~' M9 E8 W" T
- );if
8 I6 R' v: ~: s3 g8 Z9 f1 q - + Q- g% T9 g1 r8 ^5 S6 }
- width
+ _/ G3 L: a( a. I. R - );defun pl_width_getter8 g" ~* i/ x) B2 S3 n
- 7 `$ [# g& A+ r# E& M
-
/ I! P/ I" Z$ Q+ v1 E f - (defun match-col (/ ncolor)
: F1 V0 n# _2 b* k$ `$ r0 A# A - (setq ncolor (cdr (assoc 62 elist))). O8 A$ O6 R! K4 q
- (if (not ncolor) (setq ncolor 256))
, B" y5 O. r9 q6 r9 m - (if (/= color ncolor)
+ N* Q: D/ Z, p8 k) p; q, M - (progn% g! L) T( O- v) t
- (setq chk-col nil)9 g" k8 k- l5 Z8 O% W
- (setq color nil)
{' S: W9 N' h4 l( Y9 [4 Y0 K5 ` - )
7 b/ H: t1 E) T, K9 U- n: P4 ] ` - )
4 e" ]! E+ n; Y6 ^6 P6 H \! p - )
+ o3 p5 F& l* D
- ^: y2 e& R: M, @% u; c, }- (defun match-lt (/ nltype)% T |1 N) }6 [# ?: \ V. ?. I
- (setq nltype (cdr (assoc 6 elist)))% y0 I5 j& v* g, b
- (if (not nltype) (setq nltype "BYLAYER"))2 ` g: B$ p9 j9 K5 U
- (if (/= ltype nltype)* E6 s! W* V; _
- (progn
+ E8 z* B+ t; z1 W: c/ f" p( X1 q - (setq chk-lt nil) ^) s- L3 f+ }8 v
- (setq ltype ;|MSG0|;"Varies")$ Z/ u) m2 R2 }7 \& Y# I
- )
! `8 |) C+ U5 `- t - )
* _& z) T3 Y7 Y! B5 x9 c - )
4 a @3 J! v ] - 8 r1 K3 l. b8 Y, D$ f s
- (defun match-lay (/ nlayer)
+ T% ~! [3 [5 H! d b+ k - (setq nlayer (cdr (assoc 8 elist)))
5 V- m4 d% k, l+ m+ [+ q0 C8 j - (if (/= layer nlayer)
7 t" `' x4 s) U - (progn
/ t0 P4 { y6 W4 N& @! ]3 W - (setq chk-lay nil)
# x' \ |9 \7 c/ }9 I5 ~- f - (setq layer ;|MSG0|;"Varies")7 c& j7 @: s! j8 o5 c( l
- )
/ }& e9 h$ E: F0 S+ [ - )
6 z1 {5 v1 Z' y( I* c" n - )
* N1 n/ _3 ?+ B. I0 m" w
+ [$ _; _9 W9 c, l. h6 r# u( z- (defun match-th (/ nthickness)
% k. i5 {( \7 H) Q2 y5 {- w$ ?. e - (setq nthickness (cdr (assoc 39 elist))); `7 D" ~, z* d3 m
- (if (not nthickness) (setq nthickness 0))
0 w0 w* G1 K# U - (if (/= thickness nthickness)5 {+ H. d3 K0 o5 v
- (progn$ a. r! `1 {" L. w1 f3 }
- (setq chk-th nil)/ [) c% A$ @3 b/ ]. x
- (setq thickness ;|MSG0|;"Varies")$ ?' l$ e) r# {6 d% Y
- )
/ J2 t% c* o: F$ o7 T) c - )$ w/ I3 |- y0 r2 G4 v2 ]
- )
( D+ t+ d& @# r U/ U' A - 3 M# v8 W1 t( x6 H. i& @0 U% m. Z ~
- (defun match-lts (/ nltscale)+ M) W) D1 i( ?* T3 h
- (setq nltscale (cdr (assoc 48 elist)))0 _4 |' [2 W8 T% m
- (if (not nltscale) (setq nltscale 1))
) U7 A% l. A1 D% d - (if (/= ltscale nltscale)9 w* i- }1 l, t8 T7 |
- (progn
; N1 P2 E! C) C h9 l - (setq chk-lts nil)
% O4 j: p. @- u4 ^7 u - (setq ltscale ;|MSG0|;"Varies")9 G" h* O8 Z: z5 F( j
- )
1 F8 [: `( _( d0 [1 o8 J! E4 V% Q9 y - )1 o- Z; v; n- E% Q5 K
- )
% E" S5 O) l. W$ j7 b- A3 \7 F - 7 `( v- Q2 I0 F
- ;;
# \, `/ E. i: A6 l3 Q - ;; If an item is a member of the list, then return its index number, else
4 @4 Y1 d1 u- r( ^- p - ;; return nil.0 R; y0 ~! C! T5 y6 e
- ;;
2 n8 u; c4 u. T% f" C - (defun getindex (item itemlist / m n): K1 ?4 k& L( }1 n8 @
- (setq n (length itemlist))
7 h2 w8 t1 f- e: L - (if (> (setq m (length (member item itemlist))) 0)2 A7 Y v3 ]' A: S
- (- n m)
8 B5 f; [: h6 a5 e' M3 Q - nil
$ N* C& i0 v3 v6 H6 ~ } - ) ?9 k. h. ?- }+ O# n+ |- S ^+ O
- )! f: j$ _% C/ K1 m( y' H
- ;;
- ~/ ?! u) @0 v3 f0 z - ;; This function is called if the linetype is set "BYLAYER". It finds the8 u J) m; d$ w! l
- ;; ltype of the layer so it can be displayed beside the linetype button.
" g2 t+ b' T6 W z - ;;% j9 K+ x. T6 w/ ^3 B6 c
- (defun bylayer_lt (/ layname layinfo ltype)
, w0 _ y$ d2 O8 X+ o1 M - (if lay-idx- f# k: T/ K# b$ X9 }
- (progn7 K0 [! T; q. K- v" y; y: t
- (setq layname (nth lay-idx laynmlst))
7 W' ~+ {/ @6 v5 t - (setq layinfo (tblsearch "layer" layname))2 q) V" ]* S3 g5 j0 M
- (setq ltype (cdr (assoc 6 layinfo)))
Y ]8 M) @/ |* N: R4 x7 Z1 m - (strcat "BYLAYER" " (" ltype ")")
% a9 j4 L! `# s Z - )) j; ? T. n0 e; ]* x
- "BYLAYER"
p' U) V: ^* p" x" \3 I6 Y: J# z - )
" `& l( Z% K+ q - )
7 T. L5 A) Y3 T! O - ;;
" ?. {' g% z3 Y7 @ - ;; This function is called if the color is set "BYLAYER". It finds the$ H) b H4 _; O/ q
- ;; color of the layer so it can be displayed beside the color button.
1 j" W: k) J: } H8 } - ;;
1 k/ J+ Y0 e2 L1 X8 [ - (defun bylayer_col (/ layname layinfo color)+ C9 X$ ]9 k9 c
- (if lay-idx
( k" z! B3 M' \- ^5 U8 P - (progn
- z7 Z' c- u; Q - (setq layname (nth lay-idx laynmlst))) ^5 D& C2 |" P9 }2 D2 Q
- (setq layinfo (tblsearch "layer" layname)), ?% ^- y" a1 X. `
- (setq color (abs (cdr (assoc 62 layinfo))))2 \8 T5 M# G+ K' | I3 u' o" a
- (setq cn color)
- m+ A+ Z& d$ ?& I5 o; g0 ` - (strcat "BYLAYER" " (" (colorname color) ")")
5 F$ @1 l; X, x" `1 T, N - )5 q. N! Z3 i+ {
- (progn
; b8 R6 t. c$ A" k4 Q, }$ W - (setq layname elayer)
+ Q) q H, Z' C' k - (if (and (/= elayer "")
; l; {6 J4 o( _ - (/= elayer "Varies")/ J3 D* D# ^: u" \* U
- );and
+ i* Y8 c0 n" G4 @ - (progn
: O; `0 @; y( N - (setq layinfo (tblsearch "layer" elayer))6 q0 V$ ?+ `8 I/ K/ x" b% p# M$ F
- (setq color (abs (cdr (assoc 62 layinfo))))% u- b5 S3 I5 Y5 B( i
- (setq cn color)
: ^7 l* H* p& o; S - (strcat "BYLAYER" " (" (colorname color) ")")( E. D* L* n% @7 {% T2 g8 K/ x0 u# d/ ]
- ). V# i2 i8 c. i, Q
- (progn
* |$ l U# m8 O5 E. q - (setq cn 0)
$ d8 U: _8 R( I& N% n8 H - "BYLAYER"
7 l7 _, V7 n! m7 f# Z+ j2 b - )
$ \+ V+ b( m5 ?5 H& \! ~ - );if
3 O. r, ~4 o. ]0 | W - );progn
u. O& E4 P/ a4 C! h4 P - );if
; H$ S( h$ ^) q( F; C/ Q0 r. @$ \ - )
+ ~! g6 M! s& ~& {: z - ;;
; H# D0 p7 a) E4 y) I( |2 a - ;; If there is no error message, then close the dialogue
& h. h9 x+ G2 z! q9 r$ b* b - ;;
! o- _& }% e5 Q, f - ;; If there is an error message, then set focus to the tile
7 M4 b+ l, d: U! Y: [+ T r9 i - ;; that's associated with the error message.6 ]0 d4 v8 L4 |3 k- \. d* n9 U$ P
- ;;; S' F9 K# h+ f7 x5 A; A* h
- (defun test-ok ( / errtile)
D; y+ ]* E; H: G K+ p - (setq errtile (get_tile "error"))9 ^" \( a9 a! S% r6 F4 x8 X
- (cond6 O: n( L o, t; Z; K1 l
- ( (= errtile "")
0 f3 S* ?# |$ U/ q& C: K& } - (done_dialog 1))$ |; u) f3 e2 f
- ( (= errtile "Invalid thickness.")2 H4 t% P4 o6 K. K( V4 d8 w
- (mode_tile "eb_thickness" 2))
s0 ]( a! G; k. Y k+ X) W( ~3 }3 y - )& v7 o; e; r( F6 x& L& j$ b$ s
- )/ [. \& ^. L* a/ ?
- ;;/ w$ l. |: e. W! A
- ;; OK in main dialogue.
2 {# I% }" a: j7 Q% I$ i2 ` - ;;
' `- j" p1 Z5 s( w* G' p - (defun test-main-ok ( / flag)
/ ~; M6 _+ n1 S; g. o3 } - (setq flag T)
# ~5 n, Z8 J# q" _9 B5 q - (if (not (or (distof (get_tile "eb_thickness"))
6 B' ]- g$ ]; Y9 Z: M: h- ^ - (= "" (get_tile "eb_thickness"))
5 L! Q3 ~- k5 ]" @% L) t' q9 ~5 j - );or. ?( h3 Q' D" x. O9 [0 q
- );not
! {& ?+ e1 f) o7 u - (progn
& o$ s2 Y! ~: t8 ~7 w9 z, G7 p8 j3 x! V* q* n - (set_tile "error" "Invalid thickness.")
; r. F! l C4 s5 k - (mode_tile "eb_thickness" 2)2 r4 S/ I( K' S3 ]" c- r# G M
- (setq flag nil);setq
/ G/ ~9 w. X4 G) L5 ^- [- r( I1 c - );progn( a9 ~8 H. D; ~
- );if
# h( ~, c6 {. D @0 Y8 y$ J - (if (and flag. j" j1 B2 n( x* h' t- }2 k! A
- (not (or (< 0 (distof (get_tile "eb_ltscale")))
! v8 t. z$ r) F0 e) j; s - (= "" (get_tile "eb_ltscale"))
. T! n% x; C# X, u- {4 v- y - );or & \! ?5 ~2 a- r) ?
- );not
/ }- o' |$ J/ c4 @" T% y { - );and
6 k5 `7 b" o( R& d3 [6 c - (progn' o( T% i# D' ~1 T' w2 M9 S
- (set_tile "error" "Invalid ltscale.")% u( v% x( R5 l" ~4 c# [
- (mode_tile "eb_ltscale" 2)
0 C# ~% [% V R- f3 N+ z v - (setq flag nil); 3 B( w3 ?- F* y. Z
- );progn then* {" X+ b: H8 U8 P) n4 {* o0 M! }7 X- ?
- );if
4 q: o/ e% g! t1 |1 l! N& Y - (if (and flag) \6 m- G/ T; L* B3 V
- ; Don't test the tile's value unless it's enabled.
6 }1 \: R8 j' B7 A8 y - ; We're not set up for the display-only value# E. n0 w8 D! p% _) C
- ; of "" here in the error handler.
, U' b6 Z! E$ S3 I! b - (= 2 (logand 2 eflag))
$ ^3 j- [0 t6 }0 L- X( x - (not (or (< 0 (distof (get_tile "text_hgt")))8 ^; h3 n0 p4 t
- (= "" (get_tile "text_hgt"))
5 ~' v. K+ v% M& B - );or0 X+ |( f9 r+ H& @
- );not
1 o/ ?6 C1 P& d+ g- d# M2 k - );and
5 Z$ L( {7 F0 z( e7 y6 W) t' m7 k - (progn3 X5 @, ?0 Q! w
- (set_tile "error" "Invalid height.")$ I2 {' q/ D% U3 q1 D
- (mode_tile "text_hgt" 2)
8 m" I% I; s* y% d @ - (setq flag nil);+ T0 p# W K' m" d1 w# D
- );progn then
2 }3 j5 |* T3 e9 w7 s, f: H+ u - );if" C1 I& {6 a: D9 g8 h
- (if (and flag+ T0 Z2 o/ K) _
- (= 1 (logand 1 eflag))5 D$ i' c' s* `1 P9 o" u( \# h
- (not (or (<= 0 (distof (get_tile "poly_wid")))0 {" y- n/ G$ C8 m
- (= "" (get_tile "poly_wid"))
% T; u: t: v: a' A$ } - );or. y* `) V' r3 _$ [0 B- E- l
- );not
4 Q, m# \3 y$ t0 R - );and
9 \1 I5 ~( j! ^, ~: G$ o8 `7 J @ - (progn
1 E0 U) T8 |0 l) s \! i& Q0 l - (set_tile "error" "Invalid width.")
% Z( y+ g \- i) d; ^( } - (mode_tile "poly_wid" 2)1 _4 l' N; d9 B9 B# X
- (setq flag nil)
* i" Y6 {0 m+ | - );progn then/ b5 q. `! y R9 g
- );if ) H2 K9 u/ K3 E* s+ }( b
- (if (and flag' u# M, T. [* {; E, g0 S ]
- (= 1 (logand 1 eflag))
w3 ~7 }0 L2 }) a6 ^ - (not (or (distof (get_tile "poly_elev"))* ^; \1 n L0 F8 C5 @
- (= "" (get_tile "poly_elev"))' O. S7 J. u+ [9 h. A9 N
- );or5 f2 o% O; t) u) ?* a
- );not
4 e' U2 c$ x" j$ S$ d - );and
; v0 Z5 n' J7 ?# n8 ~: R- r - (progn
/ P1 q3 y: L! w0 |' } - (set_tile "error" "Invalid elevation.")
1 G7 K, j9 `5 Y, s - (mode_tile "poly_elev" 2)% [/ L3 N- X v/ P
- (setq flag nil)1 Z# u) N1 |9 O
- );progn then7 U' Z6 ^ o7 r# _( j: W0 h* b( O z2 q
- );if ! u3 }! O) F+ @9 }
- (if flag
1 @% M. N4 A& }5 R8 Q+ P - (done_dialog 1)4 A' }9 a4 e( {# L* w" \7 h
- );if+ T q* \7 u( H" d3 r6 e
- );defun test-main-ok9 M2 ?* l& b5 X ]/ \
1 K3 w$ b, l5 X2 B+ M2 o+ g1 ^- ;;8 @1 @& H3 O4 l! b+ l2 C
- ;; A color function used by getlayer.
+ x* P: n! \7 e" H, ~- m* d - ;;! n* J" I/ y, W" M1 f
- (defun colorname (colnum)* S6 ?/ Z7 \% P: T; l0 n' M* p4 L
- (setq cn (abs colnum))& f% a C9 I) G J u9 b x: p
- (cond ((= cn 1) "red")* A0 b& S4 I8 e5 V4 V0 R+ u6 a% B
- ((= cn 2) "yellow")! O. e2 S: R z& O" Z3 b; ]7 d
- ((= cn 3) "green")& T4 ], ^/ J# v% w, I5 V* N2 e
- ((= cn 4) "cyan")
- X3 Y' k& _4 a( i1 X - ((= cn 5) "blue")
6 X3 I2 b( f- y - ((= cn 6) "magenta") ]; ?. B: _6 Q. P7 c5 i2 B
- ((= cn 7) "white")% n7 k( V0 K, \, s, m6 P" r
- (T (itoa cn))+ \/ \3 e1 n" I9 Z2 C( n
- ); w2 L: q2 c0 Z e2 ]
- );defun5 S; Z7 \" J8 n9 u% X
- . q" ~" ~' Z( ?
- ;;; Construct layer and ltype lists and initialize all+ i0 l; b. g7 T# D- M
- ;;; program variables:: Z9 x; }& W6 Q& R8 T" p) Q9 @! Z
- 7 i5 e# [4 `+ Q& q0 w! y
- ; (makelaylists) ; layer list - laynmlst7 A0 O, l; J0 i* b ^2 E) e+ X& a
( M/ Y8 s* P+ {9 H }' Q. k
0 P0 K6 _1 j- _; F: L9 Z8 m- (makeltlists) ; linetype lists - ltnmlst, mdashlist
+ F; a# C! ]6 y# z+ c1 H: b/ e1 g - 5 A% T. {7 F6 B
- ;; Find the property values of the selection set.* Y( q+ [5 U! L5 {
- ;; (getprops ss) returns a list of properties from3 q# K% ~ k* Z8 O- T% D
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH)./ O, L& C2 }' a, Z4 P
- " ?! U, a7 J% v7 t
- (setq proplist (getprops ss));@rk interesting things happen here
- R0 X0 Q( Q! {5 c: J) ?/ V - 7 k3 V9 M. |/ I/ \$ o: w- Y
- (setq2 ^! q* H. O- V
- ecolor (car proplist)
: j, p# ]' z% @' m D. N - eltype (nth 1 proplist)8 w* y% c0 c$ Y/ @/ o5 v1 {; D
- elayer (nth 2 proplist)2 o# @: w) p$ o
- ethickness (nth 3 proplist)0 G7 Y: d! ~1 E. _' u& \4 {: a
- eltscale (nth 4 proplist)7 J0 M o/ m. g' b- f, x; ]
- ewidth (nth 5 proplist)
7 _! J$ Z6 n) h X- k - eelevation (nth 6 proplist)
x+ S: z% V! C- q - eheight (nth 7 proplist), p: E# r/ ^. g, j
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
) `/ H$ v+ R* O - eflag (nth 8 proplist)
. e9 I! q) S" i0 O0 ]" _1 v5 u - estyle (nth 9 proplist)
* m3 G' c' N2 V - poly_ss (nth 10 proplist)
; Z& C2 G) @8 q# Q8 |; }: l% ` - txt_ss (nth 11 proplist)' f2 B2 d; m/ _0 k% o
- );setq- w, ?4 T. }( u; e |7 Z# f
- N5 s4 X q7 V" A' O+ N% a W
- ;; Find index of linetype, and layer lists. y8 G5 ?( I6 M
- (cond/ O! c( ~) P3 N
- ((= eltype "Varies") (setq lt-idx nil))7 W5 @2 l# w5 S p" d9 {
- ((= eltype "BYLAYER") g7 V, l B8 R: R2 {) A
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
7 X2 C6 R. L% o% s$ x' C5 X - ((= eltype "BYBLOCK")
- i3 W. K# y& Q( N - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
, k) l2 Y$ X- S1 W% a - (T (setq lt-idx (getindex eltype ltnmlst)))4 Q, \, o( B& T3 e
- )% M# e, f% U6 C& u
- (if (= elayer "Varies")4 H+ K k* \3 h
- (setq lay-idx nil)
0 o6 a1 X: W7 d0 }2 e - (setq lay-idx (getindex elayer laynmlst))' q% e( H' V2 {. ~
- );if/ i: g% H8 O- c
- (if (= ethickness "")
8 I5 q' i; X. w1 ]& I8 ^ - (setq ethickness nil)' [$ F5 H# X5 h/ o
- );if5 M4 P$ ~: x" Y+ L* o# N5 x
- (if (= eltscale "")$ y" ~0 B( e' m7 s, I$ I. ~0 P
- (setq eltscale nil): `. i) E; @ s0 Y+ P
- );if
W; l; `6 x4 h% @6 r, E7 T
+ y4 g/ a* {4 m+ G- \* S0 |: M. [- );defun ddchprop2_init ; end (ddchprop2_init)! D2 [* |1 q4 r: _/ }( E2 ^
- ) A& O: p }( }+ l5 T) R2 |4 Q1 w- L
- ;;; (ddchprop2_select)8 _# O% p, i- k5 y5 h# h
- ;;;( w3 N6 f% ~) k6 Z( P
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:
" O; @ m8 w6 C - ;;;
6 ]! T! c; i+ f k' a0 ` - ;;; 1 - Autoselected.) V( B! z6 z2 H( s& I8 a
- ;;; 2 - Prompted for.
. L: P# p1 N1 L/ E - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
1 S+ f4 o5 x1 M# c+ y8 g% L6 T - ;;;
! p% A' {- o4 ?/ Z7 T6 \( f# O - ;;; The (ddchprop2_select) function also sets the value of the* {6 s; o& w6 Z1 k* [
- ;;; global symbol AI_SELTYPE to one of the above three values to- i. v) }1 b: s) x8 O
- ;;; indicate the method thru which the entity was aquired.
. K( I' z, A3 c9 B9 Q - 6 f e0 r, _& D8 \
) a, q P6 ?' H, t: x3 S+ t! ^- (defun ddchprop2_select ( / )
4 x$ H2 h1 n1 s" i0 N - ; z# m) `# i8 T) o3 I
- ; E6 q# `. m7 e
- ;returns only entities in ss that are in the current space.
$ J4 z# M! D" y& a& F5 |& c0 i. ~ - (defun ss_in_current_space ( ss / a cur_space ss2)2 e& k# T; L) n# y6 x' A8 l
l9 e% h: ^7 q5 I6 x; F- (if ss# x! w$ N8 w9 Z1 V+ F
- (progn( M' G" T: B* W
- (if (and (equal (getvar "tilemode") 0)
8 m7 N8 k3 r2 l, k7 ?5 t; X - (equal (getvar "cvport") 1)* N+ c$ M k s( ]3 ?' @
- );and 5 L; W. g4 q2 `' F6 S
- (setq cur_space 1);then paper space is where we are.- f1 ^5 V0 h* F; {( x
- (setq cur_space 0);else model space.# P: V; Y7 e2 G- `
- );if6 _$ i5 H) H# t# E: E
- (command "_.select" ss "")1 ~! _! }8 e4 Y+ ~' a4 s, k
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq6 X; \; T4 n: ^
- (cond ;;;;;tell the user what's going on.
$ L; \4 w0 O0 A$ O( b: S - ((not ss2) (princ "\nNo objects found in current space."))
8 W7 \) v4 l! `" q5 s' D- S - ((not (equal (sslength ss) (sslength ss2)))3 B4 o2 `$ Q& z8 d, h
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2))): e+ x9 x" W$ D+ b
- " object(s) were not in current space."0 e# K- x1 g4 S j
- )( w$ y6 c. `5 j0 X: Y; L
- )
5 S H, R. P; \# | - )
) q3 z1 c3 [ K' C$ M! x - );cond
* }5 U6 I a7 B& v" i& u8 B2 r - );progn then& G; j1 h: b2 i: S3 d' x: s
- );if / I2 N2 \- T( r& L
- ss2
) k1 u5 u$ z) c - );defun ss_in_current_space( ? S1 u: ~- Q5 r' E
7 g. o: ?8 }# K% g- @7 j8 i3 ` V( F
- ;;;begin the work of ddchprop2_select
! V9 g8 e- E. ]: G - # {+ Z5 _; s5 ]3 K! ^" o" i" \" }
- ;; temporarily restore original highlight setting.
9 v6 s! ^3 t! E& b% X5 } - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
' N$ f3 D: L$ \2 p0 T - (cond
: w5 o2 W6 f9 A6 F6 K - ((and ss
, Z( n" }% s; \' I r) w4 B( c - (eq (type ss) 'pickset)
8 R5 j. R8 m1 I% o" [6 C - ) ; selection set passed to% O5 W1 `" B) }! z
- (cond ; (ddchprop2) as argument) d" I7 {: m6 B% {
- ((not (zerop (sslength ss))) ; If not empty, then" x8 o( s6 M0 f g' P$ X' d
- (setq ai_seltype 3) ; then return pickset.
4 D, ~$ N! |7 o; k+ e4 x - (ai_return ss)% k5 ~* u0 x2 _ p8 M4 ^
- ); h- c5 A/ ] ]$ s# S; C
- );cond close8 `# q/ C3 y( C ~! v
- );cond #1% @0 R7 W5 b, G; G2 R
- ((setq ss (ai_aselect))) ; Use current selection: U4 Q, X6 @, W- u+ I+ u- } [4 t
- ; set or prompt for objects- l0 i6 M, G% b1 f$ C
- (T (princ "\nNothing selected.")) E$ G5 }4 r3 W
- (ai_return nil)9 X; J9 v8 ^1 y8 {/ U
- ); a7 ^. v* a2 P6 B1 m1 G9 Y% N
- );cond close+ ]2 ^$ U: P/ z7 F
- (b_restore_sysvars)
Y$ b+ f* D# P6 j9 ]8 _" U - , V6 A( K8 _5 ~- d! v
- ;(if ss
J+ u7 H1 Q0 k; `& i' P/ a - ; (setq ss (ss_remove_locked ss))
% b2 c8 t4 O. w - ;);if1 C3 T& Q; f, v, Y5 G
- (if ss" l: |9 i0 z: M: O! F
- (setq ss (ss_in_current_space ss)) . w5 q, C3 Z5 `1 F( j4 a
- );if
$ B# f1 Z# M1 ^/ p - . L- ~+ p) M$ o9 {
- ss$ c7 G/ y/ `8 F, |* j3 `
- );defun ddchprop2_select
b2 ~, ?2 d7 ?5 b - 4 F3 E4 G( ~# t( ^' C0 D( V
- " L1 j/ c' p: u6 e8 {- p, f% o' c' i
- ;;; Define command function.
; u; q' o. B. A - (defun C:CCH ()
9 \, T) S9 B5 j5 o* H - (ddchprop2 nil)7 ^6 J N$ m. _( e4 P& B
- (princ)
- E; |1 J* A# u+ T# d - );defun
0 P& L8 A! t. B8 f, l
! K5 B# Q6 d9 I% F' ^4 ]
3 X& {+ ~8 T0 d6 y- ;;; Main program function - callable as a subroutine.% b/ H' k# f7 N$ x8 C# Y' p
- ;;;
0 {4 ^: i1 C+ p7 Z - ;;; (ddchprop2 <pickset> )2 g1 j( m! M8 L2 T H. }
- ;;;, A5 G7 K7 V+ |( O% J
- ;;; <pickset> is the selection set of objects to be changed./ w) T" b; m, Z7 H, C3 @
- ;;;- N: ~/ |; m D, G0 I/ T* @$ K
- ;;; If <pickset> is nil, then the current selection set is
: F+ H) v4 s+ K- A2 { - ;;; aquired, if one exists. Otherwise, the user is prompted0 T7 T$ B$ U, T
- ;;; to select the objects to be changed.
* w) w7 }6 P4 Z% M& _) Z: O - ;;;
, D# [: m, g* B! Y3 k - ;;; Before (ddchprop2) can be called as a subroutine, it must
& \& N( z2 e7 |% ` f! [' B' j - ;;; be loaded first. It is up to the calling application to) ]' G8 v1 w& ]$ ^& r6 a
- ;;; first determine this, and load it if necessary.
: \" K4 N, Z! A- v0 i" q9 O( m - $ p' J$ N3 M4 K5 m1 O/ _0 [
- (defun ddchprop2 (ss /, d* J" F9 y, H8 H+ i. J
- : ?' `% L2 _* F7 o9 a9 D
- a
1 d$ ?7 }. K5 q8 K+ i7 b - add-mdash
- o. d1 \8 \, j: ]' A - assoclist
) H/ U1 c4 i, s* Z1 U - bit-70
. x0 u) Z0 b' z# L* j - boxlength
$ S3 c O/ D1 o" ^# E8 E - bylayer-lt$ \' i( y. w9 N9 O% V
- bylayer_col
) y% A* k- }. T. k, P" T - bylayer_lt! L, _/ Z+ P0 W8 J
- call_chp2- ^ a7 b9 h1 K9 R$ L9 L) A, Y
- chk-col( V9 s) ^( _6 m% o& v$ {
- ;chk-etype ;var removed by rk 4 t/ l5 A8 W% H) t
- chk-lay + x3 R5 l9 e0 m: s& P" x, |
- chk-lt
/ y5 m( i7 j) I c' V( Z - chk-lts ;var added by rk
1 h5 z8 c1 A& z9 e+ ` - chk-th1 V9 t" j$ n5 D+ ?
- cmd6 c0 v1 Y+ k) P
- cmdecho0 ` m; q* J: ^
- cn' Z" X g) `9 R! \1 J
- cnum
- \; ]% U8 i7 v1 B( b4 \ - col-idx
8 ]# Z7 O/ S# Q7 M2 g1 u - col_def% j& Y) X* {8 ]' p7 t
- col_tile5 `$ c3 ^2 m: ~9 I3 s5 x
- colname
. ~$ m+ y h6 o/ t. ^) b2 I - colnum; p* A- e% s9 O) g! D- F: b
- color0 Z5 y; i, A/ E! d
- colorname7 R+ |4 M1 G4 b
- cvpname/ ?2 e/ p# b4 M
- dash0 U& i t9 N+ J1 T- c, z! {$ {
- dashdata
$ H1 |) U7 T1 y1 B - dashlist& q2 H( s& `) R" c
- dashsize/ E* I& ?$ z3 O9 S, P3 I3 X( ]
- dcl_id* S3 _7 L1 {. a. x; r. m8 c7 T
- ddchprop-err3 I* o8 U8 ]5 i9 D
- drawpattern: x/ G1 |- {$ \+ k6 x9 V# ^
- ecolor; N" G$ i- W) U( Y6 c# z* y
- eelevation
; x3 s* w7 V, F ] - eflag
3 L) W( q, T0 S* o+ @5 U. c8 w; ` - eheight
2 t9 R4 ], D# `# k* r1 p - elayer
; q" y6 j3 j$ e- _) L& X1 g" M - elevation L$ r; ?) v) P: {; Q$ X8 G
- elist! y, o: B7 s* Z3 I
- eltscale
; o8 L7 U5 d7 b+ ~ - eltype
* p2 |* Y. T2 ^. E! } - en
/ O) Y% o4 w5 n. i- U; I1 r - ename A4 w4 P- Z# S0 o
- ESTYLE ;var added by rk
4 }$ m1 @* Z& K - ethickness: S/ y5 p! t8 S7 s/ G8 W2 S
- ;etype ;var removed by rk
9 H9 m! L. ~+ s D1 N - ewidth
) I; K- ^+ n8 v" {9 K [5 B - fchk" y' V' w$ L: l5 g
- frozth! _+ i/ H1 s& m, F
- fx3 L2 A( c$ B& B2 Q9 q& ]
- getcolor
8 q, D& g2 c. n2 i - GETELEVATION ;function added by rk
9 W$ E3 O L# R& d% H# q - GETHEIGHT ;function added by rk. E8 O. N) C' E; Z8 \- o
- getindex
* M! Y7 G% u/ y8 O. h/ a2 L& ` - getlayer
! ^3 X) U, O# h - ;get_locked_layers ;function added and then removed by rk . G; q: |8 ?7 ]
- getltype
2 g! [; I( A4 x% G& M8 _ - getprops: _8 J* b+ R/ z B1 R
- getscale ;function added by rk
" \% {2 y r# Y) [6 q - GETSTYLE ;function added by rk
4 j; o* s' |9 }: w5 d0 e4 ^' u2 ]. \ - getthickness
# z! H9 u$ c, g - GETWIDTH ;function added by rk& r& P0 Y D0 a" Q/ t G4 B
- globals8 Z" H. H4 H5 T2 y+ ]
- HAIR_STYLE_LIST ;var added by rk
9 [% y) |0 a6 P% d0 ]) `3 h - height
4 n) D+ ~3 @6 X: _+ g - index: Y* i* ?: a8 A
- item- p+ x5 V' M/ p
- item1
" X3 N* `- M% ~9 ?) m0 ] c7 S0 ?0 U - item2; _$ Y9 u2 G2 R; s7 C1 B3 M
- itemlist
! A3 H7 k& A1 j6 U - lay-idx
" T" {4 Y$ S5 `) u) u - layedit_act
/ ^7 Y1 U; L* D - layer6 q* b- G% k) \3 O! t: x* H
- layinfo/ D6 g: s$ ]3 F# c0 c
- laylist
5 \8 e0 [. a' f2 M, a - laylist_act: u' P! F3 L5 U! Q2 O) w) n" \: e' z
- layname: t0 w& I2 n% g( q* {2 L! A
- laynmlst4 L; u; l# ]: w6 G' @ T, _; B+ l. @
- layvalue
+ I5 r* U0 A' f4 d. X$ Q, W3 ` - linetype5 I' b& L2 T2 Q/ N6 z" `% U/ Z
- list1
" `. z6 t2 T( h% y2 W - longlist
; g) U! ?4 t2 v7 @8 o+ ~% G, ^& a$ Y - lt-idx" ]3 p8 \1 u E) [0 B! i Y
- ltabstr
$ o- ~( ^, G: P$ O' l- t - ltedit_act' g5 z5 {& U% \! z
- ltidx
" ^2 N; x0 Z: H# w' l - ltlist
: g: Z% o6 p6 O1 ^ - ltlist1, u- {3 k0 [. [9 K
- ltlist_act( o2 C5 V, `' r" u6 _
- ltname
0 q6 e/ ^# V' i& i; u' H9 N! Y - ltnmlst
# Q) P' M( @3 Y- ` - ltvalue
6 A$ a5 l4 N; X' v - ltype: V, X8 O7 \9 }. J8 Z8 Y" e
- m
" c8 n; a4 w; O - makelaylists5 i, i- u9 N% \
- makeltlists6 S3 s3 @. [5 B: r- L
- match-col( \. l# E; n D; I
- ;match-etype ;function removed by rk/ U* X* Z( X) {' ]
- match-in
2 y; g! D/ V. A0 z( W/ v! N - match-lay
8 S9 C( j3 {2 v) c4 e+ { - match-lt; y$ q" l, b* `3 p; ^3 |1 f7 J
- match-lts. K/ [4 F. o# I, v" V# ]5 q; m o& Z J
- match-th
' F$ @- R8 H" c, k! _ - match_col
# J. U. S" J: C [" N - mdashlist
& A& o% f4 R( C7 f* G7 y - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk6 R# D1 ^/ Y! K) v; b
- n
1 ], v: K9 y0 x& ^ - name
# ]6 S$ C# n _( a1 d2 f/ ] - ncolor* Q& m/ {- v3 n$ a& e9 s
- nlayer4 [4 u+ q# a( T0 _+ a- D
- nltype* Z' T" {* \; g7 E" @. A+ @
- nthickness- R* ^. B/ y x1 D2 z0 G h! o3 W+ I# k
- off( ~6 G; o: r4 ~2 c s9 d
- old-idx- D/ m2 a) {7 I" v5 L
- olderr
( D7 n$ v$ C* H% p$ _! Q - on3 Y! i4 e3 i O- y8 b$ p
- onoff+ P+ E3 L: L ~4 q$ e
- patlist* l3 V2 k8 j* q
- pattern
" L* r1 J t# g8 h - PL_WIDTH_GETTER ;function added by rk
3 a2 W: f0 R" `: M3 L* {; f8 e - POLY_SS ;var added by rk
7 ?5 y5 F9 f3 j& l: O7 m$ N - ;POSITION ;function added by rk and then moved to ac_bonus.lsp
$ E: d+ S, O" m, D4 Y r' Q - proplist
0 i" p& W0 L; ~4 T - reset-lay
9 h2 D9 p N7 t% p' z2 k5 ^6 j" _ - reset-lt
1 w" v/ {0 m e r* I. s+ U - s' n/ U% Q3 z/ C* P( c: K
- selset
, q! R! A1 ~2 M% f - set_col_tile9 K& D% V, p9 T4 b; r) [
- sortlist
! m L( m& x/ M2 u* C - ss
# G: Y$ c+ Y9 j( ?# P7 ^+ q - ss_in_current_space ;function add by rk.
( o4 |% X' a l+ W t/ J9 J - ss-index( F c4 c/ v# X7 G0 C
- ss-length; K( t! W1 Q3 X# ]2 a
- ;ss_remove_locked ;function added and then removed by rk.
8 |- _% R+ K# X9 |* p* W - sslen6 t' c; Q3 i5 M y- d- D" i5 E
- temp_color; k" w, V9 V- O; q. K
- templist2 N1 i! D2 t& K! D% T4 a
- test-main-ok2 `& K6 \- ]* Z
- test-ok
* P6 K5 M' f5 ^' y% n0 y# k - testidx% A0 V7 [! d# x1 ~# P/ ~/ t
- testlay+ V& n* s3 c2 g4 R% _
- th-value( H. S# e- `: c( H0 q- z [
- thickness
) K9 V9 E( w5 ~ - tile
3 b* f9 Q' c# K$ g9 g - tile_rect
2 u( K) O2 ? j - tilemode8 y N! m2 G6 G* m- m
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
& y+ a4 Q, i- T9 k+ ^ - TXT_SS ;var added by rk. H: \5 m1 }7 L7 B, N/ ^+ g
- ;undo_init ;removed by rk.2 m& Q2 N0 a: s- ^3 |
- vi9 m5 B# D$ g( ^, S7 p# P" u: Y! Z
- vpf
4 o- v" L8 a. t2 ? - vpldata
7 }* n2 g3 k8 n& C6 G% k - vpn/ g8 L, m2 p. C1 b
- which_tiles
- s8 }8 I0 S$ g6 [7 J. e4 W - width
& j: d/ [6 B& A - x* f4 E6 w$ Q- B( X% H9 i
- x1
2 p5 E' M! r0 { - x2
; L/ O5 H3 a$ Z# m - xdlist, d/ }8 |2 g6 N" G! i4 f9 E; U4 R+ A
- y
# H: x1 i! ]; x( ]/ P2 Q5 f4 f - y1/ N5 T( u9 S. Q6 d1 U' q V8 B! D
- y2" d$ f6 e" X+ @" \! R
- )
3 o1 c' f# z+ J
4 j7 N- S, {5 i4 f! R1 G8 [5 N" K- (if (and (not init_bonus_error)
$ F8 K7 w, g* O+ R, {: V: Q - (equal -1 (load "ac_bonus.lsp" -1)) 1 o* p# e3 P9 G' Z( u
- );and
2 g# q' k o" ^8 R# y - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))% _& _9 [. l- Y! W* q9 p
- );if$ d& R8 ?3 h. ?5 {: W
- (init_bonus_error (list
* _% ~# {2 g7 {2 Y, v p# M - (list "cmdecho" 0 : h2 D5 g4 F: n2 o- C! e
- "highlight" 0
2 `/ s/ W" Q. ?( \7 w: H - "regenmode" 1$ n, w* q) e, f, t
- "ucsicon" 0- J0 d# D2 O. s) b9 p( f
- ) ( Z+ Y s6 l9 M& V2 B
- T ;flag. True means use undo for error clean up. * _( o: J" n }1 d1 w+ d
- );list ( A {2 ^ a2 b2 \! ^( M& t$ z; B! P9 \
- );init_bonus_error
3 v" M: d! ^8 ]4 b& P8 P
: y, ~% P. X3 y2 X8 q/ G- (cond
0 m" F* \7 O9 Z6 @" F5 G - ( (not (ai_notrans))) ; Not transparent?" N2 T( Q# k. l& E9 R
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?! X- T% w* y V, e6 g$ }; Y
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
5 T1 f! [4 c3 _4 \8 k9 S' H* l+ Q- H - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
$ V5 V5 B3 l. o1 | - (t % c" F% L0 {, _; G: Q0 B
- ;(ai_undo_push)
5 Q( z! F8 E3 F1 D g G6 v, E8 I - (ddchprop2_init) ; Everything's cool,
: y, ~* s- f+ j' M# t- C - (call_chp2) ; so proceed!1 q+ S2 m6 t5 T+ g& ^5 H
- ;(ai_undo_pop)
6 z0 t/ `, p7 W5 F0 F# y4 h - )6 L1 X! Z4 b( a
- );cond close
, R' M8 P2 f$ N y$ b
; j* T T1 C; m" s- X; a _5 S- (restore_old_error)
$ k$ Y* o( I) ~6 G8 ~2 j- Z! ?
9 B! ], k. g$ j* c- (princ)
3 ^) V# d: v3 @5 M) _ - );defun ddchprop2, e+ h9 V/ p0 a5 L$ p2 `4 b
3 i! v2 S. B5 x/ L6 @6 z( ^2 X9 j. w- ;;;----------------------------------------------------------------------------$ n! o7 a. H; R5 f
- . R% D! G0 W# ?3 X
- (princ " EXCHPROP loaded.")6 a& D- l1 V3 U5 X9 s" o) |
- (princ)
' q; k ?* M* I, B; ~/ |: s9 H - $ W6 Y2 ?3 _1 H, Y3 [2 T" d
- ;;;----------------------------------------------------------------------------( w+ n- @7 G' Y, a8 {: O: i* W( m
- ;;;---------------------------------DDCOLOR_LSP--------------------------------6 z! B5 l2 v5 `" u
- ;;;----------------------------------------------------------------------------$ w( I t4 C3 w0 q- E
$ a! J) W7 A$ b6 T5 F- ; Next available MSG number is 24
! E2 C; o7 o- a" b |! `$ n - ; MODULE_ID DDCOLOR_LSP_, C2 f7 U; d& T* T3 a% l! @* i
- ;;;$ C1 B* f0 ~) C: k
- ;;; ddcolor.lsp
4 I6 P7 I* N, z) V9 g: g3 W8 @8 n - ;;; : H( X# [ v2 [, y; p4 K( h' B& H
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
& t+ ?- D; V# u& q( t8 E5 R - ;;;
% D+ b+ f( N% k2 i/ d5 g - ;;; Permission to use, copy, modify, and distribute this software3 F G# L0 | l2 j6 B. _
- ;;; for any purpose and without fee is hereby granted, provided. w m Q* u% G# }/ H6 V
- ;;; that the above copyright notice appears in all copies and' {0 g) U$ \$ c. @
- ;;; that both that copyright notice and the limited warranty and
) p& f3 d# `$ Y: C7 m+ U D* I* L" j Z - ;;; restricted rights notice below appear in all supporting
/ E( @* k; U f2 Y( R& g - ;;; documentation.4 m# I5 W% O' U2 F* S4 |
- ;;;
0 T( `* i$ T/ Z& s, C4 v - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.0 h! Q) b# f) J9 {9 F
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
U+ E0 F- h6 N - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
9 X! b" Z' o5 V4 ~8 Y - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE6 I# ^7 u8 v4 P% {
- ;;; UNINTERRUPTED OR ERROR FREE.
2 {9 e* x! g f9 i9 D; w0 p& s - ;;;
0 p% F) t6 }+ d0 t5 }! h$ _ - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
! s6 X1 s. H) [' B" ] - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
: m4 A% D& X, _5 X J - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
) E% \" |1 z8 T/ k - ;;; (Rights in Technical Data and Computer Software), as applicable.
6 z8 J( z' S% x; v, ? - ;;;
8 y% z4 A# p$ x/ E6 Q. B: l* u) d - ;;;.7 O% @/ D4 ]/ B
- ;;;2 ]8 z, P0 ]9 u
- ;;;----------------------------------------------------------------------------
3 \- S1 Y& W, I9 z, Y& R - ;;; DESCRIPTION* b$ W- H; e( F: N8 i
- ;;; % U* a3 q! g; c. o6 q, k" k1 |" d
- ;;; Chromatic Pallete style color selection dialog.
" R( `! A, b( o - ;;; 7 U3 O5 K* o' t- O
- ;;; Globals:
4 o# r9 v) B% [ - ;;; 8 f" V0 `. Q; n
- ;;; chroma_color - Integer color index. The last value selected; I5 S! ^# Z7 E- e7 p$ g
- ;;; by the user in chroma dialog. It is not cleared or reset
, Y. n* ?) ]9 j* I0 y - ;;; by a cancel. Only used for communication between callback* ^' R e U: {2 F
- ;;; functions and the (chroma) funciton.9 i: V0 J9 P1 D6 s4 N
- ;;;
# [9 ~ W8 r0 ^: F - ;;; Depends on the definitions for the dialog provided in chroma.dcl.
0 d4 i; L2 j9 @* | \ - ;;;
) ?( e0 D; \4 v0 q9 @ ~ - ;;;6 Z, m0 v0 @! W) j- _+ ]/ w$ N
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma ( g8 o4 c; M1 B( k
- ;;; pallete style color selector.
8 R7 F0 o8 C& A% L! S7 d1 V& W7 T - ;;;1 U. f* m N- s- M2 ?. B3 W: @, u
- ;;; ===========================================================================5 W% P, s' S, D* L( z
- ;;; ===================== load-time error checking ============================
T0 \' R# b9 O6 c) {! W - ;;;
9 u8 l% g# g$ E. W3 P9 l' d - ) s- I/ n P* l9 [) A N4 }
- (defun ai_abort (app msg)) U5 T+ u4 h/ y' o
- (defun *error* (s)% P; G" P5 m) D) L- h) f {
- (if old_error (setq *error* old_error))
g0 @4 I: V% }0 x4 T5 \) N* v - (princ)' C1 f( z3 w% A2 g
- )* U! `" k& e! K' \+ c+ Z
- (if msg
: b6 P" z1 F+ L1 G - (alert (strcat " Application error: "
8 c5 C4 W- \- n3 W+ v - app
# _% u6 K6 h8 J7 E5 n" E - " \n\n "& n! A; A j( Y! p
- msg
- ]( E9 `$ u k$ [5 A+ B& } - " \n"
) o$ {( ^- v4 f - )
, e, N# o: Q0 L% ?1 K2 m2 Q+ m - )) p+ p# v2 v2 ^, K$ {3 s% k
- ) F' K [& q! h0 T4 K0 Q) P9 o& @
- (exit)
* e) [- E) W% i - )
8 L8 ^6 \) F2 D2 f# S4 Q - 5 H" m9 s* N9 ?6 Y+ f& s
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,9 B) V9 k& q; Z6 X4 m" T/ x) H. w
- ;;; and then try to load it.
: e3 V& z( i9 E6 i4 R7 ] - ;;;( u& i9 O2 g- @5 T
- ;;; If it can't be found or it can't be loaded, then abort the
* e, ?' r. T* ?+ u - ;;; loading of this file immediately, preserving the (autoload); Z U, {# z! ~4 B* _
- ;;; stub function.. k2 h! S7 S ?$ t
- s# `0 r6 L2 Q- (cond
7 B8 Q7 n" }! b0 d/ }& n - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.( Z8 Z9 f+ J8 T/ K' G5 H+ z
- " U- |7 h' v+ [1 G9 C k! T
- ( (not (findfile "ai_utils.lsp")) ; find it
% B% Y, q" |3 B4 ]) d5 E - (ai_abort "DDCOLOR"7 {7 r$ _5 O# r+ I4 j7 L j
- (strcat "Can't locate file AI_UTILS.LSP."
( n9 K4 j) L3 c9 O, {) L - "\n Check support directory.")))
% h8 l, E6 d' J* k( D* \0 f
R6 L3 w4 O0 h- o+ ]0 a5 F- ( (eq "failed" (load "ai_utils" "failed")) ; load it2 H- p @9 o: x4 E; w) P
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
2 S. H* K7 ]6 b+ C/ y7 b - )+ @! e, W6 {% G% { K8 h$ P
, Y ^" h! V; K- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP0 H/ | h: F3 d9 P0 F' U" A
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
' \7 }1 |- s: Q' p$ V - ) ; ai_abort's alert box dialog.
+ M4 t9 Q3 Y6 H# Y/ a - 1 J+ z3 v" \7 S5 t/ e
- ;;; ==================== end load-time operations ===========================
/ ?4 \/ h' i. T: v3 \0 D; m8 z2 t4 u
6 H4 {* g! w8 @4 i- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
% ~( Y, L5 A( E; l! ` - 4 }1 W v A( z7 ?" Z
- ;; Main Color function, called by setup code.
2 M( e. h4 D) _/ J. J - (defun ddcolor_main()
8 @8 h6 c; {, d6 q6 w- }8 q - W' I# W6 q" u2 R
- (graphscr)
1 ?! V1 G5 d/ ] -
0 q7 B- p# t4 M l8 J - ;; Get the color of the current layer, for possible BYLAYER color swatch.
8 y( r/ P8 U" h/ i4 I, z! d$ S5 C; g - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
3 f0 X' L+ ?" C0 M2 C - 7 y c# c; n! K2 V9 z/ w5 O
- ;; Call the dialog here...
) V/ \) q3 N' ?5 C5 X [, { - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
' |) ?2 C, c: d$ v - ! `- K6 c7 A0 _0 m( F
- (if clr6 }8 z1 n3 l- n( ^
- (setvar "CECOLOR" (citocs clr)))
9 ^4 ?$ w) c/ y' I" s; e* Q& ^ - )
. D' }& W+ }9 c: q - : w! d5 ]! O7 O6 W! m
- ;;;
/ F _1 J. U: T& X& _' a. f - ;;; CSTOCI -- Color string to color index
r9 F/ i$ I9 p4 r - ;;; Convert an arbitrary case string into a color index.
) A# \5 a% ]) \5 S - ;;; Returns nil if string is not a valid color.
7 a: h3 m2 f& W' i- | - ;;;$ y2 l; M/ @( s: P( x
- (defun cstoci (str)" @. A9 n9 v& }, q% {
- (setq str (strcase str))
8 R: k1 A3 Q& Z' A+ C - (cond" Q# i3 M# T' }. z. @$ O4 x8 C
- ((= str "RED") 1)
/ W% |+ B0 Y9 G* y/ F - ((= str "YELLOW") 2)
: @$ ~7 `6 X# N8 w - ((= str "GREEN") 3)
, S% z/ E& H! m - ((= str "CYAN") 4)
" G% `* B1 c% D+ S2 T - ((= str "BLUE") 5)
6 P: s2 N# M1 E" M& M1 X - ((= str "MAGENTA") 6)1 \4 n6 ]" v y& A, m
- ((= str "WHITE") 7)
; t) x9 H) u) v% D; h - ((= str "BYLAYER") 256)6 n! }% P, }% s. r0 k3 P
- ((= str "BYBLOCK") 0)
9 Y% f1 H# s4 w% B. C! @/ {" L - ((= str "BY LAYER") 256)' g& b# q( k$ q' Y
- ((= str "BY BLOCK") 0)) t# F/ `& _: x. v/ ~; m1 E- \6 k
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
* a8 W ? Z- U2 `/ q9 p/ }$ K - (nil))5 ~( ^/ ?5 N' Z! o+ K' V
- ). Z6 Z* u6 N- z& g8 }) G
- : ?7 K3 a: c1 s* y& s* n% U" ^
: g( i7 v4 Q# O3 y+ g' F: t% d$ }- ;;;( Y3 z$ L) u' n& d
- ;;; CITOCS -- Convert color index into standard color name.
( y) s; F+ X* h: Z! ?' u/ _- Z - ;;; Will return the standard and logical color names as text
2 Q$ `5 L& I# Z1 [1 t! _ - ;;; strings. Returns nil for out-of-range color indicies.
/ e8 I. k6 }; U - ;;; D2 x" W5 {' |% |$ l% l. ], B6 {
- (defun citocs(i)( d* E Q1 K+ ^2 S$ G4 R8 H# \
- (cond
2 Z" }: i( ?0 W4 k - ((= i 0) "BYBLOCK") j9 |8 R. K1 S: b; f7 R o( p) W
- ((= i 1) "red")( [& ]8 o9 T9 Z' b& U t
- ((= i 2) "yellow")% D) O. [( j( R+ d+ f
- ((= i 3) "green")
9 ~& J0 A4 k5 l. q# e& _ - ((= i 4) "cyan")1 i4 R8 O/ _! { X% n# C8 Y
- ((= i 5) "blue")1 u7 I+ l/ G# K6 e5 x- @6 Z9 S
- ((= i 6) "magenta")3 h4 ?. U3 r4 ]: V( X
- ((= i 7) "white")2 y1 H1 }) {" ]# X1 z
- ((= i 256) "BYLAYER")" J1 i5 Y6 [- c/ @, u( d/ W
- ((and (< 0 i) (> 256 i)) (itoa i))0 |( g: c' |3 Z
- (nil))! |4 O9 X8 c3 k: X: v
- )
0 i0 q+ `- q! p% i' L* F& d; k - 8 Q1 N E$ a$ R% ?# F" O$ G3 @; ]- V
- ;; Start of ddcolor$ H- C! T; X- p0 d
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho& |" c7 D' c% ^4 [) N" a% x7 |
- old_error *error* ; save current error function
6 \% l& k& Y+ m2 Z - *error* ai_error ; new error function9 d# m5 S7 i' a0 D5 a$ \/ m
- )
+ X( j2 y R, H m
' k. K6 d f1 `- (setvar "cmdecho" 0), \5 x1 {6 G; Q! @! ~
- . a# {4 y- G1 H: m8 G
- (cond4 c+ |$ b# V# S. y7 Y
- ( (not (ai_trans))) ; transparent OK
- a0 @6 T; d6 A0 Y! Y - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?! W4 ?7 @+ \) @3 O4 e \
2 ]9 Y" X$ k* k8 H- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
9 Y- V" G2 k# E - (/= 8 (logand 8 (getvar "cmdactive")))
" G6 i$ f; C8 @3 `9 A, G* m0 ~" f, M - )9 b5 s" ?9 ~- u+ X4 Q# z8 b
- (ai_undo_push)
) U" z' R9 A( |; r* w - )
( v' u! o) f1 o7 N, P - : a0 t5 u* F' A7 v
- (ddcolor_main) ; proceed!
3 I7 A. A( E7 G9 {) `9 {1 ^
, [, g( D# {7 Q4 T3 E) g- (if (and (/= 1 (logand 1 (getvar "cmdactive")))5 G3 H1 L2 [5 D I2 x, p" G9 v
- (/= 8 (logand 8 (getvar "cmdactive")))8 m( Q: Z# m9 z( v1 u. F, i+ x
- )9 R+ V; y# F" ?, B
- (ai_undo_pop)
. l+ C5 F& _5 Z$ U5 j - )
& n: H" ?/ ]9 d$ g - )
0 p) |% Y$ n. Y! U; e - )
4 W, [$ ^$ k; D# |" ^; B! X0 R8 U
f+ a: M$ q0 D H) m" m- B5 _- (setq *error* old_error)
* O/ B+ i/ R- S; _ - (setvar "cmdecho" old_cmd)
; v/ Y; Y7 ]/ d7 Z - (princ)2 _5 N) }: Z# n
- / F2 t8 R0 m6 l0 Y: U' v% t- A6 r
- )$ q3 S! Q) y) R: O) [" {+ c8 D! r
- 2 y: ~( }% D$ t4 z Z. K
- ;;;----------------------------------------------------------------------------
6 ]9 e- B) x$ `, {, m9 w7 A5 r% x
3 j1 g: p' {" B( K; n2 ^- (princ " DDCOLOR loaded. ")
: n4 T) Z2 T% }) L K9 Q3 } - (princ)
9 C# x6 O. L+ D3 a3 c3 j1 |% h8 J. e
4 F/ w, [* |, N S, L0 J5 f- ;;;--------------------------------------------------------------------------;. k7 d# H" Q! \; J
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;# C/ l3 f/ b1 m) q5 F
- ;;;--------------------------------------------------------------------------;
- s; y- i% ^% q - ;;; ssx.lsp( Z4 `8 b: X# I( n
- ;;; Copyright (C) 1990 by Autodesk, Inc.9 E) a- [! f4 g2 {- d0 J
- ;;; Copyright (C) 1991 by Control Systems, Inc.5 f4 D' W* D0 _% f/ q
- ;;;4 ~6 u$ p6 i+ z9 O. w i5 l: f
- ;;; Permission to use, copy, modify, and distribute this software and its
: k: p1 M, l J* r - ;;; documentation for any purpose and without fee is hereby granted.
% V4 j( x" k- H7 B - ;;;
0 H( N K1 C7 ]& K2 `4 }6 X- ~' l( H - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
8 C" ]; t- W7 h) r8 s( S5 |2 G - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
$ f/ `, @- T- G- h7 [' j5 r - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.- Z8 d+ G% g& h* h# Z! ~- f. P1 E
- ;;;
( |0 M1 j1 E. M4 t; I8 ] - ;;; Larry Knott Version 2.0 7/18/88, Z4 ~( ~! a) Y" D1 d m
- ;;; Carl Bethea & Jan S. Yoder Version 3.0
# _, m* N7 l& y1 M, {# L/ w2 \ - ;;; Enhancements to (ssx)./ d- s4 C, K7 K$ N* h! V# h
- ;;; 15 March 1990 " h# ?( h; w% B- H
- ;;;& e! \& @6 Y1 Q$ z; ~0 W i- O
- ;;; ARTIST Software, Inc Version 4.0 December 1991$ u) _( b3 F {7 \: D& @( V$ y0 x1 n
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
7 T( P* P/ T( T- u- R. W( M2 p- V" m - ;;; use Flexicon menus+ |& N- h: `" S( v: ?) B4 G9 g
- ;;;
; p; B- M0 |5 o' \9 n+ H- N: a& T9 q - ;;;--------------------------------------------------------------------------;
& Q, O* E% v# B j: D- x! j - ;;; DESCRIPTION# X d$ R8 \6 z4 r
- ;;; SSX.LSP
8 j1 J% i9 V. N& v3 x$ R - ;;;
- b" X' U* k: O7 G - ;;; "(SSX)" - Easy SSGET filter routine.
$ z# B# @* L b - ;;;
- t' Z. Y; ?: Z: }$ g; R' q - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
v9 S: _$ s8 [ - ;;; to create a "previous" selection set or type "(SSX)" in response to 4 x; C; o. o7 Q6 p# W' b' D
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add
, g+ V3 I) y% n - ;;; entities and "(R)" to remove entities from a selection set during
" W. M+ P- T; t - ;;; object selection. More than one filter criteria can be used at a
% W/ W; F- J5 O - ;;; time. + C" r! G+ D( _9 X4 g
- ;;;
/ A* ?; x4 E, D: @+ j - ;;; SSX returns a selection set either exactly like a selected4 S2 d4 e- v5 h
- ;;; entity or, by adjusting the filter list, similar to it.
( n( }& g% a" W, p! ]. P) _7 P" G - ;;;
1 W2 z* i( }' ?) f a* T! u - ;;; The initial prompt is this:
2 S! A8 N7 @. X9 O- ^+ ^ - ;;; . @/ P& o `3 v% o6 Y) z
- ;;; Command: ssx
$ C* o$ G' [" v; G# ~ - ;;; Select object/<None>: (RETURN)
/ i7 L0 T8 X* o* e7 A - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ; E1 ~$ @2 K1 ^( ]
- ;;;
: e9 g/ a- W B# y+ Y( Z( k' e2 q - ;;; Pressing RETURN at the initial prompt gives you a null selection
( \8 b+ A3 J2 K* F - ;;; mechanism just as (ssx) did in Release 10, but you may select an
! \/ L1 A+ b7 p8 M8 L; W6 @ - ;;; entity if you desire. If you do so, then the list of valid types 8 c+ U* S4 z( P9 U' d
- ;;; allowed by (ssget "x") are presented on the command line.
! K1 @' W( i4 r! \1 r' |8 g - ;;; f$ l1 ~- C) R4 A
- ;;; Select object/<None>: (a LINE selected)
/ R5 X! q& f' ~ - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
- B" G% {) c; C0 m3 b7 |+ q - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 2 l, O% n' E: A+ g( J
- ;;; 5 q* C# r1 _ V9 l
- ;;; At this point any of these filters may be removed by selecting the & @' N' M) B- j. m* ]- f
- ;;; option keyword, then pressing RETURN.0 D7 j* w( ^. D' s
- ;;;
( i$ K0 N' J x2 q- i - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
( ]1 @9 G' I6 L' u# T! f- ~6 B - ;;; ! t! }9 B- N- j* D: W | d. \
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
# H* ?" ?& Q" O4 l! m! P' I7 p - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
& A7 Q" t c4 y( I - ;;;
# {' i+ n. I z, a5 W5 Z8 Q2 G - ;;; If an item exists in the filter list and you elect to add a new item, % q7 k- z3 A7 F( F! N; `
- ;;; the old value is overwritten by the new value, as you can have only ) [* w0 z$ G* ]. D& }
- ;;; one of each type in a single (ssget "x") call.
# j& I$ [) u$ j& Y3 M2 J- n - ;;;) H; N" j0 W8 _& t
- ;;;--------------------------------------------------------------------------;' @6 W0 x2 ^; O1 e$ G6 Q5 ?- L
- ;;;
T2 p' B0 j; {# X% p% a2 [ - ;;; Find the dotted pairs that are valid filters for ssget
1 F* C. j% T B j% w" @* i0 J - ;;; in entity named "ent".
( I4 h' b. F/ H e* r - ;;;. l: v5 a# {0 {/ |4 y
- ;;; ssx_fe == SSX_Find_Entity/ i$ z0 H" g4 z# k- q
- ;;;( n8 K7 D5 i' \
- (defun ssx_fe (/ x data fltr ent)
+ S9 ]9 M5 Y" c - (if (and (= flexvar 1)(/= t2 "Pick"))4 G0 m u$ F6 w# e- y, d) n3 O! E
- (setq ent nil)2 S6 V1 g' a& b5 [% R+ f* G
- (setq ent (car (entsel "\nSelect object/<None>: ")))
3 O8 L5 D; G* O3 C. p. m8 V - )+ K; f& M9 c9 X9 v
- (if ent3 J$ `% i4 k2 C9 t$ ]
- (progn
6 K% u) @) H( Z F - (setq data (entget ent))( U3 M1 U6 ^$ f4 i& u. _
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38# z; S6 O! ?7 A5 g
- (if (assoc x data)
6 ]! R/ c5 u8 Y6 g; k - (setq fltr
) Y/ n4 |7 g2 }) T0 I' @& F3 v - (cons (assoc x data) fltr)) ^& N# {( B3 _
- )
( o3 ]% w. [' s& v& A# ]6 W7 B - )( H; F& C' G1 ~0 q l# o: W
- )
2 D+ g! {( ~' o: A+ v: t - (reverse fltr)
' g. T- `! r, \0 j1 [6 R - )
6 u0 [0 N$ q0 F* X - )
" P- U2 }. Y$ L! s+ h - )
5 z- `) Q# T6 y `/ g - ;;;
$ s$ Y8 e$ w% \ d+ e4 j: w - ;;; Remove "element" from "alist".
6 ~* R( B, Y) u9 j" \ - ;;;
c2 L5 V4 X4 g$ H - ;;; ssx_re == SSX_Remove_Element; Y! B% k& ? x \2 @3 D: q
- ;;;
; ? B: S$ S+ K2 G5 I3 t - (defun ssx_re (element alist)& j4 S- K* b: G* J, f+ `
- (append
+ w4 Z2 Z. N4 B p e& w - (reverse (cdr (member element (reverse alist))))+ w& l; T2 D* L8 _7 J
- (cdr (member element alist))
* c1 N$ ?( k- ?2 G - )
( O, B. ~# }( v4 C4 n6 a - )
/ t B2 Q4 g6 `( W( u - ;;;9 i9 \/ H5 P& r1 ^: k
- ;;; INTERNAL ERROR HANDLER 3 R ?2 c# e; p+ Z5 t& N4 f. o
- ;;;
, G5 d: `6 ~2 d1 N9 H2 _5 B - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs( w0 D* K( I- _$ k! l6 k
- ; while this command is active...9 `3 A' W! i/ T: s( \& {& F
- (if (/= s "Function cancelled")
& L* \6 d5 i+ Y0 p) ^4 x- ]- X - (princ (strcat "\nError: " s))
' P4 J0 g4 O$ t8 \- @6 R/ z - )
" a+ N* f5 B4 _ - (if olderr (setq *error* olderr)) ; Restore old *error* handler
5 e, Y$ R5 t* P! ~9 g+ G( K - (setq flexvar 0)
- u5 b$ j! L) p. |. `) e( ^+ w+ p - (princ)
( x0 z) A3 ^" }$ a - ): k9 |% b- {- A) l2 H
- ;;;( W# ]8 x# c& a, [% `4 L# s* g
- ;;; Flexicon call routine
2 D+ q* F1 S! [; }/ H3 @ - ;;;2 C' P/ Y. N) v, R( z1 _- B
- (defun flexmnu (a)8 E4 z: X3 A. |* D
- (if (= flexvar 1)8 B2 F5 z6 g3 \6 o, C( d
- (command "FLEXICON" (strcat "FLEX" a))
2 a+ _$ |0 U1 x - )7 F. i2 t5 G. t/ O% w! R
- )" F0 W5 h% g6 J5 y, p3 V2 |7 P
- + I3 j, m) [3 Q9 h6 p; B
- ;;;
- I+ d: ]3 }7 u; A2 h( E. K5 U - ;;; Get the filtered sel-set.: @6 d0 q% @: L& Q
- ;;;
* i" o/ p7 F1 O - ;;;
: t' \1 X2 G0 c: V - (defun ssx (/ olderr), H6 H$ h5 Y4 J/ e3 e5 z
- (gc) ; close any sel-sets 3 Y5 e' l8 E. P. ?, _" _. C
- (setq olderr *error*
5 Y% p- k) F1 D" b: i( g - *error* ssx_er 7 K1 H, X, h# F
- )
8 ~( |1 k, Q4 f" L - (setq fltr (ssx_fe)) 7 g# N$ p5 e0 }$ i2 a
- (ssx_gf fltr)
7 C/ z; M! M( \- ?! d - (if (= flexvar 1)
1 K# u y! r+ V+ z5 }8 ]5 s - (progn
, B+ p% f5 a1 x H - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
3 h. C* j' M8 m; p - (flexmnu "EDIT")
/ X6 K& c$ k# [9 R) n0 h+ }' ? - )
$ g" E1 e( y4 n4 Q, q0 j - (command "p")
, V: T+ c2 c; J$ n - )
9 E3 s' U# a) A7 R, {: c - (princ)
7 |- R& N/ x& G% C7 s - )
8 {# A6 Q9 m3 b/ B: B - ;;;
+ m; ]# h( n) N/ C2 L9 T - ;;; Build the filter list up by picking, selecting an item to add,
$ P8 f7 w g8 f2 N, W4 D - ;;; or remove an item from the list by selecting it and pressing RETURN.( K% e. ^0 l2 s& S3 {, j
- ;;;$ q& }) a. }/ X: j* a$ ~
- ;;; ssx_gf == SSX_Get_Filters* [7 t) I0 H; `6 _4 G
- ;;;! x0 j/ x/ N/ d; b
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
! y E; b: t: z$ b4 N- B3 E( V+ V- N - (while 4 y8 w4 m+ l5 n+ d& i
- (progn
9 g: O$ g6 T4 g - (flexmnu "SSX")$ x, @# Y+ J. y! `
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))& j: }: e6 j J' a0 @
- (initget
" e y3 b9 N: {$ L3 G - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
" |7 d7 P' Z3 U. V& _) Y5 U9 V, `8 o - (setq t1 (getkword (strcat
# o* B7 n7 J5 Y( q( h4 }1 s - "\n>>Block name/Color/Entity/Flag/"
( c: u8 _$ P- S9 ]/ Z& H8 h+ b' D0 N: C - "LAyer/LType/Pick/Style/Thickness/Vector: ")))
/ `: v3 e* v4 V* F' o( ~1 ?* c - )% t/ s; Y2 f- l, ?: P X) ?& z
- (setq t2" @2 I" p$ Z1 y! g& F" h s. i* z
- (cond
2 M7 L7 D! `! b, q7 q) A - ((eq t1 "Block") 2) ((eq t1 "Color") 62)
* a% O, o. U! D - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)- B# k) @+ h* H0 }8 e
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)
, B( c% }' |6 {% ]" k+ ?& D - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
f& M2 ^! m9 Z - ((eq t1 "Vector") 210)2 S. b4 Q! Z5 E
- (T t1)
H/ R8 ]- S/ a - )$ F5 V( S+ ^% H$ }# _
- ); [: x% i) q7 d/ E
- (setq t3/ P; Q$ `/ q9 M% t
- (cond
: W; ]. H; P5 A" \3 r# W, v - ((= t2 2)
' }, u2 T: b' r) j3 Z - (if (= flexvar gtads 1)
) k' H; f4 d N' [! B8 X' z - (progn
2 e9 k% @) e( s( P" x1 b1 E4 T2 { - (prompt "\n>>Block name to add/<RETURN to remove>: ")9 g' s! {% u& A" c. i
- (gttable "BLOCK")
) Z) B/ b! U: j6 b! F' C - )/ n W, u. l# ^ O: ?7 d; t. Y
- (getstring "\n>>Block name to add/<RETURN to remove>: ")$ ~" T( h: H3 ~; ]8 n) f$ }
- ). C& \0 A+ m" \) T
- ). C( j1 I& b1 ^* t9 Z( q2 w
- ((= t2 62) (initget 4 "?") C$ Z8 C+ V) @& N! _, c
- (cond
8 k$ B5 @) b% K# f. \ - ((or (eq (setq t3 (getint ! E# l. z6 G; n8 b8 {8 r5 T
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
; r+ U( n: q( k4 \7 v' } - (> t3 256))
5 U0 n( J8 x% s- H9 r - (ssx_pc) ; Print color values.
, g0 U: N+ @" m- x8 U/ J - nil+ G9 O$ {$ k7 `7 j! \
- )
1 g; t* d. T$ M+ S7 `0 w$ q+ g- ^ - (T
0 b9 v7 P$ N, r! J6 {5 k/ i - t3 ; Return t3.
( N& z. ~+ i# `0 G" } - )
1 C, X9 d% x2 F - )# t0 T: K8 b7 e4 r
- )0 D2 J, H/ Q4 I! U& p
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))6 j9 ?9 J! n2 t. _% n9 B; |
- ((= t2 8)
+ S& o' y8 V& ?- D4 G2 t b - (if (= flexvar gtads 1)
7 r S3 {* N6 |! g - (progn" P% v, U: e9 i2 r; u! f
- (prompt "\n>>Layer name to add/<RETURN to remove>: ")
0 E% F5 B ^* L - (gttable "LAYER")
4 b) C, ^& J" \ I# S' }( T - ); y6 r+ X. u, F6 k1 \# P
- (getstring "\n>>Layer name to add/<RETURN to remove>: ")/ t4 y$ i/ K) C( j& F( P4 C! m* |
- )
- w v6 A4 A3 y5 N% n2 g' i - )' n9 _, N' Z+ b' j. n: M
- ((= t2 6) & c4 R4 j7 p* I' p
- (if (= flexvar gtads 1)0 U1 _. _! ~* u6 ?8 w! W
- (progn7 g: Z0 s9 j/ N: \1 ? s- c6 ]
- (prompt "\n>>Linetype name to add/<RETURN to remove>: ") g3 ~' w0 Z0 N; O; @7 e& E3 h) r
- (gttable "LTYPE")# F- d5 p2 k( j6 a1 a
- )
0 i0 J- A7 @# D, |1 }) R - (getstring "\n>>Linetype name to add/<RETURN to remove>: ")" L# [ ~1 y3 N7 }) I
- )
* | J- t) V J, C8 t - )) u6 r9 ~ p( {
- ((= t2 7) & f5 i0 m1 G1 w* U. L* D
- (if (= flexvar gtads 1)% u- {5 T" `: y* i
- (progn: g9 P6 a* ^! b4 D* ~+ u
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")( B+ P9 R: \( f
- (gttable "STYLE")
* n; P, g5 A' M# E" b+ x1 |- g - )7 J b! T) y" z* G' w3 p
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
5 H! R9 k' @) m$ p; {: d( t6 b - )' |2 \2 X% V: H- y2 O6 c! C
- )
( J% i4 e' ~% @ - ((= t2 39)
- l) C- x) h5 M3 X* G+ D( S2 l! f - (prompt "\n>>Thickness to add/<RETURN to remove>: ")+ I+ Z7 ]$ X3 z; o$ v
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))0 Q! \ ]3 D/ i7 z+ s6 ~/ o/ `, a
- )
7 w; B; ^3 f) a6 k6 a; r - ((= t2 66) (if (assoc 66 f1) nil 1))- v5 v3 q% P! R7 ]6 ~
- ((= t2 210) " g1 c: M @7 B5 C k' f2 y3 m
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
1 S8 D7 x3 |- N- P' L, \2 \ - )
. E6 h% f- _9 ]: y; [2 M7 M; {/ S - (T nil)- h V1 Y3 k) z, w* C, U
- )( r& z8 I& D- g0 }* l+ W
- )
, `' ?6 O. l/ ? - (cond6 e5 G2 ~: K g7 |( j
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity2 C9 |9 X/ l8 x U2 ^" M
- ((and f1 (assoc t2 f1)) ; already in the list3 F) P# z& _+ y; y' o5 y2 Z+ l
- (if (and t3 (/= t3 ""))8 {% p$ a% B2 q% f, Z
- ;; Replace with a new value... 2 V3 J/ i" ~1 d- d6 w. w
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
7 m4 P. H+ h+ t. L3 Z( L" Z - ;; Remove it from filter list...1 ] u, G- i0 {2 J
- (setq f1 (ssx_re (assoc t2 f1) f1)) 6 M* t5 W4 F/ M& j/ z% s
- )
1 x( j3 C* e! J% C, |" n3 \8 f - )
' m' C, \ \3 ^ l- ] - ((and t3 (/= t3 ""))
/ U1 m8 }: C- y/ \* w - (setq f1 (cons (cons t2 t3) f1))
% w4 X1 Y" |1 B. z - )
( f. ^7 p. ^- E5 L( Q - (T nil)2 h7 `$ K: ]. T+ t7 }
- )
& P% I) c( L0 i& W - )
1 p6 `5 V, C) N$ m/ l - (if f1 (setq f2 (ssget "x" f1)))8 F; ~; i/ L8 g @* H
- (setq *error* olderr)) B" _7 c3 t* S+ v. a
- (if (and f1 f2) 6 H. X$ j" q! j, }# @. ?9 [% @
- (progn8 n: k( L' o V5 V7 u+ A8 n$ `4 x
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))- }' M3 S. Z; D8 b! s1 }8 D: X
- f2
" o) E3 X8 y4 z. }9 K& P4 g - )* i7 {& M$ K/ S' ^4 Y
- (progn (princ "\n0 found.") (prin1))
& B$ a4 |8 b) `! ^4 e/ x - )
% P& { c. c { z' |6 G# T - )
4 p1 G" d! s# M7 A - ;;;
! p, O9 c/ A2 s' t) `8 M - ;;; Print the standard color assignments.5 I1 J" ^) V0 V
- ;;;
% _& R b6 _4 a4 f7 o - ;;;: X( s4 i' T' ]0 b! Y! @
- (defun ssx_pc ()$ i/ J% G4 y& B. W
- (if textpage (textpage) (textscr))
v+ Y: Q8 I3 D& h5 v - (princ "\n ")# l' \5 a1 { j0 R+ }( u8 L5 g
- (princ "\n Color number | Standard meaning "), h2 u2 h! Z$ }$ @4 i
- (princ "\n ________________|____________________")
) S0 |3 |6 N/ t; [ - (princ "\n | ")$ c1 r& R: I4 k3 j
- (princ "\n 0 | <BYBLOCK> ")9 E9 W/ m+ Y) U( i
- (princ "\n 1 | Red ")- ~4 M. L; t, q2 `
- (princ "\n 2 | Yellow ")$ a$ f* A' f* r4 _) X
- (princ "\n 3 | Green ")3 P/ g3 q, w4 ^* {7 A% {, v
- (princ "\n 4 | Cyan "); a% \; |( b' V; `* N
- (princ "\n 5 | Blue ")
# Y* q4 n' q% f& V6 u# u7 e - (princ "\n 6 | Magenta ")
; @2 A" ?$ g4 o \7 T! t% J - (princ "\n 7 | White ")
7 J6 T o- W0 `$ P& D: E) a - (princ "\n 8...255 | -Varies- ")
7 d$ i0 r0 F2 \( Y2 j( h - (princ "\n 256 | <BYLAYER> ")3 n, ]5 ]3 ]* }0 m* \
- (princ "\n \n\n\n")
$ V9 j7 n6 L4 L' S3 F. l8 ^- P - )3 M' ?0 o5 Y7 q. B H1 H# }
- ;;;
3 c3 c8 K. [, H- O, D( w1 U: b - ;;; C: function definition.
' @; ~3 i% W |1 f! j& Q - ;;;1 Y6 y& L4 I/ y0 t. N# E6 a; E
- (defun c:ssx () (ssx)(princ))7 u! L' a* s7 K- Q; x6 P; j1 P4 c
- (princ "\n\tType \"ssx\" at a Command: prompt or ")
; e; z( N0 y& D, e - (princ "\n\t(ssx) at any object selection prompt. ")
+ }& k: X" |# i2 p - (princ)
5 A9 g% }: y2 X! ^: s7 W
6 ~' D4 n1 B$ `) C5 W: Q: q0 d. w9 l- ;;;--------------------------------------------------------------------------;
% D$ h7 q& n' X - ;;;--------------------------------------------------------------------------;
4 U$ C- ?1 y' q- s5 Y$ v - ;;;--------------------------------------------------------------------------;
$ d4 q3 K2 l, k0 Z2 ` - (defun S::STARTUP ()5 h& d+ ~+ Q9 O9 ]) v
- (setvar "cmdecho" 0)
! y' |/ ]+ d8 ]; |. ?3 B6 h2 x - (setvar "cmdecho" 1)
) u' l6 g% @& Z3 ^" X9 } - (setvar "LTSCALE" 10)
. K) ]7 S! o8 ?2 [0 C - # I+ r4 P( k8 N, o
- ;(command "_load" "chenKH.fas")
, C J4 W: H6 @/ { - ;(command "_load" "ctcot.fas")
; N" [) j0 C5 R( { - ;(command "_load" "damdoc.fas")% `( x3 y0 i. A
- ;(command "_load" "ghichu.fas")) e2 D: o% ~) d/ Q8 K W$ J0 U
- ;(command "_load" "hamtutao.lsp")
2 @' n4 m4 x! Q! I. G - ;(command "_load" "KHOITAO.fas")
" p5 Q+ ]. ?4 O/ B3 ~' c - ;(command "_load" "KHthep.fas")
" j8 S- v0 r U1 Z& l! h - ;(command "_load" "mbmong.dcl")5 f6 ^: a1 }3 j) \1 t; q
- ;(command "_load" "mbmong.fas")
! G- u+ @% S" n" F! d - ;(command "_load" "mccot.fas")
9 M# X+ Q& E3 o: O/ r - ;(command "_load" "mcdam.fas"): K7 k9 a! D) I
- ;(command "_load" "mcmong1.dcl")6 E1 f9 |$ i. w+ F
- ;(command "_load" "mcmong1.fas")5 S C2 z* ~* j) w
- ;(command "_load" "mcmong2.dcl")' J$ J6 L2 h9 C* Z7 m, {; `$ _
- ;(command "_load" "mcmong2.fas")
( V! V; W$ y! B8 L - ;(command "_load" "mcmong3.dcl"). c1 V4 L7 R" }+ e, k5 ^, y
- ;(command "_load" "mcmong3.fas")& {; _8 r* t2 |2 Y
- ;(command "_load" "mcsan.fas")0 B% {# G5 f% i: t5 R
- ;(command "_load" "thepdai.fas")7 c4 J% p1 T) r- N5 \: U
- ;(command "_load" "thepdoc.fas")
4 _$ w3 m4 v j( E* ~, n - ;(command "_load" "thepmb.fas")
. u. G" y9 i, m9 y) G - ;(command "_load" "thepphbo.fas")
4 L$ t. M7 ^& X5 Y0 f% Z - (command "_script" "thongso.scr")
/ D m( S& X& x" M& Y - ;(command "_load" "thongso1.dcl")
- D) z, M8 E& y+ M, w - ;(command "_load" "thongso1.fas")) A. d- x6 e. O) N( C6 j
- ;(command "_load" "thongso2.dcl")" T0 V/ U2 L- [8 Q" t( i! f
- ;(command "_load" "thongso2.fas")
- A6 G. ~* r8 I# w2 P+ [ - ;(command "_load" "tietdien.fas")2 w3 p8 V; \: h3 ^1 _
- ;(command "_load" "vehan.fas")! N y/ {( T" c' X$ R( E
- (command "_load" "phamDuy782006_TKT.lsp"): B/ M, I- n9 A) H# ~) ?
- (command "_load" "phamduy782006ganhtd.lsp")3 ~) n0 @# O3 N, g' E, l+ M8 g
- (command "_load" "phamduy782006ganhtds.lsp")1 r3 o+ F; a) x1 M
- (command "_load" "phamduy782006htd.dcl")
- O( o( k! R7 t+ D# }+ u. v - (princ)
* k4 r7 i' ?! ~* D' w- N$ o9 ~" o - ), N+ d/ n5 b# V; V' G; \
- 1 W! O6 ?0 [7 w s( R
- ;; Silent load.& x; k7 ?1 D( N$ i! K' V
- (princ)- \" q M" q; _+ t
- ) \" m8 P0 C/ J1 A z; V( ?; E
% S: z- n, ?( d* M- ;; Silent load for the Express Tools.
; \/ N3 Q' q) p7 y' o& p - ;; Altering this line will affect Express Tools functionality
4 m) L+ w* e% l/ q- H: b# P - (load "acettest.fas" (princ))4 Y6 g& ]- M' G; ~% }' x
- �32
Sao chép mã
8 I) f$ a3 I: ]; U00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ- }/ Q6 |! X+ l! L7 H9 Q* ?! L
|
|